📄 index.html
字号:
<HTML><HEAD><TITLE>Iperf version 2.0.0</TITLE><!-- $Id: index.html,v 1.1.1.1 2004/05/18 01:50:44 kgibbs Exp $ --></HEAD><BODY BGCOLOR="#FFFFFF" LINK="#006633" VLINK="#669900" ALINK="#669966"><CENTER><P><IMG SRC="dast.gif" ALT="Distributed Applications Support Team"></P></CENTER><H1>Iperf version 2.0.0</H1><H3>May 2004</H3><HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --><H3>NLANR applications support<BR><A HREF="http://dast.nlanr.net/">http://dast.nlanr.net/</A><BR><A HREF="mailto:dast@nlanr.net"><dast@nlanr.net></A></H3><P><FONT face="arial,helvetica"><H1>Iperf User Docs</H1><H4>Mark Gates<br> Ajay Tirumala<BR> Jon Dugan<BR> Kevin Gibbs<BR> </H4>May 2004 <P></CENTER>[<a href="#compiling">Compiling</A> | <A href="#features">Features</A> | <A href="#tuningtcp">Tuning a TCP connection</A> | <A href="#tuningudp">Tuning a UDP connection</A> | <A href="#multicast">Running multicast servers and clients</A> | <A href="#ipv6">IPv6 Mode</A> | <A href="#repmode">Representative Streams</A> |<A href="#daemon"> Running Iperf as a daemon</A> |<!--<A href="#adaptive">Adaptive Window Sizes</A> | --> <A href="#service">Running Iperf as a Windows Service</A> ] <HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --><H2><A name=compiling></A>Compiling</H2>Once you have the distribution, on UNIX, unpack it using gzip and tar. That will create a new directory 'iperf-<version#>' with the source files and documentation. <P>Iperf compiles cleanly on many systems including Linux, SGI IRIX, HP-UX, Solaris, AIX, and Cray UNICOS. Use '<TT>make</TT>' to configure for your OS and compile the source code. <BLOCKQUOTE><PRE>gunzip -c iperf-<version>.tar.gz | tar -xvf -cd iperf-<version>./configuremake</PRE></BLOCKQUOTE>To install iperf, use '<TT>make install</TT>', which will ask you where to install it. To recompile, the easiest way is to start over. Do '<TT>make distclean</TT>' then '<TT>./configure; make</TT>'. See the Makefile for more options. <P>If you have problems, please report them to <A href="mailto:dast@nlanr.net">dast@nlanr.net</A> and we will try to fix them quickly. <BR><HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --><H2><A name=features></A>Features</H2><UL> <LI>TCP <UL> <LI>Measure bandwidth <LI>Report MSS/MTU size and observed read sizes. <LI>Support for TCP window size via socket buffers. <LI>Multi-threaded if pthreads or Win32 threads are available. Client and server can have multiple simultaneous connections. <!-- <LI>Suggest the optimal window size for a connection where the OS allows setting window sizes in the granularity of bytes. </LI>--></UL> <LI>UDP <UL> <LI>Client can create UDP streams of specified bandwidth. <LI>Measure packet loss <LI>Measure delay jitter <LI>Multicast capable <LI>Multi-threaded if pthreads are available. Client and server can have multiple simultaneous connections. (This doesn't work in Windows.) </LI></UL> <LI>Where appropriate, options can be specified with K (kilo-) and M (mega-) suffices. So 128K instead of 131072 bytes. <LI>Can run for specified time, rather than a set amount of data to transfer. <LI>Picks the best units for the size of data being reported. <LI>Server handles multiple connections, rather than quitting after a single test. <LI>Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals. <LI>Run the server as a daemon (Check out <A href="http://www-itg.lbl.gov/nettest">Nettest</A> for running it as a secure daemon). <LI>Run the server as a Windows NT Service <LI>Use representative streams to test out how link layer compression affects your achievable bandwidth. <!-- <LI>A library of <A href="lib.html">useful functions and C++ classes.</A> </LI>--></UL><HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --><BR> <TABLE cellPadding=3 border=1> <TBODY> <TR vAlign=top> <TH align=left>Command line option</TH> <TH align=left>Environment variable option</TH> <TH align=left>Description</TH></TR> <TR> <TH bgColor=#cccccc colSpan=3>Client and Server options</TH></TR> <TR vAlign=top> <TD><A name=format></A><TT>-f, --format <I>[bkmaBKMA]</I></TT></TD> <TD><TT>$IPERF_FORMAT</TT></TD> <TD>A letter specifying the format to print bandwidth numbers in. Supported formats are <PRE> '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 </PRE> The adaptive formats choose between kilo- and mega- as appropriate. Fields other than bandwidth always print bytes, but otherwise follow the requested format. Default is 'a'. <BR><I>NOTE:</I> here Kilo = 1024, Mega = 1024^2 and Giga = 1024^3 when dealing with bytes. Commonly in networking, Kilo = 1000, Mega = 1000^2, and Giga = 1000^3 so we use this when dealing with bits. If this really bothers you, use -f b and do the math.</TD></TR> <TR vAlign=top> <TD><A name=interval></A><TT>-i, --interval <I>#</I></TT></TD> <TD><TT>$IPERF_INTERVAL</TT></TD> <TD>Sets the interval time in seconds between periodic bandwidth, jitter, and loss reports. If non-zero, a report is made every <I>interval</I> seconds of the bandwidth since the last report. If zero, no periodic reports are printed. Default is zero.</TD></TR> <TR vAlign=top> <TD><A name=len></A><TT>-l, --len <I>#[KM]</I></TT></TD> <TD><TT>$IPERF_LEN</TT></TD> <TD>The length of buffers to read or write. Iperf works by writing an array of <I>len</I> bytes a number of times. Default is 8 KB for TCP, 1470 bytes for UDP. Note for UDP, this is the datagram size and needs to be lowered when using IPv6 addressing to 1450 or less to avoid fragmentation. See also the <A href="#num">-n</A> and <A href="#time">-t</A> options.</TD></TR> <TR vAlign=top> <TD><A name=print_mss></A><TT>-m, --print_mss</TT></TD> <TD><TT>$IPERF_PRINT_MSS</TT></TD> <TD>Print the reported TCP MSS size (via the TCP_MAXSEG option) and the observed read sizes which often correlate with the MSS. The MSS is usually the MTU - 40 bytes for the TCP/IP header. Often a slightly smaller MSS is reported because of extra header space from IP options. The interface type corresponding to the MTU is also printed (ethernet, FDDI, etc.). This option is not implemented on many OSes, but the read sizes may still indicate the MSS.</TD></TR> <TR vAlign=top> <TD><A name=port></A><TT>-p, --port <I>#</I></TT></TD> <TD><TT>$IPERF_PORT</TT></TD> <TD>The server port for the server to listen on and the client to connect to. This should be the same in both client and server. Default is 5001, the same as ttcp.</TD></TR> <TR vAlign=top> <TD><A name=udp></A><TT>-u, --udp</TT></TD> <TD><TT>$IPERF_UDP</TT></TD> <TD>Use UDP rather than TCP. See also the <A href="#bandwidth">-b</A> option.</TD></TR> <TR vAlign=top> <TD><A name=window></A><TT>-w, --window <I>#[KM]</I></TT></TD> <TD><TT>$TCP_WINDOW_SIZE</TT></TD> <TD>Sets the socket buffer sizes to the specified value. For TCP, this sets the TCP window size. For UDP it is just the buffer which datagrams are received in, and so limits the largest receivable datagram size.</TD></TR> <TR vAlign=top> <TD><A name=bind></A><TT>-B, --bind <I>host</I></TT></TD> <TD><TT>$IPERF_BIND</TT></TD> <TD>Bind to <I>host</I>, one of this machine's addresses. For the client this sets the outbound interface. For a server this sets the incoming interface. This is only useful on multihomed hosts, which have multiple network interfaces. <P>For Iperf in UDP server mode, this is also used to bind and join to a multicast group. Use addresses in the range 224.0.0.0 to 239.255.255.255 for multicast. See also the <A href="#ttl">-T</A> option.</P></TD></TR> <TR vAlign=top> <TD><A name=compatibility></A><TT>-C, --compatibility </TT></TD> <TD><TT>$IPERF_COMPAT</TT></TD> <TD>Compatibility mode allows for use with older version of iperf. This mode is not required for interoperability but it is highly recommended. In some cases when using representative streaming you could cause a 1.7 server to crash or cause undesired connection attempts.</P></TD></TR> <TR vAlign=top> <TD><A name=mss></A><TT>-M, --mss <I>#[KM}</I></TT></TD> <TD><TT>$IPERF_MSS</TT></TD> <TD>Attempt to set the TCP maximum segment size (MSS) via the TCP_MAXSEG option. The MSS is usually the MTU - 40 bytes for the TCP/IP header. For ethernet, the MSS is 1460 bytes (1500 byte MTU). This option is not implemented on many OSes.</TD></TR> <TR vAlign=top> <TD><A name=nodelay></A><TT>-N, --nodelay</TT></TD> <TD><TT>$IPERF_NODELAY</TT></TD> <TD>Set the TCP no delay option, disabling Nagle's algorithm. Normally this is only disabled for interactive applications like telnet.</TD></TR> <TR> <TD><TT>-V </TT>(from v1.6 or higher)</TD> <TD>.</TD> <TD>Bind to an IPv6 address <BR>Server side: <BR>$ iperf -s -V <P>Client side: <BR>$ iperf -c <Server IPv6 Address> -V <BR> </P>Note: On version 1.6.3 and later a specific IPv6 Address does not need to be bound with the <A href="#bind">-B</A> option, previous 1.6 versions do. Also on most OSes using this option will also respond to IPv4 clients using IPv4 mapped addresses.</TD></TR> <TR> <TH bgColor=#cccccc colSpan=3>Server specific options</TH></TR> <TR vAlign=top> <TD><A name=server></A><TT>-s, --server</TT></TD> <TD><TT>$IPERF_SERVER</TT></TD> <TD>Run Iperf in server mode.</TD></TR> <TR> <TD><TT>-D </TT> (from v1.2 or higher)</TD> <TD>.</TD> <TD>Run the server as a daemon (Unix platforms) <BR>On Win32 platforms where services are available, Iperf will start running as a service.</TD></TR> <TR> <TD><TT>-R </TT>(only for Windows, from v1.2 or higher)</TD> <TD>.</TD> <TD>Remove the Iperf service (if it's running). </TD></TR><TR> <TD><TT>-o </TT>(only for Windows, from v1.2 or higher)</TD> <TD>.</TD> <TD>Redirect output to given file. </TD></TR> <TR vAlign=top> <TD><A name=sclient></A><TT>-c, --client <I>host</I></TT></TD> <TD><TT>$IPERF_CLIENT</TT></TD> <TD> If Iperf is in server mode, then specifying a host with -c will limit the connections that Iperf will accept to the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -