パケットの総送信時間の計算
1. 概要
ネットワーキングは、すべての最新のインターネットアプリケーションのバックボーンです。 そのため、ユーザーエクスペリエンスは、ネットワークのパフォーマンスと信頼性に大きく依存します。
ただし、ネットワークは決して完全に機能する構造ではありません。 それらの欠陥には、パケットの遅延、衝突、および損失が含まれますが、これらに限定されません。 したがって、これらの現象を計算に含めることができる必要があります。
このチュートリアルでは、パケット送信時間と、それを概算する方法について説明します。
2. 予選
パケットの送信を遅らせるいくつかの要因があります。 この記事では、処理遅延、キューイング遅延、送信遅延、および伝搬遅延の4つの主要な要素について説明します。
ネットワークはグラフとして正確にモデル化できます。ノードはコンピューター、ルーター、スイッチなどのデバイスを表し、エッジはこれらのデバイス間の確立されたリンクを表します。
簡単にするために、最初に下の画像に示すようなネットワークの例を考えて、パケットがノードBに向かう前にノードAに到達したと仮定します。
もちろん、AからBへの送信に関連するすべての潜在的な遅延は、より複雑なパスに簡単に一般化できます。
3. 処理遅延
ノードAに到達したら、パケットのヘッダーを処理する必要があります。 まず、ノードAへの送信中に発生した可能性のあるビットレベルのエラーを特定して修正する必要があります。
次に、パケットのヘッダーも調べて、ノードBに到達するためにパケットを転送する必要がある正しいリンクを決定する必要があります。 現在のノードは複数のリンクの一部であり、異なるデバイスに接続している可能性があるため、これは重要なステップです。
適切なリンクが見つかると、パケットはキューにプッシュされ、ワイヤに送信されるのを待ちます。
4. キューイング遅延
すべてのルーターには、処理後にパケットが配置される内部バッファーが含まれています。 ルーターは一度に1つのパケットしか送信できないため、古いパケットがまだ送信されている間に新しいパケットが到着した場合、パケットは待機中にこのバッファー内に配置する必要があります:
このバッファはキューと呼ばれます。 ルーターは「先着順」のポリシーに従うため、先に到着したパケットも先に送信されます。
キューイングの遅延は、ネットワークトラフィックに応じて、わずか数マイクロ秒からミリ秒に及ぶ可能性があります。 ラッシュアワー中、キューイング遅延は、特にパケット損失による再送信を考慮した場合、パケットの合計遅延に大きな影響を与える可能性があります。
5. 伝送遅延
この記事では、ノードAからノードBに送信されるパケットのプロセス全体を表すために、「送信」という言葉を非常に広範に使用しました。 ただし、送信遅延とは、パケット全体がビットごとにワイヤに送信されるのに必要な時間を指します。
当然、このタイプの遅延はリンクの伝送速度に依存します。 たとえば、送信レートRのリンクを介してLビットで構成されるパケットを送信すると、L /Rの送信遅延になります。
6. 伝播遅延
ここで説明する最後の遅延コンポーネントは、伝搬遅延です。 名前が示すように、ビットが物理メディアにプッシュされた後、ノードAからノードBに移動するのに必要な時間はです。
これは、ノード間の距離dと、その特定の媒体に関連する伝播速度の2つの要因に依存します。 伝搬速度は一般に非常に速く、通常は光速の範囲です。
7. コメントコメント
送信されるパケットの合計ノード遅延は、前述のすべての遅延項の合計です:。 ただし、実際には、この表現のすべての用語が等しく重要であるとは限りません。むしろ、状況に大きく依存します。
たとえば、友人とのLANパーティー中の伝搬遅延はごくわずかですが、衛星リンクを介して接続されたノードでは非常に重要です。
最近では、伝送遅延が問題になることはめったにありません。 これは、ギガビットイーサネットと光ファイバーリンクが非常に高い伝送速度を保証するためです。 これは確かに古いモデムには当てはまりませんが、低スループットのアナログテレフォニーリンクが使用されています。
ルーターには十分に高い処理能力を備えた専用ハードウェアが含まれているため、実際には処理の遅延は通常重要ではありません。
おそらく最も影響力があり重要な要因は、キューイングの遅延です。 キュー内の連続するパケットの遅延は、順序に応じて異なります。 最初のパケットはすぐに送信されますが、10番目のパケットはその前の9つのパケットが送信されるのを待つ必要があります。 そのため、キューイングの遅延について話し合うときは、通常、期待値の観点から話します。
8. 例
数値の問題を見て、私たちが学んだことを復習しましょう。
8.1. 問題文
長さビットのパケットは、ルーター A に波状に到着し、ノードBへの送信を待つ間キューに入れられます。 リンクの伝送速度はです。 各ウェーブにはパケットが含まれており、ごとに1つのウェーブが到着します。 処理の遅延はごくわずかであり、考慮されません。
- パケットの平均キュー遅延はどれくらいですか?
- 2つのルーター間の距離がであり、伝搬速度がである場合、パケットがルーターBに到達するまでの時間
8.2. 解決
キュー内のパケットを送信するには、その前にあるすべてのパケットを最初に送信する必要があります。 したがって、単一のパケットの送信遅延を計算することにより、キュー内の各パケットのキューイング遅延を正確に決定できます。
まず、パケットの伝送遅延を計算してみましょう。 前に説明したように、リンクの伝送速度とパケットの長さを考えると、次のように伝送遅延を計算できます。
これは、最初のパケットがすぐに送信され、が含まれることを示しています。 2番目のパケットは、最初のパケットが送信されるのを待つ必要があります。 3番目のパケットは、最初の2つのパケットが送信されるのを待ちます。
次の波が到着する直前に、最終的なパケットは数秒で送信されます! ウェーブはオーバーラップしないため、パケットの平均キュー遅延を次のように計算できます。
伝播遅延はすべてのパケットで同じであり、次のように計算できます。
最後に、パケットがノードBに到達するまでの平均時間は、3つの項すべての合計です。
9. 結論
パケットが宛先に到達するまでの合計送信時間に影響を与える主な要因について説明しました。 このプロセスの各ステップは特定の種類の遅延に関連していることを確認し、実際のアプリケーションにおける個々の遅延の重要性について説明しました。 最後に、数値の問題を解決して、これらの概念をしっかりと把握しました。