看这个 SUNH! Scale-Up Network Header (SUNH) protocol for AI

终于有人在数据中心掀 TCP/IP 了,并提了 draft Scale-Up Network Header (SUNH),很看好。

结构决定行为,数据中心不同于广域网,特别是 AI 集群,它更像是主机总线的延伸而非缩小版的 TCP/IP 网络,DCN 跑 TCP/IP 除了稳定性和兼容性,保护投资的优势,当性能压榨到字节时,显然既昂贵,又低效。

SUNH 要点有三,全由 DCN 结构决定:

  • 兼容标准以太网,保留了已部署的硬件投资;
  • 压缩了地址空间,AI 网络扁平化,主机数量不过万,仅内部通信;
  • 取消了 UDP 封装,紧凑,结构化协议字段,无需通用解复用机制;

举一个简单例子,对比 TCP 和 RDMA RC。

通用 TCP 不假设主机上层协议,但却考虑到主机本身的连接数能力和实际应用模式,确定了 16bit 端口号,而其它的分层唯一标识唯一标识从 2 个 32bit IP 地址的主机粒度一直延伸到 1byte 的 seq,总共 2·32 bit 地址 + 2·16bit 端口 + 32bit seq 足够唯一标识每一个字节,最大限度适应了尽力而为网络的所有不确定性,但同样由于分层特性,TCP 对端口的分配策略不做过多假设,为确保连接唯一性,秒级 timewait 等连接管理机制会促使主机选择 “几乎肯定可以快速找到的下一个可用端口”,这非常好。

但在结构完全不同的 DCN,TCP/IP 良好的设计特性反而成了累赘,简单说两个:

  • 16bit 端口号不够用,因为连接极多,RTT 极短,连接周期极短,端口号很快回绕,与 timewait 冲突,优化端口选择算法,修改 timewait 时间等花活层出不穷;
  • 32bit seq 粒度过细,在 DCN 的 “短肥” 结构中,seq 回绕,PAWS 问题成为棘手讨厌的问题;

这种场景下,高层的 RDMA RC 则更加适合,它采用高度结构化的 QP,PSN 管理,且 PSN 标识包而非字节来规整化协议处理逻辑,这意味着 TCP/UDP 封装都是不必要的,甚至 IP 封装也是过度的。专为 AI 优化的 DCN 环境,传输协议应该参考 PCIe,nvlink,IB 等,而不是 TCP/IP,明显它们属于更 “低层”,意思就是 TCP/IP 本身都有必要掀翻了重构,通用多跳逐跳路由,解复用是完全多余的。

除此之外,扁平化,少跳等拓扑特征对传输协议策略也有甚至决定性的风格影响,与 TCP/IP 相比,这涉及到乱序,多路径收益和代价之间的权衡风格,也涉及拥塞控制的风格,比如级联,收敛比等属性深刻影响着流量的模式是持续拥塞,渐进拥塞,突发,还是统计平缓,进而影响拥塞控制策略,这些都需要与传统 TCP/IP 故意不同,因为不相似就难相容。

但如今几乎所有 DCN 协议均封装在 TCP/IP,这种方式在 AI 集群已经成了瓶颈,SUNH 针对小规模,扁平拓扑,低跳数的 AI 集群做了适配,降低协议开销,加速寻址,兼容以太网,平衡了效率和通用性,挑战在于标准化支持的生态推广,而这不仅仅是技术范畴的问题,最终徘徊在技术和商业利益之间的解决方案大概率还是个四不像,就像曾经思科风格的协议。

考虑到包括 AI 集群在内的数据中心高性能网络的特征,有必要突破以往目标为博弈均衡的传输协议约束,改为协作式或许更为合适,以 Credit 管理为例,协议头里预留字段,每个报文中均携带足够的 Credit 信息,并且交换机可以根据实际情况修改所有报文的对应字段,以完善带宽分配和预留,这就有效解决了 incast 突发带来的一系列问题,同时也节省了主机拥塞控制的算力。当前的 ECN 就有这方面的意思,但还尚未完善。

一个现实中的例子,在一个大型集贸市场,你很难跟别人错时共享一个摊位,因为你不可能即时认识觊觎那个摊位的所有人,所以大家只能付出一些可接受的代价(比如排队时间)博弈共享,但你很容易跟自己邻居共享一个摊位,因为你很容易了解到他早上卖肠粉,而你晚上卖卤菜,同时你们还可以把摊位租给白天卖面点的,租金两人平分。

总之,在一个受控的,规则的好网络(DCN 大多符合),要用最大胆但最简单的策略处理传输(例如 NACK-GBN,ECN,Credit),反之,再一个分布式的,不规则的尽力而为网络(比如广域网),则要用最保守谨慎的策略(例如 SACK),哪怕复杂一些的策略处理传输,背后的理念是没有免费的午餐,捡自家的特产来交易。好网络中异常是小概率事件,坏网络中异常是常态,两种结构不同的网络决定了两种截然不同的策略。这方面 TTPoE/Homa 和 TCP/QUIC 就是对比双方典型的实例。

再次申明我的观点,TCP/IP 并不适合所有场景,点名就是不适合数据中心,特别是 AI 集群等高性能场景,它需要有自己的通信生态,彻底脱离 TCP/IP。

浙江温州皮鞋湿,下雨进水不会胖。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐