LINEで現役エンジニアに直接質問してみよう!登録無料

bpsとは?〜1Gbyteのデータを100Mbpsで送るにはどのくらい時間がかかるのか〜

wifi機器を選ぶ時、どのくらい通信速度が速いのか気になると思う。しかし、どのくらいの通信速度があれば十分なのか分からず、通信速度の速い機種を漠然と選んでいるのではないだろうか? 「800Mbps」とか「1733Mbps」とか言われても、速さを具体的にイメージできない。 この記事では、wifi機器を選ぶ時などに具体的にイメージしやすくなる手助けとなるように、データ通信速度の単位である「bps」について解説する。

bpsとは?

bps(bit per second)は、データの通信速度を表す単位で、1秒間に何ビットデータのやり取りができるのかがわかる。 例えば、1000bpsならば、1秒間に1000bitのデータをやり取りできるし、1Kbpsならば、1Kbit(およそ、125byte)のデータを1秒でやり取りできる bpsの先頭に「K,M,G,T」をつけることで、より大きな量も短く表す事ができるようになる
  • Kbps(キロビット毎秒) – bpsの103倍(=1,000bps)
  • Mbps(メガビット毎秒) – bpsの106倍(=1,000,000bps)
  • Gbps(ギガビット毎秒) – bpsの109倍(=1,000,000,000bps)
  • Tbps(テラビット毎秒) – bpsの1012倍(=1,000,000,000,000bps)

1Gbyteのデータを100Mbpsで送るのに必要な時間は?

具体例として、1Gbyteのデータを100Mbpsで送るとどのくらいの時間がかかるのかを試算した。 結論から言うと、約86秒になる。
計算方法

計算を行う際にはすべての値を「bit」に変換する必要がある。単位変換を行うと下記のようになる

  • 1Gbyte = 1024 * 1024 * 1024 * 8 bit = 8589934592bit
  • 100Mbps = 100 * 106 = 100000000bps

なので、転送に必要な時間は 8589934592 / 100000000 ≒ 86秒 となる。

なぜ、データ量は1000単位と1024単位が混在するのだろうか?

詳しくは、この動画を見てほしい。詳しくまとめられている。

bpsはわかりにくい!なんでB/s(バイト毎秒)にしかなったの?

bpsについて気になって調べたことのある人は、1byte = 8bitであることは知っているかと思う。それは、色々なサイト、書籍、学校で「1byte = 8bit」だと言われてきたからだろう。 それはある意味正しい。しかし、間違ってもある。どういう意味なのか解説していく。

1byte ≠ 8bit

コンピュータが登場した当時、「bit」と「byte」はこのように定義されていた
  • bit – コンピュータ環境において、処理を行う最の最も基本的な単位
  • byte – 「0」または「1」を表す情報の最小単位
そう。どこにも「1byte = 8bit」は存在しないのだ。事実、当時は
  • 1byte = 4bit
  • 1byte = 12bit
  • 1byte = 16bit
  • 1byte = 24bit
と定義を行い、処理する様々なコンピュータが存在した。コンピュータそれぞれで定義が異なっていた。 このような中で「インテル」や「AMD」などが「1byte = 8bit」で処理をするCPUを登場させ、それが爆発的に普及した。「1byte = 8bit」が事実上の標準(デファクトスタンダード)になってしまったのだ。 しかし、「1byte = 8bit」となるまでに、「1byte = 4bit」「1byte = 24bit」で処理をするコンピュータは登場していたので、いきなり「1byte = 8bitですよ」と言われてもそれに対応することは不可能だ。 だから、長い間(2008年まで)「1byte = 8bit」は標準規格ではなかった。ただ、私たちが暗黙的に「1byte = 8bitだよね」と思っていただけだ。そのような定義は文章として存在しないにもかかわらず。

「1byte = 8bit」と定義するのがおそすぎだ

未だに「1byte = 8bit」としないコンピュータも存在する。また、「1byte = 8bit」としないプログラミング言語も存在するのだ。 代表的なものは「C++」だ。C++には「1 バイトが 8 ビットだ」という定義はどこにもない。ネットワーク機器には技術上の理由により、このような言語が使われる事が多い。 これは致命的だ。「1byte ≠ 8bit」の言語で「1byte = 8bit」と定義することはとても難しい。しかも、「1byte ≠ 8bit」環境のコンピュータが存在する関係からも、B/sと表記することができないのだ。

まとめ

1Gbyteのデータを100Mbpsで送るには約86秒かかる。データ量には1024、通信量には1000を基準にbit単位に変換し、計算をすると具体的な転送速度を試算できる。 byte単位での転送速度(B/s)が使えないのは、「1byte ≠ 8bit」で処理をするコンピュータや処理が存在するからだ。 通信速度の試算は面倒だが、結構簡単に出すことができる。
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。