Protocol notes for this page (click to expand)

Cross-layer - Control & Data Plane

★★★★ Start with the two kinds of line

Purple dashed = control plane: exchange routes, compute a best path, program the conclusion into a table. ★★ Perhaps a few runs a day, tens of milliseconds each.

Blue solid = data plane: the packets actually travel here -- look up, decrement TTL, swap the L2 header. ★★ Millions of times a second, microseconds each.

★★★★ The difference is not difficulty but frequency: one decision, a million forwards.

★★★ Two tables, and why the data plane is fast

★★★ The control plane's table is the RIB (all candidates plus attributes); what is programmed down into the FIB is only the selected result: prefix -> egress plus next hop. ★★ Attributes are dropped -- useless at lookup time.

★★★★ Because its work is little and fixed, the data plane can be pushed cheaper: into silicon (line-rate lookups, the CPU never touches a packet), around the kernel (polling instead of interrupts, no sk_buff), and on narrowband links it can even compress headers (trading CPU for bandwidth).

★ Common misconceptions

★★★★ "The path is computed when a packet arrives" -- it is not. The computing happened long before; the packet only triggers a lookup in an already-computed table.

★★★★ "A dead control plane means a dead network" -- not immediately; the blue lines keep running (scenario 2). But no new routes are learned, so the first topology change becomes a black hole.

★★★ "This is a router thing" -- Layer 2 is the same: STP computing a tree is the control plane; MAC-table lookups are the data plane. Every layer has both.