GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

改进 TCP,阿里提出高速云网络拥塞控制协议 HPCC

2019 年 6 月 04 日

改进TCP,阿里提出高速云网络拥塞控制协议HPCC

TCP 是最基础的网络传输层通信协议,其拥塞控制算法是为 Internet 这种相对低速、高延迟的网络环境设计的。在新一代的高速云网络中,TCP 的拥塞控制算法无法充分发挥底层网络能力,而现有高速网络拥塞控制算法(如:RDMA 协议中的拥塞控制算法 DCQCN)又存在严重的稳定性风险。阿里巴巴的技术人员研发了新一代高速云网络拥塞控制协议 HPCC (High Precision Congestion Control),旨在同时实现高速云网络的极致性能和超高稳定性。目前这一成果已被计算机网络方向世界顶级学术会议 ACM SIGCOMM 2019 收录,引起了国内外广泛关注。



根据 IETF 的 RFC 793 定义,TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在过去的几十年中,TCP 相关的基本操作未做太大改动,但其拥塞控制算法经历了几代学者和工程师的迭代更新,比如 RFC2581《TCP 的拥塞控制》、加州理工学院研发的 FAST TCP 以及目前在数据中心网络中被广泛使用的 DCTCP 等。


然而,在过去几十年中发生变化的不仅仅是算法本身,网络环境也发生了巨大变化,尤其是云计算出现之后,云租户和应用对网络带宽、延迟以及稳定性的要求比过去的互联网用户提升了一到两个数量级,这导致传统 TCP 协议开始难以适用于云网络(数据中心网络)的高速、低延迟环境。虽然 RDMA 等新一代技术摒弃了传统 TCP 中的一些做法,以换取网络性能的大幅提升,但是 RDMA 拥塞控制算法本身蕴含着相当高的不稳定性风险,阻碍其在大规模网络中得到广泛应用。阿里巴巴的一群工程师近期成功研发出新一代、超高性能云网络环境下对传统 TCP 和 RDMA 拥塞控制算法的替代方案–HPCC,InfoQ 第一时间对 HPCC 团队成员阿里云智能研究员张铭、阿里云智能高级技术专家刘洪强进行了独家专访,探究 HPCC 的研发背景及实际意义。


HPCC (High Precision Congestion Control-高精度拥塞控制)

随着云计算的迅猛发展,传统 PC 时代的小型机房的网络架构已逐渐退出历史舞台,取而代之的是以数据中心为核心的超大规模、云网络架构。在这样的环境下,目前主流的 TCP 和 RDMA 拥塞控制算法(例如 DCTCP,DCQCN)要么无法充分发挥云网络低延时、高带宽的优势,要么无法在大规模网络环境下保持稳定。这给包括阿里巴巴在内的大型云计算服务商们带来了严峻的运营和技术挑战。


HPCC 是在高性能的云网络环境下,对现有的拥塞控制的一种替代方案。它可让数据中心网络中的报文稳定的、以微秒级的延迟传输。当前主流的拥塞控制算法主要依赖于端的信息(例如丢包信息,延迟信息),以及极为有限的设备反馈信息(如 1 个比特的 ECN)做拥塞控制,而 HPCC 则创新性地运用了最新网络设备提供的细粒度负载信息而全新设计了拥塞控制算法。在 HPCC 的帮助下,主流的云应用,比如分布式存储、大规模机器学习,高性能计算等性能会得到几倍到几十倍不等的提升;云租户相应地将会感受到延迟显著降低,效率和性价比大幅提升。


核心:拥塞控制

无论是 TCP、RDMA 还是其各种改进版本,其核心都在围绕拥塞控制算法进行,这也是高性能云网络中必须解决的痛点,而 HPCC 的核心就是重新定义下一代拥塞控制机制。张铭表示,HPCC 的思路和框架同样可以用于改进 TCP 或者 RDMA 等其他传输层协议。


在计算机网络里,传统的拥塞控制算法主要通过在端上调节流量,以维持网络最佳平衡状态。发送方根据网络承载情况控制发送速率,以获取高性能并避免拥塞崩溃(congestion collapse)导致网络性能下降几个数量级,并在多个数据流之间产生近似最大化最小流的公平分配。发送方与接收方确认包、包丢失以及定时器情况,估计网络拥塞状态,从而调节数据流的发送速率,这被称为网络拥塞控制。


HPCC 的核心理念是利用精确链路负载信息直接计算合适的发送速率,而不是像现有的 TCP 和 RDMA 拥塞控制算法那样迭代探索合适的速率;HPCC 速率更新由数据包的 ACK 驱动,而不是像 DCQCN 那样靠定时器驱动。


在整个研发过程中,刘洪强提到,最难的其实是思想和理念上的突破,拥塞控制算法已经被研究了数十年,只有突破传统的思维方式才可能得到新的收获;其次,完成这项研究需要同时聚齐懂理论、懂工程实践、懂硬件和懂运维的人,这本身就实属不易。最后,还需要攻克各种工程难关,将算法付诸实践。


当然,真正实现 HPCC 的大规模、商业化落地还需要一段时间,但阿里内部已经在模拟真实网络的实验环境下进行了多方面验证,其效果与设想高度一致。


经过各种软硬件的精巧设计,阿里工程团队已完整和高效地实现了 HPCC 的软硬件协议栈。实验表明,HPCC 在拥塞条件下可以将延迟降低一到两个数量级,且收敛速度极快;一旦出现空闲带宽,立刻会被充分利用,整体网络利用率维持在相当高的水平,而延迟则接近于理想值。张铭强调,在无拥塞的情况下,数据流的传输速度都很快;而一旦发生拥塞,受影响的数据流从不稳定状态恢复到稳定状态的时间需要越短越好,HPCC 的收敛速度和稳定性都要远优于目前的主流算法。


研究价值

目前业内对网络传输协议的选择基本分为两大类:一类是以 TCP 为主,持续探索如何将 TCP 的性能调至更优的状态;另一类则希望研究可以取代 TCP 的新传输协议。张铭解释道,HPCC 的出现为下一代拥塞控制开拓了一个全新的方向,无论是 TCP,还是 RDMA,抑或是某种新的传输层协议,都可以直接使用 HPCC,或是在其基础上构建适用于高性能云网络的拥塞控制机制。


对云上租户而言,HPCC 的价值在于可以让其享受高速的网络服务,而不需要担心稳定性问题;网络资源利用率提升的同时会带来云使用成本的降低;而对性能要求极高的用户(如 HPC),则更是至关重要。


结束语

对基础科学的投入和支持不能只停留在理论层面,还需要紧密联合一线工程师与应用场景,也许这正是阿里巴巴成立达摩院支持基础研究的原因。正如阿里云智能总裁,达摩院院长张建锋在 2019 年阿里云峰会上所说:


阿里巴巴的科研力量将融会贯通。达摩院的能力将与云全面结合。未来还将加大研发投入,扩大云的技术代差优势。


目前,该项研究的学术论文《HPCC: High Precision Congestion Control》已经被网络顶级学术会议SIGCOMM 2019录取,该论文详细介绍了阿里巴巴自研的新一代高速网络拥塞控制协议。


“现代数据中心中数以万计的处理器相互之间的通信如何被组织在一起来避免他们之间通信通道的拥塞呢?这是我在杭州初次遇到这一群阿里巴巴专家时,他们正在尝试解决的问题。… 我相信我们在这个领域已经做出了非常重要的进展,而且我们非常高兴我们的阶段性工作已经被 SIGCOMM 2019 接收”–HPCC 论文的合作作者,英国皇家科学院院士,剑桥大学Frank Kelly教授表示。


关于 SIGCOMM

SIGCOMM 是 ACM 组织在网络领域的旗舰型会议,也是目前国际网络领域的顶尖会议。几十年以来,多项经典研究成果都出自 SIGCOMM 大会,比如《Development of the Domain Name System 》(SIGCOMM 1988),阐述了互联网域名管理系统(DNS),这套系统已经被使用几十年,贯穿了互联网的发展史;《Congestion Control in IP/TCP Internetworks 》(SIGCOMM 1987)和《Congestion Avoidance and Control 》(SIGCOMM 1988),奠定了互联网 TCP 拥塞控制的基础,其算法设计思想一致沿用至今; 《Ethan: Taking Control of the Enterprise 》(SIGCOMM 2007),软件定义网络(SDN)思想的开山之作,SDN 使得大规模网络虚拟化成为可能,让“云网络”的概念落地。


2019 年 6 月 04 日 08:4018847
用户头像
赵钰莹 InfoQ高级编辑

发布了 693 篇内容, 共 406.4 次阅读, 收获喜欢 2265 次。

关注

评论 3 条评论

发布
用户头像
太强了
2019 年 06 月 04 日 11:08
回复
用户头像
基于TCP的拥塞控制算法,学术界进行了很多改进,阿里提出的HPCC可以理解为在高性能云网络环境下,对现有拥塞控制算法的替代方案,其思路和框架同样可以用于改进 TCP 或者 RDMA 等其他传输层协议。
2019 年 06 月 04 日 09:17
回复
HPCC是率先在RDMA上进行实现的,然后才引入到TCP。这个改进严重依赖交换机的INT能力,目前要全面铺开还需一到两年。
2019 年 08 月 31 日 07:28
回复
没有更多了
发现更多内容

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

Week 13 学习总结

Jeremy

USDT跑分承兑系统开发,区块链支付平台搭建

13823153121

哈哈,成为作者了

大海

Clickhouse在大数据分析平台-留存分析上的应用

小小的一朵云

大数据

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端开发 Ubuntu20.04

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

架构师训练营-第1周学习总结(1期)

阿甘

UML

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

小小的一朵云

大数据

Week 13 命题作业

Jeremy

架构师训练营-第1周课后作业(1期)

阿甘

读书笔记之《普罗普:故事形态学》

AI代笔

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

彻底理解JavaScript执行上下文

Walker

Java 前端 this指针 函数执行

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

牛批!清华毕业的Java大牛用一个坦克大战游戏项目来演示设计模式

Java成神之路

Java 学习 编程 程序员 设计模式

介绍

剑心

学习

如何让知识图谱告诉你“故障根因”

华为云开发者社区

华为云 知识图谱 图谱

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

go golang 微服务 身份认证

我写了一个TypeScript虚拟机。

渔子长

Java typescript 前端 deno Node

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

区块链合约层是一种自动执行的数字协议

CECBC区块链专委会

区块链 智能合约

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

甲方日常 15

句子

工作 随笔杂谈 日常

开源决策树工具xDecision简介

赫杰辉

决策树 可视化 简化代码

如何正确设置Java.home

谷鱼

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

DNSPod与开源应用专场

DNSPod与开源应用专场

改进TCP,阿里提出高速云网络拥塞控制协议HPCC-InfoQ