(57)【特許請求の範囲】
【請求項１】
ネットワーク・ディレクトリなしでデータ・パケットをルーチングする方法であって、
座標位置を示し絶対座標値を含む識別子をネットワーク中の各ノードに割り当てるステップと、
ネットワークがパケットを任意の中間経路を介して最終的な宛先ノードへ自由にルーチングできる最終的な宛先ノードへの完全な中間経路を指定することなしに、前記最終的な宛先ノードをその最終的な宛先ノードの前記絶対値によってのみパケット・ヘッダに指定することにより、前記最終的な宛先ノードにパケットをアドレスするステップと、
中継ローカル・ノードにおいて、事前に選択された基準に従って、前記パケット・ヘッダと前記ローカル・ノードに特有のその他の情報を使用することによって１つの近傍のノードを選択するステップと、
前記中継ノードにおいて、前記選択された近傍のノードの識別子を、前記最終的な宛先ノード用のラベルと共にルーチング・テーブルに記憶するステップと、
前記パケットを、前記最終的な宛先ノードへ最終的に転送できるように、前記選択された近傍のノードへ転送するステップと、
前記最終的な宛先に対するその後のパケットが前記中継ノードで受信されたときに、前記選択された近傍のノードの前記ルーチング・テーブルから前記識別子を検索し、その後のパケットをその識別子によって前記ノードへ転送するステップと
を含むことを特徴とする方法。
【請求項２】
前記選択するステップが、前記パケット・ヘッダを使用して、前記最終的な宛先ノードに対する前記近傍のノードの距離を求めることを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記選択するステップが、前記ローカル・ノードと前記近隣のノードとの間の通信履歴を維持するローカル・テーブルを作成することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
さらに、前記中継ノードにおいて、直接送信可能な近傍のノードの識別子を、前記送信元ノード用のラベルと共にルーチング・テーブルに記憶するステップと、
前記送信元ノードへ送られる返信パケットが前記中継ノードで受信されたときに、前記ルーチング・テーブルから前記直接送信可能な近傍のノードの前記識別子を検索するステップと、
前記その後のパケットを前記識別子によって前記ノードへ転送するステップとを含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項５】
「待ち時間」予想計算で使用されるリンク品質係数を使用して、好ましい通信経路が定義されることを特徴とする請求項３に記載の方法。
【請求項６】
ネットワーク・ディレクトリのないパケット・データ通信網においてデータ・パケットをルーチングするシステムであって、
それぞれ、座標位置を示し地上格子に対する座標値を含む識別子を含むネットワーク中の複数のノードと、
ネットワークがパケットを任意の中間経路を介して最終的な宛先ノードへ自由にルーチングできるように最終的な宛先ノードへの完全な中間経路を指定することなしに、前記最終的な宛先ノードをその最終的な宛先ノードの前記座標値によってのみパケット・ヘッダに指定することにより、前記最終的な宛先ノードにパケットをアドレスする手段と、
ルーチング・テーブル項目が、パケットの最終的な宛先ノードの識別子によって選択することができ、近傍のノードを前記最終的な宛先に対する転送ノードとして識別する情報を含むとき、前記複数のノードのそれぞれにおいて前記最終的な宛先に関する前記ルーチング・テーブル項目を記憶する手段と
を備えることを特徴とするシステム。
【請求項７】
ネットワーク・ディレクトリのないパケット・データ通信網においてデータ・パケットをルーチングするシステムであって、
それぞれ、地理的位置を示し地上格子に対する座標値を含む識別子を含むネットワーク中の複数のノードと、
ネットワークがパケットを任意の中間経路を介して最終的な宛先ノードへ自由にルーチングできるように最終的な宛先ノードへの完全な中間経路を指定することなしに、前記最終的な宛先ノードをその最終的な宛先ノードの前記座標値によってのみパケット・ヘッダに指定することにより、前記最終的な宛先ノードにパケットをアドレスする手段と、
中継ローカル・ノードにおいて、事前に選択された基準に従って、前記パケット・ヘッダと前記ローカル・ノードに特有のその他の情報を使用することによって少なくとも１つの近傍のノードを選択する手段と、
最終的に前記最終的な宛先ノードへ転送できるように、前記パケットを前記選択された近傍のノードへ転送する手段と、
ルーチング・テーブル項目が、パケットの最終的な宛先ノードの識別子によって選択することができ、近傍のノードを前記最終的な宛先に対する転送ノードとして識別する情報を含むとき、前記複数のノードのそれぞれにおいて、前記最終的な宛先に関する前記ルーチング・テーブル項目を記憶する手段と
を備えることを特徴とするシステム。
【請求項８】
前記選択する手段が、前記パケットを転送するうえで最少量の電力しか必要としない１つの近傍のノードを選択する手段を備えることを特徴とする請求項７に記載のシステム。
【請求項９】
前記選択手段が、前記パケット・ヘッダを使用して、前記最終的な宛先ノードに対する近傍のノードの距離を求める手段を備えることを特徴とする請求項７に記載のシステム。
【請求項１０】
前記選択する手段が、前記ローカル・ノードと前記近隣のノードとの間の通信履歴を維持するリンク・リストを作成する手段を備えることを特徴とする請求項７に記載のシステム。
【請求項１１】
前記リンク・リストが、距離、通信を確立するのに必要な出力電力、再試行履歴（信頼性）、スループット履歴、転送速度（正味データ転送速度）、ネットワーク遅延、データ優先順位、リンク使用度、所望の宛先への近さ、所望の方位への近さ、無作為さ、ローカル方位への近さの各基準のうちの少なくとも１つに関する前記近傍のノードに関する情報を維持することを特徴とする請求項10に記載のシステム。
【請求項１２】
リンク品質係数を使用して、好ましい通信経路が定義されることを特徴とする請求項10に記載のシステム。
【発明の詳細な説明】
発明の背景
本発明は、パケット通信網内でデータ・パケットをルーチングする方法に関し、詳細には、各ノードで生成されるルーチング・テーブルにノード間の最良の経路が記憶されているネットワーク内でデータ・パケットをルーチングする方法に関する。
パケット通信は、データのセグメントまたはパケットがエラー検査および受信の確認と共にルーチングされるデータ通信の形態である。パケットは送信元ノードと宛先ノードとの間で直接送信することも、あるいはいくつかの中継ノードを介して中継することもできる。いくつかのデータ・パケット・ルーチング方法が知られている。
１つの方法は、ディレクトリ・ベースのルーチングとして知られている。この方法によれば、パケットのヘッダ中のアドレスが、送信元ノードに記憶されているパケット・ルーチング・リストのディレクトリのインデックスとして使用される。パケット・ルーチング・リストは、送信元ノードから宛先ノードへの完全な送信経路を表すパケット・ノード識別子または呼出し符号の順序付きリストからなる。パケットが送信元ノードから送信された後、ネットワーク内のパケットの経路は、送信元ノードに記憶されていたパケット・ルーチング・リストによって決定される。パケット・ルーチング・リストは、ネットワーク中の各ノードの接続性に関する知識を用いて作成しなければならず、通常のディレクトリ・ベース・ルーチング方式では、各ノードは、それがパケットを送信するネットワーク中の他のあらゆるノードに関する完全なルーチング・リストを維持しなければならない。ディレクトリ・ベースのルーチング方式は、ディレクトリで使用されるネットワーク相互接続情報の継続的な維持および通信を必要とする。これらの機能はそれぞれ、ネットワーク資源をかなり使用し、このため、大規模なネットワークの性能が著しく低下することがある。しかし、ディレクトリ・ベースのルーチング技法は、データ遅延、スループット、信頼性、優先順位などを含め、様々なネットワーク・パラメータに関してルーチングを最適化できるようにするという利点を有する。
他の基本的なルーチング技法は、非ディレクトリ・ベースのルーチング技法である。非ディレクトリ・ベースのルーチングでは、ディレクトリ・ベースのルーチングに伴う複雑さが回避される。ネットワーク中の各送信側ノードごとの接続性情報を記憶する必要はなく、したがって、ネットワークの接続を保存するためにネットワークによって行わなければならないオーバヘッド処理の量が低減される。しかし、非ディレクトリ・ベースのルーチング技法では一般に、ネットワーク・パラメータを最適化することはできない。
Baranその他に発行され、出願人に譲渡された米国特許第4,939,726号では、ネットワーク・パラメータを最適化できるようにする非ディレクトリ・ベースのルーチング方法およびシステムが開示されている。この特許に記載された方法によれば、ネットワーク中の各ノードは、絶対地理座標、または外部座標ベースの基準系（ノード座標）中の絶対位置を示す符号によって固有に識別され、そのような絶対地理座標または等価物は、各パケットごとのパケット識別子の一部として使用される。パケットをルーチングするための各ノードごとの手段は、パケット宛先座標およびその近傍のノードのノード座標を使用してデータ・パケットの所望の伝送経路を決定する。受信されるパケットが、ノードがすでにパケットを受信している宛先へ送られる場合でも、ルーチングの決定は、受信される各パケットごとに下される。ルーチングは、好ましくは最適な転送、すなわち、最少量の電力しか使用せず、かつシステムの特性を考慮に入れた最大の転送を行うように、事前に選択された基準に従って優先順位付けすることができる。
したがって、Baranパケット・ルーチング方法は、ルーチング・ディレクトリもルーチング・テーブルも使用せずにデータ・ルーチングを実行する。ネットワークの各ノードは、それ自体と、そのノードの通信範囲内の近傍のノードとの間の通信の質に関する情報を収集し、あるいはその他の方法で各ノードにそのような情報が与えられる。ノードでデータ・パケットが受信されると、データ・パケットは、ローカル・ノードとその近傍のノードとの間の通信の履歴から導かれた基準に基づいてさらにネットワーク内でルーチングされる。この基準には、距離、電力要件、再試行履歴（信頼性）、スループット履歴、転送速度（正味データ転送速度）、ネットワーク遅延、データ優先順位が含まれる。通常、宛先象限内の近傍の緯度および経度を判定するために実行される初期設定手順があり、基準が、事前に選択された優先順位に従って重み付けされ、各ノードごとに、各ノードに対してローカルな可能な各宛先ごとのリンク品質（LQ）係数が確立される。Baranシステムでは、受信されており転送する必要がある各パケットごとに、ノードは、可能な中継ノードのリストを作成し、そのリストを順序付け、次いで近傍のノードをポールと、どのノードが使用できるかを調べる。
Baranで開示されたシステムは、うまく実行され、ディレクトリ・ベースのルーチング・システムに勝る利点を有するものとして知られているが、ネットワーク中の各ノードが、受信する各パケットに関するルーチングの決定を下す必要があるので、Baranネットワークはコストがかかり、遅延をもたらす。Baran座標ベースのアドレス方式の利点を維持するが、各パケットに関するルーチングの決定を下すうえでBaranシステムで必要とされるあらゆるパケットのオーバヘッドおよび処理を必要としないネットワークおよびルーチング方法が必要である。
発明の概要
本発明によれば、ノードに絶対座標ベースのアドレスが割り当てられ、ディレクトリ・ベースのルーチングを使用せずに各ノードごとにルーチングの決定が下されるパケット通信システムにおいて、ある最終的な宛先を有する特定のパケットに対して下されたルーチングの決定は、そのノードによって同じ最終的な宛先へ次に送信されるパケットが、その宛先に対して下されたルーチングの第１の決定に従って転送できるように、各ノードごとに記憶される。ルーチングの決定は各ノードごとにローカル・ルーチング・テーブルに記憶される。一実施態様では、ノードは、最初の送信元に対する返信パケットが受信されたときに、中継ノードがすでにルーチングの適当な決定を算出しているように、パケットの送信元ノードに関するルーチング情報も記憶する。
ネットワークの動作中に、各ノードは、パケットをその最終的宛先に向かって次のノードへ送るうえで有用なルーチング・テーブルを作成し維持する。本発明による方法によれば、最終的な宛先へのパケットに対してルーチングの決定を下さなければならないのは、その宛先へのパケットとその宛先からのパケットのどちらかが初めて受信されたときだけである。宛先ノードに対するパケットを受信した中継ノードは、宛先ノードの絶対座標ベースのアドレスに基づいてそのパケットの次の中継ノードを判断する。中継ノードが最終的な宛先に対する次の中継ノードを判定した後、その情報はルーチング・テーブルに記憶され、その後その中継ノードで受信されるその最終的な宛先へのパケットはただちに、ルーチング・テーブルにリストされている次の中継ノードへルーチングされる。本発明の一実施態様では、中継ノードは、その中継ノードへパケットを送信した中継ノードが、送信元ノードに返信されるパケットに関する最良の次の中継ノードであると仮定することによって、受信したパケットの送信元ノードに対する次の中継ノードも記憶する。このように、中継ノードは、送信元に返信される宛先からの返信パケットを受信したときには、そのパケットに関するルーチングの決定を下す必要はなく、その代わり、そのパケットが送信されてきた経路に沿ってそのパケットを送り返す。
本発明によって構築されたネットワーク・システムは、パケットに関するルーチングの決定がローカルに各ノードごとに下されるという点でディレクトリ・ベースのルーチング・システムとは異なる。送信元ノードは、宛先ノードに達する完全な経路を指定するわけではなく、最終的なノードの方向の近傍のノードへパケットを送信するだけであり、その近傍のノードは、最終的なノードへの経路中の次の中継ノードを判定する。本発明によって構築されたシステムは、ルーチングに関するローカルな決定がローカルに記憶され、次いで他のパケットをルーチングする際に使用できるという点で、Baranのシステムとは異なる。Baranとは異なり、パケットが受信されるたびにノードがルーチングの決定を下す必要はなく、これによって、ネットワークの速度および効率が大幅に向上する。
本発明は、添付の図面に関連して下記の詳細な説明を参照することによってよりよく理解されよう。
【図面の簡単な説明】
第１図は、本発明による一般的なデータ・ネットワーク・トポロジを示すブロック図である。
第２図は、宛先ノードにアドレスされたパケットを受信したときの中継ノードの動作を説明するフローチャートである。
特定の実施形態の詳細な説明
第１図は、本発明によるデータ・ネットワークを示す。このネットワークは、ノード間の許容される通信リンクを表す経路12によって相互接続されたＯ〜Ｚと呼ばれるノードからなる。ルーチングの決定が下された宛先へのパケットの送信を高速化するために、矢印16で表されたルーチング・テーブル項目がある種のノード間に存在する。
送信元ノードと宛先ノードとの間のデータ送信は下記のように行われる。ノードＷは、ノードＯへ情報パケットを送信したい場合、ノードＷを送信元として識別し、ノードＯを宛先として識別し、ノードＷ自体およびノードＯの絶対座標ベースのアドレスを与えるヘッダと共に、データ・パケットを準備する。ノードＷは次いで、そのルーチング・テーブルを検査して、ノードＯに関する項目があるかどうか調べる。ノードＯに関する項目がない場合Baranシステムと同様にルーチングの決定を下す。すなわち、ノードＷは、それが通信できるすべてのノード（この場合はＺおよびＹであり、ノードＷの近傍のノードとも呼ばれる）を調べ、ノードＯの方向へ送信するうえでどれが最も有利かに応じてこれらのノードを順序付けし、最も有利なノードへポーリング・パケットを送信し、そのノードがデータ・パケットを受信できるかどうかを判定することによってルーチングを決める。ノードＷは、ある近傍のノードがノードＯへパケットを中継できると判定した後、そのパケットの送信元および宛先を識別し、ノードＷ自体を送信機として識別するヘッダと共に、そのデータ・パケットを、選択されたノード（この場合はノードＹ）へ送信する。本発明によれば、ノードＷは、最終的な宛先Ｏへパケットを到達させるうえで送信を行うべき中継ノードがノードＹであると判定した後、その情報をルーチング・テーブルに記憶する。ノードＷは、次にノードＯへパケットを送信したいときは、ルーチング・テーブルを検査し、Ｏに関する項目を見つけ、上記とは異なりルーチングの決定を下すプロセスを実行せずにただちにそのパケットをノードＹへ送信する。
ノードＹは、パケットを受信すると、やはりノードＹ自体のルーチング・テーブルを検査して、宛先ノードＯに関する項目があるかどうか調べる。項目がある場合、パケットは即座にルーチング・テーブル中の次のノードとしてリストされているノードに中継される。項目がない場合、ノードＹは、前述のルーチングの決定を下すプロセスを実行し、次いで次のノード（この場合はＶ）をノードＯに関する項目としてルーチング・テーブルに記憶し、次いで次のノードへこのパケットを転送する。
ノードＶは、パケットを受信すると、そのルーチング・テーブル内でノードＯを探し、項目を見つけた場合は、その項目にリストされているノードへパケットを送信する。Ｏに関する項目がない場合、ノードＶは、前述のようにルーチングの決定を下し、次いでＯに関するルーチング・テーブル項目を作成する。同時に、ノードＶは、そのルーチング・テーブルと近傍ノード・リストを検査して、ノードＷ、すなわちそのパケットの最初の送信元ノードに関する項目があるかどうか調べる。ノードＷに関する項目がない場合、ノードＶは、ノードＷに関するルーチング・テーブル項目を作成し、ノードＶにＷからのパケットを送信したノード（この場合はノードＹ）を、Ｗに戻るパケットの次の中継ノードとして使用する。このように、ノードＶは、ＯからＷへの応答パケットを受信した場合、そのパケットに関するルーチングの新たな決定を下す必要なしにそのパケットをただちにノードＹへ転送する。下記の表は、ノードＷからの、ノードＯに対するパケットを、受信し、送信した後のノードＶのキャッシュ・ルーチング・テーブルを表すものである。
0003624222.tif 000002
本発明によるノードは、ルーチング・テーブルが、各項目が最後に使用されたのはいつかを追跡するように設計される。ルーチング・テーブルが満杯になると、パケットに関するルーチングの新たな決定が下されるたびに、最初に使用された項目が破棄され、新しい項目が作成される。
第２図は、本発明の一実施形態による中継ノードの動作を示すフローチャートを示す。このプロセスのステップは特定の順序で示されているが、当業者には、このプロセスに含まれるいくつかのサブプロセスの順序を変更することができ、このプロセスのいくつかのステップを並行して処理できることが自明であろう。このプロセスではまず、中継ノードがルーチングに関するパケットを受信する（ステップS1）。前述のように、パケットは、送信元ノードおよび宛先ノードの絶対アドレスと、パケットを送信してきた近傍のノードのアドレスを含む。中継ノードはまず、パケットの送信元ノード識別子を調べて、その送信元ノードが、中継ノードが直接送信できる近傍のノードであるかどうかを判定する（ステップS2）。そうでない場合、中継ノードはそのルーチング・テーブルを調べて、その送信元ノードに関する項目があるかどうか調べる（ステップS3）。項目がない場合、送信元ノードは、ルーチング・テーブルが満杯かどうか調べて（ステップS4）、そうである場合は最も古い時期に使用された項目を削除する（ステップS5）。中継ノードは次いで、送信元ノードに関するルーチング・テーブル項目を作成する（ステップS6）。
送信元ノード識別子の処理が完了した後、中継ノードは、パケットの宛先ノード識別子を調べる。宛先ノードが、中継ノードが直接送信できる近傍のノードである場合（ステップS7）、中継ノードはパケットを送信する（ステップS8）。そうでない場合、中継ノードはそのルーチング・テーブルを調べて、すでに宛先ノードに関する項目があるかどうかを判定する（ステップS9）。パケットの宛先ノードに関するルーチング・テーブル項目がない場合、中継ノードは、ルーチング・テーブルに新しい項目用の空間があるかどうか調べる（ステップS10）。ルーチング・テーブルに新しい項目用の空間がない場合、中継ノードは、最も古く使用された項目を削除し、新しい項目用の空間を設ける（ステップS11）。中継ノードは次いで、宛先ノードに関する新しいルーチング・テーブル項目を作成する（ステップS12）。宛先項目は、上記で説明しBaran特許に記載されたルーチングの決定を下すプロセスによって作成される。宛先ノードに関するルーチング・テーブル項目が作成された後、中継ノードはその項目を使用して（ステップS13）、パケットをその宛先へ転送する（ステップS8）。
当業者には、この手順に対するいくつかの修正例が自明であろう。たとえば、送信元ノード識別子を処理し送信元ノード項目を作成するステップは、パケットの送信後に実行することも、あるいはパケットの送信中に実行することもできる。他の例は、送信元ノードに関する古い項目が存在するときでも、送信元ノード・ルーチング・テーブル項目を常に更新することである。
本発明の特定の実施形態に関して説明した。当業者には他の実装形態が明らかであろう。したがって、本発明は、添付の請求の範囲で示したものを除いて本発明を制限するものではない。
【図１】
0003624222.tif 000003
【図２】
0003624222.tif 000004