1.软文推荐

2.软文推荐

3.软文推荐

在我的上一篇文章中,我向您展示了如何模拟 DDoS 攻击以及如何缓解它。简单回顾一下,DDoS 利用了大量的伪造请求,导致目标服务器消耗大量资源来处理这些无效请求,从而无法正常响应正常用户请求。

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。

但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应用层做了各种优化,网络服务延迟一般也会比平时大很多。

因此,在实际应用中,我们通常使用 Linux 服务器,配合专业的流量清洗和网络防火墙设备,来缓解这个问题。

除了 DDoS 导致的网络延迟增加,我想你一定见过很多其他原因导致的网络延迟,例如:

网络传输慢导致的延迟。
Linux 内核协议栈数据包处理速度慢导致的延迟。
应用程序数据处理速度慢造成的延迟等。

那么当我们遇到这些原因造成的延误时,我们该怎么办呢?如何定位网络延迟的根本原因?让我们在本文中讨论网络延迟。

Linux 网络延迟

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

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

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

因此,为了避免这些问题,很多网络服务都会禁用 ICMP,这使得我们无法使用 ping 来测试网络服务的可用性和往返延迟。在这种情况下,您可以使用 traceroutehping3 的 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 packets
1  * * *
2  240.1.236.34  0.198 ms * *
3  * * 243.254.11.5  0.189 ms
4  * 240.1.236.17  0.216 ms 240.1.236.24  0.175 ms
5  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),将输出一个星号 *

案例展示

我们需要在此演示中托管 host1 和 host2 两个主机:

host1 (192.168.0.30):托管两个 Nginx Web 应用程序(正常和延迟)
host2 (192.168.0.2):分析主机
host1 准备

在 host1 上,让我们运行启动两个容器,它们分别是官方 Nginx 和具有延迟版本的 Nginx:

# Official nginx
$ docker run --network=host --name=good -itd nginx
fb4ed7cb9177d10e270f8320a7fb64717eac3451114c9fab3c50e02be2e88ba2
# Latency version of nginx

$ docker run --name nginx --network=host -itd feisky/nginx:latency
b99bd136dcfd907747d9c803fdc0255e578bad6d66f4e9c32b826d75b6812724

运行以下命令以验证两个容器都在为流量提供服务:

$ curl http://127.0.0.1
nbsp;html>

...

Thank you for using nginx.

本文来源:www.lxlinux.net/10793.html,若引用不当,请联系修改。

相关文章 8

1

centos查看cpu占用率(centos 查看cpu占用) 2分钟前

目录:1、linux系统怎么查看cpu使用情况2、怎么查看linux的cpu,内存等占用率3、centos系统命令使用-top4、如何查看centos系统cpu/内存使用情况...

2

在 Ubuntu 16.04 Server 上安装 Zabbix 4分钟前

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的方案,其目的是监视各种网络参数,保证服务器系统的安全运营。 安装...

3

Linux下VNC Server的安装配置 5分钟前

VNC是 虚拟网络 控制台的缩写。它 是一款优秀的 远程控制 工具软件,VNC 是在基于 UNIX 和 Linux 操作系统的免费的 开源软件 ,远程控制能力...

4

大硬盘云主机(硬盘 主机) 8分钟前

目录:1、云主机和服务器的区别2、云主机是什么意思?求教下3、云主机如何挂载硬盘?4、目前来看云主机哪家好用5、国内云主机:2核、...

5

Linux系统安装ZooKeeper具体步骤 10分钟前

Linux系统如何安装ZooKeeper ?ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服...

8

CentOS 7上安装WordPress详细步骤 17分钟前

WordPress是由PHP开发的博客平台,使用者可以在支持PHP和Mysql数据库的服务器上假设自己的网站。 一、搭建Wordpress服务器环境需求: php5.2.4或...