What is the theoretical maximum throughput of a Gigabit Ethernet interface?
Applies to
All NetApp products
Answer
It depends on frame size but is typically between 110-125 MB/sNotes:
- A bit is abbreviated as lowercase "b" but a byte (8 bits) is abbreviated with uppercase "B" per industry standards
- In this article, Megabit is 1024 x 1024 bits, not 1000 x 1000 bits
- In this article, Megabyte refers to 1024 x 1024 bytes, or a Mebibyte
What are in ethernet frames?
Frame field | Length in bytes | Length in bits (bytes x 8) |
---|---|---|
Preamble | 8 | 64 |
Inter-frame gap | 12 | 96 |
Destination MAC address | 6 | 48 |
Source MAC address | 6 | 48 |
Protocol type | 2 | 16 |
Payload | 46 | 368 |
CRC | 4 | 32 |
Total | 84 | 672 |
Note: Preamble and Inter-frame gap are not part of the actual frame itself but add 16 bytes (128 bits) to the beginning and must be factored in calculations
How is frame rate calculated?
- The number of frames per second can be calculated as:
- Rate / Frame size = frames per second
- 1,000,000,000 bits / 672 bits = 1,488,000 frames/s.
How is maximum throughput calculated for 512 bit (64 byte) frames?
- The maximum theoretical throughput is calculated as:
- frames per second x frame size = throughput
- 1,448,000 frames/s x 512 bits = 707 Mbps
- But we must include frame size + preamble + inter-frame gap
- 1,488,000 frames/s x (512 bits + 64 bits + 64 bits) = 523 Mbps
How is maximum throughput calculated for standard MTU (1518 byte) frames?
- Rate / Frame size = frames per second
- 1,000,000,000 / (1518 + 8 + 8 = 1538 bytes * 8 = 12,144 bits) = 82,345 frames/s
- Frames/s * frame size = throughput
- 82,345 * (1518 + 8 + 8 = 1538) = 120.77 MB/s or 966 Mbps
- Note: These numbers do not include Ethernet frame, IP, TCP or UDP overhead, so throughput will be less
How is maximum throughput calculated for jumbo MTU (9000 byte) frames and the TCP overhead
Frame part | Size in bytes |
---|---|
Frame size | 9000 |
Inter-frame gap | 12 |
Ethernet Preamble | 8 |
Ethernet Header | 14 |
Ethernet Frame Check Sequence (FCS) | 4 |
IP Header | 20 |
TCP Header | 20 |
TCP Options | 12 |
- Frames per second:
- Ethernet speed in bits/(Frame size + Inter-frame gap + Ethernet Preamble)
- 1,000,000,000 bits /((9,000+12+8 = 9,020bytes) x 8 = 72,160 bits) = 13,858 frames/s
- Max throughput with no overhead:
- 13,858 x 72,000 = 997Mbps
- Preamble overhead:
- 13,858 x 8 x 8 = .886
- Inter-frame gap:
- 13,858 x 12 x 8 = 1.33Mbps
- Ethernet Header overhead:
- 13,858 x 14 x 8 = 1.55Mbps
- Ethernet FCS overhead:
- 13,858 x 4 x 8 = .443Mbps
- IP Header overhead:
- 13,858 x 20 x 8 = 2.21Mbps
- TCP Header overhead:
- 13,858 x 20 x 8 = 2.21Mbps
- TCP Options overhead:
- 13,858 x 12 x 8 = 1.33Mbps
- Theoretical throughput of Gigabit Ethernet with jumbo frames, and using TCP:
- 997Mbps - .886 - 1.33 - 1.55 - .443 - 2.21 - 2.21 - 1.33 = 987Mbps / 8 = 123MB/s
- 997Mbps - .886 - 1.33 - 1.55 - .443 - 2.21 - 2.21 - 1.33 = 987Mbps / 8 = 123MB/s
Additional Information
- The approximate throughput for Gigabit Ethernet without jumbo frames and using TCP is around 928Mbps or 116MB/s
- However, this is still not an accurate representation of what can be expect in the real world
- Other factors will influence the throughput such as:
- File sizes
- Types of transactions
- Cache hits/misses
- CPU utilization
- Network utilization
- Disk utilization
- Protocol (CIFS, NFS, iSCSI, etc.) delays/issues
- Client type
- Kernel version
- TCP congestion control
- Lost packets
- Bandwidth delay product
- Misconfiguration of NICs
- Wireless media
- Etc.