TCP三次握手与四次挥手

置位概念:根据TCP的包头字段,存在三个重要的标识ACK SYN FIN服务器

ACK:表示验证字段ide

SYN:位数置1,表示创建TCP链接it

FIN:位数置1,表示断开TCP链接class

1.TCP三次握手

TCP三次握手原理图以下图所示:基础

TCP三次握手与四次挥手

创建过程:原理

(1)数据包发起:由主机A发送创建TCP链接的请求报文,其中报文中包含seq序列号(seq=100),是由发送端随机生成的,而且还将报文中SYN(SYN=1)字段置为1,表示须要创建TCP链接。请求

(2)数据包接收与确认数据链接:主机B接收到主机A的请求后会回复A发送的TCP链接请求报文,其中包含seq序列号,是由回复端随机生成的,而且将回复报文的SYN字段置为1,并且会产生ACK字段,ACK字段数值(ACK=seq+1=100+1)是创建在A发送过来的seq序列号基础上加1进行回复的,以便A收到信息是知道本身的TCP创建请求已获得了验证。im

(3)回送确认数据包:主机A收到主机B发送的TCP创建验证请求后,会使本身的序列号在接收到ACK的数值上加1表示。这时主机A的seq的值是主机B的ack的值(seq=ACK=seq+1=101),而且再次回复ACK验证请求(ACK=seq+1=301),在B端发送过来的seq基础上加1(seq=ACK),进行回复。数据

(4)取得最后确认:若一切都顺利,在服务器收到带有SYN=1且ack=301序号的数据包后,就能创建此次链接了。img

2.TCP四次挥手

TCP四次挥手原理图以下图所示:

TCP三次握手与四次挥手

断开过程说明:

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

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

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

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

相关文章
相关标签/搜索