1 / 63

Building Very Large Overlay Networks

Building Very Large Overlay Networks. Jorg Liebeherr University of Virginia. HyperCast Project. HyperCast is a set of protocols for large-scale overlay multicasting and peer-to-peer networking. Research problems: Investigate which topologies are best suited for

maribel
Télécharger la présentation

Building Very Large Overlay Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Building Very Large Overlay Networks Jorg Liebeherr University of Virginia

  2. HyperCast Project • HyperCast is a set of protocols for large-scale overlay multicasting and peer-to-peer networking Research problems: • Investigate which topologies are best suited for … a large number of peers… that spuriously join and leave … in a network that is dynamically changing • Make it easier to write applications for overlays easier by … providing suitable abstractions (“overlay socket”) … shielding application programmer from overlay topology issues

  3. Acknowledgements • Team: • Past: Bhupinder Sethi, Tyler Beam, Burton Filstrup, Mike Nahas, Dongwen Wang, Konrad Lorincz, Jean Ablutz, Haiyong Wang, Weisheng Si, Huafeng Lu • Current: Jianping Wang, Guimin Zhang, Guangyu Dong, Josh Zaritsky • This work is supported in part by the National Science Foundation: D E N A L I

  4. Applications with many receivers Sensor networks Number of Senders 1,000,000 Peer-to-PeerApplications 1,000 Games 10 Streaming CollaborationTools SoftwareDistribution 1 10 1,000 1,000,000 Numberof Receivers

  5. Need for Multicasting ? • Maintaining unicast connections is not feasible • Infrastructure or services needs to support a “send to group”

  6. Multicast support in the network infrastructure (IP Multicast) • Reality Check: • Deployment has encountered severe scalability limitations in both the size and number of groups that can be supported • IP Multicast is still plagued with concerns pertaining to scalability, network management, deployment and support for error, flow and congestion control

  7. Overlay Multicasting • Logical overlay resides on top of the layer-3 network infrastructure (“underlay”) • Data is forwarded between neighbors in the overlay • Transparent to underlay network • Overlay topology should match the layer-3 infrastructure

  8. Overlay-based approaches for multicasting • Build an overlay mesh network and embed trees into the mesh: • Narada (CMU) • RMX/Gossamer (UCB) • more • Build a shared tree: • Yallcast/Yoid (NTT, ACIRI) • AMRoute (Telcordia, UMD – College Park) • Overcast (MIT) • Nice (UMD) • more • Build an overlay using distributed hash tables and embed trees: • Chord (UCB, MIT) • CAN (UCB, ACIRI) • Pastry/Scribe (Rice, MSR) • more

  9. Hypercube Delaunaytriangulation Spanning tree(for mobile ad hoc) HyperCast Overlay Topologies • Applications organize themselves to form a logical overlay network with a given topology • Data is forwarded along the edges of the overlay network

  10. Programming in HyperCast: Overlay Socket • Socket-based API • UDP (unicast or multicast) or TCP • Supports different semantics for transport of data • Supports different overlay protocols • Implementation in Java • HyperCast Project website: http://www.cs.virginia.edu/hypercast

  11. Overlay socket is an endpoint of communication in an overlay network An overlay network is a collection of overlay sockets Overlay sockets in the same overlay network have a common set of attributes Each overlay network has an overlay ID, which can be used theaccess attributes of overlay Nodes exchange data with neighbors in the overlay topology Network of overlay sockets

  12. Unicast and Multicast in overlays • Unicast and multicast is done along trees that are embedded in the overlay network. • Requirement: Overlay node must be able to compute the child nodes and parent node with respect to a given root

  13. Overlay Message Format Loosely modeled after IPv6  minimal header with extensions • Common Header: Version (4 bit): Version of the protocol (current Version is 0x0)LAS (2 bit): Size of logical address fieldDmd (4bit) Delivery Mode (Multicast,Flood,Unicast,Anycast)Traffic Class (8 bit): Specifies Quality of Service class (default: 0x00)Flow Label (8 bit): Flow identifierNext Header (8 bit) Specifies the type of the next header following this header OL Message Length (8 bit) Specifies the type of the next header following this header.Hop Limit (16 bit): TTL field Src LA ((LAS+1)*4 bytes) Logical address of the sourceDest LA ((LAS+1)*4 bytesLogical address of the destination

  14. Socket Based API • Tries to stay close to Socket API for UDP Multicast • Program is independent of overlay topology //Generate the configuration object OverlayManager om = new OverlayManager(“hypercast.prop”); String overlayID = om.getDefaultProperty(“MyOverlayID")OverlaySocketConfig config = new om.getOverlaySocketConfig(overlayID); //create an overlay socket OL_Socket socket = config.createOverlaySocket(callback); //Join an overlay socket.joinGroup(); //Create a message OL_Message msg = socket.createMessage(byte[] data, int length); //Send the message to all members in overlay network socket.sendToAll(msg); //Receive a message from the socket OL_Message msg = socket.receive(); //Extract the payload byte[] data = msg.getPayload();

  15. Property File # This is the Hypercast Configuration File # #   # LOG FILE: LogFileName = stderr # ERROR FILE: ErrorFileName = stderr # OVERLAY Server:  OverlayServer = # OVERLAY ID: OverlayID = 224.228.19.78/9472 KeyAttributes = Socket,Node,SocketAdapter # SOCKET: Socket = HCast2-0 HCAST2-0.TTL = 255 HCAST2-0.ReceiveBufferSize = 200 HCAST2-0.ReadTimeout = 0 . . . • Stores attributes that configure the overlay socket (overlay protocol, transport protocol and addresses) # SOCKET ADAPTER: SocketAdapter = TCP  SocketAdapter.TCP.MaximumPacketLength = 16384 SocketAdapter.UDP.MessageBufferSize = 100 # NODE: Node = HC2-0 HC2-0.SleepTime = 400 HC2-0.MaxAge = 5 HC2-0.MaxMissingNeighbor = 10 HC2-0.MaxSuppressJoinBeacon = 3 # NODE ADAPTER: # NodeAdapter = UDPMulticast NodeAdapter.UDP.MaximumPacketLength = 8192 NodeAdapter.UDP.MessageBufferSize = 18 NodeAdapter.UDPServer.UdpServer0 = 128.143.71.50:8081 NodeAdapter.UDPServer.MaxTransmissionTime = 1000 NodeAdapter.UDPMulticastAddress = 224.242.224.243/2424

  16. Hypercast Software: Demo Applications Distributed Whiteboard Multicast file transfer Data aggregation in P2P Net:  Homework assignment in CS757 (Computer Networks)

  17. Application: Emergency Response Network for Arlington County, Virginia Project directed by B. Horowitz and S. Patek

  18. Application of P2P Technology to Advanced Emergency Response Systems

  19. Other Features of Overlay Socket Current version (2.0): • Statistics: Each part of the overlay socket maintains statistics which are accessed using a common interface • Monitor and control: XML based protocol for remote access of statistics and remote control of experiments • LoToS: Simulator for testing and visualization of overlay protocols • Overlay Manager: Server for storing and downloading overlay configurations Next version (parts are done, release in Summer 2004): • “MessageStore”: Enhanced data services, e.g., end-to-end reliability, persistence, streaming, etc. • HyperCast for mobile ad-hoc networks on handheld devices • Service differentiation for multi-stream delivery • Clustering • Integrity and privacy with distributed key management

  20. Delaunay Triangulation Overlays

  21. 4,9 10,8 0,6 0,3 5,2 0,2 0,1 12,0 1,0 0,0 2,0 3,0 Nodes in a Plane Nodes are assigned x-y coordinates (e.g., based on geographic location)

  22. 4,9 10,8 0,6 5,2 12,0 Voronoi Regions The Voronoi region of a node is the region of the plane that is closer to this node than to any other node.

  23. 4,9 10,8 0,6 5,2 12,0 Delaunay Triangulation The Delaunay triangulation has edges between nodes in neighboring Voronoi regions.

  24. 4,9 10,8 0,6 5,2 12,0 Delaunay Triangulation An equivalent definition:A triangulation such that each circumscribing circle of a triangle formed by three vertices, no vertex of is in the interior of the circle.

  25. b a Locally Equiangular Property • Sibson 1977: Maximize the minimum angle For every convex quadrilateral formed by triangles ACB and ABD that share a common edge AB, the minimum internal angle of triangles ACB and ABD is at least as large as the minimum internal angle of triangles ACD and CBD.

  26. Next-hop routing with Compass Routing • A node’s parent in a spanning tree is its neighbor which forms the smallest angle with the root. • A node need only know information on its neighbors – no routing protocol is needed for the overlay. A 30° Node Root 15° B B is the Node’s Parent

  27. Spanning tree when node (8,4) is root. The tree can be calculated by both parents and children. 4,9 4,9 10,8 0,6 8,4 5,2 12,0 12,0

  28. Evaluation of Delaunay Triangulation overlays • Delaunay triangulation can consider location of nodes in an (x,y) plane, but is not aware of the network topology Question: How does Delaunay triangulation compare with other overlay topologies?

  29. Overlay Topologies Delaunay Triangulation and variants • DT • HierarchicalDT • Multipoint DT Hypercube Degree-6 Graph • Similar to graphs generated in Narada Degree-3 Tree • Similar to graphs generated in Yoid Logical MST • Minimum Spanning Tree overlays used by HyperCast overlays that assume knowledge of network topology

  30. Transit-Stub Network Transit-Stub • GeorgiaTech topology generator • 4 transit domains • 416 stub domains • 1024 total routers • 128 hosts on stub domain

  31. Evaluation of Overlays • Simulation: • Network with 1024 routers (“Transit-Stub” topology) • 2 - 512 hosts • Performance measures for trees embedded in an overlay network: • Degree of a node in an embedded tree • “Stretch”: Ratio of delay in overlay to shortest path delay • “Stress”: Number of duplicate transmissions over a physical link

  32. 1 1 1 1 1 1 1 1 1 Stress = 2 1 Stress = 2 Unicast delay AB : 4 Delay AB in overlay: 6 Illustration of Stress and Stretch A B Stretch for AB: 1.5

  33. Average Stretch Stretch (90th Percentile)

  34. 90th Percentile of Stretch Delaunay triangulation Stretch (90th Percentile)

  35. Average Stress Delaunay triangulation

  36. 90th Percentile of Stress Delaunay triangulation

  37. The DT Protocol Protocol which organizes members of a network in a Delaunay Triangulation • Each member only knows its neighbors • “soft-state” protocol Topics: • Nodes and Neighbors • Example: A node joins • State Diagram • Rendezvous • Measurement Experiments

  38. Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Each node sends Hello messages to its neighbors periodically 4,9 10,8 0,6 5,2 12,0

  39. HelloCW = 12,0CCW = 4,9 • Each Hello contains the clockwise (CW) and counterclockwise (CCW) neighbors • Receiver of a Hello runs a “Neighbor test” ( locally equiangular prop.) • CW and CCW are used to detect new neighbors 4,9 10,8 Neighborhood Table of 10,8 0,6 CCW Neighbor CW 5,2 12,0 4,9 4,9 5,2 –12,0 – 10,8 5,2 12,0

  40. New node 8,4 Hello A node that wants to join the triangulation contacts a node that is “close” 4,9 10,8 0,6 5,2 12,0

  41. 4,9 10,8 0,6 8,4 5,2 12,0 Node (5,2) updates its Voronoi region, and the triangulation

  42. Hello (5,2) sends a Hello which contains info for contacting its clockwise and counterclockwise neighbors 4,9 10,8 0,6 8,4 5,2 12,0

  43. Hello Hello (8,4) contacts these neighbors ... 4,9 4,9 10,8 0,6 8,4 5,2 12,0 12,0

  44. 4,9 10,8 0,6 8,4 5,2 12,0 … which update their respective Voronoi regions. 4,9 12,0

  45. Hello Hello (4,9) and (12,0) send Hellos and provide info for contacting their respective clockwise and counterclockwise neighbors. 4,9 4,9 10,8 0,6 8,4 5,2 12,0 12,0

  46. Hello (8,4) contacts the new neighbor (10,8) ... 4,9 4,9 10,8 10,8 0,6 8,4 5,2 12,0 12,0

  47. …which updates its Voronoi region... 4,9 4,9 10,8 0,6 8,4 5,2 12,0 12,0

  48. Hello …and responds with a Hello 4,9 4,9 10,8 0,6 8,4 5,2 12,0 12,0

  49. 4,9 10,8 0,6 8,4 5,2 12,0 This completes the update of the Voronoi regions and the Delaunay Triangulation 4,9 12,0

  50. Rendezvous Methods • Rendezvous Problems: • How does a new node detect a member of the overlay? • How does the overlay repair a partition? • Three solutions: • Announcement via broadcast • Use of a rendezvous server • Use `likely’ members (“Buddy List”)

More Related