本文主要涉及到TCP的连接机制及其过程详解,TIME_WAIT状态详解,以及为什么需要三次握手和四次挥手,如果有错误,感谢大佬们指正。
一:TCP连接管理机制
服务器状态转化:
1.CLOSED -> LISTEN:服务器创建监听套接字后进入LISTEN状态,等待客户端建立连接;
2.LISTEN -> SYN_RCVD:当监听到连接请求(SYN),就将该连接放入内核等待队列,并给客户端发送ACK确认;
3.SYN_RCVD -> ESTABLISHED:当再次收到客户端的ACK确认报文,就建立一个新连接,进入WSTABLISHED状态,此时可以读写数据;
4.ESTABLISHED -> CLOSE_WAIT:当客户端主动断开连接,服务器收到FIN结束报文段,此时服务器发送ACK确认报文,并进入CLOSE_WAIT状态;
5.CLOSE_WAIT -> LAST_ACK:处理完之前的数据,服务器就调用close关闭连接,并发送FIN结束报文段,进入LAST_ACK状态等待客户端最后一个ACK确认;
6.LAST_ACK -> CLOSED:收到了客户端对结束报文段的ACK确认,彻底关闭连接。
客户端状态转化:
1.CLOSED ->SYN_SENT&#