(57)【要約】【課題】  複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムを提供する。【解決手段】  着信パケットを分析して、そのパケットがその一部であるフローを識別した後、本発明のシーケンス・ロード・バランサは、接続された独立ネットワーク・プロセッサにパケットを動的に分散する。バランス履歴はフローごとに作成され、そのフローのパケットが受信および／または送信されるたびに更新される。各バランス履歴は、そのフローのパケットを処理したネットワーク・プロセッサの識別子と処理済みパケットの関連数を時間順に記憶する。次に処理済みパケットは、バランス履歴の現行状況に応じて、高速リンクに返送されるかまたは後で高速リンクに返送するために記憶される。
2005519530.tif 000002
【特許請求の範囲】
【請求項１】
−着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関連するバランス履歴が存在しない場合にそれを作成するステップと、
−ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも１つのパケットを以前処理したものとは異なる場合に、前記現行ネットワーク処理手段の前記識別子を前記バランス履歴に記憶し、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を１に設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも１つのパケットを以前処理したものと同じである場合に、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を増加するステップと、
−前記着信パケットを前記現行ネットワーク処理手段に経路指定するステップと、
を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のための方法。
【請求項２】
前記着信パケットを前記現行ネットワーク処理手段に経路指定する前記ステップが、
−前記現行ネットワーク処理手段に関連する記憶手段に前記着信パケットを保管するステップと、
−前記ネットワーク処理手段の要求があり次第、前記ネットワーク処理手段に関連する前記記憶手段に記憶されたパケットを送信するステップと、
を有する、請求項１に記載の方法。
【請求項３】
ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定する前記ステップが、
−前記ネットワーク処理手段に関連する前記記憶手段のロードを分析するステップと、
−前記ネットワーク処理手段に関連する前記記憶手段のロードに応じて前記現行ネットワーク処理手段を設定するステップと、
を有する、請求項２に記載の方法。
【請求項４】
多数の着信ポートを介して受信した着信パケットを時分割多重するステップをさらに有する、請求項１ないし３のいずれか１項に記載の方法。
【請求項５】
−処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関するバランス履歴から最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
−前記処理済みパケットが前記最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
−前記処理済みパケットが前記最早ネットワーク処理手段によって処理された場合に、前記処理済みパケットが高速リンクに送信され、処理済みパケットの前記関連数が減分され、処理済みパケットの前記関連数が０に達した場合に、最早ネットワーク処理手段識別子が前記バランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応する前記パケット・メモリ内に待ち行列化されたパケットを前記高速リンクに送信し、次に前記パケット・メモリから除去することができるステップと、
を有する、請求項１ないし４のいずれか１項に記載の方法により複数のネットワーク処理手段によって処理されたパケットを再結合するための方法。
【請求項６】
パケット・ヘッダに応じて複数の発信ポートにより処理済みパケットを交換するステップをさらに有する、請求項５に記載の方法。
【請求項７】
他の識別子が同じフローに属する複数パケットについて同一になるように、前記抽出されたフロー識別子をハッシュして前記他の識別子を生成するステップをさらに有する、請求項１ないし６のいずれか１項に記載の方法。
【請求項８】
前記他の識別子が前記抽出されたフロー識別子より小さい、請求項７に記載の方法。
【請求項９】
前記抽出されたフロー識別子をハッシュしてより小さい識別子を生成する前記ステップが、非線形ハッシュ関数に基づくものである、請求項８に記載の方法。
【請求項１０】
請求項１ないし９のいずれか１項に記載の方法を実行するために適合された手段を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のためのシーケンス・ロード・バランサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット交換網を横断するパケットがネットワーク処理手段によって分析されるネットワーク処理の分野に関し、より詳細には、複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力（performance capability）を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムに関する。
【背景技術】
【０００２】
ネットワーク処理システムでは、交換網を横断するパケットは、一般に、パフォーマンス、セキュリティ、およびサービス品質を高めるために、経路指定、セグメンテーションと再アセンブリ、フィルタ処理、およびウィルス・スキャンを含む諸機能をそのパケットについて実行するネットワーク・プロセッサによって分析される。しかし、パケットについて実行するためにネットワーク・プロセッサが要求される可能性がある動作タイプの複雑性が増したことと、ネットワーク・プロセッサの処理能力の増加速度に対して帯域幅の速度が増し、パケット速度伝送が増したことにより、それに応じてネットワーク・プロセッサの全体的な処理パフォーマンスを高めることが装置および方法にとって不可欠である。
【０００３】
単一プロセッサまたはネットワーク・プロセッサによって提供できるものより高い処理パフォーマンスを達成するための一般的な方法は、複数プロセッサが並列に動作する並列処理にある。このような複数プロセッサは、より高速の単一ネットワーク・プロセッサと見なすことができる。
【０００４】
ネットワーク処理に関しては、並列処理は、従来技術では、ロード・バランシングまたはチャネル・ストライピング（channel striping）として実現されていた。従来技術のチャネル・ストライピング（ロード・シェアリングまたは逆多重化（inverse multiplexing）としても知られている）は、処理のボトルネックのためまたは単に価格性能比のために、ネットワーキングにおいて頻繁に使用されている。この方式では、複数チャネルを横切るストリームに属するパケットをストライピングするラウンドロビン・アルゴリズムまたはロード・シェアリング・アルゴリズムが使用される。ストライピングの重大な問題は、異なるチャネル上では遅延がそれぞれ異なることと、パケット・サイズが様々であることにより、パケットが不適切に順序付けされる可能性があることである。この不適切順序付け問題については、従来技術では以下のように３つのタイプの解決策が知られている。
ｉ）１つのチャネル上のみで各フローを保持し、単一フローは各チャネルがサポート可能な帯域幅以上の帯域幅を使用できないことを受容すること。
ｉｉ）不適切順序付け後に受信パケットを再順序付けし、結果として発生する処理帯域幅の浪費を受容すること。
ｉｉｉ）ネットワーク処理手段が予測可能な期間内に処理できる固定転送単位にパケットを分割すること。
【０００５】
これに対して、動的ロード・バランシングは、計算、タスク、およびデータという３つの一般的な計算エンティティを扱う計算並列処理の分野で一般に使用されている。これらのケースでは、動的ロード・バランシングは、実行時間を短縮し、計算の全体的な効率を高めるために、結果的に各コンピュータがほぼ等しい量の作業を有することになる、コンピュータに対する計算、タスク、またはデータのマッピングを見つけようと試みる。
【０００６】
ＩＢＭ社に譲渡され、２０００年４月１８日に米国特許商標局に出願された米国特許出願第０９／５５１０４９号には、高速通信回線から発信された一連の着信データ・パケットを複数の処理手段に分散するためのリアルタイム・ロード・バランシング・システムが記載されており、それぞれの処理手段は高速通信回線の容量より低い容量で動作する。このシステムは、圧縮手段に供給するために着信パケットから構成可能な１組の分類子ビット（classifier bit）を抽出することができる解析手段（parser means）を有する。圧縮手段は、長さＫのビット・パターンを、Ｋの一部分である長さＬを有するビット・パターンに縮小することができる。このシステムは、ロード・バランシング判断が見つかるまで着信パケットを遅延させるためのパイプライン・ブロックと、セレクタとして前記圧縮手段からポート識別子出力を受信し、パイプライン化パケットを適切な出力ポートに向けるための逆デマルチプレクサ（inverse demultiplexer）とをさらに有する。
【０００７】
しかし、特に個々のフローが単一ネットワーク・プロセッサのパフォーマンス能力を超えるようなトラフィックの場合に、フローの正しい順序付けを保存する必要性が依然として存在する。パケットを変更できる場合、パケット・フローの順序付き再結合は簡単なことである。明白な方法は、順序番号で各着信パケットにラベルを付け、出力パケットが非順次番号順に出て行くのを防止することだけであろう。しかし、パケット変更の欠点は、変更したパケットを正確に処理するために、単一ネットワーク・プロセッサ構成とは異なる集合構成として個々のネットワーク・プロセッサを構成しなければならないことである。
【０００８】
ネットワーク処理手段の現在の技術的パフォーマンスによってこのような必要性が要求された場合、所望のパフォーマンスに達し、したがって、このようなネットワーク処理手段のコストを最適化するようにそれぞれのパフォーマンスをマージすることにより、前の世代のネットワーク処理手段の再使用も可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の主要な一目的は、前述の従来技術の短所を矯正することにある。
【００１０】
本発明の他の目的は、パケットを変更せずにまたは各単一ネットワーク処理手段の動作を変更せずに、複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムを提供することにある。
【００１１】
本発明の他の目的は、異なる処理能力を有する複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムを提供することにある。
【課題を解決するための手段】
【００１２】
上記その他の関連目的の遂行は、
−着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関連するバランス履歴が存在しない場合にそれを作成するステップと、
−ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも１つのパケットを以前処理したものとは異なる場合に、前記現行ネットワーク処理手段の前記識別子を前記バランス履歴に記憶し、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を１に設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも１つのパケットを以前処理したものと同じである場合に、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を増加するステップと、
−前記着信パケットを前記現行ネットワーク処理手段に経路指定するステップと、
を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のための方法と、
−処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関するバランス履歴から最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
−前記処理済みパケットが最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
−前記処理済みパケットが最早ネットワーク処理手段によって処理された場合に、前記処理済みパケットが高速リンクに送信され、処理済みパケットの前記関連数が減分され、処理済みパケットの前記関連数が０に達した場合に、最早ネットワーク処理手段識別子が前記バランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応する前記パケット・メモリ内に待ち行列化されたパケットを高速リンクに送信し、次に前記パケット・メモリから除去することができるステップと、
を有する、上記の方法により複数のネットワーク処理手段によって処理されたパケットを再結合するための方法とによって達成される。
【００１３】
本発明の他の利点は、添付図面および詳細な説明を検討したときに当業者には明らかになるであろう。いかなる追加の利点も本明細書に組み込まれるものとする。
【発明を実施するための最良の形態】
【００１４】
図１は、多数の独立ネットワーク処理エンティティ上に集合高速リンクのトラフィック・フローを分散するための本発明によるシーケンス・ロード・バランサの使用を示すネットワーク処理システムを示している。この例では、ネットワーク処理システムは、本発明によるシーケンス・ロード・バランサ装置１００と、それぞれ１１０−１〜１１０−４という４つの独立ネットワーク・プロセッサＡ〜Ｄとを有する。シーケンス・ロード・バランサ装置１００は５つ以上または３つ以下のネットワーク・プロセッサに接続することができ、このシステム方式は例示のために記載したものであることを理解されたい。着信および発信ポート（それぞれ総称して１２０および１３０という）にある高速リンクは、明確にするために表現されていないスイッチング・ファブリックなどのネットワークまたはネットワーク装置とデータを交換するために、シーケンス・ロード・バランサ装置１００との間でパケット・フローを送受信する。着信および発信ポート１２０−ｉおよび１３０−ｊ（ｉ＝１，．．．，ｍ、ｊ＝１，．．．，ｎ）は、同様のタイプまたは異なるタイプのデータを処理することができる。同様に、着信および発信ポート１２０−ｉおよび１３０−ｊは、要求されたデータ処理、たとえば、経路指定またはフィルタ処理に応じて、異なるタイプのネットワークまたはネットワーク装置に接続することができる。着信ポート１２０の数は発信ポート１３０の数と等しい（ｎ＝ｍ）場合もあれば、異なる（ｎ≠ｍ）場合もある。このシステムは、シーケンス・ロード・バランサ装置１００と独立ネットワーク・プロセッサｋとの間でパケットを交換するために接続部１４０−ｋおよび１５０−ｋ（ｋ＝１，．．．，４）をさらに有する。
【００１５】
図１に図示したネットワーク処理システムは、高速リンクのパケット伝送速度より低いパケット処理速度を有する独立ネットワーク・プロセッサにより、高速リンクのパケット・フローを処理することを可能にする。そのために、シーケンス・ロード・バランサ装置１００は、着信パケット・フローを分析し、接続された独立ネットワーク・プロセッサにパケットを動的に分散する。処理後、パケットは、すべてのパケット・フローの順序付けを保存して、高速リンクに返送されるように、シーケンス・ロード・バランサ１００で再結合される。
【００１６】
本発明の方法によれば、各着信パケットは、対応するフロー識別子を決定するように分析され、ネットワーク処理手段はネットワーク処理手段のロードに応じてこの着信パケットを処理するように割り当てられる。バランス履歴は、使用されたネットワーク処理手段の順序と対応する処理済みパケットの数を記憶するためにフローごとに作成される。ネットワーク処理手段によって処理されたパケットが高速リンクに返送されると、このネットワーク処理手段の識別子と処理済みパケットの関連数がバランス履歴から除去される。したがって、着信データを処理するアルゴリズムは、
−着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
−抽出されたフロー識別子をハッシュして、フロー・バケット識別子という異なる識別子を生成するステップと、
−ネットワーク処理手段のロードを分析することにより現行ネットワーク処理識別子を決定するステップと、
−現行ネットワーク処理識別子が、同じフローの少なくとも１つのパケットを以前処理したものと同じである場合に、バランス履歴メモリ内に記録された現行ネットワーク処理手段によって処理されるパケットの数を増加するステップと、
−現行ネットワーク処理識別子が、同じフローの少なくとも１つのパケットを以前処理したものとは異なる場合に、現行ネットワーク処理識別子をバランス履歴メモリに記憶し、現行ネットワーク処理手段によって処理されたパケットの数を１に設定するステップと、
−パケットを現行ネットワーク処理手段に経路指定するステップと、
を有する。
【００１７】
着信パケットが処理された後、高速リンクに返送する前にそれらを再結合することが必要である。したがって、各処理済みパケットは対応するフロー識別子を決定するように分析され、パケット順序を顧慮するために対応するバランス履歴が使用される。同じフローの先行パケットがまだ処理されていない場合、処理済みパケットをバッファリングする（bufferized）ことができる。パケットが高速リンクに返送された後、バランス履歴は更新され、バッファは解放される。処理済みデータを処理するアルゴリズムは、
−処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
−抽出されたフロー識別子をハッシュして、対応するフロー・バケット識別子を生成するステップと、
−バランス履歴メモリからそのフロー・バケットに関する最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
−パケットがそのフロー・バケットに関して記録された最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
−パケットが最早ネットワーク処理手段によって処理された場合に、それが高速リンクに送信され、処理済みパケットの関連数が減分され、処理済みパケットの関連数が０に達した場合に、最早ネットワーク処理手段識別子がバランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応するパケット・メモリ内に待ち行列化されたパケットを高速リンクに送信し、次にパケット・メモリから除去することができるステップと、
を有する。
【００１８】
図２は、上記の方法によりネットワーク処理手段によりパケット・フローを動的に分散するためのシーケンス・ロード・バランサ装置１００のアーキテクチャを示している。シーケンス・ロード・バランサ装置１００は、それぞれ着信および発信ポート１２０−ｉ（ｉ＝１，．．．，ｍ）および１３０−ｊ（ｊ＝１，．．．，ｎ）と、それぞれネットワーク・プロセッサ１１０−１〜１１０−４との間でパケットを送受信するための接続部１４０−１〜１４０−４および１５０−１〜１５０−４からなる高速リンクを有する。この場合も、シーケンス・ロード・バランサ装置１００は５つ以上または３つ以下のネットワーク・プロセッサに接続することができ、この実現例は例示のために記載したものであることを理解されたい。
【００１９】
シーケンス・ロード・バランサ装置１００の受信側は、時分割多重（ＴＤＭ）ユニット２００と、ヘッダ解析ユニット２０５と、ハッシュ関数ユニット２１０と、バランス履歴メモリ２１５と、デマルチプレクサ・ユニット２２０と、パイプライン・ユニット２２５と、ＦＩＦＯメモリ・ユニット２３０−１〜２３０−４と、現行ネットワーク・プロセッサ決定ユニット２３５からなる。高速リンクの着信ポート１２０に到着したパケットは、標準のＴＤＭアルゴリズムに応じてＴＤＭユニット２００で結合され、次にシーケンス・ロード・バランサ装置１００によって検査される。各パケットは、パケット・タイプと、そのパケットがどのフローの一部であるかと、複数のネットワーク・プロセッサ１１０−１〜１１０−４のそれぞれにおける現行ロードの量に基づいて、そのネットワーク・プロセッサ１１０−１〜１１０−４のうちの１つに経路指定される。着信パケット・ヘッダは、ハッシュ関数ユニット２１０に送信されるフロー識別子を抽出するようにヘッダ解析ユニット２０５で解析され、そのハッシュ関数ユニットではフロー識別子をハッシュして、フロー・バケット識別子という異なる識別子を生成する。ハッシュ関数ユニット２１０は、同じフローに属するパケットが同一フロー・バケットで識別されることを確認する。一般に、ハッシュ関数は、フロー・バケット識別子の数が可能なフロー識別子の数より大幅に少なくなるように構成されるが、これは本発明の要件ではない。
【００２０】
解析ユニット２０５は、抽出されたフロー識別子の数およびタイプに関して柔軟性を提供できなければならず、様々なプロトコルに関する広範な適用性を保証できなければならない。解析ユニット２０５の好ましい一実施形態は再構成可能な有限状態マシン装置である。
【００２１】
フロー・バケットはバランス履歴メモリ２１５内のインデックスとして使用され、そのバランス履歴メモリでは現行ネットワーク・プロセッサ識別子が現行パケットに割り当てられる。同じフローのパケットを処理したすべてのネットワーク・プロセッサの識別子と、処理されたパケットの関連数は、関連フロー・バケットともに処理時間順にバランス履歴メモリ２１５内に保管される。
【００２２】
図３はバランス履歴メモリ２１５の内容を示しており、そのバランス履歴メモリではテーブルの各行がフローの処理履歴を表している。３００という第１の列は、前述の通りフロー・バケットによりフローを識別し、他の列は、それぞれ３０５−ｉおよび３１０−ｉというネットワーク・プロセッサ識別子および処理済みパケットの関連数を表している。したがって、列３０５−１は各アクティブ・フローの最後の現行ネットワーク・プロセッサ識別子を表し、列３１０−１は処理済みパケットの関連数を表し、列３０５−２は各アクティブ・フローの前の現行ネットワーク・プロセッサ識別子を表し、列３１０−２は処理済みパケットの関連数を表し、以下同様になる。アクティブ・フロー・バケットは、少なくとも１つのパケットが出力ポート１３０に返送されていないフロー・バケットとして定義される。図３に示す例では、６３０２に等しいフロー・バケットを有するフローに属する１２５個のパケットは１に等しい識別子を有する現行ネットワーク・プロセッサによって処理され、このフロー・バケットの２６５個のパケットは２に等しい識別子を有するネットワーク・プロセッサによって以前処理されている。
【００２３】
次に図２に戻ると、パイプライン・ユニット２２５で遅延される現行受信パケットが現行ネットワーク・プロセッサ識別子に対応するＦＩＦＯメモリ（２３０−１〜２３０−４）に保管されるように、現行ネットワーク・プロセッサ識別子はデマルチプレクサ・ユニット２２０に送信され、そこから現行ネットワーク・プロセッサに送信される。現行ネットワーク・プロセッサ決定ユニット２３５は、標準の統計技法によるＦＩＦＯメモリ２３０−１〜２３０−４のロード分析によりネットワーク・プロセッサ１１０−１〜１１０−４の活動を決定することによって、現行ネットワーク・プロセッサを設定する。たとえば、その関連ＦＩＦＯメモリのロードが所定のしきい値未満になるたびに、ネットワーク・プロセッサを現行ネットワーク・プロセッサとして設定することができる。現行ネットワーク・プロセッサの決定のもう１つの例は、関連ＦＩＦＯメモリが空になりそうなネットワーク・プロセッサを選択することにあり、このような場合、シーケンス・ロード・バランサはネットワーク・プロセッサ間の交換をあまり頻繁に行わなくなる。また、フロー履歴を使用して、現行ネットワーク・プロセッサの選択を最適化することも可能である。
【００２４】
他のものより大きい処理能力を有するネットワーク・プロセッサがその関連ＦＩＦＯメモリをより高速で空にする場合でも、現行ネットワーク・プロセッサがＦＩＦＯメモリのロードに応じて決定されるためにシーケンス・ロード・バランサ１００はそのネットワーク・プロセッサをより頻繁に現行ネットワーク・プロセッサとして選択するので、シーケンス・ロード・バランサ１００はいかなる変更も行わずに異なる処理能力を有する複数のネットワーク・プロセッサに接続可能であることは注意すべきことである。シーケンス・ロード・バランサ１００の変更を必要とするもう１つの解決策は、各ネットワーク・プロセッサの処理能力を関連ネットワーク・プロセッサ識別子とともに現行ネットワーク・プロセッサ決定ユニット２３５に保管することにある。処理能力および関連ネットワーク・プロセッサ識別子は、ＦＩＦＯメモリ（２３０−１〜２３０−４）のロードとともに使用して、ネットワーク処理手段のロードを最適化するように現行ネットワーク・プロセッサを決定する。
【００２５】
シーケンス・ロード・バランサ装置１００の送信側は、マルチプレクサ・ユニット２４０と、パイプライン・ユニット２４５と、デマルチプレクサ・ユニット２５０と、パケット・メモリ２５５と、マルチプレクサ・ユニット２６０と、スイッチング・ユニット２８５からなる。パケットは、ネットワーク・プロセッサ１１０−１〜１１０−４で処理された後、マルチプレクサ・ユニット２４０を介してパイプライン・ユニット２４５に送信され、次にデマルチプレクサ・ユニット２５０に送信される。パケット・フロー状況に応じて、着信パケットはパケット・メモリ２５５に保管されるかまたはマルチプレクサ・ユニット２６０に送信されてスイッチング・ユニット２８５を介して出力される。スイッチング・ユニット２８５はパケット・ヘッダを分析して、それに対してパケットを送信しなければならない高速リンクの発信ポート１３０−ｊを決定する。
【００２６】
シーケンス・ロード・バランサ装置１００は、処理後のパケットを再結合するためのデータ・フロー・コントロール（data flow control）をさらに有し、それはヘッダ解析ユニット２０５と、ハッシュ関数ユニット２１０と、バランス履歴メモリ２１５と、パケット・キュー・デキュー・ユニット（packet queue and dequeue unit）２６５と、更新履歴ユニット２７０と、更新キュー・ポインタ・ユニット（update queue pointer unit）２７５と、キュー・ポインタ・メモリ（queue pointer memory）２８０とを有する。ヘッダ解析ユニット２０５、ハッシュ関数ユニット２１０、およびバランス履歴メモリ２１５は、処理の前後にパケットを分析するために使用されることは注意すべきことである。パケットは、ネットワーク・プロセッサ１１０−１〜１１０−４で処理された後、マルチプレクサ・ユニット２４０を介してヘッダ解析ユニット２０５に送信される。処理済みパケット・ヘッダは、ハッシュ関数ユニット２１０に送信されるフロー識別子を抽出するように解析され、そのハッシュ関数ユニットではフロー識別子をハッシュしてフロー・バケットを生成する。
【００２７】
フロー・バケット識別子は、処理済みパケットを発信ポート１３０−ｊに転送しなければならないかまたはパケット・メモリ２５５に記憶する必要があるかを判定するためにパケット・キュー・デキュー・ユニット２６５が使用するバランス履歴にアクセスするためのバランス履歴メモリ２１５内のインデックスとして使用される。また、フロー・バケット識別子は、処理済みパケットをパケット・メモリ２５５に保管する必要があるかまたはそこから検索する必要があるときに、キュー・ポインタ・メモリ２８０にパケット・ポインタを保管するためのインデックスとしても使用される。
【００２８】
パケット・キュー・デキュー・ユニット２６５は、バランス履歴メモリ２１５から受信したバランス履歴を分析して、現行パケットを処理したネットワーク・プロセッサの識別子を、現行パケットがその一部であるフロー・バケットの最早ネットワーク・プロセッサの識別子と比較する。これらの識別子が等しくない場合、現行処理済みパケットはパケット・メモリ２５５に保管され、対応するポインタは、現行処理済みパケット・フロー・バケットおよび現行処理済みパケットを処理したネットワーク・プロセッサの識別子に応じてキュー・ポインタ・メモリ２８０に保管される。これらの識別子が等しい場合、現行処理済みパケットは発信ポート１３０−ｊに直接送信され、パケット・キュー・デキュー・ユニット２６５は更新履歴ユニット２７０により最早ネットワーク・プロセッサ識別子に関連する処理済みパケットの数を減少させる。この数が０に達した場合、最早ネットワーク処理手段の識別子も更新され、バランス履歴内の次の識別子に設定され、新しい最早ネットワーク処理手段識別子に対応するパケット・メモリ内に待ち行列化されたパケットは高速リンクに送信し、次にパケット・メモリから除去することができる。
【００２９】
着信ポート１２０の数が１に等しい場合、時分割多重ユニット２００は不要であることは注意すべきことである。同様に、発信ポート１３０の数が１に等しい場合、スイッチング・ユニット２８５は不要である。
【００３０】
図４は、ハイエンド・スイッチングまたはルータ・システム４００における前述の複数のシーケンス・ロード・バランサ１００の使用を示している。このようなシステムは概して、複数の高速リンク、たとえば、それぞれのポートが全二重の４０Ｇｂ／ｓトラフィックに耐えられる６４×６４ポート・スイッチを有する少なくとも１つのスイッチング・ファブリック４１０を有する。この例では、単一の半二重高速リンク、たとえば、着信または発信ポートを処理するために、４つのネットワーク・プロセッサが必要である。したがって、交換システム４００は、総称して１００−ｒといい、半二重リンクと同数のシーケンス・ロード・バランサを有し、それぞれのシーケンス・ロード・バランサ１００−ｒは４つのネットワーク・プロセッサＮＰ  Ａｒ、ＮＰ  Ｂｒ、ＮＰ  Ｃｒ、およびＮＰ  Ｄｒを接続する。図面全体を単純にし、シーケンス・ロード・バランサとネットワーク処理手段の集合がシステムの残りの部分にとってより高い能力の単一ネットワーク処理手段として見える様子を明確に示すために、シーケンス・ロード・バランサの形状は「Ｕ」字形で示されている。
【００３１】
図４で提示されたシステムの挙動を例証するために、着信ポート１２０−ｓを介してシーケンス・ロード・バランサ１００−１で受信した特定のパケット・フローについて考慮する。このフローのパケットは、本発明の方法によりネットワーク・プロセッサＮＰ  Ａ１、ＮＰ  Ｂ１、ＮＰ  Ｃ１、およびＮＰ  Ｄ１により動的に分散され、処理される。その後、パケットは、パケット順序を保持してシーケンス・ロード・バランサ１００−１で再結合され、発信ポート１３０−ｔを介してスイッチング・ファブリック４１０に送信される。パケットは、スイッチング・ファブリック４１０で経路指定され、たとえば、シーケンス・ロード・バランサ１００−２の着信ポート１２０−ｕに送信される。この場合も、パケットは、依然として本発明の方法によりシーケンス・ロード・バランサ１００−２のネットワーク・プロセッサＮＰ  Ａ２、ＮＰ  Ｂ２、ＮＰ  Ｃ２、およびＮＰ  Ｄ２により動的に分散され、処理されてから、依然としてパケット順序を保持してシーケンス・ロード・バランサ１００−２で再結合され、発信ポート１３０−ｖを介してネットワークまたはネットワーク装置（表現されていない）に送信される。
【００３２】
好ましい実施形態に関して本発明を説明したが、当業者であれば、本発明を異なる態様で実現できることを認識するであろう。同様に、地域および特定の要件を満足するために、当業者は多くの修正および変更を上記の解決策に適用することができるが、そのいずれも特許請求の範囲によって定義される本発明の保護の範囲内に含まれるものである。
【図面の簡単な説明】
【００３３】
【図１】本発明によるシーケンス・ロード・バランサの使用を示すネットワーク処理システムを示す図である。
【図２】ネットワーク処理手段によりパケット・フローを動的に分散するための本発明のシステムのアーキテクチャ例を示す図である。
【図３】バランス履歴メモリの内容を示す図である。
【図４】本発明によるシーケンス・ロード・バランサに基づく処理システムを有するネットワーク交換システムを示す図である。
【図１】
2005519530.tif 000003
【図２】
2005519530.tif 000004
【図３】
2005519530.tif 000005
【図４】
2005519530.tif 000006
【国際調査報告】
2005519530.tif 000007
2005519530.tif 000008
2005519530.tif 000009