Day6:可靠数据传输的原理

本文详细介绍了可靠数据传输(rdt)的原理,从简单的rdt1.0在完全可靠的信道上工作,到rdt2.0处理比特差错,再到rdt2.1和rdt2.2引入序号和ACK/NAK机制,最后到rdt3.0应对分组丢失的问题,通过超时重传提高可靠性。文章深入探讨了流水线、滑动窗口协议,并对比了GBN和SR协议的特点。
摘要由CSDN通过智能技术生成

加油!偷博仔
今天遇见两首顾城的诗

黑夜给了我黑色眼睛
我却用它寻找光明
————《一代人》 1979年4月


在你的门前
我堆起一个雪人
代表笨拙的我
把你久等
你拿出一颗棒糖
一颗甜甜的心
埋进雪里
说这样就会高兴
雪人没有笑
一直没作声
直到春天的骄阳
把它融化干净
人在哪呢
心在哪呢
小小的泪潭边
只有蜜蜂
————《雪人》1980年2月

好,沉静了心情,正片开始。


可靠数据传输原理。

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

 rdt(reliable data transfer))在应用层、传输层和数据链路层都很很重要
 是网络Top 10问题之一重要
什么才叫可靠呢,传输的数据,原原本本交付,不出错不重复不失序不丢失

Reliable&& unreliable channel
在这里插入图片描述在这里插入图片描述

1.1可靠数据传输:问题描述

在这里插入图片描述
中间两个大方框 就是rdt实体
这四个函数,分别是接收方和发送方rdt与上层、下层的接口


1.2可靠数据传输:问题描述(续)

我们将:
 渐增式地开发可靠数据传输协议( rdt )的发送方和接收方
 只考虑单向数据传输
 但控制信息是双向流动的!
 双向的数据传输问题实际上是2个单向数据传输问题的综合
 使用有限状态机 (FSM) 来描述发送方和接收方

在这里插入图片描述

所谓渐增式:
就是先假定可靠传输的条件一一具备,然后逐个假定条件不可靠,rdt逐个针对该不可靠条件,实现哪些机制。

然后采用有限状态机来描述状态的改变。


下面一步一步升级rdt

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

Rdt1.0描述:

  •  下层的信道是完全可靠的
     没有比特出错
     没有分组丢失
  •  发送方和接收方的FSM
     发送方将数据发送到下层信道
     接收方从下层信道接收数据
    在这里插入图片描述
    发送方:上层来了data,封装成packet、下发packet;
    接收方:下层来了packet,解封装,上交data

这就相当于,rdt啥也不干。啥事下属都干好了,rdt只管抽烟喝酒烫头 (只管来什么发什么,送什么收什么)


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

Rdt2.0描述:

  •  下层信道可能会出错:将分组中的比特翻转
     用校验和来检测比特差错

  •  问题:怎样从差错中恢复:
     确认(ACK, acknowledgment):接收方显式地告诉发送方分组已被正确接收
     否定确认( NAK,negative acknowledgment): 接收方显式地告诉发送方分组发生了差错

    • 发送方收到NAK后,发送方重传分组
  •  rdt2.0中的新机制:采用差错控制编码进行差错检测
    发送方差错控制编码、缓存
     接收方使用编码检错
    接收方的反馈:控制报文(ACK,NAK):接收方→发送方
     发送方收到反馈相应的动作


rdt2.0:FSM描述
在这里插入图片描述
发送方,有两个状态等待上层调用和等待ACK或NAK

  • 发送方有一个副本,以便检错重传
  • 发送方在第一个状态,等待上层调用,来了一个data,计算checksum, 封装成packet,下发。
  • 于是转换成第二个状态,等待ack或nak 。

接收方,只有

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

adingable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值