tcp的三次握手和四次断开
三次握手
第一次握手
客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J,
服务器是被动打开(passive open);
第二次握手
服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,
ACK的序列号是 J+1表示是给SYN J的应答,新发送的SYN K 序列号是K;
第三次握手
客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,
然后两边就可以开始数据发送数据了
四次断开
1)第一次断开: Client发送一个FIN, 用来关闭Client到Server的数据传送, Client进入FIN_WAIT_1状态 .
(2)第二次断开: Server收到FIN后 , 发送一个ACK给Client, 确认序号为收到序号+1(与SYN相同, 一个FIN占用一个序号), Server进入CLOSE_WAIT状态 .
(3)第三次断开: Server发送一个FIN, 用来关闭Server到Client的数据传送, Server进入LAST_ACK状态.
(4)第四次断开: Client收到FIN后, Client进入TIME_WAIT状态, 时间是2MSL(最大分段生存期, 默认2分钟), 接着发送一个ACK给Server, 确认序号为收到序号+1 , Server进入CLOSED状态, 完成四次断开