(57)【特許請求の範囲】
【請求項１】
パケット中継装置であって、
物理ポートを有する複数のパケット処理部と、
前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する配布先決定部と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布するパケット配布部と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートのうち、前記マルチキャストパケットを出力するための出力ポートを決定する出力ポート決定部と、
前記出力ポートから前記マルチキャストパケットを出力するパケット出力部と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する前記物理ポートから前記マルチキャストパケットが出力されたか否かを判定する出力判定部と、
を備え、
前記配布先決定部は、前記出力判定部による判定の結果、前記配布先パケット処理部から前記マルチキャストパケットが出力されなかったと判定された場合に、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記複数のパケット処理部のうち、前記マルチキャストパケットが出力されなかった前記配布先パケット処理部を除く他のパケット処理部の中から、前記配布先パケット処理部を決定する、パケット中継装置。
【請求項２】
請求項１に記載のパケット中継装置において、さらに、
前記フロー情報と、前記配布先パケット処理部である前記パケット処理部とを対応付け、前記配布先決定部によって前記配布先パケット処理部を決定する際に参照される配布先決定テーブルを備え、
前記配布先決定テーブルは、デフォルトのエントリとして、前記フロー情報としていずれの値でも構わない旨を示す情報と、前記配布先パケット処理部として所定のパケット処理部とを対応付けたエントリを有し、
前記配布先決定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されなかったと判定された場合、前記配布先決定テーブルにおける新たなエントリであって、前記フロー情報として、前記出力されなかったマルチキャストパケットの前記フロー情報が設定され、前記配布先パケット処理部として、前記デフォルトのエントリに設定されている前記配布先パケット処理部から前記マルチキャストパケットを出力しなかった前記配布先パケット処理部を除いた新たなエントリを、前記配布先決定テーブルに追加し、
前記フロー情報は、送信元アドレスと、宛先アドレスと、プロトコル番号と、送信元ポート番号と、宛先ポート番号とのうち、少なくとも１つの情報に基づき得られるハッシュ値と、送信元アドレスと、宛先アドレスとから成る、パケット中継装置。
【請求項３】
パケット中継装置であって、
物理ポートを有する複数のパケット処理部と、
前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する配布先決定部と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布するパケット配布部と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記マルチキャストパケットを出力するための出力ポートを特定すると共に、前記出力ポートが前記論理ポートである場合に、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートの中から１つの物理ポートを前記出力ポートとして特定する物理ポート特定処理を実行する出力ポート特定部と、
前記出力ポートから前記マルチキャストパケットを出力するパケット出力部と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かを判定する出力判定部と、
を備え、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された前記物理ポートを、前記出力ポートとして特定する、パケット中継装置。
【請求項４】
請求項３に記載のパケット中継装置において、さらに、
前記フロー情報と、前記論理ポートと、前記論理ポートに含まれる前記物理ポートとを対応付けた出力ポートテーブルを備え、
前記出力ポートテーブルは、デフォルトのエントリとして、前記フロー情報としていずれの値でも構わない旨を示す情報と、前記論理ポートとして所定の論理ポートと、前記物理ポートとして前記所定の論理ポートを構成する全ての物理ポートとを対応付けたエントリを有し、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力ポートテーブルにおける第１の新たなエントリであって、前記フロー情報として前記出力されたマルチキャストパケットの前記フロー情報が設定され、前記論理ポートとして前記マルチキャストパケットが出力された物理ポートを含む論理ポートが設定され、前記物理ポートとして、前記マルチキャストパケットが出力された物理ポートのみが設定された第１の新たなエントリを、前記出力ポートテーブルに追加し、
前記出力ポート特定部は、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記出力ポートテーブルを参照して、前記第１の新たなエントリに基づき、前記出力ポートを特定し、
前記フロー情報は、送信元アドレスと、宛先アドレスと、プロトコル番号と、送信元ポート番号と、宛先ポート番号とのうち、少なくとも１つの情報に基づき得られるハッシュ値と、送信元アドレスと、宛先アドレスとから成る、パケット中継装置。
【請求項５】
請求項３または請求項４に記載のパケット中継装置において、さらに、
前記マルチキャストパケットのパケット長が、前記出力ポートに予め設定されている所定のＭＴＵ長制限を満たしているか否かを判定するパケット長判定部を備え、
前記パケット出力部は、前記マルチキャストパケットのパケット長が前記所定のＭＴＵ長制限を満たしていない場合には、前記マルチキャストパケットを前記出力ポートから出力せず、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有し、かつ、前記出力されたマルチキャストパケットのパケット長と同じパケット長のマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された物理ポートを、前記出力ポートとして特定する、パケット中継装置。
【請求項６】
請求項３ないし請求項５のいずれかに記載のパケット中継装置において、さらに、
前記フロー情報と、前記論理ポートと、前記論理ポートに含まれる前記物理ポートとを対応付けた出力ポートテーブルを備え、
前記出力ポートテーブルは、デフォルトのエントリとして、前記フロー情報としていずれの値でも構わない旨を示す情報と、前記論理ポートとして所定の論理ポートと、前記物理ポートとして前記所定の論理ポートを構成する全ての物理ポートとを対応付けたエントリを有し、
前記複数のパケット処理部は、それぞれ、前記配布先決定部と、前記出力ポート特定部と、前記パケット出力部と、前記出力判定部と、前記出力ポートテーブルとを有し、
各パケット処理部の前記出力ポート特定部は、該パケット処理部の前記出力判定部による判定の結果、前記マルチキャストパケットが出力されなかったと判定された場合に、該パケット処理部の前記出力ポートテーブルにおける第２の新たなエントリであって、前記フロー情報として前記出力されなかったマルチキャストパケットの前記フロー情報が設定され、前記論理ポートとして、いずれの論理ポートも該当しない旨が設定され、前記物理ポートとしていずれの物理ポートも該当しない旨が設定された第２の新たなエントリを、該パケット処理部の前記出力ポートテーブルに追加し、
各パケット処理部の前記出力ポート特定部は、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、該パケット処理部の前記出力ポートテーブルを参照して、前記第２の新たなエントリに基づき、前記出力ポートを特定しない、パケット中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット中継装置に関する。
【背景技術】
【０００２】
従来から、レイヤ３（ＯＳＩ参照モデルにおける第３層）のパケットを中継するために、レイヤ３スイッチやルーターなどが用いられている。これらレイヤ３スイッチやルーターなどのパケット中継装置として、リンクアグリゲーションと呼ばれる機能を有するパケット中継装置が知られている。リンクアグリゲーション機能は、パケット中継装置が備える複数の物理ポートを１つの論理ポートとして扱うことにより、帯域の拡大や冗長性の確保を実現する。
【０００３】
リンクアグリゲーション機能を有するパケット中継装置として、複数の物理ポートを有する複数のパケット処理部を備え、マルチキャストパケットを受信した場合に、各パケット処理部にパケットを配布し、各パケット処理部においてパケットを出力する物理ポートを決定してパケットを出力するパケット中継装置が提案されている（特許文献１）。このパケット中継装置では、複数のパケット処理部が有する複数の物理ポートが１つの論理ポートとして扱われ、各パケット処理部において、論理ポートを構成する複数の物理ポートの中から１つの物理ポートが出力ポートとして決定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２０４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した各パケット処理部においてパケットを出力する物理ポートを決定する技術によると、各パケット処理部において、他のパケット処理部が有する物理ポートが出力ポートとして決定された場合には、自らの有する物理ポートからパケットが出力されないため、受信したパケットが廃棄される。したがって、最終的にパケットを出力しないパケット処理部においても、経路検索や出力ポートの決定など無駄な処理が行われるため、各パケット処理部の処理能力を浪費してしまうという問題があった。
【０００６】
なお、上記問題は、レイヤ３のパケットを中継するパケット中継装置に限らず、レイヤ２のフレームを中継するパケット中継装置においても発生し得る。
【０００７】
本発明は、パケット中継装置が有するパケット処理部の処理能力の浪費を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００９】
［適用例１］パケット中継装置であって、
物理ポートを有する複数のパケット処理部と、
前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する配布先決定部と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布するパケット配布部と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートのうち、前記マルチキャストパケットを出力するための出力ポートを決定する出力ポート決定部と、
前記出力ポートから前記マルチキャストパケットを出力するパケット出力部と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する前記物理ポートから前記マルチキャストパケットが出力されたか否かを判定する出力判定部と、
を備え、
前記配布先決定部は、前記出力判定部による判定の結果、前記配布先パケット処理部から前記マルチキャストパケットが出力されなかったと判定された場合に、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記複数のパケット処理部のうち、前記マルチキャストパケットが出力されなかった前記配布先パケット処理部を除く他のパケット処理部の中から、前記配布先パケット処理部を決定する、パケット中継装置。
【００１０】
適用例１のパケット中継装置では、マルチキャストパケットが出力されなかった場合に、同じフロー情報を有するマルチキャストパケットに対して、マルチキャストパケットが出力されなかったパケット処理部を除いた他のパケット処理部の中から、配布先パケット処理部が決定されるので、かかるマルチキャストパケットが出力されないパケット処理部に対するマルチキャストパケットの配布を抑制できる。したがって、マルチキャストパケットを出力しないパケット処理部において、マルチキャストパケットの受信や出力ポートの決定などの無駄な処理の実行を抑制でき、処理能力の浪費を抑制できる。加えて、パケットが出力されないことをフィードバックしてマルチキャストパケットの配布先を自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力されない物理ポートが変わった場合においても、自動的に適切な配布先にマルチキャストパケットを配布できるので、管理者の作業負担を軽減できる。
【００１１】
［適用例２］適用例１に記載のパケット中継装置において、
前記フロー情報は、送信元アドレスと、宛先アドレスと、プロトコル番号と、送信元ポート番号と、宛先ポート番号とのうち、少なくとも１つの情報に基づき得られるハッシュ値と、送信元アドレスと、宛先アドレスとから成る、パケット中継装置。
【００１２】
このような構成により、前記フロー情報を、送信元と宛先との組み合わせを示す情報とすることができる。
【００１３】
［適用例３］適用例１または適用例２に記載のパケット中継装置において、さらに、
前記フロー情報と、前記配布先パケット処理部である前記パケット処理部とを対応付け、前記配布先決定部によって前記配布先パケット処理部を決定する際に参照される配布先決定テーブルを備え、
前記配布先決定テーブルは、デフォルトのエントリとして、前記フロー情報としていずれの値でも構わない旨を示す情報と、前記配布先パケット処理部として所定のパケット処理部とを対応付けたエントリを有し、
前記配布先決定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されなかったと判定された場合、前記配布先決定テーブルにおける新たなエントリであって、前記フロー情報として、前記出力されなかったマルチキャストパケットの前記フロー情報が設定され、前記配布先パケット処理部として、前記デフォルトのエントリに設定されている前記配布先パケット処理部から前記マルチキャストパケットを出力しなかった前記配布先パケット処理部を除いた新たなエントリを、前記配布先決定テーブルに追加する、パケット中継装置。
【００１４】
このような構成により、マルチキャストパケットが出力されなかった場合に、配布先決定テーブルにおいて、新たなエントリを追加するという簡便な方法により、次回以降において同じフロー情報を有するマルチキャストパケットを受信した場合に、前回マルチキャストパケットを出力しなかったパケット処理部に対するマルチキャストパケットの配布を抑制できる。したがって、本発明のパケット中継装置における処理をシンプルにすることができ、パケット中継装置の製造コストやランニングコストを抑制できる。加えて、配布先決定テーブルは、デフォルトのエントリを有するので、新たなフロー情報を有するマルチキャストパケットがパケット中継装置に到着した場合に、かかるマルチキャストパケットを、デフォルトのエントリを用いて各パケット処理部に配布することができる。したがって、予めフロー情報を想定して、各フロー情報に応じて配布先のパケット処理部を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。
【００１５】
［適用例４］パケット中継装置であって、
物理ポートを有する複数のパケット処理部と、
前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する配布先決定部と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布するパケット配布部と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記マルチキャストパケットを出力するための出力ポートを特定すると共に、前記出力ポートが前記論理ポートである場合に、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートの中から１つの物理ポートを前記出力ポートとして特定する物理ポート特定処理を実行する出力ポート特定部と、
前記出力ポートから前記マルチキャストパケットを出力するパケット出力部と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かを判定する出力判定部と、
を備え、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された前記物理ポートを、前記出力ポートとして特定する、パケット中継装置。
【００１６】
適用例４のパケット中継装置では、マルチキャストパケットが出力された場合には、同じフロー情報を有するマルチキャストパケットに対して、出力ポート特定部により、物理ポート特定処理が実行されることなく出力ポートが決定される。したがって、パケット処理部（配布先パケット処理部）において物理ポート特定処理を省略できるので、処理能力の浪費を抑制できる。加えて、パケットが出力されたことをフィードバックして出力ポートを自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力される物理ポートが変わった場合においても、自動的に適切な出力ポートを設定できるので、管理者の作業負担を軽減できる。
【００１７】
［適用例５］適用例４に記載のパケット中継装置において、
前記フロー情報は、送信元アドレスと、宛先アドレスと、プロトコル番号と、送信元ポート番号と、宛先ポート番号とのうち、少なくとも１つの情報に基づき得られるハッシュ値と、送信元アドレスと、宛先アドレスとから成る、パケット中継装置。
【００１８】
このような構成により、前記フロー情報を、送信元と宛先との組み合わせを示す情報とすることができる。
【００１９】
［適用例６］適用例４または適用例５に記載のパケット中継装置において、さらに、
前記フロー情報と、前記論理ポートと、前記論理ポートに含まれる前記物理ポートとを対応付けた出力ポートテーブルを備え、
前記出力ポートテーブルは、デフォルトのエントリとして、前記フロー情報としていずれの値でも構わない旨を示す情報と、前記論理ポートとして所定の論理ポートと、前記物理ポートとして前記所定の論理ポートを構成する全ての物理ポートとを対応付けたエントリを有し、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力ポートテーブルにおける第１の新たなエントリであって、前記フロー情報として前記出力されたマルチキャストパケットの前記フロー情報が設定され、前記論理ポートとして前記マルチキャストパケットが出力された物理ポートを含む論理ポートが設定され、前記物理ポートとして、前記マルチキャストパケットが出力された物理ポートのみが設定された第１の新たなエントリを、前記出力ポートテーブルに追加し、
前記出力ポート特定部は、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記出力ポートテーブルを参照して、前記第１の新たなエントリに基づき、前記出力ポートを特定する、パケット中継装置。
【００２０】
このような構成により、マルチキャストパケットが出力された場合に、出力ポートテーブルにおいて、第１の新たなエントリを追加するという簡便な方法により、次回以降において、同じフロー情報を有するマルチキャストパケットを受信した場合に、前回マルチキャストパケットを出力したパケット処理部において、物理ポート特定処理を実行することなく、出力ポートを特定することができる。したがって、本発明のパケット中継装置における処理をシンプルにすることができ、パケット中継装置の製造コストやランニングコストを抑制できる。加えて、出力ポートテーブルは、デフォルトのエントリを有するので、新たなフロー情報を有するマルチキャストパケットがパケット中継装置に到着した場合に、かかるマルチキャストパケットの出力ポートを、デフォルトのエントリを用いて決定することができる。したがって、予めフロー情報を想定して、各フロー情報に応じて出力ポートを手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。
【００２１】
［適用例７］適用例４ないし適用例６のいずれかに記載のパケット中継装置において、さらに、
前記マルチキャストパケットのパケット長が、前記出力ポートに予め設定されている所定のＭＴＵ長制限を満たしているか否かを判定するパケット長判定部を備え、
前記パケット出力部は、前記マルチキャストパケットのパケット長が前記所定のＭＴＵ長制限を満たしていない場合には、前記マルチキャストパケットを前記出力ポートから出力せず、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有し、かつ、前記出力されたマルチキャストパケットのパケット長と同じパケット長のマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された物理ポートを、前記出力ポートとして特定する、パケット中継装置。
【００２２】
このような構成により、マルチキャストパケットが出力された場合に、次回以降において、同じフロー情報及び同じパケット長を有するマルチキャストパケットを受信した場合に、前回マルチキャストパケットを出力したパケット処理部において、物理ポート特定処理を実行することなく、出力ポートを決定することができる。また、フロー情報が同じマルチキャストパケットであっても、パケット長がＭＴＵ長制限を満たさない場合には、かかるマルチキャストパケットは出力されない。このような場合には、出力ポートテーブルに新たなエントリは追加されないので、出力ポートテーブルのエントリ数の増加を抑制できる。したがって、出力ポートテーブルの空きエントリが不足して必要なエントリが追加できなくなることを抑制できる。
【００２３】
［適用例８］適用例４ないし適用例７のいずれかに記載のパケット中継装置において、
前記出力ポート特定部は、前記出力判定部による判定の結果、前記マルチキャストパケットが出力されなかったと判定された場合に、前記出力ポートテーブルにおける第２の新たなエントリであって、前記フロー情報として前記出力されなかったマルチキャストパケットの前記フロー情報が設定され、前記論理ポートとして、いずれの論理ポートも該当しない旨が設定され、前記物理ポートとしていずれの物理ポートも該当しない旨が設定された第２の新たなエントリを、前記出力ポートテーブルに追加し、
前記出力ポート特定部は、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記出力ポートテーブルを参照して、前記第２の新たなエントリに基づき、前記出力ポートを特定しない、パケット中継装置。
【００２４】
このような構成により、マルチキャストパケットが出力されなかった場合に、出力ポートテーブルにおいて、第２の新たなエントリを追加するという簡便な方法により、次回以降において同じフロー情報を有するマルチキャストパケットを受信した場合に、このマルチキャストパケットについて、物理ポート特定処理を含む出力ポートを特定する処理を実行しないので、パケット処理部の処理能力の浪費を抑制できる。加えて、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力されない物理ポートが変わった場合においても、自動的に適切な出力ポートを設定できるので、管理者の作業負担を軽減できる。
【００２５】
［適用例９］パケット中継装置におけるパケット中継方法であって、
前記パケット中継装置は、物理ポートを有する複数のパケット処理部と、前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、を有し、
（ａ）前記パケット中継装置は、前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する工程と、
（ｂ）前記パケット中継装置は、前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布する工程と、
（ｃ）前記パケット中継装置は、前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートのうち、前記マルチキャストパケットを出力するための出力ポートを決定する工程と、
（ｄ）前記パケット中継装置は、前記出力ポートから前記マルチキャストパケットを出力する工程と、
（ｅ）前記パケット中継装置は、前記配布先パケット処理部において、前記配布先パケット処理部が有する前記物理ポートから前記マルチキャストパケットが出力されたか否かを判定する工程と、
を備え、
前記工程（ｃ）において、前記パケット中継装置は、前記工程（ｅ）の結果、前記マルチキャストパケットが出力されなかったと判定された場合に、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記複数のパケット処理部のうち、前記マルチキャストパケットが出力されなかった前記配布先パケット処理部であるパケット処理部を除く他のパケット処理部の中から、前記配布先パケット処理部を決定する、パケット中継方法。
【００２６】
適用例９のパケット中継方法では、マルチキャストパケットが出力されなかった場合に、同じフロー情報を有するマルチキャストパケットに対して、マルチキャストパケットが出力されなかったパケット処理部を除いた他のパケット処理部の中から、配布先パケット処理部が決定されるので、かかるマルチキャストパケットが出力されないパケット処理部に対するマルチキャストパケットの配布を抑制できる。したがって、マルチキャストパケットを出力しないパケット処理部において、マルチキャストパケットの受信や出力ポートの決定などの無駄な処理の実行を抑制でき、処理能力の浪費を抑制できる。加えて、パケットが出力されないことをフィードバックしてマルチキャストパケットの配布先を自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力されない物理ポートが変わった場合においても、自動的に適切な配布先にマルチキャストパケットを配布できるので、管理者の作業負担を軽減できる。
【００２７】
［適用例１０］パケット中継装置におけるパケット中継方法であって、
前記パケット中継装置は、物理ポートを有する複数のパケット処理部と、前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、を有し、
（ｆ）前記パケット中継装置は、前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する工程と、
（ｇ）前記パケット中継装置は、前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布する工程と、
（ｈ）前記パケット中継装置は、前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記マルチキャストパケットを出力するための出力ポートを特定すると共に、前記出力ポートが前記論理ポートである場合に、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートの中から１つの物理ポートを前記出力ポートとして特定する物理ポート特定処理を実行する工程と、
（Ｉ）前記パケット中継装置は、前記出力ポートから前記マルチキャストパケットを出力する工程と、
（Ｊ）前記パケット中継装置は、前記配布先パケット処理部において、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かを判定する工程と、
を備え、
前記工程（ｈ）において、前記パケット中継装置は、前記工程（Ｊ）の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された前記物理ポートを、前記出力ポートとして特定する、パケット中継方法。
【００２８】
適用例１０のパケット中継方法では、マルチキャストパケットが出力された場合には、同じフロー情報を有するマルチキャストパケットに対して、出力ポート特定部により、物理ポート特定処理が実行されることなく出力ポートが決定される。したがって、パケット処理部（配布先パケット処理部）において物理ポート特定処理を省略できるので、処理能力の浪費を抑制できる。加えて、パケットが出力されたことをフィードバックして出力ポートを自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力される物理ポートが変わった場合においても、自動的に適切な出力ポートを設定できるので、管理者の作業負担を軽減できる。
【００２９】
［適用例１１］パケット中継装置におけるパケットを中継するためのプログラムであって、
前記パケット中継装置は、物理ポートを有する複数のパケット処理部と、前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、を有し、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する機能と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布する機能と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートのうち、前記マルチキャストパケットを出力するための出力ポートを決定する機能と、
前記出力ポートから前記マルチキャストパケットを出力する機能と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する前記物理ポートから前記マルチキャストパケットが出力されたか否かを判定する機能と、
をコンピュータに実現させるためのコンピュータプログラムであり、
前記配布先パケット処理部を決定する機能は、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かの判定の結果、前記マルチキャストパケットが出力されなかったと判定された場合に、前記出力されなかったマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記複数のパケット処理部のうち、前記マルチキャストパケットが出力されなかった前記配布先パケット処理部を除く他のパケット処理部の中から、前記配布先パケット処理部を決定する、機能を含む、コンピュータプログラム。
【００３０】
適用例１１のコンピュータプログラムでは、マルチキャストパケットが出力されなかった場合に、同じフロー情報を有するマルチキャストパケットに対して、マルチキャストパケットが出力されなかったパケット処理部を除いた他のパケット処理部の中から、配布先パケット処理部が決定されるので、かかるマルチキャストパケットが出力されないパケット処理部に対するマルチキャストパケットの配布を抑制できる。したがって、マルチキャストパケットを出力しないパケット処理部において、マルチキャストパケットの受信や出力ポートの決定などの無駄な処理の実行を抑制でき、処理能力の浪費を抑制できる。加えて、パケットが出力されないことをフィードバックしてマルチキャストパケットの配布先を自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力されない物理ポートが変わった場合においても、自動的に適切な配布先にマルチキャストパケットを配布できるので、管理者の作業負担を軽減できる。
【００３１】
［適用例１２］パケット中継装置におけるパケットを中継するためのプログラムであって、
前記パケット中継装置は、物理ポートを有する複数のパケット処理部と、前記複数のパケット処理部によって提供される複数の物理ポートから選択される複数の物理ポートを論理的に束ねることにより論理ポートを設定する論理ポート設定部と、を有し、
前記複数のパケット処理部のいずれかにおいてマルチキャストパケットを受信すると、前記マルチキャストパケットから取得可能な情報であって前記マルチキャストパケットの送信元及び宛先の組み合わせを示すフロー情報に基づき、前記複数のパケット処理部のうち、前記マルチキャストパケットの配布先となる配布先パケット処理部を決定する機能と、
前記決定された配布先パケット処理部に対して、前記マルチキャストパケットを配布する機能と、
前記配布先パケット処理部において、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記マルチキャストパケットを出力するための出力ポートを特定すると共に、前記出力ポートが前記論理ポートである場合に、前記配布されたマルチキャストパケットの前記フロー情報に基づき、前記論理ポートを構成する前記複数の物理ポートの中から１つの物理ポートを前記出力ポートとして特定する物理ポート特定処理を実行する機能と、
前記出力ポートから前記マルチキャストパケットを出力する機能と、
前記配布先パケット処理部において、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かを判定する機能と、
をコンピュータに実現させるためのコンピュータプログラムであり、
前記出力ポートを特定する機能は、前記配布先パケット処理部が有する物理ポートから前記マルチキャストパケットが出力されたか否かの判定の結果、前記マルチキャストパケットが出力されたと判定された場合に、前記出力されたマルチキャストパケットの前記フロー情報と同じフロー情報を有するマルチキャストパケットを受信すると、前記物理ポート特定処理を実行せずに、前記マルチキャストパケットが出力された前記物理ポートを、前記出力ポートとして特定する、機能を含む、コンピュータプログラム。
【００３２】
適用例１２のコンピュータプログラムでは、マルチキャストパケットが出力された場合には、同じフロー情報を有するマルチキャストパケットに対して、出力ポート特定部により、物理ポート特定処理が実行されることなく出力ポートが決定される。したがって、パケット処理部（配布先パケット処理部）において物理ポート特定処理を省略できるので、処理能力の浪費を抑制できる。加えて、パケットが出力されたことをフィードバックして出力ポートを自動的に設定するので、予めフロー情報を想定して、各フロー情報に応じて配布先を手動で設定しておく構成に比べて、管理者の作業負担を軽減できる。また、パケット中継装置自体の構成の変更や、パケット中継装置が接続されているネットワークの構成の変更に伴って、パケットが出力される物理ポートが変わった場合においても、自動的に適切な出力ポートを設定できるので、管理者の作業負担を軽減できる。
【００３３】
［適用例１３］適用例１１または適用例１２に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００３４】
このような構成により、かかる記録媒体を用いてコンピュータにプログラムを読み取らせ、各機能を実現させることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施例としてのパケット中継装置の概略構成を示す説明図。
【図２】図１に示す第１分散処理部の詳細構成を示す説明図。
【図３】図１に示す分散先決定テーブルの設定内容を模式的に示す説明図。
【図４】出力ポートテーブルの設定内容を模式的に示す説明図。
【図５】図２に示すＬＡＧテーブルの設定内容を模式的に示す説明図。
【図６】図１に示す制御ユニットの詳細構成を示す説明図。
【図７】図６に示すマルチキャスト経路テーブルの設定内容を模式的に示す説明図。
【図８】図６に示す論理インタフェース変換テーブルの設定内容を模式的に示す説明図。
【図９】第１実施例における分散先決定テーブルの初期設定処理の手順を示すフローチャート。
【図１０】第１実施例における出力ポートテーブルの初期設定処理の手順を示すフローチャート。
【図１１】第１実施例における受信側パケット中継処理の手順を示すフローチャート。
【図１２】第１実施例における送信側パケット中継処理の手順を示すフローチャート。
【図１３】マルチキャストパケットの中継結果を模式的に示す第１の説明図。
【図１４】マルチキャストパケットの中継結果を示す第２の説明図。
【図１５】第１実施例における分散先決定テーブル更新処理の手順を示すフローチャート。
【図１６】更新後の分散先決定テーブルの一例を示す説明図である。
【図１７】分散先決定テーブル更新後のマルチキャストパケットの中継結果を示す説明図。
【図１８】マルチキャストパケットの中継結果を示す第３の説明図。
【図１９】マルチキャストパケットの中継結果を示す第４の説明図。
【図２０】マルチキャストパケットの中継結果を示す第５の説明図。
【図２１】図１３，図１８〜２０に示すマルチキャストパケットの中継結果が得られた後の分散先決定テーブルを示す説明図。
【図２２】第２実施例における出力ポートテーブルの設定内容を模式的に示す説明図。
【図２３】第２実施例における送信側パケット中継処理の手順を示す第１のフローチャート。
【図２４】第２実施例における送信側パケット中継処理の手順を示す第２のフローチャート。
【図２５】第２実施例におけるマルチキャストパケットの中継結果を模式的に示す説明図。
【図２６】第２実施例における出力ポートテーブル更新処理の手順を示すフローチャート。
【図２７】更新後の出力ポートテーブルの一例を示す説明図。
【図２８】出力ポートテーブル更新後のマルチキャストパケットの中継結果を模式的に示す説明図。
【図２９】第３実施例における出力ポートテーブルの設定内容を模式的に示す説明図。
【図３０】第３実施例の出力ポートテーブルに設定されるパケット長識別子の内容を示す説明図。
【図３１】第３実施例における送信側パケット中継処理の手順を示す第１のフローチャート。
【図３２】第３実施例における送信側パケット中継処理の手順を示す第２のフローチャート。
【図３３】第３実施例におけるマルチキャストパケットの中継結果を模式的に示す説明図。
【図３４】第３実施例における出力ポートテーブル更新処理の手順を示すフローチャート。
【図３５】更新後の出力ポートテーブルの一例を示す説明図。
【発明を実施するための形態】
【００３６】
Ａ．第１実施例：
Ａ１．装置構成：
図１は、本発明の一実施例としてのパケット中継装置の概略構成を示す説明図である。このパケット中継装置１０は、いわゆるレイヤ３スイッチであり、リンクアグリゲーション機能を有する。リンクアグリゲーション（link aggregation: LAG）機能とは、複数の物理ポートを束ねて１つの論理ポート（ＬＡＧポート）として扱うことが可能な機能であり、帯域幅の拡大や冗長性の確保を図ることができる。
【００３７】
パケット中継装置１０は、制御ユニット１００と、クロスバスイッチ３００と、５つの分散処理部（第１分散処理部２０１，第２分散処理部２０２，第３分散処理部２０３，第４分散処理部２０４，第５分散処理部２０５）とを備えている。
【００３８】
制御ユニット１００は、パケット中継装置１０全体を制御する機能部であり、内部バスにより、クロスバスイッチ３００及び各分散処理部２０１〜２０５に、それぞれ接続されている。
【００３９】
クロスバスイッチ３００は、制御ユニット１００や各分散処理部２０１〜２０５からの指示に応じて、パケットを中継するスイッチング回路である。
【００４０】
第１分散処理部２０１は、複数の物理ポート（＃１，＃２，・・・“＃ｎ）を備えており、パケットの送信及び受信を行なう。他の分散処理部２０２〜２０５も、第１分散処理部２０１と同様の構成を有し、第１分散処理部２０１と同様に、パケットの送信及び受信を行なう。
【００４１】
図１に示すように、パケット中継装置１０には、４つのＶＬＡＮ（Virtual LAN）が接続されている。具体的には、第１分散処理部２０１の物理ポート＃１を介してＶＬＡＮ１が接続されている。なお、以下では、第ｎ分散処理部の物理ポート＃ｍを、「物理ポートｎ／ｍ」と表わす。また、第２分散処理部２０２の物理ポート＃１（物理ポート２／１）と物理ポート＃２（物理ポート２／２）とを介してＶＬＡＮ２が接続されている。また、第２分散処理部２０２の物理ポート＃３（物理ポート２／３）と、第３分散処理部２０３の物理ポート＃１（物理ポート３／１）と、第４分散処理部２０４の物理ポート＃１（物理ポート４／１）と、第５分散処理部２０５の物理ポート＃１（物理ポート５／１）とを介してＶＬＡＮ３が接続されている。また、第５分散処理部２０５の物理ポート＃２（物理ポート５／２）を介してＶＬＡＮ４が接続されている。
【００４２】
前述のように、パケット中継装置１０は、複数の物理ポートを介してＶＬＡＮに接続されているが、これは、リングアグリゲーション機能を用いて１つの論理ポートが形成されているからである。例えば、ＶＬＡＮ２との接続のために、２つの物理ポート２／１，２／２によって１つの論理ポート（ＬＡＧ３）が形成されている。同様に、ＶＬＡＮ３との接続のために、４つの物理ポート２／３，３／１，４／１，５／１により１つの論理ポート（ＬＡＧ４）が形成されている。このようにリンクアグリゲーション機能による論理ポートが構成されているリンクでは、パケット中継装置１０からＶＬＡＮに向かってパケットを出力する際に、論理ポートを構成する複数の物理ポートから１つの物理ポートが選択され、この物理ポートからパケットが出力される。以下では、リンクアグリゲーション機能により形成される論理ポートを「ＬＡＧポート」と呼び、１つのＬＡＧポートを形成する複数の物理ポートの中からパケットの出力ポートを選択する処理を「ＬＡＧ処理」と呼ぶ。
【００４３】
図２は、図１に示す第１分散処理部の詳細構成を示す説明図である。第１分散処理部２０１は、上述した複数の物理ポートに加えて、受信側処理部２１０と、送信側処理部２２０とを備えている。
【００４４】
受信側処理部２１０は、パケット受信部２１２と、受信側経路検索部２１６と、受信側テーブル記憶部２１４とを備えている。パケット受信部２１２は、図１に示すクロスバスイッチ３００及び制御ユニット１００と、それぞれ接続されている。同様に、送信側処理部２２０は、クロスバスイッチ３００及び制御ユニット１００と、それぞれ接続されている。各機能部は、ＣＰＵ（Central Processing Unit），ＲＯＭ（Read Only Memory），ＲＡＭ（Random Access Memory）を含む回路により構成されている。
【００４５】
パケット受信部２１２は、各物理ポート＃１〜＃ｎ及び受信側経路検索部２１６と接続されており、物理ポートを介して受信する信号に基づき、パケットを組み立て、受信側経路検索部２１６に出力する。
【００４６】
受信側テーブル記憶部２１４は、分散先決定テーブルＴＢを格納している。分散先決定テーブルＴＢは、マルチキャストパケットを受信した場合に、クロスバスイッチ３００により、いずれの分散処理部にパケットを中継するかを決定するためのテーブルである。
【００４７】
図３は、図１に示す分散先決定テーブルの設定内容を模式的に示す説明図である。図３では、初期設定状態における分散先決定テーブルＴＢの設定内容を示している。分散先決定テーブルＴＢでは、エントリ番号（＃）と、エントリが有効であるか否かを示す情報（ＥＮ）と、フロー情報と、各分散処理部へのパケットの中継の有無を示す情報とが対応付けられている。
【００４８】
エントリ番号は、分散先決定テーブルＴＢにおける各エントリ（レコード）の識別番号を意味する。エントリが有効であるか否かを示す情報（ＥＮ）として、「＊」または「１」が設定され得る。ＥＮが「＊」とは、後述のハッシュ値がいずれの値であってもよいエントリ（以下、「デフォルトエントリ」と呼ぶ）が有効であることを示す。ＥＮが「１」とは、後述のハッシュ値として「＊」とは異なる特定の値が設定されているエントリが有効であることを示す。ハッシュ値の詳細については後述する。
【００４９】
フロー情報とは、フロー（パケットの送信元及び宛先の組み合わせ）を特定する情報を意味し、分散先決定テーブルＴＢでは、フロー情報として、ハッシュ値と、アドレス情報（送信元アドレス，宛先アドレス）とが設定される。
【００５０】
各分散処理部へのパケットの中継の有無を示す情報として、各分散処理部を示す識別子（第１分散処理部２０１：＃１〜第５分散処理部２０５：＃５）ごとに、「１」又は「０」が設定される。「１」はパケットを中継することを意味し、「０」はパケットを中継しないことを意味する。
【００５１】
図３に示すように、初期設定状態においては、分散先決定テーブルＴＢには、エントリ番号「１」の１つのエントリのみが設定されている。このエントリ番号「１」のエントリは、デフォルトエントリであり、ＥＮとして「＊」が、ハッシュ値として「＊」が、送信元アドレスとして「ＳＡ１」が、宛先アドレスとして「ＧＡ１」が、それぞれ設定されている。なお、アドレス「ＳＡ１」は送信元のＩＰアドレスを示し、アドレス「ＧＡ１」は宛先のマルチキャストグループアドレスを示す。また、各分散処理部へのパケットの中継の有無を示す情報として、第１分散処理部２０１（＃１）に「０」が、他の分散処理部２０２〜２０５（＃２〜＃５）に「１」が設定されている。なお、他の分散処理部２０２〜２０５においても、図３に示す分散先決定テーブルＴＢと同じ内容が設定されている。分散先決定テーブルＴＢの初期設定方法については後述する。
【００５２】
図２に示す受信側経路検索部２１６は、パケット受信部２１２及び受信側テーブル記憶部２１４と、それぞれ接続されている。受信側経路検索部２１６は、パケット受信部２１２からパケットを受信すると、分散先決定テーブルＴＢを参照して、パケットの中継先となる分散処理部を決定し、決定した分散処理部を示す情報と、受信したパケットとをクロスバスイッチ３００に送信する。
【００５３】
送信側処理部２２０は、送信側テーブル記憶部２２６と、送信側経路検索部２２２と、出力監視部２２７と、パケット出力部２２８とを備えている。
【００５４】
送信側テーブル記憶部２２６は、出力ポートテーブルＴＰと、ＬＡＧテーブルＴＬとを格納している。
【００５５】
図４は、出力ポートテーブルの設定内容を模式的に示す説明図である。図４では、説明の便宜上、初期設定状態において、第２分散処理部２０２，第３分散処理部２０３，第４分散処理部２０４，及び第５分散処理部２０５に設定されている出力ポートテーブルＴＰを記載している。第１段目は、初期状態における第２分散処理部２０２の出力ポートテーブルＴＰ２を示している。また、第２段目は初期状態における第３分散処理部２０３の出力ポートテーブルＴＰ３を、第３段目は初期状態における第４分散処理部２０４の出力ポートテーブルＴＰ４を、第４段目は初期状態における第５分散処理部２０５の出力ポートテーブルＴＰ５を、それぞれ示している。なお、第１分散処理部２０１に設定されている出力ポートテーブルＴＰは、他の分散処理部２０２〜２０５に設定されている出力ポートテーブルＴＰ２〜ＴＰ５と同様である。
【００５６】
出力ポートテーブルＴＰは、フロー情報と、出力ポートの候補となる物理ポートとを対応付けるためのテーブルである。具体的には、出力ポートテーブルＴＰでは、アドレス情報と、出力ポートリストと、物理ポートを示す情報とが対応付けられている。アドレス情報として、出力ポートテーブルＴＰでは、送信元アドレスと、宛先アドレスとが設定される。出力ポートリストは、パケットを出力するためのポートとして、ＬＡＧポート又は物理ポートが設定される。物理ポートを示す情報として、分散処理部の識別子と、各分散処理部における物理ポートの識別子とが設定される。
【００５７】
具体的には、例えば、初期状態において、出力ポートテーブルＴＰ２には、送信元アドレス「ＳＡ１」が、宛先アドレス「ＧＡ１」が、出力ポートリストとして「ＬＡＧ３」及び「ＬＡＧ４」が、物理ポートを示す情報として、ＬＡＧ３を形成する各物理ポート（物理ポート２／１，２／２）、及びＬＡＧ４を形成する各物理ポート（２／３，３／１，４／１，５／１）が、それぞれ設定されている。他の出力ポートテーブルＴＰ３〜ＴＰ５においても、同様に各値が設定されている。なお、これら出力ポートテーブルＴＰ２〜ＴＰ５の初期設定方法については、後述する。
【００５８】
図５は、図２に示すＬＡＧテーブルの設定内容を模式的に示す説明図である。ＬＡＧテーブルＴＬは、ＬＡＧポートと、パス数と、物理ポートとを対応付けるためのテーブルである。ＬＡＧポートとして、パケット中継装置１０が接続している各ＬＡＧポート（ＬＡＧ１〜ＬＡＧ４）が設定されている。パス数は、各ＬＡＧポートを形成する物理ポートの数を示す。物理ポートとして、図１に示す各ＬＡＧポートごとに、各ＬＡＧポートを構成する物理ポートが設定されている。なお、他の分散処理部２０２〜２０５においても、図５に示すＬＡＧテーブルＴＬと同じ内容が設定されている。
【００５９】
図２に示す送信側経路検索部２２２は、出力ポート検索部２２３と、物理ポート選択部２２４とを備えている。出力ポート検索部２２３は、クロスバスイッチ３００から中継されたパケットに基づき、出力ポートテーブルＴＰを参照して出力ポートの候補となるポートを検索する。出力ポート検索部２２３の検索によりヒットするポートは、ＬＡＧポート又は物理ポートである。物理ポート選択部２２４は、出力ポート検索部２２３の検索により見つかった出力ポートの候補となるポートから、実際にパケットを出力する物理ポートを選択する。このとき、出力ポート検索部２２３の検索によりヒットしたポートがＬＡＧポートの場合、物理ポート選択部２２４は、後述の方法によりハッシュ値を求め、得られたハッシュ値に基づき、ＬＡＧテーブルＴＬを参照して出力ポートとなる物理ポートを選択する。
【００６０】
出力監視部２２７は、送信側経路検索部２２２及びパケット出力部２２８と接続されており、クロスバスイッチ３００から送信側処理部２２０に中継されたパケットが、実際に物理ポートから出力されたか否かを監視する。また、出力監視部２２７は、パケットが出力されなかった場合、パケットが出力されなかった旨と、当該パケットに対応付けられたフロー情報とを、制御ユニット１００に通知する。
【００６１】
パケット出力部２２８は、物理ポート選択部２２４により出力ポートとして選択された物理ポートに対してパケットを送信する。
【００６２】
図６は、図１に示す制御ユニットの詳細構成を示す説明図である。制御ユニット１００は、制御部１０５と、分散先決定テーブル設定部１１０と、出力ポートテーブル設定部１２０と、廃棄処理管理部１３０と、テーブル記憶部１４０とを備えている。
【００６３】
制御部１０５は、制御ユニット１００が有する各機能部を制御する。また、制御部１０５は、ネットワークによって接続された管理用コンピュータに対して、Ｗｅｂベース等の設定用ユーザインタフェースを提供する。管理者は、このユーザインタフェースを利用することにより、経路に関するテーブルなどの設定を行うことができる。
【００６４】
分散先決定テーブル設定部１１０は、制御部１０５，廃棄処理管理部１３０，及びテーブル記憶部１４０に、それぞれ接続されている。分散先決定テーブル設定部１１０は、各分散処理部２０１〜２０５が有する分散先決定テーブルＴＢの生成及び更新を行なう。
【００６５】
出力ポートテーブル設定部１２０は、制御部１０５及びテーブル記憶部１４０に、それぞれ接続されている。出力ポートテーブル設定部１２０は、各分散処理部２０１〜２０５が有する出力ポートテーブルＴＰの生成及び更新を行なう。
【００６６】
廃棄処理管理部１３０は、制御部１０５及び分散先決定テーブル設定部１１０に、それぞれ接続されている。廃棄処理管理部１３０は、各分散処理部２０１〜２０５の出力監視部２２７から通知される情報（パケットが出力されなかった旨等）を受信し、分散先決定テーブル設定部１１０に対して分散先決定テーブルの更新を指示する。
【００６７】
テーブル記憶部１４０は、分散先決定テーブル設定部１１０及び出力ポートテーブル設定部１２０と接続されており、マルチキャスト経路テーブルＴＭと、論理インタフェース変換テーブルＴＣと、マスタＬＡＧテーブルＴＬｍと、マスタ分散先決定テーブルＴＢｍと、マスタ出力ポートテーブルＴＰｍとを格納している。
【００６８】
図７は、図６に示すマルチキャスト経路テーブルの設定内容を模式的に示す説明図である。マルチキャスト経路テーブルＴＭは、マルチキャストパケットを受信した場合に、パケットを出力すべき論理インタフェース（ＶＬＡＮ）を決定するためのテーブルである。具体的には、マルチキャスト経路テーブルＴＭでは、アドレス情報（送信元アドレス，宛先アドレス）と、出力先の論理インタフェースとが対応付けられている。図７では、送信元アドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のアドレス情報に対して、出力先の論理インタフェースとして、「ＶＬＡＮ２，ＶＬＡＮ３，ＶＬＡＮ４」が設定されている。マルチキャスト経路テーブルＴＭは、制御部１０５により提供されるユーザインタフェースを利用して管理者により設定される。
【００６９】
図８は、図６に示す論理インタフェース変換テーブルの設定内容を模式的に示す説明図である。論理インタフェース変換テーブルＴＣは、各論理インタフェース（ＶＬＡＮ）に対してパケットを出力する際に用いる出力ポートを決定するためのテーブルである。具体的には、論理インタフェース変換テーブルＴＣでは、論理インタフェースと、出力ポート（ＬＡＧポート又は物理ポート）とが対応付けられている。図８では、ＶＬＡＮ１に対して、「物理ポート１／１」が出力ポートとして対応付けられている。また、ＶＬＡＮ２に対して「ＬＡＧ３」が、ＶＬＡＮ３に対して「ＬＡＧ４」が、ＶＬＡＮ４に対して「物理ポート５／２」が、それぞれ出力ポートとして対応付けられている。この論理インタフェース変換テーブルＴＣは、制御部１０５により提供されるユーザインタフェースを利用して管理者により設定される。
【００７０】
図６に示すマスタＬＡＧテーブルＴＬｍは、各分散処理部２０１〜２０５が有するＬＡＧテーブルＴＬの基準となるテーブルである。マスタＬＡＧテーブルＴＬｍが各分散処理部２０１〜２０５に配布され、各分散処理部２０１〜２０５においてＬＡＧテーブルＴＬとして送信側テーブル記憶部２２６に格納される。したがって、マスタＬＡＧテーブルＴＬｍの設定内容は、図５に示すＬＡＧテーブルＴＬと同じである。マスタＬＡＧテーブルＴＬｍは、制御部１０５により提供されるユーザインタフェースを利用して管理者により設定される。
【００７１】
図６に示すマスタ分散先決定テーブルＴＢｍは、各分散処理部２０１〜２０５が有する分散先決定テーブルＴＢの基準となるテーブルである。分散先決定テーブル設定部１１０によってマスタ分散先決定テーブルＴＢｍが各分散処理部２０１〜２０５に配布され、各分散処理部２０１〜２０５において分散先決定テーブルＴＢとして受信側テーブル記憶部２１４に格納される。したがって、初期設定状態におけるマスタ分散先決定テーブルＴＢｍの設定内容は、図３に示す分散先決定テーブルＴＢと同じである。
【００７２】
図６に示すマスタ出力ポートテーブルＴＰｍは、各分散処理部２０１〜２０５が有する出力ポートテーブルＴＰの基準となるテーブルであり、各分散処理部２０１〜２０５が有する合計５つのテーブルに対応する５つのテーブルから構成される。出力ポートテーブル設定部１２０によってマスタ出力ポートテーブルＴＰｍが各分散処理部２０１〜２０５に配布され、各分散処理部２０１〜２０５において出力ポートテーブルＴＰとして送信側テーブル記憶部２２６に格納される。したがって、初期設定状態におけるマスタ出力ポートテーブルＴＰｍの設定内容は、第１分散処理部２０１用のテーブルを除き、図４に示す各出力ポートテーブルＴＰ２〜ＴＰ５と同じである。
【００７３】
前述の５つの分散処理部２０１〜２０５は、請求項における複数のパケット処理部に相当する。また、受信側経路検索部２１６は請求項における配布先決定部に、クロスバスイッチ３００は請求項におけるパケット配布部に、送信側経路検索部２２２は請求項における出力ポート決定部及び出力ポート特定部に、出力監視部２２７は請求項における出力判定部に、パケット出力部２２８は請求項におけるパケット長判定部に、分散先決定テーブルＴＢは請求項における配布先決定テーブルに、ＬＡＧ処理は請求項における物理ポート特定処理に、制御部１０５は請求項における論理ポート設定部に、それぞれ相当する。
【００７４】
Ａ２．各テーブルの初期設定処理：
Ａ２−１．分散先決定テーブルの初期設定処理：
図９は、第１実施例における分散先決定テーブルの初期設定処理の手順を示すフローチャートである。制御部１０５が提供するユーザインタフェースを利用して管理者が処理の開始を指示すると、パケット中継装置１０において分散先決定テーブルの初期設定処理が開始される。
【００７５】
図６に示す分散先決定テーブル設定部１１０は、テーブル記憶部１４０に記憶されているマスタ分散先決定テーブルＴＢｍを初期化する（ステップＳ１０５）。具体的には、マスタ分散先決定テーブルＴＢｍに設定されているすべてのエントリを削除し、マルチキャスト経路テーブルＴＭを参照して、設定されている各フロー毎に、デフォルトエントリ（ＥＮ＝＊，ハッシュ値＝＊）を生成する。このとき、各分散処理部へのパケットの中継の有無を示す情報として、全ての分散処理部に対して「０」が設定される。図７に示すように、マルチキャスト経路テーブルＴＭには、送信元アドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のフローのみが設定されているので、ステップＳ１０５では、このフローについてのデフォルトエントリがマスタ分散先決定テーブルＴＢｍに設定される。なお、本ステップが第１回目に実行される場合には、デフォルトエントリを有する新たなマスタ分散先決定テーブルＴＢｍが生成される。
【００７６】
分散先決定テーブル設定部１１０は、アドレス情報（送信元アドレス及び宛先アドレス）をキーとして、マルチキャスト経路テーブルＴＭを検索して、対応する論理インタフェースのリストを取得する（ステップＳ１１０）。図７に示すように、マルチキャスト経路テーブルＴＭでは、アドレス情報（ＳＡ１，ＧＡ１）に対して、出力先の論理インタフェースとしてＶＬＡＮ２，ＶＬＡＮ３，ＶＬＡＮ４が設定されている。したがって、分散先決定テーブル設定部１１０は、これらＶＬＡＮ２，ＶＬＡＮ３，ＶＡＬＮ４から成るリストを取得する。
【００７７】
分散先決定テーブル設定部１１０は、ステップＳ１１０で得られた全ての論理インタフェースをキーとして、論理インタフェース変換テーブルＴＣを検索し、対応する全ての出力ポートのリストを取得する（ステップＳ１１５）。前述のように、ＶＬＡＮ２，ＶＬＡＮ３，ＶＬＡＮ４から成るリストが得られた場合には、図８に示す論理インタフェース変換テーブルＴＣを検索することにより、出力ポートのリストとして、ＬＡＧポートＬＡＧ３，ＬＡＧポートＬＡＧ４，物理ポート５／２から成るリストが得られる。
【００７８】
分散先決定テーブル設定部１１０は、ステップＳ１１５で得られた出力ポートのリストを構成する各ポートが、それぞれＬＡＧポートであるか否かを判定する（ステップＳ１２０）。
【００７９】
ステップＳ１２０において、ＬＡＧポートではないと判定された（すなわち、物理ポートであると判定された）ポートについて、分散先決定テーブル設定部１１０は、マスタ分散先決定テーブルＴＢｍにおいて、当該ポートが属する分散処理部に対応するフィールドに「１」を設定する（ステップＳ１２５）。例えば、前述の物理ポート５／２については、ＬＡＧポートではないと判定されるので、この物理ポートが属する第５分散処理部２０５に対応するマスタ分散先決定テーブルＴＢｍのフィールド「＃５」に「１」が設定される。
【００８０】
これに対し、ステップＳ１２０において、ＬＡＧポートであると判定されたポートについて、分散先決定テーブル設定部１１０は、ＬＡＧポートの識別子をキーとして、マスタＬＡＧテーブルＴＬｍを参照して、当該ポートに属する全ての物理ポートのリストを取得する（ステップＳ１３０）。例えば、前述のＬＡＧポートＬＡＧ３については、マスタＬＡＧテーブルＴＬｍ（図５）が参照されて、物理ポート２／１，２／２から成るリストが得られる。また、ＬＡＧポートＬＡＧ４については、マスタＬＡＧテーブルＴＬｍが参照されて、物理ポート２／３，３／１，４／１，５／１から成るリストが得られる。
【００８１】
分散先決定テーブル設定部１１０は、ステップＳ１３０で得られた各物理ポートが属する分散処理部に対応するフィールドに「１」を設定する（ステップＳ１３５）。例えば、前述の物理ポート２／１，２／２については、これらの物理ポートが属する第２分散処理部２０２に対応するマスタ分散先決定テーブルＴＢｍのフィールド「＃２」に「１」が設定される。また、前述の物理ポート２／３，３／１，４／１，５／１については、これら４つの物理ポートが属する第２分散処理部２０２，第３分散処理部２０３，第４分散処理部２０４，及び第５分散処理部２０５に対応する「＃２」，「＃３」，「＃４」，「＃５」に、それぞれ「１」が設定される。なお、上述したように、「＃２」及び「＃５」については、既に「１」に設定されているので、値は変化しない。
【００８２】
前述のステップＳ１２５及びステップＳ１３５が実行された後、分散先決定テーブル設定部１１０は、ステップＳ１１５でリストアップされた全ての出力ポートに対して処理を行ったか否かを判定する（ステップＳ１４０）。全ての出力ポートに対して処理が完了していない場合（ステップＳ１４０：ＮＯ）には、ステップＳ１２０に戻り、残りの出力ポートを対象としてステップＳ１２０〜Ｓ１４０の処理を実行する。これに対し、全ての出力ポートに対して処理が完了したと判定した場合（ステップＳ１４０：ＹＥＳ）、分散先決定テーブル設定部１１０は、ステップＳ１０５で初期化した際に対象とした全てのフローに対して処理を行ったか否かを判定する（ステップＳ１４５）。
【００８３】
全てのフローに対して処理が完了していない場合（ステップＳ１４５：ＮＯ）、ステップＳ１１０に戻り、残りのフローを対象としてステップＳ１１０〜Ｓ１４５の処理を実行する。これに対し、全てのフローに対して処理が完了したと判定した場合（ステップＳ１４５：ＹＥＳ）、分散先決定テーブル設定部１１０は、マスタ分散先決定テーブルＴＢｍを各分散処理部２０１〜２０５に送信して、各分散処理部２０１〜２０５に分散先決定テーブルＴＢを設定する（ステップＳ１５０）。分散先決定テーブル初期設定処理が開始される以前に、既に各分散処理部２０１〜２０５に分散先決定テーブルＴＢが設定されている場合には、ステップＳ１５０により、制御ユニット１００から送信されるマスタ分散先決定テーブルＴＢｍにより、既存の分散先決定テーブルＴＢの設定内容が上書きされる。
【００８４】
以上の分散先決定テーブル初期設定処理の結果、マスタ分散先決定テーブルＴＢｍにおいて、第２分散処理部２０２〜２０５に対応するフィールドに「１」が設定されるので、各分散処理部２０１〜２０５に設定される分散先決定テーブルＴＢの設定内容は、図３に示す内容となる。
【００８５】
Ａ２−２．出力ポートテーブルの初期設定処理：
図１０は、第１実施例における出力ポートテーブルの初期設定処理の手順を示すフローチャートである。制御部１０５が提供するユーザインタフェースを利用して管理者が処理の開始を指示すると、パケット中継装置１０において出力ポートテーブルの初期設定処理が開始される。
【００８６】
図６に示す出力ポートテーブル設定部１２０は、テーブル記憶部１４０に記憶されているマスタ出力ポートテーブルＴＰｍを初期化する（ステップＳ２０５）。具体的には、マスタ出力ポートテーブルＴＰｍに設定されているすべてのエントリを削除する。なお、本ステップが第１回目に実行される場合には、エントリのない新たなマスタ出力ポートテーブルＴＰｍが生成される。
【００８７】
続いて実行されるステップＳ２１０〜Ｓ２２０は、前述の図９に示す分散先決定テーブル更新処理のステップＳ１１０〜Ｓ１２０と同じである。
【００８８】
ステップＳ２２０において、ＬＡＧポートではないと判定された（すなわち、物理ポートであると判定された）ポートについて、出力ポートテーブル設定部１２０は、当該物理ポートが属する分散処理部の出力ポートテーブルＴＰに、当該物理ポートを設定する（ステップＳ２２５）。例えば、前述の物理ポート５／２については、ＬＡＧポートではないと判定されるので、図４の第４段目の出力ポートテーブルＴＰ５に示すように、この物理ポートが属する第５分散処理部２０５の分散先決定テーブルＴＢにおいて、出力ポートリスト及び物理ポートを示す情報として、いずれも物理ポート５／２が設定される。
【００８９】
これに対し、ステップＳ２２０において、ＬＡＧポートであると判定されたポートについて、出力ポートテーブル設定部１２０は、ＬＡＧポートの識別子をキーとして、マスタＬＡＧテーブルＴＬｍを参照して、当該ポートに属する全ての物理ポートのリストを取得する（ステップＳ２３０）。この処理は、前述の図９に示すステップＳ１３０と同じである。したがって、例えば、ＬＡＧポートＬＡＧ３については、物理ポート２／１，２／２から成るリストが得られ、ＬＡＧポートＬＡＧ４については、物理ポート２／３，３／１，４／１，５／１から成るリストが得られる。
【００９０】
出力ポートテーブル設定部１２０は、ステップＳ２３０で得られた各物理ポートが属する分散処理部の出力ポートテーブルＴＰにおいて、出力ポートリストとして当該ＬＡＧポートを、物理ポートを示す情報としてステップＳ２３０で得られた各物理ポートを、それぞれ設定する（ステップＳ２３５）。例えば、前述のステップＳ２２０においてＬＡＧポートとして判定されたＬＡＧポートＬＡＧ３については、物理ポート２／１，２／２が属する第２分散処理部２０２の出力ポートテーブルＴＰにおいて、出力ポートリストとしてＬＡＧ３が、物理ポートを示す情報として、物理ポート２／１，２／２が、それぞれ設定される。また、ＬＡＧポート４については、物理ポート２／３，３／１，４／１，５／１が属する第２分散処理部２０２，第３分散処理部２０３，第４分散処理部２０４，及び第５分散処理部２０５の各出力ポートテーブルＴＰ２，ＴＰ３，ＴＰ４，ＴＰ５において、出力ポートリストとしてＬＡＧ４が、物理ポートを示す情報として物理ポート２／３，３／１，４／１，５／１が、それぞれ設定される。その結果、図４に示すように、各出力ポートテーブルＴＰ２〜ＴＰ５が設定される。
【００９１】
続いて実行されるステップＳ２４０，Ｓ２４５は、前述の図９に示すステップＳ１４０，Ｓ１４５と同じである。
【００９２】
全てのフローの全ての出力ポートに対してステップＳ２１０〜Ｓ２４０の処理が完了すると（ステップＳ２４５：ＹＥＳ）、分散先決定テーブル設定部１１０は、マスタ出力ポートテーブルＴＰｍを各処理部２０１〜２０５に送信して、各分散処理部２０１〜２０５に出力ポートテーブルＴＰを設定する（ステップＳ２５０）。出力ポートテーブル初期化処理が開始される以前に、既に各分散処理部２０１〜２０５に出力ポートテーブルＴＰが設定されている場合には、ステップＳ２５０により、制御ユニット１００から送信されるマスタ出力ポートテーブルＴＰｍにより、既存の出力ポートテーブルＴＰの設定内容が上書きされる。
【００９３】
以上の出力ポートテーブル初期設定処理の結果、マスタ出力ポートテーブルＴＰｍ、及び各分散処理部２０２〜２０５における出力ポートテーブルＴＰ２〜ＴＰ５の設定内容は、図４に示す各出力ポートテーブルＴＰ２〜ＴＰ５の設定内容と同じになる。
【００９４】
Ａ３．パケット中継処理：
Ａ３−１．受信側パケット中継処理：
図１１は、第１実施例における受信側パケット中継処理の手順を示すフローチャートである。各分散処理部２０１〜２０５の受信側処理部２１０では、物理ポートを介してパケットを受信すると、受信側パケット処理が開始される。
【００９５】
図２に示す受信側経路検索部２１６は、受信したパケットのフロー情報を用いて所定のハッシュ計算を行って、ハッシュ値を求める（ステップＳ３０５）。このステップＳ３０５において用いられるフロー情報は、送信元ＩＰアドレス，宛先ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号である。
【００９６】
また、所定のハッシュ計算として、例えば、以下の計算を採用することができる。
（１）まず、送信元ＩＰアドレス及び宛先ＩＰアドレスを、それぞれ８ビットずつに区切り、それぞれを加算する。但し、桁上がりは無視する。
（２）得られた加算値にプロトコル番号（８ビット）を加算する。但し、桁上がりは無視する。
（３）宛先ポート番号及び送信元ポート番号を、それぞれ８ビットずつに区切り、それぞれを加算し、（２）で得られている加算値に更に加算する。但し、桁上がりは無視する。この計算方法により得られるハッシュ値は、０〜２５５である。
【００９７】
受信側経路検索部２１６は、分散先決定テーブルＴＢを参照して、ステップＳ２１６で求めたハッシュ値、及びアドレス情報（宛先ＩＰアドレス及び送信元ＩＰアドレス）が一致し、ＥＮが「１」であるエントリを検索し（ステップＳ３１０）、当該エントリが見つかったか否かを判定する（ステップＳ３１５）。
【００９８】
エントリが見つからなかった場合（ステップＳ３１５：ＮＯ）、受信側経路検索部２１６は、デフォルトエントリに設定されている分散処理部に関する情報と、受信したパケットとをクロスバスイッチ３００に送信する（ステップＳ３２０）。分散先決定テーブルＴＢが図３に示す初期設定状態である場合には、分散先決定テーブルＴＢには、エントリ番号＃１のエントリ（デフォルトエントリ）のみが設定されているので、送信元ＩＰアドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のマルチキャストパケットを受信した場合には、このデフォルトエントリで設定されている分散処理部に関する情報（すなわち、「０，１，１，１，１」のビットマップ）と、当該パケットとがクロスバスイッチ３００に送信される。
【００９９】
前述のステップＳ３１５において、エントリが見つかったと判定した場合（ステップＳ３１５：ＹＥＳ）、受信側経路検索部２１６は、見つかったエントリに設定されている分散処理部に関する情報と、受信したパケットとをクロスバスイッチ３００に送信する（ステップＳ３２５）。
【０１００】
クロスバスイッチ３００では、いずれかの分散処理部２０１〜２０５から分散処理部に関する情報（ビットマップ）と、パケットを受信すると、受信したビットマップで指定された分散処理部に対して、受信したパケットをコピーして中継する。例えば、分散処理部に関する情報としてビットマップ「０，１，１，１，１」と、パケット（送信元ＩＰアドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のマルチキャストパケット）を受信すると、クロスバスイッチ３００は、かかるパケットを、第２分散処理部２０２〜第５分散処理部２０５の合計４つの分散処理部にパケットを中継する。
【０１０１】
Ａ３−２．送信側パケット中継処理：
図１２は、第１実施例における送信側パケット中継処理の手順を示すフローチャートである。各分散処理部２０１〜２０５の送信側処理部２２０では、クロスバスイッチ３００からパケットを受信すると、送信側パケット中継処理を開始する。
【０１０２】
各分散処理部２０１〜２０５において、図２に示す出力ポート検索部２２３は、受信したパケットのアドレス情報（送信元アドレス及び宛先アドレス）をキーとして、自らの属する送信側処理部２２０に設定されている出力ポートテーブルＴＰを検索し、対応する全ての出力ポートリストを取得する（ステップＳ４０５）。
【０１０３】
例えば、出力ポートテーブルＴＰ２が図４に示す初期設定状態である場合に、第２分散処理部２０２〜第５分散処理部２０５の４つの分散処理部が、それぞれ送信元ＩＰアドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のマルチキャストパケットを受信した場合、第２分散処理部２０２は、出力ポートリスト（ＬＡＧ３，ＬＡＧ４）を取得する。また、第３分散処理部２０３は出力ポートリスト（ＬＡＧ４）を、第４分散処理部２０４は出力ポートリスト（ＬＡＧ４）を、第５分散処理部２０５は出力ポートリスト（ＬＡＧ４，５／２）を、それぞれ取得する。
【０１０４】
各分散処理部２０１〜２０５において、物理ポート選択部２２４は、受信したパケットのフロー情報を用いて所定のハッシュ計算を行って、ハッシュ値を求める（ステップＳ４１０）。このステップＳ４１０において用いられるフロー情報は、前述のステップＳ３０５と同様に、宛先ＩＰアドレス，送信元ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号である。
【０１０５】
各分散処理部２０１〜２０５において、物理ポート選択部２２４は、ステップＳ４１０で求めたハッシュ値に基づき、ＬＡＧテーブルＴＬを参照して、出力ポートリストに記載されているポート毎に、パケットを出力する物理ポート（出力ポート）を決定する（ステップＳ４１５）。具体的には、出力ポートリストに記載されているポートがＬＡＧポートである場合には、物理ポート選択部２２４は、ステップＳ４１０で得られたハッシュ値を、当該ＬＡＧポートのパス数で割って剰余を求める。得られた剰余に基づき、ＬＡＧテーブルＴＬを参照して物理ポートを決定する。剰余が「０」の場合、ＬＡＧテーブルＴＬの各ＬＡＧポートを形成する物理ポートのうち、先頭に記載されている物理ポートを、出力ポートとして決定する。同様に、剰余が「１」の場合、ＬＡＧテーブルＴＬの各ＬＡＧポートを構成する物理ポートのうち、２番目に記載されている物理ポートを出力ポートとして決定する。また、出力ポートリストに記載されているポートが物理ポートである場合には、当該物理ポートをパケットを出力ポートとして決定する。
【０１０６】
例えば、前述のパケット（送信元ＩＰアドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のマルチキャストパケット）のフロー情報から得られたハッシュ値が「０」であった場合に、図５に示すＬＡＧテーブルＴＬに基づき、第２分散処理部２０２では、ＬＡＧ３については、「物理ポート２／１」が、ＬＡＧ４については、「物理ポート２／３」がそれぞれ決定される。また、第３分散処理部２０３では、ＬＡＧ４について「物理ポート２／３」が決定される。第４分散処理部２０４では、ＬＡＧ４について「物理ポート２／３」が決定される。第５分散処理部２０５では、ＬＡＧ４については「物理ポート２／３」が、物理ポート５／２については「物理ポート５／２」が、それぞれ決定される。
【０１０７】
続いて、各分散処理部２０１〜２０５において、物理ポート選択部２２４は、ステップＳ４１５において決定された物理ポートを、自らが属する分散処理部が有しているか否かを判定する（ステップＳ４２０）。物理ポートを有している場合には（ステップＳ４２０：ＹＥＳ）、パケット出力部２２８は、当該物理ポートからパケットを出力し（ステップＳ４２５）、送信側パケット中継処理は終了する。これに対し、物理ポートを有していない場合には（ステップＳ４２０：ＮＯ）、パケット出力部２２８は、クロスバスイッチ３００から受信したパケットを廃棄する（ステップＳ４３０）。
【０１０８】
例えば、前述のように、ＬＡＧ３について「物理ポート２／１」が、ＬＡＧ４について「物理ポート２／３」が、物理ポート５／２については「物理ポート５／２」が、それぞれ決定された場合、第２分散処理部２０２では、パケットを出力する物理ポート（出力ポート）として決定された物理ポート（物理ポート２／１，２／３）を有しているので、物理ポート２／１，２／３から、それぞれパケットを出力する。同様に、第５分散処理部２０５では、出力ポートとして決定された物理ポート（物理ポート５／２）を有しているので、物理ポート５／２からパケットを出力する。これに対し、第３分散処理部２０３及び第４分散処理部２０４は、いずれも出力ポートを有していないので、受信したパケットを廃棄する。
【０１０９】
前述のステップＳ４３０が実行され、パケットが廃棄されると、出力監視部２２７は、パケット廃棄が発生した旨、廃棄されたパケットのフロー情報、廃棄されたパケットについて算出されたハッシュ値、及びパケット廃棄が起きた分散処理部の識別子を、制御ユニット１００の廃棄処理管理部１３０に通知して（ステップＳ４３５）、送信側パケット中継処理は終了する。例えば、前述のように、第３分散処理部２０３及び第４分散処理部２０４でパケットの廃棄が発生した場合、パケット廃棄が発生した旨に加えて、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、分散処理部の識別子「＃３，４」とが、廃棄処理管理部１３０に通知される。
【０１１０】
図１３は、マルチキャストパケットの中継結果を模式的に示す第１の説明図である。図１４は、マルチキャストパケットの中継結果を示す第２の説明図である。図１３，１４は、いずれも、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「０」のフローに属するマルチキャストパケットが最初にパケット中継装置１０に到着した場合の中継結果を示している。
【０１１１】
図１３では、左側に出力ポートテーブルＴＰ２〜ＴＰ５を示し、右側に出力結果を示している。出力結果において「○」は出力されたことを意味し、「×」出力されなかったことを意味する。図１３に示すように、ハッシュ値「０」のフローに属するマルチキャストパケットついては、物理ポート２／１，２／３，５／２からパケットが出力され、他の物理ポートからは出力されていない。したがって、第３分散処理部２０３及び第４分散処理部２０４からは全くパケットが出力されていない。
【０１１２】
図１４では、各分散処理部２０１〜２０５において実行される処理の概略を表わすと共に、パケットの流れを太い実線の矢印で表わしている。第１分散処理部２０１では、分散先決定テーブルＴＢが参照されて分散先が決定され、クロスバスイッチ３００にパケットが送信される。クロスバスイッチ３００は、パケットを第２分散処理部２０２〜第５分散処理部２０５の合計４つの分散処理部に中継する。
【０１１３】
第２分散処理部２０２では、出力ポートテーブルＴＰ２が参照されてＬＡＧ３，ＬＡＧ４が出力ポートリストとして得られ、それぞれのＬＡＧポートについてＬＡＧ処理が行われ、物理ポート２／１，２／３が出力ポートとして決定される。そして、これら出力ポートからパケットが出力される。
【０１１４】
第３分散処理部２０３では、出力ポートテーブルＴＰ３が参照されてＬＡＧ４が出力ポートリストとして得られ、ＬＡＧ４についてＬＡＧ処理が行われ、物理ポート２／３が出力ポートとして決定される。しかしながら、この出力ポートである物理ポート２／２は、自らが有する物理ポートでないため、パケットは出力されない。第４分散処理部２０４では、第３分散処理部２０３と同じ処理が実行される。
【０１１５】
第５分散処理部２０５では、出力ポートテーブルＴＰ５を参照されて物理ポート５／２が出力ポートリストとして得られ、この物理ポート５／２が出力ポートとして決定される。そして、物理ポート５／２からパケットが出力される。
【０１１６】
図１４に示すように、第３分散処理部２０３及び第４分散処理部２０４では、パケットを出力しないにも関わらず、出力ポートテーブルＴＰの参照やＬＡＧ処理など、無駄な処理を行っており、各分散処理部２０３，２０４の処理能力が浪費されている。しかしながら、第１実施例のパケット中継装置１０では、後述の分散先決定テーブルの更新処理を行うことにより、各第１分散処理部２０１〜第５分散処理部２０５の処理能力の浪費を抑制することができる。
【０１１７】
Ａ４．分散先決定テーブル更新処理：
図１５は、第１実施例における分散先決定テーブル更新処理の手順を示すフローチャートである。パケット中継装置１０の起動と共に、分散先決定テーブル更新処理が開始される。
【０１１８】
制御ユニット１００の廃棄処理管理部１３０は、パケットが廃棄された旨が通知されるまで待機する（ステップＳ５０５）。そして、いずれかの分散処理部２０１〜２０５の出力監視部２２７からパケット廃棄が発生した旨，フロー情報，ハッシュ値，及び分散処理部の識別子を通知されると（ステップＳ５０５：ＹＥＳ）、分散先決定テーブル設定部１１０に対して、フロー情報，ハッシュ値，及び分散処理部の識別子を通知すると共に、マスタ分散先決定テーブルＴＢｍの更新を指示する（ステップＳ５１０）。
【０１１９】
分散先決定テーブル設定部１１０は、通知された更新指示に従い、マスタ分散先決定テーブルＴＢｍにおいて、デフォルトエントリをコピーし、コピーしたエントリにおいて通知された分散処理部の識別子に対応するフィールドを「０」に、ＥＮを「１」に、ハッシュ値を「廃棄パケットについて算出されたハッシュ値」に、それぞれ更新した新たなエントリを追加する（ステップＳ５１５）。
【０１２０】
分散先決定テーブル設定部１１０は、マスタ分散先決定テーブルＴＢｍを各分散処理部２０１〜２０５に送信して、各分散処理部２０１〜２０５の分散先決定テーブルＴＢを更新する（ステップＳ５２０）。
【０１２１】
図１６は、更新後の分散先決定テーブルの一例を示す説明図である。図１６では、前述のように、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のパケットが第３分散処理部２０３及び第４分散処理部２０４で廃棄された後に更新された分散先決定テーブルＴＢを示す。
【０１２２】
廃棄処理管理部１３０には、パケット廃棄が発生した旨に加えて、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、分散処理部の識別子「＃３，４」とが、廃棄処理管理部１３０に通知されるので、図１３に示すように、ＥＮ「１」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，分散処理部＃１，３，４におけるパケットの中継の有無を示す情報「０」が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０１２３】
図１６に示すように、各分散処理部２０１〜２０５が有する分散先決定テーブルＴＢが更新されるので、次に同じフローのパケットがパケット中継装置１０に到着した場合には、パケットの中継処理は、前回の処理とは異なることとなる。
【０１２４】
図１７は、分散先決定テーブル更新後のマルチキャストパケットの中継結果を示す説明図である。図１７では、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のフローに属するマルチキャストパケットが２回目以降に到着した場合の中継結果を示している。
【０１２５】
前述のように、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のフローに属するマルチキャストパケットが初めてパケット中継装置１０により中継された結果、各分散処理部２０１〜２０５のＴＢ分散先決定テーブルＴＢは、いずれも図１６に示すように、エントリ＃２が追加されている。したがって、同じフローのマルチキャストパケットがパケット中継装置１０に到着した場合、図１１に示す受信側パケット中継処理のステップＳ３１０では、かかるエントリ＃２が見つかることとなる。したがって、ステップＳ３２５が実行され、図１６のエントリ＃２において、「１」が設定されている第２分散処理部２０２及び第５分散処理部２０５に対してのみ、クロスバスイッチ３００からパケットが中継される。
【０１２６】
それゆえ、図１７に示すように、第３分散処理部２０３及び第４分散処理部２０４には、パケットが中継されないので、図１４に示す出力ポートテーブルＴＰ３，ＴＰ４の参照、第３分散処理部２０３におけるＬＡＧ処理、及び第４分散処理部２０４におけるＬＡＧ処理は実行されないこととなる。したがって、パケットを出力しない分散処理部２０３，２０４において、無駄な処理が行われないため、処理能力の浪費が抑制される。
【０１２７】
図１８は、マルチキャストパケットの中継結果を示す第３の説明図である。図１９は、マルチキャストパケットの中継結果を示す第４の説明図である。図２０は、マルチキャストパケットの中継結果を示す第５の説明図である。図２１は、図１３，図１８〜２０に示すマルチキャストパケットの中継結果が得られた後の分散先決定テーブルを示す説明図である。
【０１２８】
図１８は、中継するマルチキャストパケットのフローが、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「１」のフローである場合の中継結果を示している。また、図１９は、中継するマルチキャストパケットのフローが、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「２」のフローである場合の中継結果を、図２０は、中継するマルチキャストパケットのフローが、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「３」のフローである場合の中継結果を、それぞれ示している。
【０１２９】
図１８に示すように、ハッシュ値が「１」の場合には、ＬＡＧ３については、出力ポートとして「物理ポート２／２」が決定される。また、ＬＡＧ４については、出力ポートとして「物理ポート３／１」が決定される。また、物理ポート５／２については、出力ポートとして「物理ポート５／２」が決定される。したがって、第２分散処理部２０２，第３分散処理部２０３，及び第５分散処理部２０５からパケットが出力され、第４分散処理部２０４からはパケットは出力されない。したがって、この中継結果により、分散先決定テーブルＴＢには、図２１に示すエントリ＃３が追加される。このエントリ＃３は、ハッシュ値「１」及び分散処理部の識別子＃４のフィールドのみが「０」である点を除き、デフォルトエントリ（エントリ＃１）と同じである。それゆえ、次回、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「１」のフローに属するパケットを受信した場合、クロスバスイッチ３００から第４分散処理部２０４に対してパケットは、中継されないため、第４分散処理部２０４の処理能力の浪費が抑制される。
【０１３０】
図１９に示すように、ハッシュ値が「２」の場合には、ＬＡＧ３については、出力ポートとして「物理ポート２／１」が決定される。また、ＬＡＧ４については、出力ポートとして「物理ポート４／１」が決定される。また、物理ポート５／２については、出力ポートとして「物理ポート５／２」が決定される。したがって、第２分散処理部２０２，第４分散処理部２０４，及び第５分散処理部２０５からパケットが出力され、第３分散処理部２０３からはパケットは出力されない。したがって、この中継結果により、分散先決定テーブルＴＢには、図２１に示すエントリ＃４が追加される。それゆえ、次回、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「２」のフローに属するパケットを受信した場合、クロスバスイッチ３００から第３分散処理部２０３に対してパケットは、中継されないため、第３分散処理部２０３の処理能力の浪費が抑制される。
【０１３１】
図２０に示すように、ハッシュ値が「３」の場合には、ＬＡＧ３については、出力ポートとして「物理ポート２／２」が決定される。また、ＬＡＧ４については、出力ポートとして「物理ポート５／１」が決定される。また、物理ポート５／２については、出力ポートとして「物理ポート５／２」が決定される。したがって、第２分散処理部２０２及び第５分散処理部２０５からパケットが出力され、第３分散処理部２０３及び第４分散処理部２０４からはパケットは出力されない。したがって、この中継結果により、分散先決定テーブルＴＢには、図２１に示すエントリ＃５が追加される。それゆえ、次回、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「３」のフローに属するパケットを受信した場合、クロスバスイッチ３００から第３分散処理部２０３及び第４分散処理部２０４に対してパケットは、中継されないため、第３分散処理部２０３及び第４分散処理部２０４の処理能力の浪費が抑制される。
【０１３２】
以上説明した第１実施例のパケット中継装置１０では、クロスバスイッチ３００から中継されたマルチキャストパケットが、各分散処理部２０１〜２０５において出力されなかった場合に、出力されなかったパケットと同じフロー（ハッシュ値，送信元アドレス，宛先アドレスにより定められる送信元及び宛先の組み合わせ）に属するパケットが次回以降到着した場合に、最初のパケットが出力されなかった分散処理部に中継されないように定めた新たなエントリを、分散先決定テーブルＴＢに追加する。したがって、以後、同じフローに属するパケットを受信した場合に、分散先決定テーブルＴＢに追加された新たなエントリに基づき、クロスバスイッチ３００においてパケットが中継されるので、パケットが出力されなかった分散処理部へのパケットの中継を抑制できる。各分散処理部ではパケットから得られる情報（ハッシュ値，送信元ＩＰアドレス，宛先ＩＰアドレス）に基づいて出力ポートを決定するので、同じフローに属するパケットについては、出力ポートとして同じ物理ポートが決定される。したがって、パケットを出力しない分散処理部に対してパケットを中継することを抑制できるので、当該分散処理部における無駄な処理（出力ポートテーブルＴＰの参照及びＬＡＧ処理の実行）の実行を抑制し、当該分散処理部における処理能力の浪費を抑制することができる。
【０１３３】
加えて、クロスバスイッチ３００において、パケットが出力されない分散処理部へのパケットの中継が抑制されるので、クロスバスイッチ３００のスイッチ能力の浪費を抑制できる。
【０１３４】
また、分散先決定テーブルＴＢでは、初期設定状態においてデフォルトエントリが設定されているので、新たなフローに属するパケットがパケット中継装置１０に到着した場合であっても、かかるデフォルトエントリを用いてパケットを各分散処理部に中継することができる。
【０１３５】
Ｂ．第２実施例：
第２実施例のパケット中継装置は、分散先決定テーブル及び出力ポートテーブルにおける設定項目と、送信側パケット中継処理の手順と、分散先決定テーブル更新処理に代えて出力ポートテーブル更新処理を実行する点とにおいて、図１に示すパケット中継装置１０と異なり、他の構成は第１実施例と同様である。前述の第１実施例では、各分散処理部２０１〜２０５におけるパケットの廃棄（パケットが出力されなかったこと）を契機として、分散先決定テーブルＴＢを更新していた。これに対し、第２実施例では、パケットの廃棄を契機として、出力ポートテーブルＴＰを更新する。また、第２実施例では、出力ポートがＳＴＰ（Spanning Tree Protocol）の閉塞ポート（パケットの永久ループを抑制するために、パケットを中継しないポートとして予め定められた物理ポート）に設定されていることにより、パケットの廃棄が発生する。
【０１３６】
第２実施例の分散先決定テーブルＴＢは、「ＥＮ」フィールド及び「ハッシュ値」フィールドを有さない点において、図３等に示す第１実施例の分散先決定テーブルＴＢと異なり、他の構成は、第１実施例と同じである。
【０１３７】
Ｂ１．出力ポートリストの構成：
図２２は、第２実施例における出力ポートテーブルの設定内容を模式的に示す説明図である。図２２では、図４と同様に、初期設定状態において、第２分散処理部２０２に設定されている出力ポートテーブルＴＰ２ａ，第３分散処理部２０３に設定されている出力ポートテーブルＴＰ３ａ，第４分散処理部２０４に設定されている出力ポートテーブルＴＰ４ａ，第５分散処理部２０５に設定されている出力ポートテーブルＴＰ５ａを表わしている。
【０１３８】
図２２に示す各出力ポートテーブルＴＰ２ａ〜ＴＰ５ａは、エントリが有効であるか否かを示す情報（ＥＮ）と、ハッシュ値とが追加されている点において、図４に示す第１実施例の出力ポートテーブルＴＰ２〜ＴＰ５と異なり、他の構成は第１実施例と同じである。図２２におけるエントリが有効であるか否かを示す情報（ＥＮ）は、第１実施例の分散先決定テーブルＴＢにおけるＥＮと同じ意味を有する。また、図２２におけるハッシュ値は、第１実施例の分散先決定テーブルＴＢにおけるハッシュ値と同じ意味（同じ算出方法により得られる値）を有する。
【０１３９】
初期設定状態においては、ＥＮとして「＊」が、ハッシュ値として「＊」が設定されており、これらの値「＊」の意味は、第１実施例における分散先決定テーブルＴＢのデフォルトエントリに設定されている「＊」と同じ意味を有する。すなわち、初期状態において各出力ポートテーブルＴＰ２ａ〜ＴＰ５ａには、それぞれデフォルトエントリが設定されている。各デフォルトエントリにおけるＥＮ「＊」及びハッシュ値「＊」は、図１０に示す出力ポートテーブル初期設定処理により設定されたエントリに対して、自動的に付与される。なお、第１分散処理部２０１が有する出力ポートテーブルＴＰも、図２２に示す各出力ポートテーブルＴＰ２ａ〜ＴＰ５ａと同じフィールドを有する。
【０１４０】
Ｂ２．送信側パケット中継処理：
図２３は、第２実施例における送信側パケット中継処理の手順を示す第１のフローチャートである。図２４は、第２実施例における送信側パケット中継処理の手順を示す第２のフローチャートである。
【０１４１】
各分散処理部２０１〜２０５において、出力ポート検索部２２３は、受信したパケットのフロー情報を用いて所定のハッシュ計算を行って、ハッシュ値を求める（ステップＳ６００）。このステップＳ６００において用いられるフロー情報は、宛先ＩＰアドレス，送信元ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号である。
【０１４２】
各分散処理部２０１〜２０５において、出力ポート検索部２２３は、アドレス情報及びステップＳ６００で求めたハッシュ値をキーとして、自らが属する送信側処理部２２０に設定されている出力ポートテーブルＴＰにおいて、ＥＮ「１」，ハッシュ値「受信したパケットのハッシュ値」（すなわちステップＳ６００で求めたハッシュ値）であるエントリを検索し（ステップＳ６０５）、当該エントリが見つかったか否かを判定する（ステップＳ６１０）。
【０１４３】
エントリが見つからなかった場合（ステップＳ６１０：ＮＯ）、各分散処理部２０１〜２０５において、出力ポート検索部２２３は、デフォルトエントリの全ての出力ポートリストを取得する（ステップＳ６３５）。例えば、第２分散処理部２０２において、出力ポートテーブルＴＰ２ａが、図２２に示す初期設定状態であり、ハッシュ値「０」，送信元ＩＰアドレス「ＳＡ１」，宛先アドレス「ＧＡ１」のマルチキャストパケットを受信した場合、第２分散処理部２０２の出力ポート検索部２２３は、出力ポートリスト（ＬＡＧ３，ＬＡＧ４）を取得する。
【０１４４】
各分散処理部２０１〜２０５において、出力ポート検索部２２３は、ステップＳ６３５により出力ポートリストを取得すると、出力ポートリストに記載されている各ポート毎に、受信したパケットに対してフィルタ処理及びＱｏＳ（Quality of Service）処理をパイプラインで実行する（ステップＳ６４０）。このとき、出力ポートリストに記載されているポートがＬＡＧポートである場合には、出力ポート検索部２２３は、ＬＡＧテーブルＴＬを参照して各ＬＡＧポートを構成する物理ポートを決定し、各物理ポート毎にフィルタ処理及びＱｏＳ処理をパイプラインで実行する。出力ポートリストに記載されているポートが物理ポートである場合には、出力ポート検索部２２３は、かかる物理ポートに対してフィルタ処理及びＱｏＳ処理をパイプラインで実行する。
【０１４５】
前述のフィルタ処理とは、パケット中継装置１０による中継を許可するパケットと中継を禁止するパケットとを分別する処理を意味し、例えば、予めユーザにより設定された所定のフィルタポリシーに従って実行することができる。所定のポリシーとしては、例えば、プロトコル番号，送信元ポート番号，及び宛先ポート番号の組み合わせが特定の組み合わせに合致する場合には、パケット中継装置１０による中継を禁止するポリシーを採用することができる。
【０１４６】
また、ＱｏＳ処理とは、予め定められたフロー毎の処理の優先度に従ってパケットの中継を行う処理を意味し、例えば、優先度の高いフローに属するパケットを、優先度の低いフローに属するパケットよりも先に中継処理を行うことを意味する。具体的には、高優先度用のメモリ（キュー）と、低優先度用のメモリ（キュー）とを用意し、パケットがいずれの優先度であるか否かをパケットに含まれるフロー情報に基づき判断し、該当するキューにパケットを格納する処理を、ＱｏＳ処理として採用することができる。
【０１４７】
各分散処理部２０１〜２０５において、物理ポート選択部２２４は、ステップＳ６００で求めたハッシュ値に基づき、ＬＡＧテーブルＴＬを参照して、出力ポートリストに記載されているポート毎に、パケットを出力する物理ポート（出力ポート）を決定する（ステップＳ６４５）。このステップＳ６４５の処理は、図１２に示すステップＳ４１５の処理と同じである。
【０１４８】
各分散処理部２０１〜２０５において、物理ポート選択部２２４は、ステップＳ６４５において決定された物理ポートを、自らが属する分散処理部が有しているか否かを判定する（ステップＳ６５０）。このステップＳ６５０の処理は、図１２に示すステップＳ４２０の処理と同じである。
【０１４９】
ステップＳ６４５において決定された物理ポートを、自らが属する分散処理部が有していないと判定された場合（ステップＳ６５０：ＮＯ）、各分散処理部２０１〜２０５において、パケット出力部２２８は、フィルタ処理及びＱｏＳ処理を実行後のパケットを廃棄する（ステップＳ６８０）。出力監視部２２７は、パケット廃棄が発生した旨、廃棄されたパケットのフロー情報、廃棄されたパケットについて算出されたハッシュ値、及びパケット廃棄が起きた物理ポートの番号を、制御ユニット１００の廃棄処理管理部１３０に通知して（ステップＳ６８５）、送信側パケット中継処理は終了する。
【０１５０】
ステップＳ６４５において決定された物理ポートを、自らが属する分散処理部が有していると判定された場合（ステップＳ６５０：ＹＥＳ）、各分散処理部２０１〜２０５において、物理ポート選択部２２４は、フィルタ処理及びＱｏＳ処理を実行後のパケットと、ステップＳ６４５で決定された出力ポート（物理ポート）の番号を、パケット出力部２２８に通知する（ステップＳ６５５）。
【０１５１】
図２４に示すように、各分散処理部２０１〜２０５において、パケット出力部２２８は、ステップＳ６５５において通知された物理ポート（出力ポート）がＳＴＰの閉塞ポートとして設定されているか否かを判定する（ステップＳ６６０）。なお、パケット中継装置１０では、予め閉塞ポートとしていずれかの物理ポートが設定され得るものとし、以下では、物理ポート５／２が閉塞ポートとして設定されているものとする。
【０１５２】
出力ポートがＳＴＰの閉塞ポートとして設定されている場合（ステップＳ６６０：ＹＥＳ）、前述のステップＳ６８０及びＳ６８５が実行されて、送信側パケット中継処理は終了する。これに対し、出力ポートがＳＴＰの閉塞ポートとして設定されていない場合（ステップＳ６６０：ＮＯ）、パケット出力部２２８は、ステップＳ６５５において通知された物理ポートからパケットを出力する（ステップＳ６７０）。出力監視部２２７は、パケットが出力された旨、出力されたパケットのフロー情報、出力されたパケットについて算出されたハッシュ値、及び出力ポートの番号を、制御ユニット１００の廃棄処理管理部１３０に通知して（ステップＳ６７５）、送信側パケット中継処理は終了する。
【０１５３】
前述のステップＳ６１０において、エントリが見つかった場合（ステップＳ６１０：ＹＥＳ）、各分散処理部２０１〜２０５において、出力ポート検索部２２３は、見つかったエントリにおいて、出力ポートリストが「０」（無し）に設定されているか否かを判定する（ステップＳ６１５）。
【０１５４】
出力ポートリストが「０」に設定されている場合（ステップＳ６１５：ＹＥＳ）、送信側パケット中継処理は終了する。
【０１５５】
前述のステップＳ６１５において、出力ポートが「０」に設定されていない場合（ステップＳ６１５：ＮＯ）、当該エントリに設定されている各ポート毎に、受信したパケットに対してフィルタ処理及びＱｏＳ処理をパイプラインで実行する（ステップＳ６２５）。このとき、出力ポートリストに記載されているポートがＬＡＧポートである場合には、出力ポート検索部２２３は、ＬＡＧテーブルＴＬを参照して、各ＬＡＧポートを構成する物理ポートを決定し、各物理ポート毎に、フィルタ処理及びＱｏＳ処理をパイプラインで実行する。出力ポートリストに記載されているポートが物理ポートである場合には、出力ポート検索部２２３は、かかる物理ポートに対し、フィルタ処理及びＱｏＳ処理をパイプラインで実行する。ステップＳ６３０が実行された後は、前述のステップＳ６５５以降の処理が実行される。
【０１５６】
図２５は、第２実施例におけるマルチキャストパケットの中継結果を模式的に示す説明図である。図２５では、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「０」のフローに属するマルチキャストパケットが最初にパケット中継装置１０に到着した場合の中継結果を示している。また、図２５は、分散先決定テーブルＴＢが図３に示す初期設定状態であり、各分散処理部２０２〜２０５の出力ポートテーブルＴＰ２〜ＴＰ５が図２２に示す初期設定状態である場合の中継結果を示している。
【０１５７】
第１分散処理部２０１において受信されたマルチキャストパケットは、図３に示す分散先決定テーブルＴＢに基づき、図２２に示すように分散処理部２０２〜２０５に中継される。
【０１５８】
第２分散処理部２０２では、出力ポートテーブルＴＰ２が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５５が実行され、出力ポートとして決定された物理ポート２／１，２／３と、フィルタ処理及びＱｏＳ処理後のパケットとがパケット出力部２２８に送信される。物理ポート２／１，２／３は、いずれもＳＴＰの閉塞ポートではないため、その後、ステップＳ６６０〜Ｓ６７５が実行され、物理ポート２／１，２／３からパケットが出力される。
【０１５９】
第３分散処理部２０３では、出力ポートテーブルＴＰ３が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５０が実行される。第１実施例と同様に、ＬＡＧ４について決定された出力ポート（物理ポート２／３）は、第３分散処理部２０３が有する物理ポートではないため、ステップＳ６８０，Ｓ６８５が実行され、パケットは廃棄される。なお、第４分散処理部２０４における処理も、前述の第３分散処理部２０３における処理と同様であり、パケットは廃棄される。
【０１６０】
第５分散処理部２０５では、出力ポートテーブルＴＰ２が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５５が実行され、出力ポートとして決定された物理ポート５／２と、フィルタ処理及びＱｏＳ処理後のパケットとがパケット出力部２２８に送信される。しかしながら、物理ポート５／２は、ＳＴＰの閉塞ポートであるため（ステップＳ６６０：ＹＥＳ）、ステップＳ６８０，Ｓ６８５が実行され、パケットは廃棄される。
【０１６１】
図２５に示すように、第３分散処理部２０３及び第４分散処理部２０４では、ＬＡＧ処理の結果として、自らが有する物理ポートが出力ポートとして決定されないことに起因するパケットの廃棄（以下、「ＬＡＧ廃棄」と呼ぶ）が起こる。したがって、第１実施例と同様に、出力ポートテーブルＴＰの参照やＬＡＧ処理など、無駄な処理が行われており、各分散処理部２０３，２０４の処理能力が浪費されている。また、第５分散処理部２０５においても、出力ポートとして決定された物理ポートがＳＴＰにおける閉塞ポートとして設定されていることに起因するパケットの廃棄（以下、「ＳＴＰ廃棄」と呼ぶ）が起こる。したがって、出力ポートテーブルＴＰ５の参照が無駄な処理となっている。また、分散処理部２０２〜２０５では、ＬＡＧポートを構成する全ての物理ポートについて、それぞれフィルタ処理及びＱｏＳ処理が実行されるため、出力ポートを除く他の物理ポートについて実行するこれらの処理は無駄となり、各分散処理部２０２〜２０５の処理能力を浪費している。しかしながら、第２実施例のパケット中継装置では、後述の出力ポートテーブル更新処理を行うことにより、各第１分散処理部２０１〜第５分散処理部２０５の処理能力の浪費を抑制することができる。
【０１６２】
Ｂ３．出力ポートテーブル更新処理：
図２６は、第２実施例における出力ポートテーブル更新処理の手順を示すフローチャートである。第２実施例のパケット中継装置の起動と共に、分散先決定テーブル更新処理が開始される。
【０１６３】
制御ユニット１００の廃棄処理管理部１３０は、パケットが出力された旨又はパケットが廃棄された旨を通知されるまで待機する（ステップＳ７０５）。そして、いずれかの分散処理部２０１〜２０５からパケットが出力された旨又はパケットが廃棄された旨が通知されると（ステップＳ７０５：ＹＥＳ）、廃棄処理管理部１３０は、通知されたフロー情報，ハッシュ値，及び出力ポート（物理ポート）の番号を、出力ポートテーブル設定部１２０に対して通知すると共に、マスタ出力ポートテーブルＴＰｍの更新を指示する（ステップＳ７１０）。
【０１６４】
出力ポートテーブル設定部１２０は、廃棄処理管理部１３０からの通知が、パケットが出力された旨であるか否かを判定し（ステップＳ７１５）、パケットが出力された旨である場合には（ステップＳ７１５：ＹＥＳ）、マスタ出力ポートテーブルＴＰｍにおいて、デフォルトエントリをコピーし、コピーしたエントリにおいて、出力ポートリストフィールドを、通知された出力ポートの属するポート（出力ポートがＬＡＧポートの一部である場合には当該ＬＡＧポート，出力ポートがＬＡＧポートの一部でない場合には当該物理ポート）に、ＥＮを「１」に、ハッシュ値を「出力されたパケットについて算出されたハッシュ値」に、それぞれ更新した新たなエントリを追加する（ステップＳ７２０）。なお、既に、各フィールドの値が同一であるエントリが設定されている場合には、当該エントリを上書きする。
【０１６５】
廃棄処理管理部１３０からの通知が、パケットが出力された旨でない（すなわち、パケットが廃棄された旨である）場合には（ステップＳ７１５：ＮＯ）、出力ポートテーブル設定部１２０は、マスタ出力ポートテーブルＴＰｍにおいて、デフォルトエントリをコピーし、コピーしたエントリにおいて、出力ポートリストフィールドを「０」（無し）に、ＥＮを「１」に、ハッシュ値を「廃棄パケットについて算出されたハッシュ値」に、それぞれ更新した新たなエントリを追加する（ステップＳ７２５）。なお、既に、各フィールドの値が同一であるエントリが設定されている場合には、当該エントリを上書きする。
【０１６６】
前述のステップＳ７２０又はＳ７２５の処理が終了した後、出力ポートテーブル設定部１２０は、マスタ出力ポートテーブルＴＰｍを各分散処理部２０１〜２０５に送信して、各分散処理部２０１〜２０５の出力ポートテーブルＴＰを更新する（ステップＳ７３０）。
【０１６７】
図２７は、更新後の出力ポートテーブルの一例を示す説明図である。図２７では、前述のように、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のパケットが各分散処理部２０２〜２０５に最初に中継されて処理された後に更新された出力ポートテーブルＴＰ２ａ〜ＴＰ５ａを示す。
【０１６８】
第２分散処理部２０２の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力された旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、出力ポート「物理ポート２／１，２／３」とが通知される。したがって、図２７に示すように、出力ポートテーブルＴＰ２ａには、ＥＮ「１」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「ＬＡＧ３，ＬＡＧ４」，対応する物理ポート「物理ポート２／１，２／３」が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０１６９】
第３分散処理部２０３の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力された旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「２／３」が通知される。したがって、図２７に示すように、出力ポートテーブルＴＰ３ａには、ＥＮ「１」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０１７０】
第４分散処理部２０４の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力された旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「２／３」が通知される。したがって、図２７に示すように、出力ポートテーブルＴＰ４ａには、ＥＮ「１」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０１７１】
第５分散処理部２０５の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力された旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「５／２」が通知される。したがって、図２７に示すように、出力ポートテーブルＴＰ５ａには、ＥＮ「１」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０１７２】
図２７に示すように、各分散処理部２０２〜２０５が有する分散先決定テーブルＴＢが更新されるので、次に同じフローのパケットが第２実施例のパケット中継装置に到着した場合には、パケットの中継処理は、前回の処理とは異なることとなる。
【０１７３】
図２８は、出力ポートテーブル更新後のマルチキャストパケットの中継結果を模式的に示す説明図である。図２８では、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のフローに属するマルチキャストパケットが２回目以降に到着した場合の中継結果を示している。
【０１７４】
前述のように、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」のフローに属するマルチキャストパケットが初めてパケット中継装置１０によって中継された結果、各出力ポートテーブルＴＰ２ａ〜ＴＰ５ａには、いずれも図２２に示すように、エントリ＃２が追加されている。したがって、例えば、第２分散処理部２０２においては、図２３に示すステップＳ６１０において、「エントリあり」と判断され、ステップＳ６１５，Ｓ６２５，Ｓ６５５，Ｓ６６０，Ｓ６７０，Ｓ６７５が実行されることとなる。したがって、当該フローに属するパケットを最初に受信した場合と異なり、ＬＡＧ処理（ステップＳ６４５）を実行せず出力ポートが決定されるため、第２分散処理部２０２の処理能力の浪費を抑制できる。加えて、ステップＳ６０５において見つかったエントリには、各ＬＡＧポートに対応する物理ポートとして１つの物理ポートのみが記載されている。したがって、各ＬＡＧポートについてフィルタ処理及びＱｏＳ処理を行う物理ポートの数が最少数「１」に抑制されるので、第２分散処理部２０２における処理能力の浪費を抑制できる。
【０１７５】
また、第３分散処理部２０３においては、出力ポートテーブルＴＰ３ａを参照してエントリ＃２がヒットし、かかるエントリにおいて出力ポートリストに「０」が設定されているため、ＬＡＧ処理，フィルタ処理，ＱｏＳ処理等が実行されることなく送信側パケット中継処理が終了する。したがって、これら処理を実行するための第３分散処理部２０３の処理能力の浪費を抑制できる。なお、第４分散処理部２０４においても、第３分散処理部２０３と同様に、処理能力の浪費を抑制できる。
【０１７６】
第５分散処理部２０５においては、第２分散処理部２０２と同様に、ステップＳ６１０において、「エントリあり」と判断され、ステップＳ６１５，Ｓ６２５，Ｓ６５５，Ｓ６６０，Ｓ６７０，Ｓ６７５が実行されるため、第５分散処理部２０５の処理能力の浪費を抑制できる。
【０１７７】
以上説明した第２実施例のパケット中継装置では、クロスバスイッチ３００から中継されたマルチキャストパケットが、各分散処理部２０１〜２０５において出力されなかった場合に、出力されなかったパケットと同じフロー（ハッシュ値，送信元ＩＰアドレス，宛先ＩＰアドレスにより定められる送信元及び宛先の組み合わせ）に属するパケットが次回以降到着した場合に、最初のパケットが出力されなかった分散処理部において、ＬＡＧ処理等を行わないで廃棄される。したがって、最初のパケットが出力されなかった分散処理部における処理能力の浪費を抑制できる。
【０１７８】
加えて、第２実施例のパケット中継装置では、クロスバスイッチ３００から中継されたマルチキャストパケットが、各分散処理部２０１〜２０５において出力された場合に、出力されたパケットと同じフローに属するパケットが次回以降到着した場合に、ＬＡＧ処理を行わないで出力ポートを決定できるように、出力ポートテーブルが更新される。したがって、同じフローに属するパケットが次回以降到着した場合に、ＬＡＧ処理を省略できると共に、出力ポートとして決定されないポートにおけるフィルタ処理及びＱｏＳ処理を省略できる。それゆえ、最初のパケットが出力された分散処理部における処理能力の浪費を抑制できる。
【０１７９】
また、第２実施例のパケット中継装置では、ＳＴＰ廃棄が発生した場合に、かかるＳＴＰ廃棄発生の事実をフィードバックして、出力ポートテーブルを更新するようにしている。したがって、ＳＴＰの閉塞ポートが変更された場合に、新たに閉塞ポートとして設定された物理ポートを有する分散処理部において、ＬＡＧ処理等を実行させないように自動的に設定することができる。それゆえ、管理者は、ＳＴＰにおける閉塞ポートの変更に伴って出力ポートテーブル等の変更を行なわないで済むため、管理者の作業負担を軽減することができる。
【０１８０】
Ｃ．第３実施例：
第３実施例のパケット中継装置は、出力ポートテーブルにおける設定項目と、送信側パケット中継処理の手順と、出力ポートテーブル更新処理の手順とにおいて、第２実施例のパケット中継装置と異なり、他の構成は、第２実施例と同様である。前述の第２実施例では、出力ポートがＳＴＰの閉塞ポートに設定されている場合にパケットを廃棄していたが、第３実施例では、各物理ポートに対して、ＭＴＵ制限が設定されており、このＭＴＵ制限を満たさないパケットは廃棄される。ＭＴＵ制限とは、パケット長がＭＴＵ（Maximum Transmission Unit：一度に送信できるデータの最大サイズ）よりも長い場合にパケットを廃棄することを意味する。なお、以下では、物理ポート５／２のＭＴＵ制限として７５０バイトが設定されており、他の物理ポートにはＭＴＵ制限として１５００バイトが設定されているものとする。
【０１８１】
Ｃ１．出力ポートリストの構成：
図２９は、第３実施例における出力ポートテーブルの設定内容を模式的に示す説明図である。図２９では、図４と同様に、初期設定状態において、第２分散処理部２０２に設定されている出力ポートテーブルＴＰ２ｂ，第３分散処理部２０３に設定されている出力ポートテーブルＴＰ３ｂ，第４分散処理部２０４に設定されている出力ポートテーブルＴＰ４ｂ，第５分散処理部２０５に設定されている出力ポートテーブルＴＰ５ｂを表わしている。
【０１８２】
図２９に示す各出力ポートテーブルＴＰ２ｂ〜ＴＰ５ｂは、「パケット長（ＰＬ）」フィールドを有する点において、図２２に示す第２実施例の出力ポートテーブルＴＰ２ａ〜ＴＰ５ａと異なり、他の構成は、出力ポートテーブルＴＰ２ａ〜ＴＰ５ａと同じである。図２９におけるパケット長フィールド（ＰＬ）には、パケット長に応じた３種類のパケット長識別子が設定される。
【０１８３】
図３０は、第３実施例の出力ポートテーブルに設定されるパケット長識別子の内容を示す説明図である。図３０に示すように、第３実施例では、パケット長に応じて３つのパケット長識別子が設定されている。具体的には、７５０バイト未満のパケット長に対して、パケット長識別子「ａ」が設定されている。また、７５０バイト以上かつ１５００バイト未満のパケット長に対してパケット長識別子「ｂ」が、１５００バイト以上のパケット長に対してパケット長識別子「ｃ」が、それぞれ設定されている。また、デフォルトの設定値として、パケット長の大きさに関わらず「＊」が設定されている。
【０１８４】
図２９に示すように、初期設定状態においては、各出力ポートテーブルＴＰ２ｂ〜ＴＰ５ｂにおいて、エントリ＃１（デフォルトエントリ）が設定されている。このデフォルトエントリでは、ＥＮとして「＊」が、パケット長識別子として「＊」が設定されている。なお、各デフォルトエントリにおけるＥＮ「＊」及びパケット長「＊」は、図１０に示す出力ポートテーブル初期設定処理により設定されたエントリに対して、自動的に付与される。なお、第１分散処理部２０１が有する出力ポートテーブルＴＰも、図２９に示す各出力ポートテーブルＴＰ２ｂ〜ＴＰ５ｂと同じフィールドを有する。
【０１８５】
Ｃ２．送信側パケット中継処理：
図３１は、第３実施例における送信側パケット中継処理の手順を示す第１のフローチャートである。図３２は、第３実施例における送信側パケット中継処理の手順を示す第２のフローチャートである。第３実施例における送信側パケット中継処理は、ステップＳ６０２を新たに実行し、ステップＳ６０５に代えてステップＳ６０５ａを実行し、ステップＳ６６０に代えてステップＳ６６０ａを実行し、ステップＳ６７５に代えてステップＳ６７５ａを実行し、ステップＳ６８５に代えてステップＳ６８５ａを実行する点において、図２３，２４に示す第２実施例における送信側パケット中継処理と異なり、他の手順は第２実施例と同じである。
【０１８６】
第３実施例では、ハッシュ値を求めた後（ステップＳ６００の後）、各第１分散処理部２０１〜２０５の出力ポート検索部２２３は、受信したパケットのパケット長に基づき、パケット長識別子を決定する（ステップＳ６０２）。
【０１８７】
各第１分散処理部２０１〜２０５の出力ポート検索部２２３は、アドレス情報，ステップＳ６００で求めたハッシュ値，及びステップＳ６０２で求めたパケット長をキーとして、自らが属する送信側処理部２２０に設定されている出力ポートテーブルＴＰにおいて、ＥＮ「１」，ハッシュ値「受信したパケットのハッシュ値」（すなわちステップＳ６００で求めたハッシュ値），パケット長「受信したパケットのパケット長のパケット長識別子」（すなわちステップＳ６０２で求めたパケット長識別子）であるエントリを検索する（ステップＳ６０５ａ）。
【０１８８】
図３１に示すステップＳ６５５の処理（すなわち、フィルタ処理及びＱｏＳ処理を実行後のパケットと決定された出力ポートの番号をパケット出力部２２８に通知する処理）が実行された後、各分散処理部２０１〜２０５において、パケット出力部２２８は、図３２に示すように、出力予定のパケットがステップＳ６５５において通知された物理ポート（出力ポート）に設定されているＭＴＵ制限を満たしているか否かを判定する（ステップＳ６６０ａ）。
【０１８９】
出力予定のパケットがＭＴＵ制限を満たしていない場合には（ステップＳ６６０ａ：ＮＯ）、図３１に示すステップＳ６８０，Ｓ６８５ａが実行される。ステップＳ６８５ａにおいて、出力監視部２２７は、パケット廃棄が発生した旨、廃棄されたパケットのフロー情報、廃棄されたパケットについて算出されたハッシュ値、及びパケット廃棄が起きた物理ポートの番号に加えて、廃棄されたパケットのパケット長を、制御ユニット１００の廃棄処理管理部１３０に通知する。
【０１９０】
出力予定のパケットがＭＴＵ制限を満たしている場合には（ステップＳ６６０ｂ：ＹＥＳ）、図３２に示すようにステップＳ６７０，Ｓ７６５ａが実行される。ステップＳ６７５ａにおいて、出力監視部２２７は、パケットが出力された旨、出力されたパケットのフロー情報、出力されたパケットについて算出されたハッシュ値、及び出力ポートの番号に加えて、出力されたパケットのパケット長を、制御ユニット１００の廃棄処理管理部１３０に通知する。
【０１９１】
図３３は、第３実施例におけるマルチキャストパケットの中継結果を模式的に示す説明図である。図３３では、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値が「０」のフローに属するマルチキャストパケットであって、パケット長が１０００バイトのパケットが最初にパケット中継装置１０に到着した場合の中継結果を示している。また、図３３は、分散先決定テーブルＴＢが図３に示す初期設定状態であり、各分散処理部２０２〜２０５の出力ポートテーブルＴＰ２ｂ〜ＴＰ５ｂが図２９に示す初期設定状態である場合の中継結果を示している。
【０１９２】
第１分散処理部２０１において受信したマルチキャストパケットは、図３に示す分散先決定テーブルＴＢに基づき、図３３に示すように、分散処理部２０２〜２０５に中継される。
【０１９３】
第２分散処理部２０２では、出力ポートテーブルＴＰ２が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５５が実行され、出力ポートとして決定された物理ポート２／１，２／３と、フィルタ処理及びＱｏＳ処理後のパケットとがパケット出力部２２８に送信される。物理ポート２／１，２／３のＭＴＵ制限はいずれも１５００バイトであるため、出力予定のパケット（パケット長：１０００バイト）はＭＴＵ制限を満たすため、その後、ステップＳ６７０，Ｓ６７５ａが実行され、物理ポート２／１，２／３からパケットが出力される。
【０１９４】
第３分散処理部２０３では、出力ポートテーブルＴＰ３が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５０が実行される。第１実施例と同様に、ＬＡＧ４について決定された出力ポート（物理ポート２／３）は、第３分散処理部２０３が有する物理ポートではないため、ステップＳ６８０，Ｓ６８５ａが実行され、パケットは廃棄される。なお、第４分散処理部２０４における処理も、前述の第３分散処理部２０３における処理と同様であり、パケットは廃棄される。
【０１９５】
第５分散処理部２０５では、出力ポートテーブルＴＰ２が初期設定状態であり、ＥＮが「１」であるエントリがないため、ステップＳ６３５〜Ｓ６５５が実行され、出力ポートとして決定された物理ポート５／２と、フィルタ処理及びＱｏＳ処理後のパケットとがパケット出力部２２８に送信される。しかしながら、物理ポート５／２のＭＴＵ制限は７５０バイトであるため、出力予定のパケット（パケット長：１０００バイト）はＭＴＵ制限を満たさない。それゆえ、ステップＳ６８０，Ｓ６８５ａが実行され、パケットは廃棄される。
【０１９６】
図３３に示すように、第３分散処理部２０３及び第４分散処理部２０４では、ＬＡＧ廃棄が起こる。したがって、第１，２実施例と同様に、各分散処理部２０３，２０４の処理能力が浪費されている。また、第５分散処理部２０５においても、パケットが出力ポートとして決定された物理ポートのＭＴＵ制限を満たさないことに起因するパケットの廃棄（以下、「ＭＴＵ廃棄」と呼ぶ）が起こる。したがって、出力ポートテーブルＴＰ５の参照が無駄な処理となっている。また、分散処理部２０２〜２０５では、ＬＡＧポートを構成する全ての物理ポートについて、それぞれフィルタ処理及びＱｏＳ処理が実行されるため、出力ポートを除く他の物理ポートについて実行するこれらの処理は無駄となり、各分散処理部２０２〜２０５の処理能力を浪費している。しかしながら、第３実施例のパケット中継装置では、後述の出力ポートテーブル更新処理を行うことにより、各第１分散処理部２０１〜第５分散処理部２０５の処理能力の浪費を抑制することができる。
【０１９７】
Ｃ３．出力ポートテーブル更新処理：
図３４は、第３実施例における出力ポートテーブル更新処理の手順を示すフローチャートである。第３実施例のパケット中継装置の起動と共に、分散先決定テーブル更新処理が開始される。第３実施例における出力ポートテーブル更新処理は、ステップＳ７２０に代えてステップＳ７２０ａを実行し、ステップＳ７２５に代えてステップＳ７２５ａを実行する点において、図２６に示す第２実施例における出力ポートテーブル更新処理と異なり、他の手順は第２実施例と同じである。
【０１９８】
第３実施例では、廃棄処理管理部１３０からの通知が、パケットが出力された旨である場合には（ステップＳ７１５：ＹＥＳ）、出力ポートテーブル設定部１２０は、マスタ出力ポートテーブルＴＰｍにおいて、デフォルトエントリをコピーし、コピーしたエントリにおいて、出力ポートリストフィールドを、通知された出力ポートの属するポート（出力ポートがＬＡＧポートの一部である場合には当該ＬＡＧポート，出力ポートがＬＡＧポートの一部でない場合には当該物理ポート）に、ＥＮを「１」に、ハッシュ値を「出力されたパケットについて算出されたハッシュ値」に、パケット長を「出力されたパケットのパケット長に対応するパケット長識別子」に、それぞれ更新した新たなエントリを追加する（ステップＳ７２０ａ）。なお、既に、各フィールドの値が同一であるエントリが設定されている場合には、当該エントリを上書きする。
【０１９９】
廃棄処理管理部１３０からの通知が、パケットが出力された旨でない（すなわち、パケットが廃棄された旨である）場合には（ステップＳ７１５：ＮＯ）、出力ポートテーブル設定部１２０は、マスタ出力ポートテーブルＴＰｍにおいて、デフォルトエントリをコピーし、コピーしたエントリにおいて、出力ポートリストフィールドを「０」（無し）に、ＥＮを「１」に、ハッシュ値を「廃棄パケットについて算出されたハッシュ値」に、パケット長を「廃棄パケットのパケット長に対応するパケット長識別子」に、それぞれ更新した新たなエントリを追加する（ステップＳ７２５ａ）。なお、既に、各フィールドの値が同一であるエントリが設定されている場合には、当該エントリを上書きする。
【０２００】
図３５は、更新後の出力ポートテーブルの一例を示す説明図である。図３５では、前述のように、送信元ＩＰアドレス「ＳＡ１」，宛先ＩＰアドレス「ＧＡ１」，ハッシュ値「０」，パケット長「１０００バイト」のパケットが各第２分散処理部２０２〜２０５に中継されて処理された後に更新された出力ポートテーブルＴＰ２ｂ〜ＴＰ５ｂを示す。
【０２０１】
第２分散処理部２０２の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力された旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、出力ポート「物理ポート２／１，２／３」と、パケット長「１０００バイト」が通知される。したがって、図３５に示すように、出力ポートテーブルＴＰ２ｂには、ＥＮ「１」，パケット長「ｂ」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「ＬＡＧ３，ＬＡＧ４」が、対応する物理ポート「物理ポート２／１，２／３」が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０２０２】
第３分散処理部２０３の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力されなかった旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「２／３」，パケット長「１０００バイト」が通知される。したがって、図３５に示すように、出力ポートテーブルＴＰ３ｂには、ＥＮ「１」，パケット長「ｂ」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０２０３】
第４分散処理部２０４の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力されなかった旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「２／３」，パケット長「１０００バイト」が通知される。したがって、図３５に示すように、出力ポートテーブルＴＰ３ｂには、ＥＮ「１」，ＭＴＵ長「ｂ」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０２０４】
第５分散処理部２０５の出力監視部２２７から廃棄処理管理部１３０に対して、パケットが出力されなかった旨と、フロー情報「ＳＡ１，ＧＡ１」と、ハッシュ値「０」と、パケット廃棄が起きた物理ポート「５／２」，パケット長「１０００バイト」が通知される。したがって、図３５に示すように、出力ポートテーブルＴＰ５ａには、ＥＮ「１」，ＭＴＵ長「ｂ」，ハッシュ値「０」，フロー情報「ＳＡ１，ＧＡ１」，出力ポートリスト「０」（無し）が、それぞれ設定されたエントリ（エントリ＃２）が追加される。
【０２０５】
図３５に示すように、各分散処理部２０２〜２０５が有する分散先決定テーブルＴＢが更新されるので、次に同じフローのパケットが第３実施例のパケット中継装置に到着した場合には、パケットの中継処理は、前回の処理とは異なることとなる。具体的には、前述の第２実施例の図２８に示す中継結果と同じ結果を得ることとなる。したがって、第２実施例と同様に、各分散処理部２０２〜２０５における処理能力の浪費を抑制することができる。
【０２０６】
以上説明した第３実施例のパケット中継装置は、第２実施例のパケット中継装置と同様な効果を有する。加えて、第３実施例のパケット中継装置では、クロスバスイッチ３００から中継されたマルチキャストパケットが、各分散処理部２０１〜２０５において出力された場合に、出力されたパケットと同じフローに属し、かつ、出力されたパケットと同じ程度の大きさのパケットが次回以降到着した場合に、ＬＡＧ処理を行わないで出力ポートを決定できるように、出力ポートテーブルが更新される。したがって、同じフローに属し、かつ、同じ程度の大きさのパケットが次回以降到着した場合に、ＬＡＧ処理を省略できると共に、出力ポートとして決定されないポートにおけるフィルタ処理及びＱｏＳ処理を省略できる。それゆえ、最初のパケットが出力された分散処理部における処理能力の浪費を抑制できる。
【０２０７】
また、第３実施例のパケット中継装置では、ＭＴＵ廃棄が発生した場合に、かかるＭＴＵ廃棄発生の事実をフィードバックして、出力ポートテーブルを更新するようにしているので、いずれかの物理ポートにおいてＭＴＵ制限が変更された場合に、かかる物理ポートを有する分散処理部において、ＬＡＧ処理等を実行させないように自動的に設定することができる。したがって、管理者は、ＭＴＵ制限の変更に伴って出力ポートテーブル等の変更を行なわないで済むため、管理者の作業負担を軽減することができる。
【０２０８】
Ｄ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０２０９】
Ｄ１．変形例１：
各実施例におけるパケット中継装置１０の構成は、あくまで一例であり、種々変形可能である。例えば、第２実施例では、ＳＴＰの閉塞ポートとして設定されている物理ポートは、物理ポート５／２のみであったが、他の物理ポートに設定されていてもよい。第３実施例では、物理ポート５／２に対してＭＴＵ制限として７５０バイトが、他の物理ポートに対してＭＴＵ制限として１５００バイトが、それぞれ設定されていたが、本発明はこれに限定されるものではない。例えば、ＭＴＵ制限として、物理ポート２／１，２／３に５７６バイトを、他の物理ポートに１５００バイトを、それぞれ設定することもできる。
【０２１０】
また、各実施例において、分散先決定テーブルＴＢや、出力ポートテーブルＴＰ等の各テーブルに設定されていたエントリは、送信元アドレスが「ＳＡ１」であり、宛先アドレスが「ＧＡ１」のエントリのみであったが、これに加えて、他のアドレス情報のエントリを設定しておくこともできる。また、各実施例において、分散処理部の数は５つであったが、５つに限らず任意の数とすることができる。また、第１実施例では、クロスバスイッチ３００によるマルチキャストパケットの中継先として、マルチキャストパケットを受信した第１分散処理部２０１を除く、他の分散処理部２０２〜２０５から決定されていたが、これに代えて、第１分散処理部２０１を含む任意の分散処理部を中継先として決定することもできる。
【０２１１】
また、各実施例では、分散先決定テーブルＴＢ及び出力ポートテーブルＴＰの初期設定は、それぞれ、図９に示す分散先決定テーブル初期設定処理、及び図１０に示す出力ポートテーブル初期設定処理を実行することにより自動的に行なわれていたが、これに代えて、管理者がマニュアルで設定することもできる。
【０２１２】
また、各実施例では、Ｌ３スイッチとして、本発明のパケット中継装置を適用した例を示したが、Ｌ３スイッチに代えて、ルーターとして本発明のパケット中継装置を適用することもできる。また、Ｌ３スイッチに代えて、Ｌ２スイッチを本発明のパケット中継装置に適用することもできる。この構成では、レイヤ２フレームは、本発明のパケット中継装置が中継するパケットに相当する。
【０２１３】
また、各実施例を組み合わせて、ＬＡＧ廃棄，ＳＴＰ廃棄，ＭＴＵ廃棄のいずれかに起因してパケットが廃棄された場合には、各分散処理部２０１〜２０５の分散先決定テーブルＴＢを更新し、パケットが出力された場合には、各分散処理部２０１〜２０５の出力ポートテーブルＴＰを更新することもできる。なお、パケット廃棄の原因は、上述したＬＡＧ廃棄，ＳＴＰ廃棄，ＭＴＵ廃棄に限らず、任意の理由を採用することができる。
【０２１４】
Ｄ２．変形例２：
各実施例では、マルチキャストパケットを受信した分散処理部は、クロスバスイッチ３００に対して、パケットと中継先（分散先）を指定したビットマップをクロスバスイッチ３００に送信し、クロスバスイッチ３００において指定された分散処理部に対してパケットを中継していたが、本発明は、この構成に限定されるものではない。例えば、受信側経路検索部２１６が、分散先決定テーブルＴＢにより指定された各分散処理部に対して１対１でパケットが中継されるように、パケットと中継先となる分散処理部を示す情報を、指定された分散処理部の数だけクロスバスイッチ３００に送信する構成を採用することができる。このような構成により、クロスバスイッチ３００がマルチキャスト中継（１つのパケットを複数の分散処理部に対して並行して送信する処理）を実行できない場合であっても、各実施例と同様な作用及び効果を奏することができる。
【０２１５】
Ｄ３．変形例３：
各実施例では、全てのフローに対して平等に処理を実行し、分散先決定テーブルＴＢや出力ポートテーブルＴＰを更新していたが、本発明は、これに限定されるものではない。フロー毎に優先度を設けて、優先度の高いフローに属するパケットを受信した場合には、各実施例の処理を実行し、優先度の低いフローに属するパケットを受信した場合には、分散先決定テーブルＴＢや出力ポートテーブルＴＰを更新しないようにすることもできる。各実施例では、パケットの廃棄や出力があると、分散先決定テーブルＴＢや出力ポートテーブルＴＰに新たなエントリを追加するため、様々なフローに属するパケットを受信すると、多くのエントリが分散先決定テーブルＴＢや出力ポートテーブルＴＰに追加されることとなる。したがって、各分散処理部２０１〜２０５における受信側テーブル記憶部２１４や送信側テーブル記憶部２２６、及び制御ユニット１００のテーブル記憶部１４０として、大きな記憶容量が必要となり、パケット中継装置の製造コストが上昇する。しかしながら、上述した優先度の高いフローに関してのみエントリを追加する構成を採用することで、各記憶部２１４，２２６，１４０の記憶容量を小さく抑えることができ、パケット中継装置のコストを抑制できる。また、優先度の高いフローについては、各分散処理部での処理能力の浪費を抑制できるので、単位時間当たりの処理パケット数を高めることができ、当該フローのスループットを向上させることができる。なお、フローの優先度については、予め管理者が設定する構成や、各フローの使用帯域を監視して、使用帯域が大きなフローは優先度が高く、使用帯域が小さいフローは優先度が低いと判断する構成を採用することができる。
【０２１６】
Ｄ４．変形例４：
各実施例では、分散先決定テーブルＴＢや出力ポートテーブルＴＰに追加されたエントリは削除されなかったが、これに代えて、エントリの削除を行なう構成を採用することができる。例えば、分散先決定テーブルＴＢ及び出力ポートテーブルＴＰにエントリを追加した時刻を記録し、当該エントリが所定期間内に参照されない場合には、当該エントリを削除することもできる。このような構成により、参照されない無駄なエントリが残存することを抑制できるので、各記憶部２１４，２２６，１４０の記憶容量を小さく抑えることができる。また、エントリが長期間参照されない場合、かかる期間内にパケット中継装置１０の構成が変更され（例えば、パケット中継装置１０が接続するＶＬＡＮの変更等）、これに伴って、ＬＡＧテーブルＴＬや、マルチキャスト経路テーブルＴＭや、論理インタフェース変換テーブルＴＣが変更される場合もある。この場合、ＬＡＧ処理によって決定される物理ポートも変更するため、分散先決定テーブルＴＢや出力ポートテーブルＴＰのエントリが無効となるおそれある。しかしながら、所定期間に参照されないエントリを削除することにより、変更後の各テーブルＴＬ，ＴＭ，ＴＣに応じたエントリを、分散先決定テーブルＴＢや出力ポートテーブルＴＰに新たに追加することができる。
【０２１７】
また、分散先決定テーブルＴＢや出力ポートテーブルＴＰに追加するエントリを決める際に参照した情報が更新されたか否かを監視して、かかる情報が変化した場合に、変化した情報を参照して決定されたエントリを削除する構成を採用することもできる。例えば、テーブルＴＬや、マルチキャスト経路テーブルＴＭや、論理インタフェース変換テーブルＴＣや、ＳＴＰにおける閉塞ポートや、ＭＴＵ制限の更新を監視し、いずれかのテーブル又は情報が更新された場合には、分散先決定テーブルＴＢ又は出力ポートテーブルＴＰから、デフォルトエントリを除く他のエントリを削除することもできる。このような構成により、無効なエントリが分散先決定テーブルＴＢや出力ポートテーブルＴＰに残存することを抑制できる。したがって、各記憶部２１４，２２６，１４０の記憶容量を小さく抑えることができると共に、誤った物理ポートへのパケットの中継を抑制できる。
【０２１８】
Ｄ５．変形例５：
第２，３実施例では、パイプライン処理として実行する処理は、フィルタ処理とＱｏＳ処理であったが、本発明はこれに限定されるものではない。例えば、これらの処理に加えて、パケットがブロードキャストストームを形成するパケットであるか否かの判定処理を実行することもできる。
【０２１９】
Ｄ６．変形例６：
第２，３実施例では、パケットの廃棄があった場合に、パケットの廃棄が生じた分散処理部の各出力ポートテーブルＴＰにおいて、出力ポートリスト「０」（無し）のエントリを追加していたが、これに代えて、かかるエントリを追加しないこともできる。この場合であっても、パケットの出力があった場合には、出力された物理ポートのみがリストアップされたエントリが出力ポートテーブルＴＰに追加される。したがって、出力されたパケットと同じフローに属するパケットが次回以降到着した場合に、ＬＡＧ処理を行わないで出力ポートを決定できるので、分散処理部の処理能力の浪費を抑制できる。
【０２２０】
Ｄ７．変形例７：
各実施例においてハッシュ値を求める際に基礎とした情報（ハッシュキー）は、宛先ＩＰアドレス，送信元ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号であったが、本発明は、これに限定されるものではない。例えば、宛先ＩＰアドレス，送信元ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号のうち、少なくとも１つの情報を、ハッシュ値を求める際に基礎とすることもできる。また、宛先ＩＰアドレス，送信元ＩＰアドレス，プロトコル番号，宛先ポート番号，及び送信元ポート番号に加えて、送信元ＭＡＣ（Media Access Control）アドレス及び受信側ＭＡＣアドレスを、ハッシュ値を求める際に基礎とすることもできる。すなわち、一般には、パケットから取得可能な情報であって、パケットの送信元及び宛先の組み合わせを特定可能な任意の情報を、本発明のパケット中継装置におけるフロー情報として採用することができる。
【０２２１】
Ｄ８．変形例８：
各実施例において、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。また、これとは逆に、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよい。
【符号の説明】
【０２２２】
１０…パケット中継装置
１００…制御ユニット
２０１…第１分散処理部
２０２…第２分散処理部
２０３…第３分散処理部
２０４…第４分散処理部
２０５…第５分散処理部
３００…クロスバスイッチ
２１０…受信側処理部
２１２…パケット受信部
２１４…受信側テーブル記憶部
２１６…受信側経路検索部
２２０…送信側処理部
２２２…送信側経路検索部
２２３…出力ポート検索部
２２４…物理ポート選択部
２２６…送信側テーブル記憶部
２２７…出力監視部
２２８…パケット出力部
ＴＢ…分散先決定テーブル
ＴＬ…ＬＡＧテーブル
ＴＭ…マルチキャスト経路テーブル
ＴＰ…出力ポートテーブル
１０５…制御部
１１０…分散先決定テーブル設定部
１２０…出力ポートテーブル設定部
１３０…廃棄処理管理部
１４０…テーブル記憶部
ＴＣ…論理インタフェース変換テーブル
ＴＬｍ…マスタＬＡＧテーブル
ＴＢｍ…マスタ分散先決定テーブル
ＴＰｍ…マスタ出力ポートテーブル
ＴＰ２〜ＴＰ５，ＴＰ２ａ〜ＴＰ５ａ，ＴＰ２ｂ〜ＴＰ５ｂ…出力ポートテーブル
【図１】
0005369069.tif 000002
【図２】
0005369069.tif 000003
【図３】
0005369069.tif 000004
【図４】
0005369069.tif 000005
【図５】
0005369069.tif 000006
【図６】
0005369069.tif 000007
【図７】
0005369069.tif 000008
【図８】
0005369069.tif 000009
【図９】
0005369069.tif 000010
【図１０】
0005369069.tif 000011
【図１１】
0005369069.tif 000012
【図１２】
0005369069.tif 000013
【図１３】
0005369069.tif 000014
【図１４】
0005369069.tif 000015
【図１５】
0005369069.tif 000016
【図１６】
0005369069.tif 000017
【図１７】
0005369069.tif 000018
【図１８】
0005369069.tif 000019
【図１９】
0005369069.tif 000020
【図２０】
0005369069.tif 000021
【図２１】
0005369069.tif 000022
【図２２】
0005369069.tif 000023
【図２３】
0005369069.tif 000024
【図２４】
0005369069.tif 000025
【図２５】
0005369069.tif 000026
【図２６】
0005369069.tif 000027
【図２７】
0005369069.tif 000028
【図２８】
0005369069.tif 000029
【図２９】
0005369069.tif 000030
【図３０】
0005369069.tif 000031
【図３１】
0005369069.tif 000032
【図３２】
0005369069.tif 000033
【図３３】
0005369069.tif 000034
【図３４】
0005369069.tif 000035
【図３５】
0005369069.tif 000036