コンテンツにスキップ

レポート課題(任意提出)

任意提出です

提出は必須ではありません。提出された場合は、演習課題と小テストで得られる評価点に、このレポートの評価を加えて科目評価とします。

テーマ

次の 2 つのテーマから 1 つを選んで レポートを書いてください。考え方と例は、第 7 回のスライド(network07.pdf)の「3. 測ってみる」と「4. おまけのレポート課題」にあります。

テーマ A: 測定実験 テーマ B: 新しいプロトコルの設計と実装
やること hey で HTTP サーバの性能を測り、結果を説明する 新しいプロトコルを自分で設計し、クライアントとサーバを実装する
使うもの httpServer.py・httpThreadServer.py・hey Python のソケット(第 3〜6 回の内容)
レポートの中心 測定の条件・結果のグラフ・結果の理由 プロトコルの仕様・実装・動かして確かめた結果

テーマ A: hey による HTTP サーバの測定実験

接続の条件を自分で決め、hey を使って HTTP サーバの性能を測る実験を行ってください。条件は、スライドの測定例や次の例を参考に、各自で工夫して決めてください。

  • リクエスト数(-n)、同時接続数(-c)を変える
  • httpServer.py と httpThreadServer.py を比べる
  • ネットワーク上の距離を変える(自分の PC(127.0.0.1)、同じ LAN 内の自分の PC、許可された学内サーバ)
  • 送るファイルのサイズを変える
  • 待受けキューのサイズ(listen() の引数)や受信バッファのサイズ(recv() の引数)を変える

負荷テストの宛先は限定されています

負荷テストを行ってよい相手は、ex7 に示した 3 つ(自分の PC、自分が管理しているサーバ、www.math.ryukoku.ac.jp と whale2.math.ryukoku.ac.jp)だけです。処理能力の上限を探る実験は、自分が管理しているサーバに対してのみ行ってください。

テーマ B: 新しいプロトコルの設計と実装

HTTP は「どんな文字列を、どの順に送り合うか」の取り決めでした。同じように、新しい取り決め(プロトコル)を自分で設計し、そのクライアントとサーバを Python のソケットで実装してください。既存のプロトコル(HTTP など)を実装する課題ではありません。

  1. 目的を決める — 何をするためのやり取りか
  2. 仕様を書く — メッセージの形式、送り合う順序、エラーのときの返事
  3. 実装する — クライアントとサーバを書く
  4. 確かめる — 正しい使い方だけでなく、間違った命令や途中で切れた接続も試す

スライドの MEMO プロトコルは、仕様の書き方を示すための例です。これを写したり手直ししたりするのではなく、目的から自分で考えたプロトコルにしてください。

サーバを動かす場所

サーバは自分の PC か、自分が管理するサーバで動かしてください。ポートを開けたまま放置しないでください。

レポートに含むべき内容

  1. タイトル — 測定の内容や目的が推測できる、簡潔なタイトル
  2. 目的 — HTTP 通信やサーバプログラムのどのような側面に注目したか(何を測り、何の効果を確かめるための実験か)
  3. 条件 — 測定の各種条件(どのパラメータをどの範囲で変えたか、どの値に固定したか)
  4. 方法 — 使ったサーバプログラムや hey のコマンドなど(読んだ人が実験を再現できるように書く)
  5. 結果 — 測定結果をグラフにまとめ、レポートの中で必ずそのグラフを説明する
  6. 考察 — 結果から分かること(分からないこと)と、その結果が生じた理由として考えられること
  1. タイトル — プロトコルの目的が推測できる、簡潔なタイトル
  2. 目的 — 何をするためのプロトコルか
  3. 仕様 — メッセージの一覧、やり取りの順序の図、エラーの決め方と、そう決めた理由
  4. 実装 — クライアントとサーバのコード(読んだ人が動かせるように書く)
  5. 結果 — 実行例と、正しくない使い方や途中で切れた接続などを試した結果
  6. 考察 — 仕様の限界(何ができないか、どう直せるか)と、その理由

口頭試問に対応できる日時

どちらのテーマも、レポートの最後に口頭試問に対応できる曜日・講時の候補を 3 つ以上書いてください(例: 月曜 3 講時、水曜 2 講時、木曜 4 講時)。口頭試問については「注意事項」を見てください。

提出方法

  • PDF 形式のファイルにして、aiJudge の課題「レポート課題(任意提出)テーマ A」「同 テーマ B」のうち、選んだテーマの課題のどちらか一方だけに提出してください。
  • ファイル名は半角英数字のみ(T・Y は大文字)で、「自分の学籍番号.pdf」(例: Y230999.pdf)とします。
  • 第 8 回(11/13)の終了後から提出できます。
  • 課題の趣旨に沿っていないなどの理由で、再提出をお願いすることがあります。

提出締切

2026 年 11 月 27 日(金)23:59 まで(締切を過ぎると提出できません)

評価

次のような観点から総合的に判断します。

  • レポートとしての体裁(含むべき内容が含まれているか、きちんとした日本語で書かれているか)
  • 目的に沿った条件・方法(テーマ A)や仕様(テーマ B)が設定されているか
  • 結果が分かりやすくまとめられているか
  • 考察で、結果に基づいた客観的な事実が述べられているか。その事実に基づいて自分の考えが述べられているか

評価点

  • 評価: 0〜20 点 + α
  • 追加の加点(+α): 独自性や内容、完成度などに応じて加点します
  • 同一と見なされるレポートは、同じレポートの人数を n として、1/n 倍した点数で評価します
    • 同じ観点から同じパラメータを変えるような実験が複数のレポートで行われることはあり得ます。レポートの内容や実験の数値、考察などを見て独自性を判断するので、独力で作成する限りは気にする必要はありません
    • 共同作成は禁止しませんが、評価では不利になります。複数人で作成した場合はレポートにその旨を明記し、提出は各自で行ってください

注意事項

考察に感想は不要です

考察では、自分が行った実験や実装の目的と、その結果について、次のようなことを客観的に述べてください。

  • 得られた結果から、目的に対して何が言えるか(あるいは言えないか)
  • その結果をもたらした原因として考えられること
  • 考えられる原因を特定するには、どのような実験や確認をすればよさそうか

感想を書きたい場合は、考察とは別の章を立ててください。

口頭試問

提出されたレポートについて、口頭試問を行うことがあります。レポートの内容(実験や実装で行ったこと、結果の理由など)を、その場で説明してもらいます。対象者には、レポートに書かれた候補の曜日・講時から日時を決めて、提出締切から 2 週間以内(12 月 11 日(金)まで)に連絡します。この日までに連絡がなければ、口頭試問はありません。

生成 AI の利用

コードや文章の作成の補助に生成 AI を使ってかまいません。ただし、使った箇所と使い方をレポートに明記してください。実験の結果や考察の内容は、自分で確かめ、自分で説明できるものにしてください。

他人のレポートの借用

過年度の学生や同級生のレポートを借用して提出した場合は、演習課題の点をすべて 0 点として扱います。