(57)【特許請求の範囲】
【請求項１】
ネットワーク装置を介してクライアント端末と通信してストリームデータを送信する第１ストリーム配信サーバと、
前記第１ストリーム配信サーバに対して冗長化されたサーバであって、前記第１ストリームサーバに接続される第２ストリーム配信サーバとを備え、
前記第１ストリーム配信サーバは、
前記クライアント端末との通信に関する通信情報を第２ストリーム配信サーバに送信する送信部を有し、
前記第２ストリーム配信サーバは、
前記第１ストリーム配信サーバに送信されるデータのコピーであるミラーデータを、前記ネットワーク装置から取得する取得部と、
前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバと前記クライアント端末との間のネットワークにおける障害を検知するネットワーク障害検知部とを有する
ことを特徴とするストリーム配信システム。
【請求項２】
前記第２ストリーム配信サーバは、
前記ネットワークにおける障害を検知したときに、前記ミラーデータを記憶する記憶部を有する
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項３】
前記第２ストリーム配信サーバは、
前記第１ストリーム配信サーバにおける障害を検知するサーバ障害検知部と、
前記第１ストリーム配信サーバにおける障害を検知したときに、前記クライアント端末に前記ストリームデータを送信するストリーム配信部と、
前記クライアント端末に前記ストリームデータを送信するときに、前記サーバ障害検知部を停止する停止部とを有する
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項４】
前記通信情報は、前記クライアント端末との通信状態を示す通信状態情報を含む
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項５】
前記通信情報は、前記第１ストリーム配信サーバに送信された前記データの受信状態を示す受信情報を含み、
前記第２ストリーム配信サーバは、
前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバに送信される前記データの受信漏れを検知する受信漏れ検知部を有する
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項６】
前記第２ストリーム配信サーバは、
前記ネットワークにおける障害を検知したときに、前記ネットワークにおける障害を解析する解析部を有する
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項７】
ネットワーク装置を介してクライアント端末と通信してストリームデータを送信する第１ストリーム配信サーバと、前記第１ストリーム配信サーバに対して冗長化されたサーバであって、前記第１ストリームサーバに接続される第２ストリーム配信サーバとを有するシステムに用いられる障害検知方法であって、
前記第１ストリーム配信サーバが、前記クライアント端末との通信に関する通信情報を第２ストリーム配信サーバに送信する送信ステップと、
前記第２ストリーム配信サーバが、前記第１ストリーム配信サーバに送信されるデータのコピーであるミラーデータを、前記ネットワーク装置から取得する取得ステップと、
前記第２ストリーム配信サーバが、前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバと前記クライアント端末との間のネットワークにおける障害を検知するネットワーク障害検知ステップとを備える
ことを特徴とする障害検知方法。
【請求項８】
前記ネットワーク障害検知ステップは、
前記第２ストリーム配信サーバが、前記ネットワークにおける障害を検知したときに、前記ミラーデータを記憶する記憶ステップを含む
ことを特徴とする請求項７に記載の障害検知方法。
【請求項９】
前記取得ステップは、
前記第２ストリーム配信サーバが、前記第１ストリーム配信サーバにおける障害を検知するサーバ障害検知ステップと、
前記第２ストリーム配信サーバが、前記第１ストリーム配信サーバにおける障害を検知したときに、前記クライアント端末に前記ストリームデータを送信するストリーム配信ステップと、
前記第２ストリーム配信サーバが、前記クライアント端末に前記ストリームデータを送信するときに、前記サーバ障害検知ステップにおける前記第１ストリーム配信サーバによる障害の検知を停止する停止ステップとを含む
ことを特徴とする請求項７に記載の障害検知方法。
【請求項１０】
前記通信情報は、前記クライアント端末との通信状態を示す通信状態情報を含む
ことを特徴とする請求項７に記載の障害検知方法。
【請求項１１】
前記通信情報は、前記第１ストリーム配信サーバに送信された前記データの受信状態を示す受信情報を含み、
前記ネットワーク障害検知ステップは、
前記第２ストリーム配信サーバが、前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバに送信される前記データの受信漏れを検知する受信漏れ検知ステップを含む
ことを特徴とする請求項７に記載の障害検知方法。
【請求項１２】
前記ネットワーク障害検知ステップは、
前記第２ストリーム配信サーバが、前記ネットワークにおける障害を検知したときに、前記ネットワークにおける障害を解析する解析ステップを含む
ことを特徴とする請求項７に記載の障害検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム配信における障害を検知するストリーム配信システム及び障害検知方法に関する。
【背景技術】
【０００２】
従来、ネットワークにおける障害の解析方法として、クライアント端末からネットワーク経路の障害をポーリングで監視することで、ネットワーク経路のどこで障害が発生しているかを監視するようにしたものが知られている（例えば、特許文献１参照）。
【特許文献１】特開２００２-１５２２０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の方法では、クライアント端末、サーバ及びネットワーク経路が固定である場合には利用できるが、ストリーム配信などのように、クライアント端末が不特定多数の場合には利用できない。また、ネットワーク経路が複雑な場合には、ポーリングによるトラフィックが増大するため、監視の頻度と監視のためのトラフィック増とのバランスを取るのが困難である。
【０００４】
一方、インターネットストリーム配信サービスのますますの増加が予想され、ストリーム配信サーバの配信帯域増大や、広域なネットワークでの活用が期待されている。同時に、サーバ設置面積の削減や、消費電力の低減からサーバ単体の処理性能の向上が要求されている。
【０００５】
ストリーム配信サーバが複雑なネットワークを介してストリームデータを送信するストリーム配信では、単体の配信帯域が大きいストリームデータを取り扱うため、ネットワークにおける障害が発生した場合、その障害解析には高性能な障害解析機器が必要であった。また、障害解析機器は、障害が発生しているかを調べるだけでも、ストリーム配信サーバの複雑な挙動を理解する必要があるため、ストリーム配信におけるネットワーク障害の解析は非常に困難であった。
【０００６】
さらに、ストリーム配信は配信帯域を保証する必要があるため、配信帯域が必要帯域を下回るなど、ストリーム配信の品質低下が発生した際に、品質低下を検知してその原因を解析する必要がある。しかし、ストリーム配信の品質低下の原因として、ネットワークにおける障害の他に、ストリーム配信サーバにおける障害やクライアント端末における障害など、複数の原因が考えられ、品質低下の原因の特定は困難であった。
【０００７】
本発明はかかる問題点に鑑みてなされたものであり、その目的とするところは、ストリーム配信における品質低下の原因を容易に特定することのできるストリーム配信システム及び障害検知方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は前述の目的を達成するために、ネットワーク装置を介してクライアント端末と通信してストリームデータを送信する第１ストリーム配信サーバと、前記第１ストリーム配信サーバに対して冗長化されたサーバであって、前記第1ストリームサーバに接続される第２ストリーム配信サーバとを備え、前記第１ストリーム配信サーバは、前記クライアント端末との通信に関する通信情報を第２ストリーム配信サーバに送信する送信部を有し、前記第２ストリーム配信サーバは、前記第１ストリーム配信サーバに送信されるデータのコピーであるミラーデータを、前記ネットワーク装置から取得する取得部と、前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバと前記クライアント端末との間のネットワークにおける障害を検知するネットワーク障害検知部とを有するストリーム配信システムを提案する。
【０００９】
また、本発明は前述の目的を達成するために、ネットワーク装置を介してクライアント端末と通信してストリームデータを送信する第１ストリーム配信サーバと、前記第１ストリーム配信サーバに対して冗長化されたサーバであって、前記第１ストリームサーバに接続される第２ストリーム配信サーバとを有するシステムに用いられる障害検知方法であって、前記第１ストリーム配信サーバが、前記クライアント端末との通信に関する通信情報を第２ストリーム配信サーバに送信する送信ステップと、前記第２ストリーム配信サーバが、前記第１ストリーム配信サーバに送信されるデータのコピーであるミラーデータを、前記ネットワーク装置から取得する取得ステップと、前記第２ストリーム配信サーバが、前記通信情報と前記ミラーデータとに基づいて、前記第１ストリーム配信サーバと前記クライアント端末との間のネットワークにおける障害を検知するネットワーク障害検知ステップとを備える障害検知方法を提案する。
【００１０】
本発明によれば、第１ストリーム配信サーバ及びクライアント端末間の通信に関する通信情報と、第１ストリーム配信サーバに送信されるデータのコピーであるミラーデータとに基づいて、第１ストリーム配信サーバ及びクライアント端末間のネットワークにおける障害が検知される。これにより、第２ストリーム配信サーバが、通信情報及びミラーデータによって、ネットワーク障害による品質低下を検知することができ、ネットワーク障害とその他の障害とを切り分けることができる。
【発明の効果】
【００１１】
本発明によれば、第２ストリーム配信サーバが、通信情報及びミラーデータによって、ネットワーク障害による品質低下を検知することができ、ネットワーク障害とその他の障害とを切り分けることができる。これにより、品質低下の原因となっている範囲を絞り込むことができ、ストリーム配信における品質低下の原因を容易に特定することができる。また、第１ストリーム配信サーバと同程度の性能を有する第２ストリーム配信サーバがネットワーク障害を検知するので、従来のように高性能な障害解析機器を必要とすることなく、ネットワーク障害を解析することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面について本発明の一実施の形態を詳述する。
【００１３】
まず、図１乃至図５を参照してストリーム配信システムの構成を説明する。図１は、ストリーム配信システムの全体構成を説明する概略構成図である。
【００１４】
ストリーム配信サーバ９は、ストリーム配信サーバ（以下、単にサーバという）１ａと、サーバ１ｂと、外部記憶装置３とから構成されている。サーバ１ａ及びサーバ１ｂは、それぞれルータ２及びネットワーク５を介して接続されるクライアント端末４と通信し、クライアント端末４が指定したストリームのストリームデータを送信する。
【００１５】
クライアント端末４は、サーバ１ａ又はサーバ１ｂが送信するストリームデータを受信し、ストリームを閲覧するサービスをクライアント端末４の利用者に提供する端末である。クライアント端末４は、サーバ１ａ又はサーバ１ｂにネットワーク５を介してストリームの配信要求を送信し、サーバ１ａ又はサーバ１ｂからストリームデータを受信し、クライアント端末４の利用者にストリームを再生して提供するストリーム再生部３４を有する。また、クライアント端末４は、利用者からの操作を受付ける入力デバイス（図示せず）と、映像を表示するデバイス（図示せず）とを有する。なお、図１では、クライアント端末４は１つだけしか示されていないが、これに限定されず、複数のクライアント端末であってもよい。
【００１６】
クライアント端末４は、ストリームの配信要求をする前に、サーバ１ａ及びサーバ１ｂが配信可能なストリームの一覧と、ストリームを配信するサーバ１a及びサーバ１ｂのネットワーク５上のアドレス、例えばＩＰアドレスとを、Ｗｅｂサーバ（図示せず）などから取得する。また、クライアント端末４は、ストリームデータを受信中に予め一定時間分のストリームデータを先読みする。サーバ１ａからストリームデータを受信中に受信障害が発生し、先読みした一定時間内に続きのストリームデータをサーバ１ａから受信できなかった場合に、クライアント端末４は、取得したサーバ１ｂのアドレスに基づいて、サーバ１ｂに続きのストリームの配信要求をする。
【００１７】
ネットワーク５は、ＷＡＮ（Wide Area Network）又はインターネットで構成されている。
【００１８】
ルータ２は、サーバ１ａやサーバ１ｂなどの他のネットワーク機器と接続するためのネットワークポート３４a及びネットワークポート３４ｂを備えている。また、ルータ２は、ネットワークポートに送信されるパケットをコピーし、コピーしたミラーパケットを他のネットワークポートにも送信するミラーリング部３２と、外部からの設定変更を受付けてルータ２の動作の設定を変更する設定変更受付部３３とを有する。
【００１９】
本実施形態では、ルータ２は、ネットワークポート３４aとサーバ１ａとがネットワークケーブル６ａで接続され、ネットワークポート３４ｂとサーバ１ｂとがネットワークケーブル６ｂで接続されている。ストリーム配信サービスを提供するサービス提供業者は、ネットワーク５に接続するルータ２と、ルータ２に接続するサーバ１ａ及びサーバ１ｂとを所有し、管理している。
【００２０】
サーバ１ａ及びサーバ１ｂ間には、互いに相手の動作状態に関する情報を取得できるインタフェースケーブル７が設けられている。また、サーバ１ａ及びサーバ１ｂは、配信すべきストリームのストリームデータを格納した外部記憶装置３を共有し、インタフェースケーブル８ａ及びインタフェースケーブル８ｂで外部記憶装置３に接続している。インタフェースケーブル８ａ及びインタフェースケーブル８ｂとしては、例えばファイバチャンネルケーブルなどを用いることが好ましい。
【００２１】
外部記憶装置３は、サーバ１ａ及びサーバ１ｂが配信すべきストリームのストリームデータを格納したディスクであるストリームディスク３０と、後述するパケット記録部１８によって取得され、ルータ２からサーバ１aに送信されたパケットのコピーであるミラーパケットを格納したディスクであるパケットディスク３１とから構成されている。
【００２２】
図２は、図１に示したサーバの物理構成を説明する概略構成図である。サーバ１ａ及びサーバ１ｂは、それぞれプロセッサ１００、主記憶装置１０１、内部インタフェース１０５、通信回路インタフェース１０６、外部記憶装置インタフェース１０７及び入出力装置１０８を有する。主記憶装置１０１は、ＲＡＭ（Random Access Memory）などにより構成され、演算処理を行う際に用いられる記憶手段として、プログラムメモリ１０２及びデータメモリ１０３を備える。なお、演算処理は、ＣＰＵ(Central Processing Unit)によって構成されるプロセッサ１００が、プログラムメモリ１０２上のプログラムを実行することで実現される。また、入出力装置１０８は、例えばキーボードとマウスとディスプレイである。
【００２３】
サーバ１ａ及びサーバ１ｂは、アクティブ・スタンバイ構成をとっている。すなわち、サーバ１ａ及びサーバ１ｂは、アクティブ又はスタンバイの動作モードの一方の状態にある。動作モードがアクティブであるサーバはストリーム配信のサービスを提供し、動作モードがスタンバイであるサーバは、動作モードがアクティブであるサーバに障害が発生していないかを監視し、動作モードがアクティブであるサーバに障害が発生したときに、動作モードをスタンバイからアクティブに変更してストリーム配信のサービスを継続する。なお、以下において、特に記載がない限り、サーバ１ａは動作モードがアクティブであり、サーバ１ｂは動作モードがスタンバイであるとして説明する。
【００２４】
図１に示すように、サーバ１ａは、動作モードがアクティブであるサーバで動作する、ストリーム配信部１０と、コネクション管理表１１と、通信状態通知部１４とを有する。また、サーバ１ｂは、動作モードがスタンバイであるサーバで動作する、障害監視部１５と、ネットワーク障害監視部１７と、パケット記録部１８と、コネクション解析１９と、パケットバッファ２０とを有する。なお、図１では、サーバ１ａに動作モードがアクティブであるサーバで動作するものを、サーバ１ｂに動作モードがスタンバイであるサーバで動作するものを、それぞれ図示しているが、サーバに障害が発生したときに、アクティブ・スタンバイを入れ替える必要があるため、実際には、サーバ１ａ及びサーバ１ｂは、動作モードがアクティブであるサーバで動作するものと、動作モードがスタンバイであるサーバで動作するものとの両方を有する。
【００２５】
ストリーム配信部１０は、ネットワーク５を介してストリームデータをクライアント端末４に配信するためのものである。ストリーム配信部１０は、クライアント端末４からのストリームの配信要求に従い、ストリームデータを外部記憶装置３から取得し、ストリームを途切れなく再生するために必要な送信帯域を守るように、取得したストリームデータをクライアント端末４に送信する。
【００２６】
コネクション管理表１１は、クライアント端末４との通信に関する通信情報を、クライアント端末４とのコネクションごとに管理するための表である。
【００２７】
図３は、図１に示したコネクション管理表を説明する構成図である。コネクション管理表１１は、ストリーム配信部１０によって記録又は更新される表である。コネクション管理表１１は、配信情報欄２０１と、必要帯域欄２０２と、クライアント端末識別情報欄２０３と、受信パケット欄２０４と、通信状態欄２０５とから構成されている。
【００２８】
配信情報２０１欄には、例えばファイル名などのストリームディスク３０に格納された配信すべきストリームデータを識別する情報が格納される。必要帯域欄２０２には、ストリームをクライアント端末４で途切れなく再生するために必要な送信帯域が格納される。クライアント端末識別情報欄２０３には、例えばネットワークアドレスなどの送信すべきクライアント端末４を識別するための識別情報が格納される。
【００２９】
受信パケット２０４欄には、サーバ１ａに送信されたパケットの受信状態を示す受信情報、例えばサーバ１ａがクライアント端末４から受信した受信パケットの数と、最後の受信パケットのサーバ１ａにおける時刻と、当該受信パケットの内容を示すパケット情報とが格納される。なお、受信パケット欄２０４に格納されるパケット情報は、最後の受信パケットに限定されず、サーバ１ａが受信したパケットのうちの一部、例えば格納可能なデータ量の範囲内で複数の受信パケットであってもよい。
【００３０】
通信状態２０５欄には、クライアント端末４との通信状態を示す通信状態情報、例えばクライアント端末４が受信可能なデータサイズを示すＴＣＰ（Transmission Control Protocol）のウィンドウサイズと、サーバ１ａがストリームデータを送信してからクライアント端末４が受信したことを示すＡＣＫ（ACKnowledgement）信号を受信するまでの遅延時間のうち、所定時間内に複数の遅延時間を測定した場合における最大の遅延時間と、直近の通信における通信帯域と、パケットの再送を行った回数とが格納される。
【００３１】
ストリーム配信部１０は、クライアント端末４とコネクションを確立したときに行を追加し、配信情報２０１欄、必要帯域２０２欄及びクライアント端末識別情報２０３欄に情報を格納して記録する。また、ストリーム配信中は、所定時間ごとに受信パケット２０４欄及び通信状態欄２０５の内容を更新し、クライアント端末４からストリームの配信停止要求を受信するなど、クライアント端末４との通信が正常に終了した場合に、通信状態２０５欄を“正常終了”に更新する。
【００３２】
通信状態通知部１４は、動作モードがスタンバイであるサーバ１ｂに、クライアント端末４に配信しているストリームの通信状態を知らせるためのものである。具体的には、通信状態通知部１４は、所定時間ごとにコネクション管理表１１をサーバ１ｂに送信する。なお、通信状態通知部１４がコネクション管理表１１をサーバ１ｂに送信する周期（所定時間）は、ストリーム配信部１０が受信パケット欄２０４及び通信状態欄２０５の内容を更新する周期（所定時間）と同じか同程度であることが好ましい。
【００３３】
障害監視部１５は、サーバ１ａに障害が発生していないかを監視するためのものである。障害監視部１５は、障害を検知したときに、サーバ１ａの動作モードをアクティブからスタンバイに変更し、サーバ１ｂの動作モードをスタンバイからアクティブに変更する。なお、動作モードを変更する方法として、例えばアクティブフラグをプログラムメモリ１０２又はデータメモリ１０３に有し、動作モードをアクティブにする場合はアクティブフラグに「１」を、スタンバイにする場合はアクティブフラグに「０」を格納する。
【００３４】
ネットワーク障害監視部１７は、障害監視部１５によって起動され、ネットワーク５にネットワーク的な障害、すなわちクライアント端末４における障害も含めたネットワーク障害が発生していないかを監視するためのものである。ネットワーク障害監視部１７は、ネットワーク障害を検知したときに、検知したネットワーク障害の障害解析を行う。
【００３５】
パケット記録部１８は、障害監視部１５又はネットワーク障害監視部１７によって起動され、クライアント端末４からサーバ１ａに送信されるパケットのコピーであるミラーパケットをルータ２から取得し、取得したミラーパケットを記録するためのものである。パケット記録部１８は、ルータ２から取得したミラーパケットを、送信元であるクライアント端末４を識別することでコネクションごとに分類し、後述するコネクション解析表１９に記録又は更新する。さらに、パケット記録部１８は、ルータ２から取得したミラーパケットを、主記憶装置１０１にある後述のパケットバッファ２０にバッファリングし、後述するタイミングで外部記憶装置３のパケットディスク３１に記録する。バッファリングするデータ量は、ネットワーク障害監視部１７によって行われる、後述のネットワーク障害の障害解析に過不足のないデータ量を設定しており、これを超えるミラーパケットは、パケット記録部１８が削除する。なお、バッファリングするデータ量は、ネットワーク障害の障害解析に過不足のないデータ量で、かつ、クライアント端末４がネットワーク障害を検知するためのタイムアウト時間に受信するミラーパケットのデータ量以上であることが好ましい。
【００３６】
図４は、図１に示したコネクション解析表を説明する構成図である。コネクション解析表１９は、ルータ２でコピーされサーバ１ｂに送信されたミラーパケットを、パケット記録部１８が受信し、解析した結果が記録される表である。コネクション解析表１９は、後述するパケットバッファ２０にバッファリングされたミラーパケットの内容を更新する際に、パケット記録部１８によって更新される。
【００３７】
コネクション解析表１９は、クライアント端末識別情報欄２１１と、バッファリングパケット情報２１２欄とから構成されている。クライアント端末識別情報欄２１１には、コネクション管理表１１のクライアント端末識別情報欄２０３と同様に、クライアント端末４を識別するための識別情報が格納される。バッファリングパケット情報欄２１２には、主記憶装置１０１にバッファリングした一番古いミラーパケットがクライアント端末４との通信開始から何番目に受信したものか管理するために、受信パケット数が格納される。
【００３８】
図５は、図１に示したパケットバッファを説明する構成図である。パケットバッファ２０は、受信時刻欄２２１と、クライアント端末識別情報欄２２２と、受信パケット番号欄２２３と、パケットデータ欄２２４とから構成されている。受信時刻欄２２１には、ミラーパケットを受信したサーバ１ｂにおける時刻が格納される。クライアント端末識別情報欄２２２には、ミラーパケットにおける送信元の情報が格納される。受信パケット番号欄２２３には、クライアント端末識別情報欄２２２に格納される送信元ごとのミラーパケットの通し番号が格納される。パケットデータ欄２２４には、サーバ１ｂが受信したミラーパケットの内容が格納される。
【００３９】
次に、図６乃至図８を参照してストリーム配信システムの動作を説明する。
【００４０】
図６は、図１に示した障害監視部の動作を説明するフローチャートである。障害監視部１５は、例えば前述のアクティブフラグに基づいて、サーバ１ｂの動作モードがスタンバイであるか否かを判定し（Ｓ３０１）、スタンバイである場合には障害監視を続行してＳ３０２へ進み、スタンバイでない場合には動作モードがスタンバイになるまでＳ３０１を繰り返す。
【００４１】
次に、障害監視部１５はパケット記録部１８を起動し、パケット記録部１８は、ルータ２に設定変更を要求し、ルータ２がサーバ１aに送信するパケットをコピーしてサーバ１ｂに送信するように、ルータ２を設定する（Ｓ３０４）。なお、後述するＳ３０３の処理後に再度Ｓ３０４を実行する場合など、既にルータ２に設定済みである場合に、障害監視部１５はＳ３０４をスキップする。
【００４２】
次に、障害監視部１５は、他方のサーバであるサーバ１ａに障害が発生しているか否かを判定する（Ｓ３０２）。サーバに障害が発生しているか否かを判定する方法として、例えば以下の処理を実行する。
【００４３】
図７は、サーバにおける障害の検知に係る動作を説明するフローチャートである。まず、障害監視部１５は、サーバ１ａのソフトウェアと一定間隔で通信して応答があるかなどに基づいて、サーバ１ａのソフトウェアが正常に動作しないなど、ソフトウェアに障害が発生しているか否かを判定する（Ｓ３２１）。サーバ１ａのソフトウェアに障害が発生していない場合、障害監視部１５は、サーバ１ａとサーバ１ｂとの内部インタフェースを接続し、サーバ１ｂから内部インタフェースを経由してサーバ１ａにおけるＣＰＵの自己チェックの結果を監視し、ＣＰＵに障害が発生しているか否かを判定する（Ｓ３２２）。サーバ１ａのＣＰＵに障害が発生していない場合、障害監視部１５は、サーバ１ｂから内部インタフェースを経由してサーバ１ａの電源が正常な電圧になってないなど、電源に障害が発生しているか否かを判定する（Ｓ３２３）。サーバ１ａの電源に障害が発生していない場合、障害監視部１５は、サーバ１ａのソフトウェアに問い合わせ、ストリーム配信システム９の内部ネットワークの障害、例えばネットワークケーブル６ｂの断線などが発生しているか否かを判定する（Ｓ３２４）。内部ネットワークに障害が発生していない場合、障害監視部１５は、サーバ１ａのソフトウェアに問い合わせ、冷却ファンの回転数が低下するなど、冷却装置に障害が発生しているか否かを判定する（Ｓ３２５）。Ｓ３２１〜Ｓ３２５において、１つでも障害が発生している場合に、障害監視部１５はサーバａにおける障害の発生を検知して終了し、全てに障害が発生していない場合に、障害監視部１５はサーバ１ａにおける障害の発生を検知せず、サーバ１ａは正常であるとして終了する。
【００４４】
Ｓ３０２の判定の結果、サーバ１ａに障害が発生している場合、障害監視部１５は、サーバ１ｂがクライアント端末４と通信できるように、ルータ２に設定変更を要求してＳ３０４で変更したルータ２の設定を元に戻し、パケット記録部１８を停止する（Ｓ３０５）。パケット記録部１８を停止後、障害監視部１５は、サーバ１aの動作モードをアクティブからスタンバイに変更し、サーバ１ｂの動作モードをスタンバイからアクティブに変更する、いわゆるフェールオーバー処理を行い（Ｓ３０６）、障害監視部１５は障害の発生を監視する処理を終了して停止する。これにより、サーバ１ａの障害監視部１５が起動され、動作モードがアクティブであるサーバ１ｂにおける障害を監視することができる。
【００４５】
なお、ルータ２とサーバ１ａ及びサーバ１ｂとを接続するネットワークケーブル６ａ及びネットワークケーブル６ｂが複数存在するなど、ルータ２がコピーしたミラーパケットの送信とストリームデータの送信とを同時に実行できる場合、障害監視部１５はＳ３０４及びＳ３０５のルータ２の設定変更は省略してもよい。
【００４６】
Ｓ３０２の判定の結果、サーバ１ａに障害が発生していない場合に、障害監視部１５はネットワーク障害監視部１７を起動し、ネットワーク障害監視部１７はネットワーク障害の発生を監視する。
【００４７】
図８は、図１に示したネットワーク障害監視部の動作を説明するフローチャートである。まず、ネットワーク障害監視部１７は、クライアント端末４との通信に関する通信情報をサーバ１ａから取得する（Ｓ３１０）。具体的には、サーバ１ａの通信状態通知部１４がコネクション管理表１１の内容を送信し、サーバ１ｂのネットワーク障害監視部１７が通信状態通知部１４によって送信されたコネクション管理表１１の内容を受信する。
【００４８】
次に、ネットワーク障害監視部１７は、取得したコネクション管理表１１の各行について、行ごとに以下のＳ３１１〜Ｓ３１４を実行する。
【００４９】
まず、ネットワーク障害監視部１７は、コネクション管理表１１の通信状態欄２０５が“正常終了”か否かに基づいて、サーバ１ａとクライアント端末４との通信が正常に終了したか否かを判定し（Ｓ３１１）、サーバ１ａとクライアント端末４との通信が正常に終了した場合にはＳ３１５に進み、正常に終了していない場合にはＳ３１２に進む。
【００５０】
次に、ネットワーク障害監視部１７は、通信状態欄２０５に格納された、サーバ１aとクライアント端末４との通信状態を示す通信状態情報の各指標について、それぞれに予め設定された閾値に達したか否か判定する（Ｓ３１２）。ネットワークの通信状態を示す指標がその指標に設定された閾値に達した場合としては、例えばネットワークプロトコルにＴＣＰを利用しているときに、ＴＣＰのウィンドウサイズが０になった場合、サーバ１ａのＩＰ（Internet Protocol）パケットの送信時刻と当該ＩＰパケットに対応するＡｃｋ信号の到着時刻との差が１秒以上になった場合、過去１０秒間の通信帯域が必要帯域欄２０２の帯域を下回る場合、再送パケット数が１を超える場合などが挙げられる。このように、通信状態欄２０５に基づいて、クライアント端末４との通信状態の変化を検知するので、通信状態の変化による品質低下を検知することができる。
【００５１】
Ｓ３１２の判定の結果、ネットワーク障害監視部１７は、通信状態情報の各指標に設定された閾値に達した場合にＳ３１６に進み、閾値に達していない場合にＳ３１３に進む。
【００５２】
次に、ネットワーク障害監視部１７はパケット記録部１８を起動し、パケット記録部１８は、受信パケット欄２０４の内容がパケットバッファ２０に含まれるか検索する。すなわち、クライアント端末識別情報欄２０３の情報とクライアント端末識別情報欄２２２の情報とが一致し、かつ、受信パケット欄２０４の受信数と受信パケット番号欄２２３のミラーパケットの通し番号とが一致する行を、パケットバッファ２０から検索する。そして、パケット記録部１８は、検索された行におけるパケットデータ欄２２４のミラーパケットの内容を取得し、取得したパケットデータ欄２２４のミラーパケットの内容と、受信パケット欄２０４のパケット情報とが異なるか否かを判定する（Ｓ３１３）。このように、受信パケット欄２０４の受信数及びパケット情報に基づいて、所定時点より前にサーバ１ａに送信されたパケットの受信状態の変化を検知するので、所定時点より前の、サーバ１ａにおけるパケットの受信漏れ（パケットドロップ）を検知することができる。
【００５３】
Ｓ３１３の判定の結果、ネットワーク障害監視部１７は、検索された行におけるパケットデータ欄２２４のミラーパケットの内容と受信パケット欄２０４に格納されるパケット情報とが異なる場合にＳ３１６に進み、一致する場合にＳ３１４に進む。なお、ネットワーク障害監視部１７は、パケットバッファ２０を検索した結果、パケットバッファ２０に該当する行がない場合もＳ３１４に進む。
【００５４】
次に、パケット記録部１８は、クライアント端末識別情報欄２０３の情報とクライアント端末識別情報欄２２２の情報とが一致し、かつ、受信パケット番号欄２２３のミラーパケットの通し番号が受信パケット欄２０４の受信数より大きい行を、パケットバッファ２０から検索し、検索された行における受信時刻欄２２１の時刻と受信パケット欄２０４の受信時刻との差が、一定時間以上であるか否か判定する（Ｓ３１４）。このように、受信パケット欄２０４の受信数及び受信時刻に基づいて、所定時点以降にサーバ１ａに送信されたパケットの受信状態の変化を検知するので、所定時点以降の、サーバ１ａにおけるパケットの受信漏れ（パケットドロップ）を検知することができる。
【００５５】
Ｓ３１４の判定の結果、ネットワーク障害監視部１７は、検索された行における受信時刻欄２２１の時刻と受信パケット欄２０４の受信時刻との差が一定時間以上である場合に、Ｓ３１６に進む。なお、一定時間は、後述するＳ３１５で待機する時間である。また、ネットワーク障害監視部１７は、パケットバッファ２０を検索した結果、パケットバッファ２０に該当する行がない場合もＳ３１６に進む。
【００５６】
前述のＳ３１１〜Ｓ３１４を、コネクション管理表１１の各行について実行した後、ネットワーク障害監視部１７は一定時間待機する（Ｓ３１５）。なお、一定時間は数秒程度が好ましい。
【００５７】
ここで、Ｓ３１２の判定が真（Yes）の場合、サーバ１ａ及びクライアント端末４間のネットワーク５又はクライアント端末４自身になんらかの障害が発生し、サーバ１ａには問題がない可能性がある。また、Ｓ３１３又はＳ３１４の判定が真（Yes）の場合、サーバ１ａはパケットを受信しきれなかった可能性がある。このように、サーバ１ａとクライアント端末４との通信に関する通信情報であるコネクション管理表１１と、サーバ１ａに送信されるパケットのコピーであるミラーパケットをバッファリングしたパケットバッファ２０とに基づいて、サーバ１ａ及びクライアント端末４間のネットワーク５における障害が検知されるので、サーバ１ｂが、コネクション管理表１１及びパケットバッファ２０によって、ネットワーク障害による品質低下を検知することができ、ネットワーク障害とその他の障害とを切り分けることができる。
【００５８】
次に、パケット記録部１８は、パケットバッファ２０にバッファリングしたミラーパケットをパケットディスク３１に記憶する（Ｓ３１６）。これにより、ネットワーク障害とその他の障害との切り分け情報を記録することができる。
【００５９】
次に、ネットワーク障害監視部１７は、コネクション解析表１９のクライアント端末識別情報欄２１１を利用し、ネットワーク５の障害解析を行う（Ｓ３１７）。ネットワーク５の障害解析方法としては、例えばＩＣＭＰ（Internet Control Message Protocol）パケットを利用した障害解析方法が考えられる。この方法は、ＩＰパケットの最大ホップ数を１、２、３と順次増加させ、クライアント端末識別情報欄２１１に格納されたクライアント端末のネットワークアドレスに対してＩＣＭＰパケットを複数送信し、応答数を統計的に計測することで、何ホップ先のルータまで通信可能かと、パケットロス率とを取得でき、ネットワークの障害解析ができる。このように、ネットワーク障害を検知したときにネットワーク障害を解析し、ネットワーク障害を解析するときに、例えばＩＣＭＰパケットをネットワーク５に送信しているので、ネットワーク障害の解析によるネットワーク５のトラフィック増加を最小限度に抑えることができる。
【００６０】
ネットワーク障害監視部１７はＳ３１７の次にＳ３１５に進み、一定時間経過後、ネットワーク障害監視部１７はネットワーク障害の発生を監視する処理を終了し、図６に示したフローチャートに戻り、障害監視部１５は再度Ｓ３０１〜Ｓ３０６を繰り返す。
【００６１】
このように、本発明によれば、サーバ１ａとクライアント端末４との通信に関する通信情報であるコネクション管理表１１と、サーバ１ａに送信されるパケットのコピーであるミラーパケットをバッファリングしたパケットバッファ２０とに基づいて、サーバ１ａ及びクライアント端末４間のネットワーク５における障害が検知されるので、サーバ１ｂが、コネクション管理表１１及びパケットバッファ２０によって、ネットワーク障害による品質低下を検知することができ、ネットワーク障害とその他の障害とを切り分けることができる。これにより、品質低下の原因となっている範囲を絞り込むことができ、ストリーム配信における品質低下の原因を容易に特定することができる。また、サーバ１ａと同程度の性能を有するサーバ１ｂがネットワーク障害を検知するので、従来のように高性能な障害解析機器を必要とすることなく、ネットワーク障害を解析することが可能となる。
【００６２】
また、ネットワーク障害を検知したときに、ミラーパケットをパケットディスク３１に記憶するので、ネットワーク障害とその他の障害との切り分け情報を記録することができる。これにより、従来の障害解析機器が行っていたように、配信帯域が大きく膨大な量のパケットをパケットキャプチャして調べたり、あるいはパケットキャプチャの量を一定期間や一定条件に制限して調べたりする必要がなく、障害解析に必要なパケットだけを記録することができる。
【００６３】
また、サーバ１ｂの動作モードをスタンバイからアクティブに変更し、クライアント端末４にストリームデータを配信するときに、サーバ１ｂは障害監視部１５を停止するので、サーバ１ａの動作モードをアクティブからスタンバイに変更することで、サーバ１ａの障害監視部１５が起動され、動作モードがアクティブであるサーバ１ｂにおける障害を監視することができる。
【００６４】
また、コネクション管理表１１はクライアント端末４との通信状態を示す通信状態情報が格納される通信状態欄２０５を含み、通信状態欄２０５に基づいて、クライアント端末４との通信状態の変化を検知することができる。これにより、通信状態の変化による品質低下を検知することができ、ネットワーク障害を更に切り分けることができる。
【００６５】
また、コネクション管理表１１はサーバ１ａに送信されたデータの受信状態を示す受信情報が格納される受信パケット欄２０４を含み、受信パケット欄２０４に基づいて、サーバ１ａに送信されたパケットの受信状態の変化を検知するので、サーバ１ａにおけるパケットの受信漏れ（パケットドロップ）を検知することができる。これにより、パケットの受信漏れとその他の障害とを切り分けることができる。
【００６６】
また、ネットワーク障害を検知したときにネットワーク障害を解析し、ネットワーク障害を解析するときに、例えばＩＣＭＰパケットをネットワーク５に送信しているので、ネットワーク障害の解析によるネットワーク５のトラフィック増加を最小限度に抑えることができる。
【００６７】
なお、本発明の構成及び動作は、前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
【図面の簡単な説明】
【００６８】
【図１】ストリーム配信システムの全体構成を説明する概略構成図である。
【図２】図１に示したサーバの物理構成を説明する概略構成図である。
【図３】図１に示したコネクション管理表を説明する構成図である。
【図４】図１に示したコネクション解析表を説明する構成図である。
【図５】図１に示したパケットバッファを説明する構成図である。
【図６】図１に示した障害監視部の動作を説明するフローチャートである。
【図７】サーバにおける障害の検知に係る動作を説明するフローチャートである。
【図８】図１に示したネットワーク障害監視部の動作を説明するフローチャートである。
【符号の説明】
【００６９】
１ａ，１ｂ…サーバ、２…ルータ、３…外部記憶装置、４…クライアント端末、５…ネットワーク、１０…ストリーム配信部、１１…コネクション管理表、１４…通信状態通知部、１５…障害監視部、１７…ネットワーク障害監視部、１８…パケット記録部、２０…パケットバッファ。
【図１】
0005075727.tif 000002
【図２】
0005075727.tif 000003
【図３】
0005075727.tif 000004
【図４】
0005075727.tif 000005
【図５】
0005075727.tif 000006
【図６】
0005075727.tif 000007
【図７】
0005075727.tif 000008
【図８】
0005075727.tif 000009