ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
パケットとは
ネットワークにおけるパケット (packet) とは、データを送受信するために小さな塊に分割した、ネットワーク層(OSI 参照モデルの第 3 層)でのデータ単位のことです。インターネットでやり取りされるあらゆる通信(Web ページの閲覧、メール送信、動画ストリーミング、ゲーム通信など)は、すべて多数のパケットに分けて送られています。
同じ通信回線を多数の通信が共有しても効率よく動作する、途中の経路で 1 つが消失しても再送できる、といったインターネットの基本的な性質はパケット化によって実現されています。
なぜデータをパケットに分けるのか
1. 回線の共有 (多重化)
もし大きなファイルを 1 つの巨大なデータブロックとして送ってしまうと、その間は同じ回線を使う他の通信が一切流せません。データをパケットに分割することで、複数の通信を細切れに混ぜて流せるようになり、限られた回線を多数のユーザーで効率的に共有できます。
2. 部分的な再送
大きなデータを 1 つの塊で送ってしまうと、途中で 1 ビットでもエラーが発生したら全部送り直しになります。パケットに分けてあればエラーが起きたパケットだけを再送できるため、効率が大幅に向上します。
3. 経路の柔軟な選択
インターネットでは、同じ宛先に向かうパケットでも、混雑状況に応じて経由するルータが異なります。パケット単位で経路を選択できるため、一部のルータが落ちても別経路で迂回できます。
パケットの構造
パケットは大きくヘッダとペイロードの 2 つから成ります。
| 部分 | 役割 |
|---|---|
| ヘッダ | 送信元 IP / 宛先 IP / TTL / プロトコル番号など、ルーティングに必要な制御情報 |
| ペイロード | 実際に運びたいデータ(上位層のセグメント等) |
IPv4 パケットのヘッダ
IPv4 パケットのヘッダには、最低でも 20 バイトの固定領域があり、主な項目は次の通りです。
- バージョン: 4(IPv4)または 6(IPv6)
- 送信元 IP アドレス: パケットを送った機器のアドレス
- 宛先 IP アドレス: パケットを届ける先のアドレス
- TTL (Time To Live): 経由可能な最大ホップ数。
0になると破棄される - プロトコル番号: ペイロードが TCP (6) なのか UDP (17) なのかを示す
- チェックサム: ヘッダの整合性検証
パケットとフレーム・セグメントの違い
OSI 参照モデルの階層ごとに、データの呼び方は変わります。混乱しやすいので一度整理しておきましょう。
| OSI 層 | 名称(PDU) | 主なプロトコル |
|---|---|---|
| L7 アプリケーション層 | メッセージ / データ | HTTP, FTP, DNS |
| L4 トランスポート層 | セグメント (TCP) / データグラム (UDP) | TCP, UDP |
| L3 ネットワーク層 | パケット | IP, ICMP |
| L2 データリンク層 | フレーム | Ethernet, Wi-Fi |
| L1 物理層 | ビット | 銅線・光ファイバ |
パケットは L3 で扱う単位で、その下位の L2 ではパケットがイーサネットフレームの中に包み込まれ、さらに L1 でビットとして物理メディアに流されます。逆に送信側では、HTTP のメッセージが TCP セグメントになり、それが IP パケットになり、それがイーサネットフレームになる、というように段階的にカプセル化されます。
パケットの大きさ(MTU と MSS)
1 つのパケットに乗せられる最大サイズは MTU (Maximum Transmission Unit) と呼ばれ、イーサネットでは通常 1,500 バイトです。アプリケーションが送りたいデータがそれを超える場合、TCP 側で適切なサイズに分割(セグメント分割)し、複数のパケットとして送ります。MTU を超えるパケットを送ろうとすると断片化 (fragmentation) が発生し、性能低下や通信不調の原因になります。
パケットを観察するツール
実際にネットワーク上を流れているパケットを観察したい場合は、以下のツールが定番です。
- Wireshark: GUI で各層のヘッダを階層的に展開して可視化
- tcpdump: CLI のパケットキャプチャツール。サーバー上で気軽に使える
- traceroute / mtr: パケットが経由するルータを順に表示
# 特定の宛先 IP のパケットだけキャプチャ
sudo tcpdump -i eth0 host 192.0.2.10 -nn -vv
# HTTP (80番ポート) のリクエストだけ
sudo tcpdump -i eth0 'tcp port 80' -A
パケットスイッチング vs 回線スイッチング
パケット交換方式 (packet switching) の対概念に、固定電話で使われてきた回線交換方式 (circuit switching) があります。回線交換は通話開始時に発信者と着信者の間に専用の物理回線を確保し、終話まで占有する方式で、品質が安定する代わりに回線の利用効率が低くなります。これに対しパケット交換は、複数の通信が同じ回線を細切れに共有するため回線利用率が大幅に高く、コストが安い反面、輻輳時には遅延や損失が発生する可能性があります。インターネットは後者を採用することで爆発的に普及しました。
パケットロスとジッタ
パケットは経路上のルータが混雑するとキューに溜まり、バッファ溢れで破棄されることがあります。これがパケットロスです。TCP は再送制御でロスを補いますが、UDP には再送機能がないため、ロスはアプリケーション側で対処する必要があります。音声通話やオンラインゲームでは、わずかなロスが品質に直結します。さらに、各パケットの到着間隔がばらつく現象をジッタ (jitter) と呼び、音声や映像のストリーミングではジッタを吸収するためのバッファを設けて再生品質を保ちます。「回線速度はそこそこ出ているのに通話が途切れる」というケースは、帯域不足ではなくジッタやロスが原因のことが多いです。
TCP と UDP - パケットの上位層
IP パケットのペイロードに何が入るかは、ヘッダのプロトコル番号で識別されます。最も使われるのは TCP(プロトコル番号 6)と UDP(プロトコル番号 17)です。TCP は順序保証・再送・フロー制御・輻輳制御を担当し、HTTP / メール / SSH などの「確実に届いてほしい」通信で使われます。UDP は最小限のヘッダだけを付けて高速に送る軽量プロトコルで、DNS / 音声通話 / ゲームなどの「ロスがあってもいいから早く」という通信で使われます。HTTP/3 が UDP ベースの QUIC を使うことで、TCP の輻輳制御のオーバーヘッドを回避しつつ、独自に信頼性を実装している点も近年の重要なトピックです。
パケットフィルタリングとファイアウォール
ネットワーク機器ではパケットのヘッダ情報を読み取り、特定の条件にマッチするパケットを通過させる/破棄する制御を行います。これがパケットフィルタリングで、ファイアウォールの基本機能です。送信元 IP、宛先 IP、宛先ポート番号、TCP のフラグなどを条件にして、たとえば「外部から SSH (22 番) への接続は拒否、内部から外部の HTTPS (443 番) は許可」といったルールを定義します。さらに高度な機能としてステートフルインスペクションがあり、TCP の状態(接続確立中、確立済み、終了中)を追跡して応答パケットだけを通すといった動的な制御も可能です。
パケットの寿命 - TTL とループ防止
IP ヘッダの TTL (Time To Live) は本来「秒数」を意味する名前ですが、現代のルータ実装では「経由可能な最大ホップ数」として運用されています。各ルータがパケットを転送するたびに TTL を 1 減らし、0 になったパケットは破棄して送信元に ICMP メッセージで通知します。これによってルーティングテーブルの不整合などで発生するパケットのループを防いでいます。traceroute はこの仕組みを利用し、TTL を 1, 2, 3 …と増やしながら送ることで、経路上のルータを順番に発見しています。
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?