假设发送方和接收方都有一个16尺寸的缓冲区,窗口大小为7。
换句话说,每一面都有一个缓冲区,一个阵列,可以存储16帧。每个帧都有一个适合16帧缓冲区(数组中的索引)的id。接收器有一个窗口,在任何给定时间都可以接受任何顺序的7帧。当填充缓冲区中最旧的帧时,窗口将滑动一次。
我现在的问题是,让我们说如果一个帧在路上迷路了,但不知何故让它回来太晚了。接收器太迟了,它实际上填满了帧缓冲区的下一个圆圈。
如何避免在第6步发生的事情? 我应该发送整个窗口的CRC吗? CRC并不完美,所以可能还有问题。
我目前通过C中的UDP套接字执行此操作,因此使用C标记。