(57)【要約】【課題】フラグメントフレームに対してフロー制御を行う中継装置において、実装上の自由度を向上させる。【解決手段】マッチング実行部２５は、フレームＦＲを受けてＡＣＬテーブル２８を検索し、ヒットの場合、対応するアクション情報ＡＩをフレームに付加する。フラグメント情報学習部２６ａは、マッチング実行部２５からのフレームが、アクション情報ＡＩが付加された最初のフラグメントフレームであるかを判定し、真の場合、アクション情報ＡＩを当該フレームのフラグメント情報ＦＧＩに対応付けてフラグメント情報学習テーブル２９に登録する。また、フラグメント情報学習部２６ａは、２番目以降のフラグメントフレームに対し、そのフラグメント情報ＦＧＩをキーにフラグメント情報学習テーブル２９を検索し、ヒットの場合、対応するアクション情報ＡＩをフレームに付加する。【選択図】図５
2019146000.tif 000002
【特許請求の範囲】
【請求項１】
ＡＣＬ（Access Control List）エントリに、マッチング条件とアクション情報との対応関係を保持するＡＣＬテーブルと、
学習エントリに、同一のパケットからのフラグメントフレームであることを区別するための情報であり、前記フラグメントフレームのヘッダの情報から生成されるフラグメント情報と、前記アクション情報との対応関係を保持するフラグメント情報学習テーブルと、
マッチング実行部、フラグメント情報学習部およびアクション実行部と、
を有する中継装置であって、
前記マッチング実行部は、前記マッチング条件に対応する前記フラグメントフレーム内の情報をキーとしてＡＣＬテーブルを検索し、当該検索結果がヒットの場合、当該ヒットした前記ＡＣＬエントリ内の前記アクション情報を前記フラグメントフレームに付加して前記フラグメント情報学習部へ送信し、ミスヒットの場合、前記フラグメントフレームを前記アクション情報を付加せずに前記フラグメント情報学習部へ送信し、
前記フラグメント情報学習部は、
前記マッチング実行部からの前記フラグメントフレームが、前記アクション情報が付加されたフレームであり、かつ、最初の前記フラグメントフレームである登録対象の前記フラグメントフレームであるかを判定し、前記登録対象のフラグメントフレームの場合、前記アクション情報を、前記登録対象のフラグメントフレームから生成した前記フラグメント情報に対応付けて前記学習エントリに登録する第１の処理と、
前記マッチング実行部からの２番目以降の前記フラグメントフレームに対して、当該フラグメントフレームから生成した前記フラグメント情報をキーとして前記フラグメント情報学習テーブルを検索し、当該検索結果がヒットの場合、当該ヒットした前記学習エントリ内の前記アクション情報を当該フラグメントフレームに付加して前記アクション実行部へ送信する第２の処理と、
を実行し、
前記アクション実行部は、前記フラグメント情報学習部から、前記アクション情報が付加された前記フラグメントフレームを受信した場合、前記アクション情報に基づくアクションを実行する、
中継装置。
【請求項２】
請求項１記載の中継装置において、
前記フラグメント情報学習部は、前記マッチング実行部からの前記フラグメントフレームが、前記学習エントリにヒットするフレームであり、かつ、最後の前記フラグメントフレームである削除対象の前記フラグメントフレームであるかを判定し、前記削除対象のフラグメントフレームの場合、前記学習エントリを削除する第３の処理を実行する、
中継装置。
【請求項３】
請求項１記載の中継装置において、
前記フラグメント情報は、前記フラグメントフレームのＬ３ヘッダ内のフラグメント識別子、送信元ＩＰアドレスおよび宛先ＩＰアドレスの情報を反映して生成される、
中継装置。
【請求項４】
請求項１記載の中継装置において、
前記フラグメント情報学習部は、前記第２の処理において、前記フラグメント情報学習テーブルの検索結果がミスヒットの場合、対象のフレームを前記アクション情報を付加せずに前記アクション実行部へ送信する、
中継装置。
【請求項５】
請求項４記載の中継装置において、
前記フラグメント情報学習部は、前記第２の処理において、前記マッチング実行部からの前記フラグメントフレームに前記アクション情報が付加されているかを判定し、前記アクション情報が付加されている場合には、前記フラグメント情報学習テーブルの検索を実行しない、
中継装置。
【請求項６】
請求項１記載の中継装置において、
前記マッチング実行部は、前記マッチング条件に対応する非フラグメントフレーム内の情報をキーとして前記ＡＣＬテーブルを検索し、当該検索結果がヒットの場合、当該ヒットした前記ＡＣＬエントリ内の前記アクション情報を前記非フラグメントフレームに付加して前記フラグメント情報学習部へ送信し、ミスヒットの場合、前記非フラグメントフレームを前記アクション情報を付加せずに前記フラグメント情報学習部へ送信し、
前記フラグメント情報学習部は、前記マッチング実行部からの前記非フラグメントフレームに対して前記第１の処理および前記第２の処理を実行することで、前記マッチング実行部からの前記非フラグメントフレームをそのままの形で前記アクション実行部へ送信し、
前記アクション実行部は、前記フラグメント情報学習部から、前記アクション情報が付加された前記非フラグメントフレームを受信した場合、前記アクション情報に基づくアクションを実行する、
中継装置。
【請求項７】
請求項１記載の中継装置において、
前記ＡＣＬテーブルおよび前記マッチング実行部と、前記フラグメント情報学習テーブルおよび前記フラグメント情報学習部は、別の部品に実装される、
中継装置。
【請求項８】
請求項１記載の中継装置において、
前記フラグメント情報学習部は、前記第１の処理において、前記マッチング実行部からの前記フラグメントフレームのＬ３ヘッダ内のＭＦ（More Fragment）の値およびフラグメント識別子の値に基づいて、前記マッチング実行部からの前記フラグメントフレームが前記最初のフラグメントフレームであるか否かを判定する、
中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置に関して、例えば、ＡＣＬ（Access Control List）に基づくフロー制御を実現する技術に関する。
【背景技術】
【０００２】
特許文献１のＯｐｅｎＦｌｏｗ（登録商標）スイッチは、フラグメントされた２番目以降のＩＰ（Internet Protocol）パケットに対してフローテーブルのアクションを実行するため、一致条件とアクションとを保持するフローテーブルと、パケットＩＤとフローテーブルのエントリへのポインタとを保持するフラグメントパケットＩＤテーブルとを備える。ＩＰパケットを受信した場合、パケットＩＤが算出され、それをキーとしたフラグメントパケットＩＤテーブルの検索処理と、ＩＰパケット内のＭＦ（More Fragment）の判別処理とが行われたのち、当該検索結果と判別結果との組み合わせに応じた４通りの分岐処理が行われる。
【０００３】
例えば、検索結果がミスヒットかつＭＦ＝１の場合（フラグメントされた最初のＩＰパケットの場合）、フローテーブルに基づきアクションが実行され、フラグメントパケットＩＤテーブルに、パケットＩＤとアクションへのポインタとが登録される。検索結果がヒットかつＭＦ＝１の場合（フラグメントされた２番目以降のＩＰパケットの場合）、フラグメントパケットＩＤテーブルに基づき、ポインタの参照先エントリのアクションが実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−７０４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、ＯＳＩ参照モデルのレイヤ２（Ｌ２）の処理を行うＬ２スイッチや、レイヤ３（Ｌ３）の処理を行うＬ３スイッチ等を代表とする中継装置は、ＡＣＬに基づいてフレームのアクセス制御（フロー制御）を行う機能を備える場合がある。ＡＣＬには、フレームのマッチング条件と、マッチング条件に一致するフレームに対するアクションとが登録される。これにより、マッチング条件に一致するフレームに対して、例えば、フレームの破棄等のアクションを実行することが可能となる。
【０００６】
一方、Ｌ２層のＭＴＵ（Maximum Transmission Unit）を超えるＬ３層のデータ（すなわちパケット）をＬ２層で送信する場合、パケットは、複数のＭＴＵ以下のデータ（すなわちフレーム）に分割して送信され、受信先で復元される。このような仕組みは、ＩＰフラグメントと呼ばれる。明細書では、当該ＩＰフラグメントによって分割された各フレームをフラグメントフレームと呼ぶ。
【０００７】
フラグメントが行われた場合、レイヤ４（Ｌ４）ヘッダは、最初のフラグメントフレームにしか付与されない。したがって、フラグメントされる前のパケットを対象に、そのフローをＬ４以上のマッチング条件で制御できない場合がある。すなわち、当該パケットの一部となる最初のフラグメントフレームに対するフロー制御は可能であるが、他の一部となる２番目以降のフラグメントフレームに対するフロー制御は困難となり得る。そこで、特許文献１の方式を用いることが考えられる。しかし、特許文献１の方式では、例えば、フローテーブルとフラグメントパケットＩＤテーブルとを不可分一体なものとして取り扱う必要があるため、実装上の自由度が制約される恐れがある。
【０００８】
本発明は、このようなことに鑑みてなされたものであり、その目的の一つは、フラグメントフレームに対してフロー制御を行う中継装置において、実装上の自由度を向上させることにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１１】
本実施の形態による中継装置は、ＡＣＬテーブルと、フラグメント情報学習テーブルと、マッチング実行部、フラグメント情報学習部およびアクション実行部とを有する。ＡＣＬテーブルは、ＡＣＬエントリに、マッチング条件とアクション情報との対応関係を保持する。フラグメント情報学習テーブルは、学習エントリに、同一のパケットからのフラグメントフレームであることを区別するための情報であるフラグメント情報と、アクション情報との対応関係を保持する。マッチング実行部は、マッチング条件に対応するフラグメントフレーム内の情報をキーとしてＡＣＬテーブルを検索し、ヒットの場合、対応するアクション情報をフレームに付加してフラグメント情報学習部へ送信し、ミスヒットの場合、フレームをアクション情報を付加せずにフラグメント情報学習部へ送信する。フラグメント情報学習部は、第１の処理において、マッチング実行部からのフラグメントフレームが、アクション情報が付加された最初のフラグメントフレームであるかを判定し、判定結果が真の場合、アクション情報を当該フレームから生成したフラグメント情報に対応付けて学習エントリに登録する。フラグメント情報学習部は、第２の処理において、マッチング実行部からの２番目以降のフラグメントフレームに対し、当該フレームから生成したフラグメント情報をキーとしてフラグメント情報学習テーブルを検索し、ヒットの場合、対応するアクション情報を当該フレームに付加してアクション実行部へ送信する。アクション実行部は、フラグメント情報学習部から、アクション情報が付加されたフラグメントフレームを受信した場合、当該アクション情報に基づくアクションを実行する。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、フラグメントフレームに対してフロー制御を行う中継装置において、実装上の自由度を向上させることが可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１による中継装置の主要部の構成例を示す概略図である。
【図２】図１におけるＦＤＢの構成例を示す概略図である。
【図３】図１の中継装置で送信または受信されるフレームの構造例を示す概略図である。
【図４】図３において、ＩＰフラグメントが行われた場合の各フラグメントフレームの構造例を示す概略図である。
【図５】図１におけるフロー制御部の構成例および動作例を示す概略図である。
【図６】図５におけるマッチング実行部の処理内容の一例を示すフロー図である。
【図７】図５のマッチング実行部から送信される各種フレームの一例を示す説明図である。
【図８Ａ】図５におけるフラグメント情報学習部の処理内容の一例を示すフロー図である。
【図８Ｂ】図８Ａに続く処理内容の一例を示すフロー図である。
【図９】図５におけるアクション実行部の処理内容の一例を示すフロー図である。
【図１０Ａ】図５のフロー制御部がＬ４以上のマッチング条件を伴うフラグメントフレームを受信した場合の動作例を示す概略図である。
【図１０Ｂ】図１０Ａとは異なる動作例を示す概略図である。
【図１０Ｃ】図１０Ａとは更に異なる動作例を示す概略図である。
【図１１Ａ】図５のフロー制御部がＬ３以下のマッチング条件を伴うフラグメントフレームを受信した場合の動作例を示す概略図である。
【図１１Ｂ】図１１Ａとは異なる動作例を示す概略図である。
【図１１Ｃ】図１１Ａとは更に異なる動作例を示す概略図である。
【図１２】図５のフロー制御部を用いたパイプライン処理の一例を示すタイミングチャートである。
【図１３】本発明の実施の形態２による中継装置に含まれるフロー制御部の構成例および動作例を示す概略図である。
【図１４】本発明の比較例となるフロー制御方式の一例を示す概略図である。
【発明を実施するための形態】
【００１４】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１５】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
（実施の形態１）
《中継装置の概略構成》
図１は、本発明の実施の形態１による中継装置の主要部の構成例を示す概略図である。図２は、図１におけるＦＤＢの構成例を示す概略図である。中継装置は、代表的にはＬ２スイッチやＬ３スイッチ等のスイッチ装置であり、これに限らず、フレームを中継する何らかの装置であればよい。明細書では、中継装置がＬ２スイッチである場合を例とする。図１に示す中継装置１は、複数のポートＰ［１］〜Ｐ［ｎ］と、インタフェース部２と、フレーム処理部３とを備える。複数のポートＰ［１］〜Ｐ［ｎ］は、イーサネット（登録商標）ケーブル８に接続される所定の装置との間でフレームの送信または受信を行う。
【００１８】
インタフェース部２は、複数のポートＰ［１］〜Ｐ［ｎ］と、フレーム処理部３との間のフレームの転送を仲介する。具体的には、インタフェース部２は、ポートでフレームを受信した場合、当該ポートのポート識別子（受信ポート識別子）を当該フレームに付加してフレーム処理部３へ転送する。また、インタフェース部２は、フレーム処理部３から宛先ポート識別子が付加されたフレームを受信した場合、当該フレームを宛先ポート識別子が示すポートへ転送する。
【００１９】
フレーム処理部３は、中継処理部５と、ＦＤＢ（Forwarding DataBase）６と、フロー制御部７とを備える。ＦＤＢ６は、図２に示されるように、ポート識別子（ＩＤ）とＭＡＣアドレスとの対応関係を保持する。図２において、例えば、｛Ｐ［１］｝は、ポートＰ［１］のポート識別子を表す。中継処理部５は、ＦＤＢ６に基づきポート間でのフレームの中継経路を制御する。具体的には、中継処理部５は、インタフェース部２から受信ポート識別子が付加されたフレームを受信した場合、当該フレームの送信元ＭＡＣアドレスを受信ポート識別子に対応付けてＦＤＢ６に学習する。また、中継処理部５は、当該フレームの宛先ＭＡＣアドレスをキーにＦＤＢ６を検索し、その結果得られるポート識別子（すなわち宛先ポート識別子）を当該フレームに付加してインタフェース部２へ転送する。
【００２０】
フロー制御部７は、詳細は後述するが、ＡＣＬに基づきフレームのフロー制御を行う。フロー制御の具体例として、例えば、フレームの破棄や、フレームのＬ２ヘッダに含まれるＶＬＡＮ識別子の書き換え等が挙げられる。なお、フロー制御は、中継処理部５の処理前となるイングレス側で行う場合と、中継処理部５の処理後となるイーグレス側で行う場合と、その両方で行う場合とがある。
【００２１】
図１において、インタフェース部２およびフレーム処理部３は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）、ＣＡＭ（Content Addressable Memory）、ＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）等を適宜組み合わせたハードウェアによって実装される。また、フレーム処理部３は、場合よっては、このようなハードウェアと、ＣＰＵ（Central Processing Unit）によるプログラム処理との組み合わせによって実装される。ただし、各部の具体的な実装形態は、勿論、これに限定されるものではなく、ハードウェアまたはソフトウェアあるいはその組合せを用いて適宜実装されればよい。
【００２２】
《フレームの構造》
図３は、図１の中継装置で送信または受信されるフレームの構造例を示す概略図である。図３に示すフレームＦＲは、パケットＰＫとＬ２ヘッダ（イーサネットヘッダ）１０とを含む。パケットＰＫは、データ１２とＬ３ヘッダ（ＩＰヘッダ）１１とを含む。Ｌ３ヘッダ１１は、フラグメント識別子１５、フラグ１６、フラグメントオフセット１７、送信元ＩＰアドレス１８および宛先ＩＰアドレス１９を含む。フラグメント識別子１５は、フラグメントされる前のパケットを識別するためのものであり、同一のパケットからの複数のフラグメントフレームのフラグメント識別子１５は、同一の値に設定される。
【００２３】
フラグ１６は、３ビットの値である。１ビット目は、‘０’に固定され、２ビット目は、フラグメントを許可する‘０’か、フラグメントを禁止する‘１’に設定され、３ビット目は、ＭＦとなる。ＭＦは、最初〜（最後−１）のフラグメントフレームか、最後のフラグメントフレームかを識別する情報である。フラグメントオフセット１７は、フラグメントフレームが元のパケットのどの位置にあったかを示す情報である。
【００２４】
図４は、図３において、ＩＰフラグメントが行われた場合の各フラグメントフレームの構造例を示す概略図である。最初のフラグメントフレームＦＲａ［１］は、パケットＰＫ［１］とＬ２ヘッダ１０とを含む。パケットＰＫ［１］のＩＰヘッダ１１内のフラグメント識別子１５は、所定の値（ここではＩＤ＃１）に設定され、ＭＦは‘１’に設定される。また、パケットＰＫ［１］は、データ１２ｂに加えてＬ４ヘッダ１２ａを含む。
【００２５】
途中のフラグメントフレームＦＲａ［ｋ］（Ｋ＝２〜（ｎ−１））は、パケットＰＫ［ｋ］とＬ２ヘッダ１０とを含む。パケットＰＫ［ｋ］のＩＰヘッダ１１内のフラグメント識別子１５は、最初のフラグメントフレームＦＲａ［１］と同じ値（ＩＤ＃１）に設定され、ＭＦは‘１’に設定される。また、データ１２は、最初のフラグメントフレームＦＲａ［１］と異なり、Ｌ４ヘッダ１２ａを含まない。
【００２６】
最後のフラグメントフレームＦＲａ［ｎ］は、パケットＰＫ［ｎ］とＬ２ヘッダ１０とを含む。パケットＰＫ［ｎ］のＩＰヘッダ１１内のフラグメント識別子１５は、最初のフラグメントフレームＦＲａ［１］と同じ値（ＩＤ＃１）に設定され、ＭＦは‘０’に設定される。また、データ１２は、途中のフラグメントフレームＦＲａ［ｋ］と同じく、Ｌ４ヘッダ１２ａを含まない。
【００２７】
ここで、中継装置１（例えばフロー制御部７）は、新たなフラグメント識別子１５を有し、かつＭＦが‘１’であるフレームを受信した場合、当該フレームを最初のフラグメントフレームＦＲａ［１］と認識することができる。また、フロー制御部７は、既知のフラグメント識別子１５を有し、かつＭＦが‘１’であるフレームを受信した場合、当該フレームを途中のフラグメントフレームＦＲａ［ｋ］と認識することができる。さらに、フロー制御部７は、既知のフラグメント識別子１５を有し、かつＭＦが‘０’であるフレームを受信した場合、当該フレームを最後のフラグメントフレームＦＲａ［ｎ］と認識することができる。
【００２８】
具体的には、フロー制御部７は、例えば、フラグメント識別子保持部等を備えればよい。フロー制御部７は、フラグメント識別子保持部に保持されない新たなフラグメント識別子１５を有し、かつＭＦが‘１’であるフレームを受信した場合、当該フラグメント識別子１５をフラグメント識別子保持部に保持する。フロー制御部７は、フラグメント識別子１５がフラグメント識別子保持部に保持されるか否かでフラグメント識別子１５が既知か否かを判定する。そして、フロー制御部７は、既知のフラグメント識別子１５を有し、かつＭＦが‘０’であるフレームを受信した場合、当該フラグメント識別子保持部の情報を消去する。
【００２９】
《フロー制御部の詳細》
図５は、図１におけるフロー制御部の構成例および動作例を示す概略図である。図５に示すフロー制御部７は、マッチング実行部２５と、フラグメント情報学習部２６ａと、アクション実行部２７と、ＡＣＬテーブル２８と、フラグメント情報学習テーブル２９とを備える。ＡＣＬテーブル２８は、各ＡＣＬエントリ（Ｎｏ．１…）に、マッチング条件ＭＣとアクション情報ＡＩとの対応関係を保持する。アクション情報ＡＩで指定可能なアクションとしては、例えば、フレームの破棄や、フレーム内のＶＬＡＮ識別子、優先度、ＭＡＣアドレス等の書き換えや、フレームに対する帯域制御（シェーピング、ポリシング）の実行指示や、バーストレコーダ等のトラフィック分析の実行指示等が挙げられる。
【００３０】
フラグメント情報学習テーブル２９は、各学習エントリ（Ｎｏ．１…）に、フラグメント情報ＦＧＩと、アクション情報ＡＩとの対応関係を保持する。フラグメント情報ＦＧＩとは、フレーム内のＬ３ヘッダ１１または加えてＬ２ヘッダ１０の情報から生成され、同一のパケットからのフラグメントフレームであることを区別するための情報である。具体例として、フラグメント情報ＦＧＩは、少なくとも、Ｌ３ヘッダ１１内のフラグメント識別子１５、送信元ＩＰアドレス１８および宛先ＩＰアドレス１９の情報を反映して生成され、また、これらに加えて、Ｌ２ヘッダ１０内のＶＬＡＮ識別子（図示せず）の情報を反映して生成される。フラグメント情報ＦＧＩは、これらの情報そのものであってもよく、これらの情報のハッシュ値であってもよい。
【００３１】
《マッチング実行部の詳細》
図６は、図５におけるマッチング実行部の処理内容の一例を示すフロー図である。マッチング実行部２５は、各種フレームＦＲを受信し（ステップＳ１０１）、マッチング条件ＭＣに対応する各種フレームＦＲ内の情報をキーとしてＡＣＬテーブル２８を検索する（ステップＳ１０２）。各種フレームには、図４に示したようなフラグメントフレームＦＲａ［１］〜ＦＲａ［ｎ］や、ＩＰフラグメントの対象でない非フラグメントフレームが含まれる。
【００３２】
マッチング実行部２５は、ＡＣＬテーブル２８の検索結果がヒットの場合（ステップＳ１０３）、当該ヒットしたＡＣＬエントリ内のアクション情報ＡＩを各種フレームＦＲに付加してフラグメント情報学習部２６ａへ送信する（ステップＳ１０４，Ｓ１０５）。一方、マッチング実行部２５は、当該検索結果がミスヒットの場合（ステップＳ１０３）、各種フレームＦＲをアクション情報ＡＩを付加せずにフラグメント情報学習部２６ａへ送信する（ステップＳ１０５）。
【００３３】
図７は、図５のマッチング実行部から送信される各種フレームの一例を示す説明図である。マッチング実行部２５から送信される（フラグメント情報学習部２６ａが受信する）各種フレームＦＲには、例えば、図７に示す８種類が含まれる。フレーム（１）〜（３）は、最初のフラグメントフレームＦＲａ［１］である。加えて、フレーム（１）は、アクション情報ＡＩが付加された（ＡＣＬエントリが存在する）フレームであり、当該ＡＣＬエントリのマッチング条件ＭＣはＬ４以上（Ｌ４，Ｌ５，…）の情報である。フレーム（２）は、アクション情報ＡＩが付加された（ＡＣＬエントリが存在する）フレームであるが、フレーム（１）と異なりＡＣＬエントリのマッチング条件ＭＣはＬ３以下の情報である。一方、フレーム（３）は、アクション情報ＡＩが付加されていない（ＡＣＬエントリが存在しない）フレームである。
【００３４】
フレーム（４）〜（６）は、２番目以降のフラグメントフレーム（途中のフラグメントフレームＦＲａ［ｋ］および最後のフラグメントフレームＦＲａ［ｎ］）である。加えて、フレーム（４）は、アクション情報ＡＩが付加されていない（ただし、ＡＣＬエントリは存在する）フレームであり、当該ＡＣＬエントリのマッチング条件ＭＣはＬ４以上の情報である。すなわち、図４に示した２番目以降のフラグメントフレーム（ＦＲａ［ｋ］，ＦＲａ［ｎ］）は、データ１２内にＬ４ヘッダ１２ａを含まないことから、フレーム（１）と異なり、ＡＣＬエントリが存在する場合であってもアクション情報ＡＩは付加されない。
【００３５】
フレーム（５）は、アクション情報ＡＩが付加された（ＡＣＬエントリが存在する）フレームであり、当該ＡＣＬエントリのマッチング条件ＭＣはＬ３以下の情報である。すなわち、図４に示した２番目以降のフラグメントフレーム（ＦＲａ［ｋ］，ＦＲａ［ｎ］）は、Ｌ３以下のヘッダを含むため、フレーム（４）と異なり、ＡＣＬエントリが存在する場合にはアクション情報ＡＩが付加される。フレーム（６）は、アクション情報ＡＩが付加されていない（ＡＣＬエントリが存在しない）フレームである。
【００３６】
フレーム（７），（８）は、非フラグメントフレームＦＲｂである。加えて、フレーム（７）は、アクション情報ＡＩが付加された（ＡＣＬエントリが存在する）フレームであり、フレーム（８）は、アクション情報ＡＩが付加されていない（ＡＣＬエントリが存在しない）フレームである。
【００３７】
《フラグメント情報学習部の詳細》
フラグメント情報学習部２６ａは、図７のフレーム（４）を対象にフレーム（１）と同じアクション情報ＡＩを付加してアクション実行部２７へ送信し、その他のフレームに対しては、アクション情報ＡＩを付加せずに（言い換えれば、マッチング実行部２５からのフレームをそのままの形で）アクション実行部２７へ送信する機能を担う。そのためには、フラグメント情報学習部２６ａは、フレーム（１）を識別し、そのフラグメント情報ＦＧＩとアクション情報ＡＩをフラグメント情報学習テーブル２９に登録すればよい。ここで、フレーム（１）を識別するためには、（条件Ａ）アクション情報ＡＩが付加されているか否かと、（条件Ｂ）最初のフラグメントフレームＦＲａ［１］であるか否かと、（条件Ｃ）マッチング条件ＭＣがＬ４以上であるか否かとを判定する必要がある。ただし、（条件Ｃ）の判定が容易でない場合がある。
【００３８】
そこで、フラグメント情報学習部２６ａは、概略的には、第１〜第３の処理を実行する。第１の処理において、フラグメント情報学習部２６ａは、マッチング実行部２５からの各種フレームＦＲが、少なくとも、（条件Ａ）アクション情報ＡＩが付加されたフレームであり、かつ、（条件Ｂ）最初のフラグメントフレームＦＲａ［１］である登録対象のフラグメントフレームであるかを判定する。フラグメント情報学習部２６ａは、当該判定結果が登録対象のフラグメントフレームの場合、付加されたアクション情報ＡＩを、当該登録対象のフラグメントフレームから生成したフラグメント情報ＦＧＩに対応付けて所定の学習エントリに登録する。
【００３９】
第２の処理において、フラグメント情報学習部２６ａは、マッチング実行部２５からの少なくとも２番目以降のフラグメントフレーム（ＦＲａ［ｋ］，ＦＲａ［ｎ］）に対して、当該フラグメントフレームから生成したフラグメント情報ＦＧＩをキーとしてフラグメント情報学習テーブル２９を検索する。フラグメント情報学習部２６ａは、当該検索結果がヒットの場合、当該ヒットした学習エントリ内のアクション情報ＡＩを当該フラグメントフレーム（ＦＲａ［ｋ］，ＦＲａ［ｎ］）に付加してアクション実行部２７へ送信する。
【００４０】
第３の処理において、フラグメント情報学習部２６ａは、マッチング実行部２５からの各種フレームＦＲが、学習エントリにヒットするフラグメントフレームであり、かつ、最後のフラグメントフレームＦＲａ［ｎ］である削除対象のフラグメントフレームであるかを判定する。フラグメント情報学習部２６ａは、当該判定結果が削除対象のフラグメントフレームの場合、対応する学習エントリを削除する。
【００４１】
ここで、第１の処理が実行されると、フレーム（１）（Ｌ４以上のマッチング条件ＭＣでヒットした最初のフラグメントフレーム）の情報とフレーム（２）（Ｌ３以下のマッチング条件ＭＣでヒットした最初のフラグメントフレーム）の情報が、フラグメント情報学習テーブル２９に登録される。これに伴い、第２の処理が実行されると、フレーム（４）（フレーム（１）に続く２番目以降のフラグメントフレーム）とフレーム（５）（フレーム（２）に続く２番目以降のフラグメントフレーム）にアクション情報ＡＩが付加される。その他のフレームに関しては、少なくとも、フラグメント情報学習テーブル２９の学習エントリがヒットすることはないため、フラグメント情報学習テーブル２９の検索の有無に関わらず、フラグメント情報学習部２６ａによってアクション情報ＡＩが付加されることはない。
【００４２】
この第２の処理に際し、フレーム（５）は、フレーム（４）と異なり、既にアクション情報ＡＩが付加されている。例えば、フラグメント情報学習部２６ａは、フレーム（５）に対して、既に付加されているアクション情報ＡＩに上書きする形でアクション情報ＡＩを付加することも可能である。ただし、これは無駄な処理となる。そこで、フラグメント情報学習部２６ａは、第２の処理において、例えば、マッチング実行部２５からのフラグメントフレーム（または、各種フレームであってもよい）にアクション情報ＡＩが付加されているかを判定し、アクション情報ＡＩが付加されている場合には、フラグメント情報学習テーブル２９の検索を実行しないことが望ましい。これにより、フレーム（５）に対して、再度、アクション情報ＡＩが付加されることがなくなる。
【００４３】
また、フラグメント情報学習部２６ａは、第２の処理において、フラグメント情報学習テーブル２９の検索結果がミスヒットの場合、対象のフレームをアクション情報ＡＩを付加せずにアクション実行部２７へ送信する。第２の処理において、フラグメント情報学習テーブル２９の検索の実行対象となるフレームは、アクション情報ＡＩが付加されていない２番目以降のフラグメントフレームを少なくとも含んでいれば様々な方法で定めることができる。当該アクション情報ＡＩが付加されていない２番目以降のフラグメントフレームは、フレーム（４）（ＡＣＬエントリが存在するフレーム）とフレーム（６）（そもそもＡＣＬエントリが存在しないフレーム）に該当する。理想的には、フレーム（４）のみを含んでいればよいが、フレーム（４）とフレーム（６）を区別するのは容易でない。
【００４４】
様々な方法の一例として、アクション情報ＡＩが付加されていないフラグメントフレーム（または、各種フレーム）に限定する方法や、その中から更に２番目以降のフラグメントフレームに限定する方法や、単にフラグメントフレームに限定する方法や、場合によっては、特に限定を伴わない各種フレームに定める方法等が挙げられる。フラグメント情報学習テーブル２９の検索結果がミスヒットとなるフレームは、この方法に応じて適宜変わり得る。実行対象を広げるほど、フラグメント情報学習テーブル２９の検索回数が増えることになるが、いずれの方法を用いた場合であっても、結果的に、フレーム（４）とフレーム（５）か、または、実行対象をアクション情報ＡＩが付加されていないフレームに限定した場合にはフレーム（４）のみにしかアクション情報ＡＩは付加されない。
【００４５】
なお、第１の処理では、場合によっては、前述した（条件Ｃ）マッチング条件がＬ４以上であるか否かの判定条件を加えることも可能である。（条件Ｃ）を加えた場合、フラグメント情報学習テーブル２９の登録対象となるのはフレーム（１）のみとなる。この場合、第２の処理の実行対象となるフレームを、例えば、アクション情報ＡＩが付加されていない２番目以降のフラグメントフレームに限定すれば、実行対象となるフレームは、フレーム（４）とフレーム（６）に限定される。そして、フラグメント情報学習テーブル２９の検索結果は、フレーム（４）に対してヒットとなり、フレーム（６）に対してミスヒットとなる。
【００４６】
以上のように、フラグメント情報学習部２６ａは、前述した第１〜第３の処理を実行する限り、様々な方式を適用でき、図５には、その一例が示される。図５のフラグメント情報学習部２６ａは、例えば、エントリ登録部３０ａと、アクション情報付加部３１ａと、エントリ削除部３２とを備える。図８Ａは、図５におけるフラグメント情報学習部の処理内容の一例を示すフロー図であり、図８Ｂは、図８Ａに続く処理内容の一例を示すフロー図である。
【００４７】
エントリ登録部３０ａは、マッチング実行部２５からの各種フレームＦＲを受信し（ステップＳ２０１）、当該フレームが最初のフラグメントフレームＦＲａ［１］であり、かつ、アクション情報ＡＩが付加された登録対象のフラグメントフレームであるか否かを判定する（ステップＳ２０２）。アクション情報ＡＩが付加されているか否かは、例えば、アクション情報ＡＩ格納用に割り当てられる複数ビット中の１ビットにアクション情報ＡＩの有無を表すフラグ等を設けることで容易に判定することができる。最初のフラグメントフレームＦＲａ［１］であるか否かは、フレームのＬ３ヘッダ１１内のＭＦの値およびフラグメント識別子１５の値に基づいて定められる。
【００４８】
具体的には、図４で述べたように、フラグメント識別子保持部を設ける方法が挙げられる。または、フラグメント識別子１５の値は、フラグメント情報学習テーブル２９のフラグメント情報ＦＧＩに反映されているため、これを利用する方法であってもよい。例えば、エントリ登録部３０ａは、アクション情報ＡＩが付加されたＭＦ＝‘１’のフレームを受信した場合、当該フレームのフラグメント情報ＦＧＩをキーとしてフラグメント情報学習テーブル２９を検索し、ミスヒットの場合に、当該フレームを最初のフラグメントフレームＦＲａ［１］とみなせばよい。
【００４９】
エントリ登録部３０ａは、ステップＳ２０２の判定結果が登録対象のフラグメントフレームである場合には、ステップＳ２０３の処理を実行したのち、アクション情報付加部３１ａの処理（ステップＳ２０４〜Ｓ２０７）に移行し、登録対象のフラグメントフレームでない場合には、そのままアクション情報付加部３１ａの処理に移行する。ステップＳ２０３において、エントリ登録部３０ａは、当該登録対象のフラグメントフレームから生成したフラグメント情報ＦＧＩと、当該フレームに付加されたアクション情報ＡＩとをフラグメント情報学習テーブル２９の所定の学習エントリに登録する。
【００５０】
アクション情報付加部３１ａは、エントリ登録部３０ａからの各種フレームがアクション情報ＡＩが付加されていないフレームか否かを判定する（ステップＳ２０４）。当該各種フレームは、前述したフレーム（１）〜フレーム（８）を含む。アクション情報付加部３１ａは、アクション情報ＡＩが付加されていないフレームの場合には、ステップＳ２０５〜Ｓ２０７を実行したのちエントリ削除部３２の処理（ステップＳ２０８〜Ｓ２１０）に移行し、アクション情報ＡＩが付加されたフレームの場合には、そのまま、エントリ削除部３２の処理に移行する。
【００５１】
ステップＳ２０５において、アクション情報付加部３１ａは、アクション情報ＡＩが付加されていないフレーム（図７のフレーム（３），（４），（６），（８））を対象に、当該フレームから生成したフラグメント情報ＦＧＩをキーとしてフラグメント情報学習テーブル２９を検索する。アクション情報付加部３１ａは、いずれかの学習エントリがヒットした場合（ステップＳ２０６）、当該フレームに、ヒットした学習エントリ内のアクション情報ＡＩを付加する（ステップＳ２０７）。一方、アクション情報付加部３１ａは、検索結果がミスヒットの場合（ステップＳ２０６）には、特に何も行わない。
【００５２】
エントリ削除部３２は、アクション情報付加部３１ａからの各種フレームが最後のフラグメントフレームＦＲａ［ｎ］であり、かつ、アクション情報ＡＩが付加された（言い換えれば、学習エントリが存在する）削除対象のフラグメントフレームであるか否かを判定する（ステップＳ２０８）。最後のフラグメントフレームＦＲａ［ｎ］であるか否かは、エントリ登録部３０ａの場合と同様に、フラグメント識別子保持部を設ける方法や、または、フラグメント情報学習テーブル２９を利用する方法で判定できる。例えば、アクション情報ＡＩが付加されたＭＦ＝‘０’のフレームを受信し、当該フレームによるフラグメント情報学習テーブル２９の検索結果がヒットの場合、当該フレームは、最後のフラグメントフレームＦＲａ［ｎ］とみなせる。
【００５３】
エントリ削除部３２は、判定結果が削除対象のフラグメントフレームである場合、フラグメント情報学習テーブル２９内の対象の学習エントリを削除し（ステップＳ２０９）、当該フレームをアクション実行部２７へ送信する（ステップＳ２１０）。一方、エントリ削除部３２は、判定結果が削除対象のフラグメントフレームでない場合（ステップＳ２０８）、単に、当該フレームをアクション実行部２７へ送信する（ステップＳ２１０）。
【００５４】
《アクション実行部の詳細》
図９は、図５におけるアクション実行部の処理内容の一例を示すフロー図である。アクション実行部２７は、フラグメント情報学習部２６ａからの各種フレームＦＲを受信し（ステップＳ３０１）、当該フレームにアクション情報ＡＩが付加されているか否かを判定する（ステップＳ３０２）。アクション実行部２７は、アクション情報ＡＩが付加されている場合、当該アクション情報ＡＩに基づくアクションを実行する（ステップＳ３０３）。
【００５５】
図５において、マッチング実行部２５、フラグメント情報学習部２６ａおよびアクション実行部２７の実装方式として、例えば、ＦＰＧＡやＡＳＩＣ等の部品を複数組み合わせて実装する方式や、または、１個の部品で実装する方式や、あるいは、一部または全部をＣＰＵによるソフトウェア処理で実装する方式等が挙げられる。具体例として、例えば、マッチング実行部２５およびＡＣＬテーブル２８をＡＳＩＣ等の部品に実装し、フラグメント情報学習部２６ａおよびフラグメント情報学習テーブル２９をＦＰＧＡ等の部品に実装する方式が挙げられる。
【００５６】
すなわち、マッチング実行部２５およびＡＣＬテーブル２８は、既存の部品として存在する場合がある。この場合、フラグメント情報学習部２６ａおよびフラグメント情報学習テーブル２９を含むＦＰＧＡ等の部品を追加することで、実施の形態１の方式を実現できる。また、アクション実行部２７に関しては、例えば、当該フラグメント情報学習部２６ａ等を含む部品内に実装することや、更に別の部品に実装することも可能である。
【００５７】
《フロー制御部の概略動作例》
図１０Ａ、図１０Ｂおよび図１０Ｃは、図５のフロー制御部がＬ４以上のマッチング条件を伴うフラグメントフレームを受信した場合の動作例を示す概略図である。図１０Ａには、Ｌ４以上のマッチング条件ＭＣを伴う最初のフラグメントフレームＦＲａ［１］（図７のフレーム（１）に対応）を受信した場合の動作例が示される。マッチング実行部２５は、最初のフラグメントフレームＦＲａ［１］を受信し、当該フレーム内のＬ４ヘッダ１２ａを含む各種ヘッダ情報をキーとしてＡＣＬテーブル２８を検索する。
【００５８】
当該各種ヘッダ情報は、ＡＣＬエントリに登録されたＬ４のマッチング条件（Ｌ４ＭＣ）にヒットする。これにより、マッチング実行部２５は、当該ヒットしたＡＣＬエントリ内のアクション情報ＡＩ（“ｙｙｙ”）を最初のフラグメントフレームＦＲａ［１］に付加し、当該アクション情報ＡＩが付加されたフレーム３５（フレーム（１）に該当）をエントリ登録部３０ａへ送信する。
【００５９】
エントリ登録部３０ａは、フレーム３５が最初のフラグメントフレームかつアクション情報ＡＩが付加されたフレームであるため、当該フレーム３５から生成したフラグメント情報ＦＧＩ（“ｚｚｚ”）と、付加されたアクション情報ＡＩ（“ｙｙｙ”）とをフラグメント情報学習テーブル２９内の所定の学習エントリに登録する。アクション情報付加部３１ａは、フレーム３５にアクション情報ＡＩが付加されているため、特に何も行わず、エントリ削除部３２も、フレーム３５が最後のフラグメントフレームでないため、特に何も行わない。アクション実行部２７は、フレーム３５を受信し、フレーム３５に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００６０】
図１０Ｂには、図１０Ａに示した最初のフラグメントフレームＦＲａ［１］に続く途中のフラグメントフレームＦＲａ［ｋ］（図７のフレーム（４）に対応）を受信した場合の動作例が示される。マッチング実行部２５は、途中のフラグメントフレームＦＲａ［ｋ］を受信し、当該フレーム内の各種ヘッダ情報をキーとしてＡＣＬテーブル２８を検索する。ただし、当該フレームは、Ｌ４ヘッダ１２ａを含まないため、検索結果はミスヒットとなる。このため、マッチング実行部２５は、当該途中のフラグメントフレームＦＲａ［ｋ］（フレーム（４）に該当）をそのままエントリ登録部３０ａへ送信する。
【００６１】
エントリ登録部３０ａは、受信したフレームが途中のフラグメントフレームＦＲａ［ｋ］であるため、特に何も行わない。アクション情報付加部３１ａは、受信したフレーム（ＦＲａ［ｋ］）にアクション情報ＡＩが付加されていないため、当該フレーム（ＦＲａ［ｋ］）から生成したフラグメント情報ＦＧＩ（図１０Ａと同じ“ｚｚｚ”となる）をキーにフラグメント情報学習テーブル２９を検索する。その結果、アクション情報ＡＩ（“ｙｙｙ”）がヒットする。
【００６２】
これにより、アクション情報付加部３１ａは、当該フレーム（ＦＲａ［ｋ］）にアクション情報ＡＩ（“ｙｙｙ”）を付加し、当該アクション情報ＡＩが付加されたフレーム３６をエントリ削除部３２へ送信する。エントリ削除部３２は、フレーム３６が最後のフラグメントフレームでないため、特に何も行わない。アクション実行部２７は、フレーム３６を受信し、フレーム３６に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００６３】
図１０Ｃには、図１０Ｂに示した途中のフラグメントフレームＦＲａ［ｋ］に続く最後のフラグメントフレームＦＲａ［ｎ］（図７のフレーム（４）に対応）を受信した場合の動作例が示される。図１０Ｃにおいて、アクション情報付加部３１ａまでの動作は、図１０Ｂの場合と同様である。アクション情報付加部３１ａは、当該最後のフラグメントフレームＦＲａ［ｎ］にアクション情報ＡＩ（“ｙｙｙ”）を付加し、当該アクション情報ＡＩが付加されたフレーム３７をエントリ削除部３２へ送信する。
【００６４】
エントリ削除部３２は、フレーム３７が最後のフラグメントフレームかつアクション情報ＡＩが付加されたフレームであるため、対象の学習エントリ（フラグメント情報ＦＧＩが“ｚｚｚ”のエントリ）を削除する。アクション実行部２７は、フレーム３７を受信し、フレーム３７に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００６５】
図１１Ａ、図１１Ｂおよび図１１Ｃは、図５のフロー制御部がＬ３以下のマッチング条件を伴うフラグメントフレームを受信した場合の動作例を示す概略図である。図１１Ａには、Ｌ３以下のマッチング条件ＭＣを伴う最初のフラグメントフレームＦＲａ［１］（図７のフレーム（２）に対応）を受信した場合の動作例が示される。マッチング実行部２５は、最初のフラグメントフレームＦＲａ［１］を受信し、当該フレーム内の各種ヘッダ情報をキーとしてＡＣＬテーブル２８を検索する。
【００６６】
当該各種ヘッダ情報は、ＡＣＬエントリに登録されたＬ２のマッチング条件（Ｌ２ＭＣ）にヒットする。これにより、マッチング実行部２５は、当該ヒットしたＡＣＬエントリ内のアクション情報ＡＩ（“ｙｙｙ”）を最初のフラグメントフレームＦＲａ［１］に付加し、当該アクション情報ＡＩが付加されたフレーム４０（フレーム（２）に該当）をエントリ登録部３０ａへ送信する。
【００６７】
エントリ登録部３０ａは、フレーム４０が最初のフラグメントフレームかつアクション情報ＡＩが付加されたフレームであるため、当該フレーム４０から生成したフラグメント情報ＦＧＩ（“ｖｖｖ”）と、付加されたアクション情報ＡＩ（“ｙｙｙ”）とをフラグメント情報学習テーブル２９内の所定の学習エントリに登録する。アクション情報付加部３１ａは、フレーム４０にアクション情報ＡＩが付加されているため、特に何も行わず、エントリ削除部３２も、フレーム４０が最後のフラグメントフレームでないため、特に何も行わない。アクション実行部２７は、フレーム４０を受信し、フレーム４０に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００６８】
図１１Ｂには、図１１Ａに示した最初のフラグメントフレームＦＲａ［１］に続く途中のフラグメントフレームＦＲａ［ｋ］（図７のフレーム（５）に対応）を受信した場合の動作例が示される。マッチング実行部２５は、途中のフラグメントフレームＦＲａ［ｋ］を受信し、当該フレーム内の各種ヘッダ情報をキーとしてＡＣＬテーブル２８を検索する。当該各種ヘッダ情報は、ＡＣＬエントリに登録されたＬ２のマッチング条件（Ｌ２ＭＣ）にヒットする。これにより、マッチング実行部２５は、当該ヒットしたＡＣＬエントリ内のアクション情報ＡＩ（“ｙｙｙ”）を途中のフラグメントフレームＦＲａ［ｋ］に付加し、当該アクション情報ＡＩが付加されたフレーム４１（フレーム（５）に該当）をエントリ登録部３０ａへ送信する。
【００６９】
エントリ登録部３０ａは、フレーム４１が途中のフラグメントフレームＦＲａ［ｋ］であるため、特に何も行わない。アクション情報付加部３１ａは、フレーム４１にアクション情報ＡＩが付加されているため、特に何も行わず、エントリ削除部３２も、フレーム４１が最後のフラグメントフレームでないため、特に何も行わない。アクション実行部２７は、フレーム４１を受信し、フレーム４１に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００７０】
図１１Ｃには、図１１Ｂに示した途中のフラグメントフレームＦＲａ［ｋ］に続く最後のフラグメントフレームＦＲａ［ｎ］（図７のフレーム（５）に対応）を受信した場合の動作例が示される。図１１Ｃにおいて、エントリ削除部３２までの動作は、図１１Ｂの場合と同様である。この際に、マッチング実行部２５は、最後のフラグメントフレームＦＲａ［ｎ］にアクション情報ＡＩ（“ｙｙｙ”）が付加されたフレーム４２（フレーム（５）に該当）を生成する。
【００７１】
エントリ削除部３２は、フレーム４２が最後のフラグメントフレームかつアクション情報ＡＩが付加されたフレームであるため、対象の学習エントリ（フラグメント情報ＦＧＩが“ｖｖｖ”のエントリ）を削除する。アクション実行部２７は、フレーム４２を受信し、フレーム４２に付加されたアクション情報ＡＩに基づくアクションを実行する。
【００７２】
なお、図示は省略するが、図７のフレーム（７）に関しては、図１１Ｂと同様の経路で処理される。また、フレーム（３），（６），（８）に関しては、図１０Ｂと同様の経路でアクション情報付加部３１ａに到達したのち、フラグメント情報学習テーブル２９の検索対象となる。ただし、当該検索結果はミスヒットとなるため、当該フレームは、アクション情報ＡＩの付加を経ることなく、エントリ削除部３２およびアクション実行部２７をそのまま通過する。
【００７３】
《実施の形態１の主要な効果》
図１４は、本発明の比較例となるフロー制御方式の一例を示す概略図である。比較例の方式では、マッチング条件とアクション情報とを保持するフローテーブル４６と、パケットＩＤとフローテーブル４６のエントリへのポインタとを保持するフラグメントパケットＩＤテーブル４５とが用いられる。処理部４７は、各種フレームＦＲを受信した場合、フラグメントパケットＩＤテーブル４５を検索し、その検索結果（ヒット／ミスヒット）と、フレームＦＲ内のＭＦの値（１／０）との組み合わせに応じて、それぞれ異なる４通りの分岐処理を実行する。これに伴い、処理部４７による各テーブル（４５，４６）に対する処理手順として、次の４通りのケースが存在する。
【００７４】
ケース［１］（検索結果がミスヒットかつＭＦ＝１時）では、フラグメントパケットＩＤテーブル４５の検索処理、フローテーブル４６の検索処理、フラグメントパケットＩＤテーブル４５のエントリ登録処理とが順に行われる。ケース［２］（検索結果がヒットかつＭＦ＝１時）では、フラグメントパケットＩＤテーブル４５の検索処理、フローテーブル４６のポインタ参照処理とが順に行われる。ケース［３］（検索結果がヒットかつＭＦ＝０時）では、フラグメントパケットＩＤテーブル４５の検索処理、フローテーブル４６のポインタ参照処理、フラグメントパケットＩＤテーブル４５のエントリ削除処理とが順に行われる。ケース［４］（検索結果がミスヒットかつＭＦ＝０時）では、フラグメントパケットＩＤテーブル４５の検索処理、フローテーブル４６の検索処理とを順に行われる。
【００７５】
このように、比較例の方式では、例えば、ケース［１］，［３］のように、フローテーブル４６に対する処理の後に、再度、フラグメントパケットＩＤテーブル４５に対する処理を行うといった戻り処理が生じ得る。このため、一つのフレームＦＲに対して、フラグメントパケットＩＤテーブル４５に対する処理と、フローテーブル４６に対する処理とを不可分一体の処理として取り扱う必要がある。すなわち、例えば、あるフレームＦＲに対してフラグメントパケットＩＤテーブル４５に対する処理を行いながら、これと並行して別のフレームＦＲに対してフローテーブル４６に対する処理を行うといったパイプライン処理を実行することは困難となる。
【００７６】
この場合、当該不可分一体の処理に伴い、トラフィック遅延の増大等が生じる恐れがある。さらに、フラグメントパケットＩＤテーブル４５にはフローテーブル４６へのポインタが登録され、かつ２個のテーブルに対する処理は不可分一体であることから、２個のテーブル（４５，４６）は、通常、１個の部品に実装されることになる。その結果、実装上の自由度が低下する恐れがある。
【００７７】
一方、実施の形態１の方式では、アクション情報ＡＩをフレームに付加する方式であり、また、最初にＡＣＬテーブル２８（図１４のフローテーブル４６に相当）の検索を行う方式である。このため、各フレームに対して、ＡＣＬテーブル２８に対する処理と、フラグメント情報学習テーブル２９に対する処理とをシリアルに行うことが可能であり、比較例の方式のような戻り処理は生じない。
【００７８】
このため、例えば、図１２に示されるようなパイプライン処理を行うことが可能である。図１２は、図５のフロー制御部を用いたパイプライン処理の一例を示すタイミングチャートである。図１２の例では、フロー制御部７は、フラグメントフレームＦＲａ［１］，ＦＲａ［２］，…に対する処理を行っている。例えば、期間Ｔ３では、マッチング実行部２５は、フラグメントフレームＦＲａ［３］を対象にＡＣＬテーブル２８を用いた処理を行っている。これと並行して、フラグメント情報学習部２６ａは、一つ前のフラグメントフレームＦＲａ［２］を対象にフラグメント情報学習テーブル２９を用いた処理を行っており、アクション実行部２７は、更に一つ前のフラグメントフレームＦＲａ［１］を対象に所定の処理を行っている。
【００７９】
実施の形態１の方式を用いると、このようなパイプライン処理を行えるため、トラフィック遅延を短縮できる場合がある。さらに、ＡＣＬテーブル２８とフラグメント情報学習テーブル２９は、比較例の方式と異なり、互いに干渉しない独立したテーブルである。このため、例えば、各テーブル（２８，２９）（ひいては、マッチング実行部２５とフラグメント情報学習部２６ａ）を別の部品に実装することも可能である。また、マッチング実行部２５、フラグメント情報学習部２６ａ、アクション実行部２７の３つを物理的に異なるデバイス（集積回路チップ）に分割して実装することも可能である。このように、実施の形態１の方式を用いると、比較例の方式と比較して、実装上の自由度の向上が図れる。
【００８０】
（実施の形態２）
《フロー制御部の詳細（変形例）》
図１３は、本発明の実施の形態２による中継装置に含まれるフロー制御部の構成例および動作例を示す概略図である。図１３に示すフロー制御部７は、図５の構成例と比較して、フラグメント情報学習部２６ｂ内のエントリ登録部３０ｂおよびアクション情報付加部３１ｂの構成および動作が異なっている。エントリ登録部３０ｂは、図５のエントリ登録部３０ａの場合と同様にしてフラグメント情報学習テーブル２９への登録を行う。これに加えて、エントリ登録部３０ｂは、マッチング実行部２５からの各種フレームＦＲが非フラグメントフレームＦＲｂであるか否かを判定し、非フラグメントフレームＦＲｂである場合には、それをアクション実行部２７へ送信する。
【００８１】
これに伴い、アクション情報付加部３１ｂは、フラグメントフレームＦＲａ［１］〜ＦＲａ［ｎ］（図７のフレーム（１）〜（６））を受信する。アクション情報付加部３１ｂは、アクション情報ＡＩが付加されていないフラグメントフレーム（フレーム（３），（４），（６））を対象に、フラグメント情報学習テーブル２９の検索を行い、ミスヒットの場合には、当該フレーム（フレーム（３），（６）となる）をアクション実行部２７へ送信する。
【００８２】
《実施の形態２の主要な効果》
以上、実施の形態２の方式を用いることで、実施の形態１の場合と同様の効果が得られる。さらに、図５と比較して、アクション情報付加部３１ｂにおける検索対象のフレームが減るため、処理の効率化が図れる場合がある。なお、図１３の構成は、同様にして、例えば、アクション情報付加部３１ｂにおける検索対象からフレーム（３）（アクション情報ＡＩが付加されていない最初のフラグメントフレーム）を除外する等、適宜変更することが可能である。
【００８３】
また、場合によっては、最終的にアクション情報ＡＩが付加されないフレームは、アクション実行部２７へ送信しないように構成することも可能である。さらに、マッチング実行部２５内にもアクション実行部を設け、マッチング実行部２５でヒットしたフレームに対しては、そこでアクションを実行し、マッチング実行部２５でミスヒットとなったフレームを対象にフラグメント情報学習部２６ｂ以降の処理を行わせるように構成することも可能である。このような場合であっても、ＡＣＬテーブル２８とフラグメント情報学習テーブル２９は別の部品に実装できるため、実装上の自由度を向上させることが可能になる。
【００８４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００８５】
１  中継装置
２  インタフェース部
３  フレーム処理部
５  中継処理部
６  ＦＤＢ
７  フロー制御部
８  イーサネットケーブル
１０  Ｌ２ヘッダ
１１  Ｌ３ヘッダ
１２  データ
１２ａ  Ｌ４ヘッダ
１５  フラグメント識別子
１６  フラグ
１７  フラグメントオフセット
１８  送信元ＩＰアドレス
１９  宛先ＩＰアドレス
２５  マッチング実行部
２６ａ，２６ｂ  フラグメント情報学習部
２７  アクション実行部
２８  ＡＣＬテーブル
２９  フラグメント情報学習テーブル
３０ａ，３０ｂ  エントリ登録部
３１ａ，３１ｂ  アクション情報付加部
３２  エントリ削除部
３５〜３７，４０〜４２  フレーム
ＡＩ  アクション情報
ＦＧＩ  フラグメント情報
ＦＲ  フレーム
ＦＲａ  フラグメントフレーム
ＦＲｂ  非フラグメントフレーム
ＭＣ  マッチング条件
Ｐ  ポート
ＰＫ  パケット
【図１】
2019146000.tif 000003
【図２】
2019146000.tif 000004
【図３】
2019146000.tif 000005
【図４】
2019146000.tif 000006
【図５】
2019146000.tif 000007
【図６】
2019146000.tif 000008
【図７】
2019146000.tif 000009
【図８Ａ】
2019146000.tif 000010
【図８Ｂ】
2019146000.tif 000011
【図９】
2019146000.tif 000012
【図１０Ａ】
2019146000.tif 000013
【図１０Ｂ】
2019146000.tif 000014
【図１０Ｃ】
2019146000.tif 000015
【図１１Ａ】
2019146000.tif 000016
【図１１Ｂ】
2019146000.tif 000017
【図１１Ｃ】
2019146000.tif 000018
【図１２】
2019146000.tif 000019
【図１３】
2019146000.tif 000020
【図１４】
2019146000.tif 000021