(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-04
(45)【発行日】2022-07-12
(54)【発明の名称】多重パケット処理コア上の無線加入者パケット処理の負荷分散
(51)【国際特許分類】
H04L 45/74 20220101AFI20220705BHJP
【FI】
H04L45/74
(21)【出願番号】P 2019560079
(86)(22)【出願日】2018-01-25
(86)【国際出願番号】 US2018015276
(87)【国際公開番号】W WO2018140621
(87)【国際公開日】2018-08-02
【審査請求日】2021-01-22
(32)【優先日】2017-01-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100173565
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】マハパトラ,アシマ
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2015-050772(JP,A)
【文献】欧州特許出願公開第02843885(EP,A1)
【文献】特開2013-078134(JP,A)
【文献】中国特許出願公開第101878663(CN,A)
【文献】国際公開第2015/161384(WO,A1)
【文献】特表2017-518717(JP,A)
【文献】特表2013-533705(JP,A)
【文献】中国特許出願公開第103385033(CN,A)
【文献】韓国公開特許第10-2013-0033388(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
通信システムにおいてパケットハンドラコアにパケットを送信するためのコンピューティングシステムであって、
プロセッサと、
メモリであって、前記プロセッサに結合され、かつ前記プロセッサによって実行されるとき、前記プロセッサに、
セッションを作成する要求を受信することであって、前記要求が加入者に対応することと、
ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
前記データパケットがプロキシサービスを必要とするかを判定することと、
前記データパケットが前記プロキシサービスを必要としないことを判定したときに、
前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が前記セッションを一意的に識別することと、
前記ダウンストリーム識別子または前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別することと、
前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングすることと、
前記データパケットが前記プロキシサービスを必要とすることを判定したときに、
前記データパケットに対する前記プロキシサービスを識別することと、
前記データパケットを前記プロキシサービスにルーティングすることと、
前記パケットハンドラコアに対する識別子を前記ダウンストリーム識別子と相関させることと、
前記パケットハンドラコアに対する前記識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることと、
を行わせる、コンピュータ可読命令を含む、メモリと、
を備える、コンピューティングシステム。
【請求項2】
前記アップストリーム識別子が、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記プロセッサに、前記暗号化キーを使用して、前記データパケットを暗号化または復号化することをさらに行わせる、請求項2に記載のコンピューティングシステム。
【請求項4】
前記ダウンストリーム識別子が、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレスまたはTEIDのうちの1つを含む、請求項1に記載のコンピューティングシステム。
【請求項5】
前記アップストリーム識別子および前記ダウンストリーム識別子が共通の値を共有する、請求項1に記載のコンピューティングシステム。
【請求項6】
前記共通の値が、前記アップストリーム識別子および前記ダウンストリーム識別子の最初の24ビット部分を含む、請求項5に記載のコンピューティングシステム。
【請求項7】
前記プロセッサに、前記セッション識別子にハッシュ化アルゴリズムを適用して、前記パケットハンドラコアを判定することをさらに行わせる、請求項1に記載のコンピューティングシステム。
【請求項8】
通信システムにおいてパケットハンドラコアにパケットを送信するための方法であって、
コンピューティングデバイスによって、セッションを作成するための要求を受信するステップであって、前記要求が加入者に対応するステップと、
前記コンピューティングデバイスによって、ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てるステップと、
前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信するステップと、
前記データパケットがプロキシサービスを必要とするかを判定するステップと、
前記データパケットが前記プロキシサービスを必要としないことを判定したときに、
前記コンピューティングデバイスによって、前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けるステップであって、前記セッション識別子が前記セッションを一意的に識別する、ステップと、
前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別するステップと、
前記コンピューティングデバイスによって、前記セッション識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングするステップと、
前記データパケットが前記プロキシサービスを必要とすることを判定したときに、
前記データパケットに対する前記プロキシサービスを識別するステップと、
前記データパケットを前記プロキシサービスにルーティングするステップと、
前記パケットハンドラコアに対する識別子を前記ダウンストリーム識別子と相関させるステップと、
前記パケットハンドラコアに対する前記識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングするステップと、
を含む、方法。
【請求項9】
前記アップストリーム識別子が、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む、請求項8に記載の方法。
【請求項10】
前記暗号化キーを使用して、前記データパケットを暗号化または復号化するステップのうちの1つ以上をさらに含む、請求項
9に記載の方法。
【請求項11】
前記ダウンストリーム識別子が、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレス、またはTEIDのうちの1つを含む、請求項8に記載の方法。
【請求項12】
前記アップストリーム識別子および前記ダウンストリーム識別子が、共通の値を共有する、請求項8に記載の方法。
【請求項13】
前記共通の値が、前記アップストリーム識別子および前記ダウンストリーム識別子の最初の24ビット部分を含む、請求項12に記載の方法。
【請求項14】
前記セッション識別子にハッシュ化アルゴリズムを適用して、前記パケットハンドラコアを判定するステップをさらに含む、請求項8に記載の方法。
【請求項15】
通信システムにおいてパケットハンドラコアにパケットを送信するためのコンピューテ
ィングシステムであって、
プロセッサと、
メモリであって、前記プロセッサに結合され、前記プロセッサによって実行されるとき、前記プロセッサに、
セッションを作成する要求を受信することであって、前記要求が加入者に対応することと、
ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が前記セッションを一意的に識別する、ことと、
前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
前記データパケットがプロキシサービスを必要とすることを判定することと、
前記データパケットが前記ダウンストリーム識別子または前記アップストリーム識別子を含むかどうかを判定することと、これにより、
前記データパケットが前記アップストリーム識別子を含むとき、前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別し、かつ、前記セッション識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることと、
前記データパケットが前記ダウンストリーム識別子を含むとき、前記ダウンストリーム識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることであって、該ルーティングがさらに、UEプールアドレスドメインとプロキシループバックアドレスドメインとに分割される、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、前記データパケットが前記プロキシサービスからのシステム開始プロキシトラフィックであるか、またはダウンストリーム加入者トラフィックであるかの判定に基づく、ことと、
を行わせる、コンピュータ可読命令を含む、メモリと、
を備える、コンピューティングシステム。
【請求項16】
前記ダウンストリーム識別子が、UEループバックIPアドレスを含む、請求項15に記載のコンピューティングシステム。
【請求項17】
前記アップストリーム識別子がTEIDを含む、請求項15に記載のコンピューティングシステム。
【請求項18】
通信システムにおいてパケットハンドラコアにパケットを送信するための方法であって、
コンピューティングデバイスによって、セッションを作成するための要求を受信するステップであって、前記要求が加入者に対応する、ステップと、
前記コンピューティングデバイスによって、ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てるステップと、
前記コンピューティングデバイスによって、前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けるステップであって、前記セッション識別子が前記セッションを一意的に識別するステップと、
前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信するステップと、
前記コンピューティングデバイスによって、前記データパケットが、プロキシサービスを必要とすることを判定するステップと、
前記コンピューティングデバイスによって、前記データパケットが、前記ダウンストリーム識別子または前記アップストリーム識別子を含むかどうかを判定するステップと、これにより、
前記データパケットが前記アップストリーム識別子を含むとき、前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別し、かつ、前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングするステップと、
前記データパケットが前記ダウンストリーム識別子を含むとき、前記ダウンストリーム識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングするステップであって、該ルーティングがさらに、UEプールアドレスドメインとプロキシループバックアドレスドメインとに分割される、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、前記データパケットが前記プロキシサービスからのシステム開始プロキシトラフィックであるか、またはダウンストリーム加入者トラフィックであるかの判定に基づく、ステップと、
を含む、方法。
【請求項19】
前記ダウンストリーム識別子が、UEループバックIPアドレスを含む、請求項18に記載の方法。
【請求項20】
前記アップストリーム識別子が、TEIDを含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2017年1月25日に出願された米国仮特許出願第62/450,162号に対する優先権を主張するものであり、同出願は、参照により本明細書に組み込まれる。
【0002】
本発明の実施形態は、概して、電気通信システムに関し、具体的には、通信システムにおけるデータパケットの処理およびルーティングに関する。
【背景技術】
【0003】
データファイルが、電気通信ネットワークを介して移送されるとき、それらを、処理のために送信元から宛先へルーティングされるデータ「パケット」に分解することができる。パケットネットワークアプリケーションの複雑さが増すにつれて、多重プロセッサコアアーキテクチャ(「マルチコアネットワーク」)の使用がますます普及してきている。
【発明の概要】
【0004】
開示されている主題に従って、通信システム内のパケットハンドラコアにパケットを送信するためにシステムおよび方法が提供されている。いくつかの実施形態では、開示されている主題は、加入者に対応する要求を受信してセッションを作成するためのコンピューティングデバイスを含む。いくつかの実施形態では、コンピューティングデバイスは、セッションにダウンストリーム識別子およびアップストリーム識別子を割り当て、セッションにセッション識別子を関連付ける。いくつかの実施形態では、セッション識別子は、加入者に関連付けられているセッションを一意的に識別する。いくつかの実施形態では、コンピューティングデバイスは、ダウンストリーム識別子またはアップストリーム識別子を含むデータパケットを受信し、受信したダウンストリーム識別子またはアップストリーム識別子に基づいて、データパケットに関連付けられているセッション識別子を識別する。いくつかの実施形態では、コンピューティングデバイスは次いで、セッション識別子に基づいて、データパケットをパケットハンドラコアにルーティングする。
【0005】
いくつかの実施形態では、アップストリーム識別子は、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む。いくつかの実施形態では、プロセッサは、暗号化キーを使用して、データパケットを暗号化または復号化し得る。いくつかの実施形態では、ダウンストリーム識別子は、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレスまたはTEIDを含む。いくつかの実施形態では、アップストリーム識別子およびダウンストリーム識別子は、共通の値を共有する。例えば、共通の値は、アップストリーム識別子およびダウンストリーム識別子の最初の24ビットを含み得る。いくつかの実施形態では、プロセッサは、セッション識別子にハッシュ化アルゴリズムを適用してパケットハンドラコアを判定し得る。いくつかの実施形態では、プロセッサは、データパケットに対するプロキシサービスを識別し、データパケットをプロキシサービスモジュールへとルーティングし、パケットハンドラコアの識別子をセッション識別子と相関させ得る。いくつかの実施形態では、プロセッサは、パケットハンドラコアに対する識別子に基づいて、データパケットをパケットハンドラコアにルーティングし得る。
【0006】
いくつかの実施形態では、システム開始プロキシトラフィックは、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、ダウンストリーム加入者トラフィックと区別され得る。いくつかの実施形態では、MPLSスペースは、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割されてもよい。
【0007】
開示されている主題のこれらおよび他の能力は、以下の図面、詳細な説明、および特許請求の範囲を検討した後にさらに十分に理解されるであろう。本明細書で採用されている言い回しおよび用語は、説明を目的としており、限定と見なされるべきではないことを理解されたい。
【0008】
開示されている主題の様々な実施形態のより完全な理解のために、添付の図面に関連してなされる以下の説明をここで参照する。
【図面の簡単な説明】
【0009】
【
図1】開示されている主題のいくつかの実施形態による、マルチコア通信システムを通るパケットフローを説明する図である。
【
図2】開示されている主題のいくつかの実施形態による、単一ルート入力/出力仮想化(「SR-IOV」)を使用したデータプレーン開発キット(「DPDK」)ポートビットマスクを図示する。
【
図3】開示されている主題のいくつかの実装形態による、SR-IOVデータポート接続性を説明する図である。
【
図4】開示されている主題のいくつかの実装形態による、SR-IOVコアマッピングを説明する図である。
【
図6】開示されている主題のいくつかの実施形態による、モバイルコンテンツクラウド(「MCC」)を使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図7】開示されている主題のいくつかの実施形態による、スタンドアロンパケットデータネットワークゲートウェイ(「PGW」)およびスタンドアロンサービングゲートウェイ(「SGW」)を有する非プロキシMCCアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図8】開示されている主題のいくつかの実施形態による、「G
i」ゲートウェイとしてMCCを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図9】開示されている主題のいくつかの実施形態による、信頼できる無線アクセスゲートウェイ(「WAG」)を使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図10】開示されている主題のいくつかの実施形態による、インターネットプロトコルセキュリティ(「IPsec」)暗号化を用いた信頼できるWAGを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図11】開示されている主題のいくつかの実施形態による、進化したパケットデータゲートウェイ(「ePDG」)を使用した負荷分散ハッシュ化を説明する図である。
【
図12】開示されている主題のいくつかの実施形態による、プロキシトラフィックアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図13】開示されている主題のいくつかの実施形態による、プロキシおよび非プロキシマルチプロトコルラベルスイッチング(「MPLS」)トラフィックアプリケーションのための負荷分散ハッシュ化を説明する図である。
【
図14】開示されている主題のいくつかの実施形態による例示的なネットワークアーキテクチャを説明する図である。
【
図15】開示されている主題のいくつかの実施形態による、MCCの例示的構成を説明する図である。
【
図16】開示されている主題のいくつかの実施形態によるセッションを確立することに関するフロー図である。
【
図17】開示されている主題のいくつかの実施形態によるセッションを確立するための方法を説明するフローチャートである。
【
図18】開示されている主題のいくつかの実施形態によるアップストリームデータパケットを処理するための方法を説明するフローチャートである。
【
図19】開示されている主題のいくつかの実施形態によるダウンストリームデータパケットを処理するための方法を説明するフローチャートである。
【
図20】開示されている主題のいくつかの実施形態による、プロキシサービスを含むデータパケットを処理するための方法を説明するフローチャートである。
【発明を実施するための形態】
【0010】
本明細書に記載のいくつかの実施形態は、所与の無線加入者に対するパケット処理の単一の「パケットハンドラ」(パケット処理装置)のコアへの閉じ込め、または「ピン留め」に関し、それによって電気通信システムにおけるスループットを改善し、キャッシュミスの確率および発生率を低減する。例えば、パケットヘッダデータは、加入者のトンネルエンドポイント識別子(「TEID」)および/またはセッション識別子(「セッションID」または「ワークフローセッションID」)を含むことができ、負荷分散装置コアは、一方または両方の識別子を使用して、パケットの双方向トラフィックが方向付けられるパケットハンドラ(パケット処理装置)コアを選択することができる。いくつかのそのような実施形態では、ハッシュ化アルゴリズムを使用して、多数のUEを多数のパケットハンドラコアの各々に分配し、多数のコアにわたって集合的な負荷を均衡させる。
【0011】
他の実施形態は、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、システム開始プロキシトラフィックとダウンストリームUE(例えば、非プロキシ)トラフィックとを区別することに関する。例えば、MPLSラベルスペースは、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割することができる。
【0012】
アップストリームおよびダウンストリームのトラフィックを識別してルーティングするためのTEIDおよびワークフローセッションIDの使用
アクセスネットワークとパケットデータネットワークとの間で電気通信トラフィックをルーティングする従来の方法は、パケット送信元データおよびパケット宛先データ上のパケット処理コアの選択に基づいていた。対照的に、本開示の実施形態では、所与の無線加入者のユーザ機器(「UE」)について、ネットワークのアクセス側から受信されたパケットおよびインターネットコアから来る対応する応答パケットが識別され、対応する加入者のトンネルエンドポイント識別子(「TEID」)およびワークフローセッションIDに基づいて、処理コアにルーティングされる。DPDK負荷分散装置コアは、特定のコアを選択/割り当てするためにTEIDおよびワークフローセッションIDの共通の値(例えば、それぞれの最初の24ビット)を使用し、それによって、ワークフローセッションIDに対応するUE加入者セッションがアクティブである限り、そのUEのパケット処理をそのコアにピン留めする。いくつかの実装形態では、TEIDは、モビリティ管理エンティティ(「MME」)または進化したノードB(「eNodeB」)と本開示のMCCとの間でネゴシエートされる加入者特有の識別子である。例えば、いくつかの実施形態では、初期の「セッション作成」要求がMME/eNodeBからMCCに送信される。MCCは、ワークフローセッションID(例えば24ビット)、ワークフローセッションIDを含むトンネリングID(「TEID」)(例えば、24ビットのワークフローセッションIDを含む32ビット)、およびUEのIPアドレスを割り当てる。言い換えれば、ワークフローセッションIDの割り当ては、TEIDの最初の24ビットをワークフローセッションIDの24ビットとして複製することを含むことができる(各々の最初の24ビットが一致するのを確実にする)。MCCにおけるこれらの割り当ては、本明細書に記載の1つ以上のシステムによって実行することができる。MCCは、TEIDおよびUEのIPアドレスをMME/eNodeBに返送し、MME/eNodeBは修正されたTEIDをMCCに返送する。いくつかのそのような実施形態では、修正されたTEIDは、元々提案されたTEIDのTEIDと同じ24ビットのワークフローセッションIDを含む。関連付けられたセッション中に、指定されたユーザに割り当てられたデータパケットの識別および/またはルーティングのために後で使用される最終的なTEIDをもたらすのは、MME/eNodeBとMCCとの間のこの往復のネゴシエーションである。MCCにおいて、最終的なTEIDは、後で使用するために、制御プレーンからWSMおよびデータプレーン内の1つ以上のIOMに転送される。TEIDは、入出力多重化(「IOM」)段階でパケットヘッダに追加することができる。ネゴシエートされたTEIDが確立されると、1つ以上のUEから発信されて、TEIDを含むヘッダを有する加入者データパケットを、事実上、MCCへGTP-Uトンネリングすることができる。次いで、ハッシュ化アルゴリズムをパケットヘッダに対して使用して、利用可能なすべてのコアにわたって多数のUEを割り当てるまたは分配することができる。
【0013】
図14は、いくつかの実施形態による例示的なネットワークアーキテクチャを説明する図である。ユーザ機器(「UE」)1402は、eNodeB1404と通信し、eNodeB1404は、次にモビリティ管理エンティティ(「MME」)1406およびモバイルコンテンツクラウド(「MCC」)1416と通信する。MCC1416は、サービングゲートウェイ(「SGW」)1408、パケットデータネットワークゲートウェイ(「PGW」)1410、一連のワークフローサービスモジュール(「WSM」)、および一連の入力/出力マルチプレクサ(「IOM」)1414を含む、いくつかの論理ノードを含む。MCC1416は、インターネット1422などのパケットデータネットワークにさらに接続されており、それを介して、MCC1416は、外部サーバ1424にアクセスすることができる。MCC1416は、UE1402に関連付けられているアップストリームデータパケット1418を受信する。MCC1416はまた、UE1402に関連付けられているダウンストリームパケット1420も受信する。いくつかの実施形態では、アップストリームパケットは、一般にUE1402から流れ出るパケットを指し、ダウンストリームパケットは、一般にUE1402に向かって流れるパケットを指す。以下でさらに詳細に説明するように、MCC1416は、TEID、UEのIPアドレス、およびセッションIDを使用して、UE1402に関連付けられたアップストリームおよびダウンストリームパケットの両方のルーティングおよび処理をMCC内の一定のパケットハンドラコアにピン留めする。
【0014】
図15は、MCC1416の例示的構成を説明する図である。MCC1416は、1つ以上の物理的または仮想的処理コアを有する処理マシン上に実装することができる。図示のように、論理ノードは、スイッチ1502を介して接続されている。例えば、一連のワークフローサービスモジュール(「WSM」)1412、一連の入力/出力マルチプレクサ(「IOM」)1414、および一連のSGW1408/PGW1410モジュールのための論理ノードがスイッチ1502に接続されている。一連のワークフローサービスモジュール(「WSM」)1412の各々は、負荷分散コア(「LBC」)1504および一連のパケットハンドラコア(「PHC」)1506を含む。入力/出力マルチプレクサは、アップストリームデータパケット1418およびダウンストリームデータパケット1420を受信するように構成されている。一連の入力/出力マルチプレクサ(「IOM」)1414の各々はまた、特定のWSMおよびPHCを選択して着信データパケットに割り当てるために使用される1つ以上のテーブルを含む。
【0015】
図16は、いくつかの実施形態によるフロー図を図示する。ステップ1602において、MCC1416は、MME1406からユーザデバイスのためのセッションを作成する要求を受信する。要求は、MCC1416が、ユーザデバイスに向けられたダウンストリームトラフィックのために後で使用するTEID(「TEID_D」と表記される)を含む。ステップ1604で、MCC1416は、新しいセッションに関連付けられ、ユーザデバイスに関連付けられたアップストリームトラフィックのためにeNodeB1404/MME1406によって使用されることになるTEID(「TEID_U」と表記される)を作成する。MCC1416はまた、新しいセッションに関連付けられているセッションIDを作成する。いくつかの実施形態では、TEID_UおよびセッションIDは、共通の値を共有する。例えば、TEID_Uの最初の24ビットは、セッションIDの最初の24ビットと一致してもよい。TEID_UおよびセッションIDが作成されると、MCC1416は、新たに作成されたTEID_Uが新たに作成されたセッションIDに対応することをMCC1416内のすべてのIOMに通知する。いくつかの実施形態では、個々のIOMは、この情報の記録をテーブルに保存し得る。
【0016】
MCC1416はまた、新しいセッションに関連付けられているUEのIPアドレスも割り当てる。このUEのIPアドレスは、インターネット1422などの外部データネットワークへの発信トラフィックに対する送信元IPアドレスとして使用される。それはまた、外部データネットワークからユーザデバイスへの着信トラフィックの宛先IPアドレスとしても使用される。UEのIPアドレスを作成すると、MCC1416は、新たに作成されたUEのIPアドレスが新たに作成されたセッションIDと相関していることをMCC1416内のすべてのIOMに通知する。いくつかの実施形態では、個々のIOMは、この相関の記録をテーブルに保存し得る。ステップ1606において、MCC1416は、eNodeB1404/MME1406にセッション作成応答を送信する。セッション作成応答は、TEID_Uを含む。
【0017】
ステップ1608において、MCCは、eNodeB1404/MME1406からアップストリームデータパケットを受信する。アップストリームデータパケットは、以前に確立されたTEID_Uを含む。ステップ1610において、MCC1416は、TEID_Uに対応するセッションIDを識別する。いくつかの実施形態では、IOMは、TEID_Uをテーブルへのインデックスとして使用することによってセッションIDを識別する。次いで、IOMは、アップストリームデータパケットを処理するためにセッションIDに基づいて、ワークフローサービスモジュール(「WSM」)を選択し、アップストリームデータパケットを選択されたWSMにルーティングする。WSMは、セッションIDに基づいて、特定のパケットハンドラコア(「PHC」)を選ぶ。いくつかの実施形態では、セッションIDに基づいて、アップストリームデータパケットをPHCに分配するためにハッシュ化アルゴリズムが使用される。ステップ1612において、アップストリームデータパケットは、外部データネットワーク(例えば、インターネット1422)内のその宛先アドレスにルーティングされる。
【0018】
ステップ1614において、MCC1416は、UEのIPアドレスを含むダウンストリームデータパケットを受信する。UEのIPアドレスは、ダウンストリームデータパケットがデバイスユーザに関連付けられていることを指し示す。ステップ1616において、MCC1416は、UEのIPアドレスに対応するセッションIDを識別する。いくつかの実施形態では、IOMは、UEのIPアドレスをテーブルへのインデックスとして使用することによってセッションIDを識別する。その後、IOMは、ダウンストリームデータパケットを処理するためにセッションIDに基づいて、ワークフローサービスモジュール(「WSM」)を選択し、ダウンストリームデータパケットを選択されたWSMにルーティングする。WSMは、セッションIDに基づいて、特定のパケットハンドラコア(「PHC」)を選ぶ。いくつかの実施形態では、セッションIDに基づいて、ダウンストリームデータパケットをPHCに分配するためにハッシュ化アルゴリズムが使用される。このダウンストリームデータパケット用に識別されたセッションIDは、アップストリームデータパケット用に識別されたセッションIDと一致するので、デバイスユーザに関連付けられたトラフィックは、特定のパケットハンドラコアに閉じ込めまたは「ピン留め」される。代替的に、いくつかの実施形態では、ステップ1614で受信されたUEのIPアドレスは、パケットハンドラコアに直接マッピングされる。例えば、IOMは、UEのIPアドレスを対応するセッションIDに対して以前に識別されたパケットハンドラコアと相関させるテーブルを保持してもよい。パケットハンドラコアは、ダウンストリームデータパケットを処理する。ステップ1618において、ダウンストリームデータパケットは、TEID_Dを使用して、eNodeB1404/MME1406にルーティングされる。
【0019】
図17は、いくつかの実施形態によるセッションを確立するための方法を説明するフローチャートである。ステップ1702において、セッションを作成する要求が受信される。ステップ1704において、両方とも新しいセッションに関連付けられたTEID_UおよびセッションIDが作成される。ステップ1706において、IOMは、相関付けされたTEID_UとセッションIDとを通知される。いくつかの実施形態では、IOMは、この相関の記録をテーブルに保存し得る。ステップ1708において、新しいセッションに対応するUEのIPアドレスが作成される。ステップ1710において、IOMは、UEのIPアドレスと、その新しいセッションおよびセッションIDとの相関関係とを通知される。いくつかの実施形態では、個々のIOMは、この相関の記録をテーブルに保存し得る。いくつかの実施形態では、UEのIPアドレスは、パケットハンドラコアに直接マッピングされる。ステップ1712で、TEID_Uを含むセッション作成応答が送信される。
【0020】
図18は、いくつかの実施形態によるアップストリームデータパケットを処理するための方法を説明するフローチャートである。ステップ1802において、アップストリームデータパケットが受信される。アップストリームデータパケットは、セッションIDに対応するTEID_Uを含む。ステップ1804において、TEID_Uが、アップストリームデータパケットから抽出される。ステップ1806において、TEID_Uに対応するセッションIDが、ルックアップテーブルに基づいて、識別される。ステップ1808において、アップストリームデータパケットが、識別されたセッションIDに基づいて、WSMに割り当てられる。ステップ1810において、アップストリームデータパケットが、セッションIDに基づいて、パケットハンドラコアにさらに割り当てられる。いくつかの実施形態では、アップストリームデータパケットは、セッションIDのハッシュ値に基づいて、特定のパケットハンドラコアに割り当てられる。
【0021】
図19は、いくつかの実施形態によるダウンストリームデータパケットを処理するための方法を説明するフローチャートである。ステップ1902において、ダウンストリームデータパケットが受信される。ダウンストリームデータパケットは、セッションIDに対応するUEのIPアドレスを含む。ステップ1904において、UEのIPアドレスが、ダウンストリームデータパケットから抽出される。ステップ1906において、UEのIPアドレスに対応するセッションIDが、ルックアップテーブルに基づいて、識別される。ステップ1908において、ダウンストリームデータパケットが、識別されたセッションIDに基づいて、WSMに割り当てられる。ステップ1910において、アップストリームデータパケットが、セッションIDに基づいて、パケットハンドラコアにさらに割り当てられる。いくつかの実施形態では、ダウンストリームデータパケットは、セッションIDのハッシュ値に基づいて、特定のパケットハンドラコアに割り当てられる。
【0022】
インターネットコアに面するインターフェース上でシステム開始プロキシトラフィックからUEトラフィックを区別するためのMPLSラベルスペースの分割
いくつかの実施形態では、マルチプロトコルラベルスイッチング(「MPLS」)がコア側で使用されるとき、ダウンストリームUEトラフィックからシステム開始プロキシトラフィックを区別するために、MPLSラベルスペースを2つの異なるドメイン:UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割することができる。所与のUEのIPアドレスに対応するスタティックルートは、UEドメインからのラベルを使用して、アドバタイズすることができ、プロキシループバックアドレスに対応するスタティックルートは、マルチプロトコルボーダーゲートウェイプロトコル(「MP-BGP」)によってループバックアドレスドメインからのラベルを使用して、アドバタイズすることができる。DPDK負荷分散装置コアは、次いでラベル範囲情報を使用して、ダウンストリームUEトラフィックからプロキシトラフィックを区別することができる。例えば、ダウンストリームプロキシトラフィックパケットが5タプル値(例えば、送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、およびイーサタイプのうちの1つ以上)に基づいて、負荷分散されるとき、UEパケットはセッションIDに基づいて、負荷分散することができる。
【0023】
ダウンストリームプロキシトラフィックをピン留めするためのIPv4送信元ネットワークアドレス変換(「NAT」)アドレス内へのコアID情報の埋め込み
システムが加入者/UEに対するプロキシサービスを識別すると、その加入者/UEからのすべてのパケットは、プロキシサービスのために付加価値サービス(「VAS」)モジュールに導かれる。ワークフローサービスモジュールは、IPv4ベースの送信元NATを使用して、VASモジュールと通信する。NATアドレスの3番目のバイトは、コアID情報を搬送するためにエンコードされている。リターンパスでは、ワークフローサービスモジュール上の負荷分散装置コアがNATアドレスからコア情報を抽出し、ダウンストリーム処理のための対応するコアにパケットを導く。これは、確実にアップストリームおよびダウンストリームのUEプロキシトラフィックが同じコアで処理され、L2キャッシュの利用率を最大化し、システムのパフォーマンスを向上するようにする。
【0024】
従来のソリューションは、パケットコアをピックアップするためのハッシュ値としてのUEアドレスに基づいていた。しかし、このソリューションは、様々なサービスプラットフォームにわたって機能しなかった。さらに、ワークフローサービスモジュールでのプロキシトラフィック負荷分散、ならびにMPLSラベルに基づいて、プロキシ対プロキシなしのダウンストリームトラフィックを識別するためのソリューションはなかった。
【0025】
TEIDとセッションIDとに基づいて、UEトラフィックをピン留めすることは、データスループットを向上させるためのすべてのサービスプラットフォームにわたる包括的なソリューションである。MPLSラベルを使用して、ダウンストリームUEトラフィックを識別し、コア情報をNATアドレスに埋め込むことは、UEを特定のコアに結びつけることのさらなる補助となり、それによってより良好なユーザエクスペリエンスを強化する。
【0026】
ここで図面に目を向けると、
図1は、開示されている主題のいくつかの実施形態による、マルチコア通信ネットワークを通るパケットフローを説明する図である。例えば、WSMモジュール、IOMモジュール、または組み合わされたWSM/IOMモジュールは、図示のように実装され得る。
図1に示すように、マルチコアシステム100は、デバイス層、入力/出力(「I/O」)層、およびパケットハンドラ層(本明細書では「高速経路」層とも呼ばれる)を含む。一般に、本明細書で使用されるとき、データセンター内のあるサーバから発信されて別のサーバへと通るパケットは、東西(「E/W」)方向に進み、E/Wポート(112A、112B)を通過すると言われる。一方で、モバイルデバイスまたはコンピュータなどの、ネットワーク加入者のユーザ機器(UE)とパケットデータネットワーク宛先(例えばインターネット)との間を通過するパケットは、南北(「N/S」)方向に進み、N/Sポート(114A、114B)を通過すると言われる。マルチコアシステム100では、E/Wポート112BおよびN/Sポート114Bは、任意選択的である。パケットトラフィックがE/WであるかN/Sであるかにかかわらず、対応するパケットは、データプレーン開発キット(「DPDK」)ポールモードドライバ(110A、11B)を介してI/O層に渡され、受信(Rx)コア(106A、106B)によってI/O層内で受信される。Rxコアは、それに動作可能に結合された関連負荷分散装置(「LB」)コア(104A、104B)にパケットを渡す。次に、LBコアは、それぞれのLBコアによって修正されている場合があるパケットを、サービス品質(「QoS」)キューを介して複数のパケットハンドラ(「HD」)コア(102A、102B)のうちの1つに渡す。多重パケットハンドラコア(例えば、高速経路層内の)の利用可能性およびそれを介したルーティングにより、パケットデータサブセットは、同じデータサブセットに対して調整されていない編集が行われているために破損する可能性があり、データ破損のリスクを軽減するために、データ構造を「ロック」するためのメカニズムが必要となり得る。処理のために要求されたデータがキャッシュメモリ内で見つからないというキャッシュミスも、パケットが多重コアを介してルーティングされるときに発生する可能性があり、処理の遅延をもたらす。本明細書で説明する技法を使用すると、キャッシュミスおよびロッキングメカニズムの必要性は、所与の加入者/UEに対するパケットトラフィックをマルチコアシステム内の単一のパケットハンドラコアに「ピン留め」することによって低減または排除され、そのため、すべての対応するノースバウンドトラフィックとサウスバウンドトラフィックは、同じパケットハンドラコアを通過する。本明細書に記載の方法は、プロキシアプリケーションに対しても実装することができる。例えば、N/Sポート114を介してUEから来るパケットは、Rxコア106Bを通過し、次いでLBコア104Bへと通過し得る。LBコア104Bは、パケットハンドラコア(102B)のうちの1つをパケットに割り当てることができる。また、パケットがプロキシパケットであると判定すると、LBコア104Bは、パケットの内部ネットワークアドレス変換(「NAT」)変換を実行して、パケットが処理のために内部プロキシにルーティングされるように指示するIPアドレスおよび送信元ポートを埋め込むことができる。パケットを処理している間、パケットハンドラコア102Bは、(例えば、LBコア104Bによってパケットに対して行われた修正に基づいて)そのパケットがプロキシパケットであると判定し、処理のために、パケットハンドラコア102Bと同じ場所にあるか、またはそれから離れている別のサーバにパケットを転送することができる。リターンパスを定義するために、サーバは、パケットがパケットハンドラコア102Bを介してN/Sポート114Aに確実にルーティングバックされるようにするために、パケットからIPアドレスおよび宛先ポート番号を抽出する。
【0027】
図2は、開示されている主題のいくつかの実施形態による、単一ルート入力/出力仮想化(「SR-IOV」)を使用するDPDKポート220-ビットマスクを図示する。いくつかの実装形態では、システムは、内部使用のために、どのポートがN/Sポートであり、どのポートがE/Wポートであるかのマッピングを格納する。このマッピングは、各イーサネットポートを「G
i」(例えば、インターネットに面する)ポートまたは「G
n」(例えば、加入者からのトラフィック)ポートとして定義するために使用することができる。XMLコードで書かれた、このポートマッピングのスニペットの例は次のとおりである。
/etc/platform/platform.xml
platform.xml->/etc/platform/platform_SRIOV_RED.xml
<!--Variables for DPDK-->
<dpdk>
<sriov>true</sriov>
<loadbalDpdkPorts>3c</loadbalDpdkPorts>
<loadbalThreadsCount>1</loadbalThreadsCount>
<loadbalHugePageSize>25</loadbalHugePageSize>
<loadbalHugePageCount>1500</loadbalHugePageCount>
<loadbalCoreCount>fffffff0</loadbalCoreCount>
<loadbalIoCorePortMask0>24</loadbalIoCorePortMask0>
<loadbalIoCorePortMask1>18</loadbalIoCorePortMask1>
<loadbalIoFctGrouping>all-separated</loadbalIoFctGrouping>
<workflowDpdkPorts>24</workflowDpdkPorts>
<workflowThreadsCount>1</workflowThreadsCount>
<workflowHugePageSize>25</workflowHugePageSize
<workflowHugePageCount>1500</workflowHugePageCount>
<workflowCoreCount>fffffff0</workflowCoreCount>
<workflowIoCorePortMask0>24</workflowIoCorePortMask0>
<workflowIoFctGrouping>all-separated</workflowIoFctGrouping>
【0028】
図3は、開示されている主題のいくつかの実装形態による、SR-IOVデータポートの接続性を説明する図である。
図3に示すように、冗長E/Wスイッチ(312A、312B)および冗長N/Sスイッチ(314A、314B)は各々、複数のサーバ322(例えば、C7000ブレードサーバ)に動作可能に結合されている。いくつかの実装形態では、各サーバ322は、単一のN/Sスイッチに接続されている。各スイッチは、多数の関連した仮想機能(「VF」)を有する単一の物理機能(「PF」:328A~328D)を有することができ、これらのVFは、関連VMのインスタンス化時に各PFにマッピングすることができる。各サーバ322は、以下のような多重仮想マシン(「VM」)を含むことができる。(1)デジタル制御モジュール「DCM」VM324、例えば、内部仮想マシンであるためE/Wスイッチにのみ接続されている、(2)入力/出力マルチプレクサ「IOM」VM326。各VMは、
図3に示すように、複数の論理インターフェース(「Eth-3」、「Eth-4」など)を含むことができ、例えば、関連するVMがインスタンス化されている場合は、これらの論理インターフェースをG
iまたはG
nインターフェースとして割り当てることができる。いくつかの実施形態では、各VFは、ただ1つのそのような論理インターフェースに対応する。
【0029】
図4は、開示されている主題のいくつかの実装形態による、SR-IOVコアマッピングを説明する図である。
図4に提示されているように、コア0~3は、VM上で実行されるLinuxオペレーションのために予約されている。コア4は、初期化中にDPDK(Intel提供のライブラリ)によって使用され、その後Linux(登録商標)へとリリースされる。コア5は、バッファプールを定期的に監視するためにDPDKによって使用され、それ以外の場合はLinux(登録商標)によって使用される。
図2を参照して先に図示および説明したように、コア6、8および10は、それぞれ、ポートマスクグループ0に対応するE/Wファブリックポート用のRx、Tx、およびLBに対応する。
図2を参照して先に図示および説明したように、コア7、9および11は、それぞれ、ポートマスクグループ1に対応するN/Sファブリックポート用のRx、Tx、およびLBに対応する。コア12~19(合計7コア)は、パケット処理用に使用される。コア10および11は、負荷分散アルゴリズムを含み、負荷分散は、コア12~19にわたって実装されている。
【0030】
一部の既存の設定では、デフォルトの負荷分散アルゴリズムは、送信元アドレスと宛先アドレスに基づいており、2段階で実行される。第1の段階において、LBコアは、イーサタイプに基づいて、内部IPパケットに対するプロトコルを判定する。MPLSパケットはこの段階中に識別することができ、負荷分散アルゴリズムは、内部IPパケットに対して5タプルに設定することができる。ファブリックパケットおよび他のパケット(または「ペイロード」)タイプは、イーサタイプを調べることによって識別することができる。イーサタイプは、IOMとWSMとの間のパケットのルーティングの目的で、ならびにパケットの方向性(例えば、インターネット境界またはアクセス側境界)を判定するために、および/または、どのプロトコルがイーサネットフレームのペイロードでカプセル化されているかを示すために使用することができる。例えば、IOMは、UEから受信したパケットを抽出し、宛先WSM用のMACアドレスを判定し、パケットにイーサネットヘッダを追加して、パケットが確実に宛先WSMに適切に切り換え/ルーティングされるようにすることができる。
【0031】
ここで
図5を参照すると、ワークフローサービスモジュール(「WSM」)530上で、汎用パケット無線サービス(GPRS)トンネリングプロトコル(「GTP」)ネットワークフローモジュールからワークフローモジュールへ(GNFMからWFM)(すなわち、UEからインターネットへのパケットの進行-IOM526AからWSM530を指す矢印を参照)のイーサタイプに対して、負荷分散アルゴリズムによって規定されるルーティングは、送信元アドレス(「SrcAddr」)または送信元アドレスと宛先アドレスとの組み合わせ(「(Src+Dst)Addr」または「(S+D)Addr」)に基づくことができる。IOM526B上で、WFMからGiFMへのイーサタイプに対して(WSM530からIOM526Bを指す矢印を参照)のイーサタイプに対して、負荷分散アルゴリズムによって規定されるルーティングは、送信元アドレス(「SrcAddr」)または5タプルに基づくことができる。第2の段階において、第1の段階中に内部IPパケットのプロトコルを判定したLBコアは、総称ルーティングカプセル化(「GRE」)、カプセル化セキュリティペイロード(「ESP」)、レイヤ2トンネリングプロトコル(「L2TP」)、および/または汎用パケット無線サービス(GPRS)トンネリングプロトコル(「GTP」)パケットを識別する。いくつかの実装形態では、パケットはダウンストリームUEパケットであると想定されているので、L2TPパケットは宛先アドレス(「DstAddr」または「DAddr」)に基づいて、負荷分散されている。このような負荷分散は、
図5のGiFMからWFMへの矢印で示されるIPパケットにも適用することができる。GTP-Uパケットの場合(すなわち、GTPパケットがユーザデータを搬送している-WSM530からIOM526Aを指す矢印を参照)、負荷分散アルゴリズムによって規定されるルーティングは、SrcAddrまたは(Src+Dst)Addrに基づくことができる。プロトコルがESPである場合、負荷分散アルゴリズムによって規定されたルーティングは、ラウンドロビンまたは(Src+Dst)Addrに基づくことができる。しかしながら、この段落で説明されているアプローチを使用すると、着信プロキシパケットをダウンストリームUEパケットから区別するためのメカニズムはG
iインターフェースにはない。どちらの場合も、負荷分散は、5タプルを使用して実行される。IPフラグメントを受信した場合、この方法は機能しない可能性がある。さらに、スタンドアロンのSGW/PGWアプリケーションの場合、パケットがSGWとPGWのどちらを対象としているかについて、S5/S8インターフェース上に区別はない。GTP-Uパケットは、(Src+Dst)Addrを使用して、負荷分散される。WSM/SSMでは、ダウンストリームUEプロキシパケットは、5タプルを使用して、負荷分散される。NAT変換により、UEアドレスは、DPDKレベルでは利用可能ではない。
【0032】
上述したように、既存の通信アーキテクチャでは、アクセスネットワークからWSMに到着するパケットは、識別され、送信元および宛先アドレスに基づいて、1つ以上のパケット処理コアにルーティングされ、パケットデータネットワークからWSMに到着するパケットは識別され、および/または宛先アドレスによってルーティングされる。そのような設計は、それらがすべてのネットワークアーキテクチャと互換性があるというわけではないという点で、柔軟性を欠いている。対照的に、本明細書に記載の方法では(例えば、以下の例示的な実施形態では)、アクセスネットワークからWSMに到着するパケットは識別され、TEIDに基づいて、1つ以上のパケット処理コアにルーティングされ、パケットデータネットワークからWSMに到着するパケットは識別され、セッションIDに基づいて、1つ以上のパケット処理コアにルーティングされる。TEIDとセッションIDは、各々同じ最初の24ビットを含む。その結果、本明細書に記載の方法およびシステムの(パケットの観点からの)負荷分散機能は、ネットワーク構成とは無関係の様式で実装することができる。
【0033】
本明細書で使用する場合、「汎用パケット無線サービス(GPRS)トンネリングプロトコル(「GTP」)ネットワークフローモジュールからワークフローモジュールへ」のイーサタイプを略した、「GnFMからWFMへ」のイーサタイプは、ネットワークフローモジュール(例えば、ネットワークのアクセス/ユーザ側)とワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。同様に、「WFMからGnFMへ」のイーサタイプは、ワークフローモジュールとネットワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。
【0034】
本明細書で使用されるとき、「WFMからGiFMへ」のイーサタイプは、ワークフローモジュールとインターネットに面するモジュール(例えば、パケットデータネットワークと通信するIOM)との間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。同様に、「GiFMからWFMへ」のイーサタイプは、インターネットに面するモジュールとワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。
【0035】
本明細書で使用されるとき、「SECMからSECMへ」のイーサタイプは、通信ネットワーク内のネットワーク化されたセキュリティモジュール間の通信を容易にする任意のイーサタイプを指す。
【0036】
本明細書で使用されるとき、「SECMからIOMへ」のイーサタイプは、通信ネットワーク内のセキュリティモジュールと入出力マルチプレクサモジュールとの間の通信を容易にする任意のイーサタイプを指す。
【0037】
図6は、開示されている主題のいくつかの実施形態による、モバイルコンテンツクラウド(「MCC」)100内で行われる非プロキシ(例えば、UEとインターネットとの間の直接パケットトラフィック)アプリケーションのための負荷分散ハッシュ化を説明する図である。
図6に示すように、UEから発信されてアクセスネットワーク615の「S1U」インターフェース/ポートに到着するデータパケットは、IOM626AへGTP-Uトンネリングされる。IOM626Aにおけるパケットは、送信元および宛先アドレス(「(Src+Dst)Addr」)のハッシュ化によって識別され、ネゴシエートされたTEID(GTP-UヘッダトンネルID)を含む。いくつかの実装形態では、すべてのIOMが、戻り宛先IPアドレスに基づいて、UEをセッションIDに関連付けるデータを受信する。TEIDは、このIOM段階でパケットヘッダに追加される(例えば、制御プレーンのeNodeBによって追加され、次にデータプレーン内のIOMに送信される)。パケットは、(上記のように、汎用パケット無線サービス(GPRS)トンネリングプロトコル(「GTP」)ネットワークフローモジュールからワークフローモジュールへを略した)GnFMからWFMへのイーサタイプを使用して、IOM626AによってWSM630上のWFMへ(すなわち、WSM630AのIPアドレスへ)転送される。パケットは、WSM上の負荷分散装置コアによって受信され、WSM630は、どのパケットハンドラコアをパケットに割り当てるべきかを判定する。GnFMからWFMへのパケットの中には、UEパケットがあり、そこからGTPヘッダを抽出することができる。GTPヘッダは、TEID(その最初の24ビットは、セッションIDの最初の24ビットと同じである)を搬送する。WSM630において、パケットは、その24ビットTEIDによって識別され、TEIDは、パケットがルーティングされる適切なパケットハンドラコアを識別するためにハッシュ化される。パケットは、WFMからGiFMへのイーサタイプを使用して、WSM630によってIOM626Bへ(すなわち、IOM626BのIPアドレスへ)転送され、ここで、それは、5タプル(例えば、送信元アドレス、宛先アドレス、送信元ポート、宛先ポートおよびイーサタイプ)を使用して識別され、また、IOM626Bに戻る前に、さらなる処理(例えば、ネットワークアクセス識別を含む)のためにパケットデータネットワーク625に送信することができ、IOM626Bで、それは5タプルを使用して再度識別される。IOM526Bは、ルックアップテーブルを使用して、パケットヘッダに追加するための適切なセッションIDを判定する。いくつかの実装形態では、ルックアップテーブルは、IOM上に維持され、サービスを受けているすべての加入者についてのデータを含む。このルックアップテーブルには、例えば、加入者用のセッションの作成時に投入することができる。本明細書で説明されるように、セッションは、TEIDおよびセッションIDの両方を搬送する。パケットがインターネット側からMCCに入るとき、その宛先アドレスは加入者IPアドレスである(これは加入者に向かうダウンストリームパケットである)。このIPアドレスを使用して、ルックアップテーブルに対して相互参照し、関連付けられている加入者のセッションIDを識別することができる。パケットがアクセス側から入るとき、その送信元アドレスは、加入者アドレスであり、その宛先アドレスは、ユーザがアクセスしようとしているインターネット内のサーバのアドレスである。この送信元アドレスを使用して、ルックアップテーブルに対して相互参照し、関連付けられているTEIDを識別することができる。4Gネットワークの性質のために、いくつかの実施形態では、セッションIDは、常にアクセス側で取得され得るわけではないが、TEIDはアクセス可能である場合がある。同様に、PDN側では、セッションIDは、アクセス可能である場合がある。このように、いくつかの実装形態では、パケット識別および/またはルーティングのために、TEIDがアクセス側で使用され、セッションIDがPDN側で使用される。TEIDおよびセッションIDの両方の上位24ビットは同じになるように設計されているため、それらのビットは、同じコアにハッシュ化され、それによって加入者を特定のコアにピン留めする。
【0038】
IOM526Bは、適切なセッションIDをパケットヘッダに追加する。次に、そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM626BによってWSM630上のWFMへ転送され、またパケットは識別され、その24ビットセッションIDに基づいてWSM630における処理コアへとルーティングされる。WSM630は、対応するTEIDを識別するためにセッションIDをハッシュ化する。次いで、パケットは、アクセスネットワーク615およびパケット発信元UEに返送される前に、WFMからGnFMへを使用して、WSM630からIOM626AへGTP-Uトンネリングされて戻される。いくつかの実施形態において、IOM626AおよびIOM626Bは、同じ物理的場所内に存在する。いくつかの実施形態では、IOM626AおよびIOM626Bは、単一のIOMを表す。
【0039】
図7は、開示されている主題のいくつかの実施形態による、スタンドアロンパケットデータネットワークゲートウェイ(「PGW」)(ゲートウェイGPRSサポートノード「GGSN」としても機能することができる)およびスタンドアロンサービングゲートウェイ(「SGW」)(サービングGPRSサポートノード「SGSN」としても機能することができる)を有する非プロキシMCCアプリケーションのための負荷分散ハッシュ化を説明する図である。
図7に示すように、スタンドアロンPGW/GGSN経路をたどって、UEから発信されたデータパケットは、アクセスネットワーク715の「S5/S8」インターフェース/ポートを介して通り、IOM726AへGTP-Uトンネリングされ、その(Src+Dst)Addrを使用して識別され、ネゴシエートされたTEID(GTP-UヘッダートンネルID)を含むことができる。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM726AによってWSM730A上のWFMへ(すなわち、WSM730AのIPアドレスへ)転送され、そのTEIDに基づいて、識別され、かつ処理コアにルーティングされる。パケットは、WFMからGiFMへのイーサタイプを使用して、WSM730AによってIOM726Bへ(すなわち、IOM726BのIPアドレスへ)転送され、そこで5タプル(例えば、送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、およびイーサタイプ)を使用して、識別およびルーティングされ、そしてIOM726B(ここで、それが5タプルを使用して再度識別される)に戻される前に、さらなる処理のためにパケットデータネットワーク725に送信されてもよい。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM726BによってWSM730A上のWFMへ転送され、そしてそのセッションIDに基づいて、識別され、かつ処理コアにルーティングされる。次いで、パケットは、アクセスネットワーク715およびパケット発信元UEへと返送される前に、WFMからGnFMへを使用して、WSM730AからIOM726AへGTP-Uトンネリングされて戻される。
【0040】
図7のスタンドアロンSGW/SGSN経路に従って、UEから発信されるデータパケットは、アクセスネットワーク715の「S1U」インターフェース/ポートを介して通り、かつIOM726CへGTP-Uトンネリングされ、その(Src+Dst)Addrを使用して識別され、ネゴシエートされたTEID(GTP-UヘッダートンネルID)を含むことができる。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM726CによってWSM730B上のWFMへ(すなわち、WSM730BのIPアドレスへ)転送され、そのTEIDに基づいて、識別され、かつ処理コアにルーティングされる。パケットは、WFMからGiFMへのイーサタイプを使用して、WSM730BによってIOM726DへGTP-Uトンネリングされ、そこでその(Src+Dst)Addrを使用して識別され、そしてIOM726D(ここで、その(Src+Dst)Addrを使用して再度識別される)に戻される前に、さらなる処理のためにパケットデータネットワーク725に送信されてもよい。IOM726Dからパケットデータネットワーク725へのこの転送は、S5/S8インターフェースへのGTP-Uトンネリングとすることができ、GGSN、PGW(「4G」規格)および/またはG1サービスを適用することができる。スタンドアロンSGWを通るリターンパス上で、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM726DによってWSM730B上のWFMへ転送され、そのセッションIDに基づいて、識別され、かつ処理コアにルーティングされる。次いで、パケットは、アクセスネットワーク715およびパケット発信元UEに返送される前に、WFMからGnFMを使用して、WSM730BからIOM726CへGTP-Uトンネリングされて戻される。
【0041】
図8は、開示されている主題のいくつかの実施形態による、「G
i」ゲートウェイ(例えば、「G
iサービス」として知られる付加価値サービスを提供し得るインターネットに面するゲートウェイ)としてMCCを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
図8に示されるように、パケットは、アクセスネットワーク側またはパケットデータネットワーク側のどちらから来てもよい。着信データパケットの送信元を明確にするために、インターフェースアクセス属性が渡されて、パケットがアクセス側から到着するのか(その場合、送信元アドレスがハッシュ化に使用されることになる)、インターネット/パケットデータネットワーク側から到着するのか(その場合、宛先アドレスがハッシュ化に使用されることになる)を識別する。いくつかのそのような実装形態では、インターフェースのアクセス属性が、アクセスネットワークから来るパケットに対応しているために、UEから発信されるデータパケットは、アクセスネットワーク815からGiアクセスインターフェースを介してIOM826Aに渡され、その送信元アドレス(「SAddr」)を使用して識別される。この転送の一部として、インターフェース属性は、Giアクセスインターフェースを識別するためにDPDKにプッシュすることができる。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM826AによってWSM830上のWFMへ(すなわち、WSM830のIPアドレスへ)転送され、そのTEIDに基づいて、識別され、かつ処理コアにルーティングされる。パケットは、WFMからGiFMへのイーサタイプを使用して、WSM830によってIOM826Bへ(すなわち、IOM826BのIPアドレスへ)転送され、そこでそれは5タプルを使用して識別され、そしてIOM826B(ここで、そのDAddrを使用してそれが識別される)に戻される前に、さらなる処理のためにパケットデータネットワーク825に送信されてもよい。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM826BによってWSM830上のWFMへ転送され、そのセッションIDを使用することに基づいて、識別され、かつ処理コアへとルーティングされる。次いで、パケットは、アクセスネットワーク815およびパケット発信元UEに返送される前に、WFMからGnFMへを使用して、WSM830からIOM826Aに渡される。
【0042】
Wi-Fiネットワークを使用してネットワークカバレッジを拡大し、マクロセルラーネットワーク上のトラフィックを低減すると、サービスプロバイダにとってコスト面での利点を有することができる。信頼できるWi-Fiネットワークは、例えば、サービスプロバイダが維持するホットスポット(例えば、空港のホストされたホットスポット)、またはプロバイダと連携して展開されたものとすることができる。サービスプロバイダは、モバイルまたは固定ネットワーク事業者とすることができる。例えば、ケーブルプロバイダのコムキャスト(Comcast)は、米国で展開されている何千もの無線ホットスポットを通じて、無線音声およびデータサービスの両方を現在提供している。
【0043】
信頼できるネットワークは、サービスプロバイダが基本的なユーザ情報を検証し、アクセスポイントにわたってある程度のレベルの制御を行使することができるネットワークとして定義することができる。例えば、Wi-Fiユーザは、信頼できるWLANプロキシ(「TWAP」)を介してサービスプロバイダの認証、認可、およびアカウンティング(AAA)システムによって認証することができ、一方で音声/データトラフィック自体は、信頼できるWLANアクセスゲートウェイ(「TWAG」)を通過し、バックホールのためにデータネットワークにオフロードすることができる。本明細書に記載のいくつかの実施形態では、ポリシーエンフォースメント(例えば、サービス品質(「QoS」)ポリシー)、コンテンツフィルタリング、ウェブ/ビデオ最適化、およびNAT、ファイアウォールおよびインターネットプロトコルセキュリティ(「IPSec」)のようなセキュリティサービスなどの、Giサービスは、加入者発信パケット上で実行される。
【0044】
いくつかの実装形態では、付加価値サービスおよびシームレスなセッションハンドオフを含めて、加入者のネットワークエクスペリエンスを信頼できるWi-Fiネットワークに拡張することは、サービスプロバイダのコアネットワークとの緊密な統合を含む。信頼できるWi-Fiアクセスの一例は、大型のショッピングモールでの無線ローミングであり、そこでは、モバイル加入者は、いったんモールの内側に入るとモールの外側にあるマクロセルラーネットワークから無線LAN(WLAN)へシームレスに移動することになる。このようなシナリオでは、加入者は、ネットワークにログオンすること、または既存のセッションを中断することを必要とせずに、屋内でより優れた無線受信を享受することになる。上述のように、TWAPは、認証/認可のためにAAAサーバとのセキュアな通信を確保することができ、一方でTWAGは、パケットデータネットワーク上に音声/データトラフィックをオフロードする(かつ、任意選択的に、そのトラフィックでポリシーを実施する)ことになる。しかしながら、すべてのトラフィックが、インターネットに直接ルーティングされ得るとは限らない。一定のトラフィックは、TWAGを介してパケットコアネットワークにルーティングされ得る。本明細書に記載の実施形態は、業界標準のS2aインターフェースをサポートすることができ、これはローカル仮想EPCソリューションの一部であるかまたは既存のサードパーティEPCソリューションであるかにかかわらず、TWAGが、任意の業界標準の進化したパケットコア(「EPC」)ゲートウェイと直接通信することを可能にする。
【0045】
何百万ものWi-Fiアクセスポイントを有する世界において、サービスプロバイダがユーザを認証することができない、またはネットワーク上のトラフィックの流れを制御することができない、信頼できないWi-Fiネットワークはよくあることである。信頼できないネットワークの例は、喫茶店のWi-Fiネットワーク、または競合プロバイダによってホストされるものである可能性がある。本明細書に記載のいくつかの実施形態では、信頼できないWi-Fiネットワークをコアネットワークに持ち込むことを容易にするために、進化したパケットデータゲートウェイ(「ePDG」)を展開することができる。
【0046】
信頼できないネットワーク上の通信は、インターネットプロトコルセキュリティ(「IPSec」)暗号化として知られる追加レベルのセキュリティを用いて保護することができる。業界標準は、すべてのモバイルデバイスが、そのデバイス上でIPSecクライアントを特徴付けなければならないことを義務付けている。そのような場合、音声およびデータセッションは、IPSecトンネルをセキュアに通過する。これらのトンネルは、着信コールまたは発信コールを見越してオープンのままにしておく必要がある場合が多く、そのため、いつでも何百万ものIPSecトンネルをネットワーク内でオープンのままにしておく必要があり得る。ハードウェアベースのePDGは、オープンIPSecトンネルに対するこの高い要求を取り扱うように設計されているが、これらの同じ高い暗号化要件は、仮想化ePDGインスタンスにとって問題があることが歴史的に証明されている。本明細書に記載のいくつかの実施形態によれば、堅牢な仮想ePDGが実装され、それは単一のサーバ上で5GレベルのIPSec暗号化通信を配信することができる。
【0047】
図9は、開示されている主題のいくつかの実施形態による、Giサービスを有する信頼できる無線アクセスゲートウェイ(「WAG」)を使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
図9の上部に示すように、UEは、信頼できるWi-Fi接続を通して、または3G/4G接続を介してパケットネットワークに接続することができ、またGiサービス(「GiSvcs」)927(例えば、TWAPを介したAAA認証を備えた)またはSGWをそれぞれ有するTWAGを介してパケットデータネットワークへパケットを転送することができる。
図9の下部は、TWAG927における、アクセスネットワークを介してUEから発信されるデータパケットの処理を示す。パケットは、そのSAddrを使用して識別されたGREカプセル化トランスペアレントイーサネットブリッジング(「TEB」)を介してIOM926Aに到着する。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM926AによってWSM930上のWFMへ(すなわち、WSM830のIPアドレスへ)転送され、そのTEIDに基づいて、識別され、かつ処理コアにルーティングされる。次いで、パケットは、WFMからGiFMへのイーサタイプを使用して、WSM930によってIOM926Bへ(例えば、IOM926BのIPアドレスへ、またはGTP-Uトンネリングされて)転送され、ここで、5タプル、またはその送信元および宛先アドレス(「(Src+Dst)Addr」)を使用して識別され、そして(ユーザ設定:(1)TWAG927がGiサービスを提供している場合には、IPパケットを直接PDNへ、または(2)TWAG927がGiサービスを提供していない場合には、S2Aインターフェースを介する、に応じて)、IOM926B(ここで、それがその5タプルまたはその送信元および宛先アドレス(Src+Dst)Addrのいずれかを使用して識別される)に戻される前に、さらなる処理のためにパケットデータネットワークへと送信されてもよい。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM926BによってWSM930上のWFMへ転送され、そのセッションIDに基づいて、識別され、かつ処理コアにルーティングされる。次いで、パケットは、GREカプセル化TEBを介してWFMからGnFMへを使用して、WSM930からIOM926Aへ渡されて戻され、その時点で、パケットは、アクセスネットワークおよびパケット発信元UEに返送される前に、そのSAddrによって識別される。
【0048】
図10は、開示されている主題のいくつかの実施形態による、インターネットプロトコルセキュリティ(「IPSec」)暗号化を有する信頼できるWAGを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。
図10の上部に示すように、UEは、信頼できるWi-Fi接続を通して、または3G/4G接続を介してパケットネットワークへ接続され、そしてGiサービス(「GiSvcs」)1027(例えば、TWAPを介したAAA認証を備えた)またはSGWをそれぞれ有するTWAGを介してパケットデータネットワークへパケットを転送することができる。
図10の下部は、TWAG1027における、IPカプセル化セキュリティペイロード(「ESP」)を介してアクセスネットワークからIOM1026AへのUEから発信されるデータパケットの処理を示し、その送信元および宛先アドレス(Src+Dst)Addrを使用して識別される。パケットは、IOM1026Aによって、WSM1030A上の別のSECM(すなわち、WSM1030のIPアドレスへ)(すなわち、SECMからSECMへの転送)およびIPカプセル化セキュリティペイロード(「IP ESP」)プロトコルへ転送される前に、IOM1026Aの内部にあるセキュリティモジュール(「SECM」)によって処理され、そしてセッションIDに基づいて、識別され、かつ処理コアへとルーティングされる。WSM1030Aの内部では、パケットは、SECMからIOMへと渡される。次いで、パケットは、GnFMからWFMへを使用して、WSM1030AによってWSM1030B上のWFMへ転送され、そのセッションIDに基づいて、再び識別され、かつ処理コアへルーティングされる。WSM1030Bは、WFMからGiFMへのイーサタイプを使用して、パケットをIOM1026Bへ(例えば、IOM1026BのIPアドレスへ、またはGTP-Uトンネリングされ)渡し、そこで5タプルまたはその送信元および宛先アドレス、(Src+Dst)Addrを使用して識別され、そしてIOM1026B(ここでそれはその5タプルまたはその(Src+Dst)Addrを使用して再度識別される)に戻される前に、さらなる処理のためにパケットデータネットワークに送信されてもよい。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM026BによってWSM1030B上のWFMへ転送され、そのTEIDに基づいて、識別され、かつ処理コアへルーティングされる。次いで、パケットは、GREカプセル化TEBを介してWFMからGnFMへを使用してWSM1030BからIOM026Aに渡されて戻り、その時点で、パケットは、そのSAddrによって識別される。その後、パケットは、暗号化のためにSECMからSECMへの転送によってIOM1026AのSECMによってWSM030AのSECMにリダイレクトされ、そしてアクセスネットワークおよびパケット発信元UEへと返送される前に、SECMからIOMへを介してIOM1026Aに渡されて戻される。
【0049】
図11は、開示されている主題のいくつかの実施形態による、ePDGを使用した負荷分散ハッシュ化を説明する図である。
図11の上部に示すように、UEは、信頼できないWi-Fi接続を通して、または3G/4G接続を介してパケットネットワークに接続することができ、またePDG1129を介してパケットデータネットワークへパケットを転送することができる。
図11の下部は、ePDG1129において、IP ESPイーサタイプを使用する、アクセスネットワークからIOM1126AへのUEから発信されるデータパケットの処理を示し、またその(Src+Dst)Addrを使用してIOM1126Aで識別される。IOM1126Aは、セッションを作成し、パケットのキー値をそのローカルセッションデータへとマッピングしてセッションIDを判定する。パケットは、IP ESPイーサタイプを使用して、IOM1126AによってWSM1130上のSECMへ転送(すなわち、SECMからSECMへの転送)される前に、IOM1126Aの内部のSECMによって処理され、またセッションIDに基づいて、識別され、かつ処理コアにルーティングされて復号化される。WSM1130Aの内部で、パケットは、SECMからWFMへと渡され、そこでセッションIDを、パケットを処理コアへとルーティングするためにWFMによって使用することができる。次いで、パケットは、WFMからGiFMへのイーサタイプを使用して、WSM1130によってIOM1126Bへと転送され(例えば、GTP-Uトンネリングされ)、ここで、それは、その(Src+Dst)Addrを使用して、識別され、かつルーティングされ、そしてIOM1126B(ここで、それは(Src+Dst)Addrを使用して識別され、かつルーティングされる)に戻される前に、さらなる処理のためにパケットデータネットワークに送信されてもよい。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへのイーサタイプを使用して、IOM1126BによってWSM1130上のWFMへと転送され、そのTEIDを使用して、識別されルーティングされる。WSM1130Aの内部では、パケットは、暗号化のためにWFMからSECMに渡され、IP ESPが適用される。次いで、パケットは、SECMからIOMおよびIP ESPイーサタイプを使用して、WSM1130からIOM1126Aに渡されて戻り、その時点で、パケットは、アクセスネットワークおよびパケット発信元UEに返される前に、その(Src+Dst)Addrによって識別されルーティングされる。
【0050】
図12は、開示されている主題のいくつかの実施形態による、プロキシトラフィックアプリケーションのための負荷分散ハッシュ化を説明する図である。
図12に示すように、UEから発信され、アクセスネットワーク1215の「S1U」インターフェース/ポートに到着するデータパケットは、IOM1226AへGTP-Uトンネリングされ、(Src+Dst)Addrを介して識別される。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM1226AによってWSM1230上のWFMへ(すなわち、WSM1230のIPアドレスへ)転送され、そしてそのTEIDによって識別される。WSM1230において、TEIDは、コア選択の目的でハッシュ化される。WSM1230の内部で、パケットは、プロキシサービスを必要とすると判定され、またWFMからネットワークアドレス変換(「NAT」)を実行するワークフロー転換モジュールへと渡され、ここでパケットトラフィックは、ユーザ送信元IPアドレスとこのパケットに割り当てられている宛先MACアドレスとのマッピングに基づいて転換される(UEのIPアドレスを削除して)。したがって、パケットがPMから戻ったとき、ワークフロー転換モジュールは、逆引きを実行することができ、またUEのIPアドレスを元に戻すことができる。パケットトラフィックを転換するとき、ワークフロー転換モジュールは、HTTPプロキシサービス(および/またはビデオ適応サービスなどの他のサービス)のために、1つ以上のサービスモジュールブレードPMプロキシモジュール(「PM」)1232へ、イーサタイプ(例えば、DEA8~DEAF)を有するパケットを渡す。転換されたパケットがPMに到着すると、TCP接続は、NATのために終了することができる(すなわち、PMは、宛先IPアドレスをそれ自身のものとして認識する)。WSM1230からPM1232にパケットを送信するとき、WSM1230は、UEのIPアドレスの代わりに「ローカル」IPアドレスを使用する。このローカルIPアドレスは、UEのIPアドレスをローカルIPアドレスへとマッピングすることによって、NAT変換を介して生成される。これは、送信元アドレスとして(WSM1230を離れるとき)、および宛先アドレスとして(パケットのリターンパスに沿ってWSM1230に到着するとき)機能し、IPアドレスは、そのビットのサブセット内にコア情報を含む。言い換えれば、WSM1230によって選択された「ローカルIPアドレス」は、利用可能なIPアドレスのリストから選択され、パケットのTEIDのハッシュ化に基づいて、パケットに対してWSM1230によって選択されたコアに対応する。
【0051】
パケットは、所与のイーサタイプ(例えば、「BEEF」)を用いて、PM1232によってIOM1226Bへ(すなわち、IOM1226BのIPアドレスへ)転送され、ここで、5タプルを使用して識別され、IOM1226B(ここで、それは再び5タプルを使用して再度識別される)に戻される前に、さらなる処理のためにパケットデータネットワーク1225へ送信することができる。そのリターンパスに沿って続けて、パケットは、イーサタイプ(例えば、IOM1226Bに、パケットがプロキシパケットであることを示すためのDEA8-DEAF)を用いて、PM1232上のループバックIPアドレス(例えば、外部世界がこれと通信することができるように、およびパケットがWSMではなくPMへループバックするように、PMが使用するIPアドレス)を使用して、IOM1226BによってHTTPプロキシへと転送される。その後、パケットは、パケットの方向性(および、それに応じて、どのようにパケットがルーティングされ、処理されるべきか、など)を示すために、イーサタイプBEEFを用いて、PM1232からルーティングされ、WSM1230のワークフロー転換モジュールに戻される。いくつかの実装形態では、WFMおよびワークフロー転換モジュールソフトウェアを、共通のコア上で実行しており(例えば、TEID、セッションIDなどに関連付けられて)、そのため関連付けられたコアが常に使用されることになる。MACIPアドレスが生成される前に、コア情報をIPアドレスの中へと埋め込んで、どのコアがPMに送信されるMACパケットを生成したかを示すことができる。それから、LBコアは、それがプロキシパケットであることを認識することができる(例えば、コアを識別するために約7ビットを要する可能性がある)。WSM1230の内部では、パケットは、ワークフロー転換モジュールからWFMに渡される。パケットは、WFMからGnFMへのイーサタイプを使用して、WSM1230によってIOM1226AへGTP-Uトンネリングされ、ここで、アクセスネットワーク1215へ(やはりGTP-Uトンネリングを介して)およびパケット発信元UEに返送される前に、(Src+Dst)Addrを使用して識別される。
【0052】
図13は、開示されている主題のいくつかの実施形態による、プロキシおよび非プロキシマルチプロトコルラベルスイッチング(「MPLS」)トラフィックアプリケーションの両方に対する負荷分散ハッシュ化を説明する図である。
図13に図示される実施形態のいくつかの実装形態において、WSM1330は、IOM1326Aから受信したパケットをPM1332に転換するかどうかに関して判定を下す。
図13に示すように、UEから発信されてアクセスネットワーク1315の「S1U」インターフェース/ポートに到着するデータパケットは、IOM1326AへGTP-Uトンネリングされ、(Src+Dst)Addrを介して識別される。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM1326AによってWSM1330へ(すなわち、WSM1330のIPアドレスへ)転送され、そのTEIDに基づいて、再び識別され、かつ処理コアへとルーティングされる。
【0053】
WSM1330の内部で、パケットが、プロキシサービスを必要とすると判定された場合、パケットは、DEA8~DEAFイーサタイプを介して、WSM1330からHTTPプロキシサービスのための1つ以上のPM1332へと渡され、ネットワークアドレス変換(「NAT」)が実行される。プロキシ経路(破線で示す)に従って、パケットは、BEEFイーサタイプおよびマルチプロトコルラベルスイッチング(「MPLS」)を使用して、PM1332によってIOM1326Bへ(すなわち、IOM1326BのIPアドレスへ)転送され、そこで、5タプルを使用して識別され、さらなる処理のためにIOM1326Bからパケットデータネットワーク1325に送信することができる。IOM1326Bに戻ると、パケットは5タプルを使用して再び識別される。そのリターンパスに沿って続けて、パケットは、DEA8~DEAFイーサタイプを使用して、PM1332上のループバックIPを使用してIOM1326BによってHTTPプロキシへ転送される。その後、パケットは、BEEFイーサタイプを使用して、PM1332からWSM1330へルーティングして戻される。パケットは、WFMからGnFMへのイーサタイプを使用して、WSM1330によってGTP-UトンネリングされIOM1326Aに戻され、ここで、アクセスネットワーク1315およびパケット発信元UEへGTP-Uトンネリングされて戻る前に、その(Src+Dst)Addrを使用して識別される。
【0054】
WSM1330でのノースバウンドパケットがプロキシサービスを必要としないと判定された場合、パケットは、WFMからGnFMへを使用して、WSM1330によってIOM1326Bへ(すなわち、IOM1326BのIPアドレスへ)直接転送され、そこで、5タプルを使用して識別され、さらなる処理のためにIOM1326Bからパケットデータネットワーク1325へ送信することができる。IOM1326Bへと戻ると、パケットは、5タプルを使用して再び識別される。そのリターンパスに沿って続けて、パケットは、GiFMからWFMへを使用して、IOM1326BによってWSM1330へ転送され、そこで、そのセッションIDに基づいて、識別され、かつ処理コアへルーティングされる。プロキシリターンパスと同様に、その後、パケットは、WFMからGnFMへのイーサタイプを使用して、WSM1330によってGTP-Uトンネリングされ、IOM1326Aに戻り、そこで、アクセスネットワーク1315およびパケット発信元UEへGTP-Uトンネリングされて戻る前に、(Src+Dst)Addrを使用して識別される。
【0055】
図20は、上記のようなプロキシサービスを含むいくつかの実施形態によるフロー図を説明する。ステップ2002において、MCC1416は、MME1406からユーザデバイスのためのセッションを作成する要求を受信する。要求は、MCC1416が、ユーザデバイスに向けられたダウンストリームトラフィックのために後で使用するTEID(「TEID_D」と表記される)を含む。ステップ2004において、MCC1416は、新しいセッションに関連付けられ、ユーザデバイスに関連付けられたアップストリームトラフィックのためにeNodeB1404/MME1406によって使用されることになるTEID(「TEID_U」と表記される)を作成する。MCC1416はまた、新しいセッションに関連付けられているセッションIDを作成する。いくつかの実施形態では、TEID_UとセッションIDとは共通の値を共有する。例えば、TEID_Uの最初の24ビットは、セッションIDの最初の24ビットと一致してもよい。TEID_UおよびセッションIDが作成されると、MCC1416は、新たに作成されたTEID_Uが新たに作成されたセッションIDに対応することをMCC1416内のすべてのIOMに通知する。いくつかの実施形態では、個々のIOMは、この情報の記録をテーブルに保存し得る。
【0056】
ステップ2006において、MCC1416は、eNodeB1404からアップストリームデータパケットを受信する。アップストリームデータパケットは、以前に確立されたTEID_Uを含む。ステップ2010において、MCC1416は、TEID_Uに対応するセッションIDを識別する。いくつかの実施形態では、IOMは、テーブルへのインデックスとしてTEID_Uを使用することによってセッションIDを識別する。次いで、IOMは、アップストリームデータパケットを処理するためにセッションIDに基づいてワークフローサービスモジュール(「WSM」)を選択し、アップストリームデータパケットを選択されたWSMにルーティングする。WSMは、セッションIDに基づいて特定のパケットハンドラコア(「PHC」)を選択する。いくつかの実施形態では、ハッシュ化アルゴリズムが、セッションIDに基づいて、アップストリームデータパケットをPHCに分配するために使用される。
【0057】
MCC1416は、アップストリームデータパケットが、プロキシサービスを必要とすると判定する。例えば、アップストリームデータパケットは、特別なビデオ符号化、キャッシュされたコンテンツへのアクセス、SMTP、および他のプロキシサービスを必要とする場合がある。このデータの処理を強化するために、プロキシサービスモジュールが使用されてもよい。MCC1416は、次いで、既存のIPコールを終了させ、例えば、外部パケットデータネットワークとの通信のために新しいループバックIPアドレスを作成し得る。ループバックIPアドレスは、ユーザデバイスに関連する発信トラフィックの送信元アドレスとして、およびユーザデバイスに関連する着信トラフィックに対する宛先アドレスとして使用される。次いで、MCC1416は、ループバックIPアドレスを、選択されたパケットハンドラコアに対応する識別子にマッピングし、この相関関係をネットワークアドレス変換テーブル(「NAT」)に任意選択的に格納する。
【0058】
ステップ2012において、アップストリームデータパケットが、送信元IPアドレスとしてループバックIPアドレスを使用してインターネット1422に送信される。ステップ2014において、ダウンストリームデータパケットが、宛先アドレスとしてループバックIPアドレスと共に受信される。ステップ2016において、MCC1416は、ループバックIPアドレスに基づいて、ダウンストリームデータパケットをプロキシサービスモジュールにルーティングする。MCC1416は、ループバックIPアドレスに基づいて、ダウンストリームデータパケットを選ばれたパケットハンドラコアにマッピングするためにNATに格納された相関関係を使用する。ステップ2018において、ダウンストリームデータパケットは、TEID_Dを使用してeNodeB1404へルーティングして戻される。
【0059】
本明細書に開示された技法およびシステムは、ネットワーク、コンピュータシステム、またはコンピュータ化された電子デバイスと共に使用するためのコンピュータプログラム製品として実装されてもよい。そのような実装形態は、コンピュータ可読媒体(例えば、ディスケット、CD-ROM、ROM、フラッシュメモリ、または他のメモリもしくは固定ディスク)のような有形の媒体上に固定されるか、あるいは、モデムもしくは媒体を覆うネットワークに接続された通信アダプタなどの他のインターフェースデバイスを介して、ネットワーク、コンピュータシステム、またはデバイスへ送信可能である、一連のコンピュータ命令、またはロジックを含んでもよい。
【0060】
媒体は、有形の媒体(例えば、光またはアナログ通信回線)または無線技法(例えば、Wi-Fi、セルラー、マイクロ波、赤外線、もしくは他の伝送技術)を用いて実装された媒体のいずれかであってもよい。一連のコンピュータ命令は、システムに関して本明細書で説明されている機能性の少なくとも一部を具体化する。当業者は、そのようなコンピュータ命令を、多くのコンピュータアーキテクチャまたはオペレーティングシステムで使用するためにいくつかのプログラミング言語で書くことができることを理解されたい。
【0061】
さらに、そのような命令は、半導体、磁気、光学、または他のメモリデバイスなどの任意の有形のメモリデバイスに格納されてもよく、光学、赤外線、マイクロ波、または他の伝送技術などの任意の通信技術を使用して送信されてもよい。
【0062】
そのようなコンピュータプログラム製品は、印刷物もしくは電子文書を伴うリムーバブルメディア(例えば、シュリンクラップソフトウェア)として配布されてもよく、コンピュータシステムにプリロード(例えば、システムROMもしくは固定ディスクに)されてもよく、またはネットワーク(例えば、インターネットもしくはワールドワイドウェブ)を介してサーバもしくは電子掲示板から配布されてもよいことが予想される。当然のことながら、本発明のいくつかの実施形態は、ソフトウェア(例えば、コンピュータプログラム製品)とハードウェアの両方の組み合わせとして実装されてもよい。さらに本発明の他の実施形態は、完全にハードウェアとして、または完全にソフトウェア(例えば、コンピュータプログラム製品)として実装される。
【0063】
前述の説明において、一定のステップまたはプロセスは、特定のサーバ上で、または特定のエンジンの一部として実行することができる。特定のステップは、サーバシステムおよび/またはモバイルデバイスを含むがこれらに限定されない、様々なハードウェアデバイス上で実行することができるので、これらの説明は単なる例示である。同様に、特定のステップが実行される場所の分割は、変化する可能性があり、分割がないことまたは異なる分割が本発明の範囲内であることが理解される。さらに、コンピュータシステム処理を説明するために使用される「モジュール」および/または他の用語の使用は、交換可能であり、機能を実行することができる論理または回路を表すことを意図している。