Linux网络延迟诊断工具

网络延迟工具

整理目前通用的以太网延迟诊断工具,及简述实现原理。

1. ping

最常用的网络工具之一,用于测试主机与目标主机之间的网络连接是否正常,以及网络延迟。

测量原理:发送ICMP报文来测试网络连接与延迟,并能够显示每个ICMP报文的往返时间(RTT)

  1. 客户端发送一个ICMP Echo Request消息到目标主机。
  2. 目标主机收到ICMP Echo Request消息后,返回一个ICMP Echo Reply消息。
  3. 客户端收到ICMP Echo Reply消息后,计算出往返时间(RTT),并显示出来

优势:简单易用,通用性强

局限性:

  1. 只能获得RTT时间,粒度较粗
  2. 延迟时间为测试主机IP层到目标主机IP层时间(ICMP – ICMP)
  3. 可以很好的测试物理网络连通性与网络状态,但不能跟踪实际数据包的时间延迟,也无法获取TCP层、应用层乃至应用的时延。
  1. 局域网的连通性测试工具还有 arping,其原理是通过发送ARP请求来获得目标设备的MAC地址,并测试网络的连通性
  2. 追踪网络数据包的路由路径可以使用 traceroute

2. wireshark

侧重于流量分析

3. iperf

iperf网络性能测试工具

iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。 iperf可以报告带宽,延迟抖动和数据包丢失。

抖动和丢包率适应于UDP测试,带宽测试适用与TCP与UDP。

需要服务端与客户端同时开启 iperf 程序。

​ 带宽测试

1
2
3
4
5
6
7
8
9
10
11
12
13
# UDP测试 带宽  Jitter抖动  丢包率
[ 3] local 192.168.1.1 port 2152 connected with 192.168.101.2 port 56768
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 1.40 MBytes 11.7 Mbits/sec 0.069 ms 0/14671 (0%)
[ 3] 1.0- 2.0 sec 1.40 MBytes 11.8 Mbits/sec 0.050 ms 0/14703 (0%)
[ 3] 2.0- 3.0 sec 1.40 MBytes 11.8 Mbits/sec 0.052 ms 0/14708 (0%)
[ 3] 3.0- 4.0 sec 1.40 MBytes 11.8 Mbits/sec 0.057 ms 0/14704 (0%)
[ 3] 4.0- 5.0 sec 1.40 MBytes 11.8 Mbits/sec 0.072 ms 0/14706 (0%)
[ 3] 5.0- 6.0 sec 1.40 MBytes 11.8 Mbits/sec 0.075 ms 0/14705 (0%)
[ 3] 6.0- 7.0 sec 1.40 MBytes 11.8 Mbits/sec 0.060 ms 0/14707 (0%)
[ 3] 7.0- 8.0 sec 1.40 MBytes 11.8 Mbits/sec 0.073 ms 0/14703 (0%)
[ 3] 8.0- 9.0 sec 1.40 MBytes 11.8 Mbits/sec 0.073 ms 0/14706 (0%)
[ 3] 0.0-10.0 sec 14.0 MBytes 11.8 Mbits/sec 0.064 ms 0/147020 (0%)

4. netperf

Netperf 是一个基准,可用于衡量许多不同类型网络的性能。它为单向吞吐量和端到端延迟提供测试。

原理:TCP_RR(TCP Request-Response)测试模式来测量端到端的时间延迟

需要服务端与客户端同时开启 iperf 程序。

5. qperf

网络性能测试工具qperf使用

测量网络带宽与时延,亮点在于可以测 RDMA。

需要服务端与客户端同时开启 qperf 程序。

原理:pingpong测试

tcp_lat:TCP单向延迟

​ 获取网络的带宽和延时性能曲线(消息大小 1byte -> 64K, 每次翻倍,循环获取延迟与带宽)

6. nmap

四层主机发现工具

Nmap是一款广泛使用的网络扫描和安全评估工具,它可以帮助用户识别和探测目标网络上的主机和服务,从而帮助用户评估网络的安全性。Nmap支持多种扫描技术,如TCP、UDP、ICMP等协议的扫描,可以通过不同的选项和参数来灵活地控制扫描的范围和方式。

7. hping3

四层主机发现工具

hping3是一款基于TCP/IP协议栈的网络安全工具,可以对TCP、UDP、ICMP等协议进行探测和攻击。

其原理是构造控制报文,向目标主机发送探测包,根据目标主机返回的响应信息进行分析和判断。hping3可以自定义TCP、UDP、ICMP等协议的报文头和数据,以实现不同的攻击和探测。

8. 应用层RTT测量

如http的RTT测量等

商业工具

9. albedo xGenius以太网测试仪

https://www.coolshark.com/products/albedo.html

总结

以太网延迟测量主要分为2种方式,分别为RTDP与OWDP。

  • RTDP网络测试方式应用最为广泛,其原理是RTT往返时间测量,网络上存在大量的类似工具。另外通过RTT也可以简单估计单向延迟。
  • OWDP(One way delay and package loss protocol)是一种单向延迟测量方法,由于其局限性较高,因此网络上的可用工具非常少。

OWDP缺点:

  1. 需要精确时钟同步,测量精度与时钟同步精度有关。
  2. 需要多终端同时安装与运行程序,高复杂网络下实现代价太高。

OWDP优点:

  1. 测量精度高,适用于进行精度要求很高的实时性检测。

车载以太网自身的特点:

针对缺点1:TSN时间敏感网络实际解决了时钟同步问题(精度250 us)

针对缺点2:车载以太网趋近于一个简单静态网络,网络拓扑简单。

针对优点1:车载网络针对实时性,具有很高的要求。


Linux网络延迟诊断工具
http://ziyangfu.github.io/2023/04/13/Linux网络延迟诊断工具/
作者
FZY
发布于
2023年4月13日
许可协议