帯域と遅延

帯域と遅延とは

ネットワークが「速い」「遅い」と言うとき、実際には性質の異なる2つの指標が混ざっています。

  • 帯域幅(bandwidth)— 単位時間あたりに運べるデータ量。単位は bps(bits per second)。道路の車線の数にあたる
  • 遅延(latency)— データが相手に届くまでの時間。単位は ms(ミリ秒)。道路の距離にあたる

車線を増やしても東京・大阪間の距離は縮まないように、帯域を増やしても遅延は減りません。逆に、遅延が小さくても細い回線では大量データを短時間に運べません。この2つを分けて考えられるかどうかが、性能問題の切り分けの第一歩です。

どちらがボトルネックかで対策が変わる

帯域が足りない遅延が大きい
症状大きなファイルの転送が遅い、動画が止まるクリックの反応が鈍い、ページ表示の初動が遅い
影響を受けやすいもの画像・動画・ダウンロードAPI呼び出しの往復、多数の小さなリクエスト
主な対策圧縮、画像の最適化、不要なデータを送らない距離を縮める(CDN)、往復回数を減らす、まとめて取得する

一般に、ページ表示の体感を左右するのは帯域より遅延であることが多いです。小さなリクエストを何十回も往復させる作りは、回線をいくら太くしても速くなりません。

RTTと往復回数

RTT(Round Trip Time)は、リクエストを送って返事が返るまでの往復時間です。遅延のおよそ2倍にあたります。

通信は往復の積み重ねで成り立っています。[[TCP/IP]] の接続確立には3ウェイハンドシェイクで1往復、HTTPS ならさらに TLS のやり取りで往復が加わり、その後にようやく本来のデータが流れ始めます。RTT が 100ms の相手では、データが1バイトも流れないうちに数百 ms を消費してしまうわけです。

だからこそ「往復回数を減らす」ことが遅延対策の中心になります。[[HTTP/2とHTTP/3]] が1本の接続で複数のリクエストを多重化するのも、HTTP/3 が接続確立の往復を削るのも、この思想の延長にあります。

測ってみる

[[ネットワーク診断コマンド]] を使えば、遅延は簡単に確認できます。

ping example.com        # RTT(往復時間)を測る
traceroute example.com  # 経路のどこで時間がかかっているか見る

ping の結果に出る time=32.1 ms が RTT です。国内サーバーなら数〜数十 ms、海外なら100〜300 ms 程度になります。物理的な距離と経由するルーターの数が、そのまま数字に現れます。

初学者向けポイント

  • 回線速度の「100Mbps」は帯域であって速さの全てではありません。契約を上げても遅延は変わりません
  • 帯域の単位 Mbps(メガビット毎秒)とファイルサイズの MB(メガバイト)は8倍違います。100Mbps は理論上でも毎秒12.5MB程度です
  • 光の速度は有限なので、地球の裏側との遅延はどう頑張っても数十 ms を下回れません。距離を縮めるしかなく、その答えが [[CDN]] です
  • 開発中はローカル環境の遅延がほぼ0のため問題が見えません。ブラウザの開発者ツールで回線速度を絞ってテストしましょう([[Webパフォーマンス最適化]])

関連技術とのつながり

  • [[CDN]] — 配信元を利用者の近くに置き、物理距離による遅延を縮める
  • [[TCP/IP]] — 接続確立のハンドシェイクが往復回数として遅延に効いてくる
  • [[HTTP/2とHTTP/3]] — 多重化と接続確立の短縮で往復回数を減らす
  • [[Webパフォーマンス最適化]] — 帯域削減と遅延削減の両面から表示速度を改善する
  • [[ネットワーク診断コマンド]] — ping や traceroute で遅延を実測する
  • [[TCPの信頼性制御]] — 3ウェイハンドシェイクの手順と、接続直後のスロースタートが「送る前の待ち」になる理由
Q: 帯域幅を増やしても改善しないものはどれ?
- [ ] 大きなファイルのダウンロード時間
- [x] 相手までデータが届くまでの遅延
- [ ] 同時に流せるデータ量
解説: 帯域は道路の車線数、遅延は距離にあたります。車線を増やしても距離は縮まらないため、遅延は帯域では改善しません。

Q: RTTとは何を表す指標?
- [x] リクエストを送って返事が返るまでの往復時間
- [ ] 1秒間に転送できるビット数
- [ ] 接続できる最大クライアント数
解説: RTT(Round Trip Time)は往復時間で、遅延のおよそ2倍にあたります。

Q: 物理的な距離による遅延を縮める代表的な手段はどれ?
- [ ] 回線契約の帯域を上げる
- [x] CDNで配信元を利用者の近くに置く
- [ ] ファイルを分割して送る
解説: 光速の制約があるため距離由来の遅延は減らせません。配信元自体を利用者の近くへ移すCDNが有効です。