基本情報のデータ転送時間の求め方|通信速度・回線利用率・ビットとバイトを整理
転送時間の問題で、8をかけるのか割るのか、毎回わからなくなる。
答えの選択肢が8倍ずれていて、どれを選べばよいか迷ったことはありませんか?
先に答えをお伝えします。データ転送時間は、次の式1つで求められます。
転送時間(秒)= データ量(ビット)÷ 実際に使える通信速度(ビット/秒)
ポイントは2つだけです。
1つ目は、データ量がバイトで書かれていたら、8をかけてビットに直してから割ること。2つ目は、伝送効率が書かれていたら、回線の速度にその割合をかけてから割ることです。
この記事では、ビットとバイトの関係から始めて、伝送効率、回線利用率、必要な回線速度の逆算、単位の落とし穴までを順に説明します。例題はすべてこの記事のために作ったもので、途中の式も省かずに書きます。
科目Aの計算問題がどんな分野に分かれているのかを先に見ておきたい人は、こちらの記事が参考になります。
【関連記事】基本情報の科目A計算問題まとめ|苦手になりやすい8分野と解き方の順番
データ転送時間の基本|ビットとバイトをそろえる¶
データ転送時間とは、あるデータを通信回線で送り終えるまでにかかる時間のことです。ファイルをダウンロードするときの待ち時間を、計算で求めるイメージです。
水道にたとえると分かりやすくなります。
データ量はバケツに入れたい水の量、通信速度は蛇口から1秒間に出る水の量です。バケツがいっぱいになるまでの時間は、水の量を1秒あたりの量で割れば求められます。
ビットとバイトの関係¶
ビットとは、コンピュータが扱う情報の最小単位で、0か1のどちらかを表します。バイトは、そのビットを8個まとめた単位です。
1バイト = 8ビット
問題文では、ファイルの大きさはバイト、通信速度はビット/秒で書かれることがよくあります。単位が違うまま割り算をすると、答えが8倍ずれてしまいます。
bpsの意味と接頭語¶
bpsとは bits per second の略で、1秒間に送れるビット数を表す単位です。100Mbpsなら、1秒間に1億ビットを送れるという意味になります。
数字の前に付くkやMなどの記号を、接頭語と呼びます。よく使うものを表にまとめます。
| 記号 | 読み方 | 大きさ(10進の場合) |
|---|---|---|
| k | キロ | 10の3乗(1,000) |
| M | メガ | 10の6乗(1,000,000) |
| G | ギガ | 10の9乗(1,000,000,000) |
| T | テラ | 10の12乗 |
通信速度の接頭語は、10進の1,000倍ずつで数えるのが一般的です。ファイルの大きさについては、問題文に「1Mバイト=10の6乗バイトとする」のような但し書きが付くことがあるので、必ず確かめてから計算します。
例題1:いちばん基本の転送時間¶
例題です。50Mバイトのファイルを、100Mbpsの回線で送ります。
伝送効率は考えず、回線の速度をすべて使えるものとします。1Mバイトは10の6乗バイトとします。
まず、データ量をビットに直します。50 × 10の6乗 バイト × 8 = 400 × 10の6乗 ビットです。
次に、通信速度で割ります。400 × 10の6乗 ÷(100 × 10の6乗)= 4 なので、転送時間は4秒です。
10の6乗は分子と分母に同じように出てくるので、途中で消してしまえます。50 × 8 ÷ 100 = 4 と、Mを付けたまま計算しても答えは同じです。
伝送効率と回線利用率|回線の速度をすべては使えない¶
実際の通信では、回線の速度をまるごとデータの送信に使えるわけではありません。送りたいデータのほかに、宛先などの制御情報も一緒に送る必要があるからです。
ここで出てくるのが、伝送効率と回線利用率という2つの言葉です。どちらも割合ですが、見ている向きが少し違います。
2つの言葉を表で比べてみます。
| 用語 | 意味 | 計算での使い方 |
|---|---|---|
| 伝送効率 | 回線の速度のうち、データの送信に実際に使える割合 | 回線速度 × 伝送効率 = 実効速度 |
| 回線利用率 | 回線の速度のうち、実際に使われている割合 | 送ったビット数 ÷ 回線が送れるビット数 |
実効速度とは、伝送効率を考えたあとの、実際にデータを送れる速度のことです。転送時間の式で割るのは、この実効速度だと覚えておきましょう。
例題2:伝送効率を考える転送時間¶
例題1と同じ50Mバイトのファイルを、100Mbpsの回線で送ります。今度は伝送効率を80%とします。
まず、実効速度を求めます。100Mbps × 0.8 = 80Mbps です。
データ量は例題1と同じで400Mビットなので、400 ÷ 80 = 5 となり、転送時間は5秒です。伝送効率が下がると、使える速度が減るぶん、転送時間は長くなります。
ここで、伝送効率をかける場所を間違えないことが大切です。速度にかけて小さくするのが正しく、時間にかけて短くしてしまうと逆の答えになります。
迷ったら「効率が悪いほど時間は延びる」という感覚と照らし合わせてください。
例題3:回線利用率を求める¶
回線利用率は、回線がどれくらい混んでいるかを表す数字です。1秒あたりに送ったビット数を、回線が1秒に送れるビット数で割って求めます。
例題です。10Mbpsの回線で、1件2,000バイトの電文を1秒間に500件送っています。
この回線の利用率を求めます。
1秒間に送るデータ量は、2,000バイト × 500件 = 1,000,000バイトです。ビットに直すと、1,000,000 × 8 = 8,000,000ビット、つまり8Mビットになります。
回線は1秒に10Mビット送れるので、8 ÷ 10 = 0.8 です。回線利用率は80%となります。
電文とは、通信でひとまとまりとして送られるデータのことです。問題文に件数と1件あたりの大きさが書かれていたら、まずかけ算で1秒あたりの量を出すのが近道です。
必要な回線速度を逆算する問題¶
転送時間の問題には、時間が分かっていて回線の速度を求める、逆向きの形もあります。式の形は同じなので、どこを求めるかを入れ替えるだけです。
通信速度 = データ量(ビット)÷ 転送時間(秒)
伝送効率が絡むときは、まず実効速度を求めてから、効率で割って回線の速度に戻します。
例題4:1分以内に送るのに必要な速度¶
例題です。600Mバイトのデータを1分以内に送りたいとします。
伝送効率は80%です。回線の速度は最低いくら必要でしょうか。1Mバイトは10の6乗バイトとします。
まず、データ量をビットに直します。600Mバイト × 8 = 4,800Mビットです。
1分は60秒なので、実際に必要な実効速度は、4,800 ÷ 60 = 80Mbps です。
この80Mbpsは、効率80%を考えたあとの速度です。回線の速度をxとすると、x × 0.8 = 80 なので、x = 80 ÷ 0.8 = 100Mbps になります。
逆算のときに効率をかけてしまうと、64Mbpsという小さすぎる答えが出ます。効率が悪いほど、太い回線が必要になると考えると、割り算だと判断できます。
例題5:音声データの大きさを求める¶
転送する前に、データ量そのものを計算させる問題もあります。代表的なのが音声データです。
音声をデジタルデータにするときは、一定の間隔で音の大きさを測り、数値にして記録します。この測ることを標本化(サンプリング)、1秒あたりに測る回数を標本化周波数と呼びます。
例題です。1秒間に8,000回標本化し、1回の値を8ビットで記録する音声があります。
1秒あたりのデータ量は、8,000 × 8 = 64,000ビット、つまり64kビットです。
これをそのまま送り続けるには、64kbpsの速度が必要だと分かります。
さらに10秒分のデータ量をバイトで答えるなら、64,000 × 10 ÷ 8 = 80,000バイトです。ビットからバイトに戻すときは、8で割ります。
例題6:画像データを送る時間¶
画像データも、同じ考え方で大きさを求められます。画像は画素(ピクセル)と呼ばれる小さな点の集まりで、1つの画素の色を何ビットで表すかによって、データ量が決まります。
例題です。横1,000画素、縦800画素の画像があり、1画素を24ビットで表します。この画像を、実効速度8Mbpsの回線で送る時間を求めます。
まず、画素の数を求めます。1,000 × 800 = 800,000画素です。
1画素が24ビットなので、データ量は 800,000 × 24 = 19,200,000ビット、つまり19.2Mビットになります。バイトで表すと、19,200,000 ÷ 8 = 2,400,000バイトで、2.4Mバイトです。
転送時間は、19.2 ÷ 8 = 2.4 なので2.4秒です。画像や音声の問題は、まずデータ量を求める段階と、転送時間を求める段階の2つに分けると、途中で迷わずに済みます。
ここまでの例題で使った式を、もう一度表にまとめておきます。
| 求めるもの | 式 |
|---|---|
| 転送時間 | データ量(ビット)÷(回線速度 × 伝送効率) |
| 実効速度 | 回線速度 × 伝送効率 |
| 回線利用率 | 1秒あたりに送るビット数 ÷ 回線速度 |
| 必要な回線速度 | データ量(ビット)÷ 転送時間 ÷ 伝送効率 |
| 音声のデータ量 | 標本化周波数 × 1回のビット数 × 秒数 |
間違えやすい単位の換算を整理する¶
転送時間の問題で点を落とす原因の多くは、考え方ではなく単位の扱いです。ここでは、つまずきやすい場面を順に見ていきます。
MBとMiBの違い¶
MBは10進で数えた単位で、1MB = 1,000,000バイトです。一方、MiB(メビバイト)は2進で数えた単位で、1MiB = 2の20乗 = 1,048,576バイトになります。
コンピュータの世界では、1KBを1,024バイトとして扱う書き方も昔から使われてきました。そのため、同じMBという表記でも、文脈によって1,000,000バイトの意味にも1,048,576バイトの意味にもなりえます。
試験の計算では、自分の覚えている定義ではなく、問題文の定義に従うのが原則です。但し書きが無く、選択肢の数字がきれいに割り切れる場合は、10進で計算すると想定どおりの答えになることが多いでしょう。
2つの違いがどれくらいの差になるかも見ておきましょう。
100MiBは104,857,600バイトなので、100MBより約5%大きくなります。選択肢が近い値で並んでいるときは、この差で答えが変わることがあります。
時間の単位をそろえる¶
通信速度は1秒あたりの量なので、計算で出てくる時間は秒です。問題文が分や時間で聞いているときは、最後に換算を忘れないようにします。
たとえば、計算結果が7,200秒なら、7,200 ÷ 60 = 120分、120 ÷ 60 = 2時間です。逆に、1時間以内に送るなら、3,600秒として式に入れます。
よくある間違いの一覧¶
ここまでに出てきた間違えやすい点を、表で確認しておきましょう。
| 間違い | 起きること | 防ぎ方 |
|---|---|---|
| バイトをビットに直さずに割る | 答えが8分の1になる | 割る前に単位を書き、そろっているか見る |
| ビットからバイトへ戻すときに8をかける | 答えが64倍ずれる | バイトの方が数は小さくなる、と確かめる |
| 伝送効率を時間にかける | 転送時間が短く出る | 効率は速度にかけて、実効速度を作る |
| 逆算で効率をかける | 必要な速度が小さく出る | 効率が悪いほど太い回線が必要、と考える |
| kとMの桁を取り違える | 答えが1,000倍ずれる | 10の何乗かを書いてから計算する |
| 分と秒をそろえない | 答えが60倍ずれる | 最後に聞かれている単位を確かめる |
どの間違いも、選択肢の中に「ずれた答え」として用意されていることがあります。自分の答えが選択肢にあったからといって安心せず、単位を1回だけ見直す習慣を付けましょう。
計算問題の練習を科目Bにつなげる¶
転送時間の問題は、式そのものは単純です。差がつくのは、数字の横に単位を書き、1行ずつ計算を進める丁寧さだと言えます。
途中式を書く習慣が科目Bでも役に立つ¶
途中式を書きながら進める練習は、科目Bの擬似言語の問題にもそのまま生きます。
擬似言語とは、試験のために決められた書き方でプログラムを表したものです。科目Bでは、変数の値が1行ごとにどう変わるかを、表に書きながら追っていく力が求められます。
科目Bで数値を扱う問題の進め方を知りたい人は、こちらの記事も読んでみてください。
【関連記事】科目Bの数値計算問題の解き方|素数・約数・最大公約数を追うコツ
ネットワーク分野の他の問題でつまずいている人には、こちらの記事が参考になります。転送時間と同じく、仕組みを図や数字で整理する考え方を紹介しています。
【関連記事】基本情報のネットワークが難しい人へ|つまずく場所と問題の解き方
試験全体の出題内容や勉強の進め方をあらためて確かめたい人は、親記事もあわせて読んでおくと安心です。
【関連記事】基本情報技術者試験とは?試験内容・難易度・勉強法を初心者向けに解説
計算を1行ずつ追う力は、プログラムを読む力と同じ土台の上にあります。
私たちの Giji Academy では、擬似言語の講座を記法の基礎から科目B対策まで段階的に用意しています。擬似言語シミュレーターを使えば、プログラムをブラウザ上で1行ずつ実行し、変数の値が変わる様子を確かめられます。講座は擬似言語の講座一覧から始められます。
まとめ¶
データ転送時間は、データ量をビットに直し、実効速度で割れば求められます。実効速度は、回線速度に伝送効率をかけた値です。
回線利用率は、1秒あたりに送ったビット数を、回線が送れるビット数で割った割合です。必要な回線速度を逆算するときは、実効速度を求めてから伝送効率で割ります。
MBとMiBのように定義が揺れる単位は、問題文の但し書きに従いましょう。単位を書きながら計算すれば、転送時間の問題は落ち着いて得点できる分野になります。