我们在之前的文章里讲过,RDMA RC(可靠连接)模式像一条点对点的专用通道:发送端发数据,接收端确认,丢了包硬件重传。一切看起来很简单,但有一个关键问题没解决:发送端怎么知道接收端“吃得下”自己发过去的数据?如果发送端不管不顾地疯狂发,而接收端处理不过来,数据就会在接收端网卡的缓冲区里堆积,最后溢出丢包。丢包触发RC重传,延迟飙升,性能崩盘。RDMA设计了三层流控来避免这种事:端到端信用流控(RC Credit):防止接收端网卡硬件的缓冲区溢出。RNR NAK:防止接收端应用程序还没来得及准备接收缓冲区。PFC(优先级流控):它跟RC Credit完全不同——它不是在接收端管,而是在交换机里管,防止网络中间的交换机缓冲区溢出。这篇文章彻底把这三层拆清楚,特别是RC Credit这个最容易被忽略的机制