网卡的SG和TSO
TSO
网卡中的TSO(TCP Segmentation Offload)技术是一种利用网卡的硬件能力来减轻CPU负担的技术。它的主要作用是处理TCP数据包的分段工作,这项工作通常由CPU完成。当启用TSO时,网卡会接管这一任务,从而提高网络性能并减少CPU的负载。
具体来说,TSO技术允许网卡将大的TCP数据包分割成多个小的数据包,这些小数据包的尺寸适合于网络传输,而无需CPU介入。在没有TSO的情况下,当TCP数据包超过网卡的最大传输单元(MTU)时,操作系统需要将这些数据包分割成更小的单元,这个过程会增加CPU的负担。通过使用TSO,这部分工作被转移到了网卡上,从而释放了CPU资源,让它可以处理其他任务。
TSO技术需要网卡硬件及驱动的支持。在使用TSO时,TCP层会逐渐增大最大段大小(MSS),当TCP层向下发送大块数据时,它仅计算TCP头,而网卡接收到来自IP层的大数据包后,会自行将其分成多个IP数据包,并添加IP头,复制TCP头,并重新计算校验和等相关数据。
此外,还有一些与TSO相关的技术,例如GSO(Generic Segmentation Offload),它是一种更为通用的分片技术,可以在不支持TSO的硬件上实现类似的功能。
在Linux系统中,可以使用ethtool命令来查看和配置网卡是否支持TSO。例如,使用ethtool -k eth0可以查看网卡eth0的TSO支持状态,而使用ethtool -K eth0 tso off可以关闭TSO功能。
SG
网卡的SG( Scatter Gather )功能是一种重要的网络
。。。。。。。
作者: Shell
链接: https://notes.z-dd.online/2025/01/13/%E7%BD%91%E5%8D%A1%E7%9A%84SG%E5%92%8CTSO/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。