(57)【要約】【課題】ネットワークにおいてデータをルーティングするデバイスを提供する。【解決手段】デバイスの処理手段は、データ・ユニットの宛先を決定し、データ・ユニットの宛先に基づいて、データ・ユニットにラベルを割り当て、ラベルに基づいて１または複数のルーティング・レコードから１つのルーティング・レコードを選択し、１つのルーティング・レコードで識別されたパスを介してデータ・ユニットを送るように動作する。処理手段は、データ・ユニットに割り当てられたラベルに対応する情報と、データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含むルーティング・レコードのうちの１つを識別し、それによりルーティング・レコードを選択することにより、ルーティング・レコードを選択する。【選択図】図２
2011050116.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいてデータ・ユニットをルーティングするデバイスであって、処理手段を備え、該処理手段は、
前記データ・ユニットを送るために使用された、前記ネットワークにおける第１のパスのアイデンティティを決定し、
１または複数の第１のルーティング・レコードから１つのルーティング・レコードを選択することにより、前記第１のパスの前記アイデンティティに基づいて前記ネットワークにおける第２のパスを識別し、
前記１つのルーティング・レコードが、１または複数の第２のルーティング・レコードへの参照を含んでいるかどうかを決定し、
前記１つのルーティング・レコードが前記参照を含んでいないと決定された場合、前記ルーティング・レコードを検査することによって前記第２のパスを識別し、
前記１つのルーティング・レコードが前記参照を含んでいると決定したとき、前記第２のルーティング・レコードから別のルーティング・レコードを選択し、前記別のルーティング・レコードを検査することによって前記第２のパスを識別し、
前記データ・ユニットを前記第２のパスを介して送り、それによって前記ネットワークにおいて前記データ・ユニットをルーティングする
ように動作する処理手段である、
デバイス。
【請求項２】
請求項１に記載のデバイスであって、前記処理手段が、前記第１のルーティング・レコードから前記１つのルーティング・レコードを選択するとき、前記第１のパスの前記アイデンティティに対応する情報を含む前記第１のルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択するように動作する、デバイス。
【請求項３】
請求項２に記載のデバイスであって、前記処理手段が、前記第２のルーティング・レコードから前記別のルーティング・レコードを選択するとき、前記第１のパスの前記アイデンティティに対応する前記情報と、前記データ・ユニットに含まれるアプリケーション情報に対応する追加情報とを含む前記第２のルーティング・レコードのうちの１つを識別し、それによって前記別のルーティング・レコードを選択するように動作する、デバイス。
【請求項４】
請求項３に記載のデバイスであって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーションを含む、デバイス。
【請求項５】
請求項１ないし４の何れかに記載のデバイスであって、前記処理手段が、前記データ・ユニットを検査することによって前記第１のパスの前記アイデンティティを決定するように動作する、デバイス。
【請求項６】
請求項１ないし５の何れかに記載のデバイスであって、前記処理手段が、前記第２のパスを介して前記データ・ユニットを送るとき、前記第２のパスを識別するように前記データ・ユニットを分類するように動作する、デバイス。
【請求項７】
請求項１ないし６の何れかに記載のデバイスであって、前記第１のパスが前記ネットワークにおけるトンネルを含む、デバイス。
【請求項８】
請求項１ないし７の何れかに記載のデバイスであって、前記第２のパスが、前記ネットワークにおける複数の第２のパスのうちの１つであり、前記第２のパスが、前記ネットワークにおける別のトンネルおよび前記ネットワークにおける非トンネル・パスを含む、デバイス。
【請求項９】
請求項１ないし８の何れかに記載のデバイスであって、前記ネットワークがパケット交換ネットワークである、デバイス。
【請求項１０】
請求項１ないし９の何れかに記載のデバイスであって、前記データ・ユニットがＩＰパケットを含む、デバイス。
【請求項１１】
ネットワークにおいてデータ・ユニットをルーティングする方法であって、
前記データ・ユニットを送るために使用された、前記ネットワークにおける第１のパスのアイデンティティを決定するステップと、
１または複数の第１のルーティング・レコードから１つのルーティング・レコードを選択することによって、前記第１のパスの前記アイデンティティに基づいて第２のパスを識別するステップと、
前記１つのルーティング・レコードが１または複数の第２のルーティング・レコードへの参照を含んでいるかどうかを決定するステップと、
前記１つのルーティング・レコードが前記参照を含んでいないと決定された場合、前記ルーティング・レコードを検査することによって前記第２のパスを識別するステップと、
前記１つのルーティング・レコードが前記参照を含んでいると決定したとき、前記第２のルーティング・レコードから別のルーティング・レコードを選択するステップと、前記別のルーティング・レコードを検査することによって前記第２のパスを識別するステップと
前記データ・ユニットを前記第２のパスを介して転送し、それによって前記データ・ユニットをルーティングするステップと
を備える方法。
【請求項１２】
請求項１１に記載の方法であって、前記第１のルーティング・レコードから前記１つのルーティング・レコードを選択する前記ステップが、前記第１のパスの前記アイデンティティに対応する情報を含む前記第１のルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択するステップを含む、方法。
【請求項１３】
請求項１１または１２に記載の方法であって、前記第２のルーティング・レコードから前記別のルーティング・レコードを選択する前記ステップが、前記第１のパスの前記アイデンティティに対応する前記情報と、前記データ・ユニットに含まれるアプリケーション情報に対応する追加情報とを含む前記第２のルーティング・レコードのうちの１つを識別し、それによって前記別のルーティング・レコードを選択するステップを含む、方法。
【請求項１４】
請求項１３に記載の方法であって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティングのアイデンティフィケーションを含む、方法。
【請求項１５】
請求項１１ないし１４の何れかに記載の方法であって、前記第１のパスの前記アイデンティティを決定する前記ステップが、前記データ・ユニットを検査するステップを含む、方法。
【請求項１６】
請求項１１ないし１５の何れかに記載の方法であって、前記データ・ユニットを前記第２のパスを介して送る前記ステップが、前記データ・ユニットを、前記第２のリンクを識別するように分類するステップを含む、方法。
【請求項１７】
請求項１１ないし１６の何れかに記載の方法であって、前記第１のパスが前記ネットワークにおけるトンネルを含む、方法。
【請求項１８】
請求項１１ないし１７の何れかに記載の方法であって、前記第２のパスが、前記ネットワークにおける複数の第２のパスのうちの１つであり、前記第２のパスが、前記ネットワークにおける別のトンネルおよび前記ネットワークにおける非トンネル・パスを含む、方法。
【請求項１９】
請求項１１ないし１８の何れかに記載の方法であって、前記ネットワークがパケット交換に基づくものである、方法。
【請求項２０】
請求項１１ないし１９の何れかに記載の方法であって、前記データ・ユニットがＩＰパケットを含む、方法。
【請求項２１】
ネットワークにおいてデータ・ユニットをルーティングするデバイスであって、処理手段を備え、該処理手段は、
前記データ・ユニットの宛先を決定し、
前記データ・ユニットの前記宛先に基づいて、前記データ・ユニットにラベルを割り当て、
前記ラベルに基づいて１または複数のルーティング・レコードから１つのルーティング・レコードを選択し、
前記１つのルーティング・レコードで識別されたパスを介して前記データ・ユニットを送る
ように動作する処理手段であり、
前記処理手段は、前記データ・ユニットに割り当てられた前記ラベルに対応する情報と、前記データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含む前記ルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択することによって、前記ルーティング・レコードを選択するように動作する、
デバイス。
【請求項２２】
請求項２１に記載のデバイスであって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーションを含む、デバイス。
【請求項２３】
請求項２１または２２に記載のデバイスであって、前記処理手段が、前記パスを介して前記データ・ユニットを送るとき、前記パスを識別するように前記データ・ユニットを分類するように動作する、デバイス。
【請求項２４】
請求項２１ないし２３の何れかに記載のデバイスであって、前記パスが、前記ネットワークにおける複数のパスのうちの１つであり、前記パスが、前記ネットワークにおけるトンネルおよび前記ネットワークにおける非トンネル・パスを含む、デバイス。
【請求項２５】
請求項２１ないし２４の何れかに記載のデバイスであって、前記ネットワークがパケット交換ネットワークである、デバイス。
【請求項２６】
請求項２１ないし２５の何れかに記載のデバイスであって、前記データ・ユニットがＩＰパケットを含む、デバイス。
【請求項２７】
ネットワークにおいてデータ・ユニットをルーティングする方法であって、
前記データ・ユニットの宛先を決定するステップと、
前記データ・ユニットの前記宛先に基づいて、前記データ・ユニットにラベルを割り当てるステップと、
前記ラベルに基づいて１または複数のルーティング・レコードから１つのルーティング・レコードを選択するステップと、
前記１つのルーティング・レコードで識別されたパスを介して前記データ・ユニットを送るステップと
を備え、
前記ルーティング・レコードを選択する前記ステップが、前記データ・ユニットに割り当てられた前記ラベルに対応する情報と、前記データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含む前記ルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択するステップを含む、
方法。
【請求項２８】
請求項２７に記載の方法であって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーションを含む、方法。
【請求項２９】
請求項２７または２８に記載の方法であって、前記パスを介して前記データ・ユニットを送る前記ステップが、前記データ・ユニットを、前記パスを識別するように分類するステップを含む、方法。
【請求項３０】
請求項２７ないし２９の何れかに記載の方法であって、前記パスが、前記ネットワークにおける複数のパスのうちの１つであり、前記パスが、前記ネットワークにおけるトンネルおよび前記ネットワークにおける非トンネル・パスを含む、方法。
【請求項３１】
請求項２７ないし３０の何れかに記載の方法であって、前記ネットワークがパケット有資格ネットワークである、方法。
【請求項３２】
請求項２７ないし３１の何れかに記載の方法であって、前記データ・ユニットがＩＰパケットを含む、方法。
【請求項３３】
コンピューティング・デバイスに、請求項１１ないし１８および請求項２７ないし３２の何れかに記載の前記方法を実行させる少なくとも１つの命令を含むコンピュータ・プログラム。
【請求項３４】
請求項３３に記載のソフトウェアを含むコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークにおいてデータ・ユニットをルーティングするデバイスおよび方法に関する。より詳細には、本発明は、待ち時間駆動型分散アプリケーション（latency driven distributed application）の共有ネットワーク環境においてパケットをルーティングする特定のアプリケーションを有するが、これに限られるものではない。
【背景技術】
【０００２】
ネットワークの遅延を低減することによって、アプリケーションの性能を向上させるために地理的に分散されたサーバのネットワークの使用を必要とするコンピュータ・アプリケーションが台頭しつつある。この性質のアプリケーションは、時として、待ち時間駆動型分散（ＬＤＤ）アプリケーションと呼ばれる。ＬＤＤアプリケーションの一例には、インターネットを介して動作する大規模マルチプレイヤ・リアルタイム・ゲームがある。この性質のアプリケーションは、典型的には、インターネットの周囲の分散ソースからのマルチメディア素材のリアルタイムの構成を伴う。その結果、ＬＤＤアプリケーションのリアルタイムの性質を保持するために、ＬＤＤアプリケーションのユーザの近くに配置されているサーバでデータの処理および配布を実行することが必要となることが多い。例えば、オーストラリアにいるユーザのために、ヨーロッパに配置されているサーバにおいてマルチメディア・データの処理および配布を実行すると、オーストラリアのユーザに対してＬＤＤアプリケーションのリアルタイムの性能を大幅に劣化させる遅延をもたらす可能性がある。この例では、オーストラリアに配置されているサーバからマルチメディア・データの処理および配布を実行することによって、遅延を低減することが有利となる。
【発明の概要】
【０００３】
ＬＤＤアプリケーション・プロバイダが、地理的に分散された１組のサーバを持つために、それらプロバイダのインフラストラクチャを購入してインストールすることは可能であるが、この選択肢は比較的費用がかかるという欠点がある。より費用対効果の大きい解決策は、サーバを所有する団体から必要なコンピューティング・リソースをリースまたは賃借して、パスなどを提供することである。残念ながら、この選択肢の欠点は、アプリケーション・プロバイダが他のアプリケーション・プロバイダと物理的なリソース（つまり、コンピューティング・リソース）を共有する可能性が高いことであり、それによって、処理の遅延によるＬＤＤアプリケーションの性能の低下がもたらされる可能性がある。
【０００４】
定義
以下に、本明細書を通じて使用される様々な用語の定義を記載する。
【０００５】
・ルーティング  −  通信ネットワークにおいてデータ・ユニット（unit of data）を送る動作を指すために使用される。本明細書で使用される「ルーティング」という用語は、データ・ユニットを送る特定の技術に制限されない。従って、「ルーティング」という単語は、例えば、レベル３のネットワーク・レベルのパケット・ルーティングや、レベル２のリンク・レベルの交換（スイッチング）などを含む技術の範囲をカバーするのに十分な広義の意味を有する。
【０００６】
・パス  −  ネットワーク・ノード間でのデータ・ユニットの転送に使用される、通信ネットワークにおける１または複数のリンクを指すために使用される。従って、パスは、隣接するノードがデータを交換できるようにする単一のリンクや、隣接してないノード間で他のノードを介してデータを交換できるようにする一連のリンクを含み得る。更に、本明細書を通じて「パス」および「リンク」という用語は、光ファイバ・ケーブルなどの物理的なパスまたはリンクや、ＩＰトンネルなどの仮想パスまたはリンクを網羅することを意図している。
【０００７】
本発明の第１の態様によれば、ネットワークにおいてデータ・ユニットをルーティングするデバイスが提供され、このデバイスは、
データ・ユニットを送るために使用された、ネットワークにおける第１のパスの識別（ＩＤ、identity）を決定し、
第１のパスのＩＤに基づいて、ネットワークにおける第２のパスを識別し、
データ・ユニットを、第２のパスを介して転送し、それによって前記ネットワークにおいてデータ・ユニットをルーティングする
ように動作する処理手段を含む。
【０００８】
好ましくは、処理手段は、
１または複数の第１のルーティング・レコードから１つのルーティング・レコードを選択し、
このルーティング・レコードが１または複数の第２のルーティング・レコードへの参照を含んでいるかどうかを決定し、
このルーティング・レコードが参照を含んでいないと決定した場合、このルーティング・レコードを検査することによって第２のパスを識別し、
このルーティング・レコードが参照を含んでいると決定した場合、第２のルーティング・レコードから別のルーティング・レコードを選択し、その別のルーティング・レコードを検査することによって第２のパスを識別する
ことによって第２のパスを識別するように動作する。
【０００９】
好ましくは、処理手段は、第１のルーティング・レコードから１つのルーティング・レコードを選択するとき、第１のパスのＩＤに対応する情報を含む第１のルーティング・レコードのうちの１つを識別し、それによってルーティング・レコードを選択するように動作する。
【００１０】
好ましくは、処理手段は、第２のルーティング・レコードから別のルーティング・レコードを選択するとき、第１のパスのＩＤに対応する情報と、データ・ユニットに含まれるアプリケーション情報に対応する追加情報とを含む前記第２のルーティング・レコードのうちの１つを識別し、それによって、別のルーティング・レコードを選択するように動作する。
【００１１】
好ましくは、データ・ユニットに含まれるアプリケーション情報は、データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーション（ＩＤ）を含む。
【００１２】
好ましくは、処理手段は、データ・ユニットを検査することによって、第１のパスのＩＤを決定するように動作する。
【００１３】
好ましくは、処理手段は、第２のパスを介してデータ・ユニットを送る場合に、第２のパスを識別するようにデータ・ユニットを分類（arrange、整列）するように動作する。
【００１４】
好ましくは、第１のパスは、ネットワークにおけるトンネルを含む。
【００１５】
好ましくは、第２のパスは、ネットワークにおける複数の第２のパスのうちの１つであり、第２のパスは、ネットワークにおける別のトンネル、およびネットワークにおける非トンネル・パスを含む。
【００１６】
好ましくは、ネットワークはパケット交換に基づく。
【００１７】
好ましくは、データ・ユニットはＩＰパケットである。
【００１８】
本発明の第２の態様によれば、ネットワークにおいてデータ・ユニットをルーティングする方法が提供され、この方法は、
データ・ユニットを送るために使用された、ネットワークにおける第１のパスのＩＤ（identity、アイデンティティ）を決定するステップと、
第１のパスのＩＤに基づいて、第２のパスを識別するステップと、
データ・ユニットを、第２のパスを介して送り、それによってデータ・ユニットをルーティングするステップと
を含む。
【００１９】
好ましくは、第２のパスを識別するステップは、
１または複数の第１のルーティング・レコードから１つのルーティング・レコードを選択するステップと、
ルーティング・レコードが１または複数の第２のルーティング・レコードへの参照を含んでいるかどうかを決定するステップと、
ルーティング・レコードが参照を含んでいないと決定した場合に、ルーティング・レコードを検査することによって第２のパスを識別するステップと、
ルーティング・レコードが参照を含んでいると決定した場所に、第２のルーティング・レコードから別のルーティング・レコードを選択し、その別のルーティング・レコードを検査することによって第２のパスを識別するステップと
を含む。
【００２０】
好ましくは、第１のルーティング・レコードからルーティング・レコードを選択するステップは、第１のパスのＩＤに対応する情報を含む第１のルーティング・レコードのうちの１つを識別し、それによってルーティング・レコードを選択するステップを含む。
【００２１】
好ましくは、第２のルーティング・レコードから別のルーティング・レコードを選択するステップは、第１のパスのＩＤに対応する情報と、データ・ユニットに含まれるアプリケーション情報に対応する追加情報とを含む第２のルーティング・レコードのうちの１つを識別し、それによって、別のルーティング・レコードを選択するステップを含む。
【００２２】
好ましくは、データ・ユニットに含まれるアプリケーション情報は、データ・ユニットの出所であるコンピューティング・デバイスの識別（ＩＤ、identification）を含む。
【００２３】
好ましくは、第１のパスのＩＤを決定するステップは、データ・ユニットを検査するステップを含む。
【００２４】
好ましくは、第２のパスを介してデータ・ユニットを送るステップは、データ・ユニットを、第２のパスを識別するように分類するステップを含む。
【００２５】
好ましくは、第１のパスはネットワークにおけるトンネルを含む。
【００２６】
好ましくは、第２のパスは、ネットワークにおける複数の第２のパスのうちの１つであり、第２のパスは、ネットワークにおける別のトンネル、およびネットワークにおける非トンネル・パスを含む。
【００２７】
好ましくは、ネットワークはパケット交換に基づく。
【００２８】
好ましくは、データ・ユニットはＩＰパケットである。
【００２９】
本発明の第３の態様によれば、ネットワークにおいてデータ・ユニットをルーティングするデバイスが提供され、このデバイスは、
データ・ユニットの宛先を決定し、
データ・ユニットの宛先に基づいて、データ・ユニットにラベルを割り当て、
ラベルに基づいて、１または複数のルーティング・レコードから１つのルーティング・レコードを選択し、
ルーティング・レコードで識別されたパスを介してデータ・ユニットを送る
ように動作する処理手段を含む。
【００３０】
好ましくは、処理手段は、データ・ユニットに割り当てられたラベルに対応する情報と、データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含むルーティング・レコードのうちの１つを識別し、それによってルーティング・レコードを選択することによって、ルーティング・レコードを選択するように動作する。
【００３１】
好ましくは、データ・ユニットに含まれるアプリケーション情報は、データ・ユニットの出所であるコンピューティング・デバイスの識別（ＩＤ）を含む。
【００３２】
好ましくは、処理手段は、パスを介してデータ・ユニットを送るとき、パスを識別するようにデータ・ユニットを分類するように動作する。
【００３３】
好ましくは、パスは、ネットワークにおける複数のパスのうちの１つであり、パスは、ネットワークにおけるトンネル、およびネットワークにおける非トンネル・パスを含む。
【００３４】
好ましくは、ネットワークはパケット交換ネットワークである。
【００３５】
好ましくは、データ・ユニットはＩＰパケットを含む。
【００３６】
本発明の第４の態様によれば、ネットワークにおいてデータ・ユニットをルーティングする方法が提供され、この方法は、
データ・ユニットの宛先を決定するステップと、
データ・ユニットの宛先に基づいて、データ・ユニットにラベルを割り当てるステップと、
ラベルに基づいて、１または複数のルーティング・レコードから１つのルーティング・レコードを選択するステップと、
ルーティング・レコードで識別されたパスを介してデータ・ユニットを送るステップと
を含む。
【００３７】
好ましくは、ルーティング・レコードを選択するステップは、データ・ユニットに割り当てられたラベルに対応する情報と、データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含むルーティング・レコードのうちの１つを識別し、それによってルーティング・レコードを選択するステップを含む。
【００３８】
好ましくは、データ・ユニットに含まれるアプリケーション情報は、データ・ユニットの出所であるコンピューティング・デバイスのＩＤを含む。
【００３９】
好ましくは、パスを介してデータ・ユニットを送るステップは、データ・ユニットを、パスを識別するように分類するステップを含む。
【００４０】
好ましくは、パスは、ネットワークにおける複数のパスのうちの１つであり、パスは、ネットワークにおけるトンネル、およびネットワークにおける非トンネル・パスを含む。
【００４１】
好ましくは、ネットワークはパケット交換ネットワークである。
【００４２】
好ましくは、データ・ユニットはＩＰパケットを含む。
【００４３】
本発明の第５の態様によれば、コンピューティング・デバイスに本発明の第２および／または第４の態様による方法を実行させる少なくとも１つの命令を含むコンピュータ・プログラムが提供される。
【００４４】
本発明の第６の態様によれば、本発明の第５の態様によるコンピュータ・プログラムを含むコンピュータ読取可能媒体が提供される。
【００４５】
次に、本発明の範囲内に含まれ得る他の任意の実施形態もあるが、単なる例により本発明の一実施形態について添付の図面を参照して説明する。
【図面の簡単な説明】
【００４６】
【図１】図１は、本発明の実施形態によるネットワークの概略図である。
【図２】図２は、図１のネットワークにおいてデータ・ユニットをルーティングするデバイスを示す。
【図３】図３は、図２のデバイスによって維持されるルーティング・テーブルの一例を示す。
【図４】図４は、本発明の別の実施形態によるネットワークの一例を提供する。
【図５】図５は、図１および図４のネットワークによって実行される様々なステップを示すフロー・チャートである。
【図６】図６は、図１および図４のネットワークによって実行される様々なステップを示す別のフロー・チャートである。
【発明を実施するための形態】
【００４７】
図１は、待ち時間駆動型分散（ＬＤＤ）アプリケーションを実行するために使用することができる共有コンピュータ・ネットワーク１０１を示している。ネットワーク１０１は、地理的に分散された複数のサブネットワーク１０３を含む。例えば、サブネットワーク１０３は、異なる国に配置され、異なる組織によって維持されていてもよい。サブネットワーク１０３は、時としてイントラネットと呼ばれる。それぞれのサブネットワーク１０３は、１または複数のコンピュータ・サーバ１０５と、サブネットワーク１０３間でのデータ・パケットのルーティングを行うように動作するデバイス１０７とを含む。それぞれのデバイス１０７は、一般にゲートウェイ、ルータまたはスイッチと呼ばれ、データ・パケットのルーティング専用の電子デバイスの形態である。データ・パケットを互いに交換するために、それぞれのサブネットワーク１０３内のコンピュータ・サーバ１０５およびデバイス１０７は、例えば高速Ｅｔｈｅｒｎｅｔ（登録商標）などを使用して共にネットワーク接続されている。サブネットワーク１０３間でのデータ・パケットのルーティングを可能にするために、ネットワーク１０１は、隣接するデバイス１０７を接続してデータを互いにルーティング（交換）するように確立することができる複数のリンク１０９も含む。リンク１０９は、要求されるレベルのサービスを提供する「ベスト・エフォート型」（サービス・レベル・アグリーメントなし（no service level agreement））やトンネルやＶＰＮの形態とすることができる。
【００４８】
ＬＤＤアプリケーションをネットワーク１０１に配置する前に、ＬＤＤアプリケーション・プロバイダは、幾つかのサブネットワーク１０３のオペレータと交渉して、コンピュータ・サーバ１０５の能力およびデバイス１０７における交換（スイッチング）リソースの一部を借りる。典型的には、アプリケーション・プロバイダは、そのアプリケーション・プロバイダがアプリケーション処理能力を有することを望む地理的な位置におけるサブネットワーク１０３を制御するオペレータのみへ、申し入れを行う。コンピュータ・サーバ１０５は、それぞれのサブネットワーク１０３のオペレータが、その借りられた容量を、そのアプリケーション・プロバイダのＬＤＤアプリケーションを独占的に実行する仮想サーバとして構成することができるようになっている。次いで、アプリケーション・プロバイダは、アプリケーション・プロバイダが仮想サーバを有するサブネットワーク１０３のデバイス１０７を相互接続するリンク１０９を確立する。例えば、アプリケーション・プロバイダが、サブネットワーク１０３ａ、１０３ｃ、および１０３ｄに仮想サーバを有する場合、アプリケーション・プロバイダは、ネットワーク・プロバイダから帯域幅保証付きリンク１０９ｂおよび１０９ｄを借りることができる。
【００４９】
あるいは、アプリケーション・プロバイダは、帯域幅保証付きのリンク１０９ｂおよび１０９ｄ借りて、サブネットワーク１０３ａと１０３ｄとの間にベスト・エフォート型リンク９ｈを確立することを選択してもよい。リンク１０９ｃは、パケットのルーティングの遅延が重要問題ではない場合に使用される。アプリケ―ション・プロバイダまたはネットワーク・サービス・プロバイダは、必要なリンク１０９を確立してデータ・パケットを適切な仮想サーバへ送り、その仮想サーバで実行されるＬＤＤアプリケーションによって処理されるようにする。
【００５０】
上述のように、ネットワーク１０１は、データ・パケットのルーティングを行うデバイス１０７を含む。より詳細には、デバイス１０７は、ＬＤＤアプリケーションを実行する適切な仮想サーバへの配信のための、データ・パケットをルーティングするタスクを行うように構成されている。図２を参照すると、デバイス２０７のそれぞれは、第１のインターフェイス２１１および第２のインターフェイス２１３を有する。第１のインターフェイス２１１は、リンク１０９を介して幾つかのＩＰトンネルをサポートすることができる。アプリケーション・プロバイダがサブネットワーク１０３ａおよび１０３ｃに仮想サーバを有する先の例では、ＩＰトンネルは、リンク９ｂによってサポートされることになる。ＩＰトンネルのサポートに加えて、第１のインターフェイス２１１は、非トンネルのベスト・エフォート型ＩＰ接続をサポートすることもできる。第２のインターフェイス２１３は、基本的に、それぞれのサブネットワーク１０３において動作し得る仮想サーバに接続されている。
【００５１】
デバイス１０７のそれぞれは、ルーティング・プロセスも含む（図示せず）。一般的に言えば、ルーティング・プロセスは、第１のインターフェイス２１１で受信されたデータ・パケット（つまり、ＩＰトンネルまたは非トンネルＩＰ接続を介して受信されたデータ・パケット）を、その第１のインターフェイス２１１がデータ・パケットを受信したＩＰトンネルのＩＤ（アイデンティティ）に基づいて、ルーティングすることができる。以下の段落で詳述するように、それぞれのデバイス１０７におけるルーティング・プロセスは、第１のインターフェイス２１１で受信されるデータ・パケットのフィールドに含まれている転送ラベル（トンネル識別子）を検査することによって、ＩＰトンネルのＩＤを決定する。本発明のこの実施形態では、転送ラベルは、第１のインターフェイス２１１で受信されたパケットの宛先ＩＰアドレスの形態である。ＩＰアドレスは、ＩＰトンネルにおけるＩＰも識別し得る。本発明の代替の実施形態において、転送ラベルは、パケット・ヘッダやペイロードにおける別の識別子とすることもできると考えられている。この点に関して、転送ラベルは、ＩＰｖ６パケットにおける「フロー・ラベル」識別子とすることができる。ルーティング・プロセスは、ＩＰトンネルまたは非トンネルＩＰ接続のうちの１つを、データ・パケットが受信されたＩＰトンネルのＩＤに基づいて選択し、その受信されたデータ・パケットを、選択されたＩＰトンネルまたは非トンネルＩＰ接続を介して送ることを含むものである。あるいは、ルーティング・プロセスは、受信されたデータ・パケットが、第２のインターフェイス２１３を介して仮想サーバへ送られることを含み得、そのパケットがその仮想サーバで実行されるＬＤＤアプリケーションによって処理されるようにする。
【００５２】
データ・パケットをルーティングするためのルーティング・プロセスの能力における細分性（granularity）のレベルを向上させるために、デバイス１０７は、アプリケーション情報に基づいてデータ・パケットをルーティングすることもできる。従って、デバイス１０７は、実際上、トンネル・レベルの交換（先の段落で説明した）およびアプリケーション・レベルの交換を行う。アプリケーション情報を決定するために、デバイス１０７におけるルーティング・プロセスは、受信されたデータ・パケットに含まれるアプリケーション・ラベルを検査する。本発明のこの実施形態の場合、アプリケーション情報は、実際上、データ・パケットの出所であるデバイスの一意の識別子である。
【００５３】
転送ラベル（ＩＰトンネルのＩＤ）およびアプリケーション・ラベル（アプリケーション関連情報）に基づいてデバイス１０７にデータ・パケットをルーティングさせる利点は、アプリケーション・プロバイダが、サービス品質（ＱｏＳ）を制御し、マルチキャストを実施し、仮想サーバ間での効率的なセッションのリダイレクション（redirection）や流れの再ルーティング並びにパケット・フィルタリングおよび類似のサービスを、仮想サーバにネットワーク・レベルの機能を負担させることなく展開できるようにする、という能力を有することである。
【００５４】
転送ラベルおよびアプリケーション・ラベルに基づいてデータ・パケットを送るために、デバイス１０７のそれぞれは転送ラベル・テーブルを維持する。そのラベルの一例が図３に示されている。転送ラベル・テーブルは、着信転送ラベルＦＬｉ、発信転送ラベルＦＬｏ、およびアプリケーション転送テーブルへのリンクを含む。図３の転送テーブルには示されていないが、転送テーブルは、アプリケーション・ラベル・オフセットおよびアプリケーション・ラベル・マークを含むこともできると考えられている。転送テーブルのこれら２つの構成要素は、実際上、受信されたデータ・パケットでアプリケーション・ラベルを探すために使用することができる。より詳細には、アプリケーション・ラベル・オフセットは、受信されたデータ・パケットの先頭からの、アプリケーション・ラベルが位置しているところまでのバイト数を表す。次いで、アプリケーション・ラベル・マスクを使用してアプリケーション・ラベルを計算するが、これは、アプリケーション・ラベル・マスクを、アプリケーション・ラベル・オフセットのところに含まれるデータに適用することによって行われる。
【００５５】
各アプリケーション・プロバイダは、それ自体のアプリケーション転送テーブルを有する。アプリケーション転送テーブルへのリンクが空の場合、ルーティング・プロセスは、転送ラベル・テーブルに含まれている情報に基づいてデータ・パケットをルーティングする。一方、アプリケーション転送テーブルへのリンクが空でない場合、ルーティング・プロセスは、アプリケーション転送テーブルに含まれている情報に基づいてデータ・パケットをルーティングする。アプリケーション転送テーブルの一例も図３に示されている。アプリケーション転送テーブルは、着信転送ラベルＦＬｉ、着信アプリケーション・ラベルＡＬｉ、発信アプリケーション・ラベルＡＬｏ、および発信転送ラベルＦＬｏを含む。
【００５６】
クライアント・デバイスから仮想サーバへ送られるデータ・パケットは、最初はデバイス１０７のうちの１つに着く。受信されたこうしたデータ・パケットは、転送ラベルを有する場合も有さない場合もあり得る。典型的には、データ・パケットは、ネットワーク１０１における通常のルーティング・プロセスによって到着する。この性質のデータ・パケットを送るために、デバイス１０７のそれぞれは入力マッピング・テーブル（ingress mapping table）を維持し、その例が図３に示されている。入力マッピング・テーブルは、アドレスおよびビット・マスクの形態の宛先ＩＰアドレス・プレフィックス（仮想サーバをサポートしているコンピュータ・サーバ１０５のうちの１つのコンピュータ・サーバのもの）、転送ラベルＦＬｏ、およびアプリケーション転送テーブルへのリンクを含む。データ・パケットの宛先アドレスが、入力マッピング・テーブルのエントリと一致する場合、ルーティング・プロセスは、転送ラベルＦＬｏをデータ・パケットに割り当てる。次いで、ルーティング・プロセスは、入力マッピング・テーブルの「Ａｐｐ  Ｔａｂｌｅ」フィールドによって示されるアプリケーション転送テーブルに含まれている情報に基づいて、データ・パケットをルーティングする。「Ａｐｐ  Ｔａｂｌｅ」が空の場合、データ・パケットは、ＦＬｏによって識別されるトンネルへ直接にルーティングされる。
【００５７】
デバイス１０７は、デバイス１０７によって維持されるテーブルに含まれる様々なラベルをアプリケーション・プロバイダが変更することができるように、構成されている。デバイス１０７の構成は、アプリケーション・プロバイダが、それらに関連付けられているテーブルおよびラベルを変更するこのみ可能であり、他のアプリケーション・プロバイダに関連付けられているテーブルを変更したりラベルを使用したりすることはできないように、なっていることに留意されたい。この態様を実施するために、デバイス１０７のそれぞれは、図２に示されているネットワーク抽象化レイヤ（Network Abstraction Layer）と呼ばれるアプリケーション・プログラム・インターフェイス（ＡＰＩ）を含む。ネットワーク抽象化レイヤは、アプリケーション・プロバイダによって使用される転送ラベルの実際の値を隠し、アプリケーション・プロバイダが、それらに帰属するラベル・テーブル・エントリの変更のみを行えることを確実にする。更に、上述のように、デバイス１０７のそれぞれは、個々のアプリケーション・プロバイダごとに個別のアプリケーション・ラベル・テーブルを維持する。
【００５８】
以下では、ネットワーク１０１が大規模マルチプレイヤ・ゲームや分散型仮想環境内で富んだ没入型通信環境（rich immersive communications environment）を提供する手法の一例を示している。この例のために、ＬＤＤアプリケーションは、音の届く範囲内の他のすべてのプレイヤのそれぞれについての個々の３次元オーディオ・シーンを提供する。この例では、（１）クライアントでのアプリケーション・ラベルによるパケットのラベリング、（２）トンネルによりスイッチングされたパスを作成するための転送ラベルの使用、（３）ネットワーク内でのアプリケーション・ラベルを使用した転送のアプリケーション・レベルの制御、および（４）サービス品質に対するアプリケーション制御について述べる。
【００５９】
図４に示されているように、アプリケーション・プロバイダＡは、サイトＳ１からＳ７で仮想サーバを借りていると仮定する。豊んだ没入型通信サービスのクライアントの小さいサブセット（ＣＡ・・・ＣＨ）が検査される。図４（ａ）は、仮想世界におけるこれらのユーザの場所、およびアバタＡに対するこれらのユーザの空間的な位置を示している。２つのエリアは、アバタの聴取範囲および対話ゾーン（他のアバタとの対話通信があり得る）として定義されている。対話ゾーン内の他のソースからは遅延が少ないことが必要とされ、対話ゾーン外のソースからは遅延が大きくても許容され得る。借りているサーバのサブセットに関連してのアバタの「所有者」の物理的な場所は、図４（ｂ）に示されている。これらのユーザを含む仮想世界のエリアのオーディオ・シーンを計算するための最適な場所は、サンフランシスコにあるサーバＳ３においてアプリケーション・プロバイダによって（おそらくは、遅延とリソースの使用量との間での妥協案として）計算される。図４（ｃ）に示されているサーバＳ１およびＳ７は、図３に示されている正式なラベル・テーブルおよび入力マッピング・テーブルを維持すると仮定される。
【００６０】
このアプリケーションの場合、一意のアバタＩＤが各クライアントに割り当てられる。例えば、クライアントＣＡにはアバタＩＤ  Ａ、ＣＢにはアバタＩＤ  Ｂ、などのように割り当てられる。このアバタＩＤは、アプリケーションが、オーディオ・フローを適切なサーバへルーティングするため、および各フローに提供すべき必要なサービス品質を決定するために、有用である。それだけ有用性があるので、アプリケーション・プロバイダは、アプリケーション・ラベルにこの値を使用する。従って、各クライアントは、各オーディオ・パケットのアプリケーション・ラベルをそのアバタＩＤに設定する。状態情報などのような他のタイプのフローは、異なるようにラベル付けされ得る。
【００６１】
クライアント・ノードＣＤからネットワーク１０１を通じてサーバＳ３へオーディオ・パケットを送信するために、オーディオ・パケットは、外側ＩＰヘッダーのサーバＳ７のアドレスおよび内側ヘッダーのＳ３のアドレスと共にＩＰ−ｉｎ−ＩＰトンネルにカプセル化される。パケットがＳ７に着くと、カプセル化は解除され、パケットは、入力マッピング・テーブルＳ７に基づいて転送される。この場合、Ｄは、Ａの対話ゾーン内にあるため、低遅延のリンクが必要である。パケットは、ａの転送ラベルが与えられ、次いで、アプリケーション・プロバイダＡの転送テーブルによって送られる。転送ラベルは、ａからｂに交換され、Ｓ１へ送られる。Ｓ１で、パケットは、Ｓ３に向かう途中でトンネルｂからトンネルｃへとスイッチングされる。
【００６２】
ＣＢからＳ７に着いたパケットもＳ３へとスイッチングされる。しかし、アプリケーションは、より高い遅延パスでストリームを送信することを決定する（アバタＢがアバタＡの聴取範囲のちょうど端部にあるため）。これは、空の転送ラベルＯＵＴ（発信）フィールド（ＦＬｏ）を含むＳ７のアプリケーション転送テーブルに、アプリケーション・ラベルＢ用のエントリを入れることによって可能とされる。これは、転送ラベルが取り除かれ、パケットがインターネットを通るパスで送信されることを示す。
【００６３】
この例を簡素化するために、マルチキャストおよび他の交換操作への言及は省かれている。２つのレベルのアプリケーション／転送ラベル・スイッチング操作は、非常に強力である。多くの操作は、アプリケーション・ラベルに基づいてオーバーレイ・ネットワーク内で実行することができ、フローは、ネットワークの状態やゲームの要件の変更に基づいてドロップされたり、再ルーティングされたり、また、マルチキャストされ得る（フローは、この時点では低遅延のリンクを必要としない場合がある）。
【００６４】
ネットワーク１０４によって実行される様々なステップが、図５および図６のフロー・チャート５０１および６０１に示されている。
【００６５】
本明細書に記載された本発明は、特に明記されたもの以外の変形および変更も可能であることを当業者は理解されよう。本発明は、本発明の精神および範囲内に含まれるこうしたすべての変形および変更を含むことを理解されたい。
【図１】
2011050116.tif 000003
【図２】
2011050116.tif 000004
【図３】
2011050116.tif 000005
【図５】
2011050116.tif 000006
【図６】
2011050116.tif 000007
【図４】
2011050116.tif 000008
【手続補正書】
【提出日】平成23年1月7日(2011.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークにおいてデータ・ユニットをルーティングするデバイスであって、処理手段を備え、該処理手段は、
前記データ・ユニットの宛先を決定し、
前記データ・ユニットの前記宛先に基づいて、前記データ・ユニットにラベルを割り当て、
前記ラベルに基づいて１または複数のルーティング・レコードから１つのルーティング・レコードを選択し、
前記１つのルーティング・レコードで識別されたパスを介して前記データ・ユニットを送る
ように動作する処理手段であり、
前記処理手段は、前記データ・ユニットに割り当てられた前記ラベルに対応する情報と、前記データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含む前記ルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択することによって、前記ルーティング・レコードを選択するように動作する、
デバイス。
【請求項２】
請求項１に記載のデバイスであって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーションを含む、デバイス。
【請求項３】
請求項１または２に記載のデバイスであって、前記処理手段が、前記パスを介して前記データ・ユニットを送るとき、前記パスを識別するように前記データ・ユニットを分類するように動作する、デバイス。
【請求項４】
請求項１ないし３の何れかに記載のデバイスであって、前記パスが、前記ネットワークにおける複数のパスのうちの１つであり、前記パスが、前記ネットワークにおけるトンネルおよび前記ネットワークにおける非トンネル・パスを含む、デバイス。
【請求項５】
請求項１ないし４の何れかに記載のデバイスであって、前記ネットワークがパケット交換ネットワークである、デバイス。
【請求項６】
請求項１ないし５の何れかに記載のデバイスであって、前記データ・ユニットがＩＰパケットを含む、デバイス。
【請求項７】
ネットワークにおいてデータ・ユニットをルーティングする方法であって、
前記データ・ユニットの宛先を決定するステップと、
前記データ・ユニットの前記宛先に基づいて、前記データ・ユニットにラベルを割り当てるステップと、
前記ラベルに基づいて１または複数のルーティング・レコードから１つのルーティング・レコードを選択するステップと、
前記１つのルーティング・レコードで識別されたパスを介して前記データ・ユニットを送るステップと
を備え、
前記ルーティング・レコードを選択する前記ステップが、前記データ・ユニットに割り当てられた前記ラベルに対応する情報と、前記データ・ユニットに含まれているアプリケーション情報に対応する追加情報とを含む前記ルーティング・レコードのうちの１つを識別し、それによって前記ルーティング・レコードを選択するステップを含む、
方法。
【請求項８】
請求項７に記載の方法であって、前記データ・ユニットに含まれる前記アプリケーション情報が、前記データ・ユニットの出所であるコンピューティング・デバイスのアイデンティフィケーションを含む、方法。
【請求項９】
請求項７または８に記載の方法であって、前記パスを介して前記データ・ユニットを送る前記ステップが、前記データ・ユニットを、前記パスを識別するように分類するステップを含む、方法。
【請求項１０】
請求項７ないし９の何れかに記載の方法であって、前記パスが、前記ネットワークにおける複数のパスのうちの１つであり、前記パスが、前記ネットワークにおけるトンネルおよび前記ネットワークにおける非トンネル・パスを含む、方法。
【請求項１１】
請求項７ないし１０の何れかに記載の方法であって、前記ネットワークがパケット有資格ネットワークである、方法。
【請求項１２】
請求項７ないし１１の何れかに記載の方法であって、前記データ・ユニットがＩＰパケットを含む、方法。
【請求項１３】
コンピューティング・デバイスに、請求項７ないし１２の何れかに記載の前記方法を実行させる命令を含むコンピュータ・プログラム。
【請求項１４】
請求項１３に記載のソフトウェアを含むコンピュータ・プログラムが記録されたコンピュータ読取可能記録媒体。