基本情報 平成28年度 秋期 問35:テクノロジ系に関する問題
PC と Web サーバが HTTP で通信している。PC から Web サーバ宛てのパケット では, 送信元ポート番号は PC 側で割り当てた 50001, 宛先ポート番号は 80 であっ た。Web サーバから PC への戻りのパケットでのポート番号の組合せはどれか。
- a宛先 (PC) の ポート番号正答
- b80 50001 50001 80 80 と 50001 以外からサーバ側で割り当てた番号 |80 80 と 50001 以外からサーバ側で割り当てた番号 | 50001
- c送信元 (Web サーバ) のポート番号
- dHlさ|ユ|ヽ
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは a(送信元80・宛先50001の組合せ)です。
TCP通信は「手紙のやりとり」みたいなもの。行きは「送信元PC:50001 → 宛先Webサーバ:80」、戻りはこれをひっくり返すだけ:
- 戻り:送信元(Webサーバ)= 80、宛先(PC)= 50001
👉 覚え方:戻りは行きの送信元・宛先を入れ替える。
Webサーバが「これは50001番のお客さんからの返事だ」とポート番号でブラウザの正しいタブに届きます。
なぜこれが正解か
正解は a。TCP通信はクライアント・サーバ間で双方向の通信で、行きと戻りで送信元と宛先のIP・ポートが入れ替わる。
- 行きパケット(PC → Webサーバ):
- 送信元(PC): 50001(エフェメラルポート)
- 宛先(Webサーバ): 80(HTTPウェルノウンポート)
- 戻りパケット(Webサーバ → PC):
- 送信元(Webサーバ): 80
- 宛先(PC): 50001
Webサーバ側はリッスンポート80番から応答を返し、PCは50001番でブラウザの該当タブ/コネクションを識別する。
各選択肢の解説
- a 送信元80・宛先50001:正解(行きを入れ替えた組合せ)
- 50001→80:行きと同じパケットの方向で誤り
- 80・50001以外からサーバ割当→80:サーバが新規ポートを使う必要なし
- 80・50001以外からサーバ割当→50001:同上
覚え方・ひっかけ注意
「TCPの戻り=送信元と宛先を入れ替えるだけ」が鉄則。サーバは新しいポートを動的に割り当てない(リッスン中の同一ポート80から返す)。PC側のエフェメラルポート(典型 49152-65535)がコネクション識別子として機能。5タプル(送信元IP・送信元ポート・宛先IP・宛先ポート・プロトコル)でTCPコネクションが一意に特定される。
理論的背景
TCP通信はOSIモデルのトランスポート層で動作。各TCPコネクションは5タプル(プロトコル、送信元IP、送信元ポート、宛先IP、宛先ポート)で一意識別される。3-way handshake(SYN→SYN/ACK→ACK)でコネクション確立、4-way handshake(FIN→ACK→FIN→ACK)で切断。ステートマシン(CLOSED→LISTEN→SYN_SENT→ESTABLISHED→...)で状態管理。
ポート番号体系(IANA):
- 0-1023:Well-known Ports(HTTP:80、HTTPS:443、SSH:22等)
- 1024-49151:Registered Ports(MySQL:3306、PostgreSQL:5432等)
- 49152-65535:Dynamic/Private/Ephemeral Ports
実務での使われ方
NAT環境ではポート変換(PAT/NAPT)でプライベートIPの複数端末が1つのグローバルIPを共有:
- 内部:192.168.1.10:50001 → 外部:203.0.113.5:60001
- NAT変換テーブルでマッピング保持
- 戻りパケット:外部:80 → 203.0.113.5:60001 → NAT解決 → 192.168.1.10:50001
ロードバランサ/プロキシ:
- L4LB(NLB):5タプルで分散
- L7LB(ALB):HTTPヘッダで分散
- Reverse Proxy(Nginx, HAProxy):オリジンサーバへ転送
ファイアウォール/IDS:
- ステートフルファイアウォール:コネクション追跡で戻りパケット自動許可
- DPI(Deep Packet Inspection):ペイロード検査
試験での位置づけ
ネットワーク分野の頻出テーマ。基本情報ではポート番号と用途、応用情報・ネットワークスペシャリストではTCP状態遷移・輻輳制御・スライディングウィンドウ・NAT/NAPT・コネクション識別まで踏み込む。
選択肢の発展補足
TCP高度機能:
- MSS(Maximum Segment Size):1セグメント最大サイズ
- MTU(Maximum Transmission Unit):1パケット最大サイズ
- Path MTU Discovery:経路最小MTU発見
- TCP Window Scaling:高帯域広遅延通信での性能向上
- TCP Fast Open(TFO):3way HS中にデータ送信
- Selective ACK(SACK):効率的再送制御
- TCP BBR:Googleの輻輳制御アルゴリズム
HTTP/2では1コネクションで多重化、HTTP/3ではTCPでなくQUIC(UDPベース)を使用しヘッドオブラインブロッキング解消。TLS 1.3 + QUICで接続確立を1RTT化。eBPFでカーネル拡張・XDPで高速パケット処理、DPDK・RDMAでユーザ空間ネットワーク、と現代ネットワーク技術は急速に進化中。試験対策はTCP基本動作+ポート概念+現代ネットワーク技術の理解で応用情報・ネットワークスペシャリスト等の上位資格に対応可能。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 秋期 問35/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。