tso与mtu

现象:
设置了网卡mtu为1500,用tcpdump抓包,发现抓到的包大小有大于1500的,但在网卡连接的交换机上抓包,没有抓到大于1500的包。这是什么原因?
原因:
后来发现这跟网卡的tso功能有关,tso(TCP Segment Offload)是一种利用网卡替代cpu对大数据包进行tcp分片,降低cpu负载的技术。因为开启了网卡的tso功能,tcpdump又是在内核协议栈层面抓包,内核协议栈是不会tcp分片的,所以tcpdump会抓到大于mtu的包;因为tcp分片交给了网卡来处理,所以在交换机上抓包,抓到的包都是不大于mtu的包了。

查看网卡是否开启tso功能:

tso与mtu_第1张图片

关闭tso功能:

tso与mtu_第2张图片

当然要充分利用网卡的特性,提升cpu性能,需要打开tso。

 

你可能感兴趣的:(网络)