跳转到主要内容
Chinese, Simplified

category

在本文中,您将学习:

  • 往返时间(RTT)的含义及其含义
  • 为什么RTT在网络中很重要?
  • 如何测量和计算RTT
  • 什么影响RTT?
  • 如何降低RTT
  • 使用Amazon CloudFront CDN降低RTT


往返时间是网络中的一个重要指标,可以指示两个端点之间的通信质量。RTT会直接受到一系列架构设计决策的影响,尤其是网络拓扑。

什么是往返时间(RTT)?


在网络中,往返时间(RTT),也称为往返延迟时间(RTD),被定义为一种度量,以毫秒为单位测量发送数据包所需的时间加上接收信号确认所需的时长。该时间延迟包括两个通信端点之间的路径的传播时间。

往返时间信息图

RTT与Ping的区别是什么?


往返时间和ping时间有时被认为是同义词。虽然ping时间可以提供良好的RTT估计,但不同之处在于ping测试通常在使用ICMP数据包的传输协议中执行。相比之下,RTT是在应用层(OSI/ISO的第7层)测量的,包括由更高级别的协议和应用程序(例如通过HTTP进行的加密通信)引起的额外处理延迟。

RTT与延迟——有什么区别?


网络延迟与RTT密切相关,但不同。延迟是数据包从发送端点传输到接收端点所需的时间(仅一次行程)。许多因素可能会影响这条路。

延迟并不一定等于RTT的一半,因为任何两个给定端点之间的延迟都可能是不对称的。RTT包括回声端点处的处理延迟。

什么是好的往返时间?


每种类型的应用程序都有自己的要求,几乎不可能给出具体的时间。一个应用程序可以忍受的东西可能对另一个应用来说是无法忍受的。

例如,AWS WorkSpaces是一种完全托管和持久的桌面虚拟化服务,使用户能够访问他们的应用程序和所需的资源,其RTT阈值如下:

  • 从客户端网络到WorkSpaces所在的AWS区域的往返时间(RTT)应小于100ms。
  • 如果RTT在100ms和200ms之间,则用户可以访问WorkSpace,但性能会受到影响。
  • 如果RTT在200ms和375ms之间,则性能会降低。
  • 如果RTT超过375ms,WorkSpaces客户端连接将终止。

因此,基于此,您的用户应该有100ms的RTT来正常使用您的应用程序,并且在应用程序降低服务质量之前最多有200ms的RTT。

为什么RTT在网络中很重要?


网络往返时间往往会对您在交互式应用程序(如网页浏览)中的最终用户体验产生很大影响。网络管理员可以使用它来诊断网络连接的速度和可靠性,如果RTT太高,许多web应用程序会断开连接。

如何计算或测量RTT


RTT计算


计算RTT的最佳方法是了解当用户在浏览器中加载网页时,他们必须首先发出加载页面的请求。这需要至少一个RTT来获得对用户的响应。

RTT是一个复杂的指标,有几个组成部分。它包括传播延迟、处理延迟、排队延迟和编码延迟。但通常处理延迟、排队延迟和编码延迟的值可以忽略不计。

传播延迟是请求到达目的地所花费的时间长度。传播延迟通常是RTT的主要组成部分,您可以通过一个简单的公式得到RTT的良好估计:RTT=2 x传播延迟。

传播延迟信息图

您还应该明白,加载整个页面通常需要多个请求。页面可能由图像、脚本等组成,每个都需要单独的请求才能加载。如果页面由20个组件组成,则可能需要RTT x 20来请求整个页面。

测量RTT


虽然这不是估计RTT的最准确方法,但用于测量RTT的最常用工具是ping命令。ping命令向目标发送Internet控制消息协议(ICMP)回显请求数据包,然后报告接收响应信号所需的时间(以毫秒为单位)。正如您在下面看到的,它可以在Windows命令行(CMD)中通过键入ping“服务器ip或链接”来使用。

您可以使用以下Linux命令来测量指定服务器的平均、最大和最小RTT。

 

ping -c 20 -i 1 "domain name or ip address"
\*example
ping -c 20 -i 1 google.com

如果您需要了解从起点到源服务器的“路由”的更多信息,可以使用traceroute命令获取路由中每一跳所需的时间信息。


影响RTT的因素


以下是一些可能影响RTT的基本因素:

  • 物理距离——起点(原点)和终点(用户计算机)之间的距离是一个主要因素,因为光速的限制,光速是数据包在这两点之间传播的最大速度。这只能通过将内容移近用户来减少。
  • 源服务器的响应时间——服务器处理和响应请求所需的时间是网络延迟的潜在瓶颈。当服务器被请求淹没时,例如在DDoS攻击期间,其有效响应的能力可能会受到抑制,从而导致RTT增加。
  • 传输介质(电缆)——连接方式会影响连接的速度;通过光纤进行的连接将与通过铜进行的连接表现不同。同样,通过无线频率建立的连接将与卫星通信的行为不同。
  • 一个地区的网络流量——局域网上的流量在连接到达公共互联网之前可能会成为连接的瓶颈。

如何降低RTT


本节分为两部分——通用和CDN,因为CDN是一种降低整体RTT的单独方法。

降低RTT的一般方法:

  • 减少提供资源的唯一主机名的数量可以减少浏览器必须进行的DNS解析的数量。
  • 最小化从一个URL到另一个URL的HTTP/S重定向可以减少额外的RTT和用户的等待时间。
  • 删除导致404/410错误的“断开链接”或请求,避免浪费请求。
  • 将外部脚本组合到尽可能少的文件中可以减少RTT和下载其他资源的延迟。
  • 将外部样式表和文件组合成尽可能少的文件,可以减少RTT和下载其他资源的延迟。将图像合并到尽可能少的文件中。
  • 浏览器缓存:这可以通过利用浏览器缓存来减少RTT。浏览器将在本地缓存网站的某些资源,以帮助提高其RTT。


让内容更贴近用户:在用户附近创建一个服务器,或者您可以使用CDN,当特定区域对特定内容有需求时,CDN可以自动为您完成此操作。在下面了解更多信息。

使用Amazon CloudFront CDN分发降低RTT


CDN(内容分发网络)最初设计用来解决的问题之一是减少RTT。他们在很大程度上取得了成功,现在可以合理地预期,在引入CDN服务后,您的RTT将降低50%或更多。您将在下面的部分中了解这是可能的主要原因。

StormIT建议使用基于云的CDN,如Amazon CloudFront,这是一个由战略性放置的服务器组成的网络,每个服务器都保存一份您的内容。CloudFront可与任何AWS源无缝协作,如Amazon S3、Amazon EC2、Elastic Load Balancing或任何自定义HTTP源。

CDN能够通过以下方式解决影响RTT的因素:

  • 存在点(PoP)——CDN维护着一个地理上分散的PoP网络——数据中心,每个数据中心都包含网站内容的缓存副本,负责与附近的网站访问者进行通信。它们减少了信号必须传输的距离和到达服务器所需的网络跳数。
  • 负载分布——在高流量时段,CDN通过具有较低网络拥塞的备份边缘服务器路由请求,加快服务器响应时间并减少RTT。
    Web缓存——CDN将HTML、媒体甚至动态内容缓存在用户附近的PoP上。在许多情况下,用户的请求可以通过本地PoP来解决,不需要传输到源服务器,从而降低了RTT。
  • 可扩展性——CDN服务在云中运行,实现了高可扩展性和处理大量用户请求的能力。这消除了服务器拥塞的可能性。
    CDN具有更多功能,包括安全性和降低成本。在我们的文章中了解更多信息-什么是CDN以及为什么使用它?


什么是cdn

 

本文地址
最后修改
星期五, 四月 18, 2025 - 10:10
Article