【计网 可靠数据传输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的原理:

  1. 停等协议(Stop-and-Wait):

    • 发送方发送数据帧,等待确认帧。
    • 接收方接收数据帧,发送确认帧。
    • 发送方等待确认,直到超时或接收到正确的确认。
    • 如果超时,发送方重传当前帧。
  2. 连续ARQ协议:

    • 发送方可以连续发送多个数据帧而无需等待确认。
    • 接收方接收数据帧,发送确认帧。
    • 发送方定期检查确认情况,如果收到确认,继续发送下一个数据帧。
    • 如果发送方的某个帧超时没有收到确认,重传该帧及之后的所有帧。
  3. 数据帧结构:

    • 每个数据帧都包含序列号,用于标识帧的顺序。
    • 帧中可能包含校验和,用于检测传输中是否发生了错误。
    • 帧中可能包含确认号,用于指示接收方期望接收的下一个帧。
  4. 超时处理:

    • 发送方设置定时器,等待接收方的确认。
    • 如果定时器超时,发送方认为帧丢失,触发重传机制。
  5. 确认机制:

    • 接收方向发送方发送确认帧,确认已成功接收数据。
    • 发送方根据确认情况决定是否继续发送下一个数据帧。

总的来说,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 机制与作用

实现机制:

  1. 序号与确认号:

    • 每个数据帧都有一个唯一的序号,用于标识帧的顺序。
    • 确认帧中包含确认号,表示接收到的下一个希望接收的序号。
  2. 校验和:

    • 数据帧通常包含校验和,用于检测在传输过程中是否发生了错误。
  3. 定时器与超时处理:

    • 发送方设置定时器,如果在规定时间内未收到确认,触发超时机制。
    • 超时时,发送方重新发送相应的帧。
  4. 流控制:

    • 使用滑动窗口(Sliding Window)等机制来控制发送和接收的速率。
  5. 确认和重传机制:

    • 发送方接收到确认后,移动发送窗口。
    • 如果发生超时或收到重复的确认,进行相应的重传。

RDT的作用:

  1. 可靠性: RDT协议通过重传机制、确认机制和校验和等手段,确保数据的可靠传输,即使在不可靠的通信信道上也能提供稳定的数据传输服务。

  2. 流控制: RDT协议通过控制发送方的发送速率,避免了数据的过快发送,以适应接收方的处理能力,防止数据的丢失或溢出。

  3. 错误检测与纠正: RDT协议在数据帧中使用校验和等机制,能够检测并有时纠正在传输过程中发生的错误,提高通信的可靠性。

  4. 顺序控制: RDT通过序列号的使用,保证数据帧的正确有序传输,防止数据帧的乱序到达。

总体而言,RDT的作用在于在不可靠的通信信道上提供可靠的数据传输服务,为应用层提供了一个稳定和有序的通信环境。 RDT的实现通常是TCP等协议的基础,为网络通信和分布式系统提供了可靠性和正确性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216545.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【自主探索】基于 rrt_exploration 的单个机器人自主探索建图

文章目录 一、rrt_exploration 介绍1、原理2、主要思想3、拟解决的问题4、优缺点 二、安装环境三、安装与运行1、安装2、运行 四、配置自己的机器人1、Robots Network2、Robots frame names in tf3、Robots node and topic names4、Setting up the navigation stack on the rob…

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影背景贡献实验方法损失函数Thinking 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 https://github.com/ying-f…

Matplotlib图形配置与样式表_Python数据分析与可视化

Matplotlib图形配置与样式表 配置图形修改默认配置rcParams样式表 Matplotlib的默认图形设置经常被用户诟病。虽然2.0版本已经有了很大改善,但是掌握自定义配置的方法可以让我们打造自己的艺术风格。 配置图形 我们可以通过修个单个图形配置,使得最终图…

Python3.7 win7系统安装openCV方案

为了使用机房电脑处理数字图像问题,在win7系统安装了python opencv, 测试使用的是官网下载python3.7.7版本,如果官网安装,直接安装即可 pip install python-opencv 这样会自动安装对应版本的numpy 如果官网安装很慢,想使用镜像安…

Apache Superset数据分析平台如何实现公网实时远程访问数据【内网穿透】

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透,实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

关于提示SLF4J: Class path contains multiple SLF4J bindings的问题解决

今天搭建hbase的时候启动hbase的时候shell面板输入了一大堆日志,如下: stopping hbase.....................SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/software/hadoop-3.1.3/share/hadoop/common/l…

篮桥云课-摆玩具

思维好题 一开始掉进了二分的陷阱&#xff0c;发现看看逐个位置的差&#xff0c;我们要分成k段就是要取消k-1个最大的逐差 然后将剩余的加起来就可以了 因为本体保证是从小到大给出的 这一点保证了答案的正确性&#xff0c;自己没想出来 还是太菜了 #include<bits/stdc.h&…

【Java从入门到大牛】网络编程

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Java从入门到大牛 &#x1f320; 首发时间&#xff1a;2023年11月23日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f4…

手表出行之腕上畅玩—支付宝篇

线上支付己经成为我们生活中不可或缺的一部分&#xff0c;手表的支付功能又进一步提升了购物的便捷度&#xff0c;将手表与支付宝App绑定后就能够快速体验抬腕支付、抬腕乘车以及抬腕收集支付宝能量等玩法&#xff01;

Java基于springoot开发的企业招聘求职网站

演示视频&#xff1a; https://www.bilibili.com/video/BV1xw411n7Tu/?share_sourcecopy_web&vd_source11344bb73ef9b33550b8202d07ae139b 技术&#xff1a;springootmysqlvuejsbootstrappoi制作word模板 主要功能&#xff1a;求职者可以注册发布简历&#xff0c;选择简…

使用STM32+SPI Flash模拟U盘

试验目的&#xff1a;使用STM32F103C8T6 SPI Flash&#xff08;WSQ16&#xff09;实现模拟U盘的功能 SPI Flash读写说明&#xff1a; Step1 设置SPI1 用于读取SPI Flash&#xff1b; Step2&#xff1a;设置SPI Flash 的使能信号 Step3&#xff1a;使能USB通信 Step4&#xf…

数据资产确权的难点

数据是企业的重要资产之一&#xff0c;但是许多企业对于这项资产在管理上都面临着一些挑战&#xff0c;其中最关键就是数据确权的问题。接下来&#xff0c;将探讨数据资产确权的难点&#xff0c;并提出相应的解决方案&#xff0c;一起来看吧。 首先介绍一下数据资产入表的背景以…