(57)【特許請求の範囲】
【請求項１】
ポート識別子と、前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部と、
前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部と、
前記ポート識別子と、各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部と、
データが受信された場合に、前記データが受信された受信ポートのポート識別子に対応付けて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定された前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される、前記受信ポート以外のポート識別子を特定し、特定された前記ポート識別子と、前記受信ポートのポート識別子と、前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納するとともに、前記受信ポートのポート識別子に対応付けて前記第３記憶部に記憶されるパーティション識別子を特定し、特定されたパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち、前記受信ポートのポート識別子とは異なるポート識別子を特定し、特定されたポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定されたネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、特定されたポート識別子をさらに対応付けて前記第２記憶部に格納する制御部と
を有することを特徴とする通信処理装置。
【請求項２】
前記制御部は、前記データが受信された場合に、前記データの宛先のアドレス情報が前記第２記憶部に記憶されているか否かを判定し、
記憶されていると判定された場合に、前記宛先のアドレス情報に対応付けられたポート識別子を前記第２記憶部から抽出し、
抽出されたポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出するとともに、前記受信ポートのポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出し、
抽出されたポート識別子を有するポートのうち前記受信ポートのポート識別子に対応付けられたパーティション識別子と同一のパーティションに属するポート識別子を有するポートから、前記データを送信することを特徴とする請求項１に記載の通信処理装置。
【請求項３】
前記制御部は、前記データの宛先のアドレス情報が前記第２記憶部に記憶されていないと判定された場合に、前記データが受信されたポートと同一のパーティションに属するポート識別子を前記第３記憶部から特定し、特定したポート識別子を有するポートから前記データを送信することを特徴とする請求項２に記載の通信処理装置。
【請求項４】
ポート識別子と、前記ポート識別子によって特定されるポートが接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部と、
前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部と、
前記ポート識別子と、前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部と、
データが受信された場合に、前記受信ポートのポート識別子に対応付けて前記第３記憶部に記憶されるパーティション識別子を特定し、特定されたパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、特定された前記ポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定された前記ネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定されたパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、特定された前記ポート識別子と前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納する制御部と、
を有することを特徴とする通信処理装置。
【請求項５】
コンピュータに、
データが受信された場合に、ポート識別子と前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を複数のポート識別子について記憶する第１記憶部から、前記データが受信された受信ポートのポート識別子に対応付けられたネットワーク識別子を特定し、
特定した前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される前記受信ポート以外のポート識別子を特定し、
特定した前記ポート識別子と前記受信ポートのポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納するとともに、
前記ポート識別子と各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、
特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち、前記受信ポートのポート識別子とは異なるポート識別子を特定し、
特定したポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定したポート識別子をさらに対応付けて前記第２記憶部に格納する
処理を実行させることを特徴とするアドレス学習プログラム。
【請求項６】
コンピュータに、
データが受信された場合に、各ポートを識別するポート識別子と前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から、前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、
前記ポート識別子と前記各ポートが接続されるネットワークを識別するネットワーク識別子とを対応付けて記憶する第１記憶部から、前記特定したポート識別子に対応付けられたネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定したポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納する、
処理を実行させることを特徴とするアドレス学習プログラム。
【請求項７】
コンピュータによって実行されるアドレス学習方法であって、
データが受信された場合に、ポート識別子と前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を複数のポート識別子について記憶する第１記憶部から、前記データが受信された受信ポートのポート識別子に対応付けられたネットワーク識別子を特定し、
特定した前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される前記受信ポート以外のポート識別子を特定し、
特定した前記ポート識別子と前記受信ポートのポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納するとともに、
前記ポート識別子と各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、
特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち、前記受信ポートのポート識別子とは異なるポート識別子を特定し、
特定したポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定したポート識別子をさらに対応付けて前記第２記憶部に格納する
ことを特徴とするアドレス学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信処理装置、アドレス学習プログラムおよびアドレス学習方法に関する。
【背景技術】
【０００２】
従来、イーサネット（登録商標）等のフレーム交換ネットワークにおいて、データを中継するスイッチでは、１つのスイッチがあたかも２つのスイッチであるかのように動作するスイッチのパーティショニングが実行されることがある。スイッチのパーティショニングとは、単一のスイッチを論理的に分割して、複数のスイッチとして機能させるものであり、スイッチの仮想化とも言える。
【０００３】
このようなパーティショニングを実行するスイッチでは、スイッチ内で論理的に分割された複数のパーティションに同一ネットワークが接続されている場合、データ中継処理で問題が発生する。図１２は、スイッチのパーティショニングを説明する図である。図１２に示すように、スイッチ５０は、ポート１〜ポート６を有し、ポート１、ポート３、ポート４でパーティション１を形成し、ポート２、ポート５、ポート６でパーティション２を形成する。
【０００４】
そして、スイッチ５０は、ポート１とポート２のそれぞれを介して、ＭＡＣアドレスＡを有する装置Ａが接続されるネットワークに接続されている。つまり、スイッチ５０は、属するパーティションが異なるポート１とポート２のそれぞれを介して、同一のネットワークと接続されている。また、スイッチ５０は、ポート４を介して、ＭＡＣアドレスＢを有する装置Ｂが接続されるネットワークに接続されている。
【０００５】
一例として、図１２に示すスイッチ５０は、装置Ａから送信されたデータをポート１で受信した場合、ポート１とアドレスＡとを対応付けてアドレステーブル等に記憶する。この状態において、スイッチ５０は、パーティション２に属するポート６からアドレスＡを宛先とするデータを受信すると、アドレステーブルを検索して、アドレスＡに対応付けて学習されているポート１を特定する。この場合、スイッチ５０は、ポート６とポート１が別々のパーティションに属している結果、ポート６で受信したデータを中継することができない。
【０００６】
別例として、図１２に示すスイッチ５０は、装置Ｂから送信されたデータをポート４で受信した場合、ポート４とアドレスＢとを対応付けてアドレステーブル等に記憶する。この状態において、スイッチ５０は、パーティション２に属するポート６からアドレスＢを宛先とするデータを受信すると、アドレステーブルを検索して、アドレスＢに対応付けて学習されているポート４を特定する。この場合も同様に、スイッチ５０は、ポート６とポート４が別々のパーティションに属している結果、ポート６で受信したデータを中継することができない。
【０００７】
このような問題を解決する手法として、学習の無効化手法、検索の無効化手法、パーティション情報の学習手法が知られている。学習の無効化手法とは、同一ネットワークに接続されるいずれかのポートでデータを受信した場合には、アドレスの学習を実行しない手法である。例えば、図１２に示すスイッチで説明すると、スイッチ５０は、ポート１またはポート２からデータを受信した場合にはアドレスを学習しない。一方、スイッチ５０は、ポート３〜ポート６でデータを受信した場合には受信ポートとデータの送信元アドレスとを対応付けてアドレステーブルに格納する。
【０００８】
また、検索の無効化手法とは、データを受信した場合にはアドレスを学習し、パーティション間の通信が想定されるポートでデータを受信した場合には学習結果の検索を実行しない手法である。例えば、図１２に示すスイッチ５０で説明すると、スイッチ５０は、装置Ｂから送信されたデータをポート４で受信した場合、ポート４とアドレスＢとを対応付けてアドレステーブル等に記憶する。その後、スイッチ５０は、アドレスＢを宛先とするデータをポート３で受信した場合、アドレステーブルを検索することなく、ポート３と同じパーティション１に属するポート１およびポート４にデータを転送するフラッディングを実行する。同様に、スイッチ５０は、アドレスＢを宛先とするデータをポート６で受信した場合、アドレステーブルを検索することなく、ポート６と同じパーティション２に属するポート２およびポート５にデータを転送するフラッディングを実行する。
【０００９】
また、パーティション情報の学習手法とは、アドレスとポート番号とを学習する際に、データを受信したポートが属するパーティション情報をあわせて学習する手法である。例えば、図１２に示すスイッチ５０で説明すると、スイッチ５０は、装置Ａから送信されたデータをポート１で受信した場合、ポート１とアドレスＡとパーティション１とを対応付けてアドレステーブル等に記憶する。その後、スイッチ５０は、パーティション１に属するポート４でアドレスＡを宛先とするデータを受信した場合、アドレステーブルを検索して出力先となるポート１を特定し、ポート１から当該データを転送する。また、スイッチ５０は、パーティション２に属するポート６でアドレスＡを宛先とするデータを受信した場合、アドレステーブルを検索し、出力先となるポートが学習されていないと判定する。そして、スイッチ５０は、ポート６と同じパーティション２に属するポート２およびポート５にデータを転送するフラッディングを実行する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−１３０６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術では、フラッディングを防止した効率的なデータ中継処理を実行できないという課題があった。
【００１２】
例えば、学習の無効化手法では、データを受信した場合に送信元アドレスと受信ポートとを対応付けて学習しないので、データを受信するたびに、受信ポートと同じパーティションの全ポートから送信するフラッディングを実行する。したがって、学習の無効化手法を用いたスイッチでは、データを中継する際にはフラッディングが発生し、性能の低下に繋がる。
【００１３】
また、検索の無効化手法では、データを受信した場合に送信元アドレスと受信ポートとを対応付けて学習するが、データを受信した際にアドレステーブルの検索を実行しない。この結果、データを受信するたびに、受信ポートと同じパーティションの全ポートから送信するフラッディングを実行する。したがって、検索の無効化手法を用いたスイッチでは、データを中継する際にはフラッディングが発生し、性能の低下に繋がる。
【００１４】
また、パーティション情報の学習手法では、既に学習済みアドレスのデータであっても、受信したポートが属するパーティションが異なれば、パーティション情報のみが異なるデータを再度学習することになる。したがって、パーティション情報の学習手法を用いたスイッチでは、学習の無効化手法や検索の無効化手法と比較してフラッディングの発生頻度を低くすることができる一方で、パーティションごとに重複して学習するので、効率的とは言えない。また、アドレステーブルにパーティション情報を格納する領域が必要になり、パーティション情報を記録しない場合と比較し、アドレステーブルの大きさが増加してしまう。
【００１５】
１つの側面では、フラッディングを抑制可能なデータ中継処理を実行できる通信処理装置、アドレス学習プログラムおよびアドレス学習方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
第１の案では、通信処理装置は、ポート識別子と、前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部を有する。通信処理装置は、前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部を有する。通信処理装置は、データが受信された場合に、前記データが受信された受信ポートのポート識別子に対応付けて前記第１記憶部に記憶されるネットワーク識別子を特定する。通信処理装置は、特定された前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される、前記受信ポート以外のポート識別子を特定する。通信処理装置は、特定された前記ポート識別子と、前記受信ポートのポート識別子と、前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納する。
【００１７】
第２の案では、通信処理装置は、ポート識別子と、前記ポート識別子によって特定されるポートが接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部を有する。通信処理装置は、前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部を有する。通信処理装置は、前記ポート識別子と、前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部を有する。通信処理装置は、データが受信された場合に、前記受信ポートのポート識別子に対応付けて前記第３記憶部に記憶されるパーティション識別子を特定する。通信処理装置は、特定されたパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、特定された前記ポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定する。通信処理装置は、特定された前記ネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定されたパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定する。通信処理装置は、特定された前記ポート識別子と前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納する。
【発明の効果】
【００１８】
フラッディングを抑制したデータ中継処理を実行できる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例１に係るスイッチを含むネットワークの例を示す図である。
【図２】図２は、実施例２に係るスイッチの構成を示すブロック図である。
【図３】図３は、実施例２に係るネットワークグループテーブルに記憶される情報の例を示す図である。
【図４】図４は、実施例２に係るパーティションテーブルに記憶される情報の例を示す図である。
【図５】図５は、実施例２に係るＭＡＣテーブルに記憶される情報の例を示す図である。
【図６】図６は、実施例２に係るスイッチにおける学習処理の流れを示すフローチャートである。
【図７】図７は、実施例３に係るスイッチの構成を示すブロック図である。
【図８】図８は、実施例３に係るＭＡＣテーブルに記憶される情報の例を示す図である。
【図９】図９は、実施例３に係るスイッチにおける学習処理の流れを示すフローチャートである。
【図１０】図１０は、実施例４に係るスイッチにおける学習処理の流れを示すフローチャートである。
【図１１】図１１は、アドレス学習プログラムを実行するコンピュータシステムの例を示す図である。
【図１２】図１２は、スイッチのパーティショニングを説明する図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する通信処理装置、アドレス学習プログラムおよびアドレス学習方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２１】
図１は、実施例１に係るスイッチを含むネットワークの例を示す図である。図１に示すスイッチ１ａは、Ｌ２スイッチ（レイヤ２スイッチ）、スイッチングハブ、Ｌ３スイッチ（レイヤ３スイッチ）、ルータ、スイッチング機能を有するサーバなど、受信したデータを宛先に中継するデータ中継装置である。
【００２２】
また、図１に示すスイッチ１ａは、ポート１およびポート２のそれぞれを介して、ＭＡＣ（Media  Access  Control）アドレスＡを有するサーバなどの装置Ａが接続されるネットワークＡに接続される。また、スイッチ１ａは、ポート３を介して、ＭＡＣアドレスＣを有する装置Ｃに接続される。同様に、スイッチ１ａは、ポート４を介して、ＭＡＣアドレスＢを有する装置Ｂに接続される。また、スイッチ１ａは、ポート５を介して、ＭＡＣアドレスＤを有する装置Ｄに接続される。同様に、スイッチ１ａは、ポート６を介して、ＭＡＣアドレスＥを有する装置Ｅに接続される。なお、装置Ａ〜装置Ｅは、サーバに限定されるものではなく、例えばスイッチなどのデータ中継装置、コンピュータなどでもよい。
【００２３】
そして、スイッチ１ａは、ポート１、ポート３、ポート４でパーティション１を形成し、ポート２、ポート５、ポート６でパーティション２を形成する。このように、スイッチ１ａは、パーティショニングを形成しており、パーティションを跨った通信を実行することができない。一例を挙げると、スイッチ１ａは、ポート１から受信したデータをポート２、ポート５、ポート６のいずれにも転送することができない。また、スイッチ１ａは、ポート５から受信したデータをポート１、ポート３、ポート４のいずれにも転送することができない。
【００２４】
このようなスイッチ１ａは、ポート識別子と、ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部を有する。また、スイッチ１ａは、ポート番号と、ポート番号を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部を有する。そして、スイッチ１ａは、データが受信された場合に、データが受信された受信ポートを示すポート識別子に対応付けて第１記憶部に記憶されるネットワーク識別子を特定し特定されたネットワーク識別子に対応付けて第１記憶部に記憶される、受信ポート以外のポート識別子を特定する。その後、スイッチ１ａは、特定されたポート識別子と、受信ポートのポート識別子と、データの送信元のアドレス情報とを対応付けて第２記憶部に格納する。
【００２５】
このように、実施例１に係るスイッチ１ａは、データを受信した際のアドレス学習時に、当該データの送信元アドレスと、当該データを受信したポートと、当該ポートと同一のネットワークに接続される他ポートとを対応付けて学習する。例えば、スイッチ１ａは、送信元アドレスをアドレスＡとするデータＡをポート１で受信したとする。この場合、スイッチ１ａは、データを受信したポート１とデータの送信元アドレスＡとに対応付けて、ポート１と同じネットワークＡに接続されるポート２についても学習する。
【００２６】
したがって、スイッチ１ａは、アドレスＡとするデータＡを受信したポート１とは異なるパーティションに属するポート５において、宛先ポートとしてポート２を特定できる。つまり、スイッチ１ａは、アドレスの学習対象となるデータを受信した受信ポートが属するパーティションとは異なるパーティションに属するポートで、当該アドレスを宛先とするデータを受信した場合であっても、フラッディングを実行しない。この結果、スイッチ１ａは、フラッディングを防止した効率的なデータ中継処理を実行できる。
【実施例２】
【００２７】
実施例２では、図１に示したスイッチの詳細例について説明する。実施例２では、スイッチの構成、スイッチによる処理の流れ、実施例２による効果を順に説明する。
【００２８】
［スイッチの構成］
図２は、実施例２に係るスイッチの構成を示すブロック図である。図２に示すように、スイッチ１０は、通信制御Ｉ／Ｆ部１１、ネットワークグループテーブル１２、パーティションテーブル１３、ＭＡＣ（Media  Access  Control）テーブル１４、制御部１５、スイッチング制御部１６を有する。
【００２９】
なお、制御部１５や制御部１５が有する各部等は、集積回路や電子回路である。また、ネットワークグループテーブル１２、パーティションテーブル１３、ＭＡＣテーブル１４は、半導体素子やハードディスクなどの記憶装置である。
【００３０】
通信制御Ｉ／Ｆ部１１は、ポート番号１〜６各々が割り当てられたポート１〜６を有し、他の装置との間の通信を制御するインタフェースである。通信制御Ｉ／Ｆ部１１は、所定のポートでデータを受信し、受信したデータを後述の送信元特定部１５ａに出力する。また、通信制御Ｉ／Ｆ部１１は、所定のポートを介して、スイッチング制御部１６から出力されたデータを宛先に送信する。なお、図２に示したＲｘは、パケットやフレームなどのデータを受信するインタフェースの種別を示し、Ｔｘは、データを送信するインタフェースの種別を示す。
【００３１】
ネットワークグループテーブル１２は、ポート識別子と、ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する記憶する。図３は、実施例２に係るネットワークグループテーブルに記憶される情報の例を示す図である。図３に示すように、ネットワークグループテーブル１２は、「ポート番号、ネットワークグループ」として「１、00000011」、「２、00000011」、「３、00000100」、「４、00000100」、「５、00010000」、「６、00100000」などと記憶する。
【００３２】
ここで記憶される「ポート番号」は、通信制御Ｉ／Ｆ部１１が有するポート１〜６を識別する識別子である。「ネットワークグループ」は、通信制御Ｉ／Ｆ部１１が有するポート１〜６各々について、各ポートが接続されるネットワークを識別するネットワーク識別子である。
【００３３】
図３の例の場合、ポート番号＝１を有するポート１は、ネットワークグループ＝00000011に接続されていることを示す。また、ポート番号＝２を有するポート２は、ネットワークグループ＝00000011に接続されていることを示す。ポート番号＝３を有するポート３は、ネットワークグループ＝00000100に接続されていることを示す。ポート番号＝４を有するポート４は、ネットワークグループ＝00001000に接続されていることを示す。ポート番号＝５を有するポート５は、ネットワークグループ＝00010000に接続されていることを示す。ポート番号＝６を有するポート６は、ネットワークグループ＝00100000に接続されていることを示す。つまり、ポート１とポート２は、同一のネットワークに接続されており、他ポートは、別々のネットワークに接続されている。
【００３４】
パーティションテーブル１３は、各ポートを識別するポート番号と、各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する。図４は、実施例２に係るパーティションテーブルに記憶される情報の例を示す図である。図４に示すように、パーティションテーブル１３は、「ポート番号、パーティショングループ」として「１、001101」、「２、110010」、「３、001101」、「４、001101」、「５、110010」、「６、110010」などと記憶する。
【００３５】
ここで記憶される「ポート番号」は、通信制御Ｉ／Ｆ部１１が有するポート１〜６を識別する識別子である。「パーティショングループ」は、通信制御Ｉ／Ｆ部１１が有するポート１〜６各々について、各ポートが属するパーティショングループを識別するパーティション識別子である。
【００３６】
図４の例の場合、ポート番号＝１を有するポート１は、パーティショングループ＝001101に属し、ポート番号＝２を有するポート２は、パーティショングループ＝110010に属していることを示す。また、ポート番号＝３を有するポート３は、パーティショングループ＝001101に属し、ポート番号＝４を有するポート４は、パーティショングループ＝001101に属していることを示す。また、ポート番号＝５を有するポート５は、パーティショングループ＝110010に属し、ポート番号＝６を有するポート６は、パーティショングループ＝110010に属していることを示す。つまり、ポート１、ポート３、ポート４は、同じパーティショングループ＝001101に属し、ポート２、ポート５、ポート６は、同じパーティショングループ＝110010に属している。
【００３７】
ＭＡＣテーブル１４は、ポート番号とポート番号を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する。図５は、実施例２に係るＭＡＣテーブルに記憶される情報の例を示す図である。このＭＡＣテーブル１３は、学習されるたびに情報が登録される。なお、図５左図は、アドレスＡを学習する前の状態であり、図５右図は、アドレスＡを学習した後の状態を示す。また、図２に示したＷは、データを書き込むインタフェースの種別を示し、Ｒは、データを読み出すインタフェースの種別を示す。
【００３８】
図５に示すように、ＭＡＣテーブル１３は、「アドレス、ポート番号」として「Ｃ、３」などと記憶する。ここで記憶される「アドレス」は、装置のＭＡＣアドレスを示し、「ポート番号」は、当該アドレスを宛先とするデータの送信先ポートを示す。例えば、「アドレス＝Ｃ、ポート番号＝１」が記憶される場合、宛先がアドレスＣであるデータは、ポート１を送信先とすることを示す。
【００３９】
制御部１５は、送信元特定部１５ａとネットワーク特定部１５ｂとポート特定部１５ｃと格納制御部１５ｄとを有し、これらによってアドレス学習を実行する制御部である。なお、制御部１５は、制御プログラムや各種の処理手順などを規定したプログラムおよび所要データを格納する内部メモリを有していてもよい。
【００４０】
送信元特定部１５ａは、データが受信された場合に、データの送信元アドレスを抽出する。例えば、送信元特定部１５ａは、アドレスＡを送信元とするデータＡをポート１から受信した場合、データＡのヘッダ等から送信元アドレスＡを抽出する。そして、送信元特定部１５ａは、抽出した送信元アドレスＡおよびデータＡをネットワーク特定部１５ｂに出力する。
【００４１】
ネットワーク特定部１５ｂは、データを受信した場合に、データが受信されたポートが接続されるネットワークグループをネットワークグループテーブル１２から特定する。例えば、ポート１が、アドレスＡを送信元とするデータＡを受信し、送信元特定部１５ａが、抽出した送信元アドレスＡおよび受信したデータＡなどをネットワーク特定部１５ｂに出力した例で説明する。
【００４２】
この場合、ネットワーク特定部１５ｂは、ネットワークグループテーブル１２を参照して、ポート番号１に対応付けられているネットワークグループ＝00000011を特定する。その後、ネットワーク特定部１５ｂは、受信ポート＝ポート番号１、送信元アドレス＝ＡとするデータＡ、ネットワークグループ＝00000011などをポート特定部１５ｃに出力する。
【００４３】
ポート特定部１５ｃは、ネットワーク特定部１５ｂによって特定されたネットワークグループに対応付けてネットワークグループテーブル１２に記憶されるポート番号を特定する。上述した例を用いて説明すると、ポート特定部１５ｃは、受信ポート＝ポート番号１、送信元アドレス＝ＡとするデータＡおよびネットワークグループ＝00000011を、ネットワーク特定部１５ｂから受信する。そして、ポート特定部１５ｃは、ネットワークグループテーブル１２を参照して、受信したネットワークグループ＝00000011に対応付けられて記憶されているポートのうち、受信ポートであるポート番号１以外のポート番号２を特定する。その後、ポート特定部１５ｃは、ポート番号１、ポート番号２、送信元アドレスＡ、データＡ、ネットワークグループ＝00000011などを格納制御部１５ｄに出力する。
【００４４】
格納制御部１５ｄは、ポート特定部１５ｃから受信した送信元アドレス等の情報が未学習である場合に、または、送信元アドレス等の情報が更新されている場合に、受信した情報を学習した上でスイッチング制御部１６に出力する。また、格納制御部１５ｄは、ポート特定部１５ｃから受信した送信元アドレス等の情報が学習済みである場合に、または、送信元アドレス等が更新されていない場合、学習することなく、受信した情報をスイッチング制御部１６に出力する。
【００４５】
例えば、ＭＡＣテーブル１４が、図５左図に示すように「Ｃ、３」を記憶している場合に、格納制御部１５ｄが、ポート番号１、ポート番号２、送信元アドレスＡ、データＡ、ネットワークグループ＝00000011を受信したとする。この場合、格納制御部１５ｄは、ポート番号１および２と、送信元アドレスＡとの対応付けがＭＡＣテーブル１４に格納されていないので、ポート特定部１５ｃから受信したアドレス等の情報が未学習であると判定する。そして、格納制御部１５ｄは、図５右図に示すように、「アドレス、ポート番号」を示す新たなレコードとして、「Ａ、１、２」をＭＡＣテーブル１４に格納する。
【００４６】
その後、格納制御部１５ｄは、ポート特定部１５ｃから受信したデータやアドレスなどの情報をスイッチング制御部１６に送信する。この結果、スイッチング制御部１６は、アドレスＡを宛先とするデータを受信した場合には、ポート１とポート２のうち受信ポートと同一パーティションに属するポートから当該データを転送できる。
【００４７】
別例として、格納制御部１５ｄは、ポート特定部１５ｃから受信したポート番号と送信元アドレスとが対応付けてＭＡＣテーブル１４に格納されている場合には、学習済みと判定する。学習済みと判定した場合、格納制御部１５ｄは、ポート特定部１５ｃから受信したデータやアドレスなどの情報を学習することなく、スイッチング制御部１６に送信する。
【００４８】
また、ＭＡＣテーブル１４が図５左図の状態で、格納制御部１５ｄが、ポート番号３および１、送信元アドレスＣとするデータＣをポート特定部１５ｃから受信したとする。この場合、格納制御部１５ｄは、アドレスＣに対応する情報がＭＡＣテーブル１４に記憶されているが、記憶されているポート番号と受信したポート番号とが異なるので、学習済みの情報を更新すると判定する。すると、格納制御部１５ｄは、既に記憶されている「アドレス、ポート番号」である「Ｃ、３」を「Ｃ、１、３」で上書きする。その後、格納制御部１５ｄは、ポート特定部１５ｃから受信したデータやアドレスなどの情報をスイッチング制御部１６に送信する。
【００４９】
図２に戻り、スイッチング制御部１６は、データのスイッチング処理を実行して、受信されたデータを宛先に転送する。具体的には、スイッチング制御部１６は、受信されたデータの宛先アドレスが学習済みの場合には、学習済みのポートのうち、受信ポートと同一パーティションに属するポートから送信する。また、スイッチング制御部１６は、受信されたデータの宛先アドレスが未学習済みの場合には、同一パーティション内のポートに対してフラッディング処理を実行する。
【００５０】
一例として、スイッチング制御部１６は、宛先がアドレスＡで受信ポートがポート番号４とするデータを格納制御部１５ｄから受信した場合、図５右図に示したＭＡＣテーブル１４を参照し、宛先のアドレスＡに対応付けられたポート番号１と２を特定する。そして、スイッチング制御部１６は、パーティションテーブル１３を参照し、受信ポート番号４が属するパーティショングループ「001101」を特定する。さらに、スイッチング制御部１６は、パーティションテーブル１３を参照し、ＭＡＣテーブル１４から特定した上記ポート番号１が属するパーティショングループ「001101」と、ポート番号２が属するパーティショングループ「110010」とを特定する。
【００５１】
そして、スイッチング制御部１６は、ポート番号１および２のうち、受信ポート番号４と同じパーティショングループ「001101」に属するポート番号１を特定する。その後、スイッチング制御部１６は、ポート番号１のポートから上記データを送信する。
【００５２】
別例として、スイッチング制御部１６は、宛先がアドレスＢで受信ポートがポート番号２とするデータを格納制御部１５ｄから受信した場合、図５右図に示したＭＡＣテーブル１４を参照し、宛先のアドレスＢが記憶されていないので未学習であると判定する。このため、スイッチング制御部１６は、パーティションテーブル１３を参照し、受信ポート番号２が属するパーティショングループ「110010」を特定する。さらに、スイッチング制御部１６は、パーティションテーブル１３を参照し、特定したパーティショングループ「110010」に属するポート番号２、５、６を特定する。その後、スイッチング制御部１６は、特定したポート番号２、５、６のうち、受信ポート番号２以外のポート番号５のポートおよびポート番号６のポートのそれぞれからデータを送信する。
【００５３】
［スイッチによる処理の流れ］
図６は、実施例２に係るスイッチにおける学習処理の流れを示すフローチャートである。図６に示すように、スイッチ１０の送信元特定部１５ａは、データが受信された場合に（ステップＳ１０１Ｙｅｓ）、当該データから送信元アドレスを抽出する（ステップＳ１０２）。このときに、送信元特定部１５ａは、当該データを送信元特定部１５ａに転送した転送元ポートを特定したり、当該データのヘッダ等を参照したりして、当該データが受信されたポートを抽出してもよい。
【００５４】
続いて、ネットワーク特定部１５ｂは、データが受信された受信ポートを抽出し（ステップＳ１０３）、抽出されたポートが接続されるネットワークグループをネットワークグループテーブル１２から特定する（ステップＳ１０４）。
【００５５】
そして、ポート特定部１５ｃは、ネットワーク特定部１５ｂが特定したネットワークグループに対応付けてネットワークグループテーブル１２に記憶されるポート番号のうち、受信ポート以外のポートを特定する（ステップＳ１０５）。
【００５６】
その後、格納制御部１５ｄは、受信されたデータの送信元アドレスが学習済みであるか否かかつ学習内容に変更がないか否かを判定する（ステップＳ１０６）。そして、格納制御部１５ｄは、学習済みでない又は学習内容に変更があると判定した場合（ステップＳ１０６否定）、送信元アドレスと各種ポート番号とを学習する（ステップＳ１０７）。
【００５７】
一方、格納制御部１５ｄは、学習済みであるかつ学習内容に変更がないと判定した場合（ステップＳ１０６肯定）、ステップＳ１０７を実行することなく、ステップＳ１０８を実行する。
【００５８】
その後、スイッチング制御部１６は、スイッチング処理を実行して、データを宛先に送信する（ステップＳ１０８）。例えば、スイッチング制御部１６は、スイッチ１０が受信したデータの宛先アドレスが学習済みである場合には、ＭＡＣテーブル１４から該当するポート特定し、特定したポートのうち受信ポートと同一パーティションに属するポートから当該データを送信する。また、スイッチング制御部１６は、スイッチ１０が受信したデータの宛先アドレスが未学習である場合には、フラッディング処理によって当該データを送信する。
【００５９】
［実施例２による効果］
実施例２によれば、スイッチ１０は、アドレスを学習する際には、受信ポート以外にも、受信ポートと同一ネットワークに接続される他ポートとを対応付けて学習することができる。したがって、スイッチ１０は、受信ポートが属するパーティションとは異なるパーティションに属するポートにおいて、学習済みのアドレスを宛先とするデータを受信した場合であっても、送信先ポートを特定できるので、フラッディング処理を実行しない。この結果、フラッディングを防止した効率的なデータ中継処理を実行できる。
【実施例３】
【００６０】
ところで、実施例２では、スイッチ１０が、受信ポートとともに、受信ポートと同一ネットワークに接続される他ポートとを対応付けて学習する例について説明したが、これに限定されるものではない。実施例３では、スイッチが、受信ポートとともに、受信ポートと同一パーティションに属するポートと同一ネットワークに属するポートを学習する例について説明する。なお、スイッチの接続関係は、図１と同様とする。実施例３では、スイッチの構成、スイッチによる処理の流れ、実施例３による効果を順に説明する。
【００６１】
［スイッチの構成］
図７は、実施例３に係るスイッチの構成を示すブロック図である。図７に示すように、スイッチ２０は、通信制御Ｉ／Ｆ部２１、ネットワークグループテーブル２２、パーティションテーブル２３、ＭＡＣテーブル２４、制御部２５、スイッチング制御部２６を有する。
【００６２】
なお、制御部２５や制御部２５が有する各部等は、集積回路や電子回路である。また、ネットワークグループテーブル２２、パーティションテーブル２３、ＭＡＣテーブル２４は、半導体素子やハードディスクなどの記憶装置である。
【００６３】
通信制御Ｉ／Ｆ部２１は、実施例２と同様、ポート番号１〜６各々が割り当てられたポート１〜６を有し、他の装置との間の通信を制御するインタフェースである。
【００６４】
ネットワークグループテーブル２２は、各ポートを識別するポート番号と、各ポートが接続されるネットワークを識別するネットワーク識別子とを対応付けて記憶する。なお、ネットワークグループテーブル２２が記憶する情報は、実施例２で説明した図３と同様であるので、ここでは詳細な説明を省略する。
【００６５】
パーティションテーブル２３は、各ポートを識別するポート番号と、各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する。なお、パーティションテーブル２３が記憶する情報は、実施例２で説明した図４と同様であるので、ここでは詳細な説明を省略する。
【００６６】
ＭＡＣテーブル２４は、ポート番号とポート番号を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する。図８は、実施例３に係るＭＡＣテーブルに記憶される情報の例を示す図である。なお、図８左図は、アドレスＢを学習する前の状態であり、図８右図は、アドレスＢを学習した後の状態を示す。つまり、ＭＡＣテーブル２４は、学習されるたびに情報が登録される。図８に示すように、ＭＡＣテーブル２４は、「アドレス、ポート番号」として「Ｃ、３」などと記憶する。ここで記憶される「アドレス」および「ポート番号」は、実施例２で説明した図５と同様なので、詳細な説明は省略する。
【００６７】
制御部２５は、送信元特定部２５ａと第１ポート特定部２５ｂと第２ポート特定部２５ｃと格納制御部２５ｄとを有し、これらによってアドレスを学習する制御部である。なお、制御部２５は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有していてもよい。
【００６８】
送信元特定部２５ａは、データが受信された場合に、データの送信元アドレスを抽出する。なお、送信元特定部２５ａが実行する各種処理は、実施例２で説明した送信元特定部１５ａと同様であるので、詳細な説明は省略する。
【００６９】
第１ポート特定部２５ｂは、受信ポートのポート番号に対応付けてパーティションテーブル２３に記憶されるパーティショングループを特定する。そして、第１ポート特定部２５ｂは、特定したパーティショングループに対応付けてパーティションテーブル２３に記憶されるポート番号のうち、受信ポートのポート番号とは異なるポート番号を特定する。
【００７０】
例えば、ポート４が、アドレスＢを送信元とするデータＢを受信し、送信元特定部２５ａが、当該データＢを第１ポート特定部２５ｂに出力した例で説明する。この場合、第１ポート特定部２５ｂは、パーティションテーブル２３を参照し、受信ポート４に対応付けて記憶されるパーティショングループとして「001101」を特定する。続いて、第１ポート特定部２５ｂは、パーティションテーブル２３を参照し、ポート番号４以外でパーティショングループ「001101」に対応付けられたポート番号１および３を特定する。その後、第１ポート特定部２５ｂは、受信ポート＝ポート番号４、アドレスＢを送信元とするデータＢ、パーティショングループ＝001101、特定したポート番号＝ポート番号１およびポート番号３を第２ポート特定部２５ｃに出力する。
【００７１】
第２ポート特定部２５ｃは、第１ポート特定部２５ｂが特定したポート番号に対応付けられてネットワークグループテーブル２２に記憶されるネットワークグループを特定する。そして、第２ポート特定部２５ｃは、特定したネットワークグループと同じネットワークグループに対応付けてネットワークグループテーブル２２に格納されるポート番号を特定する。さらに、第２ポート特定部２５ｃは、特定したポート番号のうち、第１ポート特定部２５ｂによって特定されたパーティショングループとは異なるパーティショングループに対応付けてパーティションテーブル２３に記憶されるポート番号を特定する。
【００７２】
上述したデータＢを例にして説明すると、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、第１ポート特定部２５ｂが特定したポート１に対応付けられたネットワークグループ「00000011」を特定する。同様に、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、第１ポート特定部２５ｂが特定したポート３に対応付けられたネットワークグループ「00000100」を特定する。
【００７３】
そして、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、ポート番号１に対応するネットワークグループ「00000011」と同じネットワークグループに接続されるポート番号２を特定する。また、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、ポート番号３に対応するネットワークグループ「00000100」と同じネットワークグループに接続されるポートが存在しないと特定する。
【００７４】
その後、第２ポート特定部２５ｃは、パーティションテーブル２３を参照し、特定したポート番号２に対応付けられているパーティショングループ「110010」を特定する。そして、第２ポート特定部２５ｃは、第１ポート特定部２５ｂが特定したパーティショングループが「001101」であり、ポート番号２に対応付けられているパーティショングループが「110010」であることより、ポート番号２を学習対象として決定する。その後、第２ポート特定部２５ｃは、ポート番号２、ポート番号４、送信元アドレスＢ、データＢを格納制御部２５ｄに出力する。
【００７５】
格納制御部２５ｄは、第２ポート特定部２５ｃから受信した送信元アドレス等の情報が未学習である場合に、または、送信元アドレス等の情報が更新されている場合に、受信した情報を学習した上でスイッチング制御部２６に出力する。また、格納制御部２５ｄは、第２ポート特定部２５ｃから受信した送信元アドレス等の情報が学習済みである場合に、かつ、送信元アドレス等の情報が更新されていない場合に、学習することなく、受信した情報をスイッチング制御部２６に出力する。
【００７６】
例えば、ＭＡＣテーブル２４が、図８左図に示すように「Ｃ、３」を記憶している場合に、格納制御部２５ｄが、ポート番号４、ポート番号２、送信元アドレスＢ、データＢを第２ポート特定部２５ｃから受信したとする。この場合、格納制御部２５ｄは、ポート番号４とポート番号２とアドレスＢの対応付けがＭＡＣテーブル２４に記憶されていないので、未学習であると判定する。そして、格納制御部２５ｄは、図８右図に示すように、「アドレス、ポート番号」を示す新たなレコードとして、「Ｂ、２、４」をＭＡＣテーブル２４に格納する。その後、格納制御部２５ｄは、第２ポート特定部２５ｃから受信したデータやアドレスなどの情報をスイッチング制御部２６に送信する。
【００７７】
別例として、格納制御部２５ｄは、第２ポート特定部２５ｃから受信したポート番号と送信元アドレスとが対応付けてＭＡＣテーブル２４に格納されている場合には、学習済みと判定する。学習済みと判定した場合、格納制御部２５ｄは、第２ポート特定部２５ｃから受信したデータやアドレスなどの情報を学習することなく、スイッチング制御部２６に送信する。
【００７８】
また、ＭＡＣテーブル２４が図８左図の状態で、格納制御部２５ｄが、ポート番号３、ポート番号１、送信元アドレスＣであるデータＣを第２ポート特定部２５ｃから受信したとする。この場合、格納制御部２５ｄは、アドレスＣに対応する情報がＭＡＣテーブル２４に記憶されているが、記憶されているポート番号と受信したポート番号とが異なるので、学習済みの情報を更新すると判定する。すると、格納制御部２５ｄは、既に記憶されている「アドレス、ポート番号」である「Ｃ、３」を「Ｃ、１、３」で上書きする。その後、格納制御部２５ｄは、第２ポート特定部２５ｃから受信したデータやアドレスなどの情報をスイッチング制御部２６に送信する。
【００７９】
スイッチング制御部２６は、データのスイッチング制御を実行して、受信されたデータを宛先に転送する。なお、スイッチング制御部２６が実行する具体的な処理は、実施例２で説明したスイッチング制御部１６と同様であるので、詳細な説明は省略する。
【００８０】
［スイッチによる処理の流れ］
図９は、実施例３に係るスイッチにおける学習処理の流れを示すフローチャートである。図９に示すように、スイッチ２０の送信元特定部２５ａは、データが受信された場合に（ステップＳ２０１Ｙｅｓ）、当該データから送信元アドレスを抽出する（ステップＳ２０２）。
【００８１】
そして、第１ポート特定部２５ｂは、当該データを受信したポートを抽出し（ステップＳ２０３）、抽出したポートが属するパーティショングループをパーティションテーブル２３から特定する（ステップＳ２０４）。
【００８２】
続いて、第１ポート特定部２５ｂは、特定したパーティショングループに対応付けてパーティションテーブル２３が記憶するポート番号のうち、受信ポートのポート番号とは異なるポート番号を特定する（ステップＳ２０５）。
【００８３】
そして、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、第１ポート特定部２５ｂが特定したポート番号に対応付けられたネットワークグループを特定する（ステップＳ２０６）。
【００８４】
続いて、第２ポート特定部２５ｃは、ネットワークグループテーブル２２を参照し、ステップＳ２０５で特定したネットワークグループと同じネットワークグループに属するポート番号を特定する（ステップＳ２０７）。
【００８５】
さらに、第２ポート特定部２５ｃは、パーティションテーブル２３を参照し、ステップＳ２０７で特定したポート番号のうち、ステップＳ２０５で特定されたパーティショングループとは異なるグループに属するポート番号を特定する（ステップＳ２０８）。
【００８６】
その後、格納制御部２５ｄは、受信されたデータの送信元アドレスが未学習であるか否か、かつ、学習内容に変更がないか否かを判定する（ステップＳ２０９）。そして、格納制御部２５ｄは、学習済みでない又は学習内容に変更があると判定した場合（ステップＳ２０９否定）、アドレスおよびポート番号を学習する（ステップＳ２１０）。すなわち、格納制御部２５ｄは、ステップＳ２０２で抽出されたアドレスと、ステップＳ２０３で抽出されたポート番号と、ステップＳ２０８で特定されたポート番号とを対応付けてＭＡＣテーブル２４に格納する。
【００８７】
一方、格納制御部２５ｄは、学習済みであり、かつ学習内容に変更がないと判定した場合（ステップＳ２０９肯定）、ステップＳ２１０を実行することなく、ステップＳ２１１を実行する。その後、スイッチング制御部２６は、スイッチング処理を実行して、データを宛先に送信する（ステップＳ２１１）。
【００８８】
［実施例３による効果］
従来のパーティション情報の学習手法では、パーティションごとにＭＡＣテーブルを作成したり、ＭＡＣテーブルにパーティション情報を格納したりすることになる。例えば、スイッチが４つのパーティションを有する場合には、ＭＡＣテーブルの各テーブル（エントリ）に２ビットの情報を持たせることになる。
【００８９】
この結果、容量の多いＭＡＣテーブルを用意したり、システムボード上に容量の大きいＭＡＣテーブルを設置する領域を設けたりすることになる。この結果、従来のパーティション情報の学習手法では、ハードウェアのコストが増大する。さらに、同一のアドレスに対してもパーティションごとに学習するので、テーブルエントリを多く消費し、使用効率が低下する。
【００９０】
これに対して、実施例３によれば、スイッチ２０は、アドレスを学習する際には、受信ポート以外にも、次のようなポートを学習できる。すなわち、スイッチ２０は、受信ポートと同一パーティションに属するポートと同一ネットワークに接続されるとともに、受信ポートとは異なるパーティションに属するポートを対応付けて学習することができる。したがって、スイッチ２０は、受信ポートが属するパーティションとは異なるパーティションに属するポートにおいて、学習済みのアドレスを宛先とするデータを受信した場合であっても、送信先ポートを特定できるので、フラッディング処理を実行しない。この結果、フラッディングを防止した効率的なデータ中継処理を実行できる。
【００９１】
また、スイッチ２０では、アドレスを学習する際に、パーティション情報を学習することもなく、パーティションごとに別々のテーブルを設けることもない。したがって、パーティション情報やビット情報を設けることもなく、エントリ数の増加も防止でき、ハードウェアのコストを抑えることができる。
【実施例４】
【００９２】
ところで、開示するスイッチは、実施例２で説明した手法と実施例３で説明した手法を併用することもできる。実施例４では、実施例２で説明した手法と実施例３で説明した手法とを併用した学習例を説明する。なお、実施例４に係るスイッチは、例えば実施例３で説明したスイッチ２０と同様の構成で実現できるので、ここでは詳細な説明は省略する。したがって、実施例４では、図７に示したスイッチ２０を例にして説明する。
【００９３】
図１０は、実施例４に係るスイッチにおける学習処理の流れを示すフローチャートである。図１０に示すように、スイッチ２０の送信元特定部２５ａは、データが受信された場合に（ステップＳ３０１Ｙｅｓ）、当該データから送信元アドレスを抽出する（ステップＳ３０２）。また、送信元特定部２５ａは、当該データが受信された受信ポートを抽出する（ステップＳ３０３）。
【００９４】
そして、第１ポート特定部２５ｂは、送信元特定部２５ａによって抽出された受信ポートが接続されるネットワークグループを、ネットワークグループテーブル２２から特定する（ステップＳ３０４）。続いて、第２ポート特定部２５ｃは、特定されたネットワークグループに対応付けてネットワークグループテーブル１２が記憶するポート番号のうち、送信元特定部２５ａによって抽出された受信ポート以外のポートを特定する（ステップＳ３０５）。
【００９５】
その後、格納制御部２５ｄは、ステップＳ３０１で抽出された送信元アドレスと、ステップＳ３０２で抽出された受信ポートのポート番号と、ステップＳ３０５で抽出されたポート番号とを対応付けた学習対象情報（組１）を生成する（ステップＳ３０６）。
【００９６】
さらに、スイッチ２０は、図９で説明したステップＳ２０４〜ステップＳ２０８までと同様の処理であるステップＳ３０７〜ステップＳ３１１を実行する。つまり、スイッチ２０は、受信ポートと同一パーティショングループに属するポートを特定し、特定したポートと同一ネットワークグループに属しかつ受信ポートと異なるパーティショングループに属するポートを特定する。この結果、スイッチ２０は、送信元アドレスと、受信ポートのポート番号と、ステップＳ３０７〜ステップＳ３１１で特定した上記ポートのポート番号とを対応付けた学習対象情報（組２）を生成する（ステップＳ３１２）。
【００９７】
その後、格納制御部２５ｄは、ステップＳ３０６で生成した学習対象情報（組１）とステップＳ３１２で生成した学習対象情報（組２）とをマージする（ステップＳ３１３）。すなわち、格納制御部２５ｄは、送信元アドレスと、組１が有するポート番号と、組２が有するポート番号とを対応付けた学習対象情報（組３）を生成する。
【００９８】
そして、格納制御部２５ｄは、学習対象情報（組３）が学習済みであるかつ学習内容に変更がないかを判定する（ステップＳ３１４）。つまり、格納制御部２５ｄは、学習対象情報（組３）が有する送信元アドレスとポート番号と対応付けが、ＭＡＣテーブル２４に格納されているか否かを判定する。
【００９９】
格納制御部２５ｄは、学習済みでない又は学習内容に変更があると判定した場合（ステップＳ３１４否定）、学習対象情報（組３）を学習する（ステップＳ３１５）。その後、スイッチング制御部２６は、スイッチング処理を実行して、データを宛先に送信する（ステップＳ３１６）。一方、格納制御部２５ｄは、学習済みであり、かつ学習内容に変更がないと判定した場合（ステップＳ３１４肯定）、ステップＳ３１５を実行することなく、ステップＳ３１６を実行する。
【０１００】
実施例４によれば、スイッチ２０は、アドレスを学習する際に、受信ポートと、受信ポートと同一ネットワークに接続される他ポートとを対応付けて学習する。さらに、スイッチ２０は、受信ポートと同一パーティションに属するポートと同一ネットワークに接続されるとともに、受信ポートとは異なるパーティションに属するポートを対応付けて学習することができる。この結果、１度の学習でアドレスとポートを多く対応付けることができるので、その後のスイッチング処理では、実施例２の効果と実施例３の効果を同時に実現することができる。
【実施例５】
【０１０１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１０２】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３〜図５、図８等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１０３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えばネットワーク特定部１５ｂとポート特定部１５ｃとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１０４】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１０５】
図１１は、アドレス学習プログラムを実行するコンピュータシステムの例を示す図である。図１１に示すように、コンピュータシステム１００は、バス１００ａにＣＰＵ１０５、ＲＯＭ（Read  Only  Memory）１０４、ＲＡＭ（Random  Access  Memory）１０１が接続される。また、コンピュータシステム１００は、バス１００ａにＮＩＣ（Network  Interface  Card）１０２、ＨＤＤ（Hard  Disk  Drive）１０３が接続されている。また、ＨＤＤ１０３には、図２や図６に示した各テーブルと同様の機能を有するネットワークテーブルグループ１０３ａ、ＭＡＣテーブル１０３ｂ、パーティションテーブル１０３ｃが設けられる。
【０１０６】
ＲＯＭ１０４は、アドレス学習プログラム１０４ａを保持する。記録媒体の例としてＲＯＭ１０４を例に挙げたが、ＨＤＤ、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【０１０７】
ＣＰＵ１０５は、アドレス学習プログラム１０４ａを読み出して実行することで、図２や図６で説明した各機能を実行するアドレス学習プロセス１０５ａを動作させる。すなわち、アドレス学習プロセス１０５ａは、制御部１５や制御部２５と同様の機能を実行する。また、アドレス学習プロセス１０５ａは、スイッチング制御部１６やスイッチング制御部２６と同様の機能も実行することもできる。このようにコンピュータシステム１００は、ＲＯＭ１０４からプログラムを読み出して実行することでアドレス学習方法を実行する通信処理装置として動作する。
【０１０８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０９】
（付記１）ポート識別子と、前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部と、
前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部と、
データが受信された場合に、前記データが受信された受信ポートのポート識別子に対応付けて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定された前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される、前記受信ポート以外のポート識別子を特定し、特定された前記ポート識別子と、前記受信ポートのポート識別子と、前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納する制御部と
を有することを特徴とする通信処理装置。
【０１１０】
（付記２）前記ポート識別子と、前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部をさらに有し、
前記制御部は、前記データが受信された場合に、前記受信ポートのポート識別子に対応付けて前記第３記憶部に記憶されるパーティション識別子を特定し、
特定されたパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち、前記受信ポートのポート識別子とは異なるポート識別子を特定し、
特定されたポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定されたネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定されたポート識別子をさらに対応付けて前記第２記憶部に格納することを特徴とする付記１に記載の通信処理装置。
【０１１１】
（付記３）前記制御部は、前記データの送信元のアドレス情報が前記第２記憶部に記憶されていない場合、または、前記データの送信元のアドレス情報に対応付けられて前記第２記憶部に記憶されるポート番号が前記特定されたポート番号と異なる場合に、前記送信元のアドレス情報と前記特定されたポート番号とを対応付けて前記第２記憶部に格納することを特徴とする付記１または２に記載の通信処理装置。
【０１１２】
（付記４）前記制御部は、前記データが受信された場合に、前記データの宛先のアドレス情報が前記第２記憶部に記憶されているか否かを判定し、
記憶されていると判定された場合に、前記宛先のアドレス情報に対応付けられたポート識別子を前記第２記憶から抽出し、
抽出されたポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出するとともに、前記受信ポートのポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出し、
抽出されたポート識別子を有するポートのうち前記受信ポートのポート識別子に対応付けられたパーティション識別子と同一のパーティションに属するポート識別子を有するポートから、前記データを送信することを特徴とする付記１〜３のいずれか一つに記載の通信処理装置。
【０１１３】
（付記５）前記制御部は、前記データの宛先のアドレス情報が前記第２記憶部に記憶されていないと判定された場合に、前記データが受信されたポートと同一のパーティションに属するポート識別子を前記第３記憶部から特定し、特定したポート識別子を有するポートから前記データを送信することを特徴とする付記４に記載の通信処理装置。
【０１１４】
（付記６）ポート識別子と、前記ポート識別子によって特定されるポートが接続されるネットワークを識別するネットワーク識別子との対応関係を、複数のポート識別子について記憶する第１記憶部と、
前記ポート識別子と、前記ポート識別子を有するポートを介して接続される装置のアドレス情報とを対応付けて記憶する第２記憶部と、
前記ポート識別子と、前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部と、
データが受信された場合に、前記受信ポートのポート識別子に対応付けて前記第３記憶部に記憶されるパーティション識別子を特定し、特定されたパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、特定された前記ポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定された前記ネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定されたパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、特定された前記ポート識別子と前記データの送信元のアドレス情報とを対応付けて前記第２記憶部に格納する制御部と、
を有することを特徴とする通信処理装置。
【０１１５】
（付記７）コンピュータに、
データが受信された場合に、ポート識別子と前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を複数のポート識別子について記憶する第１記憶部から、前記データが受信された受信ポートのポート識別子に対応付けられたネットワーク識別子を特定し、
特定した前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される前記受信ポート以外のポート識別子を特定し、
特定した前記ポート識別子と前記受信ポートのポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納する、
処理を実行させることを特徴とするアドレス学習プログラム。
【０１１６】
（付記８）前記コンピュータに、
前記データが受信された場合に、前記ポート識別子と前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、
特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち、前記受信ポートのポート識別子とは異なるポート識別子を特定し、
特定したポート識別子に対応付けられて前記第１記憶部に記憶されるネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定する処理をさらに実行させ、
前記第２記憶部に格納する処理として、
特定したポート識別子をさらに対応付けて前記第２記憶部に格納する処理を実行させることを特徴とする付記７に記載のアドレス学習プログラム。
【０１１７】
（付記９）前記第２記憶部に格納する処理として、
前記データの送信元のアドレス情報が前記第２記憶部に記憶されていない場合、または、前記データの送信元のアドレス情報に対応付けられて前記第２記憶部に記憶されるポート番号が前記特定されたポート番号と異なる場合に、前記送信元アドレスと前記特定されたポート番号とを対応付けて前記第２記憶部に格納する処理を実行させることを特徴とする付記７または８に記載のアドレス学習プログラム。
【０１１８】
（付記１０）前記コンピュータに、
前記データが受信された場合に、前記データの宛先アドレスが前記第２記憶部に記憶されているか否かを判定し、
前記第２記憶部に記憶されていると判定した場合に、前記宛先アドレスに対応付けられたポート識別子を前記第２記憶部から抽出し、
抽出したポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出するとともに、前記受信ポートのポート識別子に対応付けられたパーティション識別子を前記第３記憶部から抽出し、
抽出したポート識別子を有するポートのうち、前記受信ポートのポート識別子に対応付けられたパーティション識別子と同一のパーティションに属するポート識別子を有するポートから、前記データを送信する処理をさらに実行させることを特徴とする付記７〜９のいずれか一つに記載のアドレス学習プログラム。
【０１１９】
（付記１１）前記送信する処理として、
記憶されていないと判定した場合に、前記データが受信されたポートと同一のパーティションに属するポート識別子を前記第３記憶部から特定し、特定したポート識別子を有するポートから前記データを送信する処理を実行させることを特徴とする付記１０に記載のアドレス学習プログラム。
【０１２０】
（付記１２）コンピュータに、
データが受信された場合に、各ポートを識別するポート識別子と前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から、前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、
前記ポート識別子と前記各ポートが接続されるネットワークを識別するネットワーク識別子とを対応付けて記憶する第１記憶部から、前記特定したポート識別子に対応付けられたネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定したポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納する、
処理を実行させることを特徴とするアドレス学習プログラム。
【０１２１】
（付記１３）コンピュータによって実行されるアドレス学習方法であって、
データが受信された場合に、ポート識別子と前記ポート識別子によって特定されるポートに接続されるネットワークを識別するネットワーク識別子との対応関係を複数のポート識別子について記憶する第１記憶部から、前記データが受信された受信ポートのポート識別子に対応付けられたネットワーク識別子を特定し、
特定した前記ネットワーク識別子に対応付けて前記第１記憶部に記憶される前記受信ポート以外のポート識別子を特定し、
特定した前記ポート識別子と前記受信ポートのポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納する、
ことを特徴とするアドレス学習方法。
【０１２２】
（付記１４）コンピュータによって実行されるアドレス学習方法であって、
データが受信された場合に、各ポートを識別するポート識別子と前記各ポートが属するパーティションを識別するパーティション識別子とを対応付けて記憶する第３記憶部から、前記受信ポートのポート識別子に対応付けられたパーティション識別子を特定し、特定したパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子のうち前記受信ポートのポート識別子とは異なるポート識別子を特定し、
前記ポート識別子と前記各ポートが接続されるネットワークを識別するネットワーク識別子とを対応付けて記憶する第１記憶部から、前記特定したポート識別子に対応付けられたネットワーク識別子を特定し、特定したネットワーク識別子と同じネットワーク識別子に対応付けて前記第１記憶部に格納されるとともに、前記特定したパーティション識別子とは異なるパーティション識別子に対応付けて前記第３記憶部に記憶されるポート識別子を特定し、
特定したポート識別子と前記データの送信元のアドレス情報とを対応付けて第２記憶部に格納する、
ことを特徴とするアドレス学習方法。
【符号の説明】
【０１２３】
１ａ、１０、２０  スイッチ
１１、２１  通信制御Ｉ／Ｆ部
１２、２２  ネットワークグループテーブル
１３、２３  パーティションテーブル
１４、２４  ＭＡＣテーブル
１５、２５  制御部
１５ａ、２５ａ  送信元特定部
１５ｂ  ネットワーク特定部
１５ｃ  ポート特定部
１５ｄ  ２５ｄ  格納制御部
１６、２６  スイッチング制御部
２５ｂ  第１ポート特定部
２５ｃ  第２ポート特定部
【図１】
0005594171.tif 000002
【図２】
0005594171.tif 000003
【図３】
0005594171.tif 000004
【図４】
0005594171.tif 000005
【図５】
0005594171.tif 000006
【図６】
0005594171.tif 000007
【図７】
0005594171.tif 000008
【図８】
0005594171.tif 000009
【図９】
0005594171.tif 000010
【図１０】
0005594171.tif 000011
【図１１】
0005594171.tif 000012
【図１２】
0005594171.tif 000013