送信者 → 直列ルータ → 受信者 の流れを、性能配分を変えながら対話的に理解する教材
簡易なネットワークシミュレータを作成し、パケットの到着率 λ と各ルータのサービス率 μᵢ を動かしながら、系全体の遅延・スループット・ロスの変化を観察します。以下の 4 週間の流れで実施していきます。
sample1.cpp で行う課題配布/sample1.cpp の // *** を埋める(一様 → 区間変換、exp_dist は逆関数法、normal_dist は Box–Muller、lognormal_dist はパラメタ変換)DIST_TYPE を 1〜4 に変えて g++ sample1.cpp && ./a.out > data.txt を 4 回(末尾の Average:… 行はツールが自動スキップ)sample2.cpp で行う課題配布/sample2.cpp の // *** を埋める(r_total の積分、指数/対数正規のサービス時間、滞在時間の総和計算)rho を 0.1〜0.9 まで 0.05 刻みで変えて再コンパイル・実行し、出力を追記: ./a.out >> results.txt(17 点)#define TRACE_QUEUE 1 で 1 回実行 → queue_trace.csv が出力 → 同 HTML の「4. バッファ状態」で階段グラフ + パケットが溜まるアニメーションを確認sample3.cpp で行う課題配布/sample3.cpp の // *** を埋める(指数/対数正規のサービス時間、server1..5 の t_ave, q_max を決める。使える t_ave: 5, 6, 10, 15, 18, 30、総バッファ = 20)./a.out で average rate(スループット)を取得。配置を変えて複数回#define TRACE_QUEUE 1 で実行 → queue_trace3.csv が出力 → 専用 HTML で各サーバ Q_i(t) とパイプラインアニメーションを確認。ボトルネック位置がひと目でわかるqueue_trace3.csv や average rate の標準出力がそのまま使える