ネットワークコンピューティング

1. URL
2. 担当教員
3. ネットワークに関する疑問
4. 講義目的
5. 到達目標
6. 授業方法
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. LAN の構成要素・通信プロトコル
11. 無線 LAN、VLAN (仮想 LAN)
12. インターネットの概要、TCP/IP
13. IP プロトコル (1)
14. IP プロトコル (2)
15. 前半の総復習
16. TCP プロトコル (1)
17. TCP プロトコル (2)
18. インターネットの要素技術 (経路制御)

TCP プロトコル (2)

授業の流れ・チーム分けの方針・態度目標

2024/09/25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/netcomp/2024/#10-1

内容目標

- TCP パケットのヘッダにどのような情報が記載されており、TCP の制御にどのように利用されているのかを理解し、他人に説明できるようになる。

- トランスポートプロトコルにおけるタイムアウト時間を決定することの困難さを理解し、適切なタイムアウト時間をどのように設定できるようになる。

- チェックサムによる誤り制御の原理を理解し、16 ビットのチェックサムによってどの程度のメッセージ破壊を見逃すかを定量的に理解できるようになる。

テキスト

https://lsnl.jp/~ohsaki/lecture/netcomp/2024/priv/04.pdf

課題

課題 1

ある IP アドレスを持つホストが同時に確立できる TCP フロー数の最大値はいくらか。

課題 2

TCP のコネクション確立が、 2-way ハンドシェイクでも、 4-way ハンドシェイクでもなく、 3-way ハンドシェイクであるのはなぜか。

Connection establishment, Transmission Control Protocol
https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Connection_establishment

課題 3

ホスト X からホスト Y までのラウンドトリップ時間が、 平均 100 [ms]、 標準偏差 20 [ms] の正規分布で近似できると仮定する。 この時、 TCP の誤り制御におけるパケット損失の誤検出率を 2.5% 程度にするためには、 TCP 再送タイムアウト時間 (RTO) がどのような値であればよいか。

課題 4

TCP はヘッダおよびペイロードの誤り検出のために 16 ビットのチェックサムを使用している。 メッセージ長が 1,500 バイトで、 ビット誤り率が大きい時に、 16 ビットのチェックサムによってメッセージ破壊を見落す (メッセージが破壊されているにもかかわらず、 それを検出できない) 確率はいくらか。

略解

課題 1

TCP フローの終端は「IP アドレス; ポート番号」で区別される。 従って、 ある IP アドレスに対して、 ポート番号の種類だけ TCP フローを確立することができる。 ポート番号は 16 ビットであるから、 同時に確立できる TCP フロー数の最大値は 65,536 である。

RFC793: 3.1. Header Format
https://www.rfc-editor.org/rfc/rfc793

課題 2

TCP コネクションは全二重 (full-duplex) であるから、 2 方向のストリームの確立が必要となる。 各ストリームの確立に、 コネクション確立の要求 (SYN) と確認 (SYN ACK) の送信が必要となる。

従って、 2-way ハンドシェイクでは全二重のコネクション確立を実現できない。

2 方向のストリームに対して、 それぞれ個別にコネクション確立の要求 (SYN) と確認 (SYN ACK) を行う 4-way ハンドシェイクであれば全二重のコネクション確立は実現できる。

しかし、 4-way ハンドシェイクは、 3-way ハンドシェイクに比べるとコネクション確立の時間が大きくなる (往路・復路の通信遅延が等しければ 4/3 倍になる) ため、 TCP では 3-way ハンドシェイクが用いられている。

課題 3

ラウンドトリップ時間の確率変数を X、 パケット損失の誤検出率が 2.5% となる RTO の値を T と表記する。 この時、

P(X > T) = 0.025

となるように T を定めればよい。

正規分布 N(μ, σ ^2) では、 平均μの± 2 σに分布の約 95 % が収まることが知られている (68-95-99.7 rule)。

68-95-99.7 rule
https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule

従って、

T = μ + 2 σ = 100 [ms] + 2 * 20 [ms] = 140 [ms]

と設定すればパケット損失の誤検出率が 2.5% 程度となる。

課題 4

チェックサムの大きさが 16 ビットであるため、 チェックサムで表現できる値の種類は 2^16 = 65,536 である。

ビット誤り率が大きい場合は、 破壊されたメッセージのチェックサムが、 元のメッセージのチェックサムと一致する確率は 1/2^16 = 0.0000153 である。

類題

類題 1

一人の人が、両手の指で表現できる情報は何通りか。ただし、それぞれの指を伸ばす/ 折り曲げるのどちらかしかできないとする。

(略解) 2^10 = 1,024 通り

類題 2

X さんと Y さんが自身の名前をそれぞれ確実に相手に伝えたい。X さんと Y さんで、 合計何回発話する必要があるか。

(略解) 3 回

X: 私の名前は太郎です。 Y: わかりました。私の名前は健太です。 X: わかりました。

類題 3

ヤフオクで、 これまで何度も取引きのある出品者からフィギュアを落札した。 この出品者は、 格安でフィギュアを出品してくれるのだが、 おっちょこちょいで発送作業を忘れることがある。 この出品者は、 (無事に発送された場合は) 落札から商品到着までの時間が平均 100 時間、 標準偏差 20 時間の正規分布で近似できることがわかっている。 発送済みにもかかわらず催促してしまう割合を 2.5% 程度にするためには、 落札からどれだけの時間を待ってから「発送いただいたでしょうか?」 と催促すればよいか。

(略解) 課題 3 の「秒」を「時間」に置き換えればよい。140 時間。

類題 4

一人の人が、 両手の指でチェックサム付きで情報を表現する。 8 本の指で 2^8 通りの情報を表し、 2 本の指をチェックサムに使うとする。

10 本の指で情報とチェックサムを表現した後、 いたずら好きの友人に指の曲げ伸ばしをあちこち変化させられた。 変化させられたことを、 2 本の指のチェックサムで検出できない確率はいくらか。

(略解) チェックサムの大きさが 2 ビットであるため、 チェックサムで表現できる値の種類は 2^2 = 4 である。

友人があちこちの指の曲げ伸ばしを変化させた場合は、 変化後の 8 本の指の情報のチェックサムが、 2 本の指のチェックサムと一致する確率であるから 1/4 である。

レポート課題・質問・要望・コメント 2024/11/13

「レポート課題 2024/09/25」と同じ。

https://lsnl.jp/~ohsaki/lecture/netcomp/2024/#10-10

[<16. TCP プロトコル (1)] [>18. インターネットの要素技術 (経路制御)]