(57)【要約】【課題】  通信データに適用された転送ルールの履歴を取得する。【解決手段】  通信処理装置（１００）は、１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される上記フローエントリを選択し、選択した上記フローエントリに設定された処理を上記通信データに対して実行する通信データ処理部（１０１）と、受信した上記通信データが、通信経路の調査に用いられる調査要求データである場合、上記調査要求データに適用される上記フローエントリ自体に含まれるデータの少なくとも一部を少なくとも含む応答データを作成する調査データ処理部（１０２）と、を備える。通信データ処理部（１０１）は、上記応答データを上記調査要求データの送信元アドレスに送信する。【選択図】  図１Ａ
2017175493.tif 000002
【特許請求の範囲】
【請求項１】
１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される前記フローエントリを選択し、選択した前記フローエントリに設定された処理を前記通信データに対して実行する通信データ処理手段と、
受信した前記通信データが、通信経路の調査に用いられる調査要求データである場合、前記調査要求データに適用される前記フローエントリに含まれるデータの少なくとも一部を少なくとも含む応答データを作成する調査データ処理手段と、を備え、
前記通信データ処理手段は、前記応答データを、前記調査要求データの送信元アドレスに送信する
通信処理装置。
【請求項２】
前記フローエントリは、当該フローエントリがある前記通信データに対して適用されるか否かを判定する条件が設定された条件フィールドと、前記条件フィールドに設定された条件に合致する前記通信データに対する処理が設定された命令フィールドと、を少なくとも含む複数のフィールドを有し、
前記調査データ処理手段は、自装置を識別可能な識別データと、前記調査要求データに適用された前記フローエントリに含まれる前記条件フィールドのデータの少なくとも一部と、前記命令フィールドのデータの少なくとも一部と、を含む前記応答データを作成する、
請求項１に記載の通信処理装置。
【請求項３】
前記調査要求データに関する情報を保持可能な調査情報保持手段を更に備え、
前記通信データ処理手段が前記調査要求データを受信した場合、
前記調査データ処理手段は、少なくとも、前記調査要求データに設定された前記調査要求データを識別可能な調査識別子と、前記調査要求データの送信元アドレスを表すデータとを関連付けて前記調査情報保持手段に登録し、前記調査識別子を更に含む前記応答データを作成し、
前記通信データ処理手段は、作成した前記応答データを、前記調査要求データの送信元アドレスに送信し、
前記通信データ処理手段が他の前記通信処理装置により送信された前記応答データを受信した場合、
前記通信データ処理手段は、受信した前記応答データに含まれる前記調査識別子に関連付けて前記調査情報保持手段に登録された前記調査要求データの送信元アドレスに、前記応答データを送信する
請求項２に記載の通信処理装置。
【請求項４】
前記通信データ処理手段が前記調査要求データを受信した場合、
前記調査データ処理手段は、更に、前記調査識別子と、前記調査要求データの送信元アドレスを表すデータとを関連付けて前記調査情報保持手段に登録し
前記通信データ処理手段が他の前記通信処理装置により送信された前記応答データを受信した場合、
前記調査データ処理手段は、受信した前記応答データの送信先アドレスに、当該応答データに含まれる前記調査識別子に関連付けて前記調査情報保持手段に登録された前記調査要求データの送信元アドレスを設定すると共に、受信した前記応答データの送信元アドレスに、当該応答データに含まれる前記調査識別子に関連付けて前記調査情報保持手段に登録された前記調査要求データの送信先アドレスを設定し、
前記通信データ処理手段は前記調査データ処理手段により設定された送信先アドレスに、前記応答データを送信する
請求項３に記載の通信処理装置。
【請求項５】
前記通信データ処理手段は、前記調査要求データに対して、前記調査要求データに適用される前記フローエントリにおける前記命令フィールドに設定された処理を実行することにより、前記調査要求データを、他の前記通信処理装置に送信する
請求項２乃至請求項４のいずれかに記載の通信処理装置。
【請求項６】
前記調査要求データには、１以上の前記通信処理装置において前記調査要求データに対して前記フローエントリ適用された累積回数を表すフローヒット回数を表すデータが含まれ、
前記通信データ処理手段は、前記調査要求データに適用される前記フローエントリが選択された場合、前記フローヒット回数を所定数増やしたデータを前記調査要求データに設定し、
前記調査データ処理手段は、前記調査要求データの前記フローヒット回数を更に含む前記応答データを作成する
請求項２乃至請求項５のいずれかに記載の通信処理装置。
【請求項７】
前記調査データ処理手段は、前記調査要求データに適用された前記フローエントリに含まれるフィールドのデータをテキスト形式で表したデータを含む前記応答データを作成する、
請求項２乃至請求項６のいずれかに記載の通信処理装置。
【請求項８】
演算処理部と、記憶部とを備える情報処理装置において、
前記演算処理部に、
送信元アドレスと、送信先アドレスと、前記調査識別子とを少なくとも含む前記調査要求データを生成する処理と、
前記調査要求データを、請求項３又は請求項４に記載の前記通信処理装置に送信する処理と、
前記調査要求データに対する応答として前記通信処理装置から送信された前記応答データを受信した順に、当該受信した前記応答データに含まれる、前記通信処理装置を識別可能な前記識別データと、前記調査要求データに適用された前記フローエントリに含まれるデータの少なくとも一部と、の少なくとも一方を出力する処理と、を実行させる
コンピュータ・プログラム。
【請求項９】
１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される前記フローエントリを選択し、
選択した前記フローエントリに設定された処理を前記通信データに対して実行し、
受信した前記通信データが、通信経路の調査に用いられる調査要求データである場合、前記調査要求データに適用される前記フローエントリに含まれるデータの少なくとも一部を少なくとも含む応答データを作成し、当該作成した前記応答データを前記調査要求データの送信元アドレスに送信する
通信処理方法。
【請求項１０】
１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される前記フローエントリを選択する処理と、
選択した前記フローエントリに設定された処理を前記通信データに対して実行する処理と、
受信した前記通信データが、通信経路の調査に用いられる調査要求データである場合、前記調査要求データに適用される前記フローエントリに含まれるデータの少なくとも一部を少なくとも含む応答データを作成し、当該作成した前記応答データを前記調査要求データの送信元アドレスに送信する処理と、をコンピュータに実行させる
コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信データの転送経路を取得可能な通信処理装置等に関する。
【背景技術】
【０００２】
近年、データ転送（データプレーン）とネットワーク制御（コントロールプレーン）と分離し、それらを、ソフトウェアを用いて制御するＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）技術が普及している。係るＳＤＮを実現する具体的な技術として、オープンフロー（ＯｐｅｎＦｌｏｗ）技術がある（非特許文献１）。ＳＤＮを活用することで、通信データの転送経路等、トラフィックの挙動をプログラムすることができる。一方、ＳＤＮを運用する際には、通信ネットワーク（以下、単に「ネットワーク」と記載する場合がある）において発生した障害（例えば、不適切なプログラムに起因する障害等）を適切に検知し、対処することが求められる。
【０００３】
係るＳＤＮにおける障害検知又は運用管理に関して、以下のような特許文献がある。
【０００４】
特許文献１には、経路追跡パケットを用いて、ネットワークにおけるパケットの転送経路に存在するスイッチを調査する技術が開示されている。特許文献１において、各スイッチは、受信した経路追跡パケットに当該スイッチ自身の識別情報を追加して次のスイッチに転送すると共に、経路追跡パケットの送信元に、当該スイッチ自身の識別情報及びエラー情報等を含む応答を送信する。監視パケットの送信者は、各スイッチからの応答により、パケットの転送経路に存在するスイッチと、エラー情報とを確認する。
【０００５】
特許文献２には、ＯＦＣ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）からＯＦＳにトリガ監視メッセージを送信し、ＯＦＳから監視応答メッセージを返信することで、オープンフローネットワークにおける保守運用管理（ＯＡＭ：Ｏｐｅｒａｔｉｏｎｓ、Ａｄｍｉｎｉｓｔｒａｔｉｏｎｓ  ａｎｄ  Ｍａｎａｇｅｍｅｎｔ）機能を実装する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１３／０２４２７５８号明細書
【特許文献２】欧州特許第２７３００５９号明細書
【非特許文献】
【０００７】
【非特許文献１】Ｏｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎ  （ＯＮＦ）、”ＯＮＦ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ”、［ｏｎｌｉｎｅ］、平成２８年２月１８日検索、インターネット＜ＵＲＬ：ｈｔｔｐｓ：／／ｗｗｗ．ｏｐｅｎｎｅｔｗｏｒｋｉｎｇ．ｏｒｇ／ｊａ／ｓｄｎ−ｒｅｓｏｕｒｃｅｓ−ｊａ／ｏｎｆ−ｓｐｅｃｉｆｉｃａｔｉｏｎｓ＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＳＤＮ技術を採用したネットワークにおいて障害が発生した場合、例えば、ＳＤＮの設定又はプログラムに関する不具合箇所を特定する調査作業が行われる。例えば、オープンフローネットワークにおける不具合を調査する場合、各ＯＦＳにおいて通信データ（通信パケット）に適用された転送制御ルール（例えばフローエントリ）を特定し、その情報を取得する作業が発生することがある。ある通信データに適用されたフローエントリの履歴を取得するには、例えば、当該通信データを転送したＯＦＳを辿る必要がある。係る調査作業には、時間と労力とを要するという問題がある。
【０００９】
これに対して、特許文献１は、通信パケットの通信経路として、当該パケットが経過したスイッチを特定する情報を収集する技術を開示するのみであり、係る技術はフローエントリに関する情報を収集することはできない。特許文献２は、ネットワークの保守運用管理に用いるメトリック（統計情報）を取集する技術を開示するのみである。
【００１０】
本開示に係る発明は、上記のような事情を鑑みてなされたものである。即ち、本開示は、ＳＤＮ技術を用いた通信ネットワークにおいて、通信データに適用された転送ルールの履歴を取得可能な通信処理装置等を提供することを主たる目的の一つとする。
【課題を解決するための手段】
【００１１】
上記の目的を達成すべく、本開示の一態様に係る通信処理装置は、１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される上記フローエントリを選択し、選択した上記フローエントリに設定された処理を上記通信データに対して実行する通信データ処理部と、受信した上記通信データが、通信経路の調査に用いられる調査要求データである場合、上記調査要求データに適用される上記フローエントリ自体に含まれるデータの少なくとも一部を少なくとも含む応答データを作成する調査データ処理部と、を備える。上記通信データ処理部は、上記応答データを、上記調査要求データの送信元アドレスに送信する。
【００１２】
また、本開示の一態様に係る通信処理方法は、１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用される上記フローエントリを選択し、選択した上記フローエントリに設定された処理を上記通信データに対して実行し、受信した上記通信データが、通信経路の調査に用いられる調査要求データである場合、上記調査要求データに適用される上記フローエントリ自体に含まれるデータの少なくとも一部を少なくとも含む応答データを作成し、当該作成した上記応答データを上記調査要求データの送信元アドレスに送信する。
【００１３】
また、同目的は、上記構成を有する通信処理装置、通信処理方法をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
【発明の効果】
【００１４】
本開示に係る発明によれば、ＳＤＮ技術を用いた通信ネットワークにおいて、通信データに適用された転送ルールの履歴を取得可能である。
【図面の簡単な説明】
【００１５】
【図１Ａ】図１Ａは、本開示の第１の実施形態に係る通信処理装置の機能的な構成を例示するブロック図である。
【図１Ｂ】図１Ｂは、本開示の第１の実施形態に係る通信処理装置の他の機能的な構成を例示するブロック図である。
【図２】図２は、本開示の第１の実施形態に係る通信処理装置の動作の具体例を示す、フローチャートである。
【図３】図３は、本開示の第１の実施形態の変形例に係る通信処理装置の機能的な構成を例示するブロック図である。
【図４】図４は、本開示の第１の実施形態の変形例に係る通信処理装置の動作の具体例を示す、フローチャートである。
【図５】図５は、本開示の第２の実施形態に係るネットワーク構成の概要を示す説明図である。
【図６】図６は、本開示の第２の実施形態に係る通信処理装置の機能的な構成を例示するブロック図である。
【図７】図７は、調査要求パケットの具体的な構成例を示す説明図である。
【図８】図８は、調査結果パケットの具体的な構成例を示す説明図である。
【図９】図９は、調査コマンドの具体的な実行例を示す説明図である。
【図１０】図１０は、本開示の第３の実施形態に係る通信処理装置の動作の具体例を示す、フローチャート（１／２）である
【図１１】図１１は、本開示の第３の実施形態に係る通信処理装置の動作の具体例を示す、フローチャート（２／２）である
【図１２】図１２は、本発明の各実施形態における通信処理装置の構成要素を実現可能なハードウェア装置の構成を例示する図面である。
【発明を実施するための形態】
【００１６】
本発明の実施形態に関する説明に先立って、本発明に関する技術的な検討事項等についてより詳細に説明する。尚、以下の説明においては、ＳＤＮを実現可能な一つの技術として、オープンフロー技術を採用することを想定する。しかしながら、本開示に係る実施形態は、オープンフロー技術に限定されず、ＳＤＮを実現可能な他の技術を採用してもよい。
【００１７】
ネットワーク管理者は、例えば、オープンフロー技術を活用することで、トラフィックの挙動（例えば、データの転送制御）をプログラムすることができる。具体的には、係るプログラムにより、例えば、「ある通信経路にはある種別のパケットのみを流す」、「ある時間帯はある経路を使用しない」など、トラフィックを制御することができる。係るプログラムは、例えば、ＯＦＳにおけるフローテーブルを操作可能なアプリケーションとして実現されてもよい。
【００１８】
一方、例えば、ＯＦＣからＯＦＳに設定された経路に誤りがあった場合等には、ネットワーク管理者の意図通りにトラフィックが制御されないことがある。これによりネットワークの障害（通信の不具合）が発生する可能性がある。係る通信の不具合が検出された場合、ネットワーク管理者は、例えば、ＯＦＣ及びＯＦＳに関する調査作業を行う。具体的には、ネットワーク管理者は、例えば、「障害情報の取得」、「原因の特定」、「改修」等を含む手順を実行することがある。
【００１９】
例えば、通信の不具合を検出したネットワーク利用者（以下、単に「利用者」と記載する場合がある）が、係る不具合をネットワーク管理者に連絡する。連絡を受けたネットワーク管理者は、例えば、利用者が送出したパケットの形式を特定し、利用者が使用する通信装置と通信ネットワークにおいて近い位置にあるＯＦＳにセットされたフローテーブルを調べる。ネットワーク管理者は、フローテーブルに含まれるフローエントリのうち、利用者が送出したパケットに合致する（ヒットする）フローエントリを特定する。
【００２０】
ネットワーク管理者は、上記特定したフローエントリの設定から、利用者が送出したパケットが転送された転送先のＯＦＳを特定する。ネットワーク管理者は、転送先のＯＦＳについて、上記と同様の手順を繰り返すことで、送出したパケットが辿った経路を特定する。これにより、例えば、パケットが同一経路をループしていたことを表す情報、又は、パケットがあるＯＦＳで破棄されていたことを表す情報等の、障害情報が得られる。係る障害情報を用いて、ネットワーク管理者が、不具合の原因を特定し、特定した障害の原因を取り除く。
【００２１】
上記のような手順のうち、障害情報を取得する作業には、多くの工数と時間とを要する可能性があり、ネットワーク障害の解決に要する時間を長引かせる要因となり得る。通信の不具合が発生した際に、障害情報を容易に取得可能であれば、調査に要する時間が短縮され得る。
【００２２】
以下の各実施形態を用いて説明する本件開示に係る通信処理装置等によれば、例えば、利用者が、本件開示に係る通信処理装置の機能を利用して自動的に障害情報を取得し、ネットワーク管理者等に提供することが可能になる。これにより、ネットワーク管理者等は、障害情報の取得に要する工数等を削減し得る。
【００２３】
なお、以下の各実施形態に記載されている通信処理装置の構成は例示であり、本発明の技術範囲はそれらには限定されない。以下の各実施形態における通信処理装置を構成する構成要素の区分け（例えば、機能的な単位による分割）は、通信処理装置を実現可能な一例である。当該通信処理装置の実装に際しては、以下の例示に限定されず、様々な構成が想定される。即ち、以下の各実施形態における通信処理装置を構成する構成要素は、更に分割されてもよい。また、以下の各実施形態における通信処理装置を構成する１以上の構成要素が、統合されてもよい。
【００２４】
以下において説明する通信処理装置は、単体の装置（物理的あるいは仮想的な装置）を用いて構成されてもよく、複数の離間した装置（物理的あるいは仮想的な装置）を用いて実現されてもよい。通信処理装置が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組合せた通信ネットワーク（通信回線）により通信可能に接続されてもよい。係る通信ネットワークは、物理的な通信ネットワークであってもよく、仮想的な通信ネットワークであってもよい。以下において説明する通信処理装置、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
【００２５】
＜第１の実施形態＞
以下、本開示に係る第１の実施形態の概要について説明する。図１Ａ、図１Ｂは、本実施形態における通信処理装置の機能的な構成を例示するブロック図である。
【００２６】
本実施形態における通信処理装置１００は、通信ネットワークにおける通信データの転送処理を実行可能な装置である。通信処理装置１００は、例えば、オープンフロー技術を採用した通信ネットワークに接続されてもよい。この場合、通信処理装置１００は、オープンフローネットワークにおけるＯＦＳとして機能してもよい。ＯＦＳの一般的な機能については、周知技術であることから、詳細な説明を省略する。
【００２７】
通信処理装置１００は、通信データ処理部１０１と、調査データ処理部１０２とを備える。通信処理装置１００は、図１Ｂに例示するように、フローエントリ保持部１０３を備えてもよい。これらの構成要素の間は、適切な通信方法（例えば、物理的あるいは論理的な通信バス等）により通信可能に接続されていてもよい。通信データ処理部１０１は、本開示における通信データ処理手段として機能してもよい。調査データ処理部１０２は、本開示における調査データ処理手段として機能してもよい。フローエントリ保持部１０３は、本開示におけるフローエントリ保持手段として機能してもよい。
【００２８】
以下、フローエントリについて説明する。フローエントリは、例えば、通信ネットワークにおいて送受信される通信データの転送制御に関するルール（転送制御ルール）を表す情報である。係るフローエントリは、例えば、条件（Ｍａｔｃｈ）フィールド、命令（Ｉｎｓｔｒｕｃｔｉｏｎ）フィールド、優先度（Ｐｒｉｏｒｉｔｙ）フィールド、統計情報（Ｃｏｕｎｔｅｒ）フィールド、有効期間（Ｔｉｍｅｏｕｔｓ）フィールド、クッキー（Ｃｏｏｋｉｅ）フィールド等のフィールドを有してもよい。これらのフィールドは、オープンフロー技術の規格において規定されていてもよい。
【００２９】
フローエントリにおける条件フィールドには、例えば、通信データのヘッダ、入力ポート番号、メタデータ等を用いた各種条件が設定される。具体的には、例えば、通信データの送信元、送信先、通信プロトコルの種類等を組合わせた条件が、適宜条件フィールドに設定され得る。ある通信データが、フローエントリの条件フィールドに設定された条件に合致（ヒット）した場合、当該通信データは、当該フローエントリの設定に従って処理される。
【００３０】
命令フィールドには、条件フィールドで設定された条件に合致する通信データに対して実行される処理（命令）が設定される。係る命令には、通信データに対して何らかのアクションを実行する命令が含まれてもよい。係るアクションには、例えば、以下のようなアクションが含まれてもよい。即ち、係るアクションには、例えば、通信データを指定された通信ポートに出力するアクション（「Ｏｕｔｐｕｔ」アクション）が含まれてもよい。係るアクションには、例えば、通信データを廃棄するアクション（「Ｄｒｏｐ」アクション）が含まれてもよい。係るアクションには、例えば、通信データにおける特定のフィールドを編集するアクション（「Ｓｅｔ−Ｆｉｅｌｄ」アクション）が含まれてもよい。尚、命令フィールドには、上記に限定されず、オープンフロー技術の規格において規定された他の各種命令が設定されてもよい。
【００３１】
フローエントリにおける優先度フィールドには、例えば、当該フローエントリに関する優先度が設定される。ある通信データが複数のフローエントリにヒットする場合、優先度の高いフローエントリが当該通信データに適用されてもよい。
【００３２】
フローエントリにおける統計情報（カウンタ）フィールドには、当該フローエントリにヒットした通信データに関する統計情報（例えば、転送したパケット数、転送量等）が設定される。
【００３３】
フローエントリにおける有効期間（タイムアウト）フィールドには、当該フローエントリが存続する有効期間が設定される。この有効期間を経過すると、当該フローエントリが削除される場合がある。
【００３４】
フローエントリにおけるクッキーフィールドには、ＯＦＣが使用する各種情報が適宜設定されてもよい。
【００３５】
通信データ処理部１０１は、１以上のフローエントリのうち、通信ネットワークから受信した通信データに適用されるフローエントリを選択する。通信データ処理部１０１は、選択した当該フローエントリに設定された処理を、通信データに対して実行する。通信データ処理部１０１は、例えば、通信処理装置１００に供えられた物理的あるいは論理的な通信ポートと、当該通信ポートにおけるデータ（パケット）の送受信を制御する制御部とにより構成されてもよい。
【００３６】
通信データ処理部１０１は、例えば、フローエントリ保持部１０３（後述）に保持されているフローエントリを検索し、受信した通信データが合致（ヒット）するフローエントリを選択してもよい。通信データ処理部１０１は、例えば、１以上のフローエントリ毎に、受信データが当該フローエントリに設定された条件フィールドに合致するか否か（即ち、条件フィールドに設定された条件を満たすか否か）を判定してもよい。通信データ処理部１０１は、上記判定の結果に基づいて、受信した通信データがヒットするフローエントリを選択することができる。
【００３７】
通信データ処理部１０１は、受信データがヒットしたフローエントリが存在する場合には、当該受信データに対して、当該フローエントリに設定された処理（例えば「命令」フィールドに設定された処理）を実行する。通信データ処理部１０１は、これにより、通信ネットワークにおける通信データの転送制御を実現可能である。
【００３８】
通信データ処理部１０１は、通信ネットワークにおいて送受信される一般的な通信データだけではなく、通信経路の調査に用いられる通信データ（調査要求データ）を受信してもよい。調査要求データのヘッダあるいはペイロードには、ある通信データが調査要求データであることを表す情報（以下、調査要求情報と記載する場合がある）が設定されていてもよい。調査要求情報は、例えば、調査要求データのヘッダ又はペイロードにおける所定の位置に、所定の形式のデータとして設定されていてもよい。
【００３９】
通信データ処理部１０１は、ある通信データに調査要求情報が設定されているか否かに基づいて、当該通信データが調査要求データであるか否かを判定してもよい。係る判定の結果、通信ポートに到着したデータ（受信データ）が調査要求データである場合、通信データ処理部１０１は、後述する調査データ処理部１０２に、当該データを提供してもよい。この場合、通信データ処理部１０１は、調査データ処理部１０２に、調査要求データがヒットするフローエントリに関する情報を提供してもよい。係るフローエントリに関する情報は、フローエントリのデータそのものであってもよく、フローエントリ保持部１０３に保持されたフローエントリを特定可能な情報であってもよい。
【００４０】
調査データ処理部１０２は、通信データ処理部１０１が受信した通信データが調査要求データである場合、応答データを作成する。具体的には、調査データ処理部は、当該調査要求データにヒットするフローエントリ自体に含まれるデータの少なくとも一部を含む応答データを作成する。以下、応答データを、調査結果データと記載する場合がある。
【００４１】
応答データには、例えば、調査要求データがヒットするフローエントリを構成する各フィールドの情報が含まれてもよい。
【００４２】
例えば、応答データに、条件フィールドが含まれる場合、応答データを受信した利用者等は、調査要求データが合致した条件を確認することが可能である。これにより、利用者等は、例えば、調査要求データに対して、適切な（意図された）フローエントリが適用されたか否かを確認可能である。
【００４３】
例えば、応答データに、命令フィールドが含まれる場合、応答データを受信した利用者等は、調査要求データに対して実行された命令（アクション）を確認することが可能である。これにより、利用者等は、例えば、調査要求データの転送先、又は、調査要求データが廃棄された通信処理装置等を確認可能である。
【００４４】
例えば、応答データに優先度フィールドが含まれる場合、利用者等は、調査要求データに対して適用されたフローエントリの優先度を確認可能である。これにより、利用者等は、例えば、フローエントリに関する優先度設定が適切であるか否かを確認可能である。
【００４５】
例えば、応答データに統計情報フィールドが含まれる場合、利用者等は、調査要求データに対して適用されたフローエントリに関する統計情報（例えば転送量等）を確認可能である。係る統計情報は、例えば、利用者等が通信経路における混雑（輻輳）の発生等を推測する一助となり得る。
【００４６】
例えば、応答データに有効期間フィールドが含まれる場合、利用者等は、調査要求データに対して適用されたフローエントリの有効期限を確認可能である。
【００４７】
例えば、応答データにクッキーフィールドが含まれる場合、利用者等は、調査要求データに対して適用されたフローエントリに関してＯＦＣから設定された情報等を確認可能である。
【００４８】
調査データ処理部１０２は、例えば、通信データ処理部１０１から提供されたフローエントリの各フィールド（例えば、条件フィールド、命令フィールド等）を適切なデータ形式を用いて表すことにより、応答データを生成してもよい。
【００４９】
調査データ処理部１０２は、例えば、フローエントリの各フィールドのデータを、テキスト形式のデータを用いて表してもよい。係るテキスト形式のデータは、例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の構造化されたテキスト形式のデータが含まれてもよい。フローエントリの各フィールドのデータがテキスト形式で表される場合、応答データを取得した利用者等は、各フィールドの内容を容易に理解することが可能である。
【００５０】
調査データ処理部１０２は、フローエントリの各フィールドのデータを、バイナリ形式のデータを用いて表してもよい。フローエントリの各フィールドのデータがバイナリ形式で表される場合、応答データのサイズが削減され得る。
【００５１】
調査データ処理部１０２は、また、フローエントリの各フィールドのデータを適切な圧縮方法（圧縮アルゴリズム）を用いて圧縮されてもよい。この場合も、応答データのサイズが削減され得る。
【００５２】
調査データ処理部１０２は、ある通信データが調査要求データに対する応答であることを表す情報（以下、調査応答情報と記載する場合がある）を、当該応答データに設定してもよい。具体的には、調査データ処理部１０２は、応答データのヘッダあるいはペイロードにおける所定の位置に、所定の形式で、調査応答情報を表すデータを設定してもよい。
【００５３】
調査データ処理部１０２は、生成した応答データを通信データ処理部１０１に提供してもよい。通信データ処理部１０１は、調査データ処理部１０２により生成された応答データを、調査要求データの送信元に送信する。
【００５４】
フローエントリ保持部１０３は、１上記説明したフローエントリを保持（記憶）する。フローエントリ保持部１０３は、１以上のフローエントリの集合を保持するフローテーブルを保持（記憶）してもよい。フローエントリ保持部１０３は、複数のフローテーブルを保持してもよい。
【００５５】
上記のように構成された本開示に係る通信処理装置１００の動作の一例について、図２に例示するフローチャートを参照して説明する。図２に例示するフローチャートにおける各ステップは、同様の処理結果が得られる範囲で、実行される順番が入れ替えられてもよく、並行して実行されてもよい。
【００５６】
通信処理装置１００（特には通信データ処理部１０１）は、通信ネットワークからデータを受信する（ステップＳ２０１）。
【００５７】
通信処理装置１００は、１以上のフローエントリのうち、受信した通信データがヒット（合致）するフローエントリを選択する（ステップＳ２０２）。通信処理装置１００は、例えば、フローエントリ保持部１０３に保持されたフローエントリを検索してもよい。
【００５８】
通信処理装置１００（特には、調査データ処理部１０２）は、受信データが調査要求データである場合（ステップＳ２０３においてＹＥＳ）、調査要求データがヒットするフローエントリに含まれるデータの少なくとも一部を含む応答データを生成する（ステップＳ２０４）。係る応答データには、例えば、調査要求データがヒットするフローエントリに含まれるフィールドのデータの少なくとも一部が含まれてもよい。
【００５９】
通信処理装置１００（特には、通信データ処理部１０１）は、ステップＳ２０４において生成された応答データを、調査要求データの送信元に送信する（ステップＳ２０５）。
【００６０】
通信処理装置１００（特には、通信データ処理部１０１）は、ステップＳ２０１において受信したデータに対して、ステップＳ２０２において選択したフローエントリに設定された処理を実行する（ステップＳ２０６）。受信データが調査要求データでない場合（ステップＳ２０３においてＮＯ）も、通信処理装置１００は、当該調査要求データにヒットするフローエントリに設定された処理を実行する。
【００６１】
上記のように構成された本開示における通信処理装置１００は、例えば、通信ネットワークの利用者等に対して、ある通信データ（例えば、調査要求データ）に関して適用されたフローエントリの履歴を提供することが可能である。なぜならば、通信処理装置１００は、調査要求データを受信した場合に、当該調査要求データがヒットしたフローエントリの情報を含む応答データを、当該調査要求データの送信元に送信するからである。
【００６２】
例えば、通信ネットワークの利用者により通信元ホストから送信されたデータが、通信ネットワークにおいて発生したなんらかの障害に起因して、送信先ホストに到達しない状況を想定する。この場合、通信ネットワークの利用者は、例えば、当該障害が発生した通信に関する通信データ（例えば、障害が発生した通信データと同様の内容を含む通信データ）を、通信元ホストから、調査要求データとして通信ネットワークに送出する。係る調査要求データを受信した通信処理装置１００は、当該通信処理装置１００が保持するフローエントリのうち、係る調査要求データがヒットしたフローエントリの情報を含む応答データを、通信元ホストに送信する。これより、通信ネットワークの利用者は、当該障害が発生した通信に関する通信データに対して、ある通信処理装置１００において適用されたフローエントリに関する情報（例えば、当該フローエントリに含まれるフィールドのデータ）を取得することができる。
【００６３】
当該通信処理装置１００は、係る調査要求データを、フローエントリの設定に従って処理する。例えば、障害が発生した通信に関する通信データに対して実行された処理と同様の処理が、調査要求データに対して実行される。これにより、調査要求データは、例えば、障害が発生した通信に関する通信データと同様の通信経路を辿るように、他の通信処理装置１００に転送される。
【００６４】
通信ネットワークの利用者（通信元ホスト）には、障害が発生した通信に関する通信データの転送経路に存在する各通信処理装置１００から、応答データが送信される。これにより、通信ネットワークの利用者は、障害が発生した通信に関する通信データの転送経路を取得することができる。また、通信ネットワークの利用者は、転送経路に存在する各通信処理装置１００において、障害が発生した通信に関する通信データがヒットしたフローエントリに関する情報を取得することができる。
【００６５】
以上より、本開示における通信処理装置１００によれば、ＳＤＮ技術を用いた通信ネットワークにおいて、通信データに適用された転送ルールの履歴を容易に取得可能である。
【００６６】
以下、本開示に係る第１の実施形態の変形例について、図３に例示するブロック図を参照して説明する。
【００６７】
図３に例示するように、本変形例における通信処理装置３００は、通信データ処理部３０１、フローエントリ保持部３０２、調査データ処理部３０３及び調査情報保持部３０４を備える。通信処理装置３００は、上記通信処理装置１００と同様、オープンフローネットワークにおけるＯＦＳとして機能してもよい。
【００６８】
通信データ処理部３０１、フローエントリ保持部３０２は、それぞれ通信処理装置１００における通信データ処理部１０１、フローエントリ保持部１０３と同様としてよいので、詳細な説明を省略する。
【００６９】
調査データ処理部３０３は、上記通信処理装置１００における調査データ処理部１０２と同様の処理を実行可能あると共に、以下の処理を実行可能である。即ち、調査データ処理部３０３は、調査要求データが受信された場合、当該調査要求データに関する情報を、調査情報保持部３０４に登録することができる。
【００７０】
具体的には、調査データ処理部３０３は、例えば、調査要求データに含まれる識別子（ＩＤ：ＩＤｅｎｔｉｆｉｅｒ）に関する情報を、調査情報保持部３０４に登録してもよい。係る識別子により、複数の調査要求データが並行して送信された場合（例えば、調複数の査作業が並行して実行された場合等）に、それらを識別することが可能である。係る識別子を、「調査識別子」又は「調査ＩＤ」と記載する場合がある。調査データ処理部３０３は、例えば、上記調査識別子と関連付けて、調査要求データの転送情報（例えば、送信元、送信先を特定可能な情報）を、上記調査要求データに関する情報として調査情報保持部３０４に登録してもよい。調査データ処理部３０３は、調査要求データに関する他の情報を調査情報保持部３０４に登録してもよい。また、調査データ処理部３０３は、受信した調査要求データそのものを調査識別子に関連付けて、調査情報保持部３０４に登録してもよい。
【００７１】
調査データ処理部３０３は、他の通信処理装置３００から調査結果データを受信した際、当該調査結果データに関連する調査要求データの転送情報を、調査情報保持部３０４から取得する。具体的には、調査データ処理部３０３は、例えば、受信した調査結果データに含まれる調査識別子を参照し、調査情報保持部３０４において当該識別子に関連付けて登録された調査要求データの転送情報を取得してもよい。調査データ処理部３０３は、取得した転送情報に含まれる調査要求データの送信元に、受信した調査結果データを送信する。
【００７２】
調査情報保持部３０４は、通信処理装置３００が受信した調査要求データに関する情報を保持する。調査情報保持部３０４は、例えば、適切なデータ構造を用いて、調査要求データを識別可能な識別子（調査識別子）と、調査要求データに関する情報とを関連付けて保持してもよい。上記したように、調査要求データに関する情報には、当該調査要求データに関する転送情報が含まれてもよい。調査要求データに関する情報には、転送情報以外の情報が含まれてもよい。調査情報保持部３０４は、上記データ構造として、テーブル構造を用いてもよく、テーブル構造以外の適切なデータ構造を用いてもよい。
【００７３】
通信処理装置３００には、例えば、通信ネットワークの利用者が使用する通信元ホスト３０５が通信可能に接続されていてもよい。通信処理装置３００と、通信元ホスト３０５とは、通信ネットワークを介して接続されていてもよく、その他の適切な通信方法を用いて接続されていてもよい。
【００７４】
通信元ホスト３０５は、例えば、演算処理部（プロセッサ等）と、記憶部（メモリや各種ストレージ等）とを備える情報処理装置であってよい。通信元ホストは、例えば、表示デバイス（例えば、液晶、有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等の表示デバイス）を有する表示部を備えてもよい。
【００７５】
本変形例においては、通信元ホスト３０５に、通信経路の調査に用いられる通信データを送信する機能を有する調査コマンド３０６が導入される。調査コマンド３０６は、例えば、通信元ホスト３０５において実行されるソフトウェア・プログラムとして提供されてもよい。この場合、調査コマンド３０６は、例えば、通信元ホスト３０５の記憶部に配置されてもよい。上記に限定されず、調査コマンド３０６は、通信元ホスト３０５が提供する機能の一部として組み込まれてもよい。
【００７６】
調査コマンド３０６は、例えば、ある調査要求データを受信した各通信処理装置３００から送信（応答）された調査応答データに基づいて、当該調査要求データに適用されたフローエントリの履歴を順番に表示してもよい。
【００７７】
例えば、通信ネットワークの利用者が、通信元ホスト３０５において調査コマンド３０６を実行すると、当該調査コマンド３０６が、調査要求データを送信する。調査コマンド３０６は、調査要求を表す所定の形式の調査要求データを生成して、通信元ホスト３０５が接続された通信ネットワーク（或いは通信処理装置３００）に送出する。
【００７８】
通信元ホスト３０５に調査結果データが到着した場合、調査コマンド３０６は、調査結果データに含まれるフローエントリに関する情報を、表示部あるいはログデータ等に出力する。ログデータは、例えば、適切な形式のログファイルとして出力されてもよい。
【００７９】
調査コマンド３０６は、例えば、調査結果データが到着した順に、調査結果データに含まれるフローエントリに関する情報を出力してもよい。また、調査コマンド３０６は、例えば、通信ネットワークに接続された１以上の通信処理装置３００が、調査要求データを処理した順（即ち、調査要求データが各通信処理装置３００を転送された順）に、調査結果データに含まれるフローエントリに関する情報を出力してもよい。調査コマンドを実行した通信ネットワークの利用者は、調査コマンドの出力を確認することにより、調査要求データがヒットしたフローエントリの履歴を確認することが可能である。
【００８０】
上記のように構成された通信処理装置の動作について、図４に例示するフローチャートを参照して説明する。図４に例示するフローチャートにおいて、図２に例示するフローチャートと同様のステップについては同じ参照符号を付し、詳細な説明を省略する。
【００８１】
例えば、通信ネットワークの利用者が、通信元ホスト３０５において調査コマンド３０６を実行する（ステップＳ４０１）。調査コマンド３０６は、通信ネットワーク（或いは通信処理装置３００）に対して、調査要求データを送出する。
【００８２】
ステップＳ２０１乃至ステップＳ２０２における処理は、上記説明した図２に例示するフローチャートにおける各ステップと同様としてよいので、詳細な説明を省略する。
【００８３】
通信処理装置３００（特には通信データ処理部３０１）は、ステップＳ２０１において受信した通信データの種類（タイプ）を確認する（ステップＳ４０２）。通信処理装置３００は、例えば、受信した通信データに調査要求情報が設定されている場合、係る通信データを調査要求データと判定してもよい。通信処理装置３００は、例えば、受信した通信データに調査応答情報が設定されている場合、係る通信データを調査結果データと判定してもよい。通信処理装置３００は、受信した通信データに、調査要求情報及び調査応答情報のいずれも含まれていない場合、係る通信データを一般的な通信データと判定してもよい。
【００８４】
受信した通信データが一般的な通信データである場合、通信処理装置３００は、当該通信データがヒットするフローエントリに設定された処理を実行する（ステップＳ２０６）。
【００８５】
受信した通信データが調査要求データである場合、通信処理装置３００は、上記説明したステップＳ２０４乃至ステップＳ２０６の処理を実行する。
【００８６】
受信した通信データが調査結果データである場合、通信処理装置３００は、当該調査結果データに関連する調査要求データに関する情報を、調査情報保持部３０４から取得する（ステップＳ４０３）。この場合、通信処理装置３００は、例えば、当該調査結果データに関連する調査要求データの転送情報を、調査情報保持部３０４から取得してもよい。
【００８７】
通信処理装置３００は、ステップＳ４０３において取得した転送情報に含まれる調査要求データの送信元に、受信した調査結果データを送信する（ステップＳ４０４）。
【００８８】
例えば、調査コマンド３０６は、上記ステップＳ４０４において送信された調査結果データが通信元ホスト３０５に到着した際、当該調査結果データに含まれるフローエントリに関する情報を出力してもよい（ステップＳ４０５）。
【００８９】
上記のように構成された本開示における通信処理装置３００は、上記説明した通信処理装置１００と同様、通信ネットワークの利用者等に対して、ある通信データ（例えば、調査要求データ）に関して適用されたフローエントリの履歴を提供することが可能である。なぜならば、通信処理装置３００は、調査要求データを受信した場合に、当該調査要求データがヒットしたフローエントリの情報を含む応答データを、当該調査要求データの送信元に送信するからである。
【００９０】
通信ネットワークの利用者は、例えば、調査コマンド３０６を用いることにより、通信元ホスト３０５から調査要求データを通信ネットワークに送出する。調査要求データを受信した通信処理装置３００は、自装置が保持するフローエントリのうち、係る調査要求データがヒットしたフローエントリの情報を含む応答データ（調査結果データ）を、調査要求データの送信元に対して送出する。通信処理装置３００は、他の通信処理装置３００が送出した調査結果データを受信した場合、当該調査結果データに関する調査要求データを送信した送信元に、当該調査応答データを送出する。即ち、通信ネットワークに接続された各通信処理装置３００が、ある調査要求データに関する調査結果データをリレーすることにより、調査結果データが通信元ホスト３０５に届けられる。調査コマンド３０６の出力を確認することにより、通信ネットワークの利用者は、通信経路において調査要求データがヒットしたフローエントリに関する情報を取得することが可能である。
【００９１】
以上より、本開示における通信処理装置１００によれば、ＳＤＮ技術を用いた通信ネットワークにおいて、通信データに適用された転送ルールの履歴を容易に取得可能である。
【００９２】
＜第２の実施形態＞
上記第１の実施形態を基礎とする、本開示に関する第２の実施形態について説明する。
【００９３】
図５は、本実施形態における通信ネットワークの概要を示す説明図である。本実施形態におけるオープンフローネットワーク５０４は、オープンフロー技術を採用した通信ネットワークであることを想定する。利用者は、通信元ホスト５０１を使用して、通信先ホスト５０３との間で通信を試みることを想定する。通信元ホスト５０１と通信先ホスト５０３とは、共にオープンフローネットワーク５０４を介して接続されていることを想定する。
【００９４】
通信元ホスト５０１と、通信先ホスト５０３との間の通信経路には、１以上のＯＦＳ（通信処理装置）６００が配置されている。図５においては、説明の便宜上、通信元ホスト５０１に通信可能に接続されたＯＦＳ６００と、通信先ホスト５０３に通信可能に接続されたＯＦＳ６００との２台が例示されている。オープンフローネットワーク５０４には、図示した２台のＯＦＳ６００以外に、複数のＯＦＳ６００が接続されていてよい。
【００９５】
各ＯＦＳ６００は、オープンフローチャネル（ＯｐｅｎＦｌｏｗチャネル）５０５を介してＯＦＣ５０６と通信可能に接続されている。
【００９６】
ＯＦＣ５０６は、一般的なオープンフローコントローラとしての機能を提供可能である。ＯＦＣ５０６と、各ＯＦＳ６００とは、オープンフローチャネル５０５を用いて、オープンフロープロトコルに規定された各種データを送受信する。これにより、ＯＦＣ５０６は、各ＯＦＳ６００を制御することができる。なお、一般的なオープンフローコントローラとしての機能は周知技術であることから、具体的な説明を省略する。
【００９７】
通信先ホスト５０３は、通信機能を備えた情報処理装置（コンピュータ）等であってもよい。通信先ホスト５０３の具体的な構成は特に限定されず、汎用のコンピュータ装置又は情報処理端末であってもよく、特定目的の専用装置であってもよい。また、通信先ホスト５０３は、物理的な装置であってもよく、仮想的な装置であってもよい。
【００９８】
通信元ホスト５０１は、例えば、オープンフローネットワーク５０４に通信可能に接続された情報処理装置等であってもよい。通信元ホスト５０１は、例えば、汎用のコンピュータ装置又は情報処理端末であってもよく、特定目的の専用装置であってもよい。通信元ホスト５０１は、物理的な装置であってもよく、仮想的な装置であってもよい。通信元ホスト５０１は、上記説明した通信元ホスト３０５と同様、演算処理部、記憶部及び表示部を備えてもよい。
【００９９】
通信元ホスト５０１は、オープンフローネットワーク５０４を構成するＯＦＳ６００に直接的に接続されていてもよい。また、通信元ホスト５０１は、適切な通信装置（例えば、スイッチ、ルータ等）を介して、ＯＦＳ６００に通信可能に接続されていてもよい。
【０１００】
通信元ホスト５０１には、調査コマンド５０２が導入されていてもよい。調査コマンド５０２は、例えば、通信元ホスト５０１において実行されるソフトウェア・プログラムとして、通信元ホスト５０１にインストールされてもよい。上記に限定されず、調査コマンド５０２は、例えば、通信元ホスト５０１が提供する機能の一部として組み込まれてもよい。
【０１０１】
例えば、利用者が、通信元ホスト５０１において調査コマンド５０２を実行した場合、調査コマンド５０２は、調査要求パケット（後述）を送出する。また、調査コマンド５０２は、調査要求パケットに対する応答として各ＯＦＳ６００から送信された調査結果パケット（後述）に含まれる情報を出力可能である。具体的には、調査コマンド５０２は、調査結果パケットに含まれるフローエントリに関する情報を、通信元ホストの表示部、あるいは、ログファイル等に出力可能である。
【０１０２】
ＯＦＳ６００は、一般的なオープンフロースイッチとしての機能を提供可能であると共に、調査要求パケットを処理することができる。例えば、調査要求パケットを受信した場合、ＯＦＳ６００は、当該調査要求パケットが合致（ヒット）するフローエントリを検索する。ＯＦＳ６００は、調査要求パケットがヒットするフローエントリが存在する場合、調査結果パケットを生成し、通信元ホスト５０１に送出する。
【０１０３】
以下、ＯＦＳ６００について詳細に説明する。図６は、本実施形態におけるＯＦＳ６００の機能的な構成を例示するブロック図である。
【０１０４】
ＯＦＳ６００は、オープンフロープロトコル処理部６０１を備える。オープンフロープロトコル処理部６０１は、管理ポート６０２を用いて、ＯＦＣ５０６との間でオープンフローチャネル５０５の通信を確立する。管理ポート６０２は、ＯＦＣ５０６とＯＦＳ６００との間を接続するオープンフローチャネルにおける通信に用いられる通信ポートである。管理ポート６０２は、ＯＦＳ６００に設けられた物理的な通信ポートであってもよく、論理的な通信ポートであってもよい。
【０１０５】
オープンフロープロトコル処理部６０１は、ＯＦＣ５０６から受信した制御メッセージを解釈する。オープンフロープロトコル処理部６０１は、例えば、制御メッセージを解釈した結果に応じて、フロー管理部６０３を用いて、フローテーブル保持部６０４に保持されたフローテーブル６０４ａを更新してもよい。
【０１０６】
フロー管理部６０３は、フローテーブル保持部６０４に保持されたフローテーブル６０４ａを管理する機能を提供する。フロー管理部６０３は、例えば、フローテーブル６０４ａに含まれるフローエントリ６０４ｂを更新、追加、削除する機能等を提供してもよい。上記に限定されず、フロー管理部６０３は、フローテーブル６０４ａの管理に関するその他の機能を提供してもよい。
【０１０７】
フローテーブル保持部６０４は、フローテーブル６０４ａを保持する。フローテーブル６０４ａは、オープンフロー技術において規定されたフローテーブルであり、フローエントリ６０４ｂを１以上保持する。フローエントリ６０４ｂは、例えば、オープンフロー技術において規定された各種フィールド（条件フィールド、命令フィールド、優先度フィールド等）を有する。
【０１０８】
上記ように構成されたフローテーブル保持部６０４は、例えば、上記説明したフローエントリ保持部１０３、フローエントリ保持部３０２と同様の機能を提供してもよい。
【０１０９】
データ通信ポート６０５は、例えば、ＯＦＣ５０６以外の一般的なホスト等から送信された通信データが到着する。データ通信ポート６０５は、ＯＦＳ６００がオープンフローネットワーク５０４との間で通信データを送受信する際に用いられる通信ポートである。ＯＦＳ６００は、例えば、データ通信ポート６０５を用いて、オープンフローネットワーク５０４に接続された他の装置（例えば他のＯＦＳ６００及び通信元ホスト５０１等）と通信する。データ通信ポート６０５は、ＯＦＳ６００に設けられた物理的な通信ポートであってもよく、論理的な通信ポートであってもよい。以下、データ通信ポート６０５を、単に「通信ポート」又は「ポート」と記載する場合がある。データ通信ポートを介して送受信される通信データを単に「パケット」と記載する場合がある。
【０１１０】
パケット処理部６０６は、データ通信ポート６０５に到着したパケットを、フローテーブル６０４ａに含まれるフローエントリ６０４ｂの設定に基づいて処理する。パケット処理部６０６は、例えば、データ通信ポート６０５にパケットが到着した際に、フローテーブル６０４ａを参照し、当該パケットがヒット（合致）するフローエントリ６０４ｂを検索する。より具体的には、パケット処理部６０６は、例えば、フローテーブル６０４ａに含まれるフローエントリ６０４ｂ毎に、受信したパケットが当該フローエントリの条件フィールドに合致するか否か（即ち、条件フィールドに設定された条件を満たすか否か）を判定してもよい。
【０１１１】
パケット処理部６０６は、上記検索の結果、パケットに合致するフローエントリ６０４ｂが得られた場合、当該フローエントリ６０４ｂに含まれる命令フィールドの内容（アクション）に応じてパケットを処理する。例えば、パケット処理部６０６は、具体例として、「ポート２からパケットを送出する」、「パケットを破棄する」等のアクションを実行してもよい。
【０１１２】
本実施形態におけるパケット処理部６０６は、更に、調査要求パケット及び調査結果パケットを検出することが可能である。調査要求パケットのヘッダにおける、ある特定のフィールドには、そのパケットが調査要求パケットであることを表す識別情報（調査要求情報）が設定されている。同様に、調査結果パケットのヘッダにおける、ある特定のフィールドには、そのパケットが調査結果パケットであることを表す識別情報（調査応答情報）が設定されている。パケット処理部６０６は、受信したパケットにおける上記特定のフィールドを確認することで、調査要求パケット及び調査結果パケットの受信を検知することができる。
【０１１３】
パケット処理部６０６は、調査要求パケット又は調査結果パケットを検知した場合、当該パケットのデータを調査パケット処理部６０７に提供してもよい。パケット処理部６０６は、また、調査要求パケットが合致するフローエントリ６０４ｂに関する情報を、調査パケット処理部６０７に提供してもよい。
【０１１４】
上記のように構成されたパケット処理部６０６は、上記説明した通信データ処理部１０１、通信データ処理部３０１と同様の機能を提供してもよい。
【０１１５】
調査パケット処理部６０７は、パケット処理部６０６が調査要求パケット又は調査結果パケットを検知した場合、それらのパケットに含まれるデータに応じて、調査テーブル６０８ａを参照又は更新する。
【０１１６】
調査パケット処理部６０７は、パケット処理部６０６が調査要求パケットを受け付けた場合、例えば、当該調査要求パケットに含まれる調査識別子（調査ＩＤ）に関連付けて、調査テーブル６０８ａに以下の情報を登録することができる。即ち、調査パケット処理部６０７は、調査ＩＤと関連付けて、調査要求パケットを受信した入力ポートを表すデータを、調査テーブル６０８ａに登録することができる。また、調査パケット処理部６０７は、調査ＩＤと関連付けて、調査要求パケットの送信元アドレスを表すデータと、送信先アドレスとを表すデータとを、調査テーブル６０８ａに登録してもよい。上記に限定されず、調査パケット処理部６０７は、その他のデータを調査テーブル６０８ａに登録してもよい。
【０１１７】
調査パケット処理部６０７は、調査要求パケットが合致するフローエントリ６０４ｂに関する情報を用いて、調査結果パケットを生成してもよい。調査結果パケットを生成する具体的な処理については、後述する。
【０１１８】
調査パケット処理部６０７は、パケット処理部６０６が調査結果パケットを受け付けた場合、例えば、当該調査結果パケットに含まれる調査ＩＤに関連付けて調査テーブル６０８ａに登録されたデータを取得する。調査パケット処理部６０７は、取得したデータを用いて、受け付けた調査結果パケットの転送情報を調整する。具体的には、調査パケット処理部６０７は、受け付けた調査パケットの送信元アドレス、送信先アドレス等を変更する。
【０１１９】
上記調査パケット処理部６０７は、上記説明した調査データ処理部１０２、調査データ処理部３０３と同様の機能を提供してもよい。
【０１２０】
調査情報保持部６０８は、調査テーブル６０８ａを保持（記憶）する。調査テーブル６０８ａは、例えば１以上のエントリ６０８ｂを保持してもよい。エントリ６０８ｂは、調査要求パケットに設定された調査ＩＤに関連付けて、以下のデータを有してもよい。即ち、エントリ６０８ｂには、調査ＩＤと関連付けて、調査要求パケットを受信した入力ポートを表すデータが含まれてもよい。また、エントリ６０８ｂには、調査要求パケットの送信元アドレスを表すデータと、送信先アドレスとを表すデータが含まれもよい。以下、係るエントリ６０８ｂを単に「調査情報」と記載する場合がある。
【０１２１】
調査情報保持部６０８は、調査テーブル６０８ａを保持（記憶）する領域が枯渇しないように、調査テーブル６０８ａを管理してもよい。調査情報保持部６０８は、例えば、調査テーブル６０８ａに登録されてから、ある基準時間以上の時間が経過したエントリ６０８ｂを整理（例えば削除）してもよい。
【０１２２】
以下、調査要求パケットについて、図７を参照して具体的に説明する。図７は、調査要求パケットの一例を示す説明図である。
【０１２３】
調査要求パケットには、あるパケットが調査要求パケットであることを表す識別情報（調査要求情報）が設定される。例えば、係る識別情報は、調査要求パケットのＬ２（Ｌａｙｅｒ２）乃至Ｌ４（Ｌａｙｅｒ４）ヘッダに含まれるいずれかのフィールドに設定されてもよい。係る識別情報が設定されるフィールドは、オープンフロー技術において規定された、一般的な転送制御等の際に参照されるフィールド以外のフィールドであってもよい。識別情報が設定されるフィールドは、オープンフローネットワーク５０４の運用等に従って適宜定められてよい。図７に例示する具体例においては、係る識別情報として、Ｌ２ヘッダのイーサタイプフィールド（図７の７０１）に、”０ｘ０１ＦＥ”というデータが設定されることを想定する。他の具体例として、ＶＬＡＮヘッダのフィールドに、係る識別情報を表すデータが設定されてもよい。係る識別情報を表すデータは、パケットのヘッダにおける１以上のフィールドに分散して設定されてもよい。
【０１２４】
なお、図７に示す具体例において、Ｌ２ヘッダにおける宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）は、調査要求パケットが転送される宛先のＭＡＣアドレスを表す。送信元ＭＡＣは、調査供給データの送信元（転送元）のＭＡＣアドレスを表す。ＴＣＩ（Ｔａｇ  Ｃｏｎｔｒｏｌ  Ｉｄｅｎｔｉｆｉｅｒ）は、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）タグの識別に用いられる値である。
【０１２５】
調査要求パケットのペイロードには、調査ＩＤ（図７における７０２）を表すデータが含まれてもよい。上記したように、調査ＩＤは、例えば、複数の利用者が並行して調査作業を実行した場合に、それぞれの調査要求パケットを識別するために用いられ得る。図７に示す具体例では、調査ＩＤのフィールドはペイロードの先頭に配置されている。上記に限定されず、調査ＩＤのフィールドは、ペイロードにおける他の適切な位置に配置されてよい。調査ＩＤのフィールドは、固定長であってもよい。
【０１２６】
調査要求パケットのペイロードには、フローヒット回数（図７における７０３）を表すデータが含まれてもよい。フローヒット回数は、調査要求パケットがオープンフローネットワーク５０４に送出された後、各ＯＦＳ６００におけるフローエントリ６０４ｂにヒット（合致）した累積回数を表す。換言すると、フローヒット回数は、調査要求パケットがオープンフローネットワーク５０４を転送される過程でヒット（合致）したフローエントリの個数を表す。
【０１２７】
図７に示す具体例では、フローヒット回数のフィールドは、調査ＩＤに続いて配置されてもよい。これに限定されず、フローヒット回数のフィールドは、ペイロードにおける適切な位置に配置されてよい。フローヒット回数のフィールドは固定長であってもよい。
【０１２８】
上記説明した調査要求パケットは、例えば、上記第１の実施形態における調査要求データの一つの実現形態であるとも考えられる。
【０１２９】
以下、調査結果パケットについて、図８を参照して具体的に説明する。図８は、調査結果パケットの一例を示す説明図である。
【０１３０】
調査結果パケットには、あるパケットが調査結果パケットであることを表す識別情報（調査応答情報）が設定される。例えば、係る識別情報は、調査結果パケットのＬ２乃至Ｌ４ヘッダに含まれるいずれかのフィールドに設定されてもよい。係る識別情報が設定されるフィールドは、オープンフロー技術において規定された、一般的な転送制御等の際に参照されるフィールド以外のフィールドであってもよい。識別情報が設定されるフィールドは、オープンフローネットワーク５０４の運用等によって適宜定められてよい。
【０１３１】
図７に例示する具体例の場合、係る識別情報として、Ｌ２ヘッダのイーサタイプフィールド（図８の８０１）に、”０ｘ０１ＦＦ”というデータが設定されることを想定する。他の具体例として、ＶＬＡＮヘッダに、係る識別情報を表すデータが設定されてもよい。
【０１３２】
調査結果パケットのペイロードには、上記調査要求データと同様に、調査ＩＤ（図８の７０２）と、フローヒット回数（図８の７０３）とが含まれる。
【０１３３】
調査結果パケットにペイロードには、ＤＰＩＤ（図８の８０２）を表すデータが含まれる。ＤＰＩＤは、調査結果パケットを生成したＯＦＳ６００のＤａｔａｐａｔｈ  ＩＤを表すデータである。Ｄａｔａｐａｔｈ  ＩＤは、オープンフローネットワーク５０４に接続された各ＯＦＳ６００に割り当てられるユニークな識別情報である。例えば、ＯＦＣ５０６は、係るＤＰＩＤによって、各ＯＦＳ６００を特定することが可能である。ＤＰＩＤのフィールドは、ペイロードにおけるフローヒットのフィールドに続けて配置されてもよい。これに限定されず、フローヒット回数のフィールドは、ペイロードにおける適切な位置に配置されてよい。ＤＰＩＤのフィールドは固定長（例えば６４ｂｉｔ）であってもよい。
【０１３４】
調査結果パケットのペイロードには、フロー情報（図８の８０３）を表すデータが含まれる。フロー情報には、調査要求パケットがヒットしたフローエントリに関する情報を表すデータが含まれる。
【０１３５】
具体的には、フロー情報には、フローエントリのデータの少なくとも一部が含まれてもよい。フロー情報には、例えば、フローエントリに含まれるフィールド（例えば、条件フィールド、命令フィールド等）のデータが含まれてもよい。フローエントリのデータは、テキスト形式のデータであってもよい。フローエントリのデータがテキスト形式で表される場合、調査結果パケットを取得した利用者は、フローエントリの内容を容易に理解することが可能である。
【０１３６】
フローエントリのデータは、バイナリ形式のデータであってもよい。フローエントリのデータがバイナリ形式で表される場合、調査結果パケットのサイズが削減され得る。フローエントリのデータは、適切な圧縮方法（圧縮アルゴリズム）を用いて圧縮されてもよい。この場合も、調査結果パケットのサイズが削減され得る。
【０１３７】
フロー情報のフィールドは、ペイロードにおけるＤＰＩＤのフィールドに続けて配置されてもよい。フロー情報のフィールドは、可変長であってもよい。
【０１３８】
上記説明した調査結果パケットは、例えば、上記第１の実施形態における調査結果データの一つの実現形態であるとも考えらる。
【０１３９】
上記のように構成されたＯＦＣ６００の動作について説明する。
【０１４０】
以下の説明においては、調査コマンド５０２は、ネットワークの不具合が発生した際に利用者が送出したパケットに相当する形式のパケットを送出できることを想定する。
【０１４１】
調査コマンド５０２は、ＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）コマンドとして実現されてもよく、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備えたアプリケーションとして実現されてもよい。説明の便宜上、調査コマンド５０２がＣＬＩコマンドとして実現され場合について説明する。
【０１４２】
調査コマンド５０２がＣＬＩコマンドとして実現される場合、調査コマンド５０２は、各種コマンドラインオプションを受け付けることが可能である。係るコマンドラインオプションとして、例えば、通信に使用するＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）が指定されてもよい。係るコマンドラインオプションとして、例えば、送出元アドレス（Ｌ２、Ｌ３、Ｌ４）が指定されてもよい。Ｌ２アドレスは、例えば送出先のＭＡＣアドレスであってもよい。Ｌ３（Ｌａｙｅｒ３）アドレスは、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダで特定可能なアドレス（ＩＰアドレス）であってもよい。Ｌ４アドレスは、例えば、プロトコルヘッダに含まれる情報により特定されるアドレスであってもよい。具体的には、Ｌ４アドレスは、例えば、ＴＣＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）ヘッダにおけるポート番号等であってもよい。また、係るコマンドラインオプションとして、ＶＬＡＮ  ＩＤが指定されてもよい。
【０１４３】
調査コマンド５０２は、典型的には、図９に示す具体例のような形式のＣＬＩコマンドとして実行されてもよい。図９に示す具体例では、調査コマンド５０２に対して、コマンドラインオプション”−−ｎｉｃ”により、調査要求パケットを送出するＮＩＣが指定される。同様に、調査コマンド５０２に、コマンドラインオプション”−−ｉｐ”により、調査要求パケットの通信先ホスト５０３のＩＰアドレスが設定される。調査コマンド５０２に、コマンドラインオプション”−−ｓｒｃ−ｍａｃ”により、送信元のＭＡＣアドレスが設定される。
【０１４４】
利用者等によって調査コマンド５０２が実行されると、調査コマンド５０２は、調査要求パケットを作成する。
【０１４５】
調査コマンド５０２は、例えば、図７に例示するＬ２ヘッダ乃至Ｌ４ヘッダに、コマンドラインオプションで指定されたデータをセットする。また、調査コマンド５０２は、Ｌ２ヘッダのタイプフィールド（図７の７０１）には、調査要求パケットであることを示す”０ｘ０１ＦＥ”をセットする。また、調査コマンド５０２は、調査ＩＤを生成し、調査ＩＤフィールド（図７の７０２）にセットする。調査ＩＤを生成する方法としては、例えば、一意のデータを生成可能な方法が適宜選択されてよい。調査ＩＤは、例えば、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を用いて生成されてもよい。調査コマンド５０２は、フローヒット回数フィールド（図７の７０３）”０”をセットする。調査コマンド５０２は、作成した調査要求パケットを、オープンフローネットワーク５０４に送出する。
【０１４６】
係る調査要求パケットを受信した際の、ＯＦＳ６００の動作について、図１０に例示するフローチャートを参照して説明する。
【０１４７】
ＯＳＦ６００（特には、データ通信ポート６０５）は、オープンフローネットワーク５０４からパケットを受信する（ステップＳ１００１）。
【０１４８】
パケット処理部６０６は、受信したパケットが、調査に関するパケット（調査要求パケット又は調査結果パケット）であるか否かを判定する（ステップＳ１００２）。パケット処理部６０６は、例えば、到着したパケットのＬ２ヘッダのタイプフィールドを参照し、”０ｘ０１ＦＥ”又は“０ｘ０１ＦＦ”がセットされているか否かを確認してもよい。
【０１４９】
パケット処理部６０６は、受信したパケットが調査に関するパケットではない場合（ステップＳ１００２においてＮＯ）、オープンフローネットワークにおける一般的なパケット（通信データ）として処理する（ステップＳ１００３）。
【０１５０】
ステップＳ１００２においてＹＥＳの場合、パケット処理部６０６は、当該パケットが調査要求パケットか、調査結果パケットかを確認する（ステップＳ１００４）。パケット処理部６０６は、例えば、パケットのＬ２ヘッダのタイプフィールドに”０ｘ０１ＦＥ”設定されていれば、当該パケットが調査要求パケットであると判定してよい。パケット処理部６０６は、例えば、パケットのＬ２ヘッダのタイプフィールドに”０ｘ０１ＦＦ”設定されていれば、当該パケットが調査結果パケットであると判定してよい。
【０１５１】
ステップＳ１００４において受信したパケットが調査結果パケットである場合の処理は後述する。なお、図１０の”Ａ”以降の処理は、図１１のフローチャートに表される。
【０１５２】
ステップＳ１００４において受信したパケットが調査要求パケットである場合、パケット処理部６０６は、調査パケット処理部６０７を用いて、調査要求パケットに設定されたデータを、調査テーブル６０８ａに登録する（ステップＳ１００５）。この場合、パケット処理部６０６は、調査要求パケットに含まれるデータを、調査パケット処理部６０７に提供してもよい。
【０１５３】
調査パケット処理部６０７は、例えば、調査要求パケットに設定された調査ＩＤに対して、送信元アドレス（Ｌ２ヘッダ乃至Ｌ４ヘッダに設定されたデータ）及び送信先アドレス（Ｌ２ヘッダ乃至Ｌ４ヘッダに設定されたデータ）を関連付けたエントリを、調査テーブル６０８ａに登録してもよい。また、調査パケット処理部６０７は、当該調査要求パケットが入力された（受信した）データ通信ポート６０５のポート番号を、調査テーブル６０８ａに登録してもよい。同じ調査ＩＤを有するエントリが、既に調査テーブル６０８ａに登録されている場合、調査パケット処理部６０７は、当該エントリを更新せずともよい。
【０１５４】
パケット処理部６０６は、フローテーブル保持部６０４に保持されたフローテーブル６０４ａを参照する。パケット処理部６０６は、フローテーブル６０４ａにおいて、調査要求パケットがヒット（合致）するフローエントリ６０４ｂを検索する（ステップＳ１００６）。
【０１５５】
パケット処理部６０６は、調査要求パケットのフローヒット回数（図７の７０３）の値を１カウントアップ（インクリメント）する。
【０１５６】
パケット処理部６０６は、調査パケット処理部６０７を用いて、調査結果パケットを生成する（ステップＳ１００７）。パケット処理部６０６は、この際、ステップＳ１００６において検索したフローエントリのデータを、調査パケット処理部６０７に提供してもよい。
【０１５７】
具体的には、調査パケット処理部６０７は、調査結果パケットを生成し、そのタイプフィールドにタイプフィールド（図８の８０１）に”０ｘ０１ＦＦ”をセットする。調査パケット処理部６０７は、調査結果パケットの調査ＩＤ（図８の７０２）及びフローヒット回数（図８の７０３）に、それぞれ調査要求パケットにセットされている調査ＩＤ及びフローヒット回数の値をセットしてよい。
調査パケット処理部６０７は、調査結果パケットのＤＰＩＤフィールド（図８の８０２）に、ＯＦＳ６００のＤａｔａｐａｔｈ  ＩＤを設定する。調査パケット処理部６０７は、調査結果パケットのフロー情報フィールド（図８の８０３）に、ステップＳ１００６で検索したフローエントリに関するデータをセットする。調査パケット処理部６０７は、フローエントリに含まれるフィールドのデータを、フロー情報フィールドにセットしてもよい。
【０１５８】
調査パケット処理部６０７は、調査要求パケットのＬ２ヘッダ乃至Ｌ４ヘッダに設定されている宛先と送信元とを入れ替えて、調査結果パケットのＬ２ヘッダ乃至Ｌ４ヘッダにそれぞれ設定する。即ち、調査要求パケットのＬ２ヘッダ乃至Ｌ４ヘッダに設定された送信元アドレスを表すデータが、調査結果パケットのＬ２ヘッダ乃至Ｌ４ヘッダの宛先（送信先）アドレスを表すデータとしてセットされる。調査要求パケットのＬ２ヘッダ乃至Ｌ４ヘッダに設定された宛先（送信先）アドレスを表すデータが、調査結果パケットのＬ２ヘッダ乃至Ｌ４ヘッダの送信元アドレスを表すデータとしてセットされる。例えば、Ｌ２ヘッダの場合、調査パケット処理部６０７は、調査要求パケットの宛先ＭＡＣフィールドの値を、調査結果パケットの送信元ＭＡＣフィールドにセットしてもよい。調査パケット処理部６０７は、作成した調査結果パケットを、パケット処理部６０６に提供してもよい。
【０１５９】
パケット処理部６０６は、上記のようにして作成された調査結果パケットを、調査要求パケットが入力されたデータ通信ポート６０５から送出する（ステップＳ１００８）。
【０１６０】
パケット処理部６０６は、受信した調査要求パケットを、ステップＳ１００６において検索したフローエントリに従って処理する（ステップＳ１００９）。これにより、係る調査要求パケットは、例えば、通信先ホスト５０３に向けて送出される。
【０１６１】
以下、調査結果パケットがＯＦＳ６００に到着した際の、ＯＦＳ６００の動作について、図１０及び図１１に例示するフローチャートを参照して説明する。
【０１６２】
図１０のステップＳ１００４において、受信したパケットが調査結果パケットである場合、パケット処理部６０６は、当該調査結果パケットに含まれる調査ＩＤ（図８の７０２）の値を参照する。
【０１６３】
パケット処理部６０６は、調査パケット処理部６０７を用いて、上記参照した調査ＩＤを含むエントリが、調査テーブル６０８ａに登録されているか否かを判定する（ステップＳ１１０１）。
【０１６４】
ステップＳ１１０１において、該当するエントリが存在しなかった場合は（ステップＳ１１０１においてＮＯ）、調査結果パケットを破棄する（ステップＳ１１０４）。これは、例えば、調査テーブル６０８ａのエントリ６０８ｂが整理（削除）された場合等に該当する。
【０１６５】
ステップＳ１１０１で該当するエントリ６０８ｂが存在した場合（ステップＳ１１０１においてＹＥＳ）、パケット処理部６０６は、調査パケット処理部６０７を用いて、調査結果パケットの少なくとも一部を調整（変更）する。以下、係る調整処理について説明する。
【０１６６】
調査パケット処理部６０７は、調査テーブル６０８ａのエントリ６０８ｂから、送信元アドレス、送信先アドレスを読み取る。調査パケット処理部は、読み取った送信先アドレスと送信元アドレスとを入れ替えて調査結果パケットにセットする（ステップＳ１１０２）。例えば、調査パケット処理部６０７は、調査結果パケットと同じ調査ＩＤが設定されていた調査要求パケットの送信元アドレスを、当該調査結果パケットの送信先アドレスに設定してよい。同様に、調査パケット処理部は、調査結果パケットと同じ調査ＩＤが設定されていた調査要求パケットの送信先アドレスを、当該調査結果パケットの送信元アドレスに設定してよい。具体的には、例えば、調査結果パケットのＬ２ヘッダについて、調査パケット処理部６０７は、送信元ＭＡＣアドレスのフィールドに、調査テーブル６０８ａに登録された送信先ＭＡＣアドレスの値をセットしてよい。調査パケット処理部は、このように調整（変更）された調査結果パケットを、パケット処理部６０６に提供してよい。また、調査パケット処理部６０７は、調査テーブル６０８ａのエントリ６０８ｂから取得した入力ポート（データ通信ポート６０５）の情報を、パケット処理部６０６に提供してよい。
【０１６７】
パケット処理部６０６は、上記提供された入力ポートから、調査結果パケットを送出する（ステップＳ１１０３）。
【０１６８】
通信元ホスト５０１は、上記説明した処理に従って、各ＯＦＳ６００から送信された調査結果パケットを受信する。通信元ホスト５０１における調査コマンド５０２は、例えば、上記調査結果パケットの内容の少なくとも一部を、表示部に表示してよい。調査コマンド５０２は、例えば、上記調査結果パケットの内容の少なくとも一部を加工した結果を、表示部に表示してもよい。具体的には、調査コマンド５０２は、例えば、調査結果パケットに関する以下の内容を表示してもよい。
【０１６９】
調査コマンド５０２は、例えば、調査結果パケットに含まれるＤＰＩＤを表示してよい。これにより、調査要求パケットが経由してＯＳＦ６００を識別可能な情報が表示され得る。
【０１７０】
調査コマンド５０２は、例えば、調査結果パケットに含まれるフローヒット回数を表示してよい。これにより、調査要求パケットが、フローエントリにヒットした回数が表示され得る。
【０１７１】
調査コマンド５０２は、例えば、調査結果パケットに含まれるフロー情報を表示してよい。これにより、調査要求パケットがヒットしたフローエントリに関する情報が表示され得る。具体的には、調査コマンド５０２は、フローエントリに含まれる１以上のフィールド（例えば、条件フィールド、命令フィールド、統計情報フィールド等）に関する情報を表示してもよい。
【０１７２】
調査コマンド５０２は、例えば、フローエントリに関する情報を、ある表示形式に成形して表示してもよい。係る表示形式は、例えば、通信ネットワークの利用者により、適宜選択されてもよい。調査コマンド５０２は、例えば、フロー情報がテキスト形式のデータである場合、当該データを成形したデータを表示部に表示してもよい。また、フロー情報がバイナリ形式のデータである場合、当該データをテキストデータに変換し、当該変換したテキストデータを成形したデータを表示部に表示してもよい。これにより、通信ネットワークの利用者は、理解し易い形式で表示されたフローエントリに関する情報を確認することができる。
【０１７３】
調査コマンド５０２は、上記以外の情報（例えば、調査結果パケットに含まれるその他の情報）を表示してもよい。  上記のように構成された本開示におけるＯＦＳ６００は、上記説明した通信処理装置１００、通信処理装置３００と同様、通信ネットワークの利用者等に対して、ある通信データ（例えば、調査要求パケット）に関して適用されたフローエントリの履歴を提供することが可能である。なぜならば、ＯＦＳ６００は、調査要求パケットを受信した場合に、当該調査要求パケットがヒットしたフローエントリの情報を含む調査結果パケットを、当該調査要求パケットの送信元に送信するからである。
【０１７４】
オープンフローネットワーク５０４の利用者は、例えば、調査コマンド５０２を実行することにより、通信元ホスト５０１から、調査要求パケットをオープンフローネットワーク５０６に送出する。係る調査要求パケットを受信したＯＦＳ６００は、当該ＯＦＳ６００が保持するフローエントリのうち、係る調査要求パケットがヒットしたフローエントリの情報を含む調査結果パケットを、調査要求パケットの送信元に対して送出する。また、ＯＦＳ６００は、当該調査要求パケットに関する情報を調査テーブル６０８ａに登録し、当該調査要求パケットがヒットしたフローエントリの設定に従って、当該調査要求パケットを処理（例えば次のＯＦＳ６００に転送）する。
【０１７５】
ＯＦＳ６００は、他のＯＦＳ６００が送出調査結果パケットを受信した場合、当該調査結果パケットに関する調査要求パケットを送信した送信元に、当該調査結果パケットを送出する。この際、ＯＦＳ６００は、調査テーブル６０８ａに登録された情報を参照し、調査結果パケットを適切な宛先に送出する。
【０１７６】
以上より、調査要求パケットがオープンフローネットワーク５０４を介してＯＦＳ６００に転送される度に、調査結果パケットが生成される。そして、調査結果パケットは、調査要求パケットの送信元にリレー方式で転送される。即ち、オープンフローネットワーク５０４に接続された各ＯＦＳ６００が、ある調査要求パケットに関する調査結果パケットをリレーすることにより、調査結果パケットが通信元ホスト５０１に届けられる。
【０１７７】
調査コマンド５０２は、係る調査結果パケットに含まれるフローエントリに関するデータを出力する。調査コマンド５０２の出力を確認することで、利用者は、通信経路において調査要求パケットがヒットしたフローエントリの履歴を取得することが可能である。
【０１７８】
具体的には、利用者は、例えば、調査コマンド５０２の出力から、調査要求パケットがヒットしたフローエントリについて、以下のような情報を取得することができる。
【０１７９】
利用者は、例えば、調査要求パケットが転送されたＯＦＳ６００を特定可能な情報（例えば、ＤＰＩＤ）を確認可能である。これにより、利用者は、例えば、事前に想定された経路と、調査要求パケットが転送された経路とが合致するか否かを確認可能である。例えば、調査要求パケットが、利用者によって意図された経路（あるいはＯＳＦ６００）を経由していない場合、更に詳細にフローエントリに関する情報を確認することができる。これにより、利用者は、フローエントリの設計に問題があるか否かを確認することができる。
【０１８０】
利用者は、例えば、調査要求パケットが転送された回数（フローヒット回数）を確認可能である。これにより、利用者は、調査要求パケットが通信先ホスト５０３に到着するまでにヒットしたフローエントリの個数を確認可能である。通信先ホスト５０３に到着するまでにヒットしたフローエントリの個数が利用者の想定よりも多い場合、利用者は、例えば、ヒットするフローエントリの個数を低減するように、転送経路の設計を再検討することができる。
【０１８１】
利用者は、例えば、調査要求パケットに対して、各ＯＳＦ６００において適用されたフローエントリに関する情報（例えば、条件フィールド、命令フィールド等）を確認可能である。これにより、利用者は、例えば、調査要求パケットが適切に処理されたか否かを確認可能である。また、利用者は、調査要求パケットが適切に処理されていない場合には、係る不具合を修正するように、フローエントリの設計を再検討することができる。
【０１８２】
以上より、本開示におけるＯＦＳ６００によれば、ＳＤＮ技術を用いた通信ネットワークにおいて、通信データに適用された転送ルール（フローエントリ）の履歴を容易に取得可能である。
【０１８３】
これにより、例えば、ネットワーク管理者が時間と工数とかけて収集していた情報を、利用者自身が自動的に取得できる。また、利用者が、調査コマンド５０２の出力をネットワーク管理者に提供することで、ネットワーク管理者は、早期に、通信障害に関する原因の特定、改修等の作業に取り掛かることができる。その結果、通信障害からの復旧時間が短縮され得る。
【０１８４】
上記のように構成された第２の実施形態におけるＯＦＳ６００について、以下のような変形例が考えられる。
【０１８５】
例えば、ＯＳＦ６００が受信した調査要求パケット又は調査結果パケットがヒット（合致）するフローエントリに設定された命令フィールドのアクションに、以下の処理が設定されていてもよい。即ち、係るアクションに、例えば、調査要求パケットに対する調査結果パケットの生成及び送信等の処理（ステップＳ１００７乃至ステップＳ１００９）が設定されていてもよい。また、係るアクションに、例えば、受信した調査結果パケットを調整して送出する処理（ステップＳ１１０２乃至ステップＳ１１０３等）が設定されてもよい。
【０１８６】
上記変形例においては、ＯＳＦ６００が調査要求パケットを受信し、当該調査要求パケットがヒット（合致）するフローエントリに設定されたアクションを実行することで、調査結果パケットの生成及び送出が実行される。同様にＯＳＦ６００が調査結果パケットを受信し、当該調査結果パケットがヒット（合致）するフローエントリに設定されたアクションを実行することで、調査結果パケットの調整及び送出が実行される。上記変形例は、例えば、オープンフロープロトコルの仕様を拡張することで、実現可能である。
【０１８７】
上記各実施形態においては、本開示に関する技術を通信処理装置（１００、３００）又はＯＦＳ６００に適用した例として説明した。上記各実施形態では、例えば、通信処理装置（１００、３００）又はＯＦＳ６００を動作させることによって、通信処理方法を実施することができる。通信処理方法を実施する方法は上記に限定されず、通信処理装置（１００、３００）又はＯＦＳ６００と同様の動作あるいは処理を実行可能な、他の装置（例えば、コンピュータ等の情報処理装置）によって実施することも可能である。
【０１８８】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０１８９】
以下の説明においては、上記各実施形態において説明した通信処理装置（１００、３００）及びＯＦＳ６００をまとめて、単に「通信処理装置」と記載する。また、これら通信処理装置の各構成要素を、単に「通信処理装置の構成要素」と記載する場合がある。
【０１９０】
上記各実施形態において説明した通信処理装置は、１つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図（図１Ａ、図１Ｂ、図３、図６）に示した各構成要素は、その一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路あるいは記憶デバイス等）を用いて実現されてもよい。
【０１９１】
通信処理装置が専用のハードウェアにより実現される場合、係る通信処理装置の構成要素は、例えば、それぞれの機能を提供可能な回路構成（ｃｉｒｃｕｉｔｒｙ）により実現されてもよい。係る回路構成は、例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、通信処理装置の構成要素が保持するデータは、例えば、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域、あるいは、当該ＳｏＣに接続された記憶デバイス（半導体記憶装置等）に記憶されてもよい。また、この場合、通信処理装置の各構成要素を接続する通信回線としては、周知の通信バス等を採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。
【０１９２】
また、上述した通信処理装置は、図１２に例示するような汎用のハードウェア装置１２００と、係るハードウェア装置１２００によって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、通信処理装置は、適切な数の汎用のハードウェア装置１２００と、ソフトウェア・プログラムとの組合せにより構成されてもよい。
【０１９３】
図１２における演算装置１２０１は、汎用のＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置１２０１は、例えば後述する不揮発性記憶装置１２０３に記憶された各種ソフトウェア・プログラムをメモリ１２０２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態における通信処理装置の構成要素の機能は、演算装置１２０１により実行されるソフトウェア・プログラムを用いて実現されてもよい。
【０１９４】
演算装置１２０１は、例えば、複数のＣＰＵコアを備えたマルチコアＣＰＵであってもよい。また演算装置１２０１は、１つのＣＰＵコアが複数のスレッドを実行可能な、マルチスレッドＣＰＵであってもよい。ハードウェア装置１２００は、複数の演算装置１２０１を備えてもよい。
【０１９５】
メモリ１２０２は、演算装置１２０１から参照可能な、ＲＡＭ等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ１２０２は、揮発性のメモリであってもよい。
【０１９６】
不揮発性記憶装置１２０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置（ストレージデバイス）である。不揮発性記憶装置１２０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。例えば、通信処理装置の各構成要素を実現可能なプログラムは、不揮発性記憶装置１２０３に記憶されてもよい。
【０１９７】
ドライブ装置１２０４は、例えば、後述する記録媒体１２０５に対するデータの読み込みや書き込みを処理する装置である。
【０１９８】
記録媒体１２０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。例えば、通信処理装置の各構成要素を実現可能なプログラムは、記録媒体１２０５に記録されていてもよい。
【０１９９】
ネットワークインタフェース１２０６は、通信ネットワークとの間の通信データの送受信を制御する装置である。ネットワークインタフェース１２０６は、例えば、１以上の通信ポートを備え、係る通信ポートを介して、通信ネットワークとの間で通信データを送受信してもよい。ネットワークインタフェース１２０６は、複数の通信ポートを備えてもよい。例えば、ネットワークインタフェース１２０６が備える通信ポートの少なくとも一部が、ＯＦＣ５０６との間のオープンフローチャネルに接続され、他の通信ポートが、オープンフローネットワーク５０４に接続されてもよい。なお、ネットワークインタフェース１２０６自体が、複数設けられてもよい。
【０２００】
図１２に例示するハードウェア装置１２００の構成要素は、例えば、適切な通信方法（通信バス等）を用いて、通信可能に接続されていてもよい。
【０２０１】
上述した各実施形態を例に説明した本開示における通信処理装置、あるいはその構成要素は、例えば、図１２に例示するハードウェア装置１２００に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。
【０２０２】
より具体的には、例えば、係るハードウェア装置１２００に対して供給したソフトウェア・プログラムを、演算装置１２０１が実行することによって、本開示に関する技術が実現されてもよい。この場合、係るハードウェア装置１２００で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。
【０２０３】
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０２０４】
図１Ａ、図１Ｂ、図３及び図６の各図に例示した通信処理装置の各構成要素をソフトウェアモジュールとして実現する場合、例えば、これらのソフトウェアモジュールが不揮発性記憶装置１２０３に記憶されてもよい。そして、演算装置１２０１がそれぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ１２０２に読み出してもよい。
【０２０５】
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
【０２０６】
更に、上記ソフトウェア・プログラムは記録媒体１２０５に記録されてもよい。この場合、上記ソフトウェア・プログラムは、通信処理装置の出荷段階、あるいは運用段階等において、適宜ドライブ装置１２０４を通じて不揮発性記憶装置１２０３に格納されるよう構成されてもよい。
【０２０７】
なお、上記の場合において、上記ハードウェア装置１２００への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具（ツール）を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０２０８】
そして、このような場合において、本開示に関する技術は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置１２００と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。
【０２０９】
また、上述した通信処理装置の構成要素は、図１２に例示するハードウェア装置１２００を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図１２に例示するハードウェア装置１２００の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図１２に例示するハードウェア装置１２００を物理的な装置として構成した場合と同様の構成にて、本開示に関する技術を実現可能である。
【０２１０】
以上、本開示に関する技術を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本開示の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本開示の技術的範囲に含まれ得る。上述した各実施形態を組合せた実施形態も本開示の技術的範囲に含まれる。更に、上述した各実施形態と、上述した各実施形態に変更又は改良を加えた新たな実施形態とを組合せた実施形態も、本開示の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【符号の説明】
【０２１１】
１００    通信処理装置
１０１    通信データ処理部
１０２    調査データ処理部
１０３    フローエントリ保持部
３００    通信処理装置
３０１    通信データ処理部
３０２    フローエントリ保持部
３０３    調査データ処理部
３０４    調査情報保持部
３０５    通信元ホスト
３０６    調査コマンド
５０１    通信元ホスト
５０２    調査コマンド
５０３    通信先ホスト
５０４    オープンフローネットワーク
５０５    オープンフローチャネル
５０６    ＯＦＣ
６００    ＯＦＳ
６０１    オープンフロープロトコル処理部
６０２    管理ポート
６０３    フロー管理部
６０４    フローテーブル保持部
６０５    データ通信ポート
６０６    パケット処理部
６０７    調査パケット処理部
６０８    調査情報保持部
１２０１  演算装置
１２０２  メモリ
１２０３  不揮発性記憶装置
１２０４  ドライブ装置
１２０５  記録媒体
１２０６  ネットワークインタフェース
【図１Ａ】
2017175493.tif 000003
【図１Ｂ】
2017175493.tif 000004
【図２】
2017175493.tif 000005
【図３】
2017175493.tif 000006
【図４】
2017175493.tif 000007
【図５】
2017175493.tif 000008
【図６】
2017175493.tif 000009
【図７】
2017175493.tif 000010
【図８】
2017175493.tif 000011
【図９】
2017175493.tif 000012
【図１０】
2017175493.tif 000013
【図１１】
2017175493.tif 000014
【図１２】
2017175493.tif 000015