特許第5699799号(P5699799)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤマハ株式会社の特許一覧

<>
  • 特許5699799-トポロジ検出システムおよび中継装置 図000002
  • 特許5699799-トポロジ検出システムおよび中継装置 図000003
  • 特許5699799-トポロジ検出システムおよび中継装置 図000004
  • 特許5699799-トポロジ検出システムおよび中継装置 図000005
  • 特許5699799-トポロジ検出システムおよび中継装置 図000006
  • 特許5699799-トポロジ検出システムおよび中継装置 図000007
  • 特許5699799-トポロジ検出システムおよび中継装置 図000008
  • 特許5699799-トポロジ検出システムおよび中継装置 図000009
  • 特許5699799-トポロジ検出システムおよび中継装置 図000010
  • 特許5699799-トポロジ検出システムおよび中継装置 図000011
  • 特許5699799-トポロジ検出システムおよび中継装置 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5699799
(24)【登録日】2015年2月27日
(45)【発行日】2015年4月15日
(54)【発明の名称】トポロジ検出システムおよび中継装置
(51)【国際特許分類】
   H04L 12/44 20060101AFI20150326BHJP
【FI】
   H04L12/44 M
【請求項の数】12
【全頁数】23
(21)【出願番号】特願2011-113614(P2011-113614)
(22)【出願日】2011年5月20日
(65)【公開番号】特開2012-15997(P2012-15997A)
(43)【公開日】2012年1月19日
【審査請求日】2014年3月20日
(31)【優先権主張番号】特願2010-125880(P2010-125880)
(32)【優先日】2010年6月1日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110000752
【氏名又は名称】特許業務法人朝日特許事務所
(72)【発明者】
【氏名】瀬尾 達也
【審査官】 大石 博見
(56)【参考文献】
【文献】 特開2001−320393(JP,A)
【文献】 特開2002−314541(JP,A)
【文献】 特開平4−269038(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/44
(57)【特許請求の範囲】
【請求項1】
少なくとも3以上のノードを含むツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う第1の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第2の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、
前記第1の中継装置が、前記ネットワークに含まれるノード群に対して、当該第1の中継装置の装置識別情報を含む第1のパケットを送信し、
各々の前記第2の中継装置が、前記複数のポートのいずれかのポートが前記第1のパケットを受信すると、当該第1のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と、自装置の装置識別情報とを含む第2のパケットを、前記アップリンクポートから前記第1の中継装置に宛てて送信し、他の前記第2の中継装置から送信された当該第2のパケットを受信した場合には、当該第2のパケットを前記第1の中継装置に宛てて転送し、
前記第1の中継装置が、各々の前記第2の中継装置から送信又は転送されてくる前記第2のパケットを受信し、
前記第1の中継装置が、前記第2のパケットの送信元である前記第2の中継装置に対して、当該第2の中継装置のどのポートに他の前記第2の中継装置が繋がっているかを問い合わせる第3のパケットを送信し、
各々の前記第2の中継装置が、前記第3のパケットを受信すると、他の前記第2の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第4のパケットを、前記第1の中継装置に宛てて送信し、
前記第1の中継装置が、受信した前記第2のパケットおよび前記第4のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第2の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第2の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、
前記第1の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークのツリー構造における各階層に属する前記第2の中継装置の装置識別情報と、各々の前記第2の中継装置において他の第2の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出する
ことを特徴とするトポロジ検出システム。
【請求項2】
少なくとも3以上のノードを含むツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う第1の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第2の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、
前記第1の中継装置が、前記ネットワークに含まれるノード群に対して第1のパケットを送信し、
各々の前記第2の中継装置が、前記複数のポートのいずれかのポートが前記第1のパケットを受信すると、当該第1のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と自装置の装置識別情報とを含む第2のパケットを、前記アップリンクポートから前記第1の中継装置に宛てて送信し、他の前記第2の中継装置から送信された前記第2のパケットを前記アップリンクポート以外のポートが受信した場合には、当該ポートのポート識別情報を、受信した前記第2のパケットに含めて、前記アップリンクポートから前記第1の中継装置に宛てて転送し、
前記第1の中継装置が、各々の前記第2の中継装置から送信又は転送されてくる前記第2のパケットを受信し、
前記第1の中継装置が、受信した前記第2のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第2の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第2の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、
前記第1の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークのツリー構造における各階層に属する前記第2の中継装置の装置識別情報と、各々の前記第2の中継装置において他の第2の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出する
ことを特徴とするトポロジ検出システム。
【請求項3】
前記第1の中継装置が物理トポロジを検出する場合に、
前記記憶手段に記憶されている内容を参照して、
前記アップリンクポート以外のポートに他の全ての第2の中継装置が繋がっている第2の中継装置が属する階層が、前記第1の中継装置を除いて前記ネットワークにおける最上位層であることを特定し、
前記最上位層に属すると特定された第2の中継装置以外の第2の中継装置が属する階層を最上位層から1つ下の層であると仮定した後に、当該層に属すると仮定された第2の中継装置のうちの他の第2の中継装置が有する前記アップリンクポート以外のポートに自身が繋がっている第2の中継装置を検出し、当該第2の中継装置が属する階層を1つ下げていくことで、各々の第2の中継装置が属する階層を特定し、
各々の前記第2の中継装置について特定した階層を用いて物理トポロジを検出する
ことを特徴とする請求項1また2記載のトポロジ検出システム。
【請求項4】
前記第1の中継装置は、OSI(Open Systems Interconnection)参照モデルの第1層である物理層から第3層であるネットワーク層までの階層において複数のネットワークを論理的に接続してデータの中継を行う中継装置であり、
前記第2の中継装置は、OSI参照モデルの第1層である物理層から第2層であるデータリンク層までの階層において複数のノードを論理的に接続してデータの中継を行う中継装置であり、
前記第2の中継装置の装置識別情報は、当該第2の中継装置に割り当てられたMAC(Media Access Control)アドレスである
ことを特徴とする請求項1〜3のいずれかに記載のトポロジ検出システム。
【請求項5】
ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、
自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第1の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第1の取得手段と、
前記第1の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第1の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第2の要求手段と、
前記第2の要求手段による要求に応じて送信されてくる応答から、前記第1の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、
前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項6】
ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、
前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において当該ルートノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記ルートノードに送信する第1の応答手段と、
前記ルートノードからの前記要求に応答して前記他のノードから当該ルートノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、受信された当該ポート識別情報を前記ルートノードに転送する転送手段と、
前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記ルートノードに送信する第2の応答手段と
を備える中継装置。
【請求項7】
ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、
自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、
前記要求手段による要求に対する応答を受信する受信手段と、
前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、
前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項8】
ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに接続される他のノードとの間で通信を行う複数のポートと、
前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート識別情報と対応付けて記憶する記憶手段と、
前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において前記ルートノードと繋がっているポートのポート識別情報、自装置の装置識別情報、自装置において前記ルートノードと繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報についての要求を、自装置において前記ルートノードと繋がっているポートが受信すると、当該ポートのポート識別情報、自装置の装置識別情報、前記記憶手段に記憶された他のノードの装置識別情報およびポート識別情報を当該ポートから前記ルートノードに送信する応答手段と
を備える中継装置。
【請求項9】
ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、
自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第1の要求手段と、
前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第1の取得手段と、
前記第1の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第2の要求手段と、
前記第2の要求手段による要求に応じて送信されてくる応答から、前記第1の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、
前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項10】
ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において当該ルートノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記ルートノードに送信する第1の応答手段と、
前記ルートノードからの前記要求に応答して前記他のノードから当該ルートノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、
前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報を前記ルートノードに送信する第2の応答手段と
を備える中継装置。
【請求項11】
ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、
自装置の配下のネットワークに含まれるノード群から、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を取得する第1の取得手段と、
前記第1の取得手段により取得された装置識別情報によって識別される各々の前記ノードから、前記第1の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、
前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段と
を備える中継装置。
【請求項12】
ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、
前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、
前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、
前記ネットワークにおいてルートに相当するノードであるルートノードに、自装置において当該ルートノードに繋がっているポートのポート識別情報を送信する第1の送信手段と、
前記他のノードから前記ルートノードに対して送信されたポート識別情報を前記ルートノードに転送する転送手段と、
前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせが受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報を前記ルートノードに送信する第2の送信手段と
を備える中継装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークにおける物理トポロジを検出する技術に関する。
【背景技術】
【0002】
ネットワークを構成する各ノードの接続形態をトポロジという。トポロジには、物理的な接続形態を指す物理トポロジと、論理的な接続形態を指す論理トポロジとがある。例えば特許文献1には、ネットワークに含まれるノード間の通信記録を参照して物理トポロジを検出する技術が開示されている。また、特許文献2には、ネットワークに含まれるノード単位だけでなく、各ノードを接続するポート単位に注目して、物理トポロジを検出する技術が開示されている。特許文献3には、無通信状態が一定時間以上続くノードがあってもトポロジ検出を可能にするため、ルータから中継装置に応答要求を送信し、当該中継装置のアドレス情報が時間経過により消滅する前に当該中継装置からアドレス情報を収集して物理トポロジを検出する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9−186716号公報
【特許文献2】特開2008−172449号公報
【特許文献3】特開2007−228382号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ネットワークにおけるトポロジを検出するためには、その検出のために必要なデータをノード間で遣り取りする必要があるが、ネットワークの通信トラヒックを最小限に抑えることが望ましい。特許文献1に開示された技術では、SNMP(Simple Network Management Protocol)を用いてノードの物理アドレスを取得し、当該物理アドレスに基づいて、STP(Spanning Tree Protocol)を用いて物理トポロジを検出するようになっている。特許文献2に開示された技術では、イーサネット(登録商標)のOAM(Operations, Administration, Maintenance)フレームのトレース要求/トレース応答を用いて装置の物理トポロジおよび当該装置のポートトポロジを検出するようになっている。したがって、特許文献1あるいは特許文献2に開示された技術を実現するためには、上述のSNMPやSTPのようなプロトコルを実装し、運用するためのコストが必要となる。特許文献3に開示された技術によれば、特許文献1、特許文献2に開示された技術に比べて、トポロジを検出するための演算処理の負荷やコストは軽減される。しかし、特許文献3に開示された技術では、トポロジ情報としてMAC(Media Access Control)アドレステーブル全体を送る必要があるから、スイッチが大容量のテーブルを保持している場合には、ネットワークにおいてトラヒックが増大する影響が大きい。
【0005】
本発明は、ツリー構造のネットワークにおける物理トポロジの検出を少ない演算量及びトラヒック量で実現することを目的とする。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明は、少なくとも3以上のノードを含むツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う第1の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第2の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、前記第1の中継装置が、前記ネットワークに含まれるノード群に対して、当該第1の中継装置の装置識別情報を含む第1のパケットを送信し、各々の前記第2の中継装置が、前記複数のポートのいずれかのポートが前記第1のパケットを受信すると、当該第1のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と、自装置の装置識別情報とを含む第2のパケットを、前記アップリンクポートから前記第1の中継装置に宛てて送信し、他の前記第2の中継装置から送信された当該第2のパケットを受信した場合には、当該第2のパケットを前記第1の中継装置に宛てて転送し、前記第1の中継装置が、各々の前記第2の中継装置から送信又は転送されてくる前記第2のパケットを受信し、前記第1の中継装置が、前記第2のパケットの送信元である前記第2の中継装置に対して、当該第2の中継装置のどのポートに他の前記第2の中継装置が繋がっているかを問い合わせる第3のパケットを送信し、各々の前記第2の中継装置が、前記第3のパケットを受信すると、他の前記第2の中継装置が繋がっているポートのポート識別情報と、自装置の装置識別情報とを含む第4のパケットを、前記第1の中継装置に宛てて送信し、前記第1の中継装置が、受信した前記第2のパケットおよび前記第4のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第2の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第2の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、前記第1の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークのツリー構造における各階層に属する前記第2の中継装置の装置識別情報と、各々の前記第2の中継装置において他の第2の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出することを特徴とするトポロジ検出システムを提供する。
【0007】
また、本発明は、少なくとも3以上のノードを含むツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う第1の中継装置と、当該ネットワークにおいて他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第2の中継装置とを備え、前記ネットワークにおける物理トポロジを検出するトポロジ検出システムであって、前記第1の中継装置が、前記ネットワークに含まれるノード群に対して第1のパケットを送信し、各々の前記第2の中継装置が、前記複数のポートのいずれかのポートが前記第1のパケットを受信すると、当該第1のパケットを受信したポートをアップリンクポートとし、当該アップリンクポートのポート識別情報と自装置の装置識別情報とを含む第2のパケットを、前記アップリンクポートから前記第1の中継装置に宛てて送信し、他の前記第2の中継装置から送信された前記第2のパケットを前記アップリンクポート以外のポートが受信した場合には、当該ポートのポート識別情報を、受信した前記第2のパケットに含めて、前記アップリンクポートから前記第1の中継装置に宛てて転送し、前記第1の中継装置が、各々の前記第2の中継装置から送信又は転送されてくる前記第2のパケットを受信し、前記第1の中継装置が、受信した前記第2のパケットに含まれている前記装置識別情報及び前記ポート識別情報に基づいて、各々の前記第2の中継装置が有するポートのポート識別情報と、当該ポートに繋がっている他の前記第2の中継装置の装置識別情報とを対応付けて記憶手段に記憶し、前記第1の中継装置が、前記記憶手段に記憶されている内容に基づいて、前記ネットワークのツリー構造における各階層に属する前記第2の中継装置の装置識別情報と、各々の前記第2の中継装置において他の第2の中継装置が繋がっているポートのポート識別情報とによって表される物理トポロジを検出することを特徴とするトポロジ検出システムを提供する。
【0008】
好ましい態様において、前記第1の中継装置が物理トポロジを検出する場合に、前記記憶手段に記憶されている内容を参照して、前記アップリンクポート以外のポートに他の全ての第2の中継装置が繋がっている第2の中継装置が属する階層が、前記第1の中継装置を除いて前記ネットワークにおける最上位層であることを特定し、前記最上位層に属すると特定された第2の中継装置以外の第2の中継装置が属する階層を最上位層から1つ下の層であると仮定した後に、当該層に属すると仮定された第2の中継装置のうちの他の第2の中継装置が有する前記アップリンクポート以外のポートに自身が繋がっている第2の中継装置を検出し、当該第2の中継装置が属する階層を1つ下げていくことで、各々の第2の中継装置が属する階層を特定し、各々の前記第2の中継装置について特定した階層を用いて物理トポロジを検出するようにしてもよい。
【0009】
また、別の好ましい態様において、前記第1の中継装置は、OSI(Open Systems Interconnection)参照モデルの第1層である物理層から第3層であるネットワーク層までの階層において複数のネットワークを論理的に接続してデータの中継を行う中継装置であり、前記第2の中継装置は、OSI参照モデルの第1層である物理層から第2層であるデータリンク層までの階層において複数のノードを論理的に接続してデータの中継を行う中継装置であり、前記第2の中継装置の装置識別情報は、当該第2の中継装置に割り当てられたMAC(Media Access Control)アドレスであってもよい。
【0010】
また、本発明は、ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第1の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第1の取得手段と、前記第1の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、前記第1の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報を要求する第2の要求手段と、前記第2の要求手段による要求に応じて送信されてくる応答から、前記第1の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
【0011】
また、本発明は、ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において当該ルートノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記ルートノードに送信する第1の応答手段と、前記ルートノードからの前記要求に応答して前記他のノードから当該ルートノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、受信された当該ポート識別情報を前記ルートノードに転送する転送手段と、前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報をいずれかの前記ポートから前記ルートノードに送信する第2の応答手段とを備える中継装置を提供する。
【0012】
また、本発明は、ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置と繋がっているポートのポート識別情報、当該ノードの装置識別情報、当該ノードにおいて前記中継装置と繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報を要求する要求手段と、前記要求手段による要求に対する応答を受信する受信手段と、前記受信手段が受信した応答から、前記装置識別情報および前記ポート識別情報を取得して記憶する記憶手段と、前記記憶手段に記憶された装置識別情報およびポート識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と当該ノードが他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
【0013】
また、本発明は、ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに接続される他のノードとの間で通信を行う複数のポートと、前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート識別情報と対応付けて記憶する記憶手段と、前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において前記ルートノードと繋がっているポートのポート識別情報、自装置の装置識別情報、自装置において前記ルートノードと繋がっているポート以外のポートのポート識別情報、および、当該ポート識別情報によって識別されるポートに繋がっている他のノードの装置識別情報についての要求を、自装置において前記ルートノードと繋がっているポートが受信すると、当該ポートのポート識別情報、自装置の装置識別情報、前記記憶手段に記憶された他のノードの装置識別情報およびポート識別情報をいずれかの前記ポートから前記ルートノードに送信する応答手段とを備える中継装置を提供する。
【0014】
また、本発明は、ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、自装置の配下のネットワークに含まれるノード群に対して、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を要求する第1の要求手段と、前記ノードから前記要求に応じて送信されてくる応答から、前記ポート識別情報と当該応答の送信元の装置識別情報を取得する第1の取得手段と、前記第1の取得手段により取得された装置識別情報によって識別される各々の前記送信元に対して、当該送信元においていずれかのポートに繋がっている他のノードの装置識別情報および当該ポートのポート識別情報を要求する第2の要求手段と、
前記第2の要求手段による要求に応じて送信されてくる応答から、前記第1の取得手段により取得した装置識別情報によって識別される各々の前記送信元において前記他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
【0015】
また、本発明は、ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ネットワークにおいてルートに相当するノードであるルートノードから、自装置において当該ルートノードに繋がっているポートのポート識別情報の要求がいずれかの前記ポートによって受信されると、当該要求を受信したポートのポート識別情報を前記ルートノードに送信する第1の応答手段と、前記ルートノードからの前記要求に応答して前記他のノードから当該ルートノードに対して送信されたポート識別情報がいずれかの前記ポートによって受信されると、当該受信をしたポートのポート識別情報と前記他のノードの装置識別情報とを対応付けて記憶する記憶手段と、前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせがいずれかの前記ポートによって受信されると、前記記憶手段に記憶されたポート識別情報および装置識別情報を前記ルートノードに送信する第2の応答手段とを備える中継装置を提供する。
また、本発明は、ツリー構造のネットワークにおいてルートに相当するノードとしてデータの中継を行う中継装置であって、自装置の配下のネットワークに含まれるノード群から、当該ノードにおいて自装置に繋がっているポートのポート識別情報および当該ノードの装置識別情報を取得する第1の取得手段と、前記第1の取得手段により取得された装置識別情報によって識別される各々の前記ノードから、前記第1の取得手段により取得された他の装置識別情報によって識別される他のノードと繋がっているポートのポート識別情報および当該他のノードの装置識別情報を取得する第2の取得手段と、前記第2の取得手段により取得された前記ポート識別情報および前記装置識別情報に基づいて、前記ツリー構造のネットワークにおける各階層に属するノードの装置識別情報と、当該ノードにおいて他のノードと繋がっているポートのポート識別情報とによって表される物理トポロジを検出するトポロジ検出手段とを備える中継装置を提供する。
また、本発明は、ツリー構造のネットワークにおいてデータの中継を行う中継装置であって、前記ネットワークに含まれる他のノードとの間で通信を行う複数のポートと、前記ポートに繋がっている前記他のノードの装置識別情報を当該ポートのポート情報と対応付けて記憶する記憶手段と、前記ネットワークにおいてルートに相当するノードであるルートノードに、自装置において当該ルートノードに繋がっているポートのポート識別情報を送信する第1の送信手段と、前記他のノードから前記ルートノードに対して送信されたポート識別情報を前記ルートノードに転送する転送手段と、前記ルートノードから送信され、自装置において前記他のノードに繋がっているポートの問い合わせが受信されると、前記記憶手段に記憶された装置識別情報のうち、前記他のノードに相当する装置識別情報に対応付けられたポート識別情報を前記ルートノードに送信する第2の送信手段とを備える中継装置を提供する。
【発明の効果】
【0016】
本発明によれば、ツリー構造のネットワークにおける物理トポロジを少ない演算量およびトラヒック量で検出することができる。
【図面の簡単な説明】
【0017】
図1】本発明の第1実施形態に係る通信システムの構成を示すブロック図である。
図2】ルータの構成を示すブロック図である。
図3】スイッチングハブの構成を示すブロック図である。
図4】通信システムの動作を説明するシーケンス図である。
図5】装置接続情報テーブルの内容の一例を示す図である。
図6】階層推定テーブルの内容の一例を示す図である。
図7】階層推定テーブルの内容の一例を示す図である。
図8】階層推定テーブルの内容の一例を示す図である。
図9】第2実施形態に係る通信システムの動作を示すシーケンス図である。
図10】トポロジ検出用パケットの概略構成を示す図である。
図11】変形例に係る装置接続情報テーブルの内容の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の一実施形態について説明する。
<第1実施形態>
図1は、本発明の第1実施形態に係る通信システムの構成を示すブロック図である。通信システムは、少なくとも3以上のノードを含むツリー構造のネットワークであり、ルートに相当するノードとしてデータの中継を行う第1の中継装置であるルータ10と、そのルータ10の配下に接続され、このネットワーク内でデータの中継を行う第2の中継装置であるスイッチングハブA,B,C,Dとを備えている。ルータ10及びスイッチングハブA,B,C,Dは、それぞれ複数のポートPを備えており、これらのポートPどうしの間が通信線によって接続されている。また、各々のスイッチングハブA,B,C,DのポートPには、ユーザによって操作されるパーソナルコンピュータなどの通信端末(図示略)も接続されている。なお、ポートPに付された番号は、そのポートに割り当てられたポート識別情報であるポート番号を意味している。
【0019】
ルータ10は、OSI(Open Systems Interconnection)参照モデルの第1層である物理層から第3層であるネットワーク層までの階層において複数のネットワークを論理的に接続してルーティングを行う中継装置である。このルータ10は、他のネットワークから送信されてくるパケットを受信すると、ルーティングテーブルを参照してルーティング処理を行う。即ち、ルータ10は、このパケットが自身の配下に構成されているネットワーク(自ネットワークという)に含まれる通信端末宛てのパケットである場合には、そのパケットを自ネットワークに送出する一方、このパケットが自ネットワークに含まれる通信端末宛てのパケットではない場合には、ルータ10は、ルーティングテーブルを参照して、このパケットを他のネットワークに転送する。
【0020】
スイッチングハブA,B,C,Dは、OSI参照モデルの第1層である物理層から第2層であるデータリンク層までの階層において複数のノードを論理的に接続してルーティングを行う中継装置である。これらのスイッチングハブA,B,C,Dは、他のノードから送信されてくるパケットを受信すると、自身が記憶しているMAC(Media Access Control)アドレステーブルを参照してスイッチング処理を行う。MACアドレステーブルは、各々のノードが有するポートのポート番号と、そのポートに繋がっている他のノードのMACアドレスとの対応関係を表わしたものである。スイッチングハブA,B,C,Dは、受信したパケットの宛先に相当するMACアドレスに対応するポートから、そのパケットを送出する。つまり、スイッチングハブA,B,C,Dは、自身が有する複数のポートのいずれかによってパケットを受信し、また、自身が有する複数のポートのいずれかによってパケットを送信する。
【0021】
図2は、ルータ10の構成を示すブロック図である。ルータ10は、制御部11、揮発性記憶部12、不揮発性記憶部13、n(nは2以上の整数)個のポート14―1,14―2・・・14―n(図1のポートPに相当)及びUI(User Interface)部15を備えている。制御部11は、CPU(Central Processing Unit)やASIC(Application Specific Integrated Circuit)によって構成されており、このルータ10の動作を制御する。揮発性記憶部12は、制御部11のCPUがプログラムを実行する際のワークエリアとなり、例えば制御部11が自ネットワークの物理トポロジを検出するために用いる装置接続情報テーブルや階層推定テーブル、およびルーティングテーブルなどを記憶する。不揮発性記憶部13は、例えばフラッシュメモリであり、制御部11のCPUが実行するプログラム、およびこのルータ10に割り当てられた装置識別情報であるMACアドレスなどを記憶している。ポート14―1,14―2・・・14―nは、他のノードとの間で通信を行うインタフェースであり、例えばイーサネット(登録商標)ポートなどである。UI部15は、操作キーやLEDインジケータなどを備えている。
【0022】
図3は、スイッチングハブAの構成を示すブロック図である。このスイッチングハブAは、制御部21、揮発性記憶部22、不揮発性記憶部23、及び、m(mは2以上の整数)個のポート24―1,24―2・・・24―m(図1のポートPに相当)を備えている。制御部21は、CPUやASICによって構成されており、このスイッチングハブAの動作を制御する。揮発性記憶部22は、制御部21のCPUがプログラムを実行する際のワークエリアとなり、例えばMACアドレステーブルを記憶する。不揮発性記憶部23は、例えばフラッシュメモリであり、制御部21のCPUが実行するプログラム、およびこのスイッチングハブAに割り当てられた装置識別情報であるMACアドレスを記憶している。MACアドレステーブルには、スイッチングハブAが有する各ポート24―1,24―2・・・24―mのポート番号と、これらのポートに繋がっている各ノードのMACアドレスとが対応付けられて記述されている。ポート24―1,24―2・・・24―mは、他のノードと通信を行うインタフェースであり、例えばイーサネットポートである。
スイッチングハブB,C,Dの構成は、MACアドレス及びMACアドレステーブルの内容を除いて、スイッチングハブAの構成と同じである。
【0023】
本実施形態においては、第1〜第4のパケットと呼ばれるパケットが用いられる。これらの各パケットの意義は後述するとして、まず、その構成について説明する。図10に、第1〜第4のパケットの構成の概略を示す。第1〜第4のパケットは同じ構成を有しており、ヘッダ部とペイロード部に分けられる。ヘッダ部は、当該パケットの送信先である「宛先MACアドレス」、当該パケットの発信元である「送信元MACアドレス」、および当該パケットがどのような種類の情報であるかを示す「タイプ」とから構成される。ペイロード部には、当該パケットが第1〜第4のパケットのうちどの種別のパケットであるかを示す「パケット種別」と、各パケット種別に応じて必要な「通知データ」とが含まれる。第1の中継装置に相当するルータ10および第2の中継装置に相当するスイッチングハブA,B,C,Dは、自ら送信するパケットが第1〜第4のパケットのいずれかであるときは、当該パケットがトポロジ検出用のものである旨を示す値(例えば、16進数の0xe812)をヘッダ部の「タイプ」に設定する。また、第1の中継装置に相当するルータ10および第2の中継装置に相当するスイッチングハブA,B,C,Dは、第1のパケット、第2のパケット、第3のパケット、第4のパケットに対して、各々のペイロード部の「パケット種別」をそれぞれ1、2、3、4に設定し、その後に続けて、パケットの種別に応じて必要な通知データを設定する。第1の中継装置に相当するルータ10および第2の中継装置に相当するスイッチングハブA,B,C,Dは、他の中継装置からパケットを受信したときは、ヘッダ部の「タイプ」に設定された値により当該パケットがトポロジ検出用のものであるか否かを判断し、当該パケットがトポロジ検出用のパケットであった場合は、ペイロード部の「パケット種別」に設定された値によって第1〜第4のパケットのいずれであるかを識別する。
なお、第1の中継装置に相当するルータ10および第2の中継装置に相当するスイッチングハブA,B,C,D以外のノード(たとえばユーザによって操作されるパーソナルコンピュータ等の通信端末)は、トポロジ検出用のものである旨を示す値がヘッダ部の「タイプ」に設定されているパケットを無視するものとする。
【0024】
図4は、通信システムの動作を示すシーケンス図である。図4の処理は、ルータ10の制御部11(第1の要求手段)が自ネットワークのノード群に対し、各ノードにおいてルータ10に繋がっているポートを検出するためのリクエストパケット(第1のパケット)を同報送信することで開始される(ステップS101)。このリクエストパケットは、ルータ10の配下のネットワークに含まれるスイッチングハブ群に対して、当該スイッチングハブにおいてルータ10に繋がっているポートのポート識別情報および当該スイッチングハブの装置識別情報を要求するものである。リクエストパケットのペイロード部において「パケット種別」は「1」となる。ここで、或るノードがポートに繋がるとは、そのノードとそのポートとの間に他のノードが介在せずに両者が通信線によって直接繋がっている場合のほか、そのノードとそのポートとの間に他のノードが介在して両者が繋がっている場合をも含む(以下において同じ)。この同報送信は、いわゆるブロードキャスト、あるいは、各スイッチングハブA,B,C,Dが受信することができるマルチキャストによって実現され、リクエストパケットのヘッダには、送信元であるルータ10のMACアドレスが記述されている。このリクエストパケットが同報送信されるタイミングは、例えば定期的なタイミングや、ユーザがUI部15を操作して相互認識フェーズの開始を指示したタイミングなどである。
【0025】
各々のスイッチングハブA,B,C,Dの制御部21は、このリクエストパケットをいずれかのポートが受信すると、そのポート以外のポートから他のスイッチングハブへとこのパケットを転送することで、それぞれのスイッチングハブA,B,C,Dにリクエストパケットが行き渡ることになる。なお、リクエストパケットにおいて、当該パケットがリクエストパケットであることが分かればよいので、そのペイロード部の「通知データ」は使用されない。このため、通知データは例えば「0」としておく。あるいは、通知データを送信すること自体を行わない、つまりペイロード部に通知データが含まれないという態様であってもよい。
【0026】
各々のスイッチングハブA,B,C,Dの制御部21は、中継装置や通信端末等の他のノードからパケットを受信すると、当該パケットの送信元のMACアドレスを、このパケットを受信したポートのポート番号と対応付けて、自身のMACアドレステーブルに記述する。図1のような接続形態においてルータ10からリクエストパケットを受信した場合は、各々のスイッチングハブA,B,C,Dの制御部21は、ポート番号「1」と、ルータ10のMACアドレスとを対応付けてMACアドレステーブルに記述することになる(ステップS102)。
【0027】
次に、各スイッチングハブA,B,C,Dの制御部21は、リクエストパケットのペイロード部からパケット種別に設定されている値(ここでは「1」)を読み取り、受信したパケットが、ルータ10に繋がっているポートを検出するためのリクエストパケットであることを検出する(ステップS103)。各スイッチングハブA,B,C,Dの制御部21(第1の応答手段)は、リクエストパケットを検出すると、自身のMACアドレステーブルを参照し、当該リクエストパケットの受信に応じてMACアドレステーブルに記述された、ルータ10のMACアドレスに対応付けられているポート番号を、スイッチングハブに対してルータ10が繋がっているポート(アップリンクポート)のポート番号として特定し、そのポート番号と自身のMACアドレスとを含む応答パケット(第2のパケット)をルータ10宛に送信する(ステップS104)。すなわち、応答パケット(第2のパケット)のペイロード部において、「パケット種別」が「2」、「通知データ」がアップリンクポートのポート番号、「送信元MACアドレス」が各スイッチングハブA,B,C,DのMACアドレスとなる。そして、各スイッチングハブA,B,C,Dの制御部21は、他のスイッチングハブから応答パケットを受信した場合には、当該応答パケットのヘッダ部において送信元のMACアドレスとして記述されている他のスイッチングハブのMACアドレスと、当該応答パケットを受信したポートのポート番号の情報とを自身のMACアドレステーブルに登録して、受信した応答パケットをルータ10に宛てて転送する。
【0028】
ルータ10の制御部11は、各スイッチングハブA,B,C,Dから送信された応答パケットのペイロード部からパケット種別の値(ここでは「2」)を読み取り、これにより、受信したパケットがスイッチングハブA,B,C,Dから送信された応答パケットであることを検出する。ルータ10の制御部11(第1の取得手段)は、当該応答パケットを受け取ることでアップリンクポートのポート番号および各スイッチングハブのMACアドレスを取得し、各々のスイッチングハブの存在を認識する(ステップS105)。ルータ10の制御部11は、この認識結果に基づいて装置接続情報テーブルを生成する。図5は、ルータ10の制御部11が生成した装置接続情報テーブルの内容を示す図である。各スイッチングハブA,B,C,Dのアップリンクポートのポート番号は「1」である。図5の最上段の欄に示す、ルータ10に対応するレコードにおいて、各スイッチングハブA,B,C,DのMACアドレスに対応する「1」は、ルータ10から見たときの各スイッチが接続されているポート番号を意味している。この時点では、図5の最上段と最左列の欄の内容のみが制御部11によって記述される。
【0029】
次に、ルータ10の制御部11(第2の要求手段)は、応答パケットの送信元である各スイッチングハブA,B,C,Dに対し、他のスイッチングハブがどのポートに繋がっているのかを問い合わせる問い合わせパケット(第3のパケット)を各スイッチングハブA,B,C,Dに宛ててそれぞれ送信する(ステップS106)。この問い合わせパケットは、ステップS105にて取得したMACアドレスによって識別される各々のスイッチングハブに対して、ステップS105に取得した他のMACアドレスのスイッチングハブと繋がっているポートのポート識別情報を要求するものである。問合せパケットのペイロード部において、「パケット種別」は「3」である。ペイロード部の「通知データ」は問い合わせの対象となる他のスイッチングハブのMACアドレスが設定される。例えば、図4の例の場合、スイッチングハブA,B,C,Dが応答パケットを返してきたとして、ルータ10の制御部11は、まず、スイッチングハブAに対しては、スイッチングハブBがスイッチングハブAのどのポートに繋がっているか、スイッチングハブCがスイッチングハブAのどのポートに繋がっているか、および、スイッチングハブDがスイッチングハブAのどのポートに繋がっているか、を問い合わせることになる。同様に、ルータ10の制御部11は、スイッチングハブB〜Dに対しても問い合わせを行う。
【0030】
各スイッチングハブA,B,C,Dの制御部21は、ルータ10から送信された問い合わせパケットのペイロード部から、パケット種別の値(「3」)を読み取り、これにより、受信したパケットが、他のスイッチングハブがどのポートに繋がっているのかを問い合わせる問い合わせパケットであることを検出する。各スイッチングハブA,B,C,Dの制御部21(第2の応答手段)は、問い合わせパケットを受信すると、自身のMACアドレステーブルを参照し、「通知データ」に設定されたMACアドレスに該当する他のスイッチングハブが接続されているポートのポート番号を含む回答パケット(第4のパケット)をルータ10宛に送信する(ステップS107)。この回答パケットのペイロード部においては、「パケット種別」が「4」であり、「通知データ」は、上記MACアドレステーブルから取り出した他のスイッチングハブが接続されているポート番号となる。このとき、各スイッチングハブの制御部21(転送手段)は、他のスイッチングハブから回答パケットを受信すると、これを、その宛先であるルータ10に転送する。
【0031】
ルータ10の制御部11は、各スイッチングハブA,B,C,Dから送信された回答パケットのペイロード部からパケット種別の値(「4」)を読み取り、受信したパケットがスイッチングハブA,B,C,Dから送信された回答パケットであることを検出する。ルータ10の制御部11(第2の取得手段)は、これらの回答パケットのペイロード部の「通知データ」に格納されたポート番号を取得する。さらに、ルータ10の制御部11(第2の取得手段)は、当該回答パケットに対応する問い合わせパケット(第3のパケット)においてその通知データに設定していたMACアドレスを取得する。このように、ルータ10の制御部11は、問い合わせパケットに用いたMACアドレスと、その問い合わせパケットに対する回答パケットに含まれるポート番号との組合せにより、問い合わせ先のスイッチングハブのどのポートに他のスイッチングハブが繋がっているかを知り、自ネットワーク内の全スイッチングハブに関する装置接続情報テーブルを生成する(ステップS108)。制御部11は装置接続情報テーブルを生成すると、これを揮発性記憶部12に記憶する。
【0032】
このようにして生成された装置接続情報テーブルを例示したものが図5である。図5において、各スイッチングハブA,B,C,Dに対応するレコードにおいて、ルータ10のMACアドレス欄に示されたポート番号(本実施形態においては、全て「1」)が各々のアップリンクポートである。次に、図5の上から2段目の、スイッチングハブAに対応するレコードに注目する。このレコードにおいて、ルータ10のMACアドレスに対応する「1」は、スイッチングハブAのポート番号1のポートにルータ10が繋がっていることを意味している。また、スイッチングハブBのMACアドレスに対応する「2」は、スイッチングハブAのポート番号2のポートにスイッチングハブBが繋がっていることを意味している。これは、スイッチングハブAにおいて、スイッチングハブBのMACアドレスを送信元又は転送元として含む応答パケットを受け取ったポートのポート番号によって特定することができる。同様に、スイッチングハブCのMACアドレスに対応する「3」は、スイッチングハブAのポート番号3のポートにスイッチングハブCが繋がっていることを意味している。そして、スイッチングハブDのMACアドレスに対応する「2」は、スイッチングハブAのポート番号2のポートにスイッチングハブDが繋がっていることを意味している。図5の上から3段目以降のレコードについても上記と同様の考え方に従って作成されている。ただし、スイッチングハブCに対応するレコードにおいて、スイッチングハブA,B,DのMACアドレスに対応して「1」が記述されているのは、スイッチングハブCから見て、ポート番号1のポートの延長上にこれらスイッチングハブA,B,Dが繋がっているということを意味している。
【0033】
再び図4の説明に戻る。ルータ10の制御部11は、装置接続情報テーブルを参照して、自ネットワークのツリー構造において、各スイッチングハブA,B,C,Dが属する階層を推定する(ステップS109)。ここで、階層とは、ルータ10から見て、ルータ10と各スイッチングハブとの間に存在するスイッチングハブの個数によって表される。
【0034】
図6は、ルータ10の制御部11が生成する階層推定テーブルの内容を示す図である。まず、ルータ10の制御部11は、全てのスイッチングハブの階層を0に設定する。
【0035】
次に、図5を参照すると分かるように、スイッチングハブAに対応するレコードにおいて、スイッチングハブAのポート番号「2」、「3」のポート(つまりアップリンクポート以外のポート)に、スイッチングハブB,C,Dが繋がっている。この場合、制御部11は、図6に示すように、スイッチングハブAの下階層にあるスイッチングハブとして、スイッチングハブB,C,DのMACアドレスを記述する。制御部11は、スイッチングハブB,C,Dについても上記のような要領で、その下階層にあるスイッチングハブを特定する。これにより、制御部11は、図6に示すような内容の階層推定テーブルを生成し、揮発性記憶部12に記憶する。また、制御部11は、スイッチングハブAの下階層にあるスイッチングハブとしてMACアドレスが記述されたスイッチングハブ(すなわち、スイッチングハブB,C,D)の階層を1増加させる。
【0036】
再び図4の説明に戻る。ルータ10の制御部11は、階層推定テーブルの内容を修正する(ステップS110)。まず、制御部11は、階層推定テーブルにおいて「階層」に関する記述を修正するが、具体的には次のとおりである。制御部11は、図6において、スイッチングハブAに対応するレコードのうち、スイッチングハブAの下階層にあるスイッチングハブ(以下、単に下階層スイッチングハブという)のうちの1つ(ここではスイッチングハブBとする)に注目する。そして、制御部11は、図6において、そのスイッチングハブBに対応するレコードに注目し、スイッチングハブBに対して、下階層スイッチングハブが存在するか否かを判断する。ここでは、スイッチングハブBの下階層スイッチングハブとして、スイッチングハブDがある。このような場合、制御部11は、このスイッチングハブDの階層を「1」に「1」を加えて「2」に書き換える。つまり、これは、スイッチングハブDから見れば、スイッチングハブBのアップリンクポート以外のポートに、自身が繋がっていることになるから、そのスイッチングハブBの階層よりも少なくとも1つは自身の階層が下がるべきという考え方による。
【0037】
次に、制御部11は、スイッチングハブAに対する下階層スイッチングハブのうち、今度はスイッチングハブCに注目する。そして、制御部11は、図6において、スイッチングハブCのMACアドレスに対応するレコードに注目し、そのスイッチングハブCに対する下階層スイッチングハブが存在するか否かを判断する。ここでは、下階層スイッチングハブが存在しないので、制御部11はスイッチングハブCについての修正処理を終える。次に、制御部11は、スイッチングハブAに対する下階層スイッチングハブのうち、スイッチングハブDに注目する。このスイッチングハブDに対しては、前述したように、階層が当初の「1」よりも大きい「2」にすでに修正されている。制御部11は、スイッチングハブDに対して下階層スイッチングハブが存在するか否かを判断する。ここでは、下階層にあるスイッチングハブが存在しないので、制御部11はスイッチングハブDについての修正処理を終える。
【0038】
このように、制御部11は、まず、全てのスイッチングハブが属する階層を「0」と仮定する。この後に、制御部11は、他のスイッチングハブのアップリンクポート以外のポートに自身が繋がっているようなスイッチングハブを特定し、このスイッチングハブが属する階層を1つ下げていくという処理を順次行うことで、各々のスイッチングハブが属する階層を最終的に特定する。これにより、階層推定テーブルの「階層」に関する記述が変更され、階層推定テーブルは図6で示した内容から図7に示すような内容に変わる。
【0039】
次に、制御部11は、階層推定テーブルにおいて「下階層にあるスイッチングハブ」に関する記述を修正する。具体的には次のとおりである。制御部11は、図7において、階層が「0」のスイッチングハブAに注目する。制御部11は、このスイッチングハブAに対する下階層スイッチングハブであるスイッチングハブBの階層を参照し、これが「1」であることを認識する。このように、注目しているスイッチングハブの階層に「1」を加えた値が、その下階層スイッチングハブの階層に一致する場合には、制御部11は、その下階層スイッチングハブの階層が正しいと判断する。つまり、ここでは、スイッチングハブBの階層は「1」で正しいことが確認されることになる。次に、制御部11は、このスイッチングハブBに注目する。そして、制御部11は、このスイッチングハブBに対する下階層スイッチングハブであるスイッチングハブDの階層を参照し、これが「2」であることを認識する。この場合も、注目しているスイッチングハブの階層に「1」を加えた値が、その下階層スイッチングハブの階層に一致するから、制御部11は、スイッチングハブDの階層は「2」で正しいと判断する。続いて、制御部11は、このスイッチングハブDに注目して、スイッチングハブDに対する下階層スイッチングハブを探すが、これはないので、スイッチングハブDについての処理を終える。
【0040】
次に、制御部11は、図7において、スイッチングハブAに対する下階層スイッチングハブであるスイッチングハブCの階層を参照し、「1」であることを認識する。ここでは、注目しているスイッチングハブAの階層「0」に「1」を加えた値が、その下階層スイッチングハブであるスイッチングハブCの階層「1」に一致するから、制御部11は、スイッチングハブCの階層は「1」で正しいことを確認する。次に、制御部11は、スイッチングハブAに対する下階層スイッチングハブであるスイッチングハブDの階層を参照し、「2」であることを認識する。ここで、注目しているスイッチングハブAの階層「0」に「1」を加えた値は「1」であるのに対し、その下階層スイッチングハブであるスイッチングハブDの階層「2」であり、両者は一致しない。この場合、制御部11は、スイッチングハブAに対する下階層スイッチングハブの欄からスイッチングハブDのMACアドレスを削除する。これにより、階層推定テーブルは、図7で示した内容から図8のような内容に変更される。
【0041】
制御部11(トポロジ検出手段)は、上記のようにして生成した装置接続情報テーブル(図5)と階層推定テーブル(図8)の内容に基づいて、自ネットワークの物理トポロジを検出する(ステップS111)。例えば、図8では、階層「0」はスイッチングハブAであり、このスイッチングハブAは図5に示すように、ルータ10のポート番号1のポートに繋がっている。よって、制御部11は、図1に示したような、ルータ10とスイッチングハブAとの接続形態を特定することができる。次に、図8では、階層「1」はスイッチングハブB,Cである。このうちスイッチングハブBは、図5に示すように、スイッチングハブAのポート番号2のポートに繋がっている。よって、制御部11は、図1に示したような、スイッチングハブAとスイッチングハブBとの接続形態を特定することができる。また、スイッチングハブCは、図5に示すように、スイッチングハブAのポート番号3のポートに繋がっている。よって、制御部11は、図1に示したような、スイッチングハブAとスイッチングハブCとの接続形態を特定することができる。また、図8では、階層「2」はスイッチングハブDであり、このスイッチングハブDは、図5に示すように、スイッチングハブBのポート番号2のポートに繋がっている。よって、制御部11は、図1に示したような、スイッチングハブBとスイッチングハブDとの接続形態を特定することができる。
【0042】
一般に、各スイッチングハブは自動的に自身のMACアドレステーブルを生成するようになっている。以上の第1実施形態によれば、ルータ10は、リクエストパケット(第1のパケット)に対して応答パケット(第2のパケット)を返してきたスイッチングハブのみに問い合わせパケット(第3のパケット)を送信する。問い合わせパケットは、応答パケットを返してきた一のスイッチングハブに対して応答パケットを返してきた他のスイッチングハブが繋がっているポートのポート番号を問い合わせるものである。そしてルータ10は、各スイッチングハブA,B,C,DにおけるMACアドレステーブルのうち他のスイッチングハブに相当するMACアドレスに対応するポート番号を含む回答パケットを各スイッチングハブA,B,C,Dから受け取り、この内容に基づいて、自ネットワークの物理トポロジを検出することができる。つまり、相互認識フェーズにおいてトポロジ検出のために自ネットワーク内で伝送される情報が、各スイッチングハブA,B,C,DにおけるMACアドレステーブルの内容のごく一部のデータで足りる。よって、各スイッチングハブが、自ら自動的に生成したMACアドレステーブルのごく一部の内容を、ルータ10からの要求に応じて送信するという簡易な処理だけで済むし、また、ネットワークの通信トラヒックが比較的小さくて済む。また、自ネットワーク内で伝送される情報が、このようなポート番号及びMACアドレスの対応関係に相当する内容に過ぎないから、例えば特許文献1のように運用コストが高い通信プロトコルを用意する必要がない
【0043】
<第2実施形態>
第2実施形態の構成は第1実施形態と同じであり、第2実施形態が第1実施形態と異なるのは通信システム全体の動作である。図9は、第2実施形態に係る通信システムの動作を示すシーケンス図である。この通信システムの動作は、システム全体による相互認識フェーズと、ルータ10によるトポロジ検出フェーズという、2つのフェーズに大別される。まず、相互認識フェーズは、ルータ10の制御部11(要求手段)が自ネットワークのノード群に対し、各ノードの存在を検出するためのリクエストパケット(第1のパケット)を同報送信することで開始される(ステップS1)。リクエストパケットが同報送信されるタイミングは、例えば定期的なタイミングや、ユーザがUI部15を操作して相互認識フェーズの開始を指示したタイミングなどである。各々のスイッチングハブA,B,C,Dの制御部21は、このリクエストパケットをいずれかのポートが受信すると、そのポート以外のポートから他のスイッチングハブへとこのパケットを転送することで、それぞれのスイッチングハブA,B,C,Dにリクエストパケットが行き渡ることになる。
【0044】
このとき、各スイッチングハブA,B,C,Dの制御部21は、リクエストパケットを受信したポートを、ルータ10に繋がるアップリンクポートとして特定し、揮発性記憶部22にそのポート番号を記憶する(ステップS2)。そして、各スイッチングハブA,B,C,Dの制御部21(応答手段)は、リクエストパケットに応答する応答パケット(第2のパケット)をこのアップリンクポートからルータ10に宛てて送信する(ステップS3)。このとき、制御部21は、不揮発性記憶部23からMACアドレスを読み出すとともに、揮発性記憶部22からアップリンクポートのポート番号を読み出し、これらMACアドレス及びアップリンクポートのポート番号を応答パケットに含めて送信する。さらに、各スイッチングハブA,B,C,Dの制御部21は、アップリンクポート以外のポートが他のスイッチングハブから応答パケットを受信した場合には、当該応答パケットを受信したポートのポート番号を当該応答パケットに付加して、これをアップリンクポートからルータ10に宛てて転送する。第2実施形態における第1のパケットは、ルータ10の配下のネットワークに含まれるスイッチングハブ群に対して、当該スイッチングハブにおいてルータ10と繋がっているポートのポート識別情報、当該スイッチングハブのMACアドレス、当該スイッチングハブにおいてルータ10と繋がっているポート以外のポートのポート番号、および、当該ポート番号によって識別されるポートに繋がっている他のスイッチングハブのMACアドレスを要求するパケットに相当する。
【0045】
次に、ルータ10によるトポロジ検出フェーズに移行する。ルータ10の制御部11(受信手段)は、第1のパケットに対する応答として受信した、各スイッチングハブA,B,C,DのMACアドレス、各スイッチングハブA,B,C,Dのアップリンクポートのポート番号、及び、各スイッチングハブが他のスイッチングハブから応答パケットを受け取ったポートのポート番号を用いることで、どのスイッチングハブがどのポートでどのスイッチングハブが送信元である応答パケットを受信し、それをどのポートからルータ10に宛てて転送したかが全て分かる。そこで、制御部11は、これらの情報を基にして、自ネットワーク内の全ノードに関する装置接続情報テーブルを生成する(ステップS4)。制御部11(記憶手段)は装置接続情報テーブルを生成すると、これを揮発性記憶部12に記憶する(前掲の図5)。以降の動作は第1実施形態と同じである。
【0046】
この第2実施形態によっても、相互認識フェーズにおいてトポロジ検出のために自ネットワーク内で伝送される情報が、各スイッチングハブA,B,C,DにおけるMACアドレステーブルの内容の一部のデータで足りる。さらに、ルータからの問い合せパケット(第3のパケット)およびスイッチングハブからの回答パケット(第4のパケット)は不要となるから、ネットワークの通信トラヒックが比較的小さくて済む。また、自ネットワーク内で伝送される情報が、このようなポート番号及びMACアドレスの対応関係に相当する内容に過ぎないから、例えば特許文献1のように運用コストの高い通信プロトコルを用意する必要がない。
【0047】
以上の実施形態は次のように変形可能である。また、次の各変形は互いに組み合わせてもよい。
<変形例1>
上述した図4および図9の処理は、ルータ10がスイッチングハブA,B,C,Dの存在を検出するためのリクエストパケットを同報送信することで開始されていたが、この処理を開始する契機は、ルータ10によるものに限らず、スイッチングハブによるものであってもよい。例えば、自ネットワークに新たなスイッチングハブが接続されるときには、通信線がそのスイッチングハブのいずれかのポートに挿入されるから、そのスイッチングハブの制御部はこの挿入を電気的に検知し、この検知後に、ヘッダ部のタイプにトポロジ検出用のパケットである旨を示す値を設定し、ペイロード部のパケット種別を上述した1〜4以外の値(たとえば「0」)としたパケットをブロードキャストする。そして、ルータ10がこのパケットを受け取ると、上記のようなリクエストパケットを自ネットワーク内に同報送信する。他のスイッチングハブは、ペイロード部のパケット種別の値(「0」)を読み取るが、この値で示される種別のパケットは無視するようになっている。自ネットワークに新たなスイッチングハブが接続されると、物理トポロジの内容が変わるが、上記のようにすれば、物理トポロジの内容が変わったタイミングで、その物理トポロジを検出することができる。ただし、自ネットワークからスイッチングハブが取り外された場合にも物理トポロジを検出する必要に鑑みれば、相互認識フェーズを開始する契機としては、スイッチングハブが接続されたことによるものと、ルータ10からの定期的なタイミング又はユーザ操作に基づくリクエストによるものとを併用することが望ましい。
【0048】
<変形例2>
実施形態では、ネットワークに含まれるノードとして、ルータとスイッチングハブと呼ばれる2種類の中継装置を例示していたが、これらの中継装置の名称・種類は実施形態の例示に限らず、要するに、ツリー構造のルートに相当するノードとしてデータの中継を行う第1の中継装置と、他のノードとの間で通信を行う複数のポートを有し当該ポートを用いてデータの中継を行うノードである複数の第2の中継装置であればよい。例えば、第2の中継装置は、リピータなどと呼ばれる中継装置であってもよい。 また、中継装置の識別情報である装置識別情報は、MACアドレスに限定されるわけではなく、ネットワーク内のデータ中継時に各中継装置を識別するために用いられる装置識別情報であればよい。
【0049】
<変形例3>
実施形態では、制御部11が各スイッチングハブから受信した情報を基に装置接続情報テーブルを生成し、さらに階層推定テーブルを生成して物理トポロジを検出していたが、階層推定テーブルなるものを生成して揮発性記憶部12に記憶することは必ずしも必須ではない。要するに、制御部11は、各スイッチングハブから受信した情報を基に装置接続情報テーブルを生成したのち、実施形態で階層推定テーブルを用いて説明した原理や考え方に沿って、物理トポロジ、つまり自ネットワークのツリー構造における各階層に属するスイッチングハブのMACアドレスと、各々のスイッチングハブにおいて他のスイッチングハブが繋がっているポートのポート番号とによって表される物理トポロジを検出すればよい。
【0050】
<変形例4>
上述した実施形態におけるプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶した状態で、ルータ10等の第1の中継装置およびスイッチングハブA,B,C,D等の第2の中継装置に提供し得る。この場合には、記録媒体を読み取るインタフェースをこれらの中継装置に設ければよい。また、ネットワーク経由でこれらの中継装置にダウンロードさせることも可能である。
【0051】
<変形例5>
上述した実施形態では、ルータ10が問い合わせパケット(第3のパケット)を送信する際に、問い合わせ先のスイッチングハブが繋がっている他のスイッチングハブのMACアドレス(装置識別情報)を設定した通知データを送信し、これを受信したスイッチングハブは、通知データにてMACアドレスが示された他のスイッチングハブが繋がっているポートのポート番号を回答パケット(第4のパケット)の通知データに設定して返信していた。
これに対して、各々のスイッチングハブが、問い合わせパケット(第3のパケット)における上記の「他のスイッチングハブ」に相当する情報を記憶しておき、ルータ10から「他のスイッチングハブ」を特定しない問い合わせパケットを受信すると、自身が記憶している当該「他のスイッチングハブ」のMACアドレスと「他のスイッチングハブ」が繋がっているポートのポート番号とを合わせて、回答パケット(第4のパケット)の通知データとしてもよい。そのために、各々のスイッチングハブは、揮発性記憶部22(記憶手段)に上述したMACアドレステーブルとは別に、「応答MACアドレステーブル」を記憶する。「応答MACアドレステーブル」とは、応答パケット(第2のパケット)を受信したポート番号とその応答パケットの送信元のノード(すなわち「他のスイッチングハブ」)のMACアドレスとを登録したものである。「応答MACアドレステーブル」は、電源投入時等の初期状態では空欄になっていて、スイッチングハブの制御部21は、他のスイッチングハブから応答パケットを受信すると、当該応答パケットの送信元MACアドレスを応答MACアドレステーブルに記述する。
例えば上述の実施形態において、ルータ10の制御部11(第1の要求手段)がリクエストパケット(第1のパケット)を送信し、それに対して各スイッチングハブの制御部21(第1の応答手段)が応答パケット(第2のパケット)を送信した後において、各スイッチングハブの応答MACアドレステーブルは、以下のようになる。すなわち、スイッチングハブAの応答MACアドレステーブルには、スイッチングハブB、スイッチングハブC、スイッチングハブDのMACアドレスが記憶される。これは、スイッチングハブB、スイッチングハブC、スイッチングハブDから送信される応答パケットがスイッチングハブAを経由してルータ10に到達して、制御部11(第1の取得手段)により取得されるからである。同様にして、スイッチングハブBは、スイッチングハブDからの応答パケットを中継するため、スイッチングハブBの応答MACアドレステーブルにはスイッチングハブDのMACアドレスが記憶される。一方、スイッチングハブCおよびスイッチングハブDは、他のスイッチングハブからの応答パケットを中継しないため、スイッチングハブCおよびスイッチングハブDの応答MACアドレステーブルは空欄のままである。
ルータの制御部11(第2の要求手段)は、取得した応答パケットに含まれているMACアドレスによって識別される各々のスイッチングハブに対して、そのスイッチングハブにおいていずれかのポートに繋がっているスイッチングハブのMACアドレスおよび当該ポートのポート番号を要求するべく、問い合わせパケット(第3のパケット)を送信する。
そして、各スイッチングハブA,B,C,Dの制御部21(第2の応答手段)は、ルータ10から問い合わせパケットを受信すると、自身の応答MACアドレステーブルに記憶されたMACアドレスと当該MACアドレスに対応するポート番号とを通知データとした回答パケット(第4のパケット)をルータ10に返す。ポート番号は、通常のMACアドレステーブルを参照して求めてもよいし、他のスイッチングハブから応答パケットを受信した際に応答MACアドレステーブルに他のスイッチングハブのMACアドレスと当該応答パケットを受信したポートのポート番号とを対応づけて記憶しておいてもよい。なお、このときの問い合わせパケット(第3のパケット)においては、当該パケットが問い合わせパケットであることが分かればよいので、そのペイロード部の「通知データ」は使用されない。このため、通知データは例えば「0」としておく。あるいは、通知データを送信すること自体を行わない、つまりペイロード部に通知データが含まれないという態様であってもよい。
こうして全ての回答パケットが送信された後のルータ10の装置接続情報テーブルは、図11のようになる。ルータ10は、図11の装置接続情報テーブルの内容に基づいて階層を推定することで、上述の実施形態と同様の階層推定テーブル(図6)を得て階層構造のトポロジを検出することができる。このような変形例によれば、スイッチングハブからルータ10へ送信する回答パケットは、トポロジ検出に必要なMACアドレスとポート番号の組合せのみですむ。
【0052】
<変形例6>
以上の説明では、ルータおよびスイッチングハブのみがリクエストパケットあるいは問い合わせパケットに対する応答を行うものとして説明したが、他のネットワークノード(たとえばパーソナルコンピュータ等の通信端末)もこれらに応答して応答パケットや回答パケットを送信するようにしてもよい。
【符号の説明】
【0053】
10・・・ルータ、A,B,C,D・・・スイッチングハブ、11,21・・・制御部、12,22・・・揮発性記憶部、13,23・・・不揮発性記憶部、14―1〜14―n、24―1〜24―m、P・・・ポート、15・・・UI部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11