【计网 可靠数据传输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.mzph.cn/news/168670.shtml

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

相关文章

Java8 对象List 排序

目录 1.stream流式排序 1.使用说明: 2.多字段排序 2.Collections.sort(......) 排序 1.stream流式排序 Java8提供了流式操作来简化我们的编程,比如排序、分组、过滤、Map操作等API,配合Lambda表达式给我们编程带来了很大的便利,这篇文章重…

react高阶成分(HOC)

使用React函数式组件写了一个身份验证的一个功能,示例通过高阶组件实现的一个效果展示: import React, { useState, useEffect } from react;// 定义一个高阶组件,它接受一个组件作为输入,并返回一个新的包装组件 const withAuth…

Qt QIODevice介绍

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 主要功能用法示例读取数据写入数据使用数据流基于套接字的读写注意事项QIODevice 是 Qt 中所有输入/输出设备的抽象基类。它为派生类提供了一组标准的接口用于读写数据。这些派…

Linux中tar命令的几个高级用法

在Linux世界中,Tar命令是一把解密归档世界的魔法工具。无论是打包、压缩还是解压,Tar命令都能胜任。本文将生动地介绍Tar命令的基本用法,并深入探讨五个常用选项,帮助读者在Linux系统中灵活运用这个强大的工具。 一、命令概述 Ta…

网络安全面试经历

2023-11-22 X亭安全服务实习生面试 一面: 工作方向:偏蓝队 总结:实习蓝队面试没有什么难度,没有什么技术上的细节问题,之前准备的细节问题没有考 最后和面试官聊了聊对网安的认识,聊了聊二进制的知识…

日本服务器访问速度和带宽有没有直接关系?

​  对于许多网站和应用程序来说,服务器的访问速度是至关重要的。用户希望能够快速加载页面、上传和下载文件,而这些都与服务器的带宽有关。那么,日本服务器的访问速度和带宽之间是否存在直接关系呢? 我们需要了解什么是带宽。带宽是指网络…

软件工程导论复习

文章目录 第一章软件工程学概述第二章可行性分析第三章需求分析第五章总体设计第六章详细设计第七章 实现第八章 维护重点预测 第一章软件工程学概述 什么叫软件危机?软件危机的表现有哪些?产生软件危机的原因是什么?什么是软件工程&#xf…

MySQL的体系结构与SQL的执行流程

文章目录 前言体系结构SQL语句的执行流程1、连接MySQL2、查询缓存3、解析SQL语句4、优化SQL语句5、执行SQL语句 总结 前言 如果你在使用MySQL时只会写sql语句的,那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的,那么你应该通过…

面试:云计算相关

文章目录 什么是云计算,它有哪些特性介绍一下云计算中的多租户技术,以及它在云环境中的应用解释一下什么是无服务器计算,以及它在云环境中的应用介绍一下云计算中的冷启动、热迁移和容灾,以及它们的优缺点描述一下云计算的几种服务…

Java反射调用kotlin中的类,Object类,Companion对象

Java反射调用kotlin中的类,Object类,Companion对象 1. Java反射调用kotlin中的普通类 kotlin普通类: package com.common; class TestNormal {fun get():String{return "Nolmal abc"}fun showNum(v:Int){println("Nolmal s…

【数据结构】什么是栈?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌栈的定义 📌元素进栈出栈的顺序 📌栈的抽象数据类型 📌栈的顺序存储结构 📌栈的链式存储结构 链栈的进…

java集合,ArrayList、LinkedList和Vector,多线程场景下如何使用 ArrayList

文章目录 Java集合1.2 流程图关系1.3 底层实现1.4 集合与数组的区别1.4.1 元素类型1.4.2 元素个数 1.5 集合的好处1.6 List集合我们以ArrayList集合为例1.7 迭代器的常用方法1.8 ArrayList、LinkedList和Vector的区别1.8.1 说出ArrayList,Vector, LinkedList的存储性能和特性1.…

汽车电子 -- 根据DBC解析CAN报文

采集的CAN报文,怎么通过DBC解析呢?有一下几种方法。 首先需要确认是CAN2.0 还是CAN FD报文。 还有是 实时解析 和 采集数据 进行解析。 一、CAN2.0报文实时解析: 1、CANTest工具 使用CAN分析仪 CANalyst-II,采集CAN报文。 使用…

Python与设计模式--单例模式

Python与设计模式–单例模式 一、总线 总线是计算机各种功能部件或者设备之间传送数据、控制信号等信息的公共通信解决方案之一。 现假设有如下场景:某中央处理器(CPU)通过某种协议总线与一个信号灯相连,信号灯有64种颜色可以设…

JSP EL 通过 三元运算符 控制界面 标签 标签属性内容

然后 我们来说说 EL配合三元运算符的妙用 我们先这样写 <% page contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <%request.setCharacterEncoding("UTF-8");%> <!DOCTYPE html> <html> <head>&l…

C#8.0中新语法“is {}“的介绍及使用

一&#xff64;C#7.0及之前is的使用 is操作符检查表达式的结果是否与给定类型兼容&#xff0c;或者(从c# 7.0开始)根据模式测试表达式。有关类型测试is操作符的信息&#xff0c;请参阅类型测试和类型转换操作符文章的is操作符部分。 1&#xff64;is 模式匹配 从C&#xff0…

推荐一个静态页面生成网站,可以快速生成一个文档页面

vitepress VitePress | Vite & Vue Powered Static Site Generator

智慧城市运营管理平台解决方案:PPT全文61页,附下载

关键词&#xff1a;智慧城市建设方案&#xff0c;智慧城市解决方案&#xff0c;智慧城市的发展前景和趋势&#xff0c;智慧城市建设内容&#xff0c;智慧城市运营管理平台 一、智慧城市运营平台建设背景 随着城市化进程的加速&#xff0c;城市面临着诸多挑战&#xff0c;如环…

概率论与数理统计中常见的随机变量分布律、数学期望、方差及其介绍

1 离散型随机变量 1.1 0-1分布 设随机变量X的所有可能取值为0与1两个值&#xff0c;其分布律为 若分布律如上所示&#xff0c;则称X服从以P为参数的(0-1)分布或两点分布。记作X~ B(1&#xff0c;p) 0-1分布的分布律利用表格法表示为: X01P1-PP 0-1分布的数学期望E(X) 0 *…

人工智能基础部分22-几种卷积神经网络结构的介绍,并用pytorch框架搭建模型

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分22-几种卷积神经网络结构的介绍&#xff0c;本篇文章我将给大家详细介绍VGG16、VGG19、ResNet、SENet、MobileNet这几个卷积神经网络结构&#xff0c;以及pytorch搭建代码&#xff0c;利用通用数据…