首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

自动驾驶网络优化

TSO 是利用网卡来对大数据包进行自动分段,降低CPU负载的技术。 GSO 是协议栈分段功能。分段之前判断是否支持TSO,支持则推迟到网卡分段。 如果TSO开启,GSO会自动开启。...如果TSO开启,GSO会自动开启。 以下是TSOGSO的组合关系GSO开启, TSO开启:协议栈推迟分段,并直接传递大数据包到网卡,让网卡自动分段。...GSO开启, TSO关闭:协议栈推迟分段,在最后发送到网卡前才执行分段。 GSO关闭, TSO开启:同GSO开启, TSO开启。...开启GSO/TSO 驱动程序在注册网卡设备的时候默认开启GSO: NETIF_F_GSO 是否推迟分段 GSO/TSO是否开启是保存在 dev->features 中,而设备和路由关联,当我们查询到路由后就可以把配置保存在...需要注意的是,只要开启了GSO,即使硬件不支持TSO,也会设置NETIF_F_TSO,使得sk_can_gso(sk)在GSO开启或者TSO开启的时候都返回true。

95710

图解网络Offload

以太网头和尾数据包含:2bit的以太网类型+6bit的DMAC+6bit的SMAC+4bit的FCS Offload涉及到四个概念:TSOGSO、LRO、GRO。...其作用通过两个图来对比: TSO off和GSO off 状态数据包的发送过程: ? TSO on状态数据包的发送过程: ? 一个大的网络包直到进入网卡内部后才由网卡进行了分片。...GSO GSO(Generic Segmentation Offload)是延缓分片技术。它比 TSO 更通用,原因在于它不需要硬件的支持就可以进行分片。...其过程是:首先查询网卡是否支持TSO 功能,如果硬件支持TSO则使用网卡的硬件分片能力执行分片;如果网卡不支持 TSO 功能,则将分片的执行,延缓到了将数据推送到网卡的前一刻执行。...网卡关闭TSO时,GSO on状态数据包的发送过程: ? 一个大的网络包直到进入网卡前的最后一步才进行了分片。 TSOGSO对应数据发送过程,对应数据接收过程的是LRO和GRO。

3.4K20

【重识云原生】第四章云网络4.9.2节——传统网络卸载技术

这技术通常被称做TCP分段卸载(TSO)或者大段卸载(LSO)。...TSO off和GSO off: TSO on:  UFO(UDP-Fragmentation-Offload):TSO针对TCP报文分段处理,UFO将对UDP报文进行IP分片的工作交由网卡驱动层处理...2.1.4 GSO(generic-segmentation-offload)分片    相对于TSO和UFO,GSO是一种更通用的机制。...TSO Off and GSO on:  2.1.5 Checksum卸载     Checksum是用于校验目的的一组数据项的和,用于在远距离通信中保证数据的完整性和准确性。...、GSO、LRO、GRO 卸载技术 Linux环境中的网络分段卸载技术GSO/TSO/UFO/LRO/GRO  《重识云原生系列》专题索引:  第一章——不谋全局不足以谋一域 第二章计算第1节——计算虚拟化技术总述

1.5K22

解决wireshark抓包校验和和分片显示异常

问题解决: 在分析问题前,先给出上述问题答案,在10.81.2.92中关闭抓包的网卡的tso和tx功能. ethtool -K eth0 tso off ethtool -K eth0 tx off...仅支持TCP; udp-fragmentation-offload(UFO):工作方式与tcp-fragmentation-offload类似; generic-segmentation-offload(GSO...):工作方式与TSO,UFO类似,但支持所有的网络协议。...接受方向的参数为generic-receive-offload(GRO);GSO/GRO和的TSO/LRO的使用参见这篇文档 rx-vlan-offload:移除接收到的vlan tag; tx-vlan-offload...:对出去的报文加上vlan tag; TIPS: 类似地,如果抓UDP报文显示校验和等异常时,可以通过ethtool临时关闭UDP offload功能 TSO,UFO,GSO等功能可以提高报文交互能力

1.9K10

Boost UDP Transaction Performance

作者:Toshiaki Makita 讲述内容 背景 提升网络性能的基本技术 如何提升UDP性能 作者介绍 Toshiaki Makita NTT开源软件中心的Linux内核工程师 NTT集团公司的技术支持.../GSO/GRO 报文分割/聚合 减少报文在服务中的处理 适用于TCP 字节流(使用UDP隧道的TCP也可以) 不适用于UDP数据报(除了UFO,其他都依赖物理NICs) UDP...TSO/GSO用于发送报文时,将上层聚合的数据进行分割,分割为不大于MTU的报文;GRO在接受侧,将多个报文聚合为一个数据,上送给协议栈。总之就是将报文的处理下移到了网卡上,减少了网络栈的负担。...TSO/GSO等可以增加网络吞吐量,但有可能造成某些连接上的网络延迟。...Tx Qdisc锁(_raw_spin_lock)的消耗比较严重 没有竞争,但出现了很多原子操作 在Linux netdev社区中进行优化 更多热点2 ?

1.3K10

流量控制--1.概览

为了避免在传输路径上对大报文处理产生的开销,Linux内核实现了几类优化:TCP分段卸载(TSO),UDP分片卸载(USO)以及通用的分段卸载 (GSO)。...在TSO和UFO场景下,NIC硬件负责将单个大报文切分为可以在物理接口上传输的小报文。对于没有硬件支持的NIC,GSO会在报文进入驱动队列之前对其进行相同的操作。...回顾一下,驱动队列包含一个固定数目的描述符,每个描述符指向大小不同的报文,由于TSO, UFO 和GSO 允许更大长度的报文,因此这些优化会大大增加驱动队列中保存的字节数(即驱动中的描述符可能指向一个大于...如前面所述,当启用TSO, UFO 或 GSO时,驱动队列中的报文大小可以大于1500字节,这将导致延迟更加严重。...在学术、网络和Linux开发社区中,分组交换网络存在的延迟和吞吐量之间的关系是众所周知的。 Linux流量控制核心数据结构可以追溯到1990年代,并且一直在不断开发和扩展,并增加了新的调度器和功能。

99530

流量控制--概览

为了避免在传输路径上对大报文处理产生的开销,Linux内核实现了几类优化:TCP分段卸载(TSO),UDP分片卸载(USO)以及通用的分段卸载 (GSO)。...在TSO和UFO场景下,NIC硬件负责将单个大报文切分为可以在物理接口上传输的小报文。对于没有硬件支持的NIC,GSO会在报文进入驱动队列之前对其进行相同的操作。...回顾一下,驱动队列包含一个固定数目的描述符,每个描述符指向大小不同的报文,由于TSO, UFO 和GSO 允许更大长度的报文,因此这些优化会大大增加驱动队列中保存的字节数(即驱动中的描述符可能指向一个大于...如前面所述,当启用TSO, UFO 或 GSO时,驱动队列中的报文大小可以大于1500字节,这将导致延迟更加严重。...在学术、网络和Linux开发社区中,分组交换网络存在的延迟和吞吐量之间的关系是众所周知的。 Linux流量控制核心数据结构可以追溯到1990年代,并且一直在不断开发和扩展,并增加了新的调度器和功能。

1.2K20

Linux 内核 TCP MSS 机制详细分析

前言 上周Linux内核修复了4个CVE漏洞[1],其中的CVE-2019-11477感觉是一个很厉害的Dos漏洞,不过因为有其他事打断,所以进展的速度比较慢,这期间网上已经有相关的分析文章了。...所以本文将通过Linux内核源码对TCP的MSS机制进行详细分析。...tcp-flags RST RST -s 192.168.11.111 -j DROP 对于MSS的深入研究 关于该漏洞的细节,别的文章中已经分析过了,这里简单的提一下,该漏洞为uint16溢出: tcp_gso_segs...类型为uint16 tcp_set_skb_tso_segs: tcp_skb_pcount_set(skb, DIV_ROUND_UP(skb->len, mss_now)); skb->len的最大值为...随机进行源码审计,对发生溢出的函数tcp_set_skb_tso_segs进行回溯: tcp_set_skb_tso_segs <- tcp_fragment <- tso_fragment <- tcp_write_xmit

1.7K20

Linux网络性能优化相关策略

6. generic-segment-offload:当使用TSO和UFO时,一般都要打开此功能。TSO和UFO都是靠网卡硬件支持,而GSOlinux中大部分是在driver层通过软件实现。...对于转发设备来说,个人推荐不使能GSO。以前测试过,开启GSO会增大转发延时。 7. rx-vlan-offload:部署在vlan网络环境内,则启用。...而RSS可以解决这个问题,当工作线程处理socket的报文时,内核会记录这个报文是由某个CPU处理的,将这个映射关系保存到一个flow表中。...XPS RPS和RFS是用于建立接收队列与处理CPU的关系,而XPS不仅可以用于建立发送队列和处理CPU的关系,还可以建立接收队列与发送队列的关系。...early_demux开关 对linux内核比较熟悉的同学都知道,linux收到报文后,会通过查找路由表,来判断报文是发给本机还是转发的。

5.2K50

干货 | 携程容器偶发性超时问题案例分析(一)

我们怀疑是否跟宿主机的某些TCP参数有关,比如TSO/GSO,一番测试后发现开启关闭TSO/GSO和修改内核参数对解决问题无效,但同时我们也观察到,从相同IDC里任选一台宿主机Ping有问题的宿主机,百分之几的概率看到很高的响应值...而这时DBA告诉我们,他们的某台物理机ServerB也有类似的的问题,Ping延迟很大,SSH上去后明显感觉到有卡顿,这无疑给我们解决问题带来了希望,但又更加迷惑: 1)延迟好像跟内核版本没有关系,3.10...尽管linux的CFS调度并非实时的调度,但在负载很低的情况下超过1s的调度延迟也是匪夷所思的。 ? 图10 ?.../kernel/git/stable/linux.git/commit/?...这时我们查看有问题的宿主机CPU信息,奇怪的事情发生了,如图15所示,12核的机器上possbile CPU居然是235个,而其中12-235个是offline状态,也就是说真正工作的只有12个,这么说好像还是跟延迟没有关系

89820
领券