linux tso gso关系,1.3.1 TSO/GSO

1.3.1  TSO/GSO

TSO是通过网络设备进行TCP段的分割,从而来提高网络性能的一种技术。较大的数据包(超过标准1518B的帧)可以使用该技术,使操作系统减少必须处理的数据数量以提高性能。通常,当请求大量数据时,TCP发送方必须将数据拆分为MSS大小的数据块,然后进一步将其封装为数据包形式,以便最终可以在网络中进行传输。而当启用了TSO技术之后,TCP发送方可以将数据拆分为MSS整数倍大小的数据块,然后将大块数据的分段直接交给网络设备处理,操作系统需要创建并传输的数据包数量更少,因此性能会有较大的提高。图1-3所示为标准帧和TSO技术特性比较。

b45c7497e2bcc9cc3163885f82eaf980.png

(点击查看大图)图1-3  标准帧和TSO的处理过程

a) 不支持TSO  b) 启用TSO后

从前面有关TSO的论述可以看出,TSO只是针对TCP协议的,使TCP协议在硬件上得到了有力的支持。事实上,这种概念也可以应用于其他的传输层协议,如TCPv6,UDP,甚至DCCP等,这就是GSO(Generic Segmentation Offload)。

性能提高的关键在于尽可能地推迟分段的时机,这样才能有效地降低成本。最理想的是在网络设备驱动里进行分段,在网络设备驱动里把大包进行拆分,组成分段列表,或在一块预先分配好的内存中重组各段,然后交给网络设备。这样,就要在网络设备的驱动里边来实现它,那么就需要修改每一个网络设备的驱动程序。事实上,这样做不大现实。

然而似乎有另一种更容易的解决办法来支持GSO,那就是在把数据报文提交给网络设备驱动之前进行聚合/分散操作。Linux目前支持GSO框架已经支持的传输层的其他协议。有关GSO方面的代码,参见后续章节。

应用层可以使用ethtool -K eth0 tso off|on命令对支持TSO特性的网络设备进行TSO功能的关闭和启用。

【责任编辑:book TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LRO (Large Receive Offload) 和 GRO (Generic Receive Offload) 是网络协议栈中的两种技术,用于优化数据包的接收处理。 LRO 主要用于 TCP,而 GRO 则适用于所有传输协议 。 LRO 是一种在网卡上进行数据包处理的技术,它将多个接收到的小数据包合并成一个大的数据包,减少了处理的开销。这种技术可以有效地提高网络性能和吞吐量。然而,LRO 只适用于 TCP 协议 。 GRO 是在内核网络协议栈中实现的技术,它通过合并接收到的数据包来减少处理的开销,提高网络性能。与 LRO 不同,GRO 可以应用于所有传输协议,而不仅限于 TCP。GRO 还保留了每个接收到的数据包的熵信息,这对于像路由器这样的应用非常重要。通过匹配条件,如源/目的地址、TOS/协议字段、源/目的端口等,可以进行适当的数据包合并 。 TSO (TCP Segmentation Offload) 和 GSO (Generic Segmentation Offload) 是用于发送数据包的技术。它们的作用是将大的数据包分割成更小的片段,以提高传输效率。TSO 主要用于 TCP,而 GSO 则适用于所有传输协议 。 总结起来,LRO 和 GRO 是用于接收数据包的技术,通过合并数据包减少处理的开销。TSOGSO 是用于发送数据包的技术,通过分割大的数据包提高传输效率。这些技术都在 Linux 内核的网络协议栈中发挥着重要的作用,提高了网络性能和吞吐量 。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO](https://blog.csdn.net/Rong_Toa/article/details/108748689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值