TSO、UFO、GSO、LRO、GRO和RSS介绍(ethtool命令)

更加详细的说明,请参看连接:
linux tcp GSO和TSO实现
linux tcp GSO和TSO实现详解

1. ethtool工具命令介绍

# ethtool -h
RTL Ethtool(2.6.36):
Usage:
ethtool DEVNAME Display standard information about deviceethtool -s|--change DEVNAME     Change generic options[ speed %d ][ duplex half|full ][ port tp|aui|bnc|mii|fibre ][ autoneg on|off ][ advertise %x ][ phyad %d ][ xcvr internal|external ][ wol p|u|m|b|a|g|s|d... ][ sopass %x:%x:%x:%x:%x:%x ][ msglvl %d | msglvl type on|off ... ]ethtool -a|--show-pause DEVNAME Show pause optionsethtool -A|--pause DEVNAME      Set pause options[ autoneg on|off ][ rx on|off ][ tx on|off ]ethtool -c|--show-coalesce DEVNAME      Show coalesce optionsethtool -C|--coalesce DEVNAME   Set coalesce options[adaptive-rx on|off][adaptive-tx on|off][rx-usecs N][rx-frames N][rx-usecs-irq N][rx-frames-irq N][tx-usecs N][tx-frames N][tx-usecs-irq N][tx-frames-irq N][stats-block-usecs N][pkt-rate-low N][rx-usecs-low N][rx-frames-low N][tx-usecs-low N][tx-frames-low N][pkt-rate-high N][rx-usecs-high N][rx-frames-high N][tx-usecs-high N][tx-frames-high N][sample-interval N]ethtool -g|--show-ring DEVNAME  Query RX/TX ring parametersethtool -G|--set-ring DEVNAME   Set RX/TX ring parameters[ rx N ][ rx-mini N ][ rx-jumbo N ][ tx N ]ethtool -k|--show-offload DEVNAME       Get protocol offload informationethtool -K|--offload DEVNAME    Set protocol offload[ rx on|off ][ tx on|off ][ sg on|off ][ tso on|off ][ ufo on|off ][ gso on|off ][ gro on|off ][ lro on|off ][ rxvlan on|off ][ txvlan on|off ][ ntuple on|off ][ rxhash on|off ]ethtool -i|--driver DEVNAME     Show driver informationethtool -d|--register-dump DEVNAME      Do a register dump[ raw on|off ][ file FILENAME ]ethtool -e|--eeprom-dump DEVNAME        Do a EEPROM dump[ raw on|off ][ offset N ][ length N ]ethtool -E|--change-eeprom DEVNAME      Change bytes in device EEPROM[ magic N ][ offset N ][ length N ][ value N ]ethtool -r|--negotiate DEVNAME  Restart N-WAY negotationethtool -p|--identify DEVNAME   Show visible port identification (e.g. blinking)[ TIME-IN-SECONDS ]ethtool -t|--test DEVNAME       Execute adapter self test[ online | offline ]ethtool -S|--statistics DEVNAME Show adapter statisticsethtool -n|--show-nfc DEVNAME   Show Rx network flow classificationoptions[ rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 ]ethtool -f|--flash DEVNAME      FILENAME Flash firmware image from the specified file to a region on the device[ REGION-NUMBER-TO-FLASH ]ethtool -N|--config-nfc DEVNAME Configure Rx network flow classification options[ rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 m|v|t|s|d|f|n|r... ]ethtool -x|--show-rxfh-indir DEVNAME    Show Rx flow hash indirectionethtool -X|--set-rxfh-indir DEVNAME     Set Rx flow hash indirectionequal N | weight W0 W1 ...ethtool -U|--config-ntuple DEVNAME      Configure Rx ntuple filters and actions{ flow-type tcp4|udp4|sctp4[ src-ip ADDR [src-ip-mask MASK] ][ dst-ip ADDR [dst-ip-mask MASK] ][ src-port PORT [src-port-mask MASK] ][ dst-port PORT [dst-port-mask MASK] ]| flow-type ether[ src MAC-ADDR [src-mask MASK] ][ dst MAC-ADDR [dst-mask MASK] ][ proto N [proto-mask MASK] ] }[ vlan VLAN-TAG [vlan-mask MASK] ][ user-def DATA [user-def-mask MASK] ]action Nethtool -u|--show-ntuple DEVNAME        Get Rx ntuple filters and actionsethtool -P|--show-permaddr DEVNAME      Show permanent hardware addressethtool -h|--help               Show this help
#
#

2. 查看网卡的部分属性

# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: off
tx-vlan-offload: off
ntuple-filters: off
receive-hashing: off
#

这些offload特性都是为了提升网络收/发性能。TSO、UFO和GSO是对应网络发送,在接收方向上对应的是LRO、GRO。

  • TSO

TSO(TCP Segmentation Offload),是一种利用网卡对TCP数据包分片,减轻CPU负荷的一种技术,有时也被叫做 LSO (Large segment offload) ,TSO是针对TCP的,UFO是针对UDP的。如果硬件支持 TSO功能,同时也需要硬件支持的TCP校验计算和分散/聚集 (Scatter Gather) 功能。

  • GSO

GSO(Generic Segmentation Offload),它比TSO更通用,基本思想就是尽可能的推迟数据分片直至发送到网卡驱动之前,此时会检查网卡是否支持分片功能(如TSO、UFO),如果支持直接发送到网卡,如果不支持就进行分片后再发往网卡。这样大数据包只需走一次协议栈,而不是被分割成几个数据包分别走,这就提高了效率。

  • LRO

LRO(Large Receive Offload),通过将接收到的多个TCP数据聚合成一个大的数据包,然后传递给网络协议栈处理,以减少上层协议栈处理 开销,提高系统接收TCP数据包的能力。

  • GRO

GRO(Generic Receive Offload),基本思想跟LRO类似,克服了LRO的一些缺点,更通用。后续的驱动都使用GRO的接口,而不是LRO。

  • RSS

RSS(Receive Side Scaling),是一项网卡的新特性,俗称多队列。具备多个RSS队列的网卡,可以将不同的网络流分成不同的队列,再分别将这些队列分配到多个CPU核心上进行处理,从而将负荷分散,充分利用多核处理器的能力。

3. 关闭、打开这些属性

ethtool -K eth1 gro off
ethtool -K eth1 tso off# 注意:使用大写的K

TSO、UFO、GSO、LRO、GRO和RSS介绍(ethtool命令)相关推荐

  1. 网络协议栈TSO/UFO/GSO/LRO/GRO/RSS特性

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 网卡多队列技术与RSS功 ...

  2. 以太网卡TSO、GSO、LRO、GRO描述及相关配置

    文章目录 以太网卡TSO.GSO.LRO.GRO描述及相关配置 硬件包拆分与合并 TSO(TCP Segmentation Offload ) UFO(UDP Fragmentation Offloa ...

  3. TSO、GSO介绍与实现

    转载自:http://www.bsdmap.com/2012/02/22/转tso.ufo.gso.lro.gro和rss介绍/ 转载自:http://blog.chinaunix.net/uid-2 ...

  4. TSO与GSO简单区分

    概念 TSO(TCP Segmentation Offload): 是一种利用网卡来对大数据包进行自动分段,降低CPU负载的技术. 其主要是延迟分段.通过硬件(网卡)实现. GSO(Generic S ...

  5. 软件测试工程师-Linux介绍、命令

    Linux介绍.命令 1.操作系统(operation system,OS) 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用,作为中间人,连接硬件和软件. 2.Linux发 ...

  6. UICC 之 USIM 详解全系列——USIM App关键流程介绍与命令详解

    本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G算力网络技术标准研究. 文章目录 USIM App关键流程介绍与命令详解 USIM ...

  7. linux网卡rss支持,ETHTOOL设置网卡接收哈希(RSS)

    ethtool命令设置接收端哈希功能,按照哈希结果将数据流分发到网卡的不同接收队列中.例如以下命令,指定ipv4的tcp数据流中参与哈希的字段(sdfn): / # ethtool --config- ...

  8. Linux 基础介绍-基础命令

    文章目录 01 学习目标 02 Linux/Unix 操作系统简介 2.1 Linux 操作系统的目标 2.2 Linux 操作系统的作用 2.3 Unix 家族历史 2.4 Linux 家族历史 2 ...

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

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

  10. SmartNIC/DPU — TSO、GSO、LRO、GRO 卸载技术

    目录 文章目录 目录 网络功能卸载 TSO(TCP Segmentation Offload) GSO(Generic Segmentation Offload) LRO(Large Receive ...

最新文章

  1. IBM公司新推一个基于云计算的Web分析工具
  2. ActiveMQ介绍
  3. Python 猜数字游戏
  4. win10启动项_win10 -- 取消不需要的开机启动项和服务项加快win10系统开机速度
  5. 教你使用Donemax DMmenu可以解决Mac启动缓慢的问题呢?
  6. Redis 性能优化思路,写的非常好!
  7. python机器学习依赖库
  8. 全自动与半自动手表的区别_半自动和全自动的区别在哪里?
  9. c语言设计题库及详解答案,c语言程序设计题库及其答案
  10. Android自带的抓包工具tcpdump
  11. 学前端的记录帖html+css b站千峰19版
  12. 大众新能源电动车ID.3ID.4技术培训教材手册维修手册电路图
  13. 数据分析-Excel函数练习
  14. 微信小程序实现客服默认自动回复功能
  15. 台式计算机怎么查是32位还是64位,Win7系统怎么看电脑是32位还是64位?
  16. Qlikview---集合分析
  17. 宝刀——《荒原的呼唤》选载之一
  18. word没保存?如何找回未保存的word文档
  19. mysql-query()expects_mysql_query() expects parameter 2 to be resource, string given in [duplicate]
  20. 金蝶EAS DEP脚本(1)—— 基本概念

热门文章

  1. android表情动画制作,GIF动态表情制作app
  2. 苹果手机声音突然变小是怎么回事_苹果手机听筒声音小怎么回事?
  3. 解决Win10任务栏不显示电池电量的问题
  4. Mysql 不包含某个字符
  5. TI - MCU - MSP430使用指南1 - MSP430简介及选型指南
  6. yabailv 运放_运放块压摆率单位增益频宽和逻辑器件传输延时
  7. 阿里天猫小镇的实质就是为了圈地!
  8. Compose的手势(六)
  9. 来势汹汹 两大版本 百公里加速最快小于3.5s 电动车最大黑马居然是TA!
  10. 缩写(三)——网络语言和缩写词