HTTP通信の応答ポート番号はどう決まる?
基本情報技術者試験 平成31年度春期 午前 問34 / ネットワーク › 通信プロトコル
過去問にチャレンジ
PCとWebサーバがHTTPで通信している。PCからWebサーバ宛てのパケットでは,送信元ポート番号はPC側で割り当てた50001,宛先ポート番号は80であった。WebサーバからPCへの戻りのパケットでのポート番号の組合せはどれか。

- ア
送信元(Webサーバ)のポート番号:80,宛先(PC)のポート番号:50001
- イ
送信元(Webサーバ)のポート番号:50001,宛先(PC)のポート番号:80
- ウ
送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:80
- エ
送信元(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へ送られたことを確認します。戻りのパケットでは送信側と受信側が入れ替わるため、ポート番号の向きも逆にして考えます。
選択肢ごとの解説
- ○ア 送信元(Webサーバ)のポート番号:80,宛先(PC)のポート番号:50001サーバからの応答なので、送信元は要求を受けたポート80です。宛先は要求を送ったPC側のポート50001となり、この組合せが該当します。
- ×イ 送信元(Webサーバ)のポート番号:50001,宛先(PC)のポート番号:80送信元50001、宛先80は、問題文にあるPCからサーバへ送るときの組合せです。サーバからPCへの戻りのパケットには当てはまりません。
- ×ウ 送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:80この通信の応答は、PCが要求に使ったポート50001へ戻ります。宛先を80とする記述は、受信するPC側のポート番号と一致しません。
- ×エ 送信元(Webサーバ)のポート番号:80と50001以外からサーバ側で割り当てた番号,宛先(PC)のポート番号:50001宛先50001は合っています。しかし、応答を送るサーバ側のポートは、要求の宛先だった80です。別の番号を送信元とする点が違います。
POINT
- ポート番号は、通信するプログラムを識別するために使います。
- 応答を考えるときは、要求を送った側と受けた側を入れ替えます。
- 送信元と宛先は、それぞれのパケットが進む向きに沿って読みます。
