IPv4

IPv4(インターネットプロトコルバージョン4)の詳細解説



IPv4は、インターネットプロトコル(IP)の一種であり、ネットワーク層で動作する通信プロトコルです。主にパケットの経路選択、断片化、再構築を規定し、TCP/IPの基本機能として世界中で広く利用されています。

IPv4パケットの構造



IPパケットは、先頭にIPヘッダが付加され、経路選択などの機能を実現します。IPヘッダは12個のフィールドと拡張オプションから構成され、基本ヘッダ長は20オクテットです。

各フィールドの役割



  • - バージョン (Version): IPのバージョンを示し、IPv4では「4」が格納されます。
  • - ヘッダ長 (IHL): IPヘッダの長さを示し、4オクテット単位で表されます。通常は「5」が入ります。
  • - サービス種別 (ToS): パケット転送時の優先度を指定します。遅延、転送量、信頼性などを設定できますが、ルータでの実装は複雑です。IPv6では「フローラベル」が代わりに定義されています。
  • - 全長 (Total Length): IPヘッダを含むパケット全体の長さをオクテット単位で示し、最大65,535オクテットです。
  • - 識別子 (Identification): パケット送信元が設定する一意な値で、断片化されたパケットの復元に利用されます。
  • - フラグ (Various Control Flags): 断片化の制御に用いられます。断片化禁止や後続パケットの有無を示します。
  • - 断片位置 (Fragment Offset): パケットが断片化された際の位置を8オクテット単位で示し、パケットの復元に利用されます。
  • - 生存時間 (TTL): パケットの余命を示し、経由するルータ数をカウントします。値が0になるとパケットは破棄され、無限ループを防ぎます。
  • - プロトコル (Protocol): 上位プロトコル(TCP, UDPなど)を示す番号が設定され、受信側でどのプロトコルにデータを渡すか識別します。
  • - チェックサム (Header Checksum): IPヘッダの誤り検出に用いられます。ルータでTTLが変更される度に再計算が必要です。IPv6ではこのフィールドは廃止されました。
  • - 送信元アドレス (Source Address): パケットの送信元IPアドレスが設定されます。
  • - 宛先アドレス (Destination Address): パケットの宛先IPアドレスが設定されます。
  • - 拡張情報 (Options): セキュリティ情報、ルーティング情報などを設定できますが、あまり使用されません。
  • - データ: パケットが伝達すべきペイロードです。

IPアドレスの構造



IPv4では、32ビットのIPアドレスを使用します。IPアドレスは、ネットワークアドレスとホストアドレスに分けられ、ネットワークの規模に応じてクラス分けされていました。しかし、クラスフルアドレスは無駄が多いため、サブネットが導入されました。

アドレスの種類



  • - プライベートアドレス: 特定の組織内でのみ使用されるアドレスで、以下の範囲が定められています。
- `10.0.0.0〜10.255.255.255 (10.0.0.0/8)`
- `172.16.0.0〜172.31.255.255 (172.16.0.0/12)`
- `192.168.0.0〜192.168.255.255 (192.168.0.0/16)`
  • - グローバルアドレス: インターネット全体で使用されるアドレス。
  • - 特別用途のアドレス: IETFとIANAによって特別な目的のために予約されており、一般利用は制限されています。

経路選択(ルーティング)



ルーティングは、パケットを宛先へと転送する機能で、ルータが主な役割を担います。ルータは経路表(ルーティングテーブル)に基づいて経路を選択します。

ルーティングテーブル



ルータは、受信したパケットの宛先IPアドレスを基にルーティングテーブルを検索し、最適な転送先を決定します。ルーティングテーブルには、宛先ネットワーク、転送先アドレス、送信インタフェースなどが記録されています。経路表は、手動設定(静的経路)やルーティングプロトコル(動的経路)によって構築されます。

断片化と再構築



最大転送単位(MTU)は、データリンク層が一度に転送できる最大のデータサイズです。IPパケットがMTUよりも大きい場合、パケットは断片化され、複数の小さなパケットに分割されて送信されます。受信側では、断片化されたパケットが再構築されます。

断片化の仕組み



パケットが断片化されると、IPヘッダの「断片位置」フィールドに、分割されたパケットの位置情報が記録されます。受信側では、これらの情報を基に元のパケットを再構築します。

断片化の抑制



断片化は、オーバーヘッドやスループットの低下を引き起こすため、できる限り避けるべきです。経路MTU探索を行い、最適なMTUで通信することが推奨されます。IPv6では、ルータでの断片化は行われず、送信ホストのみが断片化を行います。

IPv4アドレス枯渇問題



IPv4のグローバルアドレスが枯渇し、新規にアドレスを割り当てることができなくなっています。この問題への対策として、IPv6への移行が進められています。IANAが管理するIPv4アドレスは2011年に、RIR(地域インターネットレジストリ)が管理するアドレスも2020年までに枯渇しました。

RFC仕様



  • - RFC 791 - Internet Protocol
  • - RFC 950 - Internet Standard Subnetting Procedure
  • - RFC 1112 - Host Extensions for IP Multicasting
  • - RFC 1518 - An Architecture for IP Address Allocation with CIDR
  • - RFC 1519 - Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy
  • - RFC 1597 - Address Allocation for Private Internets
  • - RFC 1817 - CIDR and Classful Routing
  • - RFC 2101 - IPv4 Address Behaviour Today

関連情報



  • - Request for Comments(RFC)
  • - Internet Protocol
  • - キャリアグレードNAT
  • - IPv6
  • - 割り当て済みの/8アドレスブロックの一覧

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。