计网之流量控制和可靠传输

本文探讨流量控制与可靠传输机制,包括数据链路层和传输层的流量控制手段,如停止-等待协议和滑动窗口协议。通过分析停止-等待协议的优缺点,引入后退N帧(GBN)和选择重传(SR)协议,阐述如何提高信道利用率和实现高效可靠的传输。滑动窗口协议中,WTmax和WRmax的最佳设置以及接收方的缓存策略也是关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流量控制与可靠传输机制

     数据链路层的流量控制

产生原因:较高的发送速度和较低的接收能力不匹配

数据链路层的流量控制是点对点,而传输层的流量控制是端到端

数据链路层流量控制手段:接收方收不下就不回复确认

传输层流量控制手段:接收端给发送端一个窗口公告

流量控制方法

停止-等待协议

每发送完一个帧就停止发送,等待对方的确定,在收到确认后再发送下一个帧

(发送窗口大小=1,接收窗口大小=1)

  1. 为什么要有停止-等待协议
    1. 除了比特出差错,底层信道还会出现丢包问题(丢包:物理线路故障, 设备故障,病毒攻击,路由信息错误等原因,会导致数据包的丢失)。为 了实现流量控制
  2. 研究停止-等待协议的前提
    1. 在单通条件下
  3. 停等协议有几种应用情况
    1. 无差错情况
      • 没发送1个数据帧就停止并等待,因此用1bit来编号就够
    2. 有差错情况
      • 数据帧丢失或检错到帧出错
        1. 发送一个帧并启用一个超时计时器(超时计时器设置的重传时间应当比帧传输的平均RTT【往返时间】更长)超时重传帧
          1. 发完一个帧后,必须保留它的副本
          2. 数据帧和确认帧必须编号
      • ACK丢失
      • ACK迟到

停等协议性能分析

信道利用率低

信道利用率U=TD/TD+RTT+TA

TD为发送方的发送时延

RTT往返时延

TA确认帧的发送时延

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

信道利用率=(L/C)/T

L为T内发送L比特数据

C为发送方数据传输率

T为从开始发送数据,到收到第一个确认帧为止

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

滑动窗口协议

  1. 后退N帧协议(GBN)

(发送窗口大小>1,接收窗口大小=1)

GBN协议的弊端

积累确认->批量重传

解决方法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序 到达的帧

  1. 选择重传协议(SR)

(发送窗口大小>1,接收窗口大小>1)

链路层中窗口数值大小固定

SR发送方必须响应的三件事

  1. 上层的调用

从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上一层之后再传输

  1. 收到一个ACK

如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记已接受,如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧

  1. 超时时间

每个帧都有自己的定时器,一个超时事件发生后只重传一个帧

SR接收方要做的事

来者不拒(窗口内的帧)

SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将 被缓存,并返回给发送方一个帧的确认帧【收谁确认谁】,直到所有 帧(即序号更小的帧)都被收到为止,这时才可以将以一批帧按序交 付给上层,然后向前移动滑动窗口

如果收到窗口序号外(小于窗口下界)的帧,就返回一个ACK,其他 情况就忽略

滑动窗口长度

发送窗口最好等于接收窗口。(大了会益处,小了没意义)

WTmax =WRmax=2(n-1)

WTmax 为发送窗口

WRmax为接收窗口

n为比特位(由帧的序号确认) 例如 0 1 2 3四个序号,n为2

SR协议重点总结

  1. 对数据帧逐一确认,收一个确认一个
  2. 只重传出错帧
  3. 接收方有缓存
  4. WTmax =WRmax=2(n-1)

可靠传输,滑动窗口,流量控制

可靠传输:发送端发啥,接收端收啥

流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧

滑动窗口解决

  1. 流量控制(收不下就不给确认,想发也发不了)
  2. 可靠传输(发送方自动重传)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值