📜  Go-Back-N 和选择性重复协议之间的区别(1)

📅  最后修改于: 2023-12-03 15:15:21.489000             🧑  作者: Mango

Go-Back-N 和选择性重复协议之间的区别

Go-Back-N (GBN) 和选择性重复协议 (Selective Repeat Protocol) 都是数据链路层使用的可靠传输协议,它们的目的都是确保数据的可靠传输,尽管它们的实现方式不同。

Go-Back-N
工作原理

GBN 是一种需要发送方和接受方之间配合工作的可靠传输协议。发送方依次地发送数据帧,接受方接收到正确的数据帧时发送 ACK 确认帧,发送方得到确认后再发送下一帧。

如果发送方没有收到与当前帧对应的 ACK 确认帧,它会等待一段时间,如果仍未收到确认帧,则重新发送前面的所有帧。

特点

GBN 协议实现简单,但是在某些情况下效率较低。当信道的延迟或丢包率较高时,发送方会频繁地重传数据帧,导致网络带宽浪费。

选择性重复协议
工作原理

与 GBN 协议不同,选择性重复协议并不要求发送方和接受方配合工作,接受方带有一个滑动窗口,可以接收任何序列号的帧,而不仅仅是下一个序列号的帧。

接受方会将收到的帧缓存下来,并按序号排序,然后将该序号对应的 ACK 确认帧发送给发送方。发送方接收到 ACK 确认帧后,会将该序号之前的所有数据帧都标记为已确认,并从其发送缓冲区中删除。

特点

选择性重复协议可以更好地利用网络带宽,因为它不需要在发生了错误的情况下重新传输前面的所有帧。然而实现难度相对较大。

区别

GBN 协议和选择性重复协议都是数据链路层使用的可靠传输协议。它们的主要区别在于:

  1. GBN 协议的发送方需要等待接收方每次 ACK 确认,而选择性重复协议的发送方可以任意发送帧。
  2. 在发生丢包时,GBN 协议需要重新发送下一个序列号之前的所有帧,而选择性重复协议只需要重新发送丢失的帧。
  3. 选择性重复协议可以更好地利用网络带宽,而 GBN 协议可能会导致网络带宽浪费。

总之,GBN 协议和选择性重复协议都有其优点和缺点,在不同的网络环境下选择合适的协议来实现可靠传输很重要。