<计算机网络自顶向下> 可靠数据传输的原理

本文详细介绍了rdt在不同层次的应用,从基本的RDT1.0到处理比特差错和分组丢失的RDT3.0,包括滑动窗口协议和GBN/SR协议的区别。文章讨论了如何通过有限状态机管理和错误恢复,以及超时重传策略来实现可靠的数据传输。

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

可靠数据传输(rdt:Reliable Data Transfer)的原理

  • rdt在应用层,传输层和数据链路层都很重要
  • 是网络TOP10问题之一
  • 信道的不可靠特点决定了可靠数据传输rdt的复杂性
  • rdt_send: 被上层(如应用层)调用,以将数据交付给下方的发送实体
  • udt_send: 被rdt调用,用一将分组放到不可靠的信道上传输到接收方
  • rdt_rcv: 放分组通过信道到达接收方的时候调用(修改下层的错误,传递给上层正确的信息)

  • 下面将渐增的开发rdt的发送方和接收方(上层和下层的接口都定下来以后,如何安排本层协议实体需要做那些动作,安排那些时空资源来向上层提供可靠的服务)
    • 条件;只考虑单项数据传输(但是接收方有可能会返回给发送方控制信息一类的东西,所以控制信息是双向流动的)
    • 双向的数据传输问题实际上是两个单项数据传输问题的综合
    • 使用FSM(有限状态机)来描述发送方和接收方(在某一状态的时候,下一个状态只由下一个事件唯一确定
      把可靠传输依靠下层信道比作一个团队领导依靠小弟,下面小弟越没用领导的工作就越复杂,所以需要先假设他们可靠程度高一点,渐增的设计领导的工作这样更加容易一点而不是毫无头绪的直接从头设计领导工作,rdt同理

Rdt1.0: 在可靠信道上的可靠数据传输

  • 下层信道是完全可靠的
    • 没有比特出错
    • 没有分组丢失
  • 发送方和接收方的FSM
    • 发送方将数据发送到下层信道
    • 接收方从下层信道接收数据
  • 总的来说rdt1.0要做的就是封装和解封装

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

  • 下层信道可能会出错,将分组中的比特翻转
    • 用校验和来检测比特差错
  • 从差错中恢复的办法
    • 确认(ACK):接收方显式的告诉发送方分组已经被正确接受
    • 否定确认(NACK): 接收方显式的告诉发送方发生了差错:发送方收到NAK以后重传分组
  • rdt2.0中的新机制:使用差错控制编码来进行差错检测
    • 发送方差错控制编码、缓存
    • 接收方使用编码检错
    • 接收方的反馈,控制报文(ACK.NAK):接收方->发送方

发送方收到反馈相应的动作

  • rdt2.0致命的缺陷
    • ACK和NACK也有可能出错
    • rdt2.1引入序号可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值