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

Blackadder ICN Prototype

  • Upload
    lyle

  • View
    77

  • Download
    0

Embed Size (px)

DESCRIPTION

Blackadder ICN Prototype. T- 110.6120 9 .10.2012 Jimmy Kjällman Ericsson Research, NomadicLab. Blackadder. Realizes PURSUIT’s functional model for information-centric networking. Pub/Sub Service Model. Dissemination Strategy. Rendezvous. Topology. Forwarding. Functional scoping. - PowerPoint PPT Presentation

Citation preview

Page 1: Blackadder ICN Prototype

BlackadderICN Prototype

T-110.61209.10.2012

Jimmy KjällmanEricsson Research, NomadicLab

Page 2: Blackadder ICN Prototype

Blackadder

• Realizes PURSUIT’s functional modelfor information-centric networking

Rendezvous Topology

Forwarding

Pub/Sub Service Model

SId

RId RId

Functional scopingInformation scoping

DisseminationStrategy

Recursion

Page 3: Blackadder ICN Prototype

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)

Page 4: Blackadder ICN Prototype

Information Structure

0001 0003

0001 0001 0002

0001

0001 0002 0003

AAA0 AAA1 AAA20002AAA1

Scope

Informationitem

AAA2

Information ID : /0003/0002/AAA2

Scope ID : /0001/0001/0001, /0002/0001/0001, /0003/0001/0001

0002

0001

0002

0003

00010001

0001 0002

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

Page 5: Blackadder ICN Prototype

Core Functions

• Simplified example

Rendezvous

Topology

ForwardingP S

Page 6: Blackadder ICN Prototype

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

Page 7: Blackadder ICN Prototype

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)

Page 8: Blackadder ICN Prototype

Blackadder Architecture

• Click is an external framework that Blackadder uses

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 9: Blackadder ICN Prototype

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

Page 10: Blackadder ICN Prototype

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;

Page 11: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 12: Blackadder ICN Prototype

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

Page 13: Blackadder ICN Prototype

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)

ID Prefix ID length LIPSIN Identifier

Type

ID le

ngth

Stra

tegy

ID le

ngth

1 1 Variable length Variable length1 1 LID size

ID LIPSIN Identifier

Type

ID le

ngth

Stra

tegy

1 1 Variable length 1 LID size

Data

Page 14: Blackadder ICN Prototype

API: Events

• Start Publishing, Stop Publishing• New Scope, Deleted Scope

• Published Data

IDTy

pe

ID le

ngth

1 1 Variable length

ID

Type

ID le

ngth

1 1 Variable length

Data

Page 15: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 16: Blackadder ICN Prototype

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

Page 17: Blackadder ICN Prototype

Network Packet Format

LIPSIN Identifier

LID size

No.

IDs

ID1 l

engt

h

ID1

ID2 l

engt

h

ID2

IDn l

engt

h

IDn Payload

1 1 1 1

Page 18: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 19: Blackadder ICN Prototype

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

Page 20: Blackadder ICN Prototype

Sample forwarding configurations

• Click configurations – usually auto-generated

Forwarder (MAC, 1,1, 08:00:00:00:00:01, 08:00:00:00:00:11,

10000000000000000000000000000000000000000000000000000000000000001, 08:00:00:00:00:02, 08:00:00:00:00:12,

10000010000000000000000000000000000000000000000000000000000000002, 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, 10000000000000000000000000000000000000000000000000000000000000001, 192.168.0.1, 192.168.0.6, 10000010000000000000000000000000000000000000000000000000000000002, 192.168.1.1, 192.168.1.2, 1000001000000000001000000000000000000000000000000000000000000000);

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;

Page 21: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 22: Blackadder ICN Prototype

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

Page 23: Blackadder ICN Prototype

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)

Page 24: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 25: Blackadder ICN Prototype

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)

Page 26: Blackadder ICN Prototype

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

Page 27: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 28: Blackadder ICN Prototype

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

Page 29: Blackadder ICN Prototype

Blackadder Architecture

Clic

kIPC Element

Communication Elements

/dev/eth0

App1 App2 App3 App4 AppN………………...

Rendezvous

Forwarding

Local Proxy

/dev/eth1 Raw IP Sockets

TopologyManager

Page 30: Blackadder ICN Prototype

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

Page 31: Blackadder ICN Prototype

Dissemination Strategies

3. Broadcast– Similar to link-local, but broadcast to (know)

neighbors4. 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 items5. Implicit rendezvous

– FID given in the publish data call– Mainly used by special components

(e.g., RV and TM)

Page 32: Blackadder ICN Prototype

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

Page 33: Blackadder ICN Prototype

Simple API Example

Publisherba = Blackadder(True) ba.publish_scope(sid, “”, DOMAIN_LOCAL, None)ba.publish_info(rid, sid, DOMAIN_LOCAL, None) ev = Event(); ev.type = 0while 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.)

Subscriberba = 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]

Page 34: Blackadder ICN Prototype

Blackadder availability

• Open source (GPLv2 / BSD)

• Code, documentation, etc.• http://www.fp7-pursuit.eu/• https://github.com/fp7-pursuit/blackadder/

• Current release: v0.2.1 (in GitHub)• Next release expected soon

Page 35: Blackadder ICN Prototype

BLACKADDER DEMO

Page 36: Blackadder ICN Prototype

P

S1

S2

F

Virtual machinesrunning in the laptop

Laptop

Bridge

Multicast forwarding

Video stream

Page 37: Blackadder ICN Prototype

How it works (roughly)

proxy proxy

library

recvpub

sendsub

library

Blackadder Blackadder

RV

TM

publish scopepublish info subscribe info

computepaths

FID

publish data

Page 38: Blackadder ICN Prototype

Anything else?Questions?

Thank you!