TCP/IP协议三次握手四次挥手过程

栏目: 服务器 · 发布时间: 5年前

内容简介:连接中断可以由server或者client中任一端发起,上图中为client发起,如果是server端发起,则流程中1,2,3,4步骤方向互换即可。TCP的TIME_WAIT状态也称为2MSL等待状态,当TCP的一端发起主动关闭,在发出最后一个ACK包后,即第三次挥手完成后发送了第四次挥手的ACK包后就进入了TIME_WAIT状态,必须在此状态上停留两倍的MSL时间,等待2MSL时间主要目的是怕最后一个ACK包对方没收到,那么对方在超时后将重发第三次挥手的FIN包,主动关闭端接到重发的FIN包后可以再发一

TCP/IP协议三次握手四次挥手过程

三次握手建立连接

  • 初始阶段:client状态为CLOSED, server状态为LISTEN
  • 1.SYN阶段:client向server发送SYN报文请求建立连接,client进入SYN-SEND状态
  • 2.SYN/ACK阶段:server收到SYN报文,进入SYN-RCVD状态,回复SYN/ACK报文给client,并为这次连接分配资源。
  • 3.ACK阶段:client收到AYN/ACK报文后向server回复SYN报文,并为这次连接分配资源。
  • 至此连接建立。

四次挥手

连接中断可以由server或者client中任一端发起,上图中为client发起,如果是server端发起,则流程中1,2,3,4步骤方向互换即可。

  • 初始阶段:client和server状态皆为ESTABLISHED
  • 1.FIN阶段:client向server发送FIN发起中断请求,client进入FIN-WAIT-1状态,等待接收server的ACK
  • 2.ACK阶段:server端接到FIN报文(即client向server宣告没有数据要继续传输了,但是如果server端还有数据没有向client传输完成,那么不需要此时关闭socket,数据可以继续传输,只需要回复client ACK即可), server向client回复ACK报文,并进入CLOSE-WAIT状态, client在收到ACK之后进入FIN-WAIT-1状态,等待接收server的FIN
  • 3.FIN阶段:server端数据传输完成,向client端发送FIN报文,进入等待client ACK阶段
  • 4.ACK阶段:client在收到server的FIN报文后,向server回复ACK报文,但是client并不确认server是否一定能收到ACK报文,所以等待2MSL之后才会关闭client自己,server在收到ACK报文后会立即关闭
  • client在等待2MSL后依然没有收到server回复,证明server已正常关闭, client自动关闭

TCP的TIME_WAIT状态也称为2MSL等待状态,当TCP的一端发起主动关闭,在发出最后一个ACK包后,即第三次挥手完成后发送了第四次挥手的ACK包后就进入了TIME_WAIT状态,必须在此状态上停留两倍的MSL时间,等待2MSL时间主要目的是怕最后一个ACK包对方没收到,那么对方在超时后将重发第三次挥手的FIN包,主动关闭端接到重发的FIN包后可以再发一个ACK应答包。在TIME_WAIT状态时两端的端口不能使用,要等到2MSL时间结束才可继续使用。当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃。不过在实际应用中可以通过设置SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。

MSL(Maximum Segment Lifetime): RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。

參考資料

《TCP IP详解卷一》

TCP协议中的三次握手和四次挥手(图解) : https://www.cnblogs.com/thrillerz/p/6464203.html


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计之下

设计之下

搜狐新闻客户端UED团队 / 电子工业出版社 / 2014-1-1 / CNY 69.00

形而上者谓之道,形而下者谓之器。匠者,器也。处身平凡的匠人不断追求向上的设计之道。本书没有华丽的辞藻和长篇大论的理论,作者是搜狐一线的设计团队,写作过程中他们尽力还原真实的工作场景,并总结出了一些实用的经验和方法。 《设计之下》共三部分,全面讲解了用户体验设计的流程和方法。第一部分为“交互设计”,阐述了从项目启动、解析需求到原型设计的过程,并且总结了交互设计的要点:大局观、操作流程简捷、形式......一起来看看 《设计之下》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具