如图所示,包的长度大于MTU
网卡开启了TCP Segmentation Offloading功能(简称TSO):操作系统的TCP/IP模块不再进行TCP分段操作,而是直接发大包(净荷超过1460字节)给网卡,由网卡完成分段功能(如果MTU=1500B,则分成的每个段大小都不超过MSS=MTU-40=1460B),这样可以减轻CPU的负担。
抓包位置是在TCP/IP模块和网卡之间,所以抓到的是大包,实际上在网卡上传的还是小包,包大小不会超过1500字节,净荷不会超过1460字节。
这个功能类似于TCP Checksum offloading功能,思路都是由网卡来分担CPU的一些工作,可以降低CPU的占用率。
如果抓包要看到小与1500的报文,可以关闭网卡TCO功能,关闭后会使CPU占用率升高:
ethtool -k eth0
ethtool -K eth0 tso off
网友评论