AIクラスター、主にGPU間の高速低遅延接続を実現するためのネットワークは通常のネットワークと何が違うのでしょうか。製品を売りたいベンダーは基本的に従来との違いを誇張して新製品の販売を目指しますが少し冷静に何が違うのか考えてみましょう。
まず、通常のネットワークと違うことは通信の双方が自分の管理下であり、途中の経路に使用されている機材も自分の管理下であると言うことです。その結果、なんでも新しい機能を実装することができます。
細かい機能差よりはまず、アプリケーションも含めて一つの組織の管理下にあるが故に最適化の為に様々な工夫が可能であることが従来の相手不特定が前提であるインターネット技術との違いです。
インターネットにおけるフローコントロールの大半はTCPによって行われています。TCPはパケットのドロップによって使用できる帯域を検知してフローコントロールをしています。この方式は、様々な環境で使える優れたものではありますが、実際に使用できる帯域に対してかなり低めになります。
使用できる帯域を最大に使うためには、より積極的に帯域を使用するアプリケーションに伝える仕組みが必要です。
フロー制御がデータを送り出している機能に認識されなければなりません。たとえネットワーク区間でフロー制御が機能しパケットロスがゼロになっても端末のNICのキューで廃棄が起きてしまえば意味が無いのです。
複数の経路(ECMP)がある場合、パケットの到達順序が変わらないように同じフローは同じ経路を流す必要があります。つまり、パケット単位ではなくフロー単位に使う経路が割り当てられます。
このフローの容量が回線に対して十分に細い場合には基本的に問題にならないのですが、太いフローの場合はどちらかに偏る事があります。これを避ける拡張機能は様々な名前で実装されています。
TCP/IPはパケット単位で処理されますが、それぞれのパケットのサイズは様々です。異なるサイズのパケットが混在することが各インターフェースでのキュー制御を難しくしています。このため、従来の大型ルータでは内部的にはパケットをセルと呼ばれる固定長の短い塊に分割して高度なキュー制御を行い最終的に外部に出す手前でパケットに再構成をする方式が一般的でした。
この処理をそのまま外部のインターフェスに適用し複数の装置間もセルでのデータ交換を行う方法があります。
固定化されたパケット長によりジッタ特性を押さえた転送処理が行え、場合によってはセルからパケットに戻すときの制御によってセルの伝送パスを不定にすることにより帯域の最適化も行えます。