Tesla は、機械学習システムをサポートするデータセンターやインフラストラクチャにおけるトラフィック伝送の遅延を軽減するために設計された TTPoE (Tesla Transport Protocol over Ethernet) ネットワーク プロトコルに関連する開発結果を発表しました。 Tesla は TTPoE の標準化を目指しており、この目標を達成するために UEC (Ultra Ethernet Consortium) に参加しています。 TTPoE 実装コードは C で書かれており、GPLv2 ライセンスの下でオープンされています。
このプロトコルは、低遅延と高データ レートを必要とするアプリケーションで TCP を置き換えるように設計されています。 TCP と同様に、TTPoE プロトコルでは、送信されたすべてのデータの配信を完全に保証しながら、パケットのドロップと再送信が可能です。 TTPoE は、100Gbps を超える帯域幅のネットワークで使用するように設計されており、元々は DOJO スーパーコンピューター内のノード間の相互作用を確保するためにハードウェア レベルで実装されました。
Infiniband などの既存のソリューションの代わりに TTPoE を導入したのは、DOJO クラスターへの新しいノードの追加を簡素化することを目的としており、AI モデルのトレーニング時に視覚情報を処理するように設計されていますが、ノード間で非常に大量のデータを転送する必要があるため、最小遅延は数十マイクロ秒を超えません。プロトコルの要件の中で、完全にハードウェア レベルで比較的簡単に実装できる可能性も指摘されました。その結果、TTPoE プロトコルが作成され、通常のイーサネット上で実行され、ネットワーク スタックの TCP 層が TTP プロトコルに置き換えられ、より単純なステート マシンを使用して実装されました。イーサネットを使用することで、既存のイーサネット スイッチを使用してクラスタの運用を組織化できるようになりました。

TCP と比較して TTP の待ち時間を短縮するために、接続待機状態 (TIME_WAIT) が削除され、接続終了のネゴシエーションに必要な手順の数が削減されました。 TCP では、接続の終了は、FIN パケットの送信、FIN パケットの受信確認の待機、確認のための確認応答の送信、および順序が乱れた場合にソケットをしばらく TIME_WAIT 状態にすることになります。遅延パケットの到着。 TTP では、接続を閉じるには、close オペコードを送信し、閉じの確認 (CLOSE、CLOSE-ACK) を受信するだけで十分です。
同様の方法で、TTP は接続のオープンを最適化します。新しい接続の一般的な TCP の 3 段階ネゴシエーション (SYN、SYN-ACK、ACK) の代わりに、TTP は 2 段階 (OPEN、OPEN-ACK) を使用します。 TTP に導入された簡略化により、ソフトウェアは接続を明示的に開く必要がなく、データを送受信するアドレスを指定するだけで済みます。
輻輳制御を管理するために、TTP は TCP と同様にパケット ドロップを使用しますが、パケット損失のレベルに応じてサイズが変化するスライディング ウィンドウに基づく複雑な輻輳制御アルゴリズムは使用しません。 TTP では、ウィンドウ サイズはパケット損失に基づいて変化しません。固定バッファがいっぱいになるとパケットの送信が停止され、確認応答が到着するとエントリがバッファから削除され、パケット損失はバッファに格納されているデータを再送信することで補われます。 。このアプローチでは遅延が軽減される一方で、パケット損失の多い低速かつ低品質のネットワークでの TTP の効果的な使用が妨げられます。
Опубликованная программная реализация включает в себя модуль modttpoe.ko для ядра Linux, позволяющий организовать прямой канал связи между несколькими узлами в одном сегменте сети Ethernet, а также модуль modttpip.ko с реализацией TTP-шлюза (TTP-GW, Tesla Transport Protocol Gateway), позволяющего использовать штатный стек IPv4 поверх TTPoE без необходимости внесения изменений в приложения.
出所: オープンネット.ru
