3.4.1 流量控制、可靠传输
流量控制是指接受方控制发送方的速率,别一口气传太多接受不过来,让接受方有足够的缓存空间接受每一帧。
可靠传输是为了避免有些丢失或出现错误,要求重传。可靠传输方案着眼于重传。对于链路层来说,可靠传输并不是必需的,因为总是可以把任务交给上层,不过在底层不够可靠的情况下提供可靠传输可以提高效率。,有线的局域网,也就是接下来介绍的以太网,并不要求可靠传输,而无线的局域网就会实现可靠传输。
3.4.2 停止-等待协议
发送方每次只允许方式一帧,接受方每次成功接受一帧后,返回一个确认帧。
复制王道的图
3.4.2.1 停-等协议利用率计算
我们可以计算得到停止-等待协议的利用率 为
3.4.3 滑动窗口机制
3.4.3.1 滑动窗口协议工作原理
滑动窗口机制: 在任意时刻,发送方维持一组连续的帧序号,称之为发送窗口。接受方也维持一组帧序号,称接受窗口。因此每次确认都是确认一组,没收到确认的情况下还可以发几帧。
k比特帧序号需要和发送窗口和接受窗口满足如下关系
3.4.3.2 滑动窗口协议信道利用率计算
3.4.3.3 滑动窗口协议大小与分组序号字段比特位数间的约束关系
3.4.4 后退N帧协议(GBN)
停止等待协议的利用率很低,在大多数时间内,我们都在等待。而滑动窗口的好处就在于,允许我们等待的时候继续发。
接受方的窗口长度为1,对于确认,接受方可以对每一个包逐一发送确认,也可以累积确认。但总而言之,只要确认了,就说明之前的全都被确认了。
同时我们可以讲一下公式:
当我们发送出一帧之后,在等待这一帧回来的时间中,要让信道利用率最高,
最理想的情况就是N足够大,我们一直在发;但是当N不够大的时候,我们的帧长越大,我们发送的帧就越少。
我们要尽可能的用慢我们的带宽,也就是发送速率。当数据帧很大的时候,我们的往返时间就一直在尽可能的多花时间在处理带宽上。
左边的发送窗口
GBN协议的窗口固定为1,严格按序接受。
假设我们的缓存窗口仍然是1,那么我们就没办法
如果某一帧超时或者出错,发送方不但需要重传这一帧,还要重传之后所有发送了但还没被确认的帧。
那么在选择重传协议下,假设发送窗口发了5个包0-4,接受窗口存了3个包,我们此时ACK0
这是因为序号是循环使用的。假设发送窗口发了8个包,8个包全部丢失了,我们不得不ACK0来表示需要接受第一个包,但因为序号循环使用。发送方会以为全部收到了。
3.4.4.1 选择重传协议(SR)
选择重传协议需要逐一确认每个包。
选择重传协议