レイテンシー(latency)とは、ユーザーのアクションとその後の応答の間に経過する時間です。
ネットワークでは、遅延とは、ネットワーク内またはインターネット上で発生する遅延を正確に指します。
実際には、ユーザーが何らかのアクションを実行してから、サイトまたはアプリからアクションへの応答が返されるまでの時間です。
レイテンシーの意味をよりよく理解するための例を考えてみましょう。
ユーザーがWebページへのリンクをクリックし、ブラウザがそのクリックの300ミリ秒後にそのWebページを表示するとします。この300ミリ秒はどういう意味でしょうか?ユーザーのクリックとブラウザーの応答の間の遅延(レイテンシーとも呼ばれます)と言えます。
レイテンシーは、データが1つのポイントから別のポイントに送信されるのにかかる時間と考えることができます。
このように、データがターゲットに到達するためにコードやネットワークなどを通過する必要があるのは、物理的な距離によって異なります。
一方、帯域幅は一定期間のデータ転送速度です。名前が示すように、帯域幅は通信帯域の幅です。通信帯域が広いほど、より多くのデータが通信帯域を流れることができます。
同時に送受信できるデータの量に制限されず、遅延が許す限り速く移動できます。
当然ながら、物理的な場所によっては、一部のユーザーにとってサイトの実行速度が低下することになります。
世界各地のユーザーにとって、この速度をいかに向上させるかが、グローバルレイテンシーの低減につながるのです。
データ送受信のレイテンシーに影響を与える7つの主な要因は次のとおりです。
伝送媒体: WANや光ファイバーケーブルなどの媒体にはすべて制限があり、その性質上、遅延に影響を与える可能性があります。たとえば、T1回線を通過するパケットは、CAT5ケーブルを通過するパケットよりも遅延が少ないと予想できます。
パケットサイズ:大きなパケットは、小さなパケットよりも往復に時間がかかります。
伝搬遅延:伝搬は、パケットが光速で1つのソースから別のソースに移動するのにかかる時間です。各ゲートウェイノードがパケットのヘッダーを検査し、場合によっては変更する必要がある場合(存続時間(TTL)フィールドのホップカウントを変更するなど)、これにより遅延が増加します。
パケット損失とジッター:遅延は、宛先に到達できないパケットの割合が高い場合にも発生する可能性があります。また、一部のパケットが1つのシステムから別のシステムに移動するのにかかる時間の過度の変動が原因で発生します。
ルーター:ルーターは、パケットのヘッダー情報を分析するのに時間がかかります。場合によっては、追加情報を追加することもあります。パケットが1つのルーターから別のルーターに移動するたびに、待ち時間が長くなります。
信号強度:信号が弱く、リピーターによってブーストする必要がある場合、これにより遅延が発生する可能性があります。
ストレージ遅延:パケットが保存またはアクセスされると、スイッチやブリッジなどの中間デバイスによってストレージ遅延が発生する可能性があります。
さまざまな手法を使用して、レイテンシを短縮できます。次にいくつかの例を示します。
HTTP/2の使用: HTTP/2は、送信者から受信者へのラウンドトリップの数を減らし、並列転送を行うことで、サーバーの待ち時間を短縮するのに役立ちます。
外部HTTPリクエストの数を減らす:これは画像だけでなく、CSSやJSファイルなどの他の外部リソースにも当てはまります。自分以外のサーバーから情報を参照する場合は、外部HTTPリクエストを作成しています。これにより、サードパーティサーバーの速度と品質によっては、Webサイトの遅延が大幅に増加する可能性があります。
ソフトウェア定義のリアルタイムネットワークの使用: AgoraのSD-RTNテクノロジーは、コンテンツをエンドユーザーに配信するための専用ネットワークであるという点で、従来のCDNのように機能します。ただし、CDNの機能をはるかに超えており、超低遅延と将来のリアルタイムエンゲージメントに必要なインタラクティブなエクスペリエンスを提供するようにゼロから設計されています。
利用シーン・開発環境にあったSDKでクイックスタート
プリフェッチ方法の使用:リソースのプリフェッチは、基本的にレイテンシーの量を減らすことはありませんが、サイトの知覚パフォーマンスを向上させます。これは、ユーザーが特定のWebページを閲覧しているときに、遅延の多いプロセスがバックグラウンドで発生するためです。
ブラウザキャッシュの使用:ブラウザキャッシュを使用すると、特定のWebサイトリソースをローカルにキャッシュできます。これにより、待ち時間が短縮され、サーバーに返されるリクエストの数が減ります。