0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是网络延迟?如何测量延迟?

Linux爱好者 来源:Linux爱好者 2024-03-07 11:38 次阅读

作者:MobotStone

1、什么是延迟呢?

延迟其实就是我们在网页浏览或者使用应用时,从我们点击请求到服务器返回结果给我们之间的时间差。就像你在跟朋友打电话,你说完话后,朋友听到并回应你所说话的时间差一样。

我们的最终目标是创建一个系统,让这个时间差变得尽可能短,也就是实现零延迟。但现实世界中,有各种各样的问题会导致系统出现延迟。如果系统的延迟很低,那么我们请求得到响应的时间就会很短。每次你在浏览器中输入网址或者点击一个链接,浏览器都会向服务器发出一个请求信号,然后服务器需要处理这个请求,获取需要的信息,最后把这些信息返回给你的浏览器。整个过程中就会有一些时间差,这就是延迟。所以,我们要不断努力降低延迟,提高系统的响应速度。

21726a4c-db71-11ee-a297-92fbcf53809c.png

2、延迟是怎么回事呢?

延迟其实就是你在请求后需要等待的时间,就像等待快递送到家门一样。来看个例子,更容易理解它是怎么运作的。

想象你正在和一个电子商务网站(比如淘宝)互动,你喜欢一个商品,然后把它加入购物车。现在,当你点击“添加到购物车”按钮时,下面的事情会依次发生:

你点击了“添加到购物车”按钮,这时就像你启动了一个计时器,浏览器开始向服务器发请求。

服务器收到请求,然后开始处理它,就像你的快递订单到了快递中心一样。

服务器处理完后,回应你的请求,信息到达你的浏览器,商品成功添加到购物车中,就像你的包裹送到了家门口一样。

你可以想象在第一步按下了计时器的启动按钮,然后在最后一步停下,这段时间就是延迟。希望这个例子能让你更容易理解延迟是如何运作的。

2177d680-db71-11ee-a297-92fbcf53809c.png

3、延迟都是怎么来的呢?

现在,你应该已经理解了要点,但是你知道是什么造成了延迟吗?网络中的延迟受多种因素影响,它们在确定延迟的具体数值时扮演着关键角色。其中一个主要因素是出站呼叫。回到之前添加购物车的例子,当你点击浏览器上的按钮时,请求会发送到后端的某个服务器,这个服务器可能会在内部调用多个服务来进行计算(可能是同时或者按顺序),然后等待它们的响应或将它们汇总。所有这些因素都会增加呼叫的延迟。但总结起来,主要由以下几个因素引起:

传输介质:传输介质指的是信息在起点和终点之间的物理路径。系统的延迟会取决于用于传输请求的介质类型。广域网、光纤电缆等传输介质都广泛应用,但每种介质都有自己的限制,这会影响延迟。

传播延迟:这指的是数据包从一个源传播到另一个源所需的时间。系统的延迟很大程度上取决于通信节点之间的距离。节点距离越远,系统的延迟就会越高。

路由器:路由器在通信中扮演着重要的角色,它们需要一些时间来分析数据包的标头信息。延迟取决于路由器处理请求的效率。每一次路由器到路由器的跳跃都会增加系统的延迟。

存储延迟:系统的延迟还受到所使用的存储系统类型的影响,因为处理和返回数据可能需要一些时间。因此,访问存储中的数据会增加系统的延迟。

4、如何测量延迟?

要量化延迟其实很简单,我们有几种常用的方法,让我们来看看最常见的三种:

Ping(网络探测):Ping是测量延迟最常用的工具之一。它的原理是向目标地址发送一个小数据包,然后查看接收到响应所需的时间。更快的Ping意味着连接更敏捷,响应更迅速。

2181cf64-db71-11ee-a297-92fbcf53809c.png

Traceroute(路径跟踪):Traceroute是另一个用于测试延迟的工具。它也使用数据包,但不止如此,它还会逐一记录数据包从源到目的地经过的每个中间节点所需的时间。这有助于识别网络中的延迟点。

MTR(网络诊断工具):MTR是Ping和Traceroute的超级组合。MTR提供了详尽的报告,列出了从一个端点到另一个端点所需的每个网络节点的信息。这份报告通常包括了各种细节,比如丢包率、平均延迟等,非常有助于分析网络性能。

5、延迟优化

延迟是系统性能的绊脚石,所以我们需要采取一些措施来进行优化。下面是一些简单又实用的方法,可以帮助我们减少延迟:

采用HTTP/2:使用HTTP/2协议可以显著减少延迟。它支持并行传输,最大程度地减少了数据从发送方到接收方的往返次数,这对于降低延迟非常有效。

减少外部HTTP请求:第三方服务会增加延迟。通过减少外部HTTP请求的数量,我们可以提高系统的响应速度和质量。

使用CDN:内容分发网络(CDN)被证明能够减少延迟。CDN会在全球多个位置缓存资源,从而减少请求和响应的传输时间。这意味着可以从更接近客户端的缓存位置获取请求,而不必每次都回到原始服务器。

浏览器缓存:利用浏览器缓存,可以减少向服务器发送的请求次数,从而降低延迟。浏览器会在本地缓存特定资源,这对于提高页面加载速度很有帮助。

优化磁盘I/O:为了减小磁盘I/O的影响,我们需要优化算法,尽量减少频繁的磁盘写入操作。可以考虑使用直写式缓存、内存数据库,或者在适当的情况下进行写入合并,还可以考虑使用快速存储系统,比如SSD

作为开发人员,我们还可以在应用程序级别采取一些方法来优化延迟:

避免低效算法:高效的算法是代码中延迟的主要来源之一。要尽量避免不必要的循环或昂贵的嵌套操作。

避免锁定的设计模式:锁定会引入延迟,因此我们应该采用避免锁定的设计模式,特别是在多线程环境中。

采用异步编程模型:异步编程可以更好地利用硬件资源,因为它避免了阻塞操作,从而减少等待时间。

限制无界队列深度:限制无界队列深度并提供反压通常可以减少代码中的等待时间,从而产生更可预测的延迟。

这些方法可以帮助我们优化延迟,提高系统性能,让用户获得更好的体验。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82509
  • 路由器
    +关注

    关注

    22

    文章

    3500

    浏览量

    111342
  • 计时器
    +关注

    关注

    1

    文章

    395

    浏览量

    32156
  • CDN
    CDN
    +关注

    关注

    0

    文章

    287

    浏览量

    28503

原文标题:网络延迟简介:为什么它重要,如何测量

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何有效评估SAN网络延迟(latency)?

    SAN网络存储是企业存储架构的中坚力量,大部分企业关键应用后端存储都采用SAN网络连接。为了更好服务器密集IO的企业关键应用,以及日益普及的企业应用异地灾备的需求。有效评估SAN延迟对规划、管理
    发表于 01-07 16:20

    延迟测量不确定度

    我刚刚下载了不确定度计算器并绘制了三种不同Sii的群延迟精度。我想看看不匹配的终端如何影响群延迟测量的准确性:它们似乎几乎没有差别。不确定性计算器绘制了组延迟的精度(ns)与孔径(MH
    发表于 11-05 10:40

    延迟号码

    在进行TRL校准时,使用不同的长度。机器是否使用在cal标准定义中输入的延迟和丢失数字?我在我的网络上找到了一个没有延迟和丢失值的校准套件。他们的频率范围是正确的,我想知道延迟是否只是
    发表于 06-27 13:25

    怎么实现IGBT延迟导通时间测量系统的设计?

    本文从精简结构,同时兼顾精度的角度出发,提出一种基于时间测量芯片TDC-GP2来精确测量IGBT导通延迟时间系统,用于测量IGBT的导通延迟
    发表于 05-14 06:07

    测量中断延迟的相关资料分享

    测量中断响应延迟
    发表于 12-12 06:00

    延迟线电路,延迟线电路是什么意思

    延迟线电路,延迟线电路是什么意思 延迟线电路的定义
    发表于 03-09 11:30 1156次阅读

    延迟线,延迟线是什么意思

    延迟线,延迟线是什么意思  延迟线  delay line  用于将电信号延迟一段时间的元件或器件称为延迟线。
    发表于 03-09 11:33 7849次阅读

    对群延迟测量方法的研究

    基于对群延迟测量方法优化的目的,采用数字信号处理的方法,设计了计算群延迟的计算机算法,将一部分测量工作转化为计算机的计算工作,从而简化了测量
    发表于 04-19 17:46 21次下载

    如何测量CPU不同核心之间的延迟

    这是一个Rust编写的比较有趣的程序,通过将两个线程固定在两个不同的 CPU 内核上,我们可以让它们进行一系列比较交换操作,并测量延迟
    发表于 09-20 12:01 1468次阅读

    影响比较器传播延迟测量的参数

    内部电路(传播)时,存在延迟。需要注意的是,传播延迟定义为输出达到输出值的50%的点,而不是完整值。此名称与输出负载相结合,是可能导致电路测量延迟时间长于预期
    的头像 发表于 01-08 10:30 2187次阅读
    影响比较器传播<b class='flag-5'>延迟</b><b class='flag-5'>测量</b>的参数

    PS7软件功能——相位、延迟测量

    PicoScope 7 (PS7)软件增添了新的测量功能——测量相位之间的角度和延迟时间(图1)。 注:Phase- 相位;Delay - 延迟。 图1 相位
    的头像 发表于 10-08 10:30 335次阅读
    PS7软件功能——相位、<b class='flag-5'>延迟</b><b class='flag-5'>测量</b>

    光模块对网络延迟的影响如何?

    随着网络技术的不断发展,越来越多的企业、机构、个人都离不开网络。而光模块作为网络中重要的组成部分,对网络延迟有着至关重要的影响。本文旨在从理
    的头像 发表于 10-16 12:12 409次阅读

    网络延迟跟交换机有何关系?又如何测量以太网交换机的网络延迟呢?

    网络延迟是指数据在网络中传输所需的时间,通常以毫秒(ms)为单位。网络延迟对于许多在线应用和服务的性能至关重要,因为它直接影响到用户的体验。
    的头像 发表于 12-31 11:21 1013次阅读

    如何测量差分探头的传播延迟呢?

    如何测量差分探头的传播延迟呢? 差分探头的传播延迟指的是信号从输入端到输出端的传输时间。测量差分探头传播延迟的过程可以分为两个主要步骤:校准
    的头像 发表于 01-17 11:32 296次阅读

    路由器延迟高怎么回事 路由器延迟高怎么解决?

    问题。 二、路由器高延迟的原因 1.硬件问题:路由器本身的硬件可能存在问题,例如老化、过热、不足的处理能力等,都可能导致延迟增加。 2.网络拥堵:如果网络中有大量用户同时使用,或者有大
    的头像 发表于 02-19 11:46 6390次阅读