130 likes | 147 Views
Optimising Streaming Systems with SDN/P4/ NetFPGA. T. Khoa Phan University College London. NetFPGA Summit, Cambrige, April 2017. Facebook Livestream System. Origin server. Origin server. Edge cache. INTERNET. Live stream server. Edge cache.
E N D
Optimising Streaming Systems with SDN/P4/NetFPGA T. Khoa Phan University College London NetFPGA Summit, Cambrige, April 2017.
Facebook Livestream System Origin server Origin server Edge cache INTERNET Live stream server Edge cache Facebook livestream system – Content Delivery Network [1] Each edge cache can serve up to 200,000 users simultaneously [1] https://code.facebook.com/posts/1653074404941839/under-the-hood-broadcasting-live-video-to-millions/
Unicast vs. Multicast Network Edge cache Today’s unicast network Edge cache IP Multicast Xcast Treemap Edge cache • First standardized in 1986. • One stream for all receivers. • Need multicast routers everywhere (or complex tunneling techniques). • Can work for any streaming systems. • Source code: github.com/ptkhoa1984/Xcast6_Treemap
What is XcastTreemap? Breath-first tree traversal S A B C D E A B C D E List of IP addresses 0 2 0 0 2 Treemap Sender S creates packets: A B C D E Payload Src: S, Dest: A 2 0 2 0 0 Unicast part Xcast treemap part (optional) Today router only understands unicast part. Xcast router lookups and forwards for each IP in the list.
How XcastTreemap works? Unicast routing table at R3 A B D C E S Full Xcast packet header created by S: D | D A | A B C D E B | B R1 R3 R2 C | C D E E | E C | C D E Today router Fig. 1: only today routers Unicast routing table at R1
How XcastTreemap works? Unicast routing table at R3 Full Xcast packet header created by S: A B D C E S D | D A | A B C D E B | B C | C R1 R3 R2 C | C D E E | E C | C D E Xcast router Today router Unicast routing table at R1 Fig. 2: mixture of Xcast and today routers
Facebook Livestream System current system with Xcast Treemap Edge cache server and users
XcastTreemap with SDN R2 R1 C B A C C S A S C B S B A B A S X3 Shortest path routing SDN controller R2 R1 X3 Overlay tree by SDN controller Traffic engineering for Xcast traffic
Future work with P4/NetFPGA • Current approach for Xcast router: • Plugin additional network cards for a computer • Install Xcast router software on FreeBSD • Future work for Xcast router: • P4/C#/NetFPGA Xcast router • Other possible platforms?
Deployment Scenarios With Xcast NetFPGA gateway Only with Xcast end-hosts With Xcast backbone routers
XcastTreemap Evaluation • In P2P, packet loss happens when end-hosts leave (e.g. A leaves and B replaces A in the tree – hosts need to update fwd table in their memory). • Without Xcast router: sender S sends pkt with new treemap header, there’s no fwd table at hosts. • With all Xcast router: pkts are replicated at routers, no pkt loss when hosts join/leave. S A P2P system B C P2P system Xcast: without Xcast router All routers are Xcast routers
XcastTreemap with SDN R2 R1 C B A C C S A S C B S B A B A S X3 Shortest path routing SDN controller R2 R1 X3 Overlay tree by SDN controller Traffic engineering for Xcast traffic