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