Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reliability & throughput

Two separate worries that newcomers often merge: reliability is getting the data despite loss; throughput is moving it fast. NDN already gives you a floor on both — start there and add levers only when you have measured a need.

Reliability — surviving loss

You face…Reach forWhat it costs
Occasional loss, normal linksThe default — a consumer re-expresses the Interest; the PIT and caches absorb the restNothing; it is how NDN works.
A persistently lossy linkReliabilityFeature on that face (sequence numbers, acks, retransmit)Per-face state and ack traffic; enable it only on the link that needs it.
Loss you can’t retransmit through — multicast, broadcast, one-way radioNetwork coding / FEC extension (ndn-coding: K-of-N recode)Parity overhead on the wire and encode/decode compute; pays off when retransmission is impossible or expensive.

Throughput — going faster

You need…Reach forWhat it costs
Ordinary speedA plain UDP faceNothing; fine for most deployments.
More packets/sec on LinuxBatched syscallsrecvmmsg / sendmmsg (opt-in feature)Linux-only; a build feature, off by default.
Several cores on one listenerSO_REUSEPORT with the rx_sockets knobNo gain on loopback/macOS — needs a real multi-queue NIC.
Line rate, kernel-bypassAF_XDP extension (af-xdp feature)Linux-only, raw NIC, extra setup; the last lever, not the first.

How to decide

  1. Is loss actually hurting you? Measure before adding anything — the default re-expression covers a lot.
  2. One bad link? Turn on ReliabilityFeature for that face only.
  3. Can’t retransmit (broadcast/one-way)? That is the case FEC is for — see Network coding (FEC).
  4. Throughput-bound? Walk the levers in order — batched I/O, then SO_REUSEPORT, then AF_XDP — and re-measure at each step. Performance has the benchmarking story.

Every throughput lever past the plain face is Linux-specific and opt-in, so none of them change behaviour until you ask for it.