linux tso gso关系,1.3.1 TSO/GSO

linux tso gso关系,1.3.1 TSO/GSO1 3 1TSO GSOTSO 是通过网络设备进行 TCP 段的分割 从而来提高网络性能的一种技术 较大的数据包 超过标准 1518B 的帧 可以使用该技术 使操作系统减少必须处理的数据数量以提高性能 通常 当请求大量数据时 TCP 发送方必须将数据拆分为 MSS 大小的数据块 然后进一步将其封装为数据包形式 以便最终可以在网络中进行传输 而当启用了 TSO 技术之后 TCP 发送方可以将数据拆分为 MSS 整数倍大小

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)】

点赞 0

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221507.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:57
下一篇 2026年3月17日 下午5:57


相关推荐

  • vue中的render函数

    vue中的render函数render 函数跟 template 一样都是创建 html 模板的 但是有些场景中用 template 实现起来代码冗长繁琐而且有大量重复 这时候就可以用 render 函数

    2026年3月17日
    1
  • “小龙虾”刷屏背后:AI终于学会自己干活了

    “小龙虾”刷屏背后:AI终于学会自己干活了

    2026年3月13日
    2
  • 高等数学:第五章 定积分(2)换元积分法 分部积分法 广义积分

    高等数学:第五章 定积分(2)换元积分法 分部积分法 广义积分§5.4  定积分的换元法一、换元公式【定理】若1、函数在上连续;2、函数在区间上单值且具有连续导数;3、当在上变化时,的值在上变化,且 ,  则有                          (1)证明:(1)式中的被积函数在其积分区间上均是连续,故(1)式两端的定积分存在。且(1)式两端的被积函数的原函数均是存在的。假设是在上的一个原函数,据

    2025年5月26日
    5
  • PG索引类型[通俗易懂]

    PG索引类型[通俗易懂]PG索引类型索引类型CREATEINDEX在一个指定表或者物化视图的指定列上创建一个索引,索引主要用来提高数据库的效率(尽管不合理的使用将导致较慢的效率)btree选择性越好(唯一值个数接近记录数)的列,越适合b-tree。当被索引列存储相关性越接近1或-1时,数据存储越有序,范围查询扫描的HEAPPAGE越少。 支持多列索引,默认最多32列,编译可改。(通过调整pg…

    2022年5月29日
    64
  • datatrip 激活码[在线序列号][通俗易懂]

    datatrip 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    45
  • Recyclerview 刷新「建议收藏」

    Recyclerview 刷新「建议收藏」前言:recyclerview比起listview功能上更加丰富外(如横向列表),在Item复用上也更加灵活,比如listview的某个Item数据需要更新,要通过notifyDataSetChanged方法对全部Item进行刷新,而recyclerview则可以精准刷新。介绍:(1)notifyItemChanged(position)只刷新该position的Item,即只是该Item调用onBindViewHolder,因此如果对数据源进行插、移除操作不能改方法只刷新操作的Item,毕竟该

    2025年5月31日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号