Skip to content

A heavy-duty traffic generation and SLA validation engine.

License

Notifications You must be signed in to change notification settings

deadislove/network_stresser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Stresser & QA Validation Framework

🚀 Overview

The Network Stresser is a modular automation framework designed to simulate high-density household traffic. Unlike standard speed tests, this tool evaluates how a network infrastructure (such as Mesh Wi-Fi systems) manages congestion, prioritizes traffic, and maintains stability under extreme load.

"While monitoring is useful, I built this Stresser to test how a mesh system handles Bufferbloat and Congestion Control. I wanted to see if the router's firmware could prioritize critical ACK packets even when the pipe is 95% full."

🏗 Project Architecture

The project follows a decoupled, modular design to ensure scalability and ease of integration into CI/CD pipelines.

network-stresser/
├── src/
│   ├── __init__.py
│   ├── traffic_generator.py  # Core engine using iperf3 to saturate bandwidth
│   ├── metric_collector.py   # Real-time capture of CPU/Memory/Network IO
│   ├── validator.py          # SLA engine to determine PASS/FAIL status
│   └── reporter.py           # Data persistence and visualization (CSV/Matplotlib)
├── reports/                  # Directory for generated logs and performance graphs
├── run_stresser.py           # Main CLI entry point with interactive arguments
└── requirements.txt          # Project dependencies (pandas, matplotlib, psutil)

🛠 Feature List

  1. Multi-Threaded Traffic Generation
  • Parallel Streams: Utilizes multiple concurrent threads to simulate real-world scenarios, such as multiple users streaming 4K video or downloading large assets simultaneously.
  • iperf3 Integration: Leverages iperf3 JSON-stream parsing for high-precision TCP/UDP throughput measurements.
  • Adjustable Load Levels: CLI support for configuring stress intensity (Low, Medium, High) via parallel connection counts and test durations.
  1. Edge Performance Tracking
  • Latency Under Load (Bufferbloat): Monitors ping latency spikes during peak throughput to evaluate the effectiveness of SQM (Smart Queue Management).
  • Throughput Drop-off Analysis: Tracks performance degradation over time to identify potential thermal throttling or hardware bottlenecks.
  • System Resource Correlation: Simultaneously logs local CPU/Memory usage to distinguish between Client-side bottlenecks and Router-side limitations.
  1. Automated Validation & SLA
  • SLA Compliance Check: Automatically validates if the network maintains a latency threshold (e.g., <100ms) and minimal packet loss during stress.
  • Stability Scoring: Generates a consistency score based on throughput variance and retransmission rates across multiple iterations.

📊 Sample Visualization

The framework automatically generates trend charts to help engineers visualize the "breaking point" of the network.

🚀 Getting Started

Prerequisites

  • Python 3.8+
  • iperf3 installed on the system path.

Installation

git clone https://github.com/deadislove/network-stresser.git
cd network-stresser
pip install -r requirements.txt

Usage

Basic Run with 1 iteration:

python run_stresser.py -s [Server_IP] -r 1

Run a Gaming Preset test (Low-latency UDP focus) with 5 iterations:

python run_stresser.py -s [Server_IP] --preset gaming -r 5

Run a Video Streaming test (High-bandwidth TCP focus):

python run_stresser.py -s [Server_IP] --preset video -p 8 -t 15

💡 Why This Project Matters for Mesh Systems

In a Mesh environment (like eero), traffic management is complex due to backhaul contention. This tool provides the necessary data to:

  1. Verify Fairness Policies between different leaf nodes.
  2. Stress-test Backhaul Selection logic under heavy interference.
  3. Benchmark Roaming Performance when a client is under load.

📩 Contact & Contributions

Developed by Da-Wei Lin. Feel free to reach out for collaboration or to discuss network QA automation!

About

A heavy-duty traffic generation and SLA validation engine.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages