流量控制、可靠性与异常处理
多层次可靠性体系 · 基于信用的流量控制 · 主动预防与被动响应
🛡️
完整的多层次可靠性体系
InfiniBand 的可靠性并非单一功能,而是一个多层次、从主动预防到被动响应的完整体系。
💳
基于信用的端到端流量控制 - 无损网络基石
1信用许可机制
发送方必须拥有来自接收方的"信用 (Credit)"才能发送新请求。信用代表接收方可用的接收缓冲区数量
2ACK包返还信用
接收方处理数据后,通过ACK包将新的信用额度告知发送方,ACK包包含"信用计数"字段。
3自动暂停机制
发送方耗尽信用时,硬件自动暂停发送,直到收到新ACK包获得补充,从源头杜绝缓冲区溢出。
4两级流量控制
链路层:基于VL的交换机端口缓冲区管理
传输层:端到端QP间的信用机制
📚
图书馆借书系统类比理解
📖
凭证借书
你(发送方)必须持有图书馆(接收方)的可还书凭证(信用)才能还书(发送数据)
🧾
收据补充
图书馆整理完毕后给出收据(ACK包):"又整理出X个空书架,获得X张新凭证"
🚫
防止爆仓
没有凭证就等待,确保不会把书堆到门口导致书架(缓冲区)爆仓
否定确认 (NAK)
检测到错误时返回NAK包:
PSN序列错误:丢包或乱序
无效请求:R_Key错误等
RNR NAK:接收方未就绪
🔄
重试机制
超时重传:硬件定时器自动重传
重复处理:接收方识别并丢弃重复包
错误状态:重试耗尽后进入错误状态
🚀
自动路径迁移 (APM)
硬件触发:重试计数器耗尽时自动切换
软件触发:基于性能监控的预防性切换
• 依赖SM提供的备用路径信息