| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络 Kurose 第三章 3.4 可靠数据传输原理 -> 正文阅读 |
|
[网络协议]计算机网络 Kurose 第三章 3.4 可靠数据传输原理 |
3.4.1 构造可靠数据传输协议1.经完全可靠信道的可靠数据传输首先,我们考虑最简单的情况,即底层信道时完全可靠的,我们称该协议为rdt1.0,该协议本身是简单的。 rdt的发送端只通过rdt_send(data)时间接受来自较高层的数据,产生一个包含该数据的分组。并将分组发送到信道中。 在接收端,rdt通过rdt_rcv(packet)时间从底层信道接收一个分组,从分组中取出数据,并将数据上传给较高层。 在这个简单的协议中,一个单元数据与一个分组没什么差别。而且,所有分组是从发送方流向接收方;有了完全可靠的信道,接收端就不需要提供任何反馈信息给发送方。因为不必担心出现任何差错。 2.经具有比特差错信道的可靠数据传输:rdt2.0控制报文使用“肯定确认”和“否定确认”可以让发送方知道哪些内容被正确接收,那些内容接受有无并因此需要重复。在计算机网络环境中,基于这样重传机制的可靠数据传输协议称为自动重传请求协议(ARQ)。 ARQ协议中还需要另外三种协议功能来处理存在比特差错的情况
停等协议:发送方确认接收方收到正确的分组的时候在发送一块新的数据 rdt2.1发送方获得来自上层的数据后,封包(编号为0)发送至接收方,接收方接收到分组后: 1、如果没有损坏,回送ACK分组,并等待编号为1的分组 2、如果损坏,回送NAK分组,并继续等待编号为0的分组 发送方接收到回送分组后: 1、如果没有损坏,且为ACK分组,无任何动作,等待上层协议 2、如果没有损坏,且为NAK分组,重发编号为0的分组 3、如果损坏,无论是ACK还是NAK,重发编号为0的分组 接收方收到分组后(接收方不知道自己的ACK或NAK分组在传输过程中是否损坏): 1、如果没有损坏,且为编号1的分组,回送ACK分组,且等待编号为0分组(循环) 2、如果没有损坏,且为编号0的分组,回送ACK分组,且等待编号为1分组 3、如果损坏,回送NAK分组,等待编号为0分组 rdt2.2发送方获得来自上层的数据后,封包(编号为0)发送至接收方,接收方接收到分组后: 1、如果没有损坏,回送ACK0分组,并等待编号为1的分组 2、如果损坏,回送ACK1分组,并继续等待编号为0的分组 发送方接收到回送分组后: 1、如果没有损坏,且为ACK0分组,无任何动作,等待上层协议 2、如果没有损坏,且为ACK1分组,重发编号为0的分组 3、如果损坏,无论是ACK1还是ACK0,重发编号为0的分组 接收方收到分组后(接收方不知道自己的ACK分组在传输过程中是否损坏): 1、如果没有损坏,且为编号1的分组,回送ACK1分组,且等待编号为0分组(循环) 2、如果没有损坏,且为编号0的分组,回送ACK0分组,且等待编号为1分组 3、如果损坏,回送ACK1分组,等待编号为0分组 3. 经具有比特差错的丢包信道的可靠数据传输:rdt3.03.4.2 流水线可靠数据传输协议不以停等方式运行,允许发送方发送多个分组而无需等待确认。
3.4.3 回退N步基序号:最早未确认分组序号 下一步序号:最小的未使用的序号 已被发送但还未被确认的分组的许可序号范围可以被看成是一个在序号范围内长度为N的窗口。随着协议的协议的运行,该窗口在序号空间向前滑动。N被称为窗口长度。GBN协议也被称为滑动窗口协议。 GBN发送方必须响应三类事件:
3.4.4 选择重传(SR协议)SR发送方的事件与动作
SR接收方的事件与动作
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 4:39:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |