(57)【要約】【課題】通信負荷の偏りを緩和することができる技術を提供することを目的とする。【解決手段】受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する。そして、複数の物理ポートの中の宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、受信パケットを送信すべき物理ポートを、演算結果に基づいて選択する。また、候補ポートを含む１以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、受信パケットの送信に利用すべきポートグループを、演算結果に基づいて選択してもよい。ここで、演算処理で利用される演算式は変更可能である。【選択図】図２
2008048010.tif 000002
【特許請求の範囲】
【請求項１】
パケットを中継するネットワーク中継装置であって、
回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、
受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、
前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する宛先検索部と、
前記演算処理で利用される演算式を変更する変更部と、
を備える、ネットワーク中継装置。
【請求項２】
請求項１に記載のネットワーク中継装置であって、
前記宛先検索部は、複数の物理ポートを集約して仮想的な１つのポートとして扱うリンクアグリゲーション機能を有し、
前記複数の候補ポートは、前記リンクアグリゲーション機能によって構築された仮想的な１つのポートに含まれる、
ネットワーク中継装置。
【請求項３】
請求項１に記載のネットワーク中継装置であって、
前記宛先検索部は、前記複数の物理ポートのそれぞれに選択の優先順位を設定し、
前記複数の候補ポートのそれぞれの優先順位は同じである、
ネットワーク中継装置。
【請求項４】
パケットを中継するネットワーク中継装置であって、
回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、
受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、
前記宛先情報によって特定される宛先に到達し得る候補ポートを含む１以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する宛先検索部と、
前記演算処理で利用される演算式を変更する変更部と、
を備える、ネットワーク中継装置。
【請求項５】
請求項４に記載のネットワーク中継装置であって、
前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想ＬＡＮを構成するグループである、ネットワーク中継装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載のネットワーク中継装置であって、
前記演算式はハッシュ関数である、ネットワーク中継装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載のネットワーク中継装置であって、
前記変更部は、ユーザの指示に基づいて、前記演算式を変更する、
ネットワーク中継装置。
【請求項８】
請求項１ないし請求項６のいずれかに記載のネットワーク中継装置であって、
前記変更部は、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定し、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更する、ネットワーク中継装置。
【請求項９】
回線との接続のための複数の物理ポートを有するとともに前記回線を介してパケットを送受信するインターフェース部を備えるネットワーク中継装置を用いてパケットを中継する方法であって、
（Ａ）前記ネットワーク中継装置が、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理で利用される演算式を変更する工程と、
（Ｂ）前記ネットワーク中継装置が、変更後の演算式に従って前記演算処理を実行する工程と、
（Ｃ）前記ネットワーク中継装置が、前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する工程と、
を備える、方法。
【請求項１０】
請求項９に記載の方法であって、
前記複数の候補ポートは、複数の物理ポートを集約して仮想的な１つのポートとして扱うリンクアグリゲーション機能によって構築された仮想的な１つのポートに含まれる、方法。
【請求項１１】
請求項９に記載の方法であって、
前記複数の物理ポートのそれぞれには選択の優先順位が設定されており、
前記複数の候補ポートのそれぞれの優先順位は同じである、
方法。
【請求項１２】
回線との接続のための複数の物理ポートを有するとともに前記回線を介してパケットを送受信するインターフェース部を備えるネットワーク中継装置を用いてパケットを中継する方法であって、
（Ａ）前記ネットワーク中継装置が、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理で利用される演算式を変更する工程と、
（Ｂ）前記ネットワーク中継装置が、変更後の演算式に従って前記演算処理を実行する工程と、
（Ｃ）前記ネットワーク中継装置が、前記宛先情報によって特定される宛先に到達し得る候補ポートを含む１以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する工程と、
を備える、方法。
【請求項１３】
請求項１２に記載の方法であって、
前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想ＬＡＮを構成するグループである、方法。
【請求項１４】
請求項９ないし請求項１３のいずれかに記載の方法であって、
前記演算式はハッシュ関数である、方法。
【請求項１５】
請求項９ないし請求項１４のいずれかに記載の方法であって、
前記演算式の変更は、ユーザの指示に基づいて行われる、方法。
【請求項１６】
請求項９ないし請求項１４のいずれかに記載の方法であって、
前記演算式の変更工程は、
前記ネットワーク中継装置が、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定する工程と、
前記ネットワーク中継装置が、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更する工程と、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを中継する装置および方法に関するものである。
【背景技術】
【０００２】
従来より、ネットワークの冗長構成として、ＩＥＥＥ８０２．３ａｄで標準化されているリンクアグリゲーション（Link Aggregation）が知られている。また、複数のネットワーク中継装置（例えば、スイッチ装置、あるいは、ルータ装置）を用いることによって冗長な通信経路を構築する方法も知られている。ここで、通信負荷を分散させる場合に、送信すべきフレームのヘッダ等の情報を関数を用いて出力値に変換し、出力値に基づいて複数のリンクのうちの一つのリンクに対応する送信キューを選択する方法が知られている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００５−２５２７５８号公報
【特許文献２】特開２００６−５４３７号公報
【０００４】
ところが、ネットワークシステムの利用状況としては、種々の状況があり得る。その結果、通信負荷の偏りが緩和されない場合があった。特に、複数のネットワーク中継装置が直接に接続される場合には、前段のネットワーク中継装置における通信負荷の偏りと、後段のネットワーク中継装置における通信負荷の偏りと、が積み重なって通信負荷の偏りが大きくなる場合があった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記の課題を解決するためになされたものであり、通信負荷の偏りを緩和することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題の少なくとも一部を解決するため、本発明の第１の態様に係るネットワーク中継装置は、パケットを中継するネットワーク中継装置であって、回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する宛先検索部と、前記演算処理で利用される演算式を変更する変更部と、を備える。
【０００７】
このネットワーク中継装置によれば、演算式を変更することによって、選択される物理ポートの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
【０００８】
上記ネットワーク中継装置において、前記宛先検索部は、複数の物理ポートを集約して仮想的な１つのポートとして扱うリンクアグリゲーション機能を有し、前記複数の候補ポートは、前記リンクアグリゲーション機能によって構築された仮想的な１つのポートに含まれることとしてもよい。
【０００９】
この構成によれば、仮想的な１つのポートに含まれる複数の物理ポートの中で通信負荷が偏ることを抑制することができる。
【００１０】
上記ネットワーク中継装置において、前記宛先検索部は、前記複数の物理ポートのそれぞれに選択の優先順位を設定し、前記複数の候補ポートのそれぞれの優先順位は同じであることとしてもよい。
【００１１】
この構成によれば、優先順位が同じである複数の物理ポートの中で通信負荷が偏ることを抑制することができる。
【００１２】
また、この発明による第２の態様に係るネットワーク中継装置は、パケットを中継するネットワーク中継装置であって、回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、前記宛先情報によって特定される宛先に到達し得る候補ポートを含む１以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する宛先検索部と、前記演算処理で利用される演算式を変更する変更部と、を備える。
【００１３】
このネットワーク中継装置によれば、演算式を変更することによって、選択されるポートグループの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
【００１４】
上記ネットワーク中継装置において、前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想ＬＡＮを構成するグループであることとしてもよい。
【００１５】
この構成によれば、パケット送信のために選択される仮想ＬＡＮの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
【００１６】
上記第１および第２の態様に係るネットワーク中継装置において、前記演算式はハッシュ関数であることが好ましい。
【００１７】
この構成によれば、選択される物理ポートが特定の物理ポートに偏ることを抑制することが容易となる。
【００１８】
上記第１および第２の態様に係る各ネットワーク中継装置において、前記変更部は、ユーザの指示に基づいて、前記演算式を変更することとしてもよい。
【００１９】
この構成によれば、通信負荷分散にユーザの意図を反映させることが可能となる。
【００２０】
上記第１および第２の態様に係る各ネットワーク中継装置において、前記変更部は、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定し、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更することとしてもよい。
【００２１】
この構成によれば、このネットワーク中継装置における通信負荷の偏りの傾向を、別のネットワーク中継装置における通信負荷の偏りの傾向と、異ならせることが可能である。その結果、このネットワーク中継装置における通信負荷の偏りが別のネットワーク中継装置における通信負荷の偏りと積み重なって通信負荷の偏りが大きくなることを抑制できる。
【００２２】
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク中継方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２３】
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．第４実施例：
Ｅ．変形例：
【００２４】
Ａ．第１実施例：
図１は、本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す説明図である。このネットワークシステム９００は、６つのスイッチ装置ＳＷ１０〜ＳＷ６０を有している。第１実施例では、これらのスイッチ装置ＳＷ１０〜ＳＷ６０は、いずれも、いわゆる「レイヤ２スイッチ」として機能している。
【００２５】
第３スイッチ装置ＳＷ３０には、３つのスイッチ装置ＳＷ２０、ＳＷ４０、ＳＷ６０が接続されている。第３スイッチ装置ＳＷ３０と、各スイッチ装置ＳＷ２０、ＳＷ４０、ＳＷ６０とは、それぞれ、２本の回線によって接続されている。また、第１スイッチ装置ＳＷ１０と第２スイッチ装置ＳＷ２０とは、１本の回線Ｌ１２１によって接続され、第５スイッチ装置ＳＷ５０と第６スイッチ装置ＳＷ６０とは、１本の回線Ｌ５６１によって接続されている。
【００２６】
各スイッチ装置ＳＷ１０〜ＳＷ６０は、回線を接続するための物理ポートを有している。図１では、物理ポートを識別する物理ポート番号が、記号「＃」と番号との組み合わせによって示されている。例えば、第１スイッチ装置ＳＷ１０と第２スイッチ装置ＳＷ２０とを接続する回線Ｌ１２１は、第１スイッチ装置ＳＷ１０の第１物理ポート（＃１）と、第２スイッチ装置ＳＷ２０の第３物理ポート（＃３）とに、接続されている。
【００２７】
ところで、第２スイッチ装置ＳＷ２０と第３スイッチ装置ＳＷ３０とは、２本の回線Ｌ２３１、Ｌ２３２によって接続されている。これらの２本の回線Ｌ２３１、Ｌ２３２は、リンクアグリゲーション機能によって、仮想的な１本の回線として利用される。リンクアグリゲーション機能とは、複数の物理ポートを集約して仮想的な１つのポート（「論理ポート」とも呼ばれる）として利用する機能である。このリンクアグリゲーション機能は、帯域の拡大や冗長性の確保を実現するために利用される。図１の例では、第２スイッチ装置ＳＷ２０の２つの物理ポート＃１、＃２が、リンクアグリゲーション機能によって、１つの論理ポートとして利用される。そして、これらのポート＃１、＃２の接続相手である第３スイッチ装置ＳＷ３０の２つの物理ポート＃３、＃４も、リンクアグリゲーション機能によって、１つの論理ポートとして利用される。
【００２８】
同様に、第３スイッチ装置ＳＷ３０と第６スイッチ装置ＳＷ６０とを接続する２本の回線Ｌ６３１、Ｌ６３２も、リンクアグリゲーション機能によって仮想的な１本の回線として利用される。そして、第３スイッチ装置ＳＷ３０と第４スイッチ装置ＳＷ４０とを接続する２本の回線Ｌ３４１、Ｌ３４２も、リンクアグリゲーション機能によって仮想的な１本の回線として利用される。
【００２９】
以下、リンクアグリゲーション機能によって構成される論理ポート、および、いずれの論理ポートにも含まれていない物理ポート（以下「単独物理ポート」とも呼ぶ）、のそれぞれのことを「回線ポート」とも呼ぶ。すなわち、スイッチ装置ＳＷにおいては、回線ポートは、独立な１本の回線（仮想的な１本の回線を含む）が接続されるポートとして利用される。
【００３０】
図２は、スイッチ装置ＳＷの構成を示す説明図である。第１実施例では、各スイッチ装置ＳＷ１０〜ＳＷ６０（図１）として、同じスイッチ装置ＳＷを用いている。このスイッチ装置ＳＷは、パケット受信回路／送信回路１００（以下、「インターフェース回路１００」とも呼ぶ）と、ヘッダ処理部２００と、メモリ３００と、を有している。これらの構成要素１００、２００、３００は、図示しないバスによって接続されている。
【００３１】
インターフェース回路１００は、パケットの受信および送信を行う電子回路であり、回線を接続するための複数の物理ポートを有している。図２の例では、３つの物理ポート＃１〜＃３が示されている。そして、２つのポート＃１、＃２が、リンクアグリゲーション機能によって、１つの論理ポートとして利用されている。
【００３２】
ヘッダ処理部２００は、受信されたパケットを送信すべき物理ポート（以下「出力物理ポート」とも呼ぶ）を決定する処理（「宛先検索処理」とも呼ぶ）を実行する。ヘッダ処理部２００は、後述する種々の機能を実現するために設計されたＡＳＩＣ（Application Specific Integrated Circuit：特定用途向け集積回路）である。また、このヘッダ処理部２００は、宛先検索部２１０と、ハッシュ値生成部２２０と、設定値制御部２３０と、を有している。
【００３３】
メモリ３００は、宛先検索処理に利用される種々のデータを格納する。図２の例では、メモリ３００は、リンクアグリゲーションテーブル４００とフィルタテーブル４１０とを格納している。図３（Ａ）は、リンクアグリゲーションテーブル４００の一例を示す説明図である。リンクアグリゲーションテーブル４００は、論理ポートを定義するテーブルである。リンクアグリゲーションテーブル４００は、論理ポートに固有なリンクアグリゲーション番号（「ＬＡ番号」あるいは「テーブル番号」とも呼ぶ）と、その論理ポートに含まれる物理ポートの総数と、その論理ポートに含まれる物理ポートと、の対応関係を定めている。図３（Ａ）に示す例では、第１物理ポート＃１と第２物理ポート＃２との２つの物理ポートの全体が、仮想的な１つのポート（論理ポート）として利用される。そして、その論理ポートのＬＡ番号が「０」に設定されている。
【００３４】
なお、１つの論理ポートに含まれる複数の物理ポートのそれぞれには、各物理ポートを特定するための選択番号が付される。選択番号は０から始まる整数値である。図３（Ａ）の例では、第１物理ポート＃１の選択番号が「０」に設定され、第２物理ポート＃２の選択番号が「１」に設定されている。この選択番号は、後述する宛先検索処理で利用される。
【００３５】
宛先検索部２１０は、リンクアグリゲーションテーブル４００の各項目の値を、ユーザの指示に従って設定する。ユーザの指示は、例えば、スイッチ装置ＳＷの操作パネル（図示せず）、あるいは、スイッチ装置ＳＷに接続された管理端末（図示せず）を介して入力され得る。
【００３６】
なお、１つの論理ポートに含まれる物理ポートの総数としては、「２」に限らず、任意の数を採用可能である。また、１台のスイッチ装置ＳＷで利用される論理ポートの総数としては、「１」に限らず、任意の数を採用可能である。
【００３７】
図３（Ｂ）は、フィルタテーブル４１０の一例を示す説明図である。フィルタテーブル４１０は、ＶＬＡＮ−ＩＤと、回線ポートと、その回線ポートに接続されたネットワーク機器のレイヤ２のアドレス（ＭＡＣアドレス）と、の対応関係を格納する。
【００３８】
ＶＬＡＮ−ＩＤは、ＶＬＡＮ（仮想ＬＡＮ（仮想ローカルエリアネットワーク））の識別番号である。ＶＬＡＮは、レイヤ２レベルで互いに通信可能な１以上の回線ポートで構成されるグループを表している。すなわち、第１実施例では、宛先検索部２１０は、異なるＶＬＡＮの間ではパケットを中継せずに、同じＶＬＡＮに属している回線ポートの間でのみパケットを中継する。このように、複数の回線ポートを複数のＶＬＡＮに分割すれば、意図しない回線ポート（他のＶＬＡＮ）に通信負荷が広がることを抑制できる。すなわち、複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワーク（「ネットワークセグメント」とも呼ばれる）に分割することができる。
【００３９】
図３（Ｂ）の例では、第０論理ポート（ＬＡ＃０）および第３物理ポート（Ｐｏｒｔ＃３）のそれぞれのＶＬＡＮ−ＩＤが「２９１」に設定されている。宛先検索部２１０は、回線ポートとＶＬＡＮ−ＩＤとの対応関係を、リンクアグリゲーションテーブル４００と同様に、ユーザの指示に従って設定する。なお、１台のスイッチ装置で利用されるＶＬＡＮの総数としては「１」に限らず任意の数を採用可能である。また、ＶＬＡＮ−ＩＤとしては、「２９１」に限らず任意の番号を採用可能である。
【００４０】
また、このフィルタテーブル４１０の回線ポートとＭＡＣアドレスとの対応関係は、宛先検索部２１０によって自動的に設定される。具体的には、宛先検索部２１０は、スイッチ装置ＳＷによって受信されたパケットのヘッダ情報を参照することによって、送信元ＭＡＣアドレスを取得する。そして、宛先検索部２１０は、送信元ＭＡＣアドレスと、そのパケットを受信した回線ポートと、の対応関係をフィルタテーブル４１０に登録する。パケットを受信した物理ポートが単独物理ポートである場合には、物理ポート番号が登録される。パケットを受信した物理ポートが論理ポートに含まれている場合には、その論理ポートのＬＡ番号が登録される。図３（Ｂ）の例では、第０論理ポート（ＬＡ＃０）と第１アドレス（address1）との対応関係と、第３物理ポート（Ｐｏｒｔ＃３）と第２アドレス（address2）との対応関係と、が登録されている。
【００４１】
なお、１つの回線ポートには、複数のネットワーク機器が接続され得る。この場合には、１つの回線ポートに関連して複数のアドレスが登録され得る。また、フィルタテーブル４１０には、さらに、登録されたデータの有効期限を定める期限情報を登録してもよい。有効期限の過ぎたデータをフィルタテーブル４１０から削除すれば、ネットワーク構成の変化に応じてフィルタテーブル４１０を更新することが容易となる。また、メモリ３００の利用効率を向上させることもできる。このような有効期限としては、登録されてから所定時間の経過時を採用可能である。なお、論理ポートに含まれる物理ポートに関しても、ＬＡ番号の代わりに物理ポート番号を登録してもよい。
【００４２】
図４は、宛先検索処理の手順を示すフローチャートである。最初のステップＳ１００では、宛先検索部２１０（図２）は、受信パケットのヘッダ情報と、フィルタテーブル４１０（図２、図３（Ｂ））とを参照することによって、受信パケットを送信すべき回線ポートを検索する。具体的には、宛先検索部２１０は、ヘッダ情報から宛先ＭＡＣアドレスを取得し、その宛先ＭＡＣアドレスの属する回線ポートをフィルタテーブル４１０から検索する。この際、パケットを受信した回線ポートと同じＶＬＡＮに含まれる回線ポートの中から回線ポートが検索される。すなわち、異なるＶＬＡＮからは回線ポートは検索されない。
【００４３】
次のステップＳ１１０では、宛先検索部２１０は、検索された回線ポートが論理ポート（リンクアグリゲーションポート）と通常ポート（単独物理ポート）とのいずれであるかを判定する。検索された回線ポートが通常のポート（単独物理ポート）である場合には、宛先検索部２１０は、その物理ポートを出力物理ポートとして採用する（ステップＳ１３０）。
【００４４】
検索された回線ポートが論理ポートである場合には、次のステップＳ１２０で、宛先検索部２１０は、その論理ポートに含まれる複数の物理ポートの中から１つの物理ポートを選択する。そして、選択された物理ポートが出力物理ポートとして採用される（Ｓ１３０）。物理ポートの選択には、ハッシュ値生成部２２０に（図２）よって生成されたハッシュ値が利用される。ハッシュ値生成部２２０は、受信されたパケットのヘッダ情報、および、インターフェース回路１００によって提供される制御情報に基づいて、ハッシュ値を算出する。なお、ハッシュ値を利用した物理ポートの選択の詳細については後述する。
【００４５】
出力物理ポートが決定されたら、宛先検索部２１０（図２）は、出力物理ポートをインターフェース回路１００に通知する。インターフェース回路１００は、通知された出力物理ポートからパケットを送信する。
【００４６】
なお、検索された回線ポートと、そのパケットを受信した回線ポートとが同じである場合には、パケットの中継が不要であるので、宛先検索部２１０はパケットの送信を中止する。また、フィルタテーブル４１０から回線ポートが検索されなかった場合には、宛先検索部２１０は、そのパケットを受信した回線ポート以外の全ての回線ポートを、パケットを送信すべき回線ポートとして選択する（「フラッディング」とも呼ばれる）。ただし、この場合には、パケットを受信した回線ポートと同じＶＬＡＮに含まれる回線ポートのみが選択される。
【００４７】
図５は、ハッシュ値生成部２２０（図２）の内部構成を示す説明図である。ハッシュ値生成部２２０は、計算部２２２と設定値蓄積部（メモリ）２２４とを有している。
【００４８】
設定値蓄積部２２４は、設定値制御部２３０（図２）によって設定された８つの設定値ＳＶ１〜ＳＶ８を格納する。８つの設定値ＳＶ１〜ＳＶ８のそれぞれは、８ビットのデータであり、ハッシュ値の算出に利用される。以下、これらの設定値のことを「ハッシュ設定値」とも呼ぶ。設定値制御部２３０は、８つの設定値ＳＶ１〜ＳＶ８のそれぞれを、ユーザの指示に従って設定する。ユーザの指示は、例えば、スイッチ装置ＳＷの操作パネル（図示せず）、あるいは、スイッチ装置ＳＷに接続された管理端末（図示せず）を介して入力され得る。また、この代わりに、設定値制御部２３０が自動的に各設定値ＳＶ１〜ＳＶ８を設定してもよい。例えば、設定値制御部２３０は、ランダムにデータを生成し、得られたデータを各設定値ＳＶ１〜ＳＶ８として利用してもよい。
【００４９】
計算部２２２には、インターフェース回路１００から制御情報５２０とヘッダ情報５２１とが供給される。また、計算部２２２には、設定値蓄積部２２４から８つの設定値ＳＶ１〜ＳＶ８が供給される。計算部２２２は、供給されたデータを用いてハッシュ値を算出し、算出されたハッシュ値を宛先検索部２１０へ供給する。
【００５０】
図６（Ａ）は、制御情報５２０を示す説明図である。制御情報５２０は、インターフェース回路１００によって受信された各パケット毎に提供される。すなわち、制御情報５２０は、パケットに関連付けられた情報である。制御情報５２０は、受信ＶＬＡＮ５００と、内部パケット長５０１と、入力回線番号５０２と、入力Ｌ２ヘッダ長５０３と、を含んでいる。受信ＶＬＡＮ５００は、パケットを受信した回線ポートが属するＶＬＡＮ（仮想ＬＡＮ）の番号（図３（Ｂ）：ＶＬＡＮ−ＩＤ）を示している。内部パケット長５０１は、パケットのサイズを示している。入力回線番号５０２は、パケットを受信した物理ポートの番号を示している。入力Ｌ２ヘッダ長５０３は、後述するＬ２ヘッダ部５２２のサイズを示している。これらのデータは、通常は、パケットの整合性のチェック等に適宜利用される（詳細は省略）。
【００５１】
図６（Ｂ）は、ヘッダ情報５２１を示す説明図である。ヘッダ情報５２１は、インターフェース回路１００によって受信されたパケットに含まれるヘッダである。ヘッダ情報５２１は、Ｌ２（Layer 2）ヘッダ部５２２と、Ｌ３（Layer 3）ヘッダ部５２３と、Ｌ４（Layer 4）ヘッダ部５２４と、を含んでいる。Ｌ２ヘッダ部５２２は、送信元ＭＡＣアドレス５０４と宛先ＭＡＣアドレス５０５とを含んでいる。Ｌ３ヘッダ部５２３は、送信元ＩＰアドレス５０６と宛先ＩＰアドレス５０７とを含んでいる。Ｌ４ヘッダ部５２４は、送信元ポート５０８と宛先ポート５０９とを含んでいる。各ポート５０８、５０９は、いわゆるレイヤ４のポート（以下「Ｌ４ポート」とも呼ぶ）を示すデータであり、スイッチ装置ＳＷの回線ポートとは無関係である。
【００５２】
図７は、計算部２２２の内部構成を示す説明図である。計算部２２２は、４つの蓄積部（バッファメモリ）６０２〜６０８と、加算処理部６１０と、８つの積−和処理部６３１〜６３８と、を有している。
【００５３】
図８は、計算部２２２によるハッシュ値の算出の手順を示すフローチャートである。また、図９は、ハッシュ値の算出の具体例を示す説明図である。最初のステップＳ２００では、４つの蓄積部６０２〜６０８（図７）が、制御情報５２０と、Ｌ２ヘッダ部５２２と、Ｌ３ヘッダ部５２３と、Ｌ４ヘッダ部５２４と、をそれぞれ一時的に格納する。図９のステップＳ２００のフィールドには、格納されたデータの内の演算に利用される対象データの具体的な値が示されている。第１実施例では、受信ＶＬＡＮと、送信元および宛先のＭＡＣアドレス、送信元および宛先のＩＰアドレス、送信元および宛先のＬ４ポートが演算に利用される。
【００５４】
なお、図９において、値の先頭に付された符号「０ｘ」は、その値が１６進法で表されていることを示している。同様に、値の先頭に付された符号「０ｂ」は、その値が２進法で表されていることを示している。以下の説明、及び、他の図面においても、これらの符号「０ｘ」「０ｂ」の意味は同じである。
【００５５】
次のステップＳ２１０では、加算処理部６１０（図７）が、各蓄積部６０２〜６０８に格納された対象データを加算することによって８ビットの加算結果を出力する。この際、加算処理部６１０は、まず、全ての対象データを８ビット毎に区切る。そして、加算処理部６１０は、８ビットのデータの全てを加算する。この際、桁上げは省略される。これにより、８ビットの加算結果が得られる。例えば、図９の例では、受信ＶＬＡＮ（０ｘ１２３）は、２つの８ビットデータ「０ｘ０１」および「０ｘ２３」に分割される。他のデータについても、同様に、８ビットデータに分割される。そして、得られた８ビットデータの全てが加算される。その結果、８ビットの加算結果ＲＳ１０が算出される。
【００５６】
次のステップＳ２２０では、８つの積−和処理部６３１〜６３８（図７）が、それぞれ、８ビットの加算結果と設定値蓄積部２２４から供給された８ビットの設定値とを用いた論理積演算を実行する。そして、次のステップＳ２３０では、８つの積−和処理部６３１〜６３８が、それぞれ、論理積演算結果の各ビットの排他的論理和を算出する。この際、８つの設定値ＳＶ１〜ＳＶ８は、８つの積−和処理部６３１〜６３８によって、それぞれ利用される。例えば、第１設定値ＳＶ１は第１積−和処理部６３１によって利用され、第２設定値ＳＶ２は第２積−和処理部６３２に利用される。
【００５７】
第１積−和処理部６３１は、まず、第１設定値ＳＶ１と加算結果ＲＳ１０とから論理積演算結果ＲＳ２１を算出する（図９）。この際、各ビット毎に論理積が算出される。図７に示すように、第１積−和処理部６３１は、７つの論理積処理部６２０〜６２７を有している。各論理積処理部６２０〜６２７は、互いに異なるビット位置の１ビットの論理積演算を実行する。これらの論理積処理部６２０〜６２７の演算結果（１ビット）を合わせたものが、第１論理積結果ＲＳ２１（８ビット）である。なお、図９のステップＳ２２０のフィールドにおける演算子「｜」は、論理積を意味している。
【００５８】
次のステップＳ２３０では、第１積−和処理部６３１は、第１論理積結果ＲＳ２１の各ビットの排他的論理和を算出する。図７に示すように第１積−和処理部６３１は、排他的論理和処理部６２９を有している。排他的論理和処理部６２９は、各論理積処理部６２０〜６２７から供給された８つの演算結果（１ビット）を用いて、排他的論理和演算を実行する。その結果、１ビットの第１排他的論理和結果ＲＳ３１（図９：Ｓ２３０）が算出される。なお、図９のステップＳ２３０のフィールドにおける演算子「＾」は、排他的論理和を意味している。
【００５９】
他の積−和処理部６３２〜６３８（図７）の内部構成、および、動作も、第１積−和処理部６３１と同じである。すなわち、ステップＳ２２０では、各積−和処理部６３１〜６３８によって、論理積演算結果ＲＳ２１〜ＲＳ２８が、それぞれ算出される。ステップＳ２３０では、各積−和処理部６３１〜６３８によって、排他的論理和演算結果ＲＳ３１〜ＲＳ３８が、それぞれ、算出される。
【００６０】
計算部２２２は、８つの排他的論理和結果ＲＳ３１〜ＲＳ３８（１ビット）を、まとめて、１つの算出結果ＲＳ４０（８ビット）として扱う。そして、計算部２２２は、この８ビットの算出結果ＲＳ４０を、ハッシュ値として宛先検索部２１０へ出力する。
【００６１】
図１０（Ａ）は、出力物理ポートとハッシュ値との対応関係を定める関係式である。宛先検索部２１０は、この関係式に従って出力物理ポートを選択する（図４：ステップＳ１２０）。具体的には、宛先検索部２１０は、まず、この関係式に従い、「ハッシュ値＊物理ポート総数」を２５６で割ることによって商を算出する。「２５６」は、ハッシュ値の値域の大きさである。また商は、リンクアグリゲーションテーブル４００（図３（Ａ））の選択番号に相当する。商が「０」の場合には、選択番号が「０」である物理ポートが選択される。商が「１」の場合には、選択番号が「１」である物理ポートが選択される。商が「２」以上の場合も同様である。
【００６２】
図１０（Ｂ）は、ハッシュ値と選択番号との関係を示す説明図である。図１０（Ｂ）には、論理ポートに含まれる物理ポートの総数が２の場合の例が示されている。この場合には、「ハッシュ値＊ポート総数」は、０〜５１０の範囲の値である。従って、商は、０と１とのいずれかである。具体的には、ハッシュ値が０〜１２７の範囲内である場合には、選択番号が０である。ハッシュ値が１２８〜２５５の範囲内である場合には、選択番号が１である。
【００６３】
このように、ハッシュ値に応じて、論理ポートに含まれる複数の物理ポートの中から１つの出力物理ポートが選択される。ハッシュ値は、ハッシュ値の算出に利用されるデータ（種情報）に応じて、種々の値となり得る。また、第１実施例では、ハッシュ値が、送信元を表すデータ（ＭＡＣアドレス、ＩＰアドレス、Ｌ４ポート、受信ＶＬＡＮ）と、宛先を表すデータ（ＭＡＣアドレス、ＩＰアドレス、Ｌ４ポート）とに基づいて算出される。従って、送信元と宛先との組み合わせに応じて、通信負荷（出力物理ポート）を分散させることができる。これは、論理ポートに含まれる物理ポートの総数が３以上である場合も同様である。
【００６４】
図１１は、ネットワークシステム９００におけるパケット中継の比較例を示す説明図である。ネットワークシステム９００の利用状況によっては、出力物理ポートが一部の物理ポートに偏る場合がある。この比較例は、このような場合を示している。
【００６５】
図１１には、第６スイッチ装置ＳＷ６０から第３スイッチ装置ＳＷ３０を介して第４スイッチ装置ＳＷ４０へ、第１パケットＰ１が中継される様子が示されている。また、図１１には、第２スイッチ装置ＳＷ２０から第３スイッチ装置ＳＷ３０を介して第４スイッチ装置ＳＷ４０へ、第２パケットＰ２が中継される様子が示されている。このように、このネットワーク構成は、第３スイッチ装置ＳＷ３０の前に第２スイッチ装置ＳＷ２０および第６スイッチ装置ＳＷ６０が接続された多段構成である。
【００６６】
図１１には、第３スイッチ装置ＳＷ３０に設定された８つの設定値ＳＶ１〜ＳＶ８（以下、これらの設定値のセットを「第１設定値セットＳＳ１」と呼ぶ）が示されている。また、図１１には、第１パケットＰ１に関する対象データ（制御情報、および、ヘッダ情報）が示されている。第３スイッチ装置ＳＷ３０は、これらのデータに基づいてハッシュ値を算出する。そして、第３スイッチ装置ＳＷ３０は、算出されたハッシュ値に基づいて、第１物理ポート＃１と第２物理ポート＃２との中から、第１パケットＰ１を送信する物理ポートを選択する。図１１の例では、第１パケットＰ１に関するハッシュ値が「０ｘ０７」であり、第１物理ポート＃１が選択されている。
【００６７】
第２パケットＰ２についても同様に出力物理ポートが選択される。図１１には、第２パケットＰ２に関する対象データ（制御情報、および、ヘッダ情報）が示されている。また、図１１の例では、第２パケットＰ２に関するハッシュ値が「０ｘ４５」であり、第１物理ポート＃１が選択されている。
【００６８】
なお、この比較例では、第６スイッチ装置ＳＷ６０に設定されたハッシュ設定値も、第１設定値セットＳＳ１と同じである。従って、第６スイッチ装置ＳＷ６０は、第３スイッチ装置ＳＷ３０と同様に、第１パケットＰ１の出力物理ポートとして第１物理ポート＃１を選択する。さらに、第２スイッチ装置ＳＷ２０に設定されたハッシュ設定値も、第１設定値セットＳＳ１と同じである。従って、第２スイッチ装置ＳＷ２０は、第３スイッチ装置ＳＷ３０と同様に、第２パケットＰ２の出力物理ポートとして第１物理ポート＃１を選択する。
【００６９】
ここで、第６スイッチ装置ＳＷ６０から第３スイッチ装置ＳＷ３０を介して第４スイッチ装置ＳＷ４０へ、種々のパケットが中継される場合について検討する。第６スイッチ装置ＳＷ６０からパケットが送信される際に、第２物理ポート＃２が選択される割合よりも第１物理ポート＃１が選択される割合が多いと仮定する。このような出力物理ポート（トラフィック）の偏りは、ネットワーク機器のアドレス設定等の種々の原因によって起こり得る。すると、これらのパケットが第３スイッチ装置ＳＷ３０から送信される際にも、第２物理ポート＃２が選択される割合よりも第１物理ポート＃１が選択される割合が多くなる。これは、第６スイッチ装置ＳＷ６０および第３スイッチ装置ＳＷ３０が、同じ第１設定値セットＳＳ１を利用しているからである。
【００７０】
同様に、第２スイッチ装置ＳＷ２０から第３スイッチ装置ＳＷ３０を介して第４スイッチ装置ＳＷ４０へ、種々のパケットが中継される場合について検討する。第２スイッチ装置ＳＷ２０からパケットが送信される際に、第２物理ポート＃２が選択される割合よりも第１物理ポート＃１が選択される割合が多いと仮定する。すると、これらのパケットが第３スイッチ装置ＳＷ３０から送信される際にも、第２物理ポート＃２が選択される割合よりも第１物理ポート＃１が選択される割合が多くなる。これは、第２スイッチ装置ＳＷ２０と第３スイッチ装置ＳＷ３０とが、同じ第１設定値セットＳＳ１を利用しているからである。
【００７１】
このように、ネットワークシステム９００では、３つのスイッチ装置ＳＷ２０、ＳＷ３０、ＳＷ６０がツリー状に接続されている。その結果、後段の第３スイッチ装置ＳＷ３０における出力物理ポートの偏りは、前段の２つのスイッチ装置ＳＷ２０、ＳＷ６０における出力物理ポートの偏りを重ね合わせたものとなる。ここで、比較例では、３つのスイッチ装置ＳＷ２０、ＳＷ３０、ＳＷ６０によって同じハッシュ設定値（すなわち、同じ演算式）が利用されている。その結果、３つのスイッチ装置ＳＷ２０、ＳＷ３０、ＳＷ６０における出力物理ポートの偏りの傾向は同じである。従って、同じ傾向の偏りが積み重ねられた結果である後段の第３スイッチ装置ＳＷ３０における出力物理ポートの偏り（トラフィックの偏り）は、大きくなる。このような偏りは、スイッチ装置ＳＷの段数が多いほど、大きくなりやすい。
【００７２】
図１２は、ネットワークシステム９００におけるパケット中継の実施例を示す説明図である。図１１に示した比較例との際は、第３スイッチ装置ＳＷ３０によって利用される第２設定値セットＳＳ２が、第１設定値セットＳＳ１と異なっている点だけである。他の構成は、図１１の比較例と同じである。第２スイッチ装置ＳＷ２０、および、第６スイッチ装置ＳＷ６０は、上述の第１設定値セットＳＳ１を利用する。
【００７３】
図１２には、第２設定値セットＳＳ２の具体例が示されている。この第２設定値セットＳＳ２は、図１１に示す第１設定値セットＳＳ１と異なっている。より厳密に言えば、第２設定値セットＳＳ２の少なくとも一部が、第１設定値セットＳＳ１と異なっている。第１設定値セットＳＳ１は、２つのビットが１に設定された第８設定値ＳＶ８を含んでいるが、第２設定値セットＳＳ２には、このような設定値が含まれていない。
【００７４】
図１２には、２つのパケットＰ１、Ｐ２のそれぞれに関する、ハッシュ値および出力物理ポートが示されている。これらのハッシュ値および出力物理ポートは、第３スイッチ装置ＳＷ３０によって決定されたものである。２つのパケットＰ１、Ｐ２は、図１１に示した２つのパケットＰ１、Ｐ２とそれぞれ同じである。ところが、比較例とは異なる演算式（第２設定値セットＳＳ２）が利用されるので、比較例とは異なるハッシュ値が算出される。図１２の例では、第１パケットＰ１に関するハッシュ値は「０ｘＥ０」であり、第２パケットＰ２に関するハッシュ値は「０ｘ２２」である。その結果、第１パケットＰ１に関しては、第２物理ポート＃２が選択され、第２パケットＰ２に関しては、第１物理ポート＃１が選択されている。
【００７５】
以上のように、ハッシュ設定値の少なくとも一部が異なっていれば、すなわち、演算式が異なっていれば、同じパケットに対して異なるハッシュ値が算出され得る。その結果、出力物理ポートの偏りの傾向を変えることが可能となる。例えば、図１１の比較例では、第３スイッチ装置ＳＷ３０では、２つのパケットＰ１、Ｐ２のそれぞれに対して同じ第１物理ポートが選択されたが、図１２の実施例では、２つのパケットＰ１、Ｐ２のそれぞれに対して互いに異なる物理ポートが選択されている。このように、出力物理ポートに偏りが生じ得る場合であっても、演算式（ハッシュ設定値セット）を変えるだけで、容易に、出力物理ポートの偏りを緩和することが可能となる。ユーザは、出力物理ポートの偏りが大きい場合に、ハッシュ設定値を変更する指示を設定値制御部２３０（図２）に入力すればよい。
【００７６】
また、ネットワークシステムの利用状況は、しばしば、変更される。例えば、新しいネットワーク機器（例えば、クライアント装置あるいはサーバ装置）がネットワークに接続される場合がある。また、利用されていたネットワーク機器がネットワークから外される場合がある。ところで、第１実施例では、出力物理ポートの偏りを緩和するために演算式が変えられる。従って、演算式を変えた後にネットワークシステム９００の利用状況が変化した場合に出力物理ポートの偏りが増大することが抑制される。
【００７７】
これは、以下のように説明できる。例えば、出力物理ポートの偏りが小さくなるように、演算式を変えずに、演算結果と出力物理ポートとの対応関係を変えると仮定する。この場合には、各物理ポートに対応付けられる演算結果の範囲の大きさが不均等になる。すなわち、通信負荷の小さい物理ポートには、通信負荷を上げるために、広い範囲の演算結果が対応付けられる。逆に、通信負荷の大きな物理ポートには、通信負荷を下げるために、狭い範囲の演算結果が対応付けられる。ここで、ネットワークシステムの利用状況が変化したと仮定する。すると、利用状況が変化した後であるにも拘わらずに、出力物理ポートの選択が、変化前の利用状況に適合する不均等な対応関係に基づいて実行される。その結果、出力物理ポートの偏りが大きくなる可能性が高い。ところが、第１実施例では、演算結果と出力物理ポートとの対応関係を変えずに演算式を変えることによって、演算式を変えた後にネットワークシステム９００の利用状況が変化した場合に出力物理ポートの偏りが大きくなることを抑制することができる。
【００７８】
また、図１２に示す実施例では、第３スイッチ装置ＳＷ３０によって利用される演算式（第２設定値セットＳＳ２）が、前段のスイッチ装置ＳＷ２０、ＳＷ６０によって利用される演算式（第１設定値セットＳＳ１）と異なっている。従って、後段の第３スイッチ装置ＳＷ３０における出力物理ポートの偏りの傾向は、前段のスイッチ装置ＳＷ２０、ＳＷ６０における出力物理ポートの偏りの傾向とは異なっている。その結果、前段のスイッチ装置ＳＷ２０、ＳＷ６０における偏りが後段の第３スイッチ装置ＳＷ３０における偏りと積み重なることに起因する偏りの過剰な増大を抑制することができる。
【００７９】
ここで、ハッシュ設定値セットの設定、すなわち、演算式の選択（変更）は、ネットワークシステム９００の運用開始前に行うことが好ましい。運用開始前に、後段の第３スイッチ装置ＳＷ３０の演算式を、前段のスイッチ装置ＳＷ２０、ＳＷ６０の演算式と異ならせておけば、通信負荷が偏ることを未然に防ぐことが可能となる。例えば、ユーザは、運用開始前に、後段あるいは前段のスイッチ装置に、演算式変更指示を入力すればよい。
【００８０】
なお、第１実施例では、ハッシュ値生成部２２０（図２）が本発明における「演算部」に相当する。そして、設定値制御部２３０が本発明における「変更部」に相当する。また、図９のステップＳ２００で挙げられたデータが、「種情報」に相当する。なお、第１実施例では、互いに異なる設定値セットの数と同じ数の演算式が利用可能である。
【００８１】
Ｂ．第２実施例：
図１３は、第２実施例におけるネットワークシステム９００ｃを示す説明図である。このネットワークシステム９００ｃは、９つのスイッチ装置ＲＴ１０〜ＲＴ９０を有している。第２実施例では、これらのスイッチ装置ＲＴ１０〜ＲＴ９０は、いずれも、いわゆる「レイヤ３スイッチ（「ルータ」とも呼ばれる）」として機能している。
【００８２】
このネットワークシステム９００ｃでは、第１スイッチ装置ＲＴ１０と第７スイッチ装置ＲＴ７０との間が、４つの経路ＰＴ１〜ＰＴ４で繋がれている。第１経路ＰＴ１は、第１スイッチ装置ＲＴ１０から、３つのスイッチ装置ＲＴ２０、ＲＴ３０、ＲＴ５０をこの順番に通って、第７スイッチ装置ＲＴ７０へ至る経路である。第２経路ＰＴ２は、第１スイッチ装置ＲＴ１０から、３つのスイッチ装置ＲＴ２０、ＲＴ３０、ＲＴ６０をこの順番に通って、第７スイッチ装置ＲＴ７０へ至る経路である。第３経路ＰＴ３は、第１スイッチ装置ＲＴ１０から、２つのスイッチ装置ＲＴ２０、ＲＴ４０をこの順番に通って、第７スイッチ装置ＲＴ７０へ至る経路である。第４経路ＰＴ４は、第１スイッチ装置ＲＴ１０から、２つのスイッチ装置ＲＴ８０、ＲＴ９０をこの順番に通って、第７スイッチ装置ＲＴ７０へ至る経路である。なお、図１３の例では、スイッチ装置間は物理的な１本の回線のみで接続されている。
【００８３】
図中の各スイッチ装置ＲＴ１０〜ＲＴ９０には、記号「＃」と番号との組み合わせによって物理ポート番号が示されている。また、図中の各スイッチ装置ＲＴ１０〜ＲＴ９０に接続された回線には、記号「Ｌｃ」と３桁の数字とで構成される符号が付されている。ここで、百の位は、第１スイッチ装置ＲＴ１０に近い方のスイッチ装置の番号を表している。十の位は、第７スイッチ装置ＲＴ７０に近い方のスイッチ装置の番号を表している。一の位は、第１スイッチ装置ＲＴ１０に近い方のスイッチ装置の物理ポート番号を示している。例えば、回線Ｌｃ４７１は、第４スイッチ装置ＲＴ４０と第７スイッチ装置ＲＴ７０とを接続する回線であり、第４スイッチ装置ＲＴ４０の第１物理ポート＃１に接続されている。他の回線についても同様である。
【００８４】
各スイッチ装置ＲＴ１０〜ＲＴ９０のハードウェア構成は、図２に示すスイッチ装置ＳＷと同じである。ただし、メモリ３００には、リンクアグリゲーションテーブル４００（図３）とフィルタテーブル４１０とに加えて、ルーティングテーブルとＡＲＰテーブルとが格納されている。図１４は、ルーティングテーブルと、ＡＲＰテーブルと、フィルタテーブルと、の一例を示す説明図である。図１４には、第１スイッチ装置ＲＴ１０で利用されるテーブルの一例が示されている。
【００８５】
図１４（Ａ）に示すルーティングテーブル４３０は、宛先ＩＰアドレスと、論理インターフェースと、ネクストホップのＩＰアドレスと、メトリックと、の対応関係を格納している。宛先ＩＰアドレスは、パケットの最終的な宛先のＩＰアドレスを表している。この宛先ＩＰアドレスとしては、単一のＩＰアドレスに限らず、２以上のＩＰアドレスを含む範囲を設定可能である。ＩＰアドレスの範囲は、通常は、いわゆるネットワークアドレスとサブネットマスクとの組み合わせによって表される。
【００８６】
論理インターフェースは、宛先ＩＰアドレスに到達し得る論理インターフェースを表している。第２実施例では、複数の物理ポートの中からのパケットを送信すべき物理ポートの絞り込みが、最初に、１以上の物理ポートで構成されるグループを単位として行われる。このグループが論理インターフェースである。第２実施例では、このようなグループ（論理インターフェース）として、上述のＶＬＡＮが利用される。すなわち、最初に、パケットの中継に利用されるＶＬＡＮ（ネットワークセグメント）が選択される。
【００８７】
なお、複数の論理インターフェースが、同じ宛先ＩＰアドレスに対応付けられてもよい。図１４（Ａ）の例では、２つの論理インターフェース（「第１のＶＬＡＮ２９１」「第２のＶＬＡＮ２９２」）が、同じ第１ＩＰアドレス範囲ＩＰｒａｎｇｅ１に対応付けられている（第１および第２エントリＲＥ１、ＲＥ２参照）。これは、２つの論理インターフェースの内の任意の一方からパケットを送信しても、そのパケットが同じ宛先ＩＰアドレスに到達し得ることを意味している。例えば、図１３の例では、第１スイッチ装置ＲＴ１０において、第１物理ポート＃１は第１のＶＬＡＮ２９１に属し、第２物理ポート＃２は第２のＶＬＡＮ２９２に属している。ここで、第１ＩＰアドレス範囲ＩＰｒａｎｇｅ１内の宛先へのパケットが、第１スイッチ装置ＲＴ１０から第７スイッチ装置ＲＴ７０へ中継される場合を考える。この場合には、第１のＶＬＡＮ２９１と第２のＶＬＡＮ２９２との任意の一方（すなわち、第１物理ポート＃１と第２物理ポート＃２との任意の一方）からパケットが送信され得る。ただし、パケットを送信する際には、まず、１つの論理インターフェースが選択される。そして、選択された論理インターフェースに含まれる複数の回線ポートの中から１つの回線ポートが選択される。これらの詳細については後述する。
【００８８】
ネクストホップは、次のスイッチ装置を意味している。すなわち、ネクストホップにパケットを送信すれば、そのパケットは最終的な宛先ＩＰアドレスに到達することができる。ルーティングテーブル４３０の各論理インターフェースには、その論理インターフェースから到達可能な１つのネクストホップのＩＰアドレスが対応付けられている。例えば、図１４（Ａ）の例では、第１のＶＬＡＮ２９１には、第２スイッチ装置ＲＴ２０のＩＰアドレスＩＰａＲＴ２０が対応付けられている（第１エントリＲＥ１）。そして、第２のＶＬＡＮ２９２には、第８スイッチ装置ＲＴ８０のＩＰアドレスＩＰａＲＴ８０が対応付けられている（第２エントリＲＥ２）。
【００８９】
メトリックは、論理インターフェースの選択の優先順位を表している。図１４の例では、メトリックが小さいほど、優先順位が高い。このようなメトリックとしては、例えば、ホップ数（通過するルータの総数）や、ＯＳＰＦのコストを採用可能である。
【００９０】
宛先検索部２１０は、ユーザの指示に従ってルーティングテーブル４３０を設定する。このような指示は、スイッチ装置の操作パネル（図示せず）から入力されてもよく、また、スイッチ装置に接続された管理端末（図示せず）から入力されてもよい。また、宛先検索部２１０が、自動的にルーティングテーブル４３０を構築（あるいは、修正）してもよい。この際、宛先検索部２１０は、ＲＩＰ（Routing Information Protocol）や、ＯＳＰＦ（Open Shortest Path First）などのルーティングプロトコルによって伝達される情報に基づいて、ルーティングテーブルを構築（あるいは、修正）すればよい。
【００９１】
図１４（Ｂ）には、ＡＲＰテーブル４４０の一例が示されている。このＡＲＰテーブルは、ＩＰアドレスとＭＡＣアドレスとの対応関係を格納している。図１４（Ｂ）の例では、第２スイッチ装置ＲＴ２０、および、第８スイッチ装置ＲＴ８０に関する対応関係が格納されている。宛先検索部２１０は、自動的にＡＲＰテーブル４４０を構築する。具体的には、宛先検索部２１０は、スイッチ装置ＳＷによって受信されたパケットのヘッダ情報を参照することによって、送信元ＩＰアドレスと送信元ＭＡＣアドレスとを取得する。そして、宛先検索部２１０は、これらのアドレスの対応関係をＡＲＰテーブル４４０に格納する。また、宛先検索部２１０は、ＡＲＰ（Address Resolution Protocol）によって伝達される情報に基づいて、ＡＲＰテーブル４４０を構築してもよい。
【００９２】
図１４（Ｃ）には、フィルタテーブル４１０の一例が示されている。この例では、第２スイッチ装置ＲＴ２０のＭＡＣアドレスＭＡＣａＲＴ２０と、第８スイッチ装置ＲＴ８０のＭＡＣアドレスＭＡＣａＲＴ８０と、に関する対応関係が示されている。第２スイッチ装置ＲＴ２０は、第１のＶＬＡＮ２９１に含まれる第１物理ポート＃１に接続されている。また、スイッチ装置ＲＴ８０は、第２のＶＬＡＮ２９２に含まれる第２物理ポート＃２に接続されている。
【００９３】
図１５は、第２実施例における宛先検索処理の手順を示すフローチャートである。最初のステップＳ３００では、宛先検索部２１０（図２）は、ルーティングテーブル４３０（図１４（Ａ））を参照することによって、受信パケットの宛先ＩＰアドレスに対応付けられた論理インターフェース（ＶＬＡＮ）を検索する。ここで、同じ宛先ＩＰアドレスに対応する複数の論理インターフェースが検索される場合がある。この場合には、宛先検索部２１０は、優先順位の最も高い（メトリックの最も小さい）論理インターフェースを選択する。
【００９４】
次のステップＳ３１０では、宛先検索部２１０は、選択された論理インターフェースの総数が２以上であるか否かを判断する。ステップＳ３００で選択された論理インターフェースの総数が「１」である場合には、宛先検索部２１０は、その論理インターフェースを、出力用の論理インターフェースとして採用する（ステップＳ３３０）。例えば、図１４（Ａ）の例において、宛先ＩＰアドレスが第２ＩＰアドレス範囲ＩＰｒａｎｇｅ２に含まれている場合には、第３のＶＬＡＮ３００が採用される。
【００９５】
ステップＳ３００で、優先順位（メトリック）が同じ複数の論理インターフェースが選択される場合がある。例えば、図１４（Ａ）の例で、宛先ＩＰアドレスが第１ＩＰアドレス範囲ＩＰｒａｎｇｅ１に含まれている場合には、第１のＶＬＡＮ２９１と第２のＶＬＡＮ２９２とが選択される。この場合には、次のステップＳ３２０で、宛先検索部２１０は、ハッシュ値に基づいて１つの論理インターフェースを選択する。この選択は、第１実施例で説明した、論理ポートに含まれる複数の物理ポートの中からの１つの物理ポートの選択と、同様に行われる。具体的には、まず、ハッシュ値生成部２２０（図２）が、制御情報とヘッダ情報とを用いてハッシュ値を生成する。そして、宛先検索部２１０は、算出されたハッシュ値に基づいて１つの論理インターフェースを選択する。この選択は、図１０（Ａ）に示す関係式を用いる方法と同様に行われる。
【００９６】
以上のように選択された１つの論理インターフェース（ＶＬＡＮ）が、受信パケットの送信に利用すべき論理インターフェースとして採用される（ステップＳ３３０）。ここで、ある論理インターフェースを受信パケットの送信に利用するとは、その論理インターフェースに含まれる物理ポートからパケットを送信することを意味している。なお、本実施例では、論理インターフェースが本発明における「ポートグループ」に相当する。
【００９７】
次のステップＳ３４０では、宛先検索部２１０は、ルーティングテーブル４３０（図１３（Ａ））を参照し、出力用の論理インターフェースに対応付けられたネクストホップのＩＰアドレスを取得する。そして、宛先検索部２１０は、ＡＲＰテーブル４４０（図１４（Ｂ））を参照することによって、ネクストホップのＩＰアドレスから、ネクストホップのＭＡＣアドレスを取得する。
【００９８】
次のステップＳ３５０では、宛先検索部２１０は、パケットをネクストホップへ送信するための物理ポートを決定する。この決定は、図４に示す第１実施例と同様に行われる。この際、ステップＳ３３０で決定されたＶＬＡＮ（論理インターフェース）の中から、ネクストホップのＭＡＣアドレスの属する回線ポートが選択される。そして、選択された回線ポートから、最終的な出力物理ポートが選択される。そして、選択された出力物理ポートからネクストホップへパケットが送信される。
【００９９】
次に、図１３の例において、第１スイッチ装置ＲＴ１０から第７スイッチ装置ＲＴ７０へパケットが中継される場合を考える。ここで、説明を簡単にするために、リンクアグリゲーション機能（論理ポート）は利用されていないこととする。また、図１４（Ａ）の第１ＩＰアドレス範囲ＩＰｒａｎｇｅ１は、受信パケットの宛先ＩＰアドレスを含んでいることとする。
【０１００】
この場合、第１スイッチ装置ＲＴ１０では、まず、宛先検索部２１０は、２つの論理インターフェースＶＬＡＮ２９１、２９２の中から１つの論理インターフェースを、ハッシュ値に基づいて選択する。そして、宛先検索部２１０は、選択された１つの論理インターフェースに対応するネクストホップにパケットを送信するために、１つの物理ポートを選択する。例えば、第１のＶＬＡＮ２９１が選択された場合には、ネクストホップＲＴ２０に接続された第１物理ポート＃１が選択される（図１４（Ｃ））。そして、第１物理ポート＃１から第２スイッチ装置ＲＴ２０へパケットが送信される。一方、第２のＶＬＡＮ２９２が選択された場合には、第８スイッチ装置ＲＴ８０に接続された第２物理ポート＃２が選択される。そして、第２物理ポート＃２から第８スイッチ装置ＲＴ８０へパケットが送信される。なお、フィルタテーブル４１０（図１４（Ｃ））において、ネクストホップのＭＡＣアドレスに対応付けられた回線ポートが論理ポートである場合には、宛先検索部２１０は、論理ポートに含まれる複数の物理ポートの中から１つの物理ポートを選択する。この選択は、第１実施例と同様に行われる。
【０１０１】
第２スイッチ装置ＲＴ２０、第３スイッチ装置ＲＴ３０においても、２つの物理ポート＃１、＃２が選択され得る。ここで、第２実施例では、各スイッチ装置ＲＴ２０、ＲＴ３０においても、２つの物理ポート＃１、＃２が互いに異なる論理インターフェース（ＶＬＡＮ）に含まれており、そして、これら２つの論理インターフェースの優先順位（メトリック）が同じであることとする。その結果、各スイッチ装置ＲＴ２０、ＲＴ３０においても、第１スイッチ装置ＲＴ１０と同様に、物理ポートの選択が行われる。
【０１０２】
さらに、第１スイッチ装置ＲＴ１０から第７スイッチ装置ＲＴ７０へ、種々のパケットが中継される場合について検討する。ここで、３つのスイッチ装置ＲＴ１０、ＲＴ２０、ＲＴ３０において、同じ演算式（ハッシュ設定値）が利用されると仮定する。この場合には、図１１に示した比較例と同様に、パケット転送経路が特定の経路に偏る可能性が高くなる。例えば、第１スイッチ装置ＲＴ１０において、第１物理ポート＃１が選択される割合が高いと仮定する。すると、同じ演算式を利用する第２スイッチ装置ＲＴ２０においても、出力物理ポートが特定の物理ポートに偏る可能性が高い。ここで、第１物理ポート＃１が選択される割合が高いと仮定する。同様に、同じ演算式を利用する第３スイッチ装置ＲＴ３０においても、出力物理ポートが特定の物理ポートに偏る可能性が高い。ここで、第１物理ポート＃１が選択される割合が高いと仮定する。この場合には、パケット転送経路が第１経路ＰＴ１に偏ってしまう。
【０１０３】
次に、３つのスイッチ装置ＲＴ１０、ＲＴ２０、ＲＴ３０において、互いに異なる演算式（ハッシュ設定値）が利用される場合について検討する。この場合には、各スイッチ装置ＲＴ１０、ＲＴ２０、ＲＴ３０における出力物理ポートの偏りの傾向が互いに異なっている。従って、図１２に示した第１実施例と同様に、出力物理ポートの偏り、すなわち、パケット中継経路の偏りを緩和することが可能となる。
【０１０４】
以上のように、第２実施例のスイッチ装置ＲＴ１０〜ＲＴ９０では、ハッシュ値の演算式（ハッシュ設定値）が可変である。その結果、第１実施例と同様に、パケット送信用の論理インターフェース（ＶＬＡＮ）の偏りの傾向を変えることができる。その結果、パケットの中継に利用されるネットワークセグメントの偏りの傾向を変えることが可能であるので、通信負荷の偏りを緩和することができる。
【０１０５】
また、図１３に示すように、複数のスイッチ装置を直列に接続することによって、冗長な通信経路を構築する場合がある。この場合にも、本実施例では、前段のスイッチ装置での演算式（ハッシュ設定値）を、後段のスイッチ装置での演算式（ハッシュ設定値）と、異ならせることができる。これにより、前段スイッチ装置での偏りが後段スイッチ装置での偏りと積み重なって通信負荷の偏りが大きくなることを、抑制できる。
【０１０６】
なお、図１３に示す第２実施例では、スイッチ装置間が物理的な１本の回線のみで接続されていたが、論理ポートを用いてスイッチ装置間を接続してもよい。また、１つの論理インターフェースに複数の物理ポートが含まれている場合には、それらの複数の物理ポートのそれぞれに、同じ優先順位（メトリック）が設定されていると考えることができる。
【０１０７】
なお、本実施例では、ＬＡハッシュ値とマルチパスハッシュ値との両方が、同じハッシュ値生成部２２０（図２）によって生成されている。この代わりに、ＬＡハッシュ値を生成する第１ハッシュ値生成部と、マルチパスハッシュ値を生成する第２ハッシュ値生成部とを、独立に設けてもよい。ここで、ＬＡハッシュ値とは、１つの論理ポートの中から出力物理ポートを選択するためのハッシュ値を意味している。また、マルチパスハッシュ値とは、優先順位が同じである複数の論理インターフェースの中から出力用の論理インターフェースを選択するためのハッシュ値を意味している。なお、第１および第２のハッシュ値生成部が、互いに異なる演算式を利用することが好ましい。また、第１および第２のハッシュ値生成部が、互いに異なる種情報を利用することも好ましい。これらによれば、出力用の論理インターフェースと、論理ポートから選択される物理ポートとが、同じように偏ることを抑制できる。
【０１０８】
ここで、ＬＡハッシュ値のために利用可能な演算式の数が１であってもよい。ただし、通信負荷の偏りを緩和するためには、ＬＡハッシュ値のために利用可能な演算式の数が２以上であることが好ましい。
【０１０９】
なお、本実施例において、ハッシュ値に基づいて１つの論理ポートが選択された場合にその論理ポートに含まれる複数の物理ポートの中から出力物理ポートを選択する方法としては、任意の方法を採用可能である。例えば、ユーザによって指定された所定の物理ポートを選択してもよい。いずれの場合も、出力物理ポートを含む論理インターフェースがハッシュ値に基づいて選択されているので、最終的に選択される物理ポートも、ハッシュ値に基づいて選択されているということができる。このように、「複数の候補ポートの中から、受信パケットを送信すべき物理ポートを、演算結果に基づいて選択する」とは、演算結果のみから出力物理ポートが特定される場合と、演算結果に加えて他の情報を用いることによって出力物理ポートが特定される場合と、を含む広い概念を意味している。ここで、後者の場合には、演算結果のみに基づいて、複数の候補ポートの中から、より少ない数の候補ポートが特定（選択）されることが好ましい。
【０１１０】
Ｃ．第３実施例：
図１６は、第３実施例におけるヘッダ処理部２００ａの構成を示す説明図である。図２に示す第１実施例のヘッダ処理部２００との差違は、２点ある。第１の差違は、設定値制御部２３０の代わりに関数セレクタ２４０が設けられている点である。第２の差違は、ハッシュ値生成部２２０ａが、互いに異なる３つのハッシュ関数ＨＦ１〜ＨＦ３を利用可能な点である。スイッチ装置の他の構成は、図２に示す第１実施例のスイッチ装置ＳＷと同じである。なお、図１６では、スイッチ装置の構成要素としてヘッダ処理部２００ａのみが図示されており、他の構成要素の図示は省略されている。
【０１１１】
関数セレクタ２４０は、３つのハッシュ関数ＨＦ１〜ＨＦ３の中から１つのハッシュ関数を選択する。ハッシュ値生成部２２０ａは、関数セレクタ２４０によって選択されたハッシュ関数に基づいてハッシュ値を算出する。各ハッシュ関数ＨＦ１〜ＨＦ３としては、互いに異なる種々のハッシュ関数を採用可能である。なお、関数セレクタ２４０は、ユーザの指示に従って１つのハッシュ関数を選択する。この代わりに、関数セレクタ２４０が自動的に１つのハッシュ関数を選択してもよい。例えば、ランダムにハッシュ関数が選択されてもよい。
【０１１２】
なお、第３実施例では、ハッシュ値生成部２２０ａが、本発明における「演算部」に相当する。そして、関数セレクタ２４０が、本発明における「変更部」に相当する。なお、利用可能な演算式の総数としては、３に限らず、２以上の任意の数を採用可能である。
【０１１３】
Ｄ．第４実施例：
図１７は、第４実施例におけるヘッダ処理部２００ｂの構成を示す説明図である。図２に示す第１実施例のヘッダ処理部２００との差違は、設定値制御部２３０の代わりに、修正制御部２５０とデータ修正部２６０とが設けられている点だけである。ハッシュ値生成部２２０は、所定のハッシュ関数に従って、ハッシュ値を生成する。
【０１１４】
データ修正部２６０は、ハッシュ値の算出に利用される種情報（本実施例では、ヘッダ情報および制御情報）の少なくとも一部を修正する。例えば、送信元ＭＡＣアドレスと宛先ＭＡＣアドレスとのそれぞれの所定のビット位置のビットデータを反転させてもよい。さらに、受信ＶＬＡＮに予め設定された加算値を加算してもよい（この際、桁上がりを省略すればよい）。その結果、同じパケットに対するハッシュ値を生成する場合であっても、ハッシュ値生成部２２０に供給されるデータを修正することによって、生成されるハッシュ値を変えることができる。すなわち、第４実施例では、演算式は、データ修正部２６０によるデータ修正と、ハッシュ値生成部２２０が利用するハッシュ関数との、全体によって定められる。
【０１１５】
なお、データ修正部２６０による修正は、修正制御部２５０によって制御される。例えば、上述のビットデータを反転させるビット位置および加算値は、修正制御部２５０によって設定される。これらのパラメータが変えられることによって、演算式が変更される。修正制御部２５０は、ユーザの指示に従って、このような設定（変更）を行う。この代わりに、修正制御部２５０が自動的にこのような設定を行っても良い。例えば、修正制御部２５０が、ランダムにビット位置および加算値を決定してもよい。
【０１１６】
なお、第４実施例では、ハッシュ値生成部２２０とデータ修正部２６０との全体が、本発明における「演算部」に相当する。そして、修正制御部２５０が、本発明における「変更部」に相当する。また、このような種情報の修正方法としては、所定のビット位置のビットデータを反転させる方法や、加算値を加算する方法に限らず、種々の方法を採用可能である。例えば、除算によってデータを修正してもよい。
【０１１７】
Ｅ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１１８】
変形例１：
上述の各実施例において、論理ポートに含まれる複数の物理ポートの内からの出力（送信）用の物理ポートの選択に利用される演算式としては、図８、図９に示した演算式に限らず、種情報から代表値を算出する種々の演算式を採用可能である。ただし、演算式としては、ハッシュ関数を採用することが好ましい。ハッシュ関数とは、種情報から固定長の疑似乱数（ハッシュ値）を生成する関数である。ハッシュ関数としては、図８、図９に示した関数（演算式）に限らず、ＭＤ５（Message Digest 5）や、ＳＨＡ−１（Secure Hash Algorithm 1）やＳＨＡ−２など、種々の関数を採用可能である。ハッシュ関数を用いる場合には、演算結果（ハッシュ値）における値域上の偏りが小さくなる。さらに、似た種情報から近しい演算結果（ハッシュ値）が生成されにくい。従って、演算式としてハッシュ関数を採用すれば、選択される物理ポートが特定の物理ポートに偏ることを抑制することが容易となる。これらは、複数の論理インターフェースからの出力（送信）用の論理インターフェースの選択に利用される演算式についても同様である。
【０１１９】
変形例２：
上記各実施例において、論理ポートに含まれる複数の物理ポートの内からの出力用の物理ポートの選択に利用される演算の種情報としては、図９のステップＳ２００に示した情報に限らず、パケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種々の情報を採用可能である。例えば、宛先情報を用いずに送信元情報のみを用いて演算を行っても良い。こうすれば、複数の物理ポートを送信元に応じて使い分けることができる。逆に、送信元情報を用いずに宛先情報のみを用いて演算を行っても良い。こうすれば、複数の物理ポートを宛先に応じて使い分けることができる。また、制御情報を用いずにヘッダ情報のみを用いて演算を行っても良い。
【０１２０】
宛先情報および送信元情報の少なくとも一方の情報を種情報として用いる理由は、以下の通りである。すなわち、ネットワーク中継装置によるパケットの中継によって、２つのネットワーク機器の間で転送される複数のパケットの転送順序が入れ替わることを抑制するためである。
【０１２１】
なお、パケットの通信方法としては、イーサネット（登録商標）を用いる方法や、さらに、インターネットプロトコルを用いる方法に限らず、任意の通信方法を採用可能である。いずれの場合も、宛先情報としては宛先に関連する種々の情報（例えば、宛先ＭＡＣアドレス、宛先ＩＰアドレス、宛先ポート（Ｌ４ポート）の中の任意の情報）を採用可能である。また、送信元情報としては、送信元に関連する種々の情報（例えば、送信元ＭＡＣアドレス、送信元ＩＰアドレス、送信元ポート（Ｌ４ポート）の中の任意の情報）を採用可能である。
【０１２２】
以上の説明は、複数の論理インターフェースからの出力用論理インターフェースの選択に利用される演算の種情報についても同様である。
【０１２３】
変形例３：
上述の各実施例において、演算結果から物理ポートを選択する方法としては、図１０に示す方法に限らず、種々の方法を採用可能である。例えば、候補ポートの総数が「ｎ（ｎは２以上の整数）」の場合には、演算結果を「ｎ」で割った余りを、選択番号として採用してもよい。一般には、演算結果と物理ポートとの対応関係を、任意の方法で決定することができる。ただし、ネットワークシステムの種々の利用状況において、選択されるポートが特定のポートに偏ることを抑制するためには、各物理ポートに対応付けられる演算結果の範囲の大きさが均等であることが好ましい。これらは、演算結果から論理インターフェースを選択する方法についても同様である。
【０１２４】
変形例４：
上記各実施例において、演算部は、少なくとも２つの互いに異なる演算式を利用できればよい。ただし、ネットワークシステムの種々の利用状況において出力物理ポートの偏りを抑えるためには、演算部が、３つ以上の互いに異なる演算式を利用できることが好ましい。これらは、演算結果から論理インターフェースを選択する場合についても同様である。
【０１２５】
変形例５：
上記各実施例において、演算部が利用する演算式としては、利用可能な複数の演算式の中の任意の演算式を採用可能である。ただし、出力物理ポートの偏りが小さくなるような演算式を選択することが好ましい。例えば、宛先検索部２１０が、各物理ポートのトラフィック量（例えば、送信されたパケット数）を、ユーザに提示するために、メモリに記録してもよい。そして、ユーザは、提示されたトラフィック量の偏りが大きい場合に、演算式を変更する指示を変更部に入力すればよい。トラフィック量の提示、および、演算式変更指示の入力は、スイッチ装置の操作パネル（図示せず）や、スイッチ装置に接続された管理端末（図示せず）を介して、行われ得る。
【０１２６】
また、変更部が自動的に演算式を変更してもよい。例えば、トラフィック量の偏りが所定の偏りよりも大きくなった場合に、変更部が自動的に演算式を変更してもよい。具体的には、所定の期間（例えば、１日）における、各物理ポートの積算トラフィック量の最大値と最小値との差分が所定の閾値以上である場合に、変更部が自動的に演算式を変更すればよい。
【０１２７】
以上の説明は、演算結果から論理インターフェースを選択する場合についても同様である。
【０１２８】
変形例６：
上述の各実施例のように、複数のスイッチ装置（ネットワーク中継装置）が、互いに直接に接続される場合がある。この場合には、互いに接続される２つのスイッチ装置の間で、演算式が異なることが好ましい。こうすれば、前段のスイッチ装置における出力物理ポートの偏りが後段のスイッチ装置における出力物理ポートの偏りと積み重なることに起因する偏りの増大を抑制することができる。
【０１２９】
なお、２つのスイッチ装置が互いに接続される場合には、ユーザが、２つのスイッチ装置の演算式を互いに異なる演算式に設定すればよい。具体的には、２つのスイッチ装置のうちの少なくとも一方に、ユーザが演算式変更指示を入力すればよい。このような演算式の設定（変更）は、ネットワークシステムの運用開始前に実行されることが好ましい。
【０１３０】
また、この代わりに、２つのスイッチ装置の少なくとも一方が自動的に演算式を変更することによって、２つのスイッチ装置の間で演算式を互いに異ならせても良い。例えば、各スイッチ装置の変更部が、自己の属するスイッチ装置で利用される演算式に関する情報を交換すればよい。このような情報の交換は、スイッチ装置を接続する回線を介して行えばよい。そして、一方の変更部が、他方のスイッチ装置で利用される演算式を特定し、自己のスイッチ装置で利用される演算式を、特定された演算式と異なる演算式に自動的に変更すればよい。この際、２つの変更部の中から演算式を変更する変更部を選択する方法としては、任意の方法を採用可能である。例えば、スイッチ装置に固有な識別番号の小さいスイッチ装置の変更部が選択されてもよい。
【０１３１】
なお、このような２つのスイッチ装置（変更部）によって実行される演算式の変更処理は、ネットワークシステムの運用開始前に自動的に実行されることが好ましい。例えば、２つのスイッチ装置が回線によって接続されたことに応じて変更処理が開始されることとしてもよい。ただし、ユーザの指示に応じて変更処理が開始されることとしてもよい。なお、このような変更処理としては、各スイッチ装置で利用される演算式を互いに異ならせるような任意の処理を採用可能である。また、変更処理のための通信方法としては、任意の方法を採用可能である。例えば、ＨＴＴＰプロトコルを利用して情報を交換してもよい。
【０１３２】
ところで、このような偏りの積み重ねによる偏りの増大は、直列に接続されるスイッチ装置の数が多いほど顕著である。従って、直列に接続されるスイッチ装置の数が３以上である場合には、互いに接続される２つのスイッチ装置の間で演算式が異なることが好ましい。さらに、直列に接続された全てのスイッチ装置の任意の２つの組み合わせの間で、演算式が互いに異なることが特に好ましい。
【０１３３】
変形例７：
図１３〜図１５に示した第２実施例において、論理インターフェース（ポートグループ）としては、ＶＬＡＮに限らず、任意に設定された物理ポートのグループを採用可能である。例えば、上述の論理ポートをポートグループとして採用してもよい。この場合には、受信パケットの宛先に到達可能な物理ポート（候補ポート）を含む複数の論理ポートの中から、受信パケットの送信に利用すべき論理ポートを、演算結果に基づいて選択すればよい。ただし、ＶＬＡＮによってネットワークを分割するスイッチ装置を利用する場合には、パケットの通信経路が、パケットの送信に利用されるＶＬＡＮに応じて大きく変わる場合が多い。従って、論理インターフェースとしてＶＬＡＮを採用すれば、演算結果に基づいてＶＬＡＮが選択されるので、通信経路の偏りを緩和することが容易である。また、１つの物理ポートが複数のポートグループ（論理インターフェース）に属していても良い。例えば、いわゆる「Ｔａｇ−ＶＬＡＮ」を利用した場合には、１つの物理ポートが複数のＶＬＡＮ（論理インターフェース）に含まれ得る。
【０１３４】
変形例８：
ネットワークシステムの構成としては、図１に示したネットワークシステム９００や、図１３に示したネットワークシステム９００ｃに限らず、任意の構成を採用可能である。スイッチ装置（ネットワーク中継装置）の数、および、回線の数は、任意に選択可能である。また、経路も任意に構築され得る。例えば、図１３の第２実施例において、１つのスイッチ装置を通って同じ宛先ＩＰアドレスへ至る経路が、そのスイッチ装置の３以上の互いに異なる物理ポートによって分岐してもよい。そして、それらの複数の物理ポートが、互いに異なる論理インターフェース（例えば、ＶＬＡＮ）に含まれていても良い。また、スイッチ装置（ネットワーク中継装置）の構成としても、図２、図１６、図１７に示す構成に限らず、種々の構成を採用可能である。例えば、変更部の構成としては、手動あるいは自動で演算式を変更する種々の構成を採用可能である。
【０１３５】
また、上記各実施例において、スイッチ装置（ネットワーク中継装置）が、レイヤ２スイッチとしての処理と、レイヤ３スイッチ（ルータ）としての処理と、の両方を実行してもよい。この場合には、レイヤ２スイッチとしての処理を実行する第１ヘッダ処理部と、レイヤ３スイッチとしての処理を実行する第２ヘッダ処理部とを、独立に設けてもよい。
【０１３６】
変形例９：
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、図２のヘッダ処理部２００を、ＣＰＵとメモリとを有するコンピュータに置き換えてもよい。この場合には、ＣＰＵがプログラムを実行することによって、ヘッダ処理部２００の種々の機能を実現する。
【図面の簡単な説明】
【０１３７】
【図１】本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す説明図である。
【図２】スイッチ装置ＳＷの構成を示す説明図である。
【図３】リンクアグリゲーションテーブル４００とフィルタテーブル４１０とを示す説明図である。
【図４】宛先検索処理の手順を示すフローチャートである。
【図５】ハッシュ値生成部２２０（図２）の内部構成を示す説明図である。
【図６】制御情報５２０とヘッダ情報５２１とを示す説明図である。
【図７】計算部２２２の内部構成を示す説明図である。
【図８】計算部２２２によるハッシュ値の算出の手順を示すフローチャートである。
【図９】ハッシュ値の算出の具体例を示す説明図である。
【図１０】出力物理ポートとハッシュ値との関係を示す説明図である。
【図１１】ネットワークシステム９００におけるパケット中継の比較例を示す説明図である。
【図１２】ネットワークシステム９００におけるパケット中継の実施例を示す説明図である。
【図１３】第２実施例におけるネットワークシステム９００ｃを示す説明図である。
【図１４】ルーティングテーブルと、ＡＲＰテーブルと、フィルタテーブルと、の一例を示す説明図である。
【図１５】第２実施例における宛先検索処理の手順を示すフローチャートである。
【図１６】第３実施例におけるヘッダ処理部２００ａの構成を示す説明図である。
【図１７】第４実施例におけるヘッダ処理部２００ｂの構成を示す説明図である。
【符号の説明】
【０１３８】
１００...インターフェース回路
２００、２００ａ、２００ｂ...ヘッダ処理部
２１０...宛先検索部
２２０、２２０ａ...ハッシュ値生成部
２２２...計算部
２２４...設定値蓄積部
２３０...設定値制御部
２４０...関数セレクタ
２５０...修正制御部
２６０...データ修正部
３００...メモリ
４００...リンクアグリゲーションテーブル
４１０...フィルタテーブル
６０２...制御情報蓄積部
６０４...Ｌ２ヘッダ情報蓄積部
６０６...Ｌ３ヘッダ情報蓄積部
６０８...Ｌ４ヘッダ情報蓄積部
６１０...加算処理部
６２０...論理積処理部
６２９...排他的論理和処理部
６３１〜６３８...積−和処理部
９００、９００ｃ...ネットワークシステム
ＳＷ、ＳＷ１０〜ＳＷ６０、ＲＴ１０〜ＲＴ９０...スイッチ装置
【図１】
2008048010.tif 000003
【図２】
2008048010.tif 000004
【図３】
2008048010.tif 000005
【図４】
2008048010.tif 000006
【図５】
2008048010.tif 000007
【図６】
2008048010.tif 000008
【図７】
2008048010.tif 000009
【図８】
2008048010.tif 000010
【図９】
2008048010.tif 000011
【図１０】
2008048010.tif 000012
【図１１】
2008048010.tif 000013
【図１２】
2008048010.tif 000014
【図１３】
2008048010.tif 000015
【図１４】
2008048010.tif 000016
【図１５】
2008048010.tif 000017
【図１６】
2008048010.tif 000018
【図１７】
2008048010.tif 000019