ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
トランスポート層とは
OSI 参照モデルの第4層に位置する層で、送信端末から受信端末までエンドツーエンドの論理的な通信路を提供します。下位のネットワーク層がパケットを「届ける」役割なのに対し、トランスポート層は「届いたパケットを正しい順序で、抜けなく、正しいアプリに渡す」役割を担います。
OSI における位置づけ
| 層 | 名前 | 主な役割 | 代表プロトコル |
|---|---|---|---|
| L7 | アプリケーション層 | アプリ固有の通信 | HTTP, DNS, SMTP |
| L6 | プレゼンテーション層 | 表現形式・暗号化 | TLS |
| L5 | セッション層 | セッション管理 | NetBIOS, RPC |
| L4 | トランスポート層 | エンドツーエンドの信頼性確保 | TCP, UDP |
| L3 | ネットワーク層 | 経路選択(IP) | IP, ICMP |
| L2 | データリンク層 | 隣接ノード間転送 | Ethernet |
| L1 | 物理層 | 電気信号 | RJ-45, 光ファイバ |
主な機能
| 機能 | 意味 | 主に担うプロトコル |
|---|---|---|
| セグメント化 | 大きなデータを送受可能なサイズに分割(MSS 単位) | TCP |
| 順序制御 | シーケンス番号で受信側が並び替え | TCP |
| 再送制御 | ACK が来ない / 重複時に再送 | TCP |
| フロー制御 | 受信側の処理速度に合わせる(ウィンドウサイズ) | TCP |
| 輻輳制御 | ネットワークが混雑したら送信速度を下げる | TCP |
| 多重化 | ポート番号で複数の通信を識別 | TCP / UDP |
| 誤り検出 | チェックサム | TCP / UDP |
TCP と UDP の比較
| 項目 | TCP | UDP |
|---|---|---|
| コネクション | あり(3way ハンドシェイク) | なし |
| 信頼性 | 順序保証 / 再送あり | 保証なし |
| 速度 | 遅め(オーバーヘッド) | 速い |
| ヘッダ長 | 20〜60 バイト | 8 バイト |
| 主な用途 | HTTP/HTTPS、SSH、メール、DB | DNS、VoIP、動画ストリーミング、ゲーム、DHCP |
ポート番号で多重化する
1 台の端末上では複数のアプリが同時にネットワークを使います。トランスポート層はポート番号で「どのアプリ宛か」を識別します。
[ ブラウザ (TCP:54321) ] ──┐
[ メーラ (TCP:54322) ] ──┼─→ NIC ─→ ネットワーク
[ Slack (TCP:54323) ] ──┘
返信は宛先ポート番号で振り分け:
← TCP:54321 → ブラウザへ
← TCP:54322 → メーラへ
← TCP:54323 → Slack へ
代表的なポート番号
| ポート | プロトコル | 用途 |
|---|---|---|
| 20 / 21 | TCP | FTP(データ / 制御) |
| 22 | TCP | SSH |
| 25 | TCP | SMTP(メール送信) |
| 53 | TCP / UDP | DNS |
| 80 | TCP | HTTP |
| 443 | TCP / UDP | HTTPS / HTTP/3 (QUIC) |
| 3306 | TCP | MySQL |
| 5432 | TCP | PostgreSQL |
3way ハンドシェイク(TCP)
クライアント サーバ
│ ── SYN ──────→ │ ① 接続要求
│ ←─ SYN+ACK ── │ ② 応答
│ ── ACK ──────→ │ ③ 確認
│ │
│ データ通信 │
確認コマンド(Linux)
# 開いているソケット一覧
ss -tunap
# TCP の状態(ESTABLISHED, TIME_WAIT など)
ss -t state established
# 統計情報
netstat -s | head -50
TCP/IP モデルでの位置
実運用で使われている TCP/IP モデル(4層)でも、トランスポート層は OSI の第4層と同じ位置・同じ役割です。OSI と TCP/IP は層の数こそ違いますが、L4 = トランスポート層という対応関係は変わりません。アプリケーション層(HTTP, SMTP など)から見ると、トランスポート層は「確実に届けてくれる宅配便(TCP)」あるいは「速いが届かないこともある投げ込みポスト(UDP)」のようなAPI(ソケット)として現れます。
ソケット API という見え方
プログラマがトランスポート層を意識するのは、ふだんソケット API を通じてです。TCP なら socket() → connect() → send() / recv() → close()、UDP なら socket() → sendto() / recvfrom() → close() といった呼び出し列で、L4 が提供する「信頼性のある / なしのチャネル」を利用します。Python の socket モジュール、Go の net パッケージ、Node の net / dgram なども、最終的にはこのレイヤと話しています。
セグメント / データグラムという用語
トランスポート層が下位層に渡すデータの単位は、TCP では「セグメント」、UDP では「データグラム」と呼ばれます。ネットワーク層に降りるとこれが IP パケットに包まれ、さらにデータリンク層でフレーム化されてケーブル / 電波に乗ります。逆に受信側では、L2 → L3 でヘッダを剥がしていき、最終的にトランスポート層がセグメント / データグラムを正しいアプリケーション(ポート)に振り分けます。
QUIC(HTTP/3)の位置づけ
近年は HTTP/3 が QUIC(UDP の上の独自プロトコル)を採用しています。QUIC は UDP の上に「信頼性・順序保証・暗号化」を載せ直した新世代のトランスポート相当層で、TCP の Head-of-Line ブロッキング回避と TLS ハンドシェイクの短縮を実現しました。OSI モデル上は厳密には L4 でなく L4 と L5/L6 にまたがる扱いですが、役割としてはトランスポート層の進化形と考えると理解しやすいです。
関連
- 階層(レイヤ) — 親カテゴリ
- OSI参照モデル
- セッション層(第5層)
- ネットワーク層(第3層)
- TCP
- UDP
- ポート番号
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- アプリケーション層(第7層)
- プレゼンテーション層(第6層)
- セッション層(第5層)
- トランスポート層(第4層)
- ネットワーク層(第3層)
- データリンク層(第2層)
- 物理層(第1層)
人気ページ
- 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 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?