IPv6パケットは、インターネットプロトコルのバージョン6に従ってデータの送受信を行う際の基本的なメッセージ単位です。この
パケットは、アドレス情報やルーティング情報、さらにユーザーが送信するデータで構成されており、目的地に到達するための情報を含んでいます。
IPv6パケットは、大きく分けて固定ヘッダーと拡張ヘッダー、そしてペイロードから成り立っています。固定ヘッダーは常に40オクテットという一定の長さを持ち、その中にIPバージョン、トラフィッククラス、フローラベルなどの情報が含まれています。これに対して、拡張ヘッダーは必要に応じて追加されるもので、可変長であり、ルーティング情報やセキュリティ情報を含むことができます。ペイロード部分には、送信元から宛先ノードに届けるためのデータ、本来のメッセージが入っています。
IPv6パケットは、通常、
イーサネットなどの
データリンク層を介して送信されます。しかし、
IPv4との互換性を確保するために、
IPv4トンネルを利用して送信されることもあります。
IPv6では、
ルーターによる
パケットの断片化が行われないため、送信元ノードが必要に応じてまメッセージを断片化する必要があります。このため、経路MTU探索という手法を用いて、送信する
パケットサイズを最適化することが強く推奨されています。
固定ヘッダーの詳細
固定ヘッダーには、以下のような情報が含まれています:
- - バージョン(4ビット):IPのバージョンを示すフィールドで、IPv6の場合は常に値6です。
- - トラフィッククラス(6+2ビット):データの品質や優先度に基づいてパケットを分類します。
- - フローラベル(20ビット):特定のデータフローを一意に識別するためのラベルです。
- - ペイロード長(16ビット):ペイロードの長さを指定し、拡張ヘッダーも含めたサイズを示します。
- - 次ヘッダー(8ビット):次に続くヘッダーのタイプを示します。
- - ホップ制限(8ビット):パケットがルーターを通過する回数を制限します。
- - 送信元アドレス(128ビット):データを送信したノードのIPv6アドレスです。
- - 宛先アドレス(128ビット):データを受信するノードのIPv6アドレスです。
この固定ヘッダーは、基本的にはエラーチェックのための
チェックサムを持たず、パフォーマンス向上に寄与しています。
拡張ヘッダーとその重要性
拡張ヘッダーは、固定ヘッダーの後に続く可変長ヘッダーで、任意の
インターネット層の情報を持ちます。次ヘッダーのフィールドは、拡張ヘッダーのタイプを示し、拡張ヘッダーがいくつかつながっていることもあります。これにより、必要な情報を柔軟に追加でき、ルーティングやセキュリティの機能を強化できます。
断片化の仕組み
IPv6では、
パケットの断片化は送信元ノードだけが行います。
ルーターは
パケットを断片化せず、もし受信するノードのMTUを超えるサイズの場合、
パケットは破棄されることになります。断片化された
パケットは、
パケット再構築に必要な情報を持つ拡張ヘッダーも含まれるため、これを利用して宛先ノードは
パケットを再構築します。
再構築の際、宛先ノードはすべての断片を収集し、正しい位置に配置して元の
パケットを再編成します。しかし、すべての断片が到達するまでに60秒を超過した場合、再構築は放棄されるため、迅速な通信が求められます。
セキュリティと運用上の注意
最近の研究では、断片化がネットワークセキュリティのリスクを導入する可能性が確認されており、そのため、
IPv6パケットの最初の断片に必ずヘッダー情報を含めることが求められています。これは、異常な
パケットの断片化を防止するために実施されています。
このように、
IPv6パケットは新しいインターネットプロトコルにおいて非常に重要な役割を果たしており、細かい仕様や運用の注意点を理解することが求められています。