Iperf CSV 输出格式

use*_*325 11 iperf

如果我使用带有 -y C 和 -r 参数的 iperf 来测试双向传输并将其导出为 CSV。

我得到了一些输出,但问题是我不知道列名是什么。例如它显示了三行数据,但我不知道哪些对应于发送,哪些对应于接收。

我可以猜到其他列,但我宁愿确定。

我在任何地方都找不到这个文件!

sci*_*rus 11

这些字段是

时间戳、源地址、源端口、目标地址、目标端口、间隔、传输的字节数、每秒比特数

我通过查看推断出这一点

$ iperf -c localhost -r
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size:  648 KByte (default)
------------------------------------------------------------
[  5] local 127.0.0.1 port 54401 connected with 127.0.0.1 port 5001
[  4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 54401
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  50.3 GBytes  43.2 Gbits/sec
[  4]  0.0-10.0 sec  50.3 GBytes  43.2 Gbits/sec

$ iperf -c localhost -r -y C
20140114124826,127.0.0.1,54402,127.0.0.1,5001,5,0.0-10.0,52551090176,42041052917
20140114124826,127.0.0.1,5001,127.0.0.1,54402,4,0.0-10.0,52551090200,41999020136
Run Code Online (Sandbox Code Playgroud)

编辑:您可以在这里找到相关的源代码:

// TCP Reporting
printf( reportCSV_bw_format,
timestamp,
(stats->reserved_delay == NULL ? ",,," : stats->reserved_delay),
stats->transferID,
stats->startTime,
stats->endTime,
stats->TotalLen,
speed);
} else {
// UDP Reporting
printf( reportCSV_bw_jitter_loss_format,
timestamp,
(stats->reserved_delay == NULL ? ",,," : stats->reserved_delay),
stats->transferID,
stats->startTime,
stats->endTime,
stats->TotalLen,
speed,
stats->jitter*1000.0,
stats->cntError,
stats->cntDatagrams,
(100.0 * stats->cntError) / stats->cntDatagrams, stats->cntOutofOrder );
} 
Run Code Online (Sandbox Code Playgroud)


小智 5

接受的答案会跳过一个奇怪的字段:源和目标 IP+端口对之后的字段:

timestamp,
source_address,
source_port,
destination_address,
destination_port,
XXX,                  <---- this one
interval,
transferred_bytes,
bits_per_second
Run Code Online (Sandbox Code Playgroud)

接受的答案中的代码表示这来自变量transferID。这里的一些其他答案似乎认为它代表连接标识符或连接方向。然而,快速浏览代码表明它transferID来自一个名为 的全局变量groupID。它被初始化为零:

// Global ID that we increment to be used 
// as identifier for SUM reports
int groupID = 0;
Run Code Online (Sandbox Code Playgroud)

然而,快速查看代码似乎表明它增加和减少了很多,非常令人困惑。似乎没有任何定义的常量来说明它的含义。手动测试 ( iperf version 2.0.9 (9 Sept 2016) pthreads) 显示连接之间重用的数量。所以我想这个故事的寓意是……忽略这个数字?或者使用iperf3。