IPA TCP・UDP・IP層の制御 — 頻出論点と過去問

頻出論点

1. この分野は何か

IP層の周辺で通信を補助・制御するプロトコル群(UDP上で設定を配るDHCPなど)と、トランスポート層でエンドツーエンドの通信を担うTCPおよびUDPを扱います。パケットのどのヘッダに何が入り、どちらが要求でどちらが応答かを読み取れるようになります。

2. 実際の出題のされ方

ITパスポートでは、Webやメールなどの下位で共通の基本通信機能を提供するTCP/IPの位置づけや、1台のサーバ上で複数のサービス(Webとメールなど)を識別するために用いるポート番号の役割が問われます。

各プロトコルの機能比較と実務コマンド、MTU計算は、応用情報技術者の午前や高度試験の午前Iで中心的に出題されます。具体的には、IPアドレスからMACアドレスを得るARPと直前に通信した機器のMACアドレスを調べる arp コマンド、エラー報告や ping に使われるICMP、クライアントへの事前アドレス設定が不要なDHCPの仕組みが出題されています。また、TCPとUDPのヘッダフィールドの比較、UDPを使うNTPの識別、イーサネット送出時の宛先情報の順序、MTUから分割送信時のデータ量を求める計算も問われています。

現在PCが使用しているTCPポート番号を調べる netstat コマンドはシステムアーキテクトの午前IIで、ping 応答を止めるファイアウォール設定はシステム監査技術者の午前IIで出題されています。

ヘッダフィールドの識別や状態遷移、IPv6の仕様、パケット観測からの攻撃推定は、ネットワークスペシャリストや情報処理安全確保支援士などの午前IIで問われます。IPヘッダのプロトコル番号によるICMPの識別、ICMPの Redirect や Time Exceeded の使い分け、DHCPクライアントがアドレス重複確認に使うARP(GARP)、マルチキャスト参加管理のIGMP、IPv6の固定長ヘッダとICMPv6近隣探索(MACアドレス解決・重複アドレス検出)が出題されています。TCPに関しては、LISTEN 状態でのSYN受付、シーケンス番号の増え方、輻輳制御アルゴリズムのBBR、そしてSmurf攻撃やSYN/ACKパケットの大量観測から攻撃先を推定する問題が出題されています。

3. 学習のポイント

  1. IP層周辺の制御プロトコル(ARP・ICMP・DHCP・IGMP)とIPv6

    • ARPとDHCP: ARPはIPv4でIPアドレスからMACアドレスを解決するプロトコルであり、DHCPクライアントが配布されたIPアドレスの重複を自身で確認する際(GARP / ARPプローブ)にも使われます。DHCPはブロードキャストでサーバを探すため、クライアント側にDHCPサーバのアドレスを事前設定しておく必要はなく、IPアドレス以外にサブネットマスクやデフォルトゲートウェイ、DNSサーバも自動設定できます。
    • ICMPとIGMP: ICMPはIPパケットのデータ部に格納され、IPヘッダのプロトコル番号で識別されます。疎通確認(ping のEcho Request / Echo Reply)のほか、ルータ中継時にTTLが0になったときやフラグメント再組立てタイムアウト時に返す Time Exceeded、同一ネットワーク上のより最適なルータを送信元に通知して経路変更を要請する Redirect、宛先到達不能やソースルーティング失敗を知らせる Destination Unreachable があります。一方、ホストのマルチキャストグループ参加・離脱通知やルータによる参加ホスト有無のチェックには IGMP を使用します。
    • IPv6のヘッダとICMPv6: IPv6の基本ヘッダは 40オクテットの固定長(拡張ヘッダ長は8オクテットの整数倍)で、経路途中のルータでのフラグメンテーションは行いません。IPv6ではARPが廃止され、MACアドレスの解決や重複アドレス検出(DAD)には ICMPv6 の近隣探索(NDP)が使われます。
  2. TCPとUDPの比較・状態遷移・輻輳制御

    • ヘッダフィールドの階層と違い:
      • IPヘッダ: 送信元/宛先IPアドレス、生存時間(TTL)、プロトコル番号。
      • TCP/UDP共通: 送信元ポート番号、宛先ポート番号、チェックサム。
      • TCPのみ: シーケンス番号、確認応答番号(受信確認番号)、ウィンドウサイズ、コントロールフラグ(SYN/ACK/FINなど)。
    • UDPの特徴と用途: コネクションレス型で確認応答や順序制御を持たない代わり、オーバーヘッドが小さく高速です。時刻同期の NTP やDNS問い合わせ、リアルタイム音声・映像配信などで使われます(FTP、POP3、TELNETなどは信頼性が必要なためTCPを使用)。
    • TCPの動作: 3ウェイハンドシェイクにおいて、サーバは接続待ちの LISTEN 状態のときにクライアントからのSYNパケットを受け付け、SYN-RECEIVED へ遷移します。連続送信時のシーケンス番号は、直前に送信したTCPセグメントのシーケンス番号 + 送信データのオクテット数となり、ウィンドウ制御もビットではなくバイト(オクテット)単位で行います。また、ボトルネック帯域幅と往復遅延時間(RTT)から送信ペースを調整するTCPの輻輳制御アルゴリズムとして BBR があります。
  3. カプセル化・MTU/MSS計算・攻撃パケットの分析

    • 宛先情報の送出順序: イーサネットフレームは外側のヘッダから順に送出されるため、宛先MACアドレス(イーサネットヘッダ)→ 宛先IPアドレス(IPヘッダ)→ 宛先ポート番号(TCPヘッダ) の順になります。
    • MTUと最大データ長(MSS)の計算: MTU(通常1,500バイト)はIPヘッダ・TCPヘッダ・データの合計の最大サイズであり、イーサネットのMACヘッダ(14バイト)やFCS(4バイト)はMTUに含まれません。したがって、1パケットでフラグメント化せずに送れるTCPデータの最大長(MSS)は 1,500−20(IP)−20(TCP)=1,4601,500 - 20(\text{IP}) - 20(\text{TCP}) = 1,460 バイトです。たとえば3,000バイトのデータを送る場合、1つ目と2つ目に1,460バイトずつ入り、3つ目のパケットのデータは 3,000−1,460×2=803,000 - 1,460 \times 2 = 80 バイトになります。
    • Smurf攻撃とSYNフラッドの推定:
      • Smurf攻撃: ICMPエコー要求の送信元IPを攻撃対象に偽装し、宛先にブロードキャストアドレスを設定して送信することで、大量のICMPエコー応答を攻撃対象へ集中させます。
      • SYN/ACKからの攻撃推定: SYN/ACKはSYNを受け取った側が返す応答です。送信元を偽装したSYNを大量に受けたサーバは、存在しない宛先へSYN/ACKを返し続け、応答待ちのコネクションで資源を使い果たします。このため、大量のSYN/ACKを送っている機器は攻撃の元ではなく、SYNフラッド攻撃を受けている側だと読み取れます。

4. 間違えやすいところ

  • MTU計算にMACヘッダやFCSを混ぜてしまうミス:
    問題文にイーサネットのヘッダ長14バイトやトレーラ長4バイトという条件が書いてあっても、それは引っかけ情報です。IP層のMTU(1,500バイト)から引くのはIPヘッダ(20バイト)とTCPヘッダ(20バイト)だけであり、MACヘッダやFCSを引いてはいけません。
  • UDPヘッダにあるもの・ないものの誤認:
    UDPは信頼性制御を行わないからチェックサムも無いと誤解しがちですが、チェックサムはTCPとUDPの両方のヘッダにあります。UDPに無いのはシーケンス番号や確認応答番号、ウィンドウサイズです。また、UDPのチェックサムエラーやイーサネットのFCSエラーが起きたときにICMPで再送要求が送られることはなく、単に破棄されます。
  • SYN/ACKパケットの送信元と攻撃元の混同:
    SYN/ACKの送信元を攻撃元とする誤答肢があります。パケットの種類が要求(SYN)か応答(SYN/ACK)かを先に確かめると、送信元が被害を受けている側だと判断できます。
  • コマンドの用途の混同:
    自端末のIP設定を見る ipconfig/ifconfig、現在通信中のTCPポート番号や接続状態を見る netstat、ARPキャッシュから同一LAN上の機器のMACアドレスを調べる arp、経路上のルータを調べる tracert/traceroute の役割を混同しないように整理しておきましょう。

TCP・UDP・IP層の制御の理解度チェック

TCP・UDP・IP層の制御の過去問一覧

TCP・UDP・IP層の制御の用語

ネットワークのほかの論点

有線LAN・スイッチング32問 無線LAN・接続認証31問 IoT・モバイル通信27問 IPアドレス・サブネット設計40問 ルーティング14問 DNS23問 電子メール33問 Web・その他のアプリケーションプロトコル28問 WAN・VPN・ネットワーク仮想化24問 伝送性能・通信品質27問