ネットワークシステム (2024 年度後期)
- 第 1 回: スタートアップ授業 / グラフ理論
- 第 2 回: ネットワークの特徴を表す指標
- 第 3 回: ノードの中心性を表す指標・スケールフリー性
- 第 4 回: ランダムネットワーク・スケールフリーネットワーク
- 第 5 回: コミュニティ構造
- 第 6 回: コミュニティの検出
- 第 7 回: 情報拡散モデル
- 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
- 第 9 回: 前半の総復習
- 第 10 回: 無線センサネットワーク
- 第 11 回: アドホックネットワーク・遅延耐性ネットワーク
- 第 12 回: SDN (Software-Defined Networking)
- 第 13 回: コンテンツ配信ネットワーク
- 第 14 回: 情報指向ネットワーク
- 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施
1. URL
2. 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
3. スケジュール (予定)
1. スタートアップ授業 / グラフ理論 24/ 9/16 2. ネットワークの特徴を表す指標 24/ 9/30 3. ノードの中心性を表す指標・スケールフリー性 24/10/ 7 4. ランダムネットワーク・スケールフリーネットワーク 24/10/21 5. コミュニティ構造 24/10/28 6. コミュニティの検出 24/11/11 7. 情報拡散モデル 24/11/18 8. ネットワーク上の情報拡散 / 社会ネットワーク 24/11/25 休講 24/12/ 2 9. 前半の総復習 24/12/ 9 10. 無線センサネットワーク 24/12/16 11. アドホックネットワーク・遅延耐性ネットワーク 24/12/23 12. SDN (Software-Defined Networking) 24/12/26 13. コンテンツ配信ネットワーク 25/ 1/ 6 14. 情報指向ネットワーク 25/ 1/ 9 3 限 15. 後半の総復習 / 授業アンケート FURIKA の実施 ↑ は 1121 教室であることに注意!
4. 到達目標
- [O1] 複雑ネットワークにおける基礎理論として、ネットワークの特徴を表 す指標及びノードの中心性を表す指標を理解できるようになる
- [O2] 複雑ネットワークが有する代表的な性質であるスケールフリー性を、 その定義とともに理解し、説明できるようになる
- [O3] 複雑ネットワークが有するコミュニティ構造を、その定義とともに理 解できるようになる。
- [O4] 情報拡散モデルを用いながら、複雑ネットワーク上の情報の拡散過程 を説明できるようになる
- [O5] 最先端のネットワーク技術である無線センサネットワーク・遅延耐性 ネットワーク・SDN・コンテンツ配信ネットワークの基本的な概念を理解で きるようになる
- [O6] 将来のネットワークシステムとして注目されている情報指向ネットワー クの概念を理解できるようになる
5. 成績評価
定期試験で完全に評価する。
6. 参考書
- A.-L. Barabási, "Network Science", ISBN 1107076269
- M. Newman, "Networks Second Edition", ISBN 0198805098
7. ミニッツペーパの回答フォーム
Microsoft Forms (学内関係者限定) https://forms.office.com/r/XRMhgEPyP9
8. 補助教材
9. 連絡事項
9.1. 出席管理
- 授業教室に設置されているカードリーダのデータにもとづいて、管理します。 ので、授業に出席したら、学生証をカードリーダにかざしてください。
10. 第 1 回: スタートアップ授業 / グラフ理論
10.1. 資料
講義ビデオおよび講義資料 (学内関係者限定) https://fukuoka-u.app.box.com/folder/248245352663
11. 第 2 回: ネットワークの特徴を表す指標
11.1. 講義資料
11.2. 確認演習
以下の演習で対象とするネットワークは、 次に示す 6 頂点から成る無向グラフである。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
ネットワークの平均次数を求めなさい。
演習 2
ネットワークの次数分布を求めなさい。
演習 3
ネットワークの平均経路長と直径をそれぞれ求めなさい。
演習 4
クラスタ係数が最大となるノードを答えなさい。
11.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
11.4. 課題 (任意)
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/XRMhgEPyP9
12. 第 3 回: ノードの中心性を表す指標・スケールフリー性
12.2. 講義資料
前回と同じものを用いるので、新たに配布する資料はない。
12.3. 確認演習
以下の演習では、ネットワークとして、 次に示す、6 頂点から成る無向グラフを、対象とする。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
以下のア.〜ウ. は、次数中心性・近接中心性・媒介中心性のいずれかを説明 している。ア.〜ウ. の説明に対応する中心性指標の名称を回答しなさい。
- ア. 当該ノードを通過する最短経路の数がどの程度であるかを表す
- イ. 当該ノードから他ノードへの平均距離が短いほど、そのノードが重要である、ということを表す
- ウ. 当該ノードの次数に相当する
演習 2
各ノードの近接中心性を求めなさい。
演習 3
ノード 4 とノード 5 の媒介中心性を求めなさい。 ただし、値を正規化する必要はない。
12.4. 略解
演習 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
12.5. 課題 (任意)
第 2 回の課題と同様である。
13. 第 4 回: ランダムネットワーク・スケールフリーネットワーク
13.1. 前回の質問とその回答
なし。
13.2. 講義資料
13.3. 確認演習
演習 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
13.4. 略解
演習 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
13.5. 課題 (任意)
第 2 回の課題と同様である。
14. 第 5 回: コミュニティ構造
14.1. 前回の質問とその回答
なし。
14.2. 講義資料
14.3. 確認演習
演習 1
コミュニティ構造を有するネットワークの特徴を、「密」および「疎」という語句を用いながら、 説明しなさい。
演習 2
以下に示す無向グラフにおいて 4-クリークは存在するかどうかを答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 3
演習 2 で対象としたグラフにおいて、 ノード v1, v2, v3, v4 がコミュニティを形成するものとしたときに、 このコミュニティは「強いコミュニティ」であるかどうかを理由とともに答えなさい。
14.4. 略解
演習 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 から成るコミュニティは「強いコミュニティ」である。
14.5. 課題 (任意)
第 2 回の課題と同様である。
15. 第 6 回: コミュニティの検出
15.1. 前回の質問とその回答
なし。
15.2. 資料
前回と同じものを用いるので、新たに配布する資料はない。
15.3. 確認演習
演習 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 における、 右半分の例 (講義ビデオ内で解説していない方の例) に対して、 モジュラリティを計算しなさい。
15.4. 略解
演習 1
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. ノード 4 が複数のコミュニティで重複しているから
- イ. ノード 6 がいずれのコミュニティにも属していないから
- エ. c2 において、ノード 3 とノード 5 との間で、路が存在しないから
演習 2
省略
15.5. 課題 (任意)
第 2 回の課題と同様である。
16. 第 7 回: 情報拡散モデル
16.1. 前回の質問とその回答
なし。
16.2. 資料
16.3. 確認演習
演習 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 で掲載しているグラフを求めてみなさい。
16.4. 略解
演習 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]); } }
16.5. 課題 (任意)
第 2 回の課題と同様である。
17. 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
17.1. 前回の質問とその回答
なし。
17.2. 資料
17.3. 確認演習
演習 1
SIR モデルにおける基本再生産数の定義を、 記号を用いながら、 答えなさい。
演習 2
ネットワーク上の情報拡散を抑制するための方策を、 ネットワークを構成するグラフの観点から、 答えなさい。
17.4. 略解
演習 1
(講義資料に記述されているので) 省略
演習 2
例: ネットワークからノード/リンクを取り除く。
17.5. 課題 (任意)
第 2 回の課題と同様である。
18. 第 9 回: 前半の総復習
18.1. 前回の質問とその回答
なし。
18.2. 授業の流れ
1. 演習 (45 分) 2. 採点・教え合い・回答のアップロード (15 分) 3. 解説 (30 分) 注: 様子を見ながら時間を適宜調整します。
19. 第 10 回: 無線センサネットワーク
19.1. 前回の質問とその回答
なし。
19.2. 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2024/priv/10.pdf 電子情報通信学会 知識ベース 知識の森 https://www.ieice-hbkb.org/files/04/04gun_05hen_03.pdf
19.3. 確認演習
演習 1
無線センサーネットワークにおける通信に、 WWAN 向けの規格が不適である理由を説明しなさい。
演習 2
IEEE 802.15.4 で採用されている CSMA/CA は、 CSMA とどのように違うかを説明しなさい。
19.4. 略解
演習 1
(WWAN 向けの規格は長距離の伝送を可能とするものの、) 消費電力が (WPAN 向けの規格と比較して相対的に) 大きいという性質が、 バッテリーで長時間稼動する、 ということが求められるセンサーには、 適していないため。
演習 3
- 搬送波を検知する前にランダムなバックオフ時間を待機する。バックオフ時 間の最大値は、搬送波検知においてチャネルが使用中であることを検出する 度に、増大させる。
- フレームを受信した端末は、その送信者に、確認通知 (ACK) フレームを転送する
19.5. 課題
第 2 回の課題と同様である。
20. 第 11 回: アドホックネットワーク・遅延耐性ネットワーク
20.1. 前回の質問とその回答
なし。
20.2. 資料
20.3. 確認演習
演習 1
DTN を説明した以下の文章における空欄にあてはまる適切な語句を答えなさい。
- DTN は、Delay-Tolerant Networking の略称であり、(大きな) [ ア ] を許 容しながら通信を実現する技術である。
- DTN は、[ イ ]・[ ウ ]・[ エ ] 型の通信である。[ イ ] は、端末はメッ セージを一時的に蓄えることである。[ ウ ] は、メッセージを保持したま ま移動することである。[ エ ] は、他の端末と接触すると、メッセージの 複製を転送することである。
- DTN における初等的なメッセージルーティングを [ オ ] と呼ぶ。[ オ ] は、端末が他の端末と接触すると、必ずメッセージの複製を渡す、というも のであり、その結果として、メッセージが、疫病が広まるのと同じように、 広まっていく。
演習 2
エピデミックブロードキャストの利点と欠点をそれぞれ説明しなさい。
チャレンジ演習
DTN シミュレータをインストールし、シミュレーションを実行しなさい。
h-ohsaki/dtnsim https://github.com/h-ohsaki/dtnsim
20.4. 略解
演習 1
- ア: 遅延
- イ: 蓄積
- ウ: 運搬
- エ: 転送
- オ: エピデミックブロードキャスト
演習 2
- 利点: 遅延をもっとも減らすことができること
- 欠点: ネットワーク資源を過剰に浪費すること
チャレンジ演習
Linux であれば以下のようにすればよい。
> pip3 install dtnsim > dtnsim
20.5. 課題
第 2 回の課題と同様である。
21. 第 12 回: SDN (Software-Defined Networking)
21.1. 前回の質問とその回答
なし。
21.2. 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2024/priv/12.pdf SDN がもたらす柔軟な将来網の世界 https://www.ieice.org/jpn/books/kaishikiji/2013/201312.pdf
21.3. 確認演習
演習 1
SDN の特徴を列挙しなさい。
21.4. 略解
演習 1
- ルーティングに相当する制御プレーンとフォワーディングに相当するデータプレーンとを分離し、 制御プレーンをコントローラが集中的に管理する。
- パケットの宛先単位ではなくフロー単位で、パケットの処理を決定する。
- ソフトウェアによってネットワークをプログラム可能とする。
21.5. 課題
第 2 回の課題と同様である。
22. 第 13 回: コンテンツ配信ネットワーク
22.1. 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2024/priv/13.pdf CDN(コンテンツ・デリバリー・ネットワーク)とは? https://www.akamai.com/ja/our-thinking/cdn/what-is-a-cdn CDN とは何ですか? https://aws.amazon.com/jp/what-is/cdn/
22.2. 確認演習
演習 1
以下に示すネットワークを考える。
host1 \ cache --- server / host2
このネットワークにおける各要素の役割は次の通りである。
host1
およびhost2
は、server
が保持するコンテンツを要求する。cache
は、自身を通過するコンテンツの複製を、一時的に保持することができる。server
は、コンテンツのオリジナルを保持する。
このときに、 cache
が有効に機能するシナリオを説明しなさい。
演習 2
ネットワーク内のキャッシュからコンテンツを配信することの恩恵を、 通信品質の観点で、 説明しなさい。
22.3. 略解
演習 1
host1
があるコンテンツを要求し、その後に、同一コンテンツを host2
も要求する、というシナリオ。
演習 2
- コンテンツを取得するのに要する時間を削減できる
- ネットワーク内を転送されるトラヒック量を削減できる
22.4. 課題
第 2 回の課題と同様である。
23. 第 14 回: 情報指向ネットワーク
23.1. 資料
講義資料 (学内関係者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/netsys/2024/priv/14.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
23.2. 確認演習
演習 1
以下のア. 〜ウ. は、 ICN におけるルータが有する主要なデータ構造の役割を簡潔に説明している。 ア. 〜ウ. の説明と合致するデータ構造の名称を答えなさい。
- ア. 要求パケットの転送先を管理する
- イ. 自身がキャッシュしているコンテンツを管理する
- ウ. パケットが到着したポート、つまり応答パケットの返送先を管理する
演習 2
以下の文章は、ルータが要求/応答パケットを受信したときの処理の流れを 説明している。 以下の文章における空欄に当てはまる適切な語句を解答しなさい。
- ICN ルータが要求パケットを受信したときの処理の流れ
- [ ア ] に当該コンテンツがキャッシュされているかを確認する。 コンテンツが [ ア ] にキャッシュされていれば、コンテンツを返送する。
- コンテンツが [ ア ] にキャッシュされていなければ、 [ イ ] に、要求パケットに対応するエントリが存在するかを確認 する。エントリが存在すれば、要求パケットが流入した [ ウ ] を当該エントリに追加する。
- [ イ ] エントリが存在しなければ、[ エ ] に、 要求パケットに対応するエントリが存在するかを確認する。[ エ ] エントリが存在すれば、要求パケットを次ノードに転送する。
- ICN ルータが応答パケットを受信したときの処理の流れ
- [ オ ] に、応答パケットに対応するエントリが存在するかを確認する。
- 応答パケットを [ カ ] にキャッシュする。この時に、 [ カ ] が完全に占有されている場合には、 キャッシュ置き換えアルゴリズムに従って、 [ カ ] からコンテンツを破棄した上で、 新たにコンテンツを挿入する。
- [ オ ] エントリに含まれている全ての [ ウ ] に応答パケットを送出する。
23.3. 略解
略解 1
- ア. FIB (転送情報ベース)
- イ. CS (コンテンツストア)
- ウ. PIT (ペンディング要求テーブル)
略解 2
- ア: CS (コンテンツストア)
- イ: PIT (ペンディング要求テーブル)
- ウ: フェース/出力ポート
- エ: FIB (転送情報ベース)
- オ: PIT (ペンディング要求テーブル)
- カ: CS (コンテンツストア)
23.4. 課題
第 2 回の課題と同様である。
24. 第 15 回: 後半の総復習
24.1. 前回の質問とその回答
なし。
24.2. 授業の流れ
1. 演習 (30 分) 2. 採点・教え合い・回答のアップロード (10 分) 3. FURIKA への回答 (10 分) 4. 解説 (40 分)