特許第6087444号(P6087444)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルカテル−ルーセントの特許一覧

特許6087444ソフトウェアで定義されたネットワークオーバーレイ
<>
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000005
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000006
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000007
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000008
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000009
  • 特許6087444-ソフトウェアで定義されたネットワークオーバーレイ 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6087444
(24)【登録日】2017年2月10日
(45)【発行日】2017年3月1日
(54)【発明の名称】ソフトウェアで定義されたネットワークオーバーレイ
(51)【国際特許分類】
   H04L 12/70 20130101AFI20170220BHJP
【FI】
   H04L12/70 D
【請求項の数】9
【全頁数】32
(21)【出願番号】特願2015-545112(P2015-545112)
(86)(22)【出願日】2013年11月22日
(65)【公表番号】特表2016-504837(P2016-504837A)
(43)【公表日】2016年2月12日
(86)【国際出願番号】US2013071365
(87)【国際公開番号】WO2014085207
(87)【国際公開日】20140605
【審査請求日】2015年7月28日
(31)【優先権主張番号】13/691,317
(32)【優先日】2012年11月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】ハンペル,ゲオルク
(72)【発明者】
【氏名】シュタイナー,モリッツ
(72)【発明者】
【氏名】ブー,ティエン
【審査官】 大石 博見
(56)【参考文献】
【文献】 国際公開第2012/160465(WO,A1)
【文献】 国際公開第2012/023538(WO,A1)
【文献】 米国特許出願公開第2012/0099591(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70
(57)【特許請求の範囲】
【請求項1】
プロセッサと、プロセッサに通信可能に接続されたメモリと、
を備え、プロセッサが、
データフローのためのデータフロー定義を決定することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む、データフロー定義を決定することと、
転送要素においてデータフローに対して実行されるアクションの組を決定することであって、アクションの組が、少なくとも1つのトンネリングアクションと少なくとも1つのセキュリティアクションを含み、少なくとも1つのトンネリングアクションが、複数のカプセル化アクションの組または複数の非カプセル化アクションの組の少なくとも一方を含み、少なくとも1つのセキュリティアクションがセキュリティプロトコルに関連付けられ及びカプセル化アクションまたは非カプセル化アクションの少なくとも一方を含み、
複数のカプセル化アクションの組が、トンネリングカプセル化アクション、トランスポート層カプセル化アクション、及びネットワーク層カプセル化アクションを含み、
複数の非カプセル化アクションの組が、ネットワーク層非カプセル化アクション、トランスポート層非カプセル化アクション、及びトンネリング非カプセル化アクションを含む、アクションの組を決定することと、
転送要素に向けて、データフロー定義とアクションの組とについて示す制御情報を伝搬することと、
を行うように構成されている、装置。
【請求項2】
プロセッサが、
データフローに関連する情報を受信することと、
データフローに関連する情報に基づいて、データフロー定義またはアクションの組の少なくとも一方を決定することと、
を行うように構成されている、請求項1に記載の装置。
【請求項3】
プロセッサが、
制御情報が伝搬される転送要素を識別する
ように構成されている、請求項1に記載の装置。
【請求項4】
少なくとも1つのトンネリングアクションが、データフローのパケットをトンネルの中に移動させること、データフローのパケットをトンネル間で移動させること、またはデータフローのパケットをトンネルの外に移動させることのうちの少なくとも1つのために構成されている、請求項1に記載の装置。
【請求項5】
少なくとも1つのトンネリングアクションが、データフローのパケットをネイティブ転送インフラストラクチャからトンネルの中に移動させること、またはパケットをトンネルからネイティブ転送インフラストラクチャに移動させることのうちの少なくとも1つのために構成されている、請求項1に記載の装置。
【請求項6】
少なくとも1つのトンネリングアクションがカプセル化アクションの組を備え、制御情報が、データフローのパケットをカプセル化するために使用されるプロトコルについての指示と、データフローのパケットをカプセル化するために使用される少なくとも1つのプロトコルヘッダフィールドについての指示とを含む、請求項1に記載の装置。
【請求項7】
少なくとも1つのトンネリングアクションが非カプセル化アクションの組を備え、制御情報が、データフローのパケットがそれから非カプセル化されるプロトコルについての指示を備える、請求項1に記載の装置。
【請求項8】
プロセッサとメモリを、
データフローのためのデータフロー定義を決定することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む、データフロー定義を決定することと、
転送要素においてデータフローに対して実行されるアクションの組を決定することであって、アクションの組が、少なくとも1つのトンネリングアクションと少なくとも1つのセキュリティアクションを含み、少なくとも1つのトンネリングアクションが、複数のカプセル化アクションの組または複数の非カプセル化アクションの組の少なくとも1つを含み、少なくとも1つのセキュリティアクションがセキュリティプロトコルに関連付けられ及びカプセル化アクションまたは非カプセル化アクションの少なくとも一方を含み、
複数のカプセル化アクションの組が、トンネリングカプセル化アクション、トランスポート層カプセル化アクション、及びネットワーク層カプセル化アクションを含み、
複数の非カプセル化アクションの組が、ネットワーク層非カプセル化アクション、トランスポート層非カプセル化アクション、及びトンネリング非カプセル化アクションを含む、アクションの組を決定することと、
転送要素に向けて、データフロー定義とアクションの組とについて示す制御情報を伝搬することと、
のために使用すること、
を含む、方法。
【請求項9】
プロセッサと、プロセッサに通信可能に接続されたメモリと、
を備え、プロセッサが、
転送要素において、制御要素から、データフローのためのデータフロー定義と、転送要素においてデータフローに対して実行されるアクションの組とを含む制御情報を受信することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含み、アクションの組、少なくとも1つのトンネリングアクションと少なくとも1つのセキュリティアクションを含み、少なくとも1つのトンネリングアクションが、複数のカプセル化アクションの組または複数の非カプセル化アクションの組の少なくとも1つを含み、少なくとも1つのセキュリティアクションがセキュリティプロトコルに関連付けられ及び暗号化アクションまたは復号アクションの少なくとも一方を含み、
複数のカプセル化アクションの組が、トンネリングカプセル化アクション、トランスポート層カプセル化アクション、及びネットワーク層カプセル化アクションを含み、
複数の非カプセル化アクションの組が、ネットワーク層非カプセル化アクション、トランスポート層非カプセル化アクション、及びトンネリング非カプセル化アクションを含む、制御情報を受信することと、
データフローのパケットを制御情報に基づいて処理することと、
を行うように構成されている、装置。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に通信ネットワークに関し、より具体的には、通信ネットワークを介したトンネリングをサポートすることに関するが、これには限定されない。
【背景技術】
【0002】
一般に、高帯域効率、低コスト、頑健性、および拡張性などの固有の長所を有する、インターネットプロトコル(IP)は、通信ネットワークにわたるデータ伝送のために通常使用される一般的なプロトコルになった。しかしながら、多くの場合で、IPは、また、IPの位置ベースのルーティングがユーザの移動性との適合性を欠いていること、IPのベストエフォートによる転送が、サービス特有の課金とサービス品質(QoS)の実施とを行う差別化サービスをサポートしていないこと、および仮想プライベートネットワーク(VPN)などのオーバーレイネットワークのためのサポートの欠如などの短所とも結び付く。
【0003】
少なくともいくつかの標準化団体(たとえば、Third Generation Partnership Project(3GPP)、3GPP2、Internet Engineering Task Force(IETE)、など)が、IP転送インフラストラクチャの上にオーバーレイネットワークを作成するためのプロトコル(たとえば、モバイルIP、ジェネリックトランスファープロトコル(GTP)、IPセキュリティ(IPsec)、など)を導入した一方、そのようなオーバーレイネットワークは、IP転送インフラストラクチャの上のオーバーレイネットワークを形成する、トンネルの端部を定める、多くの種類の特殊ノード(たとえば、ホームエージェント(HA)、フォーリンエージェント(FA)、無線ネットワーク制御局(RNC)、ノードB、サービングジェネラルパケットラジオサービス(GPRS)サポートノード(SGSN)、ゲートウェイGPRSサポートノード(GGSN)、eノードB、サービングゲートウェイ(SGW)、パケットデータネットワーク(PDN)ゲートウェイ(PGW)、モビリティマネジメントエンティティ(MME)、セキュリティゲートウェイ、他の種類のゲートウェイ、など)を導入する傾向がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
先行技術における様々な欠陥は、ソフトウェアで定義されたネットワークオーバーレイをサポートするための実施形態によって対処され得る。
【課題を解決するための手段】
【0005】
一実施形態では、装置は、プロセッサと、プロセッサに通信可能に接続されたメモリとを含む。プロセッサは、データフローのためのデータフロー定義を決定するように構成され、データフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルは、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む。プロセッサは、データフローに対して実行される、1つまたは複数のトンネリングアクションを決定するように構成され、1つまたは複数のトンネリングアクションは、カプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む。プロセッサは、転送要素に向けて、データフロー定義と1つまたは複数のトンネリングアクションとを示す制御情報を伝搬するように構成されている。装置は、制御要素または制御要素の一部であることができる。
【0006】
一実施形態では、方法は、プロセッサを、データフローのためのデータフロー定義を決定することと、データフローに対して実行される、1つまたは複数のトンネリングアクションを決定することと、転送要素に向けて、データフロー定義と1つまたは複数のトンネリングアクションとを示す制御情報を伝搬することと、のために使用することを含む。データフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルは、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む。1つまたは複数のトンネリングアクションは、カプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む。
【0007】
一実施形態では、装置は、プロセッサと、プロセッサに通信可能に接続されたメモリとを含む。プロセッサは、制御情報を制御要素から受信するように構成されている。制御情報は、データフローのためのデータフロー定義と、データフローに対して実行される、1つまたは複数のトンネリングアクションとを含む。データフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づいている。1つまたは複数のプロトコルは、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む。1つまたは複数のトンネリングアクションは、カプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む。プロセッサは、データフローのパケットを制御情報に基づいて処理するように構成されている。装置は、転送要素または転送要素の一部であることができる。
【0008】
一実施形態では、方法は、プロセッサを、データフローのパケットを処理するために使用することを含む。方法は、制御情報を制御要素から受信することを含む。制御情報は、データフローのためのデータフロー定義と、データフローに対して実行される、1つまたは複数のトンネリングアクションとを含む。データフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づいている。1つまたは複数のプロトコルは、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む。1つまたは複数のトンネリングアクションは、カプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む。方法は、データフローのパケットを制御情報に基づいて処理することを含む。
【0009】
本明細書の内容は、添付図面と併用する以下の詳細な説明を考察することによって、より容易に理解され得る。
【図面の簡単な説明】
【0010】
図1】ソフトウェアで定義されたオーバーレイネットワークをサポートするように構成された例示的な通信システムの図である。
図2図1の例示的な通信システムの要素間の例示的なトンネリングの図である。
図3】例示的な通信システムの要素間の例示的なトンネリングの図である。
図4】転送要素をソフトウェアで定義されたオーバーレイネットワーク中に構成するための、制御要素によって使用される方法の一実施形態を示す図である。
図5】データフローのパケットをソフトウェアで定義されたオーバーレイネットワーク中で処理するための、転送要素によって使用される方法の一実施形態を示す図である。
図6】本明細書で説明される機能の実行に使用するために適切なコンピュータの上位ブロック図である。
【発明を実施するための形態】
【0011】
理解を促進するために、可能であれば、図で共通している同一要素を示すために同じ参照番号が使用される。
【0012】
一般に、ソフトウェアで定義されたネットワークオーバーレイの機能が、本明細書で図示され説明される。
【0013】
少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、1つまたは複数のソフトウェアで定義されたオーバーレイネットワークを形成するために、ソフトウェアで定義されたネットワーク構築(SDN)を、通信インフラストラクチャを介して提供される1つまたは複数のオーバーレイネットワークに適用するように構成されている。
【0014】
少なくともいくつかの実施形態では、SDNは、コントロールプレーンがデータプレーンから分離され、トラフィックのフローベースの転送がサポートされている種類のネットワークである。SDNでは、データプレーンは1つまたは複数の転送要素(たとえば、スイッチ、ルータ、など)を使用して実装され、コントロールプレーンは、転送要素から分離している、1つまたは複数の制御要素(たとえば、サーバなど)を使用して実装される。制御要素は、フローベースの転送ルールを転送要素に与える。コントロールプレーン機能とフォーワーディングプレーン機能との分離は、コントロールプレーン機能を取り扱うために最適化された制御要素(たとえば、新機能のセットをサポートするために更新されるように構成された要素)と、データプレーン機能を取り扱うために最適化された転送要素(たとえば、高いデータスループットをサポートするように構成されたハードウェアベースの要素)との使用を可能にする。オーバーレイネットワークを使用する通信システムが、通常、オーバーレイネットワークのない通信システムよりも少ない転送ノードを有するとすれば、SDNと関連し得る規模に関する限界は取り除かれると予測されることが理解される。
【0015】
少なくともいくつかの実施形態では、オーバーレイネットワークは、その上にオーバーレイネットワークが提供される下部のネットワークインフラストラクチャによって提供すること(または容易に提供すること)ができないことがある拡張機能をサポートするために、トンネリングを利用する種類のネットワークである。たとえば、オーバーレイネットワークは、サービスの差別化(たとえば、異なるトラフィックフローまたは異なる種類のトラフィックフローについての、異なるサービス品質による取扱い、異なるトラフィックフローまたは異なる種類のトラフィックフローについての、異なるポリシーまたは課金機能の適用など、およびそれらの様々な組合せ)、セキュリティ機能、移動性機能、仮想プライベートネットワーク(VPN)、などをサポートするために使用され得る。多くの種類のオーバーレイネットワークが様々な他の機能を提供する。オーバーレイネットワークが、そのような機能を提供するために、カプセル化アクション/非カプセル化アクションの使用を含み得る、トンネリングを利用することができるということが理解される。少なくともいくつかの実施形態では、オーバーレイネットワークは、ネットワーク層における1つまたは複数のプロトコル、トランスポート層における1つまたは複数のプロトコル、1つまたは複数の、ネットワーク層プロトコルまたはトランスポート層プロトコルと連動して動作するように構成された、1つまたは複数のプロトコル、などを使用して提供され得る。オーバーレイネットワークを提供するために使用され得るプロトコルの例は、インターネットプロトコル(IP)(たとえば、IPv4、IPv6、IPv6拡張ヘッダ、など)、Generic Routing Encapsulation(GRE)、General Packet Radio Service(GPRS)トンネリングプロトコル(GTP)、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル(TCP)、ストリームコントロールトランスミッションプロトコル(SCTP)、データグラムコンジェスチョンコントロールプロトコル(DCCP)、IPセキュリティ(IPsec)プロトコルスイートのEncapsulating Security Payload(ESP)プロトコル、IPsecプロトコルスイートの認証ヘッダ(AH)プロトコル、などを含む。
【0016】
少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、制御機能と転送機能とが分離されているソフトウェアで定義されたネットワーク構築(SDN)を使用する、1つまたは複数のオーバーレイネットワークを制御するように構成され得る。少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、パケットをネットワークの層にわたって垂直、たとえば、オーバーレイネットワークの中に(たとえば、カプセル化を介してトンネルの中に)、オーバーレイネットワークの外に(たとえば、非カプセル化を介してトンネルの外に)などに移動させるように構成され得る。少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、パケットを、ネイティブ転送インフラストラクチャからオーバーレイネットワークの中に、オーバーレイネットワーク間で(たとえば、第2のオーバーレイネットワークを離れずに、第2のオーバーレイネットワークから第1のオーバーレイネットワークの中に、第1のオーバーレイネットワークから第2のオーバーレイネットワークの中に、第2のオーバーレイネットワーク内に留まりながら第1のオーバーレイネットワークの外に、など)、オーバーレイネットワークからネイティブ転送インフラストラクチャに、などに移動させるように構成され得る。
【0017】
少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、少なくとも1つのコントローラが、特定のフローに適用される、特定のカプセル化動作または非カプセル化動作について、少なくとも1つの転送要素をプログラムすることを可能にする。コントローラは、さらに、異なるカプセル化動作または非カプセル化動作を各フローに適用するように転送要素に伝え、それによって、細かい粒度を有するフローベースのトンネリングを介してネットワーク全体に及ぶトラフィック管理を実施することができる。
【0018】
少なくとも1つの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、少なくとも1つのコントローラが、特定のフローに適用される、特定のカプセル化動作または非カプセル化動作を選択された転送要素によってプログラミングするために、転送要素のセットから少なくとも1つの転送要素を選択することを可能にする。
【0019】
少なくともいくつかの実施形態では、ソフトウェアで定義されたネットワークオーバーレイの機能は、パケットの外側IPヘッダの下で運ばれるヘッダの追加と削除とを可能にすることによって、IPの上のカプセル化動作と非カプセル化動作とに適用される。これにより、トンネルを広域的に、たとえば、通信サービスプロバイダネットワークにわたって、複数の通信サービスプロバイダネットワークにわたって、またはさらにインターネット全体にわたって、伸ばすことができる。
【0020】
ソフトウェアで定義されたネットワークオーバーレイの機能が、通信インフラストラクチャを介して定義されるオーバーレイネットワークの使用をサポートするように構成されている通信システムのいずれにも適用され得る一方、ソフトウェアで定義されたネットワークオーバーレイの機能の様々な態様を説明する際の明確さのために、本明細書では、ソフトウェアで定義されたネットワークオーバーレイの機能は、ソフトウェアで定義されたネットワークオーバーレイの機能を使用するように構成されたLong Term Evolution(LTE)Evolved Packet Core(EPC)ネットワークの関連において主に図示され、説明されることが理解される。
【0021】
図1は、ソフトウェアで定義されたオーバーレイネットワークをサポートするように構成された例示的な通信システムを示している。
【0022】
例示的な通信システム100は、典型的なLET EPCネットワークがソフトウェアで定義されたオーバーレイネットワークをサポートするように修正された、修正LTE EPCネットワークを含む。
【0023】
例示的な通信システム100は、Evolved−Universal Mobile Telecommunications System(UMTS)Terrestrial Radio Access Network(E−UTRAN)110と、モビリティマネジメントエンティティ(MME)120と、ホーム加入者サーバ(HSS)130と、ポリシーおよび課金ルール機能(PCRF)140と、サービングゲートウェイ(SGW)機能151とパケットデータネットワーク(PDN)ゲートウェイ(PGW)機能152とを含む制御要素(CE)150と、一組の転送要素(FE)160および160(総称してFE160)と、通信ネットワーク170とを含む。LTE EPCネットワーク内でのE−UTRAN110と、MME120と、HSS130と、PCRF140との通常動作は、当業者によって理解される。
【0024】
例示的な通信システム100は、上記の通り、修正LTE EPCネットワークである。典型的なLTE EPCネットワークが、サービングゲートウェイ(SGW)とパケットデータネットワーク(PDN)ゲートウェイ(PGW)とを含むことが理解される。例示的な通信システム100では、SGWは、コントロールプレーン機能(例示的には、CE150のSGW機能151)とユーザプレーン機能(例示的には、E−UTRAN110とFE160との間に配置されたFE160)とに分けられる。同様に、例示的な通信システム100では、PGWは、コントロールプレーン機能(例示的には、CE150のPGW機能152)とユーザプレーン機能(例示的には、FE160と通信ネットワーク170との間に配置されたFE160)とに分けられる。
【0025】
例示的な通信システム100は、例示的な通信システム100の要素間の通信をサポートする様々なインターフェースを含む。E−UTRAN110およびMME120は、S1−MMEインターフェースを介して通信するように構成されている。MME120およびHSS130は、S6aインターフェースを介して通信するように構成されている。MME120およびCE150は、S11インターフェースを介して通信するように構成され、PCRF140およびCE150は、Gxインターフェースを介して通信するように構成されている。E−UTRAN110およびSGW機能150に関連するFE160は、S1−Uインターフェースを介して通信するように構成され、SGW機能150に関連するFE160およびPGW機能150に関連するFE160は、S5−Uインターフェースを介して通信するように構成され、PGW機能150に関連するFE160および通信ネットワーク170は、SGiインターフェースを介して通信するように構成されている。図1の例示的な通信システム100では、CE150およびFE160は(図1ではxOFとして示されている)修正OpenFlowインターフェースを介して通信するように構成されている。
【0026】
CE150およびFE160は、通常EPCネットワークのSGWとPGWとによって提供されるトンネリング機能の、SDNベースの実装を提供するために協働するように構成され得る。
【0027】
CE150およびFE160は、トンネリングを例示的な通信システム100のデータフローに提供するために協働するように構成され得る。
【0028】
CE150およびFE160は、所与のデータフローに、1つまたは複数のオーバーレイネットワーク(またはトンネル)に対するデータフローの動きを提供するために協働するように構成され得る。たとえば、CE150は、所与のデータフローについて、データフローが、トンネルの中に(たとえば、ネイティブ転送インフラストラクチャから、データフローのパケットのカプセル化を介してオーバーレイネットワークの中に移動させる、第1のオーバーレイネットワークから、データフローのパケットのカプセル化を介して第2のオーバーレイネットワークの中に移動させる、など)、トンネル間で(たとえば、第1のオーバーレイネットワークから、データフローのパケットの非カプセル化を介して取り出し、次いでデータフローのパケットのカプセル化を介して第2のオーバーレイネットワークの中に移動させる、など)、トンネルの外に(たとえば、データフローがまだ1つまたは複数の他のオーバーレイネットワーク内に留まっている時に、オーバーレイネットワークから、データフローのパケットの非カプセル化を介して取り出す、オーバーレイネットワークから、データフローのパケットの非カプセル化を介してネイティブ転送インフラストラクチャに移動させる、など)など、およびそれらの様々な組合せに移動させるかどうかを決定するように構成され得る。
【0029】
CE150は、1つまたは複数のオーバーレイネットワーク(またはトンネル)に対するデータフローの動きを制御するように構成され得、FE160は、CE150の制御のもとで、1つまたは複数のオーバーレイネットワーク(またはトンネル)に対するデータフローの動きを実行するように構成され得る。CE150は、所与のデータフローについて、1つまたは複数のオーバーレイネットワークに対するデータフローの動きを制御するために、データフローに対してトンネリングアクションを適用することを制御するように構成され得る。
【0030】
CE150は、所与のデータフローに関連する情報を受信するように構成され得る。情報は、データフローに対して1つまたは複数のトンネリングアクションを実行するように、CE150にFE160への指示をするようトリガする際に使用するために適切な情報を含むことができる。データフローに関連する情報は、1つまたは複数のアプリケーションのための、アプリケーションに関連する情報を含むことができる。たとえば、以下の通り、アプリケーション→ネットワークOS→転送インフラストラクチャという3つの層を含むSDNでは、FE160は転送インフラストラクチャ層の一部として実装され得、CE150はネットワークOS層の一部として実装され得、アプリケーションは、CE150へのインターフェース(たとえば、オペレーション、アドミニストレーション、およびメンテナンス(OAM)インターフェース、または他の適切な種類のインターフェース)を使用して実装され得る。例示的な通信システム100では、たとえば、アプリケーションはMME120上に存在し、E−UTRAN110に関連する加入者のために(データフローをサポートするための)Evolved Packet System(EPS)ベアラをインストールするように、CE150に指示することができる。本実施例では、アプリケーションは、また、EPSベアラ(またはデータフロー)に関連する情報(たとえば、トンネル端部識別子(TEID)、加入者IPアドレス、など)をCE150に提供することができる。本実施例では、CE150は、EPSベアラ(またはデータフロー)に関連する情報を、対応するデータフロー定義とデータフロー定義に関連するトンネリングアクションとに変換することができる。別の実施例として、CE150がMME120の一部として一体にされ得、その場合、MME120/CE150は、S1−MMEメッセージを、アプリケーションインターフェースを通して受信し、S1−MMEメッセージに基づいて(たとえば、E−UTRAN110に関連する加入者のために(関連データフローをサポートするために)EPSベアラをインストールするための)適切なアクションを起こすことに留意する。CE150は、データフローに関連する情報を受信するための、1つまたは複数のそのようなインターフェースをサポートするように構成され得る。
【0031】
CE150は、所与のデータフローについて、データフローのパケットに対してトンネリングアクションを実行するFE160を識別するように構成され得る。これは、データフローに関連する1つまたは複数のトンネルの識別を含むことができ、トンネルには、データフローをサポートするために作成されるトンネルと、データフローをサポートしている既存のトンネルなどと、それらの様々な組合せとを含むことができる。トンネルの識別は、トンネルの端部として機能することが予測されるノード、またはトンネルの端部として現在機能しているノードの識別を含むことができる。トンネルの識別は、トンネルのためのトンネル端部(たとえばFE160)の識別に基づくことができる。データフローのパケットの伝送のためにトンネリングを利用するオーバーレイネットワークという関連において、データフローは、1つのトンネルを介して、または2つ以上のトンネルの連結を介して伝送され得るということが理解される。
【0032】
たとえば、データフローが1つのトンネルを介して伝送される時、CE150は、(たとえば、トンネルがまだ確立されていない場合)データフローのためのトンネルのトンネル端部として機能することになる、または(たとえば、トンネルが存在する場合)データフローのためのトンネルのトンネル端部として現在機能している、2つのFE160を識別することができ、2つのFE160によって使用される制御情報のそれぞれのセットを定義して、トンネルのためのデータフローのパケットに対してカプセル化機能または非カプセル化機能を実行する。図1の例示的な通信システム100では、たとえば、CE150は、PGWとSGWとの間のトンネルのトンネル端部としてFE160とFE160とを識別することができる。
【0033】
たとえば、データフローが複数のトンネルを介して伝送される時、CE150は、複数のトンネルの各々について、(たとえば、トンネルがまだ確立していない場合)データフローのための各トンネルのトンネル端部として機能することになる、または(たとえば、トンネルが存在する場合)データフローのためのトンネルのトンネル端部として現在機能している、2つのFE160を識別することができ、2つのFE160によって使用される制御情報の各セットを定義して、各トンネルのデータフローのパケットに対してカプセル化機能または非カプセル化機能を実行することができる。図1の例示的な通信システムでは、たとえば、CE150は、PGWとSGWとの間の第1のトンネルのトンネル端部としてFE160とFE160とを識別することができ、SGWと(明確さのために省略されている)E−UTRAN110中のeNodeBとの間の第2のトンネルのトンネル端部としてFE160とE−UTRAN110内の別のFE(明確さのためにやはり省略されている)とを識別することができる。
【0034】
CE150は、所与のデータフローについて、データフローのための制御情報を定義し、1つまたは複数のFE160によって使用されるために、制御情報を1つまたは複数のFE160に伝えて、データフローの制御情報に基づいてデータフローのパケットに対して1つまたは複数のトンネリングアクションを実行するように構成され得る。
【0035】
FE160は、所与のデータフローについて、1つまたは複数のオーバーレイネットワークに対してデータフローの動きを実行するために、1つまたは複数のトンネリングアクションをデータフローに対して適用するように構成され得る。
【0036】
FE160は、所与のデータフローについて、データフローのための制御情報をCE150から受信し、データフローのための制御情報を格納し、データフローのための制御情報を使用してトンネリングアクションをデータフローに対して実行するように構成され得る。
【0037】
FE160は、所与のデータフローについて、パケットを受信し、パケットが関連するデータフローを決定し、パケットのデータフローに関連する1つまたは複数のトンネリングアクションを識別し、1つまたは複数のトンネリングアクションをデータフローのパケットに適用するように構成され得る。
【0038】
FE160は、パケットが関連するデータフローをパケットからの情報(たとえば、パケットの1つまたは複数のプロトコルヘッダフィールドの1つまたは複数のヘッダフィールド値)を使用することによって決定して、CE150から受信した制御情報に基づいて、FE160において維持されているデータフロー記録のセット内で一致するデータフロー定義を識別するように構成され得る。FE160は、(データフローを定義するために使用され得るヘッダフィールドの種類に関する記述中で示される、)1つまたは複数のIPヘッダフィールドと、1つまたは複数のUDPヘッダフィールドと、1つまたは複数のGTPヘッダフィールドなどと、それらの様々な組合せとに対してマッチングを実行するように構成され得る。
【0039】
FE160は、(たとえば、FE160において維持されているデータフロー記録が、データフローのためのデータフロー定義の、データフローのパケットに対して実行される1つまたは複数のトンネリングアクションへのマッピングを含む場合、)パケットのデータフローに関連する1つまたは複数のトンネリングを、パケットからの情報に一致するデータフロー定義を有するデータフロー記録に基づいて識別するように構成され得る。
【0040】
FE160は、データフローに関連するデータフロー記録から識別された1つまたは複数のトンネリングアクションの処理に基づいて、1つまたは複数のトンネリングアクションをデータフローのパケットに適用するように構成され得る。
【0041】
制御情報は、データフローのためのデータフロー定義と、データフローに対して実行される1つまたは複数のトンネリングアクションとを含む。制御情報は、CE150からFE160に、SDNベースの制御プロトコルを使用して伝搬され得る。制御情報は、FE160によって、データフローに関連するデータフロー記録として維持され得、データフロー記録は、データフロー定義の、データフローに対して実行される1つまたは複数のトンネリングアクションへのマッピングを含む。
【0042】
データフローのためのデータフロー定義は、データフローのパケットを識別するためにFE160によって使用されるために構成される。データフロー定義は、IPヘッダ、UDPヘッダ、またはGTPヘッダのうちの1つまたは複数に基づくことができる。データフロー定義は、1つまたは複数のプロトコルヘッダフィールド(たとえば、1つまたは複数のIPヘッダフィールド、1つまたは複数のUDPヘッダフィールド、1つまたは複数のGTPヘッダフィールド、など、およびそれらの様々な組合せ)に基づくことができる。たとえば、データフロー定義は、送信元IPアドレスと、送信先IPアドレスと、プロトコルの種類と、送信元ポート番号と、送信先ポート番号とを含むIPヘッダフィールドの5タプルに基づくことができる。たとえば、データフロー定義は、UDPヘッダの送信元ポート番号フィールドと送信先ポート番号フィールドとに基づくことができる。たとえば、データフロー定義は、GTPヘッダのトンネル端部識別子(TEID)に基づくことができる。データフロー定義は、他の適切なプロトコルヘッダフィールドまたはプロトコルヘッダフィールドの組合せに基づくことができる。
【0043】
データフローに対する1つまたは複数のトンネリングアクションは、1つまたは複数のカプセル化アクションまたは1つまたは複数の非カプセル化アクションを含むことができる。
【0044】
データフローに対する1つまたは複数のカプセル化アクションは、データフローのパケットをトンネルの中に(たとえば、ネイティブ転送インフラストラクチャからトンネルの中に、第1のトンネルから第2のトンネルの中に、など)移動させることに使用され得る。
【0045】
少なくともいくつかの実施形態では、カプセル化アクションは、プロトコルの1つまたは複数のプロトコルヘッダフィールドをデータフローのパケットに追加することを含むことができる。少なくともいくつかの実施形態では、カプセル化アクションは、1つまたは複数のプロトコルヘッダフィールドの1つまたは複数のプロトコルヘッダフィールド値を設定することを含むことができる。少なくともいくつかの実施形態では、カプセル化アクションは、パケットチェックサムを計算することを含むことができる。少なくともいくつかの実施形態では、カプセル化アクションは、(たとえば、シーケンス番号フィールド値が、同じデータフローに対してカプセル化された以前のパケットに追加された、キャッシュされたシーケンス番号フィールド値に基づいて決定され得る場合、)シーケンス番号フィールド値をシーケンス番号フィールドに追加することを含むことができる。データフローに対する1つまたは複数のカプセル化アクションは、データフローのパケットをトンネルの中に移動させる際に使用するために適切な、他のカプセル化アクションを含むことができる。
【0046】
少なくともいくつかの実施形態では、カプセル化アクションは、実行されるカプセル化の種類を示す情報とカプセル化アクションを実行する際に使用する情報とを含むことができる、または関連して有することができる。たとえば、カプセル化アクションは、カプセル化が実行されるプロトコルと、パケットをカプセル化するために、パケットに加えられる1つまたは複数のプロトコルヘッダフィールドと、パケットをカプセル化するために、パケットに加えられる1つまたは複数のプロトコルヘッダフィールドに設定される、1つまたは複数のプロトコルヘッダフィールド値などと、それらの様々な組合せとを識別することができる。たとえば、カプセル化アクションは、また、パケットチェックサムの計算が実行されることを定めることができる。たとえば、カプセル化アクションは、また、シーケンス番号の追加が実行されることを定めることができる。図1の例示的な通信システムでは、たとえば、1つまたは複数のカプセル化アクションは、IPベースのカプセル化、UDPベースのカプセル化、GTPベースのカプセル化などのうちの1つまたは複数の使用を定めることができる。たとえば、CE150からFE160に通信されるIPベースのカプセル化アクションは、IPベースのカプセル化が実行されることを示す情報と、データフローのパケットに追加されるIPヘッダで使用される、1つまたは複数のIPヘッダフィールド値(たとえば、長さ値と、DSCP値と、識別値と、3ビットフラグフィールド値と、タイムトゥリブ(TTL)値と、送信元IPアドレスと、送信先IPアドレスと、他のIPヘッダフィールドとのうちの1つまたは複数)を含むことができる。たとえば、CE150からFE160に通信されるUDPベースのカプセル化アクションは、UDPベースのカプセル化が実行されることを示す情報と、データフローのパケットに追加されるUDPヘッダで使用される、1つまたは複数のUDPヘッダフィールド値(たとえば、長さ値と、送信元ポート番号と、送信先ポート番号と、他のUDPヘッダフィールドとのうちの1つまたは複数)を含むことができる。たとえば、CE150からFE160に通信されるGTPベースのカプセル化アクションは、GTPベースのカプセル化を実行することを示す情報と、データフローのパケットに追加されるGTPヘッダの中で使用される1つまたは複数のGTPヘッダフィールド値(たとえば、長さ値、TEID、または他のGTPヘッダフィールドのうちの1つまたは複数)を含むことができる。たとえば、CE150からFE160に通信されるGTPベースのカプセル化アクションは、FE160が、同じフローに対してカプセル化された以前のパケットにFE160によって適用されたキャッシュされたシーケンス番号値から、シーケンス番号値を導き出すことを示す情報を含むことができる。データフローに対する1つまたは複数の非カプセル化アクションは、データフローのパケットをトンネルの外に(たとえば、パケットを別のトンネルの中に移動させずにトンネルの外に、第1のトンネルから第2のトンネルに、トンネルからネイティブ転送インフラストラクチャに、など)移動させるために使用され得る。
【0047】
少なくともいくつかの実施形態では、非カプセル化アクションは、プロトコルの1つまたは複数のプロトコルヘッダフィールドをデータフローのパケットから除去することを含むことができる。少なくともいくつかの実施形態では、非カプセル化アクションは、1つまたは複数のプロトコルヘッダフィールドの1つまたは複数のプロトコルヘッダフィールド値を除去することを含むことができる。少なくともいくつかの実施形態では、非カプセル化アクションは、パケットチェックサムを検証することを含むことができる。少なくともいくつかの実施形態では、非カプセル化アクションは、シーケンス番号フィールドのシーケンス番号値の検証とキャッシングとを含むことができる(たとえば、検証は、シーケンス番号値を、同じデータフローに対して非カプセル化された以前のパケットのキャッシュされたシーケンス番号値と比較することによって実行され得る)。データフローに対する1つまたは複数の非カプセル化アクションは、データフローのパケットをトンネルの外に移動させる際に使用するために適切な他の非カプセル化アクションを含むことができる。
【0048】
少なくともいくつかの実施形態では、非カプセル化アクションは、実行される非カプセル化の種類を示す情報と、非カプセル化アクションを実行する際に使用するための情報とを含むことができ、または関連して有することができる。たとえば、非カプセル化アクションは、非カプセル化が実行されるプロトコルと、パケットを非カプセル化するためにパケットから除去される1つまたは複数のプロトコルヘッダフィールドなどと、それらの様々な組合せとを識別することができる。たとえば、非カプセル化アクションは、また、パケットチェックサムの検証が実行されることを定めることができる。図1の例示的な通信システムでは、たとえば、1つまたは複数の非カプセル化アクションは、IPベースの非カプセル化、UDPベースの非カプセル化、GTPベースの非カプセル化などのうちの1つまたは複数の使用を定めることができる。たとえば、CE150からFE160に通信されるGTPベースの非カプセル化アクションは、FE160が、GTPヘッダのシーケンス番号フィールドの中で運ばれるシーケンス番号値を検証し、キャッシュするということを示す情報を含むことができる(たとえば、検証は、シーケンス番号値を、同じフローに対して非カプセル化された以前のパケットのキャッシュされたシーケンス番号値と比較することによって実行され得る)。
【0049】
本明細書で説明される通り、1つまたは複数のカプセル化アクションと1つまたは複数の非カプセル化アクションとの組合せは、トンネル間でデータフローのパケットを移動させるために、データフローのパケットに適用され得る(たとえば、第1のトンネルからのパケットを非カプセル化するために、1つまたは複数の非カプセル化アクションをデータフローのパケットに適用し、次いで、第2のトンネルの中にパケットをカプセル化するために、1つまたは複数のカプセル化アクションをデータフローのパケットに適用する)。データフローに対する1つまたは複数のトンネリングアクションは、データフローのパケットをトンネルの中に、トンネル間で、トンネルの外などに移動させるために、CE150によって制御され、1つまたは複数のFE160によって適用され得る他のアクションを含むことができる。
【0050】
CE150とFE160との動作は、いくつかの実施例としてより良く理解される。
【0051】
たとえば、CE150およびFE160は、FE160からFE160へ向かう方向の下流データフローのトンネリングをサポートするように構成され得る。本実施例では、CE150は、(1)FE160とFE160とを下流データフローのためのトンネルのトンネル端部として識別し、(2)FE160によって実行されるカプセル化アクションを決定し、カプセル化アクションと関連するデータフロー定義とを、データフローのパケットに対するカプセル化を実行する際に使用するために、FE160に提供し、(3)FE160によって実行される非カプセル化アクションを決定し、非カプセル化アクションと関連するデータフロー定義とを、FE160からFE160において受信された、データフローのカプセル化されたパケットに対する非カプセル化を実行する際に使用するために、FE160に提供する。加えて、本実施例では、(1)FE160は、データフロー定義とカプセル化アクションとをCE150から受信し、データフローのパケットの受信がFE160によって検出された時に、カプセル化アクションを実行してデータフローのパケットをカプセル化し、(2)FE160は、データフロー定義と非カプセル化アクションとをCE150から受信し、データフローのカプセル化されたパケットの受信がFE160によって検出された時に、非カプセル化アクションを実行してデータフローのカプセル化されたパケットを非カプセル化する。
【0052】
たとえば、CE150およびFE160は、FE160において、第1のトンネルと第2のトンネルとの間での上流データフローの移動をサポートするように構成され得る。本実施例では、CE150は、(1)FE160を、データフローを移動するのに使用される、第1のトンネルと第2のトンネルとのトンネル端部を有しているとして識別し、(2)データフローのためのデータフロー定義を決定し、(3)データフローのパケットを第1のトンネルから除去するために、FE160によって実行される非カプセル化アクションを決定し、(4)データフローのパケットを第2のトンネルの中に移動させるために、FE160によって実行されるカプセル化アクションを決定し、(5)データフローのパケットを第1のトンネルと第2のトンネルとの間で移動させるためにFE160によって使用されるための、データフロー定義と、非カプセル化アクションおよびカプセル化アクションとをFE160に提供する。加えて、本実施例では、(1)FE160は、データフロー定義と、非カプセル化アクションおよびカプセル化アクションとをCE150から受信し、(2)データフローの各パケットについて、パケットをFE160から第1のトンネルを介して受信し、第1のトンネルからのパケットを非カプセル化するために非カプセル化アクションを実行し、パケットを第2のトンネルの中にカプセル化するためにカプセル化アクションを実行し、パケットを通信ネットワーク170に向けて上流に第2のトンネルを介して送信する。
【0053】
CE150およびFE160は、制御プロトコルを介して通信するように構成され得る。制御プロトコルは、SDNにおける使用のために適切ないずれの種類のプロトコルであってもよい。たとえは、制御プロトコルは、(たとえば、OpenFlowプロトコルによって使用されるシンタックスを採用し、1つまたは複数のOpenFlowメッセージ、あるいは1つまたは複数のOpenFlowメッセージ情報要素を追加する一方、OpenFlowによって定義されるFEの処理表現を使用する)OpenFlowプロトコルに基づいた制御プロトコル、(たとえば、ForCESプロトコルによって使用されるシンタックスを採用し、1つまたは複数のForCESプロトコルメッセージ、あるいは1つまたは複数のForCESプロトコルメッセージ情報要素を追加する一方、ForCESプロトコルによって定義されるFEの処理表現を使用する)Forwarding and Control Element Separation(ForCES)プロトコルに基づいた制御プロトコル、プロプライエタリな制御プロトコルなどであることができる。図1の例示的な通信システム100のためのOpenFlowプロトコルの例示的な拡張の説明は、以下である。
【0054】
少なくともいくつかの実施形態では、FE160は、FE160のOpenFlow表現を拡張することによってそのような機能を実行して、拡張OpenFlowプロトコルを形成するように構成され得る。それらは:
【0055】
(1)OpenFlowマッチング:少なくともいくつかの実施形態では、パケットヘッダフィールドに基づいたマッチングは、UDPヘッダフィールドまたはGTPヘッダフィールドに基づいたマッチングを含むように拡張される。
【0056】
(2)OpenFlowカプセル化アクション:少なくともいくつかの実施形態では、新しいOpenFlow動作は、IPカプセル化と、UDPカプセル化と、GTPカプセル化とについて定義することができる。少なくともいくつかの実施形態では、統合されたIP−UDP−GTPカプセル化アクションが定義され得る。IPカプセル化アクション、UDPカプセル化アクション、およびIP−UDP−GTPカプセル化アクションは、対応するIPヘッダチェックサムおよびUDPヘッダチェックサムと、IPヘッダのためのパケット長値との再計算を暗に意味するということが理解される。IPヘッダのプロトコル値が設定される必要があり得ることも理解される。
【0057】
(3)OpenFlow非カプセル化アクション:少なくともいくつかの実施形態では、新しいOpenFlow動作は、IP非カプセル化と、UDP非カプセル化と、GTP非カプセル化とについて定義され得る。少なくともいくつかの実施形態では、統合されたIP−UDP−GTP非カプセル化アクションが定義され得る。IP非カプセル化アクション、UDP非カプセル化アクション、およびIP−UDP−GTP非カプセル化アクションは、対応する、IPヘッダチェックサムとUDPヘッダチェックサムとの検証を暗に意味し、検証が不合格になった時に、パケットは廃棄される必要があり得るということが理解される。
【0058】
少なくともいくつかの実施形態では、OpenFlowプロトコルは、CE150が、FE160(たとえば、FE160の1つまたは複数のFEテーブルのエントリ)に新しいマッチング条件と新しいカプセル化アクション/非カプセル化アクションとをポピュレートすることを可能にするような方法で拡張され得る。OpenFlowプロトコルは、1つまたは複数の新しいメッセージと、1つまたは複数の新しいメッセージ情報要素などと、それらの様々な組合せとを用いて拡張され得る。図1の例示的な通信システム100のためのOpenFlowプロトコルの拡張のための例示的な実施形態は、以下である。
【0059】
少なくともいくつかの実施形態では、FE160によって実行されるデータフローマッチングについて、列挙「oxm_ofb_match_fields」は、GTPヘッダのTEIDを表わす、マッチングフィールドOFPXMT_OFB_GTPU_TEIDを用いて拡張され得る。
【0060】
少なくともいくつかの実施形態では、FE160によって実行されるカプセル化アクションについて、列挙「ofp_action_type」は以下のアクションタイプを用いて拡張され得る:
OFPAT_PUSH_IP4: IPv4ヘッダをプッシュする、
OFPAT_PUSH_IP6: IPv6ヘッダをプッシュする、
OFPAT_PUSH_UDP: UDPヘッダをプッシュする、
OFPAT_PUSH_GTP: GTPヘッダをプッシュする、
OFPAT_PUSH_IP4UDPGTP: IPv4−、UPD−、およびGTPヘッダをプッシュする、および
OFPAT_PUSH_IP6UDPGTP: IPv6−、UPD−、およびGTPヘッダをプッシュする。
【0061】
少なくともいくつかの実施形態では、FE160によって実行される非カプセル化アクションについて、列挙「ofp_action_type」は、以下のアクションタイプを用いて拡張され得る:
OFPAT_POP_IP4: IPv4ヘッダをポップする、
OFPAT_POP_IP6: IPv6ヘッダをポップする、
OFPAT_POP_UDP: UDPヘッダをポップする、
OFPAT_POP_GTP: GTPヘッダをポップする、
OFPAT_POP_IP4UDPGTP: IPv4−、UPD−、およびGTPヘッダをポップする、および
OFPAT_POP_IP6UDPGTP: IPv6−、UPD−、GTPヘッダをポップする。
【0062】
少なくともいくつかの実施形態では、1つまたは複数のカプセル化アクションのための1つまたは複数のカプセル化アクション構造体は、以下の通り、プッシュされるヘッダのフィールド値を含むことができる。
【0063】
たとえば、OFPAT_PUSH_IP4のためのIPv4カプセル化アクション構造体は、次の通り定義され得る:
【0064】
【数1】
【0065】
たとえば、OFPAT_PUSH_UDPのためのUDPカプセル化アクション構造体は、次の通り定義され得る:
【0066】
【数2】
【0067】
たとえば、OFPAT_PUSH_GTPのためのGTPカプセル化アクション構造体は、次の通り定義され得る:
【0068】
【数3】
【0069】
特定のヘッダフィールドのパラメータを有するカプセル化アクション構造体を使用する拡張OpenFlowプロトコルの実施形態に対して、上記で主に図示し説明したが、少なくともいくつかの実施形態では、拡張OpenFlowプロトコルが、より少ない、または(異なるを含む)より多いヘッダフィールドのパラメータを含むカプセル化アクション構造体を利用することができるということが理解される。
【0070】
特定の方法(たとえば、特定のアクション構造体フィールド名を使用した、特定の順番で配置された、など)で配置されたカプセル化アクション構造体を使用する拡張OpenFlowプロトコルの実施形態に対して、上記で主に図示し説明したが、少なくともいくつかの実施形態では、拡張OpenFlowプロトコルが、他の適切な方法で配置されたカプセル化アクション構造体を利用することができるということが理解される。
【0071】
カプセル化アクション構造体が、カプセル化のために使用されるパケットヘッダの1つまたは複数のヘッダフィールドを設定する際に使用するための情報を含む、拡張OpenFlowプロトコルの実施形態に対して、上記で主に図示し説明したが、少なくともいくつかの実施形態では、1つまたは複数のヘッダフィールド設定アクション構造体が、カプセル化のために使用されるプロトコルヘッダの1つまたは複数のヘッダフィールドを設定する際に使用するために定義される(たとえば、ヘッダフィールド設定アクションをカプセル化アクションの一部として含むよりはむしろ、1つまたは複数のアクション構造体が、カプセル化のために使用されるプロトコルヘッダの1つまたは複数のヘッダフィールドを設定するために定義され、使用される)ように、拡張OpenFlowプロトコルが構成され得るということが理解される。
【0072】
上記で説明された例示的なOpenFlowベースの制御プロトコルのために、データフローマッチングフィールドと、カプセル化アクション/非カプセル化アクションとを使用することは、図1の例示的な通信システム100の関連において考えられる時により良く理解され得る。
【0073】
少なくともいくつかの実施形態では、たとえば、上記で説明された、例示的なOpenFlowベースの制御プロトコルのデータフローマッチングフィールドとネットワークオーバーレイアクションとを使用して、PGW−U(FE160)とSGW−U(FE160)とによる、PGW−U(FE160)上のダウンリンクトラフィックのための処理は、以下の通り実行され得る。
【0074】
テーブル0:エントリは、以下の実行される機能を含む:
【0075】
(1)マッチングフィールド:マッチングフィールドが、送信元IPアドレスと、送信先IPアドレスと、プロトコル種類と、送信元ポート番号と、送信先ポート番号とを含む5タプルを含み、ワイルドカードは、同じEPSベアラに属する5タプルをグループ化するように設定され得る。
【0076】
(2)GTPヘッダアクション:GTPヘッダアクションが、EPSベアラのための、SGW−Uにおけるトンネル端部に対応するTEIDフィールド値と共にプッシュされる。
【0077】
(3)メタデータアクション:メタデータアクションが、メタデータ値がSGW−Uの送信先IPアドレスに設定された場合に設定される。
【0078】
(4)テーブル1に移動(Go To)アクション。
【0079】
テーブル1:エントリは、以下の実行される機能を含む:
【0080】
(1)マッチングフィールド:マッチングフィールドが、メタデータ値と等しい。
【0081】
(2)UDPヘッダアクション:UDPヘッダアクションが、UDP送信元ポート値(たとえば、2152または他の適切な値)と共にプッシュされる。
【0082】
(3)IPv4またはIPv6ヘッダアクション:IPv4またはIPv6ヘッダアクションが、IPアドレスがメタデータ値(たとえば、SGW−UのIPアドレス)に設定され、送信元IPアドレスが、データを送信先アドレスに転送するために使用される出力ポートのIPアドレスに設定された場合、プッシュされる。
【0083】
(4)出力アクション:対応する出力ポートを定める出力アクションが、ローカルのイーサネット(登録商標)アドレスを自動的にプッシュする。
【0084】
少なくともいくつかの実施形態では、たとえば、上記で説明された、例示的なOpenFlowベースの制御プロトコルのデータフローマッチングフィールドとネットワークオーバーレイアクションとを使用して、PGW−U(FE160)とSGW−U(FE160)とによる、SGW−U(FE160)上のダウンリンクトラフィックのための処理は、以下の通り実行され得る。
【0085】
テーブル0:エントリは、以下の、実行される機能を含む:
【0086】
(1)マッチングフィールド:マッチングフィールドが、SGW−UにおけるEPSベアラのGTP TEIDを含む。
【0087】
(2)メタデータ:メタデータが、eNodeBにおけるベアラ端部のTEID値に設定される。
【0088】
(3)GTPヘッダアクション:GTPヘッダアクションが、TEIDフィールド値と共にポップされる。
【0089】
(4)UDPヘッダアクション:UDPヘッダアクションがポップされる。
【0090】
(5)IPヘッダアクション:IPヘッダアクションがポップされる。
【0091】
(6)メタデータアクション:メタデータアクションが、メタデータ値がeNodeBの送信先IPアドレスに設定される場合、設定される。
【0092】
(7)テーブル1に移動(Go To)アクション。
【0093】
テーブル1:エントリは、以下の実行される機能を含む:
【0094】
(1)マッチングフィールド:マッチングフィールドがメタデータ値と等しい。
【0095】
(2)UDPヘッダアクション:UDPヘッダアクションがUDP送信元ポート値(たとえば、2152または他の適切な値)と共にプッシュされる。
【0096】
(3)IPv4またはIPv6ヘッダアクション:IPv4またはIPv6ヘッダアクションが、IPアドレスがメタデータ値(たとえば、eNodeBのIPアドレス)に設定され、送信元IPアドレスが、データを送信先アドレスに転送するために使用される出力ポートのIPアドレスに設定された場合、プッシュされる。
【0097】
(4)出力アクション:対応する出力ポートを定める出力アクションが、ローカルのイーサネットアドレスを自動的にプッシュする。
【0098】
FE160が同じまたは類似の機能を実行することができるため、UEが付けられているアンカー(たとえば、SGW−U(FE160)およびPGW−U(FE160))は、例示的な通信ネットワーク100内で自由に設置され、移動されてよく、それによって、柔軟で最適化されたルーティングと、早期ブレイクアウトと、UEにより近くでのキャッシュサーバの統合(たとえば、コンテンツデリバリネットワーク(CDN)機能)などと、それらの様々な組合せとを可能にするということが理解される。
【0099】
本明細書で説明される通り、ソフトウェアで定義されたネットワークオーバーレイの機能の実施形態は、LTE EPCネットワーク内で様々な種類のトンネリングをサポートするために適用され得る。例示的な通信ネットワーク100の関連において、UDPベースとGTPベースとのトンネリングをサポートするための、ソフトウェアで定義されたネットワークオーバーレイの機能の例示的な使用が、図2に関して図示され、説明される。
【0100】
図2は、図1の例示的な通信システムの要素間の例示的なトンネリングを示している。
【0101】
図2に示される通り、図2の例示的な通信システム200はLTE EPCネットワークである。図2の例示的な通信システム200は、E−UTRAN110のeNodeB211に関連するユーザ装置(UE)201と通信ネットワーク170のサーバ271との間のエンドツーエンド通信をサポートし、E−TRAN110と通信ネットワーク170との間の通信は、(SGWに関連する)FE160と(PGWに関連する)FE160とを介する。図2の例示的な通信システム200の要素の配置は、図1の例示的な通信システム100を参照することによってより良く理解され得る。
【0102】
図2に示される通り、例示的な通信システム200の要素間の通信は、様々な通信層における様々な通信プロトコルを使用して実行される。例示的な通信システム200の要素はそれぞれ、1つまたは複数のプロトコルスタックをサポートして、OSIモデルの様々な層(たとえば、物理層、データリンク層、ネットワーク層、トランスポート層など)における通信のための通信プロトコルをサポートする。サーバ271とUE211との間のエンドツーエンド通信は、TCP接続を介している。TCP接続は、サーバ271とFE160との間のIPベースの接続と、FE160とUE201との間のIPベースの接続とを介して伝送される。サーバ271とFE160との間のIPベースの接続は、サーバ271とFE160との間のL2接続を介して伝送される。FE160とUE201との間のIPベースの接続は、FE160とFE160との間の様々な接続と、FE160とeNodeB211との間の様々な接続と、eNodeB211とUE201との間のL2 LTE接続とを介して伝送される。FE160とFE160との間の様々な接続は、GTP−U(S5−Uインターフェース)接続を含み、GTP−U接続はUDP接続を介して伝送され、UDP接続はIP接続を介して伝送され、IP接続はL2接続を介して伝送される。同様に、FE160とeNodeB211との間の様々な接続は、GTP−U(S1−Uインターフェース)接続を含み、GTP−U接続はUDP接続を介して伝送され、UDP接続はIP接続を介して伝送され、IP接続はL2接続を介して伝送される。LTE EPCネットワーク内の通信プロトコルの典型的な構成は当業者よって理解され、したがって、様々な要素間の様々な接続のさらなる説明は省略される。加えて、下層のプロトコル/接続(たとえば、物理層)および上層のプロトコル/接続(たとえば、プレゼンテーション層、アプリケーション層、など)は、また、明確化のために省略される。
【0103】
図2でさらに図示される通り、例示的な通信システム200は、FE160とFE160との間と、FE160とeNodeB211との間の両方の、SDNベースのトンネリングをサポートするように構成されている(図2において、これらのプロトコル/接続に関連する太枠の四角によって示されている)。所与のデータフローに対して下流方向では、CE150の制御のもとで、以下の機能が実行される:(1)FE160が、データフローのIPパケットを識別し、IPパケットを、UDPを使用してカプセル化してUDPパケット(UDPトンネル)を形成し、UDPパケットをGTP−Uを使用してさらにカプセル化して(UDPトンネルがGTP−Uトンネル内のトンネルであるように)GTP−Uパケット形成し、GTP−UパケットをFE160に伝搬する、(2)FE160が、GTP−UパケットをFE160から受信し、データフローのGTP−Uパケットを識別し、GTP−Uパケットを非カプセル化してUDPパケットを取り戻し、UDPパケットを非カプセル化してIPパケットを取り戻し、IPパケットをUDPを使用してカプセル化してUDPパケット(UDPトンネル)を形成し、UDPパケットをGTP−Uを使用してさらにカプセル化して(UDPトンネルがGTP−Uトンネル内のトンネルであるように)GTP−Uパケットを形成し、GTP−UパケットをeNodeB211に伝搬され、(3)eNodeB211が、GTP−UパケットをFE160から受信し、データフローのGTP−Uパケットを識別し、GTP−Uパケットを非カプセル化してUDPパケットを取り戻し、UDPパケットを非カプセル化してIPパケットを取り戻す。他の関連するアクションが実行され、そのようなアクションはCE150の制御のもとでないため、そのようなアクションの説明は省略されることが理解される。所与のデータフローに対して上流方向では、CE150、eNodeB211、FE160、およびFE160は、上流方向におけるパケットのトンネリングをサポートするための相補的機能を実行するように構成され得ることが理解される。
【0104】
本明細書で説明される通り、ソフトウェアで定義されたネットワークオーバーレイの機能の実施形態は、また、図1に対して示され、説明されたLTE EPCネットワークに加えて、様々な種類のオーバーレイネットワークに適用され得る。たとえば、ソフトウェアで定義されたネットワークオーバーレイの機能の実施形態は、また、仮想プライベートネットワーク(VPN)の関連においてトンネリングをサポートするためにも適用され得る。例示的なVPNの関連においてUDPベースのトンネリングとESPベースのトンネリングとをサポートするための、ソフトウェアで定義されたネットワークオーバーレイの機能の例示的な使用が、図3に対して示され、説明される。
【0105】
図3は、例示的な通信システムの要素間の例示的なトンネリングを示している。
【0106】
図3に示される通り、図3の例示的な通信システム300は、仮想プライベートネットワーク(VPN)をサポートする通信ネットワークである。図3の例示的な通信システム300は、第1のセキュリティゲートウェイ(セキュリティゲートウェイFE360)に関連する第1のホスト301と、第2のセキュリティゲートウェイ(セキュリティゲートウェイFE360)に関連する第2のホスト371との間のエンドツーエンド通信をサポートし、セキュリティゲートウェイFE360とセキュリティゲートウェイFE360との間の通信は、ネイティブIPルータ361を介している。図3の例示的な通信システム300の要素の配置は、図2の例示的な通信システム200の要素の配置と類似している。
【0107】
図3で示される通り、例示的な通信システム300の要素間の通信は、様々な通信層における様々な通信プロトコルを使用して実行される。例示的な通信システム300の要素はそれぞれ、1つまたは複数のプロトコルスタックをサポートして、OSIモデルの様々な層(たとえば、物理層、データリンク層、ネットワーク層、トランスポート層、など)における通信のための通信プロトコルをサポートする。第2のホスト371と第1のホスト301との間のエンドツーエンド通信は、TCP接続を介している。TCP接続は、第2のホスト371とセキュリティゲートウェイFE360との間のIPベースの接続と、セキュリティゲートウェイFE360とセキュリティゲートウェイFE360との間のIPベースの接続と、セキュリティゲートウェイFE360と第1のホスト301との間のIPベースの接続とを介して伝送される。第2のホスト371とセキュリティゲートウェイFE360との間のIPベースの接続は、第2のホスト371とセキュリティゲートウェイFE360との間のL2接続を介して伝送され、同様に、セキュリティゲートウェイFE360と第1のホスト301との間のIPベースの接続は、セキュリティゲートウェイFE360と第1のホスト301との間のL2接続を介して伝送される。セキュリティゲートウェイFE360とセキュリティゲートウェイFE360との間のIPベースの接続は、(IPSecプロトコルクワイトの)ESP接続を介して伝送/セキュア化され、ESP接続はUDP接続を介して伝送され、UDP接続は(セキュリティゲートウェイFE360とネイティブIPルータ361との間と、ネイティブIPルータ361とセキュリティゲートウェイFE360との間との)IP接続を介して伝送され、IP接続は、(ここでもやはり、セキュリティゲートウェイFE360とネイティブIPルータ361との間と、ネイティブIPルータ361とセキュリティゲートウェイFE360との間との、各IP接続をサポートしている)L2接続を介して伝送される。VPNネットワーク内の通信プロトコルの典型的な構成は、当業者によって理解され、したがって、様々な要素間の様々な接続のさらなる詳細は省略される。加えて、下層のプロトコル/接続(たとえば、物理層)および上層のプロトコル/接続(たとえば、プレゼンテーション層、アプリケーション層、など)は、また、明確化のために省略されている。
【0108】
図3でさらに示される通り、例示的な通信システム300は、(図3のこれらのプロトコル/接続に関連する太枠の四角によって示される)セキュリティゲートウェイFE360とセキュリティゲートウェイFE360との間でSDNベースのトンネリングをサポートするように構成されている。所与のデータフローに対する第1の方向(例示的には、図3にわたって左から右に)では、CE350の制御のもとで、様々な機能が実行される。CE350は、セキュリティゲートウェイFE360とセキュリティゲートウェイFE360とに、ESPを介してセキュア化されるべきフローを指定する(たとえば、CE350は、IPアドレスとトランスポートプロトコルの種類とポート番号とを含む5タプルを介して、セキュリティゲートウェイFE360に入るフローに関連するパケットを指定し得、さらに、CE350は、ESPヘッダの中に含まれるSPIパラメータを介してFE360に入るフローを指定し得る)。CE350は、セキュリティゲートウェイFE360とセキュリティゲートウェイFE360とに、フローに関連し、(FE360による)ESPカプセル化と(FE360による)ESP非カプセル化とのために使用される、キーイング材料と、暗号化アルゴリズムと、認証アルゴリズムとを指定する。セキュリティゲートウェイFE360は、データフローのIPパケットを識別し、IPパケットを、UDPを使用してカプセル化してUDPパケット(UDPトンネル)を形成し、UDPパケットを、ESPを使用してさらにカプセル化して、このデータフローに関連する、適切なキーイング材料と暗号化アルゴリズムと認証アルゴリズムとを使用して、(UDPトンネルがESPトンネル内のトンネルであるように)ESPパケットを形成し、(CE350の制御のもとでないさらなるIPカプセル化を使用して)ESPパケットをセキュリティゲートウェイFE360に伝搬する。セキュリティゲートウェイFE360は、ESPパケットをセキュリティゲートウェイFE160から受信し、データフローのESPパケットを識別し、ESPパケットを、このデータフローに関連する、適切なキーイング材料と、暗号化アルゴリズムと、認証アルゴリズムとを使用して非カプセル化して、UDPパケットを取り戻し、UDPパケットを非カプセル化してIPパケットを取り戻す。他の関連アクションが実行されるが、そのようなアクションはCE350の制御のもとでないため、そのようなアクションの説明は省略されることが理解される。当業者が、ESPカプセル化のためのトラフック選択の他の方法(たとえば、RFC4301で説明されるようなものなど)を識別し得るということが理解される。当業者が、CE350と、セキュリティゲートウェイFE360およびFE360との間のセキュリティ関連性を転送する他の方法(たとえば、RFC4301で説明されるようなものなど)を識別し得るということが理解される。所与のデータフローに対して上流方向では、CE350、セキュリティゲートウェイFE360、およびセキュリティゲートウェイFE360は、上流方向におけるパケットのトンネリングをサポートするための相補的機能を実行するように構成され得るということが理解される。
【0109】
本明細書で説明される通り、ソフトウェアで定義されたネットワークオーバーレイの機能の実施形態は、また、様々な種類のオーバーレイネットワークにおける様々な種類のトンネリングに適用可能であり得る。少なくともいくつかの他の種類のオーバーレイネットワークでは、トンネリングアクションは、(たとえば、IPと、UDPと、GTPとのうちの1つまたは複数の代わりの、またはそれらに加えて)1つまたは複数の種類のプロトコルに対して、(たとえば、ユーザデータフローの代わりに、またはそれに加えて)1つまたは複数の他のトラフィックの種類に対してなどに実行され得る。オーバーレイネットワークを提供するために使用され得るプロトコルの例は、IPv4、IPv6、IPv6拡張ヘッダ、GRE、GTP、UDP、TCP、SCTP、DCCP、ESP、AHなどを含む。したがって、本明細書中の、特定のトンネリングアクションと特定のトラフィック種類とへの様々な参照(およびLTE EPCネットワーク、VPNなどへの特定の言及)は、ソフトウェアで定義されたネットワークオーバーレイの機能の実施形態が適用され得る、適切な種類のオーバーレイネットワークを包含するために、より一般的に説明され得る。たとえば、IPプロトコルと、UDPプロトコルと、GTPプロトコルと、ESPプロトコルとへの特定の言及は、オープンシステムインターコネクション(OSI)モデルのネットワーク層またはトランスポート層における通信プロトコルのいずれも含むものとして、より一般的に読まれてよく、したがって、本明細書では、より一般的に「ネットワーク層プロトコル」または「トランスポート層プロトコル」と呼ばれてよい。たとえば、本明細書中の、ESPベアラと他の種類のユーザデータフローへの特定の言及は、本明細書では、より一般的に、「データフロー」と呼ばれてよい。他の関連用語もまた、必要に応じて、より一般的に読まれてよい。(たとえば、適切な種類のオーバーレイネットワークを表わしている)より一般的なソフトウェアで定義されたオーバーレイネットワークにおけるCEとFEとのアクションは、図4図5とをそれぞれ参照することによってより良く理解され得る。
【0110】
図4は、転送要素をソフトウェアで定義されたオーバーレイネットワークの中で構成するために、制御要素によって使用される方法の一実施形態を示している。図4で示される通り、方法400のステップの一部は制御要素(CE)によって実行され、方法400のステップの一部は転送要素(FE)によって実行される。連続的に実行されるものとして示され、説明されるが、方法400のステップの少なくとも一部は、同時に、または図4に対して示され、説明されるものとは異なる順番で実行されてよいことが理解される。
【0111】
ステップ410で方法400が開始する。
【0112】
ステップ420で、CEは、データフローに関連する情報を受信する。情報は、データフローに対して1つまたは複数のトンネリングアクションを実行するようにFEに指示するように、CEをトリガする際に使用するために適切な情報を含むことができる(それは、データフローのためのFEを識別することと、データフローのためのデータフロー定義を決定することと、データフローに対して実行される1つまたは複数のトンネリングアクションを決定することとのうちの1つまたは複数において使用するために適切な情報を含むことができる)。データフローに関連する情報は、1つまたは複数のアプリケーションについてのアプリケーション関連情報を含むことができる。たとえば、次の通り3つの層:アプリケーション→ネットワークOS→転送インフラストラクチャを含むSDNでは、FEは転送インフラストラクチャの一部として実装され得、CEはネットワークOS層の一部として実装され得、アプリケーションは、(CEがデータフローに関連する情報を、それを介して受信する)CEへのインターフェース(たとえば、CEの実装に依存し得る、ネットワークインターフェース、内部通信インターフェースなど)を使用して実装され得る。
【0113】
ステップ430で、CEはデータフローのためのFEを識別する。データフローのためのFEの識別は、データフローに関連する受信情報の少なくとも一部に基づくことができる。データフローのためのFEの識別は、データフローのための1つまたは複数のトンネルの、1つまたは複数のトンネル端部の識別を含むことができる。
【0114】
ステップ440で、CEは、データフローのためのデータフロー定義を決定する。データフローのためのデータフロー定義の決定は、データフローに関連する受信情報の少なくとも一部に基づくことができる。データフローのためのデータフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づくことができる。
【0115】
ステップ450で、CEは、FEによってデータフローに対して実行される、1つまたは複数のトンネリングアクション(たとえば、カプセル化アクション、非カプセル化アクションなど)を決定する。データフローに対して実行される、1つまたは複数のトンネリングアクションの決定は、データフローに関連する受信情報の少なくとも一部に基づくことができる。
【0116】
ステップ460で、CEは、データフロー定義と1つまたは複数のトンネリングアクションとをFEに伝搬する。データフロー定義と1つまたは複数のトンネリングアクションとのFEへの伝搬は、CEによる、データフロー定義と1つまたは複数のトンネリングアクションとの伝搬の開始を含む(そして、FEによる、データフロー定義と1つまたは複数のトンネリングアクションとの受信を必ずしも含まない)。
【0117】
ステップ470で、FEは、データフロー定義と1つまたは複数のトンネリングアクションとをCEから受信する。FEにおけるデータフロー定義と1つまたは複数のトンネリングアクションとの受信は、CEによるFEへの、データフロー定義と1つまたは複数のトンネリングアクションとの伝搬を必ずしも含まない。
【0118】
ステップ480で、FEは、データフローのデータフロー定義と1つまたは複数のトンネリングアクションとを格納する。データフロー定義および1つまたは複数のトンネリングアクションは、1つまたは複数のトンネリングアクションがデータフロー定義にマッピングされるように(たとえば、FEにおいて受信されたパケットがデータフロー定義によって指定されたデータフローに関連するという決定が、FEによってデータフローのパケットに対して実行される1つまたは複数のトンネリングアクションを識別するための基礎として使用され得るように)格納される。
【0119】
ステップ490で、方法400が終了する。
【0120】
図5は、ソフトウェアで定義されたオーバーレイネットワークの中でデータフローのパケットを処理するために、転送要素によって使用される方法の一実施形態を示している。連続的に実行されるものとして図示され、説明されるが、方法500のステップの少なくとも一部は、同時に、または図5に対して示され、説明されるものとは異なる順番で実行され得るということが理解される。
【0121】
ステップ510で、方法500が開始する。
【0122】
ステップ520で、パケットが受信される。パケットは、転送要素において受信される。パケットはデータフローに関連している。転送要素は、(たとえば、転送要素において関連制御要素から受信された、データフローのための制御情報に基づいた、)データフローのためのデータフロー定義の、データフローに対して実行される1つまたは複数のトンネリングアクションへのマッピングを含む。
【0123】
ステップ530で、パケットのデータフローは、パケット内に含まれる情報と、パケットのデータフローに関連するデータフロー定義とに基づいて識別される。データフローのためのデータフロー定義は、1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づくことができる。データパケットのデータフローは、データパケットの(1つまたは複数のプロトコルの)1つまたは複数のヘッダフィールドの1つまたは複数の値の、転送要素にとってアクセス可能なデータフロー定義に関連する値との比較に基づいて識別され得る。
【0124】
ステップ540で、パケットに対して実行される1つまたは複数のトンネリングアクションは、データフロー定義の1つまたは複数のトンネリングアクションへのマッピングに基づいて識別される。1つまたは複数のトンネリングアクションは、1つまたは複数のカプセル化アクション、あるいは1つまたは複数の非カプセル化アクションを含む。
【0125】
ステップ550で、1つまたは複数のトンネリングアクションがパケットに対して実行される。
【0126】
ステップ560で、方法500が終了する。
【0127】
本明細書では、特定の種類のIPベースのネットワーク(つまり、LET EPCネットワーク、VPNなど)におけるソフトウェアで定義されたオーバーレイネットワークの使用に対して主に図示され、説明されたが、ソフトウェアで定義されたオーバーレイネットワークは、(無線ネットワークまたは有線ネットワークを含む)様々な他の種類のIPベースのネットワークで使用されてよいことが理解される。
【0128】
本明細書では、ソフトウェアで定義されたオーバーレイネットワークを提供するために、特定の種類のSDN制御プロトコル(つまり、OpenFlow)の使用に対して主に図示され、説明されたが、ソフトウェアで定義されたオーバーレイネットワークは、他の適切な種類のSDN制御プロトコル(たとえば、FORCESプロトコル、プロプライエタリなSDN制御プロトコルなど)を使用して提供されてよいことが理解される。
【0129】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、コントロールプレーン機能およびユーザプレーン機能が独立して展開することを可能にし、それによって、コントロールプレーン機能およびユーザプレーン機能がそれらの特定の要件(たとえば、CEのためのソフトウェアベースのソリューションおよびFEのためのハードウェアベースのソリューション)に最適化されることを可能にする。
【0130】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、様々なコントロールプレーン機能が処理オーバーヘッドとシグナリングオーバーヘッドとを削減するような方法で統合されるように構成された、集中制御を利用することができる。
【0131】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、分散ルーティングプロトコルの必要性を除去する方法で構成された集中制御を利用することができ、それによって、(たとえば、ユーザの移動性の場合に)新しいルーティングの経路がすばやく更新されることで柔軟性を高める。
【0132】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、オーバーレイノードのための転送要素が同じまたは同様の機能を実行することができるように実装され得、したがって、コストを下げる傾向を持つ方法で共有化され得る。
【0133】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、追加のノード間プロトコルの必要性を減らし、または除去し、それによって、ネットワークの設計と、運用と、維持との複雑さを軽減する。
【0134】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、通常、時間と共に発展する特性要件と標準という結果となる、特殊ノードとノード間プロトコルとの導入の影響を軽減する。
【0135】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、特性要件と標準とが時間と共に発展するにつれて、より高い性能(例えばより高いスループット)に対する継続的な要求を満たすための特殊ハードウェアの導入の影響を軽減し、それによって、運用費用を削減する。
【0136】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、ノードの特殊化を通じて持ち込まれることが多い、フォーワーディングプレーンにおける単一障害点を減らし、それによって頑強性を向上させる。
【0137】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、ネットワークトポロジーおよび古くからの問題よりはむしろ、運用上の配慮に基づいた、ノードへの機能の割り当てを可能にし、それによって、性能低下なしに、または少なくとも軽減された性能低下で、特殊なハードウェアから汎用のハードウェアへの移行と、実行される機能の仮想化とを可能にする。
【0138】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、(たとえば、コントロールプレーンとユーザプレーンとの各負荷目標と性能目標とに基づいて、)コントロールプレーンの資源プロビジョニングおよびユーザプレーンの資源プロビジョニングが、独立して実行されることを可能にする。
【0139】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、移動性ネットワークが、より費用効率の高い方法で実現され、運用されることを可能にする。
【0140】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、異なる種類の通信事業者に対して互換性のないソリューションになる傾向にある、事業者固有のオーバーレイソリューションの限定的調整なしに、異なる種類の通信事業者(たとえば、有線事業者および携帯電話事業者)の要求を満足することができる、包括的なオーバーレイソリューションを提供する。
【0141】
少なくともいくつかの実施形態では、ソフトウェアで定義されたオーバーレイネットワークは、様々な種類の通信ネットワークのためにより効率的でコストの低いソリューションを提供し、ソフトウェアで定義されたオーバーレイネットワークの様々な機能と関連する利益とが無線ネットワークと有線ネットワークとに適用されるため、ソフトウェアで定義されたオーバーレイネットワークは、本当の無線と有線との集束を可能にし得る。
【0142】
図6は、本明細書で説明された機能を実行する際の使用のために適切なコンピュータの上位ブロック図を示している。
【0143】
コンピュータ600は、プロセッサ602(たとえば、中央処理装置(CPU)または他の適切なプロセッサ)と、メモリ604(たとえば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)など)とを含む。
【0144】
コンピュータ600は、また、協力モジュール/プロセス605を含むことができる。協力プロセス605は、メモリ604にロードされ得、プロセッサ602によって実行されて本明細書で述べられた機能を実装し得、したがって、(関連データ構造を含む)協力プロセス605は、コンピュータ可読記憶媒体、たとえば、RAMメモリ、磁気または光学式ドライブまたはディスケットなどに記憶され得る。
【0145】
コンピュータ600は、また、1つまたは複数の入力/出力デバイス606(たとえば、(キーボード、キーパッド、マウスなどの)ユーザ入力デバイス)と、(ディスプレイ、スピーカーなどの)ユーザ出力デバイスと、入力ポートと、出力ポートと、受信部と、送信部と、1つまたは複数の記憶デバイス(たとえば、テープドライブ、フロッピー(登録商標)ドライブ、ハードディスクドライブ、コンパクトディスクドライブなど)などと、様々なそれらの組合せとを含むことができる。
【0146】
図6に示されるコンピュータ600が、本明細書で説明される機能要素、または本明細書で説明される機能要素の一部を実装するために適切な、一般的なアーキテクチャと機能性とを提供することが理解される。たとえば、コンピュータ600は、E−UTRAN110の1つまたは複数の要素、MME120の全部または一部、HSS130の全部または一部、PCRF140の全部または一部、CE150の全部または一部、FE160の全部または一部、通信ネットワーク170の1つまたは複数の要素、UE201の全部または一部、サーバ271の全部または一部、第1のホスト301の全部または一部、CE350の全部または一部、セキュリティゲートウェイ360の全部または一部、セキュリティゲートウェイ360の全部または一部、ネイティブIPルータ361の全部または一部、第2のホスト371の全部または一部などの1つまたは複数を実装するために適切な、一般的なアーキテクチャと機能性とを提供する。少なくともいくつかの実施形態では、制御要素(たとえば、CE150、CE350など)の機能の少なくとも一部は、制御要素の機能を実行するように構成された特殊用途プロセッサを提供するために、1つまたは複数の汎用プロセッサで実装され得る。
【0147】
本明細書で図示され、説明された機能が、ソフトウェアで(たとえば、特殊用途コンピュータを実装するために、(たとえば、1つまたは複数のプロセッサによる実行を介して)汎用コンピュータ上で実行するための、1つまたは複数のハードウェアプロセッサ上でのソフトウェアの実装を介して)実装され得、またはハードウェアで(たとえば、汎用コンピュータ、1つまたは複数の特定用途向け集積回路(ASIC)、および/または他のハードウェア均等物を使用して)実装され得ることが理解される。
【0148】
本明細書で述べられた方法のステップうちの少なくともいくつかが、ハードウェアの内部で、たとえば、方法の様々なステップを実行するためにプロセッサと協働する回路として実装され得るということが理解される。本明細書で説明された機能/要素の一部は、コンピュータプログラム製品として実装され得、コンピュータ命令は、コンピュータによって処理された時、本明細書で説明された方法または技法が起動され、そうでない場合は提供されるように、コンピュータの動作を適応させる。発明の方法を起動させるための命令は、固定媒体または取り外し可能媒体の中に記憶され、ブロードキャスト媒体または他の信号保持媒体のデータストリームを介して送信され、または命令に従って動作する計算デバイス内のメモリ内に記憶され得る。
【0149】
本明細書で使用される「または」という用語が、別に示されない限り(たとえば、「さもないと」または「または代替では」)、非排他的な「または」を指すことが理解される。
【0150】
様々な実施形態の態様は特許請求の範囲で明記される。様々な実施形態のそれらの態様および他の態様は、以下の番号が付けられた条項で明記される。
【0151】
1. プロセッサと、プロセッサに通信可能に接続されたメモリと、
を備え、プロセッサが、
データフローのためのデータフロー定義を決定することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む、データフロー定義を決定することと、
データフローに対して実行される1つまたは複数のトンネリングアクションを決定することであって、1つまたは複数のトンネリングアクションがカプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む、トンネリングアクションを決定することと、
転送要素に向けて、データフロー定義と1つまたは複数のトンネリングアクションとについて示す制御情報を伝搬することと、
を行うように構成されている、装置。
【0152】
2. プロセッサが、
データフローに関連する情報を受信することと、
データフローに関連する情報に基づいて、データフロー定義または1つもしくは複数のトンネリングアクションの少なくとも一方を決定することと、
を行うように構成されている、条項1に記載の装置。
【0153】
3. プロセッサが、
制御情報が伝搬される転送要素を識別する
ように構成されている、条項1に記載の装置。
【0154】
4. 1つまたは複数のトンネリングアクションが、データフローのパケットをトンネルの中に移動させること、データフローのパケットをトンネル間で移動させること、またはデータフローのパケットをトンネルの外に移動させることのうちの少なくとも1つのために構成されている、条項1に記載の装置。
【0155】
5. 1つまたは複数のトンネリングアクションが、データフローのパケットをネイティブ転送インフラストラクチャからトンネルの中に移動させること、またはパケットをトンネルからネイティブ転送インフラストラクチャに移動させることのうちの少なくとも1つのために構成されている、条項1に記載の装置。
【0156】
6. 1つまたは複数のトンネリングアクションがカプセル化アクションを備え、制御情報が、データフローのパケットをカプセル化するために使用されるプロトコルについての指示と、データフローのパケットをカプセル化するために使用される少なくとも1つのプロトコルヘッダフィールドについての指示とを含む、条項1に記載の装置。
【0157】
7. 制御情報が、少なくとも1つのプロトコルヘッダフィールドについて設定される少なくとも1つのプロトコルヘッダフィールド値をさらに備える、条項6に記載の装置。
【0158】
8. 制御情報が、パケットチェックサムの計算が実行されるという指示、またはパケットのシーケンス番号がデータフローのパケットに追加されるという指示のうちの少なくとも1つをさらに備える、条項6に記載の装置。
【0159】
9. 1つまたは複数のトンネリングアクションが非カプセル化アクションを備え、制御情報が、データフローのパケットがそれから非カプセル化されるプロトコルについての指示を備える、条項1に記載の装置。
【0160】
10. 制御情報が、パケットチェックサムの検証が実行されるという指示、またはパケットのシーケンス番号が検証されるという指示のうちの少なくとも1つをさらに備える、条項9に記載の装置。
【0161】
11. 1つまたは複数のプロトコルがセキュリティプロトコルを含み、制御情報が、暗号化アクションまたは復号アクションの少なくとも一方に対するセキュリティ情報をさらに含む、条項1に記載の装置。
【0162】
12. プロセッサを、
データフローのためのデータフロー定義を決定することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含む、データフロー定義を決定することと、
データフローに対して実行される1つまたは複数のトンネリングアクションを決定することであって、1つまたは複数のトンネリングアクションがカプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む、トンネリングアクションを決定することと、
転送要素に向けて、データフロー定義と1つまたは複数のトンネリングアクションとについて示す制御情報を伝搬することと、
のために使用すること、
を含む、方法。
【0163】
13. プロセッサと、プロセッサに通信可能に接続されたメモリと、
を備え、プロセッサが、
制御要素から、データフローのためのデータフロー定義と、データフローに対して実行される1つまたは複数のトンネリングアクションとを含む制御情報を受信することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含み、1つまたは複数のトンネリングアクションがカプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む、制御情報を受信することと、
データフローのパケットを制御情報に基づいて処理することと、
を行うように構成されている、装置。
【0164】
14. プロセッサが、データフローのパケットを、制御情報に基づいて、
パケットが関連するデータフローを、パケット内に含まれる情報とデータフローのデータフロー定義とに基づいて識別することと、
データフローに対して実行される1つまたは複数のトンネリングアクションを、データフロー定義の、1つまたは複数のトンネリングアクションへのマッピングに基づいて識別することと、
1つまたは複数のトンネリングアクションをデータフローのパケットに対して実行することと、
によって処理するように構成されている、条項13に記載の装置。
【0165】
15. 1つまたは複数のトンネリングアクションが、データフローのパケットをトンネルの中に移動させること、データフローのパケットをトンネル間で移動させること、またはデータフローのパケットをトンネルの外に移動させることのうちの少なくとも1つのために構成されている、条項13に記載の装置。
【0166】
16. 1つまたは複数のトンネリングアクションが、データフローのパケットをネイティブ転送インフラストラクチャからトンネルの中に移動させること、またはパケットをトンネルからネイティブ転送インフラストラクチャに移動させることのうちの少なくとも1つのために構成されている、条項13に記載の装置。
【0167】
17. 1つまたは複数のトンネリングアクションがカプセル化アクションを備え、制御情報が、データフローのパケットをカプセル化するために使用されるプロトコルについての指示と、データフローのパケットをカプセル化するために使用される少なくとも1つのプロトコルヘッダフィールドについての指示とを含む、条項13に記載の装置。
【0168】
18. 制御情報が、少なくとも1つのプロトコルヘッダフィールドについて設定される、少なくとも1つのプロトコルヘッダフィールド値をさらに備える、条項17に記載の装置。
【0169】
19. 制御情報が、パケットチェックサムの計算が実行されるという指示、またはパケットのシーケンス番号がデータフローのパケットに追加されるという指示のうちの少なくとも1つをさらに備える、条項17に記載の装置。
【0170】
20. 1つまたは複数のトンネリングアクションが非カプセル化アクションを備え、制御情報が、データフローのパケットがそれから非カプセル化されるプロトコルについての指示を備える、条項13に記載の装置。
【0171】
21. 制御情報が、パケットチェックサムの検証が実行されるという指示、またはパケットのシーケンス番号が検証されるという指示のうちの少なくとも1つを備える、条項20に記載の装置。
【0172】
22. 1つまたは複数のプロトコルがセキュリティプロトコルを含み、1つまたは複数のトンネリングアクションが、暗号化アクションまたは復号アクションの少なくとも一方を含む、条項13に記載の装置。
【0173】
23. プロセッサを、
制御要素から、データフローのためのデータフロー定義と、データフローに対して実行される1つまたは複数のトンネリングアクションとを含む制御情報を受信することであって、データフロー定義が1つまたは複数のプロトコルの1つまたは複数のプロトコルヘッダフィールドに基づき、1つまたは複数のプロトコルが、1つまたは複数のネットワーク層プロトコル、あるいは1つまたは複数のトランスポート層プロトコルを含み、1つまたは複数のトンネリングアクションが、カプセル化アクションまたは非カプセル化アクションの少なくとも一方を含む、制御情報を受信することと、
データフローのパケットを制御情報に基づいて処理することと、
のために使用すること、
を含む、方法。
【0174】
本明細書で示された内容を組み込んだ様々な実施形態が、本明細書で詳細に図示され、説明されたが、当業者が、これらの内容も組み込んだ、多くの他の変更された実施形態を容易に考案することができるということが理解される。
図1
図2
図3
図4
図5
図6