第一次握手:Server确认对方可以正常发送
第二次握手:Client确认自己发送、接收正常,对方发送,接收正常;
Server确认自己接收正常,对方发送正常
第三次握手:Client确认自己发送、接收正常,对方发送、接收正常;
Server确认自己发送、接收正常,对方发送接收正常
四次挥手简图:
第一次挥手: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状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
问题:为什么要四次挥手才能断开
回答:是因为一方发送FIN只表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来。还需要对方发送FIN,双方都确认了,才能断开。



