JP3809873B2 - ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム - Google Patents

ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム Download PDF

Info

Publication number
JP3809873B2
JP3809873B2 JP2003573835A JP2003573835A JP3809873B2 JP 3809873 B2 JP3809873 B2 JP 3809873B2 JP 2003573835 A JP2003573835 A JP 2003573835A JP 2003573835 A JP2003573835 A JP 2003573835A JP 3809873 B2 JP3809873 B2 JP 3809873B2
Authority
JP
Japan
Prior art keywords
processing means
packet
network processing
identifier
processed
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.)
Expired - Fee Related
Application number
JP2003573835A
Other languages
English (en)
Other versions
JP2005519530A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005519530A publication Critical patent/JP2005519530A/ja
Application granted granted Critical
Publication of JP3809873B2 publication Critical patent/JP3809873B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケット交換網を横断するパケットがネットワーク処理手段によって分析されるネットワーク処理の分野に関し、より詳細には、複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力(performance capability)を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムに関する。
ネットワーク処理システムでは、交換網を横断するパケットは、一般に、パフォーマンス、セキュリティ、およびサービス品質を高めるために、経路指定、セグメンテーションと再アセンブリ、フィルタ処理、およびウィルス・スキャンを含む諸機能をそのパケットについて実行するネットワーク・プロセッサによって分析される。しかし、パケットについて実行するためにネットワーク・プロセッサが要求される可能性がある動作タイプの複雑性が増したことと、ネットワーク・プロセッサの処理能力の増加速度に対して帯域幅の速度が増し、パケット速度伝送が増したことにより、それに応じてネットワーク・プロセッサの全体的な処理パフォーマンスを高めることが装置および方法にとって不可欠である。
単一プロセッサまたはネットワーク・プロセッサによって提供できるものより高い処理パフォーマンスを達成するための一般的な方法は、複数プロセッサが並列に動作する並列処理にある。このような複数プロセッサは、より高速の単一ネットワーク・プロセッサと見なすことができる。
ネットワーク処理に関しては、並列処理は、従来技術では、ロード・バランシングまたはチャネル・ストライピング(channel striping)として実現されていた。従来技術のチャネル・ストライピング(ロード・シェアリングまたは逆多重化(inverse multiplexing)としても知られている)は、処理のボトルネックのためまたは単に価格性能比のために、ネットワーキングにおいて頻繁に使用されている。この方式では、複数チャネルを横切るストリームに属するパケットをストライピングするラウンドロビン・アルゴリズムまたはロード・シェアリング・アルゴリズムが使用される。ストライピングの重大な問題は、異なるチャネル上では遅延がそれぞれ異なることと、パケット・サイズが様々であることにより、パケットが不適切に順序付けされる可能性があることである。この不適切順序付け問題については、従来技術では以下のように3つのタイプの解決策が知られている。
i)1つのチャネル上のみで各フローを保持し、単一フローは各チャネルがサポート可能な帯域幅以上の帯域幅を使用できないことを受容すること。
ii)不適切順序付け後に受信パケットを再順序付けし、結果として発生する処理帯域幅の浪費を受容すること。
iii)ネットワーク処理手段が予測可能な期間内に処理できる固定転送単位にパケットを分割すること。
これに対して、動的ロード・バランシングは、計算、タスク、およびデータという3つの一般的な計算エンティティを扱う計算並列処理の分野で一般に使用されている。これらのケースでは、動的ロード・バランシングは、実行時間を短縮し、計算の全体的な効率を高めるために、結果的に各コンピュータがほぼ等しい量の作業を有することになる、コンピュータに対する計算、タスク、またはデータのマッピングを見つけようと試みる。
IBM社に譲渡され、2000年4月18日に米国特許商標局に出願された米国特許出願第09/551049号には、高速通信回線から発信された一連の着信データ・パケットを複数の処理手段に分散するためのリアルタイム・ロード・バランシング・システムが記載されており、それぞれの処理手段は高速通信回線の容量より低い容量で動作する。このシステムは、圧縮手段に供給するために着信パケットから構成可能な1組の分類子ビット(classifier bit)を抽出することができる解析手段(parser means)を有する。圧縮手段は、長さKのビット・パターンを、Kの一部分である長さLを有するビット・パターンに縮小することができる。このシステムは、ロード・バランシング判断が見つかるまで着信パケットを遅延させるためのパイプライン・ブロックと、セレクタとして前記圧縮手段からポート識別子出力を受信し、パイプライン化パケットを適切な出力ポートに向けるための逆デマルチプレクサ(inverse demultiplexer)とをさらに有する。
しかし、特に個々のフローが単一ネットワーク・プロセッサのパフォーマンス能力を超えるようなトラフィックの場合に、フローの正しい順序付けを保存する必要性が依然として存在する。パケットを変更できる場合、パケット・フローの順序付き再結合は簡単なことである。明白な方法は、順序番号で各着信パケットにラベルを付け、出力パケットが非順次番号順に出て行くのを防止することだけであろう。しかし、パケット変更の欠点は、変更したパケットを正確に処理するために、単一ネットワーク・プロセッサ構成とは異なる集合構成として個々のネットワーク・プロセッサを構成しなければならないことである。
ネットワーク処理手段の現在の技術的パフォーマンスによってこのような必要性が要求された場合、所望のパフォーマンスに達し、したがって、このようなネットワーク処理手段のコストを最適化するようにそれぞれのパフォーマンスをマージすることにより、前の世代のネットワーク処理手段の再使用も可能にする。
したがって、本発明の主要な一目的は、前述の従来技術の短所を矯正することにある。
本発明の他の目的は、パケットを変更せずにまたは各単一ネットワーク処理手段の動作を変更せずに、複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムを提供することにある。
本発明の他の目的は、異なる処理能力を有する複数のネットワーク処理手段によりパケット・フローを動的に分散し、個々のフローが単一ネットワーク処理手段のパフォーマンス能力を超えるようなトラフィックの場合でもパケット順序を保持しながら処理後にパケット・フローを再結合するための方法およびシステムを提供することにある。
上記その他の関連目的の遂行は、
−着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関連するバランス履歴が存在しない場合にそれを作成するステップと、
−ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも1つのパケットを以前処理したものとは異なる場合に、前記現行ネットワーク処理手段の前記識別子を前記バランス履歴に記憶し、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を1に設定するステップと、
−前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも1つのパケットを以前処理したものと同じである場合に、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を増加するステップと、
−前記着信パケットを前記現行ネットワーク処理手段に経路指定するステップと、
を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のための方法と、
−処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
−前記フロー識別子に関するバランス履歴から最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
−前記処理済みパケットが最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
−前記処理済みパケットが最早ネットワーク処理手段によって処理された場合に、前記処理済みパケットが高速リンクに送信され、処理済みパケットの前記関連数が減分され、処理済みパケットの前記関連数が0に達した場合に、最早ネットワーク処理手段識別子が前記バランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応する前記パケット・メモリ内に待ち行列化されたパケットを高速リンクに送信し、次に前記パケット・メモリから除去することができるステップと、
を有する、上記の方法により複数のネットワーク処理手段によって処理されたパケットを再結合するための方法とによって達成される。
本発明の他の利点は、添付図面および詳細な説明を検討したときに当業者には明らかになるであろう。いかなる追加の利点も本明細書に組み込まれるものとする。
図1は、多数の独立ネットワーク処理エンティティ上に集合高速リンクのトラフィック・フローを分散するための本発明によるシーケンス・ロード・バランサの使用を示すネットワーク処理システムを示している。この例では、ネットワーク処理システムは、本発明によるシーケンス・ロード・バランサ装置100と、それぞれ110−1〜110−4という4つの独立ネットワーク・プロセッサA〜Dとを有する。シーケンス・ロード・バランサ装置100は5つ以上または3つ以下のネットワーク・プロセッサに接続することができ、このシステム方式は例示のために記載したものであることを理解されたい。着信および発信ポート(それぞれ総称して120および130という)にある高速リンクは、明確にするために表現されていないスイッチング・ファブリックなどのネットワークまたはネットワーク装置とデータを交換するために、シーケンス・ロード・バランサ装置100との間でパケット・フローを送受信する。着信および発信ポート120−iおよび130−j(i=1,...,m、j=1,...,n)は、同様のタイプまたは異なるタイプのデータを処理することができる。同様に、着信および発信ポート120−iおよび130−jは、要求されたデータ処理、たとえば、経路指定またはフィルタ処理に応じて、異なるタイプのネットワークまたはネットワーク装置に接続することができる。着信ポート120の数は発信ポート130の数と等しい(n=m)場合もあれば、異なる(n≠m)場合もある。このシステムは、シーケンス・ロード・バランサ装置100と独立ネットワーク・プロセッサkとの間でパケットを交換するために接続部140−kおよび150−k(k=1,...,4)をさらに有する。
図1に図示したネットワーク処理システムは、高速リンクのパケット伝送速度より低いパケット処理速度を有する独立ネットワーク・プロセッサにより、高速リンクのパケット・フローを処理することを可能にする。そのために、シーケンス・ロード・バランサ装置100は、着信パケット・フローを分析し、接続された独立ネットワーク・プロセッサにパケットを動的に分散する。処理後、パケットは、すべてのパケット・フローの順序付けを保存して、高速リンクに返送されるように、シーケンス・ロード・バランサ100で再結合される。
本発明の方法によれば、各着信パケットは、対応するフロー識別子を決定するように分析され、ネットワーク処理手段はネットワーク処理手段のロードに応じてこの着信パケットを処理するように割り当てられる。バランス履歴は、使用されたネットワーク処理手段の順序と対応する処理済みパケットの数を記憶するためにフローごとに作成される。ネットワーク処理手段によって処理されたパケットが高速リンクに返送されると、このネットワーク処理手段の識別子と処理済みパケットの関連数がバランス履歴から除去される。したがって、着信データを処理するアルゴリズムは、
−着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
−抽出されたフロー識別子をハッシュして、フロー・バケット識別子という異なる識別子を生成するステップと、
−ネットワーク処理手段のロードを分析することにより現行ネットワーク処理識別子を決定するステップと、
−現行ネットワーク処理識別子が、同じフローの少なくとも1つのパケットを以前処理したものと同じである場合に、バランス履歴メモリ内に記録された現行ネットワーク処理手段によって処理されるパケットの数を増加するステップと、
−現行ネットワーク処理識別子が、同じフローの少なくとも1つのパケットを以前処理したものとは異なる場合に、現行ネットワーク処理識別子をバランス履歴メモリに記憶し、現行ネットワーク処理手段によって処理されたパケットの数を1に設定するステップと、
−パケットを現行ネットワーク処理手段に経路指定するステップと、
を有する。
着信パケットが処理された後、高速リンクに返送する前にそれらを再結合することが必要である。したがって、各処理済みパケットは対応するフロー識別子を決定するように分析され、パケット順序を顧慮するために対応するバランス履歴が使用される。同じフローの先行パケットがまだ処理されていない場合、処理済みパケットをバッファリングする(bufferized)ことができる。パケットが高速リンクに返送された後、バランス履歴は更新され、バッファは解放される。処理済みデータを処理するアルゴリズムは、
−処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
−抽出されたフロー識別子をハッシュして、対応するフロー・バケット識別子を生成するステップと、
−バランス履歴メモリからそのフロー・バケットに関する最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
−パケットがそのフロー・バケットに関して記録された最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
−パケットが最早ネットワーク処理手段によって処理された場合に、それが高速リンクに送信され、処理済みパケットの関連数が減分され、処理済みパケットの関連数が0に達した場合に、最早ネットワーク処理手段識別子がバランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応するパケット・メモリ内に待ち行列化されたパケットを高速リンクに送信し、次にパケット・メモリから除去することができるステップと、
を有する。
図2は、上記の方法によりネットワーク処理手段によりパケット・フローを動的に分散するためのシーケンス・ロード・バランサ装置100のアーキテクチャを示している。シーケンス・ロード・バランサ装置100は、それぞれ着信および発信ポート120−i(i=1,...,m)および130−j(j=1,...,n)と、それぞれネットワーク・プロセッサ110−1〜110−4との間でパケットを送受信するための接続部140−1〜140−4および150−1〜150−4からなる高速リンクを有する。この場合も、シーケンス・ロード・バランサ装置100は5つ以上または3つ以下のネットワーク・プロセッサに接続することができ、この実現例は例示のために記載したものであることを理解されたい。
シーケンス・ロード・バランサ装置100の受信側は、時分割多重(TDM)ユニット200と、ヘッダ解析ユニット205と、ハッシュ関数ユニット210と、バランス履歴メモリ215と、デマルチプレクサ・ユニット220と、パイプライン・ユニット225と、FIFOメモリ・ユニット230−1〜230−4と、現行ネットワーク・プロセッサ決定ユニット235からなる。高速リンクの着信ポート120に到着したパケットは、標準のTDMアルゴリズムに応じてTDMユニット200で結合され、次にシーケンス・ロード・バランサ装置100によって検査される。各パケットは、パケット・タイプと、そのパケットがどのフローの一部であるかと、複数のネットワーク・プロセッサ110−1〜110−4のそれぞれにおける現行ロードの量に基づいて、そのネットワーク・プロセッサ110−1〜110−4のうちの1つに経路指定される。着信パケット・ヘッダは、ハッシュ関数ユニット210に送信されるフロー識別子を抽出するようにヘッダ解析ユニット205で解析され、そのハッシュ関数ユニットではフロー識別子をハッシュして、フロー・バケット識別子という異なる識別子を生成する。ハッシュ関数ユニット210は、同じフローに属するパケットが同一フロー・バケットで識別されることを確認する。一般に、ハッシュ関数は、フロー・バケット識別子の数が可能なフロー識別子の数より大幅に少なくなるように構成されるが、これは本発明の要件ではない。
解析ユニット205は、抽出されたフロー識別子の数およびタイプに関して柔軟性を提供できなければならず、様々なプロトコルに関する広範な適用性を保証できなければならない。解析ユニット205の好ましい一実施形態は再構成可能な有限状態マシン装置である。
フロー・バケットはバランス履歴メモリ215内のインデックスとして使用され、そのバランス履歴メモリでは現行ネットワーク・プロセッサ識別子が現行パケットに割り当てられる。同じフローのパケットを処理したすべてのネットワーク・プロセッサの識別子と、処理されたパケットの関連数は、関連フロー・バケットともに処理時間順にバランス履歴メモリ215内に保管される。
図3はバランス履歴メモリ215の内容を示しており、そのバランス履歴メモリではテーブルの各行がフローの処理履歴を表している。300という第1の列は、前述の通りフロー・バケットによりフローを識別し、他の列は、それぞれ305−iおよび310−iというネットワーク・プロセッサ識別子および処理済みパケットの関連数を表している。したがって、列305−1は各アクティブ・フローの最後の現行ネットワーク・プロセッサ識別子を表し、列310−1は処理済みパケットの関連数を表し、列305−2は各アクティブ・フローの前の現行ネットワーク・プロセッサ識別子を表し、列310−2は処理済みパケットの関連数を表し、以下同様になる。アクティブ・フロー・バケットは、少なくとも1つのパケットが出力ポート130に返送されていないフロー・バケットとして定義される。図3に示す例では、6302に等しいフロー・バケットを有するフローに属する125個のパケットは1に等しい識別子を有する現行ネットワーク・プロセッサによって処理され、このフロー・バケットの265個のパケットは2に等しい識別子を有するネットワーク・プロセッサによって以前処理されている。
次に図2に戻ると、パイプライン・ユニット225で遅延される現行受信パケットが現行ネットワーク・プロセッサ識別子に対応するFIFOメモリ(230−1〜230−4)に保管されるように、現行ネットワーク・プロセッサ識別子はデマルチプレクサ・ユニット220に送信され、そこから現行ネットワーク・プロセッサに送信される。現行ネットワーク・プロセッサ決定ユニット235は、標準の統計技法によるFIFOメモリ230−1〜230−4のロード分析によりネットワーク・プロセッサ110−1〜110−4の活動を決定することによって、現行ネットワーク・プロセッサを設定する。たとえば、その関連FIFOメモリのロードが所定のしきい値未満になるたびに、ネットワーク・プロセッサを現行ネットワーク・プロセッサとして設定することができる。現行ネットワーク・プロセッサの決定のもう1つの例は、関連FIFOメモリが空になりそうなネットワーク・プロセッサを選択することにあり、このような場合、シーケンス・ロード・バランサはネットワーク・プロセッサ間の交換をあまり頻繁に行わなくなる。また、フロー履歴を使用して、現行ネットワーク・プロセッサの選択を最適化することも可能である。
他のものより大きい処理能力を有するネットワーク・プロセッサがその関連FIFOメモリをより高速で空にする場合でも、現行ネットワーク・プロセッサがFIFOメモリのロードに応じて決定されるためにシーケンス・ロード・バランサ100はそのネットワーク・プロセッサをより頻繁に現行ネットワーク・プロセッサとして選択するので、シーケンス・ロード・バランサ100はいかなる変更も行わずに異なる処理能力を有する複数のネットワーク・プロセッサに接続可能であることは注意すべきことである。シーケンス・ロード・バランサ100の変更を必要とするもう1つの解決策は、各ネットワーク・プロセッサの処理能力を関連ネットワーク・プロセッサ識別子とともに現行ネットワーク・プロセッサ決定ユニット235に保管することにある。処理能力および関連ネットワーク・プロセッサ識別子は、FIFOメモリ(230−1〜230−4)のロードとともに使用して、ネットワーク処理手段のロードを最適化するように現行ネットワーク・プロセッサを決定する。
シーケンス・ロード・バランサ装置100の送信側は、マルチプレクサ・ユニット240と、パイプライン・ユニット245と、デマルチプレクサ・ユニット250と、パケット・メモリ255と、マルチプレクサ・ユニット260と、スイッチング・ユニット285からなる。パケットは、ネットワーク・プロセッサ110−1〜110−4で処理された後、マルチプレクサ・ユニット240を介してパイプライン・ユニット245に送信され、次にデマルチプレクサ・ユニット250に送信される。パケット・フロー状況に応じて、着信パケットはパケット・メモリ255に保管されるかまたはマルチプレクサ・ユニット260に送信されてスイッチング・ユニット285を介して出力される。スイッチング・ユニット285はパケット・ヘッダを分析して、それに対してパケットを送信しなければならない高速リンクの発信ポート130−jを決定する。
シーケンス・ロード・バランサ装置100は、処理後のパケットを再結合するためのデータ・フロー・コントロール(data flow control)をさらに有し、それはヘッダ解析ユニット205と、ハッシュ関数ユニット210と、バランス履歴メモリ215と、パケット・キュー・デキュー・ユニット(packet queue and dequeue unit)265と、更新履歴ユニット270と、更新キュー・ポインタ・ユニット(update queue pointer unit)275と、キュー・ポインタ・メモリ(queue pointer memory)280とを有する。ヘッダ解析ユニット205、ハッシュ関数ユニット210、およびバランス履歴メモリ215は、処理の前後にパケットを分析するために使用されることは注意すべきことである。パケットは、ネットワーク・プロセッサ110−1〜110−4で処理された後、マルチプレクサ・ユニット240を介してヘッダ解析ユニット205に送信される。処理済みパケット・ヘッダは、ハッシュ関数ユニット210に送信されるフロー識別子を抽出するように解析され、そのハッシュ関数ユニットではフロー識別子をハッシュしてフロー・バケットを生成する。
フロー・バケット識別子は、処理済みパケットを発信ポート130−jに転送しなければならないかまたはパケット・メモリ255に記憶する必要があるかを判定するためにパケット・キュー・デキュー・ユニット265が使用するバランス履歴にアクセスするためのバランス履歴メモリ215内のインデックスとして使用される。また、フロー・バケット識別子は、処理済みパケットをパケット・メモリ255に保管する必要があるかまたはそこから検索する必要があるときに、キュー・ポインタ・メモリ280にパケット・ポインタを保管するためのインデックスとしても使用される。
パケット・キュー・デキュー・ユニット265は、バランス履歴メモリ215から受信したバランス履歴を分析して、現行パケットを処理したネットワーク・プロセッサの識別子を、現行パケットがその一部であるフロー・バケットの最早ネットワーク・プロセッサの識別子と比較する。これらの識別子が等しくない場合、現行処理済みパケットはパケット・メモリ255に保管され、対応するポインタは、現行処理済みパケット・フロー・バケットおよび現行処理済みパケットを処理したネットワーク・プロセッサの識別子に応じてキュー・ポインタ・メモリ280に保管される。これらの識別子が等しい場合、現行処理済みパケットは発信ポート130−jに直接送信され、パケット・キュー・デキュー・ユニット265は更新履歴ユニット270により最早ネットワーク・プロセッサ識別子に関連する処理済みパケットの数を減少させる。この数が0に達した場合、最早ネットワーク処理手段の識別子も更新され、バランス履歴内の次の識別子に設定され、新しい最早ネットワーク処理手段識別子に対応するパケット・メモリ内に待ち行列化されたパケットは高速リンクに送信し、次にパケット・メモリから除去することができる。
着信ポート120の数が1に等しい場合、時分割多重ユニット200は不要であることは注意すべきことである。同様に、発信ポート130の数が1に等しい場合、スイッチング・ユニット285は不要である。
図4は、ハイエンド・スイッチングまたはルータ・システム400における前述の複数のシーケンス・ロード・バランサ100の使用を示している。このようなシステムは概して、複数の高速リンク、たとえば、それぞれのポートが全二重の40Gb/sトラフィックに耐えられる64×64ポート・スイッチを有する少なくとも1つのスイッチング・ファブリック410を有する。この例では、単一の半二重高速リンク、たとえば、着信または発信ポートを処理するために、4つのネットワーク・プロセッサが必要である。したがって、交換システム400は、総称して100−rといい、半二重リンクと同数のシーケンス・ロード・バランサを有し、それぞれのシーケンス・ロード・バランサ100−rは4つのネットワーク・プロセッサNP Ar、NP Br、NP Cr、およびNP Drを接続する。図面全体を単純にし、シーケンス・ロード・バランサとネットワーク処理手段の集合がシステムの残りの部分にとってより高い能力の単一ネットワーク処理手段として見える様子を明確に示すために、シーケンス・ロード・バランサの形状は「U」字形で示されている。
図4で提示されたシステムの挙動を例証するために、着信ポート120−sを介してシーケンス・ロード・バランサ100−1で受信した特定のパケット・フローについて考慮する。このフローのパケットは、本発明の方法によりネットワーク・プロセッサNP A1、NP B1、NP C1、およびNP D1により動的に分散され、処理される。その後、パケットは、パケット順序を保持してシーケンス・ロード・バランサ100−1で再結合され、発信ポート130−tを介してスイッチング・ファブリック410に送信される。パケットは、スイッチング・ファブリック410で経路指定され、たとえば、シーケンス・ロード・バランサ100−2の着信ポート120−uに送信される。この場合も、パケットは、依然として本発明の方法によりシーケンス・ロード・バランサ100−2のネットワーク・プロセッサNP A2、NP B2、NP C2、およびNP D2により動的に分散され、処理されてから、依然としてパケット順序を保持してシーケンス・ロード・バランサ100−2で再結合され、発信ポート130−vを介してネットワークまたはネットワーク装置(表現されていない)に送信される。
好ましい実施形態に関して本発明を説明したが、当業者であれば、本発明を異なる態様で実現できることを認識するであろう。同様に、地域および特定の要件を満足するために、当業者は多くの修正および変更を上記の解決策に適用することができるが、そのいずれも特許請求の範囲によって定義される本発明の保護の範囲内に含まれるものである。
本発明によるシーケンス・ロード・バランサの使用を示すネットワーク処理システムを示す図である。 ネットワーク処理手段によりパケット・フローを動的に分散するための本発明のシステムのアーキテクチャ例を示す図である。 バランス履歴メモリの内容を示す図である。 本発明によるシーケンス・ロード・バランサに基づく処理システムを有するネットワーク交換システムを示す図である。

Claims (10)

  1. −着信パケットのヘッダを解析してフロー識別子を抽出するステップと、
    −前記フロー識別子に関連するバランス履歴が存在しない場合にそれを作成するステップと、
    −ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定するステップと、
    −前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも1つのパケットを以前処理したものとは異なる場合に、前記現行ネットワーク処理手段の前記識別子を前記バランス履歴に記憶し、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を1に設定するステップと、
    −前記現行ネットワーク処理手段の識別子が、同じフローの少なくとも1つのパケットを以前処理したものと同じである場合に、前記バランス履歴内で前記現行ネットワーク処理手段によって処理されたパケットの数を増加するステップと、
    −前記着信パケットを前記現行ネットワーク処理手段に経路指定するステップと、
    を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のための方法。
  2. 前記着信パケットを前記現行ネットワーク処理手段に経路指定する前記ステップが、
    −前記現行ネットワーク処理手段に関連する記憶手段に前記着信パケットを保管するステップと、
    −前記ネットワーク処理手段の要求があり次第、前記ネットワーク処理手段に関連する前記記憶手段に記憶されたパケットを送信するステップと、
    を有する、請求項1に記載の方法。
  3. ネットワーク処理手段のロードを分析し、現行ネットワーク処理手段を設定する前記ステップが、
    −前記ネットワーク処理手段に関連する前記記憶手段のロードを分析するステップと、
    −前記ネットワーク処理手段に関連する前記記憶手段のロードに応じて前記現行ネットワーク処理手段を設定するステップと、
    を有する、請求項2に記載の方法。
  4. 多数の着信ポートを介して受信した着信パケットを時分割多重するステップをさらに有する、請求項1ないし3のいずれか1項に記載の方法。
  5. −処理済みパケットのヘッダを解析してフロー識別子を抽出するステップと、
    −前記フロー識別子に関するバランス履歴から最早ネットワーク処理手段識別子と処理済みパケットの関連数とを取得するステップと、
    −前記処理済みパケットが前記最早ネットワーク処理手段によって処理されていない場合に、それがパケット・メモリに保管されるステップと、
    −前記処理済みパケットが前記最早ネットワーク処理手段によって処理された場合に、前記処理済みパケットが高速リンクに送信され、処理済みパケットの前記関連数が減分され、処理済みパケットの前記関連数が0に達した場合に、最早ネットワーク処理手段識別子が前記バランス履歴内の次の識別子に変化し、新しい最早ネットワーク処理手段識別子に対応する前記パケット・メモリ内に待ち行列化されたパケットを前記高速リンクに送信し、次に前記パケット・メモリから除去することができるステップと、
    を有する、請求項1ないし4のいずれか1項に記載の方法により複数のネットワーク処理手段によって処理されたパケットを再結合するための方法。
  6. パケット・ヘッダに応じて複数の発信ポートにより処理済みパケットを交換するステップをさらに有する、請求項5に記載の方法。
  7. 他の識別子が同じフローに属する複数パケットについて同一になるように、前記抽出されたフロー識別子をハッシュして前記他の識別子を生成するステップをさらに有する、請求項1ないし6のいずれか1項に記載の方法。
  8. 前記他の識別子が前記抽出されたフロー識別子より小さい、請求項7に記載の方法。
  9. 前記抽出されたフロー識別子をハッシュしてより小さい識別子を生成する前記ステップが、非線形ハッシュ関数に基づくものである、請求項8に記載の方法。
  10. 請求項1ないし9のいずれか1項に記載の方法を実行するために適合された手段を有する、ネットワーク処理手段による高速リンクからのパケット・フローの順序付き動的分散のためのシーケンス・ロード・バランサ。
JP2003573835A 2002-03-05 2003-02-27 ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム Expired - Fee Related JP3809873B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02368023 2002-03-05
PCT/EP2003/003249 WO2003075520A2 (en) 2002-03-05 2003-02-27 Method and system for ordered dynamic distribution of packet flows over network processors

Publications (2)

Publication Number Publication Date
JP2005519530A JP2005519530A (ja) 2005-06-30
JP3809873B2 true JP3809873B2 (ja) 2006-08-16

Family

ID=27771965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003573835A Expired - Fee Related JP3809873B2 (ja) 2002-03-05 2003-02-27 ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム

Country Status (9)

Country Link
US (1) US7359318B2 (ja)
EP (1) EP1483870B1 (ja)
JP (1) JP3809873B2 (ja)
KR (1) KR100570137B1 (ja)
CN (1) CN100440851C (ja)
AT (1) ATE308185T1 (ja)
AU (1) AU2003221530A1 (ja)
DE (1) DE60302045T2 (ja)
WO (1) WO2003075520A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366092B2 (en) * 2003-10-14 2008-04-29 Broadcom Corporation Hash and route hardware with parallel routing scheme
US7440404B2 (en) * 2004-02-24 2008-10-21 Lucent Technologies Inc. Load balancing method and apparatus for ethernet over SONET and other types of networks
US7369557B1 (en) * 2004-06-03 2008-05-06 Cisco Technology, Inc. Distribution of flows in a flow-based multi-processor system
US7660897B2 (en) * 2004-08-03 2010-02-09 International Business Machines Corporation Method, system, and program for distributing application transactions among work servers
US7840731B2 (en) * 2004-08-25 2010-11-23 Cisco Technology, Inc. Accelerated data switching on symmetric multiprocessor systems using port affinity
CN100393162C (zh) * 2004-10-10 2008-06-04 中兴通讯股份有限公司 一种时分组网系统中扇区负载均衡的方法
EP1877899B1 (en) * 2005-05-04 2009-12-23 Telecom Italia S.p.A. Method and system for processing packet flows, and computer program product therefor
CN101189843B (zh) * 2005-06-03 2011-06-15 皇家飞利浦电子股份有限公司 电子设备和通信资源分配方法
CN100459575C (zh) * 2005-11-10 2009-02-04 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
JP4776412B2 (ja) * 2006-03-23 2011-09-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケット転送装置、パケット転送方法、及びプログラム
US7792102B2 (en) * 2006-03-31 2010-09-07 Intel Corporation Scaling egress network traffic
JP4630262B2 (ja) * 2006-11-21 2011-02-09 日本電信電話株式会社 キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム
KR100843184B1 (ko) * 2006-12-08 2008-07-02 한국전자통신연구원 패킷 전송의 최적 경로 선택 장치 및 그 방법
KR100896784B1 (ko) * 2007-06-05 2009-05-11 나리넷(주) 네트워크 프로세서 간 패킷인터페이스스위치 연결에 의한패킷처리장치
KR100899526B1 (ko) * 2007-09-07 2009-05-27 삼성네트웍스 주식회사 다중 프로세서 기반의 패킷 처리 장치 및 방법
JP5081847B2 (ja) * 2009-02-20 2012-11-28 株式会社日立製作所 マルチプロセッサによるパケット処理装置およびパケット処理方法
JP5325731B2 (ja) * 2009-09-30 2013-10-23 株式会社日立製作所 ネットワーク中継装置
JP5471581B2 (ja) 2010-02-23 2014-04-16 富士通株式会社 監視プログラム、監視装置、および監視方法
US8745264B1 (en) * 2011-03-31 2014-06-03 Amazon Technologies, Inc. Random next iteration for data update management
US8654643B2 (en) * 2011-07-27 2014-02-18 Ixia Wide field indexing for packet tracking
US8830838B2 (en) 2011-09-14 2014-09-09 Hewlett-Packard Development Company, L.P. Node interface indicators
US8705366B2 (en) * 2012-01-23 2014-04-22 Cisco Technology, Inc. Dynamic load balancing without packet reordering
JP5892248B2 (ja) * 2012-07-13 2016-03-23 日本電気株式会社 集約型メータリング装置、集約型メータリング方法および集約型メータリングプログラム
EP2874362B1 (en) * 2013-11-13 2019-10-02 Napatech A/S A system and a method of analysing a plurality of data packets
US9467384B2 (en) * 2013-12-05 2016-10-11 Mediatek Singapore Pte. Ltd. Packet forwarding apparatus and method using flow subgroup based path selection for dynamic load balancing
US10764179B2 (en) * 2017-07-19 2020-09-01 Corsa Technology Inc. Look up table based match action processor for data packets

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128305A (en) * 1997-01-31 2000-10-03 At&T Corp. Architecture for lightweight signaling in ATM networks
FI104672B (fi) * 1997-07-14 2000-04-14 Nokia Networks Oy Kytkinjärjestely
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
JP4078755B2 (ja) * 1999-06-02 2008-04-23 株式会社日立製作所 帯域監視方法
US7996670B1 (en) * 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
JP3646638B2 (ja) * 2000-09-06 2005-05-11 日本電気株式会社 パケット交換装置及びそれに用いるスイッチ制御方法
US6901052B2 (en) * 2001-05-04 2005-05-31 Slt Logic Llc System and method for policing multiple data flows and multi-protocol data flows
JP3965283B2 (ja) * 2001-07-02 2007-08-29 株式会社日立製作所 複数種類のパケット制御機能を備えたパケット転送装置

Also Published As

Publication number Publication date
US20050152354A1 (en) 2005-07-14
KR20040086325A (ko) 2004-10-08
US7359318B2 (en) 2008-04-15
EP1483870A2 (en) 2004-12-08
DE60302045D1 (de) 2005-12-01
ATE308185T1 (de) 2005-11-15
EP1483870B1 (en) 2005-10-26
KR100570137B1 (ko) 2006-04-12
AU2003221530A1 (en) 2003-09-16
AU2003221530A8 (en) 2003-09-16
CN1579075A (zh) 2005-02-09
JP2005519530A (ja) 2005-06-30
CN100440851C (zh) 2008-12-03
WO2003075520A2 (en) 2003-09-12
WO2003075520A3 (en) 2004-03-04
DE60302045T2 (de) 2006-07-20

Similar Documents

Publication Publication Date Title
JP3809873B2 (ja) ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム
US7190695B2 (en) Flexible application of mapping algorithms within a packet distributor
US7283538B2 (en) Load balanced scalable network gateway processor architecture
US5918021A (en) System and method for dynamic distribution of data packets through multiple channels
US7890656B2 (en) Transmission system, delivery path controller, load information collecting device, and delivery path controlling method
US6246684B1 (en) Method and apparatus for re-ordering data packets in a network environment
US7499470B2 (en) Sequence-preserving deep-packet processing in a multiprocessor system
US7539210B2 (en) Dynamic routing in packet-switching multi-layer communications networks
US6768716B1 (en) Load balancing system, apparatus and method
US9270601B2 (en) Path resolution for hierarchical load distribution
US7860999B1 (en) Distributed computation in network devices
US20030074473A1 (en) Scalable network gateway processor architecture
US20020107990A1 (en) Network connected computing system including network switch
US20030236837A1 (en) Content delivery system providing accelerate content delivery
US20020116452A1 (en) Network connected computing system including storage system
US6853638B2 (en) Route/service processor scalability via flow-based distribution of traffic
US7079538B2 (en) High-speed router
JP2016501474A (ja) 分散型スイッチレス相互接続
JP2016501475A (ja) 受動相互接続及び分散型スイッチレススイッチングを行うルータ
CN111385217A (zh) 交换结构数据包流重排序
TWI617179B (zh) 單層網路、在單層網路中對封包或部分封包進行路由的方法及在單層網路中對封包進行路由的方法
US7020153B2 (en) Method and system for processing data packets
US11070474B1 (en) Selective load balancing for spraying over fabric paths
US20070133561A1 (en) Apparatus and method for performing packet scheduling using adaptation round robin
JP2001007862A (ja) 通信負荷分散方法

Legal Events

Date Code Title Description
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: 20060418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees