今天看啥  ›  专栏  ›  FrankerSung

停止-等待协议

FrankerSung  · 简书  ·  · 2019-04-03 23:19

停止-等待协议

  1. 为什么要有停止-等待协议?
    除了比特出差错,底层信道还会出现丢包问题。
    为了实现流量控制。

丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

  1. 研究停等协议的前提?
    虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
    因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
    "停止-等待"就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
  2. 停等协议有几种应用情况?
    无差错情况&有差错情况

停等协议一一无差错情况


无差错情况

停等协议一一有差错情况

  1. 数据帧丢失或检测到帧出错


    数据帧丢失或检测到帧出错
  1. ACK丢失


    ACK丢失
  1. ACK迟到


    ACK迟到

停等协议性能分析

信道利用率
发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

信道利用率 = \frac{L/C}{T}

T:发送周期--从开始发送数据到收到第一个确认帧为止
L:T内发送L比特数据
C:发送方数据传输率

信道吞吐率 = 信道利用率 * 发送方的发送速率

停等协议的信道利用率 U = \frac{T_D}{T_D + RTT + T_A}


例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为( )。

\begin{equation} \begin{split} 80\% &= \frac{L/4}{L/4 + 2 * 30ms}\\ &= \frac{L}{L+2 * 30 ms * 4kb/s}\\ \end{split} \end{equation}
=> L = 960bit




原文地址:访问原文地址
快照地址: 访问文章快照