(57)【要約】【課題】ルールの再検討を伴わずに転送制御を元の状態に戻すことができるデータグラム転送装置を提供する。【解決手段】検索機能部１１１−１〜１１１−ｎは、受信データグラムの宛先アドレスまたは非宛先アドレスに対応するエントリを検索する。決定機能部１１２は、検索機能部１１１−１〜１１１−ｎの各検索結果に対応する転送制御ルールを現行ルール管理テーブル１１２ａから読み出して、実行する転送制御ルールを決定する。転送制御実行部１２０は、決定機能部１１２で決定された転送制御ルールを実行する。過去ルール管理テーブル１１３は、現行ルール管理テーブル１１２ａ内の転送制御ルールが書き換えられる度に、現行ルール管理テーブル１１２ａの書き換え前の状態を記憶する。【選択図】　　　図１
2004064349.tif 000002
【特許請求の範囲】
【請求項１】
受信されたデータグラムの宛先アドレスまたは非宛先アドレスに対応するエントリを検索する、１個または複数個のルール検索手段と、
前記エントリ毎に、１種類または複数種類の転送制御ルールを記憶する現行ルール管理テーブルと、
前記ルール検索手段の各検索結果に対応する転送制御ルールを前記現行ルール管理テーブルからそれぞれ入力して、実行する転送制御ルールを決定するルール決定部と、
前記ルール決定部で決定された前記転送制御ルールを実行する転送制御実行部と、
前記現行ルール管理テーブル内の前記転送制御ルールが書き換えられる度に、この現行ルール管理テーブルの書き換え前の状態を記憶する、過去ルール管理テーブルと、
を備えることを特徴とするデータグラム転送装置。
【請求項２】
前記過去ルール管理テーブルが、前記エントリに対応する過去の前記転送制御ルールを時系列的に特定するためのチェーンと、同時に書き換えられた過去の前記転送制御ルールを相互に特定するためのチェーンと、過去の前記転送制御ルールのルール名を特定するためのチェーンとを記憶することを特徴とする請求項１に記載のデータグラム転送装置。
【請求項３】
前記現行ルール管理テーブルが、現行の前記転送制御ルールのルール名と、この転送制御ルールを特定するためのインデックスとを記憶し、且つ、
前記過去ルール管理テーブルが、現行または過去の前記転送制御ルールのルール名と、この転送制御ルールを特定するためのインデックスと、この転送制御ルールの直前に登録されていた前記転送制御ルールのルール名またはインデックスとを記憶する、
ことを特徴とする請求項１に記載のデータグラム転送装置。
【請求項４】
前記現行ルール管理テーブルが、現行の前記転送制御ルールのルール名と、この転送制御ルールを特定するためのインデックスとを記憶し、且つ、
前記過去ルール管理テーブルが、現行または過去の前記転送制御ルールのルール名と、この転送制御ルールから書き換えられた転送制御ルールを特定するためのビットマップと、前記現行または過去の転送制御ルールを特定するためのインデックスと、前記現行または過去の転送制御ルールの直前に登録されていた前記転送制御ルールのルール名およびインデックスとを記憶する、
ことを特徴とする請求項１に記載のデータグラム転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、通信ネットワーク内でデータグラムを中継するデータグラム転送装置に関する。
【０００２】
【従来の技術】
ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）やインターネット等の通信ネットワークでは、データグラム転送装置によって、データグラム（通信パケットや通信フレーム等）の中継が行われる。データグラム転送装置としては、ルータやスイッチ等が知られている。これらのデータグラム転送装置は、プロトコルの第３レイヤの情報である宛先アドレスをデータグラムから読み出して経路検索を行い、転送先を決定する。
【０００３】
加えて、プロトコルの第４〜第７レイヤの属性情報を用いて転送制御を行うデータグラム転送装置が、以下の特許出願により、本発明者等によって提案されている。
【０００４】
文献１；特願平２０００−３８１４３６
文献２；特願平２０００−３８１４３７
文献３；特願平２００１−５６９８９
これらの文献１〜３で開示されたデータグラム転送装置では、プロトコルの第３レイヤの情報を用いて転送先の経路を検索するとともに、第４〜第７レイヤの属性情報を用いて転送制御（転送の優先順位の決定や、データグラムの監視等）が行われる。
【０００５】
図１７は、上記文献１で開示されたデータグラム転送装置の構成を示すブロック図である。
【０００６】
このデータグラム転送装置１７００では、まず、ルール検索部１７１０内の検索機能部１７１１−１〜１７１１−ｎが、それぞれ、第３レイヤの宛先アドレスや第４〜第７レイヤの属性情報等を用いて、検索処理を実行する。各検索機能部１７１１−１〜１７１１−ｎは多数のノードを備えており、検索によっていずれかのノードが特定される。検索機能部１７１１−１〜１７１１−ｎの各ノードに対応させて、転送制御ルール（転送経路、優先順位、監視の実行／不実行等）が登録されている。各ノードに対応する転送制御ルールは、１個の場合もあるし、複数個の場合もある。続いて、ルール決定部１７１２が、各検索機能部１７１１−１〜１７１１−ｎで特定された転送制御ルールの論理積を演算するなどして、実行される転送制御ルールを選択する。そして、転送制御実行部１７２０が、選択された転送制御ルールに対応する転送制御を、実行する。
【０００７】
検索機能部１７１１−１〜１７１１−ｎの検索方法は、特に限定されない。既存のデータグラム転送装置では、経路検索の技報として二分木検索法や２Ｐ　検索法を使用するのが一般的である。
【０００８】
【発明が解決しようとする課題】
ノードと転送制御ルールとの対応関係は、通常、テーブル等の形で記憶される（図１７では示さず）。検索機能部１７１１−１〜１７１１−ｎで特定されたノードに対応する転送制御ルールをこのテーブル等から読み出すことによって、転送制御ルールが特定される。したがって、転送制御内容を変更する場合、このテーブル等を書き換える必要がある。また、変更後に、以前の転送制御内容に戻したい場合には、このテーブル等を再度書き換える必要がある。
【０００９】
転送制御の変更の一例について、図１８（Ａ）〜（Ｃ）を用いて説明する。
【００１０】
図１８（Ａ）の例では、「宛先アドレスが‘１２３．１２３．１．２３’の通信パケットを、ポート番号に拘わらず全て廃棄する」という転送制御ルールを実行する。この転送制御ルールには、ルール１というルール名が付されている。そして、該当する検索機能部内の全ノードのうち、宛先アドレス‘１２３．１２３．１．２３’の通信パケットに係る検索で到達し得るノードには、すべて、ルール１が登録される。この対応関係は、上述のテーブル等に格納される。
【００１１】
次に、このような転送制御ルールを変更する場合を考える。図１８（Ｂ）は、「宛先アドレスが‘１２３．１２３．１．２３’且つポート番号が２３の通信パケットを通過させる」という転送制御ルールを追加する場合の例である。宛先アドレス‘１２３．１２３．１．２３’の通信パケットに係る検索で到達し得るノードのうち、ポート２３を使用する通信パケットが到達し得るノードには、このルール２が登録される。また、宛先アドレス‘１２３．１２３．１．２３’の通信パケットに係る検索で到達し得るノードのうち、ポート２３を使用しない通信パケットが到達し得るノードには、ルール１が登録される。すなわち、単にルール２を追加するだけでなく、ルール１を変更しなければならない（図１８（Ｂ）参照）。対応付けの変更は、上述のテーブル等を書き換えることによって、行われる。
【００１２】
続いて、この転送制御ルールを、図１８（Ａ）に示したような転送制御ルールに戻す場合を考える。この場合、図１８（Ｃ）に示したように単にルール２を削除するだけでは、転送制御ルールを元に戻すことはできない。なぜなら、図１８（Ａ）の転送制御ルールから図１８（Ｂ）の転送制御ルールに変更する際に、ルール２を追加するだけでなく、ルール１も変更しているからである。すなわち、ルール２を削除するためには、他のルール（ここではルール１のみ）をも再検討して、変更の仕方を決定する必要がある。この例では、ルール２に対応付けられていたノードから単にルール２を削除するだけではなく、ルール１を新たに対応付けなければ、図１８（Ａ）の状態に戻すことはできない。図１８は簡略化した例であるが、一般には、１個のノードに多数のルールが対応付けられる場合も多く、また、ノードの数も非常に多数の場合が多い。したがって、転送制御ルールを元に戻すための作業は、最初に転送制御ルールを変更する場合と同様の、多大な労力を要するのが一般的である。
【００１３】
このような理由から、ルールの再検討を伴わずに転送制御を元の状態に戻すことができるデータグラム転送装置が嘱望されていた。
【００１４】
【課題を解決するための手段】
この発明に係るデータグラム転送装置は、受信されたデータグラムの宛先アドレスまたは非宛先アドレスに対応するエントリを検索する１個または複数個のルール検索手段と、エントリ毎に１種類または複数種類の転送制御ルールを記憶する現行ルール管理テーブルと、ルール検索手段の各検索結果に対応する転送制御ルールを現行ルール管理テーブルからそれぞれ入力して実行する転送制御ルールを決定するルール決定部と、ルール決定部で決定された転送制御ルールを実行する転送制御実行部と、現行ルール管理テーブル内の転送制御ルールが書き換えられる度に現行ルール管理テーブルの書き換え前の状態を記憶する過去ルール管理テーブルとを備える。
【００１５】
かかる構成によれば、現行ルール管理テーブル内の転送制御ルールが書き換えられる度にこの現行ルール管理テーブルの書き換え前の状態を過去ルール管理テーブルに記憶させるので、ルールの再検討を伴わずに簡単な操作のみで転送制御を元の状態に戻すことができる。
【００１６】
【発明の実施の形態】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、本発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎない。
【００１７】
第１の実施の形態
まず、この発明の第１の実施の形態に係るデータグラム転送装置について、図１〜図５を用いて説明する。
【００１８】
図１は、この実施の形態に係るデータグラム転送装置１００の要部機能構成を概念的に示すブロック図である。
【００１９】
図１に示したように、この実施の形態に係るデータグラム転送装置１００は、転送制御ルール検索部１１０と、転送制御実行部１２０とを備えている。また、転送制御ルール検索部１１０は、ｎ個の検索機能部１１１−１〜１１１−ｎと、決定機能部１１２と、過去ルール管理テーブル１１３とを備えている。
【００２０】
検索機能部１１１−１〜１１１−ｎは、並列または直列に検索処理を行うが、図１では並列処理の例を示す。これらの検索機能部１１１−１〜１１１−ｎの構成は、上記文献１で開示されたデータグラム転送装置と同様である。最初の検索機能部１１１−１は、受信データグラムから宛先アドレスを抽出し、この宛先アドレスに対応する転送制御ルールを特定するための検索を行う。また、残りの検索機能部１１１−２〜１１１−ｎは、受信データグラムから宛先アドレス以外の所定の属性情報を抽出し、この属性情報に対応する転送制御ルールを特定するための検索を行う。
【００２１】
決定機能部１１２は、上記文献１で開示されたデータグラム転送装置と同様、検索機能部１１１−１〜１１１−ｎの各検索によってそれぞれ特定された転送制御ルールから、すべての検索結果に含まれる転送制御ルールを選別する。また、決定機能部１１２は、現行ルール管理テーブル１１２ａを備えている。現行ルール管理テーブル１１２ａは、検索機能部１１１−１〜１１１−ｎ内の各ノード毎に、転送制御ルールを記憶する。
【００２２】
過去ルール管理テーブル１１３は、転送制御ルールが変更されるときに、過去の転送制御ルールに関する情報を記憶する（詳細は後述）。また、この過去ルール管理テーブル１１３は、既に記憶された過去ルールを削除することもできる。過去ルール管理テーブル１１３の詳細は、後述する。
【００２３】
転送制御実行部１２０は、上記文献１で開示されたデータグラム転送装置と同様、決定機能部１１２で選別された転送制御ルールに従って、アクション（転送制御）、すなわち転送経路の検索・設定および転送、転送の拒否、優先順位の決定、データグラムの監視を実行する。
【００２４】
図２（Ａ）は、過去ルール管理テーブル１１３に記憶されるデータの構造を示す概念図である。
【００２５】
図２（Ａ）に示したように、過去ルール管理テーブル１１３には、過去ルール情報２１０，２２０が格納されている。過去ルール情報２１０は、ルール２１１，２１２と、ルール名２１３とを含む。同様に、過去ルール情報２２０は、ルール２２１，２２２と、ルール名２２３とを含む。
【００２６】
ルール２１１，２１２，２２１，２２２は、それぞれ、他のルールやルール名との関連づけを規定するための、ポインタを備えている。ここで、ポインタとは、関連づけされる相手を特定するための情報、例えばアドレス、インデックスなどである。図２（Ａ）では、ポインタによって関連づけられた状態を、チェーンＣ１〜Ｃ１１で概念的に示している。
【００２７】
チェーンＣ１，Ｃ２は、ルール２１１，２１２およびルール名２１３が１個の過去ルール情報２１０を構成することを規定している。同様に、チェーンＣ５，Ｃ６は、ルール２２１，２２２およびルール名２２３が１個の過去ルール情報２２０を構成することを規定している。また、チェーンＣ９，Ｃ７，Ｃ３は、ルール２２１，２１１がエントリｅ１の過去のルールに関する情報であることを規定している。図２（Ａ）の例では、ルール２２１はエントリｅ１の直前ルールを規定し、ルール２１１はエントリｅ１の２回前のルールを規定している。同様に、チェーンＣ１０，Ｃ４はルール２１２がエントリｅ２の過去のルールに関する情報であることを規定し、チェーンＣ１１，Ｃ８はルール２２２がエントリｅ３の過去のルールに関する情報であることを規定している。ここで、「エントリ」とは、検索機能部１１１−１〜１１１−ｎ内に設けられた各ノードの識別子情報を示す。例えば、宛先アドレス‘１２３．１２３．１．２３’且つポート番号２３の通信パケットがたどり着くノードには、「宛先アドレス‘１２３．１２３．１．２３’」を示す識別子と「ポート番号２３」を示す識別子とを含む識別子情報が、エントリされている。なお、ルール２０１，２０２，２０３は、それ以前のルールが存在しないことを示す、空情報である。
【００２８】
次に、この実施の形態に係るデータグラム転送装置の転送制御ルール変更動作を説明する。
【００２９】
転送制御ルールを変更するときは、現行ルール管理テーブル１１２ａに格納された転送制御ルールの一部または全部が、新しい転送制御ルールに書き換えられる。この書き換えによって消失する転送制御ルールの情報は、過去ルール管理テーブル１１３に記録される。以下、転送制御ルール３の情報を過去ルール管理テーブル１１３に書き込む動作を例に採り、図２および図３を用いて説明する。
【００３０】
ここで、図２（Ｂ）は、図２（Ａ）の過去ルール管理テーブル１１３に転送制御ルール３が書き込まれた後の状態を示す概念図である。また、図３は、過去ルール管理テーブル１１３に転送制御ルール３を書き込む動作を示すフローチャートである。
【００３１】
まず、転送制御ルール検索部１１０は、転送制御ルールが書き換えられるエントリを、現行ルール管理テーブル１１２ａから検索する（図３のＳ３０１参照）。この検索では、１個または複数個のエントリが、特定される。図２（Ｂ）の例は、この検索によって、エントリｅ１，ｅ２，ｅ３・・・のうちエントリｅ１およびエントリｅ２が特定される場合を示している。
【００３２】
次に、転送制御ルール検索部１１０は、これらのエントリｅ１，ｅ２に対応する転送制御ルールを、過去ルール管理テーブル１１３から検索する（図３のＳ３０２参照）。そして、転送制御ルール検索部１１０は、エントリｅ１，ｅ２に対応する転送制御ルールが過去ルール管理テーブル１１３に記録されているか否かを判断する（図３のＳ３０３参照）。前回またはそれ以前の転送制御変更で転送制御ルールが書き換えられたエントリについては、過去の転送制御ルールが過去ルール管理テーブル１１３に記録されている。一方、転送制御ルールが書き換えられたことがないエントリについては、対応する転送制御ルールが、過去ルール管理テーブル１１３に記録されていない。
【００３３】
ステップＳ３０３で「転送制御ルールが記録されている」と判断された場合、転送制御ルール検索部１１０は、過去ルール管理テーブル１１３に、転送制御ルール３の過去ルール情報２３０を書き込む処理を行う（図３のＳ３０４参照）。この書き込み処理では、まず、転送制御ルール３に対応するルール２３１，２３２が、過去ルール管理テーブル１１３に書き込まれる（図２（Ｂ）参照）。さらに、転送制御ルール検索部１１０は、これらのルール２３１，２３２と他のルール２２１，２２２とを関連づける。図２（Ｂ）に示したように、ルール２３１とルール２２１とはチェーンＣ１４で関連づけられ、ルール２３２とルール２２２とはチェーンＣ１５で関連づけられる。
【００３４】
一方、ステップＳ３０３で「転送制御ルールが記録されていない」と判断された場合、転送制御ルール検索部１１０は、かかるエントリを、過去ルール管理テーブル１１３に新たに登録する（図３のＳ３０５参照）。この登録では、空情報が、新たに書き込まれる。
【００３５】
続いて、転送制御ルール検索部１１０は、ルール２３１，２３２を、エントリｅ１，ｅ２と関連づける（図３のＳ３０６参照）。図２（Ｂ）に示したように、ルール２３１とエントリｅ１とはチェーンＣ１６で関連づけられ、ルール２３２とエントリｅ２とはチェーンＣ１７で関連づけられる。
【００３６】
その後、転送制御ルール検索部１１０は、書き込まれたルール２３１，２３２に、ルール番号すなわち「転送制御ルール３」を付すための処理を行う（図３のＳ３０７参照）。この処理は、ルール名２３３として「転送制御ルール３」を書き込んだ後で、ルール名２３３のポインタ、ルール２３１のポインタおよびルール２３２のポインタを、チェーンＣ１２，Ｃ１３で繋ぐことによって行われる。これによって、これらの情報２３１〜２３３はチェーン化されるので、一括して管理することができる。
【００３７】
最後に、転送制御ルール検索部１１０は、現行ルール管理テーブル１１２ａを書き換える。この書き換えでは、エントリｅ１，ｅ２に対応する転送制御ルールが、転送制御ルール３から新規の転送制御ルールに書き換えられる。
【００３８】
なお、図２および図３の例では、ステップＳ３０１で全てのエントリに対する検索を終了した後でステップＳ３０２以降の処理を実行したが、ステップＳ３０１で１個のエントリが検出される度にステップＳ３０２〜Ｓ３０６の処理を行い、最後にステップＳ３０７を実行することとしてもよい。
【００３９】
このように、この実施の形態では、過去の転送制御ルール１〜３に関する情報２１０，２２０，２３０を、チェーンＣ１〜Ｃ１７でチェーン化された状態で、過去ルール管理テーブル１１３に記録することとした。このため、簡単な操作で、現行ルール管理テーブル１１２ａを以前の状態に戻すことができる。例えば、現行ルール管理テーブル１１２ａを一回前の状態に戻したいときには、転送制御ルール３の過去ルール情報２３０を用いた上書き処理により、現行ルール管理テーブル１１２ａを前回の状態に戻すことができる。ここで、ルール２３１，２３２が転送制御ルール３を示すこと（すなわちルール名２３３に対応すること）は、チェーンＣ１２，Ｃ１３によって認識される。また、転送制御ルール３が上書きされるエントリ（すなわち現行ルール管理テーブル１１２ａの該当記憶領域）は、チェーンＣ１６，Ｃ１７によって特定される。一方、現行ルール管理テーブル１１２ａを二回前の状態に戻したいときには、この現行ルール管理テーブル１１２ａを、まず過去ルール情報２３０を用いて変更し、さらに過去ルール情報２２０を用いて変更すればよい。
【００４０】
次に、過去ルール管理テーブル１１３に記録された情報を削除する処理について説明する。かかる削除処理は、例えば、現行ルール管理テーブル１１２ａを以前の状態に戻した後に行われる。また、それ以外の場合であっても、任意の記録情報のみを削除することができる。以下、図４および図５を用い、転送制御ルール２の過去ルール情報２２０を削除する場合を例に採って説明する。
【００４１】
図４は、過去ルール管理テーブル１１３の状態を示す概念図であり、（Ａ）は転送制御ルール２が削除される前の状態、（Ｂ）は転送制御ルール２が削除された後の状態を示している。また、図５は、過去ルール管理テーブル１１３から転送制御ルール２の情報を削除する動作のフローチャートである。
【００４２】
まず、転送制御ルール検索部１１０は、過去ルール管理テーブル１１３（図４（Ａ）参照）上で、転送制御ルール２のルール名２２３を特定し、さらに、チェーンＣ５をたどることにより、過去ルール情報２２０に属するルール２２１を特定する（図５のＳ５０１参照）。
【００４３】
次に、転送制御ルール検索部１１０は、チェーンＣ１４の接続先をチェックする（図５のＳ５０２参照）。ルール２２１が当該エントリの直前ルールである場合、チェーンＣ１４は、そのエントリにつながっている。一方、ルール２２１が直前ルールでない場合、チェーンＣ１４は、他のルールにつながっている。
【００４４】
続いて、転送制御ルール検索部１１０は、チェーンＣ７の接続先をチェックする（図５のＳ５０３参照）。ルール２２１が当該エントリの最古のルールである場合、チェーンＣ７は、空ルールにつながっている。一方、ルール２２１は最古でない場合、チェーンＣ７は、他のルールにつながっている。
【００４５】
そして、転送制御ルール検索部１１０は、ルール２２１を削除するとともに、チェーンＣ１４の接続先のポインタとチェーンＣ７の接続先のポインタとを新たなチェーンＣ１８で接続する（図５のＳ５０４参照）。
【００４６】
さらに、転送制御ルール検索部１１０は、チェーンＣ６を用いて、過去ルール情報２２０に属する他のルールの有無をチェックする（図５のＳ５０５参照）。他のルールが存在する場合、転送制御ルール検索部１１０は、ステップＳ５０２〜Ｓ５０４の処理を繰り返す。図５の例では、ルール２２２について、ステップＳ５０２〜Ｓ５０４の処理が行われ、新たなチェーンＣ１９が設定される（図４（Ｂ）参照）。一方、他のルールが存在しない場合、転送制御ルール検索部１１０は、処理を終了する。
【００４７】
なお、実際に転送制御を実行するときの動作は、上記文献１で開示されたデータグラム転送装置と同様であるので、説明を省略する。
【００４８】
以上説明したように、この実施の形態に係るデータグラム転送装置は、簡単な処理のみによって転送制御を以前の状態に戻すことができ、転送制御内容を再検討する必要がない。したがって、この実施の形態によれば、データグラム転送装置の管理負担を低減することができる。
【００４９】
第２の実施の形態
次に、この発明の第２の実施の形態に係るデータグラム転送装置について、図６〜図１０を用いて説明する。
【００５０】
この実施の形態に係るデータグラム転送装置の全体構成は、第１の実施の形態（図１参照）と同様である。この実施の形態は、現行ルール管理テーブルおよび過去ルール管理テーブルのデータ構造が、第１の実施の形態と異なる。
【００５１】
図６（Ａ）は、現行ルール管理テーブル６１０および過去ルール管理テーブル６２０のデータ構造を示す概念図である。
【００５２】
図６（Ａ）に示したように、現行ルール管理テーブル６１０には、エントリｅ１，ｅ２，ｅ３，・・・毎に、現行ルール欄６１１−１，６１１−２，６１１−３，・・・とインデックス欄６１２−１，６１２−２，６１２−３，・・・とが設けられる。ここで、インデックスは、過去ルール管理テーブル６２０から、対応する記憶情報を特定するためのデータである。したがって、そのエントリに対応する転送制御ルールが変更されたことがある場合にのみ、インデックスが格納される。図６（Ａ）の例では、エントリｅ１，ｅ２，ｅ３の現行ルールが、転送制御ルール２、１、２にそれぞれ設定されている。また、エントリｅ１に対応するインデックスとしてＡが設定されており、エントリｅ２，ｅ３に対応するインデックスは設定されていない。
【００５３】
また、過去ルール管理テーブル６２０は、過去に変更された転送制御ルールについての情報を格納する。この情報は、インデックス欄６２１−１と、前ルール欄６２２−１と、現行ルール欄６２３−１とを含む。図６（Ａ）の例では、過去に転送制御ルールが変更されたことがあるのはエントリｅ１のみなので、このエントリｅ１に対応する情報のみが記憶されている。
【００５４】
次に、この実施の形態に係るデータグラム転送装置の転送制御ルール変更動作について、図６および図７を用いて説明する。ここで、図６（Ｂ）は、図６（Ａ）の現行ルール管理テーブル６１０および過去ルール管理テーブル６２０が書き換えられた後の状態を示している。また、図７は、転送制御ルール変更動作を説明するためのフローチャートである。
【００５５】
まず、転送制御ルール検索部１１０（図１参照）は、現行ルール管理テーブル６１０の転送制御ルールを書き換える処理を行う（図７のＳ７０１参照）。この処理では、１個または複数個のエントリの、転送制御ルールが書き換えられる。図６（Ｂ）の例は、この検索によって、エントリｅ１の転送制御ルールをルール２からルール３に書き換え、且つ、エントリｅ２の転送制御ルールをルール１からルール３に書き換えた場合を示している。
【００５６】
次に、転送制御ルール検索部１１０は、過去ルール管理テーブル６２０に対して、前ルールおよび現行ルールを、追加する（図７のＳ７０２参照）。該当するエントリに既にインデックスが設定されていた場合（すなわち、過去に転送制御ルールが変更されたことがある場合）には、当該インデックスが、前ルールの欄に書き込まれる。一方、インデックスが設定されていなかった場合には、現行ルール管理テーブル６１０に格納されていた転送制御ルール名が、前ルールの欄に書き込まれる。図６の例では、前ルール欄６２２−２には前ルールとしてインデックスＡが書き込まれ、現行ルール欄６２３−２には現行ルールとしてルール３が書き込まれ、前ルール欄６２２−３には前ルールとしてルール１が書き込まれ、現行ルール欄６２３−３には現行ルールとしてルール３が書き込まれる。
【００５７】
最後に、転送制御ルール検索部１１０は、テーブル６１０，６２０のインデックスを設定する（図７のＳ７０３参照）。図６（Ｂ）の例では、インデックス欄６１２−１，６２１−２にはインデックスＢが書き込まれ、且つ、インデックス欄６１２−２，６２１−３にはインデックスＣが書き込まれる。
【００５８】
なお、図６および図７の例では、ステップＳ７０１で全てのエントリに対する検索を終了した後でステップＳ７０２，Ｓ７０３を実行したが、ステップＳ７０１で１個のエントリが検出される度にステップＳ７０２，Ｓ７０３を行うこととしてもよい。
【００５９】
このように、この実施の形態では、過去の転送制御ルールに関する情報にインデックスを付して、過去ルール管理テーブル６２０に記録することとした。このため、簡単な操作で、現行ルール管理テーブル６１０を以前の状態に戻すことができる。例えば、現行ルール管理テーブル６１０を一回前の状態に戻したいときには、対応するインデックスが付された前ルールを過去ルール管理テーブル６２０から読み出して、現行ルール管理テーブル６１０の該当する欄に上書きすればよい。また、現行ルール管理テーブル６１０を二回前の状態に戻したいときには、上述のようにして１回前の状態に戻した後、さらに、過去ルール管理テーブル６２０の前ルール欄に書き込まれたインデックスに対応する前ルールを過去ルール管理テーブル６２０から読み出して、現行ルール管理テーブル６１０の該当する欄に上書きすればよい。
【００６０】
次に、ルール管理テーブル６１０，６２０に記録された情報を削除する処理について、図８〜図１０を用いて説明する。ここで、図８は、ルール管理テーブル６１０，６２０の状態を示す概念図であり、（Ａ）は削除前の状態、（Ｂ）は削除後の状態を示している。図８は、転送制御ルール２が削除される場合の例を示している。また、図９および図１０は、かかる削除動作のフローチャートである。
【００６１】
まず、転送制御ルール検索部１１０は、過去ルール管理テーブル６２０の現行ルール欄を検索して、削除したい転送制御ルール（図８の例では転送制御ルール２）を探し出す（図９のＳ９０１参照）。次に、転送制御ルール検索部１１０は、この検索によって得られた転送制御ルールに対応するインデックスを読み出す（図９のＳ９０２参照）。そして、転送制御ルール検索部１１０は、かかるインデックスと同じインデックスを、現行ルール管理テーブル６１０から検索する（図９のＳ９０３参照）。
【００６２】
ここで、かかるインデックスが現行ルール管理テーブル６１０に設定されていなかった場合、転送制御ルール検索部１１０は、ステップＳ９２０にジャンプする。一方、かかるインデックスが現行ルール管理テーブル６１０に設定されていた場合には、転送制御ルール検索部１１０が、現行ルール管理テーブル６１０を再構成するためのサブルーチンを実行する（図９のＳ９１０参照）。
【００６３】
このサブルーチンＳ９１０では、まず、現行ルール管理テーブル６１０から、削除対象の転送制御ルールが、削除される（図１０（Ａ）のＳ９１１参照）。次に、転送制御ルール検索部１１０は、削除した転送制御ルールに対応する前ルールを過去ルール管理テーブル６２０から読み出し、その前ルールがインデックス値であるのかルール名であるのかを判断する（図１０（Ａ）のＳ９１２参照）。そして、かかる前ルールがルール名である場合は、そのルール名を、ステップＳ９１１で削除した転送制御ルール欄に書き込む（図１０（Ａ）のＳ９１４参照）。一方、ステップＳ９１２でかかる前ルールがインデックス値であると判断された場合、転送制御ルール検索部１１０は、過去ルール管理テーブル６２０のインデックス欄からそのインデックスを検索し（図１０（Ａ）のＳ９１３参照）、検索されたインデックスに対応する現行ルール欄のルール名を、ステップＳ９１１で削除した転送制御ルール欄に書き込む（図１０（Ａ）のＳ９１４参照）。これにより、現行ルール管理テーブル６１０の再構成が終了し、ステップＳ９２０以降の処理に移る。
【００６４】
ステップＳ９２０では、過去ルール管理テーブル６２０を再構成するためのサブルーチンが実行される。
【００６５】
このサブルーチンＳ９２０では、転送制御ルール検索部１１０は、まず、過去ルール管理テーブル６２０の前ルール欄について、ステップＳ９０２で読み出されたインデックスの検索を行う（図１０（Ｂ）のＳ９２１参照）。そして、かかるインデックスが前ルール欄に設定されている場合（図１０（Ｂ）のＳ９２２参照）、転送制御ルール検索部１１０は、削除したい転送制御ルールに対応する前ルール欄をチェックする（図１０（Ｂ）のＳ９２３参照）。そして、この前ルール欄にインデックスが設定されている場合は、そのインデックスに対応する転送制御ルールを現行ルール欄から読み出して、削除したい転送制御ルールに対応する前ルール欄に書き込んだ後（図１０（Ｂ）のＳ９２４参照）、ステップＳ９２１に戻る。また、ステップＳ９２３で前ルール欄にルール名が設定されていた場合は、削除したい転送制御ルールが設定された現行ルール欄に、当該転送制御ルールの前ルールを上書きし（図１０（Ｂ）のＳ９２５参照）、その後、ステップＳ９２１に戻る。
【００６６】
一方、ステップＳ９２２で当該インデックスが前ルール欄に設定されていないと判断した場合、転送制御ルール検索部１１０は、ステップＳ９０２で読み出されたインデックスを削除する（図１０（Ｂ）のＳ９２６参照）。その後、転送制御ルール検索部１１０は、過去ルール管理テーブル６２０の現行ルール欄全部についての検索が終了したか否かをチェックし（図９のＳ９０４参照）、「終了していない」と判断した場合はステップＳ９０１に戻る。一方、ステップＳ９０４で「終了した」と判断された場合、転送制御ルール検索部１１０は、削除対象である転送制御ルールを削除して（図９のＳ９０５参照）、処理を終了する。
【００６７】
以上説明したように、この実施の形態に係るデータグラム転送装置は、簡単な処理のみによって転送制御を以前の状態に戻すことができ、転送制御内容を再検討する必要がない。したがって、この実施の形態によれば、データグラム転送装置の管理負担を低減することができる。
【００６８】
加えて、この実施の形態に係るデータグラム転送装置によれば、インデックスを用いて過去の転送制御ルールを管理することとしたので、過去ルール管理テーブルのデータ量を小さくすることができ、したがって、小容量のメモリを使用できるので、安価である。
【００６９】
第３の実施の形態
次に、この発明の第３の実施の形態に係るデータグラム転送装置について、図１１〜図１６を用いて説明する。
【００７０】
この実施の形態に係るデータグラム転送装置の全体構成は、第１の実施の形態（図１参照）と同様である。この実施の形態は、現行ルール管理テーブルおよび過去ルール管理テーブルのデータ構造が、第１の実施の形態と異なる。
【００７１】
図１１（Ａ）は、現行ルール管理テーブル１１１０および過去ルール管理テーブル１１２０のデータ構造を示す概念図である。また、図１２は、過去ルール管理テーブル１１２０内に設けられるビットマップの構成図である。
【００７２】
図１１（Ａ）に示したように、現行ルール管理テーブル１１１０には、エントリｅ１，ｅ２，ｅ３，・・・毎に、現行ルール欄１１１１−１，１１１１−２，１１１１−３，・・・とインデックス欄１１１２−１，１１１２−２，１１１２−３，・・・とが格納される。ここで、インデックスは、過去ルール管理テーブル１１２０の、対応する記憶情報を特定するために使用される。したがって、そのエントリに対応する転送制御ルールが変更されたことがある場合にのみ、インデックスが格納される。図１１（Ａ）の例では、エントリｅ１，ｅ２，ｅ３の現行ルールが、転送制御ルール２、１、２にそれぞれ設定されている。また、エントリｅ１に対応するインデックスとしてＡが設定されており、エントリｅ２，ｅ３に対応するインデックスは設定されていない。
【００７３】
また、図１１（Ａ）に示したように、過去ルール管理テーブル１１２０には、ルール欄１１２１−１，１１２１−２と、ビットマップ１１２２−１，１１２２−２と過去ルール情報１１２３−１，１１２３−２が設けられている。ここで、ルール名欄１１２１−１，１１２１−２，１１２１−３，・・・には、転送制御ルール１，２，３，・・・が、記録されている。また、ビットマップ１１２２−１，１１２２−２，１１２３−３，・・・には、対応する転送制御ルールの分岐情報が記録される。
【００７４】
図１２は、ビットマップ１１２２−１のデータ構造を示す概念図である。図１２に示したように、ビットマップ１１２２−１の各ビットは、他の転送制御ルールのルール名（ここでは転送制御ルール１以外のルール名）に対応している。初期状態では、各ビットは全て‘０’に設定される。そして、転送制御ルール１が他の転送制御ルールに書き換えられたとき、当該他の転送制御ルールに対応するビットが‘１’に変更される。図１２の例では、転送制御ルール２に対応するビットは‘１’である。これは、過去のルール変更で、現行ルール欄１１１１−１，１１１１−２，１１１１−３，・・・のいずれかが、転送制御ルール１から転送制御ルール２に書き換えられたことを意味している。なお、これらのビットマップは、転送制御ルールを削除するときに使用される（詳細は後述）。
【００７５】
過去ルール情報１１２３−１，１１２３−２，１１２３−３，・・・には、該当する転送制御ルールの現在のインデックスと、過去のインデックスおよび転送制御ルール名とが、記録される。図１１（Ａ）の例では、過去ルール情報１１２３−１から、現行ルール管理テーブル１１１０のルール欄のいずれかに転送制御ルール１が記録されていることと、そのルール名欄に対応するインデックスが空欄であることとが解る。また、過去ルール情報１１２３−２から、現行ルール管理テーブル１１１０のルール名欄のいずれかに転送制御ルール２が記録されていること、そのルール名欄に対応するインデックスはＡであること、および、そのルール名欄およびインデックス欄が以前にルール１および空欄であったこととが解る。
【００７６】
次に、この実施の形態に係るデータグラム転送装置の転送制御ルール変更動作について、図１１〜図１３を用いて説明する。ここで、図１１（Ｂ）は、図１１（Ａ）の現行ルール管理テーブル１１１０および過去ルール管理テーブル１１２０が書き換えられた後の状態を示している。また、図１３は、転送制御ルール変更動作を説明するためのフローチャートである。
【００７７】
まず、転送制御ルール検索部１１０は、このルール変更によって追加される転送制御ルールが過去ルール管理テーブル１１２０に登録されているか否かをチェックし（図１３のＳ１３０１参照）、登録されていない場合は新規登録する（図１３のＳ１３０２参照）。図１１の例では、追加される転送制御ルール３は過去ルール管理テーブル１１２０に登録されていないので（図１１（Ａ）参照）、この転送制御ルール３を新たに過去ルール管理テーブル１１２０に登録する（図１１（Ｂ）参照）。
【００７８】
続いて、転送制御ルール検索部１１０は、過去ルール管理テーブル１１２０に、変更前の情報を書き込む（図１３のＳ１３０３参照）。図１１の例では、エントリｅ１に対応する転送制御ルールが転送制御ルール２から転送制御ルール３に書き換えられるので、過去ルール管理テーブル１１２０の「転送制御ルール３」に対応させて、旧ルール「転送制御ルール２」が登録され、さらに旧インデックスとして「Ａ」が登録される。加えて、過去ルール管理テーブル１１２０に現行インデックス「Ｂ」を登録する（図１１（Ｂ）参照）。
【００７９】
次に、転送制御ルール検索部１１０は、過去ルール管理テーブル１１２０に格納された、書き換え前の転送制御ルールに対応するビットマップを書き換える（図１３のＳ１３０４参照）。図１１の例では、転送制御ルール２に対応するビットマップにおいて、転送制御ルール３のビットが「１」に設定される（図１２参照）。
【００８０】
そして、現行ルール管理テーブル１１１０に、新たな転送制御ルール３とインデックスＢとを書き込む（図１３のＳ１３０５参照）。
【００８１】
その後、転送制御ルール検索部１１０は、他のルール変更の有無をチェックする（図１３のＳ１３０６参照）。そして、他のルール変更がある場合には、ステップＳ１３０３に戻る。図１１の例では、転送制御ルール１１１１−２が転送制御ルール１から転送制御ルール３に書き換えられ、インデックス１１１２−２が空欄からＣに変更される。そして、過去ルール管理テーブル１１２０に現行インデックスＣと、過去ルールの情報（転送制御ルール１および空欄であった旨の情報）とが、書き込まれる。
【００８２】
一方、ステップＳ１３０６で他のルール変更がないと判断された場合は、変更処理を終了する。
【００８３】
次に、ルール管理テーブル１１１０，１１２０に記録された情報を削除する処理について、転送制御ルール２を削除する場合を例に採り、図１４〜図１６を用いて説明する。ここで、図１４は、ルール管理テーブル１１１０，１１２０の状態を示す概念図であり、（Ａ）は削除前の状態、（Ｂ）は（Ａ）の状態から転送制御ルール２を削除した後の状態を示している。また、図１５および図１６は、かかる削除動作のフローチャートである。
【００８４】
まず、削除対象の転送制御ルール（ここでは転送制御ルール２）を、過去ルール管理テーブル１１２０のルール名欄１１２１−１，１１２１−２，・・・から検索する（図１５のＳ１５０１参照）。
【００８５】
次に、検索で得られたルール名欄（ここでは欄１１２１−２）に対応する過去ルール情報欄（ここでは欄１１２３−２）から、過去のインデックスを読み出す。そして、読み出されたインデックスと同じインデックスを、現行ルール管理テーブル１１１０のインデックス欄１１１２−１，１１１２−２，・・・から検索する（図１５のＳ１５０２参照）。
【００８６】
さらに、かかるインデックスがインデックス欄１１１２−１，１１１２−２，・・・に記録されていた場合には（図１５のＳ１５０３参照）、過去ルール管理テーブル１１２０の記録情報を用いて、そのインデックスと当該インデックスに対応する転送制御ルールとを、前回のインデックスおよび転送制御ルールに戻す（図１５のＳ１５０４参照）。
【００８７】
その後、現行ルール管理テーブル１１１０内の全てのルール名欄１１１２−１，１１１２−２，・・・に対する検索が終了したか否かを判断し、終了していない場合はステップＳ１５０２〜Ｓ１５０４を繰り返す（図１５のＳ１５０５参照）。
【００８８】
ステップＳ１５０５で「終了した」と判断された場合は、過去ルール管理テーブル１１２０を再構成するサブルーチン（図１５のＳ１５１０および図１６参照）を実行する。このサブルーチンでは、まず、削除対象の転送制御ルールに対応するビットマップ（ここでは欄１１２２−２に記録されたビットマップ）から、「１」になっているビットを探す（図１６のＳ１５１１）。そして、この検索結果を用いて、削除対象の転送制御ルールを探す（図１６のＳ１５１２参照）。図１４の例では、ビットマップ１１２２−２のビットのうち「１」になっているのは転送制御ルール３のビットなので、転送制御ルール３に対応する過去ルール情報欄１１２３−３から、転送制御ルール２を探す。そして、削除対象の転送制御ルールが存在する場合は、その転送制御ルールを、その前の転送制御ルールに書き換える（図１６のＳ１５１３，Ｓ１５１４参照）。図１４の例では、削除ルール２とインデックスＡとの組み合わせが過去ルール情報欄１１２３−３に記録されており、さらに、過去ルール情報欄１１２３−２の転送制御ルール１とインデックス無しとの組み合わせにインデックスＡが付されている。したがって、削除ルール２およびインデックスＡは、転送制御ルール１およびインデックス無しに書き換えられる。過去ルール情報欄１１２３−３に転送制御ルール２が複数個記録されている場合は、同様の書き換え処理を繰り返す（図１６のＳ１５１５参照）。このサブルーチンＳ１５１０は、Ｓ１５０６における「１」のビットに対応する転送制御ルール全てについて行われる。
【００８９】
その後、削除対象の転送制御ルール（ここでは転送制御ルール２）を過去ルール管理テーブル１１２０から削除し（図１５のＳ１５０６参照）、さらに、現行ルール管理テーブル１１１０からも削除して（図１５のＳ１５０７参照）、処理を終了する。
【００９０】
以上説明したように、この実施の形態に係るデータグラム転送装置は、上述の第１、第２の実施の形態に係るデータグラム転送装置と同様、簡単な処理のみによって転送制御を以前の状態に戻すことができ、転送制御内容を再検討する必要がない。したがって、この実施の形態によれば、データグラム転送装置の管理負担を低減することができる。
【００９１】
加えて、この実施の形態に係るデータグラム転送装置によれば、上述の第２の実施の形態に係るデータグラム転送装置と同様、インデックスを用いて過去の転送制御ルールを管理することとしたので、過去ルール管理テーブルのデータ量を小さくすることができ、したがって、小容量のメモリを使用できるので、安価である。
【００９２】
さらに、この実施の形態に係るデータグラム転送装置は、ビットマップを用いて過去の変更履歴を管理することとしたので、第２の実施の形態に係るデータグラム転送装置よりも、変更処理および削除処理を行うときのメモリへのアクセス回数が少なくなり、したがって処理時間を短縮することができる。
【００９３】
【発明の効果】
以上詳細に説明したように、本発明によれば、ルールの再検討を伴わずに転送制御を元の状態に戻し、且つ、所望の過去ルールを削除できる、データグラム転送装置を提供することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態に係るデータグラム転送装置の全体構成を概略的に示すブロック図である。
【図２】第１の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するための概念図である。
【図３】第１の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するためのフローチャートである。
【図４】第１の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するための概念図である。
【図５】第１の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するためのフローチャートである。
【図６】第２の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するための概念図である。
【図７】第２の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するためのフローチャートである。
【図８】第２の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するための概念図である。
【図９】第２の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するためのフローチャートである。
【図１０】第２の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するためのフローチャートである。
【図１１】第３の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するための概念図である。
【図１２】第３の実施の形態に係るデータグラム転送装置のビットマップ構成を説明するための概念図である。
【図１３】第３の実施の形態に係るデータグラム転送装置の転送制御ルール変更処理を説明するためのフローチャートである。
【図１４】第３の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するための概念図である。
【図１５】第３の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するためのフローチャートである。
【図１６】第３の実施の形態に係るデータグラム転送装置の転送制御ルール削除処理を説明するためのフローチャートである。
【図１７】従来のデータグラム転送装置の全体構成を概略的に示すブロック図である。
【図１８】従来のデータグラム転送装置の動作を説明するための表である。
【符号の説明】
１００　データグラム転送装置
１１０　転送制御ルール検索部
１１１−１〜１１１−ｎ　検索機能部
１１２　決定機能部
１１２ａ　現行ルール管理テーブル
１１３　過去ルール管理テーブル
１２０　転送制御実行部
【図１】
2004064349.tif 000003
【図２】
2004064349.tif 000004
【図３】
2004064349.tif 000005
【図４】
2004064349.tif 000006
【図５】
2004064349.tif 000007
【図６】
2004064349.tif 000008
【図７】
2004064349.tif 000009
【図８】
2004064349.tif 000010
【図９】
2004064349.tif 000011
【図１０】
2004064349.tif 000012
【図１１】
2004064349.tif 000013
【図１２】
2004064349.tif 000014
【図１３】
2004064349.tif 000015
【図１４】
2004064349.tif 000016
【図１５】
2004064349.tif 000017
【図１６】
2004064349.tif 000018
【図１７】
2004064349.tif 000019
【図１８】
2004064349.tif 000020