【问题标题】:TCP -- gaps in receiver's windowTCP——接收者窗口中的间隙
【发布时间】:2015-10-20 05:30:50
【问题描述】:

希望验证以下内容:

假设接收缓冲区,即滑动窗口大小为 100 字节。 进一步假设接收者在流中接收到大约 60 个字节,发送 他们的 ACK,现在准备好接收下一个字节,也就是说,带有 序列号=1401。在这种状态下,进一步假设:

  • 接收方没有将这 60 个字节传递给应用程序进程——因此它们仍然在它的窗口中
  • 接收器也接收到并在其窗口中包含字节 1421-1440。

因此,还有 20 个字节的间隙尚未接收。在这种状态下, 接收者的缓冲区被填满——尽管它不能从发送者那里接收到更多的字节 有 20 个字节的间隙等待 SEQ#s 1401-1420 的字节。

在这种情况下有什么遗漏吗?即,每当接收到的字节序列中存在间隙时,该间隙仍会占用接收器窗口中的缓冲区空间。有没有例外?

TIA。

【问题讨论】:

    标签: tcp


    【解决方案1】:

    在这种情况下有什么遗漏吗?即,每当接收到的字节序列中存在间隙时,该间隙仍会占用接收器窗口中的缓冲区空间。有没有例外?

    您不能在接收器的网络缓冲区中找到间隙。如果接收到的段是乱序的,那么接收器将丢弃它并重新确认最后接收到的序列号。

    接收方的假设是网络丢失了一个或多个 IP 数据包(序列号太大)或重复的数据包(序列号太小),并且通过重新确认最后一个好的段,发送方将被戳到重新传输丢失的段。

    【讨论】:

    • 或者最多 TCP 会保留乱序段,直到间隙被填满才确认。
    • 是的 - 你可以。 Q 是缓冲区管理 - 如何处理这些差距。
    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多