(57)【特許請求の範囲】
【請求項１】
管理アドレス及びルーティングＩＤ範囲を保存する保存手段と、
使用しているルーティングＩＤを含む近隣広報信号を送信する近隣広報信号送信手段と、
起動時に他の通信ノードから、近隣広報信号を受信しない場合は、ルートノードとなり、保存しているルーティングＩＤ範囲を自ノードが管理する管理ルーティングＩＤ空間とし、起動時に１以上の通信ノードから近隣広報信号を受信する場合は、選択した１つの通信ノードから、所定のルーティングＩＤ分割方法に基づき、前記選択した通信ノードの管理ルーティングＩＤ空間の一部の割当てを受けて、自ノードの管理ルーティングＩＤ空間とし、自ノードの管理ルーティングＩＤ空間から前記ルーティングＩＤ分割方法に基づき、自ノードが使用するルーティングＩＤを決定するルーティングＩＤ決定手段と、
メッセージを宛先の通信ノードへ送信するメッセージ送信手段と、
中継手段と、
を有し、
メッセージ送信手段は、
宛先通信ノードの管理アドレスから、宛先通信ノードが使用しているルーティングＩＤを取得するルーティングＩＤ取得手段と、
前記ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係に従い、宛先通信ノードまでに経由する通信ノードであるソースルートを決定するソースルート決定手段と、
ルーティングＩＤに対応する宛先アドレスと、ソースルートとを有するパケットを送信するパケット送信手段と、
を備え、
中継手段は、他の通信ノードのルーティングＩＤに対応する宛先アドレスのパケットを受信した場合、ソースルートに従い転送し、
ルーティングＩＤ決定手段は、管理ルーティングＩＤ空間の割当元通信ノードからの近隣広報信号を受信しなくなった場合は、受信している近隣広報信号の送信元である他の通信ノードから、新たに管理ルーティングＩＤ空間の割当てを受け、管理ルーティングＩＤ空間と使用するルーティングＩＤを変更することを特徴とする通信ノード。
【請求項２】
近隣広報信号は、ルートノードの管理アドレスを含み、
ルーティングＩＤ決定手段は、管理ルーティングＩＤ空間の割当元通信ノードが送信する近隣広報信号に含まれるルートノードより、優先順位の高いルートノードを含む近隣広報信号を受信した場合、優先順位の高いルートノードを含む近隣広報信号を送信している通信ノードから、新たに管理ルーティングＩＤ空間の割当てを受け、管理ルーティングＩＤ空間と使用するルーティングＩＤを変更することを特徴とする請求項１に記載の通信ノード。
【請求項３】
自ノードのルーティングＩＤに対応する宛先アドレスのパケットを受信した場合は、ソースルートに指定された通信ノードに確認信号を送信する確認信号送信手段を有し、
前記中継手段は、ソースルートに指定された通信ノードが隣接する通信ノードではない場合は、自ノードの隣接ノードのルーティングＩＤを含む不存在通知信号を、中継したパケットについての到着確認を宛先通信ノードから所定の期間内に受信しない場合は、自ノードの隣接ノードのルーティングＩＤを含む障害通知信号を、送信元の通信ノードに送信し、
ソースルート決定手段は、不存在通知信号又は障害通知信号を受信した場合には、通知される隣接ノードのルーティングＩＤと、ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係とに基づき、ソースルートの再計算を行うことを特徴とする請求項１又は２に記載の通信ノード。
【請求項４】
自ノードが使用する管理アドレスを所定の管理アドレス変換方法で変換し、変換後の値をルーティングＩＤとして使用している通信ノード宛に、自ノードが使用するルーティングＩＤと自ノードの管理アドレスを含むＩＤ登録信号を送信するルーティングＩＤ登録手段を有し、
ルーティングＩＤ取得手段は、宛先通信ノードの管理アドレスを前記管理アドレス変換方法で変換し、変換後の値をルーティングＩＤとして使用している通信ノード宛に、宛先通信ノードのルーティングＩＤを問い合わせるＩＤ検索信号を送信し、
ＩＤ登録信号又はＩＤ検索信号を受信した場合、前記ルーティングＩＤ分割方法に基づき存在が認識できる通信ノードのうち、自ノードのルーティングＩＤが、宛先に対応するルーティングＩＤと一番近い場合は、自ノードでＩＤ登録信号又はＩＤ検索信号の処理を行い、それ以外の場合は、ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係に従いＩＤ登録信号又はＩＤ検索信号の中継を行う手段を有することを特徴とする請求項１から３のいずれか１項に記載の通信ノード。
【請求項５】
前記管理アドレス変換方法は、ハッシュ関数を使用することを特徴とする請求項４に記載の通信ノード。
【請求項６】
コンピュータを、
管理アドレス及びルーティングＩＤ範囲を保存する保存手段と、
使用しているルーティングＩＤを含む近隣広報信号を送信する近隣広報信号送信手段と、
起動時に他の通信ノードから、近隣広報信号を受信しない場合は、ルートノードとなり、保存しているルーティングＩＤ範囲を自ノードが管理する管理ルーティングＩＤ空間とし、起動時に１以上の通信ノードから近隣広報信号を受信する場合は、選択した１つの通信ノードから、所定のルーティングＩＤ分割方法に基づき、前記選択した通信ノードの管理ルーティングＩＤ空間の一部の割当てを受けて、自ノードの管理ルーティングＩＤ空間とし、自ノードの管理ルーティングＩＤ空間から前記ルーティングＩＤ分割方法に基づき、自ノードが使用するルーティングＩＤを決定するルーティングＩＤ決定手段と、
メッセージを宛先の通信ノードへ送信するメッセージ送信手段と、
中継手段と、
を有し、
メッセージ送信手段は、
宛先通信ノードの管理アドレスから、宛先通信ノードが使用しているルーティングＩＤを取得するルーティングＩＤ取得手段と、
前記ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係に従い、宛先通信ノードまでに経由する通信ノードであるソースルートを決定するソースルート決定手段と、
ルーティングＩＤに対応する宛先アドレスと、ソースルートとを有するパケットを送信するパケット送信手段と、
を備え、
中継手段は、他の通信ノードのルーティングＩＤに対応する宛先アドレスのパケットを受信した場合、ソースルートに従い転送し、
ルーティングＩＤ決定手段は、管理ルーティングＩＤ空間の割当元通信ノードからの近隣広報信号を受信しなくなった場合は、受信している近隣広報信号の送信元である他の通信ノードから、新たに管理ルーティングＩＤ空間の割当てを受け、管理ルーティングＩＤ空間と使用するルーティングＩＤを変更する、
通信ノードとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットルーティングに関し、より詳しくは、ネットワーク障害時においても、障害箇所を回避してメッセージの転送を可能とする障害回避ルーティングに関する。
【背景技術】
【０００２】
インターネットの発展に伴い、１つのＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）のネットワークが、数千から数万台に及ぶルータ等のネットワーク構成機器により構成される状態となり、これら大規模ネットワークに対応したネットワークの構成管理方式が必要となっている。ここで、構成管理とは、ネットワーク構成機器に対する各種設定の投入及び運用状態の監視をいう。
【０００３】
これら、大規模ネットワークの構成管理において、ネットワークの管理者に対してネットワーク構成管理のためのユーザインタフェースを提供する管理サーバとルータ等のネットワーク構成機器間で、構成管理のために交換される管理メッセージは、ネットワークの障害に拘らず、これら障害箇所を回避して高い信頼度で転送される必要がある。
【０００４】
非特許文献１には、各ルータがそれぞれの判断に従い隣接ルータにメッセージを転送する、ｈｏｐ−ｂｙ−ｈｏｐ型の障害回避ルーティングが示されている。非特許文献１によると、各ルータは、ネットワーク全体のマップ、いわゆる、リンクステート情報を維持し、リンクステート情報に基づき、あらかじめ、隣接ルータに対する予備のルートを計算しておく。実際に障害が発生し、隣接ルータと通信不能になったときは、あらかじめ計算しておいた予備のルートにパケット又はメッセージの転送を行うことで障害を回避している。
【０００５】
また、非特許文献２には、メッセージ送信元のルータが、宛先までの経路を指定するソースルーティング型の障害回避ルーティングが示されている。非特許文献２によると、各ルータは、リンクステート情報を維持し、メッセージを送信するルータは、リンクステート情報に基づき転送経路を決定し、転送経路を含むメッセージの送信を行う。この指定転送経路をソースルートと呼ぶが、ソースルート上でメッセージの中継に失敗すると、中継に失敗したルータは、メッセージ送信元のルータに中継失敗の通知を行う。メッセージ送信元のルータは、中継失敗箇所をリンクステート情報から除去し、再度ソースルートを計算してメッセージの再送を行うことで障害回避を実現している。
【０００６】
【非特許文献１】Ｓ．Ｌｅｅ  ｅｔ  ａｌ，“Ｐｒｏａｃｔｉｖｅ  ｖｓ  Ｒｅａｃｔｉｖｅ  Ａｐｐｒｏａｃｈｅｓ  ｔｏ  Ｆａｉｌｕｒｅ  Ｒｅｓｉｌｅｎｔ  Ｒｏｕｔｉｎｇ”，ｉｎ  ｐｒｏｃ．  ｏｆ  ＩＥＥＥ  ｉｎｆｏｒｃｏｍ，２００４年
【非特許文献２】Ｉ．Ａｖｒａｍｐｏｕｌｏｕｓ  ｅｔ  ａｌ，“Ｈｉｇｈｌｙ  Ｓｅｃｕｒｅ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔ  Ｒｏｕｔｉｎｇ”  ｉｎ  ｐｒｏｃ．  ｏｆ  ＩＥＥＥ  Ｉｎｆｏｃｏｍ，２００４年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
非特許文献１及び２に記載の障害回避ルーティングでは、ＩＰネットワーク内の各ネットワーク構成機器のＩＰアドレスが効率的に経路集約可能でない場合、ルータ間及びルータと管理サーバ間で交換し、メモリ上に維持しなければならないリンクステート情報が大きくなってしまう。更に管理対象であるネットワーク規模が大規模である場合には、リンクステート情報も巨大なものとなり、ネットワーク帯域資源が、リンクステート情報交換及び維持のために消費され、ネットワーク構成機器に要求されるハードウェア能力が著しく高いものになるという問題がある。
【０００８】
従って、本発明は、ネットワーク内の通信ノード、即ち、各ネットワーク構成機器及び管理サーバに割り当てられたアドレスが効率的に経路集約可能でない場合においても、高い能力を必要とせず、かつ、巨大なリンクステート情報を維持交換する必要もなく、障害を回避してメッセージを宛先の通信ノードまで転送する通信ノード及び通信ノード用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明における通信ノードによれば、
管理アドレス及びルーティングＩＤ範囲を保存する保存手段と、使用しているルーティングＩＤを含む近隣広報信号を送信する近隣広報信号送信手段と、起動時に他の通信ノードから、近隣広報信号を受信しない場合は、ルートノードとなり、保存しているルーティングＩＤ範囲を自ノードが管理する管理ルーティングＩＤ空間とし、起動時に１以上の通信ノードから近隣広報信号を受信する場合は、選択した１つの通信ノードから、所定のルーティングＩＤ分割方法に基づき、前記選択した通信ノードの管理ルーティングＩＤ空間の一部の割当てを受けて、自ノードの管理ルーティングＩＤ空間とし、自ノードの管理ルーティングＩＤ空間から前記ルーティングＩＤ分割方法に基づき、自ノードが使用するルーティングＩＤを決定するルーティングＩＤ決定手段と、メッセージを宛先の通信ノードへ送信するメッセージ送信手段と、中継手段とを有し、メッセージ送信手段は、宛先通信ノードの管理アドレスから、宛先通信ノードが使用しているルーティングＩＤを取得するルーティングＩＤ取得手段と、前記ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係に従い、宛先通信ノードまでに経由する通信ノードであるソースルートを決定するソースルート決定手段と、ルーティングＩＤに対応する宛先アドレスと、ソースルートとを有するパケットを送信するパケット送信手段とを備え、中継手段は、他の通信ノードのルーティングＩＤに対応する宛先アドレスのパケットを受信した場合、ソースルートに従い転送し、ルーティングＩＤ決定手段は、管理ルーティングＩＤ空間の割当元通信ノードからの近隣広報信号を受信しなくなった場合は、受信している近隣広報信号の送信元である他の通信ノードから、新たに管理ルーティングＩＤ空間の割当てを受け、管理ルーティングＩＤ空間と使用するルーティングＩＤを変更することを特徴とする。
【００１０】
本発明の通信ノードにおける他の実施形態によれば、
近隣広報信号は、ルートノードの管理アドレスを含み、ルーティングＩＤ決定手段は、管理ルーティングＩＤ空間の割当元通信ノードが送信する近隣広報信号に含まれるルートノードより、優先順位の高いルートノードを含む近隣広報信号を受信した場合、優先順位の高いルートノードを含む近隣広報信号を送信している通信ノードから、新たに管理ルーティングＩＤ空間の割当てを受け、管理ルーティングＩＤ空間と使用するルーティングＩＤを変更することも好ましい。
【００１１】
また、本発明の通信ノードにおける他の実施形態によれば、
自ノードのルーティングＩＤに対応する宛先アドレスのパケットを受信した場合は、ソースルートに指定された通信ノードに確認信号を送信する確認信号送信手段を有し、前記中継手段は、ソースルートに指定された通信ノードが隣接する通信ノードではない場合は、自ノードの隣接ノードのルーティングＩＤを含む不存在通知信号を、中継したパケットについての到着確認を宛先通信ノードから所定の期間内に受信しない場合は、自ノードの隣接ノードのルーティングＩＤを含む障害通知信号を、送信元の通信ノードに送信し、ソースルート決定手段は、不存在通知信号又は障害通知信号を受信した場合には、通知される隣接ノードのルーティングＩＤと、ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係とに基づき、ソースルートの再計算を行うことも好ましい。
【００１２】
更に、本発明の通信ノードにおける他の実施形態によれば、
自ノードが使用する管理アドレスを所定の管理アドレス変換方法で変換し、変換後の値をルーティングＩＤとして使用している通信ノード宛に、自ノードが使用するルーティングＩＤと自ノードの管理アドレスを含むＩＤ登録信号を送信するルーティングＩＤ登録手段を有し、ルーティングＩＤ取得手段は、宛先通信ノードの管理アドレスを前記管理アドレス変換方法で変換し、変換後の値をルーティングＩＤとして使用している通信ノード宛に、宛先通信ノードのルーティングＩＤを問い合わせるＩＤ検索信号を送信し、ＩＤ登録信号又はＩＤ検索信号を受信した場合、前記ルーティングＩＤ分割方法に基づき存在が認識できる通信ノードのうち、自ノードのルーティングＩＤが、宛先に対応するルーティングＩＤと一番近い場合は、自ノードでＩＤ登録信号又はＩＤ検索信号の処理を行い、それ以外の場合は、ルーティングＩＤ分割方法で決まるルーティングＩＤの結合関係に従いＩＤ登録信号又はＩＤ検索信号の中継を行う手段を有することも好ましい。
【００１３】
更に、本発明の通信ノードにおける他の実施形態によれば、
前記管理アドレス変換方法は、ハッシュ関数を使用することも好ましい。
【００１４】
本発明におけるプログラムによれば、
コンピュータを、前記通信ノードとして機能させることを特徴とする。尚、コンピュータとは、パーソナルコンピュータ等の汎用的な目的に設計されたコンピュータのみならず、ルータ等の通信用途向けに設計されたハードウェア構成の機器をも含む。
【発明の効果】
【００１５】
各通信ノードが、所定のルーティングＩＤ分割方法に基づき、常にルーティングＩＤ分割方法で決定されるルーティングＩＤの結合関係を維持するように、自律分散的に使用するルーティングＩＤを決定することで、管理アドレスが集約可能でなくても、各ノードは、メッセージの宛先通信ノードへの経路を特定することができる。
【００１６】
自ノード宛のパケットを受信した場合は、ソースルートに指定された通信ノードに確認信号を送信することで、中継ノードは、中継したメッセージが宛先通信ノードに正常に到達したか否かを確認できる。各中継ノードは、メッセージが宛先通信ノードに到達しなかった場合、自ノードの隣接ノードのルーティングＩＤを含む障害通知信号をメッセージ送信元の通信ノードに送信し、また、ソースルートに指定された通信ノードが隣接する通信ノードではない場合には、自ノードの隣接ノードのルーティングＩＤを含む不存在通知信号をメッセージ送信元の通信ノードに送信することで、メッセージ送信元ノードは、ルーティングＩＤ分割方法で決定されるルーティングＩＤの結合関係以外のルートと、障害箇所を認識し、迂回ルートの計算が可能となる。本構成により、リンクが正常であるが、ノードの中継処理のみに異常があるような障害に対しても、障害箇所を迂回したルーティングが可能となる。
【００１７】
ルーティングＩＤと管理アドレスとの対応関係を、管理アドレスを所定の変換方法で変換して得られる値をルーティングＩＤとして使用するノードに、同一の値をルーティングＩＤとして使用する通信ノードが存在しない場合には、一番近い値をルーティングＩＤとして使用している通信ノードヘ分散配置することで、ノード障害に対して耐性の高いシステムとなる。
【００１８】
上記変換方法は、入力される値を、所定のビット長で、かつ、値域内に重複なく一様分布させるハッシュ関数を用いることにより確実に一様な分散配置とすることができる。
【発明を実施するための最良の形態】
【００１９】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。
【００２０】
図１は、本発明を説明するために用いるネットワーク構成図である。図１において、ノードとは、ルータ等のネットワーク構成機器及び管理サーバといった通信装置、つまり通信ノードを表している。各ノードに対して、ネットワーク管理者は、あらかじめ、管理アドレス及びルーティングＩＤ範囲を設定保存しておく。管理アドレスは、例えばＩＰアドレスといった通信相手ノードを識別するためのアドレスであるが、ネットワークトポロジに対して、経路集約可能である必要はなく、また、インタフェース数等とも無関係に各ノードに１つだけ割当てを行う。ルーティングＩＤ範囲は、全ノードに対して同一値であり、各ノードは、ルーティングＩＤ範囲から、それぞれが管理メッセージの転送において使用するルーティングＩＤを自律分散処理で決定する。
【００２１】
図２に、図１の各ノードに設定された管理アドレス及びルーティングＩＤ範囲を示す。図２では、簡単のため管理アドレスを文字ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇで表している。また、後述するように、管理アドレスから、ルーティングＩＤを検索可能とするため、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）を用い、管理アドレスとルーティングＩＤの関係を、各ノードに分散共有する。より詳しくは、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）等のハッシュ関数により、管理アドレスを変換してハッシュ値を算出し、算出したハッシュ値に等しい、又は、一番近いルーティングＩＤのノードに管理アドレスとルーティングＩＤの関係を保存する。図２には、各ノードの管理アドレスの、ハッシュ関数によるハッシュ値も合わせて示している。
【００２２】
図３は、各ノードが使用するルーティングＩＤの決定方法を説明する図である。図３の（ａ）において、ノード１−Ａが起動したものとする。起動したノードは、起動後Ｔ１秒間リスニング状態となり、近隣ノードが送信する、送信ノードのルーティングＩＤを含む近隣広報信号（以後、ＮＡ信号と呼ぶ。ＮＡ：Ｎｅｉｇｈｂｏｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）の受信確認を行い、ＮＡ信号を受信した場合は、含まれるルーティングＩＤを記録する。ノード１−Ａは最初に起動したノードであり、リスニング状態の間にＮＡ信号を受信しないため、本システムのルートノードとなり、設定されているルーティングＩＤ範囲０〜３１のなかの最小値０を自身のルーティングＩＤとして使用する。また、自身が管理するルーティングＩＤ空間を、設定されているルーティングＩＤ範囲である０〜３１とする。ルートノードであるノード１−Ａは、以後、自身の各インタフェースに、自身のルーティングＩＤと、ルートノードの管理アドレス、即ちａを含むＮＡ信号をＴ１秒間隔にて送信する。
【００２３】
続いて（ｂ）において、ノード１−Ｂが起動したものとする。ノード１−Ｂは、リスニング状態の間に、ノード１−ＡよりＮＡ信号を受信し、ルーティングＩＤが０であるノード１−Ａの存在と、ルートノードの管理アドレスがａであることを認識する。Ｔ１秒経過後、ノード１−Ｂはリクエスティング状態に以降し、ノード１−ＡにＩＤ要求信号を送信する。ＩＤ要求信号を受信したノード１−Ａは、自身が管理するルーティングＩＤ空間である０〜３１を２分割し、後半１６〜３１をノード１−Ｂに与えることを示すＩＤ割当信号をノード１−Ｂに送信すると共に、自身が管理するルーティングＩＤ空間を、０〜１５に更新する。ＩＤ割当信号を受信したノードＢは、割り当てられたルーティング空間の最小値である１６を、自身のルーティングＩＤとして使用すると共に、割り当てられたルーティングＩＤ空間１６〜３１を自身が管理するものとして記録する。以後、自身の各インタフェースに、自身のルーティングＩＤと、ルートノードの管理アドレスを含むＮＡ信号をＴ１秒間隔にて送信する。
【００２４】
続いて、図３（ｃ）及び（ｄ）において、それぞれ、ノード１−Ｃ及びノード１−Ｄが起動するが、上記と同様ノード１−Ｃは、ＩＤ要求信号をノード１−Ａに送信し、ノード１−Ａは、ノード１−ＣにルーティングＩＤ空間８〜１５を割当て、ノード１−Ｃは、８を自身のルーティングＩＤとして使用し、ノード１−Ｄは、ＩＤ要求信号をノード１−Ｃに送信し、ノード１−Ｃは、ノード１−ＤにルーティングＩＤ空間１２〜１５を割当て、ノード１−Ｄは、１２を自身のルーティングＩＤとして使用する。
【００２５】
図３（ｅ）でノード１−Ｅが起動するが、ノード１−Ｅは、リスニング状態の間にノード１−Ｄ及びノード１−Ｂから、それぞれＮＡ信号を受信する。本実施形態においては、複数のノードからＮＡ信号を受信した場合、ルーティングＩＤの最も小さいノードに、本例ではノード１−Ｅに対してＩＤ要求信号を送信するものとする。ノード１−Ｄは、ノード１−Ｅに対してルーティングＩＤ空間１４〜１５を割当て、ノード１−Ｅは、１４を自身のルーティングＩＤとする。尚、ルーティングＩＤの大きいノードに対してＩＤ要求信号を送信する構成とすることも可能である。
【００２６】
その後、図３（ｆ）においてノード１−Ｆが起動するが、上記と同様、ノード１−Ｆは、ＩＤ要求信号をノード１−Ｅに送信し、ノード１−Ｅは、ノード１−ＥにルーティングＩＤ空間１５を割当て、ノード１−Ｅは、１５を自身のルーティングＩＤとして使用する。
【００２７】
最後に、図３（ｇ）において、ノード１−Ｇが起動するが、ノード１−Ｇは、ルーティングＩＤがノード１−Ｂより小さいノード１−ＡにＩＤ要求信号を送信し、ノード１−Ａは、ノード１−ＧにルーティングＩＤ空間４〜７を割当て、ノード１−Ｇは、４を自身のルーティングＩＤとして使用する。
【００２８】
図４に、図３（ｇ）の時点での各ノードのルーティングＩＤと、各ノードが管理しているルーティングＩＤ空間と、ルーティングＩＤ空間の割当元の関係を示す。尚、図４の対応関係については後述する。
【００２９】
上述したように、本発明でのルーティングＩＤの決定は、最初に起動したノードがルートノードとなって、初期設定で与えられたルーティングＩＤ範囲を自身の管理するルーティングＩＤ空間とし、ＩＤ要求信号の受信により、管理しているルーティングＩＤ空間を２分割し、後半部分をＩＤ要求信号の送信元ノードに割当て、更に、ルーティングＩＤ空間の割当てを受けたノードも同様に、ＩＤ要求信号の受信により、管理しているルーティングＩＤ空間の分割割当てを行うというものである。従って、初期設定で与えられたルーティングＩＤ範囲が、図２の通り５ビットで表現可能な０〜３１とした場合に、ルーティングＩＤ＝０であるルートノードを基点とする、各ルーティングＩＤのノードの結合関係は、図５のようになる。
【００３０】
例えば、ルーティングＩＤ＝２２を使用するノードが存在するということは、少なくともルーティングＩＤ＝０、１６、２４、２０というノードが他に存在することを意味する。つまり、ルーティングＩＤ＝２２のノードは、隣接ノードから受信するＮＡ信号により認識するノード以外に、少なくとも、ルーティングＩＤ＝０、１６、２４、２０を有するノードの存在と、自身からルートノードへは、ルーティングＩＤ＝２０，１６のノードを経由して到達可能であることは認識可能である。図５に示す各ルーティングＩＤ間のリンク、つまり、実際にＩＤ要求信号及びＩＤ割当信号の送受信を行ったリンクを、以後、自明な経路と呼ぶ。
【００３１】
各ノードは、メッセージの送信の際に、宛先通信ノードが使用しているルーティングＩＤが分かれば、ルーティングＩＤの結合関係から、メッセージを送信すべき隣接ノードを特定することができる。
【００３２】
尚、管理するルーティングＩＤ空間の分割方法及び割り当てられたルーティングＩＤ空間から使用するルーティングＩＤを決定する方法は、全ノードが共通の自明な経路及びルーティングＩＤの結合関係を認識できれば、その方法に限定はない。
【００３３】
続いて、ルーティングＩＤのリナンバリング処理について説明する。図６に示す様に、図３（ｇ）のノード１−Ｆの接続先を、ノード１−Ｅからノード１−Ｂに変更したものとする。ノード１−Ｅともはや接続しないノード１−ＦのルーティングＩＤを、変更前と同じ１５とすることは、システムで共通して認識しているルーティングＩＤの結合関係ではノード１−Ｆに到達不可能となる以上許容できない。このため各ノードは、受信するＮＡ信号を監視して、ルーティングＩＤ空間割当元ノードからＮＡ信号を受信しなくなった場合は、ルーティングＩＤのリナンバリング処理を開始する。本例においてノード１−Ｆは、ノード１−ＢにＩＤ要求信号を送信し、ノード１−Ｂから新たなルーティングＩＤ空間の割当てを受け、ルーティングＩＤを２４に変更する。尚、ルーティングＩＤ空間割当元のノードも、ルーティングＩＤ空間割当先のノードからＮＡ信号を受信しなくなった場合は、一定期間経過後に割り当てたルーティングＩＤ空間を自身の管理するルーティングＩＤ空間と変更する。
【００３４】
続いて、ルーティングＩＤ競合の解決処理について説明する。図７（ａ）は、ノード１−Ａとノード１−Ｃが独立して起動した結果、お互いがルートノードとなっている状態を示している。更に、ノード１−Ａはノード１−ＢにルーティングＩＤ空間の割当てを行い、ノード１−Ｃはノード１−Ｄに、ノード１−Ｄはノード１−ＥにルーティングＩＤ空間の割当てを既に行っている。この状態で、ノード１−Ｂ及びノード１−Ｅに接続するノード１−Ｆが起動したものとする。
【００３５】
新たに起動したノード１−Ｆは、ノード１−Ｂ及びノード１−ＥからＮＡ信号を受信するが、複数のノードからＮＡ信号を受信する場合には、ＮＡ信号に含まれるルートノードの管理アドレスが一致しているか否かの確認を行う。一致している場合は、既に述べたように、システムで所定の方法により決定されるノード、例えば、ルーティングＩＤの一番小さいノードにＩＤ要求信号を送信する。ルートノードが不一致である場合は、前記ルートノードが一致している場合の所定の決定方法に拘らず、優先順位の高いルートノード、例えば、管理アドレスの小さいルートノード、を含むＮＡ信号を送信しているノードにＩＤ要求信号を送信する。本説明例においては、ノード１−Ａの優先順位が高い、つまり、ノード１−Ａとノード１−Ｃがルートノードとして競合した場合には、ノード１−Ａが選択されるものとして説明を行う。従って、図７（ｂ）に示す様に、ノード１−Ｆは、ノード１−Ａをルートノードとするノード１−Ｂに対してＩＤ要求信号を送信し、ノード１−ＢからルーティングＩＤ区間の割当てを受け、ルーティングＩＤ＝２４を使用してＮＡ信号の送信を開始する。
【００３６】
ノード１−Ｅは、図７（ｃ）に示す様に、ノード１−Ｆから受信するＮＡ信号に含まれるルートノードの管理アドレスと、ノード１−Ｄから受信するＮＡ信号に含まれるルートノードの管理アドレスが不一致であることから、優先順位の高いノード１−Ａをルートノードとするため、ノード１−Ｆに対してＩＤ要求信号を送信し、ノード１−ＦからルーティングＩＤ区間の割当てを受け、ルーティングＩＤ＝２８を使用してＮＡ信号の送信を開始する。
【００３７】
以後、同様の処理がノード１−Ｄ及び１−Ｃでも行われ、図７（ｄ）に示す様に、ノード１−Ｄ及びノード１−Ｃ共にルートノードをノード１−Ａとし、ノード１−ＤはルーティングＩＤを３０に、ノード１−Ｃは、ルーティングＩＤを３１に変更する。
【００３８】
以上の処理によりルーティングＩＤの結合関係をシステムで共通に保つことができ、従って各ノードは常にメッセージの宛先ノードへの経路を認識することができる。
【００３９】
本発明においては、メッセージを送信する場合に、宛先通信ノードの管理アドレスから、宛先通信ノードが使用しているルーティングＩＤを取得する必要がある。例えば、ルートノードが、全ノードの管理アドレスとルーティングＩＤの関係を収集して保存する等も考えられるが、１つのノードが集中して管理する構成では、管理しているノードの障害時には総てのメッセージ送信が不可能となる問題が生じる。従って、本発明においては、ＤＨＴを用い管理アドレスとルーティングＩＤの関係を、各ノードに分散共有する。即ち、各ノードが自立分散的に決定したルーティングＩＤと管理アドレスの対応関係を、管理アドレスのハッシュ値をルーティングＩＤとするノードに、管理アドレスのハッシュ値をルーティングＩＤとするノードが未だ存在しない場合には、一番近い値をルーティングＩＤとするノードに保存する。このため、各ノードは、管理アドレスとルーティングＩＤの関係を示すＩＤ登録信号を、管理アドレスのハッシュ値を宛先として一定周期Ｔ２秒毎に送信する。図４の対応関係は、図３（ｇ）の段階での管理アドレスとルーティングＩＤの関係の保存先である。例えば、ノード１−Ｅの管理アドレスのハッシュ値は、図２に示す様に７であり、ノード１−ＥのルーティングＩＤと管理アドレスの関係は、ハッシュ値７に一番近いルーティングＩＤを持つ、ノード１−Ｃに保存されている。
【００４０】
（ＩＤ登録信号の送信）  ＩＤ登録信号の送信について、図３（ｇ）の状態でのノード１−Ｇを用いて説明をする。
【００４１】
ＩＤ登録信号は、既に説明したようにＩＤ登録信号送信元ノードの管理アドレスのハッシュ値を宛先とする信号であり、ノード１−Ｇの場合には図２に示す様に、その宛先は１４となる。図５に示すように、ルーティングＩＤ＝４であるノード１−Ｇは、ルーティングＩＤ＝１４宛のＩＤ登録信号を、隣接するルーティングＩＤ＝０のノードに送信すれば良いことを認識しており、よって、ＩＤ登録信号をノード１−Ａに送信する。同様に、ノードＡは、ルーティングＩＤ＝１４宛のＩＤ登録信号を、隣接するルーティングＩＤ＝８のノードに送信すれば良いことを認識しており、よって、ＩＤ登録信号をノード１−Ｃに送信する。同様に、各ノードが自明な経路上で転送を行い、最終的に、ノード１−Ｇが送信したＩＤ登録信号は、ルーティングＩＤ＝１４であるノード１−Ｅに到達し、ノード１−Ｅは、受信したノード１−ＧからのＩＤ登録信号に含まれる、ノード１−Ｇの管理アドレスとルーティングＩＤの関係を保存する。
【００４２】
尚、宛先ノードが存在しない場合には、宛先ルーティングＩＤに一番近いルーティングＩＤを有するノードに保存される。
【００４３】
（ＩＤ検索信号の送信）  続いて、メッセージ送信の際に、宛先通信ノードの管理アドレスから宛先通信ノードが使用しているルーティングＩＤを取得するためのＩＤ検索信号の送信について、図３（ｇ）の状態でのノード１−Ｇを用いて説明をする。まず、ノード１−Ｇが、管理アドレスｆ、即ち、ノード１−Ｆにメッセージを送信するものとする。この場合、ノード１−Ｇは、管理アドレスｆのノードのルーティングＩＤを取得するため、管理アドレスｆのハッシュ値を計算する。図２に示す様に、管理アドレスｆのハッシュ値は２１である。図５から明らかなように、ルーティングＩＤ＝４であるノード１−Ｇは、ルーティングＩＤが２１のノードには、ルーティングＩＤ列で０、１６、２０、２１となる自明な経路で到達することを認識しているため、ＩＤ検索信号を、ＩＤ登録信号と同様にノード１−Ａに送信する。ノード１−Ａも同様に、受信したＩＤ検索信号をノード１−Ｂに転送する。ノード１−Ｂは、自身が管理しているルーティングＩＤ空間内であるルーティングＩＤ＝１７〜２２のノードが存在しないことを認識しており、ルーティングＩＤ＝２１宛のＩＤ検索信号を自身が処理するものとして扱う。結果、ノード１−Ｂは、ノード１−Ｇに、ノード１−ＦのルーティングＩＤ＝１５を通知する。
【００４４】
尚、後述するメッセージの送信と異なり、ＩＤ登録信号及びＩＤ検索信号の送信については、宛先ルーティングＩＤが存在しない場合でも、一番近いルーティングＩＤのノードに配送されて、宛先に対する不着等の通知にはならない。
【００４５】
（メッセージの送信）  続いて、上述したＩＤ検索信号で、ルーティングＩＤを取得したノード１−Ｆ宛のメッセージ送信について、通常時と、障害時に分けて説明する。
【００４６】
図８は、通常時のメッセージ送信のシーケンス図である。メッセージ送信元のノード１−Ｇは、自明な経路を指定したソースルーティング方式によりノード１−Ｆにメッセージを送信する。図８の＊は、自明な経路を示している。各ノードは、指定された経路、即ち、ソースルートに従い受信信号を順次転送する。宛先ノードであるノード１−Ｆは、ソースルート上の各ノードにメッセージを受信したことを通知する、確認信号を送信する。
【００４７】
各ノードは、宛先ノードであるノード１−Ｆからの確認信号の受信により、メッセージが正常に転送されたことを確認する。
【００４８】
図９は、障害時のメッセージ送信のシーケンス図である。ここでは、ノード１−Ａとノード１−Ｃ間の自明な経路は正常であるが、ノード１−Ｃでのパケット転送が、何らかの原因により正常に行われない状態を仮定する。
【００４９】
メッセージ送信元のノード１−Ｇは、自明な経路を指定したソースルーティング方式によりノード１−Ｆにメッセージを送信する。ノード１−Ａは、指定された経路に従いノード１−Ｃにメッセージを転送する。しかしながら、ノード１−Ｃの故障により、それ以降のメッセージ転送は行われない。メッセージ送信元ノード及びメッセージの中継を行うノードは、メッセージの送信及び中継後にタイマを起動しており、各中継ノードは、所定の期間内に宛先ノードからの確認信号を受信しない場合は、送信元ノードに、障害通知信号を送信する。
【００５０】
送信元ノードは、各中継ノードから受信する障害通知信号から、メッセージがどのノードまで正常に転送されたのかを判定することができる。また、障害通知信号には、各ノードの他の隣接ノード情報が含まれており、送信元ノードは、これら情報からソースルートの再計算を行う。本説明例では、ノード１−Ｇは、ノード１−Ａからのみ障害通知信号を受信するため、ルーティングＩＤ＝８ノードの障害であることを認識し、また、ノード１−Ａからの障害通知信号に含まれるノード１−Ａの他の隣接ノードがノード１−Ｂであることも認識する。
【００５１】
上記情報に基づいて、ノード１−Ｇは、ルーティングＩＤ＝０であるノード１−Ａの次に、ノード１−Ａが通知したルーティングＩＤ＝１６であるノード１−Ｂを指定し、更に、その次に、ルーティングＩＤ＝１５のノードへの自明な経路上で、故障しているルーティングＩＤ＝８のノード１−Ｃの次に位置するルーティングＩＤ＝１２を指定し、その後、自明な経路を指定した経路を、新しいソースルートとして算出し、算出した経路を指定したメッセージを送信する。尚、ノード１−Ｇは、ルーティングＩＤ＝１６であるノード１−Ｂが自身の隣接ノードであることを認識しているため、ノード１−Ａを省略して、直接ノード１−Ｂへ送信するソースルートを選択することも、もちろん可能である。
【００５２】
ノード１−Ａは、前記メッセージを、指定に従ってノード１−Ｂに転送する。しかし、ノード１−Ｂは、指定されたルーティングＩＤ＝１２は、自身の隣接ノードにはないため不存在通知信号により自身の隣接ノード、本例ではルーティングＩＤ＝１４を、ノード１−Ｇに通知する。
【００５３】
ノード１−Ｇは、不在通知信号の受信により、再度ソースルートの再計算を行い、新しい経路を指定してメッセージを再送信する。本説明例では、ノード１−Ｂから通知されたルーティングＩＤ＝１４が、ルーティングＩＤ＝１５のノードへの自明な経路上の、１つ手前のノードであることを認識できるため、経路として、４、０、１６、１４、１５を指定したメッセージを送信し、宛先ノードであるノード１−Ｆからの確認信号により、メッセージが正常に転送されたことの確認を行う。
【００５４】
続いて、ＩＰネットワークの場合を例として、ルーティングＩＤによるパケット転送について説明する。図１０（ａ）に示す様に、管理アドレスが１０．１．０．１で、ルーティングＩＤが１であるノード１−Ａから、管理アドレスが１０．１．０．５で、ルーティングＩＤが１６であるノード１−Ｂにメッセージの転送を行うものとする。ノード１−Ａは、通常のパケット送信処理と同様に、送信先アドレスを１０．１．０．５、送信元アドレスを１０．１．０．１とし、ペイロード部分にメッセージを含んだパケットを生成する。続いて、前記生成したパケットを、送信先アドレス及び送信元アドレスが、それぞれ、ノード１−Ｂ及びノード１−ＡのルーティングＩＤからシステムで共通の方法により求めたアドレスであり、ソースルートフィールドを有するパケットでカプセル化する。本説明例においては、ルーティングＩＤ＝Ｘのノードは、アドレス２０．１．０．Ｘに変換するものとしている。ソースルートフィールドには、上述したように、宛先ノードまでの、ルーティングＩＤを用いた経路が設定される。
【００５５】
また、ネットワークの管理メッセージ等、本発明によるルーティングＩＤを用いたパケット転送と、通常のパケット転送を混在させるために、管理アドレスの範囲を設定し、各ノードには、管理アドレス範囲内からアドレスの割当てを行う。
【００５６】
以上説明したように、本発明によるルーティングＩＤを用いたパケット転送は、既存ノードに、ルーティングＩＤを自律分散的に決定する処理と、宛先アドレスが管理アドレスである場合には、ルーティングＩＤに対応するアドレスのパケットでカプセル化する処理と、送信したカプセル化したパケットが不達となった場合の障害回避処理を実装するだけで実現可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明を説明するために用いるネットワーク構成図である。
【図２】ノードの初期設定内容を示す図である。
【図３】ルーティングＩＤの決定方法を説明する図である。
【図４】図３（ｆ）の時点での各ノードの状態を説明する図である。
【図５】ルーティングＩＤを５ビットとした場合の、各ノード結合関係を示す図である。
【図６】ルーティングＩＤのリナンバリング処理を説明する図である。
【図７】ルーティングＩＤ競合の解決処理について説明する図である。
【図８】通常時のメッセージ送信のシーケンス図である。
【図９】障害時のメッセージ送信のシーケンス図である。
【図１０】ルーティングＩＤによるパケット転送を説明する図である。
【符号の説明】
【００５８】
１−Ａ、１−Ｂ、１−Ｃ、１−Ｄ、１−Ｅ、１−Ｆ、１−Ｇ  ノード
【図１】
0004470820.tif 000002
【図２】
0004470820.tif 000003
【図３】
0004470820.tif 000004
【図４】
0004470820.tif 000005
【図５】
0004470820.tif 000006
【図６】
0004470820.tif 000007
【図７】
0004470820.tif 000008
【図８】
0004470820.tif 000009
【図９】
0004470820.tif 000010
【図１０】
0004470820.tif 000011