linux-nttcp

翻译: 新TCP测试工具——nttcp

原链接:http://linux.die.net/man/1/nttc 作者:Elmar Bartel

名称

  nttcp 新的tcp测试工具,适用于Linux系统。

语法格式

  nttcp [ local options ] partner-host [ partner-host ] ... [ remote options ]

描述

  nttcp用来测量TCP,UDP和多播UDP连接的传输速率。使用 nttcp时,需要两台电脑,一台本地主机,一台服务器。在服务器端,只需要简单的运行nttcp -i。在本地主机上,将partner-host设置为服务起的IP地址。两台电脑会自动建立连接进行传输。在默认情况下,客户端会向服务器发送2048个buffer,每个数据包大小为4KB(总共8M字节)。发送端和接收端的性能情况都会反馈到本地主机,我们可以通过命令行调整几乎每一个参数,甚至如何显示结果。

参数选项

-r:

定义传输接收方向,本地主机为接收端,数据由服务器端发往本地主机。

-t:

定义传输发送方向,本地主机为发送端,数据由本地主机发往服务器端,这是默认的选项

-T:

打印标题线。

-u:

使用UDP协议代替TCP协议(默认为TCP协议)。

-g:

在两个数据包之间的间隔毫秒数。这种延时是通过**selectgettimeofday两个系统函数实现的。他们的值具有误导性,大多数主机无法实现绝对精准的延时量。代码实现中,将尽量的保证准确的时延。对于TCP连接来说,这个时延只是在调用系统函数write**之间的时间间隔,并不是物理设备真正输出之间的时延。

-v:

给出更多更详细的输出内容,仅用于调试目的。

-D:

在发送端设置为TCP_NODELAY选项,发送端将不缓存任何wirte请求。(存疑)

-f format string

格式化输出的内容,具体见OUTPUT。

-n number of buffer

每次发送的buffer数量,默认为2048个。

-l length of a buffer

每一个buffer的大小(说的就是每一个数据包大小),默认为4096KB。

-x fixed length of data

发送数据包的总长度,如果接下来定义了-n或者-l ,将会自动计算剩下来的那个值,但是要保证buffers*length = fixed data length。

-w:

定义接收方与发送放的buffer size,这个通常是由系统决定的,通常为16KB。

-c:

如果这一项被启用,接收端将会比较接收端的字节与发送端的字节。至多前100个不同将会被报告出来。

-s:

如果使用UDP传输,将会强制启动一个stream pattern.

-S seed string

产生一个字符串来传输,使用-S将会自动启动-c。

-p port number

设置对方机器的端口,默认为5037。

-i:

作为接收端监听连接请求。

-R number of getpid() calls*:

这个选项将不会传输任何的数据,计算每秒调用getpid()的次数,通常作为衡量计算速度和调用端口速度的测量方法。

-m:

使用多播IP,将会强制使用-t和-u参数。

输出

  输出结果由两行字母组成(如果使用多播将会由多行结果)。第一行结果是本地主机的测量结果,第二行结果是对端主机的测量结果。第一行的第一个字母为“l”(local),而第二行的第一个字母为“r”(remote);如果使用了“-T”参数,就会多一行标题行。默认的输出格式如下所示:

Sides Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s
l 8388608 7.51 0.25 8.7307 259.8676 2048 272.83 8120.86
r 8388608 7.55 0.95 8.6804 68.9853 3831 507.42 4032.63

标有CPU计时(CPU s)和频率(CPU-C/s)的值表示使用系统和用户的总时间。Real时间和频率值表示从传输开始到结束的总时间。还有可能由另一种格式输出,详见原文档。

n prints the buffer count. Integer value. c prints the number of calls. Integer value. rt prints the real time in s. Float value. rbr prints the real bit rate in MBit/s. Float value. rcr prints the real call rate in calls/s. Float value. ct prints the cpu time in s. Float value. cbr prints the cpu bit rate in MBit/s. Float value. ccr prints the cpu call rate in calls/s. Float value. The default format is produced with the following format string: "%9b%8.2rt%8.2ct%12.4rbr%12.4cbr%8c%10.2rcr%10.2ccr"

作者

Elmar Bartel Fakultaet fuer Informatik, Technische Universitaet Muenchen.