mortonnex
V2EX  ›  问与答

tcp4 次挥手的问题

  •  
  •   mortonnex · Jan 21, 2019 · 1638 views
    This topic created in 2846 days ago, the information mentioned may be changed or developed.
    握手的时候,ack 和 syn 一起发

    为什么挥手的时候,fin 和 ack 不一起发?
    4 replies  •  2019-01-21 17:33:00 +08:00
    2kCS5c0b0ITXE5k2
    2kCS5c0b0ITXE5k2
    Jan 21, 2019
    1
    当 Server 端收到 FIN 报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个 ACK 报文,告诉 Client 端,"你发的 FIN 报文我收到了"。只有等到我 Server 端所有的报文都发送完了,我才能发送 FIN 报文,因此不能一起发送。故需要四步握手。 ----来源 google
    CallMeReznov
    CallMeReznov
    Jan 21, 2019
    2
    所以才叫 3 次握手 4 次挥手啊
    hilbertz
    hilbertz
    Jan 21, 2019
    3
    因为 tcp 是全双工的传输协议,双向都要确认数据传输结束了
    jasonyang9
    jasonyang9
    Jan 21, 2019
    4
    因为很可能一方是话痨,要等它说完
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1713 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 05:41 · PVG 13:41 · LAX 21:41 · JFK 00:41
    ♥ Do have faith in what you're doing.