每秒封包數計算器
輸入
| 鏈路速率 | 1 Gbps |
|---|---|
| 封包大小 | 1,500 B |
| 訊框附加開銷 | 0 B |
每秒封包數計算器
根據鏈路位元速率、封包大小,以及每個封包的訊框附加開銷,算出一條鏈路每秒能承載多少封包。說明為什麼小封包會在遠未達到標稱位元速率之前就把一條高速鏈路塞滿。
輸入
鏈路與封包資訊
結果
輸入數值即可顯示計算結果。
每秒封包數
每個封包的位元數
每秒封包數
每秒封包數(pps)是鏈路或裝置處理個別封包的速率,而非它搬移的原始位元數。它是決定交換器、路由器或防火牆能否在負載下跟上的指標,因為網路硬體對每個封包都要做固定份量的工作,無論該封包是大是小。以 pps(而不只是每秒位元數)來估算規模,才能避免語音流量、遊戲,以及封包洪水壓垮一台標稱位元速率看起來綽綽有餘的裝置。
公式
b=(P+F)×8 pps=bR=(P+F)×8R其中 是鏈路速率(每秒位元數), 是封包大小(位元組), 是每個封包的訊框附加開銷(位元組), 則是一個封包在線路上的總大小(位元)。乘以 8 是為了把每個封包的位元組數換算成位元,好讓它能去除位元速率數字。
計算範例。 一條 1 Gbps 鏈路承載滿載的 1500 位元組封包,且無額外訊框附加開銷:
b=(1500+0)×8=12000 bits pps=120001000000000≈83333 packets/s因此一條 gigabit 鏈路在大封包下的上限約為每秒 83,000 個。若把封包大小減半到 750 位元組,同一條鏈路為了維持相同位元速率,就必須轉送約兩倍的封包——每秒約 166,000 個。
為什麼封包大小最關鍵
由於 pps 是鏈路速率除以每封包位元數,它與封包大小成反比。下表列出一條 1 Gbps 鏈路在常見酬載大小下的最大訊框速率,並忽略訊框附加開銷:
| 封包大小 | 每個封包的位元數 | 每秒封包數 |
|---|---|---|
| 64 B | 512 | ~1,953,000 |
| 128 B | 1,024 | ~977,000 |
| 512 B | 4,096 | ~244,000 |
| 1500 B | 12,000 | ~83,000 |
| 9000 B(巨型訊框) | 72,000 | ~13,900 |
從 1500 位元組封包換到 64 位元組封包,封包速率會增加 20 倍以上,而位元速率維持不變。每一個這些封包仍然需要一次路由查找、一次存取控制檢查,以及一次計數器更新,因此在小封包洪水之下,最先撐不住的是裝置的 pps 容量,而非它的 Gbps 標稱值。
訊框附加開銷
只看封包大小會低估線路上實際占用的量。在乙太網路上,每個訊框都被額外的位元組包覆,而這些位元組仍會消耗位元速率:
- 前導碼與起始定界符——8 位元組,讓接收端同步。
- 乙太網路表頭——14 位元組的來源與目的 MAC,加上類型欄位。
- 訊框檢查序列——4 位元組的錯誤偵測 CRC。
- 訊框間間隔——訊框之間強制保留的 12 位元組閒置期。
這會為每個封包加上約 38 位元組。把它算進去會讓算出的每秒封包數略為降低,並符合介面廠商公布的最壞情況訊框速率。對 64 位元組酬載而言,附加開銷的比例很大;對 1500 位元組酬載而言,它只削去速率的百分之幾。請使用 乙太網路 快速選項加入這 38 位元組的份量,或將附加開銷保留為零以只計酬載。
線路速率與每秒封包數
線路速率是鏈路的實體位元速率,例如 1 Gbps 或 10 Gbps。每秒封包數則是在指定大小下,那個位元速率裡能塞進多少個離散封包。一台裝置可以對大封包維持線路速率,卻仍在到達 pps 上限後丟棄小封包,這正是為什麼規格表會同時標出 Gbps 數字,以及另一個以最小封包量測、通常以百萬計(寫作 Mpps)的 pps 數字。當你為延遲敏感或易遭攻擊的工作負載比較硬體時,真正重要的是小封包的 pps 數字。
相關計算器
若想了解表頭大小如何形塑每個封包的可用酬載,請使用 MTU 轉 MSS 計算機 計算器。若想估算一條 TCP 流在有遺失的路徑上實際能達到的資料速率,請使用 TCP 吞吐量計算機 計算器。若想在 bps、Mbps、Gbps 與每秒位元組之間換算位元速率,請使用 吞吐量(bps)換算器 計算器。
常見問題(FAQ)
每秒封包數是什麼意思?
每秒封包數(pps)是裝置轉送個別封包的速率,與每個封包有多大無關。網路硬體對每個封包都要做固定份量的工作——查找目的地、套用規則、更新計數器——因此真正的瓶頸往往是 pps,而不是原始位元速率。一台標稱 150 萬 pps 的交換器,可能在位元速率容量還空著一半時,就被小封包塞滿。
為什麼小封包會降低吞吐量?
每個封包在硬體上都帶有相同的每封包成本,而小封包會把固定的位元速率攤到多得多的封包上。一條 1 Gbps 鏈路每秒約可承載 83,000 個滿載的 1500 位元組封包,但每秒約可承載 149 萬個 64 位元組封包。較小的封包要為相同的位元數付出將近 18 倍的轉送工作,這正是為什麼 DDoS 洪水攻擊與 VoIP 流量對裝置造成的壓力,遠大於大量檔案傳輸。
線路速率與每秒封包數有什麼差別?
線路速率是實體鏈路的原始位元速率,例如 1 Gbps。每秒封包數則是在指定大小下,那個位元速率裡能塞進多少個離散封包。一台能對大封包維持線路速率的裝置,仍可能在超過其 pps 容量時丟棄小封包,因此廠商會同時標出 Gbps 數字,以及另一個針對最壞情況小封包效能的 pps(或 Mpps)數字。
我應該把乙太網路訊框附加開銷算進去嗎?
若要得到精準的線路上封包數,應該算進去。除了封包酬載之外,每個乙太網路訊框還會加上 7 位元組前導碼、1 位元組起始定界符、14 位元組表頭、4 位元組訊框檢查序列,以及 12 位元組訊框間間隔——合計約 38 位元組。
加入這項附加開銷會讓每秒封包數略為降低,並符合介面廠商公布的最大訊框速率。若只想以酬載大小為基準計算速率,請將附加開銷設為零。