0Pricing
Linux Networking & TCP/IP for Developers · Lesson

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 -s

Running 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 100M

netstat: 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 -tuln

Introducing 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 -s

Quick 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 to netstat for 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.

All lessons in this course

  1. Packet Capture with Wireshark/tcpdump
  2. Network Performance Tools
  3. Linux Firewall (Netfilter/iptables)
  4. DNS Diagnostics with dig and nslookup
← Back to Linux Networking & TCP/IP for Developers