Network Stress Testing: How To Generate High Bandwidth Traffic on your Server
Network and infrastructure uptime is vital to any online business in 2022. One of the main responsibilities of network engineers and system admins is to ensure the network and infrastructure work uninterruptedly and will stay consistent even through high bandwidth traffic periods, also known as peak hours.
In the same context, Internet Service Providers (ISP’s) and Managed Services Providers (MSP’s) are required to maintain stability of their Internet service in order to be aligned with the Uptime SLA’s offered to their customers.
This is where stress testing comes into play in order to ensure your network is resilient enough to withstand large influxes (spikes) of traffic or users at any given time.
In this article we show you how to stress test your network by generating high bandwidth traffic using advanced ping command parameters. All commands shown further in this article work in any Linux Server. Similar parameters exist for ping in Windows environment, which we will explain thoroughly in an upcoming article.
What is Stress Testing
Stress testing of a network is the practice of deliberately and intensively testing it by overloading it with all, or as many as possible, protocols (TCP, IP, UDP, and ICMP, etc.) and data types (audio, video, image, etc.).
This kind of testing, which is also known as “torture testing” involves pushing networks beyond their normal operating capacities, to find their breaking points. It is meant to find their limits and also to observe their network performance (or deterioration) as they approach these extremes.
How To Generate High Traffic with Ping Command
Stress testing a Network or Server with ICMP packets is the easiest way. Assuming the destination network is not blocking ICMP requests you can follow the examples below to generate high traffic.
Option 1 — Send Large and unstoppable Packets to a Target
Using the “- s” parameter in ping you can change the size of bytes in an ICMP packet header and send it over a ping command as follows:
ping -s 25000 <target IP>
Option 2 — Create ICMP Packet Storm
The following command creates a ping flood or storm to the destination server/network.
ping -s 20000 -f <target IP>
As you can see from the above screenshot, in one simple command running for 2 seconds we managed to send 1,162 packets to the destination server.
Option 3 — Combination of the above
By combining the first two options (-s and -f parameters) you will be able to send a storm of packets with a custom defined packets header size. Be careful as this could put your server, router, and network into real stress!
ping -s 20000 -f <target IP>
As per the screenshot above, you can see that in just 5 seconds we have generated ~77,000 packets to the destination server.
Network Monitoring during Stress Testing
It is recommended that you monitor the bandwidth on the destination network during your stress testing. In this way you can gather valuable information such as min/avg/max network speed and bandwidth traffic. Additionally, using advanced packet sniffing tools you can further analyse how packets were handled on your network/server whilst it was “under attack”.
Bandwidth Monitoring using Zabbix during Network Stress Test
Hassle-free Network Administration & Stress Tests
NetShop ISP offers Premium support plans and Managed services for businesses that are short in IT staff or lack of specialization in network administration and infrastructure management.
Contact us today to learn more about our Managed Services and how we can help you increase your network’s uptime while you can focus on developing your core business.