(57)【要約】【課題】パケットが宛先の装置で廃棄された場合を特定すること。【解決手段】パケット解析装置１は、制御部１ａを有する。制御部１ａは、監視対象装置２と端末装置３ａ，３ｂとの間でネットワーク４を介して通信された複数のパケットを取得し、複数のパケットに基づいて、単位期間毎に、コネクション数、拒否通知数、ロス数、および応答時間を算出し、応答時間が応答時間閾値以上である第１の時間帯を特定し、第１の時間帯内の単位期間のコネクション数、拒否通知数、およびロス数に基づいて、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値以上であり、かつロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、第２の時間帯が存在する場合、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯に、監視対象装置２宛のパケットの少なくとも一部が監視対象装置２で廃棄されたと判定する。【選択図】図１
2018182594.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、
取得した前記複数のパケットに基づいて、単位期間毎に、前記単位期間内に前記監視対象装置と前記他の装置との間で確立されていたコネクションの数を示すコネクション数、前記単位期間内に前記監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、前記単位期間内に消失した前記監視対象装置宛のパケットの数を示すロス数、および前記単位期間内に前記監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、
前記単位期間毎の前記応答時間に基づいて、前記応答時間が応答時間閾値以上である第１の時間帯を特定し、
前記第１の時間帯内の前記単位期間の前記コネクション数、前記拒否通知数、および前記ロス数に基づいて、前記第１の時間帯内に、前記コネクション数がコネクション数閾値以上であり、前記拒否通知数が拒否通知数閾値以上であり、かつ前記ロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、
前記第２の時間帯が存在する場合、前記第１の時間帯内の前記ロス数が前記ロス数閾値以上である第３の時間帯に、前記監視対象装置宛のパケットの少なくとも一部が前記監視対象装置で廃棄されたと判定する、
処理を実行させるパケット解析プログラム。
【請求項２】
前記コンピュータに、さらに、
前記第１の時間帯内に前記第２の時間帯が存在する場合の前記第３の時間帯内の第１単位期間における前記ロス数を、前記第１単位期間内に通信された前記監視対象装置宛のパケット数で除算することで、前記第１単位期間内における前記監視対象装置によるパケットの廃棄割合を示す廃棄率を算出する、
処理を実行させる請求項１記載のパケット解析プログラム。
【請求項３】
前記コンピュータに、さらに、
１以上の前記第１単位期間を含む第１廃棄率比較期間内の前記廃棄率の時系列変化と、１以上の前記第１単位期間を含む、前記第１廃棄率比較期間とは異なる第２廃棄率比較期間内の前記廃棄率の時系列変化とを比較し、
比較結果を出力する、
処理を実行させる請求項２記載のパケット解析プログラム。
【請求項４】
前記コンピュータに、さらに、
前記第１の時間帯内に前記第３の時間帯が存在し、前記第２の時間帯が存在しない場合、前記第３の時間帯に前記ネットワーク上で前記監視対象装置宛のパケットが消失したと判定する、
処理を実行させる請求項１乃至３のいずれかに記載のパケット解析プログラム。
【請求項５】
前記コンピュータに、さらに、
前記第１の時間帯内に前記第２の時間帯が存在しない場合の前記第３の時間帯内の第２単位期間における前記ロス数を、前記複数のパケットの数で除算することで、前記第２単位期間における前記監視対象装置宛のパケットが消失した消失率を算出する、
処理を実行させる請求項４記載のパケット解析プログラム。
【請求項６】
前記コンピュータに、さらに、
１以上の前記第２単位期間を含む第１消失率比較期間内の前記消失率の時系列変化と、１以上の前記第２単位期間を含む、前記第１消失率比較期間とは異なる第２消失率比較期間内の前記消失率の時系列変化とを比較し、
比較した結果を出力する、
請求項５に記載のパケット解析プログラム。
【請求項７】
監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、
取得した前記複数のパケットに基づいて、単位期間毎に、前記単位期間内に前記監視対象装置と前記他の装置との間で確立されていたコネクションの数を示すコネクション数、前記単位期間内に前記監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、前記単位期間内に消失した前記監視対象装置宛のパケットの数を示すロス数、および前記単位期間内に前記監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、
前記単位期間毎の前記応答時間に基づいて、前記応答時間が応答時間閾値以上である第１の時間帯を特定し、
前記第１の時間帯内の前記単位期間の前記コネクション数、前記拒否通知数、および前記ロス数に基づいて、前記第１の時間帯内に、前記コネクション数がコネクション数閾値以上であり、前記拒否通知数が拒否通知数閾値以上であり、かつ前記ロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、
前記第２の時間帯が存在する場合、前記第１の時間帯内の前記ロス数が前記ロス数閾値以上である第３の時間帯に、前記監視対象装置宛のパケットの少なくとも一部が前記監視対象装置で廃棄されたと判定する、
制御部を有するパケット解析装置。
【請求項８】
コンピュータが、
監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、
取得した前記複数のパケットに基づいて、単位期間毎に、前記単位期間内に前記監視対象装置と前記他の装置との間で確立されていたコネクションの数を示すコネクション数、前記単位期間内に前記監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、前記単位期間内に消失した前記監視対象装置宛のパケットの数を示すロス数、および前記単位期間内に前記監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、
前記単位期間毎の前記応答時間に基づいて、前記応答時間が応答時間閾値以上である第１の時間帯を特定し、
前記第１の時間帯内の前記単位期間の前記コネクション数、前記拒否通知数、および前記ロス数に基づいて、前記第１の時間帯内に、前記コネクション数がコネクション数閾値以上であり、前記拒否通知数が拒否通知数閾値以上であり、かつ前記ロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、
前記第２の時間帯が存在する場合、前記第１の時間帯内の前記ロス数が前記ロス数閾値以上である第３の時間帯に、前記監視対象装置宛のパケットの少なくとも一部が前記監視対象装置で廃棄されたと判定する、
パケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット解析プログラム、パケット解析装置およびパケット解析方法に関する。
【背景技術】
【０００２】
コンピュータネットワークでは、ネットワークを介して複数の装置を接続することができる。複数の装置がネットワークを介して通信を行うためのプロトコルとして、例えばＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）がある。複数の装置は、ＴＣＰ／ＩＰを用いてパケット化したデータの送受信を行う。
【０００３】
ネットワークを介してサービスを提供する運用者は、異常発生時の要因切り分けを迅速にするために、ネットワークの通信品質を監視する。例えば運用者は、パケット解析装置により、ネットワーク上に存在するパケットを収集し、収集したパケットに示される送受信のシーケンス番号を解析する。送受信のシーケンス番号を解析することで、例えばトラブル事象発生時の対処すべき対象の切り分けを行うことができる。
【０００４】
ネットワーク上のパケットを用いた解析技術としては、例えば、パケット解析装置が、通信パケットを収集し、未到着パケットデータ量とラウンドトリップ時間の増加特性により、収集したパケットが無線区間を含む通信のパケットであると判定する技術がある。また、例えば、監視装置が、送受信パケットを監視し、送受信ノード間におけるパケットの損失状況を監視する技術も提案されている。さらに、監視装置が対象装置に入出力するメッセージのトラフィック情報に基づいて対象装置が特定の状態に変化したことを検知する技術も提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１９５５１１号公報
【特許文献２】特開２０１４−４９８２０号公報
【特許文献３】国際公開第２０１５／１８２６２９号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
パケット解析による評価対象の１つに、パケットロス率がある。パケットロス率は、送信されたパケットのうち、ロスが発生したパケットの割合である。パケットのロスの発生状況としては、パケットがネットワーク上で消失してしまった場合とパケットが宛先の装置で廃棄された場合とがある。パケットのロスが発生した場合の対処方法は、パケットがネットワーク上で消失してしまった場合とパケットが宛先の装置で廃棄された場合とで異なる。
【０００７】
しかし、従来のパケット解析技術では、パケットがネットワーク上で消失してしまった場合とパケットが宛先の装置で廃棄された場合との何れの場合かを区別できない。そのため、パケットのロスが発生した場合の対処方法を正しく判断するのが困難である。
【０００８】
１つの側面では、本発明は、パケットが宛先の装置で廃棄されたことを検出することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、パケット解析プログラムが提供される。このパケット解析プログラムは、コンピュータに、監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置と他の装置との間で確立されていたコネクションの数を示すコネクション数、単位期間内に監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、単位期間内に消失した監視対象装置宛のパケットの数を示すロス数、および単位期間内に監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、単位期間毎の応答時間に基づいて、応答時間が応答時間閾値以上である第１の時間帯を特定し、第１の時間帯内の単位期間のコネクション数、拒否通知数、およびロス数に基づいて、第１の時間帯内に、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値以上であり、かつロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、第２の時間帯が存在する場合、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯に、監視対象装置宛のパケットの少なくとも一部が監視対象装置で廃棄されたと判定する、処理を実行させる。
【００１０】
また、１つの態様では、パケット解析装置が提供される。このパケット解析装置は、制御部を有する。制御部は、監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置と他の装置との間で確立されていたコネクションの数を示すコネクション数、単位期間内に監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、単位期間内に消失した監視対象装置宛のパケットの数を示すロス数、および単位期間内に監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、単位期間毎の応答時間に基づいて、応答時間が応答時間閾値以上である第１の時間帯を特定し、第１の時間帯内の単位期間のコネクション数、拒否通知数、およびロス数に基づいて、第１の時間帯内に、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値以上であり、かつロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、第２の時間帯が存在する場合、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯に、監視対象装置宛のパケットの少なくとも一部が監視対象装置で廃棄されたと判定する。
【００１１】
また、１つの態様では、パケット解析方法が提供される。このパケット解析方法は、コンピュータが、監視対象装置と他の装置との間でネットワークを介して通信された複数のパケットを取得し、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置と他の装置との間で確立されていたコネクションの数を示すコネクション数、単位期間内に監視対象装置がコネクションの接続拒否を通知した回数を示す拒否通知数、単位期間内に消失した監視対象装置宛のパケットの数を示すロス数、および単位期間内に監視対象装置に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出し、単位期間毎の応答時間に基づいて、応答時間が応答時間閾値以上である第１の時間帯を特定し、第１の時間帯内の単位期間のコネクション数、拒否通知数、およびロス数に基づいて、第１の時間帯内に、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値以上であり、かつロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定し、第２の時間帯が存在する場合、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯に、監視対象装置宛のパケットの少なくとも一部が監視対象装置で廃棄されたと判定する。
【発明の効果】
【００１２】
１つの側面では、パケットが宛先の装置で廃棄されたことを検出できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態のパケット解析装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】解析装置のハードウェア例を示す図である。
【図４】サーバとクライアントとの間のパケットの送受信の例を示す図である。
【図５】解析装置の機能例を示す図である。
【図６】パケット数テーブルの例を示す図である。
【図７】ＳＹＮテーブルの例を示す図である。
【図８】ＲＳＴテーブルの例を示す図である。
【図９】ロステーブルの例を示す図である。
【図１０】コネクションテーブルの例を示す図である。
【図１１】応答時間テーブルの例を示す図である。
【図１２】ロス判定テーブルの例を示す図である。
【図１３】判定結果テーブルの例を示す図である。
【図１４】消失率テーブルの例を示す図である。
【図１５】無視率テーブルの例を示す図である。
【図１６】遅延区間の例を示す図である。
【図１７】ＲＳＴ増大区間の例を示す図である。
【図１８】パケット取得時の処理の例を示すフローチャートである。
【図１９】応答時間などの算出処理の例を示すフローチャートである。
【図２０】判定処理の例を示すフローチャート（その１）である。
【図２１】判定処理の例を示すフローチャート（その２）である。
【図２２】ロスの原因を他の方法で特定する場合を説明するための図である。
【図２３】消失率履歴テーブルの例を示す図である。
【図２４】無視率履歴テーブルの例を示す図である。
【図２５】出力処理の例を示すフローチャート（その１）である。
【図２６】出力処理の例を示すフローチャート（その２）である。
【図２７】消失率のグラフの例を示す図である。
【図２８】無視率のグラフの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のパケット解析装置を示す図である。パケット解析装置１は、制御部１ａを有する。制御部１ａは、例えば、プロセッサである。プロセッサには、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。また、制御部１ａは、マルチプロセッサであってもよい。
【００１５】
制御部１ａは、監視対象装置２と端末装置３ａ，３ｂとの間でネットワーク４を介して通信された複数のパケットを取得する。
制御部１ａは、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置２と端末装置３ａ，３ｂとの間で確立されていたコネクションの数を示すコネクション数を算出する。例えば、単位期間は、１分間である。例えば、制御部１ａは、期間Ｔ１に監視対象装置２と端末装置３ａ，３ｂとの間で確立されていたコネクション数を算出する。また、制御部１ａは、期間Ｔ２に監視対象装置２と端末装置３ａ，３ｂとの間で確立されていたコネクション数を算出する。ここで、単位期間が１分間の場合、例えば、期間Ｔ１は、“９：００：００”〜“９：００：５９”である。そして、期間Ｔ２は、“９：０１：００”〜“９：０１：５９”である。このように、制御部１ａは、連続する各単位期間のコネクション数を算出する。
【００１６】
制御部１ａは、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置２がコネクションの接続拒否を通知した回数を示す拒否通知数を算出する。例えば、拒否通知数は、監視対象装置２が送信するＲＳＴ（reset）パケット数である。
【００１７】
制御部１ａは、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に消失した監視対象装置２宛のパケットの数を示すロス数を算出する。例えば、制御部１ａは、次のようにして監視対象装置２宛のパケットがロスしたことを検出する。制御部１ａは、監視対象装置２宛のパケットの再送信を検出したとき、前回、監視対象装置２宛に送信されたパケットがロスしたことを検出する。または、制御部１ａは、取得したパケットのヘッダに含まれるシーケンス番号を参照する。制御部１ａは、所定のシーケンス番号のはずが異なるシーケンス番号であることを検出した場合、当該所定のシーケンス番号のパケットがロスしていることを検出する。すなわち、制御部１ａは、シーケンス番号が抜け落ちていることを検出した場合、パケットのロスを検出する。制御部１ａは、パケットのロスを検出した場合、パケットのロスを検出した単位期間に対応するロス数をインクリメントする。また、監視対象装置２宛のパケットがロスする場合とは、ネットワーク４上でパケットが消失する場合と監視対象装置２でパケットが廃棄される場合を含む。
【００１８】
制御部１ａは、取得した複数のパケットに基づいて、単位期間毎に、単位期間内に監視対象装置２に送信された要求に対して応答が送信されるまでの時間を示す応答時間を算出する。例えば、応答時間は、ラウンドトリップ時間である。例えば、応答時間は、端末装置３ａまたは端末装置３ｂが送信したパケットを制御部１ａが取得した時点と、監視対象装置２が送信した確認応答を制御部１ａが取得した時点との間の時間間隔として算出される。
【００１９】
制御部１ａは、単位期間毎の応答時間に基づいて、応答時間が応答時間閾値以上である第１の時間帯を特定する。例えば、制御部１ａは、各単位期間（期間Ｔ１〜Ｔ８）のうち、応答時間が応答時間閾値以上である第１の時間帯（期間Ｔ２〜Ｔ７）を特定する。表５では、第１の時間帯を遅延区間と表現している。表５では、遅延区間に属することを“１”、遅延区間に属さないことを“０”で表している。
【００２０】
制御部１ａは、第１の時間帯（遅延区間）内で、コネクション数がコネクション数閾値以上の期間を検索する。制御部１ａは、期間Ｔ３〜Ｔ７を特定する。表５では、コネクション数がコネクション数閾値以上であることを“１”、コネクション数がコネクション数閾値未満であることを“０”で表している。
【００２１】
制御部１ａは、第１の時間帯（遅延区間）内で、拒否通知数が拒否通知数閾値以上の期間を検索する。制御部１ａは、期間Ｔ３，Ｔ４を特定する。表５では、拒否通知数が拒否通知数閾値以上であることを“１”、拒否通知数が拒否通知数閾値未満であることを“０”で表している。
【００２２】
制御部１ａは、第１の時間帯（遅延区間）内で、ロス数がロス数閾値以上の期間を検索する。制御部１ａは、期間Ｔ４〜Ｔ６を特定する。表５では、ロス数がロス数閾値以上であることを“１”、ロス数がロス数閾値未満であることを“０”で表している。
【００２３】
制御部１ａは、第１の時間帯内に、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値以上であり、かつロス数がロス数閾値以上である第２の時間帯が存在するか否かを判定する。制御部１ａは、第２の時間帯である期間Ｔ４が存在すると判定する。
【００２４】
制御部１ａは、第２の時間帯が存在する場合、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯に、監視対象装置２宛のパケットの少なくとも一部が監視対象装置２で廃棄されたと判定する。例えば、制御部１ａは、第１の時間帯内のロス数がロス数閾値以上である第３の時間帯（期間Ｔ４〜Ｔ６）に、監視対象装置２宛のパケットの少なくとも一部が監視対象装置２で廃棄されたと判定する。
【００２５】
これにより、パケット解析装置１は、第３の時間帯（期間Ｔ４〜Ｔ６）にロスと判定されたパケットが監視対象装置２で廃棄されたことを特定できる。よって、第１の実施の形態によれば、パケット解析装置１は、パケットが宛先の装置で廃棄されたことを検出できる。
【００２６】
パケット解析装置１は、第３の時間帯（時刻Ｔ４〜Ｔ６）に、監視対象装置２がパケットを廃棄していることを監視対象装置２の運用者に提供する。例えば、パケット解析装置１は、第３の時間帯（時刻Ｔ４〜Ｔ６）に監視対象装置２がパケットを廃棄していることを監視対象装置２に通知する。これにより、監視対象装置２の運用者は、監視対象装置２の運用者が対処すべきロスが発生したと把握する。例えば、監視対象装置２の過負荷により発生する「コネクション過多」によってパケットが無視されているのであれば、監視対象装置２の運用者は、スケールアウトなどによって処理を分散させるなどの対処を行う。
【００２７】
また、制御部１ａは、ロス数がロス数閾値以上であり、コネクション数がコネクション数閾値未満であり、拒否通知数が拒否通知数閾値未満である場合、第３の時間帯（期間Ｔ４〜Ｔ６）にロスと判定されたパケットがネットワーク４上で消失したと判定する。または、制御部１ａは、ロス数がロス数閾値以上であり、コネクション数がコネクション数閾値以上であり、拒否通知数が拒否通知数閾値未満の場合、第３の時間帯（期間Ｔ４〜Ｔ６）にロスと判定されたパケットがネットワーク４上で消失したと判定する。または、制御部１ａは、ロス数がロス数閾値以上であり、コネクション数がコネクション数閾値未満であり、拒否通知数が拒否通知数閾値以上の場合、第３の時間帯（期間Ｔ４〜Ｔ６）にロスと判定されたパケットがネットワーク４上で消失したと判定する。これにより、パケット解析装置１は、第３の時間帯（期間Ｔ４〜Ｔ６）にロスと判定されたパケットがネットワーク４上で消失したことを特定できる。
【００２８】
パケット解析装置１は、第３の時間帯（時刻Ｔ４〜Ｔ６）に、パケットがネットワーク４上で消失したことをネットワーク運用者に提供する。例えば、パケット解析装置１は、第３の時間帯（時刻Ｔ４〜Ｔ６）にパケットがネットワーク４上で消失したことをネットワーク運用者が使用する装置（図を省略）に通知する。これにより、ネットワーク運用者は、ネットワーク運用者が対処すべきロスが発生したと把握する。例えば、ネットワークの運用者は、ネットワークの帯域幅を増大させるなどの対処を行う。
【００２９】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。情報処理システムは、解析装置１００、サーバ２００ａ，２００ｂおよびクライアント３００ａ，３００ｂを含む。サーバ２００ａ，２００ｂおよびクライアント３００ａ，３００ｂは、互いにネットワーク４００を介して接続されている。例えば、ネットワーク４００は、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークでもよい。
【００３０】
解析装置１００は、サーバ２００ａとクライアント３００ａ，３００ｂとの間で送受信されるパケットを取得する。例えば、解析装置１００は、サーバ２００ａとクライアント３００ａ，３００ｂとの通信を中継するスイッチ（図示せず）のミラーリングポートに接続されている。スイッチは、サーバ２００ａとクライアント３００ａ，３００ｂとの間で通信されるパケットの複製を、ミラーリングポートから出力する。解析装置１００は、スイッチのミラーリングポートから出力されたパケットを受信する。解析装置１００は、取得したパケットを解析する。また、サーバ２００ａとクライアント３００ａ，３００ｂとの間にタップが設置されてもよい。タップは、パケットを中継するとともに中継するパケットを複製して解析装置１００に送信する。解析装置１００は、複製したパケットを解析する。
【００３１】
解析装置１００は、サーバ２００ｂとクライアント３００ａ，３００ｂとの間で送受信されるパケットを取得する。例えば、解析装置１００は、サーバ２００ｂとクライアント３００ａ，３００ｂとの通信を中継するスイッチ（図示せず）のミラーリングポートに接続されており、そのスイッチのミラーリングポートから出力されたパケットを受信する。解析装置１００は、取得したパケットを解析する。また、サーバ２００ｂとクライアント３００ａ，３００ｂとの間にタップが設置されてもよい。タップは、パケットを中継するとともに中継するパケットを複製して解析装置１００に送信する。解析装置１００は、複製したパケットを解析する。
【００３２】
また、クライアント３００ａ，３００ｂの他に多数のクライアントが、ネットワーク４００を介してサーバ２００ａ，２００ｂに接続されている。図２では、当該多数のクライアントの図示が省略されている。解析装置１００は、サーバ２００ａと当該多数のクライアントとの間で送受信されるパケットを解析する。また、解析装置１００は、サーバ２００ｂと当該多数のクライアントとの間で送受信されるパケットを解析する。
【００３３】
次に、解析装置１００のハードウェアについて説明する。
図３は、解析装置のハードウェア例を示す図である。解析装置１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６および通信インタフェース１０７ａ，１０７ｂを有する。各ユニットが解析装置１００のバスに接続されている。
【００３４】
プロセッサ１０１は、解析装置１００全体を制御する。プロセッサ１０１は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。また、プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００３５】
ＲＡＭ１０２は、解析装置１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００３６】
ＨＤＤ１０３は、解析装置１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。解析装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００３７】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、解析装置１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（Electro-Luminescence）ディスプレイなど各種のディスプレイを用いることができる。
【００３８】
入力信号処理部１０５は、解析装置１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。解析装置１００には、複数の種類の入力デバイスが接続されてもよい。
【００３９】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４０】
通信インタフェース１０７ａは、サーバ２００ａ、クライアント３００ａ，３００ｂと通信を行う。通信インタフェース１０７ｂは、サーバ２００ｂ、クライアント３００ａ，３００ｂと通信を行う。
【００４１】
なお、サーバ２００ａ，２００ｂおよびクライアント３００ａ，３００ｂも解析装置１００と同様のハードウェアにより実現できる。
次に、サーバとクライアントとの間のパケットの送受信について説明する。
【００４２】
図４は、サーバとクライアントとの間のパケットの送受信の例を示す図である。以下、図４に示す処理をステップ番号に沿って説明する。
（ＳＴ１０１）クライアント３００ａは、ＳＹＮ（SYNchronize）パケットをサーバ２００ａに送信する。
【００４３】
（ＳＴ１０２）サーバ２００ａは、ＳＹＮ／ＡＣＫ（ACKnowledgement）パケットをクライアント３００ａに送信する。
（ＳＴ１０３）クライアント３００ａは、ＡＣＫパケットをサーバ２００ａに送信する。
【００４４】
（ＳＴ１０４）サーバ２００ａは、サーバ２００ａの負荷が増大しており、クライアント３００ａからの要求に応じることができないため、ＲＳＴパケット（以下、ＲＳＴ）をクライアント３００ａに送信する。
【００４５】
（ＳＴ１０５）クライアント３００ａは、ＳＹＮパケットをサーバ２００ａに送信する。サーバ２００ａは、サーバ２００ａで負荷が高い状態が継続しているため、ＳＹＮパケットに応じることができない。そこで、サーバ２００ａは、ＳＹＮパケットを廃棄する。
【００４６】
（ＳＴ１０６）クライアント３００ａは、ＳＹＮパケットに対する応答をサーバ２００ａから受信していないため、ＳＹＮパケットをサーバ２００ａに再送信する。サーバ２００ａは、サーバ２００ａで負荷が高い状態が継続しているため、ＳＹＮパケットに応じることができない。そこで、サーバ２００ａは、ＳＹＮパケットを廃棄する。
【００４７】
図４では、サーバ２００ａとクライアント３００ａとの間のパケットの送受信について例示した。しかし、図４の例は、サーバ２００ａとクライアント３００ｂとの間でも起こり得る。また、図４の例は、サーバ２００ｂとクライアント３００ａ，３００ｂとの間でも起こり得る。
【００４８】
ところで、解析装置１００は、パケットキャプチャによりＳＹＮパケットのロスを検出できる。例えば、解析装置１００は、クライアント３００ａからＳＹＮパケットが再送信されたことを検出したときに、クライアント３００ａが前回送信したＳＹＮパケットがロスしたことを検出する。また、例えば、解析装置１００は、取得したパケットのヘッダに含まれるシーケンス番号を参照する。解析装置１００は、所定のシーケンス番号のはずが異なるシーケンス番号であることを検出した場合、当該所定のシーケンス番号のパケットがロスしていることを検出する。
【００４９】
ＳＹＮパケットがロスする場合とは、ＳＹＮパケットがネットワーク４００上で消失した場合とＳＹＮパケットが宛先のサーバで廃棄された場合との何れかが考えられる。例えば、ＳＹＮパケットが宛先のサーバで廃棄された場合とは、ステップＳＴ１０５，１０６でＳＹＮパケットがサーバ２００ａで廃棄される場合である。
【００５０】
解析装置１００は、ロスしたＳＹＮパケットがネットワーク４００上で消失したのか、または宛先のサーバで廃棄されたのかを特定する。以下、解析装置１００がロスしたＳＹＮパケットがネットワーク４００上で消失したのか、または宛先のサーバで廃棄されたのかを特定することについて説明する。
【００５１】
また、ＳＹＮパケットがネットワーク４００上で消失した場合と宛先のサーバで廃棄された場合の何れかを特定できていないときは、ＳＹＮパケットが“ロス”したと表現する。ＳＹＮパケットがネットワーク４００上で消失した場合を特定したときは、ＳＹＮパケットが“消失”したと表現する。ＳＹＮパケットが宛先のサーバで廃棄された場合を特定したときは、ＳＹＮパケットが“無視”されたと表現する。
【００５２】
次に、解析装置１００が有する機能について説明する。
図５は、解析装置の機能例を示す図である。解析装置１００は、記憶部１１０、解析部１３０、ロス原因判定部１４０、出力部１５０を有する。
【００５３】
記憶部１１０は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実装される。記憶部１１０は、パケット数テーブル、ＳＹＮテーブル、ＲＳＴテーブル、ロステーブル、コネクションテーブル、応答時間テーブル、ロス判定テーブル、判定結果テーブル、消失率テーブル、無視率テーブルを記憶する。また、記憶部１１０は、消失率履歴テーブル、無視率履歴テーブルを記憶する。記憶部１１０が記憶する各テーブルについては、後で詳細に説明する。
【００５４】
解析部１３０、ロス原因判定部１４０、出力部１５０は、例えば、プロセッサ１０１が実行するプログラムのモジュールとして実装される。
解析部１３０は、サーバ２００ａ，２００ｂとクライアント３００ａ，３００ｂとの間で送受信されるパケットを取得する。解析部１３０は、取得したパケットを解析する。
【００５５】
ロス原因判定部１４０は、ＳＹＮパケットがネットワーク４００上で消失している場合を特定する。ロス原因判定部１４０は、ＳＹＮパケットがサーバ２００ａまたはサーバ２００ｂで無視された場合を特定する。ＳＹＮパケットの消失および無視の特定については、後で詳細に説明する。
【００５６】
出力部１５０は、消失率テーブル、消失率履歴テーブルを用いて、ＳＹＮパケットがネットワーク４００で消失している傾向を運用者に提供する。出力部１５０は、無視率テーブル、無視率履歴テーブルを用いて、ＳＹＮパケットがサーバ２００ａまたはサーバ２００ｂで無視されている傾向を運用者に提供する。
【００５７】
次に、記憶部１１０に格納される情報について説明する。
図６は、パケット数テーブルの例を示す図である。パケット数テーブル１１１は、記憶部１１０に格納される。パケット数テーブル１１１は、サーバＩＰ、サーバポート、クライアントＩＰ、クライアントポート、送受信、時刻とパケット数の項目を含む。
【００５８】
サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。クライアントＩＰの項目は、クライアントに割り当てられたＩＰアドレスを示す。クライアントポートの項目は、ポート番号を示す。送受信の項目は、送信または受信の何れかを示す。時刻とパケット数の項目は、解析部１３０が各時刻の単位期間（図６の例では１分）に取得したパケット数を示す。
【００５９】
ここで、サーバ２００ａに割り当てられたＩＰアドレスを“１０．０．０．１”とする。サーバ２００ｂに割り当てられたＩＰアドレスを“１０．０．０．２”とする。クライアント３００ａに割り当てられたＩＰアドレスを“１０．０．１．１”とする。クライアント３００ｂに割り当てられたＩＰアドレスを“１０．０．１．２”とする。
【００６０】
例えば、パケット数テーブル１１１は、サーバＩＰが“１０．０．０．１”、サーバポートが“８０”、クライアントが“１０．０．１．１”、クライアントポートが“１０００”、送受信が“送信”、“９：０６”のパケット数が“１００”を示す。これは、サーバ２００ａが送信したパケットがクライアント３００ａに受信されることを示す。また、解析部１３０が“９：０６”の期間（“９：０６：００”〜“９：０６：５９”）に、サーバ２００ａが送信したパケットを“１００”個取得したことを示す。
【００６１】
図７は、ＳＹＮテーブルの例を示す図である。ＳＹＮテーブル１１２は、記憶部１１０に格納される。ＳＹＮテーブル１１２は、サーバＩＰ、サーバポート、時刻とＳＹＮパケット数の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻とＳＹＮパケット数の項目は、解析部１３０が各時刻の単位期間に取得したＳＹＮパケット数を示す。
【００６２】
例えば、ＳＹＮテーブル１１２は、サーバＩＰが“１０．０．０．１”、サーバポートが“８０”、“９：０４”のＳＹＮパケット数が“４０”を示す。これは、解析部１３０が“９：０４”の期間に、サーバ２００ａ宛のＳＹＮパケットを“４０”個取得したことを示す。
【００６３】
図８は、ＲＳＴテーブルの例を示す図である。ＲＳＴテーブル１１３は、記憶部１１０に格納される。ＲＳＴテーブル１１３は、サーバＩＰ、サーバポート、時刻とＲＳＴ数の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻とＲＳＴ数の項目は、解析部１３０が各時刻の単位期間に取得したＲＳＴ数を示す。
【００６４】
例えば、ＲＳＴテーブル１１３は、サーバＩＰが“１０．０．０．２”、サーバポートが“８０”、“９：０５”のＲＳＴ数が“３０”を示す。これは、解析部１３０が“９：０５”の期間に、サーバ２００ｂが送信したＲＳＴを“３０”個取得したことを示す。
【００６５】
図９は、ロステーブルの例を示す図である。ロステーブル１１４は、記憶部１１０に格納される。ロステーブル１１４は、サーバＩＰ、サーバポート、時刻とロス数の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻とロス数の項目は、解析部１３０が各時刻の単位期間にロスと判断したＳＹＮパケット数を示す。
【００６６】
例えば、ロステーブル１１４は、サーバＩＰが“１０．０．０．１”、サーバポートが“８０”、“９：０５”のロス数が“３０”を示す。これは、解析部１３０が“９：０５”の期間に、サーバ２００ａ宛でロスと判断したＳＹＮパケット数が“３０”であることを示す。
【００６７】
図１０は、コネクションテーブルの例を示す図である。コネクションテーブル１１５は、記憶部１１０に格納される。コネクションテーブル１１５は、サーバＩＰ、時刻とコネクション数の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。時刻とコネクション数の項目は、各時刻の単位期間（図１０の例では１分）に確立されていたコネクション数を示す。このコネクション数には、例えば単位期間の開始時にすでに確立していたコネクション数と、単位期間内に新たに確立したコネクション数とが含まれる。なお、個々のコネクションは、サーバＩＰ、サーバポート、クライアントＩＰ、クライアントポートの組み合わせで識別される。
【００６８】
例えば、コネクションテーブル１１５は、サーバＩＰが“１０．０．０．１”、“９：０３”のコネクション数が“１０”を示す。これは、“９：０３”の期間に、サーバ２００ａで確立されていたコネクション数が“１０”であることを示す。
【００６９】
図１１は、応答時間テーブルの例を示す図である。応答時間テーブル１１６は、記憶部１１０に格納される。応答時間テーブル１１６は、時刻、サーバＩＰ、サーバポート、クライアントＩＰ、クライアントポート、応答時間の項目を含む。
【００７０】
時刻の項目は、時刻を示す。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。クライアントＩＰの項目は、クライアントに割り当てられたＩＰアドレスを示す。クライアントポートの項目は、ポート番号を示す。応答時間の項目は、クライアントからサーバへの要求ごとのラウンドトリップ時間を示す。以下、ラウンドトリップ時間を応答時間と表現する。
【００７１】
例えば、応答時間テーブル１１６は、時刻が“９：１０”、サーバＩＰが“１０．０．０．１”、サーバポートが“８０”、クライアントＩＰが“１０．０．１．１”、クライアントポートが“１０００”、応答時間が“１００ｍ秒”を示す。これは、“９：１０”の期間に、クライアント３００ａが送信したパケットを解析部１３０が取得した時点と、サーバ２００ａが送信した当該パケットに対する応答を解析装置１００が取得した時点との間の時間間隔が“１００ｍ秒”であることを示す。
【００７２】
図１２は、ロス判定テーブルの例を示す図である。ロス判定テーブル１１７は、記憶部１１０に格納される。ロス判定テーブル１１７は、サーバＩＰ、時刻、遅延区間、コネクション増大区間、ＲＳＴ増大区間、ロス増大区間の項目を含む。
【００７３】
サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。時刻の項目は、時刻を示す。遅延区間の項目は、“１”（遅延区間である）、“０”（遅延区間でない）の何れかを示す。例えば、サーバＩＰ“１０．０．０．１”のレコードは、“９：０１”から“９：１０”までが遅延区間であることを示す。
【００７４】
コネクション増大区間の項目は、“１”（コネクション数が増大している）、“０”（コネクション数が増大していない）の何れかを示す。例えば、サーバＩＰ“１０．０．０．１”のレコードは、“９：０２”から“９：１０”までがコネクション数が増大していることを示す。
【００７５】
ＲＳＴ増大区間の項目は、“１”（ＲＳＴ数が増大している）、“０”（ＲＳＴ数が増大していない）の何れかを示す。例えば、サーバＩＰ“１０．０．０．２”のレコードは、“９：０２”から“９：０５”までがＲＳＴ数が増大していることを示す。
【００７６】
ロス増大区間の項目は、“１”（ＳＹＮパケットがロスと判断されたロス数が増大している）、“０”（ロス数が増大していない）の何れかを示す。例えば、サーバＩＰ“１０．０．０．１”のレコードは、“９：０５”から“９：０９”までがＳＹＮパケットがロスと判断されたロス数が増大していることを示す。
【００７７】
また、ロス判定テーブル１１７は、サーバポートの項目を含んでもよい。例えば、ロス判定テーブル１１７は、サーバＩＰ“１０．０．０．１”とサーバポート“８０”との対応関係を示す。
【００７８】
図１３は、判定結果テーブルの例を示す図である。判定結果テーブル１１８は、記憶部１１０に格納される。判定結果テーブル１１８は、サーバＩＰ、時刻と判定結果の項目を含む。
【００７９】
サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。時刻と判定結果の項目は、“消失”または“無視”の何れかを示す。
例えば、判定結果テーブル１１８は、“９：０５”から“９：０９”の間に、サーバ２００ａ宛に送信されたＳＹＮパケットがネットワーク４００上で消失していることを示す。また、例えば、判定結果テーブル１１８は、“９：０５”から“９：０９”の間に、サーバ２００ｂ宛に送信されたＳＹＮパケットがサーバ２００ｂで無視されていることを示す。
【００８０】
また、判定結果テーブル１１８は、サーバポートの項目を含んでもよい。例えば、判定結果テーブル１１８は、サーバＩＰ“１０．０．０．１”とサーバポート“８０”との対応関係を示す。
【００８１】
図１４は、消失率テーブルの例を示す図である。消失率テーブル１１９は、記憶部１１０に格納される。消失率テーブル１１９は、サーバＩＰ、サーバポート、時刻と消失率の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻と消失率の項目は、各時刻の単位期間に消失と判断されたＳＹＮパケット数の割合を示す。
【００８２】
図１５は、無視率テーブルの例を示す図である。無視率テーブル１２０は、記憶部１１０に格納される。無視率テーブル１２０は、サーバＩＰ、サーバポート、時刻と無視率の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻と無視率の項目は、各時刻の単位期間に無視と判断されたＳＹＮパケット数の割合を示す。
【００８３】
次に、遅延区間の特定について、説明する。
図１６は、遅延区間の例を示す図である。図１６のグラフの縦軸は、応答時間を示す。図１６のグラフの横軸は、解析装置１００がパケットキャプチャを実行している時間を示す。ロス原因判定部１４０は、応答時間テーブル１１６を参照し、単位期間（例えば１分）ごとの代表平均の応答時間が閾値以上の期間を遅延区間として特定する。なお、閾値は、記憶部１１０に格納される。また、閾値は、過去の応答時間に基づいて決定されてもよい。
【００８４】
図１６は、“９：０１”から“９：１０”までの時間帯が遅延区間であることを示している。また、図１６は、閾値未満の区間が平常区間であることを示す。ロス原因判定部１４０は、応答時間が閾値以上の時間帯が遅延区間に属することをロス判定テーブル１１７に登録する。
【００８５】
次に、ＲＳＴ増大区間の特定について、説明する。
図１７は、ＲＳＴ増大区間の例を示す図である。図１７のグラフの縦軸は、ＲＳＴ数を示す。図１７のグラフの横軸は、ロス原因判定部１４０がパケットキャプチャを実行している時間を示す。ロス原因判定部１４０は、遅延区間の中からＲＳＴ増大区間を特定する。遅延区間は、図１６のように特定される。ロス原因判定部１４０は、ＲＳＴテーブル１１３を参照し、ＲＳＴ数が閾値以上の時間帯をＲＳＴ増大区間として特定する。なお、閾値は、記憶部１１０に格納される。また、閾値は、平常区間のＲＳＴ数の９５パーセンタイル値であってもよい。
【００８６】
図１７は、遅延区間の中でＲＳＴ数が閾値以上の時間帯がＲＳＴ増大区間であることを示している。ロス原因判定部１４０は、ＲＳＴ数が閾値以上の時間帯がＲＳＴ増大区間に属することをロス判定テーブル１１７に登録する。
【００８７】
また、ロス原因判定部１４０は、同様に、コネクションテーブル１１５を参照し、コネクション数が閾値以上の時間帯をコネクション増大区間として特定する。なお、閾値は、記憶部１１０に格納される。ロス原因判定部１４０は、コネクション数が閾値以上の時間帯がコネクション増大区間に属することをロス判定テーブル１１７に登録する。ロス原因判定部１４０は、同様に、ロステーブル１１４を参照し、ロス数が閾値以上の時間帯をロス増大区間として特定する。なお、閾値は、記憶部１１０に格納される。ロス原因判定部１４０は、ロス数が閾値以上の時間帯がロス増大区間に属することをロス判定テーブル１１７に登録する。
【００８８】
次に、解析装置１００で実行される処理について、フローチャートを用いて説明する。
図１８は、パケット取得時の処理の例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【００８９】
（Ｓ１１）解析部１３０は、サーバ２００ａ，２００ｂとクライアント３００ａ，３００ｂとの間で送受信されるパケットを取得する。
（Ｓ１２）解析部１３０は、取得したパケットを解析する。例えば、解析部１３０は、パケットのヘッダを参照し、送信元および宛先を特定する。解析部１３０は、パケット数テーブル１１１を参照し、パケットを取得した時刻に、特定した送信元から宛先にパケットが送信されたことを登録する。すなわち、解析部１３０は、特定した送信元および宛先と、パケットを取得した時刻とが対応するパケット数をインクリメントする。
【００９０】
解析部１３０は、パケットのヘッダを参照し、パケットがＳＹＮ、ＲＳＴのいずれであるかを解析する。解析部１３０は、パケットがＳＹＮの場合、ＳＹＮテーブル１１２を参照し、宛先のサーバとパケットを取得した時刻とが対応するＳＹＮパケット数をインクリメントする。解析部１３０は、パケットがＲＳＴの場合、ＲＳＴテーブル１１３を参照し、送信元のサーバとパケットを取得した時刻とが対応するＲＳＴ数をインクリメントする。
【００９１】
（Ｓ１３）解析部１３０は、ＳＹＮパケットの場合、サーバとクライアントとの間で送受信されるパケットの履歴と、ＳＹＮパケットのヘッダに含まれるシーケンス番号とに基づいて、ＳＹＮパケットが再送信されたパケットであるか否かを判定する。解析部１３０は、再送信されたパケットであると判定した場合、ＳＹＮパケットがロスしていると判断する。また、解析部１３０は、ＳＹＮパケットのヘッダに含まれるシーケンス番号を参照する。ＳＹＮパケットは、所定のシーケンス番号のはずが異なるシーケンス番号であることを検出した場合、当該所定のシーケンス番号のＳＹＮパケットがロスしていることを検出してもよい。
【００９２】
解析部１３０は、ＳＹＮパケットのロスを検出したか否かを判定する。ロスを検出した場合、解析部１３０は、処理をステップＳ１４に進める。ロスを検出していない場合、解析部１３０は、処理を終了する。
【００９３】
（Ｓ１４）解析部１３０は、ロステーブル１１４を参照し、宛先のサーバとＳＹＮパケットを取得した時刻とが対応するＳＹＮパケット数をインクリメントする。
図１９は、応答時間などの算出処理の例を示すフローチャートである。図１９は、例えば、１分間隔で実行される。以下、図１９に示す処理をステップ番号に沿って説明する。
【００９４】
（Ｓ２１）解析部１３０は、パケット数テーブル１１１を参照し、直前の１分間に、サーバ２００ａ，２００ｂで確立されていたコネクション数をコネクションテーブル１１５に登録する。例えば、解析部１３０は、“９：１１”に、“９：１０：００”から“９：１０：５９”の１分間に、サーバ２００ａ，２００ｂで確立されていたコネクション数をコネクションテーブル１１５の“９：１０”に登録する。なお、コネクションが３０秒程度確立した後に不使用であれば、自動でコネクションを切断する仕様となっている場合、解析部１３０は、例えば“９：１０”の１分間で通信に使用されたコネクションの数をコネクション数とする。
【００９５】
（Ｓ２２）解析部１３０は、サーバ２００ａ，２００ｂとクライアント３００ａ，３００ｂとの間で送受信されるパケットの履歴から応答時間を算出する。例えば、解析部１３０は、時刻“９：１０”のサーバ２００ａ，２００ｂとクライアント３００ａ，３００ｂとの間で送受信されるパケットの履歴から応答時間を算出する。
【００９６】
（Ｓ２３）解析部１３０は、算出した応答時間を応答時間テーブル１１６に登録する。
図２０は、判定処理の例を示すフローチャート（その１）である。図２０は、運用者の操作またはタイマスケジュールにより、処理が開始される。例えば、タイマスケジュールは、１５分間隔である。以下、図２０に示す処理をステップ番号に沿って説明する。
【００９７】
（Ｓ３１）ロス原因判定部１４０は、応答時間テーブル１１６のサーバＩＰの項目を参照し、全てのサーバを選択したか否かを判定する。全てのサーバを選択した場合、解析部１３０は、処理を終了する。全てのサーバを選択していない場合、ロス原因判定部１４０は、処理をステップＳ３２に進める。
【００９８】
（Ｓ３２）ロス原因判定部１４０は、応答時間テーブル１１６のサーバＩＰの項目を参照し、１つのサーバ（サーバＩＰ）を選択する。
（Ｓ３３）ロス原因判定部１４０は、応答時間テーブル１１６を参照し、遅延区間を検索する。例えば、ロス原因判定部１４０は、応答時間テーブル１１６のステップＳ３２で選択したサーバに対応する各時刻を参照し、各時刻の代表平均の応答時間が閾値以上の期間を遅延区間として特定する。例えば、ロス原因判定部１４０は、“９：１０”の代表平均の応答時間“１２０ｍ秒”が閾値以上であるため、“９：１０”が遅延区間に属すると判定する。
【００９９】
ロス原因判定部１４０は、応答時間テーブル１１６のステップＳ３２で選択したサーバに対応する各時刻の中に遅延区間が存在するか否かを判定する。遅延区間が存在しない場合、ロス原因判定部１４０は、処理をステップＳ３１に進める。遅延区間が存在する場合、ロス原因判定部１４０は、処理をステップＳ３４に進める。
【０１００】
（Ｓ３４）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応する遅延区間に、遅延区間に属する時間帯を登録する。例えば、ロス原因判定部１４０は、“９：０１”から“９：１０”までが遅延区間であることをロス判定テーブル１１７に登録する。これにより、ロス原因判定部１４０は、遅延区間を特定できる。
【０１０１】
ロス原因判定部１４０は、コネクションテーブル１１５に対応するステップＳ３２で選択したサーバのレコードを参照し、コネクション数が閾値以上の時間帯を特定する。例えば、閾値は、３である。ロス原因判定部１４０は、特定した時間帯でコネクション数が増大していることをロス判定テーブル１１７に登録する。例えば、ロス原因判定部１４０は、“９：０２”から“９：１０”の時間帯でコネクション数が増大していることをロス判定テーブル１１７に登録する。これにより、ロス原因判定部１４０は、コネクション増大区間を特定できる。
【０１０２】
ロス原因判定部１４０は、ＲＳＴテーブル１１３のステップＳ３２で選択したサーバに対応するレコードを参照し、ＲＳＴ数が閾値以上の時間帯を特定する。例えば、閾値は、３０である。ロス原因判定部１４０は、特定した時間帯でＲＳＴ数が増大していることをロス判定テーブル１１７に登録する。これにより、ロス原因判定部１４０は、ＲＳＴ増大区間を特定できる。
【０１０３】
ロス原因判定部１４０は、ロステーブル１１４のステップＳ３２で選択したサーバに対応するレコードを参照し、ロスと判定されたＳＹＮパケット数が閾値以上の時間帯を特定する。例えば、閾値は、３０である。ロス原因判定部１４０は、特定した時間帯でロスと判定されたＳＹＮパケット数が増大していることをロス判定テーブル１１７に登録する。例えば、ロス原因判定部１４０は、“９：０５”から“９：０９”の時間帯でロスと判定されたＳＹＮパケット数が増大していることをロス判定テーブル１１７に登録する。これにより、ロス原因判定部１４０は、ロス増大区間を特定できる。
【０１０４】
（Ｓ３５）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するレコードを参照し、遅延区間でロス増大区間の開始時刻がＲＳＴ増大区間の終了時刻より前、または同じであるか否かを判定する。条件を満たす場合、ロス原因判定部１４０は、処理をステップＳ３６に進める。条件を満たさない場合、ロス原因判定部１４０は、処理をステップＳ４０に進める。
【０１０５】
（Ｓ３６）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するレコードを参照し、遅延区間でＲＳＴ増大区間の開始時刻がロス増大区間の開始時刻より前、または同じであるか否かを判定する。条件を満たす場合、ロス原因判定部１４０は、処理をステップＳ３７に進める。条件を満たさない場合、ロス原因判定部１４０は、処理をステップＳ４０に進める。
【０１０６】
（Ｓ３７）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するレコードを参照し、遅延区間でコネクション増大区間の開始時刻がＲＳＴ増大区間の開始時刻より前、または同じであるか否かを判定する。条件を満たす場合、ロス原因判定部１４０は、処理をステップＳ３８に進める。条件を満たさない場合、ロス原因判定部１４０は、処理をステップＳ４０に進める。
【０１０７】
（Ｓ３８）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するレコードを参照し、遅延区間でロス増大区間の開始時刻がコネクション増大区間の終了時刻より前、または同じであるか否かを判定する。条件を満たす場合、ロス原因判定部１４０は、処理をステップＳ３９に進める。条件を満たさない場合、ロス原因判定部１４０は、処理をステップＳ４０に進める。
【０１０８】
（Ｓ３９）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するロス増大区間の時間帯を無視と判定する。ロス原因判定部１４０は、ロス増大区間の時間帯が無視であることを判定結果テーブル１１８に登録する。そして、ロス原因判定部１４０は、処理をステップＳ４１に進める。
【０１０９】
（Ｓ４０）ロス原因判定部１４０は、ロス判定テーブル１１７のステップＳ３２で選択したサーバに対応するロス増大区間の時間帯を消失と判定する。ロス原因判定部１４０は、ロス増大区間の時間帯が消失であることを判定結果テーブル１１８に登録する。そして、ロス原因判定部１４０は、処理をステップＳ４１に進める。
【０１１０】
図２１は、判定処理の例を示すフローチャート（その２）である。以下、図２１に示す処理をステップ番号に沿って説明する。
（Ｓ４１）ロス原因判定部１４０は、判定結果テーブル１１８を参照し、ステップＳ３２で選択したサーバ宛のＳＹＮパケットがネットワーク４００上で消失している場合、ロステーブル１１４とパケット数テーブル１１１とに基づいて消失率を算出する。例えば、ロス原因判定部１４０は、ロステーブル１１４のサーバ２００ａ（サーバＩＰ：１０．０．０．１）に対応する“９：０７”のロス数“１００”を特定する。ロス原因判定部１４０は、パケット数テーブル１１１のサーバ２００ａ（サーバＩＰ：１０．０．０．１）に対応する“９：０７”の各クライアントＩＰに対応するパケット数を合計する。合計したパケット数を１０００とする。ロス原因判定部１４０は、ロス数“１００”と合計したパケット数“１０００”とに基づいて、“９：０７”の消失率“１０（１００／１０００）％”を算出する。
【０１１１】
（Ｓ４２）ロス原因判定部１４０は、消失率テーブル１１９に消失率を登録する。
（Ｓ４３）ロス原因判定部１４０は、判定結果テーブル１１８を参照し、ステップＳ３２で選択したサーバ宛のＳＹＮパケットが無視されている場合、ロステーブル１１４とパケット数テーブル１１１とに基づいて無視率を算出する。例えば、ロス原因判定部１４０は、ロステーブル１１４のサーバ２００ｂ（サーバＩＰ：１０．０．０．２）に対応する“９：０７”のロス数“１００”を特定する。ロス原因判定部１４０は、パケット数テーブル１１１のサーバ２００ｂ（サーバＩＰ：１０．０．０．２）に対応する“９：０７”の各クライアントＩＰに対応するパケット数を合計する。合計したパケット数を１０００とする。ロス原因判定部１４０は、ロス数“１００”と合計したパケット数“１０００”とに基づいて、“９：０７”の無視率“１０（１００／１０００）％”を算出する。
【０１１２】
（Ｓ４４）ロス原因判定部１４０は、無視率テーブル１２０に無視率を登録する。そして、ロス原因判定部１４０は、処理をステップＳ３１に進める。
また、ロス原因判定部１４０は、判定処理が終了した後、ＳＹＮテーブル１１２、ＲＳＴテーブル１１３、ロステーブル１１４、コネクションテーブル１１５、応答時間テーブル１１６に登録されている情報を削除してもよい。
【０１１３】
出力部１５０は、判定結果テーブル１１８をディスプレイ１１に出力する。これにより、運用者は、ロスしたＳＹＮパケットの原因を知ることができる。そして、ネットワーク運用者は、ＳＹＮパケットがネットワーク４００上で消失している場合、例えば、帯域の変更による対処を検討する。また、サーバ運用者は、ＳＹＮパケットがサーバで無視されている場合、例えば、サーバ数の増設による対処を検討する。
【０１１４】
また、出力部１５０は、消失率テーブル１１９および無視率テーブル１２０をディスプレイ１１に出力する。これにより、運用者は、各時刻の消失率および無視率を把握することができる。
【０１１５】
判定処理では、ロス原因判定部１４０がステップＳ３５などを実行して、ロスしたＳＹＮパケットの原因を特定した。しかし、ロス原因判定部１４０は、次の方法により、ロスしたＳＹＮパケットの原因を特定してもよい。
【０１１６】
図２２は、ロスの原因を他の方法で特定する場合を説明するための図である。図２２では、コネクション増大区間が遅延区間に属していることを示している。図２２では、ＲＳＴ増大区間が遅延区間に属していることを示している。図２２では、ロス増大区間が遅延区間に属していることを示している。
【０１１７】
ロス原因判定部１４０は、式（１）〜（４）を用いて算出した結果の全てが０以上の場合、ロス増大区間の時間帯を無視と判定する。
ＲＳＴ増大区間の終了時刻−ロス増大区間の開始時刻・・・（１）
ロス増大区間の開始時刻−ＲＳＴ増大区間の開始時刻・・・（２）
ＲＳＴ増大区間の開始時刻−コネクション増大区間の開始時刻・・・（３）
コネクション増大区間の終了時刻−ロス増大区間の開始時刻・・・（４）
なお、式（１）〜（４）を用いて算出する際、例えば、“９：０５”を“９０５”として用いる。
【０１１８】
例えば、ロス原因判定部１４０は、ロス判定テーブル１１７のサーバ２００ｂ（サーバＩＰ：１０．０．０．２）のレコードを参照する。ロス原因判定部１４０は、ＲＳＴ増大区間の終了時刻“９：０５”を特定する。ロス原因判定部１４０は、ロス増大区間の開始時刻“９：０５”を特定する。ロス原因判定部１４０は、式（１）を用いて、０（９０５−９０５）を算出する。また、ロス原因判定部１４０は、ＲＳＴ増大区間の開始時刻“９：０２”を特定する。ロス原因判定部１４０は、式（２）を用いて、３（９０５−９０２）を算出する。ロス原因判定部１４０は、コネクション増大区間の開始時刻“９：０２”を特定する。ロス原因判定部１４０は、式（３）を用いて、０（９０２−９０２）を算出する。ロス原因判定部１４０は、コネクション増大区間の終了時刻“９：１０”を特定する。ロス原因判定部１４０は、式（４）を用いて、５（９１０−９０５）を算出する。ロス原因判定部１４０は、式（１）〜（４）を用いて算出した結果の全てが０以上だったので、ロス増大区間の時間帯を無視と判定する。
【０１１９】
また、ロス原因判定部１４０は、式（１）〜（４）を用いて算出した結果の何れかがマイナス値の場合、ロス増大区間の時間帯を消失と判定する。例えば、ロス原因判定部１４０は、ロス判定テーブル１１７のサーバ２００ａ（サーバＩＰ：１０．０．０．１）のレコードを参照する。ロス原因判定部１４０は、ＲＳＴ増大区間の終了時刻が存在しないことを特定する。この場合、ＲＳＴ増大区間の終了時刻を“０：００”とする。ロス原因判定部１４０は、ロス増大区間の開始時刻“９：０５”を特定する。ロス原因判定部１４０は、式（１）を用いて、−９０５（０−９０５）を算出する。これにより、ロス原因判定部１４０は、ロス増大区間の時間帯を消失と判定する。
【０１２０】
このように、ロス原因判定部１４０は、式（１）〜（４）を用いて、ロスしたＳＹＮパケットの原因を特定する。
解析装置１００は、判定処理でＳＹＮパケットの消失率および無視率を算出した。解析装置１００は、算出した消失率および無視率と消失率および無視率の履歴と比較し、消失率および無視率の傾向を運用者に提供する。以下、消失率および無視率の傾向を運用者に提供する場合について説明する。
【０１２１】
図２３は、消失率履歴テーブルの例を示す図である。消失率履歴テーブル１２１は、記憶部１１０に格納される。消失率履歴テーブル１２１は、サーバＩＰ、サーバポート、時刻と消失率、日前の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻と消失率の項目は、各時刻の単位期間で消失と判断されたＳＹＮパケット数の割合を示す。日前の項目は、何日前の情報であるかを示す。
【０１２２】
図２３では、２日分の情報を例示しているが、２日以上の情報が消失率履歴テーブル１２１に登録されてもよい。なお、消失率テーブル１１９に登録された情報は、翌日、消失率履歴テーブル１２１に登録される。
【０１２３】
図２４は、無視率履歴テーブルの例を示す図である。無視率履歴テーブル１２２は、記憶部１１０に格納される。無視率履歴テーブル１２２は、サーバＩＰ、サーバポート、時刻と無視率、日前の項目を含む。サーバＩＰの項目は、サーバに割り当てられたＩＰアドレスを示す。サーバポートの項目は、ポート番号を示す。時刻と無視率の項目は、各時刻の単位期間で無視と判断されたＳＹＮパケット数の割合を示す。日前の項目は、何日前の情報であるかを示す。
【０１２４】
図２４では、２日分の情報を例示しているが、２日以上の情報が無視率履歴テーブル１２２に登録されてもよい。なお、無視率テーブル１２０に登録された情報は、翌日、無視率履歴テーブル１２２に登録される。
【０１２５】
図２５は、出力処理の例を示すフローチャート（その１）である。図２５は、例えば、運用者の操作またはタイマスケジュールにより、処理が開始される。以下、図２５に示す処理をステップ番号に沿って説明する。
【０１２６】
（Ｓ５１）出力部１５０は、消失率テーブル１１９から全てのサーバを選択したか否かを判定する。全てのサーバを選択した場合、出力部１５０は、処理をステップＳ６１に進める。全てのサーバを選択していない場合、出力部１５０は、処理をステップＳ５２に進める。
【０１２７】
（Ｓ５２）出力部１５０は、消失率テーブル１１９から１つのサーバ（サーバＩＰ）を選択する。
（Ｓ５３）出力部１５０は、ステップＳ５２で選択したサーバが消失率履歴テーブル１２１に存在するか否かを判定する。存在する場合、出力部１５０は、処理をステップＳ５４に進める。存在しない場合、出力部１５０は、処理をステップＳ５１に進める。
【０１２８】
（Ｓ５４）出力部１５０は、消失率テーブル１１９のステップＳ５２で選択したサーバに対応するレコードをグラフ化する。出力部１５０は、グラフ化した情報をディスプレイ１１に出力する。
【０１２９】
（Ｓ５５）出力部１５０は、消失率履歴テーブル１２１のステップＳ５２で選択したサーバに対応するレコードをグラフ化する。出力部１５０は、グラフ化した情報をディスプレイ１１に出力する。
【０１３０】
（Ｓ５６）出力部１５０は、消失率テーブル１１９の情報に基づくグラフと消失率履歴テーブル１２１の情報に基づくグラフとを比較した結果をディスプレイ１１に出力する。そして、出力部１５０は、処理をステップＳ５１に進める。
【０１３１】
図２６は、出力処理の例を示すフローチャート（その２）である。以下、図２６に示す処理をステップ番号に沿って説明する。
（Ｓ６１）出力部１５０は、無視率テーブル１２０から全てのサーバを選択したか否かを判定する。全てのサーバを選択した場合、出力部１５０は、処理を終了する。全てのサーバを選択していない場合、出力部１５０は、処理をステップＳ６２に進める。
【０１３２】
（Ｓ６２）出力部１５０は、無視率テーブル１２０から１つのサーバ（サーバＩＰ）を選択する。
（Ｓ６３）出力部１５０は、ステップＳ６２で選択したサーバが無視率履歴テーブル１２２に存在するか否かを判定する。存在する場合、出力部１５０は、処理をステップＳ６４に進める。存在しない場合、出力部１５０は、処理をステップＳ６１に進める。
【０１３３】
（Ｓ６４）出力部１５０は、無視率テーブル１２０のステップＳ６２で選択したサーバに対応するレコードをグラフ化する。出力部１５０は、グラフ化した情報をディスプレイ１１に出力する。
【０１３４】
（Ｓ６５）出力部１５０は、無視率履歴テーブル１２２のステップＳ６２で選択したサーバに対応するレコードをグラフ化する。出力部１５０は、グラフ化した情報をディスプレイ１１に出力する。
【０１３５】
（Ｓ６６）出力部１５０は、無視率テーブル１２０の情報に基づくグラフと無視率履歴テーブル１２２の情報に基づくグラフとを比較した結果をディスプレイ１１に出力する。そして、出力部１５０は、処理をステップＳ６１に進める。
【０１３６】
図２７は、消失率のグラフの例を示す図である。図２７（Ａ）は、消失率履歴テーブル１２１の情報に基づいて作成されたグラフである。図２７（Ｂ）は、消失率テーブル１１９の情報に基づいて作成されたグラフである。
【０１３７】
出力部１５０は、図２７（Ａ）のグラフと図２７（Ｂ）のグラフをディスプレイ１１に出力する。ここで、１日前を休日とする。２日前と今日は、平日である。ネットワーク運用者は、図２７（Ａ）のグラフを視認し、１日前が休日であったため、情報処理システムで通信が行われていなかったことを認識する。
【０１３８】
また、出力部１５０は、図２７（Ａ）のグラフと図２７（Ｂ）のグラフとを比較し、分布が同一であるか否かを判定する。例えば、出力部１５０は、ｔ検定、Ｆ検定、パラメトリック検定、またはウィルコクソンの順位和検定を用いて、分布が同一であるか否かを判定する。
【０１３９】
出力部１５０は、判定結果をディスプレイ１１に出力する。例えば、出力部１５０は、１日前、２日前の分布が今日の分布と違うことを示す情報５０１をディスプレイ１１に出力する。ネットワーク運用者は、２日前の分布と今日の分布とが違う（平日の分布が違う）ため、ネットワーク４００上で何らかのトラブルが発生していることを認識する。ネットワーク運用者は、ネットワーク４００上のトラブルの対処を検討する。
【０１４０】
図２８は、無視率のグラフの例を示す図である。図２８（Ａ）は、無視率履歴テーブル１２２の情報に基づいて作成されたグラフである。図２８（Ｂ）は、無視率テーブル１２０の情報に基づいて作成されたグラフである。
【０１４１】
出力部１５０は、図２８（Ａ）のグラフと図２８（Ｂ）のグラフをディスプレイ１１に出力する。ここで、１日前を休日とする。２日前と今日は、平日である。サーバ運用者は、図２８（Ａ）のグラフを視認し、１日前が休日であったため、情報処理システムで通信が行われていなかったことを認識する。
【０１４２】
また、出力部１５０は、図２８（Ａ）のグラフと図２８（Ｂ）のグラフとを比較し、分布が同一であるか否かを判定する。例えば、出力部１５０は、ｔ検定、Ｆ検定、パラメトリック検定、またはウィルコクソンの順位和検定を用いて、分布が同一であるか否かを判定する。
【０１４３】
出力部１５０は、判定結果をディスプレイ１１に出力する。例えば、出力部１５０は、１日前の分布が今日の分布と違うことを示す情報５０２をディスプレイ１１に出力する。また、出力部１５０は、２日前の分布が今日の分布と同じことを示す情報５０２をディスプレイ１１に出力する。サーバ運用者は、２日前の分布と今日の分布とが同じ（平日の分布が同じ）であるため、平日の特定の時間帯にＳＹＮパケットが無視されることを認識する。サーバ運用者は、特定の時間帯だけ、ＳＹＮパケットの無視が発生するのであれば、サーバを増設しないことも考慮して検討する。
【０１４４】
このように、解析装置１００は、グラフを運用者に提供することで、運用者が消失率および無視率の傾向を認識することができる。また、解析装置１００は、情報５０１、情報５０２を運用者に提供することで、運用者が情報５０１、情報５０２を検討材料として用いることができる。
【０１４５】
また、第１の実施の形態の情報処理は、パケット解析装置１に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。例えば、プログラムを記録した記録媒体は、プログラムを流通させることで配布することができる。また、解析部１３０、ロス原因判定部１４０、出力部１５０を実現するプログラムは、別個のプログラムとして各プログラムを別個に配布することができる。解析部１３０、ロス原因判定部１４０、出力部１５０は、別個のコンピュータにより実現されてもよい。
【符号の説明】
【０１４６】
１  パケット解析装置
１ａ  制御部
２  監視対象装置
３ａ，３ｂ  端末装置
４  ネットワーク
５  表
【図１】
2018182594.tif 000003
【図２】
2018182594.tif 000004
【図３】
2018182594.tif 000005
【図４】
2018182594.tif 000006
【図５】
2018182594.tif 000007
【図６】
2018182594.tif 000008
【図７】
2018182594.tif 000009
【図８】
2018182594.tif 000010
【図９】
2018182594.tif 000011
【図１０】
2018182594.tif 000012
【図１１】
2018182594.tif 000013
【図１２】
2018182594.tif 000014
【図１３】
2018182594.tif 000015
【図１４】
2018182594.tif 000016
【図１５】
2018182594.tif 000017
【図１６】
2018182594.tif 000018
【図１７】
2018182594.tif 000019
【図１８】
2018182594.tif 000020
【図１９】
2018182594.tif 000021
【図２０】
2018182594.tif 000022
【図２１】
2018182594.tif 000023
【図２２】
2018182594.tif 000024
【図２３】
2018182594.tif 000025
【図２４】
2018182594.tif 000026
【図２５】
2018182594.tif 000027
【図２６】
2018182594.tif 000028
【図２７】
2018182594.tif 000029
【図２８】
2018182594.tif 000030