What is latency? | How to fix latency

Internet 延迟是用户请求 Web 资源时发生的延迟。低延迟对于建立良好的用户体验非常重要,而高延迟则会导致用户离开。

学习目标

阅读本文后,您将能够:

  • 了解什么是延迟以及造成延迟的原因
  • 解释网络延迟、带宽和吞吐量之间的区别
  • 了解如何减少延迟

复制文章链接

什么是延迟?

延迟是用户操作与结果响应之间经过的时间。网络延迟特指网络内部或 Internet 上发生的延迟。实际上,延迟是指用户操作与网站或应用程序对此操作做出响应之间的时间,例如,用户点击网页链接到浏览器显示该网页之间的延迟时间。

什么是延迟?

尽管 Internet 上的数据以光速传播,但由于 Internet 基础设施设备造成的距离和延迟的影响,延迟永远无法完全消除。但延迟可以并且应该最小化。大量的延迟会导致网站性能下降, 对 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)

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.

此外,网页的构建方式也可能导致性能降低。具有大量内容或从多个第三方加载内容的网页可能运行缓慢,因为浏览器必须下载大文件才能显示它们。用户可能就在其要访问的网站的托管数据中心旁边,但是,如果网站包含多张高清图片(举例来说),加载图像时仍然可能会有一些延迟。

网络延迟、吞吐量和带宽

延迟、带宽和吞吐量都相互关联,但是它们衡量的是不同的事物。带宽是在任何给定时间可以通过网络的最大数据量。吞吐量是给定时间段内实际通过的平均数据量。吞吐量不一定等于带宽,因为它会受到延迟的影响。延迟是时间的度量,而不是某时段内下载的数据量。

如何减少延迟?

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 文件大小的一种方法。

通过策略性地首先加载某些资产,可以减少感知到的延迟。可以将网页配置为首先加载页面的上半版版面区域,以便用户在页面加载完之前就可以开始与页面进行交互(上半版版面指用户向下滚动之前在浏览器窗口中显示的内容)。网页也可以使用延迟加载技术,仅在需要时加载资产。这些方法实际上并没有改善网络延迟,但是确实改善了用户对页面速度的感知。

用户如何解决延迟问题?

有时,网络延迟是由用户端而非服务器端的问题引起的。尽管带宽不能保证网站性能,但如果持续存在延迟问题,消费者始终可以选择购买更多带宽。切换到以太网而不是 WiFi 将使 Internet 连接更加稳定,并且通常会提高 Internet 速度。用户还应定期应用固件更新并在必要时完全更换设备,以确保其互联网设备最新。