来源-摘录自debian手册:https://www.debian.org/doc/manuals/debian-reference/ch05.zh-cn.html#_the_modern_network_configuration_for_cloud_with_dhcp
5.6.
表 5.5. 网络优化工具列表
| 软件包 | 流行度 | 大小 | 说明 |
|---|---|---|---|
iftop | V:6, I:88 | 93 | 显示一个网络接口上的带宽使用信息 |
iperf | V:2, I:35 | 427 | 互联网协议带宽测量工具 |
ifstat | V:0, I:5 | 52 | 接口统计监控 |
bmon | V:1, I:20 | 141 | 便携式带宽监视器和网速估计工具 |
ethstatus | V:0, I:2 | 41 | 快速测量网络设备吞吐的脚本 |
bing | V:0, I:0 | 80 | 实验性的随机带宽测试器 |
bwm-ng | V:1, I:10 | 95 | 小巧简单的控制台带宽监测器 |
ethstats | V:0, I:0 | 21 | 基于控制台的以太网统计监视器 |
ipfm | V:0, I:0 | 78 | 带宽分析工具 |
5.6.1. 找出最佳 MTU
网络管理器通常会自动设置最佳 最大传输单元 (MTU) 。
在一些场景中,在用 ping(8) 加上"-M do"选项发送各种大小的 ICMP 报文数据包进行实验后,你希望可以手动设置 MTU。MTU 是最大可完成没有 IP 分片的数据包大小加上 28 字节(IPv4)或 48 字节(IPv6)。下面的列子,发现 IPv4 连接的 MTU 是 1460,IPv6 连接的 MTU 是 1500。
$ ping -4 -c 1 -s $((1500-28)) -M do www.debian.org
PING (149.20.4.15) 1472(1500) bytes of data.
ping: local error: message too long, mtu=1460
--- ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
$ ping -4 -c 1 -s $((1460-28)) -M do www.debian.org
PING (130.89.148.77) 1432(1460) bytes of data.
1440 bytes from klecker-misc.debian.org (130.89.148.77): icmp_seq=1 ttl=50 time=325 ms
--- ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 325.318/325.318/325.318/0.000 ms
$ ping -6 -c 1 -s $((1500-48)) -M do www.debian.org
PING www.debian.org(mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e)) 1452 data bytes
1460 bytes from mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e): icmp_seq=1 ttl=47 time=191 ms
--- www.debian.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 191.332/191.332/191.332/0.000 ms这个过程是 路径 MTU (PMTU) 发现 (RFC1191) , tracepath(8) 命令能够自动完成这个。
表 5.6. 最佳 MTU 值的基本指引方法
| 网络环境 | MTU | 基本原理 |
|---|---|---|
| 拨号连接(IP: PPP) | 576 | 标准的 |
| 以太网连接 (IP: DHCP 或固定) | 1500 | 默认标准值 |
除了这些基本的指引方法外,你还应当知道下面的信息。
- 使用任何隧道方式(VPN 等.)的最佳 MTU 需要进一步减去它们上面的头部。
- MTU 值不应当超过通过实验验证的 PMTU 值。
- 当遇到其它限制的时候,较大的 MTU 值通常比较好。
最大分片大小 (MSS) 是另外一种衡量包大小的方法。MSS 和 MTU 的关系如下.
- 对于 IPv4, MSS = MTU - 40
- 对于 IPv6,MSS = MTU - 60
| 注意 | |
|---|---|
基于 iptables(8) (参见 第 5.7 节 “Netfilter 网络过滤框架”) 的优化,能够通过 MSS 来压缩包大小,路由器会用到 MMS 。参见 iptables(8)中的"TCPMSS" .