元記事:
知らない or 理解していないところを補填しながら読んでいきます。
10Gを超える高速ネットワークトラフィックの場合、すべてのパケットをアンパックすると、多くのリソースを消費することになります。第一世代のSDR InfiniBandは10Gbpsのレートで動作するため、データ伝送帯域幅の増加やCPU負荷の軽減に加え、CPUの負荷を軽減してネットワーク利用率を高める高速ネットワーク伝送が可能です。
ここでのアンパックとは受信側が分割されたデータを再結合・処理すること。 10Gbpsを超えるような大きな帯域を扱う場合、従来のTCP/IP通信では、受信側でパケットをすべてアンパックする際に多くのCPUリソースが消費されます。これに対してInfiniBandは、HCA (Host Channel Adapter) と呼ばれる専用ハードウェアにオフロードする仕組み(RDMAなど)を備えており、CPUに大きな負荷をかけずに高スループットを実現する設計になっています。
ネットワークのレイテンシーに関しても、InfiniBandとイーサネットは大きく挙動が異なります。イーサネット・スイッチは通常、ネットワーク・トランスポート・モデルのレイヤー2技術として、ストア・アンド・フォワードとMACテーブル・ルックアップ・アドレッシングを採用しています。イーサネット・スイッチの処理フローは、IP、MPLS、QinQなどの複雑なサービスを考慮しなければならないため、InfiniBandスイッチの処理フローよりも長くなります。
- ストア・アンド・フォワード (Store and Forward)
- MACテーブル・ルックアップ・アドレッシング
- MPLS (Multi-Protocol Label Switching)
- IPヘッダを詳細に解析するのではなく、MPLSラベルを見て次の転送先を決定すること。MPLSラベルは20ビットで、IPヘッダよりも短いため、処理が高速になる。
- QinQ (IEEE 802.1ad)
- VLANタグを二重に付加(スタック)する技術で、「タグ付きVLANをさらに別のVLANでカプセル化する」 イメージ。VLANタグは12ビットで、QinQの場合は2つのVLANタグを付加するため、24ビットの情報を見ることになる。
一方、InfiniBandスイッチの場合、レイヤ2処理は非常に簡単です。16ビットのLIDで転送パス情報を検索するために使用できる唯一のものです。並行して、Cut-Through技術を活用することで、転送遅延を100ns以下にまで大幅に短縮し、イーサネット・スイッチよりも大幅に高速化します。
イーサネットでは、48ビットのMACアドレスをベースにスイッチがフレームの宛先を判断します。フレームの宛先MACアドレスに加えて、VLANタグ(場合によっては二重タグ/QinQ)やIP情報などを考慮するケースでは、転送決定のために多層のヘッダをチェックする必要があり、結果的にレイテンシが大きくなる要因となります。
並行して、Cut-Through技術を活用することで、転送遅延を100ns以下にまで大幅に短縮し、イーサネット・スイッチよりも大幅に高速化します。
Cut-Through技術とは、ネットワーク・スイッチがフレーム(パケット)を すべて受信し終わる前 に、ヘッダ情報(宛先情報など)を読み取った段階で すぐに転送処理を開始する 方式を指します。従来の ストア・アンド・フォワード方式では、フレームを最後まで受信してエラー検知を行った後に転送を開始するため、その分だけ転送遅延が増える。
InfiniBandと比較して、イーサネット・ネットワークにはスケジューリング・ベースのフロー制御メカニズムがありません。そのため、パケット送信時に相手側が輻輳するかどうかを保証することができません。ネットワークにおける瞬間的なトラフィックの急激な増加を吸収するためには、これらのメッセージを一時的に格納するために、スイッチ内に数十MBのキャッシュ領域を確保する必要があり、これがチップリソースを占有します。このため、同じ仕様のイーサネット・スイッチのチップ面積は、InfiniBandのそれよりも大幅に大きくなり、コストだけでなく消費電力も大きくなります。
InfiniBandはL2レベルでの輻輳制御(クレジットベースのフロー制御)があり、スイッチやエンドポイントでの一時的なバッファの容量を小さくできる。 クレジットベースのフロー制御では、送信先(受信側)が「どれだけのデータ量を受け取れるか」を“クレジット”という形で送信元に知らせる仕組み。