IEEE 802.1Qbb Priority-based Flow Control (PFC)是一种为数据中心提供无损网络的技术。具体原理如下:
如上图所示,在PFC中将流量按 802.1Q协议中分为8个优先级,每个优先级都各自维护一个队列,分别实现独立的PAUSE机制。即,当下游路由器的输入端口队列长度超过预先设定的门限XOFF时,下游路由器会向上游发送PAUSE帧通知其停止发送。当入端口队列长度低于另一设定的门限XON时,下游向上游发送RESUME帧通知其重新开始发送。按理说,只要在XOFF之前预留足够的缓存以吸收PAUSE帧生效之前到达的数据包就可以保证缓存始终不会溢出,从而实现无损网络。
不同优先级的流量暂停发送的时间长度不同。PFC对具有突发性质的流能够很快地做出反应,但是当某一端口停止发送时,所有需要经过该端口的数据均被阻塞,这很容易产生队头阻塞,拥塞扩散以及死锁的问题。下面我们举例说明PFC中存在的问题。
如上图所示,我们具体举例说明PFC中存在的问题:不公平;受害者流
不公平:考虑左上(a)图中的拓扑结构。四个发送端(H1,H2,H3,H4)通过RDMA操作向接收端(R)发送数据信息,理想情况下,四个发送端应该平等地共享瓶颈链路(T4—R)。但当T4处队列长度超过门限值XOFF时,P2、P3、P4端口处的传输都会被暂停。但是P2端口只承载一个流(来自H4),P3、P4端口承载三个流(来自H1、H2、H3)。因此,H4处的流会获得更高的吞吐量,如图左下(b)。
受害者流:考虑右上(a)图中的拓扑结构。四个发送端(H11、H12、H13、H14)发送数据到(R),同时有受害者流(VS—VR)。T4为(H11、H12、H13、H14)流的瓶颈,当其队列长度超过门限值XOFF时,L3、L4处也会暂停其传入链接,因此L1、L2处也会暂停T1到它的链接。T1被暂停,VS—VR流也会受到影响。右下(b)图显示T3发送到R的发送者的数目越多,VS—VR流受到的影响越大。这是因为T3发送到R流会进一步影响L1、L2处暂停时间。
来源:https://zhuanlan.zhihu.com/p/430539252
DCN是个小的研究方向,研究的人少,感觉资料也很少,也没多少人做分享。