誰かがIPoIBの概念とTCP infinibandを介して説明できますか?ネイティブのinfinibandによって提供される全体的な概念とデータレートは理解していますが、TCPとIPoIBは適合します。なぜそれらが必要で何をするのですか?誰かが自分のネットワークがIPoIBまたはTCP infinibandを使用していると言いますか?どちらが良いですか?私は強力なネットワーキングのバックグラウンドなので、詳しく説明できるといいですね。
ご協力ありがとうございました。
InfiniBandアダプター(「HCA」)は、ネイティブの「動詞」プログラミングインターフェイスを介して使用できるいくつかの高度な機能を提供します。
IPoIB(IP-over-InfiniBand)は、IBを介してIPパケットを送信する方法を定義するプロトコルです。たとえば、Linuxには、このプロトコルを実装する「ib_ipoib」ドライバーがあります。このドライバーは、システム上の各InfiniBandポートに対してネットワークインターフェイスを作成し、HCAを通常のNICのように機能させます。
IPoIBはHCA機能を十分に活用していません。ネットワークトラフィックは通常のIPスタックを通過します。つまり、すべてのメッセージにシステムコールが必要であり、ホストCPUはデータをパケットに分割するなどの処理を行う必要があります。ただし、通常のIPソケットを使用するアプリケーションは、 IBリンクのフルスピード(ただし、CPUは、おそらく32 Gb /秒のQDR IBリンクを使用するのに十分な速度でIPスタックを実行できません)。
IPoIBは通常のIP NICインターフェースを提供するため、その上でTCP(またはUDP)ソケットを実行できます。TCP =最近のシステムを使用すると、10 Gb /秒をはるかに超えるスループットが可能ですが、これはかなりの量のCPUを消費します。質問に対して、IPoIBとTCP InfiniBandとの間に実際の違いはありません- -どちらも、IBハードウェア上で標準のIPスタックを使用することを指します。
実際の違いは、通常のソケットアプリケーションでのIPoIBの使用と、ネイティブIB動詞インターフェイスに直接コーディングされているアプリケーションでのネイティブInfiniBandの使用との違いです。ネイティブアプリケーションは、ほとんどの場合、ネットワークのCPU使用量を抑えながら、はるかに高いスループットと低い待機時間を実現します。