NetHang 是一个基于 Linux 平台的 Web-Based 网络质量仿真软件工具。类似工具的其他常见名称还有:弱网测试工具,网络损伤工具(网损仪)或 网络流量控制工具 等。NetHang 主要针对的测试产品是对网络实时性要求较高的网络产品,主要包括 RTC 产品(网络音视频通信,网络会议,网络直播连麦等),AI Agent 软件(通过网络与大模型实时交互的软件),当然,也可以用来测试产品的拥塞控制算法性能和链接稳定性等。
网损工具的横向对比
类似的网损产品主要有:
软件方案:
- Linux TC / Netem:Linux 内核组件Apple Network Link Conditioner:支持 iOS 和 MacOS 平台的 Apple 官方开发者套件开源 Clumsy:支持 Windows 平台的开源作品腾讯 QNET:支持 Android 和 iOS 平台的付费软件
硬件方案: Spirent ,HoloWan ,packetstorm 等厂商,这些硬件网络工具通常更多聚焦于吞吐量和稳定性测试,更适用的是行业是通信设备商,运营商或云服务企业,本次暂不做讨论。
开发 NetHang 的主要原因是观察到现有软件或硬件弱网工具在满足互联网产品 Lastmile 网络性能测试方面都或多或少的存在一些不足,主要表现在以下几点:
- 跨平台统一性:这个问题主要影响在同一个产品运行在不同平台上时能否使用同一套弱网测试标准在衡量和评判,以及评判的准确性。对于那些只能支持部分平台的软件如 QNET 和 Clumsy 等就很难拉齐这个测试方法,无法在对平台的弱网测试中提供可靠和可重入的测试方法。另外这种运行在测试设备上的弱网测试软件本身受测试舍本的性能限制,甚至会影响测试设备的性能,就更难获得可靠的测试结果。NetHang 是运行在 Linux 系统上作为软路由上的一个服务运行,理论上可以对所以通过该路由器接入网络的 IP 网络设备提供完全相同的网络损伤服务。
以上述软件工具作为参照,下边是一个概要对比结果
Nethang | Linux TC/Netem | Network Link Conditioner | Clumsy | QNET | |
---|---|---|---|---|---|
跨平台统一性 | ✓ | ✓ | ✕ | ✕ | ✕ |
内置网络模型 | ✓ | ✕ | ✓ | ✕ | ✓ |
自定义动态网络模型 | ✓ | ✕ | ✕ | ✕ | ✕ |
获取和部署
- 项目主页: https://nethang.org/Github 仓库: https://github.com/stephenyin/NetHangGit Page: https://stephenyin.github.io/NetHang/