JP2020507289A - 多重パケット処理コア上の無線加入者パケット処理の負荷分散 - Google Patents

多重パケット処理コア上の無線加入者パケット処理の負荷分散 Download PDF

Info

Publication number
JP2020507289A
JP2020507289A JP2019560079A JP2019560079A JP2020507289A JP 2020507289 A JP2020507289 A JP 2020507289A JP 2019560079 A JP2019560079 A JP 2019560079A JP 2019560079 A JP2019560079 A JP 2019560079A JP 2020507289 A JP2020507289 A JP 2020507289A
Authority
JP
Japan
Prior art keywords
identifier
packet
session
downstream
upstream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019560079A
Other languages
English (en)
Other versions
JP7100061B2 (ja
JP2020507289A5 (ja
Inventor
マハパトラ,アシマ
Original Assignee
アファームド ネットワークス,インク.
アファームド ネットワークス,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アファームド ネットワークス,インク., アファームド ネットワークス,インク. filed Critical アファームド ネットワークス,インク.
Publication of JP2020507289A publication Critical patent/JP2020507289A/ja
Publication of JP2020507289A5 publication Critical patent/JP2020507289A5/ja
Application granted granted Critical
Publication of JP7100061B2 publication Critical patent/JP7100061B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • H04W28/0827Triggering entity
    • H04W28/0831Core entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

電気通信システムのスループットを改善し、かつキャッシュミスの確率および発生率を低減させるための、所与の無線加入者に対するパケット処理の単一の「パケットハンドラ」コアへの閉じ込め、または「ピン留め」に関するシステムおよび方法。パケットヘッダデータは、加入者のトンネルエンドポイント識別子(「TEID」)および/またはセッション識別子を含むことができる。負荷分散装置コアは、一方または両方の識別子を使用して、パケットの双方向トラフィックが方向付けられるパケットハンドラコアを選択することができる。ハッシュ化アルゴリズムを使用して、多重パケットハンドラコアの各々に多数のUEを分配することができる。他の実施形態は、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、システム開始プロキシトラフィックと、ダウンストリームUEトラフィックと、を区別することに関する。例えば、MPLSラベルスペースは、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割することができる。【選択図】図15

Description

関連出願の相互参照
本出願は、2017年1月25日に出願された米国仮特許出願第62/450,162号に対する優先権を主張するものであり、同出願は、参照により本明細書に組み込まれる。
本発明の実施形態は、概して、電気通信システムに関し、具体的には、通信システムにおけるデータパケットの処理およびルーティングに関する。
データファイルが、電気通信ネットワークを介して移送されるとき、それらを、処理のために送信元から宛先へルーティングされるデータ「パケット」に分解することができる。パケットネットワークアプリケーションの複雑さが増すにつれて、多重プロセッサコアアーキテクチャ(「マルチコアネットワーク」)の使用がますます普及してきている。
開示されている主題に従って、通信システム内のパケットハンドラコアにパケットを送信するためにシステムおよび方法が提供されている。いくつかの実施形態では、開示されている主題は、加入者に対応する要求を受信してセッションを作成するためのコンピューティングデバイスを含む。いくつかの実施形態では、コンピューティングデバイスは、セッションにダウンストリーム識別子およびアップストリーム識別子を割り当て、セッションにセッション識別子を関連付ける。いくつかの実施形態では、セッション識別子は、加入者に関連付けられているセッションを一意的に識別する。いくつかの実施形態では、コンピューティングデバイスは、ダウンストリーム識別子またはアップストリーム識別子を含むデータパケットを受信し、受信したダウンストリーム識別子またはアップストリーム識別子に基づいて、データパケットに関連付けられているセッション識別子を識別する。いくつかの実施形態では、コンピューティングデバイスは次いで、セッション識別子に基づいて、データパケットをパケットハンドラコアにルーティングする。
いくつかの実施形態では、アップストリーム識別子は、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む。いくつかの実施形態では、プロセッサは、暗号化キーを使用して、データパケットを暗号化または復号化し得る。いくつかの実施形態では、ダウンストリーム識別子は、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレスまたはTEIDを含む。いくつかの実施形態では、アップストリーム識別子およびダウンストリーム識別子は、共通の値を共有する。例えば、共通の値は、アップストリーム識別子およびダウンストリーム識別子の最初の24ビットを含み得る。いくつかの実施形態では、プロセッサは、セッション識別子にハッシュ化アルゴリズムを適用してパケットハンドラコアを判定し得る。いくつかの実施形態では、プロセッサは、データパケットに対するプロキシサービスを識別し、データパケットをプロキシサービスモジュールへとルーティングし、パケットハンドラコアの識別子をセッション識別子と相関させ得る。いくつかの実施形態では、プロセッサは、パケットハンドラコアに対する識別子に基づいて、データパケットをパケットハンドラコアにルーティングし得る。
いくつかの実施形態では、システム開始プロキシトラフィックは、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、ダウンストリーム加入者トラフィックと区別され得る。いくつかの実施形態では、MPLSスペースは、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割されてもよい。
開示されている主題のこれらおよび他の能力は、以下の図面、詳細な説明、および特許請求の範囲を検討した後にさらに十分に理解されるであろう。本明細書で採用されている言い回しおよび用語は、説明を目的としており、限定と見なされるべきではないことを理解されたい。
開示されている主題の様々な実施形態のより完全な理解のために、添付の図面に関連してなされる以下の説明をここで参照する。
開示されている主題のいくつかの実施形態による、マルチコア通信システムを通るパケットフローを説明する図である。 開示されている主題のいくつかの実施形態による、単一ルート入力/出力仮想化(「SR−IOV」)を使用したデータプレーン開発キット(「DPDK」)ポートビットマスクを図示する。 開示されている主題のいくつかの実装形態による、SR−IOVデータポート接続性を説明する図である。 開示されている主題のいくつかの実装形態による、SR−IOVコアマッピングを説明する図である。 既存の負荷分散方法を説明する図である。 開示されている主題のいくつかの実施形態による、モバイルコンテンツクラウド(「MCC」)を使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、スタンドアロンパケットデータネットワークゲートウェイ(「PGW」)およびスタンドアロンサービングゲートウェイ(「SGW」)を有する非プロキシMCCアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、「G」ゲートウェイとしてMCCを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、信頼できる無線アクセスゲートウェイ(「WAG」)を使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、インターネットプロトコルセキュリティ(「IPsec」)暗号化を用いた信頼できるWAGを使用する非プロキシアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、進化したパケットデータゲートウェイ(「ePDG」)を使用した負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、プロキシトラフィックアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による、プロキシおよび非プロキシマルチプロトコルラベルスイッチング(「MPLS」)トラフィックアプリケーションのための負荷分散ハッシュ化を説明する図である。 開示されている主題のいくつかの実施形態による例示的なネットワークアーキテクチャを説明する図である。 開示されている主題のいくつかの実施形態による、MCCの例示的構成を説明する図である。 開示されている主題のいくつかの実施形態によるセッションを確立することに関するフロー図である。 開示されている主題のいくつかの実施形態によるセッションを確立するための方法を説明するフローチャートである。 開示されている主題のいくつかの実施形態によるアップストリームデータパケットを処理するための方法を説明するフローチャートである。 開示されている主題のいくつかの実施形態によるダウンストリームデータパケットを処理するための方法を説明するフローチャートである。 開示されている主題のいくつかの実施形態による、プロキシサービスを含むデータパケットを処理するための方法を説明するフローチャートである。
本明細書に記載のいくつかの実施形態は、所与の無線加入者に対するパケット処理の単一の「パケットハンドラ」(パケット処理装置)のコアへの閉じ込め、または「ピン留め」に関し、それによって電気通信システムにおけるスループットを改善し、キャッシュミスの確率および発生率を低減する。例えば、パケットヘッダデータは、加入者のトンネルエンドポイント識別子(「TEID」)および/またはセッション識別子(「セッションID」または「ワークフローセッションID」)を含むことができ、負荷分散装置コアは、一方または両方の識別子を使用して、パケットの双方向トラフィックが方向付けられるパケットハンドラ(パケット処理装置)コアを選択することができる。いくつかのそのような実施形態では、ハッシュ化アルゴリズムを使用して、多数のUEを多数のパケットハンドラコアの各々に分配し、多数のコアにわたって集合的な負荷を均衡させる。
他の実施形態は、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、システム開始プロキシトラフィックとダウンストリームUE(例えば、非プロキシ)トラフィックとを区別することに関する。例えば、MPLSラベルスペースは、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割することができる。
アップストリームおよびダウンストリームのトラフィックを識別してルーティングするための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を割り当てるまたは分配することができる。
図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内の一定のパケットハンドラコアにピン留めする。
図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つ以上のテーブルを含む。
図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は、この情報の記録をテーブルに保存し得る。
MCC1416はまた、新しいセッションに関連付けられているUEのIPアドレスも割り当てる。このUEのIPアドレスは、インターネット1422などの外部データネットワークへの発信トラフィックに対する送信元IPアドレスとして使用される。それはまた、外部データネットワークからユーザデバイスへの着信トラフィックの宛先IPアドレスとしても使用される。UEのIPアドレスを作成すると、MCC1416は、新たに作成されたUEのIPアドレスが新たに作成されたセッションIDと相関していることをMCC1416内のすべてのIOMに通知する。いくつかの実施形態では、個々のIOMは、この相関の記録をテーブルに保存し得る。ステップ1606において、MCC1416は、eNodeB1404/MME1406にセッション作成応答を送信する。セッション作成応答は、TEID_Uを含む。
ステップ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)内のその宛先アドレスにルーティングされる。
ステップ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にルーティングされる。
図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を含むセッション作成応答が送信される。
図18は、いくつかの実施形態によるアップストリームデータパケットを処理するための方法を説明するフローチャートである。ステップ1802において、アップストリームデータパケットが受信される。アップストリームデータパケットは、セッションIDに対応するTEID_Uを含む。ステップ1804において、TEID_Uが、アップストリームデータパケットから抽出される。ステップ1806において、TEID_Uに対応するセッションIDが、ルックアップテーブルに基づいて、識別される。ステップ1808において、アップストリームデータパケットが、識別されたセッションIDに基づいて、WSMに割り当てられる。ステップ1810において、アップストリームデータパケットが、セッションIDに基づいて、パケットハンドラコアにさらに割り当てられる。いくつかの実施形態では、アップストリームデータパケットは、セッションIDのハッシュ値に基づいて、特定のパケットハンドラコアに割り当てられる。
図19は、いくつかの実施形態によるダウンストリームデータパケットを処理するための方法を説明するフローチャートである。ステップ1902において、ダウンストリームデータパケットが受信される。ダウンストリームデータパケットは、セッションIDに対応するUEのIPアドレスを含む。ステップ1904において、UEのIPアドレスが、ダウンストリームデータパケットから抽出される。ステップ1906において、UEのIPアドレスに対応するセッションIDが、ルックアップテーブルに基づいて、識別される。ステップ1908において、ダウンストリームデータパケットが、識別されたセッションIDに基づいて、WSMに割り当てられる。ステップ1910において、アップストリームデータパケットが、セッションIDに基づいて、パケットハンドラコアにさらに割り当てられる。いくつかの実施形態では、ダウンストリームデータパケットは、セッションIDのハッシュ値に基づいて、特定のパケットハンドラコアに割り当てられる。
インターネットコアに面するインターフェース上でシステム開始プロキシトラフィックからUEトラフィックを区別するためのMPLSラベルスペースの分割
いくつかの実施形態では、マルチプロトコルラベルスイッチング(「MPLS」)がコア側で使用されるとき、ダウンストリームUEトラフィックからシステム開始プロキシトラフィックを区別するために、MPLSラベルスペースを2つの異なるドメイン:UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割することができる。所与のUEのIPアドレスに対応するスタティックルートは、UEドメインからのラベルを使用して、アドバタイズすることができ、プロキシループバックアドレスに対応するスタティックルートは、マルチプロトコルボーダーゲートウェイプロトコル(「MP−BGP」)によってループバックアドレスドメインからのラベルを使用して、アドバタイズすることができる。DPDK負荷分散装置コアは、次いでラベル範囲情報を使用して、ダウンストリームUEトラフィックからプロキシトラフィックを区別することができる。例えば、ダウンストリームプロキシトラフィックパケットが5タプル値(例えば、送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、およびイーサタイプのうちの1つ以上)に基づいて、負荷分散されるとき、UEパケットはセッションIDに基づいて、負荷分散することができる。
ダウンストリームプロキシトラフィックをピン留めするためのIPv4送信元ネットワークアドレス変換(「NAT」)アドレス内へのコアID情報の埋め込み
システムが加入者/UEに対するプロキシサービスを識別すると、その加入者/UEからのすべてのパケットは、プロキシサービスのために付加価値サービス(「VAS」)モジュールに導かれる。ワークフローサービスモジュールは、IPv4ベースの送信元NATを使用して、VASモジュールと通信する。NATアドレスの3番目のバイトは、コアID情報を搬送するためにエンコードされている。リターンパスでは、ワークフローサービスモジュール上の負荷分散装置コアがNATアドレスからコア情報を抽出し、ダウンストリーム処理のための対応するコアにパケットを導く。これは、確実にアップストリームおよびダウンストリームのUEプロキシトラフィックが同じコアで処理され、L2キャッシュの利用率を最大化し、システムのパフォーマンスを向上するようにする。
従来のソリューションは、パケットコアをピックアップするためのハッシュ値としてのUEアドレスに基づいていた。しかし、このソリューションは、様々なサービスプラットフォームにわたって機能しなかった。さらに、ワークフローサービスモジュールでのプロキシトラフィック負荷分散、ならびにMPLSラベルに基づいて、プロキシ対プロキシなしのダウンストリームトラフィックを識別するためのソリューションはなかった。
TEIDとセッションIDとに基づいて、UEトラフィックをピン留めすることは、データスループットを向上させるためのすべてのサービスプラットフォームにわたる包括的なソリューションである。MPLSラベルを使用して、ダウンストリームUEトラフィックを識別し、コア情報をNATアドレスに埋め込むことは、UEを特定のコアに結びつけることのさらなる補助となり、それによってより良好なユーザエクスペリエンスを強化する。
ここで図面に目を向けると、図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アドレスおよび宛先ポート番号を抽出する。
図2は、開示されている主題のいくつかの実施形態による、単一ルート入力/出力仮想化(「SR−IOV」)を使用するDPDKポート220−ビットマスクを図示する。いくつかの実装形態では、システムは、内部使用のために、どのポートがN/Sポートであり、どのポートがE/Wポートであるかのマッピングを格納する。このマッピングは、各イーサネットポートを「G」(例えば、インターネットに面する)ポートまたは「G」(例えば、加入者からのトラフィック)ポートとして定義するために使用することができる。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>
図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またはGインターフェースとして割り当てることができる。いくつかの実施形態では、各VFは、ただ1つのそのような論理インターフェースに対応する。
図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にわたって実装されている。
一部の既存の設定では、デフォルトの負荷分散アルゴリズムは、送信元アドレスと宛先アドレスに基づいており、2段階で実行される。第1の段階において、LBコアは、イーサタイプに基づいて、内部IPパケットに対するプロトコルを判定する。MPLSパケットはこの段階中に識別することができ、負荷分散アルゴリズムは、内部IPパケットに対して5タプルに設定することができる。ファブリックパケットおよび他のパケット(または「ペイロード」)タイプは、イーサタイプを調べることによって識別することができる。イーサタイプは、IOMとWSMとの間のパケットのルーティングの目的で、ならびにパケットの方向性(例えば、インターネット境界またはアクセス側境界)を判定するために、および/または、どのプロトコルがイーサネットフレームのペイロードでカプセル化されているかを示すために使用することができる。例えば、IOMは、UEから受信したパケットを抽出し、宛先WSM用のMACアドレスを判定し、パケットにイーサネットヘッダを追加して、パケットが確実に宛先WSMに適切に切り換え/ルーティングされるようにすることができる。
ここで図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インターフェースにはない。どちらの場合も、負荷分散は、5タプルを使用して実行される。IPフラグメントを受信した場合、この方法は機能しない可能性がある。さらに、スタンドアロンのSGW/PGWアプリケーションの場合、パケットがSGWとPGWのどちらを対象としているかについて、S5/S8インターフェース上に区別はない。GTP−Uパケットは、(Src+Dst)Addrを使用して、負荷分散される。WSM/SSMでは、ダウンストリームUEプロキシパケットは、5タプルを使用して、負荷分散される。NAT変換により、UEアドレスは、DPDKレベルでは利用可能ではない。
上述したように、既存の通信アーキテクチャでは、アクセスネットワークからWSMに到着するパケットは、識別され、送信元および宛先アドレスに基づいて、1つ以上のパケット処理コアにルーティングされ、パケットデータネットワークからWSMに到着するパケットは識別され、および/または宛先アドレスによってルーティングされる。そのような設計は、それらがすべてのネットワークアーキテクチャと互換性があるというわけではないという点で、柔軟性を欠いている。対照的に、本明細書に記載の方法では(例えば、以下の例示的な実施形態では)、アクセスネットワークからWSMに到着するパケットは識別され、TEIDに基づいて、1つ以上のパケット処理コアにルーティングされ、パケットデータネットワークからWSMに到着するパケットは識別され、セッションIDに基づいて、1つ以上のパケット処理コアにルーティングされる。TEIDとセッションIDは、各々同じ最初の24ビットを含む。その結果、本明細書に記載の方法およびシステムの(パケットの観点からの)負荷分散機能は、ネットワーク構成とは無関係の様式で実装することができる。
本明細書で使用する場合、「汎用パケット無線サービス(GPRS)トンネリングプロトコル(「GTP」)ネットワークフローモジュールからワークフローモジュールへ」のイーサタイプを略した、「GnFMからWFMへ」のイーサタイプは、ネットワークフローモジュール(例えば、ネットワークのアクセス/ユーザ側)とワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。同様に、「WFMからGnFMへ」のイーサタイプは、ワークフローモジュールとネットワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。
本明細書で使用されるとき、「WFMからGiFMへ」のイーサタイプは、ワークフローモジュールとインターネットに面するモジュール(例えば、パケットデータネットワークと通信するIOM)との間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。同様に、「GiFMからWFMへ」のイーサタイプは、インターネットに面するモジュールとワークフローモジュールとの間の通信を容易にするためにユーザデータをカプセル化する任意のイーサタイプを指す。
本明細書で使用されるとき、「SECMからSECMへ」のイーサタイプは、通信ネットワーク内のネットワーク化されたセキュリティモジュール間の通信を容易にする任意のイーサタイプを指す。
本明細書で使用されるとき、「SECMからIOMへ」のイーサタイプは、通信ネットワーク内のセキュリティモジュールと入出力マルチプレクサモジュールとの間の通信を容易にする任意のイーサタイプを指す。
図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ビットは同じになるように設計されているため、それらのビットは、同じコアにハッシュ化され、それによって加入者を特定のコアにピン留めする。
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を表す。
図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トンネリングされて戻される。
図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トンネリングされて戻される。
図8は、開示されている主題のいくつかの実施形態による、「G」ゲートウェイ(例えば、「Gサービス」として知られる付加価値サービスを提供し得るインターネットに面するゲートウェイ)として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に渡される。
Wi−Fiネットワークを使用してネットワークカバレッジを拡大し、マクロセルラーネットワーク上のトラフィックを低減すると、サービスプロバイダにとってコスト面での利点を有することができる。信頼できるWi−Fiネットワークは、例えば、サービスプロバイダが維持するホットスポット(例えば、空港のホストされたホットスポット)、またはプロバイダと連携して展開されたものとすることができる。サービスプロバイダは、モバイルまたは固定ネットワーク事業者とすることができる。例えば、ケーブルプロバイダのコムキャスト(Comcast)は、米国で展開されている何千もの無線ホットスポットを通じて、無線音声およびデータサービスの両方を現在提供している。
信頼できるネットワークは、サービスプロバイダが基本的なユーザ情報を検証し、アクセスポイントにわたってある程度のレベルの制御を行使することができるネットワークとして定義することができる。例えば、Wi−Fiユーザは、信頼できるWLANプロキシ(「TWAP」)を介してサービスプロバイダの認証、認可、およびアカウンティング(AAA)システムによって認証することができ、一方で音声/データトラフィック自体は、信頼できるWLANアクセスゲートウェイ(「TWAG」)を通過し、バックホールのためにデータネットワークにオフロードすることができる。本明細書に記載のいくつかの実施形態では、ポリシーエンフォースメント(例えば、サービス品質(「QoS」)ポリシー)、コンテンツフィルタリング、ウェブ/ビデオ最適化、およびNAT、ファイアウォールおよびインターネットプロトコルセキュリティ(「IPSec」)のようなセキュリティサービスなどの、Giサービスは、加入者発信パケット上で実行される。
いくつかの実装形態では、付加価値サービスおよびシームレスなセッションハンドオフを含めて、加入者のネットワークエクスペリエンスを信頼できるWi−Fiネットワークに拡張することは、サービスプロバイダのコアネットワークとの緊密な統合を含む。信頼できるWi−Fiアクセスの一例は、大型のショッピングモールでの無線ローミングであり、そこでは、モバイル加入者は、いったんモールの内側に入るとモールの外側にあるマクロセルラーネットワークから無線LAN(WLAN)へシームレスに移動することになる。このようなシナリオでは、加入者は、ネットワークにログオンすること、または既存のセッションを中断することを必要とせずに、屋内でより優れた無線受信を享受することになる。上述のように、TWAPは、認証/認可のためにAAAサーバとのセキュアな通信を確保することができ、一方でTWAGは、パケットデータネットワーク上に音声/データトラフィックをオフロードする(かつ、任意選択的に、そのトラフィックでポリシーを実施する)ことになる。しかしながら、すべてのトラフィックが、インターネットに直接ルーティングされ得るとは限らない。一定のトラフィックは、TWAGを介してパケットコアネットワークにルーティングされ得る。本明細書に記載の実施形態は、業界標準のS2aインターフェースをサポートすることができ、これはローカル仮想EPCソリューションの一部であるかまたは既存のサードパーティEPCソリューションであるかにかかわらず、TWAGが、任意の業界標準の進化したパケットコア(「EPC」)ゲートウェイと直接通信することを可能にする。
何百万ものWi−Fiアクセスポイントを有する世界において、サービスプロバイダがユーザを認証することができない、またはネットワーク上のトラフィックの流れを制御することができない、信頼できないWi−Fiネットワークはよくあることである。信頼できないネットワークの例は、喫茶店のWi−Fiネットワーク、または競合プロバイダによってホストされるものである可能性がある。本明細書に記載のいくつかの実施形態では、信頼できないWi−Fiネットワークをコアネットワークに持ち込むことを容易にするために、進化したパケットデータゲートウェイ(「ePDG」)を展開することができる。
信頼できないネットワーク上の通信は、インターネットプロトコルセキュリティ(「IPSec」)暗号化として知られる追加レベルのセキュリティを用いて保護することができる。業界標準は、すべてのモバイルデバイスが、そのデバイス上でIPSecクライアントを特徴付けなければならないことを義務付けている。そのような場合、音声およびデータセッションは、IPSecトンネルをセキュアに通過する。これらのトンネルは、着信コールまたは発信コールを見越してオープンのままにしておく必要がある場合が多く、そのため、いつでも何百万ものIPSecトンネルをネットワーク内でオープンのままにしておく必要があり得る。ハードウェアベースのePDGは、オープンIPSecトンネルに対するこの高い要求を取り扱うように設計されているが、これらの同じ高い暗号化要件は、仮想化ePDGインスタンスにとって問題があることが歴史的に証明されている。本明細書に記載のいくつかの実施形態によれば、堅牢な仮想ePDGが実装され、それは単一のサーバ上で5GレベルのIPSec暗号化通信を配信することができる。
図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によって識別される。
図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に渡されて戻される。
図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によって識別されルーティングされる。
図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によって選択されたコアに対応する。
パケットは、所与のイーサタイプ(例えば、「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を使用して識別される。
図13は、開示されている主題のいくつかの実施形態による、プロキシおよび非プロキシマルチプロトコルラベルスイッチング(「MPLS」)トラフィックアプリケーションの両方に対する負荷分散ハッシュ化を説明する図である。図13に図示される実施形態のいくつかの実装形態において、WSM1330は、IOM1326Aから受信したパケットをPM1332に転換するかどうかに関して判定を下す。図13に示すように、UEから発信されてアクセスネットワーク1315の「S1U」インターフェース/ポートに到着するデータパケットは、IOM1326AへGTP−Uトンネリングされ、(Src+Dst)Addrを介して識別される。パケットは、GnFMからWFMへのイーサタイプを使用して、IOM1326AによってWSM1330へ(すなわち、WSM1330のIPアドレスへ)転送され、そのTEIDに基づいて、再び識別され、かつ処理コアへとルーティングされる。
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を使用して識別される。
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を使用して識別される。
図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は、この情報の記録をテーブルに保存し得る。
ステップ2006において、MCC1416は、eNodeB1404からアップストリームデータパケットを受信する。アップストリームデータパケットは、以前に確立されたTEID_Uを含む。ステップ2010において、MCC1416は、TEID_Uに対応するセッションIDを識別する。いくつかの実施形態では、IOMは、テーブルへのインデックスとしてTEID_Uを使用することによってセッションIDを識別する。次いで、IOMは、アップストリームデータパケットを処理するためにセッションIDに基づいてワークフローサービスモジュール(「WSM」)を選択し、アップストリームデータパケットを選択されたWSMにルーティングする。WSMは、セッションIDに基づいて特定のパケットハンドラコア(「PHC」)を選択する。いくつかの実施形態では、ハッシュ化アルゴリズムが、セッションIDに基づいて、アップストリームデータパケットをPHCに分配するために使用される。
MCC1416は、アップストリームデータパケットが、プロキシサービスを必要とすると判定する。例えば、アップストリームデータパケットは、特別なビデオ符号化、キャッシュされたコンテンツへのアクセス、SMTP、および他のプロキシサービスを必要とする場合がある。このデータの処理を強化するために、プロキシサービスモジュールが使用されてもよい。MCC1416は、次いで、既存のIPコールを終了させ、例えば、外部パケットデータネットワークとの通信のために新しいループバックIPアドレスを作成し得る。ループバックIPアドレスは、ユーザデバイスに関連する発信トラフィックの送信元アドレスとして、およびユーザデバイスに関連する着信トラフィックに対する宛先アドレスとして使用される。次いで、MCC1416は、ループバックIPアドレスを、選択されたパケットハンドラコアに対応する識別子にマッピングし、この相関関係をネットワークアドレス変換テーブル(「NAT」)に任意選択的に格納する。
ステップ2012において、アップストリームデータパケットが、送信元IPアドレスとしてループバックIPアドレスを使用してインターネット1422に送信される。ステップ2014において、ダウンストリームデータパケットが、宛先アドレスとしてループバックIPアドレスと共に受信される。ステップ2016において、MCC1416は、ループバックIPアドレスに基づいて、ダウンストリームデータパケットをプロキシサービスモジュールにルーティングする。MCC1416は、ループバックIPアドレスに基づいて、ダウンストリームデータパケットを選ばれたパケットハンドラコアにマッピングするためにNATに格納された相関関係を使用する。ステップ2018において、ダウンストリームデータパケットは、TEID_Dを使用してeNodeB1404へルーティングして戻される。
本明細書に開示された技法およびシステムは、ネットワーク、コンピュータシステム、またはコンピュータ化された電子デバイスと共に使用するためのコンピュータプログラム製品として実装されてもよい。そのような実装形態は、コンピュータ可読媒体(例えば、ディスケット、CD−ROM、ROM、フラッシュメモリ、または他のメモリもしくは固定ディスク)のような有形の媒体上に固定されるか、あるいは、モデムもしくは媒体を覆うネットワークに接続された通信アダプタなどの他のインターフェースデバイスを介して、ネットワーク、コンピュータシステム、またはデバイスへ送信可能である、一連のコンピュータ命令、またはロジックを含んでもよい。
媒体は、有形の媒体(例えば、光またはアナログ通信回線)または無線技法(例えば、Wi−Fi、セルラー、マイクロ波、赤外線、もしくは他の伝送技術)を用いて実装された媒体のいずれかであってもよい。一連のコンピュータ命令は、システムに関して本明細書で説明されている機能性の少なくとも一部を具体化する。当業者は、そのようなコンピュータ命令を、多くのコンピュータアーキテクチャまたはオペレーティングシステムで使用するためにいくつかのプログラミング言語で書くことができることを理解されたい。
さらに、そのような命令は、半導体、磁気、光学、または他のメモリデバイスなどの任意の有形のメモリデバイスに格納されてもよく、光学、赤外線、マイクロ波、または他の伝送技術などの任意の通信技術を使用して送信されてもよい。
そのようなコンピュータプログラム製品は、印刷物もしくは電子文書を伴うリムーバブルメディア(例えば、シュリンクラップソフトウェア)として配布されてもよく、コンピュータシステムにプリロード(例えば、システムROMもしくは固定ディスクに)されてもよく、またはネットワーク(例えば、インターネットもしくはワールドワイドウェブ)を介してサーバもしくは電子掲示板から配布されてもよいことが予想される。当然のことながら、本発明のいくつかの実施形態は、ソフトウェア(例えば、コンピュータプログラム製品)とハードウェアの両方の組み合わせとして実装されてもよい。さらに本発明の他の実施形態は、完全にハードウェアとして、または完全にソフトウェア(例えば、コンピュータプログラム製品)として実装される。
前述の説明において、一定のステップまたはプロセスは、特定のサーバ上で、または特定のエンジンの一部として実行することができる。特定のステップは、サーバシステムおよび/またはモバイルデバイスを含むがこれらに限定されない、様々なハードウェアデバイス上で実行することができるので、これらの説明は単なる例示である。同様に、特定のステップが実行される場所の分割は、変化する可能性があり、分割がないことまたは異なる分割が本発明の範囲内であることが理解される。さらに、コンピュータシステム処理を説明するために使用される「モジュール」および/または他の用語の使用は、交換可能であり、機能を実行することができる論理または回路を表すことを意図している。

Claims (28)

  1. 通信システムにおいてパケットハンドラコアにパケットを送信するためのコンピューティングシステムであって、
    プロセッサと、
    メモリであって、前記プロセッサに結合され、かつ前記プロセッサによって実行されるとき、前記プロセッサに、
    セッションを作成する要求を受信することであって、前記要求が、加入者に対応する、ことと、
    ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
    前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が、前記セッションを一意的に識別する、ことと、
    前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
    前記ダウンストリーム識別子または前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別することと、
    前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングすることと、を行わせる、コンピュータ可読命令を含む、メモリと、を備える、コンピューティングシステム。
  2. 前記アップストリーム識別子が、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む、請求項1に記載のコンピューティングシステム。
  3. 前記プロセッサに、前記暗号化キーを使用して、前記データパケットを暗号化または復号化することをさらに行わせる、請求項2に記載のコンピューティングシステム。
  4. 前記ダウンストリーム識別子が、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレスまたはTEIDのうちの1つを含む、請求項1に記載のコンピューティングシステム。
  5. アップストリーム識別子およびダウンストリーム識別子が、共通の値を共有する、請求項1に記載のコンピューティングシステム。
  6. 前記共通の値が、前記アップストリーム識別子およびダウンストリーム識別子の最初の24ビット部分を含む、請求項5に記載のコンピューティングシステム。
  7. 前記プロセッサに、前記セッション識別子にハッシュ化アルゴリズムを適用して、前記パケットハンドラコアを判定することをさらに行わせる、請求項1に記載のコンピューティングシステム。
  8. 前記プロセッサに、
    前記データパケットに対するプロキシサービスを識別することと、
    前記データパケットをプロキシサービスモジュールにルーティングすることと、
    前記パケットハンドラコアに対する識別子を前記セッション識別子と相関させることと、をさらに行わせる、請求項1に記載のコンピューティングシステム。
  9. 前記プロセッサに、前記パケットハンドラコアに対する前記識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることをさらに行わせる、請求項8に記載のコンピューティングシステム。
  10. 通信システムにおいてパケットハンドラコアにパケットを送信するための方法であって、
    コンピューティングデバイスによって、セッションを作成するための要求を受信することであって、前記要求が、加入者に対応する、ことと、
    前記コンピューティングデバイスによって、ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
    前記コンピューティングデバイスによって、前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が、前記セッションを一意的に識別する、ことと、
    前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
    前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別することと、
    前記コンピューティングデバイスによって、前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングすることと、を含む、方法。
  11. 前記アップストリーム識別子が、トンネルエンドポイント識別子(「TEID」)または暗号化キーを含む、請求項10に記載のコンピューティングシステム。
  12. 前記プロセッサに、前記暗号化キーを使用して、前記データパケットを暗号化または復号化することをさらに行わせる、請求項11に記載のコンピューティングシステム。
  13. 前記ダウンストリーム識別子が、ユーザ機器(「UE」)インターネットプロトコル(「IP」)アドレス、またはTEIDのうちの1つを含む、請求項10に記載のコンピューティングシステム。
  14. アップストリーム識別子およびダウンストリーム識別子が、共通の値を共有する、請求項10に記載のコンピューティングシステム。
  15. 前記共通の値が、前記アップストリーム識別子およびダウンストリーム識別子の最初の24ビット部分を含む、請求項14に記載のコンピューティングシステム。
  16. 前記プロセッサに、前記セッション識別子にハッシュ化アルゴリズムを適用して、前記パケットハンドラコアを判定することをさらに行わせる、請求項10に記載のコンピューティングシステム。
  17. 前記プロセッサに、
    前記データパケットに対するプロキシサービスを識別することと、
    前記データパケットをプロキシサービスモジュールにルーティングすることと、
    前記パケットハンドラコアに対する識別子を前記セッション識別子と相関させることと、をさらに行わせる、請求項10に記載のコンピューティングシステム。
  18. 前記プロセッサに、前記パケットハンドラコアに対する前記識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることをさらに行わせる、請求項17に記載のコンピューティングシステム。
  19. 通信システムにおいてパケットハンドラコアにパケットを送信するためのコンピューティングシステムであって、
    プロセッサと、
    メモリであって、前記プロセッサに結合され、前記プロセッサによって実行されるとき、前記プロセッサに、
    セッションを作成する要求を受信することであって、前記要求が、加入者に対応する、ことと、
    ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
    前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が、前記セッションを一意的に識別する、ことと、
    前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
    前記データパケットが、プロキシサービスを必要とすることを判定することと、
    前記データパケットが、前記ダウンストリーム識別子または前記アップストリーム識別子を含むかどうかを判定することと、
    前記データパケットが、前記アップストリーム識別子を含むとき、前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別し、かつ前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングすることと、
    前記データパケットが、前記ダウンストリーム識別子を含むとき、前記ダウンストリーム識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることと、を行わせる、コンピュータ可読命令を含む、メモリと、を備える、コンピューティングシステム。
  20. 前記ダウンストリーム識別子が、UEループバックIPアドレスを含む、請求項19に記載のコンピューティングシステム。
  21. 前記アップストリーム識別子が、TEIDを含む、請求項19に記載のコンピューティングシステム。
  22. システム開始プロキシトラフィックが、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、ダウンストリーム加入者トラフィックと区別される、請求項19に記載のコンピューティングシステム。
  23. 前記MPLSラベルスペースが、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割される、請求項22に記載のコンピューティングシステム。
  24. 通信システムにおいてパケットハンドラコアにパケットを送信するための方法であって、
    コンピューティングデバイスによって、セッションを作成するための要求を受信することであって、前記要求が、加入者に対応する、ことと、
    前記コンピューティングデバイスによって、ダウンストリーム識別子およびアップストリーム識別子を前記セッションに割り当てることと、
    前記コンピューティングデバイスによって、前記ダウンストリーム識別子および前記アップストリーム識別子をセッション識別子に関連付けることであって、前記セッション識別子が、前記セッションを一意的に識別する、ことと、
    前記コンピューティングデバイスによって、前記ダウンストリーム識別子または前記アップストリーム識別子を含むデータパケットを受信することと、
    前記コンピューティングデバイスによって、前記データパケットが、プロキシサービスを必要とすることを判定することと、
    前記コンピューティングデバイスによって、前記データパケットが、前記ダウンストリーム識別子または前記アップストリーム識別子を含むかどうかを判定することと、
    前記データパケットが、前記アップストリーム識別子を含むとき、前記アップストリーム識別子に基づいて、前記データパケットに関連付けられた前記セッション識別子を識別し、かつ前記セッション識別子に基づいて、前記データパケットをパケットハンドラコアにルーティングすることと、
    前記データパケットが、前記ダウンストリーム識別子を含むとき、前記ダウンストリーム識別子に基づいて、前記データパケットを前記パケットハンドラコアにルーティングすることと、を含む、方法。
  25. 前記ダウンストリーム識別子が、UEループバックIPアドレスを含む、請求項24に記載の方法。
  26. 前記アップストリーム識別子が、TEIDを含む、請求項24に記載の方法。
  27. システム開始プロキシトラフィックが、区分されたマルチプロトコルラベルスイッチング(「MPLS」)ラベルスペースを使用して、ダウンストリーム加入者トラフィックと区別される、請求項24に記載の方法。
  28. 前記MPLSラベルスペースが、UEプールアドレスドメインと、プロキシループバックアドレスドメインと、に分割される、請求項27に記載の方法。
JP2019560079A 2017-01-25 2018-01-25 多重パケット処理コア上の無線加入者パケット処理の負荷分散 Active JP7100061B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762450162P 2017-01-25 2017-01-25
US62/450,162 2017-01-25
PCT/US2018/015276 WO2018140621A1 (en) 2017-01-25 2018-01-25 Load balancing of wireless subscriber packet processing over multiple packet processing cores

Publications (3)

Publication Number Publication Date
JP2020507289A true JP2020507289A (ja) 2020-03-05
JP2020507289A5 JP2020507289A5 (ja) 2021-03-04
JP7100061B2 JP7100061B2 (ja) 2022-07-12

Family

ID=61231311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019560079A Active JP7100061B2 (ja) 2017-01-25 2018-01-25 多重パケット処理コア上の無線加入者パケット処理の負荷分散

Country Status (6)

Country Link
US (1) US10321360B2 (ja)
EP (1) EP3574629B1 (ja)
JP (1) JP7100061B2 (ja)
KR (1) KR102455902B1 (ja)
CN (1) CN110383792B (ja)
WO (1) WO2018140621A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787912A (zh) * 2019-03-04 2019-05-21 南京邮电大学 一种dpdk环境下基于nat的负载均衡方法
US11444877B2 (en) * 2019-03-18 2022-09-13 At&T Intellectual Property I, L.P. Packet flow identification with reduced decode operations
KR20200112439A (ko) * 2019-03-22 2020-10-05 삼성전자주식회사 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법
CN109995672B (zh) * 2019-03-22 2022-03-25 烽火通信科技股份有限公司 基于dpdk的虚拟家庭网关带宽调度控制方法及系统
GB2592315B (en) 2019-04-04 2023-07-19 Pismo Labs Technology Ltd Methods and systems for sending packets through a plurality of tunnels
US11425043B2 (en) * 2020-06-16 2022-08-23 T-Mobile Usa, Inc. Duplex load balancing for massive IoT applications
US20220394017A1 (en) * 2021-06-07 2022-12-08 Vmware, Inc. Ipsec processing on multi-core systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101878663A (zh) * 2007-11-29 2010-11-03 瑞科网信科技有限公司 分布式多重处理安全网关的系统和方法
KR20130033388A (ko) * 2010-06-29 2013-04-03 알까뗄 루슨트 네트워크 요소에서 세션의 번들을 할당하는 방법 및 장치
EP2843885A1 (en) * 2013-08-29 2015-03-04 NTT DoCoMo, Inc. Apparatus and method for implementing a packet gateway user plane
WO2015161384A1 (en) * 2014-04-25 2015-10-29 Pravala Networks Inc. Using proxy devices as dynamic data relays

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003574B1 (en) * 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
US8135850B2 (en) * 2008-11-25 2012-03-13 Citrix Systems, Inc. Systems and methods for load balancing real time streaming
WO2015043665A1 (en) * 2013-09-27 2015-04-02 Telefonaktiebolaget L M Ericsson (Publ) Lawful interception in a wi-fi / packet core network access

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101878663A (zh) * 2007-11-29 2010-11-03 瑞科网信科技有限公司 分布式多重处理安全网关的系统和方法
JP2013078134A (ja) * 2007-11-29 2013-04-25 A10 Networks Inc 分散多重処理セキュリティゲートウエイのためのシステム及び方法
KR20130033388A (ko) * 2010-06-29 2013-04-03 알까뗄 루슨트 네트워크 요소에서 세션의 번들을 할당하는 방법 및 장치
JP2013533705A (ja) * 2010-06-29 2013-08-22 アルカテル−ルーセント ネットワーク要素内でセッションのバンドルを割り当てるための方法および装置
CN103385033A (zh) * 2010-06-29 2013-11-06 阿尔卡特朗讯公司 用于在网络单元中分配会话束的方法和设备
EP2843885A1 (en) * 2013-08-29 2015-03-04 NTT DoCoMo, Inc. Apparatus and method for implementing a packet gateway user plane
JP2015050772A (ja) * 2013-08-29 2015-03-16 株式会社Nttドコモ パケットゲートウェイユーザプレーンを実装する装置及び方法
WO2015161384A1 (en) * 2014-04-25 2015-10-29 Pravala Networks Inc. Using proxy devices as dynamic data relays
JP2017518717A (ja) * 2014-04-25 2017-07-06 ウィルマーディング・コミュニケーションズ・エルエルシー 動的なデータ中継としてのプロキシ装置の使用

Also Published As

Publication number Publication date
CN110383792A (zh) 2019-10-25
JP7100061B2 (ja) 2022-07-12
EP3574629B1 (en) 2022-12-21
CN110383792B (zh) 2022-05-24
KR102455902B1 (ko) 2022-10-17
WO2018140621A1 (en) 2018-08-02
US10321360B2 (en) 2019-06-11
US20180213440A1 (en) 2018-07-26
EP3574629A1 (en) 2019-12-04
KR20190107709A (ko) 2019-09-20

Similar Documents

Publication Publication Date Title
KR102455902B1 (ko) 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱
US11831544B2 (en) Virtual layer-2 network
CN108886825B (zh) 分布式软件定义无线分组核心系统
US10237230B2 (en) Method and system for inspecting network traffic between end points of a zone
US9729578B2 (en) Method and system for implementing a network policy using a VXLAN network identifier
US9331908B2 (en) Specifying priority on a virtual station interface discovery and configuration protocol response
CA2847103C (en) Implementing a 3g packet core in a cloud computer with openflow data and control planes
US12010173B2 (en) Class-based queueing for scalable multi-tenant RDMA traffic
US8867361B2 (en) Implementing EPC in a cloud computer with OpenFlow data plane
US10798638B2 (en) Apparatus and method for controller and slice-based security gateway for 5G
WO2021073565A1 (zh) 业务服务提供方法及系统
Jin et al. SoftCell: Taking control of cellular core networks
US20220239629A1 (en) Business service providing method and system, and remote acceleration gateway
US20180167418A1 (en) Apparatus and method for lawful interception
WO2022103172A1 (ko) 통신 시스템에서 소프트웨어-정의 광역 네트워크를 구성하는 방법 및 장치
WO2022146466A1 (en) Class-based queueing for scalable multi-tenant rdma traffic
WO2017084688A1 (en) Technique for enhanced routing of data packets
WO2022146470A1 (en) Cloud scale multi-tenancy for rdma over converged ethernet (roce)

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200710

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200729

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220630

R150 Certificate of patent or registration of utility model

Ref document number: 7100061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150