数据链路层:滑动窗口协议
滑动窗口协议基本概念
滑动窗口协议是流量控制协议;流量控制是通过限制发送方发出的数据流量,从而使发送速率不超过接收方接收速率的一种技术;主要由两种方式:
①停止-等待流量控制:其工作原理时发送方发出一帧,等待应答信号到达再发送下一帧;接收方每收到一帧后,返回一个应答信号,表示可以接收下一帧,如果接收方不返回应答,则发送方必须一直等待;
②滑动窗口流量控制:停止-等待流量控制中每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,传输效率很低;而滑动窗口流量控制允许一次发送多个帧,通过发送窗口Wt和接收窗口Wr来达到流量控制的目的。
发送窗口工作流程
接收窗口工作流程
滑动窗口协议的分类
通过滑动窗口实现流量控制主要由三种滑动窗口协议:停止-等待协议、后退N帧(Go-Back-N,GBN)协议和选择重传(Selective Repeat,SR)协议;
(1)停止-等待协议
停等协议实际上是基于停止-等待流量控制技术的,优化加入了重传定时器以解决停止-等待技术存在的持续停止等待死锁问题;若从滑动窗口机制角度来理解,停止-等待协议是发送窗口和接收窗口均为1的滑动窗口协议;停止-等待协议在发送方传输一个帧后,必须等待接收方的确认才能发送下一帧,若在规定时间内没有收到确认,则发送方超时,需要重传原始帧;
在停等协议中,除数据帧丢失外,还可能出现两种差错:
①到达接收方的帧可能已经遭到破坏,接收方利用差错检测技术检出后,简单的将该帧丢弃;发送方通过计时器超时重传的方式完成数据帧无错误送达;
②确认帧杯破坏或者丢失致使发送方不断地重新发送该帧,从而导致接收方不断的重新发送该帧;为解决此问题,发送方可在每个待发的帧的头部加一个编号而接收方对每个到达帧的编号进行识别,从而判断是新帧还是要抛弃的重复帧。
停等协议信道利用率很低,在忽略发送方和接收方处理实时延的情况下,数据帧发送的总时延T=数据帧的发送时延TD+确认帧的发送时延TA+传播时延TP*2;
信道利用率=数据帧的发送时延TD/数据帧发送的总时延T。
(2)GBN协议
后退N帧协议基于滑动窗口流量控制技术;它的发送窗口大小>1,接收窗口大小=1;基本原理是发送方发送完一个数据帧后,不是停下来等待确认帧而是可以连续发送若干数据帧;接收方无需对每个正确的数据帧立即回发确认帧,即对某一数据帧的确认就表明该数据帧和此前所有的数据帧均已准确无误的收到;若某个帧出错了,接收方只能简单地丢弃该帧及其所有的后续帧(按顺序接收帧);发送方超时后需重发该出错帧及其后续的所有帧。
(3)SR协议
选择重传协议也是基于滑动窗口流量控制技术的;它接收到的尺寸都大于1,以便能一次性接收多个帧;
基本原理如下:
发送方:可在为收到对方确认帧的情况下,将序号落在发送窗口内的多个数据帧全部发送出去;当发送方按顺序收到确认时,发送窗口才能向前滑动;若收到未按顺序到达的确认帧时,记录该帧已经正确送达一方错误重传,且窗口不向前滑动;
接收方:可接收未按序到达但检测无误并且编码序号落在接收窗口内的数据分组,在此情况下,为使发送方能够感知到特定帧的差错,只能对每个正确帧进行逐一确认;另外,接收方只能在按序接收数据帧之后接收窗口才能向前滑动。
信道利用率和信道吞吐量
信道利用率,也称为信道的效率;可从不同角度类来定义信道的效率,从时间的角度看,信道效率是对发送方而言的是指在发送周期内有效地发送数据所需要的时间占整个发送周期的比率;其中发送周期是发送方从开始发送数据到收到第一个确认帧为止的时间,令单个帧在发送端的发送时延为Td,往返传播时延为RTT,确认帧从接收端到发送端的单程传播时延为Ta;
公式如下
发送周期T=Td+RTT+Ta;
信道利用率=帧的发送时延/T=发送窗口WtTd/T;
信道吞吐量=信道利用率发送方的发送速率。
思维导图
来源地址:https://blog.csdn.net/qq_61480669/article/details/130557459
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341