网络的主要性能参数包括带宽,时延,抖动、丢包率。
一、在RT-Thread 开启netutils网络组件
在rt-thread bsp工程ConEmu工具的中输入menuconfig,打开netutils的 iperf和 NetIO工具。
在 RT-Thread 上使用 Finsh/MSH 命令来获取 IP 地址
msh />ifconfig
network interface device: e0 (Default)
MTU: 1500
MAC: 00 80 e1 10 38 35
FLAGS: UP LINK_UP INTERNET_UP DHCP_ENABLE ETHARP BROADCAST IGMP
ip address: 10.55.2.188
gw address: 10.55.2.253
net mask : 255.255.255.0
dns server #0: 10.51.0.1
dns server #1: 0.0.0.0
network interface device: W5500
MTU: 1472
MAC: 00 e0 81 dc 53 1a
FLAGS: UP LINK_UP INTERNET_UP DHCP_ENABLE
ip address: 10.55.2.119
gw address: 10.55.2.253
net mask : 255.255.255.0
dns server #0: 10.51.0.1
dns server #1: 0.0.0.0
二、iperf:网络带宽测试工具
iperf 是一个网络性能测试工具。iperf 可以测试最大 TCP 和 UDP 带宽性能,具有多种参数和 UDP 特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。
PC端使用 JPerf 测试软件辅助测试。
1.RT-Thread 作为TCP服务端
msh />iperf -s -p 5001
- -s 表示作为服务器启动
- -p 表示监听 5001 端口
eth0 测试结果
# PC为客户端
Client connecting to 10.55.2.188, TCP port 5001
TCP window size: 0.06 MByte (default)
------------------------------------------------------------
[332] local 10.55.2.189 port 62125 connected with 10.55.2.188 port 5001
[ ID] Interval Transfer Bandwidth
[332] 0.0- 1.0 sec 4.17 MBytes 35.0 Mbits/sec
[332] 1.0- 2.0 sec 4.13 MBytes 34.6 Mbits/sec
[332] 2.0- 3.0 sec 4.11 MBytes 34.5 Mbits/sec
[332] 3.0- 4.0 sec 4.13 MBytes 34.6 Mbits/sec
[332] 4.0- 5.0 sec 4.11 MBytes 34.5 Mbits/sec
[332] 5.0- 6.0 sec 4.13 MBytes 34.6 Mbits/sec
[332] 6.0- 7.0 sec 4.12 MBytes 34.5 Mbits/sec
[332] 7.0- 8.0 sec 4.13 MBytes 34.7 Mbits/sec
[332] 8.0- 9.0 sec 4.10 MBytes 34.4 Mbits/sec
[332] 9.0-10.0 sec 4.12 MBytes 34.5 Mbits/sec
[332] 0.0-10.0 sec 41.2 MBytes 34.5 Mbits/sec
Done.
# RT-Thread为服务端
msh />new client connected from (10.55.2.189, 62125)
34.5500 Mbps!
34.5440 Mbps!
2.RT-Thread 作为TCP客户端
msh />iperf -c 10.55.2.189 -p 5001
- ip地址为PC端ip地址
eth0 测试结果
# PC为服务端
Server listening on TCP port 5001
TCP window size: 0.06 MByte (default)
------------------------------------------------------------
[352] local 10.55.2.189 port 5001 connected with 10.55.2.188 port 49153
[ ID] Interval Transfer Bandwidth
[352] 0.0- 1.0 sec 5.25 MBytes 44.0 Mbits/sec
[352] 1.0- 2.0 sec 5.25 MBytes 44.0 Mbits/sec
[352] 2.0- 3.0 sec 5.24 MBytes 43.9 Mbits/sec
[352] 3.0- 4.0 sec 5.24 MBytes 44.0 Mbits/sec
[352] 4.0- 5.0 sec 5.24 MBytes 43.9 Mbits/sec
[352] 5.0- 6.0 sec 5.23 MBytes 43.8 Mbits/sec
[352] 6.0- 7.0 sec 5.23 MBytes 43.9 Mbits/sec
[352] 7.0- 8.0 sec 5.23 MBytes 43.9 Mbits/sec
[352] 8.0- 9.0 sec 5.23 MBytes 43.9 Mbits/sec
[352] 9.0-10.0 sec 5.22 MBytes 43.8 Mbits/sec
# RT-Thread客户端
msh />Connect to iperf server successful!
43.9740 Mbps!
43.8760 Mbps!
3.RT-Thread 作为UDP服务端
msh />iperf -u -s -p 5001
e0 测试结果
# PC客户端
Client connecting to 10.55.2.188, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 0.06 MByte (default)
------------------------------------------------------------
[352] local 10.55.2.189 port 49720 connected with 10.55.2.188 port 5001
[ ID] Interval Transfer Bandwidth
[352] 0.0- 1.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 1.0- 2.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 2.0- 3.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 3.0- 4.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 4.0- 5.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 5.0- 6.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 6.0- 7.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 7.0- 8.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 8.0- 9.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 9.0-10.0 sec 2.38 MBytes 20.0 Mbits/sec
[352] 0.0-10.0 sec 23.8 MBytes 20.0 Mbits/sec
# RT-Thread服务端
20.0080 Mbps! lost:2 total:8509
4.RT-Thread 作为UDP客户端
msh />iperf -u -c 10.55.2.189 -p 5001
eth0测试结果
# PC服务端
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 0.06 MByte (default)
------------------------------------------------------------
[340] local 10.55.2.189 port 5001 connected with 10.55.2.188 port 49154
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[340] 0.0- 1.0 sec 6.63 MBytes 55.6 Mbits/sec 0.408 ms 1/ 4732 (0.021%)
[340] 1.0- 2.0 sec 6.64 MBytes 55.7 Mbits/sec 0.321 ms 0/ 4733 (0%)
[340] 2.0- 3.0 sec 6.64 MBytes 55.7 Mbits/sec 0.310 ms 0/ 4735 (0%)
[340] 3.0- 4.0 sec 6.63 MBytes 55.6 Mbits/sec 0.405 ms 0/ 4730 (0%)
[340] 4.0- 5.0 sec 6.64 MBytes 55.7 Mbits/sec 0.241 ms 0/ 4736 (0%)
[340] 5.0- 6.0 sec 6.63 MBytes 55.6 Mbits/sec 0.381 ms 0/ 4732 (0%)
[340] 6.0- 7.0 sec 6.64 MBytes 55.7 Mbits/sec 0.294 ms 0/ 4733 (0%)
[340] 7.0- 8.0 sec 6.63 MBytes 55.6 Mbits/sec 0.405 ms 0/ 4730 (0%)
[340] 8.0- 9.0 sec 6.64 MBytes 55.7 Mbits/sec 0.349 ms 0/ 4734 (0%)
[340] 9.0-10.0 sec 6.64 MBytes 55.7 Mbits/sec 0.413 ms 0/ 4736 (0%)
[340] 10.0-11.0 sec 6.63 MBytes 55.6 Mbits/sec 0.409 ms 0/ 4729 (0%)
三、eth0接收,w5500转发测试
1.测试方式
-
RT-Thread eth0与RK3399 eth0接同一个路由器,RT-Threa w5500与RK3399 eth1接另一个路由器。
- RT-Thread eth0作为udp server,w5500作为udp client。
- RK3399 eth0作为udp client,eth1作为udp server。
RK3399 eth0 向 RT-Thread eth0 发送256bytes数据, RT-Thread 接收数据后,从w5500转发给RK3399 eth1。
RK3399统计从发送数据到接收数据的时间差。
2.程序语言
- RT-Thread:micropython
- RK3399:golang
3.测试结果
- rk3399发送数据
时间戳(毫秒):1574083487354;
eth0 send len:: 256
eth0 read data:: '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- RT-Thread接收数据
from_space_('192.168.16.101', 38798)_space_msg_space_b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- rk3399接收的转发数据
eth1 read len:: 256
eth1 read data:: return,b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
时间戳(毫秒):1574083487465;
256bytes数据转发时间:11ms
有疑问加站长微信联系(非本文作者)