当前位置: 首页 > news >正文

数据通信——传输层TCP(可靠传输原理的ARQ)

引言

上一篇讲述了停止等待协议的工作流程,在最后提到了ARQ自动请求重传机制。接下来,我们就接着上一篇的篇幅,讲一下ARQ这个机制

还是这个图来镇楼 

ARQ是什么? 

发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。 

自动请求重传自然是发生在接收端,如果N(S)或者data数据不正确,就会请求重传数据。这个ARQ包含很多类型。

为什么要用ARQ?

    传统的TCP传输,我们先是把一串串字节流分组后经过缓存转发,然后等待确认后在发送下一个分组。因此需要完成通信的时间是:一组数据发送完的时间(Td)+数据传输的时间(RTT)+等待ACK返回的时间(Ta),每一次这么传输虽然简单又安全,但是效率真差啊!每次都还要确认后再发送数据,中途停留时间太长。

为此,我们改进了ARQ,通过连续ARQ解决这个问题!

连续ARQ

    它的特点是发送方可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断的发送,因此他的利用率很高。

    发送方发送数据后,不必停下来等待接收端的应答,可以继续发送数据;如果发送过程中收到对方同意发送的应答,则可以继续发送;如果某一个数据的确认超时则该数据开始的后续数据全部重发。这种也叫go-back-to-on协议。

    也就是先发大量数据,不等待回复,这时压力给到了接收端,接收端疯狂的处理报文后返回ACKn,一旦接收端发现某一段数据有问题了,那么从这个数据之后发来的所有数据都会丢掉,并要求发送端重发这段数据。接收端得知后,停止后续发送,从副本中找到需要重新发送的数据再次发送。当然,每一次回复的ACKn都会让发送端删除该段和该段以前的数据缓存。

这个就是连续ARQ示意图,发送频率的效率明显更快。 

 

后续

了解了停止等待协议后,也通过连续ARQ处理了错误数据和未接受到数据的发送问题。如今还有一个问题摆在面前——如何保证数据流量大小的控制呢?

相关文章:

数据通信——传输层TCP(可靠传输原理的ARQ)

引言 上一篇讲述了停止等待协议的工作流程,在最后提到了ARQ自动请求重传机制。接下来,我们就接着上一篇的篇幅,讲一下ARQ这个机制 还是这个图来镇楼 ARQ是什么? 发送端对出错的数据帧进行重传是自动进行的,因而这种…...

Compose - 交互组合项

按钮 Button OutLinedButton带外边框、TextButton只是文字、IconButton只是图标形状。 Button(onClick { }, //点击回调modifier Modifier,enabled true, //启用或禁用interactionSource MutableInteractionSource(),elevation ButtonDefaults.elevatedButtonElevation( /…...

【发版公告】Virbox Protector 3.1.3.19051 发版- elf 文件支持导入表保护

深盾安全-软件保护工具 Virbox Protector 3 ( 3.1.3.19051)迎来了版本升级.本次升级支持了 elf 文件导入表保护。 以下是本次 Virbox Protector 发版的主要功能: 新功能 1. ELF格式的程序支持导入表保护(Beta);; 2…...

点云数据做简单的平面的分割 三维场景中有平面,杯子,和其他物体 实现欧式聚类提取 对三维点云组成的场景进行分割

点云分割是根据空间,几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征,点云的有效分割往往是许多应用的前提,例如逆向工作,CAD领域对零件的不同扫描表面进行分割,然后才能更好的进行空洞修复曲面重建,特征描述和提取,进而进行基于3D内容的检索,组合…...

C++之std::search应用实例(一百八十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

一文详解 requests 库中 json 参数和 data 参数的用法

在requests库当中,requests请求方法,当发送post/put/delete等带有请求体的请求时,有json和data2个参数可选。 众所周知,http请求的请求体格式主要有以下4种: application/json applicaiton/x-www-from-urlencoded mu…...

Django学习笔记-AcApp端授权AcWing一键登录

笔记内容转载自 AcWing 的 Django 框架课讲义,课程链接:AcWing Django 框架课。 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样,只有申请授权码这一步有一点细微的差别: 我们在打开 AcApp 应用之后会自动向 AcW…...

如何在小红书进行学习直播

诸神缄默不语-个人CSDN博文目录 因为我是从B站开始的,所以一些直播常识型的东西请见我之前写的如何在B站进行学习直播这一篇。 本篇主要介绍一些小红书之与B站不同之处。 小红书在手机端是可以直接点击“”选择直播的。 文章目录 1. 电脑直播-小红书直播软件2. 电…...

F5服务器负载均衡能力如何?一文了解

但凡知道服务器负载均衡这个名词的,基本都知道 F5,因为负载均衡是 F5 的代表作,换句话来说,负载均衡就是由 F5 发明的。提到F5服务器负载均衡能力如何?不得不关注F5提出的关于安全、网络全面优化的解决方案&#xff0c…...

Ubuntu18.04安装docker-io

1. 安装docker 1.1 网上一搜,全是更新仓库、下载依赖、添加docker的gpg密钥、添加docker仓库、安装docker-ce的步骤,但是在安装docker-ce时却提示“package "docker-ce" has no installation candidate”,就很迷。 1.2 安装docke…...

代码随想录笔记--栈与队列篇

目录 1--用栈实现队列 2--用队列实现栈 3--有效的括号 4--删除字符串中的所有相邻重复项 5--逆波兰表达式求值 6--滑动窗口的最大值 7--前k个高频元素 1--用栈实现队列 利用两个栈&#xff0c;一个是输入栈&#xff0c;另一个是输出栈&#xff1b; #include <iostrea…...

【力扣】55. 跳跃游戏 <贪心>

【力扣】55. 跳跃游戏 给一个非负整数数组 nums &#xff0c;最初位于数组的第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1…...

在iPhone 15发布之前,iPhone在智能手机出货量上占据主导地位,这对安卓来说是个坏消息

可以说这是一记重拳&#xff0c;但似乎没有一个有价值的竞争者能与苹果今年迄今为止的智能手机出货量相媲美。 事实上&#xff0c;根据Omdia智能手机型号市场跟踪机构收集的数据&#xff0c;苹果的iPhone占据了前四名。位居榜首的是iPhone 14 Pro Max&#xff0c;2023年上半年…...

题目:2620.计数器

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2620. 计数器 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 定义两个全局变量&#xff0c;一个判断 n 是否改变&#xff0c;另一个记录上一次出现的数。 解题代码&#xff1a; /*** par…...

【MySQL】MySQL系统变量(system variables)列表(SHOW VARIABLES 的结果例)

文章目录 【MySQL】MySQL系统变量&#xff08;system variables&#xff09;列表&#xff08;SHOW VARIABLES 的结果例&#xff09;SHOW VARIABLES 的结果例参考 【免责声明】文章仅供学习交流&#xff0c;观点代表个人&#xff0c;与任何公司无关。 编辑|SQL和数据库技术(ID:S…...

【多AZ】浅述云计算多az

多AZ&#xff08;Availability Zone&#xff09;是云计算中一种重要的容灾和冗余策略&#xff0c;它通过在不同的地理位置或不同的设备上存储数据副本以及网络切换策略&#xff0c;以保证在单个设备或地理位置发生故障时&#xff0c;云加计算集群仍然能够提供服务。 多AZ的特点…...

Element浅尝辄止13:Collapse 折叠面板

通过折叠面板收纳内容区域 1.如何使用&#xff1f; 可同时展开多个面板&#xff0c;面板之间不影响 <el-collapse v-model"activeNames" change"handleChange"><el-collapse-item title"一致性 Consistency" name"1">&l…...

51 单片机包含头文件 BIN51.H 直接写二进制数字

51 单片机包含头文件 BIN51.H 直接写二进制 最近学习 51 单片机&#xff0c;写代码的时候感觉用二进制的形式更直观。就是每次都需要宏定义&#xff0c;太麻烦。干脆把所有的8位二进制数字全部用宏定义写出来&#xff0c;放进头文件&#xff0c;下次使用直接包含头文件就行。 …...

php环境搭建步骤(与资源配套使用版)

1.将phpEnv.zip下载到D盘下 2.解压到当前文件夹 3.找到Apache24下的bin目录&#xff0c;执行cmd操作&#xff0c;回车。 4.在cmd中执行代码 Httpd -k install -n “Apache24” 4.使用winR键打开运行&#xff0c;输入services.msc &#xff0c;回车&#xff0c;进入服务 …...

java 集合处理:

// 1 数组转map public static void main(String[] args) {String backendIdStr"[\"backend-mvj05upv7yc\",\"backend-mvj055qvric\",\"backend-mvj04hlutx4\"]";String[] backendIdList JsonUtil.asObject(backendIdStr, String[].c…...

告别PPT超时焦虑:PPTTimer让演讲时间管理变得如此简单

告别PPT超时焦虑&#xff1a;PPTTimer让演讲时间管理变得如此简单 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为PPT演示超时而烦恼吗&#xff1f;每次演讲都像和时间赛跑&#xff0c;担心讲得太快或太…...

以灵活测试方案打造共享实验室,强化槟城IC设计生态系统

益莱储&#xff08;Electro Rent&#xff09; InvestPenang&#xff5c;IC 设计验证与特性表征共享实验室马来西亚槟城正积极推进其成为亚洲领先的半导体枢纽。在 InvestPenang 主导的「Penang Silicon Design 5KM&#xff08;PSD5KM&#xff09;」计划下&#xff0c;全新的 I…...

【Flink学习】(五)Flink 并行度与任务链,任务运行核心原理

本文主要整理Flink 底层任务运行机制&#xff0c;学会合理设置并行度&#xff0c;初步具备任务调优思维。 一、并行度概念 并行度代表 Flink 任务运行的线程数量&#xff0c;决定任务处理速度&#xff0c;分为全局并行度、算子并行度、客户端并行度。 二、并行度设置 分为三种方…...

2026年第二次答辩前论文降AI攻略:二次答辩AIGC超标4.8元彻底解决完整处理方案

2026年第二次答辩前论文降AI攻略&#xff1a;二次答辩AIGC超标4.8元彻底解决完整处理方案 关于第二次答辩论文降AI&#xff0c;我总结了一个最重要的教训&#xff1a;别只降标红段落&#xff0c;要全文处理。 之前逐段降&#xff0c;整体检测还是超标。换成全文上传&#xff…...

实战指南:高效部署企业级网络监控系统ElastiFlow的完整方案

实战指南&#xff1a;高效部署企业级网络监控系统ElastiFlow的完整方案 【免费下载链接】elastiflow Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack 项目地址: https://gitcode.com/gh_mirrors/el/elastiflow ElastiFlow是一款基于Elastic…...

Adobe-GenP:5分钟解锁Adobe全家桶的终极方案

Adobe-GenP&#xff1a;5分钟解锁Adobe全家桶的终极方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的高昂订阅费用发愁吗&#xff…...

LiveSplit终极指南:为速度跑者量身定制的精准计时神器

LiveSplit终极指南&#xff1a;为速度跑者量身定制的精准计时神器 【免费下载链接】LiveSplit A sleek, highly customizable timer for speedrunners. 项目地址: https://gitcode.com/gh_mirrors/li/LiveSplit LiveSplit是一款专为速度跑者打造的轻量级、高度可定制的计…...

终极指南:如何在Mac上免费快速制作Windows启动盘?

终极指南&#xff1a;如何在Mac上免费快速制作Windows启动盘&#xff1f; 【免费下载链接】windiskwriter &#x1f5a5; Windows Bootable USB creator for macOS. &#x1f6e0; Patches Windows 11 to bypass TPM and Secure Boot requirements. &#x1f47e; UEFI & L…...

DS4Windows终极指南:如何免费解决手柄漂移并优化游戏操控精度

DS4Windows终极指南&#xff1a;如何免费解决手柄漂移并优化游戏操控精度 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否遇到过手柄摇杆自动漂移、瞄准时准星抖动、按键响应延迟等…...

G-Helper完整指南:如何用10MB替代华硕Armoury Crate实现笔记本极致优化

G-Helper完整指南&#xff1a;如何用10MB替代华硕Armoury Crate实现笔记本极致优化 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivob…...