SmartNIC — TSO、GSO、LRO、GRO 技术
文章目录
TSO(TCP Segmentation Offload)
TSO(TCP Segmentation Offload): 是一种利用网卡对大数据包进行分片,从而减小CPU负荷的一种技术。
- TSO off 和 GSO off:
- TSO on:
GSO(Generic Segmentation Offload)
GSO(Generic Segmentation Offload): 是一种延缓分片技术。它比 TSO 更通用,原因在于它不需要硬件的支持就可以进行分片。
其过程是:首先查询网卡是否支持 TSO 功能,如果硬件支持 TSO 则使用网卡的硬件分片能力执行分片;如果网卡不支持 TSO 功能,则将分片的执行延缓到了将数据推送到网卡的前一刻执行。
- TSO off 和 GSO on:一个大的网络包直到进入网卡前的最后一步才进行分片。
LRO(Large Receive Offload)
LRO(Large Receive Offload):将网卡接收到的多个数据包合并成一个大的数据包,然后再传递给网络协议栈处理的技术。这样提高系统接收数据包的能力,减轻CPU负载。
- LRO off 和 GRO off:
- LRO on:数据一进入网卡立刻进行了合并。
GRO(Generic Receive Offload)
GRO(Generic Receive Offload):是 LRO 的软实现,GRO 的合并条件更加的严格和灵活。
- GRO on: