三次握手和四次挥手


TCP 协议三次握手

客户端-发送带有SYN标致的数据包-一次握手–服务端

服务端-发送带有SYN/ACK标致的数据包-二次握手-客户端

客户端-发送带有ACK的数据包-三次握手-服务端

目的: 建立可靠的通信通道 ,数据的发送和接收(双方正常)

翻译成大白话就是: 客户端:你能接收到我的消息吗? 服务端:可以的,那你能接收到我的回复吗? 客户端:可以,那我们开始聊正事吧。

为什么是3次?:避免历史连接,确认客户端发来的请求是这次通信的人 为什么不是4次?:3次够了第四次浪费

三次握手

TCP 协议四次挥手

客户端-发送一个FIN,用来关闭客户端到服务器的数据传输
服务器-收到这个FIN,它发回一个ACK,确认序号为收到的序号加1.和SYN一样,一个FIN将占用一个序号
服务器-关闭与客户端的连接,发送一个FIN给客户端
客户端-发回ACK报文确认,并将确认序号设置为收到序号加1

四次挥手

  1. 为什么不是两次?

两次情况客户端说完结束就立马断开不再接收,无法确认服务端是否接收到断开消息,但且服务端可能还有消息未发送完。
2. 为什么不是三次?

3次情况服务端接收到断开消息,向客户端发送确认接受消息,客户端未给最后确认断开的回复。

  1. 为什么要四次挥手

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

TCP作为一种可靠的传输控制协议,其核心思想就是:既要保证数据的可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上俩方面的需求。