グローバルネットワークのレイテンシ解説
レイテンシは現代のソフトウェアにとって致命的です。ネットワーク層での1ミリ秒の遅延が、アプリケーションでは数秒のラグを引き起こします。これは、リアルタイムツールやAIストリーミングの体験を損なう原因となります。
多くのエンジニアはインターネットを魔法のようなクラウドだと考えていますが、現実は物理的で厳格なものです。
光速の限界
データは海底光ファイバーケーブルを通って伝送されます。光は真空中よりもガラスの中の方が遅く進みます。光ファイバー内を伝わる光の速度は約204,500 km/sです。
太平洋を横断する9,000 kmの経路では、最小遅延は88msとなります。この限界を超えることはできません。物理法則がパフォーマンスの下限を決定するのです。
Anycast vs Unicast
Unicastネットワークでは、各サーバーに固有のIPが1つ割り当てられています。ロンドンのユーザーがニューヨークのサーバーにアクセスする場合、パケットは多くのホップを経て長い距離を移動します。これが高いレイテンシを生みます。
Anycastはこれを変えます。複数のエッジロケーションに同じIPを割り当てます。
- ルーターはBGPを使用して最短経路を見つけます。
- パケットは最も近い物理ノードに送られます。
- 接続はユーザーの近くで開始されます。 これにより、ネットワークを顧客のより近くに配置できます。
パケットロスの危険性
多くの管理者は1%のパケットロスなら問題ないと考えていますが、高速APIにとっては致命的な事態です。
Cubicのような標準的なTCPプロトコルは、パケットロスを完全な混雑として扱います。パケットがドロップすると、システムは速度を30%削減します。ロスが繰り返されると、接続がフルスピードに達することさえできなくなります。
接続がタイムアウトに達すると、待ち時間は毎回倍増します。わずかなドロップが、アプリケーションを数秒間フリーズさせる原因となります。
解決策
現代のチームは、これらの限界を克服するために主に2つのツールを使用しています。
- BBR: このアルゴリズムは、ドロップしたパケットに盲目的に反応するのではなく、実際の帯域幅を測定します。これにより速度を安定させます。
- QUIC: このプロトコルはUDP上で動作します。1つのパケットロスが他のすべてのデータストリームを停止させるのを防ぎます。これにより、従来のTCPで見られるフリーズを回避できます。
これらの物理的およびルーティングのルールを理解することは、より高速なグローバルシステムを構築するのに役立ちます。