都握手了,怎么能少得了挥手嘞

news/2024/11/7 8:38:58/

四次挥手只有一个目的:让双方都知道对方想要断开连接并且把该传输的数据都传输完

假设是由有客户端发起的断开请求:

第一次挥手:客户端给服务器端发送一个FIN标志位和seq,就像是在告诉服务器,"我想跟你断开连接,但是如果你有数据还想跟我发送的话可以发,或者你也想断开的话,你告诉我一声”,第一次挥手之后,客户端处于FIN_WAIT1状态

第二次挥手:第二次就是回应客户端,“我收到你的FIN了,我知道你要分手,你等我把数据发完咱们就分手吧”,并回复ACKacknumseq,(这些东西在数据传输的过程中都是必不可少的,因为TCP传输的可靠性嘛)然后服务器端进入CLOSE_WAIT状态,而客户端这个时候是处于FIN_WAIT2状态

第三次挥手:经过第二次挥手之后,把该发的数据发完了,他就向客户端发送FIN标志位,就像是在告诉客户端,“我传完数据了,我也要跟你断开连接,分手吧”,之后服务器端就进入LAST_ACK状态,就坐等客户端最后的ACK信息

第四次挥手:客户端收到FIN之后,会给服务器端发送最后的ACK,但是这个时候他不相信网络,他怕服务端收不到,还以为我客户端反悔了,我不想分手了,所以他会进入一个TIME_WAIT状态,这个状态就是让客户端等待2MSL的时间再关闭,如果2MSL时间内没有重新收到服务器端FIN的消息,就证明服务器那边已经收到了我的ACK并且已经关闭连接,那我客户端也关闭连接吧;然后他们都处于了CLOSE状态

这就是TCP四次挥手的过程

注:哪方主动断开,哪方就会存在TIME_WAIT状态

 


http://www.ppmy.cn/news/180475.html

相关文章

练手~~~

文本操作 逆转字符串——输入一个字符串,将其逆转并输出。 拉丁猪文字游戏——这是一个英语语言游戏。基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay(譬如“banana”会变成“anana-bay”)。可以在维基百科上了解…

三次握手~

在TCB传输中为了保证文件传输的可靠性(可靠性不等于安全性,可靠性是指A发送的信息,A知道B是否收到,安全性是指传输的数据会不会被发生截取和篡改)做了一系列操作,其中包括了确认应答(核心&#…

三握四挥

一、VUE和Dj ango工作流程: 二、Django中间件的作用: 三、Django中间件请求顺序: 四、总结的(终极版): 五、三次握手,四次挥手: 六、HTTP的三次握手,四次挥手总结: 舔狗的过程 七、H…

三次握手

TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(synj)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手&a…

我的手的

struts1.2spring2.0hibernate3.1dwr2.0组合&#xff1a; 1. 页面不解析${} servlet2.5缺省不支持jstl2.0&#xff0c;要在jsp中写上 < page isELIgnored"false" > 2. 报事务readonly问题 要注意&#xff0c;所有主从表关系的表&#xff0c;在修…

握手跟挥手

三次握手 TCP是因特网中的传输层协议,使用建立连接,完成三次握手,与服务器开始传送 第一次握手 建立连接时,发送包(synj)到服务器,并进入等待状态,等待服务器确认SYN;同步序列编号 第二次握手:服务器 第二次握手:收到SYN包,必须确认客户的SYN(synj1),同时自己也发送一个SYN…