TSO与GSO简单区分

10 篇文章 2 订阅

概念

TSO(TCP Segmentation Offload): 是一种利用网卡来对大数据包进行自动分段,降低CPU负载的技术。 其主要是延迟分段。通过硬件(网卡)实现。

GSO(Generic Segmentation Offload): GSO是协议栈是否推迟分段,在发送到网卡之前判断网卡是否支持TSO,如果网卡支持TSO则让网卡分段,否则协议栈分完段再交给驱动。 如果TSO开启,GSO会自动开启。 GSO通过软件来实现。

以下是TSO和GSO的组合关系:

  1、GSO开启, TSO开启: 协议栈推迟分段,并直接传递大数据包到网卡,让网卡自动分段
  2、GSO开启, TSO关闭: 协议栈推迟分段,在最后发送到网卡前才执行分段
  3、GSO关闭, TSO开启: 同GSO开启, TSO开启
  4、GSO关闭, TSO关闭: 不推迟分段,在tcp_sendmsg中直接发送MSS大小的数据包

目前,在linux-4.18之后UDP也开始GSO的支持,可参考此处 patch

UFO(DDP Fragmentation Offload)是一种类似于IP分片的技术,拆包之后只有第一个分片有UDP头部。

参考

https://www.kernel.org/doc/Documentation/networking/segmentation-offloads.txt
http://blog.jobbole.com/111668/
https://www.mnstory.net/2017/07/10/network-tso-ufo-gso-lro-gro/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值