📅  最后修改于: 2023-12-03 15:15:21.489000             🧑  作者: Mango
Go-Back-N (GBN) 和选择性重复协议 (Selective Repeat Protocol) 都是数据链路层使用的可靠传输协议,它们的目的都是确保数据的可靠传输,尽管它们的实现方式不同。
GBN 是一种需要发送方和接受方之间配合工作的可靠传输协议。发送方依次地发送数据帧,接受方接收到正确的数据帧时发送 ACK 确认帧,发送方得到确认后再发送下一帧。
如果发送方没有收到与当前帧对应的 ACK 确认帧,它会等待一段时间,如果仍未收到确认帧,则重新发送前面的所有帧。
GBN 协议实现简单,但是在某些情况下效率较低。当信道的延迟或丢包率较高时,发送方会频繁地重传数据帧,导致网络带宽浪费。
与 GBN 协议不同,选择性重复协议并不要求发送方和接受方配合工作,接受方带有一个滑动窗口,可以接收任何序列号的帧,而不仅仅是下一个序列号的帧。
接受方会将收到的帧缓存下来,并按序号排序,然后将该序号对应的 ACK 确认帧发送给发送方。发送方接收到 ACK 确认帧后,会将该序号之前的所有数据帧都标记为已确认,并从其发送缓冲区中删除。
选择性重复协议可以更好地利用网络带宽,因为它不需要在发生了错误的情况下重新传输前面的所有帧。然而实现难度相对较大。
GBN 协议和选择性重复协议都是数据链路层使用的可靠传输协议。它们的主要区别在于:
总之,GBN 协议和选择性重复协议都有其优点和缺点,在不同的网络环境下选择合适的协议来实现可靠传输很重要。