代码之家  ›  专栏  ›  技术社区  ›  w2lame

TCP协议:主机暂时不可用

  •  0
  • w2lame  · 技术社区  · 14 年前

    (我们使用的是TCP协议)

    2) 数据包将不会被传递并将重试,但其他数据包不会受到此数据包的影响。

    也就是说,数据包A、B和C将被传输。当我发送数据包A时,服务器暂时停机,然后数据包B和C将在最初计划的时间发送,或者一旦服务器接收到A,就发送。

    2 回复  |  直到 14 年前
        1
  •  2
  •   caf    14 年前

    从未

    如果你派A和B过来 分离 TCP连接,则B有可能在A之前到达。

        2
  •  1
  •   Vatine    14 年前

    你说“暂时下山”是什么意思?我可以看到两种不同的情况。

    场景1:服务器和客户端之间的连接中断。

    数据包A正在发送途中。不幸的是,当它在电缆中缠绕时,一根电缆断了,一根丢失了。同时,根据TCP加窗算法的确切状态,分组B和C可以被发送,也可以不被发送(这将取决于窗口大小、A/B7C的大小以及发送的尚未确认字节的量)。我猜你的“1”和“2”都是对的?

    如果已经发送了B和/或C,则在重新发送之前,不会有A的ack。如果它们已经被发送,一旦A到达,服务器将确认直到按顺序接收到的最后一帧结束(因此,C,如果是taht)。

    场景2:服务器宕机

    如果发生这种情况,所有TCP状态都将丢失,并且必须在服务器完成重新引导后重新建立连接。

    推荐文章