【问题标题】:TCP Three way handshake - Piggybacking ACKsTCP 三路握手 - 捎带 ACK
【发布时间】:2015-06-05 06:47:49
【问题描述】:

我知道在三次握手中,有时接收端会在建立连接时发送一个 SYNACK 数据包(捎带),但它什么时候会发送一个 SYN 然后一个 ACK​​ 数据包?

例如:

->同步

->确认

对比:

->同步

->SYN_ACK

谢谢!

【问题讨论】:

    标签: networking tcp protocols handshake


    【解决方案1】:

    不,它不会 - 这就是原因

    SYN 通常由“客户端”(例如您的浏览器)在想要打开与服务器(例如您的 Web 服务器)的 TCP 连接时发送。服务器无法事先“知道”哪个客户端想要打开一个连接(并因此发送一个 SYN)给它。所以它不能发送一个不请自来的SYN。

    SYN 和 ACK 是标志,因此来自服务器的 SYN-ACK 是对客户端 SYN 的 ACK(它是自己的 SYN)。从技术上讲,它可以单独发送它们,但是单独发送 SYN 和 ACK 会涉及额外的半往返。 'cos 那么这将是四路握手 ((c)SYN -> , ) 不会比三路更可靠握手提议。因此,这样做是没有意义的。

    话虽如此,理论上您可以设计一个具有 4 次握手的协议,但 TCP 不是这样设计的。

    希望对您有所帮助。

    【讨论】:

    • 谢谢!这正是我想要的!
    • @user1670032 您应该将此标记为您问题的答案
    猜你喜欢
    • 1970-01-01
    • 2017-07-08
    • 2012-04-04
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多