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

H-TCP 的效率和公平性

昨晚带安孩楼下玩耍,用手机 desmos 作了一组 response curve 置于双对数坐标系:
在这里插入图片描述

长肥管道的优化思路都很类似,cwnd 增长快一点:

  • BIC TCP:二分查找逼近 capacity;
  • CUBIC TCP:上凸曲线逼近 capacity;
  • Scalable TCP:确定时间逼近 capacity;
  • HSTCP:自适应 low,high 逼近 capacity;

在 Loss rate/cwnd 双对数坐标系中,用二次曲线替代直线从右下角与 Reno 相切逐渐向左上角弯折上去,就统一了 Reno,Scalable 和 HSTCP:

y = 1 0 ( 0.09 − 0.25 ln ⁡ x + 0.00105 ( ln ⁡ x ) 2 ) y=10^{\left(0.09-0.25\ln x+0.00105\left(\ln x\right)^{2}\right)} y=10(0.090.25lnx+0.00105(lnx)2)

如此也就不再需要手工分段函数,确保 TCP 友好了。现实中,H-TCP 就是这思想:

  • 距周期开始越远,AIMD 参数 α 越大,快速逼近;
  • 带宽抖动越大,AIMD 参数 β 越大,快速收敛。

因此无论在什么场景下,H-TCP 都能用统一机制自适应,在低速网络它更像 Reno,在长肥管道它又与 HSTCP 类似。

本质上 HSTCP 和 H-TCP 都是根据实际场景不断调整 α,β,不同点在于 HSTCP 采用了分段拟合 Reno 的方式,而 H-TCP 则采用了连续函数,具体如下:

α = { 1 , Δ < Δ L 1 + 10 ( Δ − Δ L ) + ( Δ − Δ L 2 ) 2 , Δ ≥ Δ L \alpha=\begin{cases}1,&\Delta<\Delta^L\\1+10(\Delta-\Delta^L)+(\dfrac{\Delta-\Delta^L}{2})^2,&\Delta\ge \Delta^L \end{cases} α= 1,1+10(ΔΔL)+(2ΔΔL)2,Δ<ΔLΔΔL

β = { 0.5 , ∣ B n − B n − 1 B n − 1 ∣ > 0.2 R m i n R m a x , o t h e r w i s e \beta=\begin{cases}0.5,& \left\lvert \dfrac{B_{n}-B_{n-1}}{B_{n-1}}\right\lvert>0.2\\\dfrac{R_{min}}{R_{max}},& otherwise\end{cases} β= 0.5,RmaxRmin, Bn1BnBn1 >0.2otherwise

β 比较有意思。MD 收缩越激烈,收敛越快,但可能收缩到 BDP 之下造成带宽利用率不足,因此 β 要适中。H-TCP 的效果是,它实时监控带宽的变化,根据这个变化率设置 β 的值。

与 Reno TCP 无条件收敛到 0.5cwnd 不同,Westwood TCP 增加了测量效果,让 cwnd 收敛到 maxbwminrtt,即 BDP,使带宽不至于因过度收敛而浪费,这就是信息注入的作用,H-TCP 思路类似,但采用了更为巧妙的做法,直接使用 minrtt / maxrtt 作为 β,更加直观,maxrtt - minrtt 就是最大排队时延,它的占比恰好就是要 drain 掉的部分。

简单模拟一下 β 的效果。先看标准 Reno TCP 的收敛:
在这里插入图片描述

再看 β 恒等于 minrtt / maxrtt 时的效果:
在这里插入图片描述

带宽利用率确实提高了。再看 H-TCP 的效果:
在这里插入图片描述

至于 α,看公式,不多说,一样的套路。

浙江温州皮鞋湿,下雨进水不会胖。

相关文章:

H-TCP 的效率和公平性

昨晚带安孩楼下玩耍&#xff0c;用手机 desmos 作了一组 response curve 置于双对数坐标系&#xff1a; 长肥管道的优化思路都很类似&#xff0c;cwnd 增长快一点&#xff1a; BIC TCP&#xff1a;二分查找逼近 capacity&#xff1b;CUBIC TCP&#xff1a;上凸曲线逼近 capa…...

集群与分布式

Cluster(集群)概述 当单独一台主机无法承载现有的用户请求量&#xff1b;或者一台主机因为单一故障导致业务中断的时候&#xff0c;就可以增加服务主机数&#xff0c;这些主机在一起提供服务&#xff0c;就叫集群&#xff0c;而用户所看到的依然是单个的主机&#xff0c;用户并…...

git rebase的常用场景: 交互式变基, 变基和本地分支基于远端分支的变基

文章目录 作用应用场景场景一&#xff1a;交互式变基(合并同一条线上的提交记录) —— git rebase -i HEAD~2场景二&#xff1a;变基(合并分支) —— git rebase [其他分支名称]场景三&#xff1a;本地分支与远端分支的变基 作用 使git的提交记录变得更加简洁 应用场景 场景…...

HttpURLConnection构造请求体传文件

HttpURLConnection构造请求体传文件 在Java中&#xff0c;使用HttpURLConnection构造请求体传输文件&#xff0c;你需要做以下几步&#xff1a; 1、创建URL对象指向你想要请求的资源。 2、通过URL打开连接&#xff0c;转换为HttpURLConnection实例。 3、设置请求方法为POST。 …...

STM32传感器模块编程实践(九) VL53L0X激光红外测距传感器简介及驱动源码

文章目录 一.概要二.VL53L0X测距原理三.VL53L0X主要特性四.VL53L0X硬件参考设计五.模块接线说明六.模块通讯协议介绍七.光学盖玻片介绍八.STM32单片机与VL53L0模块实现距离测量实验1.硬件准备2.软件工程3.软件主要代码4.实验效果 九.小结 一.概要 VL53L0X是一款由ST&#xff0…...

fastjson注解说明,fastjson注解有那些?fastjson是java的json序列化和反序列化工具包

fastjson注解说明,fastjson注解有那些?fastjson是java的json序列化和反序列化工具包 包版本说明 fastjson请使用1.2.83以上版本,小于这个版本的存在漏洞。 fastjson请使用1.2.83以上版本,小于这个版本的存在漏洞。 fastjson请使用1.2.83以上版本,小于这个版本的存在漏洞…...

VIT:论文关键点解读与常见疑问

VIT贡献点&#xff1a; 1. 首次将 Transformer 应用于图像识别任务 核心贡献&#xff1a;ViT 论文的最大贡献是提出将原本用于自然语言处理&#xff08;NLP&#xff09;的 Transformer 架构成功应用于图像任务。传统的计算机视觉模型主要依赖卷积神经网络&#xff08;CNN&…...

ArcGIS无插件加载(无偏移)在线天地图高清影像与街道地图指南

在地理信息系统&#xff08;GIS&#xff09;的应用中&#xff0c;加载高清影像与街道地图对于地图制图、影像查阅、空间数据分析等工作至关重要。天地图作为官方出品的地图服务&#xff0c;以其标准的数据、较快的影像更新速度等特点受到广泛欢迎。以下是如何在ArcGIS中无插件加…...

工业相机选型(自用笔记)

可参考链接&#xff1a; 相机和镜头选型需要注意哪些问题_靶面尺寸-CSDN博客 工业相机选型方法_ccd工业相机选型步骤-CSDN博客 1、相机 1.1 传感器类型(CCD/CMOS) CCD相机&#xff1a; 1&#xff09;目标是运动的则优先考虑。 2&#xff09;需要高质量图像&#xff0c;如进行…...

【网安笔记】4种拒绝服务攻击

目录 一、SYN Flood 攻击 二、UDP Flood 攻击 三、ICMP Flood 攻击 四、HTTP Flood 攻击 拒绝服务攻击&#xff08;Denial of Service attack&#xff0c;简称 DoS 攻击&#xff09;是指攻击者通过向目标服务器或网络发送大量的请求&#xff0c;使其资源耗尽&#xff0c;无…...

WPF 的组件数据绑定详解

Windows Presentation Foundation&#xff08;WPF&#xff09;是微软推出的一种用于构建 Windows 应用程序的 UI 框架。WPF 提供了强大的数据绑定功能&#xff0c;能够轻松地将 UI 控件与数据源连接&#xff0c;从而实现富用户体验&#xff0c;分离前端设计和业务逻辑。本文将详…...

房子,它或许是沃土

刚成家&#xff0c;来客时&#xff0c;它是客房 成家后&#xff0c;没小孩&#xff0c;它是书房 有小孩&#xff0c;未分房&#xff0c;它暂且是书房 孩子大些&#xff0c;它是孩子们埋下梦想种子&#xff0c;生根发芽的地方...

【Golang】Go语言http编程底层逻辑实现原理与实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

SOLIDWORKS参数化软件

在产品设计和工程领域&#xff0c;参数化设计是一种革命性的方法&#xff0c;它允许设计者通过定义一系列规则和关系来创建和修改模型。参数化设计的核心在于将设计过程分解为一系列可调整的参数&#xff0c;如尺寸、形状、材料属性等&#xff0c;这些参数之间通过数学关系相互…...

上位机开发常用技术 C# Task 线程 开始,暂停,继续,停止

上位机开发中一定会用到的技术就是 设备的线程开始运行执行生产流程&#xff0c;在生产过程中会有要打开安全门或暂停设备动作&#xff0c;人为去排除设备小问题的时就要用到暂停功能&#xff0c;问题排除后设备继续运行&#xff0c;生产完成后设备停止。 这些操作是上位机开发…...

MySQL 密码忘记了怎么办?

在使用 MySQL 的过程中&#xff0c;有时候我们可能会忘记密码。别担心&#xff0c;本文将详细介绍在 Windows 系统下如何重新设置 MySQL 密码。 一、停止 MySQL 服务 打开“服务”窗口&#xff0c;可以通过在 Windows 搜索栏中输入“服务”来找到并打开它。在服务列表中找到“…...

Java中常见的自带数据结构类

目录 一、ArrayList&#xff08;动态数组&#xff09; 特性 常用方法 二、LinkedList&#xff08;双向链表&#xff09; 特性 常用方法 三、ArrayDeque&#xff08;双端队列&#xff09; 特性 常用方法 四、HashMap&#xff08;哈希表&#xff09; 特性 常用方法 五、TreeMap&…...

数据结构——链表,哈希表

文章目录 链表python实现双向链表复杂度分析 哈希表&#xff08;散列表&#xff09;python实现哈希表哈希表的应用 链表 python实现 class Node:def __init__(self, item):self.item itemself.next Nonedef head_create_linklist(li):head Node(li[0])for element in li[1…...

如何使用Python对Excel、CSV文件完成数据清洗与预处理?

在数据分析和机器学习项目中&#xff0c;数据清洗与预处理是不可或缺的重要环节。 现实世界中的数据往往是不完整、不一致且含有噪声的&#xff0c;这些问题会严重影响数据分析的质量和机器学习模型的性能。 Python作为一门强大的编程语言&#xff0c;提供了多种库和工具来帮…...

第8篇:网络安全基础

目录 引言 8.1 网络安全的基本概念 8.2 网络威胁与攻击类型 8.3 密码学的基本思想与加密算法 8.4 消息认证与数字签名 8.5 网络安全技术与协议 8.6 总结 第8篇&#xff1a;网络安全基础 引言 在现代信息社会中&#xff0c;计算机网络无处不在&#xff0c;从互联网到局…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...