TCP连接的三次握手与四次挥手
TCP连接的三次握手与四次挥手
第一章、三次握手
第一次握手
由客户端(用户)发送建立TCP
连接的请求报文,其中报文中包含seq
序列号,是由发送端随机生成的。并且还将报文中SYN
字段置为1
,表示需要建立TCP
连接请求。
第二次握手
服务端会回复客户端(用户)发送的TCP
连接请求报文,其中包含seq
序列号,也是由回复端随机生成的,并且将回复报文的SYN
字段置1
,而且会产生ACK
验证字段, ACK
验证字段数值是在客户端发过来的seq
序列号基础上加1
进行回复:并且还会回复ack
确认控制字段,以便客户端收到信息时,知晓自己的TCP
建立请求已得到了确认。
第三次握手
客户端收到服务端发送的TCP
建立请求后,会使自己的原有序列号加1
进行再次发送序列号,并且再次回复ACK
验证请求,在B
端发送过来的seq
基础上加1
,进行回复;同时也会回复ack
确认控制字段,以便B
收到信息时,知晓自己的TCP
建立请求已经得到了确认。
第二章、四次挥手
第一次挥手
Client
发送一个FIN
,用来关闭Client
到Server
的数据传送, Client
进入FIN_WAIT_1
状态。
第二次挥手
Server
收到FIN后,发送一个ACK
给Client
,确认序号为收到序号+1
(与SYN
相同,一个FIN
占用一个序号), Server
进入CLOSE_WAIT
状态。
第三次挥手
Server
发送一个FIN
,用来关闭Server
到Client
的数据传送, Server
进入LAST_ACK
状态。
第四次挥手
Client
收到FIN
后, Client
进入TIME_WAIT
状态,接着发送一个ACK
给Server
,确认序号为收到序号+1
,Server
进入CLOSED
状态,完成四次挥手。