errors in communication between PC and ARM64 board #1614
Replies: 3 comments
-
There may be several reasons for the issue. Network throughput, CPU performance, IP buffers size, etc. Therefore, a main question is whether the issue is because of resources limitation in the client's size. To determine whether the client sent the lost packets or as not able to send them (e.g. because of buffers size) tools like Wireshark, tcpdump can be used to evaluate what packets are going over the network. Using TCP without throughput limitation can help understand the problem, as such TCP test throughput should be close to the maximum possible rate. Packet size should be the same as in UDP tests, i.e. set By the way, note that 3.1.3 is very old version and it is highly recommended to use a newer version, e.g. from here. |
Beta Was this translation helpful? Give feedback.
-
You're using UDP here. The default UDP send size changed sometime around iperf-3.2 because the old value of 8192 was larger than the maximum packet size on many Ethernet subnets...this caused fragmentation and often increased packet loss. The default value is derived from the maximum packet size as seen from the operating system, and general works out to (as you saw) 1460 bytes. I'm going to echo @davidBar-On's advice to use a newer version of iperf3. There have been a number of changes in 3.2 and later that improve the experience when doing UDP tests. The current version of iperf3 is 3.16. |
Beta Was this translation helpful? Give feedback.
-
Thanks both for your replies. |
Beta Was this translation helpful? Give feedback.
-
When the ARM64 board is used as the server and the PC is used as the client, the packet loss rate is 0;
But when the PC is used as the server and ARM64 is used as the client, the packet loss rate reaches 53%.
The version of iperf 3.11 is used on the ARM64 board, and the latest version under Windows is iperf 3.1.3
The test commands used are as follows:
Server side ./iperf3 -s -p 1234 -4
Client side ./iperf3 -c 10.169.86.100 -p 1234 -4 -u -b 1000M -t 600
I wonder if it is because of the different default configurations between different versions and different platforms.
By default, the size of the data packet sent when the PC is used as a client is 8192 bytes, and the size of the data packet sent when the board is used as a client is 1460 bytes.
The high packet loss rate occurs when the PC as the server and receives 1460byte data packets.
The test data is as follows:
When PC is used as server and ARM64 is used as client
When the ARM64 board is used as the server and the PC is used as the client
Beta Was this translation helpful? Give feedback.
All reactions