TTPoE的设计,quic协议,KCP传输协议,快速可靠的UDP

https://zhuanlan.zhihu.com/p/717287042

‌**TTPoE的设计理念主要包括协议简化、硬件层面的执行、以及针对硬件执行的优化。**‌

TTPoE的设计首先强调了协议的简化,通过减少不必要的等待时间和数据传输步骤来提高效率。与传统的TCP协议相比,TTPoE采用了两次握手来建立连接,而不是TCP的三次握手机制,从而显著降低了建立连接的时间。此外,在关闭连接时,TTPoE也简化了过程,仅需发送一个关闭操作码并接收一个确认即可完成,避免了TCP中多次确认和TIME_WAIT状态的存在‌1。

TTPoE还在硬件层面执行,这意味着它的设计和实现主要利用了硬件资源,而不是依赖于软件。这种设计使得TTPoE能够在硬件层面实现更快的处理速度,并且对上层软件透明,上层软件无需显式地管理连接,只需指定数据的目的地址,硬件就会自动完成数据的传输。这种设计不仅提高了数据传输的效率,还降低了软件的复杂性‌1。

针对硬件执行的优化也是TTPoE设计的一个重要方面。TTPoE的传输层状态机针对硬件执行进行了优化,例如,将原本2ms的静默时间缩短,以适应微秒级的协议需求,并避免了对虚拟内存的依赖,仅使用物理内存。这种优化使得TTPoE能够在硬件层面上更快地处理数据传输,进一步提高了性能‌2。

总的来说,TTPoE的设计理念是通过简化协议、硬件层面的执行以及针对硬件执行的优化,来实现高速、低延迟的数据传输,从而满足AI超级计算机等高性能计算环境的需求‌12。

特斯拉宣布开源TTPoE协议,高速且低延迟,比TCP快n倍!|ip|交换机|缓冲区|tcp|数据包|特斯拉(公司)|开源ttpoe协议_网易订阅

特斯拉宣布开源TTPoE协议,高速且低延迟,比TCP快n倍!

、拥塞控制

传统的TCP协议使用一种动态的拥塞控制机制,根据网络状况调整拥塞窗口的大小,以适应不同的网络条件。然而,这种机制在面对高质量、低延迟的内部网络时显得过于复杂和冗余。为此,TTPoE采用了一种固定的拥塞窗口机制,即通过硬件在SRAM缓冲区中记录已发送的数据,缓冲区的大小直接决定了拥塞窗口的大小。

当缓冲区满时,TTPoE会暂停发送新的数据包,直到收到对方的确认并释放缓冲区中的空间。 这种机制简单且高效,特别适用于Tesla的低延迟、高带宽的内部网络环境。此外,TTPoE仍然保留了TCP协议中通过丢包来控制拥塞的思路,但由于其固定窗口的设计,TTPoE不需要像TCP那样频繁地调整窗口大小,从而减少了计算和管理的复杂性。

一句话总结:TTPoE完全在硬件中实现,其状态机相比TCP协议大大简化,从而提供更低的延迟。TCP协议在关闭连接时需要经历多个步骤,如发送FIN、等待确认、再确认等,最后进入TIME_WAIT状态。而TTPoE通过删除TIME_WAIT状态,并将关闭连接的过程从三个步骤简化为两个步骤,大幅减少了延迟。这种简化还包括在建立连接时,将TCP的三次握手(SYN、SYN-ACK、ACK)简化为两次握手。

一文读懂QUIC 协议:更快、更稳、更高效的网络通信-CSDN博客

1.2 HTTP/3协议

HTTP/3是第三个主要版本的HTTP协议。与其前任HTTP/1.1和HTTP/2不同,在HTTP/3中,弃用TCP协议,**改为使用基于UDP协议的QUIC协议实现。**所以,HTTP/3的核心在于QUIC协议。显然,HTTP/3属于应用层协议,而它使用的QUIC协议属于传输层协议。

1.3 我们需要HTTP/3协议吗


二:QUIC协议的优秀特性

2.1 建连快
**数据的发送和接收,要想保证安全和可靠,一定是需要连接的。**TCP需要,QUIC也同样需要。连接到底是什么?连接是一个通道,是在一个客户端和一个服务端之间的唯一一条可信的通道,主要是为了安全考虑,建立了连接,也就是建立了可信通道,服务器对这个客户端"很放心",对于服务器来说:你想跟我进行通信,得先让我认识一下你,我得先确认一下你是好人,是有资格跟我通信的。那么这个确认对方身份的过程,就是建立连接的过程。

传统基于TCP的HTTPS的建连过程为什么如此慢?它需要TCP和TLS两个建连过程。如图1所示(传统HTTPS请求流程图):

KCP传输协议,快速可靠的UDP,和

https://zhuanlan.zhihu.com/p/454498334

KCP的设计目标是为了解决在网络拥堵的情况下TCP传输速度慢的问题。

KCP是一个 快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据的发送方式,以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会有任何一次系统调用。
TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而 KCP是为流速设计的(单个数据从一端发送到一端需要多少时间),以10%-20%带宽浪费的代价换取了比 TCP快30%-40%的传输速度。

KCP没有规定下层传输协议,它只是一个纯算法的实现,但通常使用UDP作为底层协议。所以一般来说可以说KCP是快速可靠的UDP。

我们都知道,TCP是可靠的传输协议。那么KCP的特点就是:快速可靠。

相关推荐
鲜花飘飘扬17 分钟前
HTTP请求头中表示代理IP地址的属性及获取情况
网络协议·tcp/ip·http
中微极客2 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
小王C语言2 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++
新手unity自用笔记2 小时前
unity网络基础_1
网络·unity·游戏引擎
小王C语言3 小时前
【8.进行接口测试】:通过 curl 进行接口自动化测试 / 通过 python 程序进行接口自动化测试
网络·c++
一条大祥脚3 小时前
26杭电暑期第三场 DP|费用流|分解质因子|数论|贪心|图论|期望|无穷级数
网络·图论·网络流·无穷级数·费用流
早睡早起身体好1233 小时前
为什么 Network 中会出现两个同名请求?——CORS 预检请求学习笔记
网络·笔记·学习·网络安全
daad7774 小时前
记录matlab状态机demo
java·网络·matlab
paopaokaka_luck4 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
Yang96115 小时前
告别“慢工出细活”:如何平衡光纤熔接的速度与精度?
网络