一.流量控制
1.1由于高发射速度与低接收能力的不匹配,流量控制也是数据链路层的一项重要工作。
1.2数据链路层的业务控制是点对点的,而传输层的业务控制是端到端的。
1.3数据链路层业务控制手段:接收端无法接收时,不响应确认。
传输层流量控制手段:接收方向发送方发布窗口公告。
1.4流量控制的方法
停止-等待协议:在每次发送一帧时停止发送,等待对方确认,在收到确认后发送下一帧。 发送窗口大小为1,接收窗口大小为1 (滑动窗口的特例)。
滑动窗口协议(固定窗口大小) )
-后退n帧协议(wxdmb ) :发送窗口大小大于1,接收窗口大小为1;
-选择重发协议(SR )。 发送窗口大小大于1,接收窗口大小大于1;
1.5 .可靠传输、滑动窗口、流量控制差异
当可靠的传输路径:发送侧被发送时,接收侧被接收。
流控制:控制发射速率,使得接收侧有足够的缓冲空间来接收每一帧。
滑动窗口以解决:
-流控制:不能接收数据,因此不发送确认帧。
-可靠的传输:发送方自动重新发送。
二.停止-等待协商
2.1检测数据帧丢失或帧错误
每次发送帧时,超时计时器:都会启动计时器。
超时计时器必须设置比帧传输的平均RTT长的重发时间。
超时重发:发送帧后,还必须保存该帧的副本,以备超时重发。
数据帧和确认帧需要编号。 可以根据号码判断是否重复。
2.2帧丢失的确认
2.3确认帧的迟到(ACK的迟到) ) ) )。
2.4该协议通道利用率低
发送端在一个发送周期内有效地发送数据所需的时间占整个发送周期的比例。
2.5停机等协议弊端
信道利用率低,可以采用流水线技术,提高利用率。
必须增加序列号的范围;
发送需要缓存多个数据包。
3 .后退n帧协议
3.1 wxdmb发送方需要响应的三件事
上层调用:
如果上层发送数据,发送方首先检查发送窗口是否满,如果不满则生成帧进行发送; 如果窗口已满,提交只会将数据返回到更高级别,并提示更高级别的窗口已满。 高层稍后发送。 (实际上,发送可以缓存这些数据,如果不满意窗口,则发送帧。)。
收到确认:
在wxdmb协议中,对第n帧的确认采用累积确认方案,表示接收侧接收了第n帧及其前面的所有帧。 以最大序列号的确认为基准,无论是否发送了确认,之前的都是确认了收到的。
超时事件:
协议的名称是回退n帧/回退n帧,来源于发生放弃或延长时发送方的行为。 与stop等协议一样,计时器再次用于恢复数据帧和确认帧丢失。 如果发生超时,发送方将重新发送所有已发送但未确认的帧。
3.2 wxdmb接收方应该做的事情
如果第n帧被正确接收,且按照顺序,则接收端对n帧发送确认ACK,并且将该帧的数据部分传递到上层。
剩下的情况都扔掉,为了最近依次接收到的帧重新发送ACK。 接收方只要保持一个信息exepectedseqnum (下一个按顺序接收的帧编号),就不需要缓存不顺序的帧。
3.3幻灯片窗口长度
当采用n位对帧编号时,发送窗口的大小W1必须满足1=W1=2n-1。 这是因为如果发送窗口太大,接收方将无法区分新帧和旧帧。
3.4 wxdmb协议重点
累积确认(也称为顺便确认)。
接收方只按顺序接收帧,不会按顺序无情地舍弃。
确认序列号最大的、按顺序到达的帧。
发送窗口最多为2n-1,接收窗口大小为1。
3.5 wxdmb协议的性能分析
提高通道利用率
在重传时,必须重传本来正确传输的数据帧,传输效率降低。
四.选择重发协议SR
4.1仅重传错误帧设置:个确认(每一个确认帧),同时增大接收窗口,设置接收缓冲区,缓存乱序到达的帧。
4.2选择重发协议的滑动窗口
4.3 SR必须应对的三件事
高级调用
在从上层接收数据后,SR发送端接着检查可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧; 否则,像wxdmb一样,缓存数据或返回到更高层次后再传输。
收到了确认
接收ACK,如果该帧编号在窗口中,则SR发送器将该确认的帧标记为已连接
收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
4.4 SR接收方要做的事
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧,直到所有帧(序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
4.5 运行中的SR
假设接收窗口和发送窗口大小为4.
4.6 滑动窗口长度
如何区分新旧帧:
发送窗口等于接收窗口
W发送窗口max=W接收窗口max=2n-1 n为窗口长度可以用几位二进制编码的二进制位数。
4.7 SR协议重点
对数据帧逐一确认,收到一个确认一个;
只重传出错帧
接收方有缓存
W发送窗口max=W接收窗口max=2n-1