要約

  • RFC 9581は拡張時刻、継続時間、期間にCBORタグ1001、1002、1003を割り当て、タイムスケール、クロッククラス、精度、分散、不確かさ、保証を表現できる。
  • 表現の桁数と測定精度は別物である。正しいperiodでも、時計の規律と単調時刻の対応がなければ、因果順序、締切、アプリ完了は証明できない。

障害報告では、二つのログの差が900ナノ秒だった。その数字だけなら順番は明快に見える。しかし、一方のクロックはholdover中で、もう一方の不確かさは±1ミリ秒だった。九桁の小数は、九桁分の知識を意味しない。

RFC 9581は、従来のCBOR時刻タグでは運びにくかった意味を整理する。1001は拡張時刻、1002は継続時間、1003は期間である。RFC Editor、Datatracker、履歴、正誤表は規格の来歴を示す。個々の機器が規格どおりの品質で時刻を得たことまでは示さない。

構文検査が届く範囲

タグ1001のmapには、符号なしの基準時刻キーがちょうど一つ必要だ。キー1はPOSIX型の秒、4と5はdecimal fractionまたはbigfloatを使う。負のキーはミリ秒からアト秒までの端数や補助情報を運ぶ。

未知の負キーと文字列キーはelectiveなので無視する。未知の符号なしキーは基準時刻またはcriticalであり、エラーにしなければならない。IANAのCBORレジストリが番号を共有し、RFC 8949がデータモデルを定める。デコーダーは形を検証できる。しかし送信プロセスの本人性、転送保護、発振器、上位時刻源、最終同期はmapの外側にある。

RFC 9581の例では、マイクロ秒まで記述した時刻に、1ミリ秒の不確かさを付けられる。resolutionは表現、accuracyは測定という境界がここにある。

Guaranteeは保証を記録する欄である

タイムスケールの0はPOSIX epochのUTC、1はPTP epochのTAIで、指定がなければUTCとなる。13はcritical、負の同等キーはelectiveである。受信者がelective情報を理解しなくても、数値だけは残る。そのとき意味は同じとは限らない。

クロッククラス、精度、OffsetScaledLogVarianceはRFC 8575にも現れるPTPの概念を借りる。-7はk=2の拡張不確かさ、-8は真値からの最大偏差についての表明である。RFCは、理論上そのような保証は到達不能だが、RFC 3161のような仕組みが表現を必要とすると説明する。

ここで運ばれるのは保証の主張であり、根拠ではない。責任主体、校正、grandmaster、経路遅延、同期成功時刻、holdover、警報は別に残す必要がある。RFC 5905はNTPを定義し、NISTの時刻サービスは実運用の時刻源を示す。BIPM/JCGMの文書は測定不確かさの枠組みを示す。-7の存在だけでは、その手順を実施した証拠にならない。

タイムゾーンは所在地ではない

-10と10はタイムゾーンのヒント、-11と11はRFC 9557型のsuffix情報を運ぶ。表示や解釈には有用だが、物理所在地や管轄を証明しない。拡張日時からPOSIX基準値へ変換すると、元の数値オフセットを失う場合もある。

また、ゾーン、分解能、壁時計のずれは送信機の特徴を漏らし得る。freshnessや有効期間に使うなら、どのキーを理解し、何を無視し、どの解釈を採用したかを監査記録にする必要がある。

periodは業務の領収書ではない

1003は開始と終了、または片方の端点とdurationを表す。論理上三要素のうち二つが非nullでなければならない。構造が正しくても、作業が開始時刻に始まり、終了時刻に完了したとは限らない。SLAには、アプリが要求を受理し、処理し、結果を返した証拠が要る。

保存すべき鎖は、CBOR原文と解析結果、認証済み送信者、時刻源とスケール、最終同期とholdover、offsetとdelay、品質値の算出根拠、壁時計と単調カウンター、収集遅延、受信時刻、アプリ結果である。不確かさの範囲が重ならず、これらの対応が保たれて初めて、限定された順序を言える。

Heng Luの現実レイヤー論は記号が装置の権威を奪うことを拒む。Running-Code Primacyは互換性と運用事実を分ける。BTW Mediaの存在理由は、精密に見える値より欠けた接続証拠を示すことを求める。

情報源