我ip link set eth0 mtu 1000
在链接 eth0 上将MTU 大小配置为 1000 。我禁用了通用接收卸载(gro)ethtool -K gro off
(因为这会导致 tcpdump 中的“错误”帧长度(参见此处))但是如果我现在使用 tcpdump 捕获,我仍然会得到大于 1000 的数据包,例如 1500 字节。
我做错了什么?
在 MTU 设置为 1000 的接收端:
eth0:mtu 1000
14:27:38.361168 IP XXXXXX > YYYYYY:ICMP echo > request,id 3273,seq 1,长度 1480 14:27:38.361495 IP YYYYYY > XXXXXX:ICMP echo 回复,id 3273,长度 seq 6 1
MTU 是可以通过接口发送的最大数据包大小。MTU 不限制可以接收的最大数据包大小。
RFC 1191说:
... 当一个 IP 主机有大量数据要发送到另一台主机时,数据将作为一系列 IP 数据报传输。通常最好是这些数据报具有最大的尺寸,这样从源到目的地的路径上的任何地方都不需要分段。(对于反对分段的情况,请参见 [5]。)此数据报大小称为路径 MTU (PMTU),它等于路径中每一跳的 MTU 的最小值。当前Internet协议套件的一个缺点是缺乏主机发现任意路径的PMTU的标准机制。
Run Code Online (Sandbox Code Playgroud)Note: The Path MTU is what in [1] is called the "Effective MTU for sending" (EMTU_S). A PMTU is associated with a path, which is a particular combination of IP source and destination address and perhaps a Type-of-service (TOS)...
归档时间: |
|
查看次数: |
5621 次 |
最近记录: |