以下、本発明を図面に基づいて詳細に説明する。
〔実施の形態1(基本例)〕
図1はこの発明に係る無線通信ネットワークの一実施の形態の構成の要部を示す図である。同図において、1は最上位ノード、2は上位ノード、3は下位ノードであり、各ノード間の親子関係が設定される前の状態を示している。
この無線通信ネットワークにおいて、最上位ノード1には、自己の論理アドレスとして「00」が設定され、自己の通信アドレスとして「#0」が設定されている。上位ノード2には、自己の論理アドレスとして「01」が設定され、自己の通信アドレスとして「#1」が設定されている。下位ノード3には、自己の論理アドレスとして「01−01」が設定され、自己の通信アドレスとして「#2」が設定されている。
また、上位ノード2および下位ノード3には、この上位ノード2および下位ノード3が参加する無線ネットワークの頂点をなす最上位ノード1の通信アドレス#0が設定されている。また、最上位ノード1には、後述するように、この最上位ノード1を頂点する無線ネットワークが構築されて行くにつれ、このネットワーク内の各ノードの論理アドレスと通信アドレスとの対がテーブルTB1に書き込まれて行く。
なお、ジグビー(Zigbee)の場合、最上位ノードをコーディネータと位置づけておいてもよい。この場合、ネットワークアドレス(通信アドレス)0は常に最上位ノードを意味する。また、例えば、TCP/IPの場合、最上位ノードには特定のIPアドレスを付番する規則とし、当該特定のIPアドレスを全てのノードにあらかじめ記憶させておいてもよい。
図2に各ノードに付与する論理アドレスの構造を示す。最上位ノードのアドレスを「00」とし、この最上位ノード(0層)の下層(1階層目)に位置するノードのアドレスは「01」〜「0N」とする。アドレス「01」のノードの下層(2階層目)に位置するノードのアドレスは「01−01」〜「01−0N」とする。アドレス「01−01」のノードの下層(2階層目)に位置するノードのアドレスは「01−01−01」〜「01−01−0N」とする。以下、同様にして、各階層の各ノードに論理アドレスを付与する。
〔無線通信ネットワークの構築〕
〔最上位ノードと上位ノードとの間の親子関係の自動設定〕
この無線通信ネットワークでは、最上位ノード1の通信可能圏内で上位ノード2を起動させると、自動的に最上位ノード1と上位ノード2との間の親子関係が設定される。この様子を図3および図4に示す。
図3(a)は上位ノード2を起動させた直後の状態である。上位ノード2は、最上位ノード1の通信可能圏内で起動されると(図5:ステップS101のYES)、最上位ノード1に対して自ノードの論理アドレス01および通信アドレス#1を含む上位ノードアドレス問い合わせメッセージS1を送信する(ステップS102)。
最上位ノード1は、上位ノード2からの上位ノードアドレス問い合わせメッセージS1を受信すると(図6:ステップS201のYES)、このメッセージS1中の論理アドレス01と通信アドレス#1との対をテーブルTB1に書き込む(ステップS202、図3(b))。
そして、最上位ノード1は、メッセージS1に含まれている論理アドレス01から、この論理アドレス01が属する上位の論理アドレスを特定する(ステップS203)。この場合、論理アドレス01の最下位のアドレス部分を削除することによって、論理アドレス01が属する上位の論理アドレスを特定する。この例では、論理アドレス01の最下位のアドレス「01」を削除すると論理アドレスがなくなるので、論理アドレス01が属する上位の論理アドレスを「00」として特定する。
そして、最上位ノード1は、この特定した上位の論理アドレス00がテーブルTB1に書き込まれているか否かをチェックする(ステップS204)。この場合、論理アドレス00はテーブルTB1には書き込まれていないが、自己の論理アドレスであるので、特別ルールとしてテーブルTB1に書き込まれているものとみなし(ステップS204のYES)、その論理アドレスと対としてテーブルTB1に書き込まれている通信アドレス(問い合わされた上位のノードの通信アドレス)として自己の通信アドレス#0を取得し(ステップS205)、この取得した通信アドレス#0を含む上位ノードアドレス問い合わせ応答メッセージS2を上位ノード2に返送する(ステップS206、図3(b))。
なお、特定した上位の論理アドレスが自己の論理アドレスではなく、かつテーブルTB1にも書き込まれていなかった場合(ステップS204のNO)、最上位ノード1は、問い合わされた上位のノードの通信アドレスがない旨を知らせる上位ノードアドレス問い合わせ応答メッセージS2を上位ノード2に返送する(ステップS207)。
上位ノード2は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2を受信すると(図5:ステップS103のYES)、このメッセージS2に通信アドレスが含まれているか否かをチェックする(ステップS105)。この場合、上位ノード2は、メッセージS2に通信アドレス#0が含まれていることを確認し(ステップS105のYES)、このメッセージS2中の通信アドレス#0を自己と通信を行う親ノードの通信アドレスとして記憶する(ステップS107:図3(b))。
なお、上位ノード2は、最上位ノード1へ上位ノードアドレス問い合わせメッセージS1を送信した後(ステップS102)、所定時間が経過しても最上位ノード1から上位ノードアドレス問い合わせ応答メッセージS2が送られてこない場合(ステップS104のYES)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信(リトライ)を行う(ステップS102)。上位ノード2は、この最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を、最上位ノード1から上位ノードアドレス問い合わせ応答メッセージS2が送られてくるまで繰り返す。
また、上位ノード2は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2に通信アドレスが含まれていなかった場合(ステップS105のNO)、すなわち最上ノード1からの上位ノードアドレス問い合わせ応答メッセージS2が上位のノードの通信アドレスがない旨を知らせるメッセージであった場合、所定時間の経過を待って(ステップS106)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信(リトライ)を行う(ステップS102)。上位ノード2は、この最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を、通信アドレスを含む上位ノードアドレス問い合わせ応答メッセージS2が送られてくるまで繰り返す。
上位ノード2は、通信アドレス#0を親ノードの通信アドレスとして記憶した後(ステップS107)、カウント値NをN=1としたうえ(ステップS108)、その記憶した通信アドレス#0によって特定される上位のノードすなわち最上位ノード1に対して、自ノードの論理アドレス01および通信アドレス#1を含むバインド要求メッセージS3を送信する(ステップS109、図3(c))。
最上位ノード1は、上位ノード2からのバインド要求メッセージS3を受信すると(図7:ステップS301のYES)、このメッセージS3中の論理アドレス01から、この論理アドレス01が属する上位の論理アドレスを「00」として特定し、この特定した上位の論理アドレス00と自ノードの論理アドレスとが一致するか否かをチェックする(ステップS303)。
この場合、最上位ノード1は、特定した上位の論理アドレス00が自ノードの論理アドレスであることを確認し(ステップS303のYES)、メッセージS3中の通信アドレス#1を論理アドレス01と対として自己と通信を行う子ノードの通信アドレスとして記憶し(ステップS304)、上位ノード2に対してバインド応答メッセージS4を返送する(ステップS305、図4(a))。
上位ノード2は、最上位ノード1からのバインド応答メッセージS4を受信すると(図5:ステップS110のYES)、最上ノード1との間の親子関係が確立したと判断する(ステップS114)。これにより、最上ノード1と上位ノード2との間の通信が開始される(図4(b))。
このようにして、本実施の形態では、最上位ノード1の通信可能圏内で上位ノード2を起動させるのみで、自動的に最上位ノード1と上位ノード2との間の親子関係が設定され、最上位ノード1と上位ノード2との間での通信が開始されるようになる。
なお、上位ノード2は、最上位ノード1へバンド要求メッセージS3を送信した後(ステップS109)、所定時間が経過しても最上位ノード1からバインド応答メッセージS4が送られてこない場合(ステップS111のYES)、カウント値NをN=N+1として(ステップS113)、最上位ノード1へのバインド要求メッセージS3の再送信(リトライ)を行う(ステップS109)。
また、上位ノード2は、バインド要求メッセージS3を所定回数送信しても最上位ノード1からバインド応答メッセージS4が送られてこない場合(ステップS112のYES)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信(リトライ)を行う(ステップS102)。
〔上位ノードと下位ノードとの間の親子関係の自動設定〕
次に、上位ノードと下位ノードとの間の親子関係の自動設定について説明する。最上位ノード1と上位ノード2との間の親子関係が設定されている状態で、最上位ノード1と上位ノード2の通信可能圏内で下位ノード3を起動させると、自動的に上位ノード2と下位ノード3との間の親子関係が設定される。この様子を図8に示す。
図8(a)は下位ノード3を起動させた直後の状態である。下位ノード3は、最上位ノード1および上位ノード2の通信可能圏内で起動されると(図5:ステップS101のYES)、最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1を送信する(ステップS102)。
最上位ノード1は、下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信すると(図6:ステップS201のYES)、このメッセージS1に含まれている論理アドレス01−01と通信アドレス#2との対をテーブルTB1に書き込む(ステップS202)。
そして、最上位ノード1は、メッセージS1中の論理アドレス01−01から、この論理アドレス01−01が属する上位の論理アドレスを特定する(ステップS203)。この場合、論理アドレス01−01の最下位のアドレス「01」を削除すると論理アドレスが「01」となるので、論理アドレス01−01が属する上位の論理アドレスを「01」として特定する。
そして、最上位ノード1は、この特定した上位の論理アドレス01がテーブルTB1に書き込まれているか否かをチェックする(ステップS204)。この場合、論理アドレス01はテーブルTB1に書き込まれているので(ステップS204のYES)、その論理アドレス01と対としてテーブルTB1に書き込まれている通信アドレス#1を問い合わされた上位のノードの通信アドレスとして取得し(ステップS205)、この取得した通信アドレス#1を含む上位ノードアドレス問い合わせ応答メッセージS2を下位ノード3に返送する(ステップS206、図8(b))。
下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2を受信すると(図5:ステップS103のYES)、このメッセージS2に通信アドレスが含まれているか否かをチェックする(ステップS105)。この場合、下位ノード3は、メッセージS2に通信アドレス#1が含まれていることを確認し(ステップS105のYES)、このメッセージS2中の通信アドレス#1を自己と通信を行う親ノードの通信アドレスとして記憶する(ステップS107)。
そして、下位ノード3は、カウント値NをN=1としたうえ(ステップS108)、その記憶した通信アドレス#1によって特定される上位ノード2に対して、自ノードの論理アドレス01−01および通信アドレス#2を含むバインド要求メッセージS3を送信する(ステップS109、図9(a))。
上位ノード2は、下位ノード3からのバインド要求メッセージS3を受信すると(図7:ステップS301のYES)、このメッセージS3に含まれている論理アドレス01−01から、この論理アドレス01−01が属する上位の論理アドレスを「01」として特定する。
そして、上位ノード2は、この特定した上位の論理アドレス01と自ノードの論理アドレスとが一致するか否かをチェックする(ステップS303)。この場合、上位ノード2は、特定した上位の論理アドレス01が自ノードの論理アドレスであることを確認し(ステップS303のYES)、メッセージS3中の通信アドレス#2を論理アドレス01−01と対として自己と通信を行う子ノードの通信アドレスとして記憶し(ステップS304)、下位ノード3に対してバインド応答メッセージS4を返送する(ステップS305、図9(b))。
下位ノード3は、上位ノード2からのバインド応答メッセージS4を受信すると(図5:ステップS110のYES)、上位ノード2との間の親子関係が確立したと判断する(ステップS114)。これにより、上位ノード2と下位ノード3との間の通信が開始される(図9(c)。
このようにして、本実施の形態では、最上位ノード1および上位ノード2の通信可能圏内で下位ノード3を起動させるのみで、自動的に上位ノード2と下位ノード3との間の親子関係が設定され、上位ノード2と下位ノード3との間での通信が開始されるようになる。
なお、図5に示すフローチャートが上位ノードと下位ノードとで共通であることからも分かるように、下位ノード3は、最上位ノード1へ上位ノードアドレス問い合わせメッセージS1を送信した後(ステップS102)、所定時間が経過しても最上位ノード1から上位ノードアドレス問い合わせ応答メッセージS2が送られてこない場合(ステップS104のYES)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を行う(ステップS102)。下位ノード3は、この最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を、最上位ノード1から上位ノードアドレス問い合わせ応答メッセージS2が送られてくるまで繰り返す。
また、下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2が上位のノードの通信アドレスがない旨を知らせるメッセージであった場合(ステップS105のNO)、所定時間の経過を待って(ステップS106)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を行う(ステップS102)。下位ノード3は、この最上位ノード1への上位ノードアドレス問い合わせメッセージS1の送信を、問い合わせした上位のノードの通信アドレスを含む上位ノードアドレス問い合わせ応答メッセージS2が送られてくるまで繰り返す。
また、下位ノード3は、上位ノード2へバンド要求メッセージS3を送信した後(ステップS109)、所定時間が経過しても上位ノード2からバインド応答メッセージS4が送られてこない場合(ステップS111のYES)、カウント値NをN=N+1として(ステップS113)、上位ノード2へのバインド要求メッセージS3の再送信を行う(ステップS109)。
また、下位ノード3は、バインド要求メッセージS3を所定回数送信しても上位ノード2からバインド応答メッセージS4が送られてこない場合(ステップS112のYES)、最上位ノード1への上位ノードアドレス問い合わせメッセージS1の再送信を行う(ステップS102)。
この無線通信ネットワークにおいて、最上位ノード1,上位ノード2および下位ノード3は、プロセッサや記憶装置からなるハードウェアと、これらのハードウェアと協働して各種機能を実現させるプログラムとによって実現される。
図10に上位ノードアドレス問い合わせメッセージS1を送信してからバインド応答メッセージS4を受信するまでの実施の形態1における下位ノード3の機能ブロック図を示す。この下位ノード3と同様の機能を上位ノード2も有している。
下位ノード3は、自ノードが属する階層に基づいて定められる論理アドレスおよび自ノードの通信アドレスを記憶するアドレス記憶部3−1と、起動時、自ノードの論理アドレスおよび通信アドレスを含む上位ノードアドレス問い合わせメッセージS1を最上位ノード1に送信し、最上位ノード1に自ノードが通信を行うべき上位のノードの通信アドレスを問い合わせる上位ノードアドレス問い合わせメッセージ送信部3−2と、この上位ノードアドレス問い合わせメッセージ送信部3−2からの上位ノードアドレス問い合わせメッセージS1に応じ最上位ノード1から返送されてくる上位ノードアドレス問い合わせ応答メッセージS2を受信する上位ノード問い合わせ応答メッセージ受信部3−3とを備えている。
また、上位ノード問い合わせ応答メッセージ受信部3−3が受信した上位ノードアドレス問い合わせ応答メッセージS2から問い合わせた上位のノードの通信アドレスを取得する上位ノード通信アドレス取得部3−4と、この上位ノード通信アドレス取得部3−4が取得した上位のノードの通信アドレスを自己と通信を行う親ノードの通信アドレスとして記憶する上位ノード通信アドレス記憶部3−5と、上位ノード通信アドレス取得部3−4が取得した通信アドレスによって特定される上位のノードに自ノードの論理アドレスおよび通信アドレスを含むバインド要求メッセージS3を送信するバインド要求メッセージ送信部3−6と、このバインド要求メッセージ送信部3−6からのバインド要求メッセージS3に応じ上位のノードから返送されてくるバインド応答メッセージS4を受信するバインド応答メッセージ受信部3−7とを備えている。
この機能ブロック図において、上位ノードアドレス問い合わせ応答メッセージ受信部3−3は、上位ノードアドレス問い合わせメッセージ送信部3−2からの上位ノードアドレス問い合わせメッセージS1の送信後、所定時間が経過しても上位ノードアドレス問い合わせ応答メッセージS2が返送されてこない場合、上位ノードアドレス問い合わせメッセージ送信部3−2に対して上位ノードアドレス問い合わせメッセージS1の再送信を指示する。
また、上位ノード通信アドレス取得部3−4は、上位ノード問い合わせ応答メッセージ受信部3−3が受信した上位ノードアドレス問い合わせ応答メッセージS2に上位のノードの通信アドレスが含まれていない場合、上位ノードアドレス問い合わせメッセージ送信部3−2に対して上位ノードアドレス問い合わせメッセージS1の再送信を指示する。
また、バインド応答メッセージ受信部3−7は、バインド要求メッセージ送信部3−6からのバインド要求メッセージS3の送信後、所定時間が経過してもバインド応答メッセージS4が返送されてこない場合、バインド要求メッセージ送信部3−6に対してバインド要求メッセージS3の再送信を指示する。また、バインド要求メッセージS3の再送信を所定回数繰り返してもバインド応答メッセージS4が返送されてこない場合、上位ノードアドレス問い合わせメッセージ送信部3−2に対して上位ノードアドレス問い合わせメッセージS1の再送信を指示する。
この機能ブロック図において、アドレス記憶部3−1が本発明でいうアドレス記憶手段に相当し、上位ノードアドレス問い合わせメッセージ送信部3−2が上位ノードアドレス問い合わせ手段に相当し、上位ノード問い合わせ応答メッセージ受信部3−3,上位ノード通信アドレス取得部3−4,上位ノード通信アドレス記憶部3−5,バインド要求メッセージ送信部3−6およびバインド応答メッセージ受信部3−7が親子関係確立要求手段に相当する。
なお、図10に図示していないが、アドレス記憶部3−1には最上位ノードの通信アドレスも記憶されている。
図11に上位ノードアドレス問い合わせメッセージS1を受信してから上位ノードアドレス問い合わせ応答メッセージS2を送信するまでの実施の形態1における最上位ノード1の機能ブロック図を示す。
最上位ノード1は、論理アドレスと通信アドレスとの対が書き込まれるテーブルTB1と、上位ノード2や下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信する上位ノードアドレス問い合わせメッセージ受信部1−1と、上位ノードアドレス問い合わせメッセージ受信部1−1が受信した上位ノードアドレス問い合わせメッセージS1に含まれている論理アドレスおよび通信アドレスを取得する論理・通信アドレス取得部1−2とを備えている。
また、上位ノードアドレス問い合わせメッセージ受信部1−1が受信した上位ノードアドレス問い合わせメッセージS1に含まれている論理アドレスからその論理アドレスが属する上位の論理アドレスを特定する上位ノード論理アドレス特定部1−3と、この上位ノード論理アドレス特定部1−3が特定した論理アドレスと対としてテーブルTB1に書き込まれている通信アドレスを問い合わされた上位のノードの通信アドレスとして取得する上位ノード通信アドレス取得部1−4と、この上位ノード通信アドレス取得部1−4が取得した通信アドレスを含む上位ノード問い合わせ応答メッセージS2をメッセージS1の送信元のノードに返送する上位ノード問い合わせ応答メッセージ送信部1−5とを備えている。
この機能ブロックにおいて、論理・通信アドレス取得部1−2は、上位ノードアドレス問い合わせメッセージ受信部1−1が受信した上位ノードアドレス問い合わせメッセージS1に含まれている論理アドレスおよび通信アドレスを取得し、この取得した論理アドレスと通信アドレスとの対をテーブルTB1に書き込む。また、上位ノード通信アドレス取得部1−4は、上位ノード論理アドレス特定部1−3が特定した論理アドレスがテーブルTB1に書き込まれていない場合、問い合わされた上位のノードの通信アドレスは存在しないと判断し、上位ノード問い合わせ応答メッセージ送信部1−5に対して、上位のノードの通信アドレスがない旨を知らせるメッセージを上位ノード問い合わせ応答メッセージS2として送信するよう指示する。
なお、この機能ブロックにおいて、上位ノードアドレス問い合わせメッセージ受信部1−1,論理・通信アドレス取得部1−2およびテーブルTB1が本発明でいう論理通信アドレス記憶手段に相当し、上位ノード論理アドレス特定部1−3および上位ノード通信アドレス取得部1−4が上位ノードアドレス検索手段に相当し、上位ノード問い合わせメッセージ送信部1−5が上位ノードアドレス問い合わせ応答手段に相当する。
図12にバインド要求メッセージS3を受信してからバインド応答メッセージS4を送信するまでの実施の形態1における上位ノード2の機能ブロック図を示す。この上位ノード2と同様の機能を最上位ノード1も有している。
上位ノード1は、自ノードが属する階層に基づいて定められる論理アドレスおよび自ノードの通信アドレスを記憶するアドレス記憶部2−1と、下位のノードからのバインド要求メッセージS3を受信するバインド要求メッセージ受信部2−2と、バインド要求メッセージ受信部2−2が受信したバインド要求メッセージS3に含まれている論理アドレスからその論理アドレスが属する上位の論理アドレスを特定する上位ノード論理アドレス特定部2−3と、上位ノード論理アドレス特定部2−3によって特定された上位の論理アドレスと自ノードの論理アドレスとが一致するか否かを確認する論理アドレス一致確認部2−4とを備えている。
また、論理アドレス一致確認部2−4において特定された上位のノードと自ノードの論理アドレスとの一致が確認された場合、バインド要求メッセージ受信部2−2が受信したバインド要求メッセージS3に含まれている論理アドレスと通信アドレスを取得する論理・通信アドレス取得部2−5と、論理・通信アドレス取得部2−5が取得した通信アドレスを論理アドレスと対として自己と通信を行う子ノードの通信アドレスとして記憶する下位ノード通信アドレス記憶部2−6と、下位ノード通信アドレス記憶部2−6へ通信アドレスが記憶(親子関係が確立)されたことを知らせるバインド応答メッセージS4をバインド要求メッセージS1の送信元のノードに返送するバインド応答メッセージ送信部2−7とを備えている。
この機能ブロック図において、論理アドレス一致確認部2−4,論理・通信アドレス取得部2−5,下位ノード通信アドレス記憶部2−6およびバインド応答メッセージ送信部2−7が本発明でいうバインド要求応答手段に相当する。
なお、図12に図示していないが、アドレス記憶部2−1には最上位ノードの通信アドレスも記憶されている。
図13に最上位ノード1の下層(1階層目)に上位ノード2A,2Bを設け、上位ノード2Aの下層(2階層目)に下位ノード3A,3Bを設け、上位ノード2Bの下層に下位ノード3Cを設けた例を示す。最上位ノード1と上位ノード2A,2Bとの間は親子関係が自動設定され、上位ノード2Aと下位ノード3A,3Bとの間、上位ノード2Bと下位ノード3Cとの間も親子関係が自動設定されている。これにより、最上位ノード1のテーブルTB1には、各ノードの論理アドレスと通信アドレスとの対が既に書き込まれている。
ここで、1階層目の上位ノード2Bの下に、2階層目の下位ノード3Dが位置し、起動されたとする。この場合、下位ノード3Dは、最上位ノード1の通信アドレス#0を予め保持しているため、最上位ノード1に対して上位ノードアドレス問い合わせメッセージS1を送信する(図14)。この際、最上位ノード1に対して、下位ノード3Dの論理アドレス02−02および通信アドレス#6が通知される。
最上位ノード1は、上位ノードアドレス問い合わせメッセージS1を受信し、このメッセージS1によって通知された論理アドレス02−02および通信アドレス#6の対をテーブルTB1に書き込む。また、通知された論理アドレス02−02のうち、最下位のアドレス部分を削除したアドレスすなわち論理アドレス「02」に対応する通信アドレスが、テーブルTB1に存在するか否かを検索する。この例では、最上位ノード1のテーブルTB1には、論理アドレス02のノードの通信アドレス#4がすでに書き込まれているので、最上位ノード1は、下位ノード3Dに対して、通信アドレス#4を含む上位ノードアドレス問い合わせ応答メッセージS2を返送する(図15)。
下位ノード3Dは、最上位ノード1から上位ノードアドレス問い合わせ応答メッセージS2を受信することで、上位ノード2Bの通信アドレス#4を取得することができる。そこで、通信アドレス#4で特定されるノード、すなわち上位ノード2Bに対して、バインド要求メッセージS3を送信し(図16)、自己の論理アドレス02−02および通信アドレス#6を通知する。
上位ノード2Bは、下位ノード3Dからのバインド要求メッセージS3にて、論理アドレス02−02および通信アドレス#6を受信するため、通知された論理アドレス02−02のうち、最下位の部分を削除したアドレスすなわち論理アドレス02が、自身の論理アドレスと一致するかを調べる。この例では、自身の論理アドレスと一致するので、上位ノード2Bは、バインド要求メッセージS3で通知された通信アドレス#6を、下位ノード3Dに対応する通信アドレスとして自己のメモリに記憶し、下位ノード3Dに対してバインド応答メッセージS4を送信する(図17)。この時点で、上位ノード2Bから下位ノード3Dに対する通信が可能になる。
下位ノード3Dは、上位ノード2Bからのバインド応答メッセージS4を受信すると、バインド要求が受け付けられたと判断する。この時点で、下位ノード3Dから上位ノード2Bに対する送信が可能となり、論理アドレスと通信アドレスとの対応付けを手動で行うことなく、上位ノード−下位ノード間の双方向の通信が可能となる。
〔実施の形態1の問題点〕
上述した実施の形態1は、基本例であり、例えば図4(b)に示した状態において、上位ノード2の論理アドレスが変更された場合や通信アドレスが変更された場合、下位ノード3は最上位ノード1から正しい上位のノードの通信アドレスを受信することができないという問題点(問題点1,2)がある。この問題点1,2について具体的に説明する。
〔問題点1〕
図18に上位ノード2の論理アドレス01が例えば0Xに変更された場合を示す。この場合、最上位ノード1および上位ノード2の通信可能圏内で下位ノード3を起動させると、下位ノード3から最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1が送信される。
最上位ノード1は、下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信し、このメッセージS1中の論理アドレス01−01から上位の論理アドレスを01として特定し、テーブルTB1から論理アドレス01と対として記憶されている通信アドレス#1を取得し、この通信アドレス#1を含む上位ノードアドレス応答メッセージS2を下位ノード3に送る。
この上位ノードアドレス応答メッセージS2に含まれる通信アドレス#1は、論理アドレス0Xに変更された上位ノード2の通信アドレスであって、論理アドレスを「01」とする上位のノードのものではない。したがって、下位ノード3は、最上位ノード1から正しい上位のノードの通信アドレスを取得できていない。
〔問題点2〕
図19に上位ノード2の通信アドレス#1が例えば#Xに変更された場合を示す。この場合、最上位ノード1および上位ノード2の通信可能圏内で下位ノード3を起動させると、下位ノード3から最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1が送信される。
最上位ノード1は、下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信し、このメッセージS1中の論理アドレス01−01から上位の論理アドレスを01として特定し、テーブルTB1から論理アドレス01と対として記憶されている通信アドレス#1を取得し、この通信アドレス#1を含む上位ノードアドレス応答メッセージS2を下位ノード3に送る。
この上位ノードアドレス応答メッセージS2に含まれる通信アドレス#1は、論理アドレスを「01」とする上位ノード2のものではない。すなわち、論理アドレスを「01」とする上位ノード2の通信アドレスは「#X」であり、「#1」はもはや上位ノード2の通信アドレスではない。したがって、下位ノード3は、最上位ノード1から正しい上位のノードの通信アドレスを取得できていない。
また、上述した実施の形態1では、例えば図9(c)に示した状態において、上位ノード2の論理アドレスが変更された場合や通信アドレスが変更された場合、通信できていた各ノード間の通信が不能になったり、論理アドレスの従属関係が不一致となったりするという問題点(問題点3,4)がある。この問題点3,4について具体的に説明する。
〔問題点3〕
図20に上位ノード2の論理アドレス01が例えば0Xに変更された場合を示す。この場合、上位ノード2と下位ノード3との間の通信は続けられるが、下位ノード3の論理アドレス01−01は上位ノード2の論理アドレス0Xには従属しておらず、従属関係が不一致の上位ノード2と下位ノード3との間で通信が続けられることになる。
〔問題点4〕
図21に上位ノード2の通信アドレス#1が例えば#Xに変更された場合を示す。この場合、最上位ノード1と上位ノード2との間の親子関係が断たれ、最上位ノード1と上位ノード2との間が通信不能となる。また、上位ノード2と下位ノード3との間の親子関係が断たれ、上位ノード2と下位ノード3との間が通信不能となる。
〔実施の形態2(改良例)〕
上述した実施の形態1の問題を改善した例が次に説明する実施の形態2である。図22および図23に実施の形態1の図5に対応するフローチャートを分割して示す。また、図24に実施の形態1の図6に対応するフローチャートを示す。実施の形態1の図7のフローチャートはそのまま実施の形態2でも使用する。
〔問題点1の改善〕
図25に、実施の形態1の問題点1を説明した図18に対応する図として、実施の形態2において上位ノード2の論理アドレス01が例えば0Xに変更された場合を示す。
この場合、上位ノード2は、論理アドレス01が0Xに変更されると(図22:ステップS402のYES)、変更された論理アドレス0Xと通信アドレス#1を含む上位ノードアドレス問い合わせメッセージS1を最上位ノード1に対して送信する(ステップS404)。
最上位ノード1は、上位ノード2からの上位ノードアドレス問い合わせメッセージS1を受信すると(図24:ステップS501のYES)、このメッセージS1に含まれている論理アドレス0Xと通信アドレス#1との対がテーブルTB1に書き込まれているか否かをチェックする(ステップS502)。
この場合、論理アドレス0Xと通信アドレス#1との対はテーブルTB1に書き込まれていないので(ステップS502のNO)、テーブルTB1に論理アドレス0Xあるいは通信アドレス#1が書き込まれているか否かをチェックする(ステップS503,504)。この場合、テーブルTB1には論理アドレス0Xは書き込まれていないが(ステップS503のNO)、通信アドレス#1は書き込まれている(ステップS504のYES)。そこで、テーブルTB1に通信アドレス#1と対として書き込まれている論理アドレス01を更新し(ステップS507)、論理アドレス0Xとする。
そして、最上位ノード1は、メッセージS1に含まれている論理アドレス0Xから、この論理アドレス0Xが属する上位の論理アドレスを「00」として特定し(ステップS508)、この特定した上位の論理アドレス00から自己の通信アドレス#0を問い合わされた上位のノードの通信アドレスとして取得し(ステップS510)、この取得した通信アドレス#0を含む上位ノードアドレス問い合わせ応答メッセージS2を上位ノード2に返送する(ステップS511)。
上位ノード2は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2を受信すると(図22:ステップS405のYES)、このメッセージS2に通信アドレスが含まれているか否かをチェックする(ステップS407)。この場合、上位ノード2は、メッセージS2に通信アドレス#0が含まれていることを確認し(ステップS407のYES)、このメッセージS2中の通信アドレス#0を自己と通信を行う親ノードの通信アドレスとして記憶する(ステップS410)。
そして、上位ノード2は、その記憶した通信アドレス#0によって特定される最上位ノード1に対して、自ノードの論理アドレス0Xおよび通信アドレス#1を含むバインド要求メッセージS3を送信する(ステップS412)。
最上位ノード1は、上位ノード2からのバインド要求メッセージS3を受信すると(図7:ステップS301のYES)、このメッセージS3に含まれている論理アドレス0Xから、この論理アドレス0Xが属する上位の論理アドレスを「00」として特定し(ステップS302)、この特定した上位の論理アドレス00が自ノードの論理アドレスであることを確認し(ステップS303のYES)、メッセージS3中の通信アドレス#1を論理アドレス0Xと対として自己と通信を行う子ノードの通信アドレスとして記憶し(ステップS304)、上位ノード2に対してバインド応答メッセージS4を返送する(ステップS305)。この場合、最上位ノード1では、上位ノード2の子ノードとしての登録が論理アドレス01と通信アドレス#1との対から、論理アドレス0Xと通信アドレス#1との対に書き替えられる。
上位ノード2の論理アドレスが「0X」に変更された後、最上位ノード1および上位ノード2の通信可能圏内で下位ノード3が起動されると、下位ノード3から最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1が送信される。
最上位ノード1は、下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信すると(図24:ステップS501のYES)、このメッセージS1に含まれている論理アドレス01−01と通信アドレス#2との対がテーブルTB1に書き込まれているか否かをチェックする(ステップS502)。
この場合、論理アドレス01−01と通信アドレス#2との対はテーブルTB1に書き込まれていないので(ステップS502のNO)、テーブルTB1に論理アドレス01−01あるいは通信アドレス#2が書き込まれているか否かをチェックする(ステップS503,504)。この場合、テーブルTB1には論理アドレス01−01も通信アドレス#2も書き込まれていないので(ステップS503,S504のNO)、テーブルTB1に論理アドレス01−01と通信アドレス#2との対を書き込む(ステップS505)。
そして、最上位ノード1は、メッセージS1中の論理アドレス01−01から、この論理アドレス01が属する上位の論理アドレスを「01」として特定し(ステップS508)、この特定した上位の論理アドレス01がテーブルTB1に書き込まれているか否かをチェックする(ステップS509)。この場合、論理アドレス01はテーブルTB1には書き込まれていないので(ステップS509のNO)、上位のノードの通信アドレスがない旨を知らせる上位ノードアドレス問い合わせ応答メッセージS2を下位ノード3に送信する(ステップS512)。
これにより、下位ノード3は、上位のノードの通信アドレスが最上位ノード1に登録されていないということを知ることができ、実施の形態1の問題点1が改善される。
〔問題点2の改善〕
図26に、実施の形態1の問題点2を説明した図19に対応する図として、実施の形態2において上位ノード2の通信アドレス#1が例えば#Xに変更された場合を示す。
この場合、上位ノード2は、通信アドレス#1が#Xに変更されると(図22:ステップS403のYES)、最上位ノード1に対して論理アドレス01と変更された通信アドレス#Xを含む上位ノードアドレス問い合わせメッセージS1を送信する(ステップS404)。
最上位ノード1は、上位ノード2からの上位ノードアドレス問い合わせメッセージS1を受信すると(図24:ステップS501のYES)、このメッセージS1に含まれている論理アドレス01と通信アドレス#Xとの対がテーブルTB1に書き込まれているか否かをチェックする(ステップS502)。
この場合、論理アドレス01と通信アドレス#Xとの対はテーブルTB1に書き込まれていないので(ステップS502のNO)、テーブルTB1に論理アドレス01あるいは通信アドレス#Xが書き込まれているか否かをチェックする(ステップS503,504)。この場合、テーブルTB1には論理アドレス01は書き込まれているが(ステップS503のYES)、通信アドレス#Xは書き込まれていない(ステップS504のNO)。そこで、テーブルTB1に論理アドレス01と対として書き込まれている通信アドレス#1を更新し(ステップS506)、通信アドレス#Xとする。
そして、最上位ノード1は、メッセージS1に含まれている論理アドレス01から、この論理アドレス01が属する上位の論理アドレスを「00」として特定し(ステップS508)、この特定した上位の論理アドレス00から自己の通信アドレス#0を問い合わされた上位のノードの通信アドレスとして取得し(ステップS510)、この取得した通信アドレス#0を含む上位ノードアドレス問い合わせ応答メッセージS2を上位ノード2に返送する(ステップS511)。
上位ノード2は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2を受信すると(図22:ステップS405のYES)、このメッセージS2に通信アドレスが含まれているか否かをチェックする(ステップS407)。この場合、上位ノード2は、メッセージS2に通信アドレス#0が含まれていることを確認し(ステップS407のYES)、このメッセージS2中の通信アドレス#0を自己と通信を行う親ノードの通信アドレスとして記憶する(ステップS410)。
そして、上位ノード2は、その記憶した通信アドレス#0によって特定される最上位ノード1に対して、自ノードの論理アドレス01および通信アドレス#Xを含むバインド要求メッセージS3を送信する(ステップS412)。
最上位ノード1は、上位ノード2からのバインド要求メッセージS3を受信すると(図7:ステップS301のYES)、このメッセージS3に含まれている論理アドレス0Xから、この論理アドレス0Xが属する上位の論理アドレスを「00」として特定し(ステップS302)、この特定した上位の論理アドレス00が自ノードの論理アドレスであることを確認し(ステップS303のYES)、メッセージS3中の通信アドレス#Xを論理アドレス01と対として自己と通信を行う子ノードの通信アドレスとして記憶し(ステップS304)、上位ノード2に対してバインド応答メッセージS4を返送する(ステップS305)。この場合、最上位ノード1では、上位ノード2の子ノードとしての登録が論理アドレス01と通信アドレス#1との対から、論理アドレス01と通信アドレス#Xとの対に書き替えられる。
上位ノード2の通信アドレスが「#X」に変更された後、最上位ノード1および上位ノード2の通信可能圏内で下位ノード3が起動されると、下位ノード3から最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1が送信される。
最上位ノード1は、下位ノード3からの上位ノードアドレス問い合わせメッセージS1を受信すると(図24:ステップS501のYES)、このメッセージS1に含まれている論理アドレス01−01と通信アドレス#2との対がテーブルTB1に書き込まれているか否かをチェックする(ステップS502)。
この場合、論理アドレス01−01と通信アドレス#2との対はテーブルTB1に書き込まれていないので(ステップS502のNO)、テーブルTB1に論理アドレス01−01あるいは通信アドレス#2が書き込まれているか否かをチェックする(ステップS503,504)。この場合、テーブルTB1には論理アドレス01−01も通信アドレス#2も書き込まれていないので(ステップS503,S504のNO)、テーブルTB1に論理アドレス01−01と通信アドレス#2との対を書き込む(ステップS505)。
そして、最上位ノード1は、メッセージS1に含まれている論理アドレス01−01から、この論理アドレス01が属する上位の論理アドレスを「01」として特定し(ステップS508)、この特定した上位の論理アドレス01がテーブルTB1に書き込まれているか否かをチェックする(ステップS509)。この場合、論理アドレス01はテーブルTB1に書き込まれているので(ステップS509のYES)、その論理アドレス01と対としてテーブルTB1に書き込まれている通信アドレス#Xを問い合わされた上位のノードの通信アドレスとして取得し(ステップS510)、この取得した通信アドレス#Xを含む上位ノードアドレス問い合わせ応答メッセージS2を下位ノード3に返送する(ステップS511)。
これにより、下位ノード3は、論理アドレスを「01」とする上位ノード2の変更後の通信アドレス#Xを正しく取り込むことができ、間違った通信アドレスを最上位ノード1から取得するということながく、実施の形態1の問題点2が改善される。
〔問題点3の改善〕
図27に、実施の形態1の問題点3を説明した図20に対応する図として、実施の形態2において上位ノード2の論理アドレス01が例えば0Xに変更された場合を示す。
この場合、上位ノード2は、論理アドレス01が0Xに変更されると、最上位ノード1に対して変更された論理アドレス0Xと通信アドレス#1を含む上位ノードアドレス問い合わせメッセージS1を送信する。これにより、図25を用いて説明した場合と同様にして、最上位ノード1において、テーブルTB1中の論理アドレス01と通信アドレス#1との対が論理アドレス0Xと通信アドレス#1との対に書き替えられる。また、上位ノード2の子ノードとしての登録が論理アドレス01と通信アドレス#1との対から、論理アドレス0Xと通信アドレス#1との対に書き替えられる。
この実施の形態2において、下位ノード3は、上位ノード2との間の親子関係の確立後(図23:ステップS417)、最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1を定期的に送信する。
ここで、下位ノード3には、上位ノード2において論理アドレス01が0Xに変更される前は、最上位ノード1から上位のノードの通信アドレスとして通信アドレス#1を含む上位ノードアドレス問い合わせ応答メッセージS2が返送されてくる(ステップS419)。
この場合、下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2中の通信アドレスが現在親ノードとして登録されている通信アドレス#1であることを確認し(ステップS422のYES)、所定時間の経過を待って(ステップS423)、最上位ノード1に対して上位ノードアドレス問い合わせメッセージS1を送信する、という動作を繰り返す。
これに対して、上位ノード2において論理アドレス01が0Xに変更されると、最上位ノード1からは上位のノードの通信アドレスがない旨を知らせる上位ノードアドレス問い合わせ応答メッセージS2が返送されてくる(ステップS419)。
この場合、下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2中に通信アドレスが存在しないことを確認し(ステップS421のNO)、上位ノード2との間の親子関係を解消する(ステップS425)。
そして、所定時間の経過を待って(ステップS426)、ステップS418へ戻り、最上位ノード1に対する上位ノードアドレス問い合わせメッセージS1を送信する。以降、同様にして、この最上位ノード1への上位ノードアドレス問い合わせメッセージS1の送信が繰り返される。
これにより、上位ノード2と下位ノード3との間の通信が中断され、従属関係が不一致の上位ノード2と下位ノード3との間で通信が続けられるということがなく、実施の形態1の問題点3が改善される。
〔問題点4の改善〕
図28に、実施の形態1の問題点4を説明した図21に対応する図として、実施の形態2において上位ノード2の通信アドレス#1が例えば#Xに変更された場合を示す。
この場合、上位ノード2は、通信アドレス#1が#Xに変更されると、通信アドレス01と変更された通信アドレス#Xを含む上位ノードアドレス問い合わせメッセージS1を最上位ノード1に対して送信する。これにより、図26を用いて説明した場合と同様にして、最上位ノード1において、テーブルTB1中の論理アドレス01と通信アドレス#1との対が論理アドレス01と通信アドレス#Xとの対に書き替えられる。また、上位ノード2の子ノードとしての登録が論理アドレス01と通信アドレス#1との対から、論理アドレス01と通信アドレス#Xとの対に書き替えられる。これにより、上位ノード2と最上位ノード1との間に新たな親子関係が確立され、上位ノード2と最上位ノード1との間の通信が続けられる。
この実施の形態2において、下位ノード3は、上位ノード2との間の親子関係の確立後(図23:ステップS417)、最上位ノード1に対して自ノードの論理アドレス01−01および通信アドレス#2を含む上位ノードアドレス問い合わせメッセージS1を定期的に送信する。
ここで、下位ノード3には、上位ノード2において論理アドレス01が0Xに変更される前は、最上位ノード1から上位のノードの通信アドレスとして通信アドレス#1を含む上位ノードアドレス問い合わせ応答メッセージS2が返送されてくる(ステップS419)。
この場合、下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2中の通信アドレスが現在親ノードとして登録されている通信アドレス#1であることを確認し(ステップS422のYES)、所定時間の経過を待って(ステップS423)、最上位ノード1に対して上位ノードアドレス問い合わせメッセージS1を送信する、という動作を繰り返す。
これに対して、上位ノード2において通信アドレス#1が#Xに変更されると、最上位ノード1からは上位のノードの通信アドレスとして「#X」を含む上位ノードアドレス問い合わせ応答メッセージS2が返送されてくる(ステップS419)。
この場合、下位ノード3は、最上位ノード1からの上位ノードアドレス問い合わせ応答メッセージS2中の通信アドレスが現在親ノードとして記憶されている通信アドレス#1と異なっていることを確認し(ステップS422のNO)、メッセージS2中の通信アドレス#Xを新たな親ノードの通信アドレスとして更新する(ステップS424)。
そして、その更新した通信アドレス#Xによって特定される上位ノード2に対して、自ノードの論理アドレス01−01および通信アドレス#2を含むバインド要求メッセージS3を送信する(ステップS412)。
上位ノード2は、下位ノード3からのバインド要求メッセージS3を受信すると(図7:ステップS301のYES)、このメッセージS3に含まれている論理アドレス01−01から、この論理アドレス01−01が属する上位の論理アドレスを「01」として特定し(ステップS302)、この特定した上位の論理アドレス01が自ノードの論理アドレスであることを確認し(ステップS303のYES)、メッセージS3中の通信アドレス#2を論理アドレス01−01と対として自己と通信を行う子ノードの通信アドレスとして記憶し(ステップS304)、下位ノード3に対してバインド応答メッセージS4を返送する(ステップS305)。これにより、下位ノード3と上位ノード2との間に新たな親子関係が確立され、下位ノード3と上位ノード2との間の通信が続けられる。
このようにして、上位ノード2において通信アドレスが変更されても、上位ノード2と最上位ノード1との間の通信が続けられ、また上位ノード2と下位ノード3との間の通信が続けられ、実施の形態1の問題点4が改善される。
図29に上位ノードアドレス問い合わせメッセージS1を送信してからバインド応答メッセージS4を受信するまでの実施の形態2における下位ノード3の機能ブロック図を示す。この下位ノード3と同様の機能を上位ノード2も有している。なお、同図において、図10と同一符号は図10を参照して説明した構成要素と同一或いは同等構成要素を示す。
下位ノード3は、アドレス記憶部3−1、上位ノードアドレス問い合わせメッセージ送信部3−2、上位ノード問い合わせ応答メッセージ受信部3−3、上位ノード通信アドレス取得部3−4、上位ノード通信アドレス記憶部3−5、バインド要求メッセージ送信部3−6およびバインド応答メッセージ受信部3−7に加え、親子関係解消部3−8と通信アドレス比較判定部3−9とを備えている。
この機能ブロック図において、上位ノード通信アドレス取得部3−4は、上位ノード問い合わせ応答メッセージ受信部3−3が受信した上位ノードアドレス問い合わせ応答メッセージS2に上位のノードの通信アドレスが含まれていない場合、親子関係解消部3−8に対して自ノードと上位のノードとの間の現在の親子関係の解消を指示する。
また、通信アドレス比較判定部3−9は、上位ノード通信アドレス取得部3−4が取得した上位のノードの通信アドレスと上位ノード通信アドレス記憶部3−5に記憶されている現在の親ノードの通信アドレスとを比較し、両者が一致していれば、上位ノードアドレス問い合わせメッセージ送信部3−2に対して上位ノードアドレス問い合わせメッセージS1の再送信を指示する。両者が一致していなければ、上位ノード通信アドレス取得部3−4が取得した上位のノードの通信アドレスを上位ノード通信アドレス記憶部3−5に新たな親ノードの通信アドレスとして更新記憶させると共に、バインド要求メッセージ送信部3−6に対してバインド要求メッセージS3の送信を指示する。
また、バインド応答メッセージ送信部3−7は、上位のノードからバインド応答メッセージS4を受信した場合、すなわち上位のノードから親子関係の確立の知らせを受けた場合、上位ノードアドレス問い合わせメッセージ送信部3−2に対して上位ノードアドレス問い合わせメッセージS1の定期的な送信を指示する。
また、上位ノードアドレス問い合わせメッセージ送信部3−2は、自ノードの起動時だけではなく、自ノードの論理アドレスが変更された場合や自ノードの通信アドレスが変更された場合にも上位ノードアドレス問い合わせメッセージS1を送信する。
この機能ブロック図において、アドレス記憶部3−1が本発明でいうアドレス記憶手段に相当し、上位ノードアドレス問い合わせメッセージ送信部3−2が上位ノードアドレス問い合わせ手段に相当し、上位ノード問い合わせ応答メッセージ受信部3−3,上位ノード通信アドレス取得部3−4,上位ノード通信アドレス記憶部3−5,バインド要求メッセージ送信部3−6,バインド応答メッセージ受信部3−7,親子関係解消部3−8および通信アドレス比較判定部3−9が親子関係確立要求手段に相当する。
なお、図29に図示していないが、アドレス記憶部3−1には最上位ノードの通信アドレスも記憶されている。
図30に上位ノードアドレス問い合わせメッセージS1を受信してから上位ノードアドレス問い合わせ応答メッセージS2を送信するまでの実施の形態2における最上位ノード1の機能ブロック図を示す。なお、同図において、図9と同一符号は図9を参照して説明した構成要素と同一或いは同等構成要素を示す。
最上位ノード1は、テーブルTB1、上位ノードアドレス問い合わせメッセージ受信部1−1、論理・通信アドレス取得部1−2、上位ノード論理アドレス特定部1−3、上位ノード通信アドレス取得部1−4および上位ノード問い合わせ応答メッセージ送信部1−5に加え、論理・通信アドレス変更確認部1−6を備えている。
論理・通信アドレス変更確認部1−6は、論理・通信アドレス取得部1−2が取得した論理アドレスおよび通信アドレスがテーブルTB1に書き込まれているか否かをチェックし、取得した論理アドレスおよび通信アドレスの何れか一方がテーブルTB1に書き込まれていれば、アドレスが変更されたと判断し、テーブルTB1に書き込まれているその論理アドレスと通信アドレスとの対を取得した論理アドレスと通信アドレスとの対に書き替える。また、取得した論理アドレスおよび通信アドレスの何れも書き込まれていなければ、取得した論理アドレスと通信アドレスとの対をテーブルTB1に追加する。
なお、この機能ブロックにおいて、上位ノードアドレス問い合わせメッセージ受信部1−1,論理・通信アドレス取得部1−2,論理通信アドレス変更確認部1−6およびテーブルTB1が本発明でいう論理通信アドレス記憶手段に相当し、上位ノード論理アドレス特定部1−3および上位ノード通信アドレス取得部1−4が上位ノードアドレス検索手段に相当し、上位ノード問い合わせメッセージ送信部1−5が上位ノードアドレス問い合わせ応答手段に相当する。