iPerf3 -N参数详细图文分析

iPerf3手册里对-N参数的说明如下:

参数说明
-N, --no-delaySet the TCP no delay option, disabling Nagle’s algorithm. Normally this is only disabled for interactive applications like telnet.

这个参数用于,设置TCP的不延时选项,关闭Nagle’s算法,通常这个选项用于交互式人机对话的应用程序中(比如Telnet, X-window等),在这些应用中,应用程序就是会发送出大量的小报文包,而且期待这些小报文包能尽量得到ACK应答。
所以推而广之,iperf是一个测试工具,那么对就的就是在测试小报文包测试场景里(测试的目标就是看网络对大量小报文包的处理能力)时,也是非常适用这个参数。

在进行网络的小报文处理能力测试时需要使用这个参数

在类似这一类明确的小报文包测试场景里就应该关闭Nagle算法,保证每个小报文都被及时送出。
原理见:TCP的Nagle算法和delayed ack(延时发送和延时应答与稍带应答)
同时也应该关闭TCP_CORK选项

使用方法:

  iperf3 -c 192.168.3.26 -N

注意点:

  • iperf3的-N这个选项是客户端专用的

    iperf3的客户端是做为TCP的发送方存在(不使用-R选项时),所以-N这个选项不会关服务端(TCP的接收方)的避延时应答与稍带应答。
    延时应答与稍带应答,这二个选项默认是开启的,iPerf3并没有提供关闭延时应答的配置选项。所以如果你的测试场景是在“每个小包都能被及时发送,并尽可能早的返回应答”这个条件下的严格的小包测试场景,那么其实还是达不到最理想的测试条件的。但只要发送窗口和拥塞窗口够大,并且关闭Nagle算法和CORK算法后,延时应答只会引起ACK应答的延时,并不会引起吞吐量的下降。

  • TCP_CORK选项在TCP协议栈中默认是关闭的,不需要做任何设置,iPerf3也没有提供TCP_CORK配置选项
    详细见TCP_CORK选项

    理论上iperf3 -N需要把Nagle和TCP_CORK选项同时关闭,才能保证不受Nagle和CORK算法影响,将TCP的小包能及时的发出(应用层要求发送时即刻发送,不会因为TCP协议栈的原因延时发送)。Nagle算法在TCP协议栈中默认打开的(即TCP_NODELAY是默认关闭的)所以需要-N选项去将TCP_NODELAY打开(意味着将Nagle自满关闭); TCP_CORK在TCP协议栈中默认关闭的(即TCP协议栈默认不会因为CORK选项而延时发送应用层要求发送的TCP报文),所以无需要iPerf3提供配置选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值