(57)【要約】【課題】通信経路の障害を検出しやすくする。【解決手段】  パケット送信プログラムは、情報処理装置で実行される。情報処理装置は、送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値をパケットに含まれる情報から算出する。情報処理装置は、パケットが宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、第１の値と、検出パケットを送信するたびに変更される値との演算により、第２の値を求める。さらに、情報処理装置は、検出パケットに第２の値を含む外部ヘッダを付加し、パケットが検出パケットではない場合、パケットに第１の値を含む外部ヘッダを付加する。情報処理装置は、外部ヘッダを付加したパケットを宛先装置に向けて送信する。【選択図】図３
2017118438.tif 000002
【特許請求の範囲】
【請求項１】
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を求めると共に、前記検出パケットに前記第２の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第１の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する
処理を情報処理装置に行わせることを特徴とするパケット送信プログラム。
【請求項２】
前記検出パケットを複製することにより、第１のパケットと第２のパケットを生成し、
前記第１のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第３の値との演算で得られる値に設定し、
前記第２のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第４の値との演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする請求項１に記載のパケット送信プログラム。
【請求項３】
前記検出パケットの複製回数を用いて、前記検出パケットに対する応答パケットの受信数の予測数を求め、
前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの１つを、前記入力元に出力する
処理を前記情報処理装置に行わせることを特徴とする請求項２に記載のパケット送信プログラム。
【請求項４】
前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが１つ以上経由する確率を用いて、前記検出パケットの複製回数を決定する
処理を前記情報処理装置に行わせることを特徴とする請求項２または３に記載のパケット送信プログラム。
【請求項５】
前記第１の値を、前記検出パケットに付加する外部ヘッダ中の送信元ポート番号として計算し、
前記第１のパケットに付加される外部ヘッダの送信元ポート番号を、前記第３の値と前記第１の値の演算で得られる値に設定し、
前記第２のパケットに付加される外部ヘッダの送信元ポート番号を、前記第４の値と前記第１の値の演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする請求項２〜４のいずれか１項に記載のパケット送信プログラム。
【請求項６】
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から計算するとともに、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を計算する計算部と、
前記検出パケットに前記第２の値を含む外部ヘッダを付加するとともに、前記送信対象のパケットのうちで前記検出パケットではないパケットに前記第１の値を含む外部ヘッダを付加する付加部と、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する送信部
を備えることを特徴とする情報処理装置。
【請求項７】
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を求めると共に、前記検出パケットに前記第２の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第１の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信し、
前記検出パケットに対する応答パケットが得られるかを判定することにより前記障害を検出する
処理を情報処理装置が行うことを特徴とする障害検出方法。
【請求項８】
前記情報処理装置を含むネットワーク中の装置と通信可能な管理装置が、
前記情報処理装置から前記宛先装置に至る経路の候補を決定し、
前記情報処理装置、前記宛先装置、前記情報処理装置と前記宛先装置の間で送受信されるパケットを転送する転送装置の各々から、前記検出パケットに外部ヘッダが付加されたパケットの通過状況を取得し、
前記経路の候補の各々について、当該経路の候補に含まれる転送装置から取得した前記通過状況を用いて、当該経路の候補を介して、前記検出パケットに外部ヘッダが付加されたパケットが前記宛先装置に到達したかを判定することにより、障害の発生を検出する
ことを特徴とする請求項７に記載の障害検出方法。
【請求項９】
前記通過状況として通知される情報には、前記検出パケットの外部ヘッダに前記第２の値として設定された値が含まれており、
第１の検出パケットの外部ヘッダには、前記第２の値として、前記第１の値と前記検出パケットを送信するたびに変更される値として選択された第３の値との演算で得られる値が設定され、かつ、第２の検出パケットの外部ヘッダには、前記第２の値として、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第４の値との演算で得られる値が設定された場合、
前記管理装置は、
前記第１の値と前記第３の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第１の検出パケットが通過したと判定するとともに、前記第１の値と前記第４の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第２の検出パケットが通過したと判定する
ことを特徴とする請求項８に記載の障害検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路の障害の検出に関する。
【背景技術】
【０００２】
パケットのカプセル化により、仮想ネットワークを既存の物理ネットワーク上に配備するための技術として、ＶＸＬＡＮ（Virtual Extensible Local Area Network）が使用されることがある（例えば、非特許文献１等）。
【０００３】
図１は、カプセル化を用いた通信の例を説明する図である。図１のケースＣ１は、ノード２ａとノード２ｂとの間の通信がＴＥＰ（tunnel end point）５を介して行われる場合の例を示している。ＴＥＰ５ａは、ノード２ａが動作している装置と同じ装置中かノード２ａが動作している装置の近傍に配置される。一方、ＴＥＰ５ｂは、ノード２ｂが動作している装置と同じ装置中かノード２ｂが動作している装置の近傍に配置される。さらに、ノード２ａからノード２ｂに至る経路中で、ＴＥＰ５ａとＴＥＰ５ｂの間にはネットワーク１５が位置しているとする。この状態で、ノード２ａがパケットＰ１をノード２ｂに向けて送信したとする。パケットＰ１の宛先アドレスはノード２ｂのアドレスであり、パケットＰ１の送信元アドレスはノード２ａのアドレスである。パケットＰ１は、ノード２ａからＴＥＰ５ａに転送される。
【０００４】
ＴＥＰ５ａは、予め、ノード２ｂ宛のパケットをＴＥＰ５ｂに転送することを記憶している。ＴＥＰ５ａは、パケットＰ１を受信すると、ＴＥＰ５ｂにパケットを転送するための外部ヘッダ（Ｏｕｔｅｒ  Ｈｅａｄｅｒ）をパケットＰ１に付加することにより、パケットＰ２に変換する。図１の例では、外部ヘッダの宛先アドレスはＴＥＰ５ｂのアドレスであり、送信元アドレスはＴＥＰ５ａのアドレスである。パケットＰ２は、ＴＥＰ５ｂ宛のパケットとしてネットワーク１５を介して転送される。
【０００５】
ＴＥＰ５ｂは、パケットＰ２を受信すると、外部ヘッダを除去することにより、パケットＰ２をパケットＰ１に変換する。ＴＥＰ５ｂは、パケットＰ１をノード２ｂに転送するので、ノード２ａから送信されたパケットがノード２ｂに到達する。
【０００６】
ところで、冗長経路の確保や通信速度の確保のために、装置間の通信に複数の経路が使用されることがある。ケースＣ１では、ネットワーク１５中の経路は図示していないが、カプセル化を伴う通信で使用される経路も複数の経路によって冗長化されていても良い。ケースＣ２は、カプセル化を伴う通信で使用される経路が冗長化されている場合の例を説明している。ケースＣ２において、ＴＥＰ５ａはサーバ２５ａ中に備えられており、ＴＥＰ５ｂはサーバ２５ｂ中に含まれているとする。また、サーバ２５ａにはノード２ａとして動作する仮想マシンが収容され、サーバ２５ｂにはノード２ｂとして動作する仮想マシンが収容されているとする。ケースＣ２に示すようにサーバ２５ａとサーバ２５ｂの通信経路として、スイッチ２０ａ、スイッチ２０ｃ、スイッチ２０ｄを介する経路Ｒ１と、スイッチ２０ａ、スイッチ２０ｂ、スイッチ２０ｄを介する経路Ｒ２が用いられているとする。この場合、ＴＥＰ５ａからＴＥＰ５ｂに至る経路に経路Ｒ１と経路Ｒ２のいずれを使用するかは、カプセル化されたパケットの外部ヘッダの中の値を用いて決定される。例えば、経路の決定には、外部ヘッダ中のＭＡＣアドレス、ＶＬＡＮ  ＩＤ、ＩＰ（Internet Protocol）アドレス、ポート番号などが使用される。これらの情報の設定方法について、図２を参照しながら説明する。
【０００７】
図２は、カプセル化されたパケットの例を説明する図である。以下、図１に図示したパケットＰ１のように、外部ヘッダが付加される前のパケットのヘッダを「内部ヘッダ」と記載する。すなわち、カプセル化前のパケットは、内部ヘッダとペイロードを含む。図２はＶＸＬＡＮが用いられるシステムでカプセル化されたパケットの例である。図２のパケットのうち、Ｅｔｈｅｒヘッダ、ＩＰヘッダ、ＵＤＰ（User Datagram Protocol）ヘッダ、ＶＸＬＡＮヘッダは、外部ヘッダに含まれている。Ｅｔｈｅｒヘッダには、宛先ＭＡＣ（Media Access Control）アドレス（ＤＡ）、送信元ＭＡＣアドレス（ＳＡ）、ＶＬＡＮ  ＩＤが含まれる。ＩＰヘッダには、宛先ＩＰアドレス（ＤｓｔＩＰ）、送信元ＩＰアドレス（ＳｒｃＩＰ）、プロトコル情報が含まれる。なお、プロトコル情報は、トランスポート層のプロトコルの種類であり、図２の例では、ＵＤＰを表わす値に設定されている。ＵＤＰヘッダには、宛先ポート番号（ＤｓｔＰｏｒｔ）と送信元ポート番号（ＳｒｃＰｏｒｔ）が含まれる。なお、図２は一例であり、トランスポートレイヤのプロトコルとしてＴＣＰ（Transmission Control Protocol）が使用されても良い。
【０００８】
ここで、ＴＥＰ５ａは、内部ヘッダで指定されている最終宛先にパケットを送信するためにＴＥＰ５ｂにパケットを送信するので、ＥｔｈｅｒヘッダとＩＰヘッダの宛先のアドレスはＴＥＰ５ｂに割り当てられたアドレスに設定される。宛先ポートは、宛先のＴＥＰ５ｂでノード２ｂ宛てのパケットの処理に使用されるポート番号に設定される。一方、送信元ポート番号は、内部ヘッダの情報のハッシュ値に設定される。
【０００９】
スイッチ２０での経路の決定には、外部ヘッダの送信元ポート番号が使用されるので、図２に示すように、送信元ポート番号をパケットの内部ヘッダに応じて変更することにより、パケットの転送経路が複数ある場合の負荷分散が行われる。
【００１０】
関連する技術として、ユーザ網からプロバイダ網へ転送されるパケットのフロー情報を登録し、プロバイダ網からユーザ網へ転送されるパケットの情報を用いて登録された各フローの疎通状態を監視するエッジルータが提案されている（例えば、特許文献１等）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−８６８８９号公報
【非特許文献】
【００１２】
【非特許文献１】“Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks”、[online]、２０１４年８月、M. Mahalingam et. al.、［平成２７年１１月１１日検索］、インターネット、<https://tools.ietf.org/html/rfc7348>
【発明の概要】
【発明が解決しようとする課題】
【００１３】
通信装置からその装置の通信先の装置に至る経路での障害の検出を行うために検出パケットを送信することがあるが、検出パケットとデータパケットでは、ポート番号が異なる。このため、カプセル化が行われる通信経路が冗長化されていると、検出パケットの転送に使用される経路とデータパケットの転送に使用される経路が異なることがある。この場合、検出パケットを用いても、データパケットの通信に使用される経路での障害の有無を正しく判定することは困難である。なお、背景技術ではＶＸＬＡＮを用いるシステムを例として説明したが、ＶＸＬＡＮが用いられない場合でも、カプセル化を伴う通信システムでは同様の問題がある。また、関連する技術として記載した技術を用いても、同様の問題が発生する。
【００１４】
本発明は、１つの側面では、通信経路の障害を検出しやすくすることを目的とする。
【課題を解決するための手段】
【００１５】
ある１つの態様にかかるパケット送信プログラムは、情報処理装置で実行される。情報処理装置は、送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から算出する。情報処理装置は、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を求める。さらに、情報処理装置は、前記検出パケットに前記第２の値を含む外部ヘッダを付加し、前記パケットが前記検出パケットではない場合、前記パケットに前記第１の値を含む外部ヘッダを付加する。情報処理装置は、前記外部ヘッダを付加したパケットを宛先装置に向けて送信する。
【発明の効果】
【００１６】
通信経路の障害を検出しやすくなる。
【図面の簡単な説明】
【００１７】
【図１】カプセル化を用いた通信の例を説明する図である。
【図２】カプセル化されたパケットの例を説明する図である。
【図３】実施形態にかかる通信方法の例を説明する図である。
【図４】通信装置の構成の例を説明する図である。
【図５】照合情報の例を説明する図である。
【図６】通信装置の処理の例を説明するフローチャートである。
【図７】カプセル化されたパケットの例を説明する図である。
【図８】ハードウェア構成の例を説明する図である。
【図９】ＴＥＰの構成の例を説明する図である。
【図１０】記憶部が保持する情報の例を説明する図である。
【図１１】第２の実施形態にかかる通信方法の例を説明する図である。
【図１２】第２の通信装置の処理の例を説明するフローチャートである。
【図１３】第２の通信装置の処理の例を説明するフローチャートである。
【図１４】複製回数とカバー率の対応の例を説明する図である。
【図１５】通信システムの例を説明する図である。
【図１６】ＴＥＰの構成の例を説明する図である。
【図１７】転送装置の構成の例を説明する図である。
【図１８】管理装置の構成の例を説明する図である。
【図１９】トポロジ情報の例を説明する図である。
【図２０】アドレス情報の例を説明する図である。
【図２１】ヘッダ情報記録部が保持する情報の例を説明する図である。
【図２２】制御パケット中の情報の例を説明する図である。
【図２３】管理装置の処理の例を説明するフローチャートである。
【図２４】記録部が保持する情報の例を説明する図である。
【発明を実施するための形態】
【００１８】
図３は、実施形態にかかる通信方法の例を説明する図である。図３の例では、通信装置３０ａ中の仮想マシンα（ＶＭα）から通信装置３０ｂ中の仮想マシンβ（ＶＭβ）までの通信経路として、経路Ｒ１１と経路Ｒ１２が使用されているとする。経路Ｒ１１は、スイッチ２０ａ、スイッチ２０ｃ、スイッチ２０ｄを経由する。経路Ｒ１２は、スイッチ２０ａ、スイッチ２０ｂ、スイッチ２０ｄを経由する。また、通信装置３０ａはＴＥＰ４０ａを含んでおり、通信装置３０ｂはＴＥＰ４０ｂを含んでいる。
【００１９】
通信装置３０ａ中の仮想マシンαは、仮想マシンβとの間の経路での障害を検出するための検出パケットＰ１１を生成したとする。図３の例では、検出パケットとして、ＩＣＭＰ（Internet Control Message Protocol）のＥｃｈｏメッセージが使用されるものとする。すなわち、仮想マシンαで生成される検出パケットＰ１１は、ＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージである。仮想マシンαで生成された検出パケットＰ１１は、ＴＥＰ４０ａに出力される。ＴＥＰ４０ａは、検出パケットＰ１１の内部ヘッダのハッシュ値を外部ヘッダの送信元ポート番号に設定することにより、パケットＰ１２を生成する。図３の例では、パケットＰ１２の送信元ポート番号の値はＳＰａであるとする。
【００２０】
次に、ＴＥＰ４０ａは、カプセル化の処理対象となったパケットＰ１１が障害の検出に使用される検出パケットであるかを判定する。なお、ＴＥＰ４０ａは、予め、検出パケットの条件を記憶しているものとする。そこで、ＴＥＰ４０ａは、記憶している情報を用いて、パケットＰ１１が検出パケットであると判定する。すると、ＴＥＰ４０ａは、内部ヘッダのハッシュ値（ＳＰａ）と、検出パケットを送信するたびに変更される変数との演算を行う。ここでは、演算に使用された変数の値はＸであり、演算により、ＳＰｂという値が得られたとする。ＴＥＰ４０ａは、カプセル化に使用した外部ヘッダの送信元ポート番号を、ＳＰａからＳＰｂに変更することにより、パケットＰ１３を生成する。ＴＥＰ４０ａは、生成したパケットＰ１３をＴＥＰ４０ｂに向けて送信する。さらに、ＴＥＰ４０ａは、検出パケットの送信に伴い、変数の値を変更する。ここでは、変数の値はＸからＹに変更されたとする。
【００２１】
パケットＰ１３がスイッチ２０ａに到達すると、パケットＰ１３の外部ヘッダの情報を用いて経路振分が行われる。ここでは、パケットＰ１３は、経路Ｒ１１を介して送信されたとする。
【００２２】
次に、仮想マシンαは、検出パケットＰ１４を生成したとする。検出パケットＰ１４は検出パケットＰ１１と同じ情報を有するパケットである。仮想マシンαは、検出パケットＰ１４をＴＥＰ４０ａに出力する。すると、ＴＥＰ４０ａでは、検出パケットＰ１４の内部ヘッダを用いて外部ヘッダを生成する。ここで、検出パケットＰ１４と検出パケットＰ１１は同じ区間についてのＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージであるので、検出パケットＰ１４への外部ヘッダの付加により、パケットＰ１２が得られる。このため、外部ヘッダの送信元ポート番号はＳＰａに設定されている。
【００２３】
次に、ＴＥＰ４０ａは、カプセル化の処理対象となったパケットＰ１４が障害の検出に使用される検出パケットであると判定したとする。すると、ＴＥＰ４０ａは、内部ヘッダのハッシュ値（ＳＰａ）と、変数との演算を行う。ここでは、演算に使用された変数の値はＹに設定されていて、ＳＰａとＹの演算により、ＳＰｃという値が得られたとする。ＴＥＰ４０ａは、カプセル化に使用した外部ヘッダの送信元ポート番号を、ＳＰａからＳＰｃに変更することにより、パケットＰ１５を生成する。ＴＥＰ４０ａは、パケットＰ１５をＴＥＰ４０ｂに向けて送信する。さらに、ＴＥＰ４０ａは、検出パケットの送信に伴い、変数の値を変更する。
【００２４】
パケットＰ１５がスイッチ２０ａに到達すると、パケットＰ１５の外部ヘッダの情報を用いて経路振分が行われる。パケットＰ１５はパケットＰ１３とは送信元ポート番号が異なるので、パケットＰ１３とは異なる経路で宛先に転送され得る。ここでは、パケットＰ１５は、経路Ｒ１２を介して送信されたとする。
【００２５】
パケットＰ１３が通信装置３０ｂに到達すると、ＴＥＰ４０ｂは、パケットＰ１３の外部ヘッダを除去して、仮想マシンβに出力する。仮想マシンβに出力されるパケットは検出パケットＰ１１の状態に戻っているので、仮想マシンβは、通信装置３０ａ中の仮想マシンαに応答パケットを送信する。さらに、パケットＰ１５が通信装置３０ｂに到達した場合も同様の処理が行われるので、パケットＰ１５に対する応答パケットも仮想マシンαに向けて送信される。なお、応答パケットについても、ＴＥＰ４０ｂで外部ヘッダの付加が行われ、通信装置３０ａに向けて転送される。
【００２６】
ＴＥＰ４０ａは、応答パケットを受信すると、外部ヘッダを除去してから仮想マシンαに出力する。仮想マシンαは、２つの検出パケット（Ｐ１１、Ｐ１４）を送信したのに対して、２つの応答パケットを受信しているので、仮想マシンαと仮想マシンβの間の通信経路に障害が発生していないと判定する。
【００２７】
なお、理解しやすくするために、検出パケットに検出パケットの情報から計算された送信元ポート番号を用いた外部ヘッダが付加された後に、送信元ポート番号が変更される場合を例としたが、外部ヘッダが付加されるタイミングは任意である。すなわち、後述するように、検出パケットから計算された送信元ポート番号の候補値と変数との演算結果の計算後に、外部ヘッダの生成と検出パケットへの付加が行われてもよい。
【００２８】
このように、検出パケットの送信の際には、検出パケットごとに異なる値となる変数を用いて、検出パケットの外部ヘッダに含まれる送信元ポート番号が変更される。このため、通信経路が冗長化されていても、各検出パケットが異なる経路を介して送信される可能性があり、通信経路中の障害を検出しやすくなる。
【００２９】
＜第１の実施形態＞
図４は、通信装置３０の構成の例を説明する図である。通信装置３０は、仮想マシン１０（１０ａ、１０ｃ、１０ｅ）、仮想スイッチ３１、ネットワークインタフェース３２を有する。仮想スイッチ３１には、ＴＥＰ４０（４０ａ、４０ｃ、４０ｅ）が含まれている。また、ネットワークインタフェース３２は、送信部３３と受信部３４を有する。送信部３３は、パケットをネットワーク中の他の装置に送信する。受信部３４は、ネットワーク中の他の装置からパケットを受信する。通信装置３０は、サーバなどを含む任意の情報処理装置として実現される。なお、図４は、通信装置３０の一例であり、通信装置３０中で動作する仮想マシン１０の数は任意に変更され得る。さらに、仮想スイッチ３１で実現されるＴＥＰ４０の数も実装に応じて任意に変更され得る。
【００３０】
各仮想マシン１０は、仮想スイッチ３１中のＴＥＰ４０のいずれかを介して通信する。以下の説明では、仮想マシン１０ａはＴＥＰ４０ａを介して通信しているとする。同様に、仮想マシン１０ｃはＴＥＰ４０ｃを介して通信し、仮想マシン１０ｅはＴＥＰ４０ｅを介して通信するものとする。
【００３１】
ＴＥＰ４０は、パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６を有する。パケット照合部４１は、予め、検出パケットの検出条件を記憶している。パケット照合部４１は、仮想マシン１０からパケットが入力されると、入力されたパケットが検出パケットであるかを判定する。検出パケットであるかを判定するための情報の例については、図５を参照しながら説明する。検出パケットが入力された場合、パケット照合部４１は、検出パケットが入力されたことをハッシュ計算部４２に通知する。ハッシュ計算部４２は、検出パケットが入力されたことが通知されると、仮想マシン１０から入力されたパケットの内部ヘッダのハッシュ値と、検出パケットごとに異なる値に設定される変数を用いた演算を行う。ハッシュ計算部４２は、演算により得られた値を外部ヘッダ付加部４３に出力する。外部ヘッダ付加部４３は、仮想マシン１０から入力されたパケットに、外部ヘッダを付加する。ここで、外部ヘッダ付加部４３は、カプセル化の対象となるパケットの内部ヘッダと、ハッシュ計算部４２から入力された値を用いて、外部ヘッダを生成する。ハッシュ計算部４２から入力された値は、外部ヘッダ中の送信元ポート番号として使用される。
【００３２】
外部ヘッダ照合部４５は、受信部３４を介して受信したパケットの外部ヘッダの宛先ＩＰアドレスが、その外部ヘッダ照合部４５を含むＴＥＰ４０に割り当てられたＩＰアドレスであるかを判定する。そのＴＥＰ４０に割り当てられたＩＰアドレス宛のパケットが入力された場合、外部ヘッダ照合部４５は、得られたパケットを外部ヘッダ除去部４６に出力する。外部ヘッダ除去部４６は、入力されたパケットの外部ヘッダを除去して、仮想マシン１０に出力する。
【００３３】
図５は、照合情報の例を説明する図である。照合情報は、パケット照合部４１が検出パケットを検出するために使用する情報であり、予め、パケット照合部４１に記憶されているか、パケット照合部４１によって、適宜、メモリ１０２（図８）から読み出される。図５に示す例では、照合情報には、イーサネットヘッダ、ＩＰヘッダ、ＩＣＭＰヘッダの情報が含まれている。イーサネットヘッダ中の宛先ＭＡＣアドレス（ＤＡ）、送信元ＭＡＣアドレス（ＳＡ）、ＶＬＡＮ  ＩＤ、Ｅｔｈｅｒタイプの値が照合情報の指定に使用される。また、ＩＰヘッダ中の情報のうち、プロトコル種別、送信元ＩＰアドレス、宛先ＩＰアドレスが照合情報の指定に使用される。ＩＣＭＰヘッダ中の情報では、タイプとコードの値が照合情報の指定に使用される。なお、「＊」は、ワイルドカードを表し、「＊」に設定されている欄の値は、いずれの値であっても照合情報に合致していると判断される。
【００３４】
図５の例では、パケットの宛先と送信元に関わらず、Ｅｔｈｅｒタイプ＝０ｘ０８００、ＩＰヘッダ中のプロトコル種別＝１、ＩＣＭＰヘッダ中のタイプ＝８を満たすパケットが、検出パケットとして検出される。ここで、Ｅｔｈｅｒタイプ＝０ｘ０８００はＩＰｖ４が使用されることを意味し、ＩＰヘッダ中のプロトコル種別＝１はＩＣＭＰが使用されることを意味する。さらに、ＩＣＭＰヘッダ中のタイプ＝８は、Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージを指す。従って、図５の照合情報を使用するパケット照合部４１は、任意の装置間で送受信されるＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージを検出パケットとして検出する。
【００３５】
図６は、通信装置３０の処理の例を説明するフローチャートである。以下、通信装置３０で行われる検出パケットの送信処理の例を説明する。以下の説明では、仮想マシン１０ａが通信先の仮想マシン１０ｂ（図示せず）との通信経路上の障害の有無を判定するために生成した検出パケットが、ＴＥＰ４０ａを介して送信される場合を例として説明する。さらに、図６の説明では、ハッシュ計算部４２は、検出パケットごとに異なる値となる変数を生成するためのカウンタを内蔵しているとする。なお、図６は処理の一例であり、例えば、ステップＳ２とステップＳ３の処理が並行して行われても良く、また、ステップＳ４とＳ５が並行して行われても良い。
【００３６】
仮想マシン１０ａが仮想マシン１０ｂを宛先として、ＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージを生成したとする。仮想マシン１０ａは、生成したパケットを、ＴＥＰ４０ａに出力する。すると、ＴＥＰ４０ａでは、パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３に対して、仮想マシン１０ａで生成されたパケットが入力される（ステップＳ１）。
【００３７】
ハッシュ計算部４２は、入力されたパケットのパケットヘッダの値からハッシュ値を計算する（ステップＳ２）。なお、ステップＳ２でのハッシュ値の計算に使用されているヘッダは、仮想マシン１０ａから入力されたパケットのヘッダであるので、内部ヘッダに相当する。
【００３８】
パケット照合部４１は、仮想マシン１０ａから入力されたパケットのヘッダの情報と照合情報を比較することにより、パケットが照合情報に指定された指定形式に合致するかを判定する（ステップＳ３）。パケットが照合情報に指定された指定形式に合致する場合、パケット照合部４１は、入力されたパケットが検出パケットであると判定する（ステップＳ３でＹｅｓ）。すると、パケット照合部４１は、検出パケットを検出したことをハッシュ計算部４２に通知する。ハッシュ計算部４２は、パケット照合部４１からの通知を受けて、検出パケットごとに異なる値となる変数を生成するカウンタから、カウンタ値を取得する。ハッシュ計算部４２は、ステップＳ２で計算したハッシュ値にカウンタ値を加算して、新たなハッシュ値とする（ステップＳ４）。ハッシュ計算部４２は、新たなハッシュ値を外部ヘッダ付加部４３に出力する。さらに、ハッシュ計算部４２は、カウンタ値を更新する（ステップＳ５）。
【００３９】
外部ヘッダ付加部４３は、仮想マシン１０ａから入力されたパケットの外部ヘッダの送信元ポート番号に、ハッシュ計算部４２から入力された値を設定する。外部ヘッダの情報のうち、送信元ポート番号以外の情報は、仮想マシン１０ａから外部ヘッダ付加部４３に入力されたパケットに基づいて生成される。外部ヘッダ付加部４３は、生成した外部ヘッダをパケットに付加して、外部ヘッダの付加後のパケットを、送信部３３を介して送信する（ステップＳ６）。
【００４０】
一方、パケットが照合情報に指定された指定形式に合致しない場合、パケット照合部４１は、入力されたパケットが検出パケットではないと判定する。すると、ハッシュ計算部４２は、パケット照合部４１での判定結果に基づいて、ステップＳ２で計算したハッシュ値を外部ヘッダ付加部４３に出力する（ステップＳ３でＮｏ）。その後、ステップＳ６の処理が行われる。このとき、外部ヘッダ付加部４３では、ハッシュ計算部４２から入力された値を送信元ポート番号に設定した外部ヘッダを生成する。従って、検出パケットではないパケットに付加される外部ヘッダ中の送信元ポート番号は、仮想マシン１０ａからＴＥＰ４０ａに入力されたパケットのヘッダから計算された値である。
【００４１】
図７は、カプセル化されたパケットの例を説明する図である。図７は、ハッシュ計算部４２と外部ヘッダ付加部４３での処理を図解している。図７に示すパケットは、Ｅｔｈｅｒヘッダ、ＩＰヘッダ、ＵＤＰヘッダ、ＶＸＬＡＮヘッダ、内部ヘッダ、ペイロードを含む。Ｅｔｈｅｒヘッダ、ＩＰヘッダ、ＵＤＰヘッダ、ＶＸＬＡＮヘッダが外部ヘッダに含まれている。なお、各ヘッダに含まれている情報要素の種類は、図２を参照しながら述べた通りである。
【００４２】
ステップＳ１１は、ハッシュ計算部４２が内部ヘッダのハッシュ値を生成する様子を表わしており、図６のステップＳ２の処理に相当する。ここで、図６のステップＳ３を参照しながら説明したように、処理対象のパケットが検出パケットであると判定されると、外部ヘッダ付加部４３は、カウンタ値をハッシュ計算結果に加算する（ステップＳ１２）。なお、ステップＳ１２の処理は、図６のステップＳ４に相当する。図７の例では、ハッシュ計算部４２が保持するカウンタでは、ハッシュ計算部４２がカウンタ値を読み出すと共に自動加算処理が行われる。その後、ハッシュ計算部４２は、ハッシュ値とカウンタ値の和を外部ヘッダ付加部４３に出力し、外部ヘッダ付加部４３は、ハッシュ計算部４２から入力された値を外部ヘッダの送信元ポート番号に設定する（ステップＳ１３）。
【００４３】
図８は、通信装置３０のハードウェア構成の例を説明する図である。通信装置３０は、プロセッサ１０１、メモリ１０２、バス１０５、ネットワークインタフェース３２を備える。通信装置３０は、さらに、入力装置１０３、出力装置１０４の１つ以上を有していても良い。プロセッサ１０１は、Central Processing Unit（ＣＰＵ）を含む任意の処理回路であり、メモリ１０２に記憶されたプログラムを実行することができる。プロセッサ１０１は、仮想マシン１０やＴＥＰ４０を実現する。メモリ１０２には、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ等の半導体メモリが含まれ、処理に用いられるプログラム及びデータを格納する。メモリ１０２は、仮想マシン１０での記憶領域やＴＥＰでのデータの記憶に使用されることにより、仮想マシン１０やＴＥＰの一部を実現する。バス１０５は、プロセッサ１０１、メモリ１０２、入力装置１０３、出力装置１０４、ネットワークインタフェース３２を、相互にデータの出力や入力が可能になるように接続する。ネットワークインタフェース３２は、送信部３３および受信部３４として動作する。入力装置１０３は、キーボードやマウスなど、情報の入力に使用される任意の装置であり、出力装置１０４は、ディスプレイを含む表示デバイスなど、データの出力に使用される任意の装置である。
【００４４】
このように、第１の実施形態では、検出パケットの外部ヘッダに含まれる送信元ポート番号は内部ヘッダのハッシュ値と検出パケットごとに異なる値となるカウンタ値の和となる。このため、検出パケットの送信元の装置は、通信先に至る通信経路が冗長化されている場合に、通信先に宛てて複数の検出パケットを送信することにより、各検出パケットが異なる経路を介して送信される可能性を高くできる。例えば、仮想マシン１０ａが仮想マシン１０ｂとの間の経路の状況を調べるために２つの検出パケットを送ったときに、１回目に送信した検出パケットと２回目に送信した検出パケットが異なる経路に振り分けられる可能性もある。この場合、仮想マシン１０は、１回目に送信した検出パケットに対する応答パケットを受信しても、２回目に送信した検出パケットの経路中の障害により検出パケットが宛先に到達しなければ、２回目に送信した検出パケットの応答パケットを受信しない。検出パケットの送信元の仮想マシン１０は、検出パケットの送信から所定期間内に応答パケットを受信しない場合は、経路中に障害があると判定する。この結果、第１の実施形態にかかる装置が用いられたシステムでは、冗長化された通信経路での障害の発生を検出しやすくなる。
【００４５】
＜第２の実施形態＞
図９は、第２の実施形態で用いられる通信装置３０に含まれているＴＥＰ５０の構成の例を説明する図である。ＴＥＰ５０は、記憶部５１、複製回数決定部５２、パケット複製部５３、計数部５４を備え、さらに、パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６を備える。なお、第２の実施形態では、仮想マシン１０から出力されたパケットは、パケット照合部４１とパケット複製部５３に入力される。パケット複製部５３では、複製回数決定部５２で決定された複製回数分だけ、検出パケットが複製される。さらに、記憶部５１は、複製される検出パケットのヘッダと、個々の検出パケットの複製回数から求めた応答パケットの受信予測数を記憶している。記憶部５１が保持する情報の詳細については図１０を参照しながら説明する。パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６で行われる処理は、第１の実施形態と同様である。計数部５４では、検出パケットに対して通信先から送信されてきた応答パケットの数を計数する。このとき、計数部５４は、適宜、記憶部５１中に記憶されている情報を使用する。
【００４６】
なお、ＴＥＰ５０のうち、複製回数決定部５２、パケット複製部５３、計数部５４、パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６は、プロセッサ１０１によって実現される。記憶部５１は、メモリ１０２によって実現される。
【００４７】
図１０は、記憶部５１が保持する情報の例を説明する図である。記憶部５１が記憶する情報は、検出パケットを一意に特定するエントリ番号に、そのエントリ番号で識別される検出パケットの検出に使用された照合情報と、受信予測数を対応付けたものである。受信予測数は、検出パケットの送信元から検出パケットの宛先に至る経路において障害が発生していない場合に、通信装置３０が受信すると見込まれる応答パケットの数である。従って、受信予測数Ｒは式（１）から計算される。
【００４８】
Ｒ＝Ｎ−Ｍ  ・・・（１）
ここで、Ｎは、検出パケットの複製回数であり、Ｍは検出パケットに対する応答パケットを受信した回数である。従って、検出パケットの送信時には、Ｒ＝Ｎ（複製回数）に設定される。
【００４９】
例えば、パケット照合部４１において、ＩＰ１のアドレスが割り当てられた送信元からＩＰ２の通信先に宛てたＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージが検出パケットとして検出されたとする。すると、パケット照合部４１から検出パケットのヘッダの情報が入力されることにより、エントリＮｏ．１の照合情報が記録される。ここでは、エントリＮｏ．１の検出パケットのイーサネットヘッダでは、ＤＡ＝ＭＡ１、ＳＡ＝ＭＡ２、ＶＬＡＮ  ＩＤ＝ＶＩＤ１、Ｅｔｈｅｒタイプ＝０ｘ０８００が設定されているとする。さらに、複製回数決定部５２から記憶部５１に検出パケットの複製回数が２０であることが通知されたとする。すると、エントリＮｏ．１の検出パケットに対する応答パケットを受信していないため、エントリＮｏ．１の受信予測数として、Ｒ＝Ｎ−Ｍ＝２０−０＝２０が記憶部５１に記録される。他の検出パケットについても同様に記憶部５１への登録処理が行われる。
【００５０】
図１１は、第２の実施形態にかかる通信方法の例を説明する図である。以下、通信装置３０ａ中で動作している仮想マシン１０ａが、通信装置３０ｂ中で動作している仮想マシン１０ｂとの間の通信経路に障害が発生しているかを確認する場合を例として第２の実施形態で行われる処理の例を説明する。また、仮想マシン１０ａと仮想マシン１０ｂの間の通信経路は、スイッチ２０ａ、スイッチ２０ｂ、スイッチ２０ｄを経由する経路と、スイッチ２０ａ、スイッチ２０ｃ、スイッチ２０ｄを経由する経路の２つが設定されているとする。さらに、第２の実施形態でも、パケット照合部４１は、図６に示す照合情報を使用しているとする。なお、以下の説明では、動作を行っている装置を区別し易くするために、符号の後に動作を行っているＴＥＰ５０の符号の末尾と同じアルファベットを記載することがある。例えば、複製回数決定部５２ａは、ＴＥＰ５０ａに含まれている複製回数決定部５２である。
【００５１】
まず、仮想マシン１０ａは、仮想マシン１０ｂ宛のＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔメッセージを生成したとする。仮想マシン１０ａは、生成したパケットを、ＴＥＰ５０ａに出力する（矢印Ａ１）。
【００５２】
パケット照合部４１ａは、仮想マシン１０から入力されたパケットを照合情報（図６）と比較することにより検出パケットであるかを判定する。パケット照合部４１ａで行われる判定処理は第１の実施形態と同様である。パケット照合部４１ａは、検出パケットが入力されたと判定すると、判定結果をハッシュ計算部４２ａと複製回数決定部５２ａに通知し、さらに、検出パケットのヘッダの情報を記憶部５１ａに出力する。ここでは、以下の情報がパケット照合部４１ａから記憶部５１ａに出力されたとする。
【００５３】
送信元ＭＡＣアドレス  ：ＭＡ４
宛先ＭＡＣアドレス    ：ＭＡ３
ＶＬＡＮ  ＩＤ        ：ＶＩＤ２
Ｅｔｈｅｒタイプ      ：０ｘ０８００
プロトコル            ：ＩＣＭＰ
送信元ＩＰアドレス    ：ＩＰ３
宛先ＩＰアドレス      ：ＩＰ４
ＩＣＭＰヘッダのタイプ：８（Ｅｃｈｏ  Ｒｅｑｕｅｓｔ）
コード                ：０
すると、記憶部５１ａは、パケット照合部４１ａから通知された照合情報をエントリ番号に対応付けて記憶する。この例では、図１０のＮｏ．２のエントリの照合情報が記憶部５１ａに記録される。
【００５４】
一方、複製回数決定部５２ａは、パケット照合部４１ａから通知された検出パケットについての複製回数を決定する。ここで、複製回数決定部５２ａは、検出パケットの複製回数を２回にすることを決定したとする。複製回数決定部５２ａは、決定した複製回数を検出パケットのヘッダ情報と対応付けて記憶部５１ａに出力する。すると、記憶部５１ａは、通知された複製回数を、通知されたヘッダ情報に対応する受信予測数として記録する。このため、記憶部５１ａには、図１０のＮｏ．２のエントリの情報が格納される。
【００５５】
パケット複製部５３ａは、複製回数決定部５２ａが決定した数だけ、仮想マシン１０ａを入力されたパケットを複製して、ハッシュ計算部４２ａと外部ヘッダ付加部４３ａに出力する。ここでは、検出パケットは２つに複製されるので、１つ目の検出パケットをパケットＰ３１、複製された２つ目の検出パケットをパケットＰ３２と記載する。ハッシュ計算部４２ａおよび外部ヘッダ付加部４３ａでは、パケットＰ３１とパケットＰ３２は、別個のパケットとして扱われる。このため、第１の実施形態で説明した手順と同様の処理により、パケットＰ３１の外部ヘッダに使用される送信元ポート番号と、パケットＰ３２の外部ヘッダに使用される送信元ポート番号は、互いに異なる値になる。
【００５６】
外部ヘッダ付加部４３ａは、パケットＰ３１に外部ヘッダを付したパケットを、送信部３３ａを介して送信したとする。外部ヘッダが付されたパケットＰ３１は、矢印Ａ２に示すように、スイッチ２０ａ、スイッチ２０ｂ、スイッチ２０ｄを経由する経路で通信装置３０ｂに到達したとする。
【００５７】
一方、パケットＰ３２に外部ヘッダを付したパケットも、送信部３３ａを介して送信されたとする。外部ヘッダが付されたパケットＰ３２は、矢印Ａ３に示すように、スイッチ２０ａ、スイッチ２０ｃ、スイッチ２０ｄを経由する経路で通信装置３０ｂに到達したとする。
【００５８】
通信装置３０ｂの外部ヘッダ照合部４５ｂは、受信部３４ｂを介して、外部ヘッダが付されたパケットＰ３１を受信したとする。外部ヘッダ照合部４５ｂは、入力されたパケットの外部ヘッダのＩＰアドレスが、ＴＥＰ５０ｂに割り当てられたＩＰアドレスであるかを判定する。ここでは、外部ヘッダのＩＰアドレスはＴＥＰ５０ｂのＩＰアドレスに設定されているので、外部ヘッダ照合部４５ｂは、パケットを外部ヘッダ除去部４６ｂに出力する。外部ヘッダ除去部４６ｂは、外部ヘッダを除去して得られたパケットＰ３１を計数部５４ｂに出力する。計数部５４ｂは、入力されたパケットのＩＣＭＰヘッダのタイプが応答パケットであることを示す値（０）であるかを判定する。パケットＰ３１のＩＣＭＰヘッダのタイプは８であり、応答パケットではない。このため、計数部５４ｂは、パケットを仮想マシン１０ｂに出力する。すると、仮想マシン１０ｂは、パケットＰ３１に応答する応答パケットを生成する。ここで、応答パケットには、以下の情報が含まれる。
【００５９】
送信元ＭＡＣアドレス  ：ＭＡ３
宛先ＭＡＣアドレス    ：ＭＡ４
ＶＬＡＮ  ＩＤ        ：ＶＩＤ２
Ｅｔｈｅｒタイプ      ：０ｘ０８００
プロトコル            ：ＩＣＭＰ
送信元ＩＰアドレス    ：ＩＰ４
宛先ＩＰアドレス      ：ＩＰ３
ＩＣＭＰヘッダのタイプ：０（Ｅｃｈｏ  Ｒｅｐｌｙ）
コード                ：０
仮想マシン１０ｂは、生成した応答パケットを仮想マシン１０ａに向けて送信する（矢印Ａ４）。
【００６０】
さらに、矢印Ａ３に示す経路により、外部ヘッダが付されたパケットＰ３２がＴＥＰ５０ｂに到達したとする。この場合も、外部ヘッダが付されたパケットＰ３１が到達した場合と同様に処理されるので、パケットＰ３２は仮想マシン１０ｂに出力される。すると、仮想マシン１０ｂは、パケットＰ３２に対する応答パケットを生成し、仮想マシン１０ａに向けて送信する（矢印Ａ５）。なお、パケットＰ３２に対する応答パケットもパケットＰ３１に対する応答パケットと同じ情報を含む。
【００６１】
矢印Ａ４の処理により、パケットＰ３１に対する応答パケットがＴＥＰ５０ｂ中のパケット照合部４１ｂに入力される。パケット照合部４１ｂでは、応答パケットを検出パケットとは判定しないので、応答パケットが検出パケットではないことを、ハッシュ計算部４２ｂと複製回数決定部５２ｂに通知する。複製回数決定部５２ｂは、パケット照合部４１ｂからの通知により、入力されたパケットが検出パケットではないことをパケット複製部５３ｂに通知する。すると、パケット複製部５３ｂは、仮想マシン１０ｂから入力された応答パケットを複製せずに、ハッシュ計算部４２ｂと外部ヘッダ付加部４３ｂに出力する。
【００６２】
一方、ハッシュ計算部４２ｂは、応答パケットのヘッダから計算したハッシュ値を、外部ヘッダ付加部４３ｂに出力する。すると、外部ヘッダ付加部４３ｂは、パケット複製部５３ｂから出力された応答パケットに、ハッシュ計算部４２ｂから通知された値を送信元ポート番号に設定した外部ヘッダを付加する。外部ヘッダ付加部４３ｂは、外部ヘッダを付加した後の応答パケットを、送信部３３ｂを介して送信する。すると、外部ヘッダ付加後の応答パケットは、矢印Ａ６で示す経路を介してＴＥＰ５０ａに向けて転送される。
【００６３】
矢印Ａ５の処理により、パケットＰ３２に対する応答パケットがパケット照合部４１ｂに入力された場合も、パケットＰ３１に対する応答パケットと同様に処理される。このため、パケットＰ３２に対する応答パケットについても、外部ヘッダの付加後に、矢印Ａ６で示す経路を介してＴＥＰ５０ａに向けて転送される。
【００６４】
パケットＰ３１に対する応答パケットが通信装置３０ａに到達したとする。通信装置３０ａの外部ヘッダ照合部４５ａは、受信部３４ａを介して、外部ヘッダが付された応答パケットを受信したとする。外部ヘッダ照合部４５ａは、入力されたパケットの外部ヘッダのＩＰアドレスがＴＥＰ５０ａに割り当てられたＩＰアドレスであるため、入力されたパケットを外部ヘッダ除去部４６ａに出力する。外部ヘッダ除去部４６ａは、外部ヘッダを除去して得られた応答パケットを計数部５４ａに出力する。計数部５４ａは、入力されたパケットのＩＣＭＰヘッダのタイプが応答パケットであることを示す値（０）であるため、入力されたパケットを記憶部５１ａ中に格納されている情報と比較する。この処理により、計数部５４ａは、応答パケット中のヘッダの情報が過去にＴＥＰ５０ａから送信したいずれの検出パケットの応答であるかを判定する。すなわち、計数部５４ａは、応答パケットの送信元アドレスが検出パケットの宛先アドレスに一致し、かつ、応答パケットの宛先アドレスが検出パケットの送信元アドレスに一致する検出パケットのエントリを検索する。ここで、計数部５４ａに入力された応答パケットは、仮想マシン１０ｂで生成された応答パケットであるため、以下の情報を含む。
【００６５】
送信元ＭＡＣアドレス  ：ＭＡ３
宛先ＭＡＣアドレス    ：ＭＡ４
ＶＬＡＮ  ＩＤ        ：ＶＩＤ２
Ｅｔｈｅｒタイプ      ：０ｘ０８００
プロトコル            ：ＩＣＭＰ
送信元ＩＰアドレス    ：ＩＰ４
宛先ＩＰアドレス      ：ＩＰ３
ＩＣＭＰヘッダのタイプ：０（Ｅｃｈｏ  Ｒｅｐｌｙ）
コード                ：０
従って、計数部５４ａは、入力されたパケットは、図１０のＮｏ．２のエントリの検出パケットに対する応答であると判定する。計数部５４ａは、Ｎｏ．２のエントリの受信予測数を２から１に変更する。さらに、計数部５４ａは、応答パケットを破棄する。
【００６６】
その後、パケットＰ３２に対する応答パケットが通信装置３０ａに到達したとする。すると、パケットＰ３２に対する応答パケットについても、パケットＰ３１に対する応答パケットと同様に、記憶部５１中の情報との間の比較が行われる。このため、この場合も、計数部５４ａは、図１０のＮｏ．２のエントリの検出パケットに対する応答を受信したと判定して、Ｎｏ．２のエントリの受信予測数を１から０に変更する。
【００６７】
計数部５４ａは、受信予測数が０になると、複製した検出パケットの各々に対する応答パケットが得られたと判定する。複製した検出パケットの各々に対する応答パケットが得られた場合、複製した検出パケットの転送に使用されたいずれの転送経路にも障害が無いことが確認されたことになる。すると、計数部５４ａは、入力された応答パケットを仮想マシン１０ａに出力する。
【００６８】
仮想マシン１０ａは、計数部５４ａから入力された応答パケットを用いて、仮想マシン１０ａから仮想マシン１０ｂへの間の経路での障害が発生していないと判定する。なお、仮想マシン１０ａは、応答パケットが入力されると、仮想マシン１０ａと仮想マシン１０ｂの間の経路が通信可能であることを示す情報を、通信装置３０ａが備える出力装置１０４に出力しても良い。すると、仮想マシン１０ａを用いた処理を行っているオペレータは、仮想マシン１０ａと仮想マシン１０ｂの間の経路が通信可能であることを認識できる。
【００６９】
一方、検出パケットの１つ以上が宛先の仮想マシン１０ｂに届かなかった場合には、検出パケットの複製回数よりも少ない数の応答パケットしか仮想マシン１０ａに送られてこない。従って、計数部５４ａが計算する受信予測数は０にならず、仮想マシン１０ａには応答パケットが出力されない。この場合、仮想マシン１０ａは、検出パケットを送信してから応答パケットを待ち合わせる所定期間内に応答パケットを受信しないので、経路中に障害があると判定する。
【００７０】
なお、図１１を参照した説明では、応答パケットは矢印Ａ６に示す経路を通る場合を例として説明したが、応答パケットはスイッチ２０ｄ、スイッチ２０ｃ、スイッチ２０ａを介して通信装置３０ａに送信されても良い。さらに、ネットワーク中のスイッチ２０の数や検出パケットの複製回数は一例であり、これらの値は実装に応じて変更され得る。
【００７１】
図１２は、第２の通信装置の処理の例を説明するフローチャートである。なお、図１２の例では、複製回数が予め決定されており、複製回数決定部５２は、適宜、メモリ１０２から複製回数を読み出すものとする。
【００７２】
仮想マシン１０で生成された送信パケットがＴＥＰ５０中のパケット照合部４１とパケット複製部５３に入力される（ステップＳ２１）。パケット照合部４１は、入力されたパケットのヘッダの情報と照合情報を比較することにより、パケットが照合情報に指定された指定形式に合致するかを判定する（ステップＳ２２）。パケットが照合情報に指定された指定形式に合致する場合、入力されたパケットが検出パケットであるので、複製回数決定部５２は、予め指定された複製回数を取得する（ステップＳ２２でＹｅｓ、ステップＳ２３）。さらに、パケットの形式情報と複製回数が記憶部５１に登録される（ステップＳ２４）。ステップＳ２４において、パケットの形式情報として、パケットのヘッダ中の情報が使用されるとする。
【００７３】
その後、ループ端Ｌ１とＬ２で挟まれた処理が、処理対象の検出パケットの複製回数と同じ回数だけ行われる。以下、ループ端Ｌ１とＬ２で挟まれた処理を、説明の都合上、「複製ループ」と記載することがある。パケット複製部５３は、送出された検出パケットの総数が複製回数と等しいかを判定する（ループ端Ｌ１）。送出された検出パケットの総数が複製回数に満たない場合、パケット複製部５３は、検出パケットを複製する（ステップＳ２５）。さらに、ハッシュ計算部４２は、複製された検出パケットのヘッダから計算したハッシュ値と、カウンタ値から、新たなハッシュ値を計算する。外部ヘッダ付加部４３は、ハッシュ計算部４２で計算された新たなハッシュ値を送信元ポート番号に指定した外部ヘッダをパケットに付加して送信する（ステップＳ２６）。ハッシュ計算部４２は、カウンタ値を更新する（ステップＳ２７）。ステップＳ２７の処理後、ループ端Ｌ１以降の処理が繰り返される。パケット複製部５３は、送出した検出パケットの総数が複製回数と同じになると、処理が終了する。
【００７４】
一方、パケットが照合情報に指定された指定形式に合致しない場合、入力されたパケットは検出パケットではない（ステップＳ２２でＮｏ）。そこで、外部ヘッダ付加部４３は、ハッシュ計算部４２で計算されたハッシュ値を送信元ポート番号に指定した外部ヘッダをパケットに付加して送信する（ステップＳ２８）。なお、ステップＳ２８で付加される外部ヘッダの送信元ポート番号は、処理対象となっているパケットのヘッダのハッシュ値である。
【００７５】
図１３は、第２の通信装置の処理の例を説明するフローチャートである。外部ヘッダ照合部４５は、ネットワークインタフェース３２を介して受信パケットを取得する（ステップＳ４１）。外部ヘッダ照合部４５は、取得したパケットの外部ヘッダを用いてパケットが受信対象であるかの照合を行い、受信対象であると判定したパケットの外部ヘッダを除去する（ステップＳ４２）。計数部５４は、外部ヘッダを除去した後のパケットのヘッダを用いて、入力されたパケットが記憶部５１に登録された条件のパケットの応答パケットであるかを判定する（ステップＳ４３）。記憶部５１に登録された条件のパケットの応答パケットであると判定すると、計数部５４は、受信パケットの条件に対応付けられた受信予測数を１つデクリメントする（ステップＳ４４）。計数部５４は、受信予測数が０になったかを判定する（ステップＳ４５）。受信予測数が０ではない場合、計数部５４は、入力されたパケットを廃棄して処理を終了する（ステップＳ４５でＮｏ、ステップＳ４６）。
【００７６】
一方、受信予測数が０になった場合、計数部５４は、入力されたパケットを仮想マシン１０に出力し、処理を終了する（ステップＳ４５でＹｅｓ、ステップＳ４７）。また、記憶部５１に登録された条件のパケットの応答パケットではないと判定した場合も、計数部５４は、入力されたパケットを仮想マシン１０に出力し、処理を終了する（ステップＳ４３でＮｏ、ステップＳ４７）。
【００７７】
このように、第２の実施形態では、検出パケットが複製された上で、複製された各検出パケットの外部ヘッダに含まれる送信元ポート番号は内部ヘッダのハッシュ値と検出パケットごとに異なる値となるカウンタ値の和となる。このため、送信元の装置から通信先との間の経路の中の障害を検出するための１つの検出パケットを送信することにより、通信先に至る複数の経路について、障害の発生を検出できる可能性がある。従って、第２の実施形態にかかる装置が用いられたシステムでは、通信経路が冗長化されていても、検出パケットの送信元の仮想マシン１０が障害の発生を検出しやすくなる。
【００７８】
＜第３の実施形態＞
第１、第２の実施形態でも複数の経路での障害の発生を検出できる可能性は高められるが、複製された検出パケット同士が同じ経路をたどって送信される可能性もある。そこで、第３の実施形態では、仮想マシン１０間の通信に使用されている経路の数に応じて、所定の確率で全ての経路の状況を判定することができるパケットの複製回数を、複製回数に設定する場合の例を説明する。第３の実施形態は、第２の実施形態で複製回数決定部５２が行う処理を変形したものである。
【００７９】
なお、仮想マシン１０間の通信に使用されている経路の数は、スイッチ２０や通信装置３０の間での経路情報の交換により通信装置３０が求めても良く、また、ネットワーク中の全通信経路の情報を保持している管理装置から通信装置３０が取得しても良い。仮想マシン１０間の通信に使用されている経路の数の取得方法は、任意の既知の方法である。
【００８０】
仮想マシン１０ａと仮想マシン１０ｂの間での通信の際に使用可能な経路数がｍであるとする。ここで、検出パケットをｎ個に複製すると、障害の有無を確認できる経路の数をｋとする。すると、全ての経路が選択される確率が等しいとすると、ｋ種類の経路での障害の有無を確認できる可能性は式（２）で表わされる。
【数１】
2017118438.tif 000003
【００８１】
そこで全ての経路での障害の有無を確認できる可能性は式（３）で表わされる。
【数２】
2017118438.tif 000004
式（３）を用いると、全ての経路での障害を検出できる確率（カバー率）と、複製される検出パケットの数の関係を求めることができる。
【００８２】
図１４は、複製回数とカバー率の対応の例を説明する図である。図１４は、４種類の経路がある場合について、式（３）を用いて全ての経路での障害を検出できる確率と、検出パケットの複製回数の関係を計算した結果の例である。図１４の例では、検出パケットの複製回数が４回の場合、４つの検出パケットが用いられるが、全ての経路での障害を検出できる確率は９％である。同様に、検出パケットの複製回数が１０回の場合、全ての経路での障害を検出できる確率は７８％である。検出パケットの複製回数が１５回の場合、全ての経路での障害を検出できる確率は９５％である。検出パケットの複製回数が２０回の場合、全ての経路での障害を検出できる確率は９９％である。
【００８３】
図１４のような複製回数とカバー率の関係を表わすテーブルを、複数の経路数について、複製回数決定部５２に記憶させることができる。複製回数決定部５２は、複製しようとする検出パケットの通信経路の数を取得すると、取得した値に対応付けられたテーブルを参照することによって、所定のカバー率が得られる複製回数を、検出パケットの複製回数として決定する。なお、複製回数が決定された後に行われる処理は、第２の実施形態と同様である。
【００８４】
このように、第３の実施形態では、検出パケットの複製回数を、障害の有無を確認する対象の経路の数に応じて決定する。このため、送信元の装置から通信先との間の経路の中の障害を検出するための１つの検出パケットを送信することにより、通信先に至る全ての経路について、複製回数に対応付けられたカバー率の割合で、全経路での障害の発生の有無を判定できる。従って、第３の実施形態にかかる装置が用いられたシステムでは、通信経路が冗長化されていても、検出パケットの送信元の仮想マシン１０が障害の発生を検出しやすくなる。
【００８５】
＜第４の実施形態＞
第４の実施形態では、管理装置８０が通信装置３０や転送装置７０と通信することにより、各装置を経由した検出パケットの送信元と宛先を特定し、通信経路での障害の有無を判定するシステムの例を説明する。
【００８６】
図１５は、通信システムの例を説明する図である。通信システムには、通信を行う通信装置３０（３０ａ、３０ｂ）と、通信装置３０間での通信に使用されるパケットを転送する転送装置７０（７０ａ〜７０ｄ）、管理装置８０が含まれる。以下、通信装置３０ａと通信装置３０ｂの間には、転送装置７０ａ、転送装置７０ｂ、転送装置７０ｄを経由する経路Ｒ２１と、転送装置７０ａ、転送装置７０ｃ、転送装置７０ｄを経由する経路Ｒ２２があるものとする。また、管理装置８０は、通信システム中の各通信装置３０および各転送装置７０と、制御パケットを送受信するための制御ネットワークを介して接続されているとする。図１５では、制御ネットワークの接続を点線で示している。第４の実施形態で使用される通信装置３０には、ＴＥＰ６０が含まれている。
【００８７】
図１６は、ＴＥＰ６０の構成の例を説明する図である。ＴＥＰ６０は、ヘッダ情報記録部６１と管理装置インタフェース６２を備える。さらに、ＴＥＰ６０は、パケット照合部４１、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６、記憶部５１、複製回数決定部５２、パケット複製部５３、計数部５４を備える。第４の実施形態においても、ハッシュ計算部４２、外部ヘッダ付加部４３、外部ヘッダ照合部４５、外部ヘッダ除去部４６、記憶部５１、複製回数決定部５２、パケット複製部５３、計数部５４で行われる処理は、第２または第３の実施形態と同様である。
【００８８】
ヘッダ情報記録部６１は、検出パケットによって障害が検出される対象の区間の始点と終点を特定するための情報を記録する。第４の実施形態では、パケット照合部４１は、検出パケットを検出すると、検出パケットのヘッダの情報を、記憶部５１とヘッダ情報記録部６１とに出力する。このため、例えば、ヘッダ情報記録部６１には、ＴＥＰ６０から送信される検出パケットの宛先アドレスと送信元アドレスなどが記録されうる。さらに、受信パケットについては、計数部５４において外部ヘッダの除去後のパケットが検出パケットであると判定されると、検出パケットのヘッダ情報とその検出パケットに付加されていた外部ヘッダ中の送信元ポート番号とがヘッダ情報記録部６１に記録される。なお、第４の実施形態において、外部ヘッダ除去部４６は、外部ヘッダの除去後のパケットを、そのパケットに付加されていた外部ヘッダの情報と対応付けて、計数部５４に出力するものとする。
【００８９】
管理装置インタフェース６２は、ヘッダ情報記録部６１の情報を、適宜、管理装置８０に送信する。このとき、ＴＥＰ６０が含まれている通信装置３０を管理装置８０が一意に特定するための情報も、ヘッダ情報記録部６１の情報と共に送信される。さらに、管理装置インタフェース６２は、管理装置８０から照合情報を受信すると、パケット照合部４１に照合情報を出力する。パケット照合部４１は、管理装置インタフェース６２から入力された照合情報を記憶する。なお、管理装置インタフェース６２は、ネットワークインタフェース３２によって実現される。ヘッダ情報記録部６１は、メモリ１０２によって実現される。
【００９０】
図１７は、転送装置７０の構成の例を説明する図である。転送装置７０は、受信ポート７１（７１ａ〜７１ｃ）、スイッチ回路７２、パケット照合部７３、記録部７４、管理装置インタフェース７５、送信ポート７６（７６ａ〜７６ｃ）を備える。受信ポート７１は、他の転送装置７０や通信装置３０などからパケットを受信する。スイッチ回路７２は、スイッチング処理を行うための回路である。パケット照合部７３は、スイッチ回路７２でスイッチングされているパケットをスヌーピングすることにより、転送対象となっているパケットのヘッダ情報を取得する。さらに、パケット照合部７３は、取得したヘッダ情報を用いて検出パケットの通過をモニタし、得られた結果を記録部７４に記録する。例えば、記録部７４には、パケット照合部７３において検出パケットであると判定されたパケットの外部ヘッダと内部ヘッダの情報が記録される。管理装置インタフェース７５は、記録部７４に記録されている情報を、適宜、管理装置８０に送信する。送信ポート７６は、他の転送装置７０や通信装置３０などにパケットを転送する。
【００９１】
なお、転送装置７０は、プロセッサ１０１、メモリ１０２、ネットワークインタフェースを備えており、また、図８のようなハードウェアを備えていてもよい。受信ポート７１、管理装置インタフェース７５、送信ポート７６は、ネットワークインタフェースにより実現される。パケット照合部７３はプロセッサ１０１により実現される。さらに、記録部７４は、メモリ１０２によって実現される。
【００９２】
図１８は、管理装置８０の構成の例を説明する図である。管理装置８０は、インタフェース８１、記憶部８５、処理部９０を備える。記憶部８５は、トポロジ情報８６とアドレス情報８７を格納し、記録部８８として動作する。処理部９０は、設定部９１、取得部９２、経路候補決定部９３、判定部９４を有する。インタフェース８１は、通信装置３０や転送装置７０との間で制御パケットを送受信する。管理装置８０も図８に示すハードウェアを備えることができる。インタフェース８１はネットワークインタフェースにより実現される。処理部９０はプロセッサ１０１により実現され、記憶部８５はメモリ１０２によって実現される。
【００９３】
設定部９１は、通信装置３０や転送装置７０への設定に使用される情報の設定要求や記録の消去の要求などを生成する。取得部９２は、定期的に、通信装置３０や転送装置７０から、検出パケットの通過状況を表す情報を取得する。経路候補決定部９３は、通信装置３０から取得した検出パケットの送信元と宛先の情報と、トポロジ情報８６やアドレス情報８７を用いて、検出パケットの送信元と宛先の間の通信に使用されうる通信経路を、経路候補として決定する。経路候補決定部９３の処理の詳細については後述する。判定部９４は、通信装置３０や転送装置７０から取得した情報を用いて、経路候補の各々について、その経路候補に含まれる全ての装置で検出パケットの通過が確認できたかを判定する。経路候補に含まれる全ての装置７０で検出パケットの通過が確認できた場合、判定部９４は、その経路候補に障害が発生していないと判定する。
【００９４】
トポロジ情報８６は、通信システム内の通信経路を特定するための接続関係を表す情報である。アドレス情報８７は、各通信装置３０で動作している仮想マシン等のアドレスを特定する情報である。トポロジ情報８６の例は図１９、アドレス情報８７の例は図２０を参照しながら説明する。記録部８８には、管理装置８０が通信装置３０や転送装置７０から取得した情報から検出パケットの通過状況が記録される。記録部８８で保持される情報の例については後述する。
【００９５】
なお、図１８は管理装置８０の一例であり、管理装置８０は、図８に示すように入力装置１０３や出力装置１０４をさらに備えていても良い。管理装置８０が出力装置１０４としてディスプレイを備える場合、判定部９４での判定の結果は、ディスプレイに表示され得る。このため、管理装置８０を操作しているオペレータは、特定の通信装置間での経路のうちの１つ以上に障害が発生しているかを、判定部９４からの出力結果を元に判定することができる。また、オペレータは、ディスプレイに表示された障害の発生状況を用いることにより、ネットワーク中での障害の発生箇所の予測や障害からの復旧のための処理を行うこともできる。一方、管理装置８０に入力装置１０３が含まれている場合、オペレータは、管理装置８０にＴＥＰ６０や転送装置７０で使用する照合情報を入力することもできる。すると、管理装置８０中の設定部９１は、入力装置１０３から入力された情報を用いて、ネットワーク中のＴＥＰ６０や転送装置７０に、新たな照合情報を設定することができる。
【００９６】
図１９は、トポロジ情報８６の例を説明する図である。ケースＣ１１は、図１５に示すシステムでの各装置間の接続例の詳細を説明する図である。システム中の各装置に対して、管理装置８０は、各装置を一意に特定するためのノードＩＤを割り当てている。ケースＣ１１では、通信装置３０ａのノードＩＤはＮ１、通信装置３０ｂのノードＩＤはＮ６であるとする。さらに、ノードＩＤは、転送装置７０ａではＮ２、転送装置７０ｂではＮ４、転送装置７０ｃではＮ５、転送装置７０ｄではＮ３であるとする。図１９でも、制御パケットの送受信用の接続は点線で記載されており、データパケットや検出パケットは、太線で示す接続により送受信される。さらに、以下の説明では、通信装置３０ａにおいて、仮想マシン１０ａ（ＶＭａ）と仮想マシン１０ｃ（ＶＭｃ）が動作しているとする。さらに、通信装置３０ｂにおいて、仮想マシン１０ｂ（ＶＭｂ）と仮想マシン１０ｄ（ＶＭｄ）が動作しているとする。
【００９７】
管理装置８０は、各装置のどのポートがどの装置に接続されているかも、トポロジ情報８６として保持している。ケースＣ１１でのトポロジ情報８６は、図１９のテーブルＴ１に示すとおりである。すなわち、通信装置３０ａ（Ｎ１）のポートＰｏ１は転送装置７０ａ（Ｎ２）のポートＰｏ１に接続されている。転送装置７０ａ（Ｎ２）のポートＰｏ２は転送装置７０ｂ（Ｎ４）のポートＰｏ１に接続され、転送装置７０ａ（Ｎ２）のポートＰｏ３は転送装置７０ｃ（Ｎ５）のポートＰｏ１に接続されている。また、転送装置７０ｄ（Ｎ３）では、ポートＰｏ１は通信装置３０ｂ（Ｎ６）のポートＰｏ１に接続され、ポートＰｏ２は転送装置７０ｂ（Ｎ４）のポートＰｏ２に接続され、ポートＰｏ３は転送装置７０ｃ（Ｎ５）のポートＰｏ２に接続されている。
【００９８】
図２０は、アドレス情報８７の例を説明する図である。アドレス情報８７は、通信システム内の通信装置３０の各々で動作している仮想マシンについて、割り当てられているアドレスと、その仮想マシンが動作している通信装置３０のノードＩＤを対応付けている。図１９に示すケースＣ１１のシステムでは、図２０に示すアドレス情報８７が使用されるとする。すなわち、通信装置３０ａにおいて、仮想マシン１０ａ（ＶＭａ）と仮想マシン１０ｃ（ＶＭｃ）が動作しており、通信装置３０ａのノードＩＤはＮ１である。このため、仮想マシン１０ａと仮想マシン１０ｃには、Ｎ１のノードＩＤが対応付けられている。さらに、仮想マシン１０ａにはＩＰａというアドレスが割り当てられており、仮想マシン１０ｃにはＩＰｃというアドレスが割り当てられているとする。
【００９９】
一方、通信装置３０ｂにおいて、仮想マシン１０ｂ（ＶＭｂ）と仮想マシン１０ｄ（ＶＭｄ）が動作しており、通信装置３０ｂのノードＩＤはＮ６である。このため、仮想マシン１０ｂと仮想マシン１０ｄには、Ｎ６のノードＩＤが対応付けられている。さらに、仮想マシン１０ｂにはＩＰｂというアドレスが割り当てられており、仮想マシン１０ｄにはＩＰｄというアドレスが割り当てられているとする。
【０１００】
図１９のケースＣ１１に示す通信システムにおいて、仮想マシン１０ａ（ＶＭａ）から仮想マシン１０ｂ（ＶＭｂ）に向けて、複数の検出パケットが送信されたとする。なお、複数の検出パケットは、第１の実施形態のように、個別に生成された複数の検出パケットでも良く、また、第２および第３の実施形態で説明したように、ＴＥＰにおいて複製された検出パケットであっても良い。検出パケット自体のヘッダには、以下の情報が含まれていたとする。
【０１０１】
送信元ＭＡＣアドレス  ：ＭＡ２
宛先ＭＡＣアドレス    ：ＭＡ１
ＶＬＡＮ  ＩＤ        ：ＶＩＤ１
Ｅｔｈｅｒタイプ      ：０ｘ０８００
プロトコル            ：ＩＣＭＰ
送信元ＩＰアドレス    ：ＩＰａ
宛先ＩＰアドレス      ：ＩＰｂ
ＩＣＭＰヘッダのタイプ：８（Ｅｃｈｏ  Ｒｅｑｕｅｓｔ）
コード                ：０
【０１０２】
通信装置３０ａから検出パケットがＴＥＰ６０ａに出力されると、パケット照合部４１ａは、照合情報（図６）を用いて検出パケットが入力されたことを検出する。パケット照合部４１での検出パケットの検出に伴い、記憶部５１とヘッダ情報記録部６１に、検出パケットのヘッダの情報が出力される。
【０１０３】
図２１は、ヘッダ情報記録部６１が保持する情報の例を説明する図である。検出パケットの送信元の通信装置３０ａに含まれているヘッダ情報記録部６１ａは、パケット照合部４１ａから入力されたヘッダ情報を、検出パケットの情報として記憶する。一方、検出パケットを検出したことがパケット照合部４１ａからハッシュ計算部４２ａに通知されることにより、検出パケットのヘッダのハッシュ値とカウンタ値を用いて計算された値が送信元ポート番号として求められる。ハッシュ計算部４２ａで求められた値は、送信元ポート番号として、外部ヘッダ付加部４３ａとヘッダ情報記録部６１ａに出力される。このため、ヘッダ情報記録部６１ａには、照合情報に合わせて設定された送信元ポート番号も記録される。ここで、仮想マシン１０ａから仮想マシン１０ｂに至る区間での障害の発生を検出するための検出パケットが送信され、外部ヘッダの送信元ポート番号の値がＡと計算されたとする。すると、図２１中のエントリＮｏ．１の情報が記録される。なお、外部ヘッダの設定や、外部ヘッダが付加されたパケットの転送処理は第１〜第３の実施形態と同様である。
【０１０４】
検出パケットが通信装置３０ａから転送装置７０ａに転送されたとする。転送装置７０ａの受信ポート７１は、検出パケットが入力されると、スイッチ回路７２でのスイッチング処理により出力先となる送信ポート７６から検出パケットを出力する。さらにこのとき、パケット照合部７３は、スイッチ回路７２でのスイッチング処理の対象となっているパケットをスヌーピングすることにより、転送対象のパケットの外部ヘッダと内部ヘッダの情報を取得して、パケットの種類を特定する。パケット照合部７３は、パケットの内部ヘッダを用いて検出パケットを特定する。なお、パケット照合部７３が検出パケットを特定する方法は、通信装置３０中のパケット照合部４１などと同様である。パケット照合部７３は、カプセル化された検出パケットが転送対象であると判定すると、外部ヘッダと内部ヘッダの両方の情報を記録部７４に記録する。このため、各転送装置７０では、外部ヘッダに使用されている外部ヘッダ中の送信元ポート番号と、検出パケット自体のヘッダが記録部７４に記録される。
【０１０５】
転送装置７０ａからパケットを受信した他の転送装置７０においても同様の処理が行われる。従って、検出パケットをカプセル化したパケットを受信した転送装置７０には、記録部７４において、その検出パケットの外部ヘッダと内部ヘッダの情報が格納される。
【０１０６】
さらに、検出パケットを受信した通信装置３０ｂにおいて、受信パケットからの外部ヘッダの除去などの処理は、第１〜第３の実施形態と同様に行われる。外部ヘッダ除去部４６は、外部ヘッダの除去後のパケットを計数部５４に出力する。計数部５４は、入力されたパケットが検出パケットである場合、検出パケットのヘッダ情報と、外部ヘッダ中の送信元ポート番号をヘッダ情報記録部６１に出力する。ヘッダ情報記録部６１は、計数部５４から取得したヘッダ情報と、外部ヘッダ中の送信元ポート番号も、到達した検出パケットの情報として記録する。そのため、検出パケットが到達した通信装置３０においても、検出パケットの情報がヘッダ情報記録部６１に記録される。
【０１０７】
なお、通信装置３０では、ヘッダ情報記録部６１に記録されている情報と重複するヘッダの情報は、重複して登録しないものとする。同様に、転送装置７０においても、記録部７４に既に登録されているヘッダ情報は、重複してスイッチ回路７２に登録されないものとする。ただし、照合情報（内部ヘッダの情報）が一致しても、外部ヘッダの送信元ポート番号が異なる場合は、異なる情報として、ヘッダ情報記録部６１や記録部７４に登録される。例えば、ＴＥＰ６０ａにおいて、仮想マシン１０ａから仮想マシン１０ｂに送信した検出パケットについて、外部ヘッダ中の送信元ポートアドレス＝Ｂがハッシュ計算部４２ａで計算されたとする。この場合、図２１のエントリＮｏ．２の情報が追加される。
【０１０８】
管理装置８０の取得部９２は、定期的に、通信装置３０に対して発行情報を要求する。さらに、転送装置７０に対しては、取得部９２は、通過情報を要求する。ここで、発行情報は、その通信装置３０が送信した検出パケットの情報であるが、その通信装置３０で動作している仮想マシン宛の検出パケットを通過させた場合には、通過させた検出パケットの内部ヘッダの情報と外部ヘッダ中の送信元ポート番号も含む。通過情報は、転送装置７０を通過した検出パケットの情報である。取得部９２は、発行情報や通過情報の要求を、インタフェース８１を介して送信する。
【０１０９】
各通信装置３０では、ＴＥＰ６０中の管理装置インタフェース６２を介して発行情報の要求を取得する。管理装置インタフェース６２は、発行情報の要求の要求を取得すると、ヘッダ情報記録部６１中の情報を管理装置８０に送信する。一方、転送装置７０では、管理装置インタフェース７５を介して、通過情報の要求を取得する。管理装置インタフェース７５は、通過情報が要求されると、記録部７４の情報を管理装置８０に送信する。
【０１１０】
図２２は、制御パケット中の情報の例を説明する図である。パケットＰ２１は、発行情報を通知する制御パケット中のペイロードの例を示す。発行情報は、その情報を送信する通信装置３０を識別するノードＩＤに対応付けて送信される。なお、発行情報は、ヘッダ情報記録部６１に記録された情報である。一方、パケットＰ２２は、通過情報を通知する制御パケット中のペイロードの例を示す。通過情報は、その情報を送信する転送装置７０を識別するノードＩＤに対応付けて送信される。なお、通過情報は、記録部７４に記録された外部ヘッダと内部ヘッダの情報である。
【０１１１】
例えば、通信装置３０ａが仮想マシン１０ａから仮想マシン１０ｂに宛てた検出パケットが送信された場合に、ＴＥＰ６０ａに対して発行情報の要求が管理装置８０から出されたとする。すると、管理装置インタフェース６２は、発行情報として、ノードＩＤ（Ｎ１）と共に、ヘッダ情報記録部６１中に記憶された全ての情報を、発行情報として管理装置８０に送信する。なお、複数の区間についての検出パケットが仮想マシン１０で生成された場合、ヘッダ情報記録部６１には、各区間での障害検出用の検出パケットの情報が記録されているので、発行情報には複数の区間の情報が含められる。例えば、仮想マシン１０ａから仮想マシン１０ｂに至る区間と仮想マシン１０ｄに至る区間についての障害の検出に使用する検出パケットが並行して仮想マシン１０ａで生成されると、それらの情報が１つの発行情報に含められる。
【０１１２】
一方、管理装置８０から通信装置３０ｂ中の管理装置インタフェース６２ｂに発行情報が要求されたとする。ここで、通信装置３０ｂ中の仮想マシン１０で検出パケットが生成されていないが、ＴＥＰ６０ｂは、仮想マシン１０ａから仮想マシン１０ｂに宛てた検出パケットを通過させているとする。この場合、ヘッダ情報記録部６１ｂには、仮想マシン１０ａから仮想マシン１０ｂに宛てた検出パケットの内部ヘッダの情報と、その検出パケットに付加されていた外部ヘッダの送信元ポート番号が含まれている。
【０１１３】
図２３は、管理装置８０の処理の例を説明するフローチャートである。以下、図２３を参照しながら第４の実施形態で行われる判定処理の例を説明する。なお、図２３は一例である。例えば、ステップＳ６２とＳ６３の順序が変更されるなど、実装に応じて処理の手順が変更されても良い。
【０１１４】
経路候補決定部９３は、トポロジ情報８６を参照し、通信装置３０と転送装置７０の接続関係を取得する（ステップＳ６１）。設定部９１は、通信装置３０と転送装置７０にコマンドを送ることにより、各装置で使用される照合情報の設定を行う（ステップＳ６２）。設定部９１は、通信装置３０と転送装置７０にコマンドを送ることにより、通信装置３０中のヘッダ情報記録部６１に記録されている発行情報や、転送装置７０中の記録部７４に記録されている通過情報を消去する（ステップＳ６３）。
【０１１５】
発行情報や通過情報が消去された後も、通信装置３０中の仮想マシン１０から通信先に向けた検出パケットの送信等は行われる。このため、ステップＳ６３の処理が行われた後も、図２１、図２２を参照しながら説明したように、発行情報や通過情報が更新される。そこで、ステップＳ６３の処理を行ってから予め定められた時間が経過後、取得部９２は、通信装置３０や転送装置７０にコマンドを送ることにより、発行情報と通過情報を取得する（ステップＳ６４）。
【０１１６】
次に、ループ端Ｌ１１とＬ１２で挟まれた処理が、通信装置３０から通知された検出パケットの送信に関する記録のエントリの各々について行われる。以下、ループ端Ｌ１１とＬ１２で挟まれた処理を、説明の都合上、「経路数決定ループ」と記載する。経路候補決定部９３は、通信装置３０から通知された発行情報中で、検出パケットの送信に関する記録のエントリの各々について、送信元から宛先までの経路の数を決定したかを判定する（ループ端Ｌ１１）。全ての検出パケットの送信に関するエントリについて、経路数が決定されていない場合、経路候補決定部９３は、処理対象のエントリＲを選択し、エントリＲについて、以後の処理に使う変数Ｄ、Ｍ、Ｎの値を設定する（ステップＳ６５）。すなわち、変数Ｎを、処理対象のエントリの情報（Ｒ）を通知した通信装置３０のノードＩＤに設定する。変数Ｄを、処理対象のエントリの情報（Ｒ）で送信されている検出パケットでの宛先アドレスに設定する。変数Ｍを、アドレス情報８７において変数Ｄのアドレスに対応付けられているノードＩＤに設定する。
【０１１７】
例えば、図２１のエントリＮｏ．１の情報が処理対象になったとする。この場合、以下の情報が経路候補決定部９３に読み込まれる。
【０１１８】
通知元のノードＩＤ            ：Ｎ１（通信装置３０ａ）
宛先ＩＰアドレス（内部ヘッダ）：ＩＰｂ
送信元ポート番号（外部ヘッダ）：Ａ
【０１１９】
この場合、経路候補決定部９３は、変数Ｎを、Ｎ１に設定する。ここで、処理対象となるエントリは発行情報中で検出パケットの送信に関する情報を格納したエントリである。従って、変数Ｎの設定は、検出パケットの送信元の仮想マシンが動作している装置を特定する処理に相当する。次に、経路候補決定部９３は、変数ＤをＩＰｂに設定する。さらに、経路候補決定部９３は、アドレス情報８７（図２０）を用いて、ＩＰｂのアドレスに対応付けられている装置のノードＩＤがＮ６であることを特定すると共に、変数ＭをＮ６に設定する。ここで、アドレス情報８７は、各仮想マシン１０のアドレスと、その仮想マシン１０が動作している通信装置３０とを対応付けている。このため、変数Ｍの設定処理は、処理対象となっている検出パケットの宛先となっている仮想マシンが動作している通信装置３０を特定する処理に相当する。換言すると、変数Ｎと変数Ｍを設定することにより、検出パケットの送信元を収容している物理的な通信装置３０のノードＩＤと、検出パケットの宛先を収容している物理的な通信装置３０のノードＩＤを特定していることになる。
【０１２０】
変数の設定が終わると、経路候補決定部９３は、変数ＮのノードＩＤが割り当てられた通信装置３０から、変数ＭのノードＩＤが割り当てられた通信装置３０に至る経路の候補を求め、得られた候補の数をＣとする（ステップＳ６６）。例えば、図２１のエントリＮｏ．１の情報が処理対象である場合、ノードＮ１（通信装置３０ａ）からノードＮ６（通信装置３０ｂ）に至る経路の数が、トポロジ情報８６を用いて特定される。この例では、図１５に示すとおり、経路Ｒ２１と経路Ｒ２２があるので、経路候補数Ｃは２である。
【０１２１】
経路候補数が決まると、ループ端Ｌ２１とＬ２２で挟まれた処理が、経路候補の各々について行われる。以下、ループ端Ｌ２１とＬ２２で挟まれた処理を、説明の都合上、「判定ループ」と記載する。判定部９４は、経路候補の各々について、送信元から宛先までの判定ループの処理を行ったかを判定する（ループ端Ｌ２１）。経路候補の各々について、送信元から宛先までの判定ループの処理を行っていない場合、判定部９４は、処理対象の経路Ｐについて、経路Ｐに含まれる各装置の各々から、処理対象のエントリＲに対応する情報が得られているかを判定する。ここで、処理対象のエントリＲに対応する情報とは、処理対象のエントリで通知された外部ヘッダの送信元ポート番号と検出パケットの内部ヘッダが対応付けられた情報である。経路Ｐに含まれる通信装置３０と転送装置７０の全てから、処理対象のエントリＲに対応する情報が得られている場合、その経路では障害が発生しているかの判定処理の対象としてカバーされていると判定する（ステップＳ６７）。なお、ステップＳ６７の処理でカバーされたことが確認された経路では、経路中の全ての装置を検出パケットが通過しているので、障害は発生していない。ステップＳ６７の処理後、ループ端Ｌ２１以降の処理が繰り返される。判定ループの処理が終わると、ループ端Ｌ１１以降の処理が繰り返される。
【０１２２】
その後、予め定められた記録取得の間隔が経過したか、外部から記録消去のコマンドを受信すると、設定部９１は、ステップＳ６３の処理を行う（ステップＳ６８でＹｅｓ）。その後、ステップＳ６４以降の処理が行われる。一方、予め定められた記録取得の間隔が経過しておらず、外部から記録消去のコマンドも受信していない場合、ステップＳ６４以降の処理が行われる（ステップＳ６８でＮｏ）。
【０１２３】
図２４は、記録部８８が保持する情報の例を説明する図である。以下、図２４を参照しながら、判定ループでの処理の例を説明する。記録部８８は、取得部９２の処理によって取得された発行情報や通過情報を、ノードＩＤ別に記録する。図２４では分かりやすくするために、仮想マシン１０ａから仮想マシン１０ｂに送信された検出パケットに関する情報のみを図示しているが、実際には、複数の検出パケットに関する情報が並列的に記録部８８に記録され得る。
【０１２４】
時刻ｔ１の段は、図２３のステップＳ６３により、管理装置８０から各装置に対して発行情報や通過情報の消去が要求された直後の記録部８８の状態を示す。管理装置８０中の９１は、各装置に対して発行情報や通過情報の消去を要求すると共に、記録部８８に記録されている情報も初期化するので、管理装置８０に過去に通知された情報が消去されている。
【０１２５】
時刻ｔ２において、取得部９２が、通信装置３０から発行情報を取得すると共に、転送装置７０から通過情報を取得したとする。すると、取得部９２は、取得した情報を、その情報を通知してきた装置に割り当てられたノードＩＤごとに分類して記録部８８に記録する。時刻ｔ２では、ノードＩＤ＝Ｎ１、Ｎ２、Ｎ３、Ｎ４、Ｎ６が割り当てられた各装置から、送信元ポート番号＝Ａを含む外部ヘッダを仮想マシン１０ａから仮想マシン１０ｂに送信された検出パケットに付加したパケットの情報が得られたとする。図２４では、仮想マシン１０ａから仮想マシン１０ｂに送信された検出パケットの情報のみを抽出して記載しているので、見やすくするために、外部ヘッダの送信元ポートの値を含む四角形を、各装置から得られた情報として図示する。
【０１２６】
時刻ｔ２の情報が得られた後で、判定ループにおいて、判定部９４は、経路Ｒ２１と経路Ｒ２２の各々について、検出パケットの通過が確認できているかを判定する。時刻ｔ２では、通信装置３０ａ（Ｎ１）、転送装置７０ａ（Ｎ２）、転送装置７０ｄ（Ｎ３）、転送装置７０ｂ（Ｎ４）、通信装置３０ｂ（Ｎ６）の各々で、送信元ポート番号＝Ａの検出パケットが確認されている。従って、判定部９４は、時刻ｔ２の時点では、経路Ｒ２１を介して検出パケットが送信されていると判定する。一方、経路Ｒ２２については、時刻ｔ２では、検出パケットが送信されていることが確認されていない。
【０１２７】
時刻ｔ３において、取得部９２が、通信装置３０から発行情報を取得すると共に、転送装置７０から通過情報を取得したとする。すると、時刻ｔ２での処理と同様に記録部８８への記録が行われる。図２４に示すように、時刻ｔ３では、ノードＩＤ＝Ｎ１、Ｎ２、Ｎ３、Ｎ５、Ｎ６が割り当てられた各装置から、送信元ポート番号＝Ｂを含む外部ヘッダを仮想マシン１０ａから仮想マシン１０ｂに送信された検出パケットに付加したパケットの情報が得られたとする。
【０１２８】
時刻ｔ３の情報が得られた後で、判定ループにおいて、判定部９４は、経路Ｒ２１と経路Ｒ２２の各々について、検出パケットの通過が確認できているかを判定する。経路Ｒ２１については、時刻ｔ２に得られた情報により、検出パケットの通過が確認できている。時刻ｔ３で新たに得られた情報では、通信装置３０ａ（Ｎ１）、転送装置７０ａ（Ｎ２）、転送装置７０ｄ（Ｎ３）、転送装置７０ｃ（Ｎ５）、通信装置３０ｂ（Ｎ６）の各々で、送信元ポート番号＝Ｂの検出パケットが確認されている。従って、判定部９４は、時刻ｔ３の時点では、経路Ｒ２２を介して検出パケットが送信されていると判定する。このため、判定部９４は、経路Ｒ２１と経路Ｒ２２の両方について、検出パケットが問題なく通過したと判定する。
【０１２９】
なお、図１８を参照しながら説明したように、管理装置８０が出力装置１０４を保持している場合は、判定部９４での判定結果を出力装置１０４に出力することができる。例えば、図２４に示すような障害を検出する対象となっている各経路での検出パケットの通過状況の経時変化と、経路ごとの障害の有無が、ディスプレイ上に表示されても良い。すると、オペレータは、検出結果を用いて、迂回路の設定やネットワークのメンテナンスを行うことができる。
【０１３０】
以上説明したように、第４の実施形態では、管理装置８０が通信装置３０間の通信に使用される全ての経路を特定した上で、各経路を通過したパケットのヘッダの情報を用いて経路ごとに検出パケットの通過が可能であるかを判定できる。従って、複数の経路が設定されているシステムにおいても、確実に全ての経路での障害の有無を判定することができる。
【０１３１】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１３２】
検出パケットごとに異なる値となる変数がカウンタによって生成される場合を例として説明したが、これは一例に過ぎない。例えば、検出パケットごとに異なる値となる変数は、２つおきや３つおきの値など、等差数列上の値になっていても良い。また、乱数表などの所定のテーブルをハッシュ計算部４２が用いることにより、変数を生成しても良い。さらに、以上の説明では、検出パケットごとに異なる値となる変数が内部ヘッダのハッシュ値に加算される場合を例として説明したが、検出パケットごとに異なる値となる変数とハッシュ値の間の演算は実装に応じて任意に変更され得る。例えば、加減乗除の１つ以上が演算として用いられても良い。
【０１３３】
以上の説明では、通信装置において、ＴＥＰが仮想スイッチ３１に含まれている場合を例として説明したが、通信装置が物理スイッチを含んでいる場合、ＴＥＰはその物理スイッチに含まれていても良い。その場合、仮想マシン１０の代わりに、物理スイッチに接続された物理的な通信装置が仮想マシン１０と同様に、検出パケットの送受信を行ってもよい。
【０１３４】
検出パケットごとに異なる値となる変数との演算の結果、内部ヘッダのハッシュ値と同じ値が得られる場合もありうる。ただし、１つの検出パケットについての演算結果が、内部ヘッダのハッシュ値と一致しても、演算に使用される変数は検出パケットごとに異なるので、他の検出パケットでは、内部ヘッダのハッシュ値とは異なる値が演算結果として得られる確率が高い。
【０１３５】
さらに、検出パケットが送受信される通信装置３０間での通信に使用される経路の数に応じて、各検出パケットの複製回数が決定されてもよい。例えば、複製回数決定部５２は、検出パケットの宛先に応じて、検出パケットが通過可能な経路数を求め、その経路数の全てについての障害の発生の有無を判定できる可能性が所定以上となる複製回数を決定してもよい。なお、経路数の求め方は、通信装置３０とスイッチ２０の間の通信によって行われてもよく、管理装置８０のようにネットワークの経路の情報を保持している装置から経路を複製回数決定部５２が取得してもよい。
【０１３６】
以上の説明では、カプセル化の際にＶＸＬＡＮが用いられる場合を例として説明したが、以上で説明したシステムは、カプセル化を伴う任意の通信システムに適用可能である。例えば、ＭＡＣ−ｉｎ−ＭＡＣが用いられるシステムやＩＰｖ４とＩＰｖ６が併用されるシステムにも、以上で説明した処理が適用され得る。
【０１３７】
さらに、実装に応じて、ＴＥＰ中での処理も変更され得る。例えば、ヘッダ情報記録部６１は、ハッシュ計算部４２から送信元ポート番号を取得する代わりに、外部ヘッダ付加部４３から外部ヘッダの情報を取得してもよい。
【０１３８】
第２の実施形態では、検出パケットの複製回数から、応答パケットの受信数の予測数を求めた上で、予測数の初期値分だけの応答パケットを受信したかを判定するために、記憶部５１中の予測値の値を応答パケットの受信のたびにデクリメントする例を述べた。しかし、図１３などを用いて説明した方法は一例であり、実装に応じて、予測数の初期値分だけの応答パケットを受信したかを判定できる任意の方法が使用可能である。例えば、予測数の初期値を保存すると共に、応答パケットの受信数をインクリメントし、予測数の初期値と応答パケットの受信数が等しくなったときに、応答パケットを仮想マシン１０に出力するように、計数部５４が動作しても良い。
【０１３９】
上述の第１〜第４の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を求めると共に、前記検出パケットに前記第２の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第１の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する
処理を情報処理装置に行わせることを特徴とするパケット送信プログラム。
（付記２）
前記検出パケットを複製することにより、第１のパケットと第２のパケットを生成し、
前記第１のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第３の値との演算で得られる値に設定し、
前記第２のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第４の値との演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする付記１に記載のパケット送信プログラム。
（付記３）
前記検出パケットの複製回数を用いて、前記検出パケットに対する応答パケットの受信数の予測数を求め、
前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの１つを、前記入力元に出力する
処理を前記情報処理装置に行わせることを特徴とする付記２に記載のパケット送信プログラム。
（付記４）
前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが１つ以上経由する確率を用いて、前記検出パケットの複製回数を決定する
処理を前記情報処理装置に行わせることを特徴とする付記２または３に記載のパケット送信プログラム。
（付記５）
前記第１の値を、前記検出パケットに付加する外部ヘッダ中の送信元ポート番号として計算し、
前記第１のパケットに付加される外部ヘッダの送信元ポート番号を、前記第３の値と前記第１の値の演算で得られる値に設定し、
前記第２のパケットに付加される外部ヘッダの送信元ポート番号を、前記第４の値と前記第１の値の演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする付記２〜４のいずれか１項に記載のパケット送信プログラム。
（付記６）
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から計算するとともに、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を計算する計算部と、
前記検出パケットに前記第２の値を含む外部ヘッダを付加するとともに、前記送信対象のパケットのうちで前記検出パケットではないパケットに前記第１の値を含む外部ヘッダを付加する付加部と、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する送信部
を備えることを特徴とする情報処理装置。
（付記７）
前記検出パケットが入力されると、前記検出パケットを複製することにより、第１のパケットと第２のパケットを生成する複製部
をさらに備え、
前記付加部は、
前記第１のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第３の値との演算で得られる値に設定し、
前記第２のパケットに付加する外部ヘッダに前記第２の値として含める値を、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第４の値との演算で得られる値に設定する
ことを特徴とする付記６に記載の情報処理装置。
（請求項８）
前記検出パケットの複製回数から求めた前記検出パケットに対する応答パケットの受信数の予測数を記憶する記憶部と、
前記検出パケットに対する応答パケットの受信数を計数する計数部
をさらに備え、
前記計数部は、
前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの１つを、前記入力元に出力する
ことを特徴とする付記７に記載の情報処理装置。
（付記９）
前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが１つ以上経由する確率を用いて、前記検出パケットの複製回数を決定する決定部
をさらに備えることを特徴とする付記７または８に記載の情報処理装置。
（付記１０）
前記計算部は、
前記第１の値を、前記検出パケットに付加する外部ヘッダ中の送信元ポート番号として計算し、
前記付加部は
前記第１のパケットに付加される外部ヘッダの送信元ポート番号を、前記第３の値と前記第１の値の演算で得られる値に設定し、
前記第２のパケットに付加される外部ヘッダの送信元ポート番号を、前記第４の値と前記第１の値の演算で得られる値に設定する
ことを特徴とする付記７〜９のいずれか１項に記載の情報処理装置。
（付記１１）
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第１の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第１の値と、前記検出パケットを送信するたびに変更される値との演算により、第２の値を求めると共に、前記検出パケットに前記第２の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第１の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信し、
前記検出パケットに対する応答パケットが得られるかを判定することにより前記障害を検出する
処理を情報処理装置が行うことを特徴とする障害検出方法。
（付記１２）
前記情報処理装置を含むネットワーク中の装置と通信可能な管理装置が、
前記情報処理装置から前記宛先装置に至る経路の候補を決定し、
前記情報処理装置、前記宛先装置、前記情報処理装置と前記宛先装置の間で送受信されるパケットを転送する転送装置の各々から、前記検出パケットに外部ヘッダが付加されたパケットの通過状況を取得し、
前記経路の候補の各々について、当該経路の候補に含まれる転送装置から取得した前記通過状況を用いて、当該経路の候補を介して、前記検出パケットに外部ヘッダが付加されたパケットが前記宛先装置に到達したかを判定することにより、障害の発生を検出する
ことを特徴とする付記１１に記載の障害検出方法。
（付記１３）
前記通過状況として通知される情報には、前記検出パケットの外部ヘッダに前記第２の値として設定された値が含まれており、
第１の検出パケットの外部ヘッダには、前記第２の値として、前記第１の値と前記検出パケットを送信するたびに変更される値として選択された第３の値との演算で得られる値が設定され、かつ、第２の検出パケットの外部ヘッダには、前記第２の値として、前記第１の値と、前記検出パケットを送信するたびに変更される値として選択された第４の値との演算で得られる値が設定された場合、
前記管理装置は、
前記第１の値と前記第３の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第１の検出パケットが通過したと判定するとともに、前記第１の値と前記第４の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第２の検出パケットが通過したと判定する
ことを特徴とする付記１２に記載の障害検出方法。
【符号の説明】
【０１４０】
２  ノード
５、４０、５０、６０  ＴＥＰ
１０  仮想マシン
１５  ネットワーク
２０  スイッチ
２５  サーバ
３０  通信装置
３１  仮想スイッチ
３２  ネットワークインタフェース
３３  送信部
３４  受信部
４１、７３  パケット照合部
４２  ハッシュ計算部
４３  外部ヘッダ付加部
４５  外部ヘッダ照合部
４６  外部ヘッダ除去部
５１、８５  記憶部
５２  複製回数決定部
５３  パケット複製部
５４  計数部
６１  ヘッダ情報記録部
６２、７５  管理装置インタフェース
７０  転送装置
７１  受信ポート
７２  スイッチ回路
７４、８８  記録部
７６  送信ポート
８０  管理装置
８１  インタフェース
８６  トポロジ情報
８７  アドレス情報
９０  処理部
９１  設定部
９２  取得部
９３  経路候補決定部
９４  判定部
１０１  プロセッサ
１０２  メモリ
１０３  入力装置
１０４  出力装置
１０５  バス
【図１】
2017118438.tif 000005
【図２】
2017118438.tif 000006
【図３】
2017118438.tif 000007
【図４】
2017118438.tif 000008
【図５】
2017118438.tif 000009
【図６】
2017118438.tif 000010
【図７】
2017118438.tif 000011
【図８】
2017118438.tif 000012
【図９】
2017118438.tif 000013
【図１０】
2017118438.tif 000014
【図１１】
2017118438.tif 000015
【図１２】
2017118438.tif 000016
【図１３】
2017118438.tif 000017
【図１４】
2017118438.tif 000018
【図１５】
2017118438.tif 000019
【図１６】
2017118438.tif 000020
【図１７】
2017118438.tif 000021
【図１８】
2017118438.tif 000022
【図１９】
2017118438.tif 000023
【図２０】
2017118438.tif 000024
【図２１】
2017118438.tif 000025
【図２２】
2017118438.tif 000026
【図２３】
2017118438.tif 000027
【図２４】
2017118438.tif 000028