(57)【要約】【課題】通信経路の品質の不安定さに基づいた経路選択を行う。【解決手段】複数の通信経路と接続された通信装置が現在選択している通信経路の状態を確認するための経路確認要求信号を送信し、送信した経路確認要求信号に対する応答信号を受信しなかった後、経路確認要求信号に対して応答信号を受信した場合、経路確認要求信号に対して応答信号を受信しなかった連続回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の回数とに基づいて算出し、経路確認要求信号に対して応答信号を受信した後、経路確認要求信号に対して応答信号を受信しなかった場合、算出された補正値に基づいて初期値を算出し、算出した初期値からカウントした回数が閾値以上となった場合、通信経路を現在選択している通信経路から複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える。【選択図】図１
2010213079.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信経路と接続され、該複数の通信経路のうち１つの通信経路を選択して通信を行う通信装置であって、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信し、該送信した経路確認要求信号に対する応答信号を受信する経路状態確認部と、
前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数をカウントする異常カウンタと、
前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した場合、前記異常カウンタの初期値を算出するための補正値を現在の補正値と現在の異常カウンタの値とに基づいて算出し、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した後、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出し、前記異常カウンタの値を前記算出した初期値からカウントし、該カウントした異常カウンタの値があらかじめ設定された閾値以上となった場合、前記通信経路を切り替える指示を行う状態算出部と、
前記状態算出部からの指示に基づいて、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える経路選択部とを有する通信装置。
【請求項２】
請求項１に記載の通信装置において、
前記状態算出部は、前記補正値を算出した後、前記異常カウンタの値をリセットすることを特徴とする通信装置。
【請求項３】
請求項１または請求項２に記載の通信装置において、
前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した連続回数をカウントする正常カウンタを有し、
前記状態算出部は、前記補正値と１とを加算した値から前記正常カウンタの値を差し引いた値を前記初期値として算出し、該初期値を算出した後、前記正常カウンタの値をリセットすることを特徴とする通信装置。
【請求項４】
複数の通信経路と接続された通信装置が通信を行う通信経路を前記複数の通信経路のうちから選択する経路選択方法であって、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信する処理と、
前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する処理と、
前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第１の回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の第１の回数とに基づいて算出する処理と、
前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出する処理と、
前記第１の回数を前記算出した初期値からカウントする処理と、
前記カウントした第１の回数とあらかじめ設定された閾値とを比較する処理と、
前記カウントした第１の回数が前記閾値以上となった場合、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える処理とを有する経路選択方法。
【請求項５】
請求項４に記載の経路選択方法において、
前記補正値を算出した後、前記第１の回数をリセットする処理を有することを特徴とする経路選択方法。
【請求項６】
請求項４または請求項５に記載の経路選択方法において、
前記経路確認要求信号に対して前記応答信号を受信した連続回数である第２の回数をカウントする処理と、
前記補正値と１とを加算した値から前記第２の回数を差し引いた値を前記初期値として算出する処理と、
前記初期値を算出した後、前記第２の回数をリセットする処理とを有することを特徴とする経路選択方法。
【請求項７】
複数の通信経路と接続され、該複数の通信経路のうち１つの通信経路を選択して通信を行う通信装置に、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信する手順と、
前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する手順と、
前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第１の回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の第１の回数とに基づいて算出する手順と、
前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出する手順と、
前記第１の回数を前記算出した初期値からカウントする手順と、
前記カウントした第１の回数とあらかじめ設定された閾値とを比較する手順と、
前記カウントした第１の回数が前記閾値以上となった場合、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える手順とを実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記補正値を算出した後、前記第１の回数をリセットする手順を実行させるためのプログラム。
【請求項９】
請求項７または請求項８に記載のプログラムにおいて、
前記経路確認要求信号に対して前記応答信号を受信した連続回数である第２の回数をカウントする手順と、
前記補正値と１とを加算した値から前記第２の回数を差し引いた値を前記初期値として算出する手順と、
前記初期値を算出した後、前記第２の回数をリセットする手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信経路から１つの通信経路を選択する通信装置、経路選択方法及びプログラムに関する。
【背景技術】
【０００２】
一般的にネットワークに適用されている通信装置は、当該通信装置に接続された複数の通信装置間にて送受信されるデータが通過する通信経路（ネットワーク）を選択する機能を有している。選択される通信経路は、当該通信経路の状態に基づいて選択される。例えば、現在選択されている通信経路に障害が発生したと判断された際、他の通信経路が選択され、当該データが通過する通信経路が現在選択されている通信経路から他の通信経路へ切り替えられる技術が考えられている（例えば、特許文献１参照。）。
【０００３】
なお、このとき通信経路における障害発生を判断する手段として、経路の状態を確認するための確認メッセージ及びそれに対する返信メッセージが用いられている。確認メッセージを送信し、当該確認メッセージに対する返信メッセージを受信しない場合には、通信経路に障害が発生したと判断される。
【０００４】
また、送信した確認メッセージに対する返信メッセージを受信しない場合、即座に通信経路を切り替えるのではなく、所定の保護段数（回数の閾値）を用いるものが一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１７３１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した技術においては、返信メッセージを受信したり受信しなかったりといった（返信メッセージを受信しない回数が保護段数を超えない）状態が続いた場合、つまり、回線品質が不安定になる障害が発生した場合、通信経路を切り替えることはできないという問題点がある。
【０００７】
本発明の目的は、上述した課題を解決する通信装置、経路選択方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の通信装置は、
複数の通信経路と接続され、該複数の通信経路のうち１つの通信経路を選択して通信を行う通信装置であって、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信し、該送信した経路確認要求信号に対する応答信号を受信する経路状態確認部と、
前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数をカウントする異常カウンタと、
前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した場合、前記異常カウンタの初期値を算出するための補正値を現在の補正値と現在の異常カウンタの値とに基づいて算出し、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信した後、前記経路状態確認部が前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出し、前記異常カウンタの値を前記算出した初期値からカウントし、該カウントした異常カウンタの値があらかじめ設定された閾値以上となった場合、前記通信経路を切り替える指示を行う状態算出部と、
前記状態算出部からの指示に基づいて、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える経路選択部とを有する。
【０００９】
また、本発明の経路選択方法は、
複数の通信経路と接続された通信装置が通信を行う通信経路を前記複数の通信経路のうちから選択する経路選択方法であって、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信する処理と、
前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する処理と、
前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第１の回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の第１の回数とに基づいて算出する処理と、
前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出する処理と、
前記第１の回数を前記算出した初期値からカウントする処理と、
前記カウントした第１の回数とあらかじめ設定された閾値とを比較する処理と、
前記カウントした第１の回数が前記閾値以上となった場合、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える処理とを有する。
【００１０】
また、本発明のプログラムは、
複数の通信経路と接続され、該複数の通信経路のうち１つの通信経路を選択して通信を行う通信装置に実行させるためのプログラムであって、
現在選択している通信経路の状態を確認するための経路確認要求信号を送信する手順と、
前記送信した経路確認要求信号に対する応答信号を受信したかどうかを確認する手順と、
前記経路確認要求信号に対して前記応答信号を受信しなかった後、前記経路確認要求信号に対して前記応答信号を受信した場合、前記経路確認要求信号に対して前記応答信号を受信しなかった連続回数である第１の回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の第１の回数とに基づいて算出する手順と、
前記経路確認要求信号に対して前記応答信号を受信した後、前記経路確認要求信号に対して前記応答信号を受信しなかった場合、前記算出された補正値に基づいて前記初期値を算出する手順と、
前記第１の回数を前記算出した初期値からカウントする手順と、
前記カウントした第１の回数とあらかじめ設定された閾値とを比較する手順と、
前記カウントした第１の回数が前記閾値以上となった場合、前記通信経路を現在選択している通信経路から前記複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える手順とを実行させる。
【発明の効果】
【００１１】
以上説明したように本発明においては、複数の通信経路と接続された通信装置が現在選択している通信経路の状態を確認するための経路確認要求信号を送信し、送信した経路確認要求信号に対する応答信号を受信しなかった後、経路確認要求信号に対して応答信号を受信した場合、経路確認要求信号に対して応答信号を受信しなかった連続回数をカウントする際の初期値を算出するための補正値を現在の補正値と現在の回数とに基づいて算出し、経路確認要求信号に対して応答信号を受信した後、経路確認要求信号に対して応答信号を受信しなかった場合、算出された補正値に基づいて初期値を算出し、算出した初期値からカウントした回数が閾値以上となった場合、通信経路を現在選択している通信経路から複数の通信経路のうち前記現在選択している通信経路以外の通信経路に切り替える構成としたため、通信経路の品質の不安定さに基づいた経路選択を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の通信装置の実施の一形態を示す図である。
【図２】図１に示した形態において、経路確認要求信号に対する応答信号が受信されなかった場合の経路選択方法を説明するためのフローチャートである。
【図３】図１に示した形態において、経路確認要求信号に対する応答信号が受信された場合の経路選択方法を説明するためのフローチャートである。
【図４】図１に示した形態におけるそれぞれの値の状態遷移を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１４】
図１は、本発明の通信装置の実施の一形態を示す図である。
【００１５】
本形態は図１に示すように、通信装置１−１，１−２と、メイン経路２と、迂回経路３と、通信端末４−１，４−２とから構成されている。
【００１６】
通信装置１−１，１−２は、通信端末４−１と通信端末４−２との間において送受信されるデータが通過する通信経路を選択する。
【００１７】
メイン経路２は、通信装置１−１と通信装置１−２とを接続し、通信端末４−１と通信端末４−２との間において送受信されるデータが通過する通常設定される第１の通信経路である。
【００１８】
迂回経路３は、通信装置１−１と通信装置１−２とを接続し、通信端末４−１と通信端末４−２との間において送受信されるデータが通過する経路の１つである。また、迂回経路３は、メイン経路２に障害が発生した場合に選択される第２の通信経路である。
【００１９】
通信端末４−１，４−２は、通信装置１−１，１−２のそれぞれ接続された端末である。
【００２０】
さらに、通信装置１−１には、経路状態確認部１１と、状態算出部１２と、経路選択部１３と、正常カウンタ１４と、異常カウンタ１５とが設けられている。
【００２１】
経路状態確認部１１は、メイン経路２の状態を確認する。確認方法としては、通信装置１−２へ経路確認要求信号を送信し、送信した経路確認要求信号に対する応答信号が受信されるかどうかに基づいて、メイン経路２に障害が発生しているかどうかを確認するものが一般的な方法である。本形態においては、この経路確認要求信号として、ＩＣＭＰ（Internet Control Message Protocol）のＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴを用いて、応答信号としてＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが用いるものを例に挙げて説明する。
【００２２】
状態算出部１２は、経路状態確認部１１にて確認されたメイン経路２の状態に基づいて、通信経路の切り替え／切り戻しを判断し、判断した結果を経路選択部１３へ指示する。ここで、通信経路の切り替えとは、通信経路をメイン経路２から迂回経路３へ変更することを示す。また、通信経路の切り戻しとは、通信経路を迂回経路３からメイン経路２へ変更することを示す。また、状態算出部１２は、経路状態確認部１１が送信した経路確認要求信号に対して応答信号を受信しなかった後、経路確認要求信号に対して応答信号を受信した場合、異常カウンタ１５の初期値を算出するためのマージン値を現在のマージン値と現在の異常カウンタ１５の値とに基づいて算出する。ここで、マージン値とは、異常カウンタ１５の初期値を補正する補正値である。また、状態算出部１２は、経路状態確認部１１が送信した経路確認要求信号に対して応答信号を受信した後、経路確認要求信号に対して応答信号を受信しなかった場合、算出されたマージン値に基づいて異常カウンタ１５の初期値を算出する。また、状態算出部１２は、初期値の算出後、異常カウンタ１５に算出した初期値からカウントさせる。また、状態算出部１２は、異常カウンタ１５の値があらかじめ設定された閾値とを比較し、異常カウンタ１５の値があらかじめ設定された閾値以上となった場合、経路選択部１３へ通信経路の切り替えを指示する。
【００２３】
経路選択部１３は、状態算出部１２からの指示に基づいて、経路の切り替え／切り戻しを行う。
【００２４】
正常カウンタ１４は、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信した連続回数（第２の回数）をカウントする。つまり、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信しない状態の後、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信した場合、次に経路確認要求信号に対する応答信号を受信しなくなるまでの間に、経路状態確認部１１が送信した経路確認要求信号に対する応答信号の受信回数をカウントする。また、正常カウンタ１４は、カウントした回数であるカウント値を状態算出部１２へ通知する。
【００２５】
異常カウンタ１５は、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信しなかった連続回数（第１の回数）をカウントする。つまり、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信した後、経路状態確認部１１が送信した経路確認要求信号に対する応答信号を受信しなかった場合、次に経路確認要求信号に対する応答信号を受信するまでの間に、経路状態確認部１１が送信した経路確認要求信号の送信回数をカウントする。また、異常カウンタ１５は、カウントした回数であるカウント値を状態算出部１２へ通知する。
【００２６】
なお、通信装置１−２は、通信装置１−１と同じ構成を有する。
【００２７】
以下に、図１に示した形態における経路選択方法について説明する。
【００２８】
図２は、図１に示した形態において、経路確認要求信号に対する応答信号が受信されなかった場合の経路選択方法を説明するためのフローチャートである。
【００２９】
経路状態確認部１１から送信されたＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴに対して、応答が無い、つまりＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが経路状態確認部１１にて受信されないと判断されると（ステップＳ２０）、状態算出部１２によって異常カウンタ１５の初期値が設定される（ステップＳ２１）。
【００３０】
ここで、ステップＳ２０の判断は、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴを送信する際に起動するタイマーを用いて行うものであっても良い。このタイマーは通信装置１−１に設けられているものであり、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹを受信した際にリセットされるものである。また、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴを送信したにもかかわらずＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹを受信しない場合、所定の時間が経過した時点で「ＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが受信されない」と判断するものである。
【００３１】
ここで、ステップＳ２１の処理について具体的に説明する。
【００３２】
ステップＳ２０にてＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが経路状態確認部１１にて受信されないと判断されると、現在選択している通信経路がメイン経路２であるかどうかが経路選択部１３にて判断される（ステップＳ２１１）。
【００３３】
現在選択している通信経路がメイン経路２であると判断されると、異常カウンタ１５の値が「０」であるかどうかが状態算出部１２によって判断される（ステップＳ２１２）。
【００３４】
異常カウンタ１５の値が「０」であると判断された場合、正常カウンタ１４の値が「（マージン値）＋１」よりも小さいかどうかが状態算出部１２によって判断される（ステップＳ２１３）。この「マージン値」は、異常カウンタ１５の初期値を算出するためのものであり、その設定方法は後述する。
【００３５】
正常カウンタ１４の値が「（マージン値）＋１」よりも小さいと判断された場合、状態算出部１２によって異常カウンタ１５の値が「（マージン値）＋１−（正常カウンタ１４の値）」に設定される（ステップＳ２１４）。この値が異常カウンタ１５の初期値となる。
【００３６】
その後、状態算出部１２によって正常カウンタ１４の値が「０」にリセットされる（ステップＳ２２）。また、ステップＳ２１１にて「Ｎｏ」の場合、あるいはステップＳ２１２にて「Ｎｏ」の場合、あるいはステップＳ２１３にて「Ｎｏ」の場合、ステップＳ２２の処理が行われる。
【００３７】
また、状態算出部１２によって異常カウンタ１５の値が１つインクリメント（カウント）される（ステップＳ２３）。
【００３８】
すると、異常カウンタ１５の値があらかじめ設定されている切り替え閾値以上かどうかが状態算出部１２によって判断される（ステップＳ２４）。
【００３９】
異常カウンタ１５の値が切り替え閾値以上であると判断された場合、状態算出部１２から経路選択部１３へ、通信経路をメイン経路２から迂回経路３へ切り替える指示が行われる。そして、通信経路をメイン経路２から迂回経路３へ切り替えるように指示された経路選択部１３にて、通信経路がメイン経路２から迂回経路３へ切り替えられる（ステップＳ２５）。
【００４０】
ここで、一点鎖線で囲ったステップＳ２１の処理が、一般的な技術にはない処理である。
【００４１】
図３は、図１に示した形態において、経路確認要求信号に対する応答信号が受信された場合の経路選択方法を説明するためのフローチャートである。
【００４２】
経路状態確認部１１から送信されたＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴに対して、応答がある、つまりＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが経路状態確認部１１にて受信されると（ステップＳ３０）、正常カウンタ１４の値が１つインクリメント（カウント）される（ステップＳ３１）。
【００４３】
その後、異常カウンタ１５の値が「０」であるかどうかが状態算出部１２によって判断される（ステップＳ３２１）。
【００４４】
異常カウンタ１５の値が「０」ではないと判断された場合、異常カウンタ１５の値があらかじめ設定されている切り替え閾値以上かどうかが状態算出部１２にて判断される（ステップＳ３２２）。
【００４５】
異常カウンタ１５の値が切り替え閾値以上であると判断された場合、状態算出部１２によってマージン値が「０」にリセットされる（ステップＳ３２３）。このマージン値は、上述した異常カウンタ１５の初期値の設定に用いられるものである。
【００４６】
一方、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上ではないと判断された場合、マージン値が現在のマージン値と現在の異常カウンタ１５の値とに基づいて状態算出部１２によって算出（更新）される（ステップＳ３２４）。具体的な算出方法は、「（マージン値）＝（（現在のマージン値）＋（異常カウンタ１５の値））÷２」である。なお、ここで端数は切り上げられる。
【００４７】
その後、状態算出部１２によって、異常カウンタ１５の値が「０」にリセットされる（ステップＳ３３）。
【００４８】
そして、正常カウンタ１４の値があらかじめ設定された切り戻し閾値とマージン値とを加算した値以上かどうかが状態算出部１２によって判断される（ステップＳ３４）。
【００４９】
また、ステップＳ３２１にて異常カウンタ１５の値が「０」であると判断された場合も、ステップＳ３４の処理が行われる。
【００５０】
ステップＳ３４にて正常カウンタ１４の値が切り戻し閾値とマージン値とを加算した値以上であると判断された場合、状態算出部１２によってマージン値が「０」にリセットされる（ステップＳ３５）。そして、状態算出部１２から経路選択部１３へ通信経路の切り戻しの指示が通知され、経路選択部１３によって通信経路が迂回経路３からメイン経路２へ切り戻される（ステップＳ３６）。
【００５１】
ここで、一点鎖線で囲ったステップＳ３２の処理が、一般的な技術にはない処理である。
【００５２】
以下に、２つの具体例を用いて経路選択方法について説明する。
【００５３】
この具体例は、切り戻し閾値が「５」、切り替え閾値が「１０」、正常カウンタ１４の値が「１００」、異常カウンタ１５の値が「０」、マージン値が「０」であり、メイン経路２の使用の状態から、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが２回連続して受信されず（以下、受信失敗と称する）、続いてＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹが２回連続して受信される（以下、受信成功と称する）状態が繰り返される場合を例に挙げる。
【００５４】
また、受信失敗では図２に示したフローチャートを用いて説明した処理が行われ、受信成功では図３に示したフローチャートを用いて説明した処理が行われる。
【００５５】
図４は、図１に示した形態におけるそれぞれの値の状態遷移を示す図である。
【００５６】
まず、１サイクル目の１回目では、受信が失敗する。
【００５７】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【００５８】
そして、ステップＳ２１３にて正常カウンタ１４の値「１００」が「（マージン値＝０）＋１」よりも小さくはないため、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「１」である。また、マージン値は「０」である。
【００５９】
そして、ステップＳ２４にて異常カウンタ１５の値「１」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【００６０】
続いて、１サイクル目の２回目では、受信が失敗する。
【００６１】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【００６２】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「２」である。また、マージン値は「０」である。
【００６３】
そして、ステップＳ２４にて異常カウンタ１５の値「２」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【００６４】
続いて、１サイクル目の３回目では、受信が成功する。
【００６５】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【００６６】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「２」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「０」と現在の異常カウンタ１５の値「２」とを足した値を２で割った数値「１」がマージン値となる。
【００６７】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【００６８】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「１」とを足した値以上ではないため、切り替えは行われない。
【００６９】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「１」である。
【００７０】
続いて、１サイクル目の４回目では、受信が成功する。
【００７１】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【００７２】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「１」とを足した値以上ではないため、切り替えは行われない。
【００７３】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「１」である。
【００７４】
続いて、２サイクル目の１回目では、受信が失敗する。
【００７５】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【００７６】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝１）＋１」よりも小さくはないため、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「１」である。また、マージン値は「１」である。
【００７７】
そして、ステップＳ２４にて異常カウンタ１５の値「１」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【００７８】
続いて、２サイクル目の２回目では、受信が失敗する。
【００７９】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【００８０】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「２」である。また、マージン値は「１」である。
【００８１】
そして、ステップＳ２４にて異常カウンタ１５の値「２」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【００８２】
続いて、２サイクル目の３回目では、受信が成功する。
【００８３】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【００８４】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「２」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「１」と現在の異常カウンタ１５の値「２」とを足した値を２で割った数値「２（端数切り上げ）」がマージン値となる。
【００８５】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【００８６】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「２」とを足した値以上ではないため、切り替えは行われない。
【００８７】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「２」である。
【００８８】
続いて、２サイクル目の４回目では、受信が成功する。
【００８９】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【００９０】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「１」とを足した値以上ではないため、切り替えは行われない。
【００９１】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「２」である。
【００９２】
続いて、３サイクル目の１回目では、受信が失敗する。
【００９３】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【００９４】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝２）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝２）＋１−（正常カウンタ１４の値＝２）」となる「１」に設定される。
【００９５】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「２」である。また、マージン値は「２」である。
【００９６】
そして、ステップＳ２４にて異常カウンタ１５の値「２」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【００９７】
続いて、３サイクル目の２回目では、受信が失敗する。
【００９８】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【００９９】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「３」である。また、マージン値は「２」である。
【０１００】
そして、ステップＳ２４にて異常カウンタ１５の値「３」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１０１】
続いて、３サイクル目の３回目では、受信が成功する。
【０１０２】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１０３】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「３」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「２」と現在の異常カウンタ１５の値「３」とを足した値を２で割った数値「３（端数切り上げ）」がマージン値となる。
【０１０４】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０１０５】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「３」とを足した値以上ではないため、切り替えは行われない。
【０１０６】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「３」である。
【０１０７】
続いて、３サイクル目の４回目では、受信が成功する。
【０１０８】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０１０９】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「３」とを足した値以上ではないため、切り替えは行われない。
【０１１０】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「３」である。
【０１１１】
続いて、４サイクル目の１回目では、受信が失敗する。
【０１１２】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０１１３】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝３）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝３）＋１−（正常カウンタ１４の値＝２）」となる「２」に設定される。
【０１１４】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「３」である。また、マージン値は「３」である。
【０１１５】
そして、ステップＳ２４にて異常カウンタ１５の値「３」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１１６】
続いて、４サイクル目の２回目では、受信が失敗する。
【０１１７】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０１１８】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「４」である。また、マージン値は「３」である。
【０１１９】
そして、ステップＳ２４にて異常カウンタ１５の値「４」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１２０】
続いて、４サイクル目の３回目では、受信が成功する。
【０１２１】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１２２】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「４」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「３」と現在の異常カウンタ１５の値「４」とを足した値を２で割った数値「４（端数切り上げ）」がマージン値となる。
【０１２３】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０１２４】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「４」とを足した値以上ではないため、切り替えは行われない。
【０１２５】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「４」である。
【０１２６】
続いて、４サイクル目の４回目では、受信が成功する。
【０１２７】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０１２８】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「４」とを足した値以上ではないため、切り替えは行われない。
【０１２９】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「４」である。
【０１３０】
続いて、５サイクル目の１回目では、受信が失敗する。
【０１３１】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０１３２】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝４）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝４）＋１−（正常カウンタ１４の値＝２）」となる「３」に設定される。
【０１３３】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「４」である。また、マージン値は「４」である。
【０１３４】
そして、ステップＳ２４にて異常カウンタ１５の値「４」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１３５】
続いて、５サイクル目の２回目では、受信が失敗する。
【０１３６】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０１３７】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「５」である。また、マージン値は「４」である。
【０１３８】
そして、ステップＳ２４にて異常カウンタ１５の値「５」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１３９】
続いて、５サイクル目の３回目では、受信が成功する。
【０１４０】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１４１】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「５」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「４」と現在の異常カウンタ１５の値「５」とを足した値を２で割った数値「５（端数切り上げ）」がマージン値となる。
【０１４２】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０１４３】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「５」とを足した値以上ではないため、切り替えは行われない。
【０１４４】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「５」である。
【０１４５】
続いて、５サイクル目の４回目では、受信が成功する。
【０１４６】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０１４７】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「５」とを足した値以上ではないため、切り替えは行われない。
【０１４８】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「５」である。
【０１４９】
続いて、６サイクル目の１回目では、受信が失敗する。
【０１５０】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０１５１】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝５）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝５）＋１−（正常カウンタ１４の値＝２）」となる「４」に設定される。
【０１５２】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「５」である。また、マージン値は「５」である。
【０１５３】
そして、ステップＳ２４にて異常カウンタ１５の値「５」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１５４】
続いて、６サイクル目の２回目では、受信が失敗する。
【０１５５】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０１５６】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「６」である。また、マージン値は「５」である。
【０１５７】
そして、ステップＳ２４にて異常カウンタ１５の値「６」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１５８】
続いて、６サイクル目の３回目では、受信が成功する。
【０１５９】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１６０】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「６」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「５」と現在の異常カウンタ１５の値「６」とを足した値を２で割った数値「６（端数切り上げ）」がマージン値となる。
【０１６１】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０１６２】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「６」とを足した値以上ではないため、切り替えは行われない。
【０１６３】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「６」である。
【０１６４】
続いて、６サイクル目の４回目では、受信が成功する。
【０１６５】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０１６６】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「６」とを足した値以上ではないため、切り替えは行われない。
【０１６７】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「６」である。
【０１６８】
続いて、７サイクル目の１回目では、受信が失敗する。
【０１６９】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０１７０】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝６）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝６）＋１−（正常カウンタ１４の値＝２）」となる「５」に設定される。
【０１７１】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「６」である。また、マージン値は「６」である。
【０１７２】
そして、ステップＳ２４にて異常カウンタ１５の値「６」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１７３】
続いて、７サイクル目の２回目では、受信が失敗する。
【０１７４】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０１７５】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「７」である。また、マージン値は「６」である。
【０１７６】
そして、ステップＳ２４にて異常カウンタ１５の値「７」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１７７】
続いて、７サイクル目の３回目では、受信が成功する。
【０１７８】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１７９】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「７」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「６」と現在の異常カウンタ１５の値「７」とを足した値を２で割った数値「７（端数切り上げ）」がマージン値となる。
【０１８０】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０１８１】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「７」とを足した値以上ではないため、切り替えは行われない。
【０１８２】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「７」である。
【０１８３】
続いて、７サイクル目の４回目では、受信が成功する。
【０１８４】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０１８５】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「７」とを足した値以上ではないため、切り替えは行われない。
【０１８６】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「７」である。
【０１８７】
続いて、８サイクル目の１回目では、受信が失敗する。
【０１８８】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０１８９】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝７）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝７）＋１−（正常カウンタ１４の値＝２）」となる「６」に設定される。
【０１９０】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「７」である。また、マージン値は「７」である。
【０１９１】
そして、ステップＳ２４にて異常カウンタ１５の値「７」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１９２】
続いて、８サイクル目の２回目では、受信が失敗する。
【０１９３】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０１９４】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「８」である。また、マージン値は「７」である。
【０１９５】
そして、ステップＳ２４にて異常カウンタ１５の値「７」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０１９６】
続いて、８サイクル目の３回目では、受信が成功する。
【０１９７】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０１９８】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「８」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「７」と現在の異常カウンタ１５の値「８」とを足した値を２で割った数値「８（端数切り上げ）」がマージン値となる。
【０１９９】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０２００】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「８」とを足した値以上ではないため、切り替えは行われない。
【０２０１】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「８」である。
【０２０２】
続いて、８サイクル目の４回目では、受信が成功する。
【０２０３】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０２０４】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「８」とを足した値以上ではないため、切り替えは行われない。
【０２０５】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「８」である。
【０２０６】
続いて、９サイクル目の１回目では、受信が失敗する。
【０２０７】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０２０８】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝８）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝８）＋１−（正常カウンタ１４の値＝２）」となる「７」に設定される。
【０２０９】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「８」である。また、マージン値は「８」である。
【０２１０】
そして、ステップＳ２４にて異常カウンタ１５の値「８」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０２１１】
続いて、９サイクル目の２回目では、受信が失敗する。
【０２１２】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０２１３】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「９」である。また、マージン値は「８」である。
【０２１４】
そして、ステップＳ２４にて異常カウンタ１５の値「９」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０２１５】
続いて、９サイクル目の３回目では、受信が成功する。
【０２１６】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「１」となる。
【０２１７】
ステップＳ３２１にて異常カウンタ１５の値が「０」ではないため、ステップＳ３２２にて異常カウンタ１５の値が切り替え閾値以上かどうかが判断される。ここでは、異常カウンタ１５の値「９」が切り替え閾値「１０」以上ではないため、ステップＳ３２４にて現在のマージン値「８」と現在の異常カウンタ１５の値「９」とを足した値を２で割った数値「９（端数切り上げ）」がマージン値となる。
【０２１８】
その後、ステップＳ３３にて異常カウンタ１５がリセットされる（異常カウンタ１５の値が「０」に設定される）。
【０２１９】
ステップＳ３４にて正常カウンタ１４の値「１」が、切り戻し閾値「５」とマージン値「９」とを足した値以上ではないため、切り替えは行われない。
【０２２０】
この状態で、正常カウンタ１４の値は「１」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「９」である。
【０２２１】
続いて、９サイクル目の４回目では、受信が成功する。
【０２２２】
受信が成功したため、ステップＳ３０にて応答ありとなり、ステップＳ３１にて正常カウンタ１４の値が「＋１」カウントされ、「２」となる。
【０２２３】
ステップＳ３２１にて異常カウンタ１５の値が「０」であり、ステップＳ３４にて正常カウンタ１４の値「２」が、切り戻し閾値「５」とマージン値「９」とを足した値以上ではないため、切り替えは行われない。
【０２２４】
この状態で、正常カウンタ１４の値は「２」であり、また異常カウンタ１５の値は「０」である。また、マージン値は「９」である。
【０２２５】
続いて、１０サイクル目の１回目では、受信が失敗する。
【０２２６】
ここでは、上述した状態でステップＳ２０にて応答無しのため、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」であると判断される。
【０２２７】
そして、ステップＳ２１３にて正常カウンタ１４の値「２」が「（マージン値＝９）＋１」よりも小さいため、ステップＳ２１４にて、異常カウンタ１５の値が「（マージン値＝９）＋１−（正常カウンタ１４の値＝２）」となる「８」に設定される。
【０２２８】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「９」である。また、マージン値は「９」である。
【０２２９】
そして、ステップＳ２４にて異常カウンタ１５の値「９」が切り替え閾値「１０」以上ではないため、迂回経路３への切り替えは行われない。
【０２３０】
続いて、１０サイクル目の２回目では、受信が失敗する。
【０２３１】
ステップＳ２０にて応答無し、ステップＳ２１１にて現在の選択経路がメイン経路２であり、ステップＳ２１２にて異常カウンタ１５の値が「０」ではないと判断される。
【０２３２】
すると、ステップＳ２２にて正常カウンタ１４がリセットされ（正常カウンタ１４の値が「０」に設定され）、ステップＳ２３にて異常カウンタ１５の値が「＋１」カウントされる。この状態で、正常カウンタ１４の値は「０」であり、また異常カウンタ１５の値は「１０」である。また、マージン値は「９」である。
【０２３３】
そして、ステップＳ２４にて異常カウンタ１５の値「１０」が切り替え閾値「１０」以上であるため、ステップＳ２５にて迂回経路３への切り替えが行われる。
【０２３４】
このように、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹの受信成功を挟んだＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹの受信失敗を考慮することで、メイン経路２から迂回経路３への切り替えが行われる。
【０２３５】
上述した例では、メイン経路２の品質が不安定になった場合の異常カウンタ１５の初期化を現在のマージン値と正常カウンタ１４との差分を基としているが、独自の値を基としてもいい。例えば、前回の異常カウンタ１５の値を記憶しておき、それと正常カウンタ１４の値との差分を基とするなどが考えられる。
【０２３６】
また、ＩＣＭＰ  ＥＣＨＯ＿ＲＥＱＵＥＳＴ／ＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹによる障害監視以外の方式であっても良い。例えば独自のｋｅｅｐａｌｉｖｅ方式が考えられる。
【０２３７】
このように、本発明では異常カウンタ１５の初期化部分にて異常カウンタ１５をメイン経路２の状態に応じた値で初期化することで、メイン経路２が不安定で、連続したＩＣＭＰ  ＥＣＨＯ＿ＲＥＰＬＹの受信失敗がなくても、メイン経路２から迂回経路３へ切り替えることができる。
【０２３８】
これにより回線品質の不安定さのために切り替え閾値を小さく設定する必要がなくなる。
【０２３９】
なお、上述した処理は、目的に応じて作製された論理回路で行うようにしても良い。また、処理内容を記述したプログラムを通信装置１−１，１−２にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを通信装置１−１，１−２に読み込ませ、実行するものであっても良い。通信装置１−１，１−２にて読取可能な記録媒体とは、フロッピーディスク（登録商標）、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、通信装置１−１，１−２に内蔵されたＨＤＤ等を指す。この記録媒体に記録されたプログラムは、通信装置１−１，１−２内のＣＰＵ（不図示）にて読み込まれ、ＣＰＵの制御によって、上述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【符号の説明】
【０２４０】
１−１，１−２    通信装置
２    メイン経路
３    迂回経路
４−１，４−２    通信端末
１１    経路状態確認部
１２    状態算出部
１３    経路選択部
１４    正常カウンタ
１５    異常カウンタ
【図１】
2010213079.tif 000003
【図２】
2010213079.tif 000004
【図３】
2010213079.tif 000005
【図４】
2010213079.tif 000006