(57)【要約】  一定の過去におけるパケット間隔（順次受信されるパケットの時間差）を算出し、算出したパケット間隔の累積分布関数を求める。一方、累積分布関数の値の範囲においてフローの終了（タイムアウト）とみなすべき累積分布関数の境界値であるフロー終了対応関数値を記憶しておく。上記のように求めた累積分布関数から、フロー終了対応関数値と一致する累積分布関数の値に対応付けられたパケット間隔の値を閾値として設定する。つまり、過去のパケット間隔に基づいて閾値を動的に設定する。そして、最後のパケットの受信時刻から現在時刻までのパケット停止期間を測定し、この測定値が閾値以上となったタイミングでフローがタイムアウトしたものとして検出する。
2013035451.tif 000002
【特許請求の範囲】
【請求項１】
過去において連続して受信された複数のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定部と、
パケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了か否かについて検出するタイムアウト検出部とを備えた通信装置。
【請求項２】
前記閾値設定部は、
過去において受信されたフローごとに該当する複数のパケットにおける前記パケット間隔を算出するパケット間隔算出部と、
前記パケット間隔の累積分布関数を求める累積分布関数演算部と、
前記累積分布関数から、フロー終了とみなすべき累積分布関数の境界値を示すものとして予め設定されたフロー終了対応関数値に一致する累積分布関数の値に対応付けられたパケット間隔を取得し、この取得したパケット間隔の値を前記閾値として設定する閾値対応パケット間隔取得部とを備えた請求項１に記載の通信装置。
【請求項３】
前記パケット間隔算出部は、フローデータベースにおいて格納される、過去に受信されたパケットごとのフローを示すフロー情報と受信時刻とから成るエントリを利用して前記パケット間隔を算出するとともに、
受信されるパケットごとに対応して、前記エントリを生成して前記フローデータベースに登録し、前記タイムアウト検出部によりタイムアウトであると検出されたフローに該当するパケットの前記エントリを前記フローデータベースから削除するフローデータベース管理部をさらに備えた請求項２に記載の通信装置。
【請求項４】
受信したパケットに格納されるフローの終了を示すフラグに基づいてフロー終了か否かを検出するフロー検出部をさらに備えた請求項１から３のいずれか一項に記載の通信装置。
【請求項５】
前記フロー終了が検出されるのに応じて、フローが停止している期間内においてスリープ状態を設定するスリープ制御部をさらに備えた請求項１から４のいずれか一項に記載の通信装置。
【請求項６】
過去において受信された複数のパケットにおける前後のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定ステップと、
最後にパケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了か否かについて検出するタイムアウト検出ステップとを備えた通信状態検出方法。
【請求項７】
コンピュータを、
過去において受信された複数のパケットにおける前後のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定部、
最後にパケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了か否かについて検出するタイムアウト検出部として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークなどの通信網を経由してデータを送受信する通信装置と、通信状態として通信終了を検出する通信状態検出方法、および通信状態検出プログラムに関する。
【背景技術】
【０００２】
ルータ、スイッチやアクセスポイントなどのようにデータ転送制御を行うデータ通信装置は、一般的に、データ通信時だけではなく、データ通信が実行されていないときも含めて常時稼働している状態で運用される。【０００３】
このような運用では、通信が実行されていない状態においても電力が消費されており、この点で無駄な電力消費が生じているといえる。そこで、通信が実行されていないときにはデータ通信装置がスリープ状態となるように制御すれば、消費電力が削減できることになる。【０００４】
通信が実行されていない期間に応じてスリープ状態を適切に設定するには、データ通信が終了したタイミングを正確に検出する必要がある。ネットワーク経由での通信プロトコルにはＴＣＰ（Transmission Control Protocol）が広く採用されているが、ＴＣＰにおいては、通信を終了させようとする通信端末装置は、ＴＣＰヘッダに含まれるＦＩＮフラグまたはＲＳＴフラグをオンとすべきことが規定されている。したがって、受信したパケットに含まれる上記ＦＩＮフラグまたはＲＳＴフラグがオンであるか否かを検出することにより、データ通信の終了タイミングを検出することが可能である。【０００５】
しかし、ベストエフォート型のネットワークにおいては、通信回線の切断や通信経路障害、あるいは、通信装置の電源遮断などが不意に発生して、通信のトランザクションが終了しないうちに強制的に通信が終了してしまう可能性がある。この場合、ＦＩＮフラグまたはＲＳＴフラグがオフのまま通信が終了することになるため、通信終了タイミングを検出できないという問題が生じる。【０００６】
そこで、前回フレームが取得されてから所定時間が経過しても次のフレームが取得されない場合にタイムアウトであると判定するようにした構成が知られている（例えば、特許文献１参照）。この構成であれば、何らかの原因でＦＩＮフラグまたはＲＳＴフラグがオフの状態のまま通信が終了してしまったとしても、通信終了タイミングの検出に相当する結果を得ることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１９７９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載の構成では、タイムアウト判定に用いる所定時間について適切に設定することが難しい。具体例として、例えば１秒程度による比較的短めの所定時間を設定した場合、この程度の時間長による通信停止状態は正常なパケット通信の状況において発生する確率が高い。したがって、本来は正常な通信であるのに係わらず、偶発的に発生した１秒以上の通信停止状態を通信終了タイミングであると検出してしまうという誤動作が生じやすくなる。【０００９】
これに対して、例えば６００秒程度のように相当に長い所定時間を設定した場合には、強制的に通信の終了を高い確率で検出することはできる。しかし、６００秒という相当に長時間を経なければ検出結果が得られないために、通信終了の検出処理の開始タイミングが著しく遅延してしまうという問題を生じる。【００１０】
そこで本発明は、上述の課題を解決することのできる通信装置、通信状態検出方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上述の課題を解決すべくなされたもので、本発明の一態様における通信装置は、過去において受信された複数のパケットにおける前後のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定部と、最後にパケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了するか否かについて検出するタイムアウト検出部とを備える。【００１２】
また、本発明の一態様における通信状態検出方法は、過去において受信された複数のパケットにおける前後のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定ステップと、最後にパケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了か否かについて検出するタイムアウト検出ステップとを備える。【００１３】
また、本発明の一態様における通信状態検出プログラムは、コンピュータを、過去において受信された複数のパケットにおける前後のパケットの受信時刻の差分であるパケット間隔に基づいて閾値を設定する閾値設定部、最後にパケットが受信された時刻から現時刻までのパケット停止期間と上記閾値とを比較することによりフロー終了か否かについて検出するタイムアウト検出部として機能させる。
【発明の効果】
【００１４】
本発明における通信状態検出によれば、データ通信のタイムアウト判定のための所定時間を適切に設定されることとなり、これにより、データ通信終了タイミング検出の的確性を向上することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態のデータ転送装置を含む通信システムを示すブロック図である。
【図２】本実施形態のデータ転送装置の構成例を示すブロック図である。
【図３】本実施形態におけるデータ転送装置の機能構成例を示すブロック図である。
【図４】本発明の一実施形態のフローデータベースの構造例を示す表である。
【図５】本発明の一実施形態のパケットの受信タイミング例を示すタイミングチャートである。
【図６】算出したパケット間隔について求められた出現頻度分布の一具体例を示すグラフである。
【図７】図６に示される出現頻度分布に基づいて求められたパケット間隔の累積分布関数を示すグラフである。
【図８】図７に示される出現頻度分布の一部を数値化して示す表である。
【図９】本実施形態におけるスリープ制御とフロータイミングとの関係を示すタイミングチャートである。
【図１０】本実施形態におけるＦＩＮフラグまたはＲＳＴフラグの検出に基づくスリープ制御のための処理手順例を示すフローチャートである。
【図１１】本実施形態におけるタイムアウト検出に基づくスリープ制御のための処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
［通信システムの構成例］
図１は、本発明の実施形態の通信装置としてのデータ転送装置１００を含む通信システムの構成例を示している。この図に示すデータ転送装置１００は、例えばＬＡＮ（LocalArea Network）などを経由して通信端末装置２００と接続される。また、例えばインターネットとしての基幹ネットワーク４００を経由して通信端末装置３００と接続される。そして、データ転送装置１００は、通信端末装置２００と通信端末装置３００との間で送受信されるパケットのデータを中継する。つまり、通信端末装置２００から送信される通信パケットを基幹ネットワーク４００を経由して通信端末装置３００に転送する。また、通信端末装置３００から基幹ネットワーク４００を経由して送信されるパケットを通信端末装置２００に転送する。
【００１７】
［データ転送装置の構成例］
図２は、データ転送装置１００の構成例を示している。この図に示すデータ転送装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、記憶部１０３、通信部１０４および電源部１０５を備える。これらの部位は、データバス１０６を介して接続されている。
【００１８】
ＣＰＵ１０１は、記憶部１０３に記憶されるプログラムを実行することにより、データ転送装置１００としての所定の機能を実現する。
【００１９】
ＲＡＭ１０２は、主記憶装置として機能するもので、ＣＰＵ１０１が実行すべきプログラムが記憶部１０３から読み出されて展開される。また、ＲＡＭ１０２は、ＣＰＵ１０１が演算処理を実行する際の作業領域として使用される。
【００２０】
記憶部１０３は、補助記憶装置として機能するもので、ＣＰＵ１０１により実行されるプログラムや各種データを格納する。なお、この記憶部１０３には、例えばハードディスクやフラッシュメモリなどの半導体記憶装置を採用することができる。
【００２１】
通信部１０４は、ＬＡＮや基幹ネットワーク４００などの伝送路を経由して他の通信端末装置と通信を行う。本実施形態では、上記ＬＡＮや基幹ネットワーク４００に通信端末装置２００や通信端末装置３００が接続されており、これにより、通信部１０４は、通信端末装置２００および通信端末装置３００とそれぞれ通信を行うことができる。
【００２２】
電源部１０５は、商用交流電源またはバッテリから供給される電力を、直流による所定値の電源電圧に変換し、同図に示す各部に対応するチップやボードなどに対して供給する。また、電源部１０５は、ＣＰＵ１０１によるスリープ制御に応じて、所定部位に供給すべき電源電圧の停止や電圧値の変更などを実行することで、スリープ状態を設定する。
【００２３】
［データ転送装置の機能構成例］
図３は、データ転送装置１００のＣＰＵ１０１がプログラムを実行することにより実現されるスリープ制御のための機能構成例を示している。また、図３においては、記憶部１０３が記憶するデータのうち、スリープ制御に対応するデータとして、フローデータベース１３０およびフロー終了対応関数値１３２が示される。
【００２４】
また、図３においては、通信部１０４の構成が示される。通信部１０４は通信制御部１４１ａ、１４１ｂおよびパケット転送部１４２を備える。通信制御部１４１ａおよび１４１ｂは、ルーティングなどの通信制御を実行する。ここでは、通信制御部１４１ａに対してＬＡＮの伝送路経由で通信端末装置２００が接続され、通信制御部１４１ｂに対して、基幹ネットワーク４００経由で通信端末装置３００が接続されているものとする。パケット転送部１４２は、例えば通信端末装置間のデータ転送にあたり、輻輳制御などの所定の制御を実行する。
【００２５】
上記構成の通信部１０４において、通信端末装置２００から送信されたパケットは、通信制御部１４１ａにて受信され、パケット転送部１４２に出力される。パケット転送部１４２は、通信制御部１４１ａから入力されたパケットについて輻輳制御などを行い、所定タイミングで通信制御部１４１ｂに出力する。通信制御部１４１ｂは、パケット転送部１４２から入力されたパケットを通信端末装置３００に送信するための経路を決定し、この経路に対してパケットを送出する。
【００２６】
また、逆に、通信端末装置３００から送出されたパケットは、通信制御部１４１ｂからパケット転送部１４２に入力される。パケット転送部１４２は入力されたパケットについて輻輳制御などを行ったうえで、所定タイミングで通信制御部１４１ａに出力する。通信制御部１４１ａは、パケット転送部１４２から入力されたパケットを通信端末装置２００に送信するための経路を決定し、この経路に対してパケットを送出する。
【００２７】
図３には、ＣＰＵ１０１により実現されるスリープ制御に関連する機能部として、フロー情報抽出部１１１、フローデータベース管理部１１２、フラグ検出部１１３、閾値設定部１２０、タイムアウト検出部１１４およびスリープ制御部１１５が示される。
【００２８】
フロー情報抽出部１１１は、パケット転送部１４２に入力されたパケットごとにフロー情報を抽出する。
【００２９】
ここで、フローとは、複数の同じ通信端末装置の間で送受信され、かつ、同じアプリケーションが処理するデータを格納するパケット群の単位をいう。そして、フロー情報は、パケットにおけるヘッダ（ＩＰヘッダおよびＴＣＰヘッダ）のフィールドに格納される情報のうち、フローを一意に特定するのに必要となる情報群であり、具体的には、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル番号、送信元ポート番号および宛先ポート番号となる。
【００３０】
送信元ＩＰアドレスは、ＩＰ（Internet Protocol）ヘッダに格納される情報であり、パケットの送信元である通信端末装置のＩＰアドレスを示す。宛先ＩＰアドレスは、ＩＰヘッダに格納される情報であり、パケットの宛先である通信端末装置のＩＰアドレスを示す。プロトコル番号は、ＩＰヘッダに格納される情報であり、トランスポート層で規定されるネットワークプロトコルの種類を示す番号である。
【００３１】
送信元ポート番号は、ＴＣＰ（Transmission Control Protocol）ヘッダに格納される情報であり、送信元の通信端末装置においてパケット送出のための処理を行ったアプリケーションを示す番号である。宛先ポート番号は、ＴＣＰヘッダに格納される情報であり、パケットの宛先として指定するアプリケーションを示す番号である。これらの情報により、パケットのフローが特定される。つまり、パケットを送受信する通信端末装置とアプリケーションとが特定される。
【００３２】
フローデータベース管理部１１２は、フローデータベース１３０を管理する。具体的には、パケット転送部１４２が受信したパケットごとに対応してエントリを生成してフローデータベース１３０に登録し、タイムアウト検出部１１４によりタイムアウトであると検出されたフローに該当するパケットのエントリをフローデータベース１３０から削除する。
なお、エントリは、パケット転送部１４２が入力したパケットごとに対応してフロー情報抽出部１１１が抽出したフロー情報に受信時刻を対応付けて生成する。受信時刻は、対応のパケットが受信された時刻、つまり、パケット転送部１４２に入力された時刻を示す。
【００３３】
図４は、フローデータベース１３０の構造例を示している。この図に示すように、フローデータベース１３０のエントリ１３１は、受信したパケットごとの送信元ＩＰアドレス１３１ａ、宛先ＩＰアドレス１３１ｂ、プロトコル番号１３１ｃ、送信元ポート番号１３１ｄ、宛先ポート番号１３１ｅおよび受信時刻１３１ｆが対応付けられた構造を有する。
したがって、フローデータベース１３０を参照すれば、過去に受信したパケットがどのフローに該当するものであるのかを特定できることになる。
【００３４】
説明を図３に戻す。フラグ検出部１１３は、受信したパケットに格納されるフローの終了を示すフラグに基づいてフロー終了か否かを検出する。具体的に、フラグ検出部１１３は、パケット転送部１４２が取得したパケットごとに、そのパケットにおけるＴＣＰヘッダに含まれるＦＩＮフラグがオンにセットされているか否かについて検出する。また、ＴＣＰヘッダに含まれるＲＳＴフラグがオンにセットされているか否かについて検出する。
【００３５】
ＦＩＮフラグはＴＣＰヘッダの所定位置に配置される１ビットのフィールドである。ＦＩＮフラグがオンにセットされているパケットは、以降において受信すべきパケットがないことを示す。つまりフロー終了を示す。
【００３６】
ＲＳＴフラグはＴＣＰヘッダの所定位置に配置される１ビットのフィールドであり、ＴＣＰ接続を中断または拒否する場合にセットされる。ＲＳＴフラグがオンにセットされたパケットを受信したノードは、接続要求が拒否されたとみなし、現在のＴＣＰ接続を破棄または強制終了すべきとされている。したがって、ＲＳＴフラグがオンにセットされている場合もフローの終了を示すことになる。
【００３７】
すなわち、フラグ検出部１１３は、ＦＩＮフラグとＲＳＴフラグの少なくともいずれかについてオンがセットされていることを検出することによって、フロー終了の発生を検出する。
【００３８】
閾値設定部１２０は、記憶部１０３に記憶されるフローデータベース１３０に格納される情報とフロー終了対応関数値１３２の情報に基づいて、タイムアウト検出部１１４がフロー停止期間についてのタイムアウト検出を行う際に利用する閾値を動的に設定する。なお、図３に示される閾値設定部１２０内の機能部と、当該閾値設定部１２０内の機能部による閾値設定処理については後述する。
【００３９】
タイムアウト検出部１１４は、フローのタイムアウト、つまり、フローの停止期間が一定以上になったことを検出することにより、フロー終了を検出する。このために、タイムアウト検出部１１４は、フローデータベース１３０から、受信済みのパケットのうちの最後のパケットに対応するエントリ１３１の受信時刻１３１ｆを取得する。そして、この取得した受信時刻から現在時刻までの期間（パケット停止期間）の時間長を計測する。そして、このパケット停止期間の計測値と閾値設定部１２０により設定された閾値とを比較し、パケット停止期間が閾値以上となったタイミングで、フローのタイムアウトが発生したものとして検出する。
【００４０】
このようにタイムアウトが検出された場合には、例えば、ＦＩＮフラグまたはＲＳＴフラグについてオンがセットされてはいないが、何らかの障害によって強制的にフローの通信が終了したことを意味する。
【００４１】
これまでの説明から理解されるように、本実施形態におけるデータ転送装置１００は、通信パケットのＴＣＰヘッダに格納されるＦＩＮフラグまたはＲＳＴフラグの値に基づいてフロー終了を検出するようにしている。また、これと並行して、フローのタイムアウトを検出することによっても、フローの通信終了を検出するようにしている。
【００４２】
スリープ制御部１１５は、フロー終了が検出されるのに応じて、フローが停止している期間内においてスリープ状態を設定する。このために、スリープ制御部１１５は、まず、フローの通信終了が検出されたタイミングでスリープ状態を設定すべきか否かについての判定を行う。つまり、スリープ制御部１１５は、フラグ検出部１１３によりＦＩＮフラグまたはＲＳＴフラグがオンにセットされていることが検出されるのに応じて、スリープ状態設定可否の判定を行う。また、スリープ制御部１１５は、タイムアウト検出部１１４によりタイムアウトの発生が検出されるのに応じて、スリープ状態設定をすべきか否かの判定を行う。
そして、スリープ状態を設定すべきと判定した場合に、フローの通信が停止しているフロー停止期間においてスリープ状態が設定されるように電源部１０５を制御する。
【００４３】
電源部１０５は、スリープ制御部１１５の制御に応じて、ＣＰＵ１０１やＲＡＭ１０２などをはじめとする所定部位に対する電源電圧の供給を停止させてスリープ状態を設定する。また、スリープ状態を設定するにあたり、電源電圧の電圧値を起動時よりも低い所定値とすべきときには、電源電圧をスリープ状態に応じた所定値に変更することも行う。
【００４４】
［閾値設定部による閾値設定例］
続いて、閾値設定部１２０によるタイムアウト検出のための閾値の設定例について説明する。まず、図３における閾値設定部１２０内の機能構成例について説明する。図３において、閾値設定部１２０は、パケット間隔算出部１２１、累積分布関数演算部１２２および閾値対応パケット間隔取得部１２３を備える。
【００４５】
パケット間隔算出部１２１は、フローデータベース１３０に格納されるエントリ１３１の情報を利用して、過去において受信されたフローごとに該当する複数のパケットにおけるパケット間隔を算出する。
【００４６】
図５により、パケット間隔算出部１２１によるパケット間隔の具体的手法例について説明する。図５には、時間経過に応じてパケット転送部１４２で受信されるパケットＰｋｔが示されている。パケット間隔算出部１２１が算出すべきパケット間隔Ｔｐは、同じフローにおいて、１つのパケットＰｋｔが受信された時点から、次のパケットＰｋｔの受信が開始された時点までの期間となる。
【００４７】
そして、パケット間隔算出部１２１は、このパケット間隔Ｔｐを算出するために、フローデータベース１３０を利用する。つまり、エントリ１３１が示す受信時刻１３１ｆの順にしたがって、１つの受信時刻１３１ｆと次のパケットの受信時刻１３１ｆの時間差を求める。このように求められる時間差が、すなわち、パケット間隔Ｔｐとなる。
【００４８】
図５に、模式的に示されるように、パケットＰｋｔが到来するタイミングは一定ではない。したがって、上記のように求められるパケット間隔Ｔｐも一定ではない。そのうえで、パケット間隔算出部１２１は、フローが継続しているとされるフロー継続期間Ｔｃｔｎだけではなく、フローの通信が停止されるフロー停止期間Ｔｓｔｐにおいてもパケット間隔Ｔｐを測定する。つまり、図５におけるフロー継続期間Ｔｃｔｎにおける最後のパケットＰｋｔが受信される時刻ｔ１から、フロー停止期間Ｔｓｔｐが終了して次のフロー継続期間Ｔｃｔｎの最初のパケットＰｋｔが受信される時刻ｔ２までの期間も、パケット間隔Ｔｐとして測定する。このように、パケット間隔算出部１２１は、過去における多数の受信パケットにおけるパケット間隔Ｔｐを算出する。
【００４９】
累積分布関数演算部１２２は、上記のように算出されたパケット間隔Ｔｐの出現確率を累積分布関数により求める。このために、累積分布関数演算部１２２は、例えばパケット間隔算出部１２１により算出されたパケット間隔Ｔｐの出現頻度についての度数分布を求める。
【００５０】
図６は、累積分布関数演算部１２２により求められた度数分布の例を示したヒストグラムである。この図に示すヒストグラムは、横軸の階級としてパケット間隔をとり、縦軸の度数として出現回数をとっている。
【００５１】
次に、累積分布関数演算部１２２は、上記のように求めたパケット間隔Ｔｐの出現頻度に関する度数分布に基づき、パケット間隔Ｔｐの出現確率を累積分布関数により求める。
図７は、図６に示した度数分布について求められた累積分布関数をグラフ化して示している。このグラフにおいては、横軸がパケット間隔Ｔｐを示し、縦軸が累積分布関数の値を示す。図８は、図７に示した累積分布関数をテーブル化して示している。このように、累積分布関数演算部１２２は、パケット間隔算出部１２１により算出されたパケット間隔Ｔｐごとに対応して累積分布関数の値を取得する。
【００５２】
閾値対応パケット間隔取得部１２３は、図７および図８に例示したパケット間隔Ｔｐの累積分布関数と、フロー終了対応関数値１３２に基づいて、閾値としてのパケット間隔Ｔｐの値を取得する。フロー終了対応関数値１３２は、０から１の累積分布関数の値の範囲において、フローの通信終了（タイムアウト）とみなすべき累積分布関数の境界値を示す。そして、閾値対応パケット間隔取得部１２３は、フロー終了対応関数値１３２として示される値に一致する累積分布関数の値に対応付けられたパケット間隔Ｔｐの値を取得し、当該取得したパケット間隔Ｔｐを閾値として設定する。
【００５３】
閾値対応パケット間隔取得部１２３による閾値対応のパケット間隔Ｔｐ取得の具体例について、再度、図８を参照して説明する。ここでの説明にあたり、フロー終了対応関数値１３２は、「０．９９（９９％）」と設定されていることを想定する。この値は、累積分布関数の０％から９９％未満の範囲に対応するパケット間隔Ｔｐについてはタイムアウトと検出せず、９９％以上に対応するパケット間隔Ｔｐをタイムアウトとして検出させるようにすることを意図して設定されたものである。
【００５４】
図８において、フロー終了対応関数値１３２が示す「０．９９」の累積分布関数の値は、矢印Ａにより示すように、累積分布関数「０．９８９９」と、累積分布関数「０．９９０１」の境界に対応することになる。
【００５５】
そこで、この場合の閾値対応パケット間隔取得部１２３は、「０．９９」のフロー終了対応関数値１３２に一致する値として、累積分布関数「０．９９０１」を採用する。この累積分布関数「０．９９０１」にはパケット間隔Ｔｐは７０（秒）が対応付けられている。そこで、閾値対応パケット間隔取得部１２３は、このパケット間隔Ｔｐ＝７０（秒）を閾値として特定する。
【００５６】
これに応じて、タイムアウト検出部１１４は、測定中のパケット停止期間と７０秒の閾値と比較し、パケット停止期間が７０秒以上となるのに応じてタイムアウトが発生したものとして検出することになる。
【００５７】
次に、スリープ制御部１１５によるスリープ制御の一例について、図９を参照して説明する。図９において、フロー継続期間Ｔｃｔｎは、或る１つのフローが継続している期間である。このフロー継続期間Ｔｃｔｎにおいては、図示するように、そのフローに該当するパケットＰｋｔが順次伝送される。フロー継続期間Ｔｃｔｎにおける最後のパケットＰｋｔの受信が終了した時刻ｔｅｎｄがフロー終了のタイミングとなる。このフロー継続期間Ｔｃｔｎが強制終了されたのではなく正常に終了したものであると仮定すれば、フロー継続期間Ｔｃｔｎにおける最後のパケットＰｋｔ内のＦＩＮフラグまたはＲＳＴフラグがオンを示していることになる。
【００５８】
そして、このフロー継続期間Ｔｃｔｎが終了して、次のフロー継続期間Ｔｃｔｎが再開されるまでの時刻ｔｅｎｄから時刻ｔｓｔａまでの期間が、フローの通信が停止されるフロー停止期間Ｔｓｔｐとされる。フラグ検出部１１３またはタイムアウト検出部１１４によりフローの終了に対応する検出結果が得られた時点では、フロー停止期間Ｔｓｔｐが実質的に開始されているものであり、スリープ制御部１１５は、このフロー停止期間Ｔｓｔｐにおいてスリープ状態を設定する。
【００５９】
ここで、スリープ制御部１１５により、フロー停止期間Ｔｓｔｐが到来するごとにスリープ状態を設定するように動作させることも可能である。しかし、フロー停止期間Ｔｓｔｐにおいてスリープ状態を設定した場合には、次フローが開始される時刻ｔｓｔａに至る前のタイミングでスリープ状態を解除して起動状態とする必要がある。このため、図９に示すように、フロー停止期間Ｔｓｔｐは、スリープ状態を設定可能なスリープ対象期間Ｔｓｌｐと、これに続く起動期間Ｔｕにより形成されることになる。起動期間Ｔｕは、スリープ状態を解除してデータ転送装置１００の起動を開始させてから通信が可能となるまでの期間である。
【００６０】
ここで、上記起動期間Ｔｕは一定であり、装置によって異なる。一般的には数十ミリ秒から数秒程度の比較的長い時間が必要とされる。
【００６１】
起動期間Ｔｕにおいてスリープ状態から稼働状態に遷移する起動状態のときの電力Ｐｕは、スリープ状態時の電力Ｐｉよりも大きい。このため、フローの受信頻度が比較的高いことによりフロー停止期間Ｔｓｔｐも短くなるような状況では、起動期間Ｔｕの比率が多くなり消費電力の削減効果が低くなるという状態が生じ得る。
【００６２】
そこで、本実施形態のスリープ制御部１１５は、スリープ制御に際して、以下のようにスリープ状態を設定すべきか否かについて判定する。つまり、スリープ制御部１１５は、今回のフロー停止期間Ｔｓｔｐの時間長のもとでのスリープ状態を設定した場合の消費電力と設定しない場合の消費電力を比較する。そして、スリープ状態を設定した場合の消費電力のほうが小さければスリープ状態を設定すべきと判定し、大きければスリープ状態を設定しないと判定する。
【００６３】
具体的に、スリープ制御部１１５は、以下の条件式が成立した場合にスリープ状態を設定すべきと判定すればよい。
｛（Ｔｓｔｐ−Ｔｕ）×Ｐｓ＋Ｔｕ×Ｐｕ｝＜｛（Ｔｓｔｐ×Ｐｉ｝
図９から理解されるように、上記条件式の左辺は、スリープ対象期間Ｔｓｌｐにおいてスリープ状態を設定した場合のフロー停止期間Ｔｓｔｐの消費電力を示す。右辺は、スリープ対象期間Ｔｓｌｐにおいてスリープ状態を設定しない場合のフロー停止期間Ｔｓｔｐの消費電力を示している。
【００６４】
なお、上記条件式において、稼働状態の空転時における電力Ｐｉ、起動状態時の電力Ｐｕ、スリープ状態時の電力Ｐｓは、それぞれ、データ転送装置１００の仕様によって決まる既知の値である。また、フロー停止期間Ｔｓｔｐについては、例えば過去において測定したフロー継続期間Ｔｃｔｎが終了してから次のフロー継続期間Ｔｃｔｎが開始されるまでの時間長の平均値や確率分布などにより予測することができる。そして、起動期間Ｔｕについては、データ転送装置１００の仕様によって決まる既知の値である。
【００６５】
［処理手順例］
図１０のフローチャートは、データ転送装置１００がＦＩＮフラグまたはＲＳＴフラグの状態に基づいて実行するスリープ制御のための処理手順例を示している。この図に示す処理は、図３に示したＣＰＵ１０１における機能部のいずれかが適宜実行するものとしてみることができる。
【００６６】
まず、フロー情報抽出部１１１は、パケット転送部１４２が取得したパケットから、前述のフロー情報を抽出する（ステップＳ１０１）。フローデータベース管理部１１２は、抽出されたフロー情報と受信時刻とによりエントリ１３１を形成し、このエントリ１３１をフローデータベース１３０に登録する（ステップＳ１０２）。
【００６７】
次に、フラグ検出部１１３は、上記ステップＳ１０１によりフロー情報を抽出したパケットについて、そのＦＩＮフラグがオンにセットされているか否かについて検出する（ステップＳ１０３）。
【００６８】
ＦＩＮフラグがオンにセットされていないことを検出した場合（ステップＳ１０３−ＮＯ）、フラグ検出部１１３は、上記ステップＳ１０１によりフロー情報を抽出したパケットについて、そのＲＳＴフラグがオンにセットされているか否かについて検出する（ステップＳ１０４）。
【００６９】
ＲＳＴフラグがオンにセットされていないと判定した場合（ステップＳ１０４−ＮＯ）、フローの通信は未だ終了していないことになる。そこで、この場合には、ステップＳ１０１に戻ることで、次のパケットを対象とするフラグ検出の処理を実行する。
【００７０】
これに対して、ＦＩＮフラグがオンにセットされていることを検出した場合（ステップＳ１０３−ＹＥＳ）、または、ＲＳＴフラグがオンにセットされていることを検出した場合（ステップＳ１０４−ＹＥＳ）には、以下の処理を実行する。
【００７１】
まず、スリープ制御部１１５は、上記のようにＦＩＮフラグまたはＲＳＴフラグがオンにセットされていることを検出した時点から所定時間待機する（ステップＳ１０５）。
【００７２】
上記ステップＳ１０５により所定時間の待機を実行するのは、ＦＩＮフラグおよびＲＳＴフラグについてオンがセットされているパケットであっても、これがフローの通信における最終のパケットではない可能性があることによる。ＦＩＮフラグおよびＲＳＴフラグについてオンがセットされているにも係わらず最終ではないパケットとしては、例えばオンにセットされたＦＩＮフラグまたはＲＳＴフラグのパケットの受信側がこれに対してＡＣＫを返送するためのパケットがある。また、無線ＬＡＮフレームのＡＣＫなどがある。
上記ステップＳ１０５における待機時間は、上記のＡＣＫなどのパケットの通信が完了するのに必要とされる時間を考慮して設定されればよい。
【００７３】
また、フローデータベース管理部１１２は、今回検出されたＦＩＮフラグまたはＲＳＴフラグにより通信が終了したとされるフローに該当するパケットのエントリ１３１をフローデータベース１３０から削除する（ステップＳ１０６）。これにより、フローデータベース１３０の容量が肥大化することを防止できる。
【００７４】
次に、スリープ制御部１１５は、先に図９にて説明したように条件式を演算し（ステップＳ１０７）、この演算結果から、スリープ状態を設定すべきか否かについて判定する（ステップＳ１０８）。
【００７５】
スリープ状態を設定すべきと判定した場合（ステップＳ１０８−ＹＥＳ）、スリープ制御部１１５は、図９にて説明したようにスリープ対象期間Ｔｓｌｐにおいてスリープ状態が設定されるように電源部１０５を制御する（ステップＳ１０９）。これに対して、スリープ状態を設定すべではないと判定した場合（ステップＳ１０８−ＮＯ）、フロー停止期間Ｔｓｔｐにおいて起動状態が維持されるように電源部１０５を制御する（ステップＳ１１０）。
【００７６】
図１１のフローチャートは、タイムアウト検出結果に応じて実行されるスリープ制御を実現するための処理手順例を示している。この図に示す処理は、上記図１０に示したスリープ制御の処理と並行して実行されるものとなる。また、この図に示す処理は、図３に示したＣＰＵ１０１における機能部のいずれかが適宜実行するものとしてみることができる。
【００７７】
まず、閾値設定部１２０において、パケット間隔算出部１２１は、先に図５にて説明したように過去に受信されたパケットについてのパケット間隔Ｔｐを算出する（ステップＳ２０１）。次に、累積分布関数演算部１２２は、先に図６および図７により説明したように、パケット間隔Ｔｐについての累積分布関数を求める（ステップＳ２０２）。
【００７８】
次に、閾値対応パケット間隔取得部１２３は、記憶部１０３からフロー終了対応関数値１３２を読み込み（ステップＳ２０３）、先に図８により説明したように、フロー終了対応関数値に一致する累積分布関数に対応付けられたパケット間隔Ｔｐを取得する。そして、このパケット間隔Ｔｐの値を閾値として設定する（ステップＳ２０４）。
【００７９】
タイムアウト検出部１１４は、前述のようにパケット停止期間を測定し（ステップＳ２０５）、測定されたパケット停止期間が閾値以上であるか否かについて判定する（ステップＳ２０６）。ここで、パケット停止期間が閾値未満であると判定した場合には（ステップＳ２０６−ＮＯ）、ステップＳ２０１に戻る。これに対して、パケット停止期間が閾値以上であると判定した場合には（ステップＳ２０６−ＹＥＳ）、ステップＳ２０７〜Ｓ２１１による処理を実行する。なお、ステップＳ２０７〜Ｓ２１１の処理は、図１０におけるステップＳ１０６〜Ｓ１１０の処理と同様となる。
【００８０】
このように、本実施形態では、タイムアウト検出のための閾値について、過去におけるパケット間隔に基づいて動的に設定することができる。つまり、現在のフローの発生特性や運用ポリシーなどに応じた適切な閾値が設定される。これにより、フローの通信が強制終了された場合における当該フローの通信終了を検出タイミングについての精度を向上させることができる。そして、本実施形態のように、フローの通信終了検出に応じてスリープ制御を行う場合には、スリープ状態を適切なタイミングで設定できることとなり、スリープ状態の設定による消費電力削減量の増加が可能となる。
【００８１】
なお、これまでの実施形態におけるスリープ状態とは、例えば、休止状態などともいわれる。本実施形態のスリープ状態とは、これまでの説明から理解されるように、所定の回路部への電源供給が停止される、または、供給される電源電圧の電圧値を低下させることで、稼働状態よりも消費電力が少なくなる状態をいう。
【００８２】
また、本実施形態におけるタイムアウト検出のための閾値設定にあたっては、例えば、一定の過去のパケット間隔の平均値を求めるなどの手法も考えることができる。しかし、実際に閾値設定のために利用されるパケット間隔の数は相当に多いことから、本実施形態のように、パケット間隔の出現確率に基づいて閾値を設定する方が信頼性が高い。また、本実施形態のように累積分布関数を求めておくこととすれば、仮に固定の閾値を設定することとした場合においても、この閾値に対応してタイムアウトが検出されるパケット間隔Ｔｐの出現確率を特定できる。具体的に、１２０秒の閾値を設定した場合において図８の累積分布関数が求められているときには、出現可能性のあるパケット間隔Ｔｐにおいて、タイムアウトであるとして検出される確率は０．６３％（＝１−０．９９３７）であると特定できる。
【００８３】
また、本実施形態におけるフローの終了検出は、例えばトラフィックの制御などをはじめとしてスリープ制御以外にも適用できる。
【００８４】
また、上述のデータ転送装置は、内部にコンピュータシステムを有している。そして、上述したスリープ制御の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００８５】
また、図３に示される機能部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各種処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８６】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００８７】
本願は、２０１１年９月５日に、日本に出願された特願２０１１−１９２６４０号に基づき優先権を主張し、その内容をここに援用する。
【産業上の利用可能性】
【００８８】
本発明に係わる通信装置によれば、データ通信のタイムアウト判定のための所定時間を適切に設定してデータ通信終了タイミングの検出の的確性を向上させることができる。
【符号の説明】
【００８９】
１００    データ転送装置
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    記憶部
１０４    通信部
１０５    電源部
１０６    データバス
１１１    フロー情報抽出部
１１２    フローデータベース管理部
１１３  フラグ検出部
１１４    タイムアウト検出部
１１５    スリープ制御部
１２０    閾値設定部
１２１    パケット間隔算出部
１２２    累積分布関数演算部
１２３    閾値対応パケット間隔取得部
１３０    フローデータベース
１３１    エントリ
１３２    フロー終了対応関数値
２００    通信端末装置
３００    通信端末装置
４００    基幹ネットワーク
【図１】
2013035451.tif 000003
【図２】
2013035451.tif 000004
【図３】
2013035451.tif 000005
【図４】
2013035451.tif 000006
【図５】
2013035451.tif 000007
【図６】
2013035451.tif 000008
【図７】
2013035451.tif 000009
【図８】
2013035451.tif 000010
【図９】
2013035451.tif 000011
【図１０】
2013035451.tif 000012
【図１１】
2013035451.tif 000013
【国際調査報告】
2013035451.tif 000014
2013035451.tif 000015
2013035451.tif 000016
2013035451.tif 000017