1、ODCC-2020-05006 开放式拥塞控制 OpenCC 技术白皮书 I 开放式拥塞控制OpenCC技术白皮书 编号ODCC-2020-05006 开放数据中心委员会 Open Data Center Committee ODCC-2020-05006 开放式拥塞控制OpenCC技术白皮书 II 目录 开放式拥塞控制 OpenCC 技术白皮书.1 1 引言.1 2 智能网卡的发展趋势.2 2.1 以太网端口速率发展趋势.2 2.2 网络资源成为瓶颈,需要低时延、高带宽.5 3 智能网卡中的拥塞控制.6 3.1 拥塞控制的发展.6 3.2 拥塞控制的分类.7 3.3 典型的拥塞控制算法.8
2、4 开放式拥塞控制 OpenCC.11 4.1 开放式的拥塞控制机制.11 4.2 下一代 RDMA 网络 OpenCC 技术框架.11 5 OpenCC 接口参考规范.12 5.1 数据通路接口(Datapath Interface).12 5.2 网络接口(Network Interface).12 5.3 应用接口(Application Interface).13 5.4 编程接口(Program Interface).13 6 OpenCC 应用场景举例.13 6.1 更新智能网卡的 CC 算法.13 6.2 不同智能网卡之间的互联互通.14 6.3 区分流量类型的 QoS 保障.1
3、4 7 结论与展望.15 ODCC-2020-05006 开放式拥塞控制 OpenCC 技术白皮书 1 开放式拥塞控制OpenCC技术白皮书 1 引言 早期的网卡仅实现数据链路层和物理层的功能,而端系统CPU负责处理网络协议栈中更高层的逻辑。CPU按照网络协议栈中传输层、路由层的逻辑,负责数据包的封装和解封;网卡则负责更底层的数据链路层帧的封装和解封,以及物理层电气信号的相应处理。随着云数据中心的发展和大规模部署,商用服务器对于线速I/O的低延迟处理需求达到了前所未有的高度,硬件无法跟上数据中心网络工作负载的快速变化。现今,业界普遍的百G级带宽、微秒级延时的高性能网络设施需要端系统协议栈具备极
4、高的处理速度,因此将协议栈的处理卸载到网卡ASIC芯片上实现是目前普遍采用的方式;同时为应对层出不穷的虚拟化需求,网络协议栈所包含的处理功能也需要频繁更新,这又使将协议栈的处理卸载到网卡ASIC芯片上变得非常困难。在此背景下,智能网卡(Smart NIC)技术开始走进人们的视野并逐渐得到普及,由于其优越的性能,得到了日益广泛地应用。究竟什么是智能网卡?不同于传统网卡,智能网卡同时具备高性能及可编程的能力,既能处理高速的网络数据流,又能对网卡进行编程,实现定制化的处理逻辑。智能网卡通过执行网络数据通路处理以卸载服务器中的CPU负载,从而提高了网络传输性能。智能网卡的出现看似从逻辑上缓解了CPU的
5、负担,但如何能完成CPU的处理效率成为智能网卡生存考验的第一关。然而随着RDMA(Remote Direct Memory Access)技术的出现,解决了这个问题。RDMA技术全称远程直接数据存取,当一个应用执行RDMA读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地SmartNIC,然后经过网络传送到远程NIC。RDMA技术给包括智能网卡在内的数据中心网络带来了极大的性能提升,但将RDMA应用在SmartNIC上仍然有很多挑战,有很多问题亟待解决。ODCC在智能网卡领域业已开展了多年的研究,并且成立了Open Smart
6、NIC项目。2019年,ODCC将多年的研究成果进行了发布,包括开放智能网卡发展报告一份,以及开放智能网卡软件设计参考规范、开放智能网卡硬件设计参考规范两份。这些ODCC-2020-05006 开放式拥塞控制OpenCC技术白皮书 2 规范为开放智能网卡的进一步研究及开发提供了重要的参考依据。本白皮书在ODCC智能网卡研究的基础上,针对当前的高性能网络应用,对智能网卡的开放拥塞控制进行了一些研究和探索,将部分成果在文中公开。与此同时,项目组联合业界同行,制定了开放拥塞控制OpenCC的接口规范,旨在给业界提供一份相关领域技术的参考。2 智能网卡的发展趋势 2.1 以太网端口速率发展趋势 大数据