A型システムエンジニアの勉強メモ

情報処理試験の午前問題をネタにして、解説をじっくり書きながら勉強しています。基礎は大事。

広告

基本情報技術者試験 平成31年度 春期 午前 問34

通信における、送信元と送信先のポート番号についての問題。

 

--------------------------

基本情報技術者試験

平成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

--------------------------

解説

 

更新さぼってしまった。

モチベーションを保つことは難しい。

 

 

ポート番号の問題。

通信したい PC やサーバーがネットワークのどこにいるかは IP アドレスで指定し、その PC やサーバーの OS 上で動いているサービスをポート番号で指定する。

サービスは自身に割り当てられたポート番号宛の通信を待っていて(Listen 状態)、通信が来たらサービスを提供するための通信を返す。

 

問題にもある web サービスで使われる HTTP は 80 番ポートが割り当てられている。

0 〜 1023 のポート番号はウェルノウンポート番号と呼ばれ、各番号にサービスが世界共通で割り当てられている。

よく見るところだと22番 SSH、25番 SMTP、53番 DNS、443番 HTTPS、など。

 

世界の共通認識として "80 番は HTTP" となっているので、webサーバーを作る側は悩まず 80 番ポートを割り当て、アクセスする側は HTTP サービスを使いたい時は悩まず 80番ポートを指定するだけで良い。

(今はセキュリティ気にしてほぼ HTTPS になっているけれども)

 

 

なお、HTTP は 80 番ポートでないといけない、という意味ではないことに注意。

8000 番とか 8080 番ポートで待ち受けている HTTP も存在する。ただし、アクセスする側がそのことを知らないと 80 番ポートを指定してしまうのでサービスが始まらなくなってしまう。

 

 

ポート番号の説明をする際は、IP アドレスはアパート(≒ PC)の住所、ポート番号はアパート内の部屋番号(≒ PC 上の各サービス)によく例えられる。

送信元(差出人)住所が IP アドレス A +ポート番号 50001送信先(宛先)住所が IPアドレス B +ポート番号 80 の時に、お返事の送信元と宛先はどうなりますか?がこの問題が聞いていることになる。

 

答えとしては、手紙と同じく送信元と送信先が入れ替わればよく、 IPアドレス B + ポート番号 80 からの返事が宛先 IP アドレス A + ポート番号 50001に 届くことになる。

ということで選択肢アが正解

違う住所から返信が来たら、こんなところに連絡したっけ?となる。というか怖い。

 

通信開始時の送信元ポート番号 50001 はサービスを受け付けているポートではない。

HTTP 通信の戻りパケットがちゃんと返ってくるように(住所をちゃんと指定できるように)一時的に50001を利用しているだけ。

同じプロセスが次に HTTP 通信をしたいときは 50020 を使ってるかもしれないし、54321 かもしれない。

 

 

前後の問題はこちら。