(57)【特許請求の範囲】
【請求項１】
分散型ソフトウェア定義ネットワーク（ＳＤＮ）パケットコアシステムであって、
前記ＳＤＮパケットコアシステムと通信するクライアントデバイスを認証するためのサブスクライバモジュールを含む少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスと、
相互接続された複数のローカルＳＤＮインフラストラクチャインスタンスとを備え、各ローカルＳＤＮインフラストラクチャインスタンスは複数のコンピュータデバイスを含み、前記複数のコンピュータデバイスは、地理的に近接して配置され、前記複数のコンピュータデバイスは、少なくとも２つの無線アクセス技術（ＲＡＴ）に対応付けられた複数の無線アクセスポイントに通信可能に結合され、各ローカルＳＤＮインフラストラクチャインスタンスの前記コンピュータデバイスは、それぞれの前記無線アクセスポイントに対応付けられた通信フローのコントロールメッセージおよびデータパケットを処理するためにソフトウェアモジュールを実行するように構成され、前記ソフトウェアモジュールは、
前記少なくとも２つの無線アクセス技術（ＲＡＴ）に対応付けられた複数のＲＡＴ固有コントロールプレーンモジュールを含み、各ＲＡＴ固有コントロールプレーンモジュールは、各ＲＡＴに対応付けられた通信フローのためのシグナリングおよびコントロール動作を実行するように構成され、前記ソフトウェアモジュールは、
通信フローに対応付けられたデータパケットを処理するように構成された複数のＲＡＴ独立データプレーンモジュールを含み、前記ローカルＳＤＮインフラストラクチャインスタンスは前記通信フローのために働く、分散型ＳＤＮパケットコアシステム。
【請求項２】
前記ソフトウェアモジュールはさらに、前記ＲＡＴ固有コントロールプレーンモジュールと前記ＲＡＴ独立データプレーンモジュールとの間の対話を仲介するための少なくとも１つのデータプレーンコントローラを含み、前記少なくとも１つのデータプレーンコントローラは、通信フロールールを使用するＲＡＴ独立インターフェイスを用いて前記ＲＡＴ固有コントロールプレーンモジュールと対話するように構成される、請求項１に記載の分散型ＳＤＮパケットコアシステム。
【請求項３】
前記少なくとも１つのデータプレーンコントローラは、
通信フロールールに対応付けられたアップデートを受信し、
前記アップデートを、前記通信フロールールを実行するように構成された１つ以上のＲＡＴ独立データプレーンモジュールに転送するように、
構成される、請求項２に記載の分散型ＳＤＮパケットコアシステム。
【請求項４】
各通信フロールールは、
少なくとも１つのデータパケットヘッダフィールド値の指示と、
前記少なくとも１つのデータパケットヘッダフィールド値を含むデータパケットに与えるための１つ以上の命令とを含む、請求項２または３に記載の分散型ＳＤＮパケットコアシステム。
【請求項５】
前記少なくとも１つのデータプレーンコントローラは、
前記コントロールプレーンモジュールのヘルスステータスを定期的に検査し、
前記コントロールプレーンモジュールのヘルスステータスに基づいて判断された故障状態を管理するように、
構成される、請求項２〜４のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項６】
前記少なくとも１つのデータプレーンコントローラは、
前記ＲＡＴ独立データプレーンモジュールのうちの１つ以上から１つ以上のデータパケット処理フィードバックレポートを受信し、
少なくとも１つのコントロールプレーンモジュールが前記１つ以上のデータパケット処理フィードバックレポートを受信すると判断し、
前記１つ以上のデータパケット処理フィードバックレポートを前記判断した少なくとも１つのコントロールプレーンモジュールに転送するように、
構成される、請求項２〜５のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項７】
前記ＲＡＴ固有コントロールプレーンモジュールは、ＲＡＴ固有フロントエンドモジュールを含み、各ＲＡＴ固有フロントエンドモジュールは、各ＲＡＴに対応付けられた１つ以上の無線アクセスポイントに通信可能に結合され、前記１つ以上の無線アクセスポイントに対するシグナリングを処理するように構成される、請求項１に記載の分散型ＳＤＮパケットコアシステム。
【請求項８】
各フロントエンドモジュールは、それぞれのトランスポートトンネルを通して前記１つ以上の無線アクセスポイントに通信可能に結合される、請求項１に記載の分散型ＳＤＮパケットコアシステム。
【請求項９】
それぞれのトランスポートトンネルは、Ethernet-over-IPトンネル、汎用ユーザデータグラムプロトコル（ＵＤＰ）カプセル化（ＧＵＥ）トンネル、汎用ルートカプセル化（ＧＲＥ）トンネル、802.11 over GUEトンネル、ＧＰＲＳトンネリングプロトコル（ＧＴＰ）トンネル、およびインターネットプロトコル（ＩＰ）セキュリティ（ＩＰＳｅｃ）トンネルのうちの少なくとも１つを含む、請求項１に記載の分散型ＳＤＮパケットコアシステム。
【請求項１０】
ＲＡＴ固有コントロールプレーンモジュールは、大都市エリアネットワークを通して前記無線アクセスポイントに通信可能に結合される、請求項１〜９のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１１】
各ＲＡＴ独立データプレーンモジュールは、データパケット処理要素の集合体を含み、データパケット処理要素の少なくとも１つの集合体は、少なくとも２つのＲＡＴに対応付けられたＲＡＴ固有ネットワーク機能を実行するように構成された複数の要素を含む、請求項１に記載の分散型ＳＤＮパケットコアシステム。
【請求項１２】
前記少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスは、前記分散型ＳＤＮパケットコアシステムに対応付けられたクライアントデバイスのためのポリシーを管理するように構成されたポリシーモジュールを含む、請求項１〜１１のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１３】
前記ローカルＳＤＮインフラストラクチャインスタンスは、少なくとも１つのトランジットネットワークを通して通信可能に互いに結合される、請求項１〜１２のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１４】
前記ローカルＳＤＮインフラストラクチャインスタンスは、１つ以上のトランジットネットワークを通して１つ以上のデータセンターに通信可能に結合される、請求項１〜１２のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１５】
少なくとも１つのローカルＳＤＮインフラストラクチャインスタンスは、コンテンツプロバイダに対応付けられたデータをキャッシュするためのデータキャッシュを含む、請求項１〜１４のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１６】
前記少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスは、第３のＲＡＴを前記分散型ＳＤＮパケットコアシステムに統合するために新たなポリシーモジュールを組込むように構成される、請求項１２に記載の分散型ＳＤＮパケットコアシステム。
【請求項１７】
前記少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスは、前記複数のローカルＳＤＮインフラストラクチャインスタンス間で負荷を分散させるためにグローバルロードバランシングモジュールを含む、請求項１〜１６のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１８】
前記ＲＡＴ独立データプレーンモジュールは、異なるＲＡＴに共通するパケット処理機能を果たすように構成される、請求項１〜１７のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【請求項１９】
前記ＲＡＴ独立データプレーンモジュールは各々、ネットワークアドレス変換、ファイアウォール機能、またはアドレス委託のうちの１つ以上を実行するように構成される、請求項１８に記載の分散型ＳＤＮパケットコアシステム。
【請求項２０】
前記複数のＲＡＴ固有コントロールプレーンモジュールは、ＲＡＴプロトコルから独立したプロトコルバッファを用いて互いに通信するように構成されている、請求項１〜１９のいずれか１項に記載の分散型ＳＤＮパケットコアシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１５年９月２３日に出願され「DISTRIBUTED SOFTWARE DEFINED WIRELESS PACKET CORE SYSTEM」と題された米国仮出願第６２／２２２，４０６号、２０１５年１０月１６日に出願され「SYSTEMS AND METHODS FOR MOBILITY MANAGEMENT IN A DISTRIBUTED SOFTWARE DEFINED NETWORK PACKET CORE SYSTEM」と題された米国仮出願第６２／２４２，６６８号、および２０１５年１０月１６日に出願され「SYSTEMS AND METHODS FOR LOAD BALANCING IN A DISTRIBUTED SOFTWARE DEFINED NETWORK PACKET CORE SYSTEM」と題された米国仮出願第６２／２４２，６７７号に基づく優先権を主張し、これらすべての内容を本明細書に引用により援用する。
【０００２】
開示の分野
本開示は概して通信ネットワークの分野に関する。
【背景技術】
【０００３】
背景
インターネットにアクセスするためまたは他のユーザと通信するためにモバイルネットワークに切換える（またはモバイルネットワークを使用することが多い）ユーザが増加している。多くのモバイルデバイスは、多様な無線アクセス技術に対応する通信機能を備えている。このため、ユーザには、たとえば、このような無線アクセスネットワークの可用性、コストまたは性能に基づいて、異なる無線アクセスネットワーク間で切換える自由がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本開示の少なくとも一局面に従うと、分散型ソフトウェア定義ネットワーク（software defined network：ＳＤＮ）パケットコアシステムは、少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスと、相互接続された複数のローカルＳＤＮインフラストラクチャインスタンスとを含む。少なくとも１つのクラウドベース集中型ＳＤＮインフラストラクチャインスタンスは、ＳＤＮパケットコアシステムと通信するクライアントデバイスを認証するためのサブスクライバモジュールを含み得る。各ローカルＳＤＮインフラストラクチャインスタンスは複数のコンピュータデバイスを含み得る。複数のコンピュータデバイスは、地理的に近接して配置され、少なくとも２つの無線アクセス技術（radio access technology：ＲＡＴ）に対応付けられた複数の無線アクセスポイントに通信可能に結合されている。各ローカルＳＤＮインフラストラクチャインスタンスのコンピュータデバイスは、それぞれの無線アクセスポイントに対応付けられた通信フローのコントロールメッセージおよびデータパケットを処理するためにソフトウェアモジュールを実行するように構成し得る。ソフトウェアモジュールは、少なくとも２つの無線アクセス技術（ＲＡＴ）に対応付けられた複数のＲＡＴ固有コントロールプレーンモジュールと、複数のＲＡＴ独立データプレーンモジュールとを含み得る。各ＲＡＴ固有コントロールプレーンモジュールは、それぞれのＲＡＴに対応付けられた通信フローのためのコントロールシグナルおよび動作を実行するように構成し得る。ＲＡＴ独立データプレーンモジュールは、通信フローに対応付けられたデータパケットを処理するように構成し得る。ローカルＳＤＮインフラストラクチャインスタンスは上記通信フローのために働く。
【図面の簡単な説明】
【０００５】
【図１】分散型ソフトウェア定義ネットワーク（ＳＤＮ）パケットコアシステムを用いる通信環境の概要を説明するブロック図を示す。
【図２Ａ】２つのＳＤＮパケットコアアーキテクチャのうちの一方に対応するデータ経路を説明するブロック図を示す。
【図２Ｂ】２つのＳＤＮパケットコアアーキテクチャのうちの他方に対応するデータ経路を説明するブロック図を示す。
【図３】ローカルＳＤＮインフラストラクチャインスタンスのソフトウェアアーキテクチャを説明するブロック図を示す。
【図４】データプレーンモジュールの実現例を説明するブロック図である。
【発明を実施するための形態】
【０００６】
詳細な説明
モバイルネットワークの運営者によるネットワークインフラストラクチャへの継続的な高額の投資を要求するモバイルユーザの数が増しておりかつモバイルデータトラフィック量も増している。モバイルユーザは、多様な無線アクセスネットワークを通じてコンテンツプロバイダのデータにアクセスすることが多くなっている。モバイルデバイスには、第３世代（３Ｇ）モバイル電気通信技術、ロング・ターム・エボリューション（long-term evolution：ＬＴＥ）モバイル電気通信技術、ＷｉＦｉ（登録商標）、プロプライエタリ高高度プラットフォーム、またはその他の無線アクセス技術のような、さまざまな無線アクセス技術（ＲＡＴ）に対応するさまざまな無線アクセスネットワークへのアクセス機能を搭載することができる。
【０００７】
インターネットにアクセスするとき、モバイルユーザは、各ユーザコンテキストに応じて、さまざまな接続モードを使用することができる。たとえば、モバイルユーザは、自宅ではＷｉＦｉを通じて、戸外ではセルラーアクセスネットワークを通じて、または小売店の空間、空港、もしくはその他の公共の場所ではゲストＷｉＦｉサービスを通じて、インターネットにアクセスすることができる。通常、ユーザは、異なるアクセスネットワーク、さまざまな課金体系、およびさまざまなセキュリティ保証またはポリシーに対し、さまざまな自身の認証方法を有する。また、異なるアクセスネットワーク間でローミングすると、接続性が妨害される。これらの要素は、結果としてユーザ体験の断片化をもたらす。モバイルユーザにとっては、ＲＡＴ間のモビリティがシームレスである異種の無線アクセスを提供する統一されたサービスが有り難いであろう。
【０００８】
ユーザ体験を改善する方法の１つは、異種の無線アクセスネットワークを１つのサービスドメインにまとめることができるシステムアーキテクチャを提供することである。このようなシステムアーキテクチャを設計するときは、（たとえば新たなＲＡＴまたはネットワーク容量の増加に関する）システムスケーラビリティ、システムの複雑度、インフラストラクチャコスト、およびＲＡＴ間モビリティを含む、さまざまな要素を考慮しなければならない。また、さまざまな無線アクセスネットワーク間のインターワーキングを可能にすることは、多大な技術的課題を伴う。たとえば、３ＧＰＰによって定義された進化パケットシステム（Evolved Packet System：ＥＰＳ）は、セルラーネットワーク運営者に対して厳密に作成されており、進化パケットコア（Evolved Packet Core：ＥＰＣ）インフラストラクチャに対して非常に密に連結されている各サブスクライバ管理システム（たとえばＳＩＭカード）を厳正に使用する。３ＧＰＰネットワーク（３Ｇ、ＬＴＥまたはＬＥＴ−Ａ等）と非３ＧＰＰネットワーク（ＷｉＦｉ等）との間のインターワーキングを提供するためには、非３ＧＰＰサブスクライバ管理ツールを３ＧＰＰサブスクライバ管理システムに統合する（たとえばＷｉＦｉデバイスのＳＩＭカード識別等）またはその逆が必要であろう。このような統合プロセスの実施は、新たなＲＡＴを追加する度にパケットコアシステムを実質的に修正することを含むので、新たなＲＡＴの追加に関するシステムのスケーラビリティが妨げられる。さらに、３ＧＰＰ  ＥＰＣを各レガシープロトコルに基づく強固な構造で実現しようとすると、（３ＧＰＰ無線アクセスネットワークと非３ＧＰＰ無線アクセスネットワークとの間等の）インターワーキングソリューションは、難しく複雑で非スケーラブルなものになる。
【０００９】
本開示において、分散型ソフトウェア定義ネットワーク（ＳＤＮ）パケットコアシステムは、異種の無線アクセスネットワークの結合をもたらす大規模な単一サービスドメインとして動作するように構成される。分散型ＳＤＮパケットコアシステムは、エンドユーザに対し、エンドユーザが接続するアクセスネットワークとは無関係にシームレスな接続性を提供することができ、かつ、別々のアクセスネットワーク間のトランスペアレントなローミングを可能にする。分散型ＳＤＮパケットコアシステムは、分散型仮想進化パケットコア（virtual evolved packet core：ｖＥＰＣ）とも呼ばれる。
【００１０】
図１は、分散型ソフトウェア定義ネットワーク（ＳＤＮ）パケットコアシステムを用いる通信環境１０の概要を説明するブロック図を示す。通信環境１０は、その近辺のモバイルデバイス２０のために働く複数の無線アクセスポイント（access point：ＡＰ）３０と、複数のローカルＳＤＮインフラストラクチャインスタンス１１０と、中央ＳＤＮインフラストラクチャインスタンス１２０と、１つ以上の大都市エリアネットワーク１２と、第１トランジットネットワーク１５と、１つ以上の第２トランジットネットワーク１８と、１つ以上のデータセンター９０とを含む。各ローカルＳＤＮインフラストラクチャインスタンス１１０は、複数のコンピュータデバイス１１５を含む。
【００１１】
モバイルデバイス２０は、限定される訳ではないが、携帯電話、スマートフォン、タブレット、ラップトップ、スマートウォッチ、通信機能付ウェアラブルアイテム、オーディオ再生装置（ＭＰ３プレーヤ等）、動画再生装置、ゲーム機、グローバルポジショニングシステム（ＧＰＳ）装置、自動コンピュータ、または通信機能付のその他クライアントデバイスを含み得る。モバイルデバイス２０は、各アクセスポイント３０で無線リンクを介してモバイルアクセスネットワークに接続できる。いくつかの実現例において、モバイルデバイス２０は、分散型ＳＤＮパケットコアシステムを介してコンテンツプロバイダネットワークに対応付けられたコンテンツを要求しこのコンテンツにアクセスするように構成することができる。たとえば、モバイルデバイス２０上で実行しているアプリケーション（ブラウザ、メディアプレーヤ、ゲームアプリケーション／プラットフォーム、電子メールアプリケーション、企業アプリケーション、ソーシャルメディアアプリケーション等）は、モバイルデバイス２０の画面上に表示するために、データセンター９０から入手できるコンテンツを要求することができる。
【００１２】
無線アクセスポイント（ＡＰ）３０は、無線リンクを介してモバイルデバイス２０と通信するように構成することができる。ＡＰ３０は、別々の無線アクセスネットワーク（３Ｇ、ＬＴＥ／ＬＴＥ−Ａ、ＷｉＦｉもしくはその他のＲＡＴ等の少なくとも２つの異なる無線アクセス技術（ＲＡＴ）に対応する、ＷｉＦｉホットスポットネットワーク、ユニバーサルモバイル電気通信システム（universal mobile telecommunications system：ＵＭＴＳ）ネットワーク、ロング・ターム・エボリューション（ＬＴＥ）ネットワーク、またはそれ以外のモバイル通信ネットワーク等）の一部であってもよい。たとえば、ＡＰ３０は、ＮｏｄｅＢ、進化ＮｏｄｅＢ（ｅＮｏｄｅＢ）、ＷｉＦｉホットスポット、またはその他の種類の無線アクセスポイントを含み得る。ＡＰ３０は、１つ以上の州、１つの地方または複数の地方を画定する大きな地理的領域にわたって分散させることができ、各ＡＰ３０は、それぞれの地理的近隣にあるモバイルデバイス２０のために働くように構成することができる。各ＡＰ３０は、近隣のモバイルデバイス２０と、エア・インターフェイスを通して直接通信するように構成することができ、かつ、大都市ＩＳＰネットワーク１２を通して各ローカルＳＤＮインフラストラクチャインスタンス１１０に接続することができる。モバイルデバイス２０が１つの地理的位置から別の地理的位置に移動すると、各無線接続を、あるＡＰ３０から別のＡＰに、異なるＡＰ３０に対するモバイルデバイス２０の近接度に基づいて、移す（またはハンドオーバする）ことができる。
【００１３】
複数のローカルＳＤＮインフラストラクチャインスタンス１１０は、無線アクセスネットワークまたはそのＡＰ３０の近傍でデプロイされこの無線アクセスネットワークまたはそのＡＰ３０のために働く、一組の分散型コンピューティングまたはネットワーク処理リソースプールを表わす。たとえば、各ＳＤＮインフラストラクチャインスタンス１１０は、各大都市エリアに対応付けることができ、かつ、この大都市エリア内のモバイルデバイス２０のために働くＡＰ３０に接続することができる。各ローカルＳＤＮインフラストラクチャインスタンス１１０は、コンピュータサーバまたはサーバのラック等のそれぞれ複数のコンピュータデバイス１１５を含む。コンピュータサーバまたはサーバのラック等の複数のコンピュータデバイス１１５は、ＳＤＮ要素として実現されるネットワーク動作または機能を実行することにより、そのローカルＳＤＮインフラストラクチャインスタンス１１０に結合された（またはローカルＳＤＮインフラストラクチャインスタンス１１０がそのために働く）ＡＰ３０に対応付けられたデータトラフィックを提供するように構成されている。いくつかの実現例において、各ローカルＳＤＮインフラストラクチャインスタンス１１０に対応付けられたコンピュータデバイス１１５は、レイテンシセンシティブなネットワーク機能を実行するように構成することができる。たとえば、コントロールプレーンシグナリング、データプレーンアンカー、および所与のローカルＳＤＮインフラストラクチャインスタンス１１０内のローカルモビリティは、各コンピュータデバイス１１５によって実行可能な（または各コンピュータデバイス１１５上で実行される）ＳＤＮ要素として実現することができる。
【００１４】
いくつかの実現例において、各ローカルＳＤＮインフラストラクチャインスタンス１１０は、コンピュータデバイス１１５間またはその上で実行しているＳＤＮ要素間で負荷を分散させるように構成されたロードバランシングエンティティを含み得る。いくつかの実現例において、各ローカルＳＤＮインフラストラクチャインスタンス１１０は、１つ以上のコンテンツプロバイダに対応付けられたインターネットデータをローカルにキャッシュするように構成することができる。たとえば、各ローカルＳＤＮインフラストラクチャインスタンス１００は、１つ以上のキャッシングサーバを含み得る。ローカルＳＤＮインフラストラクチャインスタンス１１０は、要求されたインターネットデータがローカルでキャッシュされている場合は常に、ローカルキャッシュから、モバイルデバイス２０からの要求に応じてインターネットデータを与えるように構成することができる。インターネットデータは、ウェブページ、オンラインサービスに対応付けられたデータ（電子メール、ソーシャルメディア等）、ゲームに対応付けられたデータ、ビデオストリーミングデータ（Ｎｅｔｆｌｉｘ（登録商標）またはＹｏｕＴｕｂｅ（登録商標））等を含み得る。
【００１５】
中央ＳＤＮインフラストラクチャインスタンス１２０は、１つ以上のコンピュータデバイスを含み、レイテンシセンシティブではない（または少なくともレイテンシセンシティブ性が低い）ネットワーク機能、または複数のローカルＳＤＮインフラストラクチャインスタンス１１０を必要とするネットワーク機能を実行するように構成されたＳＤＮ要素が上記コンピュータデバイス上で実行されている。中央ＳＤＮインストラクチャインスタンス１２０内で実行されるＳＤＮ要素は、たとえば、サブスクリプションポリシーモジュール、ローカルＳＤＮインフラストラクチャインスタンス１１０間のグローバルモビリティ（またはローミング）、またはその組合わせを含み得る。サブスクリプションポリシーモジュールは、認可、認証およびアカウンティング（authorization, authentication and accounting：ＡＡＡ）サーバ、サブスクリプションプロファイルリポジトリ（ＳＰＲ）、ポリシーおよびチャージコントロールモジュール、またはサブスクリプションポリシーを管理するためのその他のモジュールを含み得る。モバイルデバイスを分散型ＳＤＮパケットコアシステムに接続する間、ローカルＳＤＮインフラストラクチャインスタンス１１０は、中央ＳＤＮインフラストラクチャインスタンス１２０に対応付けられたサブスクリプションおよびポリシーモジュールに、モバイルデバイス（またはそのユーザ）の認証と認可を要求することができる。中央ＳＤＮインフラストラクチャインスタンスはまた、複数のローカルＳＤＮインフラストラクチャインスタンス１１０間で負荷を分散させるためのグローバルロードバランシングモジュールを含み得る。中央ＳＤＮインフラストラクチャインスタンス１２０はクラウド（１つ以上のホストデータセンタ等）に配置することができる。
【００１６】
各ローカルＳＤＮインフラストラクチャインスタンス１１０は、その近傍のＡＰ３０に、各大都市エリアネットワーク１２を通して接続することができる。大都市エリアネットワーク１２は、ローカルＳＤＮインフラストラクチャインスタンス１１０ごとに異なる。いくつかの実現例において、ローカルＳＤＮインフラストラクチャインスタンスは、１つ以上の大都市エリアネットワーク１２を通して各ＡＰ３０に結合することができる。所与のローカルＳＤＮインフラストラクチャインスタンス１１０に対し、各大都市エリアネットワーク１２は、そのローカルＳＤＮインフラストラクチャインスタンス１１０に対応付けられた大都市エリアのために働く１つ以上の通信ネットワークであってもよい。いくつかの実現例において、大都市エリアネットワーク１２のうちの１つ以上はそれぞれ第３者ネットワークプロバイダによって所有または管理されていてもよく、分散型ＳＤＮパケットコアネットワークの一部でなくてもよい。いくつかの実現例において、各ＡＰ３０は、地理的に最も近いローカルＳＤＮインフラストラクチャインスタンス１００に結合することができる（かつ当該インスタンスが各ＡＰのために働くことができる）。いくつかの実現例において、ＡＰ３０とローカルＳＤＮインフラストラクチャインスタンス１１０内のエンティティ（コンピュータデバイス１１５またはその上で実行するＳＤＮ要素等）との間の結合は、大都市エリアネットワーク１２上の各トランスポートトンネル３５を通して実現することができる。たとえば、Ethernet-over-IP（ＥｏＩＰ）トンネル等のトランスポートトンネル３５を、ローカルＳＤＮインフラストラクチャインスタンス１１０へのＩＰ接続性を提供する大都市エリアネットワーク１２で使用することができる。いくつかの実現例において、トランスポートトンネル３５は、Ethernet-over-IPトンネル、汎用ユーザデータグラムプロトコル（user datagram protocol：ＵＤＰ）カプセル化（ＧＵＥ）トンネル、汎用ルートカプセル化（ＧＲＥ）トンネル、802.11 over GUEトンネル、ＧＰＲＳトンネリングプロトコル（ＧＴＰ）トンネル、インターネットプロトコル（ＩＰ）セキュリティ（ＩＰＳｅｃ）トンネル、その他の種類のトンネル、またはその組合わせを含み得る。
【００１７】
いくつかの実現例において、複数のローカルＳＤＮインフラストラクチャインスタンス１１０は、第１トランジットネットワーク１５を通して相互に接続することができる。第１トランジットネットワーク１５は、たとえば、ローカルＳＤＮインフラストラクチャインスタンス１１０間のローミングを処理するために、別々のローカルＳＤＮインフラストラクチャインスタンス１１０間で通信できるようにする。いくつかの実現例において、第１トランジットネットワーク１５は、ローカルＳＤＮインフラストラクチャインスタンス１１０を中央インフラストラクチャインスタンス１２０に結合するように構成することができる。第１トランジットネットワーク１５は、光ファイバデータネットワーク、インターネットサービスプロバイダ（Internet service provider：ＩＳＰ）ネットワーク、またはその他の通信ネットワークを含み得る。第１トランジットネットワーク１５および複数のローカルＳＤＮインフラストラクチャインスタンス１１０は、１つのエンティティまたは別々のエンティティによって管理（または所有）することができる。いくつかの実現例において、第１トランジットネットワーク１５は、ローカルＳＤＮインフラストラクチャインスタンス１１０から別々に所有または管理されることができる。すなわち、第１トランジットネットワーク１５は、分散型ＳＤＮパケットコアシステムの一部でなくてもよく、ローカルＳＤＮインフラストラクチャインスタンス１１０を相互に通信可能に結合するために使用される外部ネットワークであってもよい。
【００１８】
通信環境１０は、複数のデータセンター９０を含み得る。各データセンター９０は、コンテンツプロバイダのデータ、ウェブページ、またはその組合わせを格納しそれに対するアクセスを提供するためにコンピューティングデバイスを含み得る。たとえば、データセンター９０は、ローカルＳＤＮインフラストラクチャインスタンスからデータ要求を受け、それに応じて、要求されたデータを提供するように構成することができる。データセンター９０は、ウェブページおよびそれぞれのコンテンツ、ＹｏｕＴｕｂｅまたはＮｅｔｆｌｉｘ等のビデオストリーミングアプリケーション、ソーシャルメディアアプリケーションおよびコンテンツ、ゲームアプリケーション、企業アプリケーション、またはその他のクラウドアプリケーションもしくはサービスをホストするように構成することができる。いくつかの実現例において、中央ＳＤＮインフラストラクチャインスタンス１２０は、データセンター９１内に実現することができる。
【００１９】
各ローカルＳＤＮインフラストラクチャインスタンス１１０は、１つ以上の第２トランジットネットワーク１８を通してデータセンター９０に通信可能に結合することができる。第２トランジットネットワーク１８は、第１トランジットネットワーク１５を通してローカルＳＤＮインフラストラクチャインスタンス１１０に結合することができる。いくつかの実現例において、第２トランジットネットワーク１８は、ローカルＳＤＮインフラストラクチャインスタンス１１０に直接結合してもよい。いくつかの実現例において、第２トランジットネットワーク１８は、中央ＳＤＮインフラストラクチャインスタンス１２０をローカルインフラストラクチャインスタンス１１０に結合するように構成することができる。いくつかの実現例において、第２トランジットネットワーク１８は任意であってもよい。そのような実現例において、データセンター９０は、第１トランジットネットワーク１５に直接結合してもよい。いくつかの実現例において、第１トランジットネットワーク１５および第２トランジットネットワーク１８は、単一の通信ネットワークの一部であってもよい。
【００２０】
いくつかの実現例において、分散型ＳＤＮパケットコアシステムは、ローカルＳＤＮインフラストラクチャインスタンス１１０と中央ＳＤＮインフラストラクチャインスタンス１２０とを組合わせたものとして見ることができる。いくつかの実現例において、分散型ＳＤＮパケットコアシステムはまた、第１トランジットネットワーク１５を含み得る。いくつかの実現例において、分散型ＳＤＮパケットコアシステムはまた、第２トランジットネットワーク１８を含み得る。（図１を参照しながら説明した）分散型ＳＤＮパケットコアシステムのアーキテクチャにより、データトラフィックを、たとえばローカルＳＤＮインフラストラクチャインスタンス１１０において、ローカルにルーティングし外に出すことができる。ローカルＳＤＮインフラストラクチャインスタンス１１０をＡＰ３０に近接させて配置しそこでデータトラフィックを処理することにより、高速データパケット処理が可能であり、したがって、パフォーマンスを改善するとともにネットワークリソース消費を低減することができる。
【００２１】
図２Ａおよび図２Ｂは、２つのＳＤＮパケットコアアーキテクチャに対応付けられたデータ経路を説明する図を示す。図２Ａの図はクラウドベースのＳＤＮパケットコアアーキテクチャ２００ａを示すのに対し、図２Ｂの図は分散型パケットコアアーキテクチャ２００ｂを示す。
【００２２】
図２Ａを参照して、クラウドベースのＳＤＮパケットコアシステムは、クラウドＳＤＮインフラストラクチャインスタンス２６０と、第１トランジットネットワーク２１５と第２トランジットネットワーク２１８との間に配置されたローカル通信接合ポイント２４０とを含み得る。通信接合ポイント２４０は、第１トランジットネットワーク２１５を通してクラウドＳＤＮインフラストラクチャインスタンス２６０に通信可能に結合することができる。通信接合ポイント２４０は、その近傍の１つ以上の無線アクセスポイント（ＡＰ）２０３に、大都市エリアネットワーク２１２を通して結合することができる。ＡＰ２０３は、その近隣のモバイルデバイス２０２のために働くように構成することができる。通信接合ポイント２４０は、第２トランジットネットワーク２１８を通してデータセンター２０９に通信可能に結合することができる。
【００２３】
パケットコア機能または動作は、クラウドＳＤＮインフラストラクチャインスタンス２６０により、クラウド内（たとえばデータセンター２０８内）で実行される。たとえば、モバイルデバイス２０２がインターネットコンテンツにアクセスしようとするとき、モバイルデバイス２０２は各データ要求を生成してクラウドＳＤＮインフラストラクチャインスタンス２６０に送信する。データ要求経路２９１ａを通して示されるように、データ要求は、ＡＰ２０３により、大都市エリアネットワーク２１２を通して通信接合ポイント２４０に転送することができる。すると、通信接合ポイント２４０は、データ要求を、第１トランジットネットワーク２１５を通してクラウドＳＤＮインフラストラクチャインスタンス２６０に転送することができる。クラウドＳＤＮインフラストラクチャインスタンス２６０は、このデータ要求を処理し、第１トランジットネットワーク２１５、通信接合ポイント２４０、および第２トランジットネットワーク２１８を通して、データセンター２０９に送信することができる。データセンター２０９に対応付けられているプロセッサは、このデータ要求を受けると、要求データ経路２９２ａによって示されるように、要求されたデータを、第２トランジットネットワーク２１８、通信接合ポイント２４０、および第１トランジットネットワーク２１５を通してクラウドＳＤＮインフラストラクチャインスタンス２６０に送信することができる。そうすると、クラウドＳＤＮインフラストラクチャインスタンス２６０は、要求されたデータを、第１トランジットネットワーク２１５、通信接合ポイント２４０、大都市エリアネットワーク２１２、およびＡＰ２０３を通して、モバイルデバイス２０２に送信することができる。いくつかの例において、ＡＰ２０３は、クラウドＳＤＮインフラストラクチャインスタンス２６０への直接トンネルを構築するように構成されてもよい。このような例において、データ経路２９１ａおよび２９２ａは依然としてホストデータセンター２０８を通る必要がある。
【００２４】
図２Ｂは、図１に関して説明したものと同様の分散型ＳＤＮパケットコアシステムの分散型ＳＤＮパケットコアアーキテクチャ２００ｂに対応付けられたデータ経路を説明する図を示す。クラウドベースのＳＤＮパケットコアアーキテクチャ２００ａと比較すると、分散型ＳＤＮパケットコアアーキテクチャ２００ｂは、ＡＰ２０３に近接して配置された当該ＡＰ２０３に対応付けられたデータトラフィックを（クラウド内でデータトラフィックを処理するのではなく）ローカルで処理するローカルＳＤＮインフラストラクチャインスタンス２１０を用いる。すなわち、ほとんどのコントロールプレーンおよびデータプレーンの動作は、ローカルＳＤＮインフラストラクチャインスタンス２１０によりローカルで実行される。このため、モバイルデバイス２０２により生成されたデータ要求は、データ要求経路２９１ｂによって示されるように、ＡＰ２０３および大都市エリアネットワーク２１２を通ってローカルＳＤＮインフラストラクチャインスタンス２１０に到達する。ローカルＳＤＮインフラストラクチャインスタンス２１０は、データ要求をトランジットネットワーク２１８を通してデータセンター２０９に転送することができる。このデータ要求に応じて、データセンター２０９に対応付けられたプロセッサは、要求されたデータをトランジットネットワーク２１８を通してローカルＳＤＮインフラストラクチャインスタンス２１０に送信することができ、ローカルＳＤＮインフラストラクチャインスタンス２１０は、要求されたデータを、要求データ経路２９２ｂによって示されるように、大都市エリアネットワーク２１２およびＡＰ２０３を通してモバイルデバイス２０２に転送することができる。
【００２５】
データ要求経路２９１ａと２９１ｂとを比較しデータ経路２９２ａと２９２ｂとを比較することにより、クラウドベースＳＤＮパケットコアアーキテクチャ（アーキテクチャ２００ａ等）を用いた場合、長いデータ経路（要求データ経路２９２ａ等）にわたって、データソース（データセンター９０等）とデータシンク（モバイルデバイス２０２等）との間でトラフィックのヘアピン化（hairpinning）が生じると、結論付けることができる。特に、（データセンター２０８および２０９等の）データセンターは、母集団センターに対し、パワーおよび空間の費用対効果が高い遠隔の地理的場所に配置される傾向がある。このため、ホスティングデータセンター２０８内に仮想パケットコア（クラウドＳＤＮインフラストラクチャインスタンス２６０等）を実現することにより、大都市エリアに配置された通信接合ポイント２４０とホスティングデータセンターとの間の長い通信リンクを含むデータ経路が生じる。このようなヘアピンは、長距離バックボーン容量に多大な費用がかかることを表わし、結果としてレイテンシが増す。これはユーザ体験に悪影響を及ぼす。これに対し、分散型ＳＤＮパケットコアアーキテクチャ２００ｂ（図１に関しても説明した）により、データトラフィックをローカル処理することができ、ホスティングデータセンターとの通信が大幅に減少した、ローカルなデータトラフィック処理が可能である。結果として、分散型ＳＤＮパケットコアアーキテクチャ２００ｂは、不必要なレイテンシを回避することができ、かつ、クラウドベースＳＤＮパケットコアアーキテクチャ２００ａとのバックボーン容量の使用を低減することができる。
【００２６】
ネットワーク機能をＳＤＮ要素として実現すると、たとえば、１つ以上のローカルＳＤＮインフラストラクチャインスタンス１１０内により多くのコンピュータデバイス１１５を追加して、増大するサービス需要に対処することにより、分散型ＳＤＮパケットコアシステムをスケーリングすることができる。パケットコアネットワークのソフトウェアベースの実現も、ネットワーク機能仮想化（Network Function Virtualization：ＮＦＶ）を通して実現することができ、モビリティ管理エンティティ（mobility management entity：ＭＭＥ）、サービングゲートウェイ（serving gateway：ＳＧＷ）またはＬＴＥ用のパケットデータネットワーク（packet data network：ＰＤＮ）ゲートウェイ（ＰＧＷ）等の）所与のＲＡＴに特有のモノリシック機能は、汎用コンピュータインフラストラクチャ内の各仮想化モノリシックエンティティに実現される。また、ＮＦＶの実現は、たとえば、ＲＡＴ固有プロトコルおよび通信トンネルの仮想化により、仮想化モノリシックエンティティ間の通信を可能にする。仮想化プロトコルおよび通信トンネルは、スケーラビリティに関して制限要素を示す。たとえば、仮想化プロトコルまたは通信トンネルを拡張して新たなサービスを生み出すこと（ＷｉＦｉを３ＧＰＰ  ＲＡＴをサポートするネットワークに追加する等）は、仮想化プロトコルまたは通信トンネルのいずれかを実現するすべての仮想化モノリシックエンティティに対する多大な修正を含み得る。また、新たなデータプレーン構成の実現は、既存の仮想化モノリシックエンティティによって制限される可能性がある。
【００２７】
本開示において説明する分散型ＳＤＮパケットコアシステムにおいて、コントロールプレーンおよびデータプレーンは、各ローカルＳＤＮインフラストラクチャインスタンス１１０において分離することができる。各ローカルＳＤＮインフラストラクチャインスタンス１１０は、別々のコントロールプレーンおよびデータプレーンソフトウェアモジュールを含み得る。（ネットワークアドレス変換（network address translation：ＮＡＴ）、ファイアウォール、アドレス委託等の）異なるＲＡＴに共通のパケット処理機能または動作は、１つ以上のコンピュータデバイス１１０上で実行されるプロトコル独立バックエンドデータプレーンモジュールに抽出して実現することができる。また、コントロールプレーンモジュールは、プロトコル抽出を提供しＲＡＴ固有コントロールプレーンシグナリングおよび外部システムとのデータプレーンの相互運用を扱うことができる。コントロールおよびデータプレーンの抽出と分離により、分散型ＳＤＮパケットコアシステムのフレキシビリティおよびスケーラビリティが得られる。たとえば、新たなＲＡＴを、各コントロールプレーンモジュールおよび／または各データプレーンモジュールをローカルＳＤＮインフラストラクチャインスタンス１１０に追加し各サブスクリプションおよびポリシーモジュールを中央ＳＤＮインフラストラクチャインスタンス１２０に組込むことにより、既存の分散型ＳＤＮパケットコアシステムに、素早くシームレスに統合することができる。また、所与のローカルＳＤＮインフラストラクチャインスタンス１１０の容量の拡張は、たとえば、１つ以上のＲＡＴに対応付けられたデータプレーンモジュールまたはコントロールプレーンモジュールを実現するコンピュータデバイスをさらに追加することによって実現することができる。いくつかの実現例において、本開示に記載される分散型ＳＤＮパケットコアシステムのスケーリング（新たなＲＡＴを統合するかまたはシステム容量を増加する）は、モバイルデバイス２０上で実行されるソフトウェアの修正を伴わない。
【００２８】
図３は、ローカルＳＤＮインフラストラクチャインスタンス３００のソフトウェアアーキテクチャを説明するブロック図を示す。ローカルＳＤＮインフラストラクチャインスタンス１１０は、複数のＲＡＴ固有コントロールプレーンモジュール（またはアプリケーション）３１０ａおよび３１０ｂ（個別にまたは集合的にコントロールプレーンモジュール３１０とも呼ぶ）と、１つ以上のデータプレーンコントローラ３２０と、複数のデータプレーンインスタンス３３０（ユーザスペースパケットスイッチング（user-space packet switching：ＵＳＰＳ）インスタンス３３０とも呼ぶ）とを含み得る。各ＵＳＰＳインスタンスは、コンフィギュレーションモジュール３３４（コンフィギュレータ３３４とも呼ぶ）と、１つ以上のＲＡＴ独立データプレーンバックエンドモジュール３３８とを含み得る。
【００２９】
図１および図３を参照して、各ＳＤＮインフラストラクチャインスタンス１１０は、少なくとも２つのＲＡＴに対応付けられた、コントロールプレーンモジュール３１０ａおよび３１０ｂ（個別にまたはまとめてコントロールプレーンモジュール３１０とも呼ぶ）等の、複数のＲＡＴ固有コントロールプレーンモジュール（またはコントロールプレーンアプリケーション）を含み得る。ＲＡＴごとに、ＲＡＴ固有コントロールプレーンモジュール３１０の各セットを、そのＲＡＴと対応付けられたシグナリングおよびコントロールプレーン動作を処理するように構成することができる。たとえば、コントロールプレーンモジュール３１０ａを第１ＲＡＴに対応付け、コントロールプレーンモジュール３１０ｂを第１ＲＡＴと異なる第２ＲＡＴに対応付けることができる。ローカルＳＤＮインフラストラクチャインスタンス１１０は、所与のコントロールプレーンモジュール３１０の複数のインスタンスを含み得る。
【００３０】
所与のＲＡＴ用のコントロールプレーンモジュール３１０は、ＡＰ３０、中央ＳＤＮインフラストラクチャインスタンス１２０、その他のローカルＳＤＮインフラストラクチャインスタンスまたは、データセンター９０もしくはその他の外部ネットワーク等の外部システムに対するシグナリングおよびコントロールプレーンの対話を処理するように構成することができる。ＲＡＴごとに、コントロールプレーンモジュール３１０の各セットは、このＲＡＴに対応付けられているＡＰ３０に通信可能に結合された１つ以上のフロントエンドモジュールを含み得る。たとえば、ローカルＳＤＮインフラストラクチャは、ｅＮｏｄｅＢと通信するように構成された１つ以上のＬＴＥフロントエンド（ＬＦＥ）モジュールと、ＷｉＦｉアクセスポイントと通信するように構成された１つ以上のＷｉＦｉフロントエンド（ＷＦＥ）モジュールとを含み得る。フロントエンドモジュールは、ＡＰ３０に対するEthernet-over-IP（ＥｏＩＰ）トンネル等の通信トンネルを確立するように構成することができる。いくつかの実現例において、コントロールプレーンモジュール３１０は、ＡＰ３０と各フロントエンドモジュールとの間の通信トンネルを暗号化するためのゲートウェイモジュールを含み得る。
【００３１】
ＲＡＴごとに、１つ以上のコントロールプレーンモジュール３１０を、一組のフロールールを用いて対応する無線アクセスネットワークのための標準ベースのステートマシン（ＬＴＥのためのモビリティ管理エンティティ等）を実現するように構成することができる。たとえば、フロントエンドモジュールは、ＡＰ３０との対話およびフロールールに基づいて転送経路を作製するように構成することができる。このため、フロントエンドモジュールは、ＳＤＮルータとして機能するように構成することができる。フロールールは、データプレーンバックエンドモジュール３３８によって実行されてデータパケットをドロップする、転送する、カプセル化する、脱カプセル化する、またはその他のデータパケットプロセスを実行するための命令を含み得る。いくつかの実現例において、コントロールプレーンモジュール３１０は、フロールールを、バックエンドデータプレーンモジュール３３０による実行のために、データプレーンコントローラ３２０に与えるように構成することができる。
【００３２】
コントロールプレーンモジュール３１０は、互いに通信するように構成することができる。いくつかの実現例において、対話するコントロールプレーンモジュール３１０（ＬＴＥ  ＭＭＥとＰＧＷ等）間のメッセージのシグナリングは、ＲＡＴプロトコルから独立したプロトコルバッファを用いて実現することができる。ＲＡＴ固有プロトコル（または通信トンネル）を用いて、仮想化されたモノリシックエンティティ（所与のＲＡＴに固有のモノリシックエンティティに対応）間の通信を実現するＮＦＶベースの仮想化と比較して、ＲＡＴプロトコルから独立したプロトコルバッファを用いることで、パケットコアシステムを、フレキシブルにかつスケーラブルにＳＤＮで実現することができる。
【００３３】
各ローカルＳＤＮインフラストラクチャインスタンス３１０は、１つ以上のデータプレーンコントローラ３２０を含み得る。データプレーンコントローラ３２０は、コントロールプレーンモジュール３１０とＵＳＰＳインスタンス３３０との間の対話を仲介するように構成することができる。データプレーンコントローラ３２０は、コントロールプレーンモジュール３１０からのパケット処理要求を受けこの要求をＵＳＰＳインスタンス３３０に転送するように構成することができる。データプレーンコントローラ３２０は、コントロールプレーンモジュール３１０とＲＡＴ独立インターフェイスを通して通信するように構成することができる。いくつかの実現例において、ＲＡＴ独立インターフェイスは、ルールに基づくＲＡＴ独立構成言語を用いて実現することができる。ルールは、マッチングフィルタと１つ以上の命令とを含み得る。マッチングフィルタは、マッチングされたときに１つ以上の命令が各データパケットに適用される１つ以上のパケットヘッダフィールドを示してもよい。いくつかの実現例において、各ルールはそれぞれの識別子に対応付けることができる。たとえば、各ルールは、それぞれの識別子を有するテーブル等（それぞれのマッチングフィルタおよび１つ以上の命令を含む）のデータ構造内に格納することができる。そのような実現例において、コントロールプレーンモジュール３１０およびデータプレーンモジュール３２０は、それぞれの識別子を送信することによってルールを相互にシグナリングすることができる。
【００３４】
データプレーンコントローラ３２０は、コントロールプレーンモジュール３１０からルールアップデートを受けるように構成することができる。ルールアップデートを受けると、データプレーンコントローラ３２０は、どのＵＳＰＳインターフェイス３３０にルールアップデートを適用するかを決定してそのアップデートを決定したＵＳＰＳインスタンス３３０に転送することができる。いくつかの実現例において、データプレーンコントローラ３２０は、対応付けられたＵＳＰＳインスタンスルールをマッピングする（テーブル等の）データ構造を維持することができる。このような実現例において、データプレーンコントローラ３２０は、受信したルールアップデートを適用するＵＳＰＳインスタンスを、維持されたデータ構造に基づいて決定することができる。また、データプレーンコントローラ３２０は、ＵＳＰＳインスタンス３３０からのカウンターレポートを受信し、カウンターレポートを受けるコントロールプレーンモジュール３１０を決定し、カウンターレポートを決定したコントロールプレーンモジュール３１０に転送するように構成することができる。レポートされたカウンタは、入力データ量、出力データ量、クラシファイア（classifier）マッチ、廃棄されたパケット、カプセル化または脱カプセル化イベント等のフローアクション施行イベント、またはその組合わせに、対応付けることができる。データプレーンコントローラは、イベントをＵＳＰＳインスタンス３３０から受け、受けたイベントをコントロールプレーンモジュール３１０に転送するように構成することができる。また、データプレーンコントローラ３２０は、コントロールプレーンモジュールおよびＵＳＰＳインスタンス３２０に対するハートビートを維持するように構成することができる。すなわち、データプレーンコントローラ３２０は、活性検査を実行することにより、コントロールプレーンモジュール３１０のヘルスをモニタリングしそれぞれのヘルスステータスを用いることで故障条件を扱うように構成することができる。たとえば、データプレーンコントローラ３２０は、不活性コントロールプレーンモジュール３１０に対応付けられたフロールールを排出するように構成することができる。
【００３５】
各ローカルＳＤＮインフラストラクチャインスタンスは、複数のデータプレーンインスタンス３３０を含み得る。いくつかの実現例において、各データプレーンインスタンス３３０は、それぞれのコンピュータデバイス１１５で実行することができる。いくつかの実現例において、各データプレーンインスタンス３３０は、コンフィギュレーションモジュール３３４と複数のバックエンドデータプレーンモジュール（パケット処理エンジンとも呼ぶ）３３８とを含み得る。コンフィギュレーションモジュール３３４は、データプレーンコントローラ３２０と対話するように構成することができる。特に、コンフィギュレーションモジュール３３４は、データプレーンコントローラ３２０から受けたパケット処理要求を、データプレーンモジュール３３８固有のコンフィギュレーションに変換することができる。たとえば、コンフィギュレーションモジュール３３４は、データプレーンコントローラから受けたルール（またはその表示）を、バックエンドデータプレーンモジュール３３８によって実行されることになるパケット修正プロセス（またはその表示）に変換することができる。いくつかの実現例において、パケット修正プロセスは、バックエンドデータプレーンモジュール３３８’に固有の修正テーブルを通して示すことができる。このような実現例において、コンフィギュレーションモジュール３３４は、データプレーンコントローラ３２０から受けたルールテーブル識別子を、バックエンドデータプレーンモジュール３３８固有の修正テーブル（またはその表示）にマッピングすることができる。各修正テーブルは、データパケットに対して実行されるべき１つ以上のプロセスを示すことができる。各修正テーブルは、データパケットに対して実行されるべき１つ以上のプロセスを示すことができる。
【００３６】
各ＵＳＰＳインスタンス３３０は、複数のバックエンドデータプレーンモジュール３３８を含み得る。いくつかの実現例において、各バックエンドデータプレーンモジュール３３８は、パケット処理要素の集合体を含み得る。このパケット処理要素の集合体は、順番に（または「パイプライン」状に）配置しデータパケットを順次処理するように構成することができる。いくつかの実現例において、それぞれのバックエンドデータプレーンモジュール内のパケット処理要素は、プッシュプルインターフェイスを通して互いに対話するように構成することができる。すなわち、パケット処理要素は、１つ以上の他のパケット処理要素からデータパケットをプル（pull）しおよび／またはデータパケットを１つ以上の他のパケット処理要素にプッシュ（push）するように構成することができる。
【００３７】
図４は、バックエンドデータプレーンモジュール４００の実現を説明するブロック図を示す。データプレーンモジュール４００は、入口要素４１０と、１つ以上のプロトコル固有処理要素４２０と、パケットスケジューリング要素４３０と、出口要素４５０とを含み得る。入口要素４１０、プロトコル固有処理要素４２０、パケットスケジューリング要素４３０、および出口要素４４０は、バックエンドデータプレーンモジュール４００により維持される（またはアクセス可能な）データ構造に基づいてデータパケットを処理するように構成されたソフトウェア要素として実現することができる。
【００３８】
入口要素４１０は、たとえばローカルロードバランサまたはコントロールプレーンモジュール３１０からデータパケットを受信するように構成することができる。入口要素４１０は、受信したデータパケットの次の宛先を、データパケットの宛先ＩＰアドレスおよび／またはデータパケットに対応付けられたその他の情報に基づいて、判断することができる。たとえば、入口要素４１０は、第３層（Ｌ３）、第４層（Ｌ４）、第７層（Ｌ７）またはこれらの組合わせに対応付けられたデータパケット情報を用いて、受信したデータパケットの次の宛先を判断することができる。入口要素４１０は、入口ｄｅｍｕｘテーブル等の各入口データ構造にアクセスすることができる。入口要素４１０は、入口データ構造を用いて、受信したデータパケットの次の宛先を判断するように構成することができる。入口データ構造は、データパケットフィールド値（ＩＰ宛先アドレスまたはその他のヘッダフィールド値）を宛先エンティティにマッピングするように構成することができる。入口データ構造に基づいて、入口要素４１０は、受信したデータパケットが別のコンピュータデバイス１１５によって処理される予定であると判断することができ、その場合、入口要素は、データパケットを、他のコンピュータデバイス１１５に送信するために出口要素４４０に転送することができる。入口要素４１０は、データパケットがバックエンドデータプレーンモジュール４００内で処理される予定であると判断する場合、データパケットを、データパケットを処理するためのプロトコル固有要素に転送することができる。場合によっては、入口要素４１０は、受信したデータパケットを、入口データ構造に基づいてコントロールプレーンモジュール３１０に転送することができる。
【００３９】
バックエンドデータプレーンモジュール４００は、異なるプロトコルに対応付けられた複数のプロトコル固有処理要素４２０を含み得る。プロトコル固有処理要素４２０は、ＬＴＥおよび公共ＷｉＦｉ等の異なるＲＡＴに対応付けることができる。プロトコル固有要素４２０は、ＧＰＲＳトンネリングプロトコル（ＧＴＰ）処理要素、トラフィックフローテンプレート（traffic flow template：ＴＦＴ）処理要素、またはその他のプロトコル固有処理要素を含み得る。ＧＴＰ処理要素は、ＧＴＰカプセル化データパケットを受信しそれぞれのトンネルエンドポイント識別子（tunnel endpoint identifier：ＴＥＩＤ）を用いてそれぞれのサブスクライバ情報を判断するように構成することができる。ＧＴＰ処理要素は、ＧＴＰ  ＴＥＩＤデータ構造（ＧＴＰ  ＴＥＩＤルックアップテーブル等）を用いてサブスクライバ情報を判断することができる。ＧＴＰ  ＴＥＩＤデータ構造は、各ＴＥＩＤをそれぞれのサブスクライバセッション／ベアラ（bearer）にマッピングするように構成することができる。ＧＴＰ処理要素は、１つ以上のデータパケットカウンタを更新し、ＧＴＰヘッダを脱カプセル化し、データパケットをさらに処理するためにまたは出口要素４４０に送るために待ち行列に入れるように、構成することができる。
【００４０】
ＴＦＴ処理要素は、ＴＦＴルックアップテーブルにアクセスすることができる。ＴＦＴルックアップテーブルは、ＴＦＴ仕様をそれぞれのサブスクライバ／ベアラにマッピングするように構成することができる。ＴＦＴ仕様は、それぞれのデータフローに対応付けられた１つ以上のルールを規定する。ＴＦＴ処理要素は、ＩＰデータパケットを受けそれぞれのサブスクライバセッション／ベアラをＴＦＴテーブルに基づいて識別するように構成することができる。サブスクライバセッション／ベアラを識別すると、ＴＦＴ処理要素は、１つ以上のデータパケットカウンタを更新し、ＧＴＰヘッダをカプセル化し、データパケットをそれぞれのサービス品質（quality of service：ＱｏＳ）に基づいて適切な待ち行列に入れることができる。
【００４１】
プロトコル固有処理要素は、分散型ＳＤＮパケットコアシステムによりサポートされるＲＡＴによって使用されるプロトコルに応じて、汎用ルーティングカプセル化（ＧＲＥ）処理要素、汎用ユーザデータグラムプロトコル（ＵＤＰ）カプセル化（ＧＵＥ）処理要素、またはその他の処理要素を含み得る。
【００４２】
パケットスケジューリング要素４３０は、プロトコル固有処理要素４２０に対応付けられた多数の待ち行列からデータパケットを取得し、そのデータパケットを、たとえばネットワークインターフェイスカード（network interface card：ＮＩＣ）に送信するために出口要素４４０に送るように構成することができる。いくつかの実現例において、パケットスケジューリング要素４３０は、ラウンドロビンスケジューラに従って動作するように構成することができる。いくつかの実現例において、パケットスケジューリング要素４３０は、各ＱｏＳに基づいてデータパケットをスケジューリングするように構成することができる。すなわち、パケットスケジューリング要素４３０は、その他のデータパケットに対し比較的高いＱｏＳのデータパケット（またはそれぞれの待ち行列）を優先させるように構成することができる。
【００４３】
出口要素４４０は、データパケットを入口要素からまたはパケットスケジューリング要素出力４３０から受け、それらのパケットをたとえばネットワークインターフェイスカード（ＮＩＣ）に出力するように構成することができる。出口要素４４０は、転送情報ベース（forwarding information base：ＦＩＢ）ルックアップテーブルおよびアドレス解決プロトコル（address resolution protocol：ＡＲＰ）ルックアップテーブル等の近隣テーブルにアクセスすることができる。ＦＩＢルックアップテーブルにおいて、各エントリは、近隣ルックアップテーブルにおける次のホップエントリを指す。ＡＲＰルックアップテーブルは、ネットワークアドレス（ＩＰｖ４アドレス等）をイーサネット（登録商標）アドレス（またはＭＡＣアドレス）等の物理アドレスに変換するために使用することができる。このため、出口要素４４０は、ＦＩＢおよびＡＲＰルックアップテーブルに基づいて、受信したデータパケットにイーサネットヘッダを追加するように構成することができる。そうすると、出口要素４４０はデータパケットをネットワークインターフェイスカード（ＮＩＣ）に送信することができる。いくつかの実現例において、コントロールプレーンモジュール１１０は、ＦＩＢルックアップテーブルのエントリがプログラミングされて所与のタイプの処理（ＧＴＰ処理等）が指定されたヘッダフィールド値を有するデータパケットに適用されるようにすることができる。
【００４４】
図面に示されるソフトウェア要素は、バックエンドデータプレーンモジュール４００または３３８の例示的であるが限定しない実現例を説明している。たとえば、２つ以上の要素（パケットスケジューリング要素４３０および出口要素４４０等）を組合わせて１つのソフトウェア要素にしてもよい。また、図４に示されるソフトウェア要素のうちの１つ以上を、複数のソフトウェア要素に分割してもよい。バックエンドデータプレーンモジュール４００または３３８は、分散型ＳＤＮパケットコアシステムによってサポートされるＲＡＴもしくはプロトコルに応じて、または、バックエンドデータプレーンモジュール４００または３３８の実装に応じて、その他のソフトウェア要素（図４に関して説明したもの以外）を含み得る。
【００４５】
本明細書に記載の主題および動作の実装は、デジタル電子回路において、または、本明細書に開示されている構造およびそれらの構造的均等物を含む有形の媒体、ファームウェア、もしくはハードウェア上で実現されるコンピュータソフトウェアにおいて、または、これらのうちの１つ以上を組合わせたものにおいて、実現することができる。本明細書に記載の主題の実装は、有形の媒体上で実現される１つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるためにまたはデータ処理装置の動作を制御するために１つ以上のコンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の１つ以上のモジュールとして、実現することができる。コンピュータ記憶媒体は、コンピュータ読取可能な記憶媒体、コンピュータ読取可能な記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、これらのうちの１つ以上を組合わせたものであってもそれに含まれていてもよい。コンピュータ記憶媒体はまた、１つ以上の別々のコンポーネントまたは媒体（たとえば複数のＣＤ、ディスク、もしくはその他の記憶装置）であってもそれに含まれていてもよい。コンピュータ記憶媒体は、有形で非一時的なものであってもよい。
【００４６】
本明細書に記載の動作は、データ処理装置により、１つ以上のコンピュータ読取可能記憶装置に格納されているかまたはその他のソースから受けたデータに対して実行される動作として実現することができる。プロセスおよび論理フローは、専用論理回路、たとえばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって実行することもでき、装置は、上記専用論理回路として実現することもできる。
【００４７】
本明細書は多くの具体的な実現詳細を含んでいるが、これらは、あらゆる発明の範囲または請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ、特定の発明の特定の実現例に特有の特徴の説明として解釈されるべきである。この明細書で別々の実現例の文脈において説明されたある特徴はまた、単一の実現例において組合されて実現され得る。反対に、単一の実現例の文脈において説明されたさまざまな特徴はまた、複数の実現例において別々に、または任意の好適な部分的組合せで実現され得る。また、特徴はある組合せで作用するとして上述され、さらには、そのようなものとして当初請求され得るものの、請求される組合せからの１つ以上の特徴が、場合によってはその組合せから削除されることがあり、また、請求される組合せが部分的組合せに、または部分的組合せの変形に向けられることがある。反対に、単一の実現例の文脈において説明されたさまざまな特徴はまた、複数の実現例において別々に、または任意の好適な部分的組合せで実現され得る。また、特徴はある組合せで作用するとして上述され、さらには、そのようなものとして当初請求され得るものの、請求される組合せからの１つ以上の特徴が、場合によってはその組合せから削除されることがあり、また、請求される組合せが部分的組合せに、または部分的組合せの変形に向けられることがある。
【００４８】
「または」という用語への言及は、「または」を用いて説明された任意の用語が、説明された用語のうちの１つ、２つ以上、およびすべてのいずれかを示すように、包括的なものとして解釈され得る。「第１」、「第２」、「第３の」などといった表示は必ずしも順序を示すよう意図されてはおらず、一般に、同じまたは同様の品目または要素を単に区別するために使用される。
【００４９】
このように、主題の特定の実現例が説明されてきた。他の実現例は、請求の範囲内にある。場合によっては、請求項に記載されたアクションは、異なる順序で行なうことができ、依然として望ましい結果を達成することができる。加えて、添付図面に示されたプロセスは必ずしも、望ましい結果を達成するために、図示された特定の順序または順番を必要とはしない。ある実現例では、マルチタスキングまたは並列処理が使用され得る。
【図１】
0006577061.tif 000002
【図２Ａ】
0006577061.tif 000003
【図２Ｂ】
0006577061.tif 000004
【図３】
0006577061.tif 000005
【図４】
0006577061.tif 000006