Network Performance Tools
Utilize tools like `iperf`, `netstat`, and `ss` to measure network throughput, latency, and active connections.
Network Performance Tools is a free Linux Networking & TCP/IP for Developers lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Linux Networking & TCP/IP for Developers learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Boost Your Network Insights
Ever wonder how fast your network truly is, or what's happening behind the scenes? In this lesson, we'll dive into powerful Linux tools to measure and understand network performance.
We'll explore iperf for bandwidth, netstat for connections, and ss for detailed socket statistics.
What is Network Performance?
Network performance isn't just about speed! It includes several key metrics:
- Throughput: The amount of data transferred over time (e.g., Mbps).
- Latency: The delay before a transfer of data begins (e.g., ms).
- Jitter: Variation in latency, which can affect real-time applications.
- Packet Loss: Data packets failing to reach their destination.
Measuring these helps diagnose slow or unreliable connections.
Meet iperf: Bandwidth Hero
iperf is a fantastic tool for measuring network throughput. It works in a client-server model, where one machine acts as a server and another as a client, sending data between them.
This allows you to test the raw speed and capacity of a link between two points in your network.
Setting up iperf as a Server
To use iperf, you first need to start a server on one machine. It will listen for incoming connections from clients.
Open a terminal on your server machine and run this command:
iperf3 -sRunning iperf as a Client
Now, on a different machine (your client), you can connect to the iperf server and start a bandwidth test. Replace <server_ip> with the actual IP address of your server.
The output will show you the transfer rate and bandwidth achieved.
iperf3 -c <server_ip>iperf for UDP & Latency
iperf isn't just for TCP! You can also test UDP throughput and observe packet loss or jitter. UDP is often used for real-time applications where speed is critical.
To run a UDP test, add the -u flag. Try it out!
iperf3 -c <server_ip> -u -b 100Mnetstat: Network Statistics
netstat (network statistics) is a classic command-line tool that displays network connections, routing tables, interface statistics, and more.
It's great for quickly seeing what ports are open and what connections are active on your system.
Viewing Active Connections with netstat
To see all active TCP and UDP connections, along with listening ports, use the following flags:
-t: TCP connections-u: UDP connections-l: Listening sockets-n: Numeric addresses (don't resolve hostnames)
This gives a raw, fast overview.
netstat -tulnIntroducing ss: Socket Statistics
While netstat is useful, ss (socket statistics) is its modern, faster, and more powerful successor. It can display more information about sockets than netstat.
ss directly queries kernel data structures, making it quicker and more efficient, especially on systems with many connections.
Exploring Sockets with ss
ss uses similar flags to netstat but often provides more detail or performs faster. Here are a couple of common uses:
ss -tuln: Same as netstat, shows TCP/UDP listening ports.ss -s: Provides a summary of socket statistics (e.g., total TCP established, UDP in use).
Give ss -s a try to see a quick summary!
ss -sQuick Check: Performance Tools
You've learned about iperf, netstat, and ss. Which of these tools is primarily used to measure network bandwidth or throughput?
Recap: Monitor Your Network
Great job! You've explored essential tools for network performance:
iperf: Your go-to for measuring network throughput (bandwidth) and testing latency/jitter with TCP and UDP.netstat: A classic for viewing active connections, listening ports, and basic network statistics.ss: The modern, faster alternative tonetstatfor detailed socket information.
These tools are invaluable for diagnosing network issues and ensuring optimal performance.
Frequently asked questions
Is the “Network Performance Tools” lesson free?
Yes — the full text of “Network Performance Tools” is free to read here on the web, and the Linux Networking & TCP/IP for Developers course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Linux Networking & TCP/IP for Developers course, upgrade to CoddyKit PRO.
What will I learn in “Network Performance Tools”?
Utilize tools like `iperf`, `netstat`, and `ss` to measure network throughput, latency, and active connections. You practise Linux Networking & TCP/IP for Developers with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Linux Networking & TCP/IP for Developers?
No prior experience is required. Linux Networking & TCP/IP for Developers on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Network Performance Tools” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Linux Networking & TCP/IP for Developers lesson?
Yes. Every Linux Networking & TCP/IP for Developers lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.