后退N帧协议(GBN)
- 一、后退N帧协议中的滑动窗口
- 二、GBN发送方必须响应的三件事
- 三、GBN接收方要做的事
- 四、滑动窗口长度
一、后退N帧协议中的滑动窗口
发送窗口:发送方维持一组连续的允许发送的帧的序号。
接收窗口:接收方维持一组连续的允许接收帧的序号。
二、GBN发送方必须响应的三件事
1、上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回上层,暗示上层窗口已满。上层等一会再发送。
2、收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,表明接收方已经收到n号帧和它之前的全部帧。
3、超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
三、GBN接收方要做的事
1、如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
2、其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)
四、滑动窗口长度
若采用n个比特对帧编号,那么发送窗口的尺寸Wt应满足:1 ≤ Wt ≤ 2^n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。