(57)【特許請求の範囲】
【請求項１】
コンピュータに、
通信回線を伝送されるパケットを取得し、
取得した同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶し、
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算し、
演算した前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算し、
演算した前記推定クロック周波数を用いてジッタを演算する、
ことを含む処理を実行させるパケット監視プログラム。
【請求項２】
演算したジッタ又は該ジッタに基づく情報を出力する、
請求項１記載のパケット監視プログラム。
【請求項３】
前記特定パケットは、クロック周波数が予め規定された第１通信モード及びクロック周波数が未規定の第２通信モードで選択的に通信可能な通信プロトコルに準拠したパケットであり、該パケットに含まれるセッションを識別する識別情報が同一かつ通信モードが前記第２通信モードのパケットである、
請求項１又は請求項２記載のパケット監視プログラム。
【請求項４】
複数記憶した前記特定パケットの取得時間間隔の標準偏差又は分散が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
請求項１から請求項３の何れか１項記載のパケット監視プログラム。
【請求項５】
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔の代表値に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
請求項１から請求項４の何れか１項記載のパケット監視プログラム。
【請求項６】
通信回線を伝送されるパケットを取得する取得部と、
前記取得部により取得された同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶する記憶制御部と、
前記記憶制御部により複数記憶された前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する間隔演算部と、
前記間隔演算部により演算された前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算する周波数演算部と、
前記周波数演算部により演算された推定クロック周波数を用いてジッタを演算するジッタ演算部と、
を含むパケット監視装置。
【請求項７】
コンピュータに、
通信回線を伝送されるパケットを取得し、
取得した同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶し、
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算し、
演算した前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算し、
演算した前記推定クロック周波数を用いてジッタを演算する、
ことを含む処理を実行させるパケット監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット監視プログラム、パケット監視装置、及びパケット監視方法に関する。
【背景技術】
【０００２】
音声データの再生に用いるクロック信号の生成において、送信装置のクロック信号の間隔と同期合わせ用クロック情報の取得時間の間隔との差を求める技術が知られている。この技術では、求めた差を同期合わせ用クロック情報の間隔で除算して得られた値に基づくクロックの周波数で、音声データの再生に用いるクロック信号を生成する。
【０００３】
一方、端末間を接続する通信回線を伝送されるパケットを取得し、通信回線の品質を評価することが行われている。また、瞬時ジッタによる影響で通信回線の品質が低下することが知られている。そして、瞬時ジッタは、パケットの送受信に用いられるクロック信号の周波数（以下、「クロック周波数」という）を用いて算出できることが知られている。なお、本明細書における通信回線の品質とは、通信回線を通じた通信の経時的な安定度を意味する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１５８５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、Real-time Transport Protocol（ＲＴＰ）等の通信プロトコルには、クロック周波数が予め規定されていない通信モードが存在する。この通信モードで通信する場合、例えば、送信側と受信側との事前の通信でクロック周波数が決定されるが、この事前の通信が暗号化されていた等の場合、送信側及び受信側以外の装置にとっては、クロック周波数は不明である。そして、クロック周波数が不明の場合、瞬時ジッタ、及び瞬時ジッタから算出される平均ジッタ等のジッタを算出することができない。
【０００６】
本発明は、一つの側面として、クロック周波数が不明な場合にもジッタを算出可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、一つの側面として、通信回線を伝送されるパケットを取得し、取得した同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶する。また、複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する。また、演算した前記特定パケットの送信時間間隔の推定値と、特定パケットの送信時間間隔に対応する特定パケットの送信の際のクロック計数値の差と、から特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算する。そして、演算した前記推定クロック周波数を用いてジッタを演算する。
【発明の効果】
【０００８】
一つの側面として、クロック周波数が不明な場合にもジッタを算出することができる、という効果を有する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る通信システムの概略構成を示すブロック図である。
【図２】ＲＴＰのペイロードタイプ毎のクロック周波数を説明するための図である。
【図３】実施形態に係るパケット監視装置の機能ブロック図である。
【図４】実施形態に係るパケット監視装置として機能するコンピュータの概略構成を示すブロック図である。
【図５】実施形態に係るパケット監視処理の一例を示すフローチャートである。
【図６】セッション管理テーブルの一例を示す図である。
【図７】実施形態に係るパケット間隔算出処理の一例を示すフローチャートである。
【図８】タイムスタンプ差分及び取得時間間隔を説明するための図である。
【図９】パケット間隔データの一例を示す図である。
【図１０】実施形態に係るクロック周波数算出処理の一例を示すフローチャートである。
【図１１】送信間隔の推定値を説明するためのグラフである。
【図１２】クロック周波数テーブルの一例を示す図である。
【図１３】実施形態に係るジッタ算出処理の一例を示すフローチャートである。
【図１４】瞬時ジッタを説明するための図である。
【図１５】ジッタ計測データの一例を示す図である。
【図１６】実施形態に係るジッタ表示処理の一例を示すフローチャートである。
【図１７】平均ジッタ表示画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００１１】
図１に示すように本実施形態に係る通信システム１０は、パケット監視装置１２（以下、「監視装置１２」という）、送信端末１４、受信端末１６、及びネットワークスイッチ１８を含んでいる。監視装置１２、送信端末１４、及び受信端末１６は、各々ネットワークスイッチ１８に接続されており、互いに通信が可能とされている。
【００１２】
ネットワークスイッチ１８は、送信端末１４と受信端末１６との間の通信回線を伝送されるパケットをミラーリングして監視装置１２に転送する。監視装置１２は、ネットワークスイッチ１８から転送されたパケットを取得し、取得したパケットに基づいてジッタを算出する。なお、本実施形態では、ジッタの算出対象とするパケットが準拠している通信プロトコルの一例として、ＲＴＰを適用した態様を説明する。
【００１３】
ＲＴＰは、瞬時ジッタの算出に必要なクロック周波数が予め規定された第１通信モード及びクロック周波数が未規定の第２通信モードで選択的に通信可能な通信プロトコルである。図２に示すように、ＲＴＰは、複数のペイロードタイプが設けられており、ペイロードタイプ毎にクロック周波数及び符号化の種類が規定されている。なお、ペイロードタイプは、ＲＴＰのパケットのうちＲＴＰヘッダに設定される。
【００１４】
送信端末１４は、クロック周波数に従ったクロック信号を用いて、ＲＴＰパケットを生成して受信端末１６に送信する。受信端末１６は、クロック周波数に従ったクロック信号を用いて、受信したＲＴＰパケットを組み立てる。
【００１５】
例えば、ペイロードタイプが３の場合は、クロック周波数は８，０００Ｈｚと予め規定されている。また、ペイロードタイプが３５〜７１、７７〜９５の場合はクロック周波数が未割当てであり、ペイロードタイプが７２〜９５の場合は将来使用するために予約されており、これらのペイロードタイプは現時点では使用されない。また、ペイロードタイプが９６〜１２７の場合はクロック周波数が予め規定されておらず（第２通信モードに相当）、通信に先立って送信端末と受信端末との間で事前に通信を行うことでクロック周波数が決定される。
【００１６】
すなわち、監視装置１２は、取得したパケットのペイロードタイプが９６〜１２７で、かつ送信端末１４と受信端末１６との事前通信が暗号化されていた等の場合はクロック周波数が特定できない。そこで、本実施形態に係る監視装置１２は、クロック周波数が未規定のパケットについては、クロック周波数を推定してジッタを算出する。
【００１７】
次に、図３を参照して監視装置１２の構成について説明する。図３に示すように、監視装置１２は、取得部２０、解析部２２、記憶制御部２４、間隔演算部２６、周波数演算部２８、ジッタ演算部３０、受付部３２、出力部３４、及び記憶部３６を含んでいる。記憶部３６は、セッション管理テーブル３８、パケット間隔データ４０、クロック周波数テーブル４２、及びジッタ計測データ４４を記憶する。
【００１８】
取得部２０は、通信回線を伝送されるパケットをネットワークスイッチ１８から取得する。解析部２２は、取得部２０により取得されたパケットを解析して、該パケットがＲＴＰのパケットであるか否かを判定する。また、解析部２２は、取得部２０により取得されたＲＴＰのパケットのセッションを識別する識別情報を、記憶部３６のセッション管理テーブル３８に記憶する。本実施形態では、解析部２２は、識別情報として、ＲＴＰのパケットのＩＰヘッダ及びUser Datagram Protocol（ＵＤＰ）ヘッダに含まれる送信元ＩＰアドレス及び送信元ポート番号を記憶部３６のセッション管理テーブル３８に記憶する。また、解析部２２は、ＲＴＰのパケットのＩＰヘッダ及びＵＤＰヘッダに含まれる宛先ＩＰアドレス及び宛先ポート番号も記憶部３６のセッション管理テーブル３８に記憶する。
【００１９】
さらに、解析部２２は、取得部２０によりＲＴＰのパケットが取得された時刻（以下、「取得時刻」という）と、ＲＴＰのパケットのＲＴＰヘッダに含まれるタイムスタンプ及びペイロードタイプと、を記憶部３６のセッション管理テーブル３８に記憶する。なお、ＲＴＰのパケットに含まれるタイムスタンプは、送信端末１４が、クロック信号のパルスを計数し、パケットを送信するタイミングでのクロック計数値をパケットに設定した情報である。また、解析部２２は、セッションを一意に識別するセッション番号も記憶部３６のセッション管理テーブル３８に記憶する。セッション管理テーブル３８は、一例として図６に示すように、セッション番号、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、タイムスタンプ、取得時刻、及びペイロードタイプの記憶領域を含んでいる。
【００２０】
記憶制御部２４は、取得部２０により取得された同一セッションの特定パケットについて前回取得してからの取得時間間隔を演算し、記憶部３６に記憶する。本実施形態では、記憶制御部２４は、取得部２０により取得されたＲＴＰのパケットに含まれる識別情報及びペイロードタイプと、セッション管理テーブル３８のうち同一の識別情報及びペイロードタイプを記憶するレコードと、に基づき以下の処理を行う。記憶制御部２４は、特定パケットを前回取得してからの取得時間間隔として、特定パケットの今回の取得時刻と、セッション管理テーブル３８の前記レコードに記憶された取得時刻と、の差分を演算する。
【００２１】
さらに、記憶制御部２４は、取得部２０により取得されたパケットに含まれるタイムスタンプと、セッション管理テーブル３８の同一の識別情報及びペイロードタイプを記憶するレコードのタイムスタンプとの差を演算する。なお、以下では、このタイムスタンプの差分を「タイムスタンプ差分」という。なお、タイムスタンプが本発明のクロック計数値の一例である。そして、記憶制御部２４は、演算した取得時間間隔及びタイムスタンプ差分を、記憶部３６のパケット間隔データ４０に記憶する。また、記憶制御部２４は、取得時間間隔及びタイムスタンプ差分に対応するセッション番号、ペイロードタイプ、及び取得時刻も記憶部３６のパケット間隔データ４０に記憶する。パケット間隔データ４０は、一例として図９に示すように、セッション番号、ペイロードタイプ、タイムスタンプ差分、取得時刻、及び取得時間間隔の記憶領域を含んでいる。
【００２２】
間隔演算部２６は、記憶制御部２４により複数記憶された特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における特定パケットの取得時間間隔に基づいて、特定パケットの送信時間間隔の推定値を演算する。本実施形態では、間隔演算部２６は、記憶制御部２４により複数記憶された特定パケットの取得時間間隔の標準偏差が所定値以下の期間における特定パケットの取得時間間隔の代表値に基づいて、特定パケットの送信時間間隔の推定値を演算する。
【００２３】
なお、間隔演算部２６は、記憶制御部２４により複数記憶された特定パケットの取得時間間隔の分散が所定値以下の期間における特定パケットの取得時間間隔の代表値に基づいて、特定パケットの送信時間間隔の推定値を演算してもよい。また、間隔演算部２６は、記憶制御部２４により複数記憶された特定パケットの取得時間間隔の分布が正規分布となっている期間における特定パケットの取得時間間隔の代表値に基づいて、特定パケットの送信時間間隔の推定値を演算してもよい。
【００２４】
周波数演算部２８は、間隔演算部２６により演算された特定パケットの送信時間間隔の推定値と、特定パケットのクロック計数値の差と、から推定クロック周波数を演算する。本実施形態では、周波数演算部２８は、間隔演算部２６により演算された特定パケットの送信時間間隔の推定値と、パケット間隔データに記憶されたタイムスタンプ差分と、から推定クロック周波数を演算する。そして、周波数演算部２８は、特定パケットのセッション番号及びペイロードタイプと、演算した推定クロック周波数とを記憶部３６のクロック周波数テーブル４２に記憶する。クロック周波数テーブル４２は、一例として図１２に示すように、セッション番号、ペイロードタイプ、及び推定クロック周波数の記憶領域を含んでいる。
【００２５】
ジッタ演算部３０は、周波数演算部２８により演算された推定クロック周波数を用いてジッタを演算する。本実施形態では、ジッタ演算部３０は、ジッタとして、瞬時ジッタ及び平均ジッタを演算し、セッション番号及び取得時刻と共に記憶部３６のジッタ計測データ４４に記憶する。ジッタ計測データ４４は、一例として図１５に示すように、セッション番号、取得時刻、瞬時ジッタ、及び平均ジッタの記憶領域を含んでいる。
【００２６】
受付部３２は、ユーザからのジッタに関する情報の出力指示を受け付ける。出力部３４は、ジッタ演算部３０により演算されたジッタに基づく情報を出力する。本実施形態では、出力部３４は、受付部３２により出力指示が受け付けられた場合に、ジッタ計測データ４４から平均ジッタを読み出して表示装置に出力する。
【００２７】
監視装置１２は、例えば図４に示すコンピュータ６０で実現することができる。コンピュータ６０はCentral Processing Unit（ＣＰＵ）６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶部６３を備えている。また、コンピュータ６０は、入力部及び表示部等を含む入出力装置６４、記録媒体６８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部６５、及びネットワークに接続されるネットワークＩ／Ｆ６６を備えている。ＣＰＵ６１、メモリ６２、記憶部６３、入出力装置６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続されている。
【００２８】
記憶部６３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部６３には、コンピュータ６０を監視装置１２として機能させるためのパケット監視プログラム７０が記憶される。パケット監視プログラム７０は、取得プロセス７１、解析プロセス７２、記憶制御プロセス７３、間隔演算プロセス７４、周波数演算プロセス７５、ジッタ演算プロセス７６、受付プロセス７７、及び出力プロセス７８を有する。
【００２９】
ＣＰＵ６１は、パケット監視プログラム７０を記憶部６３から読み出してメモリ６２に展開し、パケット監視プログラム７０が有するプロセスを実行する。ＣＰＵ６１は、取得プロセス７１を実行することで、図３に示す取得部２０として動作する。ＣＰＵ６１は、解析プロセス７２を実行することで、図３に示す解析部２２として動作する。ＣＰＵ６１は、記憶制御プロセス７３を実行することで、図３に示す記憶制御部２４として動作する。ＣＰＵ６１は、間隔演算プロセス７４を実行することで、図３に示す間隔演算部２６として動作する。ＣＰＵ６１は、周波数演算プロセス７５を実行することで、図３に示す周波数演算部２８として動作する。ＣＰＵ６１は、ジッタ演算プロセス７６を実行することで、図３に示すジッタ演算部３０として動作する。ＣＰＵ６１は、受付プロセス７７を実行することで、図３に示す受付部３２として動作する。ＣＰＵ６１は、出力プロセス７８を実行することで、図３に示す出力部３４として動作する。これにより、パケット監視プログラム７０を実行したコンピュータ６０が、監視装置１２として機能することになる。また、記憶部６３は、記憶部３６として機能する情報記憶領域７９を有する。
【００３０】
また、パケット監視プログラム７０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００３１】
次に、本実施形態に係るパケット監視装置１２の作用を説明する。パケット監視装置１２は、ＣＰＵ６１がパケット監視プログラム７０を実行することで、図５に示すパケット監視処理を実行する。
【００３２】
図５に示すパケット監視処理のステップ１００で、取得部２０は、ネットワークスイッチ１８からパケットを受信したか否かを判定する。ネットワークスイッチ１８からパケットを受信すると、ステップ１００が肯定判定となり、取得部２０はネットワークスイッチ１８から受信したパケットを取得し、処理はステップ１０２に移行する。ステップ１００の判定が否定判定となると処理はステップ１２４に移行する。ステップ１０２で、解析部２２は、ステップ１００で取得されたパケット（以下、「処理対象パケット」という）のＩＰヘッダから、送信元ＩＰアドレス、宛先ＩＰアドレス、及びプロトコル番号を抽出する。
【００３３】
次のステップ１０４で、解析部２２は、ステップ１０２で抽出したプロトコル番号に基づいて、処理対象パケットがＵＤＰで通信されたパケットであるか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２４に移行し、肯定判定となった場合は、処理はステップ１０６に移行する。
【００３４】
ステップ１０６で、解析部２２は、処理対象パケットのヘッダのフォーマットがＲＴＰに準拠したフォーマットであるか否かを判定することで、処理対象パケットがＲＴＰのパケットであるか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２４に移行し、肯定判定となった場合は、処理はステップ１０８に移行する。
【００３５】
ステップ１０８で、解析部２２は、処理対象パケットのＵＤＰヘッダから送信元ポート番号及び宛先ポート番号を抽出する。ステップ１０２で抽出された送信元ＩＰアドレス及び宛先ＩＰアドレスと、ステップ１０８で抽出された送信元ポート番号及び宛先ポート番号は、本発明における識別情報の一例である。
【００３６】
次のステップ１１０で、解析部２２は、ステップ１０２及びステップ１０８で抽出した識別情報と同一の識別情報を記憶するレコードがセッション管理テーブル３８に存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ１１２に移行し、肯定判定となった場合は、処理はステップ１１４に移行する。なお、以下では、処理対象パケットの識別情報と同一の識別情報を記憶するセッション管理テーブル３８のレコードを、同一セッションのレコードという。
【００３７】
ステップ１１２で、解析部２２は、ステップ１０２及びステップ１０８で取得した識別情報を一意に識別するセッション番号、及び該識別情報を記憶部３６のセッション管理テーブル３８に記憶する。一例として図６に示すように、特定パケットを初めて受信した場合に、セッション管理テーブル３８には、識別情報毎にセッション番号及び識別情報が記憶される。なお、セッション管理テーブル３８のタイムスタンプ、取得時刻、及びペイロードタイプについては後述する。
【００３８】
ステップ１１４で、解析部２２は、処理対象パケットのＲＴＰヘッダからペイロードタイプ及びタイムスタンプを抽出する。次のステップ１１６で、図７に示すパケット間隔算出処理が実行される。
【００３９】
図７に示すパケット間隔算出処理のステップ１４０で、記憶制御部２４は、セッション管理テーブル３８のうち処理対象パケットと同一セッションのレコードにペイロードタイプが未格納か否かを判定する。この判定が肯定判定となった場合は、処理はステップ１５０に移行し、否定判定となった場合は、処理はステップ１４２に移行する。
【００４０】
ステップ１４２で、記憶制御部２４は、処理対象パケットのペイロードタイプと、セッション管理テーブル３８のうち処理対象パケットと同一セッションのレコードに記憶されたペイロードタイプと、が同じであるか否かを判定する。この判定が否定判定となった場合は、処理はステップ１５０に移行し、肯定判定となった場合は、処理はステップ１４４に移行する。
【００４１】
ステップ１４４で、記憶制御部２４は、次の（１）式に従ってタイムスタンプ差分ΔＴを演算する。（１）式において、Ｔｉは処理対象パケットのタイムスタンプ、Ｔｉ−１はセッション管理テーブル３８の処理対象パケットと同一セッションのレコードに記憶されたタイムスタンプである。また、添え字のｉはパケットの取得タイミングを表し、自然数である。
ΔＴ＝Ｔｉ−Ｔｉ−１  ・・・（１）
【００４２】
次のステップ１４６で、記憶制御部２４は、次の（２）式に従って取得時間間隔ΔＲを演算する。（２）式において、Ｒｉは処理対象パケットの取得時刻、Ｒｉ−１はセッション管理テーブル３８の処理対象パケットと同一セッションのレコードに記憶された取得時刻である。
ΔＲ＝Ｒｉ−Ｒｉ−１  ・・・（２）
【００４３】
上記のステップ１４４及びステップ１４６により、一例として図８に示すように、同一セッションで、かつ同一のペイロードタイプの特定パケットについて、タイムスタンプ差分ΔＴ及び取得時間間隔ΔＲが演算される。なお、図８では、一例としてＲＴＰのパケットのペイロードタイプが１１５の場合を示している。
【００４４】
次のステップ１４８で、記憶制御部２４は、ステップ１４４で演算したタイムスタンプ差分ΔＴ、及びステップ１４６で演算した取得時間間隔ΔＲを、記憶部３６のパケット間隔データ４０に記憶する。この際、記憶制御部２４は、セッション番号、ペイロードタイプ、及び取得時刻も記憶部３６のパケット間隔データ４０の同一のレコードに記憶する。一例として図９に示すように、本実施形態では、特定パケットを受信する都度、セッション番号、ペイロードタイプ、タイムスタンプ差分ΔＴ、取得時刻、取得時間間隔ΔＲがパケット間隔データ４０に追加されて記憶される。
【００４５】
ステップ１５０で、解析部２２は、セッション管理テーブル３８の処理対象パケットと同一セッションのレコードのうちの取得時刻を、処理対象パケットの取得時刻へ更新する（図６も参照）。さらに、解析部２２は、セッション管理テーブル３８の処理対象パケットと同一セッションのレコードのうちのタイムスタンプ及びペイロードタイプを、ステップ１１４で取得したタイムスタンプ及びペイロードタイプへ更新する（図６も参照）。ステップ１５０の処理が終了すると、パケット間隔算出処理を終了し、処理は図５のステップ１１８に戻る。
【００４６】
ステップ１１８で、解析部２２は、処理対象パケットと同じセッション番号で、かつ同じペイロードタイプが記憶されたレコードが、クロック周波数テーブル４２に存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２２に移行し、肯定判定となった場合は、処理はステップ１２０に移行する。次のステップ１２０で図１０に示すクロック周波数算出処理が実行される。
【００４７】
図１０に示すクロック周波数算出処理のステップ１６０で、間隔演算部２６は、パケット間隔データ４０から、処理対象パケットと同じセッション番号が記憶されたレコードを抽出する。ステップ１６２で、間隔演算部２６は、ステップ１６０で抽出したレコードの数が、所定数（例えば１００）以上であるか否かを判定する。この判定が肯定判定となった場合は、処理はステップ１６４に移行する。なお、この場合の所定数としては、要求されるジッタの算出精度等に応じて定められた値を適用すればよい。
【００４８】
ステップ１６４で、間隔演算部２６は、ステップ１６０で取得したレコードの取得時間間隔の標準偏差を演算する。ステップ１６６で、間隔演算部２６は、ステップ１６４で演算された標準偏差が所定値以下であるか否かを判定する。この判定が否定判定となった場合は、処理はステップ１７８に移行し、肯定判定となった場合は、処理はステップ１６８に移行する。なお、この場合の所定値としては、要求されるジッタの算出精度等に応じて定められた値を適用すればよい。
【００４９】
なお、ステップ１６０で取得した取得時間間隔のデータ群を、取得時刻の近いデータが同一のグループになるように、各々所定数以上のデータを複数のグループに分けてもよい。そして、グループ毎に標準偏差を演算し、標準偏差が所定値以下のグループを選択し、選択したグループのデータを用いて次のステップ１６８以降の処理を行ってもよい。
【００５０】
ステップ１６８で、間隔演算部２６は、ステップ１６０で抽出したレコードの取得時間間隔の代表値として、平均値を演算する。なお、間隔演算部２６は、取得時間間隔の平均値に代えて、取得時間間隔の中央値又は最頻値等の他の代表値を演算してもよい。
【００５１】
次のステップ１７０で、間隔演算部２６は、所定の算出単位時間の倍数で、かつステップ１６８で演算した取得時間間隔の平均値に最も近い値を演算することで、送信間隔の推定値を演算する。例えば、間隔演算部２６は、取得時間間隔の平均値が０．０１９８９７［ｓｅｃ］で、算出単位時間が０．０１［ｓｅｃ］の場合は、送信間隔の推定値を０．０２［ｓｅｃ］と演算する。このように、本実施形態では、図１１に示すように、取得時間間隔ΔＲのばらつきを表す値が所定値以下の期間の取得時間間隔の代表値から、送信間隔の推定値ΔＳｅｓｔが演算される。なお、この場合の算出単位時間としては、ユーザにより指定された値等を適用すればよい。
【００５２】
次のステップ１７２で、周波数演算部２８は、次の（３）式に従って推定クロック周波数Ｃｅｓｔを演算する。（３）式において、ΔＴはステップ１６０で取得されたレコードのタイムスタンプ差分、ΔＳｅｓｔはステップ１７０で演算された送信間隔の推定値である。
Ｃｅｓｔ＝ΔＴ／ΔＳｅｓｔ  ・・・（３）
【００５３】
次のステップ１７４で、周波数演算部２８は、ステップ１７２で演算された推定クロック周波数Ｃｅｓｔをセッション番号及びペイロードタイプと共に、記憶部３６のクロック周波数テーブル４２に記憶する。一例として図１２に示すように、クロック周波数テーブル４２には、セッション番号及びペイロードタイプの組み合わせ毎に推定クロック周波数Ｃｅｓｔが記憶される。
【００５４】
次のステップ１７６で、周波数演算部２８は、パケット間隔データ４０のうち処理対象パケットとセッション番号が同一で、かつ同一のペイロードタイプが記憶されたレコードを削除する。ステップ１７６の処理が終了すると、クロック周波数算出処理を終了する。一方、ステップ１７８で、間隔演算部２６は、パケット間隔データ４０の処理対象パケットとセッション番号が同一で、かつ同一のペイロードタイプが記憶されたレコードの中から取得時刻が最も古いレコードを削除する。ステップ１７８の処理が終了すると、クロック周波数算出処理を終了する。一方、ステップ１６２の判定が否定判定となった場合は、クロック周波数算出処理を終了する。クロック周波数算出処理が終了すると、処理は図５のステップ１２２に戻る。ステップ１２２で図１３に示すジッタ算出処理が実行される。
【００５５】
図１３に示すジッタ算出処理のステップ１８０で、ジッタ演算部３０は、パケット間隔データ４０から、処理対象パケットとセッション番号が同一で、かつペイロードタイプが同一のレコードに記憶されたタイムスタンプ差分ΔＴ及び取得時間間隔ΔＲを抽出する。次のステップ１８２で、ジッタ演算部３０は、クロック周波数テーブル４２から、処理対象パケットとセッション番号が同一で、かつペイロードタイプが同一のレコードに記憶された推定クロック周波数Ｃｅｓｔを抽出する。次のステップ１８４で、ジッタ演算部３０は、次の（４）式に従って送信間隔の推定値ΔＳｅｓｔを演算する。（４）式において、ΔＴはステップ１８０で抽出されたタイムスタンプ差分、Ｃｅｓｔはステップ１８２で抽出された推定クロック周波数である。
ΔＳｅｓｔ＝ΔＴ／Ｃｅｓｔ  ・・・（４）
【００５６】
次のステップ１８６で、ジッタ演算部３０は、次の（５）式に従って瞬時ジッタＪを演算する。（５）式において、ΔＲはステップ１８０で抽出された取得時間間隔、ΔＳｅｓｔステップ１８４で演算された送信間隔の推定値である。
Ｊ＝｜ΔＲ−ΔＳｅｓｔ｜  ・・・（５）
【００５７】
（５）式から明らかなように、瞬時ジッタＪは、パケットの送信間隔ΔＳと取得時間間隔ΔＲとの差分の絶対値であり、一例として図１４に示すように、パケット毎の伝送の遅延のばらつきを表し、通信回線の品質の指標として用いられる。
【００５８】
次のステップ１８８で、ジッタ演算部３０は、次の（６）式に従って平均ジッタＪａｖｅを演算する。（６）式において、Ｊａｖｅは前回の後述するステップ１９０で記憶部３６に記憶されたジッタ計測データ４４の平均ジッタ、Ｊはステップ１８６で演算された瞬時ジッタである。なお、本ステップ１８８を初めて実行する際は、ジッタ演算部３０は、例えば平均ジッタＪａｖｅを瞬時ジッタＪと同じ値にすればよい。また、本実施形態では、平均ジッタＪａｖｅの演算は、Request for Comments（ＲＦＣ）３５５０に記載された手法を用いているため、ここでの詳細な説明は省略する。
Ｊａｖｅ＝（１−α）Ｊａｖｅ＋αＪ  ・・・（６）
但し、α＝１／１６
【００５９】
次のステップ１９０で、ジッタ演算部３０は、ステップ１８６で演算した瞬時ジッタＪ及びステップ１８８で演算した平均ジッタＪａｖｅを、処理対象パケットのセッション番号及び取得時刻とともに、記憶部３６のジッタ計測データ４４に記憶する。一例として図１５に示すように、ジッタ計測データ４４には、瞬時ジッタＪ及び平均ジッタＪａｖｅが演算される毎に、セッション番号、取得時刻、瞬時ジッタＪ、及び平均ジッタＪａｖｅが記憶される。ステップ１９０の処理が終了すると、ジッタ算出処理を終了し、処理は図５のステップ１２４に戻る。
【００６０】
例えば、監視装置１２のユーザ（一例としてはネットワーク管理者）がジッタ情報を確認したい場合は、ユーザは監視装置１２の入出力装置６４の入力部を介してジッタ情報の出力を指示する。そこで、ステップ１２４で、受付部３２は、ジッタ情報の出力指示を受け付けたか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２８に移行し、肯定判定となった場合は、処理はステップ１２６に移行する。ステップ１２６で、図１６に示すジッタ表示処理が実行される。
【００６１】
図１６に示すジッタ表示処理のステップ２００で、出力部３４は、ユーザにジッタ情報の表示対象とする送信元ＩＰアドレス及び宛先ＩＰアドレスを入力させるＩＰアドレス入力画面を示す情報を入出力装置６４の表示部に出力する。表示部は、ＩＰアドレス入力画面を示す情報が入力されると、ＩＰアドレス入力画面を表示する。ユーザは、表示部にＩＰアドレス入力画面が表示されると、送信元ＩＰアドレス及び宛先ＩＰアドレスを入出力装置６４の入力部を介して入力する。
【００６２】
ステップ２０２で、受付部３２は、送信元ＩＰアドレス及び宛先ＩＰアドレスの受け付け待ちを行う。受付部３２が送信元ＩＰアドレス及び宛先ＩＰアドレスを受け付けるとステップ２０２が肯定判定となり、処理はステップ２０４に移行する。ステップ２０４で、出力部３４は、セッション管理テーブル３８から、送信元ＩＰアドレス及び宛先ＩＰアドレスがステップ２０２で受け付けられた送信元ＩＰアドレス及び宛先ＩＰアドレスと同じレコードを抽出する。そして、出力部３４は、抽出したレコードからユーザにジッタ情報の表示対象とするセッションを選択させるセッション選択画面を示す情報を入出力装置６４の表示部に出力する。
【００６３】
表示部は、セッション選択画面を示す情報が入力されると、セッション選択画面を表示する。ユーザは、表示部にセッション選択画面が表示されると、ジッタ情報の表示対象とするセッション番号を入出力装置６４の入力部を介して選択する。
【００６４】
ステップ２０６で、受付部３２は、セッション番号の受け付け待ちを行う。受付部３２がセッション番号を受け付けるとステップ２０６が肯定判定となり、処理はステップ２０８に移行する。ステップ２０８で、出力部３４は、ジッタ情報の表示対象とする期間をユーザに指定させる表示期間指定画面を示す情報を入出力装置６４の表示部に出力する。
【００６５】
表示部は、表示期間指定画面を示す情報が入力されると、表示期間指定画面を表示する。ユーザは、表示部に表示期間指定画面が表示されると、ジッタ情報の表示対象とする期間の開始時刻及び終了時刻を入出力装置６４の入力部を介して入力する。
【００６６】
ステップ２１０で、受付部３２は、開始時刻及び終了時刻の受け付け待ちを行う。受付部３２が開始時刻及び終了時刻を受け付けるとステップ２１０が肯定判定となり、処理はステップ２１２に移行する。ステップ２１２で、出力部３４は、ジッタ計測データ４４から、セッション番号がステップ２０６で受け付けられたセッション番号と同一で、かつ取得時刻がステップ２１０で受け付けられた開始時刻と終了時刻との間での単位時間毎の平均ジッタを抽出する。
【００６７】
次のステップ２１４で、出力部３４は、ステップ２１２で抽出した平均ジッタを時系列のグラフで表示する平均ジッタ表示画面を示す情報を入出力装置６４の表示部に出力する。表示部は、平均ジッタ表示画面を示す情報が入力されると、一例として図１７に示すように平均ジッタ表示画面５０を表示する。図１７に示すように、本実施形態に係る平均ジッタ表示画面５０では、平均ジッタが時系列のグラフで表示される。ユーザは、平均ジッタ表示画面５０に表示されたジッタの値やばらつきを見て、通信回線の品質を評価する。この評価には、例えば、パケットの取得時間間隔の標準偏差が所定値を超えている期間におけるジッタが許容範囲内か否かを判定する評価が含まれる。
【００６８】
ステップ２１４の処理が終了すると、ジッタ表示処理が終了し、処理はステップ１２８に戻る。ステップ１２８で、受付部３２は、処理の終了指示を受け付けたか否かを判定する。この判定が否定判定となった場合は、ステップ１００に戻る一方、肯定判定となった場合は、パケット監視処理を終了する。
【００６９】
以上説明したように、本実施形態によれば、複数記憶した同一セッションの特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における特定パケットの取得時間間隔に基づいて、特定パケットの送信時間間隔の推定値を演算している。また、演算した特定パケットの送信時間間隔の推定値と、特定パケットの送信時間間隔に対応する特定パケットの送信の際のクロック計数値の差と、から推定クロック周波数を演算している。そして、演算した推定クロック周波数からジッタを算出している。これにより、クロック周波数が不明な場合にもジッタを算出可能とすることができる。
【００７０】
また、本実施形態によれば、演算したジッタを表示部に出力している。これにより、ユーザが通信回線の品質を容易に把握することができる。
【００７１】
また、本実施形態によれば、複数記憶した同一セッションの特定パケットの取得時間間隔の標準偏差が所定値以下の期間における特定パケットの取得時間間隔に基づいて、特定パケットの送信時間間隔の推定値を演算している。これにより、送信時間間隔の推定値を精度良く演算することができる。
【００７２】
また、本実施形態によれば、複数記憶した特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における特定パケットの取得時間間隔の代表値（本実施形態では平均値）に基づいて、特定パケットの送信時間間隔の推定値を演算している。これにより、送信時間間隔の推定値を精度良く演算することができる。
【００７３】
なお、上記実施形態において、クロック周波数が予め規定されているペイロードタイプのパケットについては、ペイロードタイプに対応するクロック周波数を用いて、上記実施形態と同様に瞬時ジッタ及び平均ジッタを演算すればよい。
【００７４】
また、上記実施形態では、ジッタの演算対象とする通信プロトコルとして、ＲＴＰを適用した場合について説明したが、これに限定されない。例えば、ジッタの演算対象とする通信プロトコルとして、ＲＴＰ以外のクロック周波数が未規定で、かつＲＴＰのタイムスタンプと同様のクロック計数値をパケットに含む他の通信プロトコルを適用してもよい。また、この態様において、通信プロトコル自体が、クロック周波数が未規定のプロトコルである場合は、ペイロードタイプを考慮せずに識別情報毎に推定クロック周波数を演算する形態としてもよい。
【００７５】
また、上記実施形態では、平均ジッタを表示部に表示する場合について説明したが、これに限定されない。例えば、瞬時ジッタを表示部に表示する形態としてもよいし、平均ジッタ及び瞬時ジッタの双方を表示部に表示する形態としてもよい。
【００７６】
また、例えば、演算した瞬時ジッタ及び平均ジッタの少なくとも一方が所定値以上の場合に、警告を出力してもよい。この場合、警告画面を表示部に表示する形態や警告音をスピーカー等の音声再生装置から再生する形態が例示される。
【００７７】
また、上記実施形態では、所定の算出単位の倍数で、かつ取得時間間隔の平均値に最も近い値を演算することで、送信間隔の推定値を演算する場合について説明したが、これに限定されない。取得時間間隔の平均値を送信間隔の推定値とし、上記（３）式に従ってクロック周波数を演算し、演算したクロック周波数の所定の算出単位の倍数に最も近い値を演算することで、推定クロック周波数を演算する形態としてもよい。この形態例の場合、例えば、演算したクロック周波数が８０４１［Ｈｚ］で、算出単位が１００［Ｈｚ］の場合は、推定クロック周波数は８０００［Ｈｚ］と演算される。
【００７８】
また、上記実施形態では、監視装置１２の入出力装置６４の表示部に平均ジッタを出力する場合について説明したが、これに限定されない。例えば、監視装置１２と通信回線を介して接続された外部装置に平均ジッタを出力してもよい。
【００７９】
また、上記実施形態では、パケット監視プログラム７０が記憶部６３に予め記憶（インストール）されている態様を説明したが、これに限定されない。パケット監視プログラム７０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【００８０】
以上の実施形態に関し、更に以下の付記を開示する。
【００８１】
（付記１）
コンピュータに、
通信回線を伝送されるパケットを取得し、
取得した同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶し、
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算し、
演算した前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算し、
演算した前記推定クロック周波数を用いてジッタを演算する、
ことを含む処理を実行させるパケット監視プログラム、又は前記パケット監視プログラムを記憶した記憶媒体。
【００８２】
（付記２）
演算したジッタ又は該ジッタに基づく情報を出力する、
付記１記載のパケット監視プログラム。
【００８３】
（付記３）
演算したジッタ又は該ジッタに基づく情報を表示部に出力するか、又は演算したジッタが所定値以上の場合に警告を出力する、
付記２記載のパケット監視プログラム。
【００８４】
（付記４）
前記特定パケットは、クロック周波数が予め規定された第１通信モード及びクロック周波数が未規定の第２通信モードで選択的に通信可能な通信プロトコルに準拠したパケットであり、該パケットに含まれるセッションを識別する識別情報が同一かつ通信モードが前記第２通信モードのパケットである、
付記１から付記３の何れか１項記載のパケット監視プログラム。
【００８５】
（付記５）
複数記憶した前記特定パケットの取得時間間隔の標準偏差又は分散が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
付記１から付記４の何れか１項記載のパケット監視プログラム。
【００８６】
（付記６）
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔の代表値に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
付記１から付記５の何れか１項記載のパケット監視プログラム。
【００８７】
（付記７）
前記代表値として平均値、最頻値及び中央値の何れかを用いて、前記特定パケットの送信時間間隔の推定値を演算する、
付記６記載のパケット監視プログラム。
【００８８】
（付記８）
演算した前記推定クロック周波数を用いて、前記特定パケットの取得時間間隔のばらつきを表す値が所定値を超える第２期間のジッタを演算する、
付記１から付記７の何れか１項記載のパケット監視プログラム。
【００８９】
（付記９）
通信回線を伝送されるパケットを取得する取得部と、
前記取得部により取得された同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶する記憶制御部と、
前記記憶制御部により複数記憶された前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する間隔演算部と、
前記間隔演算部により演算された前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算する周波数演算部と、
前記周波数演算部により演算された推定クロック周波数を用いてジッタを演算するジッタ演算部と、
を含むパケット監視装置。
【００９０】
（付記１０）
前記ジッタ演算部により演算されたジッタ又は該ジッタに基づく情報を出力する出力部、
をさらに含む付記９記載のパケット監視装置。
【００９１】
（付記１１）
前記出力部は、前記ジッタ演算部により演算されたジッタ又は該ジッタに基づく情報を表示部に出力するか、又は前記ジッタ演算部により演算されたジッタが所定値以上の場合に警告を出力する、
付記１０記載のパケット監視装置。
【００９２】
（付記１２）
前記特定パケットは、クロック周波数が予め規定された第１通信モード及びクロック周波数が未規定の第２通信モードで選択的に通信可能な通信プロトコルに準拠したパケットであり、該パケットに含まれるセッションを識別する識別情報が同一かつ通信モードが前記第２通信モードのパケットである、
付記９から付記１１の何れか１項記載のパケット監視装置。
【００９３】
（付記１３）
前記間隔演算部は、前記記憶制御部により複数記憶された前記特定パケットの取得時間間隔の標準偏差又は分散が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
付記９から付記１２の何れか１項記載のパケット監視装置。
【００９４】
（付記１４）
前記間隔演算部は、前記記憶制御部により複数記憶された前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔の代表値に基づいて、前記特定パケットの送信時間間隔の推定値を演算する、
付記９から付記１３の何れか１項記載のパケット監視装置。
【００９５】
（付記１５）
前記間隔演算部は、前記代表値として平均値、最頻値及び中央値の何れかを用いて、前記特定パケットの送信時間間隔の推定値を演算する、
付記１４記載のパケット監視装置。
【００９６】
（付記１６）
前記ジッタ演算部は、前記周波数演算部により演算された前記推定クロック周波数を用いて、前記特定パケットの取得時間間隔のばらつきを表す値が所定値を超える第２期間のジッタを演算する、
付記９から付記１５の何れか１項記載のパケット監視装置。
【００９７】
（付記１７）
コンピュータに、
通信回線を伝送されるパケットを取得し、
取得した同一セッションのパケットであり、クロック計数値を含む特定パケットについて前回取得してからの取得時間間隔を記憶部に記憶し、
複数記憶した前記特定パケットの取得時間間隔のばらつきを表す値が所定値以下の期間における前記特定パケットの取得時間間隔に基づいて、前記特定パケットの送信時間間隔の推定値を演算し、
演算した前記特定パケットの送信時間間隔の推定値と、前記特定パケットの送信時間間隔に対応する前記特定パケットの送信の際のクロック計数値の差と、から前記特定パケットの通信に用いられるクロック周波数の推定値として推定クロック周波数を演算し、
演算した前記推定クロック周波数を用いてジッタを演算する、
ことを含む処理を実行させるパケット監視方法。
【符号の説明】
【００９８】
１２  パケット監視装置
２０  取得部
２２  解析部
２４  記憶制御部
２６  間隔演算部
２８  周波数演算部
３０  ジッタ演算部
３２  受付部
３４  出力部
３６  記憶部
３８  セッション管理テーブル
４０  パケット間隔データ
４２  クロック周波数テーブル
４４  ジッタ計測データ
５０  平均ジッタ表示画面
６０  コンピュータ
６１  ＣＰＵ
６２  メモリ
６３  記憶部
６４  入出力装置
６８  記録媒体
７０  パケット監視プログラム
【図１】
0006613974.tif 000002
【図２】
0006613974.tif 000003
【図３】
0006613974.tif 000004
【図４】
0006613974.tif 000005
【図５】
0006613974.tif 000006
【図６】
0006613974.tif 000007
【図７】
0006613974.tif 000008
【図８】
0006613974.tif 000009
【図９】
0006613974.tif 000010
【図１０】
0006613974.tif 000011
【図１１】
0006613974.tif 000012
【図１２】
0006613974.tif 000013
【図１３】
0006613974.tif 000014
【図１４】
0006613974.tif 000015
【図１５】
0006613974.tif 000016
【図１６】
0006613974.tif 000017
【図１７】
0006613974.tif 000018