免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12837 | 回复: 9
打印 上一主题 下一主题

GSO(Generic Segmentation Offload) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-16 09:49 |只看该作者 |倒序浏览
GSO(Generic Segmentation Offload)
对于GSO(Generic Segmentation Offload)、TSO,UFO这三个东西理解的一直不是很透彻,它们的具体原理是什么,相互之间的区别是什么?期盼高手解惑

论坛徽章:
0
2 [报告]
发表于 2008-12-16 10:26 |只看该作者
原帖由 ppb0320 于 2008-12-16 09:49 发表
GSO(Generic Segmentation Offload)
对于GSO(Generic Segmentation Offload)、TSO,UFO这三个东西理解的一直不是很透彻,它们的具体原理是什么,相互之间的区别是什么?期盼高手解惑


UFO - 不明飞行物

论坛徽章:
0
3 [报告]
发表于 2008-12-16 12:42 |只看该作者
GSO就是针对普通的IP分片
TSO是针对TCP的,UFO是针对UDP的。

通常长度大于MTU的数据包是在系统中进行分片和校验和计算的。

Intel的部分网卡芯片可以通过硬件芯片来进行分片和校验和计算处理,效率较高。

其他的网卡芯片应该也能支持,但是我只熟悉intel的。

[ 本帖最后由 ShadowStar 于 2008-12-16 12:48 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-12-16 13:27 |只看该作者
原帖由 ShadowStar 于 2008-12-16 12:42 发表
GSO就是针对普通的IP分片
TSO是针对TCP的,UFO是针对UDP的。

通常长度大于MTU的数据包是在系统中进行分片和校验和计算的。

Intel的部分网卡芯片可以通过硬件芯片来进行分片和校验和计算处理,效率较高。 ...



叫法有很多,还有叫LSO的。

不过一般说到TSO都会关联到网卡支持的一种硬件offload的技术。

而GSO在Linux里的实现似乎是个纯软件的实现,通过推迟分片来达到大包性能提高的目的,可以不需要硬件支持,

http://www.linuxfoundation.org/en/Net:GSO

论坛徽章:
0
5 [报告]
发表于 2008-12-16 21:21 |只看该作者
学习了,长见识了,呵呵

论坛徽章:
0
6 [报告]
发表于 2011-01-19 19:33 |只看该作者
那这个是专门针对网卡发包的吧?
对于收包来说,没有什么gso,对吗?

论坛徽章:
0
7 [报告]
发表于 2011-01-20 01:00 |只看该作者
GSO(Generic Segmentation Offload)
对于GSO(Generic Segmentation Offload)、TSO,UFO这三个东西理解的一直 ...
ppb0320 发表于 2008-12-16 09:49



    GSO就是尽可能的delay分片直至发送到网卡driver之前,此时kernel会检查网卡是否只是fragmentation offload,如果支持直接发送到网卡,如果不支持就进行分片后再发往网卡。
    可以将TSO和UFO看做GSO的一种:
    http://lxr.linux.no/#linux+v2.6.36/include/linux/skbuff.h#L236
    在接收方向上与之对应的是GRO.

    另外GSO对于虚拟化环境下网络性能提升的帮助也很大。

    很荣幸,GSO和GRO都是herbert实现的,可以参考最初的patch.

论坛徽章:
0
8 [报告]
发表于 2011-01-20 10:23 |只看该作者
GSO是在驱动层(software)进行的呢,还是在IP层,或者传输层?

如果是在IP层,和IP层自己的分片有什么区别呢。


GSO就是尽可能的delay分片直至发送到网卡driver之前,此时kernel会检查网卡是否只是fragmentatio ...
crspo 发表于 2011-01-20 01:00

论坛徽章:
0
9 [报告]
发表于 2011-01-20 10:28 |只看该作者
一个5个。

-bash-4.1# ethtool -k eth1
Offload parameters for eth1:
tcp-segmentation-offload: on <======TSO
udp-fragmentation-offload: off<======UFO
generic-segmentation-offload: on<======GSO
generic-receive-offload: off<======GRO
large-receive-offload: off<======LRO

前3个是为了传输数据的,后2个是为了接收数据的。



叫法有很多,还有叫LSO的。

Solaris12 发表于 2008-12-16 13:27

论坛徽章:
0
10 [报告]
发表于 2011-08-20 10:47 |只看该作者
学习一下,刚好在找这方面的资料。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP