首页 > 技术文章 > TCP 三次握手、四次挥手

pandang 2017-07-12 13:58 原文

 

三次握手:(主要是server、client相互同步系列号)

SYN:同步序列号

ACK:确认序列号

第一次握手:client 向server 发送SYN,seq=x,申请同步client端序列号,client 进入 SYN_SENT状态;

第二次握手:server 回复确认,同步client段序列号成功,ACK=x+1,cleint 进入 ESTABLISHED 状态 ; 同时申请同步server端序列号,SYN seq= y,server 进入 SYN_RECV 状态;

第三次握手:clent收到确认,同时受到server同步申请,回复ACK=y+1,回复确认成功,server 进入 ESTABLISHED 状态;

 

 

四次挥手:(主要是client告诉server要断开连接,server告诉client要断开连接、双工)

FIN:数据发送到尾部,将要断开连接

第一次挥手:client 告诉 server,数据发送完了,要断开连接,FIN seq=x+2,client进入FIN+_WAIT1状态;同时对上一个接受数据包回复接收到确认,ACK=y+1;

第二次挥手:server收到FIN数据包,同意断开,对client回复确认数据包,ACK=x+3,server进入CLOSE_WAIT状态;client接收到ack确认数据包,进入FIN_WAIT2;

第三次挥手:server像clent申请断开连接,想client发送FIN数据包,FIN seq=y+1,server进入LAST_ACK状态;

第四次挥手:client接收到server的FIN数据包,client进入TIME_WAIT状态,同时确认收到FIN数据包,同意断开,想server发送ACK确认,ACK seg=y+2;

 

推荐阅读