Background: Why is X Gigabit Ethernet not exactly "X Gigabit"
Posted by Tom Ghyselinck, Last modified by Dries Decock on 03 April 2018 02:06 PM
I want to transmit at 1 Gbps line rate, but I never seem to reach 1 Gbps. Why not?
Transmitting frames received at full wire speed cannot always be guaranteed to be done at full wire rate as the Ethernet standard got a +/- 100ppm tolerance on full wire rate.
This is a general Ethernet problem with all devices.
The Ethernet standard allows the transmit clock to have a tolerance of 100ppm. Please see excerpt from the IEEE 802.3 specification, Section Three, Table 35–8—AC specifications at page 46. At 1Gbit full wire speed this comes to an actual bitrate of 999,9Mbps to 1000,1Mbps.
This problem is discussed in Testing at 100% load with line rate speed compensation, page 1 and 2
To fully ensure against buffer overrun, if running a continuous stream of frames, the source of frames must transmit at a rate 100pmm ( parts per million ) lower than the nominal speed. If the reference of the source has a tolerance of +/-100ppm, it must transmit at 200ppm below the speed it regards to be wire speed, as it might actually run at +100ppm.
This trick is not needed if the traffic contains small pauses (e.g. at 1G a pause of (1E9*200E-6)/8 bytes = 200.000 bytes every second), as long as the buffers can store the worst case build-up of 200.000bytes. As most live traffic contain small pauses this is very seldom a problem in real world traffic.
Remark on ByteBlower 2100 Series
Beside this general problem, which apply to all Ethernet devices, a small problem exists in the ByteBlower 2100 Network Device. Frames are on the received side time stamped with a time which depends on which time source is used. Local (Free-running) or OS time stamping. When transmitting, the IFG’s are calculated in clock cycles on a fixed reference independent of the time reference used for the receive time stamping.
Using different sources for time stamping of the received frames will give a slight difference on the transmit side, which always uses the same time reference.
Note: This problem is considered smaller than the general Ethernet problem.
Due to the Ethernet clock tolerance and a safety guard for transmit scheduling the ByteBlower 2100 Series Servers are restricted to transmit up to 999.96Mbps.