"複数の通信経路と接続され、該複数の通信経路のうち1つの通信経路を選択して通信を行う通信装置であって、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信し、該送信した経路確認要求信号に対する応答信号を受信する経路状態確認部と、前記経路状態確認部が、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測するタイマーと、前記経路状態確認部が、前記経路確認要求信号に対して前記応答信号を受信した連続回数をカウントする正常カウンタと、前記経路状態確認部が、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数をカウントする異常カウンタと、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記異常カウンタの初期値を算出するための補正値と前記正常カウンタの値とに基づいて前記初期値を算出し、前記異常カウンタの値を前記算出した初期値からカウントし、該カウントした異常カウンタの値があらかじめ設定された切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える指示を行い、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記タイマーが計測した応答時間と現在の補正値と現在の前記異常カウンタの値とに基づいて算出し、前記正常カウンタの値が該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す指示を行う状態算出部と、前記状態算出部からの指示に基づいて、前記通信経路として前記第1の通信経路と前記第2の通信経路とのどちらか一方を選択する経路選択部とを有する通信装置。請求項1に記載の通信装置において、前記状態算出部は、前記異常カウンタの値が前記切り替え閾値以上である場合、0を前記異常カウンタの初期値を算出するための補正値とし、前記応答時間があらかじめ設定された応答閾値よりも短く、且つ前記補正値が0よりも大きな値であり、且つ前記異常カウンタの値が0よりも大きく前記切り替え閾値未満である場合、該補正値から1を減算し、該1を減算した補正値と前記異常カウンタの値とを加算した値を2で除算した値を前記異常カウンタの初期値を算出するための補正値とすることを特徴とする通信装置。請求項1に記載の通信装置において、前記状態算出部は、前記補正値を算出した後、前記異常カウンタの値をリセットすることを特徴とする通信装置。請求項1に記載の通信装置において、前記状態算出部は、前記補正値と1とを加算した値から前記正常カウンタの値を差し引いた値を前記初期値として算出し、該初期値を算出した後、前記正常カウンタの値をリセットすることを特徴とする通信装置。複数の通信経路と接続された通信装置が通信を行う通信経路を前記複数の通信経路のうちから選択する経路選択方法であって、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信する処理と、前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する処理と、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測する処理と、前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第1の回数をカウントする際の初期値を算出するための補正値と、前記経路確認要求信号に対して前記応答信号を受信した連続回数である第2の回数とに基づいて前記初期値を算出する処理と、前記第1の回数を前記算出した初期値からカウントする処理と、前記カウントした第1の回数とあらかじめ設定された切り替え閾値とを比較する処理と、前記カウントした第1の回数が前記切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える処理と前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記計測した応答時間と現在の補正値と現在の第1の回数とに基づいて算出する処理と、該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値と、前記第2の回数とを比較する処理と、前記第2の回数が該算出した補正値と前記切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す処理とを行う経路選択方法。複数の通信経路と接続され、該複数の通信経路のうち1つの通信経路を選択して通信を行う通信装置に、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信する手順と、前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する手順と、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測する手順と、前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第1の回数をカウントする際の初期値を算出するための補正値と、前記経路確認要求信号に対して前記応答信号を受信した連続回数である第2の回数とに基づいて前記初期値を算出する手順と、前記第1の回数を前記算出した初期値からカウントする手順と、前記カウントした第1の回数とあらかじめ設定された切り替え閾値とを比較する手順と、前記カウントした第1の回数が前記切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える手順と前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記計測した応答時間と現在の補正値と現在の第1の回数とに基づいて算出する手順と、該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値と、前記第2の回数とを比較する手順と、前記第2の回数が該算出した補正値と前記切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す手順とを実行させるためのプログラム。しかしながら、上述した技術においては、メイン経路に断続的な品質低下が発生した後に品質が十分に回復した場合、マージン値の分、切り戻しが遅れてしまうという問題点がある。ここでマージン値は、通常は0であるが、メイン経路の品質低下によりICMPパケットの応答がまれに成功する場合、直前の連続した応答失敗回数に基づいて算出される値である。メイン経路が使用されている場合、応答失敗回数の初期値としてマージン値を使用するため、まれに応答成功があっても、迂回経路への切り替えができるようになっている。一方、迂回経路が使用されている場合は、応答成功回数からマージン値を差し引いた値を用いて切り戻しを判断するため、切り戻し閾値を小さな値に設定した場合であっても、過敏に切り戻らないようになっている。本発明の目的は、上述した課題を解決する通信装置、経路選択方法及びプログラムを提供することである。本発明の通信装置は、複数の通信経路と接続され、該複数の通信経路のうち1つの通信経路を選択して通信を行う通信装置であって、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信し、該送信した経路確認要求信号に対する応答信号を受信する経路状態確認部と、前記経路状態確認部が、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測するタイマーと、前記経路状態確認部が、前記経路確認要求信号に対して前記応答信号を受信した連続回数をカウントする正常カウンタと、前記経路状態確認部が、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数をカウントする異常カウンタと、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記異常カウンタの初期値を算出するための補正値と前記正常カウンタの値とに基づいて前記初期値を算出し、前記異常カウンタの値を前記算出した初期値からカウントし、該カウントした異常カウンタの値があらかじめ設定された切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える指示を行い、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記タイマーが計測した応答時間と現在の補正値と現在の前記異常カウンタの値とに基づいて算出し、前記正常カウンタの値が該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す指示を行う状態算出部と、前記状態算出部からの指示に基づいて、前記通信経路として前記第1の通信経路と前記第2の通信経路とのどちらか一方を選択する経路選択部とを有する。また、本発明の経路選択方法は、複数の通信経路と接続された通信装置が通信を行う通信経路を前記複数の通信経路のうちから選択する経路選択方法であって、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信する処理と、前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する処理と、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測する処理と、前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第1の回数をカウントする際の初期値を算出するための補正値と、前記経路確認要求信号に対して前記応答信号を受信した連続回数である第2の回数とに基づいて前記初期値を算出する処理と、前記第1の回数を前記算出した初期値からカウントする処理と、前記カウントした第1の回数とあらかじめ設定された切り替え閾値とを比較する処理と、前記カウントした第1の回数が前記切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える処理と前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記計測した応答時間と現在の補正値と現在の第1の回数とに基づいて算出する処理と、該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値と、前記第2の回数とを比較する処理と、前記第2の回数が該算出した補正値と前記切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す処理とを行う。また、本発明のプログラムは、複数の通信経路と接続され、該複数の通信経路のうち1つの通信経路を選択して通信を行う通信装置に実行させるためのプログラムであって、前記複数の通信経路のうち、第1の通信経路の状態を確認するための経路確認要求信号を送信する手順と、前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する手順と、前記経路確認要求信号を送信してから該経路確認要求信号に対する前記応答信号を受信するまでの応答時間を計測する手順と、前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第1の回数をカウントする際の初期値を算出するための補正値と、前記経路確認要求信号に対して前記応答信号を受信した連続回数である第2の回数とに基づいて前記初期値を算出する手順と、前記第1の回数を前記算出した初期値からカウントする手順と、前記カウントした第1の回数とあらかじめ設定された切り替え閾値とを比較する手順と、前記カウントした第1の回数が前記切り替え閾値以上となった場合、前記通信経路を前記第1の通信経路から該第1の通信経路以外の第2の通信経路へ切り替える手順と前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記補正値を、前記計測した応答時間と現在の補正値と現在の第1の回数とに基づいて算出する手順と、該算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値と、前記第2の回数とを比較する手順と、前記第2の回数が該算出した補正値と前記切り戻し閾値とを加算した値以上となった場合、前記通信経路を前記第2の通信経路から前記第1の通信経路へ切り戻す手順とを実行させる。以上説明したように本発明においては、通信経路の切り戻しの遅れを減少させることができる。以下に、本発明の実施の形態について図面を参照して説明する。図1は、本発明の通信装置の実施の一形態を示す図である。本形態は図1に示すように、通信装置1-1,1-2と、メイン経路2と、迂回経路3と、通信端末4-1,4-2とから構成されている。なお、図1に示した形態においては、通信経路が2つである場合を例に挙げて示したが、3つ以上の複数であっても良い。通信装置1-1,1-2は、通信端末4-1と通信端末4-2との間において送受信されるIPInternetProtocolパケット等のデータが通過する通信経路を選択する。メイン経路2は、通信装置1-1と通信装置1-2とを接続し、通信端末4-1と通信端末4-2との間において送受信されるデータが通過する通常設定される第1の通信経路である。迂回経路3は、通信装置1-1と通信装置1-2とを接続し、通信端末4-1と通信端末4-2との間において送受信されるデータが通過する通信経路の1つである。また、迂回経路3は、メイン経路2に障害が発生した場合に選択される第2の通信経路である。通信端末4-1,4-2は、通信装置1-1,1-2のそれぞれ接続された通信装置である。さらに、通信装置1-1には、経路状態確認部11と、状態算出部12と、経路選択部13と、正常カウンタ14と、異常カウンタ15と、タイマー16とが設けられている。経路状態確認部11は、メイン経路2の状態を確認する。具体的には、経路状態確認部11は、メイン経路2を介して通信装置1-2へ経路確認要求信号を送信し、送信した経路確認要求信号に対する応答信号が受信されるかどうかに基づいて、メイン経路2に障害が発生しているかどうかを確認する。本形態においては、この経路確認要求信号として、ICMPInternetControlMessageProtocolのICMPECHO_REQUESTを用いて、応答信号としてICMPECHO_REPLYを用いるものを例に挙げて説明する。状態算出部12は、経路状態確認部11にて確認されたメイン経路2の状態に基づいて、通信経路の切り替え/切り戻しを判断し、判断した結果を経路選択部13へ指示する。ここで、通信経路の切り替えとは、通信経路をメイン経路2から迂回経路3へ変更することを示す。また、通信経路の切り戻しとは、通信経路を迂回経路3からメイン経路2へ変更することを示す。また、状態算出部12は、経路状態確認部11が送信した経路確認要求信号に対して応答信号を受信した後、経路確認要求信号に対して応答信号を受信しなかった場合、異常カウンタ15の初期値を算出するための補正値マージン値と正常カウンタ14の値とに基づいて当該初期値を算出する。この算出方法の詳細については、後述する。また、状態算出部12は、初期値の算出後、異常カウンタ15に対して、この算出した初期値からカウントさせる。また、状態算出部12は、異常カウンタ15がカウントした値とあらかじめ設定された切り替え閾値とを比較する。また、状態算出部12は、異常カウンタ15がカウントした値が切り替え閾値以上となった場合、経路選択部13に対して、通信経路をメイン経路2から迂回経路3へ切り替える指示を行う。また、状態算出部12は、経路状態確認部11が送信した経路確認要求信号に対して応答信号を受信しなかった後、経路確認要求信号に対して応答信号を受信した場合、上述した補正値マージン値を、タイマー16が計測した応答時間と現在の補正値と現在の異常カウンタ15の値とに基づいて算出する。また、状態算出部12は、算出した補正値とあらかじめ設定された切り戻し閾値とを加算した値と、正常カウンタ14の値とを比較する。また、状態算出部12は、正常カウンタ14の値が、算出した補正値と切り戻し閾値とを加算した値以上となった場合、通信経路を迂回経路3からメイン経路2へ切り戻す指示を行う。また、状態算出部12は、異常カウンタ15の値が切り替え閾値以上である場合、0を異常カウンタ15の初期値を算出するための補正値とする。また、状態算出部12は、タイマー16が計測した応答時間があらかじめ設定された応答閾値よりも短く、且つ補正値が0よりも大きな値であり、且つ異常カウンタ15の値が0よりも大きく切り替え閾値未満である場合、その補正値から1を減算する。そして、状態算出部12は、1を減算した補正値と異常カウンタ15の値とを加算した値を2で除算した値を異常カウンタ15の初期値を算出するための補正値とする。また、状態算出部12は、補正値を算出した後、異常カウンタ15の値をリセットする。また、状態算出部12は、補正値と1とを加算した値から正常カウンタ14の値を差し引いた値を初期値として算出し、その初期値を算出した後、正常カウンタ14の値をリセットする。経路選択部13は、状態算出部12からの指示に基づいて、通信経路として、メイン経路2と迂回経路3とのどちらか一方を選択する。つまり、経路選択部13は、状態算出部12からの指示に基づいて、通信経路の切り替えメイン経路2から迂回経路3へ/切り戻し迂回経路3からメイン経路2へを行う。正常カウンタ14は、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信した連続回数第2の回数をカウントする。つまり、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信しない状態の後、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信した場合、次に経路確認要求信号に対する応答信号を受信しなくなるまでの間に、経路状態確認部11が送信した経路確認要求信号に対する応答信号の受信回数をカウントする。また、正常カウンタ14は、カウントした回数であるカウント値を状態算出部12へ通知する。異常カウンタ15は、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信しなかった連続回数第1の回数をカウントする。つまり、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信した後、経路状態確認部11が送信した経路確認要求信号に対する応答信号を受信しなかった場合、次に経路確認要求信号に対する応答信号を受信するまでの間に、経路状態確認部11が送信した経路確認要求信号の送信回数をカウントする。また、異常カウンタ15は、カウントした回数であるカウント値を状態算出部12へ通知する。タイマー16は、経路状態確認部11が、経路確認要求信号を送信してからその経路確認要求信号に対する応答信号を受信するまでの応答時間を計測する。また、タイマー16は、計測した応答時間を状態算出部12へ通知する。なお、通信装置1-2は、通信装置1-1と同じ構成を有する。以下に、図1に示した形態における経路選択方法について説明する。ここで、経路状態確認部11が経路確認要求信号を送信する都度、タイマー16が応答時間の計測を開始する。図2は、図1に示した形態において、経路確認要求信号に対する応答信号が受信されなかった場合の経路選択方法を説明するためのフローチャートである。経路状態確認部11からメイン経路2を介して通信装置1-2へ送信されたICMPECHO_REQUESTに対して、所定の時間内に応答が無い、つまりICMPECHO_REPLYが経路状態確認部11にて受信されないと判断されるとステップS20、状態算出部12によって異常カウンタ15の初期値が設定されるステップS21。ここで、ステップS20の判断は、ICMPECHO_REQUESTを送信する際に起動するタイマー16を用いて行うものであっても良い。このタイマー16は、ICMPECHO_REPLYを受信した際にリセットされるものである。また、ICMPECHO_REQUESTを送信したにもかかわらずICMPECHO_REPLYを受信しない場合、所定の時間が経過した時点でICMPECHO_REPLYが受信されないと判断するものである。ここで、ステップS21の処理について具体的に説明する。ステップS20にてICMPECHO_REPLYが経路状態確認部11にて受信されないと判断されると、現在選択している通信経路がメイン経路2であるかどうかが経路選択部13にて判断されるステップS211。現在選択している通信経路がメイン経路2であると判断されると、異常カウンタ15の値が0であるかどうかが状態算出部12によって判断されるステップS212。異常カウンタ15の値が0であると判断された場合、正常カウンタ14の値がマージン値1よりも小さいかどうかが状態算出部12によって判断されるステップS213。このマージン値は、異常カウンタ15の初期値を算出するための補正値であり、その算出方法は後述する。正常カウンタ14の値がマージン値1よりも小さいと判断された場合、状態算出部12によって異常カウンタ15の値がマージン値1-正常カウンタ14の値に設定されるステップS214。この値が異常カウンタ15の初期値となる。このマージン値は、メイン経路2の断続的な品質低下を表した値である。このマージン値を用いることによって、メイン経路2の断続的な品質低下が発生した場合であっても、迂回経路3への切り替えが行えるように、異常カウンタ15に含まれて初期化されている。その後、状態算出部12によって正常カウンタ14の値が0にリセットされるステップS22。また、ステップS211にてNoの場合、あるいはステップS212にてNoの場合、あるいはステップS213にてNoの場合、ステップS22の処理が行われる。また、状態算出部12によって異常カウンタ15の値が1つインクリメントカウントされるステップS23。すると、異常カウンタ15の値があらかじめ設定されている切り替え閾値以上かどうかが状態算出部12によって判断されるステップS24。異常カウンタ15の値が切り替え閾値以上であると判断された場合、状態算出部12から経路選択部13へ、通信経路をメイン経路2から迂回経路3へ切り替える指示が行われる。そして、通信経路をメイン経路2から迂回経路3へ切り替えるように指示された経路選択部13にて、通信経路がメイン経路2から迂回経路3へ切り替えられるステップS25。図3は、図1に示した形態において、経路確認要求信号に対する応答信号が受信された場合の経路選択方法を説明するためのフローチャートである。経路状態確認部11から送信されたICMPECHO_REQUESTに対して、応答がある、つまりICMPECHO_REPLYが経路状態確認部11にて受信されるとステップS30、通信経路を迂回経路3からメイン経路2へ切り戻すためのマージン値の更新が状態算出部12によって行われるステップS31~S32。このステップS31の処理は、ICMPECHO_REPLYの受信速度に基づくマージン値の更新処理である。また、ステップS32の処理は、ICMPECHO_REPLYの受信の有無に基づくマージン値の更新処理である。以下、ステップS31に処理の詳細について説明する。ICMPECHO_REPLYが経路状態確認部11にて受信されると、タイマー16が計測した、経路状態確認部11からICMPECHO_REQUESTが送信されてからICMPECHO_REPLYを受信するまでの応答時間と応答閾値とが状態算出部12によって比較されるステップS311。応答時間が応答閾値よりも短い場合、現在のマージン値が0よりも大きな値であるかどうかが状態算出部12によって判断されるステップS312。現在のマージン値が0よりも大きな値であると判断された場合、状態算出部12によって、マージン値が、現在のマージン値から1を差し引いた値に更新されるステップS313。その後、ステップS32の処理が行われる。また、ステップS311にて応答時間が応答閾値よりも短くはない場合、またはステップS312にて現在のマージン値が0よりも大きな値ではないと判断された場合は、ステップS32の処理が行われる。以下、ステップS32の詳細について説明する。まず、異常カウンタ15の値が0よりも大きな値であるかどうかが状態算出部12によって判断されるステップS321。異常カウンタ15の値が0でよりも大きな値であると判断された場合、異常カウンタ15の値があらかじめ設定されている切り替え閾値以上かどうかが状態算出部12にて判断されるステップS322。異常カウンタ15の値が切り替え閾値以上であると判断された場合、状態算出部12によってマージン値が0にリセットされるステップS323。このマージン値は、上述した異常カウンタ15の初期値の設定に用いられるものである。このように、異常カウンタ15の値が切り替え閾値以上であると判断された場合は、メイン経路2に突発的な異常が発生したと判断して、マージン値を0にしている。一方、ステップS322にて異常カウンタ15の値が切り替え閾値以上ではないと判断された場合、マージン値が現在のマージン値と現在の異常カウンタ15の値とに基づいて状態算出部12によって算出更新されるステップS324。具体的な算出方法は、マージン値=現在のマージン値異常カウンタ15の値÷2である。なお、ここで端数小数点以下は切り上げられる。このように、異常カウンタ15の値が切り替え閾値以上ではないと判断された場合は、メイン経路2の品質が断続的に低下していると判断して、マージン値を再計算して更新している。その後、状態算出部12によって、正常カウンタ14の値が1つインクリメントカウントされるステップS33。また、ステップS321にて異常カウンタ15の値が0であると判断された場合も、ステップS33の処理が行われる。また、状態算出部12によって、異常カウンタ15の値が0にリセットされるステップS34。そして、正常カウンタ14の値があらかじめ設定された切り戻し閾値とマージン値とを加算した値以上かどうかが状態算出部12によって判断されるステップS35。ステップS35にて正常カウンタ14の値が切り戻し閾値とマージン値とを加算した値以上であると判断された場合、状態算出部12から経路選択部13へ通信経路の切り戻しの指示が通知され、経路選択部13によって通信経路が迂回経路3からメイン経路2へ切り戻されるステップS36。そして、状態算出部12によってマージン値が0にリセットされるステップS37。通信経路を迂回経路3からメイン経路2へ切り戻すかどうかの判断にマージン値を含むことで、メイン経路2の品質が断続的に低下している場合の通信経路の切り戻しを抑制している。このように、本発明においては、メイン経路2の品質が十分に回復していることを応答時間に基づいて判断し、マージン値を減らしていくことで、通信経路の切り戻しの遅れを減少させている。以下に、具体例を用いて経路選択方法について説明する。この具体例は、切り戻し閾値が5、切り替え閾値が10、正常カウンタ14の値が2、異常カウンタ15の値が0、マージン値が0であり、現在の通信経路が迂回経路3である状態で、ICMPECHO_REPLYが6回連続して受信されず以下、受信失敗と称する、続いてICMPECHO_REPLYが2回連続して受信される以下、受信成功と称する状態が3回3サイクル繰り返されこの受信は、短い応答時間でICMPECHO_REPLYが受信されるものではない、その後、ICMPECHO_REPLYが短い応答時間で受信されることによる受信成功が続く場合を例に挙げる。これは、メイン経路2の品質が不安定であることにより、応答がまれに成功する状態の後、メイン経路2の品質が回復する場合である。また、受信失敗では図2に示したフローチャートを用いて説明した処理が行われ、受信成功では図3に示したフローチャートを用いて説明した処理が行われる。図4は、図1に示した形態におけるそれぞれの値の状態遷移を示す図である。まず、1サイクル目の1回目では、受信が失敗する。ここでは、上述した状態でステップS20にて応答無しであり、ステップS211にて現在の選択経路が迂回経路3であるため、ステップS22にて正常カウンタ14がリセットされ正常カウンタ14の値が0に設定され、ステップS23にて異常カウンタ15の値が1カウントされる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は1である。また、マージン値は0である。そして、ステップS24にて異常カウンタ15の値1が切り替え閾値10以上ではないため、処理は終了する。その後、1サイクル目の2~6回目の受信失敗で、異常カウンタ15の値が1つずつカウントアップされ、6回目の処理終了時の異常カウンタ15の値は6となる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は6である。また、マージン値は0である。続いて、1サイクル目の7回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きく、ステップS322にて異常カウンタ15の値が切り替え閾値以上ではないため、ステップS324にてマージン値が算出される。ここでは、マージン値は、06÷2=3となる。そして、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は1であり、また、異常カウンタ15の値は0である。また、マージン値は3である。すると、ステップS35にて正常カウンタ14の値1が、切り戻し閾値5マージン値3=8以上ではないため、処理は終了する。続いて、1サイクル目の8回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きくはないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は2であり、また、異常カウンタ15の値は0である。また、マージン値は3である。すると、ステップS35にて正常カウンタ14の値2が、切り戻し閾値5マージン値3=8以上ではないため、処理は終了する。次に、2サイクル目の1回目では、受信が失敗する。ステップS20にて応答無しであり、ステップS211にて現在の選択経路が迂回経路3であるため、ステップS22にて正常カウンタ14がリセットされ正常カウンタ14の値が0に設定され、ステップS23にて異常カウンタ15の値が1カウントされる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は1である。また、マージン値は3である。そして、ステップS24にて異常カウンタ15の値1が切り替え閾値10以上ではないため、処理は終了する。その後、2サイクル目の2~6回目の受信失敗で、異常カウンタ15の値が1つずつカウントアップされ、6回目の処理終了時の異常カウンタ15の値は6となる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は6である。また、マージン値は3である。続いて、2サイクル目の7回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きく、ステップS322にて異常カウンタ15の値が切り替え閾値以上ではないため、ステップS324にてマージン値が算出される。ここでは、マージン値は、36÷2=5となる。そして、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は1であり、また、異常カウンタ15の値は0である。また、マージン値は5である。すると、ステップS35にて正常カウンタ14の値1が、切り戻し閾値5マージン値5=10以上ではないため、処理は終了する。続いて、2サイクル目の8回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きくはないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は2であり、また、異常カウンタ15の値は0である。また、マージン値は5である。すると、ステップS35にて正常カウンタ14の値2が、切り戻し閾値5マージン値5=10以上ではないため、処理は終了する。次に、3サイクル目の1回目では、受信が失敗する。ステップS20にて応答無しであり、ステップS211にて現在の選択経路が迂回経路3であるため、ステップS22にて正常カウンタ14がリセットされ正常カウンタ14の値が0に設定され、ステップS23にて異常カウンタ15の値が1カウントされる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は1である。また、マージン値は5である。そして、ステップS24にて異常カウンタ15の値1が切り替え閾値10以上ではないため、処理は終了する。その後、3サイクル目の2~6回目の受信失敗で、異常カウンタ15の値が1つずつカウントアップされ、6回目の処理終了時の異常カウンタ15の値は6となる。この状態で、正常カウンタ14の値は0であり、また、異常カウンタ15の値は6である。また、マージン値は5である。続いて、3サイクル目の7回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きく、ステップS324にて異常カウンタ15の値が切り替え閾値以上ではないため、ステップS324にてマージン値が算出される。ここでは、マージン値は、56÷2=6となる。そして、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は1であり、また、異常カウンタ15の値は0である。また、マージン値は6である。すると、ステップS35にて正常カウンタ14の値1が、切り戻し閾値5マージン値6=11以上ではないため、処理は終了する。続いて、3サイクル目の8回目で、受信が成功しステップS30にて応答あり、ステップS311にて応答時間が応答閾値よりも短いものではなく、ステップS321にて異常カウンタ15の値が0よりも大きくはないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は2であり、また、異常カウンタ15の値は0である。また、マージン値は6である。すると、ステップS35にて正常カウンタ14の値2が、切り戻し閾値5マージン値6=11以上ではないため、処理は終了する。この後は、ICMPECHO_REPLYが短い応答時間で受信されることによる受信成功が続く。以下、1つの受信成功を1つのサイクルとする。また、3サイクル目まで説明してあるため、以下は4サイクル目以降として説明する。4サイクル目にて、まず、ステップS30にて受信が成功し、ステップS311にて応答時間が応答閾値よりも短いものであり、ステップS312にてマージン値が0よりも大きな値であるため、ステップS313にてマージン値を現在のマージン値から1を差し引いた値とする。ここでは、マージン値が、現在のマージン値6から1を差し引いた5となる。そして、ステップS321にて異常カウンタ15の値が0よりも大きくないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は3であり、また、異常カウンタ15の値は0である。また、マージン値は5である。すると、ステップS35にて正常カウンタ14の値3が、切り戻し閾値5マージン値5=10以上ではないため、処理は終了する。続いて、5サイクル目にて、まず、ステップS30にて受信が成功し、ステップS311にて応答時間が応答閾値よりも短いものであり、ステップS312にてマージン値が0よりも大きな値であるため、ステップS313にてマージン値を現在のマージン値から1を差し引いた値とする。ここでは、マージン値が、現在のマージン値5から1を差し引いた4となる。そして、ステップS321にて異常カウンタ15の値が0よりも大きくないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は4であり、また、異常カウンタ15の値は0である。また、マージン値は4である。すると、ステップS35にて正常カウンタ14の値4が、切り戻し閾値5マージン値4=9以上ではないため、処理は終了する。続いて、6サイクル目にて、まず、ステップS30にて受信が成功し、ステップS311にて応答時間が応答閾値よりも短いものであり、ステップS312にてマージン値が0よりも大きな値であるため、ステップS313にてマージン値を現在のマージン値から1を差し引いた値とする。ここでは、マージン値が、現在のマージン値4から1を差し引いた3となる。そして、ステップS321にて異常カウンタ15の値が0よりも大きくないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は5であり、また、異常カウンタ15の値は0である。また、マージン値は3である。すると、ステップS35にて正常カウンタ14の値5が、切り戻し閾値5マージン値3=8以上ではないため、処理は終了する。続いて、7サイクル目にて、まず、ステップS30にて受信が成功し、ステップS311にて応答時間が応答閾値よりも短いものであり、ステップS312にてマージン値が0よりも大きな値であるため、ステップS313にてマージン値を現在のマージン値から1を差し引いた値とする。ここでは、マージン値が、現在のマージン値3から1を差し引いた2となる。そして、ステップS321にて異常カウンタ15の値が0よりも大きくないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は6であり、また、異常カウンタ15の値は0である。また、マージン値は2である。すると、ステップS35にて正常カウンタ14の値6が、切り戻し閾値5マージン値2=7以上ではないため、処理は終了する。続いて、8サイクル目にて、まず、ステップS30にて受信が成功し、ステップS311にて応答時間が応答閾値よりも短いものであり、ステップS312にてマージン値が0よりも大きな値であるため、ステップS313にてマージン値を現在のマージン値から1を差し引いた値とする。ここでは、マージン値が、現在のマージン値2から1を差し引いた1となる。そして、ステップS321にて異常カウンタ15の値が0よりも大きくないため、ステップS33にて正常カウンタ14の値が1カウントされ、ステップS34にて異常カウンタ15がリセットされる異常カウンタ15の値が0に設定される。この状態で、正常カウンタ14の値は7であり、また、異常カウンタ15の値は0である。また、マージン値は1である。すると、ステップS35にて正常カウンタ14の値7が、切り戻し閾値5マージン値1=6以上であるため、ステップS36にて迂回経路3からメイン経路2への通信経路の切り戻しが行われる。そして、ステップS37にてマージン値が0となり、処理が終了する。上述した先行技術では、ステップS31が存在せず、マージン値が6のままのため、迂回経路3からメイン経路2への通信経路の切り戻しには、さらに4つのICMPECHO_REPLYの応答が必要である。一方、本発明では、ICMPECHO_REPLYの応答時間を考慮することで、迂回経路3からメイン経路2への通信経路の切り戻しが遅延なく行われるようになる。また、上述した形態においては、メイン経路2の品質が不安定になった場合の異常カウンタ15の初期値を、現在のマージン値と正常カウンタ14の値との差分に基づいて算出しているが、前回の異常カウンタ15の値を記憶しておき、その値と正常カウンタ14の値との差分に基づいて算出するものであっても良い。また、障害監視にICMPECHO_REQUEST/ECHO_REPLYを用いるもののほか、独自のkeepaliveを用いるものであっても良い。また、マージン値の更新で0とする条件異常カウンタ15の値≧切り替え閾値を、マージン値を加味して、異常カウンタ15の値-マージン値≧切り替え閾値とするものであっても良い。上述した通信装置1-1に設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム以下、プログラムと称するを通信装置1-1にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを通信装置1-1に読み込ませ、実行するものであっても良い。通信装置1-1にて読取可能な記録媒体とは、フロッピー登録商標ディスク、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、通信装置1-1に内蔵されたROM、RAM等のメモリやHDD等を指す。この記録媒体に記録されたプログラムは、通信装置1-1に設けられたCPU不図示にて読み込まれ、CPUの制御にしたがって、上述したものと同様の処理が行われる。ここで、CPUは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。"