(57)【特許請求の範囲】
【請求項１】
複数のリンクと相互接続された複数の転送デバイスを含むネットワークを介して、新規データストリームを送信元から宛先へ仮想的にルーティングするためのコンピュータ実装方法であって、
（ａ）前記新規データストリームのために複数の前記相互接続された転送デバイスを通るパスを作成するよう求める要求を、制御デバイスで受信する段階と、
（ｂ）前記新規データストリームのタイプを決定する段階と、
（ｃ）決定された前記タイプに基づいて、前記決定されたタイプを有する複数のデータストリームの複数の使用履歴特性を決定する段階であって、前記複数の使用履歴特性は、以前に送信された前記タイプの複数のデータストリームの長さおよび以前に送信された前記タイプの複数のデータストリームによって利用された総帯域幅を含む、段階と、
（ｄ）以前に送信された前記タイプの複数のデータストリームの長さに基づいて、どの複数の時間スライスを前記新規データストリームが占有することになるか決定する段階であって、以前の複数の時間スライスは、複数の以前の時間サイクルの間にあり、前記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、前記複数の時間スライスは、前記複数の周期的時間間隔における複数のサブ間隔を表す、段階と、
（ｅ）前記送信元と宛先とを接続する複数の候補パスのぞれぞれについて、（ｄ）で決定された前記複数の時間スライスについて候補パスに沿った複数のリンクの利用履歴を決定する段階と、
（ｆ）前記複数の候補パスのぞれぞれについて、前記候補パスに沿った前記複数のリンクの決定された前記利用履歴に基づいて、（ｄ）で決定された前記複数の時間スライスの間に前記パスにおいて利用可能な総帯域幅を決定する段階と、
（ｇ）前記複数の候補パスについて前記決定された利用可能な総帯域幅を、以前に送信された前記タイプの複数のデータストリームによって利用された前記決定された総帯域幅と比較し、前記新規データストリームのために要求された前記パスを選択する段階であって、要求された前記パスは、前記送信元から前記宛先までの、前記複数の相互接続された転送デバイスを通る、段階と、
（ｈ）前記パスに沿ったそれぞれの転送デバイスについて、前記転送デバイスのどのポートが、（ｇ）で選択された前記パスに沿って前記新規データストリームのデータをルーティングするかを示すルーティングテーブルを決定する段階と、
（ｉ）それぞれの前記転送デバイスの各々について、（ｈ）で決定された前記ルーティングテーブルを送信し、前記転送デバイスを構成する段階と、
を備える、方法。
【請求項２】
前記利用履歴を決定する前記段階（ｅ）は、少なくとも１つのリンクがダウンしていることを考慮に入れる、請求項１に記載の方法。
【請求項３】
前記段階（ｄ）−（ｇ）は、（ａ）における前記要求の受信の前に起こり、
（ｊ）前記決定されたパスを事前に計算されたパスデータベース内に格納する段階と、
（ｋ）前記新規データストリームが（ａ）で受信される場合、前記要求されたパスを前記事前に計算されたパスデータベースから読み出す段階と、
を更に有する、請求項１または２に記載の方法。
【請求項４】
前記決定する段階（ｂ）は、前記新規データストリームが特定の宛先ＩＰアドレスおよびＴＣＰポートを有するかどうか決定する段階を有する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記決定する段階（ｂ）は、前記新規データストリームが特定の送信元ＩＰアドレスおよびＴＣＰポートを有するかどうか決定する段階を有する、請求項１から４のいずれか一項に記載の方法。
【請求項６】
複数のリンクと相互接続された複数の転送デバイスを含むネットワークを介して、新規データストリームを送信元から宛先へ仮想的にルーティングするためのシステムであって、
前記ネットワークの使用履歴データを収集するように構成される使用履歴モジュールであって、前記使用履歴データは、複数の以前の時間サイクルの間の複数の時間スライスにおける複数のリンクの利用を含み、前記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、前記複数の時間スライスは、前記複数の周期的時間間隔における複数のサブ間隔を表す、使用履歴モジュールと、
新規データストリームのための複数の前記相互接続された転送デバイスを通るパスを作成するよう求める要求を受信し、前記新規データストリームのタイプを決定するように構成される制御デバイスと、
決定された前記タイプを有する複数のデータストリームの複数の使用履歴特性を格納するように構成されるデータフローデータベースであって、前記複数の使用履歴特性は、以前に送信された前記タイプの複数のデータストリームの長さおよび以前に送信された前記タイプの前記複数のデータストリームによって利用される総帯域幅を含む、データフローデータベースと、
前記決定されたタイプを有する複数のデータストリームの前記複数の使用履歴特性に基づいて、前記複数の相互接続された転送デバイスを介して前記送信元から前記宛先への、要求された前記パスを決定するように構成されるパス計算モジュールであって、
（ｉ）以前に送信された前記タイプの複数のデータストリームの前記長さに基づいて、どの複数の時間スライスを前記新規データストリームが占有することになるか決定し、
前記送信元と宛先とを接続する複数の候補パスについて、
（ｉｉ）（ｉ）で決定された前記複数の時間スライスについて前記候補パスに沿って複数のリンクの利用を決定し、
（ｉｉｉ）前記候補パスに沿った前記複数のリンクの決定された前記利用に基づいて、（ｉ）で決定された前記複数の時間スライスの間に前記パスにおいて利用可能な総帯域幅を決定し、
（ｉｖ）前記複数の候補パスについて決定された前記利用可能な総帯域幅を、以前に送信された前記タイプの複数のデータストリームによって利用された決定された前記総帯域幅と比較し、前記新規データストリームのために要求された前記パスを選択する
ように構成されるパス計算モジュールと、
前記パスに沿ってそれぞれの転送デバイスについて、（ｉ）前記転送デバイスのどのポートが前記決定されたパスに沿って前記新規データストリームのデータをルーティングするか示すルーティングテーブルを決定し、（ｉｉ）前記パスに沿ってデータをルーティングするように前記転送デバイスを構成すべく、決定された前記ルーティングテーブルを送信するように構成される、ルーティングテーブルモジュールと、を備える、
システム。
【請求項７】
前記パス計算モジュールは、少なくとも１つのリンクがダウンしていることを考慮に入れて前記利用（ｉｉ）を決定するように構成される、請求項６に記載のシステム。
【請求項８】
前記パス計算モジュールは、前記制御デバイスにおける前記要求の受信前に、前記パスを計算し、
前記決定されたパスを事前に計算されたパスデータベース内に格納するためのパスデータベースと、
前記新規データストリームが前記制御デバイスで受信される場合、前記要求されたパスを前記事前に計算されたパスデータベースから読み出すように構成されるパス選択モジュールと、を更に有する、
請求項６または７に記載のシステム。
【請求項９】
前記パス選択モジュールは、前記新規データストリームが特定の宛先ＩＰアドレスおよびＴＣＰまたはＵＤＰポートを有するかどうか決定するように構成される、請求項８に記載のシステム。
【請求項１０】
前記パス選択モジュールは、前記新規データストリームが特定の送信元ＩＰアドレスおよびＴＣＰまたはＵＤＰポートを有するかどうか決定するように構成される、請求項８または９に記載のシステム。
【請求項１１】
コンピュータに、複数のリンクと相互接続された複数の転送デバイスを介して、新規データストリームを送信元から宛先へ仮想的にルーティングするための方法を実施させるためのプログラムであって、前記方法は、
（ａ）前記コンピュータが、新規データストリームのための複数の相互接続された転送デバイスを通るパスを作成するよう求める要求を受信する段階と、
（ｂ）前記コンピュータが、前記新規データストリームのタイプを決定する段階と、
（ｃ）前記コンピュータが、決定された前記タイプに基づいて、前記決定されたタイプを有する複数のデータストリームの複数の使用履歴特性を決定する段階であって、前記複数の使用履歴特性は、以前に送信された複数の前記タイプの複数のデータストリームの長さおよび以前に送信された前記タイプの複数のデータストリームによって利用された総帯域幅を含む、決定する段階と、
（ｄ）前記コンピュータが、以前に送信された前記タイプの複数のデータストリームの長さに基づいて、どの複数の時間スライスを前記新規データストリームが占有することになるか決定する段階であって、前記複数の時間スライスは、複数の以前の時間サイクルの間にあり、前記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、前記複数の時間スライスは、前記複数の周期的時間間隔における複数のサブ間隔を表す、決定する段階と、
（ｅ）前記コンピュータが、前記送信元と宛先とを接続する複数の候補パスのそれぞれについて、（ｄ）で決定された前記複数の時間スライスについて前記候補パスに沿って複数のリンクの利用履歴を決定する段階と、
（ｆ）前記コンピュータが、前記送信元と宛先とを接続する複数の候補パスのそれぞれについて、前記候補パスに沿った前記複数のリンクの前記決定された利用履歴に基づいて、（ｄ）で決定された前記複数の時間スライスの間に前記パスの利用可能な総帯域幅を決定する段階と、
（ｇ）前記コンピュータが、前記複数の候補パスについて決定された前記利用可能な総帯域幅を、以前に送信された前記タイプの複数のデータストリームによって利用された、決定された前記総帯域幅と比較し、前記新規データストリームのために要求された前記パスを選択する段階であって、要求された前記パスは、前記送信元から前記宛先までの前記複数の相互接続された転送デバイスを通る、段階と、
（ｈ）前記コンピュータが、前記パスに沿ってそれぞれの転送デバイスについて、前記転送デバイスのどのポートが（ｇ）で決定された前記パスに沿って前記新規データストリームのデータをルーティングするか示すルーティングテーブルを決定する段階と、
（ｉ）前記コンピュータが、それぞれの前記転送デバイスの各々について、（ｈ）で決定された前記ルーティングテーブルを送信し、前記転送デバイスを構成する段階と、を有する、
プログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
分野  この分野は、概して、ネットワークルーティングに関する。
【０００２】
関連技術  通信ネットワークは、例えば、２つの地理的に離れた場所の間でデータを転送することを可能にするネットワーク接続を提供し得る。ネットワーク接続は、ルータ等の通信デバイスを接続する複数のリンクに及んでもよい。複数のネットワークは、複数のリンクが複数の通信デバイスを通じてどのように相互接続されているかに応じて複数の異なるトポロジを有し得る。特定のネットワークトポロジを所与として、送信元と宛先との間で、複数の経路が利用可能であってもよい。いくつかの経路は、現在の容量および使用状況に応じて他の複数の経路よりも望ましいかもしれない。
【０００３】
従来の複数のルーティングアルゴリズムは、データをルーティングすべく、各ルータが有する、その隣接する複数のリンクおよびデバイスからの局所情報を当てにする。ルータは、そのような情報をルーティングテーブルにおいて維持する。また、受信パケットの宛先アドレスに基づいて、ルータは、そのルーティングテーブルを特定の近くのデバイスへパケットを転送するのに使用する。ルーティングテーブルを開発すべく、各ルータは、オープン・ショーテスト・パス・ファースト（ＯＳＰＦ）のようなプロトコルを使用してルーティングおよび到達可能性の情報をローカルな近隣のルータと交換する。このように、各ルータは、複数のパケットを転送し、かつ、複数の制御機能を実行して自身のルーティングテーブルを更新する。
【０００４】
局所情報を使用することが、いくつかのコンテクストでは望ましいかもしれない一方、それは、常に効率的にデータをルーティングしないかもしれない。データをより効率的にルーティングすべく、ソフトウェア定義ネットワーク（ＳＤＮ）と称される他の技術が制御および転送機能を別個のデバイスへと分離する。制御デバイスは、ネットワークトポロジの全体的な知識を使用して、個別のデータフローについて複数の転送デバイスのネットワークを通るパスを決定する。このように、制御デバイスは、例えば、遅延を最小化するか、またはネットワークを通る帯域幅を最大にする複数のパスを確立し得る。
【発明の概要】
【０００５】
実施形態において、システムが新規データストリームを、複数のリンクで相互接続された複数の転送デバイスを介して送信元から宛先へルーティングする。システムは、新規データストリームのために複数の相互接続された転送デバイスを介するパスを作成するよう求める要求を受信し、新規データストリームのタイプを決定する制御デバイスを含む。データフローデータベースは、決定されたタイプを有するデータストリームの複数の使用履歴特性を格納する。パス計算モジュールは、決定されたタイプを有する複数のデータストリームの複数の使用履歴特性に基づいて、複数の相互接続された転送デバイスを介する、送信元から宛先までの要求されたパスを決定する。また、ルーティングテーブルモジュールは、パスに沿ったそれぞれの転送デバイスについて、（ｉ）転送デバイスのどのポートを使用して、決定されたパスに沿って新規データストリームからデータをルーティングするか示すルーティングテーブルを決定し、（ｉｉ）決定されたルーティングテーブルを送信し、転送デバイスをパスに沿ってデータをルーティングするように設定する。
【０００６】
方法およびコンピュータプログラム製品の複数の実施形態がまた開示される。 
【０００７】
本発明の更なる実施形態、特徴、および利点、並びに、様々な実施形態の構造および動作が、複数の添付図面を参照して以下で詳細に説明される。
【図面の簡単な説明】
【０００８】
本明細書に組み込まれ、本明細書の一部を形成する複数の添付図面は、本開示を例示し、説明と合わせることで、本開示の複数の原理を説明し、当業者が本開示を作成し使用することを可能にするのに更に役立つ。
【０００９】
【図１】実施形態に従って、複数の履歴特性に基づいてデータフローのためのパスを決定する通信ネットワークを示す図である。
【００１０】
【図２】実施形態に従って、データフローがどのように決定されたパスに沿って方向付けられるかを示す図である。
【００１１】
【図３】複数のネットワーク特性においてデータを収集する統計データサーバを示す図である。
【００１２】
【図４Ａ】パスを介してデータをルーティングするネットワークの構成を示す図である。
【図４Ｂ】パスを介してデータをルーティングするネットワークの構成を示す図である。
【００１３】
【図５】高速パスの計算をより詳細に示す図である。
【００１４】
【図６】データフローについての複数の履歴特性に従ってパスを決定し、ネットワークを通るパスを設定するための方法を示すフローチャートである。
【００１５】
ある要素が最初に現れる図面は、概して、対応する参照番号の左端の１または複数の桁の数字で示される。複数の図面において、同様の参照番号は、同一または機能的に同様の要素を示し得る。
【発明を実施するための形態】
【００１６】
上述のように、複数のソフトウェア定義ネットワーク（ＳＤＮ）は、ルーティングの決定において、全体のネットワークトポロジを有益に考慮することができる。送信元ることで、複数のＳＤＮは、特定のデータフローのためにどのパスを選択するか決定すべく、ネットワーク上の様々な相互接続しているリンクの使用履歴を調べることが可能であってもよい。
【００１７】
本明細書で開示される複数の実施形態は、複数のネットワークリンクの使用履歴のみではなく、同様の複数のデータフローの履歴特性もまた説明する。例えば、複数の実施形態は、特定のタイプの複数のデータフロー、例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍに対するＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）セッション等が平均帯域幅および持続時間を有することを決定し得る。複数の実施形態は、パスに沿って複数のリンクを通る複数の同様のフローの過去の帯域幅および可用性を説明する収集データに対して、平均帯域幅および可用性を評価し得る。
【００１８】
データがネットワークを介してルーティングされる場合に必要とされるコンピューティングリ送信元を削減すべく、複数の実施形態は、様々なデータタイプのためのネットワークパスを事前に計算し得る。更に、複数の実施形態は、一日の複数の異なる時間のためのネットワークパスを事前に計算し得る。一度事前に計算されると、複数のデータパスは、データベース内に格納され得る。次に、そのデータタイプを有するデータストリームが受信される場合、複数の実施形態は、データベースから適切なネットワークパスを読み出し得る。
【００１９】
図１は、実施形態に従って、複数の履歴特性に基づいてデータフローのためのパスを決定する通信ネットワーク１００を示す図である。通信ネットワーク１００は、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはワイドエリアネットワーク（ＷＡＮ）であってよい。それは、任意のポイントツーポイント、または、マルチポイントツーマルチポイントのネットワーキングプロトコルを利用し得る。用いられる複数のネットワークアクセスプロトコルは、例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、イーサネット（登録商標）、非同期転送モード（ＡＴＭ）、高レベルデータリンク制御（ＨＤＬＣ）またはパケットリレーを含んでもよい。
【００２０】
通信ネットワーク１００は、複数のリンクによって相互接続された転送デバイス１０２、１０４、１０６、１０８、１１０、１１２および１１４等の複数の転送デバイスを含む。例えば、転送デバイス１０４および１０６は、リンク１３０によって接続されている。転送デバイスは、データリンク層（オープンシステム相互接続層２）およびネットワーク層（オープンシステム相互接続層３）における複数のデバイスを含む、複数のパケットを転送するデバイスである。
【００２１】
リンク１３０は、グラフ１３２で示された使用パターンを有し得る。使用パターンは、１週間等の特定のサイクルにわたって繰り返され得、循環パターンを反映する。サイクルは、５分間隔等、複数の時間スライスへと分割され得る。各５分間隔について、リンク１３０は、平均使用量、言い換えれば使用される平均総帯域幅を有し得る。また、当然の結果として、リンク１３０はまた、平均可用性（ａｖａｉｌａｂｉｌｉｔｙ）、言い換えればライン全体で利用可能な帯域幅の平均値を有してもよい。グラフ１３２で示されるように、リンク１３０を渡って利用される帯域幅は、時間スライス１３４の間に急増する。
【００２２】
図１は、リンク１３０を渡って利用される帯域幅が、時間スライス１３４の間に急増することを示すのみでなく、図１はまた、時間スライス１３４の間、データフロー１２０によって使用される帯域幅も急増することを示す。特に、図１は、データフロー１２０が転送デバイス１０２から転送デバイス１０８へ転送されていることを示す。データは、特定の送信元コンピューティングデバイスまたはネットワークからの、および特定の宛先コンピューティングデバイスまたはネットワークへのデータフローの形態であってよい。データフロー１２０は、グラフ１２２で示される使用パターンを有し、グラフ１２２は、データフローが時間スライス１３４の間に急増することを示す。
【００２３】
リンク１３０およびデータフロー１２０についてのこの履歴データに基づいて、通信ネットワーク１００は、時間スライス１３４の間に、リンク１３０が、ネットワークが飽和して過負荷になることなくデータフロー１２０を転送するには不十分な容量を有し得るかどうかを決定する。それに応じて、通信ネットワーク１００は、図２に示されるように、データフロー１２０を異なるパスへとリダイレクトしてもよい。
【００２４】
図２は、実施形態に従って、データフロー１２０が、通信ネットワーク１００において決定されたパスに沿ってどのようにリダイレクトされるか示す図である。この例において、通信ネットワーク１００は、複数の相互接続しているリンクの使用履歴データに従って、データフロー１２０のための代替パスを決定する。代替パスは、リンク１３０を回避し、転送デバイス１０４および１０６を接続する。その代わりに、データフロー１２０は、転送デバイス１０４から転送デバイス１１０および１１２を回って転送デバイス１０６へ転送される。このように、複数の実施形態は、履歴データを使用して、データフロー１２０がどのように様々なリンクの中でのネットワーク利用に影響を及ぼし得るか予測し、かつ複数の潜在的なボトルネックを回避するためのパスをルーティングする。
【００２５】
詳細な説明の残りの部分は、４つの項へと分割される。第１のセクションは、図３に関して、ネットワークの履歴データを収集することを説明する。第２のセクションは、図４Ａから図４Ｂに関して、ネットワークを通してパスを確立すべく制御デバイスを使用することを説明する。第４のセクションは、図５に関して、パスを計算することをより詳細に説明する。第５および最後のセクションは、図６に関して、データフローについて複数の履歴特性に従ってパスを決定し、ネットワークを通るパスを設定するための方法を説明する。
［履歴データの収集］
【００２６】
図３は、パスに沿って統計データを収集するためのシステム３００を示す図である。システム３００は、図１および２に示される通信ネットワーク１００の複数の転送デバイスを含む。システム３００は、また、複数のネットワーク特性に関するデータを収集する統計データサーバ３１０を含む。統計データサーバ３１０は、使用履歴データベース３０２、パスデータベース３０４、およびデータフローデータベース３０６に結合され、使用履歴モジュール３１６、フロー統計データモジュール３１４、およびパス計算モジュール３１２を含む。各モジュールが、順に議論される。
【００２７】
使用履歴モジュール３１６は、ネットワークの使用履歴データを収集する。特に、使用履歴モジュール３１６は、ネットワークの各リンクにおいて利用される総帯域幅を収集し得る。より具体的に、使用履歴モジュール３１６は、時間サイクルの各時間スライスの間に、ネットワークの各リンクにおいて利用される総帯域幅を収集し得る。帯域幅データを収集すべく、使用履歴モジュール３１６は、リンク利用を監視する様々なネットワーク転送デバイスと通信し得る。
【００２８】
利用情報を収集するとすぐに、使用履歴モジュール３１６は、その情報を使用履歴データベース３０２内に格納する。複数の時間サイクルが経過すると、使用履歴モジュール３１６は、各スライスについてデータを集約し得る。例えば、使用履歴モジュール３１６は、その時間スライスの間の、各リンクを渡る利用の平均または移動平均を決定し得る。使用履歴モジュール３１６は、また、時間スライスの間の、各リンクを渡る利用の変動量を決定し得る。変動量は、平均利用における信頼のレベル（例えば、第９５パーセンタイル値等の周知の統計方法）を示し得、周知の統計方法を使用して、リンクが今後可用性を有することになるかどうか予測するのに用いられ得る。
【００２９】
リンク使用状況に関するデータを収集することに加えて、統計データサーバ３１０は、フロー統計データモジュール３１４を使用して複数のデータフローに関するデータも収集する。使用履歴モジュール３１６と同様に、フロー統計データモジュール３１４が、様々な転送デバイスと通信して複数のデータフローに関するデータを収集し得る。データフローは、特定のタイプを有するデータとして識別され得、そのタイプは、特定の送信元インターネットプロトコル（ＩＰ）アドレス、送信元トランスポート制御プロトコル（ＴＣＰ）またはユーザデータグラムプロトコル（ＵＤＰ）ポート、宛先ＩＰアドレス、宛先ＴＣＰポート、またはそれらの任意の組み合わせを有するデータとして定義され得る。例えば、１つのデータタイプは、（特定の宛先ＩＰアドレスを有する）ｓａｌｅｓｆｏｒｃｅ．ｃｏｍに宛てられた（宛先ＴＣＰポート８０を有する）ＨＴＴＰデータであってもよい。
【００３０】
フロー統計データモジュール３１４は、そのタイプのデータフローと一致する複数の属性を説明するデータを収集する。例えば、フロー統計データモジュール３１４は、特定のデータフローによって消費される総帯域幅および特定のデータフローの長さに関するデータを収集し得る。長さは、例えば持続時間または転送されるデータの合計の量で測定され得る。一度収集されると、フロー統計データモジュール３１４は、複数の属性をデータフローデータベース３０６内に格納し得る。使用履歴モジュール３１６と同様に、一度フロー統計データモジュール３１４がデータを収集すると、それは、データを集約し得る。フロー統計データモジュール３１４は、例えば平均または移動平均を取ることで、データを集約し得る。特に、フロー統計データモジュール３１４は、各タイプのデータフローについて、平均総帯域幅および平均の長さを決定し得る。平均に加えて、フロー統計データモジュール３１４は、また、様々な属性の変動量を決定し得る。使用履歴モジュール３１６と同様に、周知の複数の統計的技術を使用して、変動量が使用され得、リンクがデータフローを処理し得るかどうか予測する際の信頼度を確立する。全てのフローが収集される必要は無くてもよく、複数のフローの統計的サンプリングが複数の特定のフローを説明するのに用いられる情報を集約すべく用いられてもよい。
【００３１】
決定されたタイプを有するデータストリームの複数の使用履歴特性に基づいて、パス計算モジュール３１２は、各データタイプについて、複数の相互接続された転送デバイスを通る送信元から宛先までのパスを決定する。パスは、複数のネットワークリンクおよび複数の転送デバイスを含んでもよい。実施形態において、パスは制御デバイスを含まない。各データタイプについて、パス計算モジュール３１２は、各時間スライスの間にネットワークを通るデータフローをどのように送信するか定義するパスを決定し得る。それでも更に、上述のように、データタイプは、特定の送信元および宛先を有するデータフローとして識別されてもよく、または、それは特定の送信元または特定の宛先を単に有しているとして識別されてもよい。その場合、パス計算モジュール３１２が各時間スライスについての複数のパスを計算してよいだけではなく、パス計算モジュール３１２はまた、そのタイプを有する複数のフローを送信もしくは受信し得る様々な可能な送信元もしくは宛先についての複数のパスも計算してもよい。パス計算モジュール３１２がどのように複数のパスを計算するかについての更なる詳細は、図５に関して以下に提供される。
【００３２】
使用履歴に加えて、パス計算モジュール３１２は、レイテンシ、ジッタ、パケット損失、または様々なパスを渡って任意の他のパフォーマンスメトリック、ユーザのサービスレベルアグリーメント、または転送されているデータのタイプを考慮し得る。例えば、ブロードキャストビデオデータは、かなりの帯域幅を必要とし得るが、レイテンシは比較的重要でなくてもよい。他方、ボイスオーバーＩＰ（ＶｏＩＰ）データは、そこまで大きな帯域幅を必要としなくてもよいが、レイテンシはより重要であり得る。ブロードキャストビデオデータの場合、制御デバイスは高帯域幅、高レイテンシのパスを選択し得、ＶｏＩＰデータの場合、制御デバイスは低帯域幅、低レイテンシのパスを選択し得る。
【００３３】
また、パス計算モジュール３１２は、特定のサーバを介してデータをルーティングしてよい。例えば、特定のタイプを有するデータ、または、特定の宛先に宛てられたデータは、途中で特定のスクラビングサーバによって、スクラビングを受ける必要があり得る。スクラビングサーバは、受信データを監視すべく、または、データについて他の分析を実施すべく、悪意のある内容がないかデータをスキャンするのに使用され得る。その実施形態において、制御デバイスは、パスが特定のスクラビングサーバもしくはサーバのセットを通過するように、パスを決定し得る。
【００３４】
一度パス計算モジュール３１２が複数のパスを計算すると、パス計算モジュール３１２は、図４Ａから図４Ｂで示されるように、ネットワークを介してデータをルーティングするのに用いられるパスデータベース３０４に複数のパスを格納する。
［新規データストリーム用の高速パスの確立］
【００３５】
図４Ａから図４Ｂは、制御デバイス４４０を使用してパスを介してデータをルーティングするネットワークの構成を示す図である。
【００３６】
図４Ａは、ネットワークユーザ４４４から宛先サーバ４４６へ送信されるデータストリームを図示するダイアグラム４００を示す。データストリームは、パケット４０２、４０４、４０６、４０８、４１０および４１２を含む。データストリームの最初のパケット‐パケット４０２‐が転送デバイス１０２に到達するとき、それは制御デバイス４４０へルーティングされる。制御デバイス４４０は、このパケットが新規データストリームに属すると判断し、そのストリームのための高速パスを確立するプロセスを始める。
【００３７】
パスを決定すべく、制御デバイス４４０は、リアルタイムでパスを計算すべく、図３のパス計算モジュール３１２を利用してよい。図３について上述したように、かつ以下に図５についてより詳細に述べるように、計算は、そのタイプのデータフローが過去に消費してきた総帯域幅を考慮してよい。代替的に、制御デバイス４４０は事前に計算されたパスを読み出してもよい。事前に計算されたパスの読み出しのために、パス制御デバイス４４０は、新規データストリームが制御デバイス４４０で受信される場合、要求されたパスをパスデータベース３０４から読み出すパス選択モジュール４４２を含む。
【００３８】
上述のように、パスデータベース３０４は、様々なタイプと関連付けられる複数のパスを含む。複数の実施形態において、あるタイプが送信元ＩＰアドレスおよび宛先ＩＰアドレス、または送信元ポートおよび宛先ポートによって定義されてよい。例えば、パスデータベース３０４は、送信元ポート４４４のＩＰアドレスから宛先４４６のＩＰアドレスへのデータに関連付けられ、ＴＣＰ宛先ポート８０を有するパスを有し、ＨＴＴＰトラフィックを指定するてよい。パスデータベース３０４は、そのタイプを登録し、パスを示してよい。パスデータベース３０４は、また、そのタイプを複数登録し、それぞれは、異なる時間スライスのためのパスを有してもよい。その実施形態において、パスデータベース３０４は、現在時間に対応する時間スライスで、そのタイプのデータフローのパスをリトリーブ（ｒｅｔｒｉｅｖｅ）してよい。
【００３９】
高速パスを決定した後、図４Ｂに示されるように、制御デバイスは、パスに沿って各転送デバイスについての複数のルーティングテーブルを更新する。
【００４０】
図４Ｂは、ユーザ４４４とサーバ４４６との間でパスを確立すべく、制御デバイス４４０がどのようにネットワーク転送デバイスを構成するか図示するダイアグラム４５０を示す。制御デバイス４４０は、パス選択モジュール４４２によって選択されるパスを設定するルーティングモジュール４５２を含む。
【００４１】
選択されたパスに従って、ルーティングテーブルモジュール４５２は、パスに沿ってそれぞれの転送デバイスについてのルーティングテーブルを決定する。特に、それぞれの転送デバイスの各々について、ルーティングテーブルモジュール４５２は、どのポートにデータストリームのデータをルーティングするか示すルーティングテーブルを決定してよい。ルーティングテーブルは、どのようにしてデータを転送するか示す。送信元ることで、データストリームのデータは、パスに沿ってルーティングされるであろう。一実施形態において、複数の更新済みルーティングテーブルは、複数の送信元／宛先アドレスおよび複数の送信元／宛先ポートの特定の組み合わせを有する複数のパケットをどのように転送するか、転送デバイスに命令してよい。代替の実施形態において、データストリームはラベルで識別されてよく、更新済みルーティングテーブルは、そのラベルを有する複数のパケットをどのように転送するか示してよい。
【００４２】
ルーティングテーブルモジュール４５２は、パスに沿ってそれぞれの転送デバイスを構成すべく、それぞれのルーティングテーブルを送信する。図４Ｂにおいて、制御デバイス４４０は、ユーザ４４４とサーバ４４６との間のデータストリームが転送デバイス１０６、１０８、１１２および１１０を含むパスをたどると決定する。転送デバイスを構成すべく、制御デバイス４４０は、構成コマンド４２２、４２４、４２６および４２８を使用して複数の更新済みルーティングテーブルを送信する。これらの構成コマンドは、ユーザ４４４を宛先４４６へ接続する高速パスにおける全ての転送デバイスを構成する。特に、コマンド４２２は、データストリームにおける複数のパケットを転送デバイス１０４へ転送するように転送デバイス１０２に命令し、コマンド４２４は、複数のパケットを転送デバイス１１０へ転送するように転送デバイス１０４に命令し、コマンド４２６は、複数のパケットを転送デバイス１１２へ転送するように転送デバイス１１０に命令し、コマンド４２８は、複数のパケットを転送デバイス１０６へ転送するように転送デバイス１１２に命令し、コマンド４３０は、複数のパケットを転送デバイス１０８へ転送するように転送デバイス１０６に命令し、コマンド４３２は、複数のパケットを宛先４４６へ転送するように転送デバイス１０８に命令する。制御デバイスは、ＯｐｅｎＦｌｏｗ、パス計算要素プロトコル、またはいくつかの他の方法を使用して、複数の転送デバイスをプログラムしてよい。
【００４３】
これらのパケットの受信すると、制御デバイス４４０は、デフォルトのパスを使用してそれらのパケットをその宛先へとルーティングする。このように、ネットワークを通るパスが確立されている間、複数のパケットは、それらの宛先へとルーティングされ続けてもよく、エッジ転送デバイスに複数の初期のパケットをバッファリングする必要を回避する。
【００４４】
一度パスが設定されると（例えば、転送デバイスがそれらの新規ルーティングテーブルで構成されると）、制御デバイスによって設定された高速パスに沿ってデータが流れる。この時点で、データはもはや制御デバイスを通らなくなるので、転送デバイスを通ってより速い速度で、より低いエンドツーエンドのレイテンシで流れる。
［パスの計算］
【００４５】
図５は、より詳細な高速パスの計算のダイアグラム５００である。ダイアグラム５００は、顧客ネットワーク５０２を送信先ネットワーク５０４に接続するネットワークを示す。顧客ネットワーク５０２は、転送デバイス５１０に結合され、送信先ネットワーク５０４は転送デバイス５１６に結合されている。転送デバイス５１６および５１０は、転送デバイス５１２および５１４を通って互いに接続される。複数の転送デバイスの各々は、制御デバイス５０６によって決定される複数のルーティングテーブルを有する。
【００４６】
様々な転送デバイスは、複数のリンクによって相互接続される。特に、転送デバイス５１０は、リンク５２０および５２４によって転送デバイス５１２および５１４にそれぞれ接続され、転送デバイス５１２および５１４は、リンク５２２および５２６によって転送デバイス５１６にそれぞれ接続される。
【００４７】
上述のように、使用履歴データは、複数のリンクの各々について収集される。使用履歴データは、１週間等の周期的な時間サイクルにわたってリンクの使用状況に関する情報を提供してよい。ダイアグラム５００において、リンク５２０の使用履歴情報がグラフ５３０に示され、リンク５２４の使用情報がグラフ５３４に示され、リンク５２２の使用情報がグラフ５３２に示され、リンク５２６の使用情報が、グラフ５３６に示される。
【００４８】
複数のリンクにおける使用情報を収集することに加えて、複数のデータフローを説明する情報もまた収集される。ダイアグラム５００において、顧客ネットワーク５０２は、データフロー５６０を送信先ネットワーク５０４へ送信する。データフロー５６０は、その送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、宛先ポート、またはそれらの任意の組み合わせによって定義される特定のタイプを有する。データが収集され、データフロー５６２の挙動、例えばその持続時間およびそれが消費する帯域幅を説明する。
【００４９】
持続時間に基づいて、期間５５０が決定され、パスを計算するのに使用される。期間５５０は、例えば、複数の時間スライス（例えば、１週間サイクル内における５分間隔の複数の時間スライス）を含む特定の時間サイクルの一部である。データが入ってくるとき、パスがリアルタイムで計算される実施形態において、期間５５０が現在時間からデータフローの典型的な持続時間の終了まで動作してもよい。例えば、データフローが、月曜日の５：２５ＰＭに受信され、そのタイプの複数のデータフローが、典型的には２０分間動作する場合、期間５５０が５：２５ＰＭに開始してよく、月曜日の５：４５ＰＭまで動作してもよい。その時間サイクルの間に収集された使用履歴データは、次にパスを計算するのに用いられてよい。
【００５０】
複数のパスが事前に計算され、新規データフローが入ってくるときに選択だけされる実施形態において、異なる期間が各時間スライスについて決定されてよく、パスが各期間について決定されてもよい。例えば、データフローが典型的には２０分間動作する場合、第１の期間が日曜日の１２：００‐１２：２０ＡＭとして決定されてもよく、第２の期間が日曜日の１２：０５‐１２：２５ＡＭ等として決定されてもよい。次に、パスが複数の期間の各々について計算される。新規データフローが入ってくる場合、複数のデータフローが受信される時に対応するパスが選択される。上記の例において、データフローが日曜日の１２：００ＡＭに受信される場合、第１の期間についてのパスが選択されることになり、データフローが日曜日の１２：０５ＡＭに受信される場合、第２の期間についてのパスが選択されることになる、等である。
【００５１】
特定の期間についてのパスを決定すべく、様々な候補パスが最初に決定され、それらの候補パスに沿った使用履歴が評価され比較される。顧客ネットワーク５０２と送信先ネットワーク５０４との間に、２つの候補パスがある。第１の候補パスは、リンク５２０および５２２に沿っており、第２の候補パスはリンク５２４および５２６に沿っている。
【００５２】
第１の候補パスを評価すべく、期間５５０中の使用履歴がリンク５２０および５２２について決定される。グラフ５３０および５３２に示されるように、期間５５０の間、リンク５２０および５２２は、利用可能な総帯域幅５４０および５４２をそれぞれ有する。利用可能帯域幅は、リンクが飽和状態となる前に処理され得る追加の容量の大きさであってよい。それは、また、ネットワークの１または複数のリンク（ネットワークリングにおける他の複数のリンク等）がダウンし、複数のリンク５２０または５２２が、その通常のトラフィックおよびフェイルオーバトラフィックの両方を搬送しなければいけなく、そうでなければ、ダウンしているリンク上を移動したであろう欠陥のシナリオも考慮に入れてよい。リンク５２０の、およびリンク５２２の利用可能帯域幅が、データフロー５６０によって通常消費される総帯域幅と比較される。リンク５２０および５２２の両方がデータフロー５６０のための十分な帯域幅を有する場合、第１の候補パスが選択されてよい。
【００５３】
第１の候補パスについて行われる同じ評価は、また、リンク５２４および５２６を含む第２の候補パスについても行われる。期間５５０中の使用履歴は、リンク５２４および５２６について決定される。グラフ５３４および５３６に示されるように、期間５５０中、リンク５２４および５２６は、利用可能な総帯域幅５４４および５４６をそれぞれ有する。リンク５２４のおよびリンク５２６の利用可能帯域幅は、データフロー５６０によって通常消費される総帯域幅と比較される。リンク５２４および５２６の両方がデータフロー５６０のために十分な帯域幅を有する場合、第１の候補パスが選択されてよい。
【００５４】
ある例において、リンク５２２の利用可能帯域幅５４２は、データフロー５６０のために不十分であり得る。その例において、第２の候補パスが選択されてよい。
【００５５】
両方のパスが利用可能を有する場合、他の複数の因子がどのパスを使用するか選択するのに用いられてもよい。例えば、最も大きい可用性を有するパスが用いられてよい。別の例において、レイテンシが近似されてよく、最も低いレイテンシを有するパスが選択されてもよい。  方法
【００５６】
図６は、データフローについての複数の履歴特性に従ってパスを決定し、ネットワークを通るパスを設定するための方法６００を示すフローチャートである。段階６０２で、新規データストリーム用に複数の相互接続された転送デバイスを通るパスを作成するよう求める要求が、制御デバイスで受信される。要求は、データストリームにおける第１のパケットの形態、または他のタイプの要求であってもよい。
【００５７】
段階６０４で、新規データストリームのタイプが決定されてよい。そのタイプは、例えば、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ＴＣＰポート、または宛先ＴＣＰポートに基づいて識別されてよい。
【００５８】
そのタイプに基づいて、データストリームの複数の使用履歴特性が段階６０６で決定される。複数の使用履歴特性は、以前に送信されたそのタイプの複数のデータストリームによって利用された総帯域幅および以前に送信された複数のタイプのデータストリームの長さを含んでよい。
【００５９】
データストリームの使用履歴特性に基づいて、複数の相互接続された転送デバイスを通るパスが、段階６０８で決定される。パスは、送信元から宛先までに及ぶ。上述のように、パスは、要求が段階６０２で受信されるときに計算されてよく、または事前に計算され、要求が段階６０２で受信されるときだけ読み出されてもよい。
【００６０】
データストリームの複数の履歴特性に加えて、複数のネットワークリンクの使用履歴情報もまた、用いられてよい。使用履歴データは、複数の以前の時間サイクルの間に、複数の時間スライスにおける複数のリンクの利用を含んでよい。具体的に、時間サイクルは、繰り返される使用のパターンを有する周期的時間間隔を表してよい。また、複数の時間スライスは、周期的時間間隔におけるサブ間隔を表してよい。
【００６１】
時間スライスデータを使用してパスを計算すべく、どの新規データストリームを複数の時間スライスが占有することになるかについて決定されなければいけない。複数の時間スライスは、データストリームの典型的な長さに基づいて決定されてよい。次に、送信元と宛先とを接続する複数の候補パスが評価される。複数の候補パスの各々について、新規データストリームが占有するであろう複数の時間スライスの間における候補パスに沿った複数のリンクの利用が決定される。また、候補パスに沿った複数のリンクの決定された使用に基づいて、複数の時間スライスの間、パスにおける利用可能な総帯域幅が決定される。最後に、複数の候補パスについて決定された利用可能な総帯域幅が、データストリームの必要とする帯域幅と比較される。比較に基づいて、段階６０８で、候補パスが新規データストリームのために選択される。
【００６２】
一度パスが決定されると、段階６１０で複数のルーティングテーブルが、パスを実施することを決定される。パスに沿ったそれぞれの転送デバイスについて、ルーティングテーブルが決定される。ルーティングテーブルは、転送デバイスのどのポートに、段階６０８で決定されたパスに沿って新規データストリームのデータをルーティングするべきか示す。
【００６３】
最後に、段階６１２で、複数のルーティングテーブルが、決定されたパスに沿ってデータを転送するようにそれぞれの転送デバイスを構成すべく、送信される。  結論
【００６４】
本明細書で使用されるように、「ユーザ」という用語は、ネットワーク接続性サービスを利用する企業の従業者等のネットワーク接続性サービスの顧客、および、サービスプロバイダ自体のネットワークアドミニストレータの両方を包含してよい。ユーザはまた、異なる企業または組織に所属してもよい。
【００６５】
使用履歴データベース３０２、パスデータベース３０４およびデータフローデータベース３０６は、永続的メモリを含め、構造化されたメモリの任意の格納されたタイプであってよい。複数の例において、各データベースは、関連のデータベース、ファイルシステム、ドキュメントストア、またはＢｉｇＤａｔａストアとして実装されてよい。
【００６６】
図６の複数のデバイスおよび複数のモジュールの各々は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実装されてよい。
【００６７】
図６の複数のデバイスおよび複数のモジュールの各々は、同じまたは異なる複数のコンピューティングデバイスにおいて実装されてよい。そのようなコンピューティングデバイスは、限定されないが、パーソナルコンピュータ、携帯電話等のモバイルデバイス、ワークステーション、組み込みシステム、ゲームコンソール、テレビ、セットトップボックス、または、任意の他のコンピューティングデバイスを含み得る。更に、コンピューティングデバイスは、限定されないが、命令を実行し格納するための、プロセッサと、非一時的メモリを含むメモリとを有するデバイスを含み得る。メモリは、データおよびプログラム命令を有形に具体化し得る。ソフトウェアは、１または複数のアプリケーションおよびオペレーティングシステムを含み得る。ハードウェアは、限定されないが、プロセッサ、メモリ、およびグラフィカルユーザインタフェースディスプレイを含み得る。コンピューティングデバイスはまた、複数のプロセッサ、および複数の共有または別個のメモリ構成要素も有し得る。例えば、コンピューティングデバイスは、クラスタ化されたまたは分散された、コンピューティング環境またはサーバファームの一部または全体であってよい。
【００６８】
「（ａ）」、「（ｂ）」、「（ｉ）」、「（ｉｉ）」等の識別子が、異なる要素または段階のために使用されることがある。これらの識別子は明確にするために用いられ、必ずしも要素または段階の順序を指定するものではない。
【００６９】
本発明は、特定の複数の機能およびそれらの関係の実装を示す複数の機能的構成単位を用いて上述されてきた。これらの機能的構成単位の境界は、説明の利便性のために、本明細書で任意に画定された。複数の特定機能およびそれらの関係が適切に実行される限り、複数の代替の境界が画定され得る。
【００７０】
複数の具体的な実施形態についての前述の説明は、本発明の全般的性質を十分に明らかにすることになるので、当技術分野の技術内の知識を応用することで、過度の実験なしに、本発明の一般的概念から逸脱することなく、その他の人々がそのような複数の具体的な実施形態を様々な用途のために容易に修正し得る、および／または容易に改作し得る。したがって、そのような改作および修正は、本明細書において提示された教示および指導に基づいて、開示された複数の実施形態の均等物の趣旨内および範囲内であるように意図されている。本明細書の語句または用語は、説明を目的とするものであって限定するものではなく、これにより本明細書の語句または用語は、教示および指導を考慮して当業者により解釈されることになることが理解されるべきである。
【００７１】
本発明の広さおよび範囲は、上述の例示的実施形態の何れによっても限定されるべきではないが、以下の特許請求の範囲およびそれらの均等物のみに従って定義されるべきである。
［項目１］
複数のリンクと相互接続された複数の転送デバイスを含むネットワークを介して、新規データストリームを送信元から宛先へルーティングするためのコンピュータ実施方法であって、
（ａ）新規データストリームのために複数の上記相互接続された転送デバイスを通るパスを作成するよう求める要求を、制御デバイスで受信する段階と、
（ｂ）上記新規データストリームのタイプを決定する段階と、
（ｃ）決定された上記タイプに基づいて、上記決定されたタイプを有する複数のデータストリームの複数の使用履歴特性を決定する段階と、
（ｄ）上記決定されたタイプを有する複数のデータストリームの上記複数の使用履歴特性に基づいて、上記複数の相互接続された転送デバイスを通る、上記送信元から上記宛先への、要求された上記パスを決定する段階と、
（ｅ）上記パスに沿ったそれぞれの転送デバイスについて、上記転送デバイスのどのポートが、（ｄ）で決定された上記パスに沿って上記新規データストリームからのデータをルーティングするかを示すルーティングテーブルを決定する段階と、
（ｆ）上記それぞれの転送デバイスの各々について、（ｅ）で決定された上記ルーティングテーブルを送信し、上記転送デバイスを構成する段階と、
を備える、方法。
［項目２］
上記決定する段階（ｃ）は、以前に送信された上記タイプの複数のデータストリームによって利用された総帯域幅を決定する段階を有する、項目１に記載の方法。
［項目３］
上記決定する段階（ｃ）は、更に、以前に送信された上記タイプの複数のデータストリームの長さを決定する段階を有する、項目２に記載の方法。
［項目４］
上記決定する段階（ｄ）は、上記ネットワークの使用履歴データに基づいて上記パスを決定する段階を有する、項目３に記載の方法。
［項目５］
上記使用履歴データは、複数の以前の時間サイクルの間の複数の時間スライスにおける上記複数のリンクの利用を含み、上記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、上記複数の時間スライスは、上記複数の周期的時間間隔における複数のサブ間隔を表し、上記決定する段階（ｄ）は、
（ｉ）以前に送信された上記タイプの複数のデータストリームの長さに基づいて、どの複数の時間スライスを上記新規データストリームが占有することになるか決定する段階と、
上記送信元と宛先とを接続する複数の候補パスについて、
（ｉｉ）（ｉ）で決定された上記複数の時間スライスについて候補パスに沿って複数のリンクの利用を決定する段階と、
（ｉｉｉ）上記候補パスに沿った上記複数のリンクの決定された上記利用に基づいて、（ｉ）で決定された上記複数の時間スライスの間に上記パスにおいて利用可能な総帯域幅を決定する段階と、
（ｉｖ）上記複数の候補パスについて上記決定された利用可能な総帯域幅を、以前に送信された上記タイプの複数のデータストリームによって利用された上記決定された総帯域幅と比較し、上記新規データストリームのために要求された上記パスを選択する段階と、
を有する項目４に記載の方法。
［項目６］
上記利用を決定する上記段階（ｉｉ）は、少なくとも１つのリンクがダウンしていることを説明する、項目５に記載の方法。
［項目７］
上記決定する段階（ｄ）は、（ａ）における上記要求の受信の前に起こり、
（ｇ）上記決定されたパスを事前に計算されたパスデータベース内に格納する段階と、
（ｈ）上記新規データストリームが（ａ）で受信される場合、上記要求されたパスを上記事前に計算されたパスデータベースから読み出す段階と、
を更に有する、項目３に記載の方法。
［項目８］
上記決定する段階（ｂ）は、上記新規データストリームが特定の宛先ＩＰアドレスおよびＴＣＰポートを有するかどうか決定する段階を有する、項目１に記載の方法。
［項目９］
上記決定する段階（ｂ）は、上記新規データストリームが特定の送信元ＩＰアドレスおよびＴＣＰポートを有するかどうか決定する段階を有する、項目１に記載の方法。
［項目１０］
複数のリンクと相互接続された複数の転送デバイスを含むネットワークを介して、新規データストリームを送信元から宛先へ仮想的にルーティングするためのシステムであって、
新規データストリームのための複数の上記相互接続された転送デバイスを通るパスを作成するよう求める要求を受信し、上記新規データストリームのタイプを決定する制御デバイスと、
決定された上記タイプを有する複数のデータストリームの複数の使用履歴特性を格納するデータフローデータベースと、
上記決定されたタイプを有する複数のデータストリームの上記複数の使用履歴特性に基づいて、上記複数の相互接続された転送デバイスを介して上記送信元から上記宛先への、要求された上記パスを決定するパス計算モジュールと、
上記パスに沿ってそれぞれの転送デバイスについて、（ｉ）上記転送デバイスのどのポートが上記決定されたパスに沿って上記新規データストリームのデータをルーティングするか示すルーティングテーブルを決定し、（ｉｉ）上記パスに沿ってデータをルーティングするように上記転送デバイスを構成すべく、決定された上記ルーティングテーブルを送信する、ルーティングテーブルモジュールと、を備える、
システム。
［項目１１］
上記データフローデータベースは、以前に送信された上記タイプの上記複数のデータストリームによって利用される総帯域幅を格納する、項目１０に記載のシステム。
［項目１２］
上記データフローデータベースは、以前に送信された複数の上記タイプの複数のデータストリームの長さを格納する、項目１１に記載のシステム。
［項目１３］
上記ネットワークの使用履歴データを収集する使用履歴モジュールを更に備え、
上記パス計算モジュールは、上記ネットワークの上記使用履歴データに基づいて上記パスを決定する、
項目１２に記載のシステム。
［項目１４］
上記使用履歴データは、複数の以前の時間サイクルの間の複数の時間スライスにおける複数のリンクの利用を含み、上記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、上記複数の時間スライスは、上記複数の周期的時間間隔における複数のサブ間隔を表し、上記パス計算モジュールは、
（ｉ）以前に送信された上記タイプの複数のデータストリームの長さに基づいて、どの複数の時間スライスを上記新規データストリームが占有することになるか決定し、
上記送信元と宛先とを接続する複数の候補パスについて、
（ｉｉ）（ｉ）で決定された上記複数の時間スライスについて候補パスに沿って複数のリンクの利用を決定し、
（ｉｉｉ）上記候補パスに沿った上記複数のリンクの決定された上記利用に基づいて、（ｉ）で決定された上記複数の時間スライスの間に上記パスにおいて利用可能な総帯域幅を決定し、
（ｉｖ）上記複数の候補パスについて決定された上記利用可能な総帯域幅を、以前に送信された上記タイプの複数のデータストリームによって利用された決定された上記帯域幅の量と比較し、上記新規データストリームのために要求された上記パスを選択する、
項目１３に記載のシステム。
［項目１５］
上記パス計算モジュールは、上記利用（ｉｉ）を決定し、少なくとも１つのリンクがダウンしていることを説明する、項目１４に記載のシステム。
［項目１６］
上記パス計算モジュールは、上記制御デバイスにおける上記要求の受信前に、上記パスを計算し、
上記決定されたパスを事前に計算されたパスデータベース内に格納するパスデータベースと、
上記新規データストリームが上記制御デバイスで受信される場合、上記要求されたパスを上記事前に計算されたパスデータベースから読み出すパス選択モジュールと、を更に有する、
項目１２に記載のシステム。
［項目１７］
上記パス選択モジュールは、上記新規データストリームが特定の宛先ＩＰアドレスおよびＴＣＰまたはＵＤＰポートを有するかどうか決定する、項目１６に記載のシステム。
［項目１８］
上記パス選択モジュールは、上記新規データストリームが特定の送信元ＩＰアドレスおよびＴＣＰまたはＵＤＰポートを有するかどうか決定する、項目１６に記載のシステム。
［項目１９］
複数のリンクと相互接続された複数の転送デバイスを介して、新規データストリームを送信元から宛先へ仮想的にルーティングするための方法を実施すべく、少なくとも１つの機械によって実行可能な複数の命令のプログラムを有形に具体化するプログラム格納デバイスであって、上記方法は、
（ａ）新規データストリームのための複数の相互接続された転送デバイスを通るパスを作成するよう求める要求を制御デバイスで受信する段階と、
（ｂ）上記新規データストリームのタイプを決定する段階と、
（ｃ）決定された上記タイプに基づいて、上記決定されたタイプを有する複数のデータストリームの複数の使用履歴特性を決定する段階と、
（ｄ）上記決定されたタイプを有する複数のデータストリームの上記複数の使用履歴特性に基づいて、上記複数の相互接続された転送デバイスを通る、上記送信元から上記宛先への要求された上記パスを決定する段階と、
（ｅ）上記パスに沿ってそれぞれの転送デバイスについて、上記転送デバイスのどのポートが（ｄ）で決定された上記パスに沿って上記新規データストリームからデータをルーティングするか示すルーティングテーブルを決定する段階と、
（ｆ）それぞれの上記転送デバイスの各々について、（ｅ）で決定された上記ルーティングテーブルを送信し、上記転送デバイスを構成する段階と、を有する、
プログラム格納デバイス。
［項目２０］
上記決定する段階（ｃ）は、以前に送信された上記タイプの複数のデータストリームによって利用される総帯域幅を決定する段階と、以前に送信された複数の上記タイプの複数のデータストリームの長さを決定する段階と、を有し、
上記決定する段階（ｄ）は、ネットワークの使用履歴データに基づいて上記パスを決定する段階を有する、
項目１９に記載のプログラム格納デバイス。
［項目２１］
上記使用履歴データは、複数の以前の時間サイクルの間の複数の時間スライスにおける複数のリンクの利用を含み、上記時間サイクルは、繰り返される利用のパターンを有する複数の周期的時間間隔を表し、上記複数の時間スライスは、上記複数の周期的時間間隔における複数のサブ間隔を表し、上記決定する段階（ｄ）は、
（ｉ）以前に送信された上記タイプの複数のデータストリームの長さに基づいて、どの複数の時間スライスを上記新規データストリームが占有することになるか決定する段階と、
上記送信元と宛先とを接続する複数の候補パスについて、
（ｉｉ）（ｉ）で決定された上記複数の時間スライスについて候補パスに沿って複数のリンクの利用を決定する段階と、
（ｉｉｉ）上記候補パスに沿った上記複数のリンクの上記決定された利用に基づいて、（ｉ）で決定された上記複数の時間スライスの間に上記パスの利用可能な総帯域幅を決定する段階と、
（ｉｖ）上記複数の候補パスについて決定された上記利用可能な総帯域幅を、以前に送信された上記タイプの複数のデータストリームによって利用された、決定された上記総帯域幅と比較し、上記新規データストリームのために要求された上記パスを選択する段階と、を有する、
項目２０に記載のプログラム格納デバイス。
【図１】
0006562563.tif 000002
【図２】
0006562563.tif 000003
【図３】
0006562563.tif 000004
【図４Ａ】
0006562563.tif 000005
【図４Ｂ】
0006562563.tif 000006
【図５】
0006562563.tif 000007
【図６】
0006562563.tif 000008