What is network stress testing?
Stress testing of a network is the practice of deliberately and intensely 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.
Based on these observations, the network’s designers or administrators can strengthen the weak points, clear bottlenecks, or replicate optimal strengths.
Here is our list of the best automatic network stress testing tools for 2020:
- SolarWinds WAN Killer Traffic Generator EDITOR’S CHOICE This automated packet generator is part of the SolarWinds Engineering Toolset. The tool is useful for testing LANs and firewall capacity as well as WANs. The Traffic Generator is part of the Engineer’s Toolset, which is available for a 14-day free trial.
- Packet Sender A free, open-source packet generator that runs on Windows, Linux, and Mac OS.
- Ostinato A network traffic generator that is open source, but charged for. Runs on Windows, Linux, Mac OS, and Raspberry Pi.
- NetScanTools Pro A bundle of network management and monitoring tools that includes packet and network traffic generators.
- Scapy This free tool can capture, analyze, alter, duplicate, and rebroadcast network traffic packets. Runs on Linux, Mac OS, and BSD Unix.
- Colasoft Packet Player This Linux-based tool will resend packets captured with other packet sniffing software, such as Wireshark.
Why would you want to stress test your network?
Modern networks are usually efficient digital structures – built with the help of software and hardware – that securely connect electronic devices. We say “usually” because, depending on the number of devices that need to be connected, and the amount of data that is transported across it, a network could reach its capacity limits and even end up being overwhelmed. If this data overload, or “stress,” continues to grow it could bring the whole network to a grinding halt.
That is why we need network stress testing – both to prevent crashes as well as discover any weak points before they cause them.
There are many reasons why a business or an administrator would want to perform stress tests on a network. Some of these reasons are:
- Better uptimes – businesses in today’s competitive market can’t afford any downtime. They may, therefore, use stress tests as a prevention method.
- Pre-analysis and standardization – a business that has just had a new network setup would want to know if the installation is indeed as resolute as they intended it to be. This is especially important in scenarios where the new LAN or WAN is expected to bear a large amount of data and network traffic. The analysis can also be used to check if the network complies with industry standards before it goes live.
- Disaster prevention mechanism – it isn’t unheard of that a business, with the intention of driving sales up, makes an offer to the public (freebies, discounts, prizes, etc.) that are too good to pass on. But, when their visitors arrive to take them up on their offer, their networks and/or servers crash due to overloads.
The businesses, therefore, pre-stress test their networks to see if they can prevent possible disasters.
In fact, there are real-life examples of networks being brought down because of the sheer amount of traffic surges that had not been planned for:
- The retail company that saw a flood of orders during the holiday season and then had its network come crashing down.
- An airline company that had to handle – rather unsuccessfully – the sudden influx of clients who tried to log in because they had heard about their festival discount offers.
- There have been numerous examples over the years of networks being hit by hackers or malicious software and being overwhelmed and causing millions of dollars’ worth of damage.
With stress testing, these companies would have had at least an idea of what their networks were capable of and perhaps been proactive enough to either improve their capacities or used other preventive measures.
Related post: Best Network Performance Testing and Load Testing Tools
What causes stress on a network in a business environment?
As we have just seen, external traffic can wreak havoc on a business’ network. But then again, the same businesses, especially big ones or those that primarily deal with data transfer and storage, usually see a major part of their network resources put under stress due to their internal business processes.
Apart from these data transfers, which are expected, there are certain data types that could cause even more stress on their network. These data types include media files and performance- or time-sensitive online transactions that are treated as “VIP” priority packets that need to be handled with more care – at the cost of other “lesser” data types. Without Quality of Services (QoS) implemented on the network, it is an invitation for disaster.
The picture becomes complete when you throw in network security devices and software solutions like Intrusion Prevention Systems (IPS) and Intrusion Detection Systems (IDS), routers, and firewalls – all of which need a fair share of a network’s limited resources. It becomes quite evident that the network will soon become too crowded and result in it being stressed.
How is network stress testing done?
There are two ways to do network testing:
Manual networks stress testing
You can stress-test your network by issuing commands using a command prompt. For, example, on a Windows machine you would test it using the following steps:
- Open your command console and type in ping –t XXX.XXX.XXX.XXX with the X’s representing the IP V4 address of a target host on the network that will be used for the test.
In the example above, the target device’s address is 10.0.111.144 and the ping command is executed continuously (because of the “-t” option) until it is stopped using the CTRL+C command.
The response tells us: the target host is online (because it is replying), the size of the network packet that was sent to it (32 bytes), the response time (1ms), and the time to live or TTL after which a timeout would occur (128ms).
- This command is to be repeated on all the devices that are on the network which will simulate a busy network. As the number of packets and their sizes increase, there will be an eventual increase in delayed response times as the network’s capacity to transport the data deteriorates.
- The network will be considered to be fully overwhelmed when all (or a majority) of the devices display a “Request timed out” message.
Stress testing with automated tools
Day-to-day network management requires the assistance of specialist network monitoring tools to check that the network’s performance is acceptable and to plan for future capacity requirements. Consideration of potential growth in traffic needs to be accounted for when the business plans new functions or expands its personnel. For example, a new product or a planned advertising campaign might be expected to increase demand on a web server, or create extra business activities that could strain the current capacity of network infrastructure.
Stress testing a network link by link will reveal potential bottlenecks and allow network managers to take appropriate action. It could be that the current network topology is inefficient or it could be that traffic-shaping measures would be enough to ensure acceptable service is maintained on all application traffic.
Network throughput monitoring, capacity planning, and demand trend projections are all useful ways to future-proof a network. However, a real-life run through of future traffic expectations puts the theory to the test. A packet generator running high volumes of different types of traffic through the network helps the network management team ensure that their plans have made the network ready for the expected demand.
Related post: The difference between Throughput and Bandwidth
Best automated network stress testing tools
There are many packet generators and traffic stress testers on the market, but not all of them are any good. We have examined the best of the network stress tools and created a shortlist of the best.
The SolarWinds WAN Killer Traffic Generator forms part of a suite of more than 60 network management and monitoring tools, which is called the Engineer’s Toolset. The WAN Killer can be set to generate traffic packets pertaining to a specific protocol and to be sent to specific ports and endpoints. When the generated traffic is sent through the network, the network management can trace the paths that the network’s switches and routers use to send those packets to their intended destinations.
The traffic can target multiple destinations, emulating the typical traffic patterns of day-to-day activity on the network. Once the emulation of standard traffic has been achieved, the additional packets expected to be created by any new application on the network can be added to the flow. The tool is able to vary packet length and can send out packets at irregular intervals to correctly mimic the type of traffic that the network managers expect to start flowing over the network.
Using the WAN Killer in conjunction with other utilities in the Engineer’s Toolset creates a record of what will happen on the network in the future. This information will allow technicians to re-map the network topology, introduce path redundancy, add on load balancers, and expand capacity to ensure that the new load on the network can be properly absorbed. There is a 14-day free trial.
The SolarWinds WAN Killer Traffic Generator is our top pick for stress testing because it is part of the SolarWinds Engineer’s Toolset, a collection of more than 60 network monitoring and management systems. The tool is capable of creating network traffic for specific protocols and applications, which will enable network managers to precisely measure the effects of new services on the network before they are implemented.
Start 14-day Free Trial: solarwinds.com/engineers-toolset/use-cases/traffic-generator-wan-killer
OS: Windows Server
Packet Sender is a free, open-source network traffic generator. It can direct generated UDP, TCP, and SSL traffic to a specific device and to a specific port. This enables individual network devices to be tested as well as traffic capacity on links across a network. The tool can be used for security testing as well as for network stress testing. As well as testing the local network, Packet Sender can be set to deliver generated packets across the internet to test connections to remote sites or cloud services.
The software for Packet Sender presents a command-line utility and a GUI interface. The system runs on Windows, Linux, and Mac OS. There is also a limited, paid Packet Sender app for Android and iOS devices.
Ostinato generates packets and sends then out on the network in a pattern or in irregular bursts, mixing traffic destined for different ports in order to emulate typical business network traffic.
The tool has a comprehensive interface that presents a long list of traffic creation options. The creators also provide an API library, written in Python, which enables integration into other tools to automate testing. Streams of packets can be sent in surges and bursts and reporting functions enable the Ostinato console to report back on a target device or link performance.
Ostinato is available for Windows, Linux, Mac OS, and Raspberry Pi and it is offered on a trial with limited functionality for Windows only.
NetScanTools Pro is a bundle of network management, monitoring, and testing tools that includes a Packet Generator and Packet Flooder, which transmit generated packets over a network.
Packet Generator will send generated traffic to a specific IP address or MAC address. They can be generated as UDP, TCP, CDP, ICMP, ARP/RARP, or RAW packets. Packet generator can also replay captured packets across a network. The tool can capture packets itself or import a WinPcap or Npcap file and can interface with Wireshark. Packet Generator is only able to send packets on a local network.
Packet Flooder can send packets out over the internet as well as around the local network. This tool doesn’t read WinPcap or Npcap files.
The entire NetScanTools Pro suite is available in a 30-day demo version. The software runs on Windows and there is also a portable version that runs on a USB stick and cab accessed from any operating system.
Scapy is a free packet manipulation utility, written in Python. The utility runs at the command line and it is available for Unix and Unix-like systems, so it will run on Linux and Mac OS. There is also now a version for Windows.
The tool can create packets or capture them and decode them by de-referencing its header data, thus identifying its protocol/port, sender and receiver. Captured packets can be stored, edited, and replayed over the network.
Colasoft Packet Player is a packet replayer. The tool doesn’t generate original packets but takes trace files from other packet sniffers as input. Packet files can come from Colasoft Capsa, Wireshark, Savvius Omnipeek, or etc.Except.
The Packet player has a number of transmission options, enabling packets from a file to be sent out in a loop, creating a longer traffic study from a short file. The user can specify a break between loops and it is also possible to vary the speed of packet transmission.
Colasoft Packet Player runs on Windows and it is available in both free and paid versions.
Final notes and precautions
Although stress testing of networks can give useful feedback that can be used to improve their performances, there are a couple of precautions to consider beforehand:
- Always use an isolated network – when testing your network, make sure you create a dedicated test environment for load-testing. At the very least, only take part of your network down for the testing if you can’t afford to have your entire network shut down for the duration of the test.
- Never try stress testing on a corporate network – this is especially true if you are not part of an IT team tasked with the job of caring for your network. You could get fired if you are caught illegally flooding your employer’s networks.
The whole purpose of network stress testing with a traffic generator is to see how well your network will hold up against any unforeseen surge of network traffic. It is therefore important that at least one person be knowledgeable about these tools and make use of them routinely – it will always be worth the effort.
Network Stress Testing FAQs
⭐Can Wireshark generate traffic?
Wireshark captures packets traveling around a network. It doesn’t generate or transmit traffic.
⭐How do I test network load?
The load on a network is its data throughput. The term “load” is usually specifically applied to load balancing. Load balancing is the practice of distributing traffic across alternative routes in a network or spreading traffic evenly between duplicate devices. When checking on the amount of traffic passing down a link, it is usual to speak of measuring throughput, load testing usually refers to the distribution of traffic in order to check on the efficiency of a load balancer. So, in order to test load, you need to test the throughput on all alternative routes that are managed by the same load balancer.
⭐What time of the day should I run a network stress test?
Stress testing aims to push the network to its limits and find the point of failure. Therefore, anyone using the network for their job will have their work disrupted by the test. For this reason, it is better to run a stress test out of office hours. During regular business hours, network managers can examine network performance and capabilities through monitoring.