(57)【特許請求の範囲】
【請求項１】
少なくとも３以上のノードを含むネットワークにおいてデータの中継を行う第１の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第２の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、
前記第１の中継装置が、前記ネットワークに含まれるノード群に対して、当該第１の中継装置の装置識別情報を含む第１のパケットを送信し、
各々の前記第２の中継装置が、前記複数のポートのいずれかのポートが前記第１のパケットを受信すると、当該第１のパケットを受信したポートのポート識別情報と、自装置の装置識別情報とを含む第２のパケットを当該ポートから前記第１の中継装置に宛てて送信し、
前記第１の中継装置が、前記第２のパケットの送信元である前記第２の中継装置に対して、当該第２の中継装置のどのポートに他の前記第２の中継装置が繋がっているかを問い合わせる第３のパケットを送信し、
各々の前記第２の中継装置が、前記第３のパケットを受信すると、他の前記第２の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第４のパケットを、前記第１の中継装置に宛てて送信し、
前記第１の中継装置が、受信した前記第２のパケットおよび前記第４のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、前記ネットワークに属する前記第２の中継装置の装置識別情報と、各々の前記第２の中継装置において他の第２の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出する
ことを特徴とするトポロジ検出システム。
【請求項２】
少なくとも３以上のノードを含むネットワークにおいてデータの中継を行う第１の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第２の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、
前記第１の中継装置が、前記ネットワークに含まれるノード群に対して、当該第１の中継装置の装置識別情報を含む第１のパケットを送信し、
各々の前記第２の中継装置が、前記複数のポートのいずれかのポートが前記第１のパケットを受信すると、当該第１のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と、自装置の装置識別情報とを含む第２のパケットを、前記アップリンクポートから前記第１の中継装置に宛てて送信し、他の前記第２の中継装置から送信された当該第２のパケットを受信した場合には、当該第２のパケットを前記第１の中継装置に宛てて転送し、
前記第１の中継装置が、各々の前記第２の中継装置から送信又は転送されてくる前記第２のパケットを受信し、
前記第１の中継装置が、前記第２のパケットの送信元である前記第２の中継装置に対して、当該第２の中継装置のどのポートに他の前記第２の中継装置が繋がっているかを問い合わせる第３のパケットを送信し、
各々の前記第２の中継装置が、前記第３のパケットを受信すると、他の前記第２の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第４のパケットを、前記第１の中継装置に宛てて送信し、
前記第１の中継装置が、受信した前記第２のパケットおよび前記第４のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第２の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第２の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、
前記第１の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークに属する前記第２の中継装置の装置識別情報と、各々の前記第２の中継装置において他の第２の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出する
ことを特徴とするトポロジ検出システム。
【請求項３】
前記第１の中継装置が物理トポロジを検出する場合に、
前記装置識別情報及び前記ポート識別情報に基づいて、
前記第１のパケットを受信したポート以外のポートに他の全ての第２の中継装置が繋がっている第２の中継装置が属する階層が、前記第１の中継装置を除いて前記ネットワークにおける最上位層であることを特定し、
前記最上位層に属すると特定された第２の中継装置以外の第２の中継装置が属する階層を最上位層から１つ下の層であると仮定した後に、他の第２の中継装置が有する前記第１のパケットを受信したポート以外のポートに自身が繋がっている第２の中継装置を検出し、当該第２の中継装置が属する階層を１つ下げていくことで、各々の第２の中継装置が属する階層を特定し、
各々の前記第２の中継装置について特定した階層を用いて物理トポロジを検出する
ことを特徴とする請求項１記載のトポロジ検出システム。
【請求項４】
前記第１の中継装置は、ＯＳＩ（Open  Systems  Interconnection）参照モデルの第１層である物理層から第３層であるネットワーク層までの階層において複数のネットワークを論理的に接続してデータの中継を行う中継装置であり、
前記第２の中継装置は、ＯＳＩ参照モデルの第１層である物理層から第２層であるデータリンク層までの階層において複数のノードを論理的に接続してデータの中継を行う中継装置であり、
前記第２の中継装置の装置識別情報は、当該第２の中継装置に割り当てられたＭＡＣ（Media  Access  Control）アドレスである
ことを特徴とする請求項１〜３のいずれかに記載のトポロジ検出システム。
【請求項５】
ネットワークにおいてデータの中継を行う中継装置であって、
自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第１の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第２の要求手段と、
前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、
前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項６】
ネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、
前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードからの当該要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を当該要求ノードに送信する第１の応答手段と、
前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該ポート識別情報をいずれかの前記ポートから前記要求ノードに転送する転送手段と、
前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段と
を備える中継装置。
【請求項７】
ネットワークにおいてデータの中継を行う中継装置であって、
自装置が接続するネットワークに含まれ且つ複数のポートを各々が有するノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、
前記要求手段による要求に対する応答を受信する受信手段と、
前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、
前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備え、
前記トポロジ検出手段が、
前記記憶手段に記憶されている内容を参照して、
前記ノードが有する複数のポートのうち前記要求を受信したポートをアップリンクポートとし、当該アップリンクポート以外のポートに他の全てのノードが繋がっているノードが属する階層が、自装置を除いて前記ネットワークにおける最上位層であることを特定し、
前記最上位層に属すると特定されたノード以外のノードが属する階層を最上位層から１つ下の層であると仮定した後に、他のノードが有する前記アップリンクポート以外のポートに自身が繋がっているノードを検出し、当該ノードが属する階層を１つ下げていくことで、各々のノードが属する階層を特定し、
各々の前記ノードについて特定した階層を用いて物理トポロジを検出する
中継装置。
【請求項８】
ネットワークにおいてデータの中継を行う中継装置であって、
自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第２の要求手段と、
前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、
前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項９】
ネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードから、自装置において当該要求ノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記要求ノードに送信する第１の応答手段と、
前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、
前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段と
を備える中継装置。
【請求項１０】
ネットワークにおいてデータの中継を行う中継装置のコンピュータを、
自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第１の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第２の要求手段と、
前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、
前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段
として機能させるためのプログラム。
【請求項１１】
ネットワークにおいてデータの中継を行う中継装置のコンピュータを、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、
前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードからの当該要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を当該要求ノードに送信する第１の応答手段と、
前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該ポート識別情報をいずれかの前記ポートから前記要求ノードに転送する転送手段と、
前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段
として機能させるためのプログラム。
【請求項１２】
ネットワークにおいてデータの中継を行う中継装置のコンピュータを、
自装置が接続するネットワークに含まれ且つ複数のポートを各々が有するノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、
前記要求手段による要求に対する応答を受信する受信手段と、
前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、
前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段
として機能させ、
前記トポロジ検出手段が、
前記記憶手段に記憶されている内容を参照して、
前記ノードが有する複数のポートのうち前記要求を受信したポートをアップリンクポートとし、当該アップリンクポート以外のポートに他の全てのノードが繋がっているノードが属する階層が、自装置を除いて前記ネットワークにおける最上位層であることを特定し、
前記最上位層に属すると特定されたノード以外のノードが属する階層を最上位層から１つ下の層であると仮定した後に、他のノードが有する前記アップリンクポート以外のポートに自身が繋がっているノードを検出し、当該ノードが属する階層を１つ下げていくことで、各々のノードが属する階層を特定し、
各々の前記ノードについて特定した階層を用いて物理トポロジを検出する
プログラム。
【請求項１３】
ネットワークにおいてデータの中継を行う中継装置のコンピュータを、
自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第２の要求手段と、
前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、
前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段
として機能させるためのプログラム。
【請求項１４】
ネットワークにおいてデータの中継を行う中継装置のコンピュータを、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードから、自装置において当該要求ノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記要求ノードに送信する第１の応答手段と、
前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、
前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおける物理トポロジを検出する技術に関する。
【背景技術】
【０００２】
ネットワークを構成する各ノードの接続形態をトポロジという。トポロジには、物理的な接続形態を指す物理トポロジと、論理的な接続形態を指す論理トポロジとがある。例えば特許文献１には、ネットワークに含まれるノード間の通信記録を参照して物理トポロジを検出する技術が開示されている。また、特許文献２には、ネットワークに含まれるノード単位だけでなく、各ノードを接続するポート単位に注目して、物理トポロジを検出する技術が開示されている。特許文献３には、無通信状態が一定時間以上続くノードがあってもトポロジ検出を可能にするため、ルータから中継装置に応答要求を送信し、当該中継装置のアドレス情報が時間経過により消滅する前に当該中継装置からアドレス情報を収集して物理トポロジを検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−１８６７１６号公報
【特許文献２】特開２００８−１７２４４９号公報
【特許文献３】特開２００７−２２８３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークにおけるトポロジを検出するためには、その検出のために必要なデータをノード間で遣り取りする必要があるが、ネットワークの通信トラヒックを最小限に抑えることが望ましい。特許文献１に開示された技術では、ＳＮＭＰ(Simple Network Management Protocol)を用いてノードの物理アドレスを取得し、当該物理アドレスに基づいて、ＳＴＰ(Spanning Tree Protocol)を用いて物理トポロジを検出するようになっている。特許文献２に開示された技術では、イーサネット（登録商標）のＯＡＭ（Operations, Administration, Maintenance）フレームのトレース要求／トレース応答を用いて装置の物理ト
ポロジおよび当該装置のポートトポロジを検出するようになっている。したがって、特許文献１あるいは特許文献２に開示された技術を実現するためには、上述のＳＮＭＰやＳＴＰのようなプロトコルを実装し、運用するためのコストが必要となる。特許文献３に開示された技術によれば、特許文献１、特許文献２に開示された技術に比べて、トポロジを検出するための演算処理の負荷やコストは軽減される。しかし、特許文献３に開示された技術では、トポロジ情報としてＭＡＣ（Media Access Control）アドレステーブル全体を送る必要があるから、スイッチが大容量のテーブルを保持している場合には、ネットワークにおいてトラヒックが増大する影響が大きい。
【０００５】
本発明は、ネットワークにおける物理トポロジの検出を少ない演算量及びトラヒック量で実現することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明は、少なくとも３以上のノードを含むネットワークにおいてデータの中継を行う第１の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第２の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、前記第１の中継装置が、前記ネットワークに含まれるノード群に対して、当該第１の中継装置の装置識別情報を含む第１のパケットを送信し、各々の前記第２の中継装置が、前記複数のポートのいずれかのポートが前記第１のパケットを受信すると、当該第１のパケットを受信したポートのポート識別情報と、自装置の装置識別情報とを含む第２のパケットを当該ポートから前記第１の中継装置に宛てて送信し、前記第１の中継装置が、前記第２のパケットの送信元である前記第２の中継装置に対して、当該第２の中継装置のどのポートに他の前記第２の中継装置が繋がっているかを問い合わせる第３のパケットを送信し、各々の前記第２の中継装置が、前記第３のパケットを受信すると、他の前記第２の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第４のパケットを、前記第１の中継装置に宛てて送信し、前記第１の中継装置が、受信した前記第２のパケットおよび前記第４のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、前記ネットワークに属する前記第２の中継装置の装置識別情報と、各々の前記第２の中継装置において他の第２の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出することを特徴とするトポロジ検出システムを提供する。
また、本発明は、少なくとも３以上のノードを含むネットワークにおいてデータの中継を行う第１の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第２の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、前記第１の中継装置が、前記ネットワークに含まれるノード群に対して、当該第１の中継装置の装置識別情報を含む第１のパケットを送信し、各々の前記第２の中継装置が、前記複数のポートのいずれかのポートが前記第１のパケットを受信すると、当該第１のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と、自装置の装置識別情報とを含む第２のパケットを、前記アップリンクポートから前記第１の中継装置に宛てて送信し、他の前記第２の中継装置から送信された当該第２のパケットを受信した場合には、当該第２のパケットを前記第１の中継装置に宛てて転送し、前記第１の中継装置が、各々の前記第２の中継装置から送信又は転送されてくる前記第２のパケットを受信し、前記第１の中継装置が、前記第２のパケットの送信元である前記第２の中継装置に対して、当該第２の中継装置のどのポートに他の前記第２の中継装置が繋がっているかを問い合わせる第３のパケットを送信し、各々の前記第２の中継装置が、前記第３のパケットを受信すると、他の前記第２の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第４のパケットを、前記第１の中継装置に宛てて送信し、前記第１の中継装置が、受信した前記第２のパケットおよび前記第４のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第２の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第２の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、前記第１の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークに属する前記第２の中継装置の装置識別情報と、各々の前記第２の中継装置において他の第２の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出することを特徴とするトポロジ検出システムを提供する。
【０００８】
好ましい態様において、前記第１の中継装置が物理トポロジを検出する場合に、前記装置識別情報及び前記ポート識別情報に基づいて、前記第１のパケットを受信したポート以外のポートに他の全ての第２の中継装置が繋がっている第２の中継装置が属する階層が、前記第１の中継装置を除いて前記ネットワークにおける最上位層であることを特定し、前記最上位層に属すると特定された第２の中継装置以外の第２の中継装置が属する階層を最上位層から１つ下の層であると仮定した後に、他の第２の中継装置が有する前記第１のパケットを受信したポート以外のポートに自身が繋がっている第２の中継装置を検出し、当該第２の中継装置が属する階層を１つ下げていくことで、各々の第２の中継装置が属する階層を特定し、各々の前記第２の中継装置について特定した階層を用いて物理トポロジを検出するようにしてもよい。
【０００９】
また、別の好ましい態様において、前記第１の中継装置は、ＯＳＩ（Open Systems Interconnection）参照モデルの第１層である物理層から第３層であるネットワーク層までの階層において複数のネットワークを論理的に接続してデータの中継を行う中継装置であり、前記第２の中継装置は、ＯＳＩ参照モデルの第１層である物理層から第２層であるデータリンク層までの階層において複数のノードを論理的に接続してデータの中継を行う中継装置であり、前記第２の中継装置の装置識別情報は、当該第２の中継装置に割り当てられたＭＡＣ（Media Access Control）アドレスであってもよい。
【００１０】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置であって、自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第１の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第２の要求手段と、前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
【００１１】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードからの当該要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を当該要求ノードに送信する第１の応答手段と、前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該ポート識別情報をいずれかの前記ポートから前記要求ノードに転送する転送手段と、前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段とを備える中継装置を提供する。
【００１２】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置であって、自装置が接続するネットワークに含まれ且つ複数のポートを各々が有するノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、前記要求手段による要求に対する応答を受信する受信手段と、前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備え、前記トポロジ検出手段が、前記記憶手段に記憶されている内容を参照して、前記ノードが有する複数のポートのうち前記要求を受信したポートをアップリンクポートとし、当該アップリンクポート以外のポートに他の全てのノードが繋がっているノードが属する階層が、自装置を除いて前記ネットワークにおける最上位層であることを特定し、前記最上位層に属すると特定されたノード以外のノードが属する階層を最上位層から１つ下の層であると仮定した後に、他のノードが有する前記アップリンクポート以外のポートに自身が繋がっているノードを検出し、当該ノードが属する階層を１つ下げていくことで、各々のノードが属する階層を特定し、各々の前記ノードについて特定した階層を用いて物理トポロジを検出する中継装置を提供する。
【００１４】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置であって、自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第２の要求手段と、前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
【００１５】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードから、自装置において当該要求ノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記要求ノードに送信する第１の応答手段と、前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段とを備える中継装置を提供する。
【００１６】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置のコンピュータを、自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第１の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第２の要求手段と、前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段として機能させるためのプログラムを提供する。
【００１７】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置のコンピュータを、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードからの当該要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を当該要求ノードに送信する第１の応答手段と、前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該ポート識別情報をいずれかの前記ポートから前記要求ノードに転送する転送手段と、前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段として機能させるためのプログラムを提供する。
【００１８】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置のコンピュータを、自装置が接続するネットワークに含まれ且つ複数のポートを各々が有するノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、前記要求手段による要求に対する応答を受信する受信手段と、前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段として機能させ、前記トポロジ検出手段が、前記記憶手段に記憶されている内容を参照して、前記ノードが有する複数のポートのうち前記要求を受信したポートをアップリンクポートとし、当該アップリンクポート以外のポートに他の全てのノードが繋がっているノードが属する階層が、自装置を除いて前記ネットワークにおける最上位層であることを特定し、前記最上位層に属すると特定されたノード以外のノードが属する階層を最上位層から１つ下の層であると仮定した後に、他のノードが有する前記アップリンクポート以外のポートに自身が繋がっているノードを検出し、当該ノードが属する階層を１つ下げていくことで、各々のノードが属する階層を特定し、各々の前記ノードについて特定した階層を用いて物理トポロジを検出するプログラムを提供する。
【００２０】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置のコンピュータを、自装置が接続するネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第１の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第１の取得手段と、前記第１の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第２の要求手段と、前記第２の要求手段による要求に応じて送信されてくる応答から、前記第１の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第２の取得手段と、前記第２の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ネットワークに属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段として機能させるためのプログラムを提供する。
【００２１】
また、本発明は、ネットワークにおいてデータの中継を行う中継装置のコンピュータを、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ネットワークにおいて自ノードに繋がっているポートのポート識別情報を要求してくる要求ノードから、自装置において当該要求ノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記要求ノードに送信する第１の応答手段と、前記要求ノードからの前記要求に応答して前記他のノードから当該要求ノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、前記要求ノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報をいずれかの前記ポートから前記要求ノードに送信する第２の応答手段として機能させるためのプログラムを提供する。
【発明の効果】
【００２２】
本発明によれば、ネットワークにおける物理トポロジを少ない演算量およびトラヒック量で検出することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態に係る通信システムの構成を示すブロック図である。
【図２】ルータの構成を示すブロック図である。
【図３】スイッチングハブの構成を示すブロック図である。
【図４】通信システムの動作を説明するシーケンス図である。
【図５】装置接続情報テーブルの内容の一例を示す図である。
【図６】階層推定テーブルの内容の一例を示す図である。
【図７】階層推定テーブルの内容の一例を示す図である。
【図８】階層推定テーブルの内容の一例を示す図である。
【図９】第２実施形態に係る通信システムの動作を示すシーケンス図である。
【図１０】トポロジ検出用パケットの概略構成を示す図である。
【図１１】変形例に係る装置接続情報テーブルの内容の一例を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の一実施形態について説明する。
＜第１実施形態＞
図１は、本発明の第１実施形態に係る通信システムの構成を示すブロック図である。通信システムは、少なくとも３以上のノードを含むツリー構造のネットワークであり、ルートに相当するノードとしてデータの中継を行う第１の中継装置であるルータ１０と、そのルータ１０の配下に接続され、このネットワーク内でデータの中継を行う第２の中継装置であるスイッチングハブＡ，Ｂ，Ｃ，Ｄとを備えている。ルータ１０及びスイッチングハブＡ，Ｂ，Ｃ，Ｄは、それぞれ複数のポートＰを備えており、これらのポートＰどうしの間が通信線によって接続されている。また、各々のスイッチングハブＡ，Ｂ，Ｃ，ＤのポートＰには、ユーザによって操作されるパーソナルコンピュータなどの通信端末（図示略）も接続されている。なお、ポートＰに付された番号は、そのポートに割り当てられたポート識別情報であるポート番号を意味している。
【００２５】
ルータ１０は、ＯＳＩ（Open Systems Interconnection）参照モデルの第１層である物理層から第３層であるネットワーク層までの階層において複数のネットワークを論理的に接続してルーティングを行う中継装置である。このルータ１０は、他のネットワークから送信されてくるパケットを受信すると、ルーティングテーブルを参照してルーティング処理を行う。即ち、ルータ１０は、このパケットが自身の配下に構成されているネットワーク（自ネットワークという）に含まれる通信端末宛てのパケットである場合には、そのパケットを自ネットワークに送出する一方、このパケットが自ネットワークに含まれる通信端末宛てのパケットではない場合には、ルータ１０は、ルーティングテーブルを参照して、このパケットを他のネットワークに転送する。
【００２６】
スイッチングハブＡ，Ｂ，Ｃ，Ｄは、ＯＳＩ参照モデルの第１層である物理層から第２層であるデータリンク層までの階層において複数のノードを論理的に接続してルーティングを行う中継装置である。これらのスイッチングハブＡ，Ｂ，Ｃ，Ｄは、他のノードから送信されてくるパケットを受信すると、自身が記憶しているＭＡＣ（Media Access Control）アドレステーブルを参照してスイッチング処理を行う。ＭＡＣアドレステーブルは、各々のノードが有するポートのポート番号と、そのポートに繋がっている他のノードのＭＡＣアドレスとの対応関係を表わしたものである。スイッチングハブＡ，Ｂ，Ｃ，Ｄは、受信したパケットの宛先に相当するＭＡＣアドレスに対応するポートから、そのパケット
を送出する。つまり、スイッチングハブＡ，Ｂ，Ｃ，Ｄは、自身が有する複数のポートのいずれかによってパケットを受信し、また、自身が有する複数のポートのいずれかによってパケットを送信する。
【００２７】
図２は、ルータ１０の構成を示すブロック図である。ルータ１０は、制御部１１、揮発性記憶部１２、不揮発性記憶部１３、ｎ（ｎは２以上の整数）個のポート１４―１，１４―２・・・１４―ｎ（図１のポートＰに相当）及びＵＩ（User Interface）部１５を備えている。制御部１１は、ＣＰＵ（Central Processing Unit）やＡＳＩＣ（Application Specific Integrated Circuit）によって構成されており、このルータ１０の動作を制御する。揮発性記憶部１２は、制御部１１のＣＰＵがプログラムを実行する際のワークエリアとなり、例えば制御部１１が自ネットワークの物理トポロジを検出するために用いる装置接続情報テーブルや階層推定テーブル、およびルーティングテーブルなどを記憶する。不揮発性記憶部１３は、例えばフラッシュメモリであり、制御部１１のＣＰＵが実行するプログラム、およびこのルータ１０に割り当てられた装置識別情報であるＭＡＣアドレスなどを記憶している。ポート１４―１，１４―２・・・１４―ｎは、他のノードとの間で通信を行うインタフェースであり、例えばイーサネット（登録商標）ポートなどである。ＵＩ部１５は、操作キーやＬＥＤインジケータなどを備えている。
【００２８】
図３は、スイッチングハブＡの構成を示すブロック図である。このスイッチングハブＡは、制御部２１、揮発性記憶部２２、不揮発性記憶部２３、及び、ｍ（ｍは２以上の整数）個のポート２４―１，２４―２・・・２４―ｍ（図１のポートＰに相当）を備えている。制御部２１は、ＣＰＵやＡＳＩＣによって構成されており、このスイッチングハブＡの動作を制御する。揮発性記憶部２２は、制御部２１のＣＰＵがプログラムを実行する際のワークエリアとなり、例えばＭＡＣアドレステーブルを記憶する。不揮発性記憶部２３は、例えばフラッシュメモリであり、制御部２１のＣＰＵが実行するプログラム、およびこのスイッチングハブＡに割り当てられた装置識別情報であるＭＡＣアドレスを記憶している。ＭＡＣアドレステーブルには、スイッチングハブＡが有する各ポート２４―１，２４―２・・・２４―ｍのポート番号と、これらのポートに繋がっている各ノードのＭＡＣアドレスとが対応付けられて記述されている。ポート２４―１，２４―２・・・２４―ｍは、他のノードと通信を行うインタフェースであり、例えばイーサネットポートである。
スイッチングハブＢ，Ｃ，Ｄの構成は、ＭＡＣアドレス及びＭＡＣアドレステーブルの内容を除いて、スイッチングハブＡの構成と同じである。
【００２９】
本実施形態においては、第１〜第４のパケットと呼ばれるパケットが用いられる。これらの各パケットの意義は後述するとして、まず、その構成について説明する。図１０に、第１〜第４のパケットの構成の概略を示す。第１〜第４のパケットは同じ構成を有しており、ヘッダ部とペイロード部に分けられる。ヘッダ部は、当該パケットの送信先である「宛先ＭＡＣアドレス」、当該パケットの発信元である「送信元ＭＡＣアドレス」、および当該パケットがどのような種類の情報であるかを示す「タイプ」とから構成される。ペイロード部には、当該パケットが第１〜第４のパケットのうちどの種別のパケットであるかを示す「パケット種別」と、各パケット種別に応じて必要な「通知データ」とが含まれる。第１の中継装置に相当するルータ１０および第２の中継装置に相当するスイッチングハブＡ，Ｂ，Ｃ，Ｄは、自ら送信するパケットが第１〜第４のパケットのいずれかであるときは、当該パケットがトポロジ検出用のものである旨を示す値（例えば、１６進数の0xe812）をヘッダ部の「タイプ」に設定する。また、第１の中継装置に相当するルータ１０および第２の中継装置に相当するスイッチングハブＡ，Ｂ，Ｃ，Ｄは、第１のパケット、第２のパケット、第３のパケット、第４のパケットに対して、各々のペイロード部の「パケット種別」をそれぞれ１、２、３、４に設定し、その後に続けて、パケットの種別に応じて必要な通知データを設定する。第１の中継装置に相当するルータ１０および第２の中継装置に相当するスイッチングハブＡ，Ｂ，Ｃ，Ｄは、他の中継装置からパケットを受信し
たときは、ヘッダ部の「タイプ」に設定された値により当該パケットがトポロジ検出用のものであるか否かを判断し、当該パケットがトポロジ検出用のパケットであった場合は、ペイロード部の「パケット種別」に設定された値によって第１〜第４のパケットのいずれであるかを識別する。
なお、第１の中継装置に相当するルータ１０および第２の中継装置に相当するスイッチングハブＡ，Ｂ，Ｃ，Ｄ以外のノード（たとえばユーザによって操作されるパーソナルコンピュータ等の通信端末）は、トポロジ検出用のものである旨を示す値がヘッダ部の「タイプ」に設定されているパケットを無視するものとする。
【００３０】
図４は、通信システムの動作を示すシーケンス図である。図４の処理は、ルータ１０の制御部１１（第１の要求手段）が自ネットワークのノード群に対し、各ノードにおいてルータ１０に繋がっているポートを検出するためのリクエストパケット（第１のパケット）を同報送信することで開始される（ステップＳ１０１）。このリクエストパケットは、ルータ１０の配下のネットワークに含まれるスイッチングハブ群に対して、当該スイッチングハブにおいてルータ１０に繋がっているポートのポート識別情報および当該スイッチングハブの装置識別情報を要求するものである。リクエストパケットのペイロード部において「パケット種別」は「１」となる。ここで、或るノードがポートに繋がるとは、そのノードとそのポートとの間に他のノードが介在せずに両者が通信線によって直接繋がっている場合のほか、そのノードとそのポートとの間に他のノードが介在して両者が繋がっている場合をも含む（以下において同じ）。この同報送信は、いわゆるブロードキャスト、あるいは、各スイッチングハブＡ，Ｂ，Ｃ，Ｄが受信することができるマルチキャストによって実現され、リクエストパケットのヘッダには、送信元であるルータ１０のＭＡＣアドレスが記述されている。このリクエストパケットが同報送信されるタイミングは、例えば定期的なタイミングや、ユーザがＵＩ部１５を操作して相互認識フェーズの開始を指示したタイミングなどである。
【００３１】
各々のスイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、このリクエストパケットをいずれかのポートが受信すると、そのポート以外のポートから他のスイッチングハブへとこのパケットを転送することで、それぞれのスイッチングハブＡ，Ｂ，Ｃ，Ｄにリクエストパケットが行き渡ることになる。なお、リクエストパケットにおいて、当該パケットがリクエストパケットであることが分かればよいので、そのペイロード部の「通知データ」は使用されない。このため、通知データは例えば「０」としておく。あるいは、通知データを送信すること自体を行わない、つまりペイロード部に通知データが含まれないという態様であってもよい。
【００３２】
各々のスイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、中継装置や通信端末等の他のノードからパケットを受信すると、当該パケットの送信元のＭＡＣアドレスを、このパケットを受信したポートのポート番号と対応付けて、自身のＭＡＣアドレステーブルに記述する。図１のような接続形態においてルータ１０からリクエストパケットを受信した場合は、各々のスイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、ポート番号「１」と、ルータ１０のＭＡＣアドレスとを対応付けてＭＡＣアドレステーブルに記述することになる（ステップＳ１０２）。
【００３３】
次に、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、リクエストパケットのペイロード部からパケット種別に設定されている値（ここでは「１」）を読み取り、受信したパケットが、ルータ１０に繋がっているポートを検出するためのリクエストパケットであることを検出する（ステップＳ１０３）。各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１（第１の応答手段）は、リクエストパケットを検出すると、自身のＭＡＣアドレステーブルを参照し、当該リクエストパケットの受信に応じてＭＡＣアドレステーブルに記述された、ルータ１０のＭＡＣアドレスに対応付けられているポート番号を、スイッチングハ
ブに対してルータ１０が繋がっているポート（アップリンクポート）のポート番号として特定し、そのポート番号と自身のＭＡＣアドレスとを含む応答パケット（第２のパケット）をルータ１０宛に送信する（ステップＳ１０４）。すなわち、応答パケット（第２のパケット）のペイロード部において、「パケット種別」が「２」、「通知データ」がアップリンクポートのポート番号、「送信元ＭＡＣアドレス」が各スイッチングハブＡ，Ｂ，Ｃ，ＤのＭＡＣアドレスとなる。そして、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、他のスイッチングハブから応答パケットを受信した場合には、当該応答パケットのヘッダ部において送信元のＭＡＣアドレスとして記述されている他のスイッチングハブのＭＡＣアドレスと、当該応答パケットを受信したポートのポート番号の情報とを自身のＭＡＣアドレステーブルに登録して、受信した応答パケットをルータ１０に宛てて転送する。
【００３４】
ルータ１０の制御部１１は、各スイッチングハブＡ，Ｂ，Ｃ，Ｄから送信された応答パケットのペイロード部からパケット種別の値（ここでは「２」）を読み取り、これにより、受信したパケットがスイッチングハブＡ，Ｂ，Ｃ，Ｄから送信された応答パケットであることを検出する。ルータ１０の制御部１１（第１の取得手段）は、当該応答パケットを受け取ることでアップリンクポートのポート番号および各スイッチングハブのＭＡＣアドレスを取得し、各々のスイッチングハブの存在を認識する（ステップＳ１０５）。ルータ１０の制御部１１は、この認識結果に基づいて装置接続情報テーブルを生成する。図５は、ルータ１０の制御部１１が生成した装置接続情報テーブルの内容を示す図である。各スイッチングハブＡ，Ｂ，Ｃ，Ｄのアップリンクポートのポート番号は「１」である。図５の最上段の欄に示す、ルータ１０に対応するレコードにおいて、各スイッチングハブＡ，Ｂ，Ｃ，ＤのＭＡＣアドレスに対応する「１」は、ルータ１０から見たときの各スイッチが接続されているポート番号を意味している。この時点では、図５の最上段と最左列の欄の内容のみが制御部１１によって記述される。
【００３５】
次に、ルータ１０の制御部１１（第２の要求手段）は、応答パケットの送信元である各スイッチングハブＡ，Ｂ，Ｃ，Ｄに対し、他のスイッチングハブがどのポートに繋がっているのかを問い合わせる問い合わせパケット（第３のパケット）を各スイッチングハブＡ，Ｂ，Ｃ，Ｄに宛ててそれぞれ送信する（ステップＳ１０６）。この問い合わせパケットは、ステップＳ１０５にて取得したＭＡＣアドレスによって識別される各々のスイッチングハブに対して、ステップＳ１０５に取得した他のＭＡＣアドレスのスイッチングハブと繋がっているポートのポート識別情報を要求するものである。問合せパケットのペイロード部において、「パケット種別」は「３」である。ペイロード部の「通知データ」は問い合わせの対象となる他のスイッチングハブのＭＡＣアドレスが設定される。例えば、図４の例の場合、スイッチングハブＡ，Ｂ，Ｃ，Ｄが応答パケットを返してきたとして、ルータ１０の制御部１１は、まず、スイッチングハブＡに対しては、スイッチングハブＢがスイッチングハブＡのどのポートに繋がっているか、スイッチングハブＣがスイッチングハブＡのどのポートに繋がっているか、および、スイッチングハブＤがスイッチングハブＡのどのポートに繋がっているか、を問い合わせることになる。同様に、ルータ１０の制御部１１は、スイッチングハブＢ〜Ｄに対しても問い合わせを行う。
【００３６】
各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、ルータ１０から送信された問い合わせパケットのペイロード部から、パケット種別の値（「３」）を読み取り、これにより、受信したパケットが、他のスイッチングハブがどのポートに繋がっているのかを問い合わせる問い合わせパケットであることを検出する。各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１（第２の応答手段）は、問い合わせパケットを受信すると、自身のＭＡＣアドレステーブルを参照し、「通知データ」に設定されたＭＡＣアドレスに該当する他のスイッチングハブが接続されているポートのポート番号を含む回答パケット（第４のパケット）をルータ１０宛に送信する（ステップＳ１０７）。この回答パケットのペイロード部においては、「パケット種別」が「４」であり、「通知データ」は、上記ＭＡＣアドレステ
ーブルから取り出した他のスイッチングハブが接続されているポート番号となる。このとき、各スイッチングハブの制御部２１（転送手段）は、他のスイッチングハブから回答パケットを受信すると、これを、その宛先であるルータ１０に転送する。
【００３７】
ルータ１０の制御部１１は、各スイッチングハブＡ，Ｂ，Ｃ，Ｄから送信された回答パケットのペイロード部からパケット種別の値（「４」）を読み取り、受信したパケットがスイッチングハブＡ，Ｂ，Ｃ，Ｄから送信された回答パケットであることを検出する。ルータ１０の制御部１１（第２の取得手段）は、これらの回答パケットのペイロード部の「通知データ」に格納されたポート番号を取得する。さらに、ルータ１０の制御部１１（第２の取得手段）は、当該回答パケットに対応する問い合わせパケット（第３のパケット）においてその通知データに設定していたＭＡＣアドレスを取得する。このように、ルータ１０の制御部１１は、問い合わせパケットに用いたＭＡＣアドレスと、その問い合わせパケットに対する回答パケットに含まれるポート番号との組合せにより、問い合わせ先のスイッチングハブのどのポートに他のスイッチングハブが繋がっているかを知り、自ネットワーク内の全スイッチングハブに関する装置接続情報テーブルを生成する（ステップＳ１０８）。制御部１１は装置接続情報テーブルを生成すると、これを揮発性記憶部１２に記憶する。
【００３８】
このようにして生成された装置接続情報テーブルを例示したものが図５である。図５において、各スイッチングハブＡ，Ｂ，Ｃ，Ｄに対応するレコードにおいて、ルータ１０のＭＡＣアドレス欄に示されたポート番号（本実施形態においては、全て「１」）が各々のアップリンクポートである。次に、図５の上から２段目の、スイッチングハブＡに対応するレコードに注目する。このレコードにおいて、ルータ１０のＭＡＣアドレスに対応する「１」は、スイッチングハブＡのポート番号１のポートにルータ１０が繋がっていることを意味している。また、スイッチングハブＢのＭＡＣアドレスに対応する「２」は、スイッチングハブＡのポート番号２のポートにスイッチングハブＢが繋がっていることを意味している。これは、スイッチングハブＡにおいて、スイッチングハブＢのＭＡＣアドレスを送信元又は転送元として含む応答パケットを受け取ったポートのポート番号によって特定することができる。同様に、スイッチングハブＣのＭＡＣアドレスに対応する「３」は、スイッチングハブＡのポート番号３のポートにスイッチングハブＣが繋がっていることを意味している。そして、スイッチングハブＤのＭＡＣアドレスに対応する「２」は、スイッチングハブＡのポート番号２のポートにスイッチングハブＤが繋がっていることを意味している。図５の上から３段目以降のレコードについても上記と同様の考え方に従って作成されている。ただし、スイッチングハブＣに対応するレコードにおいて、スイッチングハブＡ，Ｂ，ＤのＭＡＣアドレスに対応して「１」が記述されているのは、スイッチングハブＣから見て、ポート番号１のポートの延長上にこれらスイッチングハブＡ，Ｂ，Ｄが繋がっているということを意味している。
【００３９】
再び図４の説明に戻る。ルータ１０の制御部１１は、装置接続情報テーブルを参照して、自ネットワークのツリー構造において、各スイッチングハブＡ，Ｂ，Ｃ，Ｄが属する階層を推定する(ステップＳ１０９)。ここで、階層とは、ルータ１０から見て、ルータ１０と各スイッチングハブとの間に存在するスイッチングハブの個数によって表される。
【００４０】
図６は、ルータ１０の制御部１１が生成する階層推定テーブルの内容を示す図である。まず、ルータ１０の制御部１１は、全てのスイッチングハブの階層を０に設定する。
【００４１】
次に、図５を参照すると分かるように、スイッチングハブＡに対応するレコードにおいて、スイッチングハブＡのポート番号「２」、「３」のポート（つまりアップリンクポート以外のポート）に、スイッチングハブＢ，Ｃ，Ｄが繋がっている。この場合、制御部１１は、図６に示すように、スイッチングハブＡの下階層にあるスイッチングハブとして、
スイッチングハブＢ，Ｃ，ＤのＭＡＣアドレスを記述する。制御部１１は、スイッチングハブＢ，Ｃ，Ｄについても上記のような要領で、その下階層にあるスイッチングハブを特定する。これにより、制御部１１は、図６に示すような内容の階層推定テーブルを生成し、揮発性記憶部１２に記憶する。また、制御部１１は、スイッチングハブＡの下階層にあるスイッチングハブとしてＭＡＣアドレスが記述されたスイッチングハブ（すなわち、スイッチングハブＢ，Ｃ，Ｄ）の階層を１増加させる。
【００４２】
再び図４の説明に戻る。ルータ１０の制御部１１は、階層推定テーブルの内容を修正する（ステップＳ１１０）。まず、制御部１１は、階層推定テーブルにおいて「階層」に関する記述を修正するが、具体的には次のとおりである。制御部１１は、図６において、スイッチングハブＡに対応するレコードのうち、スイッチングハブＡの下階層にあるスイッチングハブ（以下、単に下階層スイッチングハブという）のうちの１つ（ここではスイッチングハブＢとする）に注目する。そして、制御部１１は、図６において、そのスイッチングハブＢに対応するレコードに注目し、スイッチングハブＢに対して、下階層スイッチングハブが存在するか否かを判断する。ここでは、スイッチングハブＢの下階層スイッチングハブとして、スイッチングハブＤがある。このような場合、制御部１１は、このスイッチングハブＤの階層を「１」に「１」を加えて「２」に書き換える。つまり、これは、スイッチングハブＤから見れば、スイッチングハブＢのアップリンクポート以外のポートに、自身が繋がっていることになるから、そのスイッチングハブＢの階層よりも少なくとも１つは自身の階層が下がるべきという考え方による。
【００４３】
次に、制御部１１は、スイッチングハブＡに対する下階層スイッチングハブのうち、今度はスイッチングハブＣに注目する。そして、制御部１１は、図６において、スイッチングハブＣのＭＡＣアドレスに対応するレコードに注目し、そのスイッチングハブＣに対する下階層スイッチングハブが存在するか否かを判断する。ここでは、下階層スイッチングハブが存在しないので、制御部１１はスイッチングハブＣについての修正処理を終える。次に、制御部１１は、スイッチングハブＡに対する下階層スイッチングハブのうち、スイッチングハブＤに注目する。このスイッチングハブＤに対しては、前述したように、階層が当初の「１」よりも大きい「２」にすでに修正されている。制御部１１は、スイッチングハブＤに対して下階層スイッチングハブが存在するか否かを判断する。ここでは、下階層にあるスイッチングハブが存在しないので、制御部１１はスイッチングハブＤについての修正処理を終える。
【００４４】
このように、制御部１１は、まず、全てのスイッチングハブが属する階層を「０」と仮定する。この後に、制御部１１は、他のスイッチングハブのアップリンクポート以外のポートに自身が繋がっているようなスイッチングハブを特定し、このスイッチングハブが属する階層を１つ下げていくという処理を順次行うことで、各々のスイッチングハブが属する階層を最終的に特定する。これにより、階層推定テーブルの「階層」に関する記述が変更され、階層推定テーブルは図６で示した内容から図７に示すような内容に変わる。
【００４５】
次に、制御部１１は、階層推定テーブルにおいて「下階層にあるスイッチングハブ」に関する記述を修正する。具体的には次のとおりである。制御部１１は、図７において、階層が「０」のスイッチングハブＡに注目する。制御部１１は、このスイッチングハブＡに対する下階層スイッチングハブであるスイッチングハブＢの階層を参照し、これが「１」であることを認識する。このように、注目しているスイッチングハブの階層に「１」を加えた値が、その下階層スイッチングハブの階層に一致する場合には、制御部１１は、その下階層スイッチングハブの階層が正しいと判断する。つまり、ここでは、スイッチングハブＢの階層は「１」で正しいことが確認されることになる。次に、制御部１１は、このスイッチングハブＢに注目する。そして、制御部１１は、このスイッチングハブＢに対する下階層スイッチングハブであるスイッチングハブＤの階層を参照し、これが「２」である
ことを認識する。この場合も、注目しているスイッチングハブの階層に「１」を加えた値が、その下階層スイッチングハブの階層に一致するから、制御部１１は、スイッチングハブＤの階層は「２」で正しいと判断する。続いて、制御部１１は、このスイッチングハブＤに注目して、スイッチングハブＤに対する下階層スイッチングハブを探すが、これはないので、スイッチングハブＤについての処理を終える。
【００４６】
次に、制御部１１は、図７において、スイッチングハブＡに対する下階層スイッチングハブであるスイッチングハブＣの階層を参照し、「１」であることを認識する。ここでは、注目しているスイッチングハブＡの階層「０」に「１」を加えた値が、その下階層スイッチングハブであるスイッチングハブＣの階層「１」に一致するから、制御部１１は、スイッチングハブＣの階層は「１」で正しいことを確認する。次に、制御部１１は、スイッチングハブＡに対する下階層スイッチングハブであるスイッチングハブＤの階層を参照し、「２」であることを認識する。ここで、注目しているスイッチングハブＡの階層「０」に「１」を加えた値は「１」であるのに対し、その下階層スイッチングハブであるスイッチングハブＤの階層「２」であり、両者は一致しない。この場合、制御部１１は、スイッチングハブＡに対する下階層スイッチングハブの欄からスイッチングハブＤのＭＡＣアドレスを削除する。これにより、階層推定テーブルは、図７で示した内容から図８のような内容に変更される。
【００４７】
制御部１１（トポロジ検出手段）は、上記のようにして生成した装置接続情報テーブル（図５）と階層推定テーブル（図８）の内容に基づいて、自ネットワークの物理トポロジを検出する（ステップＳ１１１）。例えば、図８では、階層「０」はスイッチングハブＡであり、このスイッチングハブＡは図５に示すように、ルータ１０のポート番号１のポートに繋がっている。よって、制御部１１は、図１に示したような、ルータ１０とスイッチングハブＡとの接続形態を特定することができる。次に、図８では、階層「１」はスイッチングハブＢ，Ｃである。このうちスイッチングハブＢは、図５に示すように、スイッチングハブＡのポート番号２のポートに繋がっている。よって、制御部１１は、図１に示したような、スイッチングハブＡとスイッチングハブＢとの接続形態を特定することができる。また、スイッチングハブＣは、図５に示すように、スイッチングハブＡのポート番号３のポートに繋がっている。よって、制御部１１は、図１に示したような、スイッチングハブＡとスイッチングハブＣとの接続形態を特定することができる。また、図８では、階層「２」はスイッチングハブＤであり、このスイッチングハブＤは、図５に示すように、スイッチングハブＢのポート番号２のポートに繋がっている。よって、制御部１１は、図１に示したような、スイッチングハブＢとスイッチングハブＤとの接続形態を特定することができる。
【００４８】
一般に、各スイッチングハブは自動的に自身のＭＡＣアドレステーブルを生成するようになっている。以上の第１実施形態によれば、ルータ１０は、リクエストパケット（第１のパケット）に対して応答パケット（第２のパケット）を返してきたスイッチングハブのみに問い合わせパケット（第３のパケット）を送信する。問い合わせパケットは、応答パケットを返してきた一のスイッチングハブに対して応答パケットを返してきた他のスイッチングハブが繋がっているポートのポート番号を問い合わせるものである。そしてルータ１０は、各スイッチングハブＡ，Ｂ，Ｃ，ＤにおけるＭＡＣアドレステーブルのうち他のスイッチングハブに相当するＭＡＣアドレスに対応するポート番号を含む回答パケットを各スイッチングハブＡ，Ｂ，Ｃ，Ｄから受け取り、この内容に基づいて、自ネットワークの物理トポロジを検出することができる。つまり、相互認識フェーズにおいてトポロジ検出のために自ネットワーク内で伝送される情報が、各スイッチングハブＡ，Ｂ，Ｃ，ＤにおけるＭＡＣアドレステーブルの内容のごく一部のデータで足りる。よって、各スイッチングハブが、自ら自動的に生成したＭＡＣアドレステーブルのごく一部の内容を、ルータ１０からの要求に応じて送信するという簡易な処理だけで済むし、また、ネットワークの
通信トラヒックが比較的小さくて済む。また、自ネットワーク内で伝送される情報が、このようなポート番号及びＭＡＣアドレスの対応関係に相当する内容に過ぎないから、例えば特許文献１のように運用コストが高い通信プロトコルを用意する必要がない
【００４９】
＜第２実施形態＞
第２実施形態の構成は第１実施形態と同じであり、第２実施形態が第１実施形態と異なるのは通信システム全体の動作である。図９は、第２実施形態に係る通信システムの動作を示すシーケンス図である。この通信システムの動作は、システム全体による相互認識フェーズと、ルータ１０によるトポロジ検出フェーズという、２つのフェーズに大別される。まず、相互認識フェーズは、ルータ１０の制御部１１（要求手段）が自ネットワークのノード群に対し、各ノードの存在を検出するためのリクエストパケット（第１のパケット）を同報送信することで開始される（ステップＳ１）。リクエストパケットが同報送信されるタイミングは、例えば定期的なタイミングや、ユーザがＵＩ部１５を操作して相互認識フェーズの開始を指示したタイミングなどである。各々のスイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、このリクエストパケットをいずれかのポートが受信すると、そのポート以外のポートから他のスイッチングハブへとこのパケットを転送することで、それぞれのスイッチングハブＡ，Ｂ，Ｃ，Ｄにリクエストパケットが行き渡ることになる。
【００５０】
このとき、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、リクエストパケットを受信したポートを、ルータ１０に繋がるアップリンクポートとして特定し、揮発性記憶部２２にそのポート番号を記憶する（ステップＳ２）。そして、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１（応答手段）は、リクエストパケットに応答する応答パケット（第２のパケット）をこのアップリンクポートからルータ１０に宛てて送信する（ステップＳ３）。このとき、制御部２１は、不揮発性記憶部２３からＭＡＣアドレスを読み出すとともに、揮発性記憶部２２からアップリンクポートのポート番号を読み出し、これらＭＡＣアドレス及びアップリンクポートのポート番号を応答パケットに含めて送信する。さらに、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１は、アップリンクポート以外のポートが他のスイッチングハブから応答パケットを受信した場合には、当該応答パケットを受信したポートのポート番号を当該応答パケットに付加して、これをアップリンクポートからルータ１０に宛てて転送する。第２実施形態における第１のパケットは、ルータ１０の配下のネットワークに含まれるスイッチングハブ群に対して、当該スイッチングハブにおいてルータ１０と繋がっているポートのポート識別情報、当該スイッチングハブのＭＡＣアドレス、当該スイッチングハブにおいてルータ１０と繋がっているポート以外のポートのポート番号、および、当該ポート番号によって識別されるポートに繋がっている他のスイッチングハブのＭＡＣアドレスを要求するパケットに相当する。
【００５１】
次に、ルータ１０によるトポロジ検出フェーズに移行する。ルータ１０の制御部１１（受信手段）は、第１のパケットに対する応答として受信した、各スイッチングハブＡ，Ｂ，Ｃ，ＤのＭＡＣアドレス、各スイッチングハブＡ，Ｂ，Ｃ，Ｄのアップリンクポートのポート番号、及び、各スイッチングハブが他のスイッチングハブから応答パケットを受け取ったポートのポート番号を用いることで、どのスイッチングハブがどのポートでどのスイッチングハブが送信元である応答パケットを受信し、それをどのポートからルータ１０に宛てて転送したかが全て分かる。そこで、制御部１１は、これらの情報を基にして、自ネットワーク内の全ノードに関する装置接続情報テーブルを生成する（ステップＳ４）。制御部１１（記憶手段）は装置接続情報テーブルを生成すると、これを揮発性記憶部１２に記憶する（前掲の図５）。以降の動作は第１実施形態と同じである。
【００５２】
この第２実施形態によっても、相互認識フェーズにおいてトポロジ検出のために自ネットワーク内で伝送される情報が、各スイッチングハブＡ，Ｂ，Ｃ，ＤにおけるＭＡＣアドレステーブルの内容の一部のデータで足りる。さらに、ルータからの問い合せパケット（
第３のパケット）およびスイッチングハブからの回答パケット（第４のパケット）は不要となるから、ネットワークの通信トラヒックが比較的小さくて済む。また、自ネットワーク内で伝送される情報が、このようなポート番号及びＭＡＣアドレスの対応関係に相当する内容に過ぎないから、例えば特許文献１のように運用コストの高い通信プロトコルを用意する必要がない。
【００５３】
以上の実施形態は次のように変形可能である。また、次の各変形は互いに組み合わせてもよい。
＜変形例１＞
上述した図４および図９の処理は、ルータ１０がスイッチングハブＡ，Ｂ，Ｃ，Ｄの存在を検出するためのリクエストパケットを同報送信することで開始されていたが、この処理を開始する契機は、ルータ１０によるものに限らず、スイッチングハブによるものであってもよい。例えば、自ネットワークに新たなスイッチングハブが接続されるときには、通信線がそのスイッチングハブのいずれかのポートに挿入されるから、そのスイッチングハブの制御部はこの挿入を電気的に検知し、この検知後に、ヘッダ部のタイプにトポロジ検出用のパケットである旨を示す値を設定し、ペイロード部のパケット種別を上述した１〜４以外の値（たとえば「０」）としたパケットをブロードキャストする。そして、ルータ１０がこのパケットを受け取ると、上記のようなリクエストパケットを自ネットワーク内に同報送信する。他のスイッチングハブは、ペイロード部のパケット種別の値（「０」）を読み取るが、この値で示される種別のパケットは無視するようになっている。自ネットワークに新たなスイッチングハブが接続されると、物理トポロジの内容が変わるが、上記のようにすれば、物理トポロジの内容が変わったタイミングで、その物理トポロジを検出することができる。ただし、自ネットワークからスイッチングハブが取り外された場合にも物理トポロジを検出する必要に鑑みれば、相互認識フェーズを開始する契機としては、スイッチングハブが接続されたことによるものと、ルータ１０からの定期的なタイミング又はユーザ操作に基づくリクエストによるものとを併用することが望ましい。
【００５４】
＜変形例２＞
実施形態では、ネットワークに含まれるノードとして、ルータとスイッチングハブと呼ばれる２種類の中継装置を例示していたが、これらの中継装置の名称・種類は実施形態の例示に限らず、要するに、ツリー構造のルートに相当するノードとしてデータの中継を行う第１の中継装置と、他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第２の中継装置であればよい。例えば、第２の中継装置は、リピータなどと呼ばれる中継装置であってもよい。  また、中継装置の識別情報である装置識別情報は、ＭＡＣアドレスに限定されるわけではなく、ネットワーク内のデータ中継時に各中継装置を識別するために用いられる装置識別情報であればよい。
【００５５】
＜変形例３＞
実施形態では、制御部１１が各スイッチングハブから受信した情報を基に装置接続情報テーブルを生成し、さらに階層推定テーブルを生成して物理トポロジを検出していたが、階層推定テーブルなるものを生成して揮発性記憶部１２に記憶することは必ずしも必須ではない。要するに、制御部１１は、各スイッチングハブから受信した情報を基に装置接続情報テーブルを生成したのち、実施形態で階層推定テーブルを用いて説明した原理や考え方に沿って、物理トポロジ、つまり自ネットワークのツリー構造における各階層に属するスイッチングハブのＭＡＣアドレスと、各々のスイッチングハブにおいて他のスイッチングハブが繋がっているポートのポート番号とによって表される物理トポロジを検出すればよい。
【００５６】
＜変形例４＞
上述した実施形態におけるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク
など）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶した状態で、ルータ１０等の第１の中継装置およびスイッチングハブＡ，Ｂ，Ｃ，Ｄ等の第２の中継装置に提供し得る。この場合には、記録媒体を読み取るインタフェースをこれらの中継装置に設ければよい。また、ネットワーク経由でこれらの中継装置にダウンロードさせることも可能である。
【００５７】
＜変形例５＞
上述した実施形態では、ルータ１０が問い合わせパケット（第３のパケット）を送信する際に、問い合わせ先のスイッチングハブが繋がっている他のスイッチングハブのＭＡＣアドレス（装置識別情報）を設定した通知データを送信し、これを受信したスイッチングハブは、通知データにてＭＡＣアドレスが示された他のスイッチングハブが繋がっているポートのポート番号を回答パケット（第４のパケット）の通知データに設定して返信していた。
これに対して、各々のスイッチングハブが、問い合わせパケット（第３のパケット）における上記の「他のスイッチングハブ」に相当する情報を記憶しておき、ルータ１０から「他のスイッチングハブ」を特定しない問い合わせパケットを受信すると、自身が記憶している当該「他のスイッチングハブ」のＭＡＣアドレスと「他のスイッチングハブ」が繋がっているポートのポート番号とを合わせて、回答パケット（第４のパケット）の通知データとしてもよい。そのために、各々のスイッチングハブは、揮発性記憶部２２（記憶手段）に上述したＭＡＣアドレステーブルとは別に、「応答ＭＡＣアドレステーブル」を記憶する。「応答ＭＡＣアドレステーブル」とは、応答パケット（第２のパケット）を受信したポート番号とその応答パケットの送信元のノード（すなわち「他のスイッチングハブ」）のＭＡＣアドレスとを登録したものである。「応答ＭＡＣアドレステーブル」は、電源投入時等の初期状態では空欄になっていて、スイッチングハブの制御部２１は、他のスイッチングハブから応答パケットを受信すると、当該応答パケットの送信元ＭＡＣアドレスを応答ＭＡＣアドレステーブルに記述する。
例えば上述の実施形態において、ルータ１０の制御部１１（第１の要求手段）がリクエストパケット（第１のパケット）を送信し、それに対して各スイッチングハブの制御部２１（第１の応答手段）が応答パケット（第２のパケット）を送信した後において、各スイッチングハブの応答ＭＡＣアドレステーブルは、以下のようになる。すなわち、スイッチングハブＡの応答ＭＡＣアドレステーブルには、スイッチングハブＢ、スイッチングハブＣ、スイッチングハブＤのＭＡＣアドレスが記憶される。これは、スイッチングハブＢ、スイッチングハブＣ、スイッチングハブＤから送信される応答パケットがスイッチングハブＡを経由してルータ１０に到達して、制御部１１（第１の取得手段）により取得されるからである。同様にして、スイッチングハブＢは、スイッチングハブＤからの応答パケットを中継するため、スイッチングハブＢの応答ＭＡＣアドレステーブルにはスイッチングハブＤのＭＡＣアドレスが記憶される。一方、スイッチングハブＣおよびスイッチングハブＤは、他のスイッチングハブからの応答パケットを中継しないため、スイッチングハブＣおよびスイッチングハブＤの応答ＭＡＣアドレステーブルは空欄のままである。
ルータの制御部１１（第２の要求手段）は、取得した応答パケットに含まれているＭＡＣアドレスによって識別される各々のスイッチングハブに対して、そのスイッチングハブにおいていずれかのポートに繋がっているスイッチングハブのＭＡＣアドレスおよび当該ポートのポート番号を要求するべく、問い合わせパケット（第３のパケット）を送信する。
そして、各スイッチングハブＡ，Ｂ，Ｃ，Ｄの制御部２１（第２の応答手段）は、ルータ１０から問い合わせパケットを受信すると、自身の応答ＭＡＣアドレステーブルに記憶されたＭＡＣアドレスと当該ＭＡＣアドレスに対応するポート番号とを通知データとした回答パケット（第４のパケット）をルータ１０に返す。ポート番号は、通常のＭＡＣアドレステーブルを参照して求めてもよいし、他のスイッチングハブから応答パケットを受信した際に応答ＭＡＣアドレステーブルに他のスイッチングハブのＭＡＣアドレスと当該応
答パケットを受信したポートのポート番号とを対応づけて記憶しておいてもよい。なお、このときの問い合わせパケット（第３のパケット）においては、当該パケットが問い合わせパケットであることが分かればよいので、そのペイロード部の「通知データ」は使用されない。このため、通知データは例えば「０」としておく。あるいは、通知データを送信すること自体を行わない、つまりペイロード部に通知データが含まれないという態様であってもよい。
こうして全ての回答パケットが送信された後のルータ１０の装置接続情報テーブルは、図１１のようになる。ルータ１０は、図１１の装置接続情報テーブルの内容に基づいて階層を推定することで、上述の実施形態と同様の階層推定テーブル（図６）を得て階層構造のトポロジを検出することができる。このような変形例によれば、スイッチングハブからルータ１０へ送信する回答パケットは、トポロジ検出に必要なＭＡＣアドレスとポート番号の組合せのみですむ。
【００５８】
＜変形例６＞
以上の説明では、ルータおよびスイッチングハブのみがリクエストパケットあるいは問い合わせパケットに対する応答を行うものとして説明したが、他のネットワークノード（たとえばパーソナルコンピュータ等の通信端末）もこれらに応答して応答パケットや回答パケットを送信するようにしてもよい。
【符号の説明】
【００５９】
１０・・・ルータ、Ａ，Ｂ，Ｃ，Ｄ・・・スイッチングハブ、１１，２１・・・制御部、１２，２２・・・揮発性記憶部、１３，２３・・・不揮発性記憶部、１４―１〜１４―ｎ、２４―１〜２４―ｍ、Ｐ・・・ポート、１５・・・ＵＩ部
【図１】
0005935859.tif 000002
【図２】
0005935859.tif 000003
【図３】
0005935859.tif 000004
【図４】
0005935859.tif 000005
【図５】
0005935859.tif 000006
【図６】
0005935859.tif 000007
【図７】
0005935859.tif 000008
【図８】
0005935859.tif 000009
【図９】
0005935859.tif 000010
【図１０】
0005935859.tif 000011
【図１１】
0005935859.tif 000012