(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023072287
(43)【公開日】2023-05-24
(54)【発明の名称】データ転送装置およびデータ転送方法
(51)【国際特許分類】
H04L 45/50 20220101AFI20230517BHJP
H04L 47/34 20220101ALI20230517BHJP
【FI】
H04L45/50
H04L47/34
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021184730
(22)【出願日】2021-11-12
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】000102739
【氏名又は名称】エヌ・ティ・ティ・アドバンステクノロジ株式会社
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100153006
【弁理士】
【氏名又は名称】小池 勇三
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100121669
【弁理士】
【氏名又は名称】本山 泰
(72)【発明者】
【氏名】三浦 直樹
(72)【発明者】
【氏名】坂本 健
(72)【発明者】
【氏名】有川 勇輝
(72)【発明者】
【氏名】伊藤 猛
(72)【発明者】
【氏名】田仲 顕至
(72)【発明者】
【氏名】片山 勝
(72)【発明者】
【氏名】右近 祐太
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030LB05
5K030LB11
(57)【要約】 (修正有)
【課題】ルーティングテーブルが枯渇した場合でも新規のサービスチェインをルーティングするデータ転送装置及びデータ転送方法を提供する。
【解決手段】データ処理システムにおいて、データ転送装置(2-1~2-9)は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うデータ処理装置(3-1~3-13)を配下に有し、ユーザが要求するサービスを実現するサービスチェインを構成するサービス機能のサービス機能番号とサービスチェインの識別情報を含むタグを有するパケットを受信し、受信したパケットのサービス機能番号を用いてルーティングテーブルからパケットの転送先候補を取得し、サービスチェインの識別情報に基づいてパケットの転送先を決定し、受信したパケットをデータ処理装置(3-1~3-13)またはデータ転送装置(2-1~2-9)に転送する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成された少なくとも1つのデータ処理装置を配下に有し、
ユーザが要求するサービスを実現するためのサービスチェインを構成する前記サービス機能に固有のサービス機能番号と、前記サービスチェインの識別情報とを含むタグを有するパケットを受信するパケット受信部と、
前記サービスチェインのルート上のデータ転送装置に登録されているルーティングテーブルに基づいて、受信したパケットを配下の前記データ処理装置または他のデータ転送装置に転送する転送制御部と
を備え、
前記転送制御部は、受信したパケットの前記タグに含まれる前記サービス機能番号を用いて前記ルーティングテーブルからパケットの転送先候補を取得し、前記サービスチェインの前記識別情報に基づいて前記パケットの転送先を決定する
データ転送装置。
【請求項2】
前記転送制御部は、
受信したパケットを配下の前記データ処理装置に転送した場合に、前記データ処理装置においてデータ処理が完了したパケットの更新された前記サービス機能番号の情報を用いて、前記パケットの転送先を決定する
請求項1記載のデータ転送装置。
【請求項3】
前記ルーティングテーブルは、
前記サービス機能に固有のサービス機能番号毎に、前記サービスチェインの識別情報と、パケットの転送先情報とが関連付けて登録されている
請求項1または2に記載のデータ転送装置。
【請求項4】
前記パケットは、
前記データ処理の対象となる処理対象データと、少なくとも1つの前記サービス機能番号を含む前記サービスチェインのルート情報と、前記サービスチェインの識別情報を含む前記タグを含み、
前記タグは、
前記サービス機能が前記処理対象データの区切りを認識するためのフラグと、前記処理対象データの順番が入れ替わった場合に、前記処理対象データを正しい順番に並び替えるためのシーケンス番号を含み、
前記ルート情報は、
前記サービス機能番号が、前記サービスチェインにおける前記データ処理の順番に配置されている
請求項1から3の何れか1項に記載のデータ転送装置。
【請求項5】
受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成された少なくとも1つのデータ処理装置を配下に有し、登録されているルーティングテーブルに基づいて、受信したパケットを配下の前記データ処理装置または他のデータ転送装置に転送するデータ転送装置におけるデータ転送方法であって、
サービスチェインを構成する前記サービス機能に固有のサービス機能番号と前記サービスチェインの識別情報を含むタグを有するパケットを受信するステップと、
受信したパケットの前記タグから前記サービスチェインの前記識別情報と前記サービス機能番号を取得するステップと、
前記サービス機能番号を用いて前記ルーティングテーブルを検索し、前記パケットの転送先候補を取得するステップと、
前記転送先候補と前記サービスチェインの識別情報を比較し、前記サービスチェインの識別情報が一致する転送先候補がある場合には、その転送先候補から転送先情報を取得するステップと、
取得した前記転送先情報に基づいてパケットを出力するステップと
を含むデータ転送方法。
【請求項6】
前記転送先情報を取得するステップは、
受信したパケットを配下の前記データ処理装置に転送した場合に、前記データ処理装置においてデータ処理が完了したパケットの更新された前記サービス機能番号の情報を用いて、前記パケットの転送先を決定する
請求項5記載のデータ転送方法。
【請求項7】
前記ルーティングテーブルは、
前記サービス機能に固有のサービス機能番号毎に、前記サービスチェインの識別情報と、パケットの転送先情報とが関連付けて登録されている
請求項5または6に記載のデータ転送方法。
【請求項8】
前記パケットは、
前記データ処理の対象となる処理対象データと、少なくとも1つの前記サービス機能番号を含む前記サービスチェインのルート情報と、前記サービスチェインの識別情報を含む前記タグを含み、
前記タグは、
前記サービス機能が前記処理対象データの区切りを認識するためのフラグと、前記処理対象データの順番が入れ替わった場合に、前記処理対象データを正しい順番に並び替えるためのシーケンス番号を含み、
前記ルート情報は、
前記サービス機能番号が、前記サービスチェインにおける前記データ処理の順番に配置されている
請求項5から7の何れか1項に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、サービスファンクションチェイニングの技術によってユーザにサービスを提供するデータ転送装置およびデータ転送方法に関するものである。
【背景技術】
【0002】
エンドツーエンドのサービスを柔軟に提供するため、サービスファンクションチェイニング(Service Function Chaining:SFC)が検討されている(非特許文献1)。SFCは、ネットワーク上に点在するサービス機能(Service Function:SF)を自由に組み合わせる技術であり、SFCを用いることでユーザごとに最適なサービスを提供することができる。
【0003】
SFCは主に柔軟なネットワークサービスを実現するために検討されているが、クラウドサービスに対しても有用な技術である。例えば非特許文献2には、SFCを用いた画像処理サービスとして、2種類の画像処理機能を組み合わせた映像監視サービスが開示されている。
【0004】
SFCを用いたネットワークでは、
図8に示すように入り口の分類器(Classifier)10がユーザごとにパケット11にタグを付加し、サービス機能転送装置(Service Function Forwarder:SFF)12がタグに基づいて適切なSFにパケット11を転送する。
図8の13はSFを実現するサーバ、14はユーザに対して提供されるSFを数珠つなぎにしたサービスチェインを表している。SFCにより、ユーザは自身の目的に応じたSFを組み合わせて独自のサービスを構築することができる。
【0005】
非特許文献3には、NSH(Network Service Header)を用いたSFCが提案されている.NSHを用いた方式では、
図9に示すようなデータ構造を有するヘッダが用いられる。SFFは、パケットに付加されたNSHを参照し、サービスチェイン識別子(Service Path Identifier:SPI)とサービスチェイン内の現在地(Service Index:SI)によりパケットの転送先を制御する。SFでデータ処理を行う度にSIを更新することで、パケットはサービスチェイン内のSFを渡り歩くことができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】RFC 7665 - Service Function Chaining (SFC) Architecture, Internet Engineering Task Force (IETF), October 2015, <https://datatracker.ietf.org/doc/html/rfc7665>
【非特許文献2】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>
【非特許文献3】RFC 8300 - Network Service Header (NSH) Internet Engineering Task Force (IETF)、January 2018、<https://datatracker.ietf.org/doc/html/rfc8300)>
【発明の概要】
【発明が解決しようとする課題】
【0007】
コンピュータネットワークにおいては、TCP/IPプロトコルを利用した通信が主流になっているが、TCP/IPプロトコルはコンピュータ間を通信するためのものであり、サービスチェインについて考慮されていない。仮に、TCP/IPプロトコルを用いてSFCを実現すると、SFにおいてデータ処理を行った後、送り先を次のSFに書き換えなければならない。この処理のためにSFは計算資源を余計に消費し、さらにSF内の処理遅延が増加するためサービス性能に悪影響が生じる。
【0008】
一方、NSHを用いたSFCではパケットにサービスチェインに関する情報が付加されており、SFでの送り先情報の書き換えは不要である。
図10A、
図10Bは、NSHを用いたSFCおよびルーティングテーブルの構成例である。
図10Bのルーティングテーブルには、サービスチェイン識別子(SPI)毎にサービスチェイン内の現在地(SI)とデータの転送先(直近の転送先であるネクストホップと出力ポート)が登録されている。
図10Bのルーティングテーブルにおいては、サービスチェインごとにルーティング情報を保持する必要があるため、ルーティングテーブルが枯渇した場合には、新規のサービスチェインをルーティングすることができないという問題があった。
【0009】
本願発明は、上記課題を解決するためになされたものであり、ルーティングテーブルが枯渇した場合においても新規のサービスチェインをルーティングすることができるデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願発明のデータ転送装置は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成された少なくとも1つのデータ処理装置を配下に有し、ユーザが要求するサービスを実現するためのサービスチェインを構成する前記サービス機能に固有のサービス機能番号と、前記サービスチェインの識別情報とを含むタグを有するパケットを受信するパケット受信部と、前記サービスチェインのルート上のデータ転送装置に登録されているルーティングテーブルに基づいて、受信したパケットを配下の前記データ処理装置または他のデータ転送装置に転送する転送制御部とを備え、前記転送制御部は、受信したパケットの前記タグに含まれる前記サービス機能番号を用いて前記ルーティングテーブルからパケットの転送先候補を取得し、前記サービスチェインの前記識別情報に基づいて前記パケットの転送先を決定する。
【0011】
また、本願発明のデータ転送装置の1構成例において、前記転送制御部は、受信したパケットを配下の前記データ処理装置に転送した場合に、前記データ処理装置においてデータ処理が完了したパケットの更新された前記サービス機能番号の情報を用いて、前記パケットの転送先を決定する。
【0012】
また、本願発明のデータ転送装置の1構成例において、前記ルーティングテーブルは、前記サービス機能に固有のサービス機能番号毎に、前記サービスチェインの識別情報と、パケットの転送先情報とが関連付けて登録されている。
【0013】
また、本願発明のデータ転送装置の1構成例において、前記パケットは、前記データ処理の対象となる処理対象データと、少なくとも1つの前記サービス機能番号を含む前記サービスチェインのルート情報と、前記サービスチェインの識別情報を含む前記タグを含み、前記タグは、前記サービス機能が前記処理対象データの区切りを認識するためのフラグと、前記処理対象データの順番が入れ替わった場合に、前記処理対象データを正しい順番に並び替えるためのシーケンス番号を含み、前記ルート情報は、前記サービス機能番号が、前記サービスチェインにおける前記データ処理の順番に配置されている。
【0014】
また、本願発明のデータ転送方法は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成された少なくとも1つのデータ処理装置を配下に有し、登録されているルーティングテーブルに基づいて、受信したパケットを配下の前記データ処理装置または他のデータ転送装置に転送するデータ転送装置におけるデータ転送方法であって、サービスチェインを構成する前記サービス機能に固有のサービス機能番号と前記サービスチェインの識別情報を含むタグを有するパケットを受信するステップと、受信したパケットの前記タグから前記サービスチェインの前記識別情報と前記サービス機能番号を取得するステップと、前記サービス機能番号を用いて前記ルーティングテーブルを検索し、前記パケットの転送先候補を取得するステップと、前記転送先候補と前記サービスチェインの識別情報を比較し、前記サービスチェインの識別情報が一致する転送先候補がある場合には、その転送先候補から転送先情報を取得するステップと、取得した前記転送先情報に基づいてパケットを出力するステップとを含む。
【0015】
また、本願発明のデータ処理方法の1構成例において、前記転送先情報を取得するステップは、受信したパケットを配下の前記データ処理装置に転送した場合に、前記データ処理装置においてデータ処理が完了したパケットの更新された前記サービス機能番号の情報を用いて、前記パケットの転送先を決定する。
【0016】
また、本願発明のデータ処理方法の1構成例において、前記ルーティングテーブルは、前記サービス機能に固有のサービス機能番号毎に、前記サービスチェインの識別情報と、パケットの転送先情報とが関連付けて登録されている。
【0017】
また、本願発明のデータ処理方法の1構成例において、前記パケットは、前記データ処理の対象となる処理対象データと、少なくとも1つの前記サービス機能番号を含む前記サービスチェインのルート情報と、前記サービスチェインの識別情報を含む前記タグを含み、前記タグは、前記サービス機能が前記処理対象データの区切りを認識するためのフラグと、前記処理対象データの順番が入れ替わった場合に、前記処理対象データを正しい順番に並び替えるためのシーケンス番号を含み、前記ルート情報は、前記サービス機能番号が、前記サービスチェインにおける前記データ処理の順番に配置されている。
【発明の効果】
【0018】
本願発明のデータ転送装置およびデータ転送方法は、受信したパケットに付加されたサービス機能番号を用いてパケットの転送先候補を取得し、サービスチェインの識別情報に基づいてパケットの転送先を決定するように構成されているので、同じサービス機能を利用するサービスチェインをまとめて管理することができる。そのためルーティングテーブルが枯渇した場合においても、既知のサービス機能を利用する新規のサービスチェインをルーティングすることが可能となる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、本願発明の実施の形態に係るデータ転送装置を用いたデータ処理システムの構成例を示すブロック図である。
【
図2A】
図2Aは、本願発明の実施の形態に係るデータ転送装置の動作を説明するための図である
【
図2B】
図2Bは、本願発明の実施の形態に係るデータ転送装置におけるルーティングテーブルの構成例を示す図である。
【
図3】
図3は、本願発明の実施の形態に係るデータ転送装置とデータ処理装置の構成例を示すブロック図である。
【
図4】
図4は、本願発明の実施の形態に係るデータ転送装置の動作を説明するためのフローチャートである。
【
図5】
図5は、本願発明の実施の形態に係るデータ転送装置の配下のデータ処理装置の動作を説明するためのフローチャートである。
【
図6】
図6は、本願発明の実施の形態に係るデータ転送装置におけるパケットのデータ構造を説明するための図である。
【
図7】
図7は、本願発明の実施の形態に係るデータ処理装置を実現するコンピュータの構成例を示すブロック図である。
【
図8】
図8は、従来のサービスファンクションチェイニングの構成例を説明するための図である。
【
図9】
図9は、従来のサービスファンクションチェイニングにおけるパケットのデータ構造を説明するための図である。
【
図10A】
図10Aは、従来のサービスファンクションチェイニングの動作を説明するための図である。
【
図10B】
図10Bは、従来のサービスファンクションチェイニングのルーティングテーブルの構成例を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して本願発明の実施の形態を説明する。但し、本願発明は、多くの異なる態様で実施することが可能であり、以下に説明する本願発明の実施の形態に限定して解釈すべきではない。
【0021】
<データ転送装置を用いたデータ処理システム>
図1は、本願発明の実施の形態に係るデータ転送装置を用いたデータ処理システムの構成例を示すブロック図である。データ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うユーザ管理装置1-1~1-3と、パケットの転送を行う1乃至複数のデータ転送装置2-1~2-9と、受信したパケットに含まれるデータに対してSFのデータ処理を行うデータ処理装置3-1~3-13と、サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する外部送信装置4-1~4-3とを備えている。
【0022】
データ処理システムは、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信すると共に、計算したルート上のデータ転送装置2-1~2-9に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する通信管理装置5を備えている。
【0023】
データ処理装置3-1~3-13としては、CPU(Central Processing Unit)、FPGA(field-programmable gate array)、GPU(graphics processing units)、ASIC(Application Specific integrated circuit)などが含まれる。
【0024】
本実施の形態では、データ処理装置3-1~3-13によって実現されるSFを組み合わせてユーザごとにカスタマイズしたクラウドサービスを提供する。具体的には、データ転送装置2-1~2-9間で通信し、ユーザから送られてきたデータパケットを適切なSFに転送する。SFにおけるデータ処理が完了すると、さらに別のSFにデータパケットを転送してデータ処理を行う。これにより、本実施の形態では、ユーザごとに処理内容を変えることで、ユーザが要求するサービスを実現するためのサービスの組み合わせを提供する。
【0025】
データパケットが辿る通信経路をサービスチェインと呼ぶ。
図1の14はサービスチェインの一例である。サービスチェインを複数のユーザが同時に利用すると、SFでデータが衝突し、適切な結果を保証することができない。そのため、本実施の形態のデータ処理システムでは、入り口のユーザ管理装置1-1~1-3でデータパケットを管理し、サービスチェインを1ユーザしか利用しないように制御している。
【0026】
ユーザ管理装置1-1~1-3は、データパケットへのタグ付加も行う。タグには、サービスチェインを構成するSFの組み合わせからなるルート情報(宛先情報)が記載されており、データ転送装置2-1~2-9は、付加されたタグを参照してパケットのルーティングを行い、パケットを目的のデータ処理装置のSFに向けて転送する。
【0027】
外部送信装置4-1~4-3は、データ処理済のデータをIPパケット化してユーザに送り返す。データ処理システム外における通信は、TCP/IPが世界標準的に利用されている。一方、サービスチェインのルーティングを行うデータ処理システム内では、タグを用いたパケット通信を行う。外部送信装置4-1~4-3は、データ処理システム内外のプロトコルの違いを吸収するために用いられる。
【0028】
<データ転送装置における転送制御>
本実施の形態のデータ転送装置は、パケットの転送データに付加されたサービスチェインを構成するサービス機能のサービス機能番号(SF番号)とサービスチェインの識別情報(UID)を参照してデータの転送先を制御する。SF番号は、各SFに割り当てたユニークな値であり、UIDは、ユーザのサービスチェインを識別するための値である。
【0029】
具体的には、SF番号を用いてデータの転送先(直近の転送先であるネクストホップと出力ポート)の候補を取得し、UIDを用いて転送先を絞り込むことで、パケットの転送先を決定する。ここで、複数のUIDをまとめて転送先を定義しても良い。UIDのまとめ方としては、UIDの共通部分でまとめたり、複数のUIDについてデフォルトの転送先を定義したりすること等が考えられるが、それらに限定されるものではない。
【0030】
図2Aは、本願発明の実施の形態に係るデータ転送装置の動作を説明するための図である。
図2Aでは二人のユーザがSF1とSF2を組み合わせたサービスを利用しており、サービスチェインの識別情報として、一方のユーザのデータにUID=1、他方のユーザのデータにUID=2のタグが付加されている。また、どちらのユーザのサービスチェインもSF1とSF2を含んでいるため、パケットのタグのルート情報(宛先情報)にはSF番号1とSF番号2が記載されている。
【0031】
図2Aの例では、データ転送装置1とデータ転送装置2の間の帯域が逼迫しているため、サービスチェイン(UID)ごとに通信経路を変えている。同じサービス機能を利用するサービスチェインがあっても、UIDを利用してサービスチェイン毎に転送先を変えることもできる。
【0032】
図2Bは、本願発明の実施の形態に係るデータ転送装置におけるルーティングテーブルの構成例を示す図である。
図2Bの構成例では、サービス機能のSF番号毎に、サービスチェインの識別情報であるUIDと、パケットの転送先情報として、直近の転送先であるネクストホップとパケットを出力するポートの番号とが関連付けて登録されている。本実施の形態のルーティングテーブルでは、同じSF(SF1、SF2)を利用するサービスチェイン(UID1、UID2)をまとめて管理している。
【0033】
データ転送装置1(2-10)は、先頭のSF番号が[1]のパケットを受信した場合、ルーティングテーブルにデフォルトの転送先しか登録されていないため、UIDに関係なく出力ポートI/F3からSF1に向けてデータを送信する。一方、先頭のSF番号が[2]のパケットを受信した場合には、2つの転送先候補からUIDに応じて1つの転送先に対応する出力ポートを選択し、I/F1もしくはI/F2からパケットを送信する。
【0034】
SF1においてデータ処理が行われると、SF番号はデータ処理を行った後にSF1において更新され、データ処理を行ったSF1のSF番号は削除される。これによりパケットに付加されたルート情報(宛先情報)の先頭のSF番号が変更されるので、データ処理後のパケットを受信したデータ転送装置1(2-10)は、受信したパケットを次のSFに送ることができる。
【0035】
このように、本実施の形態のデータ転送装置は、受信したパケットに付加されたSF番号を用いてパケットの転送先候補を取得し、サービスチェインの識別情報に基づいてパケットの転送先を決定するように構成されているので、同じSFを利用するサービスチェインをまとめて管理することができる。そのためルーティングテーブルが枯渇した場合においても、既知のサービス機能を利用する新規のサービスチェインをルーティングすることが可能となる。ただし、新規のサービスチェインによって転送先候補が増えないことが条件である。
【0036】
<データ転送装置、データ処理装置の構成>
図3はデータ転送装置2-8とデータ処理装置3-9、3-10の構成を示すブロック図である。
図3の構成例では、データ転送装置2-8は、受信したパケットに含まれるデータに対してサービス機能のデータ処理を行うように構成されたデータ処理装置3-9、3-10を配下に有している。
【0037】
データ転送装置2-8は、パケット受信部200と、パケット送信部201と、パケット解析部202と、転送制御部203と、データ通信制御部204とから構成される。
【0038】
パケット受信部200は、ユーザ管理装置またはデータ転送装置からパケットを受信する。受信するパケットには、サービスチェインを構成するサービス機能に固有のサービス機能番号とサービスチェインの識別情報を含むタグが付加されている。
【0039】
転送制御部203は、予め登録されているルーティングテーブルに基づいて、受信したパケットを配下のデータ処理装置または他のデータ転送装置に転送するように構成されている。ルーティングテーブルは、サービスチェインのルート上のデータ転送装置に予め登録されている。転送制御部203は、受信したパケットに付加されたサービス機能番号を用いてパケットの転送先候補を取得し、この転送先候補からサービスチェインの識別情報に基づいてパケットの転送先を決定する。
【0040】
データ転送装置2-8の配下に接続されたデータ処理装置3-9、3-10は、それぞれパケット取得部300と、データ構築部301と、データ処理部302と、レジスタ管理部303と、パケット作成部304と、タグ更新部305とから構成される。
【0041】
<データ転送装置、データ処理装置の動作>
図4は、本願発明の実施の形態に係るデータ転送装置のデータ転送方法の動作を説明するためのフローチャートである。
図5は、本願発明の実施の形態に係るデータ転送装置の配下のデータ処理装置の動作を説明するためのフローチャートである。
【0042】
図4のフローチャートにおいて、データ転送装置2-8のパケット受信部200がパケットを受信すると(ステップS1-1)、パケット解析部202は、受信したパケットを解析して、パケットに付加されているタグヘッダからUIDとSF番号を取得する(ステップS1-2、S1-3)。SF番号については、データに付加されている少なくとも1のSF番号から先頭のSF番号を取得し、取得したUIDとSF番号を受信したパケットとともに転送制御部203に送信する。
【0043】
転送制御部203は、取得したSF番号を用いてルーティングテーブルを検索し、データの転送先候補を取得する(ステップS1-4)。そして、取得した転送先候補と受信したパケットのUIDを比較し(ステップS1-5)、UIDが一致するものがあればその転送先候補から転送先(直近の転送先であるネクストホップと出力ポート)を取得する。ルーティングテーブルにUIDが一致するものがない場合には、そのSF番号に対応するデフォルトの転送先を取得する(ステップS1-6)。
【0044】
例えば、
図3の構成例では、パケット解析部202から出力されたパケットをデータ通信制御部204経由でデータ処理装置3-9もしくは3-10に転送するか、またはパケット送信部201を介して隣接するデータ転送装置に転送するかを決定する。
【0045】
図5のフローチャートにおいて、パケット解析部202から出力されたパケットがデータ通信制御部204介してデータ処理装置3-9もしくは3-10に転送された場合、データ処理装置3-9または3-10のパケット取得部300は、データ転送装置2-8からパケットを受信し(ステップS2-1)、受信したパケットからペイロード部(処理対象データ等)を取り出す(ステップS2-2)。ここで、受信したデータパケットに付加されていたタグの情報は、処理後のデータをパケット化するためにパケット作成部304に送信される。
【0046】
データ処理装置3-9または3-10のデータ構築部301は、パケット取得部300において取得された複数のデータパケットのペイロードを組み合わせて元のデータを再構築する(ステップS2-3)。
【0047】
ここで、元のデータを構成する到着した複数のパケットの順序が入れ替わっている可能性があるため、データ構築部301は、パケット順序制御を行って、複数のパケットから取り出された処理対象データを正しい順番に並べ替える。このパケット順序制御は、パケットのタグに含まれるシーケンス番号に基づいて行うことができる。データ構築部301は、再構築されデータ処理可能となったデータをデータ処理部302に送信する。
【0048】
データ処理部302は、データ構築部301から受信したデータに対して所定のサービス機能のデータ処理を実行し、データ処理完了後のデータをパケット作成部304に送信する(ステップS2-4)。
【0049】
パケット作成部304は、受信したデータパケットに付加されていたタグの情報を用いて、データ処理部302から受信したデータをパケット化し、生成したパケットをタグ更新部305に送信する(ステップS2-5)。
【0050】
タグ更新部305は、パケット作成部304から受信したパケットに付加されているタグに含まれるSF番号のルート情報(宛先情報)を参照し、データ処理を行ったSF(データ処理装置3-9または3-10内)がサービスチェインのルートから除かれるように、タグに含まれるルート情報を更新して(ステップS2-6)、ルート情報が更新されたパケットをデータ転送装置2-8に送信する(ステップS2-7)。
【0051】
図5のフローチャートには明示していないが、データ処理装置3-9または3-10のレジスタ管理部303は、タグデータからのパラメータの取得とデータ処理装置への登録を行う。具体的には、レジスタ管理部303は、ユーザ管理装置から受信パケットのタグを介してSFの処理に必要なユーザ固有のパラメータを取得して、取得したパラメータをデータ処理部302に登録する。このパラメータは、ユーザごと(UIDごと)にデータ処理部における処理を変えたい場合等に用いることができる。
【0052】
データ処理部302は、レジスタ管理部303によって登録されたパラメータのうち、パケット取得部300が取得したUIDに対応するパラメータを用いて、データ構築部301から受信したデータに対して所定のサービス機能のデータ処理を実行する。
【0053】
データ転送装置2-8は、データ処理装置3-9もしくは3-10からデータ処理済のパケットを受信した場合、上述したユーザ管理装置またはデータ転送装置からパケットを受信した場合と同様にしてルーティングテーブルに基づくパケット転送制御を行う。
【0054】
データ通信制御部204を介してデータ処理装置3-9もしくは3-10からデータ処理済のパケットを受信した場合(ステップS1-1)、パケット解析部202は、データ処理装置3-9または3-10から受信したパケットを解析して、パケットに付加されているタグからUIDとSF番号を取得し、取得したUIDとSF番号と受信したパケットを転送制御部203に出力する(ステップS1-2、S1-3)。
【0055】
転送制御部203は、上述したパケット受信部200からパケットを受信した場合と同様にして、SF番号を用いてルーティングテーブルを検索し、データの転送先候補を取得する。そして、転送先候補と受信したデータのUIDを比較し、UIDが一致するものがあればその転送先候補から転送先(直近の転送先であるネクストホップと出力ポート)を取得する。それ以外の場合には、そのSF番号に対応するデフォルトの転送先を取得する。
【0056】
図3の構成例では、上述したパケット受信部200からパケットを受信した場合と同様にして、パケット解析部202から出力されたパケットをデータ通信制御部204経由でデータ処理装置3-9もしくは3-10に転送するか、またはパケット送信部201を介して隣接するデータ転送装置に転送するかを決定する。ここで、上述したように、タグ更新部305によるタグの更新により、データ処理済のデータ処理装置3-9または3-10のSF番号がサービスチェインのルート情報から除かれているので、処理完了済みのデータ処理装置(SF)が転送先として選択されることはない。
【0057】
図3の構成例のように、複数のデータ処理装置3-9、3-10を並列にデータ転送装置2-8に接続すれば、少ないオーバヘッドで各データ処理装置3-9、3-10にアクセスすることが可能である。また、データ処理装置3-9、3-10をデータ転送装置2-8と独立させることで、既存のデータ処理装置3-9、3-10とデータ転送装置2-8との通信を阻害することなく、新たなデータ処理装置の追加と削除が可能である。
【0058】
なお、
図3、
図4、
図5の例では、データ転送装置2-8、データ処理装置3-9、3-10を例に挙げて説明しているが、
図1のデータ転送装置2-1~2-7、2-9の構成と動作はデータ転送装置2-8と同様であり、データ処理装置3-1~3-8、3-11~3-13の構成と動作はデータ処理装置3-9、3-10と同様である。
【0059】
<データ構造>
図6は、本願発明の実施の形態に係るデータ転送装置におけるデータ構造の構成例を示す図である。本願発明の実施の形態に係るサービスファンクションチェイニングシステム内で転送される転送データは、プロトコル情報、データ属性、宛先情報(ルート情報)を含むタグヘッダ407とデータ処理の対象となる処理対象データ403で構成することができる。
【0060】
タグヘッダ407のプロトコル情報には、TTL(Time to Live)やヘッダチェックサムなどデータ破棄に関連する情報や、データタイプやヘッダ長などタグヘッダの構成に関する情報を設定することができる。
【0061】
タグヘッダ407のデータ属性には、サービスチェインを識別するためのUIDを設定することができる。また、クラウドサービスを利用するユーザは処理対象データを複数のパケットに分割して送ってくることがあるため、SFが処理対象データの区切りを認識するための先頭/末尾フラグと、処理対象データの順番が入れ替わった時に正しい順番に並び替えるために使用するシーケンス番号を設定することができる。
【0062】
サービスチェインのルート情報として少なくとも1つの宛先情報(SF)が含まれる。宛先情報には、サービスチェインを構成する宛先のサービス機能番号(SF番号)が、サービスチェインにおけるデータ処理の順番に配置されている。宛先情報には、SF番号に加えて、SFに向けたメタデータを設定することができる。宛先情報にメタデータ長を設定することで、任意の長さのメタデータを設定することができる。
【0063】
メタデータの使い方の一つに、
図3において説明したレジスタ管理部303によるデータ処理装置(SF)のパラメータの登録や更新が考えられる。複数のサービスチェインがSFを共有している場合、サービスチェインに応じてSFのパラメータを変えたい場合がある。このとき宛先情報のメタデータにパラメータを設定することで、サービスチェインに応じて各SFにパラメータを登録することができる。SFは、タグヘッダのプロトコル情報のデータタイプによってそのデータが処理対象データかパラメータかを判別することができる。
【0064】
図6の構成例のように、上記のデータをイーサネットフレームでカプセル化してもよい。イーサネットフレームを利用してL2スイッチを介して通信することで、データ転送装置の1つのポートに複数のSFを接続して、データ転送装置の出力ポート数を超えた接続を実現することができる。
【0065】
本実施の形態で説明したデータ転送装置2-1~2-9とデータ処理装置3-1~3-13は、CPU(またはGPU)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。
【0066】
このコンピュータの構成例を
図7に示す。コンピュータは、CPU500(またはGPU)と、記憶装置501と、インタフェース装置502とを備えている。このようなコンピュータにおいて、本願発明のデータ処理方法を実現させるためのプログラムは、記憶装置501に格納される。各装置のCPU500(またはGPU)は、記憶装置501に格納されたプログラムに従って本実施の形態で説明した処理を実行する。
【0067】
データ転送装置2-1~2-9とデータ処理装置3-1~3-13,ユーザ管理装置1-1~1-3,外部送信装置4-1~4-3の少なくとも一部をFPGAもしくはASICによって構成してもよい。特に、パケット処理およびデータ処理の一部をこれらのハードウェアで実行することで処理性能の向上が期待できる。
【0068】
このように、本実施の形態のデータ転送装置は、受信したパケットに付加されたサービス機能番号を用いてパケットの転送先候補を取得し、サービスチェインの識別情報に基づいてパケットの転送先を決定するように構成されているので、同じサービスファンクションを利用するサービスチェインをまとめて管理することができる。そのためルーティングテーブルが枯渇した場合においても、既知のサービス機能を利用する新規のサービスチェインをルーティングすることが可能となる。
【産業上の利用可能性】
【0069】
本願発明は、サービスファンクションチェイニング技術に適用することができる。
【符号の説明】
【0070】
1-1~1-3…ユーザ管理装置、2-1~2-12…データ転送装置、3-1~3-15…データ処理装置、4-1~4-6…外部送信装置、5…通信管理装置、6…ロードバランサ、200…パケット受信部、201…パケット送信部、202…パケット解析部、203…転送制御部、204…データ通信制御部、300…パケット取得部、301…データ構築部、302…データ処理部、303…レジスタ管理部、304…パケット作成部、305…タグ更新部。