Octet

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

PartBytes
Preamble and SFD8
Ethernet header (no tag)14
Payload46 to 1500
FCS4
Interframe gap12

Small versus large frames at 1 Gbps

FrameOn the wireFrames per second
64 bytes84 bytes = 672 bits1,488,095
1518 bytes1538 bytes = 12,304 bits81,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.

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