上一篇博文介绍了回退N帧协议,然而当一个分组丢失或被破坏,发送方要重新发送所有未完成分组,即使有些失序分组已经被安全完整地接收了,所以回退N帧协议也不是那么高效。 所以选择性重复协议( Selective-Repeat( SR) protocol),经被设计出来,正如其名字所示,只是选择性重发分组,即那些确实丢失的分组。
1.窗口
选择性重复协议也使用两个窗口:一个发送窗口和一个接收窗口。然而,这些窗口与回退 N帧中的不同。首先,发送窗口的最大值更小;它是 2m–1。这里的原因我们稍后讨论。第二,接收窗口和发送窗口大小一致。下面是发送窗口。
选择性重复协议允许和接收窗口一样多的分组失序到来并被存储,直到有一组连续分组被传递到应用层。因为发送窗口和接收窗口的大小是相同的,在发送窗口的所有分组可以失序到达并被存储,直到它们可以被传递。然而,我们需要强调的是,在可靠协议中,接收方从不向应用层传递失序分组。下面是接受窗口
2.计时器
理论上讲,选择性重复为每个未完成分组使用一个计时器。当一个计时器终止,只有一个相应分组被发送。换言之, GBN(回退 N