我一直在经历,试图从一本书中学习这个协议,除了在这一点上他们似乎回避它,他们表示序列位是一个可以发送和接收的帧数,但除此之外他们不再接近它。
我想知道它如何影响具有固定窗口大小的协议。序列位为 3,窗口大小为 4 是否意味着发送方在任何时候都不能发送超过 3 帧?
还是说帧按以下顺序编号:0、1、2、0、1、2
正如你所看到的,我很困惑,但是为了任何帮助!非常感谢:)
我一直在经历,试图从一本书中学习这个协议,除了在这一点上他们似乎回避它,他们表示序列位是一个可以发送和接收的帧数,但除此之外他们不再接近它。
我想知道它如何影响具有固定窗口大小的协议。序列位为 3,窗口大小为 4 是否意味着发送方在任何时候都不能发送超过 3 帧?
还是说帧按以下顺序编号:0、1、2、0、1、2
正如你所看到的,我很困惑,但是为了任何帮助!非常感谢:)
尝试维基百科-> http://en.wikipedia.org/wiki/Sliding_window_protocol
“滑动窗口协议用于需要可靠的有序传递数据包的地方。” 使用附加在每个数据包上的“序列号”来定义数据包的顺序。在传输任何包含实际数据的数据包之前,双向通信双方都同意窗口大小。该窗口大小可以固定或动态更改。
例如,对于客户端到客户端的通信,假设窗口大小为 10 个数据包。依靠序列号,这意味着它最初是从具有序列 0 的数据包到具有序列 10 的数据包。
协议发生并开始数据传输后,客户端 A 将开始发送第一个数据包,其序列号为:1,2,3,4,5,6,7,8,9,10。
当根据序号达到窗口大小(10)时,客户端 A 将停止发送数据包。
客户端 B 以确认 (ACK) 回复它已收到数据包 1、2、3、4。
这意味着窗口从 0-10 移动到 5-14。在固定大小的滑动窗口协议中,偏移量 10 保持不变。
因此客户端 A 能够发送接下来的 4 个数据包,即 11、12、13、14。
一般来说,只要客户端 A 有数据要发送,它就会一直发送,直到达到窗口大小。然后它等待来自另一端的 ACK,然后才能继续再次发送。
序列号指示正在发送的帧是如何编号的。
例如,如果帧从 0 到 7 编号,则它是一个 3 位序列号。
如果帧从 0 到 15 编号,则它是一个 4 位序列号。