Index
- トランスポート層とは何をする層か
- 第3層と第4層の違い
- TCPとUDPの考え方
- ポート番号とソケットの見方
- TCPの3ウェイハンドシェイクとコネクション管理
- 再送制御、順序制御、フロー制御、輻輳制御
- UDPが使われる場面と注意点
- NAT、ファイアウォール、ロードバランサとの関係
- トランスポート層の障害切り分け
- まとめ
OSI参照モデルの第4層は「トランスポート層」です。
第3層のネットワーク層が「宛先のネットワークまで、どの経路で届けるか」を担当するのに対して、第4層は「どのアプリケーション同士の通信として扱うか」「届いたデータをどのように整えるか」を担当します。
Webサイトを見る、メールを送る、DNSで名前解決する、オンライン会議をする、ゲームサーバーへ接続する。こうした通信では、IPアドレスだけでなく、TCPやUDP、ポート番号が必ず関わっています。
この記事では、初心者の方にもイメージしやすいように、第4層を「TCPとUDP」「ポート番号」「コネクション」「トラブルシュート」の4つの視点から深掘りします。
1. トランスポート層とは何をする層か
トランスポート層の役割を一言で表すなら、端末同士の通信を、アプリケーション単位で届けるための交通整理です。
第3層では、IPアドレスを使って「どの端末へ届けるか」を判断します。しかし、1台の端末の中では、ブラウザ、メールソフト、SSHクライアント、チャットアプリなど、複数のアプリケーションが同時に通信しています。
このとき重要になるのが、次の3つです。
- 通信方式を決めるTCPまたはUDP
- アプリケーションを識別するポート番号
- 通信の状態を管理するコネクションやセッションの考え方
第4層は「この通信はどのアプリケーション宛てか」「確実に届ける必要があるか」「順番を整える必要があるか」を扱います。
2. 第3層と第4層の違い
第3層と第4層はセットで出てくることが多いですが、見ている対象が違います。
| 観点 | 第3層 ネットワーク層 | 第4層 トランスポート層 |
|---|---|---|
| 主な目的 | 宛先ネットワークまで届ける | アプリケーション間の通信として届ける |
| 主な識別子 | IPアドレス | ポート番号 |
| 主なプロトコル | IPv4、IPv6、ICMP | TCP、UDP |
| データ単位 | パケット | セグメント、データグラム |
| 判断内容 | 次にどの経路へ転送するか | どのアプリケーションへ渡すか、通信をどう制御するか |
ざっくり言うと、第3層は「住所まで届ける」、第4層は「その建物のどの窓口に渡すか」を決めるイメージです。
たとえば、WebサーバーのIPアドレスが 203.0.113.10 だったとしても、それだけではHTTP、HTTPS、SSH、メール受信など、どのサービスへ接続したいのかは分かりません。そこで 443/tcp のようなポート番号を使って、HTTPSの通信であることを示します。
3. TCPとUDPの考え方
トランスポート層で代表的なプロトコルがTCPとUDPです。
TCPは、通信相手と接続を確立し、データの到達確認や再送、順序制御を行います。一方、UDPは接続確立を行わず、必要最小限の情報でデータを送ります。
| 観点 | TCP | UDP |
|---|---|---|
| 接続確立 | あり | なし |
| 到達確認 | あり | なし |
| 再送制御 | あり | なし |
| 順序制御 | あり | なし |
| 速度・軽さ | 制御が多い分、重め | 軽い |
| 主な用途 | Web、メール、SSH、ファイル転送 | DNS、VoIP、動画配信、オンラインゲーム |
TCPは「確実に、順番通りに届けたい通信」に向いています。Webページやファイルの中身が途中で欠けたり、順番が入れ替わったりすると困るためです。
UDPは「多少の欠落よりも、遅延の少なさを優先したい通信」に向いています。音声通話やリアルタイムゲームでは、古いデータをあとから再送するより、新しいデータを素早く処理する方が自然な場合があります。
4. ポート番号とソケットの見方
ポート番号は、端末上のアプリケーションやサービスを識別するための番号です。
よく使われるポート番号には、次のようなものがあります。
| ポート番号 | プロトコル | 主な用途 |
|---|---|---|
| 20、21/tcp | TCP | FTP |
| 22/tcp | TCP | SSH |
| 25/tcp | TCP | SMTP |
| 53/tcp、53/udp | TCP、UDP | DNS |
| 80/tcp | TCP | HTTP |
| 123/udp | UDP | NTP |
| 443/tcp | TCP | HTTPS |
通信をより正確に見るときは、IPアドレスとポート番号を組み合わせます。
- 送信元:
192.168.1.10:51524 - 宛先:
203.0.113.10:443 - プロトコル: TCP
このように、IPアドレス、ポート番号、プロトコルを組み合わせた通信の端点をソケットと呼びます。
WebブラウザがHTTPSサイトへ接続する場合、宛先ポートは通常 443/tcp です。一方、送信元ポートはクライアント側が一時的に使うエフェメラルポートになります。
5. TCPの3ウェイハンドシェイクとコネクション管理
TCPでは、データを送る前にコネクションを確立します。この手順が3ウェイハンドシェイクです。
| 手順 | パケット | 意味 |
|---|---|---|
| 1 | SYN | クライアントが接続開始を要求する |
| 2 | SYN/ACK | サーバーが要求を受け取り、応答する |
| 3 | ACK | クライアントが応答を確認し、接続が成立する |
この流れにより、通信する双方が「これからTCP通信を始める」という状態を共有します。
接続が成立すると、TCPはシーケンス番号やACK番号を使って、どこまでデータを受け取ったかを確認します。通信が終わるときは、FINやACKを使って接続を閉じます。強制的に接続を切る場合はRSTが使われることもあります。
- SYNを送っているがSYN/ACKが返らない
- SYN/ACKは返っているがACKが続かない
- 通信途中でRSTが返っている
- 接続はできるがデータ転送が進まない
「ポートが開いているか」だけでなく、どの段階で止まっているかを見ると、原因を切り分けやすくなります。
6. 再送制御、順序制御、フロー制御、輻輳制御
TCPが信頼性の高い通信を実現できるのは、いくつかの制御を組み合わせているためです。
| 制御 | 役割 | 見るポイント |
|---|---|---|
| 再送制御 | 届かなかったデータを送り直す | パケットロス、タイムアウト、重複ACK |
| 順序制御 | 分割されたデータを正しい順番に並べる | シーケンス番号、ACK番号 |
| フロー制御 | 受信側が処理できる量に合わせる | ウィンドウサイズ |
| 輻輳制御 | ネットワーク混雑を避ける | スループット低下、再送増加 |
たとえば、回線品質が悪い環境では、パケットロスが増えてTCPの再送が発生します。再送が増えると、見かけ上の通信速度は大きく低下します。
また、受信側の処理が追いつかない場合、TCPウィンドウが小さくなり、送信側が一度に送れる量が制限されます。この場合、回線帯域に余裕があってもスループットが出ないことがあります。
トランスポート層を理解すると、「回線は速いはずなのに、なぜアプリケーションが遅いのか」を分解して考えられるようになります。
7. UDPが使われる場面と注意点
UDPはTCPのような接続管理や再送制御を持ちません。その分、ヘッダが小さく、処理もシンプルです。
- DNSの問い合わせ
- NTPによる時刻同期
- 音声通話やビデオ会議
- 動画ストリーミング
- オンラインゲーム
- QUICを使うHTTP/3
UDPは「信頼性がないから劣っている」というものではありません。必要な制御をアプリケーション側で持たせたり、多少の欠落を許容したりする設計では、UDPの軽さが大きな利点になります。
ただし、ファイアウォールやNAT環境では、UDP通信の扱いに注意が必要です。UDPは明確な接続終了がないため、NATテーブルやセッションテーブルのタイムアウトが短く設定されていると、通信が途中で途切れることがあります。
8. NAT、ファイアウォール、ロードバランサとの関係
トランスポート層は、NAT、ファイアウォール、ロードバランサと深く関係します。
NATでは、内部端末のプライベートIPアドレスとポート番号を、外部向けのIPアドレスとポート番号へ変換します。多くの家庭用ルーターや企業ネットワークでは、この仕組みによって複数端末が1つのグローバルIPアドレスを共有しています。
| 機器・機能 | 第4層で見るもの | 代表的な用途 |
|---|---|---|
| NAT | IPアドレスとポート番号 | 内部端末と外部通信の対応付け |
| ファイアウォール | プロトコル、送信元・宛先ポート、状態 | 通信許可・拒否 |
| ロードバランサ | TCP/UDPセッション、ポート | 複数サーバーへの振り分け |
ファイアウォールでは、送信元IPアドレス、宛先IPアドレス、プロトコル、送信元ポート、宛先ポート を組み合わせて通信を制御します。この組み合わせは5タプルと呼ばれることがあります。
通信障害を調べるときは、IP到達性だけでなく、「対象ポートが許可されているか」「戻り通信が許可されているか」「NAT変換後のポートが正しく対応付いているか」を確認する必要があります。
9. トランスポート層の障害切り分け
トランスポート層の問題を調べるときは、まず第3層までの到達性と、第4層のポート到達性を分けて考えます。
おすすめの流れは次の通りです。
- 宛先IPアドレスへ到達できるか確認する
- DNS名ではなくIPアドレスで接続を試す
- 宛先ポートが正しいか確認する
- TCPの場合、接続確立できるか確認する
- UDPの場合、アプリケーション側の応答やログを確認する
- ファイアウォールやセキュリティグループの許可設定を確認する
- NATやロードバランサのセッション状態を確認する
- パケットキャプチャでSYN、ACK、RST、再送の有無を見る
Windows、macOS、Linuxでは、次のようなコマンドがよく使われます。
| 目的 | Windows | macOS / Linux |
|---|---|---|
| TCP接続確認 | Test-NetConnection <host> -Port 443 | nc -vz <host> 443 |
| 通信中ポート確認 | netstat -ano | ss -tanp、netstat -an |
| 名前解決確認 | nslookup | dig、nslookup |
| パケット確認 | Wireshark、pktmon | tcpdump、Wireshark |
| 経路確認 | tracert | traceroute |
ここで大切なのは、ping が成功しても、目的のアプリケーションポートへ接続できるとは限らないことです。
ICMPは通っていても、443/tcp がファイアウォールで拒否されていればHTTPS通信はできません。逆に、ICMPが拒否されていても、TCPの対象ポートは正常に使える場合があります。
10. まとめ
トランスポート層は、IPで届いた通信をアプリケーション単位の通信として成立させるための層です。
第4層を理解すると、単に「サーバーにつながらない」と見るのではなく、「IP到達性はあるか」「対象ポートは開いているか」「TCPハンドシェイクは完了しているか」「RSTや再送が出ていないか」「UDPのセッションタイムアウトが起きていないか」と分解して考えられるようになります。
最後に、今回のポイントを整理します。
- 第4層は、TCPやUDPを使ってアプリケーション間の通信を扱う
- 第3層はIPアドレス、第4層はポート番号を見る
- TCPは接続確立、到達確認、再送、順序制御を行う
- UDPは軽量で、リアルタイム性を重視する通信に向いている
- ソケットはIPアドレス、ポート番号、プロトコルを組み合わせた通信の端点
- NAT、ファイアウォール、ロードバランサは第4層情報を使って通信を制御する
pingだけでなく、対象ポートへの接続確認が重要
第4層がわかると、ネットワークとアプリケーションの境界が見えやすくなります。
第3層が「目的地までの道を選ぶ技術」だとすれば、第4層は「目的地のどの窓口へ、どの通信方式で届けるかを整える技術」です。OSI参照モデルの中でも、アプリケーション障害とネットワーク障害の切り分けに直結する層なので、ぜひTCP、UDP、ポート番号の考え方から押さえていきましょう。

コメントを残す