I am running a simple bandwidth test between two VMs using iperf. I am getting very different bandwidth reading for TCP and UDP where the UDP bandwidth is terribly lower than TCP.TCP:root@i-sahmed-node2: ~ # iperf -c 10.160.24.123------------------------------------------------------------Client connecting to 10.160.24.123, TCP port 5001TCP window size: 85.0 KByte (default)------------------------------------------------------------[  3] local 10.160.24.170 port 48339 connected with 10.160.24.123 port 5001[ ID] Interval       Transfer     Bandwidth[  3]  0.0-10.0 sec  7.41 GBytes  6.36 Gbits/secroot@i-sahmed-node2: ~ #UDP:root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g------------------------------------------------------------Client connecting to 10.160.24.123, UDP port 5001Sending 1470 byte datagramsUDP buffer size:  208 KByte (default)------------------------------------------------------------[  3] local 10.160.24.170 port 51922 connected with 10.160.24.123 port 5001[ ID] Interval       Transfer     Bandwidth[  3]  0.0-10.0 sec   962 MBytes   807 Mbits/sec[  3] Sent 686548 datagrams[  3] Server Report:[  3]  0.0-10.0 sec   630 MBytes   528 Mbits/sec   0.009 ms 237368/686547 (35%)[  3]  0.0-10.0 sec  9 datagrams received out-of-orderroot@i-sahmed-node2: ~ #I can reproduce this almost every time. Since I am running on VMs, I don't directly have access to the underlying hardware. Does anyone know why this is happening? 
Why is my UDP bandwidth significantly lower than TCP bandwidth in iperf
linux;networking;performance