(57)【特許請求の範囲】
【請求項１】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
（Ａ）前記複数のスイッチングハブのうちの少なくとも１つは、
当該スイッチングハブに対してフレームの転送を行った装置についてのみ、当該転送を行った装置をＯＳＩ参照モデルの第２層において一意に識別するハードウェア識別子を記憶するための記憶手段を有するとともに、
受信したフレームの宛先に応じて当該フレームの転送制御を行う処理であって、受信したフレームに当該フレームの転送を行った装置の前記ハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行う第１の手段と、
前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを前記ルータへ送信する第２の手段と、を有し、
（Ｂ）前記ルータは、
一部のフレームに当該ルータを一意に示すハードウェア識別子を前記転送元識別子として付与して前記ネットワークへマルチキャストする第３の手段と、
前記通知フレームを受信し、当該通知フレームのペイロード部から当該通知フレームの送信元のスイッチングハブへフレームの転送を行った装置の転送元識別子のリストを読出し、当該リストに基づいて当該ルータと当該スイッチングハブとの接続関係を表すトポロジデータを生成する第４の手段と、を有する
ことを特徴とする通信システム。
【請求項２】
前記第２の手段は、前記通知フレームを前記ルータへ送信する際に、自装置のハードウェア識別子を転送元識別子として付与して送信することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記一部のフレームとは、前記通知フレームの送信を要求する旨の要求フレームであり、前記第２の手段は当該要求フレームを受信したことを契機として前記通知フレームを送信することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記第３の手段は、前記ネットワークに含まれる通信端末から予め定められた種類のパケットを受信したことを契機として、または周期的に前記要求フレームをマルチキャストすることを特徴とする請求項３に記載の通信システム。
【請求項５】
前記予め定められた種類のパケットは、前記ネットワークに含まれる通信端末から前記ルータのＭＡＣアドレス解決のためのＡＲＰパケットであることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記第１の手段は、転送元識別子が付与されているフレームを受信した通信ポートのポート識別子と当該転送元識別子とを対応付けて前記記憶手段に書き込むことを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項７】
自装置に対してフレームの転送を行った装置についてのみ、当該転送を行った装置をＯＳＩ参照モデルの第２層において一意に識別するハードウェア識別子を記憶するための記憶手段と、
受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、自装置に対して当該フレームの転送を行った装置の前記ハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、
前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを、自装置を含むネットワークと他の通信網とを接続するルータへ送信する通知フレーム送信手段と
を有することを特徴とするスイッチングハブ。
【請求項８】
コンピュータを、
受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、当該フレームを当該コンピュータへ転送した装置をＯＳＩ参照モデルの第２層において一意に示すハードウェア識別子が転送元識別子として付与されていた場合には、当該コンピュータに対してフレームの転送を行った装置のみのハードウェア識別子を記憶するために当該コンピュータに設けられている記憶手段に、当該転送元識別子を書き込んだ後に、当該フレームに付与されている転送元識別子を当該コンピュータのハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、
前記記憶手段に記憶されている前記転送元識別子のリストをペイロード部に書き込んだ通知フレームを、当該コンピュータを含むネットワークと他のネットワークとを接続するルータへ送信する通知フレーム送信手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＡＮ（Local Area Network）の運用管理を支援する技術に関する。
【背景技術】
【０００２】
近年、企業等においては、支店などの各拠点にＬＡＮ（以下、拠点内ＬＡＮ）を敷設し、これら拠点内ＬＡＮをルータによってインターネットなどのＩＰ（Internet Protocol）網に接続して企業内情報システムを構築することが一般に行われている。このような拠点内ＬＡＮは複数のスイッチングハブをカスケード接続して構成されることが多く、各ユーザ（例えば、企業の従業者）の使用する通信端末はそれらスイッチングハブの何れかに接続される。ここで、ルータとは、ＯＳＩ（Open Systems Interconnection）参照モデルにおける第３層（ネットワーク層）の通信プロトコルにしたがってパケット（第３層におけるデータの送受信単位）の転送制御を行う中継装置である。また、スイッチングハブとは、ＯＳＩ参照モデルにおける第２層（データリンク層）の通信プロトコルにしたがってフレーム（第２層におけるデータの送受信単位）の転送制御を行う中継装置であり、Ｌ２スイッチとも呼ばれる。
【０００３】
企業内情報システム（或いは、その構成要素の通信システムである各拠点内ＬＡＮ）の運用管理や保守を行う際には、ルータとその配下の拠点内ＬＡＮに含まれる各スイッチングハブとの接続関係（以下、ネットワークトポロジ）を把握しておくことが重要である。このため、ＬＡＮにおけるネットワークトポロジの把握を可能にするための技術が種々提案されている。例えば、特許文献１に開示された技術においては、ネットワークトポロジの把握対象のＬＡＮに管理ノードと呼ばれるコンピュータ装置を接続し、当該管理ノードから所定のフレームをマルチキャスト／ブロードキャストさせる一方、各スイッチングハブには、当該フレームの受信を契機として当該フレームに対する応答フレームのペイロード部に自装置のＭＡＣ（Media Access Control）アドレスを書き込んで返信する処理を実行させる。ここで、ＭＡＣアドレスとは、第２層において各通信装置を一意に識別するハードウェア識別子である。また、特許文献１に開示された技術では、各スイッチングハブに、他のスイッチングハブから送信された応答フレームの転送を行う際に自装置のＭＡＣアドレスをペイロード部に追記して転送する処理を実行させる。このようにして各スイッチングハブから返信されてくる応答フレームのペイロード部に書き込まれているＭＡＣアドレスの配列を辿ることで、上記ＬＡＮにおけるネットワークトポロジが把握されるのである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２１２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多数のスイッチングハブを含む大規模なＬＡＮでは、カスケード接続の段数が多く、各スイッチングハブの接続関係も複雑であることが多い。このため、大規模なＬＡＮほどそのネットワークトポロジを把握することの重要性は高まる。しかし、特許文献１に開示された技術には、カスケード接続の段数が多く大規模なＬＡＮに適用し難いといった問題点がある。その理由は以下の通りである。特許文献１に開示された技術では、スイッチングハブによって応答フレームの転送が行われるたびにペイロード部のデータサイズが増加する。このため、カスケード接続の段数が増えるほど、ペイロード部のデータサイズの大きい応答フレームがＬＡＮ内を伝送されることになる。つまり、スイッチングハブのカスケード接続の段数が増えるにつれて、ネットワークトポロジの把握のための通信によってＬＡＮにかかる負荷が大きくなるのである。ネットワークトポロジの把握のための通信によってＬＡＮに過剰な負荷がかかると、当該ＬＡＮを介して行われる本来のデータ通信（例えば、ＬＡＮに収容される通信端末間のデータ通信）に悪影響をおよぼす恐れがある。これが、大規模なＬＡＮにおけるネットワークトポロジの把握に、特許文献１に開示された技術を適用し難い理由である。また、特許文献１に開示された技術では、全てのスイッチングハブから送信された応答フレームを受信した時点でネットワークトポロジの把握が行われるため、所定のフレームのマルチキャストからネットワークトポロジの把握までに長い時間を要しレスポンスが悪いといった問題がある。さらに、特許文献１に開示された技術では、ＬＡＮにかかる負荷の増大に連れて応答フレームの欠落が発生し易くなり、応答フレームの欠落が発生した場合にネットワークトポロジを把握できない、といった問題もある。
【０００６】
本発明は上記課題に鑑みて為されたものであり、ルータ配下のネットワークにおけるネットワークトポロジを当該ネットワークに過剰な負荷をかけることなく把握することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、（Ａ）前記複数のスイッチングハブのうちの少なくとも１つは、記憶手段を有するとともに、受信したフレームの宛先に応じて当該フレームの転送制御を行う処理であって、受信したフレームに当該フレームの転送を行った装置をＯＳＩ参照モデルの第２層において一意に識別するハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行う第１の手段と、前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを前記ルータへ送信する第２の手段と、を有し、（Ｂ）前記ルータは、一部のフレームに当該ルータを一意に示すハードウェア識別子を前記転送元識別子として付与して前記ネットワークへマルチキャストする第３の手段と、前記通知フレームを受信し、当該通知フレームのペイロード部から当該通知フレームの送信元のスイッチングハブへフレームの転送を行った装置の転送元識別子のリストを読出し、当該リストに基づいて当該ルータと当該スイッチングハブとの接続関係を表すトポロジデータを生成する第４の手段と、を有することを特徴とする通信システム、を提供する。
【０００８】
例えば、ルータ配下のネットワークに含まれるスイッチングハブの全てが上記第１および第２の手段を有するものであれば、転送元識別子の付与されたフレームの転送を行うたびに各スイッチングハブの記憶手段に当該転送元識別子が蓄積される。つまり、各スイッチングハブに対してフレームの転送を行った隣接中継装置が特定されるのである。ここで、上記ルータは、配下のネットワークに向けてマルチキャストするフレームのうちの一部のものに転送元識別子を付与してマルチキャストするのであるから、各スイッチングハブでは、当該フレームを受信して転送元識別子を記憶し、フラッディングする処理が行われる。これにより、各スイッチングハブについての上流側（ルータに近い側）の隣接中継装置が特定される。各スイッチングハブについて上流側の隣接中継装置が特定されるということは、上記ルータと各スイッチングハブの接続関係が特定されることに他ならない。
【０００９】
加えて、本発明の通信システムにおいては、各スイッチングハブは転送元識別子の付与されたフレームの転送を行う際に自装置のハードウェア識別子を新たな転送元識別子として追記するのではなく、転送元識別子の書き換えを行うのであるから、スイッチングハブにてフレームの転送が行われるたびに当該フレームのペイロード部のデータサイズが増加することはない。このため、本発明の通信システムによれば、ルータ配下のネットワークが大規模化したとしても、当該ネットワークに過剰な負荷をかけることなく、そのネットワークトポロジを特定することが可能になる。なお、詳細については後述するが、ルータ配下のネットワークに含まれるスイッチングハブのなかに上記第１および第２の手段を有しないもの（具体的には、従来のスイッチングハブ）が含まれている場合であっても、当該従来のスイッチングハブを省いた大まかなネットワークトポロジを特定することができる。
【００１０】
より好ましい態様においては、前記第２の手段は、前記通知フレームを前記ルータへ送信する際に、自装置のハードウェア識別子を転送元識別子として付与して送信することを特徴とする。このような態様によれば、各スイッチングハブの上流側の隣接中継装置に加えて、下流側の隣接中継装置が特定される。
【００１１】
また別の好ましい態様においては、前記一部のフレームとは、前記通知フレームの送信を要求するために新たに定義した要求フレームであり、前記第２の手段は、当該要求フレームを受信したことを契機として前記通知フレームを送信する。このような態様によれば、第２層における既存の通信プロトコルとは別個に、ネットワークトポロジを特定するための新たな通信プロトコル（第２層の通信プロトコル）を定めることが可能になる。ここで、要求フレームをどのようなタイミングでルータに送信させるのかについては種々の態様が考えられる。例えば、ネットワークに含まれる通信端末から予め定められた種類のパケットを受信したことを契機として送信させる態様や、所定の時間間隔で周期的にマルチキャストさせる態様などである。詳細については後述するが、このような態様によれば、ネットワークトポロジに変化が生じたときに、当該変化後のネットワークトポロジを遅滞なく運用管理者に把握させることができる、と期待される。
【００１２】
また別の好ましい態様においては、前記第１の手段は、転送元識別子が付与されているフレームを受信した通信ポートのポート識別子と当該転送元識別子とを対応付けて前記記憶手段に書き込むことを特徴とする。このような態様によれば、隣接中継装置に対するポートの接続関係（すなわち、各スイッチングハブが備える複数の通信ポートのうちの何れが上流側或いは下流側の隣接中継装置に接続されているのか）を含めてルータ配下のネットワークにおけるネットワークトポロジを特定することが可能になる。
【００１３】
上記課題を解決するために、本発明は、記憶手段と、受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、自装置に対して当該フレームの転送を行った装置をＯＳＩ参照モデルの第２層において一意に示すハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを、自装置を含むネットワークと他の通信網とを接続するルータへ送信する通知フレーム送信手段とを有することを特徴とするスイッチングハブ、を提供する。
【００１４】
このようなスイッチングハブと、前述した第３および第４の手段を有するルータとを組み合わせることで、本発明の通信システムを構築することができるからである。また、本発明の別の態様としては、コンピュータを上記フレーム転送制御手段および通知フレーム送信手段として機能させることを特徴とするプログラムを提供する態様も考えられる。このようなプログラムにしたがって一般的なコンピュータを作動させることで、当該コンピュータを本発明のスイッチングハブとして機能させることが可能になるからである。また、このようなプログラムの具体的な提供態様としては、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【００１５】
また、上記課題を解決するために、本発明は、一部のフレームに、ＯＳＩ参照モデルの第２層において当該ルータを一意に示すハードウェア識別子を当該フレームの転送元を示す転送元識別子として付与して配下のネットワークへマルチキャストするマルチキャスト手段と、前記ネットワークに含まれる１または複数のスイッチングハブの各々から送信されてくる通知フレームであって、当該通知フレームの送信元のスイッチングハブに対してフレームの転送を行った他の装置のハードウェア識別子のリストがペイロード部に書き込まれた通知フレームを受信し、前記１または複数のスイッチングハブの各々について当該スイッチングハブに対してフレームの転送を行った装置を当該転送元識別子のリストから特定し、自装置と前記１または複数のスイッチングハブとの接続関係を表すトポロジデータを生成する接続関係特定手段と、を有することを特徴とするルータ、を提供する。
【００１６】
このようなルータと、前述した第１および第２の手段を有するスイッチングハブとを組み合わせることで、本発明の通信システムを構築することができるからである。また、本発明の別の態様としては、コンピュータを上記マルチキャスト手段および接続関係特定手段として機能させることを特徴とするプログラムを提供する態様も考えられ、このようなプログラムの提供態様の具体例は前述した通りである。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態のＬＡＮ１Ａの構成例を示す図である。
【図２】同ＬＡＮ１Ａに含まれるスイッチングハブ５０の構成例を示す図である。
【図３】同スイッチングハブ５０のスイッチングエンジン部５２０が実行するフレーム転送制御処理の流れを示すフローチャートである。
【図４】同ＬＡＮ１Ａにおいて送受信されるフレームのデータ構造を示す図である。
【図５】同ＬＡＮ１Ａを他のネットワークに接続するルータ６０の構成例を示す図である。
【図６】通信端末４０、スイッチングハブ５０およびルータ６０の各々の通信ポートの接続関係の一例を示す図である。
【図７】スイッチングハブ５０およびルータ６０の動作を説明するための図である。
【図８】スイッチングハブ５０およびルータ６０の動作を説明するための図である。
【図９】本発明の第２実施形態のＬＡＮ１Ｂの構成例を示す図である。
【図１０】同ＬＡＮ１Ｂにおいてルータ６０により生成されるトポロジデータから把握されるネットワークトポロジを説明するための図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、この発明の実施形態について説明する。
＜Ａ：第１実施形態＞
＜Ａ−１：構成＞
図１は、本発明の第１実施形態の通信システムであるＬＡＮ１Ａの構成例を示す図である。このＬＡＮ１Ａは、例えば企業の支店に敷設される拠点内ＬＡＮであり、ルータ６０によってインターネットなどのＩＰ網（図示省略）に接続される。このＬＡＮ１Ａは、上記支店内における通信システムの役割を果たす一方、他の支店に敷設される拠点内ＬＡＮとともに上記企業における企業内情報システムを構成する。図１に示すように、ＬＡＮ１Ａは、４台のスイッチングハブ（スイッチングハブ５０Ａ、５０Ｂ、５０Ｃ、および５０Ｄ）と、２台の通信端末（通信端末４０Ａおよび４０Ｂ）と、１台の操作端末３０と、を含んでいる。図１に示すように、ルータ６０にはスイッチングハブ５０Ａと操作端末３０とが接続されており、スイッチングハブ５０Ａにはスイッチングハブ５０Ｂが接続されている。そして、スイッチングハブ５０Ｂにはスイッチングハブ５０Ｃと５０Ｄとが接続されており、スイッチングハブ５０Ｃには通信端末４０Ａが、スイッチングハブ５０Ｄには通信端末４０Ｂが各々接続されている。
【００１９】
操作端末３０、通信端末４０Ａおよび４０Ｂの各々は、例えばパーソナルコンピュータである。操作端末３０はＬＡＮ１Ａの運用管理のための各種操作をＬＡＮ１Ａの運用管理者に行わせるためのものである。通信端末４０Ａおよび４０Ｂは、ＬＡＮ１Ａに含まれる何れかのスイッチングハブに接続されることで、当該ＬＡＮ１Ａに収容される。ＬＡＮ１Ａに収容された通信端末４０Ａおよび４０Ｂの各々は、他の通信装置（例えば、ＬＡＮ１Ａに収容されている他の通信端末や他の拠点内ＬＡＮに収容されている通信端末、或いはＩＰ網に接続されているＷＷＷサーバなど）との間でＩＰにしたがったパケット通信を行う。以下、通信端末４０Ａおよび４０Ｂの各々を区別する必要がない場合には、「通信端末４０」と表記する。なお、図１ではＬＡＮ１Ａに２台の通信端末４０が収容される場合について例示されているが、３台以上の通信端末４０がＬＡＮ１Ａに収容されても良く、また、通信端末４０が１台だけ収容されている態様であっても勿論良い。
【００２０】
図１のスイッチングハブ５０Ａ、５０Ｂ、５０Ｃおよび５０Ｄの各々は同一の構成を有している。以下では、これら４台のスイッチングハブの各々を区別する必要がない場合には、「スイッチングハブ５０」と表記する。スイッチングハブ５０は、ＩＰよりも下位のプロトコル階層である第２層（データリンク層）においてデータ通信を中継する中継装置である。ルータ６０は、ネットワーク層においてデータ通信を中継する中継装置であり、ＬＡＮ１Ａのデフォルトゲートウェイの役割を果たす。すなわち、ルータ６０は、ＩＰ網から受信したパケットの送信先ＩＰアドレスが通信端末４０Ａまたは４０Ｂの何れかのものであれば、そのパケットをＬＡＮ１Ａへと転送し、その送信先ＩＰアドレスが通信端末４０Ａまたは４０Ｂの何れのものでもない場合にはルーティングテーブルの格納内容にしたがって他のルータへ転送する。このようにルータ６０はＬＡＮ１Ａのデフォルトゲートウェイとして機能するため、以下ではＬＡＮ１Ａのことを「ルータ６０の配下のネットワーク」と呼ぶ場合がある。
【００２１】
図１に示すＬＡＮ１Ａにおいては、第２層の通信プロトコルにしたがったデータ通信（すなわち、フレームの送受信および転送制御）の実行過程において、ＬＡＮ１Ａに含まれる各中継装置（すなわち、ルータ６０およびスイッチングハブ５０）に、隣接中継装置を検出させる。ここで、隣接中継装置とは、当該中継装置に対してフレームの転送を行った他の中継装置のことであり、ＬＡＮ１Ａにおいては当該中継装置に直結されている他の中継装置のことである。例えば、ＬＡＮ１Ａにおいては、ルータ６０についての隣接中継装置はスイッチングハブ５０Ａであり、スイッチングハブ５０Ａについての隣接中継装置はルータ６０およびスイッチングハブ５０Ｂである。また、スイッチングハブ５０Ｂについての隣接中継装置はスイッチングハブ５０Ａ、５０Ｃおよび５０Ｄであり、スイッチングハブ５０Ｃ（或いは５０Ｄ）についての隣接中継装置はスイッチングハブ５０Ｂである。
【００２２】
そして、図１に示すＬＡＮ１Ａにおいては、隣接中継装置の検出結果をルータ６０へ通知する処理を各スイッチングハブ５０に実行させる一方、ルータ６０には、各スイッチングハブ５０からの通知結果に基づいて自装置と各スイッチングハブ５０の接続関係（すなわち、ＬＡＮ１Ａのネットワークトポロジ）を表すトポロジデータを生成する処理を実行させる。ＬＡＮ１Ａの運用管理者は、操作端末３０を用いて上記トポロジデータを参照することで、当該ＬＡＮ１Ａのネットワークトポロジを把握することができるのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ５０およびルータ６０を中心に説明する。
【００２３】
＜Ａ−１−１：スイッチングハブ５０の構成＞
図２は、スイッチングハブ５０の構成を示すブロック図である。図２に示すように、スイッチングハブ５０は、通信インタフェース（以下、Ｉ／Ｆ）部５１０、スイッチングエンジン部５２０、および記憶部５３０を有している。
【００２４】
通信Ｉ／Ｆ部５１０は、複数の通信ポートを有している。これら複数の通信ポートの各々には、例えば１００ＢＡＳＥ−Ｔなどの通信ケーブルを介して他の通信装置（本実施形態では、ルータ６０や他のスイッチングハブ５０、或いは通信端末４０の何れか）が接続される。これら複数の通信ポートの各々には、通信ポート毎に固有のポート識別子（例えば、ポート番号）が予め割り当てられており、当該ポート識別子を用いて各通信ポートを一意に識別することができる。通信Ｉ／Ｆ部５１０は、各通信ポートを介して受信したフレームをスイッチングエンジン部５２０に与える一方、スイッチングエンジン部５２０から与えられるフレームを同スイッチングエンジン部５２０によって指示された通信ポートから送出する。
【００２５】
記憶部５３０は、例えばＲＡＭ（Random Access Memory）などの揮発性メモリとＥＰＲＯＭ（Erasable Programmable Read Only Memory）などの不揮発性メモリとを含んでいる（図２では、何れも図示略）。この不揮発性メモリには、本発明のスイッチングハブの特徴を顕著に示す処理をスイッチングエンジン部５２０に実行させるためのファームウェア（プログラム）が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部５２０によって利用される。また、上記揮発性メモリは、通信Ｉ／Ｆ部５１０によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たし、さらに、この揮発性メモリには、図２のＭＡＣアドレステーブルと同図２の隣接中継装置テーブルとが格納される。
【００２６】
図２のＭＡＣアドレステーブルは、従来のスイッチングハブが有するものと特段に変るところはない。このＭＡＣアドレステーブルには、通信Ｉ／Ｆ部５１０によって受信したフレームの送信元ＭＡＣアドレスに対応付けて当該フレームを受信した通信ポートのポート識別子が格納される。ＭＡＣアドレステーブルへのＭＡＣアドレスおよびポート識別子の書き込みは、フレーム転送制御に伴って行われる。例えば、ルータ６０のＭＡＣアドレス解決のために通信端末４０から送信されたフレーム（ペイロード部にＡＲＰ（Address Resolution Protocol）パケットが書き込まれたフレーム）の転送過程では、当該フレームの送信元ＭＡＣアドレス（すなわち、通信端末４０のＭＡＣアドレス）と当該フレームの受信ポートのポート識別子とを対応付けてＭＡＣアドレステーブルに書き込む処理が行われる。一方、当該フレームに対する応答フレームの転送過程では、当該フレームの送信元ＭＡＣアドレス（すなわち、ルータ６０のＭＡＣアドレス）と当該フレームの受信ポートのポート識別子とを対応付けてＭＡＣアドレステーブルに書き込む処理が行われる。このＭＡＣアドレステーブルの格納内容は、送信先ＭＡＣアドレスに基づくフレームの転送制御を行う際に利用される。
【００２７】
隣接中継装置テーブルには、通信Ｉ／Ｆ部５１０が有する複数の通信ポートの各々のポート識別子に対応付けて接続先識別子が格納される。ここで、接続先識別子とは、当該接続先識別子を対応付けられている通信ポートの接続先が隣接中継装置であるか否かを示すとともに、当該接続先が隣接中継装置である場合には当該隣接中継装置を一意に示す情報である。前述したように隣接中継装置とは、当該スイッチングハブ５０に対してフレームの転送を行った他の中継装置（本実施形態では、ルータ６０或いは他のスイッチングハブ５０）のことである。本実施形態では、隣接中継装置に接続されている通信ポートのポート識別子には接続先識別子として当該隣接中継装置のＭＡＣアドレスが対応付けられ、隣接中継装置以外の他の通信装置（本実施形態では、通信端末４０）が接続さている通信ポート、或いは他の通信装置に接続されていない通信ポートには接続先識別子としてＮＵＬＬ（０ｘ００）が対応付けられる。
【００２８】
この隣接中継装置テーブルは、スイッチングハブ５０の電源（図示略）が投入されたことを契機として、各接続先識別子をＮＵＬＬとした状態で生成される。そして、予め定められた特定のフレームの中継を行うことに伴って、当該テーブルの格納内容の更新（すなわち、隣接中継装置が接続されている通信ポートのポート識別子に対応する接続先識別子を当該隣接中継装置のＭＡＣアドレスに書き換えること）が行われる。詳細については後述するが、本実施形態では、上記特定のフレームとして、ネットワークトポロジ特定用のフレーム（隣接中継装置テーブルの格納内容をルータ６０に通知するために各スイッチングハブ５０が送信する通知フレームと、当該通知フレームの送信を要求するためにルータ６０が配下のＬＡＮ１Ａ内にマルチキャストする要求フレームの２種類）が予め定められている。本実施形態の特徴の１つは、このような隣接中継装置テーブルを各スイッチングハブ５０に記憶させ、上記ネットワークトポロジ特定用のフレームの転送制御に伴ってその格納内容を更新させるようにしたことにある。
【００２９】
スイッチングエンジン部５２０は、例えばＣＰＵ（Central Processing Unit）である。スイッチングエンジン部５２０は、記憶部５３０に記憶されているファームウェアを実行することで、スイッチングハブ５０の制御中枢として機能する。このファームウェアにしたがって作動しているスイッチングエンジン部５２０は、何れかの通信ポートを介してフレームを受信するたびに、図３のフローチャートに示す処理を実行する。図３に示すように、上記ファームウェアにしたがってスイッチングエンジン部５２０が実行する処理としては、フレーム転送制御処理と通知フレーム送信処理の２つが挙げられる。以下、これら２つの処理の処理内容の詳細な説明に先立って、ＬＡＮ１Ａにおいて送受信されるフレームのデータ構造について説明しておく。
【００３０】
図４（Ａ）は、ＬＡＮ１Ａにおいて送受信される一般的なフレームのデータ構造を示す図である。図４（Ａ）に示すように、フレームは、ヘッダ部と、ペイロード部とを有している。ヘッダ部には、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、種別識別子が格納される。例えば、前述した要求フレームの場合は、送信先ＭＡＣアドレスにはマルチキャストアドレスがセットされ、送信元ＭＡＣアドレスにはルータ６０のＭＡＣアドレスがセットされる。要求フレームはルータ６０から配下のＬＡＮ１Ａに向けてマルチキャストされるからである。また、通知フレームの場合は、送信先ＭＡＣアドレスにはルータ６０のＭＡＣアドレスがセットされ、送信元ＭＡＣアドレスにはその送信元のスイッチングハブ５０のＭＡＣアドレスがセットされる。前述したように、通知フレームは、スイッチングハブ５０からルータ６０へユニキャストされるからである。種別識別子とは、フレームのペイロード部に格納されているデータ（パケット）の種類を示す識別子である。前述した要求フレームおよび通知フレームの場合、ネットワークトポロジ特定用データがペイロード部に格納されたネットワークトポロジ特定用フレームであることを明示するための値（本実施形態では、０ｘｅ８１２）が種別識別子にセットされる。
【００３１】
図４（Ｂ）は、要求フレームのペイロード部のデータ構造を示す図であり、図４（Ｃ）は、通知フレームのペイロード部のデータ構造を示す図である。図４（Ｂ）および図４（Ｃ）に示すように、要求フレームのペイロード部のデータ構造と通知フレームのペイロード部のデータ構造は、後者が隣接中継装置情報を含む点のみが異なる。前述したように、通知フレームは、要求フレームに対する応答としてスイッチングハブ５０がルータ６０へ返信するものであり、当該通知フレームの返信時点における当該スイッチングハブ５０の隣接中継装置テーブルの格納内容（すなわち、当該スイッチングハブ５０の隣接中継装置のＭＡＣアドレスと当該隣接中継装置から転送されたフレームを受信した通信ポートのポート識別子のリスト）が上記隣接中継装置情報としてセットされる。
【００３２】
また、図４（Ｂ）と図４（Ｃ）とを対比すれば明らかなように、要求フレームのペイロード部と通知フレームのペイロード部には、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、フレーム種別識別子（要求フレームであるか、それとも、通知フレームであるかを示す識別子）、転送元識別子が共通して書き込まれる。図４（Ｂ）（或いは図４（Ｃ））の送信先ＭＡＣアドレスおよび送信元ＭＡＣアドレスについては、当該要求フレーム（或いは通知フレーム）のヘッダ部に書き込まれていたものと同一のものが各々書き込まれる。転送元識別子には、要求フレーム（或いは通知フレーム）の送信の際にはその送信元のＭＡＣアドレスがセットされ、他のスイッチングハブ５０によって当該フレームの転送が行われるたびに当該転送を行ったスイッチングハブ５０のＭＡＣアドレスに書き換えられる。
以上がＬＡＮ１Ａにおいて送受信されるフレームのデータ構造である。
【００３３】
次いで、図３を参照しつつ、フレーム転送制御処理、および通知フレーム送信処理の処理内容を説明する。図３に示すように、フレーム転送制御処理は、その送信先ＭＡＣアドレスに基づく転送制御（ステップＳＡ１５０）を含んでいる。ここで、受信フレームの送信先ＭＡＣアドレスに基づく転送制御とは、当該送信先ＭＡＣアドレスがユニキャストアドレスではない場合、または当該送信先ＭＡＣアドレスがＭＡＣアドレステーブルに格納されていないユニキャストアドレスである場合には、当該受信フレームのフラッディングを行う一方、当該送信先ＭＡＣアドレスがＭＡＣアドレステーブルに格納されたユニキャストアドレスである場合には、当該ＭＡＣアドレスに対応付けてＭＡＣアドレステーブルに格納されているポート識別子の示す通信ポートのみから当該受信フレームを送出することである。ここでユニキャストアドレスではないＭＡＣアドレスとしては、マルチキャストアドレスまたはブロードキャストアドレスが挙げられる。また、フラッディングとは、受信フレームを受信した通信ポート以外の全ての通信ポートから当該受信フレームを送出することである。この送信先ＭＡＣアドレスに基づく転送制御については従来のスイッチングハブにおけるものと特段に変るところはない。換言すれば、従来のスイッチングハブでは、フレーム転送制御処理として上記送信先ＭＡＣアドレスに基づく転送制御（ステップＳＡ１５０の処理）のみが実行されるのである。
【００３４】
図３に示すように、本実施形態のフレーム転送制御処理は、ステップＳＡ１５０の処理の他に、ステップＳＡ１００〜ＳＡ１２０の処理を含んでいる。図３に示すように、本実施形態のフレーム転送制御処理では、スイッチングエンジン部５２０は、まず、受信フレームがネットワークトポロジ特定用フレーム（すなわち、要求フレーム或いは通知フレーム）であるか否かを当該受信フレームのヘッダ部の種別識別子を参照して判定する（ステップＳＡ１００）。具体的には、スイッチングエンジン部５２０は、受信フレームの種別識別子の値が０ｘｅ８１２である場合には、当該受信フレームはネットワークトポロジ特定用フレームであると判定する。そして、スイッチングエンジン部５２０は、ステップＳＡ１００の判定結果が“Ｎｏ”である場合には、前述したステップＳＡ１５０の処理を実行して本フレーム転送制御処理を終了し、逆に、ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合には、ステップＳＡ１１０以降の処理を実行する。
【００３５】
ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合に実行されるステップＳＡ１１０では、スイッチングエンジン部５２０は、ネットワークトポロジ特定用フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を、当該フレームのペイロード部に書き込まれている転送元識別子によって書き換える。そして、スイッチングエンジン部５２０は、受信したネットワークトポロジ特定用フレームの転送元識別子を自装置のＭＡＣアドレスに書き換える（ステップＳＡ１２０）。このように、ネットワークトポロジ特定用フレームを受信した場合に上記ステップＳＡ１１０およびＳＡ１２０の処理を実行する点に本実施形態のスイッチングハブ５０の特徴の１つがある。加えて、スイッチングエンジン部５２０は、図３に示すように、受信フレームが要求フレームであるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定し（ステップＳＡ１３０）、その判定結果がＹｅｓである場合には、さらに、通知フレーム送信処理（ステップＳＡ１４０）を実行する。この通知フレーム送信処理では、スイッチングエンジン部５２０は、自装置の隣接中継装置テーブルの格納内容に応じた隣接中継装置情報と転送元識別子（自装置のＭＡＣアドレス）とをペイロード部に書き込んだ通知フレームを生成し、ルータ６０に送信（ユニキャスト）する。
以上がスイッチングハブ５０の構成である。
【００３６】
＜Ａ−１−２：ルータ６０の構成＞
図５は、ルータ６０の構成を示すブロック図である。図５に示すように、ルータ６０は、通信Ｉ／Ｆ部６１０、ルーティングエンジン部６２０および記憶部６３０を有している。通信Ｉ／Ｆ部６１０は、スイッチングハブ５０の通信Ｉ／Ｆ部５１０と同様に複数のポートを有しており、各ポートには固有のポート識別子が割り当てられている。これら複数のポートのうちの３つに、ＩＰ網（図１では図示略）、スイッチングハブ５０Ａおよび操作端末３０が各々接続される。通信Ｉ／Ｆ部６１０は、通信Ｉ／Ｆ部５１０と同様、各通信ポートを介して受信したフレームをルーティングエンジン部６２０に与える一方、ルーティングエンジン部６２０から与えられるフレームを同ルーティングエンジン部６２０によって指示された通信ポートから送出する。
【００３７】
記憶部６３０も、スイッチングハブ５０の記憶部５３０と同様に、ＲＡＭなどの揮発性メモリとＥＰＲＯＭなどの不揮発性メモリを含んでいる（図示略）。この不揮発性メモリにはファームウェアが格納されている。本実施形態では、このファームウェアにしたがってルーティングエンジン部６２０を作動させることによって本実施形態の特徴を顕著に示すルータ６０の機能が実現される。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部６２０によって利用されるとともに、受信したフレーム（或いは、パケット）を一時的に蓄積しておくためのバッファの役割を果たす。また、当該揮発性メモリには、図５に示すルーティングテーブル、当該ルータ６０についてのＭＡＣアドレステーブルおよび隣接中継装置テーブルの各テーブルが格納される。
【００３８】
ルーティングエンジン部６２０は、スイッチングハブ５０のスイッチングエンジン部５２０と同様、ＣＰＵ（Central Processing Unit）である。ルーティングエンジン部６２０は、記憶部６３０に記憶されているファームウェアを実行し、ルータ６０の制御中枢として機能する。ルーティングエンジン部６２０は上記ファームウェアにしたがって、パケット転送制御処理、マルチキャスト処理、および接続関係特定処理を実行する。パケット転送制御処理は、通信Ｉ／Ｆ部６１０を介して受信したパケットの送信先ＩＰアドレスとルーティングテーブルの格納内容とに基づいて当該パケットの転送を行う処理である。このパケット転送制御処理については、従来のルータにおけるものと特段に変るところはないため詳細な説明を省略し、以下では、マルチキャスト処理および接続関係特定処理を中心に説明する。
【００３９】
マルチキャスト処理は、前述した要求フレームを生成し、転送元識別子として自装置のＭＡＣアドレスを付与して配下のネットワーク（すなわち、ＬＡＮ１Ａ）に向けてマルチキャストする処理である。詳細については後述するが、本実施形態では、このマルチキャスト処理はルータ６０の電源（図示略）投入後、所定時間Ｔ（例えば、３秒）が経過する毎に周期的に実行される。
【００４０】
接続関係特定処理では、ルーティングエンジン部６２０は、まず、各スイッチングハブ５０から送信されてくる通知フレームの受信を契機として、当該通知フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を当該フレームのペイロード部に書き込まれている転送元識別子に書き換える。そして、ルーティングエンジン部６２０は、自装置の隣接中継装置テーブルの格納内容と、各スイッチングハブ５０から通知された隣接中継装置情報とから、ＬＡＮ１Ａにおけるルータ６０および各スイッチングハブ５０の接続関係を表すトポロジデータを生成する。
【００４１】
より詳細に説明すると、ルーティングエンジン部６２０は、自装置の隣接中継装置テーブルの格納内容と各スイッチングハブ５０から通知された隣接中継装置情報とに基づいて、自装置および各スイッチングハブ５０の各々について、上流側隣接中継装置を示す第１のポインタ（例えば、上流側隣接中継装置に接続されている通信ポートのポート識別子と当該上流側隣接中継装置のＭＡＣアドレスとを示すデータ）と、下流側中継装置を示す１または複数の第２のポインタ（例えば、下流側隣接中継装置に接続されている通信ポートのポート識別子と当該下流側隣接中継装置のＭＡＣアドレスとを示すデータ）とからなる双方向リスト構造の構造体データを生成し、これら構造体データの集合を上記トポロジデータとする。ここで、上流側隣接中継装置とは、自装置が属するネットワークと他のネットワークとを接続するルータに近い側の隣接中継装置であり、下流側隣接中継装置とは同ルータから遠い側の隣接中継装置である。例えば、図１に示すＬＡＮ１Ａにおいて、スイッチングハブ５０Ａの上流側隣接中継装置はルータ６０であり、下流側隣接中継装置はスイッチングハブ５０Ｂである。同様に、スイッチングハブ５０Ｂの上流側隣接中継装置はスイッチングハブ５０Ａであり、下流側隣接中継装置はスイッチングハブ５０Ｃと５０Ｄである。なお、図１のルータ６０のように上流側隣接中継装置を有さない装置についての構造体データにおいては、上記第１のポインタにＮＵＬＬをセットすれば良い。同様に、図１のスイッチングハブ５０Ｃ（或いは５０Ｄ）のように、下流側隣接中継装置を有さない装置についての構造体データにおいては上記第２のポインタにＮＵＬＬをセットすれば良い。
【００４２】
上記のような双方向リスト構造の構造体データの集合をトポロジデータとして用いる場合、互いに隣接する２つの中継装置を上流側から第２のポインタを用いて辿っても、また下流側から第１のポインタを用いて辿っても矛盾が生じないことが必要となる。例えば、図１に示すルータ６０およびスイッチングハブ５０の各々について上記構造体データを生成する場合には、スイッチングハブ５０Ａに対応する構造体データの第２のポインタによってスイッチングハブ５０Ｂが示されており、スイッチングハブ５０Ｂに対応する構造体データの第１のポインタによってスイッチングハブ５０Ａが示されている必要がある。このため、例えば、スイッチングハブ５０Ｂからは隣接中継装置としてスイッチングハブ５０Ａを通知されたにもかかわらず、スイッチングハブ５０Ａからは隣接中継装置としてスイッチングハブ５０Ｂが通知されてこないといった矛盾が生じた場合には、ルーティングエンジン部６２０は矛盾が生じていない範囲でのみトポロジデータを生成する。矛盾を含むトポロジデータによって、ＬＡＮ１Ａにおけるネットワークトポロジが誤って把握されないようにするためである。
以上がルータ６０の構成である。
【００４３】
＜Ａ−２：動作＞
以下、ルータ６０と各スイッチングハブ５０とが８つの通信ポートを有し、図６に示すように相互に接続されている場合を例にとって本実施形態の動作を説明する。図６では、通信ポートを黒塗りの丸印で示し、当該通信ポートのポート番号を＃付の数字で表記した。図６に示すように、ルータ６０のポート番号＝１の通信ポートにはスイッチングハブ５０Ａが接続されており、スイッチングハブ５０Ａから見ればルータ６０はスイッチングハブ５０Ａのポート番号＝８の通信ポートに接続されている。
【００４４】
図６に示すように、スイッチングハブ５０Ａのポート番号＝７の通信ポートにはスイッチングハブ５０Ｂが接続されており、スイッチングハブ５０Ｂから見ればスイッチングハブ５０Ａはスイッチングハブ５０Ｂのポート番号＝５の通信ポートに接続されている。スイッチングハブ５０Ｂのポート番号＝４の通信ポートにはスイッチングハブ５０Ｃが接続されており、同ポート番号＝６の通信ポートにはスイッチングハブ５０Ｄが接続されている。スイッチングハブ５０Ｃから見れば、スイッチングハブ５０Ｂはポート番号＝３の通信ポートに接続されており、スイッチングハブ５０Ｄから見れば、スイッチングハブ５０Ｂはポート番号＝２の通信ポートに接続されている。そして、通信端末４０Ａはスイッチングハブ５０Ｃのポート番号＝７の通信ポートに接続されており、通信端末４０Ｂはスイッチングハブ５０Ｄのポート番号＝８の通信ポートに接続されている。また、以下に説明する動作の開始時点では、各スイッチングハブ５０の隣接中継装置テーブルの接続先識別子はＮＵＬＬクリアされている。
【００４５】
ルータ６０のルーティングエンジン部６２０は、ルータ６０の電源（図示略）投入後、所定時間Ｔが経過した時刻Ｔ０において要求フレームをマルチキャストする。このようにしてルータ６０からマルチキャストされる要求フレームは、まず、スイッチングハブ５０Ａによって受信される。スイッチングハブ５０Ａのスイッチングエンジン部５２０は、ポート番号＝８の通信ポートを介して上記要求フレームを受信し、図３のステップＳＡ１１０、ＳＡ１２０、ＳＡ１４０およびＳＡ１５０の処理を実行する。前述したように、要求フレームのヘッダ部の種別識別子の値は０ｘｅ８１２であるため、図３のステップＳＡ１００の判定結果は“Ｙｅｓ”になり、また、受信フレームが要求フレームであるため、同図３のステップＳＡ１３０の判定結果も“Ｙｅｓ”になるからである。
【００４６】
ステップＳＡ１１０の処理が実行されるため、ポート番号＝８に対応づけてスイッチングハブ５０Ａの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子（すなわち、ルータ６０のＭＡＣアドレス）によって書き換えられる。また、当該受信フレームの転送元識別子はステップＳＡ１２０の処理によってスイッチングハブ５０ＡのＭＡＣアドレスに書き換えられる。ステップＳＡ１４０では、ステップＳＡ１１０の処理による更新後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームがスイッチングハブ５０Ａからルータ６０にユニキャストされる。そして、ステップＳＡ１５０では、ステップＳＡ１２０の処理によって転送元識別子の書き換えが行われた要求フレームのフラッディングが行われる。前述したように、要求フレームの送信先ＭＡＣアドレスはマルチキャストアドレスだからである。このようにしてフラッディングされた要求フレームは、スイッチングハブ５０Ｂによって受信される。
【００４７】
スイッチングハブ５０Ｂのスイッチングエンジン部５２０も同様に、上流側隣接中継装置によって転送された要求フレームを受信すると、図３のステップＳＡ１１０、ＳＡ１２０、ＳＡ１４０およびＳＡ１５０の処理を実行する。より詳細に説明すると、スイッチングハブ５０Ｂのスイッチングエンジン部５２０は、自装置の隣接中継装置テーブルにおいてポート番号＝５に対応する接続先識別子を、スイッチングハブ５０Ａから転送された要求フレームに付与されている転送元識別子（すなわち、スイッチングハブ５０ＡのＭＡＣアドレス）によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ６０にユニキャストする。加えて、スイッチングハブ５０Ｂのスイッチングエンジン部５２０は、転送元識別子をスイッチングハブ５０ＢのＭＡＣアドレスに書き換えた要求フレームのフラッディングを行う。このようにしてフラッディングされた要求フレームはスイッチングハブ５０Ｃおよび５０Ｄによって各々受信される。
【００４８】
スイッチングハブ５０Ｃ（或いは５０Ｄ）のスイッチングエンジン部５２０も同様に、上流側隣接中継装置によって転送された要求フレームを受信すると、図３のステップＳＡ１１０、ＳＡ１２０、ＳＡ１４０およびＳＡ１５０の処理を実行する。より詳細に説明すると、スイッチングハブ５０Ｃは、スイッチングハブ５０Ｂによって転送された要求フレームを受信すると、自装置の隣接中継装置テーブルにおいてポート番号＝３に対応する接続先識別子を、スイッチングハブ５０Ｂから転送された要求フレームに付与されている転送元識別子（すなわち、スイッチングハブ５０ＢのＭＡＣアドレス）によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ６０にユニキャストする。
【００４９】
同様に、スイッチングハブ５０Ｄも、隣接中継装置テーブルにおいてポート番号＝２に対応する接続先識別子を、スイッチングハブ５０ＢのＭＡＣアドレスによって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ６０にユニキャストする。なお、スイッチングハブ５０Ｃおよび５０Ｄは、転送元識別子を自装置のＭＡＣアドレスに書き換えた要求フレームをフラッディングする処理も行う。しかし、スイッチングハブ５０Ｃおよび５０Ｄよりも下流側にスイッチングハブは接続されていないため、以降、要求フレームの転送が行われることはない。
【００５０】
以上説明したように、ルータ６０からマルチキャストされた要求フレームの転送制御を行う過程でスイッチングハブ５０Ａ、５０Ｂ、５０Ｃ、および５０Ｄの各々の隣接中継装置テーブルの格納内容は図７に示す状態となり、これら各隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームが各スイッチングハブ５０からルータ６０にユニキャストされる。なお、図７では、各スイッチングハブ５０の隣接中継装置テーブルの格納内容が吹き出しで示されている（図８についても同様）。
【００５１】
次いで、通知フレームの転送制御に伴って行われる隣接中継装置テーブルの更新について説明する。スイッチングハブ５０Ｂのスイッチングエンジン部５２０は、スイッチングハブ５０Ｃからルータ６０へユニキャストされた通知フレームを、ポート番号＝４の通信ポートを介して受信すると、図３のステップＳＡ１１０、ＳＡ１２０、およびＳＡ１５０の処理を実行する。通知フレームの種別識別子の値は０ｘｅ８１２であるため、図３のステップＳＡ１００の判定結果は“Ｙｅｓ”になり、受信フレームが通知フレームであるため、図３のステップＳＡ１３０の判定結果は“Ｎｏ”になるからである。
【００５２】
ステップＳＡ１１０の処理が実行されるため、ポート番号＝４に対応付けてスイッチングハブ５０Ｂの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子（すなわち、スイッチングハブ５０ＣのＭＡＣアドレス）によって書き換えられ、当該受信フレームの転送元識別子はステップＳＡ１２０の処理によってスイッチングハブ５０ＢのＭＡＣアドレスに書き換えられる。そして、ステップＳＡ１５０では、ステップＳＡ１２０の処理によって転送元識別子の書き換えが行われた通知フレームがポート番号＝５の通信ポートを介して送出される。スイッチングハブ５０Ｄからルータ６０へユニキャストされた通知フレームを受信した場合についても同様に、スイッチングハブ５０Ｂのスイッチングエンジン部５２０は、図３のステップＳＡ１１０、ＳＡ１２０、およびＳＡ１５０の処理を実行する。その結果、スイッチングハブ５０Ｂの隣接中継装置テーブルにおいてポート番号＝６に対応する接続先識別子は受信フレームに付与されている転送元識別子（すなわち、スイッチングハブ５０ＤのＭＡＣアドレス）によって書き換えられ、当該受信フレームは転送元識別子の書き換えを経た後に、ポート番号＝５の通信ポートを介して送出される。
【００５３】
スイッチングハブ５０Ａのスイッチングエンジン部５２０は、スイッチングハブ５０Ｂから送信された通知フレーム（或いは、スイッチングハブ５０Ｂによって転送された通知フレーム）を受信すると、同様に、図３のステップＳＡ１１０、ＳＡ１２０、およびＳＡ１５０の処理を実行する。スイッチングハブ５０Ａは、隣接中継装置テーブルにおいてポート番号＝７に対応する接続先識別子を、スイッチングハブ５０Ｂから受信した通知フレームに付与されている転送元識別子（すなわち、スイッチングハブ５０ＢのＭＡＣアドレス）によって書き換え、当該通知フレームの転送元識別子を自装置のＭＡＣアドレスに書き換えてルータ６０に転送する。ルータ６０は、スイッチングハブ５０Ａから転送された通知フレームをポート番号＝１の通信ポートを介して受信すると、自装置の隣接中継装置テーブルにおいて当該ポート番号に対応する接続先識別子を当該フレームに付与されている転送元識別子で書き換える。
【００５４】
以上説明したように、他のスイッチングハブ５０からルータ６０へユニキャストされた通知フレームの転送制御を行う過程で、ルータ６０、スイッチングハブ５０Ａおよび５０Ｂの各々の隣接中継装置テーブルの格納内容は図７に示す状態から図８に示す状態へと更新される。図８に示す各隣接中継装置テーブルを参照すれば明らかように、これら隣接中継装置テーブルの格納内容はＬＡＮ１Ａにおけるルータ６０および各スイッチングハブ５０の接続関係を矛盾なく表している。
【００５５】
ここで注目すべき点は、以上に説明した動作において、ルータ６０が各スイッチングハブ５０から受信する通知フレームに書き込まれている隣接中継装置情報は、図８に示す隣接中継装置テーブルの格納内容ではなく、図７に示す隣接中継装置テーブルの格納内容に対応しているという点である。図８に示すルータ６０の隣接中継装置テーブルの格納内容と図７に示す各スイッチングハブ５０の隣接中継装置テーブルの格納内容とでは、ルータ６０とスイッチングハブ５０Ａとの接続関係のみが矛盾なく表されている。このため、時刻Ｔ０においてマルチキャストした要求フレームに対する通知フレームを受信した時点では、ルーティングエンジン部６２０は、ルータ６０とスイッチングハブ５０Ａとの接続関係のみを表すトポロジデータを生成する。
【００５６】
そして、時刻Ｔ０からさらに所定時間Ｔが経過すると、ルーティングエンジン部６２０は、要求フレームをマルチキャストし、各スイッチングハブ５０は上記と同様の処理を実行する。時刻Ｔ０＋Ｔにおいてルータ６０から送信された要求フレームに対する応答として各スイッチングハブ５０が返信する通知フレームの各々には、図８に示す隣接中継装置テーブルの格納内容に対応する隣接中継装置情報が書き込まれている。このため、時刻Ｔ０＋Ｔにおいてマルチキャストした要求フレーム（すなわち、時刻Ｔ０におけるマルチキャストを１回目とすれば、２回目のマルチキャスト）に対する通知フレームを受信した時点では、ルーティングエンジン部６２０は、自装置と自装置の配下の全てのスイッチングハブ５０の接続関係を表すトポロジデータを生成する。ＬＡＮ１Ａの運用管理者は、このようにして生成されるトポロジデータを操作端末３０を用いて参照することで、ＬＡＮ１Ａのネットワークトポロジを把握することができるのである。
【００５７】
以上説明したように、本実施形態によれば、各スイッチングハブ５０から返信されてくる隣接中継装置情報に基づいてＬＡＮ１Ａにおけるネットワークトポロジが特定される。ここで、各スイッチングハブ５０から送信されてくる隣接中継装置情報のデータサイズは当該スイッチングハブ５０に接続される中継装置の数に応じて定まり、当該スイッチングハブ５０が有する通信ポート数に応じたデータサイズ以上になることはない。つまり、本実施形態における通知フレームのペイロード部のデータサイズは、ＬＡＮ１Ａに含まれるスイッチングハブ５０の数が増加したとしても、その増加に伴って際限なく大きくなることはないのである。このため、ＬＡＮ１Ａが大規模化したとしても、ネットワークトポロジの特定のために過剰な負荷がＬＡＮ１Ａにかかることはない。
【００５８】
このように、本実施形態によれば、ＬＡＮ１Ａに過剰な負荷がかかることを回避しつつ、当該ＬＡＮ１ＡにおけるネットワークトポロジをＬＡＮ１Ａの運用管理者に把握させることが可能になる。また、ルータ６０は、所定時間Ｔが経過する毎に周期的に要求フレームのマルチキャストを行うため、例えばスイッチングハブ５０Ｄに新たに本実施形態のスイッチングハブを接続するようなネットワークトポロジの変更が行われたとしても、新たなスイッチングハブの接続から２回目の要求フレームのマルチキャストによって当該変更後のネットワークトポロジを矛盾なく正確に表すトポロジデータが生成される。また、本実施形態では周期的に要求フレームのマルチキャストが行われるため、仮に、Ｎ回目のマルチキャストにより送信した要求フレームや当該要求フレームに対する応答フレームの伝送過程でフレームの欠落が発生したとしても、Ｎ＋１回目のマルチキャストにおいても同様の欠落が発生するとは限らず、周期的に行われる複数回のネットワークトポロジの特定の全てが失敗するとは限らない。加えて、本実施形態によれば、ネットワークトポロジの特定のために過剰な負荷がＬＡＮ１Ａにかかることはないため、特許文献１に開示された技術に比較してフレームの欠落がそもそも発生し難いといった特徴もある。このように、本実施形態によれば、ＬＡＮ１Ａに過剰な負荷がかかることを回避しつつ、かつ遅滞なくネットワークトポロジの変更を把握することができるのである。
【００５９】
＜Ｂ：第２実施形態＞
図９は、本発明の第２実施形態のＬＡＮ１Ｂの構成例を示すブロック図である。
図９と図１とを対比すれば明らかように、ＬＡＮ１Ｂはスイッチングハブ５０Ｂに換えてスイッチングハブ５００を有する点がＬＡＮ１Ａと異なる。このスイッチングハブ５００は、一般的な従来のスイッチングハブであって、受信したフレームの送信先ＭＡＣアドレスに基づくフレームの転送制御（すなわち、図３のステップＳＡ１５０の処理）のみを実行する点がスイッチングハブ５０と異なる。
【００６０】
このように、スイッチングハブ５００は、受信したフレームの送信先ＭＡＣアドレスに基づくフレームの転送制御のみを実行するため、スイッチングハブ５０Ａからスイッチングハブ５００に転送された要求フレームは転送元識別子を書き換えられることなく、スイッチングハブ５００によってスイッチングハブ５０Ｃおよび５０Ｄに転送される。このため、スイッチングハブ５０Ｃおよび５０Ｄの各々の隣接中継装置テーブルには、スイッチングハブ５００が接続されている通信ポートのポート識別子に対応付けて、スイッチングハブ５０ＡのＭＡＣアドレスが書き込まれる。
【００６１】
スイッチングハブ５０Ｃおよび５０Ｄの各々が通知フレームをルータ６０へユニキャストした場合も同様に、これら通知フレームは転送元識別子を書き換えられることなくスイッチングハブ５００によってスイッチングハブ５０Ａに転送される。スイッチングハブ５０Ａのスイッチング制御部５２０は、スイッチングハブ５０Ｃおよび５０Ｄの各々から送信された通知フレームを、スイッチングハブ５００が接続されている通信ポートを介して受信し、これら通知フレームを受信する度に隣接中継装置テーブルの格納内容を更新する。つまり、スイッチングハブ５０Ｃおよび５０Ｄの各々から送信される通知フレームのうち先に受信したものに応じて行われた更新の内容は後から受信したものに応じて行われた更新の内容によって上書きされる。
【００６２】
このため、例えば、ルータ６０から１回目にマルチキャストされた要求フレームに応じてスイッチングハブ５０Ｃおよび５０Ｄの各々が返信する通知フレームのうち前者が先にスイッチングハブ５０Ａに到達する場合には、２回目の要求フレームのマルチキャストに応じてスイッチングハブ５０Ａが返信する通知フレームに含まれている隣接中継装置情報では、スイッチングハブ５００が接続されている通信ポートのポート識別子とスイッチングハブ５０ＤのＭＡＣアドレスとが対応付けられている。このため、ルータ６０は、上記２回目にマルチキャストした要求フレームに対する応答フレームを受信した時点では、図１０（Ａ）に示すネットワークトポロジを現すトポロジデータを生成する。
【００６３】
これに対して、ルータ６０から２回目にマルチキャストされた要求フレームに応じてスイッチングハブ５０Ｃおよび５０Ｄの各々が返信する通知フレームのうちの後者が先にスイッチングハブ５０Ａに到達する場合には、３回目の要求フレームのマルチキャストに応じてスイッチングハブ５０Ａが返信する通知フレームに含まれている隣接中継装置情報では、スイッチングハブ５００が接続されている通信ポートのポート識別子とスイッチングハブ５０ＣのＭＡＣアドレスとが対応付けられている。このため、ルータ６０は、上記３回目にマルチキャストした要求フレームに対する応答フレームを受信した時点では、図１０（Ｂ）に示すネットワークトポロジを現すトポロジデータを生成する。このように、図９に示すＬＡＮ１Ｂでは、スイッチングハブ５０Ｃと５０Ｄから送信された各応答フレームの到達順に応じて異なるネットワークトポロジを表すトポロジデータが生成されるのである。図１０（Ａ）および図１０（Ｂ）と、図８とを対比すれば明らかように、図１０（Ａ）および図１０（Ｂ）の各々が示すネットワークトポロジには、スイッチングハブ５００が現れておらず、何れもＬＡＮ１Ｂにおける現実のネットワークトポロジを正確には表していない。
【００６４】
このように、ルータ６０の配下のネットワークに従来のスイッチングハブが含まれている場合には、当該従来のスイッチングハブと他の装置（すなわち、ルータ６０或いはスイッチングハブ５０）との接続関係を正確に把握することができなくなるのであるが、ルータ６０とスイッチングハブ５０との接続関係を大まかに把握することは可能である。また、本実施形態では、図１０（Ａ）および図１０（Ｂ）に示すように、スイッチングハブ５０Ａの１つの下流側の通信ポート（現実には、スイッチングハブ５００が接続されている通信ポート）にスイッチングハブ５０Ｃとスイッチングハブ５０Ｄとが交互に接続されるかのようなトポロジデータが生成される。このようにスイッチングハブの１つの通信ポートに他の２つのスイッチングハブを交互に接続するといったことは現実には起こり得ない。このため、ＬＡＮ１Ｂの運用管理者は、現実には発生し得ない接続関係が現れている箇所には１乃至複数台の従来のスイッチングハブが存在していると類推することができるのである。
【００６５】
ルータ６０の配下のネットワークに含まれるスイッチングハブの全てが従来のものであれば、当該ネットワークにおけるネットワークトポロジを把握できないことは言うまでもないが、ＬＡＮ１Ｂを構成する複数のスイッチングハブのなかに本発明に係るスイッチングハブ５０が少なくとも１台含まれていれば、ルータ６０と当該スイッチングハブ５０との接続関係（すなわち、一般的な従来のスイッチングハブを除いた概略的なネットワークトポロジ）をＬＡＮ１Ｂの運用管理者に把握させ、さらに、現実には発生し得ない不自然な接続関係が現れている場合には、該当箇所に１乃至複数台の従来のスイッチングハブが存在していると類推させることができるのである。なお、本実施形態においても、通知フレームのペイロード部のデータサイズが、ＬＡＮ１Ｂに含まれるスイッチングハブ５０の数の増加に伴って際限なく大きくなることはない。このため、本実施形態によれば、ＬＡＮ１Ｂが大規模化したとしても、ＬＡＮ１Ｂに過剰な負荷をかけることなく、当該ＬＡＮ１Ｂの運用管理者に当該ＬＡＮ１Ｂの大まかなネットワークトポロジを把握させることができるのである。
【００６６】
＜Ｃ：変形＞
以上、本発明の第１および第２実施形態について説明したが、これら各実施形態に以下に述べる変形を加えても勿論良い。
（１）上述した各実施形態では、要求フレームのマルチキャストを所定時間間隔で周期的にルータ６０に実行させる一方、スイッチングハブ５０には、要求フレームの受信を契機として通知フレームをルータ６０に返信させた。しかし、周期的なマルチキャストに加えて（或いは、周期的なマルチキャストに換えて）、予め定められた所定種類のパケットの受信を契機としてルータ６０に要求フレームをマルチキャストさせても良い。
【００６７】
例えば、自装置のＭＡＣアドレス解決のためのＡＲＰパケットを受信したことを契機としてルータ６０に要求フレームを送信させるのである。新たにＡＲＰパケットを受信したということは、ルータ６０の配下のネットワークに新たな通信端末が接続されたことを意味し、新たな通信端末の接続に伴ってネットワークトポロジが変化した可能性がある。新たなＡＲＰパケットの受信を契機としてルータ６０に要求フレームを送信させるようにすれば、所定時間の経過を待つことなく当該変化をいち早く検出することができる。
【００６８】
なお、ルータ６０がＤＨＣＰサーバの役割を兼ねている場合には、ＩＰアドレスの割り当てを要求する旨のパケットを配下の通信端末から受信したことを契機として要求フレームをマルチキャストさせても良い。そして、所定時間間隔で周期的に要求フレームをマルチキャストする処理と、特定のパケットの受信を契機として要求フレームをマルチキャストする処理と、をルータ６０に実行させる場合には、後者のマルチキャストを行う度にその時点を起算点として上記所定時間の経過を計測し直させるようにしても良い。上記所定時間よりも短い時間間隔で連続して要求フレームのマルチキャストが行われないようにするためである。
【００６９】
（２）上述した各実施形態では、要求フレームの受信を契機としてスイッチングハブ５０に通知フレームを送信させた。しかし、所定時間間隔で周期的に通知フレームをスイッチングハブ５０に送信させるようにしても良い。このように、通知フレームを周期的にスイッチングハブ５０に送信させる態様においては、ルータ６０に要求フレームのマルチキャストを周期的に行わせる必要はなく、ルータ６０から配下のＬＡＮに向けてマルチキャストするフレーム（既存の通信プロトコルにしたがってマルチキャストするフレーム）のうちの予め定められた一部のものに転送元識別子を付与してマルチキャストさせるようにすれば良い。各スイッチングハブ５０に上流側の隣接中継装置のＭＡＣアドレスを隣接中継装置テーブルに格納させるためである。このような態様によれば、既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジを特定することが可能になる。
【００７０】
（３）上述した第１実施形態では、１回目にマルチキャストした要求フレームに対する応答を受信した時点では、ルータ６０とその直下のスイッチングハブ５０Ａとの接続関係のみを表すトポロジデータをルータ６０に生成させたが、ＬＡＮ１Ａにおけるネットワークトポロジ全体を現すトポロジデータを生成させても良い。１回目にマルチキャストした要求フレームに対して各スイッチングハブ５０から返信されてくる隣接中継装置情報を解析することで、各スイッチングハブ５０を下流側から辿る（各スイッチングハブ５０の上流側の隣接中継装置を特定する）ことが可能であり、各スイッチングハブ５０の上流側の隣接中継装置が特定されれば、ネットワークトポロジを特定することができるからである。このように、各スイッチングハブ５０の上流側の隣接中継装置のみを特定する態様の場合には、通知フレームの送信の際に自装置のＭＡＣアドレスを転送元識別子として付与する処理を省略しても良い。
【００７１】
（４）上述した各実施形態では、要求フレームを受信するたびに、隣接中継装置情報をペイロード部に書き込んだ通知フレームを各スイッチングハブ５０に返信させた。しかし、Ｎ（自然数）回目の要求フレームの受信からＮ＋１回目の要求フレームの受信までの間に隣接中継装置テーブルの格納内容に変化がない場合には、当該Ｎ＋１回目に受信した要求フレームに対して応答する際に、隣接中継装置情報に換えて隣接中継装置情報に変化がないことを示すデータをペイロード部に書き込んだ通知フレームを返信させるようにしても良い。
【００７２】
（５）上述した各実施形態では、フレームのヘッダ部に書き込まれている種別識別子に基づいて、当該フレームがネットワークトポロジ特定用のものであるか否かを判定したが、転送元識別子が付与されているか否かによって当該判定を行っても良い。第２層における既存の通信プロトコルにしたがってルータ６０からＬＡＮ１Ａに向けてマルチキャストされるフレームのうちの予め定められた種類のものに転送元識別子を付与する態様においては、当該フレームの種別識別子には上記既存の通信プロトコルに応じた値がセットされている。したがって、第２層における既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジの特定を行う場合には、フレームのヘッダ部の種別識別子を参照しても当該フレームがネットワークトポロジ特定用のものであるか否かの判定を行うことはできないが、転送識別子の有無によって当該判定を行うことはできるからである。同様に、上記第１および第２実施形態においても、受信フレームがネットワークトポロジ特定用のものであるか否かの判定を転送元識別子の有無に基づいて行うようにしても勿論良い。なお、既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジの特定を行う場合には、当該フレームのヘッダの空き領域に転送元識別子（或いは転送元識別子と隣接中継装置情報）を書き込むようにすれば良い。また、フレーム転送制御処理における要求フレームであるか否かの判定（すなわち、図３のステップＳＡ１３０の判定）についても、受信フレームのペイロード部に隣接中継装置情報が含まれているか否かに応じて判定するようにしても勿論良い。
【００７３】
（６）上述した各実施形態では、本発明のスイッチングハブの特徴を顕著に示すフレーム転送制御処理および通知フレーム送信処理をソフトウェアにより実現した。しかし、フレーム転送制御処理を実行するフレーム転送制御手段および通知フレーム送信処理を実行する通知フレーム送信手段の各々を電子回路などのハードウェアで構成し、スイッチングエンジン部５２０に換えてこれら各手段を組み込んでスイッチングハブ５０を構成しても勿論良い。ルータ６０についても、同様に、マルチキャスト処理および接続関係特定処理の各処理を電子回路などのハードウェアによって実現しても勿論良い。
【符号の説明】
【００７４】
１Ａ，１Ｂ…ＬＡＮ、３０…操作端末、４０Ａ，４０Ｂ…通信端末、５０Ａ，５０Ｂ，５０Ｃ，５０Ｄ，５００…スイッチングハブ、６０…ルータ、５１０，６１０…通信Ｉ／Ｆ部、５２０…スイッチングエンジン部、５３０，６３０…記憶部、６２０…ルーティングエンジン部。
【図１】
0005750933.tif 000002
【図２】
0005750933.tif 000003
【図３】
0005750933.tif 000004
【図４】
0005750933.tif 000005
【図５】
0005750933.tif 000006
【図６】
0005750933.tif 000007
【図７】
0005750933.tif 000008
【図８】
0005750933.tif 000009
【図９】
0005750933.tif 000010
【図１０】
0005750933.tif 000011