ネットワークの世界で「トランスポート層」と聞くと、試験勉強でも実務でも必ず登場するのが TCP と UDP です。これらはどちらも「アプリケーション同士をつなぐ」役割を持ちますが、動作の仕組みや信頼性の確保方法が大きく異なります。
例えば、TCP は手紙を配達する郵便局員のように、相手が受け取ったかを逐一確認しながら届けます。一方、UDP は宅配便の置き配のように「送りっぱなし」で、届いたかどうかは気にしません。
さらに、トランスポート層には ポート番号 という「宛先アプリの住所」があり、ウェルノウンポートのように決められた番号も存在します。これらの番号は、ウェブアクセスやメール送受信、動画ストリーミングなど、日常的な通信の裏側で活躍しています。
本記事では、
- TCP と UDP の違い
- ポート番号の種類とウェルノウンポートの代表例
- TCP のコネクション確立の流れ
- MSS と MTU の関係、フラグメント処理
- 通信障害時の再送条件
- TCP/UDP ヘッダフォーマット
- UDP と関係の深いプロトコル
- スライディングウィンドウとフロー制御の仕組み
を体系的に解説します。図解や具体例を交えて、試験対策だけでなく実務でも使える知識を身につけていきましょう。
目次
- 1 TCPとUDPの違い│信頼性・速度・用途の比較
- 2 ポート番号の種類とウェルノウンポートの代表例│試験頻出の覚え方
- 3 TCPとUDPの違い│信頼性・速度・用途の比較
- 4 ポート番号の種類とウェルノウンポートの代表例│試験頻出の覚え方
- 5 TCPのコネクション確立と終了│MSS決定とMTU・フラグメント処理まで
- 6 通信障害時の再送処理条件│TCPの信頼性を支える仕組み
- 7 TCP・UDPヘッダフォーマット│各フィールドの役割と試験頻出ポイント
- 8 UDPと関係の深いプロトコル│軽量性を活かす代表例
- 9 UDPと関係の深いプロトコル│軽量性を活かす代表例
- 10 スライディングウィンドウとフロー制御│輻輳制御との違いも整理
- 11 まとめ│試験に出る要点を最速復習
- 12 まとめ│トランスポート層の仕組みと試験対策の要点
TCPとUDPの違い│信頼性・速度・用途の比較
トランスポート層の代表的なプロトコルである TCP(Transmission Control Protocol) と UDP(User Datagram Protocol) は、どちらも「アプリケーション同士でデータをやり取りする」役割を担います。しかし、通信方式や信頼性の確保方法に大きな違いがあります。
1. 信頼性の確保
- TCP:コネクション型(接続指向)。通信開始前に「三者間ハンドシェイク(3-way handshake)」を行い、双方の準備が整った状態でデータを送る。到達確認・順序保証・再送制御あり。
- UDP:コネクションレス型。相手が受け取ったかを確認せず送信。順序保証・再送は行わない。
2. 速度とオーバーヘッド
- TCP:信頼性のための制御情報が多く、ヘッダは20バイト以上。オーバーヘッドが増えやすく相対的に遅い。
- UDP:最小限のヘッダ(8バイト)でシンプル。高速・低遅延になりやすい。
3. 用途の違い(例)
用途 | TCP | UDP |
---|---|---|
Webブラウジング | ◎(HTTP/HTTPS) | × |
メール送信(SMTP) | ◎ | × |
音声通話(VoIP) | △ | ◎ |
オンラインゲーム | △(遅延に弱い) | ◎(リアルタイム性重視) |
4. 身近な例え
- TCP:宅配便の対面受け取り。受領サインで「確実に届いた」を確認。
- UDP:ポスト投函のチラシ配り。配ったあとの受取確認はしない。
ポート番号の種類とウェルノウンポートの代表例│試験頻出の覚え方
トランスポート層では、送信元・宛先のアプリケーションを識別するために ポート番号 を使用します。ポート番号は 0~65535 の範囲で割り当てられ、用途に応じて次の3区分に分類されます。
1. ポート番号の分類
範囲 | 名称 | 用途例 |
---|---|---|
0~1023 | ウェルノウンポート(Well-known ports) | HTTP(80), HTTPS(443), FTP(21), SMTP(25) など標準化サービス |
1024~49151 | 登録ポート(Registered ports) | 特定アプリや企業が申請して使用 |
49152~65535 | 動的/プライベートポート(Dynamic/Private ports) | 一時的な通信やクライアント側自動割り当て |
2. ウェルノウンポートの試験頻出例
プロトコル | ポート番号 | 用途 |
---|---|---|
HTTP | 80 | Webアクセス |
HTTPS | 443 | 暗号化されたWebアクセス |
FTP | 21 | ファイル転送(制御用) |
SMTP | 25 | メール送信 |
DNS | 53 | 名前解決 |
SSH | 22 | リモートログインの暗号化通信 |
3. 身近な例え
ポート番号はアパートの「部屋番号」に相当します。アパート(IPアドレス)だけではどの住人(アプリケーション)に荷物を届けるか分からないため、部屋番号(ポート番号)の指定が必要です。
TCPとUDPの違い│信頼性・速度・用途の比較
トランスポート層の代表的なプロトコルである TCP(Transmission Control Protocol) と UDP(User Datagram Protocol) は、どちらも「アプリケーション同士でデータをやり取りする」役割を担います。しかし、通信方式や信頼性の確保方法に大きな違いがあります。
1. 信頼性の確保
- TCP:コネクション型(接続指向)。通信開始前に「三者間ハンドシェイク(3-way handshake)」を行い、双方の準備が整った状態でデータを送る。到達確認・順序保証・再送制御あり。
- UDP:コネクションレス型。相手が受け取ったかを確認せず送信。順序保証・再送は行わない。
2. 速度とオーバーヘッド
- TCP:信頼性のための制御情報が多く、ヘッダは20バイト以上。オーバーヘッドが増えやすく相対的に遅い。
- UDP:最小限のヘッダ(8バイト)でシンプル。高速・低遅延になりやすい。
3. 用途の違い(例)
用途 | TCP | UDP |
---|---|---|
Webブラウジング | ◎(HTTP/HTTPS) | × |
メール送信(SMTP) | ◎ | × |
音声通話(VoIP) | △ | ◎ |
オンラインゲーム | △(遅延に弱い) | ◎(リアルタイム性重視) |
4. 身近な例え
- TCP:宅配便の対面受け取り。受領サインで「確実に届いた」を確認。
- UDP:ポスト投函のチラシ配り。配ったあとの受取確認はしない。
ポート番号の種類とウェルノウンポートの代表例│試験頻出の覚え方
トランスポート層では、送信元・宛先のアプリケーションを識別するために ポート番号 を使用します。ポート番号は 0~65535 の範囲で割り当てられ、用途に応じて次の3区分に分類されます。
1. ポート番号の分類
範囲 | 名称 | 用途例 |
---|---|---|
0~1023 | ウェルノウンポート(Well-known ports) | HTTP(80), HTTPS(443), FTP(21), SMTP(25) など標準化サービス |
1024~49151 | 登録ポート(Registered ports) | 特定アプリや企業が申請して使用 |
49152~65535 | 動的/プライベートポート(Dynamic/Private ports) | 一時的な通信やクライアント側自動割り当て |
2. ウェルノウンポートの試験頻出例
プロトコル | ポート番号 | 用途 |
---|---|---|
HTTP | 80 | Webアクセス |
HTTPS | 443 | 暗号化されたWebアクセス |
FTP | 21 | ファイル転送(制御用) |
SMTP | 25 | メール送信 |
DNS | 53 | 名前解決 |
SSH | 22 | リモートログインの暗号化通信 |
3. 身近な例え
ポート番号はアパートの「部屋番号」に相当します。アパート(IPアドレス)だけではどの住人(アプリケーション)に荷物を届けるか分からないため、部屋番号(ポート番号)の指定が必要です。
TCPのコネクション確立と終了│MSS決定とMTU・フラグメント処理まで
TCPはコネクション型のプロトコルであり、通信の開始から終了までに明確な手順があります。加えて、データ送信時にはMSS(Maximum Segment Size)やMTU(Maximum Transmission Unit)を考慮してパケットを分割します。
1. コネクション確立(3-way handshake)
TCP通信では、データ送信前に次の3ステップで接続を確立します。
- SYN(Synchronize):クライアント → サーバへ接続要求を送信
- SYN-ACK(Synchronize-Acknowledge):サーバ → クライアントへ接続承諾と要求の応答
- ACK(Acknowledge):クライアント → サーバへ応答を送り、通信準備完了
例え:電話をかけて「もしもし(SYN)」→「もしもし聞こえます(SYN-ACK)」→「聞こえました、始めましょう(ACK)」の流れ。
2. コネクション終了(4-way handshake)
通信を終了する際は、次の4ステップを踏みます。
- FIN:送信側が「もう送るデータはありません」と通知
- ACK:受信側が「了解」と応答
- FIN:受信側からも終了通知
- ACK:送信側が応答し接続終了
3. MSSとMTUの関係
- MTU(最大転送単位):ネットワーク層(IP)の最大データ長。イーサネットでは通常 1500バイト。
- MSS(最大セグメントサイズ):TCPが一度に送信できるデータ部分の最大値。通常は
MSS = MTU - IPヘッダ(20B) - TCPヘッダ(20B)
→ 1460バイト。
4. フラグメント処理
もしIPパケットがMTUを超える場合、IP層でパケットを分割(フラグメント化)します。ただし、フラグメントは再送時の負荷が大きくなるため、TCPはMSSを使って事前に分割して送信します。
5. 実務上のポイント
- VPNやIPv6ではMTUが異なるため、MSS調整が必要になるケースがある。
- フラグメントを避けることで再送負荷や遅延を軽減できる。
通信障害時の再送処理条件│TCPの信頼性を支える仕組み
TCPは信頼性の高い通信を実現するため、パケットが失われたり遅延した場合に再送処理を行います。再送が発動する条件や仕組みを理解しておくことは、試験対策だけでなくトラブルシューティングにも役立ちます。
1. 再送が行われる主な条件
- ACKが一定時間内に返ってこない場合(タイムアウト再送)
- TCPは送信したセグメントに対してACK(確認応答)が返るのを待ちます。
- 設定された時間(RTO: Retransmission Timeout)を過ぎてもACKが来ない場合、同じデータを再送します。
- 同じACKが連続して届いた場合(高速再送)
- 受信側は順序通りのセグメントを受け取れなかった場合、最後に正常に受信した番号のACKを繰り返し送信します。
- 送信側は同一ACKを3回連続で受け取ると、パケット欠落を検知して即座に再送します。
2. 再送制御の工夫
- 指数バックオフ:再送が繰り返されるたびに待機時間を倍増させ、混雑状態の悪化を防ぐ。
- 輻輳制御との連携:再送発生時にはウィンドウサイズを縮小し、ネットワーク負荷を軽減する。
3. 身近な例え
- タイムアウト再送:友達にLINEを送ったが既読がつかないので、時間をおいてもう一度送る。
- 高速再送:友達から「前の話聞こえなかった」と3回連続で言われたら、すぐに言い直す。
TCP・UDPヘッダフォーマット│各フィールドの役割と試験頻出ポイント
トランスポート層のヘッダは、送信元と宛先を識別したり、通信制御を行うための重要な情報を含みます。TCPとUDPではヘッダの構造やサイズが異なります。
1. TCPヘッダ(20バイト以上)
TCPヘッダは可変長で、基本的な構成は以下の通りです。
フィールド名 | サイズ | 役割 |
---|---|---|
送信元ポート番号 | 16ビット | 送信元アプリケーションを識別 |
宛先ポート番号 | 16ビット | 宛先アプリケーションを識別 |
シーケンス番号 | 32ビット | データの順序を管理 |
確認応答番号(ACK番号) | 32ビット | 次に受信を期待するデータの番号 |
データオフセット | 4ビット | ヘッダ長(単位:32ビット) |
制御ビット(フラグ) | 6ビット(+予約) | SYN/ACK/FIN/RST/PSH/URG等の制御 |
ウィンドウサイズ | 16ビット | フロー制御のための受信可能データ量 |
チェックサム | 16ビット | ヘッダ+データの誤り検出 |
緊急ポインタ | 16ビット | URGフラグ使用時の緊急データ位置 |
オプション | 可変長 | MSS指定などの拡張情報 |
2. UDPヘッダ(固定8バイト)
UDPはシンプルで固定長です。
フィールド名 | サイズ | 役割 |
---|---|---|
送信元ポート番号 | 16ビット | 送信元アプリケーションを識別 |
宛先ポート番号 | 16ビット | 宛先アプリケーションを識別 |
データ長 | 16ビット | ヘッダ+データ全体の長さ |
チェックサム | 16ビット | ヘッダ+データの誤り検出 |
3. 図解イメージ(試験対策)
- TCPヘッダ:宅配便の伝票に「送信元住所」「宛先住所」「追跡番号」「受取サイン欄」「配送条件」などが詳細に記載されているイメージ。
- UDPヘッダ:ポストカードに「送り先住所」「送り主住所」だけ書いてあるイメージ。
UDPと関係の深いプロトコル│軽量性を活かす代表例
UDPはシンプルで高速な特性を活かし、リアルタイム性や低遅延が求められる通信でよく利用されます。ここでは、UDPと密接に関係する代表的なプロトコルを紹介します。
1. DNS(Domain Name System)
- 役割:ドメイン名とIPアドレスの相互変換(名前解決)
- 特徴:1回の問い合わせと応答が小さく高速なため、UDPを使用(ポート53)。
- 補足:大きな応答やゾーン転送時はTCPを使用することもある。
2. DHCP(Dynamic Host Configuration Protocol)
- 役割:IPアドレスやゲートウェイ、DNSサーバなどのネットワーク設定を自動配布
- 特徴:初期接続時にブロードキャストでやり取りするため、UDP(ポート67/68)を利用。
3. SNMP(Simple Network Management Protocol)
- 役割:ネットワーク機器の監視・管理
- 特徴:軽量で、監視データのやり取りにUDP(ポート161)を利用。
4. TFTP(Trivial File Transfer Protocol)
- 役割:簡易ファイル転送
- 特徴:認証や複雑な制御を持たず、UDP(ポート69)で動作。主に機器の設定配布やファームウェア更新に利用。
5. RTP(Real-time Transport Protocol)
- 役割:音声・動画などリアルタイムデータの送受信
- 特徴:VoIPや映像配信でUDPを利用し、遅延よりもスムーズな再生を優先。
身近な例え
UDPは「速さ重視のバイク便」のような存在です。多少の荷物落下(データ欠損)よりも、とにかく早く届けることを優先します。DNSやVoIPなど、スピードが命のサービスにぴったりです。
UDPと関係の深いプロトコル│軽量性を活かす代表例
UDPはシンプルで高速な特性を活かし、リアルタイム性や低遅延が求められる通信でよく利用されます。ここでは、UDPと密接に関係する代表的なプロトコルを紹介します。
1. DNS(Domain Name System)
- 役割:ドメイン名とIPアドレスの相互変換(名前解決)
- 特徴:1回の問い合わせと応答が小さく高速なため、UDPを使用(ポート53)。
- 補足:大きな応答やゾーン転送時はTCPを使用することもある。
2. DHCP(Dynamic Host Configuration Protocol)
- 役割:IPアドレスやゲートウェイ、DNSサーバなどのネットワーク設定を自動配布
- 特徴:初期接続時にブロードキャストでやり取りするため、UDP(ポート67/68)を利用。
3. SNMP(Simple Network Management Protocol)
- 役割:ネットワーク機器の監視・管理
- 特徴:軽量で、監視データのやり取りにUDP(ポート161)を利用。
4. TFTP(Trivial File Transfer Protocol)
- 役割:簡易ファイル転送
- 特徴:認証や複雑な制御を持たず、UDP(ポート69)で動作。主に機器の設定配布やファームウェア更新に利用。
5. RTP(Real-time Transport Protocol)
- 役割:音声・動画などリアルタイムデータの送受信
- 特徴:VoIPや映像配信でUDPを利用し、遅延よりもスムーズな再生を優先。
身近な例え
UDPは「速さ重視のバイク便」のような存在です。多少の荷物落下(データ欠損)よりも、とにかく早く届けることを優先します。DNSやVoIPなど、スピードが命のサービスにぴったりです。
スライディングウィンドウとフロー制御│輻輳制御との違いも整理
TCP通信では、送信側と受信側の間でデータの流れを効率的かつ安全に制御する仕組みがあります。その代表例がスライディングウィンドウとフロー制御です。
1. フロー制御とは
- 目的:受信側の処理能力を超えるデータを送らないようにする。
- 仕組み:受信側がTCPヘッダの「ウィンドウサイズ」で受信可能なバイト数を通知し、送信側はその範囲内で送信。
- 例え:飲食店で、キッチンが「今は10食まで作れる」と注文受付に伝えるイメージ。
2. スライディングウィンドウ方式
- 概要:複数のセグメントを連続送信し、ACKに合わせて送信可能範囲(ウィンドウ)を前方へ滑らせる。
- メリット:待ち時間を削減し、回線利用効率を向上。
- 例え:回転寿司のレーンに複数皿を流し、客が取ったら新しい皿を流す。
3. 輻輳制御との違い
項目 | フロー制御 | 輻輳制御 |
---|---|---|
制御対象 | 受信側の能力 | ネットワーク全体の混雑状況 |
情報源 | 受信側が通知するウィンドウサイズ | 損失・遅延を送信側が推定(例:高速再送やRTO) |
主な目的 | 受信バッファの溢れ防止 | ネットワーク負荷の軽減・安定化 |
4. 試験でのチェックポイント
- フロー制御は受信側主体、輻輳制御は送信側主体で反応する。
- スライディングウィンドウはTCP効率化の鍵。
- 「ウィンドウサイズ0」は一時停止。再開時はウィンドウ更新(ウィンドウプローブ)で通知。
まとめ│試験に出る要点を最速復習
- TCPは信頼性重視(3-way/4-way、再送・順序保証、スライディングウィンドウ)。UDPは低遅延・低オーバーヘッド。
- ポートは0~1023がウェルノウン、1024~49151が登録、49152~65535が動的/プライベート。
- MSS ≒ MTU − IP(20B) − TCP(20B)(例:1500 − 20 − 20=1460B)。フラグメントは避けたいのでMSS調整。
- 再送はRTOタイムアウトと重複ACK3回の高速再送が基本。
- UDP周辺:DNS/ DHCP/ SNMP/ TFTP/ RTP を押さえる。
まとめ│トランスポート層の仕組みと試験対策の要点
トランスポート層に関する知識は、ネットワーク技術の基本であり、IPA試験の午後問題でも頻出の重要分野です。TCPとUDPの違いを軸に、それぞれの特性やヘッダ構造、ポート番号の意味、フロー・輻輳制御の仕組みをしっかり理解しておくことで、問題文の意図を読み解く力が格段に高まります。
今回の記事で解説したように、TCPは信頼性を重視した仕組みで成り立っており、再送制御・スライディングウィンドウ・MSS/MTUなど多層的な技術が絡んでいます。一方、UDPは軽量・高速性を活かしたリアルタイム用途向けの設計です。
試験対策としては、以下の点を復習しておくのが効果的です:
- TCPの接続確立(3-way)と終了(4-way)の流れ
- ポート番号の範囲と主要プロトコルの番号
- MTUとMSSの計算式、フラグメントの必要性
- 再送処理の2種類(タイムアウト・高速再送)
- UDPが使われる具体的なプロトコルと理由
- フロー制御と輻輳制御の違いと関連性
これらの理解は、選択肢問題だけでなく、ネットワーク構成やトラブルシューティング問題でも問われます。用語暗記ではなく、仕組みを「イメージで理解する」ことが合格への近道です。