1.建立TCP可靠传输协议总共要发送3个包来建立,A向B发送一个需要建立的包,然后B收到A的报文后给A恢复一个确认收到连接的请求相应,A拿到这个请求响应后在发送最后一个包确认建立连接
![](https://img.haomeiwen.com/i16682835/978acc5d9491575d.png)
2四次挥手表示TCP断开连接时候,需要客户端和服务端总共发送4个包来确认连接断开,客户端和服务端都可以主动发起挥手动作,因为TCP是一个全双工协议,在socket编程中,任何一方执行close()操作可产生挥手操作
![](https://img.haomeiwen.com/i16682835/2e5685cb0ad93bce.png)
个人理解:连接时候只需要3次握手,断开连接时候要4次挥手。
三次握手是因为Server端接收到Client端的SYN连接请求报文后,会响应SYN+ACK报文,其中ACK报文是用来应答的,SYN报文是用来同步的。
四次挥手是因为Server端接收到FIN报文时,很可能并不会立即关闭Socket(因为有可能还有消息没有处理完)所以只能先回复一个ACK报文,告诉Client端,你发送的FIN报文我收到拉,只有等我Server把所有的消息处理完我才能发送完了,我才能发送FIN报文,因次不能一起发送,所以需要4次挥手
相当于情侣之间分手拉,刚刚分段那段时间还是会想念对方的
网友评论