(57)【要約】【課題】ヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動してもこれに柔軟に対応して各種の通信処理を行うことができる通信装置と、これを使用したデータ読出方法およびデータ読出プログラムを得ること。【解決手段】第１および第２のヘッダ長情報格納部２０６、２０７には次ヘッダ値に対応させて拡張ヘッダのヘッダ長に関する情報が予め格納される。テーブル登録処理部２０５は、エントリテーブル２０３へのポート番号の登録の対象となるパケットについて、先頭から順に基本ヘッダおよび各拡張ヘッダに記述された次ヘッダ値を取得し、第１および第２のヘッダ長情報格納部２０６、２０７を使用して各拡張ヘッダのヘッダ長を特定する。ヘッダ長の累積値が、ポート番号格納領域のパケット先頭からのオフセットとなる。【選択図】図２
2006324815.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別する種類判別手段と、
それぞれの種類別に拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段と、
前記種類判別手段によって種類が判別できなかった拡張ヘッダが存在したとき、これを外部に通知する通知手段と、
前記拡張ヘッダ内容記憶手段に、拡張ヘッダの種類と形式に関する情報を追加するための記憶内容追加入力手段
とを具備することを特徴とする通信装置。
【請求項２】
受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別する種類判別手段と、
それぞれの種類別に拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段と、
前記種類判別手段によって種類が判別できなかった拡張ヘッダについてその形式に関する情報を要求する要求パケットを生成して送出する要求パケット送出手段と、
送出した要求パケットに対する応答パケットが返送されてきたとき、これを基に判別された新たな種類の拡張ヘッダとその形式に関する情報を拡張ヘッダ内容記憶手段に追加する記憶内容追加手段
とを具備することを特徴とする通信装置。
【請求項３】
受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出手段と、
拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段と、
それぞれの拡張ヘッダにおける予め定めた領域から、次に連結される拡張パケットが存在する場合のその拡張ヘッダの種類を記述した情報を読み出す第２の情報読出手段と、
前記第１の情報読出手段によって拡張ヘッダの種類を記述した情報が読み出されたとき、前記種類ヘッダ長対応記憶手段によって対応する最初の拡張ヘッダのヘッダ長を算出して前記基本ヘッダのヘッダ長に加算し、これ以降に連結されているそれぞれの拡張ヘッダに対しては前記第２の情報読出手段によって拡張ヘッダの種類を記述した情報が読み出されるたびにこれら拡張ヘッダのヘッダ長をこれに累算するヘッダ長累算手段と、
このヘッダ長累算手段によって前記パケットの前記基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長が求められたとき、これを基準としてこのヘッダに続くデータの読み出しを行うデータ読出手段
とを具備することを特徴とする通信装置。
【請求項４】
前記種類ヘッダ長対応記憶手段に対応する種類の拡張ヘッダが存在しないとき、その新たな種類の拡張ヘッダのヘッダ長を要求するヘッダ長要求パケットを生成して送出するヘッダ長要求パケット送出手段を具備することを特徴とする請求項３記載の通信装置。
【請求項５】
前記ヘッダ長要求パケット送出手段によってヘッダ長要求パケットが送出されたとき、これに応答する応答パケットを受信する応答パケット受信手段と、
この応答パケット受信手段が受信した応答パケットから新たな種類の拡張パケットとそのヘッダ長の組み合わせを前記種類ヘッダ長対応記憶手段に記憶させる追加記憶手段
とを具備することを特徴とする請求項４記載の通信装置。
【請求項６】
前記データ読出手段はポート番号を読み出すポート番号読出手段であり、前記基本ヘッダからアドレス情報を読み出すアドレス情報読出手段と、このアドレス情報読出手段から読み出したアドレス情報と前記ポート番号読出手段によって読み出されたポート番号を組み合わせてルーティングのためのルーティング情報を作成するルーティング情報作成手段を更に具備することを特徴とする請求項３記載の通信装置。
【請求項７】
受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出ステップと、
拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出す第２の情報読出ステップと、
前記第１の情報読出ステップおよび第２の情報読出ステップで拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出する拡張ヘッダ長算出ステップと、
この拡張ヘッダ長算出ステップで前記パケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および前記基本ヘッダのヘッダ長を合計して前記パケットの前記基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求めるヘッダ長判別ステップと、
このヘッダ長判別ステップで求められたヘッダの全長を基準としてこのヘッダに続くデータの読み出しを行うデータ読出ステップ
とを具備することを特徴とするデータ読出方法。
【請求項８】
通信装置を構成するコンピュータに、
受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出処理と、
拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出す第２の情報読出処理と、
前記第１の情報読出処理および第２の情報読出処理で拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出する拡張ヘッダ長算出処理と、
この拡張ヘッダ長算出処理で前記パケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および前記基本ヘッダのヘッダ長を合計して前記パケットの前記基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求めるヘッダ長判別処理と、
このヘッダ長判別処理で求められたヘッダの全長を基準としてこのヘッダに続くデータの読み出しを行うデータ読出処理
とを実行させることを特徴とするデータ読出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを受信する通信装置とこれを使用したデータ読出方法およびデータ読出プログラムに係わり、特にＩＰｖ６パケットのように基本ヘッダに必要に応じて拡張ヘッダが追加されるパケットを受信する通信装置とこれを使用したデータ読出方法およびデータ読出プログラムに関する。
【背景技術】
【０００２】
インターネットに代表されるパケット通信によるネットワークでは、その急速な普及と使用形態の多様化に伴い、セキュリティ確保やルーティング経路の指定等、通信制御に多種多様な機能を付加できることへの期待が高まっている。
【０００３】
現在インターネットを含む多くのＩＰ（Internet Protocol）網では、標準の通信プロトコルとしてＩＰｖ４（Internet Protocol version 4）が使用されている。ＩＰｖ４では、パケットのヘッダ内に通信機能を拡張するための情報を記述するオプションフィールドと呼ばれる可変長の領域を追加できるようにしている。しかしながら、オプションフィールドを使用するとヘッダ全体も可変長となり転送処理速度を低下させる等の理由から、多くのルータではオプションフィールドが使用されていないＩＰパケットを優先的に転送するようになっている。したがって、ＩＰｖ４では各種の機能を積極的に付加することが難しい。
【０００４】
そこで、パケットのヘッダを、ルーティングに使用する領域と通信機能を拡張するための可変長の領域とに区分けし、拡張機能の追加の柔軟性と転送処理の効率化とを両立させることが考えられている。次世代のインターネットプロトコルとして提案されているＩＰｖ６（Internet Protocol version 6）では、この考え方に沿って、ルーティングに使用されるパケットのヘッダを固定長の基本ヘッダとその後ろに必要に応じて連結される各種の拡張ヘッダから構成することにしている。
【０００５】
ところで、パケットのヘッダへの情報の追加によってではなく、パケットのペイロード部の特定の領域に格納されている情報を使用して通信の機能拡張を実現することも従来より行われている（たとえば特許文献１参照）。たとえば、ＩＰパケットのペイロード部に格納されるＴＣＰ（Transmission Control Protocol）ヘッダに記述されているポート番号は、ＩＰアドレスの補助アドレスとして使用される情報である。また、ＴＣＰヘッダはＩＰパケットのペイロード部の先頭に配置され、ポート番号はＴＣＰヘッダの先頭の領域に記述されるようになっている。この従来の提案では、転送の対象となるＩＰパケットについてこのポート番号を取得し、ポート番号に応じてＩＰパケットのルーティングの際のフィルタリングを行うようになっている。他にも、たとえば同じＩＰアドレスを割り当てた複数の通信端末に、異なるポート番号を割り当てることによって、個別の通信を実現させることもできる。
【特許文献１】特開２００１−３３３４９３号公報（第００２２段落、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記したパケットのヘッダの情報を使用した通信の機能拡張に、このようなペイロード部の特定の領域に格納される情報を使用した通信の機能拡張を組み合わせれば、更にきめ細やかな通信制御を実現することが可能となる。ペイロード部の特定の領域に格納される情報を参照するには、そのパケットにおけるペイロード部の開始位置を判別する必要がある。ペイロード部の開始位置は、ＩＰパケットのヘッダ長が分かれば判別できる。ＩＰｖ４の場合には、ヘッダは可変長となっているものの、前記したようにヘッダ内にオプションフィールドが存在しており、ヘッダにはヘッダ長が記述されている。
【０００７】
しかしながら、前記したＩＰｖ６のパケットのように、ヘッダが基本ヘッダと任意の数の拡張ヘッダで構成される場合、追加される拡張ヘッダに応じてヘッダ長が異なってくる。したがって、このようなパケットではペイロード部に至るまでのデータ長の判別が容易ではない。
【０００８】
そこで本発明の目的は、ヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動してもこれに柔軟に対応して各種の通信処理を行うことができる通信装置と、これを使用したデータ読出方法およびデータ読出プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明では、（イ）受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別する種類判別手段と、（ロ）それぞれの種類別に拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段と、（ハ）種類判別手段によって種類が判別できなかった拡張ヘッダが存在したとき、これを外部に通知する通知手段と、（ニ）拡張ヘッダ内容記憶手段に、拡張ヘッダの種類と形式に関する情報を追加するための記憶内容追加入力手段とを通信装置に具備させる。
【００１０】
すなわち本発明では、パケットのヘッダを基本ヘッダとしてその後に連結される拡張ヘッダのそれぞれの種類別に、その拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段を備えている。そして、受信したパケットのヘッダにおける予め定めた領域から、基本ヘッダの後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別するようになっている。すなわち、種類を判別することによってその拡張ヘッダの形式に関する情報を取得することができるようになっている。しかしながら、パケットのヘッダに存在する拡張ヘッダの種類が拡張ヘッダ内容記憶手段に記憶されていない種類であった場合には、その拡張ヘッダの形式に関する情報を取得することができない。そこで、種類が判別できなかった拡張ヘッダが存在したときにはこれを外部に通知するとともに、拡張ヘッダの種類と形式に関する情報を拡張ヘッダ内容記憶手段に追加できるようにしている。これにより、ヘッダが基本ヘッダと拡張ヘッダで構成され、新規の種類の拡張ヘッダが受信パケットのヘッダに存在している場合にでも、その拡張ヘッダの形式に関する情報を取得することができる。
【００１１】
本発明では、（イ）受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別する種類判別手段と、（ロ）それぞれの種類別に拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段と、（ハ）種類判別手段によって種類が判別できなかった拡張ヘッダについてその形式に関する情報を要求する要求パケットを生成して送出する要求パケット送出手段と、（ニ）送出した要求パケットに対する応答パケットが返送されてきたとき、これを基に判別された新たな種類の拡張ヘッダとその形式に関する情報を拡張ヘッダ内容記憶手段に追加する記憶内容追加手段とを通信装置に具備させる。
【００１２】
すなわち本発明では、パケットのヘッダを基本ヘッダとしてその後に連結される拡張ヘッダのそれぞれの種類別に、その拡張ヘッダの形式に関する情報を記憶する拡張ヘッダ内容記憶手段を備えている。そして、受信したパケットのヘッダにおける予め定めた領域から、基本ヘッダの後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別するようになっている。すなわち、種類を判別することによってその拡張ヘッダの形式に関する情報を取得することができるようになっている。しかしながら、パケットのヘッダに存在する拡張ヘッダの種類が拡張ヘッダ内容記憶手段に記憶されていない種類であった場合には、その拡張ヘッダの形式に関する情報を取得することができない。そこで、種類が判別できなかった拡張ヘッダが存在したときにはその拡張ヘッダについてその形式に関する情報を要求する要求パケットを生成して送出する。そして、これに対応する応答パケットが返送されてくるとこれを基に判別された新たな種類の拡張ヘッダとその形式に関する情報を拡張ヘッダ内容記憶手段に追加するようにしている。これにより、ヘッダが基本ヘッダと拡張ヘッダで構成され、新規の種類の拡張ヘッダが受信パケットのヘッダに存在している場合にでも、その拡張ヘッダの形式に関する情報を通信によって取得することができる。
【００１３】
本発明では、（イ）受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出手段と、（ロ）拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段と、（ハ）それぞれの拡張ヘッダにおける予め定めた領域から、次に連結される拡張パケットが存在する場合のその拡張ヘッダの種類を記述した情報を読み出す第２の情報読出手段と、（ニ）第１の情報読出手段によって拡張ヘッダの種類を記述した情報が読み出されたとき、種類ヘッダ長対応記憶手段によって対応する最初の拡張ヘッダのヘッダ長を算出して基本ヘッダのヘッダ長に加算し、これ以降に連結されているそれぞれの拡張ヘッダに対しては第２の情報読出手段によって拡張ヘッダの種類を記述した情報が読み出されるたびにこれら拡張ヘッダのヘッダ長をこれに累算するヘッダ長累算手段と、（ホ）このヘッダ長累算手段によってパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長が求められたとき、これを基準としてこのヘッダに続くデータの読み出しを行うデータ読出手段とを通信装置に具備させる。
【００１４】
すなわち本発明では、パケットのヘッダを基本ヘッダとしてその後に連結される拡張ヘッダのそれぞれの種類別にヘッダ長を対応付けて記憶した種類ヘッダ長対応記憶手段を備えている。そして、受信したパケットのヘッダにおける予め定めた領域から、このヘッダの基本ヘッダの後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出すとともに、更にそれぞれの拡張ヘッダにおける予め定めた領域から、次に連結される拡張パケットが存在する場合のその拡張ヘッダの種類を記述した情報を読み出す。そして、種類が読み出されるたびに、種類ヘッダ長対応記憶手段によって各拡張ヘッダのヘッダ長を算出し、これを基本ヘッダのヘッダ長に累算していく。この累算によって該当するパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長が求められたとき、これを基準としてこのヘッダに続くデータの読み出しを行うようになっている。これにより、受信するパケットのヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動する場合でも、パケットのヘッダ長を容易に判別することができる。
【００１５】
本発明では、（イ）受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出ステップと、（ロ）拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出す第２の情報読出ステップと、（ハ）第１の情報読出ステップおよび第２の情報読出ステップで拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出する拡張ヘッダ長算出ステップと、（ニ）この拡張ヘッダ長算出ステップでパケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および基本ヘッダのヘッダ長を合計してパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求めるヘッダ長判別ステップと、（ホ）このヘッダ長判別ステップで求められたヘッダの全長を基準としてこのヘッダに続くデータの読み出しを行うデータ読出ステップとをデータ読出方法に具備させる。
【００１６】
すなわち本発明では、まず受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す。また、拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出すようになっている。これにより、パケットの基本ヘッダの後に連結される各拡張ヘッダの種類を判別することができる。そして、拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出するため、最終的にはパケットのすべての拡張ヘッダのヘッダ長が算出される。パケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および基本ヘッダのヘッダ長を合計してパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求め、これを基準としてこのヘッダに続くデータの読み出しを行う。これにより、受信するパケットのヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動する場合でも、パケットのヘッダ長を容易に判別することができる。
【００１７】
本発明では、通信装置を構成するコンピュータに、（イ）受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出す第１の情報読出処理と、（ロ）拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出す第２の情報読出処理と、（ハ）第１の情報読出処理および第２の情報読出処理で拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出する拡張ヘッダ長算出処理と、（ニ）この拡張ヘッダ長算出処理でパケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および基本ヘッダのヘッダ長を合計してパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求めるヘッダ長判別処理と、（ホ）このヘッダ長判別処理で求められたヘッダの全長を基準としてこのヘッダに続くデータの読み出しを行うデータ読出処理とをデータ長読出プログラムによって実行させる。
【００１８】
すなわち本発明では、通信装置を構成するコンピュータに、まず受信したパケットのヘッダにおける予め定めた領域から、このヘッダを基本ヘッダとしてその後に任意の数の拡張ヘッダが連結される場合の最初の拡張ヘッダの種類を記述した情報を読み出させる。また、拡張ヘッダの種類を記述した情報が読み出されると、その情報が指し示す拡張ヘッダにおける予め定めた領域から、その拡張ヘッダの次に連結される拡張ヘッダが存在する場合のその連結される拡張ヘッダの種類を記述した情報を読み出させるようになっている。これにより、パケットの基本ヘッダの後に連結される各拡張ヘッダの種類を判別することができる。そして、拡張ヘッダの種類を記述した情報が読み出されるごとに、拡張ヘッダの種類とヘッダ長をそれぞれ対応付けて記憶した種類ヘッダ長対応記憶手段によって対応する拡張ヘッダのヘッダ長を算出させるため、最終的にはパケットのすべての拡張ヘッダのヘッダ長が算出される。パケットのすべての拡張ヘッダのヘッダ長が算出されると、その算出された各ヘッダ長および基本ヘッダのヘッダ長を合計させてパケットの基本ヘッダおよびすべての拡張ヘッダにより構成されるヘッダの全長を求めさせるとともに、これを基準としてこのヘッダに続くデータの読み出しを行わせる。これにより、受信するパケットのヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動する場合でも、パケットのヘッダ長を容易に判別させることができる。また、このようなプログラムをインストールすることで、汎用あるいは既存の通信装置でもこのような機能を簡単に実現することができる。
【発明の効果】
【００１９】
以上説明したように本発明によれば、パケットの基本ヘッダの後に任意の数の拡張ヘッダが連結される場合のそれぞれの拡張ヘッダの種類を判別し、その拡張ヘッダのヘッダ長といった形式に関する情報を取得できるようになっている。これにより、たとえば基本ヘッダに拡張ヘッダが必要に応じて追加されるＩＰｖ６パケットのように、受信するパケットのヘッダが基本ヘッダと拡張ヘッダで構成され、かつ拡張ヘッダが任意の数だけ基本ヘッダに連結されるようなヘッダ構造を有するパケットで拡張ヘッダの種類や数が変動する場合でも、パケットのヘッダ長を判別するといった処理が可能となる。したがって、ポート番号を利用したルーティング等、通信装置で行われるパケットのペイロード部に格納された情報を利用する各種処理の高速化を実現することができる。
【発明を実施するための最良の形態】
【００２０】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００２１】
図１は、本発明の一実施例による通信装置を使用した通信システムの構成を表わしたものである。この通信システム１００では、次世代のインターネットプロトコルとして提案されているＩＰｖ６を地域を限定して運用するＩＰｖ６適用ＬＡＮ（Local Area Network）１０１に、通信装置としての宅内接続装置１０２を介して、住宅内に配置されることを想定して構築された宅内ネットワーク１０３が接続されている。また、宅内ネットワーク１０３には、パーソナルコンピュータとしての第１〜第ｋの通信端末１０４1〜１０４kが配置されている。宅内接続装置１０２は、宅内ネットワーク１０３のＩＰｖ６適用ＬＡＮ１０１への接続ポイントとなっており、ＩＥＴＦ（the Internet Engineering Task Force）で標準化された通信プロトコルであるＩＰｖ６を使用してパケットの転送処理を行う装置である。また、宅内ネットワーク１０３にはディスプレイ等の表示装置やキーボード等の入力装置を供えた管理装置１０５が配置されており、ネットワーク管理者が宅内接続装置１０２への各種設定や宅内接続装置１０２の状態の監視等を行うことができるようになっている。
【００２２】
この通信システム１００で使用されるパケットの図示しないペイロード部には、ＩＰアドレスの補助アドレスであるポート番号が格納されるようになっている。第１〜第ｋの通信端末１０４1〜１０４kはそれぞれ、ＩＰアドレスとこのポート番号とを組み合わせたソケットと呼ばれるアドレス情報を使用して、複数の相手先と同時に通信を行うことを可能としている。また、自端末のＩＰアドレスを宛先とするパケットが送られてきても、その宛先ポート番号が通信を行っている相手先に対応付けて設定したポート番号と一致しない場合には、自端末のセキュリティを確保するためにそのパケットを使用した処理を行うことなく廃棄するようになっている。
【００２３】
このような第１〜第ｋの通信端末１０４1〜１０４kで廃棄されてしまうようなパケットは、ネットワーク負荷の軽減のためにも、できるだけ宅内ネットワーク１０３上を転送されないようにすることが望ましい。そこで宅内接続装置１０２は、宅内ネットワーク１０３側から送られてくるパケットで使用されているソケットを、第１〜第ｋの通信端末１０４1〜１０４kによる通信で実際に使用されているソケットとして扱う。そして、このソケット以外を宛先とするパケットがＩＰｖ６適用ＬＡＮ１０１側から送られた場合には、その宛先の通信端末１０４で結局は廃棄されてしまう可能性が高いとして、宅内ネットワーク１０３に送出しないようにする。
【００２４】
図２は、宅内接続装置の構成を表わしたものである。宅内接続装置１０２は、宅内ネットワーク１０３とＩＰｖ６適用ＬＡＮ１０１との間でパケットの転送処理を行うパケット転送処理部２０２を備えている。このパケット転送処理部２０２には、ＩＰｖ６適用ＬＡＮ１０１側から受け取ったパケットを宅内ネットワーク１０３側へ転送するか否かを判別するために使用するエントリテーブル２０３が接続されている。パケット転送処理部２０２には、更に宅内ネットワーク１０３側からＩＰｖ６適用ＬＡＮ１０１側へと転送されるパケットを複製して一時的に記憶するパケット記憶部２０４が接続されている。また、このパケット記憶部２０４に記憶されたパケットを参照してエントリテーブル２０３へのエントリの登録を行うテーブル登録処理部２０５が備えられており、エントリテーブル２０３およびパケット記憶部２０４に接続されている。
【００２５】
このテーブル登録処理部２０５には、更にＩＰｖ６のパケットのヘッダに必要に応じて付加される拡張ヘッダについて、そのヘッダ長やヘッダ長が格納される位置および後に説明する次ヘッダ値が格納される位置といったヘッダの形式に関する情報をそれぞれ格納する第１のヘッダ長情報格納部２０６および第２のヘッダ長情報格納部２０７が接続されている。第１のヘッダ長情報格納部２０６は、ＩＥＴＦで既に標準化されている種類の拡張ヘッダのヘッダ長についての情報を格納するようになっている。第２のヘッダ長情報格納部２０７は、通信システム１００内で独自にあるいは通信システム１００内の特定の通信端末間でのみ定めた種類の拡張ヘッダのヘッダ長についての情報を格納するようになっている。また、第２のヘッダ長情報格納部２０７は、ＩＥＴＦで新たな種類の拡張ヘッダが標準化された場合にはその種類の拡張ヘッダのヘッダ長についての情報も格納するようになっている。これら第１のヘッダ長情報格納部２０６や第２のヘッダ長情報格納部２０７に格納される情報の更新は、図１に示した管理装置１０５から行えるようになっている。
【００２６】
宅内接続装置１０２は、図示しないＣＰＵ（中央処理装置）と制御プログラムを格納したＲＯＭ（Read Only Memory）等の記憶媒体、ＲＡＭ（Random Access Memory）等の作業用メモリならびに通信制御部等のハードウェアによって構成されている。すなわち、制御プログラムをＣＰＵが実行することで前記した各機能部が実現するようになっている。また、第１のヘッダ長情報格納部２０６および第２のヘッダ長情報格納部２０７は、指定されたデータ列を内部に格納された各データ列と比較し、一致するデータ列に対応して格納された情報のアドレスをＣＰＵに返すことによってその情報の取り出しを可能にするＣＡＭ（Content Addressable Memory）を備えている。
【００２７】
パケット転送処理部２０２は、図１に示す宅内ネットワーク１０３およびＩＰｖ６適用ＬＡＮ１０１に接続してこれらを介してイーサネット（登録商標）フレームの送受信を行うようになっており、これによって宅内ネットワーク１０３とＩＰｖ６適用ＬＡＮ１０１との間のパケットの転送を実現している。パケット記憶部２０４は、パケット転送処理部２０２により宅内ネットワーク１０３側からＩＰｖ６適用ＬＡＮ１０１側へと転送される各パケットを複製して記憶する。そして、テーブル登録処理部２０５は、パケット記憶部２０４に記憶されたパケットから、ポート番号とＩＰアドレスとを組み合わせたソケットを送信元と宛先の両方について取得し、これをエントリテーブル２０３にエントリさせる。パケット転送処理部２０２は、ＩＰｖ６適用ＬＡＮ１０１側から受け取ったパケットについては、そのポート番号とＩＰアドレスとの組み合わせに対応するエントリがエントリテーブル２０３に存在するか否かを判別し、存在しない場合には転送せずに廃棄するようになっている。各エントリは、一定期間が経過すると削除されるようになっており、エントリテーブル２０３の肥大化を防止している。
【００２８】
このように、まずパケット記憶部２０４に記憶されたパケットからポート番号とＩＰアドレスとを取得する必要がある。しかしながら、ＩＰｖ６ではそのヘッダに応じて拡張ヘッダが付加されるようになっており、ＩＰｖ４のように総ヘッダ長を示す情報がヘッダに記述されておらず、ポート番号の位置の特定が難しい。そこで、この実施例では各拡張ヘッダに付加される次の拡張ヘッダについての情報に着目することで、迅速にＩＰヘッダのヘッダ長を判別し、効率良くポート番号を取得することを実現する。
【００２９】
図３は、パケット記憶部に記憶されるパケットの構成を表わしたものである。パケット記憶部２０４に記憶されるパケット２３１は、ＩＰｖ６のプロトコルに準拠したＩＰパケットであり、先頭から順に、ＩＰｖ６ヘッダ２３２と、ＴＣＰヘッダ２５１あるいはＵＤＰ（User Data Protocol）ヘッダ２５６から成るトランスポート層ヘッダ２３３と、アプリケーション層データ２３４が連結された構成となっている。
【００３０】
図４は、パケット記憶部に記憶されるパケットのＩＰｖ６ヘッダの構成を表わしたものである。ＩＰｖ６ヘッダ２３２には、先頭から８バイトを除いた次の１６バイトの領域に送信元ＩＰアドレス２４１が格納され、続く次の１６バイトの領域に宛先ＩＰアドレス２４２が格納される。ただし、第１〜第ｋの通信端末１０４1〜１０４kを含む通信システム１００の各通信端末に割り当てられているＩＰアドレスのデータ長は４バイトとなっているものとする。このため、ここでは送信元ＩＰアドレス２４１の後半の４バイトと宛先ＩＰアドレス２４２の後半４バイトの領域のみ使用されるようになっている。ＩＰｖ６ヘッダ２３２の先頭から宛先ＩＰアドレス２４２までの部分が、ＩＰｖ６のルーティングに使用されるヘッダであり、この後に拡張ヘッダが連結される場合にはこの部分は基本ヘッダとして扱われる。この部分を基本ヘッダ２４３と呼ぶものとする。
【００３１】
ＩＰｖ６ヘッダ２３２では更にこの基本ヘッダ２４３の後に続けて、経路記録、フラグメント、認証あるいは暗号化といった各種の拡張ヘッダ２４４を適宜追加できるようになっている。追加される拡張ヘッダ２４４の種類や個数は不特定であり、複数の拡張ヘッダ２４４が追加される場合には数珠繋がりにこれらが連結されるようになっている。ここでは、基本ヘッダ２４３の後ろにｎ個の拡張ヘッダ２４４1〜２４４nがこの順序で連結されているものとする。
【００３２】
これらの拡張ヘッダ２４４および図３のトランスポート層ヘッダ２３３に配置されるＴＣＰヘッダ２５１やＵＤＰヘッダ２５６には、その種類ごとに次ヘッダ値と呼ばれる識別番号が予め割り当てられている。そして、ＩＰｖ６ヘッダ２３２の先頭から６バイトを除いた次の８ビットの領域には、拡張ヘッダ２４４のうち基本ヘッダ２４３の次に配置された拡張ヘッダ２４４、すなわちここでは第１の拡張ヘッダ２４４1に割り当てられた次ヘッダ値２４５が格納される。また、各拡張ヘッダ２４４には、図示しないが同様に自己の次に配置された拡張ヘッダに割り当てられた次ヘッダ値を格納するための領域がそれぞれ用意されている。したがって、たとえばＩＰｖ６ヘッダ２３２の最後に配置された第ｎの拡張ヘッダ２４４nの次ヘッダ値には、図３のトランスポート層ヘッダ２３３に配置されたＴＣＰヘッダ２５１あるいはＵＤＰヘッダ２５６に割り当てられた次ヘッダ値のうち該当するものが格納される。
【００３３】
図５は、パケット記憶部に記憶されるパケットのＴＣＰヘッダの構成を表わしたものである。ＴＣＰヘッダ２５１には、先頭から２バイトの領域に送信元ポート番号２５２が格納され、次の２バイトの領域に宛先ポート番号２５３が格納されるようになっている。
【００３４】
図６は、パケット記憶部に記憶されるパケットのＵＤＰヘッダの構成を表わしたものである。ＵＤＰヘッダ２５６も、図５に示したＴＣＰヘッダ２５１と同様に、先頭から２バイトの領域に送信元ポート番号２５７が格納され、次の２バイトの領域に宛先ポート番号２５８が格納されるようになっている。
【００３５】
図７は、パケット記憶部に記憶されるパケットのエントリテーブルへの登録の対象となる部分を説明するためのものである。ここで、図４に示したｎ個の拡張ヘッダ２４４1〜２４４nの各ヘッダ長の総和を拡張ヘッダ長ａとする。図２のエントリテーブル２０３には、パケット２３１のＩＰｖ６ヘッダ２３２の送信元ＩＰアドレス２４１および宛先ＩＰアドレス２４２と、図５に示したＴＣＰヘッダ２５１の送信元ポート番号２５２および宛先ポート番号２５３あるいは図６に示したＵＤＰヘッダ２５６の送信元ポート番号２５７および宛先ポート番号２５８とを登録するようになっている。したがって、パケット２３１の先頭２６１から２０バイトを除いた次の４バイトの部分、先頭２６１から３６バイトを除いた次の４バイトの部分、そして先頭２６１から４０バイトと更に拡張ヘッダ長ａを除いた次の４バイトの部分を取得し、これを登録するようにすればよい。
【００３６】
しかしながら、拡張ヘッダ長ａを判別できなければ、トランスポート層ヘッダ２３３の送信元ポート番号２５２、２５７と宛先ポート番号２５３、２５８を正しく取得することができない。そこで、図２に示すテーブル登録処理部２０５は、パケット記憶部２０４に記憶されたパケット２３１を参照して拡張ヘッダ長ａの演算を行い、その演算結果を使用して各データの取得と登録を行う。
【００３７】
図８は、テーブル登録処理部のテーブル登録処理の流れを表わしたものである。テーブル登録処理部２０５は、パケット記憶部２０４に新たなパケット２３１のデータが記憶されるのを監視するようになっている（ステップＳ３０１）。新たなパケット２３１のデータが記憶されると（Ｙ）、何番目の拡張ヘッダ２４４に格納された次ヘッダ値についての処理を実行中であるかを表わす拡張ヘッダ番号ｍと、拡張ヘッダ２４４のヘッダ長の累積を表わす累積ヘッダ長ｂを、それぞれ初期化するとともに、パケット２３１の基本ヘッダ２４３から次ヘッダ値２４５を取得する。ここで拡張ヘッダ番号ｍには初期値「１」を、累積ヘッダ長ｂには初期値「０」をそれぞれ設定する（ステップＳ３０２）。そして、取得した次ヘッダ値２４５に該当する情報が、図２に示す第１のヘッダ長情報格納部２０６に格納されているか否かを判別する（ステップＳ３０３）。具体的には、一致する次ヘッダ値が存在し、なおかつその次ヘッダ値に対応付けられた有効な情報が存在するか否かを判別する。
【００３８】
図９は、ＩＥＴＦで既に標準化されている拡張ヘッダの種類と次ヘッダ値との対応付けを表わしたものである。ここでは、たとえばルータで参照される情報を格納するホップバイホップオプションヘッダには次ヘッダ値「０」が、ルーティングに使用されるルーティングヘッダには次ヘッダ値「４３」がそれぞれ対応付けられている。また、拡張ヘッダではないが、ＴＣＰヘッダ２５１には次ヘッダ値「６」が、ＵＤＰヘッダ２５６には次ヘッダ値「１７」がそれぞれ対応付けられている。
【００３９】
図１０は、第１のヘッダ長情報格納部に格納される内容を表わしたものである。第１のヘッダ長情報格納部２０６には、図９に示した次ヘッダ値ごとに、該当する拡張ヘッダ２４４の先頭からヘッダ長を格納する領域の開始位置までのビット数としてのヘッダ長領域オフセットと、そのヘッダ長を格納する領域のビット数としてのヘッダ長領域サイズとが対応付けて格納されている。また、固定長の拡張ヘッダ２４４の次ヘッダ値の場合には、その固定ヘッダ長が対応付けて格納されている。
【００４０】
たとえば、ホップバイホップオプションヘッダを示す次ヘッダ値「０」には、ヘッダ長領域オフセット「８ビット」と、ヘッダ長領域サイズ「８ビット」が対応付けられている。これは、その拡張ヘッダ２４４の先頭から８ビットを除いた次の８ビットの領域にその拡張ヘッダ２４４自身のヘッダ長が格納されていることを示している。ただし、このヘッダ長は図７に示した拡張ヘッダ長ａを算出するためのものである。したがって、ＴＣＰヘッダ２５１とＵＤＰヘッダ２５６についてはそのヘッダ長を算入しないため、これらを示す次ヘッダ値「６」および「１７」には、それぞれ固定ヘッダ長「０ビット」が対応付けられている。また、たとえば認証ヘッダを示す次ヘッダ値「５１」には、ヘッダ長領域オフセット「８ビット」とヘッダ長領域サイズ「８ビット」だけでなく、固定ヘッダ長「９６ビット」が対応付けられている。これは、「９６ビット」にその拡張ヘッダ２４４の先頭から８ビットを除いた次の８ビットの領域に格納された値を加算した値がヘッダ長を表わすことを示している。
【００４１】
更に、第１のヘッダ長情報格納部２０６には、該当するヘッダの先頭から次ヘッダ値を格納する領域の開始位置までのビット数としての次ヘッダ値領域オフセットと、その次ヘッダ値を格納する領域のビット数としての次ヘッダ値領域サイズとが対応付けて格納されている。これにより、各ヘッダのどの領域にそのヘッダの次に連結されるヘッダの種類を表わす次ヘッダ値が格納されているかを特定することができる。たとえば、認証ヘッダを示す次ヘッダ値「５１」には、次ヘッダ値領域オフセット「０ビット」と次ヘッダ値領域サイズ「８ビット」が対応付けられている。これは、認証ヘッダの先頭の８ビットに次ヘッダ値が格納されていることを示している。
【００４２】
図８に戻って説明を続ける。取得した次ヘッダ値に該当する情報が図１０に示した第１のヘッダ長情報格納部２０６に存在する場合（ステップＳ３０３：Ｙ）、その情報を基に対応するヘッダのヘッダ長を取得して累積ヘッダ長ｂに加算する（ステップＳ３０４）。具体的には、固定ヘッダ長が対応付けられている場合にはこれを取得し、ヘッダ長領域オフセットおよびヘッダ長領域サイズが対応付けられている場合にはこれらが示す領域に格納されている値を取得し、両方が対応付けられている場合には両方で得られた値を合算する。ここでは、ステップ３０３で次ヘッダ値「０」が取得されたとする。すなわち、これは第１の拡張ヘッダ２４４1がホップバイホップオプションヘッダであることを示しており、図１０を参照することによって、ホップバイホップオプションヘッダの先頭から８バイトを除いた次の８バイトに格納されたヘッダ長が累積ヘッダ長ｂに加算される。
【００４３】
まだ拡張ヘッダ長ａに算入すべき拡張ヘッダ２４４が残っている場合、すなわち次のヘッダがまだＴＣＰヘッダ２５１とＵＤＰヘッダ２５６のいずれでもない場合には（ステップＳ３０５：Ｎ）、第１の拡張ヘッダ２４４1の中の次ヘッダ値の領域を特定する（ステップＳ３０６）。ＴＣＰヘッダ２５１またはＵＤＰヘッダ２５６であるか否かの判別は、たとえばステップＳ３０２で取得した次ヘッダ値がこれらを示す値「６」または値「１７」のいずれかに該当するか否かによって判別することができる。また、第１の拡張ヘッダ２４４1の中の次ヘッダ値の領域の特定は、ステップ３０２で基本ヘッダ２４３から取得された次ヘッダ値に対応付けられた次ヘッダ値領域オフセットおよび次ヘッダ値領域サイズとを取得することによって行われる。そして、第１の拡張ヘッダ２４４1のステップＳ３０６で特定された領域から次ヘッダ値を取得し（ステップＳ３０７）、拡張ヘッダ番号ｍを１つ増加させて第２の拡張ヘッダ２４４2へと処理を移す（ステップＳ３０８）。そしてステップＳ３０３へ戻り、取得した次ヘッダ値に一致する次ヘッダ値が図１０に示した第１のヘッダ長情報格納部２０６に格納されているか否かの判別を行う。
【００４４】
ここで、第１の拡張ヘッダ２４４1の次に配置された第２の拡張ヘッダ２４４2が、まだＩＥＴＦで標準化されていない新規の種類、すなわち図１０に格納されていない種類であったとする。このような新規の種類の拡張ヘッダ２４４についての各種情報は、前記したように第２のヘッダ長情報格納部２０７に格納されるようになっている。
【００４５】
図１１は、第２のヘッダ長情報格納部に格納される内容を表わしたものである。第２のヘッダ長情報格納部２０７には第１のヘッダ長情報格納部２０６に格納された種類以外の種類の拡張ヘッダ２４４について、第１のヘッダ長情報格納部２０６と同様に、ヘッダ長領域オフセットとヘッダ長領域サイズ、あるいは固定ヘッダ長がそれぞれ対応付けて格納されている。更に、次ヘッダ値領域オフセットと次ヘッダ値領域サイズも同様に対応付けて格納されている。
【００４６】
図８に戻って説明を続ける。第２の拡張ヘッダ２４４2に割り当てられた次ヘッダ値は第１のヘッダ長情報格納部２０６に格納されていないため（ステップＳ３０３：Ｎ）、次に図１１に示した第２のヘッダ長情報格納部２０７に該当する情報が存在するか否かを判別する（ステップＳ３０９）。ここで該当する情報が存在する場合には（Ｙ）、ステップＳ３０４へ進み、同様に対応付けられた情報を基に対応するヘッダのヘッダ長を取得して累積ヘッダ長ｂに加算する。第２の拡張ヘッダ２４４2に割り当てられた次ヘッダ値として「１０１」が取得されたとすると、「１０１」は、図１１で明らかなように第２のヘッダ長情報格納部２０７に該当する情報が格納されているため、対応するヘッダ長を取得して累積ヘッダ長ｂに加算されることになる。ステップＳ３０３からステップＳ３０８までの処理は、すべての拡張ヘッダ２４４のヘッダ長の累積ヘッダ長ｂへの加算が完了するまで繰り返される。
【００４７】
ヘッダ長を取得する対象となっているヘッダがＴＣＰヘッダ２５１あるいはＵＤＰヘッダ２５６となると（ステップＳ３０５：Ｙ）、パケット記憶部２０４から該当するパケット２３１の送信元ＩＰアドレス２４１および宛先ＩＰアドレス２４２を取得し、エントリテーブル２０３にエントリを作成する（ステップＳ３１０）。更に、すべての拡張ヘッダ２４４のヘッダ長の加算が完了した累積ヘッダ長ｂを図７に示した拡張ヘッダ長ａとして決定し、パケット２１３の先頭２６１から４０バイト＋ａを除いた次の４バイトの領域に格納されたデータを取得する。そして、これを送信元ポート番号２５２と宛先ポート番号２５３としてエントリに追加する（ステップＳ３１１）。そして、再び新たなパケット２３１がパケット記憶部２０４に記憶されるのを待機する（リターン）。なお、基本ヘッダ２４３のデータ長４０バイトを累積ヘッダ長ｂの初期値としておくようにしておき、ステップＳ３１１ではパケット２３１の先頭２６１から累積ヘッダ長ｂを除いた次の４バイトからデータを取得するようにしてもよい。
【００４８】
一方、いずれかの拡張ヘッダ２４４について、第１のヘッダ長情報格納部２０６にも第２のヘッダ長情報格納部２０７にも該当する次ヘッダ値が存在しなかった場合、あるいは存在していてもこれに対応するヘッダ長が格納されておらずヘッダ長を取得できなかった場合には（ステップＳ３０３：Ｎ、ステップＳ３０９：Ｎ）、拡張ヘッダ長ａを演算することができない。したがって、図１に示す管理装置１０５にエラーが発生した旨を表示させてネットワーク管理者に通知し（ステップＳ３１２）、再び新たなパケット２３１がパケット記憶部２０４に記憶されるのを待機する（リターン）。
【００４９】
たとえば、図９に示したヘッダの種類のうちＥＳＰ（Encapsulating Security Payload）ヘッダは、その内容が暗号化されヘッダ長の判別を行うことができないため、第１のヘッダ長情報格納部２０６では図１０に示したように対応する次ヘッダ値「５０」は情報なしの状態となっている。また、次ヘッダなしの場合に対応する次ヘッダ値「５９」も、同様に情報なしの状態となっている。このような場合には、ヘッダ長が取得されないとしてステップＳ３１２へと進むことになる。なお、エラー通知を行う際に、そのエラーの原因を併せて図１に示す管理装置１０５に通知するようにしてもよい。具体的には、たとえばＥＳＰヘッダを示す次ヘッダ値「５０」の場合にはＬＡＮ２のＴＡＧ６の「Ｈ１ＥＲＲＯＲ」に表示し、次ヘッダなしを示す次ヘッダ値「５９」の場合にはＬＡＮ２のＴＡＧ６の「Ｈ２ＥＲＲＯＲ」に表示するようにする。
【００５０】
このようにして、ＬＡＮ１０２側からＩＰｖ６適用ＬＡＮ１０１側へと転送される各パケット２３１からソケットが取得され、エントリテーブル２０３にエントリが作成される。パケット転送処理部２０２は、ＩＰｖ６適用ＬＡＮ１０１側から受け取った各パケット２３１について、その宛先ＩＰアドレス２４２と宛先ポート番号２５３に該当するエントリがエントリテーブル２０３に存在するか否かを判別する。そして、存在すれば宅内ネットワーク１０３側への転送を行い、存在しなければ転送せずにそのまま廃棄する。
【００５１】
ＩＰｖ６適用ＬＡＮ１０１側から受け取ったパケット２３１からの宛先ポート番号２５３の取得は、図８で説明した手順を適用してもよいし、宛先ＩＰアドレス２４２をまずパケット２３１から取得してその宛先ＩＰアドレス２４２に対応する宛先ポート番号２５３をエントリテーブル２０３からピックアップし、その宛先ポート番号２５３に一致するデータ列がパケット２３１に存在するか否かを判別するようにしてもよい。また、パケット記憶部２０４へのパケット２３１の記憶を宅内ネットワーク１０３側から受信したパケットに該当するエントリが存在しない場合にのみ行うようにしてもよい。また、エントリテーブル２０３に登録しようとするエントリに一致するエントリが既にエントリテーブル２０３に存在する場合には、その既に存在するエントリを削除してから新たに登録するようにしてもよい。あるいは、パケット記憶部２０４へのパケット２３１の記憶を指定された期間のみに実行し、次に記憶が行われるまでは各エントリを保持するようにしてもよい。
【００５２】
以上説明したようにこの実施例では、第１のヘッダ長情報格納部２０６や第２のヘッダ長情報格納部２０７に、各ヘッダの種類に割り当てられた次ヘッダ値に対応付けて、該当するヘッダのヘッダ長に関する情報を予め格納する。そして、パケット２３１の先頭から順に各ヘッダに記述された次ヘッダ値を取得してこれを第１のヘッダ長情報格納部２０６あるいは第２のヘッダ長情報格納部２０７で検索し、次ヘッダ値を取得したヘッダの次に連結されたヘッダの長さを特定する。そして特定された各ヘッダ長を累積し、取得した次ヘッダ値がＴＣＰパケットあるいはＵＤＰパケットを示すものであれば、そこまでの累積値に基本ヘッダ２４３のヘッダ長を加算した値をポート番号が記述されている領域のパケット２３１の先頭からのオフセットとし、その領域からポート番号を取得する。これにより、必要に応じて拡張ヘッダが連結しその後ろにポート番号が記述されるＩＰｖ６のパケットであっても、そのヘッダ長を判別し、ポート番号を効率良く短時間で取得することが可能となり、ポート番号を活用した通信のファストパスに寄与することができる。また、ＩＰアドレスと併せて取得することで、ソケットとして取得しこれをエントリテーブルに登録することができる。
【００５３】
また、ＩＰｖ６の拡張ヘッダには将来的な機能追加によって新たな拡張ヘッダの種類が標準化される可能性があるが、第２のヘッダ長情報格納部２０７を用意することによってこのような新規の拡張ヘッダの種類にも柔軟に対応させることができる。また、既に標準化されている拡張ヘッダを格納した第１のヘッダ長情報格納部２０６を先に検索するので、ＩＥＴＦで既に標準化されている拡張ヘッダが多く使用されるような場合にはエントリテーブルへの登録処理を迅速に行うことができる。
【００５４】
＜本発明の変形例＞
【００５５】
以上説明した実施例では、いずれかの拡張ヘッダについて第１のヘッダ長情報格納部にも第２のヘッダ長情報格納部にも該当する次ヘッダ値が存在しなかった場合、図１に示す管理装置１０５にエラーが発生した旨を表示させるようにした。このような場合、その次ヘッダ値を併せて通知すれば、その次ヘッダ値に対応する各種情報をネットワーク管理者が入手してこれを第２のヘッダ長情報格納部に登録でき、次からはエントリテーブルへの登録が可能となる。
【００５６】
図１２は、本発明の変形例による通信装置としての宅内接続装置の構成を表わしたものであり、実施例の図２に対応するものである。そこで、図２と同一部分には同一符号を付し、これについての説明を省略する。この宅内接続装置４０２には、図２に示したテーブル登録処理部２０５に替えて、これとは異なる内容のテーブル登録処理を行うテーブル登録処理部４０５を備えている。なお、この宅内接続装置４０２は実施例１の図１に示した通信システム１００と同様の通信システムに配置されており、宅内接続装置２０２と同様に宅内ネットワーク１０３をＩＰｖ６適用ＬＡＮ１０１に接続しているものとする。
【００５７】
図１３は、テーブル登録処理部のテーブル登録処理の流れを表わしたものであり、実施例の図８に対応するものである。そこで、図８と同一部分には同一ステップ番号を付し、これについての説明を省略する。テーブル登録処理部４０５は、ステップＳ３０２あるいはステップＳ３０７で次ヘッダ値を取得すると、第１のヘッダ長情報格納部２０６か第２のヘッダ長情報格納部２０７に一致する次ヘッダ値が存在するか否かを判別する（ステップＳ５５１）。一致する次ヘッダ値が存在し（Ｙ）、更に固定ヘッダ長等が格納されておりヘッダ長が取得可能であれば（ステップＳ５５２：Ｙ）、ステップ３０４へ進みそのヘッダ長を取得して累積ヘッダ値に加算する。ヘッダ長が取得できない場合には（ステップＳ５５２：Ｎ）、図１に示す管理装置１０５にヘッダ長が取得できずにエントリテーブルへの登録が行えない旨を表示させ、これをネットワーク管理者に通知する（ステップＳ５５３）。
【００５８】
一方、第１のヘッダ長情報格納部２０６と第２のヘッダ長情報格納部２０７のいずれにも一致する次ヘッダ値が存在しない場合には（ステップＳ５５１：Ｎ）、管理装置１０５にその次ヘッダ値とその次ヘッダ値に対応する情報の第２のヘッダ長情報格納部２０７への格納が必要である旨を表示させてこれをネットワーク管理者に通知する（ステップＳ５５４）。具体的には、第２のヘッダ長情報格納部２０６への情報の登録を要求するメッセージを付加するとともに次ヘッダ値を格納した要求パケットを生成し、パケット転送処理部２０２を使用して管理装置１０５へ送信する。これにより、ネットワーク管理者に第２のヘッダ長情報格納部２０７への該当する情報の新規格納を促すことができる。そして、要求パケットに対応して管理装置１０５から応答パケットが送られてくると、パケット転送処理部２０２を使用してこれを受信し、格納された情報を第２のヘッダ長情報格納部２０７に登録する。すると、以後その種類の拡張ヘッダ２４４が追加されたパケット２３１を受信したときに、テーブル登録処理部４０５はそのパケット２３１からソケットを取得してエントリテーブル２０３に登録することが可能となる。
【００５９】
以上説明したようにこの変形例では、第１のヘッダ長情報格納部２０６と第２のヘッダ長情報格納部２０７のいずれにも存在しない次ヘッダ値がパケット２３１から取得された場合には、その次ヘッダ値を通知してネットワーク管理者に該当する情報の新規登録を促すようにした。これにより、新規の拡張ヘッダがＩＰｖ６に次々に追加されるような場合でも、ネットワーク管理者がその次ヘッダ値をヒントに対応する拡張ヘッダに関する情報を調べて格納させ、宅内接続装置４０２に格納される情報をこのような新規の拡張ヘッダ２４４の追加に追従させていくことができる。
【００６０】
なお、たとえば新規で追加される拡張ヘッダ２４４についてヘッダ長に関する情報が格納される領域が統一されていれば、次ヘッダ値を取得した拡張ヘッダ２４４の次の拡張ヘッダ２２４からヘッダ長を取得し、これを自動で第２のヘッダ長情報格納部２０７に格納させるようにしてもよい。更に、次ヘッダ値が格納される領域も統一されていれば、次ヘッダ値も併せて格納させることができる。
【００６１】
また、以上説明した実施例および変形例では、地域的に限定された通信システムでＩＰｖ６が運用される場合への適用について説明したが、将来ＩＰｖ６がインターネットの標準プロトコルとなった場合には、インターネットへの適用を含めたグローバルな実用化が可能である。また、ＩＰｖ６のパケットだけでなく、ヘッダを構成する拡張ヘッダがパケットごとに異なるような他の各種パケットに適用できることはもちろんである。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施例による通信装置を使用した通信システムの構成を表わしたシステム構成図である。
【図２】本発明の実施例による宅内接続装置の構成を表わした構成図である。
【図３】本発明の実施例によるパケット記憶部に記憶されるパケットの構成を表わした説明図である。
【図４】本発明の実施例によるパケット記憶部に記憶されるパケットのＩＰｖ６ヘッダの構成を表わした説明図である。
【図５】本発明の実施例によるパケット記憶部に記憶されるパケットＴＣＰヘッダの構成を表わした説明図である。
【図６】本発明の実施例によるパケット記憶部に記憶されるパケットのＵＤＰヘッダの構成を表わした説明図である。
【図７】本発明の実施例によるパケット記憶部に記憶されるパケットのエントリテーブルへの登録の対象となる部分を説明するための説明図である。
【図８】本発明の実施例によるテーブル登録処理部のテーブル登録処理の流れを表わした流れ図である。
【図９】ＩＥＴＦで既に標準化されている拡張ヘッダの種類と次ヘッダ値との対応付けを表わした説明図である。
【図１０】本発明の実施例による第１のヘッダ長情報格納部に格納される内容を表わした説明図である。
【図１１】本発明の実施例による第２のヘッダ長情報格納部に格納される内容を表わした説明図である。
【図１２】本発明の変形例による通信装置としての宅内接続装置の構成を表わした構成図である。
【図１３】本変形例によるテーブル登録処理部のテーブル登録処理の流れを表わした流れ図である。
【符号の説明】
【００６３】
１００  通信システム
１０１  ＩＰｖ６適用ＬＡＮ
１０２、４０２  宅内接続装置
１０３  宅内ネットワーク
１０４  通信端末
１０５  管理装置
２０２  パケット転送処理部
２０３  エントリテーブル
２０４  パケット記憶部
２０５、４０５  テーブル登録処理部
２０６  第１のヘッダ長情報格納部
２０７  第２のヘッダ長情報格納部
【図１】
2006324815.tif 000003
【図２】
2006324815.tif 000004
【図３】
2006324815.tif 000005
【図４】
2006324815.tif 000006
【図５】
2006324815.tif 000007
【図６】
2006324815.tif 000008
【図７】
2006324815.tif 000009
【図８】
2006324815.tif 000010
【図９】
2006324815.tif 000011
【図１０】
2006324815.tif 000012
【図１１】
2006324815.tif 000013
【図１２】
2006324815.tif 000014
【図１３】
2006324815.tif 000015