rdt不同版本(rdt1.0,rdt2.0,rdt2.1,rdt2.2,rdt3.0)协议的特点以及发送端接收端的FSM

article/2025/10/9 8:27:51

两个简单概念

可靠数据传输(Reliable Data Transfer,rdt),发送方通过该协议把数据交给更底层(比如传输层交给网络层),底层负责传输,接收方再通过该协议把数据取出。

有限状态机(Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

rdt不同版本

备注:以下图来自Computer_Networking_A_Top-Down_Approach

rdt 1.0

假设底层信道是完全可靠的,传输的数据不会损坏或者丢失,这种理想情况下的协议十分简单,sender端和receiver端如下:

发送端等待上层传数据传进来,将数据打包为分组并将其发送到信道中。

接收端收到分组以后,将封包解开,将其发送到上层应用。

rdt2.0

假设底层信道是具有比特差错信道,sender端和receiver端如下:

发送端等待上层传数据传进来,将数据和检验和打包为分组并将其发送到信道中然后等待,如果接受到ACK则数据无误,回到等待调用状态,如果收到NAK则说明发送的数据有误则进行重传。

接收端收到资料,会有ACK(肯定确认)与NAK(否定确认请重传)两种讯息,当数据分组接收到以后确认无误,会发送ACK给发送方已确定数据无误。当发现有错误时,会传回NAK通知发送端重传。

rdt2.1

针对rdt2.0中ACK/NAK受损可能会导致重传的问题,rdt2.1加入了序列号机制(sequence number),分组的号码可以让发送方知道是否需要重传以及让接收方确认这是否是一次重新传输的分组。sender端和receiver端如下:

rdt2.2

一次使用两种确认信息ACK,NAK处理起来比较费力,因此rdt2.2中移除NAK的信息,在ACK中加入编号就可以达到确认与否认的效果。发送方必须检查接收到的ACK中的报文中被确认的分组序号。sender端和receiver端如下:

rdt3.0

假设底层信道是具有比特差错和丢包的信道,除了使用rdt2.2的机制,另外在发送端增加多了到技术定时器,封包送出去如果超时仍未收到ACK或是收到不正确编号的ACK,则重发。sender端如下:

对于rdt3.0的receiver端,在Computer_Networking_A_Top-Down_Approach这本书中没有提及,但是根据我个人理解,rdt3.0的receiver端与rdt2.2相比没有任何变化,因为rdt3.0只是在rdt2.2的基础上在sender端增加了计时器的功能。所以rdt3.0的receiver端(笔者根据rdt2.2的receiver重新做了一份)如下:


欢迎访问我的博客:https://colinasda.github.io/
随手记录一些计算机相关的知识点以及分享一些资源


http://chatgpt.dhexx.cn/article/WPFyU6YM.shtml

相关文章

计算机网络-TCP-可靠数据传输(RDT)

TCP-可靠性(RDT) RDT(reliable data transfer protocl)可靠数据传输 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2p84x4XF-1679328566800)(https://s3-us-west-2.amazonaws.com/secure.notion-sta…

计算机网络-自顶向下笔记-可靠数据传输原理(三种rdt)

计算机网络自顶向下全部笔记🔗 可靠数据传输原理 🐳可靠性问题不仅仅出现在运输层,同样也是会出现在链路层以及应用层次中,可靠性问题同样也是会被列为🔝TOP10问题。 信道的不可靠特性决定了可靠数据传输协议&#xf…

DJ3-2 可靠数据传输原理:rdt

目录 一、如何实现可靠数据传输 二、rdt1.0:完全可靠信道上的可靠数据传输 1. 前提条件 2. 有限状态机 FSM 三、rdt2.0:仅具有 bit 错误的信道上的可靠数据传输 1. 前提条件 2. 有限状态机 FSM 3. 停等协议 4. rdt2.0 的致命缺陷 四、rdt2.1&a…

粗浅的rdt协议介绍

1、rdt1.0:经完全可靠信道的可靠数据传输 rdt1.0是假设使用最可靠的通道情况。主要有传输端与接收端两个部分。发送端等待上层传数据传进来,将数据打包为分组并将其发送到信道中;接收端收到分组以后,将封包解开,将其发…

计算机网络 可靠数据传输原理——从rdt协议到GBN到SR

文章目录 可靠数据传输原理rdt协议rdt 1.0rdt 2.0rdt 2.1rdt 2.2rdt 3.0 流水线可靠数据传输协议GBNGBN发送方GBN接收方GBN协议具体处理过程的示例 SRSR发送方SR接收方SR协议具体处理过程的示例接收方情况简析发送方情况简析接收方处理的区间长度为什么刚好是2N 窗口长度与序号…

3运输层 - 可靠数据传输的原理rdt

可靠数据传输的原理 可靠数据传输——rdtRdt1.0(在可靠信道上的可靠数据传输)Rdt2.0(具有比特差错的信道)rdt2.1(发送方处理出错的ACK/NAK)rdt2.2(无NAK协议)rdt3.0(具有…

java rdt_使用 Eclipse 和 RDT 开发Ruby应用程序

使用用 Eclipse 和 RDT 开发Ruby应用程序 RDT(Ruby Development Tools),一组Eclipse插件,使得Eclipse能支持Ruby开发。 而Eclipse是一个功能强大的跨平台集成开发环境,支持对java,jsp,php等地开发。 使用用 Eclipse 和…

计算机实验三——Rdt协议对比

计算机实验三:Rdt协议对比 一、实验目的二、实验原理1.Rdt1.0:在可靠信道上进行数据传输2.Rdt2.0:有差错检测的传输信道3.Rdt2.1:解决Rdt2.0中ACK/NAK丢失的问题4.流水线协议——解决低效问题 三、实验步骤及分析(一)实验前准备(二…

可靠传输协议——Rdt演变历程

这次为分享一下有关于rdt的发展历程以及rdt协议演变,从rdt1.0-rdt2.0-rdt2.1-rdt2.2-rdt3.0的经历,使rdt一步步进行完善。 我们知道,TCP发送的报文段是交给IP层传送的。TCP下面的网络所提供的是不可靠的传输。因此,TCP要采用措施才…

可靠数据传输(rdt)的原理

可靠数据传输(rdt)的原理 rdt在应用层、传输层和数据链路层都很重要【不出错、不重复、不丢失】是网络TOP 10问题之一 【sending process:发送方进程;receiver process:接收方进程。要实现可靠数据传输,发…

【学习】可靠数据传输协议 RDT

转载自:https://blog.csdn.net/qq_38505990/article/details/80603007 计网刚开始学的时候完全没听懂 查了好多博文 这篇写得最清楚 仅供学习参考 在计算机网络中,可靠的数据传输,是一个较为重要的问题,最近在看书(Com…

rdt(可靠运输协议)理解

逐步解决可靠运输 在这里我们介绍rdt(Reliable Data Transfer)协议,即可靠数据传输协议的逐步完善。 假如底层通道完全可靠(rdt1.0) 我们首先考虑最简单的情况,即底层通道完全可靠,不会发生错误,此时将协议定为rdt1.0。此时发送方和接受方的状态如下。rdt1.0发送方 发…

Rdt2.1 和 Rdt2.2的详细解释

🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一…

rdt(可靠数据传输)

构造可靠数据传输 rdt(reliable data transfer protocol,可靠数据传输协议) 什么是可靠? 不错、不丢、不乱 1.rdt1.0:可靠信道上的可靠数据传输 最简单的情况即为底层信道是完全可靠的,则该协议非常简…

16、可靠数据传输(rdt)的原理

一、可靠的数据传输(rdt) 1、什么是可靠数据传输:不出错、不冲突、不失序、不丢失 2、如何实现可靠数据传输? 需要借助于下层提供的协议,但是如果下层提供服务不可靠呢?本层的协议机制,协议实体…

Rdt协议(可靠运输协议)

提示:文章写完后 文章目录 前言一、可靠数据传输原理二、Rdt协议1.Rdt 1.0(可靠信道)2.Rdt 2.0(ARQ重传)3.Rdt 2.1(序列号)4.Rdt 2.2(无NAK)5.Rdt 3.0(定时器) 总结 前言 提示:以下是本篇文章正文内容 一、可靠数据传输原理 可靠指数据在传输过程中不错…

RDT 协议 (可靠数据传输协议)

RDT (reliable data transfer)协议详解 零、文档目录 .名词解释 背景介绍 rdt协议的实现 总结 疑问解析 参考文献 一、名词解释 rdt协议(reliable data transfer)可靠数据传输协议 二、背景介绍 计算机网络通过对网络进行…

rdt 可靠数据传输协议

计算机网络的设计基本方案是复杂化,多功能化应用层,运输层的协议设计,从而使得网络层,链路层,物理层变得相对简单,网络搭建的物质条件变得简单。由于网络层较为简单,采用了无连接的协议&#xf…

前端开发学习之一------前端开发是什么以及我们要学什么

1.web前端开发工程师是做什么的 简单地说,就是要与网站打交道 2.成为一名web前端工程师需要具备的条件 ①兴趣 ②敲代码(实践、需要去练习) 3.Web前端开发工程师需要学习什么(重点:HTML,CSS,JavaScript硬性指标) ①软件(代码的辅助工具) 浏览器:浏览器有非常多,(…

前端学习.

前端学习 基础学习路线网页简介1.html2.网页 常用的浏览器Web标准HTML标签(上)HTML语法规范HTML基本结构标签网页开发工具HTML常用标签HTML中的注释和特殊字符 HTML标签(下)表格标签表格总结 列表标签列表总结 表单标签综合案例直…