Who doesn’t expect the transmission rate of a 1G Ethernet link to be, well, around 1 gigabit? In reality the maximum Ethernet bitrate is always lower than the specified speed. Here is why.
The specified transmission rate is a physical maximum rate that is never achieved in reality. The reason lies in the use of defined protocols which impact the effective data rate.
Take a 1G Ethernet transmission link for example. Lets start by noting that the line bitrate is even faster than 1 Gbps due to 8b10b encoding, which leads to 1.25 Gbps on the physical medium. That said, nominally it should be possible to transfer 1 Gbps = 1000 Mbps of data. However, due to Ethernet framing this bitrate will never be achieved in practice.
In Ethernet every frame is started by a “preamble” and a “start frame delimiter” (SDF, often just referred to as “start of frame”). Additionally there is a “inter frame gap” (IFG) specified which used to be necessary for receivers to return to their ready state. Nowadays this IFG would not be required anymore, but must be adhered to for compatibility reasons.
If we account for 7 bytes of preamble plus 1 byte SDF plus 12 bytes IFG we get a total of 20 bytes of overhead. This framing data is part of every Ethernet frame which is transmitted and does thus reduce the actual line rate we can utilize. The maximum size of a Ethernet frame is 1518 bytes, the minimum Ethernet frame length is 64 bytes. Accounting for the framing overhead the maximum transmission rate for a 1 gigabit Ethernet link is reduced to 1 Gbps * (1518 / (1518 + 20)) = 987 Mbps, if only frames of maximum length are send. If only minimum size frames are send the maximum transmission rate becomes just 1 Gbps * (64 / 64 + 20)) = 762 Mbps.
But that’s not all. There is additional protocol overhead for the Ethernet source and destination address (6 bytes each), the EtherType field (4 bytes) and the the frame check sequence (FCS, 4 bytes, often just called CRC). When accounting for those fields as well the maximum Ethernet payload transmission rate is 1 Gbps * (1500 / (1500 + 20 + 18) = 975 Mbps for a maximum payload of 1500 bytes. For a minimum payload size of 46 bytes we get 1 Gbps * (46 / (46 + 20 + 18)) = 548 Mbps.
In reality the maximum transmission rate we can utilize will lie somewhere between those two values. A good rule of thumb is to assume that 850 Mbps can not be exceeded on 1G Ethernet links.