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

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許5931908ルータにおけるトラフィックを管理するための技法
<>
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000002
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000003
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000004
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000005
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000006
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000007
  • 特許5931908-ルータにおけるトラフィックを管理するための技法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5931908
(24)【登録日】2016年5月13日
(45)【発行日】2016年6月8日
(54)【発明の名称】ルータにおけるトラフィックを管理するための技法
(51)【国際特許分類】
   H04L 12/717 20130101AFI20160526BHJP
   H04L 12/859 20130101ALI20160526BHJP
   H04L 12/927 20130101ALI20160526BHJP
【FI】
   H04L12/717
   H04L12/859
   H04L12/927
【請求項の数】11
【全頁数】18
(21)【出願番号】特願2013-543250(P2013-543250)
(86)(22)【出願日】2011年12月6日
(65)【公表番号】特表2014-502482(P2014-502482A)
(43)【公表日】2014年1月30日
(86)【国際出願番号】US2011063428
(87)【国際公開番号】WO2012078575
(87)【国際公開日】20120614
【審査請求日】2013年8月2日
【審判番号】不服2015-4096(P2015-4096/J1)
【審判請求日】2015年3月2日
(31)【優先権主張番号】12/960,935
(32)【優先日】2010年12月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100194814
【弁理士】
【氏名又は名称】奥村 元宏
(72)【発明者】
【氏名】メンチャカ、ベンジャミン・エム.
(72)【発明者】
【氏名】ダンラップ、ウェーン・ジー.
【合議体】
【審判長】 菅原 道晴
【審判官】 ▲高▼橋 真之
【審判官】 萩原 義則
(56)【参考文献】
【文献】 特開2003−87314(JP,A)
【文献】 米国特許第6167445(US,A)
【文献】 特開2002−16643(JP,A)
【文献】 特開2008−92184(JP,A)
【文献】 米国特許第6718380(US,B1)
【文献】 米国特許出願公開第2008/0291916(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70-12/955
(57)【特許請求の範囲】
【請求項1】
ルータにおいて、第1のリモートコンピュータデバイスにおいて実行される、前記ルータにおいて受信された第1の複数のパケットに関連する第1のアプリケーションを特定することと、
前記第1のアプリケーションに関連する前記第1の複数のパケットを介して通信される第1の情報のタイプを特定することと、
アプリケーションのセットと情報のタイプに関連するトラフィッククラスとを示すルーティングポリシーを受信することと、
前記ルーティングポリシーにしたがって、前記第1の情報のタイプおよび前記第1のアプリケーションに基づいて、前記第1の複数のパケットに関する第1のトラフィッククラスを割り当てることと、
前記第1のトラフィッククラスに基づいて、前記ルータにおける前記第1の複数のパケットのルーティングを管理することと
を備える方法。
【請求項2】
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットのルーティングに優先度を付けることを備える、請求項1に記載の方法。
【請求項3】
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットに前記ルータの帯域幅を割り振ることを備える、請求項1に記載の方法。
【請求項4】
前記第1のアプリケーションを特定することは、前記第1のアプリケーションに関連するアプリケーションタイプを特定することを備える、請求項1に記載の方法。
【請求項5】
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットの確認応答ポリシーを管理することを備え、ここで、前記確認応答ポリシーは、パケットバッファに記憶されたパケットに関し、前記第1のトラフィッククラスに関連するパケットを送信した後、確認応答が指定時間内に受信されない場合に前記パケットを再送する、請求項1に記載の方法。
【請求項6】
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットの確認応答ポリシーを管理することを備え、ここで、前記確認応答ポリシーは、パケットバッファに記憶されたパケットに関し、前記第1のトラフィッククラスに関連するパケットを、送信後、確認応答を待つことなく廃棄する、請求項1に記載の方法。
【請求項7】
前記第1のアプリケーションに関連する前記第1の複数のパケットを介して通信される前記第1の情報のタイプを前記特定することは、前記第1のアプリケーションに関連する前記第1の複数のパケットに含まれるヘッダ情報に基づいて前記第1の情報のタイプを特定することを備える、請求項1に記載の方法。
【請求項8】
前記第1のアプリケーションに関連する前記第1の複数のパケットを介して通信される前記第1の情報のタイプを前記特定することは、前記第1のアプリケーションに関連する前記第1の複数のパケットに含まれるペイロード情報に基づいて前記第1の情報のタイプを特定することを備える、請求項1に記載の方法。
【請求項9】
前記第1の複数のパケットに含まれるペイロード情報およびヘッダ情報の少なくとも1つに基づいて、前記第1のアプリケーションに関連する前記第1の複数のパケットを介して通信される前記第1の情報のタイプを特定することと、
第2の複数のパケットに含まれるペイロード情報およびヘッダ情報の少なくとも1つに基づいて、前記第1のアプリケーションに関連する前記第2の複数のパケットを介して通信される第2の情報のタイプを特定することと、
前記ルーティングポリシー、前記第1のアプリケーション、および前記第2の情報のタイプに少なくとも部分的に基づいて、前記第2の複数のパケットに関する第2のトラフィッククラスを割り当てることと、
前記第2のトラフィッククラスに基づいて、前記ルータにおける前記第2の複数のパケットのルーティングを管理することと
をさらに備える、請求項1に記載の方法。
【請求項10】
前記ルーティングポリシーは、前記第1のアプリケーションを実行する前記第1のリモートコンピュータデバイス、または前記第1のアプリケーションを実行する複数のエンドポイントに関する前記ルーティングポリシーを設定するサーバのどちらか一方から受信される、請求項1に記載の方法。
【請求項11】
前記ルータから離れて位置する第1のリモートコンピュータデバイスにおいて実行される第1のアプリケーションに関連する第1の複数のパケットを受信するように構成された第1のネットワーク接続を含む複数のネットワーク接続と、
請求項1乃至10における前記方法のうちのいずれか1つを実施するように構成されたルータ制御モジュールと
を備えるルータ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2010年12月6日に出願された米国特許出願第12/960,935号の優先権の利益を主張する。
【0002】
本開示は、コンピュータネットワークに関し、より詳細には、コンピュータネットワークのルーティングデバイスに関する。
【背景技術】
【0003】
通信ネットワークは、電子デバイス間で多種多様な情報を転送するために用いられる。しかしながら、通信ネットワークで転送される情報の量が増大するにつれて、ネットワークを支配する通信バックボーンが圧迫されて、望ましくない情報転送遅延が生じることがある。これは、芳しくないユーザエクスペリエンスをもたらし得る。たとえば、ユーザはネットワークラグを経験することがあり、この場合、パケットは、別のネットワークノードへの転送を待つ間、ユーザが情報転送遅延を知覚できるほどの時間量にわたってネットワークノードにとどまる。さらに、ネットワークラグおよび他のネットワーク転送問題が、ゲームアプリケーションやボイス通信アプリケーションなどの多種多様なアプリケーションに影響を及ぼすことがある。
【発明の概要】
【0004】
いくつかの実施形態では、一方法は、ルータにおいて、第1の複数のパケットに基づいて、第1のリモートコンピュータデバイスにおいて実行される、第1の複数のパケットに関連する第1のアプリケーションを特定すること(determining)と、第1のアプリケーションに基づいて、第1の複数のパケットに関する第1のトラフィッククラスを特定することと、第2のトラフィッククラスに基づいて、ルータにおける第1の複数のパケットのルーティングを管理することとを備える。
【0005】
いくつかの実施形態では、第1の複数のパケットのルーティングを管理することは、第1のトラフィッククラスに基づいて、複数のパケットのルーティングに優先度を付けることを備える。
【0006】
いくつかの実施形態では、第1の複数のパケットのルーティングを管理することは、第1のトラフィッククラスに基づいて、第1の複数のパケットにルータの帯域幅を割り振ることを備える。
【0007】
いくつかの実施形態では、第1のアプリケーションを特定することは、第1のアプリケーションに関連するアプリケーションタイプを特定することを備える。
【0008】
いくつかの実施形態では、第1の複数のパケットのルーティングを管理することは、第1のトラフィッククラスに基づいて、第1の複数のパケットの確認応答を管理することを備える。
【0009】
いくつかの実施形態では、第1の情報は、第1の複数のパケットに関連するポート番号を含む。
【0010】
いくつかの実施形態では、第1のトラフィッククラスを特定することは、第1の複数のパケットを介して通信される第1のタイプの情報を特定することと、第1のタイプの情報に基づいて、第1のトラフィッククラスを特定することとを備える。
【0011】
いくつかの実施形態では、本方法は、第1のアプリケーションに関連する第2の複数のパケットを介して通信される第2のタイプの情報を特定することと、第1のアプリケーションおよび第2のタイプの情報に基づいて、第2の複数のパケットに関する第2のトラフィッククラスを特定することと、第2のトラフィッククラスに基づいて、ルータにおける第1の複数のパケットのルーティングを管理することとをさらに備える。
【0012】
いくつかの実施形態では、一方法は、ルータにおいて、第1のリモートコンピュータデバイスにおいて実行される、第1の複数のパケットに関連する第1のアプリケーションを示す情報を外部ソースから受信することと、第1のアプリケーションに基づいて、第1の複数のパケットに関する第1のトラフィッククラスを特定することと、第2のトラフィッククラスに基づいて、ルータにおける第1の複数のパケットのルーティングを管理することとを備える。
【0013】
いくつかの実施形態では、第1のトラフィッククラスを特定することは、リモートサーバに第1のトラフィッククラスを要求することを備える。
【0014】
いくつかの実施形態では、外部ソースは第1のアプリケーションを備える。
【0015】
いくつかの実施形態では、外部ソースは第2のリモートコンピュータデバイスを備える。
【0016】
いくつかの実施形態では、一方法は、コンピュータデバイスにおいて実行される複数のアプリケーションを特定することに基づいて、ルータにおいて複数のパケットをルーティングすることに関連する複数のトラフィッククラスを特定することと、コンピュータデバイスにおいてグラフィカルユーザインターフェース(GUI)を介して複数のトラフィッククラスを表示することとを備える。
【0017】
いくつかの実施形態では、本方法は、トラフィッククラスの変更をGUIを介して受信することと、トラフィッククラスの変更をルータに通信することとをさらに備える。
【0018】
いくつかの実施形態では、ルータは、ルータから離れて位置する第1のコンピュータデバイスにおいて実行される第1のアプリケーションに関連する第1の複数のパケットを受信するための第1のネットワーク接続を備える複数のネットワーク接続と、第1の複数のパケットに基づいて第1のアプリケーションを特定し、第1のアプリケーションに基づいて第1のアプリケーションに関連する第1の複数のパケットに関する第1のトラフィッククラスを特定するためのルータ制御モジュールと、第1のトラフィッククラスに基づいてルータにおける第1の複数のパケットのルーティングを管理するためのルータ制御モジュールとを備える。
【0019】
いくつかの実施形態では、ルータ制御モジュールは、トラフィッククラスに基づいて複数のパケットのルーティングに優先度を付けることによって、複数のパケットのルーティングを管理するためのものである。
【0020】
いくつかの実施形態では、ルータ制御モジュールは、トラフィッククラスに基づいて複数のパケットにルータの帯域幅を割り振ることによって、複数のパケットのルーティングを管理するためのものである。
【0021】
いくつかの実施形態では、ルータは、パケットを記憶するためのパケットバッファをさらに備え、ルータ制御モジュールは、トラフィッククラスに基づく順序に従ってパケットバッファからパケットを取り出すためのものである。
【0022】
いくつかの実施形態では、ルータ制御モジュールは、第1のアプリケーションに関連するアプリケーションタイプを特定するためのものである。
【0023】
いくつかの実施形態では、ルータ制御モジュールは、第1の複数のパケットを介して通信される第1のタイプの情報を特定することと、第1のタイプの情報に基づいて第1のトラフィッククラスを特定することとによって、第1のトラフィッククラスを特定するためのものである。
【0024】
いくつかの実施形態では、ルータ制御モジュールは、第1のアプリケーションに関連する、ルータにおいて受信される第2の複数のパケットを介して通信される第2のタイプの情報を特定し、第1のアプリケーションおよび第2のタイプの情報に基づいて、第2の複数のパケットに関する第2のトラフィッククラスを特定し、第2のトラフィッククラスに基づいて、ルータにおける第1の複数のパケットのルーティングを管理するためのものである。
【0025】
添付の図面を参照することによって、本開示はより良く理解され、その多数の特徴および利点が当業者に明らかになろう。
【図面の簡単な説明】
【0026】
図1】本開示の一実施形態によるルータのブロック図。
図2】本開示の一実施形態による通信システムのブロック図。
図3】本開示の一実施形態による別の通信システムのブロック図。
図4】本開示の一実施形態によるグラフィカルユーザインターフェースの図。
図5】本開示の別の実施形態によるグラフィカルユーザインターフェースの図。
図6】本開示の一実施形態によるルータにおけるパケットのルーティングに優先度を付ける方法のフロー図。
図7】本開示の一実施形態によるコンピュータデバイスのブロック図。
【発明を実施するための形態】
【0027】
図1図7は、ルータに接続された1つまたは複数のエンドポイントデバイスにおいて実行される特定のアプリケーションの識別に基づいてパケット通信を管理するようにネットワークのルータを構成することによって、ネットワークの通信効率を向上させるための技法を示している。具体的には、ネットワークは、ネットワークに結合されたエンドポイント間で情報のパケットを通信する。ルータは、ネットワークノード間でパケットをルーティングするためにネットワークによって用いられ、パケットの通信を、各パケットに関連するトラフィッククラスに従って管理する。ルータは、パケットを提供したアプリケーションまたはパケットのターゲットであるアプリケーションに従ってパケットにトラフィッククラスを割り当てるように構成される。したがって、受信パケット優先順序に関するトラフィッククラスは、どのアプリケーションが1つまたは複数のエンドポイントで実行されているかの判断に基づいて、動的に特定される(determined)。したがって、ルータは、帯域幅、優先度、および実行されるアプリケーションの他の通信要件に応じて、パケット通信をより効率的に管理することができる。
【0028】
例示すると、コンピュータデバイスのような通信エンドポイントが、オンラインゲームアプリケーションとピアツーピア(P2P)ファイル通信プログラムとを実行していることがある。一般に、オンラインゲームプログラムはユーザにとって、P2Pファイル通信プログラムよりも高い優先度を有する。具体的には、オンラインゲームプログラムの場合、キャラクターステータス更新などの情報をゲームサーバに比較的速く通信することが、楽しいゲームエクスペリエンスをもたらすために有用である。対照的に、P2Pファイル通信は一般に、比較的長い時間量を要求し、P2Pファイル通信プログラムに関連する特定のパケットの迅速な通信は、ユーザエクスペリエンスに大きく影響するものではない。したがって、本明細書で説明するルータデバイスは、ゲームプログラムに関連するパケットに対しより高いルーティング優先度が付与されるように、ゲームプログラムおよびP2Pファイル通信プログラムに関連するパケットに対しトラフィッククラスを割り当てるように構成され得る。さらに、各パケットに割り当てられるトラフィッククラスは、固定のルータポート番号ではなく、パケットに関連するアプリケーションに基づく。
【0029】
図1を参照すると、ルータ102のブロック図が示されている。ルータ102は通信システムに組み込まれており、それによって、ルータ102は通信ネットワークとの間でパケットを受信し、通信する。通信ネットワークはいくつかのノードを含み、それによって、ネットワークノードは、パケットの提供、パケットの受信、またはそれらの任意の組合せを行うことができるネットワーク内のポイントとなっている。したがって、ノードは一般に、特定の通信セッションに関してエンドポイントまたはルーティングノードに分類され得る。エンドポイントは、パケットに含まれるペイロード情報の発信源または最終的な宛先のいずれかを指す。ルーティングノードは、1つまたは複数のネットワークノードからパケットを受信し、各パケットに付帯しているアドレス情報に基づいて、1つまたは複数の他のネットワークノードにパケットを提供するノードを指す。ネットワークノードが、あるパケットに関してルーティングノードになる場合があり、別のパケットに関してエンドポイントになる場合があることが諒解されよう。したがって、たとえば、サーバデバイスがエンドポイントへの通信のために情報を発信することがあり、受信したパケットを他のネットワークノードにルーティングすることもある。したがってサーバは、サーバが発信したパケットに関してエンドポイントであり、サーバが他のノードにルーティングするためにネットワークから受信するパケットに関してルーティングノードである。
【0030】
ルータ102は、ネットワークのルーティングノードに組み込まれており、パケットの受信と他のネットワークノードへのパケットのルーティングとを容易にするためのいくつかのモジュールを含む。具体的には、図1の図示の例では、ルータ102はルータ制御モジュール104と、パケットバッファ106と、スイッチングファブリック110と、ネットワーク接続115〜117とを含む。ネットワーク接続115〜117の各々は、ネットワークのノードからパケットを受信することと、ネットワークのノードにパケットを通信することの両方が可能なネットワークに対する入力/出力接続である。具体的には、ネットワーク接続115〜117の各々は、ネットワークに含まれるノードの異なるサブセットに接続される。したがって、あるネットワーク接続においてパケットを受信することと、別のネットワーク接続を介してパケットを送信することとによって、ルータ100はノードのあるサブセットから別のサブセットにパケットを通信する。
【0031】
スイッチングファブリック110は、ルータ102のモジュール間でパケットをルーティングする通信バックボーンである。スイッチングファブリックは、提供されたパケットをネットワークのどのモジュールが受信するかを示す制御シグナリングを受信する。したがって、スイッチングファブリック110は、ルータ102によるパケットの受信、記憶、および提供を容易にする。
【0032】
パケットバッファ106は、受信したパケットを記憶するランダムアクセスメモリ(RAM)、不揮発性メモリ、または他のメモリなどのメモリ構造である。パケットバッファ106は、個別にアドレス指定可能な位置にパケットを記憶することができ、それによって、パケットバッファ106は、受信した制御シグナリングに基づいてアドレス指定可能な位置にパケット記憶し、または当該位置にあるパケットを取り出す。制御シグナリングは、パケットバッファ106へのアクセス要求が読取りアクセスであるか、それとも書込みアクセスであるかを示し、アクセスに関連する位置のアドレスを示す。それに応答して、パケットバッファ106は、書込みアクセスの場合には示された位置に受信パケットを記憶し、または読取りアクセスの場合には示された位置に記憶されたパケットを取り出す。
【0033】
ルータ制御モジュール104は、ルータ102の動作を制御するように動作可能なモジュールである。したがって、ルータ制御モジュール104は、汎用もしくは特定用途向けプロセッサ、状態機械などを実施するための1つもしくは複数の論理モジュール、またはそれらの任意の組合せであり得る。ルータ102の動作を制御するために、ルータ制御モジュール104は、ルータ102において受信したパケットを監視し、制御シグナリングを提供することで、受信したパケットを各パケットに関連するアドレス情報に基づいて記憶しルーティングすることを容易にする。
【0034】
例示すると、動作中に、ネットワーク接続115〜117のうちの1つにおいてパケットが受信される。各受信パケットは、アプリケーションに関連付けられる。本明細書で使用するアプリケーションは、アプリケーションによって提供されたペイロード情報をパケットが含む場合、またはパケットがアプリケーションに向けられている場合に、パケットに関連付けられる。パケットを受信したことに応答して、ルータ制御モジュール104はスイッチングファブリック110に制御シグナリングを提供して、パケットがパケットバッファ106に提供されるようにする。ルータ制御モジュール104はパケットバッファ106にも制御シグナリングを提供して、ルータ制御モジュール104によって示されたアドレスに受信パケットが記憶されるようにする。ルータ制御モジュール104はまた、制御シグナリングを提供することで、パケットバッファ106からパケットを取り出し、パケットに含まれる宛先アドレス情報を分析し、スイッチングファブリック110を制御して、宛先アドレスによって示されるネットワーク接続115〜117のうちの1つにパケットが提供されるようにすることができる。具体的には、ルータ制御モジュール104は、ルータ102に接続されたネットワークノードの各サブセットに関連する宛先アドレス範囲を示す1つまたは複数のルーティング表(不図示)にアクセスすることができる。アドレスによって示されるノードのサブセットに基づいて、ルータ制御モジュールはスイッチングファブリック110を制御して、ノードの示されたサブセットに関連するネットワーク接続115〜117のうちの1つにパケットが提供されるようにすることができる。
【0035】
ルータ制御モジュール104は、トラフィッククラスセットに従って受信パケットの通信を管理することができ、それによって、各受信パケットは当該セット内のトラフィッククラスのうちの1つに関連付けられる。したがって、パケットの管理は、トラフィッククラスに基づくパケット通信の優先度付け、トラフィッククラスに基づく帯域幅の割当て、トラフィッククラスに基づく確認応答ポリシーの管理などを含むことができる。
【0036】
例示すると、ルータ制御モジュール104は、各トラフィッククラスに関連する優先度を特定して、より優先度の高いトラフィッククラスに関連するパケットが、より優先度の低いトラフィッククラスを有するパケットの前にルーティングされる可能性が高くなるようにすることができる。具体的には、ルータ制御モジュール104は、優先順序に従ってパケットバッファ106からパケットを取り出し、それによって、各パケットがネットワークに通信される際の優先度を制御することができる。パケットに関する優先順序は、各パケットのトラフィッククラスに関連する優先度に基づき得る。動作時に、ルータ制御モジュール104はパケットを、各パケットの優先度レベルによって示される順序に従ってネットワークに提供するためにバケットバッファ106から取り出す。したがって、パケットに関連するトラフィッククラスによって示されるように、より優先度レベルの高いパケットが、より優先度レベルの低いパケットの前にネットワークに通信される。ルータ制御モジュール104は、いくつかの方法のうちのいずれかによる優先順序に従ったパケットバッファ106からのパケットの取出しを実行し得る。一実施形態では、パケットを取り出す前に、ルータ制御モジュール104は、パケットバッファ106を横断して(traverse)、バッファに記憶されているパケットのうちでどれが最も高い優先度レベルを有するかを判断することができる。別の実施形態では、パケットバッファ106を複数の領域に編成して、より高い優先度レベルを有するパケットがより低い優先度レベルを有するパケットとは異なる領域に記憶されるようにすることができる。ルータ制御モジュール104は、より優先度の高い領域のパケットが、より優先度の低い領域に記憶されたパケットの前にパケットバッファから取り出されるように、領域の順序に従って通信のためにパケットを取り出すことができる。
【0037】
一実施形態では、ルータ制御モジュール104は、パケットセットに関する帯域幅および待ち時間を、パケットに関連するトラフィッククラスに基づいて管理する。たとえば、トラフィッククラスは、トラフィッククラスに関連するパケットに関する待ち時間優先度レベルと帯域幅限度の両方を示し得る。ルータ制御モジュール104は、指定されたトラフィッククラスに関連するパケットを、トラフィッククラスに関連する待ち時間優先順序に基づいて、トラフィッククラスに関連する対応する帯域幅限度まで、パケットバッファ106から周期的に取り出し得る。パケットバッファ106に記憶されたパケットのトラフィッククラスに基づくパケットの周期的取出しを繰り返すことによって、各トラフィッククラスに関連する帯域幅および待ち時間が維持される。
【0038】
さらに、ルータ制御モジュール104は、パケットバッファ106に記憶されたパケットに関する確認応答ポリシーを、パケットに関連するトラフィッククラスに従って管理し得る。例示すると、クラス1に指定された第1のトラフィッククラスは、第1の確認応答ポリシーに関連付けられることがあり、それによって、ルータ制御モジュール104は、クラス1に関連するパケットを送信した後、確認応答が指定時間内に受信されない場合にパケットを再送する。クラス2に指定された第2のトラフィッククラスは、第2の確認応答ポリシーに関連付けられることがあり、それによって、ルータ制御モジュールは、クラス2に関連するパケットを、送信後、確認応答を待つことなく廃棄する。
【0039】
図示の実施形態では、ルータ102はルーティングポリシー103を記憶しており、これは、ルータ102を介してパケットを通信(送信または受信)する1つまたは複数のエンドポイントにおいて実行されるアプリケーションセットに関連するトラフィッククラスを示す表または他のデータ構造を含む。ルーティングポリシー103はまた、他の情報、たとえば相対的優先度、帯域幅、確認応答ポリシー、および各トラフィッククラスに関連する他の情報を示し得る。ルータ制御モジュール104は、上記のようにパケットに関連するトラフィッククラスに従ってパケットの通信を管理するためにルーティングポリシー103にアクセスするように構成される。したがって、ルータ102においてパケットを受信すると、ルータ制御モジュール104は、パケットに関連するアプリケーションを特定し得る。パケットに関連するアプリケーションは、パケットを受信したルータポート番号、パケットに含まれるヘッダ情報、たとえば、アプリケーション名、ポート番号、アドレスもしくは他の情報、またはそれらの任意の組合せに基づいて、ルータ制御モジュール104によって特定され得る。一実施形態では、ルータ制御モジュール104は、パケットのデータペイロードを調べることによって、またはヘッダ内の情報とデータペイロード内の情報との組合せに基づいて、パケットに関連するアプリケーションを特定することができる。したがって、ルータ制御モジュール104は、パケットを受信したポート番号以外の情報に基づいて、またはポート番号と他の情報の両方に基づいて、パケットに関連するアプリケーションを特定し得る。別の実施形態では、ルータ制御モジュール104は、パケットおよびそれらの通信の特性、たとえば、パケットのサイズ、パケットがルータ102に通信される頻度などに基づいて、パケットに関連するアプリケーションを特定し得る。他の実施形態では、ルータ制御モジュール104は、外部ソース、たとえばパケットを通信したアプリケーション、リモートサーバ、パケットを通信したコンピュータデバイスとは異なる外部コンピュータデバイスなどから受信した情報に基づいて、パケットに関連するアプリケーションを特定することができる。
【0040】
受信パケットに関連するアプリケーションを特定すると、ルータ制御モジュール104は、ルーティングポリシー103にアクセスして、アプリケーションに関連するトラフィッククラスを特定し、示されたトラフィッククラスをパケットに割り当てる。一実施形態では、ルータ制御モジュール104は、トラフィッククラスを示すようにパケットのヘッダを変更することによって、トラフィッククラスを割り当てることができる。別の実施形態では、ルータ制御モジュール104は、受信パケットに関するトラフィッククラスを別個のデータベースに記憶することができる。
【0041】
別の実施形態では、ルーティングポリシー103は、アプリケーションタイプのセットと各タイプに関連するトラフィッククラスとを示す。たとえば、ルーティングポリシー103は、優先度が比較的高いトラフィッククラスにゲームアプリケーションが関連付けられ、優先度が比較的低いトラフィッククラスにP2Pファイル通信アプリケーションが関連付けられることを示すことがある。この実施形態では、ルータ制御モジュール104は、たとえば通信エンドポイントから、各受信パケットに関連するアプリケーションのタイプを示す情報を受信し、受信パケットのトラフィッククラスを、各パケットに関連するアプリケーションタイプに従って特定することができる。ルーティングポリシー103は、アプリケーションまたはアプリケーションタイプに関連するトラフィッククラスが変化するのに伴い、各アプリケーションまたはアプリケーションタイプに関連するトラフィッククラスを反映するように、経時的に更新され得る。
【0042】
いくつかの実施形態では、アプリケーションは、異なるタイプの情報を通信して、アプリケーションとの間で通信される異なるパケットが異なるトラフィッククラスに関連付けられるようにすることができる。たとえば、あるアプリケーションは、あるパケットセットを介してパッチ更新を受信する一方で、異なるパケットセットを介してサーバにゲームセッション情報を通信することがある。したがって、ルーティングポリシー103は、1つのアプリケーションによって通信される異なるタイプの情報に関して異なるトラフィッククラスを示し得る。たとえば、ルーティングポリシー103は、アプリケーションに関するパッチ情報を通信するパケットが第1のトラフィッククラスに関連付けられ、ゲームセッションの対話を表す情報を通信するパケットが異なるトラフィッククラスに関連付けられることを示すことがある。ルータ制御モジュール104は、アプリケーションとの間で通信された各パケットによって通信された情報のタイプを特定し、ルーティングポリシー103によって示されるように各パケットにトラフィッククラスを割り当てることができる。パケットに関連する情報のタイプは、パケットを受信したルータポート番号、パケットに含まれるヘッダ情報、たとえば、アプリケーション名、ポート番号、アドレスもしくは他の情報、またはそれらの任意の組合せに基づいて特定され得る。一実施形態では、ルータ制御モジュール104は、パケットのデータペイロードを調べることによって、またはヘッダ内の情報とデータペイロード内の情報との組合せに基づいて、パケットに関連する情報のタイプを特定することができる。したがって、ルータ制御モジュール104は、パケットを受信したポート番号以外の情報に基づいて、またはポート番号と他の情報の両方に基づいて、パケットに関連する情報のタイプを特定し得る。
【0043】
ルーティングポリシー103は、通信エンドポイントまたは他の制御デバイスによって、ネットワークまたは他の通信経路を介してルータ102に提供され得る。したがって、たとえば、通信エンドポイントは、各アプリケーションに関する1つまたは複数のトラフィッククラス示すために、ルータ102にルーティングポリシー103を提供することがある。これは、たとえば、ルータ102がエンドポイントにネットワークへの一次インターフェースを提供する場合に有用なことがある。別の実施形態では、ルーティングポリシー103は、ソースまたは宛先エンドポイント以外のデバイスによって提供され得る。たとえば、サーバは、複数のエンドポイントに関する、たとえば共通ローカルエリアネットワーク(LAN)に接続された複数のコンピュータデバイスに関するトラフィッククラスを設定するために、ルーティングポリシー103をルータ102に提供することがある。さらに別の実施形態では、ルーティングポリシー103はルータ102において、エンドユーザに販売される前に事前構成され得る。別の実施形態では、各アプリケーションは、アプリケーションによってルータ102に通信されるパケットに関する1つまたは複数のトラフィッククラスを提供することができる。さらに別の実施形態では、ルータ102は、アプリケーションからのパケットまたはアプリケーションに向けられたパケットを受信したことに応答して、アプリケーションに対し、その1つまたは複数のトラフィッククラスを示す情報を提供するよう照会することができる。
【0044】
図2は、本開示の一実施形態による図1のルータ102を組み込んだ通信システム200を示している。通信システム200はまた、ネットワーク220とコンピュータデバイス230および231とを含み、これらの各々はルータ202に接続されている。図示の実施形態では、ルータ102はコンピュータデバイス230および231の間で、かつコンピュータデバイス230および231ならびにネットワーク220の間でパケットをルーティングする。コンピュータデバイス230および231の各々はアプリケーションを実行する。たとえば、コンピュータデバイス230はアプリケーション240および241を実行し、コンピュータデバイス231はアプリケーション242および243を実行する。
【0045】
コンピュータデバイス230はまた、コンピュータデバイス230において実行されているアプリケーションを特定するように動作可能なアプリケーションアナライザ235を実行する。アプリケーションアナライザ235は、プロセス情報、タスク情報、またはコンピュータデバイス230において実行されているオペレーティングシステムによって提供される他の情報にアクセスすることによって、実行されているアプリケーションを特定し得る。アプリケーションアナライザ235はまた、各アプリケーションによってアクセスされているソフトウェアライブラリ、デバイスドライバ、オペレーティングシステムリソース、または他のルーチン、プログラム、およびリソースに基づいて、実行されているアプリケーションを特定し得る。したがって、たとえば、アプリケーションアナライザが、ビデオデバイスドライバが特定のレートでアクセスされていると判断した場合、ビデオストリーミングアプリケーションが実行されている。実行されているアプリケーションに基づいて、アプリケーションアナライザ235は、ルータ102のルーティングポリシー103に記憶されるトラフィッククラス情報を設定または変更し、それにより、ネットワーク220、コンピュータデバイス230、またはコンピュータデバイス231に通信されるパケットに関連するトラフィッククラスを設定または変更することができる。
【0046】
一実施形態では、アプリケーションアナライザ235は、特定のアプリケーションとの間で通信されるパケットに関して異なるトラフィッククラスを設定するようにルーティングポリシー103を設定することができる。したがって、アプリケーションアナライザ235は、アプリケーション240に通信されるパケットに関しては、優先度が比較的高いトラフィッククラスを設定し、アプリケーション240から通信されるパケットに関しては、優先度が比較的低いトラフィッククラスを設定することができる。したがって、ルータ202は、アプリケーション240に向けられたパケットを、アプリケーション240から提供されるパケットを通信する場合よりも高い優先度で通信する。さらに、アプリケーションアナライザ235は、たとえば、アプリケーション240に向けられたパケットがアプリケーション241に向けられたパケットよりも高い優先度を有し、アプリケーション240によって提供されるパケットがアプリケーション241によって提供されるパケットよりも低い優先度を有するように、アプリケーション240および241に関するトラフィッククラスを設定することができる。したがって、ルータ202は、パケットのアップストリーム(アプリケーション240および241によって提供されるパケット)およびルータ202は、ダウンストリーム(アプリケーション240および241に提供されるパケット)の通信を、アップストリームおよびダウンストリームのパケットトラフィックに関する異なるトラフィッククラスに基づいて個別に管理し得る。
【0047】
コンピュータデバイス231は、アプリケーションアナライザ235と同様の機能を実行するアプリケーションアナライザ237を実行する。一実施形態では、あるコンピュータデバイスにおいて実行されるアプリケーションアナライザは、異なるコンピュータデバイスにおいて実行されるアプリケーションに関するトラフィッククラスを設定することがある。アプリケーションアナライザは、パスワードやセキュリティコードなどの認証情報を、認証情報に基づいてアナライザを認証するルータ102に提供し得る。認証に基づいて、ルータ102は、異なるコンピュータデバイスにおいて実行されるアプリケーションに関するトラフィッククラスをアプリケーションアナライザが設定することを認めること、または認めないことがある。
【0048】
図3は、本開示の別の実施形態による図1のルータ102を組み込んだ通信システム300を示している。通信システム300はまた、ネットワーク320と、ルータ102に接続されたコンピュータデバイス330と、サーバ355とを含む。図示の実施形態では、ルータ102は、コンピュータデバイス330とネットワーク320との間でパケットをルーティングする。コンピュータデバイス330は、アプリケーション340および341を実行する。サーバ355は、ポート優先度ポリシー303を記憶する。
【0049】
動作時に、通信システム300は、図2の通信システム200と同様に構成される。したがって、ルータ102は、アプリケーション340および341との間のパケットのルーティングを、各アプリケーションに関連するトラフィッククラスおよびルーティングポリシー303に基づいて管理する。図示の実施形態では、ポートルーティングポリシー103は、サーバ355に記憶される。したがって、ルータ102が、未知のトラフィッククラスを有するアプリケーションからのパケットまたは当該アプリケーションに向けられたパケットを受信したとき、ルータ102はサーバ355に、ルーティングポリシー303によって示されるようにアプリケーションに関する1つまたは複数のトラフィッククラスを提供するように照会することができる。サーバ355にルーティングポリシー303を記憶することによって、ポリシーはより容易に更新および変更され得る。さらに、ルーティングポリシー303を使用して、ルータ102と同様に構成された複数の他のルータにトラフィッククラス情報を提供することができる。
【0050】
図4は、本発明の一実施形態によるグラフィカルユーザインターフェース(GUI)400を示している。GUI400は、図示のトラフィッククラス制御ウィンドウ402を介してルーティングポリシー103の表示および変更を可能にする。トラフィッククラス制御ウィンドウ402は、アプリケーション識別子を示す列403と、関連するアプリケーションのトラフィッククラスを示すトラフィッククラス列404と、ルータ102によって関連するアプリケーションに関して通知されるパケットの数を示すパケット数列405とを表示する。
【0051】
トラフィッククラス制御ウィンドウ402により、ユーザは各アプリケーションに関するトラフィッククラスを設定することによって、ルーティングポリシー103を変更することができる。一実施形態では、優先度列404のテキストがユーザによって編集されて、トラフィッククラスが変更され得る。たとえば、ユーザはアプリケーション241に関して番号「2」を入力することがある。GUI400は、アプリケーション列403におけるアプリケーションの表示を自動的に編成して、調整されたトラフィッククラスを反映させることができる。さらに、GUI400はトラフィッククラスの変更をルータ102に通知し、ルータはルーティングポリシー103を更新する。別の実施形態では、ユーザは、コンピュータマウスまたは他の入力デバイスを使用して列403におけるアプリケーション識別子をドラッグすることによって、アプリケーションのトラフィッククラスを変更することができる。別の実施形態では、GUI400により、ユーザは、1つのアプリケーションによって通信されている異なるタイプの情報に関して異なるトラフィッククラスを設定することができ得る。さらに別の実施形態では、GUI400は、特定のトラフィッククラスに関する管理特性をユーザが変更するためのインターフェースを提供することができる。したがって、ユーザは、優先度と、帯域幅と、確認応答ポリシーと、各トラフィッククラスに関連する他の基準とを設定することができる。さらに、異なるアプリケーションがGUI400を介して同じトラフィッククラスに関連付けられ得ることが諒解されよう。
【0052】
図5は、本開示の別の実施形態によるグラフィカルユーザインターフェース(GUI)500を示している。GUI500は、図示のトラフィッククラス制御ウィンドウ502を介してルーティングポリシー103の表示および変更を可能にする。トラフィッククラス制御ウィンドウ502がアプリケーションタイプに基づくトラフィッククラスの変更を可能にするという点で、トラフィッククラス制御ウィンドウ502は図4のトラフィッククラス制御ウィンドウ402とは異なる。したがって、トラフィッククラス制御ウィンドウ502は、アプリケーションタイプ識別子を示す列503と、関連するアプリケーションタイプのトラフィッククラスを示すトラフィッククラス列504と、ルータ102によって関連するアプリケーションタイプに関して通知されるパケットの数を示すパケット数列505とを表示する。トラフィッククラスウィンドウ502により、ユーザはテキスト入力、タイプ名のドラッグまたは他のインターフェース構成を通じて各アプリケーションタイプに関するトラフィッククラスを変更することによって、ルーティングポリシー103を変更することができる。GUI500はトラフィッククラスの変更をルータ102に通知し、ルータはそれに応答してルーティングポリシー103を更新する。
【0053】
図6は、本開示の一実施形態による、1つまたは複数のリモートコンピュータデバイスにおいて実行されるアプリケーションに基づいてルータ102においてポートに優先度を付ける方法のフロー図を示している。ブロック602において、ルータ102は、リモートコンピュータデバイスにおいて実行されているアプリケーションを特定する。一実施形態では、この特定は、各リモートコンピュータデバイスから、対応するデバイスにおいて実行されているアプリケーションまたはアプリケーションタイプを示す情報を受信することによって行われる。別の実施形態では、この特定は、ルータ制御モジュール104が1つまたは複数の受信パケット分析し、分析に基づいてアプリケーションまたはアプリケーションタイプを特定することによって行われる。このようにしてルータ制御モジュール104は、パケットを受信または通信したポートの番号以外の情報に基づいて、パケットに関連するアプリケーションまたはアプリケーションタイプを特定する。すなわち、特定は、ポート番号以外の情報のみに基づくこと、またはポート番号とポート番号以外の情報の両方に基づくことがある。ブロック604において、ルータ102はルーティングポリシー103にアクセスして、実行されている各アプリケーションに関するトラフィッククラスを特定する。ブロック608において、ルータ102は、リモートコンピュータデバイスにおいて実行されるアプリケーションから通信されるパケットを受信し、パケットバッファ106にパケットを記憶する。ブロック612において、ルータ102は、各パケットに関連するトラフィッククラスに基づいて、ネットワークへのパケットの通信を管理する。
【0054】
図7を参照すると、コンピュータデバイス704の特定の実施形態のブロック図が示されている。コンピュータデバイス704は、プロセッサ770とメモリ760とを含む。メモリ760は、プロセッサ770にとってアクセス可能である。プロセッサ770は、マイクロプロセッサ、マイクロコントローラなどであり得る。メモリ760はコンピュータ可読媒体であり、これはランダムアクセスメモリ(RAM)などの揮発性メモリ、またはハードディスクもしくはフラッシュメモリなどの不揮発性メモリであり得る。
【0055】
メモリ760は、プログラム750とオペレーティングシステム707とを格納する。プログラム750およびオペレーティングシステム707は、プロセッサ770を操作して本明細書で説明する方法のうちの1つまたは複数を実施するための命令を含む。アプリケーションなどの他のプログラムも、プロセッサを操作して説明する方法を実施するために、メモリ760に記憶され得る。
【0056】
上記の開示された主題は、限定的ではなく例示的であると考えられるものであり、添付の特許請求の範囲は、本発明の真の趣旨および範囲に入るすべてのそのような変更、改良、および他の実施形態をカバーすることが意図されている。したがって、法によって許容される最大の範囲で、本発明の範囲は、以下の特許請求の範囲およびそれらの同等物の最も幅広い許容される解釈によって判断されるものであり、前述の詳細な説明によって制限または限定されるものではない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ルータにおいて、第1の複数のパケットに基づいて、第1のリモートコンピュータデバイスにおいて実行される、前記第1の複数のパケットに関連する第1のアプリケーションを特定することと、
前記第1のアプリケーションに基づいて、前記第1の複数のパケットに関する第1のトラフィッククラスを特定することと、
前記第2のトラフィッククラスに基づいて、前記ルータにおける前記第1の複数のパケットのルーティングを管理することと
を備える方法。
[C2]
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記複数のパケットのルーティングに優先度を付けることを備える、C1に記載の方法。
[C3]
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットに前記ルータの帯域幅を割り振ることを備える、C1に記載の方法。
[C4]
前記第1のアプリケーションを特定することは、前記第1のアプリケーションに関連するアプリケーションタイプを特定することを備える、C1に記載の方法。
[C5]
前記第1の複数のパケットのルーティングを管理することは、前記第1のトラフィッククラスに基づいて、前記第1の複数のパケットの確認応答を管理することを備える、C1に記載の方法。
[C6]
第1の情報は、前記第1の複数のパケットに関連するポート番号を含む、C1に記載の方法。
[C7]
前記第1のトラフィッククラスを特定することは、前記第1の複数のパケットを介して通信される第1のタイプの情報を特定することと、前記第1のタイプの情報に基づいて前記第1のトラフィッククラスを特定することとを備える、C1に記載の方法。
[C8]
前記第1のアプリケーションに関連する第2の複数のパケットを介して通信される第2のタイプの情報を特定することと、
前記第1のアプリケーションおよび前記第2のタイプの情報に基づいて、前記第2の複数のパケットに関する第2のトラフィッククラスを特定することと、
前記第2のトラフィッククラスに基づいて、前記ルータにおける前記第1の複数のパケットのルーティングを管理することと
をさらに備える、C7に記載の方法。
[C9]
ルータにおいて、第1のリモートコンピュータデバイスにおいて実行される、第1の複数のパケットに関連する第1のアプリケーションを示す情報を外部ソースから受信することと、
前記第1のアプリケーションに基づいて、前記第1の複数のパケットに関する第1のトラフィッククラスを特定することと、
前記第2のトラフィッククラスに基づいて、前記ルータにおける前記第1の複数のパケットのルーティングを管理することと
を備える方法。
[C10]
前記第1のトラフィッククラスを特定することは、リモートサーバに前記第1のトラフィッククラスを要求することを備える、C9に記載の方法。
[C11]
前記外部ソースは前記第1のアプリケーションを備える、C9に記載の方法。
[C12]
前記外部ソースは第2のリモートコンピュータデバイスを備える、C9に記載の方法。
[C13]
コンピュータデバイスにおいて実行される複数のアプリケーションを特定することに基づいて、ルータにおいて複数のパケットをルーティングすることに関連する複数のトラフィッククラスを特定することと、
コンピュータデバイスにおいてグラフィカルユーザインターフェース(GUI)を介して前記複数のトラフィッククラスを表示することと
を備える方法。
[C14]
前記トラフィッククラスの変更をGUIを介して受信することと、
前記トラフィッククラスの前記変更を前記ルータに通信することと
をさらに備える、C13に記載の方法。
[C15]
前記ルータから離れて位置する第1のコンピュータデバイスにおいて実行される第1のアプリケーションに関連する第1の複数のパケットを受信するための第1のネットワーク接続を備える複数のネットワーク接続と、
前記第1の複数のパケットに基づいて前記第1のアプリケーションを特定し、前記第1のアプリケーションに基づいて前記第1のアプリケーションに関連する前記第1の複数のパケットに関する第1のトラフィッククラスを特定するためのルータ制御モジュールと、
前記第1のトラフィッククラスに基づいて前記ルータにおける前記第1の複数のパケットのルーティングを管理するための前記ルータ制御モジュールと
を備えるルータ。
[C16]
前記ルータ制御モジュールは、前記トラフィッククラスに基づいて前記複数のパケットのルーティングに優先度を付けることによって、前記複数のパケットのルーティングを管理するためのものである、C15に記載のルータ。
[C17]
前記ルータ制御モジュールは、前記トラフィッククラスに基づいて前記複数のパケットに前記ルータの帯域幅を割り振ることによって、前記複数のパケットのルーティングを管理するためのものである、C15に記載のルータ。
[C18]
パケットを記憶するためのパケットバッファをさらに備え、前記ルータ制御モジュールは、前記トラフィッククラスに基づく順序に従って前記パケットバッファからパケットを取り出すためのものである、C15に記載のルータ。
[C19]
前記ルータ制御モジュールは、前記第1のアプリケーションに関連するアプリケーションタイプを特定するためのものである、C15に記載のルータ。
[C20]
前記ルータ制御モジュールは、前記第1の複数のパケットを介して通信される第1のタイプの情報を特定することと、前記第1のタイプの情報に基づいて前記第1のトラフィッククラスを特定することとによって、前記第1のトラフィッククラスを特定するためのものである、C15に記載のルータ。
[C21]
前記ルータ制御モジュールは、
前記第1のアプリケーションに関連する、前記ルータにおいて受信される第2の複数のパケットを介して通信される第2のタイプの情報を特定し、
前記第1のアプリケーションおよび前記第2のタイプの情報に基づいて、前記第2の複数のパケットに関する第2のトラフィッククラスを特定し、
前記第2のトラフィッククラスに基づいて、前記ルータにおける前記第1の複数のパケットのルーティングを管理する
ためのものである、C20に記載のルータ。
図1
図2
図3
図4
図5
図6
図7