マナビング基本情報技術者

プロキシ通信の宛先ポート番号はどう決まるか

基本情報技術者試験 令和元年度秋期 午前 問34 / ネットワーク › 通信プロトコル

過去問にチャレンジ

令和元年度秋期 午前 問34

クライアントAがポート番号8080のHTTPプロキシサーバBを経由してポート番号80のWebサーバCにアクセスしているとき,宛先ポート番号が常に8080になるTCPパケットはどれか。

  1. ア

    AからBへのHTTP要求及びCからBへのHTTP応答

  2. イ

    AからBへのHTTP要求だけ

  3. ウ

    BからAへのHTTP応答だけ

  4. エ

    BからCへのHTTP要求及びCからBへのHTTP応答

会話形式の解説

講師講師
宛先ポート番号は、パケットを受け取る側を見て判断します。プロキシの前後で通信を分けて追ってみましょう。
受験者受験者
プロキシは8080番で待ち受けるので、プロキシに届くパケットはどれも宛先が8080番だと思いました。
講師講師
まず、クライアントからプロキシへの要求はどうでしょうか。受け取るプロキシの待受ポートは何番ですか。
受験者受験者
8080番です。この要求の宛先ポートは8080番になります。
講師講師
そのとおりです。では、プロキシからクライアントへの応答も8080番を宛先にしますか。
受験者受験者
応答を受け取るのはクライアントです。クライアントが接続に使ったポートが宛先になるので、8080番とは限りません。
講師講師
次に、プロキシとWebサーバの間を見ます。プロキシからWebサーバへの要求は、何番を宛先にしますか。
受験者受験者
Webサーバが待ち受ける80番です。プロキシの8080番ではありません。
講師講師
では、Webサーバからプロキシへの応答はどうでしょう。プロキシに戻るというだけで8080番と決められますか。
受験者受験者
決められません。プロキシがWebサーバへの接続に使ったポートに戻るので、常に8080番とはいえません。
講師講師
はい。Webサーバからの応答を含む組合せも、プロキシからWebサーバへの要求を含む組合せも、条件に合いません。
受験者受験者
宛先が常に8080番になるのは、クライアントからプロキシへの要求だけです。
講師講師
応答では、対応する要求を送った側のポートを確認します。「常に」と問われたら、その番号になる場合があり得るだけでは選べません。

まとめ

TCPパケットの宛先ポート番号は、受信先を見て判断します。クライアントからHTTPプロキシへの要求は、プロキシの待受ポートである8080番が宛先です。プロキシからWebサーバへの要求は80番が宛先で、各応答は要求側が接続に使ったポートへ戻ります。したがって、宛先が常に8080番になるのはクライアントからプロキシへの要求だけです。

解答・解説

正解はイです

この問題のテーマ

HTTPプロキシを経由する通信で、TCPパケットの宛先ポート番号を判断する問題です。

解き方の考え方

パケットの宛先ポートは、送信元ではなく受信先を見て判断します。要求では接続先の待受ポート、応答では要求側が接続に使ったポートが宛先になります。AとBの間、BとCの間を分けて追います。

選択肢ごとの解説

  1. ×ア  AからBへのHTTP要求及びCからBへのHTTP応答
    AからBへの要求は、8080番で待ち受けるプロキシBに届きます。一方、CからBへの応答はBがCへの接続に使ったポートへ届くため、宛先が常に8080番とはいえません。
  2. ○イ  AからBへのHTTP要求だけ
    AからBへの要求は、Bのプロキシが待ち受ける8080番ポートに送られます。したがって、この要求の宛先ポートは常に8080番です。
  3. ×ウ  BからAへのHTTP応答だけ
    BからAへの応答は、AがBへの接続に使ったポートを宛先とします。Bの待受ポートである8080番を宛先にするわけではありません。
  4. ×エ  BからCへのHTTP要求及びCからBへのHTTP応答
    BからCへの要求は、80番で待ち受けるWebサーバCに送られます。CからBへの応答はBがCへの接続に使ったポートへ戻るので、どちらも宛先が常に8080番になるとはいえません。

POINT

  • ポート番号は、通信先のプログラムを識別する手掛かりです。
  • プロキシを挟む場合は、クライアント側とWebサーバ側の通信を分けて考えます。
  • 応答の宛先を調べるときは、対応する要求を送った側のポートを確認します。
  • 「常に」とある場合は、偶然その番号になり得るだけでは該当しません。

※出典:令和元年度秋期 基本情報技術者試験 午前 問34