QUIC的loss detection学习

PTO backoff

backoff 补偿

/ˈbækɒf/

PTO backoff 是QUIC(Quick UDP Internet Connections)协议中的一种机制,用于处理探测超时(Probe Timeout, PTO)重传策略
它逐步增加探测超时的等待时间,以避免网络拥塞并减少不必要的重传

什么是PTO Backoff

PTO backoff 是一种延时策略,用于在多个 PTO 事件发生后逐渐增加超时等待时间,以减少网络负载和拥塞风险
即,每次当数据包重传仍然未得到 ACK 确认时,QUIC 协议会延长下一次 PTO 计算的等待时间

PTO Backoff的工作原理

初始 PTO 计算:
初始 PTO 通常基于平滑后的 RTT(Round-Trip Time,往返时间)
在这里插入图片描述
第一次 PTO 触发:
当超过初始 PTO 时间仍未收到数据包的 ACK 确认,触发第一次重传

应用 PTO Backoff:
每次 PTO 后,若仍未收到 ACK 确认,下一次 PTO 值会增加。增加的方式通常是指数增长。

例如,PTO backoff 因子可能是 2,那么第二次 PTO 等待时间将是初始 PTO 的两倍,第三次为初始 PTO 的四倍,依此类推。
假设 backoff_factor = 2, 且初始 PTO 为 100ms

那么:
第一次PTO:100ms
第二次PTO:100ms × 2 = 200ms
第三次PTO:200ms × 2 = 400ms

减少网络拥塞:

通过逐步增加超时时间,PTO backoff 避免了在拥塞的网络中过于频繁的重传请求,从而减轻网络负载。

PTO Backoff的优点

防止网络拥塞:
逐步增加超时等待时间,减少过频的重传,防止因重传过多而加剧网络拥塞

提高重传效率:
通过合理的延迟策略,重传可以在网络状况有所恢复时进行,提高重传成功率

动态适应网络:
根据实际的网络反馈,动态调整PTO等待时间,有助于在不同网络状况下保持良好的传输性能

示例

假设初始 PTO 为 100ms,backoff 因子为 2

以下是一次重传过程的模拟:
发送了包X,并启动初始PTO 100ms
经过 100ms 仍未收到包 X 的 ACK,触发第一重传
设置下一次 PTO 为 200ms
经过 200ms 仍未收到 ACK,触发第二次重传
设置下一次 PTO 为 400ms
经过 400ms 仍未收到 ACK,触发第三次重传
设置下一次 PTO 为 800ms
依此类推,直到网络恢复或所有重传尝试结束

总结

通过动态增加探测超时的等待时间,减少了在网络状况不佳时过于频繁的重传请求,防止网络进一步拥塞
通过合理的延迟策略,PTO backoff 提升了重传效率,并动态适应了不同的网络环境,从而确保数据传输的稳定性和可靠性

PTO 是跨多个编号空间的吗?

探测超时(Probe Timeout, PTO)机制的设计和应用确实是跨越多个编号空间的。

编号空间

QUIC引入编号空间(Packet Number Spaces)的概念,以支持不同类型的包和它们各自的状态管理。

初始编号空间(Initial Packet Number Space):用于初始连接握手的包
0-RTT编号空间(0-RTT Packet Number Space):用于在连接握手完成前发送的数据包
握手编号空间(Handshake Packet Number Space):用于连接握手完成前的后续包
1-RTT编号空间(1-RTT Packet Number Space):用于连接握手完成后的正常数据传输

PTO跨编号空间的工作原理

在计算PTO时,QUIC需要跨多个编号空间来确定最佳的探测超时值。

具体步骤如下:
初始化和计算独立PTO:
对每个编号空间独立计算初始PTO。每个编号空间有自己的RTT估计和相关的变量。

选择最小PTO:
最终的PTO值是所有编号空间中最小的那个。这样可以确保最早探测到潜在丢包并进行重传。
例如,如果在初始编号空间的PTO是300ms,握手编号空间的PTO是200ms,那么,最终使用的PTO值是200ms。

跨编号空间的探测包:
当PTO触发时,可能需要在不同的编号空间内发送探测包。探测包可以是用于确认连接状态的控制信息,也可以是需要重传的数据包。

动态调整PTO:
根据接收到的ACK确认情况和网络状况,动态调整各个编号空间的PTO值。这有助于在不断变化的网络条件下维持传输稳定性和有效性。

示例

假设存在三个编号空间:
初始编号空间(Initial)、握手编号空间(Handshake)、1-RTT编号空间(1-RTT)

每个编号空间的初始PTO计算如下:
在这里插入图片描述
最终,跨编号空间的PTO值为
在这里插入图片描述

触发探测超时的操作:
在 200ms 后,如果握手编号空间尚未收到 ACK 确认,就会在此编号空间内发送探测包(如握手信息的重传)
如果在接下来的探测包发送后,仍未确认其它编号空间的数据包,可以逐步触发这些编号空间的重传

优点

确保可靠性:通过跨越多个编号空间的PTO机制,可以更早地探测到连接中的任何问题(如数据包丢失),并及时进行重传。
降低延迟:PTO计算采用最小值策略,使得在最短时间内就能发现问题,并采取修复措施。
动态调整:根据实际网络状况,动态调整各个编号空间的PTO值,有助于优化网络性能。

总结

探测超时(PTO)在QUIC协议中确实是跨多个编号空间进行管理和计算的。
通过在多个编号空间内计算独立的PTO值并选择最小的一个进行实际操作,QUIC能够更加灵敏和高效地处理潜在的丢包和延迟问题。
这有助于提高数据传输的可靠性和效率,尤其是在不同类型数据包和不同网络条件下。

PTO是跨编号空间的,为啥每个编号空间还要单独计算PTO

不同的编号空间在处理和传输不同类型的数据包时,往返时延(RTT)和丢包情况可能各有不同。

QUIC协议中的每个编号空间(如Initial、Handshake、1-RTT等)都有其独特的用途和重要性:
Initial编号空间:用于初始连接握手
Handshake编号空间:用于交换握手数据,完成密钥协商
1-RTT编号空间:用于传输正式数据(连接握手完成后的常规数据传输)
每个编号空间中的数据包类型、大小、传输频率和期望的RTT可能都有所不同,因此需要独立管理和监测其状况。

不同编号空间的数据包在网络传输中的RTT可能不同,比如:
握手包(Handshake Packets)通常需要经过更多的处理步骤,因此其RTT可能会略高
初始包(Initial Packets)可能较少受网络拥塞的影响,因为它们通常是在连接初始化时发送的
由于这种差异,独立计算各编号空间的PTO值能使QUIC更精细地反映实时网络状况,并基于精确的信息做出决策。

丢包检测和处理的精确性
单独计算每个编号空间的PTO可以使丢包检测和处理更加精确:
如果一个特定编号空间的PTO较短,说明这个编号空间中的数据更容易丢包,需要更迅速的重传。
独立计算的PTO值帮助快速发现网络瓶颈或传输异常,对应采取措施以减少整体传输延迟。

灵活的重传策略
独立计算PTO还支持更灵活的重传策略:
在某一个编号空间中探测到丢包,可以对该编号空间进行更快的重传,而不影响其他编号空间的数据传输。
这个独立性允许QUIC在网络状况异常时,能够专注于最急需修复的问题,不浪费资源在相对稳定的编号空间。

应用

假设存在三个编号空间(Initial、Handshake、1-RTT),每个编号空间的都有各自的PTO
然后,跨编号空间的PTO选择最小值

当触发PTO时
如果Initial编号空间中的包超时未被确认,需要重传Initial编号空间的包,同时调增PTO值
其他编号空间如没有超时,不需要立即重传,保持当前PTO,直到实际触发

总结

尽管QUIC协议对PTO进行跨编号空间管理,但为了确保每个编号空间的独立性和灵敏度,每个编号空间内仍需单独计算PTO值。
这种策略提供了更精细和精准的丢包检测和重传管理,使得QUIC在不同传输阶段能有效适应网络变化,提高传输的可靠性和效率。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【FreeRTOS】任务

1.使用stm32cubemx配置freertos 2.创建任务 我们需要在MX_FREERTOS_Init()里面创建任务 我们根据上面的任务创建方式,实现GPIO_PIN_10的反转 1.任务句柄 2.任务结构体 3.任务执行函数 4.任务函数声明 5.创建线程执行任务 hal_delay和osDelay区别?…

Qt (17)【Qt 文件操作 读写保存】

阅读导航 引言一、Qt文件概述二、输入输出设备类三、文件读写类四、文件和目录信息类五、自定义“记事本” 引言 在上一篇文章中,我们学习了Qt的事件处理机制,知道了如何响应用户的操作。但应用程序常常还需要处理文件,比如读写数据。所以&a…

应用软件系统开发 实操一:任务需求描述

一、实操一:任务需求描述 软件和信息技术服务业数据统计平台是一个为不同级别管理员提供定制化服务的系统。它主要面向数据管理员和系统运维管理员,每一种用户角色各自拥有特定的功能权限。系统运维管理员是专门针对平台基础功能的管理人员,它…

08_Python数据类型_字典

Python的基础数据类型 数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合 字典 字典(Dictionary)是一种可变容器模型,它可以存储任意类型对象,其中每个对象都存储为一个键值对。…

如何评估土壤功能?瓦赫宁根大学研究团队在土壤学一区TOP期刊最新成果给出答案!

本文首发于“生态学者”微信公众号! 土壤健康是农业可持续发展的关键因素之一,而土壤有机碳(Soil Organic Carbon, SOC)含量是衡量土壤健康最常用的指标。然而,许多土壤功能不仅受SOC总量的影响,还与其质量…

FreeRTOS学习——链表list

FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码 FreeRTOS Kernel V10.5.1 参考大佬的好文章: freertos内核原理 Day1(链表) FreeRTOS-链表的源码解析 *list_t只能存储指向list_item_t的指针。每个list_item_t都…

photozoom classic 9解锁码2024年最新25位解锁码

photozoom classic 9 破解版顾及比恐龙还要稀有,我曾经和你一样一直再找,找了好几个月,也没有找到真的破解版,下载很多次, 都是病毒插件之类的 我昨天下了几次,没有一个不附带插件病毒木马的.......&#x…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、网络代码 2、训练代码 3、评估代码 4、结果显示 三、项目代码 一、项目界面 二、代码实现 1、网络代码 该网络基于残差模型修改 import torch import torch.nn as nn import torchvision.models as modelsclass resnet18(nn.Modul…

数据结构(2):LinkedList和链表[2]

我们在上一篇文章中着重讨论了单链表的实现。其中我们要注意单链表进行遍历时一步一步走的思想。那么这篇文章我们将继续讨论链表的更多内容,那就让我们开始吧。 1.经典单链表算法题 我们将通过几个经典的题对单链表进行进一步的认识。 (1)反转链表 206. 反转链…

cas 5.3服务器搭建

项目环境要求 jdk1.8,tomcat8 网盘下载(官网下载速度慢可以用此方法下载) 网盘链接:8910官网各稳定版本,软件包点击自取 cas5.3git代码 https://github.com/apereo/cas-overlay-template/tree/5.3 刚拉下来的代码目录…

OJ题-反转链表

给你一个单链表的头节点,请反转链表,并返回新的链表 eg: 1,2,3,4,5--->5,4,3,2,1 //反转链表 struct ListNode* reverseList(struct ListNode* head) {//定义三个变量struct ListNode* n1, * n2, * n3;n1 NULL;n2 head;n3 head->n…

鸿蒙开发之ArkTS 基础九 枚举类型

枚举把变量固定在特定的范围内 枚举的语法: enum 枚举名字 { 常量1 值1, 常量1 值1, 常量1 值1, ... } 定义具体如下: 使用具体如下:

centos更改静态ip

点击网络和internet设置 点击更改适配器 、点击属性

【C++题目】1.日期差值

日期差值 题目&#xff1a; 链接&#x1f517;&#xff1a;日期差值 代码&#xff1a; #include <iostream> using namespace std; /* *思路&#xff1a; * 1. 分别求出每一个日期与0000年0月1日距离的天数 * 2. 两个距离天数相减即可得到两个日期相差的天数 *///平年…

宿舍管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 宿舍管理系统拥有三个角色&#xff0c;分别为系统管理员、宿舍管理员以及学生。其功能如下&#xff1a; 管理员&#xff1a;宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录管理、个人密…

【高录用 | EI快检索, IEEE出版】第二届人工智能与自动化控制国际学术会议(AIAC 2024)

会议官网&#xff1a;www.icaiac.org The 2nd International Conference on Artificial Intelligence and Automation Controlwww.icaiac.org 电气电子工程师学会&#xff08;IEEE&#xff09;的英文全称是the Institute of Electrical and Electronics Engineers。作为全球最…

hh exe所选的程序不能与此文件类型相关联。请选择其他程序。

按照hh exe打开chm文件显示所选的程序不能与此文件类型相关联。请选择其他程序。 以上错误来自于 cmd命令行 cd C:\Windows\hh.exe 要打开的chm文件报错 其实根本原因是在设置中.chm文件默认打开方法被其他软件占用了&#xff0c;解决办法只能删除那个软件&#xff0c;如果是W…

认知杂谈68《燃爆!兄弟萌不可错过的人生开挂宝典》

内容摘要​&#xff1a; 生活如舞台&#xff0c;我们要做自己人生的导演兼主演。实现自我成长需打牢基础&#xff0c;如读《认知觉醒》等书并制定成长计划。 要向上生长&#xff0c;定短期和长期目标&#xff0c;学新技能、提升沟通能力&#xff0c;可借助在线平台和社群。用番…

医院伤员食堂管理系统开通方法———未来之窗行业应用跨平台架构

一、 医院伤员食堂管理建设必要性 1. 提高服务质量 - 能够更精准地满足伤员的特殊饮食需求&#xff0c;如根据病情提供不同的营养搭配&#xff0c;有助于伤员的康复。 - 及时响应伤员的反馈&#xff0c;改进餐饮服务&#xff0c;提升伤员的满意度。 2. 优化资源配置 …

Java 枚举 新特性

Java 枚举&#xff08;enum&#xff09;自JDK 1.5引入以来&#xff0c;随着版本的升级不断增强。本文将回顾枚举的演进&#xff0c;尤其是结合switch语句的应用&#xff0c;展示枚举如何在现代Java中变得更加灵活。 1. JDK 1.5&#xff1a;Java 枚举的诞生 在JDK 1.5之前&…