(57)【要約】【課題】無瞬断切替えを提供する伝送システムにおいて、障害の誤検出を回避または抑制する。【解決手段】伝送装置は、正常性監視部および障害監視部を備え、送信ノードから第１の経路および第２の経路を介して冗長的に送信されるパケットを受信して処理する。正常性監視部は、第１の経路および第２の経路の正常性をそれぞれ監視する。障害性監視部は、伝送装置に到着するパケットに付与されている時刻情報を利用して、正常性監視部により正常と判定されなかった経路の障害を監視する。【選択図】図１５
2019047231.tif 000002
【特許請求の範囲】
【請求項１】
送信ノードから第１の経路および第２の経路を介して冗長的に送信されるパケットを受信して処理する伝送装置であって、
前記第１の経路および前記第２の経路の正常性をそれぞれ監視する正常性監視部と、
前記伝送装置に到着するパケットに付与されている時刻情報を利用して、前記正常性監視部により正常と判定されなかった経路の障害を監視する障害監視部と、
を備える伝送装置。
【請求項２】
前記送信ノードと前記伝送装置との間における前記第１の経路の伝送遅延を測定する測定部をさらに備え、
前記測定部により測定された伝送遅延が所定の範囲内であれば、前記正常性監視部は、前記第１の経路が正常であると判定する
ことを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記送信ノードと前記伝送装置との間における前記第１の経路の伝送遅延を測定する測定部をさらに備え、
前記測定部により測定された伝送遅延が、前記第１の経路の伝送遅延の平均値から前記第１の経路の伝送遅延の揺らぎの最大値を引き算することで得られる第１の閾値よりも大きく、且つ、前記平均値に前記最大値を加算することで得られる第２の閾値よりも小さいときは、前記正常性監視部は、前記第１の経路が正常であると判定する
ことを特徴とする請求項１に記載の伝送装置。
【請求項４】
前記第１の経路を介して前記伝送装置に到着する受信パケットを格納するパケットバッファと、
前記パケットバッファから前記受信パケットを出力する予定時刻を算出する出力予定時刻算出部と、をさらに備え、
前記正常性監視部は、前記出力予定時刻算出部により算出される予定時刻と現在時刻との差分が所定時間よりも小さければ、前記第１の経路が正常であると判定する
ことを特徴とする請求項１に記載の伝送装置。
【請求項５】
前記第１の経路を介して前記伝送装置に到着する受信パケットを格納するパケットバッファと、
前記パケットバッファから前記受信パケットを出力する予定時刻を算出する出力予定時刻算出部と、をさらに備え、
前記第１の経路の伝送遅延が前記第２の経路の伝送遅延よりも大きく、且つ、前記予定時刻が現在時刻よりも後であり、且つ、前記予定時刻が前記第１の経路の伝送遅延の揺らぎの最大値の２倍を現在時刻に加算することで得られる閾値時刻よりも前であれば、前記正常性監視部は、前記第１の経路が正常であると判定する
ことを特徴とする請求項１に記載の伝送装置。
【請求項６】
前記第１の経路を介して前記伝送装置に到着する受信パケットを格納するパケットバッファと、
前記パケットバッファから前記受信パケットを出力する予定時刻を算出する出力予定時刻算出部と、をさらに備え、
前記第１の経路の伝送遅延が前記第２の経路の伝送遅延よりも小さく、且つ、前記予定時刻が現在時刻よりも後であり、且つ、前記予定時刻が前記第１の経路の伝送遅延の揺らぎの最大値の２倍および前記第１の経路の伝送遅延と前記第２の経路の伝送遅延との差分を現在時刻に加算することで得られる閾値時刻よりも前であれば、前記正常性監視部は、前記第１の経路が正常であると判定する
ことを特徴とする請求項１に記載の伝送装置。
【請求項７】
前記障害監視部は、
前記第１の経路を介して前記伝送装置に到着するパケットに付与されている時刻情報に基づいて前記第１の経路の伝送遅延を測定し、
前記第２の経路を介して前記伝送装置に到着するパケットに付与されている時刻情報に基づいて前記第２の経路の伝送遅延を測定し、
前記第１の経路が前記正常性監視部により正常と判定されず、且つ、前記第１の経路の伝送遅延が前記第２の経路の伝送遅延よりも大きいときに、前記第１の経路の伝送遅延と前記第２の経路の伝送遅延との差分が所定の閾値よりも大きいか否かに基づいて前記第１の経路の障害を監視する
ことを特徴とする請求項１〜６のいずれか１つに記載の伝送装置。
【請求項８】
第１の伝送装置から第２の伝送装置に第１の経路および第２の経路を介して冗長的にパケットが伝送されるネットワークにおいて、前記第２の伝送装置により使用される障害監視方法であって、
前記第１の経路および前記第２の経路の正常性をそれぞれ監視し、
前記第２の伝送装置に到着するパケットに付与されている時刻情報を利用して、正常と判定されなかった経路の障害を監視する
ことを特徴とする障害監視方法。
【請求項９】
第１の伝送装置から第２の伝送装置に第１の経路および第２の経路を介して冗長的にパケットを伝送するネットワークシステムであって、
前記第１の伝送装置は、
パケットに時刻情報を付与する付与部と、
前記時刻情報が付与されたパケットを前記第１の経路および前記第２の経路を介して冗長的に前記第２の伝送装置に送信する送信部と、を備え、
前記第２の伝送装置は、
前記第１の経路および前記第２の経路の正常性をそれぞれ監視する正常性監視部と、
前記第２の伝送装置に到着するパケットに付与されている時刻情報を利用して、前記正常性監視部により正常と判定されなかった経路の障害を監視する障害監視部と、を備える
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送装置および障害検出方法に係わる。
【背景技術】
【０００２】
品質の高いデータ伝送を実現するための技術の１つとして、冗長パケット伝送システムが実用化されている。冗長パケット伝送システムにおいては、パケット送信装置は、物理的に異なる２つの経路を介して同じパケットをパケット受信装置へ送信する。このパケットには、同じシーケンス番号および同じ識別子が付加されている。パケット受信装置は、シーケンス番号および識別子を利用して各受信パケットを識別する。そして、パケット受信装置は、２つの経路を介して受信する同じパケットのうちの一方を選択してクライアントに転送する。
【０００３】
さらに高い信頼性を実現するために、上述の冗長パケット伝送システムにおいて無瞬断切替えが実用化されている。無瞬断切替えは、冗長化された２つの経路のうちの一方でパケットロスが発生した場合、或いは大きな遅延が発生した場合に、データストリームを停止させることなくパケット転送を継続することができる。
【０００４】
なお、パケット網内における伝送路故障、伝送路上でのパケット損失、遅延変動が発生した場合でも、瞬断なくパケット信号からＳＴＭ信号を復元できる無瞬断パケット伝送装置が提案されている（例えば、特許文献１）。タイムスタンプ情報を参照して受信フレームと先行フレームとの間の間隔を特定して維持する方法が提案されている（例えば、特許文献２）。
【０００５】
複数の冗長系間で主信号のパスが多重化された伝送システムにおいて、主信号のパスが正常か否かを監視する装置が知られている（例えば、特許文献３）。通信回線を二重化した通信装置において、０系および１系が同時に警報解除となる異常が発生しても正常な切替え動作を行う無瞬断切替え方法が知られている（例えば、特許文献４）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１７８６６５号公報
【特許文献２】特開２０１３−０１２８２７号公報
【特許文献３】特開平５−２９２１１３号公報
【特許文献４】特開平６−１６４５５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の無瞬断切替えにおいては、パケット受信装置は、例えば、２つの経路の伝送遅延の差分に基づいて伝送システムが正常か否かを判定する。そして、障害が検出されたときは、パケット受信装置は、自律的に障害復帰処理を実行する。
【０００８】
しかし、２つの経路の伝送遅延の差分に基づいて伝送システムが正常か否かを判定する方法では、一方の経路が正常であるにもかかわらず双方の経路において障害が発生したと判定されることがある。すなわち、誤検出が発生し得る。そして、このような誤検出が発生すると、２つの経路のうちの一方が正常であるにもかかわらず、伝送システムは、無瞬断切替えを提供できずに通信が一時的に停止してしまうことがある。
【０００９】
本発明の１つの側面に係わる目的は、無瞬断切替えを提供する伝送システムにおいて、障害の誤検出を回避または抑制することである。
【課題を解決するための手段】
【００１０】
本発明の１つの態様の伝送装置は、送信ノードから第１の経路および第２の経路を介して冗長的に送信されるパケットを受信して処理する。この伝送装置は、前記第１の経路および前記第２の経路の正常性をそれぞれ監視する正常性監視部と、前記伝送装置に到着するパケットに付与されている時刻情報を利用して、前記正常性監視部により正常と判定されなかった経路の障害を監視する障害監視部と、を備える。
【発明の効果】
【００１１】
上述の態様によれば、無瞬断切替えを提供する伝送システムにおいて、障害の誤検出が回避または抑制される。
【図面の簡単な説明】
【００１２】
【図１】パケット伝送装置が使用されるネットワークの一例を示す図である。
【図２】パケット伝送装置のハードウェア構成の一例を示す図である。
【図３】パケット送受信部の一例を示す図である。
【図４】無瞬断切替えの一例を示す図である。
【図５】位相制御の概要を示す図である。
【図６】時計差および補正時刻の計算の一例を示す図である。
【図７】位相制御処理の一例を示すフローチャートである。
【図８】位相制御の前処理の一例を示すフローチャートである。
【図９】ＤＥＱ判定部の動作の一例を示す図である。
【図１０】障害監視の一例を示すフローチャートである。
【図１１】位相制御および障害監視の一例を示す図（その１）である。
【図１２】位相制御および障害監視の一例を示す図（その２）である。
【図１３】位相制御および障害監視の一例を示す図（その３）である。
【図１４】タイムスタンプについて説明する図である。
【図１５】本発明の実施形態に係わるパケット伝送装置に実装される位相制御部の一例を示す図である。
【図１６】位相制御部の処理の一例を示すフローチャートである。
【図１７】位相制御部の処理の他の例を示すフローチャートである。
【図１８】位相制御部の処理のさらに他の例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態に係わるパケット伝送装置が使用されるネットワークの一例を示す。パケット伝送装置１（１Ｘ、１Ｙ）は、１または複数のクライアントを収容することができる。また、パケット伝送装置１は、複数の中継網に接続される。図１に示す例では、パケット伝送装置１は、中継網２Ａおよび中継網２Ｂに接続されている。各中継網２Ａ、２Ｂの各ノードには、ルータ３が実装されている。ルータ３は、中継機器の一例であり、受信パケットのヘッダに基づいてそのパケットを宛先へ向けて転送する。
【００１４】
パケット伝送装置１Ｘ、１Ｙ間には、複数のパスが設定される。図１に示す例では、同じパケットが中継網２Ａおよび中継網２Ｂを介してパケット伝送装置１Ｘからパケット伝送装置１Ｙに伝送されるように２本のパスが設定される。すなわち、物理的に異なる２つの経路を介してパケット伝送装置１Ｘからパケット伝送装置１Ｙに同じパケットが冗長的に伝送される。この実施例では、例えば、ＲＴＰ（Real-time Transport Protocol）パケットがパケット伝送装置１Ｘからパケット伝送装置１Ｙに伝送される。なお、図１においては、中継網２Ａ、２Ｂが互いに分離されて描かれているが、中継網２Ａ、２Ｂは互いに物理的に分離されている必要はない。
【００１５】
以下の記載では、中継網２Ａおよび中継網２Ｂを介して設定される２本のパスの経路を「経路Ａ」および「経路Ｂ」と呼ぶことがある。また、経路Ａおよび経路Ｂを介してパケットを冗長的に送信するパケット伝送装置１Ｘを「送信ノード」と呼ぶことがある。
【００１６】
図２は、パケット伝送装置のハードウェア構成の一例を示す。パケット伝送装置１は、クライアントＩＦカード１１、中継網ＩＦカード１４（１４Ａ、１４Ｂ）、ＣＰＵカード１５、クロック生成器１６、クロックＩＦカード１７を備える。なお、パケット伝送装置１は、図２に示していない他の要素または機能を備えていてもよい。
【００１７】
クライアントＩＦカード１１は、クライアントを収容することができる。クライアント回線は、例えば、イーサネット（登録商標）により実現される。また、クライアントＩＦカード１１は、Ｌ２スイッチ１２およびパケット送受信部１３を備える。Ｌ２スイッチ１２は、レイヤ２におけるパケット処理および帯域を制御する。パケット送受信部１３は、無瞬断切替え機能を提供する。中継網ＩＦカード１４は、パケット伝送装置１と中継網２Ａ、２Ｂとの間のインタフェースを提供する。すなわち、中継網ＩＦカード１４は、パケット伝送装置１と中継網２Ａ、２Ｂとの間で信号のフォーマットを変換する。ＣＰＵカード１５は、パケット伝送装置１内のソフトウェアの設定、警報の出力、統計情報の収集などを実行する。クロックＩＦカード１７は、クロック生成器１６から出力されるクロック信号に基づいて、パケット伝送装置１内で必要なクロック信号を生成して各カードに供給する。
【００１８】
パケット伝送装置１Ｘからパケット伝送装置１Ｙへデータを伝送するケースでは、パケット伝送装置１Ｘは、同じパケットを冗長的に中継網２Ａ、２Ｂへ出力する。この場合、パケット伝送装置１Ｙは、中継網２Ａ、２Ｂを介してパケットを受信する。そして、パケット伝送装置１Ｙは、２個の受信パケットのうちの一方を選択して宛先クライアントに転送する。このように、パケット伝送装置１Ｘ、１Ｙは、冗長パケット伝送を提供する。
【００１９】
図３は、パケット送受信部１３の一例を示す。パケット送受信部１３は、図３に示すように、パケット送信部２０およびパケット受信部３０を備える。
【００２０】
パケット送信部２０は、ユーザパケット受信部２１、パケット識別部２２、ヘッダ付与部２３、中継網送信部２４Ａ、２４Ｂを備える。なお、パケット送信部２０は、図３に示していない他の要素または機能を備えていてもよい。また、中継網送信部２４Ａ、２４Ｂは、それぞれ図２に示す中継網ＩＦ１４Ａ、１４Ｂに実装されるようにしてもよい。
【００２１】
ユーザパケット受信部２１は、クライアント端末から出力されるユーザパケットを終端する。また、ユーザパケット受信部２１は、ＦＥＣ（Forward Error Correction）を利用してユーザパケットの正常性をチェックする。このとき、異常パケットは廃棄される。
【００２２】
パケット識別部２２は、ユーザパケットのヘッダ（または、ＶＬＡＮタグ）に基づいてフローを識別し、そのユーザパケットに対して無瞬断切替え処理を実行するか否かを判定する。無瞬断切替え処理を実行するか否かは、例えば、フロー毎に予め決められている。なお、以下の記載では、無瞬断切替えが適用されるパケットを「無瞬断パケット」と呼ぶことがある。また、無瞬断切替えが適用されないパケットを「通常パケット」と呼ぶことがある。
【００２３】
ヘッダ付与部２３は、ユーザパケットに対して装置内ヘッダを付与する。装置内ヘッダは、パケット伝送装置１により使用される制御情報を含む。すなわち、装置内ヘッダは、無瞬断切替えを実行するか否かを表す無瞬断フラグ、およびフローを識別するフロー番号を含む。また、ヘッダ付与部２３は、無瞬断パケットに対して無瞬断ヘッダを付与する。無瞬断ヘッダは、シーケンス番号（ＳＮ）およびタイムスタンプ（ＴＳ）を含む。シーケンス番号は、フロー毎に生成される。タイムスタンプは、パケット送信部２０がクライアントからユーザパケットを受信した時刻を表す。なお、タイムスタンプは、時刻情報の一例である。
【００２４】
パケット送信部２０が通常パケットを送信するときは、ヘッダ付与部２３は、その通常パケットを中継網送信部２４Ａまたは２４Ｂのいずれか一方に渡す。これに対して、パケット送信部２０が無瞬断パケットを送信するときは、ヘッダ付与部２３は、その無瞬断パケットを中継網送信部２４Ａおよび２４Ｂの双方に渡す。
【００２５】
中継網送信部２４Ａ、２４Ｂは、パケット伝送装置１と中継網２Ａ、２Ｂとの間で信号のフォーマットを変換する。なお、中継網送信部２４Ａから出力されるパケットは中継網２Ａを介して伝送され、中継網送信部２４Ｂから出力されるパケットは中継網２Ｂを介して伝送される。
【００２６】
パケット受信部３０は、図３に示すように、中継網受信部３１Ａ、３１Ｂ、パケット識別部３２Ａ、３２Ｂ、パケットバッファ部３３Ａ、３３Ｂ、位相制御部３４、パケット管理部３５Ａ、３５Ｂ、ＤＥＱ判定部３６、パケット出力部３７、ユーザパケット送信部３８を備える。なお、パケット受信部３０は、図３に示していない他の要素または機能を備えていてもよい。また、中継網受信部３１Ａ、３１Ｂは、それぞれ図２に示す中継網ＩＦ１４Ａ、１４Ｂに実装されるようにしてもよい。
【００２７】
中継網受信部３１Ａ、３１Ｂは、それぞれ中継網２Ａ、２Ｂから受信するパケットを終端する。また、中継網受信部３１Ａ、３１Ｂは、ＦＥＣを利用してユーザパケットの正常性をチェックする。このとき、異常パケットは廃棄される。
【００２８】
パケット識別部３２Ａ、３２Ｂは、受信パケットに付与されている装置内ヘッダに基づいて、受信パケットが無瞬断パケットであるか通常パケットであるかを判定する。また、パケット識別部３２Ａ、３２Ｂは、受信パケットに格納されているデータ（以下、パケットデータ）を、それぞれ、パケットバッファ部３３Ａ、３３Ｂに送信する。さらに、パケット識別部３２Ａ、３２Ｂは、受信パケットのヘッダに格納されている情報（以下、パケット情報）を位相制御部３４に送信する。パケット情報は、フロー番号、無瞬断フラグ、シーケンス番号、タイムスタンプを含む。
【００２９】
パケットバッファ部３３Ａ、３３Ｂは、それぞれパケット識別部３２Ａ、３２Ｂから受信するパケットデータをバッファメモリに書き込む。このとき、パケットバッファ部３３Ａ、３３Ｂは、それぞれ書込みポインタおよびパケットデータの長さを表すレングス情報をパケット管理部３５Ａ、３５Ｂに通知する。さらに、パケットバッファ部３３Ａ、３３Ｂは、ＤＥＱ判定部３６から与えられるＤＥＱ指示に応じて、対応するパケットデータをバッファメモリから読み出してパケット出力部３７に送信する。
【００３０】
位相制御部３４は、受信パケットについてパケット制御情報を生成し、パケット管理部３５Ａ、３５Ｂに与える。パケット制御情報は、フロー番号、無瞬断フラグ、シーケンス番号、出力予定時刻情報を含む。出力予定時刻は、以下のようにして計算される。
【００３１】
パケット受信部３０が無瞬断パケットを受信したときは、位相制御部３４は、受信パケットのタイムスタンプを利用して時計差を計算する。時計差は、送信ノードの時計による時刻と受信ノード（すなわち、自ノード）の時計による時刻との差を表す。すなわち、時計差は、送信ノードと受信ノードとの間の伝送遅延を表す。なお、時計差は、経路Ａおよび経路Ｂそれぞれについて計算される。また、位相制御部３４は、経路Ａの時計差および経路Ｂの時計差に基づいて、経路Ａ、Ｂ間の遅延差を計算する。遅延差は、経路Ａの時計差と経路Ｂの時計差との差分に相当する。すなわち、遅延差は、経路Ａの伝送遅延と経路Ｂの伝送遅延との差分に相当する。そして、位相制御部３４は、経路Ａ、Ｂ間の遅延差および予め決められている揺らぎ吸収時間に基づいて、各パケットの出力予定時刻を計算する。尚、パケット受信部３０が通常パケットを受信したときは、出力予定時刻として「現在時刻」が設定される。
【００３２】
パケット管理部３５Ａ、３５Ｂは、位相制御部３４から与えられるパケット制御情報、およびパケットバッファ部３３Ａ、３３Ｂから与えられる書込みポインタおよびレングス情報を、ＦＩＦＯメモリを用いて管理する。そして、パケット管理部３５Ａ、３５Ｂは、ＦＩＦＯメモリの先頭に格納されるパケット制御情報をＤＥＱ判定部３６に通知する。
【００３３】
ＤＥＱ判定部３６は、現在時刻が受信パケットの出力予定時刻に達したときに、そのパケットを格納するパケットバッファ部３３Ａ、３３ＢにＤＥＱ指示を与える。このとき、ＤＥＱ指示の対象が無瞬断パケットであるときは、パケット制御情報を参照して無瞬断切替え制御が実行され、パケットバッファ部３３Ａ、３３Ｂの一方が選択される。なお、ＤＥＱ指示は、フロー番号、無瞬断フラグ、選択／非選択識別子を含む。選択／非選択識別子は、無瞬断切替え制御による選択の結果を表す。
【００３４】
パケット出力部３７は、パケットバッファ部３３Ａ、３３Ｂから出力されるパケットをユーザパケット送信部３８に導く。このとき、無瞬断パケットについては、パケット出力部３７は、選択／非選択識別子に応じてパケットを処理する。すなわち、選択されたパケットバッファ部３３Ａ、３３Ｂから読み出されたパケットはユーザパケット送信部３８に導かれ、他方のパケットバッファ部３３Ａ、３３Ｂから読み出されたパケットは廃棄される。さらに、パケット出力部３７は、無瞬断フローに対して出力断監視を実行し、その監視結果を位相制御部３４に通知する。出力断監視は、パケットの出力タイミングの間隔の異常をモニタする。
【００３５】
ユーザパケット送信部３８は、パケット出力部３７から与えられるパケットをユーザ網に出力する。このとき、ユーザパケット送信部３８は、パケット伝送装置１とユーザ網との間で信号のフォーマットを変換する。
【００３６】
＜無瞬断切替えについての説明＞
図４は、無瞬断切替えの一例を示す。この例では、パケット伝送装置１Ｘのパケット送信部２０からパケット伝送装置１Ｙのパケット受信部３０に無瞬断パケット１〜６が伝送される。無瞬断パケット１〜６は、中継網２Ａ、２Ｂを介して冗長的に伝送される。Ｔ１〜Ｔ５は、それぞれ、パケットの間隔を表す。
【００３７】
パケット送信部２０は、クライアントから送信される各パケットにシーケンス番号およびタイムスタンプを付与した後、各パケットをコピーする。そして、パケット送信部２０は、中継網２Ａ、２Ｂに各パケットを出力する。すなわち、経路Ａおよび経路Ｂを介して同じパケットが冗長的に伝送される。なお、図４に示す例では、中継網２Ａにおいてパケット２が損失し、中継網２Ｂにおいてパケット６が損失している。また、図４に示すように、中継網２Ａ、２Ｂにおいて、パケットの間隔が揺らぐことがある。
【００３８】
パケット受信部３０は、経路Ａおよび経路Ｂを介して受信するパケットに対して無瞬断切替えを実行する。すなわち、経路Ａおよび経路Ｂを介してパケット１を受信すると、パケット受信部３０は、それらのうちの一方を選択して宛先クライアントに転送する。この例では、経路Ａを介して受信したパケット１が宛先クライアントに転送される。次に、パケット受信部３０は、経路Ｂのみを介してパケット２を受信する。この場合、パケット受信部３０は、このパケット２を宛先クライアントに転送する。つづいて、経路Ｂを介して受信したパケット３〜５が宛先クライアントに転送される。この後、パケット受信部３０は、経路Ａのみを介してパケット６を受信する。この場合、パケット受信部３０は、このパケット６を宛先クライアントに転送する。
【００３９】
パケット受信部３０は、上述の無瞬断切替えにおいてパケットの出力間隔を制御する。具体的には、パケット受信部３０から出力されるパケットの間隔が、送信ノードにおいてパケット送信部２０に入力されるパケットの間隔Ｔ１〜Ｔ５と同じになるように、各パケットの出力タイミングが調整される。すなわち、中継網２Ａ、２Ｂにおけるパケット間隔の揺らぎが吸収され、パケット受信部３０の出力側において、パケット送信部２０におけるパケット間隔が再現される。
【００４０】
図５は、位相制御の概要を示す。この例では、パケット伝送装置１Ｘのパケット送信部２０からパケット伝送装置１Ｙのパケット受信部３０に無瞬断パケット１〜３が伝送される。Ｔ１〜Ｔ２は、それぞれ、パケットの間隔を表す。
【００４１】
パケット送信部２０は、上述したように、各パケットにシーケンス番号およびタイムスタンプを付与する。シーケンス番号は、１ずつインクリメントされる。また、タイムスタンプは、パケット送信部２０内に実装される時計２４に基づいて生成される。この時計２４は、例えば、ＲＴＣ（Real Time Clock）により実現される。なお、図５において、各パケットに対して「シーケンス番号（ｎ）」および「タイムスタンプ（ＴＳｎ）」が表記されている。
【００４２】
パケット送信部２０は、中継網２Ａ、２Ｂに各パケットを冗長的に出力する。即ち、経路Ａおよび経路Ｂを介して同じパケットが伝送される。なお、図５に示す例では、経路Ａにおいて、パケット２とパケット３との間の間隔がαだけ長くなっている。また、経路Ｂの伝送遅延は、経路Ａの伝送遅延よりもβだけ大きい。
【００４３】
パケット受信部３０において、位相制御部３４は、各面について各パケットの出力予定時刻を計算する。すなわち、位相制御部３４は、Ａ面およびＢ面それぞれについて各パケットの出力予定時刻を計算する。「面」は、パケット伝送装置１Ｘ、１Ｙ間の各経路に対応し、経路上のパスおよび処理系を含む。すなわち、Ａ面は、経路Ａ上のパスおよび経路Ａを介して受信するパケットを処理する回路等を含み、Ｂ面は、経路Ｂ上のパスおよび経路Ｂを介して受信するパケットを処理する回路等を含む。
【００４４】
パケット受信部３０は、時計３９を備える。時計３９も、例えば、ＲＴＣにより実現される。ここで、時計２４のクロック周波数および時計３９のクロック周波数は、互いに同じである。そして、位相制御部３４は、Ａ面およびＢ面それぞれにおいて、受信パケットのタイムスタンプと時計３９による受信時刻との差分を計算する。すなわち、Ａ面における時計２４と時計３９との差分を表す時計差Ａ、およびＢ面における時計２４と時計３９との差分を表す時計差Ｂが測定される。また、位相制御部３４は、Ａ面において、受信パケットのタイムスタンプを時計差Ａで補正することにより補正タイムスタンプＴＳｎ’Ａを生成する。また、位相制御部３４は、Ｂ面において、受信パケットのタイムスタンプを時計差Ｂで補正することにより補正タイムスタンプＴＳｎ’Ｂを生成する。すなわち、Ａ面およびＢ面それぞれにおいて、時計２４に基づくタイムスタンプが時計３９に基づくタイムスタンプに変換される。したがって、補正タイムスタンプは、時計３９に基づく時刻情報を表す。よって、以下の記載では、補正タイムスタンプを「補正時刻」と表記することがある。
【００４５】
図６は、時計差および補正時刻の計算の一例を示す。図６に示す例では、時計２４および時計３９は、それぞれＲＴＣを提供する。ＲＴＣは、所定のクロック周波数により動作するカウンタの値を表す。時計２４および時計３９のクロック周波数は、互いに同じである。なお、図６は、Ａ面またはＢ面のいずれか一方の動作を示している。
【００４６】
パケット伝送装置１Ｘのパケット送信部２０において、各パケットには、タイムスタンプとして、時計２４から出力されるＲＴＣ値が付与される。そして、パケット送信部２０は、所定の時間間隔でパケットを送信する。この例では、４カウント間隔でパケットが送信される。
【００４７】
パケット伝送装置１Ｙのパケット受信部３０において、位相制御部３４は、各受信パケットについて補正時刻（すなわち、補正タイムスタンプ）を計算する。例えば、時計２４による時刻ゼロにおいてパケット送信部２０から送信されたパケットは、時計３９による時刻Ａにおいてパケット受信部３０に到着する。ここで、このパケットには、タイムスタンプとして「ゼロ」が付与されている。図６に表記される「ＰＫＴ＿ＴＳ」は、パケットに付与されるタイムスタンプを表す。そして、位相制御部３４は、受信パケットに付与されているタイムスタンプと時計３９による受信時刻との差分を表す時計差「Ａ（＝Ａ−ゼロ）」を計算する。以降、位相制御部３４は、パケット受信部３０がパケットを受信する毎に、時計差を計算する。このとき、位相制御部３４は、各受信パケットについて計算される時計差の平均を計算する。平均時計差は、例えば、下式により計算される。
平均時計差[i]＝(１−α)×平均時計差[i-1]＋α×時計差[i]
ｉは、平均化処理の実行回数を表す。αは、ゼロよりも大きく１よりも小さい平均化係数を表す。なお、図６に示す例では、平均時計差は「Ａ」である。
【００４８】
パケット受信部３０が最初のパケットを受信したときから所定の揺らぎ吸収時間が経過すると、位相制御部３４は、確定時計差を出力する。揺らぎ吸収時間は、ネットワーク上で発生し得る最大揺らぎ時間に相当する。また、確定時計差は、揺らぎ吸収時間が経過した時点で得られる平均時計差である。なお、図６に示す例では、確定時計差は「Ａ」である。そして、この確定時計差は、所定のレジスタに格納される。
【００４９】
更に、位相制御部３４は、受信パケットに付与されているタイムスタンプに確定時計差を加算することにより補正時刻（すなわち、補正タイムスタンプ）を計算する。例えば、時計２４による時刻１６においてパケット送信部２０から送信されたパケットは、時計３９による時刻Ａ＋１６においてパケット受信部３０に到着する。このとき、確定時計差は「Ａ」である。よって、受信パケットのタイムスタンプ「１６」に確定時計差「Ａ」を加算することにより補正タイムスタンプ「１６＋Ａ」が得られる。
【００５０】
図６に示す例では、ネットワークの揺らぎに起因して、パケット受信部３０に到着するパケットの間隔は一定ではない。例えば、パケット送信部２０から時刻「１６」「２０」「２４」において送信された３個のパケットは、時刻「Ａ＋１６」「Ａ＋１９」「Ａ＋２５」にパケット受信部３０に到着している。すなわち、２番目のパケットは「１」だけ早く到着し、３番目のパケットは「１」だけ遅く到着する。ところが、位相制御部３４により得られる補正時刻は「１６＋Ａ」「２０＋Ａ」「２４＋Ａ」であり、パケット間隔は一定である。このように、位相制御部３４は、ネットワーク上で発生するパケット間隔の揺らぎを吸収することができる。
【００５１】
図５の説明に戻る。位相制御部３４は、Ａ面とＢ面との間の遅延差を計算する。遅延差は、Ａ面の平均時計差とＢ面の平均時計差との差分を表す。Ａ面の平均時計差は、経路Ａにおける伝送遅延に相当し、Ｂ面の平均時計差は、経路Ｂにおける伝送遅延に相当する。よって、遅延差は、経路Ａの伝送遅延と経路Ｂの伝送遅延との差分を表す。図５に示す例では、遅延差は、遅延時間βに相当する。また、遅延差は、符号を有する。この符号は、経路Ａまたは経路Ｂのうちで、どちらの経路の伝送遅延の方が短いのかを表す。したがって、遅延差の符号は、パケットが先着する面を表す。図５に示す例では、Ａ面（即ち、経路Ａ）においてパケットが先着する。
【００５２】
たとえば、Ａ面の平均時計差が「７０」であり、Ｂ面の平均時計差が「６０」である場合、遅延差は下記のように計算される。
遅延差＝７０−６０＝＋１０
この場合、この遅延差「＋１０」は、経路Ａを介して伝送されたパケットよりも、経路Ｂを介して伝送されたパケットが、パケット受信部３０に「１０」だけ先に到着する状態を表す。
【００５３】
また、Ａ面の平均時計差が「５０」であり、Ｂ面の平均時計差が「６０」である場合、遅延差は下記のように計算される。
遅延差＝５０−６０＝−１０
この場合、この遅延差「−１０」は、経路Ｂを介して伝送されたパケットよりも、経路Ａを介して伝送されたパケットが、パケット受信部３０に「１０」だけ先に到着する状態を表す。
【００５４】
さらに、位相制御部３４は、Ａ面およびＢ面それぞれにおいて、各パケットの出力予定時刻を計算する。出力予定時刻は、補正タイムスタンプ、最大揺らぎ時間、遅延差に基づいて計算される。具体的には、先着面の受信パケットの出力予定時刻Ｔ（先）および後着面の受信パケットの出力予定時刻Ｔ（後）は、下式で計算される。
Ｔ（先）＝補正タイムスタンプ＋揺らぎ吸収時間＋遅延差
Ｔ（後）＝補正タイムスタンプ＋揺らぎ吸収時間
なお、補正タイムスタンプは、上述したように、受信パケットに付与されているタイムスタンプに平均時計差または確定時計差を加算することで得られる。揺らぎ吸収時間は、ネットワークの最大揺らぎ時間に相当し、シミュレーションまたは測定により予め得られている。図５に示す例では、揺らぎ吸収時間は１２ｍ秒である。
【００５５】
図７は、位相制御処理の一例を示すフローチャートである。このフローチャートの処理は、パケット受信部３０がパケットを受信したときに位相制御部３４により実行される。また、このフローチャートの処理は、Ａ面およびＢ面それぞれにおいて実行される。
【００５６】
Ｓ１において、位相制御部３４は、受信パケットのヘッダに付与されている無瞬断フラグに基づいて、受信パケットが無瞬断パケットであるか否かを判定する。受信パケットが無瞬断パケットであれば、位相制御部３４は、Ｓ２において、バッファクリア処理が実行されているか判定する。バッファクリア処理は、障害検出時に実行され、パケットバッファ部３３Ａ、３３Ｂのバッファメモリを初期化する。
【００５７】
バッファクリア処理が実行されていなければ、位相制御部３４は、Ｓ３において、時計差を測定する。時計差は、上述したように、受信パケットに付与されているタイムスタンプと時計３９のＲＴＣ値との差分を計算することで得られる。なお、バッファクリア処理が実行されているときは、位相制御部３４は、Ｓ４において、受信パケットを廃棄する。
【００５８】
Ｓ５において、位相制御部３４は、位相制御の前処理が完了しているか判定する。この前処理が完了していれば、位相制御部３４の処理はＳ８に進む。一方、前処理が完了していなければ、位相制御部３４は、Ｓ６において前処理を実行する。前処理については、後で説明する。前処理が終了すると、位相制御部３４は、Ｓ７において、時計差が確定しているか判定する。時計差が確定していれば、位相制御部３４の処理はＳ８に進む。なお、この実施例では、位相制御処理が開始されたときから揺らぎ吸収時間が経過したときに、時計差が確定するものとする。一方、時計差が確定していなければ、位相制御部３４の処理はＳ１１に進む。
【００５９】
Ｓ８〜Ｓ１０において、位相制御部３４は、受信パケットの出力予定時刻を計算する。すなわち、Ｓ８において、位相制御部３４は、受信パケットが先着面のパケットであるか後着面のパケットであるかを判定する。そして、受信パケットが先着面のパケットであれば、Ｓ９において、受信パケットのタイムスタンプに、確定時計差、揺らぎ吸収時間、および確定遅延差を加算することで出力予定時刻が計算される。受信パケットが後着面のパケットであれば、Ｓ１０において、受信パケットのタイムスタンプに、確定時計差および揺らぎ吸収時間を加算することで出力予定時刻が計算される。なお、確定時計差および確定遅延差は、Ｓ６の前処理により計算される。
【００６０】
Ｓ１１〜Ｓ１３においても、位相制御部３４は、受信パケットの出力予定時刻を計算する。ただし、Ｓ１１〜Ｓ１３が実行されるときは、未だ確定時計差および確定遅延差が得られていない。よって、受信パケットが先着面のパケットであれば、Ｓ１２において、受信パケットのタイムスタンプに、平均時計差、揺らぎ吸収時間、および確定前遅延差を加算することで出力予定時刻が計算される。受信パケットが後着面のパケットであれば、Ｓ１３において、受信パケットのタイムスタンプに、平均時計差および揺らぎ吸収時間を加算することで出力予定時刻が計算される。
【００６１】
このように、位相制御部３４は、Ａ面およびＢ面それぞれにおいて、各無瞬断パケットの出力予定時刻を計算する。このとき、Ａ面とＢ面との間の遅延差が補償されるので、同じシーケンス番号が付与されているパケットについて、Ａ面での出力予定時刻およびＢ面での出力予定時刻は、互いに同じである。なお、受信パケットが無瞬断パケットでない場合（Ｓ１：Ｎｏ）、位相制御部３４は、Ｓ１４において、その受信パケットの出力予定時刻を決定する。この場合、現在時刻が出力予定時刻として設定される。
【００６２】
図８は、位相制御の前処理の一例を示すフローチャートである。このフローチャートの処理は、図７に示すＳ６に相当する。
【００６３】
Ｓ２１において、位相制御部３４は、受信パケットが、位相制御が開始された後の最初のパケットであるか判定する。そして、受信パケットが最初のパケットであれば、Ｓ２２において、位相制御部３４は、揺らぎ吸収時間を計時するためのタイマをリセットする。
【００６４】
Ｓ２３において、位相制御部３４は、平均時計差を計算する。具体的には、受信パケットのタイムスタンプとパケット受信部３０内のＲＴＣ値との差分の平均が計算される。そして、Ｓ２４において、位相制御部３４は、タイマが満了したか判定する。タイマが満了してれば、位相制御部３４は、Ｓ２５〜Ｓ２６の処理を実行する。一方、タイマが満了していなければ、前処理は終了する。
【００６５】
Ｓ２５において、位相制御部３４は、パケット送信部２０とパケット受信部３０との間の時計差を確定する。具体的には、位相制御部３４は、タイマが満了したときの平均時計差を確定時計差として取得する。すなわち、揺らぎ吸収時間が経過したときの平均時計差が確定時計差として保存される。なお、位相制御部３４は、Ａ面およびＢ面それぞれについて時計差を確定する。
【００６６】
Ｓ２６において、位相制御部３４は、Ａ面とＢ面との間の遅延差を確定する。確定遅延差は、Ａ面について計算された確定時計差とＢ面について計算された確定時計差との差分を表す。
【００６７】
このように、位相制御の前処理において、各面についての確定時計差、およびＡ面の確定時計差とＢ面の確定時計差との差分を表す確定遅延差が得られる。そして、確定時計差および確定遅延差は、上述したように、各無瞬断パケットの出力予定時刻を決定するために使用される。
【００６８】
図９は、ＤＥＱ判定部３６の動作の一例を示す。ＤＥＱ判定部３６は、パケットバッファ部３３Ａ、３３Ｂに格納されているパケットのデキュー判定を実行する。デキュー判定は、パケットバッファに格納されているパケットの読出しを許可するか否かを判定する。このとき、ＤＥＱ判定部３６は、パケットバッファの先頭に格納されているパケットの出力予定時刻と現在時刻とを比較する。そして、現在時刻が出力予定時刻に達すると、ＤＥＱ判定部３６は、読出し許可信号をパケットバッファに与える。
【００６９】
図９（ａ）に示す例では、パケットバッファ部（３３Ａ、３３Ｂ）の先頭に格納されているパケットの出力予定時刻は「７」である。この場合、現在時刻が「７」になると、このパケットの読出しが許可され、ＤＥＱ判定部３６は、読出し許可信号を出力する。パケットバッファ部は、読出し許可信号が与えられると、先頭に格納されているパケットを読み出す。そして、パケットバッファ部から読み出されたパケットは、パケット出力部３７に送られる。
【００７０】
ＤＥＱ判定部３６は、Ａ面およびＢ面に対してデキュー判定を行う。また、ＤＥＱ判定部３６は、デキュー判定に際して、選択面および非選択面を決定する。このとき、ＤＥＱ判定部３６は、パケットバッファ部から読み出されるパケットのシーケンス番号が連続するように、選択面および非選択面を決定する。双方のパケットバッファ部においてシーケンス番号が連続するときは、同じ面が連続して選択されるように、選択面および非選択面が決定される。
【００７１】
図９（ｂ）に示す例では、時刻７において、Ａ面およびＢ面からそれぞれパケット１が読み出される。なお、図９（ｂ）において、パケットｉは、シーケンス番号ｉが付与されたパケットを表す。また、この例では、時刻７において、Ａ面が選択されるものとする。
【００７２】
パケット２は、経路Ｂのみを介してパケット受信部３０に到着したものとする。したがって、パケット２は、パケットバッファ部３３Ｂのみに格納されている。また、パケット２の出力予定時刻は「１１」である。この場合、時刻１１においてＢ面のみからパケット２が読み出され、Ｂ面が選択される。
【００７３】
パケット３は、経路Ａおよび経路Ｂを介してパケット受信部３０に到着し、パケットバッファ部３３Ａ、３３Ｂ双方に格納されている。また、パケット３の出力予定時刻は、いずれも「１５」である。この場合、時刻１５において、Ａ面およびＢ面からそれぞれパケット３が読み出される。ここで、パケット２に対してＢ面が選択されているので、パケット３に対してもＢ面が選択される。
【００７４】
ＤＥＱ判定部３６は、パケット毎に、選択面を表す情報をパケット出力部３７に通知する。そして、パケット出力部３７は、選択面のパケットを出力し、非選択面のパケットを廃棄する。
【００７５】
このように、パケット受信部３０は、経路Ａおよび経路Ｂを介して受信するパケットの一方を選択して出力する。このとき、位相制御部３４は、パケット受信部３０から出力されるパケットの間隔が、送信ノードに入力されるパケットの間隔と同じになるように、各パケットの出力時刻を制御する。したがって、信頼性の高いリアルタイム通信（例えば、ストリーミング配信など）が実現される。
【００７６】
＜障害監視＞
パケット伝送装置１は、異常パケットがクライアントに転送されないように、ネットワークの状態を監視する。この実施例では、パケット伝送装置１のパケット受信部３０は、下記の監視を行う。なお、異常パケットは、パケット受信部３０により廃棄される。
【００７７】
（１）遅延差異常
パケット受信部３０は、Ａ面の測定時計差とＢ面の測定時計差との差分（すなわち、測定遅延差）が所定の閾値よりも大きいときに、遅延差異常が発生していると判定する。すなわち、経路Ａの伝送遅延と経路Ｂの伝送遅延との差分が閾値よりも大きいときに、遅延差異常が検出される。閾値としては、例えば、ネットワークに対して予め規定されている最大遅延差が使用される。最大遅延差は、例えば、通信規格により指定される。或いは、最大遅延差は、ネットワーク管理者またはユーザにより指定されるようにしてもよい。
【００７８】
測定遅延差は、この実施例では、下式により計算される。なお、Ａ面測定時計差は、時計３９のＲＴＣ値と経路Ａを介して受信したパケットのタイムスタンプとの差分を表す。Ｂ面測定時計差は、時計３９のＲＴＣ値と経路Ｂを介して受信したパケットのタイムスタンプとの差分を表す。
測定遅延差＝Ａ面測定時計差−Ｂ面測定時計差
この場合、測定遅延差が正の値であれば、Ａ面が後着面と判定され、Ｂ面が先着面であると判定される。一方、測定遅延差が負の値であれば、Ａ面が先着面と判定され、Ｂ面が後着面であると判定される。そして、測定遅延差が最大遅延差よりも大きいときは、パケット受信部３０は、後着面の経路で障害が発生していると判定し、後着面の受信パケットを廃棄する。したがって、伝送遅延が非常に大きい経路を介してパケット伝送装置１に到着したパケットは、クライアントに転送されない。なお、遅延差異常は、位相制御部３４により監視される。
【００７９】
（２）滞留時間オーバフロー
パケット受信部３０は、受信パケットがパケットバッファ内に格納される時間（以下、滞留時間）が所定の最大滞留時間よりも長いときに、滞留時間オーバフローが発生していると判定する。受信パケットの滞留時間は、現在時刻から出力予定時刻までの間の期間に相当する。したがって、受信パケットの出力予定時刻が現在時刻よりも後であり、且つ、その差分が最大滞留時間よりも大きいときに、滞留時間オーバフローが検出される。最大滞留時間は、例えば、揺らぎ吸収時間および最大遅延時間の和よりも大きいことが好ましい。
【００８０】
滞留時間オーバフローが検出されたときは、パケット受信部３０は、受信パケットを廃棄する。したがって、異常なレイテンシを有するパケットは、クライアントに転送されない。なお、滞留時間オーバフローは、位相制御部３４により監視される。
【００８１】
（３）滞留時間アンダーフロー
受信パケットの出力予定時刻が現在時刻よりも前であるときは、そのパケットは既にクライアントに転送されていると予想される。よって、パケット受信部３０は、受信パケットの出力予定時刻が現在時刻よりも前であるときは、滞留時間アンダーフローが発生していると判定する。
【００８２】
滞留時間アンダーフローが検出されたときは、パケット受信部３０は、受信パケットを廃棄する。したがって、同じパケットが重複してクライアントへ転送される事態が防止される。なお、滞留時間アンダーフローは、位相制御部３４により監視される。
【００８３】
（４）出力断
一定の間隔でパケットが送信されるネットワークにおいては、パケット受信部３０は、出力断を監視することができる。例えば、直前のパケットが出力された時刻から経過時間が経過しても次のパケットが出力されないときは、パケット受信部３０は、出力断が発生したと判定する。
【００８４】
なお、間欠通信ネットワーク（例えば、イーサネット）においては、パケットは任意のタイミングで送信される。よって、この場合は、一定の間隔でパケットが送信されるように、パケット送信部２０においてダミーパケットが挿入される。例えば、出力断を監視するための監視期間が３ｍ秒である場合、１ｍ秒間隔でパケットが送信されるようにダミーパケットが挿入される。出力断を監視するための監視期間は、揺らぎ吸収時間よりも短いことが好ましい。また、パケット受信部３０は、ダミーパケットがクライアントに転送されないように廃棄する。
【００８５】
（５）パケットバッファエンプティ
一定の間隔でパケット（ダミーパケットを含む）が送信される場合、パケット受信部３０のパケットバッファ部３３Ａ、３３Ｂが空になることはない。よって、パケット受信部３０は、パケットバッファ部３３Ａ、３３Ｂが空になったときは、パケットバッファエンプティが発生したと判定する。なお、パケットバッファ部３３Ａ、３３Ｂは、パケットバッファのキュー長を表すカウンタを備える。このカウンタは、パケットバッファにパケットが書き込まれたときにインクリメントされ、パケットバッファからパケットが読み出されたときにデクリメントされる。この場合、このカウンタの値がゼロになったときに、パケットバッファエンプティが検出される。
【００８６】
このように、パケット受信部３０は、ネットワークの障害を監視する。ここで、Ａ面およびＢ面の双方で障害が検出されたときは、例えば、経路変更および／または中継機器の交換が行われる。このため、ネットワークが復旧した後の送信ノードと受信ノードとの間の伝送遅延は、障害前の伝送遅延とは異なっている可能性が高い。したがって、Ａ面およびＢ面の双方で障害が検出されたときは、パケット受信部３０は、再度、時計差および遅延差を計算する。以下の記載では、障害の発生に起因して時計差および遅延差を再計算する処理を「障害復帰処理」と呼ぶことがある。
【００８７】
障害復帰処理は、Ａ面において遅延差異常、滞留時間オーバフロー、滞留時間アンダーフロー、パケットバッファエンプティのいずれかが検出され、且つ、Ｂ面においても遅延差異常、滞留時間オーバフロー、滞留時間アンダーフロー、パケットバッファエンプティのいずれかが検出されたときに実行される。また、出力断が検出されたときも障害復帰処理が実行される。
【００８８】
障害復帰処理においては、パケット受信部３０は、パケットバッファ部３３Ａ、３３Ｂをクリアし、その後、時計差および遅延差を再計算する。この結果、無瞬断切替えを実行可能な状態が復旧する。なお、パケット受信部３０は、障害復帰処理の実行中に受信したパケットを廃棄する。したがって、障害復帰処理が実行されると、クライアント間の通信が一時的に停止することになる。
【００８９】
図１０は、障害監視の一例を示すフローチャートである。この処理は、位相制御部３４により受信パケットの出力予定時刻が計算されたときに実行される。
【００９０】
Ｓ３１において、位相制御部３４は、Ａ面とＢ面との間の遅延差を計算する。この遅延差は、Ａ面の測定時計差からＢ面の測定時計差を引き算することで得られる。Ａ面の測定時計差は、経路Ａを介して受信したパケットの受信時刻とそのパケットに付与されているタイムスタンプとの差分を表す。同様に、Ｂ面の測定時計差は、経路Ｂを介して受信したパケットの受信時刻とそのパケットに付与されているタイムスタンプとの差分を表す。
【００９１】
Ｓ３２において、位相制御部３４は、受信パケットが先着面のパケットであるか判定する。なお、受信パケットが先着面のパケットであるか否かは、Ｓ３１で得られた遅延差の符号で表される。
【００９２】
受信パケットが先着面のパケットでないときは、位相制御部３４は、Ｓ３３において、Ｓ３１で得られた遅延差の絶対値が最大遅延差よりも大きいか判定する。遅延差の絶対値が最大遅延差よりも大きいときは、位相制御部３４は、遅延差異常が発生したと判定する。すなわち、受信パケットが伝送されてきた経路の障害が検出される。
【００９３】
Ｓ３４において、位相制御部３４は、滞留時間オーバフローを監視する。なお、受信パケットの出力予定時刻が現在時刻よりも後であり、且つ、その差分が最大滞留時間よりも大きいときに、滞留時間オーバフローが検出される。
【００９４】
Ｓ３５において、位相制御部３４は、滞留時間アンダーフローを監視する。なお、受信パケットの出力予定時刻が現在時刻よりも前であるときに、滞留時間アンダーフローが検出される。
【００９５】
遅延差異常、滞留時間オーバフロー、滞留時間アンダーフローが検出されないときは、パケット受信部３０は、Ｓ３６において、受信パケットをパケットバッファに書き込む。一方、遅延差異常、滞留時間オーバフロー、または滞留時間アンダーフローが検出されたときは、パケット受信部３０は、Ｓ３７において、受信パケットを廃棄する。
【００９６】
なお、図１０に示す実施例では、遅延差異常、滞留時間オーバフロー、滞留時間アンダーフローがモニタされるが、本発明はこの構成に限定されるものではない。すなわち、パケット受信部３０は、遅延差異常、滞留時間オーバフロー、滞留時間アンダーフロー、出力断、パケットバッファエンプティのうちの１つ以上を監視する。
【００９７】
図１１〜図１３は、位相制御および障害監視の一例を示す。パケットＡは、経路Ａを介して受信ノードに到着したパケットを表し、パケットＢは、経路Ｂを介して受信ノードに到着したパケットを表す。ＲＴＣは、パケット受信部３０が備える時計３９のＲＴＣ値を表す。すなわち、ＲＴＣは、パケット受信部３０における現在時刻を表す。時計差Ａは、ＲＴＣ値とパケットＡのタイムスタンプとの差分を表し、経路Ａの伝送遅延に相当する。時計差Ｂは、ＲＴＣ値とパケットＢのタイムスタンプとの差分を表し、経路Ｂの伝送遅延に相当する。遅延差は、時計差Ａと時計Ｂとの差分を表し、この例では、時計差Ａから時計差Ｂを引き算することで得られる。
【００９８】
補正時刻Ａは、パケットＡのタイムスタンプに時計差Ａを加算することで得られる。ただし、揺らぎ吸収時間が経過した後は、補正時刻Ａは、パケットＡのタイムスタンプに確定時計差Ａを加算することで得られる。確定時計差Ａは、揺らぎ吸収時間が経過した時点における時計差Ａの平均を表す。補正時刻Ｂは、パケットＢのタイムスタンプに時計差Ｂを加算することで得られる。ただし、揺らぎ吸収時間が経過した後は、補正時刻Ｂは、パケットＢのタイムスタンプに確定時計差Ｂを加算することで得られる。確定時計差Ｂは、揺らぎ吸収時間が経過した時点における時計差Ｂの平均を表す。
【００９９】
出力予定時刻Ａは、パケットＡの出力予定時刻を表し、補正時刻Ａに揺らぎ吸収時間を加算することで得られる。出力予定時刻Ｂは、パケットＢの出力予定時刻を表し、補正時刻Ｂに揺らぎ吸収時間を加算することで得られる。なお、先着面においては、出力予定時刻は、補正時刻に揺らぎ吸収時刻および確定遅延差を加算することで得られる。この実施例では、送信ノードからパケットＡ、Ｂが同時に送信されたときに、パケットＡよりもパケットＢが先にパケット受信部３０に到着する。よって、出力予定時刻Ｂは、補正時刻Ｂに揺らぎ吸収時間および確定遅延差を加算することで得られる。確定遅延差は、揺らぎ吸収時間が経過した時点における、時計差Ａの平均と時計差Ｂの平均との差分を表す。
【０１００】
Ａ面ＤＥＱは、パケットバッファ３３Ａから読み出されるパケットを表す。Ｂ面ＤＥＱは、パケットバッファ３３Ｂから読み出されるパケットを表す。パケット出力は、パケット受信部３０から出力されるパケットを表す。なお、パケット受信部３０から出力されるパケットに対して付与されている表記「Ａ／Ｂ」は選択面を表す。図１１に示す例では、パケットバッファ３３Ａから読み出されるパケットＡが選択されてパケット受信部３０から出力される。
【０１０１】
さらに、下記のパラメータが予め設定されている。
揺らぎ吸収時間：１２（ｍ秒）
最大遅延：３６（ｍ秒）
最大滞留時間：６０（ｍ秒）
【０１０２】
送信ノードは、同じパケットを同時に経路Ａおよび経路Ｂを介して出力する。各パケットには、タイムスタンプが付与されている。すなわち、送信ノードから同時に送信される２つのパケットには、同じタイムスタンプが付与されている。
【０１０３】
なお、以下の記載では、ＲＴＣ値により表される時刻を、単に「時刻」と表記することがある。この場合、例えば、ＲＴＣ＝１００に対応する時刻は「時刻１００」と表記される。また、タイムスタンプの値がｘであるパケットを「パケットｘ」と表記することがある。例えば、タイムスタンプＴＳ＝５が付与されたパケットは「パケット５」と表記される。さらに、「時計差」は、測定時計差、平均時計差、確定時計差を含むものとする。
【０１０４】
パケット受信部３０には、送信ノードから送信されるパケットが到着する。例えば、時刻１００において、パケット受信部３０は、経路Ａを介してパケット５を受信し、経路Ｂを介してパケット１１を受信する。時刻１０３において、パケット受信部３０は、経路Ａを介してパケット８を受信し、経路Ｂを介してパケット１４を受信する。時刻１０６において、パケット受信部３０は、経路Ａを介してパケット１１を受信し、経路Ｂを介してパケット１７を受信する。
【０１０５】
このように、パケット１１は、経路Ａを介して伝送されたときは、時刻１０６にパケット受信部３０に到着する。一方、経路Ｂを介して伝送されたときは、パケット１１は、時刻１００にパケット受信部３０に到着する。すなわち、経路Ａの伝送遅延よりも経路Ｂの伝送遅延の方が小さい。
【０１０６】
位相制御部３４は、各面について時計差を測定する。例えば、時刻１００においては、経路Ａを介して受信したパケット５に対して、時計差Ａとして「９５（＝１００−５）」が算出され、経路Ｂを介して受信したパケット１１に対して、時計差Ｂとして「８９（＝１００−１１）」が算出される。
【０１０７】
位相制御部３４は、各面の時計差に基づいて、Ａ面とＢ面との間の遅延差を測定する。例えば、時刻１００においては、遅延差として「６（＝９５−８９）」が算出される。なお、遅延差が正の値なので、Ｂ面が先着面であると判定される。
【０１０８】
位相制御部３４は、各面について補正時刻を計算する。補正時刻は、上述したように、受信パケットに付与されているタイムスタンプに時計差を加算することで算出される。よって、例えば、時刻１００においては、補正時刻Ａとして「１００（＝５＋９５）」が算出され、補正時刻Ｂとして「１００（＝１１＋８９）」が算出される。
【０１０９】
位相制御部３４は、各出力パケットの出力予定時刻を計算する。出力予定時刻は、先着面では、補正時刻に揺らぎ吸収時間および遅延差を加算することで算出される。一方、後着面では、出力予定時刻は、補正時刻に揺らぎ吸収時間を加算することで算出される。例えば、時刻１００において経路Ａを介して受信したパケット５に対して、出力予定時刻Ａとして「１１２（＝１００＋１２）」が算出される。また、時刻１００において経路Ｂを介して受信したパケット１１に対しては、出力予定時刻Ａとして「１１８（＝１００＋１２＋６）」が算出される。なお、この例では、揺らぎ吸収時間は「１２」である。
【０１１０】
位相制御部３４は、パケット受信部３０にパケットが到着する毎に、そのパケットの出力予定時刻を計算する。また、経路Ａを介してパケット受信部３０に到着したパケットＡはパケットバッファ３３Ａに格納され、経路Ｂを介してパケット受信部３０に到着したパケットＢはパケットバッファ３３Ｂに格納される。
【０１１１】
位相制御の開始から揺らぎ吸収時間が経過すると、位相制御部３４は、時計差Ａ、時計差Ｂ、遅延差を確定させる。この例では、確定時計差Ａ、確定時計差Ｂ、確定遅延差は、それぞれ「９５」「８９」「６（Ｂ面先着）」である。
【０１１２】
ＤＥＱ判定部３６は、各パケットの出力予定時刻と現在時刻（すなわち、ＲＴＣ値）とを比較することによりＤＥＱ指示を生成する。例えば、時刻１００に経路Ａを介してパケット受信部３０に到着したパケット５の出力予定時刻Ａは「１１２」である。よって、時刻１１２において、ＤＥＱ判定部３６は、パケット５を読み出すＤＥＱ指示をパケットバッファ部３３Ａに与える。そうすると、パケットバッファ部３３Ａは、パケット５を読み出し、パケット出力部３７は、このパケット５を出力する。
【０１１３】
時刻１０６に経路Ａを介してパケット受信部３０に到着したパケット１１の出力予定時刻Ａは「１１８」である。また、時刻１００に経路Ｂを介してパケット受信部３０に到着したパケット１１の出力予定時刻Ｂも「１１８」である。この場合、時刻１１８において、ＤＥＱ判定部３６は、パケット１１を読み出すＤＥＱ指示をパケットバッファ部３３Ａに与えると共に、パケット１１を読み出すＤＥＱ指示をパケットバッファ部３３Ｂに与える。そうすると、パケットバッファ部３３Ａ、３３Ｂは、それぞれパケット１１を読み出す。ここで、この例では、Ａ面が選択されるものとする。そうすると、パケット出力部３７は、パケットバッファ部３３Ａから読み出されたパケット１１を出力する。
【０１１４】
この後、図１２に示すように、経路Ｂにおいて障害が発生し、パケット３１１よりも後のパケット（パケット３１４、３１７、３２０．．．）は、経路Ａのみを介してパケット受信部３０に到着する。この場合、パケット受信部３０は、経路Ａを介して受信したパケットをクライアントに転送する。
【０１１５】
経路Ｂにおいて、パケット３１１よりも後のパケット（例えば、パケット３１４、３１７、３２０、３２３）は、経路Ｂ上の中継ノードにより保持されるものとする。そして、経路Ｂが復旧したときに、その中継ノードは、保持していたパケットを宛先ノードに向けて送信するものとする。この場合、これらのパケットは、大きく遅延した後にパケット受信部３０に到着することになる。よって、以下の記載では、これらのパケットを「遅延パケット」と呼ぶことがある。
【０１１６】
遅延パケット３１４は、経路Ｂを介して伝送され、図１３に示すように、時刻３３９にパケット受信部３０に到着する。一方、時刻３３９においては、経路Ａを介して伝送されるパケット２４４がパケット受信部３０に到着する。よって、位相制御部３４は、これらのパケットのタイムスタンプを利用して、時計差、遅延差、出力予定時刻を計算する。
【０１１７】
ここで、送信ノードにおいて各パケットに付与されるタイムスタンプは、この例では、所定のビット長のサイクリックカウンタで表される。例えば、このサイクリックカウンタのビット長が１０ビットであるケースでは、図１４（ａ）に示すように、タイムスタンプは「０」〜「１０２３」を用いて表される。このため、伝送遅延が大きいときは、タイムスタンプに基づいてパケットの先着／後着を判定できないことがある。
【０１１８】
時刻３３９において、位相制御部３４は、時計差ＡおよびＢ、遅延差、補正時刻ＡおよびＢ、出力予定時刻ＡおよびＢを計算する。ここで、Ａ面において確定された時計差（すなわち、確定時計差Ａ）は「９５」であり、Ｂ面において確定された時計差（すなわち、確定時計差Ｂ）は「８９」であるものとする。この場合、確定時計差Ａおよび確定時計差Ｂから算出される確定遅延差は「６」である。なお、確定時計差および確定遅延差は、図１１において、揺らぎ吸収時間が経過した時点で特定され、レジスタに記録されている。そうすると、時刻３３９における計算結果は、以下の通りである。
測定時計差Ａ：ＲＴＣ−ＴＳ＝３３９−２４４＝９５
測定時計差Ｂ：ＲＴＣ−ＴＳ＝３３９−３１４＝２５
測定遅延差：測定時計差Ａ−測定時計差Ｂ＝９５−２５＝＋７０
補正時刻Ａ：ＴＳ＋確定時計差Ａ＝２４４＋９５＝３３９
補正時刻Ｂ：ＴＳ＋確定時計差Ｂ＝３１４＋８９＝４０３
出力予定時刻Ａ：補正時刻Ａ＋揺らぎ吸収時間＝３３９＋１２＝３５１
出力予定時刻Ｂ：補正時刻Ｂ＋揺らぎ吸収時間＋確定遅延差＝４０３＋１２＋６＝４２１
【０１１９】
続いて、パケット受信部３０の位相制御部３４は、上記計算結果を利用して障害監視を実行する。例えば、遅延差異常は、測定遅延差と最大遅延差と比較することにより監視される。この例では、最大遅延差は３６である。すなわち、時刻３３９において計算される測定遅延差は、最大遅延差を越えている。この場合、位相制御部３４は、後着面のパケットを伝送する経路で障害が発生したと判定し、後着面のパケットを廃棄する。ここで、遅延差は正の値なので、Ａ面が後着面であると判定される。よって、位相制御部３４は、経路Ａを介して受信したパケット２４４を廃棄する。同様に、遅延差異常に起因して、経路Ａを介して受信したパケット２４７、２５０等も廃棄される。
【０１２０】
滞留時間オーバフローは、受信パケットの滞留時間と最大滞留時間とを比較することにより監視される。受信パケットの滞留時間は、出力予定時刻と現在時刻（ここでは、ＲＴＣ値）との差分で表される。この例では、Ｂ面におけるパケット３１４の出力予定時刻とＲＴＣ値との差分は７０であり、最大滞留時間は６０である。すなわち、経路Ｂを介して受信したパケット３１４の滞留時間は最大滞留時間よりも長い。したがって、位相制御部３４は、経路Ｂで障害が発生したと判定し、経路Ｂを介して受信したパケット３１４を廃棄する。同様に、滞留時間オーバフローに起因して、経路Ｂを介して受信したパケット３１７、３２０、３２３等も廃棄される。
【０１２１】
このように、図１２〜図１３に示す例では、経路Ｂの障害に起因して、Ａ面およびＢ面の双方においてパケットが廃棄される。この場合、パケット受信部３０は、パケットバッファ３３Ａ、３３Ｂに格納されているパケットを廃棄すると共に、時計差および遅延差の再計算を実行する（障害復帰処理）。この結果、一時的に通信が停止することになる。しかし、一方の経路のみの障害に起因して通信が停止することは好ましくない。
【０１２２】
この問題は、タイムスタンプを生成するサイクリックカウンタのビット長が有限であることに起因する。例えば、時刻３３９に経路Ｂから到着するパケット３１４が生成された時刻は、図１４（ｂ）に示すように、時刻３３９に経路Ａから到着するパケット２４４が生成された時刻よりも前である。しかし、タイムスタンプの値に基づいて経路Ａと経路Ｂとの間の遅延差を計算すると、パケット３１４よりも前にパケット２４４が生成されたと判定される。この結果、図１２〜図１３に示すケースでは、経路Ａを介して伝送されるパケット２４４に対して遅延差異常が検出されてしまう。
【０１２３】
この問題は、例えば、タイムスタンプを生成するサイクリックカウンタのビット長を十分に長くすれば、解決され得る。しかし、タイムスタンプのビット長が長くなると、パケットを処理するハードウェア回路の規模が大きくなるので好ましくない。
【０１２４】
＜実施形態＞
図１５は、本発明の実施形態に係わるパケット伝送装置に実装される位相制御部の一例を示す。位相制御部３４は、図３に示すように、パケット受信部３０の中に実装される。
【０１２５】
位相制御部３４は、図１５に示すように、ＲＴＣ生成部４１、時計差測定部４２Ａ、４２Ｂ、遅延差測定部４３、揺らぎ吸収時間計測タイマ４４、出力予定時刻算出部４５、正常性監視部４６、障害監視部４７、復帰処理部４８を備える。但し、位相制御部３４は、図１５に示していない他の要素を備えていてもよい。また、ＲＴＣ生成部４１は、位相制御部３４の外に設けられてもよい。そして、位相制御部３４には、各受信パケットのパケット制御情報（フロー番号、無瞬断フラグ、シーケンス番号、タイムスタンプ）が与えられる。
【０１２６】
ＲＴＣ生成部４１は、所定の基準周波数によりカウントアップされるサイクリックカウンタを含み、カウント値を出力する。なお、ＲＴＣ生成部４１の基準周波数は、送信ノードにおいてタイムスタンプを生成するために使用される時計の基準周波数と同じである。
【０１２７】
時計差測定部４２Ａは、経路Ａを介して受信するパケット（以下、パケットＡ）に付与されているタイムスタンプおよびＲＴＣ生成部４１により生成されるＲＴＣ値から、パケットＡが経路Ａを介して伝送されたときの送信ノードとパケット受信部３０との間の時計差（以下、時計差Ａ）を測定する。また、時計差測定部４２Ｂは、経路Ｂを介して受信するパケット（以下、パケットＢ）に付与されているタイムスタンプおよびＲＴＣ値から、パケットＢが経路Ｂを介して伝送されたときの送信ノードとパケット受信部３０との間の時計差（以下、時計差Ｂ）を測定する。さらに、時計差測定部４２Ａ、４２Ｂは、それぞれ、時計差Ａ、Ｂの平均値も算出する。
【０１２８】
遅延差測定部４３は、時計差Ａおよび時計差Ｂに基づいて遅延差を特定する。この遅延差は、経路Ａの伝送遅延と経路Ｂの伝送遅延との差分を表す。また、遅延差は、例えば、時計差Ａから時計差Ｂを引算することで算出される。
【０１２９】
揺らぎ吸収時間計測タイマ４４は、位相制御の対象フローの最初のパケットがパケット受信部３０に到着したときに起動される。そして、予め決められている揺らぎ吸収時間が経過すると、揺らぎ吸収時間計測タイマ４４は、タイマ満了信号を出力する。
【０１３０】
出力予定時刻算出部４５は、揺らぎ吸収時間計測タイマ４４からタイマ満了信号を受信したときに、時計差および遅延差を確定する。そして、出力予定時刻算出部４５は、受信パケットのタイムスタンプおよび確定時計差を利用して、その受信パケットの出力予定時刻を算出する。このとき、確定遅延差を利用して、経路Ａの伝送遅延と経路Ｂの伝送遅延との差分が補償される。
【０１３１】
正常性監視部４６は、各経路の正常性を監視する。この実施例では、正常性監視部４６は、測定時計差および出力予定時刻を利用して、各経路が正常であるか否かを判定する。そして、正常性監視部４６は、各経路についての監視結果を障害監視部４７に通知する。例えば、正常性監視部４６は、監視対象の経路が正常であるときに、正常性確認信号を出力する。
【０１３２】
障害監視部４７は、上述した遅延差異常、滞留時間オーバフロー、滞留時間アンダーフローを監視する。ただし、正常性監視部４６から正常性確認信号が与えられたときは、障害監視部４７は、障害監視を実行しない。例えば、経路Ａについての正常性確認信号が与えられたときは、障害監視部４７は、経路Ａ（すなわち、Ａ面）について障害監視を実行せずに、経路Ｂ（すなわち、Ｂ面）についてのみ障害監視を実行する。
【０１３３】
復帰処理部４８は、Ａ面およびＢ面の双方で障害が検出されたとき、又は、パケット出力部３７において出力断が検出されたときに、障害復帰処理を実行する。障害復帰処理において、パケットバッファ３３Ａ、３３Ｂがクリアされる。そして、バッファクリアが完了すると、復帰処理部４８は、揺らぎ吸収時間計測タイマ４４および出力予定時刻算出部４５にリセット指示を送る。揺らぎ吸収時間計測タイマ４４は、リセット指示によりリセットされ、再度、揺らぎ吸収時間のカウントを開始する。また、出力予定時刻算出部４５は、リセット指示が与えられると、確定時計差および確定遅延差を再計算する。
【０１３４】
上記構成の位相制御部３４において、正常性監視部４６は、下記の正常性を監視する。
（１）時計差の正常性
正常性監視部４６は、受信パケットについて測定した時計差（以下、測定時計差）が所定の範囲内であれば、そのパケットを伝送する経路が正常であると判定する。所定の範囲の下限値および上限値は、例えば「確定時計差−揺らぎ吸収時間」および「確定時計差＋揺らぎ吸収時間」である。ここで、確定時計差は、測定時計差の平均値に相当する。揺らぎ吸収時間は、ネットワーク上で発生し得る最大揺らぎ時間に相当する。揺らぎ時間は、主に、経路上のノードに実装される中継機器のパケット処理時間のバラつきに起因する。中継機器のパケット処理時間のバラつきの最大値は、通信規格等において予め決められている。よって、例えば、５台の中継機器が経路上に配置され、各中継機器のパケット処理時間のバラつき最大値が１ｍ秒である場合、その経路の最大揺らぎ時間は５ｍ秒である。
【０１３５】
測定時計差は、送信ノードにおいてパケットに付与されるタイムスタンプと、そのパケットがパケット受信部３０に到着したときのＲＴＣ生成部４１のＲＴＣ値との差分に相当する。すなわち、測定時計差は、送信ノードとパケット受信部３０との間における経路の伝送遅延の測定値を表す。ここで、送信ノードとパケット受信部３０との間における経路の伝送遅延の測定値が、想定される伝送遅延（伝送遅延の基準値）に近ければ、その経路は正常であると考えられる。したがって、測定時計差が伝送遅延の基準値に近ければ、送信ノードとパケット受信部３０との間の経路が正常であると考えられる。
【０１３６】
そこで、伝送遅延の基準値が決定される。ただし、伝送遅延は、パケット毎にバラつきを有する。よって、伝送遅延の基準値は、伝送遅延を複数回測定し、その平均を計算することで取得される。位相制御部３４においては、測定時計差を平均化することで得られる確定時計差が伝送遅延の基準値として使用される。なお、平均化に要する期間は、揺らぎ吸収時間（すなわち、最大揺らぎ時間）に相当する。
【０１３７】
パケット毎に測定される伝送遅延のバラつきは、上述したように、経路上のノードに実装される中継機器内の揺らぎに起因する。この揺らぎは、異常動作によるものではなく、通常動作において発生し得る。したがって、パケットが伝送される経路の伝送遅延の揺らぎが予め想定されている範囲内であれば、その経路は正常であると考えられる。即ち、伝送遅延の測定値（すなわち、測定時計差）が「確定時計差−揺らぎ吸収時間」よりも大きく、且つ、「確定時計差＋揺らぎ吸収時間」よりも小さければ、経路が正常であると判定される。
【０１３８】
（２）出力予定時刻の正常性
正常性監視部４６は、受信パケットについて決定された出力予定時刻と現在時刻との差分が所定時間よりも小さければ、そのパケットを伝送する経路が正常であると判定する。具体的には、受信パケットの出力予定時刻が現在時刻よりも後であり、且つ、所定の閾値時刻よりも前であれば、そのパケットを伝送する経路が正常であると判定される。出力予定時刻は、以下の通りである。
先着面：受信パケットのタイムスタンプ＋確定時計差＋揺らぎ吸収時間＋確定遅延差
後着面：受信パケットのタイムスタンプ＋確定時計差＋揺らぎ吸収時間
【０１３９】
確定遅延差は、２本の経路の伝送遅延の差分に相当する。確定時計差は、測定時計差の平均を表す。測定時計差は、パケット受信部３０のＲＴＣ値（すなわち、現在時刻）から受信パケットのタイムスタンプを引き算することで得られる。ここで、伝送路の伝送遅延のバラつきを無視すれば、受信パケットのタイムスタンプに確定時計差を加算すると、パケット受信部３０の時計による現在時刻が得られる。したがって、伝送路の伝送遅延のバラつきを無視すれば、出力予定時刻は下式で表される。
先着面：現在時刻＋揺らぎ吸収時間＋確定遅延差
後着面：現在時刻＋揺らぎ吸収時間
【０１４０】
ただし、実際には、上述したように、伝送遅延はパケット毎にバラつきを有する。したがって、伝送路の遅延の揺らぎを考慮すれば、先着面において出力予定時刻が正常と考えられる範囲は以下の通りである。
「現在時刻＋揺らぎ吸収時間＋確定遅延差−最大揺らぎ時間」よりも後、且つ、「現在時刻＋揺らぎ吸収時間＋確定遅延差＋最大揺らぎ時間」よりも前
【０１４１】
ここで、この実施例では、揺らぎ吸収時間として最大揺らぎ時間が使用される。したがって、先着面において出力予定時刻が正常と考えられる範囲は以下の通りである。
「現在時刻＋確定遅延差」よりも後、且つ、「現在時刻＋２×揺らぎ吸収時間＋確定遅延差」よりも前
【０１４２】
さらに、出力予定時刻は、現在時刻よりも後であれば問題はないので、出力予定時刻が下記の条件を満足するときに、先着面の経路が正常であると判定してもよい。
「現在時刻」よりも後、且つ、「現在時刻＋２×揺らぎ吸収時間＋確定遅延差」よりも前
【０１４３】
或いは、揺らぎ吸収時間の代わりに最大揺らぎ時間を用いて表現すれば、出力予定時刻が下記の条件を満足するときに、先着面の経路が正常であると判定してもよい。
「現在時刻」よりも後、且つ、「現在時刻＋２×最大揺らぎ時間＋確定遅延差」よりも前
【０１４４】
一方、後着面において出力予定時刻が正常と考えられる範囲は以下の通りである。
「現在時刻＋揺らぎ吸収時間−最大揺らぎ時間」よりも後、且つ、「現在時刻＋揺らぎ吸収時間＋最大揺らぎ時間」よりも前
【０１４５】
ここで、この実施例では、揺らぎ吸収時間として最大揺らぎ時間が使用される。したがって、後着面において出力予定時刻が正常と考えられる範囲は以下の通りである。
「現在時刻」よりも後、且つ、「現在時刻＋２×揺らぎ吸収時間」よりも前
【０１４６】
或いは、揺らぎ吸収時間の代わりに最大揺らぎ時間を用いて表現すれば、出力予定時刻が下記の条件を満足するときに、後着面の経路が正常であると判定してもよい。
「現在時刻」よりも後、且つ、「現在時刻＋２×最大揺らぎ時間」よりも前
【０１４７】
正常性監視部４６は、各経路について、時計差の正常性または出力予定時刻の正常性の少なくとも一方を監視する。そして、正常性監視部４６により正常であると判定された経路については、障害監視部４７により監視は実行されない。
【０１４８】
図１６は、位相制御部３４の処理の一例を示すフローチャートである。図１６に示すフローチャートでは、時計差の正常性が監視される。なお、図１６に示すフローチャートの処理は、各経路に対して実行される。
【０１４９】
Ｓ４１において、時計差測定部（４２Ａまたは４２Ｂ）は、受信パケットのタイムスタンプを利用して、送信ノードとパケット受信部３０との間の時計差を測定する。Ａ面の測定時計差は、経路Ａを介してパケットが到着したときにＲＴＣ生成部４１により生成されるＲＴＣ値とそのパケットに付与されているタイムスタンプとの差分を表す。Ｂ面の測定時計差は、経路Ｂを介してパケットが到着したときにＲＴＣ生成部４１により生成されるＲＴＣ値とそのパケットに付与されているタイムスタンプとの差分を表す。
【０１５０】
Ｓ３１において、遅延差測定部４３は、Ａ面とＢ面との間の遅延差を計算する。この遅延差は、Ａ面の測定時計差からＢ面の測定時計差を引き算することで得られる。
【０１５１】
Ｓ４２において、正常性監視部４６は、Ｓ４１で得られた測定時計差が所定の範囲内であるか判定する。ここで、測定時計差は、送信ノードとパケット受信部３０との間の伝送遅延を表す。したがって、正常性監視部４６は、伝送遅延が所定の範囲内であるか判定する。所定の範囲の下限値および上限値は、「確定時計差−揺らぎ吸収時間」および「確定時計差＋揺らぎ吸収時間」である。
【０１５２】
測定時計差（すなわち、伝送遅延）が所定の範囲内であれば、正常性監視部４６は、受信パケットを伝送する経路が正常であると判定する。この場合、障害監視部４７は、Ｓ３２〜Ｓ３５の障害監視を実行しない。そして、位相制御部３４は、Ｓ３６において、受信パケットをパケットバッファ部（３３Ａまたは３３Ｂ）に格納する。
【０１５３】
測定時計差（すなわち、伝送遅延）が所定の範囲外であれば、障害監視部４７は、Ｓ３２〜Ｓ３５の障害監視を実行する。Ｓ３２〜Ｓ３５の処理は、図１０および図１６において実質的に同じなので説明を省略する。障害監視の結果、障害が検出されなければ、位相制御部３４は、Ｓ３６において、受信パケットをパケットバッファ部（３３Ａまたは３３Ｂ）に格納する。一方、障害が検出されたときは、位相制御部３４は、Ｓ３７において、受信パケットを廃棄する。
【０１５４】
図１７は、位相制御部３４の処理の他の例を示すフローチャートである。図１７に示すフローチャートでは、出力予定時刻の正常性が監視される。なお、図１７に示すフローチャートの処理は、各経路に対して実行される。
【０１５５】
Ｓ５１において、出力予定時刻算出部４５は、受信パケットの出力予定時刻を算出する。受信パケットの出力予定時刻は、そのパケットに付与されているタイムスタンプ、確定時計差、揺らぎ吸収時間に基づいて算出される。ただし、先着面においては、受信パケットの出力予定時刻は、そのパケットに付与されているタイムスタンプ、確定時計差、揺らぎ吸収時間、確定遅延差に基づいて算出される。
【０１５６】
Ｓ５２において、位相制御部３４は、受信パケットが先着面のパケットであるか判定する。なお、受信パケットが先着面のパケットであるか否かは、Ｓ３１で得られた遅延差の符号で表される。
【０１５７】
受信パケットが先着面のパケットであれば、正常性監視部４６は、Ｓ５３において、受信パケットの出力予定時刻が現在時刻と閾値時刻１との間であるか判定する。閾値時刻１は、「現在時刻＋２×揺らぎ吸収時間＋確定遅延差」である。そして、出力予定時刻が現在時刻と閾値時刻１との間であるときは、正常性監視部４６は、受信パケットを伝送する経路が正常であると判定する。この場合、障害監視部４７は、Ｓ３３〜Ｓ３５の障害監視を実行しない。そして、位相制御部３４は、Ｓ３６において、受信パケットをパケットバッファ部（３３Ａ、３３Ｂ）に格納する。
【０１５８】
一方、受信パケットが後着面のパケットであれば、正常性監視部４６は、Ｓ５４において、受信パケットの出力予定時刻が現在時刻と閾値時刻２との間であるか判定する。閾値時刻２は、「現在時刻＋２×揺らぎ吸収時間」である。そして、出力予定時刻が現在時刻と閾値時刻２との間であるときは、正常性監視部４６は、受信パケットを伝送する経路が正常であると判定する。この場合、障害監視部４７は、Ｓ３３〜Ｓ３５の障害監視を実行しない。そして、位相制御部３４は、Ｓ３６において、受信パケットをパケットバッファ部（３３Ａ、３３Ｂ）に格納する。
【０１５９】
受信パケットが先着面のパケットであり、且つ、受信パケットの出力予定時刻が現在時刻と閾値時刻１との間でないときは、障害監視部４７は、Ｓ３４〜Ｓ３５の障害監視を実行する。また、受信パケットが後着面のパケットであり、且つ、受信パケットの出力予定時刻が現在時刻と閾値時刻２との間でないときは、障害監視部４７は、Ｓ３３〜Ｓ３５の障害監視を実行する。Ｓ３３〜Ｓ３５の処理は、図１０および図１７において実質的に同じなので説明を省略する。
【０１６０】
図１８は、位相制御部３４の処理のさらに他の例を示すフローチャートである。図１８に示すフローチャートでは、時計差および出力予定時刻の正常性が監視される。なお、図１８に示すフローチャートの処理は、各経路に対して実行される。
【０１６１】
図１８に示す例では、時計差または出力予定時刻の少なくとも一方において対象の経路が正常であると判定されたときは、障害監視部４７は、その経路について障害監視を実行しない。なお、図１８に示す例では、時計差の正常性の監視の後に出力予定時刻の正常性がチェックされるが、時計差の正常性の監視の前に出力予定時刻の正常性がチェックされるようにしてもよい。
【０１６２】
このように、本発明の実施形態に係わるパケット伝送装置１は、正常性監視部４６を備える。正常性監視部４６は、経路Ａおよび経路Ｂの正常性をそれぞれ監視する。そして、障害監視部４７は、正常性監視部４６により正常と判定されなかった経路について障害を監視する。したがって、一方の経路が正常であるにもかかわらず双方の経路で障害が発生していると判定される誤検出が抑制され、安定した無瞬断通信が実現される。
【０１６３】
例えば、図１２に示す例では、経路Ｂのみで障害が発生している。すなわち、経路Ａは正常である。ところが、正常性監視を行うことなく障害監視が実行されると、図１３に示すように、Ａ面およびＢ面の双方で障害が検出されるおそれがある。この場合、障害復帰処理が実行され、通信が一時的に停止してしまう。
【０１６４】
これに対して、本発明の実施形態に係る障害検出方法によれば、正常性監視部４６が各経路について正常性を監視する。例えば、正常性監視において時計差が監視されるケースでは、測定時計差が所定の範囲内であるか判定される。図１１〜図１３に示す例では、Ａ面の確定時計差（すなわち、Ａ面の測定時計差の平均）は「９５」である。また、揺らぎ吸収時間（または、最大揺らぎ時間）は「１２」である。よって、Ａ面の時計差の正常性を判定するための範囲は「９５±１２」である。一方、図１３に示すように、経路Ｂを介して遅延パケットが到着した時刻（ＲＴＣ＝３３９）において、Ａ面の測定遅延差は「９５（＝３３９−２４４）」である。よって、Ａ面は正常であると判定され、Ａ面について障害監視は実行されない。この結果、Ａ面において障害の誤検出は発生しない。
【０１６５】
また、正常性監視において出力予定時刻が監視されるケースでは、受信パケットの出力予定時刻が所定の範囲内であるか判定される。図１３に示す例では、経路Ｂを介して遅延パケットが到着した時刻（ＲＴＣ＝３３９）において、測定遅延差が正の値なので、Ａ面が後着面であると判定される。この場合、Ａ面において時刻３３９に到着した受信パケットの出力予定時刻の正常性を判定するための範囲は「３３９（＝現在時刻）」〜「３６３（＝３３９＋２×１２）」である。一方、この受信パケットの出力予定時刻は「３５１（＝３３９＋１２）」である。よって、このケースでもＡ面は正常であると判定され、Ａ面について障害監視は実行されない。この結果、Ａ面において障害の誤検出は発生しない。
【０１６６】
このように、経路Ｂのみで障害が発生したケースにおいて、経路Ａが正常であると判定されると、パケット受信部３０は経路Ａについての障害監視を実行しない。よって、Ａ面において障害の誤検出は発生せず、パケット受信部３０は障害復帰処理を実行しない。したがって、一方の経路のみでの障害に起因して通信が停止する事態は回避される。
【０１６７】
尚、パケット伝送装置１に実装される位相制御部３４は、例えば、ハードウェア回路により実現される。この場合、時計差測定部４２Ａ、４２Ｂは、受信パケットに付与されているタイムスタンプとＲＴＣ生成部４１により生成されるＲＴＣ値との差分を計算して測定時計差を得る回路、及び、測定時計差を平均化する回路を含む。遅延差測定部４３は、時計差測定部４２Ａ、４２Ｂにより算出される測定時計差の差分を計算して測定遅延差を得る回路を含む。出力予定時刻算出部４５は、時計差を確定させる回路、遅延差を確定させる回路、出力予定時刻を計算する回路を含む。出力予定時刻を計算する回路は、ＲＴＣ値に最大揺らぎ時間を加算する回路、及び、ＲＴＣ値に最大揺らぎ時間および確定遅延差を加算する回路を含む。正常性監視部４６は、時計差の正常性を監視するケースでは、測定時計差と閾値（下限閾値および上限閾値）とを比較する回路を含む。出力予定時刻の正常性を監視するケースでは、正常性監視部４６は、出力予定時刻と閾値時刻とを比較する回路を含む。障害監視部４７は、測定遅延差と最大遅延差とを比較する回路、出力予定時刻と現在時刻とを比較する回路、及び、出力予定時刻と現在時刻との差分と閾値とを比較する回路を含む。
【０１６８】
ただし、位相制御部３４の機能の一部または全部をソフトウェアで実現してもよい。この場合、位相制御部３４は、プロセッサシステムを含む。プロセッサシステムは、位相制御部３４の機能の一部または全部を記述したプログラムを実行するプロセッサエレメントおよびメモリを含む。
【符号の説明】
【０１６９】
１（１Ｘ、１Ｙ）  パケット伝送装置
２０  パケット送信部
２２  パケット識別部
２３  ヘッダ付与部
３０  パケット受信部
３２Ａ、３２Ｂ  パケット識別部
３３Ａ、３３Ｂ  パケットバッファ部
３４  位相制御部
３５Ａ、３５Ｂ  パケット管理部
３６  ＤＥＱ判定部
３７  パケット出力部
４１  ＲＴＣ生成部
４２Ａ、４２Ｂ  時計差測定部
４３  遅延差測定部
４４  揺らぎ吸収時間計測タイマ
４５  出力予定時刻算出部
４６  正常性監視部
４７  障害監視部
４８  復帰処理部
【図１】
2019047231.tif 000003
【図２】
2019047231.tif 000004
【図３】
2019047231.tif 000005
【図４】
2019047231.tif 000006
【図５】
2019047231.tif 000007
【図６】
2019047231.tif 000008
【図７】
2019047231.tif 000009
【図８】
2019047231.tif 000010
【図９】
2019047231.tif 000011
【図１０】
2019047231.tif 000012
【図１１】
2019047231.tif 000013
【図１２】
2019047231.tif 000014
【図１３】
2019047231.tif 000015
【図１４】
2019047231.tif 000016
【図１５】
2019047231.tif 000017
【図１６】
2019047231.tif 000018
【図１７】
2019047231.tif 000019
【図１８】
2019047231.tif 000020