web-dev-qa-db-ja.com

このシナリオでエンドツーエンドの遅延を計算する方法

これが私の質問です。サイズが150,000バイトのメッセージをネットワーク経由で送信します。ホップは4つあり、それぞれ20kmで、100 Mb/sで実行されます。ただし、送信する前に、メッセージを1500バイトのパケットに分割します。メッセージのエンドツーエンドの遅延とは何ですか?銅の光速= c = 2 * 10 ^ 8 m/sを使用し、最も近い整数ミリ秒に回答を丸めます。

これまでのところ48msで、次の方法で計算しました:1500バイト= 12,000ビット12,000ビット/(100x10 ^ 6)[100Mb/s] = 0.00012s 20km /(2 * 10 ^ 8)[光の速度この式では] = 1e-7それらを合計すると、ホップあたり0.0001201s x 4ホップ= 0.0004804s-> 48msが最も近い整数に丸められます。

どうやらこれは正しくなく、私は自分のエラーを理解できません。私のオンラインコースにはサポートが提供されていないため、SOに切り替えます。誰かが私を正しい方向に向けることができれば、私は助けていただければ幸いです。

8
Ross

編集:

ようやく手に入れたと思います。ネットワークトポロジは次のようになります。

source - link#1 - router#1 - link#2 - router#2 - link#3 - router#3 - link#4 - dest

まず、ソースの観点から考えてみましょう。メッセージをパケットごとに送信します。最初のパケットをネットワークに送信するとすぐに、2番目のパケットを送信し、次に3番目のパケットを送信します。100パケットすべてをネットワークに送信するのにどのくらい時間がかかりますか?

100 * 1500B * 8(b/B) / 100 Mb/s = 12 ms

エンドツーエンドの遅延は、メッセージ全体を送信元から宛先に転送するのにかかる時間です。ソースがリンク#100にパケット#100を配置したので、最後のパケットライフを追跡します。最後のパケットには

20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#1
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#2
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#2
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#3
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#3
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#4
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the dest

そのため、送信元によってリンク#1に配置された後、最終的に最終宛先に到達するまでに最後のパケットは0.76ミリ秒かかります。これが最終的な答えです。

12 ms + 0.76 ms = 12.76 ms ~= 13 ms

元の答え:

以下は明らかに正しい答えですが、合計の2番目の部分に4を掛けない理由がわかりません。結局、4つのフープがあります。誰かが説明できたら、とても感謝しています。

説明

13ms。エンドツーエンドの遅延は次のように計算します。

4 * (1500B * 8(b/B) / 100 Mb/s + 20km/2 * 10^8 m/s)
+ (150,000/1500 - 1) * (1500 * 8 (b/B) / 100Mb/s) = 12.76 ms
7
Kluyg

4ホップとは

S->r1->r2->r3->D

No. of packets is =15*10^4 / 1500 = 100 packets
T.D=> 15*10^2*8 / 100* 10^6 (this is for 1 packet) = 0.12ms
P.D=> 20*10^3 / 2* 10^8 = 0.1ms
Total is =>0.1+0.12 = 0.22ms
4 Hops takes => 0.22*4=0.88ms
0.88ms is for 1st packet only

最初のパケットがDに到達するには0.88ミリ秒かかります。最初のパケットがDに到達している間、他のパケットは並行して処理されていたはずです。したがって、Dは残りのパケットをR2から0.12ミリ秒ごとに1パケット受信します。

他の99パケットは0.12 * 99ミリ秒かかります。//送信遅延のみが(N-1)パケットで乗算されます

答えは=> 0.88 + 0.12 * 99 = 12.76ms

このような種類の質問を計算するための公式->

合計遅延=いいえ。ホップ数(最初のパケットの合計遅延)+送信N 送信遅延+処理+キューイング)

OR

(IF処理遅延とキューイング遅延= 0の場合)

合計遅延=いいえ。 of Hops *(1st packet total delay)+ Transmission delay *(N-1)

---(PPTの非常に推奨される例

別の例

3
shaurya uppal

重要な点は、ルーターは完全なパケットが受信されるまで待機する必要があり、その後、次のルーターへのパケットの転送を開始することです。最初のケースでは、150,000バイトのメッセージが1500バイトの100パケットに分割されない場合、各ルーターはメッセージの転送を開始できるようになるまで(150,000 * 8)/(100 * 10 ^ 6)秒待つ必要があります。つまり、ルーターがこの状態で長時間スタックしています。ただし、2番目のケースでは、メッセージが分割されている場合、各ルーターは(1500 * 8)/(100 * 10 ^ 6)秒待ってから、パケットの転送を開始します。これは、前の1/100です。場合。この場合、これは一種のパイプライン処理であるため、ルーターは到着したメッセージの一部を転送し、残りのメッセージを受信することができます。 4番目のルーターまたは宛先のみで、メッセージ全体が到着したときに、メッセージの合計移動時間が計算されます。前者の場合、最後のルーターは待機中で何もしないため、待機時間は(150,000 * 8)/(100 * 10 ^ 6)秒です。 2番目のケースでは、最後のルーターは最初に(1500 * 8)/(100 * 10 ^ 6)秒待機し、それが最後のルーター、つまり宛先であるため、到着したメッセージを転送する必要はなく、唯一のジョブです。すべてのメッセージが届くまで待つことです。したがって、それはちょうど((150,000-1500)* 8)/(100 * 10 ^ 6)秒である別の99パケットが到着するのを待ちます。最後に、最初のケースの合計遅延は4 *(150,000 * 8)/(100 * 10 ^ 6)+ 4 *(20 * 10 ^ 3)/(2 * 10 ^ 8)= 48 msであり、合計2番目のケースの遅延は3 *(1500 * 8)/(100 * 10 ^ 6)+(150,000 * 8)/(100 * 10 ^ 6)+ 4 *(20 * 10 ^ 3)/(2 * 10 ^ 8)= 12.76ミリ秒。 2つのケースでは、伝播遅延に違いはありません。違いは、各ルーターのスタック時間です。

0
zangsy

個々のビットについて、ルーターはストアアンドフォワードモードで動作します。つまり、パケット全体が到着するのを待ってから次のホップに進みます。

パケットを送信する場合、個々のパケットを送信する前に、すべてのパケットがルーターに到着するのを待つ必要はありません。

パケット自体の「パケット化遅延」は、最も遅いリンク、パケットのサイズ、およびパケット数にのみ依存します。

私の解釈:

最初の質問は、パケットを分解しない場合にかかる時間を説明することです

2番目の質問は、より小さなサイズに分解する利点を説明することです

ビデオで説明されているように、それを分解しない場合、送信は各ホップの完全なデータ転送を待つ必要があります。しかし、それを分解すると、最初のパケットは待機時間が短く(サイズが小さく)なり、後者のパケットはネットワークにロードして、伝送を効率化できます。

0
Geoffrey Hung

エンドツーエンド遅延は、リンクの数にネットワークの合計遅延を掛けることで計算できます。このオンライン End to End Delay ツールを使用できます。

0
Dinesh Kumar