(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6577061
(24)【登録日】2019年8月30日
(45)【発行日】2019年9月18日
(54)【発明の名称】分散型ソフトウェア定義無線パケットコアシステム
(51)【国際特許分類】
H04W 92/02 20090101AFI20190909BHJP
H04W 88/06 20090101ALI20190909BHJP
H04W 88/14 20090101ALI20190909BHJP
H04W 92/14 20090101ALI20190909BHJP
H04W 24/02 20090101ALI20190909BHJP
【FI】
H04W92/02
H04W88/06
H04W88/14
H04W92/14
H04W24/02
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2017-566111(P2017-566111)
(86)(22)【出願日】2016年9月20日
(65)【公表番号】特表2018-534796(P2018-534796A)
(43)【公表日】2018年11月22日
(86)【国際出願番号】US2016052674
(87)【国際公開番号】WO2017053301
(87)【国際公開日】20170330
【審査請求日】2018年7月3日
(31)【優先権主張番号】62/222,406
(32)【優先日】2015年9月23日
(33)【優先権主張国】US
(31)【優先権主張番号】62/242,668
(32)【優先日】2015年10月16日
(33)【優先権主張国】US
(31)【優先権主張番号】62/242,677
(32)【優先日】2015年10月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】シプラ,ハッサン
(72)【発明者】
【氏名】ジェイン,アンクール
(72)【発明者】
【氏名】チュン,ボク・クヌン・ランドルフ
【審査官】
石田 紀之
(56)【参考文献】
【文献】
特表2014−531792(JP,A)
【文献】
米国特許出願公開第2015/0055623(US,A1)
【文献】
特開2015−146470(JP,A)
【文献】
特表2016−524827(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24− 7/26
H04W 4/00−99/00
3GPP TSG RAN WG1−4
SA WG1−4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
分散型ソフトウェア定義ネットワーク(SDN)パケットコアシステムであって、
前記SDNパケットコアシステムと通信するクライアントデバイスを認証するためのサブスクライバモジュールを含む少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスと、
相互接続された複数のローカルSDNインフラストラクチャインスタンスとを備え、各ローカルSDNインフラストラクチャインスタンスは複数のコンピュータデバイスを含み、前記複数のコンピュータデバイスは、地理的に近接して配置され、前記複数のコンピュータデバイスは、少なくとも2つの無線アクセス技術(RAT)に対応付けられた複数の無線アクセスポイントに通信可能に結合され、各ローカルSDNインフラストラクチャインスタンスの前記コンピュータデバイスは、それぞれの前記無線アクセスポイントに対応付けられた通信フローのコントロールメッセージおよびデータパケットを処理するためにソフトウェアモジュールを実行するように構成され、前記ソフトウェアモジュールは、
前記少なくとも2つの無線アクセス技術(RAT)に対応付けられた複数のRAT固有コントロールプレーンモジュールを含み、各RAT固有コントロールプレーンモジュールは、各RATに対応付けられた通信フローのためのシグナリングおよびコントロール動作を実行するように構成され、前記ソフトウェアモジュールは、
通信フローに対応付けられたデータパケットを処理するように構成された複数のRAT独立データプレーンモジュールを含み、前記ローカルSDNインフラストラクチャインスタンスは前記通信フローのために働く、分散型SDNパケットコアシステム。
【請求項2】
前記ソフトウェアモジュールはさらに、前記RAT固有コントロールプレーンモジュールと前記RAT独立データプレーンモジュールとの間の対話を仲介するための少なくとも1つのデータプレーンコントローラを含み、前記少なくとも1つのデータプレーンコントローラは、通信フロールールを使用するRAT独立インターフェイスを用いて前記RAT固有コントロールプレーンモジュールと対話するように構成される、請求項1に記載の分散型SDNパケットコアシステム。
【請求項3】
前記少なくとも1つのデータプレーンコントローラは、
通信フロールールに対応付けられたアップデートを受信し、
前記アップデートを、前記通信フロールールを実行するように構成された1つ以上のRAT独立データプレーンモジュールに転送するように、
構成される、請求項2に記載の分散型SDNパケットコアシステム。
【請求項4】
各通信フロールールは、
少なくとも1つのデータパケットヘッダフィールド値の指示と、
前記少なくとも1つのデータパケットヘッダフィールド値を含むデータパケットに与えるための1つ以上の命令とを含む、請求項2または3に記載の分散型SDNパケットコアシステム。
【請求項5】
前記少なくとも1つのデータプレーンコントローラは、
前記コントロールプレーンモジュールのヘルスステータスを定期的に検査し、
前記コントロールプレーンモジュールのヘルスステータスに基づいて判断された故障状態を管理するように、
構成される、請求項2〜4のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項6】
前記少なくとも1つのデータプレーンコントローラは、
前記RAT独立データプレーンモジュールのうちの1つ以上から1つ以上のデータパケット処理フィードバックレポートを受信し、
少なくとも1つのコントロールプレーンモジュールが前記1つ以上のデータパケット処理フィードバックレポートを受信すると判断し、
前記1つ以上のデータパケット処理フィードバックレポートを前記判断した少なくとも1つのコントロールプレーンモジュールに転送するように、
構成される、請求項2〜5のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項7】
前記RAT固有コントロールプレーンモジュールは、RAT固有フロントエンドモジュールを含み、各RAT固有フロントエンドモジュールは、各RATに対応付けられた1つ以上の無線アクセスポイントに通信可能に結合され、前記1つ以上の無線アクセスポイントに対するシグナリングを処理するように構成される、請求項1に記載の分散型SDNパケットコアシステム。
【請求項8】
各フロントエンドモジュールは、それぞれのトランスポートトンネルを通して前記1つ以上の無線アクセスポイントに通信可能に結合される、請求項1に記載の分散型SDNパケットコアシステム。
【請求項9】
それぞれのトランスポートトンネルは、Ethernet-over-IPトンネル、汎用ユーザデータグラムプロトコル(UDP)カプセル化(GUE)トンネル、汎用ルートカプセル化(GRE)トンネル、802.11 over GUEトンネル、GPRSトンネリングプロトコル(GTP)トンネル、およびインターネットプロトコル(IP)セキュリティ(IPSec)トンネルのうちの少なくとも1つを含む、請求項1に記載の分散型SDNパケットコアシステム。
【請求項10】
RAT固有コントロールプレーンモジュールは、大都市エリアネットワークを通して前記無線アクセスポイントに通信可能に結合される、請求項1〜9のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項11】
各RAT独立データプレーンモジュールは、データパケット処理要素の集合体を含み、データパケット処理要素の少なくとも1つの集合体は、少なくとも2つのRATに対応付けられたRAT固有ネットワーク機能を実行するように構成された複数の要素を含む、請求項1に記載の分散型SDNパケットコアシステム。
【請求項12】
前記少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスは、前記分散型SDNパケットコアシステムに対応付けられたクライアントデバイスのためのポリシーを管理するように構成されたポリシーモジュールを含む、請求項1〜11のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項13】
前記ローカルSDNインフラストラクチャインスタンスは、少なくとも1つのトランジットネットワークを通して通信可能に互いに結合される、請求項1〜12のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項14】
前記ローカルSDNインフラストラクチャインスタンスは、1つ以上のトランジットネットワークを通して1つ以上のデータセンターに通信可能に結合される、請求項1〜12のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項15】
少なくとも1つのローカルSDNインフラストラクチャインスタンスは、コンテンツプロバイダに対応付けられたデータをキャッシュするためのデータキャッシュを含む、請求項1〜14のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項16】
前記少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスは、第3のRATを前記分散型SDNパケットコアシステムに統合するために新たなポリシーモジュールを組込むように構成される、請求項12に記載の分散型SDNパケットコアシステム。
【請求項17】
前記少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスは、前記複数のローカルSDNインフラストラクチャインスタンス間で負荷を分散させるためにグローバルロードバランシングモジュールを含む、請求項1〜16のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項18】
前記RAT独立データプレーンモジュールは、異なるRATに共通するパケット処理機能を果たすように構成される、請求項1〜17のいずれか1項に記載の分散型SDNパケットコアシステム。
【請求項19】
前記RAT独立データプレーンモジュールは各々、ネットワークアドレス変換、ファイアウォール機能、またはアドレス委託のうちの1つ以上を実行するように構成される、請求項18に記載の分散型SDNパケットコアシステム。
【請求項20】
前記複数のRAT固有コントロールプレーンモジュールは、RATプロトコルから独立したプロトコルバッファを用いて互いに通信するように構成されている、請求項1〜19のいずれか1項に記載の分散型SDNパケットコアシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2015年9月23日に出願され「DISTRIBUTED SOFTWARE DEFINED WIRELESS PACKET CORE SYSTEM」と題された米国仮出願第62/222,406号、2015年10月16日に出願され「SYSTEMS AND METHODS FOR MOBILITY MANAGEMENT IN A DISTRIBUTED SOFTWARE DEFINED NETWORK PACKET CORE SYSTEM」と題された米国仮出願第62/242,668号、および2015年10月16日に出願され「SYSTEMS AND METHODS FOR LOAD BALANCING IN A DISTRIBUTED SOFTWARE DEFINED NETWORK PACKET CORE SYSTEM」と題された米国仮出願第62/242,677号に基づく優先権を主張し、これらすべての内容を本明細書に引用により援用する。
【0002】
開示の分野
本開示は概して通信ネットワークの分野に関する。
【背景技術】
【0003】
背景
インターネットにアクセスするためまたは他のユーザと通信するためにモバイルネットワークに切換える(またはモバイルネットワークを使用することが多い)ユーザが増加している。多くのモバイルデバイスは、多様な無線アクセス技術に対応する通信機能を備えている。このため、ユーザには、たとえば、このような無線アクセスネットワークの可用性、コストまたは性能に基づいて、異なる無線アクセスネットワーク間で切換える自由がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示の少なくとも一局面に従うと、分散型ソフトウェア定義ネットワーク(software defined network:SDN)パケットコアシステムは、少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスと、相互接続された複数のローカルSDNインフラストラクチャインスタンスとを含む。少なくとも1つのクラウドベース集中型SDNインフラストラクチャインスタンスは、SDNパケットコアシステムと通信するクライアントデバイスを認証するためのサブスクライバモジュールを含み得る。各ローカルSDNインフラストラクチャインスタンスは複数のコンピュータデバイスを含み得る。複数のコンピュータデバイスは、地理的に近接して配置され、少なくとも2つの無線アクセス技術(radio access technology:RAT)に対応付けられた複数の無線アクセスポイントに通信可能に結合されている。各ローカルSDNインフラストラクチャインスタンスのコンピュータデバイスは、それぞれの無線アクセスポイントに対応付けられた通信フローのコントロールメッセージおよびデータパケットを処理するためにソフトウェアモジュールを実行するように構成し得る。ソフトウェアモジュールは、少なくとも2つの無線アクセス技術(RAT)に対応付けられた複数のRAT固有コントロールプレーンモジュールと、複数のRAT独立データプレーンモジュールとを含み得る。各RAT固有コントロールプレーンモジュールは、それぞれのRATに対応付けられた通信フローのためのコントロールシグナルおよび動作を実行するように構成し得る。RAT独立データプレーンモジュールは、通信フローに対応付けられたデータパケットを処理するように構成し得る。ローカルSDNインフラストラクチャインスタンスは上記通信フローのために働く。
【図面の簡単な説明】
【0005】
【
図1】分散型ソフトウェア定義ネットワーク(SDN)パケットコアシステムを用いる通信環境の概要を説明するブロック図を示す。
【
図2A】2つのSDNパケットコアアーキテクチャのうちの一方に対応するデータ経路を説明するブロック図を示す。
【
図2B】2つのSDNパケットコアアーキテクチャのうちの他方に対応するデータ経路を説明するブロック図を示す。
【
図3】ローカルSDNインフラストラクチャインスタンスのソフトウェアアーキテクチャを説明するブロック図を示す。
【
図4】データプレーンモジュールの実現例を説明するブロック図である。
【発明を実施するための形態】
【0006】
詳細な説明
モバイルネットワークの運営者によるネットワークインフラストラクチャへの継続的な高額の投資を要求するモバイルユーザの数が増しておりかつモバイルデータトラフィック量も増している。モバイルユーザは、多様な無線アクセスネットワークを通じてコンテンツプロバイダのデータにアクセスすることが多くなっている。モバイルデバイスには、第3世代(3G)モバイル電気通信技術、ロング・ターム・エボリューション(long-term evolution:LTE)モバイル電気通信技術、WiFi(登録商標)、プロプライエタリ高高度プラットフォーム、またはその他の無線アクセス技術のような、さまざまな無線アクセス技術(RAT)に対応するさまざまな無線アクセスネットワークへのアクセス機能を搭載することができる。
【0007】
インターネットにアクセスするとき、モバイルユーザは、各ユーザコンテキストに応じて、さまざまな接続モードを使用することができる。たとえば、モバイルユーザは、自宅ではWiFiを通じて、戸外ではセルラーアクセスネットワークを通じて、または小売店の空間、空港、もしくはその他の公共の場所ではゲストWiFiサービスを通じて、インターネットにアクセスすることができる。通常、ユーザは、異なるアクセスネットワーク、さまざまな課金体系、およびさまざまなセキュリティ保証またはポリシーに対し、さまざまな自身の認証方法を有する。また、異なるアクセスネットワーク間でローミングすると、接続性が妨害される。これらの要素は、結果としてユーザ体験の断片化をもたらす。モバイルユーザにとっては、RAT間のモビリティがシームレスである異種の無線アクセスを提供する統一されたサービスが有り難いであろう。
【0008】
ユーザ体験を改善する方法の1つは、異種の無線アクセスネットワークを1つのサービスドメインにまとめることができるシステムアーキテクチャを提供することである。このようなシステムアーキテクチャを設計するときは、(たとえば新たなRATまたはネットワーク容量の増加に関する)システムスケーラビリティ、システムの複雑度、インフラストラクチャコスト、およびRAT間モビリティを含む、さまざまな要素を考慮しなければならない。また、さまざまな無線アクセスネットワーク間のインターワーキングを可能にすることは、多大な技術的課題を伴う。たとえば、3GPPによって定義された進化パケットシステム(Evolved Packet System:EPS)は、セルラーネットワーク運営者に対して厳密に作成されており、進化パケットコア(Evolved Packet Core:EPC)インフラストラクチャに対して非常に密に連結されている各サブスクライバ管理システム(たとえばSIMカード)を厳正に使用する。3GPPネットワーク(3G、LTEまたはLET−A等)と非3GPPネットワーク(WiFi等)との間のインターワーキングを提供するためには、非3GPPサブスクライバ管理ツールを3GPPサブスクライバ管理システムに統合する(たとえばWiFiデバイスのSIMカード識別等)またはその逆が必要であろう。このような統合プロセスの実施は、新たなRATを追加する度にパケットコアシステムを実質的に修正することを含むので、新たなRATの追加に関するシステムのスケーラビリティが妨げられる。さらに、3GPP EPCを各レガシープロトコルに基づく強固な構造で実現しようとすると、(3GPP無線アクセスネットワークと非3GPP無線アクセスネットワークとの間等の)インターワーキングソリューションは、難しく複雑で非スケーラブルなものになる。
【0009】
本開示において、分散型ソフトウェア定義ネットワーク(SDN)パケットコアシステムは、異種の無線アクセスネットワークの結合をもたらす大規模な単一サービスドメインとして動作するように構成される。分散型SDNパケットコアシステムは、エンドユーザに対し、エンドユーザが接続するアクセスネットワークとは無関係にシームレスな接続性を提供することができ、かつ、別々のアクセスネットワーク間のトランスペアレントなローミングを可能にする。分散型SDNパケットコアシステムは、分散型仮想進化パケットコア(virtual evolved packet core:vEPC)とも呼ばれる。
【0010】
図1は、分散型ソフトウェア定義ネットワーク(SDN)パケットコアシステムを用いる通信環境10の概要を説明するブロック図を示す。通信環境10は、その近辺のモバイルデバイス20のために働く複数の無線アクセスポイント(access point:AP)30と、複数のローカルSDNインフラストラクチャインスタンス110と、中央SDNインフラストラクチャインスタンス120と、1つ以上の大都市エリアネットワーク12と、第1トランジットネットワーク15と、1つ以上の第2トランジットネットワーク18と、1つ以上のデータセンター90とを含む。各ローカルSDNインフラストラクチャインスタンス110は、複数のコンピュータデバイス115を含む。
【0011】
モバイルデバイス20は、限定される訳ではないが、携帯電話、スマートフォン、タブレット、ラップトップ、スマートウォッチ、通信機能付ウェアラブルアイテム、オーディオ再生装置(MP3プレーヤ等)、動画再生装置、ゲーム機、グローバルポジショニングシステム(GPS)装置、自動コンピュータ、または通信機能付のその他クライアントデバイスを含み得る。モバイルデバイス20は、各アクセスポイント30で無線リンクを介してモバイルアクセスネットワークに接続できる。いくつかの実現例において、モバイルデバイス20は、分散型SDNパケットコアシステムを介してコンテンツプロバイダネットワークに対応付けられたコンテンツを要求しこのコンテンツにアクセスするように構成することができる。たとえば、モバイルデバイス20上で実行しているアプリケーション(ブラウザ、メディアプレーヤ、ゲームアプリケーション/プラットフォーム、電子メールアプリケーション、企業アプリケーション、ソーシャルメディアアプリケーション等)は、モバイルデバイス20の画面上に表示するために、データセンター90から入手できるコンテンツを要求することができる。
【0012】
無線アクセスポイント(AP)30は、無線リンクを介してモバイルデバイス20と通信するように構成することができる。AP30は、別々の無線アクセスネットワーク(3G、LTE/LTE−A、WiFiもしくはその他のRAT等の少なくとも2つの異なる無線アクセス技術(RAT)に対応する、WiFiホットスポットネットワーク、ユニバーサルモバイル電気通信システム(universal mobile telecommunications system:UMTS)ネットワーク、ロング・ターム・エボリューション(LTE)ネットワーク、またはそれ以外のモバイル通信ネットワーク等)の一部であってもよい。たとえば、AP30は、NodeB、進化NodeB(eNodeB)、WiFiホットスポット、またはその他の種類の無線アクセスポイントを含み得る。AP30は、1つ以上の州、1つの地方または複数の地方を画定する大きな地理的領域にわたって分散させることができ、各AP30は、それぞれの地理的近隣にあるモバイルデバイス20のために働くように構成することができる。各AP30は、近隣のモバイルデバイス20と、エア・インターフェイスを通して直接通信するように構成することができ、かつ、大都市ISPネットワーク12を通して各ローカルSDNインフラストラクチャインスタンス110に接続することができる。モバイルデバイス20が1つの地理的位置から別の地理的位置に移動すると、各無線接続を、あるAP30から別のAPに、異なるAP30に対するモバイルデバイス20の近接度に基づいて、移す(またはハンドオーバする)ことができる。
【0013】
複数のローカルSDNインフラストラクチャインスタンス110は、無線アクセスネットワークまたはそのAP30の近傍でデプロイされこの無線アクセスネットワークまたはそのAP30のために働く、一組の分散型コンピューティングまたはネットワーク処理リソースプールを表わす。たとえば、各SDNインフラストラクチャインスタンス110は、各大都市エリアに対応付けることができ、かつ、この大都市エリア内のモバイルデバイス20のために働くAP30に接続することができる。各ローカルSDNインフラストラクチャインスタンス110は、コンピュータサーバまたはサーバのラック等のそれぞれ複数のコンピュータデバイス115を含む。コンピュータサーバまたはサーバのラック等の複数のコンピュータデバイス115は、SDN要素として実現されるネットワーク動作または機能を実行することにより、そのローカルSDNインフラストラクチャインスタンス110に結合された(またはローカルSDNインフラストラクチャインスタンス110がそのために働く)AP30に対応付けられたデータトラフィックを提供するように構成されている。いくつかの実現例において、各ローカルSDNインフラストラクチャインスタンス110に対応付けられたコンピュータデバイス115は、レイテンシセンシティブなネットワーク機能を実行するように構成することができる。たとえば、コントロールプレーンシグナリング、データプレーンアンカー、および所与のローカルSDNインフラストラクチャインスタンス110内のローカルモビリティは、各コンピュータデバイス115によって実行可能な(または各コンピュータデバイス115上で実行される)SDN要素として実現することができる。
【0014】
いくつかの実現例において、各ローカルSDNインフラストラクチャインスタンス110は、コンピュータデバイス115間またはその上で実行しているSDN要素間で負荷を分散させるように構成されたロードバランシングエンティティを含み得る。いくつかの実現例において、各ローカルSDNインフラストラクチャインスタンス110は、1つ以上のコンテンツプロバイダに対応付けられたインターネットデータをローカルにキャッシュするように構成することができる。たとえば、各ローカルSDNインフラストラクチャインスタンス100は、1つ以上のキャッシングサーバを含み得る。ローカルSDNインフラストラクチャインスタンス110は、要求されたインターネットデータがローカルでキャッシュされている場合は常に、ローカルキャッシュから、モバイルデバイス20からの要求に応じてインターネットデータを与えるように構成することができる。インターネットデータは、ウェブページ、オンラインサービスに対応付けられたデータ(電子メール、ソーシャルメディア等)、ゲームに対応付けられたデータ、ビデオストリーミングデータ(Netflix(登録商標)またはYouTube(登録商標))等を含み得る。
【0015】
中央SDNインフラストラクチャインスタンス120は、1つ以上のコンピュータデバイスを含み、レイテンシセンシティブではない(または少なくともレイテンシセンシティブ性が低い)ネットワーク機能、または複数のローカルSDNインフラストラクチャインスタンス110を必要とするネットワーク機能を実行するように構成されたSDN要素が上記コンピュータデバイス上で実行されている。中央SDNインストラクチャインスタンス120内で実行されるSDN要素は、たとえば、サブスクリプションポリシーモジュール、ローカルSDNインフラストラクチャインスタンス110間のグローバルモビリティ(またはローミング)、またはその組合わせを含み得る。サブスクリプションポリシーモジュールは、認可、認証およびアカウンティング(authorization, authentication and accounting:AAA)サーバ、サブスクリプションプロファイルリポジトリ(SPR)、ポリシーおよびチャージコントロールモジュール、またはサブスクリプションポリシーを管理するためのその他のモジュールを含み得る。モバイルデバイスを分散型SDNパケットコアシステムに接続する間、ローカルSDNインフラストラクチャインスタンス110は、中央SDNインフラストラクチャインスタンス120に対応付けられたサブスクリプションおよびポリシーモジュールに、モバイルデバイス(またはそのユーザ)の認証と認可を要求することができる。中央SDNインフラストラクチャインスタンスはまた、複数のローカルSDNインフラストラクチャインスタンス110間で負荷を分散させるためのグローバルロードバランシングモジュールを含み得る。中央SDNインフラストラクチャインスタンス120はクラウド(1つ以上のホストデータセンタ等)に配置することができる。
【0016】
各ローカルSDNインフラストラクチャインスタンス110は、その近傍のAP30に、各大都市エリアネットワーク12を通して接続することができる。大都市エリアネットワーク12は、ローカルSDNインフラストラクチャインスタンス110ごとに異なる。いくつかの実現例において、ローカルSDNインフラストラクチャインスタンスは、1つ以上の大都市エリアネットワーク12を通して各AP30に結合することができる。所与のローカルSDNインフラストラクチャインスタンス110に対し、各大都市エリアネットワーク12は、そのローカルSDNインフラストラクチャインスタンス110に対応付けられた大都市エリアのために働く1つ以上の通信ネットワークであってもよい。いくつかの実現例において、大都市エリアネットワーク12のうちの1つ以上はそれぞれ第3者ネットワークプロバイダによって所有または管理されていてもよく、分散型SDNパケットコアネットワークの一部でなくてもよい。いくつかの実現例において、各AP30は、地理的に最も近いローカルSDNインフラストラクチャインスタンス100に結合することができる(かつ当該インスタンスが各APのために働くことができる)。いくつかの実現例において、AP30とローカルSDNインフラストラクチャインスタンス110内のエンティティ(コンピュータデバイス115またはその上で実行するSDN要素等)との間の結合は、大都市エリアネットワーク12上の各トランスポートトンネル35を通して実現することができる。たとえば、Ethernet-over-IP(EoIP)トンネル等のトランスポートトンネル35を、ローカルSDNインフラストラクチャインスタンス110へのIP接続性を提供する大都市エリアネットワーク12で使用することができる。いくつかの実現例において、トランスポートトンネル35は、Ethernet-over-IPトンネル、汎用ユーザデータグラムプロトコル(user datagram protocol:UDP)カプセル化(GUE)トンネル、汎用ルートカプセル化(GRE)トンネル、802.11 over GUEトンネル、GPRSトンネリングプロトコル(GTP)トンネル、インターネットプロトコル(IP)セキュリティ(IPSec)トンネル、その他の種類のトンネル、またはその組合わせを含み得る。
【0017】
いくつかの実現例において、複数のローカルSDNインフラストラクチャインスタンス110は、第1トランジットネットワーク15を通して相互に接続することができる。第1トランジットネットワーク15は、たとえば、ローカルSDNインフラストラクチャインスタンス110間のローミングを処理するために、別々のローカルSDNインフラストラクチャインスタンス110間で通信できるようにする。いくつかの実現例において、第1トランジットネットワーク15は、ローカルSDNインフラストラクチャインスタンス110を中央インフラストラクチャインスタンス120に結合するように構成することができる。第1トランジットネットワーク15は、光ファイバデータネットワーク、インターネットサービスプロバイダ(Internet service provider:ISP)ネットワーク、またはその他の通信ネットワークを含み得る。第1トランジットネットワーク15および複数のローカルSDNインフラストラクチャインスタンス110は、1つのエンティティまたは別々のエンティティによって管理(または所有)することができる。いくつかの実現例において、第1トランジットネットワーク15は、ローカルSDNインフラストラクチャインスタンス110から別々に所有または管理されることができる。すなわち、第1トランジットネットワーク15は、分散型SDNパケットコアシステムの一部でなくてもよく、ローカルSDNインフラストラクチャインスタンス110を相互に通信可能に結合するために使用される外部ネットワークであってもよい。
【0018】
通信環境10は、複数のデータセンター90を含み得る。各データセンター90は、コンテンツプロバイダのデータ、ウェブページ、またはその組合わせを格納しそれに対するアクセスを提供するためにコンピューティングデバイスを含み得る。たとえば、データセンター90は、ローカルSDNインフラストラクチャインスタンスからデータ要求を受け、それに応じて、要求されたデータを提供するように構成することができる。データセンター90は、ウェブページおよびそれぞれのコンテンツ、YouTubeまたはNetflix等のビデオストリーミングアプリケーション、ソーシャルメディアアプリケーションおよびコンテンツ、ゲームアプリケーション、企業アプリケーション、またはその他のクラウドアプリケーションもしくはサービスをホストするように構成することができる。いくつかの実現例において、中央SDNインフラストラクチャインスタンス120は、データセンター91内に実現することができる。
【0019】
各ローカルSDNインフラストラクチャインスタンス110は、1つ以上の第2トランジットネットワーク18を通してデータセンター90に通信可能に結合することができる。第2トランジットネットワーク18は、第1トランジットネットワーク15を通してローカルSDNインフラストラクチャインスタンス110に結合することができる。いくつかの実現例において、第2トランジットネットワーク18は、ローカルSDNインフラストラクチャインスタンス110に直接結合してもよい。いくつかの実現例において、第2トランジットネットワーク18は、中央SDNインフラストラクチャインスタンス120をローカルインフラストラクチャインスタンス110に結合するように構成することができる。いくつかの実現例において、第2トランジットネットワーク18は任意であってもよい。そのような実現例において、データセンター90は、第1トランジットネットワーク15に直接結合してもよい。いくつかの実現例において、第1トランジットネットワーク15および第2トランジットネットワーク18は、単一の通信ネットワークの一部であってもよい。
【0020】
いくつかの実現例において、分散型SDNパケットコアシステムは、ローカルSDNインフラストラクチャインスタンス110と中央SDNインフラストラクチャインスタンス120とを組合わせたものとして見ることができる。いくつかの実現例において、分散型SDNパケットコアシステムはまた、第1トランジットネットワーク15を含み得る。いくつかの実現例において、分散型SDNパケットコアシステムはまた、第2トランジットネットワーク18を含み得る。(
図1を参照しながら説明した)分散型SDNパケットコアシステムのアーキテクチャにより、データトラフィックを、たとえばローカルSDNインフラストラクチャインスタンス110において、ローカルにルーティングし外に出すことができる。ローカルSDNインフラストラクチャインスタンス110をAP30に近接させて配置しそこでデータトラフィックを処理することにより、高速データパケット処理が可能であり、したがって、パフォーマンスを改善するとともにネットワークリソース消費を低減することができる。
【0021】
図2Aおよび
図2Bは、2つのSDNパケットコアアーキテクチャに対応付けられたデータ経路を説明する図を示す。
図2Aの図はクラウドベースのSDNパケットコアアーキテクチャ200aを示すのに対し、
図2Bの図は分散型パケットコアアーキテクチャ200bを示す。
【0022】
図2Aを参照して、クラウドベースのSDNパケットコアシステムは、クラウドSDNインフラストラクチャインスタンス260と、第1トランジットネットワーク215と第2トランジットネットワーク218との間に配置されたローカル通信接合ポイント240とを含み得る。通信接合ポイント240は、第1トランジットネットワーク215を通してクラウドSDNインフラストラクチャインスタンス260に通信可能に結合することができる。通信接合ポイント240は、その近傍の1つ以上の無線アクセスポイント(AP)203に、大都市エリアネットワーク212を通して結合することができる。AP203は、その近隣のモバイルデバイス202のために働くように構成することができる。通信接合ポイント240は、第2トランジットネットワーク218を通してデータセンター209に通信可能に結合することができる。
【0023】
パケットコア機能または動作は、クラウドSDNインフラストラクチャインスタンス260により、クラウド内(たとえばデータセンター208内)で実行される。たとえば、モバイルデバイス202がインターネットコンテンツにアクセスしようとするとき、モバイルデバイス202は各データ要求を生成してクラウドSDNインフラストラクチャインスタンス260に送信する。データ要求経路291aを通して示されるように、データ要求は、AP203により、大都市エリアネットワーク212を通して通信接合ポイント240に転送することができる。すると、通信接合ポイント240は、データ要求を、第1トランジットネットワーク215を通してクラウドSDNインフラストラクチャインスタンス260に転送することができる。クラウドSDNインフラストラクチャインスタンス260は、このデータ要求を処理し、第1トランジットネットワーク215、通信接合ポイント240、および第2トランジットネットワーク218を通して、データセンター209に送信することができる。データセンター209に対応付けられているプロセッサは、このデータ要求を受けると、要求データ経路292aによって示されるように、要求されたデータを、第2トランジットネットワーク218、通信接合ポイント240、および第1トランジットネットワーク215を通してクラウドSDNインフラストラクチャインスタンス260に送信することができる。そうすると、クラウドSDNインフラストラクチャインスタンス260は、要求されたデータを、第1トランジットネットワーク215、通信接合ポイント240、大都市エリアネットワーク212、およびAP203を通して、モバイルデバイス202に送信することができる。いくつかの例において、AP203は、クラウドSDNインフラストラクチャインスタンス260への直接トンネルを構築するように構成されてもよい。このような例において、データ経路291aおよび292aは依然としてホストデータセンター208を通る必要がある。
【0024】
図2Bは、
図1に関して説明したものと同様の分散型SDNパケットコアシステムの分散型SDNパケットコアアーキテクチャ200bに対応付けられたデータ経路を説明する図を示す。クラウドベースのSDNパケットコアアーキテクチャ200aと比較すると、分散型SDNパケットコアアーキテクチャ200bは、AP203に近接して配置された当該AP203に対応付けられたデータトラフィックを(クラウド内でデータトラフィックを処理するのではなく)ローカルで処理するローカルSDNインフラストラクチャインスタンス210を用いる。すなわち、ほとんどのコントロールプレーンおよびデータプレーンの動作は、ローカルSDNインフラストラクチャインスタンス210によりローカルで実行される。このため、モバイルデバイス202により生成されたデータ要求は、データ要求経路291bによって示されるように、AP203および大都市エリアネットワーク212を通ってローカルSDNインフラストラクチャインスタンス210に到達する。ローカルSDNインフラストラクチャインスタンス210は、データ要求をトランジットネットワーク218を通してデータセンター209に転送することができる。このデータ要求に応じて、データセンター209に対応付けられたプロセッサは、要求されたデータをトランジットネットワーク218を通してローカルSDNインフラストラクチャインスタンス210に送信することができ、ローカルSDNインフラストラクチャインスタンス210は、要求されたデータを、要求データ経路292bによって示されるように、大都市エリアネットワーク212およびAP203を通してモバイルデバイス202に転送することができる。
【0025】
データ要求経路291aと291bとを比較しデータ経路292aと292bとを比較することにより、クラウドベースSDNパケットコアアーキテクチャ(アーキテクチャ200a等)を用いた場合、長いデータ経路(要求データ経路292a等)にわたって、データソース(データセンター90等)とデータシンク(モバイルデバイス202等)との間でトラフィックのヘアピン化(hairpinning)が生じると、結論付けることができる。特に、(データセンター208および209等の)データセンターは、母集団センターに対し、パワーおよび空間の費用対効果が高い遠隔の地理的場所に配置される傾向がある。このため、ホスティングデータセンター208内に仮想パケットコア(クラウドSDNインフラストラクチャインスタンス260等)を実現することにより、大都市エリアに配置された通信接合ポイント240とホスティングデータセンターとの間の長い通信リンクを含むデータ経路が生じる。このようなヘアピンは、長距離バックボーン容量に多大な費用がかかることを表わし、結果としてレイテンシが増す。これはユーザ体験に悪影響を及ぼす。これに対し、分散型SDNパケットコアアーキテクチャ200b(
図1に関しても説明した)により、データトラフィックをローカル処理することができ、ホスティングデータセンターとの通信が大幅に減少した、ローカルなデータトラフィック処理が可能である。結果として、分散型SDNパケットコアアーキテクチャ200bは、不必要なレイテンシを回避することができ、かつ、クラウドベースSDNパケットコアアーキテクチャ200aとのバックボーン容量の使用を低減することができる。
【0026】
ネットワーク機能をSDN要素として実現すると、たとえば、1つ以上のローカルSDNインフラストラクチャインスタンス110内により多くのコンピュータデバイス115を追加して、増大するサービス需要に対処することにより、分散型SDNパケットコアシステムをスケーリングすることができる。パケットコアネットワークのソフトウェアベースの実現も、ネットワーク機能仮想化(Network Function Virtualization:NFV)を通して実現することができ、モビリティ管理エンティティ(mobility management entity:MME)、サービングゲートウェイ(serving gateway:SGW)またはLTE用のパケットデータネットワーク(packet data network:PDN)ゲートウェイ(PGW)等の)所与のRATに特有のモノリシック機能は、汎用コンピュータインフラストラクチャ内の各仮想化モノリシックエンティティに実現される。また、NFVの実現は、たとえば、RAT固有プロトコルおよび通信トンネルの仮想化により、仮想化モノリシックエンティティ間の通信を可能にする。仮想化プロトコルおよび通信トンネルは、スケーラビリティに関して制限要素を示す。たとえば、仮想化プロトコルまたは通信トンネルを拡張して新たなサービスを生み出すこと(WiFiを3GPP RATをサポートするネットワークに追加する等)は、仮想化プロトコルまたは通信トンネルのいずれかを実現するすべての仮想化モノリシックエンティティに対する多大な修正を含み得る。また、新たなデータプレーン構成の実現は、既存の仮想化モノリシックエンティティによって制限される可能性がある。
【0027】
本開示において説明する分散型SDNパケットコアシステムにおいて、コントロールプレーンおよびデータプレーンは、各ローカルSDNインフラストラクチャインスタンス110において分離することができる。各ローカルSDNインフラストラクチャインスタンス110は、別々のコントロールプレーンおよびデータプレーンソフトウェアモジュールを含み得る。(ネットワークアドレス変換(network address translation:NAT)、ファイアウォール、アドレス委託等の)異なるRATに共通のパケット処理機能または動作は、1つ以上のコンピュータデバイス110上で実行されるプロトコル独立バックエンドデータプレーンモジュールに抽出して実現することができる。また、コントロールプレーンモジュールは、プロトコル抽出を提供しRAT固有コントロールプレーンシグナリングおよび外部システムとのデータプレーンの相互運用を扱うことができる。コントロールおよびデータプレーンの抽出と分離により、分散型SDNパケットコアシステムのフレキシビリティおよびスケーラビリティが得られる。たとえば、新たなRATを、各コントロールプレーンモジュールおよび/または各データプレーンモジュールをローカルSDNインフラストラクチャインスタンス110に追加し各サブスクリプションおよびポリシーモジュールを中央SDNインフラストラクチャインスタンス120に組込むことにより、既存の分散型SDNパケットコアシステムに、素早くシームレスに統合することができる。また、所与のローカルSDNインフラストラクチャインスタンス110の容量の拡張は、たとえば、1つ以上のRATに対応付けられたデータプレーンモジュールまたはコントロールプレーンモジュールを実現するコンピュータデバイスをさらに追加することによって実現することができる。いくつかの実現例において、本開示に記載される分散型SDNパケットコアシステムのスケーリング(新たなRATを統合するかまたはシステム容量を増加する)は、モバイルデバイス20上で実行されるソフトウェアの修正を伴わない。
【0028】
図3は、ローカルSDNインフラストラクチャインスタンス300のソフトウェアアーキテクチャを説明するブロック図を示す。ローカルSDNインフラストラクチャインスタンス110は、複数のRAT固有コントロールプレーンモジュール(またはアプリケーション)310aおよび310b(個別にまたは集合的にコントロールプレーンモジュール310とも呼ぶ)と、1つ以上のデータプレーンコントローラ320と、複数のデータプレーンインスタンス330(ユーザスペースパケットスイッチング(user-space packet switching:USPS)インスタンス330とも呼ぶ)とを含み得る。各USPSインスタンスは、コンフィギュレーションモジュール334(コンフィギュレータ334とも呼ぶ)と、1つ以上のRAT独立データプレーンバックエンドモジュール338とを含み得る。
【0029】
図1および
図3を参照して、各SDNインフラストラクチャインスタンス110は、少なくとも2つのRATに対応付けられた、コントロールプレーンモジュール310aおよび310b(個別にまたはまとめてコントロールプレーンモジュール310とも呼ぶ)等の、複数のRAT固有コントロールプレーンモジュール(またはコントロールプレーンアプリケーション)を含み得る。RATごとに、RAT固有コントロールプレーンモジュール310の各セットを、そのRATと対応付けられたシグナリングおよびコントロールプレーン動作を処理するように構成することができる。たとえば、コントロールプレーンモジュール310aを第1RATに対応付け、コントロールプレーンモジュール310bを第1RATと異なる第2RATに対応付けることができる。ローカルSDNインフラストラクチャインスタンス110は、所与のコントロールプレーンモジュール310の複数のインスタンスを含み得る。
【0030】
所与のRAT用のコントロールプレーンモジュール310は、AP30、中央SDNインフラストラクチャインスタンス120、その他のローカルSDNインフラストラクチャインスタンスまたは、データセンター90もしくはその他の外部ネットワーク等の外部システムに対するシグナリングおよびコントロールプレーンの対話を処理するように構成することができる。RATごとに、コントロールプレーンモジュール310の各セットは、このRATに対応付けられているAP30に通信可能に結合された1つ以上のフロントエンドモジュールを含み得る。たとえば、ローカルSDNインフラストラクチャは、eNodeBと通信するように構成された1つ以上のLTEフロントエンド(LFE)モジュールと、WiFiアクセスポイントと通信するように構成された1つ以上のWiFiフロントエンド(WFE)モジュールとを含み得る。フロントエンドモジュールは、AP30に対するEthernet-over-IP(EoIP)トンネル等の通信トンネルを確立するように構成することができる。いくつかの実現例において、コントロールプレーンモジュール310は、AP30と各フロントエンドモジュールとの間の通信トンネルを暗号化するためのゲートウェイモジュールを含み得る。
【0031】
RATごとに、1つ以上のコントロールプレーンモジュール310を、一組のフロールールを用いて対応する無線アクセスネットワークのための標準ベースのステートマシン(LTEのためのモビリティ管理エンティティ等)を実現するように構成することができる。たとえば、フロントエンドモジュールは、AP30との対話およびフロールールに基づいて転送経路を作製するように構成することができる。このため、フロントエンドモジュールは、SDNルータとして機能するように構成することができる。フロールールは、データプレーンバックエンドモジュール338によって実行されてデータパケットをドロップする、転送する、カプセル化する、脱カプセル化する、またはその他のデータパケットプロセスを実行するための命令を含み得る。いくつかの実現例において、コントロールプレーンモジュール310は、フロールールを、バックエンドデータプレーンモジュール330による実行のために、データプレーンコントローラ320に与えるように構成することができる。
【0032】
コントロールプレーンモジュール310は、互いに通信するように構成することができる。いくつかの実現例において、対話するコントロールプレーンモジュール310(LTE MMEとPGW等)間のメッセージのシグナリングは、RATプロトコルから独立したプロトコルバッファを用いて実現することができる。RAT固有プロトコル(または通信トンネル)を用いて、仮想化されたモノリシックエンティティ(所与のRATに固有のモノリシックエンティティに対応)間の通信を実現するNFVベースの仮想化と比較して、RATプロトコルから独立したプロトコルバッファを用いることで、パケットコアシステムを、フレキシブルにかつスケーラブルにSDNで実現することができる。
【0033】
各ローカルSDNインフラストラクチャインスタンス310は、1つ以上のデータプレーンコントローラ320を含み得る。データプレーンコントローラ320は、コントロールプレーンモジュール310とUSPSインスタンス330との間の対話を仲介するように構成することができる。データプレーンコントローラ320は、コントロールプレーンモジュール310からのパケット処理要求を受けこの要求をUSPSインスタンス330に転送するように構成することができる。データプレーンコントローラ320は、コントロールプレーンモジュール310とRAT独立インターフェイスを通して通信するように構成することができる。いくつかの実現例において、RAT独立インターフェイスは、ルールに基づくRAT独立構成言語を用いて実現することができる。ルールは、マッチングフィルタと1つ以上の命令とを含み得る。マッチングフィルタは、マッチングされたときに1つ以上の命令が各データパケットに適用される1つ以上のパケットヘッダフィールドを示してもよい。いくつかの実現例において、各ルールはそれぞれの識別子に対応付けることができる。たとえば、各ルールは、それぞれの識別子を有するテーブル等(それぞれのマッチングフィルタおよび1つ以上の命令を含む)のデータ構造内に格納することができる。そのような実現例において、コントロールプレーンモジュール310およびデータプレーンモジュール320は、それぞれの識別子を送信することによってルールを相互にシグナリングすることができる。
【0034】
データプレーンコントローラ320は、コントロールプレーンモジュール310からルールアップデートを受けるように構成することができる。ルールアップデートを受けると、データプレーンコントローラ320は、どのUSPSインターフェイス330にルールアップデートを適用するかを決定してそのアップデートを決定したUSPSインスタンス330に転送することができる。いくつかの実現例において、データプレーンコントローラ320は、対応付けられたUSPSインスタンスルールをマッピングする(テーブル等の)データ構造を維持することができる。このような実現例において、データプレーンコントローラ320は、受信したルールアップデートを適用するUSPSインスタンスを、維持されたデータ構造に基づいて決定することができる。また、データプレーンコントローラ320は、USPSインスタンス330からのカウンターレポートを受信し、カウンターレポートを受けるコントロールプレーンモジュール310を決定し、カウンターレポートを決定したコントロールプレーンモジュール310に転送するように構成することができる。レポートされたカウンタは、入力データ量、出力データ量、クラシファイア(classifier)マッチ、廃棄されたパケット、カプセル化または脱カプセル化イベント等のフローアクション施行イベント、またはその組合わせに、対応付けることができる。データプレーンコントローラは、イベントをUSPSインスタンス330から受け、受けたイベントをコントロールプレーンモジュール310に転送するように構成することができる。また、データプレーンコントローラ320は、コントロールプレーンモジュールおよびUSPSインスタンス320に対するハートビートを維持するように構成することができる。すなわち、データプレーンコントローラ320は、活性検査を実行することにより、コントロールプレーンモジュール310のヘルスをモニタリングしそれぞれのヘルスステータスを用いることで故障条件を扱うように構成することができる。たとえば、データプレーンコントローラ320は、不活性コントロールプレーンモジュール310に対応付けられたフロールールを排出するように構成することができる。
【0035】
各ローカルSDNインフラストラクチャインスタンスは、複数のデータプレーンインスタンス330を含み得る。いくつかの実現例において、各データプレーンインスタンス330は、それぞれのコンピュータデバイス115で実行することができる。いくつかの実現例において、各データプレーンインスタンス330は、コンフィギュレーションモジュール334と複数のバックエンドデータプレーンモジュール(パケット処理エンジンとも呼ぶ)338とを含み得る。コンフィギュレーションモジュール334は、データプレーンコントローラ320と対話するように構成することができる。特に、コンフィギュレーションモジュール334は、データプレーンコントローラ320から受けたパケット処理要求を、データプレーンモジュール338固有のコンフィギュレーションに変換することができる。たとえば、コンフィギュレーションモジュール334は、データプレーンコントローラから受けたルール(またはその表示)を、バックエンドデータプレーンモジュール338によって実行されることになるパケット修正プロセス(またはその表示)に変換することができる。いくつかの実現例において、パケット修正プロセスは、バックエンドデータプレーンモジュール338’に固有の修正テーブルを通して示すことができる。このような実現例において、コンフィギュレーションモジュール334は、データプレーンコントローラ320から受けたルールテーブル識別子を、バックエンドデータプレーンモジュール338固有の修正テーブル(またはその表示)にマッピングすることができる。各修正テーブルは、データパケットに対して実行されるべき1つ以上のプロセスを示すことができる。各修正テーブルは、データパケットに対して実行されるべき1つ以上のプロセスを示すことができる。
【0036】
各USPSインスタンス330は、複数のバックエンドデータプレーンモジュール338を含み得る。いくつかの実現例において、各バックエンドデータプレーンモジュール338は、パケット処理要素の集合体を含み得る。このパケット処理要素の集合体は、順番に(または「パイプライン」状に)配置しデータパケットを順次処理するように構成することができる。いくつかの実現例において、それぞれのバックエンドデータプレーンモジュール内のパケット処理要素は、プッシュプルインターフェイスを通して互いに対話するように構成することができる。すなわち、パケット処理要素は、1つ以上の他のパケット処理要素からデータパケットをプル(pull)しおよび/またはデータパケットを1つ以上の他のパケット処理要素にプッシュ(push)するように構成することができる。
【0037】
図4は、バックエンドデータプレーンモジュール400の実現を説明するブロック図を示す。データプレーンモジュール400は、入口要素410と、1つ以上のプロトコル固有処理要素420と、パケットスケジューリング要素430と、出口要素450とを含み得る。入口要素410、プロトコル固有処理要素420、パケットスケジューリング要素430、および出口要素440は、バックエンドデータプレーンモジュール400により維持される(またはアクセス可能な)データ構造に基づいてデータパケットを処理するように構成されたソフトウェア要素として実現することができる。
【0038】
入口要素410は、たとえばローカルロードバランサまたはコントロールプレーンモジュール310からデータパケットを受信するように構成することができる。入口要素410は、受信したデータパケットの次の宛先を、データパケットの宛先IPアドレスおよび/またはデータパケットに対応付けられたその他の情報に基づいて、判断することができる。たとえば、入口要素410は、第3層(L3)、第4層(L4)、第7層(L7)またはこれらの組合わせに対応付けられたデータパケット情報を用いて、受信したデータパケットの次の宛先を判断することができる。入口要素410は、入口demuxテーブル等の各入口データ構造にアクセスすることができる。入口要素410は、入口データ構造を用いて、受信したデータパケットの次の宛先を判断するように構成することができる。入口データ構造は、データパケットフィールド値(IP宛先アドレスまたはその他のヘッダフィールド値)を宛先エンティティにマッピングするように構成することができる。入口データ構造に基づいて、入口要素410は、受信したデータパケットが別のコンピュータデバイス115によって処理される予定であると判断することができ、その場合、入口要素は、データパケットを、他のコンピュータデバイス115に送信するために出口要素440に転送することができる。入口要素410は、データパケットがバックエンドデータプレーンモジュール400内で処理される予定であると判断する場合、データパケットを、データパケットを処理するためのプロトコル固有要素に転送することができる。場合によっては、入口要素410は、受信したデータパケットを、入口データ構造に基づいてコントロールプレーンモジュール310に転送することができる。
【0039】
バックエンドデータプレーンモジュール400は、異なるプロトコルに対応付けられた複数のプロトコル固有処理要素420を含み得る。プロトコル固有処理要素420は、LTEおよび公共WiFi等の異なるRATに対応付けることができる。プロトコル固有要素420は、GPRSトンネリングプロトコル(GTP)処理要素、トラフィックフローテンプレート(traffic flow template:TFT)処理要素、またはその他のプロトコル固有処理要素を含み得る。GTP処理要素は、GTPカプセル化データパケットを受信しそれぞれのトンネルエンドポイント識別子(tunnel endpoint identifier:TEID)を用いてそれぞれのサブスクライバ情報を判断するように構成することができる。GTP処理要素は、GTP TEIDデータ構造(GTP TEIDルックアップテーブル等)を用いてサブスクライバ情報を判断することができる。GTP TEIDデータ構造は、各TEIDをそれぞれのサブスクライバセッション/ベアラ(bearer)にマッピングするように構成することができる。GTP処理要素は、1つ以上のデータパケットカウンタを更新し、GTPヘッダを脱カプセル化し、データパケットをさらに処理するためにまたは出口要素440に送るために待ち行列に入れるように、構成することができる。
【0040】
TFT処理要素は、TFTルックアップテーブルにアクセスすることができる。TFTルックアップテーブルは、TFT仕様をそれぞれのサブスクライバ/ベアラにマッピングするように構成することができる。TFT仕様は、それぞれのデータフローに対応付けられた1つ以上のルールを規定する。TFT処理要素は、IPデータパケットを受けそれぞれのサブスクライバセッション/ベアラをTFTテーブルに基づいて識別するように構成することができる。サブスクライバセッション/ベアラを識別すると、TFT処理要素は、1つ以上のデータパケットカウンタを更新し、GTPヘッダをカプセル化し、データパケットをそれぞれのサービス品質(quality of service:QoS)に基づいて適切な待ち行列に入れることができる。
【0041】
プロトコル固有処理要素は、分散型SDNパケットコアシステムによりサポートされるRATによって使用されるプロトコルに応じて、汎用ルーティングカプセル化(GRE)処理要素、汎用ユーザデータグラムプロトコル(UDP)カプセル化(GUE)処理要素、またはその他の処理要素を含み得る。
【0042】
パケットスケジューリング要素430は、プロトコル固有処理要素420に対応付けられた多数の待ち行列からデータパケットを取得し、そのデータパケットを、たとえばネットワークインターフェイスカード(network interface card:NIC)に送信するために出口要素440に送るように構成することができる。いくつかの実現例において、パケットスケジューリング要素430は、ラウンドロビンスケジューラに従って動作するように構成することができる。いくつかの実現例において、パケットスケジューリング要素430は、各QoSに基づいてデータパケットをスケジューリングするように構成することができる。すなわち、パケットスケジューリング要素430は、その他のデータパケットに対し比較的高いQoSのデータパケット(またはそれぞれの待ち行列)を優先させるように構成することができる。
【0043】
出口要素440は、データパケットを入口要素からまたはパケットスケジューリング要素出力430から受け、それらのパケットをたとえばネットワークインターフェイスカード(NIC)に出力するように構成することができる。出口要素440は、転送情報ベース(forwarding information base:FIB)ルックアップテーブルおよびアドレス解決プロトコル(address resolution protocol:ARP)ルックアップテーブル等の近隣テーブルにアクセスすることができる。FIBルックアップテーブルにおいて、各エントリは、近隣ルックアップテーブルにおける次のホップエントリを指す。ARPルックアップテーブルは、ネットワークアドレス(IPv4アドレス等)をイーサネット(登録商標)アドレス(またはMACアドレス)等の物理アドレスに変換するために使用することができる。このため、出口要素440は、FIBおよびARPルックアップテーブルに基づいて、受信したデータパケットにイーサネットヘッダを追加するように構成することができる。そうすると、出口要素440はデータパケットをネットワークインターフェイスカード(NIC)に送信することができる。いくつかの実現例において、コントロールプレーンモジュール110は、FIBルックアップテーブルのエントリがプログラミングされて所与のタイプの処理(GTP処理等)が指定されたヘッダフィールド値を有するデータパケットに適用されるようにすることができる。
【0044】
図面に示されるソフトウェア要素は、バックエンドデータプレーンモジュール400または338の例示的であるが限定しない実現例を説明している。たとえば、2つ以上の要素(パケットスケジューリング要素430および出口要素440等)を組合わせて1つのソフトウェア要素にしてもよい。また、
図4に示されるソフトウェア要素のうちの1つ以上を、複数のソフトウェア要素に分割してもよい。バックエンドデータプレーンモジュール400または338は、分散型SDNパケットコアシステムによってサポートされるRATもしくはプロトコルに応じて、または、バックエンドデータプレーンモジュール400または338の実装に応じて、その他のソフトウェア要素(
図4に関して説明したもの以外)を含み得る。
【0045】
本明細書に記載の主題および動作の実装は、デジタル電子回路において、または、本明細書に開示されている構造およびそれらの構造的均等物を含む有形の媒体、ファームウェア、もしくはハードウェア上で実現されるコンピュータソフトウェアにおいて、または、これらのうちの1つ以上を組合わせたものにおいて、実現することができる。本明細書に記載の主題の実装は、有形の媒体上で実現される1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるためにまたはデータ処理装置の動作を制御するために1つ以上のコンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の1つ以上のモジュールとして、実現することができる。コンピュータ記憶媒体は、コンピュータ読取可能な記憶媒体、コンピュータ読取可能な記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、これらのうちの1つ以上を組合わせたものであってもそれに含まれていてもよい。コンピュータ記憶媒体はまた、1つ以上の別々のコンポーネントまたは媒体(たとえば複数のCD、ディスク、もしくはその他の記憶装置)であってもそれに含まれていてもよい。コンピュータ記憶媒体は、有形で非一時的なものであってもよい。
【0046】
本明細書に記載の動作は、データ処理装置により、1つ以上のコンピュータ読取可能記憶装置に格納されているかまたはその他のソースから受けたデータに対して実行される動作として実現することができる。プロセスおよび論理フローは、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置は、上記専用論理回路として実現することもできる。
【0047】
本明細書は多くの具体的な実現詳細を含んでいるが、これらは、あらゆる発明の範囲または請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ、特定の発明の特定の実現例に特有の特徴の説明として解釈されるべきである。この明細書で別々の実現例の文脈において説明されたある特徴はまた、単一の実現例において組合されて実現され得る。反対に、単一の実現例の文脈において説明されたさまざまな特徴はまた、複数の実現例において別々に、または任意の好適な部分的組合せで実現され得る。また、特徴はある組合せで作用するとして上述され、さらには、そのようなものとして当初請求され得るものの、請求される組合せからの1つ以上の特徴が、場合によってはその組合せから削除されることがあり、また、請求される組合せが部分的組合せに、または部分的組合せの変形に向けられることがある。反対に、単一の実現例の文脈において説明されたさまざまな特徴はまた、複数の実現例において別々に、または任意の好適な部分的組合せで実現され得る。また、特徴はある組合せで作用するとして上述され、さらには、そのようなものとして当初請求され得るものの、請求される組合せからの1つ以上の特徴が、場合によってはその組合せから削除されることがあり、また、請求される組合せが部分的組合せに、または部分的組合せの変形に向けられることがある。
【0048】
「または」という用語への言及は、「または」を用いて説明された任意の用語が、説明された用語のうちの1つ、2つ以上、およびすべてのいずれかを示すように、包括的なものとして解釈され得る。「第1」、「第2」、「第3の」などといった表示は必ずしも順序を示すよう意図されてはおらず、一般に、同じまたは同様の品目または要素を単に区別するために使用される。
【0049】
このように、主題の特定の実現例が説明されてきた。他の実現例は、請求の範囲内にある。場合によっては、請求項に記載されたアクションは、異なる順序で行なうことができ、依然として望ましい結果を達成することができる。加えて、添付図面に示されたプロセスは必ずしも、望ましい結果を達成するために、図示された特定の順序または順番を必要とはしない。ある実現例では、マルチタスキングまたは並列処理が使用され得る。