(57)【特許請求の範囲】
【請求項１】
ネットワーク（１０）上の受信側ノード（７０、７６、８０、８４、９０、９４）のグローバルネットワーク時刻（１７０）のローカル推定値をネットワーク上の少なくとも第１および第２の送信側ノード（７０、７６、８０、８４）の一方のグローバルネットワーク時刻基準（ＧＮＴ）に同期させる方法であって、
各第１および第２の送信側ノード（７０、７６、８０、８４）から、第１のチャネル（１７４）上で第１の精密時間プロトコル同期メッセージ（ＰＴＰメッセージ）を、また第２のチャネル（１８０）上で第２の精密時間プロトコル同期メッセージ（ＰＴＰメッセージ）を受信側ノード（７０、７６、８０、８４、９０、９４）に送信するステップであり、各ＰＴＰメッセージが、それぞれの送信側ノード（７０、７６、８０、８４）によって設定された前記ＧＮＴに関連する時刻データを有する、ステップと、
前記受信側ノードによって、各送信側ノード（７０、７６、８０、８４）からの前記第１および第２のＰＴＰメッセージの一方を選択し、各選択されたＰＴＰメッセージに対応するローカルネットワーク時刻（ＬＮＴ）に関連する時刻データを設定するステップと、
選択されたＰＴＰメッセージ（１９０）ごとに前記送信側ノード（７０、７６、８０、８４）および前記受信側ノード（７０、７６、８０、８４、９０、９４）について、ＧＮＴ値およびＬＮＴ値を含む前記時刻データを抽出するステップと、
前記第１および第２の送信側ノード（７０、７６、８０、８４）のそれぞれに対応する、レシオおよびオフセットを決定するステップと、
前記決定されたレシオおよびオフセットを所定の基準に対して比較するステップと、
前記比較に基づいて前記第１および第２の送信側ノード（７０、７６、８０、８４）の一方を選択するステップと、
前記ＬＮＴを前記選択された送信側ノード（７０、７６、８０、８４）の前記ＧＮＴに同期させるステップと、
を含み、
前記第１および第２の送信側ノード（７０、７６、８０、８４）のそれぞれに対応するレシオ（Ｒ）およびオフセット（ＴＯ）を決定するステップが、
Ａ．時間オフセット（ＴＯ）のＧＮＴに対するＬＮＴの現在および初期の前記レシオ（ＲまたはＲｏ）、スケール調整数（δ）、レシオ偏差限界（δｍａｘ）、サンプル閾値（ｑ）、最小技術的ＰＴＰメッセージ転送レイテンシ（Ｄｍｉｎ）、最大許容ＰＴＰメッセージ遅延（Ｄｍａｘ）、構成済みの同期範囲内の時間（ＴＯ）の数をカウントしたもの（Ｓ）、同期閾値（Ｃ）、および同期フラグ（ＳｙｎおよびＳｙｎｃ）を初期化するステップ（２３０）と、
Ｂ．現在の期間に対応する前記ＧＮＴ値（Ｔ１）を受信し、現在の期間に対応する前記ＬＮＴ値（Ｔ２）を受信するステップ（２３２）と、
Ｃ．Ｔ１とＤｍｉｎの和からＴ２を減算することによって現在の時間オフセット（Ｔｐ）の値を決定し（Ｔｐ＝Ｔ１＋Ｄｍｉｎ−Ｔ２）（２３４）、現在のレシオ（Ｒ）と初期レシオ（Ｒｏ）との差の絶対値の１つが前記レシオの最大許容偏差より大きい（｜Ｒ−Ｒｏ｜＞δｍａｘ）かどうか判定し、大きくない場合には、ステップＥに進むステップ（２５２）と、
Ｄ．ＴＯをＴｐについて計算された値に設定し（ＴＯ＝Ｔｐ）、Ｓｙｎ＝ＦａｌｓｅおよびＳ＝０を設定し、次いでステップＨに進むステップ（２５４）と、
Ｅ．ＳがＣより大きい（Ｓ＞Ｃ）かどうか判定し（２４４）、ＳがＣより大きい場合には、ステップＧに進むステップと、
Ｆ．Ｓを増分し、オフセットＴＯをオフセットＴｐに等しく設定し（２５０）、次いでステップＨに進むステップと、
Ｇ．Ｓｙｎ＝Ｔｒｕｅを設定するステップ（２５６）と、
Ｈ．Ｔｐが０未満であるかどうか、またＴｐが０以上であるかどうか判定し（２３６）、次いでステップＫに進むステップと、
Ｉ．最後の時間Ｒが調整されて以来ｑ期間の間、Ｔｐが負であったかどうか判定し（２３８）、負でなかった場合にはステップＭに進むステップと、
Ｊ．Ｒ＝Ｒ−δを設定し（２４６）、次いでステップＮに進むステップと、
Ｋ．ＴＯ＝Ｔｐを設定するステップ（２４２）と、
Ｌ．最後の時間Ｒが調整されて以来ｑ期間の間、Ｔｐが正であったかどうか判定し（２４０）、正でなかった場合にはステップＮに進むステップと、
Ｍ．Ｒ＝Ｒ＋δを設定するステップ（２４８）と、
Ｎ．出力であるレート＝Ｒ、オフセット＝ＴＯ、Ｓｙｎｃ＝Ｓｙｎを設定し（２５８）、次いでステップＢに戻るステップと、
を含む、
方法。
【請求項２】
前記ＰＴＰメッセージ（１９０）を送信するステップ、前記ＰＴＰメッセージ（１９０）を選択するステップ、および前時刻データを記抽出するステップが、時系列の時間セグメントにわたって繰り返される、請求項１に記載の方法。
【請求項３】
前記時間セグメントが、１２５ミリ秒と５００ミリ秒の間である、請求項２に記載の方法。
【請求項４】
前記ＬＮＴを前記選択されたレシオおよびオフセットの前記ＧＮＴに同期させることが、前記選択されたレシオにＬＲクロックを乗じたものをＬＲクロックの周期ごとにＬＮＴに加算し、前記選択されたオフセットが使用可能になった後で前記選択されたオフセットを前記ＬＮＴに加算すること（ＬＮＴ＝ＬＮＴ＋Ｒａｔｉｏ＊ＬＲＰ＋Ｏｆｆｓｅｔ＊ＯＵＳ）（２２４）をさらに含む、請求項１から３のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の技術は、ＡＲＩＮＣ６６４パート７に記載されているアビオニクス全二重交換イーサネット（商標）など二重冗長ネットワーク内のフリーランニングノード間で時間を同期させる方法に関する。
【背景技術】
【０００２】
ＡＲＩＮＣ６６４パート７ネットワークでは、各エンドシステム（ＥＳ）またはターミナルノードがネットワークインターフェースコントローラ（ＮＩＣ）の役割を担い、ホストプロセッサを共用する複数のアプリケーションによって書込みおよび読出しされるメッセージのために１つまたは複数のチャネル上で開いた通信ポートを維持することができる。ＡＲＩＮＣ６６４パート７アビオニクスネットワークでは、ノードは、未検出エラーの確率が１飛行時間あたり約１０-6未満である通常完全性モードで動作することができる。未検出エラーの確率が１飛行時間あたり１０-9以下でなければならない高完全性モードをサポートするためには、ノードに追加の機能が必要とされる。アプリケーションは、ネットワーク全体にわたって移送される、安全にとって決定的なデータのために高い完全性を確保することが重要である場合、高完全性モードで動作する可能性がある。そのような完全性検査は、ビット完全性を検証すること（たとえば、巡回冗長チェックサムを使用する）、発信元完全性を検証すること（すなわち、データが確実に正しい発信元から入来するようにする）、時間的順序を検証すること（すなわち、メッセージが送受信される順序を検査する）、およびデータのエージを検証すること（すなわち、メッセージが送信ノードにサブミットされたときと、そのメッセージが受信側ノードから取り出されたときとの時間差）を含む。順序性およびエージを検証するために、データには、発信元アプリケーションによって公開されたとき、および宛先アプリケーションによって取り出されたとき、ノードごとにそれぞれのローカル時間基準を参照して、またはそれを使用して、正確にタイムスタンプを与えなければならない。したがって、ＥＳそれぞれのローカル時間基準すべてが、指定された最小許容差内で、時間が悪化するのを防止するように、互いに追随し合うことが重要である。
【発明の概要】
【０００３】
ネットワークを介して通信する、安全にとって決定的なアプリケーションは、アプリケーション特有のプロトコルを使用し、アプリケーション内でそれ自体の順序および時間の完全性の監視および検証を実施することができる。たとえば、ＧＥとＲｏｃｋｗｅｌｌ  Ｃｏｌｌｉｎｓによって共同開発されたボーイング７８７Ｃｏｍｍｏｎ  Ｄａｔａ  Ｎｅｔｗｏｒｋは、時間基準、および個々のノード時間基準間の関係を含むオフセットテーブルを集中監視および分配するために別個の管理機能を使用する。このアーキテクチャでは、各ノードがオフセット情報を計算しなければならず、受信されたメッセージごとにタイムスタンプを適用し順序および時間の完全性を検証するＡＳＩＣ処理エレメントをプログラムしなければならない。この手法は、各ノード内で著しい処理を必要とし、またあらゆるノードと管理機能をサポートするノードとの間に追加の低レイテンシ通信経路を設けるためにかなりのネットワークリソースを消費する。
【０００４】
一態様では、ネットワーク上の受信側ノード用のローカル時間基準（ＬＮＴ）をネットワーク上の送信側ノードのグローバルネットワーク時間基準（ＧＮＴ）の推定値に同期させる方法が、受信側ノード用のＧＮＴおよびＬＮＴ時間データを確立するために、各送信側ノードから冗長な精密時間プロトコル同期メッセージを送信するステップを含む。受信側ノードは、これらの２つの冗長ＰＴＰメッセージの１つを選択し、各選択されたＰＴＰメッセージに対応するＬＮＴに関連する時間データを設定する。受信側ノードは、選択されたＰＴＰメッセージごとに送信側ノードおよび受信側ノードについてＧＮＴ値およびＬＮＴ値を取り込み、受信側ノードのそれぞれに対応する時間データに基づいてレシオ（ｒａｔｉｏ）およびオフセットを決定する。受信側ノードは、所定の基準を使用して、決定されたレシオおよびオフセットの対を比較し、その比較に基づいて送信側ノードの１つを選択し、ＬＮＴを、選択された送信側ノードのＧＮＴに同期させる。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態に従って動作するように構成されたアビオニクス通信ネットワークのトポロジの概略図である。
【図２】図１のネットワークを介して送信される通信メッセージの概略図である。
【図３】図１のネットワークを介して送信するための図２の通信メッセージの複数のフラグメントの概略図である。
【図４】本発明の一実施形態による、図１のネットワークのエンドシステムにてグローバルネットワーククロックのローカル推定値を同期させる方法を示す流れ図である。
【図５】図４に示されている方法を実施するための、各マスタエンドシステムの時間追随の方法を示す流れ図である。
【図６】ローカル時間基準をグローバルネットワーク時間基準に同期させるために、レシオおよびオフセットによってローカル時間基準を調整する一方法を示す図である。
【図７】本発明の一実施形態による、エンドシステムにて受信されたメッセージを区分する方法を示す流れ図である。
【発明を実施するための形態】
【０００６】
以下の説明では、本明細書に記載の技術を完全に理解することができるように、説明のために多数の特定の詳細を述べる。しかし、例示的な実施形態はこれらの特定の詳細なしに実施することができることが、当業者には明らかであろう。他の場合には、例示的な実施形態の説明を容易にするために、構造および装置が図の形態で示されている。
【０００７】
以下、例示的な実施形態について、図面を参照して述べる。これらの図面は、本明細書に記載のモジュール、方法、およびコンピュータプログラム製品を実装する特定の実施形態のいくつかの詳細を示す。しかし、これらの図面は、図面に存在し得る何らかの限定を強いるものと解釈すべきでない。本方法およびコンピュータプログラム製品は、それらの動作を行うために、任意の機械可読媒体上で提供することができる。これらの実施形態は、既存のコンピュータプロセッサを使用して、またはこの目的もしくは別の目的のために組み込まれた専用コンピュータプロセッサによって、またはハードワイヤードシステムによって実施することができる。
【０００８】
上記で指摘したように、本明細書に記載の実施形態は、機械実行可能命令またはデータ構造体を担持する、またはそれらが記憶された機械可読媒体を含むコンピュータプログラム製品を含む。そのような機械可読媒体は、汎用コンピュータもしくは専用コンピュータ、またはプロセッサを備える他の機械によってアクセスすることができる任意の使用可能な媒体とすることができる。例として、そのような機械可読媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶装置、または、所望のプログラムコードを機械実行可能命令もしくはデータ構造体の形態で担持もしくは記憶するために使用することができ、汎用コンピュータもしくは専用コンピュータや、プロセッサを備える他の機械によってアクセスすることができる任意の他の媒体を含むことができる。情報がネットワークまたは別の通信接続（ハードワイヤード、無線、またはハードワイヤードもしくは無線の組合せ）を介して機械に転送または提供されたとき、その機械はその接続を適正に機械可読媒体とみなす。したがって、任意のそのような接続が機械可読媒体と称されることが適正である。上記のものの組合せもまた、機械可読媒体の範囲内に含まれる。機械実行可能命令は、たとえば汎用コンピュータ、専用コンピュータ、または専用処理装置に、ある機能または機能のグループを実施させる命令およびデータを含む。
【０００９】
実施形態については、一実施形態ではたとえばネットワーク環境において機械によって実行されるプログラムモジュールの形態にある、プログラムコードなど機械実行可能命令を含むプログラム製品によって実装され得る方法ステップの一般的な文脈で述べる。一般に、プログラムモジュールは、特定のタスクを実施する技術的効果を有する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。機械実行可能命令、関連のデータ構造体、およびプログラムモジュールは、本明細書に記載の方法のステップを実行するためのプログラムコードの例の典型である。そのような実行可能命令または関連のデータ構造体の特定のシーケンスは、そのようなステップで述べられている機能を実施するための対応する動作の例の典型である。
【００１０】
実施形態は、プロセッサを有する１つまたは複数の遠隔コンピュータに対する論理接続を使用して、ネットワーク環境で実施することができる。論理接続は、ローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）を含むことができ、これらはここで例として提示されており、限定するものではない。そのようなネットワーク環境は、全事務所コンピュータネットワークまたは全社コンピュータネットワーク、イントラネットおよびインターネットで普通であり、多種多様な異なる通信プロトコルを使用することができる。そのようなネットワークコンピューティング環境は、一般に、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサをベースとする家電またはプログラム可能な家電、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータなどを含めて、多数のタイプのコンピュータシステム構成を包含することになることを、当業者なら理解するであろう。
【００１１】
また、実施形態は、通信ネットワークを介して（ハードワイヤードリンク、無線リンクによって、またはハードワイヤードリンクもしくは無線リンクの組合せによって）リンクされるローカル処理デバイスおよび遠隔処理デバイスによってタスクが実施される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置と遠隔メモリ記憶装置のどちらにも位置することができる。
【００１２】
例示的な実施形態の全体または一部分を実施するための例示的なシステムは、処理ユニット、システムメモリ、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニットに結合するシステムバスを含むコンピュータの形態にある汎用コンピューティングデバイスを含む可能性がある。システムメモリは、読出し専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を含むことができる。また、コンピュータは、磁気ハードディスクからの読出しおよびその書込みのための磁気ハードディスクドライブ、取外し式磁気ディスクからの読出しおよびその書込みのための磁気ディスクドライブ、ＣＤ−ＲＯＭまたは他の光媒体など取外し式光ディスクからの読出しおよびその書込みのための光ディスクドライブを含むことができる。これらのドライブおよびそれらの関連の機械可読媒体は、機械実行可能命令、データ構造体、プログラムモジュール、およびコンピュータのための他のデータの不揮発性記憶を実現する。
【００１３】
これらの実施形態で開示される方法の技術的効果は、航空機上のアビオニクスネットワーク内で受信されるデータの完全性を確かめることを含む。順序性およびエージを検証するために、データには、送信側によって公開されたとき、および宛先受信側で受け取られたとき、それらのそれぞれのローカル時間基準を使用して、正確にタイムスタンプを与えなければならない。
【００１４】
本発明の本実施形態は、アビオニクスネットワーク上のターミナルノードでの時間を、そのネットワーク上の少なくとも１つのターミナルノード上で維持されているグローバルネットワーク時間に同期させることに関する。同期プロセスは、ネットワークを介してターミナルノードに、グローバルネットワーク時間を維持するノードからメッセージを送り、そのメッセージに関連付けられたタイミング情報を抽出し、同期させようとするノードのそれぞれにてグローバルネットワーク時間のローカル推定値を同期させることを含む。
【００１５】
次に図１を参照すると、通信ネットワーク１０は、複数のターミナルノード７０、７６、８０、８４、９０、９４を有することができる。また、これらの複数のターミナルノード７０、７６、８０、８４、９０、９４は、エンドシステム（ＥＳ）とも呼ぶことができる。各エンドシステム７０、７６、８０、８４、９０、９４は、マスタエンドシステム７０、７６、８０、８４またはスレーブエンドシステム９０、９４であり得る。通信ネットワーク１０は、ネットワーク１０を介してデータを転送するためにスイッチ３０、３２、３４、４０、４２、４４をさらに含む。この構成では、各ＥＳ７０、７６、８０、８４、９０、９４は、ネットワーク内の第１および第２のチャネル（チャネルＡ、Ｂ）の一方に接続され、各スイッチが、一方のチャネル上で媒体アクセス制御（ＭＡＣ）フレームを転送する。換言すれば、チャネルＡスイッチ３０、３２、３４、およびチャネルＢスイッチ４０、４２、４４がある。スイッチ３０、３２、３４、４０、４２、４４、およびＥＳ７０、７６、８０、８４、９０、９４のシステムは、ネットワーク接続２０を介して互いに相互接続される。ネットワーク接続２０は、チャネルＡスイッチとエンドシステム７０、７６、８０、８４、９０、９４のそれぞれとの間の、ＥＳに対するチャネルＡ接続５０と、チャネルＢスイッチとＥＳ７０、７６、８０、８４、９０、９４のそれぞれとの間の、ＥＳに対するチャネルＢ接続５６と、スイッチ間チャネルＡ接続５２と、スイッチ間チャネルＢ接続５８とを含む。
【００１６】
スイッチ３０、３２、３４、４０、４２、４４は、それだけには限らないがルータおよびハブを含めて、通信ネットワーク１０上でトラフィック、メッセージ、またはデータを転送するための、任意の知られているハードウェアおよびソフトウェアを表す。スイッチ３０、３２、３４、４０、４２、４４は、ＡＲＩＮＣ６６４パート７（ＡＦＤＸネットワーク）など知られている通信プロトコルに従って、また高完全性モードおよび通常完全性モードを含めて様々な完全性モード下で通信メッセージを経路指定するために必要とされる、電子コントローラとアプリケーションソフトウェアおよびデータを含む電子メモリと（図示せず）をさらに含むことができる。
【００１７】
ＥＳ７０、７６、８０、８４、９０、９４は、少なくとも通信ネットワーク上でメッセージを送受信すること、時間完全性検査などの方法を使用して受信メッセージの完全性を検証し、本明細書の実施形態に従ってメッセージ区分すること、および本明細書の実施形態に従ってローカルクロックを同期させることを含めて、様々なノード機能に必要とされる、電子コントローラと、アプリケーションソフトウェアおよびデータを含む電子メモリと、ローカル基準（ＬＲ）クロックと（すべてホストとして表されている）をそれぞれが含むことができる。
【００１８】
時間完全性検査が実施されるとき、マスタエンドシステム７０、７６、８０、８４およびスレーブエンドシステム９０、９４を含めて各ノード７０、７６、８０、８４、９０、９４は、本明細書ではグローバルネットワーク時間（ＧＮＴ）のローカルネットワーク時間（ＬＮＴ）と称するそれらのローカル基準（ＬＲ）に基づいて、推定値を生成することができる。さらに、マスタエンドシステム７０、７６、８０、８４（Ｍ１、Ｍ２、Ｍ３、Ｍ４としても指定される）は、受信側ノード７０、７６、８０、８４、９０、９４をグローバルネットワーク時間（ＧＮＴ）に同期させるために使用されるタイムスタンプ情報を含むクロック同期メッセージまたは精密時間プロトコル（ＰＴＰ）メッセージを送信することが可能である。マスタエンドシステム７０、７６、８０、８４は、任意のノード７０、７６、８０、８４、９０、９４を同期させるために通信ネットワーク１０上でＰＴＰメッセージを送信することが可能であるが、マスタエンドシステム７０、７６、８０、８４は、他のマスタエンドシステム７０、７６、８０、８４から受信されたＰＴＰメッセージに基づいてそれ自体のクロックを同期させることもできる。
【００１９】
他の特徴として、これらの複数のマスタエンドシステム７０、７６、８０、８４は、他方のマスタエンドシステム７０、７６、８０、８４に比較して設定された優先順位を有することができる。優先順位は、どのマスタノードを使用すべきか、また時間同期のためにどの順序で使用すべきか判定するために使用することができる。たとえば、マスタエンドシステム７０、７６、８０、８４は、Ｍ１  ７０からのＰＴＰメッセージの時間情報がＭ２  ７６より高い優先順位を有することができ、Ｍ２  ７６はＭ３  ８０より高い優先順位を有することができ、さらにＭ３  ８０はＭ４  ８４より高い優先順位を有することができるように、その特有の優先順位システムを有することができる。代替として、優先順位は、Ｍ１  ７０がＭ２  ７６、Ｍ３  ８０、Ｍ４  ８４より高い優先順位を有し、Ｍ２  ７６、Ｍ３  ８０、Ｍ４  ８４がすべて等しい優先順位レベルを有するようにすることができる。最も高い優先順位を有するマスタノード、たとえばＭ１  ７０は、グランドマスタと呼ぶことができる。場合によっては、マスタエンドシステム７０、７６、８０、８４として指定されるノードは、スレーブエンドシステム９０、９４内のＬＲクロックまたは発振器に比べて、より高い精度、より高い精密さ、より高いスルーレート、時間に関して少ないドリフト、またはより高いＱ値を有するＬＲクロックまたは発振器を有することができる。同様に、グランドマスタノードは、他のマスタエンドシステム７０、７６、８０、８４またはスレーブエンドシステム９０、９４内のＬＲクロックまたは発振器に比べて、より高い精度、より高い精密さ、より高いスルーレート、時間に関して少ないドリフト、またはより高いＱ値を有するＬＲクロックまたは発振器を有することができる。
【００２０】
スレーブエンドシステム９０、９４は、マスタエンドシステム７０、７６、８０、８４と異なり、時間同期のために通信ネットワーク１０上でＰＴＰメッセージを送らないので、ＰＴＰメッセージは単方向性とすることができる。スレーブエンドシステム９０、９４は、受信されたＰＴＰメッセージおよびそれ自体のローカル基準（ＬＲ）に基づいてそれ自体のＬＮＴを同期するために、ＰＴＰメッセージを受信することしかできない。
【００２１】
同期精度は、各マスタエンドシステム７０、７６、８０、８４と、すべての受信側エンドシステム７０、７６、８０、８４、９０、９４との間の最小ＰＴＰメッセージレイテンシ（Ｄｍｉｎ）の正確な推定値に依存する。すなわち、各受信側エンドシステムは、ＰＴＰメッセージを受信するマスタエンドシステムごとに独自のＤｍｉｎ値を用いて構成される。たとえば、アビオニクスネットワークトポロジは、ネットワークが非稼働中であるとき研究室環境でＤｍｉｎ値の正確な推定値を得ることができるように、設計によって固定される。各マスタエンドシステム７０、７６、８０、８４からのＰＴＰメッセージに関するＤｍｉｎ値を確かめる１つの方法は、ネットワーク上に他のトラフィックがない状態で、一時に１つだけマスタエンドシステム７０、７６、８０、８４にＰＴＰメッセージを送らせ、各エンドシステム７０、７６、８０、８４、９０、９４にてレイテンシを測定することによるものとすることができる。
【００２２】
ネットワーク接続２０は、有線方法および無線方法など、通信ネットワーク１０上でノード７０、７６、８０、８４、９０、９４を接続する任意の知られている方法を含むことができる。ネットワークは、様々なネットワーク接続タイプが混在するものを有することができる。たとえば、決定的に重要なノードは、より確実な有線接続、または有線接続と無線接続両方を介して接続し、それほど決定的でないノードは、無線接続だけで接続されてもよい。
【００２３】
図２および図３を参照すると、図１に示されているネットワークは、メッセージ完全性ラッパ（ＭＩＷ）１０２Ａ、１０２Ｂにラップされたアプリケーションメッセージペイロード１１０を含む通信メッセージ１００を送信することができる。アプリケーションメッセージペイロード１１０は、あるノード７０、７６、８０、８４、９０、９４から別のノード７０、７６、８０、８４、９０、９４に送られる実質的な情報である。たとえば、メッセージペイロードは、航空機マスタコントローラからその航空機の周辺コントローラに送られる命令を含むことができる。ＭＩＷ１０２Ａは、発信元タイムスタンプ（ＳＴＳ）および同期品質インジケータ（ＳＱＩ）など、時間同期データを含むことができる。ＭＩＷ１０２Ｂは、ＭＩＷ１０２Ａおよびアプリケーションメッセージペイロード１１０を含む領域にわたって計算される巡回冗長検査（ＣＲＣ）を含むことができる。セキュリティのために、ＭＩＷ１０２Ｂに関するＣＲＣの計算は、送信機とアプリケーションメッセージペイロード１１０を受信するように構成された受信機だけに知られているシード値を使用して開始することができる。この通信パケットは、ユーザデータグラムプロトコル（ＵＤＰ）ヘッダ１０４と、インターネットプロトコル（ＩＰ）ヘッダ１０６とをさらに含むことができる。ＵＤＰヘッダ１０４は、送信中のメッセージの破壊を検出するために、発信元ソケット、ターゲットソケット、メッセージパケット長、およびチェックサムに関連する情報を含むことができる。ＩＰヘッダ１０６は、諸要素の中でもとりわけ、ヘッダ長、サービスのタイプ、データグラム長、発信元ＩＰアドレス、ターゲットＩＰアドレスに関連する情報を含むことができる。
【００２４】
通信メッセージ１００が単一のパケットとして送るには長すぎるとき、通信メッセージ１００を複数の媒体アクセス制御（ＭＡＣ）フラグメント１２０にフラグメント化することができ、第１のフラグメント１２１Ａ、第２のフラグメント１２１Ｂ、および最後のフラグメント１２１Ｃを含む任意の数の追加のフラグメントがある。各フラグメントは、アプリケーションメッセージペイロードフラグメント１４０、１４２、１４４、シーケンス番号（ＳＮ）フッタ１５０、１５２、１５４、フレームチェックシーケンス（ＦＣＳ）フッタ１６０、１６２、１６４、ＩＰヘッダ１３０、１３２、１３４、および媒体アクセス制御（ＭＡＣ）ヘッダ１２２、１２４、１２６を含む。アプリケーションメッセージペイロードフラグメント１４０、１４２、１４４は、受信側ノードで再構築し、アプリケーションメッセージペイロード１１０を形成することができる。ＳＮフッタ１５０、１５２、１５４およびＦＣＳフッタ１６０、１６２、１６４は、アプリケーションメッセージペイロード１１０を再構築するために使用される。ＩＰヘッダ１３０、１３２、１３４は、諸要素の中でもとりわけ、各フラグメント１２１Ａ、１２１Ｂ、１２１Ｃについてそれぞれチェックサムデータおよびフラグメント情報を含む。ＭＡＣヘッダ１２２、１２４、１２６は、諸要素の中でもとりわけ、発信元アドレスおよび宛先アドレスを含む。
【００２５】
ＭＡＣフラグメント化通信メッセージ１２０内のＭＩＷ１０２Ａ、１０２Ｂは、フラグメント化メッセージペイロード１２０の第１のフラグメント１２１Ａが送信側ノードから受信側ノードに送信されるとき送信側ノードによってタイムスタンプが与えられたＳＴＳ情報を依然として含むことができる。受信側ノードは、第１のフラグメント１２１ＡからＳＴＳを抽出し、最後のフラグメント１２１Ｃを受信したときＬＮＴを記録することができる。
【００２６】
エンドシステム７０、７６、８０、８４、９０、９４のうちの１つをマスタエンドシステム７０、７６、８０、８４に時間同期させる方法１７０について、図４を参照して述べる。そのエンドシステム７０、７６、８０、８４、９０、９４にて、複数のマスタエンドシステム７０、７６、８０、８４のそれぞれから、各チャネル１７４、１８０上で、２つの冗長な精密時間プロトコル（ＰＴＰ）メッセージ１７２、１７８が受信される。換言すれば、マスタエンドシステム７０、７６、８０、８４のそれぞれが、チャネルＡ上でＰＴＰメッセージ１７２を、またチャネルＢ上でＰＴＰメッセージ１７８を送信し、時間同期を実施しようとするエンドシステム７０、７６、８０、８４、９０、９４によって受信される。チャネルＡ上で受信側ノード（ＥＳ）によって受信されるＰＴＰメッセージはＰＴＰA1、ＰＴＰA2、ＰＴＰA3、ＰＴＰA4であり、それぞれマスタエンドシステムＭ１  ７０、Ｍ２  ７６、Ｍ３  ８０、Ｍ４  ８４に対応する。同様に、チャネルＢ上で受信側ノード（ＥＳ）によって受信されるＰＴＰメッセージはＰＴＰB1、ＰＴＰB2、ＰＴＰB3、ＰＴＰB4であり、それぞれマスタエンドシステムＭ１  ７０、Ｍ２  ７６、Ｍ３  ８０、Ｍ４  ８４に対応する。
【００２７】
各送信側ノード、または各チャネル上のマスタエンドシステムからのＰＴＰメッセージは、繰り返し受信される。したがって、ＰＴＰメッセージは、送信側ノードによって送信され、ある期間を有する時系列として受信側ノードによって受信される。たとえば、１つのＰＴＰメッセージが各マスタエンドシステムから各チャネルについて１００ミリ秒ごとに受信される可能性があり、時系列の受信されるＰＴＰメッセージは、１００ミリ秒の期間を有する。この期間は、好ましくは２５ミリ秒と２５０ミリ秒の間、より好ましくは５０ミリ秒と１５０ミリ秒の間、最も好ましくは１００ミリ秒である。この期間が長すぎる場合には、時間同期させる方法１７０には比較的長い時間がかかり、この期間が短すぎる場合には、非常に多くの通信ネットワーク１０の帯域幅およびエンドシステム７０、７６、８０、８４、９０、９４の処理リソースが時間同期のために費やされる可能性がある。
【００２８】
任意の所与の期間に受信されたＰＴＰメッセージＰＴＰA1、ＰＴＰA2、ＰＴＰA3、ＰＴＰA4、ＰＴＰB1、ＰＴＰB2、ＰＴＰB3、ＰＴＰB4から、各マスタエンドシステムに対応するＰＴＰメッセージが選択され、１９０で、選択されたＰＴＰメッセージに関連するタイミング情報が時間追随プロセス２００に渡される。換言すれば、任意の所与の期間に、ＰＴＰA1およびＰＴＰB1のうちの一方、ＰＴＰA2およびＰＴＰB2のうちの一方、ＰＴＰA3およびＰＴＰB3のうちの一方、ＰＴＰA4およびＰＴＰB4のうちの一方だけが選択され、関連のタイミング情報が次の段階１９０に回される。任意の所与の期間および任意の所与のマスタエンドシステム７０、７６、８０、８４の選択されたＰＴＰメッセージのうち、ＧＮＴがメッセージから抽出され、Ｔ１として指定され、ＥＳでの、ＬＲに基づくＬＮＴのタイムスタンプがＴ２として指定される。任意の所与の期間に各マスタエンドシステムに対応するＴ１、Ｔ２、ＬＲが、時間追随プロセス２００に渡される。
【００２９】
各受信側エンドシステム７０、７６、８０、８４、９０、９４は、時間追随プロセス２００の複数のインスタンスを有する。各受信側エンドシステム７０、７６、８０、８４、９０、９４は、時間追随プロセス２００のインスタンスを、各マスタエンドシステム７０、７６、８０、８４について１つ有する。
【００３０】
各マスタエンドシステム７０、７６、８０、８４に関連付けられた時間追随プロセス２００は、いくつかの期間にわたる時系列のデータを受け取る。いくつかの期間にわたって必要とされる数のデータポイントを受け取ったとき、時間追随プロセス２００は、時間追随プロセス２００が適用されたマスタエンドシステムについてレシオ（Ｒ）およびオフセットを提供する。時間追随プロセス２００がマスタエンドシステムについて構成済みの時間追随基準を満たしたとき、そのマスタエンドシステムについてレシオ、オフセット、およびＳｙｎｃフラグが生成され、インターフェース２１０を介して「誤追随解消（ｅｌｉｍｉｎａｔｅ  ｆａｌｓｅ  ｔｒａｃｋｉｎｇ）」プロセス２１２に送られる。
【００３１】
誤追随解消プロセス２１２の主な目的は、ＧＮＴの推定値が複数の他のマスタからの事前構成された範囲の外にあるマスタの追随プロセス２００を不適格とすることである。ネットワークの構成によって、または複数のマスタエンドシステムの同時故障によって、どのマスタも他のマスタの事前構成された範囲内にない可能性が十分にあることを理解されたい。そのような場合には、ネットワーク時間完全性を達成することができない。ネットワーク時間完全性を達成するためには、ＧＮＴの推定値が事前構成された範囲内にある複数のマスタエンドシステムがなければならない。
【００３２】
誤追随解消プロセス２１２は、マスタエンドシステムのそれぞれから、Ｍ１  ７０からのＲａｔｉｏ１、Ｏｆｆｓｅｔ１、Ｓｙｎｃ１、Ｍ２  ７６からのＲａｔｉｏ２、Ｏｆｆｓｅｔ２、Ｓｙｎｃ２、Ｍ３  ８０からのＲａｔｉｏ３、Ｏｆｆｓｅｔ３、Ｓｙｎｃ３、Ｍ４  ８４からのＲａｔｉｏ４、Ｏｆｆｓｅｔ４、Ｓｙｎｃ４として指定されたレシオ、オフセット、およびＳｙｎｃフラグを受け取る。
【００３３】
Ｓｙｎｃフラグは、追随プロセス２００が設定された追随基準を満たしていることを示す。少なくとも１つのＳｙｎｃフラグが真である場合、誤追随解消プロセス２１２は、そのＳｙｎｃフラグを使用し、対応するＳｙｎｃフラグが偽であるレシオおよびオフセットがあればそれを不適格とすることができる。エンドシステムを初期化した場合のようにどのＳｙｎｃフラグも真でない場合、ＭＩＷ１０２Ａ内のＳＱＩを使用し、ＭＩＷ１０２Ａ内のＳＴＳ値が信頼できるものでないことを示すことになる。
【００３４】
２１０でどのＳｙｎｃフラグも真でないとき、時間追随は確立されていないが、時間同期プロセス２２４においてＬＮＴを計算するために使用されるレシオとオフセットを調整するために、少なくとも１つのレート（ｒａｔｅ）とオフセットの対を２１６に渡さなければならない。これは、どのＳｙｎｃフラグも真でないときでさえ、ＬＮＴを調整することを必要とする。そうでない場合には、Ｓｙｎｃフラグが決して真にならない可能性があり、ＬＮＴの調整が無期限にできないことになり、ＧＮＴに追随するＬＮＴが決して確立されないことになる。ＬＮＴがＧＮＴに同期されていることを宣言する前に、たとえば全マスタの時間オフセット中央値に対応するレシオおよびオフセットを使用して、Ｓｙｎｃフラグの状態を必要としない基準に基づいて最良のレシオおよびオフセットを選択することができる。
【００３５】
複数の時間追随プロセス２００がそれぞれのマスタエンドシステムに同期されていることを示すとき、すなわち２１０で複数のＳｙｎｃフラグが真であるとき、誤追随解消プロセス２１２は、やはり他のレシオおよびオフセットと調和しないレシオおよびオフセットがあればそれを省くことができる。たとえば、レシオの１つが所定の量だけ全レシオの平均とは異なることが判明した場合には、そのレシオ、ならびにそのレシオに対応するオフセットを省くことができる。同様に、オフセットの１つが所定の量だけ全オフセットの平均とは異なることが判明した場合には、そのオフセット、ならびにそのオフセットに対応するレシオを省くことができる。代替の例として、レシオの１つが所定の量より大きいこと、または別の所定の量より小さいことが判明した場合には、そのレシオ、ならびに対応するオフセットを省くことができる。同様に、オフセットの１つが所定の量より大きいこと、または別の所定の量より小さいことが判明した場合には、そのオフセット、ならびに対応するレシオを省くことができる。インターフェース２１０にて提示されているレシオおよびオフセットの値が、真であるＳｙｎｃフラグと矛盾する場合、誤追随解消プロセス２１２による追加の検査を使用し、Ｓｙｎｃフラグの完全性を確かめることができる。誤追随解消プロセス２１２によるこのＳｙｎｃフラグの一貫性検査は、時間追随プロセス２００内の故障による、同期がＬＮＴ時間追随プロセス２００によって達成されたという誤った宣言に対して保護するように働く。
【００３６】
各マスタエンドシステム７０、７６、８０、８４の時間追随プロセス２００は、レシオおよびオフセットを同時に誤追随解消プロセス２１２に提供しなくてもよい。したがって、誤追随解消プロセス２１２は、平均のレシオおよびオフセットに基づいて、または所定の許容限界に対する比較に基づいてレシオおよびオフセットのいずれかを省く前に、マスタエンドシステム７０、７６、８０、８４のすべてから来ると予想されるレシオおよびオフセットの部分的な受取りまたは完全な受取りに関してポリシを有していなければならない。誤追随解消プロセス２１２は、代替のレートおよびオフセット調整値の時間整列されたセットを最良マスタ選択プロセス２１４に提供する。
【００３７】
複数のＳｙｎｃフラグが真であるとき、誤追随解消プロセス２１２によって有効であると考えられるレシオおよびオフセットが最良マスタ選択プロセス２１４に送られる。このようにしてプロセス２１２からプロセス２１４に渡されるこれらのレシオおよびオフセットは、ＧＮＴに同期されているとみなされる時間追随プロセス２００を表す。
【００３８】
最良マスタ選択プロセス２１４は、Ｓｙｎｃフラグが共に真であり、レートおよびオフセットが、真であるＳｙｎｃフラグと調和する範囲内にあるマスタについて事前構成された決定木に対応するレシオおよびオフセットを選択することができる。
【００３９】
たとえば、最良マスタ選択プロセス２１４は、優先順位をベースとする選択方法を使用することができる。最良マスタ選択プロセス２１４は、この手法を使用して、マスタエンドシステム７０、７６、８０、８４のそれぞれの優先順位を検討し、最高優先順位のマスタエンドシステム７０、７６、８０、８４に対応するレシオおよびオフセットを選択し、そのレシオおよびオフセット２１６を時間同期２２４に渡す。たとえば、誤追随解消プロセス２１２においてレシオおよびオフセットが省かれなかった場合、かつＭ１  ７０が他のマスタエンドシステム７６、８０、８４に対して最高優先順位を有する場合には、Ｍ１  ７０に対応するレシオおよびオフセットが最良マスタ選択プロセス２１４によって選択され、インターフェース２１６を介して時間同期２２４に渡される。一方、他のマスタエンドシステム７６、８４に対してＭ１  ７０が最高優先順位を有し、Ｍ３  ８０が次に高い優先順位を有するが、Ｍ１  ７０に対応するレシオおよびオフセットが誤追随解消プロセス２１２において省かれている場合には、Ｍ３  ８０に対応するレシオおよびオフセットが渡され（２１６）、ＬＮＴを同期させる（２２４）。
【００４０】
代替の手法として、最良マスタ選択プロセス２１４は、優先順位に依存しない選択プロセスを使用してもよい。たとえば、プロセス２１４は、プロセス２１２によって同期されているとみなされる時間追随プロセス２００の出力のレートおよびオフセットの中央値を選択することができる。他の代替として、最良マスタ選択プロセス２１４は、ＰＴＰメッセージが最良マスタ選択プロセス２１４の最後の反復以来最も新たに受信されたものであるマスタに関連する、追随プロセス２００からのレートおよびオフセットを選択することができる。
【００４１】
さらに他の代替の手法では、最良マスタ選択プロセス２１４は、プロセス２１２から受け取った過去の値の集団に基づく加重平均または予測など、プロセス２１２から受け取るレートおよびオフセットの集合を必要とする計算を使用することができる。
【００４２】
２１６で最良マスタ選択プロセス２１４によってレシオおよびオフセットが出力された後で、選択されたレシオおよびオフセット（２１６）を使用し、ＬＮＴを同期させる（２２４）。たとえば、ＬＮＴ進み率は、ローカル基準（ＬＲ）クロックによって決定される速さで２１６で出力されるレシオを継続的に蓄積することによって決定することができる。このようにして、１ＰＴＰサイクルにおいて進む時間は、ＰＴＰサイクルあたりのローカル基準周期の数（ＬＲＰ）に２１６でのレシオを乗じ、２１６でのオフセットを和したものである。ＧＮＴに追随するために、ＬＲクロックの周期ごとにレシオがＬＮＴに加算される。一方、２１６でのオフセットは、ＬＮＴをＧＮＴに瞬間的に整列させるために、このアキュムレータに１回だけ加算される。図４の表記を簡単にするために、この計算はＬＮＴ＝ＬＮＴ＋ＬＲＰ＊Ｒａｔｉｏ＋Ｏｆｆｓｅｔ＊ＯＵＳと示されており、この式で、更新済みオフセットが使用可能になったときＬＲクロック１サイクルのみについてＯＵＳ＝１であり、そうでない場合ＯＵＳ＝０である。次いで、方法１７０は、ＧＮＴに同期されたＬＮＴを提供する。
【００４３】
追加の機能として、時間同期方法１７０が実行されるとき、そのＥＳに関する時間同期の精度を示すために、同期品質レベルを設定することができる。したがって、各ＥＳについて時間同期レベルが存在し得る。この同期レベルは、高完全性メッセージのＭＩＷ１０２Ａ内に含めることができ、ＥＳへの入来メッセージを検証し、受信側ノードのＬＮＴが同期されており、したがって信頼することができるかどうか判定するために使用することができる。
【００４４】
方法１７０のマスタエンドシステムから受信されるＰＴＰメッセージを使用してＧＮＴに追随するための時間追随プロセス２００のそれぞれについて、図５を参照してより詳細に述べる。
【００４５】
図５に示されているように、時間追随プロセス２００に関連する変数Ｒ、Ｒｏ、δ、δmax、ｑ、Ｄｍｉｎ、Ｄｍａｘ、Ｃ、Ｓｙｎ、Ｓｙｎｃ、Ｓ、ＴＯが２３０で初期化される。Ｒは、プロセス２００のインスタンスによって追随されるマスタに関連する、そのマスタに対するローカルクロックレートの進みのレシオの推定値である。Ｒｏは、Ｒの初期値である。δは、レートを調整するようにＲがその分だけ増分または減分される小さい数（ｆｒａｃｔｉｏｎ）である。ｑは、Ｒが変更される前に、その間にＲの増加または減少を検出しなければならない、連続するＰＴＰ周期の数である。Ｄｍｉｎは、受信側エンドシステムでのプロセス２００のインスタンスに関連するマスタについて推定または測定された最小ＰＴＰメッセージ技術的転送レイテンシである。実際のＰＴＰメッセージ転送遅延は、当然ながら常にＤｍｉｎ以上である。Ｄｍａｘは、プロセス２００が、追随しているマスタエンドシステムにもはや同期されていないことを宣言する前に許容することになるＬＮＴとＧＮＴの間の絶対的な計算された最大オフセットである。オフセットの計算は、Ｄｍｉｎより大きいＰＴＰメッセージ転送レイテンシを含む誤差を含むことになることに留意されたい。したがって、その値は、ＰＴＰメッセージの最大許容転送レイテンシによって同期が失われないように選択しなければならない。たとえば、Ｄｍａｘは、ＤｍｉｎにＰＴＰメッセージ間の期間を加えたものより長くならないように選択される可能性がある。δmaxは、プロセス２００が同期されたままとなることができるレシオＲの、その初期値Ｒｏからの最大偏差である。Ｓは、ＬＮＴとＧＮＴの間のオフセットがＤｍａｘ内にあるとプロセス２００が判断する、連続する時間の数をカウントする。Ｃは、プロセス２００が同期され、そのＳｙｎｃフラグを真に設定するためにＳがＤｍａｘ内になければならない時間数である。プロセス２００によって出力されるＳｙｎｃフラグは、処理サイクルの終了時にＳｙｎに設定される。ＴＯは、処理サイクルの終了時にプロセス２００によって出力されるオフセットであり、推定値を表し、この推定値により、２２４がＬＮＴを計算するために使用するオフセットが、ＬＮＴとＧＮＴとの差を低減するように修正される。
【００４６】
２３２で、現在の期間についてマスタエンドシステム７０、７６、８０、８４に関するＴ１値およびＴ２値が受け取られる。Ｔ１は、マスタエンドシステム７０、７６、８０、８４によってＰＴＰメッセージ内に配置されたＧＮＴの値である。Ｔ２は、ＥＳ７０、７６、８０、８４、９０、９４におけるＬＮＴの値であり、ＰＴＰメッセージがマスタＥＳ７０、７６、８０、８４から到着したときサンプリングされ、ＰＴＰメッセージの到着に関するタイムスタンプを提供する。ＬＮＴは、２２４において、ローカル基準（ＬＲ）によって決定されるクロック周波数で、選択されたレシオＲを蓄積し、その後で、以前のＰＴＰサイクル中に選択されたオフセットの値ＴＯによってアキュムレータを１回調整することによって決定することができる。
【００４７】
関連のマスタエンドシステムからの最も新しいＰＴＰメッセージの時間オフセットの推定値Ｔｐが、２３４で決定される。Ｔｐは、Ｔｐ＝Ｔ１＋Ｄｍｉｎ−Ｔ２として計算される。次に、２５２で、Ｔｐの絶対値がＰＴＰメッセージに許される最大遅延内にあるかどうか判定される（｜Ｔｐ｜＜Ｄｍａｘ）。同時に、２５２で、Ｒがその分だけその初期値Ｒｏから逸脱している絶対値がδmaxより大きいかどうか判定される。Ｔｐの絶対値がＤｍａｘより大きい場合、またはＲ−Ｒｏの絶対値がδmaxより大きい場合、２５４でＳｙｎが偽に設定される。２３６でＴｐが０未満であると判定され、２３８でｑ個のサンプルを超える間、依然として０未満である場合には、２４６でＲがδだけ低減される。しかし、２３６でＴｐが０未満であるが、２３８で、Ｒが最後に変化して以来ｑ個の時間サンプルの間０未満でない場合には、方法２００は２３２に戻る。一方、２３６でＴｐが０より大きい場合には、２４２でＴＯがＴｐに設定され、２２４でのＬＮＴの正の進みに対応する。２４０でＴｐがｑ個のサンプルの間０より大きい場合、２４８でＲが増加される。２５８で、結果として得られるＲ、ＴＯ、およびＳｙｎｃ＝Ｓｙｎの値がインターフェース２１０上で出力される。
【００４８】
プロセス２００のステップの順序は、プロセス２００の発明性のある要素から逸脱することなしに変更することができることがわかる。さらに、プロセス２００の発明性のある要素から逸脱することなしに、間に割り込むステップをプロセス２００に追加することができる。
【００４９】
プロセス２００は、Ｄｍｉｎに対して以前に決定された値と共に、送られるときマスタによってＰＴＰメッセージ内に配置されたＧＮＴの値を使用する。追随アルゴリズムは、ＬＮＴとＧＮＴとの絶対差がＤｍａｘを超える前にＤｍｉｎに近いレイテンシでＰＴＰメッセージを受信することができないごくわずかな確率があるようにネットワークを構成することに依拠する。Ｃによって定義される構成された連続時間間隔の間、δmaxおよびＤｍａｘによって定義される構成された限界内にあるレートおよびオフセットをプロセス２００が生成するとき、これはＧＮＴに同期されていることを示す。プロセス２００は、そのＳｙｎｃフラグ出力を使用して、同期されていることを示す。プロセス２００の重要な特徴は、同期されている間、インターフェース２１０にて負の時間オフセットを公示しないことである。
【００５０】
プロセス２００は、各マスタエンドシステム７０、７６、８０、８４についてＲの値およびオフセットＴＯを、いくつかの期間にわたるＰＴＰメッセージからの時系列のタイミング情報に基づいて提供する。Ｒの値は、ＥＳでのＬＲのクロック周波数がＧＮＴの周波数とは異なることが判明したときＬＮＴの進み率を修正するために使用される。換言すれば、Ｒは、ＧＮＴとＬＲのクロックレート間の関係に対して補正する。一方、オフセットは、ＬＮＴをＧＮＴに合致させるように瞬間的に調整する。
【００５１】
値Ｒ、Ｒｏ、δ、δmax、ｑ、Ｄｍｉｎ、Ｄｍａｘ、Ｃ、Ｓｙｎ、Ｓ、ＴＯの初期化は、発見的に、またはアルゴリズムによって決定することができる。たとえば、Ｒ＝Ｒｏの値は１に初期化することができ、その結果、名目上、ＬＮＴの周波数、したがってローカルノードＥＳのＬＲが、マスタエンドシステムによって提供されるＧＮＴの周波数に合致すると仮定される。ＥＳのＬＲの周波数が、マスタエンドシステムからのＧＮＴの周波数より大きい場合には、方法２００は、１未満のＲの値を提供し、その結果、スレーブのＬＮＴに関する時間進み率をマスタエンドシステムからのＧＮＴのものに合致させることができる。
【００５２】
値ｑは、３に初期化することができ、時間の経過につれて、プロセス２００の実績（ｐｅｒｆｏｒｍａｎｃｅ）に基づいて修正することができる。一般に、ｑの値がより高く設定された場合には、ローカルＥＳのＬＮＴを同期させるためにより多くの期間が必要となり、それにより同期を実施するのに時間がより長くかかる。しかし、ｑの値が非常に低く設定された場合には、プロセス２００は、時間同期を確実に達成することができるＲの値を提供することができない。一態様では、必要とされるｑの値は、通信ネットワーク１０や、通信ネットワーク１０上のＥＳの数およびタイプが異なると変わる可能性がある。
【００５３】
δの値は、数秒または数分程度の短い時間間隔にわたるクロックドリフトの倍量に初期化することができる。たとえば、δは、クロックドリフトの１０％に初期化することができる。他の代替として、δは、クロックドリフトの倍量に初期化することができ、この倍量は、ＥＳが起動中であり初期同期を必要とするかどうか、またはＥＳがすでに同期されているかどうかによって決まる。この例を続けると、ＥＳが起動モードにあり、初期同期を必要とする場合、δは、短期ドリフトの１００％に設定することができ、一方、ＥＳを再同期しようとする場合には、δをドリフトの１０％に設定することができる。
【００５４】
δmaxの値は、ネットワークの耐用年数にわたるネットワーク内のＬＲクロックレートの最大許容偏差によって決まる。たとえば、δmaxの値は、ＬＮＴの基準として使用される水晶クロック発振器の周波数に対する温度およびエージの影響を考慮する。
【００５５】
クロックドリフトδmaxは、各ノードでＬＲを生成するために使用される発振器に与えられる仕様である。この仕様は、発振器の製造者が与えることができる。一般に、ドリフト仕様は、クロック周波数の倍量として報告される。たとえば、ある発振器は、２５ｐｐｍのドリフト仕様を有する可能性がある。そのような場合、クロック周波数が１００ＭＨｚである場合には、そのクロックのドリフトは、±２．５ｋＨｚとなり得る。場合によっては、ドリフト仕様には、時間劣化が伴う可能性がある。たとえば、ある発振器は、２５ｐｐｍ±１０ｐｐｍ／年のドリフト仕様を有する可能性がある。そのような場合、方法２００で使用されるδmaxならびにδは、通信ネットワーク１０のエージと共に変動する可能性がある。
【００５６】
技術的最小レイテンシＤｍｉｎは、方法２００で検討されるマスタエンドシステムからＥＳにメッセージを送ることが可能な最小時間を表す。このＤｍｉｎは、マスタエンドシステムとＥＳの間の距離、およびメッセージの送信に関与するスイッチそれぞれのスイッチング時間の関数とすることができる。輻輳のないスイッチでフレームを転送するための技術的最小レイテンシは、典型的には１００マイクロ秒未満である。リンク伝送時間は、ネットワーク接続２０の伝送速度と共に変動することになる。たとえば、６４バイトＭＡＣフレームを占有するＰＴＰパケットは、１０Ｍｂｐｓ接続で６７．２マイクロ秒、１００Ｍｂｐｓ接続で６．７２マイクロ秒、１Ｇｂｐｓ接続で６７２ナノ秒で送信されることになる。
【００５７】
時間完全性検査を適正に使用するために、各ノードのローカルネットワーク時間基準（ＬＮＴ）の未補償ドリフトは、任意のノードの対間での技術的最小レイテンシ（Ｄｍｉｎ）より小さくなければならない。したがって、時間同期方法１７０を定期的に繰り返し、通信ネットワーク１０が動作状態である間、特に時間完全性検査が実施されているとき、任意の２つのノード間のドリフトがＤｍｉｎを確実に超えないようにすることができる。Ｄｍｉｎは、１００マイクロ秒と低い可能性があり、したがってそのような場合、２つのノード間の時間追随スキューは、時間完全性検査の失敗を受けないように、５０マイクロ秒以下とすべきである。非ＰＴＰホストアプリケーション７０、７６、８０、８４、９０、９４間のデータ転送の場合、Ｄｍｉｎは、１００マイクロ秒と１００ミリ秒の間とすることができる。ＬＮＴ分解能は、ノード間のフレーム伝送時間より小さくなければならない。たとえば、必要とされる分解能は、１Ｇｂｐｓのネットワーク接続２０を使用するとき、６７２ナノ秒と低くなり得る。ノードは、航空機を始動させることができる最大時間の間、同期させなければならない。これは、典型的には１０日以下であるが、３０日と同程度となる可能性がある。したがって、ノード時間同期方法１７０は、６７２ナノ秒未満のネットワークタイムスタンプ分解能を使用しなければならず、１００ナノ秒が好ましい。
【００５８】
さらに、追随方法２００が同期され、方法２００がインターフェース２１０上でそのＳｙｎｃ出力を真に設定することによって示されているとき、そのレートおよびオフセットは、ＬＮＴを単調に増加させることができるだけである。これは、方法２００の２３６でＴｐ＜０でありＳｙｎが真である場合、２３４で設定されたその値から依然として修正されないので、ＴＯ＝０であるからである。したがって、Ｔｐ＜０でありＳｙｎ＝Ｔｒｕｅの場合、レート調整だけを行うことができる。一方、Ｓｙｎ＝ＴｒｕｅでありＴｐ＞０である場合には、２４２でＴＯ＝Ｔｐとなる。方法２００は、同期されていない場合、すなわちＳｙｎｃ＝Ｆａｌｓｅの場合、負の時間調整を行うことができるだけである。すべての追随プロセス２００がＳｙｎｃ＝Ｆａｌｓｅを宣言した場合、これはＭＩＷ１０２Ａ内のフラグビットに伝播し、ＬＮＴがＧＮＴに同期されておらず、ＭＩＷ１０２Ａ内の時間値が信頼できるものでないことを示すことになる。したがって、時間同期の方法１７０は、ＬＮＴが減少するときはいつでも同期されていない。
【００５９】
さらに、ノードは、航空機を始動させることができる最大時間の間、ＬＮＴが０に戻るのを防止するように、同期したままでいることができなければならない。これは、典型的には１０日以下であるが、３０日と同程度となる可能性がある。したがって、時間同期の方法１７０は、最小のタイムスタンプサイズ、または分解能が１００ナノ秒であるとき４８ビットを使用して、そのような長い期間の間、ネットワーク１０の同期に対処しなければならない。
【００６０】
方法１７０のＬＮＴの計算２２４について、図６を参照してより詳細に述べる。
【００６１】
ＬＮＴは、ローカル基準水晶発振器（ＬＲＣＯ）２２０によってクロックされるアキュムレータレジスタ２２２の出力である。レジスタ３０２は、インターフェース２１６からのレシオの最も新しい更新を含む。ＬＲＣＯ２２０は、周波数ｆｃ、および周期Ｔｃ＝１／ｆｃでクロックを出力する。通常動作中には、オフセット更新ストローブ（Ｏｆｆｓｅｔ  Ｕｐｄａｔｅ  Ｓｔｒｏｂｅ）がアクティブではなく、マルチプレクサ３２２の出力が０である。各クロック周期Ｔｃの開始時には、アキュムレータレジスタ２２２が、ＬＮＴと、加算器３１２、３１４によって決定されるレシオレジスタ（Ｒａｔｉｏ  Ｒｅｇｉｓｔｅｒ）３０２の出力との和をサンプリングおよび出力する。３０２内のレシオは、各周期Ｔｃ中に進んだ時間単位間隔の数を表す。たとえば、単位時間間隔１００ナノ秒が選択されており、ｆｃ＝１メガヘルツである場合には、１０というレシオ値が、周期Ｔｃごとに１０×１００ナノ秒、または等しくは１マイクロ秒の進みを表すことになる。あるいは、単位時間間隔１マイクロ秒が選択されており、ｆｃ＝１メガヘルツである場合には、１というレシオ値が、１マイクロ秒の進みを表すことになる。レシオレジスタおよびアキュムレータレジスタ２２２の出力は、整数および小数の単位時間間隔を共に表すように十分な数のビットを有することを理解されたい。たとえば、アキュムレータレジスタ２２２が６４ビット幅である場合、その４８個の最上位ビットを使用し、マイクロ秒単位のＬＮＴの値を表すことができ、一方、両レジスタ２２２、３０２の１６個の最下位ビットは、マイクロ秒の小数部を表し、それにより、Ｒに基づいて、ｆｃの１サイクルあたりマイクロ秒の小数でレートを調整する手段をもたらすことができる。
【００６２】
図６を続けると、オフセット更新（Ｏｆｆｓｅｔ  Ｕｐｄａｔｅ）がアクティブになった後、１クロックサイクル中に、インターフェース２１６上で提示されるオフセットをアキュムレータに加算することによって、ＬＮＴは、このオフセットだけ進められる。その後で、アキュムレータは、次の更新がインターフェース２１６上で使用可能になるまで付加レジスタ（ａｄｄｅｎｄ  ｒｅｇｉｓｔｅｒ）３０２内に含まれるレシオ値だけ進められる。これは、ゲート３２０を有するレジスタ３１６、３１８がオフセット更新ストローブ（ＯＵＳ）を生成し、このＯＵＳが、ｆｃの１サイクルを超えてオフセットがアキュムレータの内容に加算されないようにマルチプレクサ３２２を制御するからである。ＰＴＰメッセージが到着したとき、スナップショットストローブにより、レジスタ３０８がＬＮＴの値をサンプリングする。アナログ加算器３１０が、プロセス２００の２３４内に示されているようにＴ２の値を計算する。
【００６３】
インターフェース２１６上で提供されるレートおよびオフセットを使用してＬＮＴがＧＮＴに追随することを可能にすることができる、図６に対する複数の代替の実施形態があることを理解されたい。たとえば、図６に示されている機能は、ハードウェアまたはソフトウェア、またはそれらの任意の組合せで実装することができる。次に図７を参照すると、通信メッセージ１００の発信元タイムスタンプ（ＳＴＳ）と、通信メッセージ１００の最後のフラグメントの宛先タイムスタンプ（ＤＴＳ）とに基づいて通信メッセージを区分する方法２７０が開示されている。通信メッセージは、２７２でエンドシステムにて受信される。メッセージ１００の最後のＭＡＣフラグメント１２１Ｃを受信したとき、２７４で、ＤＴＳが、エンドシステムにてＬＲを使用して生成されたＬＮＴに設定され、メッセージ１００の最初のフラグメント１２１ＡからＳＴＳが抽出される。次いで、２７６で、ＤＴＳからＳＴＳを引いたものが０より大きい（ＤＴＳ−ＳＴＳ＞０）かどうか判定される。ＤＴＳ−ＳＴＳ＞０が真でない場合には、２７８で、メッセージは受け入れられるが、メッセージの未知のエージと共に示され、このときエージは、ＤＴＳからＳＴＳを引いたものに等しい（ＤＴＳ−ＳＴＳ）。２７６でＤＴＳ−ＳＴＳが０より大きいと判定された場合には、２８０で、受信側ノードについて時間同期が設定されているかどうか判定される。換言すれば、受信側ノードのＬＮＴがマスタエンドシステム７０、７６、８０、８４のＧＮＴと同期されるように受信側ノードについて時間同期の方法２００が実施されたかどうか判定される。２８０で時間同期が設定されていないことが判明した場合には、２７８で方法は、未知のエージ内でメッセージを受け入れる。しかし、２８０で時間同期が設定されていることが判明した場合には、２８２で、ＤＴＳからＳＴＳを引いたものが技術的最小レイテンシＤｍｉｎより大きいかどうか判定される。２８２でＤＴＳからＳＴＳを引いたものがＤｍｉｎより大きくない場合には、２７８で、メッセージはやはり未知のエージと共に受け入れられる。しかし、ＤＴＳからＳＴＳを引いたものがＤｍｉｎより大きいことが判明した場合には、２８４で、ＤＴＳからＳＴＳを引いたものがＡｇｅ  Ｍａｘより大きい（ＤＴＳ−ＳＴＳ＞Ａｇｅ  Ｍａｘ）かどうか判定される。大きい場合には、２８８でメッセージが廃棄され、大きくない場合には、２８６でメッセージが既知のエージと共に受け入れられる。
【００６４】
Ａｇｅ  Ｍａｘは、各タイプのメッセージ独自の、ユーザによって指定される所定の閾値であり、非常に古く、したがって無効であり得る、またはもはや適切でない可能性があるメッセージを廃棄するために使用される。Ａｇｅ  Ｍａｘは、１ミリ秒と１０秒の間とすることができる。
【００６５】
本書は、例を使用し、最良の形態を含めて本発明を開示し、また当業者の誰もが本発明を実施し使用することができるようにしている。本発明の特許性のある範囲は、特許請求の範囲によって定義され、当業者に思い付く他の例を含むことができる。そのような他の例は、特許請求の範囲の文言と異ならない構造要素を有する場合、または特許請求の範囲の文言と実質的に異ならない均等な構造要素を含む場合、特許請求の範囲内にあるものとする。
【符号の説明】
【００６６】
１０  通信ネットワーク
２０  ネットワーク接続
３０  チャネルＡスイッチ
３２  チャネルＡスイッチ
３４  チャネルＡスイッチ
４０  チャネルＢスイッチ
４２  チャネルＢスイッチ
４４  チャネルＢスイッチ
５０  ＥＳに対するチャネルＡ接続
５２  スイッチ間チャネルＡ接続
５６  ＥＳに対するチャネルＡ接続
５８  スイッチ間チャネルＡ接続
７０  マスタエンドシステム
７６  マスタエンドシステム
８０  マスタエンドシステム
８４  マスタエンドシステム
９０  スレーブエンドシステム
９４  スレーブエンドシステム
１００  通信メッセージ
１０２Ａ  メッセージ完全性ラッパ
１０２Ｂ  メッセージ完全性ラッパ
１０４  ユーザデータグラムプロトコル（ＵＤＰ）ヘッダ
１０６  インターネットプロトコル（ＩＰ）ヘッダ
１１０  アプリケーションメッセージペイロード
１２０  複数のＭＡＣフラグメント
１２１Ａ  第１のＭＡＣフラグメント
１２１Ｂ  第２のＭＡＣフラグメント
１２１Ｃ  最後のＭＡＣフラグメント
１２２  第１のＭＡＣヘッダ
１２４  第２のＭＡＣヘッダ
１２６  最後のＭＡＣヘッダ
１３０  第１のＩＰヘッダ
１３２  第２のＩＰヘッダ
１３４  最後のＩＰヘッダ
１４０  第１のペイロードフラグメント
１４２  第２のペイロードフラグメント
１４４  最後のペイロードフラグメント
１５０  第１のシーケンス番号
１５２  第２のシーケンス番号
１５４  最後のシーケンス番号
１６０  第１のフレームチェックシーケンス
１６２  第２のフレームチェックシーケンス
１６４  最後のフレームチェックシーケンス
２２０  ＬＲ水晶発振器
２２２  アキュムレータレジスタ
【図１】
0005941293.tif 000002
【図２】
0005941293.tif 000003
【図３】
0005941293.tif 000004
【図４】
0005941293.tif 000005
【図５】
0005941293.tif 000006
【図６】
0005941293.tif 000007
【図７】
0005941293.tif 000008