IPで宛先のネットワークへ届けたデータを、端末内のどの通信処理へ渡すか。その橋渡しを担うのがトランスポート層です。この記事ではTCP・UDP・ポート番号を整理し、HTTPやメールなどアプリケーション層のプロトコルにつなげます。
L4:TCPとUDPの役割
トランスポート層は端末間のデータ通信を上位へ提供します。信頼性の確保方法はプロトコルで違い、全てが到達確認や再送を持つわけではありません。
| 項目 | TCP | UDP |
|---|---|---|
| 通信前の接続 | 接続状態を確立して管理 | UDP自体の接続確立手順はない |
| 提供するデータ | 順序付けられたバイトストリーム | データグラム単位 |
| 再送・順序制御 | 確認応答・シーケンス番号などで制御 | UDP自体にはない |
| 利用例 | HTTP/1.1・HTTP/2、SMTP、SSHなど | 一般的なDNSの問合せ、音声通話の一部、QUICなど |
UDPは「品質が悪い通信」という意味ではありません。必要な制御を上位で実現する設計もあります。逆に、TCPを使えば回線障害や相手停止があっても必ずアプリケーションの処理が成功する、という保証にはなりません。
TCP:接続・順序・再送・流量を制御する
通常の接続確立ではSYN→SYN+ACK→ACKという3ウェイハンドシェイクを行います。これは専用の物理回線を予約する仕組みではありません。
シーケンス番号とACKで受信済みの範囲を確認し、必要に応じて再送します。ACKは受信側TCPが受け取ったことの情報で、相手のアプリケーションが保存や処理を完了したことまで意味しません。
TCPは順序を整えたバイト列を渡します。送信側で1回書き込んだ内容が、受信側でも必ず1回の読取りで同じ長さになるわけではなく、メッセージの区切りはアプリケーションで設計します。
受信側の余裕に合わせるフロー制御と、ネットワークの混雑に対応する輻輳制御も区別しましょう。TCPは誤りを検出して再送する仕組みを持ちますが、チェックサムで壊れたビットを直接訂正するわけではありません。
UDP:必要な制御を用途に合わせる
UDPにはTCPのような再送・順序制御・輻輳制御は備わっていません。その分、状態管理などの負担が小さい構成にできますが、常にTCPより高速・低遅延と断定するものではありません。アプリケーションは混雑への配慮や必要な再送などを設計します。
ブロードキャスト対応はIPの版やネットワーク条件にもよります。IPv6にはブロードキャストがないため、「UDPならどの環境でもブロードキャスト」とは考えません。
HTTP/3はQUICを使い、QUICはUDP上で動きます。QUICが信頼性のあるストリームや接続制御などを実現するため、「Webは必ずTCP」「UDP上なら再送や接続が絶対にない」という理解は不十分です。
セグメント・パケット・フレーム
EthernetでTCPを運ぶ例では、アプリケーションデータ→TCPセグメント→IPパケット→Ethernetフレームと包みます。UDPではUDPデータグラムがIPのデータ部に入ります。資料によってパケットを広い意味で使う場合もあるため、どの層の単位かを確認します。
ポート番号:端末内の通信の窓口
TCP・UDPのポート番号は16ビットで、値の範囲は0〜65535です。通信を識別するときは、番号だけでなくTCPかUDPか、送信元/宛先IPとポートの組も見ます。ポート番号だけから、実際に動くプログラムや安全性を断定できません。
| 分類 | 範囲 |
|---|---|
| System/ウェルノウン | 0〜1023(0は予約) |
| User/登録ポート | 1024〜49151 |
| Dynamic/Private | 49152〜65535 |
これはIANAの分類です。各範囲の全番号が登録済みという意味ではなく、OSが一時ポートに使う実際の範囲は設定などによって異なります。
HTTP通信の往復例
例として、PCの192.168.1.100:50000からWebサーバ192.168.1.5:80へTCPで接続したとします。応答はサーバの80番からPCの50000番へ戻ります。この例では同一LAN内・NATなしとします。クライアント側まで80番を使うわけではありません。
IPv4のアドレスとポートを並べるなら192.168.1.5:80、IPv6なら[2001:db8::1]:443のようにアドレス部分を角括弧で囲む形式を使います。
L7:具体的なサービスの通信手順
アプリケーション層は、Web・メール・名前解決などのサービスの通信規約を扱います。画面やアプリ全体がそのまま一つの層、という意味ではありません。TCP/IPの説明では、OSIの上位3層相当をまとめてアプリケーション層として扱うこともあります。
| プロトコル | 代表的な使用先ポート | 役割・注意 |
|---|---|---|
| DNS | UDP/TCP 53 | 名前に対応する各種レコードの問合せ。IPへの変換だけではない |
| HTTP | TCP 80 | 暗号化を伴わないHTTPの代表値 |
| HTTPS | TCP 443、HTTP/3では通常UDP 443 | TLSやQUICを使ったHTTP。TLS全般の専用番号ではない |
| FTP | TCP 21:制御。能動モードのデータ接続で通常20 | 受動モードでは別途指定したデータポートを使う。SFTPとは別方式 |
| SMTP | TCP 25:主にメールサーバ間配送 | 利用者からの送信は587や暗黙TLSの465などを使い分ける |
| POP3 | TCP 110、暗黙TLSでは995 | メールの受信・取出し |
| IMAP | TCP 143、暗黙TLSでは993 | サーバ上のメールの参照・管理。送信そのものはSMTPなどが担当 |
| SNMP | UDP 161:要求など、162:通知の代表値 | マネージャとエージェントで機器情報を扱う。版と保護設定も確認 |
| SSH | TCP 22 | 暗号化した遠隔操作。ホスト鍵による接続先確認と利用者認証も大切 |
| NTP | UDP 123 | 時刻同期 |
上は一般的な使用例です。設定や拡張で異なる場合もあります。平文用の番号でもSTARTTLSなどで保護する方式があり、番号だけで暗号化の有無を決めつけないようにします。
確認問題
①UDP上で動く通信は、上位も含めて必ず再送しないでしょうか。②IMAPはメールの送信を担当するでしょうか。③HTTPSの応答がPCに戻る宛先ポートは必ず443でしょうか。
解答・解説を見る
①いいえ。QUICなど上位で信頼性のある通信を実現する例があります。②いいえ。IMAPはメールの参照・管理、送信はSMTPなどです。③いいえ。通常はその接続でクライアントが使ったポートへ戻ります。
7階層とプロトコルをまとめて復習する
TCP・UDPがL4、IPがL3、HTTPやDNSがアプリケーション層という関係を確認しましょう。各層の役割と機器・プロトコルをまとめるなら、対応するnote教材へ進めます。

コメント