JP2017135449A - パケット中継方法およびパケット中継プログラム - Google Patents

パケット中継方法およびパケット中継プログラム Download PDF

Info

Publication number
JP2017135449A
JP2017135449A JP2016011473A JP2016011473A JP2017135449A JP 2017135449 A JP2017135449 A JP 2017135449A JP 2016011473 A JP2016011473 A JP 2016011473A JP 2016011473 A JP2016011473 A JP 2016011473A JP 2017135449 A JP2017135449 A JP 2017135449A
Authority
JP
Japan
Prior art keywords
packet
unit
switch
packets
server
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
JP2016011473A
Other languages
English (en)
Inventor
幸洋 中川
Koyo Nakagawa
幸洋 中川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016011473A priority Critical patent/JP2017135449A/ja
Priority to US15/366,012 priority patent/US10084701B2/en
Priority to EP16202164.6A priority patent/EP3197108B1/en
Publication of JP2017135449A publication Critical patent/JP2017135449A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • 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
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】仮想化されたネットワークのサービス機能を転送される通信フローの各パケットの順序を適正に維持することを目的とする。
【解決手段】パケット中継方法は、複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記第1のサービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する。
【選択図】図17

Description

本発明は、パケット中継方法およびパケット中継プログラムに関する。
従来から、ルータやゲートウェイ等の通信機器には専用ハードウェアが用いられている。近年では、各種の通信機器のネットワークサービスに関する機能(以下、ネットワークのサービス機能)を汎用サーバ上のソフトウェアとして仮想化させる手法(Network Functions Virtualization(NFV))が実用化されている。
関連する技術として、クラウドコントローラが、Virtual Machine(VM)を当該VMへの通信セッション数の最も多い拠点へマイグレーションさせる技術が提案されている(例えば、特許文献1を参照)。
また、通信機能と通信セッションを確立するために複数の経路に向けて転送されるパケットの転送先を、複数の仮想マシンから選択する手段と、パケットを選択された仮想マシンに転送する手段とを含む技術が提案されている(例えば、特許文献2を参照)。
また、広域ネットワーク(WAN)とNW機能クラウドを別個のネットワークとして管理し、かつ双方のネットワーク制御を連携させる技術が提案されている(例えば、特許文献3を参照)。
また、フロー情報データベースに蓄積されたフロー情報を参照して、転送装置のポートでパケットが送信された時刻と当該パケットに対する応答パケットが受信された時刻との差分を計算する。これにより、ネットワーク遅延を測定する技術が提案されている(例えば、特許文献4を参照)。
特開2015−41198号公報 国際公開第2014−208538号 特開2015−43528号公報 特開2013−240017号公報
複数のパケットを含む通信フローが仮想化されたネットワークの複数のサービス機能(Virtual Network Function(VNF))を経由する場合、該通信フローに含まれるパケットは、各VNFのサービス機能により所定の処理がされる。通信フローの転送経路は、動的に変更されることがある。
通信フローのうち一部のパケットがVNFにより処理されている間に、該VNFが転送経路から除外される変更がされると、通信フローに含まれる各パケットの順序が逆転し、該順序が適正でなくなることがある。
1つの側面として、本発明は、仮想化されたネットワークのサービス機能を転送される通信フローの各パケットの順序を適正に維持することを目的とする。
1つの態様では、パケット中継方法は、複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記サービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する。
1つの側面によれば、仮想化されたネットワークのサービス機能を転送される通信フローの各パケットの順序を適正に維持することを目的とする。
システムの全体構成の一例を示す図である。 スイッチの一例を示す機能ブロック図である。 サーバの一例を示す機能ブロック図である。 ネットワークコントローラの一例を示す機能ブロック図である。 パケット順序が逆転するサービスチェーンの張替えの一例を示す図である。 パケット順序が逆転するサービスチェーンの張替え処理の一例を示すシーケンスチャートである。 実施形態のサービスチェーンの張替えの一例を示す図(その1)である。 実施形態のサービスチェーンの張替え処理の一例を示すシーケンスチャートである。 実施形態のサービスチェーンの張替えの一例を示す図(その2)である。 サービスパスヘッダの一例を示す図である。 張替えテーブルの一例を示す図である。 スイッチに送信される制御情報の一例を示す図である。 パケット中継制御部が行う処理の指標の一例を示す図である。 コントローラテーブルの一例を示す図である。 実施形態の処理の一例を示すフローチャート(その1)である。 実施形態の処理の一例を示すフローチャート(その2)である。 実施形態の処理の一例を示すフローチャート(その3)である。 実施形態の処理の一例を示すフローチャート(その4)である。 応用例1のサービスチェーンの張替えの一例を示す図である。 応用例1の遅延情報テーブルの一例を示す図である。 応用例1の処理の一例を示すフローチャート(その1)である。 応用例1の処理の一例を示すフローチャート(その2)である。 応用例1の処理の一例を示すフローチャート(その3)である。 応用例2のサービスチェーンの張替えの一例を示す図である。 応用例2の遅延情報テーブルの一例を示す図である。 応用例2の処理の一例を示すフローチャート(その1)である。 応用例2の処理の一例を示すフローチャート(その2)である。 応用例3の張替えテーブルの一例を示す図である。 スイッチのハードウェア構成の一例を示す図である。 サーバのハードウェア構成の一例を示す図である。
<実施形態のシステムの全体構成の一例>
以下、図面を参照して、実施形態について説明する。図1は、実施形態のシステム1の全体構成の一例を示す。システム1において、ネットワークコントローラ(図1では、NWコントローラと表記)2に、複数のスイッチ3A、3B、3C・・・(以下、総称してスイッチ3と称することがある)が接続される。
また、複数のスイッチ4A、4B、4C・・・(以下、総称してスイッチ4と称することがある)が、それぞれ各スイッチ3に接続される。
各スイッチ3は、例えば、スパインスイッチ(Spine Switch)と称される。各スイッチ4は、例えば、リーフスイッチ(Leaf Switch)と称される。各スイッチ3と各スイッチ4とを総称して、スイッチSWと称する。
スイッチSWは、スパインスイッチとリーフスイッチとを含むスイッチには限定されない。各スイッチ4には、それぞれ1または複数のサーバ5が接続される。図1は、1つのスイッチ4に2つのサーバ5が接続される例を示す。スイッチSWは、通信制御装置またはコンピュータの一例である。
サーバ5は、情報処理装置またはコンピュータの一例であり、サーバ5上でソフトウェアによりネットワークのサービス機能が実行される。これにより、ネットワークのサービス機能(以下、単にサービス機能と称する)は、サーバ5上で仮想化される。
例えば、サーバ5は汎用サーバであってもよい。サービス機能としては、例えば、ファイアーウォールやルータ、Deep Packet Inspection(DPI)、WAN Acceleration、サービス品質モニタ等であってもよい。
実施形態では、複数のパケットを含む通信フローが、各サーバ5を経由し、各サーバ5で仮想化されたサービス機能(VNF)の処理を受けるものとする。通信フローは、順序が規定された複数のパケットを含む。
所定の転送経路で通信フローを複数のVNFに転送する方式は、サービスチェーニングと称されることがある。以下、通信フローの転送経路をサービスチェーン、通信フローの転送経路の変更をサービスチェーンの張替えと称する。
<スイッチの一例>
次に、図2の例を参照して、スイッチSWの一例について説明する。該スイッチSWは、サーバ5に接続される。スイッチSWは、スイッチ制御部11と時刻情報付与部12とパケット間隔検出部13と第1ヘッダ更新部14とパケット受信部15とパケット中継制御部16とパケット送信部17とスイッチ記憶部18とを含む。
スイッチ制御部11は、スイッチSWにおける各種の制御を行う。時刻情報付与部12は、通信フローに含まれる各パケットに時刻情報(タイムスタンプ)を付与する。例えば、パケット受信部15がパケットを受信した際に、時刻情報付与部12は、受信したパケットに対して、時刻情報を付与する。
パケット間隔検出部13は、パケット受信部15が受信した1つ前のパケットの時刻と次のパケットの時刻との差分に基づいて、通信フローに含まれる前後のパケットの時間間隔(以下、パケット間隔と称する)を検出する。
第1ヘッダ更新部14は、受信したパケットのヘッダを更新する(書き換える)。これにより、受信したパケットの宛先が変更される。パケット受信部15は、通信フローに含まれる各パケットを、入力ポートから受信する。
パケット中継制御部16は、所定の条件に基づいて、パケットの送信先(出力ポート)を決定する。パケット送信部17は、パケット中継制御部16が決定した出力ポートにパケットを送信する。
スイッチ記憶部18は、各種の情報を記憶する。例えば、スイッチ記憶部18は、パケットの送信先の出力ポートを規定する(Forwarding Database(FDB))を記憶してもよい。例えば、FDBは、Media Access Control(MAC)アドレスとポート番号との対応関係を示すデータベースであってもよい。
<サーバの一例>
次に、図3の例を参照して、サーバ5の一例について説明する。図3以降の例に示されるSFFは「Service Function Forwarder」の略称である。
サーバ5は、VNF部21A、21Bと、SFF部22とサーバ制御部23と第2ヘッダ更新部24と遅延監視部25と遅延情報通知部26と間隔調整部27とサーバ記憶部28とを含む。
VNF部21A、21Bは上述したVNFであり、仮想ネットワークサービス機能とも称される。図3において、サーバ5はVNF部21Aと21Bとを含む例を示すが、サーバ5に含まれるVNF部の数は1つであってもよいし、3つ以上であってもよい。以下、VNF部21A、21Bを、VNF部21と総称することがある。
SFF部22は、サービス機能中継部とも称される。SFF部22は、パケットをVNF部21に出力(中継)する。また、SFF部22は、VNF部21からパケットを入力する。サーバ制御部23は、サーバ5の各種の制御を行う。
第2ヘッダ更新部24は、パケットのヘッダを更新する(書き換える)。遅延監視部25は、SFF部22がVNF部21にパケットを出力してから、該パケットをSFF部22がVNF部21から入力されるまでの時間を遅延時間として監視する。
SFF部22から出力されたパケットは、VNF部21によりサービス機能の処理を受ける。そして、SFF部22は、該パケットをVNF部21から入力する。従って、遅延時間は、VNF部21によるサービス機能の処理の実行時間を示す。遅延時間は、パケット遅延時間とも称される。
遅延情報通知部26は、遅延監視部25から遅延時間を取得し、該遅延時間を含む制御情報をスイッチSWに送信する。制御情報には、例えば、Bridge Protocol Data Unit(BPDU)が適用されてもよい。
間隔調整部27は、通信フローに含まれる各パケットのうち何れかのパケットをバッファリングすることにより、バッファリングされたパケットと1つ前のパケットとのパケット間隔を調整する。
サーバ記憶部28は、各種の情報を記憶する。バッファ部29は、サーバ5が受信したパケットを一時的に記憶する(バッファリングする)。
<ネットワークコントローラの一例>
次に、図4の例を参照して、ネットワークコントローラ2の一例について説明する。ネットワークコントローラ2は、コントローラ制御部31と入力受け付け部32とコントローラ通信部33とコントローラ記憶部34とを含む。
コントローラ制御部31は、各通信フローのサービスチェーンに関する制御を行う。入力受け付け部32は、ネットワークコントローラ2を操作する操作者が適宜の入力装置(例えば、キーボードやマウス等)を用いた入力操作を受け付ける。
コントローラ通信部33は、各スイッチSWおよび各サーバ5と通信を行う。コントローラ記憶部34は、通信フローごとにサービスチェーンの状況を記憶する。
<パケット順序が逆転するサービスチェーン張替えの一例>
次に、パケット順序が逆転するサービスチェーンの張替えの一例について説明する。図5の例において、通信フローに含まれるパケットの順序は、「Pkt1」、「Pkt2」、「Pkt3」であるものとする。
サービスチェーンが張り替えられる前、通信フローに含まれる各パケットは、スイッチSWにより、サーバ5に転送されるものとする。
図5の例では、SFF部22は、パケットのタグを参照して、VNF部21Aにパケットを転送する。VNF部21Aは、転送されたパケットに対して、サービス機能(例えば、ファイアーウォール等)の処理を行う。サービス機能の処理は、ネットワークサービスとも称される。
VNF部21Aは、サービス機能の処理を受けたパケットをSFF部22に返信する。SFF部22は、該パケットをスイッチSWに送信する。スイッチSWは、受信したパケットを次段のスイッチSWに送信する。
以下、次段のスイッチSWは、サービスチェーンにおいてスイッチSWからパケットが送信される次のスイッチSWであり、前段のスイッチSWは、サービスチェーンにおいてスイッチSWにパケットを送信する1つ手前のスイッチSWである。
ネットワークコントローラ2を操作する操作者が、サービスチェーンの張替えを行う入力をネットワークコントローラ2に対して行うと、入力受け付け部32は、該入力を受け付ける。
例えば、図5の例に示されるサーバ5がサービスチェーンから除外される入力がネットワークコントローラ2にされたとする。この場合、コントローラ制御部31は、各サーバ5に対して、サービスチェーンの張替え依頼を送信する制御を行う。図5の例の場合、上記の張替え依頼に基づいて、サーバ5は、張替え後のサービスチェーンから除外される。
このため、サービスチェーンが張り替えられた後、スイッチSWは、サーバ5にパケットを転送することなく、次段のスイッチSWにパケットを送信する。つまり、サービスチェーンの張替えが行われると、通信フローはサーバ5に転送されなくなる。
通信フローの各パケットがVNF部21によるサービス機能の処理を受けない場合、スイッチSWとサーバ5との間のパケットの送受信は無駄なトラフィックとなり、通信効率が低下する。また、サーバ5に、無駄なトラフィックによる負荷が生じる。
このため、サーバ5の各VNF部21がサービスチェーンから除外される場合、スイッチSWは、サーバ5に対してパケットを転送しない。
図6は、図5の例におけるシーケンスチャートの例を示す。スイッチSWは、通信フローに含まれる各パケットをサーバ5に転送する制御を行う。図6の例の場合、スイッチSWは、通信フローの「Pkt1」、「Pkt2」をサーバ5に転送する。
ここで、スイッチSWは、前段のスイッチSWからパケット「Pkt3」を受信する前に、サーバ5からサービスチェーン張替えリクエストを受信したとする。図5の例の場合、サービスチェーン張替え後は、サーバ5は、サービスチェーンから除外される。このためのリクエストが、サービスチェーン張替えリクエストである。
スイッチSWは、サービスチェーン張替えリクエストを受信した後、サーバ5に対してパケットを転送しない。図6の例では、スイッチSWは、サービスチェーン張替えリクエスト受信した後、前段のスイッチSWからパケット「Pkt3」を受信する。
スイッチSWは、サービスチェーン張替えリクエストを受信したため、パケット「Pkt3」をサーバ5に転送せず、次段のスイッチSWに該パケット「Pkt3」を送信する。その後、スイッチSWは、サーバ5からパケット「Pkt1」、「Pkt2」を受信し、次段のスイッチSWにこれらのパケットを送信する。
この場合、通信フローのパケットの順序は、「Pkt3」、「Pkt1」、「Pkt2」になり、パケットの順序が逆転する。つまり、通信フローの各パケットの順序は適正ではない。
通信フローに含まれる各パケットの順序が適正でない場合、Transmission Control Protocol(TCP)の再送が生じる。TCPの再送が生じると、通信効率が低下する。サービスチェーンの張替えが生じるごとにTCPの再送が生じると、通信効率がさらに低下する。
また、サービスチェーンの張替えを行う前に、各パケットをバッファリングし、各サーバ5の全てのVNF部21による処理が終了した後に、サービスチェーンの張替えを行うことも考えられる。
この場合、スイッチSWにバッファリングされるパケットの情報量が多くなり、スイッチSWのメモリの容量が小さい場合、パケットがオーバーフローする可能性がある。スイッチSWに用いられるメモリの容量は小さいことが多く、この場合、パケットのオーバーフローによりパケットロスが発生する。
そこで、実施形態では、サービスチェーンの張替えが行われたとしても、通信フローに含まれる各パケットの順序が適正に維持されるようにする。以下、実施形態におけるサービスチェーンの張替えの一例について説明する。
<実施形態におけるサービスチェーンの張替えの一例>
図7は、実施形態におけるサービスチェーンの張替えの一例を示す。図7の例の通信フローに含まれる各パケットの順序は、「Pkt1」、「Pkt2」、「Pkt3」、「Pkt4」である。
図7の例に示されるように、通信フローに含まれる各パケットのうち、「Pkt1」と「Pkt2」と「Pkt3」とは連続しており、パケット間隔は殆どない。一方、「Pkt3」と「Pkt4」との間にはある程度のパケット間隔がある。
例えば、ネットワークにおける何らかの要因により、パケット「Pkt3」と「Pkt4」との間にある程度のパケット間隔が生じる場合がある。この場合、パケット「Pkt4」は、パケット「Pkt3」がスイッチSWに到達した後、ある程度の時間が経過した後、スイッチSWに到達する。
スイッチSWのパケット受信部15が、前段のスイッチSWから通信フローの各パケットを受信すると、時刻情報付与部12は、受信した時刻を示す時刻情報を受信したパケットに付与する。
パケット間隔検出部13は、通信フローに含まれる各パケットの時刻情報に基づいて、各パケットについて前後のパケットのパケット間隔を検出する。実施形態では、パケット間隔検出部13は、各パケットのうち1つのパケットを対象として、該パケットと1つ前のパケットとのパケット間隔を検出する。
通信フローの最初のパケット「Pkt1」については、該パケット「Pkt1」より前のパケットがない。このため、パケット間隔検出部13は、パケット「Pkt2」以降の各パケットについて、前後のパケット間隔を検出する。
パケット中継制御部16は、通信フローの宛先に応じた出力ポートにパケットが送信されるように制御する。サービスチェーンが張り替えられる前のパケットの宛先は、サーバ5である。従って、パケット中継制御部16は、パケットがサーバ5に転送されるように制御する。
パケット送信部17は、パケットの宛先が変更されていなければ、パケットをサーバ5に転送する。サーバ5の遅延監視部25は、パケットが、SFF部22に入力されてから、VNF部21により処理がされ、SFF部22から出力するまでの遅延時間を監視する。
遅延情報通知部26は、遅延時間を含む制御情報をスイッチSWに通知する。例えば、図7の例の場合、パケット「Pkt1」、「Pkt2」および「Pkt3」が、SFF部22に入力されるものとする。
この場合、遅延監視部25は、パケット「Pkt1」、「Pkt2」および「Pkt3」の遅延時間を監視する。従って、3つのパケットについての遅延時間が得られる。
遅延監視部25は、各パケットの遅延時間に対して統計処理を行った時間を遅延時間としてもよい。例えば、遅延監視部25は、各パケットの遅延時間の平均値を算出し、遅延時間の平均値を上記の遅延時間としてもよい。
この場合、遅延情報通知部26は、各パケットの遅延時間の平均値を遅延時間としてスイッチSWに通知する。以下、遅延時間は、各パケットの遅延時間の平均値であるものとする。
スイッチSWのパケット中継制御部16は、パケット受信部15が受信した各パケットについて、パケット間隔検出部13が検出した前後のパケットのパケット間隔とサーバ5から通知された遅延時間とを比較する。
パケット中継制御部16は、パケット間隔が遅延時間以下の場合、受信したパケットをサーバ5に転送する制御を行い、パケット間隔が遅延時間よりも長い場合、受信したパケットを、サーバ5ではなく、次段のスイッチSWに送信する制御を行う。
パケット受信部15が受信した際のパケットの宛先はサーバ5である。パケット間隔が遅延時間よりも長い場合、パケット中継制御部16は、第1ヘッダ更新部14に、パケットの宛先を次段のスイッチSWに変更させる。これにより、該パケットは、次段のスイッチSWに送信される。
図7の例においてパケット「Pkt1」と「Pkt2」とのパケット間隔、およびパケット「Pkt2」と「Pkt3」とのパケット間隔は、遅延時間以下であるとする。一方、パケット「Pkt3」と「Pkt4」とのパケット間隔は、遅延時間より長いものとする。
この場合、パケット「Pkt1」と「Pkt2」と「Pkt3」との宛先は変更されない。一方、パケット「Pkt4」の宛先は、サーバ5から次段のスイッチSWに変更される。
パケット「Pkt1」〜「Pkt3」の前後のパケット間隔は、何れも遅延時間以下である。この場合、サービスチェーンが張り替えられると、上述したように、各パケットの順序が適正でなくなる可能性がある。
一方、パケット「Pkt3」とパケット「Pkt4」とのパケット間隔は、遅延時間よりも長い。従って、パケット「Pkt3」に対するVNF部21によるサービス機能の処理が終了し、該パケット「Pkt3」がスイッチSWに受信された後に、パケット「Pkt4」はスイッチSWに到達する。
従って、パケット「Pkt3」と「Pkt4」との順序が逆転することがなく、該順序は適正に維持される。このため、サービスチェーンが張り替えられたとしても、パケット中継制御部16の制御により、通信フローに含まれる各パケットの順序は適正に維持される。
図8は、図7の例におけるシーケンスチャートである。スイッチSWは、上記の通信フローを受信すると、パケット「Pkt1」をサーバ5に転送する。また、スイッチSWは、パケット「Pkt2」をサーバ5に転送する。
図8の例では、スイッチSWからサーバ5にパケット「Pkt2」が転送された後に、サーバ5の遅延情報通知部26は、スイッチSWに制御情報を通知する。サーバ5は、スイッチSWに対して、サービスチェーン張替えリクエストを送信する前に、制御情報をスイッチSWに送信する。
つまり、制御情報は、サービスチェーンが張り替えられる前に、サーバ5からスイッチSWに送信される。サービスチェーンが張り替えられた後、パケット中継制御部16が、遅延時間に基づいて、パケットの宛先を変更するかを判定するためである。
パケット間隔検出部13は、パケット「Pkt2」とパケット「Pkt3」とのパケット間隔を検出する。検出されたパケット間隔は、遅延時間以下である。従って、パケット中継制御部16は、パケット「Pkt3」の宛先を変更する制御を行わない。このため、パケット「Pkt3」はサーバ5に転送される。
サーバ5のVNF部21は、スイッチSWから受信したパケット「Pkt1」と「Pkt2」と「Pkt3」とに対して所定のサービス機能の処理を行い、次のサービス機能に転送されるようにパケットの宛先を変更し、これらのパケットを順番にスイッチSWに送信する。
スイッチSWのパケット送信部17は、サーバ5から受信したパケット「Pkt1」と「Pkt2」と「Pkt3」を次段のスイッチSWに送信する。
一方、パケット「Pkt3」とパケット「Pkt4」とのパケット間隔は、遅延時間より長い。このため、パケット中継制御部16は、受信したパケットをサーバ5に転送することなく、次段のスイッチSWに送信する。この場合、第1ヘッダ更新部14は、パケット「Pkt4」の宛先を、サーバ5から次段のスイッチSWに変更する。
従って、サービスチェーンが張り替えられたとしても、通信フローに含まれるパケット「Pkt1」〜「Pkt4」は、その順序が適正に維持されて、次段のスイッチSWに送信される。
通信フローには、パケット「Pkt4」に続くパケット「Pkt5」以降の1または複数のパケットが含まれてもよい。この場合、パケット中継制御部16は、パケット「Pkt5」以降のパケットも、次段のスイッチSWに変更されるように制御する。
これは、サービスチェーンが張り替えられたため、通信フローの転送経路からサーバ5が除外されたためである。
上述したように、サービスチェーンが張り替えられたとしても、パケット「Pkt4」と該パケット「Pkt4」よりも前の各パケットとで順序が逆転することがない。従って、パケット「Pkt4」以降の各パケットが次のスイッチSWに送信されるように制御されることで、通信フローの各パケットの順序は適正に維持される。
次に、サービスチェーンの張替えが行われる際の処理の詳細な例について説明する。図9の例において、通信フローに含まれる各パケットは、サービスパスIDにより特定されるものとする。
図9の例の場合、通信フローに含まれる各パケットのサービスパスIDは「100番」である。
図9以降の例において、各スイッチSWのうち1つのスイッチSWをスイッチSW−1とし、該スイッチSW−1の次段のスイッチSWをスイッチSW−2、前段のスイッチSW−0とする。
通信フローに含まれる各パケットのヘッダにはNetwork Service Header(NSH)が含まれる。スイッチSWは、各種のパケットを受信するため、該スイッチSWが受信したパケットにはNSHが含まれない場合がある。
NSHには、サービスパスヘッダが含まれる。図10は、サービスパスヘッダの一例を示す。サービスパスヘッダは、サービスパスIDとサービスインデックスとを含む。サービスパスIDは、サービスチェーンを特定するIDを示す。
サービスインデックスは、サービスチェーンに含まれる複数のサービス機能のうち、経由するサービス機能を特定するインデックスの情報を示す。ヘッダにサービスインデックスを含むパケットがサービス機能により処理されると、サービスインデックスはデクリメントされる。
図9の例において、スイッチSW−1は、前段のスイッチSW−0から通信フローに含まれる各パケットを受信する。パケット中継制御部16は、各パケットの前後のパケット間隔と遅延時間とに基づいて、パケットをサーバ5−1に転送するか、または次段のスイッチSW−2に送信するかを制御する。
図9の例において、スイッチSW−1のサーバ5−1に対する出力ポートのポート番号は「10」であるとし、次段のスイッチSW−2に対する出力ポートのポート番号は「11」であるとする。
張り替えられる前のサービスチェーンにはVNF部21A−1が含まれる。また、パケット「Pkt1」〜「Pkt3」の前後のパケット間隔は遅延時間以下である。
従って、パケット中継制御部16は、ポート番号「10」の出力ポートからパケット「Pkt1」〜「Pkt3」をサーバ5−1に転送する制御を行う。パケット「Pkt1」〜「Pkt3」は、サーバ5−1に転送される。
VNF部21A−1は、各パケットに対してサービス機能の処理を行った後、各パケットのサービスインデックスをデクリメントする。例えば、各パケットのサービスインデックスが「127」であった場合、各パケットのサービスインデックスは、VNF部21A−1の処理を受けることにより、サービスインデックスが「126」になる。
図9の例の「SI=127」は、VNF部21A−1が、パケットのサービスチェーンにおける残り127番目のサービス機能であることを示す。
従って、VNF部21A−1は、パケットに対してサービス機能の処理を行った後に、サービスインデックスをデクリメントすることで、該パケットが次のVNF部21A−2に転送されるようにする。
VNF部21A−1は、複数のサービス機能のうち第1のサービス機能の一例であり、VNF部21A−2は、第1のサービス機能の次のサービス機能であり、第2のサービス機能の一例である。
SFF部22は、VNF部21A−1にパケット「Pkt1」〜「Pkt3」を出力する。VNF部21A−1により、これらのパケットに対して、サービス機能の処理がされる。
サーバ5−1は、サービス機能の処理がされた各パケットをスイッチSW−1に送信する。スイッチSW−1のパケット送信部17は、ポート番号「11」から、パケット「Pkt1」〜「Pkt3」を次段のスイッチSW−2に送信する。
スイッチSW−1のパケット受信部15は、前段のスイッチSWからパケット「Pkt4」を受信する。上述したように、通信フローに含まれる前後のパケットであるパケット「Pkt3」とパケット「Pkt4」とのパケット間隔は、遅延時間より長い。
パケット中継制御部16は、パケット「Pkt4」をサーバ5−1に転送することなく、次段のスイッチSW−2に送信する。通信フローに含まれるパケット「Pkt4」以降のパケットも同様である。
パケット「Pkt4」(および該パケット以降のパケット)のヘッダに含まれるサービスインデックスは「127」である。一方、パケット「Pkt1」〜「Pkt3」のヘッダに含まれるサービスインデックスは「126」である。
よって、パケット中継制御部16は、サーバ5−1に転送しないパケットのサービスインデックスをデクリメントする。その結果、パケット「Pkt4」以降の各パケットのサービスインデックスは「126」になる。
これにより、通信フローに含まれる各パケットは、次段のサーバ5−2のVNF部21A−2に転送される。なお、図9の例において、点線で示す矢印は、通信フローの各パケットのうちサーバ5−1に転送されるパケットを示す。
ここで、実施形態における通信フローの特定について説明する。実施形態では、通信フローは、5タプルで特定されるものとする。5タプルは、送信元アドレスと送信先アドレスと送信元ポートと送信先ポートとプロトコル番号とを含む情報である。5タプルの各アドレスは、Internet Protocol(IP)アドレスである。
通信フローは、5タプル以外で特定されてもよい。送信元アドレスは「SRC IP」、送信先アドレスは「DST IP」、送信元ポートは「SRC PORT」、送信先ポートは「DST PORT」、プロトコル番号は「Protocol」と表記される。
図11は、パケット中継制御部16が、パケットの転送制御を行う際に参照するテーブル(以下、張替えテーブル)の一例を示す。張替えテーブルは、スイッチ記憶部18に記憶される。
張替えテーブルは、フローとサービスパスIDとサービスインデックスとタイムスタンプと遅延時間と次段のSFFアドレスと張替えとの項目を有する。フローは、通信フローを特定する項目である。
張替えテーブルには複数の通信フローに関する情報が格納されることがある。張替えテーブルの1つのエントリには1つの通信フローに関する情報が格納されるため、通信フローが複数の場合、張替えテーブルのエントリは複数になる。
フローは、5タプルで特定される通信フローを示す。サービスパスIDおよびサービスインデックスは、通信フローの各パケットのサービスパスIDおよびサービスインデックスを示す。
タイムスタンプは、時刻情報付与部12によりパケットに付与される時刻情報を示す。遅延時間は、スイッチSW−1がサーバ5−1から受信した制御情報に含まれる遅延時間を示す。次段のSFFアドレスは、次段のサーバ5−2のSFF部22のアドレスを示す。図11の例では、次段のSFFアドレスは、MACアドレスとIPアドレスとで表現される。
張替えは、サービスチェーンの張替えの状態を示す。図11の例では、サービスチェーンが張り替えられたことを示す。張替えは、Service Function Chaining(SFC)張替えとも称される。
図12は、サーバ5からスイッチSWに送信される制御情報の一例を示す。制御情報のうち「Flow Info」は5タプルにより通信フローを特定する情報である。また、制御情報のうち「Latency Info」は遅延時間を示す情報である。
図13は、パケット中継制御部16が行う処理の指標の一例を示す。実施形態のパケット中継制御部16は、図13の例に示す指標に従って、パケットに対する処理を行う。サービスヘッダは、上述したサービスパスヘッダがあるかを示す。
パケット中継制御部16は、受信したパケットにサービスヘッダがある場合、該パケットのサービスインデックスと一致するサービスインデックスが張替えテーブルにあるかを検索する。
一致するサービスインデックスがある場合(ヒットの場合)、パケット中継制御部16は、上述したように、パケット間隔と遅延時間とに基づいて、受信したパケットの転送制御を行う。
一致するサービスインデックスがない場合(ミスの場合)、パケット中継制御部16は、スイッチ記憶部18に記憶されている上述したFDBを検索する。パケット中継制御部16は、張替えテーブルのうち「次段のSFFアドレス」の項目を参照する。
そして、パケット中継制御部16は、受信したパケットのヘッダに含まれるMACアドレスと一致するエントリがあるかを検索する。一致するエントリがあった場合(ヒットの場合)、パケットの送信先が存在する。
パケット中継制御部16は、ヒットしたエントリの出力ポートからパケットが出力されるように制御する。一致するエントリがない場合(ミスの場合)、パケット中継制御部16は、パケットをフラッディング(スイッチSWに接続される各装置にブロードキャスト)する。
サービスヘッダがない場合、パケット中継制御部16は、FDBを検索する。結果がヒットであれば、パケット中継制御部16は、ヒットした出力ポートからパケットが出力されるように制御する。結果がミスであれば、パケット中継制御部16は、受信したパケットをフラッディングする。
図14は、ネットワークコントローラ2が管理するコントローラテーブルの一例を示す。コントローラテーブルは、ネットワークコントローラ2の管理下の各通信フローを管理するテーブルであり、コントローラ記憶部34に記憶される。図14のコントローラテーブルには2つのエントリが含まれる。
コントローラテーブルは、フローとサービスパスIDとサービスインデックスと次段のSFFアドレスと張替えとの項目を含む。コントローラテーブルの各項目は、張替えテーブルの各項目のうち対応する項目と同様である。
<実施形態の処理の流れを示すフローチャート>
図15は、ネットワークコントローラ2が行う処理の一例を示す。入力受け付け部32は、サービスチェーンの張替え依頼を受け付けたかを判定する(ステップS1)。
入力受け付け部32が、該依頼を受け付けた場合(ステップS1でYES)、コントローラ制御部31は、張替え依頼の対象となる通信フローのサービスチェーンに含まれる各サーバ5に対して、サービスチェーンを張り替えるリクエストを送信する制御を行う。
コントローラ通信部33は、該リクエストを送信する(ステップS2)。入力受け付け部32が、該依頼を受け付けない場合(ステップS1でNO)、ステップS2の処理は行われない。
該リクエストを受信した各サーバ5は、サービスチェーンの張替えを行い、サービスチェーンを張り替えた旨の通知をネットワークコントローラ2に送信する。コントローラ制御部31は、該通知を受信したかを判定する(ステップS3)。
該通知を受信した場合(ステップS3でYES)、コントローラ制御部31は、コントローラ記憶部34に記憶されたサービスチェーンに関するコントローラテーブルの情報を更新する(ステップS4)。該通知を受信しない場合(ステップS3でNO)、ステップS4の処理は行われない。
次に、図16および図17を参照して、スイッチSWの処理の流れの一例を説明する。以下、スイッチSW−1の処理の例を説明するが、スイッチSW−1以外の各スイッチSWの処理も同様である。
スイッチ制御部11は、パケット受信部15が前段のスイッチSW−0からパケットを受信したかを判定する(ステップS11)。該パケットを受信しない場合(ステップS11でNO)、処理はステップS11に戻る。
スイッチ制御部11は、受信したパケットが制御情報であるかを判定する(ステップS12)。例えば、スイッチ制御部11は、受信したパケットがBPDUであるかに基づいて、受信したパケットが制御情報であるかを判定してもよい。
上述したように、制御情報には遅延時間の情報が含まれる。受信したパケットが制御情報である場合(ステップS12でYES)、スイッチ制御部11は、スイッチ記憶部18に記憶された張替えテーブルに遅延時間の情報を追加する(ステップS13)。
受信したパケットが制御情報でない場合(ステップS12でNO)、スイッチ制御部11は、受信したパケットがサービスチェーンの張替えを要求するパケットであるかを判定する(ステップS14)。実施形態では、該パケットは、ネットワークコントローラ2から送信される。
受信したパケットがサービスチェーンの張替えを要求するパケットである場合(ステップS14でYES)、スイッチ制御部11は、張替えテーブルに新たにエントリを追加する(ステップS15)。
そして、スイッチ制御部11は、遅延時間を取得するリクエストをサーバ5に送信する制御を行う(ステップS16)。その後、処理は、ステップS11に戻る。
受信したパケットがサービスチェーンの張替えを要求するパケットでない場合(ステップS14でNO)、パケット中継制御部16は、張替えテーブルを検索する(ステップS17)。そして、処理は「A」に移る。
「A」以降の処理について、図17の例を参照して、説明する。張替えテーブルの「フロー」により、サービスチェーンの張替え対象の通信フローが特定される。パケット中継制御部16は、張替えテーブルの「フロー」を検索して、受信したパケットがサービスチェーンの張替え対象のフローのパケットであるかを判定する(ステップS18)。
受信したパケットが張り替え対象のフローのパケットである場合(ステップS18でYES)、パケット中継制御部16は、パケット間隔が遅延時間よりも長いかを判定する(ステップS19)。
パケット間隔が遅延時間よりも長い場合(ステップS19でYES)、受信したパケットはサーバ5に転送されない。パケットがサーバ5に転送されないため、通信効率の低下の抑制やサーバ5に対する負荷の低下が図られる。この場合、パケット間隔は遅延時間より長いため、通信フローに含まれる各パケットの順序は適切に維持される。
この場合、該パケットは、サーバ5に転送されないため、VNF部21によるサービス機能の処理を受けない。このため、パケット中継制御部16は、パケットのヘッダに含まれるサービスインデックスをデクリメントする(ステップS20)。
そして、第1ヘッダ更新部14は、パケットが次段のSFFに送信されるように、該パケットの宛先を変更する(ステップS21)。スイッチ制御部11は、サービスチェーンが張り替えられたことを示す通知をネットワークコントローラ2に送信する制御を行う(ステップS22)。
パケット送信部17は、宛先に応じてパケットを送信する(ステップS23)。ステップS21の処理が行われた場合、パケットの宛先は変更されるため、該パケットは、次段のSFFに宛てた出力ポートから出力され、次段のスイッチSWに送信される。
パケット間隔が遅延時間以下の場合(ステップS19でNO)、受信したパケットが、サーバ5に転送されることはない。次段のスイッチSWに送信されると、通信フローに含まれる各パケットの順序が適正に維持されない可能性があるためである。
ステップS19でNOの場合、パケットの宛先は変更されない。この場合、パケットは、サーバ5に転送される。ステップS18でNOの場合、受信したパケットは、サービスチェーンの張替え対象のフローのパケットではない。
サービスチェーンの張替えが行われないため、通信フローに含まれる各パケットの順序は考慮されなくてもよい。このため、ステップS18でNOの場合、処理は、ステップS23に進み、宛先に応じてパケットが送信される。
ステップS23の処理が行われた後、処理は「B」に移る。図16の例に示されるように、処理は「B」からステップS11に戻る。以上が実施形態におけるスイッチSWの処理である。
次に、図18を参照して、サーバ5の処理の一例について説明する。サーバ5がスイッチSWからパケットを受信しない場合(ステップS31でNO)、処理は次のステップに進まない。
サーバ5がパケットを受信した場合(ステップS31でYES)、SFF部22は、該パケットが制御情報であるかを判定する(ステップS32)。該パケットが制御情報でない場合(ステップS32でNO)、遅延監視部25は、該パケットに時刻情報(タイムスタンプ)を付与する。
これにより、遅延監視部25は、パケットがSFF部22に入力された時刻を認識する。SFF部22は、VNF部21にパケットを中継(出力)する(ステップS34)。VNF部21は、パケットに対して、ファイアーウォール等のサービス機能の処理を実行する(ステップS35)。
VNF部21は、処理が終了した後、パケットをSFFに返信する(ステップS36)。遅延監視部25は、ステップS33でパケットに付与された時刻情報(タイムスタンプ)と現時刻との間の時間を遅延時間として認識する。
遅延監視部25による監視対象のパケットが複数ある場合には、該遅延監視部25は、各パケットの遅延時間を統計処理し、該遅延時間と通信フローを特定する情報(5タプル)とを対応付けて、サーバ記憶部28に記憶する(ステップS37)。
実施形態の場合、遅延監視部25は、各パケットの遅延時間の平均値を、スイッチSWに送信する制御情報に含める遅延時間とする。VNF部21が複数の通信フローの各パケットに対してサービス機能の処理を行う場合、サーバ記憶部28には、通信フローごとの遅延時間が記憶される。
サーバ5は、ステップS33で付与された時刻情報(タイムスタンプ)をパケットから外して、サーバ5のNetwork Interface Card(NIC)に転送する(ステップS38)。これにより、パケットがスイッチに送信される(ステップS39)。
ステップS32でYESの場合、サーバ5が受信したパケットは制御情報のパケットである。この場合、遅延情報通知部26は、該制御情報のうち「Flow Info」に基づいて、通信フローを特定し、該通信フローの遅延時間をサーバ記憶部28から検索する(ステップS40)。
遅延情報通知部26は、遅延時間を含む制御情報のパケットをNICに転送する(ステップS41)。これにより、スイッチSWに制御情報のパケットが送信される。以上が、実施形態におけるサーバ5の処理である。
<応用例1>
次に、応用例1について説明する。図19の例において、サービスチェーンが張り替えられることにより、サーバ5−1がサービスチェーンから除外されるものとし、前段のサーバ5−0はサービスチェーンから除外されないものとする。
図19の例では、前段のスイッチSW−0が受信する通信フローに含まれる各パケットは連続しており、各パケットにおける前後のパケットのパケット間隔は殆どない。そこで、応用例1では、前段のサーバ5−0の間隔調整部27が通信フローに含まれる各パケットのうち何れかのパケットのパケット間隔を調整する。
前段のサーバ5−0はサービスチェーンの除外の対象ではない。従って、前段のスイッチSW−0は、受信した各パケットを前段のサーバ5−0に転送する。サーバ5−0に転送された各パケットは、VNF部21A−0によるサービス機能の処理を受ける。
そして、VNF部21A−0によるサービス機能の処理を受けた各パケットは、SFF部22に出力される。間隔調整部27は、SFF部22に出力された各パケットのうち何れかの前後のパケットのパケット間隔を調整する。
スイッチSW−1は、前段のサーバ5−1のVNF部21による遅延時間を含む制御情報を前段のスイッチSW−0に送信する。例えば、スイッチSW−1は、スイッチ記憶部18に記憶された張替えテーブルの遅延時間を前段のスイッチSW−0に送信する。
前段のスイッチSW−0は、前段のサーバ5−0のSFF部22に遅延時間を含む制御情報を送信する。これにより、前段のサーバ5−0のSFF部22および間隔調整部27は、遅延時間を取得する。
サーバ5−0の間隔調整部27は、通信フローに含まれる各パケットが、SFF部22からVNF部21A−0に出力される際、またはVNF部21A−0からSFF部22に出力される際、各パケットのうち何れかのパケットの間隔調整を行う。
例えば、図19の例の場合、間隔調整部27は、通信フローに含まれるパケット「Pkt4」以降の各パケットを一時的にバッファ部29に記憶する(バッファリングする)。そして、間隔調整部27は、所定時間後にバッファ部29に記憶されたパケットを順次送出する。
上記の所定時間は、少なくとも後段のスイッチSW−1から取得された遅延時間より長いものとする。従って、パケット「Pkt4」と「Pkt3」との間に、後段のサーバ5−1のVNF部21によるサービス機能の処理による遅延時間より長いパケット間隔が形成される。
パケット「Pkt4」がバッファ部29に所定時間、バッファリングされた後に送出されるため、パケット「Pkt4」以降の各パケットも所定時間バッファリングされた後に送出される。これにより、前後のパケットのパケット間隔の調整が行われる。
ここで、応用例1の場合、バッファ部29にパケットがバッファリングされる。バッファ部29は、スイッチSWよりも記憶装置の容量は大きい。また、バッファ部29にバッファリングされたパケットは、所定時間経過後に送出され、バッファ部29から削除される。これにより、バッファ部29に適用される記憶装置の容量は小さくてもよい。
サーバ5−0は、通信フローとサーバ5−1の遅延時間との対応関係をサーバ記憶部28にテーブル形式で記憶する。図20は、該テーブル(遅延情報テーブル)の一例を示す。
図19の例では、間隔調整部27は、パケット「Pkt3」と「Pkt4」とのパケット間隔を調整する例を示すが、間隔調整部27は、通信フローに含まれる任意の前後のパケットにおけるパケット間隔を調整してよい。例えば、間隔調整部27は、パケット「Pkt1」と「Pkt2」とのパケット間隔を調整してもよい。
次に、図21乃至図23のフローチャートを参照して、応用例1の処理の流れについて説明する。図21はスイッチSW−1の処理の流れを示すフローチャートである。該フローチャートにおいて、ステップS13−1以外の処理は、上述した実施形態の処理と同様であるため、説明を省略する。
上述したように、サーバ5−0の間隔調整部27は、次段のVNF部21による遅延時間に基づいて、パケットの間隔調整を行う。サーバ5−1を基準とした場合、該サーバ5−1の遅延情報通知部26は、前段のサーバ5−0のSFF部22に宛てて、遅延時間を含む制御情報を通知する(ステップS13−1)。
実施形態では、遅延情報通知部26は、スイッチ記憶部18に記憶された張替えテーブルを参照して、通信フローに応じた遅延時間の情報を前段のスイッチSW−0に送信し、該スイッチSW−0が前段のサーバ5−0に遅延時間の情報を転送する。
図22は、サーバ5(サーバ5−0)の処理の流れを示すフローチャートである。該フローチャートにおいて、ステップS32−1およびS32−2以外の処理は、上述した実施形態の処理と同様であるため、説明を省略する。
間隔調整部27は、パケット間隔を調整するかを判定する(ステップS32−1)。上述したように、パケット間隔を調整する対象のパケットは通信フローに含まれる前後のパケット間隔でよい。
例えば、間隔調整部27がパケット「Pkt3」と「Pkt4」とのパケット間隔の調整を行う場合、パケット「Pkt4」以降の各パケットがパケット間隔の調整の対象となる。この場合、間隔調整部27は、パケット「Pkt4」以降の各パケットに対して、パケット間隔の調整を行うと判定する。
例えば、通信フローに含まれる各パケットの何れかの前後のパケットのパケット間隔が遅延時間より長い場合、パケット間隔が調整されなくても、通信フローに含まれる各パケットの順序は適正に維持される。この場合、間隔調整部27は、パケット間隔を調整しないと判定してもよい。
また、通信フローに含まれる各パケットについて、全てのパケット間隔が遅延時間以下の場合、間隔調整部27は、パケット間隔を調整すると判定してもよい。パケット間隔が遅延時間より長くなるように間隔調整されることで、通信フローに含まれる各パケットの順序は適正に維持される。
パケット間隔が調整されない場合の処理は、上述した実施形態の処理と同様である。パケット間隔が調整される場合(ステップS32−1でYES)、間隔調整部27は、パケットをバッファ部29にバッファリングする(ステップS32−2)。
間隔調整部27は、所定時間後にバッファ部29に記憶されたパケットを送出する(ステップS32−3)。該所定時間は、遅延時間より長い時間である。送出されたパケットはバッファ部29から削除される。
間隔調整部27は、サーバ記憶部28に記憶された遅延情報テーブルのうち、パケットに対応するフローのエントリをクリアする。その後、処理は「D」に進む。
また、ステップS32の処理において、受信したパケットが制御情報のパケットである場合(ステップS32でYES)、処理は「C」に進む。「C」および「D」以降の処理について、図23のフローチャートを参照して説明する。
サーバ制御部23は、受信した制御情報のパケットが、後段のサーバ5−1(前段のサーバ5−0から見た場合の後段のサーバ5)のSFF部22からの遅延時間の情報であるかを判定する(ステップS32−4)。
受信した制御情報が後段のサーバ5のSFF部22からの遅延時間の情報である場合(ステップS32−4でYES)、サーバ制御部23は、遅延時間を遅延情報テーブルに記憶する(ステップS32−5)。
受信した制御情報が後段のサーバ5のSFF部22からの遅延時間の情報でない場合(ステップS32−4でNO)、ステップS39乃至S40の処理が行われる。
上述したように、バッファ部29にパケットが記憶され、所定時間後に、記憶されたパケットが送出される。その後、処理は「D」からステップS41に進む。つまり、送出されたパケットは、スイッチSW−1に送信される。
上述したように、バッファ部29にバッファリングされた以降の各パケットも、バッファリングされてから所定時間後に送出される。
<応用例2>
次に、応用例2について説明する。図24の例に示されるように、応用例2においても、応用例1と同様、間隔調整部27は、通信フローに含まれる各パケットのうち何れかのパケットをバッファリングすることで、前後のパケットの間隔調整を行う。
間隔調整された前後のパケットのうち、前後のパケットのパケット間隔は、取得された遅延時間より長い。このため、バッファリングされたパケット以降の各パケットは、サービスチェーンから除外されるサーバ5−1に転送されない。
そこで、前段のサーバ5−0の第2ヘッダ更新部24は、バッファリングされたパケット以降の各パケットの宛先を前段のサーバ5−0の2つ先のサーバ5−2に変更する。
これにより、サービスチェーンから除外されるサーバ5−1(該サーバ5−1のVNF部21)にパケットに転送されなくなる。この場合、スイッチSW−1は、遅延時間とパケット間隔とに基づくパケットの転送制御は行わない。
応用例2では、スイッチSW−1が行っていた遅延時間とパケット間隔とに基づくパケットの転送制御を前段のサーバ5−0が行う。この場合でも、通信フローの各パケットの順序を適正に維持することができる。
図25は、応用例2における遅延情報テーブルの一例を示す。該遅延情報テーブルは、サーバ5−0のサーバ記憶部28に記憶される。遅延情報テーブルは、フローとサービスパスIDとサービスインデックスと2つ先のSFFアドレスと間隔調整との項目を含む。
2つ先のSFFアドレスは、サーバ5−0から見て、2つの先のサーバ5−2のSFF部22のアドレスを示す。間隔調整は、上記のパケット間隔の調整が完了したかを示す。
次に、図26および図27のフローチャートを参照して、応用例2の処理の流れを説明する。図26のフローチャートにおける各処理は、図22で説明したフローチャートの各処理と同様であるため、説明を省略する。
ステップS32の処理において、受信したパケットが制御情報のパケットである場合(ステップS32でYES)、処理は「F」に進む。また、ステップS32−3またはステップS38の処理が終了した後、処理は「G」に進む。
図27の例における処理「F」以降の各処理は、図22で説明した各処理と同様である。処理「G」以降の各処理について説明する。
SFF部22は、パケットがサービスチェーンの張替え対象の通信フローのパケットであるかを判定する(ステップS38−1)。ステップS38−1でYESの場合、SFF部22は、パケットのヘッダに含まれるサービスインデックスをデクリメントする(ステップS38−2)。
パケットは、サーバ5−0のVNF部21A−0によるサービス機能の処理を受けたことにより、該パケットのヘッダに含まれるサービスインデックスはデクリメントされる。
さらに、ステップS38−3において、サービスインデックスがデクリメントされることで、サービスインデックスの値は、もともとの値から2つ減る。これにより、パケットの宛先はサーバ5−0から見て2つ先のサーバ5−2のSFF部22に変更される(ステップS38−3)。
サーバ5−0のSFF部22は、サービスチェーンが張り替えられことを、ネットワークコントローラ2に通知する(ステップS38−4)。その後、パケットは、スイッチSW−0に送信される。
ステップS41またはステップS32−5の処理が行われた後、処理は「H」から、図26のステップS31に進む。以上が応用例2の処理である。
<応用例3>
次に、応用例3について説明する。上述した実施形態では、スイッチSWのスイッチ記憶部18には、フローごとの張替えテーブルが記憶される。図28の例に示されるように、フローごとの張替えテーブルは、フローごとに遅延情報が格納される。
スイッチSWのスイッチ記憶部18には、VNF部21ごとの遅延時間が記憶されてもよい。VNF部21ごとの遅延時間は既知であることがあり、この場合、スイッチSWが遅延時間を記憶することで、サーバ5は遅延時間を監視しなくてもよいため、サーバ5の構成を簡略化することができる。
<スイッチのハードウェア構成の一例>
次に、図29の例を参照して、スイッチSWのハードウェア構成の一例を説明する。図29の例に示すように、バス100に対して、プロセッサ111とRandom Access Memory(RAM)112とRead Only Memory(ROM)113と補助記憶装置114と媒体接続部115と通信インタフェース116とが接続されている。
プロセッサ111は任意の処理回路である。プロセッサ111はRAM112に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムが適用されてもよい。ROM113はRAM112に展開されるプログラムを記憶する不揮発性の記憶装置である。
補助記憶装置114は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置114に適用してもよい。媒体接続部115は、可搬型記録媒体119と接続可能に設けられている。
可搬型記録媒体119としては、可搬型の半導体メモリ等が適用されてもよい。この可搬型記録媒体119に実施形態の処理を行うプログラムが記録されていてもよい。
スイッチSWのうち、パケット受信部15、パケット送信部17およびスイッチ記憶部18以外の各部は、与えられたプログラムをプロセッサ111が実行することにより実現されてもよい。
パケット受信部15およびパケット送信部17は、通信インタフェース116により実現されてもよい。通信インタフェース116は上述したNICである。スイッチ記憶部18は、RAM112や補助記憶装置114等により実現されてもよい。
スイッチSWのうち、スイッチ制御部11およびスイッチ記憶部18以外の各部の機能は、例えば、所定の集積回路(Application Specific Integrated Circuit(ASIC))により実現されてもよい。
RAM112、ROM113、補助記憶装置114および可搬型記録媒体119は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
<サーバのハードウェア構成の一例>
次に、図30の例を参照して、サーバ5のハードウェア構成の一例を説明する。図30の例に示すように、バス200に対して、プロセッサ211とRAM212とROM213と補助記憶装置214と媒体接続部215と通信インタフェース216とが接続されている。
プロセッサ211は任意の処理回路である。プロセッサ211はRAM212に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムが適用されてもよい。ROM213はRAM212に展開されるプログラムを記憶する不揮発性の記憶装置である。
補助記憶装置214は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置214に適用してもよい。媒体接続部215は、可搬型記録媒体219と接続可能に設けられている。
可搬型記録媒体219としては、可搬型の半導体メモリや光学式ディスク等が適用されてもよい。この可搬型記録媒体219に実施形態の処理を行うプログラムが記録されていてもよい。
サーバ5のうち、サーバ記憶部28およびバッファ部29以外の各部は、与えられたプログラムをプロセッサ211が実行することにより実現されてもよい。サーバ記憶部28およびバッファ部29は、RAM212や補助記憶装置214等により実現されてもよい。
RAM212、ROM213、補助記憶装置214および可搬型記録媒体219は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
<その他>
上述した実施形態および各応用例では、スイッチSWとサーバ5とは異なる装置として説明したが、スイッチSWとサーバ5とは1つの装置であってもよい。例えば、スイッチSWの機能がソフトウェアで実現される場合、サーバ5がスイッチSWの機能を実行してもよい。
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。以上説明した実施形態および各応用例に関し、さらに以下の付記を開示する。
(付記1)
複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記第1のサービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する、
ことを特徴とするパケット中継方法。
(付記2)
前記前後のパケットの時間間隔が前記遅延時間以下の場合、受信したパケットを前記第1のサービス機能に転送し、前記前後のパケットの時間間隔が前記遅延時間より長い場合、受信したパケットが示す前記第1のサービス機能の次のサービス機能である第2のサービス機能に前記受信したパケットを転送する、
ことを特徴とする付記1記載のパケット中継方法。
(付記3)
前記第1のサービス機能を実行する情報処理装置は、前記第1のサービス機能に転送するか否かを制御する通信制御装置から受信したパケットに対して行われる前記第1のサービス機能による前記遅延時間を計測し、
計測した前記遅延時間を前記通信制御装置に通知する、
ことを特徴とする付記2記載のパケット中継方法。
(付記4)
前記情報処理装置は、計測された複数の前記遅延時間に対して統計処理を行い、統計処理された遅延時間を前記通信制御装置に通知する、
ことを特徴とする付記3記載のパケット中継方法。
(付記5)
前記遅延時間は、前記第1のサービス機能に転送するか否かを制御する通信制御装置に記憶されている、
ことを特徴とする付記1記載のパケット中継方法。
(付記6)
前記パケットは、経由する前記複数のサービス機能の数の情報を含み、
前記パケットが前記第1のサービス機能により処理された場合、および該パケットが該第1のサービス機能に転送されない場合、前記経由する複数のサービス機能の数がデクリメントされる、
ことを特徴とする付記1記載のパケット中継方法。
(付記7)
前記情報処理装置は、
受信したパケットの次の転送先のサービス機能による前記遅延時間を取得し、
取得された前記遅延時間より長くなるように、前記前後のパケットの時間間隔を調整する、
ことを特徴とする付記3記載のパケット中継方法。
(付記8)
前記情報処理装置は、前記時間間隔の調整を行うパケットを、前記取得された前記遅延時間より長い時間バッファリングする、
ことを特徴とする付記7記載のパケット中継方法。
(付記9)
前記情報処理装置は、前記時間間隔が調整された後のパケットが、前記転送経路から除外された前記第1のサービス機能に転送されるように、該パケットの宛先を変更する、
ことを特徴とする付記7記載のパケット中継方法。
(付記10)
前記パケットは、経由する前記サービス機能の数の情報を含み、
前記パケットの宛先が変更される場合、前記経由するサービス機能の数を2つ減らす、
ことを特徴とする付記9記載のパケット中継方法。
(付記11)
コンピュータに、
複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記第1のサービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する、
処理を実行させることを特徴とするパケット中継プログラム。
1 システム
2 ネットワークコントローラ
5 サーバ
11 スイッチ制御部
12 時刻情報付与部
13 パケット間隔検出部
14 第1ヘッダ更新部
15 パケット受信部
16 パケット中継制御部
17 パケット送信部
18 スイッチ記憶部
21 VNF部
22 SFF部
23 サーバ制御部
24 第2ヘッダ更新部
25 遅延監視部
26 遅延情報通知部
27 間隔調整部
28 サーバ記憶部
29 バッファ部
31 コントローラ制御部
32 入力受け付け部
33 コントローラ通信部
34 コントローラ記憶部
111、211 プロセッサ
112、212 RAM
113、213 ROM

Claims (7)

  1. 複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記第1のサービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する、
    ことを特徴とするパケット中継方法。
  2. 前記前後のパケットの時間間隔が前記遅延時間以下の場合、受信したパケットを前記第1のサービス機能に転送し、前記前後のパケットの時間間隔が前記遅延時間より長い場合、受信したパケットが示す前記第1のサービス機能の次のサービス機能である第2のサービス機能に前記受信したパケットを転送する、
    ことを特徴とする請求項1記載のパケット中継方法。
  3. 前記第1のサービス機能を実行する情報処理装置は、前記第1のサービス機能に転送するか否かを制御する通信制御装置から受信したパケットに対して行われる前記第1のサービス機能による前記遅延時間を計測し、
    計測した前記遅延時間を前記通信制御装置に通知する、
    ことを特徴とする請求項2記載のパケット中継方法。
  4. 前記パケットは、経由する前記複数のサービス機能の数の情報を含み、
    前記パケットが前記第1のサービス機能により処理された場合、および該パケットが該第1のサービス機能に転送されない場合、前記経由する複数のサービス機能の数がデクリメントされる、
    ことを特徴とする請求項1乃至3のうち何れか1項に記載のパケット中継方法。
  5. 前記情報処理装置は、
    受信したパケットの次の転送先のサービス機能による前記遅延時間を取得し、
    取得された前記遅延時間より長くなるように、前記前後のパケットの時間間隔を調整する、
    ことを特徴とする請求項3記載のパケット中継方法。
  6. 前記情報処理装置は、前記時間間隔が調整された後のパケットが、前記転送経路から除外された前記第1のサービス機能に転送されるように、該パケットの宛先を変更する、
    ことを特徴とする請求項5記載のパケット中継方法。
  7. コンピュータに、
    複数のパケットの転送経路に含まれる仮想化されたネットワークの複数のサービス機能のうちの第1のサービス機能が前記転送経路から除外される際、前記複数のパケットにおける前後のパケットの時間間隔と前記第1のサービス機能による処理の遅延時間とに基づいて、前記複数のパケットの各パケットのそれぞれについて、前記第1のサービス機能に転送するか否かを制御する、
    処理を実行させることを特徴とするパケット中継プログラム。
JP2016011473A 2016-01-25 2016-01-25 パケット中継方法およびパケット中継プログラム Pending JP2017135449A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016011473A JP2017135449A (ja) 2016-01-25 2016-01-25 パケット中継方法およびパケット中継プログラム
US15/366,012 US10084701B2 (en) 2016-01-25 2016-12-01 Packet relaying method and non-transitory computer-readable recording medium
EP16202164.6A EP3197108B1 (en) 2016-01-25 2016-12-05 Packet relaying method and packet relaying program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016011473A JP2017135449A (ja) 2016-01-25 2016-01-25 パケット中継方法およびパケット中継プログラム

Publications (1)

Publication Number Publication Date
JP2017135449A true JP2017135449A (ja) 2017-08-03

Family

ID=57708286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016011473A Pending JP2017135449A (ja) 2016-01-25 2016-01-25 パケット中継方法およびパケット中継プログラム

Country Status (3)

Country Link
US (1) US10084701B2 (ja)
EP (1) EP3197108B1 (ja)
JP (1) JP2017135449A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166314A1 (ja) * 2019-02-13 2020-08-20 日本電信電話株式会社 通信制御方法
JP2022511749A (ja) * 2018-11-23 2022-02-01 ホアウェイ・テクノロジーズ・カンパニー・リミテッド サービス機能チェイニングネットワークサービス

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10785144B2 (en) * 2016-12-30 2020-09-22 Equinix, Inc. Latency equalization
CN110380965B (zh) * 2018-04-13 2021-05-18 成都华为技术有限公司 用于业务传输的方法和装置
US20200034929A1 (en) * 2018-07-26 2020-01-30 Nasdaq, Inc. In-Order Processing of Transactions
CN110876159B (zh) * 2018-08-30 2022-02-11 华为技术有限公司 一种提高时延确定性的方法及装置
CN112468371B (zh) * 2020-12-01 2022-06-10 武汉绿色网络信息服务有限责任公司 一种确定dpi设备的传输时延信息的方法与设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199530A (ja) * 2010-03-18 2011-10-06 Ntt Communications Kk 伝送装置、伝送路切り替え方法、及びプログラム
WO2015133126A1 (ja) * 2014-03-04 2015-09-11 日本電気株式会社 サーバ、制御装置、管理装置、通信システム、通信方法、制御方法、管理方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058085B2 (en) * 2001-03-14 2006-06-06 Nortel Networks Limited Method and apparatus for transmitting data over a network within a specified time limit
JP2013240017A (ja) 2012-05-17 2013-11-28 Nippon Telegr & Teleph Corp <Ntt> ネットワーク遅延測定装置及びネットワーク遅延測定方法
JP6255701B2 (ja) 2013-04-16 2018-01-10 凸版印刷株式会社 包装体
US9178812B2 (en) 2013-06-05 2015-11-03 Cisco Technology, Inc. Stacking metadata contexts for service chains
US9444675B2 (en) * 2013-06-07 2016-09-13 Cisco Technology, Inc. Determining the operations performed along a service path/service chain
WO2014208538A1 (ja) 2013-06-25 2014-12-31 日本電気株式会社 通信システムと装置と方法とプログラム
JP6039517B2 (ja) 2013-08-21 2016-12-07 日本電信電話株式会社 管理装置、通信システム、管理方法、および、管理プログラム
JP6027953B2 (ja) 2013-08-26 2016-11-16 日本電信電話株式会社 通信ネットワークの経路制御連携システム及び方法
US20150333930A1 (en) 2014-05-15 2015-11-19 Akamai Technologies, Inc. Dynamic service function chaining

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199530A (ja) * 2010-03-18 2011-10-06 Ntt Communications Kk 伝送装置、伝送路切り替え方法、及びプログラム
WO2015133126A1 (ja) * 2014-03-04 2015-09-11 日本電気株式会社 サーバ、制御装置、管理装置、通信システム、通信方法、制御方法、管理方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PING DU, AKIHIRO NAKAO: "RouteLite: One-Hop Path Splicing with Path Migration", 2009 FIRST INTERNATIONAL CONFERENCE ON FUTURE INFORMATION NETWORKS, JPN6019022274, October 2009 (2009-10-01), ISSN: 0004110393 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022511749A (ja) * 2018-11-23 2022-02-01 ホアウェイ・テクノロジーズ・カンパニー・リミテッド サービス機能チェイニングネットワークサービス
JP7195432B2 (ja) 2018-11-23 2022-12-23 ホアウェイ・テクノロジーズ・カンパニー・リミテッド サービス機能チェイニングネットワークサービス
US11616717B2 (en) 2018-11-23 2023-03-28 Huawei Technologies Co., Ltd. Service function chaining network services
WO2020166314A1 (ja) * 2019-02-13 2020-08-20 日本電信電話株式会社 通信制御方法

Also Published As

Publication number Publication date
EP3197108B1 (en) 2018-06-13
EP3197108A1 (en) 2017-07-26
US10084701B2 (en) 2018-09-25
US20170214610A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP2017135449A (ja) パケット中継方法およびパケット中継プログラム
CN111107001B (zh) 网络中分段源路由的方法及存储介质
EP3020168B1 (en) Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters, switch and controller
US20220191133A1 (en) Malleable routing for data packets
US20150207675A1 (en) Path Control System, Control Apparatus, Edge Node, Path Control Method, And Program
US10826823B2 (en) Centralized label-based software defined network
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP2017118438A (ja) パケット送信プログラム、情報処理装置、および、障害検出方法
EP2905932B1 (en) Method for multiple path packet routing
US20110173486A1 (en) Communication apparatus, network, and route control method used therefor
JP6340951B2 (ja) ネットワーク管理装置、ネットワーク管理システム、及びネットワーク管理方法
JP5870995B2 (ja) 通信システム、制御装置、計算機、ノードの制御方法およびプログラム
JP2015228538A (ja) 経路決定装置および転送経路決定方法
CN106576076B (zh) 互联网交换点的路由控制方法
JP5061088B2 (ja) 解析支援装置、解析システムおよびプログラム
US20160094357A1 (en) Control apparatus, computer system, communication control method, and program
JPWO2021084927A5 (ja) 中継装置、車載通信システム、車載通信プログラムおよび車載通信方法
Xu et al. SAFE-ME: scalable and flexible policy enforcement in middlebox networks
JP6148546B2 (ja) パケット転送装置及びプログラム
CN114363236B (zh) 一种基于显式路径的流量控制方法及相关设备
CN115225644B (zh) 一种负载均衡系统和数据包分发方法
JP2016092756A (ja) 制御装置、通信システム、ループ抑止方法及びプログラム
JP6850618B2 (ja) 中継装置および中継方法
JPWO2021084928A5 (ja) 中継装置、車載通信システム、車載通信プログラムおよび車載通信方法
WO2014027687A1 (ja) 通信システム、制御情報記録装置、制御装置、制御情報の記録方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190809

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190809

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190910