【计网 可靠数据传输RDT】 中科大笔记 (十 一)
目录
- 0 引言
- 1 RDT的原理
- RDT的原理:
- 2 RDT的机制与作用
- 2.1 重要协议
- 停等协议(Stop-and-Wait):
- 连续ARQ协议:
- 2.2 机制与作用
- 实现机制:
- RDT的作用:

- 🙋♂️ 作者:海码007
- 📜 专栏:计算机四大基础专栏
- 📜 其他章节:网络快速入门系列、计网概述、计网应用层详解、计网Web和HTTP、计网FTP、计网EMail、计网DNS、计网P2P
- 💥 标题:【计网 可靠数据传输RDT】 中科大笔记 (十 一)
- ❣️ 寄语:书到用时方恨少,事非经过不知难。
- 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正!
0 引言
这是计算机网络TOP10问题之一,所以还是非常重要的。RDT在应用层、传输层和数据链路层都很重要
RDT(Reliable Data Transfer)是一个协议概念,通常用于在传输层(Transport Layer)上实现可靠的数据传输。在OSI模型中,传输层负责在网络中的端到端通信中提供可靠的数据传输服务。
具体来说,在TCP/IP协议族中,RDT的功能主要由传输层的TCP协议来实现。TCP是一个面向连接的协议,提供可靠的、字节流的数据传输。TCP通过序号、确认、重传、流控制等机制,确保数据在两个端之间的可靠传输,同时处理丢包、乱序、重复等问题。
因此,RDT的概念和机制通常体现在传输层协议中,如TCP,而不是在更低层的数据链路层或物理层。在传输层上实现可靠的数据传输允许应用程序在不可靠的网络上进行稳定的通信。(IP协议提供的就是不可靠的传输)
1 RDT的原理
将下层提供的不可靠服务,转换成可靠的服务并向上层提供。
RDT(Reliable Data Transfer)是一种可靠的数据传输协议,用于在不可靠的通信信道上提供可靠的数据传输。RDT的目标是确保数据在发送方和接收方之间的可靠交付,即使通信信道可能出现丢包、乱序或重复等问题。有两种主要的RDT协议:停等协议(Stop-and-Wait)和连续ARQ协议(Continuous Automatic Repeat reQuest)。
RDT的原理:
-
停等协议(Stop-and-Wait):
- 发送方发送数据帧,等待确认帧。
- 接收方接收数据帧,发送确认帧。
- 发送方等待确认,直到超时或接收到正确的确认。
- 如果超时,发送方重传当前帧。
-
连续ARQ协议:
- 发送方可以连续发送多个数据帧而无需等待确认。
- 接收方接收数据帧,发送确认帧。
- 发送方定期检查确认情况,如果收到确认,继续发送下一个数据帧。
- 如果发送方的某个帧超时没有收到确认,重传该帧及之后的所有帧。
-
数据帧结构:
- 每个数据帧都包含序列号,用于标识帧的顺序。
- 帧中可能包含校验和,用于检测传输中是否发生了错误。
- 帧中可能包含确认号,用于指示接收方期望接收的下一个帧。
-
超时处理:
- 发送方设置定时器,等待接收方的确认。
- 如果定时器超时,发送方认为帧丢失,触发重传机制。
-
确认机制:
- 接收方向发送方发送确认帧,确认已成功接收数据。
- 发送方根据确认情况决定是否继续发送下一个数据帧。
总的来说,RDT协议在面对不可靠的通信信道时,通过一系列的策略和机制,使得数据的传输更加可靠、有序、可控,确保了通信的稳定性和正确性。这对于网络通信和分布式系统等应用中非常重要。



2 RDT的机制与作用
RDT(Reliable Data Transfer)的实现通常发生在传输层,具体地说,是在OSI模型或TCP/IP协议栈的传输层。在这个层次上,RDT主要涉及两个重要的协议:停等协议(Stop-and-Wait)和连续ARQ协议(Continuous Automatic Repeat reQuest)。
2.1 重要协议
停等协议(Stop-and-Wait):
- 发送方:
- 发送方发送一个数据帧,然后等待接收方的确认。
- 如果在一定时间内未收到确认,发送方假定数据帧已丢失,触发重传。
- 接收方:
- 接收方收到数据帧后,发送确认。
- 如果收到重复的数据帧,只发送上一次正确接收的帧的确认。
连续ARQ协议:
- 发送方:
- 发送方可以连续发送多个数据帧而无需等待确认。
- 使用窗口(Window)机制控制发送的帧数,确保网络负载适中。
- 接收方:
- 接收方收到数据帧,发送确认。
- 接收方使用窗口机制来控制接收的帧数,确保按序接收。
2.2 机制与作用
实现机制:
-
序号与确认号:
- 每个数据帧都有一个唯一的序号,用于标识帧的顺序。
- 确认帧中包含确认号,表示接收到的下一个希望接收的序号。
-
校验和:
- 数据帧通常包含校验和,用于检测在传输过程中是否发生了错误。
-
定时器与超时处理:
- 发送方设置定时器,如果在规定时间内未收到确认,触发超时机制。
- 超时时,发送方重新发送相应的帧。
-
流控制:
- 使用滑动窗口(Sliding Window)等机制来控制发送和接收的速率。
-
确认和重传机制:
- 发送方接收到确认后,移动发送窗口。
- 如果发生超时或收到重复的确认,进行相应的重传。
RDT的作用:
-
可靠性: RDT协议通过重传机制、确认机制和校验和等手段,确保数据的可靠传输,即使在不可靠的通信信道上也能提供稳定的数据传输服务。
-
流控制: RDT协议通过控制发送方的发送速率,避免了数据的过快发送,以适应接收方的处理能力,防止数据的丢失或溢出。
-
错误检测与纠正: RDT协议在数据帧中使用校验和等机制,能够检测并有时纠正在传输过程中发生的错误,提高通信的可靠性。
-
顺序控制: RDT通过序列号的使用,保证数据帧的正确有序传输,防止数据帧的乱序到达。
总体而言,RDT的作用在于在不可靠的通信信道上提供可靠的数据传输服务,为应用层提供了一个稳定和有序的通信环境。 RDT的实现通常是TCP等协议的基础,为网络通信和分布式系统提供了可靠性和正确性。
相关文章:
【计网 可靠数据传输RDT】 中科大笔记 (十 一)
目录 0 引言1 RDT的原理RDT的原理: 2 RDT的机制与作用2.1 重要协议停等协议(Stop-and-Wait):连续ARQ协议: 2.2 机制与作用实现机制:RDT的作用: 🙋♂️ 作者:海码007📜 专栏&#x…...
ubuntu下训练自己的yolov5数据集
参考文档 yolov5-github yolov5-github-训练文档 csdn训练博客 一、配置环境 1.1 安装依赖包 前往清华源官方地址 选择适合自己的版本替换自己的源 # 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak # 修改源文件 # 更新 sudo apt update &&a…...
ROC及曲线面积汇总学习
目录 ROC基础 生成模拟数据 率的计算 R语言计算测试 ROCR: pROC ROC绘制 单个ROC 两个ROC Logistic回归的ROC曲线 timeROC ROC基础 ROC曲线的横坐标是假阳性率,纵坐标是真阳性率,需要的结果是这个率表示疾病阳性的率(…...
LeetCode Hot100 35.搜索插入位置
题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 方法:灵神 二分查找 闭区间写法 c…...
Android frameworks 开发总结之八
Quick Settings增加一項 XXX device要求在quick settings中增加一項touch panel. 在/frameworks/base/packages/SystemUI/res/values/config.xml文件中的quick_settings_tiles_default string 中增加touch panel。並在String resource文件中增加顯示的title <!-- The def…...
Cortex-M与RISC-V区别
环境 Cortex-M以STM32H750为代表,RISC-V以芯来为代表 RTOS版本为RT-Thread 4.1.1 寄存器 RISC-V 常用汇编 RISC-V 关于STORE x4, 4(sp)这种寄存器前面带数字的写法,其意思为将x4的值存入sp4这个地址,即前面的数字表示偏移的意思 反之LOA…...
YashanDB入选2023年世界互联网大会领先科技奖成果集《科技之魅》
近日,由深圳计算科学研究院自主研发的“崖山数据库系统YashanDB”入编2023年世界互联网大会领先科技奖成果集《科技之魅》。此次入选,充分彰显了YashanDB在数据库技术领域的突破性创新成果。 《科技之魅》是世界互联网大会领先科技奖的重要成果ÿ…...
C语言基础程序设计题
1.个人所得税计算 应纳税款的计算公式如下:收入<=1000元部分税率为0%,2000元>=收入>1000元的部分税率为5%,3000元>=收入>2000元的部分税率为10%…...
Spring Boot实现图片上传和展示
Spring Boot实现图片上传和展示 本文将介绍如何使用Spring Boot框架搭建后端服务,实现接收前端上传的图片并保存到resources/images目录下。同时,我们还将展示如何在前端编写一个HTML页面,实现上传图片和从resources/images目录下获取图片并…...
大数据-之LibrA数据库系统告警处理(ALM-37015 Gaussdb进程可用文件句柄资源不足)
告警解释 操作系统环境文件句柄不足时,产生该告警。 告警属性 告警ID 告警级别 可自动清除 37015 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名 Instance 产生告警…...
大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具?
大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具? 1、大一刚开始学编程,面对复杂的代码学习非常吃力,很难入门。建议刚接触编程可以先学习中文编程,了解其中的编程逻辑,学编程…...
GoWeb学习-第二天
文章目录 从零开始学Go web——第二天一、安装Go语言二、建立web目录2.1 创建GO语言包目录2.2 创建Go web文件 三、编译并运行Go web应用3.1 编译并运行3.2 查看结果 从零开始学Go web——第二天 第一天我们了解了与web息息相关的HTTP协议,聊了聊Go与web的关系等…...
04-鸿蒙4.0学习之样式装饰器相关
04-鸿蒙4.0学习之样式装饰器 styles装饰器:定义组件重用样式 /*** styles装饰器:定义组件重用样式*/ Entry Component struct StyleUI {State message: string stylesStyles commonStyle(){.width(200).height(100).backgroundColor(Color.Gray).marg…...
C# 线程(1)
目录 1 线程与进程2 创建线程3 线程等待4 线程优先级5 前台线程与后台线程6 Lock与线程安全7 Monitor8 死锁9 线程中异常处理 1 线程与进程 进程是计算机概念,一个程序运用时占用的的所有计算机资源(CPU、内存、硬盘、网络)统称为进程。 线程…...
冒泡排序以及改进方案
冒泡排序以及改进方案 介绍: 冒泡排序属于一种典型的交换排序(两两比较)。冒泡排序就像是把一杯子里的气泡一个个往上冒一样。它不断比较相邻的元素,如果顺序不对就像水泡一样交换它们的位置,直到整个序列像水泡一样…...
QTextEdit 是 Qt 框架中的一个类,用于显示和编辑多行文本内容的可编辑部件
QTextEdit 是 Qt 框架中的一个类,用于显示和编辑多行文本内容的可编辑部件。 QTextEdit 提供了一个用于显示和编辑富文本(包括格式化文本、图像和链接等)和纯文本的文本编辑器。它支持基本的文本操作(如复制、粘贴、撤销、重做等…...
vue+jsonp编写可导出html的模版,可通过外部改json动态更新页面内容
效果 导出后文件结果如图所示,点击Index.html即可查看页面,页面所有数据由report.json控制,修改report.json内容即可改变index.html展示内容 具体实现 1. 编写数据存储的json文件 在index.html所在的public页面新建report.json文件ÿ…...
查看各ip下的连接数
netstat -n | awk /^tcp/ {print $5} | awk -F: {print $1} | sort | uniq -c| sort -rn netstat -n:显示所有的网络连接,不包括任何服务名的解释。awk /^tcp/ {print $5}:使用awk命令过滤出tcp协议的连接,并打印出每个连接的第五…...
Linux—进程状态
目录 一.前言 1.1.通过系统调用获取进程标示符 1.2.通过系统调用创建进程 二.进程状态 三.Z(zombie)-僵尸进程 四.僵尸进程危害 一.前言 学习进程的状态,我们首先了解一下进程的基本数据 1.1.通过系统调用获取进程标示符 由getpid()…...
万宾科技可燃气体监测仪科技作用全览
燃气管网在运行过程中经常会遇到燃气管道泄漏的问题,燃气泄漏甚至会引起爆炸,从而威胁人民的生命和财产安全,因此对燃气管网进行定期巡检是十分必要的工作。但是传统的人工巡检已不能满足城市的需要,除了选择增加巡检人员之外&…...
Visual Studio 项目属性页开发完全教程:从基础到高级
Visual Studio 项目属性页开发完全教程:从基础到高级 【免费下载链接】project-system The .NET Project System for Visual Studio 项目地址: https://gitcode.com/gh_mirrors/pr/project-system Visual Studio 项目属性页是开发者管理项目配置的核心界面&a…...
力扣HOT100(30)两两交换链表中的节点
链表的交换要注意 “链表不断链”。前驱和后继都要连着迭代法(必学死磕!O (n) 时间,O (1) 空间)1. 为什么必须用虚拟头节点?因为交换后链表的头节点会变! 比如示例 1 中,原来的头是 1࿰…...
终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南
终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否渴望享受WeMod Pro会员的所…...
3步解锁网易云音乐NCM加密:让音乐真正属于你
3步解锁网易云音乐NCM加密:让音乐真正属于你 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在特定客户端播放而烦恼吗?当你精心收藏的歌曲被NCM格式"锁"在单一平台时&a…...
DragonBones与Godot集成:骨骼动画的可编程化实践
1. 为什么在Godot里用DragonBones不是“锦上添花”,而是“绕不开的刚需” 去年上线一个横版动作手游Demo时,美术团队交来一套20个角色、每个角色含8套动画(待机/跑动/跳跃/攻击/受击/死亡/闪避/必杀)的Spine资源。我兴冲冲导入God…...
1688运营培训/询盘成本从500元降到63.9!1688运营培训还原1688真实玩法
1688运营培训/询盘成本从500元降到63.9!1688运营培训还原1688真实玩法500块钱一个询盘,你敢信?做1688运营培训这么多年,这个数字我都觉得离谱。前阵子遇到一个老板,一上来就开始吐槽1688,说1688就是个垃圾平…...
DAIR-V2X-V数据集深度评测:与KITTI、nuScenes比,它到底强在哪?
DAIR-V2X-V数据集深度评测:与KITTI、nuScenes比,它到底强在哪? 当技术团队着手开发面向中国道路的自动驾驶系统时,数据集的选择往往成为第一个关键决策点。过去十年间,KITTI和nuScenes等国际数据集一直是行业标杆&…...
LoRa物联网与动态基线算法在养殖体温监测中的实战应用
1. 项目概述:为什么我们需要一个智能体温监测系统?在规模化养殖场里干了十几年,我见过太多因为体温异常没被及时发现而导致的损失。一头育肥猪突然不吃食,等饲养员第二天巡栏发现时,可能已经高烧好几天,继发…...
操作符从浅入深的讲解
1. 操作符的分类 2. ⼆进制和进制转换 3. 原码、反码、补码 4. 移位操作符 5. 位操作符:&、|、^、~ 6. 单⽬操作符 7. 逗号表达式 8. 下标访问[]、函数调⽤() 9. 结构成员访问操作符 10. 操作符的属性:优先级、结合性 11. 表达式求值1.操作符的分类以…...
Hermes Agent工具如何自定义接入Taotoken提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent工具如何自定义接入Taotoken提供商 Hermes Agent 是一款功能强大的AI智能体开发框架,它支持通过自定义提供…...
