我一直在对位于本地网络中的两台CentOS计算机进行一些测试,但我不明白结果。我们有一个简单的应用程序,客户端(x.y.z.204)将文本字符串发送到服务器(x.y.z.205)。一些捕获的数据包的有效负载大于MTU:
x.y.z.205:~/ tshark -i br0 "host x.y.z.204"
Capturing on 'br0'
[...]
10 0.000357812 x.y.z.204 ? x.y.z.205 TCP 7306 40866 ? 1234 [ACK] Seq=6793 Ack=1 Win=29312 Len=7240 TSval=1462059169 TSecr=875693118
[...]具体来说,框架10是7306字节( TCP数据的7240字节+ TCP报头的32字节,IP报头的20字节,以太网报头的14字节)。
但是,网络接口似乎不支持大于1500个字节的MTU。接口配置表明了这一点:
x.y.z.204:~/ ip link list
[...]
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:xx:18:yy:6c:zz brd ff:ff:ff:ff:ff:ff
[...]或通过ICMP测试:
x.y.z.204:~/ ping -M do -s 7240 x.y.z.205
PING x.y.z.205 (x.y.z.205) 7240(7268) bytes of data.
ping: local error: Message too long, mtu=1500
^C 如果接口配置或ping测试表明MTU是1500个字节,那么我们如何能够捕获7240字节的数据包?
发布于 2022-03-11 11:24:47
当TCP卸载是活动的(大型接收卸载LRO) --NIC的卸载引擎将多个TCP段聚合到单个虚拟段和数据包中,可以看到类似的效果,从而降低了主机处理开销。
https://networkengineering.stackexchange.com/questions/78192
复制相似问题