What is latency? | How to fix latency

インターネットのレイテンシーは、ユーザーがWebリソースを要求したときに発生する遅延です。低レイテンシーは優れたユーザー体験を構築する上で重要な要素ですが、高レイテンシーはユーザーを遠ざけてしまう可能性があります。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • レイテンシーとは何か、その原因を理解する
  • ネットワークレイテンシー、帯域幅、スループットの違いについて
  • レイテンシーを軽減する方法の詳細

記事のリンクをコピーする

レイテンシーとは?

レイテンシーは、ユーザーのアクションとその結果である応答の間に要する時間を指します。ネットワークレイテンシーとは、特に、ネットワーク内またはインターネット上で発生する遅延を指します。現実的には、レイテンシーとは、ユーザーのアクションに対してWebサイトまたはアプリケーションから応答が返送されるまでの時間です。たとえば、ユーザーがWebページのリンクをクリックしてから、ブラウザーがそのWebページを実際に表示するまでの遅延です。

レイテンシーとは?

インターネット上のデータは光速で移動しますが、インターネットインフラストラクチャ機器による距離や遅延の影響により、レイテンシーを完全に排除することはできません。ただし、レイテンシーを最小化することは可能であり、最小化する必要があるのです。レイテンシーが大きくなると、Webサイトのパフォーマンスが低下し、SEOに悪影響を及ぼし 、さらに、ユーザーがサイトまたはアプリケーションから完全に離れてしまう可能性があります。

インターネットレイテンシーの原因は?

One of the principal causes of network latency is distance, specifically the distance between client devices making requests and the servers responding to those requests. If a website is hosted in a data center in Columbus, Ohio, it will respond fairly quickly to requests from users in Cincinnati (about 100 miles away), likely within 10-15 milliseconds. Users in Los Angeles (about 2,200 miles away), on the other hand, will face longer delays, closer to 50 milliseconds.

数ミリ秒の増加はそれほど多くないようにみえるかもしれません。しかし、クライアントとサーバーが接続を確立するために必要なすべての前後通信、ページの合計サイズと読み込み時間、さらに、データが途中で通過するネットワーク機器の問題が組み合わさり、レイテンシーはさらに増幅します。クライアントが要求を送信後、クライアントデバイスに応答が到達するまでに要する時間は、ラウンドトリップタイム(RTT:Round Trip Time) と呼ばれます。

Data traversing the Internet usually has to cross not just one, but multiple networks. The more networks that an HTTP response needs to pass through, the more opportunities there are for delays. For example, as data packets cross between networks, they go through Internet Exchange Points (IXPs). There, routers have to process and route the data packets, and at times routers may need to break them up into smaller packets, all of which adds a few milliseconds to RTT.

さらに、Webページの構築方法によって、パフォーマンスが低下する可能性があります。大量の重いコンテンツを含むWebページや、複数の第三者からのコンテンツを読み込むWebページは、ブラウザーがそれらを表示するために大きなファイルをダウンロードする必要があるため、動作が遅くなる可能性があります。ユーザーは、アクセスしているWebサイトをホストしているデータセンターのすぐ隣にいる可能性もありますが、Webサイトに複数の高画質の画像がある場合 (たとえば)、画像の読み込みにレイテシーが発生する可能性があります。

ネットワークレイテンシー、スループット、帯域幅

レイテンシー、帯域幅、スループットはすべて相互に関連しますが、これらの測定対象はいずれも異なります。帯域幅は、一定時間内にネットワークを通過できるデータの最大量です。スループットは、一定時間内に実際に通過するデータの平均量です。スループットは、レイテンシーの影響を受けるため、帯域幅と必ずしも同等ではありません。レイテンシーの測定値は時間であり、一定時間内にダウンロードされるデータの量ではありません。

レイテンシーを削減する方法とは?

Use of a CDN (content delivery network) is a major step towards reducing latency. A CDN caches static content to vastly reduce the RTT. (The Cloudflare CDN makes it possible to cache dynamic content as well with Cloudflare Workers.) CDN servers are distributed in multiple locations so that content is stored closer to end users and does not need to travel as far to reach them. This means that loading a webpage will take less time, improving website speed and performance.

また、Web開発者は、レンダリングブロッキングリソースの数を最小限に抑え (JavaScriptを最後に読み込むなど)、画像を最適化して読み込み時間を短縮し、可能な限りファイルサイズを小さくすることもできます。コードの自動縮小は、JavaScriptとCSSファイルのサイズを縮小する方法のひとつです。

最初に特定のアセットを戦略的に読み込むことで、知覚されるレイテンシーを削減することができます。Webページは、スクロールダウンせずにブラウザーウィンドウに収まるWebページ領域 (「above the fold」)を先に読み込むように設定できます。これにより、ユーザーはページの読み込みが完了する前にページに書かれた内容を読み始めることができます。Webページはまた、遅延読み込みとして知られている技術を使用して、必要なだけアセットを読み込むことができます。これらのアプローチは、実際にはネットワークレイテンシーを改善するわけではありませんが、ページ速度に対するユーザーの認識を改善します。

ユーザーがレイテンシーを修正するには?

ネットワークレイテンシーは、サーバー側ではなくユーザー側の問題によって発生することがあります。レイテンシーが一貫して発生する場合には、消費者はいつでも、より多くの帯域幅を購入することができますが、帯域幅はWebサイトのパフォーマンスを保証するものではありません。WiFiではなくEthernetに切り替えると、インターネット接続の一貫性が高まり、通常はインターネットの速度が向上します。また、ユーザーはファームウェアのアップデートを定期的に行い、必要に応じて機器を交換することで、インターネット機器が最新であることを確認する必要があります。