ESP32吞吐性能评估(三):以太网

ESP32吞吐性能评估(三):以太网,第1张

文章目录
  • 1. 概述
  • 2. 测试工具
  • 3. ESP32以太网吞吐性能测试
    • 3.1 UDP测试
      • 3.1.1 ESP32 UDP发送
        • 3.1.1.1 命令
      • 3.1.2 PC UDP发送
        • 3.1.2.1 命令
        • 3.1.2.2 测试输出
          • 3.1.2.2.1 带宽100M
          • 3.1.2.2.1 带宽60M
    • 3.2 TCP测试
      • 3.2.1 ESP32 TCP发送
        • 3.2.1.1 命令
        • 1.2.1.2 输出
      • 3.2.2 PC TCP发送
        • 3.2.2.1 命令
        • 3.2.2.2 输出
  • 4. 总结

1. 概述

最近在研究ESP32芯片以太网的驱动,在这里记录一下以太网开发过程中的测试记录。
做以太网吞吐性能测试的时候,官方例程描述的是测试UDP上行和下行的速率即可,这里将UDP上下行、TCP上下行都测试一下。

2. 测试工具
  • 网络吞吐性能测试工具iperf2
  • ESP32板卡
  • 网线
  • IDE:Vscode
3. ESP32以太网吞吐性能测试 3.1 UDP测试 3.1.1 ESP32 UDP发送

ESP32作为发起方,PC作为接收方测试,测试ESP32的上行速率。

3.1.1.1 命令
  • PC端命令
iperf2.exe -u -s -l 1024 -i 3

iperf2.exe提示数据包过大的错误,直接使用iperf3。

指令解析:
-u选项:指定传输协议为udp协议
-s选项:指定为服务端
-l选项:指定发送的报文的长度,为什么要指定,因为默认会报错:
E (195576) esp.emac: emac_esp32_transmit(235): insufficient TX buffer size E (195576) iperf: udp client send abort: err=113
-I选项:指定输出报告的频次,这里值为3,代表每3秒输出一次统计报告,不开启这个选项,日志非常少,只有总体统计数据。

  • ESP32端命令
iperf -u -c 192.168.5.11 -i 3 -t 30 -l 1024

指令解析:
-c选项:指定为客户端,后面跟的是服务端的IP地址
-t选项:指定测试次数
-l选项:同上,两者的值必须设定为一样的值,否则会报错

执行测试之前读一下package checker的统计数据,读一次后会清零,便于统计测试中的异常报文数据。package cheker为芯片自带的发送、接收、错误统计计数器,驱动中实现即可。

pkg_checker info

输出如下:

I (16147) ETH_IPerf: mdi_rx_pkg_count:363
I (16147) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
I (16147) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
I (16157) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
I (16157) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
I (16177) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
I (16187) ETH_IPerf: mdi_rx_pkg_count:0
I (16187) ETH_IPerf: rmii_tx_pkg_count:2
I (16187) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
I (16197) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
I (16197) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
I (16207) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
I (16207) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
I (16217) ETH_IPerf: rmii_tx_sfd_missed_count:0
  • 命令输出

    • ESP32
    mode=udp-client sip=192.168.5.10:5001, dip=192.168.5.11:5001, interval=3, time=30
    I (2364177) iperf: Socket created, sending to 184920256:5001
    
            Interval Bandwidth
       0-   3 sec       91.90 Mbits/sec
       3-   6 sec       92.71 Mbits/sec
       6-   9 sec       92.62 Mbits/sec
       9-  12 sec       92.53 Mbits/sec
      12-  15 sec       92.64 Mbits/sec
      15-  18 sec       92.66 Mbits/sec
      18-  21 sec       92.66 Mbits/sec
      21-  24 sec       92.77 Mbits/sec
      24-  27 sec       92.78 Mbits/sec
      27-  30 sec       92.69 Mbits/sec
       0-  30 sec       92.60 Mbits/sec
    I (2394187) iperf: UDP Socket client is closed
    I (2394187) iperf: iperf exit
    
    • PC端输出
    PS C:\Users\25267> iperf2.exe -u -s -l 1400 -i 3
    ------------------------------------------------------------
    Server listening on UDP port 5001
    UDP buffer size: 64.0 KByte (default)
    ------------------------------------------------------------
    [  1] local 192.168.5.11 port 5001 connected with 192.168.5.10 port 51783
    [ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
    [  1] 0.00-3.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 3.00-6.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 6.00-9.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 9.00-12.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 12.00-15.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 15.00-18.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 18.00-21.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 21.00-24.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 24.00-27.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    recvmsg failed: Connection timed out.
    [  1] 27.00-30.00 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [  1] 0.00-31.49 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-1.$%)
    [356] WARNING: ack of last datagram failed.
    

    PC端速率显示有异常,用抓包工作wireshark怕捕获一下数据。

    从抓包工具抓取的报文来看,ESP32已经将数据发出来了,怀疑是iperf工具版本匹配的问题。将来使用udp测试程序测试一下。

    另外,测试了一下从PC端发起一个iperf客户端,使用wireshark的报文,发现其是有数据的,而不像esp32的iperf发送的全为0,而是有规律的数据,通过将iperf的发送数据改为字符‘0’之后,就有吞吐速率了,但是会报错:包序号错乱。这样看来esp32实现的iperf并不完全兼容iperf2,后面将使用这个工程自带的iperf_test.py自动化测试工具再次做进一步的测试。

  • 查看包统计

    I (2486747) ETH_IPerf: mdi_rx_pkg_count:618353
    I (2486747) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
    I (2486747) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
    I (2486757) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
    I (2486757) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
    I (2486777) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
    I (2486787) ETH_IPerf: mdi_rx_pkg_count:0
    I (2486787) ETH_IPerf: rmii_tx_pkg_count:4367927
    I (2486797) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
    I (2486797) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
    I (2486807) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
    I (2486807) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
    I (2486817) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
    I (2486817) ETH_IPerf: rmii_tx_sfd_missed_count:0
    

从统计数据中可以看到,数据集中在mdi_rx_pkg_count和rmii_tx_pkg_count两个数据项上,这两个数据表示mdi接口接收的大于等于64Bytes小于1518Bytes的正常报文数量,无异常报文数据。

3.1.2 PC UDP发送

PC作为UDP的发起方,ESP32作为UDP的接收方,测试ESP32的下行速率。

3.1.2.1 命令
  • PC作为客户端
iperf2.exe -u -c 192.168.5.10 -i 3 -t 30 -b 100M -l 1024

命令解析
-b选项:指定网络带宽,这里指定的是100Mbps,和phy的标称速率匹配,预期的测试速率应该是100Mbps。

  • ESP32作为服务端
iperf -u -s -i 3 -t 45 

命令解析:
-t选项:可以看到pc端设置为30, esp32端为45,是为了保证pc端能够完整做完测试,防止esp32到30即推出,而pc端还没收到反馈。

3.1.2.2 测试输出 3.1.2.2.1 带宽100M
  • PC端
PS C:\Users\25267> iperf2.exe -u -c 192.168.5.10 -i 3 -t 30 -b 100M
------------------------------------------------------------
Client connecting to 192.168.5.10, UDP port 5001
Sending 1470 byte datagrams, IPG target: 112.15 us (kalman adjust)
UDP buffer size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local 192.168.5.11 port 63175 connected with 192.168.5.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-3.00 sec  33.4 MBytes  93.5 Mbits/sec
[  1] 3.00-6.00 sec  34.2 MBytes  95.6 Mbits/sec
[  1] 6.00-9.00 sec  34.2 MBytes  95.5 Mbits/sec
[  1] 9.00-12.00 sec  34.2 MBytes  95.6 Mbits/sec
[  1] 12.00-15.00 sec  34.2 MBytes  95.7 Mbits/sec
[  1] 15.00-18.00 sec  34.0 MBytes  95.1 Mbits/sec
[  1] 18.00-21.00 sec  34.1 MBytes  95.4 Mbits/sec
[  1] 21.00-24.00 sec  33.7 MBytes  94.1 Mbits/sec
[  1] 24.00-27.00 sec  33.9 MBytes  94.7 Mbits/sec
[  1] 27.00-30.00 sec  33.2 MBytes  92.9 Mbits/sec
[  1] 0.00-30.01 sec   339 MBytes  94.8 Mbits/sec
[  1] Sent 241861 datagrams
[356] WARNING: did not receive ack of last datagram after 10 tries.

pc端的测试速率显示正常。

  • ESP32端
mode=udp-server sip=192.168.5.10:5001, dip=0.0.0.0:5001, interval=3, time=30
I (851877) iperf: Socket created
I (851877) iperf: Socket bound, port 35091
        Interval Bandwidth
   0-   3 sec       1.09 Mbits/sec
   3-   6 sec       0.04 Mbits/sec
   6-   9 sec       0.08 Mbits/sec
   9-  12 sec       0.11 Mbits/sec
  12-  15 sec       0.25 Mbits/sec
  15-  18 sec       0.80 Mbits/sec
  18-  21 sec       0.50 Mbits/sec
  21-  24 sec       0.68 Mbits/sec
  24-  27 sec       0.38 Mbits/sec
  27-  30 sec       0.00 Mbits/sec
   0-  30 sec       0.39 Mbits/sec

可以看到ESP32端的速度有点不对劲,应该为100Mbps才对,查一下包统计器输出

  • 包统计器输出
I (931087) ETH_IPerf: mdi_rx_pkg_count:242096
I (931087) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
I (931087) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
I (931097) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
I (931097) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
I (931107) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
I (931127) ETH_IPerf: mdi_rx_pkg_count:0
I (931127) ETH_IPerf: rmii_tx_pkg_count:4
I (931127) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
I (931137) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
I (931137) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
I (931147) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
I (931157) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
I (931157) ETH_IPerf: rmii_tx_sfd_missed_count:0

从包统计器来看,没有异常包,需要从其它地方找原因,降低带宽至60M,发现esp32端的速率仍然在1Mbps左右,此时更换测试工具,在windows子系统中安装ubuntu20.04,安装iperf再行测试。
简要安装方法:

  • 安装ubuntu20.04子系统
wsl.exe --install -d Ubuntu-20.04
  • 安装iperf
sudo apt install iperf
3.1.2.2.1 带宽60M
  • PC端(使用wsl.exe在20.04环境下使用iperf)
zhou@LAPTOP-DI0T6VVM:/mnt/c/Users/25267$ iperf -u -c 192.168.5.10 -i 3 -t 30 -b 60M
------------------------------------------------------------
Client connecting to 192.168.5.10, UDP port 5001
Sending 1470 byte datagrams, IPG target: 186.92 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 172.28.64.184 port 55058 connected with 192.168.5.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 3.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3]  3.0- 6.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3]  6.0- 9.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3]  9.0-12.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 12.0-15.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 15.0-18.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 18.0-21.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 21.0-24.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 24.0-27.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3] 27.0-30.0 sec  22.5 MBytes  62.9 Mbits/sec
[  3]  0.0-30.0 sec   225 MBytes  62.9 Mbits/sec
[  3] Sent 160498 datagrams
[  3] WARNING: did not receive ack of last datagram after 10 tries.
  • ESP32端
mode=udp-server sip=192.168.5.10:5001, dip=0.0.0.0:5001, interval=3, time=45
I (644907) iperf: Socket created
I (644907) iperf: Socket bound, port 35091
        Interval Bandwidth
   0-   3 sec       62.70 Mbits/sec
   3-   6 sec       62.84 Mbits/sec
   6-   9 sec       62.83 Mbits/sec
   9-  12 sec       62.84 Mbits/sec
  12-  15 sec       62.86 Mbits/sec
  15-  18 sec       62.85 Mbits/sec
  18-  21 sec       62.87 Mbits/sec
  21-  24 sec       62.86 Mbits/sec
  24-  27 sec       62.86 Mbits/sec
  27-  30 sec       62.86 Mbits/sec

将PC端的带宽降低至60M时,ESP32的速率也能保持一致了,再高就会出现ESP32端的速率降低的情况。

后来将pause流控关闭和启动jumbo后,带宽略有提升,能够指定带宽到70M,两侧的测试速率能够到67Mbps。后面再增加,仍然会出现ESP32端速度下降的情况。

  • 包统计数据如下
I (1416717) ETH_IPerf: mdi_rx_pkg_count:1129366
I (1416717) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
I (1416717) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
I (1416727) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
I (1416727) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
I (1416747) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
I (1416757) ETH_IPerf: mdi_rx_pkg_count:0
I (1416757) ETH_IPerf: rmii_tx_pkg_count:464875
I (1416767) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
I (1416767) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
I (1416777) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
I (1416777) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
I (1416787) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
I (1416787) ETH_IPerf: rmii_tx_sfd_missed_count:0

没有异常包。

鉴于两侧的iperf软件可能存在不兼容的情况,将来会做进一步的分析研究。

3.2 TCP测试 3.2.1 ESP32 TCP发送 3.2.1.1 命令
  • PC端
iperf2.exe -s -i 3
  • ESP32端
iperf -c 192.168.5.11 -i 3 -t 30
1.2.1.2 输出
  • ESP32端
mode=tcp-client sip=192.168.5.10:5001, dip=192.168.5.11:5001, interval=3, time=30
iperf> I (3059417) iperf: Successfully connected

        Interval Bandwidth
   0-   3 sec       32.68 Mbits/sec
   3-   6 sec       34.43 Mbits/sec
   6-   9 sec       33.34 Mbits/sec
   9-  12 sec       31.15 Mbits/sec
  12-  15 sec       31.28 Mbits/sec
  15-  18 sec       33.42 Mbits/sec
  18-  21 sec       32.59 Mbits/sec
  21-  24 sec       33.64 Mbits/sec
  24-  27 sec       33.47 Mbits/sec
  27-  30 sec       33.07 Mbits/sec
   0-  30 sec       32.91 Mbits/sec
I (3089417) iperf: TCP Socket client is closed.
I (3089417) iperf: iperf exit
  • PC端
PS C:\Users\25267> iperf2.exe -s -i 3
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local 192.168.5.11 port 5001 connected with 192.168.5.10 port 60386
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-3.00 sec  11.7 MBytes  32.8 Mbits/sec
[  1] 3.00-6.00 sec  12.3 MBytes  34.4 Mbits/sec
[  1] 6.00-9.00 sec  11.9 MBytes  33.4 Mbits/sec
[  1] 9.00-12.00 sec  11.1 MBytes  31.1 Mbits/sec
[  1] 12.00-15.00 sec  11.2 MBytes  31.3 Mbits/sec
[  1] 15.00-18.00 sec  12.0 MBytes  33.4 Mbits/sec
[  1] 18.00-21.00 sec  11.7 MBytes  32.6 Mbits/sec
[  1] 21.00-24.00 sec  12.0 MBytes  33.6 Mbits/sec
[  1] 24.00-27.00 sec  12.0 MBytes  33.5 Mbits/sec
[  1] 27.00-29.99 sec  11.8 MBytes  33.1 Mbits/sec
[  1] 0.00-29.99 sec   118 MBytes  32.9 Mbits/sec
  • 包统计数据
I (3339747) ETH_IPerf: mdi_rx_pkg_count:704697
I (3339747) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
I (3339747) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
I (3339757) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
I (3339757) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
I (3339777) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
I (3339787) ETH_IPerf: mdi_rx_pkg_count:0
I (3339787) ETH_IPerf: rmii_tx_pkg_count:196784
I (3339787) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
I (3339797) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
I (3339807) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
I (3339807) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
I (3339817) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
I (3339817) ETH_IPerf: rmii_tx_sfd_missed_count:0

没有异常包。

TCP上行速率有点差强人意,接下来会跟分析原因。

3.2.2 PC TCP发送

PC端作为TCP的数据的发起方,ESP32作为接收方。

3.2.2.1 命令
  • PC端
iperf2.exe -c 192.168.5.10 -i 3 -t 30 -b 100M
  • ESP32端
iperf -s -t 45
3.2.2.2 输出
  • PC端
PS C:\Users\25267> iperf2.exe -c 192.168.5.10 -i 3 -t 30 -b 100M
------------------------------------------------------------
Client connecting to 192.168.5.10, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local 192.168.5.11 port 20064 connected with 192.168.5.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-3.00 sec  8.75 MBytes  24.5 Mbits/sec
[  1] 3.00-6.00 sec  8.50 MBytes  23.8 Mbits/sec
[  1] 6.00-9.00 sec  8.63 MBytes  24.1 Mbits/sec
[  1] 9.00-12.00 sec  8.88 MBytes  24.8 Mbits/sec
[  1] 12.00-15.00 sec  9.13 MBytes  25.5 Mbits/sec
[  1] 15.00-18.00 sec  8.75 MBytes  24.5 Mbits/sec
[  1] 18.00-21.00 sec  8.75 MBytes  24.5 Mbits/sec
[  1] 21.00-24.00 sec  8.75 MBytes  24.5 Mbits/sec
[  1] 24.00-27.00 sec  8.63 MBytes  24.1 Mbits/sec
[  1] 27.00-30.00 sec  8.50 MBytes  23.8 Mbits/sec
[  1] 30.00-60.01 sec   128 KBytes  34.9 Kbits/sec
[  1] 0.00-60.01 sec  87.4 MBytes  12.2 Mbits/sec
  • ESP32端
mode=tcp-server sip=192.168.5.10:5001, dip=0.0.0.0:5001, interval=3, time=45
I (2084607) iperf: Socket created
iperf> I (2105297) iperf: accept: 192.168.5.11,20064


        Interval Bandwidth
   0-   3 sec       24.26 Mbits/sec
   3-   6 sec       23.92 Mbits/sec
   6-   9 sec       23.94 Mbits/sec
   9-  12 sec       24.90 Mbits/sec
  12-  15 sec       25.54 Mbits/sec
  15-  18 sec       24.44 Mbits/sec
  18-  21 sec       24.22 Mbits/sec
  21-  24 sec       24.53 Mbits/sec
  24-  27 sec       24.07 Mbits/sec
  27-  30 sec       24.07 Mbits/sec
  • 包统计数据
I (2491167) ETH_IPerf: mdi_rx_pkg_count:653077
I (2491167) ETH_IPerf: mdi_rx_pkg_count_greater_than_1518B:0
I (2491167) ETH_IPerf: mdi_rx_pkg_count_less_than_64B:0
I (2491177) ETH_IPerf: mdi_rx_crc_err_pkg_count:0
I (2491177) ETH_IPerf: mdi_rx_crc_err_pkg_count_greater_than_1518B:0
I (2491197) ETH_IPerf: mdi_rx_crc_err_pkg_count_less_than_64B:0
I (2491207) ETH_IPerf: mdi_rx_pkg_count:0
I (2491207) ETH_IPerf: rmii_tx_pkg_count:126939
I (2491207) ETH_IPerf: rmii_tx_pkg_count_greater_than_1518B:0
I (2491217) ETH_IPerf: rmii_tx_pkg_count_less_than_64B:0
I (2491227) ETH_IPerf: rmii_tx_crc_err_pkg_count:0
I (2491227) ETH_IPerf: rmii_tx_crc_err_pkg_count_greater_than_1518B:0
I (2491237) ETH_IPerf: rmii_tx_crc_err_pkg_count_less_than_64B:0
I (2491237) ETH_IPerf: rmii_tx_sfd_missed_count:0

从两端的TCP测试来看,与预期的带宽速率均有较大的差距。

4. 总结

汇总一下:
UDP上行速率为92Mbps,下行速率为67Mbps;
TCP上行速率为33Mbps,下行速率为24Mbps;

鉴于两端的iperf可能存在不兼容的情况,接下来会做2个事情:
1、使用工程自带的自动化测试工具iperf_test.py测试;
2、自己编写udp测试程序测试吞吐量;

好了,ESP32以太网吞吐量性能测试就到这里。接下来的2个测试敬请关注博客。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/787768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存