コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

パケットとフレーム

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

パケットとフレーム

このレッスンで分かること

  • データはパケットという小単位に分けて送ることで、共有経路の効率と障害耐性を両立しています
  • フレーム (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. 経路を共有できる — 1 本のケーブルに複数の通信が同時に流れても、パケット単位で交互に詰めれば全員が少しずつ進める。専用線を引き続ける必要がない。
  2. 一部失敗しても全部やり直さなくて済む — 通信エラーで届かなかったパケットだけを再送すれば良い。10MB のうち 1 パケットだけ落ちても、その 1 パケットを送り直すだけで済む。
  3. 経路を分散できる — パケットごとに違うルーターを通っても、最後にまとめれば良い。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) フィールドの役割はどれ?

  1. 送信元 IP のキャッシュ有効期間
  2. ルーターを通過するたびに 1 ずつ減り、0 で破棄されることでループを防ぐ
  3. TCP のシーケンス番号
  4. 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 つができることを確認しましょう。

  1. パケット/フレーム の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. パケット/フレーム とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

復習ミニクイズ

OSI L3 (ネットワーク層) で扱うデータ単位の正しい呼び方はどれですか