Control-Data Plane Separation Part I Lecture 3, Computer Networks (198:552) Fall 2019
Edge and core: a useful distinction Edge: data origins or sinks (“endpoints”) Your laptop, mobile phone, Google’s servers Core: machines processing & transmitting data Your WiFi router, Rutgers’s firewall, Verizon’s routers Varies by context: one person’s core is another’s edge The Internet
Today, we’ll focus on the functions of the core of the network.
Structure of the network core The Internet
Structure of the network core Verizon AT&T Rutgers Sprint Comcast
Structure of the network core Verizon AT&T Rutgers Sprint Comcast Autonomous systems (ASes)
Structure of the network core Verizon AT&T Rutgers Sprint Independently administered set of routers
Moving pkts through Internet Verizon AT&T Rutgers Sprint Routing protocols inside and between ASes
What’s a protocol? Informally, a set of rules to communicate over a network Messages: how to structure a network conversation Actions: what to do when you are told something (or not) For example: what you should say next But could be many other (complex) things “How are you?” “I’m good, how are you?”
Control and Data Planes
Two key functions of the network core Forwarding: move packets from a router’s input to appropriate output port happens per packet Routing: determine route taken by packets from source to destination happens slower than per packet
An analogy: taking a trip Forwarding: getting through a single interchange Routing: planning the trip from source to destination
Core: Split into data and control planes Data plane: handles individual packets Local, per-router function Forwarding, “drop”, “buffer”, … “Mark”, “schedule”, “measure”, … Control plane: handle events Network-wide logic Compute how to move data end to end Need to track the topology of the net Split is motivated by need for high-speed packet processing
The Data Plane What’s inside a router?
What do routers look like? Access routers Core router Data center top-of-rack switch
Control & Data Planes inside a router Traditionally: Individual routing algorithm components in each and every router interact in the control plane Control plane per route-change processing (~ a few seconds) Routing Algorithm data plane control Data plane per-packet processing (~ tens of nanoseconds) 0111 1 2 3 values in arriving packet header
Router architecture overview forwarding processor Control plane high-speed switching fabric Data plane router input ports router output ports
Destination-based Forwarding in the Internet Packet payload header Router Destination Address Route Lookup Data Structure Outgoing Port Forwarding Table Dest-network Port 65.0.0.0/8 3 128.9.0.0/16 1 149.12.0.0/19 7
We’ll look into the internals of routers in much more detail later. Output Ports packet buffer queueing Outgoing network interface switch fabric Buffering required when pkts arrive from fabric faster than the outgoing transmission rate Implication: if buffers filled up, packets are dropped Scheduling discipline chooses among pkts queued for transmission Implication: Who gets priority is chosen by the scheduler
The Control Plane Routing Protocols
Routing enables forwarding Each router creates & looks packets up in its own forwarding table But the computation of the table is itself distributed Three aspects of a routing protocol: What outcome it computes What algorithm it runs How the protocol learns the location of endpoints
An example: OSPF Open Shortest Path First (OSPF) used within an AS Verizon AT&T Rutgers Sprint Open Shortest Path First (OSPF) used within an AS
Edge weights set by the network administrator What OSPF computes Shortest path(s) between each pair of nodes Separate shortest-path tree rooted at each node Path(s) with minimum sum of link metrics Disadvantages All nodes need to agree on the link metrics Multipath routing is limited to “equal cost multipath” Edge weights set by the network administrator
How OSPF solves the shortest path problem Compute: path costs to all nodes From a given source u to all other nodes Cost of the path through each outgoing link Next hop along the least-cost path to s 2 1 3 1 4 u 2 1 5 4 3 6 s
Dijkstra’s algorithm Once each router knows all nodes and link costs: Each node computes shortest paths to other nodes Initialization Loop S = {u} for all nodes v if (v is adjacent to u) D(v) = c(u,v) else D(v) = ∞ add w with smallest D(w) to S update D(v) for all adjacent v: D(v) = min{D(v), D(w) + c(w,v)} until all nodes are in S
OSPF route computation example 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5
OSPF route computation example (cont.) 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5
OSPF: Shortest-path tree Shortest-path tree from u Forwarding table at u 3 2 1 4 5 u v w x y z s t link v (u,v) w (u,w) x (u,w) y (u,v) z (u,v) s (u,w) t (u,w)
How OSPF on one router learns about other routers Each router sends out its own address and neighborhood link costs over all of its links: link state advertisement Each router forwards advertisements from others A process known as link state flooding As long as the neighboring router and the link to it are alive, the link cost is included in the flooded message OSPF is a link state protocol: if the state of the link changes (up/down/cost change), the entire network will know