Network bandwidth and speed test Iperf tools for Windows and Linux

Source: Internet
Author: User

Iperf is a network performance testing tool. Iperf can test TCP and UDP bandwidth quality. The Iperf can measure the maximum TCP bandwidth with multiple parameters and UDP characteristics. Iperf can report bandwidth, delay jitter, and packet loss. Using Iperf, this feature can be used to test the performance of some network devices such as routers, firewalls, switches, and so on.

There are two versions of Iperf, Windows and Linux versions.

: https://iperf.fr/iperf-download.php

There are various versions of this download, as well as Linux RPM packages.

Installing Iperf
    1. For the Windows version of the Iperf, the extracted iperf.exe and cygwin1.dll directly copied to the%systemroot% directory can be WinXP or Win7 The daily use, often see%systemroot% this noun, But a lot of people can't figure out what it means. In fact, it is simple, it is the abbreviation of the system directory. Enter%systemroot% directly in the File Address field.
    2. For the Linux version of Iperf, please use the following command to install

      Gunzip-c iperf-<version>.tar.gz | TAR-XVF-

      CD iperf-<version>

      ./configure

      Make

      Make install

However, a migration version of iperf2.5 was found on the network. Iperf also has a graphical interface program called Jperf, which simplifies the construction of complex command-line parameters using the Jperf program, and it also saves test results while graphically displaying the results in real time. Of course, Jperf can test TCP and UDP bandwidth quality. The Jperf can measure the maximum TCP bandwidth with multiple parameters and UDP characteristics. Jperf can report bandwidth, delay jitter, and packet loss. To test the accuracy, try to use the Linux environment test.

Iperf and Jperf related files are packaged in the attachment

The main functions of Iperf are as follows:

Tcp
    • Measuring network bandwidth
    • Report the size and observations of the MSS/MTU value
    • Supports TCP window values through socket buffering
    • Multithreading is supported when a P thread or WIN32 thread is available. Client and server support simultaneous multi-connection
Udp
    • Clients can create UDP streams of specified bandwidth
    • Measure Drop Packets
    • Measurement delay
    • Support Multicast
    • Multithreading is supported when P threads are available. Client and server support simultaneous multi-connection (Windows not supported)
Other
    • In the right place, you can use K (kilo-) and M (mega-) in the options. For example, 131072 bytes can be replaced with 128K.
    • You can specify the total time to run, and you can even set the total amount of data transferred.
    • In the report, choose the most appropriate unit for your data.
    • The server supports multiple connections, rather than waiting for a single-threaded test.
    • Displays network bandwidth, fluctuations, and drops repeatedly at specified intervals.
    • The server side can be run as a daemon.
    • The server side can be run as a Windows service.
    • Use typical data streams to test the impact of link-layer compression on available bandwidth.
    • Support transfer of specified files, qualitative and quantitative testing of iperf use methods
Iperf How to use
    1. Using Iperf (for example in Windows version)

      Enter the Iperf command at the command prompt to run Iperf, and use the command iperf–help to view Iperf Help

    2. Iperf parameter Introduction

      Command-Line Options

      Describe

      Client-to-server sharing options

      -F,--format [Bkmabkma]

      Formats the output of the number of bandwidths. The supported formats are:
      ' B ' = Bits/sec ' b ' = bytes/sec
      ' k ' = kbits/sec ' k ' = kbytes/sec
      ' m ' = mbits/sec ' m ' = mbytes/sec
      ' g ' = gbits/sec ' g ' = gbytes/sec
      ' A ' = Adaptive bits/sec ' A ' = Adaptive bytes/sec
      The adaptive format is one of kilo-and mega-. Fields other than bandwidth are output as bytes, unless the format of the output is specified, the default parameter is a.
      Note: Kilo = 1024x768 When calculating bytes byte, Mega = 1024^2,giga = 1024^3. Typically, in the network, Kilo = +, Mega = 1000^2, and Giga = 1000^3, so Iperf also calculates the bit (bit) by this. If this bothers you, use the-F B parameter and calculate it yourself.

      -I.,--interval #

      Sets the time interval, in seconds, between each report. If set to a value other than 0, the test report is output at this time interval. The default value is zero.

      -L,--len #[km]

      Sets the length of the read-write buffer. The default TCP mode is 8KB,UDP by default to 1470 bytes.

      -M,--print_mss

      Output TCP MSS value (via TCP_MAXSEG support). MSS values are generally 40 bytes smaller than the MTU value. Usual situation

      -P,--port #

      Set the port to be the same as the server-side listening port. The default is Port 5001, which is the same as ttcp.

      -U,--UDP

      Use UDP instead of TCP. See the-B option.

      -W,--window #[km]

      Sets the socket buffer to the specified size. For TCP mode, this setting is the TCP window size. For UDP, this is set to accept the buffer size of the UDP packet, limiting the maximum value that can be accepted for the packet.

      -B,--bind host

      One of several addresses that are bound to a host. For the client, this parameter sets the out-of-stack interface. For the server side, this parameter is set into the stack interface. This parameter is only used for hosts with multiple network interfaces. In Iperf UDP mode, this parameter is used to bind and join a multicast group. Use a multicast address ranging from 224.0.0.0 to 239.255.255.255. Refer to the-t parameter.

      -C,--compatibility

      Compatibility mode can be used when used with a lower version of Iperf. There is no need to use compatibility mode at both ends, but it is strongly recommended to use compatibility mode at both ends. In some cases, using some data streams can cause a server-side crash of version 1.7 or cause unintended connection attempts.

      -M,--mss #[km}

      Attempts to set the value of the TCP maximum information segment through the TCP_MAXSEG option. The size of the MSS value is usually the TCP/IP header minus 40 bytes. In Ethernet, the MSS value is 1460 bytes (MTU1500 bytes). Many operating systems do not support this option.

      -N,--nodelay

      Set the TCP no delay option to disable the Nagle ' s algorithm. Typically this option is disabled for interactive programs, such as Telnet.

      -V (from v1.6 or higher)

      Binds an IPV6 address.
      Service side: $ iperf-s–v
      Client: $ iperf-c <server IPv6 address>-V
      Note: In 1.6.3 or later, specifying a IPV6 address does not require the-B parameter binding, which is required prior to 1.6. In most operating systems, the IPV4 address of the IPV4 client map will be responded to.

      Server-side Private options

      -S,--server

      Iperf Server Mode

      -D (v1.2 or later)

      The UNIX platform Iperf is run as a daemon process. Under the Win32 platform, Iperf will run as a service.

      -R (v1.2 or later, for Windows only)

      Uninstall the Iperf service (if it is running).

      -O (v1.2 or later, for Windows only)

      Redirect output to the specified file

      -C,--client host

      If Iperf is running in server mode and a host is specified with the-c parameter, then Iperf will only accept connections from the specified host. This parameter does not work in UDP mode.

      -P,--parallel #

      The number of connections that were maintained before the server was shut down. The default is 0, which means that the connection is always accepted.

      Client-only options

      -B,--bandwidth #[km]

      The bandwidth used by UDP mode, Unit bits/sec. This option is related to the-u option. The default value is 1 mbit/sec.

      -C,--client host

      Run the Iperf client mode and connect to the specified Iperf server side.

      -D,--dualtest

      Run dual test mode. This causes the server side to reverse-connect to the client, using the port specified in the-l parameter (or by default, using the client to connect to the server-side port). This is done immediately at the same time as the operation. If you want an interactive test, try the-r parameter.

      -N,--num #[km]

      The number of buffers transmitted. Typically, Iperf sends data in 10 seconds. The-n parameter spans this limit and sends the specified length of data, regardless of how long it takes, for a specified number of times. Refer to the-L and-t options.

      -R,--tradeoff

      Reciprocating test mode. When the client-to-server test ends, the server side connects to the client by the port specified by the-l option (or by default, the client connects to the server-side port). When the client connection terminates, the reverse connection starts. If you need to do both bidirectional testing, try the-d parameter.

      -T,--time #

      Sets the total time for the transfer. Iperf sends packets of a specified length over a specified period of time. The default is 10 seconds. Refer to the-L and-n options.

      -L,--listenport #

      Specifies the port to use when the server is reverse-connected to the client. The default is to use a client connection to the port on the server.

      -P,--parallel #

      The number of threads. Specifies the number of threads that are used between the client and the server. The default is 1 threads. This parameter needs to be used by both the client and the server side.

      -S,--tos #

      The service type of the out-of-stack packet. Many routers ignore the TOS field. You can specify this value using a 16-digit number starting with "0x" or a 8-or 10-binary number starting with "0".
      For example, 16 binary ' 0x10 ' = 8 binary ' 020 ' = Decimal ' 16 '. The TOS value of 1349 is:
      Iptos_lowdelay Minimize Delay 0x10
      Iptos_throughput Maximize Throughput 0x08
      Iptos_reliability Maximize Reliability 0x04
      Iptos_lowcost Minimize Cost 0x02

      -T,--ttl #

      The TTL value of the outbound multicast packet. This is essentially the number of hops that data passes through the router. The default is 1, link local.

      -F (from v1.2 or higher)

      Use a specific data stream to measure bandwidth, such as the specified file.
      $ iperf-c <server address>-F <file-name>

      -I (from v1.2 or higher)

      As with-F, data is entered by a standard input and output file.

      Miscellaneous

      -H,--help

      Displays the command line reference and exits.

      -V,--version

      Displays version information and compilation information and exits.

    1. Testing the performance of a router with Iperf

    1. Test single-threaded TCP
    • Run Iperf on the server, enter command iperf–s–p 12345–i 1–m to enable Iperf on native port 12345

    • In the client run Iperf, enter the command iperf–c server-ip –p server-port –i 1–t 10–w 20K, where the parameters are described as follows:

      -C: Client mode, followed by server IP

      -P: Port after the server is listening

      -I: Set the time interval for bandwidth reporting in seconds

      -T: Sets the duration of the test in seconds

      -W: Set the TCP window size, generally can not set, the default can be

The following tests are followed:

Client

Service side

Where: Interval represents the time interval. Transfer represents the amount of data transferred within the time interval. The bandwidth is the transfer rate in the time interval. The last line is the statistic for this test. The test shows that the average bandwidth is 89.9mbit/s.

    1. Testing multithreaded TCP

      You can test multi-threaded TCP performance by adding the-p parameter to the client as follows: test case using two threads

      Client

    2. Test single-thread UDP (default bandwidth)
    • Run Iperf on the server, enter command iperf–s-u–p 12345–i 1 to enable Iperf on native Port 12345, and run in UDP mode
    • On the client run Iperf, enter the command iperf-c server-ip-p server-port-i 1-t 10-b, where the parameters are described as follows:

      -C: Client mode, followed by server IP

      -P: Port after the server is listening

      -I: Set the time interval for bandwidth reporting in seconds

      -T: Sets the duration of the test in seconds

      -B: Set the transmit bandwidth of UDP, Unit bit/s

Client

Service side

Among them, jitter is jitter, Lost/total is the number of packets lost, datagrams is the number of packets.

    1. Test single-threaded UDP (bandwidth is 10mbit/s)

      Set the client bandwidth to 10M and use the parameter-B to specify

Client

Service side

    1. Testing multithreaded UDP

      Similar to multi-threaded TCP, you only need the client to specify the number of threads using the-p parameter

    1. Test two-way transmission of UDP

      The client uses the parameter-D to run the dual test mode, and the client makes a UDP round trip test with the server. You can use the-l parameter to specify the port on which the dual test listens.

Client

Service side

    1. Testing UDP Reciprocating Transmissions

      Similar to bidirectional transports, using the parameter-R to run interactive mode, you can still specify the port of interaction using the-l parameter.

Client

Service side

    1. Distributed testing

      Test multiple IP addresses using multiple computers or using a single computer. When testing with multiple IP addresses for a single computer, you can use the-B command to bind an IP address of the NIC to test

Jperf How to use JPerf2.0 introduction

Jperf is a Java program that graphically iperf the command line;

Using the JPERF program simplifies the construction of complex command-line parameters, and it also saves test results while graphically displaying the results in real time. Jperf can test TCP and UDP bandwidth quality. The Jperf can measure the maximum TCP bandwidth with multiple parameters and UDP characteristics. Jperf can report bandwidth, delay jitter, and packet loss.

JPERF2.0 Operating Environment

Operating system: Java Runtime Environment: JREjxpiinstall.exe

Network requirements: Jperf can run on any IP network, including local Ethernet, Internet access and Wi-Fi networks.

Other: Use JPerf must have two components installed: JPerf server (for listening to incoming test requests) and JPERF client (for initiating a test session)

JPerf2.0 pages such as:

JPerf2.0 Specific Introduction
    1. Iperf command Line (cannot be entered directly)

  1. Service-Side settings

    Listening Port: 5001

    Client limit: Only allow client connections to be specified

    Num Connections: Maximum allowable number of connections, 0 not Limited

  2. Client settings

    Server address: 10.0.115.82, Port: 5001, concurrent stream: one

  3. Application Layer Settings

    1, compatible with the old version (when the server side and client side version is not the same)

    2, set the test mode: The total size of the transmission bytes 15Bytes or the total length of transmission time 15 seconds

    3. Simultaneous two-way transmission test

    4, separate two-way transmission test, the first measurement of C to s bandwidth

    5. Specify the files that need to be transferred

    6. Display TCP Maximum MTU value

  4. Transport Layer Settings

    1. TCP protocol

    Set Buffer size

    Specify the TCP window size

    Set the maximum MTU value for a TCP packet

    Set TCP no delay

    2. UDP protocol

    Set UDP maximum Bandwidth

    Set the UDP buffer

    UDP packet Package Size: Default 1470 Byte

      1. IP layer Settings

        1. Specify the TTL value

        2, service type (type of service, ToS), size range from 0x10 (minimum delay) to 0x2 (minimum cost)

        In WLANs that use 802.11e to control quality of service, TOS is mapped in the context of Wi-Fi multimedia (WMM) access.

    JPerf2.0 Test Examples:

    1. Test content (UDP):

      UDP buffer Size: default, 0.01M

      UDP Packet Size: default, 1470 byte

      Port: 5001

      Ttl:1

      Test NIC Bandwidth: 1000M

      Total test time: ten S

      Time interval: 1 s

      Display unit: M

      Test Flow: A

    2. Client:

      Bin/iperf.exe-c 10.0.115.82-u-P 1-i 1-p 5001-f m-b 1000m-t 10-t 1-f C:\Documents and settings\administrator\ desktop \c Lip2_cctv5_nba_3.75m_v3.3m_a160k.ts

      Unable to open the file stream

      Would use the default data stream

      ------------------------------------------------------------

      Client connecting to 10.0.115.82, UDP Port 5001

      Sending 1470 byte datagrams

      UDP buffer size:0.01 MByte (default)

      ------------------------------------------------------------

      [1832] Local 10.0.115.54 port 3297 connected with 10.0.115.82 Port 5001

      [ID] Interval Transfer Bandwidth

      [1832] 0.0-1.0 sec 3.46 MBytes 3.46 mbytes/sec

      [1832] 1.0-2.0 sec 3.32 MBytes 3.32 mbytes/sec

      [1832] 2.0-3.0 sec 3.43 MBytes 3.43 mbytes/sec

      [1832] 3.0-4.0 sec 3.42 MBytes 3.42 mbytes/sec

      [1832] 4.0-5.0 sec 3.43 MBytes 3.43 mbytes/sec

      [1832] 5.0-6.0 sec 3.39 MBytes 3.39 mbytes/sec

      [1832] 6.0-7.0 sec 3.43 MBytes 3.43 mbytes/sec

      [1832] 7.0-8.0 sec 3.40 MBytes 3.40 mbytes/sec

      [1832] 8.0-9.0 sec 3.43 MBytes 3.43 mbytes/sec

      [1832] 9.0-10.0 sec 3.47 MBytes 3.47 mbytes/sec

      [1832] 0.0-10.0 sec 34.2 MBytes 3.41 mbytes/sec

      [1832] Server report:

      [1832] 0.0-10.0 sec 34.2 MBytes 3.41 mbytes/sec 1.953 Ms 13/24378 (0.053%)

      [1832] Sent 24378 datagrams

      Bin\iperf.exe:ignoring extra argument--and

      Bin\iperf.exe:ignoring extra argument--settings\administrator\ desktop \clip2_cctv5_nba_3.75m_v3.3m_a160k.ts

      Done.

    1. Service side:

      Bin/iperf.exe-s-u-p 0-i 1-p 5001-f M

      ------------------------------------------------------------

      Server listening on UDP Port 5001

      Receiving 1470 byte datagrams

      UDP buffer size:0.01 MByte (default)

      ------------------------------------------------------------

      [1928] Local 10.0.115.82 port 5001 connected with 10.0.115.54 Port 3297

      [ID] Interval Transfer Bandwidth jitter lost/total Datagrams

      [1928] 0.0-1.0 sec 3.45 MBytes 3.45 mbytes/sec 0.281 Ms 1649892402/2462 (6.7e+007%)

      [1928] 1.0-2.0 sec 3.31 MBytes 3.31 mbytes/sec 0.264 Ms 0/2358 (0%)

      [1928] 2.0-3.0 sec 3.43 MBytes 3.43 mbytes/sec 0.288 Ms 6/2450 (0.24%)

      [1928] 3.0-4.0 sec 3.42 MBytes 3.42 mbytes/sec 0.271 Ms 4/2445 (0.16%)

      [1928] 4.0-5.0 sec 3.43 MBytes 3.43 mbytes/sec 0.269 Ms 0/2446 (0%)

      [1928] 5.0-6.0 sec 3.39 MBytes 3.39 mbytes/sec 0.662 Ms 0/2417 (0%)

      [1928] 6.0-7.0 sec 3.43 MBytes 3.43 mbytes/sec 0.252 Ms 0/2446 (0%)

      [1928] 7.0-8.0 sec 3.40 MBytes 3.40 mbytes/sec 0.232 Ms 3/2429 (0.12%)

      [1928] 8.0-9.0 sec 3.43 MBytes 3.43 mbytes/sec 0.083 Ms 0/2448 (0%)

      [1928] 9.0-10.0 sec 3.47 MBytes 3.47 mbytes/sec 0.218 Ms 0/2474 (0%)

      [1928] 0.0-10.0 sec 34.2 MBytes 3.41 mbytes/sec 1.953 Ms 13/24378 (0.053%)

      1. Test results

        [1832] 0.0-10.0 sec 34.2 MBytes 3.41 mbytes/sec 1.953 Ms 13/24378 (0.053%)

        [1832] Sent 24378 datagrams

        Link transfer udp speed: 3.42mbytes/sec

        Total delay: 1.953ms

        Drop Pack: 13 of 0.053%

        Total Transmission: 34.2MB

Network bandwidth and speed test Iperf tools for Windows and Linux

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.