NetHang - 一款更适合互联网产品的弱网测试解决方案

30 天前
 stephenyin

NetHang 是一个基于 Linux 平台的 Web-Based 网络质量仿真软件工具。类似工具的其他常见名称还有:弱网测试工具网络损伤工具(网损仪)或 网络流量控制工具 等。NetHang 主要针对的测试产品是对网络实时性要求较高的网络产品,主要包括 RTC 产品(网络音视频通信,网络会议,网络直播连麦等),AI Agent 软件(通过网络与大模型实时交互的软件),当然,也可以用来测试产品的拥塞控制算法性能和链接稳定性等。

网损工具的横向对比

类似的网损产品主要有:

软件方案:

硬件方案: Spirent ,HoloWan ,packetstorm 等厂商,这些硬件网络工具通常更多聚焦于吞吐量和稳定性测试,更适用的是行业是通信设备商,运营商或云服务企业,本次暂不做讨论。

开发 NetHang 的主要原因是观察到现有软件或硬件弱网工具在满足互联网产品 Lastmile 网络性能测试方面都或多或少的存在一些不足,主要表现在以下几点:

  1. 跨平台统一性:这个问题主要影响在同一个产品运行在不同平台上时能否使用同一套弱网测试标准在衡量和评判,以及评判的准确性。对于那些只能支持部分平台的软件如 QNET 和 Clumsy 等就很难拉齐这个测试方法,无法在对平台的弱网测试中提供可靠和可重入的测试方法。另外这种运行在测试设备上的弱网测试软件本身受测试舍本的性能限制,甚至会影响测试设备的性能,就更难获得可靠的测试结果。NetHang 是运行在 Linux 系统上作为软路由上的一个服务运行,理论上可以对所以通过该路由器接入网络的 IP 网络设备提供完全相同的网络损伤服务。
  2. 内置网络模型:在广泛使用的弱网工具中测试人员面对的往往是一堆网络质量的参数,Packet Loss (各种模型 Markov , Gilbert-Elliot 等),Delay ,Jitter (各种分布 Normal ,Uniform ,Pareto 等),Bandwidth Limit (组合 Queue-depth ,Burst ,TokenBucket 设置),Accumulate-Burst (堆积突发时长控制),以及要不要 Reordering (乱序) Corrupt ( bit 翻转)和 Duplicate (重复包),测试人员要用这些参数组合出合理的弱网测试条件并不是见容易的事,甚至基本不可能,见过太多测试人员用带乱序的 1000+ ms jitter 测试互联网产品了, 这不只是无用功,甚至如果产品在这个方向上做了足够多的优化之后一定会引入其他方面的问题,无论是抗弱网能力还是计算性能这都是得不偿失的。而针对这个问题 NetHang 根据大量网络探测结果内置了一批在一定程度和合理的网络损伤模型可供选择使用,并且会不断的更新和添加更丰富和准确的网络模型,这在提高测试效率的同时更重要的是规避了投入大量精力测试很多现网中根本不会出现或极少出现的网络条件。
  3. 自定义动态网络模型:众所周知 Lastmile 网络因为其多样的接入方式,接入设备,负载,信号强度,竞争流量等原因呈现出多变的特征,NetHang 可以通过 YAML 语法自定义组合不同的网络条件组合出实时变化的网络仿真条件。

以上述软件工具作为参照,下边是一个概要对比结果

Nethang Linux TC/Netem Network Link Conditioner Clumsy QNET
跨平台统一性
内置网络模型
自定义动态网络模型

获取和部署

995 次点击
所在节点    分享创造
9 条回复
zwy100e72
30 天前
看起来功能很丰富。不知楼主是否了解过 https://github.com/tylertreat/Comcast 个人认为应该也是同领域的工具
stephenyin
30 天前
@zwy100e72 #1 谢谢你的信息,这款 Comcast 我之前确实没注意过,我大概看了下 README 从实现机制基本差不多,iptables + tc + netem 。如果非要说自己的优势的话 NetHang 里边网络模型是动态的,相对也更加经得起推敲,以 Comcast 里最后提到的 starlink 的网络模型为例,这个我也探测过,静态的 Latency 20ms + packet loss 2.5% 是不足以描述清楚的,starlink 每 20 - 30 秒切换卫星有概率堆积突发和延迟跳变。。我会持续更新一些新网络模型进去。
zwy100e72
30 天前
没有别的意思,我只是看着 comcast 的名字,给你出点馊主意:既然美国人可以起名 comcast ,那咱结合国情,是不是可以起一个外号:鹏博士 / 长城宽带 模拟器什么的,哈哈
kkchan1999
30 天前
某国产厂商前员工觉得很赞
stephenyin
30 天前
@kkchan1999 #4 HoloWan?
kkchan1999
30 天前
@stephenyin #5 Bingo, 你做这个开源出来他们很难受的
stephenyin
30 天前
@kkchan1999 #6 那倒也不至于,大厂选型还是会看知名厂商背书的,除非做成开源弱网测试标准。
cuihua
30 天前
顶一下,正好需要用这个,我们在用 quic 做数据传输,需要造损伤,现在用的是 tc
stephenyin
30 天前
@cuihua #8 完美契合的使用场景👍。有需求或建议可以告诉我,v2 或 github 都可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1139317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX