tcpdump抓包length为何超过MTU大小

使用tcpdump抓包时,会抓到长度超过MTU(默认设置1500)的数据包,如下图:
在这里插入图片描述

这里有几种可能的情况

1,巨型帧(Jumbo Frames)

巨型帧,是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧。通常来说,巨型帧可以携带最多9000字节的有效负载。许多以太网千兆以太网以太网交换机和千兆网卡可以支持巨型帧。
在这里插入图片描述

这种情形可以通过查看网口mtu来确定,如果MTU是9000,说明这个口开启了巨型帧。可以接收到长度超过1514的数据包。

2,TSO,GRO,GSO数据流分组重组
上述三个功能很类似,都是网卡驱动层提供的流分组重组技术,用于减轻CPU负载。简单说就是通过将TCP或IP数据分包发送的工作,推迟到网卡驱动层实现,来加速数据传输。比如内核可以发送一个14K的长包,驱动层就会给长包分成10个小于1514的包,发送出去。接收过程也一样,网卡驱动在收到多个同一会话的包后,组合成一个超过1514的长包,发送给内核。
在这里插入图片描述

tcp-segmentation-offload
generic-receive-offload
generic-segmentation-offload

这三个是相应的选项,可以用ethtool查看或配置。

这里的GRO选项开启后,网卡收到的TCP数据流,可以在发送给内核之前,进行流重组,生成大于MTU值的数据包。

当然笔者这里是因为服务器开启了tso导致的
通过linux命令,可以打开和关闭tso功能:

ethtool -K eth0 tso on   
ethtool -K eth0 tso off
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robin5911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值