一、IPoIB的核心設計理念
IPoIB(IP over InfiniBand)是一種在InfiniBand網絡上承載IP流量的技術,其核心目標是在不修改上層應用的前提下,利用InfiniBand的高帶寬和低延遲特性。與自定義協議棧不同,IPoIB通過深度集成到Linux內核TCP/IP協議棧中,將InfiniBand設備抽象為標準的網絡接口(如ib0
),從而實現對現有IP應用的完全兼容。
二、協議棧架構與模塊交互
IPoIB位于Linux內核網絡子系統的鏈路層(L2),其架構分為三層:
-
硬件抽象層:通過InfiniBand Verbs接口(如
ib_post_send
)直接操作網卡硬件。 -
驅動適配層:實現
net_device
接口,處理IP數據包的封裝/解封裝。 -
協議棧集成層:與IP層、鄰居子系統、路由模塊交互。
// 驅動注冊示例(簡化版) static const struct net_device