480 likes | 633 Vues
Decomposing Overlay Applications. Achieving Extensibility with High Performance. Yitzchak Gottlieb Princeton University. Constant Innovation. 1725 RFCs since 1995 50 Obsolete old RFCs 307 Update ~1400 New ideas 897 Standards track 142 Experimental. Similar to existing More recipients
E N D
Decomposing Overlay Applications Achieving Extensibility with High Performance Yitzchak Gottlieb Princeton University
Constant Innovation • 1725 RFCs since 1995 • 50 Obsolete old RFCs • 307 Update • ~1400 New ideas • 897 Standards track • 142 Experimental
Similar to existing More recipients Broadcast Multicast Any one recipient Anycast Truly new Scalable routing Scalable object location Content-based addressing Fault tolerance Automatic management Types of Innovations Hard to change current networks to enable these services
Overlay Networks • On end hosts • Application-level networks • Advantage • Ease deployment • Problems • Limited performance • User space • Proxy path
Performance Limits: Proxy Path 1500 B packets 100 Mbit/s 8 000 pkt/s 10 Gbit/s 800 000 pkt/s
PlanetLab “Planetlab is an open platform for developing, deploying, and accessing planetary-scale services”
PlanetLab • Nodes are PCs • Centrally managed • Distributed world-wide • 366 Nodes • 152 Institutions • ~500 Projects • Overlays are user-level programs • Executing in vservers on Linux
PlanetLab • PlanetLab is for overlays • Very successful overlays • e.g. Routing overlays • Traffic increases • Inefficiencies interfere How to achieve high performance with overlays?
Inside Overlay Nodes Maintain network Forward packets Process queries … OS
Computation Barrier Computation Domains • Where computation is • Separated by barriers • Address space • Protection level • Processor • Differences • Performance • Trust
Hypothesis • We can decompose overlay applications • We can map components onto different computation domains • This will improve performance and efficiency
Outline • Introduction • Decomposition • Software Architecture • Examples
Decomposing Overlay Networks • Five forms • Forms are: • Semantically equivalent • All equally viable • Refinement steps • Different • Performance • Trust
Lessons of Internet • High speed IP forwarding • Separate concerns • Routing protocol • Program forwarding table • Packet forwarding • Decrement TTL • Replace layer-2 address
Control and Data • Control • Complex • Processed locally • Data • Simple • Processed remotely
Decomposition—Form I • State of the art • Monolithic application • Few network connections • All communication to application • Application sees all traffic Application
Two code modules Control Maintain network Offer service Overlay Forwarder Forward to other hosts Two modes in overlay Local delivery Forwarding Control Application C Forwarder Decomposition—Form II
In separate domains User-space control Overlay Forwarder In kernel On line card Why trust forwarder? SimpleVerifiably safe 100–200 instructions No backward branches Flow isolation Decomposition—Form III Control C Forwarder
Two modules Overlay Daemon Connectivity Routing Application File serving Query Processing Two control modes Maintain network Offer service Control Application C Daemon Forwarder Decomposition—Form IV
F F Forwarder Decomposition—Form V Application • Application-specific forwarding extension • Recording • Redirecting • Modifying C Daemon • Applications need data stream
Daemon Application Overlay Daemon Application F F Application Forwarder Overlay Forwarder Decomposing Overlay Applications General Application Control Data
F F F F F F F F NIC High Performance Overlays • Decompose overlays • Place overlay forwarder in • Leave rest in user space Application Daemon kernel router line card user space User Kernel Router
Outline • Introduction • Decomposition • Software Architecture • Examples
C Plug Board
Plug Board • Software architecture for decomposition • Features • Single powerful classifier • Multiple computation domains • Multiple forwarders • Fixed forwarders • Extensible forwarders
Plug Board • Miscellaneous features • Modularity • Functions grouped by protocol • Encapsulation • Input functions • Output functions • Wrap forwarders
Implementation • Point implementations • Three domains • User space Linux • Kernel space Linux • Leverage SILK • Intel IXP1200 EEB • Leverage Vera architecture
Outline • Introduction • Decomposition • Application • Examples
Decomposition Examples • Applications • Peer-to-peer networks • Other network • Each is decomposable • Four components
Peer-to-Peer Networks • Peers are clients, servers, and routers • Examples • Pastry • P2P application toolkit • Chord • Scalable lookup service • Gnutella • Unstructured, file-sharing network
Pastry • Peer-to-peer application toolkit • Nodes have 128 bit ID • Treated as number in base 2b • Forward to node with closer ID • Digit by digit • Logarithmic forwarding
F Pastry • Overlay Daemon • Connectivity • Overlay Forwarder • Find next longest prefix match • Application • PAST, Scribe, etc. • Application Forwarder • Application dependent Daemon Application F
Pastry Implementation • User-level library • Kernel-level forwarding • IXP Forwarding • ~50 instructions
Chord • Scalable object location • 128 bit node addresses • Circular address space • Forward to farthest 2-ith of circle • Logarithmic forwarding • Iterative • Recursive 0 7 1 6 2 5 3 4
0 7 1 6 2 F 5 3 4 Chord • Overlay Daemon • Chord invariants • Overlay Forwarder • Recursive lookup • Application • Node location • Application Forwarder Daemon Application
Gnutella • Overlay Daemon • Connectivity • Overlay Forwarder • Flood • Record route • Application • Application Forwarder • Redirects successful queries
Other Network Services • IP Forwarding • Filters, Firewalls • Proxies • Splicing TCP connections • Ethernet bridging
Summary • Overlays limit performance • Improve by applying classic techniques • Decompose overlay • Control/Data • General/Application-specific • Map onto computational domains
Conclusions • Overlay applications can perform well • Separate applications and networks • Optimize networks • Offload applications • Some overlays are applications • Too complex for network • Limited performance
Credits • SILK/Scout • Larry Peterson, Andy Bavier, Oliver Spatschek, Ian Murdoch, Xiahu Qie, Aki Nakao • Vera • Scott Karlin • IXP1200 • Scott Karlin, Tammo Spalink And many more…
URLs • PlanetLab • http://www.planet-lab.org/ • Princeton CS Network Systems Group • http://www.cs.princeton.edu/nsg
Interfaces • Overlay Daemon and Overlay Forwarder • Routing table interface (Add, Delete route) • Application and Application Forwarder • Application specific • Use bit pipe or shared memory • Overlay Daemon Application • Overlay specific
Function Types • Predicates (P), Forwarders (F) • Extensions (E) • Extensible Forwarders (EF) • Extensible Extensions (EE) • Input (I) and Output (O) • Encapsulation (F, I, OF) • Installation (P,F())
M TCP Connection Splicing • Overlay Daemon • Installs splicer • Overlay Forwarder • Splicer • Application • Application Forwarder • URL rewriter A B
IP Forwarding • Overlay Daemon • Routing protocols (e.g. BGP) • Overlay Forwarder • IP forwarding • Application • Many examples • Application Forwarder
B B B B B B 3 1 5 6 2 4 Ethernet Bridging • Overlay Daemon • Computes Minimum Spanning Tree • Overlay Forwarder • Multicast to open ports • Application • Control learning algorithm • Application Forwarder • Record source and destination