加油!偷博仔
今天遇见两首顾城的诗
黑夜给了我黑色眼睛
我却用它寻找光明
————《一代人》 1979年4月
在你的门前
我堆起一个雪人
代表笨拙的我
把你久等
你拿出一颗棒糖
一颗甜甜的心
埋进雪里
说这样就会高兴
雪人没有笑
一直没作声
直到春天的骄阳
把它融化干净
人在哪呢
心在哪呢
小小的泪潭边
只有蜜蜂
————《雪人》1980年2月
好,沉静了心情,正片开始。
文章目录
- 可靠数据传输原理。
-
- 一、可靠数据传输(rdt)的原理
- 1.1可靠数据传输:问题描述
- 1.2可靠数据传输:问题描述(续)
- 2.1Rdt1.0: 在可靠信道上的可靠数据传输
- 2.2Rdt2.0:具有比特差错的信道
- 2.3rdt2.0的致命缺陷!-> rdt2.1
- 2.3rdt2.2:无NAK的协议
- 2.4rdt3.0:具有比特差错和分组丢失的信道
-
- 2.4.1流水线(pipeline)(提高链路利用率)
- 2.4.2通用(为后文协议铺垫):滑动窗口(slide window)协议
- 2.4.3 发送窗口滑动过程-相对表示方法
- 2.4.4 滑动窗口(slide window)协议——接收窗口
- 2.4.5 GBN协议和SR协议的异同
- 2.4.6流水线协议:总结
- 2.4.7 GBN:发送方与接收方,扩展的FSM,运行的GBN图
- 2.4.8 选择重传SR
- 2.4.9对比GBN和SR与窗口的最大尺寸![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6edfd5951242154c0c88329468f91fd0.png)
可靠数据传输原理。
一、可靠数据传输(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 。
接收方,只有