IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 第五章.运输层:5.4可靠传输的工作原理 -> 正文阅读

[网络协议]第五章.运输层:5.4可靠传输的工作原理


IP网络提供的是不可靠的传输

image-20211130093346676

理想传输条件的特点

  1. 传输信道不产生差错。
  2. 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
  • 在理想传输条件下,不需要采取任何措施就能够实现可靠传输。

  • 但实际网络都不具备理想传输条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

5.4.1 停止等待协议

  • 每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
  • 全双工通信的双方既是发送方也是接收方。
  • 假设仅考虑A发送数据,而B接收数据并发送确认。因此A叫做发送方,而B叫做接收方。

1. 无差错情况

image-20211130093615100

  • A发送完分组M1后就暂停发送,等待B的确认(ACK)。
  • B收到M1向A发送ACK。
  • A在收到了对M1的确认后就再发送下一个分组M2。

2. 出现差错

  • 两种情况:

    1. B接收M1时检测出了差错,就丢弃M1,其他什么也不做(不通知A收到有差错的分组)。
    2. M1在传输过程中丢失了,这时B当然什么都不知道,也什么都不做。
  • 在这两种情况下,B都不会发送任何信息。

问题:A如何知道B是否正确收到了M1呢?

解决方法:超时重传

  1. A为每一个已发送的分组设置一个超时计时器。
  2. A只要在超时计时器到期之前收到了相应的确认,撤销该超时计时器,继续发送下一个分组M2。
  3. 若A在超时计时器规定时间内没有收到B的确认,就认为分组错误或丢失,就重发该分组。

image-20211130093937796

3. 确认丢失和确认迟到

  • 确认丢失

    1. 若B所发送的对M1的确认丢失了,那么A在设定的超时重传时间内将不会收到确认,因此A在超时计时器到期后重传M1。

    2. 假定B正确收到了A重传的分组M1。这时B应采取两个行动:

      ①丢弃这个重复的分组M1,不向上层交付。②向A发送确认。

  • 确认迟到

    1. B对分组M1的确认迟到了,因此A在超时计时器到期后重传M1。
    2. B会收到重复的M1,丢弃重复的M1,并重传确认分组。
    3. A会收到重复的确认。对重复的确认的处理:丢弃。

image-20211130094409682

4. 信道利用率

image-20211130094426940

TA:B发送确认分组的时间需要TA。

优点:简单。缺点:信道利用率太低。

5. 停止等待协议要点

  • 停止等待。发送方每次只发送一个分组。在收到确认后再发送下一个分组。
  • 暂存:在发送完一个分组后发送方必须暂存已发送的分组的副本,以备重发。
  • 编号。对发送的每个分组和确认都进行编号。
  • 超时重传。发送方为发送的每个分组设置一个超时计时器。若超时计时器超时未收到确认,发送方会自动超时重传分组。
  • 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些, 防止不必要的重传。
  • 简单,但信道利用率太低。

6. 提高传输效率:流水线传输

image-20211130094831748

流水线传输:在收到确认之前,发送方连续发出多个分组。

由于信道上一直有数据不间断地传送, 流水线传输可获得很高的信道利用率。

连续ARQ协议和滑动窗口协议采用流水线传输方式。

5.4.2 连续ARQ协议

  • 发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认。
  • 发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
  • 累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了。

1. 发送窗口

image-20211130095037153

2. 累计确认

image-20211130095122507

优点:

容易实现,即使确认丢失也不必重传。

缺点:

不能向发送方反映出接收方已正确收到的所有分组的信息。

连续ARQ协议采用Go-back-N(回退N)。

Go-back-N(回退N):表示需要再退回来重传已发送过的N个分组。当通信线路质量不好时,连续ARQ协议会带来负面的影响。


参考资料:《计算机网络(第8版)》—— 谢希仁。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 18:03:38  更:2021-12-01 18:05:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/6 7:27:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码