JP2021500802A - 第1のパケットアプリケーション分類のためのシステムおよび方法 - Google Patents

第1のパケットアプリケーション分類のためのシステムおよび方法 Download PDF

Info

Publication number
JP2021500802A
JP2021500802A JP2020521996A JP2020521996A JP2021500802A JP 2021500802 A JP2021500802 A JP 2021500802A JP 2020521996 A JP2020521996 A JP 2020521996A JP 2020521996 A JP2020521996 A JP 2020521996A JP 2021500802 A JP2021500802 A JP 2021500802A
Authority
JP
Japan
Prior art keywords
application
packet
domain
flow
destination address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020521996A
Other languages
English (en)
Other versions
JP7026219B2 (ja
Inventor
マルコ アントニオ ムルジャ,
マルコ アントニオ ムルジャ,
Original Assignee
サイトリックス システムズ,インコーポレイテッド
サイトリックス システムズ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サイトリックス システムズ,インコーポレイテッド, サイトリックス システムズ,インコーポレイテッド filed Critical サイトリックス システムズ,インコーポレイテッド
Publication of JP2021500802A publication Critical patent/JP2021500802A/ja
Application granted granted Critical
Publication of JP7026219B2 publication Critical patent/JP7026219B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

説明される実施形態は、知的学習ベースのシステムを介して、フローの短待ち時間分類を提供する。一実装では、パケットプロセッサが、フローの第1のパケット内で識別される宛先インターネットプロトコル(IP)アドレスおよびドメインを利用して、同一アドレスおよびドメインに向けられた類似フローが以前に受信されているかどうかを決定し、該当しない場合、デフォルトルーティングおよびポリシルールを適用し得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベースにおいて、アプリケーション、アドレス、およびドメインの組み合わせに関する記録と、開始信頼度レベルとを生成し、適切なルーティングおよびポリシルールを適用し得る。同一アプリケーションおよび宛先IPアドレスのためのその後のフローは、以前のフローと同一であると分類され得、対応するルーティングおよびポリシルールが、適用される。

Description

(関連出願の相互参照)
本国際特許出願は、その内容の全てが、あらゆる目的のために参照することによってその全体として本明細書に組み込まれる「SYSTEMS AND METHODS FOR FIRST PACKET APPLICATION CLASSIFICATION」と題され、2017年10月23日に出願された米国特許出願第15/790,410号の優先権を主張する。
(開示の分野)
本願は、概して、ネットワークパケットの短待ち時間分類に関する。
エンドポイント間のネットワーク通信またはフローは、例えば、アプリケーションによって分類され得、それによって、ルーティングおよびサービスの質(QoS)ポリシが、適用され得る。例えば、第1のフローは、リアルタイムビデオまたはボイスオーバーインターネットプロトコル(VoIP)トラフィックとして分類され、より高い優先順位ルーティングおよびQoSを受け得、第2のフローは、電子メールトラフィックとして分類され、より低い優先順位ルーティングおよびQoSを受け得る。これは、異なるサービスおよびアプリケーション間のネットワーク帯域幅の平衡を保たせ、各サービスの必要性を満たすことに役立つ。
多くの実装では、フローまたは通信の第1のパケットを分類し、それによって、ネットワーク経路が適切に選択され、中間デバイスが適切に構成され得ることが重要であり得る。しかしながら、パケットを分類することは、かなりの待ち時間を通信に追加し得るディープパケットインスペクション(DPI)または他の分析機能を要求し得る。例えば、いくつかの実装では、DPIは、フローがエンドポイントデバイス間(およびネットワークアドレス変換(NAT)デバイス、ファイアウォール等を含む種々の中間デバイス間)に確立されるまで、完了されない;特に、通信の第1のパケットが限定された情報を含み得る実装(例えば、トランスポート制御プロトコル同期パケット(TCP SYN)であって、それは、必ずしも、OSIの第4層(トランスポート層)より上位のペイロードを含むとは限らない)において、アプリケーションを識別することを困難にし得る。DPI結果が、フローが異なって構成されるべきことを示す場合でも、フローが確立された後、フローパラメータまたは経路を変更すること(例えば、異なる中間デバイスを利用するために)は、困難または不可能であり得る。逆に言えば、完全分類が実施され得るまで、フローの確立を遅らせること、またはパケットをバッファすることは、通信またはトランザクションの長い始動時間をもたらし、ユーザを苛立たせ、さらなる処理タスクを遅らせ得る。
本明細書で議論されるシステムおよび方法は、知的学習ベースのシステムを介して、フローの第1のパケットの短待ち時間アプリケーション分類を提供する。一実装では、パケットプロセッサは、フローの第1のパケット内で識別された宛先インターネットプロトコル(IP)アドレスおよびドメインを利用して、同一アドレスおよびドメインに向けられた類似フローが以前に受信されているかどうかを決定し得る。該当しない場合、次いで、デフォルトルーティングおよびポリシルールが、フローに適用され得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベース内に、アプリケーション、アドレス、ポート、プロトコル番号、およびドメインの組み合わせに関する記録を開始信頼度レベルまたは確率とともに生成し得る。完全に分類されると、適切なルーティングおよびポリシルールが、適用され得る。同一宛先IPアドレスを伴う同一アプリケーションのためのその後のフローは、次いで、以前のフローと同一であるとして分類され得、対応するルーティングおよびポリシルールが、適用される。パケットプロセッサは、ディープパケットインスペクションまたは類似方法を介して、フローの完全分類を継続し得、完全分類時、データベースエントリは、合致に対する成功または失敗を伴って更新され得、エントリが正しいことの信頼度レベルまたは確率を調節することを含む。
一側面では、本開示は、パケットフローを処理する方法を対象とする。方法は、パケットプロセッサによって、第1のドメインに関連付けられた第1の宛先アドレスへの第1のフローの第1のパケットを受信することを含む。方法は、パケットプロセッサによって、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けを識別することも含む。方法は、パケットプロセッサによって、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、第1のアプリケーションに対応する第1のルーティングポリシを複数のルーティングポリシから選択することをさらに含む。方法は、パケットプロセッサによって、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、選択された第1のルーティングポリシに従って、第1のフローの第1のパケットを処理することも含む。
いくつかの実装では、方法は、その後、第1のフローを第1のアプリケーションに対応するとして分類することと、第1のフローを第1のアプリケーションに対応するとして分類することに応答して、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアを増加させることとを含む。いくつかの実装では、方法は、その後、第1のフローを第1のアプリケーションと異なる第2のアプリケーションに対応するとして分類することと、第2のアプリケーションに対応する第2のルーティングポリシに従って、第1のフローを処理することとを含む。さらなる実装では、方法は、第1のフローを第2のアプリケーションに対応するとして分類することに応答して、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアを減少させることを含む。
いくつかの実装では、方法は、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアが第1の閾値を超えることを決定することによって、第1のルーティングポリシを選択することを含む。いくつかの実装では、方法は、第1のフローの第1のパケットの受信に先立って、パケットプロセッサによって、第1のドメインに関連付けられた第1の宛先アドレスへのそれ以前のフローの第1のパケットを受信することと、パケットプロセッサによって、アプリケーションデータベース内に、第1の宛先アドレスおよび第1のドメインとの関連付けが存在しないことを決定することと、パケットプロセッサによって、アプリケーションデータベース内に、第1の宛先アドレスおよび第1のドメインとの関連付けが存在しないことの決定に応答して、デフォルトルーティングポリシに従って、それ以前のフローの第1のパケットを処理することとを含む。さらなる実装では、方法は、第1のフローの第1のパケットの受信に先立って、デフォルトルーティングポリシに従って、それ以前のフローの第1のパケットを処理した後、パケットプロセッサによって、それ以前のフローをデフォルトルーティングポリシと異なる第1のルーティングポリシに関連付けられた第1のアプリケーションに対応するとして分類することと、パケットプロセッサによって、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けを記憶し、関連付けに関する第1の信頼度スコアを記憶することとを含む。
いくつかの実装では、方法は、パケットプロセッサによって、第1のドメインに関連付けられた第2の宛先アドレスへの第2のフローの第1のパケットを受信することと、パケットプロセッサによって、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けを識別することと、パケットプロセッサによって、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、第2のアプリケーションに対応する第2のルーティングポリシを複数のルーティングポリシから選択することと、パケットプロセッサによって、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、選択された第2のルーティングポリシに従って、第2のフローの第1のパケットを処理することとを含む。いくつかの実装では、第1のパケットは、宛先ポートおよびプロトコルの識別を含み、記憶された関連付けを識別することは、第1のアプリケーション、第1の宛先アドレス、第1のドメイン、宛先ポート、およびプロトコル間の記憶された関連付けを識別することをさらに含む。
別の側面では、本願は、アプリケーション−アドレス−ドメイン関連付けのデータベースを維持する方法を対象とする。方法は、デバイスのパケットプロセッサによって、第1の宛先アドレスおよび第1のドメインを識別する第1のパケットの受信に応答して、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けを識別することと、パケットプロセッサによって、アプリケーション識別子を第1のパケットから抽出することと、パケットプロセッサによって、抽出されたアプリケーション識別子に基づいて、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する信頼度スコアを調節することとを含む。いくつかの実装では、信頼度スコアを調節することは、パケットプロセッサによって、第1のアプリケーションに対応する抽出されたアプリケーション識別子に応答して、信頼度スコアを増加させることをさらに含む。いくつかの実装では、信頼度スコアを調節することは、パケットプロセッサによって、第1のアプリケーションと異なる第2のアプリケーションに対応する抽出されたアプリケーション識別子に応答して、信頼度スコアを減少させることをさらに含む。いくつかの実装では、方法は、パケットプロセッサによって、第1のドメインに関連付けられた第1の宛先アドレスへのその後のフローの第1のパケットを受信することと、パケットプロセッサによって、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する信頼度スコアが閾値より小さいことを決定することと、パケットプロセッサによって、決定に応答して、デフォルトルーティングポリシに従って、その後のフローの第1のパケットを処理することとを含む。
さらに別の側面では、本願は、パケットフローを処理するためのシステムを対象とする。システムは、第1のデバイスと、第1の宛先アドレスにあり、第1のドメインに関連付けられた第2のデバイスとの間の中間体として展開されているパケットプロセッサ;および、アプリケーション、宛先アドレス、およびドメイン間の関連付けのデータベースと、該関連付けの各々に関する信頼度スコアとを記憶している記憶ユニット;を含む。パケットプロセッサは、第1のデバイスから、第1のドメインに関連付けられた第1の宛先アドレスにおける第2のデバイスへの第1のフローの第1のパケットを受信し、データベースにおいて、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けを識別するように構成されている。パケットプロセッサは、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、第1のアプリケーションに対応する第1のルーティングポリシを複数のルーティングポリシから選択するようにも構成されている。パケットプロセッサは、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、選択された第1のルーティングポリシに従って、第1のフローの第1のパケットを処理するようにも構成されている。
いくつかの実装では、パケットプロセッサは、その後、第1のフローを第1のアプリケーションに対応するとして分類し、第1のフローを第1のアプリケーションに対応するとして分類することに応答して、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアを増加させるようにさらに構成されている。
いくつかの実装では、パケットプロセッサは、その後、第1のフローを第1のアプリケーションと異なる第2のアプリケーションに対応するとして分類し、第2のアプリケーションに対応する第2のルーティングポリシに従って、第1のフローを処理するようにさらに構成されている。さらなる実装では、パケットプロセッサは、第1のフローを第2のアプリケーションに対応するとして分類することに応答して、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアを減少させるようにさらに構成されている。
いくつかの実装では、パケットプロセッサは、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けに関する第1の信頼度スコアが第1の閾値を超えることを決定することと、決定に応答して実施される第1のルーティングポリシを選択することとを行うようにさらに構成されている。
いくつかの実装では、パケットプロセッサは、第1のフローの第1のパケットの受信に先立って、第1のドメインに関連付けられた第1の宛先アドレスへのそれ以前のフローの第1のパケットを受信し、アプリケーションデータベース内に、第1の宛先アドレスおよび第1のドメインとの関連付けが存在しないことを決定し、アプリケーションデータベース内に、第1の宛先アドレスおよび第1のドメインとの関連付けが存在しないことの決定に応答して、デフォルトルーティングポリシに従って、それ以前のフローの第1のパケットを処理するようにさらに構成されている。さらなる実装では、パケットプロセッサは、第1のフローの第1のパケットの受信に先立って、デフォルトルーティングポリシに従って、それ以前のフローの第1のパケットを処理した後、それ以前のフローをデフォルトルーティングポリシと異なる第1のルーティングポリシに関連付けられた第1のアプリケーションに対応するとして分類し、データベース内に、第1のアプリケーション、第1の宛先アドレス、および第1のドメイン間の関連付けと、関連付けに関する第1の信頼度スコアとを記憶するようにさらに構成されている。
いくつかの実装では、パケットプロセッサは、第1のドメインに関連付けられた第2の宛先アドレスへの第2のフローの第1のパケットを受信し、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けを識別し、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、第2のアプリケーションに対応する第2のルーティングポリシを複数のルーティングポリシから選択し、第2のアプリケーション、第2の宛先アドレス、および第1のドメイン間の記憶された関連付けの識別に応答して、選択された第2のルーティングポリシに従って、第2のフローの第1のパケットを処理するようにさらに構成されている。
本ソリューションの前述および他の目的、側面、特徴、ならびに利点は、付随の図面と関連して検討される、以下の説明を参照することによって、より明白となり、より深く理解されるであろう。
図1Aは、ネットワーキング環境の実施形態を図示するブロック図である。
図1Bは、開放型システム間相互接続(OSI)モデルに基づくネットワーキングスタックの実施形態の例証である。
図1Cは、第1のパケットアプリケーション分類のための関連付けデータベースの実施形態の例証である。
図2Aは、第1のパケットアプリケーション分類のためのコンピューティングデバイスの実施形態のブロック図である。
図2Bは、ネットワーク通信のためのコンピューティングデバイスの実施形態のブロック図である。
図3は、第1のパケットアプリケーション分類のための方法の実施形態のフローチャートである。
本ソリューションの特徴および利点は、同様の参照文字が全体を通して対応する要素を識別する図面と関連して検討されることによって、下で記載される詳細な説明からより明白となるであろう。図面では、同様の参照番号は、概して、同じ、機能的に類似する、および/または構造的に類似する要素を示す。
エンドポイント間のネットワーク通信またはフローは、例えば、アプリケーション別に分類され得、それによって、ルーティングおよびサービスの質(QoS)ポリシが、適用され得る。例えば、第1のフローは、リアルタイムビデオまたはボイスオーバーインターネットプロトコル(VoIP)トラフィックとして分類され、より高い優先順位ルーティングおよびQoSを受け得、第2のフローは、電子メールトラフィックとして分類され、より低い優先順位ルーティングおよびQoSを受け得る。これは、異なるサービスおよびアプリケーション間のネットワーク帯域幅の平衡を保たせ、各サービスの必要性を満たすことに役立つ。
例えば、図1Aは、1つ以上のネットワーク110(概して、ネットワーク110と称される)を介して、1つ以上のサーバデバイス104A−104N(概して、サーバデバイス104と称される)と通信する1つ以上のクライアントデバイス102A−102N(概して、クライアントデバイス102と称される)を含むネットワーキング環境の実施形態を図示するブロック図である。クライアントおよびサーバを異なるグループ内に伴って示されるが、多くの実装では、クライアントは、他のクライアントと通信し得、サーバは、他のサーバと通信し得る。クライアント102およびサーバ104は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、内蔵コンピュータ、ラック搭載コンピュータ、ブレードサーバ、スマート家電、モノのインターネット(IoT)デバイス、または任意の他のタイプおよび形態のコンピューティングデバイスを含む任意のタイプおよび形態のコンピューティングデバイスを備え得る。クライアント102および/またはサーバ104は、物理的コンピューティングデバイス、および/または1つ以上の物理的コンピューティングデバイスによって実行される仮想コンピューティングデバイスを含み得る。クライアント102および/またはサーバ104は、物理的および/または仮想コンピューティングデバイスのクラスタ、ファーム、またはクラウドを含み得る。
中間デバイス100は、クライアントデバイス102および/またはサーバデバイス104等の通信または「フロー」のエンドポイント間でパケットを通信するためのコンピューティングデバイスを備え得る。時として、トラフィックフロー、パケットフロー、ネットワークフロー、トランザクション、または類似用語によって称されるフローは、コンピューティングデバイス間の一続きのパケットを含み得る。いくつかの実装では、フローは、一方向性(例えば、クライアントからサーバまたはその逆)であり得る一方、他の実装では、フローは、双方向性通信(例えば、要求および応答、伝送および確認応答等)を含み得る。中間デバイス100は、ルーティング、負荷平衡、加速、圧縮、暗号化、多重化、接続プーリング、キャッシュ、バッファ、ネットワークアドレス変換、ファイアウォール、または任意の他のネットワーク、通信、もしくはセキュリティ特徴または処理、もしくは他のそのような機能等、フローのための追加の処理を提供し得る。中間デバイス100は、家電、ゲートウェイ、NATデバイス、セキュリティデバイス、ルータ、スイッチ、アクセスポイント、モデム、ファイアウォール、または任意の他のそのような用語によって称され得る。中間デバイス100は、複数のネットワーク100に接続し得、ネットワーク100を介する複数のパケットフローを処理することと、バッファおよび優先順位ベースの平衡または並び替え、輻輳またはトラフィック制御、または任意の他のそのような特徴等のQoS特徴を提供することとを行い得る。
ネットワーク110は、クライアントおよび/またはサーバが通信することを可能にするための任意のタイプおよび形態のネットワークを備え得、任意のタイプおよび形態のネットワークは、ローカルエリアネットワーク(LAN)、中域または都市規模ネットワーク(MAN)、インターネット、セルラーネットワーク、衛星ネットワーク、仮想プライベートネットワーク(VPN)等の広域ネットワーク(WAN)、またはこれらもしくは他のネットワークの任意の組み合わせを含む。例えば、クライアントデバイス102は、LAN上の無線アクセスポイントへの無線接続を介してサーバデバイスと通信し得、無線アクセスポイントは、ブロードバンドモデムと通信し得、ブロードバンドモデムは、NATゲートウェイへの1つ以上のスイッチおよびルータと通信し得、NATゲートウェイは、第2のLANを介して、サーバデバイスと通信し得る。故に、追加の中間デバイス100およびネットワーク110が、含まれ得る。
多くの実装では、サーバデバイス104は、1つ以上のドメイン106A−106N(概して、ドメイン106と称される)に関連付けられ得る。ドメイン106は、共通識別ストリング(ドメイン名システム(DNS)の一部として、時として、ドメイン名とも称される)に関連付けられた1つ以上のサーバおよび/またはIPアドレスのグループを備え得る。ドメインは、異なる宛先アドレスにおける複数のサーバを指し得る(例えば、複数のアプリケーションまたはデータサーバが、類似機能を実施し、デバイス(例えば、中間デバイス100)が、負荷平衡を実施し、複数のクライアントデバイスまたはサーバをサポートする場合)。単一IPアドレスを伴う単一サーバが、複数のドメインにも関連付けられ得る(例えば、サーバが、複数の機能(例えば、異なるドメインアドレスに関連付けられたウェブサーバおよびFTPサーバ)を提供する場合)。したがって、ドメイン106、サーバのIPアドレス、およびそれらのサーバによって提供されるアプリケーションは、1:1:1対応を有していないことも頻繁にある。
多くの実装では、ネットワーク経路が、適切に選択され得、中間デバイスが、適切に構成され得るように、フローまたは通信の第1のパケットを分類することが、重要であり得る。例えば、ルーティング決定等のいくつかの決定が、実装では、フローの第1のパケットに関して行われ得るが、その場合、後に決定を変更することは、非常に困難である(例えば、経路内のファイアウォールまたはネットワークアドレス変換デバイスは、ルーティング決定が修正される場合、またはフローが誤分類される場合、接続をリセットし得る)。しかしながら、パケットを分類することは、かなりの待ち時間を通信に追加するディープパケットインスペクション(DPI)または他の分析機能を要求し得る。これは、通信またはトランザクションのための長い始動時間をもたらし、ユーザを苛立たせ、さらなる処理タスクを遅らせ得る。
加えて、通信の第1のパケットは、限定された情報(例えば、トランスポート制御プロトコル同期パケット(TCP SYN)を含み、それは、必ずしも、OSIの第4層(トランスポート層)より上位のペイロードを含むとは限らない)を含まず、アプリケーションを識別することを困難にし得る。図1Bは、開放型システム間相互接続(OSI)モデルに基づくネットワーキングスタック120の実施形態の例証である。示されるように、ネットワークスタックは、第1層(物理層)から第7層(アプリケーション層)の複数の層を含む。ネットワークスタックの種々の層におけるパケットヘッダは、(ネットワーク層における)宛先IPアドレスの識別、(トランスポート層における)宛先ポートアドレス、および(アプリケーション層における)アプリケーション124の識別を含む異なる情報を提供し得る。いくつかの実装では、アプリケーションは、プレゼンテーション層アプリケーション(例えば、遠隔デスクトップ)等の他の層においても識別され得る。ドメインは、任意の層における異なるアドレスに関連付けられ得る。例えば、ドメインは、アプリケーションまたはプレゼンテーション層関連(例えば、「mail.example.com」または「remote.example.com」)であり、特定のソケットに関連付けられるか、または、ネットワーク層関連(例えば、IPアドレスに関連付けられた「example.com」)であり得る。したがって、トランスポート層より上位のペイロードを含まないパケット(例えば、ペイロードを伴わないTCP SYNパケット)の受信は、特定のアプリケーションを識別するために十分な情報を提供しないこともある。
これらの欠点に対処する試みとして、メールサーバのためのmail.example.comまたはウェブサーバのためのwww.example.comのドメイン等の宛先IPアドレスに関してドメイン名サービス(DNS)ルックアップを使用して、アプリケーションを推測することが挙げられている。しかしながら、多くのIPアドレスは、2つ以上のアプリケーションにマッピングされ、したがって、正確度は、低くあり得る(例えば、example.comにおける単一サーバは、セキュアシェル(SSH)サーバ、メールサーバ、ウェブサーバ、ファイル転送プロトコル(FTP)サーバ等を含む多くの異なるサービスを提供し得る)。さらに、多くのドメインは、特に、複数の負荷平衡または高可用性サーバを伴うスケーラブルアプリケーションに関して、2つ以上のIPアドレスに対応し得る。同様に、多くのアプリケーションは、複数のサーバおよびDNS名を使用し、したがって、アプリケーションへのDNS名のマッピングは、維持され、最新に保たれなければならない。さらに、DNSソリューションは、さらなるアプリケーション分類を可能にしない。例えば、オンライン生産性組を提供するいくつかのウェブアプリケーションは、ワード処理、スプレッドシート、またはプレゼンテーションソフトウェアを含むが、全てが、共通ドメインを通してアクセスされ得る。
代わりに、本明細書で議論されるシステムおよび方法は、知的学習ベースのシステムを介して、フローの第1のパケットの短待ち時間アプリケーション分類を提供する。一実装では、パケットプロセッサは、フローの第1のパケット内で識別される宛先インターネットプロトコル(IP)アドレスおよびドメインを利用して、類似フローが以前に受信され、同一アドレスおよびドメインに向けられたかどうかを決定し得る。該当しない場合、次いで、デフォルトルーティングおよびポリシルールが、フローに適用され得る。パケットプロセッサは、その後、フローを完全に分類し、関連付けデータベース内にアプリケーション、アドレス、およびドメインの組み合わせのための記録を開始信頼度レベルまたは確率とともに生成し得る。完全に分類されると、適切なルーティングおよびポリシルールが、適用され得る。同一宛先IPアドレスを伴う同一アプリケーションのためのその後のフローは、次いで、以前のフローと同一であるとして分類され、対応するルーティングおよびポリシルールが、適用され得る。パケットプロセッサは、ディープパケットインスペクションまたは類似方法を介して、フローの完全分類を継続し得、完全分類時、データベースエントリは、合致の成功または失敗で更新され得、それは、エントリが正しいことの信頼度レベルまたは確率を調節することを含む。したがって、アプリケーションベースの決定を第1のパケットに関して行うために、学習システムは、第1のパケットが特定のアプリケーションの一部であることの確率を計算する。これは、特に、遠隔施設において、VoIPトラフィックを分岐インターネット接続を介して転送する一方、全ての他のトラフィックを中央オフィスまたはデータセンタに向ける等、アプリケーションに基づいてルーティング決定が行われる場合において有用であり得る。
図1Cは、第1のパケットアプリケーション分類のための関連付けデータベース150の実施形態の例証である。テーブルとして示されるが、多くの実装では、関連付けデータベース150は、フラットファイル、関係データベース、パラメータ−値ペアの組、拡張マークアップ言語(XML)ファイル、または任意の他のタイプおよび形態のデータフォーマットであり得る。各エントリは、IPアドレス等のアドレス122を含み得る。アドレスは、いくつかの実装では、ポートを含み得る一方、他の実装では、ポートは、省略され得る。さらに他の実装では、ワイルドカード、ポート、またはポート範囲が、含まれ得る。例えば、いくつかの実装では、アプリケーションは、複数のポートまたは潜在的ポートの範囲に関連付けられ得、サーバ、クライアント、または中間デバイスは、ポートを使用のための範囲内から選択し得る。いくつかのそのような実装では、エントリは、ポートの範囲に関連付けられ得、ポートの範囲は、連続(例えば、1000〜1500)または非連続(例えば、1000と1500との間の偶数ポート、または1000、1100、1200等)であり得る。IPv4フォーマットで示されるが、アドレス122は、IPv6および/またはメディアアクセス制御(MAC)アドレスを含む任意のフォーマットであり得る。例えば、いくつかの実装では、アドレス122は、第2層MACアドレス、第3層IPアドレス、または第4層ポート、もしくはこれらまたは他の情報の任意の組み合わせを含み得る。
各エントリは、ドメイン106を含み得、ドメイン106は、1つ以上のアドレスに対応するDNS識別子を含み得る。トップレベルまたはルートドメインとして示されるが、多くの実装では、エントリは、拡張ドメイン(例えば、mail.example.com、ftp.example.com、app.example.com/office/web等)を含み得る。ドメインは、ASCIIまたは英数字であり得る。
いくつかの実装では、関連付けデータベース150は、エントリを識別するためのインデックス152を含み得る。例えば、いくつかの実装では、エントリのためのインデックス152は、アドレス122およびドメイン106の入力を使用したハッシュ計算の結果として計算され得る。これは、フローの第1のパケットを受信したときの迅速かつ効率的ルックアップを可能にし得る。他の実装では、アドレスまたはドメインが、インデックスとして使用され得る。例えば、データベース内のエントリは、宛先アドレスによってインデックスをつけられ、直接ルックアップを可能にし得る。
関連付けデータベース150内の各エントリは、対応するアプリケーション識別子124を有し得る。アプリケーション識別子124は、アプリケーション層サービス、プレゼンテーション層サービス、セッション層サービス、下位層管理(例えば、近隣探索、単純ネットワーク管理プロトコル等)を含む管理サービスを含む任意のタイプおよび形態のアプリケーションまたはサービスを識別し得る。いくつかの実装では、アプリケーション124は、種々または複数のレベルの粒度(例えば、IPv4/TCP/SMTP/電子メール、IPv6/TCP/UDP/RTP/VoIP等)において識別され得る。アプリケーション識別子は、高レベルにあり、電子メール、ビデオチャット、ストリーミングビデオ等のエンドユーザ機能性を識別し得るか、または、プロトコル(例えば、SMTP、HLS等)を識別するか、または、両方であり得る。アプリケーションは、ルーティングおよびQoSポリシまたは他の処理ポリシに対応し得る。例えば、ポリシデータベース(図示せず)は、メールアプリケーションに関連付けられたフローが、低優先順位を与えられ、圧縮され、暗号化されるべきであることを識別するエントリを含み得る一方、別のエントリは、VoIP通信が高優先順位または最高QoS設定を与えられるべきであることを識別し得る。いくつかの実装では、異なるポリシが、異なるドメインまたはアドレスを有する同一のアプリケーションに適用され得る。例えば、1つのそのような実装では、VoIPアプリケーション124は、企業内の通信のための「内部」VoIPアプリケーションと識別され、第1のレベルのサービスを与えられ得る一方、第2のVoIPアプリケーション124は、企業外の通信のための「外部」VoIPアプリケーションとて識別され、あるIP範囲との通信からブラックリスト化され得る。
関連付けデータベースは、いくつかの実装では、信頼度スコアまたは確率154を含み得る。信頼度スコア154は、特定のアドレス122およびドメイン106を有する第1のパケットが、データベース内のエントリ内の対応するアプリケーション124に属するとして分類されるべきである統計的尤度を表し得る。信頼度スコア154は、デフォルトレベル(例えば、50%、20%、80%、または任意の他のそのような値)から開始するように割り当てられ得、フローが分析されるにつれて、中間デバイスによって動的に調節され得る。例えば、1.2.3.4:80の宛先アドレスおよびexample.comのドメインに向けられるフローの第1のパケットは、潜在的に、HTTPまたはウェブブラウジングトラフィックであると識別され得、対応するポリシが、フローに適用され得る。中間デバイスは、ディープパケットインスペクションをパケットペイロードについて実施することを含むフローの監視を継続し得る。中間デバイスが、フロー内でさらなるウェブブラウジングトラフィック(例えば、HTTP GET要求等)を識別する場合、中間デバイスは、エントリのための信頼度スコア154を増加させ得る。逆に言えば、中間デバイスが非ウェブブラウジングトラフィックを識別する場合、中間デバイスは、エントリのための信頼度スコア154を減少させ得る。いくつかの実装では、信頼度スコアが、特定の閾値より小さい場合、対応するルーティングポリシは、第1のパケットから開始するフローに適用され得ず、代わりに、デフォルトルーティングポリシが、適用され得る。さらなる実装では、信頼度スコアが、特定の閾値(それは、同じ閾値であることも、第2のより低い閾値であることもある)より小さい場合、エントリは、データベースから除去され得るか、または、識別されたアプリケーションは、置換され得る(かつ、信頼度スコアは、潜在的に、高められる)。例えば、後に非ウェブブラウジングトラフィックを識別し(例えば、SSHトラフィックを識別する代わりに)、対応するスコアが、ある閾値、例えば、20まで低減させられる場合、いくつかの実装では、中間デバイスは、ウェブサーバアプリケーション識別子をSSHアプリケーション識別子と置き換え、スコアをデフォルト値(例えば、50)まで増加させ得る。このように、中間デバイスは、第1のパケットアプリケーション推定を動的に調節する一方、奇数パケットフローの場合、あるヒステリシスを提供し得る。いくつかの実装では、中間デバイスは、パケットフローがあるサイズまたは持続時間より大きい場合にのみ、信頼度スコアを調節し得る。これは、迅速に終了される正しくなくアドレス指定されたフローの場合、スコアを誤って調節することを防止し得る。
関連付けデータベース150が、成長し、信頼度スコア154が、増加させられるにつれて、分類は、より正確になり得る。故に、より大量のフローの分類は、正確度および効率を改良し得る。したがって、いくつかの実装では、関連付けデータベース150は、企業全体を通して他の中間デバイスと共有し、他の中間デバイスのそれらと集約され、大量のトラフィックデータのより高速の捕捉を可能にし得る。いくつかの実装では、関連付けデータベース150は、信頼されたパートナと企業外で共有されること、または、他の中間デバイスによるアクセスのためのクラウドサービス内にキャッシュされることさえもあり得る。さらに別の実装では、中間デバイスは、クライアントから受信されたDNS要求を使用して、キャッシュされた分類の正確度をさらに増加させ得る。
図2Aは、第1のパケットアプリケーション分類のためのコンピューティングデバイス100の実施形態のブロック図である。そのようなデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、ラック搭載コンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、家電、クラスタデバイスまたは家電、サーバクラウドまたはファーム、1つ以上の物理的機械によって実行される仮想機械、もしくは任意の他のタイプのコンピューティングデバイスを含み得る。図2Aに示されるように、コンピューティングデバイスは、1つ以上の中央処理ユニットまたはプロセッサ200、1つ以上のネットワークインターフェース202、1つ以上の入力/出力コントローラまたはデバイス204、RAMおよび内部または外部記憶デバイス等のシステムメモリを含み得る1つ以上のメモリユニット206を含み得る。コンピューティングデバイスは、インストールデバイス、ディスプレイデバイス、キーボード、マウス、タッチスクリーンデバイス、または他のそのようなデバイス等のポインティングデバイスを含む図示されない他のユニットも含み得る。メモリ206は、限定ではないが、オペレーティングシステム210および/またはソフトウェアを含み得る。
中央処理ユニット200は、メモリ206からフェッチされた命令に応答し、それを処理する任意の論理回路である。多くの実施形態では、中央処理ユニット200は、Intel Corporation(Mountain View,California)によって製造されたものInternational Business Machines(WhitePlains,New York)によって製造されたものまたはAdvanced Micro Devices(Sunnyvale,California)によって製造されたもの等のマイクロプロセッサユニットによって提供される。コンピューティングデバイスは、これらのプロセッサ、または限定ではないが、グラフィック処理ユニット(GPU)およびネットワーク処理ユニット(NPU)を含む本明細書に説明されるように動作することが可能な任意の他のプロセッサのいずれかに基づき得る。
時として、メインメモリユニットとも称されるメモリ206は、任意のタイプまたは変形の静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、強誘電性RAM(FRAM(登録商標))、NANDフラッシュ、NORフラッシュ、およびソリッドステートドライブ(SSD)等、データを記憶することが可能であり、任意の記憶場所がマイクロプロセッサ200によって直接アクセスされることを可能にする、1つ以上のメモリチップであり得る。メモリ206は、上で説明されるメモリチップまたは本明細書に説明されるように動作することが可能な任意の他の利用可能なメモリチップのいずれかに基づき得る。示される実施形態では、プロセッサ200は、システムバス208(下でより詳細に説明される)を介して、メインメモリ206と通信する。他の実施形態では、プロセッサは、メモリポートを介して、メインメモリ206と直接通信する。例えば、そのような実施形態では、メモリ206は、DRDRAMであり得る。他の実施形態では、プロセッサ200は、時としてバックサイドバスとも称される二次バスを介して、キャッシュメモリと直接通信し得る。他の実施形態では、メインプロセッサ200は、システムバス208を使用して、キャッシュメモリと通信する。キャッシュメモリは、典型的に、システムバスを介してアクセス可能なメモリより高速の応答時間を有し、例えば、SRAM、BSRAM、またはEDRAMによって提供される。
いくつかの実施形態では、プロセッサ200は、ローカルシステムバス208を介して、種々のI/Oデバイス204と通信する。種々のバスは、中央処理ユニット200を任意のI/Oデバイス、例えば、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusに接続するために使用され得る。I/Oデバイスがビデオディスプレイである実施形態に関して、プロセッサ200は、拡張グラフィックスポート(AGP)を使用して、ディスプレイと通信し得る。いくつかの実施形態では、プロセッサ200は、例えば、HYPERTRANSPORT、RAPIDIO、またはINFINIBAND通信技術を介して、I/Oデバイスと直接通信し得る。様々なI/Oデバイスが、コンピューティングデバイス100内に存在し得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、ダイヤル、タッチパッド、タッチスクリーン、および描画タブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、プロジェクタ、および昇華型プリンタを含む。I/Oデバイスは、図2Aに示されるように、I/Oコントローラ204によって制御され得る。I/Oコントローラは、キーボードおよびポインティングデバイス、例えば、マウスまたは光学ペン等の1つ以上のI/Oデバイスを制御し得る。さらに、I/Oデバイスは、コンピューティングデバイスのための記憶および/またはインストール媒体も提供し得る。さらに他の実施形態では、コンピューティングデバイスは、Twintech Industry,Inc.(Los Alamitos,California)によって製造されたデバイスのUSBフラッシュドライブライン等のハンドヘルドUSB記憶デバイスを受け取るためのUSB接続(図示せず)を提供し得る。
コンピューティングデバイスは、ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、フラッシュメモリドライブ、種々のフォーマットのテープドライブ、USBデバイス、ハードドライブ、ネットワークインターフェース、またはソフトウェアおよびプログラムをインストールするために好適な任意の他のデバイス等の任意の好適なインストールデバイス(図示せず)をサポートし得る。コンピューティングデバイスは、オペレーティングシステムおよび他の関連ソフトウェアを記憶するために、かつ本明細書に説明されるシステムおよび方法を実装するための(例えば、そのために構成および/または設計される)任意のプログラムまたはソフトウェア等のアプリケーションソフトウェアプログラムを記憶するために、1つ以上のハードディスクドライブもしくは独立ディスクの冗長アレイ等の記憶デバイスをさらに含み得る。随意に、インストールデバイスのいずれかは、記憶デバイスとしても使用され得る。加えて、オペレーティングシステムおよびソフトウェアは、ブート可能媒体から起動されることができる。
さらに、コンピューティングデバイスは、限定ではないが、標準的電話回線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET)、ブロードバンド接続(例えば、ISDN、Frame Relay、ATM、Gigabit Ethernet(登録商標)、Ethernet(登録商標)−over−SONET)、無線接続、もしくは上記のいずれかまたは全てのいくつかの組み合わせを含む種々の接続を通して、ネットワークとインターフェースをとるためのネットワークインターフェース202を含み得る。接続は、種々の通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、Ethernet(登録商標)、ARCNET、SONET、SDH、Fiber Distributed Data Interface(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、IEEE802.11ac、IEEE802.11ad、CDMA、GSM(登録商標)、WiMax、および直接非同期接続)を使用して、確立されることができる。一実施形態では、コンピューティングデバイスは、セキュアソケット層(SSL)またはトランスポート層セキュリティ(TLS)等の任意のタイプおよび/または形態のゲートウェイもしくはトンネルプロトコルを介して、他のコンピューティングデバイスと通信する。ネットワークインターフェース202は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信が可能であり、本明細書に説明される動作を実施する任意のタイプのネットワークとコンピューティングデバイスにインターフェースをとらせるために好適な任意の他のデバイスを含み得る。
いくつかの実施形態では、コンピューティングデバイスは、1つ以上のディスプレイデバイスを含むか、または、それに接続され得る。したがって、任意のI/Oデバイスおよび/またはI/Oコントローラ204は、任意のタイプおよび/または形態の好適なハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含み、コンピューティングデバイスによるディスプレイデバイスへの接続およびその使用をサポート、有効化、または提供し得る。例えば、コンピューティングデバイスは、任意のタイプおよび/または形態のビデオアダプタ、ビデオカード、ドライバ、および/またはライブラリを含み、ディスプレイデバイスとインターフェースをとること、それと通信すること、それに接続すること、または、別様にそれを使用することを行い得る。一実施形態では、ビデオアダプタは、複数のコネクタを含み、ディスプレイデバイスとインターフェースをとり得る。他の実施形態では、コンピューティングデバイスは、複数のビデオアダプタを含み得、各ビデオアダプタは、ディスプレイデバイスに接続される。いくつかの実施形態では、コンピューティングデバイスのオペレーティングシステム210の任意の部分は、複数のディスプレイを使用するために構成され得る。当業者は、コンピューティングデバイスが1つ以上のディスプレイデバイスを有するように構成され得る種々の方法および実施形態を認識し、理解するであろう。
さらなる実施形態では、I/Oデバイスは、システムバス208と、USBバス、Apple Desktopバス、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire800バス、Ethernet(登録商標)バス、AppleTalkバス、Gigabit Ethernet(登録商標)バス、Asynchronous Transfer Modeバス、FibreChannelバス、Serial Attachedスモールコンピュータシステムインターフェースバス、USB接続、またはHDMI(登録商標)バス等の外部通信バスとの間のブリッジであり得る。
図2Aに描写される種類のコンピューティングデバイスは、オペレーティングシステム210の制御下で動作し得、オペレーティングシステム210は、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する。クライアントデバイスまたはサーバは、MICROSOFT WINDOWS(登録商標)オペレーティングシステムのバージョンのいずれか、Unix(登録商標)およびLinux(登録商標)オペレーティングシステムの異なるリリース、MacintoshコンピュータのためのMAC OSの任意のバージョン、任意の内蔵オペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専有オペレーティングシステム、モバイルコンピューティングデバイスのための任意のオペレーティングシステム、またはコンピューティングデバイス上で起動され、本明細書に説明される動作を実施することが可能な任意の他のオペレーティングシステム等の任意のオペレーティングシステムを起動することができる。典型的オペレーティングシステムとして、限定ではないが、とりわけ、Google Inc.によって生産されたAndroid、Microsoft Corporation(Redmond,Wshington)によって生産されたWINDOWS(登録商標)7、8、または10、Apple Computer(Cupertino,California)によって生産されたMAC OSおよびiOS、Research In Motion(RIM)によって生産されたWebOS、International Business Machines(Armonk,New York)によって生産されたOS/2、および、Caldera Corp.(Salt Lake City,Utah)によって配布されている自由に利用可能なオペレーティングシステムであるLinux(登録商標)、もしくは任意のタイプおよび/または形態のUnix(登録商標)オペレーティングシステムが挙げられる。
上で議論されるように、コンピューティングシステムは、ルータ、ゲートウェイ、スイッチ、モデム、負荷バランサ、ファイアウォール、NATデバイス、WANアクセラレータ、セキュリティ家電、またはパケットを受信、処理、および伝送することが可能な任意の他のタイプおよび/または形態のコンピューティング、電気通信、もしくはメディアデバイス等の任意のタイプおよび形態の中間デバイスであることができる。コンピュータシステムは、本明細書に説明される動作を実施するために十分なプロセッサ電力およびメモリ容量を有する。単一デバイスとして示されるが、多くの実装では、中間デバイス100は、クラスタ、クラウド、ファーム、グリッド、メッシュ、または類似展開シナリオ内に展開され、スケーラビリティおよび信頼度を提供し得る。
いくつかの実施形態では、コンピューティングデバイスは、デバイスと適合する異なるプロセッサ、オペレーティングシステム、および入力デバイスを有し得る。例えば、一実施形態では、コンピューティングデバイスは、スマートフォン、モバイルデバイス、タブレット、または携帯情報端末である。さらに他の実施形態では、コンピューティングデバイスは、Androidベースのモバイルデバイス、Applele Computer(Cupertino,California)によって製造されたiPhone(登録商標)スマートフォン、またはResearch In Motion Limitedによって製造されたデバイス等のBlackberryもしくはWebOSベースのハンドヘルドデバイスまたはスマートフォンである。さらに、コンピューティングデバイスは、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ハンドヘルドコンピュータ、携帯電話、任意の他のコンピュータ、もしくは通信が可能であり、本明細書に説明される動作を実施するために十分なプロセッサ電力およびメモリ容量を有する他の形態のコンピューティングまたは電気通信デバイスであることができる。他のソフトウェアは、ウェブブラウザ、構成アプリケーション、テキストエディタまたはテンプレートエディタ、仮想機械サーバ、ハイパーバイザ、認証またはログインエージェント、監視システム、もしくは他のそのような特徴を含むコンピューティングデバイスによって実行され得る。
中間デバイス100は、1つ以上のパケットプロセッサ220を含み得る。ネットワークインターフェース202の一部として示されるが、いくつかの実装では、パケットプロセッサ220は、プロセッサ200によって実行され得、メモリ206内に常駐し得る。パケットプロセッサ220は、ASIC回路等のハードウェアを備え得るオペレーティングシステム210のネットワークスタック内にあるか、または、ネットワークインターフェース上のコプロセッサによって実行されるドライバ等のソフトウェアを備え得るか、または、ハードウェアおよびソフトウェアの任意の組み合わせを備え得る。パケットプロセッサ220は、フローのパケットを受信、識別、分類、および伝送するように構成され得る。パケットプロセッサ220は、上で議論されるように、関連付けデータベース150を維持し得、バッファ、多重化、プーリング、暗号化、圧縮、並び替え、事前確認応答、再伝送、QoSプロトコルの適用、または任意の他のタイプおよび形態の処理等、ポリシエンジン230および/またはポリシデータベース235に従って、追加の機能性を実施し得る。上で議論されるように、パケットプロセッサ220は、通信フローの第1のパケットから抽出された、またはその中で識別されたアドレスおよびドメインの組み合わせに関して識別されたアプリケーションに従って、ルーティングポリシを選択し、適用し得る。
ポリシエンジン230は、パケットプロセッサ220の一部であり得るか、または、示されるように、パケットプロセッサ220と別個であり得る。いくつかの実装では、ポリシエンジン230は、ポリシデータベース235内に記憶されたルーティングポリシを構成および/または適用するためのアプリケーション、サービス、サーバ、デーモン、ルーチン、または他の実行可能論理を備え得る。主にルーティングポリシと称されるが、多くの実装では、ポリシは、ルーティング命令以外の追加の命令またはパラメータ(例えば、暗号化プロトコル、圧縮設定、バッファ設定、QoS要件等)を含み得、いくつかの実装では、ルーティング命令を含まないこともある。例えば、時として、ルーティングポリシとも称されるが、ポリシは、単に、QoS要件を含み得、ルーティングは、標準的ネットワークルーティングプロトコルに任され得る。この意味において、ルーティングは、ネットワークを通した特定の経路、またはネットワークを通した任意の適切な経路を構成するための命令、またはこれらの任意の組み合わせを指し得る。ポリシデータベース235は、関係データベース、フラットファイル、パラメータ−値ペアセット、XMLファイル、または他のデータ構造を含む任意のタイプおよび形態のデータベースを備え得、ルーティングまたは構成命令および関連付けられたアプリケーションを備え得る。いくつかの実装では、ポリシデータベース235は、アプリケーションデータベース150の一部であり得る。したがって、ポリシデータベース235内の各エントリは、対応するルーティングまたは構成命令も含み得る。いくつかの実装では、アプリケーションは、そのような組み合わせられた関連付け/ポリシデータベース内で明示的に識別されないこともある。
図2Bは、クライアントデバイス102および/またはサーバ104等のネットワーク通信のためのコンピューティングデバイスの実施形態のブロック図である。クライアントまたはサーバデバイスは、1つ以上のプロセッサ200、ネットワークインターフェース202、I/Oコントローラ204、メモリデバイス206、およびオペレーティングシステム210を含む上で議論されるコンポーネントの多くを含み得る。加えて、クライアントまたはサーバデバイスは、1つ以上のアプリケーション208を備え得る。アプリケーション208は、種々の機能を実施するために、および/または、ローカルもしくは遠隔のいずれかで他のアプリケーションと通信するために、任意のタイプおよび形態のアプリケーション、サービス、サーバ、デーモン、またはルーチンを備え得る。アプリケーション208の各々は、実行可能ファイル、ライブラリ、データファイル、パラメータまたは選好ファイル、レジストリキー、構成ファイル、グラフィック、オーディオファイル、ビデオファイル、辞書、テンプレート、または任意の他のタイプおよび形態のデータを含む複数のファイルを備え得る。アプリケーション208は、複数のバージョンにおいて存在し得、バージョン番号、名前、または他のインジケータによって識別され得る。
図3は、第1のパケットアプリケーション分類のための方法の実施形態のフローチャートである。ステップ300では、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間に展開される中間デバイスが、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の通信フローの第1のパケットを受信し得る。多くの実装では、第1のパケットは、TCP SYNパケットまたは類似接続確立パケット等の同期パケットを備え得る。他の実装では、第1のパケットは、要求、トリガ、または任意の他のタイプおよび形態のパケットを含み得る。パケットは、アプリケーション層ペイロードを有することも、有しないこともある。
ステップ302では、中間デバイスのパケットプロセッサが、ドメインおよび宛先アドレスの識別子を第1のパケットから識別または抽出し得る。宛先アドレスは、IPv4またはIPv6アドレス等のネットワーク層アドレスを含み得る。いくつかの実装では、宛先アドレスは、宛先ポート番号等のトランスポート層アドレスを含み得る。いくつかの実装では、宛先アドレスは、MACアドレス等のデータ層アドレスを含み得る。いくつかの実装では、プロトコル番号または任意の他のそのような識別子等のヘッダの任意の他の部分が、利用され得る。ドメインは、英数字、ASCII、Unicode、またはPunycodeを含む任意の適切なフォーマットにおける名前によって識別され得る。ドメイン名は、DNS要求、パケットヘッダ、またはパケットの任意の他の部分から抽出され得る。いくつかの実装では、DNS要求および応答は、別個に通信され得(例えば、ステップ300の前に)、受信されたドメイン名は、宛先IPアドレス、ポート、および/またはプロトコルに関連付けられ得る。他の実装では、DNS要求および応答は、ステップ300における第1のパケットの受信に応答して、伝送および受信され得る。ドメインは、第1のパケットの宛先IPアドレス、ポート、および/またはプロトコルをDNS応答内で受信されたドメインに対応するIPアドレス、ポート、および/またはプロトコルに合致させることによって識別され得る。
ステップ304では、パケットプロセッサが、抽出されたアドレスおよびドメインに関して、関連付けデータベース内にアプリケーションとの関連付けが存在するかどうかを決定し得る。関連付けが存在するかどうかを決定することは、データベース内のアドレスまたはドメインをルックアップすることと、対応するエントリが存在するかどうかを決定することとを含み得る。いくつかの実装では、関連付けが存在するかどうかを決定することは、アドレス、ドメイン、ポート、および/またはプロトコル、もしくはこれらの任意の組み合わせのハッシュを計算すること、またはハッシュアルゴリズムをアドレス、ドメイン、ポート、および/またはプロトコル、もしくはこれらの任意の組み合わせの入力に適用することと、ハッシュ結果に対応するインデックスにおけるエントリに関してデータベースを検索することとを含み得る。
エントリが、存在しない場合、ステップ306では、パケットプロセッサが、デフォルトルーティングポリシを通信フローに適用し得る。デフォルトルーティングポリシを適用することは、デフォルトルーティング命令、デフォルト負荷平衡プロシージャ等を適用することを含み得る。パケットは、デフォルトルーティングポリシに従って、宛先に転送され得る。
ステップ308では、いくつかの実装において、中間体が、フローの追加のパケットを受信し得る。追加のパケットは、(例えば、第2のデバイスから第1のデバイスへの他の方向における)第1のパケットへの応答を備え得るか、または第1のデバイスから第2のデバイスへの追加のパケットを備え得る。ステップ310では、パケットプロセッサが、アプリケーション層ヘッダおよび/またはペイロードもしくは他の層におけるヘッダまたはペイロードを検査し、対応するアプリケーションを識別することを含むディープパケットインスペクションを実施し、フローを分類し得る。いくつかの実装では、パケットプロセッサは、デフォルトポリシに従って、追加のパケットを転送し、ディープパケットインスペクションを追加のパケットのコピーに対して実施し得る。これは、追加のパケットを伝送することにおける遅延を回避し得る。類似実装では、第1のパケットは、分析を可能にするための十分な情報を有し得る。パケットプロセッサは、ステップ306において、第1のパケットを転送し、次いで、ステップ310において、ディープパケットインスペクションを第1のパケットのコピーに実施し、ステップ308をスキップし得る。これも同様に、通信フローを確立すること、または第1のパケットを伝送することにおける遅延を回避し得る。
ステップ312では、パケットプロセッサは、関連付けデータベースに識別されたアプリケーション、アドレス、およびドメインに関するエントリを追加し得る。いくつかの実装では、エントリを追加することは、アドレスおよびドメインのハッシュを計算することと、データベースの対応するインデックスにおけるエントリを生成することとを含み得る。パケットプロセッサは、関連付けのための信頼度スコアをデフォルト値に設定し得る。
いくつかの実装では、ルーティングポリシが、ポリシデータベース内の識別されたアプリケーションに関して存在する場合、パケットプロセッサは、対応するポリシ命令をフローの残りに適用し、デフォルトポリシを置換し得る。ポリシを更新することが通信フローを中断させ得(例えば、他の中間デバイスに接続をリセットさせることによって)、他の実装では、パケットプロセッサは、デフォルトポリシをフローに適用し続け得る。
関連付けが、ステップ304において、アドレスおよびドメインの組み合わせに関して存在する場合、ステップ306では、パケットプロセッサが、関連付けられた信頼度スコアが閾値を超えるかどうかを決定し得る。スコアが、閾値を超えない場合、対応するアプリケーション分類は、正しくないこともある。故に、パケットプロセッサは、上で議論されるステップ306と同様に、ステップ306’において、デフォルトルーティングポリシをフローに適用し得る。パケットプロセッサは、ステップ308および310に関連して上で議論されるように、ステップ308’において、フローの追加のパケットを受信し、ステップ310’において、パケットを分類し得る。
信頼度スコアが、ステップ306において、閾値より大きい場合、ステップ314では、パケットプロセッサまたはポリシエンジンが、アドレスおよびドメインに対応するエントリ内で識別されたアプリケーションに関連付けられたルーティングポリシを読み出し得る。上で議論されるように、ルーティングポリシは、ネットワーク経路仕様またはパラメータ、パケット処理パラメータ、もしくは対応するアプリケーションのためにパケットを処理および転送することにおいて利用されるべき任意の他のそのような命令または構成を含み得る。ステップ316では、パケットプロセッサが、必要な場合、パケットを修正すること、パケット待ち行列をリセットすること、または任意の他のそのような機能を実施することを含むポリシを適用し得る。
上で議論されるように、ステップ308’’では、中間体が、ステップ308および310に関連して上で議論されるように、フローの追加のパケットを受信し得、ステップ310’’では、ディープパケットインスペクションを実施し得る。上でも議論されるように、いくつかの実装では、パケットプロセッサは、フローを分類するための十分な情報を含む場合、ステップ310’’において、パケットインスペクションを第1のパケットのコピーに対して実施し得る。
ステップ318では、パケットプロセッサは、ステップ310’または310’’におけるフローの分類を関連付けデータベース内の分類と比較し得る。データベースに示されるアプリケーションとディープパケットインスペクションを介して識別されたアプリケーションとが同一である場合、ステップ320では、パケットプロセッサが、関連付けのための信頼度スコアを増加させ得る。信頼度スコアは、所定の量だけ、またはスケーリング公式(例えば、例えば、100%に漸近的に近づく)に従って、増加させられ得る。逆に言えば、データベースに示されるアプリケーションとディープパケットインスペクションを介して識別されたアプリケーションとが同一でない場合、信頼度スコアは、ステップ322において、減少させられ得る。信頼度スコアは、所定の量だけ、またはスケーリング公式に従って、減少させられ得る。いくつかの実装では、スコアを減少させる前、パケットプロセッサは、フローが所定のサイズまたは持続時間に到達したかどうかを決定し、フローがそのようなサイズまたは持続時間に到達した場合にのみ、スコアを減少させ得る。上で議論されるように、それは、迅速に終了される誤った伝送の場合にスコアを減少させることを回避し得る。
ステップ324では、パケットプロセッサが、減少させられたスコアが第2の閾値より小さいかどうかを決定し得る。第2の閾値は、いくつかの実装では、ステップ306において使用されている閾値より低くあり得る。スコアが、第2の閾値より小さい場合、関連付けは、概して、正しくないと推定され得る。故に、該当する場合、ステップ326では、パケットプロセッサが、関連付けデータベース内のエントリ内で識別されたアプリケーションをステップ310’または310’’において識別された新しいアプリケーションの識別子と置き換え得る。パケットプロセッサは、いくつかの実装では、スコアをデフォルト値にリセットすることもある。スコアが、まだ第2の閾値より小さくない場合、処理は、継続し得る。
いくつかの実装では、フローは、ステップ324またはステップ326後、デフォルトルーティングポリシまたは正しくなく適用されたルーティングポリシでの処理を継続し、接続を不必要にリセットすることを回避し得る。他の実装では、ステップ314’において、パケットプロセッサが、ステップ314において上で議論されるように、新しく識別されたアプリケーションのためのルーティングポリシをポリシデータベースから読み出し得る。同様に、ステップ316’では、パケットプロセッサは、新しく読み出されたルーティングポリシを適用し得る。
故に、方法は、第1のパケットから抽出された特性に基づいて、パケットフローを迅速に分類することを提供し、関連付けは、複数のフローにわたる関連付けの正確度に基づいて取得される信頼度スコアに基づいて、動的に調節される。上で議論されるように、多くの実装では、関連付けデータベースは、多くのデバイス間で共有および/または集約され、より多くの取得されるデータおよび分類をもたらし、正確なアドレス−ドメイン−アプリケーション関連付けをより高速で達成し得る。
本開示は、1人以上の「ユーザ」を参照し得るが、そのような「ユーザ」は、例えば、典型的に、マルチユーザ多重入出力(MU−MIMO)環境のコンテキストにおいて使用される用語「ユーザ」および「マルチユーザ」と一致するユーザ関連デバイスまたはステーション(STA)も指し得る。
上で説明される通信システムの実施例は、802.11規格に従って動作するデバイスおよびAPを含み得るが、説明されるシステムおよび方法の実施形態は、他の規格に従って動作し、デバイスおよびAPとして構成されるデバイス以外の無線通信デバイスを使用することもできることを理解されたい。例えば、セルラーネットワーク、衛星通信、車両通信ネットワーク、および他の非802.11無線ネットワークに関連付けられた複数の−ユニット通信インターフェースも、本明細書に説明されるシステムおよび方法の範囲から逸脱することなく、本明細書に説明されるシステムおよび方法を利用して、改良された全体的容量および/またはリンク品質を達成することができる。
本開示のある一節は、あるものを別のものまたは他のものから識別または区別する目的のために、デバイス、動作モード、伝送チェーン、アンテナ等に関連して、「第1」および「第2」等の用語を参照し得ることに留意されたい。これらの用語は、単に、エンティティ(例えば、第1のデバイスおよび第2のデバイス)を一時的に、または順に従って、関連させることを意図するものではないが、ある場合、これらのエンティティは、そのような関係を含み得る。これらの用語は、システムまたは環境内で動作し得る可能なエンティティ(例えば、デバイス)の数を限定するものではない。
上で説明されるシステムは、それらのコンポーネントの任意のものうちの複数のものまたは各々を提供し得、これらコンポーネントは、独立型機械上、またはいくつかの実施形態では、分散型システム内の複数の機械上のいずれかに提供され得ることを理解されたい。加えて、上で説明されるシステムおよび方法は、1つ以上の製造品上または内に具現化される、1つ以上のコンピュータ読み取り可能なプログラムまたは実行可能命令として提供され得る。製造品は、ハードディスク、CD−ROM、フラッシュメモリカード、PROM、RAM、ROM、または磁気テープであり得る。一般に、コンピュータ読み取り可能なプログラムは、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語、またはJAVA(登録商標)等の任意のバイトコード言語で実装され得る。ソフトウェアプログラムまたは実行可能命令は、1つ以上の製造品上もしくは内に、オブジェクトコードとして記憶され得る。
方法およびシステムの前述に記載の説明は、当業者が、現在その最良形態であると見なされるものを作製および使用することを可能にするが、当業者は、本明細書の具体的実施形態、方法、および実施例の変形例、組み合わせ等の存在を理解および認識するであろう。方法およびシステムは、したがって、上で説明される実施形態、方法、および実施例によってではなく、本開示の範囲および精神内の全ての実施形態ならびに方法によって限定されるべきである。
上で説明されるシステムは、それらのコンポーネントの任意のものうちの複数のものまたは各々を提供し得、これらのコンポーネントは、独立型機械上、またはいくつかの実施形態では、分散型システム内の複数の機械上のいずれかに提供され得ることを理解されたい。上で説明されるシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するように、プログラミングおよび/または工学技法を使用して、方法、装置、または製造品として実装され得る。加えて、上で説明されるシステムおよび方法は、1つ以上の製造品の上もしくは中で具現化される、1つ以上のコンピュータ読み取り可能なプログラムとして提供され得る。本明細書で使用されるような用語「製造品」は、1つ以上のコンピュータ読み取り可能なデバイス、ファームウェア、プログラマブル論理、メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、SRAM等)、ハードウェア(例えば、集積回路チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、電子デバイス、コンピュータ読み取り可能な不揮発性記憶ユニット(例えば、CD−ROM、ハードディスクドライブ等)からアクセス可能であり、それに組み込まれるコードまたは論理を包含することを意図している。製造品は、ファイルサーバからアクセス可能であり得、ネットワーク伝送ライン、無線伝送媒体、空間を通して伝搬する信号、電波、赤外線信号等を介したコンピュータ読み取り可能なプログラムへのアクセスを提供する。製造品は、フラッシュメモリカードまたは磁気テープであり得る。製造品は、ハードウェア論理、およびプロセッサによって実行されるコンピュータ読み取り可能な媒体に組み込まれるソフトウェアまたはプログラマブルコードを含む。一般に、コンピュータ読み取り可能なプログラムは、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語で、またはJAVA(登録商標)等の任意のバイトコード言語で、実装され得る。ソフトウェアプログラムは、オブジェクトコードとして、1つ以上の製造品の上もしくは中に記憶され得る。
方法およびシステムの種々の実施形態が説明されているが、これらの実施形態は、例証的であり、説明される方法またはシステムの範囲をいかようにも限定しない。当業者は、説明される方法およびシステムの最も広い範囲から逸脱することなく、説明される方法およびシステムの形態ならびに詳細に変更を生じさせることができる。したがって、本明細書に説明される方法およびシステムの範囲は、例証的実施形態のうちのいずれかによって限定されるべきではなく、付随する請求項およびそれらの均等物に従って定義されるべきである。

Claims (21)

  1. パケットフローを処理する方法であって、前記方法は、
    パケットプロセッサによって、第1のドメインに関連付けられた第1の宛先アドレスへの第1のフローの第1のパケットを受信することと、
    前記パケットプロセッサによって、第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の記憶された関連付けを識別することと、
    前記パケットプロセッサによって、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第1のアプリケーションに対応する第1のルーティングポリシを複数のルーティングポリシから選択することと、
    前記パケットプロセッサによって、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第1のルーティングポリシに従って、前記第1のフローの前記第1のパケットを処理することと
    を含む、方法。
  2. その後、前記第1のフローを前記第1のアプリケーションに対応するとして分類することと、
    前記第1のフローを前記第1のアプリケーションに対応するとして分類することに応答して、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアを増加させることと
    をさらに含む、請求項1に記載の方法。
  3. その後、前記第1のフローを前記第1のアプリケーションと異なる第2のアプリケーションに対応するとして分類することと、
    前記第2のアプリケーションに対応する第2のルーティングポリシに従って、前記第1のフローを処理することと
    をさらに含む、請求項1に記載の方法。
  4. 前記第1のフローを前記第2のアプリケーションに対応するとして分類することに応答して、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアを減少させることをさらに含む、請求項3に記載の方法。
  5. 前記第1のルーティングポリシを選択することは、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアが第1の閾値を超えることを決定することをさらに含む、請求項1に記載の方法。
  6. 前記第1のフローの前記第1のパケットの受信に先立って、
    前記パケットプロセッサによって、前記第1のドメインに関連付けられた前記第1の宛先アドレスへのそれ以前のフローの第1のパケットを受信することと、
    前記パケットプロセッサによって、前記第1の宛先アドレスおよび前記第1のドメインに関して関連付けがアプリケーションデータベース内に存在しないことを決定することと、
    前記パケットプロセッサによって、前記第1の宛先アドレスおよび前記第1のドメインに関して関連付けがアプリケーションデータベース内に存在しないことの決定に応答して、デフォルトルーティングポリシに従って、前記それ以前のフローの前記第1のパケットを処理することと
    をさらに含む、請求項1に記載の方法。
  7. 前記第1のフローの前記第1のパケットの受信に先立って、前記デフォルトルーティングポリシに従って、前記それ以前のフローの前記第1のパケットを処理した後、
    前記パケットプロセッサによって、前記それ以前のフローを前記デフォルトルーティングポリシと異なる前記第1のルーティングポリシに関連付けられた前記第1のアプリケーションに対応するとして分類することと、
    前記パケットプロセッサによって、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けを記憶し、前記関連付けに関する第1の信頼度スコアを記憶することと
    をさらに含む、請求項6に記載の方法。
  8. 前記パケットプロセッサによって、前記第1のドメインに関連付けられた第2の宛先アドレスへの第2のフローの第1のパケットを受信することと、
    前記パケットプロセッサによって、第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の記憶された関連付けを識別することと、
    前記パケットプロセッサによって、前記第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第2のアプリケーションに対応する第2のルーティングポリシを前記複数のルーティングポリシから選択することと、
    前記パケットプロセッサによって、前記第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第2のルーティングポリシに従って、前記第2のフローの前記第1のパケットを処理することと
    をさらに含む、請求項1に記載の方法。
  9. 前記第1のパケットは、宛先ポートおよびプロトコルの識別を含み、前記記憶された関連付けを識別することは、前記第1のアプリケーション、前記第1の宛先アドレス、前記第1のドメイン、前記宛先ポート、および前記プロトコル間の前記記憶された関連付けを識別することをさらに含む、請求項1に記載の方法。
  10. アプリケーション−アドレス−ドメイン関連付けのデータベースを維持する方法であって、前記方法は、
    デバイスのパケットプロセッサによって、第1の宛先アドレスおよび第1のドメインを識別する第1のパケットの受信に応答して、第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の記憶された関連付けを識別することと、
    前記パケットプロセッサによって、アプリケーション識別子を前記第1のパケットから抽出することと、
    前記パケットプロセッサによって、前記抽出されたアプリケーション識別子に基づいて、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する信頼度スコアを調節することと
    を含む、方法。
  11. 前記信頼度スコアを調節することは、前記パケットプロセッサによって、前記第1のアプリケーションに対応する前記抽出されたアプリケーション識別子に応答して、前記信頼度スコアを増加させることをさらに含む、請求項10に記載の方法。
  12. 前記信頼度スコアを調節することは、前記パケットプロセッサによって、前記第1のアプリケーションと異なる第2のアプリケーションに対応する前記抽出されたアプリケーション識別子に応答して、前記信頼度スコアを減少させることをさらに含む、請求項10に記載の方法。
  13. 前記パケットプロセッサによって、前記第1のドメインに関連付けられた前記第1の宛先アドレスへのその後のフローの第1のパケットを受信することと、
    前記パケットプロセッサによって、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する前記信頼度スコアが閾値より小さいことを決定することと、
    前記パケットプロセッサによって、前記決定に応答して、デフォルトルーティングポリシに従って、前記その後のフローの前記第1のパケットを処理することと
    をさらに含む、請求項10に記載の方法。
  14. パケットフローを処理するためのシステムであって、前記システムは、
    第1のデバイスと、第1の宛先アドレスにあり、第1のドメインに関連付けられた第2のデバイスとの間の中間体として展開されているパケットプロセッサと、
    アプリケーション、宛先アドレス、およびドメイン間の関連付けのデータベースと、前記関連付けの各々に関する信頼度スコアとを記憶している記憶ユニットと
    を備え、
    前記パケットプロセッサは、
    前記第1のデバイスから、前記第1のドメインに関連付けられた前記第1の宛先アドレスにおける前記第2のデバイスへの第1のフローの第1のパケットを受信することと、
    前記データベースにおいて、第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の記憶された関連付けを識別することと、
    前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第1のアプリケーションに対応する第1のルーティングポリシを複数のルーティングポリシから選択することと、
    前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第1のルーティングポリシに従って、前記第1のフローの前記第1のパケットを処理することと
    を行うように構成されている、システム。
  15. 前記パケットプロセッサは、
    その後、前記第1のフローを前記第1のアプリケーションに対応するとして分類することと、
    前記第1のフローを前記第1のアプリケーションに対応するとして分類することに応答して、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアを増加させることと
    を行うようにさらに構成されている、請求項14に記載のシステム。
  16. 前記パケットプロセッサは、
    その後、前記第1のフローを前記第1のアプリケーションと異なる第2のアプリケーションに対応するとして分類することと、
    前記第2のアプリケーションに対応する第2のルーティングポリシに従って、前記第1のフローを処理することと
    を行うようにさらに構成されている、請求項14に記載のシステム。
  17. 前記パケットプロセッサは、
    前記第1のフローを前記第2のアプリケーションに対応するとして分類することに応答して、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアを減少させるようにさらに構成されている、請求項16に記載のシステム。
  18. 前記パケットプロセッサは、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けに関する第1の信頼度スコアが第1の閾値を超えることを決定するようにさらに構成され、
    前記第1のルーティングポリシを選択することは、前記決定に応答して実施される、請求項14に記載のシステム。
  19. 前記パケットプロセッサは、
    前記第1のフローの前記第1のパケットの受信に先立って、
    前記第1のドメインに関連付けられた前記第1の宛先アドレスへのそれ以前のフローの第1のパケットを受信することと、
    前記第1の宛先アドレスおよび前記第1のドメインに関して関連付けがアプリケーションデータベース内に存在しないことを決定することと、
    前記第1の宛先アドレスおよび前記第1のドメインに関して関連付けが前記アプリケーションデータベース内に存在しないことの決定に応答して、デフォルトルーティングポリシに従って、前記それ以前のフローの前記第1のパケットを処理すること
    を行うようにさらに構成されている、請求項14に記載のシステム。
  20. 前記パケットプロセッサは、
    前記第1のフローの前記第1のパケットの受信に先立って、前記デフォルトルーティングポリシに従って、前記それ以前のフローの前記第1のパケットを処理した後、
    前記それ以前のフローを前記デフォルトルーティングポリシと異なる前記第1のルーティングポリシに関連付けられた前記第1のアプリケーションに対応するとして分類することと、
    前記データベースにおいて、前記第1のアプリケーション、前記第1の宛先アドレス、および前記第1のドメイン間の前記関連付けと、前記関連付けに関する第1の信頼度スコアとを記憶することと
    を行うようにさらに構成されている、請求項19に記載のシステム。
  21. 前記パケットプロセッサは、
    前記第1のドメインに関連付けられた第2の宛先アドレスへの第2のフローの第1のパケットを受信することと、
    第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の記憶された関連付けを識別することと、
    前記第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記第2のアプリケーションに対応する第2のルーティングポリシを前記複数のルーティングポリシから選択することと、
    前記第2のアプリケーション、前記第2の宛先アドレス、および前記第1のドメイン間の前記記憶された関連付けの前記識別に応答して、前記選択された第2のルーティングポリシに従って、前記第2のフローの前記第1のパケットを処理することと
    を行うようにさらに構成されている、請求項14に記載のシステム。
JP2020521996A 2017-10-23 2018-10-09 第1のパケットアプリケーション分類のためのシステムおよび方法 Active JP7026219B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/790,410 2017-10-23
US15/790,410 US10498658B2 (en) 2017-10-23 2017-10-23 Systems and methods for first packet application classification
PCT/US2018/054997 WO2019083720A1 (en) 2017-10-23 2018-10-09 SYSTEMS AND METHODS FOR CLASSIFYING APPLICATIONS BY FIRST PACKETS

Publications (2)

Publication Number Publication Date
JP2021500802A true JP2021500802A (ja) 2021-01-07
JP7026219B2 JP7026219B2 (ja) 2022-02-25

Family

ID=64017462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020521996A Active JP7026219B2 (ja) 2017-10-23 2018-10-09 第1のパケットアプリケーション分類のためのシステムおよび方法

Country Status (6)

Country Link
US (2) US10498658B2 (ja)
EP (1) EP3701696B1 (ja)
JP (1) JP7026219B2 (ja)
AU (1) AU2018354025B2 (ja)
CA (1) CA3079350C (ja)
WO (1) WO2019083720A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10574678B2 (en) 2016-12-13 2020-02-25 Forescout Technologies, Inc. Name translation monitoring
US20190215306A1 (en) * 2018-01-11 2019-07-11 Nicira, Inc. Rule processing and enforcement for interleaved layer 4, layer 7 and verb based rulesets
US11431677B2 (en) * 2018-01-11 2022-08-30 Nicira, Inc. Mechanisms for layer 7 context accumulation for enforcing layer 4, layer 7 and verb-based rules
US10944650B2 (en) * 2018-03-29 2021-03-09 Fortinet, Inc. Programmable, policy-based efficient wireless sniffing networks in WIPS (wireless intrusion prevention systems)
US10834214B2 (en) 2018-09-04 2020-11-10 At&T Intellectual Property I, L.P. Separating intended and non-intended browsing traffic in browsing history
TWI729320B (zh) * 2018-11-01 2021-06-01 財團法人資訊工業策進會 可疑封包偵測裝置及其可疑封包偵測方法
US11431829B2 (en) 2019-03-06 2022-08-30 Parsons Corporation Multi-tiered packet processing
US11272368B2 (en) 2019-03-29 2022-03-08 Citrix Systems, Inc. Controlling access to protected resource using a heat map
CA3133976A1 (en) 2019-03-29 2020-10-08 Citrix Systems, Inc. Techniques involving a security heat map
CN111414208B (zh) * 2020-03-13 2023-08-01 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备
CN111600849B (zh) * 2020-04-23 2022-07-12 新华三信息安全技术有限公司 一种报文处理方法、装置、设备及机器可读存储介质
US11349932B2 (en) 2020-06-30 2022-05-31 Cisco Technology, Inc. Policy-based connection provisioning using domain name system (DNS) requests
US20220303227A1 (en) * 2021-03-17 2022-09-22 At&T Intellectual Property I, L.P. Facilitating identification of background browsing traffic in browsing history data in advanced networks
US11601395B1 (en) * 2021-12-22 2023-03-07 Uab 360 It Updating parameters in a mesh network
US11805100B2 (en) * 2021-12-29 2023-10-31 Uab 360 It Access control in a mesh network
US20230254225A1 (en) * 2022-02-06 2023-08-10 Arista Networks, Inc. Generating hybrid network activity records

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013146885A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
JP2016144030A (ja) * 2015-02-02 2016-08-08 日本電信電話株式会社 トラヒック振り分け装置、その方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8170021B2 (en) * 2006-01-06 2012-05-01 Microsoft Corporation Selectively enabled quality of service policy
US8311956B2 (en) * 2009-08-11 2012-11-13 At&T Intellectual Property I, L.P. Scalable traffic classifier and classifier training system
FR2957738B1 (fr) 2010-03-17 2012-04-20 Thales Sa Procede d'identification d'un protocole a l'origine d'un flux de donnees
US8990380B2 (en) * 2010-08-12 2015-03-24 Citrix Systems, Inc. Systems and methods for quality of service of ICA published applications
US9130864B2 (en) * 2011-06-27 2015-09-08 Citrix Systems, Inc. Prioritizing classes of network traffic to provide a predetermined quality of service
US8813236B1 (en) * 2013-01-07 2014-08-19 Narus, Inc. Detecting malicious endpoints using network connectivity and flow information
US10257082B2 (en) * 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013146885A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
JP2016144030A (ja) * 2015-02-02 2016-08-08 日本電信電話株式会社 トラヒック振り分け装置、その方法及びプログラム

Also Published As

Publication number Publication date
EP3701696B1 (en) 2022-11-30
US20190124010A1 (en) 2019-04-25
CA3079350C (en) 2022-11-15
CA3079350A1 (en) 2019-05-02
AU2018354025B2 (en) 2021-08-12
US11095562B2 (en) 2021-08-17
EP3701696A1 (en) 2020-09-02
US20200099622A1 (en) 2020-03-26
JP7026219B2 (ja) 2022-02-25
AU2018354025A1 (en) 2020-04-16
US10498658B2 (en) 2019-12-03
WO2019083720A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
JP7026219B2 (ja) 第1のパケットアプリケーション分類のためのシステムおよび方法
US11729093B2 (en) Mobile accelerator
US10951495B2 (en) Application signature generation and distribution
US11140124B2 (en) Utilizing service tagging for encrypted flow classification
US20150245409A1 (en) Carrier aggregation over lte and wifi
US20160323185A1 (en) Data flow segment optimized for hot flows
US9906452B1 (en) Assisting application classification using predicted subscriber behavior
US11457095B1 (en) Stateless communication using a stateful protocol
EP3167575B1 (en) Delayed proxy action
US9515864B2 (en) Differentiated service behavior based on differentiated services code point (DSCP) bits
US11582158B2 (en) System and methods to filter out noisy application signatures to improve precision of first packet classification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220214

R150 Certificate of patent or registration of utility model

Ref document number: 7026219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150