We are doing some UML performance testing and we are getting some non-sensible UDP statistics.
We have deployed the following network of two nodes:
Node A is connected to node B via a wired link (100 Mbps) and node A is running one UML instance.
We used the Iperf traffic generator to execute performance measurements for both TCP and UDP.
When we use TCP the throughput is 100 Mbps from the UML instance of node A to the host kernel of node B and 100 Mbps from the host kernel of node A to the host kernel of node B. However, when we use UDP the throughput is only 26 Mbps from the UML instance on node A to the host kernel of node B, but 100 Mbps from the host kernel of node A to the host kernel of node B. We also notice that a large number of packets were dropped in the case of UDP over UML.
What is the reason that UDP throughput is so much lower than TCP?
Why are packets being dropped given that Iperf is blocking?
We appreciate any guidance on this matter.