SIMETRIUM .COM
從機櫃裡的 10 µs 到去月球的 2.5 s
36 種語言
Symbol plate ECHO
RTT 來回一趟 · 單程卻無從下手
三個大寫字母,不加點不要與封包間隔混為一談
單位頁 下層 · 時間以 SI 秒計 第 1/1 頁 · 修訂 2026-09

來回時間與封包間隔

制外的量 · 以 SI 秒錶示 · RTT 與封包之間的 Δt

一九八三年,邁克·繆斯在查一處網路故障時,用一個晚上寫了個小程式:給某臺機器發一條短短的請求,把等到回話所耗的時間打出來。名字取自聲吶的人:潛艇放出一聲輕響,聽那回聲,距離便從一個時間差裡算出來。這個測量的習慣裡生出了這個單位——記下的既不是去路,也不是迴路,而是整整一圈。

其中的妙處在於,往返是用一隻鍾量的:請求從哪臺機器出去,回話就到哪臺機器,因此讀數之差並不取決於對面那頭的鐘對不對得上。單程的延遲就沒這麼容易得手——它要求兩頭的鐘對得比延遲本身還細,也就是要麼另有一套傳遞時刻的協定,要麼兩端各裝一臺收衛星時刻的機子。

符號 RTT · Δt · SRTT
幹活的單位 毫秒
由什麼湊成 路程 + 序列化 + 排隊
光在纖芯裡的速度 ≈ 200 000 km/s
通話的界限 按 ITU-T G.114 為 400 ms
已完成譯本 / 36
前往換算 一個晚上寫成的 ping
01 · 定義

來回時間,是一個封包發出與它的回話到達之間的一段時間,由同一只鍾量出。封包間隔,是同一道流裡相鄰兩個封包放出來的時間之差;它不由網路定,而由往網路上壓擔子的人定。

往返由三項性質不同的東西湊成,把它們分清是要緊的,因為每一項的治法都不一樣。頭一項是傳播的時間,由通路的長度和光在纖芯裡的速度定下,除了更短的纜子,它對什麼都不讓步。第二項是序列化,把封包推進線路所用的時間,線路越快它越小。第三項是中間節點緩衝區裡的排隊,也只有它,取決於網路此刻究竟有多忙。

由此引出一件不甚顯眼的事:線路可以拓寬十倍,而往返卻分毫不動,因為拓寬只去掉序列化,佇列和通路的長度仍舊留在原處。更要命的是,那些「以防萬一」留足餘地做出來的緩衝區裡,封包並不丟,只是候著,負載之下往返便漲到以秒計——這便是後來被叫作 bufferbloat 的那樁禍事。

封包間隔並非偶然擺在旁邊:一道流上發生的事,幾乎全由間隔與往返之比來決定。只要封包出去的次數多過確認回來的次數,傳送方就是在摸黑幹活,必須在通路里存下它實際裝得下的那麼多資料——而這個量,恰恰就是速率與往返的乘積。

形式上 L——通路的長度,v——光在纖芯裡的速度,C——線路的速率,S——封包的大小,N——節點的個數
往返由什麼構成
RTT = 2L / v + N · S / C + t(排隊)
通路的容量
BDP = C · RTT
重傳的期限
RTO = SRTT + 4 · RTTVAR
封包間隔
Δt = S(酬載) / B
T
量綱:兩個量量的都是時間
200
每毫秒 km——纖芯定下的界限
20
毫秒——電話裡的封包間隔
互動 · 一個封包來回一趟

選一條通路,把滑塊在封包大小上來回推。藍色的封包從左邊機櫃去右邊,橙色地回來;通路下方那條帶子把往返拆成三項,好看清它究竟耗在哪裡。把線路拓寬,只縮短中間那一段——而在長通路上,這一段本就最小。

封包的大小
整個往返
封包的序列化
在途的資料(BDP)

留足餘地做出來的緩衝區

記憶體降價,比演算法改變來得早;廠家便往裝置裡塞下幾百個封包的佇列,以為緩衝區多些總不至於壞事。結果恰恰相反:滿了的佇列並不丟封包,只是把它們扣住,傳送方收不到任何擁塞的訊號,於是接著往裡壓。一條家用線路上,負載之下往返漲到一秒半,而速率還是原來那個數。

02 · 換算

往返、管道與封包流

往返用什麼單位填都行,卡片會把它折算成別的,隨後算出與它相關的那些:不同速率下通路里能裝多少資料,視窗定下什麼樣的上限,各種編碼器又挑什麼樣的封包間隔。

算容量用的速率,取自互動部分裡選定的那條通路;在細項設定中可固定為一吉位元。

ping 量的並不完全是應用程式所需要的那件事。遠端節點對回顯請求的處理走的是另一條道,常常繞過主計算部分,因此它的延遲與真實連線的延遲對不上;另一些裝置則把這類請求排在最後才答,或者乾脆不答。所以大的 ping 未必意味著慢的連線,小的也擔保不了快。

換算表
數值說明
重傳的期限
通路的容量
數量級

03 · 數量級
對數標度:從微秒到秒

來回時間,以秒計
淺色那條帶子,是往返決定人之所感的那一段:從十毫秒起——低於它便覺不出差別——直到四百,越過之後通話就成了不可能。它左邊住著交易所和機器內部的延遲,右邊是衛星與行星際的鏈路,那裡乾脆放棄了等回話。
04 · 測量儀器

來回時間用什麼來捉

回顯請求 · 分析儀 · 硬體測試儀 · 帶鐘的探針
回顯請求

程式發出一個帶時間戳的封包,等它回來,讀數之差就是往返。它的長處在於一隻鍾足矣,對面除了肯答之外別無所求;它的短處在於,對面是從另一條不一定快的道上答的。

封包分析儀

把整場來往都錄下來,往返便可從流本身取得:從一個段出去到它的確認回來的那段時間。這樣量到的,正是應用程式所見的延遲,而且離散也一併現了形——在通話裡,它比均勻的延遲更礙事。

硬體測試儀

那些直接在網絡卡晶片裡蓋時間戳的裝置,去掉了作業系統帶進來的不確定,把解析度壓到幾十納秒。它們按另一套約定交換,兩端各蓋兩個戳——正是這一點,才使往返能拆成不相等的兩半。

帶同步鐘的探針

單程的延遲,只有在兩端的鐘被對到比延遲本身還細的共同時刻上,才量得出來——為此要用一套專門的同步協定把線路標定,或者裝上收衛星時刻的機子。沒有這些,往返便是唯一老實的數。

05 · 書寫規則

往返帶單位,抖動另記

記號用三個大寫拉丁字母寫,不加點;數值帶上單位,並註明究竟量的是什麼:單次取樣、一列的平均,還是它的中位數。離散另作一個數寫在旁邊,因為單憑平均,說不出封包走得勻不勻。

正確
RTT = 128 ms(100 次取樣的中位數)
RTT 12.4 ms,離散 0.8 ms
Δt = 20 ms, 50 pps
單程延遲 63 ms(PTP 時鐘)
錯誤
ping 130
單程延遲 = RTT / 2
通道越寬,往返越短
R.T.T.

頭一種寫法連單位都省了,連同意思一起省掉:一百三十個什麼——毫秒還是微秒?第二種把假定當成測量,可去路與迴路常走不同的道,兩半並不相等。第三種重複著最常見的錯處,把往返當成線路的性質,而不是整條通路的。第四種把兩個量混作一談:封包之間的間隔並不是往返。

06 · 相鄰單位

往返從時間這一面描述通路,速率從數量那一面,兩者相乘得出第三個量——通路的容量;沒有它,遠距離的快連線一條也調不起來。與它並排的是延遲的離散,在通話和遊戲裡,它比均勻的落後更礙事。

bit/s
信道速度
一秒裡裝得下多少
BDP
通路的容量
速率 × 往返
J
延遲的離散
按 RFC 3550 的抖動
平滑後的往返
SRTT ← 7/8 · SRTT + 1/8 · R
延遲的離散
J ← J + (|D| − J) / 16
視窗定下的速率上限
B(max) = W / RTT

Simetrium 的檔案中 與之相鄰的是 位元字節,通路的容量正是用它們來算的, ,兩個量最終都歸結到它, 分貝 出自鏈路預算的,以及 時鐘週期,它定下硬體時間戳的分辨極限。

07 · 歷史部分

一聲輕響與回聲

檔案 · 1969 → 今天
1969 · 洛杉磯
頭兩個字母,隨後中斷

當加州大學與門洛帕克的研究所之間傳第一個詞時,操作員在電話裡一個字母一個字母地念,一個字母一個字母地等確認。連線在第三個字母上斷了,可這套做法本身——發出去、等回話、看鐘——恰恰就是沿用至今的那一套。

560 km,50 kbit/s 的線路
1983 · 寫程式的一個晚上
ping 取名自聲吶的回聲

邁克·繆斯查故障時用一個晚上寫成了他的程式,名字取自回聲測深儀的聲響:短短一擊,隨後等那一返。這名字取得如此貼切,以致「ping 一下」這個說法遠遠越出了網路這一行,如今指的是任何一條短訊息,發出去只為看看那頭有沒有人。

約一千行 C 語言
1988 · 網路的堵塞
往返成了感覺器官

一九八六年秋,一條大學線路的傳輸量跌了一千倍:傳送方收不到確認,便一遍遍地發新的副本,把通路徹底壓垮。範·雅各布森提出的救法沿用至今:盯住往返和它的離散,把兩者的增長當作擁塞的訊號,也就是在丟失開始之前就先把傳送勒住。

32 kbit/s 跌到 40 bit/s
今天
同臃腫緩衝區的較量

當今的流控演算法不再盯著丟失,而是直接盯著往返怎樣往上漲,趕在佇列填滿之前就把傳送勒住。家用路由器也有了刻意把緩衝區留短的排程——同一條線路上,負載之下的往返便從一秒半跌到幾十毫秒。

同一條線路上 1500 ms → 30 ms
回聲測深儀:往下一擊,往上一返,深度出自一個時間差
計量學札記

往返的一半是假定,不是測量

往返方便就方便在不要求兩隻鍾對得上:發出與收到都由同一臺裝置蓋戳,兩套刻度的偏差壓根進不到差值裡去。正因如此,ping 到處都能用,也不必調;而單程的延遲則是個脾氣大得多的量,它要求的同步比所量的東西還細。

把往返一劈兩半的習慣所以能立住,雖說沒多少道理:去對面的流與回來的流,常走不同的路由,長短不同,負載也不同,真正的兩半可以差上一倍。整個網路這一行裡最容易量的那個量,同時也是最常被讀錯的那個。

兩隻鍾走不到一處——所以往返的一邊分不出來
目錄 · 計量單位

每個量都有一份檔案

七個 SI 基本單位,二十二個有专名的導出單位,以及若干制外量 — 少了它們,工程与曆法都轉不動。

7
基本
22
導出
36
種語言

下層:時間、數量、速率

已開啟的資料頁被標出

SI 基本單位

標出了秒——兩個量都落在它上頭

封包間隔在實際中的樣子

從十六毫秒到半分鐘
08 · 你的語言
每個連結都指向真實的語言頁面

用你的語言閱讀

已翻譯並校對 初稿翻譯 待譯