esnet / esnet/iperf

Reverse UDP is slower than Non-reverse UDP

Open
#1,208 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
8.8k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

# Context

* Version of iperf3
3.10.1 latest master

* Hardware:
DELL PC

* Operating system (and distribution, if any):
WSL under Windows 10

* Other relevant information (for example, non-default compilers,
libraries, cross-compiling, etc.):

# Bug Report

* Expected Behavior
UDP maximum throughput when both client and server run on the same machine should be the same.

* Actual Behavior
When using reverse mode, UDP throughput is 15-30% less than when not using reverse mode. The issue is not seem when using TCP.

* Steps to Reproduce
Run client and server on the same machine, use UDP and set bandwidth (`-b`) to throughput beyond the maximum achievable.
Run once using `-R` option and once without it and compare the results.

* Possible Solution

The reason I am submitting this PR is because there may be an implementation issue that reduces the server's performance.

I tried several temporary patches to find the the reason for the difference, including different performance optimizations and removing the timeout from the `select`, but nothing helped. I also also tried with removing the actual send command to see if there is a substantial overhead in the server's performance. There is minor difference, but it cannot explain the difference.

I am not sure if the issue is just on my computer or whether there is a good reason for the difference, so testing on other machines may help understanding the issue,

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.