(57)【特許請求の範囲】
【請求項１】
パケットを送受信する転送装置において、
パケットの転送経路を示す識別子であって、転送経路の分岐に基づく階層構造を有し、転送経路が分岐する度に、前記階層構造に下層の値を設定する識別子が付与されたパケットを受信する受信部と、
前記受信部が受信したパケットに付与された識別子から、自転送装置が設置された転送経路がメインの転送経路から何回分岐したかに基づいて所定の階層までの値を抽出する抽出部と、
パケットの転送先と、当該パケットに付与される識別子のうち少なくとも前記所定の階層までの値とを対応付けた対応表を参照し、前記抽出部が抽出した値と対応付けられた転送先を特定する特定部と、
前記受信部が受信したパケットを前記特定部が特定した転送先に転送する処理部と
を有することを特徴とする転送装置。
【請求項２】
前記処理部は、前記抽出部が抽出した値に応じて、受信したパケットの破棄、前記識別子の除去、若しくは、前記パケットを元の宛先へ転送する処理のうち少なくともいずれか１つを実行することを特徴とする請求項１に記載の転送装置。
【請求項３】
前記抽出部は、前記転送装置までに前記転送経路が分岐した数に応じた階層までの値を抽出することを特徴とする請求項１または２に記載の転送装置。
【請求項４】
前記受信部が受信したパケットに付与された転送情報であって、パケットが転送される度に更新される転送情報の値が所定の閾値よりも少ないか否かを判定する判定部
を有し、
前記処理部は、前記転送情報の値が所定の閾値よりも少ないと前記判定部が判定した場合は、前記受信部が受信したパケットを転送し、前記転送情報の値が前記所定の閾値になると、前記受信部が受信したパケットに対して所定の処理を行う
ことを特徴とする請求項１〜３のいずれか１つに記載の転送装置。
【請求項５】
前記転送情報の値は、所定の転送経路上で転送される度に第１の値が加算され、所定の転送経路上から分岐した転送経路上で転送される度に第１の値よりも少ない第２の値が加算され、
前記判定部は、前記転送装置が前記パケットを受信するまでに、前記所定の転送経路上において当該パケットを転送した転送装置の数に前記第１の値を積算した値を前記所定の閾値とする
ことを特徴とする請求項４に記載の転送装置。
【請求項６】
前記転送情報の値は、所定の転送経路上で転送される場合は、当該所定の転送経路上において当該パケットを転送した転送装置の数に第１の値を積算した値に更新され、前記所定の転送経路から分岐した転送経路上で転送される場合は、前記第１の値よりも少ない第２の値を加算し、
前記判定部は、前記転送装置が前記パケットを受信するまでに、前記所定の転送経路上において当該パケットを転送した転送装置の数に前記第１の値を積算した値を前記所定の閾値とする
ことを特徴とする請求項４に記載の転送装置。
【請求項７】
パケットを送受信する転送装置が実行する転送方法であって、
パケットの転送経路を示す識別子であって、転送経路の分岐に基づく階層構造を有し、転送経路が分岐する度に、前記階層構造に下層の値を設定する識別子が付与されたパケットを受信する受信工程と、
前記受信工程で受信したパケットに付与された識別子から、自転送装置が設置された転送経路がメインの転送経路から何回分岐したかに基づいて所定の階層までの値を抽出する抽出工程と、
パケットの転送先と、当該パケットに付与される識別子のうち少なくとも前記所定の階層までの値とを対応付けた対応表を参照し、前記抽出工程で抽出した値と対応付けられた転送先を特定する特定工程と、
前記受信工程で受信したパケットを前記特定工程で特定した転送先に転送する処理工程と
を含んだことを特徴とする転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送装置及び転送方法に関する。
【背景技術】
【０００２】
近年、サーバがユーザ端末に対して様々なサービスを提供するサービス提供機能（SF:Service  Function）をクラウド上等に仮想化する技術が知られている。このようなサービス提供機能を仮想化する場合、複数のＳＦ間で柔軟な連携を実現する技術が求められる。このため、ユーザ端末からのパケットをネットワークの入り口で分析し、ユーザ単位若しくは処理の内容ごとに、ＳＦ間でパケットを転送する経路の制御を行う転送システムが検討されている。
【０００３】
このような転送システムの実現手法として、ＳＦＣ（Service  Function  Chaining）やＯｐｅｎ  Ｆｌｏｗ等、ユーザからのパケットをサービス単位、フロー単位で経路制御する技術が知られている。例えば、ＳＦＣでは、パケットにサービスを識別するためのラベルを付与し、ラベルに基づく経路制御を提供する。ラベルはサービス毎に異なるＩＤを持っており、ＳＦ間で送受信されるパケットの転送を行う転送機能部（ＳＦＦ：Service  Function  Forwarder）は、転送経路を識別するラベルのＩＤと、パケットの転送先となるＳＦ及び転送機能部とを対応付けて記憶している。転送機能部は、パケットを受信すると、受信したパケットのラベルが示すＩＤから次の転送先を判定し、パケットを転送する。宛先がＳＦであった場合、ＳＦはサービス処理を実施し、転送機能部へパケットを転送する。上記の動作を繰り替えし、パケットは必要とされる全てのＳＦを経由後、ラベルが外され、元の宛先へ転送される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】”Draft-ietf-sfc-architecture-02”  ［online］、2014  年  9  月  20  日、［2014年  12月  10  日検索］、インターネット（https://tools.ietf.org/html/draft-ietf-sfc-architecture-02）
【非特許文献２】”Open  Flow  Switch  Specification  Version1.4.0”  ［online］、2013  年  10  月  14  日、［2014年  12月  10  日検索］、インターネット（https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、新規サービス機能の追加により転送経路に分岐する経路が生じると、分岐前後で処理を行う転送機能部の設定を全て変更しなければならないという課題があった。
【０００６】
例えば、パケットの転送経路として第１の経路から分岐し、再度合流する第２の経路を追加する場合、転送経路の分岐点となる転送機能部では、第１の経路を介して転送するパケットと第２の経路を介して転送するパケットとに異なるＩＤを持つラベルを付与する。このため、第１の経路と第２の経路とが分岐する前後の同一経路上の転送機能部には、各転送経路から受信したパケットを同一の転送機能部に転送するにも関わらず、各転送経路を示すラベルをそれぞれ記憶させなければならない。
【０００７】
本発明は、上述した従来技術の課題を解決するためになされたものであり、転送経路が追加されても、設定を変更する転送機能部の数を抑えることができる転送装置および転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、転送装置は、パケットの転送経路を示す識別子であって、転送経路の分岐に基づく階層構造を有する識別子が付与されたパケットを受信する受信部と、前記受信部が受信したパケットに付与された識別子のうち、所定の階層までの値を抽出する抽出部と、パケットの転送先と、当該パケットに付与される識別子のうち少なくとも前記所定の階層までの値とを対応付けた対応表を参照し、前記抽出部が抽出した値と対応付けられた転送先を特定する特定部と、前記受信部が受信したパケットを前記特定部が特定した転送先に転送する処理部とを有することを特徴とする。
【０００９】
また、転送方法は、転送装置が実行する転送方法であって、パケットの転送経路を示す識別子であって、転送経路の分岐に基づく階層構造を有する識別子が付与されたパケットを受信する受信工程と、前記受信工程で受信したパケットに付与された識別子のうち、所定の階層までの値を抽出する抽出工程と、パケットの転送先と、当該パケットに付与される識別子のうち少なくとも前記所定の階層までの値とを対応付けた対応表を参照し、前記抽出工程で抽出した値と対応付けられた転送先を特定する特定工程と、前記受信工程で受信したパケットを前記特定工程で特定した転送先に転送する処理工程とを含んだことを特徴とする。
【発明の効果】
【００１０】
本願に開示する特定装置、転送装置および転送方法は、転送経路に分岐が生じても、設定を変更する転送機能部の数を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係るサービス提供ネットワークの概要を示す構成図である。
【図２】図２は、実施形態に係る転送機能部とＳＦとが実行する処理の流れの一例を説明する説明図である。
【図３】図３は、新しい転送経路が追加される際の一例を説明する説明図である。
【図４】図４は、実施形態に係る転送機能部が実行する処理の一例を説明する図である。
【図５】図５は、実施形態に係る識別機能部が有する機能構成の一例を説明する図である。
【図６】図６は、実施形態に係るサービス対応表の一例を示す説明図である。
【図７】図７は、実施形態に係るヘッダの一例を説明する図である。
【図８】図８は、実施形態に係る転送機能部が有する機能構成の一例を示す図である。
【図９】図９は、実施形態に係る宛先対応表に格納される情報の一例を説明する図である。
【図１０】図１０は、実施形態に係る宛先対応表に格納される情報の他の例を説明する図である。
【図１１】図１１は、実施形態に係る次処理対応表に格納される情報の一例を説明する図である。
【図１２】図１２は、実施形態に係る次処理対応表に格納される情報の他の例を説明する図である。
【図１３】図１３は、実施形態に係る転送機能部が転送情報を更新する処理の一例を示す説明図である。
【図１４】図１４は、実施形態に係る識別機能部が実行する処理の流れを示すフローチャートである。
【図１５】図１５は、実施形態に係る転送機能部が実行する処理の流れを示すフローチャートである。
【図１６】図１６は、転送機能部が転送情報を更新する処理の他の例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下の実施の形態では、実施形態に係る転送機能部の構成および処理の流れを説明し、その後、最後に実施形態による効果を説明する。
【００１３】
［実施形態］
以下、本願が開示する転送機能部を有するサービス提供ネットワーク等の実施形態を説明する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。また、以下に示す実施形態及びその変形例は、矛盾しない範囲で適宜組合せてもよい。
【００１４】
（サービス提供ネットワークの構成）
まず、図１を用いて、転送装置の一例である転送機能部を有するサービス提供ネットワーク１の構成を説明する。図１は、実施形態に係るサービス提供ネットワークの概要を示す構成図である。図１に示す例では、サービス提供ネットワーク１は、ユーザ端末２、サーバ装置３、及びクラウドネットワーク１０を有する。
【００１５】
ユーザ端末装置２は、サーバ装置３に対して送信するパケットをクラウドネットワーク１０に送信するサーバ装置であり、例えば、ＰＣ（Personal  Computer）等の情報処理装置である。
【００１６】
サーバ装置３は、クラウドネットワーク１０からパケットを受信すると、パケットに格納された情報に基づいて、各種の処理を実行するサーバ装置である。例えば、サーバ装置３は、受信したパケットに格納された情報に基づき、ユーザ端末２を使用する利用者に対して各種のサービスを提供する。
【００１７】
クラウドネットワーク１０は、仮想化したサービス提供機能を複数のサーバが連携して実現するネットワークである。例えば、クラウドネットワーク１０は、ユーザ端末２からパケットを受信すると、受信したパケットに格納されたデータに応じて、所定の処理を実行し、処理の実行結果を格納したパケットをサーバ装置３へ送信する。
【００１８】
以下、クラウドネットワーク１０の構成について説明する。クラウドネットワーク１０は、識別機能部１１、複数の転送機能部１２ａ〜１２ｅ、ＳＦ＿Ａ１３ａ、ＳＦ＿Ｂ１３ｂ、ＳＦ＿Ｃ１３ｃ、ＳＦ＿Ｄ１３ｄ、ＳＦ＿Ｅ１３ｅを有する。各転送機能部は直接接続されている場合と、ネットワークを介して接続する場合がある。
【００１９】
転送機能部１２ａは、転送機能部１２ｂ〜１２ｅと接続され、転送機能部１２ｂは、転送機能部１２ａ、１２ｃ〜１２ｅと接続され、転送機能部１２ｃは、転送機能部１２ａ、１２ｂ、１２ｅと接続され、転送機能部１２ｄは、識別機能部１１及び転送機能部１２ａ、１２ｂ、１２ｅと接続される。また、転送機能部１２ａは、ＳＦ＿Ａ１３ａ及びＳＦ＿Ｄ１３ｄと接続され、転送機能部１２ｂは、ＳＦ＿Ｂ１３ｂと接続され、転送機能部１２ｃは、ＳＦ＿Ｃ１３ｃ及びサーバ装置３と接続され、転送機能部１２ｅは、ＳＦ＿Ｅ１３ｅと接続される。
【００２０】
なお、以下の説明では、転送機能部１２ａ及びＳＦ＿Ａ１３ａの組をサービスユニット＿Ａ１４ａ、転送機能部１２ｂ及びＳＦ＿Ｂ１３ｂの組をサービスユニット＿Ｂ１４ｂ、転送機能部１２ｃ及びＳＦ＿Ｃ１３ｃの組をサービスユニット＿Ｃ１４ｃ、転送機能部１２ａ及びＳＦ＿Ｄ１３ｄの組をサービスユニット＿Ｄ１４ｄ、転送機能部１２ｅ及びＳＦ＿Ｅ１３ｅの組をサービスユニット＿Ｅ１４ｅと記載する。
【００２１】
また、以下の説明では、転送機能部１２ａ〜１２ｅを総称して転送機能部１２と記載し、ＳＦ＿Ａ１３ａ、ＳＦ＿Ｂ１３ｂ、ＳＦ＿Ｃ１３ｃ、ＳＦ＿Ｄ１３ｄ、ＳＦ＿Ｅ１３ｅを総称してＳＦ１３と記載する。また、以下の説明では、サービスユニット＿Ａ１４ａ、サービスユニット＿Ｂ１４ｂ、サービスユニット＿Ｃ１４ｃ、サービスユニット＿Ｄ１４ｄ、サービスユニット＿Ｅ１４ｅを総称してサービスユニット１４と記載する。
【００２２】
識別機能部１１は、クラウドネットワーク１０のユーザ端末２側に位置するゲートウェイ装置であり、サーバ等の情報処理装置により実現される。また、転送機能部１２は、ユーザ端末２から受信したパケットを随時転送し、サーバ装置３へ出力する転送装置であり、例えば、ＮＰ（Network  Processor）及び／又はＣＰＵ（Central  Processing  Unit）を有するネットワーク装置により実現される。また、ＳＦ１３は、受信したパケットに格納されたデータを用いて各種サービス処理を実行する装置であり、例えば、サーバ装置等の情報処理装置により実現される。
【００２３】
（処理の概要）
以下、図２を用いて、識別機能部１１、転送機能部１２、及びＳＦ１３が実行する処理の流れを説明する。図２は、実施形態に係る転送機能部とＳＦとが実行する処理の流れの一例を説明する説明図である。なお、図２に示す例では、ユーザ端末２から受信したパケットを、ＳＦ＿Ａ１３ａ、及びＳＦ＿Ｂ１３ｂを介した転送経路で転送する処理の一例を記載した。
【００２４】
例えば、図２に示す例では、識別機能部１１は、以下に説明する処理を実行する（ステップＳ１）。具体的には、識別機能部１１は、ユーザ端末２からパケットを受信すると、受信したパケットを解析し、パケットの種別を識別する。ここで、パケットの種別とは、パケットに格納されたデータの処理フローやパケットの送信元ユーザ等である。また、識別機能部１１は、識別したパケットの種別に応じて経路を決定し、図２中（Ａ）に示すように、決定した経路を示すラベル（経路ＩＤ）と、ＳＦ＿Ａ１３ａに接続される転送機能部１２ａ宛てのＩＰヘッダを付与してトンネル化する。そして、識別機能部１１は、トンネル化したパケットを転送機能部１２ａへ送信する。
【００２５】
一方、転送機能部１２ａは、トンネル化したパケットを受信すると、受信したパケットのラベルを参照し、参照したラベルが示す転送経路でＳＦ＿Ａ１３ａが処理を実行する場合は、受信したパケットをＳＦ＿Ａ１３ａに送信する（ステップＳ２）。この場合、ＳＦ＿Ａ１３ａは、受信したパケットを用いて処理を実行し、処理結果を受信したパケットに格納して転送機能部１２ａに返送する（ステップＳ３）。そして、転送機能部１２ａは、ＳＦ＿Ａ１３ａから受信したパケットのラベルを参照し、ラベルが示す転送経路でＳＦ＿Ａ１３ａの次の宛先である転送機能部１２ｂを特定し、ＩＰヘッダをパケットに付与して送信する（ステップＳ４）。
【００２６】
また、転送機能部１２ｂは、パケットを受信すると、受信したパケットのラベルを参照し、参照したラベルが示す転送経路でＳＦ＿Ｂ１３ｂが処理を実行する場合は、受信したパケットをＳＦ＿Ｂ１３ｂに送信する（ステップＳ５）。この場合、ＳＦ＿Ｂ１３ｂは、受信したパケットを用いて処理を実行し、処理結果を受信したパケットに格納して転送機能部１２ｂに返送する（ステップＳ６）。そして、転送機能部１２ｂは、ＳＦ＿Ｂ１３ｂから受信したパケットのラベルを参照し、ラベルが示す転送経路でＳＦ＿Ｂ１３ｂの次に処理を実行するＳＦ＿Ｃ１３ｃを特定し、特定したＳＦ＿Ｃ１３ｃと接続された転送機能部１２ｃのＩＰヘッダをパケットに付与して送信する（ステップＳ７）。
【００２７】
なお、転送機能部１２ｃ〜１２ｅは、転送機能部１２ａ、１２ｂと同様の処理を実行し、ＳＦ＿Ｃ１３ｃ〜ＳＦ＿Ｅ１３ｅは、ＳＦ＿Ａ１３ａ、及びＳＦ＿Ｂ１３ｂと同様の処理を実行する。このため、クラウドネットワーク１０は、ユーザ端末２から受信したパケットを用いたＳＦＣを実現できる。
【００２８】
（経路追加の一例）
ここで、新規のＳＦを経由する新しい転送経路を追加する場合がある。例えば、図３は、新しい転送経路が追加される際の一例を説明する説明図である。図３に示す例では、サービスユニット＿Ａ１４ａ、サービスユニット＿Ｂ１４ｂ、サービスユニット＿Ｃ１４ｃ及びサービスユニット＿Ｄ１４ｄを経由するメインの転送経路に経路ＩＤ「１２３」が付与されている。
【００２９】
ここで、サービスユニット＿Ｂ１４ｂの後にサービスユニット＿Ｅ１４ｅが追加され、サービスユニット＿Ａ１４aとサービスユニット＿Ｂ１４ｂとサービスユニット＿Ｅ１４ｅとサービスユニット＿Ｃ１４ｃを経由する経路が加わると、そのような経路として新たに経路ＩＤ「１２４」を追加で設定する必要がある。このような場合に、従来技術では、分岐点となるサービスユニット＿Ｂ１４ｂの前後のサービスユニット＿Ａ１４ａ、サービスユニットＣ１４ｃ及びサービスユニットＤ１４ｄの設定に経路ＩＤ「１２４」を追加する必要がある。
【００３０】
（転送機能部１２が実行する処理）
そこで、転送機能部１２は、以下の処理を実行する。例えば、図４は、実施形態に係る転送機能部が実行する処理の一例を説明する図である。図４に示すように、各転送機能部１２は、経路ＩＤを転送経路の分岐に基づいた階層構造にし、転送経路が分岐する度に、経路ＩＤに下層の値を設定する。そして、各転送機能部１２は、受信したパケットの経路ＩＤを参照する場合は、自装置が設置された転送経路がメインの転送経路から何回分岐した転送経路かに基づく階層の値まで参照し、参照した値と対応付けられた転送先にパケットを転送する。
【００３１】
例えば、識別機能部は識別結果に基づき、パケットに対して経路ＩＤ「１２３−００」または「１２３−０１」を付与し、サービスユニット＿Ａ１４ａへ転送する。サービスユニット＿Ａ１４ａは、受信したパケットに付与された経路ＩＤのうち、先頭３桁である「１２３」を参照する（ステップＳ１０）。そして、サービスユニット＿Ａ１４ａは、参照した経路ＩＤ「１２３」と対応付けられた転送先サービスユニット＿Ｂ１４ｂに受信したパケットを転送する。
【００３２】
一方、サービスユニット＿Ｂ１４ｂは、受信したパケットに付与された経路ＩＤのうち、先頭３桁である「１２３」を参照する（ステップＳ１１）。そして、先頭３桁では転送先が一意に決まらなかった場合、続く２桁を参照し、宛先を判定し、サービスユニット＿Ｃ１４ｃに転送する。
【００３３】
ここで、サービスユニット＿Ｅ１４ｅは、メインの転送経路から１回分岐した転送経路に設置されている。そこで、サービスユニット＿Ｅ１４ｅは、経路ＩＤのうち最上位の層と次の層までの値を参照する。具体例を挙げると、サービスユニット＿Ｅ１４ｅは、受信したパケットに付与された経路ＩＤのうち、先頭６桁である「１２３−０１」を参照する（ステップＳ１２）。そして、サービスユニット＿Ｅ１４ｅは、参照した経路ＩＤ「１２３−０１」と対応付けられた転送先サービスユニット＿Ｃ１４ｃにパケットを転送する。
【００３４】
この結果、サービスユニット＿Ｃ１４ｃは、経路ＩＤ「１２３−００」が付与されたパケットと、経路ＩＤ「１２３−０１」が付与されたパケットとを受信することとなる。ここで、サブの転送経路を介して転送されるパケットには、最上位の層にメインの転送経路を示す値が格納され、下位の層にサブの転送経路を示す値が格納された経路ＩＤが付与される。このような経路ＩＤが付与されている場合、パケットの転送経路によって経路ＩＤの層の数が増えることはあっても、各層に格納される値が変更されることがない。このため、メインの転送経路上に設置されたサービスユニット＿Ｃ１４ｃは、経路ＩＤのうち最上位の層に格納された値のみを用いてパケットの転送を行う場合は、設定変更を行う必要がない。
【００３５】
例えば、サービスユニット＿Ｃ１４ｃは、受信したパケットに付与された経路ＩＤのうち、先頭３桁の値「１２３」を参照する（ステップＳ１３）。そして、サービスユニット＿Ｃ１４ｃは、参照した経路ＩＤ「１２３」と対応付けられた転送先サービスユニット＿Ｄ１４ｄにパケットを転送する。また、サービスユニット＿Ｄ１４ｄも同様に、受信したパケットに付与された経路ＩＤのうち、先頭３桁の値「１２３」を参照し（ステップＳ１４）、参照した値と対応付けられた転送先へとパケットを転送する。
【００３６】
このように転送機能部１２は、転送経路の分岐に基づく階層構造を有する経路ＩＤが付されたパケットを受信する。また、転送機能部１２は、パケットに付された経路ＩＤのうち、所定の階層までの値を抽出する。そして、転送機能部１２は、パケットの転送先と、受信したパケットに付された経路ＩＤのうち所定の階層までの値とが対応付けられた宛先対応表を参照し、抽出した経路ＩＤの値と対応付けられた転送先を特定する。その後、転送機能部１２は、受信したパケットを特定した転送先に転送する。
【００３７】
このため、転送機能部１２は、転送経路が追加された場合にも、転送機能部１２の設定変更を不要とすることができる。例えば、転送機能部１２は、経路ＩＤ「１２３」が示す経路上に配置された転送機能部の設定を変更せずとも、経路ＩＤ「１２４」が示す経路の追加を行うことができる。また、転送機能部１２は、設定変更を不要とするので、設定変更に伴って送信される制御信号の増加を抑制することができる。
【００３８】
（識別機能部１１が有する機能構成の一例）
以下、上述した処理を実現する識別機能部１１及び転送機能部１２が有する機能構成の一例について説明する。なお、以下の説明では、識別機能部１１及び転送機能部１２がＩＰ（Internet  Protocol）アドレスを用いて、パケットを転送する例について説明するが、実施の形態は、これに限定されるものではなく、例えば、ＭＰＬＳ（Multi  Protocol  Label  Switching）のラベルやＭＡＣ（Media  Access  Control）アドレスを用いてパケットを転送してもよい。すなわち、識別機能部１１及び転送機能部１２は、下位のネットワークの仕様に寄らず、任意の仕様のネットワーク上でパケットの転送を行ってよい。
【００３９】
まず、識別機能部１１が有する機能構成の一例を説明する。例えば、図５は、実施形態に係る識別機能部が有する機能構成の一例を説明する図である。図５に示す例では、識別機能部１１は、制御部２０及び記憶部２１を有する。制御部２０は、通信部２３、分析部２４、特定部２５を有する。また、記憶部２１は、サービス対応表２２を記憶する。
【００４０】
サービス対応表２２は、ユーザ端末２から受信したパケットに係るサービスの内容と、受信したパケットを転送する転送経路の経路ＩＤとが対応付けて記憶される。例えば、図６は、実施形態に係るサービス対応表の一例を示す説明図である。図６に示すように、サービス対応表２２には、サービスと、経路ＩＤと、宛先とが対応付けて格納される。
【００４１】
ここで、サービスとは、パケットに係るサービスの内容であり、例えば、「サービスＡ」、「サービスＢ」、「サービスＣ」、「サービスＤ」といったサービスの内容を識別するための情報が格納される。経路ＩＤには、対応付けられたサービスに係るパケットの転送経路を示す経路ＩＤが格納され、例えば、「１００」、「１２３」、「１２４」、「１２５」といったように、分岐に基づく階層構造を有する値が格納される。宛先は、パケットの転送先を示す情報が格納され、例えば、転送先のＩＰアドレスである「１９２．１６８．１．１」〜「１９２．１６８．１．４」等が格納される。
【００４２】
なお、サービス対応表２２には、図６に示す情報以外の情報が格納されうることは、言うまでもない。例えば、下位のネットワークの仕様がＭＰＬＳである場合は、宛先には、転送先となる転送機能部に付与されたラベルが格納される。すなわち、各転送機能部１２間には、リーチャビリティがあるものとし、各転送機能部１２を識別する情報であれば、任意の情報を宛先に採用することができる。
【００４３】
図５に戻り、説明を続ける。通信部２３はユーザ端末２及び転送機能部１２等とパケットの送受信を行う。例えば、通信部２３は、ユーザ端末２からパケットを受信すると、受信したパケットを分析部２４に出力する。また、通信部２３は、特定部２５からパケットを受付けると、受付けたパケットを宛先が示す転送機能部１２に送信する。
【００４４】
分析部２４は、ユーザ端末２から受信したパケットを分析する。例えば、分析部２４は、ユーザ端末２から受信したパケットの送信元や、パケットに格納されたデータを分析し、受信したパケットがどのようなサービスに係るパケットであるかを判定する。
【００４５】
特定部２５は、分析部２４による判定結果に応じて、ユーザ端末２から受信したパケットを転送する転送経路の経路ＩＤを特定する。例えば、特定部２５は、ユーザ端末２から受信したパケットが「サービスＡ」に係るパケットである場合は、サービス対応表２２を参照し、「サービスＡ」と対応付けられた経路ＩＤ「１００」と宛先「１９２．１６８．１．１」を特定する。そして、特定部２５は、ユーザ端末２から受信したパケットに経路ＩＤ「１００」を含むラベルを付し、宛先「１９２．１８８．１．１」を含むヘッダを付すことで、ユーザ端末２から受信したパケットをトンネル化する。
【００４６】
ここで、転送機能部１２の設定ミス等により、パケットが同一の転送経路内を何度もループする場合がある。このようなループ状態が生じた場合、パケットがループする経路内の転送機能部１２に多大な付加がかかり、重大な障害が生じる場合がある。そこで、特定部２５は、転送経路内でのループを検出するための転送情報をヘッダに付与する。
【００４７】
例えば、図７は、実施形態に係るヘッダの一例を説明する図である。例えば、特定部２５は、図７に示すように、「ヘッダの基本情報」、「経路情報」、「転送情報」、「オプション情報」といった情報が格納されるヘッダをパケットに付与する。
【００４８】
例えば、「ヘッダの基本情報」には、ヘッダの長さや、続くパケットのプロトコル情報などが格納され、「オプション情報」には、ネットワーク上で用いられる各種のメタデータが格納される。また、特定部２５は、ヘッダ内の「経路情報」に、特定した経路ＩＤを格納する。また、特定部２５は、図７中（Ａ）に示すように、ヘッダ内の「転送情報」に、経路上の何ホップ目かを示すための所定の値を格納する。各転送機能部１２は、パケットを受信する度に転送情報の値をデクリメント又はインクリメントする。そして、転送機能部１２は、転送情報の値が所定の条件を満たした際には、全てのＳＦを経由したと判断してヘッダを除去したり、ループが発生したと判断してパケットを破棄したりする。なお、以下の説明では、転送情報の値を「Ｉｎ」と記載する場合がある。
【００４９】
（転送機能部１２が有する機能構成の一例）
次に、図８を用いて、転送機能部１２が有する機能構成の一例を説明する。図８は、実施形態に係る転送機能部が有する機能構成の一例を示す図である。図８に示すように、転送機能部１２は、制御部３０、記憶部３１を有する。また、記憶部３１は、宛先対応表３２、次処理対応表３３を記憶する。また、制御部３０は、通信部３４、抽出部３５、特定部３６、判定部３７、処理部３８を有する。
【００５０】
宛先対応表３２は、パケットの転送先を示す情報と、パケットに付与される経路ＩＤのうち所定の階層までの値とが対応付けて格納される。例えば、図９は、実施形態に係る宛先対応表に格納される情報の一例を説明する図である。なお、図９に示す例では、メインの転送経路に設置された転送機能部１２ａが記憶する宛先対応表３２ａに格納された情報の一例を記載した。
【００５１】
例えば、図９に示すように、宛先対応表３２ａには、パケットに格納される経路ＩＤのうち最上位の階層までの値が、パケットの宛先を示す情報（例えば、ＩＰアドレス）と対応付けて格納される。例えば、図９に示す例では、宛先対応表３２ａには、経路ＩＤ「１００」と宛先「１９２．１６８．１．１１」とが対応付けて格納され、経路ＩＤ「１２３」と宛先「１９２．１６８．１．１２」とが対応付けて格納され、経路ＩＤ「１２４」と宛先「１９２．１６８．１．１３」とが対応付けて格納されている。
【００５２】
一方、図１０は、実施形態に係る宛先対応表に格納される情報の他の例を説明する図である。なお、図１０に示す例では、サブの転送経路上に設置された転送機能部１２ｅが記憶する宛先対応表３２ｅに格納された情報の一例を記載した。
【００５３】
図１０に示すように、宛先対応表３２ｅには、パケットに格納される経路ＩＤのうち最上位の階層と次の階層までの値とが、パケットの転送先と対応付けて格納される。すなわち、転送機能部１２ｅは、メインの転送経路から１回分岐したサブの転送経路上に設置されているので、経路ＩＤのうち、最上位の階層と次の階層までの値とを転送先と対応付けて記憶する。
【００５４】
例えば、図１０に示す例では、宛先対応表３２ｅには、経路ＩＤ「１００−０１」と宛先「１９２．１６８．１．１５」とが対応付けて格納され、経路ＩＤ「１２３−０１」と宛先「１９２．１６８．１．１７」とが対応付けて格納され、経路ＩＤ「１２４−０１」と宛先「１９２．１６８．１．１８」とが対応付けて格納されている。
【００５５】
なお、宛先対応表３２には、図９、図１０に示す情報以外の情報が格納されうることは、言うまでもない。例えば、サブの転送経路から分岐した転送経路上に設置された転送機能部１２の宛先対応表３２には、例えば、「１００−０１−０１」といった３階層の経路ＩＤが格納されることとなる。また、受信したパケットをＳＦ１３へ転送する場合、宛先対応表３２には、同一の経路ＩＤに、ＳＦ１３の宛先と、次にパケットの転送先となる転送機能部１２の宛先とが対応付けて格納されることとなる。
【００５６】
図８に戻り、説明を続ける。次処理対応表３３は、転送情報の値に応じて実行される処理の内容が経路ＩＤごとに格納されている。例えば、図１１は、実施形態に係る次処理対応表に格納される情報の一例を説明する図である。なお、図１１に示す例では、メインの転送経路に設置された転送機能部１２ａが記憶する次処理対応表３３ａに格納された情報の一例を記載した。
【００５７】
例えば、図１１に示すように、次処理対応表３３には、経路ＩＤと、パケットが経路上の何ホップ目にいるかを判定するための判定式と、判定式を満たす際に実行する処理とが対応付けて格納されている。例えば、図１１に示す例では、経路ＩＤ「１００」、「１２３」、及び「１２４」には、判定式「Ｉｎ＜１０」及び処理「ＳＦ＿Ａへ転送」が対応付けられている。ここで、判定式「Ｉｎ＜１０」は、転送情報の値が１０よりも少ないか否かを判定する旨を示し、処理「ＳＦ＿Ａへ転送」は、判定式を満たす場合に、ＳＦ＿Ａへ転送する旨を示す。
【００５８】
一方、図１２は、実施形態に係る次処理対応表に格納される情報の他の例を説明する図である。なお、図１２に示す例では、サブの転送経路上に設置された転送機能部１２ｅが記憶する次処理対応表３３ｅに格納された情報の一例を記載した。
【００５９】
図１２に示すように、次処理対応表３３ｅには、経路ＩＤ「１００−０１」、「１２３−０１」、及び「１２４−０１」と、判定式「Ｉｎ＜３１」及び処理「ＳＦ＿Ｅへ転送」とが対応付けて格納されている。
【００６０】
なお、次処理対応表３３には、図１１、図１２に示す情報以外の情報が格納されうることは、言うまでもない。例えば、次処理対応表３３には、「転送機能部１２ｂへ転送」や、「パケットを破棄」等、受信したパケットに対して行われる各種の処理が格納されていればよい。なお、転送経路上でループが存在しない場合は、転送機能部１２は、次処理対応表３３を用いた処理を行わずともよい。
【００６１】
すなわち、メインの転送経路上に設置されたサービスユニット１４は、転送情報の値に「１０」を加算して出力し、サブの転送経路上に設置されたサービスユニット１４は、転送情報の値に「１」を加算して出力する。このように、サービスユニット１４は、メインの転送経路上に設置された場合と、サブの転送経路上に設置された場合とで、異なる位の値を転送情報に加算する。このため、転送機能部１２は、経路ＩＤと併せて、転送情報の値も階層化する。
【００６２】
なお、転送情報はＳＦもしくはそれに準ずる機能で加算（または減算）される。加算（または減算）する値はメイン経路とサブ経路で異なり、その値はメイン経路の方がサブ経路のものよりも大きいことを基本とする。ここで、転送情報の更新は、サービスユニット１４のいずれかで行われればよく、例えば、転送機能部１２が実行してもよい。
【００６３】
ここで、転送情報の値を階層化する処理の効果について説明する。例えば、１つの転送機能部１２には、複数のＳＦ１３が接続される場合がある。具体例を説明すると、図１に示す例では、転送機能部１２ａは、ＳＦ＿Ａ１３ａ及びＳＦ＿Ｄ１３ｄが接続されているため、パケットがＳＦ＿Ａ１３ａ及びＳＦ＿Ｄ１３ｄを経由する場合、同一のパケットを複数回経由することとなる。しかしながら、各転送機能部１２は、経路ＩＤと転送先とを１対１で記憶するため、同一の転送機能部１２を複数回経由させることができない。
【００６４】
また、転送機能部１２が設置された位置に係らず、転送情報の値に一律で同じ数値を加算すると、転送経路を分岐させた際に、分岐よりも後ろの転送機能部が記憶する判定式を全て変更しなくてはならない。そこで、ＳＦ１３は、自装置が設置された転送経路がメインの転送経路であるか、サブの転送経路であるかに応じて、異なる値を転送情報の値に加算する。より具体的には、ＳＦ１３は、メインの転送経路である場合に、サブの転送経路である場合よりも大きい値を加算する。例えば、ＳＦ１３は、自装置が設置された転送経路がメインの転送経路である場合は、転送情報に「１０」を加算し、自装置が設置された転送経路がサブの転送経路である場合は、転送情報に「１」を加算する。
【００６５】
図８にもどり、説明を続ける。通信部３４は、他の転送機能部１２やＳＦ１３とパケットの送受信を行う。例えば、通信部３４は、転送経路の分岐に基づく階層構造を有する経路ＩＤが付与されたパケットを他の転送機能部１２から受信する。
【００６６】
抽出部３５は、受信したパケットのラベルから転送情報の値と、経路ＩＤのうち所定の階層までの値を抽出する。具体的には、抽出部３５は、転送機能部１２が設置された転送経路がメインの転送岐路から分岐した数に応じた階層までの値を、経路ＩＤから抽出する。
【００６７】
例えば、抽出部３５は、転送機能部１２がメインの転送経路に設置されている場合、経路ＩＤのうち最上位の層に格納された値（例えば、先頭３桁の値）を抽出する。一方、抽出部３５は、転送機能部１２がサブの転送経路に設置されている場合、経路ＩＤのうち最上位の層および次の層に格納された値まで（例えば、先頭６桁の値）を抽出する。
【００６８】
特定部３６は、パケットを受信したポート、抽出部３５が抽出した経路ＩＤ、及び転送情報の値等から、受信したパケットを自装置と接続されたＳＦ１３に転送するか、受信したパケットを他の転送機能部１２に転送するか、若しくはパケットの破棄等、受信したパケットに対する各種処理の特定を行う。
【００６９】
例えば、特定部３６は、抽出部３５が経路ＩＤから抽出した値と完全一致する経路ＩＤを宛先対応表３２から検索する。そして、特定部３６は、検索の結果、抽出部３５が経路ＩＤから抽出した値と完全一致する経路ＩＤが宛先対応表３２に格納されている場合は、その経路ＩＤと対応付けられた宛先を全て取得し、処理部３８に出力する。一方、特定部３６は、検索の結果、抽出部３５が経路ＩＤから抽出した値と完全一致する経路ＩＤが宛先対応表３２に格納されていない場合は、受信したパケットを破棄する。
【００７０】
判定部３７は、抽出部３５が抽出した転送情報の値が次処理対応表３３に格納された条件式を満たすか否かを判定する。例えば、判定部３７は、抽出部３５が抽出した経路ＩＤと対応付けられた判定式を次処理対応表３３から取得する。そして、判定部３７は、抽出部３５が抽出した転送情報の値が取得した判定式を満たすか否かを判定する。例えば、判定部３７は、取得した判定式が「Ｉｎ＜１０」である場合は、抽出部３５が抽出した転送情報の値が「１０」よりも小さいか否かを判定する。そして、判定部３７は、判定結果を処理部３８に出力する。
【００７１】
処理部３８は、受信したパケットから抽出された経路ＩＤに応じて、受信したパケットの破棄、ヘッダの除去、若しくは、パケットを元の宛先（サーバ装置３）へ転送する処理のうち少なくともいずれか１つを実行する。例えば、処理部３８は、受信したパケットを受付け、特定部３６から宛先を受付ける。また、処理部３８は、判定部３７から判定結果を受付ける。そして、処理部３８は、抽出部３５が抽出した転送情報の値が次処理対応表３３に格納された条件式を満たすと判定部３７が判定した場合は、かかる条件式と対応付けられた処理に従い、パケットを転送する。
【００７２】
例えば、処理部３８は、条件式と対応付けられた処理が「ＳＦ＿Ａへ転送」である場合は、特定部３６が特定した宛先から「ＳＦ＿Ａ」の宛先を特定し、特定した宛先を示すヘッダをパケットに付与することで、パケットを「ＳＦ＿Ａ」へと転送する。一方、処理部３８は、条件式と対応付けられた処理が「転送機能部１２ｂへ転送」である場合は、特定部３６が特定した宛先から「転送機能部１２ｂ」の宛先を特定し、転送機能部１２ｂの宛先を示すヘッダをパケットに付与し、パケットを転送する。ここで、宛先の特定方法については、任意の従来技術が適用できる。
【００７３】
すなわち、処理部３６は、経路ＩＤと対応付けられた転送先や、ＳＦ等にパケットを転送する。また、処理部３８は、パケットを元の宛先に転送するよう特定部３６から指示された場合は、経路ＩＤ等が格納されたヘッダを外し、トンネル化する前のパケットの宛先、すなわち、サーバ装置３に受信したパケットを転送する。
【００７４】
一方、処理部３８は、抽出部３５が抽出した転送情報の値が次処理対応表３３に格納された全ての条件式を満たさないと判定部３７が判定した場合は、ループが発生したと判定し、パケットを破棄する。なお、処理部３８は、ループが発生した場合は、受信したパケットからヘッダを外し、トンネル化する前のパケットの宛先へパケットを転送してもよい。他にも、処理部３８は、ループが発生した場合に、予め定められた任意の操作を実行するよう設定されてもよい。また、処理部３８は、上述した処理以外にも、任意の処理が条件式と対応付けられている場合は、係る処理を実行すればよい。
【００７５】
（転送機能部１２が実行する処理の他の例）
ここで、転送機能部１２は、以下の処理を実行することで、パケットの転送を行ってもよい。例えば、転送機能部１２は、経路ＩＤと、判定式と、処理とを対応付けた対応表、すなわち、宛先対応表３２と次処理対応表３３とを合わせた対応表を記憶する。かかる場合、特定部３６は、抽出部３５が抽出した経路ＩＤと対応付けられた処理を特定する。そして、判定部３７は、特定部が特定した各処理と対応付けられた判定式を、受信したパケットの転送情報が満たすか否かを判定する。そして、処理部３８は、判定部３７により転送情報が判定式を満たすと判定された処理に従い、パケットの転送や破棄等を実行する。
【００７６】
すなわち、転送機能部１２は、階層化した経路ＩＤや、階層化した経路情報に基づいて、パケットの処理を決定するのであれば、任意の処理により、実現してよい。
【００７７】
（転送情報を更新する処理の一例）
次に、図１３を用いて、転送機能部１２が転送情報を更新する処理の一例について説明する。図１３は、実施形態に係る転送機能部が転送情報を更新する処理の一例を示す説明図である。なお、図１３に示す例では、各サービスユニット１４が転送情報を更新する処理の一例について記載した。また、以下の説明では、メインの転送経路上に設置されたサービスユニット１４は、転送情報に「１０」を加算し、サブの転送経路上に設置されたサービスユニット１４は、転送情報に「１」を加算するものとする。
【００７８】
例えば、識別機能部１１は、転送情報の初期値として「０」を付与したパケットを出力する。係る場合、サービスユニット＿Ａ１４ａは、受信したパケットに付与された転送情報が「Ｉｎ＜１０」を満たすか否かを判定する（ステップＳ２０）。そして、サービスユニット＿Ａ１４ａは、受信したパケットに付与された転送情報が「Ｉｎ＜１０」を満たす場合は、サービスユニット＿Ａ１４ａがメインの転送経路上に設置されているため、転送情報の値に「１０」を加算してサービスユニット＿Ｂ１４ｂに転送する（ステップＳ２１）。
【００７９】
一方、サービスユニット＿Ｂ１４ｂは、受信したパケットに付与された転送情報が「Ｉｎ＜２０」を満たすか否かを判定する（ステップＳ２２）。そして、サービスユニット＿Ｂ１４ｂは、受信したパケットに付与された転送情報が「Ｉｎ＜２０」を満たす場合は、サービスユニット＿Ｂ１４ｂがメインの転送経路上に設置されているため、転送情報の値に「１０」を加算し、サービスユニット＿Ｃ１４ｃ又はサービスユニット＿Ｅ１４ｅに転送する（ステップＳ２３、Ｓ２４）。
【００８０】
また、サービスユニット＿Ｅ１４ｅは、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たすか否かを判定する（ステップＳ２５）。そして、サービスユニット＿Ｅ１４ｅは、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たす場合は、サービスユニット＿Ｅ１４ｅがサブの転送経路上に設置されているため、転送情報の値に「１」を加算し、サービスユニット＿Ｃ１４ｃに転送する（ステップＳ２６）。
【００８１】
一方、サービスユニット＿Ｃ１４ｃは、パケットの転送経路がメインの転送経路であるかサブの転送経路であるかに係らず、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たすか否かを判定する（ステップＳ２７）。そして、サービスユニット＿Ｃ１４ｃは、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たす場合は、サービスユニット＿Ｃ１４ｃがメインの転送経路上に設置されているため、転送情報の値に「１０」を加算してサービスユニット＿Ｄ１４ｄに転送する（ステップＳ２８）。
【００８２】
また、サービスユニット＿Ｄ１４ｄは、受信したパケットに付与された転送情報が「３０≦Ｉｎ＜４０」を満たすか否かを判定する（ステップＳ２９）。そして、サービスユニット＿Ｄ１４ｄは、受信したパケットに付与された転送情報が「３０≦Ｉｎ＜４０」を満たす場合は、サービスユニット＿Ｄ１４ｄがメインの転送経路上に設置されているため、転送情報の値に「１０」を加算し、パケットを転送する（ステップＳ３０）。
【００８３】
このように、メインの転送経路上に設置されたサービスユニット１４は、メインの転送経路上に設置されている場合は、転送情報に「１０」を加算し、サブの転送経路上に設定されている場合は、転送情報に「１」を加算する。そして、転送機能部１２は、パケットをメインの転送経路上で転送した転送機能部の数に「１０」を積算した値よりも、受信したパケットに付与された転送情報の値が少ないか否かを判定する。
【００８４】
このように、サービスユニット１４は、メインの転送経路上とサブの転送経路上とで異なる位の値、すなわち階層化された値を転送情報に加算することとなる。この結果、転送機能部１２は、分岐よりも後の転送機能部１２の判定式を変更せずとも、ループが発生したか否かを判定することができる。
【００８５】
なお、図１３に示す例では、メインの転送経路上のサービスユニット１４は、値「１０」を転送情報に加算し、サブの転送経路上のサービスユニット１４は、値「１」を転送情報に加算した。しかしながら、実施形態は、これに限定されるものではない。例えば、メインの転送経路上の転送機能部が転送情報に加算する値を「Ｘ」とし、サブの転送経路上の転送機能部が転送情報に加算する値を「ｘ」とした場合、「ｘ」の値は「Ｘ」よりも小さい値であればよい。この場合、メインの転送経路上でｎ番目にパケットを転送する転送機能部は、受信したパケットに付与された転送情報の値が「ｎＸ」以下となるか否かを判定すればよい。
【００８６】
ここで、「Ｘ」の値及び「ｘ」の値として、１０進法表記した場合に異なる位の値を設定した場合には、転送情報の値が階層化されるため、判定式に含まれる閾値の値の設定を容易にすることができる。また、「Ｘ」の値及び「ｘ」の値として、バイナリ表記した際に異なる位の値を設定した場合は、転送情報のうち所定のビットの値のみを読み出せば、ループが生じたか否かを判定することができる。
【００８７】
（識別機能部１１による処理の流れ）
次に、図１４を用いて、実施形態に係る識別機能部１１による処理の流れを説明する。図１４は、実施形態に係る識別機能部が実行する処理の流れを示すフローチャートである。図１４に示すように、識別機能部１１は、ユーザ端末２から受信したパケットを解析し、パケットに関するサービスを特定する（ステップＳ１０１）。また、識別機能部１１は、特定したサービスに応じた経路ＩＤと転送情報とをヘッダに付与する（ステップＳ１０２）。また、識別機能部１１は、特定したサービスに応じた宛先を設定する（ステップＳ１０３）。そして、識別機能部１１は、受信したパケットを出力し（ステップＳ１０４）、処理を終了する。
【００８８】
（転送機能部１２による処理の流れ）
次に、図１５を用いて、実施形態に係る転送機能部１２による処理の流れを説明する。図１５は、実施形態に係る転送機能部が実行する処理の流れを示すフローチャートである。例えば、転送機能部１２は、受信したパケットのヘッダから転送情報と経路ＩＤとを抽出する（ステップＳ２０１）。また、転送機能部１２は、経路ＩＤのうち、先頭から所定の階層までの値を抽出する（ステップＳ２０２）。具体的には、転送機能部１２は、自装置が設置された転送経路がメインの転送経路から何回分岐したかに応じた階層までの値を抽出する。
【００８９】
そして、転送機能部１２は、抽出した値と対応付けられた宛先が宛先対応表３２に登録されているか否かを判定し（ステップＳ２０３）、登録されている場合は（ステップＳ２０３：Ｙｅｓ）、抽出した値と対応付けられた宛先をパケットの宛先に設定する（ステップＳ２０４）。また、転送機能部１２は、抽出した転送情報の値が、経路ＩＤから抽出した値と対応受けられた判定式を満たすか否かを判定し（ステップＳ２０５）。そして、転送機能部１２は、抽出した転送情報の値が判定式を満たすと判定した場合は（ステップＳ２０５：Ｙｅｓ）、パケットを転送し（ステップＳ２０６）、処理を終了する。
【００９０】
一方、転送機能部１２は、抽出した値と対応付けられた宛先が宛先対応表３２に登録されていない場合は（ステップＳ２０３：Ｎｏ）、所定の宛先をパケットの宛先に設定し（ステップＳ２０７）、ステップＳ２０５を実行する。また、転送機能部１２は、抽出した転送情報の値が判定式を満たさない場合は（ステップＳ２０５：Ｎｏ）、パケットを破棄し（ステップＳ２０８）、処理を終了する。
【００９１】
なお、上述した説明では、抽出した転送情報の値が判定式を満たすか否かに応じて、パケットの転送またはパケットの破棄を実行する処理の例について説明したが、実施の形態は、これに限定されるものではない。例えば、転送機能部１２は、複数の条件を設定し、抽出した転送情報の値がいずれの条件を満たすかに応じて、パケットの転送、パケットの破棄、ヘッダの削除、受信したパケットの元の転送先への転送、その他任意の処理を実行してもよい。また、転送機能部１２は、転送情報の値と経路ＩＤの値とに対し、複数の条件をそれぞれに設定し、各値がどの条件を満たすかに応じて、各種処理を実行してもよい。
【００９２】
（実施形態の効果）
上述したように、転送機能部１２は、パケットの転送経路を示す経路ＩＤであって、転送経路の分岐に基づく階層構造を有する経路ＩＤが付与されたパケットを受信する。また、転送機能部１２は、受信したパケットに付与された経路ＩＤのうち、所定の階層までの値を抽出する。そして、転送機能部１２は、パケットの転送先と、受信したパケットに付与される経路ＩＤのうち少なくとも所定の階層までの値とを対応付けた宛先対応表３２を参照し、抽出した値と対応付けられた転送先を特定する。その後、転送機能部１２は、受信したパケットを特定した転送先に転送する。
【００９３】
このため、転送機能部１２は、転送経路が追加された場合にも、追加された経路における転送機能部１２の設定変更を不要とすることができる。例えば、図４に示す場合、分岐より後のサービスユニット＿Ｃ１４ｃやサービスユニット＿Ｄ１４ｄは、受信したパケットに付与された経路ＩＤが「１２３−００」であっても「１２３−０１」であっても、経路ＩＤの最上位の値「１２３」のみを抽出し、抽出した値と対応付けられた転送先にパケットを転送すればよい。このため、転送機能部１２は、サービスユニット＿Ｃ１４ｃやサービスユニット＿Ｄ１４ｄが記憶する経路ＩＤの変更を不要とすることができる。
【００９４】
また、転送機能部１２は、抽出した値と対応付けられた転送先を特定できなかった場合は、経路ＩＤ等が格納されたヘッダを外し、受信したパケットの元の転送先へパケットを転送する。このため、転送機能部１２は、転送先の特定に失敗した場合にも、パケットの転送を継続することができる。
【００９５】
また、転送機能部１２は、受信した経路ＩＤから、自装置までに転送経路が分岐した数に応じた階層までの値を抽出する。このため、転送機能部１２は、転送経路が分岐した数によらず、パケットの転送経路を特定するために必要な値を経路ＩＤから抽出することができる。
【００９６】
また、転送機能部１２は、パケットに付与された転送情報の値を、自装置までに転送経路が分岐した数に応じた値を加算した値に更新する。また、転送機能部１２は、パケットに付与された転送情報の値が所定の閾値よりも少ないか否かを判定する。そして、転送機能部１２は、転送情報の値が所定の閾値よりも少ないと判定した場合は、受信したパケットを転送し、転送情報の値が所定の閾値以上となると判定した場合は、受信部が受信したパケットを破棄する。このため、転送機能部１２は、分岐よりも後の転送機能部１２が記憶する判定式の変更を不要とすることができる。
【００９７】
また、転送機能部１２は、メインの転送経路上に設置されている場合は、受信したパケットに付与された転送情報の値に「Ｘ」を加算し、メインの転送経路上から分岐したサブの転送経路上に設置されている場合は、受信したパケットに付与された転送情報の値に「ｘ」を加算する。そして、転送機能部１２は、パケットを受信するまでに、メインの転送経路上において受信したパケットを転送した転送装置の数に「Ｘ」を積算した値を所定の閾値とする。このため、転送機能部１２は、分岐よりも後の転送機能部１２が記憶する判定式の変更を不要とすることができる。
【００９８】
（他の実施の形態）
これまで実施形態について説明したが、開示する発明は上述した実施の形態以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では他の実施の形態について説明する。
【００９９】
（転送情報を更新する処理のバリエーション）
上述した転送機能部１２は、設置された転送経路がメインの転送経路から分岐した数に応じて異なる値を転送情報の値に加算した。しかしながら、実施形態は、これに限定されるものではない。例えば、転送機能部１２は、メインの転送経路上に設置された場合は、転送情報の値を、メインの転送経路上でパケットを転送した転送機能部１２の数ｎに特定の値「Ｘ」を積算した値に更新してもよい。
【０１００】
例えば、図１６は、転送機能部が転送情報を更新する処理の他の例を示す説明図である。なお、図１６に示す例では、特定の値「Ｘ」として「１０」を採用した。例えば、識別機能部１１は、転送情報の初期値として「０」を付与したパケットを出力する。係る場合、サービスユニット＿Ａ１４ａは、受信したパケットに付与された転送情報が「Ｉｎ＜１０」を満たすか否かを判定する（ステップＳ４０）。そして、サービスユニット＿Ａ１４ａは、受信したパケットに付与された転送情報が「Ｉｎ＜１０」を満たす場合は、それまでにパケットを転送したサービスユニット１４の数「ｎ＝１」と「Ｘ＝１０」とを積算した値「１０」に転送情報の値を変更し、パケットをサービスユニット＿Ｂ１４ｂに転送する（ステップＳ４１）。
【０１０１】
一方、サービスユニット＿Ｂ１４ｂは、受信したパケットに付与された転送情報が「Ｉｎ＜２０」を満たすか否かを判定する（ステップＳ４２）。そして、サービスユニット＿Ｂ１４ｂは、受信したパケットに付与された転送情報が「Ｉｎ＜２０」を満たす場合は、サービスユニット＿Ｂ１４ｂがメインの転送経路上に設置されているため、それまでにパケットを転送したサービスユニット１４の数「ｎ＝２」と「Ｘ＝１０」とを積算した値「２０」に転送情報の値を変更し、転送情報の値を変更したパケットを、サービスユニット＿Ｃ１４ｃ又はサービスユニット＿ｅ１４ｅに転送する（ステップＳ４３、Ｓ４４）。
【０１０２】
ここで、サービスユニット＿Ｅ１４ｅは、受信したパケットに付与された転送情報が「Ｉｎ＝２０」を満たすか否かを判定する（ステップＳ４５）。そして、サービスユニット＿Ｅ１４ｅは、受信したパケットに付与された転送情報が「Ｉｎ＝２０」を満たす場合は、サービスユニット＿Ｅ１４ｅがサブの転送経路上に設置されているため、転送情報の値に「１」を加算し、サービスユニット＿Ｃ１４ｃに転送する（ステップＳ４６）。
【０１０３】
一方、サービスユニット＿Ｃ１４ｃは、パケットの転送経路がメインの転送経路であるかサブの転送経路であるかに係らず、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たすか否かを判定する（ステップＳ４７、Ｓ４８）。また、サービスユニット＿Ｃ１４ｃは、受信したパケットに付与された転送情報が「Ｉｎ＜３０」を満たす場合は、サービスユニット＿Ｃ１４ｃがメインの転送経路上に設置されているため、それまでにメインの転送経路上でパケットを転送したサービスユニット１４の数「ｎ＝３」と「Ｘ＝１０」とを積算した値「３０」に転送情報の値を変更する。そして、サービスユニット＿Ｃ１４ｃは、転送情報の値を変更したパケットを、サービスユニット＿Ｄ１４ｄに転送する（ステップＳ４９）。
【０１０４】
また、サービスユニット＿Ｄ１４ｄは、受信したパケットに付与された転送情報が「Ｉｎ＜４０」を満たすか否かを判定する（ステップＳ５０）。そして、サービスユニット＿Ｄ１４ｄは、受信したパケットに付与された転送情報が「Ｉｎ＜４０」を満たす場合は、サービスユニット＿Ｄ１４ｄがメインの転送経路上に設置されているため、それまでにメインの転送経路上でパケットを転送したサービスユニット１４の数「ｎ＝４」と「Ｘ＝１０」とを積算した値「４０」に転送情報の値を変更する。そして、サービスユニット＿Ｄ１４ｄは、転送情報の値を変更したパケットを転送する（ステップＳ５１）。
【０１０５】
このように、サービスユニット１４は、メインの転送経路上に設置されている場合は、受信したパケットに付与された転送情報の値を、メインの転送経路上においてパケットを転送した転送機能部の数「ｎ」に特定の値「Ｘ」を積算した値に更新する。また、サービスユニット１４は、メインの転送経路から分岐したサブの転送経路上に設定されている場合は、受信したパケットに付与された転送情報の値に、特定の値「Ｘ」よりも少ない値「ｘ」を加算する。そして、転送機能部１２は、メインの転送経路上においてパケットを転送した転送装置の数「ｎ」に特定の値「Ｘ」を積算した値よりも転送情報の値が少ないか否かを判定する。
【０１０６】
このため、転送機能部１２は、分岐よりも後ろの転送機能部が記憶する判定式の変更を不要にできる。また、図１３に示した方式では、サブの転送経路に追加可能なサービスユニット１４の数が「Ｘ−ｘ」個までとなるが、図１６に示した方式では、制約を解消することができる。ただし、図１６に示した方式では、サブの転送経路とメインの転送経路とが合流する度に、サブの転送経路において更新された転送情報の値が置き換わるので、サブの転送経路における転送内容を示す情報が失われる。
【０１０７】
（デクリメントについて）
上述した転送機能部１２は、転送情報の値に「Ｘ」又は「ｘ」の値を加算した。しかしながら、実施形態は、これに限定されるものではない。すなわち、転送機能部１２は、転送情報の値から「Ｘ」又は「ｘ」の値を減算（デクリメント）してもよい。例えば、図１３に示す転送経路において、識別機能部１１は、転送情報の値として「５０」を付与する。このような場合、サービスユニット＿Ａ１４ａは、転送情報の値が「６０」よりも少ないか否かを判定し、転送情報の値が「６０」よりも少ないと判定した場合は、転送情報の値「５０」から「１０」を減算して転送する。また、サービスユニット＿Ｂ１４ｂは、転送情報の値が「５０」よりも少ないか否かを判定し、転送情報の値が「５０」よりも少ないと判定した場合は、転送情報の値「４０」から「１０」を減算して転送する。
【０１０８】
また、サービスユニット＿Ｅ１４ｅは、転送情報の値が「４０」よりも少ないか否かを判定し、転送情報の値が「４０」よりも少ないと判定した場合は、転送情報の値「３０」から「１」を減算して転送する。そして、サービスユニットＣ＿１４ｃは、転送情報の値が「３０」以下となるか否かを判定し、転送情報の値が「３０」以下となると判定した場合は、転送情報の値「３０」又は「２９」から「１０」を減算して転送する。
【０１０９】
このように、転送機能部１２は、転送情報の値をデクリメントする場合であっても、メインの転送経路と、サブの転送経路とで異なる値をデクリメントすればよい。このような処理を実行することで、転送機能部１２は、分岐よりも後ろの転送機能部１２が記憶する判定式の変更を不要としつつ、ループを検出することができる。
【０１１０】
（適用範囲について）
上述した実施の形態では、転送機能部１２は、ＳＦＣにおけるＳＦＦとしてパケットの転送を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、転送機能部１２は、ＶＸＬＡＮ（Virtual  eXtensible  Local  Area  Network）等、任意のネットワーク上でパケットの転送を行ってよい。すなわち、転送機能部１２は、例えば、共通ドメインや細分化ドメインなどが追加されることで、転送経路が追加された場合にも、階層化された経路ＩＤや転送情報を用いることで、設定変更を行う転送機能部の数を削減することができる。
【０１１１】
これまでいくつかの実施の形態を説明したが、本願が開示する技術はこれらの実施の形態に限定されるものではない。すなわち、これらの実施の形態は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【０１１２】
例えば、各装置の分散・統合の具体的形態（例えば、図８の形態）は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、通信部３４と処理部３８とを一つの部として統合してもよく、転送機能部１２を制御部３０と記憶部３１とに分離してもよい。
【０１１３】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。
【０１１４】
また、宛先対応表３２、次処理対応表３３は、転送機能部１２とネットワーク経由で接続する他の記憶装置が記憶してもよい。また、制御部３０が有する各部３４〜３９は、それぞれ別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上記した制御部３０の機能を実現するようにしてもよい。
【０１１５】
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１１６】
１  サービス提供ネットワーク
２  ユーザ端末
３  サーバ装置
１０  クラウドネットワーク
１１  識別機能部
１２  転送機能部
１３  ＳＦ
１４  サービスユニット
２０、３０  制御部
２１、３１  記憶部
２２  サービス対応表
２３、３４  通信部
２４  分析部
２５  特定部
３２  宛先対応表
３３  次処理対応表
３４  通信部
３５  抽出部
３６  特定部
３７  判定部
３８  処理部
【図１】
0006367732.tif 000002
【図２】
0006367732.tif 000003
【図３】
0006367732.tif 000004
【図４】
0006367732.tif 000005
【図５】
0006367732.tif 000006
【図６】
0006367732.tif 000007
【図７】
0006367732.tif 000008
【図８】
0006367732.tif 000009
【図９】
0006367732.tif 000010
【図１０】
0006367732.tif 000011
【図１１】
0006367732.tif 000012
【図１２】
0006367732.tif 000013
【図１３】
0006367732.tif 000014
【図１４】
0006367732.tif 000015
【図１５】
0006367732.tif 000016
【図１６】
0006367732.tif 000017