滑动窗口协议


滑动窗口协议是数据链路层协议,用于可靠且顺序地交付数据帧。滑动窗口也用于传输控制协议 (TCP)

在此协议中,发送方可以在收到接收方的确认之前一次发送多个帧。术语“滑动窗口”指的是用于保存帧的虚拟框。滑动窗口方法也称为窗口技术。

工作原理

在这些协议中,发送方有一个称为发送窗口的缓冲区,接收方有一个称为接收窗口的缓冲区。

发送窗口的大小决定了出站帧的序列号。如果帧的序列号是一个 n 位字段,则可以分配的序列号范围为 0 到 2𝑛−1。因此,发送窗口的大小为 2𝑛−1。因此,为了容纳 2𝑛−1 的发送窗口大小,选择一个 n 位序列号。

序列号按模 n 编号。例如,如果发送窗口大小为 4,则序列号将为 0、1、2、3、0、1、2、3、0、1,依此类推。序列号中的位数为 2,以生成二进制序列 00、01、10、11。

接收窗口的大小是接收方一次可以接受的帧的最大数量。它决定了发送方在收到确认之前可以发送的帧的最大数量。

示例

假设我们有发送窗口和接收窗口,每个窗口的大小为 4。因此,两个窗口的序列号将为 0,1,2,3,0,1,2,依此类推。下图显示了发送帧和接收确认后窗口的位置。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

滑动窗口协议的类型

滑动窗口 ARQ(自动重传请求)协议分为两类:

  • 后退 N ARQ

    后退 N ARQ 允许在收到第一个帧的确认之前发送多个帧。它使用滑动窗口的概念,因此也称为滑动窗口协议。帧按顺序编号,并发送有限数量的帧。如果在一段时间内未收到某个帧的确认,则从该帧开始的所有帧都将重新传输。

  • 选择重传 ARQ

    此协议也允许在收到第一个帧的确认之前发送多个帧。但是,这里只重新传输错误的或丢失的帧,而正确的帧则被接收并缓冲。

更新于:2023年10月31日

84K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告