The Ethernet payload varies based on the type of data it is carrying. It is a combination of either TCP, UDP, or RTP header combined with an IPv4 or IPv6 header, and most importantly the actual payload which contains the data that is being sent. The fields within the payload are displayed in the following figure:
As shown in the figure, the amount of actual data sent within an Ethernet Frame is dependent upon the number of bytes consumed by the other fields. Other options are available which are not listed here. For example, Linux hosts automatically add a timestamp to the TCP stack, adding 12 bytes.