How many packets per second is line rate on a 10 Gbps port with minimum-size frames?
Show the answer
Say this first
About 14.88 million. A 64-byte frame costs 84 bytes of wire time once you add the 8-byte preamble and start delimiter and the 12-byte interframe gap. 84 bytes is 672 bits, and 10^10 divided by 672 is 14,880,952 frames per second. At 1 Gbps it is 1,488,095; at 100 Gbps about 148.8 million. Device datasheets quote these numbers for "line rate at 64 bytes".
Go deeper
Per-frame cost on the wire
| Part | Bytes |
|---|---|
| Preamble and SFD | 8 |
| Ethernet header (no tag) | 14 |
| Payload | 46 to 1500 |
| FCS | 4 |
| Interframe gap | 12 |
Small versus large frames at 1 Gbps
| Frame | On the wire | Frames per second |
|---|---|---|
| 64 bytes | 84 bytes = 672 bits | 1,488,095 |
| 1518 bytes | 1538 bytes = 12,304 bits | 81,274 |
Efficiency
- IP efficiency with full frames: 1500 / 1538 = 97.5%.
- TCP payload efficiency: 1460 / 1538 = 94.9%, or about 94.1% with the 12 bytes of TCP timestamps.
- So a 1 Gbps link moves about 949 Mbps of TCP payload at best.
Why it matters
Forwarding engines are limited in packets per second as well as bits per second. A box rated "10 Gbps" may only reach that with large packets. Firewalls and software routers are the usual suspects.
They will ask next
Does an 802.1Q tag change the math?
It adds 4 bytes per frame. The minimum frame stays 64 bytes (the payload padding shrinks to 42 bytes), while the maximum tagged frame becomes 1522 bytes.
Traps
- Forgetting the preamble and interframe gap. They use wire time even though they are not in a capture.
How did you do?Book 2.3 FramingBook 1.5 Performance