zl程序教程

您现在的位置是:首页 >  其他

当前栏目

后退N帧协议(GBR)

2023-04-18 15:23:47 时间

后退N帧协议(GBR)

后退N帧协议中的滑动窗口

GBN发送方必须响应的三件事

1、上层的调用

上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

2、收到了一个ACK

GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。

累计确认:一般地讲,如果发送方发了包1,包2,包3,包4;接受方成功收到包1,包2,包3。那么接受方可以发回一个确认包,序号为4(4表示期望下一个收到的包的序号;当然你约定好用3表示也可以),那么发送方就知道包1到包3都发送接收成功,必要时重发包4。一个确认包确认了累积到某一序号的所有包,而不是对每个序号都发确认包。

3、超时事件

协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。

GBN接收方要做的事

运行中的GBN

假设发送窗口尺寸为4

出现超时:发送方重传所有已发送但未被确认的帧。

滑动窗口长度

GBN协议重点总结

GBN协议性能分析

总结