特許第6383805号(P6383805)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許6383805プレフィックスアウェア加重コスト多重径路グループの減縮
<>
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000005
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000006
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000007
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000008
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000009
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000010
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000011
  • 特許6383805-プレフィックスアウェア加重コスト多重径路グループの減縮 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6383805
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】プレフィックスアウェア加重コスト多重径路グループの減縮
(51)【国際特許分類】
   H04L 12/709 20130101AFI20180820BHJP
   H04L 12/717 20130101ALI20180820BHJP
【FI】
   H04L12/709
   H04L12/717
【請求項の数】27
【全頁数】22
(21)【出願番号】特願2016-562804(P2016-562804)
(86)(22)【出願日】2015年4月3日
(65)【公表番号】特表2017-516387(P2017-516387A)
(43)【公表日】2017年6月15日
(86)【国際出願番号】US2015024217
(87)【国際公開番号】WO2015175110
(87)【国際公開日】20151119
【審査請求日】2016年11月11日
(31)【優先権主張番号】61/991,969
(32)【優先日】2014年5月12日
(33)【優先権主張国】US
(31)【優先権主張番号】14/643,712
(32)【優先日】2015年3月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】イェ,フェイ
(72)【発明者】
【氏名】リ,ジアンボ
(72)【発明者】
【氏名】リン,ビクター
(72)【発明者】
【氏名】マンダル,サブハスリー
【審査官】 菊地 陽一
(56)【参考文献】
【文献】 国際公開第2014/136853(WO,A1)
【文献】 特開2005−057487(JP,A)
【文献】 特開2006−165952(JP,A)
【文献】 米国特許第09246821(US,B1)
【文献】 米国特許出願公開第2016/0014036(US,A1)
【文献】 JUNLAN ZHOU; MALVEEKA TEWARI; MIN ZHU; ET AL,WCMP: Weighted Cost Multipathing for Improved Fairness in Data Center,EuroSys '14 Proceedings of the Ninth European Conference on Computer Systems,米国,2014年 4月14日,PAGE(S):1 - 14
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/709
H04L 12/717
(57)【特許請求の範囲】
【請求項1】
パケット交換機のために、転送テーブルを生成する方法であって、
パケット交換機の転送テーブルから、前記転送テーブル内の複数のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを特定するステップを備え、各ルーティングエントリは、前記パケット交換機の出口ポートを特定し、前記特定された多重経路グループは、予め定めされたエントリ数を超える数の転送エントリを有しており、
ネットワークトラフィックの重要度に相当するスコアを取得するステップと、
前記スコアに基づいて、前記複数の多重径路グループのうち1つ以上の多重径路グループのために、各多重径路グループに対応する前記複数のルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも1つのルーティングエントリ置換セットを生成するステップと、
トラフィック低減コストメトリックに基づいて、前記複数の多重径路グループのうち異なる多重径路グループに各々対応する1つ以上のルーティングエントリ置換セットを選択するステップとを備え、前記トラフィック低減コストメトリックは、前記対応するルーティングエントリ初期セットの代わりに、前記1つ以上のルーティングエントリ置換セットの各々を用いてもたらされるネットワーク性能の潜在変化の測定値を表わし、
選択された各ルーティングエントリ置換セットを用いて、前記パケット交換機の前記転送テーブルにおいて、前記選択されたルーティングエントリ置換セットに対応する各多重径路グループの前記ルーティングエントリ初期セットを置換するステップとを含む、方法。
【請求項2】
前記スコアは、前記トラフィック低減コストメトリックの一部である、請求項1に記載の方法。
【請求項3】
前記ルーティングエントリ置換セットの選択は、最大数のルーティングエントリよりも少ないルーティングエントリを有する置換セットを選択するステップを含み、
前記置換セット内の各ルーティングエントリは、異なるネットワーク径路に対応する、請求項1または2に記載の方法。
【請求項4】
前記最大数のルーティングエントリよりも少ないルーティングエントリを有する前記置換セットは、正確に2つのルーティングエントリを有する、請求項に記載の方法。
【請求項5】
ステートフルトランスポート層プロトコルを使用するネットワーク伝送の重要度は、ステートレストランスポート層プロトコルを使用するネットワーク伝送の重要度よりも高い、請求項1〜のいずれかに記載の方法。
【請求項6】
サイズ制限を超えるパケット流の重要度は、サイズ制限を超えていないパケット流の重要度よりも高い、請求項1〜のいずれか1項に記載の方法。
【請求項7】
特定のネットワークアドレス範囲に指定されたネットワークパケットの重要度は、前記特定のネットワークアドレス範囲外に指定されたネットワークパケットの重要度よりも高い、請求項1〜のいずれか1項に記載の方法。
【請求項8】
第1多重径路グループに対応して生成された第1ルーティングエントリ置換セットの重要度を、前記第1多重径路グループに対応して生成された第2ルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第1ルーティングエントリ置換セットを選択するステップとをさらに含む、請求項1〜のいずれか1項に記載の方法。
【請求項9】
第1多重径路グループに対応して生成された第1ルーティングエントリ置換セットの重要度を、第2多重径路グループに対応して生成された第2ルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第1ルーティングエントリ置換セットを選択するステップとをさらに含む、請求項1〜のいずれか1項に記載の方法。
【請求項10】
第1複数の多重径路グループに各々対応して生成された第1複数のルーティングエントリ置換セットの重要度を、第2複数の多重径路グループに各々対応して生成された第2複数のルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第1複数のルーティングエントリ置換セットを選択するステップとをさらに含む、請求項1〜のいずれか1項に記載の方法。
【請求項11】
前記ルーティングエントリ置換セットを用いて前記ルーティングエントリ初期セットを置換するステップは、少なくとも所定量で前記転送テーブル内のルーティングエントリの個数を減少させる、請求項1〜10のいずれか1項に記載の方法。
【請求項12】
前記ルーティングエントリ置換セットの選択は、重要度と、前記ルーティングエントリ置換セットが選択されたときのネットワークの容量損失とに基づいて行われる、請求項1〜11のいずれか1項に記載の方法。
【請求項13】
前記パケット交換機は、ソフトウェア定義ネットワーク(SDN)の一部であり、
前記ルーティングエントリ置換セットを用いて、前記ルーティングエントリ初期セットを前記パケット交換機の前記転送テーブルにおいて置換するステップは、SDN制御装置からの指示を前記パケット交換機に伝送するステップを含む、請求項1〜12のいずれか1項に記載の方法。
【請求項14】
システムであって、
転送テーブルを有するパケット交換機と、
前記パケット交換機のルートマネージャとを含み、
前記ルートマネージャは、
前記転送テーブル内の複数のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを前記転送テーブルから特定し、各ルーティングエントリは、前記パケット交換機の出口ポートを特定し、前記特定された多重経路グループは、予め定められたエントリ数を超える数の転送エントリを有しており、
ネットワークトラフィックの重要度に相当するスコアを取得し、
前記スコアに基づいて、前記複数の多重径路グループのうち1つ以上の多重径路グループのために、各多重径路グループに対応する前記複数のルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも1つのルーティングエントリ置換セットを生成し、
トラフィック低減コストメトリックに基づいて、前記複数の多重径路グループのうち異なる多重径路グループに各々対応する1つ以上のルーティングエントリ置換セットを選択し、前記トラフィック低減コストメトリックは、前記対応するルーティングエントリ初期セットの代わりに、前記1つ以上のルーティングエントリ置換セットの各々を用いてもたらされるネットワーク性能の潜在変化の測定値を表わし、
選択された各ルーティングエントリ置換セットを用いて、前記転送テーブルにおいて、前記選択されたルーティングエントリ置換セットに対応する各多重径路グループの前記ルーティングエントリ初期セットを置換するように構成される、システム。
【請求項15】
前記スコアは、前記トラフィック低減コストメトリックの一部である、請求項14に記載のシステム。
【請求項16】
前記ルートマネージャは、最大数のルーティングエントリよりも少ないルーティングエントリを有する置換セットを選択することによって、ルーティングエントリ置換セットを選択するように構成され、
前記置換セット内の各ルーティングエントリは、異なるネットワーク径路に対応する、請求項14または15に記載のシステム。
【請求項17】
前記最大数のルーティングエントリよりも少ないルーティングエントリを有する前記置換セットは、正確に2つのルーティングエントリを有する、請求項16に記載のシステム。
【請求項18】
ステートフルトランスポート層プロトコルを使用するネットワーク送信の重要度は、ステートレストランスポート層プロトコルを使用するネットワーク送信の重要度よりも高い、請求項14〜17のいずれか1項に記載のシステム。
【請求項19】
サイズ制限を超えるパケット流の重要度は、サイズ制限を超えていないパケット流の重要度よりも高い、請求項14〜17のいずれか1項に記載のシステム。
【請求項20】
特定のネットワークアドレス範囲に指定されたネットワークパケットの重要度は、前記特定のネットワークアドレス範囲外に指定されたネットワークパケットの重要度よりも高い、請求項14〜17のいずれか1項に記載のシステム。
【請求項21】
前記ルートマネージャは、さらに、
第1多重径路グループに対応して生成された第1ルーティングエントリ置換セットの重要度を、前記第1多重径路グループに対応して生成された第2ルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第1ルーティングエントリ置換セットを選択するように構成される、請求項14〜17のいずれか1項に記載のシステム。
【請求項22】
前記ルートマネージャは、さらに、
第1多重径路グループに対応して生成された第1ルーティングエントリ置換セットの重要度を、第2多重径路グループに対応して生成された第2ルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第1ルーティングエントリ置換セットを選択するように構成される、請求項14〜17のいずれか1項に記載のシステム。
【請求項23】
前記ルートマネージャは、さらに、
第1複数の多重径路グループに各々対応して生成された第1複数のルーティングエントリ置換セットの重要度を、第2複数の多重径路グループに各々対応して生成された第2複数のルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第1複数のルーティングエントリ置換セットを選択するように構成される、請求項14〜17のいずれか1項に記載のシステム。
【請求項24】
前記ルートマネージャは、前記ルーティングエントリ置換セットを用いて前記ルーティングエントリ初期セットを置換することによって、少なくとも所定量で前記転送テーブル内のルーティングエントリの個数を減少させるように構成される、請求項14〜23のいずれか1項に記載のシステム。
【請求項25】
前記ルーティングエントリ置換セットの選択は、重要度と、前記ルーティングエントリ置換セットが選択されたときのネットワークの容量損失とに基づいて行われる、請求項14〜24のいずれか1項に記載のシステム。
【請求項26】
前記パケット交換機は、ソフトウェア定義ネットワーク(SDN)の一部であり、
前記ルートマネージャは、SDN制御装置の一部であり、
前記SDN制御装置は、前記パケット交換機に指示を伝送することによって、前記ルーティングエントリ置換セットを用いて、前記パケット交換機の前記転送テーブルにおいて、前記ルーティングエントリ初期セットを置換するように構成される、請求項14〜25のいずれか1項に記載のシステム。
【請求項27】
1以上のプロセッサに実行されることによって、請求項1〜13のいずれか1項に記載の方法を前記1以上のプロセッサに実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2015年3月10日に出願され、「プレフィックスアウェア加重コスト多重径路グループの減縮」と題された米国特許出願第14/643712号の利益および優先権を主張する。前述の米国特許出願は、2014年5月12日に出願され、「プレフィックスアウェア加重コスト多重径路グループの減縮」(Prefix-Aware Weighted Cost Multi-Path Group Reduction)と題された米国仮出願番号第61/991969号の優先権を主張する。両方の出願の全体が引用により本明細書に援用される。
【背景技術】
【0002】
背景
情報は、1つ以上の相互接続されたネットワーク内に位置する1つのネットワーク装置から別のネットワーク装置、すなわち、交換機を通過するネットワークパケットの形で、コンピュータシステムの間に伝送される。各ネットワーク装置は、受信したパケットをパケットヘッダ情報によって指定された目的地に転送する。目的アドレスは、第三者によって制御される別のネットワークに位置する装置のアドレスであってもよく、パケットは、送信元と目的地との間に位置する任意数の異なるネットワークを通過してもよい。
【0003】
一部のネットワーク装置、代表的に交換機は、転送テーブルに割り当てられたメモリを有する。ネットワーク装置は、パケットを受信するときに、転送テーブル内の情報を用いて、受信したパケットの処理を決定することができる。例えば、転送テーブルは、ルーティングエントリを含み、このルーティングエントリは、ネットワーク目的地までの経路に沿って次の中継点に接続される出力ポートを特定することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一部のネットワーク構成において、1つのネットワーク装置から特定のネットワーク目的地までに、複数の可能な経路が存在する可能性がある。同等コスト多重径路(ECMP)ルーティングによって、転送テーブルは、複数の径路の各々のために、ルーティングエントリを含むことができる。よって、ECMPをサポートする交換機は、ネットワークトラフィックをECMPルートセット内の複数のルートに分散することができる。加重コスト多重径路(WCMP)ルーティングによって、多重径路セット内の複数の可能な径路の一部を同一セット内の他の径路よりも多く使用することができる。しかしながら、WCMPルーティングセットのルーティングエントリは、転送テーブルに割り当てられたメモリの多くを消費してしまうことがある。
【課題を解決するための手段】
【0005】
概要
一局面において、本開示は、パケット交換機のために、転送テーブルを生成する方法に関する。この方法は、パケット交換機の転送テーブルから、転送テーブル内のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを特定するステップと、複数の多重径路グループのうち1つ以上の多重径路グループのために、各多重径路グループに対応するルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも1つのルーティングエントリ置換セットを生成するステップと、トラフィック低減コストメトリックに基づいて、複数の多重径路グループのうち異なる多重径路グループに各々対応する1つ以上のルーティングエントリ置換セットを選択するステップと、選択された各ルーティングエントリ置換セットを用いて、パケット交換機の転送テーブルにおいて選択されたルーティングエントリ置換セットに対応する各多重径路グループのルーティングエントリ初期セットを置換するステップとを含む。いくつかの実現例において、トラフィック低減コストメトリックは、第1トラフィック特性を含む。
【0006】
別の局面において、本開示は、システムに関する。システムは、転送テーブルを有するパケット交換機と、パケット交換機のルートマネージャとを含む。ルートマネージャは、転送テーブル内のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを転送テーブルから特定し、複数の多重径路グループのうち1つ以上の多重径路グループのために、各多重径路グループに対応するルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも1つのルーティングエントリ置換セットを生成し、トラフィック低減コストメトリックに基づいて、複数の多重径路グループのうち異なる多重径路グループに各々対応する1つ以上のルーティングエントリ置換セットを選択し、選択された各ルーティングエントリ置換セットを用いて、転送テーブルにおいて、選択されたルーティングエントリ置換セットに対応する各多重径路グループのルーティングエントリ初期セットを置換するように構成される。いくつかの実現例において、トラフィック低減コストメトリックは、第1トラフィック特性を含む。いくつかの実現例において、パケット交換機は、ソフトウェア定義ネットワーク(SDN)に加入し、ルートマネージャは、パケット交換機のSDN制御装置の一部である。
【0007】
本開示の上記および関連する目的、特徴および利点は、以下の図面と併せて、以下の詳細な説明を参照することによって、より完全に理解されるであろう。同様の参照番号および名称は、さまざまな図面において同様の要素を示す。
【図面の簡単な説明】
【0008】
図1】例示的なネットワークを示すブロック図である。
図2】例示的なネットワーク装置を示すブロック図である。
図3A】例示的な転送テーブルを示すブロック図である。
図3B】例示的な転送テーブルを示すブロック図である。
図3C】例示的な転送テーブルを示すブロック図である。
図4】プレフィックスアウェアWCMPグループの減縮方法を示すフローチャートである。
図5】重要なネットワークトラフィックの伝送に使用されていない多重径路セット用のWCMPグループの減縮方法を示すフローチャートである。
図6】実現例に係るコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【0009】
詳細な説明
図1は、種々の相互接続点で互いに接続された複数の独立したネットワークから構成される例示的なネットワーク環境を示すブロック図である。図示のように、ローカルネットワーク110は、1つ以上の中間ネットワーク130を介して、目的ネットワーク150に接続する。ローカルネットワーク110は、ローカルネットワーク110のエッジに位置するネットワーク装置124および126を介して、中間ネットワーク130に接続する。これらの「エッジ」ネットワーク装置は、中継ネットワーク130を介して、図示された3つのネットワーク経路、径路「A」144、径路「B」146および径路「C」148に加入する。各径路144、146および148は、ネットワーク110、130および150を通って、目的ネットワーク150に位置する目的装置154に到達する別々のルートである。ローカルネットワーク110に位置するネットワーク装置122は、目的装置154のアドレスに指定されたパケットをエッジ装置124または126に転送することによって、このパケットを目的装置154に送達することができる。すなわち、ネットワーク装置122は、多重径路ルーティングを実現することができる。
【0010】
より詳細には、図1を参照して、ローカルネットワーク110は、さまざまなネットワーク装置122、124および126を含む。ローカルネットワーク110は、複数のコンピューティングシステム間の通信を容易にするための任意種類のデータネットワークであってもよい。ローカルネットワーク110に位置するネットワーク装置122は、ローカルネットワーク110に位置する他のネットワーク装置、例えばローカルネットワーク110のエッジに位置するネットワーク装置124および126にパケットを送信(伝送)することができ、そこからパケットを受信することができる。いくつかの実現例において、ローカルネットワーク装置110は、ソフトウェア定義ネットワーク(SDN)である。このSDNにおいて、1つ以上のネットワーク装置は、(図1に図示せず)SDN制御装置によって制御される。SDN制御装置によって制御されるネットワーク装置の一例は、図2に示されている。ネットワーク装置を実現するために使用することができるコンピュータシステムの一例は、図7に示されている。
【0011】
再び図1を参照して、エッジネットワーク装置124および126は、ローカルネットワーク110を他のネットワーク130に接続する。いくつかの実現例において、エッジ装置は、1つのネットワークに接続される1つのネットワークインターフェイスと、別のネットワークに接続される別のネットワークインターフェイスとを有する。これによって、「マルチホーム」装置は、両方のネットワークに加入することができる。いくつかの実現例において、エッジ装置は、ネットワーク相互接続、例えば第3者のインターネットエクスチェンジプロバイダ(IXP)によって提供された相互接続を介して、別のネットワークに位置するエッジ装置に接続する。エッジ装置124および126は、ローカルネットワーク110とネットワーク130との間のゲートウェイとして機能する。いくつかの実現例において、エッジ装置124および126は、境界ゲートウェイプロトコル(BGP)のようなルーティングプロトコルを実現する。ローカルネットワーク110内のパケットをローカルネットワーク110の外部に位置する目的装置154に伝送する場合、パケットは、ローカルネットワーク110からエッジ装置にルーティングされ、ネットワーク経路に沿って、目的装置154をホストする目的ネットワーク150に伝送される。図示されたエッジネットワーク装置124は、少なくとも2つの異なる経路、すなわち、経路「A」144および経路「B」146に加入して、中継ネットワーク130を介して、目的ネットワーク150に接続される。図示された別のエッジネットワーク装置126は、第3の異なる径路、すなわち、径路「C」148に加入して、中継ネットワーク130を介して、目的ネットワーク150に接続される。すなわち、ローカルネットワーク110から目的ネットワーク150までの間に、少なくとも3つの異なる経路が存在する。
【0012】
中継ネットワーク130は、複数のコンピューティングシステム間の通信を容易にするデータネットワークである。いくつかの実現例において、中継ネットワーク130は、例えば、自律システムにおいてローカルネットワーク110を制御するものと同一のものによって制御される。いくつかの実現例において、中継ネットワーク130は、第3者によって制御される。いくつかの実現例において、中継ネットワーク130は、キャリアネットワークである。いくつかの実現例において、ローカルネットワーク110から目的ネットワーク150に送信されるパケットは、複数の中継ネットワーク130を通過する。
【0013】
目的装置154は、ネットワークパケットを受信することができるコンピューティングシステムまたはネットワーク装置である。目的装置154は、目的ネットワーク150のネットワークアドレス空間に目的装置154を位置付けるための少なくとも1つのネットワークアドレスを有する。目的装置154は、ネットワークからパケットを受信することができる任意のコンピューティングシステムとすることができる。例えば、目的装置154は、目的ネットワーク150から受信した情報をコンピュータユーザに提供するように構成されたクライアント装置とすることができる。いくつかの実現例において、目的装置154は、サーバである。例えば、目的装置154は、オフサイト(off-site)データ記憶システムとすることができる。図7は、目的装置154を実現するために使用することができるコンピュータシステムの一例を示している。
【0014】
目的ネットワーク150は、複数のコンピューティングシステム間の通信を容易にする任意種類のデータネットワークとすることができる。いくつかの実現例において、目的ネットワーク150は、インターネットサービスプロバイダ(ISP)ネットワークである。
【0015】
ローカルネットワーク110、中継ネットワーク130および目的ネットワーク150の各々は、複数のコンピューティングシステム間の通信を容易にする任意種類のデータネットワークとすることができる。例えば、各ネットワーク110、130および/または150は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)または仮想ネットワークとすることができる。各ネットワークは、OSI物理層特性を有し、OSIリンク層プロトコル、例えばイーサネット(登録商標)を使用して動作する。各ネットワークは、図1に示されていない追加のネットワーク装置、例えば、ハブ、ブリッジ、交換機またはルータを含むことができる。ネットワーク110、130および/または150のいずれかは、ソフトウェア定義ネットワーク(SDN)とすることができる。
【0016】
いくつかの実現例において、すべてのネットワーク装置122、124、126および154は、異なるネットワーク内に配置されるの代わりに、同一のネットワークに含まれてもよい。例えば、すべての装置は、同一のソフトウェア定義データセンタネットワークに配置されてもよい。一部のデータセンタネットワークは、ラック状に配置された多数のサーバを含み、各々のサーバは、1つ以上のラック上部交換機を含む。サーバは、集約層交換機の1つ以上の層を介して、データセンタ内の他のサーバと通信する。このようなネットワークにおいて、一例として、データセンタ内のラック上部交換機は、複数の集約層交換機に連結され、多重径路ルーティングを用いて、ラック状に配置されたサーバから出力されたトラフィックをネットワークの所定の集約層に位置する複数の交換機に分散するように構成することができる。同様に、集約層交換機は、多重径路ルーティングを使用することもできる。
【0017】
図2は、制御リンク112によって分けられたソフトウェア定義ネットワーク制御装置220およびネットワーク装置230の一例を示すブロック図である。概略図において、SDN制御装置220は、制御モジュール242と、ネットワーク構成データおよびルーティングデータなどを格納するためのメモリ226とを含む。ネットワーク装置230は、制御モジュール244と、装置構成データおよびルーティングデータなどを格納するためのメモリ236とを含む。ネットワーク装置230は、転送エンジン234を含む。転送エンジン234は、メモリ236に格納された装置構成データおよびルーティングデータを用いて、ネットワークインターフェイス238のデータトラフィックを管理する。ネットワーク装置230は、図1に示されたネットワーク装置122、124および126のいずれか1つとして適切に使用されることができる。
【0018】
図2を参照して、より詳細には、SDN制御装置220は、制御モジュール242とメモリ226とを含む。制御モジュール242は、メモリ246に格納されたネットワーク構成データおよびルーティングデータを用いて、ネットワーク装置230を設定する。いくつかの実現例において、制御モジュール242は、周期的に、ステータス情報または利用可能性情報をネットワーク装置230に送信する。いくつかの実現例において、SDN制御装置220は、転送テーブルを生成し、生成された転送テーブルを1つ以上のネットワーク装置230に発行する。
【0019】
ネットワーク装置230は、制御モジュール244と、メモリ236とを含む。ネットワーク装置の制御モジュール244は、(制御リンク112を介して)SDN制御装置制御モジュール242から、構成情報およびルーティング情報を受信し、メモリ236に格納されたデータを更新する。
【0020】
ネットワーク装置230は、一連のネットワークインターフェイス238を含む。各ネットワークインターフェイス238は、データネットワークに接続することができる。例えば、ネットワーク装置230は、第1ネットワークインターフェイス(例えば、ネットワークインターフェイス238a)を介して、ネットワークのデータパケットを受信することができる。ネットワーク装置230は、別のインターフェイス(例えば、ネットワークインターフェイス238b)を介して、受信したデータパケットを次の適切な中継点に転送する。いくつかの実現例において、転送エンジン234は、各データパケットを受信する度に、使用するネットワークインターフェイス238を決定する。いくつかの実現例において、転送エンジン234は、メモリ236に格納された転送テーブルを使用して、使用するネットワークインターフェイス238を決定する。
【0021】
転送エンジン234は、メモリ236内の構成データおよびルーティングデータを用いて、ネットワークインターフェイスポート238のデータトラフィックを管理する。SDN制御装置220は、制御モジュール244を介して、メモリ236内の構成データおよびルーティングデータを制御する。いくつかの実現例において、転送エンジン234は、パケットをネットワークインターフェイス出口ポート238に転送する前に、パケットヘッダを更新する。例えば、転送エンジン234は、明示的輻輳通知(ECN)、中継点数(TTL)、またはパケットヘッダのチェックサム情報を更新することができる。
【0022】
メモリ226およびメモリ236の各々は、コンピュータ読み取り可能なデータの記憶に適する任意の装置であってもよい。例としては、EPROM、EEPROM、SRAMおよびフラッシュメモリ装置などの半導体メモリ装置を含むがこれらに限定されない。いくつかの実現例において、メモリ236には、三値連想メモリ(TCAM)である。いくつかの実現例において、ネットワーク装置230のメモリ236は、パケット流がネットワーク装置230を通過するときに、パケット流のバッファリングに使用される専用メモリを含む。ネットワーク装置230は、任意数のメモリ装置236を有してもよい。SDN制御装置220は、任意数のメモリ装置246を有してもよい。
【0023】
図3A、3Bおよび3Cは、ネットワーク装置によって使用され、パケットの出力ポートを特定することができる転送テーブルの例を示す図である。
【0024】
図3Aは、簡略化した転送テーブル310を示している。テーブル310内の各ルーティングエントリは、マッチパターン316および転送命令318を表す。マッチパターン316、例えば「パターンA」は、対応する転送命令318、例えば「径路Aに沿って転送」を使用して処理すべきパケットによって満たされる。いくつかの例において、マッチパターン316は、特定のネットワークまたは自律システムに転送されたすべてのパケットとマッチングする。例えば、マッチパターン316は、目的アドレスのパケットの一部とマッチングする。対応する転送命令318は、パターン316とマッチングするすべてのネットワークアドレスに向かうネットワーク経路に沿って、1つのネットワーク装置から次の中継ネットワーク装置への出力ポートを特定することができる。いくつかの例において、マッチパターン316は、特定の流れのパケットにマッチングする。図示された転送テーブル310内の各ルーティングエントリは、ルーティングエントリを一意に特定するインデックス312を有する。いくつかの実現例において、転送テーブルは、特定のインデックス312を有しない。
【0025】
図3Bは、インデックス332と、マッチパターン336と、転送命令338とを有する多重径路ルーティングテーブル330を示している。多重径路ルーティングテーブル330は、同様のパターン336、すなわち「パターンA」を有し、異なる転送命令338、すなわち「径路A」、「径路B」および「径路C」の各々に沿って転送する転送命令を有するルーティングルーティングエントリの多重径路セット342を含む。図示のテーブルは、追加の多重径路セット344および非多重径路ルーティングエントリ348をさらに含む。よって、同様の転送テーブル330は、多重径路ルーティングエントリおよび単一径路ルーティングエントリの両方に使用することができる。
【0026】
一般的に、同等コスト多重径路(ECMP)ルーティングは、目的地までの複数の径路を同等物として取り扱う。ネットワーク交換機は、複数の同等径路のいずれか1つを介して、トラフィックを同一の目的地に転送することができる。ECMPのいくつかの実現例において、同一の目的地用の複数のルーティングエントリが転送テーブル330に存在する場合、ネットワーク装置は、目的地に転送するトラフィックを複数の径路の間に分散する。トラフィックを分散できる方法がいくつある。例えば、ネットワーク装置は、単にルーティングエントリを反復することことによって、各パケットが別々の経路をとるようにすることができる。いくつかの実現例において、ネットワーク装置を通過する各々の新たなパケット流を特定の径路に割り当てる。この手法は、異なるパケット流を異なる径路に分散するとともに、単一のパケット流の異なるパケットを同一の径路に沿って送信する。そのような実現例の一部において、各パケットのヘッダ情報の一部をハッシュ化し、ハッシュ結果の最下位ビットを用いて、パケットのルーティングエントリ、例えばインデックス332を特定する。ヘッダ情報の部分は、同一のパケット流のパケットが同一のハッシュ値を生成するように、選択される。例えば、いくつかの実現例において、目的アドレスおよびプロトコル種類を示すヘッダビットは、ハッシュ化される。図3Bに示された多重径路転送テーブル330は、「パターンB」のマッチパターン336に対応する、2つの経路を有する多重径路セット344を含む。パケット流をセット344内の径路に分散する簡単例として、パターンBと一致したパケット流のパケットヘッダをハッシュ化することができる。この例において、ハッシュ値が偶数である場合、パターンBのインデックス「1344」を有するルーティングエントリを用いて、径路Dに沿ってパケットを送信する。ハッシュ値が奇数である場合、パターンBのインデックス「1345」を有するルーティングエントリを用いて、径路Eに沿ってパケットを送信する。
【0027】
なお、加重コスト多重径路(WCMP)ルーティングを使用して、他のルーティング経路よりも一部のルーティング径路を多く使用することもできる。WCMPを実現する1つの方法は、同様の経路を有する多重径路セットに追加のルーティングエントリを追加することである。たとえば、径路Dは、径路Eに比べて2倍の帯域幅容量を有するため、二倍に使用されるべきである。追加のエントリ(図示せず)を用いて、径路D(エントリインデックス「1344」)のマッチパターン336および転送命令338を反復するように、多重径路セット344を拡張することができる。これによって、ネットワークトラフィックが3つのルーティングエントリに分散される。よって、径路Eに比べて、径路Dを用いて、二倍のトラフィックを転送することができる。この加重コスト多重径路セットは、{Dx 2,Ex 1}または単に{2,1}として表すことができる。しかしながら、転送テーブル内の多重径路セットの拡張表示は、転送テーブルに割り当てられるメモリをかなり多く消耗する。
【0028】
図3Cは、加重ルーティングエントリを有する多重径路ルーティングテーブル350を示している。図示された多重径路ルーティングテーブル350は、インデックス352と、マッチパターン356と、転送命令358とを含む。多重径路ルーティングテーブル350は、同様のパターン356、すなわち「パターンA」を有し、3つの可能な転送命令358、すなわちサブセット364に対応する「径路A」、サブセット366に対応する「径路B」およびサブセット368に対応する「径路C」の各々に沿って転送する転送命令を有するルーティングルーティングエントリの多重径路セット362を含む。図示のテーブルは、図3Bのセット344およびセット348の各々に対応する追加の多重径路セット374および非多重径路ルーティングエントリ376をさらに含む。さらに図3Cを参照して、同様の転送テーブル350は、多重径路ルーティングエントリおよび単一径路ルーティングエントリの両方に使用することができる。
【0029】
図3Bおよび3Cは、径路の重みに小さな変化が転送テーブルに劇的な影響を与えることができることを示している。図3Bの多重径路セット342は、3つの径路A、BおよびC(例えば、図1に示された3つの径路144、146および148)に対応する。すべての径路は、互いに等しくなるように、各々が1/3=0.333・・・の重みを有する。図3Cの多重径路セット362は、同様の3つの径路A、BおよびCに対応するが、第3経路の重みがわずかに小さくなる。この重みの変化によって、径路Cは、径路Aまたは径路Bのいずれよりも三分の一より少ないトラフィックしか処理できない。図3Cに示された多重径路転送テーブル350は、径路Aに対応する3つのルーティングエントリ364、径路Bに対応する3つのルーティングエントリ366、径路Cに対応する2つのルーティングエントリ368を含む。換言すれば、径路Aおよび径路Bは、3/8=0.375の重みを有するが、径路Cは、2/8=0.250の重みを有する。しかしながら、多重径路テーブル350の多重径路セット362は、8つのエントリ{3,3,2}を使用するが、一方、多重径路テーブル330の多重径路セット342は、3つのみのエントリ{1,1,1}を使用する。
【0030】
図4は、プレフィックスアウェアWCMPグループの減縮方法400を示すフローチャートである。方法400は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する1つ以上の多重径路セット、例えば3つ以上のルーティングエントリを有する多重径路セットを各々特定する(ステップ410)。ルートマネージャは、特定された各多重径路セットのために、当該多重径路セットを介して伝送されたネットワークトラフィックの重要度に相当するスコアを取得する(ステップ420)。ルートマネージャは、取得されたスコアに基づいて、特定された各多重径路セットを置換する1つ以上の可能な置換セットを生成する(ステップ430)。ルートマネージャは、可能な置換セットを比較し(ステップ440)、テーブルエントリの減縮目標およびネットワークの性能基準を満たす1つ以上の可能な置換セットを選択する(ステップ450)。その後、ルートマネージャは、選択された置換セットのルーティングエントリを用いて、対応する1つ以上の多重径路セットのルーティングエントリを転送テーブルから置換する(ステップ460)。図2を参照して、いくつかの実現例において、ルートマネージャは、SDN制御装置220であり、または一部分としてSDN制御装置220に含まれる。
【0031】
図4を参照して、より詳細には、方法400は、最初に、ルートマネージャを用いて、最小数のルーティングエントリよりも多いルーティングエントリを有する1つ以上の多重径路セットを転送テーブルからを特定する(ステージ410)。例えば、ルーティングエントリの最小数が5である場合、6以上のエントリを有する多重径路セットが減縮対象となる。ルーティングエントリの最小数が2である場合、3つ以上のエントリを有する多重径路セットが減縮対象となる。ルートマネージャは、特定された多重径路セットによって使用されるテーブルにおけるエントリの数を減少する目的で、転送テーブルから多重径路セットを特定する。いくつかの実現例において、方法400は、周期的に実行される。いくつかの実現例において、方法400は、転送テーブルが閾値を超えるエントリで飽和されたときに、実行される。いくつかの実現例において、方法400は、管理者によって開始される。
【0032】
ルートマネージャは、特定された各多重径路セットのために、当該多重径路セットを介して伝送されたネットワークトラフィックの重要度に相当するスコアを取得する(ステップ420)。いくつかの実現例において、このスコアは、トラフィック低減コストメトリックの一部である。いくつかの実現例において、ルートマネージャは、伝送されたパケットの種類に基づいて、スコア(「重要度スコア」)を維持する。いくつかの実現例において、特定のプロトコルを使用するパケット流は、他のパケット流よりも重要であると考えられる。例えば、いくつかの実現例において、ステートフルトランスポート層プロトコルを使用するネットワーク伝送は、ステートレストランスポート層プロトコルを使用する伝送よりも重要であると考えられる。ステートフルトランスポート層プロトコルの例としては、伝送制御プロトコル(TCP)、データグラム輻輳制御プロトコル(DCCP)およびストリーム制御伝送プロトコル(SCTP)を含むが、これらに限定されない。ステートレストランスポート層プロトコルの例としては、ユーザデータグラムプロトコル(UDP)が挙げられる。いくつかの実施形態において、サイズ制限を超えるパケット流は、他のネットワーク伝送よりも重要であると考えられる。いくつかの実施形態において、ソースおよび/または目的ネットワークアドレス(またはネットワークアドレスプレフィックス)を用いて、ネットワークトラフィックが重要であるか否かを特定する。いくつかの実現例において、特定のネットワークアドレスまたはネットワークアドレス範囲に指定されたネットワークパケットは、他のネットワーク伝送よりも高い重要度(または低い重要度)を有するると考えられている。いくつかの実現例において、重要度スコアは、一定の期間中に伝送されたネットワークトラフィックの重要度を測る変動スコアである。いくつかの実現例において、多重径路セットを介して伝送されたデータの量は、重要度スコアに影響を与える。いくつかの実現例において、重要度スコアは、重要度を示すブール値(Boolean value)である。いくつかの実現例において、重要度スコアは、数値である。
【0033】
次に、ルートマネージャは、得られたスコアに基づいて、特定された各多重径路のために、1つ以上の可能な置換セットを生成する(ステージ430)。いくつかの実現例において、多重径路セットが比較的低い重要度スコアを有する場合またはスコアによって当該多重径路セットが重要ではないことを示す場合、ルートマネージャは、図5に示された方法500を用いて、重要ではない多重径路セットに対応する最小セットの異なるルーティングエントリを選択する。いくつかの実現例において、加重コスト多重径路(WCMP)セットの場合、可能な置換セットは、当該WCMPセットを等価コスト多重径路(ECMP)セットに変換することによって、生成される。例えば、WCMPセット{4,4,2,1}は、{1,1,1,1}に平坦化されてもよい。いくつかの実現例において、WCMPセットの場合、当該セットから1つ以上のより低い重みを有する径路を削除する。例えば、WCMPセット{4,4,2,1}を{4,4,2}に変換し、さらに{4,4,2}を{2,2,1}に分解することができる。この手順をさらに繰り返して、例えば{1,2,2}を{1,1}に減少することができる。いくつかの実現例において、WCMPセットから1つ以上の径路を削除し、残りの径路をECMPセットに平坦化することによって、WCMPセットを変更する。得られたECMPセットにおいて、各経路は、一回しか現れない。例えば、WCMPセット{4,4,2,1}を{1,1,1}に減縮することができる。
【0034】
ルートマネージャは、可能な置換セットを比較し(ステップ440)、テーブルエントリの減縮目標およびネットワークの性能基準を満たす1つ以上の可能な置換セットを選択する(ステップ450)。各々の可能な置換セットは、対応する多重径路セットを置換するように使用される場合、使用された転送テーブルエントリの数を減少させる。また、各々の可能な置換セットは、対応する多重径路セットを置換するように使用される場合、ネットワーク性能が低下した多重径路セットを用いてネットワークトラフィックを提供する。例えば、多重径路セットから径路を削除する場合、削除された径路により貢献した帯域幅を用いて、トラフィックを転送することができなくなる。この損失は、他の要素によって相殺することができる。このネットワーク性能の潜在変化は、トラフィック低減コストメトリックとして測定される。
【0035】
いくつかの実現例において、ネットワーク性能の潜在変化は、ステップ420で得られた重要度スコアによって加重される。換言すれば、低重要度または中重要度のトラフィックは、ネットワーク性能上の特定の変更をより許容できるが、高重要度のトラフィックは、ネットワーク性能上の同様の変更を許容できない。
【0036】
ステップ440の比較は、同一の多重径路グループに対応するルーティングエントリの少なくとも2つの異なる置換セットの比較、少なくとも2つの異なる多重径路グループに対応するルーティングエントリの置換セットの比較、および複数の多重径路グループに各々対応するルーティングエントリの複数の置換セットの少なくとも2つの集合体の比較のうち、1つ以上を含むことができる。
【0037】
いくつかの実現例において、ルートマネージャは、可能性を比較し、ネットワーク性能に許容可能な低い影響を与える前提で、転送テーブル内の少なくとも目標個数のルーティングエントリを解放するように、1つ以上の可能な置換セットを選択する(ステップ450)。いくつかの実現例において、ルートマネージャは、テーブル減縮目標を達成するために、複数の多重径路セットの置換セットからなる組み合わせを使用する。いくつかの実現例において、ルートマネージャは、1つ以上の可能な置換セットを使用することによって生じ得る可能な帯域幅損失を算出し、計算結果を用いて、ステップ450で選択する可能な置換セットを決定する。いくつかの実現例において、ルートマネージャは、選択された1つ以上の可能な置換セットに起因する帯域幅の予想損失をネットワーク監視者に報告する。
【0038】
図1および3Cの例示を参照して、中継ネットワーク130を経由する図示の径路144、146および148は、1つの多重径路セットである。これらの径路は、多重径路転送テーブル350において、多重径路セット362、すなわち{3,3,2}として示される。径路A 144および径路B 146は、第1エッジ装置124を使用し、径路C 148は、第2エッジ装置126を使用する。2つのエッジ装置124および126は、異なる中継ネットワーク130に接続されてもよく、径路C 148を径路Aまたは径路Bよりも低い容量で動作させる他の実装特性を有してもよい。多重径路セット{3,3,2}は、多重径路転送テーブル350の8つのエントリを使用する。いくつかの実現例において、方法400は、第3経路、すなわち径路Cを捨てることによって、{3,3,2}の可能な置換セットとして{1,1}を生成することができる。この可能な置換セットは、多重径路転送テーブルの2つのエントリしか使わないため、6つのテーブルエントリを減らすことができる。しかしながら、径路Cの削除は、径路Cが寄与したネットワーク容量の損失を引き起こす。特に、多重径路セットから径路Cを削除した後、ルーティング選択肢の8分の2(25%)を寄与する径路Cが使用できなくなる。いくつかの実現例において、多重径路セットは、特定の多重径路セットを介して伝送されたトラフィックに関連付けられた重要度メトリックに対応する値を有する。例えば、いくつかの実現例において、重要度メトリックに対応する値は、ステップ420で得られた重要度スコアである。いくつかの実現例において、各可能な置換セットに、インパクトスコアを割り当てる。このインパクトスコアは、削除されたルーティング選択肢の割合で乗じた重要度メトリック値に等しい。{3,3,2}を{1,1}に減縮する例において、多重径路セットを介して伝送されたトラフィックが重要度Xを有すると仮定する場合、インパクトスコアは、0.25Xである。いくつかの実現例において、このインパクトスコアが、転送テーブルにおける多重径路グループの一部(またはすべて)の他の可能な減縮案のスコアと比較され、最も低いインパクトスコアを有する置換グループ(または置換グループの組み合わせ)が選択される。
【0039】
例示のシナリオとして、3つのWCMPセットは、グループG1、G2およびG3として表され、各グループは、4つのパターンP1、P2、P3およびP4のうち1つとマッチングするネットワーク流を搬送する。各パターンのネットワークトラフィックには、対応する重要度スコアC1=32、C2=3、C3=3、C4=8を付ける。パターンP1にマッチングしたネットワーク流は、多重径路セットG1、すなわち{2,2,2,1,1}のネットワークルートを使用し、パターンP2またはP3にマッチングしたネットワーク流は、多重径路セットG2、すなわち{3,3,2,2}のネットワークルートを使用し、パターンP4にマッチングしたネットワーク流は、多重径路セットG4、すなわち{3、3、3、1}のネットワークルートを使用する。このシナリオ例は、以下の表1に示される。3つのWCMPセット(G1、G2およびG3)を減縮する2つの例は、以下の表2および3に示される。表2の目的は、転送テーブルから少なくとも5つのエントリを解放することである。表3の目的は、転送テーブルから少なくとも12個のエントリを解放することである。
【0040】
【表1】
【0041】
以下に示す表2は、転送テーブルから少なくとも5つのエントリを解放することを目的とする減縮選択肢を示している。セット{1,1,1,1}を用いて、多重径路セットG1、すなわち{2,2,2,2,1,1}を置換することができる。これによって、2つの最小加重の経路が削除され、残りの径路が同等の径路と見なされる。その結果、10個のルーティング選択肢のうち2つのみを損失することで、転送テーブルから6つのエントリを解放することができる。ネットワークの重要度(すなわち、トラフィックを多重径路グループにルーティングするために使用されたパターンにマッチングしたネットワーク流の重要度スコアの合計)で、20%の容量損失を加重することによって、6.4という加重低減インパクトスコアを生成する。セット{1,1,1,1}を用いて、多重径路セットG2、すなわち{3,3,2,2}を置換することができる。これによって、すべての径路が保持され、すべての径路が同等の径路と見なされる。その結果、ルーティング選択肢の20%のみを損失することで、転送テーブルから6つのエントリを解放することができる。パターンP2にマッチングするトラフィックおよびパターンP3にマッチングするトラフィックの重要度で、20%の容量損失を加重することによって、1.2という加重低減インパクトスコアを生成する。セット{1,1,1}を用いて、多重径路セットG3、すなわち{3,3,3,1}を置換することができる。これによって、最小加重の経路が削除され、残りの径路が同等の径路と見なされる。その結果、ルーティング選択肢の10%のみを損失することで、転送テーブルから7つのエントリを解放することができる。加重低減インパクトスコアは、0.8であり、3つの選択肢のうち、最も低いインパクトスコアである。したがって、3つの選択肢のうち、3番目の置換選択を選択すべきである。
【0042】
【表2】
【0043】
以下に示す表3は、転送テーブルから少なくとも12個のエントリを解放することを目的とする減縮選択肢を示している。実現例1と同様にセット{1,1,1,1}またはさらに小さい多重径路セット{1,1,1}、{1,1}または{1}を用いて、多重径路セットG1、すなわち{2,2,2,2,1,1}を置換することができる。これによって、余分な経路が削除される。しかしながら、これらの置換選択のいずれかは、単独で、転送テーブルから12個のエントリを解放することができなかった。多重径路セットG2、すなわち{3,3,2,2}および多重径路セットG3、すなわち{3,3,3,1}の置換も同様である。しかしながら、最も低いインパクトスコアを有する2つの置換選択の組み合わせは、転送テーブルから13個のエントリを解放することができ、目的を達成する。いくつかの実現例において、転送テーブル内のエントリの使用数を目標数に減縮することができる単一の置換選択が存在しない場合、ルートマネージャは、目標数を2つ以上の部分に分割する。2つ以上の部分の合計は、元の目標数と等しい。例えば、転送テーブルからの12個のエントリを削除するという目的は、最初に6つのエントリを削除し、その後、残りの6つのエントリを削除することによって達成することができる。換言すれば、(12)という目標を(6,6)に分割する。いくつかの実現例において、複数の分割は、可能である。例えば、(6,6)、(7,5)、(8,4)、(4,4,4)、(5,4,3)などが挙げられる。表3に示した例において、6つのエントリを解放するような置換セットの検索が、G3を置換するセット{1,1,1}の選択をもたらし、残りの6つのエントリを解放するような置換セットの検索が、G2を置換するセット{1,1,1,1}の選択をもたらことになる。このようにして、置換セットの組み合わせは、転送テーブルから13個のエントリを減少し、12個のエントリを解放する目的を満たすことができる。
【0044】
【表3】
【0045】
いくつかの実現例において、徹底的な比較は、可能なすべての置換セット、または制約パラメータセット内のすべての可能な置換セットに対して、実行される。いくつかの実現例において、徹底的な比較は、候補置換セットとして生成された可能な置換セットのサブセットに限定される。例えば、いくつかの実現例において、多重径路置換セットの置換選択は、閾値よりも低い重要度スコアを有するトラフィックを伝送するために使用されるWCMPセットに対して、生成される。いくつかのこのような実現例において、閾値は、実行可能な置換選択が特定されるまで、増分で増加する。いくつかの実現例において、徹底的な比較は、置換セットの可能な組み合わせの比較を含む。例えば、表3に示された例において、置換セットの組み合わせを使用した。
【0046】
図4を参照して、その後、ルートマネージャは、選択された置換セットのルーティングエントリを用いて、対応する1つ以上の多重径路セットのルーティングエントリを転送テーブルから置換する(ステップ460)。いくつかの実現例において、ルートマネージャは、選択された多重径路置換セットを用いて、新たな転送テーブルを生成し、セットの置換を省略する。
【0047】
図5は、重要なネットワークトラフィックの伝送に使用されていない多重径路セット用のWCMPグループの減縮方法500を示すフローチャートである。方法400と同様に、方法500は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する多重径路セットを特定する(ステップ510)。ルートマネージャは、特定された多重径路セットが重要なネットワークトラフィックの伝送に使用されていないことを判断し(ステップ520)、多重径路セットに対応する最小セットの異なるルーティングエントリを選択する(ステップ530)。ルートマネージャは、多重径路セットのうち、選択されたルーティングエントリ以外のすべての他のルーティングエントリを転送テーブルから削除する(ステップ540)。
【0048】
図5を参照して、より詳細には、方法500は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する多重径路セットを特定し(ステップ510)、特定された多重径路セットが重要なネットワークトラフィックの伝送に使用されていないことを判断する(ステップ520)。これは、図4に示されたステップ410および420の特例である。これによって、転送テーブルにおいて最小数(例えば、2)のルーティングエントリよりも多いルーティングエントリを有する多重径路セットは、トラフィックを伝送しない径路セットまたは低い重要度のトラフィックを伝送する径路セットとして特定される。
【0049】
さらに図5を参照して、より詳細には、ルートマネージャは、多重径路セットに対応する最小セットの異なるルーティングエントリを選択する(ステップ530)。いくつかの実現例において、最小セットが2つの経路を有する。いくつかの実現例において、より大きな最小セットが使用される。ルートマネージャは、非同一の径路に対応するルーティングエントリを選択する。その結果、得られた多重径路置換セットは、径路多様性を有する。いくつかの実現例において、ルートマネージャは、最高加重値を有する非同一の径路を選択し、最小セットに入れる。いくつかの実現例において、ルートマネージャは、さまざまなルーティングエントリを削除または置換することによって生じ得る可能な帯域幅損失を計算し、帯域幅の減少許容レベルに関連するルーティングエントリを選択する。いくつかのそのような実現例において、選択は、帯域幅損失を最小化する。いくつかの実現例において、ルートマネージャは、選択された1つ以上の可能な置換セットに起因する帯域幅の予想損失をネットワーク監視者に報告する。いくつかの実現例において、ルートマネージャは、ランダムにまたは他の選択基準に従って、非同一の径路を選択する。いくつかの実現例において、ステップ530の選択は、図4に示された方法を参照して説明したステップ450の選択と同様である。
【0050】
さらに図5を参照して、ルートマネージャは、選択された異なるルートの最小セットを用いて多重径路ルートセットを置換することによって、転送テーブルを更新する(ステップ540)。ルートマネージャは、多重径路セットのうち、選択されたルーティングエントリ以外のすべての他のルーティングエントリを転送テーブルから削除する。
【0051】
図6は、本明細書に記載のコンピュータ化要素の実装に適するコンピューティングシステム910を示すブロック図である。概略図において、コンピューティングシステム910は、命令に応じて操作を実行するための少なくとも1つのプロセッサ950と、命令およびデータを記憶するための1つ以上のメモリ装置970および/または975とを含む。図示の例において、コンピューティングシステム910は、1つ以上のプロセッサ950を含み、1つ以上のプロセッサ950は、バス915を介して、メモリ970に接続し、外部のネットワーク装置924に接続するため、すなわち、ネットワーク(例えば、図1に示されたネットワーク110、130および150)に加入するために、バス915を介して、ネットワークインターフェイス922を有する少なくとも1つのネットワークインターフェイス制御装置920に接続する。また、1つ以上のプロセッサ950は、バス915を介して、1つ以上のI/Oインターフェイス930のI/O装置および他の装置980と連通する。図示されたプロセッサ950は、キャッシュメモリ975を含むまたはキャッシュメモリ975に直接に接続される。一般に、プロセッサは、メモリから受信した命令を実行する。
【0052】
より詳細には、プロセッサ950は、例えば、メモリ970またはキャッシュ975から得られた命令を処理する任意の論理回路であってもよい。多くの実施形態において、プロセッサ950は、マイクロプロセッサユニットまたは専用プロセッサである。コンピューティング装置910は、本明細書に記載されたように動作可能な任意のプロセッサまたは任意のプロセッサセットを基礎にして構成されてもよい。プロセッサ950は、シングルコアプロセッサであってもよく、マルチコアプロセッサであってもよい。プロセッサ950は、複数のプロセッサから構成されてもよい。
【0053】
メモリ970は、コンピュータ読み取り可能なデータの記憶に適する任意の装置であってもよい。メモリ970は、固定記憶容量を有する装置であってもよく、取り外し可能な記憶媒体を読み取るための装置であってもよい。例としては、すべての種類の非揮発性メモリ、媒体およびメモリ装置、半導体メモリ装置(例えば、EPROM、EEPROM、SDRAM、フラッシュメモリ装置)、磁気ディスク、光磁気ディスク、光ディスク(例えば、CD ROM、DVD−ROM、およびブルーレイ(登録商標)ディスク)を含む。コンピュータシステム910は、任意数のメモリ装置970を有してもよい。
【0054】
キャッシュメモリ975は、一般的に、高速な読み込みを得るために、プロセッサ950に近接して配置された一種のコンピュータメモリである。いくつかの実現例において、キャッシュメモリ975は、プロセッサ950の一部であるかまたはプロセッサ950と同一のチップに配置される。いくつかの実現例において、キャッシュ975は、複数のレベル、例えばキャッシュ層L2およびL3を有する。
【0055】
ネットワークインターフェイス制御装置920は、ネットワークインターフェイス922を介してデータの送受信を管理する。ネットワークインターフェイス制御装置920は、OSIモデルの物理層およびデータリンク層を操作して、ネットワーク通信を行う。いくつかの実現例において、ネットワークインターフェイス制御装置のタスクの一部は、プロセッサ950によって処理される。いくつかの実現例において、ネットワークインターフェイス制御装置920は、プロセッサ950の一部である。いくつかの実現例において、コンピュータシステム910は、複数のネットワークインターフェイス制御装置920を有する。いくつかの実現例において、ネットワークインターフェイス922は、物理ネットワークリンク、例えばRJ 45コネクタの接続点である。いくつかの実現例において、ネットワークインターフェイス制御装置920は、無線ネットワーク接続をサポートし、インターフェイスポート922は、無線受信機/送信機である。いくつかの実現例において、コンピューティング装置910は、一般的には、ネットワークインターフェイス922に接続される物理リンクまたは無線リンクを介して、他のコンピューティング装置924とデータの送受信を行う。いくつかの実現例において、ネットワークインターフェイス制御装置920は、イーサネット(登録商標)などのネットワークプロトコルを実現する。
【0056】
他のコンピューティング装置924は、ネットワークインターフェイスポート922を介して、コンピューティング装置910に接続される。他のコンピューティング装置924は、コンピューティング装置、ネットワーク装置またはネットワーク機能を有する他のコンピューティング装置のピアであってもよい。例えば、コンピューティング装置924は、コンピューティング装置910をデータネットワーク、例えばインターネットに接続するハブ、ブリッジ、交換機またはルータなどのネットワーク装置であってもよい。
【0057】
いくつかの用途において、I/Oインターフェイス930は、入力装置および/または出力装置(図示せず)をサポートする。いくつかの用途において、入力装置および出力装置は、同一のハードウェア、例えばタッチスクリーンに組み込まれる。いくつかの用途において、例えばサーバの場合、I/Oインターフェイス930を設けないまたはI/Oインターフェイス930を使用しない。いくつかの用途において、外部機器などの付加的な他の要素980は、例えばユニバーサルシリアルバス(USB)を介してコンピュータシステム910に接続される。
【0058】
他の装置980は、I/Oインターフェイス930、外部装置シリアルポートおよび追加のコプロセッサを含むことができる。例えば、コンピュータシステム910は、入力装置(例えば、キーボード、マイク、マウスまたは他のポインティング装置)、出力装置(例えば、ビデオディスプレイ、スピーカ、点字端末またはプリンタ)、または付加的なメモリ装置(例えば、携帯型フラッシュドライブまたは外部媒体ドライブ)を接続するためのインターフェイス(例えば、ユニバーサルシリアルバス(USB)インターフェイス)を含んでもよい。いくつかの実現例において、タブレット装置のタッチスクリーンのようなI/O装置は、コンピューティングシステム910に組み込まれる。いくつかの実現例において、コンピューティング装置910は、プロセッサ950の高精度または複雑な計算を補助することができるコプロセッサ、例えば数値演算コプロセッサのような付加的な装置980を含む。
【0059】
本明細書に記載の主題および操作は、本明細書に開示された構造物およびそれらの構造均等物を含むデジタル電子回路、もしくは有形媒体、ファームウェアまたはハードウェア上で具体化されたコンピュータソフトウェア、もしくはこれらの1種以上の組み合わせに実現することができる。本明細書に記載の主題は、有形媒体に上で具体化されたコンピュータプログラムとして、すなわち、データ処理装置によって実行されるためにまたはデータ処理装置の操作を制御するために、1つ以上のコンピュータ記憶媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダムまたはシリアルアクセスメモリアレイまたは装置、もしくは1つ以上のこれらの装置の組み合わせであってもよく、その中に含まれてもよい。コンピュータ記憶媒体は、1つ以上の別個の要素または媒体(例えば、複数のCD、ディスクまたは他の記憶装置)であってもよく、その中に含まれてもよい。コンピュータ記憶媒体は、有形且つ非一時的なものであってもよい。
【0060】
本明細書に記載の操作は、1つ以上のコンピュータ読み取り可能な記憶装置に記憶されたデータまたは他のソースから受信したデータに従って、データ処理装置によって実行されることができる。工程の流れおよび論理流れは、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装された装置によって実行されることができる。
【0061】
本明細書は、多くの具体的な実現詳細を記載しているが、これらの詳細は、発明または特許請求の範囲を限定するものとして解釈すべきではなく、特定の発明の特定の実現に必要な特徴の説明として解釈すべきである。また、本明細書の個別の実現例に記載された特定の特徴は、単一の実現例に組み合わせて実施することができる。逆に、単一の実現例に記載されたさまざまな特徴は、複数の個別の実現例にまたは実現例の適切な組み合わせに実施することができる。さらに、上記で特定の組み合わせで動作すると記載されまたは最初にこのようにクレームされたにも関わらず、必要に応じて、クレームされた組み合わせに含まれた1つ以上の特徴をその組み合わせから除去されてもよく、クレームされた組み合わせを別の組み合わせまたはその変形例に加えてもよい。
【0062】
用語「または」を言及する場合、「または」を用いて記載された任意の用語が、単一のもの、複数のものおよび記載されたすべてのものを指すように、包含的であると解釈すべきである。「第1」、「第2」および「第3」などの用語は、必ずしも順序を指すものではなく、一般に同様または類似の項目または要素を区別するため使用される。
【0063】
主題の特定の実現例は、上記のように記載されているが、他の実現例も以下の特許請求の範囲に含まれる。場合によって、特許請求の範囲に記載された操作は、異なる順序で実行されても、望ましい結果を達成することができる。また、添付の図面に示された工程は、望ましい結果を達成するために、必ずしも図示された特定の順序または順番を必要としない。いくつかの実現例において、マルチタスクまたは並列処理を利用することができる。
図1
図2
図3A
図3B
図3C
図4
図5
図6