目录

概念介绍

如何查看网卡是否启用了TSO


概念介绍

我们知道,网络设备一次能够传输的最大数据量就是MTU,即IP传递给网络设备的每一个数据包不能超过MTU个字节,IP层的分段和重组功能就是为了适配网络设备的MTU而存在的。从理论上来讲,TCP可以不关心MTU的限定,只需要按照自己的意愿随意的将数据包丢给IP,是否需要分段可以由IP透明的处理,但是由于分片会带来效率和性能上的损失,所以TCP在实现时总是会基于MTU设定自己的发包大小,尽量避免让数据包在IP层分片,也就是说TCP会保证一个TCP段经过IP封装后传给网络设备时,数据包的大小不会超过网络设备的MTU。

TCP的这种实现会使得其必须对用户空间传入的数据进行分段,这种工作很固定,但是会耗费CPU时间,所以在高速网络中就想优化这种操作。优化的思路就是TCP将大块数据(远超MTU)传给网络设备,由网络设备按照MTU来分段,从而释放CPU资源,这就是TSO(TCP Segmentation Offload)的设计思想。

显然,TSO需要网络设备硬件支持。更近一步,TSO实际上是一种延迟分段技术,延迟分段会减少发送路径上的数据拷贝操作,所以即使网络设备不支持TSO,只要能够延迟分段也是有收益的,而且也不仅仅限于TCP,对于其它L4协议也是可以的,这就衍生出了GSO(Generic Segmentation Offload)。这种技术是指尽可能的延迟分段,最好是在设备驱动程序中进行分段处理,但是这样一来就需要修改所有的网络设备驱动,不太现实,所以再提前一点,在将数据递交给网络设备的入口处由软件进行分段(见dev_queue_xmit()),这正是Linux内核的实现方式。

与TSO类似的,还有巨型帧(Jumbo Frames),只不过工作的层次不同。

如何查看网卡是否启用了TSO

使用ethtool 查看网卡特性

[root@oracletest ~]# ethtool -k ens192
Features for ens192:
rx-checksumming: on
tx-checksumming: ontx-checksum-ipv4: off [fixed]tx-checksum-ip-generic: ontx-checksum-ipv6: off [fixed]tx-checksum-fcoe-crc: off [fixed]tx-checksum-sctp: off [fixed]
scatter-gather: ontx-scatter-gather: ontx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: ontx-tcp-segmentation: ontx-tcp-ecn-segmentation: off [fixed]tx-tcp6-segmentation: ontx-tcp-mangleid-segmentation: off
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: on
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
busy-poll: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
rx-gro-hw: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
[root@oracletest ~]# 

可以看到其中的 tcp-segmentation-offload: on。上文提到,除了网卡要支持TSO,网络设备也要支持才行,否则将解包压力堆积到了交换机上,仍然会造成瓶颈。

有关TSO的具体实现原理,请参见参考部分连接。

转自:

https://blog.csdn.net/xiaoyu_750516366/article/details/85461457

参考:

https://blog.csdn.net/megan_free/article/details/84992350?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.nonecase

https://blog.csdn.net/dog250/article/details/47055121

https://blog.csdn.net/u011130578/article/details/44569231

https://blog.csdn.net/xiaoyu_750516366/article/details/85461457

https://blog.csdn.net/megan_free/article/details/84992350

计算机网络 网络性能优化技术 数据发送TSO/USO/GSO相关推荐

  1. 基于SDN网络的优化技术和QoS研究分析(二)

    编者按 随着网络技术的发展,越来越多的分布式应用和不同类型的网络技术被部署到网络上,基于传统IP的网络体系结构正面临越来越多的问题,传统的优势正逐渐成为制约网络技术发展的瓶颈. 由于篇幅较长,文章将分 ...

  2. 大数据存储系统I/O性能优化技术研究进展

    大数据存储系统I/O性能优化技术研究进展 肖利民,霍志胜 北京航空航天大学计算机学院,北京 100191 摘要:大数据存储系统的I/O性能是影响大数据应用整体性能的关键因素之一,总结了当前在存储系统架 ...

  3. 44 | 套路篇:网络性能优化的几个思路(下)

    在优化网络的性能时,你可以结合 Linux 系统的网络协议栈和网络收发流程,然后从应用程序.套接字.传输层.网络层再到链路层等每个层次,进行逐层优化.上一期我们主要学习了应用程序和套接字的优化思路,比 ...

  4. 网络性能优化的几个思路

    本文是通过学习倪朋飞老师的<Linux性能优化实战> :网络性能优化的几个思路? 网络性能优化的几个思路 确定优化目标 网络性能工具 网络性能优化 应用程序 套接字 网络性能优化 传输层 ...

  5. Linux内核网络性能优化

    Linux内核网络性能优化 1. 前言 2. Linux网络协议栈 3. DPDK 4. XDP 4.1 XDP主要的特性 4.2 XDP与DPDK的对比 4.3 应用场景 5. CPU负载均衡 5. ...

  6. 43 | 套路篇:网络性能优化的几个思路(上)

    上一节,我们了解了 NAT(网络地址转换)的原理,学会了如何排查 NAT 带来的性能问题,最后还总结了 NAT 性能优化的基本思路.我先带你简单回顾一下. NAT 基于 Linux 内核的连接跟踪机制 ...

  7. 性能优化系列(五)网络性能优化

    文章首发「Android波斯湾」公众号,更新地址:https://github.com/jeanboydev/Android-ReadTheFuckingSourceCode 移动互联网时代,用户对网 ...

  8. 华为开发者大会主题演讲:抖音短视频网络性能优化实践

    内容来源:华为开发者大会2021 HMS Core 6 System技术论坛,主题演讲<抖音短视频网络性能优化实践>. 演讲嘉宾:卡涛,抖音Android架构师 大家好!我是来自字节跳动抖 ...

  9. Android 网络性能优化(4)弱网优化

    系列文章目录 1. Android 网络性能优化(1)概述 2. Android 网络性能优化(2)DNS优化 3. Android 网络性能优化(3)复用连接池 4. Android 网络性能优化( ...

最新文章

  1. CSCNN:新一代京东电商广告排序模型
  2. 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)
  3. 不刷新页面的tab_SwiftUI小技巧之如何解决Tab切换后页面重置和List刷新bug
  4. docker安装tesseract
  5. 小小涉及OpenFeign原理:Could not extract response: no suitable HttpMessageConverter found for response type
  6. vueh5调用摄像头拍照_潜望式拍照5G手机盘点:售价相差数千元 究竟怎么选?
  7. Unable to open /dev/sda的原因之一
  8. Python自带又好用的代码调试工具Pdb学习笔记
  9. 昨天一冲动,给头儿说留所了。。。
  10. python一维数组聚类
  11. ANGULARJS 动态编译添加到dom中
  12. Could not find a JavaScript runtime
  13. 智能识别云服务端平台之神【合合信息TextIn】
  14. html左右箭头实现图片滚动,jquery控制左右箭头滚动图片列表的实例
  15. idea实现打包springboot项目并且运行在cmd中
  16. 用计算机丢失ZLB1,LJ-ZLB1预应力智能张拉控制系统
  17. 下面哪个不是python常用的开发工具_Python程序员常用的IDE和其它开发工具
  18. 关于cos(x^2)的傅里叶逆变换(Inverse Fourier Transform)
  19. 华为云发布实时音视频行业加速器,为企业解决技术与商业双重难题
  20. 高精度地图-使用ArcMap标注高精度地图

热门文章

  1. 发表第二首“梨花体”诗_拔剑-浆糊的传说_新浪博客
  2. TCP协议和UCP协议的异同
  3. 屌丝的逆袭和互联网+时代(后记)
  4. 【网络爬虫实战】抓取腾讯视频评论
  5. 计算一年有多少个周,每个周的开始日期和结束日期是什么
  6. linux篇【3】:Linux 环境基础开发工具yum,vim,gcc,makefile,git
  7. 大数据融合:提高社会治理社会化、法治化、智能化、专业化水平
  8. 亲测超好用的一款流程图制作软件(内含制图技巧分享)
  9. 2019icassp主页浏览见闻~~
  10. ICASSP是否可以提交附件(supplementary information)?