GBN发送方要做的事:
1.上层的调用:
上层要发送的数据的时候,发送方先检查窗口有没有满,如果没有满,则就产出一个帧并将其发送;如果窗口满了,发送方只需将数据返回给上层,暗示上层窗口已满,上层等一会再发送。(实际上,发送方可以缓存这些数据,窗口不满时再发送帧)
2.收到了一个ACK:
GBN协议中,对n号帧的确认采用 累计确认的方式,标明接收方已经收到n号帧 和它之前的全部帧
3,超时事件:
协议的名字为后退N帧协议,来源于出现丢失和时延过长帧时发送方的行为,就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事:
1.如果正确收号n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层
2,其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK.接收方无需缓存任何失序帧,只要维护一个信息expectedseqnum(下一个按序接收的帧序号)
窗口长度可以无限吗?
若采用n个比特对帧编号,那么发送窗口的尺寸Wt应满足:1<= Wt <= 2n- (2的n次方-1)。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧
GBN协议重点总结:
1.累积确认
2.接收方只按顺序接收帧,不按顺序的无情丢弃
3.确认序列号最大的,按序到达的帧
4.发送窗口最大为2的n次方-1,接收窗口大小为1
GBN协议性能分析
因连续发送数据帧而提高了信道利用率
在重传时必须把原来已经正确传送的数据帧重传,时传送效率降低
为了解决这个问题。由此引入: 选择重传协议,把这个缺点进行完善