(57)【要約】【課題】移動端末間で通信されるＩＰパケットの経路選択モードを多様化したパケット通信方法およびノード装置を提供する。【解決手段】宛先アドレスに対応してルーティング情報を定義した第１メモリ２４と、送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した第２メモリ２５と、第２メモリに定義されたヘッダ処理規則に従って受信パケットを送信パケットに変換し、送信パケットを第１メモリに定義されたルーティング情報に従った出力ポートに送出するためのルーティング制御装置５０とを有するノード装置。【選択図】図１
2007068225.tif 000002
【特許請求の範囲】
【請求項１】
ホームエージェント装置および他のノード装置とネットワークを介して接続されるノード装置であって、
上記ホームエージェント装置から、上記他のノード装置が該ノード装置に送信したＩＰパケットを含むカプセル化されたパケットを受信する入力部と、
上記カプセル化されたパケットに含まれるＩＰアドレスを送信元アドレスとして、上記他のノード装置に制御パケットを送信する出力部とを有し、
上記制御パケットによって、上記他のノード装置に、後続パケットの送信経路を上記ホームエージェントを経由する第１経路から該ノード装置を宛先とする第２経路に切替えることを指示することを特徴とするノード装置。
【請求項２】
移動端末である第１の端末の位置情報を管理するホームエージェント装置を含むネットワークに接続されたノード装置であって、
上記ホームエージェント装置から、第２の端末が上記第１の端末に送信したＩＰパケットを含むカプセル化された第１のパケットを受信する入力部と、
上記第１の端末が上記第２の端末に送信したＩＰパケットを含むカプセル化された第２のパケットを上記ホームエージェント装置に送信する出力部とを有することを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信網におけるノード装置およびパケット通信方法に関し、更に詳しくは、移動端末と結合されるパケット通信網におけるノード装置およびパケット通信方法に関する。
【背景技術】
【０００２】
近年、ＷＷＷ(World Wide Web)等のアプリケーションの登場により、インターネットプロトコル（Internet Protocol:ＩＰ）をベースとしたパケット通信網におけるトラフィックが増大している。インターネットでは、網間を接続するノード装置が、ＩＰルーティングプロトコルに基づいて更新されるルーティングテーブルを具備し、受信パケットのヘッダに含まれる宛先ＩＰアドレスに基いて上記ルーティングテーブルを参照することによって、各受信パケットの出力方路を決定している。
【０００３】
然るに、インターネットは、従来、移動端末に対するサポート機能が不充分であったため、専ら固定端末間通信に適用されてきた。移動端末が他の固定端末または移動端末との間でＩＰパケットを交信するためには、例えば、ＰＰＰ（Point to Point Protocol）等のデータリンク層プロトコルによって、移動端末とネットワーク側の固定サーバ（例えば、ＰＰＰサーバ）との間に予めコネクションを確立しておき、上記固定サーバをルータとして動作させる必要がある。
上記方式は、ＩＰパケットの交信に先だって移動端末が固定サーバに接続されていることが前提となっているため、移動端末が発側となって他の端末との通信を開始する場合には問題はない。しかしながら、移動端末を着側端末として通信を開始しようとしても、着側端末が固定サーバに接続されていないために、移動端末に対してＩＰパケットを交換できない。すなわち、上記従来方式には、通常の電話通信のように、通信相手となる移動端末に呼び出し（ページング）をかけてから通信を開始する機能がサポートされていない。
【０００４】
通常の電話システムと同様に移動端末を呼び出し、移動端末へのＩＰパケットの交換をサポートするための網アーキテクチャとして、ＩＴＵのＩＭＴ−２０００を基本とした様々な提案が検討中で、その１つとして、ETSI:「GSM 03.60  Stage2 Service Description of the General Packet Radio Service (ＧＰＲＳ)」がある。
ＧＰＲＳ方式に基づくパケット交換網は、通常の電話交換システムと同様に、加入者交換機と関門（ゲートウェイ）交換機とからなり、電話器からの呼制御と略同様の信号手順で発側端末（固定または移動端末）から着側移動端末を呼び出した後、発側移動端末から着側移動端末に向けてＩＰパケットを送信する。
【０００５】
発側端末と着側端末が共に移動端末の場合、ＩＰパケットは、発信者（発側移動端末）が位置するビジタ加入者交換機（発側ノード）を介して、発信者の本拠地（ホーム）にある関門交換機（発側ホームエージェントノード）に送られる。この時、ビジタ加入者交換機（発側ノード）は、発側移動端末から受信したＩＰパケットに新たなヘッダ（カプセル化ヘッダ）を付し、発信者のホーム関門交換機に対して、トンネリング方式で受信パケットを送信する。
発信者ホーム関門交換機は、受信パケットからカプセル化ヘッダを除去（デカプセル化）し、元のＩＰパケットのヘッダ部にある宛先ＩＰアドレスに基いて、受信者（着側移動端末）のホーム関門交換機（着側ホームエージェントノード）を特定する。上記発信者ホーム関門交換機も、受信ＩＰパケットに新たなヘッダ（カプセル化ヘッダ）を付し、受信者のホーム関門交換機に対して、トンネリング方式で受信パケットを送信する。
【０００６】
受信者のホーム関門交換機は、受信パケットをデカプセル化し、元のＩＰパケットのヘッダ部にある宛先ＩＰアドレスが示す着側移動端末のホームＩＰアドレスをキーにして、着側移動端末の現在位置が登録されているホームロケーション・レジスタを参照する。これによって、着側移動端末が現在位置しているビジタ加入者交換機（着側ノード）が特定される。着側移動端末に通信可能なビジタ加入者交換機が判明すると、受信者ホーム関門交換機は、上記ＩＰパケットを再びカプセル化し、受信者のビジタ加入者交換機に対してトンネリング方式で受信パケットを送信する。受信者のビジタ加入者交換機は、上記受信パケットをデカプセル化して元のＩＰパケットを復元し、これを着側移動端末が位置する無線基地局の接続ポートに転送する。
【０００７】
ＩＰパケットをカプセル化して送信するノードと、受信したカプセル化パケットをデカプセル化して元のＩＰパケットを復元するノードとの間の通信区間は、一般に「トンネル」と呼ばれている。上述したＧＰＲＳ方式による移動端末間パケット通信の例では、発信者のビジタ加入者交換機とホーム関門交換機間、発信者ホーム関門交換機と受信者のホーム関門交換機間、受信者のホーム関門交換機とビジタ加入者交換機間の合計３本のトンネルが形成されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記従来の移動端末間のパケット通信では、発側移動端末から着側移動端末への送信ＩＰパケットの転送過程で３回のトンネリング通信を必要としており、各トンネルの両端に位置したノード装置（加入者交換機または関門交換機）で受信パケットのカプセル化とデカプセル化が繰り返されるため、ＩＰパケットの転送遅延が大きくなるという問題がある。この問題は、着側移動端末から発側移動端末への送信パケットの転送過程でも同様に発生する。
【０００９】
本発明の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、パケットの転送遅延を減少させることにある。
本発明の他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、少ないトンネリング通信回数で受信パケットを宛先端末に転送できるノード装置およびパケット通信方法を提供することにある。
【００１０】
上述した従来のＧＰＲＳ方式の移動端末間パケット通信では、移動端末からの受信パケットを各移動端末の現在位置を管理している発側および着側のホームエージェントノード（ホーム関門交換機）を経由して、着側ノード（着側ビジタ加入者交換機）に転送にしている。上記ＧＰＲＳ方式で形成される３本のトンネルのうち、重要なトンネルは、着側のホームエージェントノードと着側ノードとの間に形成される最後のトンネルであり、発側ノードから発側ホームエージェントノードへのトンネルを省略し、発側ノードから着側ホームエージェントノードに直接的にトンネリングしても差し支えない。
然るに、従来技術において、パケットを着側のホームエージェントノード経由で転送にしている理由は、パケット通信中の着側端末が移動して着側ノードが切り替わった場合でも、着側ホームエージェントノードから新たな着側ノードに受信パケットを適切に転送できるようにするためであり、通信中の着側端末の移動範囲が大きいことが前提にある。
【００１１】
本発明の他の目的は、移動端末の移動範囲が比較的小さく、通信中に着側ノードの切り替えがほとんど発生しない端末間通信において、適切なルーティングモードを選択できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、ホームエージェントノードに無関係に最適なルートで受信パケットを転送できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするＩＰパケット通信において、ＩＰパケットの送信元アドレスと宛先アドレスとの組合せに応じて、ルーティングモードを選択的に指定できるノード装置およびパケット通信方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のノード装置は、パケットの宛先アドレスに対応してルーティング情報を定義した複数のエントリからなる第１メモリ（ルーティングレジスタ）と、パケットの送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した複数のエントリからなる第２メモリ（ルートポリシーレジスタ）と、上記第２メモリに定義されたヘッダ処理規則に従って受信パケットを送信パケットに変換し、該送信パケットを上記第１メモリに定義されたルーティング情報に従った出力ポートに送出するための制御装置とを有することを特徴とする。
【００１３】
上記第２メモリの各エントリは、ＩＰパケットのヘッダに含まれる送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義しており、各ヘッダ処理規則は、トンネリング通信用の送信元アドレスと宛先アドレスの決定規則またはアドレス値を示し、上記制御装置は、受信したＩＰパケット、または、カプセル化された受信パケットをデカプセル化して得られたＩＰパケットの送信元アドレスと宛先アドレスに基いて、上記第２メモリを参照し、受信パケットから送信パケットへの変換処理を行う。
更に具体的に言うと、上記第２メモリは、例えば、トンネリング通信用の送信元アドレスとして、該エントリに定義されたトンネリング通信用の宛先アドレスに基いて前記第１メモリから検索されたＩＰアドレスの適用を指示するアドレス決定規則（“ＳＥＬＦ”）を含む。他の例として、上記第２メモリは、トンネリング通信用の宛先アドレスとして、該エントリに定義されたＩＰヘッダの宛先アドレスの適用を指示するアドレス決定規則（“ＤＵＰ”）、あるいは、トンネリング通信用の宛先アドレスおよび送信元アドレスの削除を指示するアドレス決定規則（“ＮＯＮＥ”）を含む。
本発明の１実施例によれば、上記第２メモリの各エントリは、受信したカプセル化パケットの送信元アドレスに対して、該カプセル化パケットに含まれるＩＰパケットのトンネリング先の変更を指示する制御パケットの送信要否を示すフラグ情報を含む。
【００１４】
上述した本発明のノード装置の構成は、インターネット網において発側ノード、着側ノードとして機能するルータの他に、ホームエージェントノードにも適用できる。ホームエージェントノードは、上述した第１、第２メモリの他に、パケットの宛先アドレスと着側ノードアドレスとの対応関係を記憶した第３メモリ（ホームロケーション・レジスタ）を備え、上記第２メモリのエントリの１つが、例えば、トンネリング通信用の宛先アドレスとして、該エントリに定義されたＩＰヘッダの宛先アドレスに基いて上記第３メモリから検索された着側ノードアドレスの適用を指示し、トンネリング通信用の送信元アドレスとして、受信したカプセル化パケットの送信元アドレスの適用を指示するアドレス決定規則（“ＣＮＶ”／“ＫＥＥＰ”）を含む。
【００１５】
本発明のノード装置は、更に具体的に述べると、それぞれ入力ポートと出力ポートとを有する複数のインタフェース装置と、上記各インタフェース装置に結合されたルーティング制御装置とからなり、上記ルーティング制御装置が、上記各インタフェース装置から受信したパケットを蓄積するためのバッファメモリと、パケットの宛先アドレスに対応してルーティング情報を定義した複数のエントリからなる第１メモリと、パケットの送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した複数のエントリからなる第２メモリと、上記バッファメモリに蓄積された受信パケットを上記第２メモリに定義されたヘッダ処理規則に従って送信パケットに変換し、該送信パケットを上記第１メモリに定義されたルーティング情報に従って選択されたインタフェース装置に転送するためのプロセッサとを有することを特徴とする。
【００１６】
本発明の好ましい実施例によれば、上記ノード装置は、各インタフェース装置と対応して用意された受信用ディスクリプタテーブルと送信用ディスクリプタテーブルとを備える。この場合、各インタフェース装置は、受信パケットの前記バッファメモリへの格納アドレスを上記受信用ディスクリプタテーブルを介して上記プロセッサに通知し、上記プロセッサが、上記受信用ディスクリプタテーブルを巡回的に参照し、該テーブルに記憶された格納アドレスに基いて前記バッファメモリをアクセスして前記受信パケットから送信パケットへの変換を行い、各送信パケットの格納アドレスを該送信パケットを出力すべきインタフェース装置と対応した送信用ディスクリプタテーブルに書込み、上記各インタフェース装置が、上記送信用ディスクリプタテーブルに記憶された格納アドレスに基いて前記バッファメモリから送信パケットを読み出し、付随する出力ポートに送出する。
【００１７】
本発明の特徴の１つは、それぞれ端末装置とパケットを送受信する発側および着側の各ノード装置が、移動端末の位置情報を管理するホームエージェントノードを経由することなく、直接的にトンネリング通信することによって、上りと下りの２方向のパケットをショートカット経路で送受信するための手段を備えたことにある。
具体的に言うと、本発明は、移動端末の位置情報を管理する少なくとも１つのホームエージェントノードを含むネットワークに接続されるノード装置において、第１端末から移動端末装置である第２端末宛てに送信したＩＰパケットをカプセル化し、該カプセル化されたパケットを上記第２端末の位置情報を管理するホームエージェントノード宛てに送信する第１のトンネリング通信モードと、上記第１端末が上記第２端末宛てに送信した後続のＩＰパケットをカプセル化し、該カプセル化されたパケットを上記ホームエージェントノードと第２端末との間に介在している着側ノード宛てに送信する第２のトンネリング通信モードとを有し、上記第１のトンネリング通信モードから第２のトンネリング通信モードに自動的に切り替えるための手段を備えたことを特徴とする。
【００１８】
また、本発明は、第１端末と通信する第１ノード装置と、移動端末装置である第２端末の位置情報を管理しているホームエージェントノード装置と、上記第２端末と通信する第２ノードとを含む通信ネットワークにおけるパケット通信方法において、（ａ）上記第１ノード装置が、第１端末から受信した第２端末宛てのＩＰパケットに、該第１ノード装置のＩＰアドレスを送信元アドレスとして含むカプセル化パケットに変換して送信するステップと、（ｂ）上記カプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのヘッダを、送信元アドレスとして上記第１ノード装置のＩＰアドレスを含み、宛先アドレスとして上記第２ノード装置のＩＰアドレスを含むカプセル化ヘッダに変換して送信するステップと、（ｃ）上記ホームエージェントノード装置から送信されたカプセル化パケットを受信した上記第２ノード装置が、受信パケットをデカプセル化して得られたＩＰパケットを上記第２端末に送信すると共に、上記受信パケットに送信元アドレスとして含まれる上記第１ノード装置のＩＰアドレスを利用して、上記第１ノード装置宛に、上記第１端末から第２端末宛てのＩＰパケットのルート変更を要求する制御パケットを送信するステップと、（ｄ）上記制御パケットを受信した第１ノード装置が、第１端末から受信した第２端末宛てのＩＰパケットをカプセル化し、上記第２ノード宛てに送信するステップとからなることを特徴とする。
上記パケット通信方法によれば、第１端末から第２端末への送信パケットのルーティングモードが、ホームエージェントノード装置を経由するモードからホームエージェントノードを経由しないショートカットモードに自動的に切り替えられる。この場合、第２ノード装置は、第２端末から送信された第１端末宛てのＩＰパケットを受信した時、受信パケットをカプセル化し、第１ノード装置宛てに送信する。
【００１９】
本発明の特徴の１つは、それぞれ端末装置とパケットを送受信する発側および着側の各ノード装置が、移動端末の位置情報を管理する同一のホームエージェントノードに対してトンネリング通信することによって、上りと下りの２方向のパケットを同一経路で送受信するための手段を備えたことを特徴とする。
具体的に言うと、本発明は、移動端末の位置情報を管理する複数のホームエージェントノードを含むネットワークに接続されたノード装置において、移動端末装置である第１端末の位置情報を管理する第１ホームエージェントノードから、第２端末が上記第１端末宛てに送信したＩＰパケットのカプセル化パケットを受信した時、該カプセル化パケットのヘッダを除去し、得られたＩＰパケットを上記第１端末に転送するための手段と、上記第１端末から上記第２端末に宛てたＩＰパケットを受信した時、該受信パケットをカプセル化し、上記第１ホームエージェントノード宛てに送信するための手段と、第３端末から上記第２端末宛てに送信したＩＰパケットを受信した時、該受信パケットをカプセル化し、上記第２端末の位置情報を管理する第２ホームエージェントノード宛てに送信するための手段とを備えたことを特徴とする。
【００２０】
また、本発明は、第１端末と通信する第１ノード装置と、移動端末装置である第２端末の位置情報を管理しているホームエージェントノード装置と、上記第２端末と通信する第２ノードとを含む通信ネットワークにおけるパケット通信方法において、（ａ）上記第１ノード装置が、第１端末から受信した第２端末宛てのＩＰパケットに、該第１ノード装置のＩＰアドレスを送信元アドレスとして含むカプセル化パケットに変換して送信するステップと、（ｂ）上記カプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのヘッダを、送信元アドレスとして上記第１ノード装置のＩＰアドレスを含み、宛先アドレスとして上記第２ノード装置のＩＰアドレスを含むカプセル化ヘッダに変換して送信するステップと、（ｃ）上記ホームエージェントノード装置から送信されたカプセル化パケットを受信した上記第２ノード装置が、受信パケットをデカプセル化して得られたＩＰパケットを上記第２端末に送信するステップと、（ｄ）上記第２ノード装置が、第２端末から送信された第１端末宛てのＩＰパケットをカプセル化し、上記ホームエージェントノード装置宛てに送信するステップと、（ｅ）上記第２ノード装置から送信されたカプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのカプセル化ヘッダを変換した後、上記第１ノード宛てに送信するステップとを含むことを特徴とする。
【００２１】
本発明の更に他の特徴は、ノード装置が、他のノード装置からカプセル化パケットを受信した時、受信したカプセル化パケットのヘッダ情報に従って、第２メモリへの新たなエントリの追加、または既登録エントリの内容変更を選択的に行うことによって、発側ノードと着側ノードとの間のトンネリングによるパケット通信経路を動的に切り替えるようにした点にある。
本発明によるパケット通信方法の１つの実施例によれば、ホームエージェントノードは、受信したカプセル化パケットをデカプセル化し、新たなカプセル化ヘッダを付加して着側ノードに転送する。この時、ホームエージェントノードは、着側端末から発側端末に向かうパケットの中継に備えて、上記受信カプセル化パケットのヘッダに含まれていた送信元アドレスを記憶した新たなエントリを第２メモリに追加する。
【００２２】
着側ノードは、ホームエージェントノードからカプセル化パケットを受信した時、上記端末間の通信に関して第２メモリのヘッダ処理規則が、ショートカット経路の選択を指定していれば、着側端末から発側端末に向かうパケットの中継に備えて、上記受信カプセル化パケットのヘッダに含まれていた送信元アドレスを記憶した新たなエントリを第２メモリに追加し、発側ノードにルート変更を指示する制御メッセージを含んだ制御パケットを発行する。
上記制御パケットを受信すると、発側ノードは、第１メモリを書き替えると共に、第２メモリにおける上記端末間のルーティング規則を変更する。但し、ホームエージェントノードからカプセル化パケットを受信した時、着側ノードの第２メモリが、上記端末間の通信に関して他のルーティングモード、例えば、上り下り同一経路の選択が指定されていた場合は、上述した制御パケットの発行と、第２メモリへの新たなエントリの追加はない。
【発明の効果】
【００２３】
本発明によれば、送信元と宛先（送信先）との組合せに応じて経路選択のポリシーを指定することによって、発側ノードと着側ノードとの間のトンネリング数を減少したパケット通信が可能となるため、パケットの転送遅延を低減できる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施例を図面を参照して説明する。
図２は、本発明を適用する移動体通信システムの構成の１例を示す。
移動体通信システムは、複数の移動端末５（５Ａ、５Ｂ）と、それぞれセル内に位置する移動端末５と無線チャネルで通信する複数の無線基地局４（４Ａ−１１〜４Ｂ−１ｍ）と、これらの無線基地局に接続された基地局制御装置３（３Ａ−１〜３Ｂ−ｎ）と、上記基地局制御装置３をネットワーク６に接続するためのノード装置１（１Ａ、１Ｂ）と、上記ネットワーク６に接続されたホームエージェントノード２（２ａ、ｂ）からなる。図では、単一の網として描かれているが、実際のネットワーク６は、相互接続された多数のネットワークを含み、ノード装置間に複数の経路をもつインターネット網となっている。また、ここでは、移動端末５Ａと５Ｂ間で行うパケット通信について述べるが、本発明は、上記各移動端末と図示しない固定端末との間のパケット通信にも適用できる。
【００２５】
各移動端末５は、何れかのホームエージェントノード２にホーム登録されている。各ホームエージェントノードは、移動端末の移動先無線基地局４からの通知によって、管理下にある各移動端末の現在の位置情報を把握しており、ホーム登録されている移動端末宛ての受信パケットを、該移動端末が現在位置している無線基地局４を収容しているノード装置１に転送する。
基地局制御装置３をネットワーク６に接続するノード装置１は、ネットワーク層レベルで宛先制御を行い、ノード間でのルーティング情報の交換によってルーティングテーブルを動的に更新し、最適通信経路を選択する機能を備えたルータによって構成される。但し、上記ノード装置には、ルータ機能の他に、未定義の受信パケットをデータリンク層レベルで中継するブリッジ機能も備えたブルータ（Brouter）を適用してもよい。
【００２６】
以下、移動端末５Ａはホームエージェントノード２ａに、移動端末５Ｂはホームエージェントノード２ｂにそれぞれホーム登録されているものと仮定して、移動端末５Ａから５Ｂ宛てにＩＰパケットを送信した場合に実行される本発明による通信手順と、各ノードの動作について説明する。ここでは、発側移動端末５Ａと着側移動端末５ＢのＩＰアドレスをそれぞれ「Ａ」、「Ｂ」で表し、ノード１Ａを発側ルータ、ノード１Ｂを着側ルータと呼ぶことにする。
【００２７】
図３は、発側移動端末５Ａから着側移動端末５Ｂに送信された最初のＩＰパケット３１０が、発側ルータ１Ａから着側ホームエージェントノード２ｂを経て着側ルータの転送される過程で受けるパケットフォーマットの変化を示す。
パケットフォーマットの変換は、後で詳述するように、各ノード１Ａ、１Ｂ、２ｂに用意されたルートポリシー・レジスタ（ＲＰＲ）２５（２５Ａ、２５Ｂ、２５ｂ）と、着側ホームエージェントノード２ｂが備えるホームロケーション・レジスタ（ＨＬＲ）２３ｂを利用して行われる。
【００２８】
本発明では、ＩＰパケットの送信元アドレスＳＡと宛先アドレスＤＡとの組合せで同定される特定の端末間通信に関して、発側ノード（発側ルータ）と、ホームエージェントノードと、着側ノード（着側ルータ）の各ルートポリシー・レジスタ（ＲＰＲ）２５に、受信パケットのヘッダ処理規則（ルートポリシー）を予め定義、登録しておくことによって、ＩＰパケットを特殊な伝送ルートで転送することを特徴としている。
典型的なルートポリシーとしては、例えば、発側移動端末から着側移動端末宛て送信された下りパケットの経路と、着側移動端末から発側移動端末宛てに送信された上りパケットの経路とを同一ホームエージェントノード経由とする「上り／下り同一経路」ポリシーと、上り／下り経路をホームエージェントノードに関係しない最適ルートとする「ショートカット経路」ポリシーとがある。
図３は、上記２つのポリシーに共通する本発明の基本的な通信手順を示している。
発側移動端末５Ａから送信されたＩＰパケット３１０は、データ部（ペイロード部）３１３とＩＰヘッダとからなり、ＩＰヘッダの送信元アドレス（ＳＡ）３１１には発側移動端末５Ａのアドレス「Ａ」が、また、宛先ＩＰアドレス（ＤＡ）３１２には着側移動端末５Ｂのアドレス「Ｂ」が設定されている。ＩＰヘッダには、ＩＰアドレス以外に、例えば、ＩＰヘッダ長、ＩＰデータグラムの全体長、サービスタタイプ、プロトコルタイプ等、各種の情報が含まれているが、ＩＰアドレス以外の情報は、本発明に特に関係がないため、図面から省略してある。
【００２９】
発側ルータ１Ａは、入力ポートＩＮ−ｉからＩＰパケット３１０を受信すると、ルートポリシー・レジスタ２５Ａで定義された変換ルールに従ってカプセル化ヘッダを生成し、受信ＩＰパケット３１０をカプセル化パケット３２０に変換して、トンネリング方式で着側ホームエージェントノード２ｂに転送する。
上記カプセル化パケット３２０は、データ部３１３Ｔに受信ＩＰパケット３１０を含み、カプセルヘッダの送信元アドレス３１１Ｔには、着側ホームエージェントノード２ｂに向かう伝送路６１の接続ポートＩＰアドレス「ＣｏＡ１」が設定される。ここでは、伝送路６１がトンネルを意味する１本のパイプ記号で表現されているが、実際のネットワークでは、上記トンネル６１は、他の複数のノードを経由する複雑なパスとなっている。
【００３０】
発側ルータ１Ａで着側ホームエージェントノード２ｂのＩＰアドレス「ＸＸ」が既知の場合、カプセル化パケット３２０の宛先アドレス３１２ＴにはＩＰアドレス「ＸＸ」が設定される。もし、着側ホームエージェントノード２ｂのＩＰアドレス「ＸＸ」が不明の場合は、図３に示すように、宛先アドレス３１２Ｔには、受信ＩＰパケット３１０の宛先ＩＰアドレス「Ｂ」を代用する。この場合でも、パケット３２０は、経路上に位置する各ノード装置における通常のＩＰルーティングによって、着側ホームエージェントノード２ｂに到達できる。
【００３１】
着側ホームエージェントノード２ｂと着側ルータ２Ｂとの間は伝送路６２で接続されている。ここで、着側ルータ２Ｂにおける上記伝送路６２の接続ポートＩＰアドレスを「ＣｏＢ１」とする。着側ホームエージェントノード２ｂは、カプセル化パケット３２０を受信すると、カプセルヘッダの送信元アドレス３１１Ｔはそのままにして、宛先アドレス３１２Ｔのみを「ＣｏＢ１」に書き替え、カプセル化パケット３３０として伝送路６２に送出する。
この場合、受信パケット３２０の宛先アドレスの値「Ｂ」と送信パケット３３０に付すべき宛先アドレスの値「ＣｏＢ１」との対応関係は、ホームロケーション・レジスタ２３ｂに予め定義してある。また、受信パケット３２０から送信パケット３３０への変換は、ルートポリシー・レジスタ２５ｂに定義されたヘッダ処理規則に従って行われる。
着側ルータ１Ｂは、カプセル化パケット３３０を受信すると、データ部３１３ＴからＩＰパケット３１０を抽出し、宛先移動端末５Ｂが現在位置する無線基地局４Ｂ−１１を収容している基地局制御装置３Ｂ−１に向かう出力ポートＯＵＴ−ｊに送信する。
【００３２】
図４は、上記ＩＰアドレスＡ、Ｂ間の通信に関して、ルートポリシー・レジスタ２５Ｂで「ショートカット経路」ポリシーが指定されていた場合の着側ルータ１Ｂの動作を示す。
この場合、着側ルータ１Ｂは、上記カプセル化パケット３３０の受信に応答して、発側ルータ１Ａ宛に通信経路変更を要求する制御メッセージ、例えば、ＩＣＭＰ（Internet Control Message Protocol）リダイレクト（redirect）メッセージを含んだ制御用ＩＰパケット３４０を生成し、伝送路６３に送出する。上記制御用ＩＰパケット３４０は、宛先アドレス３１２として、カプセル化パケット３３０から得られた発側ルータのＩＰアドレス「ＣｏＡ１」を含み、送信元アドレス３１１には、伝送路６３の接続ポートのＩＰアドレス「ＣｏＢ２」を含む。
図３で述べたカプセル化パケット３３０からＩＰパケット３１０への変換、および図４に示したＩＣＭＰメッセージの生成は、予めルートポリシー・レジスタ２５Ｂに定義されたヘッダ処理規則と、ＩＣＭＰフラグに基づいて行われる。
【００３３】
本発明では、上述したように、発側ルータ１Ａで受信パケット３１０をカプセル化し、カプセル化ヘッダに付された送信元アドレス３１１Ｔを着側ホームエージェントノード２ｂが中継することによって、着側ルータ１Ｂに発側ルータ１ＡのＩＰアドレス（実施例では「ＣｏＡ１」）を通知している。
従って、着側ルータ１Ｂが、着側移動端末５Ｂから発側移動端末５Ａに宛てたパケットを発側ルータ１Ａに転送する場合に、上記発側ルータ１ＡのＩＰアドレスを利用することによって、発側ホームエージェントノード２ａを経由することなく、ショートカット経路でトンネリングによるパケット転送が可能となる。
また、上記発側ルータ１ＡのＩＰアドレスを利用して、着側ルータ１Ｂから発側ルータにＩＣＭＰリダイレクトメッセージを送信することによって、発側ルータ１Ａに着側ルータ１ＢのＩＰアドレス「ＣｏＢ２」を通知できる。従って、上記着側ルータ１ＢのＩＰアドレスを利用して、発側ルータ１Ａから着側ルータ１Ｂ方向にも、トンネリング方式によるパケット転送が可能となる。
【００３４】
図５は、上記ＩＣＭＰリダイレクトメッセージを受信した後の発側ルータ１Ａの動作を示す。
発側ルータ１Ａは、移動端末５Ａから受信したＩＰパケット３１０'をカプセル化パケット３５０に変換し、着側ホームエージェントノード２ｂを経由することなく、ショートカット経路６３で着側ルータ１Ｂとトンネリング通信する。上記カプセル化パケット３５０は、データ部３１３Ｔに受信ＩＰパケット３１０'を含み、カプセルヘッダの宛先アドレス３１２Ｔには、着側ルータのＩＰアドレス「ＣｏＢ２」を含み、送信元アドレス３１１Ｔには、ショートカット経路６３との接続ポートのＩＰアドレス「ＣｏＡ２」を含む。
【００３５】
図６は、ＩＰアドレスＡ、Ｂ間の通信に関して、「上り／下り同一経路」ポリシーが指定されていた場合の各ノードの動作を示す。
「上り／下り同一経路」ポリシーの下では、着側ルータ１Ｂは、図３で示した最初のカプセル化パケット３３０を受信した時、ＩＣＭＰリダイレクト・メッセージ３４０を発行しない。従って、発側ルータ１Ａは、発側移動端末５Ａから着側移動端末５Ｂ宛て送信された後続の受信パケットについて、最初の受信パケット３１０と同様にカプセル化し、伝送路６１で着側ホームエージェントノード２ｂにトンネリング通信する。
着側ホームエージェントノード２ｂは、上記カプセル化パケットを受信すると、図３で説明したパケット３２０から３３０への変換と同様のルールでヘッダ変換し、伝送路６２で着側ルータ１Ｂにトンネリング通信する。着側ルータ１Ｂは、着側ホームエージェントノード２ｂからカプセル化パケットを受信すると、カプセル化ヘッダを除去し、データ部３１３ＴのＩＰパケットを伝送路ＯＵＴ−ｊに送出する。
【００３６】
一方、着側移動端末５Ｂから発側移動端末５Ａに宛てたＩＰパケット３６０を受信した場合、着側ルータ１Ｂは、図６に示すように、受信パケット３６０をカプセル化し、カプセル化パケット３７０を伝送路６２で着側ホームエージェントノード２ｂにトンネリング通信する。この場合、カプセル化ヘッダには、送信元アドレス３１１Ｔとして、例えば、着側ルータ１Ｂにおける上記伝送路６２との接続ポートＩＰアドレス「ＣｏＢ１」を設定し、宛先アドレス３１２Ｔとして、着側ホームエージェントノード１ｂにおける上記伝送路６２との接続ポートＩＰアドレス「ＨＢ」を設定する。
着側ルータ１ｂは、通常の通信機能として、基地局制御装置３Ｂ−１〜３Ｂ−ｎを介して各無線基地局から受信する移動端末位置情報を示すパケットを各ホームエージェントノードに転送動作しているため、上記着側ホームエージェントノード２ａとトンネリング通信する場合、トンネル伝送路６２の両端におけるＩＰアドレス、「ＣｏＢ１」と「ＨＢ」については既に把握されている。
【００３７】
着側ホームエージェントノード２ａは、上記カプセル化パケット３７０を受信すると、カプセル化ヘッダの送信元アドレス３１１Ｔと宛先アドレス３１２Ｔとを書き替え、得られたカプセル化パケット３８０を伝送路６１で発側ルータ１Ａに転送する。上記カプセル化パケット３８０の送信元アドレス３１１Ｔには、例えば、着側ホームエージェントノード１ｂにおける上記伝送路６１との接続ポートＩＰアドレス「ＨＡ」を設定し、宛先アドレス３１２Ｔには、着側ルータ１Ｂにおける上記伝送路６１との接続ポートＩＰアドレス「ＣｏＡ１」を設定する。伝送路６１については、図３で説明した最初のカプセル化パケット３２０の受信時点で、両端の接続ポートＩＰアドレスが既知となっている。
発側ルータ１Ａは、上記カプセル化パケット３８０を受信すると、カプセル化ヘッダを除去し、データ部３１３Ｔから抽出したＩＰパケット３６０を移動端末５Ａ向かう出力ポートに転送する。この場合の発側ルータ１Ａの動作は、下りパケット受信時の着側ルータ１Ｂの動作と同様であり、発側ルータ１ＡからのＩＣＭＰリダイレクトメッセージの発行はない。
図１は、上述した本発明の通信機能を実現するためのノード装置の１実施例を示す。
ここに示したノード装置は、ホームロケーションレジスタ２３を備えているが、上記レジスタ２３は、ノード装置をホームエージェントノード２として動作させる場合に必要となる要素であり、発側ルータ１Ａまたは着側ルータ１Ｂとして動作させる場合には不要となる。
ノード装置は、それぞれ１対の入力ポートＩＮ−ｉと出力ポートＯＵＴ−ｉとを有する複数のインタフェースボード１０―ｉ（ｉ＝１〜ｋ）と、バス１００を介して上記各インタフェースボード１０―ｉに接続されたルーティング制御装置５０とからなる。
【００３８】
上記ルーティング制御装置５０は、プロセッサ２０と、プログラムメモリ２１と、各インタフェースボード１０―ｉで受信した受信パケットを蓄積するためのバッファメモリ（ＢＭ）２２と、ホームロケーション・レジスタ（ＨＬＲ）２３、ルーティングレジスタ（ＲＴＲ）２４およびルートポリシー・レジスタ（ＲＰＲ）２５を形成するメモリと、空きアドレスキュー２６、Ｒｘ（受信）ディスクリプタ・テーブル２７―ｉ（ｉ＝１〜ｋ）およびＴｘ（送信）ディスクリプタ・テーブル２８―ｉ（ｉ＝１〜ｋ）を形成するメモリと、入出力装置２９とからなっており、これらの要素はバス１００に結合されている。
【００３９】
上記プログラムメモリ２１には、ＯＳ２１１と、上記プロセッサ２０が実行する各種のプログラムが格納してある。ノード装置に固有のプログラムとして、ルーティングレジスタ２４の内容をダイナミックに更新するためのルーティング管理プログラ２１２と、後述するように、上記ルーティングレジスタ２４、ルートポリシー・レジスタ２５およびホームロケーション・レジスタ２３（但し、ホームエージェントノードの場合）を参照して本発明に特有のパケット転送を行う転送処理プログラム２１３とを含む。尚、ノード装置がホームエージェントノード１ａ、１ｂを構成する場合、上記プログラムメモリ２１には、位置登録プロトコルに従って各移動端末の位置情報を管理するのためのプログラムも含まれるが、移動端末の位置情報管理自体は本発明に直接関係しないため、ここでは説明を省略する。
【００４０】
バッファメモリ（ＢＭ）２２は、固定長の複数のメモリブロック（メモリ領域）に分割されており、空きアドレスキュー２６には、上記バッファメモリで空き状態にある各メモリブロックの先頭アドレスが登録されている。Ｒｘディスクリプタ・テーブル２７（２７−１〜２７−ｋ）とＴｘディスクリプタ・テーブル２８（２８−１〜２８−ｋ）は、インタフェースボード１０（１０−１〜１０−ｋ ）と対応して１対ずつ用意され、ｉ番目のインタフェースボード１０−ｉは、ｉ番目のＲｘディスクリプタ・テーブル２７―ｉとＴｘディスクリプタ・テーブル２８−ｉを使用する。
【００４１】
各インタフェースボード１０−ｉは、入力インタフェース１１Ａと出力インタフェース１１Ｂからなる。
入力インタフェース１１Ａは、バス１００に接続された入力バス１０１−ｉと、入力ポートＩＮ−ｉに接続された入力回線インタフェース１２Ａと、上記入力回線インタフェース１２Ａと上記入力バス１０１−ｉとの間に接続された受信バッファ１３Ａと、上記入力バス１０１−ｉに接続されたマイクロコントローラ１４Ａ、ＤＭＡコントローラ１５ＡおよびＲｘディスクリプタエントリ・メモリ１６Ａからなっている。
入力ポートＩＮ−ｉからの受信信号は、入力回線インタフェース１２Ａで終端され、受信パケット（ＩＰパケットまたはカプセル化パケット）として受信バッファ１３Ａに一時的に蓄積される。上記受信バッファ１３Ａに蓄積された受信パケットは、マイクロコントローラ１４Ａの制御の下に、ＤＭＡコントローラ１５Ａを介して、バッファメモリ２２に転送される。この時、空きアドレスキュー２６から取り出されたアドレスＡｘが、受信パケットの書き込みアドレスＷＡとして使用され、上記アドレスＡｘは、エントリの有効性を示すフラグビットと共に、Ｒｘディスクリプタ・テーブル２７−ｉに登録される。
【００４２】
ルーティング制御装置５０のプロセッサ２０は、Ｒｘディスクリプタ・テーブル２７−１〜２７−ｋを循環的にアクセスし、各Ｒｘディスクリプタ・テーブル２７−ｉに登録されたアドレスＡｘに基づいて、受信バッファ２２から受信パケットを読み出す。プロセッサ２０は、後で詳述するように、受信パケットのＩＰヘッダに含まれるアドレスＳＡとＤＡとの組合せに基づいてルートポリシー・レジスタ（ＲＰＲ）２５を参照し、ＲＰＲ２５が指定するヘッダ処理規則に従って、カプセル化ヘッダの生成またはアドレス変換と、ルーティングレジスタ（ＲＴＲ）２４の参照による出力ポート番号の判定を行う。
受信パケットの出力ポート番号ｊが決定すると、プロセッサ２０は、上記受信パケットのアドレスＡｘをｊ番目のＴｘディスクリプタ・テーブル２８−ｊに登録した後、Ｒｘディスクリプタ・テーブル２７−ｉとＴｘディスクリプタ・テーブル２８−ｊにおける上記アドレスＡｘを含むエントリのフラグビットを書き替える。
【００４３】
各インタフェースボード１０−ｉの出力インタフェース１１Ｂは、バス１００に接続された出力バス１０２−ｉと、出力ポートＯＵＴ−ｉに接続された出力回線インタフェース１２Ｂと、上記出力回線インタフェース１２Ｂと上記出力バス１０２−ｉとの間に接続された送信バッファ１３Ｂと、上記出力バス１０２−ｉに接続されたマイクロコントローラ１４Ｂ、ＤＭＡコントローラ１５ＢおよびＴｘディスクリプタエントリ・メモリ１６Ｂからなっている。
バッファメモリ２２に蓄積された受信パケットは、マイクロコントローラ１４Ｂの制御の下に、ＤＭＡコントローラ１５Ｂを介して、送信バッファ１３Ｂに送信パケットとして転送される。この時、インタフェースボード１０−ｉと対応するＴｘディスクリプタ・テーブル２８−ｉが参照され、上記テーブル２８−ｉに登録されたアドレスＡｘが、受信パケットの読み出しアドレスＲＡとして使用される。
【００４４】
図７は、空きアドレスキュー２６と、Ｒｘディスクリプタ・テーブル２７（２７−１〜２７−ｋ）と、Ｔｘディスクリプタ・テーブル２８（２８−１〜２８−ｋ）との関係を示す。
Ｒｘディスクリプタ・テーブル２７は、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス２７１と、ブロック長２７２と、エントリの有効性を示すフラグビット２７３とを含む。これと同様に、Ｔｘディスクリプタ・テーブル２８も、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス２８１と、パケット長２８２と、エントリの有効性を示すフラグビット２８３とを含む。 
これらのディスクリプタ・テーブルへのエントリデータの書き込みと読み出しは、メモリの最終エントリ領域から最初のエントリ領域に戻るように循環的に行われる。図７において、斜線を付した領域は、有効データを含むエントリ領域を示しており、有効エントリ領域の先頭に位置したエントリは、ポインタＲｘＨＰ、ＴｘＨＰによって指定されている。ポインタＲｘＴＰとＴｘＴＰは、有効エントリ領域の次に位置したエントリを指している。従って、新たなエントリデータの書き込みは、上記ポインタＲｘＴＰまたはＴｘＴＰが示すエントリ領域で行われ、登録済みのエントリデータの読み出しは、上記ポインタＲｘＨＰまたはＴｘＨＰが示すエントリ領域で行われる。これらのポインタの値は、１つのエントリについてデータの書き込み／読み出しの都度、インクリメントされる。
Ｒｘディスクリプタ・テーブル２７の有効エントリ領域には、ビット値“０”のフラグ２７３が設定され、無効エントリ領域、すなわち、新たなデータの書き込みが許容される領域にはビット値“１”のフラグが設定される。逆に、Ｔｘディスクリプタ・テーブル２８では、有効エントリ領域にビット値“１”、無効エントリ領域にビット値“０”のフラグ２８３が設定される。
【００４５】
インタフェースボード１０−ｉの入力インタフェース１１Ａは、対応するＲｘディスクリプタ・テーブル２７−ｉのポインタＲｘＴＰが指すエントリの内容をＲｘディスクリプタエントリ・メモリ１６Ａに読み込み、フラグ２７３が“１”となっていることを確認した上で、空きアドレスキュー２６から取出した空きアドレスＡｘを書き込みアドレスＷＡとして、受信パケットをバッファメモリ２２に書き込む。この後、Ｒｘディスクリプタ・テーブル２７−ｉの上記ポインタＲｘＴＰが指すエントリにアドレスＡｘを登録し、フラグ２７３を“０”に書き替え、ポインタＲｘＴＰの値をインクリメントする。
【００４６】
ルーティング制御装置５０のプロセッサ２０は、上記Ｒｘディスクリプタ・テーブル２７−ｉのポインタＲｘＨＰが指すエントリに登録されたアドレスＡｘに基づいて、バッファメモリ２２から受信パケットを読み出し、所定の処理を行う。上記受信パケットを転送すべき出力ポートの番号ｊが判明すると、Ｔｘディスクリプタ・テーブル２７−ｊのポインタＴｘＴＰが指すエントリのフラグ２８３の状態を確認した上で、上記アドレスＡｘをフィールド２８１に登録し、フラグ２８３を“１”に書き替え、ポインタＴｘＴＰの値をインクリメントする。同様に、処理済みとなったＲｘディスクリプタ・テーブル２７−ｉのポインタＲｘＨＰが指すエントリで、フラグ２７３を“１”に書き替え、ポインタＲｘＨＰの値をインクリメントする。
【００４７】
インタフェースボード１０−ｊの出力インタフェース１１Ｂは、対応するＴｘディスクリプタ・テーブル２８−ｊのポインタＴｘＨＰが指すエントリの内容をＴｘディスクリプタエントリ・メモリ１６Ｂに読み込む。フラグ２８３の値が“１”となっていることを確認した上で、アドレスフィールド２８１に登録されたアドレスＡｘに基づいて、バッファメモリ２２からパケットを読み出し、送信バッファ１３Ｂに転送し、不要となったアドレスＡｘを空きアドレスキュー２６に解放する。この時、Ｔｘディスクリプタ・テーブル２８−ｊのポインタＴｘＨＰが指すエントリのフラグを“０”に書き替え、ポインタＴｘＨＰの値をインクリメントする。
【００４８】
図１に示した複数のインタフェースボード１０−１〜１０−ｋが、共通の空きアドレスキュー２６から入手した空きアドレスＡｘに基づいて、受信パケットをバッファメモリ２２へ書き込み、バッファメモリ２２からの送信パケットの読み出しを終えた時点で、パケットの読み出しアドレスを空きアドレスキュー２６に解放することによって、バッファメモリ２２のメモリ容量を効率的に利用したパケット交換動作が実現できる。
【００４９】
図８は、ホームロケーション・レジスタ２３の構成を示す。
ホームロケーション・レジスタ（ＨＬＲ）２３は、着側移動端末のＩＰアドレス２３１と、上記移動端末にパケットを中継するための着側ルータのＩＰアドレス２３２との対応関係を示す複数のエントリ２３０−１、２３０−２、…を含んでいる。ホームエージェントノード２を構成するプロセッサ２０は、受信パケットのＩＰヘッダに含まれる宛先ＩＰアドレスＤＡに基づいて上記ホームロケーション・レジスタ２３を参照し、受信パケットの転送先となる着側ルータＩＰアドレス２３２を検索する。
【００５０】
図９は、ルーティングレジスタ２４の構成を示す。
ルーティングレジスタ（ＲＴＲ）２４は、着側端末のＩＰアドレス２４１と、ネクストホップＩＰアドレス２４２と、出力ポート番号（Ｔｘディスクリプタの識別番号）２４３と、出力ポートのＩＰアドレス２４４との対応関係を示す複数のエントリ２４０−１、２４０−２、…を含んでいる。上記ルーティングレジスタ２４へのエントリの追加、更新はルーティング管理プログラム２１２によって行われる。
【００５１】
図１０〜図１２は、それぞれ図３に示した発側ルータ１Ａ、着側ホームレジスタ２ｂおよび着側ルータ１Ｂが備えるルートポリシー・レジスタ（ＲＰＲ）２５−Ａ、２５−ｂ、２５−Ｂの構成を示す。
上記各ルートポリシー・レジスタは、複数のエントリ２５０−１１、…、２５０−３１、…を含み、各エントリは、送信元ＩＰアドレス（ＳＡ）２５１と、宛先ＩＰアドレス（ＤＡ）２５２と、トンネリング送信元アドレス（ＴＳＡ）２５３と、トンネリング宛先アドレス（ＴＤＡ）２５４と、ＩＣＭＰフラグ２５５とを示す複数のフィールドからなっている。
ルートポリシー・レジスタ２５は、ＩＰパケットの送信元アドレス２５１と宛先アドレス２５２との組合せと対応して、フィールド２５３〜２５４で、カプセル化ヘッダの生成、アドレス変換、ヘッダ除去等のルールを示すヘッダ処理規則を定義している。フィールド２５３と２５４には、トンネリング通信用の送信元アドレスおよび宛先アドレスの決定規則または具体的なアドレス値を含む。
【００５２】
図１０〜図１２において、トンネリング宛先アドレス（ＴＤＡ）フィールド２５４に定義されたアドレス決定規則のうち、エントリ２５０−１１が示す“ＤＵＰ”は、トンネリング宛先アドレスとして、ＩＰヘッダの宛先ＩＰアドレス２５２を適用することを意味している。エントリ２５０−２１が示す“ＣＮＶ”は、トンネリング宛先アドレスとして、宛先ＩＰアドレス２５２と対応してホームロケーション・レジスタ（ＨＬＲ）２３から求まる着側ルータＩＰアドレス２３２を適用することを意味し、“ＮＯＮＥ”は、カプセル化パケットのＩＰアドレスの除去を意味している。また、ＣｏＢ２、ＣｏＡ１、ＨＢのように、ダブル引用符を伴わない文字列は、図３〜図６での説明から明らかなように、具体的なＩＰアドレスの値を示している。
また、トンネリング送信元アドレス（ＴＳＡ）フィールド２５３で定義されたアドレス決定規則のうち、エントリ２５０−１１が示す“ＳＥＬＦ”は、トンネリング送信元アドレスとして、宛先アドレス（ＴＤＡ）２５４に基づいてルーティングレジスタ２４を検索して求めた出力ポートＩＰアドレス２４４を適用することを意味し、また、エントリ２５０−２１が示す“ＫＥＥＰ”は、トンネリング送信元アドレスとして、受信パケットのカプセル化ヘッダに含まれる送信元アドレスをそのまま適用することを意味している。
【００５３】
図１０では、送信元アドレス２５１と宛先アドレス２５２との組合せが同一の２つのエントリ２５０−１１と２５０Ｐ−１１が示してあるが、符号Ｐを付したエントリ２５０Ｐ−１１は、エントリ２５０−１１よりも後で生成されたもので、元のエントリ２５０−１１に優先して実行されることを意味している。
また、図１２では、送信元アドレス２５１と宛先アドレス２５２との組合せが同一の２つのエントリ２５０−３２と２５０Ｐ−３２が示してあるが、エントリ２５０−３２は「ショートカット経路」ポリシー用、エントリ２５０Ｐ−３３は「上り／下り同一経路」ポリシー用のものであり、実際のルートポリシー・レジスタ２５は、上記２つのエントリのうちの何れか一方が含まれる。
【００５４】
図１３は、インタフェースボード１０−１〜１０−ｋの各入力インタフェース１１Ａにおいて、マイクロコントローラ１４Ａが実行するパケット受信処理ルーチンのフローチャートを示す。
マイクロコントローラは、インタフェースボード１０−ｉと対応するＲｘディスクリプタ・テーブル２７−ｉに付随したポインタＲｘＨＰ、ＲｘＴＰを読み（ステップ４０１）、Ｒｘディスクリプタ・テーブル２７−ｉから、ポインタＲｘＴＰが指すエントリＲｘＴＢＬ（ＲｘＴＰ）をエントリメモリ１６Ａに読み込む（４０２）。次に、上記エントリＲｘＴＢＬ（ＲｘＴＰ）のフラグ２７３を判定し（４０４）、“０”の場合は、マイクロコントローラ１４Ａまたはプロセッサ２０の動作にエラーが発生したものと判断し、エラー処理を実行する（４０６）。
【００５５】
上記フラグ２７３が“１”の場合は、空きアドレスキュー２６から空きアドレスＡｘを取得し（５０８）、受信バッファ１３Ａに処理すべき受信パケットが蓄積済みか否かを判定する（４１０）。受信バッファ１３Ａに受信パケットが蓄積済みの場合は、受信パケットのヘッダ部に含まれるパケットトータル長をエントリＲｘＴＢＬ（ＲｘＴＰ）のブロック長ＭＡＸと比較する（４１２）。パケットトータル長がＭＡＸよりも長い場合は、受信パケットを廃棄し（４１４）、ステップ４１０に戻って、次の受信パケットについて上述した判定を繰り返す。
パケットトータル長がＭＡＸ以下の場合は、ＤＭＡコントローラ１５Ａに指令して、バッファメモリ２２のアドレスＡｘが示すメモリブロックＢＭ（Ａｘ）に受信パケットをＤＭＡ転送（４２０）した後、 Ｒｘディスクリプタ・テーブル２７−ｉのポインタＲｘＴＰが指すエントリＲｘＴＢＬ（ＲｘＴＰ）のフィールド２７１と２７３に、上記アドレスＡｘとフラグ“０”をそれぞれ設定する（４２２）。また、ポインタＲｘＴＰの値をインクリメントし（４２４）、この値をプロセッサ２０が参照できるように、ルーティング制御装置５０側に記憶されたポインタＲｘＴＰに反映する（４２６）。
【００５６】
この後、ルーティング制御装置５０側に記憶されたポインタＲｘＨＰの値を読み取り（４２８）、ポインタＴｘＨＰの値と比較する（４３０）。ＲｘＴＰがＲｘＨＰより大きい場合は、ステップ４０２に戻り、Ｒｘディスクリプタ・テーブル２７−ｉの次のエントリＲｘＴＢＬ（ＲｘＴＰ）を読み込む。
もし、ＲｘＴＰ＞ＲｘＨＰでない、すなわち、有効エントリ領域が図７に示したようにメモリ上で不連続になっている場合は、 ＲｘＨＰが指す有効エントリ領域へのデータの二重書きを回避するために、ＲｘＴＰとＲｘＨＰの間の所定の間隔Δｎがあるか否かを判定する（４３２）。上記間隔がΔｎよりも大きい場合は、ステップ４０２に戻り、間隔がΔｎ以内の場合は、所定時間ΔＴだけ受信パケットの転送を待った後（４３４）、ステップ４２８以降の動作を繰り返す。プロセッサ２０が受信パケットを処理すれば、ＲｘＨＰの値がインクリメントされ、 ＲｘＴＰとＲｘＨＰとの間隔がΔｎよりも大きくなるため、ステップ４０２に戻れる。
【００５７】
上記実施例では、受信パケットのサイズがバッファメモリ２２のブロックサイズＭＡＸより大きい場合は、受信パケットを廃棄している（ステップ４１４）。これは、バッファメモリ２２に用意された各ブロックが、正常なパケットを格納するのに十分なサイズを有し、ブロックサイズＭＡＸを超える長さの受信パケットは異常と判断できることが前提となっている。しかしながら、ブロックサイズＭＡＸを大きくしておくと、受信パケットが平均的な長さをもつ場合、バッファメモリの各ブロックに未使用のエリアが発生し、メモリ容量の利用率が低下する。
バッファメモリの容量を有効に利用するためには、例えば、ブロックサイズＭＡＸを平均的なパケット長にしておき、ＭＡＸを超える長さのパケットが受信された場合は、複数のブロックに分割して蓄積するようにすればよい。
【００５８】
図１４は、１つの受信パケットを複数のブロックに分割して蓄積する場合に、図１３のステップ４１２〜４１４を含むルーチン部分に置き代わって実行される制御フローを示す。
受信パケットがあった場合（ステップ４１０）、パラメータＮＥＸＴの値を判定する（４１１）。パラメータＮＥＸＴは、受信パケットの残りデータブロックの有無を示すためのものであり、受信パケットのサイズがブロック長ＭＡＸを超えていた場合に“１”に設定され、新たな受信パケットを処理する時点では、ＮＥＸＴの値は“０”となっている。
パラメータＮＥＸＴが“０”の場合、受信パケットの長さをブロック長ＭＡＸと比較し（４１２）、受信パケット長がＭＡＸ以下であれば、ＤＭＡ転送におけるデータ長を示すパラメータＬＥＮＧＴＨに受信パケット長を設定した後（４１３）、受信パケットをバッファメモリ２２にＤＭＡ転送する（図１３のステップ４２０）。
【００５９】
受信パケット長がＭＡＸを超えていた場合は、残りデータブロックサイズを示すパラメータＲＥＭに、受信パケット長からＭＡＸを引いた値を設定し（４１５）、パラメータＬＥＮＧＴＨにＭＡＸの値を設定し、ＮＥＸＴ＝“１”に設定（４１６）した後、受信パケットの最初のデータブロック部分をＤＭＡ転送する。
ＮＥＸＴ＝“１”の状態で再びステップ４１１に戻ってきた時、残りデータ長ＲＥＭをブロックサイズＭＡＸと比較する（４１７）。残りデータ長ＲＥＭがブロックサイズＭＡＸよりも大きい場合は、ＲＥＭにＲＥＭ−ＭＡＸの値を設定し（４１９）、受信パケットの次のデータブロック部分をＤＭＡ転送する。もし、ＲＥＭの値がＭＡＸ以下であれば、パラメータＬＥＮＧＴＨにＲＥＭの値を設定し、ＮＥＸＴ＝“０”に設定（４１８）した後、受信パケットの残りデータブロック部分をＤＭＡ転送する。
【００６０】
図１５は、インタフェースボード１０−１〜１０−ｋの各入力インタフェース１１Ｂにおいて、マイクロコントローラ１４Ｂが実行するパケット送信処理ルーチンのフローチャートを示す。
マイクロコントローラ１４Ｂは、インタフェースボード１０−ｉと対応するＴｘディスクリプタ・テーブル２８−ｉに付随したポインタＴｘＨＰ、ＴｘＴＰを読み（ステップ５０１）、ＴｘＴＰとＴｘＨＰとが同一値か否かを判定する（５０２）。上記ＴｘＴＰとＴｘＨＰは、初期状態において、Ｔｘディスクリプタ・テーブル２８−ｉの最初のエントリ領域を指す同一の値となっており、Ｔｘディスクリプタ・テーブルに有効データを含むエントリが１つでも残っていれば、ＴｘＴＰとＴｘＨＰは互いに異なった値となる。
【００６１】
ＴｘＴＰ＝ＴｘＨＰの場合は、 Ｔｘディスクリプタ・テーブルに有効データを含むエントリが存在しないことを意味しているため、所定時間ΔＴだけ、プロセッサ２０がＴｘディスクリプタ・テーブル２８−ｉにパケット転送するのを待ち（５０４）、再びＴｘＴＰを読み込んで（５２４）、判定ステップ５０２に戻る。
ＴｘＴＰとＴｘＨＰの値が異なっていた場合は、Ｔｘディスクリプタ・テーブル２８−ｉの上記ポインタＴｘＨｐが指すエントリＴｘＴＢＬ（ＴｘＨＰ）をエントリメモリ１６Ｂに読み込み、上記エントリのフィールド２８１に登録されたアドレスＡｘを読み出しアドレスＲＡに設定する（５０８）。
【００６２】
上記エントリのフラグ２８３を判定し（５１０）、“０”の場合は、エラー処理を実行する（５１２）。上記フラグ２７３が“１”の場合は、ＤＭＡコントローラ１５Ｂに指令して、バッファメモリ２２のアドレスＲＡが指すブロックＢＭ（ＲＡ）に蓄積された送信パケットを送信バッファ１３ＢへＤＭＡ転送する（５１４）。次に、不要となったアドレスＡｘ（＝ＲＡ）を空きアドレスキュー２６に解放し（５１６）、 Ｔｘディスクリプタ・テーブル２８−ｉにおいて、エントリＴｘＴＢＬ（ＴｘＨＰ）のフラグ２８３を“０”に変更し（５１８）、ポインタＴｘＨＰの値をインクリメントし（５２０）、この値を処理装置２０が参照できるように、ルーティング制御装置５０側に記憶されたポインタＴｘＨＰに反映する（５２２）。この後、Ｔｘディスクリプタ・テーブル２８−ｉに付随するＴｘＴＰの値を読み込み（５２４）、ステップ５０２に戻る。
【００６３】
図１６は、ルーティング制御装置５０のプロセッサ２０が実行する受信パケットの転送処理ルーチン２１３のフローチャートを示す。
このルーチンでは、Ｒｘディスクリプタ・テーブル（ＲｘＴＢＬ）２７−ｉ（ｉ＝１〜ｋ）と、Ｔｘディスクリプタ・テーブル（ＴｘＴＢＬ）２７−ｉ（ｉ＝１〜ｋ）と、これらの各テーブルに付随するポインタの値を初期化（ステップ６０１）した後、 Ｒｘディスクリプタ・テーブル２７−１〜２７−ｋを特定するためのパラメータｉの値を０に設定する（６０２）。
【００６４】
次に、パラメータｉの値をインクリメントし（６０４）、ｉの値がディスクリプタ・テーブルの個数ｋを超えた場合は、ステップ６０２に戻り、そうでない場合は、第ｉ番目のＲｘディスクリプタ・テーブルのポインタＲｘＨＰが指すエントリ：ＲｘＴＢＬ＃ｉ（ＲｘＨＰ）のフラグ２７３をチェックする（６０８）。もし、上記ヘッダが“０”でなければ、このテーブルには有効データを含むエントリが無いものと判断して、ステップ６０４に戻る。
上記フラグ２７３が“０”の場合、エントリＲｘＴＢＬ＃ｉ（ＲｘＨＰ）のフィールド２７１に登録されたアドレスＡｘを読み出しアドレスＲＡに設定して、バッファメモリ２２の上記アドレスＲＡが示すブロックＢＭ（ＲＡ）に蓄積された受信パケットがカプセル化パケットか否かを判定する（６１２）。受信パケットがカプセル化パケットの場合は、図１７に示す変換処理ルーチン７００を実行し、上記受信パケットが通常のＩＰパケットの場合は、図２０に示す変換処理ルーチン８００を実行する。
【００６５】
上記変換処理ルーチン７００または８００を実行することによって、バッファメモリのブロックＢＭ（ＲＡ）にあった受信パケットが送信パケットに変換され、該送信パケットの出力ポート番号ｊが判明する。そこで、上記変換処理ルーチンの実行後に、第ｊ番目のＴｘディスクリプタ・テーブルのポインタＴｘＴＰが指すエントリＴｘＴＢＬ＃ｊ（ＴｘＴＰ）に、上記アドレスＷＡと、送信パケット長を設定し、フラグ２８３を“１”に書き替え（６１４）、ポインタＴｘＴＰの値をインクリメントする（６１６）。また、第ｉ番目のＲｘディスクリプタ・テーブルにおいて、エントリＲｘＴＢＬ＃ｉ（ＲｘＨＰ）のフラグ２７３を“１”に書き替え（６１８）、ポインタＲｘＨＰの値をインクリメント（６２０）した後、ステップ６０４に戻る。
【００６６】
尚、図１４で説明したように、受信パケットが複数ブロックに分割してバッファメモリ２２に蓄積された場合は、上記転送処理ルーチンにおいて、ＲｘＴＢＬを切り替える前に、同一パケットに属した後続のデータブロックを連続的にＴｘＴＢＬ＃ｊに転送する必要がある。この場合、ステップ６１０のアドレスＲＡで読み出された各受信パケットの最初のブロックには、パケット長情報を含むヘッダ部が位置している。従って、最初のブロックをアクセスした時点で、パケット長とブロック長ＭＡＸとの関係から、後続ブロックの数を算出しておき、ステップ６２０を実行後に上記後続ブロック数を判定し、ゼロの場合はステップ６０４に戻り、後続ブロック数が１以上の場合は、ＲｘＴＢＬ＃ｉ（ＲｘＨＰ）から次のアドレスＲＡを入手し、後続ブロック数をデクリメントした後、ステップ６１４に戻るようにすればよい。
【００６７】
図１７は、受信パケットがカプセル化パケットの場合に実行される変換処理ルーチン７００の詳細を示す。
このルーチンでは、バッファメモリ２２のＢＭ（ＲＡ）に蓄積された受信パケットからカプセル化ヘッダを抽出し、ワークエリアに保存すると共に、上記受信パケットのデータ部３１３に設定されたＩＰパケットのヘッダ（ＩＰヘッダ）に含まれる送信元ＩＰアドレスＳＡ（例えば、アドレスＡ）と宛先ＩＰアドレスＤＡ（例えば、アドレスＢ）を抽出する（ステップ７０２）。
【００６８】
次に、上記ＩＰパケットとは逆方向（この例では、ＢからＡに向かう方向）のパケット転送に必要なルートポリシー用エントリ（例えば、図１１のエントリ２５０−２２、図１２のエントリ２５０−３２）を生成し、ルートポリシー・レジスタ（ＲＰＲ）２５に追加する（７０４）。但し、ＳＡ、ＤＡの組合せが上記追加エントリと同一のエントリが既にＲＰＲ２５に登録済みの場合は、新たなエントリの追加はしない。例えば、着側ルータ１Ｂにおいて、ＲＰＲレジスタ２５−Ｂに「上り／下り同一経路」ポロシー用のエントリ２５０Ｐ−３２が既に登録済みの場合は、ステップ７０４では、「ショートカット経路」ポリシー用の新たなエントリ２５０−３２は追加されない。特定のエントリについて、「上り／下り同一経路」ポリシーから「ショートカット経路」ポリシーに変更したい場合は、例えば、入出力装置２９からのオペレータ操作によって、既存の特定エントリを削除するか、エントリ内容の書き替えを行えばよい。
【００６９】
次に、上記ＩＰヘッダのＳＡ、ＤＡの組合せに基いてＲＰＲ２５を検索する（７０６）。上記組合せに該当する目的エントリがＲＰＲ２５にない場合は、通常処理（７１０）を実行する。
上記通常処理（７１０）では、受信パケットを本発明によるルートポリシーを適用しない従来方法によって転送する。すなわち、このノード装置がホームエージェントノードの場合は、宛先ＩＰアドレスＤＡに基いてホームロケーションレジスタ（ＨＬＲ）２３を検索し、上記ＨＬＲ検索で得られたルータＩＰアドレスをカプセル化ヘッダの宛先アドレスＤＡに設定し、この宛先アドレスＤＡに基いてルーティングレジスタ（ＲＴＲ）２４を検索して得られた出力ポートＩＰアドレスをカプセル化ヘッダの送信元アドレスＳＡに設定し、出力ポート番号をパラメータｊに設定して、このルーチンを終了する。このノード装置がルータの場合、上記受信パケットが誤ってカプセル化されたものと判断し、カプセル化ヘッダを取り除いて、ＩＰパケット部分をバッファメモリのブロックＢＭ（ＲＡ）に残した後、変換処理８００を実行する。
【００７０】
ステップ７０８で ＲＰＲ２５で目的のエントリが見つかった場合は、上記エントリのＩＣＭＰフラグ２５５をチェックする（７１２）。もし、フラグが“１”に設定されていた場合は、図１８に示すＩＣＭＰリダイレクトルーチン７５０を実行した後、上記目的エントリにおけるトンネリング宛先アドレス（ＴＤＡ）フィールド２５４の内容をチェックする（７２０）。
トンネリング宛先アドレス（ＴＤＡ）フィールド２５４で“ＣＮＶ”が指定されていた場合は、受信パケットのＩＰヘッダＤＡに基いてホームロケーション・レジスタＨＬＲ２３を検索し（７２２）、ＨＬＲに着側ルータＩＰアドレス２３２として登録されているアドレスを上記ワークエリアにあるカプセル化ヘッダの宛先アドレスＤＡに設定する（７２４）。この場合、カプセル化ヘッダの送信元アドレスＳＡとしては、受信パケットのカプセル化ヘッダに付された送信元アドレスがそのまま生かされる。
この後、上記宛先アドレスＤＡに基いて、ルーティングレジスタＲＴＲ２４を検索（７２６）し、バッファメモリ２２にある受信パケットのカプセル化ヘッダを上記ワークエリアの内容に書き替え（７４２）、上記ＲＴＲ検索で得られた出力ポート番号２４３をパラメータｊに設定して、このルーチンを終了する。尚、上記ステップ７２２〜７２６は、ホームエージェントノード２に固有の処理であり、着側および発側ルータ１ｄでは実行されない。
【００７１】
ＴＤＡフィールド２５４が“ＣＮＶ”でなかった場合は、“ＮＯＮＥ”か否かを判定する（７３０）。もし、ＴＤＡフィールド２５４で“ＮＯＮＥ”が指定されてれいた場合は、ＩＰヘッダＤＡに基いてルーティングレジスタ２４を検索し（７３２）、バッファメモリ２２のブロックＢＭ（ＲＡ）の受信パケットをカプセル化ヘッダの除去されたＩＰパケットに変更し（７３４）、ステップ７４４に進む。
この実施例では、ＴＤＡフィールド２５４が“ＣＮＶ”、“ＮＯＮＥ”以外の場合、 ＴＤＡフィールドは具体的なＩＰアドレス値を含む。図１０に示したルートポリシー・レジスタ２５−Ａでは、エントリ２５０−１１のＴＤＡフィールドが“ＤＵＰ”となっているが、上記エントリ２５０−１１は、ＩＰパケット受信時に実行される変換処理８００が扱うものであり、カプセル化パケット受信時に実行される変換処理７００には関係しない。
ＴＤＡフィールド２５４が具体的なアドレス値を示す場合は、上記アドレスに基いてルーティング・レジスタ（ＲＴＲ）２４を検索し（７３６）、ワークエリアにあるカプセル化ヘッダの送信元アドレスＳＡに上記ＲＴＲが指定する出力ポートアドレスを設定し（７３８）、上記カプセル化ヘッダの宛先アドレスＤＡに上記ＴＤＡフィールド２５４が示すアドレス値を設定し（７４０）、ステップ７４２に進む。
【００７２】
図１８は、ＩＣＭＰリダイレクトルーチン７５０の詳細を示す。
このルーチンでは、ワークエリアにあるカプセル化ヘッダの送信元アドレスＳＡに基いてルーティングレジスタ（ＲＴＲ）２４を検索し（７５２）、ＲＴＲ２４が指定する出力ポート番号をパラメータｐに設定する（７５４）。次に、ＩＣＭＰリダイレクトメッセージのＩＰパケットを生成し（７５６）、空きアドレスキュー２６から入手した空きアドレスを書込みアドレスＷＡに設定し（７５８）、上記アドレスＷＡで特定されるバッファメモリのメモリブロックＢＭ（ＷＡ）に上記ＩＣＭＰのパケットを書き込む（７６０）。上記ＩＣＭＰリダイレクトメッセージは、宛先ノードに対して、特定の送信元ＩＰアドレスと宛先ＩＰアドレスを持つパケットに関するルーティング情報の変更を要求する内容となっている。
【００７３】
この後、ｐ番目のＴＸディスクリプタ・テーブルのＴｘＴＰが指すエントリ領域ＴｘＴＢＬ＃ｐ（ＴｘＴＰ）に、上記書込みアドレスＷＡと、ＩＣＭＰパケットのパケット長と、フラグ１とを設定し（７６２）、上記ポインタＴｘＴＰをインクリメントし（７６４）、ルートポリシー・レジスタＲＰＲの目的エントリのＩＣＭＰフラグ２５５を“０”に変更（７６６）して、本ルーティンを終了する。
【００７４】
上述した変換処理７００を実行することによって、図３〜図６に示した受信カプセル化パケット３２０から送信カプセル化パケット３３０への変換、受信カプセル化パケット３３０から送信ＩＰパケット３１０への変換、ＩＣＭＰリダイレクトメッセージ３４０の発行、受信カプセル化パケット３５０から送信ＩＰパケット３１０'への変換、受信カプセル化パケット３７０から送信カプセル化パケッ３８０への変換が行われる。
【００７５】
図１９は、受信パケットがＩＰパケットの場合に実行される変換処理ルーチン８００の詳細を示す。
このルーチンでは、受信パケットのＩＰヘッダＳＡとＩＰヘッダとの組合せに該当するエントリをルートポリシー・レジスタ（ＲＴＲ）２５で検索する（８０２）。
ＲＴＲ２５に目的のエントリが見つからなかった場合（８０４）は、ＩＰヘッダＤＡに基いてルーティングレジスタ（ＲＴＲ）２４を検索し（８０６）、ＲＴＲ２４が指定する出力ポート番号をパラメータｊに設定する（８２４）。更に、受信パケットが自ノード宛てのＩＣＭＰリダイレクト・メッセージか否かを判定し（８２６）、自ノード宛てのＩＣＭＰリダイレクト・メッセージの場合は、ルートポリシー・レジスタ２５を更新して（８２８）、このルーチンを終了する。
例えば、図４に示したように、発側ルータ１Ａが着側ルータ１ＢからＩＣＭＰパケット３４０を受信した場合、発側ルータ１Ａは、ルートポリシー・レジスタ２５−Ａのエントリ２５０−１１に優先して実行される新たなエントリ２５０Ｐ−１１を追加する。
【００７６】
ＲＰＲ２５に目的エントリが登録されていた場合は、ワークエリアにカプセル化ヘッダを生成し（８０８）、上記目的エントリのトンネリング宛先アドレス（ＴＤＡ）フィールド２５４が“ＤＵＰ”か否かえを判定する（８１０）。もし、“ＤＵＰ”が指定されていた場合は、受信パケットＩＰヘッダの宛先アドレスＤＡに基いてルーティングレジスタ（ＲＴＲ）２４を検索（８１２）し、ワークエリアにあるカプセル化ヘッダの宛先アドレスに上記ＩＰヘッダの宛先アドレスＤＡを設定し（８１４）、上記カプセル化ヘッダの送信元アドレスに上記ＲＴＲで指定された出力ポートアドレスを設定し（８２０）、アドレスＲＡで特定されるバッファメモリ２２のブロックＢＭ（ＲＡ）の内容を上記カプセル化パケットでカプセル化された受信パケットに置換えた後（８２２）、ステップ８２４に進む。
上記目的エントリのトンネリング宛先アドレス（ＴＤＡ）フィールド２５４が“ＤＵＰ”以外の場合は、上記ＴＤＡフィールドが具体的なアドレスを示しているため、上記ＴＤＡフィールドが示すアドレスに基いてルーティングレジスタ（ＲＴＲ）２４を検索し（８１６）、カプセル化ヘッダの宛先アドレスに上記ＴＤＡフィールドが示すアドレスを設定して（８１８）、ステップ８２０に進む。
【００７７】
上記変換処理８００の実行によって、図３に示した受信Ｐパケット３１０から送信カプセル化パケット３２０への変換、図５に示した受信ＩＰパケット３１０'から送信カプセル化パケット３５０への変換が行われる。また、着側ルータ１Ｂのルートポリシー・レジスタ２５−Ｂに「上り／下り同一経路」ポリシーのエントリ２５０Ｐ−３２が登録されてた場合は、図６に示した受信ＩＰパケット３６０から送信カプセル化パケット３７０への変換が可能となる。  
以上の実施例では、初期状態において、発側ルータが、発側端末からの受信パケットを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、これを着側ルータにトンネリング通信した。本発明の変形例として、発側ルータが、発側端末からの受信パケットを発側ホームエージェントノードにトンネリング通信し、発側ホームエージェントノードが、これを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、発側ルータに対してＩＣＭＰリダイレクトメッセージを送信することによって、以後、発側ルータから着側ホームエージェントノードへトンネリング通信するようにしてもよい。
【００７８】
図１では、入力インタフェース１１Ａと出力インタフェース１１Ｂにそれぞれ専用のマイクロコントローラとＤＭＡコントローラを設けたが、マイクロコントローラとＤＭＡコントローラを上記２つのインタフェースで共有し、１つのマイクロコントローラ１４が、受信処理４００と送信処理５００をパケット単位で交互に繰り返すようにしてもよい。
図１０〜図１２では、ルートポリシー・レジスタ２５の各エントリが、送信元ＩＰアドレスと宛先ＩＰアドレスとの特定の組合せに対してヘッダ処理規則を定義しているが、ＩＰアドレスフィールド２５１、２５２の少なくとも一方に、複数の端末アドレスを包含するマスクされたＩＰアドレスを適用することによって、１つのエントリで端末グループ間通信のヘッダ処理規則を定義するようにしてもよい。
【００７９】
また、実施例では、ショートカット経路ポリシーが指定されていた場合、図１０に示したように、発側ルータ１Ａが、ＩＣＭＰリダイレクトメッセージの受信に応答して、エントリ２５０Ｐ−１１をルートポリシーレジスタに追加し、上記追加エントリ２５０Ｐ−１１を元のエントリ２５０−１１に優先させることによって、その後に受信された端末５Ａ（送信元アドレスＡ）から端末５Ｂ（宛先アドレスＢ）宛てのパケットを着側ルータ１Ｂにトンネリング通信するようにした。ここで、追加エントリ２５０Ｐ１１を何時までも残しておくと、端末５Ａ−５Ｂ間の次回の通信時に、端末５Ａが送信した全てのパケットが上記追加エントリに従ってルータ１Ｂに転送されてしまい、もし、この時点で着側端末５Ｂが別ルータの管轄範囲に位置移動していた場合は、上記パケットが端末５Ｂに全く届かなくなるという問題がある。
【００８０】
従って、ルータ１Ａでは、上記エントリ２５０Ｐ−１１の追加時に元のエントリ２５０−１１を保存しておくことが望ましい。また、上記エントリ２５０Ｐ−１１は適当なタイミングで消去し、元のエントリ２５０−１１を有効にすることによって、端末５Ａから端末５Ｂ宛てのパケットを再度、着側ホームエージェントノード２ａ経由とすることが望ましい。同様に、着側ルータ１Ｂにおいても、２５０−３１のＩＣＭＰフラグ２５５を適当なタイミングで“１”に戻すことが望ましい。これらの修正は、例えば、ルートポリシーレジスタ２５内の修正対象となる各エントリ（２５０Ｐ−１１、２５０−３１）にプログラムタイマを設け、エントリ参照の都度、タイマをリセットし、参照されないままタイムアウトとなったエントリについて、追加エントリであれば削除、フラグ付きエントリであればＩＣＭＰフラグの再セットを行うようにすればよい。
【００８１】
以上の説明から明らかなように、本発明によれば、送信元と宛先（送信先）との組合せに応じて経路選択のポリシーを指定することによって、発側ノードと着側ノードとの間のトンネリング数を減少したパケット通信が可能となるため、パケットの転送遅延を低減できる。また、経路選択ポリシーとして、ショートカット経路を適用した場合は、転送遅延の減少の他に、ホームエージェントノードの負荷を低減できるという利点があり、上り下り同一経路を適用した場合は、上り、下りの両方向の従量課金を同一のホームエージェントノードで行うことができるため、課金が容易になるという利点がある。
また、実施例で示したルートポリシーレジスタのように、ヘッダ処理規則を記述したエントリテーブルを参照して、受信パケットから送信パケットへの変換を行う本発明の経路選択機能は、ルータ、ブルータ、またはホームエージェントノードと言った異種機能のノード装置に対して統一的に適用できる。
【図面の簡単な説明】
【００８２】
【図１】本発明によるノード装置の１実施例を示すブロック図。
【図２】本発明を適用する移動体通信システムの１例を示す図。
【図３】本発明において発側ノードから着側ノードへ転送されるパケッのトフォーマット変換過程を説明するための図。
【図４】本発明においてショートカット経路指定時に着側ノードから発側ノードに送信されるＩＣＭＰリダイレクトメッセージ・パケットを説明するための図。
【図５】ショートカット経路選択の結果、発側ノードから着側ノードにトンネリング通信されるパケットのフォーマット変換過程を説明するための図。
【図６】本発明において上り/下り同一経路指定時に着側ノードから発側ノードにトンネリング通信されるパケットのフォーマット変換過程を説明するための図。
【図７】図１に示したノード装置における空きアドレスキュー２６、Ｒｘディスクリプタテーブル２７、Ｔｘディスクリプタテーブル２８の関係を説明するための図。
【図８】図１におけるホームロケーション・レジスタ２３の構成を示す図。
【図９】図１におけるルーティング・レジスタ２４の構成の１例を示す図。
【図１０】図３における発側ルータ１Ａが備えるルートポリシー・レジスタ２５−Ａの構成を示す図。
【図１１】図３におけるホームエージェントノード２ｂが備えるルートポリシー・レジスタ２５−ｂの構成を示す図。
【図１２】図３における着側ルータ１Ｂが備えるルートポリシー・レジスタ２５−Ｂの構成を示す図。
【図１３】図１に示す入力インタフェース１１Ａのマイクロコントローラ１４Ａが実行するパケット受信処理ルーチンの１実施例を示すフローチャート。
【図１４】図１３に示したパケット受信処理ルーチンの変形例を示すフローチャート。
【図１５】図１に示す出力インタフェース１１Ｂのマイクロコントローラ１４Ｂが実行するパケット送信処理ルーチンの１実施例を示すフローチャート。
【図１６】図１に示すルーティング制御装置５０の処理装置２０が実行する受信パケット転送処理ルーチン２１３の１実施例を示すフローチャート。
【図１７】図１６に示した受信パケット転送処理ルーチンにおける変換処理７００の詳細を示すフローチャート。
【図１８】図１７に示した変換処理７００におけるＩＣＭＰリダイレクトステップ７５０の詳細を示すフローチャート。
【図１９】図１６に示した受信パケット転送処理ルーチンにおける変換処理８００の詳細を示すフローチャート。
【符号の説明】
【００８３】
１（１Ａ、１Ｂ）：ルータ、  ２（２ａ、２ｂ）：ホームエージェントノード、
３（３Ａ−１３〜３Ｂ−ｎ）：基地局制御装置、
４（４Ａ−１１〜４Ｂ−１ｍ）：無線基地局、  ５（５Ａ〜５Ｂ）：移動端末、
１０（１０−１〜１０−ｋ）：インタフェースボード、
１１Ａ：入力インタフェース、  １１Ｂ：出力インタフェース、
１２Ａ：入力回線インタフェース、  １２Ｂ：出力回線インタフェース、
１３Ａ：受信バッファ、  １３Ｂ：送信バッファ、
１４Ａ、１４Ｂ：マイクロコントローラ、１５Ａ、１５Ｂ：ＤＭＡコントローラ、
１６Ａ、１６Ｂ：ディスクリプタエントリ・メモリ、
２０：プロセッサ、  ２１：プログラムメモリ、  ２２：バッファメモリ、
２３：ホームロケーション・レジスタ、  ２４：ルーティングレジスタ、
２５：ルートポリシー・レジスタ、  ２６：空きアドレスキュー・メモリ、
２７（２７−１〜２７−ｋ）：Ｒｘディスクリプタ・テーブル、
２８（２８−１〜２８−ｋ）：Ｔｘディスクリプタ・テーブル、
２９：入出力装置、  ５０：ルーティング制御装置。
【図１】
2007068225.tif 000003
【図２】
2007068225.tif 000004
【図３】
2007068225.tif 000005
【図４】
2007068225.tif 000006
【図５】
2007068225.tif 000007
【図６】
2007068225.tif 000008
【図７】
2007068225.tif 000009
【図８】
2007068225.tif 000010
【図９】
2007068225.tif 000011
【図１０】
2007068225.tif 000012
【図１１】
2007068225.tif 000013
【図１２】
2007068225.tif 000014
【図１３】
2007068225.tif 000015
【図１４】
2007068225.tif 000016
【図１５】
2007068225.tif 000017
【図１６】
2007068225.tif 000018
【図１７】
2007068225.tif 000019
【図１８】
2007068225.tif 000020
【図１９】
2007068225.tif 000021