(57)【要約】説明される実施形態は、知的学習ベースのシステムを介して、フローの短待ち時間分類を提供する。一実装では、パケットプロセッサが、フローの第１のパケット内で識別される宛先インターネットプロトコル（ＩＰ）アドレスおよびドメインを利用して、同一アドレスおよびドメインに向けられた類似フローが以前に受信されているかどうかを決定し、該当しない場合、デフォルトルーティングおよびポリシルールを適用し得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベースにおいて、アプリケーション、アドレス、およびドメインの組み合わせに関する記録と、開始信頼度レベルとを生成し、適切なルーティングおよびポリシルールを適用し得る。同一アプリケーションおよび宛先ＩＰアドレスのためのその後のフローは、以前のフローと同一であると分類され得、対応するルーティングおよびポリシルールが、適用される。
2021500802.tif 000002
【特許請求の範囲】
【請求項１】
パケットフローを処理する方法であって、前記方法は、
パケットプロセッサによって、第１のドメインに関連付けられた第１の宛先アドレスへの第１のフローの第１のパケットを受信することと、
前記パケットプロセッサによって、第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の記憶された関連付けを識別することと、
前記パケットプロセッサによって、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第１のアプリケーションに対応する第１のルーティングポリシを複数のルーティングポリシから選択することと、
前記パケットプロセッサによって、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第１のルーティングポリシに従って、前記第１のフローの前記第１のパケットを処理することと
を含む、方法。
【請求項２】
その後、前記第１のフローを前記第１のアプリケーションに対応するとして分類することと、
前記第１のフローを前記第１のアプリケーションに対応するとして分類することに応答して、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアを増加させることと
をさらに含む、請求項１に記載の方法。
【請求項３】
その後、前記第１のフローを前記第１のアプリケーションと異なる第２のアプリケーションに対応するとして分類することと、
前記第２のアプリケーションに対応する第２のルーティングポリシに従って、前記第１のフローを処理することと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記第１のフローを前記第２のアプリケーションに対応するとして分類することに応答して、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアを減少させることをさらに含む、請求項３に記載の方法。
【請求項５】
前記第１のルーティングポリシを選択することは、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアが第１の閾値を超えることを決定することをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のフローの前記第１のパケットの受信に先立って、
前記パケットプロセッサによって、前記第１のドメインに関連付けられた前記第１の宛先アドレスへのそれ以前のフローの第１のパケットを受信することと、
前記パケットプロセッサによって、前記第１の宛先アドレスおよび前記第１のドメインに関して関連付けがアプリケーションデータベース内に存在しないことを決定することと、
前記パケットプロセッサによって、前記第１の宛先アドレスおよび前記第１のドメインに関して関連付けがアプリケーションデータベース内に存在しないことの決定に応答して、デフォルトルーティングポリシに従って、前記それ以前のフローの前記第１のパケットを処理することと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記第１のフローの前記第１のパケットの受信に先立って、前記デフォルトルーティングポリシに従って、前記それ以前のフローの前記第１のパケットを処理した後、
前記パケットプロセッサによって、前記それ以前のフローを前記デフォルトルーティングポリシと異なる前記第１のルーティングポリシに関連付けられた前記第１のアプリケーションに対応するとして分類することと、
前記パケットプロセッサによって、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けを記憶し、前記関連付けに関する第１の信頼度スコアを記憶することと
をさらに含む、請求項６に記載の方法。
【請求項８】
前記パケットプロセッサによって、前記第１のドメインに関連付けられた第２の宛先アドレスへの第２のフローの第１のパケットを受信することと、
前記パケットプロセッサによって、第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の記憶された関連付けを識別することと、
前記パケットプロセッサによって、前記第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第２のアプリケーションに対応する第２のルーティングポリシを前記複数のルーティングポリシから選択することと、
前記パケットプロセッサによって、前記第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第２のルーティングポリシに従って、前記第２のフローの前記第１のパケットを処理することと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記第１のパケットは、宛先ポートおよびプロトコルの識別を含み、前記記憶された関連付けを識別することは、前記第１のアプリケーション、前記第１の宛先アドレス、前記第１のドメイン、前記宛先ポート、および前記プロトコル間の前記記憶された関連付けを識別することをさらに含む、請求項１に記載の方法。
【請求項１０】
アプリケーション−アドレス−ドメイン関連付けのデータベースを維持する方法であって、前記方法は、
デバイスのパケットプロセッサによって、第１の宛先アドレスおよび第１のドメインを識別する第１のパケットの受信に応答して、第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の記憶された関連付けを識別することと、
前記パケットプロセッサによって、アプリケーション識別子を前記第１のパケットから抽出することと、
前記パケットプロセッサによって、前記抽出されたアプリケーション識別子に基づいて、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する信頼度スコアを調節することと
を含む、方法。
【請求項１１】
前記信頼度スコアを調節することは、前記パケットプロセッサによって、前記第１のアプリケーションに対応する前記抽出されたアプリケーション識別子に応答して、前記信頼度スコアを増加させることをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記信頼度スコアを調節することは、前記パケットプロセッサによって、前記第１のアプリケーションと異なる第２のアプリケーションに対応する前記抽出されたアプリケーション識別子に応答して、前記信頼度スコアを減少させることをさらに含む、請求項１０に記載の方法。
【請求項１３】
前記パケットプロセッサによって、前記第１のドメインに関連付けられた前記第１の宛先アドレスへのその後のフローの第１のパケットを受信することと、
前記パケットプロセッサによって、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する前記信頼度スコアが閾値より小さいことを決定することと、
前記パケットプロセッサによって、前記決定に応答して、デフォルトルーティングポリシに従って、前記その後のフローの前記第１のパケットを処理することと
をさらに含む、請求項１０に記載の方法。
【請求項１４】
パケットフローを処理するためのシステムであって、前記システムは、
第１のデバイスと、第１の宛先アドレスにあり、第１のドメインに関連付けられた第２のデバイスとの間の中間体として展開されているパケットプロセッサと、
アプリケーション、宛先アドレス、およびドメイン間の関連付けのデータベースと、前記関連付けの各々に関する信頼度スコアとを記憶している記憶ユニットと
を備え、
前記パケットプロセッサは、
前記第１のデバイスから、前記第１のドメインに関連付けられた前記第１の宛先アドレスにおける前記第２のデバイスへの第１のフローの第１のパケットを受信することと、
前記データベースにおいて、第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の記憶された関連付けを識別することと、
前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第１のアプリケーションに対応する第１のルーティングポリシを複数のルーティングポリシから選択することと、
前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第１のルーティングポリシに従って、前記第１のフローの前記第１のパケットを処理することと
を行うように構成されている、システム。
【請求項１５】
前記パケットプロセッサは、
その後、前記第１のフローを前記第１のアプリケーションに対応するとして分類することと、
前記第１のフローを前記第１のアプリケーションに対応するとして分類することに応答して、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアを増加させることと
を行うようにさらに構成されている、請求項１４に記載のシステム。
【請求項１６】
前記パケットプロセッサは、
その後、前記第１のフローを前記第１のアプリケーションと異なる第２のアプリケーションに対応するとして分類することと、
前記第２のアプリケーションに対応する第２のルーティングポリシに従って、前記第１のフローを処理することと
を行うようにさらに構成されている、請求項１４に記載のシステム。
【請求項１７】
前記パケットプロセッサは、
前記第１のフローを前記第２のアプリケーションに対応するとして分類することに応答して、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアを減少させるようにさらに構成されている、請求項１６に記載のシステム。
【請求項１８】
前記パケットプロセッサは、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けに関する第１の信頼度スコアが第１の閾値を超えることを決定するようにさらに構成され、
前記第１のルーティングポリシを選択することは、前記決定に応答して実施される、請求項１４に記載のシステム。
【請求項１９】
前記パケットプロセッサは、
前記第１のフローの前記第１のパケットの受信に先立って、
前記第１のドメインに関連付けられた前記第１の宛先アドレスへのそれ以前のフローの第１のパケットを受信することと、
前記第１の宛先アドレスおよび前記第１のドメインに関して関連付けがアプリケーションデータベース内に存在しないことを決定することと、
前記第１の宛先アドレスおよび前記第１のドメインに関して関連付けが前記アプリケーションデータベース内に存在しないことの決定に応答して、デフォルトルーティングポリシに従って、前記それ以前のフローの前記第１のパケットを処理すること
を行うようにさらに構成されている、請求項１４に記載のシステム。
【請求項２０】
前記パケットプロセッサは、
前記第１のフローの前記第１のパケットの受信に先立って、前記デフォルトルーティングポリシに従って、前記それ以前のフローの前記第１のパケットを処理した後、
前記それ以前のフローを前記デフォルトルーティングポリシと異なる前記第１のルーティングポリシに関連付けられた前記第１のアプリケーションに対応するとして分類することと、
前記データベースにおいて、前記第１のアプリケーション、前記第１の宛先アドレス、および前記第１のドメイン間の前記関連付けと、前記関連付けに関する第１の信頼度スコアとを記憶することと
を行うようにさらに構成されている、請求項１９に記載のシステム。
【請求項２１】
前記パケットプロセッサは、
前記第１のドメインに関連付けられた第２の宛先アドレスへの第２のフローの第１のパケットを受信することと、
第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の記憶された関連付けを識別することと、
前記第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第２のアプリケーションに対応する第２のルーティングポリシを前記複数のルーティングポリシから選択することと、
前記第２のアプリケーション、前記第２の宛先アドレス、および前記第１のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第２のルーティングポリシに従って、前記第２のフローの前記第１のパケットを処理することと
を行うようにさらに構成されている、請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本国際特許出願は、その内容の全てが、あらゆる目的のために参照することによってその全体として本明細書に組み込まれる「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＦＩＲＳＴ  ＰＡＣＫＥＴ  ＡＰＰＬＩＣＡＴＩＯＮ  ＣＬＡＳＳＩＦＩＣＡＴＩＯＮ」と題され、２０１７年１０月２３日に出願された米国特許出願第１５／７９０，４１０号の優先権を主張する。
（開示の分野）
【０００２】
本願は、概して、ネットワークパケットの短待ち時間分類に関する。
【背景技術】
【０００３】
エンドポイント間のネットワーク通信またはフローは、例えば、アプリケーションによって分類され得、それによって、ルーティングおよびサービスの質（ＱｏＳ）ポリシが、適用され得る。例えば、第１のフローは、リアルタイムビデオまたはボイスオーバーインターネットプロトコル（ＶｏＩＰ）トラフィックとして分類され、より高い優先順位ルーティングおよびＱｏＳを受け得、第２のフローは、電子メールトラフィックとして分類され、より低い優先順位ルーティングおよびＱｏＳを受け得る。これは、異なるサービスおよびアプリケーション間のネットワーク帯域幅の平衡を保たせ、各サービスの必要性を満たすことに役立つ。
【０００４】
多くの実装では、フローまたは通信の第１のパケットを分類し、それによって、ネットワーク経路が適切に選択され、中間デバイスが適切に構成され得ることが重要であり得る。しかしながら、パケットを分類することは、かなりの待ち時間を通信に追加し得るディープパケットインスペクション（ＤＰＩ）または他の分析機能を要求し得る。例えば、いくつかの実装では、ＤＰＩは、フローがエンドポイントデバイス間（およびネットワークアドレス変換（ＮＡＴ）デバイス、ファイアウォール等を含む種々の中間デバイス間）に確立されるまで、完了されない；特に、通信の第１のパケットが限定された情報を含み得る実装（例えば、トランスポート制御プロトコル同期パケット（ＴＣＰ  ＳＹＮ）であって、それは、必ずしも、ＯＳＩの第４層（トランスポート層）より上位のペイロードを含むとは限らない）において、アプリケーションを識別することを困難にし得る。ＤＰＩ結果が、フローが異なって構成されるべきことを示す場合でも、フローが確立された後、フローパラメータまたは経路を変更すること（例えば、異なる中間デバイスを利用するために）は、困難または不可能であり得る。逆に言えば、完全分類が実施され得るまで、フローの確立を遅らせること、またはパケットをバッファすることは、通信またはトランザクションの長い始動時間をもたらし、ユーザを苛立たせ、さらなる処理タスクを遅らせ得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書で議論されるシステムおよび方法は、知的学習ベースのシステムを介して、フローの第１のパケットの短待ち時間アプリケーション分類を提供する。一実装では、パケットプロセッサは、フローの第１のパケット内で識別された宛先インターネットプロトコル（ＩＰ）アドレスおよびドメインを利用して、同一アドレスおよびドメインに向けられた類似フローが以前に受信されているかどうかを決定し得る。該当しない場合、次いで、デフォルトルーティングおよびポリシルールが、フローに適用され得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベース内に、アプリケーション、アドレス、ポート、プロトコル番号、およびドメインの組み合わせに関する記録を開始信頼度レベルまたは確率とともに生成し得る。完全に分類されると、適切なルーティングおよびポリシルールが、適用され得る。同一宛先ＩＰアドレスを伴う同一アプリケーションのためのその後のフローは、次いで、以前のフローと同一であるとして分類され得、対応するルーティングおよびポリシルールが、適用される。パケットプロセッサは、ディープパケットインスペクションまたは類似方法を介して、フローの完全分類を継続し得、完全分類時、データベースエントリは、合致に対する成功または失敗を伴って更新され得、エントリが正しいことの信頼度レベルまたは確率を調節することを含む。
【０００６】
一側面では、本開示は、パケットフローを処理する方法を対象とする。方法は、パケットプロセッサによって、第１のドメインに関連付けられた第１の宛先アドレスへの第１のフローの第１のパケットを受信することを含む。方法は、パケットプロセッサによって、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けを識別することも含む。方法は、パケットプロセッサによって、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、第１のアプリケーションに対応する第１のルーティングポリシを複数のルーティングポリシから選択することをさらに含む。方法は、パケットプロセッサによって、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、選択された第１のルーティングポリシに従って、第１のフローの第１のパケットを処理することも含む。
【０００７】
いくつかの実装では、方法は、その後、第１のフローを第１のアプリケーションに対応するとして分類することと、第１のフローを第１のアプリケーションに対応するとして分類することに応答して、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアを増加させることとを含む。いくつかの実装では、方法は、その後、第１のフローを第１のアプリケーションと異なる第２のアプリケーションに対応するとして分類することと、第２のアプリケーションに対応する第２のルーティングポリシに従って、第１のフローを処理することとを含む。さらなる実装では、方法は、第１のフローを第２のアプリケーションに対応するとして分類することに応答して、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアを減少させることを含む。
【０００８】
いくつかの実装では、方法は、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアが第１の閾値を超えることを決定することによって、第１のルーティングポリシを選択することを含む。いくつかの実装では、方法は、第１のフローの第１のパケットの受信に先立って、パケットプロセッサによって、第１のドメインに関連付けられた第１の宛先アドレスへのそれ以前のフローの第１のパケットを受信することと、パケットプロセッサによって、アプリケーションデータベース内に、第１の宛先アドレスおよび第１のドメインとの関連付けが存在しないことを決定することと、パケットプロセッサによって、アプリケーションデータベース内に、第１の宛先アドレスおよび第１のドメインとの関連付けが存在しないことの決定に応答して、デフォルトルーティングポリシに従って、それ以前のフローの第１のパケットを処理することとを含む。さらなる実装では、方法は、第１のフローの第１のパケットの受信に先立って、デフォルトルーティングポリシに従って、それ以前のフローの第１のパケットを処理した後、パケットプロセッサによって、それ以前のフローをデフォルトルーティングポリシと異なる第１のルーティングポリシに関連付けられた第１のアプリケーションに対応するとして分類することと、パケットプロセッサによって、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けを記憶し、関連付けに関する第１の信頼度スコアを記憶することとを含む。
【０００９】
いくつかの実装では、方法は、パケットプロセッサによって、第１のドメインに関連付けられた第２の宛先アドレスへの第２のフローの第１のパケットを受信することと、パケットプロセッサによって、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けを識別することと、パケットプロセッサによって、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、第２のアプリケーションに対応する第２のルーティングポリシを複数のルーティングポリシから選択することと、パケットプロセッサによって、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、選択された第２のルーティングポリシに従って、第２のフローの第１のパケットを処理することとを含む。いくつかの実装では、第１のパケットは、宛先ポートおよびプロトコルの識別を含み、記憶された関連付けを識別することは、第１のアプリケーション、第１の宛先アドレス、第１のドメイン、宛先ポート、およびプロトコル間の記憶された関連付けを識別することをさらに含む。
【００１０】
別の側面では、本願は、アプリケーション−アドレス−ドメイン関連付けのデータベースを維持する方法を対象とする。方法は、デバイスのパケットプロセッサによって、第１の宛先アドレスおよび第１のドメインを識別する第１のパケットの受信に応答して、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けを識別することと、パケットプロセッサによって、アプリケーション識別子を第１のパケットから抽出することと、パケットプロセッサによって、抽出されたアプリケーション識別子に基づいて、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する信頼度スコアを調節することとを含む。いくつかの実装では、信頼度スコアを調節することは、パケットプロセッサによって、第１のアプリケーションに対応する抽出されたアプリケーション識別子に応答して、信頼度スコアを増加させることをさらに含む。いくつかの実装では、信頼度スコアを調節することは、パケットプロセッサによって、第１のアプリケーションと異なる第２のアプリケーションに対応する抽出されたアプリケーション識別子に応答して、信頼度スコアを減少させることをさらに含む。いくつかの実装では、方法は、パケットプロセッサによって、第１のドメインに関連付けられた第１の宛先アドレスへのその後のフローの第１のパケットを受信することと、パケットプロセッサによって、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する信頼度スコアが閾値より小さいことを決定することと、パケットプロセッサによって、決定に応答して、デフォルトルーティングポリシに従って、その後のフローの第１のパケットを処理することとを含む。
【００１１】
さらに別の側面では、本願は、パケットフローを処理するためのシステムを対象とする。システムは、第１のデバイスと、第１の宛先アドレスにあり、第１のドメインに関連付けられた第２のデバイスとの間の中間体として展開されているパケットプロセッサ；および、アプリケーション、宛先アドレス、およびドメイン間の関連付けのデータベースと、該関連付けの各々に関する信頼度スコアとを記憶している記憶ユニット；を含む。パケットプロセッサは、第１のデバイスから、第１のドメインに関連付けられた第１の宛先アドレスにおける第２のデバイスへの第１のフローの第１のパケットを受信し、データベースにおいて、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けを識別するように構成されている。パケットプロセッサは、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、第１のアプリケーションに対応する第１のルーティングポリシを複数のルーティングポリシから選択するようにも構成されている。パケットプロセッサは、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、選択された第１のルーティングポリシに従って、第１のフローの第１のパケットを処理するようにも構成されている。
【００１２】
いくつかの実装では、パケットプロセッサは、その後、第１のフローを第１のアプリケーションに対応するとして分類し、第１のフローを第１のアプリケーションに対応するとして分類することに応答して、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアを増加させるようにさらに構成されている。
【００１３】
いくつかの実装では、パケットプロセッサは、その後、第１のフローを第１のアプリケーションと異なる第２のアプリケーションに対応するとして分類し、第２のアプリケーションに対応する第２のルーティングポリシに従って、第１のフローを処理するようにさらに構成されている。さらなる実装では、パケットプロセッサは、第１のフローを第２のアプリケーションに対応するとして分類することに応答して、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアを減少させるようにさらに構成されている。
【００１４】
いくつかの実装では、パケットプロセッサは、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けに関する第１の信頼度スコアが第１の閾値を超えることを決定することと、決定に応答して実施される第１のルーティングポリシを選択することとを行うようにさらに構成されている。
【００１５】
いくつかの実装では、パケットプロセッサは、第１のフローの第１のパケットの受信に先立って、第１のドメインに関連付けられた第１の宛先アドレスへのそれ以前のフローの第１のパケットを受信し、アプリケーションデータベース内に、第１の宛先アドレスおよび第１のドメインとの関連付けが存在しないことを決定し、アプリケーションデータベース内に、第１の宛先アドレスおよび第１のドメインとの関連付けが存在しないことの決定に応答して、デフォルトルーティングポリシに従って、それ以前のフローの第１のパケットを処理するようにさらに構成されている。さらなる実装では、パケットプロセッサは、第１のフローの第１のパケットの受信に先立って、デフォルトルーティングポリシに従って、それ以前のフローの第１のパケットを処理した後、それ以前のフローをデフォルトルーティングポリシと異なる第１のルーティングポリシに関連付けられた第１のアプリケーションに対応するとして分類し、データベース内に、第１のアプリケーション、第１の宛先アドレス、および第１のドメイン間の関連付けと、関連付けに関する第１の信頼度スコアとを記憶するようにさらに構成されている。
【００１６】
いくつかの実装では、パケットプロセッサは、第１のドメインに関連付けられた第２の宛先アドレスへの第２のフローの第１のパケットを受信し、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けを識別し、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、第２のアプリケーションに対応する第２のルーティングポリシを複数のルーティングポリシから選択し、第２のアプリケーション、第２の宛先アドレス、および第１のドメイン間の記憶された関連付けの識別に応答して、選択された第２のルーティングポリシに従って、第２のフローの第１のパケットを処理するようにさらに構成されている。
【図面の簡単な説明】
【００１７】
本ソリューションの前述および他の目的、側面、特徴、ならびに利点は、付随の図面と関連して検討される、以下の説明を参照することによって、より明白となり、より深く理解されるであろう。
【００１８】
【図１Ａ】図１Ａは、ネットワーキング環境の実施形態を図示するブロック図である。
【００１９】
【図１Ｂ】図１Ｂは、開放型システム間相互接続（ＯＳＩ）モデルに基づくネットワーキングスタックの実施形態の例証である。
【００２０】
【図１Ｃ】図１Ｃは、第１のパケットアプリケーション分類のための関連付けデータベースの実施形態の例証である。
【００２１】
【図２Ａ】図２Ａは、第１のパケットアプリケーション分類のためのコンピューティングデバイスの実施形態のブロック図である。
【００２２】
【図２Ｂ】図２Ｂは、ネットワーク通信のためのコンピューティングデバイスの実施形態のブロック図である。
【００２３】
【図３】図３は、第１のパケットアプリケーション分類のための方法の実施形態のフローチャートである。
【発明を実施するための形態】
【００２４】
本ソリューションの特徴および利点は、同様の参照文字が全体を通して対応する要素を識別する図面と関連して検討されることによって、下で記載される詳細な説明からより明白となるであろう。図面では、同様の参照番号は、概して、同じ、機能的に類似する、および／または構造的に類似する要素を示す。
【００２５】
エンドポイント間のネットワーク通信またはフローは、例えば、アプリケーション別に分類され得、それによって、ルーティングおよびサービスの質（ＱｏＳ）ポリシが、適用され得る。例えば、第１のフローは、リアルタイムビデオまたはボイスオーバーインターネットプロトコル（ＶｏＩＰ）トラフィックとして分類され、より高い優先順位ルーティングおよびＱｏＳを受け得、第２のフローは、電子メールトラフィックとして分類され、より低い優先順位ルーティングおよびＱｏＳを受け得る。これは、異なるサービスおよびアプリケーション間のネットワーク帯域幅の平衡を保たせ、各サービスの必要性を満たすことに役立つ。
【００２６】
例えば、図１Ａは、１つ以上のネットワーク１１０（概して、ネットワーク１１０と称される）を介して、１つ以上のサーバデバイス１０４Ａ−１０４Ｎ（概して、サーバデバイス１０４と称される）と通信する１つ以上のクライアントデバイス１０２Ａ−１０２Ｎ（概して、クライアントデバイス１０２と称される）を含むネットワーキング環境の実施形態を図示するブロック図である。クライアントおよびサーバを異なるグループ内に伴って示されるが、多くの実装では、クライアントは、他のクライアントと通信し得、サーバは、他のサーバと通信し得る。クライアント１０２およびサーバ１０４は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、内蔵コンピュータ、ラック搭載コンピュータ、ブレードサーバ、スマート家電、モノのインターネット（ＩｏＴ）デバイス、または任意の他のタイプおよび形態のコンピューティングデバイスを含む任意のタイプおよび形態のコンピューティングデバイスを備え得る。クライアント１０２および／またはサーバ１０４は、物理的コンピューティングデバイス、および／または１つ以上の物理的コンピューティングデバイスによって実行される仮想コンピューティングデバイスを含み得る。クライアント１０２および／またはサーバ１０４は、物理的および／または仮想コンピューティングデバイスのクラスタ、ファーム、またはクラウドを含み得る。
【００２７】
中間デバイス１００は、クライアントデバイス１０２および／またはサーバデバイス１０４等の通信または「フロー」のエンドポイント間でパケットを通信するためのコンピューティングデバイスを備え得る。時として、トラフィックフロー、パケットフロー、ネットワークフロー、トランザクション、または類似用語によって称されるフローは、コンピューティングデバイス間の一続きのパケットを含み得る。いくつかの実装では、フローは、一方向性（例えば、クライアントからサーバまたはその逆）であり得る一方、他の実装では、フローは、双方向性通信（例えば、要求および応答、伝送および確認応答等）を含み得る。中間デバイス１００は、ルーティング、負荷平衡、加速、圧縮、暗号化、多重化、接続プーリング、キャッシュ、バッファ、ネットワークアドレス変換、ファイアウォール、または任意の他のネットワーク、通信、もしくはセキュリティ特徴または処理、もしくは他のそのような機能等、フローのための追加の処理を提供し得る。中間デバイス１００は、家電、ゲートウェイ、ＮＡＴデバイス、セキュリティデバイス、ルータ、スイッチ、アクセスポイント、モデム、ファイアウォール、または任意の他のそのような用語によって称され得る。中間デバイス１００は、複数のネットワーク１００に接続し得、ネットワーク１００を介する複数のパケットフローを処理することと、バッファおよび優先順位ベースの平衡または並び替え、輻輳またはトラフィック制御、または任意の他のそのような特徴等のＱｏＳ特徴を提供することとを行い得る。
【００２８】
ネットワーク１１０は、クライアントおよび／またはサーバが通信することを可能にするための任意のタイプおよび形態のネットワークを備え得、任意のタイプおよび形態のネットワークは、ローカルエリアネットワーク（ＬＡＮ）、中域または都市規模ネットワーク（ＭＡＮ）、インターネット、セルラーネットワーク、衛星ネットワーク、仮想プライベートネットワーク（ＶＰＮ）等の広域ネットワーク（ＷＡＮ）、またはこれらもしくは他のネットワークの任意の組み合わせを含む。例えば、クライアントデバイス１０２は、ＬＡＮ上の無線アクセスポイントへの無線接続を介してサーバデバイスと通信し得、無線アクセスポイントは、ブロードバンドモデムと通信し得、ブロードバンドモデムは、ＮＡＴゲートウェイへの１つ以上のスイッチおよびルータと通信し得、ＮＡＴゲートウェイは、第２のＬＡＮを介して、サーバデバイスと通信し得る。故に、追加の中間デバイス１００およびネットワーク１１０が、含まれ得る。
【００２９】
多くの実装では、サーバデバイス１０４は、１つ以上のドメイン１０６Ａ−１０６Ｎ（概して、ドメイン１０６と称される）に関連付けられ得る。ドメイン１０６は、共通識別ストリング（ドメイン名システム（ＤＮＳ）の一部として、時として、ドメイン名とも称される）に関連付けられた１つ以上のサーバおよび／またはＩＰアドレスのグループを備え得る。ドメインは、異なる宛先アドレスにおける複数のサーバを指し得る（例えば、複数のアプリケーションまたはデータサーバが、類似機能を実施し、デバイス（例えば、中間デバイス１００）が、負荷平衡を実施し、複数のクライアントデバイスまたはサーバをサポートする場合）。単一ＩＰアドレスを伴う単一サーバが、複数のドメインにも関連付けられ得る（例えば、サーバが、複数の機能（例えば、異なるドメインアドレスに関連付けられたウェブサーバおよびＦＴＰサーバ）を提供する場合）。したがって、ドメイン１０６、サーバのＩＰアドレス、およびそれらのサーバによって提供されるアプリケーションは、１：１：１対応を有していないことも頻繁にある。
【００３０】
多くの実装では、ネットワーク経路が、適切に選択され得、中間デバイスが、適切に構成され得るように、フローまたは通信の第１のパケットを分類することが、重要であり得る。例えば、ルーティング決定等のいくつかの決定が、実装では、フローの第１のパケットに関して行われ得るが、その場合、後に決定を変更することは、非常に困難である（例えば、経路内のファイアウォールまたはネットワークアドレス変換デバイスは、ルーティング決定が修正される場合、またはフローが誤分類される場合、接続をリセットし得る）。しかしながら、パケットを分類することは、かなりの待ち時間を通信に追加するディープパケットインスペクション（ＤＰＩ）または他の分析機能を要求し得る。これは、通信またはトランザクションのための長い始動時間をもたらし、ユーザを苛立たせ、さらなる処理タスクを遅らせ得る。
【００３１】
加えて、通信の第１のパケットは、限定された情報（例えば、トランスポート制御プロトコル同期パケット（ＴＣＰ  ＳＹＮ）を含み、それは、必ずしも、ＯＳＩの第４層（トランスポート層）より上位のペイロードを含むとは限らない）を含まず、アプリケーションを識別することを困難にし得る。図１Ｂは、開放型システム間相互接続（ＯＳＩ）モデルに基づくネットワーキングスタック１２０の実施形態の例証である。示されるように、ネットワークスタックは、第１層（物理層）から第７層（アプリケーション層）の複数の層を含む。ネットワークスタックの種々の層におけるパケットヘッダは、（ネットワーク層における）宛先ＩＰアドレスの識別、（トランスポート層における）宛先ポートアドレス、および（アプリケーション層における）アプリケーション１２４の識別を含む異なる情報を提供し得る。いくつかの実装では、アプリケーションは、プレゼンテーション層アプリケーション（例えば、遠隔デスクトップ）等の他の層においても識別され得る。ドメインは、任意の層における異なるアドレスに関連付けられ得る。例えば、ドメインは、アプリケーションまたはプレゼンテーション層関連（例えば、「ｍａｉｌ．ｅｘａｍｐｌｅ．ｃｏｍ」または「ｒｅｍｏｔｅ．ｅｘａｍｐｌｅ．ｃｏｍ」）であり、特定のソケットに関連付けられるか、または、ネットワーク層関連（例えば、ＩＰアドレスに関連付けられた「ｅｘａｍｐｌｅ．ｃｏｍ」）であり得る。したがって、トランスポート層より上位のペイロードを含まないパケット（例えば、ペイロードを伴わないＴＣＰ  ＳＹＮパケット）の受信は、特定のアプリケーションを識別するために十分な情報を提供しないこともある。
【００３２】
これらの欠点に対処する試みとして、メールサーバのためのｍａｉｌ．ｅｘａｍｐｌｅ．ｃｏｍまたはウェブサーバのためのｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍのドメイン等の宛先ＩＰアドレスに関してドメイン名サービス（ＤＮＳ）ルックアップを使用して、アプリケーションを推測することが挙げられている。しかしながら、多くのＩＰアドレスは、２つ以上のアプリケーションにマッピングされ、したがって、正確度は、低くあり得る（例えば、ｅｘａｍｐｌｅ．ｃｏｍにおける単一サーバは、セキュアシェル（ＳＳＨ）サーバ、メールサーバ、ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ等を含む多くの異なるサービスを提供し得る）。さらに、多くのドメインは、特に、複数の負荷平衡または高可用性サーバを伴うスケーラブルアプリケーションに関して、２つ以上のＩＰアドレスに対応し得る。同様に、多くのアプリケーションは、複数のサーバおよびＤＮＳ名を使用し、したがって、アプリケーションへのＤＮＳ名のマッピングは、維持され、最新に保たれなければならない。さらに、ＤＮＳソリューションは、さらなるアプリケーション分類を可能にしない。例えば、オンライン生産性組を提供するいくつかのウェブアプリケーションは、ワード処理、スプレッドシート、またはプレゼンテーションソフトウェアを含むが、全てが、共通ドメインを通してアクセスされ得る。
【００３３】
代わりに、本明細書で議論されるシステムおよび方法は、知的学習ベースのシステムを介して、フローの第１のパケットの短待ち時間アプリケーション分類を提供する。一実装では、パケットプロセッサは、フローの第１のパケット内で識別される宛先インターネットプロトコル（ＩＰ）アドレスおよびドメインを利用して、類似フローが以前に受信され、同一アドレスおよびドメインに向けられたかどうかを決定し得る。該当しない場合、次いで、デフォルトルーティングおよびポリシルールが、フローに適用され得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベース内にアプリケーション、アドレス、およびドメインの組み合わせのための記録を開始信頼度レベルまたは確率とともに生成し得る。完全に分類されると、適切なルーティングおよびポリシルールが、適用され得る。同一宛先ＩＰアドレスを伴う同一アプリケーションのためのその後のフローは、次いで、以前のフローと同一であるとして分類され、対応するルーティングおよびポリシルールが、適用され得る。パケットプロセッサは、ディープパケットインスペクションまたは類似方法を介して、フローの完全分類を継続し得、完全分類時、データベースエントリは、合致の成功または失敗で更新され得、それは、エントリが正しいことの信頼度レベルまたは確率を調節することを含む。したがって、アプリケーションベースの決定を第１のパケットに関して行うために、学習システムは、第１のパケットが特定のアプリケーションの一部であることの確率を計算する。これは、特に、遠隔施設において、ＶｏＩＰトラフィックを分岐インターネット接続を介して転送する一方、全ての他のトラフィックを中央オフィスまたはデータセンタに向ける等、アプリケーションに基づいてルーティング決定が行われる場合において有用であり得る。
【００３４】
図１Ｃは、第１のパケットアプリケーション分類のための関連付けデータベース１５０の実施形態の例証である。テーブルとして示されるが、多くの実装では、関連付けデータベース１５０は、フラットファイル、関係データベース、パラメータ−値ペアの組、拡張マークアップ言語（ＸＭＬ）ファイル、または任意の他のタイプおよび形態のデータフォーマットであり得る。各エントリは、ＩＰアドレス等のアドレス１２２を含み得る。アドレスは、いくつかの実装では、ポートを含み得る一方、他の実装では、ポートは、省略され得る。さらに他の実装では、ワイルドカード、ポート、またはポート範囲が、含まれ得る。例えば、いくつかの実装では、アプリケーションは、複数のポートまたは潜在的ポートの範囲に関連付けられ得、サーバ、クライアント、または中間デバイスは、ポートを使用のための範囲内から選択し得る。いくつかのそのような実装では、エントリは、ポートの範囲に関連付けられ得、ポートの範囲は、連続（例えば、１０００〜１５００）または非連続（例えば、１０００と１５００との間の偶数ポート、または１０００、１１００、１２００等）であり得る。ＩＰｖ４フォーマットで示されるが、アドレス１２２は、ＩＰｖ６および／またはメディアアクセス制御（ＭＡＣ）アドレスを含む任意のフォーマットであり得る。例えば、いくつかの実装では、アドレス１２２は、第２層ＭＡＣアドレス、第３層ＩＰアドレス、または第４層ポート、もしくはこれらまたは他の情報の任意の組み合わせを含み得る。
【００３５】
各エントリは、ドメイン１０６を含み得、ドメイン１０６は、１つ以上のアドレスに対応するＤＮＳ識別子を含み得る。トップレベルまたはルートドメインとして示されるが、多くの実装では、エントリは、拡張ドメイン（例えば、ｍａｉｌ．ｅｘａｍｐｌｅ．ｃｏｍ、ｆｔｐ．ｅｘａｍｐｌｅ．ｃｏｍ、ａｐｐ．ｅｘａｍｐｌｅ．ｃｏｍ／ｏｆｆｉｃｅ／ｗｅｂ等）を含み得る。ドメインは、ＡＳＣＩＩまたは英数字であり得る。
【００３６】
いくつかの実装では、関連付けデータベース１５０は、エントリを識別するためのインデックス１５２を含み得る。例えば、いくつかの実装では、エントリのためのインデックス１５２は、アドレス１２２およびドメイン１０６の入力を使用したハッシュ計算の結果として計算され得る。これは、フローの第１のパケットを受信したときの迅速かつ効率的ルックアップを可能にし得る。他の実装では、アドレスまたはドメインが、インデックスとして使用され得る。例えば、データベース内のエントリは、宛先アドレスによってインデックスをつけられ、直接ルックアップを可能にし得る。
【００３７】
関連付けデータベース１５０内の各エントリは、対応するアプリケーション識別子１２４を有し得る。アプリケーション識別子１２４は、アプリケーション層サービス、プレゼンテーション層サービス、セッション層サービス、下位層管理（例えば、近隣探索、単純ネットワーク管理プロトコル等）を含む管理サービスを含む任意のタイプおよび形態のアプリケーションまたはサービスを識別し得る。いくつかの実装では、アプリケーション１２４は、種々または複数のレベルの粒度（例えば、ＩＰｖ４／ＴＣＰ／ＳＭＴＰ／電子メール、ＩＰｖ６／ＴＣＰ／ＵＤＰ／ＲＴＰ／ＶｏＩＰ等）において識別され得る。アプリケーション識別子は、高レベルにあり、電子メール、ビデオチャット、ストリーミングビデオ等のエンドユーザ機能性を識別し得るか、または、プロトコル（例えば、ＳＭＴＰ、ＨＬＳ等）を識別するか、または、両方であり得る。アプリケーションは、ルーティングおよびＱｏＳポリシまたは他の処理ポリシに対応し得る。例えば、ポリシデータベース（図示せず）は、メールアプリケーションに関連付けられたフローが、低優先順位を与えられ、圧縮され、暗号化されるべきであることを識別するエントリを含み得る一方、別のエントリは、ＶｏＩＰ通信が高優先順位または最高ＱｏＳ設定を与えられるべきであることを識別し得る。いくつかの実装では、異なるポリシが、異なるドメインまたはアドレスを有する同一のアプリケーションに適用され得る。例えば、１つのそのような実装では、ＶｏＩＰアプリケーション１２４は、企業内の通信のための「内部」ＶｏＩＰアプリケーションと識別され、第１のレベルのサービスを与えられ得る一方、第２のＶｏＩＰアプリケーション１２４は、企業外の通信のための「外部」ＶｏＩＰアプリケーションとて識別され、あるＩＰ範囲との通信からブラックリスト化され得る。
【００３８】
関連付けデータベースは、いくつかの実装では、信頼度スコアまたは確率１５４を含み得る。信頼度スコア１５４は、特定のアドレス１２２およびドメイン１０６を有する第１のパケットが、データベース内のエントリ内の対応するアプリケーション１２４に属するとして分類されるべきである統計的尤度を表し得る。信頼度スコア１５４は、デフォルトレベル（例えば、５０％、２０％、８０％、または任意の他のそのような値）から開始するように割り当てられ得、フローが分析されるにつれて、中間デバイスによって動的に調節され得る。例えば、１．２．３．４：８０の宛先アドレスおよびｅｘａｍｐｌｅ．ｃｏｍのドメインに向けられるフローの第１のパケットは、潜在的に、ＨＴＴＰまたはウェブブラウジングトラフィックであると識別され得、対応するポリシが、フローに適用され得る。中間デバイスは、ディープパケットインスペクションをパケットペイロードについて実施することを含むフローの監視を継続し得る。中間デバイスが、フロー内でさらなるウェブブラウジングトラフィック（例えば、ＨＴＴＰ  ＧＥＴ要求等）を識別する場合、中間デバイスは、エントリのための信頼度スコア１５４を増加させ得る。逆に言えば、中間デバイスが非ウェブブラウジングトラフィックを識別する場合、中間デバイスは、エントリのための信頼度スコア１５４を減少させ得る。いくつかの実装では、信頼度スコアが、特定の閾値より小さい場合、対応するルーティングポリシは、第１のパケットから開始するフローに適用され得ず、代わりに、デフォルトルーティングポリシが、適用され得る。さらなる実装では、信頼度スコアが、特定の閾値（それは、同じ閾値であることも、第２のより低い閾値であることもある）より小さい場合、エントリは、データベースから除去され得るか、または、識別されたアプリケーションは、置換され得る（かつ、信頼度スコアは、潜在的に、高められる）。例えば、後に非ウェブブラウジングトラフィックを識別し（例えば、ＳＳＨトラフィックを識別する代わりに）、対応するスコアが、ある閾値、例えば、２０まで低減させられる場合、いくつかの実装では、中間デバイスは、ウェブサーバアプリケーション識別子をＳＳＨアプリケーション識別子と置き換え、スコアをデフォルト値（例えば、５０）まで増加させ得る。このように、中間デバイスは、第１のパケットアプリケーション推定を動的に調節する一方、奇数パケットフローの場合、あるヒステリシスを提供し得る。いくつかの実装では、中間デバイスは、パケットフローがあるサイズまたは持続時間より大きい場合にのみ、信頼度スコアを調節し得る。これは、迅速に終了される正しくなくアドレス指定されたフローの場合、スコアを誤って調節することを防止し得る。
【００３９】
関連付けデータベース１５０が、成長し、信頼度スコア１５４が、増加させられるにつれて、分類は、より正確になり得る。故に、より大量のフローの分類は、正確度および効率を改良し得る。したがって、いくつかの実装では、関連付けデータベース１５０は、企業全体を通して他の中間デバイスと共有し、他の中間デバイスのそれらと集約され、大量のトラフィックデータのより高速の捕捉を可能にし得る。いくつかの実装では、関連付けデータベース１５０は、信頼されたパートナと企業外で共有されること、または、他の中間デバイスによるアクセスのためのクラウドサービス内にキャッシュされることさえもあり得る。さらに別の実装では、中間デバイスは、クライアントから受信されたＤＮＳ要求を使用して、キャッシュされた分類の正確度をさらに増加させ得る。
【００４０】
図２Ａは、第１のパケットアプリケーション分類のためのコンピューティングデバイス１００の実施形態のブロック図である。そのようなデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、ラック搭載コンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、家電、クラスタデバイスまたは家電、サーバクラウドまたはファーム、１つ以上の物理的機械によって実行される仮想機械、もしくは任意の他のタイプのコンピューティングデバイスを含み得る。図２Ａに示されるように、コンピューティングデバイスは、１つ以上の中央処理ユニットまたはプロセッサ２００、１つ以上のネットワークインターフェース２０２、１つ以上の入力／出力コントローラまたはデバイス２０４、ＲＡＭおよび内部または外部記憶デバイス等のシステムメモリを含み得る１つ以上のメモリユニット２０６を含み得る。コンピューティングデバイスは、インストールデバイス、ディスプレイデバイス、キーボード、マウス、タッチスクリーンデバイス、または他のそのようなデバイス等のポインティングデバイスを含む図示されない他のユニットも含み得る。メモリ２０６は、限定ではないが、オペレーティングシステム２１０および／またはソフトウェアを含み得る。
【００４１】
中央処理ユニット２００は、メモリ２０６からフェッチされた命令に応答し、それを処理する任意の論理回路である。多くの実施形態では、中央処理ユニット２００は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，Ｃａｌｉｆｏｒｎｉａ）によって製造されたものＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（ＷｈｉｔｅＰｌａｉｎｓ，Ｎｅｗ  Ｙｏｒｋ）によって製造されたものまたはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（Ｓｕｎｎｙｖａｌｅ，Ｃａｌｉｆｏｒｎｉａ）によって製造されたもの等のマイクロプロセッサユニットによって提供される。コンピューティングデバイスは、これらのプロセッサ、または限定ではないが、グラフィック処理ユニット（ＧＰＵ）およびネットワーク処理ユニット（ＮＰＵ）を含む本明細書に説明されるように動作することが可能な任意の他のプロセッサのいずれかに基づき得る。
【００４２】
時として、メインメモリユニットとも称されるメモリ２０６は、任意のタイプまたは変形の静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、強誘電性ＲＡＭ（ＦＲＡＭ（登録商標））、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、およびソリッドステートドライブ（ＳＳＤ）等、データを記憶することが可能であり、任意の記憶場所がマイクロプロセッサ２００によって直接アクセスされることを可能にする、１つ以上のメモリチップであり得る。メモリ２０６は、上で説明されるメモリチップまたは本明細書に説明されるように動作することが可能な任意の他の利用可能なメモリチップのいずれかに基づき得る。示される実施形態では、プロセッサ２００は、システムバス２０８（下でより詳細に説明される）を介して、メインメモリ２０６と通信する。他の実施形態では、プロセッサは、メモリポートを介して、メインメモリ２０６と直接通信する。例えば、そのような実施形態では、メモリ２０６は、ＤＲＤＲＡＭであり得る。他の実施形態では、プロセッサ２００は、時としてバックサイドバスとも称される二次バスを介して、キャッシュメモリと直接通信し得る。他の実施形態では、メインプロセッサ２００は、システムバス２０８を使用して、キャッシュメモリと通信する。キャッシュメモリは、典型的に、システムバスを介してアクセス可能なメモリより高速の応答時間を有し、例えば、ＳＲＡＭ、ＢＳＲＡＭ、またはＥＤＲＡＭによって提供される。
【００４３】
いくつかの実施形態では、プロセッサ２００は、ローカルシステムバス２０８を介して、種々のＩ／Ｏデバイス２０４と通信する。種々のバスは、中央処理ユニット２００を任意のＩ／Ｏデバイス、例えば、ＶＥＳＡ  ＶＬバス、ＩＳＡバス、ＥＩＳＡバス、ＭｉｃｒｏＣｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、ＰＣＩバス、ＰＣＩ−Ｘバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、またはＮｕＢｕｓに接続するために使用され得る。Ｉ／Ｏデバイスがビデオディスプレイである実施形態に関して、プロセッサ２００は、拡張グラフィックスポート（ＡＧＰ）を使用して、ディスプレイと通信し得る。いくつかの実施形態では、プロセッサ２００は、例えば、ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ、ＲＡＰＩＤＩＯ、またはＩＮＦＩＮＩＢＡＮＤ通信技術を介して、Ｉ／Ｏデバイスと直接通信し得る。様々なＩ／Ｏデバイスが、コンピューティングデバイス１００内に存在し得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、ダイヤル、タッチパッド、タッチスクリーン、および描画タブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、プロジェクタ、および昇華型プリンタを含む。Ｉ／Ｏデバイスは、図２Ａに示されるように、Ｉ／Ｏコントローラ２０４によって制御され得る。Ｉ／Ｏコントローラは、キーボードおよびポインティングデバイス、例えば、マウスまたは光学ペン等の１つ以上のＩ／Ｏデバイスを制御し得る。さらに、Ｉ／Ｏデバイスは、コンピューティングデバイスのための記憶および／またはインストール媒体も提供し得る。さらに他の実施形態では、コンピューティングデバイスは、Ｔｗｉｎｔｅｃｈ  Ｉｎｄｕｓｔｒｙ，Ｉｎｃ．（Ｌｏｓ  Ａｌａｍｉｔｏｓ，Ｃａｌｉｆｏｒｎｉａ）によって製造されたデバイスのＵＳＢフラッシュドライブライン等のハンドヘルドＵＳＢ記憶デバイスを受け取るためのＵＳＢ接続（図示せず）を提供し得る。
【００４４】
コンピューティングデバイスは、ディスクドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、フラッシュメモリドライブ、種々のフォーマットのテープドライブ、ＵＳＢデバイス、ハードドライブ、ネットワークインターフェース、またはソフトウェアおよびプログラムをインストールするために好適な任意の他のデバイス等の任意の好適なインストールデバイス（図示せず）をサポートし得る。コンピューティングデバイスは、オペレーティングシステムおよび他の関連ソフトウェアを記憶するために、かつ本明細書に説明されるシステムおよび方法を実装するための（例えば、そのために構成および／または設計される）任意のプログラムまたはソフトウェア等のアプリケーションソフトウェアプログラムを記憶するために、１つ以上のハードディスクドライブもしくは独立ディスクの冗長アレイ等の記憶デバイスをさらに含み得る。随意に、インストールデバイスのいずれかは、記憶デバイスとしても使用され得る。加えて、オペレーティングシステムおよびソフトウェアは、ブート可能媒体から起動されることができる。
【００４５】
さらに、コンピューティングデバイスは、限定ではないが、標準的電話回線、ＬＡＮまたはＷＡＮリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５、ＳＮＡ、ＤＥＣＮＥＴ）、ブロードバンド接続（例えば、ＩＳＤＮ、Ｆｒａｍｅ  Ｒｅｌａｙ、ＡＴＭ、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）−ｏｖｅｒ−ＳＯＮＥＴ）、無線接続、もしくは上記のいずれかまたは全てのいくつかの組み合わせを含む種々の接続を通して、ネットワークとインターフェースをとるためのネットワークインターフェース２０２を含み得る。接続は、種々の通信プロトコル（例えば、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＲＣＮＥＴ、ＳＯＮＥＴ、ＳＤＨ、Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＦＤＤＩ）、ＲＳ２３２、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、ＩＥＥＥ８０２．１１ａｃ、ＩＥＥＥ８０２．１１ａｄ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＷｉＭａｘ、および直接非同期接続）を使用して、確立されることができる。一実施形態では、コンピューティングデバイスは、セキュアソケット層（ＳＳＬ）またはトランスポート層セキュリティ（ＴＬＳ）等の任意のタイプおよび／または形態のゲートウェイもしくはトンネルプロトコルを介して、他のコンピューティングデバイスと通信する。ネットワークインターフェース２０２は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、ＰＣＭＣＩＡネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ＵＳＢネットワークアダプタ、モデム、または、通信が可能であり、本明細書に説明される動作を実施する任意のタイプのネットワークとコンピューティングデバイスにインターフェースをとらせるために好適な任意の他のデバイスを含み得る。
【００４６】
いくつかの実施形態では、コンピューティングデバイスは、１つ以上のディスプレイデバイスを含むか、または、それに接続され得る。したがって、任意のＩ／Ｏデバイスおよび／またはＩ／Ｏコントローラ２０４は、任意のタイプおよび／または形態の好適なハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含み、コンピューティングデバイスによるディスプレイデバイスへの接続およびその使用をサポート、有効化、または提供し得る。例えば、コンピューティングデバイスは、任意のタイプおよび／または形態のビデオアダプタ、ビデオカード、ドライバ、および／またはライブラリを含み、ディスプレイデバイスとインターフェースをとること、それと通信すること、それに接続すること、または、別様にそれを使用することを行い得る。一実施形態では、ビデオアダプタは、複数のコネクタを含み、ディスプレイデバイスとインターフェースをとり得る。他の実施形態では、コンピューティングデバイスは、複数のビデオアダプタを含み得、各ビデオアダプタは、ディスプレイデバイスに接続される。いくつかの実施形態では、コンピューティングデバイスのオペレーティングシステム２１０の任意の部分は、複数のディスプレイを使用するために構成され得る。当業者は、コンピューティングデバイスが１つ以上のディスプレイデバイスを有するように構成され得る種々の方法および実施形態を認識し、理解するであろう。
【００４７】
さらなる実施形態では、Ｉ／Ｏデバイスは、システムバス２０８と、ＵＳＢバス、Ａｐｐｌｅ  Ｄｅｓｋｔｏｐバス、ＲＳ−２３２シリアル接続、ＳＣＳＩバス、ＦｉｒｅＷｉｒｅバス、ＦｉｒｅＷｉｒｅ８００バス、Ｅｔｈｅｒｎｅｔ（登録商標）バス、ＡｐｐｌｅＴａｌｋバス、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）バス、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅバス、ＦｉｂｒｅＣｈａｎｎｅｌバス、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄスモールコンピュータシステムインターフェースバス、ＵＳＢ接続、またはＨＤＭＩ（登録商標）バス等の外部通信バスとの間のブリッジであり得る。
【００４８】
図２Ａに描写される種類のコンピューティングデバイスは、オペレーティングシステム２１０の制御下で動作し得、オペレーティングシステム２１０は、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する。クライアントデバイスまたはサーバは、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのバージョンのいずれか、Ｕｎｉｘ（登録商標）およびＬｉｎｕｘ（登録商標）オペレーティングシステムの異なるリリース、ＭａｃｉｎｔｏｓｈコンピュータのためのＭＡＣ  ＯＳの任意のバージョン、任意の内蔵オペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専有オペレーティングシステム、モバイルコンピューティングデバイスのための任意のオペレーティングシステム、またはコンピューティングデバイス上で起動され、本明細書に説明される動作を実施することが可能な任意の他のオペレーティングシステム等の任意のオペレーティングシステムを起動することができる。典型的オペレーティングシステムとして、限定ではないが、とりわけ、Ｇｏｏｇｌｅ  Ｉｎｃ．によって生産されたＡｎｄｒｏｉｄ、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，Ｗｓｈｉｎｇｔｏｎ）によって生産されたＷＩＮＤＯＷＳ（登録商標）７、８、または１０、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）によって生産されたＭＡＣ  ＯＳおよびｉＯＳ、Ｒｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ（ＲＩＭ）によって生産されたＷｅｂＯＳ、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（Ａｒｍｏｎｋ，Ｎｅｗ  Ｙｏｒｋ）によって生産されたＯＳ／２、および、Ｃａｌｄｅｒａ  Ｃｏｒｐ．（Ｓａｌｔ  Ｌａｋｅ  Ｃｉｔｙ，Ｕｔａｈ）によって配布されている自由に利用可能なオペレーティングシステムであるＬｉｎｕｘ（登録商標）、もしくは任意のタイプおよび／または形態のＵｎｉｘ（登録商標）オペレーティングシステムが挙げられる。
【００４９】
上で議論されるように、コンピューティングシステムは、ルータ、ゲートウェイ、スイッチ、モデム、負荷バランサ、ファイアウォール、ＮＡＴデバイス、ＷＡＮアクセラレータ、セキュリティ家電、またはパケットを受信、処理、および伝送することが可能な任意の他のタイプおよび／または形態のコンピューティング、電気通信、もしくはメディアデバイス等の任意のタイプおよび形態の中間デバイスであることができる。コンピュータシステムは、本明細書に説明される動作を実施するために十分なプロセッサ電力およびメモリ容量を有する。単一デバイスとして示されるが、多くの実装では、中間デバイス１００は、クラスタ、クラウド、ファーム、グリッド、メッシュ、または類似展開シナリオ内に展開され、スケーラビリティおよび信頼度を提供し得る。
【００５０】
いくつかの実施形態では、コンピューティングデバイスは、デバイスと適合する異なるプロセッサ、オペレーティングシステム、および入力デバイスを有し得る。例えば、一実施形態では、コンピューティングデバイスは、スマートフォン、モバイルデバイス、タブレット、または携帯情報端末である。さらに他の実施形態では、コンピューティングデバイスは、Ａｎｄｒｏｉｄベースのモバイルデバイス、Ａｐｐｌｅｌｅ  Ｃｏｍｐｕｔｅｒ（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）によって製造されたｉＰｈｏｎｅ（登録商標）スマートフォン、またはＲｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ  Ｌｉｍｉｔｅｄによって製造されたデバイス等のＢｌａｃｋｂｅｒｒｙもしくはＷｅｂＯＳベースのハンドヘルドデバイスまたはスマートフォンである。さらに、コンピューティングデバイスは、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ハンドヘルドコンピュータ、携帯電話、任意の他のコンピュータ、もしくは通信が可能であり、本明細書に説明される動作を実施するために十分なプロセッサ電力およびメモリ容量を有する他の形態のコンピューティングまたは電気通信デバイスであることができる。他のソフトウェアは、ウェブブラウザ、構成アプリケーション、テキストエディタまたはテンプレートエディタ、仮想機械サーバ、ハイパーバイザ、認証またはログインエージェント、監視システム、もしくは他のそのような特徴を含むコンピューティングデバイスによって実行され得る。
【００５１】
中間デバイス１００は、１つ以上のパケットプロセッサ２２０を含み得る。ネットワークインターフェース２０２の一部として示されるが、いくつかの実装では、パケットプロセッサ２２０は、プロセッサ２００によって実行され得、メモリ２０６内に常駐し得る。パケットプロセッサ２２０は、ＡＳＩＣ回路等のハードウェアを備え得るオペレーティングシステム２１０のネットワークスタック内にあるか、または、ネットワークインターフェース上のコプロセッサによって実行されるドライバ等のソフトウェアを備え得るか、または、ハードウェアおよびソフトウェアの任意の組み合わせを備え得る。パケットプロセッサ２２０は、フローのパケットを受信、識別、分類、および伝送するように構成され得る。パケットプロセッサ２２０は、上で議論されるように、関連付けデータベース１５０を維持し得、バッファ、多重化、プーリング、暗号化、圧縮、並び替え、事前確認応答、再伝送、ＱｏＳプロトコルの適用、または任意の他のタイプおよび形態の処理等、ポリシエンジン２３０および／またはポリシデータベース２３５に従って、追加の機能性を実施し得る。上で議論されるように、パケットプロセッサ２２０は、通信フローの第１のパケットから抽出された、またはその中で識別されたアドレスおよびドメインの組み合わせに関して識別されたアプリケーションに従って、ルーティングポリシを選択し、適用し得る。
【００５２】
ポリシエンジン２３０は、パケットプロセッサ２２０の一部であり得るか、または、示されるように、パケットプロセッサ２２０と別個であり得る。いくつかの実装では、ポリシエンジン２３０は、ポリシデータベース２３５内に記憶されたルーティングポリシを構成および／または適用するためのアプリケーション、サービス、サーバ、デーモン、ルーチン、または他の実行可能論理を備え得る。主にルーティングポリシと称されるが、多くの実装では、ポリシは、ルーティング命令以外の追加の命令またはパラメータ（例えば、暗号化プロトコル、圧縮設定、バッファ設定、ＱｏＳ要件等）を含み得、いくつかの実装では、ルーティング命令を含まないこともある。例えば、時として、ルーティングポリシとも称されるが、ポリシは、単に、ＱｏＳ要件を含み得、ルーティングは、標準的ネットワークルーティングプロトコルに任され得る。この意味において、ルーティングは、ネットワークを通した特定の経路、またはネットワークを通した任意の適切な経路を構成するための命令、またはこれらの任意の組み合わせを指し得る。ポリシデータベース２３５は、関係データベース、フラットファイル、パラメータ−値ペアセット、ＸＭＬファイル、または他のデータ構造を含む任意のタイプおよび形態のデータベースを備え得、ルーティングまたは構成命令および関連付けられたアプリケーションを備え得る。いくつかの実装では、ポリシデータベース２３５は、アプリケーションデータベース１５０の一部であり得る。したがって、ポリシデータベース２３５内の各エントリは、対応するルーティングまたは構成命令も含み得る。いくつかの実装では、アプリケーションは、そのような組み合わせられた関連付け／ポリシデータベース内で明示的に識別されないこともある。
【００５３】
図２Ｂは、クライアントデバイス１０２および／またはサーバ１０４等のネットワーク通信のためのコンピューティングデバイスの実施形態のブロック図である。クライアントまたはサーバデバイスは、１つ以上のプロセッサ２００、ネットワークインターフェース２０２、Ｉ／Ｏコントローラ２０４、メモリデバイス２０６、およびオペレーティングシステム２１０を含む上で議論されるコンポーネントの多くを含み得る。加えて、クライアントまたはサーバデバイスは、１つ以上のアプリケーション２０８を備え得る。アプリケーション２０８は、種々の機能を実施するために、および／または、ローカルもしくは遠隔のいずれかで他のアプリケーションと通信するために、任意のタイプおよび形態のアプリケーション、サービス、サーバ、デーモン、またはルーチンを備え得る。アプリケーション２０８の各々は、実行可能ファイル、ライブラリ、データファイル、パラメータまたは選好ファイル、レジストリキー、構成ファイル、グラフィック、オーディオファイル、ビデオファイル、辞書、テンプレート、または任意の他のタイプおよび形態のデータを含む複数のファイルを備え得る。アプリケーション２０８は、複数のバージョンにおいて存在し得、バージョン番号、名前、または他のインジケータによって識別され得る。
【００５４】
図３は、第１のパケットアプリケーション分類のための方法の実施形態のフローチャートである。ステップ３００では、第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間に展開される中間デバイスが、第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間の通信フローの第１のパケットを受信し得る。多くの実装では、第１のパケットは、ＴＣＰ  ＳＹＮパケットまたは類似接続確立パケット等の同期パケットを備え得る。他の実装では、第１のパケットは、要求、トリガ、または任意の他のタイプおよび形態のパケットを含み得る。パケットは、アプリケーション層ペイロードを有することも、有しないこともある。
【００５５】
ステップ３０２では、中間デバイスのパケットプロセッサが、ドメインおよび宛先アドレスの識別子を第１のパケットから識別または抽出し得る。宛先アドレスは、ＩＰｖ４またはＩＰｖ６アドレス等のネットワーク層アドレスを含み得る。いくつかの実装では、宛先アドレスは、宛先ポート番号等のトランスポート層アドレスを含み得る。いくつかの実装では、宛先アドレスは、ＭＡＣアドレス等のデータ層アドレスを含み得る。いくつかの実装では、プロトコル番号または任意の他のそのような識別子等のヘッダの任意の他の部分が、利用され得る。ドメインは、英数字、ＡＳＣＩＩ、Ｕｎｉｃｏｄｅ、またはＰｕｎｙｃｏｄｅを含む任意の適切なフォーマットにおける名前によって識別され得る。ドメイン名は、ＤＮＳ要求、パケットヘッダ、またはパケットの任意の他の部分から抽出され得る。いくつかの実装では、ＤＮＳ要求および応答は、別個に通信され得（例えば、ステップ３００の前に）、受信されたドメイン名は、宛先ＩＰアドレス、ポート、および／またはプロトコルに関連付けられ得る。他の実装では、ＤＮＳ要求および応答は、ステップ３００における第１のパケットの受信に応答して、伝送および受信され得る。ドメインは、第１のパケットの宛先ＩＰアドレス、ポート、および／またはプロトコルをＤＮＳ応答内で受信されたドメインに対応するＩＰアドレス、ポート、および／またはプロトコルに合致させることによって識別され得る。
【００５６】
ステップ３０４では、パケットプロセッサが、抽出されたアドレスおよびドメインに関して、関連付けデータベース内にアプリケーションとの関連付けが存在するかどうかを決定し得る。関連付けが存在するかどうかを決定することは、データベース内のアドレスまたはドメインをルックアップすることと、対応するエントリが存在するかどうかを決定することとを含み得る。いくつかの実装では、関連付けが存在するかどうかを決定することは、アドレス、ドメイン、ポート、および／またはプロトコル、もしくはこれらの任意の組み合わせのハッシュを計算すること、またはハッシュアルゴリズムをアドレス、ドメイン、ポート、および／またはプロトコル、もしくはこれらの任意の組み合わせの入力に適用することと、ハッシュ結果に対応するインデックスにおけるエントリに関してデータベースを検索することとを含み得る。
【００５７】
エントリが、存在しない場合、ステップ３０６では、パケットプロセッサが、デフォルトルーティングポリシを通信フローに適用し得る。デフォルトルーティングポリシを適用することは、デフォルトルーティング命令、デフォルト負荷平衡プロシージャ等を適用することを含み得る。パケットは、デフォルトルーティングポリシに従って、宛先に転送され得る。
【００５８】
ステップ３０８では、いくつかの実装において、中間体が、フローの追加のパケットを受信し得る。追加のパケットは、（例えば、第２のデバイスから第１のデバイスへの他の方向における）第１のパケットへの応答を備え得るか、または第１のデバイスから第２のデバイスへの追加のパケットを備え得る。ステップ３１０では、パケットプロセッサが、アプリケーション層ヘッダおよび／またはペイロードもしくは他の層におけるヘッダまたはペイロードを検査し、対応するアプリケーションを識別することを含むディープパケットインスペクションを実施し、フローを分類し得る。いくつかの実装では、パケットプロセッサは、デフォルトポリシに従って、追加のパケットを転送し、ディープパケットインスペクションを追加のパケットのコピーに対して実施し得る。これは、追加のパケットを伝送することにおける遅延を回避し得る。類似実装では、第１のパケットは、分析を可能にするための十分な情報を有し得る。パケットプロセッサは、ステップ３０６において、第１のパケットを転送し、次いで、ステップ３１０において、ディープパケットインスペクションを第１のパケットのコピーに実施し、ステップ３０８をスキップし得る。これも同様に、通信フローを確立すること、または第１のパケットを伝送することにおける遅延を回避し得る。
【００５９】
ステップ３１２では、パケットプロセッサは、関連付けデータベースに識別されたアプリケーション、アドレス、およびドメインに関するエントリを追加し得る。いくつかの実装では、エントリを追加することは、アドレスおよびドメインのハッシュを計算することと、データベースの対応するインデックスにおけるエントリを生成することとを含み得る。パケットプロセッサは、関連付けのための信頼度スコアをデフォルト値に設定し得る。
【００６０】
いくつかの実装では、ルーティングポリシが、ポリシデータベース内の識別されたアプリケーションに関して存在する場合、パケットプロセッサは、対応するポリシ命令をフローの残りに適用し、デフォルトポリシを置換し得る。ポリシを更新することが通信フローを中断させ得（例えば、他の中間デバイスに接続をリセットさせることによって）、他の実装では、パケットプロセッサは、デフォルトポリシをフローに適用し続け得る。
【００６１】
関連付けが、ステップ３０４において、アドレスおよびドメインの組み合わせに関して存在する場合、ステップ３０６では、パケットプロセッサが、関連付けられた信頼度スコアが閾値を超えるかどうかを決定し得る。スコアが、閾値を超えない場合、対応するアプリケーション分類は、正しくないこともある。故に、パケットプロセッサは、上で議論されるステップ３０６と同様に、ステップ３０６’において、デフォルトルーティングポリシをフローに適用し得る。パケットプロセッサは、ステップ３０８および３１０に関連して上で議論されるように、ステップ３０８’において、フローの追加のパケットを受信し、ステップ３１０’において、パケットを分類し得る。
【００６２】
信頼度スコアが、ステップ３０６において、閾値より大きい場合、ステップ３１４では、パケットプロセッサまたはポリシエンジンが、アドレスおよびドメインに対応するエントリ内で識別されたアプリケーションに関連付けられたルーティングポリシを読み出し得る。上で議論されるように、ルーティングポリシは、ネットワーク経路仕様またはパラメータ、パケット処理パラメータ、もしくは対応するアプリケーションのためにパケットを処理および転送することにおいて利用されるべき任意の他のそのような命令または構成を含み得る。ステップ３１６では、パケットプロセッサが、必要な場合、パケットを修正すること、パケット待ち行列をリセットすること、または任意の他のそのような機能を実施することを含むポリシを適用し得る。
【００６３】
上で議論されるように、ステップ３０８’’では、中間体が、ステップ３０８および３１０に関連して上で議論されるように、フローの追加のパケットを受信し得、ステップ３１０’’では、ディープパケットインスペクションを実施し得る。上でも議論されるように、いくつかの実装では、パケットプロセッサは、フローを分類するための十分な情報を含む場合、ステップ３１０’’において、パケットインスペクションを第１のパケットのコピーに対して実施し得る。
【００６４】
ステップ３１８では、パケットプロセッサは、ステップ３１０’または３１０’’におけるフローの分類を関連付けデータベース内の分類と比較し得る。データベースに示されるアプリケーションとディープパケットインスペクションを介して識別されたアプリケーションとが同一である場合、ステップ３２０では、パケットプロセッサが、関連付けのための信頼度スコアを増加させ得る。信頼度スコアは、所定の量だけ、またはスケーリング公式（例えば、例えば、１００％に漸近的に近づく）に従って、増加させられ得る。逆に言えば、データベースに示されるアプリケーションとディープパケットインスペクションを介して識別されたアプリケーションとが同一でない場合、信頼度スコアは、ステップ３２２において、減少させられ得る。信頼度スコアは、所定の量だけ、またはスケーリング公式に従って、減少させられ得る。いくつかの実装では、スコアを減少させる前、パケットプロセッサは、フローが所定のサイズまたは持続時間に到達したかどうかを決定し、フローがそのようなサイズまたは持続時間に到達した場合にのみ、スコアを減少させ得る。上で議論されるように、それは、迅速に終了される誤った伝送の場合にスコアを減少させることを回避し得る。
【００６５】
ステップ３２４では、パケットプロセッサが、減少させられたスコアが第２の閾値より小さいかどうかを決定し得る。第２の閾値は、いくつかの実装では、ステップ３０６において使用されている閾値より低くあり得る。スコアが、第２の閾値より小さい場合、関連付けは、概して、正しくないと推定され得る。故に、該当する場合、ステップ３２６では、パケットプロセッサが、関連付けデータベース内のエントリ内で識別されたアプリケーションをステップ３１０’または３１０’’において識別された新しいアプリケーションの識別子と置き換え得る。パケットプロセッサは、いくつかの実装では、スコアをデフォルト値にリセットすることもある。スコアが、まだ第２の閾値より小さくない場合、処理は、継続し得る。
【００６６】
いくつかの実装では、フローは、ステップ３２４またはステップ３２６後、デフォルトルーティングポリシまたは正しくなく適用されたルーティングポリシでの処理を継続し、接続を不必要にリセットすることを回避し得る。他の実装では、ステップ３１４’において、パケットプロセッサが、ステップ３１４において上で議論されるように、新しく識別されたアプリケーションのためのルーティングポリシをポリシデータベースから読み出し得る。同様に、ステップ３１６’では、パケットプロセッサは、新しく読み出されたルーティングポリシを適用し得る。
【００６７】
故に、方法は、第１のパケットから抽出された特性に基づいて、パケットフローを迅速に分類することを提供し、関連付けは、複数のフローにわたる関連付けの正確度に基づいて取得される信頼度スコアに基づいて、動的に調節される。上で議論されるように、多くの実装では、関連付けデータベースは、多くのデバイス間で共有および／または集約され、より多くの取得されるデータおよび分類をもたらし、正確なアドレス−ドメイン−アプリケーション関連付けをより高速で達成し得る。
【００６８】
本開示は、１人以上の「ユーザ」を参照し得るが、そのような「ユーザ」は、例えば、典型的に、マルチユーザ多重入出力（ＭＵ−ＭＩＭＯ）環境のコンテキストにおいて使用される用語「ユーザ」および「マルチユーザ」と一致するユーザ関連デバイスまたはステーション（ＳＴＡ）も指し得る。
【００６９】
上で説明される通信システムの実施例は、８０２．１１規格に従って動作するデバイスおよびＡＰを含み得るが、説明されるシステムおよび方法の実施形態は、他の規格に従って動作し、デバイスおよびＡＰとして構成されるデバイス以外の無線通信デバイスを使用することもできることを理解されたい。例えば、セルラーネットワーク、衛星通信、車両通信ネットワーク、および他の非８０２．１１無線ネットワークに関連付けられた複数の−ユニット通信インターフェースも、本明細書に説明されるシステムおよび方法の範囲から逸脱することなく、本明細書に説明されるシステムおよび方法を利用して、改良された全体的容量および／またはリンク品質を達成することができる。
【００７０】
本開示のある一節は、あるものを別のものまたは他のものから識別または区別する目的のために、デバイス、動作モード、伝送チェーン、アンテナ等に関連して、「第１」および「第２」等の用語を参照し得ることに留意されたい。これらの用語は、単に、エンティティ（例えば、第１のデバイスおよび第２のデバイス）を一時的に、または順に従って、関連させることを意図するものではないが、ある場合、これらのエンティティは、そのような関係を含み得る。これらの用語は、システムまたは環境内で動作し得る可能なエンティティ（例えば、デバイス）の数を限定するものではない。
【００７１】
上で説明されるシステムは、それらのコンポーネントの任意のものうちの複数のものまたは各々を提供し得、これらコンポーネントは、独立型機械上、またはいくつかの実施形態では、分散型システム内の複数の機械上のいずれかに提供され得ることを理解されたい。加えて、上で説明されるシステムおよび方法は、１つ以上の製造品上または内に具現化される、１つ以上のコンピュータ読み取り可能なプログラムまたは実行可能命令として提供され得る。製造品は、ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリカード、ＰＲＯＭ、ＲＡＭ、ＲＯＭ、または磁気テープであり得る。一般に、コンピュータ読み取り可能なプログラムは、ＬＩＳＰ、ＰＥＲＬ、Ｃ、Ｃ＋＋、Ｃ＃、ＰＲＯＬＯＧ等の任意のプログラミング言語、またはＪＡＶＡ（登録商標）等の任意のバイトコード言語で実装され得る。ソフトウェアプログラムまたは実行可能命令は、１つ以上の製造品上もしくは内に、オブジェクトコードとして記憶され得る。
【００７２】
方法およびシステムの前述に記載の説明は、当業者が、現在その最良形態であると見なされるものを作製および使用することを可能にするが、当業者は、本明細書の具体的実施形態、方法、および実施例の変形例、組み合わせ等の存在を理解および認識するであろう。方法およびシステムは、したがって、上で説明される実施形態、方法、および実施例によってではなく、本開示の範囲および精神内の全ての実施形態ならびに方法によって限定されるべきである。
【００７３】
上で説明されるシステムは、それらのコンポーネントの任意のものうちの複数のものまたは各々を提供し得、これらのコンポーネントは、独立型機械上、またはいくつかの実施形態では、分散型システム内の複数の機械上のいずれかに提供され得ることを理解されたい。上で説明されるシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するように、プログラミングおよび／または工学技法を使用して、方法、装置、または製造品として実装され得る。加えて、上で説明されるシステムおよび方法は、１つ以上の製造品の上もしくは中で具現化される、１つ以上のコンピュータ読み取り可能なプログラムとして提供され得る。本明細書で使用されるような用語「製造品」は、１つ以上のコンピュータ読み取り可能なデバイス、ファームウェア、プログラマブル論理、メモリデバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＳＲＡＭ等）、ハードウェア（例えば、集積回路チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）、電子デバイス、コンピュータ読み取り可能な不揮発性記憶ユニット（例えば、ＣＤ−ＲＯＭ、ハードディスクドライブ等）からアクセス可能であり、それに組み込まれるコードまたは論理を包含することを意図している。製造品は、ファイルサーバからアクセス可能であり得、ネットワーク伝送ライン、無線伝送媒体、空間を通して伝搬する信号、電波、赤外線信号等を介したコンピュータ読み取り可能なプログラムへのアクセスを提供する。製造品は、フラッシュメモリカードまたは磁気テープであり得る。製造品は、ハードウェア論理、およびプロセッサによって実行されるコンピュータ読み取り可能な媒体に組み込まれるソフトウェアまたはプログラマブルコードを含む。一般に、コンピュータ読み取り可能なプログラムは、ＬＩＳＰ、ＰＥＲＬ、Ｃ、Ｃ＋＋、Ｃ＃、ＰＲＯＬＯＧ等の任意のプログラミング言語で、またはＪＡＶＡ（登録商標）等の任意のバイトコード言語で、実装され得る。ソフトウェアプログラムは、オブジェクトコードとして、１つ以上の製造品の上もしくは中に記憶され得る。
【００７４】
方法およびシステムの種々の実施形態が説明されているが、これらの実施形態は、例証的であり、説明される方法またはシステムの範囲をいかようにも限定しない。当業者は、説明される方法およびシステムの最も広い範囲から逸脱することなく、説明される方法およびシステムの形態ならびに詳細に変更を生じさせることができる。したがって、本明細書に説明される方法およびシステムの範囲は、例証的実施形態のうちのいずれかによって限定されるべきではなく、付随する請求項およびそれらの均等物に従って定義されるべきである。
【図１Ａ】
2021500802.tif 000003
【図１Ｂ】
2021500802.tif 000004
【図１Ｃ】
2021500802.tif 000005
【図２Ａ】
2021500802.tif 000006
【図２Ｂ】
2021500802.tif 000007
【図３】
2021500802.tif 000008
【国際調査報告】
2021500802.tif 000009
2021500802.tif 000010