7

SmartNIC — TSO、GSO、LRO、GRO 技术

 2 years ago
source link: https://luckymrwang.github.io/2022/07/27/SmartNIC-%E2%80%94-TSO%E3%80%81GSO%E3%80%81LRO%E3%80%81GRO-%E6%8A%80%E6%9C%AF/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

TSO(TCP Segmentation Offload)

TSO(TCP Segmentation Offload): 是一种利用网卡对大数据包进行分片,从而减小CPU负荷的一种技术。

  • TSO off 和 GSO off:

images

images

  • TSO on:

images

images

GSO(Generic Segmentation Offload)

GSO(Generic Segmentation Offload): 是一种延缓分片技术。它比 TSO 更通用,原因在于它不需要硬件的支持就可以进行分片。

其过程是:首先查询网卡是否支持 TSO 功能,如果硬件支持 TSO 则使用网卡的硬件分片能力执行分片;如果网卡不支持 TSO 功能,则将分片的执行延缓到了将数据推送到网卡的前一刻执行。

  • TSO off 和 GSO on:一个大的网络包直到进入网卡前的最后一步才进行分片。

images

images

LRO(Large Receive Offload)

LRO(Large Receive Offload):将网卡接收到的多个数据包合并成一个大的数据包,然后再传递给网络协议栈处理的技术。这样提高系统接收数据包的能力,减轻CPU负载。

  • LRO off 和 GRO off:

images

images

  • LRO on:数据一进入网卡立刻进行了合并。

images

images

GRO(Generic Receive Offload)

GRO(Generic Receive Offload):是 LRO 的软实现,GRO 的合并条件更加的严格和灵活。

  • GRO on:

images

images


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK