计算机网络笔记No.11

可靠数据传输

    • 概述
    • Rdt 1.0: 可靠信道上的可靠数据传输
    • Rdt 2.0:产生位错误的信道
    • Rdt 2.1:发送方, 应对ACK/NAK破坏
    • Rdt 2.2::无NAK消息协议
    • Rdt 3.0:信道既可能发生错误,也可能丢失分组

概述

可靠,即传输的数据不错、不丢、不乱。可靠数据传输对应用层、传输层、链路层都很重要
信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性

分析可靠数据传输协议时:

  • 渐进地设计可靠数据传输协议的发送方和接收方
  • 只考虑单向数据传输,但控制信息双向流动
  • 利用状态机 (Finite State Machine, FSM) 刻画传输协议

可靠数据传输协议基本结构:接口
计算机网络笔记No.11_第1张图片

Rdt 1.0: 可靠信道上的可靠数据传输

Rdt 1.0 中,底层信道完全可靠:(理想情况)

  • 不会发生错误(bit error)
  • 不会丢弃分组

发送方和接收方的FSM独立:
计算机网络笔记No.11_第2张图片

Rdt 2.0:产生位错误的信道

  1. 在 Rdt 2.0 中,底层信道可能翻转分组中的位(bit) —— 对此需要利用 校验和 检测位错误
  2. 为了从错误中恢复 —— 需要确认机制(Acknowledgements)
    ACK:接收方显式地告知发送方分组已正确接收
    NAK:接收方显式地告知发送方分组有错误
    发送方收到NAK后,重传分组
  3. 基于这种重传机制的rdt协议称为ARQ(Automatic Repeat reQuest)协议

相比于 Rdt1.0,Rdt2.0新引入了:差错检测、接收方反馈控制消息: ACK/NAK、重传

Rdt 2.0: FSM规约:停 — 等协议

计算机网络笔记No.11_第3张图片
计算机网络笔记No.11_第4张图片
Rdt 2.0::无错误场景:发送方发送一个包到接收方,检验无错,接收方返回的一个 ACK,发送方收到ACK,开始下一次发送
计算机网络笔记No.11_第5张图片
Rdt 2.0::有错误场景:发送方发送一个包到接收方,接收方检验出有错误,返回一个 NAK,发送方接收到NAK,重发
计算机网络笔记No.11_第6张图片

Rdt 2.0的缺陷:

  • 如果ACK/NAK消息发生错误/被破坏(corrupted)、产生重复分组

Rdt 2.1:发送方, 应对ACK/NAK破坏

Rdt 2.1 vs. Rdt 2.0

发送方:

  1. 为每个分组增加了序列号
  2. 需校验ACK/NAK消息是否发生错误
  3. 状态数量翻倍

接收方:

  1. 需判断分组是否是重复
  2. 接收方无法知道ACK/NAK是否被发送方正确收到

发送方, 应对ACK/NAK破坏: 发送方发送一个包,序列号为0;等待接收方发回序列号为0的 ACK;如果返回NAK(有错误),重发;返回ACK,再发送一个包,序列号为1;重复上述过程,序列号始终在0、1之间交替变换

计算机网络笔记No.11_第7张图片
接收方, 应对ACK/NAK破坏:收到一个包后,校验是否有错误以及校验是否是想得到的序列号,都满足则保存接受的数据,返回ACK;数据有错误,返回NAK;序列号有错误,不保存数据返回ACK
计算机网络笔记No.11_第8张图片

Rdt 2.2::无NAK消息协议

只使用ACK:

  • 接收方通过ACK告知最后一个被正确接收的分组
  • 在ACK消息中显式地加入被确认分组的序列号
  • 发送方收到重复ACK之后,采取与收到NAK消息相同的动作,重传当前分组

计算机网络笔记No.11_第9张图片

Rdt 3.0:信道既可能发生错误,也可能丢失分组

发送方等待 合理 时间:

  • 需要定时器
  • 如果没收到ACK,重传
  • 如果分组或ACK只是延迟而不是丢包 —— 重传会产生重复,序列号能够处理;接收方需在ACK中显式告知所确认的分组

发送方FSM:
计算机网络笔记No.11_第10张图片

示例:
计算机网络笔记No.11_第11张图片
计算机网络笔记No.11_第12张图片

Rdt 3.0性能分析:

  • Rdt 3.0能够正确工作,但性能很差
  • 示例:1Gbps链路,15ms端到端传播延迟,1KB分组
    在这里插入图片描述
    发送方利用率:发送方发送时间百分比:
    在这里插入图片描述
    在1Gbps链路上每30毫秒才发送一个分组——>33KB/sec

计算机网络笔记No.11_第13张图片
————————————————————————————————————————————————————————

由于水平有限及时间仓促或疏忽大意以及其他的一些原因,文中难免会存在一些错误,如若有发现不正确的地方,还请大佬们评论或私信告之于我,以便及时纠错

你可能感兴趣的:(计算机网络学习笔记)