-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when using UDP Reverse Mode in localhost with high RTT netem settings #756
Comments
This is what could be happening: Netem stores the transmitted packets in a queue in order to simulate delay on the link. Because you didn't limit the throughput, packets are dropped when the queue is full (you store packets for 250 ms at a rate of 40 Gb/s, which is a queue length of 10 Gb i.e. more than 1 GB). Also, you are using a loopback interface, so the packets from the server to the client and the packets from the client to the server are stored in the same queue. What happens in the end is that the TCP connection used to transmit signaling information between the client and the host are dropped. What you should do is to limit the throughput of the link in order to avoid dropping packets from the netem queue. An other option could be to increase the netem queue size but I don't know if it is possible (especially for a 10 Gb queue). You could also try to use two separate computers rather than a loopback interface (so you would have two separate queues). At least the packets would only be dropped on one direction, maybe you would have a different behavior. |
Thank you for your feedback ! |
I agree that this is some kind of bug because the server should stop sending data after 15 seconds (I don't see why signalling is required to end the connection since the duration is specified at the beginning). This is somehow related to issue #753. |
@AuNomDuLys: You basically identified the problem, thanks for helping out. @Pascalh2001: Not sure what you expect iperf3 to do in this case. If you're going to test with |
Closing this bug for now. Actually solving this problem requires a considerable amount of redesign around how |
Hi ! I would like to submit the following bug :
NOTE : iperf3 installed using git clone/.configure/make/make install
But I also had an issue with the xenial-available version, I can submit the log if required.
Bug Report
When using iperf3 in UDP reverse mode on localhost server with netem modifying RTT on interface to emulate a high RTT link.
Expected Behavior
Same as when using low RTT measurements (see below).
Actual Behavior
Client freeze after expected time (~15s) but server continue to proceed.
Server then report an error (see below) 5s approximatively after the expected test termination time.
After the server reported an error, the client reports an error too (see below).
Steps to Reproduce
First :
$ sudo tc qdisc add dev lo root netem delay 0ms
Then, expected behavior :
Client :
Server :
Observed behavior :
Client :
Server :
Cheers,
Pascal
The text was updated successfully, but these errors were encountered: