Blackadder ICN Prototype T-110.6120 9.10.2012 Jimmy Kjällman Ericsson Research, NomadicLab.

Slides:



Advertisements
Similar presentations
NetServ Dynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
Advertisements

Communication Networks Recitation 3 Bridges & Spanning trees.
Transitioning to IPv6 April 15,2005 Presented By: Richard Moore PBS Enterprise Technology.
Media Access Control (MAC) addresses in the network access layer ▫ Associated w/ network interface card (NIC) ▫ 48 bits or 64 bits IP addresses for the.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
S305 – Network Infrastructure Chapter 5 Network and Transport Layers Part 2.
Sarantorn Bisalbutra NomadicLab, Ericsson Research Supervisor: Prof. Jörg Ott Instructors: Petri Jokela Jimmy Kjällman PUBLISH/SUBSCRIBE GATEWAY FOR REAL-TIME.
An Overlay Data Plane for PlanetLab Andy Bavier, Mark Huang, and Larry Peterson Princeton University.
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
Illustrating a Publish-Subscribe Internet Architecture Nikolaos Fotiou 1 George C. Polyzos 1 Dirk Trossen 2 Presenter: Konstantinos Katsaros 1 1 Athens.
Internet In A Slice Andy Bavier CS461 Lecture.
IP Routing: an Introduction. Quiz
Address Resolution Protocol (ARP). Mapping IP Address to Data-Link Address  How does a machine map an IP address to its Data- Link layer (hardware or.
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
1 25\10\2010 Unit-V Connecting LANs Unit – 5 Connecting DevicesConnecting Devices Backbone NetworksBackbone Networks Virtual LANsVirtual LANs.
© J. Liebeherr, All rights reserved 1 IP Multicasting.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 8: Bridging Slides used with permissions.
Chapter 4: Managing LAN Traffic
1 Internetworking : Internet architecture and TCP/IP Protocol TK3133 Computer Networking Technology.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Wave Relay System and General Project Details. Wave Relay System Provides seamless multi-hop connectivity Operates at layer 2 of networking stack Seamless.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 3: TCP/IP Architecture.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
1 CS 4396 Computer Networks Lab LAN Switching and Bridges.
PA3: Router Junxian (Jim) Huang EECS 489 W11 /
Common Devices Used In Computer Networks
WAN technologies and routing Packet switches and store and forward Hierarchical addresses, routing and routing tables Routing table computation Example.
LWIP TCP/IP Stack 김백규.
Objectives: Chapter 5: Network/Internet Layer  How Networks are connected Network/Internet Layer Routed Protocols Routing Protocols Autonomous Systems.
 Network Segments  NICs  Repeaters  Hubs  Bridges  Switches  Routers and Brouters  Gateways 2.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
CSC 600 Internetworking with TCP/IP Unit 8: IP Multicasting (Ch. 17) Dr. Cheer-Sun Yang Spring 2001.
Click Router: Hands on Arvind Venkatesan Shivkumar Kalyanaraman.
2012.**.** Supporting reliability using reverse path in Publish/Subscribe Internet Takashima Daiki ParkLab, Waseda University, Japan 1/11.
Chapter 8: Virtual LAN (VLAN)
© J. Liebeherr, All rights reserved 1 Multicast Routing.
802.11n Sniffer Design Overview Vladislav Mordohovich Igor Shtarev Luba Brouk.
William Stallings Data and Computer Communications
PROTOTYPES T Jimmy Kjällman Ericsson Research, NomadicLab.
© 2006 Cisco Systems, Inc. All rights reserved. BSCI v3.0—8-1 Implementing IPv6 Implementing Dynamic IPv6 Addresses.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Presented by Rebecca Meinhold But How Does the Internet Work?
© Cengage Learning 2014 How IP Addresses Get Assigned A MAC address is embedded on a network adapter at a factory IP addresses are assigned manually or.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public BSCI Module 8 Lesson 3 1 BSCI Module 8 Lesson 3 Implementing Dynamic IPv6 Addresses.
Information-Centric Networks10b-1 Week 10 / Paper 2 Hermes: a distributed event-based middleware architecture –P.R. Pietzuch, J.M. Bacon –ICDCS 2002 Workshops.
Chapter 4 Version 1 Virtual LANs. Introduction By default, switches forward broadcasts, this means that all segments connected to a switch are in one.
Information-Centric Networks Section # 10.3: Publish/Subscribe Instructor: George Xylomenos Department: Informatics.
1 Chapter 3: Packet Switching (Switched LANs) Dr. Rocky K. C. Chang 23 February 2004.
1 Objectives Identify the basic components of a network Describe the features of Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6)
Application Programming Interface for Future Pub/Sub Networks Dr. Dmitrij Lagutin Helsinki Institute for Information Technology (HIIT)
1 LAN switching and Bridges Relates to Lab Outline Interconnection devices Bridges/LAN switches vs. Routers Bridges Learning Bridges Transparent.
15.1 Chapter 15 Connecting LANs, Backbone Networks, and Virtual LANs Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Client-server communication Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
1 K. Salah Module 5.1: Internet Protocol TCP/IP Suite IP Addressing ARP RARP DHCP.
1 Computer Networks Chapter 5. Network layer The network layer is concerned with getting packets from the source all the way to the destination. Getting.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Chapter 5 Network and Transport Layers
IP: Addressing, ARP, Routing
3. Internetworking (part 2: switched LANs)
ARP and RARP Objectives Chapter 7 Upon completion you will be able to:
Pub/Sub Internetworking Prototype
CHAPTER 3 Architectures for Distributed Systems
Virtual LANs.
Chapter 5 Network and Transport Layers
Dr. Rocky K. C. Chang 23 February 2004
Connections Johan Lukkien
Presentation transcript:

Blackadder ICN Prototype T Jimmy Kjällman Ericsson Research, NomadicLab

Blackadder Realizes PURSUIT’s functional model for information-centric networking RendezvousTopology Forwarding Pub/Sub Service Model SId RId Functional scoping Information scoping Dissemination Strategy Recursion

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)

Information Structure AAA0AAA1AAA20002 AAA1 Scope Information item AAA2 Information ID : /0003/0002/AAA2 Scope ID : /0001/0001/0001, /0002/0001/0001, /0003/0001/ Original slides: George Parisis, Computer Laboratory, University of Cambridge, 2011

Core Functions Simplified example Rendezvous Topology Forwarding PS

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

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)

Blackadder Architecture Click is an external framework that Blackadder uses Topology Manager

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 prototypes or experiments) Basic operation: packets are pushed or pulled between elements

Click Router Configuration Example: Ping (nothing to do with Blackadder, just illustrates a Click router) define($DEV eth0, $DADDR , $GW $DEV:gw) FromDevice($DEV, SNIFFER false) -> c :: Classifier(12/0800, 12/ /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;

Blackadder Architecture Topology Manager

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

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)

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

Blackadder Architecture Topology Manager

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

Network Packet Format

Blackadder Architecture Topology Manager

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 –Default method: LIPSIN

Sample forwarding configurations Click configurations – usually auto-generated Forwarder (MAC, 1, 1, 08:00:00:00:00:01, 08:00:00:00:00:11, , 08:00:00:00:00:02, 08:00:00:00:00:12, , 08:00:00:00:00:03, 08:00:00:00:00:13, ); 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, , , , , , , , , ); fw[1] -> Queue(1000) -> RawSocket(UDP) -> IPClassifier(dst udp port 9999)[0] -> [1]fw; fw[2] -> Queue(1000) -> RawSocket(UDP) -> IPClassifier(dst udp port 9999)[0] -> [2]fw;

Blackadder Architecture Topology Manager

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

Local Proxy Applications are identified by the local Blackadder node by their Netlink source address (usually the process ID) Click elements are identified by the outgoing port number (from the Local Proxy to the specific element) These IDs are replaced in all pub/sub requests by a statistically unique Node Label (e.g., hash of MAC address)

Blackadder Architecture Topology Manager

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)

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

Blackadder Architecture Topology Manager

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

Blackadder Architecture Topology Manager

Dissemination Strategies Currently 5 basic strategies are implemented –These strategies are used for choosing the scope of information visibility in a network 1.Node-local –IPC, “localhost” 2.Link-local –Communication with neighbors on a link –Link IDs are provided by applications –Implicit RV or TM functions

Dissemination Strategies 3.Broadcast –Similar to link-local, but broadcast to (know) neighbors 4.Domain-local –RV and TM functions involved –End nodes need a FID for contacting the RV node –Publishers get FIDs (to subscribers) for individual information items 5.Implicit rendezvous –FID given in the publish data call –Mainly used by special components (e.g., RV and TM)

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

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]

Blackadder availability Open source (GPLv2 / BSD) Code, documentation, etc. Current release: v0.2.1 (in GitHub) Next release expected soon

BLACKADDER DEMO

P S1 S2 F Virtual machines running in the laptop Laptop Bridge Multicast forwarding Video stream

How it works (roughly) proxy library recv pub send sub library Blackadder RV TM publish scope publish info subscribe info compute paths FID publish data

Anything else? Questions? Thank you!