• Skip to main content
  • Skip to footer

NetworkJutsu

Networking & Security Services | San Francisco Bay Area

  • Blog
  • Services
  • Testimonials
  • About
    • About Us
    • Terms of Use
    • Privacy Policy
  • Contact Us

Network Performance Testing Tool

10/10/2011 By Andrew Roderos Leave a Comment

  • Share on Twitter Share on Twitter
  • Share on Facebook Share on Facebook
  • Share on LinkedIn Share on LinkedIn
  • Share on Reddit Share on Reddit
  • Share via Email Share via Email

Knowing the performance of your network and having tool(s) to measure it is important. There are a lot of network performance tool out there and IXIA’s IxChariot is probably the most popular software out there in terms of network performance testing. This software has a lot of features and scripts that will help Network Engineers to view the performance of their network. I actually know someone who uses this software to measure MOS (Mean Opinion Score) and to compare throughput in different WLAN products. Great software comes with price tag, while I do not have the price list of IxChariot, let’s just assume that the organization that you work for do not have the budget to buy such a software. Fortunately, there is a freeware called Iperf or Jperf that can help with your network performance testing.

Iperf is a free cross-platform network testing tool that allows you to create TCP or UDP data streams and measure your network’s throughput. Jperf is basically the same as Iperf, but is displayed in GUI (Graphical Unit Interface) form instead of CLI (Command Line Interface). While GUI is nice, I don’t really like anything written in Java due to past personal experiences, so I try to stick with CLI as long as it is easy to use. I think Iperf is pretty easy to use – thanks to its help file. While it is easy to use, does not mean that I know everything there is to know about it. I am still learning how to use all the command line switches available in this tool. My experience is limited to just putting a load in a circuit and/or just measuring throughput in a WLAN environment, so feel free to experiment using the tool.

As mentioned, this software is cross-platform, so you can choose to run it on Windows or Linux. If you’re using Windows box to run Iperf, you can download the file here. If you’re using Linux, then the link above will suffice. Since I am an Ubuntu Server Edition user, I like using apt-get to download and install software. To download Iperf on Ubuntu, type the command below:

admin@ubuntu:~$ sudo apt-get iperf

Downloading Iperf on one machine is just half of it. You need another end-point to measure network performance. Iperf, IxChariot, and other similar tools are client-server based software. That said, there should be two end-points running the software, one as a server and the other as a client. In this article, I will show you a combination of Linux and Windows as the end-points – Linux is running as server and Window as a client. This is just a very basic test to measure my throughput at home.

On the server side (Linux), issue the command below:

admin@ubuntu:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

On the client side (Windows), issue the command below:

C:Users\Administrator\Desktop>iperf -c 192.168.0.100 -n 500000M -i 1

Once issued, you should see something like this on the client side:

------------------------------------------------------------
Client connecting to 192.168.1.45, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[376] local 192.168.1.20 port 50740 connected with 192.168.0.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[376]  0.0- 1.0 sec  9.20 MBytes  77.2 Mbits/sec
[376]  1.0- 2.0 sec  9.04 MBytes  75.8 Mbits/sec
[376]  2.0- 3.0 sec  9.78 MBytes  82.1 Mbits/sec
[376]  3.0- 4.0 sec  9.91 MBytes  83.2 Mbits/sec
[376]  4.0- 5.0 sec  9.90 MBytes  83.0 Mbits/sec
[376]  5.0- 6.0 sec  9.28 MBytes  77.9 Mbits/sec
[376]  6.0- 7.0 sec  9.56 MBytes  80.2 Mbits/sec
[376]  7.0- 8.0 sec  9.59 MBytes  80.4 Mbits/sec
[376]  8.0- 9.0 sec  9.60 MBytes  80.5 Mbits/sec
[376]  9.0-10.0 sec  8.56 MBytes  71.8 Mbits/sec
[376]  0.0-11.0 sec   104 MBytes  79.5 Mbits/sec

The command above just basically tells Iperf to send 500,000 megabytes worth of TCP data and report the measurement every second. To learn more about the available options, issue the command below:

C:Users\Administrato\rDesktop>iperf - help
Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]
Client/Server:
  -f, --format    [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #        seconds between periodic bandwidth reports
  -l, --len       #[KM]    length of buffer to read or write (default 8 KB)
  -m, --print_mss          print TCP maximum segment size (MTU - TCP/IP header)
  -o, --output     output the report or error message to this specified file
  -p, --port      #        server port to listen on/connect to
  -u, --udp                use UDP rather than TCP
  -w, --window    #[KM]    TCP window size (socket buffer size)
  -B, --bind         bind to , an interface or multicast address
  -C, --compatibility      for use with older versions does not sent extra msgs
  -M, --mss       #        set TCP maximum segment size (MTU - 40 bytes)
  -N, --nodelay            set TCP no delay, disabling Nagle's Algorithm
  -V, --IPv6Version        Set the domain to IPv6
Server specific:
  -s, --server             run in server mode
  -U, --single_udp         run in single threaded UDP mode
  -D, --daemon             run the server as a daemon
Client specific:
  -b, --bandwidth #[KM]    for UDP, bandwidth to send at in bits/sec
                           (default 1 Mbit/sec, implies -u)
  -c, --client       run in client mode, connecting to 
  -d, --dualtest           Do a bidirectional test simultaneously
  -n, --num       #[KM]    number of bytes to transmit (instead of -t)
  -r, --tradeoff           Do a bidirectional test individually
  -t, --time      #        time in seconds to transmit for (default 10 secs)
  -F, --fileinput    input the data to be transmitted from a file
  -I, --stdin              input the data to be transmitted from stdin
  -L, --listenport #       port to recieve bidirectional tests back on
  -P, --parallel  #        number of parallel client threads to run
  -T, --ttl       #        time-to-live, for multicast (default 1)
  -Z, --linux-congestion   set TCP congestion control algorithm (Linux only)
Miscellaneous:
  -x, --reportexclude [CDMSV]   exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
  -y, --reportstyle C      report as a Comma-Separated Values
  -h, --help               print this message and quit
  -v, --version            print version information and quit
[KM] Indicates options that support a K or M suffix for kilo- or mega-
The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_, such as IPERF_BANDWIDTH.
Report bugs to iperf-users@lists.sourceforge.net

Being freeware it won’t have all the bells and whistles of the paid software equivalent, so expect some disappointments. However, if you’re just looking for basic stuff that is a little bit powerful than IXIA’s Qcheck application, then this is definitely the tool you need.

I hope this has been helpful and thank you for reading!

Disclosure

NetworkJutsu.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com.

  • Share on Twitter Share on Twitter
  • Share on Facebook Share on Facebook
  • Share on LinkedIn Share on LinkedIn
  • Share on Reddit Share on Reddit
  • Share via Email Share via Email

Filed Under: General

About Andrew Roderos

I am a network security engineer with a passion for networking and security. Follow me on Twitter, LinkedIn, and Instagram.

Footer

WORK WITH US

Schedule a free consultation now!

LET’S TALK

Copyright © 2011–2023 · NetworkJutsu · All Rights Reserved · Privacy Policy · Terms of Use