TCP三次握手和四次挥手

根据TCP协议的字段,存在三个重要的标识ACK SYN FIN

①:ACK:表示验证字段

②:SYN:位数置1,表示建立TCP连接

③:FIN:位数置1,表示断开TCP连接

一、TCP三次握手

TCP三次握手原理图如下图所示:

TCP三次握手与四次挥手建立过程:

(1)客户端发起:由client发送建立TCP连接的请求报文,其中报文中包含seq序列号(seq=100),是由发送端随机生成的,并且还将报文中SYN(SYN=1)字段置为1,表示需要建立TCP连接。

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

(3)回送确认数据包:主机client收到主机server发送的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序号的数据包后,就能建立这次连接了。

二、TCP四次挥手

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

在这里插入图片描述

TCP三次握手与四次挥手断开过程说明:

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值