(57)【要約】【課題】ヘッダ構造が複雑なフレームであっても、ヘッダ構造に応じた抽出位置からヘッダ情報を抽出する。【解決手段】タグ識別子抽出部１１が、フレームデータの対応する位置から対応するタグ識別子抽出値を抽出し、タグ識別子判定部１２が、タグ識別子抽出値に関する識別子適合条件への適合有無を示すタグ識別子判定値を生成し、タグ識別子判定部１３が、タグ識別子判定値に関するヘッダ構造適合条件への適合有無を示すヘッダ構造判定値を生成し、ヘッダ構造情報出力部１４が、ヘッダ構造判定値のうち適合有を示すヘッダ構造判定値に対応づけられているヘッダ構造情報を出力し、パーサ部１６が、フレームデータのヘッダ構造情報と対応する位置から、特定ヘッダ情報を抽出する。【選択図】  図１
2018093276.tif 000002
【特許請求の範囲】
【請求項１】
処理対象となるフレームを示すフレームデータのうち、ヘッダ構造に応じた抽出位置から特定ヘッダ情報を抽出するフレーム処理装置であって、
前記フレームデータの対応する位置から、対応するタグ識別子抽出値を抽出する、Ｎａ（Ｎａは１以上の整数）個のタグ識別子抽出部と、
前記タグ識別子抽出値が対応する識別子適合条件に適合するか否かを判定し、前記適合の有無を示すタグ識別子判定値を生成する、Ｎａ個のタグ識別子判定部と、
前記タグ識別子判定値が対応するヘッダ構造適合条件に適合するか否かを判定し、前記適合の有無を示すヘッダ構造判定値を生成する、Ｎｂ個（Ｎｂは１以上の整数）のヘッダ構造判定部と、
前記ヘッダ構造判定値のうちから適合有を示すヘッダ構造判定値を選択し、選択したヘッダ構造判定値に対応づけられている、前記ヘッダ構造に応じた抽出位置を示すヘッダ構造情報を出力するヘッダ構造情報出力部と、
前記フレームデータのうち前記ヘッダ構造情報と対応する位置から、前記特定ヘッダ情報を抽出するパーサ部と
を備えることを特徴とするフレーム処理装置。
【請求項２】
請求項１に記載のフレーム処理装置において、
前記ヘッダ構造情報出力部は、前記ヘッダ構造判定値のすべてが適合無を示す場合、前記適合無に対応づけられているヘッダ構造情報を出力することを特徴とするフレーム処理装置。
【請求項３】
処理対象となるフレームを示すフレームデータのうち、ヘッダ構造に応じた抽出位置から特定ヘッダ情報を抽出するフレーム処理装置で用いられるフレーム処理方法であって、
Ｎａ（Ｎａは１以上の整数）個のタグ識別子抽出部が、前記フレームデータの対応する位置から、対応するタグ識別子抽出値を抽出する、タグ識別子抽出ステップと、
Ｎａ個のタグ識別子判定部が、前記タグ識別子抽出値が対応する識別子適合条件に適合するか否かを判定し、前記適合の有無を示すタグ識別子判定値を生成する、タグ識別子判定ステップと、
Ｎｂ個（Ｎｂは１以上の整数）のヘッダ構造判定部が、前記タグ識別子判定値が対応するヘッダ構造適合条件に適合するか否かを判定し、前記適合の有無を示すヘッダ構造判定値を生成する、ヘッダ構造判定ステップと、
ヘッダ構造情報出力部が、前記ヘッダ構造判定値のうちから適合有を示すヘッダ構造判定値を選択し、選択したヘッダ構造判定値に対応づけられている、前記ヘッダ構造に応じた抽出位置を示すヘッダ構造情報を出力するヘッダ構造情報出力ステップと、
パーサ部が、前記フレームデータの前記ヘッダ構造情報と対応する位置から、前記特定ヘッダ情報を抽出するパーサステップと
を備えることを特徴とするフレーム処理方法。
【請求項４】
コンピュータを、請求項１または請求項２に記載のフレーム処理装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームのヘッダ構造に合わせてヘッダ情報の抽出位置を変更するパーサ機能を備えたフレーム処理技術に関する。
【背景技術】
【０００２】
一般に、ルータやスイッチ、ブリッジなどのフレーム処理装置では、フレームの転送やフィルタリングなどを行う場合、入力フレームに応じた処理を決めるための検索処理を行うが、このような検索処理の前に、入力フレームデータから検索に必要な、例えばＶＬＡＮ  ＩＤやＩＰアドレスなどのヘッダ情報を抽出する。フレーム処理装置は、ヘッダ情報を検索キーとして、検索テーブルの中から、指定された条件に適合するエントリを見つけだし、前記エントリに指定された処理、例えば、転送や廃棄、ＶＬＡＮ  ＩＤの変更やＶＬＡＮタグの挿入・削除などの処理を、入力フレームに対して施す。
【０００３】
入力フレームデータから検索に必要なヘッダ情報を抽出するためには、フレームデータの何処に前記ヘッダ情報が入っているかを知る必要がある。例えば、ＩＰアドレスをフレームデータから抽出するためには、ＶＬＡＮタグの有無やその個数、ＰＰＰｏＥヘッダの有無、などのヘッダ構造の違いに応じて、フレームからＩＰアドレスを抽出するための抽出位置（フレーム先頭を基準とした位置）を変える必要がある。
【０００４】
この際、予め入力フレームのヘッダ構造が分かっている、つまり、特定のヘッダ構造を持つフレームのみを扱うのであれば、フレームからＩＰアドレスを抽出するための抽出位置を決めておく方法で対処できる。しかし、様々なヘッダ構造を持つフレームを処理する必要がある通信キャリア向けの装置の場合は、上記方法を採用することはできず、フレームごとにそのヘッダ構造を判定し、前記判定したヘッダ構造に応じて適切な抽出位置を決める必要がある。
【０００５】
したがって、多様なヘッダ構造を持つフレームの構造を判定するため、フレームに付与されているＶＬＡＮタグやＰＰＰｏＥヘッダなどの有無をフレーム先頭側から判定するとともに、この判定により識別されたタグやヘッダに続くデータについても同様に、後続する可能性のあるタグやヘッダの有無を判定する必要がある、また、複数のタグが付与される場合は上記判定を繰り返すことになる。特許文献１に示した技術は、このような処理をパイプライン構造の回路を利用して高速処理するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３０３４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図８は、従来のフレーム処理（ヘッダ構造が単純な場合）を示す説明図である。図９は、従来のフレーム処理（ヘッダ構造が複雑な場合）を示す説明図である。
図８に示すように、ヘッダ構造が単純なフレーム（タグが後続する場合に後続タグの種類が１種類に限定されるフレーム）のみを扱うのであれば、特許文献１に示した技術における要素回路の段数は、１個のフレームに付与される可能性のある最大タグ数（図８の例では２個）と同じパイプライン段数（図８の例では２段）の要素回路で対処できる。
【０００８】
しかし、図９のようにヘッダ構造が複雑なフレーム（後続するタグの種類が複数通りあるフレーム）に対しては、全てのタグ配列に対応できるように要素回路をパイプライン構造でつなげる必要があるため、１個のフレームに付与される可能性のあるタグの個数（図９の例では２個）よりも、パイプライン段数（図９の例では４段）の方が大きくなる。
【０００９】
このように、特許文献１に示した技術では、タグの種類が増えるとパイプライン段数が実際にフレームに付与されているタグの個数よりも大きくなるため、処理遅延が増大する、という問題があった。このような処理遅延の増大は、低遅延の通信が要求される高品質のサービスを提供するための通信キャリア向けのフレーム処理装置において、サービス品質の劣化を招く。
【００１０】
本発明はこのような課題を解決するためのものであり、ヘッダ構造が複雑なフレームであっても、ヘッダ構造に応じた抽出位置からヘッダ情報を抽出できるフレーム処理技術を提供することを目的としている。
【課題を解決するための手段】
【００１１】
このような目的を達成するために、本発明にかかるフレーム処理装置は、処理対象となるフレームを示すフレームデータのうち、ヘッダ構造に応じた抽出位置から特定ヘッダ情報を抽出するフレーム処理装置であって、前記フレームデータの対応する位置から、対応するタグ識別子抽出値を抽出する、Ｎａ（Ｎａは１以上の整数）個のタグ識別子抽出部と、前記タグ識別子抽出値が対応する識別子適合条件に適合するか否かを判定し、前記適合の有無を示すタグ識別子判定値を生成する、Ｎａ個のタグ識別子判定部と、前記タグ識別子判定値が対応するヘッダ構造適合条件に適合するか否かを判定し、前記適合の有無を示すヘッダ構造判定値を生成する、Ｎｂ個（Ｎｂは１以上の整数）のタグ識別子判定部と、前記ヘッダ構造判定値のうちから適合有を示すヘッダ構造判定値を選択し、選択したヘッダ構造判定値に対応づけられている、前記ヘッダ構造に応じた抽出位置を示すヘッダ構造情報を出力するヘッダ構造情報出力部と、前記フレームデータのうち前記ヘッダ構造情報と対応する位置から、前記特定ヘッダ情報を抽出するパーサ部とを備えている。
【００１２】
また、本発明にかかる上記フレーム処理装置の一構成例は、前記ヘッダ構造情報出力部が、前記ヘッダ構造判定値のすべてが適合無を示す場合、前記適合無に対応づけられているヘッダ構造情報を出力するようにしたものである。
【００１３】
また、本発明にかかるフレーム処理方法は、処理対象となるフレームを示すフレームデータのうち、ヘッダ構造に応じた抽出位置から特定ヘッダ情報を抽出するフレーム処理装置で用いられるフレーム処理方法であって、Ｎａ（Ｎａは１以上の整数）個のタグ識別子抽出部が、前記フレームデータの対応する位置から、対応するタグ識別子抽出値を抽出する、タグ識別子抽出ステップと、Ｎａ個のタグ識別子判定部が、前記タグ識別子抽出値が対応する識別子適合条件に適合するか否かを判定し、前記適合の有無を示すタグ識別子判定値を生成する、タグ識別子判定ステップと、Ｎｂ個（Ｎｂは１以上の整数）のタグ識別子判定部が、前記タグ識別子判定値が対応するヘッダ構造適合条件に適合するか否かを判定し、前記適合の有無を示すヘッダ構造判定値を生成する、タグ識別子判定ステップと、ヘッダ構造情報出力部が、前記ヘッダ構造判定値のうちから適合有を示すヘッダ構造判定値を選択し、選択したヘッダ構造判定値に対応づけられている、前記ヘッダ構造に応じた抽出位置を示すヘッダ構造情報を出力するヘッダ構造情報出力ステップと、パーサ部が、前記フレームデータの前記ヘッダ構造情報と対応する位置から、前記特定ヘッダ情報を抽出するパーサステップとを備えている。
【００１４】
また、本発明にかかるプログラムは、コンピュータを、前述したいずれかのフレーム処理装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１５】
本発明によれば、原理的には、全てのタグ識別子抽出部によるタグ識別子抽出値の生成が完了した時点、つまり、識別対象のタグが最も長く連なったフレームに含まれる最後尾のタグを識別するために必要なフレームデータが入力完了した時点で、フレームのヘッダ構造を識別することができる。
これにより、タグの種類が多いヘッダ構造を識別する必要がある場合にも、低遅延でそのヘッダ構造を判定することが可能となるため、低遅延の通信が要求される高品質のサービスを提供するための通信キャリア向けのフレーム処理装置において、サービス品質の劣化を防止することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】フレーム処理装置の構成を示すブロック図である。
【図２】処理対象となるフレーム形式例である。
【図３】図２のフレーム形式に関するヘッダ構造識別用の設定例である。
【図４】特定ヘッダ情報抽出動作の一例を示すタイムチャートである。
【図５】特定ヘッダ情報抽出動作の他の例を示すタイムチャートである。
【図６】特定ヘッダ情報抽出動作の他の例を示すタイムチャートである。
【図７】特定ヘッダ情報抽出動作の他の例を示すタイムチャートである。
【図８】従来のフレーム処理（ヘッダ構造が単純な場合）を示す説明図である。
【図９】従来のフレーム処理（ヘッダ構造が複雑な場合）を示す説明図である。
【発明を実施するための形態】
【００１７】
次に、本発明の一実施の形態について図面を参照して説明する。
［フレーム処理装置］
まず、図１を参照して、本発明の一実施の形態にかかるフレーム処理装置１０について説明する。図１は、フレーム処理装置の構成を示すブロック図である。
【００１８】
このフレーム処理装置１０は、入力された、処理対象となるフレームを示すフレームデータのうち、ヘッダ構造に応じた抽出位置から特定ヘッダ情報を抽出する機能を有している。
フレーム処理装置１０には、主な機能部として、Ｎａ個（Ｎａは１以上の整数）のタグ識別子抽出部（＃１〜＃Ｎａ）１１、Ｎａ個のタグ識別子判定部（＃１〜＃Ｎａ）１２、Ｎｂ個（Ｎｂは１以上の整数）のヘッダ構造判定部（＃１〜＃Ｎｂ）１３、ヘッダ構造情報出力部１４、フレーム遅延部１５、およびパーサ部１６が設けられている。
【００１９】
タグ識別子抽出部１１は、フレームデータの対応する位置から、対応するタグ識別子抽出値を抽出する機能を有している。
【００２０】
タグ識別子判定部１２は、タグ識別子抽出部１１で抽出されたタグ識別子抽出値が、対応する識別子適合条件に適合するか否かを判定し、適合の有無を示すタグ識別子判定値を生成する機能を有している。
【００２１】
タグ識別子判定部１３は、タグ識別子判定部１２で生成されたタグ識別子判定値が、対応するヘッダ構造適合条件に適合するか否かを判定し、適合の有無を示すヘッダ構造判定値をそれぞれ生成する機能を有している。
【００２２】
ヘッダ構造情報出力部１４は、ヘッダ構造判定値のうちから適合有を示すヘッダ構造判定値を選択し、選択したヘッダ構造判定値に対応づけられている、ヘッダ構造に応じた抽出位置を示すヘッダ構造情報を出力する機能を有している。
【００２３】
フレーム遅延部１５は、入力されたフレームデータを遅延させてパーサ部１６へ出力する機能を有している。
パーサ部１６は、フレーム遅延部１５からの遅延フレームデータのうち、ヘッダ構造情報出力部１４から出力されたヘッダ構造情報と対応する位置から、特定ヘッダ情報を抽出する機能を有している。
【００２４】
本実施の形態において、フレーム処理装置１０に入力されるフレームデータの例はＥｔｈｅｎｅｔ（登録商標）フレームであり、この場合は、フレームデータの先頭は宛先ＭＡＣアドレスの先頭バイトから順に、フレームデータが各タグ識別子抽出部＃ａ（ａ＝１…Ｎａの整数）に入力される。
【００２５】
この際、各タグ識別子抽出部＃ａに入力されるフレームデータの先頭は、必ずしも宛先ＭＡＣアドレスの先頭バイトである必要はなく、例えば、フレーム属性情報（フレーム処理装置１０がフレームを受信したポートの番号やフレーム処理装置１０がフレーム処理のために付与した内部情報）を各フレームの宛先ＭＡＣアドレスの手前に追加しておき、フレーム属性情報を含むフレームデータを各タグ識別子抽出部＃ａ（１１）に入力することも可能である。この場合は、各タグ識別子抽出部＃ａ（１１）は、フレーム属性情報の全てまたはその一部をタグとして扱うことが可能となる。
【００２６】
また、Ｅｔｈｅｒｎｅｔフレームの宛先ＭＡＣアドレスと続く送信元ＭＡＣアドレスは全てのＥｔｈｅｒｎｅｔフレームの先頭に各６バイトの固定長で付与されているので、これらをタグ（フレームへの付与が必須ではなく種類別に固定長のデータ）として扱う必要がないため、送信元ＭＡＣアドレスの直後のバイト以後のみを各タグ識別子抽出部＃ａ（１１）に入力することも可能である。
【００２７】
Ｎａの例は１６であり、上記例の場合は、最大１６種類のタグを識別することができる。なお、Ｎａの値は必ずしも１６である必要はなく、識別すべきタグの種類分のタグ識別子抽出部があればよい（フレームデータの先頭を基準にした位置が異なるタグは別の種類として扱う）。例えば、フレーム処理装置が扱うフレームの形式がＩＥＥＥ  ８０２．１ａｄ準拠の形式に限定され、パーサがフレームから抽出するヘッダ情報のフレーム内位置が変動する要因がＳタグの有無とＣタグの有無のみである場合は、識別すべきタグの種類は、送信元ＭＡＣアドレスに続くＳタグとＣタグ、このＳタグに続くＣタグ、となるため、Ｎａが３以上であれば対応できる。
【００２８】
［本実施の形態の動作］
次に、図２および図３を参照して、本実施の形態にかかるフレーム処理装置１０の特定ヘッダ情報抽出動作について説明する。図２は、処理対象となるフレーム形式例である。図３は、図２のフレーム形式に関するヘッダ構造識別用の設定例である。
【００２９】
［タグ識別子抽出部］
まず、各タグ識別子抽出部＃ａ（ａ＝１…Ｎａ）は、各々、フレームデータを先頭側からストリームとして入力し、データの先頭を基準に指定された位置＃ａ（ａ＝１…Ｎａ）から長さ＃ａの部分データを読み取ってタグ識別子抽出値＃ａとして生成する。
【００３０】
図２に示された形式を持つフレームを入力してＳタグおよびＣタグを識別する場合は、各タグ識別子抽出部＃ａ（ａ＝１…３）がフレームの部分データを読み取るときの位置＃ａ（値の単位はバイト）として、ＳタグまたはＣタグに含まれるＴＰＩＤの位置を指定する。
【００３１】
例えば、タグ識別子抽出部＃１が、送信元ＭＡＣアドレス（ＭＡＣ−ＳＡ）に続くＳタグのＴＰＩＤの位置にある部分データをタグ識別子抽出値＃１として生成するためには、宛先ＭＡＣアドレス（ＭＡＣ−ＤＡ）の先頭バイトを１としたときに、位置＃１＝１３とする。同様に、タグ識別子抽出部＃２が送信元ＭＡＣアドレスに続くＣタグのＴＰＩＤの位置にある部分データをタグ識別子抽出値＃２として生成するためには、位置＃２＝１３とする。さらに、タグ識別子抽出部＃３が１個目のタグに続くＣタグのＴＰＩＤの位置にある部分データをタグ識別子抽出値＃３として生成するためには、位置＃３＝１７とする。また、上記例では、各タグ識別子抽出部＃ａに指定される長さ＃ａ（フレームから読み取った部分データのバイト長）は全て２となる。
【００３２】
各タグ識別子抽出部＃ａは、位置＃ａが指し示す位置のバイトと次のバイトのデータを読み取ってタグ識別子抽出値＃ａとする。これにより、タグ識別子抽出値＃１は、入力したフレームの形式が図２の（ａ）または（ｃ）であった場合に、送信元ＭＡＣアドレスに続くＳタグのＴＰＩＤの値となる。一方、入力したフレームの形式が図２の（ｂ）または（ｄ）であった場合は、タグ識別子抽出値＃１はＳタグのＴＰＩＤの値とは異なる値（ＣタグのＴＰＩＤやＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）となる。
【００３３】
また、タグ識別子抽出値＃２は、入力したフレームの形式が図２の（ｂ）であった場合に、送信元ＭＡＣアドレスに続くＣタグのＴＰＩＤの値となる。一方、入力したフレームの形式が図２の（ａ）または（ｃ）または（ｄ）であった場合は、タグ識別子抽出値＃２はＣタグのＴＰＩＤの値とは異なる値（ＳタグのＴＰＩＤやＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）となる。
【００３４】
また、タグ識別子抽出値＃３は、入力したフレームの形式が図２の（ｃ）であった場合に、Ｓタグに続くＣタグのＴＰＩＤの値となる。一方、入力したフレームの形式が図２の（ａ）または（ｂ）であった場合は、タグ識別子抽出値＃３はＣタグのＴＰＩＤの値と異なる値（ＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）となるが、入力したフレームの形式が図２の（ｄ）であった場合は、タグ識別子抽出値＃３はＥｔｈｅｒｎｅｔフレームのペイロードの一部であるため、ＣタグのＴＰＩＤの値と一致するか否かは不定となる。
【００３５】
このように、各タグ識別子抽出部＃ａは、指定された位置＃ａに基づいて、各々２バイト長の部分データをフレームデータから読み取るが、部分データの長さ＃ａは、２バイトに限定されず、識別対象のタグによって変更可能とする。
【００３６】
例えば、ＩＰパケットに付与されるＰＰＰｏＥヘッダを識別対象のタグとすると、４バイト長の部分データ（Ｅｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈに相当する２バイトとＰＰＰｏＥヘッダのバージョン・タイプ・コードに相当する２バイト）をタグ識別子抽出値＃ａとしてフレームデータから読み取る。また、位置＃ａや長さ＃ａを指定するときに、１バイトを単位とした値ではなく、読み取られる部分データのフレーム内位置や長さがバイト単位で指定できないものである場合は、１ビットを単位とした値であってもよい。
【００３７】
［タグ識別子判定部］
各タグ識別子判定部＃ａ（ａ＝１…Ｎａ）は、タグ識別子抽出値＃ａに対してタグ識別子適合判定＃ａを行うことによって、フレームに識別対象となるタグが付与されているかを判断するために必要なタグ識別子適合条件＃ａにタグ識別子抽出値＃ａが適合するか否かを判定し、適合の有無を示すタグ識別子判定値＃ａを生成する。
【００３８】
図２に示された形式を持つフレームを入力してＳタグおよびＣタグを識別する場合、各タグ識別子判定部＃ａ（ａ＝１…３）に指定するタグ識別子適合条件＃ａは、ＳタグまたはＣタグに含まれるべきＴＰＩＤの値を指定した比較値＃ａと、タグ識別子抽出値＃ａと比較値＃ａとの一致を、適合の条件として指定した判定方法＃ａである。具体的な各比較値＃ａの値は、比較値＃１＝ＳタグのＴＰＩＤ値（例えば０ｘ８８ａ８）、比較値＃２＝ＣタグのＴＰＩＤ値（例えば０ｘ８１００）、比較値＃３＝ＣタグのＴＰＩＤ値（例えば０ｘ８１００）、である。
【００３９】
このように、各タグ識別子判定部＃ａは、指定されたタグ識別子適合条件＃ａ（比較値＃ａと判定方法＃ａ）に従って、タグ識別子抽出値＃ａが適合するか否かを判定し、適合の有無を示すタグ識別子判定値＃ａを生成する。
【００４０】
入力したフレームの形式が図２の（ａ）または（ｃ）であった場合に、タグ識別子抽出値＃１は、送信元ＭＡＣアドレスに続くＳタグのＴＰＩＤの値となって比較値＃１（ＳタグのＴＰＩＤ値）と一致するので、タグ識別子判定値＃１は適合有を意味する値となる。一方、入力したフレームの形式が図２の（ｂ）または（ｄ）であった場合は、タグ識別子抽出値＃１はＳタグのＴＰＩＤの値とは異なる値（ＣタグのＴＰＩＤやＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）であるため比較値＃１（ＳタグのＴＰＩＤ値）とは一致しないので、タグ識別子判定値＃１は適合無を意味する値となる。
【００４１】
入力したフレームの形式が図２の（ｂ）であった場合に、タグ識別子抽出値＃２は、送信元ＭＡＣアドレスに続くＣタグのＴＰＩＤの値となって比較値＃２（ＣタグのＴＰＩＤ値）と一致するので、タグ識別子判定値＃２は適合有を意味する値となる。一方、入力したフレームの形式が図２の（ａ）または（ｃ）または（ｄ）であった場合は、タグ識別子抽出値＃２はＣタグのＴＰＩＤの値とは異なる値（ＳタグのＴＰＩＤやＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）であるため比較値＃２（ＣタグのＴＰＩＤ値）とは一致しないので、タグ識別子判定値＃２は適合無を意味する値となる。
【００４２】
入力したフレームの形式が図２の（ｃ）であった場合に、タグ識別子抽出値＃３は、Ｓタグに続くＣタグのＴＰＩＤの値となって比較値＃３（ＣタグのＴＰＩＤ値）と一致するので、タグ識別子判定値＃３は適合有を意味する値となる。一方、入力したフレームの形式が図２の（ａ）または（ｂ）であった場合は、タグ識別子抽出値＃３はＣタグのＴＰＩＤの値とは異なる値（ＳタグのＴＰＩＤやＥｔｈｅｒｎｅｔのＴｙｐｅ／Ｌｅｎｇｔｈ）であるため比較値＃３（ＣタグのＴＰＩＤ値）とは一致しないので、タグ識別子判定値＃２は適合無を意味する値となるが、入力したフレームの形式が図２の（ｄ）であった場合は、タグ識別子抽出値＃３はＥｔｈｅｒｎｅｔフレームのペイロードの一部であるため、ＣタグのＴＰＩＤの値と一致するか否かは不定となるため、タグ識別子判定値＃３の値も不定となる。
【００４３】
このように、各タグ識別子判定部＃ａは、比較値＃ａとして指定されたＴＰＩＤの値と、タグ識別子抽出値＃ａが一致するかを判定するが、比較値＃ａはＴＰＩＤ値に限定されず、判定方法＃ａは一致判定に限定されず、識別対象のタグによって変更可能とする。
【００４４】
例えば、ＩＰパケットに付与されるＰＰＰｏＥヘッダを識別対象のタグとすると、４バイト長の部分データ（Ｅｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈに相当する２バイトとＰＰＰｏＥヘッダのバージョン・タイプ・コードに相当する２バイト）をタグ識別子抽出値＃ａとしてフレームデータから読み取り、比較値＃ａである０ｘ８８６４１１００との一致を判定する。
【００４５】
また、ＳＮＡＰに付与されるＬＬＣヘッダを識別対象のタグとすると、４バイト長の部分データ（Ｅｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈに相当する２バイトとＬＬＣヘッダに相当する２バイト）をタグ識別子抽出値＃ａとしてフレームデータから読み取り、タグ識別子抽出値＃ａの前半２バイト（Ｅｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ）の値が、比較値＃ａの前半２バイトである０ｘ０５ｄｃの値以下であり、かつ、タグ識別子抽出値＃ａの後半２バイト（ＬＬＣヘッダ）の値が、比較値＃ａの後半２バイトである０ｘａａａａに一致する場合に、適合有と判定し以外を適合無と判定して、判定結果を示すタグ識別子判定値＃ａを生成する。
【００４６】
また、タグ識別子判定条件＃ａの判定方法＃ａと比較値＃ａに加えてマスク値＃ａを指定し、タグ識別子抽出値＃ａに対してマスク値＃ａを用いてビットマスク処理（タグ識別子抽出値＃ａとマスク値＃ａをビット毎に論理積演算する処理）を行った後の値と、比較値＃ａを判定方法＃ａを用いて判定することも可能であり、タグ識別子抽出値＃ａの一部のビット値を無効化して比較値＃ａとの判定を行う必要がある場合に有効である。
【００４７】
［ヘッダ構造判定部］
各ヘッダ構造判定部＃ｂ（ｂ＝１…Ｎｂ）は、フレームに付与されたタグの組み合わせ（ヘッダ構造）を判断するために、ヘッダ構造適合条件＃ｂ（ｂ＝１…Ｎｂ，Ｎｂは１以上の整数）に基づいて、フレームに対して生成されたタグ識別子判定値＃ａ（ａ＝１…Ｎａ）を選択し、選択されたタグ識別子判定値の全てが適合有を示す場合に、フレームがヘッダ構造適合条件＃ｂに適合すると判定し、適合の有無を示すヘッダ構造判定値＃ｂを生成する。
【００４８】
Ｎｂの例は１６であり、例の場合は、最大１６種類のヘッダ構造を識別することができる。なお、Ｎｂの値は必ずしも１６である必要はなく、識別すべきヘッダ構造の種類分のヘッダ構造判定部があればよい。例えば、フレーム処理装置が扱うフレームの形式がＩＥＥＥ  ８０２．１ａｄ準拠の形式に限定され、パーサがフレームから抽出するヘッダ情報のフレーム内位置が変動する要因がＳタグの有無とＣタグの有無のみである場合は、識別すべきヘッダ構造の種類は、図２に示したフレームの形式（ａ）〜（ｃ）であり、Ｎｂが３以上であれば対応できる。なお、図２の（ｄ）については、図２に示したフレームの各形式（ａ）〜（ｃ）の何れでもない場合に、フレームの形式（ｄ）に該当すると判断してよいので、図２の（ｄ）を識別するためのヘッダ構造判定部は不要である。
【００４９】
図２に示された形式を持つフレームを入力して各形式のヘッダ構造を識別する場合、各ヘッダ構造判定部＃ｂ（ｂ＝１…３）に指定するヘッダ構造適合条件＃ｂは、図２の（ａ）〜（ｃ）を構成するＳタグまたは／とＣタグに対応するタグ識別判定値のみをタグ識別判定値＃ａ（ａ＝１…３）の中から選択するための値である。例えば、各ヘッダ構造適合条件＃ｂは、タグ識別子抽出部やタグ識別子判定部の個数と同じＮａ個のビット列とし、ビット列を構成する各ビット＃ａ（ａ＝１…Ｎａ）は、タグ識別判定値＃ａが識別対象のヘッダを構成するタグの有無を表している場合に値１とし、タグ識別判定値＃ａが識別対象のヘッダの構成するタグの有無を表していない場合に値０とする。
【００５０】
ヘッダ構造判定部＃１を図２の（ａ）のヘッダ構造識別用とすると、送信元ＭＡＣアドレスに続くＳタグの有無を表すタグ識別判定値＃１のみが識別対象のヘッダを構成するタグの有無を表しているので、ヘッダ構造適合条件＃１の値として、０ｂ００１を指定する。また、ヘッダ構造判定部＃２を図２の（ｂ）のヘッダ構造識別用とすると、送信元ＭＡＣアドレスに続くＣタグの有無を表すタグ識別判定値＃２のみが識別対象のヘッダを構成するタグの有無を表しているので、ヘッダ構造適合条件＃２の値として、０ｂ０１０を指定する。
【００５１】
また、ヘッダ構造判定部＃３を図２の（ｃ）のヘッダ構造識別用とすると、送信元ＭＡＣアドレスに続くＳタグの有無を表すタグ識別判定値＃１と、１個目のタグに続くＣタグの有無を表すタグ識別判定値＃３が識別対象のヘッダを構成するタグの有無を表しているので、ヘッダ構造適合条件＃３の値として、０ｂ１０１を指定する。なお、図２に示したフレームの各形式（ａ）〜（ｃ）の何れでもない場合に、フレームの形式（ｄ）に該当すると判断してよいので、図２の（ｄ）を識別するためのヘッダ構造判定部は不要である。
【００５２】
上記の例において、各ヘッダ構造判定部＃ｂ（ｂ＝１…３）は、指定されたヘッダ構造適合条件＃ｂ（タグ識別子判定部の個数と同じ３個のビットからなるビット列）に含まれる、値が１のビット＃ａ（ａ＝１…Ｎａ）全てについて、ビットに対応するタグ識別子判定値＃ａが適合有である場合に、フレームがヘッダ構造適合条件＃ｂに適合すると判定し、適合の有無を示すヘッダ構造判定値＃ｂを生成する。
【００５３】
例えば、ヘッダ構造適合条件＃１はビット＃１のみが値１であるため、タグ識別子判定値＃１が適合有を示す場合に、フレームがヘッダ構造適合条件＃１に適合すると判定し、適合有を示すヘッダ構造判定値＃１を出力する。また、ヘッダ構造適合条件＃２はビット＃２のみが値１であるため、タグ識別子判定値＃２が適合有を示す場合に、フレームがヘッダ構造適合条件＃２に適合すると判定し、適合有を示すヘッダ構造判定値＃２を出力する。また、ヘッダ構造適合条件＃３はビット＃１とビット＃３が値１であるため、タグ識別子判定値＃１が適合有を示し、かつ、タグ識別子判定値＃３が適合有を示す場合に、フレームがヘッダ構造適合条件＃３に適合すると判定し、適合有を示すヘッダ構造判定値＃３を出力する。
【００５４】
上記の例において、図２の（ａ）のヘッダ構造を持つフレームを入力した場合、ヘッダ構造適合条件＃１の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１のみが値１を示し、かつ、図２の（ａ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグが付与されているため、ヘッダ構造判定部＃１は適合有を示すヘッダ構造判定値＃１を出力する。
【００５５】
また、ヘッダ構造適合条件＃２の各ビットのうち、送信元ＭＡＣアドレスに続くＣタグ識別用のタグ識別判定値＃２に対応するビット＃２のみが値１を示し、図２の（ａ）のフレームには送信元ＭＡＣアドレスに続けてＣタグではなくＳタグが付与されているため、ヘッダ構造判定部＃２は適合無を示すヘッダ構造判定値＃２を出力する。
【００５６】
また、ヘッダ構造適合条件＃３の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１と１個目のタグに続くＣタグ識別用のタグ識別判定値＃３に対応するビット＃３の両方が値１を示し、かつ、図２の（ａ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグが付与されるが、Ｓタグの後にはＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ（≠Ｃタグ）が続くため、ヘッダ構造判定部＃３は適合無を示すヘッダ構造判定値＃３を出力する。
【００５７】
同様に、図２の（ｂ）のヘッダ構造を持つフレームを入力した場合、ヘッダ構造適合条件＃１の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１のみが値１を示し、かつ、図２の（ｂ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグではなくＣタグが付与されているため、ヘッダ構造判定部＃１は適合無を示すヘッダ構造判定値＃１を出力する。
【００５８】
また、ヘッダ構造適合条件＃２の各ビットのうち、送信元ＭＡＣアドレスに続くＣタグ識別用のタグ識別判定値＃２に対応するビット＃２のみが値１を示し、図２の（ｂ）のフレームには送信元ＭＡＣアドレスに続けてＣタグが付与されているため、ヘッダ構造判定部＃２は適合有を示すヘッダ構造判定値＃２を出力する。
【００５９】
また、ヘッダ構造適合条件＃３の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１と１個目のタグに続くＣタグ識別用のタグ識別判定値＃３に対応するビット＃３の両方が値１を示し、かつ、図２の（ｂ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグではなくＣタグが付与されているため、ヘッダ構造判定部＃３は適合無を示すヘッダ構造判定値＃３を出力する。
【００６０】
同様に、図２の（ｃ）のヘッダ構造を持つフレームを入力した場合、ヘッダ構造適合条件＃１の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１のみが値１を示し、かつ、図２の（ｃ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグが付与されているため、ヘッダ構造判定部＃１は適合有を示すヘッダ構造判定値＃１を出力する。
【００６１】
また、ヘッダ構造適合条件＃２の各ビットのうち、送信元ＭＡＣアドレスに続くＣタグ識別用のタグ識別判定値＃２に対応するビット＃２のみが値１を示し、図２の（ｃ）のフレームには送信元ＭＡＣアドレスに続けてＣタグではなくＳタグが付与されているため、ヘッダ構造判定部＃２は適合無を示すヘッダ構造判定値＃２を出力する。
【００６２】
また、ヘッダ構造適合条件＃３の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１と１個目のタグに続くＣタグ識別用のタグ識別判定値＃３に対応するビット＃３の両方が値１を示し、かつ、図２の（ｃ）のフレームには、送信元ＭＡＣアドレスに続けてＳタグが付与され、かつＳタグの後にはＣタグが続くため、ヘッダ構造判定部＃３は適合有を示すヘッダ構造判定値＃３を出力する。
【００６３】
同様に、図２の（ｄ）のヘッダ構造を持つフレームを入力した場合、ヘッダ構造適合条件＃１の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１のみが値１を示し、かつ、図２の（ｄ）のフレームには、送信元ＭＡＣアドレスに続けてＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ（≠Ｓタグ）が付与されているため、ヘッダ構造判定部＃１は適合無を示すヘッダ構造判定値＃１を出力する。
【００６４】
また、ヘッダ構造適合条件＃２の各ビットのうち、送信元ＭＡＣアドレスに続くＣタグ識別用のタグ識別判定値＃２に対応するビット＃２のみが値１を示し、図２の（ｃ）のフレームにはＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ（≠Ｃタグ）が付与されているため、ヘッダ構造判定部＃２は適合無を示すヘッダ構造判定値＃２を出力する。
【００６５】
また、ヘッダ構造適合条件＃３の各ビットのうち、送信元ＭＡＣアドレスに続くＳタグ識別用のタグ識別判定値＃１に対応するビット＃１と１個目のタグに続くＣタグ識別用のタグ識別判定値＃３に対応するビット＃３の両方が値１を示し、かつ、図２の（ｄ）のフレームには、送信元ＭＡＣアドレスに続けてＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ（≠Ｓタグ）が付与されているため、ヘッダ構造判定部＃３は適合無を示すヘッダ構造判定値＃３を出力する。
【００６６】
上記のように各ヘッダ構造判定部＃ｂ（ｂ＝１…Ｎｂ）による、ヘッダ構造適合条件＃ｂと各タグ識別子判定値＃ａ（ａ＝１…Ｎａ）に基づいたヘッダ構造判定値＃ｂの生成方法を説明する。
【００６７】
生成方法の前提として、各ヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）について、適合有を示すときの値を１、適合無を示すときの値を０とし、各ヘッダ構造適合条件＃ｂ（ｂ＝１…Ｎｂ）について、タグ識別子抽出部やタグ識別子判定部の個数と同じＮａ個のビット列とし、ビット列を構成する各ビット＃ａ（ａ＝１…Ｎａ）は、タグ識別判定値＃ａが識別対象のヘッダを構成するタグの有無を表している場合に値１とする。
【００６８】
また、タグ識別判定値＃ａが識別対象のヘッダの構成するタグの有無を表していない場合に値０とし、各タグ識別子判定値＃ａ（ａ＝１…Ｎａ）について、適合有を示すときの値を１、適合無を示すときの値を０とする。また、各タグ識別子判定値＃ａ（ａ＝１…Ｎａ）の値を示すビットから、タグ識別子判定ビット列を構成する（ビット列に含まれるビット＃ａをタグ識別子判定値＃ａとする）。
【００６９】
このとき、ヘッダ構造判定値＃ｂは、以下の式（１）により計算できる。
（ヘッダ構造適合条件＃ｂ  ＆  タグ識別子判定ビット列）
＝＝ヘッダ構造適合条件＃ｂ                        …（１）
なお上記式において、「＆」は、前後の値間のビット毎の論理積を表す２項演算子であり、「＝＝」は前後の値が等しい場合に１、不一致の場合に０となる２項演算子である。
【００７０】
これまでに説明した例では、図２の（ａ）または（ｃ）のヘッダ構造を持つフレームを入力した場合に、ヘッダ構造判定部＃１は適合有を示すヘッダ構造判定値＃１を出力する。一方、ヘッダ構造判定部＃３は、図２の（ｃ）のヘッダ構造を持つフレームを入力した場合に、ヘッダ構造判定部＃３は適合有を示すヘッダ構造判定値＃３を出力する。
【００７１】
すなわち、ヘッダ構造判定値＃１が適合有を示すので入力フレームは図２の（ａ）のヘッダ構造であると判定してしまうと、入力フレームが図２の（ｃ）の場合の可能性もあるため、誤った判定を生じる。誤判断を避けるために、各ヘッダ構造判定値に採用優先度を定めておき、複数個のヘッダ構造判定値において適合有を示したフレームについては、適合有を示したヘッダ構造判定値のうち、採用優先度が最も高いヘッダ構造判定値のみが適合有を示したとみなす処理が必要となる。
【００７２】
上記の各ヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）に対する採用優先度＃ｂとして、各ヘッダ構造判定部＃ｂがヘッダ構造を識別するために選択したタグ識別子判定値＃ａの個数を採用することができる。
【００７３】
上記例で説明したように、ヘッダ構造適合条件＃ｂをタグ識別子抽出部やタグ識別子判定部の個数と同じＮａ個のビット列とし、ビット列を構成する各ビット＃ａ（ａ＝１…Ｎａ）がタグ識別判定値＃ａが識別対象のヘッダを構成するタグの有無を表している場合に値１とし、タグ識別判定値＃ａが識別対象のヘッダの構成するタグの有無を表していない場合に値０とする場合は、各ヘッダ構造適合条件＃ｂに含まれる値１のビット数を、ヘッダ構造判定値＃ｂの採用優先度＃ｂとすることができる。
【００７４】
また、採用優先度＃ｂとしてヘッダ構造判定部＃ｂに各々異なる値を指定する方法の他にも、ヘッダ構造判定部＃ｂの番号ｂを採用優先度として使用する方法がある。例えば、ヘッダ構造判定値＃１とヘッダ構造判定値＃３の両方が適合有となった場合は、番号が大きいヘッダ構造判定値＃３のみが適合有となったとみなすことにより、図２の（ｃ）のヘッダ構造を持つフレームを入力した場合に、フレームを図２の（ａ）と誤判断することを防止できる。
【００７５】
なお、タグ識別子判定の反転をヘッダ構造適合条件に加えることで、複数のヘッダ構造適合条件に同時に適合することを防ぐことができる。この場合は、ヘッダ構造適合条件＃ｂの設定値に加えてタグ識別子判定反転＃ｂの設定値（Ｎａ個のビット列）を導入し、ヘッダ構造判定値＃ｂを得る式（１）の左辺を以下の式（２）に変更すればよい。
（ヘッダ構造適合条件＃ｂ  ＆
（タグ識別子判定ビット列  ＥｘＯＲ  タグ識別子判定反転＃ｂ））  …（２）
なお上記式において、「ＥｘＯＲ」は、前後の値間のビット毎の排他的論理和を表す２項演算子である。
【００７６】
タグ識別子判定反転＃ｂは、タグ識別子判定ビット列のビット数と同じＮａ個のビット列であり、タグ識別子判定ビット列の各ビットに対して値を反転する（０を１に、１を０に変える）場合に、ビットに対応するヘッダ構造適合条件＃ｂのビットの値を１とし、タグ識別子判定ビット列のビットを反転しない場合にはビットに対応するヘッダ構造適合条件＃ｂのビットの値を０とする。
【００７７】
上記のようにタグ識別子判定反転＃ｂを導入したとき、図２の（ｃ）のヘッダ構造を持つフレームを入力した場合にフレームを図２の（ａ）と誤判断することを防止するためには、図２の（ａ）であるか否かを判定するヘッダ構造判定部＃１において、タグ識別判定値＃３が適合しないことを条件に加える。すなわち、ヘッダ構造適合条件＃１として０ｂ００１ではなく０ｂ１０１を設定し、タグ識別子判定反転＃１として０ｂ１００を設定する。
【００７８】
また、ヘッダ構造判定部＃２，＃３については誤判断が生じないため、ヘッダ構造適合条件＃２，＃３の設定値の変更はなく、タグ識別子判定反転＃２，＃３の設定値を０ｂ０００とする。ただし、任意のヘッダ構造に対して、タグ識別子判定反転＃ｂの導入が有効である（同時に複数のヘッダ構造適合条件に適合することはない）とは保証されないため、同時に複数のヘッダ構造適合条件に適合する場合を考慮しない処理よりも、同時に複数のヘッダ構造適合条件に適合する場合を考慮して採用優先度を導入しておく方が優れている（実用的である）といえる。
【００７９】
［ヘッダ構造情報出力部］
ヘッダ構造情報出力部１４は、図１に示すように、主な処理部として、ヘッダ構造番号生成部１４Ａ、ヘッダ構造情報テーブル部１４Ｂ、およびタイミング生成部１４Ｃを備え、フレームのヘッダ構造に合わせてヘッダ情報＃ｃ（ｃ＝１…Ｎｃ）をパーサ部１６が抽出するために必要となる、フレームデータの先頭を基準に指定されたヘッダ構造情報として、適合有を示すヘッダ構造判定値＃Ｂ（Ｂは１以上Ｎｂ以下の整数）に対応して指定されたヘッダ構造情報＃Ｂを出力する。
【００８０】
ヘッダ構造番号生成部１４Ａは、フレーム処理装置に入力されたフレーム毎に、各ヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）を入力し、適合有を示すヘッダ構造判定値＃Ｂの番号Ｂをヘッダ構造番号として生成する。１個の入力フレームに対して、ヘッダ構造判定部＃ｂ（ｂ＝１…Ｎｂ）が適合有を示すヘッダ構造判定値を複数個入力した場合は、ヘッダ構造判定値＃ｂ毎に定められた採用優先度＃ｂに基づいて、適合有のヘッダ構造判定値＃ｂのなかで採用優先度＃ｂが最大のヘッダ構造判定値＃Ｂについて、その番号Ｂをヘッダ構造番号として生成する。また、入力した全てのヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）が適合無を示す場合に、ヘッダ構造が識別できなかったことを示す値０をヘッダ構造番号Ｂとして生成する。
【００８１】
これまでに説明した例では、図２の（ａ）のフレームが入力された場合にヘッダ構造番号＝１、図２の（ｂ）のフレームが入力された場合にヘッダ構造番号＝２、図２の（ｃ）のフレームが入力された場合にヘッダ構造番号＝３、図２の（ｄ）のフレームが入力された場合にヘッダ構造番号＝０、となる。
【００８２】
ヘッダ構造情報テーブル部１４Ｂは、ヘッダ構造情報＃１〜ヘッダ構造情報＃Ｎｂを保持するテーブルを備え、ヘッダ構造番号生成部１４Ａが生成したヘッダ構造番号Ｂ（Ｂ＝１…Ｎｂ）に対応する、ヘッダ構造情報＃Ｂをヘッダ構造情報として出力する。さらに、ヘッダ構造情報テーブル部１４Ｂは、ヘッダ構造不適合フレーム用にヘッダ構造情報＃０を保持し、ヘッダ構造番号生成部１４Ａがヘッダ構造番号Ｂ＝０を生成した場合に、ヘッダ構造情報＃０をヘッダ構造情報として出力する。
【００８３】
図２に示された各ヘッダ構造を持つ各フレームのＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈの値をパーサ部１６が抽出するために、ヘッダ構造情報出力部１４が、パーサ部１６に向けてフレーム内のＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈの位置（宛先ＭＡＣアドレスの先頭バイトを１としたときのＥｔｈｅｒｎｅｔ  Ｔｙｐｅの先頭バイトの位置）をヘッダ構造情報として出力する例では、ヘッダ構造情報＃０（ヘッダ構造不適合時のヘッダ構造情報）の値に１３を、ヘッダ構造情報＃１の値に１７を、ヘッダ構造情報＃２の値に１７を、ヘッダ構造情報＃３の値に２１を、それぞれ指定する。
【００８４】
これまでに説明した例では、ヘッダ構造情報として、図２の（ａ）のフレームが入力された場合にヘッダ構造情報＃１が出力され、図２の（ｂ）のフレームが入力された場合にヘッダ構造情報＃２が出力され、図２の（ｃ）のフレームが入力された場合にヘッダ構造情報＃３が出力され、図２の（ｄ）のフレームが入力された場合にヘッダ構造情報＃０が出力される。
【００８５】
なお、ヘッダ構造番号生成部１４Ａは、入力した全てのヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）が適合無を示す場合に、値０をヘッダ構造番号Ｂとして生成するのではなく、ヘッダ構造不適合を示すフラグを立て、フラグが立っている場合に、ヘッダ構造情報テーブル部１４Ｂは、ヘッダ構造情報としてヘッダ構造情報＃０を出力する構成も可能である。
【００８６】
タイミング生成部１４Ｃは、フレーム処理装置に入力されたフレーム毎に、フレームの入力されたデータ量を計数し、指定されたデータ長Ｌの入力を完了した時点を契機とし、フレーム処理装置の回路実装に依存する固定時間（時点からタグ識別子抽出部・タグ識別子判定部・ヘッダ構造判定部の合計処理時間）を経過した時点を、ヘッダ構造番号生成部１４Ａがヘッダ構造番号Ｂを生成するためのタイミング信号として生成する。
【００８７】
ヘッダ構造番号生成部１４Ａは、タイミング信号が示す時点でのヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）に基づき、ヘッダ構造番号を生成する。ここでの指定したデータ長Ｌとは、全てのタグ識別子抽出部＃ａ（ａ＝１…Ｎａ）によるタグ識別子抽出値＃ａの抽出を完了するために必要となる、フレーム先頭から、識別対象のタグが最も長く連なったフレームに含まれる最後尾のタグを識別するために必要なフレームの部分データ末尾までの、データ長に相当する。
【００８８】
これまでに説明した例では、識別対象のタグが最も長く連なったフレームとは図２の（ｃ）、すなわち２個のＶＬＡＮタグが付与されたフレームを指し、最後尾のタグはフレームのＣタグであり、タグを識別するために必要なフレームの部分データとはＣタグのＴＰＩＤであるため、データ長Ｌとして１８（単位はバイト数）以上を指定することになる。
【００８９】
なお、データ長が最小のフレーム長よりも長い値が指定される場合は、指定されたデータ長Ｌの入力を完了する前に、フレーム末尾を入力する場合があり、この場合は、タイミング生成部１４Ｃは、指定されたデータ長Ｌの入力を完了した時点ではなく、フレーム末尾を入力した時点を契機として、タイミング信号として生成する。この場合、フレームデータから部分データの読み取りを完了していないタグ識別子抽出部＃ａ’が生じるが、そのタグ識別子抽出部＃ａ’においては、未抽出のタグ識別子抽出値＃ａ’が、タグ識別子判定部＃ａ’により適合無と判定される値とする。
【００９０】
なお、タイミング生成部１４Ｃが生成するタイミング信号に基づいてヘッダ構造番号生成部１４Ａがヘッダ構造番号を生成する構成ではなく、タイミング信号で、ヘッダ構造情報出力部１４が出力するヘッダ構造情報を有効化する構成も可能である。この場合、タイミング生成部１４Ｃは、フレーム処理装置に入力されたフレーム毎に、フレームの入力されたデータ量を計数し、一定のデータ量の入力完了時から、タグ識別子抽出部・タグ識別子判定部・ヘッダ構造判定部の合計処理時間にヘッダ構造番号生成部１４Ａ・ヘッダ構造情報テーブル部１４Ｂの処理時間を加えた時間を経過した時点を、ヘッダ構造情報出力部１４が出力するヘッダ構造情報を有効化するタイミング信号とする必要がある。
【００９１】
また、タイミング生成部１４Ｃがフレームの入力されたデータ量を計数することによって、ヘッダ構造情報をパーサ部１６に向けて出力するタイミングを計るのではなく、全てのタグ識別子抽出値＃ａ（ａ＝１…Ｎａ）が生成（フレームデータから抽出）された時点を契機としてヘッダ構造情報をパーサ部１６に向けて出力するタイミングを計る構成も可能である。
【００９２】
［フレーム遅延部］
フレーム遅延部１５は、入力フレームデータに対して遅延を与え、パーサ部１６にデータを出力する。遅延量は、フレームの入力から、各タグ識別子抽出部＃ａ（ａ＝１…Ｎａ）が入力フレームに対してタグ識別子抽出値＃ａを生成し、さらに、各タグ識別子判定部＃ａがタグ識別子抽出値＃ａに対してタグ識別子判定値＃ａを生成し、さらに、各ヘッダ構造判定部＃ｂ（ｂ＝１…Ｎｂ）がタグ識別子抽出値＃ａ（ａ＝１…Ｎａ）に基づいてヘッダ構造判定値＃ｂを生成し、さらに、ヘッダ構造情報出力部１４がヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）に基づいてヘッダ構造情報をパーサに出力するまでの時間、に相当する。
【００９３】
この遅延をフレームに与えることによって、パーサ部１６は、入力フレームデータと、ヘッダ構造情報出力部１４からヘッダ構造情報を同時に入力し、ヘッダ構造情報に基づいて、入力フレームデータから部分データを抽出することが可能となる。なお、フレームデータに与える遅延量を上記の値とするために、ヘッダ構造情報出力部１４がヘッダ構造情報をパーサ部１６に向けて出力すると同時に、ヘッダ構造情報に対応するフレームデータを遅延部がパーサ部１６に向けて出力するよう、ヘッダ構造情報出力部１４から遅延部に指示を出す構成や、パーサ部１６がヘッダ構造情報を入力したとき遅延部に対してヘッダ構造情報に対応するフレームデータを出力するよう指示を出す構成が可能である。
【００９４】
［パーサ部］
パーサ部１６は、入力フレームに応じてヘッダ構造番号生成部１４Ａが出力したヘッダ構造情報を入力し、入力フレームデータから、ヘッダ構造情報に基づいて、ヘッダ情報を抽出する。
【００９５】
図２に示された形式を持つフレームを入力して各形式のヘッダ構造を識別し、ヘッダ構造別にフレーム内でのＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈの先頭バイト位置を、パーサ部１６がヘッダ構造情報として入力する例では、パーサ部１６がフレームデータから抽出するヘッダ情報として、Ｅｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈに加えて、抽出値が０ｘ０８００であった場合に、すなわちＥｔｈｅｒｎｅｔペイロードがＩＰｖ４パケットであった場合に、ＩＰｖ４ヘッダ内の値（送信元ＩＰアドレスや宛先ＩＰアドレス、ＤＳＣＰ値、プロトコル値）を含むことも可能である。同様に、抽出値が０ｘ８６ＤＤであった場合に、すなわちＥｔｈｅｒｎｅｔペイロードがＩＰｖ６パケットであった場合に、ＩＰｖ６ヘッダ内の値（送信元ＩＰアドレスや宛先ＩＰアドレス、ＤＳＣＰ値、Ｎｅｘｔ  Ｈｅａｄｅｒ値）を含むことも可能である。
【００９６】
また、ヘッダ構造情報として、パーサ部１６がフレームデータから部分データ（本例ではＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／Ｌｅｎｇｔｈ）を抽出するときのフレーム内のバイト位置ではなく、ヘッダ構造番号別にＶＬＡＮタグの個数（本例では０〜２個）やヘッダ構造を特定するためのコードを、ヘッダ構造情報テーブル部１４Ｂが保持し、パーサ部１６にヘッダ構造情報として出力し、パーサ部１６は入力したヘッダ構造情報（タグの個数など）に応じて、フレーム内の位置を変更し、ヘッダ情報を抽出することも可能である。
【００９７】
また、パーサ部１６は、タグ識別子抽出部やタグ識別子判定部がタグとして識別する部分データより後のＥｔｈｅｒｎｅｔ  Ｔｙｐｅ／ＬｅｎｇｔｈやＩＰヘッダをヘッダ情報として抽出するだけではなく、タグの中から部分データを抽出すること（例えば識別対象のタグがＶＬＡＮタグの場合にパーサ部１６がＶＬＡＮタグ内のＶＬＡＮ−ＩＤを抽出すること）も可能である。
【００９８】
［本実施の形態の動作例］
図４〜図７は、特定ヘッダ情報抽出動作の一例を示すタイムチャートである。
図４は、入力フレームが図２の（ａ）のヘッダ構造を持つフレーム（挿入されたタグがＳタグのみのＥｔｈｅｒｎｅｔフレーム）の場合であり、タグ識別子抽出値＃１とタグ識別子抽出値＃２がＳタグのＴＰＩＤ（０ｘ８８ａ８）、タグ識別子抽出値＃３がＥｔｈｅｒｎｅｔフレームのＴｙｐｅ／Ｌｅｎｇｔｈとなる。この場合は、タグ識別子判定値＃１が１、タグ識別子判定値＃２とタグ識別子判定値＃３が０、ヘッダ構造判定値＃１が１、ヘッダ構造判定値＃２とヘッダ構造判定値＃３が０となり、ヘッダ構造番号が１となる。
【００９９】
図５は、入力フレームが図２の（ｂ）のヘッダ構造を持つフレーム（挿入されたタグがＣタグのみのＥｔｈｅｒｎｅｔフレーム）の場合であり、タグ識別子抽出値＃１とタグ識別子抽出値＃２がＣタグのＴＰＩＤ（０ｘ８１００）、タグ識別子抽出値＃３がＥｔｈｅｒｎｅｔフレームのＴｙｐｅ／Ｌｅｎｇｔｈとなる。この場合は、タグ識別子判定値＃１とタグ識別子判定値＃３が０、タグ識別子判定値＃２が１、ヘッダ構造判定値＃１とヘッダ構造判定値＃３が０、ヘッダ構造判定値＃２が１となり、ヘッダ構造番号が２となる。
【０１００】
図６は、入力フレームが図２の（ｃ）のヘッダ構造を持つフレーム（挿入されたタグがＳタグと前記Ｓタグに続くＣタグのＥｔｈｅｒｎｅｔフレーム）の場合であり、タグ識別子抽出値＃１とタグ識別子抽出値＃２がＳタグのＴＰＩＤ（０ｘ８８ａ８）、タグ識別子抽出値＃３がＣタグのＴＰＩＤ（０ｘ８１００）となる。この場合は、タグ識別子判定値＃１とタグ識別子判定値＃３が１、タグ識別子判定値＃２が０、ヘッダ構造判定値＃１とヘッダ構造判定値＃３が１、ヘッダ構造判定値＃２が０となり、ヘッダ構造番号が３となる。
【０１０１】
図７は、入力フレームが図２の（ｄ）のヘッダ構造を持つフレーム（タグが挿入されていないＥｔｈｅｒｎｅｔフレーム）の場合であり、タグ識別子抽出値＃１とタグ識別子抽出値＃２がＥｔｈｅｒｎｅｔフレームのＴｙｐｅ／Ｌｅｎｇｔｈ、タグ識別子抽出値＃３が不定（Ｐａｙｌｏａｄのデータ）となる。この場合は、タグ識別子判定値＃１とタグ識別子判定値＃２が０、タグ識別子判定値＃３が不定、ヘッダ構造判定値＃１とヘッダ構造判定値＃２とヘッダ構造判定値＃３が０となり、ヘッダ構造番号が０となる。
【０１０２】
図６に示したように、フレームの１８バイト目を入力した時点で、識別対象のタグが最も長く連なったフレーム（図２の（ｃ））に含まれる最後尾のタグを識別するために必要なフレームの部分データ（Ｓタグに続くＣタグのＴＰＩＤ）が入力完了し、全てのタグ識別子抽出部＃ａ（ａ＝１…３）によるタグ識別子抽出値＃ａの生成が完了する。
【０１０３】
これに続いて、各タグ識別子判定部＃ａが、タグ識別子抽出値＃ａに対してタグ識別子判定値＃ａを生成し、各ヘッダ構造判定部＃ｂ（ｂ＝１…Ｎｂ）がタグ識別子抽出値＃ａ（ａ＝１…Ｎａ）に基づいてヘッダ構造判定値＃ｂを生成し、ヘッダ構造情報出力部１４がヘッダ構造判定値＃ｂ（ｂ＝１…Ｎｂ）に基づいてヘッダ構造情報をパーサ部１６に出力する。
【０１０４】
タグ識別子抽出値＃ａの生成からヘッダ構造情報の出力までの遅延は、各部の処理時間の合計であり、パイプライン構造のように論理回路の構造によって定まる遅延ではなく、回路の高性能化によって遅延量を低減可能な値である。なお、図４〜図７では、遅延を０として示しており、同期式の論理回路を用いて各部を実装した場合は、遅延量をクロック１周期以内に抑えることが可能である。
【０１０５】
［本実施の形態の効果］
このように、本実施の形態は、タグ識別子抽出部１１が、フレームデータの対応する位置から対応するタグ識別子抽出値を抽出し、タグ識別子判定部１２が、タグ識別子抽出値に関する識別子適合条件への適合有無を示すタグ識別子判定値を生成し、ヘッダ構造判定部１３が、タグ識別子判定値に関するヘッダ構造適合条件への適合有無を示すヘッダ構造判定値を生成し、ヘッダ構造情報出力部１４が、ヘッダ構造判定値のうち適合有を示すヘッダ構造判定値に対応づけられているヘッダ構造情報を出力し、パーサ部１６が、フレームデータのヘッダ構造情報と対応する位置から、特定ヘッダ情報を抽出するようにしたものである。
【０１０６】
前述した特許文献１の場合は、識別対象となるタグ数分のパイプライン段数、すなわちＮａ個の段数が必要とされるので、少なくとも３段分のパイプライン段数が必要となる。また、各段の動作は、２バイト分のＴＰＩＤ値を抽出して抽出値をＴＰＩＤと判定するまで、ＴＰＩＤの先頭バイトを含むデータの後段への出力が待たされるので、少なくともパイプライン１段あたり２バイトの遅延が増大する。したがって、１段目にフレームの１８バイト目を入力した時点から２段分の遅延がある、すなわち、本発明を適用した場合よりも４バイト分の遅延が加わることになる。
【０１０７】
図２に示したフレーム形式のように、タグの種類が３個に限定されるのではなく、より多くの種類のタグを識別する必要があるフレーム処理装置では、さらに大きい遅延が加わることになる。同様に、図９に示したフレームの形式を扱う場合に対して、特許文献１に示した技術を適用した場合は、４段のパイプライン構造となるため、本発明を適用した場合よりも３段分の遅延が加わることになる。
【０１０８】
特許文献１には、識別したヘッダ構造を確定させるタイミングについては特段の言及がなく、フレーム末尾が上記パイプライン構造の回路を通過した時点で検索が開始される動作となる。従って、上述したように、パイプライン段数の増加に伴う遅延の増大に加えて、フレーム長に依存して遅延が増大する。
このように、特許文献１によれば、タグの種類が増えるとパイプライン段数が実際にフレームに付与されているタグの個数よりも大きくなるため、処理遅延が増大する、という問題があった。さらに、フレーム長に応じて処理遅延が増大するという問題もあった。
【０１０９】
これに対して、本実施の形態によれば、原理的には、全てのタグ識別子抽出部によるタグ識別子抽出値の生成が完了した時点、つまり、識別対象のタグが最も長く連なったフレームに含まれる最後尾のタグを識別するために必要なフレームデータが入力完了した時点で、フレームのヘッダ構造を識別することができる。
これにより、タグの種類が多いヘッダ構造を識別する必要がある場合にも、低遅延でそのヘッダ構造を判定することが可能となるため、低遅延の通信が要求される高品質のサービスを提供するための通信キャリア向けのフレーム処理装置において、サービス品質の劣化を防止することが可能となる。
【０１１０】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【０１１１】
１０…フレーム処理装置、１１…タグ識別子抽出部、１２…タグ識別子判定部、１３…ヘッダ構造判定部、１４…ヘッダ構造情報出力部、１５…フレーム遅延部、１６…パーサ部。
【図１】
2018093276.tif 000003
【図２】
2018093276.tif 000004
【図３】
2018093276.tif 000005
【図４】
2018093276.tif 000006
【図５】
2018093276.tif 000007
【図６】
2018093276.tif 000008
【図７】
2018093276.tif 000009
【図８】
2018093276.tif 000010
【図９】
2018093276.tif 000011