(57)【特許請求の範囲】
【請求項１】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
（Ａ）前記複数のスイッチングハブの各々は、
各々にルータ、または他のスイッチングハブ、または通信端末が接続される複数のポートを有しているとともに、
前記複数のポートのうち前記ルータまたは前記ルータ側の他のスイッチングハブに接続されている上流側ポートを特定する第１の処理と、
通信端末からルータへ宛てて送信されたパケットを内包したフレームを前記上流側ポートとは異なるポートを介して受信し、かつ、当該フレームに内包されているパケットが予め定められた種類のものである場合には、当該フレームを上流側へ転送する際に当該フレームを受信したポートを示すタグ情報を当該フレームのヘッダ部の所定領域に追記して転送する第２の処理と、を実行し、
（Ｂ）前記ルータは、
前記所定領域にタグ情報が書き込まれているフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する第３の処理を実行する
ことを特徴とする通信システム。
【請求項２】
前記所定領域はＶＬＡＮタグであることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記複数のスイッチングハブの各々は、前記第２の処理において前記タグ情報を追記しようとするフレームの前記所定領域に所定数分のタグ情報が書き込まれていた場合には、最も下流側のスイッチングハブによって書き込まれたタグ情報を削除した後にタグ情報を追記することを特徴とする請求項１または請求項２に記載の通信システム。
【請求項４】
前記複数のスイッチングハブの各々は、前記第２の処理において前記タグ情報を追記しようとするフレームの前記所定領域に所定数分のタグ情報が書き込まれていた場合には、タグ情報を追記することなく当該フレームを上流側へ転送することを特徴とする請求項１または請求項２に記載の通信システム。
【請求項５】
前記複数のスイッチングハブの各々は、前記ネットワークに自装置が接続されたこと、または自装置の電源が投入されたことを契機として前記第１の処理を実行することを特徴とする請求項１〜４のいずれか１の請求項に記載の通信システム。
【請求項６】
各々他の通信装置に接続される複数のポートと、
前記複数のポートのうちルータまたはルータ側の他のスイッチングハブに接続されている上流側ポートを特定する上流側ポート特定手段と、
前記上流側ポートとは異なるポートを介して予め定められた種類のパケットを内包したフレームを受信し、当該フレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームのヘッダ部の所定領域に追記して転送するタグ情報付与手段と、
を有することを特徴とするスイッチングハブ。
【請求項７】
前記上流側ポート特定手段は、自装置の電源が投入されたこと、または自装置が通信ネットワークに接続されたことを契機として前記上流側ポートを特定することを特徴とする請求項６に記載のスイッチングハブ。
【請求項８】
通信端末から当該ルータへ宛てて送信されたパケットを内包したフレームの転送制御を行う複数のスイッチングハブであって、予め定められた種類のパケットを内包したフレームを受信した場合に当該フレームを受信したポートを示すタグ情報を当該フレームのヘッダ部の所定領域に追記して転送する処理を各々実行する複数のスイッチングハブを含む通信ネットワークに接続されるルータであって、
前記タグ情報が前記所定領域に書き込まれたフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する
ことを特徴とするルータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＡＮ（Local Area Network）の運用管理を支援する技術に関する。
【背景技術】
【０００２】
近年、企業等においては、支店などの各拠点に敷設されたＬＡＮ（以下、拠点内ＬＡＮ）をルータによってインターネットなどのＩＰ（Internet Protocol）網に接続して企業内情報システムを構築することが一般に行われている。一般に、拠点内ＬＡＮには、スイッチングハブや各ユーザ（例えば、企業の従業者）の使用する通信端末などがその構成要素として含まれている。スイッチングハブとは、通信端末を拠点内ＬＡＮに接続するための通信装置であり、スイッチングハブに接続可能な通信端末の数は「スイッチングハブが有するポート数−１」となる。このため、１台のスイッチングハブのポート数を上回る数の通信端末を拠点内ＬＡＮに接続する必要がある場合には、図１３に示すように、複数のスイッチングハブをカスケード接続し、接続可能な通信端末数を増加させることが一般に行われている。
【０００３】
ところで、企業内情報システム（或いは、その構成要素である各拠点内ＬＡＮ）の運用管理や保守を行う際には、拠点内ＬＡＮに含まれる各通信装置が拠点内の何処に設置されているのかを把握しておくことは勿論、ルータから各通信端末に到るまでの各通信装置の接続関係（ルータのどのポートにどのスイッチングハブが接続されているのか、また、どのスイッチングハブのどのポートにどの通信端末が接続されているのか等）を把握しておくことが重要になる。各通信装置が拠点内の何処に設置されているのかについては目視により把握することも可能であるが、各通信装置に接続されている通信ケーブルを辿ってその接続関係を把握することは容易ではない。また、通信装置同士を接続する通信ケーブルが壁などに埋設されている場合には、その通信ケーブルを辿って接続関係を把握することはできない。そこで、ＬＡＮに含まれる各通信装置の接続関係を把握できるようにする技術が従来より種々提案されており、その一例としては非特許文献１に開示されたＳＮＭＰ（Simple Network
Management Protocol）を利用する技術が挙げられる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】［online］、［平成２２年３月１９日検索］、インターネット〈URL：http://www.rfc-editor.org/rfc/rfc1493.txt〉
【非特許文献２】［online］、［平成２２年３月１９日検索］、インターネット〈URL：http://ja.wikipedia.org/wiki/IEEE_802.1Q〉
【特許文献】
【０００５】
【特許文献１】特開２００３−３１８９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ＳＮＭＰを利用する場合、ＳＮＭＰマネージャとして動作するコンピュータが新たに必要になり、その購入や運用管理のために新たなコストの負担を強いられるといった問題がある。また、ＳＮＭＰでは、各スイッチングハブに記憶されるＭＡＣ（Media Access Control）アドレステーブルの全情報を収集する必要があるため、その収集のための通信によって過大な負荷が各スイッチングハブにかかってしまうといった問題や、その収集を完了するまでに長い時間を要する、といった問題がある。
本発明は上記課題に鑑みて為されたものであり、ＬＡＮなどルータ配下のネットワークに含まれている各通信装置の接続関係を、それら通信装置に過大な負荷をかけることなく、かつ低コストで把握することができるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、（Ａ）前記複数のスイッチングハブの各々は、各々にルータ、または他のスイッチングハブ、または通信端末が接続される複数のポートを有しているとともに、前記複数のポートのうち前記ルータまたは前記ルータ側の他のスイッチングハブに接続されている上流側ポートを特定する第１の処理と、通信端末からルータへ宛てて送信されたパケットを内包したフレームを前記上流側ポートとは異なるポートを介して受信し、かつ、当該フレームに内包されているパケットが予め定められた種類のものである場合には、当該フレームを上流側へ転送する際に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する第２の処理と、を実行し、（Ｂ）前記ルータは、前記所定領域にタグ情報が書き込まれているフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する第３の処理を実行することを特徴とする通信システム、を提供する。
【０００８】
この通信システムにおいて、予め定められた種類のパケットを上記ルータが受信する時点では、そのパケットを内包したフレームの所定領域にはそのフレームの転送に関わったスイッチングハブによって当該フレームを受信した下流側のポートを示すタグ情報が書き込まれている。したがって、これらタグ情報を順次辿ることで上記ルータから上記パケットの送信元の通信端末へ到る通信路上に存在するスイッチングハブと当該ルータおよび通信端末の接続関係を示すデータが生成される。加えて、この通信システムにはＳＮＭＰマネージャは不要であり、新たなコスト負担が発生することもない。また、タグ情報を追記する処理対象のパケットも予め定められた種類のものに限定されているため、各スイッチングハブに過大な処理負荷がかかることもない。なお、上記予め定められた種類のパケットとしては、スイッチングハブにポートの接続状態を示す情報を取得させることができる種類のパケットであって、通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に送信される可能性の高いパケットであることが好ましく、その具体例としてはＡＲＰ（Address Resolution Protocol）パケットが挙げられる。ルータのＭＡＣアドレスを取得するためのＡＲＰパケットの送信は通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に行われる可能性が高く、その通信端末とルータとの間の通信路についての接続関係を示すデータを電源投入等から時間をおかずに迅速に生成することができるからである。
【０００９】
より好ましい態様においては、上記タグ情報としてＶＬＡＮ（Virtual LAN）タグを用いることが好ましい。独自仕様に基づいて上記タグ情報を用いる態様ではフレームの転送経路にその仕様に準拠していないスイッチングハブがあると、当該タグ情報を付与されたフレームがそのスイッチングハブにおいて破棄される虞があるからである。一般仕様に準拠してＶＬＡＮタグを用いる態様では、このような不具合が発生する虞はない。また、上記タグ情報としてＶＬＡＮタグを用いる態様においては、各ＭＡＣフレームに書き込み可能なＶＬＡＮタグのデータサイズや個数が上記仕様において定められているため、前記第２の処理においてタグ情報を追記しようとするフレームの所定領域に所定数分のタグ情報が書き込まれている場合には、最も下流側のスイッチングハブによって書き込まれたタグ情報を削除した後に当該スイッチングハブについてのタグ情報を追記しても良く、また、新たなタグ情報の追記を行わずに上流側へ転送するようにしても良い。前者の態様であれば、少なくとも、ルータ付近のスイッチングハブの接続関係を把握することができ、後者の態様であれば、少なくとも、フレームの送信元の通信端末付近のスイッチングハブの接続関係を把握することができるからである。なお、ＶＬＡＮタグについては非特許文献２にその詳細が開示されている。また、ＶＬＡＮタグを利用した先行技術の一例としては特許文献１に開示された技術が挙げられる。しかし、特許文献１に開示された技術は、パケットの宛先の識別にＶＬＡＮタグを用いるものであって、通信端末からルータへ到る通信路上の各通信装置の接続関係をそのルータへ通知するために上記タグ情報を用いる本願発明とは異なる技術である。
【００１０】
また、上記課題を解決するために本発明は、各々他の通信装置に接続される複数のポートと、前記複数のポートのうちルータまたはルータ側の他のスイッチングハブに接続されている上流側ポートを特定する上流側ポート特定手段と、前記上流側ポートとは異なるポートを介して予め定められた種類のパケットを内包したフレームを受信し、当該フレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送するタグ情報付与手段と、を有することを特徴とするスイッチングハブを提供する。より好ましい態様においては、上記上流側ポート特定手段は、自装置の電源が投入されたこと、または自装置が通信ネットワークに接続されたことを契機として前記上流側ポートを特定することを特徴とする。
【００１１】
また、上記課題を解決するために本発明は、通信端末から当該ルータへ宛てて送信されたパケットを内包したフレームの転送制御を行う複数のスイッチングハブであって、予め定められた種類のパケットを内包したフレームを受信した場合に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する処理を各々実行する複数のスイッチングハブ、を含む通信ネットワークに接続されるルータであって、前記タグ情報が前記所定領域に書き込まれたフレームを受信した場合に、当該タグ情報から、そのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶することを特徴とするルータを提供する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態のＬＡＮ１の構成例を示す図である。
【図２】同ＬＡＮ１に含まれるスイッチングハブ５０の構成例を示すブロック図である。
【図３】同スイッチングハブ５０のスイッチングエンジン部５２０が実行する上流側ポート特定処理の流れを示すフローチャートである。
【図４】同スイッチングエンジン部５２０が実行するフレーム転送制御処理の流れを示すフローチャートである。
【図５】同スイッチングエンジン部５２０が実行するタグ情報付与／削除処理の流れを示すフローチャートである。
【図６】同ＬＡＮ１に含まれるルータ６０の構成例を示すブロック図である。
【図７】同ルータ６０の記憶部６３０に記憶される接続関係管理テーブルのテーブルフォーマットを説明するための図である。
【図８】同ルータ６０のルーティングエンジン部６２０が実行するパケット転送制御処理の流れを示すフローチャートである。
【図９】同ルーティングエンジン部６２０が実行するタイマ処理の流れを示すフローチャートである。
【図１０】スイッチングハブ５０およびルータ６０の動作を説明するための図である。
【図１１】スイッチングハブ５０およびルータ６０の動作を説明するための図である。
【図１２】スイッチングハブ５０およびルータ６０の動作を説明するための図である。
【図１３】従来の通信システムにおけるスイッチングハブのカスケード接続の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ本発明の実施形態について説明する。
（Ａ：構成）
図１は、本発明の一実施形態の通信システムであるＬＡＮ１の構成例を示す図である。このＬＡＮ１は、例えば企業の支店に敷設される拠点内ＬＡＮであり、ルータ６０によってインターネットなどのＩＰ網（図示省略）に接続される。ＬＡＮ１は、３台のスイッチングハブ（スイッチングハブ５０Ａ、５０Ｂおよび５０Ｃ）と、これら各スイッチングハブに各々接続される３台の通信端末（通信端末４０Ａ、４０Ｂおよび４０Ｃ）を含んでいる。図１に示すように、スイッチングハブ５０Ａ、５０Ｂおよび５０Ｃの各々はカスケード接続されている。より詳細に説明すると、ルータ６０にはスイッチングハブ５０Ａが接続されており、このスイッチングハブ５０Ａには通信端末４０Ａとスイッチングハブ５０Ｂが接続されている。そして、スイッチングハブ５０Ｂには通信端末４０Ｂとスイッチングハブ５０Ｃが接続されており、スイッチングハブ５０Ｃには通信端末４０Ｃが接続されている。
【００１４】
通信端末４０Ａ、４０Ｂおよび４０Ｃの各々は例えばパーソナルコンピュータであり、他の通信装置（例えば、ＬＡＮ１に含まれる他の通信端末やＩＰ網に接続されているＷＷＷサーバなど）との間でＩＰにしたがったパケット通信を行うことができる。以下、上記３台の通信端末の各々を区別する必要がない場合には、「通信端末４０」と表記する。
【００１５】
スイッチングハブ５０Ａ、５０Ｂおよび５０Ｃの各々はＩＰよりも下位のプロトコル階層であるデータリンク層においてデータの中継を行う通信装置である。本実施形態では、上記３台のスイッチングハブは同一の構成を有しているため、各々を区別する必要がない場合には「スイッチングハブ５０」と表記する。ここで、データリンク層においてデータの中継を行うとは、データリンク層におけるデータの送受信単位であるＭＡＣフレーム（以下、単に「フレーム」）の転送制御を行うことである。フレームのヘッダ部には、そのフレームの送信先および送信元のＭＡＣアドレスが書き込まれ、同ペイロード部には、当該送信元から送信されたパケットが書き込まれる。なお、ＭＡＣアドレスとは、データリンク層にて各通信装置を一意に識別するための通信アドレスである。図１のルータ６０と上記３台の通信端末は何れも固有のＭＡＣアドレスを有している。詳細については後述するがスイッチングハブ５０はフレームの送信先ＭＡＣアドレスに基づいてその転送制御を行う。
【００１６】
パケットとは、データリンク層よりも１つ上の階層のネットワーク層におけるデータの送受信単位であり、フレームと同様にヘッダ部とペイロード部とを有している。パケットのヘッダ部には、そのパケットの送信元および送信先のＩＰアドレスが書き込まれており、ペイロード部にはさらに上位層のデータが書き込まれる。ここで、ＩＰアドレスとはネットワーク層において各通信装置を一意に識別する通信アドレスであり、図１のルータ６０と上記３台の通信端末には各々固有のＩＰアドレスが割り当てられている。また、通信端末４０Ａ、４０Ｂおよび４０Ｃの各々には、ルータ６０のＩＰアドレスがデフォルトゲートウェイを示すものとして予め記憶されている。
【００１７】
ルータ６０は、ネットワーク層においてデータ通信を中継する通信装置である。例えば、ＩＰ網から受信したパケットの送信先ＩＰアドレスが通信端末４０Ａ、４０Ｂおよび４０Ｃの何れかのものであれば、ルータ６０はそのパケットを配下のＬＡＮ１へと転送し、その送信先ＩＰアドレスが通信端末４０Ａ、４０Ｂおよび４０Ｃの何れのものでもない場合にはルーティングテーブルの格納内容にしたがって他のルータへ転送する処理を行う。
【００１８】
さて、図１に示すＬＡＮ１においては、通信端末４０の電源の投入直後にその通信端末４０から送信される可能性が高いパケット（本実施形態では、デフォルトゲートウェイのＭＡＣアドレスを取得するためのＡＲＰパケット）を処理対象としてスイッチングハブ５０およびルータ６０に本実施形態の特徴を顕著に示す処理を実行させる。これにより、ルータ６０と通信端末４０との間の通信路上の各通信装置の接続関係を示すデータがルータ６０に記憶されるのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ５０およびルータ６０を中心に説明する。
【００１９】
（Ａ−１：スイッチングハブ５０の構成）
まず、図２を参照しつつスイッチングハブ５０の構成を説明する。図２は、スイッチングハブ５０の構成を示すブロック図である。図２に示すように、スイッチングハブ５０は、通信インタフェース（以下、Ｉ／Ｆ）部５１０、スイッチングエンジン部５２０、および記憶部５３０を有している。
【００２０】
通信Ｉ／Ｆ部５１０は、他の通信装置との間でフレームの授受を行うインタフェースであり、各々他の通信装置が接続される複数のポートを有している。これら複数のポートの各々には、各ポートを一意に識別するポート識別子（例えば、ポート番号）が予め割り当てられている。通信Ｉ／Ｆ部５１０は、各ポートを介して受信したフレームをスイッチングエンジン部５２０に与える一方、スイッチングエンジン部５２０から与えられるフレームを同スイッチングエンジン部５２０によって指示されたポートから送出する処理を実行する。
【００２１】
通信Ｉ／Ｆ部５１０が有する複数のポートは、ルータ６０（或いは、よりルータ６０に近い側の他のスイッチングハブ）に接続される上流側ポートと、その他のポート（以下、「下流側ポート」という）とに分類される。例えば、スイッチングハブ５０Ａにおいては、ルータ６０に接続されるポートが上流側ポートとなり、通信端末４０Ａやスイッチングハブ５０Ｂに接続されるポートが下流側ポートとなる。同様に、スイッチングハブ５０Ｂにおいては、スイッチングハブ５０Ａが接続されるポートが上流側ポートとなり、通信端末４０Ｂやスイッチングハブ５０Ｃに接続されるポートが下流側ポートとなる。そして、スイッチングハブ５０Ｃにおいては、スイッチングハブ５０Ｂに接続されるポートが上流側ポートとなり、通信端末４０Ｃに接続されるポートが下流側ポートとなる。
【００２２】
記憶部５３０は、例えばＲＡＭ（Random Access Memory）などの揮発性メモリとＥＰＲＯＭ（Erasable Programmable Read Only Memory）などの不揮発性メモリとを含んでいる（図２では、何れも図示略）。この不揮発性メモリには、上流側ポート特定処理（図３参照）およびフレーム転送制御処理（図４および図５参照）をスイッチングエンジン部５２０に実行させるためのファームウェア（プログラム）が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部５２０によって利用されるとともに、通信Ｉ／Ｆ部５１０によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たす。また、この揮発性メモリには、上流側ポート特定処理にて特定されたポートのポート識別子が「上流側ポート識別子」として書き込まれる。
【００２３】
また、この揮発性メモリには、所謂ＭＡＣアドレステーブルも格納される（図２では、図示略）。このＭＡＣアドレステーブルには、フレームを受信したポートのポート識別子とそのフレームの送信元ＭＡＣアドレスとを含むレコードが書き込まれる。周知のように、ＭＡＣアドレステーブルへのレコードの書き込みは、例えばＡＲＰパケットを内包したフレームの転送制御やＡＲＰパケットに対する応答パケットを内包したフレームの転送制御の際に行われることが多く、当該レコードの削除はその書き込みが行われてから一定時間経過後に行われることが多い。本実施形態においても、ＭＡＣアドレステーブルへのレコードの書き込み／削除は上記周知の態様でスイッチングエンジン部５２０によって行われる。このＭＡＣアドレステーブルは、送信先ＭＡＣアドレスに基づくフレームの転送制御を行う際に参照される。
【００２４】
スイッチングエンジン部５２０は、例えばＣＰＵ（Central Processing Unit）である。スイッチングエンジン部５２０は、記憶部５３０に記憶されているファームウェアを実行し、スイッチングハブ５０の制御中枢として機能する。前述したように、スイッチングエンジン部５２０は上記ファームウェアにしたがって上流側ポート特定処理およびフレーム転送制御処理を実行する。これら各処理の詳細については動作例において明らかにするが、概略は以下の通りである。
【００２５】
上流側ポート特定処理は、通信Ｉ／Ｆ部５１０の複数のポートのうちの何れが上流側ポートであるかを特定する処理である。この上流側ポート特定処理では、スイッチングエンジン部５２０は、ルータ検索パケットを内包したフレーム（すなわち、ペイロード部にルータ検索パケットが書き込まれたフレーム：以下、ルータ検索フレーム）を通信Ｉ／Ｆ部５１０の全てのポートから送出（すなわち、ブロードキャスト）し、そのルータ検索フレームに対する応答を受信したポートのポート識別子を上流側ポート識別子として記憶部５３０に書き込む。この上流側ポート特定処理は、ＬＡＮ１にスイッチングハブ５０が接続されたこと、或いはスイッチングハブ５０の電源が投入されたことを契機として実行される。
【００２６】
フレーム転送制御処理は、通信Ｉ／Ｆ部５１０の何れかのポートにより受信したフレームをその送信先ＭＡＣアドレスに応じたポートから送出する処理であり、いわばスイッチングハブ本来の機能を実現する処理である。なお、受信したフレームが所謂ブロードキャストフレームである場合、または当該フレームの送信先ＭＡＣアドレスに対応するレコードがＭＡＣアドレステーブルに登録されていない場合には、スイッチングエンジン部５２０は、当該フレームを受信したポート以外の全てのポートから当該フレームを送出する処理（フラッディング）を実行する。加えて、本実施形態のフレーム転送制御処理では、一定の条件を満たすフレームを受信した場合に、スイッチングエンジン部５２０にそのフレームの転送に先立ってタグ情報付与／削除処理（図４参照）を実行させる点に特徴がある。
ここで、一定の条件とは、以下の（ａ）および（ｂ）である。
（ａ）下流側ポート（すなわち、記憶部５３０に記憶されている上流側ポート識別子の示すポート以外のポート）によりフレームを受信したこと
（ｂ）受信したフレームに内包されているパケットが処理対象パケット（本実施形態では、ＡＲＰパケット）であること
【００２７】
このタグ情報付与／削除処理は、上記条件（ａ）および（ｂ）の両方を満たすフレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域（本実施形態では、４バイトの領域）に追記して転送する一方、当該フレームを下流側に転送する場合には、タグ情報を追記せずに（他のスイッチングハブ５０によってタグ情報が付与されていた場合には、タグ情報を全て削除して）転送する処理である。ここで、上流側へ転送するフレームとは、その送信先ＭＡＣアドレスに対応付けてＭＡＣアドレステーブルに登録されているポート識別子が上流側ポート識別子と一致するフレーム、またはフラッディングの際に上流側へ送出するフレームのことである。つまり、下流側から受信した処理対象フレームについてフラッディングを行う場合には、スイッチングエンジン部５２０は、その送出先のポート毎にタグ情報付与／削除処理を実行するのである。なお、以下では、処理対象パケットを内包したフレーム（すなわち、ペイロード部に処理対象パケットが書き込まれているフレーム）のことを「処理対象フレーム」と呼ぶ。
【００２８】
本実施形態では、上記タグ情報として、条件（ａ）および（ｂ）の両方を満たすフレームを受信したポートのポート識別子を「ＶＬＡＮ  ＩＤ」とするＶＬＡＮタグが用いられている。通常、ポート識別子としては２バイトの数値が用いられるため、本実施形態では、最大で２個のタグ情報を上記所定領域に書き込むことができる。ＶＬＡＮタグは、本来、スイッチングハブにおいてブロードキャストの範囲を自在に制御するために用いられるのであるが、本実施形態では、ＶＬＡＮタグを用いて上記ポート識別子を上流側に通知するようにした点に特徴がある。なお、ＶＬＡＮおよびＶＬＡＮタグの詳細については非特許文献２を参照されたい。
以上がスイッチングハブ５０の構成である。
【００２９】
（Ａ−２：ルータ６０の構成）
次いで、図６を参照しつつルータ６０の構成を説明する。図６は、ルータ６０の構成を示すブロック図である。図６に示すように、ルータ６０は、通信Ｉ／Ｆ部６１０、ルーティングエンジン部６２０および記憶部６３０を有している。通信Ｉ／Ｆ部６１０は、スイッチングハブ５０の通信Ｉ／Ｆ部５１０と同様に複数のポートを有しており、各ポートには固有のポート識別子が割り当てられている。通信Ｉ／Ｆ部６１０の複数のポートはＩＰ網（図１では図示略）に接続されている上流側ポートとその他の下流側ポートとに分類される。例えば、図１のルータ６０においては、下流側のポートの１つがスイッチングハブ５０Ａに接続されているのである。通信Ｉ／Ｆ部６１０は、通信Ｉ／Ｆ部５１０と同様、各ポートを介して受信したフレームをルーティングエンジン部６２０に与える一方、ルーティングエンジン部６２０から与えられるフレームを同ルーティングエンジン部６２０によって指示されたポートから送出する。
【００３０】
記憶部６３０も、スイッチングハブ５０の記憶部５３０と同様に、ＲＡＭなどの揮発性メモリとＥＰＲＯＭなどの不揮発性メモリを含んでいる（図示略）。この不揮発性メモリには、ルータ検索パケット応答処理、パケット転送制御処理（図８参照）およびタイマ処理（図９参照）をルーティングエンジン部６２０に実行させるためのファームウェアが予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部６２０によって利用されるとともに、受信したフレーム（或いは、パケット）を一時的に蓄積しておくためのバッファの役割を果たす。また、この揮発性メモリには、ルーティングテーブル（図６では図示略）と接続関係管理テーブルとが格納される。これら２つのテーブルのうち、ルーティングテーブルについては一般的なルータが有するものと何ら変るところはないため詳細な説明を省略し、接続関係管理テーブルについて説明する。
【００３１】
図７は、接続関係管理テーブルのテーブルフォーマットの一例を示す図である。図７に示すように、接続関係管理テーブルには、ＬＡＮ番号と、１段下のポートを示す情報（或いは、１段下のポートを示す情報と２段下のポートを示す情報）と、ホストアドレスと、タイマ値とを含むレコードが格納される。この接続関係管理テーブルに格納される各レコードは、そのレコードに含まれているホストアドレスを有する通信端末４０がスイッチングハブ５０の何れのポートに接続されているのか、さらに、そのスイッチングハブ５０はルータ６０の何れのポートに接続されているのか（すなわち、通信端末４０からルータ６０に到る通信路上の各通信装置の接続関係）を表す。
【００３２】
具体的には、ホストアドレスには、ルータ６０が受信した処理対象フレームの送信元ＭＡＣアドレスが書き込まれ、上記ＬＡＮ番号にはその処理対象フレームを受信した通信Ｉ／Ｆ部６１０の下流側ポートのポート識別子が書き込まれる。そして、これらＬＡＮ番号やホストアドレスとともに上記レコードを構成する「１段下のポート情報」には、当該ＬＡＮ番号の示すポートに接続されているスイッチングハブ（すなわち、「ルータから見て１段下流側のスイッチングハブ」）において上記処理対象フレームを受信したポートのポート識別子が書き込まれ、「２段下のポート情報」には、ルータから見て２段下流側のスイッチングハブにおいて上記処理対象フレームを受信したポートのポート識別子が書き込まれる。詳細については後述するが、これら「１段下のポート情報」および「２段下のポート情報」は処理対象フレームに付与されているタグ情報から生成される。そして、タイマ値は、接続関係管理テーブルにレコードの登録が行われてからその削除が行われるまでの残り時間を示すデータである。このタイマ値の初期値は前述したＭＡＣアドレステーブルに登録したレコードを削除するまでの時間長に応じて定められる。
【００３３】
ルーティングエンジン部６２０は、スイッチングハブ５０のスイッチングエンジン部５２０と同様、ＣＰＵ（Central Processing Unit）である。ルーティングエンジン部６２０は、記憶部６３０に記憶されているファームウェアを実行し、ルータ６０の制御中枢として機能する。前述したように、ルーティングエンジン部６２０は上記ファームウェアにしたがって、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理を実行する。これら各処理の詳細については動作例において明らかにするが、概略は以下の通りである。
【００３４】
ルータ検索パケット応答処理は、通信Ｉ／Ｆ部６１０によってルータ検索フレームを受信した場合に、応答パケットを書き込んだフレーム（以下、ルータ検索応答フレーム）を返信する処理である。パケット転送制御処理では、ルーティングエンジン部６２０は、通信Ｉ／Ｆ部６１０によって受信したフレームに内包されているパケットの内容に応じた処理を実行する。例えば、当該パケットがＩＰ網から通信端末４０へ宛てて送信されてきたものである場合には、ルーティングエンジン部６２０はそのパケットを下流側へ転送する処理を実行し、当該パケットがルータ６０に宛てて送信されたＡＲＰパケットである場合には、応答パケットをその送信元へ返信する、といった具合である。また、ルーティングエンジン部６２０は、通信Ｉ／Ｆ部６１０によって受信したフレームが処理対象フレーム（すなわち、処理対象パケットを内包したフレーム）である場合には、図８に示すように、そのパケットの内容に応じた処理の実行に先立って、そのフレームの所定領域に書き込まれているタグ情報に基づいて新たなレコードを接続関係管理テーブルに登録する処理を実行する。そして、タイマ処理は、パケット転送制御処理の実行過程で接続関係管理テーブルに登録したレコードを一定時間経過後に削除する処理である。
以上がルータ６０の構成である。
【００３５】
（Ｂ：動作）
以下、図１０（Ａ）に示すように、通信端末４０、スイッチングハブ５０およびルータ６０が接続されている場合を例にとって、上流側ポート特定処理におけるスイッチングハブ５０およびルータ６０の動作を説明する。図１０（Ａ）では、スイッチングハブ５０およびルータ６０の各々が有するポートのポート識別子が丸付き数字で示されており、各通信端末４０に割り当てられているＭＡＣアドレスが括弧つき数字で表されている。図１０（Ａ）を参照すれば明らかなように、ルータ６０のポート識別子“１”のポートにはスイッチングハブ５０Ａが接続されており、このスイッチングハブ５０Ａのポート識別子“２”、“５”、“６”の各ポートには、夫々、スイッチングハブ５０Ｂ、通信端末４０Ａ、ルータ６０が接続されている。スイッチングハブ５０Ｂのポート識別子“１”、“３”、“４”の各ポートには、夫々、通信端末４０Ｂ、スイッチングハブ５０Ｃ、スイッチングハブ５０Ａが接続されている。そして、スイッチングハブ５０Ｃのポート識別子“１”、
“８”の各ポートには、夫々、スイッチングハブ５０Ｂ、通信端末４０Ｃが接続されている。また、通信端末４０Ａ、４０Ｂおよび４０Ｃの各々のＭＡＣアドレスは、それぞれ、“１０１”、“１５０”および“２００”である。なお、以下では、スイッチングハブ５０Ａ，５０Ｂおよび５０Ｃの各々スイッチングエンジン部５２０を区別する必要がある場合には、夫々、「スイッチングエンジン部５２０Ａ」、「スイッチングエンジン部５２０Ｂ」および「スイッチングエンジン部５２０Ｃ」と表記する。通信Ｉ／Ｆ部５１０および記憶部５３０についても同様である。
【００３６】
（Ｂ−１：上流側ポート特定処理における動作）
スイッチングハブ５０Ａ、５０Ｂおよび５０Ｃの各々のスイッチングエンジン部５２０は、その電源が投入されたことを契機としてファームウェアの実行を開始し、まず、上流側ポート特定処理を実行する。図３は、上流側ポート特定処理の流れを示すフローチャートである。図３に示すように、スイッチングエンジン部５２０は、ルータ検索フレームを全てのポートから送出し（ステップＳＡ１００）、そのルータ検索フレームに対する応答が返信されてくることを待ち受ける（ステップＳＡ１１０）。ここで、全てのポートからルータ検索フレームを送出するのは、当該上流側ポート特定処理の実行時点では通信Ｉ／Ｆ部５１０の何れのポートにルータ６０（或いは、よりルータ６０に近い側の他のスイッチングハブ５０）が接続されているのか判らないからである。詳細については後述するが、本実施形態では、各スイッチングハブ５０は、全てのポートからルータ検索フレームを送出し、このルータ検索フレームに対する応答の有無により上流側ポートを特定する。しかし、スイッチングハブ検出用のパケットを内包したフレーム（以下、スイッチングハブ検出フレーム）をルータ６０に間欠的に送出させ、各スイッチングハブ５０には当該スイッチングハブ検出フレームの受信により上流側ポートを特定させるようにすることもできる。より詳細に説明すると、各スイッチングハブ５０には、上流側ポート特定処理として、スイッチングハブ検出フレームの受信を待ち受け、当該スイッチングハブ検出フレームを受信したポートを上流側ポートとして記憶するとともに当該フレームを下流側の各ポートから送出する処理を実行させるのである。また、このような態様においては、各スイッチングハブ５０にスイッチングハブ検出フレームに対する応答を返信させるようにすれば、当該応答の受信によりルータ６０に配下のスイッチングハブを認識させることができる。
【００３７】
ルータ６０のルーティングエンジン部６２０は、通信Ｉ／Ｆ部６１０によって上記ルータ検索フレームを受信すると、ルータ検索パケット応答処理をファームウェアにしたがって実行し、ルータ検索応答フレームを返信する。一方、スイッチングハブ５０のスイッチングエンジン部５２０は、ルータ検索フレームに対する応答を待ち受けており、当該フレームを送信してから所定時間内に応答が返信されてこない場合（ステップＳＡ１１０：Ｎｏ）には、スイッチングエンジン部５２０は、再度、ステップＳＡ１００の処理を実行する。逆に、上記所定時間内に応答が返信されて来た場合には、スイッチングエンジン部５２０は、その応答を受信したポートのポート識別子を上流側ポート識別子として記憶部５３０に書き込む処理（ステップＳＡ１２０）を実行する。
【００３８】
図１０（Ａ）に示すように、ルータ６０は、スイッチングハブ５０Ａのポート識別子“６”のポートに接続されている。このため、スイッチングエンジン部５２０Ａは、ポート識別子“６”のポートを介してルータ６０から返信されてくるルータ検索応答フレームを受信する。したがって、記憶部５３０Ａには上流側ポート識別子として“６”が書き込まれる。
【００３９】
スイッチングエンジン部５２０Ｂが送信したルータ検索フレームは、スイッチングハブ５０Ａを経由してルータ６０に到達し、ルータ６０から返信されるルータ検索応答フレームもスイッチングハブ５０Ａを経由してスイッチングハブ５０Ｂに到達する。図１０（Ａ）に示すように、スイッチングハブ５０Ａはスイッチングハブ５０Ｂのポート識別子“４”のポートに接続されており、このポートを介してスイッチングエンジン部５２０Ｂは上記ルータ検索応答フレームを受信する。したがって、記憶部５３０Ｂには上流側ポート識別子として“４”が書き込まれる。
【００４０】
そして、スイッチングエンジン部５２０Ｃが送信したルータ検索フレームは、スイッチングハブ５０Ｂおよびスイッチングハブ５０Ａを経由してルータ６０に到達し、ルータ６０から返信されるルータ検索応答フレームもスイッチングハブ５０Ａおよびスイッチングハブ５０Ｂを経由してスイッチングハブ５０Ｃに到達する。図１０（Ａ）に示すように、スイッチングハブ５０Ｂは、スイッチングハブ５０Ｃのポート識別子“１”のポートに接続されており、このポートを介してスイッチングエンジン部５２０Ｃは上記ルータ検索応答フレームを受信する。このため、記憶部５３０Ｃには上流側ポート識別子として“１”が書き込まれる。
以上が上流側ポート特定処理におけるスイッチングハブ５０およびルータ６０の動作である。
【００４１】
上記のようにして上流側ポートの特定が行われた状況下で、ルータ６０のＭＡＣアドレスを取得するためのＡＲＰパケットが通信端末４０Ａ、４０Ｂおよび４０Ｃの各々から送信された場合に、スイッチングハブ５０およびルータ６０が実行する動作について説明する。なお、以下に説明する動作例では、各通信端末が送信するＡＲＰパケットの各々を区別するため、通信端末４０Ａが送信するものを「ＡＲＰ１」と、通信端末４０Ｂが送信するものを「ＡＲＰ２」と、通信端末４０Ｃが送信するものを「ＡＲＰ３」と表記する。
【００４２】
（Ｂ−２：ＡＲＰ１の転送動作）
まず、通信端末４０Ａから送信されるＡＲＰ１の転送動作について説明する。図１０（Ａ）に示すように、通信端末４０Ａはスイッチングハブ５０Ａに接続されている。スイッチングエンジン部５２０Ａは、通信Ｉ／Ｆ部５１０Ａにより上記ＡＲＰ１を内包したフレームを受信すると、図４に示すフレーム転送制御処理を実行する。図４に示すように、スイッチングエンジン部５２０Ａは、まず、下流側ポートによりフレームを受信したのか否かを判定する（ステップＳＢ１００）。このステップＳＢ１００の判定結果が“Ｙｅｓ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ１１０以降の処理を実行する。逆に、ステップＳＢ１００の判定結果が“Ｎｏ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ１３０以降の処理を実行する。
【００４３】
図１０（Ａ）に示すように、通信端末４０Ａは、スイッチングハブ５０Ａのポート識別子“５”のポートに接続されている。スイッチングハブ５０Ａの上流側ポートはポート識別子“６”のポートであるから、スイッチングエンジン部５２０Ａは、通信端末４０Ａから送信されたフレームを下流側ポートを介して受信する。このため、ステップＳＢ１００の判定結果は“Ｙｅｓ”になり、スイッチングエンジン部５２０ＡはステップＳＢ１１０以降の処理を実行する。
【００４４】
ステップＳＢ１１０では、下流側ポートを介して受信したフレームが処理対象フレームであるか否かの判定が行われる。このステップＳＢ１１０の判定結果が“Ｙｅｓ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ１２０以降の処理を実行する。逆に、ステップＳＢ１１０の判定結果が“Ｎｏ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ１３０以降の処理を実行する。前述したように本実施形態の処理対象パケットはＡＲＰパケットであり、通信端末４０Ａから送信されたパケットもＡＲＰである。したがって、ステップＳＢ１１０の判定結果は“Ｙｅｓ”になり、スイッチングエンジン部５２０Ａは、ステップＳＢ１２０以降の処理を実行する。
【００４５】
ステップＳＢ１２０の処理は、下流側ポートにより受信した処理対象フレームに対して、タグ情報の追記または削除を行うタグ情報付与／削除処理である。図５は、タグ情報付与／削除処理の流れを示すフローチャートである。図５に示すように、このタグ情報付与／削除処理では、スイッチングエンジン部５２０Ａは、まず、下流側ポートを介して受信した処理対象フレームの送信先が上流側であるか否かを判定する（ステップＳＢ２００）。このステップＳＢ２００の判定基準については前述した通りである。ステップＳＢ２００の判定結果が“Ｎｏ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ２１０およびステップＳＢ２２０の処理を実行する。逆に、ステップＳＢ２００の判定結果が“Ｙｅｓ”である場合には、スイッチングエンジン部５２０Ａは、ステップＳＢ２３０以降の処理を実行する。
【００４６】
本実施形態の処理対象フレームは、ＡＲＰパケット（より正確には、ルータ６０宛てのＡＲＰパケット）を内包したフレームである。このＡＲＰパケットのヘッダ部には送信先ＩＰアドレスとしてルータ６０のＩＰアドレスが書き込まれているが、当該ＡＲＰパケットを内包したフレームのヘッダ部には送信先ＭＡＣアドレスは書き込まれていない。そもそも、ルータ６０のＭＡＣアドレスの取得を目的として上記ＡＲＰパケットの送信が行われたからである。つまり、ＡＲＰパケットを内包したフレームはブロードキャストフレームであり、スイッチングエンジン部５２０Ａは前述したフラッディングを行う。スイッチングエンジン部５２０Ａは、ポート識別子“５”のポートを介して通信端末４０Ａから受信した処理対象フレームを、そのポート以外の全てのポートから送出する処理（図４：ステップＳＢ１３０）を行うのであるが、その実行に先立ってそれらフレームの各々についてタグ情報付与／削除処理を行う。このため、上記フラッディングにより上流側ポートへ送出するフレームについてのみステップＳＢ２００の判定結果は“Ｙｅｓ”になり、他のものについてはステップＳＢ２００の判定結果は“Ｎｏ”になる。
【００４７】
フラッディングにより下流側へ送出する処理対象フレームについては、ステップＳＢ２００の判定結果は“Ｎｏ”になるため、スイッチングエンジン部５２０Ａは、ステップＳＢ２１０の処理を実行する。このステップＳＢ２１０の処理は、受信した処理対象フレームの所定領域にタグ情報が書き込まれているか否かを判定する処理である。そして、スイッチングエンジン部５２０Ａは、ステップＳＢ２１０の判定結果が“Ｙｅｓ”である場合にのみ、ステップＳＢ２２０の処理を実行する。このステップＳＢ２２０の処理は、受信した処理対象フレームに付与されているタグ情報（すなわち、処理対象フレームの所定領域に書き込まれているタグ情報）を全て削除する処理である。図１０（Ａ）に示すように、本動作例においてスイッチングハブ５０Ａが通信端末４０Ａから受信するフレームにはタグ情報は付与されていない。このため、ステップＳＢ２１０の判定結果は“Ｎｏ”になり、スイッチングエンジン部５２０Ａは、ステップＳＢ２２０の処理を行うことなく、本タグ情報付与／削除処理を終了する。なお、下流側に転送するフレームにタグ情報を付与しない（或いは、付与されているタグ情報を削除する）のは、当該タグ情報はルータ６０における接続関係管理テーブルの更新にのみ利用され、下流側では利用されることはないからである。
【００４８】
これに対して、フラッディングにより上流側へ送出する処理対象フレームについては、ステップＳＢ２００の判定結果は“Ｙｅｓ”になるため、スイッチングエンジン部５２０ＡはステップＳＢ２３０以降の処理を実行する。ステップＳＢ２３０は、受信した処理対象フレームの所定領域を参照し、所定数分（本実施形態では、２個）のタグ情報が付与されているか否かを判定する処理である。このステップＳＢ２３０の判定結果が“Ｙｅｓ”であれば、スイッチングエンジン部５２０Ａは、ステップＳＢ２４０の処理を行った後に、ステップＳＢ２５０の処理を行う。逆に、ステップＳＢ２３０の判定結果が“Ｎｏ”であれば、スイッチングエンジン部５２０は、ステップＳＢ２４０の処理を実行することなく、ステップＳＢ２５０の処理を実行する。
【００４９】
前述したように、本動作例にて通信端末４０Ａからスイッチングハブ５０Ａに送信されてくる処理対象フレームにはタグ情報は付与されていない。したがって、ステップＳＢ２３０の判定結果は“Ｎｏ”になり、スイッチングエンジン部５２０ＡはステップＳＢ２５０の処理のみを実行する。
【００５０】
ステップＳＢ２５０は、受信した処理対象フレームの所定領域の最外に、当該フレームを受信したポートを示すタグ情報を追記する処理である。ここで、所定領域の最外にタグ情報を追記するとは、具体的には、以下のような処理を行うことを言う。受信した処理対象フレームにタグ情報が付与されていないのであれば、スイッチングエンジン部５２０Ａは当該所定領域の先頭から上記タグ情報を書き込む。一方、受信したフレームの所定領域に上記所定数未満の個数のタグ情報が書き込まれていた場合には、スイッチングエンジン部５２０Ａは、それらタグ情報を上記所定領域の末尾側にタグ情報１個分のデータサイズ分ずつ移動させ、その後、当該所定領域の先頭から新たなタグ情報を書き込む。つまり、上記所定領域には、その先頭に近いほど（外側に近いほど）上流側のスイッチングハブのタグ情報が書き込まれるのである。
【００５１】
前述したように、スイッチングハブ５０Ａが通信端末４０Ａから受信する処理対象フレームにはタグ情報は付与されていない。したがって、ステップＳＢ２５０においてスイッチングエンジン部５２０Ａは、当該処理対象フレームを受信したポートのポート識別子（すなわち、“５”）をタグ情報として当該処理対象フレームの所定領域の最外に書き込む処理を実行する。そして、スイッチングエンジン部５２０Ａは、タグ情報付与／削除処理を完了すると、このタグ情報付与／削除処理によりタグ情報が付与された処理対象フレームをその送信先に応じたポートから出力する（図４：ステップＳＢ１３０）。
【００５２】
以上のように通信端末４０Ａから送信されたＡＲＰ１は、スイッチングハブ５０Ａによって上流側のルータ６０と下流側のスイッチングハブ５０Ｂへ転送される。このＡＲＰ１を内包したフレームはスイッチングハブ５０Ｂにとっても処理対象フレームである。しかし、スイッチングエンジン部５２０Ｂは当該処理対象フレームを上流側から受信するため、このスイッチングエンジン部５２０Ｂが実行するフレーム転送制御処理（図４参照）においては、ステップＳＢ１００の判定結果は“Ｎｏ”になり、ステップＳＢ１３０の処理（より詳細にはフラッディング）のみが実行される。つまり、スイッチングハブ５０Ｂはスイッチングハブ５０Ａから転送されたフレームをさらに通信端末４０Ｂおよびスイッチングハブ５０Ｃに転送する。このフレームに内包されているＡＲＰ１はルータ６０に宛てて送信されたものであるから、通信端末４０Ｂは、このフレームを受信しても、応答を返信することなく当該フレームを破棄する。一方、スイッチングハブ５０Ｃは、スイッチングハブ５０Ｂと同様に図４のステップＳＢ１３０の処理（フラッディング）のみを実行し、当該フレームを通信端末４０Ｃへと転送する。通信端末４０Ｃは、当該フレームを受信すると、通信端末４０Ｂと同様に応答を返信することなくそのフレームを破棄する。なお、図１０（Ａ）においては、スイッチングハブ５０Ａから下流側へのＡＲＰ１の転送については図示を省略した。
【００５３】
一方、ルータ６０のルーティングエンジン部６２０は、通信Ｉ／Ｆ部６１０を介してフレームを受信すると、記憶部６３０に記憶されているファームウェアにしたがってパケット転送制御処理を実行する。図８は、パケット転送制御処理の流れを示すフローチャートである。図８に示すように、ルーティングエンジン部６２０は、まず、通信Ｉ／Ｆ部６１０を介して受信したフレームに内包されているパケットが処理対象パケットであるか否かを判定する（ステップＲＡ１００）。このステップＲＡ１００の判定結果が“Ｙｅｓ”であれば、ルーティングエンジン部６２０はステップＲＡ１１０以降の処理を実行する。逆に、ステップＲＡ１００の判定結果が“Ｎｏ”であれば、ルーティングエンジン部６２０は、ステップＲＡ１３０の処理を実行する。本動作例においてスイッチングハブ５０Ａから転送されてくるフレームにはＡＲＰ１が内包されているから、ステップＲＡ１００の判定結果は“Ｙｅｓ”になり、ステップＲＡ１１０以降の処理が実行される。
【００５４】
ステップＲＡ１１０は、通信Ｉ／Ｆ部６１０により受信したフレームの所定領域に書き込まれているタグ情報と、そのフレームの送信元ＭＡＣアドレスと、そのフレームを受信した通信Ｉ／Ｆ部６１０のポートのポート識別子と、タイマ値の初期値（ＭＡＣレコードの寿命に応じた値、例えば、３００）とを対応付けて新たなレコードを生成し、接続関係管理テーブルに書き込む処理である。より詳細に説明すると、ルーティングエンジン部６２０は、上記ポート識別子を「ＬＡＮ番号」として、上記送信元ＭＡＣアドレスを「ホストアドレス」として新たなレコードを生成する。そして、上記受信したフレームの所定領域に書き込まれているタグ情報については、ルーティングエンジン部６２０は以下の要領で当該レコードに書き込む。すなわち、上記所定領域に書き込まれているタグ情報が１つだけの場合には、ルーティングエンジン部６２０は、そのタグ情報を当該レコードの「１段下のポート情報」に書き込み、上記所定領域にタグ情報が２つ書き込まれていた場合には、最外のタグ情報を「１段下のポート情報」に、他方を「２段下のポート情報」に各々書き込む。
【００５５】
次いで、ルーティングエンジン部６２０は、上記受信したフレームからタグ情報を削除し（ステップＲＡ１２０）、そのフレームに内包されているパケットに応じた処理を実行する（ステップＲＡ１３０）。例えば、上記パケットが、ＩＰ網に接続されている通信装置へ宛てて送信されたものである場合には、そのパケットの送信先ＩＰアドレスとルーティングテーブルの格納内容とに基づいて転送先のルータを特定しそのルータへ当該パケットを転送する。また、上記パケットがルータ６０に対して何らかの処理の実行を要求するものであれば、その要求に応じた処理を実行する、といった具合である。本動作例においては、通信端末４０Ａから送信されたＡＲＰ１を受信するのであるから、ルーティングエンジン部６２０は応答パケットを返信する処理を実行する。
以上がＡＲＰ１の転送動作である。
【００５６】
以上説明したように、通信端末４０Ａから送信されたＡＲＰ１がスイッチングハブ５０Ａを経てルータ６０に到達し、そのＡＲＰ１に対する応答パケットの返信が行われる過程において、ルータ６０の接続関係管理テーブルには、これら各装置の接続関係（すなわち、ルータ６０のポート識別子“１”のポートに接続されているスイッチングハブのポート識別子“５”のポートにＭＡＣアドレス“１０１”の通信端末が接続されていること）を表すレコードＲｅｃ１（図１０（Ｂ）参照）が登録される。なお、上記のようにして接続関係管理テーブルに登録されたレコードＲｅｃ１は、タイマ処理によって一定時間経過後に削除される。図９はタイマ処理の流れを示すフローチャートである。図９に示すように、ルーティングエンジン部６２０は、各レコードのタイマ値をデクリメントし（ステップＲＢ１００）、そのタイマ値が０になったレコードがある場合（ステップＲＢ１１０：Ｙｅｓ）には、該当するレコードを削除する処理（ステップＲＢ１２０）を、全てのレコードが削除されるまで（すなわち、ステップＲＢ１３０の判定結果がＹｅｓになるまで）繰り返し実行する。これは、通信端末４０がＬＡＮ１から切り離された場合に、不要となるレコードが接続関係管理テーブルに残り続けることを防止するためである。なお、スイッチングハブ５０の記憶部５３０に記憶されているＭＡＣアドレステーブルの更新（すなわち、ＭＡＣレコードの削除）タイマに合わせたタイマ値で接続関係管理テーブルの格納内容を更新するようにしても良い。
【００５７】
（Ｂ−３：ＡＲＰ２の転送動作）
次いで、通信端末４０Ｂから送信されるＡＲＰ２の転送動作について図１１を参照しつつ説明する。なお、図１１（Ａ）においても、各通信装置の接続先のポートおよび通信端末４０に割り当てられているＭＡＣアドレスは、図１０（Ａ）におけるものと同一である。図１１（Ａ）に示すように、通信端末４０Ｂはスイッチングハブ５０Ｂに接続されている。このため、通信端末４０Ｂから送信されたＡＲＰ２（より正確には、ＡＲＰ２を内包したフレーム）は、まず、スイッチングハブ５０Ｂによって受信される。
【００５８】
前述したように、通信端末４０Ｂはスイッチングハブ５０Ｂのポート識別子“１”のポートに接続されており、このスイッチングハブ５０Ｂの上流側ポートはポート識別子“４”のポートである。したがって、スイッチングエンジン部５２０Ｂは、ＡＲＰ２を内包したフレーム（すなわち、処理対象フレーム）を下流側ポートを介して受信し、前述した動作例（Ｂ−２）にてスイッチングエンジン部５２０Ａが実行した動作と同一の動作を実行する。すなわち、スイッチングエンジン部５２０Ｂは、前述したフラッディングを行い、上記処理対象フレームを受信したポートを示すタグ情報を付与したフレームを上流側のスイッチングハブ５０Ａに転送するとともに（図１１（Ａ）参照）、下流側へ転送するフレームには当該タグ情報を付与せずにその転送を行う。なお、図１１（Ａ）では、フラッディングによりスイッチングエンジン部５２０Ｂが下流側へ転送するフレームの図示を省略した。
【００５９】
スイッチングハブ５０Ｂはスイッチングハブ５０Ａのポート識別子“２”のポートに接続されている。前述したようにスイッチングハブ５０Ａの上流側ポートはポート識別子
“６”のポートであるから、本動作例においても、スイッチングエンジン部５２０Ａは、下流側ポートを介して処理対象フレーム（ＡＲＰ２を内包したフレーム）を受信する。スイッチングエンジン部５２０Ａは動作例（Ｂ−２）にてＡＲＰ１を内包したフレームを受信した場合と同様にフラッディングを行い、各ポートへ送出するフレームの各々に対してタグ情報付与／削除処理を実行する。ただし、本動作例においてスイッチングエンジン部５２０Ａが受信する処理対象フレームの所定領域には、既にタグ情報が１つ書き込まれている点が動作例（Ｂ−２）の場合と異なる。
【００６０】
このように、本動作例においてスイッチングエンジン部５２０Ａが受信する処理対象フレームの所定領域には既にタグ情報が１つ書き込まれているため、フラッディングにより下流側へ送出する処理対象フレームについてのステップＳＢ２１０の判定結果は“Ｙｅｓ”になり、タグ情報の削除（ステップＳＢ２２０）が実行される。前述したように、下流側にタグ情報を通知する必要はないからである。一方、フラッディングにより上流側へ送出する処理対象フレームについてのステップＳＢ２３０の判定結果は動作例（Ｂ−２）における場合と同様に“Ｎｏ”になり、ステップＳＢ２５０の処理のみが実行される。ただし、この処理対象フレームには既にタグ情報が１つ付与されているため、スイッチングエンジン部５２０Ａは、ステップＳＢ２５０において当該タグ情報の移動を行った後に、当該処理対象フレームを受信したポートを示す新たなタグ情報を追記する。その結果、本動作例では、図１１（Ａ）に示すように、２つのタグ情報を有する処理対象フレームがスイッチングハブ５０Ａからルータ６０に転送される。
【００６１】
ルータ６０のルーティングエンジン部６２０は、スイッチングハブ５０Ａによって転送された処理対象フレームを受信すると、動作例（Ｂ−２）における場合と同様に接続関係管理テーブルの更新を行う。ただし、本動作例においてスイッチングハブ５０Ａから転送されてくる処理対象フレームの所定領域には２つのタグ情報が書き込まれているため、ルーティングエンジン部６２０は、図１１（Ｂ）に示すようなレコードＲｅｃ２を接続関係管理テーブルに登録する。このレコードＲｅｃ２によって、ルータ６０と、その１段下のスイッチングハブであるスイッチングハブ５０Ａと、さらに１段下（すなわち、ルータ６０から見て２段下）のスイッチングハブであるスイッチングハブ５０Ｂと、通信端末４０Ｂの接続関係が表されるのである。
以上がＡＲＰ２の転送動作である。
【００６２】
（Ｂ−４：ＡＲＰ３の転送動作）
次いで、通信端末４０Ｃから送信されるＡＲＰ３の転送動作について図１２を参照しつつ説明する。なお、図１２（Ａ）においても、各通信装置の接続先のポートおよび通信端末４０に割り当てられているＭＡＣアドレスは、図１０（Ａ）におけるものと同一である。図１２（Ａ）に示すように、通信端末４０Ｃはスイッチングハブ５０Ｃに接続されており、スイッチングハブ５０Ｃはスイッチングハブ５０Ｂに接続されている。このため、通信端末４０Ｃから送信されたＡＲＰ３（より正確には、ＡＲＰ３を内包したフレーム）は、まず、スイッチングハブ５０Ｃによって受信される。
【００６３】
前述したように、通信端末４０Ｃはスイッチングハブ５０Ｃのポート識別子“８”のポートに接続されており、このスイッチングハブ５０Ｃの上流側ポートはポート識別子“１”のポートである。つまり、スイッチングエンジン部５２０Ｃは、下流側ポートを介して処理対象フレーム（すなわち、ＡＲＰ３を内包したフレーム）を受信する。このため、スイッチングエンジン部５２０Ｃは、前述した動作例（Ｂ−２）にてスイッチングエンジン部５２０Ａが実行した動作と同一の動作を実行する。その結果、スイッチングエンジン部５２０Ｃは、前述したフラッディングを行い、上記処理対象フレームを受信したポートを示すタグ情報を付与したフレームを上流側のスイッチングハブ５０Ｂに転送するとともに（図１２（Ａ）参照）、下流側へ転送するフレームには当該タグ情報を付与せずにその転送を行う。なお、図１２（Ａ）では、フラッディングによりスイッチングエンジン部５２０Ｃが下流側へ転送するフレームの図示を省略した。
【００６４】
スイッチングハブ５０Ｃはスイッチングハブ５０Ｂのポート識別子“３”のポートに接続されている。スイッチングハブ５０Ｂの上流側ポートはポート識別子“４”のポートであるから、スイッチングエンジン部５２０Ｂは下流側ポートを介して処理対象フレーム（ＡＲＰ３を内包したフレーム）を受信する。この処理対象フレームにはスイッチングハブ５０Ｃによってタグ情報が付与されているのであるから、スイッチングエンジン部５２０Ｂは動作例（Ｂ−３）におけるスイッチングエンジン部５２０Ａと同一の動作を行う。その結果、本動作例では、図１２（Ａ）に示すように、２つのタグ情報（スイッチングハブ５０Ｃによって付与されたタグ情報とスイッチングハブ５０Ｂによって付与されたタグ情報）を有する処理対象フレームがスイッチングハブ５０Ｂからスイッチングハブ５０Ａに転送される。
【００６５】
本動作例においても、スイッチングエンジン部５２０Ａは、下流側ポートを介して処理対象フレーム（ＡＲＰ３を内包したフレーム）を受信する。スイッチングエンジン部５２０Ａは動作例（Ｂ−２）にてＡＲＰ１を内包したフレームを受信した場合と同様にフラッディングを行い、各ポートへ送出するフレームの各々に対してタグ情報付与／削除処理を実行する。ただし、本動作例においてスイッチングエンジン部５２０Ａが受信する処理対象フレームには、既に２つのタグ情報が付与されている点が動作例（Ｂ−２）の場合と異なる。
【００６６】
フラッディングにより下流側へ送出する処理対象フレームについては、所定領域に書き込まれているタグ情報の数が１つであるか２つであるかに関わらず、ステップＳＢ２１０の判定結果は“Ｙｅｓ”になり、全てのタグ情報を削除する処理（ステップＳＢ２２０）が実行される。一方、フラッディングにより上流側へ送出する処理対象フレームについては、既に所定数分のタグ情報が所定領域に書き込まれているため、ステップＳＢ２３０の判定結果は“Ｙｅｓ”になり、スイッチングエンジン部５２０Ａは、ステップＳＢ２４０の処理を実行した後にステップＳＢ２５０の処理を実行する。このステップＳＢ２４０の処理は、受信した処理対象フレームの所定領域に書き込まれているタグ情報のうち、最も下流側のスイッチングハブ５０によって付与されたもの（すなわち、所定領域の最内（末尾側）に書き込まれているもの）を削除する処理である。このステップＳＢ２４０の処理が実行される結果、スイッチングハブ５０Ｃによって付与されたタグ情報は削除される。その後、上記ステップＳＢ２５０においてタグ情報の移動および新たなタグ情報の追記が行われる。結果、図１２（Ａ）に示すように、スイッチングハブ５０Ａによって付与されたタグ情報とスイッチングハブ５０Ｂによって付与されたタグ情報とを有する処理対象フレームがスイッチングハブ５０Ａからルータ６０に転送される。なお、本実施形態では、フラッディングにより上流側へ送出する処理対象フレームの所定領域に所定数分のタグ情報が既に書き込まれていた場合には、それらタグ情報のうち最内のものを削除した後に新たなタグ情報を最外に追記する処理をスイッチングハブ５０に実行させた。このような態様によれば、ルータ６０付近のスイッチングハブ（より正確には、ルータ６０から見て２段下までのスイッチングハブ）の接続関係を正確に把握することができる。しかし、フラッディングにより上流側へ送出する処理対象フレームの所定領域に所定数分のタグ情報が書き込まれていた場合には、最内のタグ情報の削除および新たなタグ情報の追記（すなわち、ステップＳＢ２４０およびＳＢ２５０の処理）を行うことなく、その処理対象フレームを上流側へ転送する処理をスイッチングハブ５０に実行させるようにしても良い。このような態様によれば、通信端末４０付近のスイッチングハブの接続関係がルータ６０において把握されることになる。このような態様においては、何れかの通信端末がコンピュータウィルスに感染し、異常なパケットが当該通信端末から送出されていることが検出された場合には、当該通信端末を接続しているスイッチングハブに対して当該通信端末が接続されているポートを閉塞する旨の指示をルータ６０から与えて当該ポートを閉塞させることができ、コンピュータウィルスに感染した通信端末からの影響（或いはスイッチングハブの下流側ポートを閉塞することに起因した影響）を最小限に抑えることができる。
【００６７】
ルータ６０のルーティングエンジン部６２０は、スイッチングハブ５０Ａによって転送された処理対象フレームを受信すると、動作例（Ｂ−３）における場合と同様に、図１２（Ｂ）に示すようなレコードＲｅｃ３を接続関係管理テーブルに登録する。このレコードＲｅｃ３によって、ルータ６０と、その１段下のスイッチングハブであるスイッチングハブ５０Ａと、さらに１段下（すなわち、ルータ６０から見て２段下）のスイッチングハブであるスイッチングハブ５０Ｂと、さらにその下流の（実際には、スイッチングハブ５０Ｃを介して接続されている）通信端末４０Ｃの接続関係が表されるのである。
以上がＡＲＰ３の転送動作である。
【００６８】
以上説明したように、本実施形態によれば、ルータ６０から見て２段下までのスイッチングハブとそのスイッチングハブに接続されている通信端末の接続関係を正確に表現するレコードＲｅｃ１およびＲｅｃ２データと、ルータ６０から見て３段目以降のスイッチングハブを省略した接続関係を表すレコードＲｅｃ３が接続関係管理テーブルに格納される。このため、ＬＡＮ１の運用管理者は、接続関係管理テーブルの格納内容を適宜参照（例えば、接続関係管理テーブルの格納内容にしたがったツリー構造を描画させ、そのツリー構造を閲覧する等）することで、ルータ６０から見て２段下までのスイッチングハブとそのスイッチングハブに接続されている通信端末の接続関係を正確に把握し、それら通信装置の運用管理や保守を迅速に行うことができる。
【００６９】
また、ルータ６０からスイッチングハブ５０の遠隔制御を行う場合には、不正なアクセスを行っている通信端末が接続されているスイッチングハブのポートをその通信端末のＭＡＣアドレスと上記接続関係管理テーブルの格納内容から特定し、そのポートをルータ６０からの遠隔操作で閉塞したり、そのポートのアクセスランプを明滅させたりするなどの対処を行うことが可能になる。なお、本実施形態では、ルータ６０から見て３段目以降のスイッチングハブについての接続関係を直接把握することはできないが、当該３段目以降のスイッチングハブに接続されている通信端末と、ルータ６０から見て２段下までのスイッチングハブとの接続関係を把握することができるため、これらを手掛かりに３段目のスイッチングハブを特定しその運用管理および保守を行ってもよく、また不正アクセスに対しては２段目のスイッチングハブの遠隔操作を行うことで被害を食い止めることができる。
【００７０】
加えて、本実施形態では、ＳＮＭＰマネージャのような新たなコンピュータ装置を導入する必要はないため大幅なコストの増加を招くことはない。また、本実施形態では、予め定められた種類のパケット（ＡＲＰパケット）のみを処理対象とするため、ＳＮＭＰを利用して接続関係の把握を行う従来技術に比較してスイッチングハブ５０に過大な処理負荷がかかることもない。つまり、本実施形態によれば、ルータ６０の配下の通信ネットワークに含まれている各通信装置の接続関係を、それら通信装置に過大な負荷をかけることなく、かつ低コストで把握することが可能になるのである。
【００７１】
（Ｃ：変形）
以上、本発明の実施形態について説明したが、この実施形態を以下のように変形しても勿論良い。
（１）上述した実施形態では、ルータ６０のＭＡＣアドレスを取得するためのＡＲＰパケットを処理対象パケットとした。しかし、本発明における処理対象パケットは、ＡＲＰパケットに限定されるものではなく、ＤＨＣＰ（Dynamic Host
Configuration Protocol）によるＩＰアドレスの割り当てを要求するパケットやＷｉｎｄｏｗｓ（登録商標）等におけるファイル共有のためのパケットであっても良い。要は、スイッチングハブ５０にポートの接続状態を示す情報を取得させることができる種類のパケットであって、通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に送信される可能性の高いパケットであれば良い。このような種類のパケットを処理対象パケットとして定めておけば、通信端末の電源投入（または通信端末の通信ネットワークへの接続）から時間をおかずに迅速にその通信端末とルータとの間の通信路についての接続関係を示すデータを生成することができるからである。また、処理対象パケットとしてＤＨＣＰによるＩＰアドレスの割り当てを要求するパケットやＷｉｎｄｏｗｓ（登録商標）等におけるファイル共有のためのパケットを用いる態様においては各通信装置を識別するための識別子として人間にとって識別が容易なＩＰアドレスやコンピュータ名をＭＡＣアドレスの代わりに用いることができる、といった利点もある。
【００７２】
（２）上述した実施形態では、各スイッチングハブ５０が処理対象パケットを受信した下流側のポートをルータ６０に通知するためのタグ情報として、ＭＡＣフレームの所定領域に書き込むＶＬＡＮタグを用いた。ここで上記タグ情報としてＶＬＡＮタグを用いたのは、データ通信技術における一般仕様であり、多くの通信装置がこの仕様に準拠している（換言すれば、特段の問題を引き起こさない）と考えられるからである。しかし、新たなタグ情報の仕様（データサイズやフレームへの書き込み領域等）を独自に定めることも考えられない訳ではない。このような態様によれば、処理対象フレームに付与するタグ情報の最大数を２よりも大きくすることや、ポート識別子とともにスイッチングハブ５０を示す識別子をタグ情報として付与すること、或いはタグ情報の書き込み先となる領域の大きさを可変とし、処理対象フレームに付与可能なタグ情報の数についての制限を撤廃することが可能になるといった利点があるからである。しかし、その一方、当該独自仕様に対応していないスイッチングハブがＬＡＮに含まれていた場合に、その独自仕様にしたがったタグ情報を付与したフレームがそのスイッチングハブにて破棄される虞があるといった点に留意する必要がある。また、上述した実施形態では、処理対象フレームの所定領域の最外に最も上流側のスイッチングハブ５０のタグ情報が書き込まれ、内側に向うほど下流側のスイッチングハブ５０のタグ情報が書き込まれるようにしたが、逆順であっても勿論良い。
【００７３】
（３）上述した実施形態では、本発明のスイッチングハブの特徴を顕著に示す上流側ポート特定処理およびフレーム転送制御処理（タグ情報付与／削除処理を含む）をソフトウェアで実現したが、これら各処理をハードウェアで実現しても良い。例えば、上流側ポート特定処理およびフレーム転送制御処理（タグ情報付与／削除処理を含む）を実行するＡＳＩＣでスイッチングエンジン部５２０を構成すれば良い。同様に、ルータ６０のルーティングエンジン部６２０を、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理を実行するＡＳＩＣで構成しても良い。
【００７４】
（４）上述した実施形態のフレーム転送制御処理では、条件（ａ）を満たすか否かの判定（図４：ステップＳＢ１００）を行った後に条件（ｂ）を満たすか否かの判定（図４：ステップＳＢ１１０）を行ったが、これら判定処理の順序を入れ替えても良く、また、条件（ａ）と条件（ｂ）とを同時に満たすか否かの判定を上記２つの判定に換えて行うようにしても良い。
【００７５】
（５）上述した実施形態では、上流側ポート特定処理およびフレーム転送制御処理（タグ情報付与／削除処理を含む）をスイッチングハブ５０のスイッチングエンジン部５２０に実行させるためのファームウェア（プログラム）が予め同スイッチングハブ５０の記憶部５３０に記憶されていた。しかし、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に当該プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより当該プログラムを配布しても良い。このようにして配布されるプログラムよって既存のスイッチングハブのファームウェアを書き換えることで、スイッチングハブ５０と同一の機能を既存のスイッチングハブに付与することが可能になるからである。同様に、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理の各処理をルータ６０のルーティングエンジン部６２０に実行させるためのファームウェア（プログラム）についても、コンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、インターネットなどの電気通信回線経由のダウンロードにより配布しても良い。このようにして配布されるプログラムによって既存のルータのファームウェアを書き換えることで、ルータ６０と同一の機能を既存のルータに付与することが可能になるからである。
【符号の説明】
【００７６】
１…ＬＡＮ、４０Ａ，４０Ｂ，４０Ｃ…通信端末、５０Ａ，５０Ｂ，５０Ｃ…スイッチングハブ、６０…ルータ、５１０，６１０…通信Ｉ／Ｆ部、５２０…スイッチングエンジン部、６２０…ルーティングエンジン部、５３０，６３０…記憶部。
【図１】
0005962786.tif 000002
【図２】
0005962786.tif 000003
【図３】
0005962786.tif 000004
【図４】
0005962786.tif 000005
【図５】
0005962786.tif 000006
【図６】
0005962786.tif 000007
【図７】
0005962786.tif 000008
【図８】
0005962786.tif 000009
【図９】
0005962786.tif 000010
【図１０】
0005962786.tif 000011
【図１１】
0005962786.tif 000012
【図１２】
0005962786.tif 000013
【図１３】
0005962786.tif 000014