(57)【特許請求の範囲】
【請求項１】
ルータにおいて、第１のリモートコンピュータデバイスにおいて実行される、前記ルータにおいて受信された第１の複数のパケットに関連する第１のアプリケーションを特定することと、
前記第１のアプリケーションに関連する前記第１の複数のパケットを介して通信される第１の情報のタイプを特定することと、
アプリケーションのセットと情報のタイプに関連するトラフィッククラスとを示すルーティングポリシーを受信することと、
前記ルーティングポリシーにしたがって、前記第１の情報のタイプおよび前記第１のアプリケーションに基づいて、前記第１の複数のパケットに関する第１のトラフィッククラスを割り当てることと、
前記第１のトラフィッククラスに基づいて、前記ルータにおける前記第１の複数のパケットのルーティングを管理することと
を備える方法。
【請求項２】
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットのルーティングに優先度を付けることを備える、請求項１に記載の方法。
【請求項３】
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットに前記ルータの帯域幅を割り振ることを備える、請求項１に記載の方法。
【請求項４】
前記第１のアプリケーションを特定することは、前記第１のアプリケーションに関連するアプリケーションタイプを特定することを備える、請求項１に記載の方法。
【請求項５】
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットの確認応答ポリシーを管理することを備え、ここで、前記確認応答ポリシーは、パケットバッファに記憶されたパケットに関し、前記第１のトラフィッククラスに関連するパケットを送信した後、確認応答が指定時間内に受信されない場合に前記パケットを再送する、請求項１に記載の方法。
【請求項６】
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットの確認応答ポリシーを管理することを備え、ここで、前記確認応答ポリシーは、パケットバッファに記憶されたパケットに関し、前記第１のトラフィッククラスに関連するパケットを、送信後、確認応答を待つことなく廃棄する、請求項１に記載の方法。
【請求項７】
前記第１のアプリケーションに関連する前記第１の複数のパケットを介して通信される前記第１の情報のタイプを前記特定することは、前記第１のアプリケーションに関連する前記第１の複数のパケットに含まれるヘッダ情報に基づいて前記第１の情報のタイプを特定することを備える、請求項１に記載の方法。
【請求項８】
前記第１のアプリケーションに関連する前記第１の複数のパケットを介して通信される前記第１の情報のタイプを前記特定することは、前記第１のアプリケーションに関連する前記第１の複数のパケットに含まれるペイロード情報に基づいて前記第１の情報のタイプを特定することを備える、請求項１に記載の方法。
【請求項９】
前記第１の複数のパケットに含まれるペイロード情報およびヘッダ情報の少なくとも１つに基づいて、前記第１のアプリケーションに関連する前記第１の複数のパケットを介して通信される前記第１の情報のタイプを特定することと、
第２の複数のパケットに含まれるペイロード情報およびヘッダ情報の少なくとも１つに基づいて、前記第１のアプリケーションに関連する前記第２の複数のパケットを介して通信される第２の情報のタイプを特定することと、
前記ルーティングポリシー、前記第１のアプリケーション、および前記第２の情報のタイプに少なくとも部分的に基づいて、前記第２の複数のパケットに関する第２のトラフィッククラスを割り当てることと、
前記第２のトラフィッククラスに基づいて、前記ルータにおける前記第２の複数のパケットのルーティングを管理することと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記ルーティングポリシーは、前記第１のアプリケーションを実行する前記第１のリモートコンピュータデバイス、または前記第１のアプリケーションを実行する複数のエンドポイントに関する前記ルーティングポリシーを設定するサーバのどちらか一方から受信される、請求項１に記載の方法。
【請求項１１】
前記ルータから離れて位置する第１のリモートコンピュータデバイスにおいて実行される第１のアプリケーションに関連する第１の複数のパケットを受信するように構成された第１のネットワーク接続を含む複数のネットワーク接続と、
請求項１乃至１０における前記方法のうちのいずれか１つを実施するように構成されたルータ制御モジュールと
を備えるルータ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２０１０年１２月６日に出願された米国特許出願第１２／９６０，９３５号の優先権の利益を主張する。
【０００２】
本開示は、コンピュータネットワークに関し、より詳細には、コンピュータネットワークのルーティングデバイスに関する。
【背景技術】
【０００３】
通信ネットワークは、電子デバイス間で多種多様な情報を転送するために用いられる。しかしながら、通信ネットワークで転送される情報の量が増大するにつれて、ネットワークを支配する通信バックボーンが圧迫されて、望ましくない情報転送遅延が生じることがある。これは、芳しくないユーザエクスペリエンスをもたらし得る。たとえば、ユーザはネットワークラグを経験することがあり、この場合、パケットは、別のネットワークノードへの転送を待つ間、ユーザが情報転送遅延を知覚できるほどの時間量にわたってネットワークノードにとどまる。さらに、ネットワークラグおよび他のネットワーク転送問題が、ゲームアプリケーションやボイス通信アプリケーションなどの多種多様なアプリケーションに影響を及ぼすことがある。
【発明の概要】
【０００４】
いくつかの実施形態では、一方法は、ルータにおいて、第１の複数のパケットに基づいて、第１のリモートコンピュータデバイスにおいて実行される、第１の複数のパケットに関連する第１のアプリケーションを特定すること（determining）と、第１のアプリケーションに基づいて、第１の複数のパケットに関する第１のトラフィッククラスを特定することと、第２のトラフィッククラスに基づいて、ルータにおける第１の複数のパケットのルーティングを管理することとを備える。
【０００５】
いくつかの実施形態では、第１の複数のパケットのルーティングを管理することは、第１のトラフィッククラスに基づいて、複数のパケットのルーティングに優先度を付けることを備える。
【０００６】
いくつかの実施形態では、第１の複数のパケットのルーティングを管理することは、第１のトラフィッククラスに基づいて、第１の複数のパケットにルータの帯域幅を割り振ることを備える。
【０００７】
いくつかの実施形態では、第１のアプリケーションを特定することは、第１のアプリケーションに関連するアプリケーションタイプを特定することを備える。
【０００８】
いくつかの実施形態では、第１の複数のパケットのルーティングを管理することは、第１のトラフィッククラスに基づいて、第１の複数のパケットの確認応答を管理することを備える。
【０００９】
いくつかの実施形態では、第１の情報は、第１の複数のパケットに関連するポート番号を含む。
【００１０】
いくつかの実施形態では、第１のトラフィッククラスを特定することは、第１の複数のパケットを介して通信される第１のタイプの情報を特定することと、第１のタイプの情報に基づいて、第１のトラフィッククラスを特定することとを備える。
【００１１】
いくつかの実施形態では、本方法は、第１のアプリケーションに関連する第２の複数のパケットを介して通信される第２のタイプの情報を特定することと、第１のアプリケーションおよび第２のタイプの情報に基づいて、第２の複数のパケットに関する第２のトラフィッククラスを特定することと、第２のトラフィッククラスに基づいて、ルータにおける第１の複数のパケットのルーティングを管理することとをさらに備える。
【００１２】
いくつかの実施形態では、一方法は、ルータにおいて、第１のリモートコンピュータデバイスにおいて実行される、第１の複数のパケットに関連する第１のアプリケーションを示す情報を外部ソースから受信することと、第１のアプリケーションに基づいて、第１の複数のパケットに関する第１のトラフィッククラスを特定することと、第２のトラフィッククラスに基づいて、ルータにおける第１の複数のパケットのルーティングを管理することとを備える。
【００１３】
いくつかの実施形態では、第１のトラフィッククラスを特定することは、リモートサーバに第１のトラフィッククラスを要求することを備える。
【００１４】
いくつかの実施形態では、外部ソースは第１のアプリケーションを備える。
【００１５】
いくつかの実施形態では、外部ソースは第２のリモートコンピュータデバイスを備える。
【００１６】
いくつかの実施形態では、一方法は、コンピュータデバイスにおいて実行される複数のアプリケーションを特定することに基づいて、ルータにおいて複数のパケットをルーティングすることに関連する複数のトラフィッククラスを特定することと、コンピュータデバイスにおいてグラフィカルユーザインターフェース（ＧＵＩ）を介して複数のトラフィッククラスを表示することとを備える。
【００１７】
いくつかの実施形態では、本方法は、トラフィッククラスの変更をＧＵIを介して受信することと、トラフィッククラスの変更をルータに通信することとをさらに備える。
【００１８】
いくつかの実施形態では、ルータは、ルータから離れて位置する第１のコンピュータデバイスにおいて実行される第１のアプリケーションに関連する第１の複数のパケットを受信するための第１のネットワーク接続を備える複数のネットワーク接続と、第１の複数のパケットに基づいて第１のアプリケーションを特定し、第１のアプリケーションに基づいて第１のアプリケーションに関連する第１の複数のパケットに関する第１のトラフィッククラスを特定するためのルータ制御モジュールと、第１のトラフィッククラスに基づいてルータにおける第１の複数のパケットのルーティングを管理するためのルータ制御モジュールとを備える。
【００１９】
いくつかの実施形態では、ルータ制御モジュールは、トラフィッククラスに基づいて複数のパケットのルーティングに優先度を付けることによって、複数のパケットのルーティングを管理するためのものである。
【００２０】
いくつかの実施形態では、ルータ制御モジュールは、トラフィッククラスに基づいて複数のパケットにルータの帯域幅を割り振ることによって、複数のパケットのルーティングを管理するためのものである。
【００２１】
いくつかの実施形態では、ルータは、パケットを記憶するためのパケットバッファをさらに備え、ルータ制御モジュールは、トラフィッククラスに基づく順序に従ってパケットバッファからパケットを取り出すためのものである。
【００２２】
いくつかの実施形態では、ルータ制御モジュールは、第１のアプリケーションに関連するアプリケーションタイプを特定するためのものである。
【００２３】
いくつかの実施形態では、ルータ制御モジュールは、第１の複数のパケットを介して通信される第１のタイプの情報を特定することと、第１のタイプの情報に基づいて第１のトラフィッククラスを特定することとによって、第１のトラフィッククラスを特定するためのものである。
【００２４】
いくつかの実施形態では、ルータ制御モジュールは、第１のアプリケーションに関連する、ルータにおいて受信される第２の複数のパケットを介して通信される第２のタイプの情報を特定し、第１のアプリケーションおよび第２のタイプの情報に基づいて、第２の複数のパケットに関する第２のトラフィッククラスを特定し、第２のトラフィッククラスに基づいて、ルータにおける第１の複数のパケットのルーティングを管理するためのものである。
【００２５】
添付の図面を参照することによって、本開示はより良く理解され、その多数の特徴および利点が当業者に明らかになろう。
【図面の簡単な説明】
【００２６】
【図１】本開示の一実施形態によるルータのブロック図。
【図２】本開示の一実施形態による通信システムのブロック図。
【図３】本開示の一実施形態による別の通信システムのブロック図。
【図４】本開示の一実施形態によるグラフィカルユーザインターフェースの図。
【図５】本開示の別の実施形態によるグラフィカルユーザインターフェースの図。
【図６】本開示の一実施形態によるルータにおけるパケットのルーティングに優先度を付ける方法のフロー図。
【図７】本開示の一実施形態によるコンピュータデバイスのブロック図。
【発明を実施するための形態】
【００２７】
図１〜図７は、ルータに接続された１つまたは複数のエンドポイントデバイスにおいて実行される特定のアプリケーションの識別に基づいてパケット通信を管理するようにネットワークのルータを構成することによって、ネットワークの通信効率を向上させるための技法を示している。具体的には、ネットワークは、ネットワークに結合されたエンドポイント間で情報のパケットを通信する。ルータは、ネットワークノード間でパケットをルーティングするためにネットワークによって用いられ、パケットの通信を、各パケットに関連するトラフィッククラスに従って管理する。ルータは、パケットを提供したアプリケーションまたはパケットのターゲットであるアプリケーションに従ってパケットにトラフィッククラスを割り当てるように構成される。したがって、受信パケット優先順序に関するトラフィッククラスは、どのアプリケーションが１つまたは複数のエンドポイントで実行されているかの判断に基づいて、動的に特定される（determined）。したがって、ルータは、帯域幅、優先度、および実行されるアプリケーションの他の通信要件に応じて、パケット通信をより効率的に管理することができる。
【００２８】
例示すると、コンピュータデバイスのような通信エンドポイントが、オンラインゲームアプリケーションとピアツーピア（Ｐ２Ｐ）ファイル通信プログラムとを実行していることがある。一般に、オンラインゲームプログラムはユーザにとって、Ｐ２Ｐファイル通信プログラムよりも高い優先度を有する。具体的には、オンラインゲームプログラムの場合、キャラクターステータス更新などの情報をゲームサーバに比較的速く通信することが、楽しいゲームエクスペリエンスをもたらすために有用である。対照的に、Ｐ２Ｐファイル通信は一般に、比較的長い時間量を要求し、Ｐ２Ｐファイル通信プログラムに関連する特定のパケットの迅速な通信は、ユーザエクスペリエンスに大きく影響するものではない。したがって、本明細書で説明するルータデバイスは、ゲームプログラムに関連するパケットに対しより高いルーティング優先度が付与されるように、ゲームプログラムおよびＰ２Ｐファイル通信プログラムに関連するパケットに対しトラフィッククラスを割り当てるように構成され得る。さらに、各パケットに割り当てられるトラフィッククラスは、固定のルータポート番号ではなく、パケットに関連するアプリケーションに基づく。
【００２９】
図１を参照すると、ルータ１０２のブロック図が示されている。ルータ１０２は通信システムに組み込まれており、それによって、ルータ１０２は通信ネットワークとの間でパケットを受信し、通信する。通信ネットワークはいくつかのノードを含み、それによって、ネットワークノードは、パケットの提供、パケットの受信、またはそれらの任意の組合せを行うことができるネットワーク内のポイントとなっている。したがって、ノードは一般に、特定の通信セッションに関してエンドポイントまたはルーティングノードに分類され得る。エンドポイントは、パケットに含まれるペイロード情報の発信源または最終的な宛先のいずれかを指す。ルーティングノードは、１つまたは複数のネットワークノードからパケットを受信し、各パケットに付帯しているアドレス情報に基づいて、１つまたは複数の他のネットワークノードにパケットを提供するノードを指す。ネットワークノードが、あるパケットに関してルーティングノードになる場合があり、別のパケットに関してエンドポイントになる場合があることが諒解されよう。したがって、たとえば、サーバデバイスがエンドポイントへの通信のために情報を発信することがあり、受信したパケットを他のネットワークノードにルーティングすることもある。したがってサーバは、サーバが発信したパケットに関してエンドポイントであり、サーバが他のノードにルーティングするためにネットワークから受信するパケットに関してルーティングノードである。
【００３０】
ルータ１０２は、ネットワークのルーティングノードに組み込まれており、パケットの受信と他のネットワークノードへのパケットのルーティングとを容易にするためのいくつかのモジュールを含む。具体的には、図１の図示の例では、ルータ１０２はルータ制御モジュール１０４と、パケットバッファ１０６と、スイッチングファブリック１１０と、ネットワーク接続１１５〜１１７とを含む。ネットワーク接続１１５〜１１７の各々は、ネットワークのノードからパケットを受信することと、ネットワークのノードにパケットを通信することの両方が可能なネットワークに対する入力／出力接続である。具体的には、ネットワーク接続１１５〜１１７の各々は、ネットワークに含まれるノードの異なるサブセットに接続される。したがって、あるネットワーク接続においてパケットを受信することと、別のネットワーク接続を介してパケットを送信することとによって、ルータ１００はノードのあるサブセットから別のサブセットにパケットを通信する。
【００３１】
スイッチングファブリック１１０は、ルータ１０２のモジュール間でパケットをルーティングする通信バックボーンである。スイッチングファブリックは、提供されたパケットをネットワークのどのモジュールが受信するかを示す制御シグナリングを受信する。したがって、スイッチングファブリック１１０は、ルータ１０２によるパケットの受信、記憶、および提供を容易にする。
【００３２】
パケットバッファ１０６は、受信したパケットを記憶するランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ、または他のメモリなどのメモリ構造である。パケットバッファ１０６は、個別にアドレス指定可能な位置にパケットを記憶することができ、それによって、パケットバッファ１０６は、受信した制御シグナリングに基づいてアドレス指定可能な位置にパケット記憶し、または当該位置にあるパケットを取り出す。制御シグナリングは、パケットバッファ１０６へのアクセス要求が読取りアクセスであるか、それとも書込みアクセスであるかを示し、アクセスに関連する位置のアドレスを示す。それに応答して、パケットバッファ１０６は、書込みアクセスの場合には示された位置に受信パケットを記憶し、または読取りアクセスの場合には示された位置に記憶されたパケットを取り出す。
【００３３】
ルータ制御モジュール１０４は、ルータ１０２の動作を制御するように動作可能なモジュールである。したがって、ルータ制御モジュール１０４は、汎用もしくは特定用途向けプロセッサ、状態機械などを実施するための１つもしくは複数の論理モジュール、またはそれらの任意の組合せであり得る。ルータ１０２の動作を制御するために、ルータ制御モジュール１０４は、ルータ１０２において受信したパケットを監視し、制御シグナリングを提供することで、受信したパケットを各パケットに関連するアドレス情報に基づいて記憶しルーティングすることを容易にする。
【００３４】
例示すると、動作中に、ネットワーク接続１１５〜１１７のうちの１つにおいてパケットが受信される。各受信パケットは、アプリケーションに関連付けられる。本明細書で使用するアプリケーションは、アプリケーションによって提供されたペイロード情報をパケットが含む場合、またはパケットがアプリケーションに向けられている場合に、パケットに関連付けられる。パケットを受信したことに応答して、ルータ制御モジュール１０４はスイッチングファブリック１１０に制御シグナリングを提供して、パケットがパケットバッファ１０６に提供されるようにする。ルータ制御モジュール１０４はパケットバッファ１０６にも制御シグナリングを提供して、ルータ制御モジュール１０４によって示されたアドレスに受信パケットが記憶されるようにする。ルータ制御モジュール１０４はまた、制御シグナリングを提供することで、パケットバッファ１０６からパケットを取り出し、パケットに含まれる宛先アドレス情報を分析し、スイッチングファブリック１１０を制御して、宛先アドレスによって示されるネットワーク接続１１５〜１１７のうちの１つにパケットが提供されるようにすることができる。具体的には、ルータ制御モジュール１０４は、ルータ１０２に接続されたネットワークノードの各サブセットに関連する宛先アドレス範囲を示す１つまたは複数のルーティング表（不図示）にアクセスすることができる。アドレスによって示されるノードのサブセットに基づいて、ルータ制御モジュールはスイッチングファブリック１１０を制御して、ノードの示されたサブセットに関連するネットワーク接続１１５〜１１７のうちの１つにパケットが提供されるようにすることができる。
【００３５】
ルータ制御モジュール１０４は、トラフィッククラスセットに従って受信パケットの通信を管理することができ、それによって、各受信パケットは当該セット内のトラフィッククラスのうちの１つに関連付けられる。したがって、パケットの管理は、トラフィッククラスに基づくパケット通信の優先度付け、トラフィッククラスに基づく帯域幅の割当て、トラフィッククラスに基づく確認応答ポリシーの管理などを含むことができる。
【００３６】
例示すると、ルータ制御モジュール１０４は、各トラフィッククラスに関連する優先度を特定して、より優先度の高いトラフィッククラスに関連するパケットが、より優先度の低いトラフィッククラスを有するパケットの前にルーティングされる可能性が高くなるようにすることができる。具体的には、ルータ制御モジュール１０４は、優先順序に従ってパケットバッファ１０６からパケットを取り出し、それによって、各パケットがネットワークに通信される際の優先度を制御することができる。パケットに関する優先順序は、各パケットのトラフィッククラスに関連する優先度に基づき得る。動作時に、ルータ制御モジュール１０４はパケットを、各パケットの優先度レベルによって示される順序に従ってネットワークに提供するためにバケットバッファ１０６から取り出す。したがって、パケットに関連するトラフィッククラスによって示されるように、より優先度レベルの高いパケットが、より優先度レベルの低いパケットの前にネットワークに通信される。ルータ制御モジュール１０４は、いくつかの方法のうちのいずれかによる優先順序に従ったパケットバッファ１０６からのパケットの取出しを実行し得る。一実施形態では、パケットを取り出す前に、ルータ制御モジュール１０４は、パケットバッファ１０６を横断して（traverse）、バッファに記憶されているパケットのうちでどれが最も高い優先度レベルを有するかを判断することができる。別の実施形態では、パケットバッファ１０６を複数の領域に編成して、より高い優先度レベルを有するパケットがより低い優先度レベルを有するパケットとは異なる領域に記憶されるようにすることができる。ルータ制御モジュール１０４は、より優先度の高い領域のパケットが、より優先度の低い領域に記憶されたパケットの前にパケットバッファから取り出されるように、領域の順序に従って通信のためにパケットを取り出すことができる。
【００３７】
一実施形態では、ルータ制御モジュール１０４は、パケットセットに関する帯域幅および待ち時間を、パケットに関連するトラフィッククラスに基づいて管理する。たとえば、トラフィッククラスは、トラフィッククラスに関連するパケットに関する待ち時間優先度レベルと帯域幅限度の両方を示し得る。ルータ制御モジュール１０４は、指定されたトラフィッククラスに関連するパケットを、トラフィッククラスに関連する待ち時間優先順序に基づいて、トラフィッククラスに関連する対応する帯域幅限度まで、パケットバッファ１０６から周期的に取り出し得る。パケットバッファ１０６に記憶されたパケットのトラフィッククラスに基づくパケットの周期的取出しを繰り返すことによって、各トラフィッククラスに関連する帯域幅および待ち時間が維持される。
【００３８】
さらに、ルータ制御モジュール１０４は、パケットバッファ１０６に記憶されたパケットに関する確認応答ポリシーを、パケットに関連するトラフィッククラスに従って管理し得る。例示すると、クラス１に指定された第１のトラフィッククラスは、第１の確認応答ポリシーに関連付けられることがあり、それによって、ルータ制御モジュール１０４は、クラス１に関連するパケットを送信した後、確認応答が指定時間内に受信されない場合にパケットを再送する。クラス２に指定された第２のトラフィッククラスは、第２の確認応答ポリシーに関連付けられることがあり、それによって、ルータ制御モジュールは、クラス２に関連するパケットを、送信後、確認応答を待つことなく廃棄する。
【００３９】
図示の実施形態では、ルータ１０２はルーティングポリシー１０３を記憶しており、これは、ルータ１０２を介してパケットを通信（送信または受信）する１つまたは複数のエンドポイントにおいて実行されるアプリケーションセットに関連するトラフィッククラスを示す表または他のデータ構造を含む。ルーティングポリシー１０３はまた、他の情報、たとえば相対的優先度、帯域幅、確認応答ポリシー、および各トラフィッククラスに関連する他の情報を示し得る。ルータ制御モジュール１０４は、上記のようにパケットに関連するトラフィッククラスに従ってパケットの通信を管理するためにルーティングポリシー１０３にアクセスするように構成される。したがって、ルータ１０２においてパケットを受信すると、ルータ制御モジュール１０４は、パケットに関連するアプリケーションを特定し得る。パケットに関連するアプリケーションは、パケットを受信したルータポート番号、パケットに含まれるヘッダ情報、たとえば、アプリケーション名、ポート番号、アドレスもしくは他の情報、またはそれらの任意の組合せに基づいて、ルータ制御モジュール１０４によって特定され得る。一実施形態では、ルータ制御モジュール１０４は、パケットのデータペイロードを調べることによって、またはヘッダ内の情報とデータペイロード内の情報との組合せに基づいて、パケットに関連するアプリケーションを特定することができる。したがって、ルータ制御モジュール１０４は、パケットを受信したポート番号以外の情報に基づいて、またはポート番号と他の情報の両方に基づいて、パケットに関連するアプリケーションを特定し得る。別の実施形態では、ルータ制御モジュール１０４は、パケットおよびそれらの通信の特性、たとえば、パケットのサイズ、パケットがルータ１０２に通信される頻度などに基づいて、パケットに関連するアプリケーションを特定し得る。他の実施形態では、ルータ制御モジュール１０４は、外部ソース、たとえばパケットを通信したアプリケーション、リモートサーバ、パケットを通信したコンピュータデバイスとは異なる外部コンピュータデバイスなどから受信した情報に基づいて、パケットに関連するアプリケーションを特定することができる。
【００４０】
受信パケットに関連するアプリケーションを特定すると、ルータ制御モジュール１０４は、ルーティングポリシー１０３にアクセスして、アプリケーションに関連するトラフィッククラスを特定し、示されたトラフィッククラスをパケットに割り当てる。一実施形態では、ルータ制御モジュール１０４は、トラフィッククラスを示すようにパケットのヘッダを変更することによって、トラフィッククラスを割り当てることができる。別の実施形態では、ルータ制御モジュール１０４は、受信パケットに関するトラフィッククラスを別個のデータベースに記憶することができる。
【００４１】
別の実施形態では、ルーティングポリシー１０３は、アプリケーションタイプのセットと各タイプに関連するトラフィッククラスとを示す。たとえば、ルーティングポリシー１０３は、優先度が比較的高いトラフィッククラスにゲームアプリケーションが関連付けられ、優先度が比較的低いトラフィッククラスにＰ２Ｐファイル通信アプリケーションが関連付けられることを示すことがある。この実施形態では、ルータ制御モジュール１０４は、たとえば通信エンドポイントから、各受信パケットに関連するアプリケーションのタイプを示す情報を受信し、受信パケットのトラフィッククラスを、各パケットに関連するアプリケーションタイプに従って特定することができる。ルーティングポリシー１０３は、アプリケーションまたはアプリケーションタイプに関連するトラフィッククラスが変化するのに伴い、各アプリケーションまたはアプリケーションタイプに関連するトラフィッククラスを反映するように、経時的に更新され得る。
【００４２】
いくつかの実施形態では、アプリケーションは、異なるタイプの情報を通信して、アプリケーションとの間で通信される異なるパケットが異なるトラフィッククラスに関連付けられるようにすることができる。たとえば、あるアプリケーションは、あるパケットセットを介してパッチ更新を受信する一方で、異なるパケットセットを介してサーバにゲームセッション情報を通信することがある。したがって、ルーティングポリシー１０３は、１つのアプリケーションによって通信される異なるタイプの情報に関して異なるトラフィッククラスを示し得る。たとえば、ルーティングポリシー１０３は、アプリケーションに関するパッチ情報を通信するパケットが第１のトラフィッククラスに関連付けられ、ゲームセッションの対話を表す情報を通信するパケットが異なるトラフィッククラスに関連付けられることを示すことがある。ルータ制御モジュール１０４は、アプリケーションとの間で通信された各パケットによって通信された情報のタイプを特定し、ルーティングポリシー１０３によって示されるように各パケットにトラフィッククラスを割り当てることができる。パケットに関連する情報のタイプは、パケットを受信したルータポート番号、パケットに含まれるヘッダ情報、たとえば、アプリケーション名、ポート番号、アドレスもしくは他の情報、またはそれらの任意の組合せに基づいて特定され得る。一実施形態では、ルータ制御モジュール１０４は、パケットのデータペイロードを調べることによって、またはヘッダ内の情報とデータペイロード内の情報との組合せに基づいて、パケットに関連する情報のタイプを特定することができる。したがって、ルータ制御モジュール１０４は、パケットを受信したポート番号以外の情報に基づいて、またはポート番号と他の情報の両方に基づいて、パケットに関連する情報のタイプを特定し得る。
【００４３】
ルーティングポリシー１０３は、通信エンドポイントまたは他の制御デバイスによって、ネットワークまたは他の通信経路を介してルータ１０２に提供され得る。したがって、たとえば、通信エンドポイントは、各アプリケーションに関する１つまたは複数のトラフィッククラス示すために、ルータ１０２にルーティングポリシー１０３を提供することがある。これは、たとえば、ルータ１０２がエンドポイントにネットワークへの一次インターフェースを提供する場合に有用なことがある。別の実施形態では、ルーティングポリシー１０３は、ソースまたは宛先エンドポイント以外のデバイスによって提供され得る。たとえば、サーバは、複数のエンドポイントに関する、たとえば共通ローカルエリアネットワーク（ＬＡＮ）に接続された複数のコンピュータデバイスに関するトラフィッククラスを設定するために、ルーティングポリシー１０３をルータ１０２に提供することがある。さらに別の実施形態では、ルーティングポリシー１０３はルータ１０２において、エンドユーザに販売される前に事前構成され得る。別の実施形態では、各アプリケーションは、アプリケーションによってルータ１０２に通信されるパケットに関する１つまたは複数のトラフィッククラスを提供することができる。さらに別の実施形態では、ルータ１０２は、アプリケーションからのパケットまたはアプリケーションに向けられたパケットを受信したことに応答して、アプリケーションに対し、その１つまたは複数のトラフィッククラスを示す情報を提供するよう照会することができる。
【００４４】
図２は、本開示の一実施形態による図１のルータ１０２を組み込んだ通信システム２００を示している。通信システム２００はまた、ネットワーク２２０とコンピュータデバイス２３０および２３１とを含み、これらの各々はルータ２０２に接続されている。図示の実施形態では、ルータ１０２はコンピュータデバイス２３０および２３１の間で、かつコンピュータデバイス２３０および２３１ならびにネットワーク２２０の間でパケットをルーティングする。コンピュータデバイス２３０および２３１の各々はアプリケーションを実行する。たとえば、コンピュータデバイス２３０はアプリケーション２４０および２４１を実行し、コンピュータデバイス２３１はアプリケーション２４２および２４３を実行する。
【００４５】
コンピュータデバイス２３０はまた、コンピュータデバイス２３０において実行されているアプリケーションを特定するように動作可能なアプリケーションアナライザ２３５を実行する。アプリケーションアナライザ２３５は、プロセス情報、タスク情報、またはコンピュータデバイス２３０において実行されているオペレーティングシステムによって提供される他の情報にアクセスすることによって、実行されているアプリケーションを特定し得る。アプリケーションアナライザ２３５はまた、各アプリケーションによってアクセスされているソフトウェアライブラリ、デバイスドライバ、オペレーティングシステムリソース、または他のルーチン、プログラム、およびリソースに基づいて、実行されているアプリケーションを特定し得る。したがって、たとえば、アプリケーションアナライザが、ビデオデバイスドライバが特定のレートでアクセスされていると判断した場合、ビデオストリーミングアプリケーションが実行されている。実行されているアプリケーションに基づいて、アプリケーションアナライザ２３５は、ルータ１０２のルーティングポリシー１０３に記憶されるトラフィッククラス情報を設定または変更し、それにより、ネットワーク２２０、コンピュータデバイス２３０、またはコンピュータデバイス２３１に通信されるパケットに関連するトラフィッククラスを設定または変更することができる。
【００４６】
一実施形態では、アプリケーションアナライザ２３５は、特定のアプリケーションとの間で通信されるパケットに関して異なるトラフィッククラスを設定するようにルーティングポリシー１０３を設定することができる。したがって、アプリケーションアナライザ２３５は、アプリケーション２４０に通信されるパケットに関しては、優先度が比較的高いトラフィッククラスを設定し、アプリケーション２４０から通信されるパケットに関しては、優先度が比較的低いトラフィッククラスを設定することができる。したがって、ルータ２０２は、アプリケーション２４０に向けられたパケットを、アプリケーション２４０から提供されるパケットを通信する場合よりも高い優先度で通信する。さらに、アプリケーションアナライザ２３５は、たとえば、アプリケーション２４０に向けられたパケットがアプリケーション２４１に向けられたパケットよりも高い優先度を有し、アプリケーション２４０によって提供されるパケットがアプリケーション２４１によって提供されるパケットよりも低い優先度を有するように、アプリケーション２４０および２４１に関するトラフィッククラスを設定することができる。したがって、ルータ２０２は、パケットのアップストリーム（アプリケーション２４０および２４１によって提供されるパケット）およびルータ２０２は、ダウンストリーム（アプリケーション２４０および２４１に提供されるパケット）の通信を、アップストリームおよびダウンストリームのパケットトラフィックに関する異なるトラフィッククラスに基づいて個別に管理し得る。
【００４７】
コンピュータデバイス２３１は、アプリケーションアナライザ２３５と同様の機能を実行するアプリケーションアナライザ２３７を実行する。一実施形態では、あるコンピュータデバイスにおいて実行されるアプリケーションアナライザは、異なるコンピュータデバイスにおいて実行されるアプリケーションに関するトラフィッククラスを設定することがある。アプリケーションアナライザは、パスワードやセキュリティコードなどの認証情報を、認証情報に基づいてアナライザを認証するルータ１０２に提供し得る。認証に基づいて、ルータ１０２は、異なるコンピュータデバイスにおいて実行されるアプリケーションに関するトラフィッククラスをアプリケーションアナライザが設定することを認めること、または認めないことがある。
【００４８】
図３は、本開示の別の実施形態による図１のルータ１０２を組み込んだ通信システム３００を示している。通信システム３００はまた、ネットワーク３２０と、ルータ１０２に接続されたコンピュータデバイス３３０と、サーバ３５５とを含む。図示の実施形態では、ルータ１０２は、コンピュータデバイス３３０とネットワーク３２０との間でパケットをルーティングする。コンピュータデバイス３３０は、アプリケーション３４０および３４１を実行する。サーバ３５５は、ポート優先度ポリシー３０３を記憶する。
【００４９】
動作時に、通信システム３００は、図２の通信システム２００と同様に構成される。したがって、ルータ１０２は、アプリケーション３４０および３４１との間のパケットのルーティングを、各アプリケーションに関連するトラフィッククラスおよびルーティングポリシー３０３に基づいて管理する。図示の実施形態では、ポートルーティングポリシー１０３は、サーバ３５５に記憶される。したがって、ルータ１０２が、未知のトラフィッククラスを有するアプリケーションからのパケットまたは当該アプリケーションに向けられたパケットを受信したとき、ルータ１０２はサーバ３５５に、ルーティングポリシー３０３によって示されるようにアプリケーションに関する１つまたは複数のトラフィッククラスを提供するように照会することができる。サーバ３５５にルーティングポリシー３０３を記憶することによって、ポリシーはより容易に更新および変更され得る。さらに、ルーティングポリシー３０３を使用して、ルータ１０２と同様に構成された複数の他のルータにトラフィッククラス情報を提供することができる。
【００５０】
図４は、本発明の一実施形態によるグラフィカルユーザインターフェース（ＧＵＩ）４００を示している。ＧＵＩ４００は、図示のトラフィッククラス制御ウィンドウ４０２を介してルーティングポリシー１０３の表示および変更を可能にする。トラフィッククラス制御ウィンドウ４０２は、アプリケーション識別子を示す列４０３と、関連するアプリケーションのトラフィッククラスを示すトラフィッククラス列４０４と、ルータ１０２によって関連するアプリケーションに関して通知されるパケットの数を示すパケット数列４０５とを表示する。
【００５１】
トラフィッククラス制御ウィンドウ４０２により、ユーザは各アプリケーションに関するトラフィッククラスを設定することによって、ルーティングポリシー１０３を変更することができる。一実施形態では、優先度列４０４のテキストがユーザによって編集されて、トラフィッククラスが変更され得る。たとえば、ユーザはアプリケーション２４１に関して番号「２」を入力することがある。ＧＵＩ４００は、アプリケーション列４０３におけるアプリケーションの表示を自動的に編成して、調整されたトラフィッククラスを反映させることができる。さらに、ＧＵＩ４００はトラフィッククラスの変更をルータ１０２に通知し、ルータはルーティングポリシー１０３を更新する。別の実施形態では、ユーザは、コンピュータマウスまたは他の入力デバイスを使用して列４０３におけるアプリケーション識別子をドラッグすることによって、アプリケーションのトラフィッククラスを変更することができる。別の実施形態では、ＧＵＩ４００により、ユーザは、１つのアプリケーションによって通信されている異なるタイプの情報に関して異なるトラフィッククラスを設定することができ得る。さらに別の実施形態では、ＧＵＩ４００は、特定のトラフィッククラスに関する管理特性をユーザが変更するためのインターフェースを提供することができる。したがって、ユーザは、優先度と、帯域幅と、確認応答ポリシーと、各トラフィッククラスに関連する他の基準とを設定することができる。さらに、異なるアプリケーションがＧＵＩ４００を介して同じトラフィッククラスに関連付けられ得ることが諒解されよう。
【００５２】
図５は、本開示の別の実施形態によるグラフィカルユーザインターフェース（ＧＵＩ）５００を示している。ＧＵＩ５００は、図示のトラフィッククラス制御ウィンドウ５０２を介してルーティングポリシー１０３の表示および変更を可能にする。トラフィッククラス制御ウィンドウ５０２がアプリケーションタイプに基づくトラフィッククラスの変更を可能にするという点で、トラフィッククラス制御ウィンドウ５０２は図４のトラフィッククラス制御ウィンドウ４０２とは異なる。したがって、トラフィッククラス制御ウィンドウ５０２は、アプリケーションタイプ識別子を示す列５０３と、関連するアプリケーションタイプのトラフィッククラスを示すトラフィッククラス列５０４と、ルータ１０２によって関連するアプリケーションタイプに関して通知されるパケットの数を示すパケット数列５０５とを表示する。トラフィッククラスウィンドウ５０２により、ユーザはテキスト入力、タイプ名のドラッグまたは他のインターフェース構成を通じて各アプリケーションタイプに関するトラフィッククラスを変更することによって、ルーティングポリシー１０３を変更することができる。ＧＵＩ５００はトラフィッククラスの変更をルータ１０２に通知し、ルータはそれに応答してルーティングポリシー１０３を更新する。
【００５３】
図６は、本開示の一実施形態による、１つまたは複数のリモートコンピュータデバイスにおいて実行されるアプリケーションに基づいてルータ１０２においてポートに優先度を付ける方法のフロー図を示している。ブロック６０２において、ルータ１０２は、リモートコンピュータデバイスにおいて実行されているアプリケーションを特定する。一実施形態では、この特定は、各リモートコンピュータデバイスから、対応するデバイスにおいて実行されているアプリケーションまたはアプリケーションタイプを示す情報を受信することによって行われる。別の実施形態では、この特定は、ルータ制御モジュール１０４が１つまたは複数の受信パケット分析し、分析に基づいてアプリケーションまたはアプリケーションタイプを特定することによって行われる。このようにしてルータ制御モジュール１０４は、パケットを受信または通信したポートの番号以外の情報に基づいて、パケットに関連するアプリケーションまたはアプリケーションタイプを特定する。すなわち、特定は、ポート番号以外の情報のみに基づくこと、またはポート番号とポート番号以外の情報の両方に基づくことがある。ブロック６０４において、ルータ１０２はルーティングポリシー１０３にアクセスして、実行されている各アプリケーションに関するトラフィッククラスを特定する。ブロック６０８において、ルータ１０２は、リモートコンピュータデバイスにおいて実行されるアプリケーションから通信されるパケットを受信し、パケットバッファ１０６にパケットを記憶する。ブロック６１２において、ルータ１０２は、各パケットに関連するトラフィッククラスに基づいて、ネットワークへのパケットの通信を管理する。
【００５４】
図７を参照すると、コンピュータデバイス７０４の特定の実施形態のブロック図が示されている。コンピュータデバイス７０４は、プロセッサ７７０とメモリ７６０とを含む。メモリ７６０は、プロセッサ７７０にとってアクセス可能である。プロセッサ７７０は、マイクロプロセッサ、マイクロコントローラなどであり得る。メモリ７６０はコンピュータ可読媒体であり、これはランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ、またはハードディスクもしくはフラッシュメモリなどの不揮発性メモリであり得る。
【００５５】
メモリ７６０は、プログラム７５０とオペレーティングシステム７０７とを格納する。プログラム７５０およびオペレーティングシステム７０７は、プロセッサ７７０を操作して本明細書で説明する方法のうちの１つまたは複数を実施するための命令を含む。アプリケーションなどの他のプログラムも、プロセッサを操作して説明する方法を実施するために、メモリ７６０に記憶され得る。
【００５６】
上記の開示された主題は、限定的ではなく例示的であると考えられるものであり、添付の特許請求の範囲は、本発明の真の趣旨および範囲に入るすべてのそのような変更、改良、および他の実施形態をカバーすることが意図されている。したがって、法によって許容される最大の範囲で、本発明の範囲は、以下の特許請求の範囲およびそれらの同等物の最も幅広い許容される解釈によって判断されるものであり、前述の詳細な説明によって制限または限定されるものではない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ルータにおいて、第１の複数のパケットに基づいて、第１のリモートコンピュータデバイスにおいて実行される、前記第１の複数のパケットに関連する第１のアプリケーションを特定することと、
前記第１のアプリケーションに基づいて、前記第１の複数のパケットに関する第１のトラフィッククラスを特定することと、
前記第２のトラフィッククラスに基づいて、前記ルータにおける前記第１の複数のパケットのルーティングを管理することと
を備える方法。
［Ｃ２］
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記複数のパケットのルーティングに優先度を付けることを備える、Ｃ１に記載の方法。
［Ｃ３］
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットに前記ルータの帯域幅を割り振ることを備える、Ｃ１に記載の方法。
［Ｃ４］
前記第１のアプリケーションを特定することは、前記第１のアプリケーションに関連するアプリケーションタイプを特定することを備える、Ｃ１に記載の方法。
［Ｃ５］
前記第１の複数のパケットのルーティングを管理することは、前記第１のトラフィッククラスに基づいて、前記第１の複数のパケットの確認応答を管理することを備える、Ｃ１に記載の方法。
［Ｃ６］
第１の情報は、前記第１の複数のパケットに関連するポート番号を含む、Ｃ１に記載の方法。
［Ｃ７］
前記第１のトラフィッククラスを特定することは、前記第１の複数のパケットを介して通信される第１のタイプの情報を特定することと、前記第１のタイプの情報に基づいて前記第１のトラフィッククラスを特定することとを備える、Ｃ１に記載の方法。
［Ｃ８］
前記第１のアプリケーションに関連する第２の複数のパケットを介して通信される第２のタイプの情報を特定することと、
前記第１のアプリケーションおよび前記第２のタイプの情報に基づいて、前記第２の複数のパケットに関する第２のトラフィッククラスを特定することと、
前記第２のトラフィッククラスに基づいて、前記ルータにおける前記第１の複数のパケットのルーティングを管理することと
をさらに備える、Ｃ７に記載の方法。
［Ｃ９］
ルータにおいて、第１のリモートコンピュータデバイスにおいて実行される、第１の複数のパケットに関連する第１のアプリケーションを示す情報を外部ソースから受信することと、
前記第１のアプリケーションに基づいて、前記第１の複数のパケットに関する第１のトラフィッククラスを特定することと、
前記第２のトラフィッククラスに基づいて、前記ルータにおける前記第１の複数のパケットのルーティングを管理することと
を備える方法。
［Ｃ１０］
前記第１のトラフィッククラスを特定することは、リモートサーバに前記第１のトラフィッククラスを要求することを備える、Ｃ９に記載の方法。
［Ｃ１１］
前記外部ソースは前記第１のアプリケーションを備える、Ｃ９に記載の方法。
［Ｃ１２］
前記外部ソースは第２のリモートコンピュータデバイスを備える、Ｃ９に記載の方法。
［Ｃ１３］
コンピュータデバイスにおいて実行される複数のアプリケーションを特定することに基づいて、ルータにおいて複数のパケットをルーティングすることに関連する複数のトラフィッククラスを特定することと、
コンピュータデバイスにおいてグラフィカルユーザインターフェース（ＧＵＩ）を介して前記複数のトラフィッククラスを表示することと
を備える方法。
［Ｃ１４］
前記トラフィッククラスの変更をＧＵＩを介して受信することと、
前記トラフィッククラスの前記変更を前記ルータに通信することと
をさらに備える、Ｃ１３に記載の方法。
［Ｃ１５］
前記ルータから離れて位置する第１のコンピュータデバイスにおいて実行される第１のアプリケーションに関連する第１の複数のパケットを受信するための第１のネットワーク接続を備える複数のネットワーク接続と、
前記第１の複数のパケットに基づいて前記第１のアプリケーションを特定し、前記第１のアプリケーションに基づいて前記第１のアプリケーションに関連する前記第１の複数のパケットに関する第１のトラフィッククラスを特定するためのルータ制御モジュールと、
前記第１のトラフィッククラスに基づいて前記ルータにおける前記第１の複数のパケットのルーティングを管理するための前記ルータ制御モジュールと
を備えるルータ。
［Ｃ１６］
前記ルータ制御モジュールは、前記トラフィッククラスに基づいて前記複数のパケットのルーティングに優先度を付けることによって、前記複数のパケットのルーティングを管理するためのものである、Ｃ１５に記載のルータ。
［Ｃ１７］
前記ルータ制御モジュールは、前記トラフィッククラスに基づいて前記複数のパケットに前記ルータの帯域幅を割り振ることによって、前記複数のパケットのルーティングを管理するためのものである、Ｃ１５に記載のルータ。
［Ｃ１８］
パケットを記憶するためのパケットバッファをさらに備え、前記ルータ制御モジュールは、前記トラフィッククラスに基づく順序に従って前記パケットバッファからパケットを取り出すためのものである、Ｃ１５に記載のルータ。
［Ｃ１９］
前記ルータ制御モジュールは、前記第１のアプリケーションに関連するアプリケーションタイプを特定するためのものである、Ｃ１５に記載のルータ。
［Ｃ２０］
前記ルータ制御モジュールは、前記第１の複数のパケットを介して通信される第１のタイプの情報を特定することと、前記第１のタイプの情報に基づいて前記第１のトラフィッククラスを特定することとによって、前記第１のトラフィッククラスを特定するためのものである、Ｃ１５に記載のルータ。
［Ｃ２１］
前記ルータ制御モジュールは、
前記第１のアプリケーションに関連する、前記ルータにおいて受信される第２の複数のパケットを介して通信される第２のタイプの情報を特定し、
前記第１のアプリケーションおよび前記第２のタイプの情報に基づいて、前記第２の複数のパケットに関する第２のトラフィッククラスを特定し、
前記第２のトラフィッククラスに基づいて、前記ルータにおける前記第１の複数のパケットのルーティングを管理する
ためのものである、Ｃ２０に記載のルータ。
【図１】
0005931908.tif 000002
【図２】
0005931908.tif 000003
【図３】
0005931908.tif 000004
【図４】
0005931908.tif 000005
【図５】
0005931908.tif 000006
【図６】
0005931908.tif 000007
【図７】
0005931908.tif 000008