JP2007068225A - ノード装置 - Google Patents
ノード装置 Download PDFInfo
- Publication number
- JP2007068225A JP2007068225A JP2006308864A JP2006308864A JP2007068225A JP 2007068225 A JP2007068225 A JP 2007068225A JP 2006308864 A JP2006308864 A JP 2006308864A JP 2006308864 A JP2006308864 A JP 2006308864A JP 2007068225 A JP2007068225 A JP 2007068225A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- address
- destination
- node
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】移動端末間で通信されるIPパケットの経路選択モードを多様化したパケット通信方法およびノード装置を提供する。
【解決手段】宛先アドレスに対応してルーティング情報を定義した第1メモリ24と、送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した第2メモリ25と、第2メモリに定義されたヘッダ処理規則に従って受信パケットを送信パケットに変換し、送信パケットを第1メモリに定義されたルーティング情報に従った出力ポートに送出するためのルーティング制御装置50とを有するノード装置。
【選択図】図1
【解決手段】宛先アドレスに対応してルーティング情報を定義した第1メモリ24と、送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した第2メモリ25と、第2メモリに定義されたヘッダ処理規則に従って受信パケットを送信パケットに変換し、送信パケットを第1メモリに定義されたルーティング情報に従った出力ポートに送出するためのルーティング制御装置50とを有するノード装置。
【選択図】図1
Description
本発明は、パケット通信網におけるノード装置およびパケット通信方法に関し、更に詳しくは、移動端末と結合されるパケット通信網におけるノード装置およびパケット通信方法に関する。
近年、WWW(World Wide Web)等のアプリケーションの登場により、インターネットプロトコル(Internet Protocol:IP)をベースとしたパケット通信網におけるトラフィックが増大している。インターネットでは、網間を接続するノード装置が、IPルーティングプロトコルに基づいて更新されるルーティングテーブルを具備し、受信パケットのヘッダに含まれる宛先IPアドレスに基いて上記ルーティングテーブルを参照することによって、各受信パケットの出力方路を決定している。
然るに、インターネットは、従来、移動端末に対するサポート機能が不充分であったため、専ら固定端末間通信に適用されてきた。移動端末が他の固定端末または移動端末との間でIPパケットを交信するためには、例えば、PPP(Point to Point Protocol)等のデータリンク層プロトコルによって、移動端末とネットワーク側の固定サーバ(例えば、PPPサーバ)との間に予めコネクションを確立しておき、上記固定サーバをルータとして動作させる必要がある。
上記方式は、IPパケットの交信に先だって移動端末が固定サーバに接続されていることが前提となっているため、移動端末が発側となって他の端末との通信を開始する場合には問題はない。しかしながら、移動端末を着側端末として通信を開始しようとしても、着側端末が固定サーバに接続されていないために、移動端末に対してIPパケットを交換できない。すなわち、上記従来方式には、通常の電話通信のように、通信相手となる移動端末に呼び出し(ページング)をかけてから通信を開始する機能がサポートされていない。
上記方式は、IPパケットの交信に先だって移動端末が固定サーバに接続されていることが前提となっているため、移動端末が発側となって他の端末との通信を開始する場合には問題はない。しかしながら、移動端末を着側端末として通信を開始しようとしても、着側端末が固定サーバに接続されていないために、移動端末に対してIPパケットを交換できない。すなわち、上記従来方式には、通常の電話通信のように、通信相手となる移動端末に呼び出し(ページング)をかけてから通信を開始する機能がサポートされていない。
通常の電話システムと同様に移動端末を呼び出し、移動端末へのIPパケットの交換をサポートするための網アーキテクチャとして、ITUのIMT−2000を基本とした様々な提案が検討中で、その1つとして、ETSI:「GSM 03.60 Stage2 Service Description of the General Packet Radio Service (GPRS)」がある。
GPRS方式に基づくパケット交換網は、通常の電話交換システムと同様に、加入者交換機と関門(ゲートウェイ)交換機とからなり、電話器からの呼制御と略同様の信号手順で発側端末(固定または移動端末)から着側移動端末を呼び出した後、発側移動端末から着側移動端末に向けてIPパケットを送信する。
GPRS方式に基づくパケット交換網は、通常の電話交換システムと同様に、加入者交換機と関門(ゲートウェイ)交換機とからなり、電話器からの呼制御と略同様の信号手順で発側端末(固定または移動端末)から着側移動端末を呼び出した後、発側移動端末から着側移動端末に向けてIPパケットを送信する。
発側端末と着側端末が共に移動端末の場合、IPパケットは、発信者(発側移動端末)が位置するビジタ加入者交換機(発側ノード)を介して、発信者の本拠地(ホーム)にある関門交換機(発側ホームエージェントノード)に送られる。この時、ビジタ加入者交換機(発側ノード)は、発側移動端末から受信したIPパケットに新たなヘッダ(カプセル化ヘッダ)を付し、発信者のホーム関門交換機に対して、トンネリング方式で受信パケットを送信する。
発信者ホーム関門交換機は、受信パケットからカプセル化ヘッダを除去(デカプセル化)し、元のIPパケットのヘッダ部にある宛先IPアドレスに基いて、受信者(着側移動端末)のホーム関門交換機(着側ホームエージェントノード)を特定する。上記発信者ホーム関門交換機も、受信IPパケットに新たなヘッダ(カプセル化ヘッダ)を付し、受信者のホーム関門交換機に対して、トンネリング方式で受信パケットを送信する。
発信者ホーム関門交換機は、受信パケットからカプセル化ヘッダを除去(デカプセル化)し、元のIPパケットのヘッダ部にある宛先IPアドレスに基いて、受信者(着側移動端末)のホーム関門交換機(着側ホームエージェントノード)を特定する。上記発信者ホーム関門交換機も、受信IPパケットに新たなヘッダ(カプセル化ヘッダ)を付し、受信者のホーム関門交換機に対して、トンネリング方式で受信パケットを送信する。
受信者のホーム関門交換機は、受信パケットをデカプセル化し、元のIPパケットのヘッダ部にある宛先IPアドレスが示す着側移動端末のホームIPアドレスをキーにして、着側移動端末の現在位置が登録されているホームロケーション・レジスタを参照する。これによって、着側移動端末が現在位置しているビジタ加入者交換機(着側ノード)が特定される。着側移動端末に通信可能なビジタ加入者交換機が判明すると、受信者ホーム関門交換機は、上記IPパケットを再びカプセル化し、受信者のビジタ加入者交換機に対してトンネリング方式で受信パケットを送信する。受信者のビジタ加入者交換機は、上記受信パケットをデカプセル化して元のIPパケットを復元し、これを着側移動端末が位置する無線基地局の接続ポートに転送する。
IPパケットをカプセル化して送信するノードと、受信したカプセル化パケットをデカプセル化して元のIPパケットを復元するノードとの間の通信区間は、一般に「トンネル」と呼ばれている。上述したGPRS方式による移動端末間パケット通信の例では、発信者のビジタ加入者交換機とホーム関門交換機間、発信者ホーム関門交換機と受信者のホーム関門交換機間、受信者のホーム関門交換機とビジタ加入者交換機間の合計3本のトンネルが形成されている。
上記従来の移動端末間のパケット通信では、発側移動端末から着側移動端末への送信IPパケットの転送過程で3回のトンネリング通信を必要としており、各トンネルの両端に位置したノード装置(加入者交換機または関門交換機)で受信パケットのカプセル化とデカプセル化が繰り返されるため、IPパケットの転送遅延が大きくなるという問題がある。この問題は、着側移動端末から発側移動端末への送信パケットの転送過程でも同様に発生する。
本発明の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、パケットの転送遅延を減少させることにある。
本発明の他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、少ないトンネリング通信回数で受信パケットを宛先端末に転送できるノード装置およびパケット通信方法を提供することにある。
本発明の他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、少ないトンネリング通信回数で受信パケットを宛先端末に転送できるノード装置およびパケット通信方法を提供することにある。
上述した従来のGPRS方式の移動端末間パケット通信では、移動端末からの受信パケットを各移動端末の現在位置を管理している発側および着側のホームエージェントノード(ホーム関門交換機)を経由して、着側ノード(着側ビジタ加入者交換機)に転送にしている。上記GPRS方式で形成される3本のトンネルのうち、重要なトンネルは、着側のホームエージェントノードと着側ノードとの間に形成される最後のトンネルであり、発側ノードから発側ホームエージェントノードへのトンネルを省略し、発側ノードから着側ホームエージェントノードに直接的にトンネリングしても差し支えない。
然るに、従来技術において、パケットを着側のホームエージェントノード経由で転送にしている理由は、パケット通信中の着側端末が移動して着側ノードが切り替わった場合でも、着側ホームエージェントノードから新たな着側ノードに受信パケットを適切に転送できるようにするためであり、通信中の着側端末の移動範囲が大きいことが前提にある。
然るに、従来技術において、パケットを着側のホームエージェントノード経由で転送にしている理由は、パケット通信中の着側端末が移動して着側ノードが切り替わった場合でも、着側ホームエージェントノードから新たな着側ノードに受信パケットを適切に転送できるようにするためであり、通信中の着側端末の移動範囲が大きいことが前提にある。
本発明の他の目的は、移動端末の移動範囲が比較的小さく、通信中に着側ノードの切り替えがほとんど発生しない端末間通信において、適切なルーティングモードを選択できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、ホームエージェントノードに無関係に最適なルートで受信パケットを転送できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするIPパケット通信において、IPパケットの送信元アドレスと宛先アドレスとの組合せに応じて、ルーティングモードを選択的に指定できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするパケット通信において、ホームエージェントノードに無関係に最適なルートで受信パケットを転送できるノード装置およびパケット通信方法を提供することにある。
本発明の更に他の目的は、発側端末と着側端末の少なくとも一方を移動端末とするIPパケット通信において、IPパケットの送信元アドレスと宛先アドレスとの組合せに応じて、ルーティングモードを選択的に指定できるノード装置およびパケット通信方法を提供することにある。
上記目的を達成するために、本発明のノード装置は、パケットの宛先アドレスに対応してルーティング情報を定義した複数のエントリからなる第1メモリ(ルーティングレジスタ)と、パケットの送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した複数のエントリからなる第2メモリ(ルートポリシーレジスタ)と、上記第2メモリに定義されたヘッダ処理規則に従って受信パケットを送信パケットに変換し、該送信パケットを上記第1メモリに定義されたルーティング情報に従った出力ポートに送出するための制御装置とを有することを特徴とする。
上記第2メモリの各エントリは、IPパケットのヘッダに含まれる送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義しており、各ヘッダ処理規則は、トンネリング通信用の送信元アドレスと宛先アドレスの決定規則またはアドレス値を示し、上記制御装置は、受信したIPパケット、または、カプセル化された受信パケットをデカプセル化して得られたIPパケットの送信元アドレスと宛先アドレスに基いて、上記第2メモリを参照し、受信パケットから送信パケットへの変換処理を行う。
更に具体的に言うと、上記第2メモリは、例えば、トンネリング通信用の送信元アドレスとして、該エントリに定義されたトンネリング通信用の宛先アドレスに基いて前記第1メモリから検索されたIPアドレスの適用を指示するアドレス決定規則(“SELF”)を含む。他の例として、上記第2メモリは、トンネリング通信用の宛先アドレスとして、該エントリに定義されたIPヘッダの宛先アドレスの適用を指示するアドレス決定規則(“DUP”)、あるいは、トンネリング通信用の宛先アドレスおよび送信元アドレスの削除を指示するアドレス決定規則(“NONE”)を含む。
本発明の1実施例によれば、上記第2メモリの各エントリは、受信したカプセル化パケットの送信元アドレスに対して、該カプセル化パケットに含まれるIPパケットのトンネリング先の変更を指示する制御パケットの送信要否を示すフラグ情報を含む。
更に具体的に言うと、上記第2メモリは、例えば、トンネリング通信用の送信元アドレスとして、該エントリに定義されたトンネリング通信用の宛先アドレスに基いて前記第1メモリから検索されたIPアドレスの適用を指示するアドレス決定規則(“SELF”)を含む。他の例として、上記第2メモリは、トンネリング通信用の宛先アドレスとして、該エントリに定義されたIPヘッダの宛先アドレスの適用を指示するアドレス決定規則(“DUP”)、あるいは、トンネリング通信用の宛先アドレスおよび送信元アドレスの削除を指示するアドレス決定規則(“NONE”)を含む。
本発明の1実施例によれば、上記第2メモリの各エントリは、受信したカプセル化パケットの送信元アドレスに対して、該カプセル化パケットに含まれるIPパケットのトンネリング先の変更を指示する制御パケットの送信要否を示すフラグ情報を含む。
上述した本発明のノード装置の構成は、インターネット網において発側ノード、着側ノードとして機能するルータの他に、ホームエージェントノードにも適用できる。ホームエージェントノードは、上述した第1、第2メモリの他に、パケットの宛先アドレスと着側ノードアドレスとの対応関係を記憶した第3メモリ(ホームロケーション・レジスタ)を備え、上記第2メモリのエントリの1つが、例えば、トンネリング通信用の宛先アドレスとして、該エントリに定義されたIPヘッダの宛先アドレスに基いて上記第3メモリから検索された着側ノードアドレスの適用を指示し、トンネリング通信用の送信元アドレスとして、受信したカプセル化パケットの送信元アドレスの適用を指示するアドレス決定規則(“CNV”/“KEEP”)を含む。
本発明のノード装置は、更に具体的に述べると、それぞれ入力ポートと出力ポートとを有する複数のインタフェース装置と、上記各インタフェース装置に結合されたルーティング制御装置とからなり、上記ルーティング制御装置が、上記各インタフェース装置から受信したパケットを蓄積するためのバッファメモリと、パケットの宛先アドレスに対応してルーティング情報を定義した複数のエントリからなる第1メモリと、パケットの送信元アドレスと宛先アドレスとの組合せに対応してヘッダ処理規則を定義した複数のエントリからなる第2メモリと、上記バッファメモリに蓄積された受信パケットを上記第2メモリに定義されたヘッダ処理規則に従って送信パケットに変換し、該送信パケットを上記第1メモリに定義されたルーティング情報に従って選択されたインタフェース装置に転送するためのプロセッサとを有することを特徴とする。
本発明の好ましい実施例によれば、上記ノード装置は、各インタフェース装置と対応して用意された受信用ディスクリプタテーブルと送信用ディスクリプタテーブルとを備える。この場合、各インタフェース装置は、受信パケットの前記バッファメモリへの格納アドレスを上記受信用ディスクリプタテーブルを介して上記プロセッサに通知し、上記プロセッサが、上記受信用ディスクリプタテーブルを巡回的に参照し、該テーブルに記憶された格納アドレスに基いて前記バッファメモリをアクセスして前記受信パケットから送信パケットへの変換を行い、各送信パケットの格納アドレスを該送信パケットを出力すべきインタフェース装置と対応した送信用ディスクリプタテーブルに書込み、上記各インタフェース装置が、上記送信用ディスクリプタテーブルに記憶された格納アドレスに基いて前記バッファメモリから送信パケットを読み出し、付随する出力ポートに送出する。
本発明の特徴の1つは、それぞれ端末装置とパケットを送受信する発側および着側の各ノード装置が、移動端末の位置情報を管理するホームエージェントノードを経由することなく、直接的にトンネリング通信することによって、上りと下りの2方向のパケットをショートカット経路で送受信するための手段を備えたことにある。
具体的に言うと、本発明は、移動端末の位置情報を管理する少なくとも1つのホームエージェントノードを含むネットワークに接続されるノード装置において、第1端末から移動端末装置である第2端末宛てに送信したIPパケットをカプセル化し、該カプセル化されたパケットを上記第2端末の位置情報を管理するホームエージェントノード宛てに送信する第1のトンネリング通信モードと、上記第1端末が上記第2端末宛てに送信した後続のIPパケットをカプセル化し、該カプセル化されたパケットを上記ホームエージェントノードと第2端末との間に介在している着側ノード宛てに送信する第2のトンネリング通信モードとを有し、上記第1のトンネリング通信モードから第2のトンネリング通信モードに自動的に切り替えるための手段を備えたことを特徴とする。
具体的に言うと、本発明は、移動端末の位置情報を管理する少なくとも1つのホームエージェントノードを含むネットワークに接続されるノード装置において、第1端末から移動端末装置である第2端末宛てに送信したIPパケットをカプセル化し、該カプセル化されたパケットを上記第2端末の位置情報を管理するホームエージェントノード宛てに送信する第1のトンネリング通信モードと、上記第1端末が上記第2端末宛てに送信した後続のIPパケットをカプセル化し、該カプセル化されたパケットを上記ホームエージェントノードと第2端末との間に介在している着側ノード宛てに送信する第2のトンネリング通信モードとを有し、上記第1のトンネリング通信モードから第2のトンネリング通信モードに自動的に切り替えるための手段を備えたことを特徴とする。
また、本発明は、第1端末と通信する第1ノード装置と、移動端末装置である第2端末の位置情報を管理しているホームエージェントノード装置と、上記第2端末と通信する第2ノードとを含む通信ネットワークにおけるパケット通信方法において、(a)上記第1ノード装置が、第1端末から受信した第2端末宛てのIPパケットに、該第1ノード装置のIPアドレスを送信元アドレスとして含むカプセル化パケットに変換して送信するステップと、(b)上記カプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのヘッダを、送信元アドレスとして上記第1ノード装置のIPアドレスを含み、宛先アドレスとして上記第2ノード装置のIPアドレスを含むカプセル化ヘッダに変換して送信するステップと、(c)上記ホームエージェントノード装置から送信されたカプセル化パケットを受信した上記第2ノード装置が、受信パケットをデカプセル化して得られたIPパケットを上記第2端末に送信すると共に、上記受信パケットに送信元アドレスとして含まれる上記第1ノード装置のIPアドレスを利用して、上記第1ノード装置宛に、上記第1端末から第2端末宛てのIPパケットのルート変更を要求する制御パケットを送信するステップと、(d)上記制御パケットを受信した第1ノード装置が、第1端末から受信した第2端末宛てのIPパケットをカプセル化し、上記第2ノード宛てに送信するステップとからなることを特徴とする。
上記パケット通信方法によれば、第1端末から第2端末への送信パケットのルーティングモードが、ホームエージェントノード装置を経由するモードからホームエージェントノードを経由しないショートカットモードに自動的に切り替えられる。この場合、第2ノード装置は、第2端末から送信された第1端末宛てのIPパケットを受信した時、受信パケットをカプセル化し、第1ノード装置宛てに送信する。
上記パケット通信方法によれば、第1端末から第2端末への送信パケットのルーティングモードが、ホームエージェントノード装置を経由するモードからホームエージェントノードを経由しないショートカットモードに自動的に切り替えられる。この場合、第2ノード装置は、第2端末から送信された第1端末宛てのIPパケットを受信した時、受信パケットをカプセル化し、第1ノード装置宛てに送信する。
本発明の特徴の1つは、それぞれ端末装置とパケットを送受信する発側および着側の各ノード装置が、移動端末の位置情報を管理する同一のホームエージェントノードに対してトンネリング通信することによって、上りと下りの2方向のパケットを同一経路で送受信するための手段を備えたことを特徴とする。
具体的に言うと、本発明は、移動端末の位置情報を管理する複数のホームエージェントノードを含むネットワークに接続されたノード装置において、移動端末装置である第1端末の位置情報を管理する第1ホームエージェントノードから、第2端末が上記第1端末宛てに送信したIPパケットのカプセル化パケットを受信した時、該カプセル化パケットのヘッダを除去し、得られたIPパケットを上記第1端末に転送するための手段と、上記第1端末から上記第2端末に宛てたIPパケットを受信した時、該受信パケットをカプセル化し、上記第1ホームエージェントノード宛てに送信するための手段と、第3端末から上記第2端末宛てに送信したIPパケットを受信した時、該受信パケットをカプセル化し、上記第2端末の位置情報を管理する第2ホームエージェントノード宛てに送信するための手段とを備えたことを特徴とする。
具体的に言うと、本発明は、移動端末の位置情報を管理する複数のホームエージェントノードを含むネットワークに接続されたノード装置において、移動端末装置である第1端末の位置情報を管理する第1ホームエージェントノードから、第2端末が上記第1端末宛てに送信したIPパケットのカプセル化パケットを受信した時、該カプセル化パケットのヘッダを除去し、得られたIPパケットを上記第1端末に転送するための手段と、上記第1端末から上記第2端末に宛てたIPパケットを受信した時、該受信パケットをカプセル化し、上記第1ホームエージェントノード宛てに送信するための手段と、第3端末から上記第2端末宛てに送信したIPパケットを受信した時、該受信パケットをカプセル化し、上記第2端末の位置情報を管理する第2ホームエージェントノード宛てに送信するための手段とを備えたことを特徴とする。
また、本発明は、第1端末と通信する第1ノード装置と、移動端末装置である第2端末の位置情報を管理しているホームエージェントノード装置と、上記第2端末と通信する第2ノードとを含む通信ネットワークにおけるパケット通信方法において、(a)上記第1ノード装置が、第1端末から受信した第2端末宛てのIPパケットに、該第1ノード装置のIPアドレスを送信元アドレスとして含むカプセル化パケットに変換して送信するステップと、(b)上記カプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのヘッダを、送信元アドレスとして上記第1ノード装置のIPアドレスを含み、宛先アドレスとして上記第2ノード装置のIPアドレスを含むカプセル化ヘッダに変換して送信するステップと、(c)上記ホームエージェントノード装置から送信されたカプセル化パケットを受信した上記第2ノード装置が、受信パケットをデカプセル化して得られたIPパケットを上記第2端末に送信するステップと、(d)上記第2ノード装置が、第2端末から送信された第1端末宛てのIPパケットをカプセル化し、上記ホームエージェントノード装置宛てに送信するステップと、(e)上記第2ノード装置から送信されたカプセル化パケットを受信した上記ホームエージェントノード装置が、受信パケットのカプセル化ヘッダを変換した後、上記第1ノード宛てに送信するステップとを含むことを特徴とする。
本発明の更に他の特徴は、ノード装置が、他のノード装置からカプセル化パケットを受信した時、受信したカプセル化パケットのヘッダ情報に従って、第2メモリへの新たなエントリの追加、または既登録エントリの内容変更を選択的に行うことによって、発側ノードと着側ノードとの間のトンネリングによるパケット通信経路を動的に切り替えるようにした点にある。
本発明によるパケット通信方法の1つの実施例によれば、ホームエージェントノードは、受信したカプセル化パケットをデカプセル化し、新たなカプセル化ヘッダを付加して着側ノードに転送する。この時、ホームエージェントノードは、着側端末から発側端末に向かうパケットの中継に備えて、上記受信カプセル化パケットのヘッダに含まれていた送信元アドレスを記憶した新たなエントリを第2メモリに追加する。
本発明によるパケット通信方法の1つの実施例によれば、ホームエージェントノードは、受信したカプセル化パケットをデカプセル化し、新たなカプセル化ヘッダを付加して着側ノードに転送する。この時、ホームエージェントノードは、着側端末から発側端末に向かうパケットの中継に備えて、上記受信カプセル化パケットのヘッダに含まれていた送信元アドレスを記憶した新たなエントリを第2メモリに追加する。
着側ノードは、ホームエージェントノードからカプセル化パケットを受信した時、上記端末間の通信に関して第2メモリのヘッダ処理規則が、ショートカット経路の選択を指定していれば、着側端末から発側端末に向かうパケットの中継に備えて、上記受信カプセル化パケットのヘッダに含まれていた送信元アドレスを記憶した新たなエントリを第2メモリに追加し、発側ノードにルート変更を指示する制御メッセージを含んだ制御パケットを発行する。
上記制御パケットを受信すると、発側ノードは、第1メモリを書き替えると共に、第2メモリにおける上記端末間のルーティング規則を変更する。但し、ホームエージェントノードからカプセル化パケットを受信した時、着側ノードの第2メモリが、上記端末間の通信に関して他のルーティングモード、例えば、上り下り同一経路の選択が指定されていた場合は、上述した制御パケットの発行と、第2メモリへの新たなエントリの追加はない。
上記制御パケットを受信すると、発側ノードは、第1メモリを書き替えると共に、第2メモリにおける上記端末間のルーティング規則を変更する。但し、ホームエージェントノードからカプセル化パケットを受信した時、着側ノードの第2メモリが、上記端末間の通信に関して他のルーティングモード、例えば、上り下り同一経路の選択が指定されていた場合は、上述した制御パケットの発行と、第2メモリへの新たなエントリの追加はない。
本発明によれば、送信元と宛先(送信先)との組合せに応じて経路選択のポリシーを指定することによって、発側ノードと着側ノードとの間のトンネリング数を減少したパケット通信が可能となるため、パケットの転送遅延を低減できる。
以下、本発明の実施例を図面を参照して説明する。
図2は、本発明を適用する移動体通信システムの構成の1例を示す。
移動体通信システムは、複数の移動端末5(5A、5B)と、それぞれセル内に位置する移動端末5と無線チャネルで通信する複数の無線基地局4(4A−11〜4B−1m)と、これらの無線基地局に接続された基地局制御装置3(3A−1〜3B−n)と、上記基地局制御装置3をネットワーク6に接続するためのノード装置1(1A、1B)と、上記ネットワーク6に接続されたホームエージェントノード2(2a、b)からなる。図では、単一の網として描かれているが、実際のネットワーク6は、相互接続された多数のネットワークを含み、ノード装置間に複数の経路をもつインターネット網となっている。また、ここでは、移動端末5Aと5B間で行うパケット通信について述べるが、本発明は、上記各移動端末と図示しない固定端末との間のパケット通信にも適用できる。
図2は、本発明を適用する移動体通信システムの構成の1例を示す。
移動体通信システムは、複数の移動端末5(5A、5B)と、それぞれセル内に位置する移動端末5と無線チャネルで通信する複数の無線基地局4(4A−11〜4B−1m)と、これらの無線基地局に接続された基地局制御装置3(3A−1〜3B−n)と、上記基地局制御装置3をネットワーク6に接続するためのノード装置1(1A、1B)と、上記ネットワーク6に接続されたホームエージェントノード2(2a、b)からなる。図では、単一の網として描かれているが、実際のネットワーク6は、相互接続された多数のネットワークを含み、ノード装置間に複数の経路をもつインターネット網となっている。また、ここでは、移動端末5Aと5B間で行うパケット通信について述べるが、本発明は、上記各移動端末と図示しない固定端末との間のパケット通信にも適用できる。
各移動端末5は、何れかのホームエージェントノード2にホーム登録されている。各ホームエージェントノードは、移動端末の移動先無線基地局4からの通知によって、管理下にある各移動端末の現在の位置情報を把握しており、ホーム登録されている移動端末宛ての受信パケットを、該移動端末が現在位置している無線基地局4を収容しているノード装置1に転送する。
基地局制御装置3をネットワーク6に接続するノード装置1は、ネットワーク層レベルで宛先制御を行い、ノード間でのルーティング情報の交換によってルーティングテーブルを動的に更新し、最適通信経路を選択する機能を備えたルータによって構成される。但し、上記ノード装置には、ルータ機能の他に、未定義の受信パケットをデータリンク層レベルで中継するブリッジ機能も備えたブルータ(Brouter)を適用してもよい。
基地局制御装置3をネットワーク6に接続するノード装置1は、ネットワーク層レベルで宛先制御を行い、ノード間でのルーティング情報の交換によってルーティングテーブルを動的に更新し、最適通信経路を選択する機能を備えたルータによって構成される。但し、上記ノード装置には、ルータ機能の他に、未定義の受信パケットをデータリンク層レベルで中継するブリッジ機能も備えたブルータ(Brouter)を適用してもよい。
以下、移動端末5Aはホームエージェントノード2aに、移動端末5Bはホームエージェントノード2bにそれぞれホーム登録されているものと仮定して、移動端末5Aから5B宛てにIPパケットを送信した場合に実行される本発明による通信手順と、各ノードの動作について説明する。ここでは、発側移動端末5Aと着側移動端末5BのIPアドレスをそれぞれ「A」、「B」で表し、ノード1Aを発側ルータ、ノード1Bを着側ルータと呼ぶことにする。
図3は、発側移動端末5Aから着側移動端末5Bに送信された最初のIPパケット310が、発側ルータ1Aから着側ホームエージェントノード2bを経て着側ルータの転送される過程で受けるパケットフォーマットの変化を示す。
パケットフォーマットの変換は、後で詳述するように、各ノード1A、1B、2bに用意されたルートポリシー・レジスタ(RPR)25(25A、25B、25b)と、着側ホームエージェントノード2bが備えるホームロケーション・レジスタ(HLR)23bを利用して行われる。
パケットフォーマットの変換は、後で詳述するように、各ノード1A、1B、2bに用意されたルートポリシー・レジスタ(RPR)25(25A、25B、25b)と、着側ホームエージェントノード2bが備えるホームロケーション・レジスタ(HLR)23bを利用して行われる。
本発明では、IPパケットの送信元アドレスSAと宛先アドレスDAとの組合せで同定される特定の端末間通信に関して、発側ノード(発側ルータ)と、ホームエージェントノードと、着側ノード(着側ルータ)の各ルートポリシー・レジスタ(RPR)25に、受信パケットのヘッダ処理規則(ルートポリシー)を予め定義、登録しておくことによって、IPパケットを特殊な伝送ルートで転送することを特徴としている。
典型的なルートポリシーとしては、例えば、発側移動端末から着側移動端末宛て送信された下りパケットの経路と、着側移動端末から発側移動端末宛てに送信された上りパケットの経路とを同一ホームエージェントノード経由とする「上り/下り同一経路」ポリシーと、上り/下り経路をホームエージェントノードに関係しない最適ルートとする「ショートカット経路」ポリシーとがある。
図3は、上記2つのポリシーに共通する本発明の基本的な通信手順を示している。
発側移動端末5Aから送信されたIPパケット310は、データ部(ペイロード部)313とIPヘッダとからなり、IPヘッダの送信元アドレス(SA)311には発側移動端末5Aのアドレス「A」が、また、宛先IPアドレス(DA)312には着側移動端末5Bのアドレス「B」が設定されている。IPヘッダには、IPアドレス以外に、例えば、IPヘッダ長、IPデータグラムの全体長、サービスタタイプ、プロトコルタイプ等、各種の情報が含まれているが、IPアドレス以外の情報は、本発明に特に関係がないため、図面から省略してある。
典型的なルートポリシーとしては、例えば、発側移動端末から着側移動端末宛て送信された下りパケットの経路と、着側移動端末から発側移動端末宛てに送信された上りパケットの経路とを同一ホームエージェントノード経由とする「上り/下り同一経路」ポリシーと、上り/下り経路をホームエージェントノードに関係しない最適ルートとする「ショートカット経路」ポリシーとがある。
図3は、上記2つのポリシーに共通する本発明の基本的な通信手順を示している。
発側移動端末5Aから送信されたIPパケット310は、データ部(ペイロード部)313とIPヘッダとからなり、IPヘッダの送信元アドレス(SA)311には発側移動端末5Aのアドレス「A」が、また、宛先IPアドレス(DA)312には着側移動端末5Bのアドレス「B」が設定されている。IPヘッダには、IPアドレス以外に、例えば、IPヘッダ長、IPデータグラムの全体長、サービスタタイプ、プロトコルタイプ等、各種の情報が含まれているが、IPアドレス以外の情報は、本発明に特に関係がないため、図面から省略してある。
発側ルータ1Aは、入力ポートIN−iからIPパケット310を受信すると、ルートポリシー・レジスタ25Aで定義された変換ルールに従ってカプセル化ヘッダを生成し、受信IPパケット310をカプセル化パケット320に変換して、トンネリング方式で着側ホームエージェントノード2bに転送する。
上記カプセル化パケット320は、データ部313Tに受信IPパケット310を含み、カプセルヘッダの送信元アドレス311Tには、着側ホームエージェントノード2bに向かう伝送路61の接続ポートIPアドレス「CoA1」が設定される。ここでは、伝送路61がトンネルを意味する1本のパイプ記号で表現されているが、実際のネットワークでは、上記トンネル61は、他の複数のノードを経由する複雑なパスとなっている。
上記カプセル化パケット320は、データ部313Tに受信IPパケット310を含み、カプセルヘッダの送信元アドレス311Tには、着側ホームエージェントノード2bに向かう伝送路61の接続ポートIPアドレス「CoA1」が設定される。ここでは、伝送路61がトンネルを意味する1本のパイプ記号で表現されているが、実際のネットワークでは、上記トンネル61は、他の複数のノードを経由する複雑なパスとなっている。
発側ルータ1Aで着側ホームエージェントノード2bのIPアドレス「XX」が既知の場合、カプセル化パケット320の宛先アドレス312TにはIPアドレス「XX」が設定される。もし、着側ホームエージェントノード2bのIPアドレス「XX」が不明の場合は、図3に示すように、宛先アドレス312Tには、受信IPパケット310の宛先IPアドレス「B」を代用する。この場合でも、パケット320は、経路上に位置する各ノード装置における通常のIPルーティングによって、着側ホームエージェントノード2bに到達できる。
着側ホームエージェントノード2bと着側ルータ2Bとの間は伝送路62で接続されている。ここで、着側ルータ2Bにおける上記伝送路62の接続ポートIPアドレスを「CoB1」とする。着側ホームエージェントノード2bは、カプセル化パケット320を受信すると、カプセルヘッダの送信元アドレス311Tはそのままにして、宛先アドレス312Tのみを「CoB1」に書き替え、カプセル化パケット330として伝送路62に送出する。
この場合、受信パケット320の宛先アドレスの値「B」と送信パケット330に付すべき宛先アドレスの値「CoB1」との対応関係は、ホームロケーション・レジスタ23bに予め定義してある。また、受信パケット320から送信パケット330への変換は、ルートポリシー・レジスタ25bに定義されたヘッダ処理規則に従って行われる。
着側ルータ1Bは、カプセル化パケット330を受信すると、データ部313TからIPパケット310を抽出し、宛先移動端末5Bが現在位置する無線基地局4B−11を収容している基地局制御装置3B−1に向かう出力ポートOUT−jに送信する。
この場合、受信パケット320の宛先アドレスの値「B」と送信パケット330に付すべき宛先アドレスの値「CoB1」との対応関係は、ホームロケーション・レジスタ23bに予め定義してある。また、受信パケット320から送信パケット330への変換は、ルートポリシー・レジスタ25bに定義されたヘッダ処理規則に従って行われる。
着側ルータ1Bは、カプセル化パケット330を受信すると、データ部313TからIPパケット310を抽出し、宛先移動端末5Bが現在位置する無線基地局4B−11を収容している基地局制御装置3B−1に向かう出力ポートOUT−jに送信する。
図4は、上記IPアドレスA、B間の通信に関して、ルートポリシー・レジスタ25Bで「ショートカット経路」ポリシーが指定されていた場合の着側ルータ1Bの動作を示す。
この場合、着側ルータ1Bは、上記カプセル化パケット330の受信に応答して、発側ルータ1A宛に通信経路変更を要求する制御メッセージ、例えば、ICMP(Internet Control Message Protocol)リダイレクト(redirect)メッセージを含んだ制御用IPパケット340を生成し、伝送路63に送出する。上記制御用IPパケット340は、宛先アドレス312として、カプセル化パケット330から得られた発側ルータのIPアドレス「CoA1」を含み、送信元アドレス311には、伝送路63の接続ポートのIPアドレス「CoB2」を含む。
図3で述べたカプセル化パケット330からIPパケット310への変換、および図4に示したICMPメッセージの生成は、予めルートポリシー・レジスタ25Bに定義されたヘッダ処理規則と、ICMPフラグに基づいて行われる。
この場合、着側ルータ1Bは、上記カプセル化パケット330の受信に応答して、発側ルータ1A宛に通信経路変更を要求する制御メッセージ、例えば、ICMP(Internet Control Message Protocol)リダイレクト(redirect)メッセージを含んだ制御用IPパケット340を生成し、伝送路63に送出する。上記制御用IPパケット340は、宛先アドレス312として、カプセル化パケット330から得られた発側ルータのIPアドレス「CoA1」を含み、送信元アドレス311には、伝送路63の接続ポートのIPアドレス「CoB2」を含む。
図3で述べたカプセル化パケット330からIPパケット310への変換、および図4に示したICMPメッセージの生成は、予めルートポリシー・レジスタ25Bに定義されたヘッダ処理規則と、ICMPフラグに基づいて行われる。
本発明では、上述したように、発側ルータ1Aで受信パケット310をカプセル化し、カプセル化ヘッダに付された送信元アドレス311Tを着側ホームエージェントノード2bが中継することによって、着側ルータ1Bに発側ルータ1AのIPアドレス(実施例では「CoA1」)を通知している。
従って、着側ルータ1Bが、着側移動端末5Bから発側移動端末5Aに宛てたパケットを発側ルータ1Aに転送する場合に、上記発側ルータ1AのIPアドレスを利用することによって、発側ホームエージェントノード2aを経由することなく、ショートカット経路でトンネリングによるパケット転送が可能となる。
また、上記発側ルータ1AのIPアドレスを利用して、着側ルータ1Bから発側ルータにICMPリダイレクトメッセージを送信することによって、発側ルータ1Aに着側ルータ1BのIPアドレス「CoB2」を通知できる。従って、上記着側ルータ1BのIPアドレスを利用して、発側ルータ1Aから着側ルータ1B方向にも、トンネリング方式によるパケット転送が可能となる。
従って、着側ルータ1Bが、着側移動端末5Bから発側移動端末5Aに宛てたパケットを発側ルータ1Aに転送する場合に、上記発側ルータ1AのIPアドレスを利用することによって、発側ホームエージェントノード2aを経由することなく、ショートカット経路でトンネリングによるパケット転送が可能となる。
また、上記発側ルータ1AのIPアドレスを利用して、着側ルータ1Bから発側ルータにICMPリダイレクトメッセージを送信することによって、発側ルータ1Aに着側ルータ1BのIPアドレス「CoB2」を通知できる。従って、上記着側ルータ1BのIPアドレスを利用して、発側ルータ1Aから着側ルータ1B方向にも、トンネリング方式によるパケット転送が可能となる。
図5は、上記ICMPリダイレクトメッセージを受信した後の発側ルータ1Aの動作を示す。
発側ルータ1Aは、移動端末5Aから受信したIPパケット310'をカプセル化パケット350に変換し、着側ホームエージェントノード2bを経由することなく、ショートカット経路63で着側ルータ1Bとトンネリング通信する。上記カプセル化パケット350は、データ部313Tに受信IPパケット310'を含み、カプセルヘッダの宛先アドレス312Tには、着側ルータのIPアドレス「CoB2」を含み、送信元アドレス311Tには、ショートカット経路63との接続ポートのIPアドレス「CoA2」を含む。
発側ルータ1Aは、移動端末5Aから受信したIPパケット310'をカプセル化パケット350に変換し、着側ホームエージェントノード2bを経由することなく、ショートカット経路63で着側ルータ1Bとトンネリング通信する。上記カプセル化パケット350は、データ部313Tに受信IPパケット310'を含み、カプセルヘッダの宛先アドレス312Tには、着側ルータのIPアドレス「CoB2」を含み、送信元アドレス311Tには、ショートカット経路63との接続ポートのIPアドレス「CoA2」を含む。
図6は、IPアドレスA、B間の通信に関して、「上り/下り同一経路」ポリシーが指定されていた場合の各ノードの動作を示す。
「上り/下り同一経路」ポリシーの下では、着側ルータ1Bは、図3で示した最初のカプセル化パケット330を受信した時、ICMPリダイレクト・メッセージ340を発行しない。従って、発側ルータ1Aは、発側移動端末5Aから着側移動端末5B宛て送信された後続の受信パケットについて、最初の受信パケット310と同様にカプセル化し、伝送路61で着側ホームエージェントノード2bにトンネリング通信する。
着側ホームエージェントノード2bは、上記カプセル化パケットを受信すると、図3で説明したパケット320から330への変換と同様のルールでヘッダ変換し、伝送路62で着側ルータ1Bにトンネリング通信する。着側ルータ1Bは、着側ホームエージェントノード2bからカプセル化パケットを受信すると、カプセル化ヘッダを除去し、データ部313TのIPパケットを伝送路OUT−jに送出する。
「上り/下り同一経路」ポリシーの下では、着側ルータ1Bは、図3で示した最初のカプセル化パケット330を受信した時、ICMPリダイレクト・メッセージ340を発行しない。従って、発側ルータ1Aは、発側移動端末5Aから着側移動端末5B宛て送信された後続の受信パケットについて、最初の受信パケット310と同様にカプセル化し、伝送路61で着側ホームエージェントノード2bにトンネリング通信する。
着側ホームエージェントノード2bは、上記カプセル化パケットを受信すると、図3で説明したパケット320から330への変換と同様のルールでヘッダ変換し、伝送路62で着側ルータ1Bにトンネリング通信する。着側ルータ1Bは、着側ホームエージェントノード2bからカプセル化パケットを受信すると、カプセル化ヘッダを除去し、データ部313TのIPパケットを伝送路OUT−jに送出する。
一方、着側移動端末5Bから発側移動端末5Aに宛てたIPパケット360を受信した場合、着側ルータ1Bは、図6に示すように、受信パケット360をカプセル化し、カプセル化パケット370を伝送路62で着側ホームエージェントノード2bにトンネリング通信する。この場合、カプセル化ヘッダには、送信元アドレス311Tとして、例えば、着側ルータ1Bにおける上記伝送路62との接続ポートIPアドレス「CoB1」を設定し、宛先アドレス312Tとして、着側ホームエージェントノード1bにおける上記伝送路62との接続ポートIPアドレス「HB」を設定する。
着側ルータ1bは、通常の通信機能として、基地局制御装置3B−1〜3B−nを介して各無線基地局から受信する移動端末位置情報を示すパケットを各ホームエージェントノードに転送動作しているため、上記着側ホームエージェントノード2aとトンネリング通信する場合、トンネル伝送路62の両端におけるIPアドレス、「CoB1」と「HB」については既に把握されている。
着側ルータ1bは、通常の通信機能として、基地局制御装置3B−1〜3B−nを介して各無線基地局から受信する移動端末位置情報を示すパケットを各ホームエージェントノードに転送動作しているため、上記着側ホームエージェントノード2aとトンネリング通信する場合、トンネル伝送路62の両端におけるIPアドレス、「CoB1」と「HB」については既に把握されている。
着側ホームエージェントノード2aは、上記カプセル化パケット370を受信すると、カプセル化ヘッダの送信元アドレス311Tと宛先アドレス312Tとを書き替え、得られたカプセル化パケット380を伝送路61で発側ルータ1Aに転送する。上記カプセル化パケット380の送信元アドレス311Tには、例えば、着側ホームエージェントノード1bにおける上記伝送路61との接続ポートIPアドレス「HA」を設定し、宛先アドレス312Tには、着側ルータ1Bにおける上記伝送路61との接続ポートIPアドレス「CoA1」を設定する。伝送路61については、図3で説明した最初のカプセル化パケット320の受信時点で、両端の接続ポートIPアドレスが既知となっている。
発側ルータ1Aは、上記カプセル化パケット380を受信すると、カプセル化ヘッダを除去し、データ部313Tから抽出したIPパケット360を移動端末5A向かう出力ポートに転送する。この場合の発側ルータ1Aの動作は、下りパケット受信時の着側ルータ1Bの動作と同様であり、発側ルータ1AからのICMPリダイレクトメッセージの発行はない。
図1は、上述した本発明の通信機能を実現するためのノード装置の1実施例を示す。
ここに示したノード装置は、ホームロケーションレジスタ23を備えているが、上記レジスタ23は、ノード装置をホームエージェントノード2として動作させる場合に必要となる要素であり、発側ルータ1Aまたは着側ルータ1Bとして動作させる場合には不要となる。
ノード装置は、それぞれ1対の入力ポートIN−iと出力ポートOUT−iとを有する複数のインタフェースボード10―i(i=1〜k)と、バス100を介して上記各インタフェースボード10―iに接続されたルーティング制御装置50とからなる。
発側ルータ1Aは、上記カプセル化パケット380を受信すると、カプセル化ヘッダを除去し、データ部313Tから抽出したIPパケット360を移動端末5A向かう出力ポートに転送する。この場合の発側ルータ1Aの動作は、下りパケット受信時の着側ルータ1Bの動作と同様であり、発側ルータ1AからのICMPリダイレクトメッセージの発行はない。
図1は、上述した本発明の通信機能を実現するためのノード装置の1実施例を示す。
ここに示したノード装置は、ホームロケーションレジスタ23を備えているが、上記レジスタ23は、ノード装置をホームエージェントノード2として動作させる場合に必要となる要素であり、発側ルータ1Aまたは着側ルータ1Bとして動作させる場合には不要となる。
ノード装置は、それぞれ1対の入力ポートIN−iと出力ポートOUT−iとを有する複数のインタフェースボード10―i(i=1〜k)と、バス100を介して上記各インタフェースボード10―iに接続されたルーティング制御装置50とからなる。
上記ルーティング制御装置50は、プロセッサ20と、プログラムメモリ21と、各インタフェースボード10―iで受信した受信パケットを蓄積するためのバッファメモリ(BM)22と、ホームロケーション・レジスタ(HLR)23、ルーティングレジスタ(RTR)24およびルートポリシー・レジスタ(RPR)25を形成するメモリと、空きアドレスキュー26、Rx(受信)ディスクリプタ・テーブル27―i(i=1〜k)およびTx(送信)ディスクリプタ・テーブル28―i(i=1〜k)を形成するメモリと、入出力装置29とからなっており、これらの要素はバス100に結合されている。
上記プログラムメモリ21には、OS211と、上記プロセッサ20が実行する各種のプログラムが格納してある。ノード装置に固有のプログラムとして、ルーティングレジスタ24の内容をダイナミックに更新するためのルーティング管理プログラ212と、後述するように、上記ルーティングレジスタ24、ルートポリシー・レジスタ25およびホームロケーション・レジスタ23(但し、ホームエージェントノードの場合)を参照して本発明に特有のパケット転送を行う転送処理プログラム213とを含む。尚、ノード装置がホームエージェントノード1a、1bを構成する場合、上記プログラムメモリ21には、位置登録プロトコルに従って各移動端末の位置情報を管理するのためのプログラムも含まれるが、移動端末の位置情報管理自体は本発明に直接関係しないため、ここでは説明を省略する。
バッファメモリ(BM)22は、固定長の複数のメモリブロック(メモリ領域)に分割されており、空きアドレスキュー26には、上記バッファメモリで空き状態にある各メモリブロックの先頭アドレスが登録されている。Rxディスクリプタ・テーブル27(27−1〜27−k)とTxディスクリプタ・テーブル28(28−1〜28−k)は、インタフェースボード10(10−1〜10−k )と対応して1対ずつ用意され、i番目のインタフェースボード10−iは、i番目のRxディスクリプタ・テーブル27―iとTxディスクリプタ・テーブル28−iを使用する。
各インタフェースボード10−iは、入力インタフェース11Aと出力インタフェース11Bからなる。
入力インタフェース11Aは、バス100に接続された入力バス101−iと、入力ポートIN−iに接続された入力回線インタフェース12Aと、上記入力回線インタフェース12Aと上記入力バス101−iとの間に接続された受信バッファ13Aと、上記入力バス101−iに接続されたマイクロコントローラ14A、DMAコントローラ15AおよびRxディスクリプタエントリ・メモリ16Aからなっている。
入力ポートIN−iからの受信信号は、入力回線インタフェース12Aで終端され、受信パケット(IPパケットまたはカプセル化パケット)として受信バッファ13Aに一時的に蓄積される。上記受信バッファ13Aに蓄積された受信パケットは、マイクロコントローラ14Aの制御の下に、DMAコントローラ15Aを介して、バッファメモリ22に転送される。この時、空きアドレスキュー26から取り出されたアドレスAxが、受信パケットの書き込みアドレスWAとして使用され、上記アドレスAxは、エントリの有効性を示すフラグビットと共に、Rxディスクリプタ・テーブル27−iに登録される。
入力インタフェース11Aは、バス100に接続された入力バス101−iと、入力ポートIN−iに接続された入力回線インタフェース12Aと、上記入力回線インタフェース12Aと上記入力バス101−iとの間に接続された受信バッファ13Aと、上記入力バス101−iに接続されたマイクロコントローラ14A、DMAコントローラ15AおよびRxディスクリプタエントリ・メモリ16Aからなっている。
入力ポートIN−iからの受信信号は、入力回線インタフェース12Aで終端され、受信パケット(IPパケットまたはカプセル化パケット)として受信バッファ13Aに一時的に蓄積される。上記受信バッファ13Aに蓄積された受信パケットは、マイクロコントローラ14Aの制御の下に、DMAコントローラ15Aを介して、バッファメモリ22に転送される。この時、空きアドレスキュー26から取り出されたアドレスAxが、受信パケットの書き込みアドレスWAとして使用され、上記アドレスAxは、エントリの有効性を示すフラグビットと共に、Rxディスクリプタ・テーブル27−iに登録される。
ルーティング制御装置50のプロセッサ20は、Rxディスクリプタ・テーブル27−1〜27−kを循環的にアクセスし、各Rxディスクリプタ・テーブル27−iに登録されたアドレスAxに基づいて、受信バッファ22から受信パケットを読み出す。プロセッサ20は、後で詳述するように、受信パケットのIPヘッダに含まれるアドレスSAとDAとの組合せに基づいてルートポリシー・レジスタ(RPR)25を参照し、RPR25が指定するヘッダ処理規則に従って、カプセル化ヘッダの生成またはアドレス変換と、ルーティングレジスタ(RTR)24の参照による出力ポート番号の判定を行う。
受信パケットの出力ポート番号jが決定すると、プロセッサ20は、上記受信パケットのアドレスAxをj番目のTxディスクリプタ・テーブル28−jに登録した後、Rxディスクリプタ・テーブル27−iとTxディスクリプタ・テーブル28−jにおける上記アドレスAxを含むエントリのフラグビットを書き替える。
受信パケットの出力ポート番号jが決定すると、プロセッサ20は、上記受信パケットのアドレスAxをj番目のTxディスクリプタ・テーブル28−jに登録した後、Rxディスクリプタ・テーブル27−iとTxディスクリプタ・テーブル28−jにおける上記アドレスAxを含むエントリのフラグビットを書き替える。
各インタフェースボード10−iの出力インタフェース11Bは、バス100に接続された出力バス102−iと、出力ポートOUT−iに接続された出力回線インタフェース12Bと、上記出力回線インタフェース12Bと上記出力バス102−iとの間に接続された送信バッファ13Bと、上記出力バス102−iに接続されたマイクロコントローラ14B、DMAコントローラ15BおよびTxディスクリプタエントリ・メモリ16Bからなっている。
バッファメモリ22に蓄積された受信パケットは、マイクロコントローラ14Bの制御の下に、DMAコントローラ15Bを介して、送信バッファ13Bに送信パケットとして転送される。この時、インタフェースボード10−iと対応するTxディスクリプタ・テーブル28−iが参照され、上記テーブル28−iに登録されたアドレスAxが、受信パケットの読み出しアドレスRAとして使用される。
バッファメモリ22に蓄積された受信パケットは、マイクロコントローラ14Bの制御の下に、DMAコントローラ15Bを介して、送信バッファ13Bに送信パケットとして転送される。この時、インタフェースボード10−iと対応するTxディスクリプタ・テーブル28−iが参照され、上記テーブル28−iに登録されたアドレスAxが、受信パケットの読み出しアドレスRAとして使用される。
図7は、空きアドレスキュー26と、Rxディスクリプタ・テーブル27(27−1〜27−k)と、Txディスクリプタ・テーブル28(28−1〜28−k)との関係を示す。
Rxディスクリプタ・テーブル27は、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス271と、ブロック長272と、エントリの有効性を示すフラグビット273とを含む。これと同様に、Txディスクリプタ・テーブル28も、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス281と、パケット長282と、エントリの有効性を示すフラグビット283とを含む。
これらのディスクリプタ・テーブルへのエントリデータの書き込みと読み出しは、メモリの最終エントリ領域から最初のエントリ領域に戻るように循環的に行われる。図7において、斜線を付した領域は、有効データを含むエントリ領域を示しており、有効エントリ領域の先頭に位置したエントリは、ポインタRxHP、TxHPによって指定されている。ポインタRxTPとTxTPは、有効エントリ領域の次に位置したエントリを指している。従って、新たなエントリデータの書き込みは、上記ポインタRxTPまたはTxTPが示すエントリ領域で行われ、登録済みのエントリデータの読み出しは、上記ポインタRxHPまたはTxHPが示すエントリ領域で行われる。これらのポインタの値は、1つのエントリについてデータの書き込み/読み出しの都度、インクリメントされる。
Rxディスクリプタ・テーブル27の有効エントリ領域には、ビット値“0”のフラグ273が設定され、無効エントリ領域、すなわち、新たなデータの書き込みが許容される領域にはビット値“1”のフラグが設定される。逆に、Txディスクリプタ・テーブル28では、有効エントリ領域にビット値“1”、無効エントリ領域にビット値“0”のフラグ283が設定される。
Rxディスクリプタ・テーブル27は、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス271と、ブロック長272と、エントリの有効性を示すフラグビット273とを含む。これと同様に、Txディスクリプタ・テーブル28も、複数のエントリ領域からなり、各エントリ領域は、メモリブロックの先頭アドレス281と、パケット長282と、エントリの有効性を示すフラグビット283とを含む。
これらのディスクリプタ・テーブルへのエントリデータの書き込みと読み出しは、メモリの最終エントリ領域から最初のエントリ領域に戻るように循環的に行われる。図7において、斜線を付した領域は、有効データを含むエントリ領域を示しており、有効エントリ領域の先頭に位置したエントリは、ポインタRxHP、TxHPによって指定されている。ポインタRxTPとTxTPは、有効エントリ領域の次に位置したエントリを指している。従って、新たなエントリデータの書き込みは、上記ポインタRxTPまたはTxTPが示すエントリ領域で行われ、登録済みのエントリデータの読み出しは、上記ポインタRxHPまたはTxHPが示すエントリ領域で行われる。これらのポインタの値は、1つのエントリについてデータの書き込み/読み出しの都度、インクリメントされる。
Rxディスクリプタ・テーブル27の有効エントリ領域には、ビット値“0”のフラグ273が設定され、無効エントリ領域、すなわち、新たなデータの書き込みが許容される領域にはビット値“1”のフラグが設定される。逆に、Txディスクリプタ・テーブル28では、有効エントリ領域にビット値“1”、無効エントリ領域にビット値“0”のフラグ283が設定される。
インタフェースボード10−iの入力インタフェース11Aは、対応するRxディスクリプタ・テーブル27−iのポインタRxTPが指すエントリの内容をRxディスクリプタエントリ・メモリ16Aに読み込み、フラグ273が“1”となっていることを確認した上で、空きアドレスキュー26から取出した空きアドレスAxを書き込みアドレスWAとして、受信パケットをバッファメモリ22に書き込む。この後、Rxディスクリプタ・テーブル27−iの上記ポインタRxTPが指すエントリにアドレスAxを登録し、フラグ273を“0”に書き替え、ポインタRxTPの値をインクリメントする。
ルーティング制御装置50のプロセッサ20は、上記Rxディスクリプタ・テーブル27−iのポインタRxHPが指すエントリに登録されたアドレスAxに基づいて、バッファメモリ22から受信パケットを読み出し、所定の処理を行う。上記受信パケットを転送すべき出力ポートの番号jが判明すると、Txディスクリプタ・テーブル27−jのポインタTxTPが指すエントリのフラグ283の状態を確認した上で、上記アドレスAxをフィールド281に登録し、フラグ283を“1”に書き替え、ポインタTxTPの値をインクリメントする。同様に、処理済みとなったRxディスクリプタ・テーブル27−iのポインタRxHPが指すエントリで、フラグ273を“1”に書き替え、ポインタRxHPの値をインクリメントする。
インタフェースボード10−jの出力インタフェース11Bは、対応するTxディスクリプタ・テーブル28−jのポインタTxHPが指すエントリの内容をTxディスクリプタエントリ・メモリ16Bに読み込む。フラグ283の値が“1”となっていることを確認した上で、アドレスフィールド281に登録されたアドレスAxに基づいて、バッファメモリ22からパケットを読み出し、送信バッファ13Bに転送し、不要となったアドレスAxを空きアドレスキュー26に解放する。この時、Txディスクリプタ・テーブル28−jのポインタTxHPが指すエントリのフラグを“0”に書き替え、ポインタTxHPの値をインクリメントする。
図1に示した複数のインタフェースボード10−1〜10−kが、共通の空きアドレスキュー26から入手した空きアドレスAxに基づいて、受信パケットをバッファメモリ22へ書き込み、バッファメモリ22からの送信パケットの読み出しを終えた時点で、パケットの読み出しアドレスを空きアドレスキュー26に解放することによって、バッファメモリ22のメモリ容量を効率的に利用したパケット交換動作が実現できる。
図8は、ホームロケーション・レジスタ23の構成を示す。
ホームロケーション・レジスタ(HLR)23は、着側移動端末のIPアドレス231と、上記移動端末にパケットを中継するための着側ルータのIPアドレス232との対応関係を示す複数のエントリ230−1、230−2、…を含んでいる。ホームエージェントノード2を構成するプロセッサ20は、受信パケットのIPヘッダに含まれる宛先IPアドレスDAに基づいて上記ホームロケーション・レジスタ23を参照し、受信パケットの転送先となる着側ルータIPアドレス232を検索する。
ホームロケーション・レジスタ(HLR)23は、着側移動端末のIPアドレス231と、上記移動端末にパケットを中継するための着側ルータのIPアドレス232との対応関係を示す複数のエントリ230−1、230−2、…を含んでいる。ホームエージェントノード2を構成するプロセッサ20は、受信パケットのIPヘッダに含まれる宛先IPアドレスDAに基づいて上記ホームロケーション・レジスタ23を参照し、受信パケットの転送先となる着側ルータIPアドレス232を検索する。
図9は、ルーティングレジスタ24の構成を示す。
ルーティングレジスタ(RTR)24は、着側端末のIPアドレス241と、ネクストホップIPアドレス242と、出力ポート番号(Txディスクリプタの識別番号)243と、出力ポートのIPアドレス244との対応関係を示す複数のエントリ240−1、240−2、…を含んでいる。上記ルーティングレジスタ24へのエントリの追加、更新はルーティング管理プログラム212によって行われる。
ルーティングレジスタ(RTR)24は、着側端末のIPアドレス241と、ネクストホップIPアドレス242と、出力ポート番号(Txディスクリプタの識別番号)243と、出力ポートのIPアドレス244との対応関係を示す複数のエントリ240−1、240−2、…を含んでいる。上記ルーティングレジスタ24へのエントリの追加、更新はルーティング管理プログラム212によって行われる。
図10〜図12は、それぞれ図3に示した発側ルータ1A、着側ホームレジスタ2bおよび着側ルータ1Bが備えるルートポリシー・レジスタ(RPR)25−A、25−b、25−Bの構成を示す。
上記各ルートポリシー・レジスタは、複数のエントリ250−11、…、250−31、…を含み、各エントリは、送信元IPアドレス(SA)251と、宛先IPアドレス(DA)252と、トンネリング送信元アドレス(TSA)253と、トンネリング宛先アドレス(TDA)254と、ICMPフラグ255とを示す複数のフィールドからなっている。
ルートポリシー・レジスタ25は、IPパケットの送信元アドレス251と宛先アドレス252との組合せと対応して、フィールド253〜254で、カプセル化ヘッダの生成、アドレス変換、ヘッダ除去等のルールを示すヘッダ処理規則を定義している。フィールド253と254には、トンネリング通信用の送信元アドレスおよび宛先アドレスの決定規則または具体的なアドレス値を含む。
上記各ルートポリシー・レジスタは、複数のエントリ250−11、…、250−31、…を含み、各エントリは、送信元IPアドレス(SA)251と、宛先IPアドレス(DA)252と、トンネリング送信元アドレス(TSA)253と、トンネリング宛先アドレス(TDA)254と、ICMPフラグ255とを示す複数のフィールドからなっている。
ルートポリシー・レジスタ25は、IPパケットの送信元アドレス251と宛先アドレス252との組合せと対応して、フィールド253〜254で、カプセル化ヘッダの生成、アドレス変換、ヘッダ除去等のルールを示すヘッダ処理規則を定義している。フィールド253と254には、トンネリング通信用の送信元アドレスおよび宛先アドレスの決定規則または具体的なアドレス値を含む。
図10〜図12において、トンネリング宛先アドレス(TDA)フィールド254に定義されたアドレス決定規則のうち、エントリ250−11が示す“DUP”は、トンネリング宛先アドレスとして、IPヘッダの宛先IPアドレス252を適用することを意味している。エントリ250−21が示す“CNV”は、トンネリング宛先アドレスとして、宛先IPアドレス252と対応してホームロケーション・レジスタ(HLR)23から求まる着側ルータIPアドレス232を適用することを意味し、“NONE”は、カプセル化パケットのIPアドレスの除去を意味している。また、CoB2、CoA1、HBのように、ダブル引用符を伴わない文字列は、図3〜図6での説明から明らかなように、具体的なIPアドレスの値を示している。
また、トンネリング送信元アドレス(TSA)フィールド253で定義されたアドレス決定規則のうち、エントリ250−11が示す“SELF”は、トンネリング送信元アドレスとして、宛先アドレス(TDA)254に基づいてルーティングレジスタ24を検索して求めた出力ポートIPアドレス244を適用することを意味し、また、エントリ250−21が示す“KEEP”は、トンネリング送信元アドレスとして、受信パケットのカプセル化ヘッダに含まれる送信元アドレスをそのまま適用することを意味している。
また、トンネリング送信元アドレス(TSA)フィールド253で定義されたアドレス決定規則のうち、エントリ250−11が示す“SELF”は、トンネリング送信元アドレスとして、宛先アドレス(TDA)254に基づいてルーティングレジスタ24を検索して求めた出力ポートIPアドレス244を適用することを意味し、また、エントリ250−21が示す“KEEP”は、トンネリング送信元アドレスとして、受信パケットのカプセル化ヘッダに含まれる送信元アドレスをそのまま適用することを意味している。
図10では、送信元アドレス251と宛先アドレス252との組合せが同一の2つのエントリ250−11と250P−11が示してあるが、符号Pを付したエントリ250P−11は、エントリ250−11よりも後で生成されたもので、元のエントリ250−11に優先して実行されることを意味している。
また、図12では、送信元アドレス251と宛先アドレス252との組合せが同一の2つのエントリ250−32と250P−32が示してあるが、エントリ250−32は「ショートカット経路」ポリシー用、エントリ250P−33は「上り/下り同一経路」ポリシー用のものであり、実際のルートポリシー・レジスタ25は、上記2つのエントリのうちの何れか一方が含まれる。
また、図12では、送信元アドレス251と宛先アドレス252との組合せが同一の2つのエントリ250−32と250P−32が示してあるが、エントリ250−32は「ショートカット経路」ポリシー用、エントリ250P−33は「上り/下り同一経路」ポリシー用のものであり、実際のルートポリシー・レジスタ25は、上記2つのエントリのうちの何れか一方が含まれる。
図13は、インタフェースボード10−1〜10−kの各入力インタフェース11Aにおいて、マイクロコントローラ14Aが実行するパケット受信処理ルーチンのフローチャートを示す。
マイクロコントローラは、インタフェースボード10−iと対応するRxディスクリプタ・テーブル27−iに付随したポインタRxHP、RxTPを読み(ステップ401)、Rxディスクリプタ・テーブル27−iから、ポインタRxTPが指すエントリRxTBL(RxTP)をエントリメモリ16Aに読み込む(402)。次に、上記エントリRxTBL(RxTP)のフラグ273を判定し(404)、“0”の場合は、マイクロコントローラ14Aまたはプロセッサ20の動作にエラーが発生したものと判断し、エラー処理を実行する(406)。
マイクロコントローラは、インタフェースボード10−iと対応するRxディスクリプタ・テーブル27−iに付随したポインタRxHP、RxTPを読み(ステップ401)、Rxディスクリプタ・テーブル27−iから、ポインタRxTPが指すエントリRxTBL(RxTP)をエントリメモリ16Aに読み込む(402)。次に、上記エントリRxTBL(RxTP)のフラグ273を判定し(404)、“0”の場合は、マイクロコントローラ14Aまたはプロセッサ20の動作にエラーが発生したものと判断し、エラー処理を実行する(406)。
上記フラグ273が“1”の場合は、空きアドレスキュー26から空きアドレスAxを取得し(508)、受信バッファ13Aに処理すべき受信パケットが蓄積済みか否かを判定する(410)。受信バッファ13Aに受信パケットが蓄積済みの場合は、受信パケットのヘッダ部に含まれるパケットトータル長をエントリRxTBL(RxTP)のブロック長MAXと比較する(412)。パケットトータル長がMAXよりも長い場合は、受信パケットを廃棄し(414)、ステップ410に戻って、次の受信パケットについて上述した判定を繰り返す。
パケットトータル長がMAX以下の場合は、DMAコントローラ15Aに指令して、バッファメモリ22のアドレスAxが示すメモリブロックBM(Ax)に受信パケットをDMA転送(420)した後、 Rxディスクリプタ・テーブル27−iのポインタRxTPが指すエントリRxTBL(RxTP)のフィールド271と273に、上記アドレスAxとフラグ“0”をそれぞれ設定する(422)。また、ポインタRxTPの値をインクリメントし(424)、この値をプロセッサ20が参照できるように、ルーティング制御装置50側に記憶されたポインタRxTPに反映する(426)。
パケットトータル長がMAX以下の場合は、DMAコントローラ15Aに指令して、バッファメモリ22のアドレスAxが示すメモリブロックBM(Ax)に受信パケットをDMA転送(420)した後、 Rxディスクリプタ・テーブル27−iのポインタRxTPが指すエントリRxTBL(RxTP)のフィールド271と273に、上記アドレスAxとフラグ“0”をそれぞれ設定する(422)。また、ポインタRxTPの値をインクリメントし(424)、この値をプロセッサ20が参照できるように、ルーティング制御装置50側に記憶されたポインタRxTPに反映する(426)。
この後、ルーティング制御装置50側に記憶されたポインタRxHPの値を読み取り(428)、ポインタTxHPの値と比較する(430)。RxTPがRxHPより大きい場合は、ステップ402に戻り、Rxディスクリプタ・テーブル27−iの次のエントリRxTBL(RxTP)を読み込む。
もし、RxTP>RxHPでない、すなわち、有効エントリ領域が図7に示したようにメモリ上で不連続になっている場合は、 RxHPが指す有効エントリ領域へのデータの二重書きを回避するために、RxTPとRxHPの間の所定の間隔Δnがあるか否かを判定する(432)。上記間隔がΔnよりも大きい場合は、ステップ402に戻り、間隔がΔn以内の場合は、所定時間ΔTだけ受信パケットの転送を待った後(434)、ステップ428以降の動作を繰り返す。プロセッサ20が受信パケットを処理すれば、RxHPの値がインクリメントされ、 RxTPとRxHPとの間隔がΔnよりも大きくなるため、ステップ402に戻れる。
もし、RxTP>RxHPでない、すなわち、有効エントリ領域が図7に示したようにメモリ上で不連続になっている場合は、 RxHPが指す有効エントリ領域へのデータの二重書きを回避するために、RxTPとRxHPの間の所定の間隔Δnがあるか否かを判定する(432)。上記間隔がΔnよりも大きい場合は、ステップ402に戻り、間隔がΔn以内の場合は、所定時間ΔTだけ受信パケットの転送を待った後(434)、ステップ428以降の動作を繰り返す。プロセッサ20が受信パケットを処理すれば、RxHPの値がインクリメントされ、 RxTPとRxHPとの間隔がΔnよりも大きくなるため、ステップ402に戻れる。
上記実施例では、受信パケットのサイズがバッファメモリ22のブロックサイズMAXより大きい場合は、受信パケットを廃棄している(ステップ414)。これは、バッファメモリ22に用意された各ブロックが、正常なパケットを格納するのに十分なサイズを有し、ブロックサイズMAXを超える長さの受信パケットは異常と判断できることが前提となっている。しかしながら、ブロックサイズMAXを大きくしておくと、受信パケットが平均的な長さをもつ場合、バッファメモリの各ブロックに未使用のエリアが発生し、メモリ容量の利用率が低下する。
バッファメモリの容量を有効に利用するためには、例えば、ブロックサイズMAXを平均的なパケット長にしておき、MAXを超える長さのパケットが受信された場合は、複数のブロックに分割して蓄積するようにすればよい。
バッファメモリの容量を有効に利用するためには、例えば、ブロックサイズMAXを平均的なパケット長にしておき、MAXを超える長さのパケットが受信された場合は、複数のブロックに分割して蓄積するようにすればよい。
図14は、1つの受信パケットを複数のブロックに分割して蓄積する場合に、図13のステップ412〜414を含むルーチン部分に置き代わって実行される制御フローを示す。
受信パケットがあった場合(ステップ410)、パラメータNEXTの値を判定する(411)。パラメータNEXTは、受信パケットの残りデータブロックの有無を示すためのものであり、受信パケットのサイズがブロック長MAXを超えていた場合に“1”に設定され、新たな受信パケットを処理する時点では、NEXTの値は“0”となっている。
パラメータNEXTが“0”の場合、受信パケットの長さをブロック長MAXと比較し(412)、受信パケット長がMAX以下であれば、DMA転送におけるデータ長を示すパラメータLENGTHに受信パケット長を設定した後(413)、受信パケットをバッファメモリ22にDMA転送する(図13のステップ420)。
受信パケットがあった場合(ステップ410)、パラメータNEXTの値を判定する(411)。パラメータNEXTは、受信パケットの残りデータブロックの有無を示すためのものであり、受信パケットのサイズがブロック長MAXを超えていた場合に“1”に設定され、新たな受信パケットを処理する時点では、NEXTの値は“0”となっている。
パラメータNEXTが“0”の場合、受信パケットの長さをブロック長MAXと比較し(412)、受信パケット長がMAX以下であれば、DMA転送におけるデータ長を示すパラメータLENGTHに受信パケット長を設定した後(413)、受信パケットをバッファメモリ22にDMA転送する(図13のステップ420)。
受信パケット長がMAXを超えていた場合は、残りデータブロックサイズを示すパラメータREMに、受信パケット長からMAXを引いた値を設定し(415)、パラメータLENGTHにMAXの値を設定し、NEXT=“1”に設定(416)した後、受信パケットの最初のデータブロック部分をDMA転送する。
NEXT=“1”の状態で再びステップ411に戻ってきた時、残りデータ長REMをブロックサイズMAXと比較する(417)。残りデータ長REMがブロックサイズMAXよりも大きい場合は、REMにREM−MAXの値を設定し(419)、受信パケットの次のデータブロック部分をDMA転送する。もし、REMの値がMAX以下であれば、パラメータLENGTHにREMの値を設定し、NEXT=“0”に設定(418)した後、受信パケットの残りデータブロック部分をDMA転送する。
NEXT=“1”の状態で再びステップ411に戻ってきた時、残りデータ長REMをブロックサイズMAXと比較する(417)。残りデータ長REMがブロックサイズMAXよりも大きい場合は、REMにREM−MAXの値を設定し(419)、受信パケットの次のデータブロック部分をDMA転送する。もし、REMの値がMAX以下であれば、パラメータLENGTHにREMの値を設定し、NEXT=“0”に設定(418)した後、受信パケットの残りデータブロック部分をDMA転送する。
図15は、インタフェースボード10−1〜10−kの各入力インタフェース11Bにおいて、マイクロコントローラ14Bが実行するパケット送信処理ルーチンのフローチャートを示す。
マイクロコントローラ14Bは、インタフェースボード10−iと対応するTxディスクリプタ・テーブル28−iに付随したポインタTxHP、TxTPを読み(ステップ501)、TxTPとTxHPとが同一値か否かを判定する(502)。上記TxTPとTxHPは、初期状態において、Txディスクリプタ・テーブル28−iの最初のエントリ領域を指す同一の値となっており、Txディスクリプタ・テーブルに有効データを含むエントリが1つでも残っていれば、TxTPとTxHPは互いに異なった値となる。
マイクロコントローラ14Bは、インタフェースボード10−iと対応するTxディスクリプタ・テーブル28−iに付随したポインタTxHP、TxTPを読み(ステップ501)、TxTPとTxHPとが同一値か否かを判定する(502)。上記TxTPとTxHPは、初期状態において、Txディスクリプタ・テーブル28−iの最初のエントリ領域を指す同一の値となっており、Txディスクリプタ・テーブルに有効データを含むエントリが1つでも残っていれば、TxTPとTxHPは互いに異なった値となる。
TxTP=TxHPの場合は、 Txディスクリプタ・テーブルに有効データを含むエントリが存在しないことを意味しているため、所定時間ΔTだけ、プロセッサ20がTxディスクリプタ・テーブル28−iにパケット転送するのを待ち(504)、再びTxTPを読み込んで(524)、判定ステップ502に戻る。
TxTPとTxHPの値が異なっていた場合は、Txディスクリプタ・テーブル28−iの上記ポインタTxHpが指すエントリTxTBL(TxHP)をエントリメモリ16Bに読み込み、上記エントリのフィールド281に登録されたアドレスAxを読み出しアドレスRAに設定する(508)。
TxTPとTxHPの値が異なっていた場合は、Txディスクリプタ・テーブル28−iの上記ポインタTxHpが指すエントリTxTBL(TxHP)をエントリメモリ16Bに読み込み、上記エントリのフィールド281に登録されたアドレスAxを読み出しアドレスRAに設定する(508)。
上記エントリのフラグ283を判定し(510)、“0”の場合は、エラー処理を実行する(512)。上記フラグ273が“1”の場合は、DMAコントローラ15Bに指令して、バッファメモリ22のアドレスRAが指すブロックBM(RA)に蓄積された送信パケットを送信バッファ13BへDMA転送する(514)。次に、不要となったアドレスAx(=RA)を空きアドレスキュー26に解放し(516)、 Txディスクリプタ・テーブル28−iにおいて、エントリTxTBL(TxHP)のフラグ283を“0”に変更し(518)、ポインタTxHPの値をインクリメントし(520)、この値を処理装置20が参照できるように、ルーティング制御装置50側に記憶されたポインタTxHPに反映する(522)。この後、Txディスクリプタ・テーブル28−iに付随するTxTPの値を読み込み(524)、ステップ502に戻る。
図16は、ルーティング制御装置50のプロセッサ20が実行する受信パケットの転送処理ルーチン213のフローチャートを示す。
このルーチンでは、Rxディスクリプタ・テーブル(RxTBL)27−i(i=1〜k)と、Txディスクリプタ・テーブル(TxTBL)27−i(i=1〜k)と、これらの各テーブルに付随するポインタの値を初期化(ステップ601)した後、 Rxディスクリプタ・テーブル27−1〜27−kを特定するためのパラメータiの値を0に設定する(602)。
このルーチンでは、Rxディスクリプタ・テーブル(RxTBL)27−i(i=1〜k)と、Txディスクリプタ・テーブル(TxTBL)27−i(i=1〜k)と、これらの各テーブルに付随するポインタの値を初期化(ステップ601)した後、 Rxディスクリプタ・テーブル27−1〜27−kを特定するためのパラメータiの値を0に設定する(602)。
次に、パラメータiの値をインクリメントし(604)、iの値がディスクリプタ・テーブルの個数kを超えた場合は、ステップ602に戻り、そうでない場合は、第i番目のRxディスクリプタ・テーブルのポインタRxHPが指すエントリ:RxTBL#i(RxHP)のフラグ273をチェックする(608)。もし、上記ヘッダが“0”でなければ、このテーブルには有効データを含むエントリが無いものと判断して、ステップ604に戻る。
上記フラグ273が“0”の場合、エントリRxTBL#i(RxHP)のフィールド271に登録されたアドレスAxを読み出しアドレスRAに設定して、バッファメモリ22の上記アドレスRAが示すブロックBM(RA)に蓄積された受信パケットがカプセル化パケットか否かを判定する(612)。受信パケットがカプセル化パケットの場合は、図17に示す変換処理ルーチン700を実行し、上記受信パケットが通常のIPパケットの場合は、図20に示す変換処理ルーチン800を実行する。
上記フラグ273が“0”の場合、エントリRxTBL#i(RxHP)のフィールド271に登録されたアドレスAxを読み出しアドレスRAに設定して、バッファメモリ22の上記アドレスRAが示すブロックBM(RA)に蓄積された受信パケットがカプセル化パケットか否かを判定する(612)。受信パケットがカプセル化パケットの場合は、図17に示す変換処理ルーチン700を実行し、上記受信パケットが通常のIPパケットの場合は、図20に示す変換処理ルーチン800を実行する。
上記変換処理ルーチン700または800を実行することによって、バッファメモリのブロックBM(RA)にあった受信パケットが送信パケットに変換され、該送信パケットの出力ポート番号jが判明する。そこで、上記変換処理ルーチンの実行後に、第j番目のTxディスクリプタ・テーブルのポインタTxTPが指すエントリTxTBL#j(TxTP)に、上記アドレスWAと、送信パケット長を設定し、フラグ283を“1”に書き替え(614)、ポインタTxTPの値をインクリメントする(616)。また、第i番目のRxディスクリプタ・テーブルにおいて、エントリRxTBL#i(RxHP)のフラグ273を“1”に書き替え(618)、ポインタRxHPの値をインクリメント(620)した後、ステップ604に戻る。
尚、図14で説明したように、受信パケットが複数ブロックに分割してバッファメモリ22に蓄積された場合は、上記転送処理ルーチンにおいて、RxTBLを切り替える前に、同一パケットに属した後続のデータブロックを連続的にTxTBL#jに転送する必要がある。この場合、ステップ610のアドレスRAで読み出された各受信パケットの最初のブロックには、パケット長情報を含むヘッダ部が位置している。従って、最初のブロックをアクセスした時点で、パケット長とブロック長MAXとの関係から、後続ブロックの数を算出しておき、ステップ620を実行後に上記後続ブロック数を判定し、ゼロの場合はステップ604に戻り、後続ブロック数が1以上の場合は、RxTBL#i(RxHP)から次のアドレスRAを入手し、後続ブロック数をデクリメントした後、ステップ614に戻るようにすればよい。
図17は、受信パケットがカプセル化パケットの場合に実行される変換処理ルーチン700の詳細を示す。
このルーチンでは、バッファメモリ22のBM(RA)に蓄積された受信パケットからカプセル化ヘッダを抽出し、ワークエリアに保存すると共に、上記受信パケットのデータ部313に設定されたIPパケットのヘッダ(IPヘッダ)に含まれる送信元IPアドレスSA(例えば、アドレスA)と宛先IPアドレスDA(例えば、アドレスB)を抽出する(ステップ702)。
このルーチンでは、バッファメモリ22のBM(RA)に蓄積された受信パケットからカプセル化ヘッダを抽出し、ワークエリアに保存すると共に、上記受信パケットのデータ部313に設定されたIPパケットのヘッダ(IPヘッダ)に含まれる送信元IPアドレスSA(例えば、アドレスA)と宛先IPアドレスDA(例えば、アドレスB)を抽出する(ステップ702)。
次に、上記IPパケットとは逆方向(この例では、BからAに向かう方向)のパケット転送に必要なルートポリシー用エントリ(例えば、図11のエントリ250−22、図12のエントリ250−32)を生成し、ルートポリシー・レジスタ(RPR)25に追加する(704)。但し、SA、DAの組合せが上記追加エントリと同一のエントリが既にRPR25に登録済みの場合は、新たなエントリの追加はしない。例えば、着側ルータ1Bにおいて、RPRレジスタ25−Bに「上り/下り同一経路」ポロシー用のエントリ250P−32が既に登録済みの場合は、ステップ704では、「ショートカット経路」ポリシー用の新たなエントリ250−32は追加されない。特定のエントリについて、「上り/下り同一経路」ポリシーから「ショートカット経路」ポリシーに変更したい場合は、例えば、入出力装置29からのオペレータ操作によって、既存の特定エントリを削除するか、エントリ内容の書き替えを行えばよい。
次に、上記IPヘッダのSA、DAの組合せに基いてRPR25を検索する(706)。上記組合せに該当する目的エントリがRPR25にない場合は、通常処理(710)を実行する。
上記通常処理(710)では、受信パケットを本発明によるルートポリシーを適用しない従来方法によって転送する。すなわち、このノード装置がホームエージェントノードの場合は、宛先IPアドレスDAに基いてホームロケーションレジスタ(HLR)23を検索し、上記HLR検索で得られたルータIPアドレスをカプセル化ヘッダの宛先アドレスDAに設定し、この宛先アドレスDAに基いてルーティングレジスタ(RTR)24を検索して得られた出力ポートIPアドレスをカプセル化ヘッダの送信元アドレスSAに設定し、出力ポート番号をパラメータjに設定して、このルーチンを終了する。このノード装置がルータの場合、上記受信パケットが誤ってカプセル化されたものと判断し、カプセル化ヘッダを取り除いて、IPパケット部分をバッファメモリのブロックBM(RA)に残した後、変換処理800を実行する。
上記通常処理(710)では、受信パケットを本発明によるルートポリシーを適用しない従来方法によって転送する。すなわち、このノード装置がホームエージェントノードの場合は、宛先IPアドレスDAに基いてホームロケーションレジスタ(HLR)23を検索し、上記HLR検索で得られたルータIPアドレスをカプセル化ヘッダの宛先アドレスDAに設定し、この宛先アドレスDAに基いてルーティングレジスタ(RTR)24を検索して得られた出力ポートIPアドレスをカプセル化ヘッダの送信元アドレスSAに設定し、出力ポート番号をパラメータjに設定して、このルーチンを終了する。このノード装置がルータの場合、上記受信パケットが誤ってカプセル化されたものと判断し、カプセル化ヘッダを取り除いて、IPパケット部分をバッファメモリのブロックBM(RA)に残した後、変換処理800を実行する。
ステップ708で RPR25で目的のエントリが見つかった場合は、上記エントリのICMPフラグ255をチェックする(712)。もし、フラグが“1”に設定されていた場合は、図18に示すICMPリダイレクトルーチン750を実行した後、上記目的エントリにおけるトンネリング宛先アドレス(TDA)フィールド254の内容をチェックする(720)。
トンネリング宛先アドレス(TDA)フィールド254で“CNV”が指定されていた場合は、受信パケットのIPヘッダDAに基いてホームロケーション・レジスタHLR23を検索し(722)、HLRに着側ルータIPアドレス232として登録されているアドレスを上記ワークエリアにあるカプセル化ヘッダの宛先アドレスDAに設定する(724)。この場合、カプセル化ヘッダの送信元アドレスSAとしては、受信パケットのカプセル化ヘッダに付された送信元アドレスがそのまま生かされる。
この後、上記宛先アドレスDAに基いて、ルーティングレジスタRTR24を検索(726)し、バッファメモリ22にある受信パケットのカプセル化ヘッダを上記ワークエリアの内容に書き替え(742)、上記RTR検索で得られた出力ポート番号243をパラメータjに設定して、このルーチンを終了する。尚、上記ステップ722〜726は、ホームエージェントノード2に固有の処理であり、着側および発側ルータ1dでは実行されない。
トンネリング宛先アドレス(TDA)フィールド254で“CNV”が指定されていた場合は、受信パケットのIPヘッダDAに基いてホームロケーション・レジスタHLR23を検索し(722)、HLRに着側ルータIPアドレス232として登録されているアドレスを上記ワークエリアにあるカプセル化ヘッダの宛先アドレスDAに設定する(724)。この場合、カプセル化ヘッダの送信元アドレスSAとしては、受信パケットのカプセル化ヘッダに付された送信元アドレスがそのまま生かされる。
この後、上記宛先アドレスDAに基いて、ルーティングレジスタRTR24を検索(726)し、バッファメモリ22にある受信パケットのカプセル化ヘッダを上記ワークエリアの内容に書き替え(742)、上記RTR検索で得られた出力ポート番号243をパラメータjに設定して、このルーチンを終了する。尚、上記ステップ722〜726は、ホームエージェントノード2に固有の処理であり、着側および発側ルータ1dでは実行されない。
TDAフィールド254が“CNV”でなかった場合は、“NONE”か否かを判定する(730)。もし、TDAフィールド254で“NONE”が指定されてれいた場合は、IPヘッダDAに基いてルーティングレジスタ24を検索し(732)、バッファメモリ22のブロックBM(RA)の受信パケットをカプセル化ヘッダの除去されたIPパケットに変更し(734)、ステップ744に進む。
この実施例では、TDAフィールド254が“CNV”、“NONE”以外の場合、 TDAフィールドは具体的なIPアドレス値を含む。図10に示したルートポリシー・レジスタ25−Aでは、エントリ250−11のTDAフィールドが“DUP”となっているが、上記エントリ250−11は、IPパケット受信時に実行される変換処理800が扱うものであり、カプセル化パケット受信時に実行される変換処理700には関係しない。
TDAフィールド254が具体的なアドレス値を示す場合は、上記アドレスに基いてルーティング・レジスタ(RTR)24を検索し(736)、ワークエリアにあるカプセル化ヘッダの送信元アドレスSAに上記RTRが指定する出力ポートアドレスを設定し(738)、上記カプセル化ヘッダの宛先アドレスDAに上記TDAフィールド254が示すアドレス値を設定し(740)、ステップ742に進む。
この実施例では、TDAフィールド254が“CNV”、“NONE”以外の場合、 TDAフィールドは具体的なIPアドレス値を含む。図10に示したルートポリシー・レジスタ25−Aでは、エントリ250−11のTDAフィールドが“DUP”となっているが、上記エントリ250−11は、IPパケット受信時に実行される変換処理800が扱うものであり、カプセル化パケット受信時に実行される変換処理700には関係しない。
TDAフィールド254が具体的なアドレス値を示す場合は、上記アドレスに基いてルーティング・レジスタ(RTR)24を検索し(736)、ワークエリアにあるカプセル化ヘッダの送信元アドレスSAに上記RTRが指定する出力ポートアドレスを設定し(738)、上記カプセル化ヘッダの宛先アドレスDAに上記TDAフィールド254が示すアドレス値を設定し(740)、ステップ742に進む。
図18は、ICMPリダイレクトルーチン750の詳細を示す。
このルーチンでは、ワークエリアにあるカプセル化ヘッダの送信元アドレスSAに基いてルーティングレジスタ(RTR)24を検索し(752)、RTR24が指定する出力ポート番号をパラメータpに設定する(754)。次に、ICMPリダイレクトメッセージのIPパケットを生成し(756)、空きアドレスキュー26から入手した空きアドレスを書込みアドレスWAに設定し(758)、上記アドレスWAで特定されるバッファメモリのメモリブロックBM(WA)に上記ICMPのパケットを書き込む(760)。上記ICMPリダイレクトメッセージは、宛先ノードに対して、特定の送信元IPアドレスと宛先IPアドレスを持つパケットに関するルーティング情報の変更を要求する内容となっている。
このルーチンでは、ワークエリアにあるカプセル化ヘッダの送信元アドレスSAに基いてルーティングレジスタ(RTR)24を検索し(752)、RTR24が指定する出力ポート番号をパラメータpに設定する(754)。次に、ICMPリダイレクトメッセージのIPパケットを生成し(756)、空きアドレスキュー26から入手した空きアドレスを書込みアドレスWAに設定し(758)、上記アドレスWAで特定されるバッファメモリのメモリブロックBM(WA)に上記ICMPのパケットを書き込む(760)。上記ICMPリダイレクトメッセージは、宛先ノードに対して、特定の送信元IPアドレスと宛先IPアドレスを持つパケットに関するルーティング情報の変更を要求する内容となっている。
この後、p番目のTXディスクリプタ・テーブルのTxTPが指すエントリ領域TxTBL#p(TxTP)に、上記書込みアドレスWAと、ICMPパケットのパケット長と、フラグ1とを設定し(762)、上記ポインタTxTPをインクリメントし(764)、ルートポリシー・レジスタRPRの目的エントリのICMPフラグ255を“0”に変更(766)して、本ルーティンを終了する。
上述した変換処理700を実行することによって、図3〜図6に示した受信カプセル化パケット320から送信カプセル化パケット330への変換、受信カプセル化パケット330から送信IPパケット310への変換、ICMPリダイレクトメッセージ340の発行、受信カプセル化パケット350から送信IPパケット310'への変換、受信カプセル化パケット370から送信カプセル化パケッ380への変換が行われる。
図19は、受信パケットがIPパケットの場合に実行される変換処理ルーチン800の詳細を示す。
このルーチンでは、受信パケットのIPヘッダSAとIPヘッダとの組合せに該当するエントリをルートポリシー・レジスタ(RTR)25で検索する(802)。
RTR25に目的のエントリが見つからなかった場合(804)は、IPヘッダDAに基いてルーティングレジスタ(RTR)24を検索し(806)、RTR24が指定する出力ポート番号をパラメータjに設定する(824)。更に、受信パケットが自ノード宛てのICMPリダイレクト・メッセージか否かを判定し(826)、自ノード宛てのICMPリダイレクト・メッセージの場合は、ルートポリシー・レジスタ25を更新して(828)、このルーチンを終了する。
例えば、図4に示したように、発側ルータ1Aが着側ルータ1BからICMPパケット340を受信した場合、発側ルータ1Aは、ルートポリシー・レジスタ25−Aのエントリ250−11に優先して実行される新たなエントリ250P−11を追加する。
このルーチンでは、受信パケットのIPヘッダSAとIPヘッダとの組合せに該当するエントリをルートポリシー・レジスタ(RTR)25で検索する(802)。
RTR25に目的のエントリが見つからなかった場合(804)は、IPヘッダDAに基いてルーティングレジスタ(RTR)24を検索し(806)、RTR24が指定する出力ポート番号をパラメータjに設定する(824)。更に、受信パケットが自ノード宛てのICMPリダイレクト・メッセージか否かを判定し(826)、自ノード宛てのICMPリダイレクト・メッセージの場合は、ルートポリシー・レジスタ25を更新して(828)、このルーチンを終了する。
例えば、図4に示したように、発側ルータ1Aが着側ルータ1BからICMPパケット340を受信した場合、発側ルータ1Aは、ルートポリシー・レジスタ25−Aのエントリ250−11に優先して実行される新たなエントリ250P−11を追加する。
RPR25に目的エントリが登録されていた場合は、ワークエリアにカプセル化ヘッダを生成し(808)、上記目的エントリのトンネリング宛先アドレス(TDA)フィールド254が“DUP”か否かえを判定する(810)。もし、“DUP”が指定されていた場合は、受信パケットIPヘッダの宛先アドレスDAに基いてルーティングレジスタ(RTR)24を検索(812)し、ワークエリアにあるカプセル化ヘッダの宛先アドレスに上記IPヘッダの宛先アドレスDAを設定し(814)、上記カプセル化ヘッダの送信元アドレスに上記RTRで指定された出力ポートアドレスを設定し(820)、アドレスRAで特定されるバッファメモリ22のブロックBM(RA)の内容を上記カプセル化パケットでカプセル化された受信パケットに置換えた後(822)、ステップ824に進む。
上記目的エントリのトンネリング宛先アドレス(TDA)フィールド254が“DUP”以外の場合は、上記TDAフィールドが具体的なアドレスを示しているため、上記TDAフィールドが示すアドレスに基いてルーティングレジスタ(RTR)24を検索し(816)、カプセル化ヘッダの宛先アドレスに上記TDAフィールドが示すアドレスを設定して(818)、ステップ820に進む。
上記目的エントリのトンネリング宛先アドレス(TDA)フィールド254が“DUP”以外の場合は、上記TDAフィールドが具体的なアドレスを示しているため、上記TDAフィールドが示すアドレスに基いてルーティングレジスタ(RTR)24を検索し(816)、カプセル化ヘッダの宛先アドレスに上記TDAフィールドが示すアドレスを設定して(818)、ステップ820に進む。
上記変換処理800の実行によって、図3に示した受信Pパケット310から送信カプセル化パケット320への変換、図5に示した受信IPパケット310'から送信カプセル化パケット350への変換が行われる。また、着側ルータ1Bのルートポリシー・レジスタ25−Bに「上り/下り同一経路」ポリシーのエントリ250P−32が登録されてた場合は、図6に示した受信IPパケット360から送信カプセル化パケット370への変換が可能となる。
以上の実施例では、初期状態において、発側ルータが、発側端末からの受信パケットを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、これを着側ルータにトンネリング通信した。本発明の変形例として、発側ルータが、発側端末からの受信パケットを発側ホームエージェントノードにトンネリング通信し、発側ホームエージェントノードが、これを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、発側ルータに対してICMPリダイレクトメッセージを送信することによって、以後、発側ルータから着側ホームエージェントノードへトンネリング通信するようにしてもよい。
以上の実施例では、初期状態において、発側ルータが、発側端末からの受信パケットを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、これを着側ルータにトンネリング通信した。本発明の変形例として、発側ルータが、発側端末からの受信パケットを発側ホームエージェントノードにトンネリング通信し、発側ホームエージェントノードが、これを着側ホームエージェントノードにトンネリング通信し、着側ホームエージェントノードが、発側ルータに対してICMPリダイレクトメッセージを送信することによって、以後、発側ルータから着側ホームエージェントノードへトンネリング通信するようにしてもよい。
図1では、入力インタフェース11Aと出力インタフェース11Bにそれぞれ専用のマイクロコントローラとDMAコントローラを設けたが、マイクロコントローラとDMAコントローラを上記2つのインタフェースで共有し、1つのマイクロコントローラ14が、受信処理400と送信処理500をパケット単位で交互に繰り返すようにしてもよい。
図10〜図12では、ルートポリシー・レジスタ25の各エントリが、送信元IPアドレスと宛先IPアドレスとの特定の組合せに対してヘッダ処理規則を定義しているが、IPアドレスフィールド251、252の少なくとも一方に、複数の端末アドレスを包含するマスクされたIPアドレスを適用することによって、1つのエントリで端末グループ間通信のヘッダ処理規則を定義するようにしてもよい。
図10〜図12では、ルートポリシー・レジスタ25の各エントリが、送信元IPアドレスと宛先IPアドレスとの特定の組合せに対してヘッダ処理規則を定義しているが、IPアドレスフィールド251、252の少なくとも一方に、複数の端末アドレスを包含するマスクされたIPアドレスを適用することによって、1つのエントリで端末グループ間通信のヘッダ処理規則を定義するようにしてもよい。
また、実施例では、ショートカット経路ポリシーが指定されていた場合、図10に示したように、発側ルータ1Aが、ICMPリダイレクトメッセージの受信に応答して、エントリ250P−11をルートポリシーレジスタに追加し、上記追加エントリ250P−11を元のエントリ250−11に優先させることによって、その後に受信された端末5A(送信元アドレスA)から端末5B(宛先アドレスB)宛てのパケットを着側ルータ1Bにトンネリング通信するようにした。ここで、追加エントリ250P11を何時までも残しておくと、端末5A−5B間の次回の通信時に、端末5Aが送信した全てのパケットが上記追加エントリに従ってルータ1Bに転送されてしまい、もし、この時点で着側端末5Bが別ルータの管轄範囲に位置移動していた場合は、上記パケットが端末5Bに全く届かなくなるという問題がある。
従って、ルータ1Aでは、上記エントリ250P−11の追加時に元のエントリ250−11を保存しておくことが望ましい。また、上記エントリ250P−11は適当なタイミングで消去し、元のエントリ250−11を有効にすることによって、端末5Aから端末5B宛てのパケットを再度、着側ホームエージェントノード2a経由とすることが望ましい。同様に、着側ルータ1Bにおいても、250−31のICMPフラグ255を適当なタイミングで“1”に戻すことが望ましい。これらの修正は、例えば、ルートポリシーレジスタ25内の修正対象となる各エントリ(250P−11、250−31)にプログラムタイマを設け、エントリ参照の都度、タイマをリセットし、参照されないままタイムアウトとなったエントリについて、追加エントリであれば削除、フラグ付きエントリであればICMPフラグの再セットを行うようにすればよい。
以上の説明から明らかなように、本発明によれば、送信元と宛先(送信先)との組合せに応じて経路選択のポリシーを指定することによって、発側ノードと着側ノードとの間のトンネリング数を減少したパケット通信が可能となるため、パケットの転送遅延を低減できる。また、経路選択ポリシーとして、ショートカット経路を適用した場合は、転送遅延の減少の他に、ホームエージェントノードの負荷を低減できるという利点があり、上り下り同一経路を適用した場合は、上り、下りの両方向の従量課金を同一のホームエージェントノードで行うことができるため、課金が容易になるという利点がある。
また、実施例で示したルートポリシーレジスタのように、ヘッダ処理規則を記述したエントリテーブルを参照して、受信パケットから送信パケットへの変換を行う本発明の経路選択機能は、ルータ、ブルータ、またはホームエージェントノードと言った異種機能のノード装置に対して統一的に適用できる。
また、実施例で示したルートポリシーレジスタのように、ヘッダ処理規則を記述したエントリテーブルを参照して、受信パケットから送信パケットへの変換を行う本発明の経路選択機能は、ルータ、ブルータ、またはホームエージェントノードと言った異種機能のノード装置に対して統一的に適用できる。
1(1A、1B):ルータ、 2(2a、2b):ホームエージェントノード、
3(3A−13〜3B−n):基地局制御装置、
4(4A−11〜4B−1m):無線基地局、 5(5A〜5B):移動端末、
10(10−1〜10−k):インタフェースボード、
11A:入力インタフェース、 11B:出力インタフェース、
12A:入力回線インタフェース、 12B:出力回線インタフェース、
13A:受信バッファ、 13B:送信バッファ、
14A、14B:マイクロコントローラ、15A、15B:DMAコントローラ、
16A、16B:ディスクリプタエントリ・メモリ、
20:プロセッサ、 21:プログラムメモリ、 22:バッファメモリ、
23:ホームロケーション・レジスタ、 24:ルーティングレジスタ、
25:ルートポリシー・レジスタ、 26:空きアドレスキュー・メモリ、
27(27−1〜27−k):Rxディスクリプタ・テーブル、
28(28−1〜28−k):Txディスクリプタ・テーブル、
29:入出力装置、 50:ルーティング制御装置。
3(3A−13〜3B−n):基地局制御装置、
4(4A−11〜4B−1m):無線基地局、 5(5A〜5B):移動端末、
10(10−1〜10−k):インタフェースボード、
11A:入力インタフェース、 11B:出力インタフェース、
12A:入力回線インタフェース、 12B:出力回線インタフェース、
13A:受信バッファ、 13B:送信バッファ、
14A、14B:マイクロコントローラ、15A、15B:DMAコントローラ、
16A、16B:ディスクリプタエントリ・メモリ、
20:プロセッサ、 21:プログラムメモリ、 22:バッファメモリ、
23:ホームロケーション・レジスタ、 24:ルーティングレジスタ、
25:ルートポリシー・レジスタ、 26:空きアドレスキュー・メモリ、
27(27−1〜27−k):Rxディスクリプタ・テーブル、
28(28−1〜28−k):Txディスクリプタ・テーブル、
29:入出力装置、 50:ルーティング制御装置。
Claims (2)
- ホームエージェント装置および他のノード装置とネットワークを介して接続されるノード装置であって、
上記ホームエージェント装置から、上記他のノード装置が該ノード装置に送信したIPパケットを含むカプセル化されたパケットを受信する入力部と、
上記カプセル化されたパケットに含まれるIPアドレスを送信元アドレスとして、上記他のノード装置に制御パケットを送信する出力部とを有し、
上記制御パケットによって、上記他のノード装置に、後続パケットの送信経路を上記ホームエージェントを経由する第1経路から該ノード装置を宛先とする第2経路に切替えることを指示することを特徴とするノード装置。 - 移動端末である第1の端末の位置情報を管理するホームエージェント装置を含むネットワークに接続されたノード装置であって、
上記ホームエージェント装置から、第2の端末が上記第1の端末に送信したIPパケットを含むカプセル化された第1のパケットを受信する入力部と、
上記第1の端末が上記第2の端末に送信したIPパケットを含むカプセル化された第2のパケットを上記ホームエージェント装置に送信する出力部とを有することを特徴とするノード装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006308864A JP2007068225A (ja) | 2006-11-15 | 2006-11-15 | ノード装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006308864A JP2007068225A (ja) | 2006-11-15 | 2006-11-15 | ノード装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18429999A Division JP3895888B2 (ja) | 1999-06-29 | 1999-06-29 | パケット通信方法およびノード装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007068225A true JP2007068225A (ja) | 2007-03-15 |
Family
ID=37929783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006308864A Pending JP2007068225A (ja) | 2006-11-15 | 2006-11-15 | ノード装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007068225A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190097097A (ko) * | 2016-12-13 | 2019-08-20 | 비아셋, 인크 | 하이브리드 네트워크에서의 라우팅 |
-
2006
- 2006-11-15 JP JP2006308864A patent/JP2007068225A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190097097A (ko) * | 2016-12-13 | 2019-08-20 | 비아셋, 인크 | 하이브리드 네트워크에서의 라우팅 |
JP2020502913A (ja) * | 2016-12-13 | 2020-01-23 | ヴィアサット, インコーポレイテッドViaSat, Inc. | ハイブリッドネットワーク内のルーティング |
JP7058270B2 (ja) | 2016-12-13 | 2022-04-21 | ヴィアサット,インコーポレイテッド | ハイブリッドネットワーク内のルーティング |
JP2022092005A (ja) * | 2016-12-13 | 2022-06-21 | ヴィアサット,インコーポレイテッド | ハイブリッドネットワーク内のルーティング |
KR102443021B1 (ko) | 2016-12-13 | 2022-09-14 | 비아셋, 인크 | 하이브리드 네트워크에서의 라우팅 |
KR20220127340A (ko) * | 2016-12-13 | 2022-09-19 | 비아셋, 인크 | 하이브리드 네트워크에서의 라우팅 |
US11765084B2 (en) | 2016-12-13 | 2023-09-19 | Viasat, Inc. | Return-link routing in a hybrid network |
JP7395643B2 (ja) | 2016-12-13 | 2023-12-11 | ヴィアサット,インコーポレイテッド | ハイブリッドネットワーク内のルーティング |
KR102625089B1 (ko) * | 2016-12-13 | 2024-01-16 | 비아셋, 인크 | 하이브리드 네트워크에서의 라우팅 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3895888B2 (ja) | パケット通信方法およびノード装置 | |
JP4882555B2 (ja) | 無線ブリッジ通信機 | |
JP3239859B2 (ja) | 移動体通信システム及びその通信方法 | |
EP2869509B1 (en) | Method, apparatus, and system for processing data packet | |
JP4229182B2 (ja) | 無線通信システム、無線通信装置、無線通信方法、および、プログラム | |
WO2002073906A1 (fr) | Systeme de gestion de terminal mobile, terminal mobile, agent et programme | |
JP4466434B2 (ja) | 経路制御方法およびホームエージェント | |
JP2002281030A (ja) | ブロードキャストシステムとそのブロードキャスト方法、及びブロードキャストプログラム | |
US7609694B2 (en) | Multicast communications system with mechanism for updating multicast trees | |
JP2001197558A (ja) | ネットワークシステム | |
JP4603505B2 (ja) | パケットルーティング制御プログラム、パケットルーティング制御方法及びコンピュータシステム | |
JP4311895B2 (ja) | ルータ及び通信ネットワーク装置 | |
CN102405628A (zh) | 在无线通信系统中采用“核心与边缘分离”技术进行切换 | |
AU2002225442B2 (en) | Packet communication system | |
JP2003258842A (ja) | パケット通信システム及び転送装置 | |
JP3622648B2 (ja) | マイクロモビリティネットワークにおける経路更新方法 | |
EP1445898B1 (en) | Mobile communication control system | |
JP3693230B2 (ja) | パケット通信システム | |
JP2006005607A (ja) | ネットワークシステムおよび移動ルータ | |
JP3496641B2 (ja) | 端末位置情報管理方法,この方法を用いる端末位置情報管理システム、並びにこのシステムに用いるホームエージェントおよびボーダゲートウェイ | |
JP2007068225A (ja) | ノード装置 | |
JP2009246614A (ja) | 通信システム、端末、中継装置、通信モード判定方法、及びプログラム | |
US20160295492A1 (en) | Route Optimization Method, Router, and Location Manager Entity | |
JP6499283B2 (ja) | ページング方法、関連デバイス、及びシステム | |
JP2008219490A (ja) | ネットワークシステム及びアドレス変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090707 |