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

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

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

<>
  • 特許5964239-分散ルーティングアーキテクチャ 図000002
  • 特許5964239-分散ルーティングアーキテクチャ 図000003
  • 特許5964239-分散ルーティングアーキテクチャ 図000004
  • 特許5964239-分散ルーティングアーキテクチャ 図000005
  • 特許5964239-分散ルーティングアーキテクチャ 図000006
  • 特許5964239-分散ルーティングアーキテクチャ 図000007
  • 特許5964239-分散ルーティングアーキテクチャ 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5964239
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】分散ルーティングアーキテクチャ
(51)【国際特許分類】
   H04L 12/715 20130101AFI20160721BHJP
   H04L 12/741 20130101ALI20160721BHJP
   H04L 12/803 20130101ALI20160721BHJP
【FI】
   H04L12/715
   H04L12/741
   H04L12/803
【請求項の数】42
【全頁数】19
(21)【出願番号】特願2012-544790(P2012-544790)
(86)(22)【出願日】2010年12月15日
(65)【公表番号】特表2013-514743(P2013-514743A)
(43)【公表日】2013年4月25日
(86)【国際出願番号】US2010060567
(87)【国際公開番号】WO2011084515
(87)【国際公開日】20110714
【審査請求日】2013年12月10日
(31)【優先権主張番号】12/641,260
(32)【優先日】2009年12月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100099483
【弁理士】
【氏名又は名称】久野 琢也
(72)【発明者】
【氏名】アラン エム. ジャッジ
(72)【発明者】
【氏名】デイヴィッド ジェイ. マッガウ
(72)【発明者】
【氏名】ジェイムズ アール. ハミルトン
(72)【発明者】
【氏名】ジャスティン オー. パイチュ
(72)【発明者】
【氏名】デイヴィッド ジェイ. オメーラ
【審査官】 浦口 幸宏
(56)【参考文献】
【文献】 特表2008−530858(JP,A)
【文献】 特開2003−046547(JP,A)
【文献】 Mohammad Al-Fares et al.,A Scalable, Commodity Data Center Network Architecture,Proceedings of the ACM SIGCOMM 2008 conference on Data communication,米国,ACM New York,2008年 8月,pp.63-74
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00−12/26
12/50−12/955
(57)【特許請求の範囲】
【請求項1】
パケットをルーティングするためのシステムであって、
計算装置上で実行される、宛先アドレス情報をルータ階層に関連付けるためのルータ管理構成要素と、
ネットワークアドレス形式で表現された宛先アドレスに関連付けられたルーティング用の着信パケットを受信するための、前記ルータ階層の第1のレベルに対応する1つまたは複数の第1のルータ構成要素と、
前記1つまたは複数の第1のルータ構成要素のうち少なくとも1つから前記着信パケットを受信するための、前記ルータ階層の第2のレベルに対応する1つまたは複数の第2のルータ構成要素と、
前記1つまたは複数の第2のルータ構成要素のうち少なくとも1つから前記着信パケットを受信するための、前記ルータ階層の第3のレベルに対応する1つまたは複数の第3のルータ構成要素と、
を備え、
前記1つまたは複数の第1のルータ構成要素は、前記ネットワークアドレス形式の第1のサブセットに対応する前記宛先アドレスの第1のセクションに基づき、前記1つまたは複数の第2のルータ構成要素から、前記着信パケットがルーティングされる少なくとも1つの第2のルータ構成要素を識別し、前記宛先アドレスに対するルーティングの負担は、前記第1のセクションに関連付けられたトラフィック量に少なくとも部分的に基づき、前記ルータ管理構成要素により前記少なくとも1つの第2のルータ構成要素に割り振られ、
前記1つまたは複数の第2のルータ構成要素は、前記ネットワークアドレス形式の第2のサブセットに対応する前記宛先アドレスの第2のセクションに基づき、前記1つまたは複数の第3のルータ構成要素から、前記着信パケットがルーティングされる少なくとも1つの第3のルータ構成要素を識別し、前記宛先アドレスに対するルーティングの負担は、前記第2のセクションに関連付けられたトラフィック量に少なくとも部分的に基づき、前記ルータ管理構成要素により前記少なくとも1つの第3のルータ構成要素に割り振られ、前記第2のサブセットは前記第1のサブセットより大きい、
システム。
【請求項2】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記ルータ管理構成要素は、前記複数の宛先アドレスの等しい部分に対するルーティングの負担を、前記1つまたは複数の第2のルータ構成要素の少なくとも2つの第2のルータ構成要素に割り振るように構成される、
請求項1に記載のシステム。
【請求項3】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記ルータ管理構成要素は、前記割り振られた部分に起因するトラフィック量に基づき、前記複数の宛先アドレスの部分に対するルーティングの負担を、前記1つまたは複数の第2のルータ構成要素の個々の第2のルータ構成要素に割り振るように構成される、
請求項1に記載のシステム。
【請求項4】
前記複数の第1のルータ構成要素のうちの少なくとも1つが、無作為抽出、ラウンドロビン選択、ハッシングおよび負荷分散のうち1つに従い選択される、
請求項1に記載のシステム。
【請求項5】
前記ネットワークアドレス形式がIPアドレス形式に対応する、
請求項1に記載のシステム。
【請求項6】
前記ネットワークアドレス形式の前記第1のサブセットが、前記IPアドレス形式の最上位8ビットに対応する、
請求項5に記載のシステム。
【請求項7】
前記ネットワークアドレス形式の前記第2のサブセットが、前記IPアドレス形式の最上位16ビットまたは最上位24ビットのうち少なくとも1つに対応する、
請求項5に記載のシステム。
【請求項8】
前記1つまたは複数の第1のルータ構成要素のうち少なくとも2つが、共用の物理ルータ構成要素内に実装される、
請求項1に記載のシステム。
【請求項9】
前記1つまたは複数の第2のルータ構成要素のうち少なくとも2つが、共用の物理ルータ構成要素内に実装される、
請求項1に記載のシステム。
【請求項10】
前記1つまたは複数の第3のルータ構成要素のうち少なくとも2つが、共用の物理ルータ構成要素内に実装される、
請求項1に記載のシステム。
【請求項11】
少なくとも1つの物理ルータ構成要素が、前記1つまたは複数の第1のルータ構成要素のうちの1つの前記第1のルータ構成要素と、前記1つまたは複数の第2のルータ構成要素のうちの1つの前記第2のルータ構成要素と、前記1つまたは複数の第3のルータ構成要素のうちの1つの前記第3のルータ構成要素と、のうち少なくとも2つを実装する、
請求項1に記載のシステム。
【請求項12】
パケットをルーティングするためのシステムであって、
ネットワークアドレス形式で表現された宛先アドレスに関連付けられたルーティング用の着信パケットを受信するための論理ルータ構成要素の第1の組と、
前記論理ルータ構成要素の第1の組からの前記着信パケットの受信のための論理ルータ構成要素の第2の組と、
前記論理ルータ構成要素の第2の組からの前記着信パケットの受信のための論理ルータ構成要素の第3の組と、
を備え、
前記論理ルータ構成要素の第1の組は、前記ネットワークアドレス形式の第1のサブセットに対応する前記宛先アドレスの第1のセクションに基づき、前記論理ルータ構成要素の第2の組から、前記着信パケットがルーティングされる第2のルータ構成要素を識別し、
前記第1のセクションに対するルーティングの負担は、前記第1のセクションに関連付けられたトラフィック量に少なくとも部分的に基づき、ルータ管理構成要素により前記識別された第2のルータ構成要素に割り振られ、
前記論理ルータ構成要素の第2の組は、前記ネットワークアドレス形式の第2のサブセットに対応する前記宛先アドレスの第2のセクションに基づき、前記論理ルータ構成要素の第3の組から、前記着信パケットがルーティングされる第3のルータ構成要素を識別する、
パケットルーティングシステム。
【請求項13】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記ルータ管理構成要素は、前記複数の宛先アドレスの等しい部分に対するルーティングの負担を、前記論理ルータ構成要素の第2の組の少なくとも2つの第2のルータ構成要素に割り振るように構成される、
請求項12に記載のシステム。
【請求項14】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記ルータ管理構成要素は、割り振られた部分に対するトラフィック量の関連付けに基づき、前記複数の宛先アドレスの部分に対するルーティングの負担を、前記論理ルータ構成要素の第2の組の個々の第2のルータ構成要素に割り振るように構成される、
請求項12に記載のシステム。
【請求項15】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記ルータ管理構成要素は、前記複数の宛先アドレスの少なくとも第1の部分に対するルーティングの負担を、前記第1の部分に起因するトラフィック量に基づき、前記論理ルータ構成要素の第2の組の少なくとも1つの第2のルータ構成要素に割り振るように構成され、
前記ルータ管理構成要素は、前記複数の宛先アドレスの少なくとも2つの追加の部分に対するルーティングの負担を、前記論理ルータ構成要素の第2の組の2つ以上の追加の第2のルータ構成要素に均等に割り振るように構成される、
請求項12に記載のシステム。
【請求項16】
前記論理ルータ構成要素の第2の組から識別された前記第2のルータ構成要素は、アドレス情報が前記識別された第2のルータ構成要素の第1のメモリ内に維持できる宛先アドレスのに関連付けられ、前記量より大きいの宛先アドレスに対するルーティングの負担は、前記論理ルータ構成要素の第2の組から識別された前記第2のルータ構成要素に割り振られる、
請求項12に記載のシステム。
【請求項17】
前記第1のセクションに対するルーティングの負担は、前記第1のセクションに対する低トラフィック量に基づき、前記識別された第2のルータ構成要素に割り振られる、
請求項12に記載のシステム。
【請求項18】
前記第1のセクションに対するルーティングの負担は、前記論理ルータ構成要素の第2組からの少なくとも1つの追加の第2のルータ構成要素にもまた割り振られる、
請求項12に記載のシステム。
【請求項19】
前記論理ルータ構成要素の第1の組が、無作為抽出、ラウンドロビン選択、ハッシュ選択および負荷分散のうち1つに従い選択される、
請求項12に記載のシステム。
【請求項20】
前記ネットワークアドレス形式がIPアドレス形式に対応する、
請求項12に記載のシステム。
【請求項21】
前記ネットワークアドレス形式の前記第1のサブセットが、前記IPアドレス形式の最上位8ビットに対応する、
請求項20に記載のシステム。
【請求項22】
前記ネットワークアドレス形式の前記第2のサブセットが、前記IPアドレス形式の最上位16ビットまたは最上位24ビットのうち少なくとも1つに対応する、
請求項21に記載のシステム。
【請求項23】
前記論理ルータ構成要素の第1の組のそれぞれが、物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項24】
前記論理ルータ構成要素の第1の組の2つ以上が、単一の物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項25】
前記論理ルータ構成要素の第2の組のそれぞれが、物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項26】
前記論理ルータ構成要素の第2の組の2つ以上が、単一の物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項27】
前記論理ルータ構成要素の第3の組のそれぞれが、物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項28】
前記論理ルータ構成要素の第3の組の2つ以上が、単一の物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項29】
前記論理ルータ構成要素の第1の組のうち少なくとも1つと、前記論理ルータ構成要素の第2の組のうち少なくとも1つと、前記論理ルータ構成要素の第3の組のうち少なくとも1つと、が、単一の物理ルータ構成要素に対応する、
請求項12に記載のシステム。
【請求項30】
パケットをルーティングするための方法であって、
第1の通信ネットワークから受信されたデータパケットであって、ネットワークアドレス形式で表現された宛先アドレスに関連付けられたデータパケットに対応するルーティング要求を取得するステップと、
ルータ階層の第1のレベルに対応する複数の第1のルータ構成要素から、前記データパケットがルーティングされる第1のルータ構成要素を識別するステップと、
前記データパケットを前記識別された第1のルータ構成要素へ転送するステップと、
前記ルータ階層の第2のレベルに対応する複数の第2のルータ構成要素から、前記データパケットがルーティングされる第2のルータ構成要素を識別するステップと、
前記受信されたデータパケットを前記識別された第2のルータ構成要素へ転送するステップと、
前記ルータ階層の第3のレベルに対応する複数の第3のルータ構成要素から、前記データパケットがルーティングされる第3のルータ構成要素を識別するステップと、
を含み、
前記第2のルータ構成要素を識別する前記ステップが、前記ネットワークアドレス形式の第1のサブセットに対応する前記宛先アドレスの第1のセクションに対するルーティングの負担を前記第2のルータ構成要素に割り振ることに基づき、前記第1のセクションに対するルーティングの負担は、前記第1のセクションに関連付けられたトラフィック量に少なくとも部分的に基づき、割り振られ、
前記第3のルータ構成要素を識別する前記ステップが、前記ネットワークアドレス形式の第2のサブセットに対応する前記宛先アドレスの第2のセクションに対するルーティングの負担を前記第3のルータ構成要素に割り振ることに基づく、
方法。
【請求項31】
前記宛先アドレスは、前記ネットワークアドレス形式で表現可能な複数の宛先アドレスに含まれ、
前記複数の宛先アドレスの部分に対するルーティングの負担は、前記複数の第2のルータ構成要素の各々に割り振られる、
請求項30に記載の方法。
【請求項32】
前記複数の宛先アドレスの等しい部分に対するルーティングの負担は、前記複数の第2のルータ構成要素の少なくとも2つの第2ルータ構成要素に割り振られる、
請求項31に記載の方法。
【請求項33】
前記複数の宛先アドレスの部分に対するルーティングの負担は、前記複数の宛先アドレスの部分に対するトラフィック量の関連付けに基づき、前記複数の第2のルータ構成要素の各々に割り振られる、
請求項31に記載の方法。
【請求項34】
前記複数の宛先アドレスの部分に対するルーティングの負担は、少なくとも1つの部分に関連付けられたトラフィック量と残りの部分の均等な割り振りとの組み合わせに基づき、前記複数の第2のルータ構成要素の各々に割り振られる、
請求項31に記載の方法。
【請求項35】
前記複数の第2のルータ構成要素のそれぞれが、宛先アドレスのに関連付けられ、
前記複数の宛先アドレスの部分に対するルーティングの負担の割り振りは、前記複数の第2のルータ構成要素のそれぞれに対する割り振りであって、前より大きいの宛先アドレスの割り振りに基づく、
請求項31に記載の方法。
【請求項36】
前記複数の宛先アドレスの部分に対するルーティングの負担は、前記複数の宛先アドレスの前記部分のための低トラフィック量に基づき、前記複数の第2のルータ構成要素の少なくとも1つに割り振られる、
請求項31に記載の方法。
【請求項37】
前記複数の宛先アドレスの同一部分に対するルーティングの負担は、前記複数の第2のルータ構成要素の少なくとも2つに割り振られる、
請求項31に記載の方法。
【請求項38】
前記ルータ構成要素の第1の組が、無作為抽出、ラウンドロビン選択、ハッシュ選択および負荷分散のうち1つに従い選択される、
請求項30に記載の方法。
【請求項39】
前記ネットワークアドレス形式がIPアドレス形式に対応する、
請求項30に記載の方法。
【請求項40】
前記複数の第1のルータ構成要素は、前記着信パケットがルーティング可能な前記複数の第2のルータ構成要素に接続され、前記複数の第2のルータ構成要素は、前記着信パケットがルーティング可能な前記複数の第3のルータ構成要素に接続される、
請求項1に記載のシステム。
【請求項41】
前記複数の論理ルータ構成要素の第1の組は、前記着信パケットがルーティング可能な前記複数の論理ルータ構成要素の第2の組に接続され、前記複数の論理ルータ構成要素の第2の組は、前記着信パケットがルーティング可能な前記複数の論理ルータ構成要素の第3の組に接続される、
請求項12に記載のシステム。
【請求項42】
前記複数の第1のルータ構成要素は、前記データパケットがルーティング可能な前記複数の第2のルータ構成要素に接続され、前記複数の第2のルータ構成要素は、前記データパケットがルーティング可能な前記複数の第3のルータ構成要素に接続される、
請求項30に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
一般的に記述すると、計算装置は、データを交換するために、通信ネットワーク、または一連の通信ネットワークを使用する。一般的な実施形態では、交換されるデータは、送信する計算装置と受信者の計算装置との間で伝送可能な一連のパケットに分割される。一般に、それぞれのパケットは、2つの主な構成要素、すなわち、制御情報およびペイロードデータを含むと考えることができる。制御情報は、ペイロードデータを送達するために1つまたは複数の通信ネットワークが使用する情報に対応する。例えば、制御情報は、送信元および宛先ネットワークアドレス、エラー検出コードならびにパケットシーケンス識別などのようなものを含むことができる。一般的に、制御情報は、パケット内に含まれ、かつペイロードデータに近接したパケットヘッダおよびパケットトレーラ内に見出される。
【0002】
実際には、パケット交換通信ネットワークでは、パケットは複数の物理ネットワーク間またはサブネットワーク間で伝送される。通常、物理ネットワークは、送信元ネットワーク構成要素からパケットを受信し、パケットを受信者のネットワーク構成要素へ転送する多数のハードウェア装置を含む。パケットルーティングハードウェア装置は、一般的にルータと呼ばれる。一般的に記述すると、ルータは2つの主な機能、すなわちプレーンにより作動可能である。第1の機能は制御プレーンに対応し、ルータは受信されたパケットを特定の宛先へ転送するのに最も適切な送出インタフェースの組を記憶する。第2の機能は転送プレーンであり、ルータは受信されたパケットを外向きインタフェースへ送信する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
制御プレーンの機能性を実行するため、ルータは、他のパケット属性情報の中でも、インターネットプロトコル("IP")アドレスのような可能なネットワークアドレスの少なくともサブセットの宛先情報を識別する、転送情報ベース(FIB)を維持することができる。一般的な実施形態では、FIBはルータの情報を転送するネットワークを特定する値のテーブルに対応する。1つの態様では、市販のレベルルーティングハードウェア構成要素は、単一のルータがFIBの何百万ものエントリに対応することを可能にする、カスタマイズされたチップセット、メモリ構成要素、およびソフトウェアを含むことができる。しかし、そのような市販のレベルルーティングハードウェア構成要素は、一般的に非常に高価であり、しばしば広範囲のカスタマイズを必要とする。別の態様では、商品ベースのルーティングハードウェア構成要素が、より一般的な構成要素で製造され、市販のレベルルーティングハードウェア構成要素よりかなり大幅なレベルで安価にすることができる。しかし、そのような商品ベースのルーティングハードウェア構成要素は、一般的に数千程度のエントリでFIBに対応するのみである。
【課題を解決するための手段】
【0004】
前述の態様および本発明の多くの付随した利点は、それが添付の図と合わせ下記の後述の詳細な記載を参照してよく理解されるにつれ、より容易に理解されるであろう。
【図面の簡単な説明】
【0005】
図1A】ルータ管理構成要素および階層分散ルーティング構成要素アーキテクチャを含む、分散ルーティング環境の1つの実施形態の例示のブロック図である。
図1B図1Aの分散ルーティング環境により使用されるルータ構成要素の構成要素の例示のブロック図である。
図2A】階層分散ルーティング構成要素アーキテクチャ内で受信されたパケットのルーティングを示す、図1Aの分散ルーティング環境の例示のブロック図である。
図2B】階層分散ルーティング構成要素アーキテクチャ内で受信されたパケットのルーティングを示す、図1Aの分散ルーティング環境の例示のブロック図である。
図2C】階層分散ルーティング構成要素アーキテクチャ内で受信されたパケットのルーティングを示す、図1Aの分散ルーティング環境の例示のブロック図である。
図3】分散ルーティング環境内で実行される分散ルータアーキテクチャルーティングルーチンの例示のフロー図である。
図4】分散ルーティング環境内で実行される分散ルータアーキテクチャルーティングルーチンの例示のフロー図である
【発明を実施するための形態】
【0006】
一般的に記述すると、本開示は分散ルーティングアーキテクチャに対応する。具体的には、本開示は、ネットワーク構成要素間のデータパケットの受信、処理および転送のための少なくとも3つの論理レベルまたは層を含む、階層分散ルーティングアーキテクチャに対応する。一実施形態では、3つの論理レベルは、コアレベル、分散レベルおよび通過レベルに対応することができる。実例として、コアレベルは、ネットワーク構成要素から着信パケットを受信し、受信されたパケットに関連付けられた宛先アドレス情報を処理する、1つまたは複数のルータ構成要素に対応する。コアレベルルータ構成要素は、それから、受信されたパケットに関連付けられた宛先アドレスのサブセットに基づき、分散レベルルータ構成要素を識別する。分散レベルは、コアレベルルータ構成要素から転送されたパケットを受信し、さらに受信されたパケットに関連付けられた宛先アドレス情報を処理する1つまたは複数のルータ構成要素に対応する。分散レベルルータ構成要素は、受信されたパケットに関連付けられた宛先アドレスの少なくともサブセットに基づき、通過レベルルータ構成要素を識別する。それぞれの分散レベルルータ構成要素は、分散ルーティングアーキテクチャに関連付けられたFIBのサブセットに関連付けられ、またはそうでなければ対応する。最後に、通過レベルルータ構成要素は、分散レベルルータ構成要素から転送されたパケットを受信し、パケットをそれぞれのネットワーク、またはネットワークノードに「アップストリーム」転送する、1つまたは複数のルータ構成要素に対応する。分散ルーティング環境に関連付けられたFIBの部分のマッピング、または他の割り当ては、ルータ管理構成要素が管理する。
【0007】
1つの実施形態では、コアレベル、分散レベル、および通過レベルに関連付けられたルータ構成要素のそれぞれは、商品ベースのルータ構成要素/ハードウェアにより詳しく対応することが可能である。別の実施形態では、コアレベル、分散レベル、および通過レベルルータ構成要素は、必ずしも対応するハードウェアルータ構成要素を持たない論理ルータ構成要素に対応する。例えば、それぞれのレベル内の1つまたは複数の論理ルータ構成要素は、同一のハードウェアルータ構成要素内に実装されてもよい。同様に、分散ルーティングアーキテクチャの異なるレベルに関連付けられた論理ルータ構成要素は、同一のハードウェアルータ構成要素内に実装されてもよい。しかし、両方の実施形態では、分散ルーティング環境に関連付けられたFIBを維持する負荷がいくつかのルータ構成要素の間で分割されるので、商品ベースのルータ構成要素/ハードウェアに関連付けられた処理およびメモリ制限を軽減することができる。分散ルーティング環境に関連付けられたFIBの分割に対する種々の実行、組み合わせおよび適用が、分散ルーティング環境により記載される。しかし、当業者はそのような実施形態および例が例示的な性格のものであり、限定として解釈されるべきでないことを理解するであろう。
【0008】
ここで図1Aを参照すると、階層分散ルーティングアーキテクチャを実装する分散ルーティング環境100が示される。分散ルーティング環境100は、分散ルーティング環境100により使用されるルーティング情報を制御するルータ管理構成要素102を含む。具体的には、ルータ管理構成要素102は、分散ルーティング環境100が使用する全てのアップストリームルーティング情報を受信し、記載するように分散ルーティング環境100の構成要素間でアップストリームルーティング情報の割り当てを割り振ることができる。1つの実施形態では、ルータ管理構成要素102は、分散ルーティング環境100の1つまたは複数の構成要素と通信する計算装置に対応することができる。例示の計算装置は、サーバ計算装置、パーソナル計算装置、またはルータ管理構成要素102の機能に関連付けられた指示を実行するためのプロセッサ、メモリおよび他の構成要素を含む他の計算装置を含むことができる。別の実施形態では、ルータ管理構成要素102を、後述するルータ構成要素のうちの1つまたは複数で実行されるソフトウェア構成要素として実装してもよい。実例として、ルータ管理構成要素102は、分散ルーティング環境100に関連付けられたFIBを維持およびアップデートする。また、ルータ管理構成要素102は、後述するように、FIBエントリの部分の負担を、分散ルーティング環境100の種々の層へ割り振ることができる。一実施形態では、ルータ管理構成要素102は、分散ルーティング環境100の種々のルータ構成要素への分散によりFIBを分割し、種々のルータ構成要素に関連付けられたメモリ内に維持されるFIBのそれぞれの部分を分散することが可能である。
【0009】
図1Aを引き続き参照すると、分散ルーティング環境100は、データパケットを分散ルーティング環境100へ伝送する第1の通信ネットワーク104を含む。第1の通信ネットワーク104は、分散ルーティング環境100へパケットベースの通信を確立するのに必要なネットワークハードウェアおよびプロトコルの任意の適切な組み合わせを含んでもよい。例えば、通信ネットワーク104は、ローカルエリアネットワーク(LAN)のようなプライベートネットワーク、広域ネットワーク(WAN)、公衆またはプライベート無線ネットワークを含んでもよい。そのような実施形態では、通信ネットワーク104は、分散ルーティング環境100とネットワークリンクを確立するのに必要なハードウェア(例えばモデム、ルータ、スイッチ、ロードバランサ、プロキシサーバ、など)およびソフトウェア(例えばプロトコルスタック、アカウンティングソフトウェア、ファイアウォール/セキュリティソフトウェア、など)を含んでもよい。また、通信ネットワーク104は、計算装置間でデータを伝達するための種々の通信プロトコルのうちの1つを実装してもよい。より詳細に後述するように、通信プロトコルは、インターネットプロトコルバージョン4(IPv4)およびインターネットプロトコルバージョン6(IPv6)のインターネット層通信ネットワークプロトコルに対応するネットワークアドレス情報のような、パケットフロー情報を定義するプロトコルを含むことができる。しかし当業者は、本開示が付加的なまたは代替的なプロトコルでも適用可能である場合があり、示された例は限定すると解釈されるべきでないことを理解するであろう。
【0010】
第1の通信ネットワーク104と通信しているのは分散ルーティング環境100の第1のレベルであり、通常コア層またはコアレベルと呼ばれる。1つの実施形態では、コアレベルは、通常コアレベルルータ106A、106B、および106Cと呼ばれる1つまたは複数の論理ルータ構成要素に対応する。前述したように、分散ルーティング環境100内では、コアレベルルータ106A、106B、106Cはネットワーク104からの構成要素から着信パケットを受信し、受信されたパケットに関連付けられた宛先アドレスのサブセットに基づき分散レベルルータ構成要素を識別することにより宛先アドレスを処理する。実例として、宛先アドレスのサブセットは、IPアドレスの最上位ビットの値のように、宛先IPアドレス全体より少なく対応することができる。前述したように、コアレベルルータ106A、106B、106Cは、1つまたは複数のハードウェア構成要素に実行される論理ルータ構成要素に対応することができる。1つの実施形態では、それぞれの論理ルータ構成要素は、専用の物理ルータ構成要素に対応することができる。別の実施形態では、それぞれの論理ルータ構成要素は、分散ルータ環境100内で少なくとも1つの他の論理ルータ構成要素に共用される物理ルータ構成要素に対応することができる。代替的な実施形態で、コア層の少なくともいくつかの部分を、分散ルータ環境100の外側の構成要素により実行されてもよい。そのような実施形態では、そのような外部の構成要素は分散ルータ環境100の分散レベルルータ構成要素(後述)を直接アドレス指定することになる。
【0011】
分散ルーティング環境100は、概して分散層または分散レベルと呼ばれる論理ルータ構成要素の第2のレベルをさらに含むことができる。一実施形態では、分散レベルは、概して分散レベルルータ108A、108B、および108Cと呼ばれる1つまたは複数のルータ構成要素に対応する。前述したように、分散ルーティング環境100内で、分散レベルルータ108A、108Bおよび108Cはコアルーティング構成要素102から着信パケットを受信し、かつ受信されたパケットに関連付けられた宛先アドレスの少なくともサブセットに基づき通過レベルルータ構成要素を識別することにより、宛先アドレスを処理する。実例として、宛先アドレスのサブセットは、コアレベルルータ106A、106B、106Cにより使用される宛先IPアドレスのより大きなサブセットに対応することができる。この実施形態で、分散レベルにより実行されるルーティングは、コアレベルルーティングに関連する受信されたパケットのより改良されたルーティングに対応することができる。コアレベルルータ106A、106B、106Cについて前述したように、分散レベルルータ108A、108B、および108Cは、1つまたは複数のハードウェア構成要素に実行される論理ルータ構成要素に対応することができる。1つの実施形態では、それぞれの論理ルータ構成要素は、専用の物理ルータ構成要素に対応することができる。他の実施形態では、それぞれの論理ルータ構成要素は、分散ルータ環境100内の少なくとも1つの他の論理ルータ構成要素に共用される物理ルータ構成要素に対応することができる。
【0012】
分散レベルルータ構成要素と通信しているのは、ルータ構成要素の第3のレベルであり、概して伝達層または通過レベルと呼ばれる。一実施形態では、通過レベルは、概して通過レベルルータ110A、110B、および110Cと呼ばれる1つまたは複数のルータ構成要素に対応する。前述したように、通過レベルルータ110A、110B、110Cは、分散レベルルータ構成要素108A、108B、108Cから転送されたパケットを受信し、別の通信ネットワーク112ノードへ、パケットを「アップストリーム」転送する。実例として、それぞれの通過レベルルータ110A、110B、110Cは、関連付けられたピアネットワーク構成要素を目的地とした全てのパケットが割り当てられた通過レベルルータ110A、110B、110C(または冗長ルータ)を通って伝達されるように、1つまたは複数のアップストリームピアと通信するよう構成することができる。コアレベルルータ106A、106B、106Cおよび分散レベルルータ108A、108Bおよび108Cについて前述したように、通過レベルルータ110A、110B、110Cは、1つまたは複数のハードウェア構成要素に実行される論理ルータ構成要素に対応することができる。1つの実施形態では、それぞれの論理ルータ構成要素は、専用の物理ルータ構成要素に対応することができる。別の実施形態で、それぞれの論理ルータ構成要素は、分散ルータ環境100内の少なくとも1つの他の論理ルータ構成要素に共用される物理ルータ構成要素に対応することができる
【0013】
通信ネットワーク104と同様に、通信ネットワーク112は、分散ルーティング環境100へパケットベースの通信を確立するのに必要なネットワークハードウェアおよびプロトコルの任意の適切な組み合わせを含んでもよい。例えば、通信ネットワーク112は、ローカルエリアネットワーク(LAN)のようなプライベートネットワーク、広域ネットワーク(WAN)、公衆またはプライベート無線ネットワークを含んでもよい。そのような実施形態では、通信ネットワーク112は、分散ルーティング環境100とネットワークリンクを確立するのに必要なハードウェア(例えばモデム、ルータ、スイッチ、ロードバランサ、プロキシサーバなど)およびソフトウェア(例えばプロトコルスタック、アカウンティングソフトウェア、ファイアウォール/セキュリティソフトウェアなど)を含んでもよい。通信ネットワーク104に関して前述したように、通信ネットワーク112は、計算装置間のデータを伝達するための種々の通信プロトコルのうちの1つを実行してもよい。しかし、当業者は、本開示が付加的なまたは代替的なプロトコルでも適用可能である場合があり、示された例は限定すると解釈されるべきでないことを理解するであろう。
【0014】
例示の実施形態では、図1Aの論理ルータ構成要素(106、108、110)は、処理リソース、メモリリソース、ネットワークインタフェース、および論理ルータ構成要素のそれぞれの記載された機能性を保有するための他のハードウェア/ソフトウェアを有する計算装置に対応してもよい。ここで図1Bを参照すると、図1Aの分散ルーティング環境100によって使用されるルータ構成要素150の構成要素の一例のブロック図が示される。図1Bに示されるルータ構成要素150の一般的なアーキテクチャは、1つまたは複数の論理ルータ構成要素106、108、110を実行するのに使用してもよいコンピュータハードウェアおよびソフトウェア構成要素の配置を含む。当業者は、ルータ構成要素150が図1Bに示されるよりずっと多い(または少ない)構成要素を有してもよいことを理解するであろう。しかし、これらの一般的な従来の構成要素を、可能な開示を提供するために示す必要はない。
【0015】
図1Bに示されるように、ルータ構成要素150は、処理ユニット152、少なくとも1つのネットワークインタフェース156、および少なくとも1つのコンピュータ可読な媒体ドライブ158を含み、これらの全ては通信バスの手段により互いに通信してもよい。処理ユニット152は、よって、ネットワークを介して他のコンピューティングシステムまたはサービスから情報および指示を受信してもよい。処理ユニット152は、分散ルーティング環境100に関連付けられたFIBの少なくとも一部などのような、宛先アドレス情報の処理に使用される情報を得るため、第1のメモリ構成要素154に関連付けられてもよい。メモリ154は、通常RAM、ROMおよび/または他の持続性メモリを有する。処理ユニット152はまた、メモリ160へ、またメモリ160から通信してもよい。ネットワークインタフェース156は、1つまたは複数のネットワークまたはコンピューティングシステムへの接続性を提供してもよい。少なくとも1つのコンピュータ可読な媒体ドライブ158はまた、RAM、ROM、光学メモリ、および/または分散ルーティング環境100に関連付けられたFIBの少なくとも一部を持続することができる他の持続性メモリに対応することが可能である。例示の実施形態では、メモリ構成要素154に関連付けられたアクセスタイムは、コンピュータ可読な媒体ドライバ158に関連付けられたアクセスタイムより速い場合がある。さらになお、コンピュータ可読な媒体ドライブ158は、複数のルータ構成要素150がコンピュータ可読な媒体ドライブ158に持続された情報へのアクセスを共用するネットワーク環境において実装されてもよい。
【0016】
メモリ160は、動的分類子の操作のために処理ユニット152が実行するコンピュータプログラム命令を含む。メモリ160は、概してRAM、ROMおよび/または他の持続性メモリを含む。メモリ160は、ルータ構成要素150の全般の管理および作動において処理ユニット152が使用するコンピュータプログラム命令を提供するオペレーティングシステム162を格納してもよい。メモリ160はさらに、分散ルーティング環境100内の1つまたは複数の論理ルータ構成要素を実行するコンピュータプログラム命令および他の情報を含んでもよい。例えば、一実施形態では、メモリ160はルータ106、108、110に関連付けられた機能性を実行するルータモジュール164を有する。複数の論理ルータが同一のルータ構成要素150により実行される場合、メモリ160はルータモジュール164のそれぞれのインスタンスを有してもよい。
【0017】
例示の実施形態では、それぞれのルータ構成要素150は、1つまたは複数の論理ルータ106、108、110を実行する個々のハードウェア構成要素として実現されてもよい。代わりに、複数のルータ構成要素150をグループ化し、ともに実行してもよい。例えば、それぞれのルータ構成要素150は、処理ユニット152、メモリ154およびメモリ160を有する特定用途集積回路(ASIC)(または類似の機能がある他の構成要素)に対応してもよい。ルータ構成要素150は、共用通信バスを介してネットワークインタフェース156およびコンピュータ可読な媒体158のような1つまたは複数の構成要素を共用してもよい。
【0018】
ここで図2A図2Cを参照すると、分散ルーティング環境100による受信するパケットの処理が示される。まず図2Aを参照すると、着信パケットが通信ネットワーク104からコアレベルルータ106へ受信される。着信パケットを受信するコアレベルルータ106は、負荷分散、無作為抽出、ラウンドロビン、ハッシング、および他のパケット分散技術を含むさまざまな技術により選択してもよいが、技術はそれらに限定されない。受信すると、コアレベルルータ106は宛先IPアドレスを処理し、宛先IPアドレスのサブセットを使用してルーティングの第2のレベルを実行する第2のレベル宛先ルータ構成要素を識別する。例示の実施形態では、コアレベルルータ106は、宛先アドレスの最上位8ビットのような、IPアドレスの最上位ビットを使用する。最上位ビットの選択に対応するIPアドレスのサブセットの選択は、概してプレフィクスと呼ばれる。例えば、最上位8ビットの選択は、プレフィクス長"8"に対応する。最上位16ビットの選択は、プレフィクス長"16"に対応する。当業者は、コアレベルルータ106が使用するビットの数が変わってもよいことを理解するであろう。また、代わりの実施形態では、コアレベルルータ106は異なる方法論を使用して、分散ルーティング環境100がサービスするアドレススペースを割り振り、またはそうでなければ細分してもよい。
【0019】
宛先アドレスの第1のサブセットの処理に基づき、コアレベルルータ106はパケットを分散レベルルータ、この場合は例示として108Aへ転送する。前述したように、受信する分散レベルルータ108Aは受信されたパケットの宛先アドレスを処理し、また宛先IPアドレスのサブセットを使用して、パケットを次のネットワーク宛先(分散ルーティング環境100の外側)へ転送する第3のレベルルータ構成要素を識別する。コアレベルルータ106と同様に、受信する分散レベルルータをIPアドレスの最上位ビット(例えばプレフィクス)の選択を使用しパケットをルーティングするように構成することができる。例示の実施形態では、分散レベルルータ108Aが使用するプレフィクスは、コアレベルルータ106が使用するプレフィクスより大きい。分散レベルルータ106Aによる処理に基づき、通過レベルルータ110Bは転送されたパケットを受信し、パケットを通信ネットワーク112に関連付けられた指定された指定へ転送する。
【0020】
ここで図2Bおよび図2Cを参照すると、分散ルーティング環境100内のIPアドレスまたはIPアドレスのサブセットの割り振りが示される。図2Bを参照すると、コアレベルルータ106は宛先IPアドレスのサブセットのいくつかの部分を、分散レベルルータ108Aへ分配する(202で示される)。分散レベルルータ108Aは、今度は、さらにIPアドレスの部分を通過レベルルータ110A、110B、および11OCへ分配する(204、206、および208で示される)。図2Cを参照すると、コアレベルルータ106は、宛先IPアドレスのサブセットの異なる部分を分散レベルルータ108Bへ分配する(210で示される)。分散レベルルータ108Bは、今度は、さらにIPアドレスの部分を通過レベルルータ110Aおよび110Bへ分配する(212および214で示される)。
【0021】
例示の実施形態では、ルータ管理構成要素102(図1)は、IPアドレスのサブセットの負担をさまざまな方法で分散レベルルータに割り振ることができる。一実施形態では、ルータ管理構成要素102は、IPアドレス全体の組に対する負担を、IPアドレスの割り当てにより均等に、または可能なルータ間で実質的に均等に割り振ることができる。この実施形態では、それぞれの分散レベルルータ108は、IPアドレスの等しいサブセットに対して、またはIPアドレスが均等に分割できない場合、実質的に等しいサブセットに対して、負担を持つようになる。別の実施形態では、ルータ管理構成要素102は、特定の分散レベルルータ108を指定して、高トラフィックのIPアドレスまたはプレフィクスをあつかうことが可能である。この例では、IPアドレスの全サブセットをルータ管理構成要素102がカスタム選択してもよい。代わりに、トラフィック閾値を満たすIPアドレスのサブセットのみを、自動的に分散されたIPアドレスの残りの部分とともにカスタム選択してもよい。
【0022】
なおさらなる実施形態では、複数の分散レベルルータ108を、IPアドレスのサブセットに選択してもよい。この実施形態では、それぞれのコアレベルルータ106は、等コストマルチパスルーティング(ECMP)技術に基づき複数の分散レベルルータ108から選択することができ、特定の分散レベルルータ108が標準負荷分担技術に基づき選択される。複数の割り当てられた分散レベルルータ108から選択するのに使用可能な他の因子は、通信媒体の選好性、インターネットウェザー、リソース使用率/正常性レポート、割り振られた、または決定したルーティングコスト、サービスレベルアグリーメント(SLA)、または他の基準を含む。
【0023】
1つの実施形態では、それぞれの分散ルータ108は、それぞれの分散レベルルータ108に割り当てられたIPアドレスのサブセットに関連付けられたFIBの部分を維持することができる。他の実施形態で、それぞれの分散レベルルータ108は、コンピュータ可読な媒体158(図1B)のようなメモリ構成要素内の分散ルーティング環境100に関連付けられたFIB全体を維持することができる。IPアドレスのサブセットがそれぞれの分散レベルルータ108に割り当てられる(またはそうでなければ、アップデートされる)と、FIBの適用可能な部分がルータに使用されるメモリ構成要素154(図1B)(例えばルーティングチップレベルコンテンツアドレス可能メモリまたはプロセッサレベルキャッシュメモリ)のような異なるメモリ構成要素内にロードされる。メモリ構成要素内のFIBの適用可能部分のメンテナンスは、FIBの適用可能部分のメモリアクセス時間がより速くなることによりルータパフォーマンスの改善を促進する。しかし、この実施形態では、それぞれの分散レベルルータ108へのFIBの割り振りを、FIB全体を格納する第1のメモリ構成要素(例えばコンピュータ可読な媒体158)から分散レベルルータ108に割り振られたFIBの部分を維持するメモリ構成要素(例えばメモリ構成要素154)へ、格納されたFIBの異なる部分のロードにより変更することができる。従って、この実施形態は、分散レベルルータ108の動的割り振り、冗長分散レベルルータの生成、および分散レベルルータに対する付加的なフェイルオーバを容易にする。また、1つまたは複数のコアレベルルータ106は、分散ルーティング環境100のコアレベルに関連付けられた機能の実行に類似の技術を使用することができる。
【0024】
なおさらなる実施形態では、前述の実施形態の変形として、それぞれの分散レベルルータは、メモリ構成要素154(例えばプロセッサレベルキャッシュメモリ)のようなルータの第1のメモリ構成要素内に維持が可能なものより、分散ルーティング環境100に関連付けられたFIBのより大きい部分を割り振ることが可能である。コアレベルルータ106が分散レベルルータ108へルーティングし、宛先IPアドレスの対応するプレフィクスが分散レベルルータの第1のメモリ構成要素内に保持されるFIBに対応しない場合、分散レベルルータは、必要な情報を、異なるメモリ構成要素(例えばコンピュータ可読な媒体158(図1B))内に維持されたFIBのより大きなサブセットから呼び出すことが可能である。第1のメモリ構成要素(例えばメモリ構成要素152)内に維持されるFIBは、アップデートされ、プライマリメモリ構成要素内のプレフィクスに格納してもよい。代わりに、第1のメモリ構成要素内のFIBは、単一の要求に基いては自動的にアップデートされない場合があるが、所与のプレフィクスのトラフィックの増加に基いて自動的にアップデートされる場合がある。
【0025】
さらに別の実施形態では、より低いトラフィックのプレフィクスを複数の分散レベルルータ108に割り当ててもよい。1つの例では、それぞれの割り当てられた分散レベルルータ108は、プライマリメモリ構成要素内の割り当てられたFIBのより低いトラフィックルーティングの部分を維持しない。むしろ、より低いトラフィックプレフィクスのルーティング要求を、ECMPのような選択技術に基づき特定の分散レベルルータへ向けることが可能であり、選択された分散レベルルータ内の異なるメモリ構成要素内に維持されるより大きなFIBに基づき選択された分散レベルルータ108により処理することができる。
【0026】
ここで図3を参照して、パケットをルーティングするための、分散ルーティング環境100内で実行されるルーチン300が記載される。ブロック302で、分散ルーティング環境100はルーティング要求を取得する。前述したように、ルーティング要求は第1のネットワーク102(図1)から受信され、宛先IPアドレスを識別する情報を含む。ブロック304で、分散ルーティング環境100の第1のレベルに対応するコアレベルルータ106が選択され、ルーティング要求を受信する。例示の実施形態では、それぞれのコアレベルルータ106は同一の機能を実行することができ、無作為抽出、ラウンドロビン選択、負荷分散選択などを含む標準的な選択技術により選択が可能であるが、技術はそれらに限定されない。
【0027】
ブロック306では、選択されたコアレベルルータ106は、分散ルーティング環境100の第2のレベルに対応する分散レベルルータ108を識別する。コアレベルルータ108は、適切な分散レベルルータ108の判断のための宛先IPアドレスの処理および宛先IPアドレスのサブセット(例えば、プレフィクス)の使用に基づき、分散レベルルータ108を選択する。例示として、IPv4通信プロトコルに対応する実施形態により、コアレベルルータ106処理は、最上位8ビットのプレフィクスの検討に基づくことが可能である。ブロック308において、選択された分散レベルルータ108は、適切な通過レベルルータ110の判断のための宛先IPアドレスの処理および宛先IPアドレスのサブセットの使用に基づき、通過レベルルータ110を識別する。例示として、IPv4通信プロトコルに対応する実施形態により、分散レベルルータ108処理は、IPアドレスのより大きなサブセット(例えば適切な通過レベルルータ110の選択に必要とされる16または24ビットのようなより長いプレフィクス)に基づくことが可能である。しかし、当業者は、ブロック306および308を、受信されたパケットを転送するための次のルータ構成要素の識別において、コアレベルルータ106および分散レベルルータ108が受信されたパケットの付加的なまたは代替的な属性(宛先IPアドレスの異なる部分を含む)を利用してもよい方法で実行してもよいことを理解するであろう。
【0028】
ブロック310において、選択された通過レベルルータ110は、受信パケットを、通過レベルルータ110に関連付けられた、またはそうでなければ通過レベルルータ110と共に構成された宛先受信者へ伝送する。ブロック312において、ルーチン300は終了する。
【0029】
ここで図4を参照すると、パケットをルーティングするための、分散ルーティング環境100内で実行される別のルーチン400が示される。例示の実施形態では、ルーチン400は、特定の分散ルータ108に関連付けられた全てより少ないFIBがプライマリメモリ構成要素内で維持される実施形態で実行してもよい。ブロック402において、ルーティング要求が分散レベルルータ108において受信される。選択および分散レベルルータ108へのルーティングは前述した。ルーチン400を分散レベルルータ108による実行に関して記載するが、当業者は、ルーチン400の少なくとも一部は、コアレベルルータ106または通過レベルルータ110のような分散ルーティング環境100の他の構成要素により実行されてもよいことを理解するであろう。判断ブロック404でテストが行われ、ルーティング要求に関連付けられた宛先IPアドレスのサブセットが、選択された分散レベルルータ108の一次メモリ内に維持されるFIBテーブルの部分にあるかどうか判断される。この部分にある場合、ブロック406において、分散レベルルータ108は、通過層ルーティング情報を第1のメモリ構成要素(例えば、メモリ構成要素152(図1B))内に維持されるFIBから取得する。ブロック408において、分散レベルルータ108は、パケットを選択された通過レベルルータ110へ転送する。
【0030】
一方、判断ブロック404において、ルーティング要求に関連付けられた宛先IPアドレスのサブセットが、選択された分散レベルルータ108の一次メモリ内に維持されるFIBテーブルの部分に維持されていない場合、ブロック410において、分散レベルルータ108は、分散レベルルータに関連付けられた分離したメモリ構成要素から付加的な通過ルーティング情報の取得を試みる。ブロック410において、分散レベルルータ108は、一次メモリ構成要素内に維持される転送テーブル情報を他のメモリ構成要素から取得された情報とともにアップデートすることができる。代わりに、ブロック410は省略が可能で、またはそうでなければ所望により選択される。ブロック412において、ルーチンは終了する。
【0031】
例示の実施形態を開示し述べてきたが、当業者は、付加的なまたは代替的な実施形態が本開示の趣旨および範囲内で実行されてもよいことを理解するであろう。また、多くの実施形態を例示として示してきたが、当業者は例示の実施形態が組み合わされ、またはともに実行される必要がないことを理解するであろう。そのようなものとして、いくつかの例示の実施形態は、本開示の変形の範囲にしたがって利用、または実行される必要はない。
【0032】
他の語の中でも、「することができる(can)」、「できる可能性がある(could)」、「かもしれない(might)」、または「してもよい(may)」、のような条件の語は、そうでないと特に述べている、またはそうでなければ文脈内で使用されたように理解される場合を除いて、ある実施形態が特定の機能、要素またはステップを含み、一方他の実施形態は特定の機能、要素またはステップを含まないことを伝えることが概して意図される。よって、そのような条件の語は、機能、要素またはステップが1つまたは複数の実施形態にどうしても必要とされると意味することを概して意図せず、または1つまたは複数の実施形態が、ユーザ入力またはプロンプティングのあるなしにかかわらず、これらの機能、要素またはステップが任意の特定の実施形態に含まれるまたは実行されるかどうかの決定のロジックを必ず含むことを概して意図しない。さらに、特にそうでないと述べている、またはそうでなければ文脈内で使用されたように理解される場合を除いて、要素のリストの列挙において接続詞「または」の利用を伝えることは、単一の要素のみの選択に限定せず、2つ以上の要素の組み合わせを含むことができることが概して意図される。
【0033】
本明細書に記載され、かつ/または添付の図に示されたフロー図内のあらゆるプロセス記載、要素、またはブロックは、潜在的に、プロセス内の特定の論理的機能またはステップを実行する1つまたは複数の実行可能な命令を含むモジュール、セグメント、またはコードの部分を示すものとして理解すべきである。代替の実行は、本明細書に記載された実施形態の範囲内に含まれ、そこでは当業者が理解するであろうように、含まれる機能により、要素または機能は削除され、示されまたは述べられた順序から外れて、実質的に同時にまたは逆の順序で実行されてもよい。CD−ROM、DVD−ROM、またはネットワークインタフェースなどのようなコンピュータ実行可能な構成要素を格納するコンピュータ可読な媒体に関連付けられたドライブ機構を用いて、前述のデータおよび/または構成要素はコンピュータ可読な媒体に格納されてもよく、計算装置のメモリへロードされてもよいことがさらに理解されるであろう。さらに、構成要素および/またはデータは、単一の装置に含まれる可能性があり、または任意の方法で分散される可能性がある。従って、汎用計算装置は、前述の種々のデータおよび/または構成要素の処理および/または実行とともに、本開示のプロセス、アルゴリズム、および方法論を実行するよう構成されてもよい。代わりに、本明細書に記載されたいくつかまたは全ての方法が、特殊化したコンピュータハードウェアで代わりに実施されてもよい。また、本明細書で述べた構成要素は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせで実行されてもよい。
【0034】
前述の実施形態に多数の変形および改良が加えられてもよいことができることが強調されるべきであり、その要素は他の許容範囲内の例の中にあるものとして理解されるべきである。全てのそのような改良および変形は、本明細書で本開示の範囲内に含まれ、後述の特許請求の範囲により保護されることが意図される。
図1A
図1B
図2A
図2B
図2C
図3
図4