アプリケーションアウェアネットワーク管理

著者らは特許

H04L1 - 受信情報中の誤りを検出または防止するための配置

の所有者の特許 JP2016528630:

ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P.

 

一実施態様では、アプリケーションアウェアネットワーク制御システムが、ネットワークフローがインスタンス化されたと判断し、ネットワークフローがインスタンス化されたと判断するのに応答して、ネットワークフローに関連付けられるネットワークフロー特徴を導出し、ネットワークフロー特徴をアプリケーション識別モジュールに与える。アプリケーション識別信号に応答して、アプリケーションアウェアネットワーク制御システムは、ネットワークフロー特徴を導出するのを中止し、アプリケーション識別モジュールから受信されたアプリケーション識別報告に基づいて、ネットワークフローにフロー動作を適用する。
【選択図】図1

 

 

幾つかのネットワーク管理システム(例えば、ネットワークデバイス及び/又はネットワークデバイスにホストされるソフトウェア)は、アプリケーションが通信する際に経由するネットワーク接続の静的特性に基づいてアプリケーションアウェアネットワーク管理(又は能力)を提供しようと試みる。例えば、幾つかのネットワーク管理システムは、ポート番号、インターネットプロトコル(IP)アドレス、ドメイン名又はそれらの組み合わせを識別することによって、ネットワークを介して通信しているアプリケーションのアイデンティティ(identity)を求める。
他のネットワーク管理システムは、エンドユーザデバイス上のアプリケーションが自らに付けることができる、データパケット内に含まれるサービス品質(QoS:quality of service)値を尊重又は考慮する。そのようなネットワーク管理システムは、アプリケーションのアイデンティティを求めるためにアプリケーションによって与えられるQoS情報を暗黙的に信用する。更に他のネットワーク管理システムは、アプリケーションを識別するためにディープパケットインスペクション(DPI:deep packet inspection)に頼る。1つ又は複数のアプリケーションのアイデンティティを求めた後に、そのようなネットワーク管理システムは、アプリケーションのアイデンティティに基づいて、ネットワークをプロビジョニングする(例えば、ネットワークのサービス品質(QoS)パラメータ又はファイアウォールパラメータ等のパラメータを変更する)。
一実施態様による、通信ネットワーク及びアプリケーションアウェアネットワーク制御システムを含む環境の概略的なブロック図である。 一実施態様による、アプリケーションアウェアネットワーク管理プロセスの流れ図である。 一実施態様による、ネットワークコントローラとネットワークデバイスとの間の通信フローを例示するタイミング図である。 別の実施態様による、アプリケーションアウェアネットワーク管理プロセスの流れ図である。 一実施態様による、アプリケーションアウェアネットワーク制御システムをホストするネットワークデバイスの概略的なブロック図である。
アプリケーションアウェアネス(application awareness)を提供するために(すなわち、ネットワーク接続を介して通信しているアプリケーションを識別するために)ネットワーク接続の静的特性に頼るネットワーク管理システム(例えば、ネットワークデバイス及び/又はネットワークデバイスにホストされるソフトウェア)は多くの場合に、種々の理由のために、アプリケーションのアイデンティティを正確に求めることができない。例えば、多くのアプリケーションが、そのアプリケーションが通信する際に経由するネットワーク接続のセッションごとの特性(例えば、アプリケーションポート番号)を動的にネゴシエートする。言い換えると、そのようなアプリケーションが頼るネットワーク接続の特性は、あらかじめ規定されない。したがって、ネットワーク管理システムは、アプリケーションを識別するために、ネットワーク接続の静的に規定された特性に頼ることはできない。
さらに、多くのアプリケーションは、これらの静的特性を共有するネットワーク接続を介して通信する。例えば、一群のボイスオーバインターネットプロトコル(VoIP:Voice over Internet Protocol)アプリケーションがそれぞれ、共通のポート番号を用いてネットワーク接続を介して通信することができる。したがって、これらのアプリケーションは、それらのネットワーク接続のこの特性によって個々に識別することはできない。別の例として、多くの異なるアプリケーション及び異なるクラスのアプリケーションは、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)又はハイパーテキスト転送プロトコルセキュア(HTTPS:Hypertext Transfer Protocol Secure)を用いてデータをトランスポートする。結果として、これらのアプリケーションのネットワーク接続のデータパケットヘッダに含まれるセッションごとの特性の多く又は全てが同じである。これらのネットワーク接続のセッションごとの特性は多くのアプリケーションにわたって共有されるので、そのようなネットワーク管理システムは、静的特性に基づいてこれらのアプリケーションのアイデンティティを求めることはできない。
さらに、アプリケーション(例えば、ネットワークを介して通信するエンドユーザデバイス又は他のデバイスにホストされるアプリケーション)によって提供される識別情報に頼るネットワーク管理システムは、アプリケーションからの誤った情報に対して脆弱である。例えば、アプリケーションがそのようなネットワーク管理システムに、意図的ではないながらも有利になるように(例えば、そのアプリケーションに対する向上したサービス品質(QoS)、付加的なスループット又は冗長な通信リンク)、ネットワークをプロビジョニングさせることが望ましいサービスクラスを要求又は識別することによって、より優先順位が高い他のアプリケーションになりすます可能性がある。そのようなネットワーク管理システムは、アプリケーションによって提供される識別情報を暗黙的に信用するので、これらのネットワーク管理システムは、アプリケーションによって提供される誤った情報に基づいてネットワークをプロビジョニングし、結果として、ネットワーク内で、ネットワーク設計者又は管理者によって意図されないリソースが割り当てられる可能性がある。
ディープパケットインスペクション(DPI:deep packet inspection)は、アプリケーションによって交換されるデータを解析することによって正確なアプリケーション識別を提供することができるが、高い計算コストがかかり、拡張するのが難しく、終端間で暗号化されたトラフィック(例えば、仮想プライベートネットワーク(VPN:virtual private network)、ハイパーテキスト転送プロトコルセキュア(HTTPS)通信、及びセキュアリアルタイムプロトコル(SRTP:secure real-time protocol)通信)とともに用いるだけの信頼性がない。結果として、DPIは通常、ネットワーク接続からのデータが解析のためにミラーリング又は転送されるハイエンドネットワーク機器又は専用コンピューティングシステムにおいて実行される。
本明細書において論じられる実施態様は、アプリケーションアウェアネットワーク管理のために通信ネットワーク内で効率的なアプリケーション識別を容易にするシステム及び方法を記述する。例えば、本明細書において論じられる実施態様は、ネットワークの制御プレーン内で、アプリケーション識別エージェントによって提供されるアプリケーション識別子を用いてアプリケーション分類器を生成し、ネットワークフローのためのネットワークフロー特徴を導出し、それらのアプリケーション分類器をネットワークフロー特徴に適用して、通信ネットワーク内でそのネットワークフローを介して通信しているアプリケーションのアイデンティティを求めるネットワークデバイスを含む。さらに、本明細書において論じられる幾つかの実施態様は、アプリケーションシグネチャを維持管理するために人手による労力を必要としないように、アプリケーションアウェアネットワーク管理を実行する。そして、ネットワークデバイスは、アプリケーションのアイデンティティに基づいてネットワークフローに対して動作を適用し、アプリケーションプログラミングインターフェース(API)等のインターフェースを介してアプリケーションのアイデンティティについての情報を他のネットワークデバイス又はネットワークコントローラに提供し(又は他のネットワークデバイス又はネットワークコントローラが利用できるようにし)、及び/又は通信ネットワークを管理するためにアプリケーションのアイデンティティを他の形で利用することができる。そのようなシステム及び方法は、アプリケーションのアイデンティティに基づいてネットワーク管理を実行する(例えば、動作を適用する)ので、アプリケーションアウェア(application-aware)と呼ぶことができる。
さらに、本明細書において論じられる幾つかの実施態様は、プログラマブルネットワーク又はソフトウェア定義ネットワーク(SDN:software-defined network)内で有利に適用することができる。そのような実施態様では、ネットワークフローがいかに取り扱われるかについての決定又は情報収集に関連する機能(すなわち、制御プレーン)は、ネットワークフロー内のデータの交換(すなわち、データプレーン)から分離されるか、又は切り離される。結果として、本明細書において論じられる方法は、SDN内の種々のネットワークデバイスに対して適用することができる。
具体例として、SDNは、制御プレーン内に、ネットワークフローの転送に関してネットワークデバイスに命令を与えるコントローラ(又はネットワークコントローラ又は一群のコントローラ)を含むことができる。これらのネットワークデバイスのうちの幾つかは、ネットワークフローに関連付けられるアプリケーションを識別するアプリケーション識別モジュールをホストすることができる。そのようなネットワークデバイスは、コントローラからアプリケーション分類器を受信し、ネットワークフローに関連付けられるアプリケーションを識別するアプリケーション識別モジュール内で、これらのアプリケーション分類器を適用することができる。ネットワークデバイスの中には、アプリケーション識別モジュールをホストしない場合があるネットワークデバイスもある。そのようなネットワークデバイスは、コントローラ(又は何らかの他のネットワークデバイス又は制御プレーン内のサービス)に、ネットワークフロー又はそのネットワークフロー特徴を転送することができ、ネットワークコントローラは、ネットワークフローに関連付けられるアプリケーションを識別するアプリケーション識別モジュール内でこれらのアプリケーション分類器を適用することができる。
コントローラがアプリケーション識別モジュールをホストすることができるネットワークデバイスにアプリケーション分類器を与え、アプリケーション識別モジュールをホストすることができないネットワークデバイスのネットワークフローを分類するので、アプリケーションはSDNにわたって一貫して識別することができる。さらに、コントローラは、SDNにわたってポリシーを広めることができるか、又はアクセス可能にすることができる。そのようなポリシーは、特定のアプリケーションに関連付けられるネットワークフローに(ネットワークデバイスにおいて、又はネットワークデバイスによって)適用されるべき動作を規定することができ、SDN内で一貫して適用することができる。さらに、種々のヘテロジニアスネットワークデバイスを横切るネットワークフローを分類することができる(すなわち、それらのネットワークフローに関連付けられるアプリケーションを識別することができる)。すなわち、アプリケーション識別モジュールをホストするのをサポートしないネットワークデバイスの場合、ネットワークフローは、アプリケーション識別モジュールをホストするのをサポートするネットワークデバイスにおいて、又は制御プレーン内で(例えば、制御プレーン内のコントローラ又は別のネットワークデバイス又はサービスにおいて)分類することができる。
SDN内の本明細書において論じられる実施態様の更に別の例として、ネットワークフローに関連付けられるアプリケーションに関するグラウンドトゥルースデータ(例えば、特定のネットワークフローに関連付けられるアプリケーション識別エージェントによって提供されるアプリケーション識別子)をSDNの種々の部分又はセグメントからの種々のアプリケーション識別エージェントから受信することができる。すなわち、ネットワークデバイスは、そのようなグラウンドトゥルースをコントローラに与えることができ、コントローラは、そのようなグラウンドトゥルースに基づいて、アプリケーション分類器を、SDNを介してネットワークデバイスに与えることができる。したがって、グラウンドトゥルースデータは、個々のネットワークデバイス、ネットワークデバイスの小さなグループ、又はSDNの限られた部分若しくはセグメントではなく、SDN全体にわたって広範に適用することができる。さらに、SDN内で、コントローラは他のSDN内のコントローラにグラウンドトゥルースデータを与えることができる。その結果として、グラウンドトゥルースは、アプリケーション識別エージェントを全く備えないデバイスのみを含む個々の論理、仮想化又は物理通信ネットワークを含む、任意のSDN及び任意のデバイスにわたって広範に、かつ一貫して適用することができる。
図1は、一実施態様による、通信ネットワーク及びアプリケーションアウェアネットワーク制御システムを含む環境の概略的なブロック図である。図1に示される環境100は、アプリケーションアウェアネットワーク制御システム110と、(複数の場合もある)分類器トレーニングモジュール120と、(複数の場合もある)アプリケーション識別モジュール130と、エージェント141及び142と、通信ネットワーク160と、ネットワークサービス191及び192とを含む。アプリケーションアウェアネットワーク制御システム110は、通信ネットワーク160のネットワークフローを介して通信しているアプリケーションを識別するのを容易にするシステムである。
図1に示されるように、アプリケーションアウェアネットワーク制御システム110は、アプリケーションアウェアネットワーク制御システム110の種々の機能を実行する一群のモジュールを含む。本明細書において用いられるときに、「モジュール」という用語は、ハードウェア(例えば、集積回路若しくは他の回路類等のプロセッサ又はプロセッサ可読媒体)と、ソフトウェア(例えば、機械若しくはプログラム実行可能命令、コマンド、又はファームウェア、プログラミング若しくはオブジェクトコード等のコード)との組み合わせを指している。ハードウェア及びソフトウェアの組み合わせは、ハードウェアのみ(すなわち、ASIC等の、ソフトウェア要素を備えないハードウェア要素)、ハードウェアにホストされるソフトウェア(例えば、RAM、ハードディスク若しくはソリッドステートドライブ、抵抗変化メモリ、又はDVD等の光学媒体等のメモリに記憶され、及び/又はプロセッサにおいて実行若しくは解釈されるソフトウェア)、又はハードウェア及びハードウェアにホストされるソフトウェアを含む。
検出モジュール111は、通信ネットワーク内のネットワークフローのインスタンス化を検出するハードウェア及びソフトウェアの組み合わせである。ネットワークフローは、通信ネットワークを横切るか、又は通信ネットワークを通して交換若しくは送信される関連するデータの集まりである。例えば、ネットワークフローは、一群の関連するデータパケットとすることができる。より具体的な例として、ネットワークフローは、特定のポート番号を有するトランスポート制御プロトコル(TCP:Transport Control Protocol)接続、2つのインターネットプロトコル(IP:Internet Protocol)アドレス間で交換される一群のユニバーサルデータグラムプロトコルデータパケット若しくはメッセージ、特定の媒体アクセス制御(MAC:Media Access Control)アドレス若しくはIPアドレスからの、若しくはそれらへの全てのデータパケット、共通の(すなわち、同じ)仮想ローカルエリアネットワーク(VLAN:Virtual Local Area Network)タグ(すなわち、識別子)を有するデータパケット、又は共通のネットワークデバイス(例えば、スイッチ)物理ポートから、若しくはそこへの全てのデータパケットとすることができる。
検出モジュール111は、新たなネットワークフローがインスタンス化された時点を判断するために、ネットワークデバイス(又はそこにホストされるソフトウェア)と通信するか、又はネットワークデバイスを監視する。例えば、検出モジュール111は、ネットワークデバイス内のテーブル(例えば、転送テーブル又はルーティングテーブル)にアクセスすることができるか、ネットワークデバイス(又はそこにホストされるソフトウェア)又はネットワークデバイスに関連付けられるネットワークコントローラから信号(又は通知)を受信することができるか、又はネットワークデバイスとネットワークコントローラとの間の通信を解釈して、TCP接続等のネットワーク接続が要求又は確立されたことを判断することができる。
選択モジュール112は、検出モジュール111によって検出された新たに(又は最近になって)インスタンス化されたネットワークフローから、種々の方法に従ってアプリケーション分類器を生成するために用いられることになるネットワークフローを選択する。例えば、選択モジュール112は、検出モジュール111によって検出された新たにインスタンス化されたネットワークフローのうちのどのネットワークフローのためのアプリケーション識別子が入手可能であるか(例えば、後に更に詳細に論じられるように収集モジュール113によって受信されたか)を判断するために、収集モジュール113と通信することができ、それらのネットワークフローを選択することができる。幾つかの実施態様では、全てのそのようなネットワークフロー(すなわち、アプリケーション識別子が入手可能であるネットワークフロー)が選択モジュール112によって選択される。他の実施態様では、そのようなネットワークフローのサブセットが選択モジュール112によって選択される。したがって、幾つかの実施態様では、アプリケーション識別子が入手可能である全てのネットワークフローが選択モジュール112によって選択されるとは限らない。
一例として、幾つかの実施態様では、例えば、アプリケーションアウェアネットワーク制御システムの処理オーバーヘッドを削減するか、又は拡張性を高めるために、アプリケーション識別子が入手可能である新たにインスタンス化されたネットワークフローからのネットワークフローがランダムに選択される。本明細書において用いられるときに、「ランダムな」及び「ランダムに」という用語は、真にランダムなプロセス又は機構、及び擬似ランダムなプロセス又は機構の両方に当てはまる。したがって、アプリケーション識別子が入手可能である新たにインスタンス化されたネットワークフローからのネットワークフローは、例えば、擬似乱数発生器、真にランダムな入力、又はその組み合わせ(例えば、シード値として真にランダムな入力を用いる擬似乱数発生器)を用いて、ランダムに選択することができる。
別の例として、選択モジュール112は、どのネットワークフローが、アプリケーション識別エージェントをホストする特定のコンピューティングシステムによって(又は特定のアプリケーション識別エージェントをホストするコンピューティングシステムによって)要求又は開始されたかを判断するために収集モジュール113と通信することができ、それらのネットワークフローを選択することができる。言い換えると、選択モジュール112は、特定のコンピューティングシステム(又はそのコンピューティングシステムにホストされる特定のアプリケーション識別エージェント)を有するネットワークフローを、通信ネットワークを通しての通信の終点(又は終点のホスト)として選択することができる。
更に別の例として、選択モジュール112は、アプリケーション識別子が入手可能であるネットワークフローのための(又はそのネットワークフローに関連付けられる)アプリケーション識別子(例えば、アプリケーション名又はタイプ)を求めるために収集モジュール113と通信することができる。そして、選択モジュール112は、特定のアプリケーションに関連付けられる(例えば、その特定のアプリケーションへの、その特定のアプリケーションからの、又はその特定のアプリケーションを終点として有する)ネットワークフロー、又はその特定のアプリケーションに関連付けられるネットワークフローの一部若しくは一定の割合を選択することができる。すなわち、選択モジュール112は、特定のアプリケーションの種々のインスタンス(すなわち、1つ又は複数のコンピューティングシステムとしてホストされるアプリケーションのインスタンス)が通信する際に経由するネットワークフローの全て又は一部を選択することができる。アプリケーション(又はアプリケーションのインスタンス)が通信する際に経由するネットワークフローは、そのネットワークフローに向けられている又は関連付けられていると言うことができる。
さらに、幾つかの実施態様では、選択モジュール112は、種々の方法に従ってネットワークフローを適応的に選択することができる。例えば、選択モジュール112は、アプリケーション識別子が入手可能であるネットワークフローのためのアプリケーション識別子を求めるために収集モジュール113と通信することができ、どのアプリケーションの場合に、更なるトレーニングデータ(グラウンドトゥルースネットワークフロー特徴)がアプリケーション分類器を改善することになるかを判断するために(複数の場合もある)分類器トレーニングモジュール120等の分類器トレーニングモジュール(又は通信ネットワークの制御プレーン内の何らかの他のエンティティ)と通信することができる。
したがって、例えば、一度に、選択モジュール112は、分類器トレーニングモジュールからの入力に基づいて、特定のアプリケーションに関連付けられるネットワークフローの全て又は大部分を選択することができる。これは、分類器トレーニングモジュールが、特定のアプリケーションのための初期アプリケーション分類器を生成しようと試みているときに有用である可能性がある。後の時点で、選択モジュール112は、分類器トレーニングモジュールからの入力に基づいて、特定のアプリケーションに関連付けられるネットワークフローのごく一部又はわずかな部分を選択することができる。これは、分類器トレーニングモジュールがその特定のアプリケーションのための初期アプリケーション分類器を生成(又はトレーニング)した後に、(そのアプリケーションのためのネットワークフローのごく一部を用いて)修正アプリケーション分類器を生成しているときに、又はポリシーを満たすのに修正アプリケーション分類器を生成することが必要とされるか否かを判断するために初期アプリケーション分類器を検証しているときに有用な可能性がある。幾つかの実施態様では、分類器トレーニングモジュールが修正アプリケーション分類器(すなわち、初期の、又は以前に生成されたアプリケーション分類器に対して更新又は修正されたアプリケーション分類器)を生成することに決める場合には、分類器トレーニングモジュールは、その特定のアプリケーションに関連付けられるネットワークフローの全て又は大部分を選択モジュール112に再び選択させるための信号を、選択モジュール112に与えることができる。
他の実施態様では、選択モジュール112は、分類器トレーニングモジュールをホストする通信ネットワーク又はネットワークデバイスの負荷(又は利用率)を求めるためにネットワークコントローラ161等のネットワークコントローラ(又は通信ネットワークの制御プレーン内の何らかの他のエンティティ)と通信することができ、通信ネットワーク及び/又は通信ネットワーク内のネットワークデバイスの非効率的な使用を回避するために、負荷が低い場合にはネットワークフローの高い割合を選択し、負荷が高い場合には、ネットワークフローの低い割合を選択することができる。
収集モジュール113は、通信ネットワーク内でネットワークフローがインスタンス化されるアプリケーションのアプリケーション識別子を受信するために、アプリケーション識別エージェントと通信する。アプリケーション識別子は、アプリケーションを識別する英数文字列等の値である。幾つかの実施態様では、アプリケーション識別子は、アプリケーションの名称であるか、又は名称を含むことができる。幾つかの実施態様では、アプリケーション識別子は、アプリケーションのバージョン又はビルドについての情報を含むことができる。さらに、幾つかの実施態様では、アプリケーション識別子は、アプリケーションのタイプ又はクラスについての情報を含む。さらに、収集モジュール113は、アプリケーション識別エージェントから受信された各アプリケーション識別子に関連付けられるネットワークフローを識別するために、アプリケーション識別エージェント及び/又は検出モジュール111と通信する。したがって、収集モジュール113は、検出モジュール111によって検出された新たにインスタンス化されたネットワークフローと、アプリケーション識別エージェントから受信されたアプリケーション識別子との間のマッピングを確立することができる。
アプリケーション識別エージェントは、通信ネットワークのクライアントにホストされるアプリケーション(例えば、1つ又は複数の非一時的プロセッサ可読媒体に記憶される命令)であり、通信ネットワーク内でネットワークフローを開始若しくは要求するか、又はネットワークフロー要求に応答するアプリケーションについての情報を与える。そのような情報は、アプリケーションのアプリケーション識別子と、ネットワークフローを識別するために用いることができるネットワークフローのパラメータとを含むことができる。通信ネットワークのクライアントは、その通信ネットワークを介して通信するデバイスである。例えば、ノートブック、タブレットデバイス、スマートフォン、デスクトップ、サーバ、ネットワークスイッチ、ネットワークルータ、ネットワークゲートウェイ、ネットワークブリッジ等のコンピューティングシステム、又は通信ネットワークを介して通信する他のコンピューティングシステム若しくはコンピューティングシステムにホストされるアプリケーションを、通信ネットワークのクライアントと呼ぶことができる。
例えば、アプリケーション識別エージェントは、コンピューティングシステムにホストされるどのアプリケーションがネットワークフロー情報を要求又は開始したかを判断するために、複数のコンピューティングシステムのそれぞれにインストールすることができる。具体例では、アプリケーション識別エージェントは、ネットワークソケット等のパラメータ(例えば、IPアドレスとポート番号の対)と、ネットワークソケットを用いるアプリケーションの識別子(例えば、実行されるときに、アプリケーション識別エージェントを実現する命令を含む実行可能ファイルのファイル名、又はアプリケーションを識別する固有の英数文字列)とを収集することができる。そして、アプリケーション識別エージェントは、この情報をリアルタイムに(すなわち、情報が蓄積されるにつれて)、又は種々の時間間隔において収集モジュール113等の収集モジュールに与えることができる。また、アプリケーション識別エージェントから受信された情報と、通信ネットワーク内のネットワークフローとの相関をとり、アプリケーション識別子に対応するネットワークフローを識別するために、収集モジュール113が、ネットワークデバイスにおいて通信ネットワーク内のネットワークフローのパラメータ(例えば、IPアドレスとポート番号の対)にアクセスすることもできる。
特徴抽出モジュール114は、通信ネットワーク内のネットワークフローの特徴を抽出(又は導出)する。本明細書において論じられるように、ネットワークフローの特徴(又はネットワークフロー特徴)は、ネットワークフロー内で転送されるデータ(例えば、データパケット内のデータ)から導出される。例えば、ネットワークフローから以下のネットワークフロー特徴である、
発信元IP/宛先IP/発信元ポート/宛先ポート、
フロー開始エポックタイム(ミリ秒単位又はそれより高い精度)、
フロー終了エポックタイム(ミリ秒単位又はそれより高い精度)、
データパケットの到着時刻(絶対値又は相対値)、
全アップリンク/ダウンリンクデータパケット、
全アップリンク/ダウンリンクバイト、
アップリンクにおける最初のl個のパケットのパケットサイズ(例えば、終点に対する)、
ダウンリンクにおける最初のm個のパケットのパケットサイズ(例えば、終点に対する)、及び
双方向における最初のn個のパケットのパケットサイズ(例えば、終点に対する)を抽出することができる。
上記の例において、「l」、「m」及び「n」という用語は任意の数とすることができる。特定の例として、l=7、m=6及びn=13である。幾つかの実施態様では、ネットワークフローのデータパケットを、そのネットワークフローのネットワークフロー特徴と呼ぶこともできる。そのような実施態様では、上記で論じられたネットワークフロー特徴等のネットワークフロー特徴は、アプリケーション識別モジュール、分類器トレーニングモジュール又は何らかの他のエンティティにおいてネットワークフローのデータパケットから導出することができる。
さらに、特徴抽出モジュール114は、アプリケーション分類器を生成するために選択モジュール112によって選択された関連するアプリケーション識別子を有するネットワークフローに関して、ネットワークフロー特徴を(複数の場合もある)分類器トレーニングモジュール120等の分類器トレーニングモジュールに与える。また、特徴抽出モジュール114は、それらのネットワークフローに関連付けられるアプリケーションを識別するために、ネットワークフローのネットワークフロー特徴を(複数の場合もある)アプリケーション識別モジュール130等のアプリケーション識別モジュールに与える。そのようなネットワークフロー特徴は、リアルタイムに、又は種々の時間間隔において(例えば、定期的に)、及び/又は信号に応答して与えることができる。さらに、特徴抽出モジュール114は、新たにインスタンス化されたネットワークフローの検出に応答してネットワークフロー特徴を与えるために、検出モジュール111と通信することができる。言い換えると、アプリケーションアウェアネットワーク制御システム110は、新たにインスタンス化されたネットワークフローが検出されたときに、分類器トレーニングモジュール又はアプリケーション識別モジュールにネットワークフロー特徴を与える1つ又は複数の規則を含むことができる。
本明細書において用いられるときに、「提供する(与える)」という用語は、プッシュ機構(例えば、通信経路又はチャネルを介してコンピューティングシステム又はエージェントにデータを送ること)、プル機構(例えば、コンピューティングシステム又はエージェントからの要求に応答してコンピューティングシステム又はエージェントにデータを送達すること)、及びストア機構(例えば、コンピューティングシステム又はエージェントがデータにアクセスすることができるデータストア又はサービスにデータを記憶すること)を含む。したがって、幾つかの実施態様では、特徴抽出モジュール114は、ネットワークフロー特徴を分類器トレーニングモジュール及び/又はアプリケーション識別モジュールにプッシュする(又は積極的に送る)ことによってネットワークフロー特徴を与えることができる。他の実施態様では、特徴抽出モジュール114はAPIを与えることによって、ネットワークフロー特徴を与えることができ、分類器トレーニングモジュール及び/又はアプリケーション識別モジュールはこのAPIを介してネットワークフロー特徴にアクセスすることができるか又はネットワークフロー特徴を要求することができる。更に別の実施態様では、特徴抽出モジュール114は、そのような機構の組み合わせを利用することができる。
さらに、特徴抽出モジュール114は、1つのフローのための十分な数のネットワークフロー特徴が導出され、及び/又は与えられたことを示すアプリケーション識別信号に応答する。そのような信号に応答して、特徴抽出モジュール114は、ネットワークフロー特徴を導出し、及び/又は与えるのを中止する。これにより、更なるネットワークフロー特徴が有益にならないときに、ネットワークフロー特徴を導出し、及び/又は与えるのを中止することによって、特徴抽出モジュール114はリソース(例えば、処理リソース又はコンピューティングリソース及びネットワークリソース)を効率的に使用できるようになる。
アプリケーション識別信号は、アプリケーション識別プロセスの状態変化を示す通知(例えば、値遷移、データセット、メッセージ又は制御データパケット)である。例えば、アプリケーション識別信号は、アプリケーション識別モジュールにおいてアプリケーションを識別するために、又は分類器トレーニングモジュールにおいてアプリケーション分類器を生成するために更なるネットワークフロー特徴がもはや必要とされないことを示すことができる。そのようなアプリケーション識別信号は、アプリケーションアウェアネットワーク制御システム110内で(例えば、特徴抽出モジュール114自体によって)生成することができるか、又は分類器トレーニングモジュール、アプリケーション識別モジュール、ネットワークコントローラ及び/又はネットワークデバイスにおいて外部で生成することができる。具体例として、アプリケーション識別信号は、特徴抽出モジュール114内のデータパケットカウンタ(又は変数)が所定の値に達したときに生成することができる。別の例として、アプリケーション識別信号は、アプリケーション分類器をネットワークフロー特徴に適用することによってネットワークフローを介して通信しているアプリケーションを識別するために、1つのフローに対し、ネットワークフローの十分な数のネットワークフロー特徴が受信された後に、アプリケーション識別モジュールから送られる制御データパケットとすることができる。
動作モジュール115は、ネットワークフローに動作を適用する。例えば、動作モジュール115は、アプリケーション識別モジュール(複数の場合もある)130等のアプリケーション識別モジュールから、収集モジュール113によってアプリケーション識別子が受信されなかったネットワークフローに関連付けられるアプリケーションのアプリケーション識別子を含むアプリケーション識別報告を受信することができる。その際、動作モジュール115は、アプリケーション識別報告に基づいて、又はアプリケーション識別報告内に含まれる動作識別子に基づいて、ネットワークフローの種々のパラメータ又は特性を変更することができる。例えば、動作モジュール115は、ネットワークフローをネットワークデバイスの異なる物理ポートにリダイレクトすることができるか、ネットワークフローに割り当てられたネットワークリソースを変更することができるか、ネットワークフローを破棄(又は終了)することができるか、ネットワークフローに所定のQoS、若しくは管理上割り当てられたQoSを適用することができるか、ネットワークフローに所定の速度制限、若しくは管理上割り当てられた速度制限を適用することができるか、又はネットワークフローに何らかの他の動作を適用することができる。
アプリケーション識別報告は、ネットワークフロー特徴にアプリケーション分類器を適用した結果を含む。例えば、アプリケーション識別報告は、アプリケーション識別子、動作識別子、ネットワークフローの分類に関連する付加データ、及び/又はその組み合わせを含むことができる。
適用されることになる動作は、アプリケーション識別報告内で指定するか、若しくはアプリケーション識別報告内に含むことができるか(例えば、動作識別子として、又はアプリケーション識別子によって暗黙的に)、ネットワークデバイスにおいてネットワークコントローラによって確立されるか、若しくはネットワークデバイスの外部にあるポリシーストアにおいてアクセスすることができるか、又は通信ネットワークの制御プレーン内のネットワークコントローラ等のエンティティによって指定することができる。例えば、アプリケーションアウェアネットワーク制御システム110は、ネットワークフローに関連付けられるアプリケーションを識別する(複数の場合もある)アプリケーション識別モジュール130からアプリケーション識別報告を受信することができる。アプリケーションアウェアネットワーク制御システム110又はアプリケーションアウェアネットワーク制御システム110をホストするネットワークデバイスは、ネットワークコントローラ161がそのネットワークフローに関連付けられるアプリケーションのアイデンティティを求めることができるAPIを与えることができ、動作モジュール115がネットワークフローに適用するための動作を指定する動作識別子を与えることができる。代替的には、ネットワークコントローラ161は、特定のアプリケーションが識別された場合に動作を実行するように、アプリケーションアウェアネットワーク制御システム110を(例えば、APIを介して)プリプログラミング又は構成することができる。
幾つかの実施態様では、動作モジュールは、施行モジュールと呼ぶことができ、1つ又は複数のネットワークデバイスにおいて実施される。例えば、幾つかの実施態様では、動作モジュール(又は複数の動作モジュール)は、通信ネットワークの入口において、又は通信ネットワークの出口においてネットワークフローに動作を適用するために、1つ又は複数のエッジデバイスにおいて実施する(又はホストする)ことができる。幾つかの実施態様では、動作モジュール(又は複数の動作モジュール)は、通信ネットワーク内の複数のネットワークデバイスにおいて実施することができる。したがって、アプリケーション識別報告は、通信ネットワーク内の(又は通信ネットワークの)ネットワークデバイスにわたって一貫して動作を適用するために、複数のネットワークデバイス(又はそこにホストされる動作モジュール)に与えることができる。
分類器トレーニングモジュール120は、ネットワークフローのネットワークフロー特徴と、ネットワークフローに関連付けられるアプリケーションのアプリケーション識別子とを用いて、アプリケーション分類器を生成又はトレーニングするハードウェア及びソフトウェアの組み合わせである。例えば、分類器トレーニングモジュール120は、1つのアプリケーション又は一群のアプリケーションのための一群のネットワークフローのネットワークフロー特徴を用いて、アプリケーション分類器(例えば、機械学習分類器)をトレーニング(又は生成)することができる。幾つかの実施態様では、分類器トレーニングモジュール120は、アプリケーションアウェアネットワーク制御システム110から受信されたネットワークフロー特徴から更なるネットワークフロー特徴を導出する。
図1に示されるように、分類器トレーニングモジュール120は、分類器トレーニングモジュールの1つ又は複数のインスタンスを含むことができる。例えば、通信ネットワーク160の制御プレーンが、通信ネットワーク160内の種々のネットワークデバイスにホストされる分類器トレーニングモジュールのクラスタを含むことができる。幾つかの実施態様では、クラスタ内の分類器トレーニングモジュール120は汎用とすることができ(すなわち、数多くのアプリケーション又はアプリケーションタイプのためのアプリケーション分類器を生成することができ)、ロードバランシングのために複数のネットワークデバイスにわたってアプリケーション分類器の生成を分散させるために用いられる。他の実施態様では、クラスタ内の分類器トレーニングモジュール120は特有とすることができ(すなわち、単一のアプリケーション又は少数のアプリケーション又はアプリケーションタイプのためのアプリケーション分類器を生成することができ)、それぞれ特定のアプリケーション(又は少数のアプリケーション)又はアプリケーションタイプのためのアプリケーション分類器を生成するために用いられる。言い換えると、ネットワークフローのネットワークフロー特徴は、それらのネットワークフローに関連付けられるアプリケーションのアプリケーション識別子に基づいて異なる分類器トレーニングモジュールに与えることができる。
分類器トレーニングモジュール120において生成(又はトレーニング)されたアプリケーション分類器は、種々の機械学習分類器のいずれかとすることができる。例えば、アプリケーション分類器は、ナイーブベイズ分類器、サポートベクトルマシン(SVM:support vector machine)に基づく分類器、C4.5若しくはC5.0に基づく決定木分類器、又は何らかの他の適切な機械学習分類器とすることができる。ナイーブベイズ分類器は、強い独立仮定とともにベイズの定理を適用することに基づく単純な確率的分類器である。この分類器は、ネットワークフロー特徴が互いに独立していると仮定し、ネットワークフロー特徴のクラス又はアプリケーション識別子が入力として与えられることを前提とする。しかしながら、ネットワークフロー特徴は必ずしも独立している必要はない。
別の例として、SVM手法又は機構が、異なるアプリケーション識別子に対応する異なるクラス(例えば、2つの異なるクラス)間のマージンを最大にするアプリケーション分類器を構築することができる。C4.5に基づく決定木分類器では、決定木内の各ノードにおける決定規則への応答が決定木に沿った経路を決定ツリー形式で分類規則を実施することができる。C5.0に基づく決定木分類器はブースティングもサポートし、ブースティングは、予測精度を改善するために複数の分類器を生成し、組み合わせるための技法である。ナイーブベイズとは異なり、SVMに基づく分類器及び決定木分類器はいずれも、異なるネットワークフロー特徴間の依存性を考慮に入れることができる。これらの分類器のそれぞれにおいて、k分割交差検証等の方法を用いることによって、トレーニングデータ(例えば、ネットワークフロー特徴及びアプリケーション識別子)に対する分類器の過学習を防ぐためのステップを講じることができる。
アプリケーション識別モジュール130は、ネットワークフロー特徴が導出されたネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、それらのネットワークフロー特徴にアプリケーション分類器を適用する(又は別の言い方をすると、アプリケーション分類器にネットワークフロー特徴を適用する)ハードウェア及びソフトウェアの組み合わせである。言い換えると、アプリケーション識別モジュール130は、ネットワークフローを介して通信しているアプリケーションのアプリケーション識別子を求めるために、分類器トレーニングモジュール120において生成され、そこから受信されたアプリケーション分類器を使用する。幾つかの実施態様では、アプリケーション識別モジュール130は、アプリケーションアウェアネットワーク制御システム110から受信されたネットワークフロー特徴から更なるネットワークフロー特徴を導出する。
図1に示されるような、分類器トレーニングモジュール120と同様に、アプリケーション識別モジュール130は、アプリケーション識別モジュールの1つ又は複数のインスタンスを含むことができる。したがって、アプリケーション識別モジュール130は汎用とすることができ(すなわち、ネットワークフローのネットワークフロー特徴に数多くの異なるアプリケーション分類器を適用することができ)、ロードバランシングのために複数のネットワークデバイスにわたってアプリケーション識別を分散させるために用いることができる。他の実施態様では、クラスタ内のアプリケーション識別モジュール130は特有とすることができ(すなわち、ネットワークフローのネットワークフロー特徴に単一のアプリケーション分類器、又は少数の異なるアプリケーション分類器を適用することができ)、それぞれ特定のアプリケーション(又は少数のアプリケーション)又はアプリケーションタイプを識別するために用いられる。したがって、ネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、1つのネットワークフローのネットワークフロー特徴を複数のアプリケーション識別モジュールに与えることができる。
特定のモジュール(すなわち、ハードウェア及びソフトウェアの組み合わせ)が、具体的にはアプリケーションアウェアネットワーク制御システム110に関連して、包括的には図1及び本明細書において論じられる他の例示的な実施態様に関連して図示され、論じられるが、他の実施態様内にモジュールの他の組み合わせ又は部分的な組み合わせを含むことができる。言い換えると、図1に示され、他の例示的な実施態様において論じられるモジュールは、本明細書において論じられる例において特定の機能を実行するが、これらの機能及び他の機能は、異なるモジュールにおいて、又はモジュールの組み合わせにおいて成し遂げるか、実施するか、又は実現することができる。
例えば、別々に図示され、及び/又は論じられた2つ以上のモジュールを組み合わせて、2つのモジュールに関連して論じられた機能を実行する1つのモジュールにすることができる。別の例として、これらの例に関連して論じられたような1つのモジュールにおいて実行される機能は、1つの異なるモジュール又は複数の異なるモジュールにおいて実行することができる。さらに、1つの特定のタイプのモジュールに関連して本明細書において論じられたモジュールを、他の実施態様において1つの異なるタイプのモジュールとして実施することができる。例えば、検出モジュールは、一群の電子及び/又は光学回路(又は回路構成要素)を用いて実施することができるか、又は非一時的プロセッサ可読媒体において、若しくはメモリにおいて記憶され、プロセッサにおいて実行される命令として実施することができる。別の例として、幾つかの実施態様では、アプリケーションアウェアネットワーク制御システム110は、分類器トレーニングモジュール120及び/又はアプリケーション識別モジュール130を含むことができる。
図1に示されるように、通信ネットワーク160は、種々のネットワークデバイスを含む。具体的には、図1に示されるように、通信ネットワーク160は、エッジデバイス162と、エッジデバイス163と、ネットワークデバイス164と、ネットワーク165と、ネットワークデバイス166と、ネットワークデバイス167とを含む。さらに、通信ネットワーク160はネットワークコントローラ161を含む。ネットワークデバイスは、1つ又は複数の通信インターフェースを含み、これらの通信インターフェースを介して通信ネットワーク内でデータをトランスポートするために互いに通信するコンピューティングシステムである。例えば、ルータ、スイッチ、ワイヤレスアクセスポイント、ゲートウェイ、ブリッジ、ロードバランサ、サーバ及び類似のコンピューティングシステムをネットワークデバイスとすることができる。ネットワークフローの終点(例えば、通信ネットワークを介して通信するアプリケーションをホストするコンピューティングシステム)が直接通信するネットワークデバイスをエッジデバイスと呼ぶことができる(すなわち、そのようなデバイスは、通信ネットワークのエッジにおいて動作する)。
図1に示される例では、通信ネットワーク160はネットワークコントローラ161を含む。ネットワークコントローラ161は、通信ネットワーク160と通信するネットワークデバイス又はコンピューティングシステムにホストされるモジュールであり、通信ネットワーク160内のネットワークデバイスにルーティング、転送及び他の管理情報を提供する。言い換えると、通信ネットワーク160はSDNとすることができる。ネットワークコントローラ161は、通信ネットワーク160のネットワークデバイスを制御又は管理するために、OpenFlow(登録商標)等のプロトコルを介してこれらのネットワークデバイスと通信することができる。
アプリケーションアウェアネットワーク制御システム110、分類器トレーニングモジュール120及びアプリケーション識別モジュール130は、通信ネットワーク160のネットワークデバイスのいずれかに、又は通信ネットワーク160と通信する他のコンピューティングシステム(例えば、ミドルボックス)にホストすることができる。幾つかの実施態様では、そのような他のコンピューティングデバイスは、通信ネットワーク160の制御プレーンの一部であるか、又は制御プレーン内にあると考えることができる。幾つかの実施態様では、アプリケーションアウェアネットワーク制御システム110、分類器トレーニングモジュール120及びアプリケーション識別モジュール130のうちの2つ以上が、共通のネットワークデバイスにホストされる。他の実施態様では、アプリケーションアウェアネットワーク制御システム110、分類器トレーニングモジュール120及びアプリケーション識別モジュール130は、異なるネットワークデバイスにホストされる。
例えば、アプリケーションアウェアネットワーク制御システム110及びアプリケーション識別モジュール130は、エッジデバイス162にホストすることができ、分類器トレーニングモジュール120は、ネットワークデバイス167にホストすることができる。幾つかの実施態様では、ネットワークフローの中には通信ネットワークの内部レイヤ又はコア内のネットワークデバイスを通り抜けないか、又は横切らないものもあるので、アプリケーションアウェアネットワーク制御システム110は、通信ネットワークのエッジデバイスにホストできることが有益である。例えば、ピアツーピアアプリケーションの場合のネットワークフローは、エッジデバイス以外のネットワークデバイスを横切らない場合がある。したがって、幾つかの通信ネットワーク及び/又はアプリケーションの場合に、他のネットワークデバイスにホストされるアプリケーションアウェアネットワーク制御システムより、エッジデバイスにホストされるアプリケーションアウェアネットワーク制御システムに、より多くのネットワークフローがアクセス可能である。
エージェント141及び142は、コンピューティングシステムにホストされるアプリケーション識別エージェントである(簡単にするために、図1にはエージェント141をホストするデバイス151のみが示される)。経路180は通信ネットワーク160を通るネットワークフローを示す。より具体的には、デバイス151にホストされるアプリケーションが、ネットワークサービス192へのネットワークフローを開始する。言い換えると、そのアプリケーションは、経路180によって示されるネットワークフローを介して、ネットワークサービス192へのアクセスを要求する。ネットワークサービス191及び192は、ウェブページ又はウェブサイト等のサービス、データベース管理システム等のデータリポジトリ、ストリーミングビデオ又はオーディオアプリケーション等の通信アプリケーション、コラボレーションアプリケーション、又は通信ネットワークを介してアクセス可能な他のサービスである。
デバイス151にホストされるアプリケーションとネットワークリソース192との間で通信されるデータパケットは、エッジデバイス162と、ネットワークデバイス164、165及び166とを横切る。したがって、アプリケーションアウェアネットワーク制御システム110は、経路180によって示されるネットワークフローからネットワークフロー特徴を導出し、ネットワークフロー特徴と、エージェント141から受信されたアプリケーション識別子とを分類器トレーニングモジュール120に与えることによって分類器をトレーニングするために、又はネットワークフロー特徴をアプリケーション識別モジュール130に与えることによって経路180によって示されるネットワークフローに関連付けられるアプリケーションを識別するために、これらのネットワークデバイス(すなわち、エッジデバイス162並びにネットワークデバイス164、165及び166)のいずれかにホストすることができる。
さらに、アプリケーション識別エージェント141及び/又は142から受信されたアプリケーション識別子と、それらのアプリケーション識別子を有するアプリケーションに関連付けられるネットワークフローのネットワークフロー特徴とに基づいて生成されたアプリケーション分類器を用いて、アプリケーションアウェアネットワーク制御システム110は、アプリケーション識別エージェントがホストされないデバイスからの又はデバイスへのネットワークフローに関連付けられるアプリケーションを識別することができる。例えば、アプリケーションアウェアネットワーク制御システム110は、デバイス152にホストされるアプリケーションからのネットワークフローが横切る通信ネットワーク160の1つ又は複数のネットワークデバイスにホストすることができる。アプリケーションアウェアネットワーク制御システム110は、アプリケーション識別モジュール130(アプリケーションアウェアネットワーク制御システム110とともにホストされる場合があるか、又はアプリケーションアウェアネットワーク制御システム110に含まれる場合がある)に、そのネットワークフローのネットワークフロー特徴を与えることができ、アプリケーション識別モジュール130は、そのネットワークフローに関連付けられるアプリケーションを識別するために、それらのアプリケーション分類器を適用することができる。したがって、アプリケーション識別エージェントをホストしないデバイスにおけるアプリケーションは、本明細書において論じられる方法に従って識別することができる。
図2は、一実施態様によるアプリケーションアウェアネットワーク管理プロセスの流れ図である。プロセス200によって示される例では、アプリケーション分類器はあらかじめ生成されている。アプリケーション分類器の生成は、図3及び図4に関連して論じられる例等の他の例において、より詳細に論じられることになる。プロセス200は、ネットワークデバイス又は他のコンピューティングシステムにホストされるアプリケーションアウェアネットワーク制御システム110等のアプリケーションアウェアネットワーク制御システム(又はそのモジュール等の構成要素)によって実施することができる。したがって、何らかの動作を実行するプロセス200を参照しながら本明細書において述べられることは、プロセス200を実施するアプリケーションアウェアネットワーク制御システムがそれらの動作を実行することを意味するものと理解されたい。
さらに、図2に示されるプロセス200は、アプリケーションアウェアネットワーク管理プロセスの例示的な実施態様である。本明細書における幾つかの例において言及されるように、他の実施態様では、リソース分類プロセスは、図2に示されるブロック(又はステップ)より多くの、若しくは少ないブロック(又はステップ)、又は図2に示されるのとは異なるブロック(又はステップ)を含むことができる。
ブロック210において、プロセス200は通信ネットワーク内でネットワークフローがインスタンス化されたと判断する。例えば、検出モジュールが、通信ネットワークのネットワークデバイスにおいて新たにインスタンス化されたネットワークフローを識別することができる。ブロック210における判断に応答して、ブロック220において、新たにインスタンス化されたネットワークフローのネットワークフロー特徴がアプリケーション識別モジュールに与えられる。具体例として、上記の例において検出モジュールと通信する抽出モジュールが、新たにインスタンス化されたネットワークフローのネットワークフロー特徴を導出することができ、それらのネットワークフロー特徴をアプリケーション識別モジュールに与えることができる。この例では、アプリケーション識別モジュールは、あらかじめ生成されているアプリケーション分類器にアクセスできる。
ブロック230においてアプリケーション識別信号が受信(又は検出)されるまで、アプリケーション識別モジュールにネットワークフロー特徴が与えられる。ブロック230においてアプリケーション識別信号が受信(又は検出)された後に、プロセス200は、アプリケーション識別モジュールにネットワークフロー特徴を与えるのを中止する。例えば、アプリケーション識別モジュールからアプリケーション識別信号が受信されるまで、アプリケーション識別モジュールにネットワークフロー特徴を与えることができる。
他の実施態様では、ブロック230において、アプリケーション識別信号が受信(又は検出)されるまでネットワークフロー特徴が導出され、アプリケーション識別信号に応答して、プロセス200がネットワークフロー特徴を導出するのを中止する。そして、アプリケーション識別信号に応答して、アプリケーション識別信号が(直接、又はネットワークコントローラ等の何らかの他のエンティティを介して)受信された後に、導出されたネットワークフロー特徴がアプリケーション識別モジュールに与えられる。更に別の実施態様では、ブロック230においてアプリケーション識別信号が受信(又は検出)されるまで、ネットワークフロー特徴が導出され、そして、アプリケーション識別信号が受信された後に、アプリケーション識別モジュールからのネットワークフロー特徴要求に応答して、導出されたネットワークフロー特徴がアプリケーション識別モジュールに与えられる。例えば、アプリケーション識別モジュールは、プロセス200を実施するアプリケーションアウェアネットワーク制御システムのAPIを介してネットワークフロー特徴を要求することができる。
ブロック250において、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションのアプリケーション識別子を含むアプリケーション識別報告が、アプリケーション識別モジュールから受信される。例えば、アプリケーション識別モジュールは、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、分類器トレーニングモジュールにおいて生成された1つ又は複数のアプリケーション分類器をネットワークフロー特徴に適用することができ、アプリケーションを識別するアプリケーション識別報告をプロセス200に与えることができる。
幾つかの実施態様では、アプリケーション識別報告は、通信ネットワークの制御プレーン内のネットワークコントローラ等の何らかの他のエンティティから受信される。例えば、アプリケーション識別モジュールは、ネットワークコントローラにアプリケーション識別子(又はアプリケーション識別子を含むアプリケーション識別報告)を与えることができ、ネットワークコントローラは、プロセス200にアプリケーション識別報告を与えることができる。更に他の実施態様では、アプリケーション識別報告内に含まれる動作識別子がプロセス200によって受信される。すなわち、幾つかのそのような実施態様では、アプリケーション識別報告はアプリケーション識別子を含まない。むしろ、アプリケーション識別報告は動作識別子を含み、この動作識別子は、新たにインスタンス化されたネットワークフローに適用されることになる動作を記述又は規定する。
そして、プロセス200は、ブロック260において、ブロック250において受信された情報に基づいて、新たにインスタンス化されたネットワークフローにフロー動作を適用する。図2に示される例では、アプリケーション識別報告に基づいて、新たにインスタンス化されたネットワークフローにフロー動作が適用される。上記で論じられたように、アプリケーション識別報告はアプリケーション識別子、動作識別子、及び/又はその組み合わせを含むことができる。
図3は、一実施態様による、ネットワークコントローラとネットワークデバイスとの間の通信フローを示すタイミング図である。図3の例に示されるように、ネットワークデバイス162及びネットワークデバイス166はそれぞれ、図1に関連して示され、上記で論じられたアプリケーションアウェアネットワーク制御システム110等のアプリケーションアウェアネットワーク制御システムをホストする。アプリケーションアウェアネットワーク制御システムをホストすることに加えて、ネットワークデバイス162は、アプリケーション識別モジュールもホストする。例えば、アプリケーション識別モジュールは、ネットワークデバイス162におけるアプリケーション空間又はユーザ空間内にホストすることができる。ネットワークコントローラ161は、分類器トレーニングモジュール及びアプリケーション識別モジュールを含む(又は分類器トレーニングモジュール及びアプリケーション識別モジュールとともにネットワークデバイスにホストされる)。本明細書において、ネットワークデバイス162、ネットワークデバイス166又はネットワークコントローラ161が上記で論じられたようなアプリケーションアウェアネットワーク制御システム、アプリケーション識別モジュール又は分類器トレーニングモジュールの何らかの動作を実行することに言及することは、ネットワークデバイス162、ネットワークデバイス166又はネットワークコントローラ161にホストされるか、又はそれとともにホストされる、上記で論じられたアプリケーションアウェアネットワーク制御システム、アプリケーション識別モジュール又は分類器トレーニングモジュールがその動作を実行することを意味すると理解されるべきである。
新たなネットワークフローが検出され、そのネットワークフローに関連付けられるアプリケーションのアプリケーション識別子がネットワークデバイス162において(すなわち、ネットワークデバイス162にホストされるアプリケーションアウェアネットワーク制御システムによって)アプリケーション識別エージェントから受信される。同様に、異なる新たなネットワークフローが検出され、そのネットワークフローに関連付けられるアプリケーションのアプリケーション識別子が、ネットワークデバイス166において(すなわち、ネットワークデバイス166にホストされるアプリケーションアウェアネットワーク制御システムによって)アプリケーション識別エージェントから受信される。この例では、ネットワークデバイス162及び166によって検出されたネットワークフローは、同じアプリケーションの別々のインスタンスに関連付けられる。言い換えると、ネットワークデバイス162及び166によって受信されたアプリケーション識別子は同じである。
新たなネットワークフローの検出及びアプリケーション識別子の受信に応答して(例えば、ネットワークデバイス162及び166においてネットワークコントローラ161によって確立されたポリシーの1つ又は複数の規則に基づいて)、ネットワークデバイス162及びネットワークデバイス166はそれぞれ、アプリケーション識別エージェントから受信されたアプリケーション識別子をネットワークコントローラ161に与え、それぞれにおいて検出された新たなネットワークフローのためのネットワークフロー特徴を導出し、ネットワークコントローラ161に(すなわち、ネットワークコントローラ161に含まれるか、ネットワークコントローラ161とともにホストされる分類器トレーニングモジュールに)与える。
そして、ネットワークデバイス162は、ネットワークデバイス162において生成されたアプリケーション識別信号に基づいて(例えば、データパケットカウンタが所定の値に達するのに応答して)、十分な数のネットワークフロー特徴がネットワークコントローラ162に与えられたと判断し、ネットワークコントローラ161にネットワークフロー特徴を与えるのを中止する。そして、ネットワークコントローラ161は、アプリケーション分類器1を生成(又はトレーニング)し、ネットワークデバイス162にアプリケーション分類器1を与える。アプリケーション分類器1は、ネットワークフローが、ネットワークデバイス162によって以前に受信されたアプリケーション識別子によって識別されるアプリケーションに関連付けられるか否かを判断するために、ネットワークデバイス162にホストされるアプリケーション識別モジュールにおいて使用されることになる。幾つかの実施態様では、アプリケーション識別モジュールは、ネットワークフロー特徴から種々の異なるアプリケーションを識別するために2つ以上のアプリケーション分類器にアクセスできる。ここでは、簡単にするために、単一のアプリケーションのみのアプリケーション分類器を示す。
ネットワークコントローラ161は、ネットワークデバイス166から受信されたネットワークフロー特徴を監視し、アプリケーション分類器を生成する(又は修正する)だけの十分な量のネットワークフロー特徴が与えられたときに、アプリケーション識別信号をネットワークデバイス166に与える。ネットワークデバイス166によって与えられるネットワークフロー特徴はネットワークデバイス162によって与えられるネットワークフロー特徴と共通のアプリケーションのためのネットワークフロー特徴であるので、ネットワークコントローラは、アプリケーション分類器2(修正アプリケーション分類器)を生成するために、ネットワークデバイス166からのネットワークフロー特徴を用いてアプリケーション分類器1(初期アプリケーション分類器)を修正する。さらに、ネットワークデバイス162がアプリケーション識別モジュールをホストするので、ネットワークコントローラ161はアプリケーション分類器2をネットワークデバイス162に与える。
図3に示されるように、ネットワークデバイス162はアプリケーション識別モジュールをホストするので、ネットワークデバイス162は、ネットワークコントローラにネットワークフロー特徴を送らない。むしろ、ネットワークデバイス162は、ネットワークデバイス162にホストされるアプリケーション識別モジュールを用いて、ネットワークコントローラ161から受信されたアプリケーション分類器(例えば、アプリケーション分類器2)を、ネットワークデバイス162において導出されたネットワークフロー特徴に適用する。
より具体的には、ネットワークデバイス162は、新たにインスタンス化されたネットワークフローを検出し、そのネットワークフローのネットワークフロー特徴を導出し、それらのネットワークフロー特徴をネットワークデバイス162にホストされるアプリケーション識別モジュールに与える。ネットワークデバイス162は、アプリケーション識別信号に応答してネットワークフロー特徴を導出し、与えるのを中止し、そして、アプリケーション分類器2を、新たにインスタンス化されたネットワークフローから導出されたネットワークフロー特徴に適用する。言い換えると、アプリケーション分類器2を用いて、ネットワークフロー特徴に基づいて新たにインスタンス化されたネットワークフローを分類する。
上記に論じられたように、幾つかの実施態様では、アプリケーション識別モジュールは、複数のアプリケーション分類器を含むことができ、ネットワークフロー特徴が導出されたネットワークフローに関連付けられるアプリケーションを識別するために、ネットワークフロー特徴に2つ以上のアプリケーション分類器を適用することができる。分類の結果は、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションを識別するアプリケーション識別報告である。そして、ネットワークデバイス162は、そのアプリケーションのアイデンティティに基づいて、フロー動作を適用する。
対照的に、ネットワークデバイス166は、アプリケーション識別モジュールを含まないので、アプリケーションのアイデンティティを求めるために、ネットワークコントローラ161内にあるか、又はネットワークコントローラ161にともにホストされるアプリケーション識別モジュールに頼る。より具体的には、図3に示される例において示されるように、ネットワークデバイス166が新たにインスタンス化されたネットワークフローを検出し、それに応答して、ネットワークフロー特徴を導出し、ネットワークコントローラ161に与える。新たにインスタンス化されたネットワークフローから十分な量のネットワークフロー特徴が導出され、ネットワークコントローラ161に与えられた後に、ネットワークコントローラ161は、更なるネットワークフロー特徴が不要であることをネットワークデバイス166に通知するために、ネットワークデバイス166にアプリケーション識別信号を与える。ネットワークデバイス166は、アプリケーション識別信号に応答して、ネットワークフロー特徴を導出し、及び/又は与えるのを中止する。
そして、ネットワークコントローラ161は、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、ネットワークデバイス166によって与えられたネットワークフロー特徴にアプリケーション分類器2を適用する。上記で論じられたように、幾つかの実施態様では、アプリケーション識別モジュールは複数のアプリケーション分類器を含むことができ、ネットワークフロー特徴が導出されたネットワークフローに関連付けられるアプリケーションを識別するために、ネットワークフロー特徴に2つ以上のアプリケーション分類器を適用することができる。
分類の結果は、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションを識別するアプリケーション識別報告である。ネットワークコントローラ161は、ネットワークデバイス166にアプリケーション識別報告を与える。ネットワークデバイス166は、アプリケーション識別報告を受信し、そして、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションのアイデンティティに基づいて、フロー動作を適用する。
本明細書において論じられるプロセスは、更なる新たにインスタンス化されたネットワークフローがネットワークデバイス162及び166において検出され、幾つかの新たにインスタンス化されたネットワークフローについて、アプリケーション識別子が受信されるときに継続することになる。言い換えると、ネットワークデバイス162及び166並びにネットワークコントローラ161は、新たな、又は精緻なアプリケーション分類器を生成し、新たにインスタンス化されたネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、本明細書において説明されたように機能し続けることができる。
他の実施態様では、図3に関連して論じられた例の種々の詳細は異なることができる。例えば、他の実施態様では、更なるネットワークデバイス、アプリケーション分類器及び/又は分類器トレーニングモジュールを用いることができる。さらに、幾つかの実施態様では、分類器トレーニングモジュールはネットワークコントローラとともにホストされず、別のネットワークデバイスにホストされる。
図4は、別の実施態様による、アプリケーションアウェアネットワーク管理プロセスの流れ図である。プロセス400は、ネットワークデバイス又は他のコンピューティングシステムにホストされるアプリケーションアウェアネットワーク制御システム110等のアプリケーションアウェアネットワーク制御システム(又はそのモジュール等の構成要素)によって実施することができる。したがって、何らかの動作を実行するプロセス400を参照しながら本明細書において述べられることは、プロセス400を実施するアプリケーションアウェアネットワーク制御システムがそれらの動作を実行することを意味するものと理解されたい。
さらに、図4に示されるプロセス400は、アプリケーションアウェアネットワーク管理プロセスの1つの例示的な実施態様である。本明細書における幾つかの例において論じられるように、他の実施態様では、リソース分類プロセスは、図4に示されるブロック(又はステップ)より多くの、若しくは少ないブロック(又はステップ)、又は図4に示されるのとは異なるブロック(又はステップ)を含むことができる。
ブロック410において、プロセス400は、ネットワークフローがインスタンス化されたと判断し、ブロック420において、そのネットワークフローのためのアプリケーション識別子が入手可能であるか否かを判断する。そのネットワークフローのためのアプリケーション識別子が入手可能でない(例えば、アプリケーション識別子がアプリケーション識別エージェントによって与えられなかった)場合には、そのネットワークフローは、そのネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために分類されるべきである。したがって、ブロック430においてアプリケーション識別信号が受信されるまで、ブロック421において、ネットワークフローからネットワークフロー特徴が導出される。
ブロック430においてアプリケーション識別信号を受信するのに応答して、プロセス400は、ネットワークフローからネットワークフロー特徴を導出するのを中止し、ブロック432において、アプリケーション識別モジュールにネットワークフロー特徴を与える。アプリケーション識別モジュールは、ネットワークフローを分類し、ネットワークフローに関連付けられるアプリケーションのアイデンティティを求めるために、ブロック421において導出されたネットワークフロー特徴に1つ又は複数のアプリケーション分類器を適用し、アプリケーション識別報告を生成する。ブロック433において、アプリケーション識別報告が受信され、プロセス400は、アプリケーション識別報告に基づいて、ブロック434においてネットワークフローにフロー動作を適用する。そして、プロセス400は、更なる新たにインスタンス化されたネットワークフローを識別するために、ブロック410に進む。
再びブロック420を参照すると、そのネットワークフローのためのアプリケーション識別子が入手可能である(例えば、アプリケーション識別エージェントから受信された)場合には、そのアプリケーション識別子に基づいて、ブロック422においてフローにフロー動作を適用することができる。他の実施態様では、そのアプリケーション識別子に基づいて、ブロック440後に、又はブロック450後に、フローにフロー動作を適用することができる。
そして、プロセス400は、ブロック440において、アプリケーション分類器を生成(又は規定)するか、又は精緻化する際に用いるためのネットワークフローを選択するか否かを判断する。上記で論じられたように、プロセス400は、種々の判定基準及び方法を用いてネットワークフローを選択することができる。ブロック440においてネットワークフローが選択されない場合には、更なる新たにインスタンス化されたネットワークフローを識別するために、プロセス400はブロック410に進む。しかしながら、ブロック440においてネットワークフローが選択される場合には、アプリケーション分類器を生成又は精緻化するために、ネットワークフローについての情報が分類器トレーニングモジュールに与えられる。
より具体的には、図4に示される例では、ブロック441において、ネットワークフローのためのアプリケーション識別子が分類器トレーニングモジュールに与えられ、ブロック442において、ネットワークフローからネットワークフロー特徴が導出され、ブロック443において、ネットワークフロー特徴が分類器トレーニングモジュールに与えられる。ブロック442及び443は、ブロック450においてアプリケーション識別信号が受信され、プロセス400がネットワークフロー特徴を導出し、与えるのを中止するまで繰り返される。上記で論じられたように、そしてブロック421、430、431及び432によって示されるように、幾つかの実施態様では、アプリケーション識別信号が受信され、それに応答して、プロセス400がネットワークフロー特徴を導出するのを中止し、分類器トレーニングモジュール又はアプリケーション識別モジュール等のエンティティにネットワークフロー特徴を与えるまで、ネットワークフロー特徴が導出される。
ブロック450においてアプリケーション識別信号が受信されるのに応答して、プロセス400がネットワークフロー特徴を導出し、分類器トレーニングモジュールに与えるのを中止した後に、更なる新たにインスタンス化されたネットワークフローを識別するために、プロセス400はブロック410に進む。分類器トレーニングモジュールはアプリケーション分類器を生成(又は修正)し、アプリケーション分類器を1つ又は複数のアプリケーション識別モジュールに与える。
上記で論じられたように、図4に示される例に種々の変更を加えることができる。例えば、幾つかの実施態様では、プロセス400は、アプリケーション識別信号が受信される前に、1つ又は複数のアプリケーション識別報告を受信する。さらに、プロセス400は、アプリケーション識別信号が受信される前に、そのようなアプリケーション識別報告に応答してフロー動作を適用することができる。これは、例えば、アプリケーション識別モジュールが予備アプリケーション識別報告をアプリケーションアウェアネットワーク制御システムに与えることができるようにし、それに応答して、アプリケーションアウェアネットワーク制御システムが、ネットワークフローに関連付けられるアプリケーションの識別を精緻化しながら、何らかの動作を適用できるようにするのに役に立つことができる。
具体例として、ネットワークフローに関連付けられるアプリケーションは特定のテレビ会議アプリケーションとすることができ、アプリケーション識別モジュールは、コラボレーションアプリケーション及びテレビ会議アプリケーションのための汎用アプリケーション分類器と、特定のテレビ会議アプリケーションのための特有アプリケーション分類器とを含むことができる。ネットワークフローから導出された少量のネットワークフロー特徴がこれらの分類器に適用された後に、アプリケーション識別モジュールは、アプリケーションを全体的にコラボレーションアプリケーションとして識別し、アプリケーションを全体的にコラボレーションアプリケーションとして識別する予備アプリケーション識別報告をアプリケーションアウェアネットワーク制御システムに与える。予備アプリケーション識別報告は、そのための精緻な1つ又は複数のアプリケーション識別報告が予想されるアプリケーション識別報告である。精緻なアプリケーション識別報告は、予備アプリケーション識別報告より具体的な、又は詳細なアプリケーション識別報告である。それに応答して、アプリケーションアウェアネットワーク制御システムは対応するフロー動作を適用する。
ネットワークフローから導出された更なるネットワークフロー特徴がこれらに分類器に適用された後に、アプリケーション識別モジュールは、アプリケーションを全体的にテレビ会議アプリケーションとして識別し、アプリケーションを全体的にテレビ会議アプリケーションとして識別する予備アプリケーション識別報告をアプリケーションアウェアネットワーク制御システムに与える。ここで、この予備アプリケーション識別報告は、先行する予備アプリケーション識別報告の精緻なアプリケーション識別報告と見なすこともできる。この予備アプリケーション識別報告に応答して、アプリケーションアウェアネットワーク制御システムは、汎用テレビ会議アプリケーションに対応するフロー動作を適用する。
最後に、ネットワークフローから導出された更なるネットワークフロー特徴がこれらの分類器に適用された後に、アプリケーション識別モジュールは、アプリケーションを具体的に特定のテレビ会議アプリケーションとして識別し、アプリケーションを具体的に特定のテレビ会議アプリケーションとして識別する精緻なアプリケーション識別報告をアプリケーションアウェアネットワーク制御システムに与え、アプリケーション識別信号を与える。ここで、このアプリケーション識別報告は、1つ又は複数の更なる精緻なアプリケーション識別報告が予想されないので、予備アプリケーション識別報告とは見なされない。この精緻なアプリケーション識別報告に応答して、アプリケーションアウェアネットワーク制御システムは、ネットワークフロー特徴を導出し、与えるのを中止し、特定のテレビ会議アプリケーションに対応するフロー動作を適用する。したがって、ネットワークフローからネットワークフロー特徴が導出される間に、種々のフロー動作をネットワークフローに適用することができる。
図5は、一実施態様による、アプリケーションアウェアネットワーク制御システムをホストするネットワークデバイスの概略的なブロック図である。図5に示される例では、ネットワークデバイス500は、プロセッサ510と、通信インターフェース521及び522と、メモリ530とを含む。ネットワークデバイス500は、例えば、スイッチ、ルータ、ブリッジ、ゲートウェイ、サーバ、又は何らかの他のネットワークデバイスとすることができる。幾つかの実施態様では、アプリケーションアウェアネットワーク制御システムをホストするネットワークデバイスは、それ自体がアプリケーションアウェアネットワーク制御システムと呼ばれる。
プロセッサ510は、命令、コード又は信号を実行又は解釈するハードウェア及びソフトウェアの任意の組み合わせである。例えば、プロセッサ510は、マイクロプロセッサ、特定用途向け集積回路(ASIC)、汎用グラフィックス処理ユニット(GPGPU:general purpose graphics processing unit)等のGPU、プロセッサ又はコンピューティングシステムのクラスタ又はネットワーク等の分散プロセッサ、マルチコア若しくはマルチプロセッサ式プロセッサ、又は仮想マシンの仮想若しくは論理プロセッサとすることができる。具体例として、幾つかの実施態様では、プロセッサ510は、高速で又は通信インターフェース521及び522の伝送路速度でデータパケットを処理するために、1つ又は複数の汎用プロセッサ及び1つ又は複数の特定用途向けデータパケットプロセッサ等の複数のプロセッサを含むことができる。
通信インターフェース520は、プロセッサ510が通信リンクを介して他のプロセッサ、ネットワークデバイス又はコンピューティングシステムと通信することができるようにするモジュールである。具体例として、通信インターフェース520は、リソース認可者(resource authority)からデータを受信し、リソース認可者にデータを送信するために、ネットワークインターフェースカードと、プロセッサ510にホストされる通信プロトコルスタック(例えば、ネットワークプロトコルを実施するために、メモリ530に記憶され、プロセッサ510において実行又は解釈される命令又はコード)とを含むことができる。具体例として、通信インターフェース520は、有線インターフェース、ワイヤレスインターフェース、光インターフェース、イーサネット(登録商標)インターフェース、ファイバチャネルインターフェース、インフィニバンドインターフェース、IEEE802.11インターフェース、又はプロセッサ510が他のプロセッサ若しくはコンピューティングシステムと通信するためにデータを表す信号若しくはシンボルを交換することができる何らかの他の通信インターフェースとすることができる。
メモリ530は、命令、コード、データ又は他の情報を記憶するプロセッサ可読媒体である。本明細書において用いられるときに、プロセッサ可読媒体は、命令、コード、データ又は他の情報を非一時的に記憶し、プロセッサが直接的又は間接的にアクセス可能である任意の媒体である。言い換えると、プロセッサ可読媒体は、プロセッサが命令、コード、データ又は他の情報にアクセスすることができる非一時的媒体である。例えば、メモリ530は、揮発性ランダムアクセスメモリ(RAM)、ハードディスクドライブ若しくはソリッドステートドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、セキュアデジタル(商標)(SD)カード、マルチメディアカード(MMC)カード、コンパクトフラッシュ(登録商標)(CF)カード等の永続記憶装置、又はその組み合わせ又は他のメモリの組み合わせとすることができる。言い換えると、メモリ530は、複数のプロセッサ可読媒体を表すことができる。幾つかの実施態様では、メモリ530は、プロセッサ510と一体に構成することができるか、プロセッサ510と別にすることができるか、又はコンピューティングシステム500の外部に存在することができる。
メモリ530は、プロセッサ510において実行されるときに、オペレーティングシステム531と、アプリケーションアウェアネットワーク制御システム532の構成要素(又はモジュール)等の他のモジュールとを実施する命令又はコードを含む。言い換えると、メモリ530に記憶される命令又はコードはモジュールと呼ぶことができる。また、メモリ530は、図5には示されない他のモジュールを実施する更なるコード又は命令、及び/又はルーティングテーブル又は転送テーブル等の他のデータセットを記憶するように動作可能である。
幾つかの実施態様では、ネットワークデバイス500は仮想化ネットワークデバイスとすることができる。例えば、ネットワークデバイス500は、コンピューティングサーバ又は物理ネットワークデバイスにおいて仮想マシンとしてホストすることができる。
アプリケーションアウェアネットワーク制御システム532は、種々のメモリ又はプロセッサ可読媒体から、ネットワークデバイス500にアクセス又はインストールすることができる。例えば、ネットワークデバイス500は、通信インターフェース(図示せず)を介して、リモートプロセッサ可読媒体にあるアプリケーションアウェアネットワーク制御システム532にアクセスすることができる。具体例として、ネットワークデバイス500は、ブートプロセス(又はシーケンス)中にオペレーティングシステム531及びアプリケーションアウェアネットワーク制御システム532の構成要素にアクセスするネットワークブートデバイスとすることができる。
別の例として、リソース500は、(例えば、埋め込みフラッシュメモリ、ソリッドステートディスクドライブ又はハードディスクドライブなどの)プロセッサ可読媒体、又はそのようなプロセッサ可読媒体にアクセスするデバイスを含むことができ(図5には示されていない)、そのプロセッサ可読媒体アクセスデバイスを介して、プロセッサ可読媒体にあるアプリケーションアウェアネットワーク制御システム532の構成要素にアクセスすることができる。
これまでいくつかの実施態様を図示して説明してきたが、形態及び細部に関して種々の変更を加えることができる。例えば、1つの実施態様及び/又はプロセスに関連して説明された幾つかの特徴は、他の実施態様に関連付けることができる。言い換えると、1つの実施態様に関連して説明されたプロセス、特徴、構成要素及び/又は特性は他の構成要素においても有用である可能性がある。別の例として、特定のモジュール又は要素に関連して上記で論じられた機能を、他の実施態様において異なるモジュール、エンジン又は構成要素に含めることもできる。さらに、本明細書において説明されたシステム、装置及び方法は、説明された異なる実施態様の構成要素及び/又は特徴の種々の組み合わせ及び/又は部分的組み合わせを含みうることは理解されたい。したがって、1つ又は複数の実施態様を参照しながら説明された特徴は、本明細書において説明された他の実施態様と組み合わせることができる。
本明細書において用いられるときに、「1つ」及び「その」という単数形は、文脈において他に明確に指示されない限り複数形も含む。したがって、例えば、「モジュール」という用語は、1つ又は複数のモジュール又はモジュールの組み合わせを意味することを意図している。さらに、本明細書において用いられるときに、「〜に基づく」という用語は、「〜に少なくとも部分的に基づく」を意味する。したがって、何らかの根拠に基づくとして説明された特徴は、その根拠にのみ基づくことができるか、又はその根拠と、1つ若しくは複数の他の根拠とに基づくことができる。



  1. 命令を表すコードを記憶するプロセッサ可読媒体であって、該命令は、プロセッサにおいて実行されるときに、該プロセッサに対し、
    ネットワークフローがインスタンス化されたと判断させ、
    前記ネットワークフローがインスタンス化されたと判断するのに応答して、前記ネットワークフローに関連付けられるネットワークフロー特徴を導出させ、
    前記ネットワークフロー特徴をアプリケーション識別モジュールに与えさせ、
    アプリケーション識別信号に応答して、前記アプリケーション識別モジュールに前記ネットワークフロー特徴を与えるのを中止させ、
    前記アプリケーション識別モジュールから受信されたアプリケーション識別報告に基づいて前記ネットワークフローにフロー動作を適用させる、
    プロセッサ可読媒体。

  2. 命令を表すコードを更に記憶し、該命令は、前記プロセッサにおいて実行されるときに、該プロセッサに対し、
    アプリケーション識別エージェントからアプリケーション識別子を受信させ、
    前記アプリケーション識別モジュールにアプリケーション分類器を与えるために、前記アプリケーション識別モジュールと通信する分類器トレーニングモジュールに前記アプリケーション識別子を与えさせる、請求項1に記載のプロセッサ可読媒体。

  3. 前記アプリケーション識別信号は、前記ネットワークフロー内の所定の数のデータパケットの送信に応答して生成され、
    前記ネットワークフロー特徴は、前記所定の数のデータパケットから導出される、請求項1に記載のプロセッサ可読媒体。

  4. 命令を表すコードを更に記憶し、該命令は、前記プロセッサにおいて実行されるときに、該プロセッサに対し、
    前記アプリケーション識別モジュールから前記アプリケーション識別信号を受信させる、請求項1に記載のプロセッサ可読媒体。

  5. 前記アプリケーション識別報告は精緻なアプリケーション識別報告であり、前記フロー動作は第2のフロー動作であり、前記プロセッサ可読媒体は命令を表すコードを更に記憶し、該命令は、前記プロセッサにおいて実行されるときに、該プロセッサに対し、
    一度目に、前記アプリケーション識別モジュールから予備アプリケーション識別報告を受信させ、
    前記予備アプリケーション識別報告に基づいて前記ネットワークフローに第1のフロー動作を適用させ、
    前記一度目の後の二度目に、前記アプリケーション識別モジュールから前記精緻なアプリケーション識別報告を受信させ、前記第2のフロー動作は前記精緻なアプリケーション識別報告に基づくものである、請求項1に記載のプロセッサ可読媒体。

  6. 命令を表すコードを更に記憶し、該命令は、前記プロセッサにおいて実行されるときに、該プロセッサに対し、
    前記アプリケーション識別モジュール又はポリシーストアのうちの1つから前記フロー動作のフロー動作識別子にアクセスさせる、請求項1に記載のプロセッサ可読媒体。

  7. 第1の複数のネットワークフローを選択するステップであって、前記複数のネットワークフローからの各ネットワークフローは新たにインスタンス化されたネットワークフローである、選択するステップと、
    前記第1の複数のネットワークフローからの各ネットワークフローについて、アプリケーション識別子が入手可能であることを判断するステップと、
    前記第1の複数のネットワークフローからの各ネットワークフローについて、かつ第2の複数のネットワークフローからの各ネットワークフローについて、ネットワークフロー特徴を導出するステップと、
    前記第1の複数のネットワークフローからの各ネットワークフローについての前記ネットワークフロー特徴及び前記アプリケーション識別子を分類器トレーニングモジュールに与えるステップと、
    前記第2の複数のネットワークフローからの各ネットワークフローについての前記ネットワークフロー特徴をアプリケーション識別モジュールに与えるステップと、
    前記ネットワークフローについてのアプリケーション識別信号に応答して、前記第1の複数のネットワークフロー及び前記第2の複数のネットワークフローからの各ネットワークフローについての前記ネットワークフロー特徴を前記与えることを中止するステップと
    を含んでなる、アプリケーションアウェアネットワーク管理方法。

  8. 前記選択するステップは、ランダムに選択すること、又は適応的に選択することである、請求項7に記載のアプリケーションアウェアネットワーク管理方法。

  9. 前記アプリケーション識別モジュールから、前記第2の複数のネットワークフローからのネットワークフローに関連付けられるアプリケーション識別報告を受信するステップと、
    前記アプリケーション識別報告に関連付けられる前記第2の複数のネットワークフローからのネットワークフローにフロー動作を適用するステップと
    を更に含む、請求項7に記載のアプリケーションアウェアネットワーク管理方法。

  10. 第1の複数のネットワークフローのインスタンス化を検出する検出モジュールであって、該第1の複数のネットワークフローは、第2の複数のネットワークフローと第3の複数のネットワークフローとを含む、検出モジュールと、
    前記第1の複数のネットワークフローから前記第2の複数のネットワークフローを選択する選択モジュールと、
    複数のアプリケーション識別子を受信し、該複数のアプリケーション識別子を分類器トレーニングモジュールに与える収集モジュールであって、前記複数のアプリケーション識別子からの各アプリケーション識別子は前記第2の複数のネットワークフローからの1つのネットワークフローに関連付けられる、収集モジュールと、
    前記第1の複数のネットワークフローからの各ネットワークフローについてのネットワークフロー特徴を導出し、前記第2の複数のネットワークフローからの各ネットワークフローについての前記ネットワークフロー特徴を前記分類器トレーニングモジュールに与え、前記ネットワークフローに関連付けられるアプリケーション識別信号に応答して、前記第1の複数のネットワークフローからの各ネットワークフローについての前記ネットワークフロー特徴を導出するのを中止する特徴抽出モジュールと、
    アプリケーション識別モジュールから受信されたアプリケーション識別報告に基づいて、前記第3の複数のネットワークフローからの各ネットワークフローにフロー動作を適用する動作モジュールと
    を備えてなる、アプリケーションアウェアネットワーク制御システム。

  11. 前記選択モジュールは前記第1の複数のネットワークフローから前記第2の複数のネットワークフローをランダムに選択する、請求項10に記載のアプリケーションアウェアネットワーク制御システム。

  12. 前記選択モジュールは前記第1の複数のネットワークフローから前記第2の複数のネットワークフローを適応的に選択する、請求項10に記載のアプリケーションアウェアネットワーク制御システム。

  13. 前記分類器トレーニングモジュールを更に備え、該分類器トレーニングモジュールは、前記複数のアプリケーション識別子と、前記複数のネットワークフローについての前記ネットワークフロー特徴とに基づいてアプリケーション分類器を生成し、該アプリケーション分類器を前記アプリケーション識別モジュールに与える、請求項10に記載のアプリケーションアウェアネットワークシステム。

  14. 前記特徴抽出モジュールは、前記第3の複数のネットワークフローからの各ネットワークフローについてのネットワークフロー特徴を導出し、該第3の複数のネットワークフローについての前記ネットワークフロー特徴を前記アプリケーション識別モジュールに与え、
    該システムは、前記アプリケーション識別モジュールを更に備え、該アプリケーション識別モジュールは、前記分類器トレーニングモジュールからアプリケーション分類器を受信し、前記第3の複数のネットワークフローについての前記ネットワークフロー特徴に該アプリケーション分類器を適用することによって、前記第3の複数のネットワークフローに関連付けられるアプリケーションを識別し、前記アプリケーション識別報告を生成する、請求項10に記載のアプリケーションアウェアネットワーク制御システム。

  15. アプリケーション識別子が複数のアプリケーション識別エージェントから受信され、前記複数のアプリケーション識別エージェントからの各アプリケーション識別エージェントは、ネットワークホストにホストされ、前記ネットワークホストにホストされるアプリケーションからのネットワークフロー要求に応答して、アプリケーション識別子を与える、請求項10に記載のアプリケーションアウェアネットワーク制御システム。

 

 

Patent trol of patentswamp
類似の特許
一実施形態では、方法が、コンテンツ・オブジェクトを求める要求をユーザのモバイル−クライアント・システムから受信する工程と、ユーザのモバイル−クライアント・システムに関連付けられたSIMカード情報にアクセスする工程と、少なくともそのSIMカード情報に基づいてキャリアを決定する工程と、要求に応答してウェブ・ページをモバイル−クライアント・システムに送る工程であって、コンテンツ・オブジェクトが、モバイル−クライアント・システムの決定されたキャリアに基づいてカスタマイズされている、工程とを含む。
データの自動圧縮 // JP2016528591
本出願は、少なくとも2つの処理ノード(1)を備えるシステムであって、ノード(1)が、実行環境(2)および処理コンポーネント(3)を備え、各実行環境(2)が、処理コンポーネント(3)の発信ポートおよび異なる処理コンポーネント(3)の着信ポートの間に通信チャネル(4)を確立するための手段を含み、通信チャネル(4)がノード(1)の境界を横断するかを判定し、通信チャネル(4)を経由して転送されるデータの符号化/復号が必要かを決定するように構成された、システムに関する。
閉回路eコマース内のサーバと間、及び建物のメインルータ及びインターフェースを介したサーバ及びショッピング端末間のeショッピング信号及び情報を通信し、ショッピング端末に保存されたコンテンツ及び前記eコマースのプログラムを更新するための高速湖心信号を含むASK及びFSK変調データ並びにコマンドを含む少なくとも1つのツイストペアを介して情報及びeショッピング信号を伝搬するための方法及び装置である。配送サーバは、誤りなしでピックアップ及び配送を確実にするために、配送デバイス及び貯蔵デバイスを用いて、建物内又は建物外に位置付けられた、注文された商品をピックアップ及び配送する。
本発明はパーソナル感情アイコンを提供するための方法に関し、この方法は、a)新しい自分撮り画像をキャプチャするか、又は既存の画像ファイルを選択することによって、ユーザ又は人物の顔の表情を表す少なくとも1つの自分撮り画像を提供するステップと、b)前記提供された画像に1つ又は複数の画像処理フィルタを適用することによって前記画像を処理して、前記提供された画像をにし、且つ/又は提供された顔によって表される表情を強調するステップと、c)前記処理された画像を感情アイコンの標準形式に変換するステップであって、例えば、変換された画像が、ユーザのコンピュータベースの装置(例えば、スマートフォン又はPC)上の、ルーラー形式、メニュー形式、又は、画面上の仮想キーボード形式(例えば、iPhoneのオペレーティング・システム(iOS)の画面上のキーボードなどの既存の仮想キーボード配列への拡張/アドオンとして)などの、任意の表示可能な形式で実装可能であるステップと、d)前記処理された画像を、変換された感情アイコンのローカルなルーラー/メニューとして保存するか、或いは、前記処理された画像を承認のためにリモートの感情アイコン・サーバにアップロードするステップと、e)承認時に、前記処理された画像を前記ユーザに関連するオンライン・アカウントに追加して、前記処理された画像がパーソナル感情アイコンとして前記ユーザによって1つ又は複数のアプリケーション及び/又はプラットフォームで利用可能になるようにするステップとを含む。
画像処理装置は、第1のフレームを取得し、第1のユーザと第2のユーザとの少なくともいずれかのための追加の画像データを取得し、第1のフレーム及び第1のユーザのための追加画像データを合成することによる第1のユーザのための第1の合成フレームと第1のフレーム及び第2のユーザのための追加画像データを合成することによる第2のユーザのための第2の合成フレームとの少なくともいずれかを生成し、第1のユーザに対して、第1の合成フレームが生成された場合には第1の合成フレームを、それ以外の場合には第1のフレームを出力し、第2のユーザに対して、第2の合成フレームが生成された場合には第2の合成フレームを、それ以外の場合には第1のフレームを出力する。
本願はデジタル署名の生成方法及び装置を提供する。該方法は、装置が有効性判定条件を満たすデジタル署名パラメータrを生成し、秘密鍵d、乱数k、r及び楕円曲線パラメータnを用いて、以下の式


に従ってデジタル署名パラメータsを生成し、ここで、kの値範囲が[1,n−1]であり、生成されたsが0であるか否かを判断し、0の場合、0でないものとなるまで、有効性判定条件を満たすrを生成し直し、d、生成し直された値範囲が[1,n−1]のk、生成し直されたr及びnを用いて、sを生成し直し、r及び0でないsのデータ型をバイトストリングに変換し、デジタル署名(r,s)を取得する。本願の実施例に係る態様によれば、簡略化された計算式を用いてデジタル署名パラメータsを取得することで、大整数演算の回数を低減でき、SM2デジタル署名生成アルゴリズムに基づくデジタル署名生成の演算効率を向上できる。
車両通信システム(100)は、車両(102)に位置付けられる基地局(104)と、移動体通信ユニット(122)を備える。基地局(104)は、移動体通信ユニット(122)に信号を送信するための第1送信器と、移動体通信ユニット(122)から認証信号を受信するための第1受信器を備える。基地局(104)は、移動体通信ユニットと少なくとも第1送信器及び第1受信器の間の通信の飛行時間に基づいて車両に対する移動体通信ユニットの位置を追跡し;被監視車両(102)機能のパフォーマンスに関するサブシステムステータス信号を受け取り、サブシステムステータス信号に基づいて、被監視車両(102)機能に関する被監視機能ステータスを決定するように構成される。基地局(104)は、また、移動体通信ユニット(122)による受信のためのステータス更新信号を出力するようにも構成され、ステータス更新信号は、被監視機能ステータスの指標である。車両通信システム(100)は、移動体通信ユニット(122)の位置に依存してステータス更新信号に基づいてユーザーに対してステータス指標を提供するように構成される。
無線ネットワークにおけるマシンタイプ通信のためのeNodeBおよび方法の実施形態が本明細書において概して記載される。いくつかの実施形態において、進化型ノードB(eNodeB)の回路によって実行される方法は、ユーザ機器(UE)がマシンタイプ通信(MTC)に用いられるよう設定されるという通知をeNodeBが受信する段階を含み得る。当該方法は、UEが無線リソース制御接続(RRC_Connected)状態にあるかどうかを決定する段階と、UEが省電力モードに入り得るかどうかを決定する段階とを含み得る。当該方法は、UEがRRC_Connected状態にあり、かつ、UEが省電力モードに入り得ると決定することに応答して、RRCディープアイドルモードに移行するようUEを設定する段階を含み得る。
特に、電子装置内の2つのデバイス間のデータの送信を容易にするシステム、方法および装置を説明する。情報が、n相極性符号化シンボルにおいて送信される。ドライバは、連続的なシンボル間の遷移期間を最小にするために、2つ以上のコネクタ上の状態遷移を整列させるように適合または構成され得る。ドライバは、いくつかの遷移を進ませるかまたは遅延させる回路を含み得る。ドライバは、コネクタが非駆動状態に遷移されているときでさえ、遷移期間の一部の間にコネクタの状態を駆動するように動作するプリエンファシス回路を含み得る。
データフィード(14)のソースによる再送信を必要としないデータフィードからブロードキャストされたデータユニットを管理することが、ネットワーク(12)の第1のノードにおいて、複数のデータユニットを含むデータフィードの少なくとも一部を受信することと、ネットワークの第2のノードにおいて、データフィードの少なくとも一部を受信することと、第1のノードにおいてデータフィードの受信の中断を判定することと、中断の前に第1のノードによって受信された最後のデータユニットと中断の後に第1のノードによって受信された最初のデータユニットとの間に広がるデータの欠落(504)の範囲を特定することと、第2のノードによって保存された結果(510)に対する要求を第1のノードから送信すること(506)であって、第2のノードによって保存された結果がデータの欠落に対応する、送信することとを含む。
To top