1 / 58

PROTOTYPES

PROTOTYPES. T- 110.6120 17.11.2011 Jimmy Kjällman Ericsson Research, NomadicLab. Prototypes. Two research prototypes will be described in this presentation Blackadder Developed in PURSUIT Channel-oriented base implementation Demonstrated at the end of the lecture Blackhawk

clancy
Télécharger la présentation

PROTOTYPES

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. PROTOTYPES T-110.6120 17.11.2011 Jimmy Kjällman Ericsson Research, NomadicLab

  2. Prototypes • Two research prototypes will be described in this presentation • Blackadder • Developed in PURSUIT • Channel-oriented base implementation • Demonstrated at the end of the lecture • Blackhawk • Originates from PSIRP • Document-oriented implementation

  3. BLACKADDER Original slides:George Parisis, Computer Laboratory, University of Cambridge, 2011

  4. Blackadder • Realizes PURSUIT’s functional modelfor information-centric networking Pub/Sub Service Model Dissemination Strategy Rendezvous Topology Forwarding Functional scoping Information scoping SId RId RId Recursion

  5. Information Structure • Scopes, subscopes, information items • Information is structured as a directed acyclic graph • IDs are (statistically) unique within a scope • (Possibly) self-generated, flat labels • Same ID space for both subscopes and information items • “Complete” identifier: Prefix + ID • One or more paths starting from one or more graph’s root(s)

  6. Information Structure Scope 0001 0001 0002 0002 0003 0003 Informationitem 0002 0001 0001 0001 0002 0001 AAA1 0002 AAA0 AAA1 AAA2 AAA2 0001 0001 0001 0002 0003 Information ID : /0003/0002/AAA2 Scope ID : /0001/0001/0001, /0002/0001/0001, /0003/0001/0001

  7. Core Functions • Simplified example Rendezvous Topology P Forwarding S

  8. Dissemination Strategies • Defines the methods used for implementation (of a scope) • Architectural components • Data formats • Governance structures • Etc. • Can be “overridden” for sub-items – if permitted • Strategies have to be aligned • Usually engineered at design time • Larger problem solutions through the assembly of smaller ones

  9. Service Model • Publish/Subscribe • For example: • publish_scope(id, prefix, strategy)publish_info (id, prefix, strategy) • unpublish_scope(id, prefix, strategy)unpublish_info (id, prefix, strategy) • subscribe_scope(id, prefix, strategy)subscribe_info (id, prefix, strategy) • unsubscribe_scope(id, prefix, strategy)unsubscribe_info (id, prefix, strategy) • publish_data(id, strategy, data, data_len) • getEvent(&event)

  10. Blackadder Architecture • Click is an external framework that Blackadder uses TopologyManager

  11. Background Information:The Click Modular Router • Open source platform for building packet processing configurations that consist of connected elements • Language for describing router configurations • Ready-made elements • Libraries for creating new elements as C++ classes • Portable code • Kernel and userlevel • Linux, FreeBSD, Mac OS X, etc. • Modular design approach • Reuse of elements in different configurations(e.g., in different prototypesor experiments) • Basic operation: packets are pushed or pulled between elements

  12. Click Router Configuration • Example: Ping(nothing to do with Blackadder,just illustrates a Click router) define($DEV eth0, $DADDR 8.8.8.8, $GW $DEV:gw) FromDevice($DEV, SNIFFER false) -> c :: Classifier(12/0800, 12/0806 20/0002) -> CheckIPHeader(14) -> ip :: IPClassifier(icmp echo-reply) -> ping :: ICMPPingSource($DEV, $DADDR) -> SetIPAddress($GW) -> arpq :: ARPQuerier($DEV) -> IPPrint -> q :: Queue -> ToDevice($DEV); arpq[1] -> q; c[1] -> [1] arpq;

  13. Blackadder Architecture TopologyManager

  14. IPC Element • Implements a Netlink socket for receiving pub/sub requests from applications (or an API library) and for sending back pub/sub events and published data • These are sent as messages through the socket • In user space, the IPC element utilizes the selection mechanism provided by Click • In kernel space, the element receives sk_buffs in the context of the running process – buffers are wrapped into Click packets that are later processed by a Click task • Everything is asynchronous – like an event-based system

  15. API (Service Model):Functions and Messages • publish_scope(id, prefix, strategy)publish_info (id, prefix, strategy) • unpublish_scope(id, prefix, strategy)unpublish_info (id, prefix, strategy) • subscribe_scope(id, prefix, strategy)subscribe_info (id, prefix, strategy) • unsubscribe_scope(id, prefix, strategy)unsubscribe_info (id, prefix, strategy) • publish_data(id, strategy, data, data_len) (These messages are only used node-internally)

  16. API: Events • Start Publishing, Stop Publishing • New Scope, Deleted Scope • Published Data

  17. Blackadder Architecture TopologyManager

  18. Accessing the network • Standard Click elements for network communication • ToDevice and FromDevice for directly sending and receiving Ethernet frames • Suitable, e.g., when experimentingover high-speed LANs • RawSocket for sending and receiving IP (UDP) packets over raw sockets • Suitable, e.g., when experimenting in the PlanetLabtestbed or VPNs • IP network used as an underlay

  19. Network Packet Format

  20. Blackadder Architecture TopologyManager

  21. Forwarding • Receives packets from the network communication elements • Matches the FID with all outgoing links and forwards the packets • A separate LID is assigned to the “internal link” between the Forwarding element and the Local Proxy Element • Implements the notion of destination

  22. Sample forwarding configurations • Click configurations – can be auto-generated Forwarder (MAC, 1, 1, 08:00:00:00:00:01, 08:00:00:00:00:11, 1000000000000000000000000000000000000000000000000000000000000000 1, 08:00:00:00:00:02, 08:00:00:00:00:12, 1000001000000000000000000000000000000000000000000000000000000000 2, 08:00:00:00:00:03, 08:00:00:00:00:13, 1000001000000000001000000000000000000000000000000000000000000000 ); fw[1] -> Queue(1000) -> ToDevice(eth0); fw[2] -> Queue(1000) -> ToDevice(eth1); FromDevice(eth0, SNIFFER false) -> Classifier(12/080a)[0] -> [1]fw; FromDevice(eth1, SNIFFER false) -> Classifier(12/080a)[0] -> [2]fw; Forwarder (IP, 1, 1, 192.168.0.1, 192.168.0.2, 1000000000000000000000000000000000000000000000000000000000000000 1, 192.168.0.1, 192.168.0.6, 1000001000000000000000000000000000000000000000000000000000000000 2, 192.168.1.1, 192.168.1.2, 1000001000000000001000000000000000000000000000000000000000000000 ); fw[1] -> Queue(1000) -> RawSocket(UDP) -> IPClassifier(dstudp port 9999)[0] -> [1]fw; fw[2] -> Queue(1000) -> RawSocket(UDP) -> IPClassifier(dstudp port 9999)[0] -> [2]fw;

  23. Blackadder Architecture TopologyManager

  24. Local Proxy • “The heart of a network node” – everything goes through it • Receives all pub/sub requests from applications and other Click elements • Keeps track of • Pending subscriptions • Advertised information items (and assigns FIDs) • Receives • Published data and notifications about new or deleted scopes • Pushes packets to subscribers (applications or Click elements) • Notifications to start or stop publishing data • Pushes packets to one (of the potentially many) publishers

  25. Blackadder Architecture TopologyManager

  26. RV Function • The same element runs in all nodes • Every node can create an information structure that will be known and maintained by the local RV function • Other nodes can send pub/sub requests to that node if they know a path to it • Usual scenarios • A network node (its RV function) maintains a local structure for IPC (node-local strategy) • A network node (its RV function) maintains a structure accessible by physical neighbours (link-local strategy) • One or more dedicated RV nodes run in a domain – end hosts know how to reach them (domain-local scenario)

  27. RV IPC • The RV Element access the world the same way applications do • It subscribes to root scope FFFF where all pub/sub requests are published • It publishes Topology Formation requests to scope FFFE to which the TM has subscribed • Topology formation is required when: • A set of publishers need to be notified with Forwarding IDs that point to a set of subscribers • A set of subscribers need to be notified about a new or deleted scope

  28. Blackadder Architecture TopologyManager

  29. The Topology Manager • An application • Calculates shortest paths in a networkForwarding information • Uses (e.g.) the igraph library for this • How the TM does IPC • Subscribes locally to scope FFFE • Receives requests from the RV node as publications • Publishes responses directly to publishers and subscribers using the Information ID /FFFD/destinationNodeID • Utilizes an implicit rendezvous dissemination strategy where information is published with a specific FID

  30. Blackadder Architecture TopologyManager

  31. Dissemination Strategies • Currently 5 strategies are implemented • These strategies are used for choosing the scope of information visibility in a network • Node-local • IPC • Link-local • A node can create information graphs a) locally – accessible to physical neighbours b) remotely – accessible to this node • Link IDs are provided by applications

  32. Dissemination Strategies • Intra-domain • End-hosts use an FID to a dedicated RV to create information graphs and to subscribe to scopes and information items • Publishers assign FIDs (to subscribers) to individual information items • Subscribe locally • Do not send anything to any RV • Implicit rendezvous • Publish the data immediately using the provided FID

  33. A Blackadder Network • All network nodes run the same software • Blackadder runs in user space or kernel space in the nodes • Configurations can be different • End-nodes are configured to have link access (LID) and access to dedicated rendezvous (RV) nodes (with an FID) • Dedicated forwarding nodes run only the forwarding element • And other elements if additional functionality is required(e.g. caching) • Dedicated RV and TM nodes • Any nodes can be RV nodes – an FID is required to reach them • TM nodes run a Topology Manager (TM) application • A deployment tool can be used for generating configuration files and deploying them in a network • Network attachment component for dynamic settings

  34. Simple API Example Publisher ba= Blackadder(True) ba.publish_scope(sid, “”, DOMAIN_LOCAL, None) ba.publish_info(rid, sid, DOMAIN_LOCAL, None) ev= Event(); ev.type = 0 while ev.type != START_PUBLISH: ba.getEvent(ev) pass while True: data = raw_input() ba.publish_data(sid+rid, DOMAIN_LOCAL, None, data, len(data)) (This example uses a Python API that is wrapped on top of a C++ API library that translates API calls to messages that are passed through IPC sockets.) Subscriber ba= Blackadder(True) ba.subscribe_info(rid, sid, DOMAIN_LOCAL, None) ev= Event() while True: ba.getEvent(ev) if ev.type== PUBLISHED_DATA: print ev.data[:ev.data_len]

  35. Blackadder availability • Open source (GPLv2 / BSD) • Code, documentation, etc. • http://www.fp7-pursuit.eu/ • https://github.com/georgeparisis/blackadder • Current release: v0.2beta (in GitHub)

  36. BLACKHAWK

  37. Blackhawk • Pub/Sub prototype that implements the core ideas from PSIRP • Blackboard-based architecture • Integrated with the OS kernel • E.g., virtual memory management • Objectives: efficiency, natural interface, object deduplication, etc. • Works in FreeBSD

  38. Publications as Memory Objects • A publication is an object in the blackboard – i.e.,in the computer’s memory • A (concept) publication is identified by a RId • A version is a specific piece of data identified by a vRId • version-RId: hash tree root • A page is a block of data identified by a pRId • page-RId: hash of content • Sub-object relationships • Concept publications can have several different versions • Versions have a specific set of pages in a specific order • Scopes are special publications that are identified by SIds and store collections of RIds

  39. Scope Collection of data publications (theirIDs) Informationaggregation,accesscontrol Data Placeholder for a ”concept”, i.e.,mutable content Version Immutable instance of a data publication Page A chunk of actual data(e.g. in the OS kernel or in network packets) E.g., 4096 bytes Blackboard: Objects • Publication • A piece of content • Related metadata • Identifiers, size, type, … • Objects havetheirownidentifiers • E.g. 256 bits; an opaqueor a hierarchicalstructure • Couldbetied to the data and/or an entity • Single globalidentifierspaceassumed (bydefault)

  40. Object Hierarchy Root Scope Scope 0 Scope 1 Scope 2 Subscopes Pub 1 Publications Pub 2 Pub 3 Pub 4 Versions Version 1 Version 2 Version 3 Version 4 Version 5 Page 12 Page 1 Page 8 Pages Page 2 Page 5 Page 9 Page 3 Page 6 Page 10 Page 4 Page 11 Page 7 ... ...

  41. Pub/Sub API: Operations • Create • Create a piece of content to bepublished • I.e., allocatevirtualmemoryobjectsfordataand metadata • Publish • Makecontentavailable to others • Results in a new version • Subscribe • Request and getcontent • Register, Listen • Getnotifiedaboutpublicationevents(e.g., when a new version appears)

  42. Conceptual API handle := create(size) publish(sid, rid, handle) handle := subscribe(sid, rid) events := listen(handles[]) pointers to data and metadataof a memoryobject identifies a scope identifies a publication

  43. Userlevel Click TM System Architecture Kernelinterface RZVclient RZVif … RZVnode fs pub/sub API socket Blackboard Userlevel interface Kernel-level Click Forwarder Network devices Data publisher Data subscriber …

  44. Pub/Sub applications Blackboard File system,kevents Pub/Sub API library Virtual memory system Blackboard* System call interface File system Kernel events Internal data structures Kernel-level interface

  45. VM System Integration • Motivation:We want to achieve efficiency, a natural interface and object deduplication • Existing FreeBSD VM system data structures utilized: • vm_page_t • vm_object_t • vm_map_t, vm_map_entry_t • ... • In our system, for each publication, we have a VM object for metadata and data

  46. VM System Integration • Metadata object • One page (currently) • Object’s own ID, its size, etc. • List of sub-object IDs • Pub: versions • Version: pages • Data object • Pages contain actual content

  47. VM System Integration • Metadata and data objects mapped to applications’ memory spaces (when created or subscribed to) • Data is copy-on-write • Can be modified • results in a new shadow object • unmodified pages shared – don’t need to be copied • Re-publishing results in a new version that can be subscribed to 1 ... ... 2 ... ...

  48. File System Integration • Each publication has a corresponding vnodein the kernel • Applications get an open file descriptor in the “handle” • After publish or in subscribe • Enables the use of kevents • We use it to get notifications when somebody publishes (or subscribes to) something

  49. File System Integration • A new filesystemtype, psfs • File system view to the blackboard • E.g.:/pubsub/sid/rid/vrid/prid/data • Data/metadata can be accessed ondifferent levels in the object hierarchy • In theory, we can also map file systemops to pub/sub ops • Couldbeused for enablingdemandpagingover the network as well • Together with a pull-basedcaching-enabled transport protocol /pubsub /sid1 /sid2 /rid1 data meta /vrid1 ...

  50. In-kernel Rendezvous • Publication Index (pubi) • Each scope, data publication and version (and page) has this small additional data structure for auxiliary in-kernel metadata • Holds pointers to metadata and data VM objects and a vnode,filesystem-related information, etc. • Publication Index Table (PIT) • UMA zone-basedstorage • Hash table with ID → pubimappings • Allidentifersareaccessible on the samehierarchicallevel • Used for (recursive) object lookups in the blackboard • ID → pubi → metadata and/or data → sub-obj. ID → …

More Related