Tcp三次握手
ACK:位置数1,表示确认收到发出请求,表示确认位
SYN:位置数1,表示建立tcp连接
FIN:位置数1,表示断开tcp连接
第一次握手:建立时,客户端发送SYN包到服务器,其中报文中包括 seq序列号,是随机的
第二次握手:服务器收到SYN包,服务端回复客户端的请求,又会产生随机的SEQ序列号,而且会产生Ack验证字段
第三次握手:客户端收到服务器的SYN+Ack,向服务器发送确认包ACK,客户端服务器进入ESTABLISHED状态,完成三次握手
tcp四次挥手
第一次挥手:主机A发送断开TCP连接请求FIN,其中报文中包含seq序列号,是由客户端随机产生的,并且还将报文中的FIN字段设置为1,表示需要断开TCP连接
第二次挥手:服务端会恢复客户端发出的TCP请求,其中包含seq序列号,是由服务端随机产生的,而且会产生ACK的验证字段,ACK验证字段数值是在客户端发过来的seq序列号基础上加1进行回复,以便客户端知晓自己的TCP请求已得到确认
第三次挥手:服务端在回复客户端TCP请求断开确认的字段后,不会马上对TCP连接断开,服务端会确保断开前,所有传输到客户端的数据是否传输完成,一旦确认数据传输完毕就会将控制文本中的FIN字段设置为1,进行发送断开请求
第四次挥手:客户端在收到服务端的请求后,会回复服务端的断开请求,包含相应的seq字段和ack验证字段,ack验证字段会在服务端断开的seq基础上加1,从而完成服务端请求的验证回复,并且还会回复ack确认字段,以便于服务端收到信息时,知晓自己的TCP断开请求已得到确认
至此TCP断开的4次挥手过程完毕,连接断开