This project demonstrates bandwidth measurement and analysis in a Software Defined Networking (SDN) environment using Mininet and a POX controller. The controller dynamically installs flow rules, monitors traffic, and calculates per-flow bandwidth.
- Measure bandwidth using iperf
- Analyze network performance under different scenarios
- Demonstrate SDN concepts such as controller-switch interaction and flow rule design
- Ubuntu 22.04
- Python 3
- Mininet
- POX Controller
- iperf
- Wireshark (optional)
H1 --- S1 --- S2 --- H3
H2 -/ -- H4
Configuration:
- Host links: 10 Mbps
- Switch link: 20 Mbps
This topology introduces a bottleneck link for analysis.
- Handles packet_in events
- Installs flow rules (match-action)
- Monitors traffic using flow statistics
- Calculates bandwidth per flow
- Detects high-bandwidth flows
- Optional blocking of high-bandwidth flows
-
Clean Mininet: sudo mn -c
-
Start POX controller: cd ~/pox python3 pox.py log.level --DEBUG bandwidth_monitor
-
Run topology: sudo python3 topo.py
-
Test connectivity: pingall
-
Single flow test: h3 iperf -s h1 iperf -c h3
-
Multiple flow test: h1 iperf -c h3 & h2 iperf -c h4
-
View flow tables: sudo ovs-ofctl dump-flows s1 sudo ovs-ofctl dump-flows s2
Observations:
- High bandwidth in single flow
- Reduced bandwidth in multiple flows
- Bottleneck link limits throughput
- Simple topology provides higher performance
Single flow: Maximum bandwidth utilization Multiple flows: Bandwidth shared Bottleneck: Reduced throughput Simple topology: Improved performance
The project demonstrates that SDN enables centralized control and real-time monitoring of network traffic. The POX controller measures bandwidth using flow statistics and helps identify bottlenecks. It can optionally control traffic by blocking high-bandwidth flows.
- pingall output
- iperf results
- controller logs
- flow table entries
- wireshark capture (optional)
- Mininet documentation
- POX documentation
- OpenFlow specification
- iperf documentation
CHINMAYI HEBBAR AM