1秒あたりパケット数(pps)の計算
入力
| リンクレート | 1 Gbps |
|---|---|
| パケットサイズ | 1,500 B |
| フレーミングオーバーヘッド | 0 B |
1秒あたりパケット数(pps)の計算
リンクのビットレート、パケットサイズ、パケットごとのフレーミングオーバーヘッドから、1秒あたりに送れるパケット数を求めます。小さなパケットでは、表記上のビットレートに達するはるか手前で高速リンクが頭打ちになる理由がわかります。
入力
リンクとパケットの条件
結果
値を入力すると計算結果が表示されます。
1秒あたりパケット数
パケットあたりのビット数
1秒あたりパケット数(pps)
1秒あたりパケット数(pps)とは、リンクやデバイスが移動させる生のビット数ではなく、個々のパケットを処理する速度のことです。これはスイッチ、ルーター、ファイアウォールが負荷の下で処理を維持できるかどうかを決める指標です。ネットワーク機器は、パケットの大小に関係なく、パケット1個ごとに一定量の処理を行うからです。ビット毎秒だけでなく pps を基準にサイジングすることが、表記上のビットレートは十分に見えるデバイスでも、音声トラフィックやゲーム、パケットフラッドに圧倒されないための鍵になります。
計算式
b=(P+F)×8 pps=bR=(P+F)×8Rここで はリンクレート(bps)、 はパケットサイズ(バイト)、 はパケットあたりのフレーミングオーバーヘッド(バイト)、 は回線上の1パケットの総ビット数です。係数 8 は、パケットあたりのバイト数をビットに変換し、ビットレートで割れるようにするためのものです。
計算例。 フルサイズの 1500 バイトパケットを、追加のフレーミングオーバーヘッドなしで運ぶ 1 Gbps のリンクの場合:
b=(1500+0)×8=12000 bits pps=120001000000000≈83333 packets/sつまりギガビットリンクは、大きなパケットなら毎秒約 83,000 個が上限になります。パケットサイズを半分の 750 バイトにすると、同じリンクは同じビットレートのためにほぼ2倍、毎秒約 166,000 個のパケットを転送しなければなりません。
なぜパケットサイズが支配的になるのか
pps はリンクレートをパケットあたりのビット数で割った値なので、パケットサイズに反比例して増減します。下の表は、フレーミングオーバーヘッドを無視した場合の、一般的なペイロードサイズにおける 1 Gbps リンクの最大フレームレートを示しています。
| パケットサイズ | パケットあたりのビット数 | 1秒あたりパケット数 |
|---|---|---|
| 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倍以上に跳ね上がります。それらのパケットはどれもルート検索、アクセス制御チェック、カウンター更新を必要とするため、小さなパケットのフラッドの下では、Gbps の定格ではなくデバイスの pps 容量が先に限界を迎えます。
フレーミングオーバーヘッド
パケットサイズだけでは、実際に回線を占有する量を過小に数えてしまいます。イーサネットでは、すべてのフレームがビットレートを消費する追加バイトで包まれています。
- プリアンブルとスタートデリミタ — 受信側が同期をとるための 8 バイト。
- イーサネットヘッダー — 送信元と宛先の MAC、タイプフィールドからなる 14 バイト。
- フレームチェックシーケンス — エラー検出用 CRC の 4 バイト。
- フレーム間ギャップ — フレーム間に必須のアイドル期間 12 バイト。
これでパケットごとに約 38 バイトが加わります。これを含めると計算上の pps はわずかに下がり、インターフェースベンダーが公表する最悪ケースのフレームレートと一致します。64 バイトのペイロードではオーバーヘッドの割合が大きく、1500 バイトのペイロードではレートを数パーセント削るだけです。イーサネットのクイック選択で 38 バイトの余裕を加えるか、オーバーヘッドをゼロのままにしてペイロードのみで数えてください。
ラインレート対1秒あたりパケット数
ラインレートはリンクの物理的なビットレートで、たとえば 1 Gbps や 10 Gbps です。1秒あたりパケット数は、そのビットレートに指定サイズのパケットがいくつ収まるかを表します。デバイスは大きなパケットに対してはラインレートを維持できても、pps の上限に達すれば小さなパケットを落とすことがあります。そのためデータシートには、Gbps の値とは別に、最小サイズのパケットで測定した pps(多くは Mpps として百万単位で表記)の値が載っています。レイテンシに敏感なワークロードや攻撃を受けやすいワークロードでハードウェアを比較するときは、小パケットの pps の値こそが重要です。
関連する計算
ヘッダーサイズが各パケットの使えるペイロードをどう左右するかを見るには、MTU から MSS の計算 の計算を使ってください。損失のある経路で TCP フローが実際に達成できるデータレートを見積もるには、TCP スループットの計算 の計算を使ってください。ビットレートを bps、Mbps、Gbps、バイト毎秒の間で変換するには、スループット (bps) 換算 の計算を使ってください。
よくある質問 (FAQ)
1秒あたりパケット数(pps)とは何ですか?
1秒あたりパケット数(pps)とは、各パケットの大きさに関係なく、デバイスが個々のパケットを転送する速度のことです。ネットワーク機器は宛先の検索、ルールの適用、カウンターの更新など、パケット1個ごとに一定量の処理を行うため、生のビットレートではなく pps が実質的な上限になることがよくあります。150万 pps の性能を持つスイッチでも、小さなパケットが押し寄せれば、ビットレート上の容量が半分しか埋まっていなくても飽和してしまいます。
なぜ小さなパケットはスループットを下げるのですか?
パケットごとにハードウェア上で同じだけのコストがかかり、小さなパケットは一定のビットレートをはるかに多くの個数に分散させます。1 Gbps のリンクはフルサイズの 1500 バイトパケットを毎秒約 83,000 個運べますが、64 バイトパケットなら毎秒約 149万個になります。小さなパケットは同じビット数に対して約18倍の転送処理を要求するため、DDoS フラッドや VoIP トラフィックは大容量のファイル転送よりもはるかにデバイスへ負荷をかけるのです。
ラインレートと1秒あたりパケット数の違いは何ですか?
ラインレートは物理リンクの生のビットレートで、たとえば 1 Gbps などです。1秒あたりパケット数は、そのビットレートに指定サイズのパケットがいくつ収まるかを表します。大きなパケットに対してラインレートを処理できるデバイスでも、pps の容量を超えれば小さなパケットを落とすことがあります。そのためベンダーは、最悪ケースの小パケット性能として Gbps の値とは別に pps(または Mpps)の値も公表します。
イーサネットのフレーミングオーバーヘッドを含めるべきですか?
回線上で正確に数えるなら、含めるべきです。パケットのペイロードに加えて、イーサネットフレームには 7 バイトのプリアンブル、1 バイトのスタートデリミタ、14 バイトのヘッダー、4 バイトのフレームチェックシーケンス、12 バイトのフレーム間ギャップが付加されます。合計で約 38 バイトです。
このオーバーヘッドを加えると pps の値はわずかに下がり、インターフェースベンダーが公表する最大フレームレートと一致します。ペイロードサイズだけに基づいた値が欲しい場合は、オーバーヘッドをゼロに設定してください。