如果我使用带有 -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。