要約

  • QUIC latency spin bitは、両endpointが参加しtrafficが連続する場合にend-to-end RTTを推定する。参加は意図的に任意であり、平坦なbitをゼロ遅延と読むことはできない。
  • application-limitedまたはflow-control-limitedなsenderでは、edge間隔がnetwork RTTではなく送信周期に従う。reorderingは過小なsampleも作るため、filterも測定証拠に含まれる。
  • raw edge、packet rate、pathとconnection-ID epoch、観測clock、除外理由、filter versionを残す。endpoint RTT、HTTP transaction、画面表示は別々のreceiptである。

正しい信号が別の時計を示す

暗号化されたQUICのwire imageで、spin bitはpath上の観測者に意図して残された数少ない信号である。short-header 1-RTT packetではserverがclientから見た値を反射し、clientは最大packet numberを更新するserver packetを受けると値を反転する。両方向にpacketが流れ続ければ、片方向の観測でもおよそ1 RTTごとにedgeを得られる。

しかしRFC 9312は、applicationがRTTより長い一定間隔で少量だけ送る例を明記する。この場合、spin sampleはnetwork RTTではなくapplication periodになり得る。200ミリ秒のpulseが、20ミリ秒のpathを否定するわけではない。

flow controlも待ち時間を挿入する。RFC 9308が述べるpacketization delayも同様で、実装は効率のため短時間packetを満たそうと待つことがある。低遅延の小さなchunkを扱うapplicationは即時送信を要求できる。どちらも合理的な動作だが、wire上の時刻を変える。

従って安全な表現は条件付きになる。両端の参加、連続した双方向traffic、安定したpath epoch、信頼できるclockが確認できる範囲で、edge seriesはapplicationが経験するend-to-end RTTを推定する。伝搬、queue、server処理を単独で分離する値ではない。

edgeがない経路も仕様どおりである

spinは任意で、どちらか一方が無効なら測定できない。QUIC v1はさらに、管理者が許可していても各endpointが少なくとも16 pathまたはconnection IDに1つを無作為に無効化するよう求める。独立した選択なら、およそ8 pathに1つでsignalが使えなくなる。

無効時は任意の固定値でも、packet単位またはconnection-ID単位の乱数でもよい。peerのspin入力も無視する。平坦なtraceはprivacy選択、低traffic、観測不良のいずれでもあり得る。noiseも意図的なrandomizationかもしれない。ゼロRTT、故障、非QUICの証明にはならない。

version negotiationとconnection establishmentが終わる前にもspinは使えない。handshake RTTは別途観測できるが、始点と終点が異なる別sampleである。

測定値にはpath epochが必要だ

QUIC connectionは移動できる。spin stateはnetwork pathごとに保持され、そのpathで使うconnection IDが変わるとresetされる。connection全体を一本の折れ線にすると、route、NAT状態、観測点の異なるsampleを接続してしまう。

receiptには4/5-tuple、方向、観測点、QUIC version、header form、connection-ID epoch、clock品質が要る。双方向captureなら反対方向のedgeを組み合わせて上りと下りを推定できることがあるが、片方向captureにはその視野がない。

reorderingは過小値を作る。endpointは最大packet numberを進めるpacketだけでstateを更新するが、observerには反転後に旧phaseのpacketが遅れて届くことがある。それを新edgeと数えれば、偽の短いRTTになる。edge loss、疎なsender、無効化もfilterを必要とする。

RFC 9312はdata rate、seriesの変化、handshake estimateを使うheuristicを述べる。filterは見栄えを整える後処理ではなく、どの観測が結果になるかを決める測定法である。raw timestamp、除外理由、version、moving-minimum window、不確実性を保存しなければ再現できない。

endpoint、observer、HTTPは別の時計を持つ

RFC 9002のendpoint RTTは、ack-eliciting packetを送ってから、それを新たに最大として確認するACKを受けるまでのlocal時間である。endpointはACK frameと送受信時刻を持ち、ack delayを条件付きで扱い、pathごとにlatest_rtt、min_rtt、smoothed_rtt、rttvarを維持する。passive observerにはその情報がない。

spin RTTとendpoint RTTは比較できるが代用できない。sample event、clock、path、集約法を値と一緒に残す。差はapplication limitation、非対称path、観測誤差、平滑化の違いを示唆し得るが、自動的に一つを選ばない。

RFC 9114のHTTP/3では、一つのQUIC connectionに複数のrequest-response streamが多重化される。spin bitはstream identityもrequest semanticsも示さない。特定requestの完了、server計算、画面表示はapplicationとpresentationの記録が必要である。現在のQUIC wire imageからpassive lossも測れず、欠けたedgeをloss counterにはできない。

人物の寄与も測定範囲と同じく限定する

RFC 9312とRFC 9308はMirja KühlewindとBrian Trammellの共著である。取得時のIETF profileは、KühlewindがEricsson Researchでtransport-protocol evolutionを研究し、それ以前にInternet measurement、transport design、TCP congestion controlに携わったと記す。これは測定境界への関与を裏づけるが、QUICやspin bitの単独発明を示さない。

Heng Luのagency原則に沿えば、endpointは参加とpacket生成を、applicationは送信周期を、pathはdelayとreorderingを、observerはcaptureとfilterを支配する。standard authorは相互運用機構を定めるが、全deploymentの状態までは保証しない。

running codeを証明するのは実packetとendpoint/application telemetryである。minimum initial specificationは一つのbitを共有し、privacy、retention、filter、alertをlocal decisionに残せる。小さな共通信号を過大な主張へ変えないことが、証拠設計の中心になる。

出典