JP2014509145A - 等コストマルチパス・パケット交換ネットワークでの次ホップ計算関数 - Google Patents
等コストマルチパス・パケット交換ネットワークでの次ホップ計算関数 Download PDFInfo
- Publication number
- JP2014509145A JP2014509145A JP2013554624A JP2013554624A JP2014509145A JP 2014509145 A JP2014509145 A JP 2014509145A JP 2013554624 A JP2013554624 A JP 2013554624A JP 2013554624 A JP2013554624 A JP 2013554624A JP 2014509145 A JP2014509145 A JP 2014509145A
- Authority
- JP
- Japan
- Prior art keywords
- function
- packet
- node
- network
- mapping
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ノード毎のECMPパス判定アルゴリズムで使用される次ホップ計算関数が提供される。これは、等コストマルチパス・パケット交換ネットワークにおいてネットワークリソースの間のトラヒックの拡散を増加させる。一実施例では、パケットは、ネットワークの各ECMPノードに対して、固有の鍵マテリアルで鍵が掛けられたエントロピー保存マッピング関数を実装させることにより、出力ポートにマッピングされる。固有の鍵マテリアルは、所与の入力が異なるノードで異なる出力にマッピングされるように、各ノードが共通の関数プロトタイプからそれぞれのマッピング関数をインスタンス化することを可能にする。マッピング関数の出力のセットが候補出力ポートの数より大きい場合、マッピング関数の鍵が掛けられた出力をECMPポートの候補のセットに変換するために、圧縮関数が使用される。
Description
この出願は、2011年2月17日に“Next Hop Computation Functions For Equal Cost Multi-Path Packet Switch Networks”という題で出願された米国仮出願第61/443,993号の優先権を主張し、この内容を援用する。
本発明は、パケット交換ネットワークに関し、特にパケット交換ネットワークにおける等コストパスの次ホップ計算関数に関する。
Ethernetネットワークアーキテクチャでは、ネットワークに接続されたデバイスは、いずれかの所与の時間に共有通信パスを使用する機能を競合する。ネットワークセグメントを相互接続するために複数のブリッジ又はノードが使用される場合、同じ宛先への複数の潜在的なパスがしばしば存在する。このアーキテクチャの利点は、ブリッジ間でのパスの冗長性を提供し、キャパシティ(収容力)が更なるリンクの形式でネットワークに追加されることを可能にする点にある。しかし、ループが形成されることを回避するために、一般的には、トラヒックがネットワークでブロードキャストされる方法を制限するために、スパニングツリーが使用されている。ルートはフレームをブロードキャストして応答を待機することにより学習され、また、要求及び応答の双方がスパニングツリーに従うため、全てではなくてもほとんどのトラヒックは、スパニングツリーの一部であるリンクに従う。このことは、スパニングツリーに存在するリンクの過剰利用をもたらし、スパニングツリーの一部ではないリンクの未利用をもたらす。スパニングツリーは、他の形式のパケット交換ネットワークにも同様に使用されることがある。
スパニングツリーを使用して制御されるネットワークに固有の制限のいくつかを克服するため、パケットネットワークのノードの動作を制御するためにリンクステートプロトコル制御プレーンが使用可能である。パケットネットワークを制御するためにリンクステートプロトコルを使用することは、ループのない最短パスの転送により、ネットワークキャパシティの効率的な使用を可能にする。トランスペアレントなブリッジと組み合わせてスパニングツリープロトコル(STP:Spanning Tree Protocol)を使用するのではなく、リンクステートプロトコル制御のパケットネットワークでは、メッシュネットワークを形成するブリッジは、各ノードがネットワークトポロジの同期したビューを有することができるように、リンクステート広告を交換する。
これは、リンクステートルーティングシステムの周知の機構を介して実現される。リンクステートルーティングプロトコルの2つの例は、OSPF(Open Shortest Path First)とIS-IS(Intermediate System to Intermediate System)とを含むが、他のリンクステートルーティングプロトコルも同様に使用される可能性がある。リンクステートルーティングシステムでは、ネットワークのブリッジは、ネットワークトポロジの同期したビューを有し、必要なユニキャスト及びマルチキャスト接続を認識しており、ネットワークのブリッジのいずれかの対の間で最短パスの接続を計算することができ、ネットワークの共通のビューに基づいて計算された最短パスに従って転送情報ベース(FIB:forwarding information base)を個々に生成することができる。
リンクステートプロトコル制御のパケットネットワークは、Ethernetブリッジによる接続と同等のものを提供するが、フラッディング(flooding)及び学習によってではなく、ネットワークエレメントのFIBの構成を介してこれを実現する。全てのノードが同期したネットワークビューで自分の役目を計算し、自分のFIBを生成した場合、ネットワークは、一式のピアブリッジ(peer bridge)からいずれか所与のブリッジまでループのないユニキャストツリーを有し、ブリッジでホストされたサービスインスタンス毎に、いずれか所与のブリッジから同じ一式のピアブリッジまで合同の(congruent)ループのないポイント・ツー・マルチポイント(p2mp)マルチキャストツリーを有する。その結果は、スパニングツリーのルートブリッジ(root bridge)を通過することに制限されない所与のブリッジの対の間のパスになり、全体の結果は、メッシュの接続の幅をより良く利用することができるようになる。IEEE(Institute of Electrical and Electronics Engineers)標準802.1aqは、この技術の1つの実装を指定している。
ネットワークのノードの間に複数の等コストパスが存在する場合が存在する。特に、相互接続されたスイッチの非常に密集したメッシュが存在するデータセンタでは、送信元と宛先との間又は送信元と宛先との間のパスに沿った中間ノードの間に複数の等コストパスが存在する可能性がある。ノードの対の間に複数の等コストパスが存在する場合、ネットワークリソースのより良い利用及び/又はより良いネットワークスループットを得るために、利用可能なパスの間でトラヒックを分配することが望ましいことがある。等コストマルチパス(ECMP:Equal Cost Multi-Path)ルーティングは、利用可能な実質的に等コストのパスの間でトラヒックを分配するための、パケット交換ネットワークを通じてパケットを転送する処理である。
ECMPルーティングは、トラヒックがネットワークに入るため、ヘッドエンドノード(head-end node)で実装されてもよく、ネットワークの各ノードに分散的に実装されてもよい。ECMPルーティングが分散的に実装される場合、宛先までの複数の等コストパスを有する各ノードは、ネットワークのトラヒックを分配するために、複数の利用可能なパスにトラヒックの異なるフローをローカルで指示する。不都合なことに、分散されたノード毎のECMPが実装された場合、ネットワークキャパシティの最適な利用は実現することが困難になる。
例えば、図1は、パケットネットワークにおける典型的なトラヒック分配パターンを示している。ネットワークの各ノードは、利用可能なパスから選択するために、同じECMP計算関数を使用する。図1に示す例では、スイッチI-Lのうち1つに向かうトラヒックは、スイッチA-Dのいずれかに到達してもよい。目的は、ネットワークを通じてトラヒックを転送するために多数のパスが使用されるように、ネットワークにトラヒックを拡散させることである。不都合なことに、図1に示すように、各ノードでの同じ次ホップ計算関数の使用は、ネットワークの或る領域で非常に悪いトラヒック分配の結果になる可能性がある。特に、フローIDの規則性又はパターンは、トラヒックが集中するようになることをもたらし、ネットワークの利用可能なパスの間で非効率的なトラヒックの拡散を生じる可能性がある。
以下の概要及びこの願書の最後に示された要約は、以下の詳細な説明において説明するいくつかの概念を紹介するために提供されている。概要及び要約の部分は包括的ではなく、以下に示す特許請求の範囲に示された保護可能な対象物の範囲を記述することを意図しない。
ノード毎のECMPパス判定アルゴリズムで使用される次ホップ計算関数が提供される。これは、等コストマルチパス・パケット交換ネットワークにおいてネットワークリソースの間のトラヒックの拡散を増加させる。一実施例では、パケットは、ネットワークの各ECMPノードに対して、固有の鍵マテリアル(key material)で鍵が掛けられたエントロピー保存マッピング関数を実装させることにより、出力ポートにマッピングされる。固有の鍵マテリアルは、所与の入力が異なるノードで異なる出力にマッピングされるように、各ノードが共通の関数プロトタイプからそれぞれのマッピング関数をインスタンス化することを可能にする。マッピング関数の出力のセット(集合)が候補出力ポートの数より大きい場合、マッピング関数の鍵が掛けられた出力をECMPポートの候補のセットに変換するために、圧縮関数が使用される。
本発明の態様は、特に特許請求の範囲に示されている。本発明は、単なる例として図面に示されている。図面において同様の参照符号は同様の要素を示す。図面は、例示のみの目的で本発明の様々な実施例を開示しており、本発明の範囲を制限することを意図するものではない。明瞭にするために、各図面において全ての構成要素にラベルが付けられているとは限らない。
図1は、同じ次ホップ計算関数がネットワークの各ホップで使用されるサンプル的なネットワークを示している。図1の下から上へのトラヒックフロー及び各ノードのトラヒックは、ノードにより4つの可能な出力ポートのうち1つにローカルでマッピングされる。スイッチの下及び中間の行の間で、トラヒックは均一に分配され、2つの行を接続するメッシュの各リンクが利用される。しかし、スイッチの中間の行は、上の行に接続するリンクの全てを利用することができない。中間の行の最も左のスイッチは、最も左の出力ポートにマッピングされるトラヒックのみを受信している。同様に、その行の第iのスイッチは、直前の段階で第iのポートにマッピングされるトラヒックのみを受信する。この不健全な動作は、各ノードにおける同じマッピング関数の使用と、この例で使用されるメッシュの規則性の性質とによりもたらされる。しかし、この種類の非常に規則的なネットワーク構造は、必ずしも珍しいわけではない。特に、データセンタは、スイッチの行が非常に規則的なメッシュにより相互接続された図1に示すようなものと同様の規則的な構造を使用する傾向にある。
図2は、利用可能なリンクの間でトラヒックをネットワークに更に均一に分配するために、交互のECMPパス選択処理が実装された図1のネットワークを示している。簡潔にするために、DA=Jを有するトラヒックのみが図2に示されている。この例では、トラヒックは、ノードA、B、C及びDのいずれかに到達してもよい。これらのノードのそれぞれは、ノードE、F、G及びHのいずれかに接続するリンクを選択してもよい。そのノードは、トラヒックをノードJに転送する。図2と図1とを比較することにより、トラヒックが双方の層のノードを相互接続するリンクに非常に均一に分配されることが明らかである。図2に示す例のようなトラヒックパターンは、ネットワークのノードが異なるECMPパス選択アルゴリズムを使用する分散ECMPシステムで実現することが容易である。特に、独立した次ホップ選択アルゴリズムの使用は、パスIDに関連するパターンがパス選択において強い相関関係を有する可能性を低減するため、ネットワークにおけるトラヒックの広範囲にわたる分配を生じる。
例えば図2に示すようなトラヒックの拡散を実装するために、パケット交換ネットワークの各ノードが、入力ポートで受信したパケット毎に、宛先までネットワークを通じたパスで次ノードに送信するためにパケットを出力する適切な出力ポートを判定しなければならない分散ECMP処理が使用される。ECMPを実装するために、各ノードは、受信したパケットについて適切な転送の判定を行わなければならない。トラヒックの拡散を実現するために、ノードにより使用されるアルゴリズムは、何らかランダム化されなければならない。しかし、ネットワークトラヒックがシミュレーション及び予測されることを可能にするために、アルゴリズムは決定論的であるべきである。更に、個々のフローに関連するパケットは、パケットのフローが意図した宛先に向かって同じポートから出力されることを可能にするため、同じ出力ポートに一貫して割り当てられるべきである。
実施例によれば、ネットワークの各ノードでトラヒックを分配するために、並び替え(permutation)が使用される。並び替えは、トラヒックの特定のフローがネットワークを通じてルーティングされる方式が事前に予測され得るように、決定論的であるアルゴリズムを使用して生成される。しかし、並び替えは、入力の刺激(stimulus)における小さい差を前提とした疑似ランダムな出力動作を用いて、利用可能なリンクの間での良好なトラヒックの拡散を可能にするように設計される。更に、選択されたアルゴリズムは、本質的にローカルに固有の関数がECMPの次ホップを選択するために使用されることを可能にするために、ネットワークの各ノードがローカルで固有の鍵の値と共に同じアルゴリズムを使用するように設計される。パケットネットワークにおけるトラヒックのレイヤ2(Ethernet)スイッチングに焦点を当てた実施例について説明するが、トラヒックの拡散を実装するために説明される技術は、ECMPルーティングを使用したレイヤ3ネットワークにも有用になり得る。
一実施例では、入力スイッチの入力ポートで受信した各パケットは、フロー識別子(Flow ID:Flow Identifier)を割り当てられる。典型的には、フローIDは、IP送信元アドレス(SA:Source Address)、IP宛先アドレス(DA:Destination Address)、プロトコル識別子、送信元及び宛先ポート、並びに場合によってはパケットのヘッダの他の内容のように、カスタマMACヘッダ(C-MAC:customer MAC header)又はインターネットプロトコル(IP:Internet Protocol)ヘッダの情報に基づいてもよい。或いは、フローIDは他の方法でパケットに割り当てられてもよい。例えば、管理システムは、特定のネットワークパスの健康状態及び性能を監視するために、管理パケットにフローIDを割り当ててもよい。フローIDは、入口スイッチ(ingress switch)でパケットヘッダにカプセル化され、出口スイッチ(egress switch)でパケットヘッダからカプセル化解除されてもよい。フローIDは、12ビットのVLAN識別子(B-VID)フィールド、24ビットのサービス識別子(I-SID)フィールド、新たな(まだ指定されてない)フィールド、又はこれらのフィールドのいずれか一部若しくは組み合わせで伝達されてもよい。特定の実装に応じて、フローIDの生成、配布及び/又は再生成を実装する複数の方法が実装されてもよい。
同じフローIDを有するパケットが、同じ中間スイッチを介して、すなわち、ネットワークを通じて同じパスを介して、同じ入口スイッチから同じ出口スイッチに転送されることを必要とする複数のプロトコルが存在する。このようにパケットを送信させることは、パケットの順序誤りの受信を回避し、その他にもネットワークでのデータの送信を容易にする。従って、ノードがECMPを実行する場合、宛先への等コストパスの間を選択するためにノードに実装されるアルゴリズムは、所与のフローIDに関連するパケットでは一貫して動作すべきである(すなわち、同じ出力パスを選択するべきである)。
しかし、ECMPネットワークでは、選択すべき入口スイッチから出口スイッチへの複数の実質的に等コストのパスが存在する場合、同じ入口スイッチから同じ出口スイッチへの転送を必要とする異なるフローIDを有するパケットは、入口スイッチと出口スイッチとの間の異なる等コストパスの間で、フローIDに従って分配されるべきである。
実施例によれば、実質的に等コストのパスの間で異なるフローIDを有するパケットのこの分配を実現するために、ネットワークの各スイッチは、以下により、特定のDA及び特定のフローIDを伝達する受信パケットの適切な出力ポートを判定する。
1.DAを、DAへの最小コストのパスのセットに対応する候補出力ポートのセットにマッピングする。唯一の最小コストのパスが存在する場合、唯一の候補出力ポートが存在する。DAへの複数の実質的に等コストの最小コストパスが存在する場合、複数の候補出力ポートが存在してもよい。
2.少なくともDAが複数の候補出力ポートに対応する場合、特定のスイッチに鍵が掛けられたマッピング関数を使用して、フローIDを候補出力ポートの1つにマッピングする。マッピングは、各スイッチにおいて、出力ポートへのフローIDの分配がほぼ均一に分配されるようなものであるべきである。唯一の対応する候補出力ポートが存在するDAを有するパケットについては、このステップは必要ない点に留意すべきである。パケットは、単にその出力ポートにルーティングされてもよい。
1.DAを、DAへの最小コストのパスのセットに対応する候補出力ポートのセットにマッピングする。唯一の最小コストのパスが存在する場合、唯一の候補出力ポートが存在する。DAへの複数の実質的に等コストの最小コストパスが存在する場合、複数の候補出力ポートが存在してもよい。
2.少なくともDAが複数の候補出力ポートに対応する場合、特定のスイッチに鍵が掛けられたマッピング関数を使用して、フローIDを候補出力ポートの1つにマッピングする。マッピングは、各スイッチにおいて、出力ポートへのフローIDの分配がほぼ均一に分配されるようなものであるべきである。唯一の対応する候補出力ポートが存在するDAを有するパケットについては、このステップは必要ない点に留意すべきである。パケットは、単にその出力ポートにルーティングされてもよい。
実施例によれば、ノードにおける候補出力ポートへのフローIDのマッピングは、エントロピー保存疑似ランダムマッピング(entropy-preserving pseudo-random mapping)(すなわち、マッピングの異なる出力の数は、異なる入力の数と等しくなるべきである)と、多数のマッピングされたフローIDを小数の候補出力ポートにマッピングする圧縮関数とを組み合わせることにより生成されてもよい。このエントロピー保存マッピングは、異なる入力のセットが異なる入力のセットと同じ数の要素を有する異なる出力のセットにマッピングされる全単射関数(bijective function)でもよい。或いは、エントロピー保存マッピングは、異なる入力のセットが可能な異なる出力のより大きいセットにマッピングされる単射関数(injective function)でもよい。この場合、異なる入力の数に対応する複数の異なる出力のみが使用される。いずれにしても、異なる出力への異なる入力のマッピングは、1対1である。
図3A及び3Bは、8個の出力(A-H)への8個の入力(1-8)のマッピング例である。図3Aに示すように、入力を出力にマッピングするための複数の方法が存在する。実施例によれば、各ノードは、フロー識別子を出力の候補セットにマッピングするためにマッピング関数を使用する。これは、事実上、フローIDの再編成された系列を生成する。このようにフロー識別子をマッピングすることは、フロー識別子をランダム化し、ネットワークのフローへのフロー識別子の割り当てに関連するいずれかのパターンを低減又は除去する。一実施例では、各ノードは、プロトタイプのマッピングを取得し、鍵の値をマッピングに適用し、ノードにおいて固有のマッピングをインスタンス化する。例えば、各ノードは、ノードで固有であるフローIDの再編成された系列の循環シフトを生成するために、乗算関数において鍵の値を使用してもよい。図3Aは、第1の鍵を使用してプロトタイプのマッピングから導出された第1のマッピングを使用した入力1-8から出力A-Hへのマッピングを示しており、図3Bは、第2の鍵を使用して同じプロトタイプから導出された第2のマッピングを使用した入力1-8から出力A-Hへのマッピングを示している。図3A及び3Bの比較で示すように、異なる鍵の使用は、異なる入力値(フローID)が異なる出力値にマッピングされることを生じる。
トラヒックの集約とフローの集中を回避するために、実施例によれば、マッピングは、2つのスイッチが同じエントロピー保存マッピングを有さないようにすべきである。これは、固有の鍵を各スイッチに割り当て、各スイッチに固有である鍵が掛けられたマッピング関数を使用してフローIDをマッピングすることにより、構成されてもよい。鍵は各スイッチで異なり、また、マッピングを実行するためにスイッチにより使用される基礎となるアルゴリズムは、鍵及びプロトタイプのエントロピー保存マッピング関数により完全に指定されるため、鍵が掛けられたマッピング関数は、スイッチに固有になる。これにより、ネットワークのトラヒックのフローが判定可能になり、また、出力ポートのセットへの特定のフローIDのマッピングが各スイッチで使用される異なる鍵のためネットワークの各スイッチで異なることが可能になる。
可能なフローIDの数は、ネットワークのECMPパスの数をかなり超えてもよいことが想定され得る。例えば、フローIDが12ビットの長さである場合、4096のオーダーの可能なフローIDが存在することが想定される。これらは、ネットワークのフローに割り当てられてもよく、4096の値の異なるセットへのマッピング関数を使用してマッピングされる。しかし、所与の宛先への4096個の等コストパスが存在する可能性は低い。従って、エントロピー保存マッピング関数は、候補出力ポートの数より大きい数の出力を生成するため、マッピングは、異なる出力の数を候補出力ポートの数に等しくなるように圧縮する圧縮関数を更に有する。圧縮関数は、プロトタイプのマッピングの疑似ランダム性を保持するようになるべきである。各ノードのエントロピー保存マッピング関数は、そのノードに関連する値に少なくとも部分的に基づくため、全てのノードに共通する標準的な圧縮関数の使用は、エントロピー保存マッピング関数の使用に関連するリンク分配のランダム性を維持する。
図3A及び3Bは、マッピングの出力A-Hのそれぞれを3つの出力ポートのセットにマッピングするために同じ圧縮関数が使用される例を示している。図3A及び3Bに示すように、マッピング関数の出力A、E及びHはポート1に圧縮され、マッピング関数の出力B及びFはポート2に圧縮され、マッピング関数の出力C、D及びGはポート3に圧縮される。従って、図3A及び3Bの双方において、出力値のセットを出力ポートの候補セットに低減するために、同じ圧縮が使用されている。しかし、マッピングの間に導入されたエントロピーのため、共通の圧縮関数の使用は、入力(1-8)の異なるセットが出力ポートのそれぞれにマッピングされることを可能にする。特に図3Aに示すように、第1のノードによるマッピング関数の実行に含まれる鍵(鍵1)は、入力フロー3、6及び7がポート1にマッピングされることを可能にし、フロー1及び4がポート2にマッピングされることを可能にし、フロー2、5及び8がポート3にマッピングされることを可能にする。図3Bでは、異なる鍵(鍵2)が使用され、フロー2、4及び7がポート1にマッピングされ、フロー5及び8がポート2にマッピングされ、フロー1、3及び6がポート3にマッピングされる。これらの図面に示すように、共通の圧縮関数の使用は、ネットワークの複数のノードが共通の圧縮関数を使用し得るように、マッピングにおいて導入されたエントロピーが出力ポートの選択に関して保存されることを可能にする。
マッピング例について、以下に詳細に説明する。以下の説明では、xがフローIDを示し、fがプロトタイプのマッピングを示し、nがスイッチの鍵を示し、fnが鍵が掛けられたマッピングを示し、fn(x)が圧縮関数の適用前のマッピングされたフローIDを示す。マッピングされたフローIDへの圧縮関数の適用は、出力ポートの候補の中からどの出力ポートがパケットを転送するために使用されるかを判定する。
好ましくは、候補のプロトタイプのマッピングは、異なる鍵を使用するスイッチのいずれかの対が、いずれのフローIDをも同じ値にマッピングしないエントロピー保存マッピングをインスタンス化するように構成されるべきである。一実施例によれば、フローIDに存在し得るパターンを乱すようにフローIDをランダム化するために、指数に基づくマッピングが使用される。他のマッピングが使用されてもよいが、指数に基づくマッピングの使用は、多くの用途で適切な結果を提供する。同様に、所望の特徴のセットを示す結合関数を取得するために、それぞれが所望の特性を有する複数のマッピングを結合することも可能である。従って、異なる実施例は、ECMPネットワークにおいて等コストリンクへの決定論的なトラヒックの拡散を実現するために、異なるマッピングを使用して(すなわち、複数のエントロピー保存のプロトタイプのマッピング関数を結合することにより)構成されてもよい。
ノードがローカルのマッピングをインスタンス化するために鍵として使用し得る複数の可能なグローバルに固有の値が存在する。例えば、スイッチは、IS-ISスイッチID、SPBM(Shortest Path Bridging MAC)送信元ID(B-SA)又は固有性を保存する他の値の組み合わせ若しくはこれらの値の変換/組み合わせを使用してもよい。これらの値は、各マッピング関数がネットワークの特定のスイッチに固有になることを可能にするための、ノードマッピング関数の鍵として使用されてもよい。しかし、プロトタイプのマッピング関数(すなわち、使用されるアルゴリズム)は、所与のノードで使用される実際のマッピング関数がそのノードで使用される鍵の値により完全に指定されるように、全てのノードで同じである。鍵マテリアルがノードに固有の特性(すなわち、ノードID)に基づいて判定される例が提供されたが、他の実施例では、ECMP鍵マテリアルは、管理システムにより提供されたプログラム値、スイッチでランダムに生成されたプログラム値、又は固有の識別子(例えば、システムIDのハッシュ又はSPBM SPSourceID)から導出されたプログラム値でもよい。更に、同じ鍵マテリアルを利用するネットワークのノードが存在しないことが重要であると考えられる用途では、各ノードが他のノードで使用されている鍵を学習することを可能にするため、及びルーティング領域内の相互のノードが固有の鍵マテリアルを使用していることを確保するため、ノードは、リンクステートルーティングシステムを使用して鍵マテリアルを広告してもよい。
理論的には望ましいが、鍵の固有性は絶対的に必要であるとは限らない。例えば、実用性の観点から、この方法は、2つのスイッチが同じ鍵を使用する可能性が比較的低く保持される限り、適切に実行する。
<アルゴリズムの例>
以下の説明では、フローIDは小さい整数であり、おそらく24ビットより大きくなく、8又は16ビットである可能性が高いことが想定される。並び替えサイズは、2の累乗(例えば、28、216)又はその近くでもよい。各スイッチは、固有の疑似ランダムな並び替え又は疑似の並び替えを割り当てられる。これに関して、パスの2つのスイッチが同じマッピングを使用する不健全な場合を回避することが重要である。スイッチマッピング関数は、小さい(<64ビット)(高い確率で)固有の整数で一般関数に鍵を掛けることにより構成される。全てのスイッチで同じでもよい圧縮関数も使用されてもよい。鍵の認識を前提とし、取り決めがリンクの番号に採用されている(例えば、各リンクのエンドポイントのブリッジ識別子に従ってECMP候補出力ポートを並び替える)ことを前提として、全てのスイッチでの同じエントロピー保存関数と全てのスイッチでの同じ圧縮関数との使用の組み合わせは、ネットワーク動作を完全に予測可能にする。
以下の説明では、フローIDは小さい整数であり、おそらく24ビットより大きくなく、8又は16ビットである可能性が高いことが想定される。並び替えサイズは、2の累乗(例えば、28、216)又はその近くでもよい。各スイッチは、固有の疑似ランダムな並び替え又は疑似の並び替えを割り当てられる。これに関して、パスの2つのスイッチが同じマッピングを使用する不健全な場合を回避することが重要である。スイッチマッピング関数は、小さい(<64ビット)(高い確率で)固有の整数で一般関数に鍵を掛けることにより構成される。全てのスイッチで同じでもよい圧縮関数も使用されてもよい。鍵の認識を前提とし、取り決めがリンクの番号に採用されている(例えば、各リンクのエンドポイントのブリッジ識別子に従ってECMP候補出力ポートを並び替える)ことを前提として、全てのスイッチでの同じエントロピー保存関数と全てのスイッチでの同じ圧縮関数との使用の組み合わせは、ネットワーク動作を完全に予測可能にする。
ネットワークのノードに対して同じ関数及び同じ圧縮処理を使用させることにより、(ノードでエントロピー保存マッピング関数をインスタンス化するために各ノードで使用された鍵マテリアルの認識を前提として)どのようにフローがネットワークを通じてルーティングされるかを判定することが可能になる。このことは、トラヒックパターンが測定により学習されることを必要とするのではなく、モデリングを通じたデータトラヒックパターンの予測を可能にする。従って、目標は、ネットワークのトラヒック動作をモデル化する機能を保持するために実際のランダム性を使用せずに、広い範囲の等コストリンクを通じてトラヒックを分配するために十分にランダムに動作する関数を見つけることである。
実施例によれば、スイッチは、ファミリ(同類)のいずれか2つのマッピングが十分に無相関になるように、並び替え又は単射(injection)のような異なるエントロピー保存マッピングを使用すべきである。一実施例では、入力セットを出力セットにマッピングするために使用されるマッピング関数は、単射である。すなわち、いずれか2つの異なる入力は、異なる出力にマッピングされる。更に、エントロピー保存のプロトタイプのマッピング関数は、異なるランダムな鍵マテリアルを使用したマッピング関数の2つのインスタンスが、有意義に/明白に相互に直接的に相関しない異なるマッピングを生じるという望ましい特性を有するべきである。
好ましい実施例では、エントロピー保存マッピング関数の2つの異なるインスタンスは、同じフローIDを異なるスイッチの同じ値にマッピングするべきではない。同様に、マッピングは、例えばIS-ISを介してルーティングシステムにより任意選択で広告されてもよい小さい固有の識別子により識別可能であるべきである/鍵が掛けられるべきである。これは、IS-ISシステムID、SPBM SPSourceID(Shortest Path Bridging MAC Source ID)、新たな固有の識別子、又は固有性を保持するこれらのいずれかの組み合わせでもよい。或いは、鍵は提供されてもよく、ランダムに生成されてもよく、システムIDのハッシュのような固有の識別子から導出されてもよい。マッピングはまた、簡単な圧縮関数により後続された場合、疑似ランダム性を表すべきである。これは、小数の候補出力ポートの場合に特に重要である。
線形合同マッピング(linear-congruential mapping)に基づく並び替えは、共通のプロトタイプから鍵が掛けられた2つの異なるマッピングが決して同じ入力を同じ出力にマッピングしないような、簡単なエントロピー保存マッピングを生成することが分かる。線形合同の乱数生成は、前の乱数から連続する乱数を計算することにより動作する。例示的な線形合同マッピング関数は、xi+1=(Axi+C) MOD Mを使用して実装されてもよい。ただし、C及びMは互いに素である。
しかし、これらの簡単なマッピングのいくつかは、MODが圧縮関数として使用された場合に、特に小さい乗数ではランダム性から離れた特性を示す特性を示す。これに対して、冪剰余(modular exponentiation)に基づく更に強い疑似ランダム性の並び替えは、より良い性能を示す。例えば、フローIDが簡単な並び替えを使用して再編成された再編成後のフローIDの疑似ランダムな並び替えを適用することは、更にランダムに見える再編成を生じさせる。同様に、冪剰余のような良好な疑似ランダム関数を使用してフローIDを再編成し、各ノードにおいて、再編成された系列において異なるオフセットで始めることも可能である。更に複雑なエントロピー保存マッピングもまた、基本のマッピングと望ましい特性とを組み合わせることにより構成されてもよい。例えば、線形合同マッピングと冪剰余マッピングとの組み合わせは、双方の良好な特性を示すことが分かる。結果のマッピングは、冪剰余マッピングの良好な疑似ランダム性の特性と、線形合同マッピングの固有性の特性とを示す。
例えば、素数p及び原始根gとした場合、関数f(x)=gx mod pは、範囲1...p-1へのいずれかの連続するp-1の整数(すなわち、x...x+p-2)の1対1のマッピングである。特に、これは整数1...p-1の疑似ランダムな並び替えを生成する。同様に、関数h(x)=(gx mod p)-1は、整数0...p-2の疑似ランダムな並び替えを生成する。従って、冪剰余は、再編成されたフローIDをランダム化するために使用されてもよい。或いは、冪剰余は、冪剰余自体が各ノードで鍵を掛けられる更なるランダムな再編成を構成するために使用されてもよい。例えば、異なる原始根が各ノードで使用されてもよい。これは、共通の基本根の適切に選択された累乗としてノード特有の原始根を生成することにより容易に実現される。
表1(以下に示す)は、累乗を使用して生成されたものである。ただし、fn(x)=3^[(2n+1)x+n mod 2m] mod (2m+1)-1である。3x mod 17は0...15(又は1...16)を1...16にマッピングする点に留意すべきである。0...15への1...16のマッピングは必ずしも必要ではないが、多くの方法で行われてもよく(例えば、x→x mod 16、x→16-x等)、基礎となる並び替えの特性を変更しない。
フローIDが異なるビット数である場合、次に大きい(又は次に小さい)素数がその代わりに使用されてもよい。並び替えに選択された素数がフローIDの数よりわずかに小さい場合、結果のマッピングは不可逆であり、完全にはエントロピー保存ではない。素数がフローIDの数より大きい場合、最大のフローIDより大きい整数の像(image)に到達できないという事実を考慮して結果の系列が番号を付け替えられない限り、生成された値を表すために少なくとも1つの追加のビットが必要になる。例えば、フローIDが12ビットの長さである場合(m=12)、2m=4096であり、4096に最も近い大きい素数はp=4099である。4096、4097及び4098は入力セットにはならないため、これらの像は出力にはない。
・2^4098 mod 4099=1
・2^4097 mod 4099=2^4098/2 mod 4099=(1+4099)/2=2050
・2^4096 mod 4099=2050/2=1025
f(x)を0≦x≦4095について定義された関数であるとする。
・y=2^x mod 4099
・(f<1025)である場合、f(x)=y-2
・(1025<y<2050)である場合、f(x)=y-3
・その他の場合、f(x)=y-4
前述の関数は、整数0...4095の並び替えを生成する。
・2^4098 mod 4099=1
・2^4097 mod 4099=2^4098/2 mod 4099=(1+4099)/2=2050
・2^4096 mod 4099=2050/2=1025
f(x)を0≦x≦4095について定義された関数であるとする。
・y=2^x mod 4099
・(f<1025)である場合、f(x)=y-2
・(1025<y<2050)である場合、f(x)=y-3
・その他の場合、f(x)=y-4
前述の関数は、整数0...4095の並び替えを生成する。
表1において、簡単な線形合同の再編成x→(2n+1)x+n mod 2mは、双方の望ましい特性を結合するプロトタイプのマッピングを生成するために、冪剰余y→3y mod 2m+1と結合されている。表2は他の例を示しており、fn(x)=[((9n mod 2m)+1)*(33x mod (2m+1))-1] mod (2m+1)である。
いずれかの原始根は、適切に選択された指数を用いて他の原始根の累乗として表されてもよい。表2に示す例では、冪乗の基礎として使用される原始根は33=27である。
前述の並び替えは、ネットワークの各スイッチでフローIDを再編成するために使用され得る出力の数への入力の数の再編成を生じる。各スイッチは、再編成されたフローIDを取得し、スイッチに固有の方法でフローIDを更に再編成するために、その鍵を使用する。例えば、各スイッチは、鍵のゼロでない関数によるフローIDの再編成された系列の乗算が系列の循環シフトを生成するようにその鍵を使用してもよい。或いは、鍵マテリアルは、各スイッチで冪剰余の基礎として使用される異なる原始根を選択するために使用されてもよい。鍵マテリアルを使用する他の方法も同様に実装されてもよい。
前述の説明は、並び替えが1行表記を使用して記述される例に関して提供されているが、例えば循環表記(cycle notation)のような他の表記も並び替えを表すために使用されてもよい。特に、循環表記は、一群の並び替えが基礎の並び替えの累乗により生成された場合に何が生じるかを視覚化する便利な方法を提供する。
並び替えの任意の累乗は、(循環表記系列の最後の要素が系列の最初の要素に戻ってマッピングするという取り決めにより)各要素が並び替えを通じたその像により後続される並び替えの循環表記を使用することにより、非常に効率的に計算されてもよい。循環表記では、並び替えの累乗sを行うことは、循環表記におけるsの要素だけ前にスキップすることに相当する。1行表記と循環表記との間の変換は容易である。並び替えの循環表記は並び替えのオーダーが並び替えの要素の数に等しいことを保証するため、並び替えの循環表記から始めることが可能である。
ここで、選択された形式の式f(x)=(2x+1) mod 11又は等しく反復(recurrence)c(0)=1,c(x+1)=c(x)+2に基づく例示的な並び替えを使用してこの処理を示す。これは、10桁の並び替えを規定する。この並び替えの循環表記は(0 1 3 7 4 9 8 6 2 5)であり、1行表記は(1 3 5 7 9 0 2 4 6 8)である。1行表記は、並び替えられた系列における並び替えの効果を示しているが、循環表記は、並び替えが繰り返し適用されるため、各要素が通過する循環を示している。より簡潔には、1行表記及び循環表記は、以下のようにまとめられてもよい。
One-line[x]=f(x)
Cycle[n+1]=f(Cycle[n]) ただし、Cycle[0]は並び替えられている要素のうち任意に選択されたものである
1行表記と循環表記との間を変換することは容易である。循環表記の最初(例えば、0)になる任意の要素を取得し、循環の残りの要素毎に、系列の前の像を調べるために1行表記を使用する。
Cycle[0]=0
Cycle[n+1]=One-line[Cycle[n]] ただし、n=1〜N
逆方向では、循環表記と1行表記との間を変換することは同様に容易である。
One-line[Cycle[n]]=Cycle[n+1]
同様に、並び替えの累乗sの1行表記は、その循環表記により与えられる。
One-line[Cycle[n]]=Cycle[n+s]
ただし、循環の最後で折り返しを実施するために注意が行われるべきである(すなわち、Cycleの長さでモジュロ演算することにより、インデックス化が行われる)。
One-line[x]=f(x)
Cycle[n+1]=f(Cycle[n]) ただし、Cycle[0]は並び替えられている要素のうち任意に選択されたものである
1行表記と循環表記との間を変換することは容易である。循環表記の最初(例えば、0)になる任意の要素を取得し、循環の残りの要素毎に、系列の前の像を調べるために1行表記を使用する。
Cycle[0]=0
Cycle[n+1]=One-line[Cycle[n]] ただし、n=1〜N
逆方向では、循環表記と1行表記との間を変換することは同様に容易である。
One-line[Cycle[n]]=Cycle[n+1]
同様に、並び替えの累乗sの1行表記は、その循環表記により与えられる。
One-line[Cycle[n]]=Cycle[n+s]
ただし、循環の最後で折り返しを実施するために注意が行われるべきである(すなわち、Cycleの長さでモジュロ演算することにより、インデックス化が行われる)。
従って、並び替えの1行表記又は循環表記が与えられた場合、並び替えの任意の累乗の1行表記又は循環表記が計算され得る。表3は、式f(x)=(2x+1) mod 11に基づく例示的な並び替えの連続する累乗を示している。最も上の行(行0)は、並び替えの第0の累乗に対応し、行1は並び替えの1行表記に対応する。更に一般的には、行nは、並び替えの第nの累乗の1行表記を示す。表の列(連続する累乗を示す最も左の列を除く)は、基礎の並び替えの異なる循環表記に対応する。
・並び替えは、比較的小さい整数(例えば、システムID)により鍵が掛けられる。
・2つの並び替えは、同じ入力を同じ出力にマッピングしない。
・簡単な圧縮関数(例えば、mod)と結合された場合、マッピングは良好なランダム性の特性を有する。
これらの並び替えの集合は、(非常に大きい)ラテン方陣を生成するため、疑似グループ(quasigroup)の乗算テーブルとして見なされてもよい。この文脈におけるラテン方陣は、それぞれ各行及び各列にちょうど一度出現するn個のシンボルで埋められたn×nの配列である。特定のスイッチのマッピングは、乗算テーブルの行又は列により表される。前述の例は有限体に基づくが、同じ方法が疑似グループに当てはまる。鍵の特性は、フローIDのマッピングが反転できなければならないことである。
図4は、実施例に従ってECMPを実装するように構成され得る例示的なネットワークエレメントを示している。図4に示す例では、ネットワークエレメント10は、データプレーン20と制御プレーン22とを含む。他のアーキテクチャも同様に実装されてもよく、本発明は図4に示すように構成された実施例に限定されない。図4に示す実施例の特定の構成及び動作方法の説明は、どのように本発明が使用され得るか及び特定の場合に実装され得るかの一例を提供することのみを意図する。本発明は、通信ネットワークでプロトコルデータユニットを扱うように構成された如何なるネットワークエレメントに関しても、更に広く使用されてもよい。図4のネットワークエレメントは、エッジルータのようなエッジネットワークエレメント、ルータ/スイッチのようなコアネットワークエレメント、又は他の種類のネットワークエレメントとして使用されてもよい。図4のネットワークエレメントは、図1に関して前述した通信ネットワーク又は他の種類の有線/無線通信ネットワークのような通信ネットワーク上に実装されてもよい。
図4に示すように、ネットワークエレメントは、制御プレーン20とデータプレーン22とを含む。制御プレーン20は、1つ以上のCPU24を含む。各CPU24は、制御プレーンソフトウェア26を実行しており、制御プレーンソフトウェア26は、例えば、1つ以上のルーティング処理28、ネットワーク動作管理及び制御ソフトウェア30、インタフェース生成/管理処理32、及びECMP処理34を含んでもよい。ECMP処理は、ルーティング処理と独立して実行されてもよく、ルーティング処理の一部として実装されてもよい。ECMP処理は、前述のようにフローのECMPポートを選択するために、エントロピー保存マッピング関数を適用する。或いは、以下に説明するように、ECMP処理は、制御プレーンではなく、データプレーンに実装されてもよい。
制御プレーンはまた、CPUにロードされた場合、制御プレーンソフトウェア26を実装する命令及びデータを含むメモリ36を含む。メモリは、ルーティング処理28により判定されたネットワークのトポロジについての情報を含むリンクステートデータベース38を更に含む。ECMP処理34は、宛先への1つより多くの実質的に等コストのパスが存在するか否かを判定するためにLSDBの情報を使用し、フローを選択されたパスに割り当てるために前述のマッピング関数を適用する。
データプレーン22は、データを送受信するために物理媒体40に接続するポート44を含むラインカード42を含む。物理媒体は、光ファイバケーブル又は電線を含んでもよい。或いは、物理媒体は、例えば、セルラ、802.11又は802.16無線通信標準の1つを使用して、無線通信チャネルとして実装されてもよい。図示の例では、ポート44は、ポートの交換を容易にするためにラインカード42上にサポートされているが、ポート44を実装する他の方法も同様に使用されてもよい。
データプレーン22は、ネットワーク処理ユニット(NPU:Network Processing Unit)46及びスイッチファブリック48を更に含む。NPU及びスイッチファブリック48は、データがポートの間で交換され、ネットワークエレメントがネットワークトラヒックをネットワークのその宛先に転送することを可能にすることを可能にする。好ましくは、NPU及びスイッチファブリックは、ネットワークエレメントによるトラヒックの転送に関連する待ち時間を最小化するために、制御プレーンからの相当な介入なしにデータパケット上で動作する。ラインカードからスイッチファブリックにトラヒックを指示することに加えて、NPUはまた、優先順位付け及びトラヒックのシェーピングのようなサービスが特定のトラヒックのフローで実装されることを可能にする。ラインカードは、ラインカードとNPUとの間で共有されるパケットを処理する機能を可能にするために、処理機能も同様に含んでもよい。当該技術分野において既知のように、ラインカード及びデータプレーンのどこかにより、複数の処理ステップが実装されてもよい。本発明の実施例の実装に関連する顕著な特徴の不明瞭性を回避するため、特定の実装に関連する詳細は図4に含まれていない。
一実施例では、フローIDを次ホップの出力ポートにマッピングするために必要な計算は、データプレーンに実装されてもよい。この実施例では、制御プレーンは、ノード特有の機能を設定してもよいが、転送の判定には関与しない。パケットが受信され、宛先への複数の等コストのパスが存在するという判定が行われた場合、パケットは、前述のアルゴリズムを使用して、フロー毎に等コストパスにマッピングされる。ECMPを実装するために必要な計算についての役目が制御プレーンとデータプレーンとの間で割り当てられる特定の方法は、特定の実装に依存する。
ECMPが実装される場合、ルーティングソフトウェア28は、それぞれの可能な宛先へのネットワークを通じた最短パスのツリーを計算するために、リンクステートデータベース38を使用する。転送情報は、データプレーンに渡され、転送情報ベースにプログラムされる。ECMP処理34は、フローを宛先への実質的に等コストのパスのそれぞれに割り当てるために、ECMPアルゴリズムを適用する。このようにフローを割り当てる1つの方法が図5に示されている。図5に示すように、ECMP処理は、ノード特有の鍵マテリアルをプロトタイプのマッピング関数に適用し、ノード特有のマッピング関数を生成する(100)。ECMP処理は、ノード特有のマッピング関数を可能な入力フロー識別子のセットに適用し、フロー識別子の再編成された系列を取得する(102)。この再編成された系列は、テーブル又はアルゴリズムとしてECMP処理にプログラムされてもよい(104)。最後に、ECMP処理は、マッピングされたフローIDを候補出力ポートのセットに割り当てるために、圧縮関数を適用する(106)。
前述の関数は、コンピュータ可読メモリに格納されてコンピュータプラットフォームの1つ以上のプロセッサで実行される一式のプログラム命令として実装されてもよい。しかし、ここに記載の全てのロジックは、別個の構成要素、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)のような集積回路、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)若しくはマイクロプロセッサのようなプログラム可能な論理デバイスと共に使用されるプログラム可能ロジック、状態機械、又はこれらのいずれかの組み合わせを含む他のデバイスを使用して具現されてもよい。プログラム可能ロジックは、読み取り専用メモリチップ、コンピュータメモリ、ディスク、又は他の記憶媒体のような有形の媒体に一時的又は永続的に固定されてもよい。全てのこのような実施例は、本発明の範囲内に入ることを意図する。
本発明の要旨及び範囲内で、図面に示す実施例及び明細書に記載の実施例の様々な変更及び変形が行われてもよいことが分かる。従って、前述の説明に含まれる全てのもの及び添付図面に示す全てのものは、限定的な意味ではなく、例示として解釈されるべきであることを意図する。本発明は、以下の特許請求の範囲及びその均等に規定されたもののみとして限定される。
Claims (48)
- パケットネットワークにおいてノードにより実質的に等コストのパスの間でパス選択を実行する方法であって、
前記ノードにより、固有の鍵マテリアルで鍵が掛けられたノード特有のエントロピー保存マッピング関数を可能な入力フロー識別子のセットに適用し、フロー識別子のノード特有の再編成された系列を取得するステップと、
前記フロー識別子のノード特有の再編成された系列を候補出力ポートのセットに割り当てるために圧縮関数を適用するステップと
を有する方法。 - 前記パケットネットワークの各ノードは、分散等コストマルチパス(ECMP)処理を実装するために、独立してパス選択を実行する、請求項1に記載の方法。
- 前記分散ECMP処理は、前記パケットネットワークの各ノードが、入力ポートで受信したパケット毎に、宛先への前記パケットネットワークを通じたパスにおける次のノードに送信するために、前記パケットを出力する適切な出力ポートを判定するように実装される、請求項2に記載の方法。
- ノード特有のエントロピー保存マッピング関数は、プロトタイプのエントロピー保存マッピング関数と前記固有の鍵マテリアルとにより完全に指定される、請求項1に記載の方法。
- 前記プロトタイプのエントロピー保存マッピング関数は、前記パケットネットワークの複数のノードで共通である、請求項4に記載の方法。
- 前記固有の鍵マテリアルと前記プロトタイプのエントロピー保存マッピング関数との認識により、前記パケットネットワークでのフロー割り当てが決定論的になるように、所与の入力フローIDについての出力パスの選択が判定可能になる、請求項4に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、所与のフローIDに関連するパケットについて常に同じ出力パスを選択するように一貫している、請求項4に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、同じ入口ノードから同じ出口ノードへの転送を必要とする異なるフローIDを有するパケットを、フローIDに従って、入口ノードと出口ノードとの間の異なる等コストパスの間で分配させる、請求項4に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、フローIDを出力ポートにほぼ均一に分配する、請求項4に記載の方法。
- 前記圧縮関数は、前記パケットネットワークの複数のノードで共通である、請求項1に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、異なる入力のセットが前記異なる入力のセットと同じ数の要素を有する異なる出力のセットにマッピングされる全単射である、請求項1に記載の方法。
- 出力への入力のマッピングは、1対1である、請求項11に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、異なる入力のセットが可能な異なる出力のより大きいセットにマッピングされ、異なる入力の数に対応する複数の異なる出力のみが使用される単射である、請求項1に記載の方法。
- 出力への入力のマッピングは、1対1である、請求項13に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、指数に基づくマッピングである、請求項1に記載の方法。
- 前記指数に基づくマッピング関数は、冪剰余である、請求項15に記載の方法。
- 前記指数に基づくマッピング関数は、f(x)=gx mod pの形式を有する、請求項16に記載の方法。
- 前記冪剰余は、各ノードで異なる原始根を使用して各ノードで鍵が掛けられ、pが素数冪であり、gは原始根である、請求項17に記載の方法。
- 前記ノード特有のエントロピー保存マッピング関数は、線形合同マッピング関数と組み合わされた指数に基づくマッピング関数である、請求項1に記載の方法。
- 前記固有の鍵マテリアルは、前記パケットネットワークに実装されたルーティングシステムを使用して広告される、請求項1に記載の方法。
- 前記固有の鍵マテリアルは、IS-ISシステム識別子、ノードMACアドレス、提供された値、及びこれらの組み合わせのうち少なくとも1つである、請求項1に記載の方法。
- パケット交換ネットワークを通じたパスでパケットを転送する方法であり、各パケットは、宛先アドレスとフロー識別子とを有し、前記パケット交換ネットワークは、ノードの少なくとも1つの対の間に複数の実質的に等コストのパスを有し、それぞれの実質的に等コストのパスは、前記実質的に等コストのパス上の各ノードにおいて対応する候補出力ポートを有する方法であって、
ノードで分岐する複数の等コストのパスを有する宛先アドレスを有するパケットについて、
前記パケットの前記宛先アドレスについて各パケットの前記フロー識別子を候補出力ポートの1つにマッピングすることにより、前記ノードで候補出力ポートを選択するステップであり、前記マッピングは、全ての可能なフロー識別子について、関数が同じフロー識別子に対してほとんど又は全ての他のネットワークノードの対応する関数により生成された値とは異なる値を生成するように、前記ノードに本質的に固有である第1の関数を有するステップを有し、
前記関数の出力セットは、候補出力ポートの数より大きく、前記マッピングは、前記第1の関数の前記出力セットを前記候補出力ポートに制限されたセットにマッピングする圧縮関数を更に有する方法。 - 前記パケットネットワークの各ノードは、分散等コストマルチパス(ECMP)処理を実装するために、パケット毎に候補出力ポートを選択するステップを独立して実行する、請求項22に記載の方法。
- 前記第1の関数は、線形合同マッピング関数と組み合わされた指数に基づくマッピングである、請求項22に記載の方法。
- 前記第1の関数は、プロトタイプのエントロピー保存マッピング関数と固有の鍵マテリアルとにより完全に指定される、請求項22に記載の方法。
- 前記プロトタイプのエントロピー保存マッピング関数は、前記パケットネットワークの複数のノードで共通である、請求項25に記載の方法。
- 前記固有の鍵マテリアルと前記プロトタイプのエントロピー保存マッピング関数との認識により、前記パケットネットワークでのフロー割り当てが決定論的になるように、所与の入力フローIDについての出力パスの選択が判定可能になる、請求項25に記載の方法。
- 前記第1の関数は、異なる入力のセットが前記異なる入力のセットと同じ数の要素を有する異なる出力のセットにマッピングされる全単射である、請求項22に記載の方法。
- 前記第1の関数は、異なる入力のセットが可能な異なる出力のより大きいセットにマッピングされ、異なる入力の数に対応する複数の異なる出力のみが使用される単射である、請求項22に記載の方法。
- 前記圧縮関数は、前記パケットネットワークの複数のノードで共通である、請求項22に記載の方法。
- パケット交換ネットワークを通じたパスでパケットを転送するシステムであり、各パケットは、宛先アドレスとフロー識別子とを有し、前記パケット交換ネットワークは、ノードの少なくとも1つの対の間に複数の実質的に等コストのパスを有し、それぞれの実質的に等コストのパスは、前記実質的に等コストのパス上の各ノードにおいて対応する候補出力ポートを有するシステムであって、
少なくとも1つのプロセッサと、
前記プロセッサを前記パケット交換ネットワークに結合するように動作可能な少なくとも1つのネットワークインタフェースと、
前記少なくとも1つのプロセッサにより実行される命令を格納するように動作可能なメモリと
を有し、
前記命令は、ノードで分岐する複数の等コストのパスを有する宛先アドレスを有するパケットについて、
前記パケットの前記宛先アドレスについて各パケットの前記フロー識別子を候補出力ポートの1つにマッピングすることにより、前記ノードで候補出力ポートを選択するように実行可能であり、前記マッピングは、全ての可能なフロー識別子について、関数が同じフロー識別子に対してほとんど又は全ての他のネットワークノードの対応する関数により生成された値とは異なる値を生成するように、前記ノードに本質的に固有である第1の関数を有し、
前記関数の出力セットは、候補出力ポートの数より大きく、前記マッピングは、前記第1の関数の前記出力セットを前記候補出力ポートに制限されたセットにマッピングする圧縮関数を更に有するシステム。 - 前記パケットネットワークの各ノードは、分散等コストマルチパス(ECMP)処理を実装するために、パケット毎に候補出力ポートを選択するステップを独立して実行する、請求項31に記載のシステム。
- 前記第1の関数は、線形合同マッピング関数と組み合わされた指数に基づくマッピングである、請求項31に記載のシステム。
- 前記第1の関数は、プロトタイプのエントロピー保存マッピング関数と固有の鍵マテリアルとにより完全に指定される、請求項31に記載のシステム。
- 前記プロトタイプのエントロピー保存マッピング関数は、前記パケットネットワークの複数のノードで共通である、請求項34に記載のシステム。
- 前記固有の鍵マテリアルと前記プロトタイプのエントロピー保存マッピング関数との認識により、前記パケットネットワークでのフロー割り当てが決定論的になるように、所与の入力フローIDについての出力パスの選択が判定可能になる、請求項34に記載のシステム。
- 前記第1の関数は、異なる入力のセットが前記異なる入力のセットと同じ数の要素を有する異なる出力のセットにマッピングされる全単射である、請求項31に記載のシステム。
- 前記第1の関数は、異なる入力のセットが可能な異なる出力のより大きいセットにマッピングされ、異なる入力の数に対応する複数の異なる出力のみが使用される単射である、請求項31に記載のシステム。
- 前記圧縮関数は、前記パケットネットワークの複数のノードで共通である、請求項31に記載のシステム。
- パケット交換ネットワークを通じたパスでパケットを転送するネットワークエレメントであり、各パケットは、宛先アドレスとフロー識別子とを有し、前記パケット交換ネットワークは、前記ネットワークエレメントと少なくとも1つの他のノードとの間に複数の実質的に等コストのパスを有し、それぞれの実質的に等コストのパスは、前記ネットワークエレメントにおいて対応する候補出力ポートを有するネットワークエレメントであって、
少なくとも1つのプロセッサと、
前記プロセッサを前記パケット交換ネットワークに結合するように動作可能な少なくとも1つのネットワークインタフェースと、
前記少なくとも1つのプロセッサにより実行される命令を格納するように動作可能なメモリと
を有し、
前記命令は、前記ネットワークエレメントで分岐する複数の等コストのパスを有する宛先アドレスを有するパケットについて、
前記パケットの前記宛先アドレスについて各パケットの前記フロー識別子を候補出力ポートの1つにマッピングすることにより、前記ネットワークエレメントで候補出力ポートを選択するように実行可能であり、前記マッピングは、全ての可能なフロー識別子について、関数が同じフロー識別子に対してほとんど又は全ての他のネットワークエレメントの対応する関数により生成された値とは異なる値を生成するように、前記ネットワークエレメントに本質的に固有である第1の関数を有し、
前記関数の出力セットは、候補出力ポートの数より大きく、前記マッピングは、前記第1の関数の前記出力セットを前記候補出力ポートに制限されたセットにマッピングする圧縮関数を更に有するネットワークエレメント。 - 前記パケットネットワークの各ネットワークエレメントは、分散等コストマルチパス(ECMP)処理を実装するために、パケット毎に候補出力ポートを選択するステップを独立して実行する、請求項40に記載のネットワークエレメント。
- 前記第1の関数は、線形合同マッピング関数と組み合わされた指数に基づくマッピングである、請求項40に記載のネットワークエレメント。
- 前記第1の関数は、プロトタイプのエントロピー保存マッピング関数と固有の鍵マテリアルとにより完全に指定される、請求項40に記載のネットワークエレメント。
- 前記プロトタイプのエントロピー保存マッピング関数は、前記パケットネットワークの複数のノードで共通である、請求項43に記載のネットワークエレメント。
- 前記固有の鍵マテリアルと前記プロトタイプのエントロピー保存マッピング関数との認識により、前記パケットネットワークでのフロー割り当てが決定論的になるように、所与の入力フローIDについての出力パスの選択が判定可能になる、請求項43に記載のネットワークエレメント。
- 前記第1の関数は、異なる入力のセットが前記異なる入力のセットと同じ数の要素を有する異なる出力のセットにマッピングされる全単射である、請求項40に記載のネットワークエレメント。
- 前記第1の関数は、異なる入力のセットが可能な異なる出力のより大きいセットにマッピングされ、異なる入力の数に対応する複数の異なる出力のみが使用される単射である、請求項40に記載のネットワークエレメント。
- 前記圧縮関数は、前記パケットネットワークの複数のノードで共通である、請求項40に記載のネットワークエレメント。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161443993P | 2011-02-17 | 2011-02-17 | |
US61/443,993 | 2011-02-17 | ||
PCT/US2012/025552 WO2012112834A2 (en) | 2011-02-17 | 2012-02-17 | Next hop computation functions for equal cost multi-path packet switching networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014509145A true JP2014509145A (ja) | 2014-04-10 |
Family
ID=46673189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013554624A Pending JP2014509145A (ja) | 2011-02-17 | 2012-02-17 | 等コストマルチパス・パケット交換ネットワークでの次ホップ計算関数 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP2676406A2 (ja) |
JP (1) | JP2014509145A (ja) |
KR (1) | KR20140059160A (ja) |
CN (1) | CN103430494A (ja) |
BR (1) | BR112013020722A2 (ja) |
CA (1) | CA2820765A1 (ja) |
WO (1) | WO2012112834A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015061470A1 (en) * | 2013-10-23 | 2015-04-30 | Harshavardha Paramasiviah | Internet protocol routing method and associated architectures |
GB201807835D0 (en) * | 2018-05-15 | 2018-06-27 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201808493D0 (en) * | 2018-05-23 | 2018-07-11 | Nchain Holdings Ltd | Computer-Implemented System and Method |
US11025534B2 (en) * | 2019-10-15 | 2021-06-01 | Cisco Technology, Inc. | Service-based node-centric ECMP health |
CN110837650B (zh) * | 2019-10-25 | 2021-08-31 | 华中科技大学 | 一种不可信网络环境下的云存储oram访问系统和方法 |
US11616726B2 (en) * | 2020-11-24 | 2023-03-28 | Juniper Networks, Inc. | End-to-end flow monitoring in a computer network |
CN113726660B (zh) * | 2021-08-27 | 2022-11-15 | 西安微电子技术研究所 | 一种基于完美哈希算法的路由查找器和方法 |
US20230269184A1 (en) * | 2022-02-22 | 2023-08-24 | Marvell Israel (M.I.S.L) Ltd. | Notification-based load balancing in a network |
CN114884868B (zh) * | 2022-05-10 | 2024-04-12 | 云合智网(上海)技术有限公司 | 基于ecmp组的链路保护方法 |
CN117792992B (zh) * | 2024-02-28 | 2024-05-07 | 鹏城实验室 | 数据传输路径控制方法、装置、介质及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636309B2 (en) * | 2005-06-28 | 2009-12-22 | Alcatel-Lucent Usa Inc. | Multi-path routing using intra-flow splitting |
CN100531134C (zh) * | 2006-05-17 | 2009-08-19 | 华为技术有限公司 | 一种实现多路径传输的方法、装置和系统 |
US8718060B2 (en) * | 2006-07-31 | 2014-05-06 | Cisco Technology, Inc. | Technique for multiple path forwarding of label-switched data traffic |
US8565239B2 (en) * | 2009-07-14 | 2013-10-22 | Broadcom Corporation | Node based path selection randomization |
-
2012
- 2012-02-17 WO PCT/US2012/025552 patent/WO2012112834A2/en active Application Filing
- 2012-02-17 KR KR1020137019192A patent/KR20140059160A/ko not_active Application Discontinuation
- 2012-02-17 JP JP2013554624A patent/JP2014509145A/ja active Pending
- 2012-02-17 EP EP12746891.6A patent/EP2676406A2/en not_active Withdrawn
- 2012-02-17 CA CA2820765A patent/CA2820765A1/en not_active Abandoned
- 2012-02-17 CN CN2012800049360A patent/CN103430494A/zh active Pending
- 2012-02-17 BR BR112013020722A patent/BR112013020722A2/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CA2820765A1 (en) | 2012-08-23 |
KR20140059160A (ko) | 2014-05-15 |
CN103430494A (zh) | 2013-12-04 |
BR112013020722A2 (pt) | 2016-10-18 |
WO2012112834A3 (en) | 2013-02-21 |
EP2676406A2 (en) | 2013-12-25 |
WO2012112834A2 (en) | 2012-08-23 |
WO2012112834A4 (en) | 2013-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130279503A1 (en) | Next Hop Computation Functions for Equal Cost Multi-Path Packet Switching Networks | |
JP2014509145A (ja) | 等コストマルチパス・パケット交換ネットワークでの次ホップ計算関数 | |
US8750820B2 (en) | Method and apparatus for selecting between multiple equal cost paths | |
KR101889574B1 (ko) | 최단 경로 브리징 네트워크 내의 부하 분산 | |
US8244909B1 (en) | Method, apparatus and networking equipment for performing flow hashing using quasi cryptographic hash functions | |
US10033641B2 (en) | Deterministic and optimized bit index explicit replication (BIER) forwarding | |
US9246810B2 (en) | Hash-based load balancing with per-hop seeding | |
US10153967B2 (en) | Deterministic and optimized bit index explicit replication (BIER) forwarding | |
US8665879B2 (en) | Flow based path selection randomization using parallel hash functions | |
EP2842278B1 (en) | Three stage folded clos optimization for 802.1aq | |
US8565239B2 (en) | Node based path selection randomization | |
US8085659B2 (en) | Method and switch for routing data packets in interconnection networks | |
Ren et al. | Flowtable-free routing for data center networks: A software-defined approach | |
Huang et al. | SCautz: a high performance and fault-tolerant datacenter network for modular datacenters |