JP5178636B2 - 情報処理装置、パケット振り分け方法および装置 - Google Patents

情報処理装置、パケット振り分け方法および装置 Download PDF

Info

Publication number
JP5178636B2
JP5178636B2 JP2009143866A JP2009143866A JP5178636B2 JP 5178636 B2 JP5178636 B2 JP 5178636B2 JP 2009143866 A JP2009143866 A JP 2009143866A JP 2009143866 A JP2009143866 A JP 2009143866A JP 5178636 B2 JP5178636 B2 JP 5178636B2
Authority
JP
Japan
Prior art keywords
output
output destination
distribution
selection number
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009143866A
Other languages
English (en)
Other versions
JP2011004025A (ja
Inventor
康弘 児玉
真一 赤羽
晴大 加賀野井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2009143866A priority Critical patent/JP5178636B2/ja
Publication of JP2011004025A publication Critical patent/JP2011004025A/ja
Application granted granted Critical
Publication of JP5178636B2 publication Critical patent/JP5178636B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パケット伝送におけるパケット振り分け方法及び装置に関するものである。
コンピュータネットワークの冗長構成において、通信負荷を分散させる場合には、複数の出力先へパケットを振り分ける方法がある。ここで、障害などにより振り分け不可能となった出力先が発生した場合、その出力先を振り分け対象から外し、振り分け先の切り替えを行う必要がある。近年の回線の高速化、データ量の増大の中で、高可用なコンピュータネットワークを構築するには、障害発生時の切り替え時間を短縮し、切り替え後の負荷分散を行うことが求められている。
特許文献1は、受信されたパケットに関連付けられた宛先情報及び送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行し、振り分けパターン毎に振り分け数及び複数の出力先情報を格納するテーブルにより、複数の出力先の中から、受信パケットを送信すべき出力先を、演算結果に基づいて振り分ける技術が記載されている。
特許文献2は、障害などにより振り分け不可能となった1つの出力先に対して、振り分けを防止し、振り分け先の負荷分散を行う方法が記載されている。
特開2008−48010号公報 特開2005−277915号公報
特許文献1の技術では、障害などにより振り分け不可能となった出力先が発生した場合の対応として、振り分け情報を格納する振り分けテーブルの振り分け不可能となった出力先がある全ての振り分けパターンに対して、振り分け数を減らし、振り分け不可能となった出力先情報を削除する方法がある。しかしながら、障害検出から振り分けテーブルの書き換え完了までの間は、障害となっている出力先に振り分ける場合がある。
または、振り分けテーブルの振り分け不可能となった出力先がある全ての振り分けパターンに対して、振り分け不可能となった出力先情報を、振り分け可能な出力先情報に変更する方法がある。しかしながら、振り分け不可能な出力先から変更された振り分け可能な出力先の負荷が高くなる場合がある。
特許文献2の技術では、振り分け不可能となった出力先が2つ以上になると、障害となっている出力先に振り分ける場合がある。
本発明は、上記した課題を踏まえ、振り分け不可能となった複数の出力先に対して、振り分けを防止し、偏りのない振り分けができる技術を提供することを目的とする。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
[適用例1] 適用例1のパケット振り分け方法は、受信されたパケットに関連付けられた宛先情報に基づいて、複数Nの出力先から振り分け不可能となった複数xの出力先を除いた複数N−xの出力先の中から前記受信パケットを送信すべき1つの出力先を選択する不活性対応振り分け工程を備えることを特徴とする。もしくは、上記パケット振り分け方法の各工程を実施するネットワーク接続装置を提供することができる。
適用例1のパケット振り分け方法及び装置によれば、振り分けテーブルの書き換え不要で、障害などにより振り分け不可能となった複数の出力先への振り分けを防止し、振り分け先の負荷分散を行うことができる。
[適用例2] 適用例2のパケット振り分け方法は、適用例1に記載のパケット振り分け方法であって、複数Nの出力先の中から前記受信パケットを送信すべき1つの出力先を選択する通常振り分け工程を含むとしても良い。もしくは、上記パケット振り分け方法の各工程を実施するネットワーク接続装置を提供することができる。
適用例2のパケット振り分け方法及び装置によれば、通常振り分け部での出力先が振り分け可能であった場合は、通常振り分け部の結果を使用することにより、振り分け不可能となった出力先へのフロー以外は出力先が変化することなく、振り分け不可能となったフローのみを振り分け可能な出力先に切り替えることができる。
[適用例3] 適用例3のパケット振り分け方法は、適用例1に記載のパケット振り分け方法であって、複数Nとは別の複数Mの出力先の中から前記受信パケットを送信すべき1つの出力先を選択する通常振り分け工程を含むとしても良い。もしくは、上記パケット振り分け方法の各工程を実施するネットワーク接続装置を提供することができる。
適用例3のパケット振り分け方法及び装置によれば、通常振り分け部での出力先が振り分け不可能であった場合は、切り替え時振り分け出力先の中から出力先を選択することにより、通常時振り分け出力先と切り替え時振り分け出力先を異なる出力先に分けることができる。
本発明の形態は、パケット振り分け方法及び装置に限るものではなく、例えば、パケット振り分け装置とは異なる他のネットワーク機器、パケット振り分け装置の機能をコンピュータに実現させるためのプログラムなどの他の形態に適用することもできる。また、本発明は、前述の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
振り分けテーブルの書き換えが不要で、振り分け不可能となった複数の出力先への振り分けを抑止し、更に振り分け切り替え後の負荷分散を行うことにより、障害時高速切替可能なパケット振り分け方法及び装置を実現することが可能となる。
本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す構成図である。 スイッチ装置の構成を示す説明図である。 第1の実施例における出力先決定部の構成を示す説明図である。 宛先テーブルと振り分けテーブルと出力先状態テーブルとを示す説明図である。 宛先検索処理を示すフローチャートである。 第1の実施例における出力先選択処理を示すフローチャートである。 第1の実施例における出力先選択番号ビットマップと不活性対応振り分け出力先選択番号とハッシュ値との関係を示す説明図である。 第2の実施例における出力先決定部の構成を示す説明図である。 第2の実施例における出力先選択処理を示すフローチャートである。 第2の実施例における通常振り分け出力先選択番号とハッシュ値との関係を示す説明図である。 第2の実施例における不活性対応振り分け出力先選択番号とハッシュ値との関係を示す説明図である。 第2の実施例における出力先選択番号ビットマップとハッシュ値との関係を示す説明図である。 第3の実施例における出力先決定部の構成を示す説明図である。 第3の実施例における振り分けテーブルを示す説明図である。 第3の実施例における出力先選択処理を示すフローチャートである。 第3の実施例における不活性対応振り分け出力先選択番号とハッシュ値との関係を示す説明図である。 第3の実施例における出力先選択番号ビットマップとハッシュ値との関係を示す説明図である。
以上説明した本発明の構成及び作用を一層明らかにするために、以下本発明を適用したネットワーク接続装置について説明する。
A.第1の実施例:
A1.ネットワーク接続装置の構成:
図1は、本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す説明図である。このネットワークシステム10は、4つのスイッチ装置SW10〜SW40を有している。スイッチ装置SW10〜SW40は、ネットワークシステム10における複数の通信経路を相互に接続する接続装置である。図1の例では、これらのスイッチ装置SW10〜SW40は、いずれも、いわゆる「レイヤ2スイッチ」として機能している。
第1スイッチ装置SW10には、3つのスイッチ装置SW20、SW30、SW40が接続されている。第1スイッチ装置SW10と第2スイッチ装置SW20とは、8本の回線L11〜L18によって接続されている。また、第1スイッチ装置SW10と第3スイッチ装置SW30とは、4本の回線L31〜L34によって接続され、第1スイッチ装置SW10と第4スイッチ装置SW40とは、1本の回線L41によって接続されている。
各スイッチ装置SW10〜SW40は、回線との接続のための物理ポートを有している。図1では、物理ポートを識別する物理ポート番号が、記号「#」と番号との組み合わせによって示されている。例えば、回線L11は、第1スイッチ装置SW10の第1物理ポート(#1)と、第2スイッチ装置SW20の第2物理ポート(#2)とに、接続されている。なお、物理ポート番号は、1つのスイッチ装置内で重複の無い、物理ポートに固有な番号である。すなわち、1つのスイッチ装置内では、各物理ポートは、物理ポート番号によって一意的に識別される。
ところで、第1スイッチ装置SW10と第2スイッチ装置SW20とは、8本の回線L11〜L18によって接続されている。これらの8本の回線L11〜L18は、イーサネット(登録商標)におけるリンクアグリゲーション機能によって、仮想的な1本の回線として利用される。リンクアグリゲーション機能とは、複数の物理ポートを集約して仮想的な1つのポート(「論理ポート」とも呼ばれる)として利用する機能である。このリンクアグリゲーション機能は、帯域の拡大や冗長性の確保を実現するために利用される。図1の例では、第1スイッチ装置SW10の8つの物理ポート#1〜#8が、リンクアグリゲーション機能によって、1つの論理ポートとして利用される。そして、これらのポート#1〜#8の接続相手である第2スイッチ装置SW20の8つの物理ポート#2〜#9も、リンクアグリゲーション機能によって、1つの論理ポートとして利用される。例えば、第1スイッチ装置SW10は、第13物理ポート(#13)から受信したパケットの出力先が物理ポート#1〜#8を集約した1つの論理ポート(LA0)である場合、物理ポート#1〜#8のいずれかを出力先として決定し、受信したパケットを振り分ける。
以下、リンクアグリゲーション機能によって構成される論理ポート、及び、いずれの論理ポートにも含まれていない物理ポート(以下「単独物理ポート」とも呼ぶ)、のそれぞれのことを「回線ポート」とも呼ぶ。すなわち、スイッチ装置SWにおいては、回線ポートは、独立な1本の回線(仮想的な1本の回線を含む)が接続されるポートとして利用される。
図2は、スイッチ装置SWの構成を示す説明図である。ここで、スイッチ装置SWを主に図1に示す第1のスイッチ装置SW10の構成として説明するが、第2〜第4のスイッチ装置SW20〜SW40も同じ構成である。このスイッチ装置SWは、パケット受信回路/送信回路100(以下、「インターフェース回路100」とも呼ぶ)と、ヘッダ処理部200と、メモリ300と、を有している。これらの構成要素100、200、300は、図示しないバスによって接続されている。
インターフェース回路100は、パケットの受信及び送信を行う電子回路であり、回線を接続するための複数の物理ポートを有している。
ヘッダ処理部200は、受信されたパケットを送信すべき物理ポート(以下「出力物理ポート」とも呼ぶ)を決定する処理(「宛先検索処理」とも呼ぶ)を実行する。ヘッダ処理部200は、後述する種々の機能を実現するために設計されたASIC(Application Specific Integrated Circuit:特定用途向け集積回路)である。また、このヘッダ処理部200は、データ検索部210と、振り分け出力先検索部220と、出力先状態監視部230と、ハッシュ値生成部240と、出力先決定部250と、を有している。
メモリ300は、宛先検索処理に利用される種々のデータを格納する。図2の例では、メモリ300は、宛先テーブル310と、振り分けテーブル320と、出力先状態テーブル330と、を格納している。これらのテーブルは、出力先の決定に利用される(詳細は後述)。
図3は、出力先決定部250の詳細な構成を示す説明図である。第1の実施例では、出力先決定部250は、不活性対応振り分け部260と、デコーダ261と、ビットシフト演算器262と、選択制御部270と、を有する。
図4(a)は、宛先テーブル310の一例を示す説明図である。宛先テーブル310は、VLAN−IDと、回線ポート番号と、その回線ポート番号に対応する回線ポートに接続されたネットワーク機器のレイヤ2のアドレス(MACアドレス)と、の対応関係を格納する。
VLAN−IDは、VLAN(仮想LAN(仮想ローカルエリアネットワーク))の識別番号である。VLANは、レイヤ2レベルで互いに通信可能な1以上の回線ポートで構成されるグループを表している。すなわち、第1実施例では、データ検索部210は、異なるVLANの間ではパケットを中継せずに、同じVLANに属している回線ポートの間でのみパケットを中継する。このように、複数の回線ポートを複数のVLANに分割すれば、意図しない回線ポート(他のVLAN)に通信負荷が広がることを抑制できる。すなわち、複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワーク(「ネットワークセグメント」とも呼ばれる)に分割することができる。
図4(a)の例では、第0論理ポート(LA#0)及び第1論理ポート(LA#1)及び第13物理ポート(Port#13)のそれぞれのVLAN−IDが「10」に設定されている。ヘッダ処理部200は、回線ポート番号とVLAN−IDとの対応関係を、ユーザの指示に従って設定する。ユーザの指示は、例えば、スイッチ装置SWの操作パネル(図示せず)、あるいは、スイッチ装置SWに接続された管理端末(図示せず)を介して入力され得る。
なお、1台のスイッチ装置で利用されるVLANの総数としては「1」に限らず任意の数を採用可能である。また、VLAN−IDとしては、「10」に限らず任意の番号を採用可能である。
また、この宛先テーブル310の回線ポート番号とMACアドレスとの対応関係は、データ検索部210によって自動的に設定される。具体的には、データ検索部210は、スイッチ装置SWによって受信されたパケットのヘッダ情報を参照することによって、送信元MACアドレスを取得する。そして、データ検索部210は、送信元MACアドレスと、そのパケットを受信した回線ポートと、の対応関係を宛先テーブル310に登録する。パケットを受信した物理ポートが単独物理ポートである場合には、物理ポート番号が登録される。パケットを受信した物理ポートが論理ポートに含まれている場合には、その論理ポートに固有なリンクアグリゲーション番号(「LA番号」あるいは「振り分け番号」とも呼ぶ)が登録される。図4(a)の例では、第0論理ポート(LA#0)と第1アドレス(address1)との対応関係と、第1論理ポート(LA#1)と第2アドレス(address2)との対応関係と、第13物理ポート(Port#13)と第3アドレス(address3)との対応関係と、が登録されている。
なお、1つの回線ポートには、複数のネットワーク機器が接続され得る。この場合には、1つの回線ポート番号に関連して複数のMACアドレスが登録され得る。また、宛先テーブル310には、さらに、登録されたデータの有効期限を定める期限情報を登録してもよい。有効期限の過ぎたデータを宛先テーブル310から削除すれば、ネットワーク構成の変化に応じて宛先テーブル310を更新することが容易となる。また、メモリ300の利用効率を向上させることもできる。このような有効期限としては、登録されてから所定時間の経過時を採用可能である。なお、論理ポートに含まれる物理ポートに関しても、LA番号の代わりに物理ポート番号を登録してもよい。
図4(b)は、振り分けテーブル320の一例を示す説明図である。振り分けテーブル320は、論理ポートを定義するテーブルである。振り分けテーブル320は、論理ポートに固有なLA番号と、その論理ポートに含まれる振り分け出力先の総数と、その論理ポートに含まれる物理ポートと、の対応関係を定めている。図4(b)に示す例では、第1物理ポート(Port#1)から第8物理ポート(Port#8)までの8つの物理ポートの全体が、仮想的な1つのポート(論理ポート)として利用される。そして、その論理ポートのLA番号が「0」に設定されている。
なお、1つの論理ポートに含まれる複数の物理ポートのそれぞれには、各物理ポートを特定するための選択番号が付される。選択番号は0から始まる整数値である。図4(b)の例では、第1物理ポート#1の選択番号が「0」に設定され、第2物理ポート#2の選択番号が「1」に設定されている。この選択番号は、後述する出力先選択処理で利用される。
ヘッダ処理部200は、振り分けテーブル320の各項目の値を、宛先テーブル310と同様に、ユーザの指示に従って設定する。なお、1つの論理ポートに含まれる物理ポートの総数としては、「8」に限らず、任意の数を採用可能である。また、1台のスイッチ装置SWで利用される論理ポートの総数としては、「1」に限らず、任意の数を採用可能である。
図4(c)は、出力先状態テーブル330の一例を示す説明図である。出力先状態テーブル330は、出力先の活性状態(リンクアップ状態)を格納するテーブルである。出力先である物理ポートの物理ポート番号(出力先番号)毎に出力先状態を管理している。出力先状態が「1」は活性(リンクアップ)であることを、「0」は不活性(リンクダウン)であることを意味する。図4(c)に示す例では、第2物理ポート(Port#2)及び第5物理ポート(Port#5)の状態が「0」に設定されている。ヘッダ処理部200は、出力先状態テーブル330の出力先の活性状態を、宛先テーブル310と同様に、ユーザの指示に従って設定する。
また、この出力先状態テーブル330の出力先の活性状態(リンクアップ状態)は、出力先状態監視部230によって自動的に設定される。出力先状態監視部230は、物理ポートの活性状態(リンクアップ状態)を常に監視し、活性状態の変化には、瞬時に対応する。
A2.宛先検索処理:
図5は、スイッチ装置SWのヘッダ処理部200が実行する宛先検索処理(ステップS50)を示すフローチャートである。最初のステップS500では、データ検索部210は、インターフェース回路100から受信した受信パケットのヘッダ情報と、宛先テーブル310とを参照することによって、受信パケットを送信すべき回線ポートを検索する。具体的には、データ検索部210は、ヘッダ情報から宛先MACアドレスを取得し、その宛先MACアドレスの属する回線ポートを宛先テーブル310から検索する。この際、パケットを受信した回線ポートと同じVLANに含まれる回線ポートの中から回線ポートが検索される。すなわち、異なるVLANからは回線ポートは検索されない。データ検索部210は、宛先検索結果として、受信パケットの出力先である回線ポートを振り分け出力先検索部220およびハッシュ値生成部240および出力先決定部250に通知する。
なお、検索された回線ポートと、そのパケットを受信した回線ポートとが同じである場合には、パケットの中継が不要であるので、データ検索部210はパケットの送信を中止する。また、宛先テーブル310から回線ポートが検索されなかった場合には、データ検索部210は、そのパケットを受信した回線ポート以外の全ての回線ポートを、パケットを送信すべき回線ポートとして選択する(「フラッディング」とも呼ばれる)。ただし、この場合には、パケットを受信した回線ポートと同じVLANに含まれる回線ポートのみが選択される。
次のステップS501では、出力先決定部250は、データ検索部210から通知された回線ポートが論理ポート(リンクアグリゲーションポート)と通常ポート(単独物理ポート)とのいずれであるかを判定する。検索された回線ポートが通常のポート(単独物理ポート)である場合には(ステップS501のNO)、出力先決定部250は、その物理ポートを出力物理ポートとして採用する(ステップS506)。
通知された回線ポートが論理ポートである場合には(ステップS501のYES)、次のステップS502で、ハッシュ値生成部240は、インターフェース回路100から受信した受信パケットのヘッダ情報、及び、データ検索部210から通知された宛先検索結果(回線ポート)に基づいて、ハッシュ値を算出し、出力先決定部250に通知する。ハッシュ値は、ハッシュ値の算出に利用されるデータ(種情報)に応じて、種々の値となり得る。具体的には、ハッシュ値生成部240は、種情報を、8ビット毎に区切る。そして、ハッシュ値生成部240は、8ビットのデータの全てを加算する。この際、桁上げは省略される。そして、ハッシュ値生成部240は、8ビットの加算結果のビットの並び順番を逆にした値をハッシュ値として採用する。こうして得られたハッシュ値は8ビットのデータであり、その値域は0〜255である。また、ハッシュ値が、送信元を表すデータ(MACアドレス、IPアドレス、L4ポート、受信VLAN)と、宛先を表すデータ(MACアドレス、IPアドレス、L4ポート、送信VLAN)とに基づいて算出される。従って、送信元と宛先との組み合わせ(フロー)に応じて、通信負荷(出力物理ポート)を分散させることができる。
次のステップS503では、振り分け出力先検索部220は、データ検索部210から通知された回線ポート(論理ポート)の振り分け番号(LA番号)と、振り分けテーブル320とを参照することによって、その論理ポートに含まれる振り分け出力先の総数と、その論理ポートに含まれる物理ポート番号を検索する。振り分け出力先検索部220は、検索した論理ポートに含まれる振り分け出力先の総数と物理ポート番号を出力先状態監視部230と出力先決定部250に通知する。
次のステップS504では、出力先状態監視部230は、振り分け出力先検索部220から通知された振り分け出力先の物理ポート番号と、出力先状態テーブル330とを参照することによって、出力先物理ポートの活性状態(リンクアップ状態)を検索する。そして、出力先物理ポートのうちで不活性な物理ポートの数を示す不活性出力先数及び出力先物理ポート毎の活性/不活性の状態を示す出力先状態ビットマップを生成する。出力先状態監視部230は生成した不活性出力先数と出力先状態ビットマップを出力先決定部250に通知する。
次のステップS505で、出力先決定部250は、その論理ポートに含まれる複数の物理ポートの中から1つの物理ポートを選択する。そして、選択された物理ポートが出力物理ポートとして採用される(ステップS506)。物理ポートの選択には、ハッシュ値生成部220によって生成されたハッシュ値、及び、出力先状態監視部230によって検索された出力先物理ポートの活性状態を示す情報などが利用される。
出力物理ポートが決定されたら、ヘッダ処理部200は、出力情報(出力物理ポート)をインターフェース回路100に通知する。インターフェース回路100は、通知された出力物理ポートからパケットを送信する。
図6は、第1の実施例における、出力先決定部250がステップS505において実行する出力先選択処理(ステップS60)を示すフローチャートである。最初のステップS600では、不活性対応振り分け部260は、図7(a)に示す関係式に従って、ハッシュ値生成部240から通知されたハッシュ値と、振り分け出力先検索部220から通知された振り分け出力先総数N(振り分け数N)と、出力先状態監視部230から通知された不活性出力先数xとを用いて、振り分け出力先物理ポートの選択番号を生成し、デコーダ261に通知する。この選択番号は、0〜N−x−1の範囲の値である。具体的には、不活性対応振り分け部260は、まず、この関係式に従い、「ハッシュ値*(振り分け出力先総数N−不活性出力先数x)」を256で割ることによって商を算出する。「256」は、ハッシュ値の値域の大きさである。つまり、ハッシュ値と選択番号の関係は、ハッシュ値をN―x個の領域に分割し、0〜N−x−1の選択番号を順に割り当てるということである。
図7(b)は、ハッシュ値と選択番号との関係を示す説明図である。図7(b)には、論理ポートに含まれる物理ポートの総数Nが8で、不活性出力先数xが2の場合の例が示されている。この場合には、「ハッシュ値*(振り分け出力先総数N−不活性出力先数x)」は、0〜1530の範囲の値である。従って、商は、0〜5のいずれかである。具体的には、ハッシュ値が0〜42の範囲内である場合には、選択番号が0である。ハッシュ値が43〜85の範囲内である場合には、選択番号が1である。ハッシュ値が86〜127の範囲内である場合には、選択番号が2である。ハッシュ値が128〜170の範囲内である場合には、選択番号が3である。ハッシュ値が171〜213の範囲内である場合には、選択番号が4である。ハッシュ値が214〜255の範囲内である場合には、選択番号が5である。つまり、ハッシュ値を活性出力先数である「N−x」個の選択番号のいずれかに対応させているのである。
次のステップS601では、デコーダ261は、不活性対応振り分け部260から通知された振り分け出力先選択番号を、Nビットの選択番号ビットマップにデコードし、ビットシフト演算器262に通知する。
ビットシフト演算器262は、出力先状態ビットマップを参照し、デコーダ261から通知された選択番号ビットマップをビットシフト演算することにより、不活性出力先を選択しない選択番号ビットマップを生成する。具体的には、ビットシフト演算器262は、まず、ビットマップ参照位置iを0に設定し(ステップS602)、ビットマップ参照位置iと出力先状態ビットマップより、対応する出力先状態が活性と不活性とのいずれであるかを判定する(ステップS603)。その出力先が活性である場合には、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS606)。その出力先が不活性である場合には、ビットシフト後の選択番号ビットマップ(i+1)〜(N−1)が、ビットシフト前の選択番号ビットマップ(i)〜(N−2)になるように1ビットシフトする(ステップS604)。そして、選択番号ビットマップの現在の参照位置iの位置に0を挿入し(ステップS605)、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS606)。参照位置を移行した後、参照位置が途中と最後とのいずれかであったかを判定をする(ステップS607)。参照位置iがNより小さい場合には、参照位置が途中であったので、出力先状態の判定(ステップS603)からの処理を繰り返し実行する。参照位置iがNと等しい場合は、参照位置が最後であったので、ビットシフト演算器262は、出力先を選択するための選択番号ビットマップを確定する。ビットシフト演算器262は、確定した選択番号ビットマップを選択制御部270に通知する。
図7(c)は、選択番号と選択番号ビットマップとの関係を示す説明図である。図7(c)には、論理ポートに含まれる物理ポートの総数Nが8で、不活性出力先数xが2で、選択番号1と4に対応する出力先の状態が不活性である場合の例が示されている。この場合には、シフト前選択番号ビットマップは、0〜5の選択番号を8ビットのビットマップにデコードしたものであり、シフト後選択番号ビットマップは、シフト前選択番号ビットマップのビット1と4の位置に「0」を挿入し、ビットシフト演算したものである。従って、シフト後選択番号ビットマップでは、ビット1と4が「1」となることはない。なお、図7(c)において、値の先頭に付された符号「0b」は、その値が2進法で表されていることを示している。また、ビットマップのMSB(最上位ビット)が、ビット0に対応している。他の図面においても同様である。ここでは、符号「0b」以降の8ビットのビットマップの各ビットにおいて、「0」を非出力先を示す情報、「1」を出力先を示す情報として説明したが、逆の意味で「0」と「1」を用いてもよい。
次のステップS608で、選択制御部270は、ビットシフト演算器262から通知された選択番号ビットマップに基づいて、振り分け出力先検索部220から通知された複数の物理ポート(N個の出力先情報)の中から1つの物理ポートを選択する。具体的に図7(c)のシフト後選択番号ビットマップに基づいて、図4(b)の振り分けテーブル320の第0論理ポート(LA#0)の出力先を選択する場合について説明する。シフト後選択番号ビットマップのビット0が1である場合は、第1物理ポート(Port#1)を選択する。シフト後選択番号ビットマップのビット2が1である場合は、第3物理ポート(Port#3)を選択する。シフト後選択番号ビットマップのビット3が1である場合は、第4物理ポート(Port#4)を選択する。シフト後選択番号ビットマップのビット5が1である場合は、第6物理ポート(Port#6)を選択する。シフト後選択番号ビットマップのビット6が1である場合は、第7物理ポート(Port#7)を選択する。シフト後選択番号ビットマップのビット7が1である場合は、第8物理ポート(Port#8)を選択する。
A3.効果:
以上説明した第1の実施例におけるスイッチ装置SWによれば、障害などにより振り分け不可能となった出力先が発生し、振り分け先の切り替えが必要となった場合においても、振り分けテーブルの書き換えが不要となる。その結果、テーブル書き換えのためのリソースを削減することができる。
また、スイッチ装置SWでは、複数出力先の活性状態を常に監視し、活性状態の変化には、瞬時に対応することにより、障害などにより振り分け不可能となった複数の出力先への振り分けを防止することができる。
つまり、複数の出力先が障害になったとしても、振り分けテーブルの書き換えを行うことなく、振り分け先の切り替えを行うことができる。
また、スイッチ装置SWでは、送信元と宛先との組み合わせに応じたハッシュ値と、振り分け出力先総数と、不活性出力先数と、を用いて振り分け出力先を選択することにより、振り分け先切り替え後の振り分け先の負荷分散を行うことができる。
B.第2の実施例:
B1.ネットワーク接続装置の構成:
第2の実施例における、ネットワークシステムの構成は、スイッチ装置SWにおける出力先決定部250の機能構成が異なる点を除き、第1の実施例と同様である。
図8は、第2の実施例における、出力先決定部250の詳細な構成を示す説明図である。第2の実施例における、出力先決定部250は、第1の実施例と同様に、不活性対応振り分け部260と、デコーダ261と、ビットシフト演算器262と、選択制御部270と、を有する。第2の実施例では、出力先決定部250は、さらに、通常振り分け部280とデコーダ281を有する。
B2.宛先検索処理:
第2の実施例における、スイッチ装置SWのヘッダ処理部200が実行する宛先検索処理は、出力先決定部250が実行する出力先選択処理が異なる点を除き、第1の実施例と同様である。
図9は、第2の実施例における、出力先決定部250がステップS505において実行する出力先選択処理(ステップS90)を示すフローチャートである。最初のステップS900では、通常振り分け部280は、図10(a)に示す関係式に従って、ハッシュ値と、振り分け出力先総数Nとを用いて、振り分け出力先物理ポートの選択番号を生成する。なお、このステップ900で生成した選択番号のことを「通常振り分け選択番号」ともいう。この通常振り分け選択番号は、0〜N−1の範囲の値である。具体的には、通常振り分け部280は、まず、この関係式に従い、「ハッシュ値*振り分け出力先総数N」を256で割ることによって商を算出する。「256」は、ハッシュ値の値域の大きさである。つまり、ハッシュ値と通常振り分け選択番号の関係は、ハッシュ値をN個の領域に分割し、0〜N−1の通常振り分け選択番号を順に割り当てるということである。
図10(b)は、ハッシュ値と通常振り分け選択番号との関係を示す説明図である。図10(b)には、論理ポートに含まれる物理ポートの総数Nが8の場合の例が示されている。この場合には、「ハッシュ値*振り分け出力先総数N」は、0〜2040の範囲の値である。従って、商は、0〜7のいずれかである。具体的には、ハッシュ値が0〜31の範囲内である場合には、通常振り分け選択番号が0である。ハッシュ値が32〜63の範囲内である場合には、通常振り分け選択番号が1である。ハッシュ値が64〜95の範囲内である場合には、通常振り分け選択番号が2である。ハッシュ値が96〜127の範囲内である場合には、通常振り分け選択番号が3である。ハッシュ値が128〜159の範囲内である場合には、通常振り分け選択番号が4である。ハッシュ値が160〜191の範囲内である場合には、通常振り分け選択番号が5である。ハッシュ値が192〜223の範囲内である場合には、通常振り分け選択番号が6である。ハッシュ値が224〜255の範囲内である場合には、通常振り分け選択番号が7である。つまり、ハッシュ値を振り分け出力先総数であるN個の通常振り分け選択番号のいずれかに対応させているのである。
次のステップS901では、デコーダ281は、通常振り分け部280から通知された通常振り分け選択番号を、Nビットの選択番号ビットマップにデコードし、選択制御部270に通知する。
次のステップS902では、選択制御部270は、出力先状態監視部230から通知された出力先状態ビットマップと、デコーダ281から通知された選択番号ビットマップとにより選択された出力先の状態が、活性と不活性とのいずれであるかを判定する。選択された出力先が活性である場合には(ステップS902のYES)、選択制御部270は、その出力先を出力先選択処理の結果とする(ステップS911)。
選択された出力先が不活性である場合には(ステップS902のNO)、次のステップS903で、不活性対応振り分け部260は、図11(a)に示す関係式に従って、ハッシュ値と、通常振り分け選択番号と、振り分け出力先総数Nと、不活性出力先数xとを用いて、振り分け出力先物理ポートの選択番号を生成する。なお、このステップ903で生成した選択番号のことを「不活性対応振り分け選択番号」ともいう。この不活性対応振り分け選択番号は、0〜N−x−1の範囲の値である。具体的には、不活性対応振り分け部260は、まず、この関係式に従い、「(ハッシュ値―通常振り分け選択番号*256/振り分け出力先総数N)*(振り分け出力先総数N−不活性出力先数x)」を「256/振り分け出力先総数N」で割ることによって商を算出する。「256」は、ハッシュ値の値域の大きさである。つまり、ハッシュ値と不活性対応振り分け選択番号の関係は、ハッシュ値をN個の領域に分割し、さらに、N個の領域に分割した各領域の中をN−xの領域に分割し、0〜N−x−1の不活性対応振り分け選択番号を順に割り当てるということである。
図11(b)は、ハッシュ値と不活性対応振り分け選択番号との関係を示す説明図である。図11(b)には、論理ポートに含まれる物理ポートの総数Nが8で、不活性出力先数xが2の場合の例が示されている。この場合には、「(ハッシュ値―通常振り分け選択番号*256/振り分け出力先総数N)*(振り分け出力先総数N−不活性出力先数x)」は、0〜186の範囲の値である。従って、商は、0〜5のいずれかである。つまり、0〜255のハッシュ値を8つの領域に分割し、さらに8つに分割した各領域の中を6つの領域に分割し、0〜5の不活性対応振り分け選択番号を順に割り当てる。つまり、ハッシュ値を活性出力先数である「N−x」個の不活性対応振り分け選択番号のいずれかに対応させているのである。
次のステップS904では、デコーダ261は、不活性対応振り分け部260から通知された不活性対応振り分け選択番号を、Nビットの選択番号ビットマップにデコードし、ビットシフト演算器262に通知する。
ビットシフト演算器262は、出力先状態ビットマップを参照し、デコーダ261から通知された選択番号ビットマップをビットシフト演算することにより、不活性出力先を選択しない選択番号ビットマップを生成する。具体的には、ビットシフト演算器262は、まず、ビットマップ参照位置iを0に設定し(ステップS905)、ビットマップ参照位置iと出力先状態ビットマップより、対応する出力先状態が活性と不活性とのいずれであるかを判定する(ステップS906)。その出力先が活性である場合には、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS909)。その出力先が不活性である場合には、ビットシフト後の選択番号ビットマップ(i+1)〜(N−1)が、ビットシフト前の選択番号ビットマップ(i)〜(N−2)になるように1ビットシフトする(ステップS907)。そして、選択番号ビットマップの現在の参照位置iの位置に0を挿入し(ステップS908)、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS909)。参照位置を移行した後、参照位置が途中と最後とのいずれかであったかを判定をする(ステップS910)。参照位置iがNより小さい場合には、参照位置が途中であったので、出力先状態の判定(ステップS906)からの処理を繰り返し実行する。参照位置iがNと等しい場合は、参照位置が最後であったので、ビットシフト演算器262は、出力先を選択するための選択番号ビットマップを確定する。ビットシフト演算器262は、確定した選択番号ビットマップを選択制御部270に通知する。
図12は、ハッシュ値と選択番号と選択番号ビットマップとの関係を示す説明図である。図12には、論理ポートに含まれる物理ポートの総数Nが8で、不活性出力先数xが2で、選択番号1と4に対応する出力先の状態が不活性である場合の例が示されている。この場合には、通常振り分け選択番号ビットマップ(デコーダ281が生成する選択番号ビットマップ)は、0〜7の通常振り分け選択番号を8ビットのビットマップにデコードしたものであり、選択番号0、2、3、5、6、7に対応する出力先は活性であるため、これに対応する選択番号ビットマップが出力先を選択するための選択番号ビットマップとなる。選択番号1、4に対応する出力先は不活性であるため、不活性対応振り分け選択番号を生成する。シフト前選択番号ビットマップは、0〜5の不活性対応振り分け選択番号を8ビットのビットマップにデコードしたものであり、シフト後選択番号ビットマップは、シフト前選択番号ビットマップのビット1と4の位置に0を挿入し、ビットシフト演算したものである。従って、シフト後選択番号ビットマップでは、ビット1と4が1となることはない。
次のステップS911で、選択制御部270は、ビットシフト演算器262から通知された選択番号ビットマップにより、振り分け出力先検索部220から通知された複数の物理ポートの中から1つの物理ポートを選択する。具体的に図12のシフト後選択番号ビットマップに基づいて、図4(b)の振り分けテーブル320の第0論理ポート(LA#0)の出力先を選択する場合について説明する。シフト後選択番号ビットマップのビット0が1である場合は、第1物理ポート(Port#1)を選択する。シフト後選択番号ビットマップのビット2が1である場合は、第3物理ポート(Port#3)を選択する。シフト後選択番号ビットマップのビット3が1である場合は、第4物理ポート(Port#4)を選択する。シフト後選択番号ビットマップのビット5が1である場合は、第6物理ポート(Port#6)を選択する。シフト後選択番号ビットマップのビット6が1である場合は、第7物理ポート(Port#7)を選択する。シフト後選択番号ビットマップのビット7が1である場合は、第8物理ポート(Port#8)を選択する。
B3.効果:
以上説明した第2の実施例におけるスイッチ装置SWによれば、第1実施例のスイッチ装置SWと同様の作用・効果を得ることができる。
さらに、スイッチ装置SWでは、振り分けを行う上で、振り分け不可能とならない限り、同一フローは同じ出力先に振り分ける場合において、振り分け不可能となったフロー以外のフローは、出力先が変化することなく、振り分け不可能となったフローのみを、振り分け可能な出力先に、振り分けするよう切り替えることができる。
C.第3の実施例:
C1.ネットワーク接続装置の構成:
第3の実施例における、ネットワークシステムの構成は、スイッチ装置SWにおける出力先決定部250と振り分けテーブル320の機能構成が異なる点を除き、第2の実施例と同様である。
図13は、第3の実施例における、出力先決定部250の詳細な構成を示す説明図である。第3の実施例における、出力先決定部250は、第2の実施例と同様に、通常振り分け部280と、デコーダ281と、不活性対応振り分け部260と、デコーダ261と、ビットシフト演算器262と、選択制御部270と、を有する。第3の実施例では、さらに、出力先決定部250は、切り替え時のM個分の出力情報と、切り替え時の振り分け出力先総数Mと、切り替え時の不活性出力先数yと、切り替え時のMビットの出力先状態ビットマップを通知される。
図14は、第3の実施例における、振り分けテーブル320の一例を示す説明図である。第3の実施例における、振り分けテーブル320は、第2の実施例と同様に、論理ポートを定義するテーブルである。第3の実施例では、さらに、振り分けテーブル320は、論理ポートに固有なLA番号と、その論理ポートに含まれる切り替え時の振り分け出力先の総数と、その論理ポートに含まれる切り替え時の物理ポートと、の対応関係を定めている。図14に示す例では、LA番号「0」に対応する通常時の振り分け出力先情報として、第1物理ポート(Port#1)と第3物理ポート(Port#3)と第5物理ポート(Port#5)と第7物理ポート(Port#7)と第8物理ポート(Port#8)の5つの物理ポートを設定している。切り替え時の振り分け出力先情報として、第2物理ポート(Port#2)と第4物理ポート(Port#4)と第6物理ポート(Port#6)の3つの物理ポートを設定している。
C2.宛先検索処理:
第3の実施例における、スイッチ装置SWのヘッダ処理部200が実行する宛先検索処理は、振り分け出力先検索部220が実行する振り分け出力先情報検索処理と、出力先決定部250が実行する出力先選択処理が異なる点を除き、第2の実施例と同様である。第3の実施例における、ステップS503では、振り分け出力先検索部220は、論理ポートの振り分け番号と、振り分けテーブル320とを参照することによって、その論理ポートに含まれる通常時の振り分け出力先の総数と切り替え時の振り分け出力先の総数と、その論理ポートに含まれる通常時の物理ポートと切り替え時の物理ポートとを検索する。
図15は、第3の実施例における、出力先決定部250が実行する出力先選択処理(ステップS150)を示すフローチャートである。ステップS1500〜ステップS1502は、第2の実施例におけるステップS900〜S902と同様である。
ステップS1503で、不活性対応振り分け部260は、図16(a)に示す関係式に従って、ハッシュ値と、通常振り分け選択番号と、通常時振り分け出力先総数Nと、切り替え時振り分け出力先総数Mと、切り替え時不活性出力先数yとを用いて、振り分け出力先物理ポートの選択番号を生成する。なお、このステップ1503で生成した選択番号のことを「切り替え時不活性対応振り分け選択番号」ともいう。 この切り替え時不活性対応振り分け選択番号は、0〜M−y−1の範囲の値である。具体的には、不活性対応振り分け部260は、まず、この関係式に従い、「(ハッシュ値―通常振り分け選択番号*256/通常時振り分け出力先総数N)*(切り替え時振り分け出力先総数M−切り替え時不活性出力先数y)」を「256/通常時振り分け出力先総数N」で割ることによって商を算出する。「256」は、ハッシュ値の値域の大きさである。つまり、ハッシュ値と切り替え時不活性対応振り分け選択番号の関係は、ハッシュ値をN個の領域に分割し、さらに、N個の領域に分割した各領域の中をM−yの領域に分割し、0〜M−y−1の選択番号を順に割り当てるということである。
図16(b)は、ハッシュ値と切り替え時不活性対応振り分け選択番号との関係を示す説明図である。図16(b)には、論理ポートに含まれる通常時の物理ポートの総数Nが5で、切り替え時の物理ポートの総数Mが3で、切り替え時の不活性出力先数yが1の場合の例が示されている。この場合には、「(ハッシュ値―通常振り分け選択番号*256/通常時振り分け出力先総数N)*(切り替え時振り分け出力先総数M−切り替え時不活性出力先数y)」は、0〜102の範囲の値である。従って、商は、0〜1のいずれかである。つまり、0〜255のハッシュ値を5つの領域に分割し、さらに5つに分割した各領域の中を2つの領域に分割し、0〜1の選択番号を順に割り当てる。つまり、ハッシュ値を切り替え後の活性出力先数である「M−x」個の切り替え時不活性対応振り分け選択番号のいずれかに対応させているのである。
次のステップS1504では、デコーダ261は、不活性対応振り分け部260から通知された切り替え時不活性対応振り分け選択番号を、Mビットの選択番号ビットマップにデコードし、ビットシフト演算器262に通知する。
ビットシフト演算器262は、切り替え時出力先状態ビットマップを参照し、選択番号ビットマップをビットシフト演算することにより、不活性出力先を選択しない選択番号ビットマップを生成する。具体的には、ビットシフト演算器262は、まず、ビットマップ参照位置iを0に設定し(ステップS1505)、ビットマップ参照位置iと出力先状態ビットマップより、対応する出力先状態が活性と不活性とのいずれであるかを判定する(ステップS1506)。その出力先が活性である場合には、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS1509)。その出力先が不活性である場合には、ビットシフト後の選択番号ビットマップ(i+1)〜(M−1)が、ビットシフト前の選択番号ビットマップ(i)〜(M−2)になるように1ビットシフトする(ステップS1507)。そして、選択番号ビットマップの現在の参照位置iの位置に0を挿入し(ステップS1508)、参照位置iに1加算し、次の参照位置の処理に移行する(ステップS1509)。参照位置を移行した後、参照位置が途中と最後とのいずれかであったかを判定をする(ステップS1510)。参照位置iがMより小さい場合には、参照位置が途中であったので、出力先状態の判定(ステップS1506)からの処理を繰り返し実行する。参照位置iがMと等しい場合は、参照位置が最後であったので、ビットシフト演算器262は、出力先を選択するための選択番号ビットマップを確定する。
図17は、ハッシュ値と選択番号と選択番号ビットマップとの関係を示す説明図である。図17には、論理ポートに含まれる通常時の物理ポートの総数Nが5で、切り替え時の物理ポートの総数Nが3で、切り替え時の不活性出力先数yが1で、通常振り分け選択番号2と切り替え時不活性対応振り分け選択番号0に対応する出力先の状態が不活性である場合の例が示されている。この場合には、通常振り分け選択番号ビットマップは、0〜4の通常振り分け選択番号を5ビットのビットマップにデコードしたものであり、選択番号0、1、3、4に対応する出力先は活性であるため、これに対応する選択番号ビットマップが出力先を選択するための選択番号ビットマップとなる。選択番号2に対応する出力先は不活性であるため、切り替え時不活性対応振り分け選択番号を生成する。シフト前選択番号ビットマップは、0〜1の不活性対応振り分け選択番号を3ビットのビットマップにデコードしたものであり、シフト後選択番号ビットマップは、シフト前選択番号ビットマップのビット0の位置に0を挿入し、ビットシフト演算したものである。従って、シフト後選択番号ビットマップでは、ビット0が1となることはない。
次のステップS1511で、選択制御部270は、ビットシフト演算器262から通知された選択番号ビットマップにより、振り分け出力先検索部220から通知された複数の物理ポートの中から1つの物理ポートを選択する。具体的に図17のシフト後選択番号ビットマップにより、図14の振り分けテーブル320の第0論理ポート(LA#0)の切り替え時の出力先を選択する場合について説明する。シフト後選択番号ビットマップのビット1が1である場合は、第4物理ポート(Port#4)を選択する。シフト後選択番号ビットマップのビット2が1である場合は、第6物理ポート(Port#6)を選択する。
C3.効果:
以上説明した第3の実施例におけるスイッチ装置SWによれば、第2実施例のスイッチ装置SWと同様の作用・効果を得ることができる。
さらに、スイッチ装置SWでは、通常振り分け部での出力先が振り分け不可能であった場合は、振り分けテーブルに設定された切り替え時振り分け出力先の中から選択することにより、通常時振り分け出力先と切り替え時振り分け出力先を異なる出力先に分けることができる。
D.その他の実施形態:
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
例えば、前述の実施例では、スイッチ装置SWは、いわゆる「レイヤ2スイッチ」として機能して、リンクアグリゲーション機能により冗長性のある通信経路を構成していたが、他の実施形態において、いわゆる「レイヤ3スイッチ(「ルータ」とも呼ばれる)」として機能して、レイヤ3のルーティング制御における、負荷分散機能であるマルチパス機能により、冗長性のある通信経路を構成し、そのパケット振り分けに適用しても良い。
また、前述の実施例では、ネットワークシステムの構成としては、図1に示したネットワークシステム10に限らず、任意の構成を採用可能である。スイッチ装置SWの数、及び、回線の数は、任意に選択可能である。また、経路も任意に構築され得る。また、スイッチ装置SWの構成としても、図2に示す構成に限らず、種々の構成を採用可能である。
また、前述の実施例では、複数のスイッチ装置SW間における、パケット振り分けの例を示したが、他の実施形態において、サーバコンピュータやストレージや負荷分散装置など他のネットワークに接続される機器での、パケット振り分け機能に適用しても良い。
10:ネットワークシステム
100:インタフェース回路
200:ヘッダ処理部
210:データ検索部
220:振り分け出力先検索部
230:出力先状態監視部
240:ハッシュ値生成部
250:出力先決定部
260:不活性対応振り分け部
261:デコーダ
262:ビットシフト演算器
270:選択制御部
280:通常振り分け部
281:デコーダ
300:メモリ
310:宛先テーブル
320:振り分けテーブル
330:出力先状態テーブル
SW、SW10〜SW40:スイッチ装置

Claims (9)

  1. パケットの送受信を行う情報処理装置においてN(Nは2以上の自然数)個の出力先のうちのx(xは1以上の自然数)個の不活性出力先を除いたN−x個の出力先の中から1つの出力先を選択するパケット振り分け方法であって、
    (a)前記情報処理装置が受信した前記パケットに関連付けられたハッシュ値に基づいて前記N−x個の出力先のうちの1つの出力先を選択するための出力先選択番号を生成する工程と、
    (b)前記出力先選択番号から、出力先および非出力先を示す情報を含むNビットの第1の選択番号ビットマップを生成する工程と、
    (c)前記N個の出力先の活性状態を示す情報を参照し、前記第1の選択番号ビットマップの各ビットのうち不活性状態の出力先に対応するビット位置に非出力先を示す情報を挿入し、前記非出力先を示す情報を挿入した位置以降のビットマップをビットシフト演算することにより、第2の選択番号ビットマップを生成する工程と、
    (d)前記第2の選択番号ビットマップの出力先を示す情報により、前記N個の出力先の中から1つの出力先を選択する工程と
    を備えることを特徴とするパケット振り分け方法。
  2. 請求項1のパケット振り分け方法であって、さらに、
    (e)前記受信パケットに関連付けられたハッシュ値に基づいて前記N個の出力先のうちの1つの出力先を選択するための第2の出力先選択番号を生成する工程と、
    (f)前記第2の出力先選択番号から、出力先および非出力先を示す情報を含むNビットの第3の選択番号ビットマップを生成する工程と
    (g)前記N個の出力先の活性状態を示す情報を参照し、前記第2の出力先選択番号によって選択される出力先が活性であるか否かを判定する工程と、
    (h)前記第2の出力先選択番号によって選択される出力先が活性であると判定された場合に、前記第3の選択番号ビットマップの出力先を示す情報により、前記N個の出力先の中から1つの出力先を選択する工程と
    を備え、
    前記工程(a)から工程(d)は、前記工程(g)において前記第2の出力先選択番号によって選択される出力先が不活性であると判定された場合に行われる工程であることを特徴とするパケット振り分け方法。
  3. 請求項1のパケット振り分け方法であって、さらに、
    (i)前記受信パケットに関連付けられたハッシュ値に基づいて前記N個の出力先とは別のM(Mは2以上の自然数)個の出力先うちの1つの出力先を選択するための第3の出力先選択番号を生成する工程と、
    (j)前記第3の出力先選択番号から、出力先および非出力先を示す情報を含むMビットの第4の選択番号ビットマップを生成する工程と
    (k)前記M個の出力先の活性状態を示す情報を参照し、前記第3の出力先選択番号によって選択される出力先が活性であるか否かを判定する工程と、
    (l)前記第3の出力先選択番号によって選択される出力先が活性であると判定された場合に、前記第4の選択番号ビットマップの出力先を示す情報により、前記M個の出力先の中から1つの出力先を選択する工程と
    を備え、
    前記工程(a)から工程(d)は、前記工程(k)において前記第3の出力先選択番号によって選択される出力先が不活性であると判定された場合に行われる工程であることを特徴とするパケット振り分け方法。
  4. パケットを中継する情報処理装置であって、
    回線と接続するための複数のポートを有するとともに、前記回線を介してパケットを送受信するパケット送受信部と、
    前記パケット送受信部が受信したパケットに含まれる宛先情報に基づいて出力するポートを選択するヘッダ処理部と
    を備え、
    前記ヘッダ処理部は、さらに、
    前記受信パケットに含まれる宛先情報に基づいて、N(Nは2以上の自然数)個の出力ポートのうちのx(xは1以上の自然数)個の不活性ポートを除いたN−x個の出力ポートのうちの1つの出力ポートを選択するための出力ポート選択番号を生成する出力ポート振り分け部と、
    前記出力ポート選択番号を、出力ポートおよび非出力ポートを示す情報を含むNビットの第1の選択番号ビットマップにデコードするデコーダと、
    前記N個の出力ポートの活性状態を示す情報を参照し、前記第1の選択番号ビットマップの各ビットのうち不活性状態の出力ポートに対応するビット位置に非出力ポートを示す情報を挿入し、前記非出力ポートを示す情報を挿入した位置以降のビットマップをビットシフト演算することにより、第2の選択番号ビットマップを生成するビットシフト演算部と、
    前記第2の選択番号ビットマップの出力ポートを示す情報により、前記N個の出力ポートの中から1つの出力ポートを選択する選択制御部と
    を備えることを特徴とする情報処理装置。
  5. 受信パケットに関連付けられた宛先情報によって特定される複数の振り分け出力先のうち複数の不活性の振り分け出力先を除いた出力先候補の中から、1つの出力先を選択するパケット振り分け装置であって、
    前記受信パケットに関連付けられたハッシュ値と、振り分け出力先総数N(Nは2以上の自然数)と、不活性出力先数x(xは1以上の自然数)とを用いて、0〜N−x−1の範囲から選択番号を生成する不活性対応振り分け部と、
    前記不活性対応振り分け部によって生成された選択番号と、複数Nの振り分け出力先の活性状態とを参照し、複数存在する不活性出力先を選択しない振り分け出力先選択番号を算出する選択番号演算部と、
    前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から、1つの出力先を選択する選択制御部とを備え、
    前記選択番号演算部は、前記振り分け出力先選択番号を、Nビットの選択番号ビットマップにデコードするデコーダと、
    複数Nの振り分け出力先の活性状態を示す出力先状態ビットマップを参照し、前記デコーダによってデコードされた選択番号ビットマップの不活性出力先位置に非出力先を示す情報を挿入し、前記非出力先を示す情報を挿入した位置以降のビットマップをビットシフト演算することにより、不活性出力先を選択しない選択番号ビットマップを生成するビットシフト演算器と、
    を備える、パケット振り分け装置。
  6. 受信パケットに関連付けられた宛先情報によって特定される複数の振り分け出力先のうち複数の不活性の振り分け出力先を除いた出力先候補の中から、1つの出力先を選択するパケット振り分け装置であって、
    前記受信パケットに関連付けられたハッシュ値と、振り分け出力先総数N(Nは2以上の自然数)と、不活性出力先数x(xは1以上の自然数)とを用いて、0〜N−x−1の範囲から選択番号を生成する不活性対応振り分け部と、
    前記不活性対応振り分け部によって生成された選択番号と、複数Nの振り分け出力先の活性状態とを参照し、複数存在する不活性出力先を選択しない振り分け出力先選択番号を算出する選択番号演算部と、
    前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から、1つの出力先を選択する選択制御部と、
    前記受信パケットに関連付けられたハッシュ値と、振り分け出力先総数Nとを用いて、0〜N−1の範囲から選択番号を生成する通常振り分け部とを備え、
    前記選択制御部は、複数Nの振り分け出力先の活性状態を参照し、前記通常振り分け部によって生成された選択番号に対応する出力先が活性であるかを判定し、活性である場合には前記通常振り分け部によって生成された選択番号により、複数Nの振り分け出力先の中から1つの出力先を選択し、不活性である場合には前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から1つの出力先を選択する、
    パケット振り分け装置。
  7. 受信パケットに関連付けられた宛先情報によって特定される複数の振り分け出力先のうち複数の不活性の振り分け出力先を除いた出力先候補の中から、1つの出力先を選択するパケット振り分け装置であって、
    前記受信パケットに関連付けられたハッシュ値と、振り分け出力先総数N(Nは2以上の自然数)と、不活性出力先数x(xは1以上の自然数)とを用いて、0〜N−x−1の範囲から選択番号を生成する不活性対応振り分け部と、
    前記不活性対応振り分け部によって生成された選択番号と、複数Nの振り分け出力先の活性状態とを参照し、複数存在する不活性出力先を選択しない振り分け出力先選択番号を算出する選択番号演算部と、
    前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から、1つの出力先を選択する選択制御部と、
    前記受信パケットに関連付けられたハッシュ値と、前記振り分け出力先総数Nとは別の振り分け出力先総数M(Mは2以上の自然数)とを用いて、0〜M−1の範囲から選択番号を生成する通常振り分け部とを備え、
    前記選択制御部は、複数Mの振り分け出力先の活性状態を参照し、前記通常振り分け部によって生成された選択番号に対応する出力先が活性であるかを判定し、活性である場合
    には前記通常振り分け部によって生成された選択番号により、複数Mの振り分け出力先の中から1つの出力先を選択し、不活性である場合には前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から1つの出力先を選択する、
    パケット振り分け装置。
  8. 請求項6または請求項7に記載のパケット振り分け装置であって、
    前記選択番号演算部は、さらに、
    前記振り分け出力先選択番号を、Nビットの選択番号ビットマップにデコードするデコーダと、
    複数Nの振り分け出力先の活性状態を示す出力先状態ビットマップを参照し、前記デコーダによってデコードされた選択番号ビットマップの不活性出力先位置に非出力先を示す情報を挿入し、前記非出力先を示す情報を挿入した位置以降のビットマップをビットシフト演算することにより、不活性出力先を選択しない選択番号ビットマップを生成するビットシフト演算器と、
    を備える、パケット振り分け装置。
  9. 受信パケットに関連付けられた宛先情報によって特定される複数の振り分け出力先のうち複数の不活性の振り分け出力先を除いた出力先候補の中から、1つの出力先を選択するパケット振り分け装置であって、
    前記受信パケットに関連付けられたハッシュ値と、振り分け出力先総数N(Nは2以上の自然数)と、不活性出力先数x(xは2以上の自然数)とを用いて、0〜N−x−1の範囲から選択番号を、前記宛先情報によって特定される複数の振り分け出力先の組み合わせ毎に生成する不活性対応振り分け部と、
    前記不活性対応振り分け部によって生成された選択番号と、複数Nの振り分け出力先の活性状態とを参照し、複数存在する不活性出力先を選択しない振り分け出力先選択番号を前記組み合わせ毎に算出する選択番号演算部と、
    前記選択番号演算部によって算出された振り分け出力先選択番号により、複数Nの振り分け出力先の中から、1つの出力先を、振り分け出力先が重複しない前記組み合わせ毎に選択する選択制御部と
    を備える、パケット振り分け装置。
JP2009143866A 2009-06-17 2009-06-17 情報処理装置、パケット振り分け方法および装置 Active JP5178636B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009143866A JP5178636B2 (ja) 2009-06-17 2009-06-17 情報処理装置、パケット振り分け方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009143866A JP5178636B2 (ja) 2009-06-17 2009-06-17 情報処理装置、パケット振り分け方法および装置

Publications (2)

Publication Number Publication Date
JP2011004025A JP2011004025A (ja) 2011-01-06
JP5178636B2 true JP5178636B2 (ja) 2013-04-10

Family

ID=43561649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009143866A Active JP5178636B2 (ja) 2009-06-17 2009-06-17 情報処理装置、パケット振り分け方法および装置

Country Status (1)

Country Link
JP (1) JP5178636B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005015851A1 (ja) * 2003-08-06 2005-02-17 Fujitsu Limited ノード,rprインタフェースカードおよび光ネットワークシステム
JP2005277915A (ja) * 2004-03-25 2005-10-06 Fujitsu Ltd パケット振り分け方法及び振り分け装置
JP5086585B2 (ja) * 2006-08-11 2012-11-28 アラクサラネットワークス株式会社 ネットワーク中継装置
JP4822997B2 (ja) * 2006-09-20 2011-11-24 富士通株式会社 通信装置および通信方法

Also Published As

Publication number Publication date
JP2011004025A (ja) 2011-01-06

Similar Documents

Publication Publication Date Title
JP5086585B2 (ja) ネットワーク中継装置
CN104811387B (zh) 具有位索引显式复制的等价多路径
KR102205882B1 (ko) 팻-트리 라우팅에 기반하여 별개의 인피니밴드 서브넷들 사이에서 트래픽을 라우팅하기 위한 시스템 및 방법
EP3028413B1 (en) System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US8576721B1 (en) Local forwarding bias in a multi-chassis router
US9571400B1 (en) Weighted load balancing in a multistage network using hierarchical ECMP
CN101820395B (zh) 基于mpls的路由信息配置和私网标签添加方法及装置
EP2664111B1 (en) Improved system and method for variable-size table construction applied to a table-lookup approach for load-spreading in forwarding data in a network
CN110650094B (zh) 一种发送报文的方法、设备和系统
US9716592B1 (en) Traffic distribution over multiple paths in a network while maintaining flow affinity
US8493850B2 (en) Communication apparatus and frame transmission method
KR20120100908A (ko) 복수의 동일 코스트 경로들 사이에서 선택하기 위한 방법 및 장치
JP2008078906A (ja) 通信装置および通信方法
JP2008288880A (ja) ノード、通信方法およびノード用プログラム
CN111147372A (zh) 下行报文发送、转发方法和装置
Chkirbene et al. Lascada: a novel scalable topology for data center network
Guo et al. DCube: A family of network structures for containerized data centers using dual-port servers
CN103873367A (zh) 胖树网络中的无死锁路由
Ferrari et al. Multipath redundancy for industrial networks using IEEE 802.1 aq Shortest Path Bridging
JP5178636B2 (ja) 情報処理装置、パケット振り分け方法および装置
EP2946535A1 (en) Msdc scaling through on-demand path update
US9503396B2 (en) Cell forwarding order selection for sending packets
JP5374290B2 (ja) ネットワーク中継装置
JP6418167B2 (ja) ネットワーク制御装置、ネットワークシステム、ネットワーク制御方法、および、プログラム
CN110620723B (zh) 基于路由分面中继节点的一种无状态单播保护方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130108

R150 Certificate of patent or registration of utility model

Ref document number: 5178636

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250