JP2017050747A - 通信システム、転送用装置および制御用装置 - Google Patents

通信システム、転送用装置および制御用装置 Download PDF

Info

Publication number
JP2017050747A
JP2017050747A JP2015173429A JP2015173429A JP2017050747A JP 2017050747 A JP2017050747 A JP 2017050747A JP 2015173429 A JP2015173429 A JP 2015173429A JP 2015173429 A JP2015173429 A JP 2015173429A JP 2017050747 A JP2017050747 A JP 2017050747A
Authority
JP
Japan
Prior art keywords
information
plane
transfer
control
pgw
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.)
Pending
Application number
JP2015173429A
Other languages
English (en)
Inventor
崇洋 安井
Takahiro Yasui
崇洋 安井
恵理 川井
Eri Kawai
恵理 川井
勝史 今
Katsushi Kon
勝史 今
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015173429A priority Critical patent/JP2017050747A/ja
Publication of JP2017050747A publication Critical patent/JP2017050747A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】C-Plane(コントロールプレーン)装置とU-Plane(ユーザプレーン)装置に分離したゲートウェイ装置でのプロセス間通信によるユーザデータの転送遅延の発生を抑制する。【解決手段】通信システムは、移動体端末と通信先との間の通信経路に関する制御データを処理する制御用装置2と、移動体端末が、通信先と送受信するユーザデータを転送する転送用装置3−1〜3−3と、を備える。制御用装置は、通信経路の確立を要求する接続要求を通信装置から受信すると、制御用装置が制御データを処理する際に使用するC-Planeに関する制御用情報と転送用装置がユーザデータを転送する際に使用するU-Planeに関する転送用情報とを生成して記憶するとともに、生成した転送用情報を転送用装置へ送信する。転送用装置は、制御用装置から受信した転送用情報を記憶する。【選択図】図1

Description

本発明は、通信システム、転送用装置および制御用装置に関する。
移動体通信システムにおいては、その処理において制御信号を装置間で送受信するC-Plane(コントロールプレーン)処理とユーザデータを装置間で送受信するU-Plane(ユーザプレーン)処理とに大別される。制御信号およびユーザデータを扱う、特開2010−63022号公報(特許文献1)に記載の技術がある。この公報には、C-Plane処理とU-Plane処理を分離するC/U分離に関して「アクセスゲートウェイ装置4は、基地局7a〜7cとコアネットワーク1との間で制御信号(シグナリング)を処理する複数の制御信号用アクセスゲートウェイ(以下、C−AGWまたは制御プレーンとする)5a、5bと、基地局7a〜7cとコアネットワーク1のホームエージェント3との間でユーザデータを転送する複数のユーザデータ用アクセスゲートウェイ(以下、U−AGWまたはユーザプレーンとする)6a、6b、6cを分離して備える」という記載がある。
特開2010−63022号公報
特許文献1において、C-Plane処理を行うC-Plane装置とU-Plane処理を行うU-Plane装置にゲートウェイ装置を分離することにより、U-Plane装置が保持していない転送先情報等に関するデータをU-Plane装置が受信すると、U-Plane装置は、C-Plane装置が保持する転送先情報等をC-Plane装置に対して問い合わせるプロセス間通信が発生し、C-Plane装置から取得した転送先情報等に基づいて受信したデータを転送する。そのため、U-Plane装置においてプロセス間通信による転送遅延が発生するという課題がある。
この課題に対して、U-Plane装置がデータを転送する際に参照する転送先情報等をキャッシュとしてU-Plane装置で保持しておくことが考えられるが、この場合、転送先情報等のキャッシュは、U-Plane装置がデータを一度転送した後に作成されるため、U-Plane装置が初めて受信するデータには効果がないという課題がある。
そこで、本発明では、C-Plane装置とU-Plane装置に分離したゲートウェイ装置でのプロセス間通信によるユーザデータの転送遅延の発生を抑制することを目的とする。
上述の課題を解決するために、本発明の一態様である通信システムは、移動体端末を収容する通信装置に接続される第1のネットワークと、移動体端末の通信先を含む第2のネットワークと、に接続され、移動体端末と通信先との間の通信経路に関する制御データを処理する制御用装置と、移動体端末が、通信先と送受信するユーザデータを転送する転送用装置とを備える。
この通信システムの制御用装置は、制御データの1つである、通信経路の確立を要求する接続要求を通信装置から受信すると、制御用装置が制御データを処理する際に使用する第1の通信経路に関する制御用情報と転送用装置がユーザデータを転送する際に使用する第2の通信経路に関する転送用情報とを生成して記憶するとともに、生成した転送用情報を転送用装置へ送信する。
この通信システムの転送用装置は、制御用装置から受信した転送用情報を記憶する。
本発明によれば、プロセス間通信によるユーザデータの転送遅延の発生を抑制する事ができる。前述した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
ネットワークシステム全体の構成図の例である。 PGWの構成例を説明する図である。 セッションDB(C)の詳細な構成例を説明する図である。 セッションDB(U)の詳細な構成例を説明する図である。 PGWがC-Planeパケットを受信しC-Plane処理を行う際のシーケンスを説明する図の例である。 PGWがU-Planeパケットを受信しU-Plane処理を行う際のシーケンスを説明する図の例である。 実施例2におけるネットワークシステム全体の構成図の例である。 セッションDB(C)およびセッションDB(U)の詳細な構成例を説明する図である。 セッションDB(C)およびセッションDB(U)の詳細な構成例を説明する図である。 セッションDB(C)およびセッションDB(U)の詳細な構成例を説明する図である。 実施例2におけるPGWがC-Planeパケットを受信しC-Plane処理を行う際のシーケンスを説明する図の例である。
以下、図面を参照して実施例を説明する。
(実施例1)
図1は、ネットワークシステム全体の構成図の例である。
本実施例のネットワークシステムは、Serving Gateway (SGW)4、Packet data network Gateway(PGW)1、Packet Data Network (PDN)6、SGW4およびPGW1を介してPDN6とデータを送受信する移動体端末であるUser Equipment(UE)5を有する。SGW4とPGW1でモバイルコアネットワークを構成する。
SGW4は、例えば、Mobility Management Entity(MME)などの図示しない通信装置を介してUE5を収容し、ユーザデータを他の通信システムに接続するノード機能を有する通信装置である。PGW1は、モバイルコアネットワーク外のネットワークであるPDN6との接続点となり、ユーザデータに対して課金やQuality of Service(QoS)制御機能を有する通信装置である。PDN6は、公衆データ網であり、UE5とユーザデータを送受信する通信先の通信装置を含むネットワークである。また、1台のPGW1は、複数のPDN6に接続することができる。PGW1は、UL(Uplink)データ(UE5からPDN6へのデータ)をPDN6側に転送する際、PDN6を識別する情報を使用する。
PGW1は、制御データ(制御信号)を転送する制御プレーン(C-Plane)処理を実行し、C-Planeに関する情報を制御する通信装置である制御用装置のPGW(C)2(制御プレーン用PGW2)と、ユーザデータ(ユーザ信号)を転送するユーザプレーン(U-Plane)処理を実行し、U-Planeに関する情報を制御する通信装置である転送用装置のPGW(U)3(ユーザプレーン用PGW3)とを有し、通信装置単位でC-Plane処理とU-Plane処理を分離する構成(C/U分離構成)のPGWである。本実施例では、PGW(U)3が3台構成である。つまり、PGW1は、物理的に異なる複数の通信装置によって構成される。PGW(C)2と各PGW(U)3とは、通信回線を介して接続される。また、PGW(C)2と各PGW(U)3とは、スイッチやルータなどの通信装置を含むネットワークを介して接続されてもよい。なお、PGW(U)3-1〜3-3の内部構成は同一(ただし、保持するU-Planeに関する情報は異なる)である。
PGW1は、モバイルコアネットワーク内のネットワーク7を介してSGW4との間で、C-Plane処理を行うことでU-Planeの転送路(通信経路)を仮想的に確立し、U-Planeの転送路が確立している間は、UE5とPDN6は、任意のタイミングで、経路について気にすることなくデータの送受信が可能となる。
本実施例に記載する装置構成やテーブルの保持値、装置数は一例であり、本実施例の構成を制限するものではない。また、各構成要素に付される符号において同種の構成要素が複数存在する場合は、たとえば、「PGW(U)3-1、PGW(U)3-2、PGW(U)3-3」のように、枝番を用いて区別するが、説明上区別しない場合は、たとえば、「PGW(U)3」のように、枝番を省略する。また、以下の説明では、データの具体的な形式としてパケットを用いるが、フレームであってもよい。
PGW(C)2は、セッションに関する情報(以下、「セッション情報」と呼ぶ。)を格納(保持、記憶、記録)するセッションData Base(DB)(C)20と、C-Plane処理を行うプロセス(アプリケーション、ソフトウェア)であるC-Planeプロセス21を有する。ここで、セッションとは、ユーザ単位の通信情報であり、一連の通信の単位である。また、セッションは、通信経路でもある。C-Planeプロセス21は、SGW4との間で制御パケットであるC-Planeパケットを送受信することでC-Plane処理を行う。C-Planeプロセス21は、C-Plane処理を実行する際、セッションDB(C)20の更新や参照を行う。
セッションDB(C)20に格納されるセッション情報は、SGW1とPGW(C)2との間で、PGW(C)2がC-Plane処理を行うために必要なC-Planeに関する情報(以下、「C-Plane情報」または「制御用情報」と呼ぶ。)であるC-Plane用のセッション情報(以下、「C-Planeセッション情報」または「制御用経路情報」と呼ぶ。)と、SGW1とPGW(U)3との間で、PGW(U)3がU-Plane処理を行うために必要なU-Planeに関する情報(以下、「U-Plane情報」または「転送用情報」と呼ぶ。)であるU-Plane用のセッション情報(以下、「U-Planeセッション情報」または「転送用経路情報」と呼ぶ。)と、を含む。なお、C-Plane処理で管理、制御するセッションをC-Plane用のセッションと呼び、U-Plane処理で管理、制御するセッションをU-Plane用のセッションと呼ぶ。
C-Plane処理によりU-Plane情報に更新が発生した場合は、C-Planeプロセス21は、通信回線を介してC/U連携プロセス30に更新分のU-Plane情報を送信し、C/U連携プロセス30は、セッションDB(U)31を更新する。
PGW(U)3は、U-Planeセッション情報を格納するセッションDB(U)31と、C-Planeプロセス21と連携動作するC/U連携プロセス30と、U-Plane処理を行うプロセスであるU-Planeプロセス32を有する。なお、C-Plane処理とU-Plane処理とをまとめてC/U-Plane処理と記載する。
C/U連携プロセス30は、C-Planeプロセス21がC-Plane処理を行った際に送信した更新分のU-Plane情報を受け取り、セッションDB(U)31を更新する。セッションDB(U)31に格納されるU-Planeセッション情報は、セッションDB(C)20に格納されるU-Planeセッション情報である。
U-Planeプロセス32は、SGW4およびPDN6との間でユーザパケットであるU-Planeパケットを送受信することでU-Plane処理を行う。U-Planeプロセス32は、U-Plane処理を実行する際、U-Plane処理を実施するために必要となるU-Plane情報をセッションDB(U)31から取得する。
また、C-Planeプロセス21とU-Planeプロセス32とは、データ処理の構造が異なるため、扱うデータ構造が異なる。そのため、セッションDB(C)20に格納されるU-Plane情報とセッションDB(U)31に格納されるU-Planeセッション情報とは、それぞれのDBに格納される際のデータ構造が異なる。また、図1のようにC-Planeプロセス21とU-Planeプロセス32とは、物理的に異なる複数の通信装置によって実行されるため、セッションDB(C)20に格納されるU-Plane情報とセッションDB(U)31に格納されるU-Planeセッション情報とを同じDB、つまり、共有のDBで管理することはできない。
図2は、PGWの構成例を説明する図である。
PGW(C)2は、C-Planeプロセス21を備えるPGW(C)制御部22と、セッションDB(C)20を備えるPGW(C)記憶部23と、FrontPort24と、C/U連携用Port25とを有する。
PGW(C)制御部22がプロセッサであり、PGW(C)記憶部23がメモリであり、プロセッサが、メモリに格納されたプログラム(不図示)を実行することによって、C-Planeプロセス21などの各機能が実現されてもよい。また、PGW(C)制御部22とPGW(C)記憶部23は、例えばField-programmable gate array(FPGA)のような集積回路で設計する等によりハードウェアで実現してもよい。
FrontPort24は、モバイルコアネットワーク内のネットワーク7に接続されるポートである。C/U連携用Port25は、PGW(U)3に接続されるポートである。
C-Planeプロセス21は、SGW4よりFrontPort24を経由してC-Planeパケットを受信し、受信したパケットを解析し、解析したデータに基づき、セッションDB(C)20の更新を行う。また、C-Planeプロセス21は、更新分のU-Plane情報をC/U連携用Port25を経由してPGW(U)3内のC/U連携プロセス30に向けて送信する。
PGW(U)3は、C/U連携プロセス30およびU-Planeプロセス32を備えるPGW(U)制御部36と、セッションDB(U)31を備えるPGW(U)記憶部37と、FrontPort33と、RearPort35と、C/U連携用Port34とを有する。
PGW(U)制御部36とPGW(U)記憶部37は、例えばFPGAのような集積回路で設計する等によりハードウェアで実現してもよい。また、PGW(U)制御部36がプロセッサであり、PGW(U)記憶部37がメモリであり、プロセッサが、メモリに格納されたプログラム(不図示)を実行することによって、C/U連携プロセス30およびU-Planeプロセス32などの各機能が実現されてもよい。
C/U連携プロセス30は、C/U連携用Port34を経由しC-Planeプロセス21から受信したU-Plane情報に基づき、セッションDB(U)31を更新する。U-Planeプロセス32は、UL(Uplink)(UE5からPDN6へ)方向のパケット転送の場合は、SGW4からFrontPort33を経由してユーザパケットを受信し、セッションDB(U)31のU-Planeセッション情報に基づきRearPort35を経由してPDN6にユーザデータを転送する。
U-Planeプロセス32は、DL(Downlink)(PDN6からUE5へ)方向のパケット転送の場合は、PDN6からRearPort35を経由してユーザデータを受信し、セッションDB(U)31のU-Planeセッション情報に基づきFrontPort33を経由してSGW6にユーザデータを転送する。ここで、セッションDB(U)31のデータ構造は、セッションDB(C)20に格納されたセッション情報のうち、U-Planeセッション情報の参照に特化したデータ構造である。
図3は、セッションDB(C)の詳細な構成例を説明する図である。
図3では、例として、PGW(U)3-1に関するC-Planeセッション情報およびU-Planeセッション情報を示している。セッションDB(C)20は、C-Plane情報テーブル40と、PGW(U)3毎のU-Plane情報テーブル50を有する。
C-Plane情報テーブル40は、C-Planeセッション情報を管理するテーブルであり、C-Plane情報フィールド41、所属U-Plane情報フィールド42などのフィールドを持つ。C-Plane情報テーブル40は、C-Plane情報とU-Plane情報とを対応づけるテーブルである。
C-Plane情報フィールド41は、SGW4-PGW1間のC-Planeセッション情報(International Mobile Subscriber Identity (IMSI), Evolved Packet System Bearer ID(EBI),SGW-C-IP,SGW-C-TEID(Tunnel Endpoint ID),PGW-C-IP,PGW-C-TEID,etc...)を保持するフィールドである。ここで、IMSIは、携帯電話加入者などのUE5を一意に識別する識別子(識別情報、識別番号)である移動体端末識別子であり、EBIはIMSI内でユニークな識別子である。なお、UE5を一意に識別する識別子であれば、IMSIに限られず、International Mobile Equipment Identity (IMEI)などであってもよい。
SGW-C-IPは、C-Plane処理を実行するSGW4のIPアドレスであり、SGW-C-TEIDは、C-Plane処理を実行するSGW4が使用するセッション(通信経路)を識別する制御用SGW経路識別子であり、PGW-C-IPは、C-Plane処理を実行するPGW(C)2のIPアドレスであり、PGW-C-TEIDは、C-Plane処理を実行するPGW(C)2が使用するセッションを識別するPGW(C)経路識別子(制御用装置経路識別子)である。
所属U-Plane情報フィールド42は、C-Plane情報に所属(対応)するU-Plane情報を特定する情報を保持するフィールドである。つまり、所属U-Plane情報フィールド42は、C-Plane情報に対し複数紐付けられるU-Plane情報を特定する情報(以下、「PGW-U-TEID」と表記する。)のリストを保持するフィールドである。
C-Planeプロセス21は、C-Plane情報フィールド41と所属U-Plane情報フィールド42の1つの組(レコード)によってC-Plane情報に所属するU-Plane情報を特定する。また、C-Planeプロセス21は、U-Plane情報であるPGW-U-TEIDを検索キーにU-Plane情報テーブル50を検索することで、U-Planeセッション情報を取得する。
U-Plane情報テーブル50は、U-Planeセッション情報を管理するテーブルであり、U-Plane情報として、PGW-U-TEIDフィールド51、PGW-U-IPフィールド52、UEIPフィールド53、SGW-U-TEIDフィールド54、SGW-U-IPフィールド55、PDNフィールド56などのフィールドを持つ。U-Plane情報の各フィールドの1つ組(エントリ、レコード)が1つのU-Plane用のセッションに対応する。
PGW-U-TEIDフィールド51は、U-Plane処理を実行するPGW(U)3が使用するセッションを識別するPGW(U)経路識別子(転送用装置経路識別子)であるPGW-U-TEIDを格納する。PGW-U-TEIDフィールド51は、PGW2の中で重複がなくU-Plane情報テーブル50で検索キーとして使用することができる。
PGW-U-IPフィールド52は、U-Plane処理にてPGW1がパケット転送時に用いるPGW(U)3のInternet Protocol(IP)アドレス、つまり、U-Plane処理を実行するPGW(U)3のIPアドレスを格納する。なお、このIPアドレスは、PGW(U)3それぞれに異なるIPアドレスが割り当てられる。UEIPフィールド53は、PGW1が当該UE5に割り当てたIPアドレス、つまり、UE5のIPアドレスを記憶しておくフィールドである。
SGW-U-TEIDフィールド54は、U-Plane処理を実行するSGW4が使用するセッションを識別する転送用SGW経路識別子であるSGW-U-TEIDを格納し、SGW-U-IPフィールド55は、U-Plane処理を実行するSGW4のIPアドレスを格納する。SGW-U-TEIDフィールド54、SGW-U-IPフィールド55は、当該セッションで対向となるSGW4でのセッションを特定する情報である。PDNフィールド56は、UL(Uplink)パケットをPGW1が転送する際に必要となる転送先のPDNに関する情報(以下、「PDN情報」と呼ぶ。)である。また、PDN情報には、UE5とユーザデータを送受信する通信先の通信装置に関する情報が含まれていてもよい。
これらの情報のうち、PGW-U-TEID,PGW-U-IP,UEIPはPGW1にあらかじめ登録された値を、外部からの接続要求メッセージなどに応じて払いだす。SGW-U-TEID,SGW-U-IP,PDNは外部からの接続要求メッセージに含まれる情報を格納したものである。
図4は、セッションDB(U)の詳細な構成例を説明する図である。
図4では、例として、PGW(U)3-1に関するU-Planeセッション情報を示している。セッションDB(U)31は、U-Plane高速参照テーブル60を有する。U-Plane高速参照テーブル60は、前述のようにU-Plane情報テーブル50が更新される際にC/U連携プロセス30によって同時に更新されるため、U-Plane情報テーブル50と常に同一に保たれる。
U-Plane高速参照テーブル60は、U-Plane情報テーブル50と同一の情報を有するため、U-Planeプロセス32は、ユーザデータを転送する際にU-Plane情報テーブル50に格納されたU-Planeセッション情報をプロセス間通信(トランザクション)にてC-Planeプロセス21に問い合わせて取得するより高速にU-Planeセッション情報を取得することができるU-Plane高速参照テーブル60に、アクセス(参照)することが特長である。
PGW(U)3-1は、UL(Uplink)パケットにおいては、受信したULパケットに含まれるPGW-U-TEIDをU-Plane高速参照テーブル60のPGW-U-TEIDフィールド61で検索し、U-Plane用のセッションを特定する。また、PGW(U)3-1は、DL(Downlink)パケットにおいては、受信したDLパケットに含まれるIPアドレスをU-Plane高速参照テーブル60のUEIPフィールド63で検索し、U-Plane用のセッションを特定する。また、PGW(U)3-1は、受信したDLパケットをSGW4に転送する際に、U-Plane高速参照テーブル60の情報をDLパケットに設定する。
図5は、PGWがC-Planeパケットを受信しC-Plane処理を行う際のシーケンスを説明する図の例である。
UE5は、PDN6に対してユーザパケットを送信するのに先立って、U-Plane用のセッションを確立する処理、つまり、UE5とPDN6間の通信経路を確立する接続要求処理を実行する。UE5は、PDN6との接続、つまり、PDN6との間の通信経路(セッション)の確立を要求し、制御データの1つである接続要求メッセージをSGW4に向けて送信する(S101)。UE5が送信する接続要求メッセージには、C-Plane情報であるIMSI,EBIとUE5が接続を要求する接続先のPDN情報が含まれる。
SGW4は、UE5からの接続要求メッセージを受信すると、受信した接続要求メッセージにSGW4が保持する情報を追加して、情報を追加した接続要求メッセージをPGW(C)2に送信する(S102)。SGW4が送信する接続要求メッセージには、C-Plane情報であるIMSI,EBI,SGW-C-Plane情報(SGW-C-IP,SGW-C-TEID)と、U-Plane情報であるSGW-U-Plane情報(SGW-U-IP,SGW-U-TEID),PDN情報が含まれる。このメッセージにより、SGW4はC-Plane情報(IMSI,EBI,SGW-C-IP,SGW-C-TEID)およびU-Plane情報(SGW-U-IP,SGW-U-TEID,PDN情報)をPGW1に送信して、送信したC-Plane情報とU-Plane情報に関してSGW4とPGW1との間のセッションの確立を要求する。なお、SGW-C-Plane情報とSGW-U-Plane情報をまとめてSGW-C/U-Plane情報と記載する。
PGW(C)2のC-Planeプロセス21は、SGW4からの接続要求メッセージを受信すると、受信した接続要求メッセージから、SGW4とのC-Plane処理とU-Plane処理に用いるC-Plane情報(PGW-C−Plane情報(PGW-C-IP,PGW-C-TEID))およびU-Plane情報(PGW-U-Plane情報(PGW-U-IP,PGW-U-TEID))を生成し、また、UE5がPDN6との通信の際に使用するIPアドレス(UEIP)を生成する(S103)。この際、C-Planeプロセス21は、負荷分散を考慮したアルゴリズムにより、UE5が使用するU-Plane用のセッションを割り当てるPGW(U)3を3台のうちから選択する処理も行う。本実施例において、C-Planeプロセス21は、PGW(U)3−1を選択したとする。
PGW-U-IPは、選択したPGW(U)3−1のIPアドレスであり、UEIPは、選択したPGW(U)3−1にあらかじめ割り当てられたUEIPのうち、未使用のものが払いだされる。なお、PGW-C-Plane情報とPGW-U-Plane情報をまとめてPGW-C/U-Plane情報と記載する。
C-Planeプロセス21は、受信した接続要求メッセージに含まれるC-Plane情報(IMSI,EBI,SGW-C-Plane情報)およびU-Plane情報(SGW-U-Plane情報,PDN情報)と、ステップS103で生成したC-Plane情報(PGW-C−Plane情報)、U-Plane情報(PGW-U-Plane情報)およびUEIPをセッションDB(C)20に格納してセッションDB(C)20の情報を更新する(S104)。
具体的には、C-Planeプロセス21は、セッションDB(C)20内のC-Plane情報テーブル40に、C-Plane情報フィールド41として、受信した接続要求メッセージに含まれるC-Plane情報(IMSI,EBI,SGW-C-Plane情報)と、ステップS103で生成したC-Plane情報(PGW-C-Plane情報)を保存(格納)し、所属U-Plane情報フィールド42として、生成したU-Plane情報(PGW-U-TEID)を保存する(S104)。なお、接続要求処理の後に、ベアラ追加処理を実行することにより確立済みのC-Plane用のセッションに対してU-Plane用のセッションを追加することができる。その結果、図3のようにC-Plane情報フィールド41の1つのC-Planeセッション情報に対して所属U-Plane情報フィールド42に複数のU-Plane情報(PGW-U-TEID)が格納される。
また、C-Planeプロセス21は、セッションDB(C)20内のU-Plane情報テーブル50に、受信した接続要求メッセージに含まれるU-Plane情報(SGW-U-TEID,SGW-U-IP, PDN情報)と生成したU-Plane(PGW-U-TEID,PGW-U-IP,UEIP)を保存する(S104)。
次に、C-Planeプロセス21は、U-Plane情報(PGW-U-Plane情報,UEIP,SGW-U-Plane情報,PDN情報)を、ステップS103で選択したPGW(U)3−1内のC/U連携プロセス30に送信する(S105)。
PGW(U)3−1内のC/U連携プロセス30は、ステップS105で受信したU-Plane情報をPGW(U)3−1内のセッションDB(U)31のU-Plane高速参照テーブル60に保存してU-Plane高速参照テーブル60の情報を更新する。これにより、セッションDB(U)31内のU-Plane高速参照テーブル60の内容が、セッションDB(C)20内のU-Plane情報テーブル50の内容と同じ状態、つまり、同期した状態が保たれる。
C-Planeプロセス21は、U-Plane情報を送信すると、ステップS102で受信した接続要求メッセージへの応答であり、制御データの1つである接続応答メッセージをSGW4に送信する(S107)。この接続応答メッセージには、ステップS103でPGW(C)2が生成したPGW-C/U-Plane情報(PGW-C-TEID,PGW-C-IP,PGW-U-TEID,PGW-U-IP)とUEIPが含まれる。
SGW4は、接続応答メッセージを受信すると、受信した接続応答メッセージに含まれるPGW-C/U-Plane情報を保存して管理する。SGW4が、受信したPGW-C/U-Plane情報を管理することでPGW1との間でC/U-Plane処理が可能となる。また、SGW4は受信した接続応答メッセージに含まれるUEIPを接続応答メッセージとしてUE5側に送信する(S108)。UE5は、SGW4側の隣接装置(不図示)から接続応答メッセージを受信し、接続応答メッセージに含まれるUEIPをUE5が使用するIPとして用いて、PDN6へのユーザパケットをSGW4に向けて送信して(S109)、PDN6とのユーザパケットの送受信を行う事が出来るようになる。以上のように、接続要求メッセージを送信したUE5が、SGW4から接続応答メッセージを受信することで、U-Plane用のセッションが確立する。なお、セッションDB(C)20の更新契機は、接続要求メッセージの受信の他にも、セッション情報の更新を要求するセッション情報更新要求メッセージの受信、確立したセッションの開放を要求するセッション解放要求メッセージの受信などがある。
図6は、PGWがU-Planeパケットを受信しU-Plane処理を行う際のシーケンスを説明する図の例である。図6のシーケンスは、図5のステップS109以降のシーケンスに対応する。
図5のシーケンスでU-Plane用のセッションが確立した状態にあるとき、PGW(U)3は、任意のタイミングでUL(Uplink)パケットまたはDL(Downlink)パケットを受信する可能性があり、受信したパケットは即時転送することが求められる。ステップS201〜S205は、PGW(U)3でのUL(Uplink)パケット受信時のシーケンスを、ステップS301〜S305は、PGW(U)3でのDL(Downlink)パケット受信時のシーケンスを表す。
UE5は、接続対象のPDN6に対して、接続応答メッセージから取得したUEIPを送信元IPアドレスとするULパケット(ユーザパケット)を送信する(S109)。SGW4は、UE5側の隣接装置からULパケットを受信すると、この隣接装置とSGW4との間に確立済みのU-Plane用のセッションから該当する(使用する)セッションを検索し、該当セッションを特定する。さらに、SGW4は、特定したセッションと紐づけられたセッションをPGW1との間に確立済みのU-Plane用のセッションから検索して取得し、取得した該当セッションのU-Plane情報(PGW-U-TEID,PGW-U-IP)を用いてカプセリングし、PGW-U-IPに対応するPGW(U)3−1に送信する(S202)。
この際、PGW-U-IPは、SGW4が、接続応答メッセージを受信して保存したPGW-U-Plane情報である、PGW(C)2が図5のステップS103にて選択したPGW(U)3−1のIPアドレスであるため、SGW4は、適切なPGW(U)3−1へULパケットを送信することが可能である。
PGW(U)3−1内のU-Planeプロセス32−1は、ULパケットを受信すると、受信したULパケットに含まれるPGW-U-TEIDを検索キーにPGW(U)3−1内のセッションDB(U)31−1を検索する(S203)。U-Planeプロセス32−1は、検索結果として、PDN情報等のU-Plane情報を取得する(S204)。U-Planeプロセス32−1は、受信したULパケットをデカプセリングし、ULパケットをステップS204で取得したPDN情報に対応するPDN6に送信する(S205)。この際、PGW(U)3は、ステップS204で取得したPDN情報を用いることで、PGW(U)3−1に接続された複数のPDN6-1〜3の中から接続対象のPDN6へ送信することができる。
PDN6は、ULパケットを送信したUE5に対して、UE5のIPアドレス(UEIP)を送信先IPアドレスとするDLパケット(ユーザパケット)を送信する(S301)。このDLパケットの送信先IPアドレスは、UEIPとなっているが、適切なネットワーク設定により、このDLパケットは、複数のPGW(U)3-1〜3のうちステップS205でULパケットを送信したPGW(U)3−1に到達する。これは、UE5に払い出すUEIPのレンジをPGW(U)3-1〜3にあらかじめ割り当てておくことで可能である。
たとえば、UEIP(100〜199)をPGW(U)3-1に、UEIP(200〜299)をPGW(U)3-2に、UEIP(300〜399)をPGW(U)3-3に割り当てておいた場合、PDN6-PGW1間のネットワーク・ルート設定を適切に設定することにより、PDN6がUEIP(150)のUE5宛にDLパケットを送信した場合、そのパケットがPGW(U)3-1に到達するようにすることができる。
PGW(U)3−1内のU-Planeプロセス32−1は、DLパケットを受信すると受信したDLパケットに含まれるUEIPを検索キーにPGW(U)3−1内のセッションDB(U)31−1を検索する(S302)。U-Planeプロセス32−1は、検索結果として、確立されたU-Plane用のセッションのSGW-U-Plane情報(SGW-U-IP,SGW-U-TEID)を取得する(S303)。U-Planeプロセス32−1は、受信したDLパケットを、ステップS303で取得したSGW-U-Plane情報(SGW-U-IP,SGW-U-TEID)を用いてカプセリングし、SGW-U-IPに対応するSGW4に送信する(S304)。
SGW4は、受信したDLパケットをデカプセリングし、DLパケットをUE5側に送信する(S305)。UE5は、SGW4側の隣接ノード(不図示)からデカプセリング済みのDLパケットを受信する。
ここで、図5のステップS102でSGW4が送信した接続要求メッセージを受信した際のPGW1のC-Planeプロセス21が実行するセッション生成処理のフローチャートの例を説明する。
ステップS102でSGW4が送信した接続要求メッセージを受信したC-Planeプロセス21は、受信した接続要求メッセージから、IMSI,EBI,SGW-C-IP,SGW-C-TEID,SGW-U-IP,SGW-U-TEID,PDNを取得し、受信した接続要求メッセージで接続が要求されるセッションに対して、SGW4とのC-Plane処理に用いるC-Plane情報(PGW-C−Plane情報(PGW-C-IP,PGW-C-TEID))を生成し、負荷分散を考慮したアルゴリズムにより、UE5が使用するU-Plane用のセッションを割り当てるPGW(U)3を選択し、選択したPGW(U)3に関する情報としてU-Plane処理に用いるU-Plane情報(PGW-U-Plane情報(PGW-U-IP,PGW-U-TEID))を生成し、UE5がPDN6との通信の際に使用するUEIPとして、選択したPGW(U)3にあらかじめ割り当てられたUEIPのうち、未使用のものを生成して払いだす(S103)。
次にC-Planeプロセス21は、C-Plane情報テーブル40のC-Plane情報フィールド41に、受信した接続要求メッセージから取得したC-Plane情報(IMSI,EBI,SGW-C-IP,SGW-C-TEID)とステップS103で生成したPGW-C-IP,PGW-C-TEIDそれぞれを格納し、所属U-Plane情報フィールド42に、ステップS103で生成したPGW-U-TEIDを格納し、U-Plane情報テーブル50の各フィールドにステップS103で生成したPGW-U-TEID,PGW-U-IP,UEIPと取得したSGW-U-TEID,SGW-U-IP,PDNを格納して、セッションDB(C)20の情報を更新する(S104)。
そしてC-Planeプロセス21は、U-Plane情報テーブル50の情報更新に用いたPGW-U-TEID,PGW-U-IP,UEIP,SGW-U-TEID,SGW-U-IP,PDNをC/U連携プロセス30に送信する(S105)。
最後にC-Planeプロセス21は、ステップS103で生成したPGW-C-IP,PGW-C-TEID,PGW-U-IP,PGW-U-TEID,UEIPを含む接続応答メッセージをSGW4に向けて送信する(S107)。
以上に説明したように、本実施例によると、C-Plane処理とU-Plane処理を分離したC/U分離構成のPGW1において、U-Planeパケットを転送する際にU-Planeプロセス32からC-Planeプロセス21にU-Planeセッション情報を取得するプロセス間通信(トランザクション)が発生する事なく、ユーザデータの転送遅延時間を小さくすることができる。また、U-Plane情報テーブル50を更新する契機でU-Plane高速参照テーブル60を更新することにより、U-Plane高速参照テーブル60は常に全ての情報をU-Plane情報テーブル50の最新の状態に保つことができる。
また、本実施例によれば、U-Plane用のセッションが確立した後にPGW1が最初にU-Planeパケットを受信する場合や、前回のU-Planeパケットの通信から所定の時間が経過している場合、U-Planeセッション情報をキャッシュとして保持する際にキャッシュ容量を超過する場合などでも、転送遅延時間を小さくすることができる。
また、U-Planeパケットの転送時にC-Planeプロセス21へのプロセス間通信が発生しないことにより、大量のU-Planeパケットの転送処理負荷がある場合においても、PGW1において、安定したC-Plane処理を行うことができる。また、昨今需要が高まっているVoice over Internet Protocol(VoIP)用途では、パケットの転送遅延性能値が音質に大きな影響を及ぼすため、UE5-PDN6間のパケット通信において転送遅延時間を小さくすることで音質の劣化、低下を防ぎ、また、音質を向上して快適な通話が可能となる。
(実施例2)
図7は、実施例2におけるネットワークシステム全体の構成図の例である。なお、実施例1と同一の箇所または同様な機能を有する箇所には同一の参照符号を付し、重複する説明は省略して説明する。
実施例2では、C/U分離構成のPGW1をインメモリ分散Key-Value-Store(以下、「KVS」と呼ぶ。)と呼ばれるフレームワークを用いて装置分散を行う例を説明する。KVSを用いると、複数の装置にデータを分散配置し、アプリケーションであるプロセスからは透過的なデータアクセスを可能とし、また、装置障害時の可用性を保障するなどの装置分散の基本的なメリットを享受しつつ、アプリケーションの実装を簡易に保つことができる。
KVSを用いてPGW1を構成する場合、実施例1の図1のセッションDB(C)20相当のDBが、複数のU-Plane装置に分散され、かつ、DBのデータ構造はKVS特有のデータ構造となる。
PGW1は、KVSを用いて構成されるPGW(C)2および複数のPGW(U)3を備える(図7においては3台)。PGW(C)2は、KVS Application Programming Interface(KVS API)26を有するC-Planeプロセス21を備える。KVS API26は、PGW(U)3に備わるKVS API74とデータの送受信を行って、PGW1においてKVSとしての様々な機能を実行する。C-Planeプロセス21は、このKVS API26を通じて、C-Planeプロセス21が管理するデータを、装置を意識することなくPGW(U)3-1〜3内のセッションDB(C)70-1〜3に分散的に格納し、アクセスすることが可能である。
PGW(U)3は、KVSプロセス71、セッションDB(C)70、C/U連携プロセス30、セッションDB(U)75、U-Planeプロセス32を有する。
KVSプロセス33は、KVSを用いた分散装置上で動作するプロセスであり、分散装置上でKVS処理を実行する。
セッションDB(C)70は、KVSのデータ分散機能を用いて、C-Planeプロセス21が持つデータをPGW(U)3-1〜3に分散して持たせたものである。C/U連携プロセス30は、User Function72、Event Handler73、KVS API74を有する。User Function72、Event Handler73は、KVSプロセス71から呼び出す関数を格納する。User Function72はC/Uセッション情報更新時にセッションDB(C)70とセッションDB(U)75の同時更新を可能にする関数であり、Event Handler73はC/Uセッション情報更新時にセッションDB(C)70とセッションDB(U)75の冗長データの同時更新を可能にする関数である。
KVS API74は、PGW(C)2に備わるKVS API26とデータの送受信を行って、PGW1においてKVSとしての様々な機能を実行する。C/U連携プロセス72は、このKVS API74を通じて、PGW(U)3-1〜3内に分散的に格納されたセッションDB(C)70に、装置を意識することなくアクセスすることが可能である。
セッションDB(U)75をあらかじめ更新しておくことで、U-Plane処理を行う際にU-Planeプロセス32がプロセス間通信の発生を伴わずにU-Plane処理(U-Planeパケットの転送)に必要な情報を取得することができ、U-Planeパケットの転送遅延時間を小さくすることができる。
図8A、図8Bおよび図8Cは、セッションDB(C)およびセッションDB(U)の詳細な構成例を説明する図である。
図8Aは、PGW(U)3-1が有するセッションDB(C)70-1およびセッションDB(U)75-1のデータ構造であり、図8Bは、PGW(U)3-2が有するセッションDB(C)70-2およびセッションDB(U)75-2のデータ構造であり、図8Cは、PGW(U)3-3が有するセッションDB(C)70-3およびセッションDB(U)75-3のデータ構造である。以下の説明では、PGW(U)をノードと表記し、PGW(U)3-1〜PGW(U)3-3をそれぞれノード1〜ノード3と表記する。
セッションDB(C)70は、PGW(C)2内のC-Planeプロセス21が管理するデータである。データは3台のノードに分散して格納される。すなわち、セッションDB(C)70-1に格納されるノード1のデータ83-1、セッションDB(C)70-2に格納されるノード2のデータ83-2、セッションDB(C)70-3に格納されるノード3のデータ83-3である。
また、セッションDB(C)70では、データの多重化も行われる。すなわち、セッションDB(C)70は、他のノードのデータを多重化データとして格納する。セッションDB(C)70-1には、ノード3の多重化データ84-1が格納され、セッションDB(C)70-2には、ノード1の多重化データ84-2が格納され、セッションDB(C)70-3には、ノード2の多重化データ84-3が格納される。C-Planeプロセス21は、KVS API26が提供するAPIにより、これらのデータの分散化および多重化を意識することなくセッションDB(C)70にアクセスすることができる。
セッションDB(C)70は、C-Plane情報テーブル80を有する。C-Plane情報テーブル80は、KVSのデータ構造であるKEYフィールド81とVALUEフィールド82で構成される。
KEYフィールド81には、KEYフィールド81とVALUEフィールド82の1つの組(エントリ、レコード)のデータを格納する格納先のノードを決定する際に使用されるKEYが格納される。VALUEフィールド82には、KEYフィールド81の検索キーに紐づく(対応する)VALUEが格納される。本実施例において、KEYフィールド81には、IMSIが格納され、VALUEフィールド82には、当該レコードのKEYフィールド81に格納されたIMSIに紐づくC-Plane情報および、そのC-Plane情報に紐づくU-Plane情報(PGW-U-TEID,PGW-U-IP,UEIP,SGW-U-TEID,SGW-U-IP,PDN情報)が格納される。
C-Planeプロセス21は、KEYフィールド81とVALUEフィールド82の1つのレコードによってKEYに紐づく(対応する)VALUEを特定する。
KVS API26は、KEYフィールド81の値を、当該レコードのデータの格納先のノードを決定するための入力値としてハッシュ関数に入力し、その出力値に基づいて格納先のノードを決定する。なお、格納先のノードを決定する方法は、KEYフィールド81の値を用いて一意のノードを決定することができれば、ハッシュ関数を用いた方法以外の方法であってもよい。
VALUEフィールド82は、データベース上は1つのフィールドであるが、フィールドの意味的な区切りをカンマで表現して、複数の情報を格納している。また、VALUEフィールド82は、実装上使用可能なエスケープ文字で連結することで複数の情報を格納してもよい。VALUEフィールド82に複数の情報を格納する方法は、他の方法であってもよい。
このように、全ての情報をC-Plane情報テーブル80の1つのレコードに集約する理由は、KVSのデータ分散機能により、同一のIMSIに関するデータの格納先が複数のノードにまたがってしまうことを防ぐためである。
セッションDB(U)75は、U-Plane高速参照テーブル60を有する。また、セッションDB(U)75は、U-Planeプロセス32がU-Planeパケットを転送する際に参照するU-Plane情報を、高速に参照することを目的として、C-Planeプロセス21が作成するDBである。U-Planeプロセス32は、U-Planeパケットを転送する際にノードを跨いだデータにアクセスすることなく、セッションDB(U)75にアクセスすることで、データを高速に参照することができる。このDBのデータの分散化および多重化は、セッションDB(C)70と同様に行われる。すなわち、セッションDB(U)75-1には、ノード1のデータ97-1とノード3の多重化データ98-1が格納され、セッションDB(U)75-2には、ノード2のデータ97-2とノード1の多重化データ98-2が格納され、セッションDB(U)75-3には、ノード3のデータ97-3とノード2の多重化データ98-3が格納される。
U-Plane高速参照テーブル60は、KVSのデータ構造ではないためテーブルの構造やフィールド数に制約がない。U-Planeプロセス32は、ULパケットを転送する場合は、PGW-U-TEIDフィールド91を、DLパケットを転送する場合は、UEIPフィールド93を検索キーとしてU-Plane高速参照テーブル60を検索する。
図9は、実施例2におけるPGWがC-Planeパケットを受信しC-Plane処理を行う際のシーケンスを説明する図の例である。
図9のシーケンスは、実施例1の図5のステップS102でSGW4が送信した接続要求メッセージをPGW1が受信した後から、図5のステップS107で接続応答メッセージをPGW1が送信するまでのシーケンスを説明するが、図5のUE5、SGW4、PDN6の図示を省略している。また、図9では、PGW(U)3-1とPGW(U)3-2の間での処理について説明するが、PGW(U)3-1とPGW(U)3-3の間およびPGW(U)3-2とPGW(U)3-3の間でも同様な処理を行う。
C-Planeプロセス21は、SGW4から接続要求メッセージを受信すると、KVS API26とKVSプロセス71が連携して提供するUser Function呼び出し機能を用いて、C/U連携プロセス30のcplane_put()関数を呼び出す(実行する)(S401,S402)。つまり、KVS API26は、KVSプロセス71を介して(S401)、C/U連携プロセス30のcplane_put()関数を呼び出す(S402)。cplane_put()関数は、C-Plane処理に関する引数の値をPGW(U)3が他のプロセスから受信する関数である。
このとき、C-Planeプロセス21がcplane_put()関数に設定する引数は、KEYがIMSI、VALUEが対応するVALUEフィールド82の値(C/U-Plane情報(C-Plane情報(EBI,SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID)とU-Plane情報(SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDN))である。このとき、cplane_put()関数の呼び出し先となるPGW(U)3ノードの選択は、KVS API26がKEYを元にハッシュ計算を行うことにより決定する。この例では、KVS API26は、ノード1を選択し、PGW(U)3-1のKVSプロセス71−1を介してPGW(U)3-1のC/U連携プロセス30のcplane_put()関数を呼び出す(S401,S402)。S402のcplane_put()関数の引数は、S401のcplane_put()関数の引数をそのまま引き継ぐ。この仕組みにより、C-Planeプロセス21は、ノード選択処理を意識することなく適切なノードが提供するcplane_put()関数を呼び出すことができる。
cplane_put()関数を呼び出されたC/U連携プロセス30-1のUser Function72-1は、C/U連携プロセスの実装の関数であり、セッションDB(U)を更新するuplane_put()関数と、セッションDB(C)を更新するput()関数を同時に呼び出す役割を持つ。
uplane_put()関数は、cplane_put()関数から受信した情報に含まれていたノード1のデータであるU-Plane情報(PGW-U-TEID,PGW-U-IP,UEIP,SGW-U-TEID,SGW-U-IP,PDN情報)によりセッションDB(U)75-1のU-Plane高速参照テーブル90−1を更新する(S403)。つまり、User Function72-1がuplane_put()関数に設定する引数は、U-Plane情報(PGW-U-TEID,PGW-U-IP,UEIP,SGW-U-TEID,SGW-U-IP,PDN情報)である。uplane_put()関数は、セッションDB(U)75へのデータ格納を行う関数である。
put()関数は、cplane_put()関数の引数に設定したKEY,VALUEをそのまま用いてput()関数の引数とし、User Function72-1のput()関数を介して、KVS API74-1が提供するput()関数を呼び出す(S404)。put()関数は、セッションDB(C)70へのデータ格納を行う関数である。
User Function72-1のput()関数を介してUser Function72-1から呼び出されたKVS API74-1は、KEYを元にデータ格納先のPGW(U)ノードを決定し、決定したノードのKVSプロセス71が提供するput()関数を呼び出す(S405)。このKVSプロセス71のput()関数の引数はS404のput()関数の呼び出し時の引数をそのまま引き継ぐ。KVS API74-1は、ノード決定の際に、ステップS401と同じKEY=IMSIを用いるため、ステップS401で決定したノードと同一のノード(この例ではノード1)が選択される。
KVS API74-1のput()関数を介してKVS API74-1から呼び出されたKVSプロセス71-1は、セッションDB(C)70-1のC-Plane情報テーブル80-1のKEY81およびVALUE82それぞれにKVS API74-1からS405でput()関数の引数として受信したノード1のデータであるKEY,VALUEを格納する(S406)。
ここで、C-Planeプロセス21がKVSプロセス71−1を介して直接KVS API74-1のput()関数の呼び出しを行うのでなく、User Function72−1を介してKVS API74-1のput()関数の呼び出しを行うことで、KVS API74-1のput()関数の呼び出し(S405)によってC-Plane情報テーブル80−1を更新する(S406)とともに、User Function72のuplane_put()関数の呼び出しによってU-Plane高速参照テーブル90−1の更新(S403)を実行することができる。これにより、U-Plane高速参照テーブル90−1のノード1のデータ97−1が常にC-Plane情報テーブル80−1のノード1のデータ83−1と同期した状態に保たれる。
次に、KVSプロセス71-1は、KVS API74-1から受信したKEYからノード1のデータの多重化先のPGW(U)3を決定(この例ではノード2)し、KVSプロセス71-1が提供するduplicate()関数を介してKVSプロセス71-2にduplicate()関数の引数であるKEY,VALUEを送信する(S407)。duplicate()関数は、KVSが提供する関数であり、多重化データをセッションDB(C)70に格納する関数である。
ここで、duplicate()関数の引数に設定するKEY,VALUEはステップS401と同様、KEYはIMSI、VALUEは対応するVALUEフィールド82の値(C/U-Plane情報)である。なお、このステップS407の処理は、KVSプロセス71-1により自動的に行われる処理であり、KVSを使用するC-Planeプロセス21またはC/U連携プロセス30側からこの処理を起動する必要はない。
PGW(U)3-2のKVSプロセス71-2は、duplicate()関数の引数として受信したKEY,VALUEをセッションDB(C)70-2のC-Plane情報テーブル80-2のノード1の多重化データ84−2としてC-Plane情報テーブル80-2を更新する(S408)。またKVSプロセス71-2は、KVSが提供するイベントハンドラ機能により、C/U連携プロセス30-2が提供するcplane_duplicate()関数を呼び出す(S409)。
Event Handler73-2は、cplane_duplicate()関数の引数として受信した情報に含まれていたU-Plane情報(PGW-U-TEID,PGW-U-IP,UEIP,SGW-U-TEID,SGW-U-IP,PDN情報)を引数とするuplane_duplicate()関数によりセッションDB(U)75-2のU-Plane高速参照テーブル90−2を更新する(S410)。
このイベントハンドラ機能の実装により、C-Plane情報テーブル80−2に格納されるノード1の多重化データ更新処理(S408)とともにU-Plane高速参照テーブル90−2に格納されるノード1の多重化データ更新処理(S410)を実行する。これにより、U-Plane高速参照テーブル90−2のノード1の多重化データ98−2が常にC-Plane情報テーブル80−2のノード1の多重化データ84−2と同期した状態に保たれる。
PGW1は、UE5とPDN6との間のU-Plane用のセッションを確立すると、UE5からのULパケットまたはPDN6からのDLパケットを受信してU-Plane処理を行う。実施例2において、PGW1が実行するU-Plane処理のシーケンスは、図6で説明した実施例1の場合と同様である。
ノード2のKVSプロセス71−2もノード1のKVSプロセス71−1と同様に動作してノード2のデータについて、U-Plane高速参照テーブル90−2のノード2のデータ97−2とC-Plane情報テーブル80−2のノード2のデータ83−2とを同期した状態に保つため、U-Plane高速参照テーブル90−2のノード1の多重化データ98−2およびノード2のデータ97−2それぞれが常にC-Plane情報テーブル80−2のノード1の多重化データ84−2およびノード2のデータ83−2と同期した状態に保たれる。
次に、図9のステップS401でC-Planeプロセス21がcplane_put()関数を呼び出した際のPGW(U)3が実行するセッション生成処理のフローチャートの例を説明する。ここでは、PGW(U)3-1での処理について説明するが、PGW(U)3-2とPGW(U)3-3でも同様な処理を行う。
C-Planeプロセス21によって呼び出されたKVSプロセス71−1は、cplane_put()関数の引数として、KVS API26のcplane_put()関数を介してC-Planeプロセス21から送信されたIMSI,SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを受信し、これらを引数とするKVSプロセス71−1のcplane_put()関数によってUser Function72-1を呼び出す(S402)。
User Function72-1は、KVSプロセス71-1のcplane_put()関数を介してKVSプロセス71-1から送信されたSGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを引数とするUser Function72-1のuplane_put()関数によりセッションDB(U)75−1のU-Plane高速参照テーブル90−1の各フィールドにこれらの情報を格納して、U-Plane高速参照テーブル90−1のノード1のデータ97−1を更新する(S403)。
User Function72-1は、KVSプロセス71−1がcplane_put()関数の引数に設定したIMSI,SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを引数とするUser Function72-1のput()関数によりKVS API74−1およびKVSプロセス71−1それぞれのput()関数を介してセッションDB(C)70-1のC-Plane情報テーブル80-1のKEYフィールド81にIMSIを格納、VALUEフィールド82にIMSI以外の情報(SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDN)を格納してC-Plane情報テーブル80-1のノード1のデータ83−1を更新する(S404、S405、S406)。
次に、図9のステップS407でノード1のKVSプロセス71−1がduplicate()関数を呼び出した際のPGW(U)3が実行するセッション情報多重化処理のフローチャートの例を説明する。ここでは、PGW(U)3-2での処理について説明するが、PGW(U)3-1とPGW(U)3-3でも同様な処理を行う。
KVSプロセス71−1によって呼び出されたKVSプロセス71-2は、duplicate()関数の引数に設定され、KVSプロセス71−1のduplicate()関数を介してKVSプロセス71−1から送信されたIMSI,SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを受信し、これらを引数とするKVSプロセス71-2のduplicate()関数によりセッションDB(C)70-2のC-Plane情報テーブル80-2のKEYフィールド81にIMSIを格納、VALUEフィールド82にIMSI以外の情報(SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDN)を格納してC-Plane情報テーブル80-2のノード1の多重化データ84−2を更新する(S408)。
また、KVSプロセス71-2は、イベントハンドラ機能により、KVSプロセス71−1から送信されたIMSI,SGW-C-IP,SGW-C-TEID,PGW-C-IP,PGW-C-TEID,SGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを引数とするKVSプロセス71−2cplane_duplicate()関数によってEvent Handler73-2を呼び出す(S409)。
Event Handler73-2は、KVSプロセス71-2のcplane_duplicate()関数の引数として受信した情報に含まれていたSGW-U-IP,SGW-U-TEID,PGW-U-IP,PGW-U-TEID,UEIP,PDNを引数とするEvent Handler73-2のuplane_duplicate()関数によりセッションDB(U)75−2のU-Plane高速参照テーブル90−2のノード1の多重化データ98−2としてU-Plane高速参照テーブル90−2の各フィールドに格納してU-Plane高速参照テーブル90−2を更新する(S410)。
以上に説明したように、本実施例によると、KVSを利用したC-Plane処理とU-Plane処理を分離した実装において、U-Planeパケットを転送する際に、U-Planeプロセス32が直接セッションDB(U)75を参照するため、U-Planeプロセス32からのプロセス間通信が発生する事なく、転送遅延時間を小さくすることができる。
KVSは、一般的に通信用途を想定していないため、それに耐えうるデータクエリの応答速度を備えていない。そのため、KVSで構築したDBのデータクエリの応答速度は、利用するKVSの応答速度の制約を受けるが、本実施例によれば、U-Plane高速参照テーブル90をKVSで構築したDBとは別に構築するため、その制約の影響を受けない。そのため、KVSを利用してユーザデータの転送遅延時間を小さくしつつ、データの装置分散および多重化といったKVSのメリットを享受することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、Access Gateway(AGW)とHome Agent(HA)を有するネットワークの場合、AGWがSGW4と、HAがPGW1と同様に動作する。本発明は、C-PlaneとU-Planeの両方を扱う装置であれば適用可能である。
また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばFPGA(field−programmable gate array)のような集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SDカード、DVD等の記録媒体に置くことができる。
また、「aaaテーブル」の表現にて各種情報を説明したが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶことができる。また、「格納する」の表現にて各種テーブルに各情報を記録することを説明したが、「登録する」または「設定する」と表現されてもよい。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1 PGW
2 PGW(C)
3 PGW(U)
20、70 セッションDB(C)
21 C-Planeプロセス
26、74 KVS API
30 C/U連携プロセス
31、75 セッションDB(U)
32 U-Planeプロセス
40、80 C-Plane情報テーブル
50 U-Plane情報テーブル
60、90 U-Plane高速参照テーブル
72 User Function
73 Event Handler

Claims (14)

  1. 移動体端末を収容する通信装置に接続される第1のネットワークと、前記移動体端末の通信先を含む第2のネットワークと、に接続される通信システムであって、
    前記移動体端末と前記通信先との間の通信経路に関する制御データを処理する制御用装置と、
    前記移動体端末が、前記通信先と送受信するユーザデータを転送する転送用装置と、
    を備え、
    前記制御用装置は、
    前記制御データの1つである、前記通信経路の確立を要求する接続要求を前記通信装置から受信すると、前記制御用装置が前記制御データを処理する際に使用する第1の通信経路に関する制御用情報と前記転送用装置が前記ユーザデータを転送する際に使用する第2の通信経路に関する転送用情報とを生成して記憶するとともに、生成した前記転送用情報を前記転送用装置へ送信し、
    前記転送用装置は、
    前記制御用装置から受信した前記転送用情報を記憶する、
    通信システム。
  2. 前記転送用装置は、
    前記通信装置から前記移動体端末が送信したユーザデータを受信すると、記憶した前記転送用情報を参照し、受信した前記ユーザデータに含まれる転送用情報に対応する通信先へ受信した前記ユーザデータを転送する、
    請求項1に記載の通信システム。
  3. 前記転送用情報は、
    前記転送用装置が使用する前記第2の通信経路を識別する転送用装置経路識別情報を含み、
    前記制御用装置は、
    前記制御用情報を記憶する際に、前記制御用情報と前記転送用装置経路識別情報とを対応付けて記憶する、
    請求項2に記載の通信システム。
  4. 前記制御用情報は、
    前記移動体端末を一意に識別する移動体端末識別情報と、前記制御用装置のIPアドレスと、前記制御用装置が使用する前記第1の通信経路を識別する制御用装置経路識別情報と、を含み、
    前記転送用情報は、
    前記転送用装置のIPアドレスと、前記移動体端末のIPアドレスと、前記移動体端末の通信先に関する通信先情報と、をさらに含み、
    前記制御用装置は、
    生成した前記転送用情報を前記転送用装置へ送信すると、前記制御データの1つである、生成した前記制御用情報および前記転送用情報を含む接続応答を前記通信装置へ送信する、
    請求項3に記載の通信システム。
  5. 前記転送用装置を複数備え、
    前記制御用装置は、
    前記制御用情報および前記転送用情報を生成する際に、複数の前記転送用装置のうち前記ユーザデータを転送する転送用装置を選択し、選択した前記転送用装置が使用する通信経路を識別する転送用装置経路識別情報を含む前記転送用情報を生成し、生成した前記転送用装置経路識別情報を含む前記転送用情報を選択した前記転送用装置へ送信し、
    複数の前記転送用装置のうち前記転送用装置経路識別情報を含む前記転送用情報を受信した転送用装置は、
    前記制御用装置から受信した前記転送用装置経路識別情報を含む前記転送用情報を記憶し、前記通信装置から前記移動体端末が送信したユーザデータを受信すると、受信した前記ユーザデータに含まれる転送用情報を基に記憶した前記転送用情報を参照し、参照した結果に応じて前記ユーザデータを転送する、
    請求項1に記載の通信システム。
  6. 前記制御用情報は、
    前記移動体端末を一意に識別する移動体端末識別情報と、前記制御用装置のIPアドレスと、前記制御用装置が使用する通信経路を識別する制御用装置経路識別情報と、を含み、
    前記転送用情報は、
    複数の前記転送用装置のうち選択された前記転送用装置のIPアドレスと、前記移動体端末のIPアドレスと、前記移動体端末の通信先に関する通信先情報と、をさらに含み、
    前記制御用装置は、
    生成した前記制御用情報および前記転送用情報を含む接続応答を前記通信装置へ送信する、
    請求項5に記載の通信システム。
  7. 前記通信システムは、
    モバイルコアネットワークにおけるPacket data network Gateway(PGW)であり、
    前記制御用装置は、
    前記PGWのうち制御プレーンの処理を実行する制御プレーン用PGWであり、
    前記転送用装置は、
    前記PGWのうちユーザプレーンの処理を実行するユーザプレーン用PGWである、
    請求項1ないし請求項6いずれか一項に記載の通信システム。
  8. 移動体端末を収容する通信装置に接続される第1のネットワークに接続される第1のポートと、
    前記移動体端末の通信先を含む第2のネットワークに接続される第2のポートと、
    前記移動体と前記通信先との間の通信経路に関する制御データを処理する制御用装置に接続される第3のポートと、
    前記第3のポートを介して前記制御用装置から、前記移動体端末が前記通信先と送受信するユーザデータの通信経路に関する転送用情報を受信すると、記憶部に格納する制御処理と、前記第1のポートを介して前記通信装置から、前記移動体端末が送信したユーザデータを受信すると、受信した前記ユーザデータに含まれる転送用情報を基に、前記記憶部に格納した前記転送用情報を参照し、参照した結果に応じて前記第2のポートを介して前記ユーザデータを転送する転送処理を実行する制御部と、
    を備える転送用装置。
  9. 前記転送用装置は、
    前記第3のポートを介して他の転送用装置に接続され、
    前記制御部は、
    前記制御処理において、前記第3のポートを介して前記制御用装置から、前記制御データの通信経路に関する制御用情報と前記転送用情報とを受信すると、前記記憶部に前記転送用情報を格納するとともに、前記制御用情報を格納し、前記第3のポートを介して前記記憶部に格納した前記制御用情報と前記転送用情報とを前記他の転送用装置へ送信する、
    請求項8に記載の転送用装置。
  10. 前記制御部は、
    前記制御処理において、前記記憶部に前記転送用情報および前記制御用情報を格納する際に、前記移動体端末を一意に識別する移動体端末識別情報をKEYとし、前記転送用情報および前記制御用情報をVALUEとして、前記KEYと前記VALUEとを対応付けて格納する、
    請求項9に記載の転送用装置。
  11. 前記転送用装置は、
    モバイルコアネットワークにおける、ユーザプレーンの処理を実行するユーザプレーン用Packet data network Gateway(PGW)である、
    請求項10に記載の転送用装置。
  12. 移動体端末を収容する通信装置に接続される第1のネットワークに接続される第1のポートと、
    前記移動体端末が前記移動体端末の通信先と送受信するユーザデータを転送する転送用装置に接続される第2のポートと、
    前記第1のポートを介して前記通信装置から、前記移動体端末と前記通信先との間の通信経路に関する制御データの1つである、前記通信経路の確立を要求する接続要求を受信すると、前記制御データを処理する際に使用する第1の通信経路に関する制御用情報と前記転送用装置が前記ユーザデータを転送する際に使用する第2の通信経路に関する転送用情報とを生成し、前記第2のポートを介して生成した前記転送用情報を送信する制御部と、
    を備える制御用装置。
  13. 前記制御用情報は、
    前記移動体端末を一意に識別する移動体端末識別情報と、前記制御用装置のIPアドレスと、前記第1の通信経路を識別する制御用装置経路識別情報と、を含み、
    前記転送用情報は、
    前記第2の通信経路を識別する転送用装置経路識別情報と、前記転送用装置のIPアドレスと、前記移動体端末のIPアドレスと、前記移動体端末の通信先に関する通信先情報と、を含み、
    前記制御用情報と前記転送用装置経路識別情報とを対応付けて記憶し、前記転送用情報を記憶する記憶部
    を備える、
    請求項12に記載の制御用装置。
  14. 前記制御用装置は、
    モバイルコアネットワークにおける、制御プレーンの処理を実行する制御プレーン用Packet data network Gateway(PGW)である、
    請求項13に記載の制御用装置。
JP2015173429A 2015-09-03 2015-09-03 通信システム、転送用装置および制御用装置 Pending JP2017050747A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015173429A JP2017050747A (ja) 2015-09-03 2015-09-03 通信システム、転送用装置および制御用装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015173429A JP2017050747A (ja) 2015-09-03 2015-09-03 通信システム、転送用装置および制御用装置

Publications (1)

Publication Number Publication Date
JP2017050747A true JP2017050747A (ja) 2017-03-09

Family

ID=58280402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015173429A Pending JP2017050747A (ja) 2015-09-03 2015-09-03 通信システム、転送用装置および制御用装置

Country Status (1)

Country Link
JP (1) JP2017050747A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11071012B2 (en) 2017-09-29 2021-07-20 Fujitsu Limited Base station, terminal, and wireless communication system
CN114286450A (zh) * 2020-09-27 2022-04-05 中国移动通信集团设计院有限公司 承载建立方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11071012B2 (en) 2017-09-29 2021-07-20 Fujitsu Limited Base station, terminal, and wireless communication system
CN114286450A (zh) * 2020-09-27 2022-04-05 中国移动通信集团设计院有限公司 承载建立方法、装置、电子设备及存储介质
CN114286450B (zh) * 2020-09-27 2023-09-19 中国移动通信集团设计院有限公司 承载建立方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
EP4024922A1 (en) Method for achieving service continuity and related devices
KR102013232B1 (ko) 게이트웨이 구성 방법 및 게이트웨이 디바이스
US11778035B2 (en) Selecting a user plane function (UPF) for layer 2 networks
US10863382B2 (en) Methods and systems for balancing load among communication control apparatuses
US10389848B2 (en) Message transmission method and core network interface device
RU2671966C1 (ru) Система связи, базовая станция, способ связи и энергонезависимый компьютерно-читаемый носитель, хранящий программу
CN110896371B (zh) 一种虚拟网络设备及相关方法
EP3086513B1 (en) Message processing method and gateway
US10963276B2 (en) Device and method for controlling an IP network core
TW201815131A (zh) 一種資料傳輸的方法及網路設備
WO2018090386A1 (zh) 一种nf组件异常的处理方法、设备及系统
EP3703420B1 (en) Session context processing method, network elements, and terminal device
US9961020B2 (en) Packet forwarding system, device, and method
US11838969B2 (en) Method for accessing local network, and related device
CN112491717A (zh) 一种服务路由方法及装置
EP3629612B1 (en) Handover method, apparatus and system
CN106165344B (zh) 在被耦合到软件定义的交换机的网关中分配虚拟机的方法
JP2017050747A (ja) 通信システム、転送用装置および制御用装置
WO2016090923A1 (zh) Lipa/sipto连接的建立方法和装置
WO2020211538A1 (zh) 一种数据传输方法及装置
JP2023543428A (ja) モビリティ管理エンティティ(mme)へのs1接続、および、アクセスおよびモビリティ管理機能(amf)へのn2接続を分配するための方法、システムならびにコンピュータ読取可能媒体
CN117675753A (zh) 一种控制会话的处理方法和路由设备

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170113