JP2009506618A - 伝送情報を処理して、転送するシステムおよび方法 - Google Patents
伝送情報を処理して、転送するシステムおよび方法 Download PDFInfo
- Publication number
- JP2009506618A JP2009506618A JP2008527577A JP2008527577A JP2009506618A JP 2009506618 A JP2009506618 A JP 2009506618A JP 2008527577 A JP2008527577 A JP 2008527577A JP 2008527577 A JP2008527577 A JP 2008527577A JP 2009506618 A JP2009506618 A JP 2009506618A
- Authority
- JP
- Japan
- Prior art keywords
- flow
- policy
- application
- path
- traffic
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
第1のエンティティと第2のエンティティとの間のデジタル電子フローを処理するシステムおよび方法であって、このデジタル電子フローに施されるべきフロー・ポリシーを決定し、次に、そのフロー・ポリシーに基づいて、そのデジタル電子フローを経路に沿って送るもの。それぞれのフローに対してIDが提供され、また、それぞれのフローに関連するタグは、その関連するフローに施されるべきフロー・ポリシーを示している。フローはまた、互いに関連付けられ、しかも、関連するフローは、関連するフロー・ポリシーを持っている。特に、このフローは、処理されるか、あるいは転送されることがある。この経路は、グラフ構造体や仮想アプリケーションを含むことがある。
【選択図】図1
【選択図】図1
Description
本発明は、伝送情報を処理するシステムおよび方法に関する。さらに具体的に言えば、本発明は、第1のエンティティと第2のエンティティとの間のデジタル電子フローを転送して、処理するシステムおよび方法に関する。
本発明により、第1のエンティティと第2のエンティティとの間のデジタル電子フローを処理するシステムであって、
・このデジタル電子フローに施されるべきフロー・ポリシーを決定するフロー・ポリシー決定手段と、
・関連フロー・ポリシーに基づいて、このフローを、定められた経路に沿って送る送り手段(directing means)と、
を含むシステムが提供される。
・このデジタル電子フローに施されるべきフロー・ポリシーを決定するフロー・ポリシー決定手段と、
・関連フロー・ポリシーに基づいて、このフローを、定められた経路に沿って送る送り手段(directing means)と、
を含むシステムが提供される。
このシステムは、初めに、上記第1のエンティティからのそれぞれの新たなフローに対してIDを提供し、後で、既存フローのIDを識別するフローID提供・識別手段を含むことがある。
上記フロー・ポリシー決定手段は、フローのIDに関連付けられるポリシー・タグであって、このフローに施されるべきフロー・ポリシーを示すポリシー・タグを、それぞれのフローに対して提供することがある。
このフロー・ポリシー決定手段は、最初にフローを受け取ったときに、そのフローに施されるべきフロー・ポリシーを決定し、また、フローに施されるフロー・ポリシーを、その存続期間の間に変更することがある。
このシステムはまた、第1のフローが第2のフローに関連付けられるべきであるかどうか判定し、また、関連フロー・ポリシーを関連フローに施す関連付け判定手段(association determining means)を含むことがある。
少なくとも1つの処理手段が、この経路に含まれることがある。同様に、少なくとも1つの転送手段も、この経路に含まれることがある。
この処理手段は、グラフ構造体(graph structure)、プロセッサ、メモリ、仮想マシン、および/または、アプリケーションを含むことがある。このアプリケーションは、仮想マシン上でカーネル・モードで実行するアプリケーションであるか、あるいは、仮想マシン上でユーザ・モードで実行するアプリケーションである。
この転送手段は、グラフ構造体、ネットワーク・インターフェース、通信インターフェース、仮想スイッチ、仮想ネットワーク・インターフェース、および/または、仮想ストリーム・インターフェースを含むことがある。
特に、上記送り手段は、柔軟なグラフ構造体(flexible graph structure)を含む経路に沿って、このフローを送ることがある。このグラフ構造体は、サブグラフ構造体、またはネストされたグラフ構造体を持つことがある。このグラフ構造体はまた、処理コンポーネントおよび/または転送コンポーネントも持つことがある。
このシステムは、少なくとも1つのリアルタイム処理機能を持つオペレーティングシステムと、このオペレーティングシステムのカーネル内、またはこのオペレーティングシステムのユーザ空間内でホストされるアプリケーションとを持つプロセッサであって、上記送り手段が、このアプリケーションを含む経路に沿って、このフローの少なくとも一部を送るようなプロセッサを含むことがある。
この経路を形成するエンティティは、並列に、直列に、あるいは並列と直列の任意の組合せで接続されていることがある。この経路は、内部コンポーネントおよび/または外部コンポーネントを含むことがある。
上記フロー・ポリシー決定手段は、アプリケーションに応答することがある。
さらに、このフロー・ポリシー決定手段は、フローの前進部分と戻り部分に対して、異なるフロー・ポリシーを決定することがある。
このフロー・ポリシー決定手段は、任意の適切な基準に基づいて、フローに対してフロー・ポリシーを決定することがある。特に、これらの基準は、メモリ使用量、ネットワーク帯域幅の使用、電力消費、仮想マシン上のゲスト・オペレーティングシステムからのフィードバック、アプリケーションからのフィードバック、処理手段からのフィードバック、および、転送手段からのフィードバックであってよい。これらの基準はまた、パケット・ヘッダー中のフィールド、パケット・ペイロード中のデータ、および、プロトコルとプロトコル・セットであってよい。
同様に、上記関連付け判定手段は、特定タイプのアプリケーションからのフロー、指定したプロトコルを使用するフロー、関連プロトコル階層の指定レイヤにサブプロトコルを使用するフロー、トラフィックの指定部分中の指定パターン、指定した組の通信エンティティに関連するフロー、含まれている経路からのフロー、および、指定したリンク、ネットワーク、ネットワーク・インターフェースからのフローなどのフローを、適切な基準に基づいて関連付けることがある。
さらに本発明により、第1のエンティティと第2のエンティティとの間のデジタル電子フローを処理する方法であって、
・フローに施されるべきポリシーを決定することと、
・関連フロー・ポリシーにより、このフローを、定められた経路に沿って送ることと、
を含む方法が提供される。
・フローに施されるべきポリシーを決定することと、
・関連フロー・ポリシーにより、このフローを、定められた経路に沿って送ることと、
を含む方法が提供される。
当初、IDが、第1のエンティティからのそれぞれの新たなフローに提供され、後で、既存フローのIDが識別されることがある。
この方法は、フローに施されるべきフロー・ポリシーを示すポリシー・タグをそれぞれのフローに対して提供して、そのポリシー・タグを、このフローのIDに関連付けることを含む場合がある。
上に示されるように、少なくとも1つの処理手段および/または1つの転送手段が、この経路中に含まれることがある。
フローに施されるべきフロー・ポリシーは、このフローを最初に受け取ったときに決定されて、また、その有効期間中に変更されることがある。
この方法はさらに、第1のフローが第2のフローに関連付けられるべきかどうか判定して、関連フロー・ポリシーを関連フローに施すことも含む場合がある。
柔軟なグラフ構造体を含み、また、少なくとも1つのリアルタイム処理機能を持つオペレーティングシステムのカーネル内またはユーザ空間内でホストされるアプリケーションを含み、また、並列および/または直列に接続された複数のエンティティを含むか、あるいは内部コンポーネントおよび/または外部コンポーネントを含む経路に沿って、このフローを送ることがある。
このフロー・ポリシーは、アプリケーションに応答して決定され、また、このフロー・ポリシーは、フローの前進部分と戻り部分に対して、異なることがある。
第1のエンティティと第2のエンティティは、ネットワーク装置または通信装置、ネットワーク機器(例えば、ブリッジ/ルータ/スイッチ)、ネットワーク・ノード、コンピュータ、アプリケーション、タスク、プロセス、サービス、ユーザ、あるいは、他のソフトウェア・システムまたはハードウェア・システムであることがある。
このシステムは、ネットワーク・トラフィックまたは他の伝送情報が強制的にこのシステムを通過させられるように、ネットワークまたは他の通信システムに接続されることがある。伝送情報はまた、適切に構築または策定されている伝送情報に基づいて、例えば、適切なアドレス(レイヤ2のネットワーク・アドレス)を用いて、このシステムに宛てられている情報により、このシステムにて発信するか、着信するか、あるいは、通過することがある。したがって、このシステムは、ルータ、スイッチ、「bump in the wire」ブリッジ、「自己学習」マルチポート・ブリッジ、リレー、プロキシ、またはゲートウェイであってよい。
さらに、このシステムは、1つまたは複数のプロセッサまたはコプロセッサを含むことがある。このシステムが複数のプロセッサまたはコプロセッサを持っている場合には、これらのプロセッサまたはコプロセッサは、以下の1つまたは複数を用いて相互接続されてよい。
・物理的に共有されるメモリ
・リモート直接メモリアクセス(RDMA)機構を用いて実現される仮想共有メモリ
・HyperTransport、PCI、またはPCI Expressのようなバス
・Gigabit Ethernet(登録商標)、Advanced Switching Interconnect、またはInfinibandのような、任意の他のネットワークまたは他の通信リンク(データグラム指向であれ、ストリーム指向であれ)。
・物理的に共有されるメモリ
・リモート直接メモリアクセス(RDMA)機構を用いて実現される仮想共有メモリ
・HyperTransport、PCI、またはPCI Expressのようなバス
・Gigabit Ethernet(登録商標)、Advanced Switching Interconnect、またはInfinibandのような、任意の他のネットワークまたは他の通信リンク(データグラム指向であれ、ストリーム指向であれ)。
このシステムは、ネットワーク・インターフェースまたは通信インターフェースを用いて、通信ネットワークまたは他のデータ通信システムに接続されることがある。この接続されたネットワークは、伝送情報が属している集合体(aggregate)が、その伝送情報の一部として明瞭に識別されるか、あるいは、この集合体を、その伝送情報または伝送メディアに関連するパラメータから推定できるようなデータ通信システムまたは通信ネットワークであってよい。その関連付け手段(associating means)は、この集合体識別情報の同等または関係性を利用して、伝送情報を他の伝送情報に関連付けることがある。この集合体識別情報は、そのフロー、チャネル、回路、パイプ、セッション、ストリーム、タイムスロット、周波数、スペクトル拡張符号、ラベル・スイッチ・パス(label switched path)、または、伝送情報の波長を識別することがある。
この通信ネットワークは、伝送データを個別のデータグラムに区分することがある。これらのデータグラムは、IPパケット、ATMセル、Ethernetフレームであるか、あるいは、任意のメディアを介して運ばれる他の任意のプロトコルを使用することがある。この関連付け手段は、ネットワーク/通信トラフィックを調べることで、経時的に保持される情報だけでなく、これらのデータグラムに入っている情報(ヘッダー情報とペイロード情報の両方)も利用して、伝送情報を他の伝送情報に関連付ける。
この伝送情報のフォーマットまたは解釈(interpretation)は、プロトコル層から成る一階層によって定められることがある。この関連付け手段は、これらのプロトコル層の1つまたは複数にてプロトコルを調べて、(もしあれば)どの伝送情報に、他の伝送情報を関係付けるのか決定することがある。
この伝送情報は、例えば、IP(Internet Protocol)および/またはEthernet Protocol(IEEE 802.x)を使用するネットワーク・トラフィックであることもある。この関連付け手段は、ネットワーク・パケットのペイロードだけでなく、IPおよび/またはEthernetのヘッダーも調べ、さらに、これらのプロトコル中にネストされた任意プロトコルのヘッダーまたはペイロードも調べて、(もしあれば)どの伝送情報に、他の伝送情報を関係付けるか決定することがある。
この伝送情報は、この伝送情報の送信元(すなわち、発信者または起動側)と送信先(すなわち、アドレスまたはターゲット)を識別する識別情報を含むことがある。この識別情報は、ネットワーク・ノード識別子を、Internet Protocolアドレス、MAC層アドレス、数字、文字、バイナリ、または他のフォーマットで含むことがある。この識別情報はまた、この伝送情報の送信元または送信先であるネットワーク・ノード内に、ユーザ、アプリケーション、コンポーネント、プロセス、タスク、サブシステム、または他のエンティティを指定する識別子も含むことがある。この識別情報は、前述の送信元または送信先のグループまたは他の集合体を表すことがある。この識別情報はまた、その伝送情報で使用されるプロトコルまたはサブプロトコルも指定することがある。すなわち、これらのプロトコルまたはサブプロトコルは、他の識別情報のフォーマット、範囲、および/またはネーム空間を定めることがある。上記関連付け手段は、前述の識別情報のどれか、前述の識別情報の組合せを利用して、伝送情報を、他の伝送情報に関連づけることがある。
この伝送情報は、それ自体、直接に、または間接に関連伝送情報を参照することがある。上記関連付け手段は、これらの参照情報を検出し、取り出し、復号し、解釈し、利用して、参照情報により伝送情報を、他の伝送情報に関連付けることがある。
この伝送情報は例えば、関連するデータ伝送情報のセッション/ストリーム/経路/トラフィックを参照する信号プロトコルまたは制御プロトコル(例えば、SIP/H.323/FTP/RSVP/CR−LDPなど)であることもある。
この関連付け手段はまた、定められたバンドリング・ポリシー(bundling policy)により、伝送情報を関連づけることもある。このバンドリング・ポリシーは、
・特定タイプのアプリケーションにより送られた伝送情報、あるいは、関連プロトコル階層の指定レイヤにて指定プロトコルまたは指定サブプロトコルを使用する伝送情報と、
・指定した任意パターンを含む伝送情報(その場合、それぞれのパターンが、さらに高いレベル(コネクション/セッション/アプリケーション層)のデータストリームなどの中で、このトラフィックの指定部分、例えば、データグラムのヘッダー、データグラムのペイロードの中に求められる)と、
・特定の組の通信エンティティ(例えば、ユーザ、サーバー、装置、ネットワーク、アプリケーション・インスタンス、サービス、または、それらを組み合わせたもの)に関連する伝送情報。
・収容フロー(containing flow)の中に、例えば、トンネル、仮想回線、仮想パス、ラベル・スイッチ・パス、仮想プライベート・ネットワーク、トランクなどの中に入っている伝送情報、
・指定したリンクまたはネットワークを介して送られるか、あるいは、この装置の指定ネットワーク・インターフェースに入った情報と、
・任意の深さまでネストされた上記情報の任意の組合せと、
をひとまとめにすることがある。
・特定タイプのアプリケーションにより送られた伝送情報、あるいは、関連プロトコル階層の指定レイヤにて指定プロトコルまたは指定サブプロトコルを使用する伝送情報と、
・指定した任意パターンを含む伝送情報(その場合、それぞれのパターンが、さらに高いレベル(コネクション/セッション/アプリケーション層)のデータストリームなどの中で、このトラフィックの指定部分、例えば、データグラムのヘッダー、データグラムのペイロードの中に求められる)と、
・特定の組の通信エンティティ(例えば、ユーザ、サーバー、装置、ネットワーク、アプリケーション・インスタンス、サービス、または、それらを組み合わせたもの)に関連する伝送情報。
・収容フロー(containing flow)の中に、例えば、トンネル、仮想回線、仮想パス、ラベル・スイッチ・パス、仮想プライベート・ネットワーク、トランクなどの中に入っている伝送情報、
・指定したリンクまたはネットワークを介して送られるか、あるいは、この装置の指定ネットワーク・インターフェースに入った情報と、
・任意の深さまでネストされた上記情報の任意の組合せと、
をひとまとめにすることがある。
このフロー・ポリシー決定手段は、伝送情報を分類して、伝送情報をカテゴリに分ける。このフロー・ポリシー決定手段は、伝送情報を、以下の様々な基準により分類することがある。
分類は、パケット・ヘッダー、パケット・ペイロード(内容)中のフィールドと、装置全体の状態だけでなく、分類されているフローに対して維持される状態にも基づいて、行われる。
この分類手段は、パケット境界にまたがるプロトコル、または他のプロトコル上に重ねられるプロトコルを、この分類手段の組み込まれたプロトコル知識、あるいはインストールされた追加のプロトコル・サポート・モジュールを用いて、復号することもある。特定プロトコル、または特定の組のプロトコルを検出したかどうかが、分類基準として使用される。
この分類手段は、そのサポートされたプロトコル層からデータを取り出して、そのデータを、任意パターンと比較することもある(正規表現、範囲(レンジ)、アドレスの最長プレフィックス一致判定(longest prefix matching)、サブストリング、および、ストリング/数値的に同等と、一致(マッチング)よりも大きい/小さい、を含む)。
この分類手段は、論理式と算術式を使用して、分類の部分結果を組み合わせて、全体結果を形成する。
このシステムは、どんな方法で伝送情報を処理すべきかも決定することがある。これは、上記関連付け手段の結果と、上記フロー・ポリシー決定手段の結果を利用して行われて、この伝送情報に施されるべき処理ポリシーを決定する。この処理ポリシーは、このトラフィックをさらに処理/検査する必要のある組のコンポーネント(直列にあるか、並列にあるか、あるいは任意グラフにおいて相互接続される)を、これらのコンポーネントのそれぞれに対する追加の処理パラメータ(例えば、トラフィック・スケジューラにより施されるべきサービス・パラメータの品質、または、仮想プライベート・ネットワーク・モジュールがトラフィックをトンネリング(en-tunnel)すべきトンネルの詳細など)とともに規定している。
この処理手段は、伝送情報を生成し、発信し、着信し、記憶させ、調べ、変更し、複写し、フィルタリングし、カプセル化し、カプセル解除し(un-encapsulate)、および/または、他の方法で伝送情報を処理することがある。特定の項目(アイテム)またはバンドルまたはカテゴリの伝送情報に対して行われる処理は、この形成された処理ポリシーによって決定されるか、あるいは、万一、形成された処理ポリシーがまったく施されなければ、デフォルト組込みポリシー(default built-in policy)によって、決定される。
この処理手段はモジュール化されることがある。すなわち、この処理手段は、一組の相互接続されたモジュールまたはコンポーネントとして実現される。このモジュール化された処理手段中のコンポーネントは、
・この装置を外部通信ネットワークまたは伝送メディアにリンクするネットワーク・インターフェースと通信インターフェース、
・伝送情報と他の伝送情報との関連付けを検出し、また、伝送情報に施されるべきポリシーを決定する関連付け識別コンポーネントと分類コンポーネント、
・任意グラフにおいて相互接続された1つまたは複数のトラフィック処理モジュールを含むアクション・グラフ(そこでは、これらのトラフィック処理モジュールは、これらのコンポーネントのうちのどれかのインスタンスであるか、あるいは、基本処理モジュールである)、
・現実の(リアル)スイッチ(real switch)が行うことになる処理(例えば、Ethernetアドレスの自己学習と、情報のマルチキャスト/ブロードキャスト)を実行しながら、これらのコンポーネントをいくつでも(一般に、3つ以上)リンクする仮想スイッチ、
・これらのコンポーネントのうちの2つをリンクする仮想ワイヤ(仮想線、virtual wire)、
・ユニプロセッサ形またはマルチプロセッサ形のコンピュータシステムをエミュレートし、また、(多分、変更される)標準オペレーティングシステム(例えば、Linux、Microsoft Windows(登録商標)、Unix(登録商標)のようなオペレーティングシステム、リアルタイム・オペレーティングシステムなど)を実行する仮想マシン、
・「仮想マシン」上で実行するオペレーティングシステム/アプリケーションには(例えば、「仮想マシン」上のネットワーク・スタックには)、ネットワーク・インターフェース・カードのように思われるが、ただし、現実の(リアル)ハードウェアに接続するのではなく、これらのコンポーネントに接続する仮想ネットワーク・インターフェース・カード、
・アプリケーションが、パケットではなく、ストリームとして、例えば、Sockets Direct Protocolなどのようなストリーム指向のプロトコルをエミュレートする仮想キャラクタ装置/仮想ファイルシステム/装置として、データを受け取れるようにする仮想ストリーム・インターフェース、
・リモート直接メモリアクセス・システムのように、共有メモリ・ベースの通信をエミュレートする仮想共有メモリ機構、
・「仮想マシン」上で、カーネル・モードまたはユーザ・モードで実行する標準(変更されない)アプリケーション、
・このシステムで提供されるアプリケーション・プログラミング・インターフェース(API)と対話するように作られている「仮想マシン」上で、カーネル・モードまたはユーザ・モードで実行するアプリケーション、
である。
・この装置を外部通信ネットワークまたは伝送メディアにリンクするネットワーク・インターフェースと通信インターフェース、
・伝送情報と他の伝送情報との関連付けを検出し、また、伝送情報に施されるべきポリシーを決定する関連付け識別コンポーネントと分類コンポーネント、
・任意グラフにおいて相互接続された1つまたは複数のトラフィック処理モジュールを含むアクション・グラフ(そこでは、これらのトラフィック処理モジュールは、これらのコンポーネントのうちのどれかのインスタンスであるか、あるいは、基本処理モジュールである)、
・現実の(リアル)スイッチ(real switch)が行うことになる処理(例えば、Ethernetアドレスの自己学習と、情報のマルチキャスト/ブロードキャスト)を実行しながら、これらのコンポーネントをいくつでも(一般に、3つ以上)リンクする仮想スイッチ、
・これらのコンポーネントのうちの2つをリンクする仮想ワイヤ(仮想線、virtual wire)、
・ユニプロセッサ形またはマルチプロセッサ形のコンピュータシステムをエミュレートし、また、(多分、変更される)標準オペレーティングシステム(例えば、Linux、Microsoft Windows(登録商標)、Unix(登録商標)のようなオペレーティングシステム、リアルタイム・オペレーティングシステムなど)を実行する仮想マシン、
・「仮想マシン」上で実行するオペレーティングシステム/アプリケーションには(例えば、「仮想マシン」上のネットワーク・スタックには)、ネットワーク・インターフェース・カードのように思われるが、ただし、現実の(リアル)ハードウェアに接続するのではなく、これらのコンポーネントに接続する仮想ネットワーク・インターフェース・カード、
・アプリケーションが、パケットではなく、ストリームとして、例えば、Sockets Direct Protocolなどのようなストリーム指向のプロトコルをエミュレートする仮想キャラクタ装置/仮想ファイルシステム/装置として、データを受け取れるようにする仮想ストリーム・インターフェース、
・リモート直接メモリアクセス・システムのように、共有メモリ・ベースの通信をエミュレートする仮想共有メモリ機構、
・「仮想マシン」上で、カーネル・モードまたはユーザ・モードで実行する標準(変更されない)アプリケーション、
・このシステムで提供されるアプリケーション・プログラミング・インターフェース(API)と対話するように作られている「仮想マシン」上で、カーネル・モードまたはユーザ・モードで実行するアプリケーション、
である。
これらのコンポーネントは、このシステム内で最高レベル(もっとも抽象的なレベル)のデータフロー・グラフを形成するように相互接続される。データフロー・グラフ(それよりも低いレベルのグラフ)のネスティングは、上記アクション・グラフ機構を介してサポートされる。
コンポーネントは、クラスタ中で相互接続されている一組のプロセッサまたはコプロセッサ(専用固定機能ハードウェア)に任意に対応付けられる(すなわち、これらのプロセッサまたはコプロセッサ上に配備されるか、あるいはホストされる)ことがある。例として、これらのネットワーク・インターフェースと、一部のバンドリング(すなわち、情報の関連付け)/分類/アクション・グラフのモジュールは、1つのプロセッサ(多分、ネットワーク・プロセッサのような専用プロセッサ)上でホストされるかもしれないが、しかるに、他のコンポーネントは、他のプロセッサ(多分、汎用コンピューティング・プロセッサ)上でホストされるかもしれない。これらのコンポーネントをホストするプロセッサは、共有メモリ(均一、または不均一)、バス/バックプレーン、あるいは、メッセージ/パケット/データグラム/情報ストリーム・パッシング・パラダイム(information stream passing paradigm)をサポートする任意形式の通信リンクを使用して、相互接続されることがある。
このホスティング手段により、コンポーネントは、このシステムを含むプロセッサ上で共存することができる。このホスティング手段はまた、これらのコンポーネントが互いに、また、その他のシステムと対話できるようにする通信機構も提供する。
このホスティング手段は、リソース(メモリ、専用のCPUまたはCPUタイムスライス、コプロセッサ、ディスク空間、ネットワーク帯域幅など)をこれらのコンポーネントに割り当てるオペレーティングシステムを取り入れている。このような基礎になるオペレーティングシステムは、随意に、その基礎になるオペレーティングシステム上で実行する仮想マシンをサポートできる能力を持つリアルタイムまたは非リアルタイムのオペレーティングシステムであることもある。
このホスティング手段は、共有メモリ通信機構、メッセージ・パッシング通信機構(message passing communication mechanism)、ハイブリッド機構を含め、内部および外部の様々な通信機構と通信メディアを使用して、このホスティング手段がホストするコンポーネントをリンクすることができる。
この共有メモリ通信機構は、送信側が、伝達されるべき情報を、受信側がアクセスできる共有メモリエリアに入れることで動作する。この共有メモリエリアは、これらの通信関係者の双方がつねに物理的にアクセスできる一組の物理メモリ素子の中にあることもある。例えば、これは、上記通信関係者が、同一プロセッサ上で、あるいは、「対称型マルチプロセッシング(SMP)」システム内の異なるプロセッサ上で実行するアプリケーションである場合に当てはまる。このような場合、仮想メモリ(当てはまる場合に)は、明瞭にメモリ・セグメント/ページを共有できるように構成される必要がある。別法として、この共有メモリエリアは、専用の共有メモリ・ハードウェア(多分、デュアルポートまたはマルチポート)を用いて実現されることもある。いずれにしても、随意の最適化として、送信プロセッサは、受信プロセッサのキャッシュに、通信情報、または通信情報の一部(例えば、データグラムのヘッダー、ただし、そのデータグラムのペイロードではない)を、そのキャッシュに「プレロード」するように指示する。これは、これらのプロセッサがキャッシュを共有する場合、あるいは、これらの通信関係者が単一プロセッサ上で実行する場合には、必要でない。このシステムは、互いに素な(非接続、disjoint)複数の共有メモリ・プールをサポートする。その意図は、同一セキュリティ・クラスのアプリケーションが、単一のメモリ・プールを使用するように構成されていることである。例えば、特定の組のプロトコルに属しているトラフィックを処理するアプリケーションは、他のプロトコルを処理するアプリケーションから分離されるか、あるいは、特定のユーザ/カスタマに関連するトラフィックに基づいて働くアプリケーションは、別のユーザ/カスタマのために働くアプリケーションとは分離される。共有メモリ・プールを分離することにより、他の通信機構の1つを使用して、プール間で情報を転送することが必要となり、すなわち、プール間でデータをコピーする必要があろう。所望のセキュリティ・ポリシーと、所望の性能レベルとの間の適切な妥協点を得るメモリ共有ポリシーを定めるのは、この装置のアドミニストレータの責任である。
完全共有メモリに代わる別法として、仮想メモリ・システムは、ページをリマッピングして、関係者間で、所有権またはアクセス可能性(accessibility)を転送するために使用されることがある。このような場合、ページは、伝達されるべきデータ項目よりも大きいから、この共有メモリのオプションに代わるものとして、追加メモリが消費される。また、ページをリマッピングすることから、処理のオーバーヘッドがもたらされることになるが、しかし、特定のデータ項目にアクセスできる(読取りまたは書込みができる)関係者(PartyまたはParties)を特定的に管理できるので、セキュリティが向上するであろう。
リモート直接メモリアクセス機構は、物理的に共有されるメモリを必要とせずに、仮想共有メモリを実現するために使用されることもある。このような場合、どの記憶場所にメッセージが転送されるのか(本質的にはフリーリスト情報をシンクロナイズするために)送信関係者に受信関係者が知らせるための機構が使用されることがある。
上記ホスティング手段はまた、メッセージ・パッシング・システムを使用して、コンポーネントをリンクすることもサポートする場合がある。このメッセージ・パッシング・システムは、様々な物理メディア、例えば、パケット指向のネットワーク・メディア、バス/バックプレーン、ストリーム/回線チャネル指向のメディアなどを利用できる。このメッセージ・パッシング・システムは、それぞれのリンクを横切って、1つまたは複数のメッセージ・パッシング待ち行列(キュー)を確立する。必要である場合には、メッセージは、複数のタイプの伝送メディアにアクセスするコンポーネントにより、伝送メディア間で変換される。これらの待ち行列は優先順位で配列されて、それぞれの優先順位に1つまたは複数の待ち行列を関連付けることがある。このような場合、或るメッセージを、他のメッセージの前に送り/受け取る必要がある場合には、このシステムは、そのメッセージを、他のメッセージが入れられる待ち行列の優先度よりも高い優先度で、待ち行列に入れることもある。
このシステムは、信頼できるトランスポートを横切って、または、信頼できないトランスポートを横切って(ここでは、伝送情報が失われる確率がゼロではない)、動作できる。その基礎になるトランスポートが信頼できない場合には、このシステムは、受け渡す必要のあるメッセージを確実に受け渡せるようにする再試行だけでなく、肯定応答および/または否定応答も利用する。一定のメッセージを受け渡す必要がない。すなわち、これらのメッセージは、必要な場合に(例えば、リソースが、これらのメッセージを送り/受け渡し/受け取り/処理するのに充分でない場合に)、上記メッセージ・パッシング・システムにより廃棄される。
上記ホスティング手段はまた、以下の機構の組合せを使用することもある。このシステムは、例えば、1つまたは複数の情報構造体を共有メモリに入れ、次に、共有メモリにおいて、情報をいつでも読み取れる状態にあることを、渡されたメッセージ/割込み(interrupt)/タスク間またはスレッド間の信号などを介して、受信者に通知することがある。このシステムは、受信者が共有メモリエリアを「ポーリングする(poll)」ことをこのシステムが知ると、これらのメッセージを抑制するために、また、この受信者が休止状態にある可能性がある場合に(例えば、メッセージが、しばらくの間、受信者に送られていない場合)、メッセージを送って受信者を目覚めさせるために、最適化を含む。
上記送り手段は、情報を、一組のコンポーネント、アプリケーション、サブシステム、通信/ネットワーク・インターフェース、および/または、外部システムに転送することがある。情報を転送しなければならない組のエンティティと、どの順序で、これらのエンティティが情報を受け取る必要があるのか(すなわち、どのエンティティが、まず最初に、この情報を受け取り、次に、この情報をどのエンティティに送るかなど)は、このフロー・ポリシーに左右される。このフロー・ポリシーは、バンドルごとに、また分類カテゴリごとに定められることもあり、他の方法ではバンドル/分類されないすべてのトラフィックに施される一組のポリシーを自由に指定できる。一組のデフォルト・フロー・ポリシーが、このシステムに組み込まれることがある。
この情報は、APIを介して、アプリケーションに転送されることがある。この方法は、これらのAPIと対話するように設計されているアプリケーションが、その基礎になるオペレーティングシステム(例えば、リアルタイムOS/ハイパーバイザ)上で実行していようと、仮想マシン上で実行していようと、それらのアプリケーションに利用できる。この情報はまた、「仮想ネットワーク・インターフェース・カード」または「仮想ストリーム・インターフェース」を介して、仮想マシンにも転送されることもある。このような場合、標準の商用既製アプリケーションは、それらのアプリケーションをこれらの仮想マシン上でホストできるという条件で、この情報を受け取ることができる。外部サーバーまたは他の外部ノードは、この情報を、現実の(リアル)ネットワーク・トラフィック/他の通信伝送情報として受け取ることになる。
このフロー・ポリシーはまた、バンドル(すなわち、一般にフロー)の一部だけを特定のコンポーネントに送るべきと規定する場合がある。コンポーネントは、このフローの始まりから、このフローの中央のどこかまで、このフローの一区分を受け取る必要があることが多いであろう。しかしながら、一部のコンポーネントは、フローの任意部分の受取り(途中でフローに「加わる(join)」)をサポートすることがある。
このフロー・ポリシーは、処理されているバンドル/フローには特定的な関連はない(あるいは、ときには、どんなバンドル/フローにも関連はない)このシステム内の状態変数に左右されることがある。したがって、このシステムは、このシステム内の異なるプロセッサの現在負荷(実際には、プロセッサの間での負荷分散トラフィック)に基づいて、それらのプロセッサ上で作動する同等な組の仮想マシンの1つにバンドル/フローを送ることに決める。また、このシステムは、このシステムに通された経路を変更するように決め、例えば、いくつかの時刻/曜日に、いくつかのコンポーネントを省くか、あるいは、システム負荷が或るしきい値を超える場合に、(重要と標記されている操作、例えば、トラフィック・ファイアウォール処置/ウイルス・フィルタリングを引き続き実行しながら)、任意と標記されている操作を省く(例えば、求められていない商用電子メール、別名「スパム」をフィルタリングする)ように決める。さらに、このシステムは、このフロー・ポリシーにより指定されたデータフロー・グラフにおいて、他のコンポーネントに近いことに基づいて、一組の同等なコンポーネントからのデータを処理するコンポーネントを選択する。したがって、トラフィックが、このシステムにおいて、プロセッサ1に接続されたネットワーク・インターフェースに入る場合には、プロセッサ1上でホストされるソフトウェア・コンポーネント、あるいは、プロセッサ1にじかに接続されているハードウェア・コンポーネントは、このシステム内の他の場所にある他の同等なコンポーネントよりも好まれるが、しかしながら、このシステム内のプロセッサ2に情報を転送する犠牲よりも、プロセッサ2が、特定のコンポーネントをホストするのにさらに適していること(なぜなら、プロセッサ2が、より大きな処理能力/より大きなメモリ/自由になる専用ハードウェアなどを持っているからである)の方が重要である場合には、このシステムは、プロセッサ1上で、特定コンポーネントの同等なインスタンスが利用できても、プロセッサ2を使用して、このコンポーネントをホストすることに決める。このシステムが、自動的に代用を行わないように構成されているモード、すなわち、それぞれのコンポーネントのタイプおよびインスタンスが特定的に構成されているモードも利用可能である。それゆえ、自動的に決定されようと、手操作で構成されようと、このシステムは、他のプロセッサ/転送・処理用のハードウェアを使用することで、トラフィックを「カットスルー」するか、あるいは、いくつかのプロセッサからトラフィックを「オフロード」することができる。
このフロー・ポリシーはまた、外部装置/コンポーネント/システムの状態、あるいは、これらのエンティティとのインターフェースの状態にも左右されることがある。例として、このシステムは、様々な外部サーバーの負荷に基づいて、それらのサーバーの間で、負荷分散する(load balance)か、または、このトラフィックの発信者のネットワーク・アドレスに関連する地理的場所に基づいて、トラフィックに適した送信先を選択するか、あるいは、一組のネットワーク・リンクの使用容量に基づいて使用するネットワーク・リンクを決定することができるであろう。
このシステム挙動は、以下の通り、時間の経過とともに変化することがある。
・上記分類手段は、さらに多くの伝送情報を受け取るので、伝送情報を入れるカテゴリを順次に改善することがある(例えば、トラフィックは、TCPトラフィック、次に、「HTTP over TCP」トラフィック、次に、「HTTP over TCP」トラフィックでのweb会議(web conferencing)として分類されることがある)。
・上記関連付け手段は、その関連付け情報、すなわち、伝送情報が関連付けられるバンドルを変更することがある。
・この分類カテゴリとバンドリング情報を変更することにより、異なるフロー・ポリシーが他のフロー・ポリシーとして実現されるかもしれないという事実は、新たに決定されたカテゴリ/バンドルに結び付けられることがある。
・外部システムまたは内部コンポーネントは、関連付け(すなわち、バンドリング)、分類、フロー・ポリシーを変更し、さらに、どんな方法でコンポーネントを構成するかだけでなく、どんな方法でコンポーネントを相互接続してデータフロー・グラフを形成するのかも変更することがある。
・上記分類手段は、さらに多くの伝送情報を受け取るので、伝送情報を入れるカテゴリを順次に改善することがある(例えば、トラフィックは、TCPトラフィック、次に、「HTTP over TCP」トラフィック、次に、「HTTP over TCP」トラフィックでのweb会議(web conferencing)として分類されることがある)。
・上記関連付け手段は、その関連付け情報、すなわち、伝送情報が関連付けられるバンドルを変更することがある。
・この分類カテゴリとバンドリング情報を変更することにより、異なるフロー・ポリシーが他のフロー・ポリシーとして実現されるかもしれないという事実は、新たに決定されたカテゴリ/バンドルに結び付けられることがある。
・外部システムまたは内部コンポーネントは、関連付け(すなわち、バンドリング)、分類、フロー・ポリシーを変更し、さらに、どんな方法でコンポーネントを構成するかだけでなく、どんな方法でコンポーネントを相互接続してデータフロー・グラフを形成するのかも変更することがある。
次に、本発明は、クライアント、サーバー、アプリケーションにつながれた本発明によるシステムを図式的に示す線図式の添付図面を参照して、例示として述べられる。
次に、図1を参照すると、本発明によるデジタル電子フローを処理するシステムは、その全体が参照番号10で表されている。システム10は、クライアント14とサーバー(16.1と16.2)との間に接続された装置12を含む。この例では、装置12は、ネットワーク・トラフィックまたは他の通信が装置12(すなわち、この装置は、ゲートウェイ、ルータ、スイッチ、「bump in the wire」ブリッジ、または、同様に接続される装置である)を通過するよう指示される(特定のレイヤ、例えばレイヤ2に宛てることに基づいて)か、あるいは、強制的に装置12を通過させられる(物理的コネクティビティのトポロジーに基づいて)ように、ネットワークまたは他のデータ通信システムに接続されている。
装置12のハードウェアは、専用プロセッサ・サブシステム18.1と汎用プロセッサ・サブシステム18.2とを含む。専用プロセッサ・サブシステム18.1と汎用プロセッサ・サブシステム18.2は、通信機構(図示されてない)を利用して、相互連絡される。この通信機構は、これらのプロセッサ・サブシステム間のメッセージ交換をサポートできるか、あるいは、これらのプロセッサ・サブシステムがやり取りできるようにする、双方のプロセッサ・サブシステムで共有されるメモリエリアを提供できる。
専用プロセッサ・サブシステム18.1は、ネットワーク・トラフィックの識別、分類、処理に当てられる一組のプロセッサとコプロセッサだけでなく、ネットワーク・インターフェース・ハードウェア(20.1と20.2)も含む。フロー識別・分類サブシステム(22.1と22.2)、アクション・グラフ・サブシステム24、仮想スイッチ(VX)サブシステム26は、この組のプロセッサとコプロセッサ上でホストされる。
クライアント14は、ネットワーク・インターフェース20.1に接続される。ネットワーク・インターフェース20.1は、フローID・分類サブシステム22.1に接続され、さらに、フローID・分類サブシステム22.1が仮想スイッチ26に接続されている。ネットワーク・インターフェース20.1はまた、アクション・グラフ・サブシステム24にも接続され、さらに、アクション・グラフ・サブシステム24も仮想スイッチ26に接続されている。
サーバー16.1とサーバー16.2は、ネットワーク・インターフェース20.2に接続される。ネットワーク・インターフェース20.2は、フロー識別・分類サブシステム22.2に接続され、さらに、フローID・分類サブシステム22.2が仮想スイッチ26に接続されている。
汎用プロセッサ・サブシステム18.2は、1つまたは複数のプロセッサ装置内の1つまたは複数のプロセッサ・コアから成っている。これらのプロセッサ・コアと装置は、相互接続されてマルチプロセッサ・システムを形成する。このマルチプロセッサ・システムは、カーネル・モードのソフトウェア環境30と、ユーザ・モードのソフトウェア環境32とを持つ汎用オペレーティングシステムをホストする。カーネル・モードのソフトウェア環境30内では、仮想ネットワーク・インターフェース・カード(VNIC)(32.1と32.2)が置かれている。ユーザ・モードのソフトウェア環境32内では、アプリケーション36がホストされる。アプリケーション36は、直接的に、または、間接的にカーネル30を介して、VNIC32.1およびVNIC32.2に結び付けられる。VNIC32.1とVNIC32.2は、仮想スイッチ26に接続される。
使用中に、クライアント14は、サーバー16.1と、また(ほぼ同時に、または異なるときに)サーバー16.2と、通信セッションを確立する。例えば、クライアント14は、TCPセッションを確立するかもしれない(しかしながら、任意のメディアを介して、どんなネットワーク・プロトコル/通信セッションもサポートできるであろう)。
クライアント14により送られた情報(この例では、データグラム/パケットにカプセル化される)は、ネットワーク・インターフェース20.1を介して、この装置に入る。
フロー識別・分類コンポーネント22.1は、フローが確立されていることを決定して、フロー識別・分類コンポーネント22.1が受け取るそれぞれのデータグラムに関連するフローを識別する。このようにして、このフロー中のデータグラムが、まとめてバンドルされる(互いに関連付けられる)。
フロー識別・分類コンポーネント22.1はさらに、パケット・ヘッダー、パケット内容、フロー内容を調べて、解析し、また、プロトコル(ネストされたプロトコルも含む)を検出して、復号し、さらに、フローから情報を取り出す。この分類プロセスは、このシステムにより、および/または、このシステム上で実行するアプリケーションにより提供されるポリシー記述情報(policy specification information)に左右される。このポリシー記述情報は、一組のルールまたは一組のマッチング表現の形式を取ることがある。これらのルールとマッチング表現は両方とも、基準と、その基準を満たす場合に適用されるポリシーとを規定している。
フロー識別・分類コンポーネント22.1は、任意グラフ構造体において相互接続された複数のサブモジュールから成っている。これらのサブモジュールは、この分類プロセスの特定の面を実施する。例えば、或るサブモジュールは、特定のプロトコルを検出して、復号することができる一方で、別のサブモジュールは、特定のマッチング処理を実施できることがある。サブモジュールは、適切な場合にコプロセッサを使用して、処理タスクを実行する。例えば、暗号化コプロセッサを使用して、情報を解読することで、フローの内容を得るか、あるいは、正規表現構文解析コプロセッサを使用して、このマッチング・プロセスに役立てることがある。
このフロー分類の結果は、このポリシーを、そのフロー(あるいは、フローでない他の伝送情報)に施す必要があるということである。この例では、そのポリシーは、クライアント14からサーバー16.1まで指定基準に一致するフローが、「仮想ネットワーク・インターフェース・カード(VNIC)」32.1を介して、アプリケーション36に送られるべきと規定している。
アプリケーション36およびオペレーティングシステムのカーネル30には、VNIC32.1とVNIC32.2は、標準ネットワーク・インターフェース(すなわち、デバイス・ドライバ)のように思われる。アプリケーション36は、生のネットワーク・パケットとして、あるいは、カーネル30に組み込まれたプロトコル・スタックを介して、VNIC32.1とVNIC32.2からネットワーク・トラフィックを得るように構成されている。アプリケーション36は、このネットワーク・インターフェースが、現実のネットワーク・インターフェースではなくて、仮想ネットワーク・インターフェースであることに気づいてなく、また同様に、トラフィックが、このネットワーク・インターフェースに到達する前に処理されていることにも気づいていない。アプリケーション36は、このフロー中のトラフィックを解析して、このフローが進行すべきことを決定する。このトラフィックを処理した後で、例えば、パケット・ヘッダーまたはフロー内容を変更した後で、アプリケーション36は、VNIC32.2を介して、このトラフィックを送る。標準ネットワーク・インターフェースに対応したVNICにデータを通しているから、このフロー識別・分類サブシステムにより決定されたメタデータ、例えば、このフロー分類の結果を表す情報だけでなく、このフローに施されるポリシーにもリンクされているタグが失われている。それゆえ、このフロー識別子とフロー・ポリシーを決定するために、このトラフィックを、第2のフロー識別・分類サブシステム22.2に転送する必要がある。この例では、このフロー・ポリシーは、それ以上、このトラフィックに処置を施す必要がないことと、ネットワーク・インターフェース20.2を介して、このトラフィックを単に送る必要があるだけであると規定している。次に、サーバー16.1は、このトラフィックを受け取る。
サーバー16.1は、サーバー16.1が受け取っている情報を処理し、変更された情報または他の情報(例えば、クライアントにより要求される情報)を戻す。サーバー16.1により送られた情報は、戻りトラフィック、または、このフローの戻り部分と呼ばれる。この例では、この戻りトラフィックは、ネットワーク・インターフェース20.2を介して受け取られ、そこで、第2のフロー識別・分類サブシステム22.2は、この場合も、その受信トラフィックが属しているフローを識別して、このフローに施されるべきポリシーを決定する。このような場合、このフロー・ポリシーは、このトラフィックをVNIC32.2に転送すべきことを指示し、そこで、アプリケーション36は、所要のどんな処理も行って、(多分、変更されている)トラフィックを、トラフィックが仮想スイッチ26で受け取られて、アクション・グラフ24に送られる場所から、VNIC32.1に転送する。
この例では、VNIC32.1を介して送られるすべてのトラフィックが、クライアント14宛てであって、かつ、アクション・グラフ24により、同じやり方で処理されることに留意されたい。このトラフィックに施されるフロー・ポリシーは、このトラフィックが属しているフローにも左右されないし、また、トラフィックまたはフロー内容にも左右されない。それゆえ、このトラフィックを、フロー識別・分類サブシステムで処理する必要はないから、このトラフィックは、直接にアクション・グラフ24に送られる。この例では、本システムは、場合によっては諸機能を必要としないことを決定でき、よって、このシステム内でのフローのルーティング(経路指定)を最適化できることが例示されている。
アクション・グラフ24は、任意グラフにおいて接続されるアクション・モジュールから成っている。この例では、アクション・グラフ24は、このシステムを通るパケットとバイトに関して統計を取るトラフィック監視モジュール、このトラフィックの一部をフィルタで除くファイアウォール・モジュール、および、トラフィックの帯域幅を制限するトラフィック管理モジュールから成っていることもある。
フロー中のトラフィックの異なる方向、すなわち、前進トラフィックと戻りトラフィックは、このシステムを通る同一経路に従う必要はなく、この経路に沿って、サブシステムおよびモジュールにより、様々に処理される場合があることに留意されたい。この例では、戻りトラフィックは、アクション・グラフを通ったが、しかるに、前進トラフィックは、アクション・グラフを通らなかった。このシステムが、トラフィックを分類し続け、それに対応して、このフロー処理ポリシーを改善することで、あるいは、このフロー処理ポリシーが、このフローの存続期間にわたってアドミニストレータまたはアプリケーションにより変更されることで、このフロー処理ポリシーは、このフローの存続期間にわたって調整される場合があることも留意されたい。このことから、その経路が変更されるか、あるいは、その経路中のサブシステムで使用されるパラメータが変更されることがある。
第2のフローは、図1において、クライアント14とサーバー16.2との間に示されている。このフローは、クライアント14により開始され、フロー識別・分類ブロック22.1により解析されて、分類される。この場合、このシステムは、このフローに入っているトラフィックをアプリケーション16が受け取る必要はないと判定する。これは、おそらく、アプリケーション16がセキュリティ機能を実行しており、しかも、このクライアントとサーバーが信頼されるからである。このシステムは、このフローを、アクション・グラフ24を介して、ネットワーク・インターフェース20.2に送る。このシステムは、このフローを「カットスルー」し、このことは、このフローのすべての処理が、システム18.1内で行われることと、このフローが、絶対にプロセッサ18.2を通って送られることはなく、それゆえ、このフローが、オペレーティングシステム30によっても、またアプリケーション36によっても処理されないことを意味する。
図2は、動作時のこのシステムの別の例を示している。システム12は、処理システム18.1と処理システム18.2から成っている。処理システム18.2は、オペレーティングシステムのカーネル30とオペレーティングシステムのユーザ空間40とを持つオペレーティングシステム(例えば、Linux)の単一のインスタンスを実行している。このオペレーティングシステムは、2つのサードパーティ・アプリケーション、例えば、ユーザ空間で実行する「侵入検出」アプリケーション44と、オペレーティングシステムのカーネル30で実行する監視アプリケーション34とをサポートしている。クライアント14は、サーバー16.1とセッションを確立する。このフローは、ネットワーク・インターフェース20.1を介して、このシステムに連絡し、また、フロー識別・分類モジュール22.1に渡される。最初の分類から、ポリシーは、このフローが、アクション・グラフ24で処理された後で、ネットワーク・インターフェース20.2に送られるべきであると決定する。この最初のポリシーはまた、このフローのコピーを作成して、それを、VNIC32に送り、そこで、オペレーティングシステムのカーネル30上で実行しているアプリケーション34に、このフローを受け取らせることも指示する。アプリケーション34は、このフローを、サーバー16.1に進む途中で変更したくないという点で、「読取り専用」のアプリケーションであることに留意されたい。さらに多くのフロー情報が、フローID・分類モジュール22.1により解析されるから、最終分類が可能になる。ここで、アプリケーション44は、このフローを受け取ることを必要とし、また、このフローを変更したい場合があることが決定される。図示される例では、このフローは、VNICを使用するのではなくて、アプリケーション・プログラミング・インターフェース(API)42を実施するライブラリを介して、アプリケーション44に渡される。アプリケーション44の開発者は、API42を実現するライブラリにより提供されるインターフェースを明確に利用してきた。図示される例では、このフローに入っているトラフィックがアプリケーション44に送られ、また、このシステムは、そのトラフィックがアプリケーション44から戻されるのを待ってから、このトラフィックをサーバー16.1に転送し、かつ、コピーをアプリケーション34に転送し続ける。形成されたポリシーにより、また、データのいくつかのコピーを作ることや、そのデータを、いくつかのアプリケーションおよびサブシステムに同時に転送することなど、このデータを受け取るアプリケーションおよびサブシステムがこのデータを変更するかどうかにより、他のオプションも可能であることは明らかである。
一定期間後に、アプリケーション44は、このフローが、もう脅威とはならないことと、このフロー中に残りのトラフィックを知る必要がないことを決定する場合がある。ここで、アプリケーション44は、もう、このフローを受け取り続けたくないことを、このシステムに指示することもある。このシステムは、そのフローをアプリケーション44に送るのを止めることになるが、それでも、このフローをサーバー16.1に転送しており、かつ、コピーをアプリケーション34に送っている。このように、フローを「返す(hand back)」ことができることから、アプリケーション44においてリソースが利用可能になり、かつ、性能が向上する。
図2はまた、関連するフローを処理するシステムの一例も示している。この例での第2のフローは、クライアント14とサーバー16.2との間に発生する。このフローは、発生することになる将来のフローを前もって通知するフローであると、フロー識別・分類サブシステム22.1により判定される。一例として、デジタル化された音声を運ぶ関連メディア・フローを参照するSIPなどの信号プロトコルを運ぶフローであるかもしれない。このシステムは、このフローを分類して、確立されるかもしれない将来のどんなフローに関しても、上記フローから情報を収集しながら、そのフローを所定の経路でサーバー16.2に送る。第2のフローが、なおアクティブである間、あるいは、第2のフローが終了した後で、第3のフローがサーバー16.2から始まって、クライアント14に戻る。第3のフローは、フロー識別・分類機能22.2で処理され、また、ポリシーがすでに決定されている関連フローであると認められる(第2のフローから収集された情報に基づいて)。このような第3のフローの一例は、第2のフローに入っている信号トラフィック(signaling traffic)に関連するメディア・ストリームであるかもしれない。
図3は、2つ以上のアプリケーションで処理される必要のあるフローを処理するシステムの一例を示している。図3はまた、同一のプラットフォーム上で、複数のアプリケーションを統合できるようにするために、VNICの使用も図示している。
この例では、フローは、クライアント14とサーバー16.1との間に発生する。フロー識別・分類サブシテム22.1は、このフロー中のトラフィックが、アプリケーション44で処理される必要のあることを決定する。このフロー・ポリシーは、アプリケーション44が、このシステムで提供されたAPIを利用するように作られていることと、アプリケーション44宛てのトラフィックが、システムAPIを実現するライブラリを構成しているコンポーネント42を介して、アプリケーション44に送られる必要があると規定している。このフロー・ポリシーはまた、アプリケーション42による処理の後で、このフローを所定の経路でアプリケーション46に送って、さらなる処理を行うべきであることと、アプリケーション46がVNIC32.1に結び付けられることも規定している。アプリケーション44がシステムAPIを使用しているので、このフローに対するフロー・ポリシーは、このフロー内容といっしょに保存されるメタデータとして保持されることもあり、それゆえ、アプリケーション44で処理されてきたトラフィックにおいて、フロー識別・分類を行う必要はない。しかしながら、このトラフィックが、アプリケーション46で処理されると、アプリケーション46により出力されたデータは、フロー識別・分類サブシテム22.2に通される必要がある。このことは必要である。なぜなら、フロー・ポリシーのようなメタデータを保持できるようにはしないVNICを、このトラフィックが通るからである。フロー識別・分類サブシテム22.2が、このフローを識別して、このフロー・ポリシーを決定すると、このシステムは、このフロー・ポリシーに基づいて、このフローのトラフィックを、ネットワーク・インターフェース20.2を介してサーバー16.1に送る。
この例では、第2のフローは、クライアント14とサーバー16.1との間に存在する。この第2のフローに対するフロー・ポリシーは、VNIC32.1に結び付けられているアプリケーション46を、このフローが通過する必要があると規定している。アプリケーション46は、アプリケーション44を介してアプリケーション46に送られる第1のフローだけでなく、直接にアプリケーション46に送られる第2のフローも処理していることに留意されたい。アプリケーション46は、そのフローを受け取る前に発生するフローの処理にまったく気づいていない。例えば、第1のフローの場合に、アプリケーション46は、第1のフローがアプリケーション44ですでに処理されていることを知らない。すなわち、アプリケーション46は、単に、潜在的に変更されたか、あるいはフィルタリングされたフロー内容を受け取るだけである。
この例での第3のフローは、クライアント14とサーバー16.2との間に発生する。第3のフローは、フロー識別・分類サブシテム22.1により分類され、また、第1のフローおよび第2のフローに用いられているものとは異なる内部仮想ネットワークを使用して、アプリケーション48に送ることを必要とするものと決められる。第3のフローは、仮想スイッチ26.1を介して送られるが、しかるに、他のフローは、仮想スイッチ26.2を介して送られる。第3のフローは、VNIC32.2を使用して、アプリケーション48に送られる。このシステム内で、このように別々のVNICおよび仮想スイッチを使用すると、第3のフローと他のフローとの間の隔離度が、第1のフローと第2のフローとの間にある隔離度よりも大きくなる。これはまた、このシステムが性能を最適化する機会も提供する。
図4は、仮想マシン(60.1、60.2、60.3)を提供して、オペレーティングシステムのユーザ空間(40.1、40.2、40.3)、および、これらのオペレーティングシステム上でカーネル・モードまたはユーザ・モードで実行するアプリケーションとともに、それぞれ、ゲスト・オペレーティングシステムのカーネル(30.1、30.2、30.3)をサポートするシステム12の一例を示している。このシステムは、様々な数の仮想マシンをサポートでき、しかも、それぞれの仮想マシンは、異なるタイプまたはバージョンのゲスト・オペレーティングシステム、および/または、同一のタイプまたはバージョンのゲスト・オペレーティングシステムの様々に構成されたインスタンスをホストすることができる。これらのゲスト・オペレーティングシステムはそれぞれ、同一のアプリケーションをホストするか、あるいは、異なるアプリケーションをホストすることができる。
この例では、フローは、クライアント14とサーバー16.1との間に発生する。このフローは、ネットワーク・インターフェース20.1で受け取られ、そこで、このフローは、フロー識別・分類サブシテム22.1により分類されて、仮想マシン(VM)60.1上で実行するアプリケーション44による処理を必要とするものと決められる。アプリケーション44は、システムAPI実現ライブラリ42を介して、内容を受け取ることができる。このシステムは、VM60.1において動作するゲストOS中のユーザ空間40.1で実行するアプリケーションに、このフロー内容を直接に受け渡すことができ、ゲストOSのカーネル30.1による処理または転送を必要としないことに留意されたい。
この例では、この形成されたフロー処理ポリシーは、アプリケーション44で処理されたあらゆるトラフィックを、仮想マシン60.2内のアプリケーション46でも処理する必要があることと、このトラフィックを、VNIC32.1を介して、アプリケーション46に渡す必要があることを規定している。アプリケーション46で処理されると、このフローは、VNIC32.1を通して、仮想マシン60.2から出て、仮想スイッチ26.2により、フロー識別・分類サブシテム22.2に転送されて、後で、フロー識別・分類サブシテム22.2により、このフロー・ポリシーを施すことに決められる。このフロー・ポリシーは、このフローが、アクション・グラフ24.1に送られて処理された後で、サーバー16.1またはサーバー16.2に送られる(双方とも、ネットワーク・インターフェース20.2を介する)べきと規定している。この例でのアクション・グラフ24.1は、負荷分散機能を果たして、このフローを受け取るべきサーバーを選択する。
第2のフローは、クライアント14.2とサーバー16.1との間に存在する。第2のフロー中のトラフィックは、ネットワーク・インターフェース20.1を介して、このシステムに入り、そこで、このトラフィックが、フロー識別・分類サブシテム22.1で処理される。この形成されたフロー・ポリシーは、このフローが、VM60.2上で実行するアプリケーション46(VNIC32.1に結び付けられている)による処理を必要とすることを規定している。このフローがVNIC32.1から出ると、仮想スイッチ26.2は、このトラフィックを、フロー識別・分類サブシテム22.2に転送する。フロー識別・分類サブシテム22.2は、このトラフィックを分類し直して、このトラフィックを、ネットワーク・インターフェース20.2を介して、サーバー16.2に送るべきことを決定する。第1のフローと第2のフローは両方とも、VNIC32.1から出るが、ただし、フロー識別・分類サブシテム32.1により戻された結果に応じて、様々に処理されることに留意されたい。
第3のフローは、クライアント14.2とサーバー16.1との間に存在する。このフローでのトラフィックは、ネットワーク・インターフェース20.1で受け取られて、フロー識別・分類サブシテム22.1で処理される。この形成されたフロー・ポリシーは、このフローを、VNIC32.2に結び付けられているアプリケーション50で処理する必要があると規定している。アプリケーション50は、仮想マシン60.3内のゲスト・オペレーティングシステムのカーネル30.3で実行している。それゆえ、このフローに属しているトラフィックは、VNIC32.2に送られる。アプリケーション50は、仮想マシン60.3内のユーザ空間で実行しているアプリケーション48に、このフロー内容を渡す。アプリケーション48から戻されたトラフィックは、アプリケーション50により受け取られて、そのトラフィックを、アプリケーション50がVNIC32.3を介して先へ送り、そこで、このトラフィックが、フロー識別・分類サブシテム22.3で処理される。これにより、このフロー・ポリシーは、このトラフィックをネットワーク・インターフェース16.2を介してサーバー16.1に受け渡す前に、アクション・グラフ24.2を経てトラフィックを送るように指示することが、決定される。カーネル・モードとユーザ・モードのアプリケーションだけでなく、1仮想マシンごとに複数のVNICも含む場合がある、このシステムを通る任意に複雑な経路が可能であることに留意されたい。また、フローに属しているトラフィックが1つのVNICを介して仮想マシンに入り、また、別のVNICを介して、この仮想マシンから出ることにも留意されたい。さらに、このシステム内をフローが進むときに、これらのフロー識別・分類サブシテムが、適宜、協働して、このフロー・ポリシーが適正に、かつ一貫して、そのフローに確実に施されるようにすることにも留意されたい。フロー識別・分類サブシテム22.1は、例えば、第3のフローに施されるべきフロー・ポリシーを、制御チャネル(この略図には示されてない)を介して、フロー識別・分類サブシテム22.3に伝えることがある。
次に、図5を参照して、フロー識別・分類サブシテム22のサブコンポーネントと、このサブコンポーネントの模範的な使用シナリオ(概要)が述べられている。この例では、トラフィックは、ネットワーク・インターフェース20からフロー識別・分類サブシテム22に送られ、また、フロー識別・分類サブシテム22から出て、仮想スイッチ26に進む。
このサブシステム内では、トラフィックは、まず最初に、フロー識別コンポーネント70で受け取られる。フロー識別コンポーネント70は、フロー・ステート・テーブル72中で1つまたは複数のルックアップを実行することで、このトラフィックが属しているフローを識別するのに役立つ。フロー・ステート・テーブル72は、パケットの内容に含まれている情報だけでなく、パケット・ヘッダーに入っている情報のように、トラフィックに含まれているフロー識別情報も、フロー識別子と相互に関係づける。フロー識別コンポーネント70は、例えば、同一のIPアドレスとTCPポートを持つトラフィックが、同一のフローに属していると判定できる。ときには、パケット内容も調べてみる必要がある。例えば、アプリケーション層(すなわち、レイヤ7)の情報は、同一の基本IPヘッダー情報を共有するフローを見分けるのに役立つことがある。フロー識別コンポーネント70は、このフロー識別情報を取り出せるようにするのに充分なインテリジェンス(知能)を持ち、かつ、上記アプリケーション層のプロトコルのそのような充分な状態を保つ。
フローに対して、最初のトラフィック要素が受け取られる場合に、そのフローは、新フローと呼ばれ、フロー識別コンポーネント70により、新たなフロー識別子が割り当てられる。その後、受け取られるトラフィック要素については、フロー識別コンポーネント70は、先に割り当てられたフロー識別子を検索することになる。
さらに、フロー識別コンポーネント70は、トンネリングされたトラフィックの場合に行われる可能性があるように、単一の外部フロー中にネストされている複数のフローを識別し、互いに区別することができる。フローがネストされる場合には、このネストされるフローは、含む方のフローの識別子と、含まれる方のフローの識別子とを組み合わせることで、識別される。
さらに、フロー識別コンポーネント70は、特定のフローに関連するフローを識別することができる。この例では、フローは、フロー・ステート・テーブル72と、別個の関連フロー・テーブル74とが、どんな方法で組み合わされるにせよ、このようなテーブル72とテーブル74とを組み合わせることによって、関連フローにリンクされる。
フローが他のフローを含む場合には、これらの含まれる方のフローは、同一の含む方のフロー中のすべてのフローと、同胞関係を用いて関連付けられることになる。これらの含む方のフローと、含まれる方のフローは、親と子の関係を用いて関連付けられることになる。
他のタイプの関連フローはまた、このシステムで了解される。例えば、特定のユーザにより開始されているすべてのフローが関連付けられるか、または、信号トラフィックが、この信号トラフィックにより制御されるメディア・ストリームに関連付けられるか、あるいは、特定ホスト間または特定サブネット間のトラフィックが関連付けられることがある。フロー間の複数の関連付けレベルと、複数の関連付け関係が同時にサポートされる。
フロー識別コンポーネント70にフロー識別子が割り当てられたか、あるいは、フロー識別コンポーネント70がこのフロー識別子を検索した後で、フロー識別コンポーネント70は、この受け取られたトラフィックと、このフロー識別子を、フロー分類・ポリシー決定コンポーネント78に転送する。フロー識別コンポーネント70は、まず最初に、このフローに施されるべきポリシーを示すタグを、フロー・ステート・テーブル72から取り出す。フロー識別コンポーネント70は、別法として、このタグを、そのフロー識別子といっしょに、フロー分類・ポリシー決定コンポーネント78に転送する。
万一、このタグから、そのフローに対して、このポリシーが完全に決定されていることが示されれば、フロー分類・ポリシー決定コンポーネント78は、このフローを、このフローに施されるべきポリシーを規定する情報とともに、このポリシーで定められる適切なサブシステムに先へ転送する。この例では、そのフローは、仮想スイッチ26に転送される。
しかしながら、当初、このタグにより、ポリシーがまだ完全には決定されていないことが示される場合がある。それゆえ、フロー分類・ポリシー決定コンポーネント78は、このポリシーを決定するために、トラフィックの分類に取り掛かる。このような分類プロセスは、フロー内容を、ステートレスまたはステートフルなやり方で取り出し、復号し、解釈し、また、このフロー内容、あるいは、このフロー内容から取り出された/決定された情報を、ポリシー・データベース76の中で規定されているルールおよび表現に絶えず合わせるものである。万一、ルールの一致、または表現がポリシーの更新をもたらすことになれば、このフローに関連するポリシーが更新され、しかも、その更新が、そのフローに関連するタグの変更、あるいは、そのタグに関連するポリシーの変更に反映される。このようにして、このポリシーは、フローの存続期間にわたって順次に改善される。
ポリシー・データベース76はまた、分類されているフローに関連するフローに含まれているか、あるいは、それらの関連するフローから得られる情報も参照することがある。それゆえ、フロー分類・ポリシー決定コンポーネント78は、これらのルールが参照する情報を得るために、その関連フローに関して、関連フロー・テーブル74、およびフロー・ステート・テーブル72中の項目を調べることができる。ポリシー・データベース76には、例えば、この関連信号フローがユーザ名「JSmith」を参照するメディア・ストリームは、サービスクラス3の品質を用いて転送される必要があるが、しかるに、他のメディア・ストリームは、サービスクラス4の品質を受け取ると規定されることがある。
ポリシー・データベース76、フロー・ステート・テーブル72、関連フロー・テーブル74に含まれている情報はまた、このシステム内の他のコンポーネントにより、動的に変更されることもある。上記フロー識別・分類サブシテムの異なるインスタンスは、互いにやり取りして、このシステム全体にわたってフロー・ポリシーを、適切に、かつ一貫して確実に施せるようにすることがある。将来、発生が予想されるフローに対して、フロー・ポリシーをあらかじめ形成できるようにする情報を用いて、フロー・ステート・テーブル72または関連フロー・テーブル74を事前移入する(pre-populate)APIをアプリケーションが呼び出すことも可能である。アプリケーションは、APIを呼び出すことで、フローに施されるべきフロー・ポリシーを動的に変更することもある。このような変更から、フロー・ステート・テーブル72および/または関連フロー・テーブル74は更新されることになる。ポリシー・データベース76の内容も、アプリケーションまたは上記システム・アドミニストレータにより、いつでも変更できる。
フロー分類・ポリシー決定コンポーネント78は、様々なプロトコルの存在を参照するフロー・ポリシー、すなわち、これらのプロトコルを用いて送られるトラフィックに入っている要素を参照するフロー・ポリシーが施される必要があるかどうか判定できるように、これらのプロトコルを検出して、復号できる必要があると理解されよう。それゆえ、フロー分類・ポリシー決定コンポーネント78は、特定のプロトコル、または特定の組のプロトコルをそれぞれが検出または復号する責任をもつサブコンポーネントを含む。プロトコルは他のプロトコル上に重ねられることが多いので、これらのサブコンポーネントは互いにやり取りする必要がある。サブコンポーネントはまた、特定のマッチング処理を助けるためにも使用される。これらのサブコンポーネントは、コプロセッサに協力を求めている。この場合、そのようなコプロセッサは、高速度化の処理に利用でき、例えば、圧縮プロトコルを処理するサブコンポーネントは復元コプロセッサを使用する一方で、パターン・マッチングを行うサブコンポーネントは、正規表現マッチング・ハードウェアを使用することがある。
本発明は、潜在的な用途を例示した下記リストの中で利用できるものと考えられる。このリストは、すべてを尽くすつもりはない。
・複数の現実のマシン(コンピュータ)上で実行していたアプリケーション・ソフトウェアを統合して、単一の仮想マシンにすること。
・機器を統合して、複数の機器を、仮想化技術を装備しているさらに少ない装置に代えられるようにすること。このことに関連して、機器は、多分、専用の周辺装置/ネットワーク・インターフェースのようなインターフェースを持ち、また、多分、装置ベンダー、またはこの装置ベンダーに関連するベンダーにより提供されたソフトウェアと組み合わされるコプロセッサのような他の専用ハードウェアを持っているコンピューティング装置であって、この場合、その機器は、少数の機能の1つを果たすように設計されている。機器の例として、ファイアウォール、侵入検出/防止装置、ウイルス防止装置、スパム防止装置などがある。
・現行の仮想マシン・システムに、ネットワーク・トラフィックを処理して、それを送ることができるようにする(すなわち、ネットワーク・トラフィックの処理/転送を制御する)こと。
・従来のサーバーのような処理を、トラフィックとフローの送り/処理(操作)などと組み合わせる新たな種類のネットワーク・インフラ・アプリケーションをホストすること。
・複数の現実のマシン(コンピュータ)上で実行していたアプリケーション・ソフトウェアを統合して、単一の仮想マシンにすること。
・機器を統合して、複数の機器を、仮想化技術を装備しているさらに少ない装置に代えられるようにすること。このことに関連して、機器は、多分、専用の周辺装置/ネットワーク・インターフェースのようなインターフェースを持ち、また、多分、装置ベンダー、またはこの装置ベンダーに関連するベンダーにより提供されたソフトウェアと組み合わされるコプロセッサのような他の専用ハードウェアを持っているコンピューティング装置であって、この場合、その機器は、少数の機能の1つを果たすように設計されている。機器の例として、ファイアウォール、侵入検出/防止装置、ウイルス防止装置、スパム防止装置などがある。
・現行の仮想マシン・システムに、ネットワーク・トラフィックを処理して、それを送ることができるようにする(すなわち、ネットワーク・トラフィックの処理/転送を制御する)こと。
・従来のサーバーのような処理を、トラフィックとフローの送り/処理(操作)などと組み合わせる新たな種類のネットワーク・インフラ・アプリケーションをホストすること。
Claims (42)
- 第1のエンティティと第2のエンティティとの間のデジタル電子フローを処理するシステムであって、
前記デジタル電子フローに施されるべきフロー・ポリシーを決定するフロー・ポリシー決定手段と、
前記関連フロー・ポリシーに基づいて、前記フローを、定められた経路に沿って送る送り手段と、
を含むシステム。 - 初めに、前記第1のエンティティからのそれぞれの新たなフローに対してIDを提供し、後で、既存フローの前記IDを識別するフローID提供・識別手段を含む請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段は、それぞれのフローに対してポリシー・タグを提供し、前記ポリシー・タグはそのフローの前記IDに関連付けられており、前記ポリシー・タグはそのフローに施されるべき前記フロー・ポリシーを示す請求項2に記載のシステム。
- 前記経路に含まれることがある少なくとも1つの処理手段を含む請求項1に記載のシステム。
- 前記経路に含まれることがある少なくとも1つの転送手段を含む請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段が、フローに施される前記フロー・ポリシーを、その存続期間の間に変更する請求項3に記載のシステム。
- 第1のフローが第2のフローに関連付けられるべきであるかどうか判定し、また、関連フロー・ポリシーを関連フローに施す関連付け判定手段を含む請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段が、フローを最初に受け取ったときに前記フローに施されるべき前記フロー・ポリシーを決定する請求項1に記載のシステム。
- 前記処理手段が、グラフ構造体、プロセッサ、メモリ、仮想マシン、アプリケーションを含むグループから選択された少なくとも1つのコンポーネントを含む請求項4に記載のシステム。
- 前記アプリケーションが、仮想マシン上でカーネル・モードで実行するアプリケーションであるか、あるいは、仮想マシン上でユーザ・モードで実行するアプリケーションである請求項9に記載のシステム。
- 前記転送手段が、グラフ構造体、ネットワーク・インターフェース、通信インターフェース、仮想スイッチ、仮想ネットワーク・インターフェース、仮想ストリーム・インターフェースを含むグループから選択された少なくとも1つのコンポーネントを含む請求項5に記載のシステム。
- 前記送り手段が、柔軟なグラフ構造体を含む経路に沿って、前記フローを送る請求項1に記載のシステム。
- 少なくとも1つのリアルタイム処理機能を持つオペレーティングシステムと、前記オペレーティングシステムのカーネル内、または前記オペレーティングシステムのユーザ空間内でホストされるアプリケーションとを持つプロセッサであって、前記送り手段が、前記アプリケーションを含む経路に沿って、前記フローの少なくとも一部を送るようなプロセッサを含む請求項1に記載のシステム。
- 前記送り手段が、処理手段と転送手段のグループから選択された複数のエンティティを含む経路に沿って、前記フローを送り、その場合、前記エンティティが、並列に、直列に、あるいは並列と直列の任意の組合せで接続されている請求項1に記載のシステム。
- 前記送り手段が、内部コンポーネントおよび/または外部コンポーネントを含む経路に沿って、前記フローを送る請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段がアプリケーションに応答する請求項6に記載のシステム。
- 前記フロー・ポリシー決定手段が、フローの前進部分と戻り部分に対して、異なるフロー・ポリシーを決定する請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段が、メモリ使用量、ネットワーク帯域幅の使用、電力消費、仮想マシン上のゲスト・オペレーティングシステムからのフィードバック、アプリケーションからのフィードバック、処理手段からのフィードバック、および、転送手段からのフィードバックを含むグループから選択された基準に基づいて、フローに対して前記フロー・ポリシーを決定する請求項1に記載のシステム。
- 前記フロー・ポリシー決定手段が、パケット・ヘッダー中のフィールド、パケット・ペイロード中のデータ、および、プロトコルとプロトコル・セットを含むグループから選択された基準に基づいて、フローに対して前記フロー・ポリシーを決定する請求項1に記載のシステム。
- 前記関連付け判定手段が、特定タイプのアプリケーションからのフロー、指定したプロトコルを使用するフロー、関連プロトコル階層の指定レイヤにサブプロトコルを使用するフロー、トラフィックの指定部分中の指定パターン、指定した組の通信エンティティに関連するフロー、含まれている経路からのフロー、および、指定したリンク、ネットワーク、ネットワーク・インターフェースからのフローを含むグループから選択された基準に基づいて、フローを関連付ける請求項7に記載のシステム。
- 前記グラフ構造体が、処理手段、転送手段、サブグラフ構造体を含むグループから選択された任意の組合せから成っている請求項12に記載のシステム。
- 第1のエンティティと第2のエンティティとの間のデジタル電子フローを処理する方法であって、
フローに施されるべきポリシーを決定するステップと、
前記関連フロー・ポリシーに基づいて、前記フローを、定められた経路に沿って送るステップと、
を含む方法。 - 初めに、前記第1のエンティティからのそれぞれの新たなフローに対してIDを提供し、後で、既存フローの前記IDを識別するステップを含む請求項22に記載のシステム。
- ポリシー・タグそれぞれのフローに対して提供し、前記ポリシー・タグをそのフローの前記IDに関連付けるステップを含み、前記ポリシー・タグはそのフローに施されるべき前記フロー・ポリシーを示す請求項23に記載の方法。
- 前記経路に少なくとも1つの処理手段を含むステップを含む請求項22に記載の方法。
- 前記経路に少なくとも1つの転送手段を含むステップを含む請求項22に記載の方法。
- フローに施される前記フロー・ポリシーを、その存続期間の間に変更する請求項24に記載の方法。
- 第1のフローが第2のフローに関連付けられるべきであるかどうか判定し、また、関連フロー・ポリシーを関連フローに施すステップを含む請求項22に記載の方法。
- フローを最初に受け取ったときに前記フローに施されるべき前記フロー・ポリシーを決定する請求項22に記載の方法。
- 前記処理手段が、グラフ構造体、プロセッサ、メモリ、仮想マシン、アプリケーションを含むグループから選択された少なくとも1つのコンポーネントを含む請求項25に記載の方法。
- 前記アプリケーションが、仮想マシン上でカーネル・モードで実行するアプリケーションであるか、あるいは、仮想マシン上でユーザ・モードで実行するアプリケーションである請求項30に記載の方法。
- 前記転送手段が、グラフ構造体、ネットワーク・インターフェース、通信インターフェース、仮想スイッチ、仮想ネットワーク・インターフェース、仮想ストリーム・インターフェースを含むグループから選択された少なくとも1つのコンポーネントを含む請求項26に記載の方法。
- 柔軟なグラフ構造体を含む経路に沿って、前記フローを送る請求項22に記載の方法。
- 少なくとも1つのリアルタイム処理機能を持つオペレーティングシステムのカーネル内またはユーザ空間内でホストされるアプリケーションを含む経路に沿って、前記フローの少なくとも一部が送られる請求項22に記載の方法。
- 処理手段と転送手段のグループから選択された複数のエンティティを含む経路に沿って、前記フローが送られ、その場合、前記エンティティが、並列に、直列に、あるいは並列と直列の任意の組合せで接続されている請求項22に記載の方法。
- 内部コンポーネントおよび/または外部コンポーネントを含む経路に沿って、前記フローが送られる請求項22に記載の方法。
- 前記フロー・ポリシーが、アプリケーションに応答して決定される請求項27に記載の方法。
- フローの前進部分と戻り部分に対して、前記フロー・ポリシーが異なる請求項22に記載の方法。
- メモリ使用量、ネットワーク帯域幅の使用、電力消費、仮想マシン上のゲスト・オペレーティングシステムからのフィードバック、アプリケーションからのフィードバック、処理手段からのフィードバック、および、転送手段からのフィードバックを含むグループから選択された基準に基づいて、フローに対して前記フロー・ポリシーが決定される請求項22に記載の方法。
- パケット・ヘッダー中のフィールド、パケット・ペイロード中のデータ、および、プロトコルとプロトコル・セットを含むグループから選択された基準に基づいて、フローに対して前記フロー・ポリシーが決定される請求項22に記載の方法。
- 特定タイプのアプリケーションからのフロー、指定したプロトコルを使用するフロー、関連プロトコル階層の指定レイヤにサブプロトコルを使用するフロー、トラフィックの指定部分中の指定パターン、指定した組の通信エンティティに関連するフロー、含まれている経路からのフロー、および、指定したリンク、ネットワーク、ネットワーク・インターフェースからのフローを含むグループから選択された基準に基づいて、前記フローが関連付けられる請求項28に記載の方法。
- 前記グラフ構造体が、処理手段、転送手段、サブグラフ構造体を含むグループから選択された任意の組合せから成っている請求項33に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0517304.2A GB0517304D0 (en) | 2005-08-23 | 2005-08-23 | A system and method for processing and forwarding transmitted information |
PCT/IB2006/052933 WO2007023467A2 (en) | 2005-08-23 | 2006-08-23 | Flow control based on flow policies in a communication network |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009506618A true JP2009506618A (ja) | 2009-02-12 |
Family
ID=35198316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008527577A Pending JP2009506618A (ja) | 2005-08-23 | 2006-08-23 | 伝送情報を処理して、転送するシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (4) | US20090204723A1 (ja) |
EP (1) | EP1917765B1 (ja) |
JP (1) | JP2009506618A (ja) |
CN (1) | CN101305561B (ja) |
GB (2) | GB0517304D0 (ja) |
WO (1) | WO2007023467A2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
WO2012114398A1 (en) * | 2011-02-24 | 2012-08-30 | Nec Corporation | Network system, controller, and flow control method |
JP2015162691A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | ポリシー制御システム、および、ポリシー制御プログラム |
JP2015162692A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | アプリケーション識別システムの転送削減方法、アプリケーション識別装置およびアプリケーション識別プログラム |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0517304D0 (en) * | 2005-08-23 | 2005-10-05 | Netronome Systems Inc | A system and method for processing and forwarding transmitted information |
US9119633B2 (en) | 2006-06-28 | 2015-09-01 | Kardium Inc. | Apparatus and method for intra-cardiac mapping and ablation |
AU2008216698B2 (en) * | 2007-02-12 | 2011-06-23 | Mushroom Networks Inc. | Access line bonding and splitting methods and apparatus |
CN101110766B (zh) | 2007-03-23 | 2010-04-21 | 华为技术有限公司 | 一种信令ip流承载事件上报的控制方法和功能实体 |
CN103458477B (zh) | 2007-09-27 | 2016-06-29 | 松下电器(美国)知识产权公司 | 移动终端、在移动终端中执行的方法和信息服务器 |
JP5205075B2 (ja) * | 2008-02-13 | 2013-06-05 | パナソニック株式会社 | 暗号処理方法、暗号処理装置、復号処理方法および復号処理装置 |
US7826359B2 (en) * | 2008-03-24 | 2010-11-02 | Oracle America, Inc. | Method and system for load balancing using queued packet information |
US8548428B2 (en) | 2009-01-28 | 2013-10-01 | Headwater Partners I Llc | Device group partitions and settlement platform |
US8406748B2 (en) | 2009-01-28 | 2013-03-26 | Headwater Partners I Llc | Adaptive ambient services |
US8832777B2 (en) | 2009-03-02 | 2014-09-09 | Headwater Partners I Llc | Adapting network policies based on device service processor configuration |
US8391834B2 (en) | 2009-01-28 | 2013-03-05 | Headwater Partners I Llc | Security techniques for device assisted services |
US8275830B2 (en) | 2009-01-28 | 2012-09-25 | Headwater Partners I Llc | Device assisted CDR creation, aggregation, mediation and billing |
US8346225B2 (en) | 2009-01-28 | 2013-01-01 | Headwater Partners I, Llc | Quality of service for device assisted services |
US8402111B2 (en) | 2009-01-28 | 2013-03-19 | Headwater Partners I, Llc | Device assisted services install |
US8675507B2 (en) | 2009-01-28 | 2014-03-18 | Headwater Partners I Llc | Service profile management with user preference, adaptive policy, network neutrality and user privacy for intermediate networking devices |
US8589541B2 (en) | 2009-01-28 | 2013-11-19 | Headwater Partners I Llc | Device-assisted services for protecting network capacity |
US8289867B2 (en) | 2008-08-01 | 2012-10-16 | Qualcomm Atheros, Inc. | Message routing mechanism for communication networks |
CN101465770B (zh) * | 2009-01-06 | 2011-04-06 | 北京航空航天大学 | 入侵检测系统部署方法 |
US9980146B2 (en) | 2009-01-28 | 2018-05-22 | Headwater Research Llc | Communications device with secure data path processing agents |
US9955332B2 (en) | 2009-01-28 | 2018-04-24 | Headwater Research Llc | Method for child wireless device activation to subscriber account of a master wireless device |
US10798252B2 (en) | 2009-01-28 | 2020-10-06 | Headwater Research Llc | System and method for providing user notifications |
US11973804B2 (en) | 2009-01-28 | 2024-04-30 | Headwater Research Llc | Network service plan design |
US10326800B2 (en) | 2009-01-28 | 2019-06-18 | Headwater Research Llc | Wireless network service interfaces |
US10264138B2 (en) | 2009-01-28 | 2019-04-16 | Headwater Research Llc | Mobile device and service management |
US10779177B2 (en) | 2009-01-28 | 2020-09-15 | Headwater Research Llc | Device group partitions and settlement platform |
US10248996B2 (en) | 2009-01-28 | 2019-04-02 | Headwater Research Llc | Method for operating a wireless end-user device mobile payment agent |
US10064055B2 (en) | 2009-01-28 | 2018-08-28 | Headwater Research Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US10237757B2 (en) | 2009-01-28 | 2019-03-19 | Headwater Research Llc | System and method for wireless network offloading |
US10492102B2 (en) | 2009-01-28 | 2019-11-26 | Headwater Research Llc | Intermediate networking devices |
US10484858B2 (en) | 2009-01-28 | 2019-11-19 | Headwater Research Llc | Enhanced roaming services and converged carrier networks with device assisted services and a proxy |
US9270559B2 (en) | 2009-01-28 | 2016-02-23 | Headwater Partners I Llc | Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow |
US10783581B2 (en) | 2009-01-28 | 2020-09-22 | Headwater Research Llc | Wireless end-user device providing ambient or sponsored services |
US9565707B2 (en) | 2009-01-28 | 2017-02-07 | Headwater Partners I Llc | Wireless end-user device with wireless data attribution to multiple personas |
US9392462B2 (en) | 2009-01-28 | 2016-07-12 | Headwater Partners I Llc | Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy |
US9954975B2 (en) | 2009-01-28 | 2018-04-24 | Headwater Research Llc | Enhanced curfew and protection associated with a device group |
US10715342B2 (en) | 2009-01-28 | 2020-07-14 | Headwater Research Llc | Managing service user discovery and service launch object placement on a device |
US9706061B2 (en) | 2009-01-28 | 2017-07-11 | Headwater Partners I Llc | Service design center for device assisted services |
US9609510B2 (en) | 2009-01-28 | 2017-03-28 | Headwater Research Llc | Automated credential porting for mobile devices |
US10841839B2 (en) | 2009-01-28 | 2020-11-17 | Headwater Research Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US10200541B2 (en) * | 2009-01-28 | 2019-02-05 | Headwater Research Llc | Wireless end-user device with divided user space/kernel space traffic policy system |
US9572019B2 (en) | 2009-01-28 | 2017-02-14 | Headwater Partners LLC | Service selection set published to device agent with on-device service selection |
US11218854B2 (en) | 2009-01-28 | 2022-01-04 | Headwater Research Llc | Service plan design, user interfaces, application programming interfaces, and device management |
US8051167B2 (en) * | 2009-02-13 | 2011-11-01 | Alcatel Lucent | Optimized mirror for content identification |
US8589919B2 (en) * | 2009-04-28 | 2013-11-19 | Cisco Technology, Inc. | Traffic forwarding for virtual machines |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US8813071B2 (en) * | 2011-01-31 | 2014-08-19 | Symantec Corporation | Storage reclamation systems and methods |
US9292329B2 (en) | 2011-02-10 | 2016-03-22 | Microsoft Technology Licensing, Llc | Virtual switch interceptor |
US9450873B2 (en) * | 2011-06-28 | 2016-09-20 | Microsoft Technology Licensing, Llc | Performance isolation for clouds |
CN105208670B (zh) | 2011-09-16 | 2019-01-18 | 华为技术有限公司 | 一种回收逆向授予中传输机会控制权的方法及装置 |
US10516607B2 (en) | 2012-04-12 | 2019-12-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Layer 3 service implementation in cloud servers and method |
US10031782B2 (en) | 2012-06-26 | 2018-07-24 | Juniper Networks, Inc. | Distributed processing of network device tasks |
TWI470550B (zh) * | 2012-06-26 | 2015-01-21 | Wistron Corp | 虛擬機器的通信方法以及伺服端系統 |
US20140006632A1 (en) * | 2012-07-02 | 2014-01-02 | Cisco Technology, Inc. | Multiplexer Load Balancer for Session Initiation Protocol Traffic |
US9094459B2 (en) * | 2012-07-16 | 2015-07-28 | International Business Machines Corporation | Flow based overlay network |
CN103577406B (zh) * | 2012-07-19 | 2019-04-16 | 深圳中兴网信科技有限公司 | 一种管理非结构化数据的方法及装置 |
CN102917045A (zh) * | 2012-10-17 | 2013-02-06 | 苏州阔地网络科技有限公司 | 一种处理离线会议的方法及系统 |
CN102916824A (zh) * | 2012-10-17 | 2013-02-06 | 苏州阔地网络科技有限公司 | 一种实现离线会议的方法及系统 |
CN102946354B (zh) * | 2012-11-15 | 2016-11-23 | 华为技术有限公司 | 一种报文转发的方法、装置及网络设备 |
EP2933963B1 (en) * | 2012-12-28 | 2018-04-25 | Huawei Technologies Co., Ltd. | Traffic flow control based on the traffic type |
US8955155B1 (en) | 2013-03-12 | 2015-02-10 | Amazon Technologies, Inc. | Secure information flow |
US9137165B2 (en) | 2013-06-17 | 2015-09-15 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of load balancing using primary and stand-by addresses and related load balancers and servers |
US9621642B2 (en) | 2013-06-17 | 2017-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of forwarding data packets using transient tables and related load balancers |
WO2014209260A1 (en) * | 2013-06-24 | 2014-12-31 | Hewlett-Packard Development Company, L.P. | Processing a data flow graph of a hybrid flow |
US9118571B2 (en) * | 2013-07-08 | 2015-08-25 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters |
US20150071298A1 (en) * | 2013-09-09 | 2015-03-12 | Microsoft Corporation | Hybrid Forwarding in a Virtual Switch |
CN106063200B (zh) * | 2013-12-09 | 2019-11-01 | 华为技术有限公司 | 一种用于内容缓存的装置、方法 |
US10367827B2 (en) * | 2013-12-19 | 2019-07-30 | Splunk Inc. | Using network locations obtained from multiple threat lists to evaluate network data or machine data |
US9921867B2 (en) * | 2013-12-30 | 2018-03-20 | Huawei Technologies Co., Ltd. | Negotiation between virtual machine and host to determine executor of packet flow control policy with reduced address space |
CN103763403B (zh) * | 2013-12-30 | 2017-03-15 | 华为技术有限公司 | 报文流量控制方法及相关装置和计算节点 |
US9485183B2 (en) | 2014-04-25 | 2016-11-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efectuating packet distribution among servers in a network |
CN105227462B (zh) * | 2014-06-11 | 2018-06-29 | 上海诺基亚贝尔股份有限公司 | 一种用于更新OpenFlow流表的方法与设备 |
US9456030B2 (en) * | 2014-09-15 | 2016-09-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of operating load balancing switches and controllers using modified flow entries |
CN105530179B (zh) * | 2014-09-29 | 2019-01-22 | 新华三技术有限公司 | 数据报文处理方法以及网络设备 |
US10284470B2 (en) * | 2014-12-23 | 2019-05-07 | Intel Corporation | Technologies for network device flow lookup management |
CN104601467B (zh) * | 2014-12-31 | 2018-03-13 | 华为技术有限公司 | 一种发送报文的方法和装置 |
US9537801B1 (en) * | 2015-01-31 | 2017-01-03 | Netronome Systems, Inc. | Distributed packet ordering system having separate worker and output processors |
US10846117B1 (en) * | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10447728B1 (en) | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US9912774B2 (en) * | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US20180212885A1 (en) * | 2017-01-20 | 2018-07-26 | Google Inc. | Device and method for scalable traffic shaping at a receiver with a time-indexed data structure |
US10454835B2 (en) | 2017-01-20 | 2019-10-22 | Google Llc | Device and method for scalable traffic shaping with a time-indexed data structure |
US20180324061A1 (en) * | 2017-05-03 | 2018-11-08 | Extrahop Networks, Inc. | Detecting network flow states for network traffic analysis |
US11429410B2 (en) * | 2017-05-09 | 2022-08-30 | Vmware, Inc. | Tag based firewall implementation in software defined networks |
CN109309634A (zh) * | 2018-09-25 | 2019-02-05 | 新华三技术有限公司 | 一种报文处理系统及网络设备 |
US11258714B1 (en) * | 2018-09-28 | 2022-02-22 | Google Llc | Fine grain traffic shaping offload for a network interface card |
US11539796B2 (en) * | 2020-07-08 | 2022-12-27 | Bank Of America Corporation | System for intelligent sensor data transfer and device manipulation leveraging quantum optimization engine |
US11784933B2 (en) | 2020-12-08 | 2023-10-10 | Google Llc | Traffic shaping offload on a network interface controller |
US11463314B2 (en) * | 2020-12-16 | 2022-10-04 | Oracle International Corporation | Automatically inferring software-defined network policies from the observed workload in a computing environment |
US11102076B1 (en) | 2021-02-04 | 2021-08-24 | Oracle International Corporation | Techniques for network policies analysis in container frameworks |
US11444837B1 (en) | 2021-02-26 | 2022-09-13 | Oracle International Corporation | Techniques for verifying network policies in container frameworks |
US20220391348A1 (en) * | 2021-06-04 | 2022-12-08 | Microsoft Technology Licensing, Llc | Userspace networking with remote direct memory access |
US11296967B1 (en) | 2021-09-23 | 2022-04-05 | Extrahop Networks, Inc. | Combining passive network analysis and active probing |
US11843606B2 (en) | 2022-03-30 | 2023-12-12 | Extrahop Networks, Inc. | Detecting abnormal data access based on data similarity |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11163947A (ja) * | 1997-09-22 | 1999-06-18 | Toshiba Corp | ゲートウェイ装置、無線端末装置、ルータ装置および通信ネットワークのゲートウェイ制御方法 |
JP2003169097A (ja) * | 2001-12-04 | 2003-06-13 | Hitachi Ltd | パケット処理方法および装置 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
FI114132B (fi) * | 1998-01-28 | 2004-08-13 | Nokia Corp | Tiedonsiirron laatutason tukeminen langattomassa tiedonsiirrossa |
US6154776A (en) * | 1998-03-20 | 2000-11-28 | Sun Microsystems, Inc. | Quality of service allocation on a network |
US6542508B1 (en) * | 1998-12-17 | 2003-04-01 | Watchguard Technologies, Inc. | Policy engine using stream classifier and policy binding database to associate data packet with appropriate action processor for processing without involvement of a host processor |
US6625150B1 (en) * | 1998-12-17 | 2003-09-23 | Watchguard Technologies, Inc. | Policy engine architecture |
US6636480B1 (en) * | 1999-09-08 | 2003-10-21 | Riverstone Networks, Inc. | Method and system for controlling data flow through a multiport switch |
US6636838B1 (en) * | 2000-02-23 | 2003-10-21 | Sun Microsystems, Inc. | Content screening with end-to-end encryption |
EP1370967A4 (en) * | 2001-02-24 | 2009-10-21 | Ibm | OPTIMIZED RESIZING NETWORK SWITCH |
US7099350B2 (en) * | 2001-04-24 | 2006-08-29 | Atitania, Ltd. | Method and apparatus for converting data between two dissimilar systems |
DE60206168T2 (de) * | 2001-06-15 | 2006-06-22 | British Telecommunications Public Ltd. Co. | Kommunikationsnetzwerk mit stau-verhinderung |
US7133365B2 (en) * | 2001-11-02 | 2006-11-07 | Internap Network Services Corporation | System and method to provide routing control of information over networks |
US20030110379A1 (en) * | 2001-12-07 | 2003-06-12 | Tatu Ylonen | Application gateway system, and method for maintaining security in a packet-switched information network |
US7650634B2 (en) * | 2002-02-08 | 2010-01-19 | Juniper Networks, Inc. | Intelligent integrated network security device |
JP2004252852A (ja) | 2003-02-21 | 2004-09-09 | Matsushita Electric Ind Co Ltd | 情報処理装置及び情報処理方法 |
US20050015599A1 (en) | 2003-06-25 | 2005-01-20 | Nokia, Inc. | Two-phase hash value matching technique in message protection systems |
US20050114700A1 (en) * | 2003-08-13 | 2005-05-26 | Sensory Networks, Inc. | Integrated circuit apparatus and method for high throughput signature based network applications |
US20050102414A1 (en) * | 2003-09-16 | 2005-05-12 | Shailesh Mehra | Systems and methods to support quality of service in communications networks |
US7685436B2 (en) * | 2003-10-02 | 2010-03-23 | Itt Manufacturing Enterprises, Inc. | System and method for a secure I/O interface |
EP1557982B1 (en) * | 2004-01-26 | 2011-05-11 | STMicroelectronics Srl | Method and system for admission control in communication networks |
US20060070066A1 (en) * | 2004-09-30 | 2006-03-30 | Grobman Steven L | Enabling platform network stack control in a virtualization platform |
US7719966B2 (en) * | 2005-04-13 | 2010-05-18 | Zeugma Systems Inc. | Network element architecture for deep packet inspection |
US7287114B2 (en) * | 2005-05-10 | 2007-10-23 | Intel Corporation | Simulating multiple virtual channels in switched fabric networks |
US7639613B1 (en) * | 2005-06-24 | 2009-12-29 | Packeteer, Inc. | Adaptive, flow-based network traffic measurement and monitoring system |
US7624436B2 (en) * | 2005-06-30 | 2009-11-24 | Intel Corporation | Multi-pattern packet content inspection mechanisms employing tagged values |
CN1905517A (zh) * | 2005-07-30 | 2007-01-31 | 华为技术有限公司 | 在ngn网络中为媒体流选择转发路径的控制系统及方法 |
GB0517304D0 (en) * | 2005-08-23 | 2005-10-05 | Netronome Systems Inc | A system and method for processing and forwarding transmitted information |
-
2005
- 2005-08-23 GB GBGB0517304.2A patent/GB0517304D0/en not_active Ceased
-
2006
- 2006-08-23 US US12/064,585 patent/US20090204723A1/en not_active Abandoned
- 2006-08-23 WO PCT/IB2006/052933 patent/WO2007023467A2/en active Application Filing
- 2006-08-23 GB GB0802510A patent/GB2445116B/en active Active
- 2006-08-23 EP EP06795760A patent/EP1917765B1/en active Active
- 2006-08-23 CN CN2006800309377A patent/CN101305561B/zh not_active Expired - Fee Related
- 2006-08-23 JP JP2008527577A patent/JP2009506618A/ja active Pending
-
2011
- 2011-12-26 US US13/337,184 patent/US8929374B2/en active Active
-
2014
- 2014-12-31 US US14/587,513 patent/US10044619B1/en active Active
-
2018
- 2018-03-27 US US15/937,085 patent/US10680951B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11163947A (ja) * | 1997-09-22 | 1999-06-18 | Toshiba Corp | ゲートウェイ装置、無線端末装置、ルータ装置および通信ネットワークのゲートウェイ制御方法 |
JP2003169097A (ja) * | 2001-12-04 | 2003-06-13 | Hitachi Ltd | パケット処理方法および装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
JP5720577B2 (ja) * | 2009-12-04 | 2015-05-20 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
US9130867B2 (en) | 2009-12-04 | 2015-09-08 | Nec Corporation | Flow control for virtualization-based server |
WO2012114398A1 (en) * | 2011-02-24 | 2012-08-30 | Nec Corporation | Network system, controller, and flow control method |
JP2014506739A (ja) * | 2011-02-24 | 2014-03-17 | 日本電気株式会社 | ネットワークシステム、コントローラ、及びフロー制御方法 |
US9614747B2 (en) | 2011-02-24 | 2017-04-04 | Nec Corporation | Network system, controller, and flow control method |
JP2015162691A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | ポリシー制御システム、および、ポリシー制御プログラム |
JP2015162692A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | アプリケーション識別システムの転送削減方法、アプリケーション識別装置およびアプリケーション識別プログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2007023467A2 (en) | 2007-03-01 |
CN101305561B (zh) | 2011-08-03 |
US20090204723A1 (en) | 2009-08-13 |
EP1917765B1 (en) | 2012-08-08 |
CN101305561A (zh) | 2008-11-12 |
GB2445116A (en) | 2008-06-25 |
EP1917765A2 (en) | 2008-05-07 |
US20180219779A1 (en) | 2018-08-02 |
US20120093160A1 (en) | 2012-04-19 |
GB2445116B (en) | 2010-06-02 |
US10044619B1 (en) | 2018-08-07 |
GB0517304D0 (en) | 2005-10-05 |
US8929374B2 (en) | 2015-01-06 |
WO2007023467A3 (en) | 2007-08-09 |
GB0802510D0 (en) | 2008-03-19 |
US10680951B2 (en) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10680951B2 (en) | System and method for processing and forwarding transmitted information | |
US11677851B2 (en) | Accelerated network packet processing | |
US11025647B2 (en) | Providing a virtual security appliance architecture to a virtual cloud infrastructure | |
US9800502B2 (en) | Quantized congestion notification for computing environments | |
US7764678B2 (en) | Routing based on dynamic classification rules | |
CN109547580B (zh) | 一种处理数据报文的方法和装置 | |
US9462084B2 (en) | Parallel processing of service functions in service function chains | |
US9882776B2 (en) | Methods and apparatus for configuring a virtual network switch | |
US9729441B2 (en) | Service function bundling for service function chains | |
US8234361B2 (en) | Computerized system and method for handling network traffic | |
KR101969194B1 (ko) | 네트워킹 장치 가상화를 위한 패킷 처리 오프로딩 기법 | |
US9559948B2 (en) | System and method for managing unknown flows in a flow-based switching device | |
US7944923B2 (en) | Method and system for classifying network traffic | |
US11595303B2 (en) | Packet handling in software-defined net working (SDN) environments | |
US9716688B1 (en) | VPN for containers and virtual machines in local area networks | |
US10541842B2 (en) | Methods and apparatus for enhancing virtual switch capabilities in a direct-access configured network interface card | |
US11811685B1 (en) | Selective packet processing including a run-to-completion packet processing data plane | |
US11115337B2 (en) | Network traffic segregation on an application basis in a virtual computing environment | |
US20160315858A1 (en) | Load balancing of ipv6 traffic in an ipv4 environment | |
CN115865802A (zh) | 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质 | |
CN117389680A (zh) | 数据处理方法、装置及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090714 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110204 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110805 |