Global Data Plane Internals Rick Pratt Eric Allman
Global Data Plane Internals Rick Pratt, Eric Allman, Nitesh Mor, Ken Lutz, John Kubiatowicz, Your photo here Swarm Lab, UC Berkeley GDP RIB Maintains Adjacencies SQL Table LOG 1 GDP Block Diagram Human-Oriented Name to GDPname Directory DB (SQL) Log Creation Service Reader Application Periodic Adverts Refresh Adjacencies are Withdrawn or Expire LS 2 GDP RIB Next Hop Calculation on Graph View GDP Routers KEY R 1 GDP RIB Next Hops Calculation on Graph View R 2 R 1→LOG 1=? GDP (d. TLS) over UDP GDP Participants Advertise Adjacencies Periodically GDP Routers Listen for Peers GDP Routers Connect to Configured Peers GDP Routers Reinterpret Log Server Adverts GDP Routers Forward Log Adverts R 1←LOG 1=R 2, R 3 R 1→Reader GDP over TCP Applications RIB Custom over UDP GDP Log Servers R 4→R 3 R 3→R 4 LS 1 SQL over TCP R 4→LS 3 R 3→Writer LS 3→LOG 1 R 3→Writer Routing Information Base R 3 R 4 GDP Routers Detect Unreachable Peers R 4 LS 3→LS 3 websockets GDP Routers R 1 R 2 LS 3→LOG 1 Writer R 3 LOG 1 REST LS 3 Next Hop Table MQTT GDP Log Servers LOG 1 LS 2 LS 3 LS 4 Accessing a GDP Log Human-Oriented Name to GDPname Directory DB (SQL) Log Creation Service ❷ Applications ❽ ❶ Routing Information Base ❸ ❼ R 4 ❹ ❺ GDP Routers R 1 ❺ ❼ R 2 R 3 ❻ ❼ GDP Log Servers LS 1 LS 2 LS 3 LS 4 Application GDP Routers ❶App opens a TCP connection to any router, creates a GDPname for itself, and advertises; RIB is updated ❷App queries database for “ex 1”, gets back “ 3 A 27 F 4”… ❸App asks router R 1 to open 3 A 27 F 4… ❹R 1 asks RIB how to find 3 A 27 F 4…; RIB returns “R 2” ❺R 1 sends to R 2, which asks the RIB; RIB returns “LS 2” ❻R 2 forwards request to LS 2 ❼LS 2 returns the results using the GDPname of the application as the destination ❽Application validates returned metadata against name “ 3 A 27 F 4. . . ” Reader LS 2 R 1 R 2 GDP Log Servers LS 1 R 3 R 4 origin next hop R 1 R 2 R 1 R 3 R 1 LS 1 . . . R 1 Reader R 2 R 1 R 2 LS 2 LOG 1 LS 2 . . . R 3 R 1 R 3 R 4 R 3 Writer R 4 R 3 R 4 LS 3 LOG 1 LS 3 … Open Query Graph Engine Find Next Hop (Anycast) Multicast Find Next Hops Dijkstra’s Algorithm (Current Weights = 1) Writer Routing Information Base LOG 1 LS 3 GDP Distributed RIB KEY GDP (d. TLS) over UDP GDP over TCP Human-Oriented Name to GDPname Directory DB (SQL) Log Creation Service GDP Routing Protocol SQL over TCP Tier 1 RIB Applications Creating a GDP Log Human-Oriented Name to GDPname Directory DB (SQL) ❾ Log Creation Service ❻ ❺ ❸ ❼ Applications ❽ ❷ ❿ ❶ Routing Information Base ❹ ❿ R 4 ❶ ❿ ❺ ❺ GDP Routers ❼ R 1 R 2 ❺ ❿ R 3 ❽ GDP Log Servers C 99 F 28… LS 1 LS 2 LS 3 LS 4 ❽ Anycast Distributed RIB ❶App creates and advertises a GDPname for itself to the routing layer, which in turn updates the RIB ❷App creates keypair and other metadata including human name; new log name is hash of metadata (“C 99 F 28…”) ❸App finds the GDPname of the Log Creation Service ❹App sends create command with metadata to service via router ❺Router finds path via RIB and routes command to service ❻ Service verifies that log does not exist ❼Service picks a log server and forwards command ❽Log Server creates log and sends an ack ❾Creation Service updates name database ❿Ack is returned to client Other Trust Domains GDP Routers GDP Log Servers LS 1 LS 2 LS 3 LS 4 PDU, Packet, Nack, and TCP Throttle Details fd fd HB seq coal retx seq fd fd DO NOT DISTRIBUTE - The Ubiquitous Swarm Lab at UC Berkeley
- Slides: 1