认识网络随机丢包

news/2024/5/20 13:55:08/文章来源:https://blog.csdn.net/dog250/article/details/130156554

考虑一根漏水的管子,希望出水口接到和不漏的管子等量的水,要么靠时间,反复将漏掉的水重新注入,直到漏掉的水可忽略:
在这里插入图片描述

要么靠空间,在漏的地方将管子加粗,一次性注入更多的水:
在这里插入图片描述

不管哪种方式,总有一段管子要承担更大压力,要么来自多次小冲刷,要么来自一次大冲刷,换句话说,因为漏不可避免,造成额外压力的这些流量就是用来漏掉的,这是不可避免的补偿。

当我们评估网络丢包时,注意以上的类比。

网络丢包分两类,拥塞丢包和随机丢包,拥塞丢包是自找的,来自传输协议自身,可避免,随机丢包则来自下层,可能是路由问题,可能是信道质量问题,这种丢包无法避免,只能补偿。

如漏水管类比,随机丢包的补偿一定要增加流量,额外的这部分流量要在丢包处损失掉,但这部分额外流量可能增加丢包处上游链路的拥塞,因此随机丢包可能造成拥塞丢包,随机丢包率越高,拥塞越可能发生,这反馈环很有趣。

假设丢包率 P,传输总量为 1 的数据,计算一下需要额外多发的流量。

非常简单,x * (1 - P) = 1,解得 x = 1 / (1 - P)。但这只是一个式子,下面看具体补偿过程。

对于一次性大冲刷,本来要发送 1,在丢包率 P 下要发送 1 / (1 - P)。

对于多次小冲刷,累加每次重传的丢包量即可:

A = 1 + 1 * P + 1 * P * P + 1 * P * P * P + … 1 * P^n = (1 - P^n)/(1 - P)

在 n 趋向于无穷时,A = 1 / (1 - P)

不管分批补偿,还是一次补偿,随机丢包率 P 的可靠传输,必须多付出 1 / (1 - P) - 1 的额外流量作代价,而这部分多出来的流量将可能在别处造成拥塞。

当随机丢包大于一定的概率,用户保障就会激增,运营商必须主动干预维修,否则随机丢包将恶化成严重拥塞。随机丢包的原因不外乎线缆老化,设备老化,线路受损,人为干预等,但对于接入区域而言,比如 Wi-Fi 网络的 CSMA/CA 碰撞,信号问题也是随机丢包源之一。

以上就是随机丢包的根本以及影响。

随机丢包是固有损失,要接受它。在可靠传输场景,要用 “多次小冲刷” 方式补偿,除此之外采取柔性降级应对损失而尽量不要补偿。

对端到端拥塞控制算法如何应对随机丢包,没有定论,各算法都在宣扬自家抗随机丢包能力,但实际上没有任何端到端算法有这能力。这就好比说人群围绕篝火,引发了火灾,只有看到树木被点着了才知道是篝火还是火灾。

即便端侧有能力干预拥塞丢包,也很难识别这种丢包。虽然很难很粗糙,但我们假设端到端算法有能力检测丢包,但算法能做到的仅此而已,它只能判定丢包事实(虽然也有误判),却无法得到丢包的原因:

  • 如果随机丢包,保持现状重传。
  • 如果拥塞丢包,降低速率重传。

TCP sender 只能通过观察 RTT,RTT 抖动,有效吞吐等信息来猜测丢包的原因并做出相应决策,而这些二手信息并不可靠。BBR 采用 “观望一会儿看看”(10-round maxbw-filter) 的策略(BBR2 采用了更锉的方案,引入一个丢包率,大于这个比率才反应),如果真着火了,火很快就会蔓延,如果不是,就什么都不做,这种策略显然代价高昂。

一种更有效的方法是通过 receiver 主动通告更精确的信息而不是即时反馈裸事件给 sender。比如 receiver 反馈即时接收速率以及速率的变化而不是为每一个或每几个接收段生成一个仅为确认的 ACK,这不是 TCP 的方式,但它显然比 TCP 更有效。

TCP ACK 最开始是为可靠传输而不是被 sender 用来测量连接指标的,否则不会引入模棱两可的 delayed ACK,这个问题一直持续到今天。

ACK 发送过多但携带的信息量一点也不多,反而会引入反向路径干扰以及 cwnd 糊涂窗口。

ACK 发送频率过高,导致每个 ACK 释放的 cwnd 空间过快且小,而 SACK 需要非 delay 立即发送,这加重了重传时 cwnd 糊涂窗口,高频但少量消耗 cwnd,这是个正反馈,非常不稳定的平衡,除非持续主动 capacity-seeking probe,cwnd 很容易消耗殆尽,吞吐下跌。

ACK 携带的精确信息仅是积累确认,而拥塞信息属启发信息,需要注意的是,ACK 不光启发拥塞,也启发抖动,因此 ACK 携带的启发信息误判概率非常大,它本身就是 receiver 侧的二手失真镜像。如果 receiver 没有检测到明确抖动信号,就不应该将一个疑似抖动信号反馈给 sender。

TCP 过分依赖 ACK 时钟造成这个不稳定的正反馈,BBR 也没改善现状。我在 CUBIC 动力学 中提出用定时器驱动 pacing 而摆脱 ACK 时钟,但并不适用 TCP,因为 ACK 携带的信息虽少,但它却是 TCP sender 唯一可获得的信息,摆脱不了的同时造成 TCP 反应过于敏感。

如果能换另外一个传输协议,它不应该为每个或每几个接收段生产 ACK,而应该对事件计算信息,将信息进行 ACK,“没有消息就是好消息”,它应该倾向于边沿触发。

多少有点遗憾,QUIC 继承了 TCP 大部分特性,只是对一些明显的问题进行了修补。

目前不管在广域网还是数据中心,有两种倾向让我觉得很多人走偏了。

广域网传输,大家希望即使在丢包率很高的情况下依然要保持足够高的吞吐,但如果丢包是固有随机丢包,比如 Wi-Fi 信号太差,做这件事的结果非但解决不了随机丢包,还会引入拥塞,如果人进入电梯了,server 拼命激进发送除了拥塞链路还有什么用呢?

可以想象,提供一个绝对的信号很差的无线场景,或把光纤弯折后再跺两脚的有线场景,绝大多数人的优化手段是用数量补偿质量,几乎没有人放任 TCP Tahoe 什么都不做,可是要知道,TCP 伊始应对的就是这环境。

另一方面,在数据中心,很多人希望传输协议足够完备,虽然 TCP 有诸多缺陷,但在数据中心做传输协议时,大家依然要模仿 TCP 的样子,TCP 有什么就做什么。比如为 TCP or RoCE 引入 SACK 替换 GBN,但实际上没必要。

数据中心链路随机丢包极罕见,而 SACK 在应对随机丢包方面优于 GBN,在链路质量很好时,GBN 足够。此外 SACK 需扫描传输队列,很耗 CPU,而数据中心传输协议的目标之一就是 offloading,解放 CPU,为传输协议实现 SACK 是帮倒忙。怪不得像 lwIP,seastar 都没实现 SACK,也许是偷懒,但确实没用。

聊到随机丢包的应对方法,关联到拥塞控制,写点自己的想法。

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

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

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

相关文章

如何在云服务器/云主机上部署最新版本的Hadoop3.3.5(Ubuntu20.0.4)

在云服务器上部署Hadoop 步骤1:更新系统 sudo apt-get update sudo apt-get upgrade步骤2:安装Java Hadoop需要Java运行环境。首先,安装OpenJDK 8: sudo apt-get install openjdk-8-jdk检查Java版本: java -versi…

掌握Linux指令和权限:一个入门教程

目录 一.Linux基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkair指令6.rmdir和rm指令 一.Linux基本指令 1.ls指令 语法格式:ls [选项][目录或者文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其…

EtherCAT和Ethernet的不同点有哪些, 通信周期又是什么意思?

小伙伴们,我们又来了。上期大概介绍了EtherCAT的一些特性,本期我们将会更详细的介绍一下EtherCAT的实现方式,通信周期的意义到底是什么、SDO和PDO到底是什么等概念。 首先要声明,尽管本期介绍略微深入,实际上小伙伴使…

响应式开发HTML5CSS3实现视频播放器的功能案例

目录 前言 一、本视频播放器需要实现的功能 ​二、代码分布结构 三、部分主要代码 1.index01.html 2.video1.css 3.video1.js 四、images图片资源及视频 五、运行效果 前言 1.本文讲解的响应式开发技术(HTML5CSS3Bootstrap)的HTML5视频播放器等…

AIPRM for ChatGPT插件让ChatGPT如虎添翼

ChatGPT大热,家人们都申请到了账号,可是总是在一问一答的基础上来完成基本的应用,而不能很好的使用「咒语」(Prompt),收获的答案不是通过很多次的反复问获取答案,就是获取的不是想要的答案。所以…

【HCIP】Huawei设备下IPV4IPV6共存实验

目录 方法一、普通的GRE将V6基于V4通讯 方法二、6to4的tunnel 方法三、双栈 方法一、普通的GRE将V6基于V4通讯 //方法一和方法二的前提,搭个简单的V4网络就行 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1]router id 1.1.1.1 [r1-Gigabi…

分布式数据一致性解决方案推理过程

redis是一个极轻量级的进程,单机单线程单进程。 使用redis很容易实现分布式锁:setnx,同一个key,谁设置成功了,谁就抢到了锁,所以就产生了多锁问题。 假设客户端1抢到了锁,redis挂了&#xff0c…

不懂就问,Milvus 新上线的资源组功能到底怎么样?

在近期更新的 Milvus 2.x 版本中,我们上线了在社区中呼声一直很高的【资源组功能】。有了这个功能,用户再也不需要“为每个 collection 部署一套 Milvus 服务”的方案,轻松实现对 Query Node 资源进行分组管理,达到物理资源隔离的…

运行时内存数据区之执行引擎(一)

执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软…

「计算机控制系统」6. 直接设计法

特殊类型系统的最小拍无差设计 一般系统的最小拍无差设计 最小拍控制器的工程化改进 Dahlin算法 文章目录 特殊类型系统的最小拍无差设计理论分析典型输入函数的最小拍无差系统 一般系统的最小拍无差设计有波纹最小拍无差设计无波纹最小拍无差设计 最小拍控制器的工程化改进针对…

浅析商场智能导购系统功能与实施效益

商场智能导购系统是一种基于物联网技术和人工智能算法的解决方案,旨在提供商场内部的智能导购服务,为消费者提供个性化的购物导引和推荐,提升用户购物体验,增加商场的客流量和销售额。 商场智能导购系统的方案一般包括以下主要功能…

LeetCode 27.移除元素

文章目录 💡题目分析💡解题思路🚩思路1:暴力求解 --- 遍历🔔接口源码:🚩思路2:空间换时间🔔接口源码:🚩思路3:双指针(快慢指针)🔔接口…

tftp+Filezilla文件双向传输(1)-centos(VMware)-win10(host)

目录 1.下载安装vsftpdtftptftp-server 2.配置服务 2.1 配置服务 修改文件 /etc/vsftpd.conf 2.2 配置服务 守护进程 /etc/xinetd.d/tftp 2.3 配置服务 tftp服务器 2.4 配置登录用户 2.4.1 修改selinux 2.4.2 匿名用户登录 2.4.3 新建账户,不能登陆系…

Linux时间服务器(ntp)

1.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 2.配置ssh免密登陆,能够通过客户端主机通过redhat用户和服务端主机基于公钥验证方式进行远程连接 一.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 1、软件安装 [rootl…

Liunx下进程间通信

文章目录 前言1.进程间通信相关介绍2.管道1.匿名管道2.管道的原理3.通过代码来演示匿名管道4.命名管道5.命名管道的原理6.命名管道代码演示 3.System V共享内存1.共享内存原理2.相关系统接口的介绍与共享内存的代码演示3.共享内存的一些特性 4.system V消息队列与system V信号量…

TryHackMe-Services(Windows域渗透)

Services 认识团队! 今天thm新出的房间,尝尝鲜 端口扫描 循例nmap 把services.local加入hosts Web枚举 发现员工邮箱以及一些员工姓名 从下边的邮箱中,大致可以猜测其他员工账户名跟这个一致的格式 将其保存起来 立足 - AS-REP Roasting…

Linux基础—日志分析

Linux基础—日志分析 一、日志的功能1.日志消息的级别2.设备字段说明 二、日志文件的分类1.内核及系统日志2.用户日志3.程序日志 三、日志文件1.日志文件查看2.主要日志文件介绍3.日志管理策略 一、日志的功能 用于记录系统、程序运行中发生的各种事件 通过阅读日志&#xff0c…

2023第十四届蓝桥杯 C/C++大学生A组省赛 满分题解

写在前面 以下代码,目前均可通过民间OJ数据(dotcpp & New Online Judge), 两个OJ题目互补,能构成全集,可以到对应链接下搜题提交(感谢OJ对题目的支持) 如果发现任何问题&…

论文各子结构的实现

本文将简明介绍人工智能论文各子结构的实现方法,重点指出了各部分实现时的要点,帮助读者高效地完成论文的写作。 1. 标题 论文标题的确定必须遵循明确而有吸引力的原则。论文的题目需要准确反映自己论文的研究内容和创新点,同时还必须具有吸…

【LeetCode: 1027. 最长等差数列 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…