網路延遲與頻寬計算器

輸入線路速率、往返時間和傳輸大小,即可查看單一 TCP 連線的實際上限 — 包含指出瓶頸、傳輸時間與每個代入步驟。

路徑

路徑上最慢的一站 — 通常是您方案的額定速度。
到遠端的 Ping 時間 — 請使用您在負載下預期的最大值。

傳輸

要傳輸的負載 — 檔案、備份或資料集。

TCP 參數

接收端可緩衝的位元組。65,535 為未縮放的最大值;留空 = 無視窗限制。
每個封包的負載位元組 — 1,460 可填滿標準乙太網路訊框。留空 = 忽略協定開銷與遺失。
平均封包遺失機率。留空或輸入 0 = 無遺失限制。

吞吐量與傳輸時間

預期 TCP 吞吐量

請輸入線路速率、往返時間和資料大小。

公式與數值代入

吞吐量 = min(速率 × 效率, 視窗 ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = 速率 × RTT

    您輸入的所有數值都會在此瀏覽器中進行計算 — 不會傳送到任何地方。

    常見問題

    為什麼我的傳輸速度比我付費的線路速率還要慢?

    單一 TCP 連線面臨三個獨立的上限,並以最低者為準。協定開銷會使線路本身減少約 5% — 標準乙太網路訊框在線路上傳輸的 1,538 位元組中,僅含有 1,460 位元組的負載。接收視窗會將吞吐量限制在 window ÷ RTT,因此無論線路多快,傳統的 65,535 位元組視窗都會將 50 ms 的路徑限制在約 10.5 Mbit/s。而封包遺失則會將其限制在 (MSS ÷ RTT) ÷ √loss。上方的計算結果會指出哪一個上限正在限制您的數值。

    什麼是頻寬延遲乘積 (BDP)?為什麼它會決定視窗大小?

    BDP (頻寬延遲乘積) — 即線路速率 × 往返時間 — 是指在任何給定時刻傳輸中 (in flight) 的資料量。TCP 最多只能有一個未確認的視窗在傳輸,因此小於 BDP 的視窗會讓管道無法填滿:在 100 Mbit/s 且 RTT 為 50 ms 的情況下,管道可容納 625 kB,而 65,535 位元組的視窗僅能填滿不到十分之一。這就是為什麼快速且長途的路徑需要 TCP 視窗縮放 (RFC 7323),它將可協商的最大值從 65,535 位元組提高到約 1 GB。

    封包遺失是如何限制 TCP 吞吐量的?

    TCP 會將遺失視為網路壅塞,並在每次發生遺失時將其發送速率減半,因此即使在快速路徑上,極低的遺失率也會產生影響。Mathis 模型估算的上限為 (MSS ÷ RTT) ÷ √p — 在 RTT 為 50 ms 且 MSS 為 1,460 位元組的路徑上,若有 0.01% 的遺失,上限約為 23 Mbit/s,不論線路速度為何。該模型假設遺失事件是均勻分佈且獨立的;在遺失率低於約 1% 時,它能很好地貼近現實,而對於突發性遺失,其估算則偏向樂觀。

    這裡的 MB 與我檔案管理器中的 MB 相同嗎?

    不完全相同。本頁面使用網路界慣用的十進位單位:1 kbit = 1,000 位元,1 MB = 1,000,000 位元組。大多數檔案管理器使用以 1024 為底的單位,且經常誤標為 MB — 那裡的「100 MB」檔案通常是 100 MiB ≈ 104.86 十進位 MB,因此傳輸時間會比十進位數值所顯示的時間多出約 5%。在此輸入 104.86 MB 即可完全吻合。

    評估單一 TCP 連線的實際效能上限

    在評估跨網路路徑的資料傳輸時,單純依賴服務供應商提供的合約頻寬往往無法反映真實的傳輸表現。網路延遲與頻寬計算器是一款免費的線上工具,能根據實際的網路路徑狀況,計算出單一 TCP 連線(TCP flow)的實質效能天花板。

    透過輸入線路速率、往返時間(RTT)以及預計傳輸的資料大小,此工具能立即為您指出限制連線速度的關鍵瓶頸,並顯示預期的 TCP 吞吐量與總傳輸時間。本工具完全在您的網頁瀏覽器中進行本地端計算,您輸入的所有數值都會在此瀏覽器中進行計算 — 不會傳送到任何地方。


    影響 TCP 吞吐量的關鍵輸入參數

    要精確模擬網路路徑的傳輸表現,需要設定以下三組核心參數:

    1. 路徑參數

    • 線路速率:路徑上最慢的一站 — 通常是您方案的額定速度。此數值必須大於零。
    • 往返時間 (RTT):到遠端的 Ping 時間 — 請使用您在負載下預期的最大值。此數值必須大於零。

    2. 傳輸參數

    • 資料大小:要傳輸的負載 — 檔案、備份或資料集。此數值必須大於零。

    3. TCP 協定參數

    • 接收視窗:接收端可緩衝的位元組。65,535 位元組為未縮放的最大值;留空則代表無視窗限制。此數值必須大於零,且最高不得超過 1,073,725,440 位元組。
    • MSS (位元組):最大分段大小(Maximum Segment Size),即每個封包的負載位元組。例如輸入 1,460 可填滿標準乙太網路訊框。此欄位必須是介於 1 到 65,495 位元組之間的整數,留空則代表忽略協定開銷與遺失。
    • 封包遺失 (%):平均封包遺失機率。數值必須介於 0% 到 100% 之間,留空或輸入 0 代表無遺失限制。

    此外,您可以使用顯示小數位數來調整輸出結果的精確度。介面亦提供載入範例按鈕快速填入測試資料,以及清空按鈕重設所有輸入欄位。


    輸出指標與動態系統提示

    計算完成後,工具會將結果呈現在三大區塊中:

    吞吐量與傳輸時間

    • 預期 TCP 吞吐量:核心輸出值,並會動態標示受限於線路容量接收視窗封包遺失
    • 傳輸時間到第一個位元組的時間 (1 RTT)大量傳輸時間
    • 頻寬延遲乘積(BDP)與填滿路徑所需視窗
    • 受視窗限制的吞吐量受遺失限制的吞吐量 (Mathis) 以及扣除開銷後的線路上限
    • 協定效率

    動態系統提示

    根據輸入的數值組合,系統會自動顯示對應的技術提示:

    • 當填滿路徑所需視窗超過 65,535 位元組時,顯示:填滿此路徑需要 ‹window› 的視窗 — 已超出 65,535 位元組的未縮放最大值,因此兩端必須協商 TCP 視窗縮放 (RFC 7323)。
    • 當所需視窗超出 TCP 協定極限時,顯示:填滿此路徑需要 ‹window› — 已超出 TCP 可協商的最大視窗 (1,073,725,440 位元組)。此路徑上的單一連線永遠無法超過 ‹value›
    • 若調整接收視窗可提升速度,顯示:將接收視窗提高到 ‹window› 可讓此傳輸達到最高 ‹value›
    • 當遺失率過高時,顯示:遺失率高於 1% 已超出 Mathis 模型的可靠範圍 — 請將此遺失上限視為樂觀估計。

    核心計算公式與代入步驟

    本工具依據標準網路協定公式進行逐步推導,並於介面展示詳細的公式與數值代入過程:

    • 主公式: 吞吐量 = min(速率 × 效率, 視窗 ÷ RTT, MSS ÷ RTT ÷ √(p)) BDP = 速率 × RTT
    • 協定效率: 協定效率 = MSS ÷ (MSS + 78 B) = mss ÷ frame = eff (其中包含 40 B 封包標頭與 38 B 實體線路開銷)
    • 線路上限: 線路上限 = rate × efficiency = rate × eff = value
    • BDP 計算: BDP = rate × RTT = rate × rtt = bdp = bytes
    • 填滿路徑所需視窗: 填滿路徑所需視窗 = BDP ÷ 8 = bdp → window
    • 視窗上限: 視窗上限 = window ÷ RTT = window ÷ rtt = value
    • 遺失上限 (Mathis): 遺失上限 (Mathis) = MSS ÷ RTT ÷ √(p) = mss ÷ rtt ÷ √(p) = value
    • 預期吞吐量: 預期吞吐量 = 上述上限的最小值 = value → 受限於constraint
    • 傳輸時間: 傳輸時間 = RTT + 8 × size ÷ throughput = rtt + 8 × size ÷ throughput = time

    運作規則、邊界條件與限制

    在分析計算結果時,必須注意以下底層協定規則與模型限制:

    • 十進位與二進位單位差異:本工具所有單位均為十進位(例如 1 kbit = 1,000 位元,1 MB = 1,000,000 位元組)。然而,作業系統與檔案管理器通常以 1024 為底計算二進位單位(例如 100 MB 的檔案在二進位下實際為 100 MiB,約等於 104.86 十進位 MB)。
    • 封包開銷估算:開銷計算是以標準乙太網路為基準,每個封包加上 78 位元組(包含 40 位元組的 TCP/IP 標頭與 38 位元組的實體線路開銷)。
    • Mathis 遺失模型限制:Mathis 模型假設封包遺失是均勻且獨立分佈的,僅在遺失率低於約 1% 時才可靠。若遺失率高於 1%,突發性遺失造成的損害會比模型預測更嚴重,此時計算出的遺失上限應視為樂觀估計。
    • TCP 視窗縮放限制:根據 RFC 7323 規範,未縮放的 TCP 視窗最大值為 65,535 位元組。透過視窗縮放協商,TCP 可支援的最大視窗極限為 1,073,725,440 位元組。若輸入的接收視窗超出此值,系統將會阻擋並顯示錯誤。
    • 模型排除範圍:本工具模擬的是穩態下的單一 TCP 連線。實際網路傳輸中的慢啟動(Slow Start)、壅塞控制動態調整、慢速接收端效能以及 TLS 握手等因素皆不在模型範圍內,因此實際傳輸開始時較慢,且整體表現可能低於計算出的理論上限。

    常見問題 (FAQ)

    為什麼我的傳輸速度比我付費的線路速率還要慢?

    單一 TCP 連線面臨三個獨立的上限,並以最低者為準。協定開銷會使線路本身減少約 5% — 標準乙太網路訊框在線路上傳輸的 1,538 位元組中,僅含有 1,460 位元組的負載。接收視窗會將吞吐量限制在 window ÷ RTT,因此無論線路多快,傳統的 65,535 位元組視窗都會將 50 ms 的路徑限制在約 10.5 Mbit/s。而封包遺失則會將其限制在 (MSS ÷ RTT) ÷ √loss。上方的計算結果會指出哪一個上限正在限制您的數值。

    什麼是頻寬延遲乘積 (BDP)?為什麼它會決定視窗大小?

    BDP (頻寬延遲乘積) — 即線路速率 × 往返時間 — 是指在任何給定時刻傳輸中 (in flight) 的資料量。TCP 最多只能有一個未確認的視窗在傳輸,因此小於 BDP 的視窗會讓管道無法填滿:在 100 Mbit/s 且 RTT 為 50 ms 的情況下,管道可容納 625 kB,而 65,535 位元組的視窗僅能填滿不到十分之一。這就是為什麼快速且長途的路徑需要 TCP 視窗縮放 (RFC 7323),它將可協商的最大值從 65,535 位元組提高到約 1 GB。

    封包遺失是如何限制 TCP 吞吐量的?

    TCP 會將遺失視為網路壅塞,並在每次發生遺失時將其發送速率減半,因此即使在快速路徑上,極低的遺失率也會產生影響。Mathis 模型估算的上限為 (MSS ÷ RTT) ÷ √p — 在 RTT 為 50 ms 且 MSS 為 1,460 位元組的路徑上,若有 0.01% 的遺失,上限約為 23 Mbit/s,不論線路速度為何。該模型假設遺失事件是均勻分佈且獨立的;在遺失率低於約 1% 時,它能很好地貼近現實,而對於突發性遺失,其估算則偏向樂觀。

    這裡的 MB 與我檔案管理器中的 MB 相同嗎?

    不完全相同。本頁面使用網路界慣用的十進位單位:1 kbit = 1,000 位元,1 MB = 1,000,000 位元組。大多數檔案管理器使用以 1024 為底的單位,且經常誤標為 MB — 那裡的「100 MB」檔案通常是 100 MiB ≈ 104.86 十進位 MB,因此傳輸時間會比十進位數值所顯示的時間多出約 5%。在此輸入 104.86 MB 即可完全吻合。