| プロトコルスタック | |
IPv4パケット | |
| 略語 | IPv4 |
|---|---|
| 目的 | インターネットワーキングプロトコル |
| 開発者 | DARPA |
| はじめに | 1980 (1980年) |
| 影響を受けた | IPv6 |
| OSI層 | ネットワーク層 |
| RFC | 760、791 |
| インターネットプロトコルスイート |
|---|
| アプリケーション層 |
| トランスポート層 |
| インターネット層 |
| リンク層 |
インターネットプロトコルバージョン4(IPv4 )は、スタンドアロン仕様としてのインターネットプロトコル(IP)の最初のバージョンです。インターネットやその他のパケット交換ネットワークにおける標準ベースのインターネットワーキング方式の中核プロトコルの1つです。IPv4は、 1982年にSATNETで、1983年1月にARPANETで実稼働用に導入された最初のバージョンです。後継である インターネットプロトコルバージョン6(IPv6)[ 2 ]の導入が進んでいるにもかかわらず、今日でもほとんどのインターネットトラフィックのルーティングに使用されています[ 1 ]
IPv4は32ビットのアドレス空間を使用し、4,294,967,296(2の32乗)個の一意のアドレスを提供しますが、大きなブロックは特別なネットワーク用途のために予約されています。[ 3 ] [ 4 ]この一意のアドレスの量は、グローバルインターネットのニーズを満たすには十分ではなく、 IPv6への移行中に IPv4アドレス枯渇と呼ばれる重大な問題を引き起こしています。
インターネットプロトコル(「IP」)は、インターネットプロトコルスイートのインターネット層におけるインターネットワーキングを定義し、実現するプロトコルです。IPはインターネットにグローバル規模の論理アドレスシステムを提供し、送信元ホストから別のネットワーク上の宛先ホスト に1ホップ近い次のルータへのIPデータパケットのルーティングを可能にします。
IPv4はコネクションレス型プロトコルであり、ベストエフォート型の配信モデルに基づいて動作します。つまり、配信を保証するものではなく、適切な順序付けや重複配信の回避も保証しません。これらの問題は、伝送制御プロトコル(TCP)やQUICプロトコルなどの上位層トランスポートプロトコルによって解決される場合があります。
以前のバージョンのTCP/IPは、TCP/IPv3を通じて統合された仕様でした。IPv4では、インターネットプロトコルは独立した仕様になりました。[ 5 ]
インターネットプロトコルバージョン4は、IETF出版物RFC 791(1981年9月)で規定されており、1980年1月の定義(RFC 760)に取って代わりました。1982年3月、米国国防総省は、インターネットプロトコルスイート(TCP/IP)をすべての軍事コンピュータネットワークの標準として決定しました。[ 6 ]

1980年代後半、利用可能なIPv4アドレスのプールが、ネットワークの当初の設計では想定されていなかった速度で枯渇していることが明らかになりました。[ 7 ] 1990年代以降、アドレス枯渇を加速させた主な市場要因には、インターネット利用者の急増が挙げられます。彼らは、ラップトップコンピューター、携帯情報端末(PDA)、 IPデータサービスを備えたスマートフォンなどのモバイルコンピューティングデバイスをますます利用していました。さらに、高速インターネットアクセスは常時接続デバイスに基づいていました。枯渇の脅威は、次のような多くの救済技術の導入を促しました
1990 年代半ばまでに、NAT は、地域およびローカルのインターネット レジストリでの厳格な使用量ベースの割り当てポリシーとともに、ネットワーク アクセス プロバイダー システムで広く使用されるようになりました。
IANAによって管理されていたインターネットの主要なアドレスプールは、2011年2月3日に最後の5つのブロックが5つのRIRに割り当てられた時点で枯渇した。[ 8 ] [ 9 ] APNICは、2011年4月15日に地域アドレスプールを使い果たした最初のRIRである。ただし、IPv6への移行技術のために予約された少量のアドレス空間は制限付きポリシーの下で割り当てられる予定であった。[ 10 ]
アドレス枯渇に対する長期的な解決策は、1998年にインターネットプロトコルの新しいバージョンであるIPv6の仕様が定められたことであった。[ 11 ] IPv6はアドレス空間を大幅に拡大するだけでなく、インターネット上の経路集約を改善し、エンドユーザーに最低2の64のホストアドレスの大規模なサブネット割り当てを提供する。しかし、IPv4はIPv6と直接相互運用できないため、IPv4のみのホストはIPv6のみのホストと直接通信できない。2004年に6bone実験ネットワークの段階的な廃止が始まり、IPv6の恒久的な正式な導入は2006年に開始された。[ 12 ] IPv6導入の完了にはかなり時間がかかると予想されているため、[ 13 ]ホストが両方のバージョンのプロトコルを使用してインターネットに参加できるようにするには、中間の移行技術が必要となる。

IPv4 は 32 ビットのアドレスを使用するため、アドレス空間は4,294,967,296 ( 2 32 )個のアドレス に制限されます。
IPv4 は、プライベート ネットワーク(2 24 + 2 20 + 2 16 ≈ 1,800 万アドレス) とマルチキャストアドレス (2 28 ≈ 2 億 6,800 万アドレス) 用に特別なアドレス ブロックを予約しています。
IPv4アドレスは、32ビットの整数値を表す任意の表記法で表すことができます。ほとんどの場合、ドット10進表記法で記述されます。 これは、アドレスの4つのオクテットを10進数(先頭のゼロなし)で個別に表現し、ピリオドで区切ったものです
たとえば、図の 4 つのドットで区切られた IP アドレス ( 172.16.254.1 ) は、32 ビットの 10進数 2886794753 を表し、16 進形式では 0xAC10FE01 になります。
CIDR 表記は、アドレスとルーティング プレフィックスをコンパクトな形式で組み合わせたもので、アドレスの後にスラッシュ文字 (/) が続き、ルーティング プレフィックスの 先頭の連続する1ビットの数 (サブネット マスク) が続きます。
クラスフルネットワークが実践されていた時代は、他のアドレス表現が一般的に使用されていました。例えば、ループバックアドレス127.0.0.1は、ネットワークマスクが8ビット、ホスト番号が24ビットのクラスAネットワークに属するため、一般的に127.1と表記されていました。ドット表記のアドレスに4つ未満の数値が指定された場合、最後の値は、アドレスを4オクテットで埋めるのに必要なバイト数の整数として扱われました。したがって、アドレス127.65530は127.0.255.250と等しくなります。
IPv4の当初の設計では、IPアドレスは2つの部分に分かれていました。ネットワーク識別子はアドレスの最上位オクテットであり、ホスト識別子はアドレスの残りの部分でした。後者はレストフィールドとも呼ばれていました。この構造では最大256個のネットワーク識別子が許可されていましたが、すぐに不十分であることが判明しました
この制限を克服するため、1981年に最上位アドレスオクテットが再定義され、後にクラスフルネットワークとして知られるようになったネットワーククラスが作成されました。改訂されたシステムでは5つのクラスが定義されました。クラスA、B、Cは、ネットワーク識別のためにそれぞれ異なるビット長を持ちました。アドレスの残りの部分は、これまでと同様にネットワーク内のホストを識別するために使用されました。クラスごとにフィールドのサイズが異なるため、各ネットワーククラスはホストのアドレス指定能力が異なっていました。ホストのアドレス指定用の3つのクラスに加えて、クラスDはマルチキャストアドレス指定用に定義され、クラスEは将来のアプリケーションのために予約されていました。
既存のクラスフルネットワークをサブネットに分割する作業は、1985年にRFC 950の出版によって始まりました。この分割は、1987年にRFC 1109で可変長サブネットマスク (VLSM) が導入されたことで、より柔軟になりました。1993年には、この作業に基づいて、 RFC 1517でクラスレスドメイン間ルーティング(CIDR) [ 14 ]が導入されました。これは、ビット数 (最上位から) をたとえば/24のように表現し、クラスベースのスキームに対して、クラスフルと呼ばれました。CIDR は、より小さいまたはより大きいアドレスブロックをユーザーに割り当てることができるように、アドレス空間の再分割を可能にするように設計されました。CIDR によって作成される階層構造は、インターネット割り当て番号機関(IANA) と地域インターネットレジストリ(RIR)によって管理されています。
インターネット技術タスクフォース(IETF)とIANAは、特別な目的のために予約された様々なIPアドレスの一般使用を制限しています。[ 4 ]特にこれらのアドレスはマルチキャストトラフィックに使用され、プライベートネットワーク上で無制限に使用できるアドレス空間を提供するために使用されます。
| アドレスブロック(CIDR) | アドレス範囲 | アドレス数 | スコープ | 説明 |
|---|---|---|---|---|
| 0.0.0.0/8 | 0.0.0.0~0.255.255.255 | 16 777 216 | ソフトウェア | 現在の(ローカル、「この」)ネットワーク[ 4 ] |
| 10.0.0.0/8 | 10.0.0.0~10.255.255.255 | 16 777 216 | プライベートネットワーク | プライベートネットワーク内のローカル通信に使用されます[ 15 ] |
| 100.64.0.0/10 | 100.64.0.0~100.127.255.255 | 4 194 304 | プライベートネットワーク | キャリアグレードNATを使用する場合のサービスプロバイダとその加入者間の通信のための共有アドレス空間[ 16 ] |
| 127.0.0.0/8 | 127.0.0.0~127.255.255.255 | 16 777 216 | ホスト | ローカルホストへのループバックアドレスとして使用[ 4 ] |
| 169.254.0.0/16 | 169.254.0.0~ | 65536 | サブネット | 単一リンク上の2つのホスト間のリンクローカルアドレス[ 17 ]に使用される。IPアドレスが指定されていない場合、通常はDHCPサーバー から取得される |
| 172.16.0.0/12 | 172.16.0.0–172.31.255.255 | 1048576 | プライベートネットワーク | プライベートネットワーク内のローカル通信に使用されます[ 15 ] |
| 192.0.0.0/24 | 192.0.0.0~192.0.0.255 | 256 | プライベートネットワーク | IETFプロトコル割り当て、DS-Lite (/29) [ 4 ] |
| 192.0.2.0/24 | 192.0.2.0~192.0.2.255 | 256 | ドキュメント | TEST-NET-1として割り当てられ、ドキュメントとサンプル[ 18 ] |
| 192.88.99.0/24 | 192.88.99.0~192.88.99.255 | 256 | インターネット | 予約済み。[ 19 ]以前はIPv6からIPv4へのリレーに使用されていました[ 20 ](IPv6アドレスブロック2002::/16を含む)。 |
| 192.168.0.0/16 | 192.168.0.0~192.168.255.255 | 65536 | プライベートネットワーク | プライベートネットワーク内のローカル通信に使用されます[ 15 ] |
| 198.18.0.0/15 | 198.18.0.0~198.19.255.255 | 131 072 | プライベートネットワーク | 2つの異なるサブネット間のネットワーク間通信のベンチマークテストに使用されます[ 21 ] |
| 198.51.100.0/24 | 198.51.100.0~198.51.100.255 | 256 | ドキュメント | TEST-NET-2として割り当てられており、ドキュメントとサンプルは[ 18 ]です |
| 203.0.113.0/24 | 203.0.113.0~203.0.113.255 | 256 | ドキュメント | TEST-NET-3として割り当てられ、ドキュメントとサンプルは[ 18 ] |
| 224.0.0.0/4 | 224.0.0.0–239.255.255.255 | 268 435 456 | インターネット | マルチキャストで使用[ 22 ](旧クラスDネットワーク) |
| 233.252.0.0/24 | 233.252.0.0~233.252.0.255 | 256 | ドキュメント | MCAST-TEST-NETとして割り当てられ、ドキュメントと例(これは上記のマルチキャスト空間の一部です。)[ 22 ] [ 23 ] |
| 240.0.0.0/4 | 240.0.0.0–255.255.255.254 | 268 435 455 | インターネット | 将来の使用のために予約済み[ 24 ] (旧クラスEネットワーク) |
| 255.255.255.255/32 | 255.255.255.255 | 1 | サブネット | 「限定ブロードキャスト」宛先アドレス用に予約されている[ 4 ] |
IPv4で定義されている約40億のアドレスのうち、RFC 1918で概説されているように、3つの範囲から約1800万のアドレスがプライベートネットワーク用に予約されています。これらの範囲のアドレスを持つパケットは、パブリックインターネットではルーティングできず、すべてのパブリックルーターによって無視されます。したがって、プライベートホストはパブリックネットワークと直接通信することはできず、この目的のためにルーティングゲートウェイでの ネットワークアドレス変換が必要です
| 名前 | CIDRブロック | アドレス範囲 | アドレス数 | 上品な説明 |
|---|---|---|---|---|
| 24ビットブロック | 10.0.0.0/8 | 10.0.0.0 – 10.255.255.255 | 16 777 216 | シングルクラスA |
| 20ビットブロック | 172.16.0.0/12 | 172.16.0.0 – 172.31.255.255 | 1048576 | 16個のクラスBブロックの連続範囲 |
| 16ビットブロック | 192.168.0.0/16 | 192.168.0.0 – 192.168.255.255 | 65536 | 連続した256個のクラスCブロック |
2つのプライベートネットワーク(例えば、2つの支社)は、パブリックインターネットを介して直接相互運用できないため、2つのネットワークは、仮想プライベートネットワーク(VPN)またはIPトンネルを介してインターネットを介してブリッジされる必要があります。IPトンネルは、パブリックネットワークを介した伝送中に、プライベートアドレスを含むヘッダーを含むパケットをプロトコル層でカプセル化します。さらに、カプセル化されたパケットは、データのセキュリティを確保するために、パブリックネットワークを介した伝送時に暗号化されることがあります。
RFC 3927は、リンクローカルアドレス指定用の特別なアドレスブロック169.254.0.0/16を定義しています。これらのアドレスは、それらを使用するホストに直接接続されたリンク(ローカルネットワークセグメントやポイントツーポイント接続など)上でのみ有効です。これらのアドレスはルーティングできません。プライベートアドレスと同様に、これらのアドレスはインターネットを通過するパケットの送信元または宛先になることはできません。これらのアドレスは主に、ホストがDHCPサーバーまたはその他の内部設定方法からIPアドレスを取得できない場合に、アドレス自動設定(Zeroconf) に使用されます
アドレスブロックが予約されていた当時、アドレスの自動構成に関する標準は存在しませんでした。MicrosoftはAutomatic Private IP Addressing (APIPA)と呼ばれる実装を開発し、これは数百万台のマシンに導入され、事実上の標準となりました。それから数年後の2005年5月、IETFはRFC 3927で「IPv4リンクローカルアドレスの動的構成」という正式な標準を定義しました。
クラスAネットワーク127.0.0.0(クラスレスネットワーク127.0.0.0 / 8)はループバック用に予約されています。このネットワークに属する送信元アドレスを持つIPパケットは、ホストの外部に現れてはなりません。ループバックの送信元または宛先アドレスを持つ非ループバックインターフェースで受信されたパケットは、破棄する必要があります
すべてのサブネットにおいて、すべてゼロのホストアドレスとすべて1のホストアドレスの両方が予約されています。[ 25 ] [ 26 ]すべてゼロのホストアドレスは、特定のサブネットを識別するために使用されます。すべてのホストビットが1に設定された、各サブネットの最上位アドレスは、サブネット上のすべてのデバイスに同時にメッセージを送信するためのローカルブロードキャストアドレスです。ネットワークサイズが/ 24以上の場合、ドット付き10進表記のブロードキャストアドレスは常に255で終わります。
例えば、サブネット192.168.5.0 / 24(サブネットマスク255.255.255.0)では、識別子192.168.5.0はサブネット全体を参照するために使用されます。ネットワークのブロードキャストアドレスは192.168.5.255です。
| 型 | 2進形式 | ドット10進表記 |
|---|---|---|
| ネットワーク空間 | 11000000.10101000.00000101.00000000 | 192.168.5.0 |
| ブロードキャストアドレス | 11000000.10101000.00000101.11111111 | 192.168.5.255 |
| 赤色で示されているのはIPアドレスのホスト部分で、もう一方の部分はネットワークプレフィックスです。ホスト部分は反転(論理否定)されますが、ネットワークプレフィックスはそのまま残ります | ||
ただし、0 または 255 で終わるすべてのアドレスがホストアドレスとして使用できないわけではありません。例えば、/ 16サブネット192.168.0.0 / 255.255.0.0は、アドレス範囲192.168.0.0~192.168.255.255に相当しますが、ブロードキャストアドレスは192.168.255.255です。192.168.1.255、192.168.2.255などは、末尾が 255 であってもホストアドレスとして使用できます。また、192.168.0.0はネットワーク識別子であり、インターフェースに割り当てることはできません。[ 27 ] : 31 192.168.1.0、192.168.2.0などのアドレスは、0で終わっていても割り当てられることがあります。
過去には、一部のソフトウェアが1ではなく0を含む非標準のブロードキャストアドレスを使用していたため、ネットワークアドレスとブロードキャストアドレスの競合が発生しました。[ 27 ]:66
/ 24より小さいネットワークでは、ブロードキャスト アドレスは必ずしも 255 で終わるわけではありません。たとえば、CIDR サブネット203.0.113.16 / 28 のブロードキャスト アドレスは203.0.113.31です。
| 型 | 2進形式 | ドット10進表記 |
|---|---|---|
| ネットワーク空間 | 11001011.00000000.01110001.00010000 | 203.0.113.16 |
| ブロードキャストアドレス | 11001011.00000000.01110001.00011111 | 203.0.113.31 |
| 赤色で示されているのはIPアドレスのホスト部分で、もう一方の部分はネットワークプレフィックスです。ホスト部分は反転(論理否定)されますが、ネットワークプレフィックスはそのまま残ります | ||
特殊なケースとして、/ 31ネットワークは2台のホストのみを収容できます。これらのネットワークは通常、ポイントツーポイント接続に使用されます。これらのネットワークには、ネットワーク識別子やブロードキャストアドレスは存在しません。[ 28 ]
インターネット上のホストは通常、www.example.comなどの名前で知られており、ルーティングやネットワークインターフェースの識別に使用されるIPアドレスでは主に認識されません。ドメイン名を使用するには、ドメイン名をアドレスに変換(解決)する必要があり、その逆も同様です。これは、電話帳で受信者の名前を使って電話番号を調べるのに似ています
アドレスとドメイン名間の変換は、他の DNS サーバーへの 名前空間の委任を可能にする階層型の分散命名システムであるドメイン ネーム システム(DNS) によって実行されます。
番号なしポイントツーポイント(PtP)リンクは、トランジットリンクとも呼ばれ、IPネットワーク番号やサブネット番号が関連付けられていないものの、IPアドレスを持つリンクです。1993年に初めて導入され、[ 29 ] [ 30 ] [ 31 ] [ 32 ]クアルコムのフィル・カーンが最初の設計者として知られています。
トランジットリンクの目的は、データグラムをルーティングする ことです。トランジットリンクは、不足しているIPアドレス空間からIPアドレスを解放したり、IPアドレスの割り当てやインターフェースの設定管理を軽減したりするために使用されます。以前は、各リンクで、ポイントツーポイントリンクごとに2つまたは4つのIPアドレスを使用して、/ 31または/ 30サブネットを専用化する必要がありました。リンクがアンナンバードの場合、定義済みのインターフェース(通常はループバックインターフェース)から借りた単一のIPアドレスであるルータIDが使用されます。同じルータIDを複数のインターフェースで使用できます。
番号なしインターフェースの欠点の 1 つは、リモート テストと管理が難しくなることです。
IPパケットはヘッダー部とデータ部で構成されます。IPパケットには、データ部の後にデータチェックサムやその他のフッターはありません。通常、リンク層は、ほとんどのエラーを検出するCRCフッターを使用して、IPパケットをフレームにカプセル化します。IPによって伝送される多くのトランスポート層プロトコルも独自のエラーチェック機能を備えています。[ 33 ]:§6.2
IPv4パケットヘッダーは14のフィールドで構成され、そのうち13は必須です。14番目のフィールドはオプションで、その名の通りオプションです。ヘッダー内のフィールドは最上位バイトから順にパックされ(ネットワークバイトオーダー)、図と説明では最上位ビットが最初に来るものとされています(MSB 0ビット番号)。最上位ビットは0に番号付けされているため、例えばバージョンフィールドは実際には最初のバイトの最上位4ビットにあります
| オフセット | オクテット | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| オクテット | ビット | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | バージョン (4) | 国際人道法 | DSCP | ECN | 全長 | |||||||||||||||||||||||||||
| 4 | 32 | 識別 | フラグ | フラグメントオフセット | |||||||||||||||||||||||||||||
| 8 | 64 | 生存時間 | プロトコル | ヘッダーチェックサム | |||||||||||||||||||||||||||||
| 12 | 96 | 送信元アドレス | |||||||||||||||||||||||||||||||
| 16 | 128 | 宛先アドレス | |||||||||||||||||||||||||||||||
| 20 | 160 | (選択肢)(IHL > 5の場合) | |||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
| 56 | 448 | ||||||||||||||||||||||||||||||||
| プロトコル番号 | プロトコル名 | 略語 |
|---|---|---|
| 1 | インターネット制御メッセージプロトコル | ICMP |
| 2 | インターネットグループ管理プロトコル | IGMP |
| 6 | 伝送制御プロトコル | TCP |
| 17 | ユーザデータグラムプロトコル | UDP |
| 41 | IPv6カプセル化 | ENCAP |
| 89 | オープン最短経路優先 | OSPF |
| 132 | ストリーム制御伝送プロトコル | SCTP |
インターネットプロトコルは、ネットワーク間のトラフィックを可能にします。その設計は、物理的に多様なネットワークに対応し、リンク層で使用される基盤となる伝送技術とは独立しています。異なるハードウェアを持つネットワークは、通常、伝送速度だけでなく、最大転送単位(MTU)も異なります。あるネットワークがMTUの小さいネットワークにデータグラムを送信する場合、データグラムを断片化することがあります。IPv4では、この機能はインターネット層に配置され、IPv4ルーターで実行されるため、ホストがこれらの問題にさらされる可能性が制限されます
対照的に、次世代のインターネット プロトコルであるIPv6 では、ルータによるフラグメンテーションが許可されず、ホストはデータグラムを送信する前にパス MTU 検出を実行する必要があります。
ルーターはパケットを受信すると、宛先アドレスを調べ、使用する送信インターフェースとそのインターフェースのMTUを決定します。パケットサイズがMTUよりも大きく、パケットヘッダーのDo Not Fragment(DF)ビットが0に設定されている場合、ルーターはパケットをフラグメント化することがあります
ルータはパケットをフラグメントに分割します。各フラグメントの最大サイズは、送信MTUからIPヘッダーサイズ(最小20バイト、最大60バイト)を差し引いた値です。ルータは各フラグメントを独自のパケットに分割し、各フラグメントパケットには以下の変更が加えられます。
たとえば、MTU が 1,500 バイトでヘッダー サイズが 20 バイトの場合、フラグメント オフセットは(0、185、370、555、740 など) の倍数になります。
あるルーターでパケットがフラグメント化され、そのフラグメントが別のルーターでさらにフラグメント化される可能性があります。例えば、20バイトのIPヘッダーを含む4,520バイトのパケットが、MTUが2,500バイトのリンク上で2つのパケットにフラグメント化されるとします。
| フラグメント | サイズ(バイト) | ヘッダーサイズ(バイト) | データサイズ(バイト) | フラグその他のフラグメント | フラグメントオフセット(8バイトブロック) |
|---|---|---|---|---|---|
| 1 | 2,500 | 20 | 2,480 | 1 | 0 |
| 2 | 2,040 | 20 | 2,020 | 0 | 310 |
合計データサイズは維持されます:2,480バイト + 2,020バイト = 4,500バイト。オフセットはとです
MTU が 1,500 バイトのリンクに転送されると、各フラグメントは 2 つのフラグメントに分割されます。
| フラグメント | サイズ(バイト) | ヘッダーサイズ(バイト) | データサイズ(バイト) | フラグその他のフラグメント | フラグメントオフセット(8バイトブロック) |
|---|---|---|---|---|---|
| 1 | 1,500 | 20 | 1,480 | 1 | 0 |
| 2 | 1,020 | 20 | 1,000 | 1 | 185 |
| 3 | 1,500 | 20 | 1,480 | 1 | 310 |
| 4 | 560 | 20 | 540 | 0 | 495 |
ここでもデータサイズは維持されます。1,480 + 1,000 = 2,480、1,480 + 540 = 2,020
この場合も、More Fragmentsビットは、1が設定されているすべてのフラグメントに対して1のままであり、到着した最後のフラグメントについては通常通り動作します。つまり、MFビットは最後のフラグメントのみに0に設定されます。そしてもちろん、Identificationフィールドは、再フラグメント化されたすべてのフラグメントで同じ値を保持し続けます。これにより、フラグメントが再フラグメント化された場合でも、受信側はそれらがすべて同じパケットから開始されたことを認識できます。
最後のオフセットと最後のデータ サイズは、合計データ サイズの計算に使用されます。
以下の条件の少なくとも1つが満たされている場合、受信側はパケットがフラグメントであることを認識します
受信側は、送信元アドレスと宛先アドレス、プロトコルID、および識別フィールドを使用して、一致するフラグメントを識別します。受信側は、フラグメントオフセットとmorefragmentsフラグの両方を使用して、同じIDを持つフラグメントからデータを再構成します。morefragmentsフラグが0に設定されている最後のフラグメントを受信すると、受信側は最後のフラグメントのオフセットに8を掛け、最後のフラグメントのデータサイズを加算することで、元のデータペイロードのサイズを計算できます。この例では、この計算はバイト単位です。受信側がすべてのフラグメントを取得したら、オフセットに従って正しい順序で再構成し、元のデータグラムを形成できます。
IP アドレスはネットワーク ハードウェアに永続的に結び付けられているわけではなく、実際、最近のオペレーティング システムでは、ネットワーク インターフェイスが複数の IP アドレスを持つことができます。リンク上の宛先ホストに IP パケットを適切に配信するために、ホストとルータには、ネットワーク インターフェイスのハードウェア アドレス[ b ]と IP アドレスとの関連付けを行う追加のメカニズムが必要です。アドレス解決プロトコル(ARP) は、IPv4 に対してこの IP アドレスからハードウェア アドレスへの変換を実行します。さらに、逆相関も多くの場合必要になります。たとえば、管理者によってアドレスが事前に構成されていない限り、IP ホストを起動するかネットワークに接続すると、その IP アドレスを決定する必要があります。このような逆相関のプロトコルには、動的ホスト構成プロトコル(DHCP)、ブートストラップ プロトコル(BOOTP)、およびまれに逆 ARP などがあります。
この記事は、 CC BY 4.0ライセンス(2022年)に基づき、以下の情報源から改変したものです。Michel Bakni、Sandra Hanbo(2022年)。「インターネットプロトコルバージョン4 ( IPv4)に関する調査」(PDF)。WikiJournal of Science。doi:10.15347 /WJS/2022.002。ISSN 2470-6345。OCLC 9708517136。S2CID 254665961。Wikidata Q104661268
を除く)。
機能的な意味を持つ固定アドレスを持つことが有用な場合があります。このような使用法が必要な場合、アドレス0は「このネットワーク」のように「これ」を意味すると解釈されます。