美文网首页
TCP的三次握手与四次挥手

TCP的三次握手与四次挥手

作者: xiaoguo16 | 来源:发表于2019-07-18 14:57 被阅读0次

    众所周知,TCP是面向连接的、可靠的传输层的通信协议,它在建立连接以及断开连接时分别会发生三次握手和四次挥手的行为,以保证它的这种可靠性特征。

    建立连接:三次握手

    三次握手的过程如下:

    1. 客户端发送一个SYN (SEQ=x)报文给服务器;
    2. 服务器收到后,回应一个SYN (SEQ=y) + ACK (ACK=x+1)的报文;
    3. 客户端收到服务器的报文后,再回应一个ACK(ACK=y+1)的报文,即完成三次握手过程。
      TCP三次握手

    三次握手完成后,客户端和服务器就能正常进行数据传输了。

    断开连接:四次挥手

    四次挥手的过程如下:

    1. 某一端想要关闭连接时,需要发送一个FIN分节给另一端,表示该端的数据发送已经完毕,可以关闭连接了。
    2. 另一端接收到关闭信号后,发送ACK报文确认已接收到关闭信息。
    3. 一段时间后,另一端也完成了数据发送后,将发送FIN给对端。
    4. 接收到FIN的原发送端会发送确认报文ACK,至此两端将关闭连接。
      TCP四次挥手
      四次挥手过程中,任何一端都可以执行主动关闭,但一般是客户端一方主动执行。
    • Q:为什么断开连接需要四次而不是三次?
      A: 因为断开连接时,被动方需要先发送确认报文,确认它已经收到了主动方发送的断开信息。这时,它可能还需要等待一段时间,等数据发送完毕,再发送FIN报文告知主动方它也已经发送完成,可以断开连接。因此ACKFIN不是同时发送的,需要多一次。

    参考文献:
    https://baike.baidu.com/item/TCP/33012?fr=aladdin#6_2
    https://www.cnblogs.com/lms0755/p/9053119.html

    相关文章

      网友评论

          本文标题:TCP的三次握手与四次挥手

          本文链接:https://www.haomeiwen.com/subject/nmbklctx.html