Google Falcon一种可靠且低延迟的以太网硬件传输技术

Falcon是一种低延迟、可靠的硬件传输技术。Google(主机网络团队的Nandita Dukiparti) 在2023年的OCP(open compute project)大会上介绍了在Falcon上的一些关键技术。

为什么要重新思考网卡的传输层?

如下4个因素促使Google思考新的传输技术:

  • 新应用的出现:AL/ML训练,HPC,以及存储网络与一些高带宽RPC请求的出现,需要高突发、高IO、低时延的网络
  • 软件优化无法满足:这种需求无法通过增量软件优化来满足,因为几乎需要一个数量级的性能进步
  • Ethernet现代化:这些驱动因素促使Ethernet需要提供低延迟和高带宽的网络,原有Ethernet无法满足,急需现代化改造
  • ICI/NVLINK网络规模扩展:混合网络是现实存在的,高性能芯片间互联网络ICI、NVLINK为实现规模扩展,需要连接到Ethernet网络。

image-20240831124318829

新的传输层需要哪些特性?

上面也提到,为满足重量级应用(AI/ML、存储)的需求,单纯依靠ICI/NVLINK高性能的小范围网络,是不够的,需要通过以太网连接它们,以实现这些工作负载的大规模部署。

那么,问题转换为:如何在数据中心以太网网络中,实现高性能、隔离性好和高效率的网络?

image-20240902090720176

Google给我们展示了他的答卷:Falcon,一种基于以太网,低延迟、高可靠传输的网络。

Falcon经过Google 十年的实际生产经验和迭代。为实现大规模应用中的低尾延迟,其包含的主要特色如下:1)基于延迟的拥塞控制算法,如Swift,或者2)流量整形,如carousel,3)以及丢包时的快速和准确重传(RACK-TLP),4)可见性,拥塞信号CSIG;5)数据中心多路径技术。具体如下图所示:

image-20240902091248352

如何实现高性能、隔离性与效率?

Falcon是实现高性能、隔离性和效率的三大支柱,Falcon架构如下:

image-20240902092137130

实际上,对于数据中心高性能来说,就是在具有挑战性的一组工作负载中实现低尾延迟

Google根据多年的经验和生产实践,将三个关键特色融入到Falcon中,以实现大规模的低尾延迟

  • 基于时延、硬件协助的拥塞控制
  • 丢包时快速且准确地数据包重传
  • 多路径:将这些技术与多路径整合在一起

另外,隔离性在共享基础设施中非常重要,Google在Falcon中引入了硬件时间轮或流量整形器,以实现流的公平性,并且这不仅仅是流内的公平性,还包括在共享基础设施中的多租户之间的公平性。此外,可见性:拥有良好的统计数据和指标对于调试这些工作负载以及提供动力的软件定义网络系统来说也非常重要。

所有这些内容都集成在硬件中,以实现高效率与安全。硬件加速提供了连接扩展和高速率操作等优势。当然,所有这些都高度可编程,G其实现了拥塞控制的可编程性。Falcon还支持加密(可选)。

Falcon 模型层次

image-20240902094325949
Falcon大致分为以下三个层次:

  • 上层协议映射层(ULP):将ULP操作(如读写、发送接收和原子操作等)映射到Falcon连接,上层协议包括RDMA、NVMe等。
  • 事务层:为ULP提供了请求-响应式事务接口,以及其他一些功能。
  • 数据包传输层:负责处理所有与网络相关的功能,如拥塞控制、可靠传输和多路径等。

上层协议映射层(ULP to Falcon)支持行业标准接口,并针对大规模应用进行了扩展。例如,兼容RDMA协议的接口,支持RC和UD等传输类型。其他应用程序也可以通过Falcon进行升级。Falcon还支持强有序连接的使用,通过使用NIC上的缓冲区来重新排序可能乱序到达的数据包。它支持有错误语义的字,但Google也扩展了接口以支持其他类型的排序模式,例如弱有序和无序模式。在弱有序模式下,数据可以乱序,但完成会按顺序生成;在无序模式下,数据发送和完成都可以乱序。

image-20240902095124179

事务层夹在上层协议和数据包传输层之间,其关键功能是支持有序连接、根据服务质量或其他策略安排事务。为隔离目的还是为了防止死锁,并管理NIC的有限资源。

image-20240902095211714

数据包传输层是Falcon最底层的部分,负责处理:1)处理拥塞控制,集成了基于延迟的拥塞控制;2)利用数据中心中的多条路径提升端到端的可靠性;3)使用滑动窗口来实现可靠地传输,并使用硬件进行重传;4)利用批量传送和自适应应答来提高效率等。

image-20240902095247803

RDMA/Falcon性能

Falcon是硬件实现的,并且表现出很好的性能。Google展示的数据如下,在单一队列对中,可以看到延迟与消息大小成反比的趋势。通过测量尾延迟、时延中位数,对比理论延迟,发现其尾延迟表现很好,实际性能与理论计算非常接近。

image-20240902095517913

数据中心互联网网络,丢包经常发生,传输协议必须在丢包情况下表现良好。那么在丢包情况下,它的表现如何呢?image-20240902100202092

Google 对一个单一QP进行了测试,将丢包率从0%变化到5%。

如果在丢包情况下无法良好表现,会看到有效吞吐量下降,丢包率增加时重传率将急剧上升。然而,在Falcon中,会看到一个非常稳定的有效吞吐量,随着丢包率的增加,消息延迟保持稳定,即使在高丢包率下,也能够很好地逐渐降级,表现出非常好的容错性。

总结

image-20240902100410941

Falcon已经在硬件上实现,并结合了Google 十年的生产经验和改进,其将三个关键特色融入了Falcon中:

  • 硬件辅助的每包细粒度时间戳测量

  • 与RTT测量相结合的基于延迟的拥塞控制

  • 快速和准确的数据包重传以及支持多路径传输

这些使得Falcon能够在大规模上实现低尾延迟。为什么大家要关心这个问题呢?因为所有这些要点都能够满足在大规模上实现可预测的性能,这正是高性能、高带宽、减少拥塞以及网络高利用率的需求。此外,高效性对于大规模应用来说非常重要,所有这些技术都在硬件中实现,并节省了昂贵的CPU核心。它们的集成使得高效运作、连接扩展成为可能。

参考