linux-nttcp Nov 2, 2016 · linux · 分享到: 翻译: 新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: 在两个数据包之间的间隔毫秒数。这种延时是通过**select和gettimeofday两个系统函数实现的。他们的值具有误导性,大多数主机无法实现绝对精准的延时量。代码实现中,将尽量的保证准确的时延。对于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.