Skip to content

TEST_RUNNING can't ensure the ready state of iperf3 client #2

Closed
@penglei0

Description

@penglei0

Context

  • Version of iperf3: Any

  • Hardware: Any

  • Operating system (and distribution, if any): Any

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

Bug Report

iperf3 -c {iperf3_server_ip} -i1 -R -b 1M -t3

When run iperf3 with reverse mode, the two iperf3 endpoint will establish two TCP connections; one for exchanging the control message and the other for data transmission. There is a possibility that the last control message TEST_RUNNING from the iperf3 server to client maybe arrive later than the data transmission in some network conditions. This will cause the socket buffer overflow at iperf3 client side; the overflowed socket will drop the data packet unnecessarily.

To avoid this issue, we need to make sure the iperf3 client is ready for data receiving since the RTT of those two TCP connections can't be assumed to be the same at any cases.

  • Expected Behavior

When run iperf3 with reverse mode, the iperf3 client should be ready for data receiving before the TEST_RUNNING.

  • Actual Behavior

When the RTT of control message channle is greater than the data channel, the iperf3 client will not be in ready receiving mode and it will drop packets when bufffer is overflowed.

  • Steps to Reproduce

  • Possible Solution

Enhancement Request

  • Current behavior

  • Desired behavior

  • Implementation notes

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions