(57)【要約】【課題】ハッシュ値の衝突の状況を容易に把握することが可能なネットワーク中継装置を提供する。【解決手段】アドレステーブルＦＤＢ１が持つ複数のエントリのそれぞれは、複数のポートと、当該複数のポートの先に存在するＭＡＣアドレスとの関係を示す第１情報が登録される第１領域ＡＲ１と、第２情報が登録される第２領域ＡＲ２とを備える。フレーム処理部は、ポートで受信したフレームの送信元ＭＡＣアドレスを学習する際に、まず、当該送信元ＭＡＣアドレスを用いてハッシュ値を算出する。次いで、当該ハッシュ値に対応するエントリのＡＲ１に送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録済みの場合には、ＡＲ２に第２情報を登録する。【選択図】図２
2014195140.tif 000002
【特許請求の範囲】
【請求項１】
複数のポートと、
複数のエントリを持つアドレステーブルと、
前記アドレステーブルに基づいて前記複数のポート間でフレームを中継するフレーム処理部と、を備え、
前記複数のエントリのそれぞれは、
前記複数のポートと、前記複数のポートの先に存在するＭＡＣアドレスとの関係を示す第１情報が登録される第１領域と、
第２情報が登録される第２領域と、を備え、
前記フレーム処理部は、前記複数のポートの中のいずれかのポートで受信したフレームの送信元ＭＡＣアドレスを学習する際に、前記送信元ＭＡＣアドレスを用いてハッシュ値を算出し、前記ハッシュ値に対応するエントリの前記第１領域に前記送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録済みの場合に前記第２領域に前記第２情報を登録する、ネットワーク中継装置。
【請求項２】
請求項１記載のネットワーク中継装置において、
前記第２情報は、１ビットの情報である、ネットワーク中継装置。
【請求項３】
請求項２記載のネットワーク中継装置において、
さらに、ユーザからの要求に応じて、前記複数のエントリの前記第２領域を読み出し、前記第２領域に前記第２情報が登録されているエントリを抽出し、当該抽出したエントリを前記ユーザに通知する管理部を有する、ネットワーク中継装置。
【請求項４】
請求項３記載のネットワーク中継装置において、
前記管理部は、さらに、ユーザからの要求に応じて、前記複数のエントリの中から前記第２領域に前記第２情報が登録されているエントリの割合を算出し、当該算出した割合を前記ユーザに通知する、ネットワーク中継装置。
【請求項５】
請求項２記載のネットワーク中継装置において、
前記複数のエントリのそれぞれは、さらに、複数の前記第１領域を備え、
前記フレーム処理部は、前記ハッシュ値に対応するエントリが持つ前記複数の第１領域の全てに、前記送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録されている場合に前記第２領域に前記第２情報を登録する、ネットワーク中継装置。
【請求項６】
請求項１記載のネットワーク中継装置において、
前記第２情報は、自身のエントリにおける前記ハッシュ値の衝突回数を表す複数ビットの情報である、ネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク中継装置に関し、例えば、ハッシュ値で管理されるアドレステーブルを備えたネットワーク中継装置に関する。
【背景技術】
【０００２】
特許文献１および特許文献２には、２個のテーブルを用いてパケットを処理する方法が示されている。一方のテーブルは、ＩＰアドレス等の情報をハッシュ値で管理し、他方のテーブルは、ＩＰアドレス等の情報をＣＡＭを用いて管理する。ＩＰアドレス等の情報の登録に際してハッシュ値の衝突が生じた場合には、ＩＰアドレス等の情報はＣＡＭを用いたテーブルに登録される。
【０００３】
また、特許文献３には、再ハッシュの発生確率を低減するため、ＭＡＣアドレステーブルを複数のバンクに分割し、ＭＡＣアドレスのハッシュ値をアドレスとして各バンクの各エントリを同時にアクセスする方法が示されている。各エントリ内には、アクセス履歴を示すアドレスビット（１ビット）とエントリの有効／無効を示すバリッドビット（１ビット）が含まれている。あるハッシュ値に対応する各エントリのバリッドビットが全て有効の場合、空きのエントリが無いため、ハッシュ関数を変更して登録をやり直すための再ハッシュが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００９／１１０４４５号
【特許文献２】特開２０１１−２２９０９３号公報
【特許文献３】特開２００２−３３４１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、通信規格上のレイヤ２（Ｌ２）レベルの処理を行うスイッチ装置（ネットワーク中継装置）は、ポートと各ポートの先に存在する端末等のＭＡＣ（Media Access Control）アドレスとの関係等を表すアドレステーブルを備えている。当該アドレステーブルは、ＦＤＢ（Forwarding DataBase）等とも呼ばれる。スイッチ装置は、ポートでフレームを受信した際に、当該フレーム内に含まれる宛先アドレスに対応するポートを当該アドレステーブルに基づいて定め、受信したフレームを当該定めたポートに中継する。
【０００６】
このようなスイッチ装置では、スイッチ装置に接続される端末等の数が増大すると、これに応じて大規模なアドレステーブルが必要となり、記憶装置によって構成されるアドレステーブルのコストが増大すると共に、アドレステーブルの検索時間も長くなる。そこで、特許文献１〜特許文献３に示されるように、アドレステーブルをハッシュ値で管理する方式が有益となる。ただし、当該方式を用いた場合、異なるＭＡＣアドレスに対して同一のハッシュ値が算出されるという所謂ハッシュ値の衝突が生じる場合がある。
【０００７】
スイッチ装置の中継動作をより効率化するためには、このハッシュ値の衝突の状況を把握することが有益となる。具体的には、アドレステーブル内の全エントリに対してどのくらいの割合でハッシュ値の衝突が生じているか、あるいは、ハッシュ値の衝突がどのエントリで発生しているかといった情報を把握することが有益となる。特許文献１〜特許文献３のような技術を用いた場合、このような情報を把握することは容易でない。
【０００８】
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、ハッシュ値の衝突の状況を容易に把握することが可能なネットワーク中継装置を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１０】
本実施の形態によるネットワーク中継装置は、複数のポートと、複数のエントリを持つアドレステーブルと、アドレステーブルに基づいて複数のポート間でフレームを中継するフレーム処理部とを備える。ここで、複数のエントリのそれぞれは、複数のポートと、当該複数のポートの先に存在するＭＡＣアドレスとの関係を示す第１情報が登録される第１領域と、第２情報が登録される第２領域とを備える。また、フレーム処理部は、複数のポートの中のいずれかのポートで受信したフレームの送信元ＭＡＣアドレスを学習する際に、まず、当該送信元ＭＡＣアドレスを用いてハッシュ値を算出する。そして、フレーム処理部は、当該ハッシュ値に対応するエントリの第１領域に送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録済みの場合に第２領域に第２情報を登録する。
【発明の効果】
【００１１】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、ネットワーク中継装置において、ハッシュ値の衝突の状況を容易に把握することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】（ａ）は、本発明の実施の形態１によるネットワーク中継装置において、それを適用した通信システムの構成例を示す概略図であり、（ｂ）は、（ａ）におけるネットワーク中継装置の概略構成例を示すブロック図である。
【図２】図１（ｂ）のネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。
【図３】図１（ｂ）のネットワーク中継装置において、そのフレーム処理部の主要部の動作例を示すフロー図である。
【図４】図１（ｂ）のネットワーク中継装置において、その管理部の動作例を示すフロー図である。
【図５】図１（ｂ）のネットワーク中継装置において、その管理部の他の動作例を示すフロー図である。
【図６】本発明の実施の形態２によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。
【図７】本発明の実施の形態２によるネットワーク中継装置において、そのフレーム処理部の主要部の動作例を示すフロー図である。
【図８】本発明の実施の形態３によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。
【図９】本発明の実施の形態４によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。
【図１０】（ａ）は、本発明の前提として検討したネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図であり、（ｂ）は、（ａ）のアドレステーブルの管理方式の一例を示す概念図である。
【発明を実施するための形態】
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１４】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
（実施の形態１）
《通信システムおよびネットワーク中継装置の概略》
図１（ａ）は、本発明の実施の形態１によるネットワーク中継装置において、それを適用した通信システムの構成例を示す概略図であり、図１（ｂ）は、図１（ａ）におけるネットワーク中継装置の概略構成例を示すブロック図である。図１（ａ）に示す通信システムは、複数のポートＰ１，Ｐ２，Ｐ３，…，Ｐｎを持つスイッチ装置（ネットワーク中継装置）ＳＷと、当該Ｐ１，Ｐ２，Ｐ３にそれぞれ通信回線を介して接続される複数のユーザ用スイッチ装置ＳＷＵ１，ＳＷＵ２，ＳＷＵ３とを備えている。ＳＷＵ１，ＳＷＵ２，ＳＷＵ３には、それぞれ、通信回線を介して端末ＴＭａ，ＴＭｂ，ＴＭｃが接続される。
【００１７】
特に限定はされないが、例えば、スイッチ装置ＳＷは、シャーシ型の構成であり、ユーザ用スイッチ装置ＳＷＵ１，ＳＷＵ２，ＳＷＵ３は、ボックス型の構成である。ＳＷＵ１，ＳＷＵ２，ＳＷＵ３のそれぞれは、自身に接続された端末間でフレームを中継し、ＳＷは、ユーザ用スイッチ装置間でフレームを中継する。例えば、端末ＴＭａから端末ＴＭｃに向けてフレームを転送する際には、当該フレームは、ＴＭａ→ＳＷＵ１→ＳＷ→ＳＷＵ３→ＴＭｃの経路で転送される。また、ＳＷは、例えば、複数のポートＰ１，Ｐ２，Ｐ３，…，ＰｎにＶＬＡＮ（Virtual Local Area Network）等を設定することが可能である。
【００１８】
スイッチ装置（ネットワーク中継装置）ＳＷは、図１（ｂ）に示すように、複数のポートＰ１，Ｐ２，Ｐ３，…，Ｐｎと、フレーム処理部ＦＬＣＴＬと、テーブルユニットＴＢＬＵと、管理部ＳＶを備える。ＴＢＬＵは、記憶装置で構成され、詳細は後述するが、ハッシュ値で管理されるアドレステーブルＦＤＢを備える。ＦＬＣＴＬは、ＦＤＢに基づいて複数のポート間でフレームを中継する。管理部ＳＶは、特に限定はされないが、ＦＰＧＡ（Field Programmable Gate Array）等のハードウェアや、あるいはＣＰＵ（Central Processing Unit）等によるプログラム処理によって構築され、詳細は後述するが、例えば、ユーザからの要求に応じてＦＤＢ内の情報を解析する機能を持つ。
【００１９】
なお、図１（ｂ）では、スイッチ装置ＳＷの全体構成が示されているが、例えばＳＷがシャーシ型の場合、一つの筐体内に搭載され、それぞれバックプレーンで接続された複数のラインカードが図１（ｂ）のような構成を備えることになる。ただし、管理部ＳＶは、各ラインカード上ではなく、当該複数のラインカードとバックプレーンで接続された管理カード上に設けてもよい。また、ユーザ用スイッチ装置ＳＷＵ１，ＳＷＵ２，ＳＷＵ３も、図１（ｂ）と同様の構成を備える。ただし、ユーザ用スイッチ装置は、通常、ＶＬＡＮ等の設定に伴い、多くの端末を認識する必要がないため、アドレステーブルは、必ずしもハッシュ値で管理される必要はない。さらに、ここでは、ＳＷのポートにユーザ用スイッチ装置が接続される構成例を示したが、勿論、ポートに端末が直接接続されるような構成であってもよい。
【００２０】
《アドレステーブル（比較例）の構成およびその管理方式》
図１０（ａ）は、本発明の前提として検討したネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図であり、図１０（ｂ）は、図１０（ａ）のアドレステーブルの管理方式の一例を示す概念図である。図１０（ａ）に示すアドレステーブルＦＤＢ’は、ハッシュ値に対応する複数（この例では１０２４個）のエントリを備え、各エントリにＭＡＣアドレスとポートが登録された構成となっている。例えば、４５６のハッシュ値に対応するエントリには、ポートＰ１と、当該Ｐ１の先にＭＡＣアドレスＡＡの端末が存在するという情報が登録されている。
【００２１】
ハッシュ値とは、図１０（ｂ）に示されるように、「Ｋｅｙ」と呼ばれる情報を入力としてハッシュ関数による演算を行うことで得られた値であり、ハッシュ関数としては、「Ｋｅｙ」の情報量を削減するような関数が用いられる。特に限定はされないが、ハッシュ関数は、例えば、６０ビットの「Ｋｅｙ」の空間を１０ビットの空間（すなわち１０進数で０〜１０２３）に変換する。ここで、「Ｋｅｙ」は、例えば、図１０（ａ）におけるＭＡＣアドレス（４８ビット）と、図示は省略するが当該ＭＡＣアドレスが属するＶＬＡＮの識別子（１２ビット）とからなるビット列に設定される。図１０（ａ）の例では、例えば、ＭＡＣアドレスＡＡ（加えてそのＶＬＡＮの識別子）を「Ｋｅｙ」（すなわち入力）としてハッシュ関数による演算を行うことで４５６のハッシュ値が得られている。
【００２２】
このようなハッシュ関数を用いることで、情報量の削減に伴いアドレステーブルに必要な記憶容量を削減できるが、その副作用として、図１０（ｂ）に示されるように、異なる「Ｋｅｙ」から同一のハッシュ値が得られるような場合がある。このような事態は、ハッシュ値の衝突等と呼ばれる。例えば、図１０（ａ）の例では、前提として、１２３のハッシュ値に対応するエントリに、既にＭＡＣアドレスＢＢとポートＰ２が登録されている。この状態で、スイッチ装置は、ポートＰ４でＭＡＣアドレスＤＤを送信元アドレスとするフレームを受信し、当該ＤＤ（加えてそのＶＬＡＮの識別子）によるハッシュ値が同じく１２３であった場合が示されている。この場合、図１０（ａ）の例では、この新しい方の情報を１２３のハッシュ値に対応するエントリに上書き登録する。
【００２３】
ハッシュ関数は、通常、ハッシュ値の衝突が生じ難い関数が用いられるが、例えば、図１に示したような多数の端末を認識する必要があるスイッチ装置ＳＷでは、ハッシュ値の衝突がある程度の確率で生じる場合がある。スイッチ装置の中継動作をより効率化するためには、このハッシュ値の衝突の状況を把握することが有益となるが、図１０（ａ）のアドレステーブルＦＤＢ’では、この衝突の状況を把握することが困難となる。
【００２４】
《アドレステーブル（本実施の形態）の構成》
図２は、図１（ｂ）のネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。図２に示すアドレステーブルＦＤＢ１は、ハッシュ値に対応する複数（この例では１０２４個）のエントリを備える。ハッシュ値は、ＦＤＢ１を構成する記憶装置のメモリアドレスであってもよい。各エントリは、複数のポートＰ１，Ｐ２，Ｐ３，…，Ｐｎと、当該複数のポートの先に存在するＭＡＣアドレスとの関係を示す第１情報が登録される第１領域ＡＲ１と、自身のエントリにハッシュ値の衝突が生じた場合に第２情報が登録される第２領域ＡＲ２とを備える。第２情報は、自身のエントリにおけるハッシュ値の衝突履歴を表すことになる。このように、図２のＦＤＢ１は、図１０（ａ）に示したアドレステーブルＦＤＢ’と比較してＡＲ２が追加された構成となっている。
【００２５】
例えば、図２のアドレステーブルＦＤＢ１の例では、第２領域ＡＲ２の第２情報は、１ビットの「１」となっている。すなわち、ＡＲ２には、対応するエントリにハッシュ値の衝突が生じていない場合には「０」が、ハッシュ値の衝突が生じた場合には「１」（第２情報）が登録される。例えば、図１０（ａ）の場合と同様に、既にＭＡＣアドレスＢＢとポートＰ２が登録されているハッシュ値＝１２３に対応するエントリに、ＭＡＣアドレスＤＤの学習に伴ってハッシュ値の衝突が生じた場合、ＡＲ２に「１」が登録される。
【００２６】
また、この例では、ハッシュ値＝１２３に対応するエントリの第１領域ＡＲ１に、新しいＭＡＣアドレスＤＤと、それに対応するポートＰ４とが上書き登録されている。ただし、この学習の際に、例えばＡＲ１内の第１情報に優性度の属性が有るような場合に、上書き登録が行われないことも有り得る。すなわち、既に登録されている第１情報の方が新しい第１情報よりも優先度が高いような場合には、ＡＲ１における上書き登録は行われずに、第２領域ＡＲ２に「１」が登録されることもある。
【００２７】
このようなアドレステーブルＦＤＢ１を用いることで、ハッシュ値の衝突の状況を容易に把握することが可能になる。具体的には、例えば、第２領域ＡＲ２に第２情報「１」が登録されているエントリを抽出することで、ハッシュ値の衝突がどのエントリで発生しているかを把握することができる。また、ＦＤＢ１内の全エントリ（ハッシュ値＝０〜１０２３）の中からＡＲ２に第２情報「１」が登録されているエントリの割合を算出することで、全エントリに対して、どのくらいの割合でハッシュ値の衝突が生じているかを把握することができる。
【００２８】
《フレーム処理部の主要部の動作》
図３は、図１（ｂ）のネットワーク中継装置において、そのフレーム処理部の主要部の動作例を示すフロー図である。図３には、フレーム処理部ＦＬＣＴＬにおける送信元ＭＡＣアドレスの学習時の動作例が示されている。ＦＬＣＴＬは、まず、複数のポートＰ１，Ｐ２，Ｐ３，…，Ｐｎの中のいずれかのポートでフレームを受信する（ステップＳ１０１）。次いで、ＦＬＣＴＬは、当該フレームに含まれる送信元ＭＡＣアドレスを学習するため、送信元ＭＡＣアドレスを用いてハッシュ値を算出する（ステップＳ１０２）。なお、実際には、このハッシュ値の算出の際に、送信元ＭＡＣアドレスに加えて、例えば当該ＭＡＣアドレスに対応するＶＬＡＮの識別子も用いる。
【００２９】
続いて、フレーム処理部ＦＬＣＴＬは、図２のようなアドレステーブルＦＤＢ１に対して、ステップＳ１０２で得られるハッシュ値に対応するエントリを読む（ステップＳ１０３）。その結果、エントリが空（すなわち第１領域ＡＲ１に第１情報が未登録）の場合、ＦＬＣＴＬは、当該エントリのＡＲ１に、ステップＳ１０１およびＳ１０２で得られる第１情報を新規に登録する（ステップＳ１０４）。すなわち、第１情報として、ステップＳ１０１でフレームを受信したポートと、当該フレームに含まれる送信元ＭＡＣアドレス（言い換えれば、当該ポートの先に存在するＭＡＣアドレス）との関係を登録する。また、このステップＳ１０４の際に、ＦＬＣＴＬは、当該エントリの第２領域ＡＲ２に「０」を登録する。
【００３０】
一方、ステップＳ１０３において、エントリが空でない（すなわち第１領域ＡＲ１に第１情報が登録済み）場合、フレーム処理部ＦＬＣＴＬは、ステップＳ１０２における送信元ＭＡＣアドレスと、当該エントリに登録済みのＭＡＣアドレス（Ｋｅｙ）とを比較する（ステップＳ１０５）。ここで、当該送信元ＭＡＣアドレスと登録済みのＭＡＣアドレスとが一致する場合、当該送信元ＭＡＣアドレスは既に学習済みであるため、ＦＬＣＴＬは、特に何も行わず、アドレステーブルＦＤＢ１の第２領域ＡＲ２は「０」に保たれる（ステップＳ１０６）。
【００３１】
一方、ステップＳ１０５で送信元ＭＡＣアドレスと登録済みのＭＡＣアドレスとが不一致の場合、フレーム処理部ＦＬＣＴＬは、所定の衝突処理を行う（ステップＳ１０７）。具体的には、ＦＬＣＴＬは、当該エントリの第１領域ＡＲ１に、ステップＳ１０１およびＳ１０２で得られる第１情報を上書き登録するか、場合によっては図２で述べたように既に登録されている第１情報を残すこともある。第１情報を上書き登録する場合には、第１情報として、ステップＳ１０１でフレームを受信したポートと、当該フレームに含まれる送信元ＭＡＣアドレス（言い換えれば、当該ポートの先に存在するＭＡＣアドレス）との関係が登録される。さらに、このステップＳ１０７の際に、ＦＬＣＴＬは、当該エントリの第２領域ＡＲ２に、ハッシュ値の衝突履歴を表す第２情報「１」を登録する。
【００３２】
このように、フレーム処理部ＦＬＣＴＬは、送信元ＭＡＣアドレスを用いてハッシュ値を算出し、それに対応するエントリの第１領域ＡＲ１に当該送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録済みの場合には、第２領域ＡＲ２に第２情報「１」を登録する。なお、図示は省略するが、ＦＬＣＴＬは、受信したフレームの宛先ＭＡＣアドレスを検索する際にも、同様にして、当該宛先ＭＡＣアドレス等からハッシュ値を算出し、当該ハッシュ値に対応するエントリを読み出す。そして、ＦＬＣＴＬは、当該エントリに登録済みのＭＡＣアドレスと宛先ＭＡＣアドレスとが一致する場合には、フレームを当該エントリ内に登録されているポートに中継し、不一致の場合には、フラッディングを行う。
【００３３】
《管理部の動作》
図４は、図１（ｂ）のネットワーク中継装置において、その管理部の動作例を示すフロー図である。図５は、図１（ｂ）のネットワーク中継装置において、その管理部の他の動作例を示すフロー図である。図４および図５に示す管理部ＳＶの処理は、例えば、ユーザからの要求に応じて実行される。特に限定はされないが、具体的には、図１（ｂ）のスイッチ装置ＳＷは、例えば、管理用の専用ポートを別途備えており、当該専用ポートに管理用の端末を接続した状態で、ユーザは管理用の端末を用いてＳＷに対して要求を行い、ＳＷはこれに対して応答する。また、別の方式として、ＳＷは、例えば、所謂インバンドの管理機能を備えており、複数のポートＰ１〜Ｐｎの中のいずれかのポートの先に管理用の端末を接続した状態で、ユーザは管理用の端末を用いてＳＷに対して要求を行い、ＳＷはこれに対して応答する。
【００３４】
このようなユーザからの要求に応じて、図４に示すように、管理部ＳＶは、まず、アドレステーブルＦＤＢ１における最初のエントリ（例えば０）を対象とする（ステップＳ２０１）。次いで、ＳＶは、対象のエントリの第２領域ＡＲ２を読み（ステップＳ２０２）、ＡＲ２に、ハッシュ値の衝突履歴を表す第２情報「１」が登録されているか否かを判別する（ステップＳ２０３）。ＡＲ２に第２情報「１」が登録されている場合、ＳＶは、当該対象のエントリをユーザに通知し（ステップＳ２０４）、ステップＳ２０５に移行する。一方、ＡＲ２に第２情報「１」が登録されていない場合には、そのままステップＳ２０５に移行する。
【００３５】
ステップＳ２０５において、管理部ＳＶは、最終のエントリ（例えば１０２３）に到達したか否かを判別する。到達していない場合、ＳＶは、次ぎのエントリ（例えば対象のエントリをインクリメント（＋１）したエントリ）を対象としてステップＳ２０２に戻る（ステップＳ２０６）。一方、最終のエントリに到達した場合、ＳＶは、全エントリ（例えば０〜１０２３）の中から、第２領域ＡＲ２に第２情報「１」が登録されているエントリの割合を算出し、当該算出した割合をユーザに通知する（ステップＳ２０７）。
【００３６】
また、図５において、管理部ＳＶは、まず、アドレステーブルＦＤＢ１における最初のエントリ（例えば０）を対象とする（ステップＳ３０１）。次いで、ＳＶは、対象のエントリの第２領域ＡＲ２に「０」を登録することで、ハッシュ値の衝突履歴を表す第２情報「１」が登録されている場合にはそれを消去する（ステップＳ３０２）。その後、管理部ＳＶは、最終のエントリ（例えば１０２３）に到達したか否かを判別し（ステップＳ３０３）、到達していない場合、次ぎのエントリ（例えば対象のエントリをインクリメント（＋１）したエントリ）を対象としてステップＳ３０２に戻る（ステップＳ３０４）。例えば、このような処理により、全エントリにおいてハッシュ値の衝突履歴が消去される。
【００３７】
図４のような処理を行うことで、ユーザは、アドレステーブル内の全エントリに対してどのくらいの割合でハッシュ値の衝突が生じているか、あるいは、ハッシュ値の衝突がどのエントリで発生しているかといった情報を容易に把握することが可能になる。この際には、図５のような処理を用いて、適宜、ハッシュ値の衝突履歴を消去しながら図４のような処理を実行することで、時系列的なハッシュ値の衝突の傾向を把握することも可能である。
【００３８】
このようにハッシュ値の衝突の状況が容易に把握できると、ユーザ等は、その状況を反映して、有益なネットワーク管理を行うことが可能になる。例えば、ユーザは、ハッシュ値の衝突の割合が高い場合には、一部の端末を他のネットワークに移動させるようなメンテナンスを行うことができる。あるいは、ユーザは、ハッシュ値の衝突が発生しているエントリに対応する端末を特定して、当該端末の通信帯域を制限したり、または、当該端末をネットワーク間で適宜入れ替えたり等のメンテナンスを行うことが可能になる。これによって、スイッチ装置（ネットワーク中継装置）の中継動作をより効率化することが可能になる。
【００３９】
以上、本実施の形態１のネットワーク中継装置を用いることで、代表的には、ハッシュ値の衝突の状況を容易に把握することが可能となり、ネットワーク中継装置の中継動作をより効率化することが可能になる。なお、図２のアドレステーブルＦＤＢ１を用いる方式の比較例として、例えば、図３のステップＳ１０７への移行を時系列的に監視し、それをログとして、別途、管理用のメモリ等に残すような方式が考えられる。このような方式を用いると、ハッシュ値の衝突の発生回数（発生頻度）を認識できる程度のログを残すことは比較的容易である。ただし、エントリ内の衝突の割合や、衝突が生じたエントリを知りたい場合には、衝突が生じたエントリ自体をログに残す必要がある。この場合、アドレステーブルの登録の処理に遅延が生じたり、あるいは、ログを蓄えるため管理用のメモリ等に比較的大きな記憶領域が必要になったり等の不都合が生じ得る。したがって、このような方式と比較しても、図２のＦＤＢ１を用いる方式は有益な効果が得られる。
【００４０】
（実施の形態２）
《アドレステーブルの構成（変形例［１］）》
図６は、本発明の実施の形態２によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。実施の形態２のネットワーク中継装置は、図１（ｂ）に示したような構成を備え、そのアドレステーブルＦＤＢ２の構成が図２と異なっている。図６に示すＦＤＢ２は、図２のアドレステーブルＦＤＢ１と比較して、各エントリの第２領域ＡＲ２の構成が異なっている。これ以外の構成に関しては、図２と同様であるため詳細な説明は省略する。
【００４１】
図６において、各エントリの第２領域ＡＲ２には、ハッシュ値の衝突履歴を表す第２情報として、自身のエントリにおけるハッシュ値の衝突回数を表す複数ビットの情報が登録される。例えば、図６の例では、１２３のハッシュ値に対応するエントリに対して、ハッシュ値の衝突が２回生じており、これに伴いＡＲ２にはバイナリで“１０”となる第２情報が登録されている。なお、ここでは、便宜上、ハッシュ値の衝突に伴い、常に、ＭＡＣアドレスおよびポートの上書き登録が行われる場合を例としている。これにより、図２の場合と比較して、アドレステーブルの記憶容量は増大するものの、ハッシュ値の衝突の状況をより詳細に把握することが可能になる。なお、場合によっては、図２のＡＲ２と図６のＡＲ２とを組み合わせたような構成とすることも可能である。
【００４２】
《フレーム処理部の主要部の動作（変形例［１］）》
図７は、本発明の実施の形態２によるネットワーク中継装置において、そのフレーム処理部の主要部の動作例を示すフロー図である。図７において、フレーム処理部ＦＬＣＴＬは、前述した図３のステップＳ１０１〜Ｓ１０６の処理と同一の処理内容となるステップＳ４０１〜Ｓ４０６の処理を実行する。ただし、ＦＬＣＴＬは、ステップＳ４０５において、送信元ＭＡＣアドレスとエントリに登録済みのＭＡＣアドレス（Ｋｅｙ）とが異なる場合、ステップＳ４０７において、図３のステップＳ１０７とは異なる処理を実行する。
【００４３】
フレーム処理部ＦＬＣＴＬは、ステップＳ４０７において、図３のステップＳ１０７の場合と同様に、所定の衝突処理を行うと共に、ステップＳ１０７の場合と異なり、第２領域ＡＲ２に、第２情報としてハッシュ値の衝突回数を登録する。具体的には、ＦＬＣＴＬは、ステップＳ４０３で読み出したＡＲ２の値をインクリメント（＋１）し、その結果をＡＲ２に登録する。
【００４４】
（実施の形態３）
《アドレステーブルの構成（変形例［２］）》
図８は、本発明の実施の形態３によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。実施の形態３のネットワーク中継装置は、図１（ｂ）に示したような構成を備え、そのアドレステーブルＦＤＢ３の構成が図２と異なっている。図８に示すＦＤＢ３は、図２のアドレステーブルＦＤＢ１と比較して、各エントリが複数の第１領域ＡＲ１［１］〜ＡＲ１［ｋ］を備える点が異なっている。そして、第２領域ＡＲ２は、この複数の第１領域に対して共通に設けられる。これ以外の構成に関しては、図２と同様であるため詳細な説明は省略する。
【００４５】
複数の第１領域ＡＲ１［１］〜ＡＲ１［ｋ］のそれぞれには、図２等で述べたように、複数のポートと、当該複数のポートの先に存在するＭＡＣアドレスとの関係を示す第１情報が登録される。すなわち、各エントリには、それぞれ異なる複数（ここではｋ（ｋは２以上の整数）個）の第１情報が登録可能となっている。これにより、ハッシュ値の衝突回数が（ｋ−１）回までの範囲であるならば、実質的には、ハッシュ値の衝突が生じていないものとみなすことができる。
【００４６】
《フレーム処理部の主要部の動作（変形例［２］）》
また、フレーム処理部ＦＬＣＴＬは、図８のアドレステーブルＦＤＢ３に基づいて、図３と同様の処理を行う。ただし、図３のステップＳ１０３において、ＦＬＣＴＬは、ハッシュ値に対応するエントリが持つ複数の第１領域ＡＲ１［１］〜ＡＲ１［ｋ］を読み、その全てに第１情報が登録されている場合に、ステップＳ１０５に移行する。ステップＳ１０５において、ＦＬＣＴＬは、当該複数の第１領域の全てに、送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録されている場合には、ステップＳ１０７に移行する。そして、ステップＳ１０７において、ＦＬＣＴＬは、所定の衝突処理を行い、さらに、第２領域ＡＲ２に、ハッシュ値の衝突履歴を表す第２情報を登録する。
【００４７】
これにより、各エントリに対して実質的にハッシュ値の衝突が生じる確率を低減できると共に、実施の形態１の場合と同様に、ハッシュ値の衝突が生じた場合には、その状況を容易に把握することができるため、スイッチ装置の中継動作をより効率化することが可能になる。なお、ここでは、第２領域ＡＲ２の第２情報を１ビットとしたが、勿論、図６のように、複数ビットとすることも可能である。
【００４８】
（実施の形態４）
《アドレステーブルの構成（変形例［３］）》
図９は、本発明の実施の形態４によるネットワーク中継装置において、そのアドレステーブルの構成例を示す概略図である。実施の形態４のネットワーク中継装置は、図１（ｂ）に示したような構成を備え、そのアドレステーブルＦＤＢ４の構成が図８と異なっている。図９に示すＦＤＢ４は、図８のアドレステーブルＦＤＢ３と比較して、各エントリが複数の第１領域ＡＲ１［１］〜ＡＲ１［ｋ］に対応してそれぞれ第２領域ＡＲ２［１］〜ＡＲ２［ｋ］を備える点と、第２領域は、対応する第１領域に第１情報の上書き登録が行われた場合に第２情報が登録される点とが異なっている。これ以外の構成に関しては、図８と同様であるため詳細な説明は省略する。
【００４９】
《フレーム処理部の主要部の動作（変形例［３］）》
また、フレーム処理部ＦＬＣＴＬは、図９のアドレステーブルＦＤＢ４に基づいて、図３と同様の処理を行う。ただし、図３のステップＳ１０３において、ＦＬＣＴＬは、ハッシュ値に対応するエントリが持つ複数の第１領域ＡＲ１［１］〜ＡＲ１［ｋ］を読み、その全てに第１情報が登録されている場合に、ステップＳ１０５に移行する。ステップＳ１０５において、ＦＬＣＴＬは、当該複数の第１領域の全てに、送信元ＭＡＣアドレスとは異なるＭＡＣアドレスが登録されている場合には、ステップＳ１０７に移行する。そして、ステップＳ１０７において、ＦＬＣＴＬは、所定の衝突処理を行い、その結果、当該エントリ内の所定の第１領域に第１情報を上書き登録する場合には、当該第１領域に対応する第２領域に、上書き登録の実効履歴を表す第２情報を登録する。
【００５０】
これにより、実施の形態３で述べた各種効果に加えて、さらに、各エントリが持つ複数の第１領域の中でどの第１領域に上書き登録が生じ、どの第１領域に上書き登録が生じていないかを判別することができる。一例として、複数の第１領域に第１情報を登録する際に、最も古く受信した第１情報を持つ第１領域に対して上書き登録を行うような仕組みがあった場合、複数の第１領域の中で実際に上書き登録が行われる第１領域に偏りが生じるような場合がある。このような場合に、例えば、この偏りの状況から受信する頻度が高い第１情報を判別するようなことが可能になる。
【００５１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００５２】
例えば、実施の形態１〜３では、ハッシュ値の衝突が生じた場合に、第２領域に第２情報を登録する構成としたが、実施の形態４のように、ハッシュ値の衝突が生じ、かつ第１領域に第１情報の上書き登録が生じた場合に、第２領域に第２情報を登録するように構成することも可能である。
【符号の説明】
【００５３】
ＡＲ１  第１領域
ＡＲ２  第２領域
ＦＤＢ，ＦＤＢ’  アドレステーブル
ＦＬＣＴＬ  フレーム処理部
Ｐ  ポート
ＳＶ  管理部
ＳＷ  スイッチ装置（ネットワーク中継装置）
ＳＷＵ  ユーザ用スイッチ装置
ＴＢＬＵ  テーブルユニット
ＴＭ  端末
【図１】
2014195140.tif 000003
【図２】
2014195140.tif 000004
【図３】
2014195140.tif 000005
【図４】
2014195140.tif 000006
【図５】
2014195140.tif 000007
【図６】
2014195140.tif 000008
【図７】
2014195140.tif 000009
【図８】
2014195140.tif 000010
【図９】
2014195140.tif 000011
【図１０】
2014195140.tif 000012