(57)【要約】【課題】ネットワーク上のノードの保持するエントリ数を削減し、ルーチングの処理負荷を低減する。【解決手段】複数のサービスのトラヒックが流れるネットワークについて、サービスごとに、当該サービスのトラヒックが流れる論理ネットワークを分ける。そして、その論理ネットワークをツリー型トポロジで構築し、各ノードのツリーにおける階層、当該ノードの下に存在する子ノード数に基づきアドレスの値を割り当てる。論理ネットワーク上の各ノードは、パケットの宛先アドレスと、自身のアドレス、階層情報、自身が属する論理ネットワークのパラメータ情報、自身の親ノードおよび子ノードの情報をルーチングテーブルに保持し、そのルーチングテーブルに基づき、受信したパケットを親ノードと子ノードどちらに転送すればよいか、また、子ノードに転送する場合、どの子ノードに転送すればよいかを決定する。【選択図】図１
2010045680.tif 000002
【特許請求の範囲】
【請求項１】
１以上のサービスのパケットを転送するネットワークを、当該サービスのパケットを転送する１以上の論理ネットワークに分け、その論理ネットワークを、事前に決められたツリー最大階層数Ｌｍと、そのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数Ｒｍｄとをもとに、ツリー型トポロジとして構成し、このツリー型トポロジにおける第ｄ＋１階層におけるｎ番目に参加する子ノードのアドレスＡｎが、以下の式（１）により定義されるネットワークに用いられるノードであって、
Ａｎ＝Ａｐａｒｅｎｔ＋Ｃｓｋｉｐ（ｄ）×（ｎ−１）＋１…式（１）
但し、
ｄ＝Ｌｍの場合、Ｃｓｋｉｐ（ｄ）＝０
０≦ｄ≦Ｌｍ−１の場合、Ｃｓｋｉｐ（ｄ）＝（Ｃｓｋｉｐ（ｄ＋１）×Ｒｍｄ＋１）＋１
Ａｐａｒｅｎｔ：当該論理ネットワークのツリーにおける自身のノードの親ノードのアドレス
Ｃｓｋｉｐ（ｄ）：当該論理ネットワークのツリーの第ｄ＋１階層の１つのノード以下に存在するノード数
ｄ：論理ネットワークのツリーにおける自身のノードの属する階層
Ｌｍ：論理ネットワークのツリーのツリー最大階層数
Ｒｍｄ：論理ネットワークのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数
前記自身のノードが属する１以上のサービスと、当該サービスそれぞれの論理ネットワークに割り当てられたアドレス空間と、前記論理ネットワークにおける自身のノードのアドレスＡ、前記自身のノードの属する階層ｄ、前記ツリー最大階層数Ｌｍおよび階層ごとにその階層における１つのノードが保持可能な最大子ノード数Ｒｍｄ、前記自身のノードの親ノードのアドレスＡｐａｒｅｎｔを示したルーチングテーブルを記憶する記憶部と、
前記パケットの入出力を司るネットワークインタフェース部と、
前記ルーチングテーブルと前記自身のノードのアドレスＡと、前記ネットワークインタフェース部経由で入力された前記パケットの宛先ノードのアドレスＤとを参照して、その宛先ノードに転送する際のネクストホップノードのアドレスＮｅｘｔｈｏｐ  ａｄｄｒを、以下の式（２）または式（３）により決定するネクストホップ決定部と、
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）の場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａ＋１＋Ｆｌｏｏｒ［（Ｄ−（Ａ＋１））／Ｃｓｋｉｐ（ｄ）］×Ｃｓｋｉｐ（ｄ）…式（２）
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）ではない場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａｐａｒｅｎｔ…式（３）
前記決定されたアドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへ前記入力されたパケットを前記ネットワークインタフェース部経由で転送するパケット転送部とを備えることを特徴とするノード。
【請求項２】
前記論理ネットワークのツリーのすべての階層で当該階層の子ノードの数Ｒｍが等しいとき、
前記式（１）におけるＣｓｋｉｐ（ｄ）は、
Ｒｍ＝１の場合、Ｃｓｋｉｐ（ｄ）＝Ｌｍ−ｄ
Ｒｍ＝１ではない場合、Ｃｓｋｉｐ（ｄ）＝（１−ＲｍＬｍ−ｄ）／（１−Ｒｍ）
であることを特徴とする請求項１に記載のノード。
【請求項３】
前記パケット転送部は、前記決定されたアドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへＭＰＬＳ（Multi-Protocol Label Switching）により前記パケットを転送することを特徴とする請求項１または請求項２に記載のノード。
【請求項４】
１以上のサービスのパケットを転送するネットワークを、当該サービスのパケットを転送する１以上の論理ネットワークに分け、その論理ネットワークを、事前に決められたツリー最大階層数Ｌｍと、そのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数Ｒｍｄとをもとに、ツリー型トポロジとして構成し、この論理ネットワークのツリーにおける第ｄ＋１階層におけるｎ番目に参加する子ノードのアドレスＡｎが、以下の式（１）により定義されるネットワークに用いられるノードによるパケット転送方法であって、
Ａｎ＝Ａｐａｒｅｎｔ＋Ｃｓｋｉｐ（ｄ）×（ｎ−１）＋１…式（１）
但し、
ｄ＝Ｌｍの場合、Ｃｓｋｉｐ（ｄ）＝０
０≦ｄ≦Ｌｍ−１の場合、Ｃｓｋｉｐ（ｄ）＝（Ｃｓｋｉｐ（ｄ＋１）×Ｒｍｄ＋１）＋１
Ａｐａｒｅｎｔ：当該論理ネットワークのツリーにおける自身のノードの親ノードのアドレス
Ｃｓｋｉｐ（ｄ）：当該論理ネットワークのツリーの第ｄ＋１階層の１つのノード以下に存在するノード数
ｄ：論理ネットワークのツリーにおける自身のノードの属する階層
Ｌｍ：論理ネットワークのツリーのツリー最大階層数
Ｒｍｄ：論理ネットワークのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数
前記自身のノードが属する１以上のサービスと、当該サービスそれぞれの論理ネットワークに割り当てられたアドレス空間と、前記論理ネットワークにおける自身のノードのアドレスＡ、前記自身のノードの属する階層ｄ、前記ツリー最大階層数Ｌｍおよび階層ごとにその階層における１つのノードが保持可能な最大子ノード数Ｒｍｄ、前記自身のノードの親ノードのアドレスＡｐａｒｅｎｔを示したルーチングテーブルを記憶する記憶部を備える前記ノードが、
前記パケットの入力を受け付けるステップと、
前記パケットの属するサービスの論理ネットワークにおける自身のノードのアドレスＡと、前記パケットの宛先アドレスＤとを参照して、その宛先アドレスＤのノードに前記パケットを転送する際のネクストホップノードのアドレスＮｅｘｔｈｏｐ  ａｄｄｒを、以下の式（２）または式（３）により決定するステップと、
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）の場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａ＋１＋Ｆｌｏｏｒ［（Ｄ−（Ａ＋１））／Ｃｓｋｉｐ（ｄ）］×Ｃｓｋｉｐ（ｄ）…式（２）
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）ではない場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａｐａｒｅｎｔ…式（３）
前記決定されたアドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへ、前記ネットワークインタフェース部経由で、前記パケットを転送するステップとを実行することを特徴とするパケット転送方法。
【請求項５】
請求項４に記載のパケット転送方法をコンピュータである前記ノードに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルーチング技術に関する。
【背景技術】
【０００２】
従来の一般的な、ＩＰ（Internet Protocol）ルーチング技術では、ノード（ルータ）は、送信されたパケットの宛先ＩＰアドレスをもとに、自らが持つルーチングテーブルのエントリを検索し、該当するアドレス値に対し、最長一致の原則に基づき、エントリに記載されたインタフェースからパケットの中継がなされる。つまり、同じアドレス宛のパケットは同じルーチング経路をとるのが一般的である。しかし、同じアドレス（同じネットワーク）宛のパケットでも、そのパケットが用いられるサービスごとにルーチング経路を分けたい場合もある。図８は、比較例となるルーチング経路を示した図である。
【０００３】
例えば、図８に示すように、サービスネットワーク同士が、バックボーンネットワーク経由で接続されるシステムを考える。ここで、サービスＡとサービスＢというサービスがあり、それぞれのサービスのサーバとクライアントがそれぞれ同じサービスネットワークにある場合、サービスＡのトラヒックもサービスＢのトラヒックも同じ境界ノードを経由し、破線に示す同じルーチング経路をとるのが一般的である。しかし、このように複数のサービスについて同じルーチング経路をとると、どちらか一方のサービスのトラヒック量が増加したときに、もう片方のサービスのトラヒックが影響を受けることもあり、サービスの品質が低下するおそれもある。そこで、図８の実線に示すようにサービスごとに、ルーチング経路を分けることができれば、それぞれのサービスの品質を保つことができ、大変便利である。ここで、このようにルータがサービスごとの経路選択を行う技術として、非特許文献１に開示されるマルチトポロジＯＳＰＦ（Open Shortest Path First）がある。
【非特許文献１】P.Psenak,”Multi-Topology (MT) Routing in OSPF”,RFC4915、[online]、[平成20年3月21日検索]、インターネット、<URL: http://www.ietf.org/rfc/rfc4915.txt>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前記したマルチトポロジＯＳＰＦにおいても、各ルータはルーチングテーブルのエントリを宛先ごとに保持する必要がある。このため、大規模なネットワークや膨大な数のサービスにおいて、各ルータで保持するエントリ数も膨大になり、また、経路計算の負荷も大きくなってしまう。そこで、本発明は、前記した問題を解決し、大規模なネットワークや膨大な数のサービスを収容するネットワークに用いられるルータにおいて、そのルータの保持するエントリ数も削減し、ルーチングの処理負荷を低減することを目的とする。
【課題を解決するための手段】
【０００５】
前記した課題を解決するため請求項１に記載の発明は、１以上のサービスのパケットを転送するネットワークを、当該サービスのパケットを転送する１以上の論理ネットワークに分け、その論理ネットワークを、事前に決められたツリー最大階層数Ｌｍと、そのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数Ｒｍｄとをもとに、ツリー型トポロジとして構成し、このツリー型トポロジにおける第ｄ＋１階層におけるｎ番目に参加する子ノードのアドレスＡｎが、以下の式（１）により定義されるネットワークに用いられるノードであって、
Ａｎ＝Ａｐａｒｅｎｔ＋Ｃｓｋｉｐ（ｄ）×（ｎ−１）＋１…式（１）
但し、
ｄ＝Ｌｍの場合、Ｃｓｋｉｐ（ｄ）＝０
０≦ｄ≦Ｌｍ−１の場合、Ｃｓｋｉｐ（ｄ）＝（Ｃｓｋｉｐ（ｄ＋１）×Ｒｍｄ＋１）＋１
Ａｐａｒｅｎｔ：当該論理ネットワークのツリーにおける自身のノードの親ノードのアドレス
Ｃｓｋｉｐ（ｄ）：当該論理ネットワークのツリーの第ｄ＋１階層の１つのノード以下に存在するノード数
ｄ：論理ネットワークのツリーにおける自身のノードの属する階層
Ｌｍ：論理ネットワークのツリーのツリー最大階層数
Ｒｍｄ：論理ネットワークのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数
自身のノードが属する１以上のサービスと、当該サービスそれぞれの論理ネットワークに割り当てられたアドレス空間と、論理ネットワークにおける自身のノードのアドレスＡ、自身のノードの属する階層ｄ、ツリー最大階層数Ｌｍおよび階層ごとにその階層における１つのノードが保持可能な最大子ノード数Ｒｍｄ、自身のノードの親ノードのアドレスＡｐａｒｅｎｔを示したルーチングテーブルを記憶する記憶部と、パケットの入出力を司るネットワークインタフェース部と、ルーチングテーブルと自身のノードのアドレスＡと、ネットワークインタフェース部経由で入力されたパケットの宛先ノードのアドレスＤとを参照して、その宛先ノードに転送する際のネクストホップノードのアドレスＮｅｘｔｈｏｐ  ａｄｄｒを、以下の式（２）または式（３）により決定するネクストホップ決定部と、
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）の場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａ＋１＋Ｆｌｏｏｒ［（Ｄ−（Ａ＋１））／Ｃｓｋｉｐ（ｄ）］×Ｃｓｋｉｐ（ｄ）…式（２）
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）ではない場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａｐａｒｅｎｔ…式（３）
決定されたアドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへ入力されたパケットをネットワークインタフェース部経由で転送するパケット転送部とを備えることを特徴とする。
【０００６】
請求項４に記載の発明は、１以上のサービスのパケットを転送するネットワークを、当該サービスのパケットを転送する１以上の論理ネットワークに分け、その論理ネットワークを、事前に決められたツリー最大階層数Ｌｍと、そのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数Ｒｍｄとをもとに、ツリー型トポロジとして構成し、この論理ネットワークのツリーにおける第ｄ＋１階層におけるｎ番目に参加する子ノードのアドレスＡｎが、以下の式（１）により定義されるネットワークに用いられるノードによるパケット転送方法であって、
Ａｎ＝Ａｐａｒｅｎｔ＋Ｃｓｋｉｐ（ｄ）×（ｎ−１）＋１…式（１）
但し、
ｄ＝Ｌｍの場合、Ｃｓｋｉｐ（ｄ）＝０
０≦ｄ≦Ｌｍ−１の場合、Ｃｓｋｉｐ（ｄ）＝（Ｃｓｋｉｐ（ｄ＋１）×Ｒｍｄ＋１）＋１
Ａｐａｒｅｎｔ：当該論理ネットワークのツリーにおける自身のノードの親ノードのアドレス
Ｃｓｋｉｐ（ｄ）：当該論理ネットワークのツリーの第ｄ＋１階層の１つのノード以下に存在するノード数
ｄ：論理ネットワークのツリーにおける自身のノードの属する階層
Ｌｍ：論理ネットワークのツリーのツリー最大階層数
Ｒｍｄ：論理ネットワークのツリーの第ｄ階層の１つのノードが保持可能な最大子ノード数
自身のノードが属する１以上のサービスと、当該サービスそれぞれの論理ネットワークに割り当てられたアドレス空間と、論理ネットワークにおける自身のノードのアドレスＡ、自身のノードの属する階層ｄ、ツリー最大階層数Ｌｍおよび階層ごとにその階層における１つのノードが保持可能な最大子ノード数Ｒｍｄ、自身のノードの親ノードのアドレスＡｐａｒｅｎｔを示したルーチングテーブルを記憶する記憶部を備えるノードが、
パケットの入力を受け付けるステップと、パケットの属するサービスの論理ネットワークにおける自身のノードのアドレスＡと、パケットの宛先アドレスＤとを参照して、その宛先アドレスＤのノードにパケットを転送する際のネクストホップノードのアドレスＮｅｘｔｈｏｐ  ａｄｄｒを、以下の式（２）または式（３）により決定するステップと、
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）の場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａ＋１＋Ｆｌｏｏｒ［（Ｄ−（Ａ＋１））／Ｃｓｋｉｐ（ｄ）］×Ｃｓｋｉｐ（ｄ）…式（２）
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）ではない場合、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａｐａｒｅｎｔ…式（３）
決定されたアドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへ、ネットワークインタフェース部経由で、パケットを転送するステップとを実行することを特徴とする。
【０００７】
このようにすることで、各ノードは、サービスごとに用意された論理ネットワークに基づきパケットを転送するので、ノードはサービスごとに異なるルーチング経路をとることができる。また、ノードは、このようなツリー型トポロジに基づきルーチングを行うことを前提とするので、ルーチングテーブルは、宛先のアドレスごとにエントリを持つ必要がない。よって、ノードの保持するエントリ数を低減することができる。また、ノードにおけるルーチングの処理計算の負荷も少なくてすむ。
【０００８】
ここで、各論理ネットワークのトポロジはツリー型トポロジで構成され、この論理ネットワークごとのノードのアドレスは、数値を用いてあらわされる。また、各サービスの論理ネットワークのアドレス空間は重複しないように割り当てられる。例えば、各サービスの論理ネットワークごとにアドレス空間が区切って割り当てられ、そのサービスの論理ネットワークに割り当てられたアドレス空間はルーチングテーブルに記載される。ノードは、このような情報を含むルーチングテーブルとパケットの宛先アドレスの値とを参照することで、宛先アドレスがどのサービス（論理ネットワーク上）のものかをすぐに判断することができる。
【０００９】
また、この論理ネットワークにおける各ノードのアドレスの値は、ルートノードから、子ノード、孫ノードに行くに従い大きな値をとるように割り当てられる。つまり、パケットを受信したノードは、宛先アドレスの値と自身のノードのアドレスの値とを比較することで、ツリー型トポロジにおいてその宛先アドレスのノードが、自身のノードからみてルート方向（親ノードの方向）にあるのか、リーフ方向（子ノードの方向）にあるのかが分かる。従って、まず、パケットを受信したノードは、パケットの宛先アドレスと自身のアドレスとの比較により、ネクストホップノード（このパケットを転送先となるノード）は、ルート方向のノードか、リーフ方向のノードかを判断できる。ここで、ネクストホップノードがリーフの方向のノードであると判断した場合、自身のノードにリーフ方向のノード（子ノード）が複数ある場合もある。ここで、このノードの子ノードの１つは、この自身のノードのアドレスに１を足した値であり、他の子ノードのアドレスの値は、このアドレスの値にＣｓｋｉｐ（ｄ）で計算される値が加算された値が割り当てられる（例えば、あるノードのｎ番目の子ノードのアドレスの値は、このアドレスの値にＣｓｋｉｐ（ｄ）×ｎが加算された値となる）ので、ノードは、フロア関数によりＦｌｏｏｒ［（Ｄ−（Ａ＋１））／Ｃｓｋｉｐ（ｄ）］を計算して、パケットの宛先アドレスにつながるノードは、このノードの第何番目の子ノードかを特定できる。そして、ノードは、その特定した子ノードへパケット転送する。このような転送処理を各ノードが行うことで、パケットはツリー型トポロジのノード間を転送され、所定の宛先アドレスのノードに到達することができる。
【００１０】
なお、このような論理ネットワークの各ノードへのアドレス割り当てに用いられるＣｓｋｉｐ（ｄ）は、０≦ｄ≦Ｌｍ−１の場合、Ｃｓｋｉｐ（ｄ）＝（Ｃｓｋｉｐ（ｄ＋１）×Ｒｍｄ＋１）＋１という式に基づき計算される。これより、ツリー型トポロジの階層ごとに最大子ノード数が異なる場合、その階層ごとの最大子ノード数Ｒｍｄを考慮して、無駄のないアドレスの割り当てを実現している。つまり、ツリー型トポロジの階層ごとに最大子ノード数が異なる場合に、その階層ごとの最大子ノード数Ｒｍｄを考慮し、実際には割り当てられないことが明らかなアドレスの値については、これを省いてアドレスが割り当てられている。よって、膨大な数のサービスを提供するネットワークや大規模なネットワークについて、論理ネットワークに基づきアドレスの値を割り当てていったとき、極めて大きな値（大きな桁数）のアドレスを持つノードが現れるのを抑制できる。よって、各ノードは、ルーチング処理時に、このように極めて大きな値（大きな桁数）のアドレスの値を処理する可能性も低くなり、ルーチング処理の負荷を低減することができる。
【００１１】
請求項２に記載の発明は、請求項１に記載のノードにおいて、論理ネットワークのツリーのすべての階層で当該階層の子ノードのＲｍの数が等しいとき、
式（１）におけるＣｓｋｉｐ（ｄ）は、
Ｒｍ＝１の場合、Ｃｓｋｉｐ（ｄ）＝Ｌｍ−ｄ
Ｒｍ＝１ではない場合、Ｃｓｋｉｐ（ｄ）＝（１−ＲｍＬｍ−ｄ）／１−Ｒｍ
であることを特徴とする。
【００１２】
このようにすることで、論理ネットワークのツリーにおいて、各階層の子ノード数が同じ場合、Ｃｓｋｉｐ（ｄ）の計算を簡単に行うことができる。
【００１３】
請求項３に記載の発明は、請求項１または請求項２に記載のノードにおいて、パケット転送部が、アドレスＮｅｘｔｈｏｐ  ａｄｄｒを持つノードへＭＰＬＳ（Multi-Protocol Label Switching）によりパケットを転送することを特徴とする。
【００１４】
このようにすることで、ノードはＭＰＬＳを用いてネクストホップノードへパケットを転送できる。
【００１５】
請求項５に記載の発明は、請求項４に記載のパケット転送方法をコンピュータである前記ノードに実行させるためのプログラムとした。
【００１６】
このようなプログラムによれば、請求項４に記載のパケット転送方法を一般的なコンピュータに実行させることができる。
【発明の効果】
【００１７】
本発明によれば、大規模なネットワークや膨大な数のサービスを収容するネットワークに用いられるルータにおいて、そのルータの保持するエントリ数を削減し、経路計算の負荷を低減することができる。
【発明を実施するための最良の形態】
【００１８】
＜概要＞
以下、本発明を実施するための最良の形態（以下、実施の形態という）について説明する。まず、本実施の形態のノードを含むシステムの概要を、図１を用いて説明する。図１は、本実施の形態のノードを含むシステムを例示した図である。
【００１９】
システムは、例えば、図１に示すように、バックボーンネットワーク１と、そのバックボーンネットワーク１により接続されるサービスネットワーク２，３を含んで構成される。
【００２０】
バックボーンネットワーク１は、複数のノード１０を含んで構成される。なお、このバックボーンネットワーク１のノード１０は、サービスネットワーク２，３との境目に設置される境界ノードと、その境界ルータ間を接続する中継ノードとを含んで構成される。各ノード１０は、例えば、ルータやスイッチである。サービスネットワーク２，３はサービスを提供するサーバ２１と、そのサーバから提供されるサービスを利用するクライアント３１とを含む。ここでは、サービスネットワーク２は、サービスＡを提供するサーバ２１Ａと、サービスＢを提供するサーバ２１Ｂとを含み、サービスネットワーク３は、サービスＡを利用する（つまり、サーバ２１Ａとデータ送受信を行う）クライアント３１Ａと、サービスＢを利用する（つまり、サーバ２１Ｂとデータ送受信を行う）クライアント３１Ｂとを含む。つまり、境界ノードであるノード１０（１０Ａ，１０Ｂ）間にはサービスＡ，Ｂ両方のトラヒックが流れることになる。
【００２１】
ここで、このバックボーンネットワーク１内において、前記した図８に示すように、サービスＡのルーチング経路と、サービスＢのルーチング経路とを分けるために、サービスごとに論理ネットワークを用意する。例えば、図１に示すように、サービスＡについて論理ネットワークＡという論理ネットワークを用意し、サービスＢについては論理ネットワークＢという論理ネットワークを用意する。そして、各論理ネットワークを構成するノードにアドレッシング（アドレスの割り当て）を行う。このときのアドレッシングは以下のように行う。まず、各サービスの論理ネットワークが利用するアドレス空間を、論理ネットワークごとに重複しないように割り当てる。例えば、サービスＢについて割り当てアドレス空間「１〜１０」を割り当てたならば、サービスＡについて割り当てアドレス空間について「１１〜２０」を割り当てる。
【００２２】
そして、各論理ネットワークの各ノード１０に、その論理ネットワークで用いるアドレスの値を割り当てる。例えば、論理ネットワークＢの各ノード１０に「１，２，３，４，５，６」というアドレスを割り当てる。また、論理ネットワークＡの各ノード１０に「１１，１２，１８，２０」というアドレスを割り当てる。この割り当てアドレス空間の大きさや、各ノードのアドレスの割り当て方法は、各論理ネットワークに含まれるノード１０の数やトポロジの構成方法による。このようにサービスごとに重複のないアドレス空間の割り当てを行うことで、当該アドレスのノード１０がどのサービスの論理ネットワークに属するかを識別することができる。ここで、サービスごとに用意される論理ネットワークは、例えば、ツリー型トポロジで構成され、各ノード１０はルーチングテーブル１３１（後記）を参照し、このツリー型トポロジを前提としたルーチングを行う。よって、ノード１０は、ルーチングテーブル１３１にパケットの宛先アドレスごとのエントリを用意する必要がなくなる。
【００２３】
＜構成＞
次に、このようなバックボーンネットワーク１に用いられるノード１０の構成を説明する。図２は、図１のノードの構成を示したブロック図である。
【００２４】
図２に示すように、ノード１０は、他のノード１０との間でパケットの入出力を行うためのネットワークインタフェース部１１と、ネクストホップノードの決定等を行う処理部１２と、この処理部１２がネクストホップノードの決定を行うときに参照するルーチングテーブル１３１を記憶する記憶部１３とを備える。
【００２５】
なお、ネットワークインタフェース部１１は、パケット等の入出力を行うためのインタフェースから構成される。また、処理部１２は、このノード１０が備えるＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。なお、ノード１０をプログラム実行処理により実現する場合、記憶部１３には、このノード１０の機能を実現するためのプログラムが格納される。
【００２６】
処理部１２は、受信データ解析部１２１と、トンネル処理部１２２と、ネクストホップ決定部１２３と、パケット転送部１２４と、割り当てアドレス算出部１２５とを含んで構成される。
【００２７】
受信データ解析部１２１は、ネットワークインタフェース部１１経由で受信したパケットの宛先アドレスを検出し、このパケットが自分宛のものか、それとも中継すべきか否かの判断を行う。なお、この受信データ解析部１２１は、ルーチングテーブル１３１に基づき作成されたフォワーディングテーブル（図示省略）に基づき、前記した受信パケットの解析を行うものとする。
【００２８】
トンネル処理部１２２は、他のノード１０との間のトンネルを確立する。また、トンネル確立後、ルーチングテーブル１３１にこの確立したトンネルに関するトンネル情報を書き込む。なお、このように、自身のノード１０がネクストホップとしたいノード１０との間でトンネルを確立しておくことで、ノード１０は、物理的にリンク接続された隣接ノード１０を飛び越して、そのトンネルが確立されたノード１０をネクストホップとしてパケットを転送することができる。
【００２９】
ネクストホップ決定部１２３は、受信したパケットの宛先アドレスと、ルーチングテーブル１３１とを参照して、このパケットの転送先のノード１０であるネクストホップノードの決定を行う。このときのネクストホップノードの決定処理の詳細は、具体例を用いて後記する。
【００３０】
パケット転送部１２４は、ネクストホップ決定部１２３により決定されたネクストホップノードへパケットを転送する。なお、このパケット転送部１２４は、ネクストホップノードへパケットを転送するとき、ＭＰＬＳ（Multi-Protocol Label Switching）によりパケットを転送してもよい。
【００３１】
割り当てアドレス算出部１２５は、論理ネットワークを構成するノード１０に割り当てるアドレスを計算する。ここでは主に、Ｃｓｋｉｐ（ｄ）（第ｄ＋１階層の１つのノード以下に存在するノード数、つまり、第ｄ＋１階層のノードの子ノード同士のアドレスの値がどの程度離れているかを示す値）を計算する。このアドレス算出部１２５により行われる計算処理については、後記する。
【００３２】
記憶部１３は、ルーチングテーブル１３１を記憶する。このルーチングテーブル１３１についても、後記する。
【００３３】
ここで、図４を参照しつつ、図３を用いて、割り当てアドレス算出部１２５が各ノード１０に割り当てるアドレスの計算方法を説明する。図３は、図２の割り当てアドレス算出部が各ノードに割り当てるアドレスの計算方法に用いられるＣｓｋｉｐ（ｄ）の計算式を示した図である。図４は、図３に示す計算式により求められたＣｓｋｉｐ（ｄ）によりアドレッシングされたツリー型トポロジを例示した図である。図４（ａ）は、サービスＩＤ「０」の論理ネットワークのツリー型トポロジを例示した図であり、図４（ｂ）は、サービスＩＤ「７」の論理ネットワークのツリー型トポロジを例示した図である。ここでのアドレスの計算方法は、例えば、近距離無線通信に用いられる規格ZigBee（登録商標）（Zigbee  Specification  Document 053474r17 3.6.1.6章  p370〜372）に基づく。
【００３４】
ここでのアドレスの計算には２種類のパラメータが関与する。１つめのパラメータは、論理ネットワークをツリー型トポロジで考えたときの、最大ツリー階層数（ツリーの深さ）Ｌｍである。この最大ツリー階層数Ｌｍは、ツリーのルートの階層を「０（第０階層）」と考え、論理ネットワークごとに最大で何階層のツリー型トポロジを構成するかを定めるパラメータである。２つめのパラメータは、論理ネットワークの１つのノード１０が持つ最大子ノード数Ｒｍである。この最大子ノード数Ｒｍは、論理ネットワークのツリーの全階層で同じ値をとるパターンと、異なる値をとるかパターンの２つのパターンが適用できる（前者の最大子ノード数を、Ｒｍ、後者の第ｄ階層の最大子ノード数を、Ｒｍｄとする）。
【００３５】
割り当てアドレス算出部１２５は、この最大ツリー階層数Ｌｍと、最大子ノード数Ｒｍ（またはＲｍｄ）を用い、図３に示した式（４）または式（５）を用いて、論理ネットワークのツリーの第ｄ＋１階層の１つのノード以下に存在するノード数をあらわすＣｓｋｉｐ（ｄ）を計算する。そして、このＣｓｋｉｐ（ｄ）を、以下の式（６）に代入することで、当該論理ネットワークのツリーの第ｄ＋１階層においてｎ番目に参加する子ノードのアドレスＡｎを求める。
【００３６】
Ａｎ＝Ａｐａｒｅｎｔ＋Ｃｓｋｉｐ（ｄ）×（ｎ−１）＋１…式（６）
【００３７】
ここで、図４（ａ）を参照して、ツリーの全階層の子ノード数が同じ場合のアドレスの割り当ての具体例を説明する。サービスＩＤ「０」、最大ツリー階層数Ｌｍ＝２、最大子ノード数Ｒｍ＝２のツリーにおいて、図３の式（４）の計算式により、Ｃｓｋｉｐ（０）を計算すると「３」という値が得られる。この値は、このツリーの第０階層の１つ下の階層（第１階層）の１つのノード以下に存在するノード数（自身のノードを含む）が「３」であることを示す。よって、ルートノードのアドレスを「０」とすると、まず、このルートノードの子ノードとして１番目に参加するノードのアドレスは「０＋１＝１」となる。また、このノード以下に存在するノード数は「３」なので、このルートノードの子ノードとして２番目に参加するノードのアドレスは「１＋３＝４」となる。
【００３８】
同様に、Ｃｓｋｉｐ（１）を計算すると「１」という値が得られる。よって、アドレス「１」のノードの子ノードとして、１番目に参加するノードのアドレスは「１＋１＝２」となる。また、このノード以下に存在するノード数は「１」（つまり自分自身のみ）なので、２番目に参加するノードのアドレスは「２＋１＝３」となる。また、同様にアドレス「４」のノードの子ノードとして１番目に参加するノードのアドレスは「４＋１＝５」となる。また、このノード以下に存在するノード数は「１」（つまり自分自身のみ）なので、子ノードとして２番目に参加するノードのアドレスは「５＋１＝６」となる。
【００３９】
次に、図４（ｂ）を用いて、ツリーの階層ごとに子ノード数が異なる場合のアドレスの割り当ての具体例を説明する。サービスＩＤ「７」、最大ツリー階層数Ｌｍ＝３、最大子ノード数Ｒｍ０＝３、Ｒｍ１＝２、Ｒｍ２＝３、Ｒｍ＝０のツリーにおいて、図３の式（５）の計算式により、Ｃｓｋｉｐ（０）を計算すると「９」という値が得られる。よって、ルートノードのアドレスを「７」とすると、まず、このルートノードに１番目に参加するノードのアドレスは「７＋１＝８」となる。また、このノード以下に存在するノード数は「９」なので、このルートノードの子ノードとして２番目に参加するノードのアドレスは「８＋９＝１７」となり、３番目に参加するノードのアドレスは「１７＋９＝２６」となる。
【００４０】
同様に、Ｃｓｋｉｐ（１）を計算すると「４」という値が計算される。よって、アドレス「８」のノードの子ノードとして１番目に参加するノードのアドレスは「８＋１＝９」となる。また、このノード以下に存在するノード数は「４」なので、アドレス「８」のノードの子ノードとして２番目に参加するノードのアドレスは「９＋４＝１３」となる。また、同様にアドレス「１７」のノードの子ノードとして１番目に参加するノードのアドレスは「１７＋１＝１８」となる。このような計算を、このサービスＩＤ「７」のツリーの第３層まで繰り返すと、図４（ｂ）に示すようなアドレスの割り当てが行われる。
【００４１】
次に、図２のルーチングテーブル１３１の構成を説明する。図５は、図２のルーチングテーブルの構成例を示した図である。ここでは、当該ノード１０がサービスＡ，Ｂに属し、ルーチングテーブル１３１は、このサービスＡ，Ｂに関する割り当てアドレス空間、サービス所属情報、サービス構成情報および隣接ノード接続情報を持つ場合を例に説明する。図５に示すようにルーチングテーブル１３１には、自身のノード１０が属するサービスのサービスＩＤ（サービスＩＤ＝Ａ，Ｂ）と、各サービスＩＤのサービスに割り当てられたアドレス空間と、そのサービスのサービス所属情報（当該サービスの論理ネットワークにおける自身のノードのアドレス（Ｍｙ  ａｄｄｒ）およびその論理ネットワークにおける自身のノードの階層（Ｍｙ  Ｄｅｐｔｈ））、サービス構成情報（当該サービスの論理ネットワークにおけるルートノードのアドレス（ｒｏｏｔ  ａｄｄｒ）、最大ツリー階層数Ｌｍ、最大子ノード数Ｒｍ（またはＲｍｄ））、隣接ノード接続情報（当該サービスの論理ネットワークにおける自身のノードの親ノードのアドレス（Ｐａｒｅｎｔ  ａｄｄｒ）および子ノードアドレス（Ｃｈｉｌｄ ａｄｄｒ１，２…，Ｎ))とが含まれる。なお、サービスＩＤは、例えば、各サービスの論理ネットワークのルートノードのアドレスを用いるようにしてもよい。このようにすることで、ノード１０は、受信したパケットの宛先アドレスの値と、ルーチングテーブル１３１に記録されるサービスＩＤとの比較により、このパケットがどのサービスに関するパケットかをすぐに特定することができる。
【００４２】
図２のノード１０は、このようなルーチングテーブル１３１と、受信したパケットのアドレスとを参照して、ネクストホップノードを決定する。このようなルーチングテーブル１３１は、従来のＩＰルーチングを行うノードに用いられるルーチングテーブルのように宛先アドレスごとにエントリを持つ必要がないので、大規模なネットワークにおけるルーチングを行う場合でもエントリ数が莫大な数にならなくて済む。また、ここでは図示を省略しているが、ルーチングテーブル１３１は、自身のノード１０が、当該論理ネットワークの親ノード、子ノードとの間で確立されたトンネルについてのトンネル情報も含むものとする。このトンネル情報は、ノード１０間でトンネルを用いてパケットを転送するときに用いられる情報である。
【００４３】
＜転送手順＞
次に、図６を用いて、ノード１０のパケット転送手順を説明する。図６は、図２のノードのパケット転送手順を示したフローチャートである。なお、ここでは既に各ノード１０には手動で当該ノード１０のアドレスが設定されているものとする。また、各ノード１０はトンネル処理部１２２により、各サービスの論理ネットワークにおいて隣接するノード１０との間でトンネルを確立し、トンネル情報をルーチングテーブル１３１に書き込んでおくものとする。また、各ノード１０は、自身の属するサービスの論理ネットワークのアドレス空間、パラメータ情報等をルーチングテーブル１３１に保持しているものとする。
【００４４】
まず、図２のノード１０の受信データ解析部１２１は、ネットワークインタフェース部１１経由でパケットの入力を受け付けると（Ｓ１）、そのパケットの宛先アドレスＤを解析する（Ｓ２）。ここで、受信データ解析部１２１は、ルーチングテーブル１３１を参照して、宛先アドレスＤの属するサービスのアドレス空間を判断する（Ｓ３）。そして、このサービスのアドレス空間における自身のアドレスＡを読み出し、そのパケットが中継パケットであるか否かを判断する（Ｓ４）、ここで、中継パケットであれば（Ｓ４のＹｅｓ）、Ｓ６へ進む。一方、入力されたパケットが自身のノード１０宛のパケットであれば（Ｓ４のＮｏ）、自身のノード１０でパケットを受信し（Ｓ５）、転送処理は行わない。
【００４５】
次に、割り当てアドレス算出部１２５は、ルーチングテーブル１３１に示される情報のうち、このパケットの宛先アドレスＤの属するサービスのパラメータ情報を読み出す。つまり、パケットの宛先アドレスＤの属するサービスのサービス所属情報（当該サービスの論理ネットワークにおける自身のノード１０のアドレスＡおよびその論理ネットワークにおける自身のノード１０の階層）、サービス構成情報（当該サービスの論理ネットワークにおけるルートノードのアドレス、最大ツリー階層数Ｌｍ、最大子ノード数Ｒｍ（またはＲｍｄ））、隣接ノード接続情報（当該サービスの論理ネットワークにおける自身のノードの親ノードのアドレス（Ｐａｒｅｎｔ  ａｄｄｒ）および子ノードアドレス（Ｃｈｉｌｄ ａｄｄｒ))を読み出す。そして、割り当てアドレス算出部１２５は、この読み出した値を用いて、自身の階層をｄとしたときのＣｓｋｉｐ（ｄ−１）を計算する（Ｓ６）。このときのＣｓｋｉｐ（ｄ−１）の計算は、図３に示す式（４）または式（５）に基づき行われる。
【００４６】
次に、ネクストホップ決定部１２３は、この割り当てアドレス算出部１２５により計算されたＣｓｋｉｐ（ｄ−１）の値と、当該サービスの論理ネットワークにおける自身のノード１０のアドレスＡとを用いて、パケットの宛先アドレスＤが、以下の式（７）に示す条件を満たすか否かを判断する（Ｓ７）。つまり、ネクストホップ決定部１２３は、宛先アドレスＤのノードが、自身のノード１０からみてリーフ側にあるか、ルートノード側にあるかを判断する。
【００４７】
Ａ＜Ｄ＜Ａ＋Ｃｓｋｉｐ（ｄ−１）…式（７）
【００４８】
ここで、ネクストホップ決定部１２３が、パケットの宛先アドレスＤは、式（７）に示す条件を満たすと判断したとき（Ｓ７のＹｅｓ）、つまり、宛先アドレスＤのノードが、自身のノード１０からみてリーフ側にあると判断したとき、図３に示す式（４）または式（４）に基づき、Ｃｓｋｉｐ（ｄ）を計算する（Ｓ８）。そして、ネクストホップ決定部１２３は、以下の式（８）により、このパケットの転送先であるネクストホップノードのアドレスＮｅｘｔｈｏｐ  ａｄｄｒを求める（Ｓ９）。
【００４９】
Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａ＋１＋Ｆｌｏｏｒ［(Ｄ−（Ａ＋１）)／Ｃｓｋｉｐ（ｄ）］×Ｃｓｋｉｐ（ｄ）…式（８）
【００５０】
そして、パケット転送部１２４は、当該サービスの論理ネットワークにおける子ノードのうち、この計算したＮｅｘｔｈｏｐ  ａｄｄｒを持つ子ノードに対し、パケットを転送する（Ｓ１１）。
【００５１】
一方、Ｓ７において、ネクストホップ決定部１２３は、パケットの宛先アドレスＤが、以下の式（７）に示す条件を満たさないとき（Ｓ７のＮｏ）、Ｎｅｘｔｈｏｐ  ａｄｄｒ＝Ａｐａｒｅｎｔとし（Ｓ１０）、Ｓ１１へ進む。つまり、ネクストホップ決定部１２３は、宛先アドレスＤが式（７）を満たさないときは、この宛先アドレスＤのノードは、自身のノード１０からみてルート側にあると判断できるので、自身のノード１０の親ノードにパケットを転送する。
【００５２】
このようにノード１０は、各論理ネットワークがツリー型トポロジで構成される場合、そのツリーにおける自身のノード１０のアドレスＡおよび階層ｄ、最大ツリー階層数Ｌｍ、最大子ノード数Ｒｍ（またはＲｍｄ）、親ノードのアドレス、子ノードのアドレスを参照することで、入力されたパケットのネクストホップノードを知ることができる。
【００５３】
なお、Ｓ７において、ネクストホップ決定部１２３がパケットの宛先アドレスＤは、式（７）に示す条件を満たすと判断したとき（Ｓ７のＹｅｓ）、つまり、宛先アドレスＤのノードが、自身のノード１０からみてリーフ側にあると判断した場合であって、ルーチングテーブル１３１の当該サービスに関する自身のノードの子ノードが１つのみであるとき、Ｓ８およびＳ９の処理をスキップして、この子ノードをネクストホップノードとして決定するようにしてもよい。
【００５４】
＜具体例＞
次に、適宜、図２、図４、図７を参照して、ノード１０によるルーチングの具体例を説明する。ここでは、サービスＩＤ「０」について図４（ａ）に示す論理ネットワークが構築され、サービスＩＤ「７」について（ｂ）に示す論理ネットワークが構築され、各ノード１０にそれぞれの論理ネットワークに基づくアドレスが設定されているものとする。そして、アドレス「１６」のノード１０が、図７に示すルーチングテーブル１３１を用いて、ルーチングを行う場合を例に説明する。図７は、図４（ｂ）のアドレス「１６」のノードのルーチングテーブルを例示した図である。
【００５５】
まず、ノード１０は、受信したパケットを受信データ解析部１２１で解析した結果、このパケットの宛先アドレスＤは「１３」という情報が得られたとする。ここで、割り当てアドレス算出部１２３は、図７のルーチングテーブル１３１を検索して、このアドレス「１３」が属するサービスＩＤ「７」における自身のノード１０のアドレスと、パラメータ情報を読み出す。つまり、サービスＩＤ「７」の論理ネットワークにおける自身のノード１０のアドレス（Ｍｙ  ａｄｄｒ）Ａ「１８」、階層（Ｍｙ  Ｄｅｐｔｈ）ｄ「２」、最大ツリー階層数Ｌｍ「３」、最大子ノード数Ｒｍｄ「３，２，３，０」、親ノードのアドレス「１７」、子ノードのアドレス「１９，２０，２１」を読み出す。ここで、受信データ解析部１２１は、宛先アドレスＤ「１３」について、このアドレスは、自身のアドレスＡ「１８」ではないから、このパケットは中継パケットであると判断する。
【００５６】
そして、割り当てアドレス算出部１２３は、ルーチングテーブル１３１から読み出したサービスＩＤ「７」に関するパラメータ情報から、このサービスの論理ネットワークのツリーの最大子ノード数は、階層ごとに異なるものであることを知り、図３の式（５）によりＣｓｋｉｐ（ｄ−１）の値を計算する。ここで、自身のノード１０の階層は「２」なので、Ｃｓｋｉｐ（１）を計算し、「４」という値を得る（図４（ｂ）参照）。そして、ネクストホップ決定部１２３は、この値と、自身のアドレスＡ「１８」を用いて、パケットの宛先アドレスＤ「１３」が、前記した式（７）を満たすか否かを判断すると、宛先アドレスＤ「１３」は、この式（７）を満たさないことが分かる。つまり、ネクストホップ決定部１２３は、宛先アドレス「１３」のノードは、自身のノード１０のリーフ側に存在しないことが分かる。よって、自身の親ノード（アドレス「１７」のノード）をネクストホップノードとして決定する。そして、パケット転送部１２４は、この親ノード（アドレス「１７」のノード）へパケットを転送する。
【００５７】
この後、アドレス「１７」のノード１０においても同様の処理を行い、このパケットはこのツリーのルートノードであるアドレス「７」へ転送される。
【００５８】
続いて、ルートノード（アドレス「７」）であるノード１０の処理を説明する。このルートノードも、自身のルーチングテーブル１３１を参照して、パケットの宛先アドレスＤは「１３」という情報から、サービスＩＤ「７」を求める。つまり、サービスＩＤ「７」の論理ネットワークにおける自身のノード１０のアドレスＡ「７」、階層ｄ「０」、最大ツリー階層数Ｌｍ「３」、最大子ノード数Ｒｍｄ「３，２，３，０」、子ノードのアドレス「８，１７，２６」を読み出す。なお、このノード１０は、ルートノードなので親ノードはない。よって、このノード１０のネクストホップ決定部１２３は、宛先アドレス「１３」のノード１０へパケットを転送するためのネクストホップノードは、アドレス「８，１７，２６」のいずれかのノード１０であることを知る。ここで、割り当てアドレス算出部１２３は、Ｃｓｋｉｐ（０）を計算すると「９」という値を得る。そして、ネクストホップ決定部１２３は、前記した式（７）により、Ｎｅｘｔｈｏｐ  ａｄｄｒの値を求めると、「Ｎｅｘｔｈｏｐ  ａｄｄｒ＝７＋１＋Ｆｌｏｏｒ［(１３−（７＋１）)／９］×９＝７＋１＋０×９＝８」という値を得る。よって、アドレス「８，１７，２６」のノード１０のうち、アドレス「８」のノード１０をネクストホップノードとして決定する。そして、パケット転送部１２４は、このアドレス「８」のノード１０へパケットを転送する。
【００５９】
このようにしてアドレス「８」のノード１０が、パケットを受信すると、パケットの宛先アドレスＤ「１３」と、ルーチングテーブル１３１とを参照して、サービスＩＤ「７」を求める。そして、ノード１０は、このパケットが中継パケットであると判断する。ネクストホップ決定部１２３は、このルーチングテーブル１３１のサービスＩＤ「７」の子ノードのアドレスに、アドレス「１３」が登録されているので、このアドレス「１３」のノード１０をネクストホップノードとして決定する。そして、パケット転送部１２４は、このアドレス「１３」のノードへパケットを転送する。このようにして、パケットは、ツリー型トポロジで構成された論理ネットワーク上を転送され、アドレス「１３」のノードへ到達する。
【００６０】
なお、前記した実施の形態において、各論理ネットワークに割り当てられるアドレス空間をもとにどのサービスの論理ネットワークを用いてパケットを転送すればよいか判断することとしたが、これに限定されない。例えば、ノード１０は、論理ネットワークＡについて、ツリー最大階層数と１つのノードが保持可能な最大子ノード数とをもとに、論理ネットワークＡにおいて用いられるアドレスの最大値を計算する。そして、その最大値にパケットの宛先アドレスが含まれていれば、ノード１０は、その論理ネットワークＡを用いてパケットを転送すればよいと判断する。一方、その最大値にパケットの宛先アドレスが含まれていなければ、同様に論理ネットワークＢについて、ツリー最大階層数と１つのノードが保持可能な最大子ノード数とをもとに、論理ネットワークＢにおいて用いられるアドレスの最大値を計算し、その最大値にパケットの宛先アドレスが含まれているか否かを判断する。ノード１０は、このような処理を繰り返し、パケットの転送に用いるサービスの論理ネットワークを特定するようにしてもよい。
【００６１】
本実施の形態に係るノード１０は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
【図面の簡単な説明】
【００６２】
【図１】本実施の形態のノードを含むシステムを例示した図である。
【図２】図１のノードの構成を示したブロック図である。
【図３】図２の割り当てアドレス算出部が各ノードに割り当てるアドレスの計算方法に用いられるＣｓｋｉｐ（ｄ）の計算式を示した図である。
【図４】（ａ）は、サービスＩＤ「０」の論理ネットワークのツリー型トポロジを例示した図であり、（ｂ）は、サービスＩＤ「７」の論理ネットワークのツリー型トポロジを例示した図である。
【図５】図２のルーチングテーブルの構成例を示した図である。
【図６】図２のノードのパケット転送手順を示したフローチャートである。
【図７】図４（ｂ）のアドレス「１６」のノードのルーチングテーブルを例示した図である。
【図８】比較例となるルーチング経路を示した図である。
【符号の説明】
【００６３】
１      バックボーンネットワーク
２，３  サービスネットワーク
１０    ノード
１１    ネットワークインタフェース部
１２    処理部
１３    記憶部
２１（２１Ａ，２１Ｂ）  サーバ
３１（３１Ａ，３１Ｂ）  クライアント
１２１  受信データ解析部
１２２  トンネル処理部
１２３  ネクストホップ決定部
１２４  パケット転送部
１２５  割り当てアドレス算出部
１３１  ルーチングテーブル
【図１】
2010045680.tif 000003
【図２】
2010045680.tif 000004
【図３】
2010045680.tif 000005
【図４】
2010045680.tif 000006
【図５】
2010045680.tif 000007
【図６】
2010045680.tif 000008
【図７】
2010045680.tif 000009
【図８】
2010045680.tif 000010