基本情報技術者 2011年 春期 午前(科目A) 問36
問題文
TCP及びUDPのプロトコル処理において、通信相手のアプリケーションを識別するために使用されるものはどれか。
選択肢
ア:MACアドレス
イ:シーケンス番号
ウ:プロトコル番号
エ:ポート番号(正解)
🔒 解説は解答すると表示されます
ポート番号【午前解説】
正解の理由
正解は エ(ポート番号)です。
ポート番号はTCP/UDPのヘッダに含まれる識別子で、送信元と宛先のアプリケーション(プロセス)を区別します。IPアドレスが「どのホストか」を示すのに対し、ポート番号は「そのホスト上のどのアプリケーションか」を指定し、IPアドレス+ポート番号+プロトコル(TCP/UDP)の組み合わせでソケットが決まります。
ポート番号はTCP/UDPのヘッダに含まれる識別子で、送信元と宛先のアプリケーション(プロセス)を区別します。IPアドレスが「どのホストか」を示すのに対し、ポート番号は「そのホスト上のどのアプリケーションか」を指定し、IPアドレス+ポート番号+プロトコル(TCP/UDP)の組み合わせでソケットが決まります。
解法ステップ
- 問題が「アプリケーションを識別する」点に着目する。
- OSI参照モデルまたはTCP/IPモデルで「アプリケーション識別」がどの層の役割かを考える(トランスポート層)。
- 各選択肢を層と機能に当てはめる:MAC→リンク層、シーケンス番号→TCP制御、プロトコル番号→IPヘッダの識別、ポート番号→トランスポート層のアプリ識別。
- トランスポート層に該当する「ポート番号」を選ぶ。
選択肢別の誤答解説
- ア: MACアドレス
誤り。MACはデータリンク層でネットワークインターフェース(物理/ローカル)を識別するもので、ホスト内のアプリケーション識別には使いません。 - イ: シーケンス番号
誤り。TCPのシーケンス番号はデータの順序制御や再送管理に使われ、通信相手のアプリケーション識別には関係ありません。 - ウ: プロトコル番号
誤り。IPヘッダのプロトコル(またはIPv6の次ヘッダ)フィールドは上位のプロトコル種別(TCP/UDP/ICMPなど)を示すだけで、個々のアプリケーション識別は行いません。 - エ: エ ポート番号
正解。TCP/UDPヘッダのポート番号がアプリケーション(ソケット)を識別します。ポートは16ビットで、よく使われる80(HTTP)、443(HTTPS)、22(SSH)などのウェルノウン番号があります。
よくある誤解
- 「MACアドレスがアプリケーションを識別する」と考える誤り:MACはネットワーク機器のインターフェース識別でありアプリケーションとは無関係です。
- 「プロトコル番号でアプリを識別できる」と思う誤り:プロトコル番号はIP層で次に処理すべきトランスポート層プロトコル(例:TCP=6, UDP=17)を示すだけです。
- 「シーケンス番号が通信先を決める」との混同:シーケンス番号はTCPの信頼性・順序制御用で宛先識別の役割はありません。
補足コラム
- ポート番号の範囲は 〜(16ビット)。一般に 〜 がウェルノウンポート、〜 が登録ポート、〜 がエフェメラル(動的)ポートとして扱われることが多いです。
- 「ソケット」は通常、IPアドレス+ポート番号+プロトコル(TCP/UDP)の組合せで一意の通信端点を表します。
- NAT環境では外側のポート番号を書き換えて複数内部ホストを外部と通信させるため、ポート番号はアプリ識別に加えてアドレス変換でも重要です。
- UDPはコネクションレスでシーケンス番号を持たない点、TCPは信頼性確保のためにシーケンス番号や確認応答(ACK)を用いる点を押さえておきましょう。
FAQ
Q1: 同じポート番号を複数のプロセスが使えますか?
A1: 同一ホスト・同一プロトコルで同一IPアドレスに対して同じポートを複数プロセスがバインドすることは原則できません(一部の特殊オプションを除く)。ただし異なるIPアドレスやプロトコル(TCPとUDP)は共存可能です。
A1: 同一ホスト・同一プロトコルで同一IPアドレスに対して同じポートを複数プロセスがバインドすることは原則できません(一部の特殊オプションを除く)。ただし異なるIPアドレスやプロトコル(TCPとUDP)は共存可能です。
Q2: プロトコル番号(IPヘッダ)はアプリ識別に使えますか?
A2: いいえ。プロトコル番号は「上位プロトコルがTCPかUDPか」を示すのみで、個々のアプリケーション区別はポート番号で行います。
A2: いいえ。プロトコル番号は「上位プロトコルがTCPかUDPか」を示すのみで、個々のアプリケーション区別はポート番号で行います。
Q3: ポート番号はどのヘッダに入っていますか?
A3: TCPヘッダとUDPヘッダの先頭に送信元ポートと宛先ポート(それぞれ16ビット)が含まれます。
A3: TCPヘッダとUDPヘッダの先頭に送信元ポートと宛先ポート(それぞれ16ビット)が含まれます。
Q4: UDPのようなコネクションレスでもポート番号は使われますか?
A4: はい。UDPでも送受信するアプリケーションの識別のためにポート番号が使われます。
A4: はい。UDPでも送受信するアプリケーションの識別のためにポート番号が使われます。
関連キーワード: TCP、UDP、ポート番号、トランスポート層、ソケット、ウェルノウンポート、エフェメラルポート、NAT、シーケンス番号、MACアドレス、プロトコル番号

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

