TCP 的三次握手和四次挥手
学习 TCP 协议,首先第一个要了解当然是 TCP 连接是如何建立的,下面给大家介绍一下三次握手和四次挥手的过程以及为什么要这样设计。
三次握手:
在基于 TCP 通信中,双方要进行通信,则需要建立一个物理连接,建立时需要双方进行三次握手,成功即可完成连接建立。
采用三次握手的原因:
在网络通信中,网络存在拥塞,发送的报文可能会由于网络拥塞的原因,导致对方收不到。若采用直接开启连接,当客户端发送连接建立请求后,不等待确认服务器可以打开连接就直接打开连接,这样如果服务器收不到报文,根本不知道客户端,那么客户端的打开的物理连接是无效的,但客户端不知道,还一直发送数据,做无用的工作。
三次握手的过程
四次挥手:
当双方通信结束时,需要四次挥手来关闭连接。
采用四次挥手的原因:
学习过 TCP 连接的都知道,TCP 连接是双向的,一个是从客户端到服务端,另一个是从服务端到客户端。假设当前客户端已经发送完所有数据到服务器,则此时可以告知服务器,我已经发送完数据了,可以关闭我这端到另一端的通道,服务器收到关闭报文则可发送一个确认,确认关闭;但此时由于服务器可能还需要发送数据到客户端,因此并不会关闭从服务端到客户端方向的通道;等服务端发完了,才发送一个 FIN 报文给客户端,客户端收到之后发送确认,则此时 TCP 连接才正式关闭。
四次挥手的过程