三次握手
- 客户端-发送带有SYN标志的数据包-一次握手-服务端
- 服务端-发送带有SYN/ACK标志的数据包-二次握手-客户端
- 客户端-发送带有ACK标志的数据包-三次握手-服务端
三次握手的理由
三次握手的目的是为了建立可靠的通信信道。
- 第一次握手:客户端什么都不能确认,服务端确认对方发送正常,自己接收正常
- 客户端确认自己发送、接收正常,对方发送、接收正常;服务端确认了对方发送正常,自己接收正常
- 客户端确认了自己发送、接收正常、对方发送、接收正常;服务端确认了自己发送、接收正常,对方发送、接收正常
四次挥手
- 客户端-发送一个FIN,用来关闭客户端到服务器的数据传送
- 服务器-收到这个FIN,返回一个ACK,确认序号为收到的序号加1.和SYN一样,一个FIN将占用一个序号
- 服务器-关闭与客户端的连接,发送一个FIN给客户端
- 客户端-发回ACK报文确认,并将确认序号设置为收到序号加1.
四次挥手的理由
任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。