MENU
「安心のセキュリティをお得な価格」でご提供!
Fortinet商品など
ENGAGE fotinet

パケットをバイトに変換する計算方法について

パケット数から通信量を求めるには、パケット数に1パケットあたりのサイズを掛けるのが基本です。

計算式は次のとおりです。

総バイト数 = パケット数 × 1パケットあたりのサイズ

たとえば、1パケットあたりのサイズが1,000バイトで、パケット数が10,000パケットの場合は、次のように計算します。

10,000パケット × 1,000バイト = 10,000,000バイト

つまり、この場合の通信量は10,000,000バイトです。

ただし、ここで注意したいのは、パケット数だけでは正確なバイト数は分からないという点です。

なぜなら、1パケットあたりのサイズは通信内容やプロトコルによって変わるためです。

パケット数だけでは通信量は分からない

1パケットあたりのサイズは一定ではない

パケットは、常に同じサイズで送受信されるわけではありません。

たとえば、通信内容によって次のようにパケットサイズは変わります。

64バイト程度の小さなパケット
500バイト程度のパケット
1,000バイト程度のパケット
1,500バイト程度のパケット

そのため、同じパケット数でも、1パケットあたりのサイズが違えば、総通信量は大きく変わります。

たとえば、次の2つを比べてみます。

10,000パケット × 100バイト = 1,000,000バイト

10,000パケット × 1,500バイト = 15,000,000バイト

どちらも10,000パケットですが、通信量は大きく異なります。

つまり、パケット数をバイト数に換算するには、パケット数だけでなく、1パケットあたりのサイズも必要です。

平均パケットサイズを使って計算する

実務では平均値を使うことが多い

実際のネットワーク通信では、すべてのパケットが同じサイズとは限りません。

Webサイトの閲覧、動画視聴、ファイルダウンロード、オンラインゲーム、API通信などでは、それぞれパケットサイズが異なります。

そのため、実務では次のように平均パケットサイズを使って計算することが多いです。

総バイト数 = 総パケット数 × 平均パケットサイズ

たとえば、次の条件で考えてみます。

総パケット数:250,000パケット
平均パケットサイズ:1,000バイト

計算式は次のとおりです。

250,000 × 1,000 = 250,000,000バイト

つまり、通信量は250,000,000バイトです。

MBに変換する場合

バイト数をMBに変換する場合、通信量の説明では一般的に1,000単位で計算します。

1MB = 1,000,000バイト

そのため、250,000,000バイトをMBに変換すると、次のようになります。

250,000,000 ÷ 1,000,000 = 250MB

したがって、250,000パケットで平均パケットサイズが1,000バイトの場合、通信量は約250MBです。

ppsからbpsに変換する方法

ppsとは

ネットワークでは、ppsという単位が使われることがあります。

ppsは、packets per secondの略で、1秒あたりに処理・送受信されるパケット数を表します。

たとえば、

10,000pps

であれば、1秒間に10,000パケットが流れているという意味です。

ppsからバイト毎秒を求める

ppsから1秒あたりのバイト数を求めるには、次の式を使います。

バイト/秒 = pps × 平均パケットサイズ

たとえば、次の条件で計算します。

pps:10,000pps
平均パケットサイズ:1,000バイト

この場合は、

10,000 × 1,000 = 10,000,000バイト/秒

となります。

つまり、1秒あたり10,000,000バイトの通信量です。

ppsからbpsを求める

ネットワーク速度では、バイトではなくビットで表すことが一般的です。

1バイトは8ビットなので、バイトをビットに変換するには8を掛けます。

bps = pps × 平均パケットサイズ × 8

たとえば、10,000ppsで平均パケットサイズが1,000バイトの場合は、次のようになります。

10,000 × 1,000 × 8 = 80,000,000bps

つまり、80Mbpsです。

このように、ppsをbpsに変換する場合は、最後に8を掛けることが重要です。

バイト・KB・MB・GBの換算方法

通信量では1,000単位で計算することが多い

通信量や回線速度の説明では、一般的に1,000単位で計算します。

1KB = 1,000バイト
1MB = 1,000,000バイト
1GB = 1,000,000,000バイト

たとえば、120,000,000バイトをMBに変換する場合は、次のように計算します。

120,000,000 ÷ 1,000,000 = 120MB

この場合、通信量は120MBです。

KiB・MiB・GiBとの違い

一方で、コンピューター内部の容量や一部のツールでは、1,024単位で計算されることがあります。

1KiB = 1,024バイト
1MiB = 1,048,576バイト
1GiB = 1,073,741,824バイト

たとえば、120,000,000バイトをMiBで計算すると、次のようになります。

120,000,000 ÷ 1,048,576 ≒ 114.44MiB

通信量として一般向けに説明する場合は、MB・GBは1,000単位で説明することが多いです。

ただし、技術的に厳密に書く場合は、MBとMiB、GBとGiBを区別すると分かりやすくなります。

パケットサイズを考えるときの注意点

パケットとフレームは厳密には異なる

一般的には「パケット」という言葉でまとめて説明されることが多いですが、技術的には階層によって呼び方が異なります。

レイヤー2:Ethernetフレーム
レイヤー3:IPパケット / IPデータグラム
レイヤー4:TCPセグメント / UDPデータグラム

そのため、「パケットサイズ」と言っても、どの階層のサイズを指しているのかによって、計算結果が変わります。

たとえば、次のような違いがあります。

アプリケーションデータだけのサイズ
TCP/UDPヘッダーを含むサイズ
IPヘッダーを含むサイズ
Ethernetヘッダーを含むサイズ
FCSや物理層のオーバーヘッドまで含むサイズ

実務で正確な通信量を計算する場合は、どの範囲のバイト数を使っているのかを確認する必要があります。

ヘッダーを含めるかどうかで結果が変わる

通信では、実際のデータ本体だけでなく、通信制御に必要なヘッダー情報も付加されます。

代表的なヘッダーサイズは次のとおりです。

IPv4ヘッダー:通常20バイト
TCPヘッダー:最小20バイト
UDPヘッダー:8バイト
Ethernetヘッダー:通常14バイト
FCS:4バイト

たとえば、IPv4 + TCPでオプションがない場合、IPヘッダーとTCPヘッダーだけで次のサイズになります。

IPv4ヘッダー20バイト + TCPヘッダー20バイト = 40バイト

そのため、MTU 1,500バイトの環境でIPv4 + TCP通信を行う場合、TCPのデータ部分は概算で次のようになります。

1,500 - 20 - 20 = 1,460バイト

つまり、IPパケット全体が1,500バイトでも、そのすべてがアプリケーションデータとして使えるわけではありません。

MTUと1,500バイトの関係

MTUとは

MTUとは、Maximum Transmission Unitの略で、1つのパケットまたはフレームで運べる最大転送単位を意味します。

一般的なEthernet環境では、MTUは1,500バイトに設定されていることが多いです。

ただし、この1,500バイトは、多くの場合、Ethernetで運ばれるIPパケット部分の最大サイズを指します。

Ethernetフレーム全体では1,500バイトより大きくなる

EthernetでMTU 1,500バイトという場合でも、Ethernetフレーム全体のサイズが1,500バイトになるわけではありません。

たとえば、IPパケット部分が1,500バイトの場合、Ethernetフレームとしては次のようになります。

Ethernetヘッダー:14バイト
IPパケット:1,500バイト
FCS:4バイト

計算すると、次のとおりです。

14 + 1,500 + 4 = 1,518バイト

つまり、IPパケットが1,500バイトの場合、Ethernetフレームとしては1,518バイトになります。

さらに厳密に物理回線上の消費量を考える場合は、プリアンブル、インターフレームギャップ、VLANタグ、PPPoE、VPN、トンネルなどのオーバーヘッドも考慮する必要があります。

実際の計算例

例1:1パケットあたり1,500バイトの場合

次の条件で考えます。

パケット数:50,000パケット
1パケットあたりのサイズ:1,500バイト

計算式は次のとおりです。

50,000 × 1,500 = 75,000,000バイト

MBに変換すると、次のようになります。

75,000,000 ÷ 1,000,000 = 75MB

つまり、50,000パケットで1パケットあたり1,500バイトの場合、通信量は約75MBです。

ただし、この1,500バイトがIPパケットのサイズなのか、Ethernetフレーム全体のサイズなのかによって、厳密な意味は変わります。

例2:平均パケットサイズが800バイトの場合

次の条件で計算します。

パケット数:300,000パケット
平均パケットサイズ:800バイト

計算式は次のとおりです。

300,000 × 800 = 240,000,000バイト

MBに変換すると、次のようになります。

240,000,000 ÷ 1,000,000 = 240MB

したがって、300,000パケットで平均パケットサイズが800バイトの場合、通信量は約240MBです。

例3:ppsからMbpsを求める場合

次の条件で計算します。

pps:20,000pps
平均パケットサイズ:500バイト

まず、1秒あたりのバイト数を求めます。

20,000 × 500 = 10,000,000バイト/秒

次に、バイトをビットに変換するために8を掛けます。

10,000,000 × 8 = 80,000,000bps

つまり、通信速度は80Mbpsです。

よくある誤解

パケット数が多いほど通信量が大きいとは限らない

パケット数が多いと通信量も多いように見えますが、必ずしもそうとは限りません。

たとえば、次の2つを比較します。

A:100,000パケット × 100バイト = 10,000,000バイト
B:10,000パケット × 1,500バイト = 15,000,000バイト

Aの方がパケット数は多いですが、通信量はBの方が大きくなります。

つまり、通信量を確認する場合は、パケット数だけでなく、パケットサイズも見る必要があるということです。

1,500バイトすべてがデータ本体ではない

MTU 1,500バイトという数字を見ると、1,500バイトすべてがアプリケーションデータだと思われることがあります。

しかし、実際にはIPヘッダーやTCP/UDPヘッダーが含まれます。

たとえば、IPv4 + TCPでオプションなしの場合、ヘッダーだけで40バイト使われます。

IPv4ヘッダー20バイト + TCPヘッダー20バイト = 40バイト

そのため、TCPのデータ部分は概算で次のようになります。

1,500 - 40 = 1,460バイト

このように、通信量を正確に考える場合は、ヘッダー部分も意識する必要があります。

実務で使える計算式まとめ

総バイト数を求める式

総バイト数 = パケット数 × 平均パケットサイズ

パケット数から総通信量を求める場合に使います。

バイト毎秒を求める式

バイト/秒 = pps × 平均パケットサイズ

1秒あたりの通信量をバイト単位で求める場合に使います。

bpsを求める式

bps = pps × 平均パケットサイズ × 8

ネットワーク速度としてビット単位に変換する場合に使います。

MBに変換する式

MB = バイト数 ÷ 1,000,000

通信量をMBで表す場合に使います。

GBに変換する式

GB = バイト数 ÷ 1,000,000,000

通信量をGBで表す場合に使います。

まとめ

パケット数からバイト数を求めるには、次の式を使います。

総バイト数 = パケット数 × 平均パケットサイズ

ただし、パケット数だけでは通信量は分かりません。

1パケットあたりのサイズは通信内容やプロトコルによって変わるため、正確に計算するには平均パケットサイズが必要です。

また、通信速度としてbpsを求める場合は、次の式を使います。

bps = pps × 平均パケットサイズ × 8

ここで使うパケットサイズが、IPパケットのサイズなのか、Ethernetフレーム全体のサイズなのか、アプリケーションデータだけのサイズなのかによって、計算結果は変わります。

そのため、実務で正確な通信量を出す場合は、単にパケット数を見るだけでなく、どの範囲のバイト数を計算対象にしているのかを確認することが重要です。

以上、パケットをバイトに変換する計算方法についてでした。

最後までお読みいただき、ありがとうございました。

カテゴリ一覧

ページトップへ