TSO与GSO简单区分
概念
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/
TSO与GSO简单区分相关推荐
- Path(1)vrep中的贝塞尔点、控制点的简单区分
贝塞尔点和控制点的简单区分 The Bezier interpolation factors indicate where the Bezier curve section starts and en ...
- 以太网卡TSO、GSO、LRO、GRO描述及相关配置
文章目录 以太网卡TSO.GSO.LRO.GRO描述及相关配置 硬件包拆分与合并 TSO(TCP Segmentation Offload ) UFO(UDP Fragmentation Offloa ...
- 网络协议栈TSO/UFO/GSO/LRO/GRO/RSS特性
作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 网卡多队列技术与RSS功 ...
- TSO、GSO介绍与实现
转载自:http://www.bsdmap.com/2012/02/22/转tso.ufo.gso.lro.gro和rss介绍/ 转载自:http://blog.chinaunix.net/uid-2 ...
- 镜头C接口和CS接口的简单区分
转自http://www.pooher.com/xinwen/hangye/2012-05-10/98.html 什么叫C/CS接口? 单词"C"的来历是"cin ...
- IPv6的TSO/GRO/GSO及其Linux实现的不妥
很明确的一件事是,IPv6不允许中间设备对报文分片.具体为什么这么设计,就是为了简单高效.因此,IPv6报头简洁了不少. 但TSO貌似并未违背取消IPv6分片的初衷,硬件把一些都处理的妥妥的,在路由软 ...
- SmartNIC/DPU — TSO、GSO、LRO、GRO 卸载技术
目录 文章目录 目录 网络功能卸载 TSO(TCP Segmentation Offload) GSO(Generic Segmentation Offload) LRO(Large Receive ...
- Linux 内核协议栈的 TSO、GSO
Linux 内核的 TSO 会在真正将skb发送到网卡前做GSO的检查: 对于真实硬件设备,是在sch_direct_xmit中调用validate_xmit_skb_list检查 对于虚拟设备,则是 ...
- 网络offload之TSO、GSO、LRO、GRO
网络offload技术主要是针对网络数据包的分片和合并而进行优化和处理的技术,也可以在网卡实现offload技术. 1. TSO(TCP Segmentation Offload): 是一种利用网卡对 ...
最新文章
- 大数据催生决策新模式 未来将改变更多
- Python 逻辑运算符
- 监理公司的核心竞争力
- 1分钟 Zookeeper 快速入门_windows环境
- pytorch中CrossEntropyLoss和NLLLoss的区别与联系
- 迈向人工通用智能与混合天玑芯片架构
- Ta 在假笑么?这个识别算法可以鉴定
- J2EE的13种核心技术简介
- Python数据可视化的四种简易方法
- MySQL 5.5 到MySQL 5.6半同步复制(SSL)
- DataTables之TableTools插件
- 信号处理第一式——离散信号序列的基本运算及MATLAB实现
- Scrapy创建项目报错Scrapy – no active project,Unknown command解决办法
- 【基础入门题048】骰子游戏(一)
- 贝叶斯因果网络_因果关系和贝叶斯网络
- 1.CDC绘图。包括加载图片,消去图片,设置图片一部分透明,不闪烁方式。
- 用PDFPrint进行PDF文件的批量打印
- (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
- python语言中有哪些函数_Python语言中的函数
- ajax post提交多个参数后台controller @RequestParam方式接收
热门文章
- 最新:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明
- JS操作表格样式汇总
- badboy录制时弹框提示“当前页面的脚本发生错误”
- Arduino PID Autotune Library
- D. Death by Thousand Cuts(立体几何)
- ubuntu_PL2303
- note同步不及时 one_成功解决onenote 与windowsmobile无法正常同步问题
- 借索爱XPERIA X1的Panel Interface说说Touch
- Jfinal项目提供接口
- CF #505 B Weakened Common Divisor