計算機ネットワーク (2024 年度前期)
1. 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
2. スケジュール (予定)
1. スタートアップ授業 / インターネットの概要 24/ 4/11 2. 誤り検出・誤り訂正 24/ 4/18 3. 媒体アクセス制御 24/ 4/25 4. イーサネット・無線 LAN 24/ 5/ 2 5. インターネットプロトコル: IP 24/ 5/ 9 6. 経路制御: OSPF 24/ 5/16 7. 経路制御: BGP 24/ 5/23 8. 前半の総復習 24/ 5/30 9. トランスポートプロトコル: TCP・UDP 24/ 6/ 6 10. TCP プロトコルの概要 24/ 6/13 11. TCP プロトコルの詳細 24/ 6/20 12. インターネットサービス: DNS (Domain Name System) on-demand 13. インターネットサービス: WWW (World Wide Web)・メールシステム on-demand 14. インターネットを支える要素技術 24/ 7/13 3 限 15. 後半の総復習 / 授業アンケート FURIKA の実施
3. 到達目標
- [O1] パケット交換方式と回線交換方式の差異、および、インターネットに おける通信を細分化した四つの各階層の役割を理解し、説明できるようにな る
- [O2] メディアアクセス制御と物理 (MAC) アドレスの基礎的知識を理解でき るようになる
- [O3] IP アドレッシングとルーティングアルゴリズムの原理を理解し、説明 できるようになる
- [O4] TCP による高信頼データ転送や輻輳制御の原理を理解し、説明できる ようになる
- [O5] DNS の原理を理解し、名前解決の仕組みを説明できるようになる
- [O6] インターネットの運用を支えるための要素技術を理解できるようになる
4. 成績評価
定期試験で完全に評価する。
5. 参考書
- 尾家 裕二, 西尾 章治郎, 後藤 滋樹, 小西 和憲, 宮原 秀夫, 村井 純, "岩波講座 インターネット <1> インターネット入門", ISBN 978-4000110518
- 大崎 博之, "インターネット, 7 つの疑問 数理から理解するその仕組み", ISBN 978-4320009264
- 竹下 隆史, 村山 公保, 荒井 透, 苅田 幸雄, "マスタリング TCP/IP 入門編", ISBN 978-4274068768
- アンドリュー・S・タネンバウム, デイビッド・S・ウエザロール, "コンピュータネットワーク 第 6 版", ISBN 978-4-296-07042-8
6. ミニッツペーパの回答フォーム
Microsoft Forms (学内関係者限定) https://forms.office.com/r/QYgensNc3T
7. 第 1 回: スタートアップ授業 / インターネットの概要
7.1. 講義資料
7.2. 確認演習
演習 1
インターネットという言葉を、 その語源である Internet という語句にもとづいて、 説明しなさい。
演習 2
以下の問いに答えなさい。ただし、解答は、回線交換方式とパケット交換方式の二択である。
- ア. 通信品質が優れているのはどちらの方式であるか?
- イ. 通信資源を効率的に利用できるのはどちらの方式であるか?
- ウ. 障害への耐性を有しているのはどちらの方式であるか?
- エ. 事前に回線を確保した上でデータを転送するのは、どちらの方式であるか?
解答の根拠を説明できることが望ましい。
演習 3
以下の文は、OSI 7 階層モデルにおけるいずれかの層の役割を説明している。 各文の説明に合致する層の名称を答えなさい。
- ア. エンドツーエンド間でのデータ転送をになう
- イ. 高信頼・高効率なデータ転送をになう
- ウ. 隣接する通信機器間でのデータ転送をになう
7.3. 略解
演習 1
(講義資料を参照すればよいので) 省略。
演習 2
- ア. 回線交換方式
- イ. パケット交換方式
- ウ. パケット交換方式
- エ. 回線交換方式
演習 3
- ア. ネットワーク層
- イ. トランスポート層
- ウ. データ・リンク層
8. 第 2 回: 誤り検出・誤り訂正
8.1. 講義資料
8.2. 確認演習
演習 1
(講義内で説明した) リンク層の役割を説明しない。
演習 2
以下の 1. 〜 3. に示すビット列それぞれに対して、 偶数パリティによる単一ビットパリティ検査に従いながら、 ビット誤りが発生しているかどうかを答えなさい。 ただし、次の二つを仮定する。 (i) 冗長ビットが付与される位置はビット列の末尾である; (ii) ビット誤りは高々 1 ビットしか発生しない、 つまり、複数ビットのビット誤りは同時に発生しないものとする。
- 11010011
- 00100100
- 11101110
演習 3
誤り訂正のために 8 ビットあたりに一つの冗長ビットを付与すると仮定する。 このとき、256 ビットから成るビット列に付与される冗長ビット数を 答えなさい。
演習 4
単一ビットパリティ検査は、 複数ビットでビット誤りが同時に発生した場合には、 その誤りを検出できない理由を、 例を用いながら、説明しなさい。
8.3. 略解
演習 1
(講義資料を参照すればよいので) 省略。
演習 2
- 誤りが発生している
- 誤りは発生していない
- 誤りは発生していない
演習 3
32 ビット
演習 4
元々のビット列を 00100010
とする。
よって、冗長ビットが付与された後のビット列は 001000100
である。
仮に、1 ビット目と 2 ビット目でビット誤りが発生したとすると、
誤りが発生した後のビット列は 111000100
である。
このとき、
ビット列 111000100
において 1
が出現する回数は偶数であるため、
誤りが発生しているにもかかわらず、
誤りが発生していることを検出できない。
8.4. 課題 (任意)
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。 今回の第 2 回を例として期限を説明すると、 (JST で、) 次回である第 3 回の講義は 4/18(木) であり、 その開始時刻は 9:00am であるから、 期限は 4/16(火) 9:00am である。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/1Bgd2w7X8R
9. 第 3 回: 媒体アクセス制御
9.2. 講義資料
前回と同じものを用いるので、新たに配布するものはない。
ただし、p. 22 における CSMA/CD の伝送効率の説明を (わずかに) 更新している。
9.3. 確認演習
演習 1
メディアアクセス制御 (MAC) に求められる要件を挙げなさい。
演習 2
スロット化 ALOHA の伝送効率は Pure ALOHA の 2 倍となる理由を、 フレーム衝突が発生する期間にもとづいて、 説明しなさい。
演習 3
CSMA によって ALOHA よりフレームの衝突を回避できる理由を説明しなさい。
(発展) 演習 1
Pure ALOHA の伝送効率が \(S = G e^{-2G}\) で与えられる理由を説明しなさい。 ここで、 \(G\) は、ポアソン分布に従う (フレーム時間あたりの) フレーム生成レートである。 また、フレームの大きさは等しいことを仮定している。
9.4. 略解
演習 1
複数の端末によって共有されるリンクを、フレーム同士の衝突を回避しながら、 効率的に利用すること。
演習 2
Pure ALOHA において、 あるフレームと他のフレームが衝突しないようにするには、 2 フレーム時間を確保しなければならない。 一方、スロット化 ALOHA は、フレームを送る時点をスロットの先頭のみに限定しているため、 フレームの衝突が発生する期間は高々 1 フレーム時間である。 よって、衝突が発生する期間が半減していることから、 スロット化 ALOHA の伝送効率は 2 倍となる。
演習 3
搬送波検知によってチャネル (リンク) が使用されていることを検知した場合には、 フレームの送信を見送るから。
(発展) 演習 4
以下のページを参照されたい。
https://en.wikipedia.org/wiki/ALOHAnet#Pure_ALOHA
9.5. 課題 (任意)
第 2 回の課題と同様である。ただし、今回以降の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/QYgensNc3T
補足: 「質問」には、講義内容そのものだけでなく、情報科学・研究・キャリ ア (将来設計)・学修に関する質問も歓迎します。
10. 第 4 回: イーサネット・無線 LAN
10.2. 講義資料
10.3. 確認演習
演習 1
手元で保有しているスマートフォンやノート PC (の NIC) に割り当てられている MAC アドレスを確認しなさい。
演習 2
演習 1 で得た MAC アドレスからその NIC の製造元 (ベンダー) を調べなさ い。
演習 3
ある LAN において、ホスト A がホスト B にフレームを送る、という状況を 考える。この時に、ホスト A は、宛先となるホスト B の IP アドレスを知っ ているが、ホスト B の MAC アドレスを知らないものとする。ここで、ARP に よって、ホスト A がホスト B の MAC アドレスを得る手順を説明しなさい。
10.4. 略解
演習 1
スマートフォンの場合
省略
Linux が動作する PC の場合
> ifconfig
Windows が動作する PC の場合
Windows Power Shell で以下のコマンドを実行すればよい。
> ipconfig /all
演習 2
演習 3
- ホスト A は、ホスト B の IP アドレスを含めた ARP クエリを LAN 内に ブロードキャストする。
- 1. による ARP クエリをホスト B が受け取ると、ホスト B は、ARP クエ リの送信元であるホスト A に、自身の MAC アドレスをユニキャストで応 答する。
- ホスト B による応答を受け取ると、ホスト A は、ホスト B の IP アドレ スと MAC アドレスとの対応を知ることができる。
10.5. 課題 (任意)
第 3 回の課題と同様である。
11. 第 5 回: インターネットプロトコル: IP
11.1. 前回の質問とその回答
なし。
11.2. 講義資料
11.3. 確認演習
演習 1
以下に示す (単純な) ネットワークを考える。 以下の図において、 数字はルータを表しており、 数字間を結ぶ実線はリンクを表している。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
ここで、ルータ 1 に、宛先をルータ 6 とするパケットが到着したものとする。 このとき、このパケットが経路 1, 4, 5, 6 を通過されるように、 関係するルータの経路制御表を記述しなさい。 経路制御表における宛先アドレスと次ホップは、簡略化した表現として、 ルータの記号で表記しなさい。
演習 2
(何らかの有線/無線 LAN に接続している) スマートフォンやノート PC (の NIC) に割り当てられている IP アドレスを確認しなさい。
演習 3
下記の表は、あるルータにおける経路制御表を示している。
01111111 00001010 0010**** ******** 1 01111111 00001010 00101*** ******** 2 01111111 00001010 001011** ******** 3 デフォルト 4
このルータに、ア. 〜 ウ. に示す、 宛先 IP アドレスを有するパケットが到着したときに、 パケットが転送される出力ポートの番号を答えなさい。 ただし、ルータは、 パケットの転送先を決定する上では、 最長プレフィックス一致に従うものとする。
- ア. 01111111 00001010 00101101 00001000
- イ. 01111111 00001010 00100101 01001100
- ウ. 01111111 00001010 01101101 10000001
11.4. 略解
演習 1
講義資料における p.6 を参照すればよいので省略。
演習 3
- ア. ポート 3
- イ. ポート 1
- ウ. ポート 4
11.5. 課題 (任意)
第 3 回の課題と同様である。
12. 第 6 回: 経路制御: OSPF
12.2. 講義資料
12.3. 確認演習
演習 1
インターネットのルーティングを説明した以下の文章における空欄にあてはま る適切な語句を答えなさい。
- インターネットのルーティング (経路制御) は、[ ア ] 内ルーティングと [ ア ] 間ルーティングとに大別される。
- [ ア ] 内ルーティングを実現する代表的なプロトコルは [ イ ] である。[ イ ] は [ ウ ] 型ルーティングを採用している。[ イ ] によって経路を決 定する大まかな流れは、ルータ間で [ ウ ] の広告を反復することでネット ワーク全体のトポロジを構築し、(何らかの基準に従って) トポロジ上での 最適な経路を求める、というものである。
- 一方、[ ア ] 間ルーティングを実現する代表的なプロトコルは [ エ ] で ある。[ エ ] は [ オ ] 型ルーティングを採用している。[ エ ] によって 経路を決定する大まかな流れは、宛先までの AS 経路を徐々に広告すること である。
(発展) 演習 2
(任意のプログラミング言語で) ダイクストラ法を実装しなさい。
12.4. 略解
演習 1
(講義資料を参照すればよいので) 省略。
(発展) 演習 2
TBD
12.5. 課題 (任意)
第 3 回の課題と同様である。
13. 第 7 回: 経路制御: BGP
13.1. 前回の質問とその回答
なし。
13.2. 講義資料
13.3. 確認演習
演習 1
AS 番号 55375 の AS 名を調査し、答えなさい。
演習 2
次の用語を、その違いに注意しながら、簡潔に説明しなさい。
- Border Gateway Protocol (BGP)
- Interior/Internal Border Gateway Protocol (IBGP)
- Exterior/External Border Gateway Protocol (EBGP)
演習 3
AS の接続関係を表す次のグラフを考える。 このグラフにおける頂点の数字は AS 番号を指している。
1 ----- 2 / \ 0 5 --- 6 \ / 3 ----- 4
このとき、(講義内での説明に従って、) AS6 から BGP 広告され、AS0 に到着する AS 経路を答えなさい。
13.4. 略解
演習 1
SI-NET
演習 2
BGP
AS 間でルーティング情報を交換するために用いられる IP ルーティング プロトコルである。
IBGP
同一 AS 内のルーティングに用いられる BGP である。
EBGP
異なる AS 間のルーティングに用いられる BGP である。
演習 3
AS0, AS1, AS2, AS5, AS6 および AS0, AS3, AS4, AS5, AS6
13.5. 課題 (任意)
第 3 回の課題と同様である。
14. 第 8 回: 前半の総復習
14.1. 前回の質問とその回答
なし。
14.2. 授業の流れ
1. 演習 (30 分) 2. 相互採点・教え合い・回答のアップロード (30 分) 3. 解説 (30 分) 注: 様子を見ながら時間を適宜調整します。
14.3. 演習
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/comnet/2024/priv/quiz.html#1 - アップローダ https://forms.office.com/r/0GXHZyuX7c 補足: 試験的に Forms で回収しています。
14.4. 課題 (任意)
第 3 回の課題と同様である。
15. 第 9 回: トランスポートプロトコル: TCP・UDP
15.1. 前回の質問とその回答
なし。
15.2. 講義資料
15.3. 確認演習
演習 1
https://en.wikipedia.org/wiki/Port_(computer_networking) における冒頭 の 2 段落を理解した後に、次の問いに答えなさい。
- ア. ポート番号が一意に識別するものは何であるか?
- イ. ポート番号を用いる代表的なトランスポートプロトコルは何であるか?
- ウ. ポート番号と常に関連付けられる二つの要素は何であるか?
- エ. well-known ポート番号として用いられるポート番号は何番であるか?
注: 英文に抵抗を感じる場合には、上記記事を機械翻訳で訳した日本語を理解 するとよい。
演習 2
以下の ア.〜エ. における ○○○ には、「TCP」・「UDP」・「TCP および UDP」のいずれかがあてはまる。
- ア. ○○○ は、データを送信する前にコネクションを確立しない
- イ. ○○○ は、ネットワーク内で損失したデータを再送する
- ウ. ○○○ は、到着したセグメントの順序を並び換える
- エ. ○○○ はポート番号を利用する
適切なものを答えなさい。
演習 3
手元に保有しているノート PC 上での TCP コネクションを確認しなさい。
15.4. 略解
演習 1
- ア. a port or port number is a number assigned to uniquely identify a connection endpoint and to direct data to a specific service.
- イ. The most common transport protocols that use port numbers are the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP);
- ウ. A port number is always associated with a network address of a host, such as an IP address, and the type of transport protocol used for communication.
- エ. port numbers lower than 1024 identify the historically most commonly used services and are called the well-known port numbers.
演習 2
(講義資料を参照すればよいので) 省略。
演習 3
Linux が動作する PC の場合
> netstat -t
Windows が動作する PC の場合
Windows Power Shell で以下のコマンドを実行すればよい。
> netstat
15.5. 課題 (任意)
第 3 回の課題と同様である。
16. 第 10 回: TCP プロトコルの概要
16.1. 前回の質問とその回答
なし。
16.2. 講義資料
16.3. 確認演習
演習 1
TCP では、送信者は、 仮に転送の過程でセグメントが損失したとしても、 つまりセグメントが受信者に届けられなかったとしても、 セグメントの損失を検出することができる。
この原理を、確認応答 (ACK) という語句を用いながら、説明しなさい。
演習 2
RTO (Retransmission TimeOut) を更新する一連の流れを、何らかの RTT を与 えながら、実際に手計算してみなさい。 パラメータ \((\alpha, \beta)\) は (1/8, 1/4) とすればよい。 また、SRTT と RTTVAR の初期値は任意の値を設定すればよい。
演習 3
本演習は、重複 ACK に関する問いである。以下に、前提を説明する。
- 送信者が、シーケンス番号を 1 〜 10 とする一連のセグメントを送出したと する。
- シーケンス番号 5 のセグメントは受信者には配送されなかったものの、他 のセグメントはシーケンス番号 1, 2, 3, 4, 6, 7, 8, 9, 10 という順序で 受信者に配送されたものとする。
- 受信者はセグメントを一つ受け取る度に、ACK を送信者に返送するものとす る。仮定として、ACK の順序入れ替えおよび損失のどちらも発生しないもの とする。
このとき、送信者が重複 ACK によってシーケンス番号 5 のセグメントの損失 を検出するのは、どのセグメントに対する ACK を受け取った時であるか?
16.4. 略解
演習 1
以下の二点に言及していればよい。
- TCP では、受信者は、セグメントを受け取ると、確認応答 (ACK) を送信 者に返送する。
- 送信者は、一定時間を待機しても、ACK を受け取れなかった場合に、当 該セグメントを損失したものと判定する。
演習 2
省略。
演習 3
講義資料の p.8 を参照しなさい。
16.5. 課題 (任意)
第 3 回の課題と同様である。
17. 第 11 回: TCP プロトコルの詳細
17.1. 前回の質問とその回答
なし。
17.2. 講義資料
前回と同じものを用いるので、新たに配布するものはない。
17.3. 確認演習
演習 1
以下の文章は、2 台のホスト A とホスト B との間で TCP コネクションを 双方向に確立する一連の流れを説明している。 この文章における空欄にあてはまる適切な語句を答えなさい。
- ホスト A は、ホスト B に、[ ア ] フラグを有効にした TCP セグメントを 送る。以降では、このセグメントのシーケンス番号を x と表記する。
- ホスト B は、ホスト A に、[ イ ] フラグおよび [ ウ ] フラグを有効に した TCP セグメントを送る。このセグメントに付与される確認応答番号は [ エ ] である。以降では、このセグメントのシーケンス番号を y と表記す る。
- ホスト A は、ホスト B に、[ オ ] フラグを有効にした TCP セグメントを 送る。このセグメントに付与される確認応答番号は [ カ ] である
演習 2
TCP による輻輳制御の必要性を説明しなさい。
演習 3
本演習はウィンドウサイズに関する問いである。まず、前提は次の通りである。
- 送信ホストは、ウィンドウサイズが許す限り、セグメントを 1, 2, 3, … という順序で送出する。
- 送信ホストのウィンドウサイズの初期値は 1 である。
- 受信ホストは、送信ホストからセグメントを受け取る度に、当該セグメントに対する ACK を返送する。
- 送信ホストは、ACK を受け取ると、ウィンドウサイズを一つ増加させる。
- セグメントおよび ACK の順序入れ替えおよび損失は発生しないものとする。
このとき、送信側ホストがセグメント 10 に対する ACK を受け取り、 ウィンドウサイズを増加させた時点でのウィンドウサイズを答えなさい。
17.4. 略解
演習 1
- ア: SYN
- イ: SYN
- ウ: ACK
- エ: x + 1
- オ: ACK
- カ: y + 1
演習 2
例: ホストによる データ転送の送信レートを調整する ことで、 ネットワーク 内での輻輳を回避しながら 、 利用可能な帯域を最大限に活用する ため。
演習 3
省略。
17.5. 課題 (任意)
第 3 回の課題と同様である。
18. 第 12 回: インターネットサービス: DNS (Domain Name System)
18.1. 前回の質問とその回答
なし。
18.2. 講義資料
18.3. 確認演習
演習 1
TLD (top-level domain) を調査し、(好きなだけ) 列挙しなさい。
演習 2
ドメイン名 www.ins.tl.fukuoka-u.ac.jp
を名前解決しなさい。
つまり、対応する IP アドレスを答えなさい。
演習 3
IP アドレスと比較したドメイン名の利点を答えなさい。
18.4. 略解
演習 1
演習 2
133.100.26.100
演習 3
省略。
18.5. 課題 (任意)
第 3 回の課題と同様である。
19. 第 13 回: インターネットサービス: WWW (World Wide Web)・メールシステム
19.1. 前回の質問とその回答
なし。
19.2. 講義資料
19.3. 課題 (任意)
第 3 回の課題と同様である。
20. 第 14 回: インターネットを支える要素技術
20.1. 前回の質問とその回答
なし。
20.2. 講義資料
20.3. 課題 (任意)
第 3 回の課題と同様である。
21. 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施
21.1. 前回の質問とその回答
なし。
21.2. 授業の流れ
1. 演習 (30 分) 2. 相互採点・教え合い・回答のアップロード (15 分) 3. FURIKA への回答 (15 分) 4. 解説 (30 分) 注: 様子を見ながら時間を適宜調整します。
21.3. 演習
21.4. 課題 (任意)
第 3 回の課題と同様である。