(57)【要約】  複数のトランク接続ポートラインを備えるネットワークを通じて、データを分配するシステムおよび方法であって、データパケットの一つのレイヤにある情報に基づいてデータパケットの別のレイヤ内の既存のフィールドを修正し、その修正レイヤのみを考慮するようにトランク接続分配プロセスを制御することを含む。代表的な実施の形態においては、通信ネットワーク環境を通じたパケットデータの分配を向上させる方法およびシステムを提供し、パケットのレイヤ３（Ｌ３）セクション内の複数のフィールドに基づいてパケットのレイヤ２（Ｌ２）セクション内の一つのフィールドを変更する。また、行先ＩＰアドレスに基づいて行先メディアアクセス制御（ＭＡＣ）アドレスを変更し、トランク分配の決定をパケットデータのＬ２セクションに限定することを含む。
2009524356.tif 000002
【特許請求の範囲】
【請求項１】
トランク接続ネットワークを通じてデータを分配する方法であって、パケット処理ノードでデータパケットを受信し、前記データパケットの第１のレイヤ内の少なくとも一つの既存のフィールドを修正し、前記少なくとも一つの修正したフィールドに基づいて、前記データパケットを送る前記トランク接続ネットワークの回線を決定することを含む方法。
【請求項２】
前記データパケットの第１のレイヤ内の前記少なくとも一つの既存のフィールドは、前記データパケットの第２のレイヤ内の少なくとも一つの既存のフィールドにおける情報に基づいて修正される請求項１に記載の方法。
【請求項３】
前記第１のレイヤ内の少なくとも一つの既存のフィールドは、少なくとも一つのレイヤ２フィールドを有する請求項２に記載の方法。
【請求項４】
前記少なくとも一つのレイヤ２フィールドの修正は、メディアアクセスコントロール行先アドレスの修正を含む請求項３に記載の方法。
【請求項５】
前記データパケットの第２のレイヤがレイヤ３である請求項４に記載の方法。
【請求項６】
前記レイヤ３の情報は、行先インターネットプロトコルアドレスを含む請求項５に記載の方法。
【請求項７】
前記データパケットの第１のレイヤ内の前記少なくとも一つの既存のフィールドに対する修正を決定することを含み、前記修正の決定はルックアップテーブルを参照することを含む請求項２に記載の方法。
【請求項８】
前記第２のレイヤ内の情報が前記ルックアップテーブルに含まれているか否かを決定し、
前記第２のレイヤ内の情報が前記ルックアップテーブルに含まれている場合には、前記ルックアップテーブルに従って前記少なくとも一つのフィールドを修正し、
前記第２のレイヤ内の情報が前記ルックアップテーブルに含まれていない場合には、該パケットデータ情報に関する情報を中央演算処理装置に送ることを含む請求項７に記載の方法。
【請求項９】
前記第２のレイヤ内の情報に基づいて、前記第１のレイヤ内の少なくとも一つの既存のフィールドに修正を割り当て、
前記ルックアップテーブルを更新することを含む請求項８に記載の方法。
【請求項１０】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、パケットデータが前記トランク接続ネットワークの複数の回線を通じて均一に分配されるように決定される請求項９に記載の方法。
【請求項１１】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、前記第２のレイヤ内の新情報が前記中央演算処理装置によって受信されるとき、前記第１のレイヤ内の少なくとも一つの既存のフィールドに複数の起こり得る修正のうちの一つを順次割り当てることを含む請求項９に記載の方法。
【請求項１２】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、前記第２のレイヤ内の情報に基づいて計算することを含む請求項９に記載の方法。
【請求項１３】
前記計算は、前記第２のレイヤ内の情報に基づく巡回冗長検査（ＣＲＣ）を含む請求項１２に記載の方法。
【請求項１４】
前記第２のレイヤ内の情報は、レイヤ３行先インターネットプロトコルアドレスを含む請求項１３に記載の方法。
【請求項１５】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正は修正メディアアクセスコントロール（ＭＡＣ）アドレスを含み、前記ルックアップテーブルは複数のＭＡＣアドレスを含み、前記各ＭＡＣアドレスは前記トランク接続ネットワーク内の複数のポートの一つに対応し、前記複数のＭＡＣアドレスの各々は最高位および最低位のビットを含む複数のオーダビットを含み、前記ルックアップテーブルのＭＡＣアドレスの各々は、少なくとも一つのビットの限定的選択においてのみ、前記ルックアップテーブルのそれ以外のＭＡＣアドレスと異なる請求項１４に記載の方法。
【請求項１６】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、一定期間における最少トラフィックで前記トランク接続ネットワークのポートを決定することを含む請求項９に記載の方法。
【請求項１７】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、前記トランク接続ネットワークのすべてのポートのトラフィックが所定の閾値よりも少なくない場合に、一定期間における最少トラフィックで前記トランク接続ネットワークのポートを決定することを含む請求項９に記載の方法。
【請求項１８】
前記トランク接続ネットワークのすべてのポートのトラフィックが前記所定の閾値よりも少ない場合に、
新たな第２のレイヤの情報が前記中央演算処理装置によって受信されるとき、前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正を順次割り当てることを含む請求項１７に記載の方法。
【請求項１９】
前記第１のレイヤ内の少なくとも一つの既存のフィールドに対する修正の割当ては、前記トランク接続ネットワーク内のポートに対応する修正の確率が前記トランク接続ネットワーク内の該ポートでのトラフィックに使用可能な空き帯域幅の割合に比例するように前記修正を割り当てることを含む請求項９に記載の方法。
【請求項２０】
前記トランク接続ネットワーク内のポートに対応する特定の修正に乱数の範囲を割り当てることをさらに含み、この範囲の大きさは選択されている該特定の修正の所望の確率に比例する請求項１９に記載の方法。
【請求項２１】
前記データパケットに乱数発生器で数字を割り当て、前記データパケットに割り当てられた数字がどの乱数の範囲内に存在するかを判定することにより前記データパケットの第１のレイヤに適用される特定の修正を選択する請求項２０に記載の方法。
【請求項２２】
トランク接続ネットワークを通じてデータを分配するシステムであって、
少なくとも一つの入力ポートと、
複数のトランク出力ポートラインと、
前記少なくとも一つの入力ポートと前記複数のトランク出力ポートラインの間に設けられ、前記少なくとも一つの入力ポートからデータパケットを受信し、前記データパケットを特定の出力ポートに送るように前記データパケットの第１のレイヤ内の少なくとも一つの既存のフィールドを修正するデータ処理ノードと、
を備えるシステム。
【請求項２３】
前記データ処理ノードに接続されるルックアップテーブルを備える請求項２２に記載のシステム。
【請求項２４】
前記ルックアップテーブルは、前記データパケットの第１のレイヤ内の前記少なくとも一つの既存のフィールドを修正するための情報を含む請求項２３に記載のシステム。
【請求項２５】
前記ルックアップテーブルに含まれる前記データパケットの第１のレイヤ内の前記既存のフィールドを修正するための情報は、前記データパケットの第２のレイヤからの情報に基づく請求項２４に記載のシステム。
【請求項２６】
前記データ処理ノードに接続される中央演算処理装置（ＣＰＵ）を備え、前記ＣＰＵは、データパケット情報を受信し、前記データパケットの第２のレイヤ内の前記情報に基づいて前記第１のレイヤ内の前記少なくとも一つのフィールドに対する修正を発生させ、前記第１のレイヤ内の前記少なくとも一つのフィールドに対する修正に基づいて前記ルックアップテーブルを更新する請求項２５に記載のシステム。
【請求項２７】
前記データ処理ノードは、スイッチチップである請求項２２に記載のシステム。
【請求項２８】
第２のスイッチチップを備える請求項２７に記載のシステム。
【請求項２９】
前記第１のスイッチチップは、前記パケットデータを行先トランク群に経路指定し、前記データパケットの第１のレイヤ内の前記少なくとも一つの既存のフィールドを修正し、前記第２のスイッチチップは、この修正されたフィールドに基づいて、前記データパケットを前記トランク群のどの回線に送るかを判定する請求項２８に記載のシステム。
【請求項３０】
前記第１のレイヤ内の前記少なくとも一つの既存のフィールドは、複数のフィールドを含む請求項２９に記載のシステム。
【請求項３１】
前記第２のレイヤからの前記情報は、前記第２のレイヤ内の少なくとも一つのフィールドからの情報を含む請求項２９に記載のシステム。
【請求項３２】
前記第２のレイヤ内の前記少なくとも一つのフィールドは、複数のフィールドを含む請求項３１に記載のシステム。
【請求項３３】
前記第２のレイヤからの前記情報は、前記第２のレイヤ内の少なくとも一つのフィールドからの情報を含む請求項３０に記載のシステム。
【請求項３４】
前記第２のレイヤ内の前記少なくとも一つのフィールドは、複数のフィールドを含む請求項３３に記載のシステム。
【請求項３５】
前記データパケットの第１のレイヤはレイヤ２であり、前記少なくとも一つの既存のフィールドはレイヤ２アドレスを含み、前記データパケットの第２のレイヤはレイヤ３であり、前記第２のレイヤに関する前記情報は少なくとも一つのレイヤ３アドレスを含む請求項２９に記載のシステム。
【請求項３６】
前記少なくとも一つのレイヤ２アドレスはメディアアクセスコントロール行先アドレスを含み、前記少なくとも一つのレイヤ３アドレスはインターネットプロトコル（ＩＰ）行先アドレスを含む請求項３５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
概して本発明は、トークンリング、ＡＴＭ、イーサネット（登録商標）、ファスト・イーサネット、ギガビット・イーサネット環境などの通信ネットワーク環境を通じて、データトラフィック分配・配分を向上させる方法およびシステムに関し、特に、トランク型イーサネットポートなどのトランクポートを備える通信ネットワークを通じた高性能パケット分配、経路指定および／または切替え方法およびシステムに関する。さらに本発明は、任意のパケットベースのメディア環境に適用可能である。特に本発明は、シリコンチップなどの半導体基板上で実行可能なパケット分配方法および／またはシステムに関する。
【背景技術】
【０００２】
ネットワークによるアプリケーション交換において、入力パケットがデータ処理ノードやスイッチなどのネットワーク構成要素の入力ポートに入力され、そこでネットワーク構成要素が入力パケットを処理して出力ポートに送る。入力パケットの処理に当たって、ネットワーク構成要素はネットワーク構成要素の入力側で入力パケットを解析・チェックし、ネットワーク性能を高めるようにアドレス指定および経路指定情報を決定できる。
【０００３】
例えば、イーサネットスイッチなどのネットワーク構成要素は、外部的に、またはシャーシベースのスイッチのバックプレーンに、トランク結合・接続（並列分散接続）された複数の出力ポートを備えることができる。トランク接続は、複数の並列のネットワークケーブルやポートの利用を伴う。トランクは、スイッチを相互接続し、ネットワークを形成するのに用いられたりする。トランク接続によって、単一のケーブルやポートの限界を超えて、リンク速度を速めることができる。パケットトラフィックは、トランク接続されたポートから一様に分配されないことがあり、すべての使用可能な帯域幅を効率よく利用できい要因となる。
【０００４】
現在のトランク分配技術では輻そうが発生することがあり、例えば、多数のトラフィックフローがあるポートに分配されるが、他のポートには少量のトラフィックしか分配されない。このような場合には、トランク群は効率的に機能せず、フローが均一に分配されたなら可能であろう多量のトラフィックを伝送できなくなる。
【０００５】
さらに、トランク内の異なるポートはパケット送信に要する時間が相違することがあり、パケットトラフィックが最終目的地に順序だって配信されず、通信ネットワークを通じた情報送信に重大な遅延や不具合が生ずる可能性がある。ほぼすべての高水準ネットワーキングプロトコルでは、それらと対応付けられるデータパケットが順番通りに到着する必要があり、データパケットがトランク群の異なる回線の間でランダムに分配されてはならない。
【０００６】
イーサネットフローなどのデータパケットの関連フローが、トランク接続されたポート群を通して送られるとき、フローは単一のポートから送られる必要がある。同一のフローからのパケットが異なるポートから送られる場合、順序通り配信されないことが生じ得る。順序の乱れたパケット配信は、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）などの高位層イーサネットプロトコルに極めて有害な影響を及ぼす。
【０００７】
複数のポート群が共にトランク接続されている場合には、すべての使用可能な帯域幅が利用できるように、インターネットプロトコル（ＩＰ）トラフィックなどのトラフィックのフローを均一に分配するアルゴリズムが必要となる。しかし、上記のように、ネットワークの端点間の各フローはトランクの単一ポートを通り、最終目的地に乱れた順序で配信されないようにしなければならない。
【０００８】
典型的なトランク分配アルゴリズムに関しては、パケットのヘッダ構造内で様々なフィールドを操作して、パケットを送るポートを決定するためのハッシュ値を得る必要がある。このようなハッシュアルゴリズムとしては、排他的ＯＲ（ＸＯＲ）が代表的であり、ＣＲＣ１６などの巡回冗長検査（ＣＲＣ）も用いられる。パケットの異なるフィールド上でＣＲＣ冗長検査を行うことにより、ＸＯＲハッシュの場合よりもランダムにデータパケットが分配される。ハッシュキーを作成し、キーフィールドの一部を索引として用いてトランク内のどのポートを使用するかを判定する。各パケットのハッシュ値をスイッチチップへの到達速度（例えば、ワイヤ速度）で計算する必要があるため、比較的簡単なハッシュ分配アルゴリズムが重要となる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、このようなアルゴリズムは、いくつかのフィールドを束ねて（結合して）各フローを確定する際に、人為的に発生させた試験トラフィックを用いた試験中に失敗が発生しがちである。ＸＯＲ動作を用いてフィールド処理を行うとき、単一の索引を作成して全トラフィックがトランクの単一ポートに送られる。同様の問題が現実のシステムで見受けられる。例えば、各フローに対して極めて類似したヘッダフィールドを有するサーバファ−ムで見受けられる。
【００１０】
このような代表的なシステムでは、どのフィールドを用いてハッシュ値を計算するかに関して、ある程度の規制が通常設けられるが、レイヤ２（Ｌ２）フィールド、Ｌ２およびレイヤ３（Ｌ３）フィールド、またはＬ２、Ｌ３およびＬ４フィールドのいずれかを通常用いることができる。ここで、レイヤ２（Ｌ２）やレイヤ３（Ｌ３）などの「レイヤ」は、開放型システム間相互接続（ＯＳＩ）の７層モデルに従っている。しかし、フィールドがより精細に規制されたり、ハッシュアルゴリズムに対してもある程度の規制が設けられることがある。例えば、ＸＯＲとＣＲＣ１６ハッシュ生成間の選択が設けられることがある。
【００１１】
しかし、ハッシュ値の計算にどのフィールドを利用するか、およびハッシュアルゴリズムに対して設けられる規制の度合いに関わらず、これらのアルゴリズムは、フィールドを利用するために用いられるスイッチチップの論理設計により固定されており、変更が容易でないため、特定の試験構成によって変化するネットワーク条件や輻そうに適合させることができない。
【００１２】
上記の問題を鑑み、使用可能な全帯域幅を利用し、かつパケットが正しい順序で分配されるように、ネットワーク構成要素が、高効率、高速かつ高精度のアドレス指定および処理ロジックを入力パケットに適応させるための方法およびシステムが必要である。
【００１３】
本発明は、このようなニーズを満たすもので、その目的は、送信側から送られたパケットを同じ順序で受信側に確実に到着させながら、パケットデータをトランク群内のポートから均等に分配するシステムおよび方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明は、データパケットの一つのレイヤ（層）にある情報に基づいて、データパケットの他のレイヤ内の少なくとも一つの既存のフィールドを修正し、修正されるレイヤのみを考慮するようにトランク接続分配プロセスを制限するものである。
【００１５】
これにより、パケットの最終目的地への配信が妨害されないようにパケットデータの経路が確立されるが、ネットワークにおけるトランク群の個別のリンクを通じたトラフィックが確実に均等に分配される。
【００１６】
本発明の一つの代表的な実施の形態において、通信ネットワーク環境を通じたパケットデータの分配を向上させる方法およびシステムが記載されており、パケットのレイヤ３（Ｌ３）セクション内の少なくとも一つのフィールドに基づいて、パケットのレイヤ２（Ｌ２）セクション内の少なくとも一つのフィールドを変更するものである。これによれば、行先ＩＰアドレスに基づいて、行先メディアアクセスコントロール（ＭＡＣ）アドレスを変更し、トランク分配の決定をパケットデータのＬ２セクションに限定する。データパケットのＬ２およびＬ３セクションがともに複数のフィールドを有する場合、Ｌ３セクションからの複数のフィールドを用いてデータパケットのＬ２セクションにおける複数のフィールドを修正する。
【発明の効果】
【００１７】
特に、このシステムおよび方法は、配信の適切な順序を確保しながら、トランク群内のポートを通じた個々のトラフィックフローの分配を向上させる（改善する）。また本発明は、データパケットが輻そうされることなく、より多くのトラフィックをトランク群を介して伝送できるように、パケットデータフローの分配を改善する。他の特徴および効果は、発明の詳細な記述および添付の図面から当業者には明白であろう。
【発明を実施するための最良の形態】
【００１８】
本発明は、パケットデータレートで計算する必要がなくオフラインで計算が行え、より複雑で精度の高いハッシングアルゴリズムを利用することにより、現在のトランク分配アルゴリズムに関連する問題を解決するものである。また本発明によれば、変化するネットワーク条件や構成に応じて、ハッシングアルゴリズムを動的に修正することを可能にする。
【００１９】
パケットデータの一つのレイヤに基づいて、パケットデータの各フローに対するアクセス可能な行先アドレスに応じてパケットデータの別のレイヤを修正し、修正されるレイヤのみを考慮するようにトランク接続分配アルゴリズムを制限する。これにより、リアルタイムでの動作を必要とする複雑性が小さいトランク分配アルゴリズムの代わりに、リアルタイム動作が不要でより優れた分配特性を有する精巧なアルゴリズムを用いることができる。
【００２０】
図１は、本発明の実施の形態に係るシステムの模式図である。図１において、データのパケットが入力物理層プロトコル（ＰＨＹ）１に受信される。図１に示すように、入力ＰＨＹ１は複数の入力ポートからデータパケットを受信し、スイッチチップ２に転送する。パケットヘッダの内容に応じて、パケットがスイッチチップ２を介して出力ＰＨＹ５またはＣＰＵ３のいずれかに送られる。ＣＰＵ３で受信されたパケットは、解析され、ルックアップテーブル（配列）４の内容を更新するために用いられる。ルックアップテーブル４は、スイッチチップ２内に含まれてもよいし、例えばメモリバスを介してスイッチチップ２に接続された外部メモリであってもよい。
【００２１】
図１における実施の形態では、４つのポートが出力ＰＨＹ５に取り付けられているが、本発明はこれに限定されず、２つ若しくはそれ以上の任意の数のポートがトランク接続されていてもよい。
【００２２】
本実施の形態の変形例として、乱数発生器６をさらに設けてもよく、これに関してはより詳細に後述する。
【００２３】
現在の通信構成要素では、パケット内のあるフィールドが互いに強く関連付けられている場合、一様なフロー分配が行えない。例えば、トランク容量の自動試験において、行先メディアアクセスコントロール（ＭＡＣ）アドレスと行先ＩＰアドレスを増やすだけでも、先行フローと異なる新しいフローが発生する場合がある。ＭＡＣアドレスは物理アドレスやレイヤ２アドレスであるが、レイヤ３アドレスはネットワークアドレスや仮想アドレスである。この例では、新フローと旧フローにおける行先ＭＡＣアドレスおよび／または行先ＩＰアドレスは強固に相関しているので、新フローが旧フローと同一のポートから送られ、トランク群内のこの単一ポートで輻そうが生ずる場合がある。
【００２４】
本発明によれば、データパケットの一つのレイヤ内の情報に基づいて、データパケットの別のレイヤ内の少なくとも一つの既存のフィールドを修正し、この修正レイヤのみを考慮するようにトランク接続分配プロセスを制限することにより、上記の輻そうを回避できる。
【００２５】
一実施の形態において、本発明は、データパケットのＬ３セクション内の少なくとも一つのフィールドに基づいて、データパケットのＬ２セクション内の少なくとも一つのフィールドを変更することを伴う。この実施の形態において、行先ＭＡＣアドレスは行先ＩＰアドレスに基づいて修正される。データパケットのＬ２とＬ３セクションがともに複数のフィールドを有する場合、Ｌ３セクションからの複数のフィールドを用いてデータパケットのＬ２セクションにおける複数のフィールドを修正する。
【００２６】
例えば、Ｌ２セクションは、他の情報と共に、ソースおよび行先ＭＡＣアドレスフィールドとＶＬＡＮ・ＩＤフィールドの両方を有し、Ｌ３セクションは、他の情報と共にソースおよび行先ＩＰアドレスの両方を有する。従って、本発明によれば、（１）第２のレイヤの一つのフィールドからの情報に基づいて第１のレイヤ内の一つのフィールドを修正する、（２）第２のレイヤの複数のフィールドからの情報に基づいて第１のレイヤ内の一つのフィールドを修正する、（３）第２のレイヤの一つのフィールドからの情報に基づいて第１のレイヤ内の複数のフィールドを修正する、または（４）第２のレイヤの複数のフィールドからの情報に基づいて第１のレイヤ内の複数のフィールドを修正する、という処理を含む。ここで、レイヤ２（Ｌ２）やレイヤ３（Ｌ３）などの「レイヤ」は、開放型システム間相互接続（ＯＳＩ）の７層モデルに従っている。
【００２７】
パケットの置換（代替）Ｌ２セクションを設けることにより、本実施の形態で述べられているように、パケットのＬ２セクションはネットワークプロトコルではなく、トランク群を通じてフローを均等に分配する値に基づくことになる。それ故、パケットがトランクのどの回線で送られるか、という決定は行先ＩＰアドレスではなく、行先ＭＡＣアドレスに基づく。本実施の形態に関してＬ２とＬ３が検討されているが、本発明では、その他のレイヤの組合せも可能である。
【００２８】
例えば、４つのメンバポートを有するトランク群において、ネットワーク構成要素の入力側に入るデータパケットのＬ２セクションは、例えば、パケット行先ＩＰアドレスや行先ＩＰサブネットなどのＬ３アドレスに基づいて置換される４つの行先ＭＡＣアドレスの一つを有することができる。置換Ｌ２行先ＭＡＣアドレスは、ルックアップテーブルを用いて選択可能である。ルックアップテーブルにおける４つの行先ＭＡＣアドレスは、例えば、２つの最下位のビットにおいてのみ相違するので、トランク接続分配アルゴリズムは、下位の行先ＭＡＣアドレスビットだけを考慮すればよいことになる。
【００２９】
一実施の形態においては、ＩＰアドレスが最初に習得されたシーケンスによって、４つのＭＡＣアドレスの２つの下位ビットが決定されるように、ルックアップテーブルが作成されているが、ルックアップテーブルは他の方法でも作成可能である。
【００３０】
トランク群のためのポート分配ロジックは、ＸＯＲハッシュ計算などのポート決定計算からデータパケットの置換セクションに対する基礎セクションを除外するように設定される。それ故、行先ＩＰアドレスに基づいてＭＡＣアドレスの置換を行う上記の例では、トランク群のポート分配ロジックは、ＸＯＲハッシュ計算から行先ＩＰアドレスを除外するように設定されることになる。これにより、パケット内の一定のフィールドが互いに強く関連していても、トランク群のポートを通じて均等なトラフィック分配が可能になる。
【００３１】
図２は、本発明の一実施の形態に係るパケットの流れ図である。
【００３２】
ステップ１．１において、例えば、イーサネットパケットであるデータパケットがスイッチチップなどのデータ処理ノードに受信される。ステップ１．２において、パケットのヘッダを分析してパケットの行先ＭＡＣアドレスがパケット処理ノードのＭＡＣアドレスと同じであるかを判定する。データ処理ノードは、パケットがこのスイッチに行先指定／アドレス指定されているかを判定することにより、データパケットが別のネットワークに経路指定されるべきか、若しくは、ローカルに切り替えられるべきかを判定する。
【００３３】
パケットのＭＡＣアドレスがパケット処理ノードのＭＡＣアドレスと同じでない場合、データパケットを別のネットワークに経路指定する必要がある。ステップ１．３では、データ処理ノードはパケットを行先トランクに経路指定する。データ処理ノードがスイッチチップの場合には、スイッチチップはＬ２スイッチ動作をデータパケットに対して実行する。ステップ１．４では、パケットをトランクのどのポートに送るかを判定するために、データ処理ノードがハッシュ計算を実行する。
【００３４】
一方、パケットの行先ＭＡＣアドレスがデータ処理ノードのＭＡＣアドレスと同じ場合、ステップ２．１で、データ処理ノードはデータルックアップテーブルからパケットの行先ＩＰアドレスを参照・検索する。データ処理ノードには複数のＭＡＣアドレスが割り当てられて、パケットのヘッダ行先ＭＡＣアドレスがデータ処理ノードに割り当てられたＭＡＣアドレスのいずれかに等しい場合にステップ２．１が実行される。ステップ２．１で行先ＩＰアドレスがルックアップテーブルにある場合、処理がステップ２．２に移行し、パケットの行先ＭＡＣアドレスがルックアップテーブルから検索・取得される。例えば、パケットの行先ＭＡＣアドレスを、ＩＰアドレスルックアップテーブルに関連付けられている「ネキストホップ」テーブルから検索・取得してもよい。次にステップ２．３では、レイヤ３（Ｌ３）経路指定動作をパケットに対して実行する。その後、ステップ２．４では、データ処理ノードによってハッシュ計算が実行され、パケットをトランクのどのポートに送るかが決定される。
【００３５】
例えば、ステップ２．４において、パケットのヘッダにおける情報に基づいてパケットの行先ＭＡＣアドレスを計算するアルゴリズムを用いて、ハッシュ計算を実行してもよい。行先ＭＡＣアドレスは出力トランク内の各ポート用に確保される。従って、図１に示す実施の形態では、合計で４つのＭＡＣアドレスが確保される。ステップ２．４のトランクハッシュ計算によって各ＭＡＣアドレスが異なるポートに送られるように、ＭＡＣアドレスが選択される。ステップ２．４では、ステップ１．４と同様の判定が行われる。より高水準の切替え判定が行われたが、ステップ２．４では、パケットデータをトランク内のどの回線に送るかを決定するだけである。
【００３６】
図２全体がパケットフローに関するものであるが、この図におけるすべての判定が、全ネットワークに対する一つのパケット処理ノードや切替えチップで行われるというわけではない。パケットがネットワークを通じて流れるとき、ある判定を一つの切替えノードで行ない、他の判定を別の切替えノードで行なってもよい。
【００３７】
具体的に言えば、ステップ２．３および２．４は異なるパケット処理ノードに適用し得る。例えば、２つの異なるスイッチチップでステップ２．３および２．４を実行してもよい。それ故、ステップ２．３と２．４の間にネットワークの介入セグメントがある場合でも、他の発明とは異なり、本発明は効果的に機能する。従来の分配方法は、トランク回線の分岐点から離れた場合に特に効果がなく、その他の方法が１つまたは２つのノード分戻って実行される場合はデータパケットを効果的に分配しないことになる。本発明は、トランクから離れている場合であってもトランクに対してトラフィックを均等に分配することで、このような欠点を解決している。
【００３８】
しかし、ステップ２．１で行先ＩＰアドレスがルックアップテーブルに見つからない場合は、ステップ３．１において、データ処理ノードはパケットをＣＰＵに送る。そして、ＣＰＵはパケットの行先ＭＡＣアドレスを計算する。ＣＰＵは割り当て可能なアドレスの大テーブルを備えており、トランク接続ポートを通じて十分広いパケットトラフィックを提供できるように、計算を実行する。ステップ３．３では、ＣＰＵはパケット処理ノードに関連するルックアップテーブルを更新する。その後、データ処理ノードはステップ２．１を実行し、それに対して新しく付加されたＩＰ行先アドレスがルックアップテーブルから検索され、上記のように、システムがステップ２．２からステップ２．４までを実行していく。
【００３９】
トランク計算で用いられ得るハッシングアルゴリズの例を以下に示す。
ＨＡＳＨ=ＭＡＣ０−７ＸＯＲＭＡＣ８−１５ＸＯＲＭＡＣ１６−２３
ＸＯＲＭＡＣ２４−３１ＸＯＲＭＡＣ３２−３９ＸＯＲＭＡＣ４０−４７
ここでは、ハッシュ結果の最下位の２ビットを用いて、以下の表１で示すように出力ポートを選択する。この例では、トランクハッシュ計算により各ＭＡＣアドレスを有するデータパケットが異なるポートを通って送られるように設計されたＭＡＣアドレスは、下記のように選択できよう。
ＭＡＣアドレス1＝ａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−００
ＭＡＣアドレス２＝ａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−０１
ＭＡＣアドレス３＝ａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−０２
ＭＡＣアドレス４＝ａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−０３
2009524356.tif 000003
上記において、ＭＡＣ１６−２３は行先ＭＡＣアドレスのビット１６から２３までを表し、ＨＡＳＨ１は算出ハッシュ索引のビット１を表す。
【００４０】
本発明の他の実施の形態において、複数のＭＡＣアドレスを各トランク接続ポート用に確保してもよい。この他の実施の形態では、順番に各ＭＡＣアドレスが行先ＭＡＣアドレスとしてのパケットに代入され、そのパケットの他の部分が変更されない場合に、等しい数のパケットがトランク群内の各ポートに送られるように、ＭＡＣアドレスを選択する。
【００４１】
確保されたＭＡＣアドレスは、複数の方法で行先ＩＰアドレスに割り当てることができる。次に示すものは、様々な割当て方法の実施の形態にすぎないが、単なる実例であり、多数の変形例および変更例は当業者にとって明白であろう。
【００４２】
確保したＭＡＣアドレスを行先ＩＰアドレスに割り当てる代表的な方法
方法Ａ
表２に示すように、新しいＩＰアドレスのそれぞれがＣＰＵにより受信される際に、順々にＭＡＣアドレスを割り当てる。
2009524356.tif 000004
【００４３】
方法Ｂ
行先ＩＰアドレスに基づいた計算からＭＡＣアドレスを導出することができる。例えば、行先ＩＰアドレスのＣＲＣ１６ハッシュが算出できる。その結果として得られるハッシュの２つの下位ビットを用いて、表３に示すように行先ＭＡＣアドレスを決定する。
2009524356.tif 000005
【００４４】
方法Ｃ
所定の期間でトラフィック量が最も少ないポートを判定し、そのポートに対してトラフィックを経路指定する行先ＭＡＣアドレスを割り当てることにより、ＭＡＣアドレスを割り当てる。
【００４５】
例えば、トランク内の各ポートのトラフィック量を０．１秒間計算し、トラフィックの最少量をポート３に記録する。ＣＰＵがＩＰアドレスを受信した後、その行先ＩＰアドレスを有するトラフィックがトランク群のポート３に送られるように、ＭＡＣアドレスがａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−０２と割り当てられる。
【００４６】
方法Ｄ
Ｃで用いられる方法の変形例として、全ポートのトラフィックがトランク群上の輻そうに相当する臨界閾値よりも小さくない場合に、所定期間でトラフィック量が最も少ないポートを判定し、そのポートに対してトラフィックを経路指定する行先ＭＡＣアドレスを割り当てることにより、ＭＡＣアドレスを割り当てる。全ポートのトラフィックが臨界閾値よりも小さい場合には、Ａに記述したように、ＭＡＣアドレスを順番通りに割り当てる。トラフィックが少ない状態で方法Ｃを実行すると、ＣＰＵが受信したすべての新しいＩＰアドレスが単一のポートに対応する行先ＭＡＣアドレスに割り当てられてしまい、輻そうが生じ得る。これに対し、方法Ｄによって、このような問題を解消できる。
【００４７】
方法Ｅ
所定のＭＡＣアドレスが割り当てられる確率が、出力トランク内の対応するポートのトラフィック伝送に使用可能な空き帯域幅の量に比例するように、ＭＡＣアドレスを確定・割り当てる。
【００４８】
例えば、トランク内の各ポートのトラフィック量を０．１秒間計算し、そのトラフィック量を該ポートの総容量から減算する。各ポートの容量が１Ｇｂｐｓであり、ポート１の０．１秒間のトラフィック平均値が４００Ｍｂｐｓの場合、そのポートでの使用可能な容量は、１０００−４００＝６００Ｍｂｐｓと算出される。
【００４９】
表４は、確率の代表的な計算を示す。この計算では、所定のポートの使用可能容量を計算し、それをトランク群の全ポートの総使用可能容量で除算することにより、そのポートに対応するＭＡＣアドレスが、ＣＰＵで受信される新しいＩＰアドレスに割り当てられる確率を得る。この例では、全ポートの総使用可能容量は２０００Ｍｂｐｓなので、ポート＃１に対応するＭＡＣアドレスが割り当てられる確率は３０％である。同様に、ポート＃２、ポート＃３およびポート＃４に対応するＭＡＣアドレスが割り当てられる確率はそれぞれ、２０％、４０％および１０％である。
【００５０】
その後、図１に示すように、ＭＡＣアドレスが選択される確率に比例する大きさを有する乱数範囲を各ＭＡＣアドレスに割り当てて、乱数発生器６で乱数を計算することによって、ＭＡＣアドレスを決定する。
【００５１】
一つの例として、乱数は１から１００までの整数でもよい。例えば、ＣＰＵが新しいＩＰアドレスを受信して７６の結果が乱数発生器から得られたなら、この乱数は表４のＭＡＣアドレスａａ−ｂｂ−ｃｃ−ｄｄ−ｅｅ−０２およびポート＃３に対応する。
2009524356.tif 000006
【００５２】
本発明を説明した上記の例では、４つのポートがトランク群に設けられているが、本発明は特にこの数のポートを備えるトランク群の使用に限定されず、２つ以上の任意の数のポートを備えるトランク群を用いることができる。
【００５３】
図３は、本発明の一実施の形態に関連して使用されるコンピュ−タシステム例の種々の特徴を示す。このコンピュ−タシステムでは、図３に示すように、例えば、サーバや他のネットワーク装置１０６上に備えられたソフトウェアや他のコンピュ−タの機能を利用して、本発明の方法に従ってユーザ１０１がデータにアクセスし、計算を行い、他のステップを実行する。アクセスは、例えば、端末１０２、ネットワーク（例えば、インターネット）１１０および回線１１１、１１３を通じて行う。端末１０２は、例えば、パーソナルコンピュータ（ＰＣ）、小型コンピュータ、メインフレームコンピュータ、マイクロコンピュータ、電話機、携帯情報端末（ＰＤＡ）、またはプロセッサと入力の機能を備える他の装置から構成される。サーバ１０６は、例えば、ＰＣ、小型コンピュータ、メインフレームコンピュータ、マイクロコンピュータ、または、プロセッサとデータ用リポジトリ（データ貯蔵庫）を備えた、あるいはデータ用リポジトリにアクセス可能な他の装置から成る。回線１１１、１１３は、有線や無線、あるいは光ファイバを含む。
【００５４】
本発明は、ハードウェア、ソフトウェア、またはそれらの組合せを用いて実施可能で、一つ以上のコンピュータシステムや他の処理システムで実施してもよい。一つの実施の形態では、本発明を、本明細書に記載の機能性を実行できる一つ以上のコンピュータシステムに適用している。このようなコンピュータシステム２００の例を図４に示す。
【００５５】
コンピュータシステム２００は、プロセッサ２０４などの一つ以上のプロセッサを備える。プロセッサ２０４は、通信インフラストラクチャ２０６（例えば、通信バス、クロスオーバ・バーやネットワーク）に接続される。この代表的なコンピュータシステムに関して、種々のソフトウェアの実施の形態を記載しており、この記載を読めば、どのように本発明を他のコンピュータシステムおよび／または構成を用いて実施するかが、当該関連分野の技術者に明白となろう。
【００５６】
コンピュータシステム２００は、通信インフラストラクチャ２０６から（あるいは、図示を省略したフレームバッファから）グラフィックス、テキストおよび他のデータを転送するディスプレイインタフェース２０２を備え、ディスプレイ装置２３０で表示することができる。コンピュータシステム２００は主記憶装置２０８を備え、ランダムアクセスメモリ（ＲＡＭ）が好ましく、また二次記憶装置２１０も備える。二次記憶装置２１０は、例えば、フレキシブルディスク駆動装置、磁気テープ駆動機構や光ディスクドライブなどを代表とするハードディスク・ドライブ２１２および／または取外し自在な記憶装置ドライブ２１４を有する。取外し自在な記憶装置ドライブ２１４は、周知の方法で取外し自在な記憶装置２１８に対して読出しおよび／または書込みを行う。取外し自在な記憶装置２１８は、代表的にはフレキシブルディスク、磁気テープや光ディスクなどであり、取外し自在な記憶装置ドライブ２１４によって読出しおよび書込みが実行される。また、取外し自在な記憶装置２１８は、コンピュータソフトウェアおよび／またはデータが記憶されたコンピュータにより利用可能な記憶媒体を備えてもよい。
【００５７】
他の実施の形態として、二次記憶装置２１０は、コンピュータのプログラムや他の命令をコンピュータシステム２００にロード可能にする他の同様の装置を備えてもよい。そのような装置には、例えば、取外し自在な記憶装置２２２およびインタフェース２２０が含まれる。さらに、そのような例として、（テレビゲーム機に用いるような）プログラムカートリッジとカートリッジインタフェース、（書き込みおよび消去可能読出し専用メモリ（ＥＰＲＯＭ）や、書き込み可能読出し専用メモリ（ＰＲＯＭ）などの）取外し自在なメモリチップと結合ソケット、および他の取外し自在な記憶装置２２２とインタフェース２２０を設け、ソフトウェアとデータを取外し自在な記憶装置２２２からコンピュータシステム２００に転送できるようにしてもよい。
【００５８】
コンピュータシステム２００は、ソフトウェアとデータをコンピュータシステム２００と外部装置の間で転送させる通信インタフェース２２４を備えてもよい。さらに、通信インタフェース２２４の例として、モデム、（イーサネットカードなどの）ネットワークインタフェース、通信ポート、パーソナルコンピュータ・メモリカード国際協会（ＰＣＭＣＩＡ）のスロットとカードなどが含まれる。通信インタフェース２２４を介して転送されたソフトウェアとデータは、信号２２８の形態であって、通信インタフェース２２４による受信が可能な電子、電磁気や光学、あるいはその他の信号である。この信号２２８は、電線やケーブル、光ファイバ、電話線、セルラ・リンク、無線周波数（ＲＦ）リンクおよび／または他の通信チャネルを用いて実現できる通信路（例えば、チャネル）２２６を通って、通信インタフェース２２４に提供される。本明細書において、「コンピュータプログラム媒体」および「コンピュータにより利用可能な媒体」を用いているが、これらは一般に、取外し自在な記憶装置ドライブ２１４、ハードディスク・ドライブ２１２に設けられたハードディスクや信号２２８などの媒体を指す。このようなコンピュータプログラム製品は、ソフトウェアをコンピュータシステム２００に提供し、本発明はこのようなコンピュータプログラム製品に適用される。
【００５９】
コンピュータプログラム（コンピュータ制御ロジックとも呼ばれる）は、主記憶装置２０８および／または二次記憶装置２１０に記憶される。コンピュータプログラムを通信インタフェース２２４を介して受信してもよく、コンピュータプログラムを実行することで、コンピュータシステム２００が本明細書に記載された本発明の機能を実行する。コンピュータプログラムを実行するにより、特にプロセッサ２０４が本発明の機能を実行する。従って、このようなコンピュータプログラムは、コンピュータシステム２００のコントローラに相当する。
【００６０】
本発明をソフトウェアにより実施する一実施の形態において、取外し自在な記憶装置ドライブ２１４、ハードディスク・ドライブ２１２または通信インタフェース２２４を用いて、ソフトウェアをコンピュータプログラム製品に記憶してコンピュータシステム２００にロードしてよい。制御ロジック（ソフトウェア）は、プロセッサ２０４によって実行されると、プロセッサ２０４が本明細書に記載された本発明の機能を実行する。別の実施の形態では、例えば、特定用途向け集積回路（ＡＳＩＣｓ）などのハードウェア構成要素を用いて、主にハードウェアで本発明を実施する。上記の機能を実行できるようなハードウェア装置の実現・実施は、当該関連分野の技術者にとっては明白であろう。
【００６１】
さらに別の実施の形態においては、ハードウェアとソフトウェアの両方を組み合わせることにより、本発明を実施する。
【００６２】
本発明の実施の形態の例を上記のような効果に対応させて説明したが、これらの例は本発明を例証しているにすぎず、多数の変形例および変更例は当業者にとって明白であろう。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施の形態に係るシステムを示す。
【図２】本発明の実施の形態に係る方法を示す流れ図である。
【図３】本発明に関連して使用されるコンピュ−タシステムの模式図である。
【図４】本発明に関連して使用されるコンピュ−タシステムの模式図である。
【符号の説明】
【００６４】
１        入力物理層プロトコル
２        スイッチチップ
３        ＣＰＵ
４        ルックアップテーブル
５        出力物理層プロトコル
６        乱数発生器
【図１】
2009524356.tif 000007
【図２】
2009524356.tif 000008
【図３】
2009524356.tif 000009
【図４】
2009524356.tif 000010
【国際調査報告】
2009524356.tif 000011