What is the size of an empty UDP datagram? And that of an empty TCP packet?
I can only find info about the MTU, but I want to know what is the "base" size of these, in order to estimate bandwidth consumption for protocols on top of them.
TCP:
Size of Ethernet frame - 24 Bytes
Size of IPv4 Header (without any options) - 20 bytes
Size of TCP Header (without any options) - 20 Bytes
Total size of an Ethernet Frame carrying an IP Packet with an empty TCP Segment - 24 + 20 + 20 = 64 bytes
UDP:
Size of Ethernet frame - 24 Bytes
Size of IPv4 Header (without any options) - 20 bytes
Size of UDP header - 8 bytes
Total size of an Ethernet Frame carrying an IP Packet with an empty UDP Datagram - 24 + 20 + 8 = 52 bytes
EDIT: the above incorrectly states the ethernet frame bytes as 24B. It's instead 18 (or 22 for VLAN-tagged ethernet). The 8B preamble is not part of the minimal-64B frame. So the minimum IPv4+TCP packet is 18+20+20=58 bytes, and minimal IPv4+UDP is 18+20+8=46 bytes. In those cases, there would need to be ethernet padding to fill the frame up to 64B (6B padding for the TCP example, 18B for the UDP example)
https://superuser.com/a/394413 agrees with this edit