tcp三次握手与四次分手

三次握手A主机请求B主机

A主机 先发 syn=1 ,seq=a 给B主机  A主机进入SYN_SENT状态

B主机收到后发送 syn=1 ACK=1 seq=b ack=a+1 给A主机   B主机此时服务器进入SYN_RECV状态;

A主机收到后发送ACK=1 seq=a+1 ,ack=b+1 给B主机  客户端和服务器进入ESTABLISHED(TCP连接成功)状态

syn=1  表示请求连接包  seq=a 表示本机的第几个数据包,即本机的数据包序列号   ACK=1表示确认包  ack=a+1 表示响应对方主机的第几个数据包

四次挥手

主机A发送断开TCP连接请求的报文,其中报文中包含seq序列号,是有发送端随机生成的,并且还将报文中FIN字段的值设为1,表示需要断开TCP连接。

主机B会回复A发送的TCP断开请求报文,其中包含seq序列号,是由恢复段随机生成的,而且会产生ACK字段,ACK字段的数值,是在A发送过来的seq序列号基础上加1进行回复的,以便A收到信息时,知晓自己的TCP断开请求已得到了验证。

在主机B回复完A的TCP断开请求后,不会马上就进行TCP连接的断开,主机B先会确认确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输完毕就会将回复报文的FIN字段置为1,并产生随机seq序列号。

主机A收到主机B的TCP断开请求后,会回复主机B 的断开请求,包含随机生成的seq字段和ack字段,ack字段会在主机B的TCP断开请求的seq的基础上加1,从而完成主机B请求的验证回复。

 

posted @ 2019-03-01 06:58  烟雨楼台,行云流水  阅读(146)  评论(0编辑  收藏  举报