Skip to content

网卡功能卸载 ​


将网络功能从网络协议栈卸载掉,放到网卡上实现。
由于网卡功能的提升,可以将部分功能放到网卡上实现,减轻CPU负载。

TSO ​

Tcp segmentation offload
将TCP分段功能放到网卡上实现。
tso

RSC ​

Receive Side Coalescing
将TCP分段报文组合成一个报文。
rcs

LRO ​

Large Receive Offload
软件实现的RSC.
lro

GSO ​

generalized segmentation offload
软件实现的TSO。
支持TCP、UDP、IPv4、IPv6。
gsogso

c
# sysctl net.inet.tcp.gso =1
# sysctl net.inet.udp.gso =1
# sysctl net.gso.dev."ifname".enable_gso = 1
# sysctl net.gso.dev."ifname".max_brust = 65535
tcp_output()
# ip层不分片
ip_output()
ether_output()
#在ether_output里,gso_dispatch 替换 ifp->transmit
gso_dispatch()

校验和卸载 ​

TCP/UDP头部校验和
IP头部校验和

卸载功能查看 ​

shell
ethtool -k eth0

参考 ​

Software segmentation offloading for FreeBSD by Stefano Garzarella