コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
パケットとフレーム
パケットとフレーム
このレッスンで分かること
- データはパケットという小単位に分けて送ることで、共有経路の効率と障害耐性を両立しています
- フレーム (L2)・パケット (L3)・セグメント (L4) はそれぞれ別階層の単位で、カプセル化で入れ子になります
- MTU を超えるサイズは分割が必要で、IPv6 では送信ホスト側で Path MTU Discovery を行うのが原則
パケットとフレーム とは
データはどのように小さな塊(パケット)に分割されて運ばれるのかを理解します。本レッスンでは、パケットとフレーム の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
パケット交換の基本 (要約)
データを 小さな単位 に分割して送るのがインターネットの基本方式。 分割の単位は層によって名前が変わり、それぞれ持っているヘッダー情報も異なります。
フレーム / パケット / セグメント 比較
| 単位 | 階層 | 代表ヘッダー情報 | 主な責任 |
|---|---|---|---|
| フレーム (Frame) | L2 データリンク | 送信元/宛先 MAC, FCS | 同一セグメント内の隣接機器配送 |
| パケット (Packet) | L3 ネットワーク | 送信元/宛先 IP, TTL, プロトコル番号 | ネットワーク間の経路選択 |
| セグメント (Segment) | L4 トランスポート (TCP) | ポート番号, シーケンス番号, ACK | エンドツーエンドの信頼配送 |
| データグラム (Datagram) | L4 トランスポート (UDP) | ポート番号, 長さ, チェックサム | エンドツーエンドの軽量配送 |
カプセル化の順序は次のとおりです。
プレーンテキスト
[Ethernet ヘッダー][IP ヘッダー][TCP ヘッダー][HTTP データ][FCS]このレッスンで学ぶこと
データはなぜそのまま送らず、小さな「パケット」に分けて送るのか。フレーム / パケット / セグメントという 3 つの単位を整理します。
パケットとは
パケットとは、送信するデータを小さく区切った「小包」のことです。ネットワーク層 (IP) で扱われる単位で、宛先 IP やシーケンス情報を持ったヘッダーと、データ本体 (ペイロード) で構成されます。
たとえば 10MB のファイルを送るとき、そのままドカンと送るのではなく、約 1,500 バイトずつのパケットに分割して、それぞれを独立に送ります。
なぜ分割するのか
データを丸ごと一度に送らない理由は 3 つあります。
- 経路を共有できる — 1 本のケーブルに複数の通信が同時に流れても、パケット単位で交互に詰めれば全員が少しずつ進める。専用線を引き続ける必要がない。
- 一部失敗しても全部やり直さなくて済む — 通信エラーで届かなかったパケットだけを再送すれば良い。10MB のうち 1 パケットだけ落ちても、その 1 パケットを送り直すだけで済む。
- 経路を分散できる — パケットごとに違うルーターを通っても、最後にまとめれば良い。1 本道に依存しないので障害に強い。
パケット交換 vs 回線交換
- パケット交換 (Packet Switching) — データを小分けにして共有経路で送る。インターネットの方式。
- 回線交換 (Circuit Switching) — 通信開始時に専用線を確保し、終わるまで占有する。古い電話交換機の方式。
パケット交換のおかげで、1 本の光ファイバーに数万人分の通信を同時に乗せられます。
フレームとパケットとセグメント
似たような単語が並ぶので、層と一緒に整理しておきましょう。
- フレーム (Frame) — L2 (データリンク層) で扱う単位。Ethernet フレームには MAC アドレスのヘッダーがつき、末尾に FCS (誤り検出符号) が入る。
- パケット (Packet) — L3 (ネットワーク層) で扱う単位。IP ヘッダー (送信元/宛先 IP, TTL など) がつく。
- セグメント (Segment) — L4 (トランスポート層) の TCP で扱う単位。シーケンス番号やポート番号を持つ。UDP の場合は「データグラム」と呼ぶ。
カプセル化の流れで見ると下記のようになります。アプリのデータが下層に進むにつれてヘッダーが重ねがけされ、ケーブルに出るときには Ethernet フレームの姿になります。
プレーンテキスト
[Ethernet ヘッダー][IP ヘッダー][TCP ヘッダー][HTTP データ][FCS]MTU と分割
リンク層が一度に運べる最大バイト数を MTU (Maximum Transmission Unit) と呼びます。Ethernet では標準で 1500 バイト。これを超えるパケットは分割 (フラグメンテーション) が必要になります。IPv4 では送信ホストだけでなく中継ルーターも分割できますが、IPv6 では中継ルーターによる分割は禁止されています。
Path MTU Discovery (PMTUD) は IPv4・IPv6 双方で使われる仕組みで、経路全体の MTU を事前に発見し送信ホスト側でパケットサイズを調整します。IPv6 では中継ルーターによる分割が禁止されているため、送信ホストが PMTUD を行うことが必須となっています。
MTU とトラブル
クラウド VPN や VPC ピアリングで「ping は通るのに HTTPS が固まる」現象は、しばしば経路のどこかに MTU が小さい区間があり、大きなパケットだけが落とされているのが原因です。MTU は意外と現場のトラブル要因になります。
ヘッダーに入る情報
IP パケットのヘッダーには、最低限下記が入っています。
- 送信元 IP アドレス
- 宛先 IP アドレス
- TTL (Time To Live) — ルーターを通過するたびに 1 ずつ減り、0 になったら破棄される。ループ防止用。
- プロトコル番号 — 上位層が TCP か UDP か ICMP かを示す。
- チェックサム — ヘッダーが壊れていないか検証する。
宛先 IP を見たルーターは、ルーティングテーブルに照らして「次にどのルーターへ渡せばよいか」を決め、パケットを転送していきます。
まとめ
このレッスンの要点は、パケット交換と回線交換 / 単位と階層の対応 / MTU と分割 の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。
理解度チェック
Q. IP パケットの TTL (Time To Live) フィールドの役割はどれ?
- 送信元 IP のキャッシュ有効期間
- ルーターを通過するたびに 1 ずつ減り、0 で破棄されることでループを防ぐ
- TCP のシーケンス番号
- MAC アドレスの寿命
答えを見る
正解は 2。TTL はルーターを 1 ホップ通過するたびにデクリメントされ、0 になったらそのパケットは破棄されます。ルーティングループでパケットが永遠に回り続けるのを防ぐ仕組みです。
出典 (References)
最終更新: 2026-05-28
関連レッスン
よくある質問
Q. このトピックは実務でどう役立ちますか?
A. DB のクエリ最適化、API 設計、データ構造の選択など、設計判断の根拠になります。表面的にライブラリを使うだけでなく「なぜそれが速いのか」を理解できると、性能問題を未然に防げます。コーディング面接でも頻出のテーマです。
Q. 計算量はどう求めれば良いですか?
A. ループのネストごとに掛け算する、再帰なら漸化式から解く、というのが基本です。Big-O 表記は定数倍と低次の項を無視するため、n の指数(n²、n log n など)に注目してください。最悪・平均・最良の 3 つを意識すると説得力が増します。
Q. 覚えるべき定番アルゴリズムは何ですか?
A. 二分探索、クイックソート/マージソート、BFS/DFS、ダイクストラ、DP の基本問題(フィボナッチ・ナップサック)が必修です。これらを「白紙から書ける」状態にすると、応用問題が一気に解けるようになります。
次のレッスン
次は ルーター・スイッチ・ハブ で、データはどのように小さな塊(パケット)に分割されて運ばれるのかを理解します を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- パケット/フレーム の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. パケット/フレーム とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
復習ミニクイズ
OSI L3 (ネットワーク層) で扱うデータ単位の正しい呼び方はどれですか