皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

巨型数据包传输和 RACK-TLP 即将登陆 Linux 6.14 网络堆栈

巨型数据包传输和 RACK-TLP 即将登陆 Linux 6.14 网络堆栈

上周,在即将到来的 Linux 6.14 周期中,Linux 内核的网络子系统中排着队,用于巨型数据包的传输处理,以及用于管理数据包丢失和重新传输的 RACK-TLP 支持。这是为了支持更大的网络传输窗口和更高的数据吞吐量。

Red Hat 的 David Howells 一直致力于在 Linux 网络堆栈中实现巨型数据传输和 RACK-TLP 支持。他在补丁系列的封面信中很好地总结了这个 Linux 网络功能的工作:

“这是一系列实现两个主要功能的补丁:

(1) 巨型数据包的传输,其中可以将多个特定大小的数据包粘合在一起形成一个 UDP 数据包,从而使我们能够使用更大的 MTU 大小。基本巨型子数据包容量为 1412 字节 (RXRPC_JUMBO_DATALEN),例如,MTU 为 8192 允许将其中 5 个子包作为一个子包传输。

另一种(可能更有效的方法)是扩展/缩小每个 DATA 数据包的容量以匹配 MTU,从而节省标头和尾部间隙开销,但 Rx 协议不提供拆分数据的机制 – 特别是当传输的数据是按数据包加密时 – 因此 UDP 分段将是处理此问题的唯一方法。

事实上,在未来,AF_RXRPC还需要考虑在 MTU 较小的情况下缩小数据包大小 – 例如,在 IPv6 通过 wifi 传输的情况下,没有 1412 字节容量的容量。

(2) RACK-TLP 与拥塞控制算法一起管理数据包丢失和重传。

这些可以实现更好的数据吞吐量,并努力实现更大的传输窗口。

TCP 的 RACK-TLP 丢失检测算法在 RFC8985 中也有进一步的详细说明:

“RACK-TLP 使用每段传输时间戳和选择性确认 (SACK),分为两部分。最近确认 (RACK) 使用从确认 (ACK) 反馈得出的基于时间的推理快速启动快速恢复,而尾部丢失探测 (TLP) 利用 RACK 并发送探测数据包来触发 ACK 反馈,以避免重新传输超时 (RTO) 事件。与广泛使用的重复确认 (DupAck) 阈值方法相比,当存在应用程序受限的数据飞行、丢失的重新传输或数据包重新排序事件时,RACK-TLP 可以更有效地检测丢失。它旨在成为 DupAck 阈值方法的替代方案。

这些用于巨型数据包传输和 RACK-TLP 的补丁已合并到 net-next.git 中,使其成为下一个内核合并窗口(1 月下旬开放的 Linux 6.14)中的网络代码的重要内容。

转自 Jumbo Data Packet Transmission & RACK-TLP Coming To Linux 6.14 Network Stack – Phoronix

已有 0 条评论 新浪微博
已有 0 条评论 新浪微博
-->