【问题标题】:how tcp sliding windows tells the sender the window size?tcp 滑动窗口如何告诉发送方窗口大小?
【发布时间】:2014-01-01 02:07:06
【问题描述】:

一个简化的例子是接收者有 3 个段的缓冲区,然后将 ACK 和一个窗口 3 发送给发送者。 然后,发送者将发送 3 个段。

我的问题是当接收者得到第 3 个段时,它会发回 ACK 和一个窗口大小为 2。这样,发送者将再发送 2 个段。但是在这个阶段,receiver没有足够的buffer,需要size 5。

我理解滑动窗口有什么问题吗?谢谢。

【问题讨论】:

    标签: tcp


    【解决方案1】:
    1. 接收缓冲区有字节,不是“段”。
    2. 在您的示例中,接收到一个字节后,它将发送一个大小为 2 的窗口;发送者最多可以再发送两个字节;它们将与第一个字节一起放入 3 的初始缓冲区。我不知道你从哪里得到 5。

    【讨论】:

    • 我使用段而不是字节来简化。让我们以“字节”的方式交谈。发送方在开始时已经发送了 3 个字节,因为第一个窗口是 3。如果第二个窗口是 2,发送方将再发送 2 个。如您所见,3+2=5。感谢您的回复。
    • 1.犯错绝非易事。 2. 发件人没有再发两个。你从发送三个开始。接收方确认一个并发送一个窗口大小为 2。这让发件人在一个被确认后再发送两个。它已经这样做了。在获得允许它的接收窗口之前,它不能再发送。
    • 对不起,我还是不明白。发送方先发送了 3 个字节,然后得到了一个大小为 2 的窗口(假设第二个字节和第三个字节还没有到达)。那么发送方可以再发送两个字节(第四个字节和第五个字节),对吧?
    • 窗口大小是衡量有多少未确认的字节可以在飞行中。在您的示例中,有两个未确认的字节在飞行中,这完全占了广告窗口,因此发件人无法再发送。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2013-01-01
    • 2013-09-19
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多