(57)【要約】ループパケットまたはループフローを少ない処理負荷で検出することができるループ検出装置を提供する。分類手段８２は、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する。判定手段８３は、分類手段８２によって特定された第１の所定の情報を対象とし、受信手段８１が受信したパケット情報に含まれる第２の所定の情報を利用して、分類手段８２に特定された第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定する。
2011102086.tif 000002
【特許請求の範囲】
【請求項１】
パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信する受信手段と、
前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、
分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類手段に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備える
ことを特徴とするループ検出装置。
【請求項２】
受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する
請求項１に記載のループ検出装置。
【請求項３】
受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、少なくともパケットのペイロード、ＴＣＰシーケンス番号、ＩＤフィールドの情報、ＲＴＰシーケンス番号のいずれかを含むパケット情報を受信する
請求項１または請求項２に記載のループ検出装置。
【請求項４】
判定手段は、フロー識別子と第２の所定の情報との組に基づいて、分類手段によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第２の所定の情報との組毎にカウントし、カウント結果と第２の閾値とを比較することによって、分類手段に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する
請求項２または請求項３に記載のループ検出装置。
【請求項５】
受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する
請求項１に記載のループ検出装置。
【請求項６】
受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、ＴＴＬまたはインプットポートの情報を含むパケット情報を受信する
請求項１または請求項５に記載のループ検出装置。
【請求項７】
判定手段は、分類手段によって特定されたフロー識別子毎に、第２の所定の情報を分類し、分類された第２の所定の情報の種類の数と第３の閾値とを比較することによって、分類手段に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する
請求項５または請求項６に記載のループ検出装置。
【請求項８】
パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、
パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、
パケット情報抽出装置は、
当該パケット情報抽出装置を通過するパケットから、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を抽出する抽出手段と、
前記パケット情報をループ検出装置に送信する送信手段とを含み、
ループ検出装置は、
パケット情報抽出装置から前記パケット情報を受信する受信手段と、
前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、
分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類手段に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含む
ことを特徴とするループ検出システム。
【請求項９】
パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信し、
前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定し、
特定した第１の所定の情報を対象とし、受信したパケット情報に含まれる前記第２の所定の情報を利用して、特定した前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する
ことを特徴とするループ検出方法。
【請求項１０】
コンピュータに、
パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信する受信処理、
前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類処理、および、
分類処理で特定した第１の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類処理で特定した前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理
を実行させるためのループ検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、宛先に到着せずにネットワーク内に滞留し続けるループパケット、または、ループパケットが含まれるループフローを検出するループ検出装置、ループ検出システム、ループ検出方法、およびループ検出プログラムに関する。
【背景技術】
【０００２】
過大なトラフィックの有無を検出する技術が特許文献１に記載されている。特許文献１に記載された装置は、設定帯域以上の流量になったか否かを判定するための閾値を保持し、その閾値と流量とを比較することによって、過大フローを検出する。【０００３】
また、ネットワークに属する各スイッチに対する制御をコントローラが行うことにより、コントローラがフロー毎に通信経路等を制御するシステムがある。このようなシステムの例として、オープンフローが適用されたシステムがある。オープンフローは、コントローラがスイッチを制御するためのプロトコルであり、オープンフローの仕様は非特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７４００号公報
【非特許文献】
【０００５】
【非特許文献１】“OpenFlow Switch Specification Version 0.9.0”、２００９年７月２０日、[平成２２年２月４日検索]、インターネット<http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
宛先となる装置に到着せずに、ネットワークの内部で循環し続けるパケットを、ループパケットという。また、ループパケットを含むフローをループフローという。ループパケットの存在によりネットワーク障害が発生する場合があるので、ループパケットやループフローを検出することが好ましい。【０００７】
特許文献１に記載された装置では、過大フローを検出することでループ障害の発生を推定することができるが、どのパケットがループパケットに該当するのかに関しては特定することができない。また、過大フローが必ずしもループフローであるとは限らないため、高い精度でループフローを検出することができない。【０００８】
また、ループパケットまたはループフローの検出処理を実現する場合において、メモリの使用量や計算量を少なくして装置の負荷を軽減できることが好ましい。【０００９】
そこで、本発明は、ループパケットまたはループフローを少ない処理負荷で検出することができるループ検出装置、ループ検出システム、ループ検出方法、およびループ検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によるループ検出装置は、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第１の所定の情報およびパケット内の第２の所定の情報を含むパケット情報を受信する受信手段と、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる第２の所定の情報を利用して、分類手段に特定された第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備えることを特徴とする。【００１１】
また、本発明によるループ検出システムは、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置が、当該パケット情報抽出装置を通過するパケットから、パケット内の第１の所定の情報およびパケット内の第２の所定の情報を含むパケット情報を抽出する抽出手段と、パケット情報をループ検出装置に送信する送信手段とを含み、ループ検出装置が、パケット情報抽出装置からパケット情報を受信する受信手段と、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる第２の所定の情報を利用して、分類手段に特定された第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含むことを特徴とする。【００１２】
また、本発明によるループ検出方法は、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第１の所定の情報およびパケット内の第２の所定の情報を含むパケット情報を受信し、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定し、特定した第１の所定の情報を対象とし、受信したパケット情報に含まれる第２の所定の情報を利用して、特定した第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定することを特徴とする。【００１３】
また、本発明によるループ検出プログラムは、コンピュータに、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、パケット内の第１の所定の情報およびパケット内の第２の所定の情報を含むパケット情報を受信する受信処理、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類処理、および、分類処理で特定した第１の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる第２の所定の情報を利用して、分類処理で特定した第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ループパケットまたはループフローを少ない処理負荷で検出することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明のループ検出システムの第１の実施形態の例を示すブロック図である。
【図２】第１の実施形態における動作を示すフローチャートである。
【図３】計測装置の構成例を示すブロック図である。
【図４】ループ検出装置の構成例を示すブロック図である。
【図５】フロー毎の観測回数情報の一例を概念的に示す説明図である。
【図６】パケット毎の観測回数情報の一例を概念的に示す説明図である。
【図７】ループパケット検出処理の処理経過の例を示すフローチャートである。
【図８】ループ検出装置が行う処理を模式的に示す概念図である。
【図９】ステップＳ２２０の処理経過を示す説明図である。
【図１０】ステップＳ２３０の処理経過を示す説明図である。
【図１１】ループフロー判定処理の処理経過を示すフローチャートである。
【図１２】第２の実施形態における動作を示すフローチャートである。
【図１３】第２の実施形態における計測装置の構成例を示すブロック図である。
【図１４】第２の実施形態におけるループ検出装置の構成例を示すブロック図である。
【図１５】経路情報の一例を概念的に示す説明図である。
【図１６】本発明のループ検出装置の最小構成の例を示す説明図である。
【図１７】本発明のループ検出システムの最小構成の例を示す説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面を参照して説明する。
【００１７】
実施形態１．
図１は、本発明のループ検出システムの第１の実施形態の例を示すブロック図である。本発明のループ検出システムは、計測装置１００と、ループ検出装置２００とを備える。計測装置１００は、ネットワーク内でパケットを転送するスイッチ３００間に配置され、スイッチ３００間で送受信されるパケットから情報を抽出する。また、計測装置１００がスイッチ３００により実現されていてもよい。すなわち、スイッチ３００が、計測装置１００としての動作も行う構成であってもよい。
【００１８】
複数のスイッチ３００によりネットワークが形成され、複数のフローのパケットが各スイッチを経由して、宛先の装置まで転送される。ただし、ループフローが生じる場合もある。各スイッチ３００は、パケットを転送するパケット転送装置と称してもよい。
【００１９】
計測装置１００は、フローの計測を行う。ここで、「計測」とは、パケットから情報を抽出することを意味する。すなわち、計測装置１００は、自身を通過するパケットから情報を抽出する。従って、計測装置１００は、パケット情報抽出装置と称することもできる。計測装置１００は、例えば、ルータによって実現される。
【００２０】
本実施形態において、ループ検出装置２００は、計測装置１００に接続され、計測装置１００が抽出した情報に基づいてループパケットまたはループフローを検出する。以下の説明では、説明を簡単にするために、ループ検出装置２００がループパケットを検出する場合を例に説明する。ループ検出装置２００は、例えば、サーバコンピュータによって実現される。ループ検出装置２００は、複数の計測装置１００に接続されていてもよい。その場合、ループ検出装置２００は、個々の計測装置１００毎に処理を行う。また、ループ検出装置２００と計測装置１００とが同一の装置で実現されていてもよい。
【００２１】
ここで、各フローを識別する情報（以下、フロー識別子と記す。）について説明する。各フローは、例えば、送信側ＩＰアドレス、受信側ＩＰアドレス、送信側ポート番号、受信側ポート番号、送信側ＭＡＣ（Media Access Control）アドレス、受信側ＭＡＣアドレス、プロトコルＩＤ（プロトコルの識別情報）等のパラメータによって識別することができる。従って、上記の例示したパラメータのうちの１つ以上のパラメータの組み合わせをフロー識別子として用いることができる。なお、例示したパラメータの名称において、「送信側」とは「送信元」を意味し、「受信側」とは、「宛先」を意味する。以下の説明では、「送信側ＭＡＣアドレスと受信側ＭＡＣアドレスとの組」をフロー識別子とする場合を例示するが、他のパラメータの組み合わせをフロー識別子としてもよい。また、一つのパラメータをフロー識別子としてもよい。また、例示したパラメータ以外のパラメータをフロー識別子としてもよい。共通のフロー識別子を有するパケットは、同じフローのパケットである。
【００２２】
図２は、第１の実施形態における動作を示すフローチャートである。
計測装置１００は、自身を通過するフローを計測する。すなわち、計測装置１００は、自身を通過するパケットから情報を抽出する。そして、計測装置１００は、抽出した情報をループ検出装置２００に送信する（ステップＳ１００）。このとき、計測装置１００は、抽出した情報を、ループ検出装置２００が受信可能なフォーマットに変換し、変換後の情報をループ検出装置２００に送信する。
【００２３】
パケットから抽出され、ループ検出装置２００で受信可能なフォーマットに変換された情報を計測情報と記し、符号ＭＳＲで表す。計測装置１００は、ｓＦｌｏｗ，ＮｅｔＦｌｏｗ，ＰＳＡＭＰ，ＩＰＦＩＸ等のｘＦｌｏｗ技術のフォーマットに従って、パケットから抽出した情報に対してフォーマット変換を行う。計測装置１００は、フルキャプチャでダンプした情報を用いて、計測情報ＭＳＲを作成してもよい。
【００２４】
計測情報ＭＳＲには、フロー識別子およびパケットのペイロードが含まれる。ただし、後述する第１の実施形態の変形例のように、フロー識別子およびパケットのＴＴＬ（Time-To-Live）を含むように計測情報ＭＳＲを作成してもよい。
【００２５】
本実施形態では、計測装置１００がｓＦｌｏｗのフォーマットに従って計測情報ＭＳＲを作成する場合を例にして説明する。この場合、計測装置１００は、受信したパケットの先頭１２８バイトの情報を抽出する。この情報には、フロー識別子およびパケットのペイロードが含まれる。
【００２６】
また、計測装置１００は、計測情報ＭＳＲを周期的にループ検出装置１００に送信する。
【００２７】
ループ検出装置２００は、計測装置１００から計測情報ＭＳＲを受信し、計測情報ＭＳＲに基づいて、ループパケットの有無を調査する。そして、ループ検出装置２００は、ループパケットであると判定されるパケットがあるならば、そのパケットをループパケットとして検出する（ステップＳ２００）。ステップＳ２００において、ループ検出装置２００は、計測情報ＭＳＲに含まれるフロー識別子を利用して、ループパケットの可能性のあるパケットを特定する。そして、ループ検出装置２００は、そのパケットを対象として、計測情報ＭＳＲに含まれるフロー識別子およびペイロードを利用して、ループパケットであるか否かを判定する。
【００２８】
より詳細には、ループパケットの可能性のあるパケットを特定する処理で、ループ検出装置２００は、受信した計測情報ＭＳＲに含まれるフロー識別子（本例では、送信側ＭＡＣアドレスと受信側ＭＡＣアドレスとの組）により、そのフロー識別子の抽出元のパケットを分類し、フロー識別子毎に、分類したパケットの数をカウントする。このフロー識別子毎のカウント結果は、計測装置１００が観測したフロー毎のパケット数（すなわち、各フローの観測回数）を意味する。ループパケットは、ネットワーク内に滞留し続けているパケットであるので、ループパケットは計測装置１００で複数回観測される可能性が高い。そのため、ループ検出装置２００は、カウント結果の値が、予め定めた閾値（以下、候補特定用閾値と記す。）以上となったフローのパケットを、ループパケットの可能性があるパケットとして特定する。以下、ループパケットの可能性があるパケットを、ループパケット候補と記す。また、カウント結果の値が、候補特定用閾値以上になったフローは、ループフロー候補であるということができる。なお、ループフローは、ループパケットのフロー識別子によって特定されるフローである。
【００２９】
そして、ループ検出装置２００は、ループパケット候補を対象として、ループパケットであるか否かを判定する処理では、ループパケット候補から抽出された計測情報ＭＳＲに含まれるフロー識別子およびペイロードを参照して、フロー識別子およびペイロードの組毎に、ループパケット候補を分類し、分類したループパケット候補の数をカウントする。このカウント結果は、計測装置１００によるパケット毎（ループパケット候補毎）の観測回数を意味する。ループ検出装置２００は、このカウント結果が、予め定めた閾値（以下、ループパケット判定用閾値と記す。）以上となっているループパケット候補を、ループパケットであると判定する。
【００３０】
このように、ステップＳ２００において、まず、ループパケット候補を特定し、そのループパケット候補を対象にして、同じフロー識別子およびペイロードを含むループパケット候補の観測回数をカウントし、そのカウント結果からループパケットであるか否かを判定する。ループパケット候補（すなわち、フロー識別子およびペイロードを用いてパケット観測回数をカウントする対象）を定め、そのループパケット候補に関してのみペイロードの調査を行うので、全パケットに対してペイロードを調査する場合と比較して、メモリ使用量や計算量等の処理負荷を軽減することができる。
【００３１】
以下、各装置の構成例や動作例を詳しく説明する。
図３は、計測装置１００の構成例を示すブロック図である。計測装置１００は、計測を行う処理装置１０１を備える。処理装置１０１は、計測装置１００自身を通過するパケットから情報をキャプチャするキャプチャ部１１０と、キャプチャ部１１０によってキャプチャされた情報に対してフォーマット変換を行うことによって計測情報ＭＳＲを作成する計測情報作成部１２０とを含む。キャプチャ部１１０および計測情報作成部１２０は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、計測装置１００のプログラム記憶部（図示せず）がプログラムを記憶し、計測装置１００のＣＰＵがそのプログラムに従って、キャプチャ部１１０および計測情報作成部１２０として動作する。キャプチャ部１１０と計測情報作成部１２０がそれぞれ別のユニットで実現されていてもよい。
【００３２】
ステップＳ１００（図２参照）において、キャプチャ部１１０は、計測装置１００を通過するパケットから先頭の１２８バイトの情報をキャプチャする。すなわち、パケットから先頭の１２８バイトの情報を抽出する。この情報には、フロー識別子（送信側ＭＡＣアドレスおよび受信側ＭＡＣアドレス）とペイロードとが含まれている。なお、キャプチャ部１１０は、周期的にパケットから情報をキャプチャしてもよい。あるいは、ランダムにパケットを選び、そのパケットから情報をキャプチャしてもよい。
【００３３】
そして、計測情報作成部１２０は、キャプチャ部１１０がキャプチャした情報を、ｓＦｌｏｗのフォーマットに変換することにより、計測情報ＭＳＲを作成する。計測情報作成部１２０は、作成した計測情報ＭＳＲを、一定期間毎にループ検出装置２００に送信する。
【００３４】
本実施形態では、計測装置１１０とループ検出装置２００との間の計測情報ＭＳＲの送受信にｓＦｌｏｗを適用する場合を例にしているが、ＮｅｔＦｌｏｗ，ＰＳＡＭＰ，ＩＰＦＩＸ等の他の技術を適用してもよい。ｓＦｌｏｗ以外の技術を適用する場合、パケットから抽出される情報は、先頭の１２８バイトに限定されない。
【００３５】
図４は、ループ検出装置２００の構成例を示すブロック図である。ループ検出装置２００は、ループパケット候補の特定やループケットの判定を行う処理装置２０１と、記憶装置２０２とを備える。
【００３６】
処理装置２０１は、記憶装置２０２に対して書き込みや読み込みを行って、処理を進める。処理装置２０１は、受信部２１０と、分類部２２０と、検出部２３０とを含む。受信部２１０は、計測装置１１０が送信した計測情報ＭＳＲを受信する。分類部２２０は、ループパケット候補を特定する。検出部２３０は、ループパケット候補がループパケットであるか否かを判定し、ループパケットを検出する。
【００３７】
受信部２１０、分類部２２０および検出部２３０は、例えば、ループ検出プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ループ検出装置２００のプログラム記憶部（図示せず）がループ検出プログラムを記憶し、ループ検出装置２００のＣＰＵがそのループ検出プログラムに従って、受信部２１０、分類部２２０および検出部２３０として動作すればよい。この場合、処理装置２０１がＣＰＵに相当する。また、受信部２１０、分類部２２０および検出部２３０が別々のユニットで実現されていてもよい。
【００３８】
記憶装置２０２は、例えば、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）によって実現される。記憶装置２０２は、計測情報ＭＳＲと、フロー毎の観測回数情報ＯＢＦＬＯＷと、パケット毎の観測回数情報ＯＢＰＫＴと、コンフィグ情報ＣＯＮＦとを記憶する。
【００３９】
計測情報ＭＳＲは、計測装置１１０から受信した受信した情報であり、計測情報ＭＳＲの元となったパケットのフロー識別子およびペイロードを含んでいる。
【００４０】
フロー毎の観測回数情報ＯＢＦＬＯＷは、計測装置１００における各フローの観測回数を示す情報である。本実施形態では、フロー毎の観測回数情報ＯＢＦＬＯＷのデータ構造に、ブルームフィルタの一種であるカウンティングフィルタを用いる。図５は、フロー毎の観測回数情報ＯＢＦＬＯＷの一例を概念的に示す説明図である。記憶装置２０２は、フロー毎のフィールドに、フロー識別子毎のパケット観測回数（換言すれば、各フローの観測回数）のカウント結果を記憶する。フローの分類には、計測情報ＭＳＲに含まれるパケットヘッダ内のフロー識別子が用いられ、ペイロードは考慮されない。分類部２２０は、計測装置１００から受信した計測情報ＭＳＲ内のフロー識別子を参照し、そのフロー識別子に対応するフィールドのカウント値を１増加させる。分類部２２０は、カウント値が候補特定用閾値以上となったフローのパケットをループパケット候補と判定する。この処理は、カウント値が候補特定用閾値以上となったフローをループフロー候補と判定する処理であるということもできる。
【００４１】
パケット毎の観測回数ＯＢＰＫＴは、計測装置１００における各パケット（より詳しくは、ループパケット候補）の観測回数を示す情報である。本実施形態では、パケット毎の観測回数ＯＢＰＫＴのデータ構造として、ブルームフィルタの一種であるカウンティングフィルタを用いる。図６はパケット毎の観測回数情報ＯＢＰＫＴの一例を概念的に示す説明図である。記憶装置２０２は、パケット毎のフィールドに、計測装置１００によるパケット観測回数を記憶する。パケットの分類には、計測情報ＭＳＲに含まれるパケットヘッダ内のフロー識別子とペイロードが用いられる。検出部２３０は、計測装置１００から受信した計測情報ＭＳＲ内のフロー識別子およびペイロードを参照し、そのフロー識別子およびペイロードの組に対応するフィールドのカウント値を１増加させる。検出部２３０は、カウント値がループパケット判定用閾値以上になったフィールドに該当するループパケット候補をループパケットと判定する。
【００４２】
なお、ここでは、フロー毎の観測回数情報ＯＢＦＬＯＷやパケット毎の観測回数ＯＢＰＫＴのデータ構造にカウンティングフィルタを用いる場合を示すが、他のデータ構造を用いてもよい。
【００４３】
コンフィグ情報ＣＯＮＦは、フロー毎の観測回数情報ＯＢＦＬＯＷおよびパケット毎の観測回数ＯＢＰＫＴをリフレッシュする周期や、候補特定用閾値、ループパケット判定用閾値等の、ループ検出装置２００に関する各種設定値を含む情報である。
【００４４】
図７は、ループ検出装置２００が行うループパケット検出処理（ステップＳ２００、図２参照）の処理経過の例を示すフローチャートである。また、図８は、ループ検出装置２００が行う処理を模式的に示す概念図である。
【００４５】
受信部２１０は、計測装置１００が送信する計測情報ＭＳＲを受信し、その計測情報ＭＳＲを記憶装置２０２に格納する（ステップＳ２１０）。この計測情報ＭＳＲは、計測装置１００が観測したパケットのヘッダおよびペイロードを含んでいる。ヘッダは、フロー識別子（送信側ＭＡＣアドレスおよび受信側ＭＡＣアドレス）を含んでいる。
【００４６】
分類部２２０は、ステップＳ２１０で受信した計測情報ＭＳＲに基づいて、その計測情報ＭＳＲの元となるパケットのフローを分類する（ステップＳ２２０）。分類部２２０は、計測情報ＭＳＲに含まれているヘッダ内のフロー識別子（送信側ＭＡＣアドレスおよび受信側ＭＡＣアドレス）によりフローを分類する。ただし、分類部２２０は、フロー識別子をハッシュ値に変換し、そのハッシュ値でフローを分類する。分類部２２０は、フロー毎の観測回数情報ＯＢＦＬＯＷにおいて、フロー識別子を変換したハッシュ値に対応するフィールドのカウント値を１増加させる。
【００４７】
図９は、ステップＳ２２０の処理経過を示す説明図である。ステップＳ２２０において、分類部２２０は、ステップＳ２１０で受信した計測情報ＭＳＲに含まれるフロー識別子をＫＥＹとしてハッシュ値を算出する（ステップＳ２２１）。本例では、分類部２２０は、送信側ＭＡＣアドレスおよび受信側ＭＡＣアドレスをＫＥＹとしてハッシュ関数に代入することによって、ハッシュ値を計算すればよい。ハッシュ関数としては、一般的に用いられているＳＨＡ−１やＭＤ２等を用いればよいが、他のハッシュ関数を用いてもよい。
【００４８】
次に、分類部２２０は、フロー毎の観測回数情報ＯＢＦＬＯＷにおいて、ステップＳ２２１で計算したハッシュ値に対応するフィールドのカウント値を１増加させる（ステップＳ２２２）。この値は、ステップＳ２２１でＫＥＹとしたフロー識別子が示すフローのパケット観測回数であり、フローの観測回数であるとも言える。
【００４９】
ステップＳ２２１において、分類部２２０は、複数のハッシュ関数に関して、それぞれフロー識別子のハッシュ値を計算してもよい。そして、分類部２２０は、ハッシュ関数毎に別々の観測回数情報ＯＢＦＬＯＷを用意しておき、ステップＳ２２２では、ハッシュ関数毎にカウント値を更新してもよい。この場合、一つのフロー識別子に対して、ハッシュ関数の種類分のカウント値が得られるが、そのカウント値のうち、最小の値をフロー観測回数として採用すればよい。このように複数のハッシュ関数を用いることで、ハッシュ値の衝突によるカウントのミスを軽減することができる。また、計算量やメモリ使用量をより少なくする場合には、一つのハッシュ関数を用いればよい。
【００５０】
ステップＳ２２２の次に、分類部２２０は、ステップＳ２２２で更新したカウント値と、コンフィグ情報ＣＯＮＦに含まれている候補特定用閾値とを比較する（ステップＳ２２３）。カウント値が候補特定用閾値以上であれば（ステップＳ２２３におけるＹｅｓ）、分類部２２０は、そのカウント値に対応するフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードに関して、検出部２３０にステップＳ２３０（図７参照）の処理を開始させる。このことは、候補特定用閾値以上となったカウント値に対応するフロー識別子が抽出されたパケットをループパケット候補としていることを意味する。また、フロー識別子が示すフローをループフロー候補としていることを意味する。一方、カウント値が候補特定用閾値未満であれば（ステップＳ２２３におけるＮｏ）、そのカウント値に対応するフロー識別子に関して、処理を終了する。
【００５１】
分類部２２０は、計測装置１００から受信した情報における各フロー識別子について、それぞれステップＳ２２１以降の処理を実行する。
【００５２】
検出部２３０は、フロー毎の観測回数情報ＯＢＦＬＯＷにおいて、候補特定用閾値以上になったカウント値に対応するフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードとを用いて、そのフロー識別子およびペイロードを含むループパケット候補が、ループパケットに該当するか否かを判定する（ステップＳ２３０）。検出部２３０は、ステップＳ２３０において、フロー識別子とペイロードとの組をハッシュ値に変換し、パケット毎の観測回数情報ＯＢＰＫＴにおいて、そのハッシュ値に対応するフィールドのカウント値を１増加させる。検出部２３０は、そのカウント値とループパケット判定用閾値とを比較し、ループパケット判定用閾値以上となったカウント値に対応するフロー識別子とペイロードとの組を含むパケットを、ループパケットとして検出する。
【００５３】
図１０は、ステップＳ２３０の処理経過を示す説明図である。図９に示すステップＳ２２３において、分類部２２０が候補特定用閾値以上のカウント値に対応するフロー識別子を特定したならば、検出部２３０は、そのフロー識別子と、そのフロー識別子とともにパケットから抽出されたペイロードとを計測情報ＭＳＲから読み出す。そして、検出部２３０は、そのフロー識別子およびペイロードの組をＫＥＹとしてハッシュ値を算出する（ステップＳ２３１）。本例では、検出部２３０は、送信側ＭＡＣアドレスおよび受信側ＭＡＣアドレスとペイロードとをＫＥＹとしてハッシュ関数に代入することによって、ハッシュ値を計算すればよい。ハッシュ関数としては、一般的に用いられているＳＨＡ−１やＭＤ２等を用いればよいが、他のハッシュ関数を用いてもよい。
【００５４】
次に、検出部２３０は、パケット毎の観測回数情報ＯＢＰＫＴにおいて、ステップＳ２３１で計算したハッシュ値に対応するフィールドのカウント値を１増加させる（ステップＳ２３２）。この値は、ステップＳ２３１でＫＥＹとしたフロー識別子およびペイロードを含むループパケット候補の観測回数である。
【００５５】
ステップＳ２３１において、検出部２３０は、複数のハッシュ関数に関して、それぞれフロー識別子およびペイロードの組のハッシュ値を計算してもよい。そして、検出部２３０は、ハッシュ関数毎に別々の観測回数情報ＯＢＰＫＴを用意しておき、ステップＳ２３２では、ハッシュ関数毎にカウント値を更新してもよい。この場合、フロー識別子とペイロードの一つの組に対して、ハッシュ関数の種類分のカウント値が得られるが、そのカウント値のうち、最小の値をパケット観測回数として採用すればよい。このように複数のハッシュ関数を用いることで、ハッシュ値の衝突によるカウントのミスを軽減することができる。また、計算量やメモリ使用量をより少なくする場合には、一つのハッシュ関数を用いればよい。
【００５６】
ステップＳ２３２の次に、検出部２３０は、ステップＳ２３２で更新したカウント値と、コンフィグ情報ＣＯＮＦに含まれているループパケット判定用閾値とを比較する（ステップＳ２３３）。カウント値がループパケット判定用閾値以上であれば（ステップＳ２３３におけるＹｅｓ）、検出部２３０は、そのカウント値に対応するフロー識別子およびペイロードの組を含むループパケット候補をループパケットであると判定する。また、カウント値がループパケット判定用閾値未満であれば（ステップＳ２３３におけるＮｏ）、検出部２３０は、そのループパケット候補をループパケットとして検出せずに、そのループパケット候補に関する処理を終了する。
【００５７】
また、分類部２２０は、コンフィグ情報ＣＯＮＦで規定されているリフレッシュの周期で、フロー毎の観測回数情報ＯＢＦＬＯＷを定期的にリフレッシュする。同様に、検出部２３０も、コンフィグ情報ＣＯＮＦで規定されている周期で、パケット毎の観測回数ＯＢＰＫＴをリフレッシュする。リフレッシュにより、各カウント値は０に初期化される。
【００５８】
上記の説明では、ステップＳ２３０でフロー識別子およびペイロードを用いる場合を例にして説明したが、検出部２３０は、ステップＳ２３０で、フロー識別子と、エンドツーエンド（End-to-End）で変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報とを用いて処理を行えばよい。ペイロードは、「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の一例である。「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の他の例として、ＴＣＰ（Transmission Control Protocol ）シーケンス番号、ＩＤフィールドの情報、ＲＴＰ（Real-time Transport Protocol）シーケンス番号もある。よって、ステップＳ２３０では、フロー識別子とＴＣＰシーケンス番号とを用いてもよい。また、フロー識別子とＩＤフィールドの情報とを用いてもよい。また、フロー識別子とＲＴＰシーケンス番号とを用いてもよい。
【００５９】
すなわち、計測装置１００のキャプチャ部１１０は、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報と、フロー識別子とを含む情報をパケットから抽出し、計測情報作成部１２０は、そのフィールドの情報とフロー識別子を計測情報ＭＳＲに含めればよい。そして、検出部２３０は、フロー識別子と、「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」とを用いて、上記のステップＳ２３０と同様の処理を行えばよい。
【００６０】
本実施形態によれば、分類部２２０が、フロー識別子毎に計測装置１００におけるフロー観測回数をカウントし、そのカウント値が候補特定用閾値以上になったフロー識別子を特定する。そして、検出部２３０は、そのフロー識別子のみを対象として、フロー識別子と、フロー識別子とともにパケットから抽出されたペイロードとの組毎の計測装置１００におけるパケット観測回数をカウントする。そして、そのカウント値がループパケット判定用閾値以上になったフロー識別子とペイロードの組を含むパケットを、ループパケットとして検出する。このように、分類部２２０がパケットをスクリーニングし、スクリーニングされたパケット（ループパケット候補）のみに関して、フロー識別子とペイロードの組毎にパケット観測回数をカウントすればよいので、ループパケット検出のための計算量やメモリ使用量を抑えることができる。
【００６１】
フロー識別子と、フロー識別子およびペイロードの組とを比較すると、後者の方がデータ量が多い。よって、スクリーニングせずに、計測情報ＭＳＲの元となる全パケットを、フロー識別子とペイロードの組毎に分類して観測回数をカウントしていくと計算量やメモリ使用量が多くなってしまう。また、フロー識別子とペイロードの組の種類が増加するので、ハッシュ値の計算を行うときにハッシュ値の衝突確率も増加してしまう。本発明では、分類部２２０のスクリーニングにより、フロー識別子とペイロードの組毎に分類して観測回数をカウントする対象を絞り込んでいるので、処理負荷を抑えることができる。また、ハッシュ値の衝突確率の増加を防止することができる。
【００６２】
また、上記の実施形態では、ループ検出システムが、ループパケットを検出する場合を例にして説明したが、ループフローを検出してもよい。ループフローを検出する場合においても、計測装置１００の動作は上記の動作と同様である。また、ループ検出装置２００の検出部２３０は、ステップＳ２３３において、ループパケット判定用閾値以上になっている観測回数情報ＯＢＰＫＴのカウント値があるならば、そのカウント値に対応するフロー識別子およびペイロードの組を特定し、そのフロー識別子によって特定されるフローをループフローと判定すればよい。他の動作は、上記の実施形態と同様である。ループフローを検出する場合にも、処理負荷を抑えるという効果が得られる。
【００６３】
次に、第１の実施形態の変形例として、計測処理１００が、フロー識別子およびパケットのＴＴＬを含むように計測情報ＭＳＲを作成し、ループ検出装置２００がその計測情報ＭＳＲを参照してループフローを検出する実施形態を説明する。なお、第１の実施形態と同様の処理については説明を省略する。本変形例では、ループフローが検出対象となる。本変形例においても、計測装置１００およびループ検出装置２００は、それぞれ図３、図４に例示する構成要素を含む。
【００６４】
ＴＴＬは、パケットに格納されているパラメータであり、パケットの送信元で初期値が設定され、パラメータがスイッチ３００（図１参照）を経由する毎に、スイッチ３００によって１ずつ減算される。なお、ＴＴＬのバイト数は１バイトである。
【００６５】
本変形例においても、計測装置１００は、図３に例示する構成要素を含み、計測情報ＭＳＲを作成する。ただし、計測装置１００のキャプチャ部１１０（図３参照）は、計測装置１００を通過するパケットからフロー識別子およびＴＴＬを含む情報を抽出する。そして、計測情報作成部１２０が、キャプチャ部１１０によって抽出された情報に対してフォーマット変換を行い、計測情報ＭＳＲを作成する。計測情報作成部１２０は、フロー識別子およびＴＴＬを含む計測情報ＭＳＲをループ検出装置２００に送信する。
【００６６】
また、本変形例においても、ループ検出装置２００は、図４に例示する構成要素を含む。ただし、記憶装置２０２は、パケット毎の観測回数情報ＯＢＰＫＴの代わりに、各フローにおけるＴＴＬ毎の観測回数情報を記憶する。以下、この情報をＴＴＬ観測回数情報と記す。ＴＴＬ観測回数情報のデータ構造にも、例えば、カウンティングフィルタが用いられる。ただし、個々のフローに関してそれぞれ、ＴＴＬ毎の計測回数がカウントされる。従って、本変形例では、フロー毎にそれぞれカウンティングフィルタが保持される。
【００６７】
また、コンフィグ情報ＣＯＮＦは、ループパケット判定用閾値の代わりに、ＴＴＬ観測回数情報に含まれるＴＴＬのカウント値と比較されるループフロー判定用閾値を含む。
【００６８】
ループ検出装置２００の受信部２１０および分類部２２０は、第１の実施形態と同様であり、図７に示すステップＳ２１０およびステップＳ２２０（具体的には図９に示すステップＳ２２１〜Ｓ２２３）を実行する。
【００６９】
ステップＳ２２３（図９参照）において、更新後のカウント値が候補特定用閾値以上であるならば、分類部２２０は、そのカウント値に対応するフロー識別子に関し、そのフロー識別子とともに検出されたＴＴＬの観測回数を更新し、そのフロー識別子が示すフローがループフローであるか否かを判定する処理（ループフロー判定処理）を検出部２３０に開始させる。従って、本変形例では、検出部２３０は、図７に示すステップＳ２３０の代わりに、ループフロー判定処理を行う。
【００７０】
図１１は、ループフロー判定処理の処理経過を示すフローチャートである。図９に示すステップＳ２２３において、分類部２２０が候補特定用閾値以上のカウント値に対応するフロー識別子を特定したならば、検出部２３０は、そのフロー識別子とともにパケットから抽出されたＴＴＬを計測情報ＭＳＲから読み出す。なお、このフロー識別子を、以下、「着目しているフロー識別子」と記す。検出部は、読み出したＴＴＬをＫＥＹとしてハッシュ値を算出する（ステップＳ２４１）。検出部２３０は、ＴＴＬをＫＥＹとしてハッシュ関数に代入することによってＴＴＬのハッシュ値を計算すればよい。
【００７１】
次に、検出部２３０は、ＴＴＬ観測回数情報において、着目しているフロー識別子に関する各ＴＴＬのカウント値のうち、ステップＳ２４１で計算したハッシュ値に対応するカウント値を１増加させる（ステップＳ２４２）。すなわち、着目しているフロー識別子が示すフローにおいて、ステップＳ２４１で計測情報ＭＳＲから読み出したＴＴＬの観測回数を１増やす。
【００７２】
ＴＴＬのハッシュ値に対応するカウント値の初期値は０であり、ＴＴＬが観測されると、そのＴＴＬに関するカウント値は１増加される。よって、着目しているフロー識別子に関する各ＴＴＬのうち、カウント値が１以上になっているＴＴＬは、観測されたＴＴＬである。検出部２３０は、着目しているフロー識別子に関して、カウント値が１以上になっているフィールドの数（すなわち、観測されたＴＴＬの種類の数）と、ループフロー判定用閾値とを比較する（ステップＳ２４３）。観測されたＴＴＬの種類の数がループフロー判定用閾値以上であれば（ステップＳ２４３におけるＹｅｓ）、検出部２３０は、着目しているフロー識別子が示すフローをループフロート判定する。また、観測されたＴＴＬの種類の数がループフロー判定用閾値未満であれば（ステップＳ２４３におけるＮｏ）、検出部２３０は、ループフローを検出せずに、着目しているフロー識別子に関する処理を終了する。
【００７３】
一般に、ネットワークにおいて、送信元から送信先までの経路は頻繁に変動しない。そのため、ネットワーク内に配置された計測装置１００を通過するパケットのうち、同一フローの各パケットは同じ経路を通過してきたと考えられ、その各パケットのＴＴＬは同じ値である確率が高い。
【００７４】
しかし、ループフローのパケットは、計測装置１００を通過して、ネットワーク内を循環し、再度計測装置１００を通過することを繰り返す。同じパケットであっても、計測装置１００に到着したときのＴＴＬは、前回計測装置１００に到着したときのＴＴＬとは異なっている。よって、着目しているフローに関して、観測されるＴＴＬの種類が多ければ、そのフローがループフローであると判定できる。本変形例では、このことを利用して、ループフローを検出している。
【００７５】
また、この変形例においても、第１の実施形態と同様に、処理負荷を軽減してループフローを検出することができる。
【００７６】
また、上記の変形例では、ステップＳ２４１〜Ｓ２４３でＴＴＬを用いる場合を例に説明したが、検出部２３０は、パケットが転送される毎に変化するフィールドの情報を用いてステップＳ２４１〜Ｓ２４３の処理を行えばよい。ＴＴＬは、「パケットが転送される毎に変化するフィールドの情報」の一例である。
【００７７】
すなわち、計測装置１００のキャプチャ部１１０は、パケットが転送される毎に変化するフィールドの情報と、フロー識別子とを含む情報をパケットから抽出し、計測情報作成部１２０は、そのフィールドの情報とフロー識別子を計測情報ＭＳＲに含めればよい。そして、検出部２３０は、フロー識別子と、「パケットが転送される毎に変化するフィールドの情報」とを用いて、上記のステップＳ２４１〜Ｓ２４３と同様の処理を行えばよい。
【００７８】
「パケットが転送される毎に変化するフィールドの情報」の例として、ＴＴＬの他に、インプットポート（InputPort ）の情報が挙げられる。よって、検出部２３０は、インプットポートの情報を用いてステップＳ２４１〜Ｓ２４３の処理を行ってもよい。
【００７９】
実施形態２．
本発明は、ある制御装置（図示略）が、ネットワーク上のパケット転送装置（例えば、図１に示すスイッチ３００）を集中管理するネットワークシステムにも適用可能である。第２の実施形態は、そのようなネットワークシステムおいて実現される実施形態である。なお、ネットワークシステムは、制御装置が各パケット転送装置（図１に示すスイッチ３００）を制御する態様であれば、特に限定されないが、ここではオープンフロー技術を例にして説明する。
【００８０】
オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位での経路制御、障害回復、負荷分散、最適化を実現する。パケット転送装置として機能するオープンフロースイッチは、制御装置（オープンフローコントローラ）とセキュアチャネルを介して通信を行う。また、オープンフロースイッチは、フロー毎に分類情報とアクションとフロー統計情報とを定義したフローテーブルを保持する。分類情報は、パケットのヘッダと照合され、そのパケットが分類情報に対応するフローのパケットであるか否かを判断するための情報である。アクションは、そのアクション情報に対応するフローのパケットに対する処理内容を規定した情報である。
【００８１】
オープンフロースイッチは、パケットを受信すると、そのパケットと、フローテーブルの各エントリにおける分類情報とを照合して、そのパケットがどのフローのパケットであるかを判断する。そして、そのフローのアクションで定められた処理を、そのパケットに対して実行する。例えば、アクションで定められたオープンフロースイッチにそのパケットを転送する。
【００８２】
また、オープンフロースイッチは、フローテーブルにおける各エントリと照合してもパケットのフローを特定できない場合には、セキュアチャネルを介してそのパケットをオープンフローコントローラに送信し、そのパケットのフローに対応する分類情報、アクションの決定を要求する。なお、フローテーブルにおける各エントリと照合してもフローを特定できないパケットをファーストパケット（First Packet）と呼ぶ。オープンフローコントローラは、この要求に応じて、例えば、ファーストパケットの経路を決定し、経路上の各オープンフロースイッチに、新規フローの分類情報およびアクションを設定する。この設定により、経路上の各オープンフロースイッチは、新たなパケットを、決定された経路に沿って順次転送していくことができる。
【００８３】
第２の実施形態のループ検出システムも、図１に示すように、計測装置１００と、ループ検出装置２００とを備える。以下に示す説明では、図１に示す各スイッチ３００が、オープンフロースイッチである場合を例にして説明する。以下、オープンフロースイッチを単にスイッチと記す。
【００８４】
オープンフローでは、以下のパラメータを自由に組み合わせてフローを定義してよい。すなわち、入力ポート（Ingress Port）、ＭＡＣ  ＤＡ（ＭＡＣディスティネーションアドレス、すなわち受信側ＭＡＣアドレス）、ＭＡＣ  ＳＡ（ＭＡＣソースアドレス、すなわち送信側ＭＡＣアドレス）、Ｅｔｈｅｒｎｅｔ（登録商標）タイプ（ＴＰＩＤ）、ＶＬＡＮ  ＩＤ（Virtual LAN ID）、ＶＬＡＮ  ＴＹＰＥ（優先度）、ＩＰ  ＳＡ（ＩＰソースアドレス）、ＩＰ  ＤＡ（ＩＰディスティネーションアドレス）、ＩＰプロトコル、ソースポート（TCP/UDP(User Datagram Protocol) Source Port）、ＩＣＭＰ（Internet Control Message Protocol ）  Ｔｙｐｅ、ディスティネーションポート（TCP/UDP Destination Port）、あるいは、ＩＣＭＰ  Ｃｏｄｅを自由に組み合わせることで、フロー識別子を定義してよい。ここでは、送信側ＭＡＣアドレスと受信側ＭＡＣアドレスとの組をフロー識別子とする場合を例にして説明するが、他のパラメータの組み合わせをフロー識別子としてもよい。
【００８５】
計測装置１００（図１参照）は、スイッチ３００間に配置され、スイッチ３００間で送受信されるパケットから情報を抽出する。計測装置１００は、例えば、ルータによって実現される。ループ検出装置２００は、計測装置１００が抽出した情報に基づいてループパケットまたはループフローを検出する。ループ検出装置２００は、例えば、サーバコンピュータによって実現される。これらの点は、第１の実施形態またはその変形例と同様である。第２の実施形態では、ループパケットまたはループフローの検出処理に加え、ループ検出装置２００が、計測装置１００にループパケットの削除を指示し、計測装置１００が、その指示に従って、検出されたループパケット、あるいは、検出されたループフローのフロー識別子を有するパケットを削除する。
【００８６】
また、ループ検出装置２００は、複数の計測装置１００に接続されていてもよい。その場合、ループ検出装置２００は、個々の計測装置１００毎に処理を行う。また、ループ検出装置２００と計測装置１００とが同一の装置で実現されていてもよい。また、ループ検出装置２００がオープンフローコントローラ（図示略）と同一の装置で実現されていてもよい。
【００８７】
計測装置１００は、第１の実施形態で説明したように、パケットからフロー識別子およびペイロードを含む情報を抽出し、フロー識別子およびペイロードを含む計測情報ＭＳＲを作成する。また、以下の説明では、説明を簡単にするために、ループ検出装置２００が、ループパケットを検出する場合を例にして説明する。
【００８８】
図１２は、第２の実施形態における動作を示すフローチャートである。第２の実施形態と同様の処理については、図２と同一の符号を付し、詳細な説明を省略する。
【００８９】
計測装置１００は、自身を通過するパケットからフロー識別子およびペイロードを含む情報を抽出し、その情報をフォーマット変換して計測情報ＭＳＲを作成する。そして、計測装置１００は、計測情報ＭＳＲを周期的にループ検出装置１００に送信する（ステップＳ１００）。
【００９０】
ループ検出装置２００は、計測情報ＭＳＲを参照し、ループパケットの可能性のあるパケット（ループパケット候補）を特定する。そして、そのループパケット候補を対象として、フロー識別子およびペイロードを利用して、ループパケットであるか否かを判定する（ステップＳ２００）。
【００９１】
ステップＳ１００，Ｓ２００の動作は、第１の実施形態と同様である。従って、ループパケットを特定する際におけるメモリ使用量や計算量の増加を抑えることができる。
【００９２】
第２の実施形態では、ループ検出装置２００は、ループパケットに対する処理を規定する制御情報を作成し、その制御情報を計測情報１００に送信する（ステップＳ３００）。ループパケットに対する処理とは、具体的には、廃棄処理である。例えば、ループ検出装置２００は、ループパケットのフロー識別子を指定し、そのフロー識別子を含むパケットを廃棄する旨の制御情報を作成し、計測情報１００に送信する。
【００９３】
また、ループ検出装置２００は、フロー毎の経路情報（ＰＡＴと記す。）を保持しておき、ステップＳ３００では、ループパケットのフロー識別子と経路情報ＰＡＴとから、ループパケットが通過するスイッチ３００を特定してもよい。そして、ループ検出装置２００は、制御情報を、ループパケットが通過する経路上の各スイッチに送信してもよい。
【００９４】
制御情報を受信した計測装置１００は、自身を通過するパケットのうち、その制御情報に定められた条件に合致するパケットを廃棄する（ステップＳ４００）。例えば、制御情報に定められたフロー識別子を含むパケットが計測装置１００に到着したときに、計測装置１００は、そのパケットを廃棄する。
【００９５】
また、ループ検出装置２００がステップＳ３００で、ループパケットが通過する各スイッチ３００に対して制御情報を送信した場合、その各スイッチ３００も、自身に転送されたパケットのうち、制御情報に定められた条件に合致するパケットを廃棄する。
【００９６】
このように、ループ検出装置２００は、ループパケットを検出したときに、そのループパケットを廃棄するように、計測装置１００またはスイッチ３００を制御し、計測装置１００やスイッチ３００は、その制御に従ってループパケットを廃棄する。従って、第２の実施形態では、第１の実施形態の効果に加えて、ネットワーク内に滞留するループパケットを廃棄して、ネットワーク資源を有効に使用できるという効果も得られる。
【００９７】
オープンフローが適用されないネットワークでは、例えば、ポートレベルでフロー制御を行う。そのため、例えば、１つのポートを複数のフローが通過する場合、その複数のフローのうち１つのフローがループフローであると検出されると、ループフロー以外のフローがそのポートと通過していても、そのポートを遮断してしまうことがあり得る。これに対し、本発明をオープンフローネットワークに適用した場合には、フロー毎の制御が可能であるので、上記のような場合でも、ポートごと遮断する必要はなく、資源を有効に使うことが可能となる。
【００９８】
以下、各装置の構成例や動作例を詳しく説明する。
図１３は、第２の実施形態における計測装置１００の構成例を示すブロック図である。第２の実施形態における計測装置１００は、処理装置１０１と、制御情報ＣＯＮを記憶する記憶装置１０２とを備える。記憶装置１０２は、ループ検出装置２００から受信した制御情報ＣＯＮを記憶する。制御情報ＣＯＮは、ループパケットを識別するための条件（例えば、ループパケットのフロー識別子）と、その条件に合致するパケットに対するアクションの指示とを含む。以下に示す説明では、アクションの内容が、パケットの廃棄である場合を例にして説明するが、パケットに対する制御の指示内容は、パケットの廃棄に限定されない。例えば、制御情報ＣＯＮは、条件に合致するパケットに対してＱｏＳ（Quality of Service）制御を指示するものであってもよい。また、例えば、制御情報ＣＯＮは、条件に合致するパケットに対して帯域制御を指示するものであってもよい。
【００９９】
また、第２の実施形態では、処理装置１０１は、キャプチャ部１１０と、計測情報作成部１２０と、フロー制御部１３０とを備える。キャプチャ部１１０および計測情報作成部１２０は、第１の実施形態と同様であり、説明を省略する。
【０１００】
フロー制御部１３０は、ループ検出装置２００が送信した制御情報ＣＯＮを受信し、記憶装置１０２に記憶させる。また、フロー制御部１３０は、計測装置１００を通過するパケットが、制御情報ＣＯＮに含まれる条件に合致するか否かを判定し、合致していれば、制御情報ＣＯＮに従って廃棄する。パケットが条件に合致していなければ、フロー制御部１３０は、そのパケットを通過させる。
【０１０１】
キャプチャ部１１０、計測情報作成部１２０およびフロー制御部１３０は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。
【０１０２】
また、フロー計測機能（キャプチャ部１１０および計測情報作成部１２０）と、フロー制御機能（フロー制御部１３０）とが一台の装置で実現されている必要はなく、それぞれ別の装置で実現されていてもよい。例えば、フロー計測機能がプローブで実現され、フロー制御機能がルータで実現されていてもよい。この場合、プローブとルータとをまとめたものが計測装置１００に相当する。
【０１０３】
なお、スイッチも制御情報を受信して制御情報に従ってパケットを破棄する態様では、各スイッチも、上述のフロー制御装置１３０および記憶装置１０２を備える。
【０１０４】
図１４は、第２の実施形態におけるループ検出装置２００の構成例を示すブロック図である。第１の実施形態と同様の構成要素に関しては、図４と同一の符号を付し、説明を省略する。ループ検出装置２００は、処理装置２０１と、記憶装置２０２とを備える。
【０１０５】
処理装置２０１は、受信部２１０と、分類部２２０と、検出部２３０と、制御情報作成部２４０とを備える。受信部２１０、分類部２２０および検出部２３０は、第１の実施形態と同様である。
【０１０６】
制御情報作成部２４０は、検出部２３０がループパケットを判定した場合、そのループパケットを識別するための条件と、その条件に合致するパケットを廃棄する旨の指示とを含む制御情報ＣＯＮを作成する。制御情報作成部２４０は、ループパケットを識別するための条件として、ループパケットが含まれるフローのフロー識別子を制御情報ＣＯＮに含めればよい。また、フロー識別子だけでなくペイロードも、ループパケットを識別するための条件として制御情報ＣＯＮに含めてもよい。
【０１０７】
制御情報作成部２４０は、作成した制御情報ＣＯＮを計測装置１００に送信する。制御情報作成部２４０は、その制御情報ＣＯＮを記憶装置２０２に記憶させてもよい。
【０１０８】
また、制御情報作成部２４０は、ループパケットのフロー識別子が示すフローの経路を特定し、その経路上の各スイッチ３００に対して制御情報ＣＯＮを送信してもよい。あるいは、制御情報作成部２４０は、特定した経路上のスイッチのうち、個別に選択したスイッチに制御情報ＣＯＮを送信してもよい。例えば、経路上のスイッチのうち、ネットワークの入り口のスイッチに対してだけ制御情報ＣＯＮを送信してもよい。
【０１０９】
受信部２１０、分類部２２０、検出部２３０および制御情報作成部２４０は、例えば、ループ検出プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、ループ検出プログラムに従って、受信部２１０、分類部２２０、検出部２３０および制御情報作成部２４０として動作すればよい。また、  受信部２１０、分類部２２０、検出部２３０および制御情報作成部２４０が別々のユニットで実現されていてもよい。
【０１１０】
記憶装置２０２は、第１の実施形態と同様に、計測情報ＭＳＲ、フロー毎の観測回数情報ＯＢＦＬＯＷ、パケット毎の観測回数情報ＯＢＫＴ、およびコンフィグ情報ＣＯＮＦを記憶する。第２の実施形態では、記憶装置２０２は、さらに、経路情報ＰＡＴと、制御情報ＣＯＮとを記憶していてもよい。
【０１１１】
経路情報ＰＡＴは、各フローの経路を示す情報である。図１５は、経路情報ＰＡＴの一例を概念的に示す説明図である。図１５に示すように、経路情報ＰＡＴは、フロー毎に、フロー識別子と、経路上のリンクを表す情報とを対応付けている。図１５に示す例では、経路上のリンクを表す情報として、個々のリンク毎に、経路上のリンクであるか否かを「１」または「０」で表している。経路上のリンクに該当する場合は、「１」と記述され、経路上のリンクに該当する場合には「０」と記述される。なお、図１５に示す例では、フロー識別子として、送信側ＩＰアドレスおよび受信側ＩＰアドレスを用いる場合を例示しているが、フロー識別子としては、ループ検出装置２０が処理に用いるフロー識別子を用いることが好ましい。また、各リンクは、例えば、リンクの両端のスイッチの識別情報の組み合わせによって識別されていればよい。
【０１１２】
ループ検出装置２００は、例えば、オープンフローコントローラ（図示略）から経路情報ＰＡＴを受信し、記憶装置２０２に記憶すればよい。例えば、オープンフローコントローラが、スイッチからファーストパケットを受信して、ファーストパケットのフローに対する経路を決定したときに、そのフローのフロー識別子と経路とを対応付けてループ検出装置２００に送信すればよい。ループ検出装置２００は、その情報を受信し、経路情報ＰＡＴとして記憶装置２０２に記憶させればよい。
【０１１３】
また、ループ検出装置２００とオープンフローコントローラとが同一の装置で実現され、ループ検出装置２００がオープンフローコントローラとしても動作する場合には、ループ検出装置２００が、スイッチからファーストパケットを受信して、ファーストパケットのフローに対する経路を決定したときに、そのフローのフロー識別子と経路とを対応付け、経路情報ＰＡＴとして記憶装置２０２に記憶させればよい。
【０１１４】
図１２、図１３および図１４を参照して、第２の実施形態の動作を詳しく説明する。ただし、図１２に示すステップＳ１００，Ｓ２００の動作は、第１の実施形態と同様であり、説明を省略する。ここでは、ステップＳ２００でループパケットが検出された後のステップＳ３００，Ｓ４００について説明する。
【０１１５】
検出部２３０がループパケットを検出すると、制御情報作成部２４０は、そのループパケットを識別するための条件として、そのループパケットのフローのフロー識別子を含む制御情報ＣＯＮを作成する。また、そのループパケットを識別するための条件として、フロー識別子だけでなくペイロードを含む制御情報ＣＯＮを作成してもよい。このフロー識別子やペイロードは、具体的には、パケット毎の観測回数情報において、ループパケット判定用閾値以上にカウントアップされたカウント値に対応するフロー識別子やペイロードである。また、制御情報作成部２４０は、制御情報に、条件に合致したパケットを廃棄することを指示する旨の情報も含める。制御情報作成部２４０は、作成した制御情報ＣＯＮを計測装置１００に送信する（ステップＳ３００）。制御情報作成部２４０は、例えば、ＴＣＰやＵＤＰ等の既存の通信プロトコルに従って制御情報を計測装置１００に送信すればよい。
【０１１６】
また、制御情報作成部２４０は、経路情報ＰＡＴを参照して、オープンフローネットワーク内のスイッチのうち、ループパケットのフロー識別子に対応する経路上のスイッチを特定し、その各スイッチに制御情報を送信してもよい。また、制御情報作成部２４０は、経路上のスイッチのうち、個別に選択したスイッチ（例えば、ネットワークの入り口のスイッチ）に対してだけ、制御情報を送信してもよい。
【０１１７】
計測装置１００のフロー制御部１３０（図１３参照）は、ループ検出装置２００から制御情報ＣＯＮを受信すると、その制御情報ＣＯＮを記憶装置１０２に記憶させる。そして、フロー制御部１３０は、計測装置１００を通過するパケットを、制御情報ＣＯＮに従って処理する。すなわち、フロー制御部１３０は、制御情報ＣＯＮに含まれる条件（例えば、フロー識別子）と、計測装置１００に到着したパケットとを照合し、そのパケットが条件に合致していれば、そのパケットを制御情報ＣＯＮに従い廃棄する。条件に合致するパケットは、ループフローのパケットであるので、ネットワーク内に滞留し続けるパケットが廃棄されることになる。なお、既に説明したように、制御情報ＣＯＮに含まれる条件は、フロー識別子とペイロードの組み合わせであってもよい。
【０１１８】
また、以上の説明では、ループ検出装置２００の検出部２３０がループパケットを検出する場合を例に説明したが、第１の実施形態で説明したように、ループ検出装置２００の検出部２３０がループフローを検出してもよい。この場合におけるステップＳ３００，Ｓ４００の動作は、検出部２３０がループパケットを検出する場合の動作と同様である。この場合においても、制御情報作成部２４０は、ループフローのフロー識別子を制御情報に含めればよい。
【０１１９】
また、第２の実施形態においても、ループパケットまたはループフローを特定する際にペイロードを用いる場合を例にして説明した。第１の実施形態で説明したように、ループパケットまたはループフローを特定する際には、ループ検出装置２００は、フロー識別子と、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報とを用いて処理を行えばよい。ペイロードは、そのようなフィールドの情報の一例である。「エンドツーエンドで変化しないフィールドであって、同一フローであってもパケット毎に変化するフィールドの情報」の他の例として、ＴＣＰシーケンス番号、ＩＤフィールドの情報、ＲＴＰシーケンス番号もある。よって、ループ検出装置２００は、これらの情報を用いてもよい。
【０１２０】
また、第１の実施形態の変形例と同様に、計測処理１００が、フロー識別子およびパケットのＴＴＬを含むように計測情報ＭＳＲを作成し、ループ検出装置２００がＴＴＬを利用して、ループフローを検出してもよい。この場合、計測処理１００が、フロー識別子およびパケットのＴＴＬを含むように計測情報ＭＳＲを作成する動作は、第１の実施形態の変形例と同様である。また、検出部２３０がＴＴＬを利用してループフローを検出する動作も、第１の実施形態の変形例と同様である。すなわち、ステップＳ２００では、受信部２１０がステップＳ２１０（図７参照。）の処理を行い、分類部２２０がステップＳ２２０（図７参照。より具体的には図９に示すステップＳ２２１〜Ｓ２２３）の処理を行う。そして、検出部２３０は、図１１に示すステップＳ２４１〜Ｓ２４３の処理を行えばよい。なお、この場合、ループフローが検出されるので、制御情報作成部２４０は、ステップＳ３００（図１２参照）において、ループパケットを識別するための条件として、ループフローのフロー識別子を制御情報に含める。その他の点に関しては、既に説明した第２の実施形態の動作と同様である。
【０１２１】
第１の実施形態の変形例で説明したように、ステップＳ２４１〜Ｓ２４３で用いる情報はＴＴＬに限定されず、「パケットが転送される毎に変化するフィールドの情報」であればよい。このような情報の例として、ＴＴＬの他に、インプットポートの情報が挙げられる。
【０１２２】
また、上記の各実施形態やその変形例では、パケットから抽出したフロー識別子を用いてループパケット候補を特定し、パケットから抽出したペイロードまたはＴＴＬを用いてループパケットまたはループフローを特定した。ループパケット候補の特定に用いる情報は、フロー識別子以外の情報であってもよい。また、ループパケットまたはループフローの特定に用いる情報は、ペイロード等でなくてもよい。
【０１２３】
例えば、分類部２２０は、パケットから抽出されたペイロードを用いてパケットを分類し、ループパケット候補を特定してもよい。そして、検出部２３０は、パケットから抽出されたフロー識別子またはＴＴＬを用いて、ループパケットまたはループフローを検出してもよい。この場合、計測装置１００は、ペイロードとＴＴＬを含む計測情報ＭＳＲを作成して、ループ検出装置２００に送信したり、あるいは、ペイロードとフロー識別子を含む計測情報ＭＳＲを作成して、ループ検出装置２００に送信したりすればよい。
【０１２４】
なお、上記の説明で述べたＴＴＬは、ＩＰヘッダにおけるＴＴＬに限定されず、ＭＰＬＳ（Multiprotocol Label Switching）シムヘッダにおけるＴＴＬであってもよい。
【０１２５】
次に、本発明の最小構成について説明する。図１６は、本発明のループ検出装置の最小構成の例を示す説明図である。また、図１７は、本発明のループ検出システムの最小構成の例を示す説明図である。
【０１２６】
本発明のループ検出システムは、パケット情報抽出装置７０と、ループ検出装置８０とを備える（図１７参照）。パケット情報抽出装置７０（例えば、計測装置１００）は、パケット転送装置（例えば、スイッチ３００）間で送受信されるパケットから情報を抽出する。また、ループ検出装置８０（例えば、ループ検出装置２００）は、パケット情報抽出装置７０が抽出した情報を用いてループパケットまたはループフローを検出する。
【０１２７】
また、パケット情報抽出装置７０は、抽出手段７１と、送信手段７２とを含む。抽出手段７１（例えば、キャプチャ部１１０）は、パケット情報抽出装置７０を通過するパケットから、パケット内の第１の所定の情報（例えば、フロー識別子）およびパケット内の第２の所定の情報（例えば、ペイロードまたはＴＴＬ）を含むパケット情報（例えば、パケットの先頭１２８バイトの情報）を抽出する。送信手段７２（例えば、計測情報作成部１２０）は、パケット情報をループ検出装置８０に送信する。
【０１２８】
本発明のループ検出装置８０（図１６、図１７参照）は、受信手段８１と、分類手段８２と、判定手段８３とを含む。受信手段８１（例えば、受信部２１０）は、パケット情報抽出装置からパケット情報を受信する。
【０１２９】
分類手段８２（例えば、分類部２２０）は、パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値（例えば、候補特定用閾値）以上になった第１の所定の情報を特定する。
【０１３０】
判定手段８３（例えば、検出部２３０）は、分類手段８２によって特定された第１の所定の情報を対象とし、受信手段８１が受信したパケット情報に含まれる第２の所定の情報を利用して、分類手段８２に特定された第１の所定の情報を有するパケットがループパケットであるか否か、または、その第１の所定の情報で特定されるフローがループフローであるか否かを判定する。
【０１３１】
そのような構成により、ループパケットまたはループフローを特定することができる。そして、分類手段８２が、第１の所定の情報を絞り込み、判定手段８３が、絞り込まれた第１の所定の情報を対象として処理を行うので、ループパケットまたはループフローを特定する処理における処理負荷を軽減することができる。
【０１３２】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３３】
（付記１）パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信する受信手段と、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類手段に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを備えることを特徴とするループ検出装置。
【０１３４】
（付記２）受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記１に記載のループ検出装置。
【０１３５】
（付記３）受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、少なくともパケットのペイロード、ＴＣＰシーケンス番号、ＩＤフィールドの情報、ＲＴＰシーケンス番号のいずれかを含むパケット情報を受信する付記１または付記２に記載のループ検出装置。
【０１３６】
（付記４）判定手段は、フロー識別子と第２の所定の情報との組に基づいて、分類手段によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第２の所定の情報との組毎にカウントし、カウント結果と第２の閾値とを比較することによって、分類手段に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する付記２または付記３に記載のループ検出装置。
【０１３７】
（付記５）受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する付記１に記載のループ検出装置。
【０１３８】
（付記６）受信手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、ＴＴＬまたはインプットポートの情報を含むパケット情報を受信する付記１または付記５に記載のループ検出装置。
【０１３９】
（付記７）判定手段は、分類手段によって特定されたフロー識別子毎に、第２の所定の情報を分類し、分類された第２の所定の情報の種類の数と第３の閾値とを比較することによって、分類手段に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する付記５または付記６に記載のループ検出装置。
【０１４０】
（付記８）少なくとも、判定手段によって判定されたループパケットまたはループフローのフロー識別子を制御対象パケットの条件として含み、前記条件に合致するパケットに対する制御を指示する制御情報を作成し、前記制御情報をパケット情報抽出装置に送信する制御情報作成手段を備える付記１から付記７のうちのいずれか１項に記載のループ検出装置。
【０１４１】
（付記９）フロー識別子毎にフローの経路を表す経路情報を記憶する経路情報記憶手段と、少なくとも、判定手段によって判定されたループパケットまたはループフローのフロー識別子を制御対象パケットの条件として含み、前記条件に合致するパケットに対する制御を指示する制御情報を作成し、前記経路情報に基づいて前記フロー識別子に対応する経路上のパケット転送装置を特定し、当該パケット転送装置に前記制御情報を送信する制御情報作成手段を備える付記１から付記８のうちのいずれか１項に記載のループ検出装置。
【０１４２】
（付記１０）制御情報作成手段は、少なくとも、パケットの廃棄、ＱｏＳ制御、帯域制御のいずれかを指示する制御情報を作成する付記８または付記９に記載のループ検出装置。
【０１４３】
（付記１１）パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置は、当該パケット情報抽出装置を通過するパケットから、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を抽出する抽出手段と、前記パケット情報をループ検出装置に送信する送信手段とを含み、ループ検出装置は、パケット情報抽出装置から前記パケット情報を受信する受信手段と、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類手段と、分類手段によって特定された第１の所定の情報を対象とし、受信手段が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類手段に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定手段とを含むことを特徴とするループ検出システム。
【０１４４】
（付記１２）抽出手段は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を抽出する付記１１に記載のループ検出システム。
【０１４５】
（付記１３）パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信し、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定し、特定した第１の所定の情報を対象とし、受信したパケット情報に含まれる前記第２の所定の情報を利用して、特定した前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定することを特徴とするループ検出方法。
【０１４６】
（付記１４）第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記１３に記載のループ検出方法。
【０１４７】
（付記１５）コンピュータに、パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信する受信処理、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類処理、および、分類処理で特定した第１の所定の情報を対象とし、受信処理で受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類処理で特定した前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定処理を実行させるためのループ検出プログラム。
【０１４８】
（付記１６）コンピュータに、受信処理で、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信させる付記１５に記載のループ検出プログラム。
【０１４９】
（付記１７）パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置から、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を受信する受信部と、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類部と、分類部によって特定された第１の所定の情報を対象とし、受信部が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類部に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定部とを備えることを特徴とするループ検出装置。
【０１５０】
（付記１８）受信部は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、エンドツーエンドで変化しないフィールドであって同一フローであってもパケット毎に変化するフィールドの情報を含むパケット情報を受信する付記１７に記載のループ検出装置。
【０１５１】
（付記１９）受信部は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、少なくともパケットのペイロード、ＴＣＰシーケンス番号、ＩＤフィールドの情報、ＲＴＰシーケンス番号のいずれかを含むパケット情報を受信する付記１７に記載のループ検出装置。
【０１５２】
（付記２０）判定部は、フロー識別子と第２の所定の情報との組に基づいて、分類部によって特定されたフロー識別子を有するパケットを分類し、分類したパケットの数をフロー識別子と第２の所定の情報との組毎にカウントし、カウント結果と第２の閾値とを比較することによって、分類部に特定されたフロー識別子を有するパケットがループパケットであるか否か、または、前記フロー識別子で特定されるフローがループフローであるか否かを判定する付記１８に記載のループ検出装置。
【０１５３】
（付記２１）受信部は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、パケットが転送される毎に変化するフィールドの情報を含むパケット情報を受信する付記１７に記載のループ検出装置。
【０１５４】
（付記２２）受信部は、第１の所定の情報として、パケットのフローを識別するフロー識別子を含み、第２の所定の情報として、ＴＴＬまたはインプットポートの情報を含むパケット情報を受信する付記１７に記載のループ検出装置。
【０１５５】
（付記２３）判定部は、分類部によって特定されたフロー識別子毎に、第２の所定の情報を分類し、分類された第２の所定の情報の種類の数と第３の閾値とを比較することによって、分類部に特定されたフロー識別子で特定されるフローがループフローであるか否かを判定する付記２１に記載のループ検出装置。
【０１５６】
（付記２４）パケット転送装置間で送受信されるパケットから情報を抽出するパケット情報抽出装置と、パケット情報抽出装置が抽出した情報を用いてループパケットまたはループフローを検出するループ検出装置とを備え、パケット情報抽出装置は、当該パケット情報抽出装置を通過するパケットから、前記パケット内の第１の所定の情報および前記パケット内の第２の所定の情報を含むパケット情報を抽出する抽出部と、前記パケット情報をループ検出装置に送信する送信部とを含み、ループ検出装置は、パケット情報抽出装置から前記パケット情報を受信する受信部と、前記パケット情報に含まれる第１の所定の情報に基づいて、パケット情報抽出装置に情報を抽出されたパケットを分類し、分類したパケットの数を第１の所定の情報毎にカウントし、カウント結果が第１の閾値以上になった第１の所定の情報を特定する分類部と、分類部によって特定された第１の所定の情報を対象とし、受信部が受信したパケット情報に含まれる前記第２の所定の情報を利用して、分類部に特定された前記第１の所定の情報を有するパケットがループパケットであるか否か、または、前記第１の所定の情報で特定されるフローがループフローであるか否かを判定する判定部とを含むことを特徴とするループ検出システム。
【０１５７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１５８】
この出願は、２０１０年２月１９日に出願された日本特許出願２０１０−０３５０９６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１５９】
本発明は、ループパケットまたはループフローを検出するループ検出システムに好適に適用される。
【符号の説明】
【０１６０】
１００  計測装置
１１０  キャプチャ部
１２０  計測情報作成部
１３０  フロー制御部
２００  ループ検出システム
２０２  記憶装置
２１０  受信部
２２０  分類部
２３０  検出部
２４０  制御情報作成部
３００  スイッチ
【図１】
2011102086.tif 000003
【図２】
2011102086.tif 000004
【図３】
2011102086.tif 000005
【図４】
2011102086.tif 000006
【図５】
2011102086.tif 000007
【図６】
2011102086.tif 000008
【図７】
2011102086.tif 000009
【図８】
2011102086.tif 000010
【図９】
2011102086.tif 000011
【図１０】
2011102086.tif 000012
【図１１】
2011102086.tif 000013
【図１２】
2011102086.tif 000014
【図１３】
2011102086.tif 000015
【図１４】
2011102086.tif 000016
【図１５】
2011102086.tif 000017
【図１６】
2011102086.tif 000018
【図１７】
2011102086.tif 000019
【国際調査報告】
2011102086.tif 000020
2011102086.tif 000021