UDP & TCP Bandwidth

Just a simple comparison of TCP and UDP bandwidth. The tests were done using iperf3. Same tests were repeated in AWS and GCP.
.
Bandwidth (Gbps)
Packet Size (B) AWS (c5.2xlarge) -- 10Gbps GCP (c2d-highcpu-8) -- 16Gbps
TCP UDP TCP UDP
500 1.7 1.3 1.5 0.9
1500 4.5 3.7 4.3 1.9
4000 9.3 5.9 8 3.4
9001 9.6 7 15.5 4
Bandwidth (as percentage of total available)
Packet Size (B) AWS (c5.2xlarge) -- 10Gbps GCP (c2d-highcpu-8) -- 16Gbps
TCP UDP TCP UDP
500 17% 13% 9.4% 5.6%
1500 45% 37% 26.9% 11.9%
4000 93% 59% 50% 21.3%
9001 96% 70% 96.9% 25%
On server:
iperf3 -s

On client:
iperf3 -c SERVER_IP -b AVAILABLE_BANDWIDTH -l PACKET_SIZE -u for UDP
iperf3 -c SERVER_IP -b AVAILABLE_BANDWIDTH -l PACKET_SIZE for TCP
Example on GCP: iperf3 -c 10.150.0.20 -b 16G -l 500 -u
The output (Bitrate field) of iperf3 on client side was observed for getting the above numbers.
Private IPs were used. Both client and server were in the same AZ.
No placement groups utilized.