V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mortonnex
V2EX  ›  问与答

tcp4 次挥手的问题

  •  
  •   mortonnex · 2019-01-21 15:52:09 +08:00 · 957 次点击
    这是一个创建于 2165 天前的主题,其中的信息可能已经有所发展或是发生改变。
    握手的时候,ack 和 syn 一起发

    为什么挥手的时候,fin 和 ack 不一起发?
    4 条回复    2019-01-21 17:33:00 +08:00
    2kCS5c0b0ITXE5k2
        1
    2kCS5c0b0ITXE5k2  
       2019-01-21 17:25:17 +08:00
    当 Server 端收到 FIN 报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个 ACK 报文,告诉 Client 端,"你发的 FIN 报文我收到了"。只有等到我 Server 端所有的报文都发送完了,我才能发送 FIN 报文,因此不能一起发送。故需要四步握手。 ----来源 google
    CallMeReznov
        2
    CallMeReznov  
       2019-01-21 17:26:43 +08:00
    所以才叫 3 次握手 4 次挥手啊
    hilbertz
        3
    hilbertz  
       2019-01-21 17:30:25 +08:00
    因为 tcp 是全双工的传输协议,双向都要确认数据传输结束了
    jasonyang9
        4
    jasonyang9  
       2019-01-21 17:33:00 +08:00
    因为很可能一方是话痨,要等它说完
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:18 · PVG 14:18 · LAX 22:18 · JFK 01:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.