JP2023072282A - データ処理システムおよびデータ処理方法 - Google Patents
データ処理システムおよびデータ処理方法 Download PDFInfo
- Publication number
- JP2023072282A JP2023072282A JP2021184725A JP2021184725A JP2023072282A JP 2023072282 A JP2023072282 A JP 2023072282A JP 2021184725 A JP2021184725 A JP 2021184725A JP 2021184725 A JP2021184725 A JP 2021184725A JP 2023072282 A JP2023072282 A JP 2023072282A
- Authority
- JP
- Japan
- Prior art keywords
- user
- data processing
- packet
- data
- service
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 226
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000012546 transfer Methods 0.000 claims abstract description 124
- 238000004891 communication Methods 0.000 claims abstract description 70
- 230000006870 function Effects 0.000 claims abstract description 42
- 238000007726 management method Methods 0.000 claims description 172
- 230000005540 biological transmission Effects 0.000 claims description 52
- 238000013523 data management Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 21
- 238000004458 analytical method Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/645—Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
- H04L45/655—Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】データ処理デバイスにおけるデータの衝突を回避し、サービス機能の利用効率の低下を抑制する。
【解決手段】ユーザ管理装置1-1~1-3は、ユーザから受信したパケットに、ルート情報を記載したタグを付加してデータ転送デバイス2-1~2-9に送信する。データ転送デバイス2-1~2-9は、受信したパケットに付加されたタグに含まれるルート情報に基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する。データ処理デバイス3-1~3-13は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行う。通信管理装置5は、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信する。
【選択図】 図1
【解決手段】ユーザ管理装置1-1~1-3は、ユーザから受信したパケットに、ルート情報を記載したタグを付加してデータ転送デバイス2-1~2-9に送信する。データ転送デバイス2-1~2-9は、受信したパケットに付加されたタグに含まれるルート情報に基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する。データ処理デバイス3-1~3-13は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行う。通信管理装置5は、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信する。
【選択図】 図1
Description
本発明は、サービスファンクションチェイニングの技術によってユーザにサービスを提供するデータ処理システムおよびデータ処理方法に関するものである。
エンドツーエンドのサービスを柔軟に提供するため、サービスファンクションチェイニング(SFC)が検討されている(非特許文献1)。SFCは、ネットワーク上に点在するサービス機能(Service Function:SF)を自由に組み合わせる技術であり、SFCを用いることでユーザごとに最適なサービスを提供することができる。
SFCを用いたネットワークでは、図17に示すように入り口の分類器(Classifier)10がユーザごとにパケット11にタグを付加し、サービス機能転送装置(Service Function Forwarder:SFF)12がタグに基づいて適切なSFにパケット11を転送する。図17の13はSFを実現するサーバ、14はユーザに対して提供されるSFを数珠つなぎにしたサービスチェインを表している。SFCにより、ユーザは自身の目的に応じたSFを組み合わせて独自のサービスを構築することができる。
SFCは、主にネットワークサービスを対象として開発されている。SFとしては、ファイヤウォールやDPI(Deep Packet Inspection)、ロードバランシングなどが想定されている。これらの機能はパケットごとに処理が完了するため、ユーザやパケット順序の考慮が不要である。
SFCはクラウドサービスに対しても有用な技術である。例えば非特許文献2には、SFCを用いた画像処理サービスとして、2種類の画像処理機能を組み合わせた映像監視サービスが開示されている。しかし、非特許文献2に開示された技術では、複数のユーザがネットワークを利用する状況が想定されておらず、ユーザがそれぞれサービスを稼働させる場合に問題が発生する可能性がある。
クラウドサービスを利用するユーザは、一般的に図18に示すように、データを複数のパケット(データパケット)に分割してサーバ13に送る。図18の11AはユーザAのデータパケット、11BはユーザBのデータパケットを表している。また、14AはユーザAに対して提供されるSFを数珠つなぎにしたサービスチェイン、14BはユーザBに対して提供されるSFを数珠つなぎにしたサービスチェインを表している。
従来のSFCは、ユーザやパケット順序を考慮しない。このため、従来のSFCを用いたクラウドサービスでは、異なるユーザのデータパケット11A,11Bがサーバ13に続けて到着する可能性がある。このときサーバ13は、異なるユーザのデータパケット11A,11Bが混ざると適切な結果を保証できない。
サーバ13でユーザごとにデータパケットを仕分けると、そのために計算リソースを割く必要がある。また、データパケットを保持するためのメモリリソースが必要になる。このようにサーバ13でユーザを管理すると、SFに割り当てることができるリソースが減る。更に、サーバ13ごとにユーザ管理機能が必要になるため、システム全体で多くのリソースが消費される。よって、システム規模に対してSFの実装効率が低くなる。サービスチェイン間でSFを共有せず、異なるSFを割り当てる方法も考えられるが、待機時間が長くなるため、SFの利用効率が低くなる。
RFC 7665 - Service Function Chaining (SFC) Architecture,Internet Engineering Task Force (IETF),October 2015,<https://datatracker.ietf.org/doc/html/rfc7665>
Yuta UKON,Koji YAMAZAKI,Koyo NITTA,"Real-Time Image Processing Based on Service Function Chaining Using CPU-FPGA Architecture",IEICE Transactions on Communications,Vol.E103-B,No.1,pp.11-19,2020,<https://search.ieice.org/bin/summary.php?id=e103-b_1_11>
本発明は、上記課題を解決するためになされたもので、データ処理デバイスにおけるデータの衝突を回避し、複数のユーザによる利用下においてもサービス機能の利用効率の低下を抑制することができるデータ処理システムおよびデータ処理方法を提供することを目的とする。
本発明のデータ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うように構成されたユーザ管理装置と、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理デバイスと、1乃至複数の前記データ処理デバイスを配下に有する1乃至複数のデータ転送デバイスと、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上の前記データ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新するように構成された通信管理装置と、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送するように構成された外部送信装置とを備え、前記ユーザ管理装置は、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加して前記データ転送デバイスに送信し、前記データ転送デバイスは、受信したパケットに付加されたタグに含まれる前記ルート情報と前記ルーティングテーブルとに基づいて、配下の前記データ処理デバイスまたは他のデータ転送デバイスにパケットを転送し、前記データ処理デバイスは、データ処理が完了したパケットを送信元の前記データ転送デバイスに返信することを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記ユーザ管理装置は、サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するように構成されたユーザ管理部と、前記通信管理装置から受信したルート情報を記載したタグを生成するように構成されたタグ生成部と、ユーザから受信したパケットに前記タグを付加するように構成されたタグ付加部と、前記タグが付加されたパケットを前記データ転送デバイスに送信するように構成されたパケット送信部と、前記ユーザ管理部が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するように構成されたQoS制御部と、ユーザから受信したパケットを前記優先度に応じたタイミングで前記タグ付加部に転送するように構成されたデータ管理部とを備え、ユーザから受信したパケットに前記ユーザIDが付加されていることを特徴とするものである。
また、本発明のデータ処理システムの1構成例は、ユーザから受信したパケットを一時的に格納するための記憶部をさらに備え、前記データ管理部は、前記優先度の情報に基づいて前記記憶部からパケットを選択的に取り出すように構成されたユーザ選択部と、ユーザから受信したパケットが、前記タグ付加部に向けて現在出力されているパケットのユーザIDと同じユーザIDを有するものか否かを判定するように構成されたユーザ判定部と、前記ユーザ判定部と前記ユーザ選択部のいずれかから出力されたパケットを前記タグ付加部に向けて選択的に出力するように構成された出力選択部とを備え、前記ユーザ判定部は、判定の結果に基づいて、ユーザから受信したパケットを前記記憶部と前記出力選択部のいずれかに転送することを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記データ管理部は、前記ユーザ判定部と前記ユーザ選択部と前記出力選択部とによって構成されるメモリコントローラを複数備え、ユーザから受信したパケットの振り分け先の前記メモリコントローラを決定し、決定したメモリコントローラにユーザから受信したパケットを出力するように構成されたパケット振り分け部と、前記複数のメモリコントローラのそれぞれの出力選択部から出力されたパケットを所定の制御方式に従って選択して前記タグ付加部に出力するように構成された出力制御部とをさらに備えることを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記データ管理部は、前記ユーザ判定部と前記ユーザ選択部と前記出力選択部とによって構成されるメモリコントローラを複数備え、ユーザから受信したパケットの振り分け先の前記メモリコントローラを決定し、決定したメモリコントローラにユーザから受信したパケットを出力するように構成されたパケット振り分け部と、前記複数のメモリコントローラのそれぞれの出力選択部から出力されたパケットを所定の制御方式に従って選択して前記タグ付加部に出力するように構成された出力制御部とをさらに備えることを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記ユーザ管理装置は、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信し、サービスの利用終了後に前記パラメータを前記データ処理デバイスから回収することを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記通信管理装置は、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中の前記データ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、このサービスの実現のために使用した前記データ処理デバイスからサービス機能を削除することを特徴とするものである。
また、本発明のデータ処理システムの1構成例において、前記通信管理装置は、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中の前記データ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、このサービスの実現のために使用した前記データ処理デバイスからサービス機能を削除することを特徴とするものである。
また、本発明のデータ処理方法は、ユーザ管理装置が、サービスの利用を申請したユーザの情報を通信管理装置と外部送信装置とに送信する第1のステップと、前記通信管理装置が、前記ユーザの情報に含まれるサービス情報に基づいて、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上のデータ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する第2のステップと、前記ユーザ管理装置が、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加してデータ転送デバイスに送信する第3のステップと、前記データ転送デバイスが、受信したパケットに付加されたタグに含まれる前記ルート情報と自身で管理するルーティングテーブルとに基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する第4のステップと、前記データ処理デバイスが、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行い、データ処理が完了したパケットを送信元の前記データ転送デバイスに返送する第5のステップと、前記外部送信装置が、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する第6のステップとを含むことを特徴とするものである。
また、本発明のデータ処理方法の1構成例は、前記ユーザ管理装置が、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信する第7のステップと、前記ユーザ管理装置が、サービスの利用終了後に、前記パラメータを前記データ処理デバイスから回収する第8のステップとをさらに含むことを特徴とするものである。
本発明によれば、ユーザ管理装置とデータ処理デバイスとデータ転送デバイスと通信管理装置と外部送信装置とを設けることにより、ユーザ管理装置を用いてユーザごとにデータを管理し、1サービスチェインあたり1ユーザのデータしか流さないように制御する。本発明では、データ処理デバイスにおけるデータの衝突を回避すると共に、1つのデータ処理デバイス(サービス機能)を複数のユーザで利用できるようにしたので、複数のユーザによる利用下においても、サービス機能の利用効率の低下を抑制することができる。
また、本発明では、ユーザ管理装置を、ユーザ管理部とタグ生成部とタグ付加部とパケット送信部とQoS制御部とデータ管理部とから構成し、ユーザから受信したパケットにルート情報を記載したタグを付加することにより、データ処理システム内でのパケット通信を実現することができる。また、本発明では、QoS制御部を設けることにより、ユーザごとのパケットの転送の優先度を制御することができる。
また、本発明では、データ管理部を、ユーザ選択部とユーザ判定部と出力選択部とから構成することにより、ユーザから受信したパケットを、転送の優先度に応じたタイミングでタグ付加部に転送することができる。
また、本発明では、ユーザ判定部とユーザ選択部と出力選択部とによって構成されるメモリコントローラを複数設けることにより、記憶部へのアクセスを並列化することができ、処理性能を向上させることができる。
また、本発明では、ユーザ管理装置が、ユーザによるサービス利用の前に、サービス機能の処理に必要なユーザ固有のパラメータを、ルート情報に基づいてサービスチェインのルート上のデータ処理デバイスに送信し、サービスの利用終了後にパラメータをデータ処理デバイスから回収することにより、ユーザごとにパラメータを入れ替えることができ、ユーザに適したパラメータでデータ処理を行うことができる。
また、本発明では、通信管理装置が、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中のデータ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、サービスの実現のために使用したデータ処理デバイスからサービス機能を削除することにより、サービス機能の追加と削除を適宜行うことが可能になる。
以下、本発明の実施例について図面を参照して説明する。図1は本発明の実施例に係るデータ処理システムの構成を示すブロック図である。データ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うユーザ管理装置1-1~1-3と、パケットの転送を行う1乃至複数のデータ転送デバイス2-1~2-9と、受信したパケットに含まれるデータに対してSFのデータ処理を行うデータ処理デバイス3-1~3-13と、サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する外部送信装置4-1~4-3とを備えている。さらに、データ処理システムは、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信すると共に、計算したルート上のデータ転送デバイス2-1~2-9に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する通信管理装置5を備えている。
データ処理デバイス3-1~3-13としては、CPU(Central Processing Unit)、FPGA(field-programmable gate array)、GPU(graphics processing units)、ASIC(Application Specific integrated circuit)などがある。
本実施例では、データ処理デバイス3-1~3-13によって実現されるSFを組み合わせてユーザごとにカスタマイズしたサービスを提供する。具体的にはデータ転送デバイス2-1~2-9間で通信し、ユーザから送られてきたデータパケットを適切なSFに転送する。SFにおけるデータ処理が完了すると、さらに別のSFにデータパケットを転送してデータ処理を行う。これにより、本実施例では、ユーザごとに処理内容を変えてユーザの目的に応じたサービスを提供する。
データパケットが辿る通信経路をサービスチェインと呼ぶ。図17と同様に、図1の14はサービスチェインを表す。サービスチェインを複数のユーザが同時に利用すると、SFでデータが衝突し、適切な結果を保証できない。そこで、本実施例では、データ処理システムの入り口のユーザ管理装置1-1~1-3でデータパケットを管理し、サービスチェインを1ユーザしか利用しないように制御する。
また、ユーザ管理装置1-1~1-3は、データパケットへのタグ付加も行う。タグには、サービスチェインのルート情報が記載されている。データ転送デバイス2-1~2-9は、タグに基づくデータパケットのルーティングを行う。タグの具体例としては、NSH(Network Service Header)やMPLS(Multi-Protocol Label Switching)ヘッダ、SRv6(Segment Routing over IPv6)などが考えられる。また、独自ヘッダを定義してもよい。
MAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスを用いるルーティングでは、データ転送デバイス2-1~2-9に大きなルーティングテーブルを持たせなければならない。一方、本実施例のようなタグを用いたルーティングでは、データパケットにルート情報を持たせることでルーティングテーブルの規模を小さくし、ルーティングに必要な計算リソースやメモリリソースを減らすことができる。
外部送信装置4-1~4-3は、全てのデータ処理が完了したデータパケットに対して宛先情報を付加してユーザに送り返す。外部送信装置4-1~4-3が必要な理由は、データ処理システム内外で使われるプロトコルが異なるためである。データ処理システム外における通信は、TCP/IPが世界標準的に利用されている。一方、データ処理システム内では、前述の理由によりタグを用いたパケット通信を行う。そこで、データ処理システム内外のプロトコルの違いを吸収するため、外部送信装置4-1~4-3を用いる。
図2はユーザ管理装置1-1の構成を示すブロック図である。ユーザ管理装置1-1は、パケット受信部100と、パケット送信部101と、受信したパケットを解析するパケット解析部102と、受信したパケットの種別を判定するパケット種別判定部103と、パケットからユーザ情報を抽出するユーザ情報抽出部104と、ユーザから受信したパケットを優先度に応じたタイミングでタグ付加部107に転送するデータ管理部105と、ユーザから受信したパケットを一時的に格納するための記憶部106と、ユーザから受信したパケットにタグを付加するタグ付加部107と、データ通信制御部108と、サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するユーザ管理部109と、ユーザ管理部109が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するQoS(Quality of Service)制御部110と、通信管理装置5から受信したルート情報を記載したタグを生成するタグ生成部111とを備えている。
図3はユーザ管理装置1-1の動作を説明するフローチャートである。ユーザ管理装置1-1のパケット受信部100がパケットを受信すると(図3ステップS1)、始めにパケット解析部102はパケットを解析する(図3ステップS2)。
パケット種別判定部103は、パケット解析部102による解析結果に基づいてパケット種別を判定する(図3ステップS3)。パケット種別としては、「サービス利用申請」と「サービス利用」とがある。
パケット種別判定部103は、パケット解析部102による解析結果に基づいてパケット種別を判定する(図3ステップS3)。パケット種別としては、「サービス利用申請」と「サービス利用」とがある。
パケット種別判定部103は、パケット種別が「サービス利用申請」のパケットをユーザ情報抽出部104に送り、パケット種別が「サービス利用」のパケットをデータ管理部105に送る。
ユーザ情報抽出部104は、パケット種別判定部103から受け取ったパケットに記載されたユーザ情報(IPアドレス、ポート番号、契約番号、サービス情報、優先度など)を取得する(図3ステップS4)。ユーザ情報抽出部104は、取得したユーザ情報をユーザ管理部109に送る。
ユーザ管理部109は、ユーザ情報抽出部104から受け取ったユーザ情報を管理する。ユーザ管理部109は、ユーザに対してサービスを利用するためのユーザIDを発行し(図3ステップS5)、ユーザ情報をユーザIDと共に通信管理装置5に転送する(図3ステップS6)。
QoS制御部110は、ユーザが要求する優先度やサービスの情報に基づいてユーザごとのパケットの転送の優先度を決定し、優先度の情報(QoS情報)をデータ管理部105に登録する(図3ステップS7)。
タグ生成部111は、通信管理装置5からルート情報を受け取り、ルート情報を記載したタグを生成する。そして、タグ生成部111は、生成したタグとユーザ管理部109によって発行されたユーザIDとを対応付けてタグ付加部107に登録する(図3ステップS8)。
データ管理部105は、パケット種別判定部103で「サービス利用」と判定されたパケットを受信し、受信したパケットをユーザごとに仕分けて記憶部106に一時格納する。そして、データ管理部105は、QoS制御部110によって登録された優先度の情報を基にサービスチェインごとに特定ユーザのパケットを記憶部106から取り出してタグ付加部107に転送する(図3ステップS9)。
ユーザに対してユーザIDが発行されると、パケット種別が「サービス利用」のパケットには、後述のようにユーザによってユーザIDが付加される。
タグ付加部107は、タグ生成部111によって登録されたタグのうち、データ管理部105から受信したパケットに付加されているユーザIDに対応するタグを、受信したパケットに付加して、タグ付きのパケットをパケット送信部101に出力する(図3ステップS10)。
タグ付加部107は、タグ生成部111によって登録されたタグのうち、データ管理部105から受信したパケットに付加されているユーザIDに対応するタグを、受信したパケットに付加して、タグ付きのパケットをパケット送信部101に出力する(図3ステップS10)。
パケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイス2-1~2-9に送信する(図3ステップS11)。
上記のようにタグの具体例としては、NSHやMPLSヘッダなどが考えられる。また、独自ヘッダを定義してもよい。タグの代わりにMACアドレスやIPアドレスを用いることも可能である。しかし、MACアドレスやIPアドレスを用いる方法では、データ転送デバイス2-1~2-9が大規模なルーティングテーブルを持つ必要があり、タグを用いる方法と比べて計算リソースやメモリリソースをより多く消費する。
上記のようにタグの具体例としては、NSHやMPLSヘッダなどが考えられる。また、独自ヘッダを定義してもよい。タグの代わりにMACアドレスやIPアドレスを用いることも可能である。しかし、MACアドレスやIPアドレスを用いる方法では、データ転送デバイス2-1~2-9が大規模なルーティングテーブルを持つ必要があり、タグを用いる方法と比べて計算リソースやメモリリソースをより多く消費する。
なお、図2、図3の例では、ユーザ管理装置1-1を例に挙げて説明しているが、ユーザ管理装置1-2,1-3の構成と動作もユーザ管理装置1-1と同様である。
図4はユーザ管理装置1-1~1-3のデータ管理部105の構成を示すブロック図である。データ管理部105は、パケット振り分け部1050と、1乃至複数のユーザ判定部1051-1~1051-N(Nは1以上の整数)と、1乃至複数のユーザ選択部1052-1~1052-Nと、1乃至複数の出力選択部1053-1~1053-Nと、出力制御部1054とから構成される。
ユーザ判定部1051-1とユーザ選択部1052-1と出力選択部1053-1とは、メモリコントローラ1055-1を構成している。同様に、ユーザ判定部1051-Nとユーザ選択部1052-Nと出力選択部1053-Nとは、メモリコントローラ1055-Nを構成している。各メモリコントローラ1055-1~1055-Nは、記憶部106へのデータパケットの格納と取り出しを行う。メモリコントローラは1つでもよいが、複数設けることにより、記憶部106へのアクセスを並列化することができ、処理性能を向上させることができる。
データ管理部105は、パケット種別判定部103から受信したデータパケットをユーザごとに管理し、適切なタイミングで後段のタグ付加部107に出力する。
パケット振り分け部1050は、パケット種別判定部103から受信したデータパケットの格納を制御するメモリコントローラを決定し、決定したメモリコントローラのユーザ判定部1051(1051-1~1051-N)にデータパケットを出力する。なお、ユーザIDの一部をメモリコントローラの番号とすれば、パケット振り分け部1050は高速な振り分けが可能になる。パケットを振り分けるメモリコントローラの決定は、例えばメモリコントローラの処理の空きの状態に応じて適宜決定すればよい。
パケット振り分け部1050は、パケット種別判定部103から受信したデータパケットの格納を制御するメモリコントローラを決定し、決定したメモリコントローラのユーザ判定部1051(1051-1~1051-N)にデータパケットを出力する。なお、ユーザIDの一部をメモリコントローラの番号とすれば、パケット振り分け部1050は高速な振り分けが可能になる。パケットを振り分けるメモリコントローラの決定は、例えばメモリコントローラの処理の空きの状態に応じて適宜決定すればよい。
ユーザ判定部1051-1~1051-Nは、パケット振り分け部1050から受信したパケットのユーザIDを参照し、記憶部106と出力選択部1053-1~1053-Nのどちらにパケットを転送するかを決める。
具体的には、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと同じユーザIDを有するパケットを受信した場合、受信したパケットを自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nに転送する。また、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットを記憶部106に一時格納する。
ユーザ選択部1052-1~1052-Nは、QoS制御部110によって登録されたQoS情報(優先度の情報)を基に記憶部106からデータパケットを選択的に取り出す。ユーザ選択部1052-1~1052-Nは、QoS制御を行わない場合、記憶部106に格納されているデータパケットのうち、最も先に格納されたユーザのデータパケットを取り出す。
出力選択部1053-1~1053-Nは、自身と同じメモリコントローラに属するユーザ判定部1051-1~1051-Nとユーザ選択部1052-1~1052-Nのうち、どちらから受信したデータパケットを出力するかを選択する。ユーザ選択部1052-1~1052-Nに対してはバックプレッシャーをかけられるため、ユーザ判定部1051-1~1051-Nから受信したデータパケットを優先して出力する。この選択によりパケット順序が入れ替わることがある。そのため、データ処理デバイス3-1~3-13は、パケット順序制御機能を備えなければならない。
出力制御部1054は、出力選択部1053-1~1053-Nから出力されたパケットをタグ付加部107に出力する。出力制御部1054は、メモリコントローラ(出力選択部1053-1~1053-N)が複数ある場合、どのメモリコントローラからのパケットをタグ付加部107に出力するかを制御する。その制御方式としては、ラウンドロビン方式やベストエフォート方式、DiffServ方式(QoS)などがある。
ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットをそのまま記憶部106に格納してもよい。このとき、ユーザ判定部1051-1~1051-Nは、受信したパケットと同じユーザIDを有するパケットが記憶部106に既に格納済みの場合には、格納済みのパケットと受信したパケットとを結合するように記憶部106に格納することで、より大きなデータを記憶部106に保持させるようにしてもよい。
図5はデータ転送デバイス2-8とデータ処理デバイス3-9,3-10の構成を示すブロック図である。
データ転送デバイス2-8は、パケット受信部200と、パケット送信部201と、パケット解析部202と、転送制御部203と、データ通信制御部204とから構成される。
データ転送デバイス2-8は、パケット受信部200と、パケット送信部201と、パケット解析部202と、転送制御部203と、データ通信制御部204とから構成される。
データ処理デバイス3-9,3-10は、それぞれペイロード取得部300と、データ構築部301と、データ処理部302と、レジスタ管理部303と、パケット作成部304と、タグ更新部305とから構成される。
図6はデータ転送デバイス2-8の動作を説明するフローチャート、図7はデータ処理デバイス3-9,3-10の動作を説明するフローチャートである。
データ転送デバイス2-8のパケット受信部200が前段のユーザ管理装置または他のデータ転送デバイスからデータパケットを受信すると(図6ステップS20)、パケット解析部202は、データパケットを解析して、データパケットに付加されているタグを取得し、受信したデータパケットを転送制御部203に出力する(図6ステップS21)。
データ転送デバイス2-8のパケット受信部200が前段のユーザ管理装置または他のデータ転送デバイスからデータパケットを受信すると(図6ステップS20)、パケット解析部202は、データパケットを解析して、データパケットに付加されているタグを取得し、受信したデータパケットを転送制御部203に出力する(図6ステップS21)。
転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報と自身に登録されているルーティングテーブルとに基づいて、パケット解析部202から出力されたデータパケットをデータ通信制御部204を介してデータ処理デバイス3-9もしくは3-10に転送するか、またはパケット解析部202から出力されたデータパケットをパケット送信部201を介して隣接するデータ転送デバイスに転送する(図6ステップS22)。
データ処理デバイス3-9または3-10のペイロード取得部300は、データ転送デバイス2-8から受信したデータパケットからペイロードを取り出す(図7ステップS30,S31)。このとき、ペイロード取得部300は、受信したデータパケットに付加されていたユーザIDとタグとをパケット作成部304に渡す。
データ処理デバイス3-9または3-10のデータ構築部301は、ペイロード取得部300によって複数のデータパケットから取得されたペイロードを組み合わせて元のデータを再構築する(図7ステップS32)。データ構築部301は、到着したパケットの順序が入れ替わっている可能性があるため、パケット順序制御を行い、複数のパケットから取り出されたデータを正しい順序で並べる。この順序制御は、後述するシーケンス番号に基づいて行われる。データ構築部301は、データ処理可能な状態になったら、再構築したデータをデータ処理部302に送信する。
データ処理部302は、データ構築部301から受信したデータに対して所定の処理を実行し、処理完了後のデータをパケット作成部304に送信する(図7ステップS33)。パケット作成部304は、データ処理部302から受信したデータをパケット化し、生成したパケットをタグ更新部305に送信する(図7ステップS34)。このとき、パケット作成部304は、生成したパケットにペイロード取得部300から受け取ったユーザIDとタグとを付加する。
タグ更新部305は、パケット作成部304から受信したパケットに付加されているタグに含まれるルート情報を参照し、自装置(データ処理デバイス3-9または3-10)がサービスチェインのルートから除かれるように、タグに含まれるルート情報を更新して、更新後のパケットをデータ転送デバイス2-8に送信する(図7ステップS35)。
レジスタ管理部303は、データ処理部302へのパラメータの登録とパラメータの取得とを行う。具体的には、レジスタ管理部303は、後述のようにユーザ管理装置1-1~1-3からSFの処理に必要なユーザ固有のパラメータを取得して(図7ステップS36)、取得したパラメータをデータ処理部302に登録する(図7ステップS37)。パラメータの登録はユーザごと(ユーザIDごと)に行われる。
また、レジスタ管理部303は、ユーザ管理装置1-1~1-3からの回収要求パケットを受信すると(図7ステップS38)、回収要求パケットに含まれるユーザIDに対応するパラメータをデータ処理部302から削除する。データ処理デバイスのパケット作成部304は、データ処理部302に登録されていたパラメータをパケット化して、要求元のユーザ管理装置1-1~1-3宛に返信する(図7ステップS39)。こうして、パラメータは、ユーザ管理装置1-1~1-3においてユーザIDと対応付けて管理される。このようなパラメータの登録と回収の機能により、ユーザごとにパラメータを入れ替えることができ、ユーザに適したパラメータでデータ処理を行うことができる。
データ処理部302は、レジスタ管理部303によって登録されたパラメータのうち、ペイロード取得部300が取得したユーザIDに対応するパラメータを用いて、データ構築部301から受信したデータに対して所定の処理を実行する。
データ転送デバイス2-8のパケット解析部202は、データ通信制御部204を介してデータ処理デバイス3-9または3-10から受信したパケットを解析して、パケットに付加されているタグを取得し、受信したパケットを転送制御部203に出力する(図6ステップS20,S21)。
転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報と自身に登録されているルーティングテーブルとに基づいて、パケット解析部202から出力されたデータパケットをデータ通信制御部204を介してデータ処理デバイス3-9もしくは3-10に転送するか、またはパケット解析部202から出力されたデータパケットをパケット送信部201を介して隣接するデータ転送デバイスに転送する(図6ステップS22)。このとき、上記のタグ更新部305によるタグの更新により、処理完了済みのデータ転送デバイス(SF)が転送先として選択されることはない。
こうして、データ処理デバイス3-9または3-10によってSFの処理が実行される。図5の例のように、複数のデータ処理デバイス3-9,3-10を並列にデータ転送デバイス2-8に接続すれば、少ないオーバヘッドで各データ処理デバイス3-9,3-10にアクセスすることが可能である。また、データ処理デバイス3-9,3-10をデータ転送デバイス2-8と独立させることで、既存のデータ処理デバイス3-9,3-10とデータ転送デバイス2-8との通信を阻害することなく、新たなデータ処理デバイスの追加と削除が可能である。
データ処理デバイス3-9,3-10として例えばCPUまたはGPUを用い、データ処理デバイス3-9,3-10の処理をソフトウェアで実行してもよいし、データ処理デバイス3-9,3-10として例えばFPGAを用い、データ処理デバイス3-9,3-10の処理をハードウェアで実行してもよい。ただし、一般的にはハードウェアの方がパケット処理性能が高いので、高速ネットワークを実現するには、ハードウェアを用いたほうがよい。
なお、図5、図6、図7の例では、データ転送デバイス2-8、データ処理デバイス3-9,3-10を例に挙げて説明しているが、データ転送デバイス2-1~2-7,2-9の構成と動作はデータ転送デバイス2-8と同様であり、データ処理デバイス3-1~3-8,3-11~3-13の構成と動作はデータ処理デバイス3-9,3-10と同様である。
図8は通信管理装置5の動作を説明するフローチャートである。通信管理装置5は、ユーザ管理装置1-1~1-3と連携し、ユーザ情報やサービスの利用終了の情報を受信し、ユーザ管理装置1-1~1-3に対してルート情報を送信する。また、通信管理装置5は、データ転送デバイス2-1~2-9の転送制御部203に登録されているルーティングテーブルを管理し、各データ処理デバイス3-1~3-13のSFの追加/削除を制御する。
通信管理装置5は、サービス利用終了の情報を受信したときに、該当するデータ処理デバイス3-1~3-13からSFを削除する(図8ステップS100)。具体的には、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、CPUまたはGPUのメモリからSFのプログラムを削除すればよい。また、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成を更新して、SFのための回路を削除すればよい。SFを削除することにより、データ処理システムの消費電力を削減することができる。
通信管理装置5は、ユーザ管理装置1-1~1-3のユーザ管理部109からユーザ情報とユーザIDとを受信すると(図8ステップS101においてYes)、ユーザ情報に含まれるサービス情報を取得する(図8ステップS102)。
そして、通信管理装置5は、取得したサービス情報に基づいて、ユーザが要求するサービスの実現に必要なSFを経由するルートの計算を行う(図8ステップS103)。この計算では、稼働中のSFの配置やデータ転送デバイス2-1~2-9間の使用帯域およびデータ転送デバイス2-1~2-9内の使用帯域を考慮して、新たなサービスチェインが他に影響を与えないように配慮する。ルート計算には、例えば、迷路法や遺伝的アルゴリズムなどの配置配線手法が利用できる。
稼働中のサービスが多いと既にあるSFだけでは新しいサービスを実現できない可能性がある。そこで稼動停止中のデータ処理デバイス3-1~3-13にSFを追加することもある。通信管理装置5は、SFの追加が必要な場合、新たなサービスチェインに必要なSFを経由するルート上の、所望のSFの位置にある稼動停止中のデータ処理デバイスに所望のSFを追加する(図8ステップS104)。
通信管理装置5は、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、所望のSFのプログラムをデータ処理デバイスに転送して、データ処理デバイスのメモリに格納させるようにすればよい。また、通信管理装置5は、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成の更新のためのデータをデータ処理デバイスに転送して、所望のSFのための回路を追加すればよい。
ルート計算に成功すると、通信管理装置5は、ユーザ管理装置1-1~1-3のうち、計算したルートの始点となるユーザ管理装置にルート情報とユーザIDとを送信する(図8ステップS105)。このように、ルートの始点となるユーザ管理装置のみにルート情報を送信することにより、各ユーザ管理装置1-1~1-3は、自身に関係するルート情報だけをユーザIDと対応付けて保持できる。
また、通信管理装置5は、外部送信装置4-1~4-3のうち、計算したルートの終点となる外部送信装置にユーザ情報とユーザIDとを転送する(図8ステップS106)。このように、ルートの終点となる外部送信装置のみにユーザ情報を転送することにより、各外部送信装置4-1~4-3は、自身に関係するユーザ情報だけをユーザIDと対応付けて保持できる。
通信管理装置5は、自身から送った情報を送信先のユーザ管理装置1-1~1-3と外部送信装置4-1~4-3とが受理すると、計算したルート上のデータ転送デバイス2-1~2-9の転送制御部203に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する(図8ステップS107)。すなわち、新しいサービスを要求したユーザから送信された「サービス利用」のパケットが、計算したルートを辿るようにルーティングテーブルを更新する。本実施例では、ルーティングテーブルの更新対象を最小限のデータ転送デバイスに絞ることで、ルーティングテーブルの肥大化を抑えることができる。
通信管理装置5は、ルート計算に失敗した場合、または自身から送った情報を送信先のユーザ管理装置1-1~1-3または外部送信装置4-1~4-3が受理しなかった場合には、サービスが開始できない旨をユーザ管理装置1-1~1-3を介してユーザに通知する。
通信管理装置5は、以上の処理を、データ処理システムの動作が終了するまで(図8ステップS108においてYes)、繰り返し実行する。
次に、本実施例のデータ処理システムのネットワークの接続形態について説明する。本実施例のネットワークの接続形態としては、図9に示すように特定のデータ転送デバイス2-1~2-9に特定のユーザ管理装置1-1~1-6や特定の外部送信装置4-1~4-6を接続する構成が考えられる。
また、ネットワークの別の接続形態として、図10に示すように全てのデータ転送デバイス2-1~2-9に全てのユーザ管理装置兼外部送信装置1a-1~1a-9を接続する構成が考えられる。名称から明らかなように、ユーザ管理装置兼外部送信装置1a-1~1a-9は、ユーザ管理装置と外部送信装置の機能を兼ね備えたものである。なお、図9、図10では、データ処理デバイスの記載を省略している。
本実施例におけるシステム内通信は、パケット通信であり、データ転送デバイス2-1~2-9間の接続構成は任意である。データ転送デバイス2-1~2-9間の接続構成としては、例えばバス型、スター型、ライン型、ツリー型、リング型、トーラス型、メッシュ型、もしくはこれらの複合型が考えられる。
ユーザからのパケットは、図1に示すようにデータ処理システムの外部のロードバランサ6を用いて任意のユーザ管理装置1-1~1-6または任意のユーザ管理装置兼外部送信装置1a-1~1a-9に入力できる。
図9に示す構成のように入力と出力の位置が固定されている場合、ルートの計算が容易である。しかし、ユーザ数(=サービスチェイン数)が増えると、最適なルートが取れなくなり、サービスレイテンシが悪化する可能性がある。最悪サービス提供が行えないこともある。
全てのデータ処理が完了したパケットを任意の外部送信装置4-1~4-6または任意のユーザ管理装置兼外部送信装置1a-1~1a-9からユーザ宛に送り返すには、ユーザ管理装置1-1~1-6(またはユーザ管理装置兼外部送信装置1a-1~1a-9におけるユーザ管理装置の機能部)が有するユーザ情報(IPアドレス等)を通信管理装置5を介して外部送信装置4-1~4-6(またはユーザ管理装置兼外部送信装置1a-1~1a-9における外部送信装置の機能部)に転送する方法が考えられる。
図8で説明したように、通信管理装置5は、外部送信装置4-1~4-6またはユーザ管理装置兼外部送信装置1a-1~1a-9のうち、計算したルートの終点となる外部送信装置またはユーザ管理装置兼外部送信装置にユーザ情報を転送する(ステップS106)。
外部送信装置4-1~4-6またはユーザ管理装置兼外部送信装置1a-1~1a-9は、データ処理が完了したパケットに付加されているユーザIDに基づいてパケットの宛先のユーザを特定し、データ処理が完了したパケットを、通信管理装置5から転送されたユーザ情報に基づいてユーザ宛に送り返す。
通信経路の自由度を高めるため、またスケーラビリティの観点でデータ処理システムが普遍であるため、全てのデータ転送デバイス2-1~2-9に全てのユーザ管理装置兼外部送信装置1a-1~1a-9を接続する図10の構成が望ましい。この構成は、入力と出力が近くにあるため、データセンタに適している。
上記のとおりサービスチェインのルートの計算は通信管理装置5によって行われる。通信管理装置5をドメイン内に1台配置することとし、通信管理装置5は、ドメイン内の担当のユーザ管理装置1-1~1-6にルート情報を送信する。1台の通信管理装置5でルートを計算することで、想定外の経路重複を回避することができる。
システム規模が大きくなった際は、図11に示すようにドメインを例えば2つに分けて、それぞれのドメイン7-1,7-2を1台の通信管理装置5-1,5-2で管理する。ドメイン7-1,7-2間のルートは、隣接する通信管理装置5-1,5-2間で連携して決める。
以上により、本実施例では、各サービスチェインに適切なルートを割り当てることができる。
以上により、本実施例では、各サービスチェインに適切なルートを割り当てることができる。
本実施例のデータ処理システムは、データ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13とが別れているため、従来のSFCでも検討されているバス型ネットワークやパーシャルメッシュ型ネットワークを実現することができる。
図12はバス型ネットワークの例を示す図である。図12の構成では、ユーザ管理装置1とデータ転送デバイス2-1~2-3と外部送信装置4とが直列に接続されている。バス型ネットワークは、データのルートがシンプルである。一方、全てのサービスチェインが同じデータ転送デバイス2-1~2-3を通るため、通信帯域がボトルネックになり易いという問題がある。
この問題を解決するには、データ転送デバイス2-1~2-3に分岐点を作ればよい。経済的な観点からは必要なポイントにのみ分岐点を作ることが望ましい。バス型ネットワークは、入力と出力が離れているため、キャリアネットワークに適している。
図13は本実施例のデータ処理システムの動作を説明するシーケンス図である。本実施例のデータ処理システムを利用したいユーザは、自身のユーザ端末8を使用して、サービス利用前にデータ処理システムに対してサービス利用申請を行う(図13ステップS200)。
ユーザ管理装置1のユーザ情報抽出部104は、ユーザ端末8からパケット種別が「サービス利用申請」のパケットを受信すると、パケットに記載されたユーザ情報を取得する。ユーザ管理装置1のユーザ管理部109は、ユーザIDを発行すると共に、ユーザ情報とユーザIDとを通信管理装置5に転送する(図13ステップS201)。
通信管理装置5は、ユーザ情報を受信すると、ユーザ情報に含まれるサービス情報に基づいてサービスチェインのルートの計算を行い、複数のユーザ管理装置のうち、計算したルートの始点となるユーザ管理装置1にルート情報とユーザIDとを送信する(図13ステップS202)。
また、通信管理装置5は、複数の外部送信装置のうち、計算したルートの終点となる外部送信装置4にユーザ情報とユーザIDとを送信する(図13ステップS203)。また、図13では記載していないが、通信管理装置5は、計算したルート上のデータ転送デバイスの転送制御部203に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する。こうして、通信管理装置5は、ユーザがサービスを利用する環境を整える。
ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットに対して、発行したユーザIDを含むパケットをユーザ端末8に返信することで、ユーザに対してユーザIDを通知する(図13ステップS204)。
ユーザIDが発行されたユーザは、サービスの利用開始時に自身のユーザ端末8を使用して、データ処理システムに対してサービスの利用開始通知を行う(図13ステップS205)。
ユーザ管理装置1のユーザ管理部109は、ユーザ端末8からパケット種別が「サービス利用開始」のパケットを受信すると、パケットに付加されているユーザIDを基にユーザを識別し、ユーザIDと対応付けて管理しているユーザ情報に含まれるサービス情報に基づいてSFでのデータ処理に必要なユーザ固有のパラメータを生成する。そして、ユーザ管理部109は、ユーザ固有のパラメータを、ユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)に送信する(図13ステップS206)。
図13ではデータ転送デバイスについて記載していないが、ユーザ固有のパラメータはパケット化され、ユーザ管理装置1から最寄りのデータ転送デバイスに送信される。各データ転送デバイスの転送制御部203は、パケット解析部202によるパケット解析の結果に基づいて、パラメータの送信先のデータ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにパケット化されたパラメータを転送する。
パケット化されたパラメータを受信したデータ処理デバイス3-1~3-N(SF)のレジスタ管理部303は、受信したパケットに付加されていたユーザIDと対応付けてパラメータをデータ処理部302に登録する。
ユーザは、サービスを利用するために、自身のユーザ端末8を使用してデータパケットをデータ処理システムに向けて送信する(図13ステップS207)。ユーザ端末8から送信されるパケット種別が「サービス利用」のデータパケットにはユーザIDが付加されている。
ユーザ管理装置1のタグ付加部107は、ユーザ端末8から受信したパケット種別が「サービス利用」のパケットに付加されているユーザIDに対応するタグをパケットに付加して、タグ付きのパケットをパケット送信部101に出力する。ユーザ管理装置1のパケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイスに送信する。
図13ではデータ転送デバイスについて記載していないが、各データ転送デバイスのパケット解析部202は、受信したパケットを解析して、パケットに付加されているタグを取得する。データ転送デバイスの転送制御部203は、パケット解析部202によって取得されたタグに含まれるルート情報に従って、サービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにパケットを転送する(図13ステップS208)。
各データ処理デバイス3-1~3-N(SF)は、自装置と接続されているデータ転送デバイスからパケットを受信し、SFの処理完了後のパケットをデータ転送デバイスに送信する。こうして、サービスチェインのルート上のデータ転送デバイスによってデータ処理デバイス(SF)にパケットが転送されることが複数回行われ、全てのデータ処理が完了したパケットは、データ転送デバイスによってサービスチェインのルートの終点となる外部送信装置4に転送される(図13ステップS209)。
外部送信装置4は、受信したパケットに付加されているユーザIDに基づいてパケットの宛先のユーザを特定し、パケットからタグを削除する。そして、外部送信装置4は、ユーザIDに対応するユーザ情報に基づいて、パケットにTCP/IPの宛先情報を付加してユーザ端末8宛に送り返す(図13ステップS210)。
同じFSを別のユーザが利用する場合、ユーザが切り替わるタイミングで、ユーザ管理装置1のユーザ管理部109は、サービス利用が終了したユーザ固有のパラメータの回収を要求するパケットを、当該ユーザのユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-N(SF)に送信する。各データ転送デバイスの転送制御部203は、パケット解析部202によるパケット解析の結果に基づいて、データ処理デバイス3-1~3-N(SF)のうち、自装置と接続されているデータ処理デバイスにユーザ管理装置1からの回収要求パケットを転送する。
データ処理デバイスのレジスタ管理部303は、ユーザ管理装置1からの回収要求パケットを受信すると、回収要求パケットに含まれるユーザIDに対応するパラメータをデータ処理部302から削除する。データ処理デバイスのパケット作成部304は、データ処理部302に登録されていたパラメータをパケット化して、自装置と接続されているデータ転送デバイスに送信する。パケット化されたパラメータは、データ転送デバイスからユーザ管理装置1に転送される(図13ステップS211)。
ユーザ管理装置1のユーザ管理部109は、データ転送デバイスを介してデータ処理デバイス3-1~3-N(SF)から回収したパラメータを、サービス利用が終了したユーザのユーザIDと対応付けて管理する。また、ユーザ管理装置1は、ユーザ端末8に対してサービス利用終了を通知する(図13ステップS212)。サービス利用終了を示すパケットは、ユーザ管理装置1から通信管理装置5にも送信される。
システムがサービス利用終了と判断するタイミングは、ユーザがサービス利用を止める旨を通知してきたとき、もしくは一定時間データを送ってこないとき(タイムアウト)である。いずれの場合もユーザ端末8に対してサービス利用終了を通知する。その際に、データ処理デバイス3-1~3-N(SF)にそのユーザに向けたパラメータが残っていた場合、回収(破棄)して次ユーザに向けたパラメータを送信する。
ユーザがサービス利用中であっても別ユーザが待機していた場合、一定時間サービスを利用した後、QoS制御の結果、もしくは外部から指示された時、に一時中断してデータ処理デバイス3-1~3-N(SF)を次ユーザに明け渡す。その際、パラメータをデータ処理デバイス3-1~3-N(SF)から回収し、次ユーザのパラメータを送信する。ただし、明け渡すタイミングはデータ処理が一段落したときとする。例えば、画像処理サービスではフレームごとに処理が行われるので、1フレーム分のデータの送信が終わってからパラメータ更新処理に移行する。
図14は本実施例のデータ処理システムの別の動作を説明するシーケンス図である。本実施例のデータ処理システムは、ユーザ固有のパラメータがないサービスも提供することができる。ユーザ固有のパラメータを使用しない場合、図13で説明したステップS206,S211の処理が不要となる。その他の処理は図13の場合と同じである。
パラメータを使用しないサービスの例としては、ネットワークサービスがある。例えば、ファイヤウォールやDPI、ロードバランシングなどのネットワークサービスは、複数のトラフィックが同時に利用することを想定しており、パラメータの切り替えは不要である。
クラウドサービスにおいても、例えば、機械学習で同じ学習データを使用する場合や、画像処理で同じパラメータを使用可能な場合などは、パラメータの切り替えは不要であり、パラメータを使用しないサービスとして扱うことができる。
本実施例のデータ処理システムは、ユーザ端末8との通信に一般的なIPネットワークを利用することができる。その場合、データ処理システムは、ユーザ端末8から受信したパケットに記載されたIPアドレスおよびポート番号からユーザを一意に識別し、ユーザIDを発行する。
サービス利用申請時にユーザ端末8から送信されるパケットのフォーマットを図15(A)に示し、サービス利用時にユーザ端末8とデータ処理システム間で送受信されるパケットのフォーマットを図15(B)に示し、サービス利用時にデータ処理システム内で送受信されるパケットのフォーマットを図15(C)に示す。
「サービス利用申請」のパケットには、Ethernet(登録商標)ヘッダ400と、IPヘッダ401と、TCPヘッダもしくはUDPヘッダ402と、ペイロード403と、FCS(Frame Check Sequence)404とが含まれる。
サービス利用申請時、ユーザ端末8は、パケットのペイロード403に「サービス利用申請」を示すパケット種別の情報(図15(A)の405の箇所)を格納してデータ処理システム宛に送信する。
サービス利用申請時、ユーザ端末8は、パケットのペイロード403に「サービス利用申請」を示すパケット種別の情報(図15(A)の405の箇所)を格納してデータ処理システム宛に送信する。
上記のとおり、ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットから抽出された送信元IPアドレスと送信元ポート番号からユーザを一意に識別し、ユーザIDを発行する。ユーザ管理部109は、発行したユーザIDを図15(A)の405の箇所に格納したパケットをユーザ端末8に返信する。
ユーザ端末8は、サービス利用時に、図15(B)のパケットにおけるペイロード403の405で示す箇所にユーザIDとシーケンス番号と「サービス利用」を示すパケット種別の情報とを格納し、ペイロード403の406で示す箇所にデータ先頭フラグとデータとデータ末尾フラグとを格納する。ユーザ端末8は、このようにして生成した「サービス利用」のパケットをデータ処理システム宛に送信する。データ先頭フラグとデータ末尾フラグとシーケンス番号は、データ処理デバイス(SF)によるデータの再構築に必要な情報である。
サービス利用時にデータ処理システム内では、図15(C)に示すフォーマットのパケットが送受信される。このパケットには、Ethernetヘッダ400と、タグ407と、ペイロード403と、FCS404とが含まれる。ペイロード403の408で示す箇所には、ユーザIDとシーケンス番号とパケット種別の情報とが格納され、ペイロード403の409で示す箇所には、データ先頭フラグとデータとデータ末尾フラグとが格納される。データ処理システム内では、タグ407を用いたパケット通信が行われる。各タグ407に行き先のSFまでのルート情報を記載することで、ルート情報に従ってパケットが転送され、ユーザが要求するサービスに対応したSFでデータ処理が行われる。
本実施例で説明したユーザ管理装置1,1-1~1-6とユーザ管理装置兼外部送信装置1a-1~1a-9とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-6と通信管理装置5,5-1,5-2とユーザ端末8の各々は、CPU(またはGPU)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図16に示す。コンピュータは、CPU500(またはGPU)と、記憶装置501と、インタフェース装置502とを備えている。このようなコンピュータにおいて、本発明のデータ処理方法を実現させるためのプログラムは、記憶装置501に格納される。各装置のCPU500(またはGPU)は、記憶装置501に格納されたプログラムに従って本実施例で説明した処理を実行する。
ユーザ管理装置1,1-1~1-6とユーザ管理装置兼外部送信装置1a-1~1a-9とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-6と通信管理装置5,5-1,5-2の少なくとも一部をFPGAもしくはASICによって構成してもよい。特に、パケット処理およびデータ処理の一部をこれらのハードウェアで実行することで処理性能の向上が期待できる。
本発明は、サービスファンクションチェイニング技術に適用することができる。
1,1-1~1-6…ユーザ管理装置、1a-1~1a-9…ユーザ管理装置兼外部送信装置、2-1~2-9…データ転送デバイス、3-1~3-13…データ処理デバイス、4,4-1~4-6…外部送信装置、5,5-1,5-2…通信管理装置、6…ロードバランサ、7-1,7-2…ドメイン、8…ユーザ端末、100,200…パケット受信部、101,201…パケット送信部、102,202…パケット解析部、103…パケット種別判定部、104…ユーザ情報抽出部、105…データ管理部、106…記憶部、107…タグ付加部、108…データ通信制御部、109…ユーザ管理部、110…QoS制御部、111…タグ生成部、203…転送制御部、204…データ通信制御部、300…ペイロード取得部、301…データ構築部、302…データ処理部、303…レジスタ管理部、304…パケット作成部、305…タグ更新部、1050…パケット振り分け部、1051-1~1051-N…ユーザ判定部、1052-1~1052-N…ユーザ選択部、1053-1~1053-N…出力選択部、1054…出力制御部、1055-1~1055-N…メモリコントローラ。
Claims (8)
- サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うように構成されたユーザ管理装置と、
受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理デバイスと、
1乃至複数の前記データ処理デバイスを配下に有する1乃至複数のデータ転送デバイスと、
ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上の前記データ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新するように構成された通信管理装置と、
前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送するように構成された外部送信装置とを備え、
前記ユーザ管理装置は、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加して前記データ転送デバイスに送信し、
前記データ転送デバイスは、受信したパケットに付加されたタグに含まれる前記ルート情報と前記ルーティングテーブルとに基づいて、配下の前記データ処理デバイスまたは他のデータ転送デバイスにパケットを転送し、
前記データ処理デバイスは、データ処理が完了したパケットを送信元の前記データ転送デバイスに返信することを特徴とするデータ処理システム。 - 請求項1記載のデータ処理システムにおいて、
前記ユーザ管理装置は、
サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するように構成されたユーザ管理部と、
前記通信管理装置から受信したルート情報を記載したタグを生成するように構成されたタグ生成部と、
ユーザから受信したパケットに前記タグを付加するように構成されたタグ付加部と、
前記タグが付加されたパケットを前記データ転送デバイスに送信するように構成されたパケット送信部と、
前記ユーザ管理部が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するように構成されたQoS制御部と、
ユーザから受信したパケットを前記優先度に応じたタイミングで前記タグ付加部に転送するように構成されたデータ管理部とを備え、
ユーザから受信したパケットに前記ユーザIDが付加されていることを特徴とするデータ処理システム。 - 請求項2記載のデータ処理システムにおいて、
ユーザから受信したパケットを一時的に格納するための記憶部をさらに備え、
前記データ管理部は、
前記優先度の情報に基づいて前記記憶部からパケットを選択的に取り出すように構成されたユーザ選択部と、
ユーザから受信したパケットが、前記タグ付加部に向けて現在出力されているパケットのユーザIDと同じユーザIDを有するものか否かを判定するように構成されたユーザ判定部と、
前記ユーザ判定部と前記ユーザ選択部のいずれかから出力されたパケットを前記タグ付加部に向けて選択的に出力するように構成された出力選択部とを備え、
前記ユーザ判定部は、判定の結果に基づいて、ユーザから受信したパケットを前記記憶部と前記出力選択部のいずれかに転送することを特徴とするデータ処理システム。 - 請求項3記載のデータ処理システムにおいて、
前記データ管理部は、
前記ユーザ判定部と前記ユーザ選択部と前記出力選択部とによって構成されるメモリコントローラを複数備え、
ユーザから受信したパケットの振り分け先の前記メモリコントローラを決定し、決定したメモリコントローラにユーザから受信したパケットを出力するように構成されたパケット振り分け部と、
前記複数のメモリコントローラのそれぞれの出力選択部から出力されたパケットを所定の制御方式に従って選択して前記タグ付加部に出力するように構成された出力制御部とをさらに備えることを特徴とするデータ処理システム。 - 請求項1乃至4のいずれか1項に記載のデータ処理システムにおいて、
前記ユーザ管理装置は、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信し、サービスの利用終了後に前記パラメータを前記データ処理デバイスから回収することを特徴とするデータ処理システム。 - 請求項1乃至5のいずれか1項に記載のデータ処理システムにおいて、
前記通信管理装置は、ユーザが要求するサービスの実現に新たなサービス機能が必要な場合に、稼動停止中の前記データ処理デバイスに必要なサービス機能を追加し、サービスの利用終了後に、このサービスの実現のために使用した前記データ処理デバイスからサービス機能を削除することを特徴とするデータ処理システム。 - ユーザ管理装置が、サービスの利用を申請したユーザの情報を通信管理装置と外部送信装置とに送信する第1のステップと、
前記通信管理装置が、前記ユーザの情報に含まれるサービス情報に基づいて、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報を前記ユーザ管理装置に送信すると共に、計算したルート上のデータ転送デバイスに登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する第2のステップと、
前記ユーザ管理装置が、ユーザから受信したパケットに、前記ルート情報を記載したタグを付加してデータ転送デバイスに送信する第3のステップと、
前記データ転送デバイスが、受信したパケットに付加されたタグに含まれる前記ルート情報と自身で管理するルーティングテーブルとに基づいて、配下のデータ処理デバイスまたは他のデータ転送デバイスにパケットを転送する第4のステップと、
前記データ処理デバイスが、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行い、データ処理が完了したパケットを送信元の前記データ転送デバイスに返送する第5のステップと、
前記外部送信装置が、前記サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する第6のステップとを含むことを特徴とするデータ処理方法。 - 請求項7記載のデータ処理方法において、
前記ユーザ管理装置が、ユーザによるサービス利用の前に、前記サービス機能の処理に必要なユーザ固有のパラメータを、前記ルート情報に基づいて前記サービスチェインのルート上の前記データ処理デバイスに送信する第7のステップと、
前記ユーザ管理装置が、サービスの利用終了後に、前記パラメータを前記データ処理デバイスから回収する第8のステップとをさらに含むことを特徴とするデータ処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021184725A JP2023072282A (ja) | 2021-11-12 | 2021-11-12 | データ処理システムおよびデータ処理方法 |
PCT/JP2022/041554 WO2023085266A1 (ja) | 2021-11-12 | 2022-11-08 | データ処理システムおよびデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021184725A JP2023072282A (ja) | 2021-11-12 | 2021-11-12 | データ処理システムおよびデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023072282A true JP2023072282A (ja) | 2023-05-24 |
Family
ID=86335739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021184725A Pending JP2023072282A (ja) | 2021-11-12 | 2021-11-12 | データ処理システムおよびデータ処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023072282A (ja) |
WO (1) | WO2023085266A1 (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8743885B2 (en) * | 2011-05-03 | 2014-06-03 | Cisco Technology, Inc. | Mobile service routing in a network environment |
JP6265427B2 (ja) * | 2014-08-20 | 2018-01-24 | 日本電信電話株式会社 | ネットワーク機能の負荷分散システム及び方法 |
JP6332697B2 (ja) * | 2015-02-02 | 2018-05-30 | 日本電信電話株式会社 | トラヒック振り分け装置、その方法及びプログラム |
JP6204407B2 (ja) * | 2015-06-01 | 2017-09-27 | 日本電信電話株式会社 | サービス提供システム、サービス提供方法、およびサービス提供プログラム |
US10432537B2 (en) * | 2015-10-12 | 2019-10-01 | Fujitsu Limited | Service function chaining based on resource availability in the time dimension |
US10891246B2 (en) * | 2017-03-01 | 2021-01-12 | Nippon Telegraph And Telephone Corporation | Data processing apparatus, network system, packet order control circuit, and data processing method |
-
2021
- 2021-11-12 JP JP2021184725A patent/JP2023072282A/ja active Pending
-
2022
- 2022-11-08 WO PCT/JP2022/041554 patent/WO2023085266A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023085266A1 (ja) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465590B (zh) | 网络基础设施系统、路由网络业务的方法及计算机可读介质 | |
CN105706043B (zh) | 推进式链接的列表吞吐量 | |
JP5991424B2 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
KR20210029203A (ko) | Srv6 및 bgp를 이용한 멀티클라우드 접속 | |
US6539432B1 (en) | Network manager, nodes and network management system | |
JP6544401B2 (ja) | パケット転送装置、制御装置、通信システム、通信方法及びプログラム | |
JP2023553086A (ja) | コンピューティングパワーアプリケーショントラフィックの転送方法及び装置 | |
CN106201356B (zh) | 一种基于链路可用带宽状态的动态数据调度方法 | |
CN109791482A (zh) | 在微服务环境中缩放服务发现 | |
CN110427334A (zh) | 一种实现虚拟机通信的方法和装置 | |
US10554555B2 (en) | Hash-based overlay routing architecture for information centric networks | |
US20160065386A1 (en) | Scalable virutal networks in sdn-based ethernet networks using vlans | |
US8121120B2 (en) | Packet relay apparatus | |
CN109937401A (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
JP6076275B2 (ja) | 通信ネットワークの経路制御連携システム及び方法 | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
US20040215819A1 (en) | Apparatus for and method for controlling packet, and computer program product | |
KR101794719B1 (ko) | Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템 | |
CN109120556A (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN110022263A (zh) | 一种数据传输的方法及相关装置 | |
WO2023085266A1 (ja) | データ処理システムおよびデータ処理方法 | |
WO2019240158A1 (ja) | 通信システム及び通信方法 | |
EP3206346A1 (en) | Domain control method and domain control device | |
JP2017098600A (ja) | 通信装置及びプログラム | |
WO2023085270A1 (ja) | データ転送デバイス、データ処理デバイスおよびデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20211115 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240521 |