您当前的位置:首页 >> 旅游 >  >> 
【新要闻】全网首次揭秘:不止“SRD”,鹅厂也在自研一款全新的网络协议
来源: 腾讯云      时间:2023-03-09 16:10:03

内容提要


【资料图】

上周回顾了阿里自研的AliNOS起源及演进—从数据中心到广域网、泛边缘及DPU。

今天介绍鹅厂自研的一款全新的网络协议,微秒级“复活”网络的HARP协议及其关键技术。

本文来自鹅厂。关于SRD,请参阅:RDMA是个宝?AWS就是不鸟

概述

在常见的TCP/IP协议、RoCE协议之外,腾讯云的工程师们正在自研一套全新的高性能传输协议HARP。

借助这套协议,数据中心内部可以轻松支持10000+节点的大规模组网,以及微秒级“复活”故障网络,实现0断链。

什么是HARP

HARP是一个完全自研的数据中心高性能传输协议。在保证端到端数据报文可靠传输的同时,HARP可以为上层应用提供高可用、高可扩展、高性能的网络传输服务。

为什么要自研

市面上已经有各种各样的网络传输协议,腾讯云为什么还在另起炉灶,从0到1开始自研新的传输协议呢?主要原因是,随着应用规模和需求的不断发展,数据中心网络的可靠性和性能面临着巨大的挑战,之前的协议渐渐无法满足现有业务的发展。

首先,可靠性上,数据中心内部的交换机不可避免地会出现亚健康状况,这种状况轻则使得业务的响应延时增加,重则导致业务超时断链。

其次,性能上,带宽敏感型应用、时延敏感的应用与日俱增,而且数据中心应用的部署规模越来越大,集合通信场景下往往会产生大量的并发的数据传输,这对现有网络传输协议的可扩展性提出了更大的要求。

因此,需要重新设计一套新的传输协议,既能满足上层应用对于高可用网络传输的要求,又能提供高带宽、低时延的数据传输服务,还能保持在大规模部署下的网络性能。

HARP就在这样的背景下诞生了。

HARP的厉害之处

主要有三高:

“高可用”:通过多路径并行传输及实时的链路检测, 微秒级切换故障链路,使得网络发生故障时上层业务完全无感知,没有明显的性能抖动。

“高可扩展性”:通过共享连接的设计和协议本身的优化, 使得大规模组网状况下依然维持着极低的硬件资源消耗, 轻松支持1w+节点组网下节点间通信性能无明显下跌,大大优于传统ROCE网络的组网能力。

“高性能”:自研拥塞控制算法,对网络能力无明显依赖的前提下, 实现各种负载时都能获得极高的传输带宽和稳定的时延(包括平均时延和长尾时延)。

技术上如何实现的

1、粒度可配置的共享连接,最大支持10000+节点组网

为了满足多种业务环境的使用需求(裸金属,VM,CBS等)和大规模组网要求,HARP支持裸连接、VM级共享、主机级共享等粒度的连接模式。通过共享连接,HARP可以大幅减少连接数量,降低硬件实现的资源消耗,实现高度的可扩展性,轻松支持10000+级节点的大规模组网。

2、软硬件事务分离,提供200Gbps最高性能输出

HARP采用软硬件分层的事务层和可靠传输层设计,分工明确:硬件负责需要高效和可靠传输的报文级事务;软件部分则提供高度灵活、贴合业务特性需求的消息处理,而不占用有限的硬件资源。

最终,HARP可以支持在10000+节点的网络规模的业务中,提供200Gbps的最高性能输出,对于AI训练、键值存储、分布式大数据应用等场景具有独特价值。

3、自研拥塞控制算法,让消息完成时间中位数降低35%

HARP采用自研的拥塞控制算法PEAD,精确地感知网络拥塞,在维持高吞吐的同时,保证网络流的通畅。

相较于TCP,HARP消息完成时间的中位数降低了35%,同时保证99%数据包的网络排队时延降低90%。

4、确定性多路径传输、实现微秒级路径切换

腾讯云HARP协议吸收了包括TCP和UDP的优势,通过自研的报文编号方案追踪每个报文的发送和接收状态,HARP以极低开销支持乱序接收和选择性重传,保证了报文的可靠传输。

同时,HARP通过确定性多路径传输和微秒级路径切换,为上层应用提供高可用网络服务。

HARP在每个连接内采用多路径传输,每条路径有独立的拥塞探测能力。

基于自研拥塞控制算法优良的网络控制和感知能力,HARP的路径管理模块会根据路径的拥塞情况进行调度,快速可靠地检测到路径故障,并在100微秒时间内重新探测一条新的可用路径,保证在单个交换机故障时的断链概率为0。

相比起TCP遭遇故障的典型重连恢复时间(约为1s),HARP减少了99.9%。

HARP有什么用

HARP最初是面向存储与高性能计算的场景而设计, 目前也已经落地在腾讯的云硬盘(CBS)与弹性RDMA(EFI)业务中。作为一个高性能的通信底座,HARP可以被应用于数据中心对网络性能要求较高的业务中,比如AI训练、键值存储、分布式大数据应用等。

当前腾讯云的工程师还正在不断地完善其高性能通信库,包括使用Socket、IB Verbs、libfabric、UCX等通信接口接入HARP传输协议,从而不断扩大HARP的生态。

相信随着HARP生态的不断完善,“HARP for Everything”的目标将会真正实现。

标签:

上一篇:

下一篇:

X 关闭

X 关闭