要約

  • RD は各パケットの元の位置からの変位を分布にし、RBD は元の順序へ戻す仮想バッファの占有を分布にする。どちらも観測列の変換であり、原因を検出する装置ではない。
  • DT と BT は、保持・廃棄・損失扱い・外れ値扱いを決めるため、結果そのものである。系列の同一性、観測点、重複と損失の規則、計算方式も一緒に残さなければならない。
  • 経路への帰属とアプリケーションへの影響には別系統の証拠が要る。RFC 5236 は Informational であり、IESG Note は IETF の standards track 文書を RFC 4737 と明記している。

原因より先に完成した報告書

障害会議に、一枚の整ったグラフが持ち込まれたとする。横方向のずれには山と長い裾があり、隣には仮想バッファが何個のパケットを抱えたかという分布がある。計算は再現できる。ところが資料の見出しは「経路の負荷分散障害」で、結論には「顧客影響あり」と書かれている。

グラフが直接示したのは、その観測点で見えた順序と、特定の回復モデルの占有だけである。負荷分散を言うなら、メンバー選択やリンク状態が要る。顧客影響を言うなら、トランスポート、アプリ、利用者の時系列が要る。二つの欠けた証拠を、図の精密さが埋めることはない。

組織は上層へ運びやすい一つの信号を欲しがる。だが、測定値が持つ権限は、その変換が実際に行った範囲までである。「この順序が観測された」と「この装置が原因で、この利用者が損害を受けた」は別々の命題だ。

RD が保存するのは位置の形である

Reorder Density では、受信した一意のパケットに受信インデックスを付ける。受信インデックスからシーケンス番号を引いたものが変位である。負なら元の位置より早く現れ、正なら遅く現れ、ゼロならモデル上の順位置となる。

正規化した分布は、単なる「並べ替えられた割合」より多くを残す。ゼロ近傍への集中、早着と遅着の非対称、別の峰、長い裾が見える。早着・遅着の比率、平均変位、エントロピーといった派生値も得られる。

しかし、それは位置の形である。RD はルーティング履歴を読まず、スイッチ内部を観察せず、キュー設定も知らない。同じ形に複数の原因が整合し、一つの原因でも負荷や観測場所が変われば別の形になりうる。

受信インデックス自体にも判断が入る。重複パケットには付けない。欠けた番号を損失とする時点が後続位置に影響する。捕捉装置が落としたパケットもあるかもしれない。RD が損失や重複と直交するという説明は、分類が不要という意味ではなく、分類を分離して扱う設計だという意味である。

RBD のバッファは実製品の内部状態ではない

Reorder Buffer-occupancy Density は、早く到着したパケットをいったん保持し、欠けた番号が届けば連続部分を放出する仮想バッファを置く。その占有をパケット数またはバイト数で数え、分布や平均、分散を求める。

これは「この受信列を、この規則で元へ戻そうとしたとき、どれほど保持が必要だったか」に答える。特定のアプリケーションの実バッファを読み取るわけではない。実装は別の容量、タイムアウト、再生期限、廃棄規則、系列空間を持ち、そもそも順序を戻さないこともある。

バッチ処理なら待てる変位でも、音声では到着時点で期限切れかもしれない。トランスポートはアプリのエラーより先に再送や輻輳反応を起こすことがある。RBD はネットワーク観測とアプリ結果の間に置かれたモデルであり、どちらかの事実にすり替えてはならない。

アプリが平静だったからといって観測が消えるわけではない。RBD が大きいからといって利用者被害が自動的に生まれるわけでもない。この二つを同時に記録できる構造が必要だ。

閾値は測定の外枠ではなく中身である

RFC 5236 は変位閾値 DT を用い、欠落または大きくずれたパケットをどこまで探索し、状態を保持するかを制限する。DT が小さすぎれば、かなり遅れたパケットを損失に分類することがある。大きくすれば再順序化として拾える一方、メモリと処理が増える。境界を超えた極端な到着は、計算を有限に保つため rogue packet として除外される場合がある。

RBD のバッファ閾値 BT も、仮想占有を有限にする。アプリ要件を参考にできるが、依然として分析または実装の選択である。同じパケット列でも DT と BT が違えば、結果は違いうる。

したがって「RD が増えた」という文だけでは証拠にならない。どの列を、どこで、いつ、どの DT と BT で、どの損失・重複規則により処理し、境界で何件を除外・再分類したかを記す必要がある。

感度分析は見出しの数値より重要な場合がある。DT を少し変えるだけで多数の損失が再順序化へ移るなら分類は脆い。BT の小さな差で RBD が反転するなら容量の結論には条件が付く。広い妥当範囲で安定していれば記述は強まるが、それでも原因は判明しない。

閾値を変更できる権限も統制対象である。パケットが一つも変わらなくても、設定だけで「損失率」と「並べ替え率」を動かせる。変更履歴のないダッシュボードは、測定器の変更をネットワークの変更として見せる。

シーケンスの同一性を復元できるか

再検証可能な記録には、送受信点、フローまたは系列空間、観測点、時間窓、時計、サンプリング、重複判定、捕捉損失、ファイル結合やフィルタ処理が必要である。正しい式が誤った入力に適用される危険は常にある。

シーケンス番号には wrap と reset がある。RFC 5236 は modulo-N で扱えるとしているが、それは各実装が wrap、再起動、再利用、複数フローの混入を正しく識別した証明ではない。リセット境界を連続列と誤認すれば、大きく精密で、意味のない変位ができる。

能動測定なら生成記録とパケットの認証が問題となる。実トラフィック観測なら範囲、サンプル、捕捉性能が問題となる。「なぜこの到着をこの列の一意な一員としたのか」が復元できなければ、分布の対象は安定しない。

オンライン値には訂正期間がある

オフライン分析は列の終わりを待てる。オンライン監視は、欠けたパケットが損失なのか遅着なのか決まる前に進まなければならない。RFC 5236 の go-back と stay-back は、この不確実性に別の方法で対処する。

go-back は遅い到着を受けて過去の状態を修正できる。stay-back は戻らない代わりに、欠落を解決するまで DT を上限として遅れることがある。同じ名前の指標でも、ある瞬間の表示が違うのは異常とは限らない。

運用画面は暫定、改訂、確定を分け、訂正可能期間、保持域を外れた観測、改訂後に撤回されたアラートを示すべきである。そうしなければ、計算上の待機が経路障害に見え、正常な訂正が履歴から消える。

外れ値を捨てて誤差と負荷を有界にする選択も、件数を伴って表示する必要がある。結果は「宣言した境界内で保持された標本」の分布であって、すべての到着に関する無条件の真実ではない。

可能性の列挙は帰属表ではない

RFC 5236 は、L2/L3 リンクへのストライピング、優先スケジューリング、ルートの揺れ、ルータやスイッチの内部並列性、QoS、リンク負荷分散などを乱序の要因として挙げる。これは現象が起きる理由を理解するための例であり、RD の形から原因を一意に返す対応表ではない。

複数の仕組みは同時に働く。負荷分散された経路でルート変更が起き、優先キューが並列処理装置を通ることもある。捕捉処理が記録順を乱すこともある。一方、一つの仕組みでもトラフィック構成とキュー状態で形は変わる。

経路変更なら同じ時間窓の経路履歴、リンク束ならメンバー状態と選択、スケジューラならクラスとキュー、装置内並列なら実装またはテレメトリ、捕捉疑いなら独立観測が要る。指標は調査先を示せるが、調査を完了できない。

複数事業者にまたがる経路では、この制約は正当性の条件でもある。端点観測は二点間で順序が変わったことを示せても、責任を持つ管理ドメインまでは示さない。追加証拠なしの名指しは、技術的不確実性を政治的事実へ変えてしまう。

区間を合成するには前提が要る

RFC 5236 は、定常性など十分に広い条件の下でサブネットごとの RD を組み合わせる可能性を論じる。これは条件付きの手法であって、経路全体が独立した区間の単純和だという宣言ではない。

トラフィック選択と経路選択は相関しうる。上流キューは下流に入る列を変える。観測窓がそろわないことも、トポロジ変更で定常性が崩れることもある。その場合、局所要約の合成は数学的対象を作っても、実際の端点列や原因分担を発見しない。

前提を説明できないなら、端点間を直接測る方が強い。ただし直接測定も対象標本、期間、可視区間の範囲を出ない。観測の欠落を演算で埋めないことが要点である。

アプリ影響は別の時計で確認する

乱序への感度は実装ごとに異なる。トランスポートは再送や速度調整を行う。プレイヤーは再生バッファで吸収できるかもしれない。リアルタイムのパケットは到着しても期限切れになりうる。トランザクションは失敗せず待ち時間だけ伸び、大容量転送はスループットだけ下がることがある。

影響を述べるには、同じ時間と対象にそろえたトランスポートカウンタ、遅延、再送、エラー、期限超過、メディア品質、利用者結果が要る。五分の捕捉と週次平均を並べても因果鎖は閉じない。時間的一致だけでも、関連を示す以上のことはできない。

「影響」は観測された結果に用い、理論上の感受性には「リスク」や「仮説」を用いるべきだ。言葉を分けることが、次の行動の権限を分ける。

RFC 番号は標準性を上書きしない

RFC 5236 の位置付けは Informational である。IESG Note は、パケット並べ替え指標の IETF standards track 仕様が RFC 4737 であり、RFC 5236 の指標はそこへ採用されず、RFC 5236 は Internet Standard の候補ではないと明記する。さらに、安全性、輻輳制御、配備済みプロトコルとの相互作用などについて IETF レビューに基づく発行判断ではないため注意を求めている。

これは研究価値を否定するものではなく、文書が証明する範囲を決める。RFC シリーズには複数のストリームとステータスがある。番号は安定した参照を与えるが、一般的適合性、実装、配備、運用結果を認証しない。

RFC 4737 の standards track も同じく限定して読むべきだ。文書手続の証拠であり、特定製品の実装や特定捕捉の完全性を保証しない。

出力より先に入力を保全する

RFC 5236 のセキュリティ記述は RFC 4737、および RFC 3763 と RFC 4656 の能動測定文脈へつながる。計算式は入力パケットを自ら認証しない。試験トラフィックは偽装、再送、フィルタ、特別扱いを受けうる。捕捉系は落とし、並べ替え、時計をずらす。都合のよい窓だけ選ぶこともできる。

経営判断に使う証拠は、生成または捕捉の出所、パケット同一性、時刻源、完全性、前処理、分類、閾値、アルゴリズム版、出力ハッシュを結び付けるべきだ。必要なら収集、変更、計算、結論承認の権限を分離する。

Lu Heng の枠組みで見れば、これは統計手法だけの話ではない。参加や専門知は証拠を提供しても、影響を受ける全員を拘束する権限にはならない。最小の共通仕様は狭い協調だけを担い、その後の判断を現地の事実と制御を持つ主体へ残す。記録装置は主権者ではなく、文書は running code と実際の結果に代わらない。

未知を未知のまま残すのは、結論不足ではない。測定を権限の範囲内に保つための専門性である。

情報源

  1. RFC 5236
  2. RFC 5236 プレーンテキスト
  3. IETF Datatracker の RFC 5236
  4. RFC 5236 ステータス
  5. RFC 5236 履歴
  6. RFC 5236 Errata
  7. RFC 4737
  8. RFC 4737 プレーンテキスト
  9. IETF Datatracker の RFC 4737
  10. RFC 4737 ステータス
  11. RFC 4737 履歴
  12. RFC 4737 Errata
  13. RFC 2330
  14. RFC 3763
  15. RFC 4656
  16. RFC 3932
  17. RFC 4844
  18. RFC 8729
  19. Lu Heng — The Multi-Stakeholder Mirage
  20. Lu Heng — Minimum Initial Specification
  21. Lu Heng — When the Bookkeeper Auditions for Olympus
  22. Lu Heng — Running-Code Primacy