| この記事の要点 |
|
トランスポート層とは
トランスポート層は、TCP/IP の階層モデルにおいてアプリケーション層と下位のインターネット層(ネットワーク層)をつなぐ役割を担う層です。OSI 参照モデルでは第4層に位置づけられ、TCP/IP の 4階層モデルでは上から数えて第2層(下から数えて第3層)に相当します。「どのホストの、どのアプリに、どんな品質で届けるか」を制御するレイヤです。
階層モデルの中の位置づけ
| TCP/IP 4階層 | OSI 7階層 | 主なプロトコル |
|---|---|---|
| アプリケーション層 | 第5〜7層 | HTTP / HTTPS / SMTP / DNS / FTP |
| トランスポート層 | 第4層 | TCP / UDP |
| インターネット層 | 第3層 | IP / ICMP / ARP |
| ネットワークインターフェース層 | 第1〜2層 | Ethernet / Wi-Fi |
トランスポート層が担う 4つの仕事
1. エンドツーエンドの通信
IP 層は「ホストからホスト」までしか面倒を見ません。トランスポート層は同じホスト内で動いている多数のアプリ(Web ブラウザ/メールクライアント/SSH)の中から「どのアプリ宛なのか」を識別する役目を担います。
2. ポート番号によるアプリの多重化
送信元と宛先のそれぞれに 16 ビット(0〜65535)のポート番号を割り当てることで、同じ IP アドレス上の複数アプリを区別します。代表的なウェルノウンポートは以下の通りです。
| ポート | プロトコル | 用途 |
|---|---|---|
| 20 / 21 | TCP | FTP(データ/制御) |
| 22 | TCP | SSH |
| 25 | TCP | SMTP |
| 53 | TCP/UDP | DNS |
| 80 | TCP | HTTP |
| 123 | UDP | NTP(時刻同期) |
| 443 | TCP | HTTPS |
3. 信頼性の確保(TCP)
TCP は「届いたか」「順番が正しいか」「壊れていないか」を保証します。3 ウェイハンドシェイクで接続を確立し、シーケンス番号と ACK で再送制御・順序制御・フロー制御を行います。
4. 軽量で高速な転送(UDP)
UDP は接続確立も再送もしない最小限のプロトコルで、ヘッダが 8 バイトと小さく遅延も小さいのが特徴です。リアルタイム性が要求される音声・動画ストリーミング、ゲームの通信、DNS の問い合わせなどで使われます。
TCP と UDP の比較
| 項目 | TCP | UDP |
|---|---|---|
| 接続方式 | コネクション型(3 ウェイハンドシェイク) | コネクションレス |
| 信頼性 | あり(再送・順序保証) | なし |
| 速度・オーバーヘッド | 遅い・大きい | 速い・小さい |
| ヘッダサイズ | 20 バイト〜 | 8 バイト |
| 用途 | HTTP / SMTP / SSH / FTP | DNS / NTP / VoIP / 動画ストリーム |
ソケット:IP アドレスとポートの組
送信元(src IP : src port)と宛先(dst IP : dst port)の 2 つのペア、合計 4 つの値で 1 つの TCP/UDP 通信は一意に識別されます。これを「ソケット」または「5 タプル(プロトコル含む)」と呼びます。同じサーバの 80 番ポートに対して何千ものブラウザから同時接続できるのは、クライアント側ポートがそれぞれ異なるためです。
動作確認に使えるコマンド
# 開いているポートを確認(Linux)
$ ss -tnl
# 特定ホストのポートが開いているかチェック
$ nc -zv example.com 443
# 通信を観察
$ tcpdump -nn -i eth0 port 80関連記事
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09