记一次UDP丢包严重的坑,通过iperf3测试,以及iperf3的程序下载和使用

 

  • 环境:redhat6.9
  • 服务端:192.168.7.134
  • 客户端:192.168.7.132
  • 测试工具:iperf3:参数如下:

  • 工具下载地址https://download.csdn.net/download/bangbang_1/12035246
  • 解压压缩包进入iperf-3.0.12文件夹
  • 1. cd iperf-3.0.12
    2. ./configure
    3. make
    4. make install

    基本参数解释和使用方法参考上截图:

  • 参数说明:

    -s 以server模式启动。//iperf3 -s 192.168.7.134
    -c 以client模式启动 。//iperf3 -c 192.168.7.132

    通用参数:
    -f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,#iperf3 -c 192.168.7.132 -f M
    -i sec 以秒为单位显示报告间隔 //iperf -c 192.168.7.132 -i 2 默认1s
    -l 缓冲区大小,默认是8KB //iperf -c 192.168.100.6 -l 64
    -m 显示tcp最大mtu值
    -p 指定服务器端使用的端口或客户端所连接的端口#iperf -s -p 5001;iperf -c 192.168.7.132 -p 5001
    -u 使用udp协议 //默认tcp
    -w 指定TCP窗口大小,默认是8KB
    -B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
    -M 设定TCP数据包的最大mtu值
    -N 设定TCP不延时
    -V 传输ipv6数据包

    server专用参数:
    -D 以服务方式运行。#iperf -s -D
    -R 停止iperf服务。针对-D,#iperf -s -R
    -t 测试时间,默认20秒,#iperf -c 192.168.100.6 -t 5
    -F 指定需要传输的文件
    -T 指定ttl值

    使用:

      服务器端: 
      iperf -s -d 
      客户端: 
      执行
       iperf -c 192.168.7.132 -u -b 100M -f M

  • 发现丢包十分严重,最后发现core中的读和写buf的值只有100k 

  • 
    #修改自动生效,重启恢复原值
    echo 16777216 > /proc/sys/net/core/rmem_max
    echo 16777216 > /proc/sys/net/core/rmem_default
    echo 16777216 > /proc/sys/net/core/wmem_max
    echo 16777216 > /proc/sys/net/core/wmem_default
    
    #可以修改/etc/sysctl.conf 永久保存

其余测试参数参考链接:https://www.cnblogs.com/klb561/p/9215952.html

下载参考链接:https://download.csdn.net/download/bangbang_1/12035246

相关linux查询命令:dstat 参考:https://ipcmen.com/dstat

### 回答1: Iperf3是一款网络性能测试工具,它可以进行TCPUDP带宽测量。不过在UDP测试中,Iperf3的丢包率可能不是很准确。 首先,UDP是一种无连接协议,数据包不会保证被传输到接收端。因此,在进行UDP测试时,即使在正常情况下发送的数据包没有丢失,也可能在网络拥塞或延迟等情况下发生数据包丢失的情况。这种情况下,Iperf3的UDP测试会误判数据包丢失率。 其次,Iperf3对于UDP测试丢包率计算方法并不精确,它通常使用公式“丢包率=1-(接收数据包数量/发送数据包数量)”来计算。但是这种计算方式并没有考虑丢失数据包的时间以及数据包的大小等因素。因此,在一些特殊情况下,Iperf3的丢包率算出来的数据可能会偏高或偏低。 因此,如果要进行准确的网络丢包测试,建议使用其他的网络性能测试工具或者结合Iperf3进行多种测试结果的比较。同时,在进行测试时应该考虑网络环境、延迟等因素,以及多次测试取平均值的情况。 ### 回答2: Iperf3是一款开源的网络性能测试工具,可以用来测试TCPUDP网络吞吐量、延迟、带宽等性能指标。然而,由于UDP传输不可靠的特性,iperf3在进行UDP传输测试时可能会出现丢包情况,这也是网络中常见的现象之一。 然而,有时候iperf3 udp测试丢包率的结果并不准确。这主要是由于以下几个原因: 1、网络拥塞在UDP测试中会导致数据包的丢失,但是由于网络拥塞是瞬时现象,因此,UDP测试只测量了瞬间网络状态,而未测量网络性能的长期表现。 2、iperf3 UDP测试可能存在数据包重传的问题。在udp传输过程中,如果数据包丢失,则发送端通常会对丢失的数据包进行重传,因此,重传数据包的数量可能会导致iperf3测试结果偏差。 3、使用不同的操作系统和运行环境进行iperf3测试也可能会影响测试结果。不同操作系统和运行环境的网络协议栈实现方式不同,可能会对UDP传输性能产生不同的影响,从而导致测试结果不准确。 因此,为了获得更准确的测试结果,我们应该注意以下几点: 1、尝试进行多次测试,以便获得更准确的平均值。 2、将iperf3测试结果与其他网络性能测试工具的结果进行比较,以验证iperf3测试结果的准确性。 3、使用同一操作系统和运行环境的系统进行测试,可以消除不同操作系统的差异。 总之,iperf3 udp测试丢包率不准是一种常见现象,我们在进行UDP传输测试时应该注意这些可能影响测试结果的因素,并采取相应的措施进行测试,以获得准确的测试结果。 ### 回答3: Iperf3是一款基于UDPTCP协议的网络测速工具,它可以用于测试网络带宽、延迟、丢包率等几个方面的性能。 然而,在使用iperf3进行UDP测试时,我们可能会发现测试结果显示的丢包率并不准确,这是因为UDP协议本身就存在一些特性导致的。 首先,UDP协议是面向无连接的,它不像TCP协议那样需要进行握手和连接,因此,在网络拥堵时,数据包可能会因为网络负荷过重而被丢弃,这种情况下测试结果会显示出很高的丢包率。但是,也有可能是因为网络的拥堵导致路由器缓冲区满了,导致后续的数据包发生了乱序和最终的丢失,这也会导致测试结果的丢包率不准确。 其次,UDP协议是不可靠的,它只是尽力地将数据包送至目的地,而不保证送达的可靠性。在面对网络状况较坏的情况下,数据包可能会出现丢失或者大量重传,都会对测试结果产生影响,使得丢包率显示不准确。 另外,在进行UDP测试时,我们可以采用多次测试并取平均值的方式,以减小测试误差,并且加上选项"--udp-bw"设置限制带宽,避免过多大数据包丢失,从而更加准确的得出测试结果。 综上所述,iperf3 UDP测试丢包率不准确,是由于UDP协议本身的特性造成的,并不代表iperf3工具本身的问题。在进行UDP测试时,我们需要了解UDP协议的性质,并采取正确的测试方式,才能得到准确的测试结果。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值