Alex_McAvoy

想要成为渔夫的猎手

单帧滑动窗口与停止-等待协议

【概述】

对于数据链路层中流量控制与可靠性传输机制,其可分为停止等待 ARQ后退 N 帧 ARQ选择性重传 ARQ三种

在停止等待 ARQ 中,源站发送单个帧后,必须停止并等待确认帧

从滑动窗口机制的角度来看,停止-等待协议相当于发送窗口和接收窗口大小均为 $1$ 的滑动窗口协议,即单帧滑动窗口

【无差错情况】

无差错的情况下,发送方发送的数据帧交替的用 01 来标识,接收方发送的对应确认帧则用 ACK0ACK1 来表示确认,由于每发送一帧就停止等待,因此仅需要用 1 bit 即可完成编号

【差错情况】

在停止-等待协议中,可能会出现以下差错:

  1. 数据帧丢失或到达接收方的数据帧遭到破坏
  2. 数据帧正确但确认帧遭到破坏
  3. 数据帧正确但确认帧迟到

对于第一种差错,发送方设置了超时计时器,若在一个帧发送后,计时器满仍未收到确认帧,则会再次发送相同的数据帧,直到该数据帧无错误到达接收方并且发送方收到确认帧为止;对于接收方来说,若数据帧丢失,其没有收到数据帧,故不会进行任何操作,若利用差错控制技术检测出数据帧出错,则直接丢弃数据帧

对于超时计时器来说,每次发送一个数据帧就会启动一次,其设置的重传时间比帧传输的 平均 RTT 要更长一些

对于第二种差错,此时接收方已经收到正确数据帧,但发送方收不到确认帧,发送方会在计时器满后重传该数据帧接收方收到同样的数据帧后会丢弃该重复帧,然后重传确认帧

对于第三种差错,此时接收方已经收到正确数据帧,但发送方在超时重传时间内收不到确认帧,因此发送方重传该数据帧接收方收到同样的数据帧后丢弃该重复帧,然后重传确认帧,在若干时间后,接收方收到了之前迟到的确认帧,其会比对确认帧的编号,发现 ACK 迟到后,收下就丢弃

【性能分析】

对于停止等待协议来说,设 $T_D$ 为数据帧发送时延,$T_A$ 为确认帧发送时延,$RTT$ 为往返时延

那么,一个数据帧的发送周期为:

设在这一个发送周期 $T$ 内,发送了 $L$ 比特的数据,发送方数据传输率为 $C$,那么整个信道的有效发送时间为:

信道利用率,即信道的效率,其是针对于发送方而言的,指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比例,即:

进一步,可得信道吞吐率为:

感谢您对我的支持,让我继续努力分享有用的技术与知识点!