网络在工作的过程中,可能会出现突发流量,造成接收端来不及处理,引起拥塞和丢包 。
为了应对这种情况,DDC采取了基于VOQ+Cell的转发机制 。

文章插图
发送端从网络接收到数据包之后,会分类到VOQ(虚拟输出队列)中存储 。
在发送数据包前,NCP会先发送Credit报文,确定接收端是否有足够的缓存空间处理这些报文 。
如果接收端OK,则将数据包分片成Cells(数据包的小切片),并且动态负载均衡到中间的Fabric节点(NCF) 。
如果接收端暂时没能力处理报文,报文会在发送端的VOQ中暂存,并不会直接转发到接收端 。
在接收端,这些Cells会进行重组和存储,进而转发到网络中 。
切片后的Cells,将采用轮询的机制发送 。它能够充分利用到每一条上行链路,确保所有上行链路的传输数据量近似相等 。

文章插图
轮询机制
这样的机制,充分利用了缓存,可以大幅度减少丢包,甚至不会产生丢包情况 。数据重传减少了,整体通信时延更稳定更低,从而可以提高带宽利用率,进而提升业务吞吐效率 。
- PFC单跳部署,避免死锁
前面我们提到,RDMA无损网络中引入了PFC(基于优先级的流量控制)技术,进行流量控制 。
简单来说,PFC就是在一条以太网链路上创建 8 个虚拟通道,并为每条虚拟通道指定相应优先级,允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过 。

文章插图
PFC可以实现基于队列的流量控制,但是,它也存在一个问题,那就是死锁 。
所谓死锁,就是多个交换机之间,因为环路等原因,同时出现了拥塞(各自端口缓存消耗超过了阈值),又都在等待对方释放资源,从而导致的“僵持状态”(所有交换机的数据流永久堵塞) 。
DDC的组网下,就不存在PFC的死锁问题 。因为,站在整个网络的角度,所有NCP和NCF可以看成一台设备 。对于AI服务器来说,整个DDC,就是一个交换机,不存在多级交换机 。所以,就不存在死锁 。

文章插图
另外,根据DDC的数据转发机制,可在接口处部署ECN(显式拥塞通知) 。
ECN机制下,网络设备一旦检测到RoCE v2流量出现了拥塞(内部的Credit和缓存机制无法支撑突发流量),就会向服务器端发送CNP(Congestion Notification Packets,拥塞通知报文),要求降速 。
- 分布式OS,提升可靠性
最后再看看管理控制平面 。
前面我们提到,在DDC架构中,框式设备的管理功能变成了NCC(网络云控制器) 。NCC非常重要,如果采用单点式的方式,万一出现问题,就会导致整网故障 。
为了避免出现这样的问题,DDC可以取消NCC的集中控制面,构建分布式OS(操作系统) 。
基于分布式OS,可以基于SDN运维控制器,通过标准接口(Netconf、GRPC等)配置管理设备 。这样的话,每台NCP和NCF独立管理,有独立的控制面和管理面,大大提升了系统的可靠性,也更加便于部署 。
█ DDC的商用进展
综上所述,相对传统组网,DDC在组网规模、扩展能力、可靠性、成本、部署速度方面,拥有显著优势 。它是网络技术升级的产物,提供了一种颠覆原有网络架构的思路,可以实现网络硬件的解耦、网络架构的统一、转发容量的扩展 。
业界曾经使用OpenMPI测试套件进行过框式设备和传统组网设备的对比模拟测试 。测试结论是:在All-to-All场景下,相较于传统组网,框式设备的带宽利用率提升了约20%(对应GPU利用率提升8%左右) 。
正是因为DDC的显著能力优势,现在这项技术已经成为行业的重点发展方向 。例如锐捷网络,他们就率先推出了两款可交付的DDC产品,分别是400G NCP交换机——RG-S6930-18QC40F1,以及200G NCF交换机——RG-X56-96F1 。
推荐阅读
- 结对编程的十个场景
- TypeScript 程序员晋级的 11 个必备技巧
- 虚拟现实在工作场所的未来
- 如何检查前端项目中未使用的依赖包?
- 如何使用ELK进行主机黑客攻击企图的检测
- AI十年浮沉,与改变命运的大模型
- “第一批被AI抢走饭碗的人”:我们不该被嘲笑
- 让AI当你的办公助手,还差几步?
- AIGC产品的版权争议有“解药”吗?
- 如何使用Rust构建基本的HTTP Web Server?
