Skip to content

필사 모드: [コンピュータネットワーク] 03. ネットワーク遅延、損失、スループット

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

本記事は James Kurose, Keith Ross 著 Computer Networking: A Top-Down Approach (6th Edition) の教科書を基にまとめた内容です。

1. パケット交換ネットワークにおける遅延の概要

パケットが送信元から宛先まで移動する際、経路上の各ノード(ルーター)で複数の遅延を経験する。最も重要なのは**ノード遅延(nodal delay)**であり、4つの要素で構成される。

ノード遅延(d_nodal) = d_proc + d_queue + d_trans + d_prop

d_proc : 処理遅延 (Processing Delay)

d_queue : キューイング遅延 (Queuing Delay)

d_trans : 伝送遅延 (Transmission Delay)

d_prop : 伝搬遅延 (Propagation Delay)

2. 4種類の遅延要素

2.1 処理遅延(Processing Delay)

パケットヘッダを検査し、どこに送るかを決定する時間である。

- パケットヘッダのビットエラー検査

- フォワーディングテーブルの検索

- 一般的に**マイクロ秒(us)**以下

パケット到着 → [ヘッダ検査] → [フォワーディング決定] → キューに入る

処理遅延 (d_proc)

2.2 キューイング遅延(Queuing Delay)

パケットが出力リンクのキューで送信を待つ時間である。

- キューで待機中の他のパケット数に依存

- **マイクロ秒からミリ秒**レベルまで変動

- 4種類の遅延の中で**最も複雑で予測困難**

出力キュー:

[pkt5][pkt4][pkt3][pkt2][pkt1] ──> 出力リンク

(送信中)

← これらのパケットの待ち時間 = キューイング遅延 →

2.3 伝送遅延(Transmission Delay)

パケットのすべてのビットをリンクに押し出すのにかかる時間である。

伝送遅延 = L / R

L: パケット長(bits)

R: リンク伝送率(bps)

**例**:`L = 10,000 bits`、`R = 10 Mbps`

d_trans = 10,000 / 10,000,000 = 0.001秒 = 1ms

> 伝送遅延は**パケット長**と**リンク伝送率**に依存し、2つのルーター間の距離とは無関係である。

2.4 伝搬遅延(Propagation Delay)

ビットがリンクを通じて物理的に伝搬する時間である。

伝搬遅延 = d / s

d: 2つのルーター間の物理的距離(meters)

s: 媒体の伝搬速度(約 2 * 10^8 m/s 〜 3 * 10^8 m/s)

**例**:ルーター間距離 = 5,000 km、伝搬速度 = 2.5 x 10^8 m/s

d_prop = 5,000,000 / 250,000,000 = 0.02秒 = 20ms

> 伝搬遅延は**距離**に依存し、パケットサイズとは無関係である。

2.5 伝送遅延 vs 伝搬遅延の比喩

高速道路の料金所の比喩:

車の列 = パケットのビット列

料金所 = ルーター

高速道路 = リンク

伝送遅延:すべての車が料金所を通過する時間

(車の数 / 料金所の処理速度)

伝搬遅延:1台の車が料金所から次の料金所まで走る時間

(距離 / 車の速度)

3. キューイング遅延とパケット損失

3.1 トラフィック強度(Traffic Intensity)

キューイング遅延の程度は**トラフィック強度**で判断できる。

トラフィック強度 = L * a / R

L: パケットサイズ(bits)

a: 平均パケット到着率(packets/sec)

R: リンク伝送率(bps)

トラフィック強度に応じたキューイング遅延

キューイング

遅延

^

| |

| | /

| | /

| | /

| | /

| __|_/

| ___/ |

|__/ |

+-----------+-------> トラフィック強度 (La/R)

0 1

La/R → 0 : キューイング遅延はほぼゼロ

La/R → 1 : キューイング遅延が急激に増加

La/R > 1 : キューが無限に増加(システム不安定)

核心ルール

| トラフィック強度 | キューイング遅延の状態 |

| ---------------- | ---------------------------------- |

| La/Rが0に近い | ほぼゼロ |

| La/Rが1に近い | 急激に増加 |

| La/Rが1を超える | 無限に増加(実質的にパケット損失) |

> システム設計のゴールデンルール:**トラフィック強度が1を超えないように**設計しなければならない。

3.2 パケット損失(Packet Loss)

現実ではキュー(バッファ)のサイズは有限である。

バッファが満杯の状態で新しいパケットが到着:

[pkt_n][...][pkt2][pkt1] ──> 出力リンク

^^^^^^^^^^^^^^^^^^^^^^^^

バッファ容量 = n(満杯)

pkt_new到着 → ドロップ!(パケット損失)

- 損失したパケットは前のノードや送信元で**再送**される可能性がある

- または全く再送されない場合もある(アプリケーションに依存)

- 混雑したネットワークでは損失率が大幅に増加

4. エンドツーエンド遅延(End-to-End Delay)

送信元から宛先までの全体遅延を計算してみよう。

N個のリンクを経由する場合(混雑なしと仮定):

d_end-to-end = N * (d_proc + d_trans + d_prop)

= N * (d_proc + L/R + d/s)

**例**:ルーター3つ(リンク3つ)、`d_proc = 0.003ms`、`L = 1,500 bytes`、`R = 2 Mbps`、`d = 5,000 km`、`s = 2.5 * 10^8 m/s`

各ホップの遅延:

d_proc = 0.003 ms

d_trans = (1500 * 8) / 2,000,000 = 6 ms

d_prop = 5,000,000 / 250,000,000 = 20 ms

1ホップ遅延 = 0.003 + 6 + 20 = 26.003 ms

総遅延 = 3 * 26.003 = 78.009 ms

4.1 Traceroute

`traceroute`(Windowsでは `tracert`)コマンドで実際のエンドツーエンド経路と各ホップの遅延を測定できる。

traceroute www.example.com

出力例:

1 192.168.1.1 1.234 ms 1.123 ms 1.345 ms

2 10.0.0.1 5.678 ms 5.432 ms 5.789 ms

3 72.14.215.85 15.234 ms 14.987 ms 15.123 ms

...

各行は1つのルーター(ホップ)を表し、3回のRTT測定値が表示される。

4.2 その他のエンドツーエンド遅延

意図的な遅延

- **メディアパケット化遅延**:VoIPで音声データをパケットにまとめる時間

- **処理遅延**:メールサーバーでのウイルス検査など

5. スループット(Throughput)

5.1 定義

**スループット**は単位時間あたりに送信元から宛先へ転送されるビット数である。

- **瞬間スループット(instantaneous throughput)**:特定時点の伝送率

- **平均スループット(average throughput)**:全体の転送時間における平均伝送率

Fビットのファイル転送にT秒かかる場合:

平均スループット = F / T (bps)

5.2 ボトルネックリンク(Bottleneck Link)

エンドツーエンドのスループットは**経路上で最も遅いリンク**によって決まる。

サーバー ──Rs──> ルーター ──Rc──> クライアント

Rs = サーバー側リンク伝送率

Rc = クライアント側リンク伝送率

スループット = min(Rs, Rc)

例1:サーバー側がボトルネック

サーバー ──2 Mbps──> ルーター ──10 Mbps──> クライアント

スループット = min(2, 10) = 2 Mbps

ボトルネックリンク:サーバー側リンク

例2:クライアント側がボトルネック

サーバー ──100 Mbps──> ルーター ──1.5 Mbps──> クライアント

スループット = min(100, 1.5) = 1.5 Mbps

ボトルネックリンク:クライアント側リンク(アクセスネットワーク)

5.3 多数の接続が共有するリンク

10組のサーバー-クライアントペアが1つのコアリンク(R)を共有:

サーバー1 ──Rs──┐ ┌──Rc──> クライアント1

サーバー2 ──Rs──┤ ├──Rc──> クライアント2

... ├── R(共有リンク)───┤

サーバー10──Rs──┘ └──Rc──> クライアント10

各接続のスループット:

スループット = min(Rs, Rc, R/10)

実際のインターネットではコアリンクの容量が非常に大きいため、ほとんどの場合**アクセスネットワーク**がボトルネックとなる。

一般的な場合:

コアリンク >> アクセスネットワーク伝送率

→ スループット = min(Rs, Rc)

→ ボトルネックはほぼ常にアクセスネットワーク側

6. 遅延とスループットの関係

遅延(Delay)とスループット(Throughput)は独立した性能指標:

遅延:1つのパケットが到着するまでにかかる時間

スループット:単位時間あたりに転送されるデータ量

パイプの比喩:

┌─────────────────────────────┐

│ 水(データ)が流れるパイプ │

└─────────────────────────────┘

← パイプの長さ = 遅延 →

パイプの断面積 = スループット

7. まとめ

| 遅延要素 | 依存する変数 | 大きさ |

| ---------------- | --------------------------- | ------ |

| 処理遅延 | ルーター性能 | us以下 |

| キューイング遅延 | トラフィック強度 | us〜ms |

| 伝送遅延 | パケットサイズ/リンク伝送率 | us〜ms |

| 伝搬遅延 | リンク距離/伝搬速度 | ms |

核心公式:

d_nodal = d_proc + d_queue + d_trans + d_prop

トラフィック強度 = La/R(1未満であれば安定)

スループット = min(経路上すべてのリンクの伝送率)

8. 確認問題

- **伝送遅延**:パケットのすべてのビットをリンクに押し出す時間。`L/R`で計算し、パケットサイズとリンク伝送率に依存する。

- **伝搬遅延**:ビットがリンクを通じて物理的に移動する時間。`d/s`で計算し、距離と伝搬速度に依存する。

料金所の比喩:伝送遅延はすべての車が料金所を通過する時間、伝搬遅延は1台の車が次の料金所まで走る時間である。

パケットの平均到着率がリンクの伝送能力を超えるため、キューが際限なく増加する。実際にはバッファが有限であるため、**大量のパケット損失**が発生する。したがって、トラフィック強度が1を超えないようにネットワークを設計しなければならない。

経路上で最も遅いリンク、すなわち**ボトルネックリンク(bottleneck link)**がエンドツーエンドのスループットを決定する。実際のインターネットではほとんどの場合、アクセスネットワーク(家庭のDSL、ケーブルなど)がボトルネックとなる。

현재 단락 (1/149)

本記事は James Kurose, Keith Ross 著 Computer Networking: A Top-Down Approach (6th Edition) の教科書を基にまとめた内容...

작성 글자: 0원문 글자: 4,736작성 단락: 0/149