(57)【要約】      （修正有）【課題】グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行う通信装置を提供する。【解決手段】通信装置１０は、ポート識別子と、接続された端末のアドレスと、グループ識別子との対応関係を記憶するＭＡＣ学習テーブル１２と、ＭＡＣ学習テーブル１２に現に記憶される対応関係の数を示す学習数と、最小学習数と、最大学習数と、優先度とをグループ識別子に対応付けて記憶する学習管理テーブル１３を有する。通信装置はフレーム受信時に、受信グループ識別子と他のグループ識別子の学習数の総数が最大学習数に達したか否かを判定し、最大学習数に達した場合、受信グループ識別子よりも優先度が低く、かつ学習数が最小学習数を満たす他のグループ識別子を学習管理テーブルから特定し、特定した他のグループ識別子を含む対応関係に替えて、フレームを受信した対応関係をＭＡＣ学習テーブルに格納する。【選択図】図３
2014216793.tif 000002
【特許請求の範囲】
【請求項１】
ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第１記憶部と、
前記第１記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第２記憶部と、
フレームが受信された場合に、該フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けて前記第２記憶部に記憶される前記学習数の総数が前記最大学習数の総数に達したか否かを判定する判定部と、
前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第１記憶部に格納する制御部と
を備えたことを特徴とする通信装置。
【請求項２】
前記制御部は、前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子に対応付けて前記第２記憶部に記憶される前記学習数が前記最小学習数を満たすか否かを判定し、満たすと判定されたならば、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第１記憶部に格納することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記制御部は、前記受信グループ識別子に対応付けて前記第２記憶部に記憶される前記学習数が前記最小学習数を満たさないと判定されたならば、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定し、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第１記憶部に格納することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記制御部は、前記受信グループ識別子よりも前記優先度が低い前記他のグループ識別子が前記第２記憶部から特定されない場合、又は、前記学習数が前記最小学習数を満たす前記他のグループ識別子が前記第２記憶部から特定されない場合には、前記第１記憶部への格納処理を行うことなく、前記フレームを破棄又はフラッディングすることを特徴とする請求項２又は３に記載の通信装置。
【請求項５】
前記制御部は、前記学習数の総数が前記最大学習数の総数に達していない場合に、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子とを対応付けて前記第１記憶部の空き領域に格納することを特徴とする請求項１〜４のいずれか一つに記載の通信装置。
【請求項６】
前記第１記憶部は、前記対応関係が前記第１記憶部に格納されてからの経過時間をさらに記憶し、
前記第２記憶部は、前記グループ識別子に対応付けて、前記対応関係の保持期限をさらに記憶し、
前記制御部は、さらに、前記第１記憶部に格納された前記対応関係に係る前記経過時間が、当該対応関係に含まれる前記グループ識別子に対応付けて前記第２記憶部に記憶される前記保持期限に達した場合に、当該対応関係を前記第１記憶部から削除するとともに、当該対応関係に含まれる前記グループ識別子に対応付けて前記第２記憶部に記憶される前記学習数が前記最小学習数を満たすか否かを判定し、満たさないと判定されたならば、当該保持期限を延長することを特徴とする請求項１〜５のいずれか一つに記載の通信装置。
【請求項７】
前記制御部は、削除された前記対応関係に含まれる前記グループ識別子に対応付けて前記第２記憶部に記憶される前記学習数が前記最小学習数を満たすと判定されたならば、当該学習数が前記最大学習数を超えたか否かを判定し、超えたと判定されたならば、前記保持期限を短縮することを特徴とする請求項６に記載の通信装置。
【請求項８】
コンピュータによって実行されるアドレス学習方法であって、
フレームが受信された場合に、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第１記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第２記憶部を参照して、前記フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けられる前記学習数の総数が前記最大学習数の総数に達したか否かを判定し、
前記学習数の総数が前記最大学習数の総数に達したと判定された場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定し、
特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第１記憶部に格納する
ことを特徴とするアドレス学習方法。
【請求項９】
コンピュータに、
フレームが受信された場合に、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する第１記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する第２記憶部を参照して、前記フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けられる前記学習数の総数が前記最大学習数の総数に達したか否かを判定し、
前記学習数の総数が前記最大学習数の総数に達したと判定された場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定し、
特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第１記憶部に格納する
処理を実行させることを特徴とするアドレス学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、アドレス学習方法及びアドレス学習プログラムに関する。
【背景技術】
【０００２】
従来、イーサネット（登録商標）等のフレーム通信ネットワークでは、フレームを中継する通信装置であるスイッチが用いられる。スイッチは、フレーム転送を行うためにＭＡＣ（Media  Access  Control）学習機能を採用する。
【０００３】
すなわち、ＭＡＣ学習機能を採用するスイッチは、フレームが受信された場合に、フレームを受信したポートと、フレームの送信元となる端末のＭＡＣアドレスとの対応関係をＭＡＣ学習テーブルと呼ばれるテーブルに格納する。そして、スイッチは、ＭＡＣ学習テーブルに格納されたＭＡＣアドレスを宛先とするフレームを他のポートから受信した場合に、ＭＡＣ学習テーブルに学習済みであるポートから受信フレームを転送する。
【０００４】
また、近年では、ポートを介してスイッチに接続された端末を仮想的にグループ化したＶＬＡＮ（Virtual  Local  Area  Network）と呼ばれるグループ単位で端末のＭＡＣアドレスを学習する学習方式が提案されている。この学習方式では、スイッチは、ポートと、ＭＡＣアドレスと、ＭＡＣアドレスを有する端末の属するＶＬＡＮの識別子との対応関係をＭＡＣ学習テーブルに保持し、さらに、ＭＡＣ学習テーブルの学習数と、最大学習数とをＶＬＡＮの識別子に対応付けて保持する。そして、スイッチは、フレームが受信されると、フレームに含まれるＶＬＡＮの識別子に対応付けられた学習数と最大学習数とを比較し、学習数が最大学習数に達している場合には、フレームの送信元のＭＡＣアドレスの学習を行わない。これにより、ＭＡＣ学習テーブルに学習されるＭＡＣアドレスの公平性をＶＬＡＮ間で維持している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１９４１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことについては考慮されていない。
【０００７】
すなわち、従来技術では、ＶＬＡＮからのフレームが受信された場合でも、ＭＡＣ学習テーブルの学習数がＶＬＡＮの識別子に対応付けられた最大学習数に達している場合には、フレームの送信元のＭＡＣアドレスの学習を行わない。このため、従来技術では、相対的に優先度の高いＶＬＡＮの識別子と相対的に優先度の低いＶＬＡＮの識別子とに対応付けられた学習数の総数が最大学習数の総数に達している場合には、フレームの送信元のＭＡＣアドレスの学習を行わない。その結果、従来技術では、相対的に優先度の高いＶＬＡＮからのフレームが破棄又はフラッディングされる恐れがある。
【０００８】
この点、相対的に優先度の高いＶＬＡＮからのフレームの送信元のＭＡＣアドレスの学習を行うために、相対的に優先度の低いＶＬＡＮの識別子に対応するＭＡＣアドレスをＭＡＣ学習テーブルから削除する手法が考えられる。しかしながら、この手法では、ＶＬＡＮ単位の最低限の学習数を保障することが困難となる恐れがある。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる通信装置、アドレス学習方法及びアドレス学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する通信装置は、一つに態様において、第１記憶部と、第２記憶部と、判定部と、制御部とを備えた。第１記憶部は、ポートを識別するポート識別子と、該ポートを介して接続された端末のアドレスと、該端末の属するグループを識別するグループ識別子との対応関係を記憶する。第２記憶部は、前記第１記憶部に現に記憶される前記対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とを前記グループ識別子に対応付けて記憶する。判定部は、フレームが受信された場合に、該フレームに含まれる前記グループ識別子である受信グループ識別子と他のグループ識別子とに対応付けて前記第２記憶部に記憶される前記学習数の総数が前記最大学習数の総数に達したか否かを判定する。制御部は、前記学習数の総数が前記最大学習数の総数に達した場合に、前記受信グループ識別子よりも前記優先度が低く、かつ、前記学習数が前記最小学習数を満たす前記他のグループ識別子を前記第２記憶部から特定する。制御部は、特定した前記他のグループ識別子を含む前記対応関係に替えて、前記フレームを受信したポートのポート識別子と、前記フレームの送信元のアドレスと、前記受信グループ識別子との対応関係を前記第１記憶部に格納する。
【発明の効果】
【００１１】
本願の開示する通信装置の一つの態様によれば、グループ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例に係るスイッチを含むネットワークの構成例を示す図である。
【図２】図２は、本実施例におけるフレームのデータ構造例を示す図である。
【図３】図３は、本実施例に係るスイッチの構成を示すブロック図である。
【図４】図４は、本実施例におけるＭＡＣ学習テーブルに記憶される情報の一例を示す図である。
【図５】図５は、本実施例における学習管理テーブルに記憶される情報の一例を示す図である。
【図６】図６は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その１）を説明するための図である。
【図７】図７は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その２）を説明するための図である。
【図８】図８は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その３）を説明するための図である。
【図９】図９は、本実施例におけるエージング制御部による処理の一例（その１）を説明するための図である。
【図１０】図１０は、本実施例におけるエージング制御部による処理の一例（その２）を説明するための図である。
【図１１】図１１は、本実施例に係るスイッチによるアドレス学習処理の流れを示すフローチャートである。
【図１２】図１２は、本実施例に係るスイッチによるエージング処理の流れを示すフローチャートである。
【図１３】図１３は、アドレス学習プログラムを実行するコンピュータの例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する通信装置、アドレス学習方法及びアドレス学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。
【実施例】
【００１４】
図１は、本実施例に係るスイッチを含むネットワークの構成例を示す図である。図１に示すスイッチ１０は、Ｌ２スイッチ（レイヤ２スイッチ）、スイッチングハブ、Ｌ３スイッチ（レイヤ３スイッチ）、ルータ、スイッチング機能を有するサーバなど、受信したデータを宛先に中継する通信装置である。
【００１５】
スイッチ１０は、ポート１を介して、ＭＡＣ（Media  Access  Control）アドレスＡを有するサーバなどの端末Ａに接続される。スイッチ１０は、ポート２とポート２に接続されるネットワークＮ１とを介して、ＭＡＣアドレスＢを有する端末Ｂと、ＭＡＣアドレスＦを有する端末Ｆとに接続される。スイッチ１０は、ポート３とポート３に接続されるネットワークＮ２とを介して、ＭＡＣアドレスＣを有する端末Ｃと、ＭＡＣアドレスＥを有する端末Ｅとに接続される。スイッチ１０は、ポート４を介して、ＭＡＣアドレスＤを有する端末Ｄに接続される。なお、端末Ａ〜端末Ｂは、サーバに限定されるものではなく、例えばスイッチなどのデータ中継装置やコンピュータなどでもよい。
【００１６】
そして、スイッチ１０は、ポート１を介して接続された端末Ａと、ポート４を介して接続された端末Ｄとにより仮想的なグループであるＶＬＡＮ（Virtual  Local  Area  Network）＃１を形成する。スイッチ１０は、ポート２を介して接続されたネットワークＮ１、端末Ｂ及び端末ＦによりＶＬＡＮ＃２を形成する。スイッチ１０は、ポート３を介して接続されたネットワークＮ２、端末Ｃ及び端末ＥによりＶＬＡＮ＃３を形成する。ＶＬＡＮ＃１〜ＶＬＡＮ＃３を識別するＶＬＡＮ識別子をそれぞれ「＃１」〜「＃３」とする。ＶＬＡＮ＃１〜ＶＬＡＮ＃３には、それぞれ、予め定められた優先度が設定される。例えば、ＶＬＡＮ＃１〜ＶＬＡＮ＃３には、それぞれ、優先度「高」、「中」及び「低」が設定される。
【００１７】
このようなスイッチ１０は、ポートを識別するポート識別子と、ポートを介して接続された端末のアドレスと、端末の属するＶＬＡＮを識別するＶＬＡＮ識別子との対応関係を記憶する第１記憶部を有する。また、スイッチ１０は、第１記憶部に現に記憶される対応関係の数を示す学習数と、該学習数の最小値を示す最小学習数と、該学習数の最大値を示す最大学習数と、予め定められた優先度とをＶＬＡＮ識別子に対応付けて記憶する第２記憶部を有する。また、スイッチ１０は、フレームが受信された場合に、該フレームに含まれるＶＬＡＮ識別子である受信ＶＬＡＮ識別子と他のＶＬＡＮ識別子とに対応付けて第２記憶部に記憶される学習数の総数が最大学習数の総数に達したか否かを判定する判定部を有する。そして、スイッチ１０は、学習数の総数が最大学習数の総数に達した場合に、受信ＶＬＡＮ識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ識別子を第２記憶部から特定する。その後、スイッチ１０は、特定した他のＶＬＡＮ識別子を含む対応関係に替えて、フレームを受信したポートのポート識別子と、フレームの送信元のアドレスと、受信ＶＬＡＮ識別子との対応関係を第１記憶部に格納する。
【００１８】
このように、実施例１に係るスイッチ１０は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していると、当該フレーム中の受信ＶＬＡＮ識別子より低優先度で、かつ、最小学習数を満たす他のＶＬＡＮ識別子を特定する。そして、実施例１に係るスイッチ１０は、特定した他のＶＬＡＮ識別子を含む対応関係に、当該フレームの送信元のアドレスと、当該フレームを受信したポートと、受信ＶＬＡＮ識別子との対応関係を上書き学習する。
【００１９】
例えば、スイッチ１０は、送信元アドレスをＭＡＣアドレスＤとし、ＶＬＡＮ識別子をＶＬＡＮ＃１とするフレームをポート４から受信したとする。また、他のＶＬＡＮ識別子であるＶＬＡＮ＃３に対応付けられた学習数が最少学習数を満たしているものとする。この場合、スイッチ１０は、フレーム中のＶＬＡＮ＃１より低優先度で、かつ、最小学習数を満たすＶＬＡＮ＃３を特定する。そして、スイッチ１０は、特定したＶＬＡＮ＃３に係る対応関係に替えて、フレームの送信元のＭＡＣアドレスＤと、フレームを受信したポート４と、フレーム中のＶＬＡＮ＃１との対応関係を学習する。
【００２０】
したがって、スイッチ１０は、アドレスの学習数の総数が最大数に達した状態で高優先度のＶＬＡＮからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のＶＬＡＮの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。つまり、スイッチ１０は、最小学習数を満たさないＶＬＡＮの情報が削除されることを防止しつつ、相対的に高優先度のＶＬＡＮからのフレーム中の情報を学習することができる。この結果、スイッチ１０は、ＶＬＡＮ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる。
【００２１】
次に、本実施例におけるフレームのデータ構造例について説明する。図２は、本実施例におけるフレームのデータ構造例を示す図である。図２に示すフレームは、例えばＭＡＣフレームである。図２に示すフレームは、ＤＡ（Destination  Address）、ＳＡ（Source  Address）、ＶＬＡＮ、Ｔｙｐｅ、Ｐａｙｌｏａｄ及びＦＣＳ（Frame  Check  Sequence）を含む。ＤＡは、フレームの宛先のＭＡＣアドレスである。ＳＡは、フレームの送信元のＭＡＣアドレスである。ＶＬＡＮは、フレームの送信元の属するＶＬＡＮを識別するＶＬＡＮ識別子である。Ｔｙｐｅは、Ｐａｙｌｏａｄに格納されるデータの種別である。Ｐａｙｌｏａｄは、データが格納される領域である。ＦＣＳは、フレームの誤りを検出するための符号である。
【００２２】
次に、図１に示したスイッチ１０の構成について説明する。図３は、本実施例に係るスイッチの構成を示すブロック図である。図３に示すように、スイッチ１０は、通信制御Ｉ／Ｆ（Interface）部１１、ＭＡＣ学習テーブル１２、学習管理テーブル１３、学習数判定部１４、制御部１５及びスイッチング制御部１６を有する。
【００２３】
なお、学習数判定部１４、制御部１５及びスイッチング制御部１６等は、集積回路や電子回路である。また、ＭＡＣ学習テーブル１２及び学習管理テーブル１３等は、半導体素子やハードディスクなどの記憶装置である。
【００２４】
通信制御Ｉ／Ｆ部１１は、ポート番号１〜４各々が割り当てられたポート１〜４を有し、外部の端末等との間の通信を制御するインタフェースである。通信制御Ｉ／Ｆ部１１は、所定のポートでフレームを受信し、受信したフレームを後述のフレーム解析部１５ａに出力する。通信制御Ｉ／Ｆ部１１は、所定のポートを介して、スイッチング制御部１６から出力されたフレームを宛先に送信する。
【００２５】
ＭＡＣ学習テーブル１２は、ポートを識別するポート番号と、該ポートを介して接続された端末のＭＡＣアドレスと、該端末の属するＶＬＡＮを識別するＶＬＡＮ識別子との対応関係を記憶する。ＭＡＣ学習テーブル１２は、第１記憶部の一例である。図４は、本実施例におけるＭＡＣ学習テーブルに記憶される情報の一例を示す図である。図４に示すＭＡＣ学習テーブル１２は、学習されるたびに情報をエントリに登録する。ＭＡＣ学習テーブル１２は、エントリ、Ｖ、ポート番号、ＭＡＣアドレス、ＶＬＡＮ及びエージング値といった項目を対応付けて記憶する。
【００２６】
エントリは、ポート番号とＭＡＣアドレスとＶＬＡＮ識別子との対応関係（以下適宜「対応関係」という）を格納するＭＡＣ学習テーブル１２のエントリを識別する番号である。本実施例では、ＭＡＣ学習テーブル１２のエントリは、全部で１９０００個存在するものとする。Ｖは、エントリが学習状態であるか又は空き状態であるか否かを示すフラグである。すなわち、Ｖが１である場合に、エントリに対応関係が学習されていることを示し、Ｖが０である場合に、エントリに対応関係が学習されていないことを示す。ポートは、通信制御Ｉ／Ｆ部１１が有するポート１〜４を識別するポート番号である。ＭＡＣアドレスは、ポート番号を有するポートを介して接続された端末のＭＡＣアドレスである。ＶＬＡＮは、ＭＡＣアドレスを有する端末の属するＶＬＡＮを識別するＶＬＡＮ識別子である。エージング値は、ポート番号とＭＡＣアドレスとＶＬＡＮ識別子との対応関係がＭＡＣ学習テーブル１２に格納されてからの経過時間を示す値である。
【００２７】
図４のエントリ「１」は、ＶＬＡＮ＃１に属する、ＭＡＣアドレス「Ａ」を有する端末Ａが、ポート番号「１」を有するポート１を介して接続され、かつ、エントリ「１」の対応関係の経過時間が「２」であることを示す。また、エントリ「１００」は、ＶＬＡＮ＃２に属する、ＭＡＣアドレス「Ｂ」を有する端末Ｂが、ポート番号「２」を有するポート２を介して接続され、かつ、エントリ「１００」の対応関係の経過時間が「４」であることを示す。また、エントリ「１０１」は、ＶＬＡＮ＃３に属する、ＭＡＣアドレス「Ｅ」を有する端末Ｅが、ポート番号「３」を有するポート３を介して接続され、かつ、エントリ「１０１」の対応関係の経過時間が「３」であることを示す。また、エントリ「１９０００」は、ＶＬＡＮ＃３に属する、ＭＡＣアドレス「Ｃ」を有する端末Ｃが、ポート番号「３」を有するポート３を介して接続され、かつ、エントリ「１９０００」の対応関係の経過時間が「２」であることを示す。
【００２８】
学習管理テーブル１３は、ＭＡＣ学習テーブル１２に現に記憶される対応関係の数を示す学習数と、学習数の最小値を示す最小学習数と、学習数の最大値を示す最大学習数と、予め定められた優先度とをＶＬＡＮ識別子に対応付けて記憶する。学習管理テーブル１３は、第２記憶部の一例である。図５は、本実施例における学習管理テーブルに記憶される情報の一例を示す図である。図５に示す学習管理テーブル１３は、ＶＬＡＮ、学習数、最小学習数、最大学習数、優先度及びエージングタイマ値といった項目を対応付けて記憶する。
【００２９】
ＶＬＡＮは、ＭＡＣ学習テーブル１２に記憶される対応関係に含まれるＶＬＡＮ識別子に対応する。学習数は、ＭＡＣ学習テーブル１２に現に記憶される対応関係の数である。なお、学習数のＡＬＬは、ＶＬＡＮ毎の学習数の総数を示す。最小学習数は、学習数の最小値である。最大学習数は、学習数の最大値である。なお、最大学習数のＡＬＬは、ＶＬＡＮ毎の最大学習数の総数を示し、学習数のＡＬＬが最大学習数のＡＬＬに達した場合に、ＭＡＣ学習テーブル１２の全エントリ（１９０００個のエントリ）に対応関係が学習されたことを示す。優先度は、ＶＬＡＮ毎に予め定められた優先度である。優先度＝「高」は、ＶＬＡＮの優先度が最も高いことを示し、優先度＝「低」は、ＶＬＡＮの優先度が最も低いことを示し、優先度＝「中」は、ＶＬＡＮの優先度が「高」と「低」との中間であることを示す。エージングタイマ値は、ＶＬＡＮ識別子を含む対応関係がＭＡＣ学習テーブル１２に保持される保持期限を示す値である。ＭＡＣ学習テーブル１２に記憶される対応関係のうちエージング値がエージングタイマ値に達した対応関係が削除される。
【００３０】
例えば、図５の１行目は、ＶＬＡＮ識別子としてＶＬＡＮ＃１を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「6000」、「5000」、「8000」、「高」及び「１０」であることを示す。図５の２行目は、ＶＬＡＮ識別子としてＶＬＡＮ＃２を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「6000」、「4000」、「6000」、「中」及び「１０」であることを示す。図５の３行目は、ＶＬＡＮ識別子としてＶＬＡＮ＃３を含む対応関係の学習数、最小学習数、最大学習数、優先度及びエージングタイマ値が、それぞれ「7000」、「3000」、「5000」、「低」及び「５」であることを示す。なお、図５の例では、学習数の総数ＡＬＬ＝19000が最大学習数の総数ＡＬＬ＝19000に達している状態を示す。この状態は、ＭＡＣ学習テーブル１２の全エントリ（１９０００個のエントリ）に対応関係が学習されたこと、換言すれば、ＭＡＣ学習テーブル１２の全エントリが枯渇したことを示す。
【００３１】
図３の説明に戻る。学習数判定部１４は、フレームが受信された場合に、学習管理テーブル１３を参照して、受信されたフレームに含まれるＶＬＡＮ識別子である受信ＶＬＡＮ識別子と他のＶＬＡＮ識別子とに対応付けられる学習数の総数が最大学習数の総数に達したか否かを判定する。例えば、ポート４が、送信元アドレスをＭＡＣアドレスＤとしＶＬＡＮ識別子をＶＬＡＮ＃１とするフレームを受信し、後述のフレーム解析部１５ａが、フレームから受信ＶＬＡＮ識別子として抽出したＶＬＡＮ＃１等を学習数判定部１４に出力した場合を想定する。
【００３２】
この場合、学習数判定部１４は、学習管理テーブル１３を参照して、ＶＬＡＮ＃１と他のＶＬＡＮ＃２，＃３とに対応付けられる学習数の総数ＡＬＬ＝19000が最大学習数の総数ＡＬＬ＝19000に達していると判定する。すると、学習数判定部１４は、ＭＡＣ学習テーブル１２の全エントリが枯渇したことを示す判定結果を後述のＶＬＡＮ特定部１５ｂに出力する。
【００３３】
また、学習数判定部１４は、受信ＶＬＡＮ識別子と他のＶＬＡＮ識別子とに対応付けられる学習数の総数が最大学習数の総数に達していない場合には、以下の処理を行う。すなわち、学習数判定部１４は、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果を、ＶＬＡＮ特定部１５ｂ及び後述の格納制御部１５ｃに出力する。
【００３４】
制御部１５は、学習数判定部１４による判定結果を基にしてアドレス学習を実行する制御部である。制御部１５は、フレーム解析部１５ａ、ＶＬＡＮ特定部１５ｂ、格納制御部１５ｃ及びエージング制御部１５ｄを有する。制御部１５は、制御プログラムや各種の処理手順などを規定したプログラム及び各種データを格納する内部メモリを有してもよい。
【００３５】
フレーム解析部１５ａは、フレームが受信された場合に、フレームの送信元アドレスと、フレーム中の受信ＶＬＡＮ識別子と、フレームを受信したポートのポート番号を解析し、解析した情報及びフレームを各処理部に出力する。例えば、フレーム解析部１５ａは、送信元アドレスをＭＡＣアドレスＤとし、ＶＬＡＮ識別子をＶＬＡＮ＃１とするフレームをポート４から受信した場合、送信元アドレスとしてＭＡＣアドレスＤを、受信ＶＬＡＮ識別子としてＶＬＡＮ＃１を解析する。そして、フレーム解析部１５ａは、フレームを受信したポート４を解析する。そして、フレーム解析部１５ａは、解析したＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４と、受信したフレームとをＶＬＡＮ特定部１５ｂに出力する。なお、フレーム解析部１５ａは、受信ＶＬＡＮ識別子として解析したＶＬＡＮ＃１を学習数判定部１４に出力する。
【００３６】
ＶＬＡＮ特定部１５ｂは、ＭＡＣ学習テーブル１２の学習数の総数が最大学習数の総数に達した場合に、受信ＶＬＡＮ識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ識別子を学習管理テーブル１３から特定する。詳細には、ＶＬＡＮ特定部１５ｂは、ＭＡＣ学習テーブル１２の学習数の総数が最大学習数の総数に達した場合に、受信ＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最小学習数を満たすか否かを判定する。そして、ＶＬＡＮ特定部１５ｂは、満たすと判定されたならば、受信ＶＬＡＮ識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ識別子を学習管理テーブル１３から特定し特定した他のＶＬＡＮ識別子の情報を格納制御部１５ｃに出力する。
【００３７】
例えば、学習数の総数ＡＬＬ＝19000が最大学習数の総数ＡＬＬ＝19000に達していると判定した学習数判定部１４が、ＭＡＣ学習テーブル１２の全エントリが枯渇したことを示す判定結果をＶＬＡＮ特定部１５ｂに出力したとする。また、例えば、フレーム解析部１５ａが、受信フレームから解析したＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４をＶＬＡＮ特定部１５ｂに出力したとする。この場合、ＶＬＡＮ特定部１５ｂは、学習管理テーブル１３を参照して、受信ＶＬＡＮ識別子としてのＶＬＡＮ＃１に対応付けられた学習数「6000」が最小学習数「5000」を満たすと判定する。すると、ＶＬＡＮ特定部１５ｂは、ＶＬＡＮ＃１よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ＃２，＃３を特定する。その後、ＶＬＡＮ特定部１５ｂは、特定した他のＶＬＡＮ＃２，＃３のうち最も優先度が低い他のＶＬＡＮ＃３と、解析されたＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４等の情報とを格納制御部１５ｃに出力する。
【００３８】
また、ＶＬＡＮ特定部１５ｂは、受信ＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最小学習数を満たさないと判定されたならば、学習数が最小学習数を満たす他のＶＬＡＮ識別子を学習管理テーブル１３から特定する。そして、ＶＬＡＮ特定部１５ｂは、特定した他のＶＬＡＮ識別子と、フレーム解析部１５ａから受信したフレームの送信元アドレス等の情報とを格納制御部１５ｃに出力する。
【００３９】
また、ＶＬＡＮ特定部１５ｂは、受信ＶＬＡＮ識別子よりも優先度が低い他のＶＬＡＮ識別子が学習管理テーブル１３から特定されない場合、又は、学習数が最小学習数を満たす他のＶＬＡＮ識別子が学習管理テーブル１３から特定されない場合、以下の処理を行う。すなわち、ＶＬＡＮ特定部１５ｂは、フレーム解析部１５ａから受信したフレームをそのまま格納制御部１５ｃに転送する。
【００４０】
また、ＶＬＡＮ特定部１５ｂは、ＭＡＣ学習テーブル１２の学習数の総数が最大学習数の総数に達していない場合には、フレーム解析部１５ａから受信したフレームの送信元アドレス等の情報を格納制御部１５ｃに出力する。例えば、ＶＬＡＮ特定部１５ｂは、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果を学習数判定部１４から受信すると、フレーム解析部１５ａから受信したフレームの送信元アドレス等の情報をそのまま格納制御部１５ｃに出力する。
【００４１】
格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂが特定した他のＶＬＡＮ識別子を含む対応関係に替えて、フレームを受信したポートのポート番号と、フレームの送信元アドレスと、受信ＶＬＡＮ識別子との対応関係をＭＡＣ学習テーブル１２に格納する。一例として、格納制御部１５ｃが、受信ＶＬＡＮ識別子としてのＶＬＡＮ＃１よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ＃３と、ＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４等の情報とをＶＬＡＮ特定部１５ｂから受信したとする。
【００４２】
この場合、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂが特定した他のＶＬＡＮ＃３を含む対応関係、すなわち、ポート番号３、ＭＡＣアドレスＥ及びＶＬＡＮ＃３の対応関係
をＭＡＣ学習テーブル１２から削除する。ここで、格納制御部１５ｃは、他のＶＬＡＮ＃３を含む対応関係がＭＡＣ学習テーブル１２に複数存在する場合には、他のＶＬＡＮ＃３を含む複数の対応関係のうち、最もエージング値が小さい対応関係を削除すればよい。そして、格納制御部１５ｃは、ＭＡＣ学習テーブル１２からの対応関係の削除により得られた空きエントリに、ポート４と、ＭＡＣアドレスＤと、ＶＬＡＮ＃１との対応関係を格納する。この結果、格納制御部１５ｃは、アドレスの総数が最大数に達した状態で高優先度のＶＬＡＮからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のＶＬＡＮの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。
【００４３】
別例として、格納制御部１５ｃが、学習数が最小学習数を満たす他のＶＬＡＮ識別子と、送信元アドレス等の情報とをＶＬＡＮ特定部１５ｂから受信したとする。この場合、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂが特定した他のＶＬＡＮ識別子を含む対応関係をＭＡＣ学習テーブル１２から削除する。ここで、格納制御部１５ｃは、他のＶＬＡＮ識別子を含む対応関係がＭＡＣ学習テーブル１２に複数存在する場合には、他のＶＬＡＮ識別子を含む複数の対応関係のうち、最もエージング値が小さい対応関係を削除すればよい。そして、格納制御部１５ｃは、ＭＡＣ学習テーブル１２からの対応関係の削除により得られた空きエントリに、送信元アドレス等の情報を格納する。この結果、格納制御部１５ｃは、アドレスの総数が最大数に達した状態でフレームを受信し、受信ＶＬＡＮ識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のＶＬＡＮの情報に送信元アドレス等の情報を上書き学習することができる。
【００４４】
また、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂにより他のＶＬＡＮ識別子が学習管理テーブル１３から特定されない場合には、ＶＬＡＮ特定部１５ｂから受信した送信元アドレス等の情報を学習することなく、受信した情報をスイッチング制御部１６に出力する。
【００４５】
また、格納制御部１５ｃは、ＭＡＣ学習テーブル１２の学習数の総数が最大学習数の総数に達していない場合、すなわち、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果を学習数判定部１４から受信した場合には、以下の処理を行う。すなわち、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂから受信した、ポート番号、送信元アドレス及び受信ＶＬＡＮ識別子を対応付けてＭＡＣ学習テーブル１２の空きエントリに格納する。
【００４６】
なお、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂから受信した送信元アドレス等の情報をＭＡＣ学習テーブル１２に格納すると、受信した情報をスイッチング制御部１６に出力する。
【００４７】
ここで、ＶＬＡＮ特定部１５ｂ及び格納制御部１５ｃによる処理の一例を説明する。図６は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その１）を説明するための図である。図６では、アドレスの総数が最大数に達した状態で高優先度のＶＬＡＮからフレームが受信された場合に、低優先度でかつ最小学習数を満たす他のＶＬＡＮの情報に、当該フレームの送信元アドレス等の情報が上書き学習される例を説明する。
【００４８】
例えば、ＭＡＣ学習テーブル１２が、図６左下図に示すように、ポート番号３、ＭＡＣアドレスＥ及びＶＬＡＮ＃３の対応関係をエントリ「101」に記憶しているとする。また、学習管理テーブル１３が、図６左上図に示すように、学習数の総数ＡＬＬ＝19000並びに最大学習数の総数ＡＬＬ＝19000を記憶しているとする。また、学習管理テーブル１３を参照して、学習数の総数ＡＬＬ＝19000が最大学習数の総数ＡＬＬ＝19000に達していると判定した学習数判定部１４が、ＭＡＣ学習テーブル１２の全エントリが枯渇したことを示す判定結果をＶＬＡＮ特定部１５ｂに出力したとする。また、フレーム解析部１５ａが、送信元アドレスをＭＡＣアドレスＤとし、ＶＬＡＮ識別子をＶＬＡＮ＃１とするフレームをポート４から受信した場合に、解析したＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４をＶＬＡＮ特定部１５ｂに出力したとする。この場合、ＶＬＡＮ特定部１５ｂは、学習管理テーブル１３を参照して、受信ＶＬＡＮ識別子としてのＶＬＡＮ＃１に対応付けられた学習数「6000」が最小学習数「5000」を満たすと判定する。すると、ＶＬＡＮ特定部１５ｂは、ＶＬＡＮ＃１よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ＃２，＃３を特定する。その後、ＶＬＡＮ特定部１５ｂは、特定した他のＶＬＡＮ＃２，＃３のうち最も優先度が低い他のＶＬＡＮ＃３と、解析されたＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４等の情報とを格納制御部１５ｃに出力する。
【００４９】
続いて、格納制御部１５ｃは、受信ＶＬＡＮ識別子としてのＶＬＡＮ＃１よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ＃３と、ＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート４等の情報とをＶＬＡＮ特定部１５ｂから受信する。そして、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂが特定した他のＶＬＡＮ＃３を含む対応関係、すなわち、ポート番号３、ＭＡＣアドレスＥ及びＶＬＡＮ＃３の対応関係をＭＡＣ学習テーブル１２のエントリ「101」から削除する。このとき、格納制御部１５ｃは、他のＶＬＡＮ＃３を含む対応関係がＭＡＣ学習テーブル１２に複数存在するので、他のＶＬＡＮ＃３を含む複数の対応関係のうち最もエージング値が大きい対応関係を削除する。そして、格納制御部１５ｃは、図６右下図に示すように、ＭＡＣ学習テーブル１２からの対応関係の削除により得られた空きエントリ「101」に、ポート４と、ＭＡＣアドレスＤと、ＶＬＡＮ＃１との対応関係を格納する。さらに、格納制御部１５ｃは、ポート４と、ＭＡＣアドレスＤと、ＶＬＡＮ＃１との対応関係の経過時間の初期値としてエージング値＝「0」を格納する。この結果、格納制御部１５ｃは、アドレスの総数が最大数に達した状態で高優先度のＶＬＡＮからフレームを受信した場合に、低優先度でかつ最小学習数を満たす他のＶＬＡＮの情報に、当該フレームの送信元アドレス等の情報を上書き学習することができる。
【００５０】
続いて、格納制御部１５ｃは、図６右上図に示すように、学習管理テーブル１３の学習数を更新する。すなわち、格納制御部１５ｃは、エントリ「101」から削除した対応関係に含まれる他のＶＬＡＮ＃３の学習数をデクリメントし、かつ、空きエントリ「101」に新たに格納した対応関係に含まれるＶＬＡＮ＃１の学習数をインクリメントする。
【００５１】
図７は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その２）を説明するための図である。図７では、アドレスの総数が最大数に達した状態でフレームが受信され、かつ、受信ＶＬＡＮ識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のＶＬＡＮの情報に送信元アドレス等の情報が上書き学習される例を説明する。
【００５２】
例えば、ＭＡＣ学習テーブル１２が、図７左下図に示すように、ポート番号２、ＭＡＣアドレスＦ及びＶＬＡＮ＃２の対応関係をエントリ「101」に記憶しているとする。また、学習管理テーブル１３が、図７左上図に示すように、学習数の総数ＡＬＬ＝19000並びに最大学習数の総数ＡＬＬ＝19000を記憶しているとする。また、学習管理テーブル１３を参照して、学習数の総数ＡＬＬ＝19000が最大学習数の総数ＡＬＬ＝19000に達していると判定した学習数判定部１４が、ＭＡＣ学習テーブル１２の全エントリが枯渇したことを示す判定結果をＶＬＡＮ特定部１５ｂに出力したとする。また、フレーム解析部１５ａが、送信元アドレスをＭＡＣアドレスＥとし、ＶＬＡＮ識別子をＶＬＡＮ＃３とするフレームをポート３から受信した場合に、フレームから解析したＭＡＣアドレスＥ、ＶＬＡＮ＃３及びポート３をＶＬＡＮ特定部１５ｂに出力したとする。この場合、ＶＬＡＮ特定部１５ｂは、学習管理テーブル１３を参照して、受信ＶＬＡＮ識別子としてのＶＬＡＮ＃３に対応付けられた学習数「2000」が最小学習数「3000」を満たさないと判定する。すると、ＶＬＡＮ特定部１５ｂは、学習数が最小学習数を満たす他のＶＬＡＮ＃１，＃２を特定する。その後、ＶＬＡＮ特定部１５ｂは、特定した他のＶＬＡＮ＃１，＃２のうち最も優先度が低い他のＶＬＡＮ＃２と、解析されたＭＡＣアドレスＥ、ＶＬＡＮ＃３及びポート３等の情報とを格納制御部１５ｃに出力する。
【００５３】
続いて、格納制御部１５ｃは、学習数が最小学習数を満たす他のＶＬＡＮ＃２と、ＭＡＣアドレスＥ、ＶＬＡＮ＃３及びポート３等の情報とをＶＬＡＮ特定部１５ｂから受信する。そして、格納制御部１５ｃは、ＶＬＡＮ特定部１５ｂが特定した他のＶＬＡＮ＃２を含む対応関係、すなわち、ポート番号２、ＭＡＣアドレスＦ及びＶＬＡＮ＃２の対応関係をＭＡＣ学習テーブル１２のエントリ「101」から削除する。このとき、格納制御部１５ｃは、他のＶＬＡＮ＃２を含む対応関係がＭＡＣ学習テーブル１２に複数存在するので、他のＶＬＡＮ＃２を含む複数の対応関係のうち最もエージング値が大きい対応関係を削除する。そして、格納制御部１５ｃは、図７右下図に示すように、ＭＡＣ学習テーブル１２からの対応関係の削除により得られた空きエントリ「101」に、ポート３と、ＭＡＣアドレスＥと、ＶＬＡＮ＃３との対応関係を格納する。この結果、格納制御部１５ｃは、アドレスの総数が最大数に達した状態でフレームを受信し、受信ＶＬＡＮ識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のＶＬＡＮの情報に送信元アドレス等の情報を上書き学習することができる。
【００５４】
続いて、格納制御部１５ｃは、図７右上図に示すように、学習管理テーブル１３の学習数を更新する。すなわち、格納制御部１５ｃは、エントリ「101」から削除した対応関係に含まれる他のＶＬＡＮ＃２の学習数をデクリメントし、かつ、空きエントリ「101」に新たに格納した対応関係に含まれるＶＬＡＮ＃３の学習数をインクリメントする。
【００５５】
図８は、本実施例におけるＶＬＡＮ特定部及び格納制御部による処理の一例（その３）を説明するための図である。図８では、アドレスの総数が最大数に達していない状態でフレームが受信された場合に、受信されたフレームの送信元アドレス等の情報が学習される例を説明する。
【００５６】
例えば、ＭＡＣ学習テーブル１２が、図８左下図に示すように、エントリ「101」に対応関係を記憶していないとする。また、学習管理テーブル１３が、図８左上図に示すように、学習数の総数ＡＬＬ＝15000並びに最大学習数の総数ＡＬＬ＝19000を記憶しているとする。また、学習管理テーブル１３を参照して、学習数の総数ＡＬＬ＝15000が最大学習数の総数ＡＬＬ＝19000に達していないと判定した学習数判定部１４が、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果をＶＬＡＮ特定部１５ｂに出力したとする。また、フレーム解析部１５ａが、送信元アドレスをＭＡＣアドレスＤとし、ＶＬＡＮ識別子をＶＬＡＮ＃１とするフレームをポート３から受信した場合に、フレームから解析したＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート３をＶＬＡＮ特定部１５ｂに出力したとする。この場合、ＶＬＡＮ特定部１５ｂは、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果を学習数判定部１４から受信する。すると、ＶＬＡＮ特定部１５ｂは、フレーム解析部１５ａから受信したフレームの送信元アドレスＤ等の情報をそのまま格納制御部１５ｃに出力する。
【００５７】
続いて、格納制御部１５ｃは、ＭＡＣアドレスＤ、ＶＬＡＮ＃１及びポート３等の情報をＶＬＡＮ特定部１５ｂから受信する。そして、格納制御部１５ｃは、ＭＡＣ学習テーブル１２に空きエントリがあることを示す判定結果を学習数判定部１４から受信する。すると、格納制御部１５ｃは、図８右下図に示すように、ポート３と、ＭＡＣアドレスＤと、ＶＬＡＮ＃１との対応関係を、ＭＡＣ学習テーブル１２の空きエントリであるエントリ「101」に格納する。この結果、格納制御部１５ｃは、アドレスの総数が最大数に達していない状態でフレームが受信された場合に、受信されたフレームの送信元アドレス等の情報を学習することができる。
【００５８】
続いて、格納制御部１５ｃは、図８右上図に示すように、学習管理テーブル１３の学習数を更新する。すなわち、格納制御部１５ｃは、空きエントリ「101」に新たに格納した対応関係に含まれるＶＬＡＮ＃１の学習数と、学習数の総数ＡＬＬとをインクリメントする。
【００５９】
図３の説明に戻る。エージング制御部１５ｄは、所定周期が到来する毎に、ＭＡＣ学習テーブル１２に格納された対応関係に係るエージング値が、当該対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値に達したか否かを判定する。エージング制御部１５ｄは、対応関係に係るエージング値が当該対応関係に含まれるＶＬＡＮ識別子に対応付けられたエージングタイマ値に達した対応関係が存在する場合に、当該対応関係をＭＡＣ学習テーブル１２から削除する。その後、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶される学習数が最小学習数を満たすか否かを判定する。エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最小学習数を満たさないと判定されたならば、当該ＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を延長する。
【００６０】
また、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最小学習数を満たすと判定されたならば、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最大学習数を超えたか否かを判定する。そして、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最大学習数を超えたと判定されたならば、当該ＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を短縮する。
【００６１】
なお、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最大学習数を超えていないと判定されたならば、学習管理テーブル１３に記憶されるエージングタイマ値を維持する。
【００６２】
ここで、エージング制御部１５ｄによる処理の一例を説明する。図９は、本実施例におけるエージング制御部による処理の一例（その１）を説明するための図である。図９では、学習管理テーブル１３に記憶されるエージングタイマ値が延長される例を説明する。
【００６３】
例えば、ＭＡＣ学習テーブル１２が、図９左下図に示すように、ポート番号１、ＭＡＣアドレスＡ及びＶＬＡＮ＃１の対応関係と、当該対応関係に係るエージング値＝10とをエントリ「１」に記憶しているとする。また、学習管理テーブル１３が、図９左上図に示すように、ＶＬＡＮ＃１に対応付けて、エージングタイマ値＝10を記憶しているとする。この場合、エージング制御部１５ｄは、ＭＡＣ学習テーブル１２を参照して、ＶＬＡＮ＃１を含む対応関係に係るエージング値＝10が当該対応関係に含まれるＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値＝10に達したと判定する。すると、エージング制御部１５ｄは、図９右下図に示すように、ＶＬＡＮ＃１を含む対応関係をＭＡＣ学習テーブル１２から削除する。その後、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶される学習数「4000」が最小学習数「5000」を満たさないと判定する。すると、エージング制御部１５ｄは、図９右上図に示すように、ＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を「10」から「20」に延長する。この結果、エージング制御部１５ｄは、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の不足分に応じてアドレスの保持期限を動的に延長することができる。
【００６４】
図１０は、本実施例におけるエージング制御部による処理の一例（その２）を説明するための図である。図１０では、学習管理テーブル１３に記憶されるエージングタイマ値が短縮される例を説明する。
【００６５】
例えば、ＭＡＣ学習テーブル１２が、図１０左下図に示すように、ポート番号１、ＭＡＣアドレスＡ及びＶＬＡＮ＃１の対応関係と、当該対応関係に係るエージング値＝10とをエントリ「１」に記憶しているとする。また、学習管理テーブル１３が、図１０左上図に示すように、ＶＬＡＮ＃１に対応付けて、エージングタイマ値＝10を記憶しているとする。この場合、エージング制御部１５ｄは、ＭＡＣ学習テーブル１２を参照して、ＶＬＡＮ＃１を含む対応関係に係るエージング値＝10が当該対応関係に含まれるＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値＝10に達したと判定する。すると、エージング制御部１５ｄは、図１０右下図に示すように、ＶＬＡＮ＃１を含む対応関係をＭＡＣ学習テーブル１２から削除する。その後、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶される学習数「9000」が最大学習数「8000」を超えたと判定する。すると、エージング制御部１５ｄは、図１０右上図に示すように、ＶＬＡＮ＃１に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を「10」から「5」に短縮する。この結果、エージング制御部１５ｄは、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の余剰分に応じてアドレスの保持期限を動的に短縮することができる。
【００６６】
図３の説明に戻る。スイッチング制御部１６は、フレームのスイッチング処理を実行して、受信されたフレームを宛先に転送する。詳細には、スイッチング制御部１６は、格納制御部１５ｃから受信されたフレームの宛先アドレスが学習済みである場合には、学習済みのポートからフレームを送信する。また、スイッチング制御部１６は、格納制御部１５ｃから受信されたフレームの宛先アドレスが未学習である場合には、フレームを破棄又はフラッディングする。
【００６７】
例えば、ＶＬＡＮ特定部１５ｂにより他のＶＬＡＮ識別子が学習管理テーブル１３から特定されない場合に、格納制御部１５ｃが、受信した送信元アドレス等の情報をＭＡＣ学習テーブル１２に学習することなくスイッチング制御部１６に出力したとする。この場合、スイッチング制御部１６は、ＭＡＣ学習テーブル１２を参照して、フレームの宛先アドレスが記憶されていないので、フレームの宛先アドレスが未学習であると判定し、フレームを破棄又はフラッディングする。なお、スイッチング制御部１６は、フレームをフラッディングする際には、フレームを受信した受信ポート以外の全てのポートからフレームを送信する。
【００６８】
次に、本実施例に係るスイッチ１０によるアドレス学習処理の流れを説明する。図１１は、本実施例に係るスイッチによるアドレス学習処理の流れを示すフローチャートである。図１１に示すように、スイッチ１０のフレーム解析部１５ａは、フレームが受信されていない場合（ステップＳ１０１否定）、待機する。
【００６９】
フレーム解析部１５ａは、フレームが受信された場合（ステップＳ１０１肯定）、当該フレームの送信元アドレスと、受信ＶＬＡＮ識別子と、フレームを受信した受信ポートのポート番号を解析する（ステップＳ１０２）。フレーム解析部１５ａは、解析した情報及びフレームをＶＬＡＮ特定部１５ｂ及び学習数判定部１４等の各処理部に出力する。
【００７０】
学習数判定部１４は、学習管理テーブル１３を参照して、受信されたフレームに含まれる受信ＶＬＡＮ識別子と他のＶＬＡＮ識別子とに対応付けられる学習数の総数が最大学習数の総数に達したか否かを判定する（ステップＳ１０３）。
【００７１】
ＶＬＡＮ特定部１５ｂは、学習数の総数が最大学習数の総数に達した場合に（ステップＳ１０３肯定）、受信ＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最小学習数を満たすか否かを判定する（ステップＳ１０４）。ＶＬＡＮ特定部１５ｂは、満たすと判定された場合（ステップＳ１０４肯定）、受信ＶＬＡＮ識別子よりも優先度が低く、かつ、学習数が最小学習数を満たす他のＶＬＡＮ識別子を学習管理テーブル１３から特定する（ステップＳ１０５）。
【００７２】
格納制御部１５ｃは、受信ＶＬＡＮ識別子よりも優先度が低くかつ学習数が最小学習数を満たす他のＶＬＡＮ識別子が特定された場合（ステップＳ１０６肯定）、当該他のＶＬＡＮ識別子を含む対応関係をＭＡＣ学習テーブル１２から削除する（ステップＳ１０７）。格納制御部１５ｃは、対応関係の削除により得られた空きエントリに、受信ポートのポート番号と、送信元アドレスと、受信ＶＬＡＮ識別子との対応関係を格納し（ステップＳ１０８）、処理をステップＳ１１４に進める。
【００７３】
格納制御部１５ｃは、受信ＶＬＡＮ識別子よりも優先度が低くかつ学習数が最小学習数を満たす他のＶＬＡＮ識別子が特定されなかった場合（ステップＳ１０６否定）、ステップＳ１０７及びＳ１０８を行うことなく、処理をステップＳ１１４に進める。
【００７４】
一方、ＶＬＡＮ特定部１５ｂは、受信ＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最小学習数を満たさないと判定された場合（ステップＳ１０４否定）、以下の処理を行う。すなわち、ＶＬＡＮ特定部１５ｂは、学習数が最小学習数を満たす他のＶＬＡＮ識別子を学習管理テーブル１３から特定する（ステップＳ１０９）。
【００７５】
格納制御部１５ｃは、学習数が最小学習数を満たす他のＶＬＡＮ識別子が特定された場合（ステップＳ１１０肯定）、当該他のＶＬＡＮ識別子を含む対応関係をＭＡＣ学習テーブル１２から削除する（ステップＳ１１１）。格納制御部１５ｃは、対応関係の削除により得られた空きエントリに、受信ポートのポート番号と、送信元アドレスと、受信ＶＬＡＮ識別子との対応関係を格納し（ステップＳ１１２）、処理をステップＳ１１４に進める。
【００７６】
格納制御部１５ｃは、学習数が最小学習数を満たす他のＶＬＡＮ識別子が特定されなかった場合（ステップＳ１１０否定）、ステップＳ１１１及びＳ１１２を行うことなく、処理をステップＳ１１４に進める。
【００７７】
一方、ＶＬＡＮ特定部１５ｂは、受信ＶＬＡＮ識別子と他のＶＬＡＮ識別子とに対応付けられる学習数の総数が最大学習数の総数に達していない場合（ステップＳ１０３否定）、受信したフレームの送信元アドレス等の情報を格納制御部１５ｃに出力する。そして、格納制御部１５ｃは、受信ポートのポート番号と、送信元アドレスと、受信ＶＬＡＮ識別子との対応関係をＭＡＣ学習テーブル１２の空きエントリに格納し（ステップＳ１１３）、処理をステップＳ１１４に進める。
【００７８】
その後、スイッチング制御部１６は、スイッチング処理を実行して、フレームを宛先に送信する（ステップＳ１１４）。つまり、スイッチング制御部１６は、格納制御部１５ｃから受信されたフレームの宛先アドレスが学習済みである場合には、ＭＡＣ学習テーブル１２から学習済みのポートを特定し、特定したポートからフレームを送信する。また、スイッチング制御部１６は、格納制御部１５ｃから受信されたフレームの宛先アドレスが未学習である場合には、フレームを破棄又はフラッディングする。
【００７９】
次に、本実施例に係るスイッチ１０によるエージング処理の流れを説明する。図１２は、本実施例に係るスイッチによるエージング処理の流れを示すフローチャートである。図１２に示すように、スイッチ１０のエージング制御部１５ｄは、所定周期が到来していない場合（ステップＳ２０１否定）、待機する。
【００８０】
エージング制御部１５ｄは、所定周期が到来した場合（ステップＳ２０１肯定）、ＭＡＣ学習テーブル１２に記憶される全ての対応関係に係るエージング値をカウントアップする（ステップＳ２０２）。そして、エージング制御部１５ｄは、ＭＡＣ学習テーブル１２に格納された対応関係に係るエージング値が、当該対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値に達したか否かを判定する。エージング制御部１５ｄは、対応関係に係るエージング値が当該対応関係に含まれるＶＬＡＮ識別子に対応付けられたエージングタイマ値に達した対応関係が存在しない場合（ステップＳ２０３否定）、処理を終了する。
【００８１】
エージング制御部１５ｄは、対応関係に係るエージング値が当該対応関係に含まれるＶＬＡＮ識別子に対応付けられたエージングタイマ値に達した対応関係が存在する場合（ステップＳ２０３肯定）、以下の処理を行う。すなわち、エージング制御部１５ｄは、エージング値がエージングタイマ値に達した対応関係をＭＡＣ学習テーブル１２から削除する（ステップＳ２０４）。
【００８２】
その後、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶される学習数が最小学習数を満たすか否かを判定する（ステップＳ２０５）。エージング制御部１５ｄは、満たさないと判定された場合（ステップＳ２０５肯定）、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を延長する（ステップＳ２０６）。
【００８３】
一方、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶される学習数が最小学習数を満たすと判定された場合（ステップＳ２０５否定）、以下の処理を行う。すなわち、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最大学習数を超えたか否かを判定する（ステップＳ２０７）。
【００８４】
エージング制御部１５ｄは、超えたと判定された場合（ステップＳ２０７肯定）、削除された対応関係に含まれるＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を短縮する（ステップＳ２０８）。
【００８５】
一方、エージング制御部１５ｄは、削除された対応関係に含まれるＶＬＡＮ識別子に対応づけて学習管理テーブル１３に記憶される学習数が最大学習数を超えていない場合（ステップＳ２０７否定）、ステップＳ２０８を行うことなく、処理を終了する。
【００８６】
本実施例によれば、スイッチ１０は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していると、当該フレーム中の受信ＶＬＡＮ識別子より低優先度で、かつ、最小学習数を満たす他のＶＬＡＮ識別子を特定する。そして、実施例１に係るスイッチ１０は、特定した他のＶＬＡＮ識別子を含む対応関係に、当該フレームを受信したポートのポート番号と、当該フレームの送信元のアドレスと、受信ＶＬＡＮ識別子との対応関係を上書き学習する。したがって、スイッチ１０は、最小学習数を満たさないＶＬＡＮの情報が削除されることを防止しつつ、相対的に高優先度のＶＬＡＮからのフレーム中の情報を学習することができる。この結果、スイッチ１０は、ＶＬＡＮ単位の最低限の学習数を保障しつつ、優先度に応じた効率的なアドレス学習を行うことができる。
【００８７】
また、スイッチ１０は、フレームの受信時に受信ＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶される学習数が最小学習数を満たさない場合に、最小学習数を満たす他のＶＬＡＮ識別子を特定する。そして、スイッチ１０は、特定した他のＶＬＡＮ識別子を含む対応関係に換えて、フレームを受信したポートのポート番号と、当該フレームの送信元のアドレスと、受信ＶＬＡＮ識別子との対応関係を学習する。したがって、スイッチ１０は、受信ＶＬＡＮ識別子に対応する学習数が最小学習数を満たさない場合に、最小学習数を満たす他のＶＬＡＮの情報に送信元アドレス等の情報を上書き学習することができる。この結果、スイッチ１０は、フレームの送信元が所属するＶＬＡＮの最低限の学習数を保障しつつ、該ＶＬＡＮよりも優先度が高くかつ最小学習数を満たす他のＶＬＡＮの情報に優先して該ＶＬＡＮの情報を学習することができる。
【００８８】
また、スイッチ１０は、フレームの受信時に受信ＶＬＡＮ識別子よりも優先度が低い他のＶＬＡＮ識別子が特定されない場合、又は学習数が最小学習数を満たす他のＶＬＡＮ識別子が特定されない場合、学習を行うことなく、フレームを破棄又はフラッディングする。この結果、スイッチ１０は、受信ＶＬＡＮ識別子よりも優先度が高い他のＶＬＡＮの情報や、最小学習数を満たさない他のＶＬＡＮの情報が無暗に削除される事態を回避することができ、ＶＬＡＮ単位の最低限の学習数を安定的に保障することができる。
【００８９】
また、スイッチ１０は、フレームを受信した際のアドレス学習時に学習数の総数が最大学習数の総数に達していない場合に、ポート番号と、送信元アドレスと、受信ＶＬＡＮ識別子との対応関係をＭＡＣ学習テーブル１２の空きエントリに格納する。この結果、スイッチ１０は、ＭＡＣ学習テーブル１２の空きエントリを有効活用することができるので、アドレス学習の効率を一層向上することができる。
【００９０】
また、スイッチ１０は、エージング時に削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最小学習数を満たさない場合に、当該ＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を延長する。この結果、スイッチ１０は、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の不足分に応じてアドレスの保持期限を動的に延長することができる。
【００９１】
また、スイッチ１０は、エージング時に削除された対応関係に含まれるＶＬＡＮ識別子に対応付けられた学習数が最大学習数を超えた場合に、当該ＶＬＡＮ識別子に対応付けて学習管理テーブル１３に記憶されるエージングタイマ値を短縮する。この結果、スイッチ１０は、保持期限に達したアドレスを学習済みのアドレスから削除する際に、学習数の余剰分に応じてアドレスの保持期限を動的に短縮することができる。
【００９２】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【００９３】
図１３は、アドレス学習プログラムを実行するコンピュータの例を示す図である。図１３に示すように、コンピュータ１００は、ＣＰＵ１０１、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３及びＨＤＤ（Hard  Disk  Drive）１０４を有する。また、ＣＰＵ１０１、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３及びＨＤＤ（Hard  Disk  Drive）１０４はバス１０５を介して接続される。また、ＨＤＤ１０４には、図３に示した各テーブルと同様の機能を有するＭＡＣ学習テーブル１０４ａ及び学習管理テーブル１０４ｂが設けられる。
【００９４】
ＲＯＭ１０２は、アドレス学習プログラム１０２ａを保持する。記録媒体の例としてＲＯＭ１０２を例に挙げたが、ＨＤＤ、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【００９５】
ＣＰＵ１０１は、アドレス学習プログラム１０２ａを読み出して実行することで、図３で説明した各機能を実行するアドレス学習プロセス１０１ａを動作させる。すなわち、アドレス学習プロセス１０１ａは、制御部１５と同様の機能を実行する。また、アドレス学習プロセス１０１ａは、学習数判定部１４やスイッチング制御部１６と同様の機能も実行することもできる。このようにコンピュータ１００は、ＲＯＭ１０２からプログラムを読み出して実行することでアドレス学習方法を実行する通信装置として動作する。
【符号の説明】
【００９６】
１０  スイッチ
１１  通信制御Ｉ／Ｆ部
１２  ＭＡＣ学習テーブル
１３  学習管理テーブル
１４  学習数判定部
１５  制御部
１５ａ  フレーム解析部
１５ｂ  ＶＬＡＮ特定部
１５ｃ  格納制御部
１５ｄ  エージング制御部
１６  スイッチング制御部
【図１】
2014216793.tif 000003
【図２】
2014216793.tif 000004
【図３】
2014216793.tif 000005
【図４】
2014216793.tif 000006
【図５】
2014216793.tif 000007
【図６】
2014216793.tif 000008
【図７】
2014216793.tif 000009
【図８】
2014216793.tif 000010
【図９】
2014216793.tif 000011
【図１０】
2014216793.tif 000012
【図１１】
2014216793.tif 000013
【図１２】
2014216793.tif 000014
【図１３】
2014216793.tif 000015