(57)【要約】  コントローラは、遅延測定用パケットのヘッダ情報をルールとし、第２スイッチへの転送動作をアクションとしたフローエントリを、第１スイッチに設定するとともに、遅延測定用パケットを第１スイッチに送信する。第１スイッチは、自身に設定されたフローエントリに従い、コントローラから送信された遅延測定用パケットを第２スイッチに転送する。解析モジュールは、第２スイッチから遅延測定用パケットを取得し、遅延測定用パケットに打刻された時刻を用いて第１スイッチと第２スイッチとの間の通信区間の遅延時間を算出する。
2012081549.tif 000002
【特許請求の範囲】
【請求項１】
互いに隣接する第１スイッチ及び第２スイッチと、
遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するとともに、前記遅延測定用パケットを前記第１スイッチに送信するコントローラと、
前記第１スイッチと前記第２スイッチとの間の通信区間の遅延時間を算出する解析モジュールと
を具備し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送し、
前記解析モジュールは、前記第２スイッチから前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記コントローラは、前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作をアクションとしたフローエントリを、前記第２スイッチに設定し、
前記第２スイッチは、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットを前記コントローラに転送し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記遅延時間を算出する
コンピュータシステム。
【請求項３】
請求項１に記載のコンピュータシステムにおいて、
前記第２スイッチは、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして前記コントローラに転送し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項４】
請求項１から３のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第１スイッチに送信し、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項５】
請求項１に記載のコンピュータシステムにおいて、
前記遅延測定用パケットのヘッダ情報をルールとし、自身への転送動作をアクションとしたフローエントリを、前記第２スイッチに設定する他のコントローラを更に具備し、
前記第２スイッチは、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットを前記他のコントローラに転送し、
前記解析モジュールは、前記他のコントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項６】
請求項５に記載のコンピュータシステムにおいて、
前記コントローラは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記遅延測定用パケットを前記第１スイッチに送信し、
前記他のコントローラは、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項７】
請求項１から６のいずれか１項に記載のコンピュータシステムにおいて、
前記第１スイッチは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第２スイッチに送信し、
前記第２スイッチは、前記遅延測定用パケットの受信時刻を前記遅延測定用パケットに打刻し、
前記解析モジュールは、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項８】
請求項２に記載のコンピュータシステムにおいて、
前記コントローラは、
前記遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作、及び前記遅延測定用パケットへの送信時刻の打刻をアクションとしたフローエントリを、前記第１スイッチに設定し、
前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作、及び前記遅延測定用パケットへの受信時刻の打刻をアクションとしたフローエントリを、前記第２スイッチに設定し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットに前記送信時刻を打刻して前記第２スイッチに転送し、
前記第２スイッチは、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットに前記受信時刻を打刻して前記コントローラに転送し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項９】
請求項５に記載のコンピュータシステムにおいて、
前記コントローラは、前記遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作、及び前記遅延測定用パケットへの送信時刻の打刻をアクションとしたフローエントリを、前記第１スイッチに設定し、
前記他のコントローラは、前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作及び、前記遅延測定用パケットへの受信時刻の打刻をアクションとしたフローエントリを、前記第２スイッチに設定し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットに前記送信時刻を打刻して前記第２スイッチに転送し、
前記第２スイッチは、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットに前記受信時刻を打刻して前記コントローラに転送する
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項１０】
請求項１から９のいずれか１項に記載のコンピュータシステムにおいて、
前記遅延測定用パケットを転送するためのフローエントリのルールとして、ＩＰ（Ｉｎｔｅｒｎｅｔ
Ｐｒｏｔｏｃｏｌ）ヘッダフィールドにおけるプロトコルが規定され、
前記第１スイッチは、受信パケットのＩＰヘッダフィールドにおけるプロトコルが、自身に設定された前記フローエントリのルールに適合している場合、前記受信パケットのヘッダ情報における他のレイヤの内容に関わらず、前記受信パケットを前記第２スイッチに転送する
コンピュータシステム。
【請求項１１】
請求項１から１０のいずれか１項に記載のコンピュータシステムにおいて、
前記第１スイッチ及び前記第２スイッチを含む複数のスイッチを更に具備し、
前記解析モジュールは、前記複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定することによって、前記複数の通信経路のそれぞれの遅延時間を算出し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定する
コンピュータシステム。
【請求項１２】
請求項１１に記載のコンピュータシステムにおいて、
前記複数の通信経路のそれぞれは、隣接する２つのスイッチによって構成される通信区間を少なくとも１つ有し、
前記解析モジュールは、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間を、前記遅延測定用パケットを利用した遅延時間の測定対象として設定する
コンピュータシステム。
【請求項１３】
遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するフロー制御部と、
前記遅延測定用パケットを前記第１スイッチに送信する遅延測定部と
を具備し、
前記遅延測定部は、前記フローエントリに従うことで前記第１スイッチから前記第２スイッチに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて、前記第１スイッチと前記第２スイッチとの間の通信区間の遅延時間を算出する
コントローラ。
【請求項１４】
請求項１３に記載のコントローラにおいて、
前記フロー制御部は、前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作をアクションとしたフローエントリを、前記第２スイッチに設定し、
前記遅延測定部は、前記フローエントリに従うことで前記第２スイッチから転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コントローラ。
【請求項１５】
請求項１３に記載のコントローラにおいて、
前記遅延測定部は、自身に設定されたフローエントリのルールに適合しない受信パケットとして前記第２スイッチから転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コントローラ。
【請求項１６】
請求項１３から１５のいずれか１項に記載のコントローラにおいて、
前記遅延測定部は、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第１スイッチに送信し、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コントローラ。
【請求項１７】
請求項１４に記載のコントローラにおいて、
前記フロー制御部は、
前記遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作、及び前記遅延測定用パケットへの送信時刻の打刻をアクションとしたフローエントリを、前記第１スイッチに設定し、
前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作、及び前記遅延測定用パケットへの受信時刻の打刻をアクションとしたフローエントリを、前記第２スイッチに設定し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットに前記送信時刻を打刻して前記第２スイッチに転送し、
前記第２スイッチは、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットに前記受信時刻を打刻して前記コントローラに転送し、
前記遅延測定部は、前記第２スイッチから転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コントローラ。
【請求項１８】
請求項１３から１７のいずれか１項に記載のコントローラにおいて、
前記遅延測定部は、複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定することによって、前記複数の通信経路のそれぞれの遅延時間を算出し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定する
コントローラ。
【請求項１９】
請求項１８に記載のコントローラにおいて、
前記遅延測定部は、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間の遅延時間を、前記遅延測定用パケットを利用して測定し、前記複数の通信経路のそれぞれの遅延時間を算出する
コントローラ。
【請求項２０】
請求項１から１２のいずれか１項に記載の解析モジュールを備えるコントローラマネジャ。
【請求項２１】
コンピュータによって実行されることで、請求項１３から１９のいずれか１項に記載のコントローラの機能を実現するプログラムが記録された記録媒体。
【請求項２２】
コンピュータによって実行されることで、請求項２０に記載のコントローラマネジャの機能を実現するプログラムが記録された記録媒体。
【請求項２３】
コントローラが、遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するステップと、
前記コントローラが、前記遅延測定用パケットを前記第１スイッチに送信するステップと、
前記第１スイッチが、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送するステップと、
解析モジュールが、前記第２スイッチから前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出するステップと
を具備する
通信経路解析方法。
【請求項２４】
請求項２３に記載の通信経路解析方法において、
前記コントローラが、前記遅延測定用パケットのヘッダ情報をルールとし、前記コントローラへの転送動作をアクションとしたフローエントリを、前記第２スイッチに設定するステップと、
前記第２スイッチが、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットを前記コントローラに転送するステップと、
を更に具備し、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２５】
請求項２３に記載の通信経路解析方法において、
前記第２スイッチが、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして前記コントローラに転送するステップを更に具備し、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２６】
請求項２３から２５のいずれか１項に記載の通信経路解析方法において、
前記コントローラが、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第１スイッチに送信するステップと、
前記コントローラが、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻するステップと
を更に具備し、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２７】
請求項２３に記載の通信経路解析方法において、
他のコントローラが、前記遅延測定用パケットのヘッダ情報をルールとし、自身への転送動作をアクションとしたフローエントリを、前記第２スイッチに設定するステップと、
前記第２スイッチが、自身に設定された前記フローエントリに従い、前記第１スイッチから送信された前記遅延測定用パケットを前記他のコントローラに転送するステップと
を更に具備し、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記他のコントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２８】
請求項２７に記載の通信経路解析方法において、
前記コントローラが、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記遅延測定用パケットを前記第１スイッチに送信するステップと、
前記他のコントローラが、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻するステップを更に具備し、
前記通信区間の遅延時間を算出するステップは、解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２９】
請求項２３から２８のいずれか１項に記載の通信経路解析方法において、
前記解析モジュールが、前記複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定するステップと、
前記解析モジュールが、測定した前記通信区間の遅延時間を利用して前記複数の通信経路のそれぞれの遅延時間を算出するステップと、
前記解析モジュールが、算出して通信経路の遅延時間を比較し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定するステップと
を更に具備する
通信経路解析方法。
【請求項３０】
請求項２９に記載の通信経路解析方法において、
前記遅延時間測定用パケットを利用して遅延時間を測定するステップは、前記解析モジュールが、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間の遅延時間を、前記遅延測定用パケットを利用した測定対象として設定するステップを備える
通信経路解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、コントローラ、コントローラマネジャ、通信経路解析方法に関し、特に、オープンフロープロトコルを利用したコンピュータシステムにおける通信経路解析方法に関する。
【背景技術】
【０００２】
コンピュータネットワークにおいて、各スイッチの転送動作等を外部のコントローラによって一元的に制御する技術（オープンフロー）が、ＯｐｅｎＦｌｏｗ  Ｃｏｎｓｏｒｔｉｕｍによって提案されている（非特許文献１参照）。この技術に対応したネットワークスイッチ（以下、オープンフロースイッチ（ＯＦＳ）と称す）は、プロトコル種別やポート番号等の詳細な情報をフローテーブルに保持し、フローの制御と統計情報の採取を行うことができる。ネットワーク内のＯＦＳのフローテーブルは、オープンフローコントローラ（ＯＦＣ）によって一元的に設定及び管理される。【０００３】
図１を参照して、オープンフロープロトコルを利用したコンピュータシステムの構成及び動作を説明する。図１を参照して、本発明の関連技術によるコンピュータシステムは、オープンフローコントローラ１００（以下、ＯＦＣ１００と称す）、複数のオープンスイッチ２−１〜２−ｎ（以下、ＯＦＳ２−１〜２−ｎと称す）を有するスイッチ群２０、複数のホストコンピュータ３−１〜３−ｉ（以下、ホスト３−１〜３−ｉと称す）を有するホスト群３０を具備する。ただし、ｎ、ｉは２以上の自然数である。以下、ＯＦＳ２−１〜２−ｎを区別せずに総称する場合はＯＦＳ２と称し、ホスト３−１〜３−ｉを区別せずに総称する場合はホスト３と称して説明する。【０００４】
ＯＦＣ１００は、ホスト３間の通信経路の設定や、経路上におけるＯＦＳ２に対する転送動作（中継動作）等の設定を行う。この際、ＯＦＣ１００は、ＯＦＳ２が保持するフローテーブルに、フロー（パケットデータ）を特定するルールと、当該フローに対する動作を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のＯＦＳ２は、ＯＦＣ１００によって設定されたフローエントリに従って受信パケットデータの転送先を決定し、転送処理を行う。これにより、ホスト３は、ＯＦＣ１００によって設定された通信経路を利用して他のホスト３との間でパケットデータの送受信が可能となる。すなわち、オープンフローを利用したコンピュータシステムでは、通信経路を設定するＯＦＣ１００と、転送処理を行うＯＦＳ２とが分離されているため、システム全体の通信を一元的に制御及び管理することが可能となる。【０００５】
図１を参照して、ホスト３−１からホスト３−ｉへパケット送信を行う場合、ＯＦＳ２−１はホスト３−１から受け取ったパケット内にある送信先情報（ヘッダ情報：例えば宛先ＭＡＣアドレスや宛先ＩＰアドレス）を参照し、ＯＦＳ２−１内部で保持しているフローテーブルから当該ヘッダ情報に適合するエントリを探す。フローテーブルに設定されるエントリの内容については、例えば非特許文献１で規定されている。【０００６】
ＯＦＳ２−１は、受信パケットデータについてのエントリがフローテーブルに記載されていない場合、当該パケットデータ（以下、ファーストパケットと称す）、又はファーストパケットのヘッダ情報をＯＦＣ１００に転送する。ＯＦＳ２−１からファーストパケットを受け取ったＯＦＣ１００はパケット内に含まれている送信元ホストや送信先ホストという情報を元に経路４００を決定する。【０００７】
ＯＦＣ１００は、経路４００上の全てのＯＦＳ２に対して、パケットの転送先を規定するフローエントリの設定を指示する（フローテーブル更新指示を発行）。経路４００上のＯＦＳ２は、フローテーブル更新指示に応じて、自身で管理しているフローテーブルを更新する。この後ＯＦＳ２は、更新したフローテーブルに従い、パケットの転送を開始することで、ＯＦＣ１００が決定した経路４００を経由して、宛先のホスト３−ｉへパケットが到達するようになる。【０００８】
ネットワークにおける通信経路の遅延時間を監視し、高遅延時間を有する通信経路を回避しながら経路制御することは、大規模で複雑なネットワークを効率的に運用するために有用である。しかし、上述のオープンフロープロトコルを利用したシステム（以下、ＯｐｅｎＦｌｏｗシステムと称す）では、このような経路制御機能は既定されていない。このため、ＯｐｅｎＦｌｏｗシステムを運用する際、通信経路の遅延時間を効率的に計算し経路制御する手法が必要となっている。【０００９】
又、レガシーネットワークの経路制御を実現できるＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）やＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）などのプロトコルが存在する。これらをＯｐｅｎＦｌｏｗシステムに適用した場合、スイッチ（ＯＦＳ）にＲＩＰやＯＳＰＦに準拠した機能を追加（ハードウェア実装、ソフトウェア実装）する必要がある。しかし、この場合、スイッチによって通信経路が設定されるため、当該システムは、オープンフロープロトコルに準拠したシステムとは言えなくなる。【００１０】
更に、ＲＩＰやＯＳＰＦにはそれぞれの欠点が存在する。ＲＩＰは実装が容易であるが、ホップ数が最小の通信経路が経路最適経路として選択されるため、選択された経路は最小遅延経路とは限らない。又、ＯＳＰＦを利用した場合、通信遅延が最小の通信経路が最適経路として選択されるが、実装が複雑である。ＯＳＰＦはＬＳＡ（Ｌｉｎｋ  Ｓｔａｔｅ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）やＬＳＤＢ（Ｌｉｎｋ  Ｓｔａｔｅ  Ｄａｔａｂａｓｅ）などで経路情報交換し経路制御するため、ネットワーク機器計算リソースの消費量が大きくなるとともに、通信経路への付加負荷も大きくなる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）  Ｄｅｃｅｍｂｅｒ  ３１，  ２００９
【発明の概要】
【００１２】
本発明の目的は、オープンフロープロトコルを利用したコンピュータシステムにおいて通信経路の遅延時間を計測することにある。
【００１３】
本発明の他の目的は、オープンフロープロトコルを利用したコンピュータシステムにおける高遅延通信経路を回避することにある。
【００１４】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。
【００１５】
本発明によるコンピュータシステムは、互いに隣接する第１スイッチ及び第２スイッチ、コントローラ、解析モジュールを具備する。コントローラは、遅延測定用パケットのヘッダ情報をルールとし、第２スイッチへの転送動作をアクションとしたフローエントリを、第１スイッチに設定するとともに、遅延測定用パケットを第１スイッチに送信する。解析モジュールは、第１スイッチと第２スイッチとの間の通信区間の遅延時間を算出する。第１スイッチは、自身に設定されたフローエントリに従い、コントローラから送信された遅延測定用パケットを第２スイッチに転送する。解析モジュールは、第２スイッチから遅延測定用パケットを取得し、遅延測定用パケットに打刻された時刻を用いて通信区間の遅延時間を算出する。
【００１６】
本発明によるコントローラは、遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、第１スイッチに設定するフロー制御部と、遅延測定用パケットを第１スイッチに送信する遅延測定部とを具備する。遅延測定部は、フローエントリに従うことで第１スイッチから第２スイッチに転送された遅延測定用パケットを取得し、遅延測定用パケットに打刻された時刻を用いて、第１スイッチと第２スイッチとの間の通信区間の遅延時間を算出する。
【００１７】
本発明による解析モジュールは、コントローラとは別のコントローラマネジャに搭載されても良い。この場合、複数のコントローラの管理下にあるスイッチ間の遅延時間は、コントローラマネジャによって算出される。
【００１８】
本発明によるコントローラやコントローラマネジャの機能は、記憶媒体に記録され、コンピュータによって実行されるプログラムによって実現される。
【００１９】
本発明による通信経路解析方法は、コントローラが、遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、第１スイッチに設定するステップと、コントローラが、遅延測定用パケットを第１スイッチに送信するステップと、第１スイッチが、自身に設定されたフローエントリに従い、コントローラから送信された遅延測定用パケットを第２スイッチに転送するステップと、解析モジュールが、第２スイッチから遅延測定用パケットを取得し、遅延測定用パケットに打刻された時刻を用いて通信区間の遅延時間を算出するステップを具備する。
【００２０】
本発明によれば、オープンフロープロトコルを利用したコンピュータシステムにおける通信経路の遅延時間を計測することができる。
【００２１】
又、オープンフロープロトコルを利用したコンピュータシステムにおける高遅延通信経路を回避することができる。
【図面の簡単な説明】
【００２２】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
【図１】図１は、オープンフロープロトコルを利用したコンピュータシステムの構成の一例を示す図である。
【図２】図２は、本発明によるコンピュータシステムの第１の実施の形態における構成を示す図である。
【図３】図３は、本発明によるオープンフローコントローラにおいて設定される測定対象パス情報の構造の一例を示す図である。
【図４】図４は、本発明によるオープンフローコントローラにおいて設定されるフローテーブルの構造の一例を示す図である。
【図５】図５は、本発明によるオープンフローコントローラよってオープンフロースイッチに設定される遅延時間測定用フローエントリの一例を示す図である。
【図６】図６は、遅延測定用フローエントリを設定するためのフローエントリ更新メッセージの一例を示す図である。
【図７】図７は、本発明による遅延測定部の構成の一例を示す図である。
【図８】図８は、本発明に係る遅延時間情報の一例を示す図である。
【図９】図９は、本発明に係る遅延測定用パケットの一例を示す図である。
【図１０】図１０は、本発明によるコンピュータシステムにおける遅延時間測定動作の一例を示す図である。
【図１１】図１１は、本発明による最小遅延到達経路の抽出動作を示すフロー図である。
【図１２】図１２は、最小遅延到達経路の抽出対象となるネットワークの構成例を示す図である。
【図１３】図１３は、本発明による通信経路決定動作において利用される最小遅延到達経路の探索用の重みつき有向グラフの一例を示す図である。
【図１４】図１４は、本発明によるコンピュータシステムの第２の実施の形態における構成を示す図である。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００２４】
１．第１の実施の形態  （コンピュータシステムの構成）    本発明によるコンピュータシステムは、図１に示すシステムと同様にオープンフロー技術を利用してパケットデータの転送制御を行う。第１の実施の形態におけるコンピュータシステムでは、遅延測定用パケットを、マスタスイッチを介してスレーブスイッチに転送させ、スレーブスイッチからファーストパケットとして通知された遅延測定用パケットの受信時刻と、オープンフローコントローラから送信した時刻とを用いて当該スイッチ間の伝播時間（遅延時間）を測定する。
【００２５】
図２から図９を参照して、本発明によるコンピュータシステムの第１の実施の形態における構成を説明する。図２を参照して、本発明によるコンピュータシステムは、オープンフローコントローラ１（以下、ＯＦＣ１と称す）、複数のオープンフロースイッチを有するスイッチ群２０、複数のホスト端末３−１〜３−ｉを具備する。又、図２には図示していないが、スイッチ群２０は、図１で示すシステムと同様に複数のオープンフロースイッチ２−１〜２−ｎ（以下、ＯＦＳ２−１〜２−ｎ）を備える。ただし、ｎ、ｉは２以上の自然数である。以下、ＯＦＳ２−１〜２−ｎを区別せずに総称する場合はＯＦＳ２と称し、ホスト３−１〜３−ｉを区別せずに総称する場合はホスト３と称して説明する。
【００２６】
ＯＦＣ１は、オープンフロー技術により、システム内におけるパケット転送に係る通信経路の構築及びパケット転送処理を制御する。ここで、オープンフロー技術とは、ＯＦＣ１が、ルーティングポリシー（フローエントリ：フロー＋アクション）に従い、マルチレイヤ及びフロー単位の経路情報を通信経路上のＯＦＳ４やＯＦＶＳ３３に設定し、経路制御やノード制御を行う技術を示す（詳細は、非特許文献１を参照）。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるＯＦＳ２やＯＦＶＳ３３は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、ＥＮＤ２ＥＮＤのフローとして通信を取り扱う。
【００２７】
図２を参照して、第１の実施の形態におけるＯＦＣ１の構成の詳細を説明する。ＯＦＣ１は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。ＯＦＣ１では、図示しないＣＰＵが記憶装置（記録媒体）に格納されたプログラムを実行することで、図２に示すアドレス経路計算部１１、フロー制御部１２、及び遅延測定部１３の各機能が実現される。又、ＯＦＣ１は、自身が制御するスイッチ群２０の位置や接続状況に関する情報（物理トポロジ情報）を位置・接続情報１４として保持する。位置・接続情報１４は、例えば、ＯＦＣ１が制御するＯＦＳ２の全ての識別子（例えばＤａｔａＰａｔｈ  ＩＤ：ＤＰＩＤ）、各ＯＦＳ２が有する全てのポート番号、及び各ポートに接続する他のＯＦＳ２のＤＰＩＤを有する。
【００２８】
経路計算部１１は、位置・接続情報１４を用いて遅延時間の測定対象となる通信区間を設定する。詳細には、経路計算部１１は、位置・接続情報１４を用いて各ホスト３間の経路を計算し、経路上の隣接する２つのＯＦＳ２の一方をマスタスイッチ、他方をスレーブスイッチとして設定し、両者の間の通信区間を遅延測定対象区間として設定する。この際、経路計算部１１は、遅延測定対象区間を特定する情報を、図３に示す測定対象パス情報２００として図示しない記憶装置に記録する。例えば、経路計算部１１は、マスタスイッチとして設定されたＯＦＳ２のＤＰＩＤ（マスタ識別子２０１）と、スレーブスイッチとして設定されたＯＦＳ２のＤＰＩＤ（スレーブ識別子２０２）と、マスタスイッチに接続されるスレーブスイッチ宛のポート番号（ＭｔｏＳポート番号２０３）を対応付けて測定対象パス情報２００として記録する。
【００２９】
フロー制御部１２は、Ｍｏｄｉｆｙ  Ｆｌｏｗ  Ｅｎｔｒｙ  Ｍｅｓｓａｇｅによってオープンフロープロトコルに従ったスイッチ（ここではＯＦＳ２）に対してフローエントリ（ルール＋アクション）の設定、変更、又は削除を行う。これにより、ＯＦＳ２は、受信パケットのヘッダ情報に応じたルールに対応するアクション（例えばパケットデータの中継や破棄）を実行する。
【００３０】
フローエントリに設定されるルールには、例えば、ＴＣＰ／ＩＰのパケットデータにおけるヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせが規定される。例えば、レイヤ１の物理ポート、レイヤ２のＭＡＣアドレス、レイヤ３のＩＰアドレスやプロトコル、レイヤ４のポート番号、ＶＬＡＮタグ（ＶＬＡＮ  ｉｄ）のそれぞれの組み合わせがルールとして設定される。
【００３１】
ここで、フロー制御部１２によってルールに設定されるポート番号等の識別子やアドレス等は、所定の範囲で設定されても構わない。又、宛先や送信元のアドレス等を区別してルールとして設定されルことが好ましい。例えば、ＭＡＣ宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルールとして設定される。更に、データ転送プロトコルを特定する識別子をルールとして設定してもよい。
【００３２】
フローエントリに設定されるアクションには、例えばＴＣＰ／ＩＰのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクションとして、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
【００３３】
ＯＦＳ２に設定される（又は設定された）フローエントリは、フロー制御部１２によってフローテーブル１５に記録される。図４は、本発明によるフロー制御部１２において設定されるフローテーブル１５の構造の一例を示す図である。フローテーブル１５には、設定対象となるＯＦＳ２の識別子（例えばＤＰＩＤ）を示す対象装置１５２と設定されるフローエントリ１５０とが、フローエントリを特定するためのフロー識別子１５１に対応づけられて記録される。フローエントリ１５０には、ルール１５３及びアクション情報１５４が設定される。フロー制御部１２は、フローテーブル１５を参照することで、ＯＦＳ２にどのようなフローエントリ１５０が設定されているかを把握することができる。又、図４には図示しないが、フローテーブル１５は、対象装置１５２であるＯＦＳ２にフローエントリ１５０を設定したか否かを示す情報が含まれても良い。
【００３４】
本発明によるフロー制御部１２は、パケット転送を制御するフローエントリをＯＦＳ２に設定するとともに、通信区間の遅延時間を測定するための遅延時間測定用フローエントリをＯＦＳ２（マスタスイッチ及びスレーブスイッチ）に設定する。詳細には、フロー制御部１２は、通常、ＯＦＳ２からのファーストパケットの通知（ＰａｃｋｅｔＩＮ）に応じて、当該ファーストパケットの転送や廃棄を指示するフローエントリを経路上のＯＦＳ２に設定する。又、フロー制御部１２は、経路計算部１１で特定された測定対象区間のマスタスイッチ及びスレーブスイッチに対し、遅延時間測定用フローエントリを設定する。
【００３５】
図５は、フロー制御部１２によってＯＦＳ２に設定される遅延時間測定用フローエントリの一例を示す図である。図５を参照して、ＯＦＳ２（マスタスイッチ）に設定される遅延時間測定用フローエントリの詳細を説明する。遅延時間測定用フローエントリには、ルール１５３として、マッチフィールド（Ｍａｔｃｈ  Ｆｉｅｌｄ）とマッチフィールドの値（Ｍａｔｃｈ  Ｖａｌｕｅ）とが規定される。又、アクション情報１５４としてアクション（Ａｃｔｉｏｎ）とプロパティ（Ｐｒｏｐｅｒｔｙ）が規定される。例えば、遅延時間測定用フローエントリには、ＩＰヘッダフィールドのプロトコルの値を“２５１”、他のマッチフィールドの値を“ａｎｙ”としたルール１５３が設定される。“ＡＮＹ”に設定されたエントリ項目は任意の値にマッチする。又、このとき、アクション情報１５４には、アクションとして“ポートへ転送（Ａｃｔｉｏｎ：Ｓｅｎｄ  ｔｏ  Ｐｏｒｔ）”、プライオリティとして“優先度が最優先（Ｅｎｔｒｙ  Ｐｒｉｏｒｉｔｙ＝０ｘｆｆｆｆ）、及びエントリの有効期間が無限（Ｉｄｌｅ＿Ｔｉｍｅ＝０ｘ００００、Ｈａｒｄ＿Ｔｉｍｅ＝０ｘ００００）”が設定される。フローエントリのプライオリティを“０ｘｆｆｆｆ”に指定することで、遅延測定用フローエントリは最優先に比較され、適合した場合パケットに対して所定のアクションが必ず実行される。又、“ｉｄｌｅ＿ｔｉｍｅ＝０ｘ００００、ｈａｒｄ＿ｔｉｍｅ＝０ｘ００００”に指定され束相、遅延測定用フローエントリの生存時間は無限になる（ＯＦＳ２において生存時間切りで削除されなくなる）。
【００３６】
ここで、アクションとして設定される転送先ポートは、フローエントリの設定対象スイッチがマスタかスレーブかによって異なる。例えば、マスタスイッチに設定する遅延時間測定用フローエントリには、測定対象パス情報２００において、当該マスタスイッチに対応付けられたＭｔｏＳポート番号２０３（スレーブスイッチに接続するポート番号）が転送先として指定される。一方、スレーブスイッチに設定する遅延時間測定用フローエントリには、当該スレーブスイッチにおいてＯＦＣ１に接続するポート番号が転送先として指定される。
【００３７】
フロー制御部１２は、フローエントリ更新メッセージ（Ｍｏｄｉｆｙ  Ｆｌｏｗ  Ｅｎｔｒｙ  Ｍｅｓｓａｇｅ）によってＯＦＳ２のフローエントリを更新（設定）する。例えば、図５に示す遅延時間測定用フローエントリをＯＦＳ２（マスタスイッチ）に設定する際、図６に示すようなフローエントリ更新メッセージ（Ｍｏｄｉｆｙ  Ｆｌｏｗ  Ｅｎｔｒｙ  Ｍｅｓｓａｇｅ）を生成し、設定対象となるＯＦＳ２（マスタスイッチ）に送信する。フローエントリ更新メッセージは、ヘッダフィールド（Ｈｅａｄｅｒ  Ｆｉｅｌｄ）、ルールフィールド（Ｆｉｅｌｄ  ｔｏ  Ｍａｔｃｈ）、アクションフィールド（Ｆｌｏｗ  Ａｃｔｉｏｎ  Ｆｉｅｌｄ）を有する。図６に示すフローエントリ更新メッセージのヘッダフィールドには、本メッセージがフローエントリ更新メッセージであることを示す“Ｍｏｄｉｆｙ  Ｆｌｏｗ  Ｅｎｔｒｙ  Ｍｅｓｓａｇｅ”が指定され、ルールフィールドにはＯＦＳ２に登録するルール１５３が指定される。ここでは、ルールフィールドに、ＩＰヘッダフィールドのプロトコルが“２５１”であり、その他の項目が“ＡＮＹ”であることが指定される。又、アクションフィールドには、ＯＦＳ２に登録するアクション情報１５４が指定される。例えばアクションフィールドは、Ｃｏｍｍａｎｄ、Ｉｄｌｅ＿Ｔｉｍｅ、Ｈａｒｄ＿Ｔｉｍｅ、Ｐｒｉｏｒｉｔｙ、Ｆｌａｇｓ、Ａｃｔｉｏｎを含む。ここでは、Ｃｏｍｍａｎｄに、本メッセージがエントリの新規追加であることを示す“Ａｄｄ  ｎｅｗ  Ｆｌｏｗ  ｅｎｔｒｙ”が指定され、Ｉｄｌｅ＿Ｔｉｍｅ及びＨａｒｄ＿Ｔｉｍｅに、無期限を示す“０ｘ００００”が指定され、Ｐｒｉｏｒｉｔｙに最優先を示す“０ｘｆｆｆｆ”が指定され、ｆｌａｇｓにエントリの重複確認を示す“Ｃｈｅｃｋｉｎｇ  ｏｖｅｒｌａｐｐｉｎｇ  ｅｎｔｒｙ  ｆｉｒｓｔ”が指定され、ＡｃｔｉｏｎにＯＦＣ１に受信パケットを送信することを示す“Ｓｅｎｄ  ｔｏ  ＯＦＣ”が指定される。
【００３８】
図６に示すフローエントリ更新メッセージを受けたＯＦＳ２は、ＩＰヘッダフィールドのプロトコルが“２５１”をルールとし、ＯＦＣ１に転送することをアクションとしたフローエントリを自身のフローテーブルに設定する。これにより、当該ＯＦＳ２は、ＩＰヘッダフィールドが“２５１”である受信パケット（遅延測定用パケット）をＯＦＣ１に転送することになる。
【００３９】
遅延測定部１３は、遅延測定用パケットを生成するとともに、スイッチを介して転送された遅延測定用パケットを解析してマスタスイッチとスレーブスイッチとで形成される通信区間の遅延時間（伝播時間）を算出する。図７は、遅延測定部１３の構成の一例を示す図である。図７を参照して、遅延測定部１３は、遅延測定パケット発行モジュール１３１、遅延測定パケット解析モジュール１３２、パケット受信モジュール１３３、パケット送信モジュール１３４を備える。
【００４０】
遅延測定パケット発行モジュール１３１は、経路計算部１１によって算出された通信区間の遅延時間（伝播時間）を測定するための遅延測定用パケットを作成する。詳細には、遅延測定パケット発行モジュール１３１は、測定対象パス情報２００を参照して、遅延時間の測定対象の通信区間、及び当該通信区間のマスタスイッチとスレーブスイッチを特定する。そして、遅延測定パケット発行モジュール１３１は、遅延時間対象として特定したマスタスイッチからスレーブスイッチに転送されるように規定した遅延想定用パケットを生成する。遅延測定用パケットは、ＯＦＣ１における送信時刻と受信時刻が打刻されるタイムスタンプフィールドを備える。
【００４１】
遅延測定用パケットは、オープンフロープロトコルに準拠したＳｅｎｄ  Ｐａｃｋｅｔ  Ｍｅｓｓａｇｅフォーマットで構成されることが好ましい。図９は、遅延測定用パケットの構造の一例を示す図である。図９を参照して、遅延測定用パケットは、ヘッダフィールド（Ｈｅａｄｅｒ  Ｆｉｅｌｄ）、アクションフィールド（Ａｃｔｉｏｎｓ  Ｆｉｅｌｄ）、データフィールド（Ｄａｔａ  Ｆｉｅｌｄ）を備える。例えば、Ｈｅａｄｅｒ  Ｆｉｅｌｄには、本メッセージがＯＦＣ１からスイッチ宛のメッセージであることを示す“Ｐａｃｋｅｔ  Ｏｕｔ  Ｍｅｓｓａｇｅ”が指定され、Ａｃｔｉｏｎｓ  Ｆｉｅｌｄには、本メッセージにおけるＤａｔａ  Ｆｉｅｌｄの内容をスレーブスイッチに接続しているポートに伝送することを示すアクション“Ｓｅｎｄ  Ｆｉｅｌｄ  ｔｏ  ｔｈｅ  Ｍ  ｔｏ  Ｓ  ｐｏｒｔ  ｃｏｎｎｅｃｔｅｄ  ｔｏ  ｔｈｅ  Ｓｌａｖｅ  Ｓｗｉｔｃｈ”が指定される。
【００４２】
又、Ｄａｔａ  Ｆｉｅｌｄは、Ｅｔｈｅｒヘッダフィールド（Ｅｔｈｅｒ  Ｈｅａｄｅｒ）、ＩＰヘッダフィールド（ＩＰ  Ｈｅａｄｅｒ）、ＩＰデータフィールド（ＩＰ  ＤＡＴＡ）を備える。例えば、Ｅｔｈｅｒ  Ｈｅａｄｅｒ内のＥｔｈｅｒ  Ｔｙｐｅには“０ｘ０８００（ＩＰｖ４）”が指定され、ＩＰ  Ｈｅａｄｅｒ内のＰｒｏｔｏｃｏｌには“２５１（国際標準未定義ＩＰ  Ｐｒｏｔｏｃｏｌの１つ）”が指定される。この場合、ＯＦＣ１は、Ｐｒｏｔｏｃｏｌの値が“２５１”に適合する受信パケットを遅延測定パケットとして認識する。又、スレーブスイッチは、“Ｐｒｏｔｏｃｏｌの値が２５１”をルールとする遅延測定用フローエントリに設定されたアクション（ここでは、ＯＦＣ１に受信パケットを転送）を実行する。
【００４３】
更に、遅延測定用パケットのＩＰ  ＤＡＴＡフィールドには、マスタスイッチの識別子（Ｍａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤ）、スレーブスイッチの識別子（Ｓｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤ）、当該パケットのＯＦＣ１からの送信時間が打刻されるタイムスタンプ（Ｐａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐ）、当該パケットのＯＦＣ１の受信時間が打刻されるタイムスタンプ（Ｐａｃｋｅｔ  Ｉｎ  Ｔｉｍｅｓｔａｍｐ）が指定される。
【００４４】
ＩＰ  ＤａｔａフィールドのＭａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤには、ＯＦＣ１から転送された遅延測定用パケットの宛先となるＯＦＳ２（マスタスイッチ）のＤＰＩＤが指定される。又、Ｓｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤには、マスタスイッチから転送される遅延測定用パケットを受信し、ＯＦＣ１にＰａｃｋｅｔ−Ｉｎ  Ｍｅｓｓａｇｅ（ファーストパケット）を送るＯＦＳ２（スレーブスイッチ）のＤＰＩＤが指定される。ＭｔｏＳ  ｐｏｒｔフィールドにはＳｌａｖｅ  Ｓｗｉｔｃｈに接続するＭａｓｔｅｒ  Ｓｗｉｔｃｈのポート番号を指定する。  このため、Ｍａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤ及びＳｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤには、測定対象パス情報２００によって特定されるマスタ識別子２０１及びスレーブ識別子２０２が指定される。
【００４５】
Ｐａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐには遅延測定用パケット作成時のＵＴＣ（Ｕｎｉｖｅｒｓａｌ  Ｔｉｍｅ，  Ｃｏｏｒｄｉｎａｔｅｄ）がマイクロ秒単位で指定される。Ｐａｃｋｅｔ  Ｉｎ  Ｔｉｍｅｓｔａｍｐは、ＯＦＣ１において遅延測定用パケットを受信した時にＵＴＣが記録される領域である。このため、遅延測定パケット作成時は、Ｐａｃｋｅｔ  Ｉｎ  Ｔｉｍｅｓｔａｍｐには“０ｘ００００００００”が指定される。尚、Ｐａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐは、ＯＦＣ１から遅延測定用パケットが送信される時にＵＴＣが記録される領域としても良い。この場合、Ｐａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐには、“０ｘ００００００００”が指定される。
【００４６】
遅延測定用パケットは、パケット送信モジュール１３４によって、セキュアチャネルネットワーク４を介してマスタスイッチに送信される。又、セキュアチャネルネットワーク４を介してスレーブスイッチからＯＦＣ１宛てに転送された遅延測定用パケットはパケット受信モジュール１３３によって受信され、遅延測定パケット解析モジュール１３２に転送される。この際、パケット受信モジュール１３３は、遅延測定用パケットの受信時刻を遅延測定用パケット内のＰａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐに打刻する。又、パケット送信モジュール１３４は、Ｐａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐに“０ｘ００００００００”が指定されている場合、当該領域に送信時刻を打刻してもよい。
【００４７】
遅延測定パケット解析モジュール１３２は、パケット受信モジュール１３３によって受信されたパケット遅延測定用パケットのタイムスタンプに基づいて、当該パケットが通過した区間の遅延時間を算出する。詳細には、遅延測定パケット解析モジュール１３２は受信パケットのＩＰ  ＨｅａｄｅｒのＰｒｏｔｏｃｏｌ、又はＩＰ  ＤａｔａのＭａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤ及びＳｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤを参照して当該パケットが遅延測定用パケットであるか否かを判別する。例えば、遅延測定パケット解析モジュール１３２は、フローテーブル１５を参照して、遅延測定用フローエントリに設定されたルールや設定対象スイッチと適合する受信パケットを遅延測定用パケットとして判断する。具体的には、遅延測定パケット解析モジュール１３２は、遅延測定用フローエントリのルールとして設定されたＩＰ  ＨｅａｄｅｒのＰｒｏｔｏｃｏｌが“２５１”の受信パケットを遅延測定用パケットであると判断する。あるいは、遅延測定パケット解析モジュール１３２は、遅延測定用フローエントリに設定されたマスタスイッチ及びスレーブスイッチとＩＰ  ＤａｔａのＭａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤ及びＳｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤとが一致する受信パケットを遅延測定用パケットと判断する。
【００４８】
遅延測定パケット解析モジュール１３２は、遅延測定用パケットのＰａｃｋｅｔ  Ｏｕｔ  Ｔｉｍｅｓｔａｍｐに記録された時刻からＰａｃｋｅｔ  Ｉｎ  Ｔｉｍｅｓｔａｍｐに記録された時刻の期間を測定対象区間の遅延時間として算出する。図８を参照して、遅延測定パケット解析モジュール１３２によって算出された遅延時間３０１は、測定区間を示す情報（例えばマスタ識別子２０１及びスレーブ識別子２０２）に対応付けられ、遅延時間情報３００として記憶装置（図示なし）に記録される。この際、測定区間を示す情報（例えばマスタ識別子２０１及びスレーブ識別子２０２）は、パケット内のＩＰ  ＤａｔａのＭａｓｔｅｒ  Ｓｗｉｔｃｈ  ＤＰＩＤ及びＳｌａｖｅ  Ｓｗｉｔｃｈ  ＤＰＩＤから取得され得る。
【００４９】
尚、上述のＤＰＩＤ、Ｓｅｎｄ  Ｐａｃｋｅｔ  Ｍｅｓｓａｇｅ、Ｍｏｄｉｆｙ  Ｆｌｏｗ  Ｅｎｔｒｙ  Ｍｅｓｓａｇｅは、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ１．０．０（非特許文献１）によって規定されることが好ましい。
【００５０】
（遅延時間測定方法）  次に、図１０を参照して、隣接する２つのスイッチ間の通信区間における遅延時間（伝送時間）の測定動作について詳細に説明する。図１０は、本発明によるコンピュータシステムにおける遅延時間測定動作の一例を示す図である。ここでは、ＯＦＳ２−１をマスタノード、ＯＦＳ２−２をスレーブノードとしたときのＯＦＳ２−１とＯＦＳ２−２の間の遅延時間の測定動作について説明する。
【００５１】
先ず、ＯＧＦＣ１において、遅延時間の測定対象となる区間（測定対象区間）の設定が行われる（ステップＳ１０１）。ここでは、ＯＦＳ２−１とＯＦＳ２−２との間が測定対象区間として設定され、ＯＦＳ２−１がマスタスイッチ、ＯＦＳ２−２がスレーブスイッチに設定される。測定対象の設定方法の詳細については、「最小遅延到達経路の抽出方法」において説明する。
【００５２】
続いて、ＯＦＣ１は、遅延測定用フローエントリをＯＦＳ２−１、ＯＦＳ２−２に設定する（ステップＳ１０１〜Ｓ１０５）。詳細には、ＯＦＣ１は、マスタスイッチに対して遅延測定用フローエントリを設定するためのフローエントリ更新メッセージをＯＦＳ２−１に送信する（ステップＳ１０２）。ＯＦＳ２−１は、この更新メッセージに応じて自身のフローテーブルを更新する（ステップＳ１０４）。これにより、ＯＦＳ２−１は、設定された遅延測定用フローエントリのルールに適合する受信パケットを、スレーブスイッチであるＯＦＳ２−１に転送するように制御される。又、ＯＦＣ１は、スレーブスイッチに対して遅延測定用フローエントリを設定するためのフローエントリ更新メッセージをＯＦＳ２−２に送信する（ステップＳ１０３）。ＯＦＳ２−２は、この更新メッセージに応じて自身のフローテーブルを更新する（ステップＳ１０５）。これにより、ＯＦＳ２−２は、設定された遅延測定用フローエントリのルールに適合する受信パケットを、ＯＦＣ１に転送するように制御される。尚、遅延測定用フローエントリを登録したＯＦＳ２は、登録結果をＯＦＣ１に返信する。ＯＦＣ１は登録結果を解析し、登録失敗の場合は再登録要求を発行する。
【００５３】
ＯＦＣ１は、遅延測定用パケットを生成し、マスタスイッチとして設定したＯＦＳ２−１に送信する（ステップＳ１０６、Ｓ１０７）。ここでは、ステップＳ１０２、Ｓ１０３において遅延測定用フローエントリに設定したルールを含むパケットが遅延測定用パケットとしてＯＦＳ２−１に送信される。ＯＦＣ１は、遅延測定用パケットを生成するとき、あるいはＯＦＳ２−１に送信するときに、当該パケットに送信時刻を打刻する。
【００５４】
ＯＦＳ２−１は、受信パケットが自身に設定された遅延測定用フローエントリに適合する場合、当該パケット（遅延測定用パケット）を、当該エントリにおいて転送先として設定されたＯＦＳ２−２（スレーブスイッチ）に転送する（ステップＳ１０８）。ＯＦＳ２−２は、受信パケットが自身に設定された遅延測定用フローエントリに適合する場合、当該パケット（遅延測定用パケット）を、当該エントリにおいて転送先として設定されたＯＦＣ１に転送する（ステップＳ１０９）。
【００５５】
ＯＦＣ１は、遅延測定用パケットを受信すると当該遅延測定用パケットを解析してＯＦＳ２−１とＯＦＳ２−２間の遅延時間を算出する（ステップＳ１１０）。詳細には、ＯＦＣ１は、遅延測定用パケットの受信時において当該パケットのタイムスタンプフィールドに受信時刻を打刻する。ＯＦＣ１は、遅延測定用パケットに打刻された送信時刻と受信時刻との差により遅延時間３０１を算出し、当該パケットに指定されたマスタ識別子２０１及びスレーブ識別子２０２と対応付けて遅延時間情報３００として記録する。
【００５６】
以上のような動作により、２つの隣接するＯＦＳ２間の遅延時間を測定することができる。尚、本実施の形態では、遅延測定用パケットがＯＦＣ１から出て通信区間経由でＯＦＣ１に到着までの時間が遅延時間３０１として測定される。
【００５７】
（最小遅延到達経路の抽出方法）  本発明によるコンピュータシステムでは、上述のように取得された遅延時間情報３００を利用することで、２つのノードを結ぶ複数の通信経路の中から最も遅延時間の小さな経路（最小遅延到達経路）を抽出（選択）することが可能となる。図１１から図１３を参照して、本発明による最小遅延到達経路の抽出方法について説明する。
【００５８】
図１１は、本発明による最小遅延到達経路の抽出動作を示すフロー図である。図１２は、最小遅延到達経路の抽出対象となるネットワークの構成を示す一例である。ここでは、１つのＯＦＣ１によって管理される５つのＯＦＳ２−１〜ＯＦＳ２−５を備えたシステムが例示され、ＯＦＳ２−１（ＤＰＩＤ  １）とＯＦＳ２−５（ＤＰＩＤ  ５）との間の最小遅延到達経路を抽出する方法について説明する。以下では、ＯＦＳ２−１（ＤＰＩＤ  １）とＯＦＳ２−５（ＤＰＩＤ  ５）との間の経路を“通信経路”と称し、通信経路に含まれる、隣接する２つのＯＦＳ２間の経路を“通信区間”と称して説明する。
【００５９】
図１１、図１２を参照して、ＯＦＣ１の経路計算部１１は、トポロジ探知によって探知されたＯＦＳ２−１〜２−５の接続状態を把握し、ノード間（ここではＯＦＳ２−１とＯＦＳ２−５との間）の通信経路を、位置・接続情報１４を利用して算出する。ここでは、図１２の点線で示す接続状態及び接続先のポート番号が判明し、以下に示す通信経路（ＰａｔｈＡ〜ＰａｔｈＨ）が算出される。
【００６０】
ＰａｔｈＡ：ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＢ：ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−１，ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＣ：ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−１，ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＤ：ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−１，ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＥ：ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＦ：ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−１，ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＧ：ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−１，ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＨ：ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５
【００６１】
次に経路計算部１１は、最小遅延到達経路の候補を絞り込む（ステップＳ２０２）。例えば、経路計算部１１は、通信経路（ＰａｔｈＡ〜ＰａｔｈＨ）のそれぞれに含まれる通信区間を順不同とした非順序集合として候補の絞り込みを行う。
【００６２】
詳細には、経路計算部１１は、他の通信経路を包含する通信経路がある場合、当該通信経路を最小遅延到達経路の候補から外す。ここでは、ＰａｔｈＢ、Ｃは、ＰａｔｈＡを包含するため候補から外す。又、ＰａｔｈＤは、ＰａｔｈＥを包含するため候補から外す。更にＰａｔｈＦ、ＧはＰａｔｈＨを包含するため候補から外す。これにより、最小遅延到達経路の候補として以下の３つの通信経路が残る。ＰａｔｈＡ：ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＥ：ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５ＰａｔｈＨ：ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５  尚、絞り込んだ候補に含まれる通信区間を順不同の非順序集合とし、候補の中で等しい通信経路が複数ある場合、経路計算部１１は、そのうちのいずれか１つを最小遅延到達経路候補として残す。
【００６３】
次に、経路計算部１１は、最小遅延到達経路候補において測定対象とする通信区間を設定する（ステップＳ２０３）。例えば、経路計算部１１は、最小遅延到達経路候補のすべての経路に共通の通信区間の遅延時間を“０”と擬制することで当該通信区間を遅延時間の測定対象から外し、他の通信区間を遅延時間の測定対象区間として設定する。ここでは、全ての候補に共通の通信区間（ＯＦＳ２−４→ＯＦＳ２−５）の遅延時間が“０”に擬制され、他の通信区間（ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４）が遅延時間の測定対象として設定される。
【００６４】
経路計算部１１は、測定対象として設定した通信区間のＯＦＳ２のソース側をマスタスイッチ、デスティネイション側をスレーブスイッチに設定し、Ｍ  ｔｏ  Ｓポート番号２０３とともに測定対象パス情報２００として記録する。例えば、通信区間“ＯＦＳ２−１→ＯＦＳ２−２”の場合、ソース側のＯＦＳ２−１がマスタスイッチとして設定されＯＦＳ２−２がスレーブスイッチとして設定される。この場合、ＯＦＳ２−１のＤＰＩＤ“ＤＰＩＤ  １”がマスタ識別子２０１として登録され、ＯＦＳ２−２のＤＰＩＤ“ＤＰＩＤ  ２”がスレーブ識別子２０２として登録される。又、ＯＦＳ２−２に接続するＯＦＳ２−１側のポート番号“Ｐｏｒｔ１”がＭ  ｔｏ  Ｓポート番号２０３として登録される。他の通信区間も同様に測定対象パス情報２００として記録される。
【００６５】
遅延時間の測定対象となる通信区間が設定されると、ＯＦＣ１は当該通信区間の遅延時間を測定する（ステップＳ２０４）。遅延時間の測定方法の詳細は、図１０を参照した「遅延時間測定方法」で説明したとおりである。ここでは、通信区間（ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４）のそれぞれの遅延時間３０１が測定される。
【００６６】
ここで通信区間“ＯＦＳ２−１→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−３，ＯＦＳ２−３→ＯＦＳ２−４，ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４”の遅延時間３０１をそれぞれ“ＤＴ１４、ＤＴ１３、ＤＴ３４、ＤＴ１２、ＤＴ２４”とし、通信区間“ＯＦＳ２−４→ＯＦＳ２−５”の遅延時間３０１を“ＤＴ４５＝０”とする。
【００６７】
全ての測定対象区間の遅延時間の測定が完了すると、遅延測定パケット解析モジュール１３２は、最小遅延到達経路の候補の遅延時間を計算し、最小遅延到達経路を特定する（ステップＳ２０５）。詳細には、先ず、遅延測定パケット解析モジュール１３２は、最小遅延到達経路の候補の通信経路に含まれるすべての通信区間の遅延時間の合計し、当該通信経路の遅延時間として算出する。本実施例の場合、通信経路“ＰａｔｈＡ”の遅延時間“Ｄ＿ＰａｔｈＡ”は“ＤＴ１４＋ＤＴ４５”、通信経路“ＰａｔｈＥ”の遅延時間“Ｄ＿ＰａｔｈＥ”は“ＤＴ１３＋ＤＴ３４＋ＤＴ４５”、通信経路“ＰａｔｈＨ”の遅延時間“Ｄ＿ＰａｔｈＨ”は“ＤＴ１２＋ＤＴ２４＋ＤＴ４５”となる。ここで、ＤＴ４５＝０と擬制するため、通信経路“ＰａｔｈＡ”の遅延時間“Ｄ＿ＰａｔｈＡ”は“ＤＴ１４”、通信経路“ＰａｔｈＥ”の遅延時間“Ｄ＿ＰａｔｈＥ”は“ＤＴ１３＋ＤＴ３４”、通信経路“ＰａｔｈＨ”の遅延時間“Ｄ＿ＰａｔｈＨ”は“ＤＴ１２＋ＤＴ２４”となる。
【００６８】
そして、遅延測定パケット解析モジュール１３２は、算出した通信経路の遅延時間を比較し、最小の遅延時間の通信経路を、２つのノード間の最小遅延到達経路として特定する。例えば、Ｄ＿ＰａｔｈＡ＞Ｄ＿ＰａｔｈＥ＞Ｄ＿ＰａｔｈＨである場合、“ＰａｔｈＨ：ＯＦＳ２−１→ＯＦＳ２−２，ＯＦＳ２−２→ＯＦＳ２−４，ＯＦＳ２−４→ＯＦＳ２−５”が最小遅延到達経路として特定される。尚、最小遅延到達経路候補から最小遅延到達経路を計算するアルゴリズムとして、ダイクストラ法を利用してもよい。ダイクストラ法の入力は最小遅延到達経路候補で構成される重み付き有向グラフであり、その出力は２頂点対最小遅延到達経路である。本実施例の場合は、最小遅延到達経路の探索用の重みつき有向グラフは図１３のように表現される。
【００６９】
図１１に示す一例では、遅延時間の測定対象区間の絞り込みを行った後に、遅延時間測定用フローエントリを設定しているが、これに限らない。例えば、トポロジ探知によってＯＦＳ２が検出される都度、当該ＯＦＳ２を含む通信区間を特定し、遅延時間測定用フローエントリを設定してもよい。ただし、遅延測定対象となる通信区間を特定した後に遅延時間測定用フローエントリを設定する方が、ＯＦＣ１における処理負荷を低減するとともに最小遅延到達経路の特定時間を短縮することができる。
【００７０】
以上のように、本発明によるコンピュータシステムでは、オープンフロープロトコルを利用した遅延測定用フローエントリの設定による遅延測定用パケットの転送制御によって、隣接する２つのＯＦＳ２の通信区間の遅延時間を測定することができる。これにより、２つのノード間における通信経路のうち、最も遅延時間の小さな経路（最小遅延到達経路）を特定することが可能となる。すなわち、本発明によれば、オープンフロープロトコルを利用したシステムにおいて、自動的に通信遅延時間が算出され、高遅延通信経路を回避しながら経路制御することが可能となる。
【００７１】
又、本発明では、ＯＦＣ１以外の構成（例えばＯＦＳ２）は、従来のオープンフロープロトコル（例えばＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ１．０によって規定されるプロトコル）を利用した構成をそのまま利用しつつ最小遅延経路を特定することが可能となる。すなわち、オープンフロースイッチに新たな機能追加（ハードウェア実装、ソフトウェア実装）することなくオープンフローコントローラに実装されたソフトウェアを変更するだけで、本発明による機能を実現できる。
【００７２】
更に、本発明では、オープンフロープロトコルを利用して、計算量の大きい最小遅延到達経路の特定をＯＦＣ１で一元的に行っているため、遅延時間測定に係る負荷を通信経路上のＯＦＳ２に与えることはない。
【００７３】
更に、ＯＦＳ２間を転送させる遅延測定用パケットはＩＰパケットであるため、ＯＦＳ２間にレガシーネットワークが存在する場合でも本発明を適用できる。
【００７４】
２．第２の実施の形態  第１の実施の形態では、１台のＯＦＣ１に管理された配下ネットワーク内における任意の２つのＯＦＳ２間の最小遅延到達経路を探索・計算した場合の動作を説明した。第２の実施の形態では、複数のＯＦＣのそれぞれが管理するネットワーク間の任意の２つのＯＦＳ２間における最小遅延到達経路を探索するコンピュータシステムについて説明する。
【００７５】
図１４は、本発明によるコンピュータシステムの第２の実施の形態における構成を示す図である。図１４を参照して、第２の実施の形態におけるコンピュータシステムは、オープンフローコントローラマネジャ１０（ＯＦＣマネジャ１０）、複数のＯＦＣ１’（ここでは一例として２つのＯＦＣ１’−１、１’−２）を具備する。以下では、ＯＦＣ１’−１、１’−１を区別せずに説明する場合、ＯＦＣ１’と称す。又、ＯＦＣ１’−１、１’−２の配下のネットワーク構成は、第１の実施の形態と同様であるが、それぞれの構成に付される符号には、ＯＦＣ１’と同様な追番を付して説明する。
【００７６】
第２の実施の形態におけるシステムでは、第１の実施の形態と同様な経路計算部１１、位置・接続情報１４、及び遅延測定パケット解析モジュール１３２は、ＯＦＣマネジャ１０に搭載され、ＯＦＣ１’には搭載されない。又、ＯＦＣマネジャ１０は、ＯＦＣ１’に対して遅延時間測定用のフローエントリの設定要求を行う測定要求部１６を更に具備する。測定要求部１６は、記憶装置（記録媒体）に記録され、図示しないＣＰＵによって実行されるプログラムによって実現される。
【００７７】
第２の実施の形態における経路計算部１１は、スイッチ群２０−１、２０−２の任意の２つのノード（例えば２つのＯＦＳ２）の間の通信経路を算出し、遅延時間の測定対象となる隣接する２つのＯＦＳ２間の通信区間を特定する。第２の実施の形態における２つのスイッチ群２０−１、２０−２は互いに通信可能に接続されているため、２つのスイッチ群２０−１、２０−２を跨ぐ通信区間が遅延時間の測定対象区間として設定され得る。
【００７８】
第２の実施の形態におけるＯＦＣ１’は、第１の実施の形態と同様なフロー制御部１２、フローテーブル１５、及び遅延測定パケット解析モジュール１３２を搭載しない遅延測定部１３’を具備する。第２の実施の形態におけるフロー制御部１２は、経路計算部１１によって設定された測定対象パス情報２００に基づいた遅延時間測定用フローエントリを自身が配下とするＯＦＳ２に設定する。この際、フロー制御部１２は、設定対象のＯＦＳ２がマスタスイッチとして設定されている場合、「遅延測定用パケットをスレーブスイッチに転送する」ことをアクションとする遅延時間測定用フローエントリを当該ＯＦＳ２に設定し、設定対象のＯＦＳ２がスレーブスイッチとして設定されている場合、「受信した遅延測定用パケットを自身が属するＯＦＣ１に転送する」ことをアクションとする遅延時間測定用フローエントリを当該ＯＦＳ２に設定する。ＯＦＳ２に設定されたフローエントリは、フローテーブルに記録される。これにより、ＯＦＣ１’は、自身が管理するスイッチ群２０に設定したフローエントリを管理することができる。
【００７９】
遅延測定部１３’は、第１の実施の形態と同様に遅延測定用パケットを生成し、自身が管理するスイッチ群２０のうちマスタスイッチとして設定されたＯＦＳ２に転送する。又、遅延測定部１３’は、遅延測定用パケットの生成時又は転送時に送信時刻を打刻し、ＯＦＳ２から転送された遅延測定用パケットを受信した場合、受信時刻を当該パケットに打刻する。遅延測定部１３’は、受信時刻を打刻した遅延測定用パケットをＯＦＣマネジャ１０に転送する。
【００８０】
ＯＦＣマネジャ１０の遅延測定パケット解析モジュール１３２は、ＯＦＣ１’から取得した遅延測定用パケットの送信時刻及び受信時刻との差を、当該パケットに指定されたマスタスイッチとスレーブスイッチとの間の通信区間の遅延時間として算出する。又、遅延測定パケット解析モジュール１３２は、第１の実施の形態と同様に、測定した通信区間の遅延時間を用いて、２つのノード間の通信経路における遅延時間を求め、最小遅延到達経路を特定する。例えば、ＯＦＣ１’−１からの送信された遅延測定用パケットがＯＦＣ１’−２によって受信された場合、当該パケットには、マスタスイッチ側のＯＦＣ１’−１によって送信時刻が打刻され、スレーブスイッチ側のＯＦＣ１’−２によって受信時刻が打刻される。ＯＦＣマネジャ１０は、ＯＦＣ１’−２から通知された遅延測定用パケットに打刻された時刻に基づいて、２つのスイッチ群２０−１、２０−２を跨いで隣接するＯＦＳ２−１、２−２の通信区間の遅延時間を算出することができる。
【００８１】
以上のように、本実施の形態によれば、異なるＯＦＣ１’によって管理されるネットワークを跨ぐ２つのノード間の通信経路の中から最小遅延到達経路を特定することが可能となる。その他の効果は、第１の実施の形態と同様である。尚、ＯＦＣマネジャ１０は、複数のＯＦＣ１’のいずれか１つに搭載されていても良い。又、ＯＦＣ１’には、自身が管理するスイッチ群２０内に限定して通信区間の遅延時間を測定し、最小遅延到達経路を特定する遅延測定パケット解析モジュール１３２を備えても良い。この場合、ＯＦＣマネジャ１０の遅延測定パケット解析モジュールは、複数のネットワーク（スイッチ群２０）を跨ぐノード間の最小遅延到達経路の特定や、通信区間の遅延計算を行うときのみに使用されることなる。
【００８２】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、上述の実施例では、マスタスイッチのみならずスレーブスイッチにも遅延時間測定用フローエントリを設定していたが、スレーブスイッチへの設定を省略してもよい。この場合、ＯＦＳ２（マスタスイッチ）から遅延測定用パケットを受け取ったＯＦＳ２（スレーブスイッチ）は、オープンフロープロトコルに従って、フローエントリに適合しない当該パケットをファーストパケットとしてＯＦＣ１に通知する（ＰａｃｋｅｔＩＮ）。ＯＦＣ１は、ＯＦＳ２から通知されたファーストパケットの受信時刻を当該パケットに打刻して解析することで通信区間の遅延時間を算出することができる。
【００８３】
又、上述の実施の形態では、ＯＦＣからの送信時刻とＯＦＣにおける受信時刻との差によって通信区間の遅延時間を算出したが、算出方法はこれに限らず、パケットに打刻された送信時刻及び受信時刻を利用すれば他のアルゴリズムによっても算出できる。更に、上述の実施の形態では、ＯＦＣによって送信時刻と受信時刻の打刻が行われているがこれに限らず、マスタスイッチにおいて送信時刻が打刻され、スレーブスイッチにおいて受信時刻が打刻されても良い。例えば、ＯＦＳにパケットへの打刻機能を追加し、マスタスイッチに設定する遅延時間測定用フローエントリのアクションとして送信時刻の打刻を追加し、スレーブスイッチに設定する遅延時間測定用フローエントリのアクションとして受信時刻（又はＯＦＣへの送信時刻）の打刻を追加する。これにより、セキュアチャネルネットワーク４を介したＯＦＣ１（ＯＦＣ１’）とＯＦＳ２との間における遅延時間を排除した通信区間の遅延時間や最小遅延到達経路を算出できる。更に、送信時刻や受信時刻の打刻位置はこれに限らず、他の組み合わせでも良い。例えばマスタスイッチにおいて送信時刻が打刻され、ＯＦＣにおいて受信時刻が打刻されても良いし、ＯＦＣにおいて送信時刻が打刻され、スレーブスイッチにおいて受信時刻が打刻されても良い。
【００８４】
尚、本出願は、日本出願番号２０１０−２７７３９９に基づき、日本出願番号２０１０−２７７３９９における開示内容は引用により本出願に組み込まれる。
【図１】
2012081549.tif 000003
【図２】
2012081549.tif 000004
【図３】
2012081549.tif 000005
【図４】
2012081549.tif 000006
【図５】
2012081549.tif 000007
【図６】
2012081549.tif 000008
【図７】
2012081549.tif 000009
【図８】
2012081549.tif 000010
【図９】
2012081549.tif 000011
【図１０】
2012081549.tif 000012
【図１１】
2012081549.tif 000013
【図１２】
2012081549.tif 000014
【図１３】
2012081549.tif 000015
【図１４】
2012081549.tif 000016
【手続補正書】
【提出日】平成26年2月17日(2014.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに隣接する第１スイッチ及び第２スイッチと、
遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するとともに、前記遅延測定用パケットを前記第１スイッチに送信するコントローラと、
前記第１スイッチと前記第２スイッチとの間の通信区間の遅延時間を算出する解析モジュールと
を具備し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送し、
前記第２スイッチは、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして前記コントローラに転送し、
前記解析モジュールは、前記コントローラに前記ファーストパケットとして転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記コントローラは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第１スイッチに送信し、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、
前記解析モジュールは、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項３】
互いに隣接する第１スイッチ及び第２スイッチと、
遅延測定用パケットのヘッダ情報をルールとし、前記第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するとともに、前記遅延測定用パケットを前記第１スイッチに送信する第１コントローラと、
前記第２スイッチに対してフローエントリの設定を行う第２コントローラと、
前記第１スイッチと前記第２スイッチとの間の通信区間の遅延時間を算出する解析モジュールと
を具備し、
前記第１スイッチは、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送し、
前記第２スイッチは、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして前記第２コントローラに転送し、
前記解析モジュールは、前記第２コントローラにファーストパケットとして転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項４】
請求項３に記載のコンピュータシステムにおいて、
前記第１コントローラは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記遅延測定用パケットを前記第１スイッチに送信し、
前記第２コントローラは、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、
前記解析モジュールは、前記第２コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項５】
請求項１から４のいずれか１項に記載のコンピュータシステムにおいて、
前記第１スイッチは、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第２スイッチに送信し、
前記第２スイッチは、前記遅延測定用パケットの受信時刻を前記遅延測定用パケットに打刻し、
前記解析モジュールは、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コンピュータシステム。
【請求項６】
請求項１から５のいずれか１項に記載のコンピュータシステムにおいて、
前記遅延測定用パケットを転送するためのフローエントリのルールとして、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダフィールドにおけるプロトコルが規定され、
前記第１スイッチは、受信パケットのＩＰヘッダフィールドにおけるプロトコルが、自身に設定された前記フローエントリのルールに適合している場合、前記受信パケットのヘッダ情報における他のレイヤの内容に関わらず、前記受信パケットを前記第２スイッチに転送する
コンピュータシステム。
【請求項７】
請求項１から６のいずれか１項に記載のコンピュータシステムにおいて、
前記第１スイッチ及び前記第２スイッチを含む複数のスイッチを更に具備し、
前記解析モジュールは、前記複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定することによって、前記複数の通信経路のそれぞれの遅延時間を算出し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定する
コンピュータシステム。
【請求項８】
請求項７に記載のコンピュータシステムにおいて、
前記複数の通信経路のそれぞれは、隣接する２つのスイッチによって構成される通信区間を少なくとも１つ有し、
前記解析モジュールは、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間を、前記遅延測定用パケットを利用した遅延時間の測定対象として設定する
コンピュータシステム。
【請求項９】
遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するフロー制御部と、
前記遅延測定用パケットを前記第１スイッチに送信する遅延測定部と
を具備し、
前記第２スイッチは、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットして送信し、
前記遅延測定部は、前記ファーストパケットとして前記第２スイッチから転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて、前記第１スイッチと前記第２スイッチとの間の通信区間の遅延時間を算出する
コントローラ。
【請求項１０】
請求項９に記載のコントローラにおいて、
前記遅延測定部は、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記第１スイッチに送信し、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻し、前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出する
コントローラ。
【請求項１１】
請求項９又は１０に記載のコントローラにおいて、
前記遅延測定部は、複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定することによって、前記複数の通信経路のそれぞれの遅延時間を算出し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定する
コントローラ。
【請求項１２】
請求項１１に記載のコントローラにおいて、
前記遅延測定部は、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間の遅延時間を、前記遅延測定用パケットを利用して測定し、前記複数の通信経路のそれぞれの遅延時間を算出する
コントローラ。
【請求項１３】
請求項１から８のいずれか１項に記載の解析モジュールを備えるコントローラマネジャ。
【請求項１４】
コンピュータによって実行されることで、請求項９から１２のいずれか１項に記載のコントローラの機能を実現するプログラムが記録された記録媒体。
【請求項１５】
コンピュータによって実行されることで、請求項１３に記載のコントローラマネジャの機能を実現するプログラムが記録された記録媒体。
【請求項１６】
コントローラが、遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するステップと、
前記コントローラが、前記遅延測定用パケットを前記第１スイッチに送信するステップと、
前記第１スイッチが、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送するステップと、
前記第２スイッチが、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして前記コントローラに転送するステップと、
解析モジュールが、前記コントローラにファーストパケットとして転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出するステップと
を具備する
通信経路解析方法。
【請求項１７】
請求項１６に記載の通信経路解析方法において、
前記コントローラが、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻するステップ
を更に具備し、
前記遅延測定用パケットを前記第１スイッチに送信するステップは、前記コントローラが、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に行われ、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出するステップを備える
通信経路解析方法。
【請求項１８】
第１コントローラが、遅延測定用パケットのヘッダ情報をルールとし、第１スイッチに隣接する第２スイッチへの転送動作をアクションとしたフローエントリを、前記第１スイッチに設定するステップと、
前記第１コントローラが、前記遅延測定用パケットを前記第１スイッチに送信するステップと、
前記第１スイッチが、自身に設定された前記フローエントリに従い、前記コントローラから送信された前記遅延測定用パケットを前記第２スイッチに転送するステップと、
前記第２スイッチが、自身に設定されたフローエントリのルールに適合しない受信パケットをファーストパケットとして第２コントローラに転送するステップと、
解析モジュールが、前記第２コントローラにファーストパケットして転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された時刻を用いて前記通信区間の遅延時間を算出するステップと
を具備する
通信経路解析方法。
【請求項１９】
請求項１８に記載の通信経路解析方法において、
前記第１コントローラが、前記遅延測定用パケットの送信時刻を前記遅延測定用パケットに打刻した後に、前記遅延測定用パケットを前記第１スイッチに送信するステップと、
前記第２コントローラが、前記第２スイッチから受信した前記遅延測定用パケットに受信時刻を打刻するステップを更に具備し、
前記通信区間の遅延時間を算出するステップは、前記解析モジュールが、前記コントローラに転送された前記遅延測定用パケットを取得し、前記遅延測定用パケットに打刻された前記送信時刻と前記受信時刻とを用いて前記通信区間の遅延時間を算出するステップを備える
通信経路解析方法。
【請求項２０】
請求項１６から１９のいずれか１項に記載の通信経路解析方法において、
前記解析モジュールが、前記複数のスイッチのうちの２つのスイッチ間に形成される複数の通信経路のそれぞれに含まれる、隣接する２つのスイッチ間の通信区間の遅延時間を、前記遅延時間測定用パケットを利用して測定するステップと、
前記解析モジュールが、測定した前記通信区間の遅延時間を利用して前記複数の通信経路のそれぞれの遅延時間を算出するステップと、
前記解析モジュールが、算出して通信経路の遅延時間を比較し、前記複数の通信経路のうち、遅延時間の最も小さい通信経路を最小遅延到達経路として特定するステップと
を更に具備する
通信経路解析方法。
【請求項２１】
請求項２０に記載の通信経路解析方法において、
前記遅延時間測定用パケットを利用して遅延時間を測定するステップは、前記解析モジュールが、前記複数の通信経路の全てに共通する通信区間の遅延時間を０に設定し、他の通信区間の遅延時間を、前記遅延測定用パケットを利用した測定対象として設定するステップを備える
通信経路解析方法。
【国際調査報告】
2012081549.tif 000017
2012081549.tif 000018
2012081549.tif 000019