网络异常模拟测试方法

1.网络异常的分类

在系统的运行过程中,可能会遇到各种各样的网络问题,其中主要可能出现的问题有

网络延迟:当网络信息流过大时,可能导致设备反应缓慢,造成数据传输延迟;

网路掉包:网路掉包是在数据传输的过程中,数据包由于各种原因在信道中丢失的现象;

网络节流:当数据传输量达到网络带宽上限时,数据包可能会被设备拦截下来在之后发出;

网络重发:当网络不稳定是可能会导致发送端判断数据包丢失导致部分数据包重发;

数据乱序:当数据传输有可能出现数据包到达接收端时间不一致,导致数据包乱序问题;

数据篡改:数据传输的过程中可能出现数据被连接篡改的情况。

2.Windows下网络异常的模拟方法

Windows下可以使用clumsy来进行网络异常的模拟

clumsy 首先根据用户选择的 filter 来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。

当被 filter 的网络数据包被拦截后,你可以选择clumsy 提供的功能来有目的性的调整网络情况:

延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。

掉包(Drop),随机丢弃一些数据。

节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。

重发(Duplicate),随机复制一些数据并与其本身一同发送。

乱序(Out of order),打乱数据包发送的顺序。

篡改(Tamper),随机修改小部分的包裹内容。

在测试时,该工具的filtering使用默认即可,Presets选择localhost ipv4 all,然后配置相应的功能单击start按钮,等待按钮变成stop以及按钮旁边出现小绿点时,工具则启用成功。

使用工具模拟网路延时,网络延时3000ms

使用工具模拟网络掉包,随机将10%的数据包丢弃

使用工具模拟网络节流,将10%的数据节流1000ms

使用工具模拟网络重发,将10%的数据集重发两次

使用工具模拟网络乱序,将10%的数据乱序

使用工具模拟网络篡改,篡改10%的数据

测试的过程中可以检查业务处理是否正确,比如检查数据库数据是否正确,数据库与文件库是否一致,文件库是否出现较多的垃圾文件,垃圾文件是否有清理机制等等。

3、Linux下的网络异常模拟方法

           netem是Linux2.6及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低宽带,传输延迟,丢包等等情况。使用Liunx 2.6(或以上)版本内核的很多发行版Linux都开启了该内核功能,比如Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian等等。tc是Linux系统中的一个工具,全名为traffic control(流量控制)。tc可以用来控制netem的工作模式,也就是说,如果想使用netem,需要至少两个条件,一个是内核中的netem功能被包含,另一个是要有tc。

       模拟网络异常方法:

        1、首先查看网卡,可使用ipconfig命令查看

[root@localhostnetwork-scripts]# ifconfig

           eno16777736:

flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

                   inet 192.168.75.132 netmask 255.255.255.0  broadcast

192.168.75.255

                   inet6fe80::20c:29ff:fe7c:8d22  prefixlen 64  scopeid

0x20<link>

                   ether 00:0c:29:7c:8d:22 txqueuelen 1000  (Ethernet)

                   RX packets 19535  bytes2592045 (2.4 MiB)

                   RX errors 0  dropped 0 overruns 0  frame 0

                   TX packets 31019  bytes38969412 (37.1 MiB)

                  TX errors 0  dropped 0 overruns 0 carrier 0  collisions 0

          红字表明的就是网卡的设备号

          2、模拟网络异常可通过以下命令,其中eth0可根据自己的网卡设备号进行替换:

               网络延迟

                     tc qdisc add dev etho rootnetem delay 100ms

                     该命令将eth0网卡的传输设置为延迟100毫秒发送。

                     模拟更真实的情况,延迟值可能会有一定的波动性,可以使用以下命令来模拟

                     Tc qdisc add dev eth0 root netem delay 100ms 10ms

                      该命令将eth0网卡的传输设置为延迟100ms ±  10ms(90~110ms之间的任意值)发送

                网络丢包

                       tc qdisc add dev eth0 root netem loss 1%

                       该命令将eth0网卡的传输设置为随机丢掉1%的数据包

                数据包重复

                       tc qdisc add dev eth0 root netem duplicate 1%

                       该命令将eth0网卡的传输设置为随机产生1%的重复数据包。

                数据包损坏

                       tc qdisc add dev eth0 root netem corrupt 0.2%

                       该命令将eth0网卡的传输设置为随机产生0.2%的损坏的数据包。

                 数据包乱序

                       tc  qdisc change dev eth0 root netem delay 10ms reorder 25% 50%

                       该命令将eth0网卡的传输设置为:有25%的数据包(50%相关)会被立即发送,其他的延迟10秒。

                查看已经配置的网络条件

                       tc qdisc show dev eth0z

                        如果需要删除已配置的条件,则将以上命令中的add更改为del即可。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以回答这个问题。模拟网络异常数据的软件有很多,比如 Wireshark、tcpdump、Netcat、Scapy 等等。这些软件可以帮助用户模拟各种网络异常情况,如网络延迟、丢包、重传等等,以便测试网络应用程序的鲁棒性和可靠性。 ### 回答2: 模拟网络异常数据的软件是一种用于模拟网络环境中发生异常情况的工具。它可以通过模拟网络延迟、丢包、拥塞等异常情况,帮助开发人员和测试人员评估系统的鲁棒性和稳定性。以下是一些常见的模拟网络异常数据的软件。 1. Netem:Netem是Linux内核自带的一个模块,可以用于模拟网络环境中的各种异常情况。它可以设置网络延迟、丢包、重传、拥塞等参数,并能够以实时或者预定的方式模拟这些异常情况。 2. tcpreplay:tcpreplay是一款开源的工具,可以将之前抓取到的网络数据包重新发送出去,从而模拟网络环境中的异常情况。它可以用于模拟网络延迟、丢包、带宽限制等异常情况。 3. JChaos:JChaos是一款用于模拟网络与系统异常情况的Java开发工具。它可以模拟网络断开、超时、错误响应等异常情况,并支持分布式环境的模拟。 这些模拟网络异常数据的软件可以帮助开发人员和测试人员在正常网络环境下模拟各种异常情况,从而测试系统在不同异常情况下的表现。这对于提高系统的鲁棒性和可靠性非常有帮助,同时也可以帮助开发人员更好地理解和排查系统中可能存在的问题。 ### 回答3: 模拟网络异常数据的软件是用于模拟网络环境中的异常情况,以测试软件或网络设备的稳定性和可靠性。这种软件可以模拟各种网络异常情况,例如网络延迟、网络抖动、丢包、带宽限制等,使开发人员能够在控制条件下进行性能测试和优化。 以下是几种常见的模拟网络异常数据的软件: 1. NetEm:NetEm是Linux内核的一个模拟网络延迟、丢包和带宽限制的模块。通过使用NetEm,可以在Linux系统上模拟各种网络异常情况。 2. Traffic Control:Traffic Control是一个可以在Linux系统上限制带宽、延迟和丢包的工具。它是Linux内核的一部分,可以通过命令行进行配置和控制。 3. WANem:WANem是一个基于Linux的软件工具,可以模拟WAN环境中的不同网络异常情况。使用WANem可以模拟延迟、丢包、带宽限制等网络异常,在真实网络环境中进行测试。 4. JXNetEmulator:JXNetEmulator是一个Java编写的网络模拟工具,可以模拟不同网络环境下的延迟、丢包和带宽限制等。它可以用于测试应用程序在各种网络条件下的性能表现。 这些软件具有不同的特点和用法,开发人员可以根据实际需求选择合适的软件来模拟网络异常数据。这些工具可以帮助开发人员评估应用程序在网络环境中的表现,提高应用的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值