往復時間とパケット間隔
系外の量 · SI 秒で表す · RTT とパケット間の Δt
一九八三年、マイク・ミュースは網の不具合を洗っている最中に、一晩で小さなプログラムを書いた。相手の機械へ短い問いを送り、返事が来るまでの時間を打ち出すものである。名は音波探知の人々から取った。潜水艦がかちりと音を出し、反響に耳を澄ます。距離はただ一つの時間差から計算される。この測り方の習いから単位が生まれた。書き留められるのは行きでも帰りでもなく、輪のすべてである。
妙味はここにある。往復はただ一つの時計で測られる。問いは返事が届くのと同じ機械から出るのだから、読みの差は、向こう端の時計が合っているかどうかに左右されない。片道の遅延はそう易々とは得られない。それには遅延そのものより細かく揃った時計がいる。つまり時刻を運ぶための別の取り決めか、両端に置く衛星時刻の受信機かである。
01 · 定義
往復時間とは、パケットを送り出してからそれへの返事が届くまでの間隔であり、一つの同じ時計で測られる。パケット間隔とは、同じ流れの隣り合う二つのパケットを送り出す間の時間であり、これを定めるのは網ではなく、網に荷を載せる側である。
往復は性質の異なる三つの項から成り、それらを分けて見ることには意味がある。治し方がそれぞれ違うからだ。第一は伝わる時間で、経路の長さとファイバー中の光速が決める。短いケーブル以外のなにものにも譲らない。第二はシリアル化、パケットを回線へ押し出す時間で、回線が速いほど小さくなる。第三は中継点の緩衝での待ち行列であり、網がその瞬間どれだけ混んでいるかに左右されるのはこれだけである。
ここから、さほど明らかでない事情が出てくる。回線を十倍に広げても往復はまったく変わらない。広げることが取り除くのはシリアル化だけで、待ち行列も経路の長さも元のままだからだ。それどころか、「万一のために」余裕をもって作られた緩衝ではパケットは失われず、ただ待つ。負荷の下で往復は秒の単位まで伸びる。これが bufferbloat と呼ばれるようになった災いである。
パケット間隔がその隣に置かれているのは偶然ではない。流れに起きることのほとんどは、間隔と往復の比で決まる。確認が戻るよりパケットが出る方が多いあいだ、送り手は手探りで働き、経路に物理的に入るだけのデータを抱えておかねばならない。その量こそ、速度と往復の積にほかならない。
経路を選び、つまみをパケットの大きさの上で動かしてみてほしい。青いパケットが左のラックから右へ行き、橙になって戻る。経路の下の帯は往復を三つの項に分け、それが実際に何に費やされているかを見せる。回線を広げても縮むのは真ん中の部分だけ——長い経路では、もともと最も小さい部分である。
記憶装置が安くなったのは、算法が変わるより早かった。作り手は機器に数百パケットぶんの待ち行列を積み始めた。緩衝が多すぎて困ることはあるまいと思ってのことである。ところが逆だった。満杯の待ち行列はパケットを落とさず、引き止める。送り手は混雑の合図を何ひとつ受け取れず、さらに送り込む。家庭の回線では負荷の下で往復が一秒半まで伸び、速度は元のままだった。
02 · 換算
往復、管、パケットの流れ
往復をどの単位で入れてもよい。カードがそれを他の単位に換算し、次にそれに依るものを算出する。速度ごとに経路へどれだけのデータが入るか、窓がどんな上限を定めるか、種々の符号化器がどんなパケット間隔を選ぶかである。
容量を計算するための速度は、対話部分で選んだ経路から取る。細かい設定では一ギガビットに固定できる。
ping が測るのは、応用プログラムに要るものとは少し違う。遠い中継点でのエコー要求の扱いは別の道を通り、主たる計算部をよけることも多い。だからその遅延は本当の接続の遅延とは合わない。一方で、こうした要求に最後の最後まで答えない機器も、まったく答えない機器もある。だから大きな ping が必ずしも遅い接続を意味せず、小さな ping が速さを請け合うわけでもない。
| 値 | 注記 | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · 桁の並び
対数目盛:マイクロ秒から秒まで04 · 測定器
往復時間は何で捉えるか
プログラムは時刻印を付けたパケットを送り、戻りを待つ。読みの差が往復である。取り柄は時計が一つで足り、相手には答える気以外なにも求めないこと。難点は、相手が別の、必ずしも速くない道から答えることである。
やり取りをすべて記録すれば、往復は流れそのものから得られる。断片が出てからその確認が届くまでの時間である。こうして測られるのは、まさに応用プログラムの見る遅延であり、そのうえばらつきも姿を現す。会話では、均した遅延よりこちらの方が邪魔になる。
時刻を網のチップで直に押す機器は、基本ソフトの持ち込む不確かさを取り除き、分解を数十ナノ秒まで押し下げる。別の取り決めに従ってやり取りし、両端がそれぞれ二つの印を置く——往復をその不揃いな二つの半分に分けられるのは、まさにこれによってである。
片道の遅延が測られるのは、両端の時計が遅延そのものより細かく共通の時刻へ引き寄せられている所だけである。そのために回線を別の同期の取り決めで測り出すか、衛星時刻の受信機を据える。それがなければ、往復だけが正直な数として残る。
05 · 表記の規則
往復は単位つきで、ばらつきは別に
表記はラテン大文字三つ、点は打たない。値は単位を添え、何を測ったのかを添える。一回の測りか、一連の平均か、その中央値か。ばらつきは別の数として傍らに記す。平均だけでは、パケットが揃って進んでいるかどうか何も言えないからである。
最初の書き方は単位なしで済ませ、それとともに意味もなくしている。百三十の何か——ミリ秒か、マイクロ秒か。二つ目は仮定を測定として通すが、行きの道と帰りの道はしばしば別で、半分は不揃いに出る。三つ目は最も広まった誤りを繰り返し、往復を経路全体ではなく回線の性質と見なす。四つ目は量を取り違える。パケット間の間隔は往復ではない。
06・近隣の単位
往復は経路を時間の側から、速度は量の側から描く。両者の積が第三の量、経路の容量を与える。それなしには遠距離の速い接続は一つも整えられない。傍らに立つのは遅延のばらつきで、会話でも遊びでも、均した遅れより邪魔になる。
Simetrium の 要覧のうち 隣に並ぶのは ビット と バイト、経路の容量はそれらで数える、 秒、どちらの量も最後はそこに帰する、 デシベル 回線収支から出た、そして クロック周期、それがハードウェアの時刻印の分解の限界を定める。
07 · 歴史の部
かちりという音と反響
カリフォルニア大学とメンローパークの研究所の間で最初の語が送られたとき、操作の者はそれを電話で読み上げ、一文字ずつ確認を待った。回線は三文字目で切れたが、その手順そのもの——送った、返事を待った、時計を見た——こそ、今日まで使われているものである。
マイク・ミュースは不具合を洗いながら一晩で自分のプログラムを書き、音響測深機の音から名を付けた。短い一撃、それから反射を待つ。名があまりに言い得て妙だったので、「ping する」という言い方は網の稼業をはるかに越えて言葉に入り、今では、誰かいるかを確かめるために送る短い便りなら何でもそう呼ばれる。
一九八六年の秋、ある大学回線の通す力が千分の一に落ちた。送り手は確認を受け取れず、新しい写しを次々と送り、経路をすっかり潰してしまった。ヴァン・ジェイコブソンは今日まで効く手当てを示した。往復とそのばらつきを見張り、その増大を混雑の合図と受け取ること。つまり損失が始まる前に送り出しを抑えることである。
今日の流れを制する算法は、もはや損失を見張らず、往復がどう伸びるかを直に見張って、待ち行列が満ちる前に送り出しを抑える。家庭の中継機にも、緩衝をわざと短く保つ作法が入った——同じ回線で、負荷の下の往復が一秒半から数十ミリ秒まで落ちる。
往復の半分は仮定であって、測定ではない
往復が使いよいのは、時計が揃っていることを求めない点である。送りも受けも一つの機器が印を押すので、目盛りのずれは差にそもそも入ってこない。まさにそれゆえ ping はどこでも動き、設定を要しない。一方、片道の遅延ははるかに気難しい量で、測るものより細かい同期を求める。
往復を半分にする習いが続いているのは、根拠が乏しいにもかかわらずこのためである。相手へ向かう流れと戻る流れは、しばしば別の経路を通る。長さも混み具合も違い、本当の半分は二倍も食い違いうる。網の稼業のうちで最も測りやすい量が、同時に最も読み違えられる量でもある。
カタログ · 測定単位
それぞれの量に一つの要覧
SI 基本単位が七つ、固有の名を持つ組立単位が二十二、そして技術も暦も成り立たない体系外の量。