RDT可靠数据传输
目标:不错,不丢,不乱
情景1:底层信道完全可靠
- 不会发生数据错误
- 不会丢弃分组
RDT设计:
- 只需目的端口与源端口,以及长度即可。
情景2:底层信道有数据错误
-
存在数据错误
-
不会丢弃分组
RDT设计:
-
差错检测:校验和
-
确认机制:ACK,接收方显式告知分组已经正确接受;NAK,接收方显式告知分组有错误
-
重传机制:发送方收到NAK后,重传分组
补充:若ACK/NAK出错,会产生重复分组:
-
序列号机制:发送方给每一个分组添加序列号,接收方丢掉序列号重复的分组
-
去掉NAK:接收方当收到错误分组时,发送上一个序列号的ACK表示出错
情景3:底层信道有丢弃分组
- 存在数据错误
- 存在丢弃分组
RDT设计:
- 定时器机制:发送若没有收到ACK,重传
RDT性能优化
Go-Back-N协议
特点:
- 累积确认
- 接收方没有缓存
- 只有一个定时器
SR协议
特点:
- 接收方设置缓存机制
- 位每个分组设置定时器
缺陷:无法区分前后的窗口
N
S
+
N
R
<
=
2
k
(
k
为
窗
口
位
数
)
N_S+N_R <= 2^k(k为窗口位数)
NS+NR<=2k(k为窗口位数)