目录

 

文章目录

  • 目录
  • 网络功能卸载
  • TSO(TCP Segmentation Offload)
  • GSO(Generic Segmentation Offload)
  • LRO(Large Receive Offload)
  • GRO (Generic Receive Offload)

 

网络功能卸载

为适应高速网络,现代网卡中普遍卸载了部分 L3-L4 层的处理逻辑(e.g. 校验和计算、传输层分片重组等),来减轻 Host CPU 的处理负担。甚至有些网卡(e.g. RDMA 网卡)还将整个 L4 层的处理都卸载到硬件上,以完全解放 Host CPU。得益于这些硬件卸载技术,Host OS 的网络协议栈处理才能与现有的高速网络相匹配。

TSO(TCP Segmentation Offload)

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

  • TSO off 和 GSO off:
    计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础

  • TSO on:
    计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础_02

GSO(Generic Segmentation Offload)

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

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

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

计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础_03

LRO(Large Receive Offload)

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

  • LRO off and GRO off
    计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础_04

  • LRO on:数据一进入网卡立刻进行了合并。
    计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础_05

GRO (Generic Receive Offload)

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

  • GRO on
    计算机网络基础 — Smart NIC — TSO、GSO、LRO、GRO 卸载技术_计算机网络基础_06