Internet Speed Issue – How to troubleshoot(IPERF)

Most of the cases, FTP testing would be enough to isolate an issue if existed. However, sometime you need more deep testing and detailed output information. IPERF is one of popular opensourced software and easily use, save your time and it can be downloaded anywhere from Internet. You could download it here as well.
Click to download from our site

IPERF version 1.7.0 
JPERF version 2.0.0

There are many modified versions in out there, but I am using version 1.7 only. If you are Linux user, you can download thru software repository system.

 

IPERF is running on two different modes, server and client mode. If you are not specifiying direction of data transfer, always client sent data to the server direction by default

You need to designate a testing device at each location. Let’s say device "A" at NYC and device "B" at Washington D.C. Device "A" is doing server role and device "B" runs as a client on our example. Default TCP window size on server side is 85.3Kbyte which is a bit bigger than default window size which is 64kbyte(most of the window systems).

Internet Speed issue - How to troubleshoot Iperf & Jperf
Pic 1 – Network Layout

At the 1st attempt, 8Kbyte of TCP window size of IPERF‘s client will be used. And on 2nd attempt, we will increase TCP window size to 64Kbyte for better throughput.

 

[ 1st attempt ] 

The below picture is a screenshot of the server side. To set server mode, type "iperf -s &". TCP window size is set 85.3Kbytes and TCP port 5001 by default.

C_OServer:/# iperf -s &

Internet Speed Issue - How to troubleshoot(IPERF) pic 5

Pic 1 – Screenshot for Server side with default window size.

Once client initiates a testing, server will be synchronized and produce output of throughput rate(above).

In order to initiate the testing, type "iperf -c x.x.x.x" on DOS prompt.(x.x.x.x is IP server’s IP). Default port # is 5001(you can change it if you like). TCP throughput is shown very end of following screenshot (Pic 2)

c:>iperf -c x.x.x.x

Internet Speed Issue - How to troubleshoot(IPERF) pic 6

Pic 2 – Screenshot for client side with default window size.

 

[ 2nd attempt ]

 At 2nd attempt, we changed window size to 64kbyte. I gave us a bit better TCP throughput(of course). Pic 3 is a screenshot of IPERF in client mode.

c:>iperf -c 65.x.x.53 -w 64k

Internet Speed Issue - How to troubleshoot(IPERF) pic 7

Pic 3 – Screenshot of IPERF’s Client mode with 64Kbytes window size

Server was responsed to client and TCP throughput shown better than 1st testing.

Internet Speed Issue - How to troubleshoot(IPERF) pic 8

Pic 4 – Screenshot of IPERF’s Server mode
 

You can use various options below to perform complexity and systematic testing.

[ IPERF Option ]

Linux_Server:/ # 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) orts
  -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

 

[ JPERF ]

Below is quick screenshots for how to execute Jper and main page. Once you have extracted Jperf package, you will se below files in the Jperf folder. Click jperf (it is dos batch file)

Internet Speed Issue - How to troubleshoot(IPERF) pic 9

Pic 5 – How to troubleshoot TCP Throughput(JPERF)

 As you can see below, it is simple and very straightforward. Easy to use. One thing, you need to make sure your system has java installed.

Internet Speed Issue - How to troubleshoot(IPERF) pic 10

Pic 46 – Jperf’s main screen 

 

Leave a Reply