The Need for DCQCN¶
TL; DR¶
这部分内容非常有意义:
- 回顾RDMA演化过程
- 科普相关机制为什么不行
- 我们为什么不喜欢PFC
- 如何设计
microbenchmark
有些观点特别特别重要,我按照顺序依次复盘:
- 云服务需要 “不用于实际服务的CPU开销” 尽可能减少
- TCP远远不行了,我们要用RDMA
- RDMA
- 2000年左右: 基于 Infiniband, 这是一套完整的拓扑体系
- IB link layer (L2) uses hop-by-hop, credit-based flow control to prevent packet drops due to buffer overflow
- lossless L2 allows the IB transport protocol (L4) to be simple and highly efficient
- 2010年左右: 基于Ethernet, 同时也要兼备IP Route的功能
- RoCE (L2) vs. RoCEv2 (L3, 有IP)
- RoCEv2
- L4传输层: 保留Infiniband的L4
- L3网络层: IP and UDP encapsulation
- L2数据链路层: Ethernet Frame (而不是Infiniband的)
- 保留IP: 为了路由
- 保留UDP encapsulation: 为了ECMP
- 2000年左右: 基于 Infiniband, 这是一套完整的拓扑体系
- 相关机制:
- QCN: 不支持L3, 它只支持在L2层面的流控 (
src/dst IP
+flow id
) - DCTCP && iWARP: 有slow start, 不好
- DCTCP && TCP-Bolt: 基于软件层, 没法减少CPU开销
- QCN: 不支持L3, 它只支持在L2层面的流控 (
Conventional TCP stacks perform poorly¶
记住这个观点就行, TCP已经远远out了
PFC has limitations¶
重点关注:
- PFC导致问题的原因
- 如何设计实验 (拓扑; 打流方式)