【実施例】
【0052】
ネットワーク装置間の協働の課題を解決するために、ソフトウェア定義ネットワーク(Software Defined Network。SDN)の概念を提案する。SDNネットワークは、スイッチ及びルータなどの多くのデータ・ノード、及びデータ・ノード全てに対する一元的な管理及び制御を行うための制御ノードによって形成されるデータ伝送ネットワークを含み、制御ノードは、オープンフローOpenFlowプロトコルに基づいてデータ・ノードと通信する。
【0053】
当該業界におけるSDNネットワークのアーキテクチャを
図3に示し、SDNネットワークは主に、データ・プレーン、制御プレーン、及びサービス・プレーンの3層構造によって形成される。データ・プレーンは主に、OpenFlowプロトコルをサポートするスイッチ又はルータ装置によって形成され、データ交換及び配信をサポートする基本機能に基づいて、この装置は、SDNネットワークが必要とする以下の3つの要素を有していることを必要とする。すなわち、(1)データ・ノード装置はそれぞれ、制御ノードが読み書きすることが可能なフロー・テーブルを記憶し、フロー・テーブルはフロー・ルールによって形成され、フロー・ルールはそれぞれ、フローの伝送層属性、及び対応する動作を含み、タイプ0の現在のOpenFlow装置は4つの単純な動作(転送、破棄、局所処理、及び制御ノードへの送出)をサポートする。(2)データ・ノード及び制御ノードはセキュアな通信リンクを維持し、(3)OpenFlowベース通信プロトコル相互作用手順をサポートする。制御プレーンは単一の制御ノードによって形成され、制御ノードはデータ・ノードそれぞれとのOpenFlowプロトコル・ベースの通信リンクを維持し、制御ノードは、OpenFlowプロトコルを介してデータ・ノードそれぞれのフロー・テーブルを読み書きして、各ノードの状態を検知し、各ノードの転送ルールを制御し、ネットワーク・ルーティング、帯域リソース配分等を調節することが可能である。現在のSDNネットワーク構造では、サービス・プレーンは抽象化層であり、一般に、制御ノードによって実現することが可能な機能を表す。例えば、制御ノードは、動的ルーティング分散、トラフィック・ロード・バランシング、ネットワーク・ステータス監視、並びに、高速障害位置特定及び解析などの伝送層サービス機能を、ネットワーク全体におけるデータ・ノードの状態を検知することによって実現する。
【0054】
以下に、
図3に示すように、例としてデータ・メッセージの第1のデータ・パケットをとることにより、SDNネットワークにおけるメッセージの処理手順を表す。
【0055】
1. クライアントの要求メッセージの第1のデータ・パケットが、SDNネットワークのデータ・ノードAに入る。
【0056】
2. ノードAは、デフォルトのルール(コントローラへの送出)にヒットする旨のメッセージに対するフロー・テーブル・マッチングを行い、メッセージを制御ノードに送出する。
【0057】
3. 制御ノードは、特定の帯域幅及びルーティング配分ポリシーと組み合わせた現在のネットワーク状態に応じてサービス・フローに対してルートを割り当て、OpenFlowプロトコルを介して、対応するデータ・ノードにルールを配信し、フローに対応するルールをデータ・ノードのフロー・テーブルに付加する。
【0058】
4. 次いで、制御ノードは、メッセージを送出したデータ・ノードにメッセージを戻す。
【0059】
5. データ・ノードはそれぞれ、フロー・テーブル・ルールに応じてメッセージを順次転送する。
【0060】
図3を参照すれば、以下に、OpenFlowプロトコルをサポートするデータ・ノードのフロー・テーブル形式を説明する。
【0061】
「openflow−spec−v1.1.0」では、
図3の右上にあるテーブルに示すように、定義された形式は以下の通りである。
【0062】
InPort:データ・ノードにデータ・パケットが入るためのポート。例えば、スイッチ装置の特定のネットワーク・ポート。
【0063】
VLANID:TCP/IPプロトコルにおけるレイヤ2とレイヤ3との間のラベル・フィールドであり、それぞれ別々のラベルに応じてソース端をラベリングし得、デスティネーション端を処理し得る。
【0064】
イーサネット(登録商標)SA:ソース端物理アドレス、及びソースMAC(Medium Access Control。媒体アクセス制御)アドレス。
【0065】
イーサネット(登録商標)DA:デスティネーション端物理アドレス、及びデスティネーションMACアドレス。
【0066】
イーサネット(登録商標)タイプ;ベアラのレイヤ2メッセージ・タイプを表す、例えば、0x8000はIPメッセージを表す。
【0067】
IP SA:ソース端のIPアドレス。
【0068】
IP DA:デスティネーション端のIPアドレス。
【0069】
IP Proto:IPレイヤの上位レイヤ・ベアラのプロトコル・タイプ、例えば、0x6は、TCPプロトコル・タイプ・メッセージが含まれていることを表す。
【0070】
TCP Src:ソース端のTCPポートを表す。
【0071】
TCP Dst:デスティネーション端のTCPポートを表す。
【0072】
図3に示すように、(1)ソースがポート6であり、VLAN(Virtual Local Area Network。仮想ローカル・エリア・ネットワーク)IDが2002であるサービス・フローの場合、フロー・テーブル・マッチング・ルールはポート1に転送され、(2)ソースがポート1であり、デスティネーション・アドレスが1.1.1.1であるサービス・フローの場合、フロー・テーブル・マッチング・ルールはドロップ(廃棄)であり、(3)ソースがポート6であり、通信ポートが80であるサービス・フローの場合、フロー・テーブル・マッチング・ルールは局所(局所処理)であり、(4)別のサービス・フローの場合、デフォルト・フロー・テーブル・マッチング・ルールはコントローラ、すなわち、制御ノードへのアップロードである。
【0073】
SDNネットワークの概念及び装置は主に、研究所又はキャンパス・ネットワークなどの集中管理及び制御に適した小規模ネットワークに適用され、(URLフィルタリング、ネットワーク・アプリケーション・アクセラレーション、IPS防御、メッセージ・プロトコル分類、又はHTTPリダイレクト・サービスなどの)アプリケーション層関連サービスを処理する解決策が関係することなく、(ルーティング制御、ネットワーク・トラフィック・バランシング、ネットワーク障害検出及び高速診断、又は動的リンク調節などの)伝送層サービスの課題を狙いとしている。本発明は、SDNネットワーク構造の制約に対して提案された改良された拡張方法であり、SDNネットワークに基づいて、本発明は、制御層において複数のノードを階層的に配置する態様で、ネットワーク全体のサービス機能共有、及びアプリケーション層関連サービス処理を実現する方法を提案している。
【0074】
図4に示すように、本発明の実施例によるソフトウェア定義ネットワーク・ベースのデータ処理システム40を示し、システム40は、第1のデータ・パケットを受信し、第1のデータ・パケットを、対応するソース制御ノード421に送出するよう構成されたソース・データ・ノード411と、ソース・データ・ノード411によって送出された第1のデータ・パケットを受信し、第1のデータ・パケットは第1のデータ・パケットのデスティネーション・アドレスを収容し、第1のデータ・パケットのデスティネーション・アドレスに応じてデスティネーション制御ノード422を判定するよう構成されたソース制御ノード421と、第1のデータ・パケットを受信し、第1のデータ・パケット及びマッチング・ポリシー・ルールに応じて第2のデータ・パケットを生成するよう構成されたデスティネーション制御ノード422とを備える。
【0075】
本発明の実施例では、対応するソース制御ノード421は、ソース・データ・ノード411のIPアドレス・ドメインに応じて、又は、ソース・データ・ノード411と制御ノードとの間のマッピングに応じて判定される。データ・ノード及び制御ノードのマッピング・テーブルはソース・データ・ノード411に記憶し得、ソース・データ・ノード411に対応するソース制御ノード421はテーブルを参照することによって判定され、対応するソース制御ノード421は、物理トポロジ構造又はソース・データ・ノード411のIPアドレス・ドメインによる算出によっても判定し得る。上記は本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例に対する制限としてみなされるべきでないものとする。ソース・データ・ノードによるソース制御ノードの判定は更に、創作的な労力なしで当業者によって実現することが可能な別の態様を含む。
【0076】
本発明の実施例では、ソース制御ノード421は特に、ソース・データ・ノード411によって送出された第1のデータ・パケットを受信するよう構成され、第1のデータ・パケットは第1のデータ・パケットのデスティネーション・アドレスを収容し、第1のデータ・パケットのデスティネーション・アドレスに応じてデスティネーション・データ・ノード413を判定し、ソース制御ノード421が、デスティネーション・データ・ノード413を管理しない場合、デスティネーション制御ノード422としてデスティネーション・データ・ノード413及びソース・データ・ノード411を管理する第1の制御ノードを判定するよう構成される。
【0077】
図4に示すように、ソース制御ノード421は、デスティネーション制御ノード422に直結し得、更に、別の制御ノード423を介してデスティネーション制御ノード422に間接的に接続し得る(1つのみを図示しており、複数の制御ノードが実際の状況において存在し得る)。考えられる別の実現態様では、ソース制御ノード421は更に、デスティネーション制御ノード413を管理し、その際に、ソース制御ノード421は、デスティネーション制御ノード422(図示せず)として判定し得る。
【0078】
本発明の実施例では、ソース制御ノード421又はソース・データ・ノード411は、第1のデータ・パケットをデスティネーション制御ノード422に送出するよう更に構成される。
【0079】
本発明の実施例では、マッチング・ポリシー・ルールは、サブタプル情報と動作パラメータ又はポリシー・パラメータとの間のマッピング/対応関係、又は、アプリケーション層情報と動作パラメータ又はポリシー・パラメータとの間のマッピングを含み、デスティネーション制御ノード422は、特に、第1のデータ・パケットを受信し、第1のデータ・パケットのサブタプル情報又は第1のデータ・パケットのアプリケーション層情報に対応するポリシー・パラメータ又は動作パラメータを求めて、第1のデータ・パケットのサブタプル情報又は第1のデータ・パケットのアプリケーション層情報に応じて、マッチング・ポリシー・ルールをサーチし、見つかった動作パラメータ又はポリシー・パラメータに応じて第2のデータ・パケットを生成するよう構成される。
【0080】
処理ルールは、フロー・テーブル・マッチング結果及びデータ・パケットのタプル情報に応じてデータ・ノードによって得られる、フロー・テーブル・エントリにおいて指定されるパラメータ及び処理動作、並びに対応するフロー・テーブル・エントリを表す。フロー・テーブル・マッチング後、パラメータ及び処理動作(コントローラへの送出、局所、転送等)を含む、データ・ノードのフロー・テーブル・エントリが得られる。
【0081】
本発明の実施例では、サブタプル情報は、データ・パケットのソース/デスティネーションMACアドレス、ソース/デスティネーションIPアドレス、ソース/デスティネーションTCPポート、データ・ノード(スイッチ)の入口/出口としてのネットワーク・ポート、及びデータ・パケットのVLANラベルを含み、情報はデータ・パケットから得ることが可能である。
【0082】
本発明の実施例では、
図21.1に示すように、ネットワーク管理者はまず、管理プレーンを介してポリシー・ルール・セットを構成し、例えば、制御プレーン上の制御ノードに、ポリシー・ルール・セットを配信する。ポリシー・ルールは例えば、ルール(1)IF tcp.port=80 && url=http://www.xxx.com THEN http://www.yyy.comにリダイレクト、及びルール(2) IF tcp.port = 8080 && ip.src = 10.10.10.* THEN ブロック であり、ポリシー・ルール・セットは、いくつかのポリシー・ルールによって形成されたセットであり、2. 制御ノードは、例えばポリシー・ルールに応じてポリシー・マッチング・ツリーを確立する。上記ポリシー・ルールに応じて確立されたポリシー・マッチング・ルールは
図21に示し、ツリーにおける内部ノードは条件ノードであり、葉ノードは動作ノードであり、エッジそれぞれは、マッチした条件を表す。3.制御ノードは、受信されたデータ・パケットからtcp/ip/urlなどのタプル情報を抽出し、マッチング・ツリーに入ってノードとのルール・マッチングを開始し、最後に、葉ノードに達して、対応するルール動作にヒットする。
【0083】
制御ノードは、tcp.port=80及びip.src = 10.10.10.*などのデータ・ノードに伝送層条件(L4レイヤ条件)を配信し、0x0111及び0x0002などの数、すなわち、データ・ノード・フロー・テーブルのサービス・パラメータ・フィールドを、配信された条件についてマーキングする。データ・パケットに対してフロー・テーブル・マッチングを行ってフロー・テーブル・エントリにヒットした後にデータ・ノードがデータ・パケットを制御ノードに送出すると、データ・ノードは次いで、制御ノードに搬送する対象のデータ・パケットにサービス・パラメータ・フィールドを付加する、例えば、サービス・パラメータ0x0001が制御ノードに搬送され、次いで、制御ノードは、マッチング・ツリーの根ノードから始めて、再び、(L4層条件である)データ・パケットの伝送層にマッチさせる必要なく、マッチング・ツリーのurlノードからの更なるルール・マッチングを直接行う。上記例は、本発明の実施例の特定の解決策に対する制限というよりも、本発明の実施例の理解を助けるための例に過ぎず、予め設定されたポリシー・ルールが別の態様で作成され、制御ノードは更に、上記実施例に列挙した他のアプリケーション層情報に応じて更なるルール・マッチングを行うことが可能である。
【0084】
上記例では、アプリケーション層情報は、以下のテーブルに示すような、データ・パケットのURL情報であり得、アプリケーション層情報は、以下のテーブルに示す一情報であり得る。
【0085】
【表1】
【0086】
【表2】
本発明の実施例では、データ処理システム40は、1つ又は複数のサービング・ノード(
図431、
図432、
図433を参照されたい)を更に含み、マッチング・ポリシー・ルールは、サブタプル情報と動作パラメータ又はポリシー・パラメータとの間のマッピング/対応関係、又は、アプリケーション層情報と動作パラメータ又はポリシー・パラメータとの間のマッピングを更に含み、デスティネーション制御ノード422は、特に、第1のデータ・パケットを受信し、第1のデータ・パケットのアプリケーション層情報又は第1のデータ・パケットのサブタプル情報に対応するポリシー・パラメータ又は動作パラメータについて、第1のデータ・パケットのアプリケーション層情報又は第1のデータ・パケットのサブタプル情報に応じて、マッチング・ポリシー・ルールをサーチし、1つ又は複数のサービング・ノードにおいて動作パラメータ又はポリシー・パラメータを実行する機能を有する第1のサービング・ノード431に機能要求情報を、見つかった動作パラメータ又はポリシー・パラメータに応じて送出するよう構成され、第1のサービング・ノード431は、機能要求情報に応じてデスティネーション制御ノード422に、対応する機能応答情報を送出するよう構成され、デスティネーション制御ノード422は、機能応答情報に応じて第2のデータ・パケットを生成する。
【0087】
本発明の実施例では、デスティネーション制御ノード422は、第2のデータ・パケットをソース・データ・ノード411に送出するよう更に構成され、第2のデータ・パケットは第2のデータ・パケットのデスティネーション・アドレスを収容し、ソース・データ・ノード411は、第2のデータ・パケットのデスティネーション・アドレスに対応するデータ・ノードに第2のデータ・パケットをデスティネーション制御ノード422の管理下で送出するよう更に構成される。
【0088】
本発明の実施例では、データ処理システム40は、少なくとも1つの中継データ・ノード412(1つのみを図示しており、複数の中継データ・ノードが実際の状況において存在し得る)を含み、デスティネーション制御ノード422が、中継データ・ノード412それぞれを管理するよう構成され、中継データ・ノード412は、中継データ・ノード412に対応するフロー・テーブルを記憶し、フロー・テーブルは、データ・パケットの処理ルールを記憶するために使用され、ソース・データ・ノード411は、ソース・データ・ノード411に対応するフロー・テーブルを記憶し、フロー・テーブルは、データ・パケットの処理ルールを記憶するために使用され、デスティネーション制御ノード422は、ルーティング配分ルールを生成し、ルーティング配分ルールを中継データ・ノード412及びソース・データ・ノード411に配信するよう更に構成され、ルーティング配分ルールは、第2のデータ・パケットに対するルートを割り当てるために使用され、中継データ・ノード412は、デスティネーション制御ノ―ド422によって送出されたルーティング配分ルールを受信し、ルーティング配分ルールに応じて中継データ・ノード412のフロー・テーブルを更新するよう更に構成され、ソース・データ・ノード411は、第2のデータ・パケットのデスティネーション・アドレスに対応する中継データ・ノード412に第2のデータ・パケットを、更新されたフロー・テーブルに応じて送出するよう更に構成され、中継データ・ノード412は、第2のデータ・パケットのデスティネーション・アドレスに対応するデスティネーション・データ・ノード413に第2のデータ・パケットを、更新されたフロー・テーブルに応じて送出するよう構成される。
【0089】
本発明の実施例では、ソース・データ・ノード411はフロー・テーブルを更に記憶し、フロー・テーブルは、サービス・フロー・データのサブタプル情報、及びサブタプル情報に対応する処理ルールを記憶するために使用される。デスティネーション制御ノード422は、ソース・データ・ノード411のフロー・テーブルに制御ノード番号フィールド及びサービス・パラメータ・フィールドを付加するよう更に構成され、制御ノード番号フィールドは、ソース・データ・ノード411に対応するデスティネーション制御ノード422のインデクスを表すために使用され、サービス・パラメータ・フィールドは、サービス・フロー・データ・パケットのサブタプル情報の処理結果に対応するインデクスを表すために使用される。
【0090】
本発明の実施例では、データ・ノード装置はそれぞれ、制御ノードが読み書きすることが可能な初期フロー・テーブルを記憶し、上記フロー・テーブルはフロー・ルールによって形成され、フロー・ルールはそれぞれ、フローの伝送層属性、及び対応する動作を含み、タイプ0の現在のOpenFlow装置は4つの単純な動作(転送、破棄、局所処理、及び制御ノードへの送出)をサポートする。
図12に示すように、本発明の実施例は、初期フロー・テーブルに制御ノード番号Controlnode及びサービス・パラメータParaを付加することにより、制御プレーンの複数のノード上でサポートする機能を実現する。ソース制御ノードが、OpenFlowプロトコルにより、データ・ノードのフロー・テーブル・ルールを修正する場合に、制御ノード番号Control node及びサービス・パラメータParaを付加し得る。制御ノード番号Control nodeはソース制御ノードによって指定され、データ・ノードが、現在のサービス・フローのデスティネーション制御ノードへの送出を必要とする場合に送出するための、対応するデスティネーション制御ノードの一意の識別子を表す。サービス・パラメータParaは、制御ノードのサービス処理をアクセラレートするためのサービス・フローの関連情報を提供し、一般に、サービス・フローによってヒットされたルール、又は、サービス・フローとマッチされた伝送層ポリシー条件などの、サービス・フローの伝送層情報に応じて対応するポリシー条件又はポリシー動作とマッチされる。データ・ノードに記憶されたフロー・テーブル・フィールドに対する修正は、本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例に対する特定の制限としてみなされるべきでないものとする。フロー・テーブル・フィールドの付加は、データ・ノード上で予め設定し得、更に、最終データ・ノードによって完了し得る。場合によっては、制御ノード番号Control nodeのみをデータ・ノードのフロー・テーブルに付加し得、サービス・パラメータParaによって供給されるサービス・フローの関連情報は、制御ノードが、予め設定されたポリシー・マッチング・ルールをサービス・フロー・データ・パケットとマッチさせた後に取得し得る。サービス・パラメータParaを付加する主な目的は、制御ノードによる関連サービス・フロー情報の処理をアクセラレートすることであり、それにより、ネットワーク動作の効率を向上させる。拡張されたOpenFlowフロー・テーブル構造は、2つのフィールド、すなわち、制御ノード番号(Control Node)及びサービス・パラメータ(Para)を元のフロー・テーブルに基づいて拡張させる。制御ノード番号は、送出するために制御ノードを一意に判定するために使用され、サービス・パラメータは、ポリシー・マッチングのヒットしたポリシー・ルール又は中間マッチング結果であり得る。2つのフィールドはデータ・ノードのフロー・テーブルに制御ノードによって付加され、データ・ノードは、フロー・ルールにヒットし、制御ノードに送出する場合に、TCP−optionsフィールドを介して制御ノードにポリシー・マッチング・パラメータを送出し、制御ノードは、パラメータに応じてルール・マッチングをアクセラレートし、又は対応するサービスを実行し得る。
【0091】
具体的なデータ・サービス・フローについては、一般に、データ・サービス・フローの第1のデータ・パケットはデフォルトのフロー・テーブル・ルールとマッチし、データ・ノードは、デフォルト・フロー・テーブル・ルールに応じて制御ノードに第1のデータ・パケットを送出し、制御ノードは、第1のデータ・パケットに応じて更なるルール・マッチングを行い、次いで、ルール・マッチングの結果に応じてデータ・ノードのフロー・テーブルにフロー・テーブル・ルールを付加する。この時、制御ノードは、データ・ノードのフロー・テーブルにおいて、2つのフィールド、すなわち、制御ノード番号(Control Node)及びサービス・パラメータ(Para)を拡張させるので、データ・サービス・フローの後続データ・パケットは、新たに付加された2つのルールとマッチし得、新たなルールに応じてデータ・ノードから転送される。具体的なルールについては、
図21における例を参照し得る。
【0092】
本発明の実施例では、ソース・データ・ノードは第3のデータ・パケットを受信するよう更に構成され、第3のデータ・パケット及び第1のデータ・パケットはサービス・フロー・データ・パケットに属し、第3のデータ・パケットのサブタプル情報に対応する処理ルールは第1のデータ・パケットのサブタプル情報に対応する処理ルールと同じである。
【0093】
本発明の実施例では、ソース・データ・ノードは、第3のデータ・パケットのサブタプル情報にマッチする処理ルール・レコードからのサブタプル情報に対応するサービス・パラメータをフロー・テーブルに応じて判定するよう更に構成され、サービス・パラメータは、第3のデータ・パケットについて実行される対象のポリシー・パラメータ又は動作パラメータのインデクスを表すために使用され、ソース・データ・ノードは、第3のデータ・パケットにおけるサービス・パラメータを収容し、第3のデータ・パケットをデスティネーション制御ノードに送出し、デスティネーション制御ノードは、第3のデータ・パケットについて実行される対象のポリシー・パラメータ又は動作パラメータを第3のデータ・パケットのサービス・パラメータ及びアプリケーション層情報に応じて判定して、第4のデータ・パケットを生成するよう更に構成される。
【0094】
具体的な実現態様を
図22に示し得、デフォルト・フロー・テーブル・ルールと、第1のデータ・パケットとのマッチング動作は再びここで説明しないものとする。第1のデータ・パケットの処理ルールと同じ、サブタプル情報の処理ルールを有する第3のデータ・パケットは、多少異なる処理ルールを有する。第3のデータ・パケットは、第1のデータ・パケットのサービス・フローと同じサービス・フローからのデータ・パケットであり得、対応するフロー・テーブル・マッチング中に必要な同じサブタプル情報を有するサービス・フロー・データ・パケットでもあり得る。サブタプル情報はデータ・パケット・タプル情報の部分集合であり、例えば、データ・パケットは3タプル、5タプル、又は10タプルによって形成され得、サブタプル情報は相応に複数の組み合わせを有し得、例えば、1つのサブタプルのみが3タプルから選択されるか、又は2つのサブタプルが選択される。本発明の実施例では、サブタプル情報は、データ・パケットのソース/デスティネーションMACアドレス、ソース/デスティネーションIPアドレス、ソース/デスティネーションTCPポート、データ・ノード(スイッチ)の入口/出口としてのネットワーク・ポート、及びデータ・パケットのVLANラベルを含み、情報はデータ・パケットから得ることが可能である。サブタプル情報のリスト及び第3のデータ・パケットの例証は本発明の実施例の理解を助けるために使用される説明に過ぎず、本発明の実施例に対する具体的な制限としてみなすべきでない。
【0095】
図22及び
図21に示すように、制御ノードは、tcp.port=80及びip.src = 10.10.10.*などの伝送層条件(具体例においてサブタプル情報にマッチする条件として理解することが可能なL4レイヤ条件)をデータ・ノードに供給し、0x0001及び0x0002などの数、すなわち(具体例においてマッチするサブタプル情報の結果として理解することが可能な)データ・ノード・フロー・テーブルのサービス・パラメータ・フィールドを、供給された条件としてマーキングする。データ・ノードが、フロー・テーブル・エントリにヒットするよう第3のデータ・パケットに対するフロー・テーブル・マッチングを行った後、データ・ノードは、ソース制御ノードを介して転送する必要なしで、デスティネーション制御ノードのパラメータ・フィールドに応じて第3のデータ・パケットをデスティネーション制御ノードに直接送出し得、第3のデータ・パケットは、デスティネーション制御ノードに送出される場合、サービス・パラメータ・フィールド値を収容し、第3のデータ・パケットに対応するサービス・パラメータ・フィールド値は、デスティネーション制御ノードが、第1のデータ・パケットに対してポリシー・マッチングを行う場合に、ソース制御ノードのフロー・テーブルに書き込まれ、第3のデータ・パケットは、制御ノードに搬送される対象のデータ・パケットにサービス・パラメータ・フィールド値を付加し、例えば、サービス・パラメータ0x0001は制御ノードに搬送され、制御ノードは、数0x0001に応じて、ヒットした条件tcp.port=80に対応して、マッチング・ツリーの根ノードから始めて、再び(L4レイヤ条件である)データ・パケットの伝送層にマッチさせる必要なしで、マッチング・ツリーのurlノードから更なるルール・マッチングを直接行う。このようにして、デスティネーション制御ノードのマッチング動作をアクセラレートさせ、それにより、ネットワーク処理効率を向上させることができる。
【0096】
本発明の実施例では、制御ノード及びデータ・ノードは少なくとも2つのリンクを使用することによって接続され、一方のリンクはデータ・パケットを伝送するためのデータ・リンクであり、他方のリンクは制御パケットを伝送するための制御リンクである。データ・ノードは、データ・リンクを介して制御ノードにデータ・パケットを送出し、制御ノードは制御リンクを介してデータ・ノードのフロー・テーブル・フィールドを修正する。
【0097】
サービング・ノードは、以下の機能などの、アプリケーション層サービスを処理する統合された機能を複数の制御ノードに提供し得る。
【0098】
キャッシュ共有機能。制御ノードは全て、キャッシュ情報を共有し得、1つの制御ノードによって要求されたデータをキャッシュにおいて見つけることが可能である場合、キャッシュ・データが直接取得され、ネットワーク・アクセス性能が向上する。
【0099】
リンク品質情報共有:制御ノードは全て、現在のリンク状態の情報を共有し得、制御ノードは、ルーティング配分中のインク状態に応じてルーティング選択を最適化し得る。
【0100】
P2P型プロトコルを要求する場合に、ローカル・エリア・ネットワークにおけるピア・アドレス・リストを供給するよう選択し、それにより、P2P型ダウンロード速度を向上させることができるP2Pプロトコル型ピア・アドレス情報共有
ネットワーク・アクセラレーション・サービス・メッセージ圧縮及び伸張機能
種々のサービス処理機能が、コールするために制御ノードにオープンなOpenAPIインタフェースの態様において提供され、種々の機能を、マルチスレッド、マルチプロセス、又はマルチデバイスの態様で配置することが可能であり、同じ機能が共有プールを介してデータを共有し得、機能共有プールはグローバル変数、共有メモリ、又は統合リソース・アクセス装置の形式を有し得、制御ノードは、サービング・ノードの機能をコールすることにより、第1のデータ・パケットを処理して、処理済の第2のデータ・パケットを生成し得る。
【0101】
本発明の第1の局面における実施例によるSDNネットワーク・システム40では、制御ノードの階層的配置態様において、SDNネットワークにおける機能共有配分及びアプリケーション層サービス処理、ポリシー・ルールに応じた機能配分方法、並びに、拡張されたデータ・ノード・フロー・テーブル構造が実現されるので、ネットワーク装置におけるマルチノード処理の冗長性を削減するために、ノード間の協働が改善され、不合理なノード機能配分、機能非対称性、及び機能非集約が解決され、それにより、ネットワークのサービス処理効率が向上し、同時に、制御ノードの階層型配置態様は、制御ノードの処理性能のボトルネックを解決し、ネットワークの安定性、信頼性、及びスケーラビリティを維持する。
【0102】
図5を参照すれば、以下に、本発明の第1の局面における実施例によるデータ処理のためのSDNネットワーク・システム50を説明する。
図5に示すように、SDNネットワーク・システム50は、データ・プレーン51であって、データ・プレーン51が、少なくとも2つのデータ・ノードを含み、サービス・フロー・データ・パケットを受信するデータ・ノードがソース・データ・ノードであるデータ・プレーン51と、制御プレーン52であって、制御プレーン52が、少なくとも1つの制御ノードを含み、制御ノードが、予め設定されたルールに応じてデータ・プレーンのデータ・ノードを管理するよう構成され、ソース制御ノードCnode1がソース・データ・ノード511を管理する制御プレーン52とを備え、ソース・データ・ノード511は第1の要求情報をソース制御ノードCnode1に送出し、第1の要求情報は、ソース・データ・ノード511によって受信された第1のデータ・パケットを含み、第1のデータ・パケットは、第1のデータ・パケットのデスティネーション・アドレスを含み、ソース制御ノードCnode1は、第1のデータ・パケットのデスティネーション・アドレスに応じてデスティネーション制御ノード522を判定し、デスティネーション制御ノード522は、予め設定されたポリシー・ルール及び第1のデータ・パケットに応じて第2のデータ・パケットを生成し、ソース・データ・ノード511は、デスティネーション制御ノード522によって送出された第2のデータ・パケットを受信し、デスティネーション制御ノード522の管理下で第2のデータ・パケットを送出する。
【0103】
本発明の実施例では、制御ノードは、データ・プレーン51のデータ・ノードをグループ化することによる、少なくとも2つのグループ化データ・ノードの取得を含め、予め設定されたルールに応じてデータ・プレーンのデータ・ノードを管理するよう構成され、制御ノードは階層的管理態様を採用し、最下位レイヤ制御ノードは、グループ化データ・ノードのうちの一グループを管理し、上位レイヤ制御ノードは、最下位層制御ノードのうちの少なくとも1つを管理し、すなわち、上位層制御ノードは、グループ化データ・ノードのうちの少なくとも1つの群を管理し、最上位層制御ノードは、データ・プレーン51のデータ・ノード全てを管理する。
【0104】
本発明の実施例では、
図11に示すように、データ・プレーンは、複数のエッジ・データ・ノード(中継データ・ノードは図示していない)を含み、対称セクタにおけるいくつかの領域に分けられる。
図11では、領域A及び領域Bがマーキングされ、制御プレーンは、複数層の制御ノードによって形成され、制御ノードnode1及びnode2はそれぞれ、領域A及び領域Bにおけるエッジ・データ・ノード及び中継データ・ノード(図示せず)を管理し、制御ノードnode1及びnode2の親ノードnode11は領域A及び領域Bにおけるノード全てを管理し、同様に、制御ノードは階層的態様を採用し、よって、親ノードはサブノード全てによって管理される領域全てを管理することが可能であり、最上位レイヤ制御ノードはデータ・プレーンのデータ・ノード全てを管理することが可能である。
【0105】
本発明の実施例では、ソース制御ノードCnode1による、データ・パケットのデスティネーション・アドレスに応じたデスティネーション制御ノード522の判定は、第1のデータ・パケットのデスティネーション・アドレスに応じた、デスティネーション・データ・ノード512の判定と、ソース制御ノードCnode1がデスティネーション・データ・ノード512を管理する場合の、ソース制御ノードCnode1の、デスティネーション制御ノード522としての判定とを含む。説明を簡単にするために、本実施例は
図5に示していない。
【0106】
本発明の実施例では、ソース制御ノードCnode1がデスティネーション・データ・ノード512を管理しない場合、同時にソース・データ・ノード511及びデスティネーション・データ・ノード512を管理する第2の制御ノードはデスティネーション制御ノード522として判定される。
【0107】
本発明の実施例では、デスティネーション制御ノード522による、マッチング・ポリシー及び第1のデータ・パケットに応じた第2のデータ・パケットの生成は、マッチング・ポリシー・ルールに応じて第1のデータ・パケットに対してポリシー・ルール・マッチングをデスティネーション制御ノード522によって行って、ポリシー・マッチング後の結果を得る工程と、デスティネーション制御ノード522が、ポリシー・マッチング後の結果を実行することが可能である場合、ポリシー・マッチング後の結果に応じて第2のデータ・パケットをデスティネーション制御ノード522によって生成する工程とを含む。マッチング・ポリシー・ルールは、データ・パケットに対してデスティネーション制御ノードによって実行される対象の対応する動作又はパラメータであり得、更に、アプリケーション層サービスの要求に応じてデータ・パケットに対してデスティネーション制御ノードによって行われる処理であってもよい。
【0108】
本発明の実施例では、ネットワーク・システム50は、サービス・プレーン53であって、サービス・プレーン53は、制御プレーン52に対してサービス処理機能を提供するよう構成されるサービス・プレーン53を含み、デスティネーション制御ノード522が、ポリシー・マッチング後の結果を実行することが可能でない場合、デスティネーション制御ノード522は、サービス・プレーン53に機能要求情報を、ポリシー・マッチング後の結果に応じて送出し、サービス・プレーン53は、機能要求情報に応じて、対応する機能応答情報をデスティネーション制御ノード522に送出し、デスティネーション制御ノード522は機能応答情報に応じて第2のデータ・パケットを生成する。サービス・プレーン53は、複数の制御ノードに対するアプリケーション層サービスを処理する統合機能を提供し得、上記機能は相応に、データ・パケットのポリシー・マッチング後の結果を実行することが可能であり、種々のサービス処理機能が、コールするために制御ノードに、アプリケーション・プログラムに対するオープンなインタフェース態様OpenAPIにおいて提供され、種々の機能をマルチスレッド、マルチプロセス、又はマルチデバイス態様において配置することが可能であり、同じ機能が、共有プールを介してデータを共有することが可能であり、機能共有プールは、グローバル変数、共有メモリ、又は統合リソース・アクセス装置の形式を有し得る。
【0109】
本発明の実施例では、ネットワーク・システム50は、管理プレーン54を更に含み、管理プレーン54は、データ・プレーン51のネットワーク・トポロジ、制御プレーン52のポリシー・ルール、及びサービス・プレーン53のサービス処理容量の少なくとも1つを管理するよう構成される。ネットワーク・トポロジ管理は、データ・ノードそれぞれによってアクセスされるクライアントのIPアドレス区間範囲、ポート配分、データ・プレーン・ノード間の通信経路を含む。ポリシー・ルール管理は、ユーザによって構成されるサービス処理に関するルールを表し、ポリシー・ルールは、伝送層又はアプリケーション層ポリシー条件、及び対応するサービス処理動作によって形成される。管理プレーンは、SDNネットワーク・システムの初期設定中に上記管理態様を実現し得、更に、SDNネットワーク・システムが動作する際のユーザ要求、又はSDNネットワークのリアルタイム状況に応じて上記管理態様に対する設定又は修正を行い得る。
【0110】
本発明の第2の局面における実施例によるSDNネットワーク・システム50では、制御ノードの階層的配置態様において、SDNネットワークにおける機能共有配分及びアプリケーション層サービス処理、ポリシー・ルールに応じた機能配分方法、並びに、拡張されたデータ・ノード・フロー・テーブルが実現されるので、ネットワーク装置におけるマルチノード処理の冗長性を削減するために、ノード間の協働が改善され、不合理なノード機能配分、機能非対称性、及び機能非集約が解決され、それにより、ネットワークのサービス処理効率が向上し、同時に、制御ノードの階層型配置態様は、制御ノードの処理性能のボトルネックを解決し、ネットワークの安定性、信頼性、及びスケーラビリティを維持する。
【0111】
図6を参照すれば、以下に、本発明の第2の局面における実施例によるソフトウェア定義ネットワーク・ベースのデータ処理方法を説明する。
【0112】
図6に示すように、方法は以下を含む。
【0113】
S61:ソース・データ・ノードは第1のデータ・パケットを受信する。
【0114】
S62:ソース・データ・ノードは、対応するソース制御ノードに第1のデータ・パケットを送出し、第1のデータ・パケットは第1のデータ・パケットのデスティネーション・アドレスを収容するので、ソース制御ノードは第1のデータ・パケットのデスティネーション・アドレスに応じてデスティネーション制御ノードを判定し、デスティネーション制御ノードは第1のデータ・パケットに応じて第2のデータ・パケットを生成する。
【0115】
S63:ソース・データ・ノードは、デスティネーション制御ノードによって送出された第2のデータ・パケットを受信する。
【0116】
本発明の第2の局面における実施例において提供されるソフトウェア定義ネットワーク(SDN)ベースのデータ処理方法によれば、デ―タ・ノードによって受信されたデータ・パケットに対して種々の処理を制御ノード上で行うことにより、ノード間の協働機能が改善され、ネットワーク装置におけるマルチノード処理の冗長度も削減される。更に、ネットワーク装置がサービス・フロー・データ・パケットを処理する機能が改善され、それにより、ネットワークのサービス処理効率が向上する。
【0117】
図7を参照すれば、以下に、本発明の第3の局面における実施例によるソフトウェア定義ネットワーク・ベースのデータ処理方法を説明する。
【0118】
図7に示すように、方法は、
S71:デスティネーション制御ノードは第1のデータ・パケットを受信し、第1のデータ・パケットは第1のデータ・パケットのデスティネーション・アドレスを収容し、デスティネーション制御ノードは、第1のデータ・パケットのデスティネーション・アドレスに応じてソース制御ノードによって判定される。
【0119】
S72:デスティネーション制御ノードは、マッチング・ポリシー・ルール及び第1のデータ・パケットに応じて第2のデータ・パケットを生成する。
【0120】
S73:第2のデータ・パケットをソース・データ・ノードに送出する。
【0121】
本発明の第3の局面における実施例において提供されるソフトウェア定義ネットワーク(SDN)ベースのデータ処理方法によれば、デ―タ・ノードによって受信されたデータ・パケットに対して種々の処理を制御ノード上で行うことにより、ノード間の協働機能が改善され、ネットワーク装置におけるマルチノード処理の冗長度も削減される。更に、ネットワーク装置がサービス・フロー・データ・パケットを処理する機能が改善され、それにより、ネットワークのサービス処理効率が向上する。
【0122】
図8を参照すれば、以下に、本発明の第4の局面における実施例によるソフトウェア定義ネットワーク・ベースのデータ・ノード10を説明する。データ・ノード10は、第1の受信モジュール101及び第1の送出モジュール102を含み、第1の受信モジュール101は第1の送出モジュール102に接続される。第1の受信モジュール101は第1のデータ・パケットを受信するよう構成され、第1の送出モジュール102は、対応するソース制御ノードに、第1の受信モジュール101によって受信された第1のデータ・パケットを送出するよう構成されるので、ソース制御ノードは第1のデータ・パケットのデスティネーション・アドレスに応じてデスティネーション制御ノードを判定し、デスティネーション制御ノードは第1のデータ・パケットに応じて第2のデータ・パケットを生成し、第1の受信モジュール101は、デスティネーション制御ノードによって送出された第2のデータ・パケットを受信するよう更に構成される。
【0123】
本発明の第5の局面における実施例において提供されるソフトウェア定義ネットワーク(SDN)ベースのデータ・ノード10によれば、ノード間の協働機能が改善され、ネットワーク装置におけるマルチノード処理の冗長度も削減される。更に、ネットワーク装置がサービス・フロー・データ・パケットを処理する機能が改善され、それにより、ネットワークのサービス処理効率が向上する。
【0124】
データ・ノード10は、外部装置又は制御ノードと通信接続されて、外部装置又は制御ノードによって送出されるデータ・フローを受信し、処理し、外部ノード又は制御ノードに関連データ情報を送出するよう構成される。
【0125】
本発明の実施例では、データ・ノード10は、フロー・テーブル103を更に含み、フロー・テーブルは、データ・パケットのタプル情報、及びタプル情報に対応する処理ルールを記憶するために使用される。サブタプル情報は、データ・パケットのソース/デスティネーションMACアドレス、ソース/デスティネーションIPアドレス、ソース/デスティネーションTCPポート、データ・ノード(スイッチ)の入口/出口としてのネットワーク・ポート、及びデータ・パケットのVLANラベルを含み、情報はデータ・パケットから得ることが可能である。
【0126】
フロー・テーブルはフロー・ルールによって形成され、フロー・ルールはそれぞれ、対応する動作及びフローの伝送層属性を含み、タイプ0の現在のオープンフローのOpenFlow装置は、単純な4つの動作(転送、破棄、局所処理、及び制御ノードに対する送出)をサポートする。
【0127】
本発明の実施例において、第1のデータ・パケットが、予め設定された処理ルールを満たす場合、第1の送出モジュール102は、第1の要求情報をソース制御ノードに送出する。
【0128】
本発明の実施例では、データ・ノード10は更に、第1の処理モジュール104を含み、第1の処理モジュールは、第1の受信モジュール101によって受信されたデスティネーション制御ノード情報に応じてデスティネーション制御ノードを得るよう構成され、
第1の処理モジュール104は、デスティネーション制御ノード情報に応じて、フロー・テーブル103に制御ノード番号フィールド及びサービス・パラメータ・フィールドを付加するよう更に構成され、制御ノード番号フィールドは、ソース・データ・ノードに対応するデスティネーション制御ノードを表すために使用され、サービス・パラメータ・フィールドは、データ・パケット上のソース・データ・ノードによって行われる処理ルールの結果を表すために使用される。
【0129】
本発明の実施例では、
図12に示すように、本発明の実施例は、初期フロー・テーブルに制御ノード番号Control node及びサービス・パラメータParaを付加することにより、制御プレーン上の複数のノードの機能サポートを実現する。ソース制御ノードが、OpenFlowプロトコルにより、データ・ノードのフロー・テーブル・ルールを修正する場合に、制御ノード番号Control node及びサービス・パラメータParaを付加し得る。制御ノード番号Control nodeはソース制御ノードによって指定され、データ・ノードが、現在のサービス・フローのデスティネーション制御ノードへの送出を必要とする場合に送出するための、対応するデスティネーション制御ノードの一意の識別子を表し、サービス・パラメータParaは、制御ノードのサービス処理をアクセラレートするためにサービス・フローの関連情報を提供し、一般に、サービス・フローによってヒットされたルール、又は、サービス・フローとマッチされた伝送層ポリシー条件などの、サービス・フローの伝送層情報に応じて対応するポリシー条件又はポリシー動作とマッチされる。データ・ノードに記憶されたフロー・テーブル・フィールドに対する修正は、本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例に対する特定の制限としてみなされるべきでないものとする。フロー・テーブル・フィールドの付加は、データ・ノード上で予め設定し得、更に、最終データ・ノードによって行い得る。場合によっては、制御ノード番号Control nodeのみをデータ・ノードのフロー・テーブルに付加し得、サービス・パラメータParaによって供給されるサービス・フローの関連情報は、予め設定されたポリシー・マッチング・ルールに応じて、かつ、サービス・フロー・データ・パケット・マッチング後に制御ノードによって取得し得る。サービス・パラメータParaを付加する主な目的は、制御ノードが関連サービス・フロー情報を処理することをアクセラレートし、それにより、ネットワーク動作の効率をサポートすることである。
【0130】
本発明の実施例では、フロー・テーブル103に制御ノード番号フィールド及びサービス・パラメータ・フィールドを付加する工程は、処理モジュール104が、フロー・テーブル103に応じて受信データ・パケットに対してルール・マッチング処理を行い、ルール・マッチング処理後の結果をフロー・テーブル103に入れ、第1の送出モジュール102は、フロー・テーブル103のサービス・パラメータ・フィールドを介してデータ・パケットのルール・マッチング処理後の結果をデスティネーション制御ノードに送出することを含む。
【0131】
本発明の実施例では、制御ノード番号は、送出するために制御ノードを一意に判定するために使用され、サービス・パラメータは、ポリシー・マッチングのヒットしたポリシー・ルール又は中間マッチング結果であり得る。2つのフィールドはデータ・ノードのフロー・テーブルに制御ノードによって付加され、データ・ノードは、フロー・ルールにヒットし、制御ノードに送出する場合に、TCP−optionsフィールドを介して制御ノードにポリシー・マッチング・パラメータを送出し、デスティネーション制御ノードは、パラメータに応じてルール・マッチングをアクセラレートし、又は対応するサービスを実行し得る。
【0132】
図9を参照すれば、以下に、本発明の第5の局面において提供される実施例によるソフトウェア定義ネットワーク・ベースのデータ処理のためのデスティネーション制御ノード11を説明する。デスティネーション制御ノード11は、第2の受信モジュール111であって、第2の受信モジュール111は、第1のデータ・パケットを受信するよう構成され、第1のデータ・パケットは第1のデータ・パケットのデスティネーション・アドレスを収容し、デスティネーション制御ノードは第1のデータ・パケットのデスティネーション・アドレスに応じてソース制御ノードによって判定される第2の受信モジュール111と、
マッチング・ポリシー・ルール及び第2の受信モジュール111によって受信された第2のデータ・パケットに応じて第2のデータ・パケットを生成するよう構成された第2の処理モジュール113と、
第2の処理モジュール113によって生成された第2のデータ・パケットをソース・データ・ノードに送出するよう構成された第2の送出モジュール112であって、ソース・データ・ノードは第1のデータ・パケットを受信し、ソース制御ノードに対応する。
【0133】
第2の処理モジュール113は、データ処理機能を有するプロセッサ又は別の装置であり得る。
【0134】
本発明の第5の局面における実施例において提供されるソフトウェア定義ネットワーク(SDN)ベースのデータ処理のためのデスティネーション・データ・ノード11によれば、ノード間の協働機能が改善され、ネットワーク装置におけるマルチノード処理の冗長度も削減される。更に、ネットワーク装置がサービス・フロー・データ・パケットを処理する機能が改善され、それにより、ネットワークのサービス処理効率が向上する。
【0135】
デスティネーション制御ノード11は、データ・ノード又はソース制御ノードと通信接続される。本発明の実施例では、デスティネーション制御ノード11も、サービング・ノードと通信接続される。デスティネーション制御ノード11は、サービング・ノード、ソース制御ノード、及びデータ・ノードによって送出されるデータ・フローを受信し、処理するよう構成され、サービング・ノード、ソース制御ノード、及びデータ・ノードに関連データ情報を送出するよう構成される。
【0136】
本発明の実施例では、デスティネーション制御ノード11は更に第2の送出モジュール112を含み、第2の送出モジュール112は、ソース・データ・ノードに処理モジュール113によって生成された第2のデータ・パケットを送出するよう構成される。
【0137】
本発明の実施例では、デスティネーション制御ノード11は更に、管理モジュール114を含み、管理モジュール114は、ソース・データ・ノードを管理して第2のデータ・パケットを送出するよう構成される。
【0138】
本発明の実施例では、第2の送出モジュール112はソース・データ・ノードに応答情報を送出するよう更に構成され、応答情報は、ソース・データ・ノードのフロー・テーブルに制御ノード番号フィールド及びサービス・パラメータ・フィールドを付加するために使用され、制御ノード番号フィールドは、ソース・データ・ノードに対応するデスティネーション制御ノードを表すために使用され、サービス・パラメータ・フィールドは、データ・パケットにソース・データ・ノードによって行われる処理ルールの結果を表すために使用される。
【0139】
本発明の実施例では、予め設定されたポリシー・ルール及び第1のデータ・パケットに応じて第2のデータ・パケットを生成する処理モジュール113は、予め設定されたポリシー・ルールに応じて第1のデータ・パケットに対してポリシー・ルール・マッチングを行って、ポリシー・マッチング後の結果を取得し、処理モジュール113がポリシー・マッチング後の結果を実行することが可能である場合、処理モジュール113は、ポリシー・マッチング後の結果に応じて第2のデータ・パケットを生成する。処理モジュール113がポリシー・マッチング後の結果を実行することが可能でない場合、第2の送出モジュール112は、サービング・ノードに機能要求情報を、処理モジュール113によって実行されたポリシー・マッチング後の結果に応じて送出し、処理モジュール113は、サービング・ノードから第2の受信モジュール111によって受信された機能応答情報に応じて第2のデータ・パケットを生成し、機能応答情報は対応する機能要求情報に応じてサービング・ノードによって生成される。
【0140】
以下に、特定の実現形態の詳細により、SDNベース・ネットワーク・システムにおける上記データ処理方法、ノード、及びシステムを説明する。例証を簡単にするために、システムにおいて使用される一部の実現態様は更に、方法又は装置において適用することができ、方法において使用される一部の実現態様は更に、システム又は装置において適用することができる。以下の実現態様は、本発明の実施例の技術的解決策に対する制限というより、本発明の理解を助けるための具体例に過ぎず、本発明の実施例の技術的解決策は更に、創作的な労力なしで当業者によって実現することが可能な別の態様を更に含む。
【0141】
図5を参照すれば、以下に、本発明の実施例によるデータ処理のSNDシステムの構造及び機能を説明する。
【0142】
図5に示すように、機能の区分けの観点からの、データ処理のためのSNDシステムは、4つの機能プレーン(すなわち、データ・プレーン、制御プレーン、サービス・プレーン、及び管理プレーン)を含み、サービス・データ処理の観点から、3つの層(すなわち、下から上に順番に、データ層、制御層、及びサービス層)を含む。
【0143】
(1)データ・プレーンはデータ・スイッチ・ノードによって形成され、データ・ノードは既存のSDNネットワーク・ノード機能と互換であり、OpenFlowプロトコルに基づいて制御ノードとの通信をサポートすることが可能である。データ・プレーンは、制御プレーンによって供給されるフロー・テーブルに応じてサービス・フローの転送処理機能を実現する役割を果たす。
【0144】
データ・プレーンのデータ・ノードは、外部装置に接続されたノードであって、外部装置がネットワークにアクセスすることを可能にするエッジ・データ・ノードであって、この種のノードは、外部装置とのデータ相互作用を行う役割を主に果たし、上記ソース・データ・ノードもデスティネーション・データ・ノードもエッジ・データ・ノードに属する、外部装置に接続されたノード、及び、別の内部データ・ノードのみに接続されたノードである中継データ・ノードであって、中継データ・ノードは、SDNネットワークにおけるエッジ・データ・ノード又は中継データ・ノードにのみ接続され、データ相互作用を生成するために外部装置に直接通信接続される訳でない一方、エッジ・データ・ノードを介して外部装置に間接的に接続される中継データ・ノードの2つのカテゴリに分類することが可能である。
【0145】
本発明の実施例では、データ・ノード装置はそれぞれ、制御ノードが読み書きすることが可能な初期フロー・テーブルを記憶し、上記フロー・テーブルはフロー・ルールによって形成され、フロー・ルールはそれぞれ、フローの伝送層属性、及び対応する動作を含み、タイプ0の現在のOpenFlow装置は4つの単純な動作(転送、破棄、局所処理、及び制御ノードへの送出)をサポートする。
図12に示すように、本発明の実施例は、初期フロー・テーブルに制御ノード番号Control node及びサービス・パラメータParaを付加することにより、制御プレーンの複数のノード上でサポートする機能を実現する。ソース制御ノードが、OpenFlowプロトコルにより、データ・ノードのフロー・テーブル・ルールを修正する場合に、制御ノード番号Control node及びサービス・パラメータParaを付加し得る。制御ノード番号Control nodeはソース制御ノードによって指定され、データ・ノードが、現在のサービス・フローのデスティネーション制御ノードへの送出を必要とする場合に送出するための、対応するデスティネーション制御ノードの一意の識別子を表し、サービス・パラメータParaは、制御ノードのサービス処理をアクセラレートするためにサービス・フローの関連情報を提供し、一般に、サービス・フローによってヒットされたルール、又は、サービス・フローとマッチされた伝送層ポリシー条件などの、サービス・フローの伝送層情報に応じて対応するポリシー条件又はポリシー動作とマッチされる。データ・ノードに記憶されたフロー・テーブル・フィールドに対する修正は、本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例に対する特定の制限としてみなされるべきでないものとする。フロー・テーブル・フィールドの付加は、データ・ノード上で予め設定し得、更に、最終データ・ノードによって行い得る。場合によっては、制御ノード番号Controlnodeのみをデータ・ノードのフロー・テーブルに付加し得、サービス・パラメータParaによって供給されるサービス・フローの関連情報は、予め設定されたポリシー・マッチング・ルールに応じて、かつ、サービス・フロー・データ・パケット・マッチング後に制御ノードによって取得し得る。サービス・パラメータParaを付加する主な目的は、制御ノードが関連サービス・フロー情報を処理することをアクセラレートし、それにより、ネットワーク動作の効率を向上させることである。
【0146】
図12を参照すれば、以下に、本発明の実施例によるデータ・プレーンの機能の特定の実現態様を説明する。
図12に示すように、1つのデータ・ノードが、制御プレーン上の複数の制御ノードと通信し得るので、データ・ノードは、フロー・テーブル動作がコントローラに対する送出である、すなわち、制御ノードに対する送出である場合に、制御ノードに対する送出という一意のマークを特定する必要がある。よって、
図10に示すように、拡張されたOpenFlowフロー・テーブル構造は、2つのフィールド、すなわち、制御ノード番号(Control Node)及びサービス・パラメータ(Para)フィールドを元のフロー・テーブルに基づいて拡張させる。制御ノード番号は、送出するために制御ノードを一意に判定するために使用され、サービス・パラメータは、ポリシー・マッチングのヒットされたポリシー・ルール又は中間マッチング結果であり得る。2つのフィールドはデータ・ノードのフロー・テーブルに制御ノードによって付加され、データ・ノードは、フロー・ルールにヒットし、制御ノードに送出する場合に、TCP−optionsフィールドを介して制御ノードにポリシー・マッチング・パラメータを送出し、制御ノードは、パラメータに応じてルール・マッチングをアクセラレートし、又は対応するサービスを実行し得る。
【0147】
IPアドレス範囲 1.1.*.*からのサービス・フローのためにデータ・ノード2によって予め設定された、アップローディングのためのソース制御ノードは、制御ノード1である。
【0148】
ポート6から入るサービス・フローの場合、そのVLAN IDが2002である場合、データ・ノード2のデフォルト・マッチング・ルールはサービス・フローをポート1に転送し、この時点で、アプリケーション層サービスの処理が関与せず、マッチング・ルールに対応する処理動作はデータ・ノード2上で実現することが可能である。
【0149】
ポート1から入るサービス・フローの場合、そのIPアドレスが2.2.2.2である場合、データ・ノード2のデフォルト・マッチング・ルールはサービス・フローのデータ・パケットを破棄し、この時点で、アプリケーション層サービスの処理がやはり関与せず、マッチング・ルールに対応する処理動作はデータ・ノード2上で実現することが可能である。
【0150】
ポート6から入るサービス・フローの場合、その通信ポートが80である場合、データ・ノード2のデフォルト・マッチング・ルールはサービス・フローのデータ・パケットを制御ノードに送出し、対応する制御ノードの番号は1であり、すなわち、制御ノード1へのデータ・パケットの送出であり、サービス・パラメータParaの値は10であり、すなわち、10に対応するポリシー・ルールのヒットであり、例えば、ポリシー・ルールは例えば、以下のようなポリシー・ルールであり得る。
【0151】
IF port=80 && url = www.xxx.com THEN url=www.yyy.comにリダイレクトする。ここで、port=80の条件はサービス・パラメータ10に対応する。
【0152】
別のサービス・フローの場合、データ・ノード2のマッチング・ルールはサービス・フローのデータ・パケットの制御ノードへの送出であり、対応する制御ノードの番号は1であり、すなわち、制御ノード1へのデータ・パケットの送出であり、サービス・パラメータParaの値は0であり、すなわち、0に対応するポリシー・ルールのヒットであり、例えば、ポリシー・ルールは例えば、以下のようなルールであり得る。
【0153】
IF url=www.xxx.com THEN url=www.zzz.comにリダイレクトする。
【0154】
ポリシー・ルールは、管理プレーンのルール管理により、ネットワーク管理者によって構成され、制御ノードは、ルールが具体的に伝送層に関係するか、アプリケーション層(ポリシー・ルールのIF部分)に関係するかという条件に応じて、データ・ノードにフロー・テーブル・パラメータを提供する。例えば、サービス・パラメータ10に対応する例では、データ・パケット・ポート80とのみマッチするデータ・ノードについての情報は、サービス・パラメータ10を介して制御ノードに送出することが可能であり、制御ノードには、サービス・パラメータに応じて、データ・ノードがデータ・パケット充足条件port=80とマッチしていることが分かるので、制御ノードは、データ・パケットのポート番号を更にマッチさせる必要なしで、urlがurl=www.xxx.comの条件を満たすか否かをチェックするよう連続してマッチさせればよいに過ぎない。この例は、制御ノードが、port=80の条件がマッチされるか否かをサービス・パラメータ0乃至10に応じて区別するという点で、サービス・パラメータの値が0である例と異なる。
【0155】
上記実施例は本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例に対する特定の制限としてみなされるべきでないものとする。本発明の実施例は更に、創作的な労力なしで当業者によって実現することが可能な別の態様を更に含み得る。
【0156】
(2)トラフィック制御、ルーティング配分、及びロード・バランシングなどの、SDNネットワークの既存の伝送層サービス機能と互換であることに加えて、制御プレーンは、プロトコル識別及び解析、ポリシー・ルール・マッチング、ルール・マッチング結果に応じた、データ・ノードへの動作の送出、及び対応するサービス機能のコールなどの、アプリケーション層サービスを実現する役割も果たす。
【0157】
本発明では、制御プレーンは、複数のノードを階層的に配置する態様を採用し、データ・ノードの位置及びサービス・フローのIPアドレス情報に応じて、領域及びフローによる各制御ノードによって管理されるサービス・フローを分類する。更に、1つのサービス・フローが常に統合制御ノードによって管理される原理が満たされる。
【0158】
本発明の実施例では、制御プレーンはデータ・プレーンの領域を対称セクタに分け、制御ノードはそれぞれ、エッジ・データ・ノード、及び中継データ・ノード全てを1つの対称領域において管理することが可能である。領域により、制御ノードを管理する方法を
図11に示す。データ・プレーンは、複数のエッジ・データ・ノード(中継データ・ノードは図示していない)を含み、対称セクタにおけるいくつかの領域に分けられる。
図14では、領域A及び領域Bがマーキングされ、制御プレーンは、複数層の制御ノードによって形成され、制御ノードnode1及びnode2はそれぞれ、領域A及び領域Bにおけるエッジ・データ・ノード及び中継データ・ノードを管理し、制御ノードnode1及びnode2の親ノードnode11は領域A及び領域Bにおけるノード全てを管理し、同様に、制御ノードは階層的態様を採用し、よって、親ノードはサブノード全てによって管理される領域全てを管理することが可能であり、最上位層制御ノードはデータ・プレーンのデータ・ノード全てを管理することが可能である。
【0159】
サービス・フローが属する管理制御ノードをサービス・フローが判定する具体的な手順を
図15に示す。データ・ノードによって送出されたサービス・フローを初めて受信した場合、制御ノードは、ルーティング選択結果及びサービス・フローのデスティネーションIPアドレスに応じて、サービス・フローがネットワークに入り、ネットワークを出るデータ・プレーンのデータ・ノードが配置された領域を判定する。サービスがネットワークを出るためのデータ・ノードの位置、及びサービス・フローがネットワークに入るためのデータ・ノードの位置は、現在の制御ノードの管理領域範囲内にない場合、制御ノードは、処理するために上位層制御ノードにサービス・フローを送出し、よって、サービス・フローは、ネットワークに入り、ネットワークを出るノード位置が配置された領域に応じて特定の制御ノードによって管理されるよう最終的に判定される。
【0160】
サービス・フローのIPアドレスに応じて制御ノードを分ける方法により、1つのデータ・ノードが同時に複数の制御ノードによって管理されることが可能になり、データ・ノードは、サービス・フローのIPアドレス範囲に応じて、対応する制御ノードを選択し得る。
【0161】
本発明の実施例では、
図13に示すように、データ・ノードは、以下の態様でサービス・フローのIPアドレス範囲に応じて、対応する制御ノードを選択する。
【0162】
制御プレーンは複数の制御ノードによって形成され、制御ノードは、対称セクタ領域に応じて、被制御データ・ノードを分け、制御ノードnode1及びnode2は、同時に領域Aの範囲におけるデータ・ノードを制御し、データ・ノードは、ソースIPに応じて、別々のデータ・ノードにサービス・フローを配分し、1.1.1.1乃至1.1.1.127の範囲に及ぶIPを有するサービス・フローは、フロー・テーブルにおける(制御ノードnode1に対応する)制御ノード番号1に対応し、1.1.1.128乃至1.1.1.254の範囲に及ぶIPを有するサービス・フローは、フロー・テーブルにおける(制御ノードnode2に対応する)制御ノード番号2に対応する。別々のIPアドレス範囲により、データ・ノードに対応する制御ノード番号は、データ・ノードのフロー・テーブルにおいて予め設定し得る。上記実施例は本発明の実施例を理解するための例に過ぎず、本発明の実施例に対する特定の制限としてみなされるべきでないものとする。
図15に示すように、上位層制御ノードは更に、別々のIPアドレス範囲に応じて判定し得、1.1.1.1乃至1.1.1.127の範囲に及ぶIPを有するサービス・フローの場合、その上位層制御ノードはnode11であり、1.1.1.128乃至1.1.1.254の範囲に及ぶIPを有するサービス・フローは上位層制御ノードnode22に対応する。
【0163】
(3)サービス・プレーンは、
キャッシュ共有機能:制御ノードは全て、キャッシュ情報を共有し得、1つの制御ノードによって要求されたデータをキャッシュにおいて見つけることが可能である場合、キャッシュ・データが直接取得され、それにより、ネットワーク・アクセス性能が向上する、
リンク品質情報共有:制御ノードは全て、現在のリンク状態の情報を共有し得、制御ノードは、ルーティング配分中のインク状態に応じてルーティング選択を最適化し得る、
P2Pプロトコル型ピア・アドレス情報共有:P2P型プロトコルを要求する場合に、ローカル・エリア・ネットワークにおけるピア・アドレス・リストを供給するよう選択し、それにより、P2P型ダウンロード速度を向上させることができる、及び
ネットワーク・アクセラレーション・サービス・メッセージ圧縮及び伸張機能などの、複数の制御ノードに対するアプリケーション層サービスを処理する統合機能を提供し得る。
【0164】
種々のサービス処理が、コールするために制御ノードに対して、オープンなOpenAPIインタフェース態様で提供され、種々の機能をマルチスレッド、マルチプロセス、又はマルチデバイスの態様で配置することが可能であり、同じ機能は共有プールを介してデータを共有することが可能であり、機能共有プールは、グローバル変数、共有メモリ、又は統合リソース・アクセス装置の形式を有し得る。
【0165】
本発明の実施例では、サービス・プレーンの機能実行手順は、制御ノードがルール構成に応じてサービス・プレーンに特定の機能を登録し、サービス・プレーンが制御ノードの機能を複製し、同時に、制御ノードがサービス処理手順において機能実行点を配信し、制御ノードが特定のサービス処理動作とマッチする場合、サービス・プレーンのサービス処理機能をオープン・インタフェースを介してコールするために処理リンクにおける機能実行点を起動させることを含む。
【0166】
本発明の実施例では、サービス・プレーンの機能実行手順は以下を含む。(1)初期化登録段階であって、制御ノード上に現在あるユニバーサル・サービス・ルールの組に応じて制御ノードが起動され、例えば、キャッシュ共有が現在の制御ノード上に構成され、制御ノードはまず、サービス・プレーンへの機能登録を行い、サービス・プレーンは、制御ノードの機能登録要求を受信した後、対応するリソースを制御ノードに配信し、例えば、データ記憶空間を配信し、現在登録されているノードの情報に対する初期化動作を行い、同時に、制御ノードは、内部処理手順において機能実行点を配信し、例えば、ルールにヒットした後の動作実行段階において機能スケジュール点を配信する。(2)実行段階における機能アクティベーション。制御ノードが、サービス処理を実行する手順中に機能スケジューリング点においてサービス層の特定の機能をスケジューリングする必要がある場合、制御ノードはサービス・プレーンに対する機能実行要求を起動させ、例えば、制御ノードは、キャッシュ機能共有サービスにおいてサービス・プレーンに対してキャッシング情報の要求を起動させ、サービス・プレーンは、制御ノードの実行要求を受信した後、制御ノードによって要求されたキャッシュ・コンテントのインデクスに応じて共有キャッシュ・プールをサーチし、キャッシュ・データが見つかった場合にキャッシュ・データを制御ノードに戻し、キャッシュを見つけたとマーキングし、サービス・プレーンが共有キャッシュ・プールにおいてキャッシュ・データを見つけなかった場合、ナルを戻し、キャッシュ・データを見つけなかったとマーキングし、制御ノードは、サービス・プレーンの機能実行の戻された結果に応じてサービス処理を続ける。(3)登録を取り消すよう出る段階。制御ノードは、通常のクロージングによって出る場合に、サービス・プレーンへの登録を取り消す必要があり、制御ノードは、サービス・プレーンに対する登録取り消し要求メッセージを起動させ、サービス・プレーンは、制御ノードの要求メッセージに応じて、配信されたリソースを撤回し、例えば、配信された空間を撤回し、制御ノードの登録情報をクリアする動作を実行する。
【0167】
サービス・プレーンの上記機能実行手順は、本発明の実施例に対する特定の制限の代わりに、本発明の実施例の理解を助ける具体例に過ぎない。制御ノードによるサービス・プレーンへの登録に必要なしで、複数の処理機能及びサービス態様をサービス・プレーンに対して設定することが可能である。サービス・プレーン機能の実施例は更に、創作的な労力なしで当業者によって実現することが可能な別の態様を更に含み得る。
【0168】
(4)管理プレーンは、データ・プレーン・ネットワーク・トポロジ構造管理、ポリシー・ルール管理、及びサービス・プレーン・リソース管理の役割を果たす。ネットワーク・トポロジ管理は、各データ・ノードによってアクセスされるクライアントのIPアドレス・セクション範囲、ポート配信、及びデータ・ノード間の通信経路を含む。ポリシー・ルール管理は、ユーザによって構成されるサービス処理に関するルールを表し、ポリシー・ルールは、伝送層又はアプリケーション層ポリシー条件、及び対応するサービス処理動作によって形成される。管理プレーンは、SDNネットワーク・システムの初期設定中に上記管理態様を実現し得、更に、SDNネットワーク・システムが動作する際のユーザ要求、又はSDNネットワークのリアルタイム状況に応じて上記管理態様に対する設定又は修正を行い得る。
【0169】
本発明の実施例では、管理プレーンは、データ・プレーン・ネットワーク構造管理、データ・ノード及び制御ノード接続トポロジ管理、ポリシー・ルール管理、及びサービス・プレーン・リソース管理の役割を果たす。管理プレーンは、ネットワーク管理者に提供される構成管理インタフェースである。システムのブーティングの初期段階では、ネットワーク管理者は、管理プレーンを介して制御ノード全てにトポロジ情報を配信して、制御ノードの後続ルーティング配分のためのリンク接続情報を提供する。ポリシー・ルール情報は複数のルールによって形成され、ポリシー・ルールはそれぞれ、L1乃至4レイヤ、又はアプリケーション層条件及び対応するサービス動作によって形成される。例えば、ルール1:IF(condition)IP = 10.10.10.
* 及びurl=www.abcd.com/
* service flow THEN (action) redirect url=www.xxxx.com/portalは、リダイレクト動作を実行し、IP=10.10.10.
*は、送信層情報を形成する条件であり、url=はL7レイヤ情報を形成する条件である。管理プレーンは、ネットワーク管理者に対してルール構成インタフェースを提供し、ネットワーク管理者は、ポリシー・ルール・セットを構成し、管理プレーンを介して制御ノードにルールを配信し、制御ノードは、サービス・プレーンへの機能の登録を含め、配信されたルールの組に応じて初期化を完了する。
【0170】
図14に示すように、本発明の実施例では、データ・ノード及び制御ノードの機能は、管理プレーンのポリシー・ルールの集中管理により、かつ、ユーザの構成ポリシー・ルールに応じて配分され、具体的には、(1)要求メッセージがネットワークに入るデータ・ノード、(2)要求メッセージが入る制御ノード、(3)要求メッセージがネットワークを出るデータ・ノード、(4)応答メッセージがネットワークに入るデータ・ノード、(5)応答メッセージが入る制御ノード、及び(6)応答メッセージがネットワークを出るデータ・ノードの6つのサービス処理点が、サービス・フローがネットワークに入り、ネットワークを出るための位置及びサービス・フローの要求又は応答タイプに応じて分けられる。サービス処理点が配分され、対応する機能が、ポリシー・ルールの動作タイプ及び条件タイプに応じてノードに割り当てられ、配分方法を図面に示す。物理的な観点から、(1)及び(6)は同じ物理データ・ノードに対応し、(2)及び(5)は同じ物理制御ノードに対応し、(3)及び(4)は同じ物理データ・ノードに対応する。
【0171】
例1:ポリシー条件は、伝送層メッセージ情報に応じた条件であり、ポリシー動作は、破棄又は転送などの非サービス動作であるので、データ・ノ―ドに対応する伝送層条件を、OpenFlowフロー・テーブルのタプルとしての役目を担うよう位置(1)及び(4)において割り当てる必要があり、フロー・テーブルの動作はポリシー動作(転送又は破棄)である。
【0172】
例2:ポリシー条件は、要求メッセージの伝送層情報に応じた条件であり、ポリシー動作が特定のタイプのサービス処理であるので、データ・ノードに対応する伝送層条件は、OpenFlowフロー・テーブルのタプルとしての役目を担うよう位置(1)において割り当てる必要があり、フロー・テーブルの動作は、コントローラへの送出、すなわち、制御ノードへの送出であり、Control Nodeは位置(2)における制御ノードの番号であり、ポリシー・パラメータは対応するサービス動作のインデクスであり、同時に、制御ノード・ポリシー動作に対応するサービス処理機能は位置(2)において割り当てる必要がある。制御ノードは、実行する必要がある対応するサービス処理に、データ・ノードによって送出されたメッセージのポリシー・パラメータに応じて、直接インデクシングし得る。
【0173】
例3:ポリシー条件は、要求メッセージの伝送層及びアプリケーション層の情報に応じた条件であり、ポリシー動作が特定のタイプのサービス処理であるので、データ・ノードに対応する伝送層条件は、OpenFlowフロー・テーブルのタプルとしての役目を担うよう位置(4)において割り当てる必要があり、フロー・テーブルの動作は、コントローラへの送出、すなわち、制御ノードへの送出であり、Control Nodeは位置(5)における制御ノードの番号であり、ポリシー・パラメータは伝送層情報のポリシー・マッチングの中間結果であり、同時に、レイヤ7のプロトコル識別及び解析、ルール・マッチング、並びに、制御ノードの対応するサービス処理機能を位置(5)において割り当てる必要がある。制御ノードは、メッセージの伝送層条件マッチングの中間結果を、データ・ノードによって送出されたメッセージのポリシー・パラメータに応じて取得し、アプリケーション層処理によって得られたメッセージ情報と組み合わせたポリシー・マッチングを完了し、ポリシー・マッチングの結果に応じて、対応するサービス処理を実行する。
【0174】
図16を参照すれば、以下に、本発明の実施例によるデータ処理のSDNシステムのデータ・フローを説明する。
【0175】
図16に示すように、本発明の実施例によるデータ処理のSDNネットワーク・システムでは、
ソース・データ・ノードがサービス・フロー・データ・パケットを受信した後、ソース・データ・ノードはまず、データ・パケット上の伝送層のフロー・テーブル・マッチングを行い、ビットされたルールに応じて対応する動作を実行する。ヒットされたマッチング・ルールが制御ノードへの送出である場合、1を実行する。
【0176】
ソース・データ・ノード1はソース制御ノード1にデータ情報を送出し、データ情報は、ソース・データ・ノードによって受信されたサービス・フローの第1のデータ・パケットを含む。ソース制御ノード1は、サービス・フローの第1のデータ・パケットのデスティネーションIPアドレスに応じてデスティネーション制御ノード2を判定する。
【0177】
デスティネーション制御ノード2は、ソース・データ・ノード1によって送出されたデータ情報に応じてOpenFlowプロトコルにより、ソース・データ・ノードのフロー・テーブル・ルールを修正し、制御ノード番号及びサービス・パラメータ・フィールドを付加する。制御ノード番号は、現在のサービス・フローを制御ノードに送出する必要がある場合に送出するための対応する制御ノードの一意のマークである。サービス・パラメータ・フィールドを、デスティネーション制御ノード2によってソース・データ・ノード1に配信して、ソース・データ・ノードにおいてフロー・テーブル・エントリに対応するポリシー・ルール・インデクスをマーキングする。
【0178】
ソース・データ・ノード1は、フロー・テーブル・ルールに応じてデータ・パケットに対してルール・マッチングを行い、フロー・テーブル・ルールRと最終的にマッチされ、転送、局所処理、又は制御ノードへの送出をフロー・テーブル・ルールRにおける動作パラメータに応じて行い、動作が制御ノードへの送出の場合、送出するための制御ノードが、フロー・テーブル・ルールRにおける、送出するための制御ノードの番号に応じて選択され、フロー・テーブル・ルールRにおけるサービス・パラメータ・フィールドは、データ・パケットの拡張されたフィールドに入れられ、例えば、サービス・パラメータはTCP−optionsフィールドを介して制御ノードに搬送され、サービス・パラメータ・フィールドは、デスティネーション制御ノード2により、データ・ノード1のフロー・テーブルに書き込まれ、制御ノードは、データ・パケットに収容されたサービス・パラメータにより、サービス・ルール・マッチング手順をアクセラレートし得る。
【0179】
初期制御ノード1は、最終データ・ノード2が処理するために、最終データ・ノード2にサービス・フローの受信データ・パケットを送出し、サ―ビス・パラメータ・フィールドが、デスティネーション制御ノード2に搬送される対象のデータ・パケットとともに、拡張されたフィールドのTCP−optionsフィールドに付加される。
【0180】
サービス・プレーンは、デスティネーション制御ノード2に対するアプリケーション層サービスを処理する統合機能を、デスティネーション制御ノード2によってコールするために、オープンなOpenAPIインタフェース態様において提供することが可能であり、デスティネーション制御ノード2は、ソース制御ノード1から受信されたデータ・パケットに応じてサービス・プレーンに対して要求情報を提供して、データ・パケットを処理するために必要なサービス機能のコールを要求する。
【0181】
サービス・プレーンは、デスティネーション制御ノード2に、デスティネーション制御ノード2によってコールされた機能を送出し、デスティネーション制御ノード2は、サービス機能を使用することにより、サービス・フローのデータ・パケットに対する処理を行って、処理されたサービス・フロー・データ・パケットを得る。
【0182】
デスティネーション制御ノード2は、処理されたサービス・フロー・データ・パケットをソース・データ・ノード1に送出し、同時に、デスティネーション制御ノード2は、現在のネットワーク状態に応じて、かつ、特定の帯域及びルーティング配分ポリシーとの組み合わせでサービス・フローのルートを割り当て、OpenFlowプロトコルを介して対応する中継データ・ノードにルールを配信して、中継データ・ノードのフロー・テーブルにおけるフローに対応するルールを付加する。
【0183】
ソース・データ・ノード1は、1つ又は複数の中継データ・ノード2を介し、デスティネーション・デ―タ・ノード3に、デスティネーション制御ノード2によって処理されたサービス・フロー・データ・パケットを送出する。
【0184】
上記実施例は、本発明の実施例の理解を助けるための具体例に過ぎず、本発明の実施例に対する制限とみなすべきでなく、上記データ番号1乃至8は、データ・フロー方向の伝送の工程のシーケンスに対する制限であるとみなすべきでなく、工程の一部は、交換された順序を有し得、又は、創作的な労力なしで当業者によって実現することが可能な別の態様で実行し得る。
【0185】
図17乃至
図20を参照するに、以下で、本発明の実施例の特定のいくつかの実現シナリオを説明する。
【0186】
図17に示すように、クライアント・クラスタ1における特定のサービス・フローのデータ・メッセージは、データ・ノードAからSDNネットワークに入り、データ・メッセージは、複数の中継データ・ノード(図示せず)を介して送信され、データ・ノードBを介してサーバ・クラスタ1に達する。
【0187】
データ・ノードA及びデータ・ノードBは何れも、制御ノードCnode1によって管理され、制御ノードCnode1は、OpenFlowプロトコルにより、データ・ノードA及びデータ・ノードBのフロー・テーブルを維持する。(1)クライアントによって送出されたサービス・フロー・データ・パケットはまず、データ・ノードAを通過する。(2)サービス・フローの第1のデータ・パケット(第1のパケット)がデータ・ノードAに達すると、データ・ノードAは、第1のデータ・パケットに対してフロー・テーブル・マッチングを行うことにより、デフォルト・フロー・テーブル・エントリに対応する動作(すなわち、コントローラへの送出)、デフォルト制御ノード番号Cnode1、及びナルであるデフォルト・サービス・パラメータを得る。(3)データ・ノードAは、制御ノード番号に応じてデフォルト制御ノードCnode1にデータ・パケットを送出し、制御ノードCnode1は、データ・パケットに対してポリシー・ルール・マッチングを行う。ネットワーク管理者が、ポリシー・ルール1:IF ip=11.11.11.
* && protocol=HTTP THEN IPS check、ルール2:IF ip=11.11.11.
* && url=www.xxx.com THEN blockを構成し、データ・パケットのポリシー・マッチングの結果が、ip=11.11.11.
*という番号10の条件を満たすと仮定すれば、制御ノードCnode1は更なるフロー・テーブル・エントリIをデータ・ノードAに配信し、フロー・テーブル・エントリIの内容は、タプルにおいてip=11.11.11.
*を有するデータ・フローに対応するサービス・パラメータ10であり、データ・パケットがネットワークを出るためのデータ・ノードがBであるということがデータ・パケットのデスティネーション・アドレスに応じて判定される。データ・ノードAもデータ・ノードBも制御ノードCnode1によって管理されるので、制御ノードCnode1はデスティネーション制御ノードとして判定され、データ・ノード・フロー・テーブル・エントリIに制御ノードAによって配信される制御ノード番号は制御ノードのノード番号である。(4)制御ノードCnode1は、OpenFlowプロトコルにより、データ・ノードB、及びデータ・フロー・ルート上の種々の中継データ・ノードのフロー・テーブルを更新する。(5)制御ノードCnode1はデータ・パケットをデータ・ノードに転送するので、各データ・ノードは、データ・ノードのフロー・テーブル・ル―ルに応じてデータ・パケットに対してマッチング及び転送を行い、最終的に、第1のデータ・パケットはデータ・ノードBを介してネットワークを出てサーバに達し、(6)データ・ノードは、フロー・テーブル・ルールに応じてサービス・フロー上の後続データ・パケットを処理する。
【0188】
サービス・プレーンの共有機能プールは、HTTP(ハイパーテキスト転送プロトコル、Hypertext Transport Protocol)を狙いとしたデータ・パケット識別及び解析機能と、URL(Uniform Resource Locator、ユニフォーム・リソース・ロケータ)マッチング機能とを含む。
【0189】
制御ノードCnode1は、予め設定されたマッチング・ルールに基づいてサービス・プレーンにサービス処理機能を登録し、特定のサービス処理動作をマッチングする必要がある場合、制御ノードCnode1は、オープン・インタフェースを介してサービス・プレーンのサービス処理機能を起動し得る。プロトコル識別及び解析又はURLマッチング処理をサービス・フローに対して行う必要がある場合、制御ノードCnode1はサービス・プレーンのサービス処理機能をコールしてサービス・フローを処理し、処理済データ・パケットをデータ・ノードAに送出する。
【0190】
上記例では、(7)制御ノードCnode1が、サービス・フローの後続メッセージに対してポリシー・マッチングを行う場合に、データ・ノードによって送出されるデータ・パケットに収容されるサービス・パラメータが10である場合、すなわち、ip=11.11.11.
*が満たされる場合、条件url=www.xxx.com及び条件protocol=HTTPが満たされるか否かを検査するために、データ・パケットに対するマッチングを更に行うことが必要であり、制御ノードCnode1はまず、サービス・プレーンに対するプロトコル識別及び解析機能を起動させ、(8)サービス・プレーンは、制御ノードの機能要求を受信すると、パケットに対する識別及び解析処理を行い、結果を制御ノードに戻す。(9)識別及び解析結果がprotocol=HTTPであると制御ノードが判定した場合、URLマッチング機能が更に起動され、サービス・プレーンは、データ・パケットに対するURLマッチングを行い続け、結果を制御ノードに戻す。(10) 制御ノードは、サービス・プレーンによって戻された結果に応じてポリシー・マッチングを完了し、応答ポリシー動作を実行し、例えば、ルール2の実行動作ブロックblockがマッチングされた場合、制御ノードはデータ・ノードのフロー・テーブル・エントリを更新し、blockとしてデータ・ノードAにおいてサービス・フローに対応する動作をセットする。上記実施例は、本発明の実施例に対する特定の制限でなく、本発明の実施例の理解を助けるための例に過ぎない。
【0191】
図18に示すように、クライアント・クラスタ1における特定のサービス・フローのデータ・メッセージがデータ・ノードAからSDNネットワークに入り、データ・メッセージは複数の中継データ・ノード(図示せず)を介して送信され、データ・ノードCを介してサービス・クラスタ2に達する。データ・ノードAもデータ・ノードCもノードCnode2によって管理され、データ・ノードA及びデータ・ノードCはOpenFlowプロトコルを介してノードCnode2と通信接続される。
【0192】
上記例のように、データ・ノードAは(ソースIPが11.11.11.11であると仮定すれば)サービス・フローの第1のパケットに対してフロー・テーブル・マッチングを行い、デフォルト・フロー・テーブル・エントリにヒットし、第1のパケットを制御ノードCnode2に送出し、制御ノードCnode2は、第1のデータ・パケットに対してポリシー・ルール・マッチングを行って、データ・パケットがネットワークを出るためのデータ・ノードCを判定し、制御ノードCnode2をデスティネーション制御ノードとして判定し、データ・プレーン・サービス・フローが通過する必要があるデータ・ノードのフロー・テーブルを更新する。ネットワーク管理者によって構成されたポリシー・ルールが IF ip=11.11.11.
* THEN blockであると仮定すれば、メッセージが流れるSDNネットワークのデータ・ノード及び制御ノードの経路に応じて、制御ノードは、(1)要求メッセージがネットワークに入るデータ・ノードA、(2)要求メッセージが入る制御ノードCnode2、(3)要求メッセージがネットワークを出るデータ・ノードC、(4)応答メッセージがネットワークに入るデータ・ノードC、(5)応答メッセージが入る制御ノードCnode2、及び(6)応答メッセージがネットワークを出るデータ・ノードAを判定する。制御ノードは、デ―タ・ノードAに、blockである動作、ip=11.11.11.
*であるタプルを有するフロー・テーブル・エントリIをルールに応じて付加する。後続サービス・フロー・データ・パケットの処理では、データ・パケットに対してデータ・ノードAによって行われたフロー・テーブル・マッチングがフロー・テーブル・エントリIにヒットすると、データ・ノードAはデータ・パケットを直接破棄し、初回にデータ・パケットの入口においてヒットしたポリシー・ルールとマッチングして、後続ノードのデータ送信及び処理を避け、それにより、後続ノード装置のネットワーク帯域リソースを削減し、後続ノードに対する処理リソースの不必要な消費を避ける。
【0193】
サービス・フローのデータ・メッセージの形式は、クライアント−クライアント、サーバ−クライアント、又はサーバ−サーバであってもよく、データ・ノードA及びデータ・ノードCは別々のノードによって管理し得、制御ノードは上記態様に応じて判定され、データ・ノードA、データ・ノードC、及びノードの間の通信接続の形式はOpenFlowプロトコルのみに制限されない一方、創作的な労力なしで当業者によって採用することが可能な通信接続態様を更に含み、データ・ノードA及びデータ・ノードCは、中継データ・ノードを使用することなく、直接通信接続され得る。データ・ノードAのサービス・フローが複数のデスティネーション・アドレスを有する場合、破棄動作は、dropであるデスティネーション・アドレスのフロー・テーブル・ルールを有するネットワーク・ルーティング経路の後続中継ノード、又は、データ・ノードAに対して実行されるに過ぎない。上記実施例は、本発明の実施例に対する特定の制限でなく、本発明の実施例の技術的解決策の理解を助けるための例に過ぎない。本発明の実施例の技術的解決策は更に、創作的な労力なしで当業者によって実現することが可能な別の態様を更に含み得る。
【0194】
図19に示すように、クライアント・クラスタ1における特定のサービス・フローのデータ・メッセージが、データ・ノードAからSDNネットワークに入り、データ・メッセージは複数の中継データ・ノード(図示せず)を介して送信され、データ・ノードBを介してサーバに達する。データ・ノードAはノードCnode1によって管理され、データ・ノードAはOpenFlowプロトコルを介してノードCnode1と通信接続し、データ・ノードBはノードCnode3によって管理され、データ・ノードBはOpenFlowプロトコルを介してノードCnode3と通信接続する。制御ノードCnodeAは、ノードCnode1及びノードCnode3に応じて判定され、制御ノードを判定する手順は上記で説明しており、再び特許請求の範囲及び明細書では説明しないものとする。
【0195】
アプリケーション層伝送アクセラレーションをネットワーク・サービス・フローに対して行う必要がある場合、データ・ノードAには、サービス・フロー・メッセージ情報を圧縮する機能が与えられなくてよい。データ・ノードAは、ルール・マッチング後、サービス・フロー・メッセージ情報を制御ノードCnodeAにアップロードし、制御ノードCnodeAは、サービス・フローの機能要求に応じて、サービス・プレーンからのメッセージ内容に基づいて対応する圧縮機能及び伸張機能をサービス・フローの機能要求に応じて取得し、サービス・プレーンからの上記機能の制御ノードCnodeAによる取得は、オープン・インタフェースを介してコールすることによって実現し得る。サービス・フロー・データ・メッセージに対する圧縮は制御ノードCnodeAに対して行われ、圧縮させたサービス・フロー・データ・メッセージはデータ・ノードAに送信される。データ・ノードAは、圧縮されたサービス・フロー・データ・メッセージをデータ・ノードBに送信し、データ・ノードBは次いで、伸張するために制御ノードCnodeAにサービス・フロー・データ・メッセージをアップロードして、伸張サービス・フロー・データ・メッセージを得る。よって、上記クライアント・クラスタ1のサービス・フローは、データ・ノードAからデータ・ノードBへのアプリケーション層伝送のアクセラレーションを実現することが可能である。上記実施例は、本発明の技術的解決策に対する限定的な説明でなく、本発明の実施例の理解を助けるための例に過ぎない。
【0196】
図20に示すように、SDNネットワーク構造では、サービス・プレーンは共有機能プールを含み、同じ機能は、共有機能プールを介してデータを共有し得、共有機能プールの形式は、グローバル変数、共有メモリ、又は同じリソース・アクセス装置であり得る。
【0197】
クライアント・クラスタ1におけるクライアント及びクライアント・クラスタ2におけるクライアントは同じストリーミング・メディア・コンテンツを要求し、クライアント・クラスタ1におけるクライアントのサービス・フローは、データ・ノードAを介してSDNネットワーク・システムにアクセスする。データ・ノードAはノードCnode1によって管理され、データ・ノードDはノードCnode2によって管理される。
【0198】
まず、データ・ノードAのデスティネーション制御Cnode1及びデータ・ノードDのデスティネーション制御ノードCnode2を判定する関連手順は上述しており、ここでは再び説明しないものとする。制御ノードCnode1及びCnode2は何れも、Cacheキャッシュ機能をサービス・プレーンに登録し、同時に、サービス・プレーンは、制御ノードCnode1及びCnode2に対してCacheキャッシュ・データの読み出し及び書き込みインタフェースを割り当てる。(1)データ・ノードAのデータ・フローは、制御ノードCnode1を通過する際にストリーミング・メディア・データをキャッシュし、(2)データ・ノードDはデータ・ノードAと同じストリーミング・メディア・データ・コンテンツにアクセスし、アクセス要求データ・パケットが、データ・ノードDを介して制御ノードCnode2に達すると、制御ノードCnode2はサービス・プレーンにCacheキャッシュ機能を起動させ、キャッシュ・データ読み出しインタフェースを介してキャッシュ・データをサーチする。制御ノードCnode1は、データ・ノードAによって要求されたデータ・コンテンツをキャッシュしたからである。制御ノードCnode2は、キャッシュされたストリーミング・メディア・コンテンツを見つけ、データ・ノードDに戻される対象の応答データ・パケットにデータをカプセル化する。サーバからデータを獲得するデータ・ノードDの手順が再び保存され、それにより、クライアントの応答速度が増加し、同時にサーバの処理圧力が削減される。上記は本発明の実施例の理解を助けるための例に過ぎず、本発明の実施例の技術的解決策に対する制限としてみなされるべきでないものとする。制御ノードは、更に、データ・ノードA及びデータ・ノードDの通信接続を確立することにより、又は、創作的な労力なしで当業者によって実現することが可能な別の態様で、対応するストリーミング・メディア・コンテンツをデータ・ノードDが得ることを可能にし得る。
【0199】
上記装置の詳細な作業工程についての簡便な説明の目的を実現するために、上記方法の実施例における対応する工程を参照し得る、ここでは再び詳細を説明しないものとするということを当業者は明確に分かり得る。
【0200】
本出願において提供されるいくつかの実施例では、開示されたシステム、装置、及び方法は他の態様で実現し得る。例えば、説明された装置の実施例は例示的なものに過ぎない。例えば、装置の区切りは、論理的機能の区切りに過ぎず、実際の実現形態では他の区切りであり得る。例えば、複数の装置又は構成部分を別のシステムにおいて合成若しくは一体化し得、又は、特定の構成を無視するか、又は行わない場合がある。更に、表示されたか、又は記載された相互結合若しくは直接結合又は通信接続は特定のインタフェースを介して実現し得る。装置又はユニット間の間接結合又は通信接続は、電子、機械、又は他の形式で実現し得る。
【0201】
更に、本発明の実施例における機能単位は、1つの処理装置に一体化してもよく、上記単位それぞれは物理的に単独で存在し得るか、又は、2つ以上の単位を1つの単位に一体化し得る。
【0202】
上記機能が、ソフトウェア機能単位の形態で実現され、別個の製品として販売又は使用される場合、機能はコンピュータ読み取り可能な記憶媒体に記憶し得る。前述の理解に基づけば、従来技術に対する貢献を実質的に、又は部分的に有する本発明の技術的解決策、若しくは上記技術的解決策の一部はソフトウェア・プロダクトの形態で実現し得る。コンピュータ・ソフトウェア・プロダクトは記憶媒体に記憶され、本発明の実施例において説明された方法の工程の全部又は一部を行う旨をコンピュータ装置(パソコン、サーバ、又はネットワーク装置であり得る)に指示するためのいくつかの指示を含む。上記記憶媒体は、USBフラッシュ・ドライブ、着脱可能なハード・ディスク、リードオンリ・メモリ(Read−Only Memory、ROM)、ランダム・アクセス・メモリ(Random Access Memory、RAM)、磁気ディスク、又は光ディスクなどの、プログラム・コードを記憶することが可能な何れかの媒体を含む。
【0203】
上記説明は、本発明の例示的な実施例に過ぎない一方、本発明の保護範囲を制限することを意図するものでない。本発明において開示された技術的範囲内で当業者によって容易に考え出される変形又は置換は何れも、本発明の保護範囲内に収まるものとする。したがって、本発明の保護範囲は請求項の保護範囲に従うものとする。