网络延迟(Network Latency),人们通常认为它是指网络数据传输所需的时间。但是,这里的“时间”是指双向流量,即数据从源发送到目的地,然后从目的地地址返回响应的往返时间:RTT(Round-Trip Time)

除了网络延迟之外,另一个常用的指标是应用延迟(Application Latency),它是指应用接收请求并返回响应所需的时间。通常,应用延迟也称为往返延迟,它是网络数据传输时间加上数据处理时间的总和。

通常人们使用 ping 命令来测试网络延迟,ping 是基于 ICMP 协议的,它通过计算 ICMP 发出的响应报文和 ICMP 发出的请求报文之间的时间差来获得往返延迟时间。这个过程不需要特殊的认证,从而经常被很多网络攻击所利用,如,端口扫描工具 nmap、分组工具 hping3 等。

因此,为了避免这些问题,很多网络服务都会禁用 ICMP,这使得我们无法使用 ping 来测试网络服务的可用性和往返延迟。在这种情况下,您可以使用 traceroute 或 hping3 的 TCP 和 UDP 模式来获取网络延迟。

# -c: 3 requests
# -S: Set TCP SYN
# -p: Set port to 80
$ hping3 -c 3 -S -p 80 google.com
HPING google.com (eth0 142.250.64.110): S set, 40 headers + 0 data bytes
len=46 ip=142.250.64.110 ttl=51 id=47908 sport=80 flags=SA seq=0 win=8192 rtt=9.3 ms
len=46 ip=142.250.64.110 ttl=51 id=6788  sport=80 flags=SA seq=1 win=8192 rtt=10.9 ms
len=46 ip=142.250.64.110 ttl=51 id=37699 sport=80 flags=SA seq=2 win=8192 rtt=11.9 ms
--- baidu.com hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 9.3/10.9/11.9 ms

traceroute类似的:

$ traceroute --tcp -p 80 -n google.com
traceroute to google.com (142.250.190.110), 30 hops max, 60 byte packets1  * * *2  240.1.236.34  0.198 ms * *3  * * 243.254.11.5  0.189 ms4  * 240.1.236.17  0.216 ms 240.1.236.24  0.175 ms5  241.0.12.76  0.181 ms 108.166.244.15  0.234 ms 241.0.12.76  0.219 ms...
24  142.250.190.110  17.465 ms 108.170.244.1  18.532 ms 142.251.60.207  18.595 ms

traceroute 会在路由的每一跳(hop)发送三个数据包,并在收到响应后输出往返延迟。如果没有响应或响应超时(默认 5s),将输出一个星号 *

wrk (https://github.com/wg/wrk)

$ wrk --latency -c 100 -t 2 --timeout 2 http://192.168.0.30/
Running 10s test @ http://192.168.0.30/2 threads and 100 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency     9.19ms   12.32ms 319.61ms   97.80%Req/Sec     6.20k   426.80     8.25k    85.50%Latency Distribution50%    7.78ms75%    8.22ms90%    9.14ms99%   50.53ms123558 requests in 10.01s, 100.15MB read
Requests/sec:  12340.91
Transfer/sec:     10.00MB--------------------------------------------------$ wrk --latency -c 100 -t 2 --timeout 2 http://192.168.0.30:8080/
Running 10s test @ http://192.168.0.30:8080/2 threads and 100 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    43.60ms    6.41ms  56.58ms   97.06%Req/Sec     1.15k   120.29     1.92k    88.50%Latency Distribution50%   44.02ms75%   44.33ms90%   47.62ms99%   48.88ms22853 requests in 10.01s, 18.55MB read
Requests/sec:   2283.31
Transfer/sec:      1.85MB从以上两个输出可以看出,官方 Nginx(监听 80 端口)的平均延迟为 9.19ms,而案例 Nginx(监听 8080 端口)的平均延迟为 43.6ms。从延迟分布上来看,官方 Nginx 可以在 9ms 内完成 90% 的请求;对于案例 Nginx,50% 的请求已经达到 44ms

参考资料:

有了这款 Linux 网络延迟排查方法,再也不用加班了

hping3网络延迟检测工具——筑梦之路相关推荐

  1. iperf3 网络测速工具 —— 筑梦之路

    操作系统: centos 7#安装 yum install iperf3 -y#环境规划server : 192.168.80.100 clinet : 192.168.80.200#服务端启动ipe ...

  2. 通过浏览器检测硬件 —— 筑梦之路

    在线硬件检测工具: # 测试网址1 主要检测显卡显示效果 volumeshader_bm # 测试网址2 可以检测cpu GPU 屏幕等 精大师在线显卡测试_首页 | 网页版GPU性能测试工具

  3. tcp 测试工具_6款免费网络延迟测试工具

    作为网络管理员或网络工程师,时刻关注网络的交付速度至关重要.不仅需要确保自己有良好的响应时间,还需要确保网络的速度足以满足用户通信所需的每一条路径.而手动测试每个路径将占用你所有的时间.所以需要获得一 ...

  4. 微秒级别的网络延迟检测

    2019独角兽企业重金招聘Python工程师标准>>> 写了一个工具用来做微秒级别的网络延迟检测,需要在配置文件中简单描述需要测试的网络连接: [s1] SRC_HOST = sam ...

  5. 绝地求生服务器延迟检测源码,绝地求生不停网络延迟检测怎么办 绝地求生网络问题解决办法...

    每个游戏玩家在游戏中都会遇到延迟卡顿的现象,最近许多朋友在玩绝地求生的时候出现一直网络延迟检测,这是怎么回事呢?下面小编介绍一下解决的办法,让你们畅快的吃鸡. 1.首先设置游戏的启动项:-USEALL ...

  6. CentOS 8 安装freePBX 软交换电话软件——筑梦之路

    简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...

  7. 时间同步设置NTP和Chrony两种方式—— 筑梦之路

    之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...

  8. Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路

    1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...

  9. K8S中使用显卡GPU(N卡) —— 筑梦之路

    前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...

最新文章

  1. 分享15个堪称神器的资源网站,让你万事无忧!
  2. LeetCode 多线程 1114. 按序打印
  3. du命令、df命令用法
  4. Codeforces Round #496 (Div. 3 ) E1. Median on Segments (Permutations Edition)(中位数计数)
  5. 没有找到**.dll的解决方案
  6. [转载]谁来拯救云计算
  7. docker安装redis,使用jedis轻松操作redis
  8. Windows XP十五周年:由爱生恨的系统霸主
  9. 当当笔试java_20170921 当当和今日头条笔试题
  10. android 主流分辨率是多少,Android程序开发设计主流屏幕分辨率介绍
  11. 消息摘要(Message Digest)及其算法
  12. mac上解决Resource temporarily unavailable
  13. 简单有效解决onenote无法设置或修改默认的英文字体“Calibri”(简单实用)
  14. bytearray函数
  15. React-Redux使用方法
  16. 服务器千兆网卡和万兆网卡有什么区别
  17. 模拟量使用计算机电缆,计算机电缆如何选型?附计算机电缆型号大全
  18. SiamMask 测试程序分析
  19. uniapp语音识别(讯飞语音)转文字
  20. 独立游戏开发者游戏素材网站推荐

热门文章

  1. aws lambda使用_我们通过使用AWS Lambda服务机器学习模型学到了什么
  2. 玩客云刷armbian后,面板led模拟硬盘灯
  3. RapidJSON v1.1.0 发布简介
  4. Clickhouse的多种连接方式
  5. 机器学习中的数学——共轭梯度法(Conjugate Gradient)
  6. 《那些年啊,那些事——一个程序员的奋斗史》——127
  7. CosyPose: Consistent multi-view multi-object 6D pose estimation
  8. 先锋机器人3(Pioneer3)的基础操控
  9. Cakewalk Z3TA Plus 2 Presets/Banks Bundle 合成器预设合集
  10. 如何查看OutputDebugString的输出?[英]How to view output of OutputDebugString?