计算机网络 网络性能优化技术 数据发送TSO/USO/GSO
目录
概念介绍
如何查看网卡是否启用了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相关推荐
- 基于SDN网络的优化技术和QoS研究分析(二)
编者按 随着网络技术的发展,越来越多的分布式应用和不同类型的网络技术被部署到网络上,基于传统IP的网络体系结构正面临越来越多的问题,传统的优势正逐渐成为制约网络技术发展的瓶颈. 由于篇幅较长,文章将分 ...
- 大数据存储系统I/O性能优化技术研究进展
大数据存储系统I/O性能优化技术研究进展 肖利民,霍志胜 北京航空航天大学计算机学院,北京 100191 摘要:大数据存储系统的I/O性能是影响大数据应用整体性能的关键因素之一,总结了当前在存储系统架 ...
- 44 | 套路篇:网络性能优化的几个思路(下)
在优化网络的性能时,你可以结合 Linux 系统的网络协议栈和网络收发流程,然后从应用程序.套接字.传输层.网络层再到链路层等每个层次,进行逐层优化.上一期我们主要学习了应用程序和套接字的优化思路,比 ...
- 网络性能优化的几个思路
本文是通过学习倪朋飞老师的<Linux性能优化实战> :网络性能优化的几个思路? 网络性能优化的几个思路 确定优化目标 网络性能工具 网络性能优化 应用程序 套接字 网络性能优化 传输层 ...
- Linux内核网络性能优化
Linux内核网络性能优化 1. 前言 2. Linux网络协议栈 3. DPDK 4. XDP 4.1 XDP主要的特性 4.2 XDP与DPDK的对比 4.3 应用场景 5. CPU负载均衡 5. ...
- 43 | 套路篇:网络性能优化的几个思路(上)
上一节,我们了解了 NAT(网络地址转换)的原理,学会了如何排查 NAT 带来的性能问题,最后还总结了 NAT 性能优化的基本思路.我先带你简单回顾一下. NAT 基于 Linux 内核的连接跟踪机制 ...
- 性能优化系列(五)网络性能优化
文章首发「Android波斯湾」公众号,更新地址:https://github.com/jeanboydev/Android-ReadTheFuckingSourceCode 移动互联网时代,用户对网 ...
- 华为开发者大会主题演讲:抖音短视频网络性能优化实践
内容来源:华为开发者大会2021 HMS Core 6 System技术论坛,主题演讲<抖音短视频网络性能优化实践>. 演讲嘉宾:卡涛,抖音Android架构师 大家好!我是来自字节跳动抖 ...
- Android 网络性能优化(4)弱网优化
系列文章目录 1. Android 网络性能优化(1)概述 2. Android 网络性能优化(2)DNS优化 3. Android 网络性能优化(3)复用连接池 4. Android 网络性能优化( ...
最新文章
- CSCNN:新一代京东电商广告排序模型
- 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)
- 不刷新页面的tab_SwiftUI小技巧之如何解决Tab切换后页面重置和List刷新bug
- docker安装tesseract
- 小小涉及OpenFeign原理:Could not extract response: no suitable HttpMessageConverter found for response type
- vueh5调用摄像头拍照_潜望式拍照5G手机盘点:售价相差数千元 究竟怎么选?
- Unable to open /dev/sda的原因之一
- Python自带又好用的代码调试工具Pdb学习笔记
- 昨天一冲动,给头儿说留所了。。。
- python一维数组聚类
- ANGULARJS 动态编译添加到dom中
- Could not find a JavaScript runtime
- 智能识别云服务端平台之神【合合信息TextIn】
- html左右箭头实现图片滚动,jquery控制左右箭头滚动图片列表的实例
- idea实现打包springboot项目并且运行在cmd中
- 用计算机丢失ZLB1,LJ-ZLB1预应力智能张拉控制系统
- 下面哪个不是python常用的开发工具_Python程序员常用的IDE和其它开发工具
- 关于cos(x^2)的傅里叶逆变换(Inverse Fourier Transform)
- 华为云发布实时音视频行业加速器,为企业解决技术与商业双重难题
- 高精度地图-使用ArcMap标注高精度地图
热门文章
- 发表第二首“梨花体”诗_拔剑-浆糊的传说_新浪博客
- TCP协议和UCP协议的异同
- 屌丝的逆袭和互联网+时代(后记)
- 【网络爬虫实战】抓取腾讯视频评论
- 计算一年有多少个周,每个周的开始日期和结束日期是什么
- linux篇【3】:Linux 环境基础开发工具yum,vim,gcc,makefile,git
- 大数据融合:提高社会治理社会化、法治化、智能化、专业化水平
- 亲测超好用的一款流程图制作软件(内含制图技巧分享)
- 2019icassp主页浏览见闻~~
- ICASSP是否可以提交附件(supplementary information)?