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

HTTP通信の応答ポート番号はどう決まる?

基本情報技術者試験 平成31年度春期 午前 問34 / ネットワーク › 通信プロトコル

過去問にチャレンジ

平成31年度春期 午前 問34

PCとWebサーバがHTTPで通信している。PCからWebサーバ宛てのパケットでは,送信元ポート番号はPC側で割り当てた50001,宛先ポート番号は80であった。WebサーバからPCへの戻りのパケットでのポート番号の組合せはどれか。

平成31年度春期 午前 問34の図
  1. ア

    送信元(Webサーバ)のポート番号:80,宛先(PC)のポート番号:50001

  2. イ

    送信元(Webサーバ)のポート番号:50001,宛先(PC)のポート番号:80

  3. ウ

    送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:80

  4. エ

    送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:50001

会話形式の解説

講師講師
ポート番号は、通信するプログラムを識別する番号です。この問題では、戻りのパケットが進む向きに注目しましょう。
受験者受験者
50001は要求の送信元でした。返信でも送信元になるのでしょうか。
講師講師
送信元は、そのパケットを出した側です。要求はPCの50001からWebサーバの80へ進みます。
受験者受験者
戻りのパケットでは、Webサーバが送信元になるのですね。
講師講師
はい。要求を受けたWebサーバの80から、要求を出したPCの50001へ戻ります。
受験者受験者
50001から80という組合せは、要求の向きをそのまま使っているのですね。
講師講師
その通りです。WebサーバからPCへの戻りには当てはまりません。
受験者受験者
サーバ側の別の番号からPCの80へ送る組合せは、宛先も違うのですか。
講師講師
はい。PCが要求に使ったポートは50001なので、戻りの宛先を80にはできません。
受験者受験者
別のサーバ側番号からPCの50001へ送る組合せなら、宛先は合っていますね。
講師講師
宛先は合っています。ただし、サーバの送信元は要求を受けた80です。別の番号にする点が違います。
受験者受験者
各パケットの向きに沿って読むと、正しい組合せはサーバの80からPCの50001ですね。
講師講師
はい。応答では送る側と受ける側が入れ替わります。送信元と宛先のポート番号も逆にして確かめましょう。

まとめ

PCからWebサーバへの要求は、PCのポート50001からサーバのポート80へ送られます。戻りのパケットでは送る側と受ける側が入れ替わり、送信元はサーバの80、宛先はPCの50001です。ポート番号の送信元と宛先は、各パケットが進む向きに沿って判断します。

解答・解説

正解はアです

この問題のテーマ

HTTP通信の応答パケットで、送信元と宛先のポート番号がどうなるかを問う問題です。

解き方の考え方

まず、要求パケットがPCのポート50001からWebサーバのポート80へ送られたことを確認します。戻りのパケットでは送信側と受信側が入れ替わるため、ポート番号の向きも逆にして考えます。

選択肢ごとの解説

  1. ○ア  送信元(Webサーバ)のポート番号:80,宛先(PC)のポート番号:50001
    サーバからの応答なので、送信元は要求を受けたポート80です。宛先は要求を送ったPC側のポート50001となり、この組合せが該当します。
  2. ×イ  送信元(Webサーバ)のポート番号:50001,宛先(PC)のポート番号:80
    送信元50001、宛先80は、問題文にあるPCからサーバへ送るときの組合せです。サーバからPCへの戻りのパケットには当てはまりません。
  3. ×ウ  送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:80
    この通信の応答は、PCが要求に使ったポート50001へ戻ります。宛先を80とする記述は、受信するPC側のポート番号と一致しません。
  4. ×エ  送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:50001
    宛先50001は合っています。しかし、応答を送るサーバ側のポートは、要求の宛先だった80です。別の番号を送信元とする点が違います。

POINT

  • ポート番号は、通信するプログラムを識別するために使います。
  • 応答を考えるときは、要求を送った側と受けた側を入れ替えます。
  • 送信元と宛先は、それぞれのパケットが進む向きに沿って読みます。

※出典:平成31年度春期 基本情報技術者試験 午前 問34(一部改変)