転送時間
一定量のデータを回線へ送り出し始めてから、送り終えるまでにかかる時間である。データのビット数を、回線速度に伝送効率を掛けた実効速度で割って求める。信号が距離を進むためにかかる伝搬遅延とは別の時間であり、回線を速くして縮むのは転送時間の方である。
イマシルちゃんの解説
大きなファイルを送るとき、回線へデータを全部送り出し終えるまでには時間がかかるんだ。
この時間を表す性能の指標を転送時間といって、データの量を回線の速さで割って求めるよ。
データ量はバイト、回線の速さはビット毎秒で書かれることが多いから、まず8倍してビットにそろえるの。
ヘッダーなどの分を差し引くために、回線の速さに伝送効率を掛けてから割ることも多いんだ。
ただし、信号が遠くまで進むのにかかる時間は別物で、回線を速くしても縮まらないよ。
どの時間を足すのかを分けて考えると、通信が遅い原因も見えてくるんだ。
この解説はわかりやすかったですか?
より深い解説
定義と基本の式
転送時間は、ある量のデータを回線へ送り出すのに必要な時間である。回線速度が「1秒に何ビット送れるか」なので、送るビット数をその速さで割れば時間になる。問題文で伝送効率が与えられたら、回線速度に掛けて利用者データを運べる速さ(実効速度)にしてから割る。
転送時間(秒)= データ量(バイト)× 8 ÷(回線速度(bit/s)× 伝送効率)
自作例として、3Mバイト(1Mバイト=10^6バイトとする)のファイルを、20Mbit/sの回線で伝送効率60%として送る。
- ビットにそろえる:3 × 10^6 × 8 = 24 × 10^6ビット
- 実効速度を求める:20Mbit/s × 0.6 = 12Mbit/s
- 割る:24 × 10^6 ÷(12 × 10^6)= 2秒
検算として、求めた時間だけ12Mbit/sで送ると24 × 10^6ビットとなり、ファイルの大きさに一致する。効率を掛け忘れると1.2秒となり、短く見積もってしまう。
単位をそろえる
転送時間の計算では、式そのものより単位のずれで誤ることが多い。計算を始める前に、次の点を確かめる。
| 確かめる点 | よくある誤り | 正しい扱い |
|---|---|---|
| バイトとビット | バイトのまま回線速度で割る | 8倍してビットにする |
| 接頭辞 | 1Kバイトを常に1,000バイトとする | 問題の条件に従う。回線速度のkは1,000 |
| 効率の表し方 | 80%を80のまま掛ける | 0.8として掛ける |
| 時間の単位 | 秒とミリ秒を混ぜて足す | どちらかにそろえてから足す |
接頭辞の違いが答えを変える自作例を示す。512Kバイト(1Kバイト=1,024バイトとする)のデータを、2Mbit/sの回線で効率100%として送る。
512 × 1,024 × 8 = 4,194,304ビット
4,194,304 ÷ 2,000,000 ≒ 2.10秒
1Kバイトを1,000バイトとみなすと、512,000 × 8 ÷ 2,000,000 = 2.048秒となる。約2.4%の差であり、近い値が並ぶ選択肢では誤りにつながる。回線速度のMは10^6であり、2^20ではない。接頭辞の詳しい区別は回線速度の記事で扱っている。
通信にかかる時間の内訳
利用者が感じる「送ってから届くまでの時間」は、転送時間だけではない。1つのパケットが送信元から宛先へ届くまでの時間は、性質の違う四つの時間に分けて考える。
| 成分 | 内容 | 主に何で決まるか |
|---|---|---|
| 伝送遅延 | パケットのビットを回線へ送り出す時間 | パケット長と回線速度 |
| 伝搬遅延 | 信号が媒体を伝わって相手に届くまでの時間 | 距離と媒体中の信号の速さ |
| 処理遅延 | 機器がヘッダーを調べ、転送先を決める時間 | 機器の性能と処理の内容 |
| 待ち行列遅延 | 出力の順番を待つ時間 | 回線の混雑(利用率) |
1パケットを送り出すこの時間は、そのパケットの転送時間そのものである。送り出しを始めた最初のビットは、距離による遅れの後に相手へ届く。最後のビットは、転送時間にその遅れを足した後に届く。
1区間で最後のビットが届くまで = 転送時間 + 伝搬遅延
伝搬遅延 = 距離 ÷ 媒体中の信号の速さ
順番待ちの時間は、回線の利用率が高いほど急に増える。その関係は回線利用率の記事で、M/M/1待ち行列モデルを使って計算している。
距離による遅れとの比較
転送時間は回線速度で変わるが、距離による遅れは回線速度では変わらない。どちらが大きいかは、データの大きさ、回線速度、距離によって入れ替わる。
自作例として、距離1,000kmの光ファイバで、信号の速さを2 × 10^8m/sと仮定する。距離による遅れは次のとおりである。
1,000,000m ÷(2 × 10^8m/s)= 0.005秒 = 5ms
この経路で1,500バイトのフレームを送るときの転送時間を、回線速度ごとに比べる。
| 回線速度 | 1,500バイトの転送時間 | 大きい方 |
|---|---|---|
| 1Gbit/s | 12,000 ÷ 10^9 = 12µs | 距離による遅れ |
| 64kbit/s | 12,000 ÷ 64,000 = 187.5ms | 転送時間 |
高速な回線で小さなデータをやり取りする場合、応答の遅さを決めるのは距離による遅れである。このとき回線をさらに増速しても、往復の時間はほとんど縮まらない。逆に低速な回線や大きなデータでは、転送時間が支配的になり、増速の効果が大きい。「増速したのに応答が速くならない」という問題では、どちらの時間が支配的かを最初に見積もる。
中継を挟む経路
ルータや多くのスイッチは、フレームを最後まで受信してから検査し、次の区間へ送り出す。この方式をストアアンドフォワードという。この場合、区間ごとに転送時間が順に積み上がる。
自作例として、1,000バイトのフレームを「LAN 100Mbit/s → WAN 2Mbit/s → LAN 100Mbit/s」と2台のルータを経由して送る。各ルータの処理時間は0.5ms、距離による遅れと待ち時間は無視する。
| 区間・処理 | 計算 | 時間 |
|---|---|---|
| 送信側LAN | 8,000 ÷ 100,000,000 | 0.08ms |
| ルータ1の処理 | 条件どおり | 0.5ms |
| WAN | 8,000 ÷ 2,000,000 | 4ms |
| ルータ2の処理 | 条件どおり | 0.5ms |
| 受信側LAN | 8,000 ÷ 100,000,000 | 0.08ms |
合計は5.16msである。最も遅いWANの区間が大半を占めることが分かる。受信を終える前に宛先を読んで転送を始めるカットスルー方式のスイッチでは、区間ごとの積み上げは小さくなる。
複数のフレームを続けて送る場合は、各区間が同時に働くため、単純にフレーム数を掛けない。上の経路で10個のフレームを送るとき、ルータの処理時間を無視すると次のようになる。
最初の1個が届くまで = 0.08 + 4 + 0.08 = 4.16ms
残り9個は最も遅い区間の間隔で続く = 9 × 4 = 36ms
合計 = 4.16 + 36 = 40.16ms
10個 × 4.16ms = 41.6msとすると、前のフレームがWANを流れている間に次のフレームが手前のLANを流れていることを無視してしまう。大量のデータでは、転送時間は経路上で最も遅い区間の速さでほぼ決まる。
電文に分けて送る場合
データを決まった長さの電文に分けて送ると、各電文にヘッダーが付き、電文の間に間隔が空くことがある。このときデータ量を回線速度で割るだけでは足りない。電文の数を求め、電文の送信時間と間隔を合計する。
自作例として、50,000バイトのデータを、データ部分250バイト・ヘッダーを含む長さ300バイトの電文で、64kbit/sの回線を使って送る。電文の間隔は2msとする。
- 電文の数:50,000 ÷ 250 = 200個
- 1電文の転送時間:300 × 8 ÷ 64,000 = 0.0375秒
- 電文を送る時間の合計:電文の数 × 0.0375 = 7.5秒
- 間隔の合計:最後の電文の後は数えないので(電文の数 − 1)× 0.002 = 0.398秒
- 合計:7.5 + 0.398 = 7.898秒
データ量だけを回線速度で割ると50,000 × 8 ÷ 64,000 = 6.25秒となり、ヘッダーと間隔の分を落としてしまう。間隔を電文の数と同じ回数として近似するかどうかは、問題の条件に従う。電文の構成とヘッダーの扱いは電文の記事、往復の所要時間との関係はターンアラウンドタイムの記事でも扱っている。
要求と応答の往復
端末から要求を送り、サーバが処理して応答を返すまでの時間は、往路の転送時間、サーバの処理時間、復路の転送時間の合計として求める。条件によっては、距離による遅れや待ち時間も加える。
自作例として、要求200バイト、応答2,000バイト、回線速度1Mbit/s、伝送効率80%、サーバの処理時間15msとする。
実効速度 :1,000,000 × 0.8 = 800,000bit/s
要求の転送時間:200 × 8 ÷ 800,000 = 0.002秒(2ms)
応答の転送時間:2,000 × 8 ÷ 800,000 = 0.02秒(20ms)
合計 :2 + 15 + 20 = 37ms
この例で回線を2倍の2Mbit/sにしても、合計は1 + 15 + 10 = 26msであり、半分にはならない。サーバの処理時間は回線速度と無関係だからである。改善の効果を見積もるときは、どの成分が縮むのかを分けて計算する。
TCPで大きなデータを送る場合
TCPでは、確認応答を待たずに送れる量(ウィンドウ)を送り切ると、応答が届くまで次を送れない。往復遅延(RTT)が大きい経路では、回線速度より先に「ウィンドウサイズ ÷ RTT」が速さの上限になる。
自作例として、ウィンドウを60,000バイト、RTTを10msとする。1秒あたりに送れる量の上限は60,000 ÷ 0.01 = 6,000,000バイト(48Mbit/s)である。100 × 10^6バイトのデータを送ると、次のようになる。
ウィンドウで制限される場合:100 × 10^6 ÷ 6,000,000 ≒ 16.7秒
100Mbit/sの回線を使い切れる場合:100 × 10^6 × 8 ÷ 10^8 = 8秒
回線を1Gbit/sに増速しても、ウィンドウとRTTが同じなら約17秒のままである。帯域遅延積やウィンドウスケールによる対策はスループットの記事で扱っている。
設計と切り分けでの考え方
転送時間の見積りは、バックアップの時間枠、ファイル配布、映像の取り込みなどの設計の根拠になる。必要な回線速度は、許される時間から逆算して決める。
「転送が遅い」という申告では、次の順に分けて考える。
- データ量と実効速度から、理論上の転送時間を求める
- 実際の時間と比べ、差が大きいかを確かめる
- 経路上の各区間の回線速度を書き出し、最も遅い区間を特定する
- 距離による遅れとTCPのウィンドウで決まる上限を見積もる
- 回線利用率と破棄の数から、待ち時間や再送の影響を確かめる
理論値に近ければ、回線速度そのものが上限であり、増速が有効である。理論値より大きく遅ければ、ウィンドウ、機器の処理、混雑など別の原因を疑う。
午後での問われ方
- データ量、回線速度、伝送効率から転送時間を計算させ、許される時間に収まるかを判断させる
- 中継装置を挟む経路で、送信開始から受信完了までの時間を区間ごとに積み上げて求めさせる
- 電文のヘッダーと間隔を考慮した総転送時間を求めさせる
- 回線を増速しても応答時間が期待ほど縮まない理由を、距離による遅れやサーバの処理時間から説明させる
- 遠い拠点との大きなファイルの転送が遅い理由を、ウィンドウとRTTの関係から説明させる
参考資料
実際の試験ではここに出る!全4問
ネットワークスペシャリスト
テクニカルエンジニア(ネットワーク)
- 午前