可靠数据传输(RDT)的原理

可靠数据传输(rdt)的原理

  • rdt在应用层,传输层和数据链路层都很重要
  • 是网络Top 10问题之一
  • 信道的不可靠特点决定了可靠数据传输协议(rdt)的复杂性

总体来说就是为了实现可靠,下方信道要是很不可靠,那么rdt就要很可靠,很复杂,否则反之

Rdt1.0:在可靠信道上的可靠数据传输
需求
  • 下层信道完全可靠

没有比特丢失

没有分组丢失

  • 发送方和接收方的FSM

发送方将数据发送到下层信道

接收方从下层信道接收数据

Rdt2.0:具有比特差错的信道
出错

下层信道可能出错:将分组中的比特翻转

解决方式
  • 确认(ACK):接收方显示地告诉发送方分组已被正确接收
  • 否定确认(NAK):接收方显式地告诉发送方分组发生了差错

发送方接收到ACK发送下一数据,接收到NAK发送上一数据

如果ACK或者NAK出错,就再发一次上一次的数据,重复没关系,接收方可以检查出来

Rdt2.1:接收方处理出错的ACK/NAK
发送方
  • 在分组中加入序列号
  • 两个序列号(0,1)就足够了

​ 一次只发送一个未经确认的分组

  • 必须检测ACK/NAK是否出错(需要EDC)

  • 状态数变成了

接收方
  • 必须检测接收到的分组是否是重复的

​ 状态会指示希望接收到得到分组的序号是0还是1

  • 注意:接收方并不知道发送方是否正确的接收到了ACK/NAK

​ 根据后面发送方的发送的东西判断

Rdt2.2:无NAK

为ACK做编号

如果失败了就谢谢之前的packge——返回上一个编号的ACK

Rdt3.0:超时计时器

设定一个超时重传机制

发送方在发送一个分组之后开启超时计时器,如果超时了就重传

用来解决ACK或者packge丢失

发送方在等0号ACK时要是来了1号ACK或者其他的就重传0号packge

滑动窗口协议
发送缓冲区

存放已发送但未确定是否接收的packge

发送窗口

缓冲区的子集

image-20221021162237924

最开始后沿等于前沿,之后每发送一个分组,前沿移动一个单位

发送窗口前沿移动

image-20221021163024812

发送窗口后沿移动

image-20221021163439342

停止等待协议

是滑动窗口协议中缓冲区为1的情况

发一个packge之后等待回应之后再发第二个

流水线协议

是滑动窗口协议中缓冲区大于1的情况

GBN(go back n)

接收区窗口等于1

超时之后发送方窗口中的分组全部重发

SR(selective repeat)

接收区窗口大于1

SR异常情况下的二窗口互动
发送窗口
  • 新分组落入发送缓冲区范围,发送–>前沿滑动
  • 超时重发机制让发送端将超时的分组重新发送出去
  • 来了乱序分组的确认–>后沿不向前滑动–>新的分组无法落入发送缓冲区的范围(此时如果发送缓冲区有新的分组可以发送)
接收窗口
  • 收到乱序分组,落入到接收窗口范围内,接收
  • 发送该分组的确认,单独确认
总结
GBN
  • 发送端最多在流水线中有N个未确定的分组
  • 接收端只是发送累计型确认cumulative ack
  • 发送端拥有对最老的为确认分组的定时器
    • 只需要设置一个定时器
    • 当定时器到时时,重传所有未确认分组
  • 发送窗口最大值2n-1
SR
  • 发送端最多在流水线中有N个未确认的分组

  • 接收方对每个到来的分组单独确认individual ack(非累积确认)

  • 发送方为每个未确认的分组保持一个定时器

    • 当超时定时器到时,只是重发到时的未确认分组

当定时器到时时,重传所有未确认分组

  • 发送窗口最大值2n-1
SR
  • 发送端最多在流水线中有N个未确认的分组

  • 接收方对每个到来的分组单独确认individual ack(非累积确认)

  • 发送方为每个未确认的分组保持一个定时器

    • 当超时定时器到时,只是重发到时的未确认分组
  • 发送窗口最大值2n-1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值