プロトコルプロジェクトクイズ
最終更新日: 2026年9月15日
最初にプロトコルプロジェクトを読んでください。各設問で最適な回答を1つ選び、どのような追加の証拠があれば結論が変わるかも説明してください。
- 2026年9月15日時点の提供状況の確認を正しく反映した学習計画はどれですか?
- A) 未完成のFall 2026 CS168サイトを、完成済みで固定された課題スケジュールとして扱う
- B) 公式のSummer 2026アーカイブを使い、学期を記録したうえで、課題へのアクセスに別途要件があるか確認する
- C) このワークブックを完了するため、無料で利用できる最新のCS144 graderを必須とする
- D) すべての演習でゲストのPythonをPython 3.7に置き換える
回答を表示
回答: B
解説: Summerのアーカイブにはアクセスできますが、Fallのサイトは構築中です。公開されている仕様があっても、大学の採点システムを利用できるとは限りません。CS144は任意で、過去のエントリは404を返しました。アーカイブにあるPythonテストの注記は、その課題用の環境に関するものであり、ワークブックで使うPython 3.9以降のゲスト環境には当てはまりません。
- UDPプローブは
192.0.2.10:41000 → 198.51.100.20:33452です。ICMP Time Exceeded応答に含まれる元のパケットの宛先は198.51.100.99で、ポートは同じです。ledgerではどう処理すべきですか?- A) 両方のポートが一致するため、この応答を対応付ける
- B) 外側のルーターアドレスが妥当に見えれば、対応付ける
- C) このプローブとは無関係とし、宛先の違いを保持する
- D) 送信ledgerを書き換え、応答に一致させる
回答を表示
回答: C
解説: 対応付けでは、アドレスとプロトコルを含め、引用された元のパケットを使います。ポートが一致していても宛先が異なる事実は覆せません。外側の送信元はエラーの送信元を示すもので、元のプローブの送信元ではありません。この記録は証拠として残し、期待される応答として数えないでください。
- TTL-2プローブに一致する応答はありませんでしたが、TTL-3のUDPプローブに宛先Port Unreachableが対応付けられました。何が言えますか?
- A) 2つ目のルーターがすべてのアプリケーショントラフィックをドロップする
- B) TTL-3プローブについては宛先への到達が裏付けられているが、TTL-2は未観測である
- C) 応答のなかったルーターのRTTは0
- D) TTL-1の重複応答を使って欠けたホップを補える
回答を表示
回答: B
解説: 期限内に応答がないことは、観測上の限界を示します。フィルタリング、応答レート制限、または戻り経路の動作によって、中間ルーターからの応答が見えないことがあります。後の段階で宛先に到達した証拠があっても、その中間ルーターは特定できず、アプリケーションの固定経路も証明できません。重複応答は重複のまま扱います。
- 2バイト長のフレーミングプロトコルが、同じ完全なバイト列を4種類の異なる
recv()分割で受け取りました。どの結果が必要ですか?- A)
recv()ごとに1つのアプリケーションレコードを出力する - B) 完全なデータが分割される方法に関係なく、同じ論理レコードを出力する
- C) 長さフィールドが分割されたら、直ちに接続を終了する
- D) bodyの一部を受信した状態でEOFになった場合、そのbodyが完成したとみなす
- A)
回答を表示
回答: B
解説: TCPが公開するのはメッセージ境界ではなくバイトストリームです。パーサーは不完全なヘッダー/bodyを保持し、完全なレコードを一貫して出力する必要があります。bodyの途中でEOFになった場合は切り詰めエラーであり、上限より大きな長さは、無制限のメモリ確保を行う前に拒否します。これらは大学の課題の解答ではなく、この演習で定義したプロトコルの性質です。
- 送信側が通知する受信ウィンドウは大きいのに、輻輳ウィンドウは小さい状態です。送信速度が遅くなるのはなぜですか?
- A) 受信側に空き容量があるため、送信側には制限がなくなる
- B) 受信側のフロー制御とは別に、輻輳制御が未処理データを制限することがある
- C) 受信ウィンドウと輻輳ウィンドウは同じフィールドの別名である
- D) CS168 Project 3が判断に必要なすべての輻輳制御を実装している
回答を表示
回答: B
解説: 受信側のフロー制御は受信側を保護し、輻輳制御は経路上の負荷を制限します。未確認バイト数、pacing、利用可能なアプリケーションデータも影響します。CS168のアーカイブ版Project 3では輻輳制御が明示的に対象外なので、課題が完了しても本番用コントローラーは検証できません。
- キャプチャされた接続では、SYNのsequence numberが1000で、その後、1001から始まる6バイトのpayloadがあります。欠落がない場合、このpayloadを受信したとき、次のバイト番号に対応するACKはいくつですか?
- A) 1006
- B) 1007
- C) pure ACKも1つ消費するため1008
- D) セグメント数で決まる
回答を表示
回答: B
解説: SYNはシーケンス空間を1つ消費します。payloadは1001から1006までを占めるため、次に期待するバイトは1007です。pure ACKはシーケンス空間を消費しません。FINがある場合はさらに1つ消費します。数えるのはストリームのバイト数であり、キャプチャソフトがパケットをまとめる方法ではありません。
--failを付けずに実行したcurlが正常終了し、/missingからHTTP 404が表示されました。何が確認できましたか?- A) HTTPサーバーに到達していない
- B) 要求したリソースが存在する
- C) HTTP通信は完了したが、リソース検索は失敗した
- D) TCPチェックサムが間違っている
回答を表示
回答: C
解説: トランスポート/ツールの成功とアプリケーションの状態は別です。否定経路の演習では、動作するHTTP接続を通じて意図したアプリケーションエラーが返されています。終了コード0を要求した処理の成功とみなさず、ステータスとbodyを調べてください。--failを追加するとHTTPエラーステータスに対するcurlの処理は変わりますが、サーバーの結果は変わりません。
- HTTP/3が使われたという主張を最もよく裏付ける証拠はどれですか?
- A) 任意のUDPパケットがポート443宛てに届いた
- B) ツールの対応やフォールバックに関係なく、コマンドラインに
--http3が含まれている - C) クライアントの対応状況を記録し、エンドポイントでQUICとネゴシエートされたHTTP/3を確認する
- D) loopbackの演習用サーバーからHTTP/1.1出力を得た
回答を表示
回答: C
解説: ポート番号や要求したモードだけでは、ネゴシエートされたプロトコルを証明できません。--http3はフォールバックすることがあり、--http3-onlyは動作が異なり、対応ビルドも必要です。QUICはUDP上にストリームを運び、HTTP/3はそのストリーム上にHTTPを対応付けます。独立したストリームによってTCPのストリーム間配信待ちを避けられても、輻輳制御は共有されます。
- ICMP ledgerをIPv6へ拡張すると、何が変わりますか?
- A) TTLという名前だけを変更し、すべてのヘッダーオフセットとICMPタイプはそのまま使う
- B) Hop Limitを使い、IPv6拡張ヘッダーとICMPv6タイプを考慮し、アドレスファミリー/スコープを記録する
- C) ルーターは転送中のIPv6パケットをフラグメント化するものと想定する
- D) AAAAレコードがあれば、ゲストOSにIPv6経路がある証拠になる
回答を表示
回答: B
解説: IPv6の解析とICMPv6エラータイプは異なります。ルーターは転送中のパケットをフラグメント化しません。Packet Too BigはTime Exceededとは異なる診断に使います。AAAAレコードが示すのは名前解決の結果であり、利用可能なルーティングではありません。IPv6 Neighbor DiscoveryもARPとは異なります。
- キャプチャが20秒の期限に達した時点で、接続が閉じた記録はまだありませんでした。正しい完了記録はどれですか?
- A) サーバーは接続を閉じられないと判断する
- B) タイムアウトの状態を隠し、欠けているFINパケットを推測する
- C) タイマーの結果と部分的な観測範囲を記録し、自分が起動したhelperを停止してlistenerを確認する
- D) TCPを使うすべてのプロセスを停止し、制限を設けずに再度キャプチャする
回答を表示
回答: C
解説: キャプチャの期限は収集の境界です。終了状態とキャプチャカウンターを保持し、接続終了は失敗ではなく未観測と記録してください。自分が起動したフォアグラウンドhelperだけを停止するか、タイマーが切れるのを待ち、その後listenerのフィルターを確認します。権限が制限されたオフライン分析も、同様に制限付きであると明記してください。
ワークブックの完了条件またはエキスパートコースの一覧に戻ります。