Home > IPv6実践導入ガイド > 01 IPv6とはどんな規格か
プロトコルヘッダーの解説をする前に、パケット構造を簡単におさらいしておこう。
回線上を流れているパケットは、L2(第2層)からL4(第4層)の各プロトコルヘッダーとデータで構成されている。
[ パケット構造 ]
これから解説するIPv6のプロトコルヘッダーはL3(第3層)プロトコルなので、IPヘッダーに位置している部分の解説だ。
IPv6のプロトコルヘッダーを簡単に解説をする前にIPv4とIPv6のプロトコルヘッダーを見比べて頂こう。
[ IPv6ヘッダー ]
[ IPv4ヘッダー ]
各フィールド説明は技術解説の章で説明するので割愛するが、IPv6ヘッダーの方がすっきりした構造になっているのがお判りであろう。
IPv4ヘッダーはオプションフィードが可変長であるため、IPv4ヘッダー自体が可変長であったのに対し、IPv6ヘッダーは40オクテット(*1)の固定長になった。
IPv6ヘッダーが固定長になった一番の理由は、ルーター等のL3(第3層)中継の効率化だ。
パケットを中継する場合は、L3中継装置がIPヘッダーを読み込んで、宛先のIPアドレスやオプション等の中継に必要な情報を取得するわけだが、IPv4の場合はIPヘッダーが可変長であるため、正確にIPヘッダーを読み取るには、ヘッダー長が記録されている所までIPヘッダーを読み、そこに書かれている値をもとに改めてのIPヘッダーを読み込む必要がある。
一方IPv6のプロトコルヘッダーは40オクテットの固定長なので、L3中継装置は40オクテットを一度読み込むだけで済む。
IPヘッダーサイズを計算してIPヘッダーを読むか、固定サイズで読むかの些細な違いだが、高速化が進むインターネットでは、固定長で読むことができる単純な仕様が大きな違いとなるのだ。
(*1)オクテット
8ビット集まりを表現する単位。「バイト」と同義語だが、ネットワークでは厳密に8ビットの集まりとして「オクテット」が使われる事が多い。
IPv4ヘッダーが可変長になった原因でもあるオプションフィールドは、IPv6でIPヘッダーに格納する事を廃止し、拡張ヘッダーとして外出しにした。
IPv6ヘッダー構造を見ると「次ヘッダ」がある。これが拡張ヘッダーをハンドリングしているポイントだ。
IPv6ヘッダーの次にTCPヘッダーがあるのであれば、このフィールドにTCPのプロトコル番号である「6」がセットされ、拡張ヘッダーがセットされている場合は、拡張ヘッダー番号がセットされ仕組みになっている。
つまり、IPv6のオプションはIPv6ヘッダに続いて拡張ヘッダーが数珠つなぎになるのだ。
[ 拡張ヘッダー ]
拡張ヘッダーにはさまざまな種類があるが、本編での解説は割愛させていたたく。付録に拡張ヘッダーのレイアウトを掲載するので、興味がある方はそちらをご覧いただきたい。
IPv4パケットは経路上でパケット分割(フラグメント)が許可されていたが、IPv6では通信経路上でのフラグメントがサポートされないので、IPv6ヘッダーにはフラグメントに関するフィールドが存在していない。
拡張ヘッダーの中にはフラグメントヘッダーが存在しているが、これは通信経路上での分割用ではなく、送信元でIPv6パケットを分割した場合にのみ適用される。
IPv4ヘッダーにはヘッダー破損を検出するチェックサムが存在していたが、IPv6ではチェックサムが廃止されている。
IPv4が開発された時代の通信品質は高くなかったのでチェックサムを必要としていたが、近年の通信品質は飛躍的に高くなっなったのが廃止の理由であろう。
宛先や送信元アドレスが破壊されて別のホストにパケットが届くのが心配ならば、IPv6で標準サポートされているIPsecを使う事を検討せよとの意図なのだろう。
チェックサムの計算は負荷が大きくL3中継装置の負担になるのだが、この計算が不要になるのも高速中継に大きく寄与している。
Copyright © MURA All rights reserved.