ネットワークシステム (2023 年度後期)
1 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
2 スケジュール (予定)
1. スタートアップ授業 / グラフ理論 23/ 9/25 2. ネットワークの特徴を表す指標 23/10/ 2 3. ノードの中心性を表す指標・スケールフリー性 23/10/16 4. ランダムネットワーク・スケールフリーネットワーク 23/10/23 5. コミュニティ構造 / 小テスト1 on-demand 6. コミュニティの検出 23/11/13 7. 情報拡散モデル 23/11/20 8. ネットワーク上の情報拡散 / 社会ネットワーク 23/11/27 9. 無線センサネットワーク on-demand 10. アドホックネットワーク・遅延耐性ネットワーク 23/12/11 11. SDN (Software-Defined Networking) / 小テスト2 23/12/18 12. コンテンツ配信ネットワーク 23/12/25 13. 情報指向ネットワーク 24/ 1/ 9 14. 前半 (第 1 回〜第 7 回) の総復習 24/ 1/15 15. 後半 (第 8 回〜第 13 回) の総復習
3 到達目標
- [O1] 複雑ネットワークにおける基礎理論として、ネットワークの特徴を表す指標及びノードの中心性を表す指標を理解できるようになる
- [O2] 複雑ネットワークが有する代表的な性質であるスケールフリー性を、その定義とともに理解し、説明できるようになる
- [O3] 複雑ネットワークが有するコミュニティ構造を、その定義とともに理解できるようになる。
- [O4] 情報拡散モデルを用いながら、複雑ネットワーク上の情報の拡散過程を説明できるようになる
- [O5] 最先端のネットワーク技術である無線センサネットワーク・遅延耐性ネットワーク・SDN・コンテンツ配信ネットワークの基本的な概念を理解できるようになる
- [O6] 将来のネットワークシステムとして注目されている情報指向ネットワークの概念を理解できるようになる
4 成績評価
平常点 (ミニッツペーパ) を 10%、 授業内小テストの成績を 20%、 期末試験の成績を 70% の重みで評価する。
5 参考書
- A.-L. Barabási, "Network Science", ISBN 1107076269
- M. Newman, "Networks Second Edition", ISBN 0198805098
6 補助教材
7 連絡事項
7.1 小テストでの持込許可品目
- 手書きによる資料 (ノート・紙) のみ持込を許可する
- ただし、電子機器 (例: iPad) 上にタッチペンで書いた資料を印刷したも のも持込を認める
7.2 止むを得ない理由 (例: 忌引) で小テストを受験できなかった場合の対応
- 小テストを実施した講義日から 10 日以内に、本人が担当者に口頭で相談 した場合にのみ、代替措置を検討する
8 第 1 回: スタートアップ授業 / グラフ理論
8.1 資料
講義ビデオおよび講義資料 (学内関係者限定) https://fukuoka-u.box.com/s/13dtc3kavg4u5adws5qgfonc698k7jcl
9 第 2 回: ネットワークの特徴を表す指標
9.1 講義資料
9.2 確認演習
以下の演習では、ネットワークとして、 次に示す、6 頂点から成る無向グラフを、対象とする。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
ネットワークの平均次数を求めなさい。
演習 2
ネットワークの次数分布を求めなさい。
演習 3
ネットワークの平均経路長と直径をそれぞれ求めなさい。
演習 4
クラスタ係数が最大となるノードを答えなさい。
9.3 略解
演習 1
8 / 3
演習 2
p(1) = 1 / 6, p(2) = 1 / 6, p(3) = 1 / 2, p(4) = 1 / 6
演習 3
- 平均経路長: 8 / 5
- 直径: 3
演習 4
ノード 3
9.4 課題
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。 今回の第 2 回を例として期限を説明すると、 (JST で、) 次回である第 3 回の講義は 10/2(月) であり、 その開始時刻は 1:00pm であるから、 期限は 9/30(土) 1:00pm である。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/jEr6dCap7j
10 第 3 回: ノードの中心性を表す指標・スケールフリー性
10.1 講義資料
10.2 確認演習
以下の演習では、ネットワークとして、 次に示す、6 頂点から成る無向グラフを、対象とする。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
以下のア.〜ウ. は、次数中心性・近接中心性・媒介中心性のいずれかを説明 している。ア.〜ウ. の説明に対応する中心性指標の名称を回答しなさい。
- ア. 当該ノードを通過する最短経路の数がどの程度であるかを表す
- イ. 当該ノードから他ノードへの平均距離が短いほど、そのノードが重要である、ということを表す
- ウ. 当該ノードの次数に相当する
演習 2
各ノードの近接中心性を求めなさい。
演習 3
ノード 4 とノード 5 の媒介中心性を求めなさい。 ただし、値を正規化する必要はない。
10.3 略解
演習 1
- ア. 媒介中心性
- イ. 近接中心性
- ウ. 次数中心性
演習 2
C(1) = 5 / 8, C(2) = 5 / 7, C(3) = 5 / 9, C(4) = 5 / 6, C(5) = 5 / 7, C(6) = 5 / 11
演習 3
B(4) = 7, B(5) = 8
10.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/2tbWwGuta3
11 第 4 回: ランダムネットワーク・スケールフリーネットワーク
11.1 講義資料
11.2 確認演習
演習 1
ER モデルに従って、 N = 5, p = 1 / 2 のランダムグラフを手作業で生成してみなさい。
演習 2
以下の文章は、ランダムネットワークの次数分布 P(k) の導出を 説明している。この文章における空欄にあてはまる適切な数式や記号を答えなさい。
- あるノードに着目し、そのノードの次数が k である確率を考える。
- ノードの次数が k であるためには、(1) k 個のノードとつながり、 (2) 残りの N - 1 - k 個のノードとつながらない、ということを満たせばよい。
- あるノードが、k 個のノードと同時につながる確率は、[ ア ] である。 一方、残りの N - 1 - k 個のノードと同時につながらない確率は、 [ イ ] である。
- さらに、N -1 個のノードから k 個のノードを求める組み合わせが [ ウ ] であることを踏まえれば、 次数分布 P(k) は [ エ ] である。
演習 3
スケールフリー性を表現するために、BA モデルが導入した二つの仕組みを答え、 それらを簡潔に説明しなさい。
演習 4
以下に示すグラフに対して、 BA モデルに従って、 新たにノードを追加した時に、 優先的接続で各ノードにリンクが接続される確率を答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
11.3 略解
演習 1
(乱数に依るので) 省略
演習 2
- ア: p^k
- イ: (1 - p)^(N - 1 - k)
- ウ: N - 1 C k
- エ N - 1 C k * p^k * (1 - p)^(N - 1 - k)
演習 3
(講義資料を参照すればよいので) 省略
演習 4
- ノード1: 3 / 16
- ノード2: 3 / 16
- ノード3: 2 / 16 (= 1 / 8)
- ノード4: 4 / 16 (= 1 / 4)
- ノード5: 3 / 16
- ノード6: 1 / 16
11.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/KV0VhWcwC6
12 第 5 回: コミュニティ構造
12.1 講義資料
12.2 確認演習
演習 1
コミュニティ構造を有するネットワークの特徴を、「密」および「疎」という語句を用いながら、 説明しなさい。
演習 2
以下に示す無向グラフにおいて 4-クリークは存在するかどうかを答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 3
演習 2 で対象としたグラフにおいて、 ノード v1, v2, v3, v4 がコミュニティを形成するものとしたときに、 このコミュニティは「強いコミュニティ」であるかどうかを理由とともに答えなさい。
12.3 略解
演習 1
ノード同士が密に接続されたコミュニティと、 疎に接続されたコミュニティから構成されたネットワーク。
演習 2
存在しない。
演習 3
「強いコミュニティ」の定義に基づいて、全てのノードに対して、 k^int_v > k^ext_v が成立しているかどうかを確認すると、
v1: 3 > 0 v2: 2 > 1 v3: 2 > 0 v4: 3 > 1
である。よって、全てのノードに対して、 k^int_v > k^ext_v が成立しているため、 ノード v1, v2, v3, v4 から成るコミュニティは「強いコミュニティ」である。
12.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/pj5Axg8VBJ
次回の講義は on-demand 型であるため、 回答の期限を述べた文言における「次回講義の開始時刻」が明確に 定まらない。 よって、回答の期限を 10/28(土) 1:00pm と明示しておく。
13 第 6 回: コミュニティの検出
13.1 資料
講義ビデオ (学内関係者限定) https://fukuoka-u.box.com/s/6k9xb5o7m868s863r13akktgou5owu7n
13.2 確認演習
演習 1
本演習では、以下に示す無向グラフを対象とする。このときに、次の ア.〜エ. のコミュニティ集合が、講義資料の p.7 における定義を満たしているかどう かを検証し、満たいしていないものを列挙しなさい。その理由も述べること。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. C = {{1, 3, 4}, {2, 4, 5, 6}}
- イ. C = {{1, 3, 4}, {2, 5}}
- ウ. C = {{1, 2, 3}, {4, 5, 6}}
- エ. C = {{1, 2, 4}, {3, 5, 6}}
演習 2
講義資料の p.12 における、 右半分の例 (講義ビデオ内で解説していない方の例) に対して、 モジュラリティを計算しなさい。
13.3 略解
演習 1
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. ノード 4 が複数のコミュニティで重複しているから
- イ. ノード 6 がいずれのコミュニティにも属していないから
- エ. c2 において、ノード 3 とノード 5 との間で、路が存在しないから
演習 2
省略
13.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/rm2F407TiC
14 第 7 回: 情報拡散モデル
14.1 確認演習
演習 1
講義資料の p.8 で紹介した数値計算に従って、 \(S(1)\) 、 \(I(1)\) 、 \(R(1)\) を手計算しなさい。 パラメータおよび初期値は次の通りとする; \(S(0)\) =9,990、 \(I(0)\) =10、\(R(0)\) =0、 \(\beta\) =0.4、\(\gamma\) =0.2
演習 2
講義資料の p.8 で紹介した数値計算を行うプログラムを、 何らかのプログラミング言語で実装し、 講義資料の p.9 で掲載しているグラフを求めてみなさい。
14.2 略解
演習 1
- \(S(1)\) = 9,990 - (0.4 * 9,990 * 10) / 10,000 = 9986.004
- \(I(1)\) = 10 + (0.4 * 9,990 * 10) / 10,000 - 0.2 * 10 = 11.996
- \(R(1)\) = 0 + 0.2 * 10 = 2
演習 2
- Python 言語の場合:
Google Colab https://colab.research.google.com/drive/1fzc0MdkKuTWvXas-4-rYNOIl67oQ_s98?usp=sharing#scrollTo=e8jzirdi8mot
- C 言語の場合:
#include <stdio.h> #define ARRAY_SIZE 1024 #define MAX_TIME 100 int N = 10000; double BETA = 0.4; double GAMMA = 0.2; double DELTA = 1; int main() { int k = 0; double S[ARRAY_SIZE], I[ARRAY_SIZE], R[ARRAY_SIZE]; double T[ARRAY_SIZE]; S[0] = 9990; I[0] = 10; R[0] = 0; T[0] = 0; for (k = 0; k < MAX_TIME / DELTA; k++) { T[k + 1] = T[k] + DELTA; // first-order approximation S[k + 1] = S[k] - BETA / N * S[k] * I[k] * DELTA; I[k + 1] = I[k] + (BETA / N * S[k] * I[k] - GAMMA * I[k]) * DELTA; R[k + 1] = R[k] + GAMMA * I[k] * DELTA; } for (k = 0; k < MAX_TIME / DELTA; k++) { printf("%.2f S %.4f\n", T[k], S[k]); printf("%.2f I %.4f\n", T[k], I[k]); printf("%.2f R %.4f\n", T[k], R[k]); } }
14.3 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/fsbmJXwj89
15 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
15.1 資料
15.2 確認演習
演習 1
SIR モデルにおける基本再生産数の定義を、 記号を用いながら、 答えなさい。
演習 2
ネットワーク上の情報拡散を抑制するための方策を、 ネットワークを構成するグラフの観点から、 答えなさい。
15.3 略解
演習 1
(講義資料に記述されているので) 省略
演習 2
例: ネットワークからノード/リンクを取り除く。
15.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/S1sBmb78bD
16 第 9 回: 無線センサネットワーク
16.1 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2023/priv/09.pdf 電子情報通信学会 知識ベース 知識の森 https://www.ieice-hbkb.org/files/04/04gun_05hen_03.pdf
16.2 確認演習
演習 1
無線センサーネットワークにおける通信に、 WWAN 向けの規格が不適である理由を説明しなさい。
演習 2
IEEE 802.15.4 で採用されている CSMA/CA は、 CSMA とどのように違うかを説明しなさい。
16.3 略解
演習 1
(WWAN 向けの規格は長距離の伝送を可能とするものの、) 消費電力が (WPAN 向けの規格と比較して相対的に) 大きいという性質が、 バッテリーで長時間稼動する、 ということが求められるセンサーには、 適していないため。
演習 3
- 搬送波を検知する前にランダムなバックオフ時間を待機する。バックオフ時 間の最大値は、搬送波検知においてチャネルが使用中であることを検出する 度に、増大させる。
- フレームを受信した端末は、その送信者に、確認通知 (ACK) フレームを転送する
16.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/XeXvpN84bf
17 第 10 回: アドホックネットワーク・遅延耐性ネットワーク
17.1 資料
17.2 確認演習
演習 1
DTN を説明した以下の文章における空欄にあてはまる適切な語句を答えなさい。
- DTN は、Delay-Tolerant Networking の略称であり、(大きな) [ ア ] を許 容しながら通信を実現する技術である。
- DTN は、[ イ ]・[ ウ ]・[ エ ] 型の通信である。[ イ ] は、端末はメッ セージを一時的に蓄えることである。[ ウ ] は、メッセージを保持したま ま移動することである。[ エ ] は、他の端末と接触すると、メッセージの 複製を転送することである。
- DTN における初等的なメッセージルーティングを [ オ ] と呼ぶ。[ オ ] は、端末が他の端末と接触すると、必ずメッセージの複製を渡す、というも のであり、その結果として、メッセージが、疫病が広まるのと同じように、 広まっていく。
演習 2
エピデミックブロードキャストの利点と欠点をそれぞれ説明しなさい。
チャレンジ演習
DTN シミュレータをインストールし、シミュレーションを実行しなさい。
h-ohsaki/dtnsim https://github.com/h-ohsaki/dtnsim
17.3 略解
演習 1
- ア: 遅延
- イ: 蓄積
- ウ: 運搬
- エ: 転送
- オ: エピデミックブロードキャスト
演習 2
- 利点: 遅延をもっとも減らすことができること
- 欠点: ネットワーク資源を過剰に浪費すること
チャレンジ演習
Linux であれば以下のようにすればよい。
> pip3 install dtnsim > dtnsim
17.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/BYsS0ZVwDE
18 第 11 回: SDN (Software-Defined Networking)
18.1 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2023/priv/11.pdf SDN がもたらす柔軟な将来網の世界 https://www.ieice.org/jpn/books/kaishikiji/2013/201312.pdf
18.2 確認演習
演習 1
SDN の特徴を列挙しなさい。
18.3 略解
演習 1
- ルーティングに相当する制御プレーンとフォワーディングに相当するデータプレーンとを分離し、 制御プレーンをコントローラが集中的に管理する。
- パケットの宛先単位ではなくフロー単位で、パケットの処理を決定する。
- ソフトウェアによってネットワークをプログラム可能とする。
18.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/gLDXsFV3uM
19 第 12 回: コンテンツ配信ネットワーク
19.1 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2023/priv/12.pdf CDN(コンテンツ・デリバリー・ネットワーク)とは? https://www.akamai.com/ja/our-thinking/cdn/what-is-a-cdn CDN とは何ですか? https://aws.amazon.com/jp/what-is/cdn/
19.2 確認演習
演習 1
以下に示すネットワークを考える。
host1 \ cache --- server / host2
このネットワークにおける各要素の役割は次の通りである。
host1
およびhost2
は、server
が保持するコンテンツを要求する。cache
は、自身を通過するコンテンツの複製を、一時的に保持することができる。server
は、コンテンツのオリジナルを保持する。
このときに、 cache
が有効に機能するシナリオを説明しなさい。
演習 2
ネットワーク内のキャッシュからコンテンツを配信することの恩恵を、 通信品質の観点で、 説明しなさい。
19.3 略解
演習 1
host1
があるコンテンツを要求し、その後に、同一コンテンツを host2
も要求する、というシナリオ。
演習 2
- コンテンツを取得するのに要する時間を削減できる
- ネットワーク内を転送されるトラヒック量を削減できる
19.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/9KARzWCvcc
20 第 13 回: 情報指向ネットワーク
20.1 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2023/priv/13.pdf 講義ノート (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2023/priv/note-13.pdf Networking Named Content https://conferences.sigcomm.org/co-next/2009/papers/Jacobson.pdf コンテンツオリエンテッドネットワーク https://search.ieice.org/bin/pdf_link.php?fname=j96-b_6_589
20.2 確認演習
演習 1
以下のア. 〜ウ. は、 ICN におけるルータが有する主要なデータ構造の役割を簡潔に説明している。 ア. 〜ウ. の説明と合致するデータ構造の名称を答えなさい。
- ア. 要求パケットの転送先を管理する
- イ. 自身がキャッシュしているコンテンツを管理する
- ウ. パケットが到着したポート、つまり応答パケットの返送先を管理する
演習 2
以下の文章は、ルータが要求/応答パケットを受信したときの処理の流れを 説明している。 以下の文章における空欄に当てはまる適切な語句を解答しなさい。
- ICN ルータが要求パケットを受信したときの処理の流れ
- [ ア ] に当該コンテンツがキャッシュされているかを確認する。 コンテンツが [ ア ] にキャッシュされていれば、コンテンツを返送する。
- コンテンツが [ ア ] にキャッシュされていなければ、 [ イ ] に、要求パケットに対応するエントリが存在するかを確認 する。エントリが存在すれば、要求パケットが流入した [ ウ ] を当該エントリに追加する。
- [ イ ] エントリが存在しなければ、[ エ ] に、 要求パケットに対応するエントリが存在するかを確認する。[ エ ] エントリが存在すれば、要求パケットを次ノードに転送する。
- ICN ルータが応答パケットを受信したときの処理の流れ
- [ オ ] に、応答パケットに対応するエントリが存在するかを確認する。
- 応答パケットを [ カ ] にキャッシュする。この時に、 [ カ ] が完全に占有されている場合には、 キャッシュ置き換えアルゴリズムに従って、 [ カ ] からコンテンツを破棄した上で、 新たにコンテンツを挿入する。
- [ オ ] エントリに含まれている全ての [ ウ ] に応答パケットを送出する。
20.3 略解
略解 1
- ア. FIB (転送情報ベース)
- イ. CS (コンテンツストア)
- ウ. PIT (ペンディング要求テーブル)
略解 2
- ア: CS (コンテンツストア)
- イ: PIT (ペンディング要求テーブル)
- ウ: フェース/出力ポート
- エ: FIB (転送情報ベース)
- オ: PIT (ペンディング要求テーブル)
- カ: CS (コンテンツストア)
20.4 課題
第 2 回の課題と同様である。 ただし、今回の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/vys1y3CppL
21 第 14 回: 前半 (第 1 回〜第 7 回) の総復習
21.1 資料
なし。
21.2 課題
なし。
22 第 15 回: 後半 (第 8 回〜第 13 回) の総復習
22.1 資料
なし。
22.2 課題
なし。