http://blog.sina.com.cn/s/blog_57dab0f60100oiw3.html

简介:

简要介绍了GSO的原理,没有涉及到任何代码,只是原理的介绍。

Table of Contents

  • 1 TSO
  • 2 GSO

tent">

1 TSO

TCP Segmentation Offload 是Linux网络设备层支持的一个特性,当驱动程序将net->device->features的Flag里面声明了NETIF_F_TSO,则表明该驱动想要支持TSO。而与此同时,该设备还需要支持TCP的Checksum和Scatter Gather 。

2 GSO

GSO ("Generic Segmentation Offload") 是基于TSO概念的一个归纳,可以提升性能。从Linux 2.6.18被加入内核。

TSO 之所以可以提升性能,是因为 TSO 可以让每一个 super-packet 在内核的网络协议栈中只遍历一次,而不是多次。这种性能的提升并不需要硬件的支持,且可以应用到其他的协议上,例如TCPv6, UDP, 设置 DCCP.

而在对上述的几种协议实现类似TSO的性能提升时,降低Cost的关键,是将segmentation 的处理尽量的延后。理想情况下,当网卡驱动将一个 super-packet 分开时候, segmentation 就会出现。 在将 super-packet 分割的时候,或者产生直接用于硬件的 SG lists,或者将这些 segments 线性化的添到分配好的内存中,以便传给网卡。但是这种方法需要修改每一个驱动。

另外一种较为简单的做法,是在将super-packet传给驱动的hard_xmit之前对其进行分割(segmentation),这种方案,就被称为 GSO: Generic Segmentation Offload。

Linux Network GSO相关推荐

  1. linux网络命名空间详解,Linux Network Namespace (netns) 详解

    Linux Network Namespace (netns) 详解 Network Namespace (以下简称netns)是Linux内核提供的一项实现网络隔离的功能,它能隔离多个不同的网络空间 ...

  2. [翻译:更新]Understanding Linux Network Internals - Table of Contents

    会在每一节翻译完成后,更新本目录的链接,没有链接的就是还没有翻译的. Linux内核源代码下载(linux-2.6.10): http://www.softpedia.com/progDownload ...

  3. linux network io,Linux network I/O

    1 缓存 I/O (Buffered I/O)介绍 对于传统的操作系统来说,普通的 I/O 操作一般会被内核缓存,这种 I/O 被称作缓存 I/O.缓存 I/O 又被称作标准 I/O,大多数文件系统的 ...

  4. linux 网卡gso,linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试...

    TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segment Size)大小是1460,通常情 ...

  5. linux tso gso关系,1.3.1 TSO/GSO

    1.3.1  TSO/GSO TSO是通过网络设备进行TCP段的分割,从而来提高网络性能的一种技术.较大的数据包(超过标准1518B的帧)可以使用该技术,使操作系统减少必须处理的数据数量以提高性能.通 ...

  6. linux network service not found,我自己调出来的,还有小学弟的帮忙。哈哈

    /etc/init.d/networking restart /etc/init.d/networking restart /etc/init.d/networking restart /etc/in ...

  7. Linux network namespace源码分析

    一.network namespace的创建 在对iproute2的源码进行分析后,我们可以知道,当我们调用命令`ip netns add ns1`时,本质上就是调用`unshare(CLONE_NE ...

  8. linux 网卡gso,网卡 offload 简介

    网卡 offload 简介 现在,越来越多的网卡设备支持 offload 特性,来提升网络收/发性能. offload 是将本来该操作系统进行的一些数据包处理(如分片.重组等)放到网卡硬件中去做, 降 ...

  9. Linux network source code

    https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/

最新文章

  1. 漫画 | 产品经理的八大罪状
  2. C++实现大数的加法
  3. python cv2 matchtemplate_OpenCV-Python系列十:模板匹配
  4. Windows2003不认3G以上内存时可以看看此文
  5. mysql originator_MySQL数据库事件调度(Event)
  6. 为memcached增加缓存依赖的性能测试
  7. java locationuitool_求助systemui编译时哪里出错
  8. php删除图片按钮代码,jquery 按钮预览图片功能的代码,我看不太懂。应该怎么学...
  9. c# gerber文件读取_gerber大文本文件打开工具|gerber文件打开工具(gerbview) v7.71 免费版 - 软件下载 - 绿茶软件园|33LC.com...
  10. cdr怎么转plt_win10系统下cdr格式文本转plt格式文本怎么做
  11. mac修改hosts刷新DNS使其立即生效
  12. NepCTF2022 Writeup
  13. 中国互联网出海战略大盘点
  14. 集成电路 多功能手电筒与移动照明方案
  15. 什么是RTOS系统定义分析
  16. [Uncaught Error: Class 'mysqli' not found]Ubuntu系统和window系统下用MYSQLi方式不能连接数据库
  17. YTU2018级每周训练-动态规划1
  18. Python正则表达式模式
  19. 简网越过阅读,重新定义个性化
  20. 面试|HiveSQL常用的一些小技巧

热门文章

  1. NXP(Freescale) QorIQ T2080 SRIO FRA程序分析
  2. 创新趋势|自动驾驶出租车(Robotaxi)商业化2023年趋势展望
  3. Vite打包项目提示“some chunks are larger than 500 kib....“
  4. 关键词优化难易程度如何判断?
  5. 如果只有十万,你会选择买房还是买车?
  6. 配置Grade 依赖和搜索Maven库
  7. color属性 python_Python curses.COLOR_BLUE属性代码示例
  8. 牛掰!C++大神一小时打造千里眼远程计算机视频监控系统!
  9. 未雨绸缪——请养成良好的数据使用习惯
  10. win10主题保存位置