极速前进——DPDK GRO/GSO的转发性能提升实例

本文介绍了DPDK的GRO和GSO技术如何提高网络性能,尤其是在TCP和UDP数据包处理中,通过与Kernel GRO/GSO的对比,展示DPDK在包合并和拆分方面的优势,提升网络吞吐量。
摘要由CSDN通过智能技术生成

通常,以太网的MTU是1500B,除去TCP/IP的协议首部,TCP的MSS(Max Segment Size)大小是1460B。一般情况下,协议栈会对超过1460B的TCP payload进行切片,保证生成的IP包不超过MTU的大小,但对于支持TSO的网卡,我们可以把最多64KB大小的TCP payload直接往下传给协议栈,此时IP层也不会进行segmentation,一直会传给网卡驱动,支持TSO的网卡会自己进行TCP切片,这样可以减少很多协议栈上的数据包处理数量。切片、checksum计算等原本靠CPU来做的工作都转移给了网卡,从而提高网络性能。相对应的,LRO(Large Receive Offload)是在接收方向上,通过将接收到的多个TCP数据聚合成一个大的数据包,然后传递给网络协议栈处理,以减少上层协议栈处理的开销。当然,如果都是小包,那么功能基本就作用不大了。

TCP Segmentation Offload (TSO),UDP Fragmentation Offload (UFO)和Large Receive Offload (LRO)技术基于网卡特性,可在网卡上进行包合并和拆分,减轻CPU负荷。其中,TSO是针对TCP的拆包,UFO是针对UDP的拆包,LRO是针对TCP的合包。然而,LRO、TSO和UFO只能处理TCP和UDP包,而且并非所有的网卡都支持这些特性。而软件包合并(Generic Receive Offload,GRO)和包拆分(Generic Segmentation Offload,GSO)在网卡不支持分片、重组offload能力(如TSO、UFO、LRO)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值