40G / 10Gおよび100G / 25Gイーサネットでのシリアル化およびシリアル化時間


15

私は最近、OpenStackプラットフォームをホストするLeaf / Spine(またはCLOS)ネットワークの最低遅延要件に関する議論に参加しました。

システムアーキテクトは、トランザクション(ブロックストレージと将来のRDMAシナリオ)で可能な限り低いRTTを目指しており、100G / 25Gは40G / 10Gと比較して大幅に削減されたシリアル化遅延を提供すると主張しました。関係者全員が、NICとスイッチポートのシリアル化の遅延よりも、エンドツーエンドのゲーム(RTTを傷つけるか、RTTを支援する可能性がある)に多くの要因があることを認識しています。それでも、シリアル化の遅延に関するトピックはポップアップし続けます。これは、おそらく非常にコストのかかる技術的なギャップを飛ばさずに最適化することが難しいことの1つです。

少し単純化しすぎて(エンコードスキームを省略)、シリアル化時間はビット数/ビットレートとして計算できます。これにより、10Gで約1.2μsで開始できます(wiki.geant.orgも参照)。

For a 1518 byte frame with 12'144bits,
at 10G (assuming 10*10^9 bits/s), this will give us ~1.2μs
at 25G (assuming 25*10^9 bits/s), this would be reduced to ~0.48μs 
at 40G (assuming 40*10^9 bits/s), one might expect to see ~0.3μs
at 100G (assuming 100*10^9 bits/s), one might expect to see ~0.12μs

興味深いことになりました。物理層では、通常、40Gは10Gの4レーンとして行われ、100Gは25Gの4レーンとして行われます。QSFP +またはQSFP28バリアントに応じて、これは4ペアのファイバーストランドで行われることもありますが、QSFPモジュールが独自にxWDMを行う単一のファイバーペアでラムダによって分割されることもあります。1x 40Gまたは2x 50Gまたは1x 100Gレーンの仕様があることは知っていますが、とりあえずそれらを置いておきましょう。

マルチレーン40Gまたは100Gのコンテキストでシリアル化遅延を推定するには、100Gおよび40GのNICとスイッチポートが実際に「ビットをワイヤ(のセット)に分配する」方法を知る必要があります。ここで何が行われていますか?

Etherchannel / LAGに少し似ていますか?NIC /スイッチポートは、1つの「フロー」のフレームを送信します(読み取り:フレームのどのスコープで使用されるどのハッシュアルゴリズムの同じハッシュ結果)を1つのチャネルに送信しますか?その場合、それぞれ10Gや25Gのようなシリアル化の遅延が予想されます。しかし、本質的には、40Gリンクが4x10GのLAGになり、シングルフロースループットが1x10Gに低下します。

ビット単位のラウンドロビンのようなものですか?各ビットは4つの(サブ)チャネルにラウンドロビン分散されていますか?その結果、実際には並列化のためにシリアル化の遅延が小さくなる可能性がありますが、順序どおりの配信に関するいくつかの疑問が生じます。

フレームごとのラウンドロビンのようなものですか?イーサネットフレーム全体(または他の適切なサイズのビットチャンク)が4つのチャネルを介して送信され、ラウンドロビン方式で配信されますか?

それは完全に何か他のものですか?

あなたのコメントとポインタをありがとう。

回答:


14

複数のレーンに分割する部分は、IEEE 802.3ba標準では物理コーディングサブレイヤーと呼ばれます。Gary Nichollによるこのプレゼンテーションでは、その概要を説明しています。

簡単な説明は、データがそれぞれ64ビットのブロックで複数のレーンに分割されることです(クロックリカバリのために66ビットとしてワイヤ上でエンコードされます)。したがって、パケットサイズがN * 64ビット(= 4レーンで32バイト)を超えるとすぐに、すべてのレーンを十分に活用できます。エンコードには多少の遅延がありますが、それはおそらく実装固有のものです。

この図は、上記にリンクされているプレゼンテーションからのものです。 物理コーディングサブレイヤー機能


1
「エンコーディングで多少の遅延があるでしょう」ああええと、。これで、ワームの別の缶を開けました!遅延はいくらですか?全体的なパケット遅延に影響しますか?等
パイプ

1
あ、ありがとう。私が理解したように、これらの「単語」は「適切なサイズのビットの塊」であり、元の投稿に書いたとおりです。それは近づいていますか?
マーク「ネッティエ」ルーティ

1
@ Marc'netztier'Luethiまさに。
日本時間

@pipeうん。幸いなことに「関係するすべての人は、もっと多くの要因があることに気づいています」:)
jpa

2
@pipeよく、私たちはそれを脇に置いておくと思います。今後発生する課題は、「NIC /ポートが4レーンでラウンドロビンできるように一度に十分なデータ(32バイト)を送信する限り、より短い/並列化されたシリアル化遅延が発生します」と答えます。君たちはそんなに追いかけている」もちろん、IPヘッダーを持ち、ペイロードを持たない半分焼き付けされたイーサネットフレームは、すでにその制限を超えています。したがって:気にしない。
マーク「ネッティエ」ルーティ

16

あなたは考え過ぎです。

使用されるレーンの数は実際には重要ではありません。1レーン、2レーン、または5レーンで50 Gbit / sを転送する場合、シリアル化遅延は20 ps / bitです。そのため、使用するレーンに関係なく、100 psごとに5ビットを取得します。データのレーンへの分割と再結合はPCSサブレイヤーで行われ、物理レイヤーの上でも見えません。状況に関係なく、100G PHYが1つのレーンで10ビットを連続的にシリアル化するか(各10 ps、合計100 ps)、または10レーンで並列にシリアル化するか(各100 ps、合計100 ps)は関係ありません-そのPHYを再構築します。

当然、100 Gbit / sの遅延は50 Gbit / sの半分などであるため、(物理層の上で)シリアル化する速度が速いほど、フレームはより速く送信されます。

インターフェイスの内部シリアル化に関心がある場合は、速度クラスに使用されているMIIバリアントを確認する必要があります。ただし、このシリアル化はオンザフライで、または実際のMDIシリアル化と並行して行われます-少し時間がかかりますが、実際のハードウェアの部分であり、おそらく予測することはできません(2-5 ps 100 Gbit / sを推測してください)。もっと大きな要因が関係しているので、実際にこれについて心配することはありません。10 psは、追加の2ミリメートル(!)のケーブルから得られる伝送遅延の順序です。

40 Gbit / sにそれぞれ10 Gbit / sの4つのレーンを使用することは、4つの10 Gbit / sリンクを集約することと同じではありません。レーンの数に関係なく、40ギガビット/秒のリンクは、10ギガビット/秒のLAGgedリンクではできない単一の40ギガビット/秒のストリームを転送できます。また、40Gのシリアル化遅延は10Gの1/4に過ぎません。


3
ご意見をありがとうございます。つまり、10/25/40 / 100Gで、フレームあたりのビット数/ビットレート=シリアル化遅延の経験則は 、特定の物理層が使用するレーンの数に関係なく、有効のままです(与えるかいくつかのわずかな違いを取ります)?
マーク「ネッティエ」ルーティ

6
はい。この点で、マルチレーンイーサネットは集約リンクとは大きく異なります。
Zac67
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.