【计网 可靠数据传输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等协议的基础,为网络通信和分布式系统提供了可靠性和正确性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Git远程仓库常用开发命令和理解

远程仓库 创建与合并分支 每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。 HEAD严格来说不是指向提交,而…

基于springboot学籍管理系统

一、设计目的 1. 复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 2. 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题…

系列十八、Spring bean线程安全问题

一、概述 我们知道Spring中的bean,默认情况下是单例的,那么Spring中的bean是线程安全的吗?这个需要分情况考虑,bean中是否存在成员变量?bean中的成员变量是怎么处理的?...,针对bean的状态会有不…

OpenGL的学习之路 -5

1.视景体 正交投影 人眼看世界,有一个可见范围。范围内可见,范围外不可见。视景体就是这么一个概念。 (上图仅学习记录用) 在OGL中,有两种投影方式,对应两种视景体。第一种,正交投影&#xf…

Flask学习二:项目拆分、请求与响应、cookie

教程 教程地址: 千锋教育Flask2框架从入门到精通,Python全栈开发必备教程 老师讲的很好,可以看一下。 项目拆分 项目结构 在项目根目录下,创建一个App目录,这是项目下的一个应用,应该类似于后端的微服…

案例029:基于微信小程序的阅读网站设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

为什么PCB板大多数都是绿色的?

什么时候开始接触到PCB板的呢?也许是是把家里的电视遥控器拆开的时候,也许是你的小霸王学习机游戏手柄给按坏拆开的时候,也许那时候你还不知道这叫PCB电路板。然后就是大学里使用嘉立创免费打板的时候,有一个选项绿色板还是黑色板…

自建CA实战之 《0x01 Nginx 配置 https单向认证》

自建私有化证书颁发机构(Certificate Authority,CA)实战之 《0x01 Nginx 配置 https单向认证》 上一篇文章我们介绍了如何自建私有化证书颁发机构(Certificate Authority,CA),本篇文章我们将介…

单细胞seurat入门—— 从原始数据到表达矩阵

根据所使用的建库方法,单细胞的RNA序列(也称为读取(reads)或标签(tags))将从转录本的3端(或5端)(10X Genomics,CEL-seq2,Drop-seq&…

Java 文件常用操作与流转换

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

SATA信息传输FIS结构总结通过实例代码(快速)掌握(二)

目录 一、简介二、总体介绍2.1 详细FIS传输过程2.2 FIS内容详解 三、FIS实例3.1 构造一个write FIS3.1.1 WRITE FIS内容3.1.2 协议分析仪trace分析3.1.3 write过程总trace 3.2 构造一个read FIS3.2.1 READ FIS内容3.2.2 协议分析仪 read trace3.2.3 read过程总trace 3.3 FIS和C…

Linux系统管理:WinSCP 安装与使用

目录 一、实验 1.下载WinSCP 2.安装WinSCP 3.使用WinSCP 一、实验 1.下载WinSCP (1)地址 Downloading WinSCP-6.1.2-Setup.exe :: WinSCP 2.安装WinSCP (1)选择安装程序模式 (2)点击 (3…

C++初识类和对象

前言 上一期我们介绍了一些C入门的基础知识,本期我们来介绍面向对象。初步认识一下面向对象和面向过程、类、以及封装! 本期内容介绍 面向过程和面向对象 类的引入 类的定义 类的访问限定符和封装 类的作用域 类的实例化 类对象模型 this指针 一、面向…

name 属性:提高 Vue 应用可维护性的关键

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

Linux加强篇006-存储结构与管理硬盘

目录 前言 1. 从“/”开始 2. 物理设备命名规则 3. 文件系统与数据资料 4. 挂载硬件设备 5. 添加硬盘设备 6. 添加交换分区 7. 磁盘容量配额 8. VDO虚拟数据优化 9. 软硬方式链接 前言 悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非…

5.7 Windows驱动开发:取进程模块函数地址

在笔者上一篇文章《内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版…

linux内核态内存泄漏检测-kmemleak

参考文章:Linux内核态内存泄漏检测工具--kmemleak工具原理及应用_linux 内存泄漏检测工具-CSDN博客 细说|Linux 内存泄漏检测实现原理与实现_内核_指针_信息 kmemleak原理:看网上说大概原理是在通过kmalloc,vmalloc&#xff0c…

分布式锁,分布式锁应该具备哪些条件,分布式锁的实现方式有:基于Zookeeper实现、Redis实现、数据库实现

文章目录 分布式锁0-1分布式锁--包含CAP理论模型概述分布式锁:分布式锁应该具备哪些条件:分布式锁的业务场景: 分布式锁的实现方式有:基于Zookeeper - 分布式锁实现思想优缺点基于Redis - 分布式锁实现思想实现思想的具体步骤&…

[AutoSAR存储] 车载存储层次 和 常用存储芯片概述

公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《AutoSAR存储》 <<<< 返回总目录 <<<< 1 存储系统层次 先抛个问题&#xff0c; 为什么要划分存储器的层次&#xff1f; 速度越快&#xff0c;但成本越高&#xff0c;从经济的角度规…

【Web】[GKCTF 2021]easycms

直接点击登录按钮没有反应 扫目录扫出来/admin.php 访问 弱口令admin 12345直接登录成功 点开设计--主题--自定义 编辑页头&#xff0c;类型选择php源代码 点保存显示权限不够 设计--组件--素材库 先随便上传一个文件&#xff0c;之后改文件名称为../../../../../system/tmp…