Autonomous Network Architecture
Download
Report
Transcript Autonomous Network Architecture
The ANA Project
Kaiserslautern, Germany
4 March 2012
Disclaimer
ANA has been a collaborative effort – 10 partners
Many thanks to all team members!
But specifically for the core architects and developers:
Christian Tschudin
Christophe Jelger
Ariane Keller
Franck Legendre
Simon Heimlicher
Ghazi Bouabene
2
Where will we need
networking in the future?
3
Where will we need
networking in the future?
4
Where will we need
networking in the future?
5
Where will we need
networking in the future?
6
Where will we need
networking in the future?
8
Networking Characteristics
Private
↔
public
Delay tolerant
↔
real time
Resource constraint
↔
unlimited resources
Control
↔
data
Local
↔
global
Reliable
↔
best effort
9
The Internet Hourglass
Private
↔
public
Control
↔
data
Everything on IP
Delay tolerant
↔
real time
IP
Local
↔
global
IP on everything
Resource constraint
↔
unlimited resources
Reliable
↔
best effort
10
Motivation
•
The Internet suffers from architectural
stress:
not ready to integrate and manage the
envisaged huge numbers of
dynamically attached devices (wireless
revolution, mobility, personal area
networks, etc)
Consensus
Lacks integrated
monitoring
and that a
in the research
community*
next step mechanisms
beyond the Internet is needed.
security
* as seen by the number of recent related projects and initiatives (FIRE, GENI, FIND, FP7, …)
11
The Internet Hourglass
Voice, Video, P2P, Email, youtube, ….
Protocols – TCP, UDP, SCTP, ICMP,…
Changing/updating
the Internet core
is difficult or
impossible !
(e.g. Multicast,
Mobile IP, QoS, …)
Everything
on IP
Application
layer
IP
IPv6
IPvX
Link
layer
IP on
Everything
Ethernet, WIFI (802.11), ATM,
SONET/SDH, FrameRelay,
modem, ADSL, Cable, Bluetooth…
Homogeneous
networking
abstraction
Disruptive
approaches need
a disruptive
architecture
12
Objectives
•
•
•
Goal: To demonstrate the feasibility of autonomic networking.
•
•
Identify fundamental autonomic networking principles.
Design and build an autonomic network architecture.
ANA in a blink:
•
•
•
•
Network must scale in size and in functionality.
Evolving network: variability at all levels of the architecture.
ANA = framework for function (re-)composition.
Dynamic adaptation and re-organization of network.
Networks have to work
doing research through prototypes.
•
•
Early build an experimental network architecture.
Prototype used as feedback to refine architectural models.
Architectures are not built, they grow!
13
Scenario – today
• each device has to implement IP
• IP address configuration through
DHCP, zeroconf, ad hoc mode
• routing protocol has to be agreed on
Most often results in manual
configuration
14
Scenario – with ANA
New ANA Compartment
ANA core
ANA core
ANA core
ANA core
• Self-organization
•• Self-optimization
• Self-association
determine comm. Protocol
• enhanced
& integrated
• Node
bootstrapping
(non-IP)
monitoring
• neighborhood
discovery
• form
compartment
• functional
re-composition
• address
configuration
• intra-compartment
routing
• resilience
• functional
composition
• service
discovery
(suitable network stack)
• Beyond IP!!!
ANA core
ANA core
ANA core
15
Scenario – with ANA
Other ANA Compartment
inter-compartment routing
ANA Compartment
ANA core
ANA core
ANA core
ANA core
ANA core
Internet
(IP Compartment)
16
Heterogeneity
•
Pub/Sub
Home NW
Sensor
•
Generic
framework
Link
layer
???
IP
Application
layer
•
•
We have to extend the waist
and host more paradigms
Future networks have to
scale in size AND
functionality
Enable network evolution
Federation instead of
homogeneous abstraction
We need a framework that
is able to host multiple networks
17
The ANA Project
•
To enable this vision we need:
The ANA core
Highly configurable network stack
Self-* properties
Service discovery
Self-organization
Self-optimization
Novel protocols
Functional composition
18
From Layers to Functional
Composition
App Layer
Trans Layer
•
•
•
Net Layer
MAC Layer
Phy Layer
•
Per application port
UDP/TCP handling
IP does
defragmentation,
checksum,…
All packets from
Ethernet with:
0x0800 IP
0x86DD IPv6
0x809B Apple Talk
19
From Layers to Functional Composition
•
•
At least same
functionality as before,
but decomposed
Allows for composition of
functionality / services
Also:
•
New functionality
integrated in protocol
stack
Not so novel, but we add
• Dynamic re-configuration
• Autonomic properties
Applications
Checksum
Reliable
Transport
Routing
Mobility
Prediction
Functional
Compartment
Monitoring
Fragmentation
Phy/MAC Layer
20
Functional Composition
Application Layer
passive
adaptive
monitoring monitoring
probing
capture
system
monitor
Mobility
prediction
Pub/Sub
AODV
TCP
Service
discovery
OSPF
UDP
RIP
SAFT
FBR
SCTP
DSR
New TP?
Service
placement
New RP?
Virt. Coord
Minimum
Infrastructure
Maximum
Extensibility
Dispatching Table
ANA core
New prot?
Functional
composition
IP frame
OSI
ATM frame
IPX
Phy/MAC Layer
21
Scenario – with ANA
Extensible
APIs and
Transitioning
End Node
Network Node
Functional
Composition
Applications
Applications
Monitoring
Compartment 2
OneLab2
ANA core
ANA core
ANA core
ANA core
Routing and
Transport
Compartment 1
ANA core
Compartment n
Service
Discovery
ANA core
ANA core
ANA core
ANA core
ANA core
ANA core
ANA core
Internet
Self-Association &
Organization
22
Pitfalls in network architecture design
Static/rigid standards instead of mechanisms for change
management:
e.g. Global address space (requires uniqueness and
global coordination)
Leaking of and relying on network internal details:
e.g. Built-in address dependency (i.e. address-centric
architecture vs address agnostic)
To avoid running into such pitfalls, we adopt an incremental
approach via prototyping cycles :
Helps revealing faults or inconsistencies in the
architecture design, gain experience and acceptance
23
ANA: the common denominator
ANA must permit variability at all levels of the architecture:
Multiple variants to perform a given task.
Different networks co-exist and compete.
The architecture is open for extensions and
(evolution).
And this should be done in an autonomic way
(less humans in the control loop)
24
What did ANA do, finally?
Socket De-Construction
Semantic
richness
Socket
interface
Changing
set of
NW funct.
adaption
layer
ANA primitives
Mappings to hardware,
software systems
t
25
You cannot "build" an architecture, you "grow" it
•
The project was articulated around 2 prototyping
cycles.
Methodology: design, test/validate, refine.
2006
2007
2008
2009
2010
Design phase
First "Blueprint"
(architectural model)
First prototyping
2nd prototyping
Extra
phase
phase
time
Final
Testing + feedback
integration
phase
2nd design phase
Mature "Blueprint"
26
Example Scenario 1:
Sensor Network
•
•
•
•
Distributed nodes to gain information about the environment
Fire alarm
Temperature measurement in permafrost
Limited resources (power, memory, CPU, etc.)
Network conditions can change frequently
Runtime customization of network stack to save power
dynamic
reconfiguration
Application
Application
Reliability
Link Layer
Protocol
Link Layer
Protocol
27
Example Scenario 2:
Video Surveillance System
•
•
•
•
Surveillance of train stations or airports
Communication between cameras
Communication from cameras to administrator
100% uptime required
Integration of new features without service disruption
Software updates for bug fixes without service disruption
Application
dynamic
reconfiguration
Application
Encryption
version 1.1
Encryption
version 1.2
Link Layer
Protocol
Link Layer
Protocol
28
Flexible Protocol Graph –
Single Node
Thread level
Packet loss
Locality
Application
Congestion
Packet Flow
Controller
Phy/MAC
Temperature
Available
Power
Available
Hardware
Hardware
Utilization
29
Flexible Protocol Graph –
Single Node
Thread level
Packet loss
Locality
Application
Congestion
Packet Flow
Controller
Phy/MAC
Temperature
Available
Power
Available
Hardware
Hardware
Utilization
30
Flexible Protocol Graph –
Multiple Nodes
•
•
Blocks loaded by an administrator
Protocol stack changes
Negotiation between different nodes
Maintenance: Use existing protocol graph for negotiation
Application
Application
Suggestion
Accepted?
No
negotiation
Yes
Reevaluation
Ok to use old graph?
No
Use new
protocol
Yes
Phy/MAC
Phy/MAC
Use old
protocol
Tear down
connection
31
Flexible Protocol Graph –
Multiple Nodes
•
•
Blocks loaded by an administrator
Protocol stack changes
Negotiation between different nodes
Maintenance: Use existing protocol graph for negotiation
Application
Application
Suggestion
Accepted?
No
negotiation
Yes
Reevaluation
Ok to use old graph?
No
Use new
protocol
Yes
Phy/MAC
Phy/MAC
Use old
protocol
Tear down
connection
32
ANA Blueprint
a look from inside
33
ANA: a meta-architecture
•
ANA does not impose how network compartments
should work internally:
…
Pub/Sub
Home NW
Internal
operation
is not
imposed
Sensor
ANA specifies
interfaces and
interactions with
network
compartment
IP
the ANA framework specifies how networks interact.
leading to multiple and
heterogeneous compartments
but generic interaction
ANA framework
34
A meta-architecture needs abstractions
Abstractions permit to "hide" heterogeneity.
Functional Block (FB)
Information Dispatch Point (IDP)
Information Channel (IC)
Compartment.
ANA contribution: extract the „basics“ of all computer communications,
not only Internet specific concepts
36
Functional Blocks (FBs)
Code and state that can process data packets.
•
Protocols and algorithms are represented as FBs.
Access to FBs is via “information dispatch points” (IDPs).
FBs can have multiple input and output IDPs.
FB internally selects output IDP(s) to which data is sent.
FB
FB
data is sent to IDP
which has state to
call correct function
inside FB
37
Information Channels (ICs)
FBs do packet processing. We also need „packet transfer“.
•
•
•
•
“Information Channels“ are primitive, unidirectional datagram
transport entities
ICs interlink functional blocks, but can also be put in series.
Data is sent to an IDP connected to an IC.
Note: „channels“ are an not tangible, usually distributed
Various types of information channels:
unicast
multicast
anycast
concast
38
ANA Compartment
•
•
•
•
Compartment (CT) = space where FBs, IDPs and ICs live
CTs, beside IDPs, probably the most important ANA
contribution
Compartments indicate management borders, but also
other grouping: name space, policies, technology, hardware etc
Observation: The Internet lacks compartments, at least officially
39
ANA – a Framework for Compartments
•
•
Compartment = wrapper for networks.
ANA does not impose how network compartments should work
internally: the ANA framework specifies how networks interact.
…
ANA specifies
interfaces and
interactions with
any network
compartment
Internal
operation
is not
imposed
leading to multiple and
heterogeneous compartments
but generic interaction
ANA framework
40
Compartments and « Members »
•
•
Compartments offer connectivity among „compartment members“
A (network) compartment defines how to join and leave a compartment:
member registration, trust model, authentication, etc.
Each compartment defines a conceptual membership database.
Registration: explicit joining and exposing is required ("default-off"
model).
A=…
Register(“A”)
How registration is
performed is specific to
each compartment.
Compartment
41
Member resolution
Defines How to reach (communicate with) another member: peer
resolution, addressing, routing, etc.
Resolution: explicit request before sending ("no sending in the
void").
A=…
A=…
Resolution process
returns communication
entry point a
resolve
Request(“A”)
A
A
How resolution is
performed is specific to
each compartment.
a
Compartment
Compartment
42
Compartments and Layers
•
Compartments can be overlaid, i.e. compartments can use the
communication services of other compartments.
The compartment abstraction serves as the unit for the
federation of networks into global-scale communication systems.
It defines interaction rules with the "external world", the
compartment boundaries (administrative or technical), the
peerings with other compartments, etc.
43
What about addresses and names ?
Addressing and naming are left to compartments.
Each compartment is free to use any addressing, naming, and
routing schemes (or is free to not use addresses, for example in
sensor networks).
The main advantages are:
No need to manage a unique global addressing scheme.
No need to impose a unique way to resolve names.
ANA is open to future addressing and naming schemes.
The main drawbacks are:
Back to the CATENET challenges : How to inter-network in such
heterogeneous address/name spaces ?
44
Local labels for handling (global) addresses
•
Target resolution returns a local label = IDP
IDPs are "indirection points inside the network stack".
Addresses/names = input for the resolution process.
The IDP then maintains the state to reach the destination.
A=…
Resolution process
returns communication
entry point a
A
a
Compartment
45
Local labels for handling
(global) addresses
Why is this useful? ("startpoints instead of endpoints")
•
Ability to bind to destinations in an address agnostic way.
•
•
This is important to support many flavors of compartments
that can use different types of addresses and names.
Useful decoupling between identifiers and means to address
them.
•
Important to permit dynamic re-binding of communications.
IC
A
data is sent to IDP
which has state to
reach the destination
CTX = 10.1.2.3
SRV = tcp:80
How CTs, ICs, FBs, and IDPs fit together
Node compartment
FB1
a
Node compartment
FB2
IC
c
b
Network
compartment
47
Example of communication setup
•
Interaction with the node compartment is via a
special kind of FB called an "access object (AO)".
For example, register and resolve requests are sent to the
AO.
client1
client2
ANA client has a control channel
to the node compartment.
This indicates that FB
is the control-FB for the
compartment
p
v
Access object (FB) to private
view of node compartment
48
Example of communication setup
(2)
•
Clients get access to the network compartment access
objects.
client1
client2
Network Compartment
e
p
Access objects (FB)
to Network
compartment
f
v
Client has now access to the membership
database of the node compartment which
contains the list of available
network compartments.
49
Example of communication setup
(3)
Client2 registers (via the IDP 'f') an identifier "B" with network
compartment.
Conceptually, this creates an entry in the membership database.
In the compartment database
there is now a member B.
client1
In the export view, this IDP
indicates that client2 is reachable
via some identifier (e.g. B).
client2
B=…
b
e
f
p
v
"stack" FB
b
50
Example of communication setup
(4)
•
Client1 resolves (via the IDP 'e') the identifier "B"
and receives startpoint IDP 'a'.
client1
client2
B=…
a
b
f
e
p
v
a
s
"stack" FBs
b
i
s
i
For a link-layer compartment,
this IC abstracts the physical link.
51
Example of communication setup (5)
•
Typically, client1 only sees exported view (unless
compartment exposes internal operation).
client1
client2
Export view of
the compartment
a
b
52
Forwarding … some examples.
Bridging
+ intermediate
processing
53
Overlay scenario with compartments
Compartment N
imported element
imported element
Compartment L1
Send to medium
Compartment L2
Listen to
medium
Send to medium
Listen to
medium
54
Overlay scenario with compartments
•
Same figure but only with exported views of L*
compartments.
Compartment N
imported element
Compartment L1
imported element
Compartment L2
55
Overlay scenario with compartments
•
Figure just showing export view of compartment N.
Compartment N
ANA node 1
ANA node 2
ANA node 3
ANA node 3
Which could also be drawn like that
(just showing the export view).
ANA node 1
ANA node 2
56
Where does autonomic fit in?
•
Autonomic path setup/search in ANA
"Brute-force" search via resolve() primitive.
client
? "X"
If client does not know
how to reach identifier "X",
it can try to resolve() it
with all the network
compartments it knows
about.
? "X"
? "X"
..
.
…X
..
.
57
Autonomic path setup/search in ANA
•
Recursive "Brute-force" search via resolve() primitive.
client
If client cannot resolve()identifier "X", it could ask
dedicated systems from a "yellow-pages" compartment to
help resolving "X" (e.g., to learn which compartment to join)
? "X"
? "X"
? "X"
? "X"
..
.
..
.
..
.
yellow-pages
system
58
Functional composition
"Chains" of functions are setup on-demand in a dynamic way.
Packet dispatching in ANA is based on IDPs.
app
a
e
f1
f2
c
b
re-binding of IDP 'c' is
not visible to users of 'c'
(function f2 here)
Information
Dispatch Table
a -> f1(e)
b -> f2(c)
c -> fwd(e)
e -> eth-if(0)
app
a
e
f1
f3
f2
b
c
d
Information
Dispatch Table
a -> f1(e)
b -> f2(c)
c -> f3(d)
d -> fwd(e)
e -> eth-if(0)
re-binding is a simple
change in dispatch table
60
Modelling nodes as compartments
•
Each node itself appears as a compartment.
Member database: catalog of available functions.
Resolution step to access a given function.
Also implements access control.
Resolution instantiates functional blocks (FBs).
The node compartment hosts/executes FBs and IDPs.
Node Compartment
p
e
App/service
f
a
61
Different “views” for a compartment
A network compartment has different views, for different usage.
This shows that there is really just one IDP "mapped" in the different views.
Node compartment
Node compartment
Compartment
exported
view
data in
IC abstracts communication
service provided by
the compartment
data out
structural
view
imported
view
IC abstracts service
provided by
underlying hardware
Send to medium
(Ethernet, wifi, etc)
"ANA world"
Listen to medium
(Ethernet, wifi, etc)
Underlying
Hardware
62
Node architecture
Legacy apps
Applications
sockets
Adaptation layer
ANA Playground + API
MINMEX
Node
Compartment
MINMEX
controller
Information
Dispatch Table
Event notification
system
compartments,
learning logic,
service checker,
IP overlay,
monitoring,
turf,
p2p,
AN style …
Platform abstraction layer (optional)
Platform OS
63
The Blueprint
in practice:
the ANA API
64
Motivation
•
•
•
Network compartments are free to internally run
whatever addressing/naming schemes, routing
protocols, etc.
The "glue" for all interactions in ANA is the
compartment API.
All network compartments must support the API in
order to allow all possible interactions between
compartments.
65
Overview
•
The API offers 6 fundamental primitives. In C-style:
IDPp publish (IDPc, CONTEXT, SERVICE)
int unpublish (IDPc, IDPp, CONTEXT, SERVICE)
IDPr resolve (IDPc, CONTEXT, SERVICE, chanType)
int release (IDPc, IDPr)
void* lookup (IDPc, CONTEXT, SERVICE)
int send (IDPr, DATA)
66
CONTEXTS and SERVICES
•
The SERVICE argument is typically what is being published or
looked up.
•
e.g., an address, a name, a file, a video stream, a
printing service, etc.
The CONTEXT defines some scope inside a compartment.
IPv4: 1.2.3.4, 224.0.0.1, 10.1.2.255.
IPv6: 2001::1, FF02::1, ::1.
eMule: Madonna, Pink Floyd, Blade Runner.
67
CONTEXTS and SERVICES
•
We have currently specified two "well-known"
CONTEXT value.
"." node-local
"*" largest possible scope as interpreted by the
compartment
Examples:
•
•
IPv4 compartment:
"*" ~ 255.255.255.255
"." ~ 127.0.0.1
Ethernet:
"*" ~ FF:FF:FF:FF:FF:FF
"." ~ local address
68
Using the API: some examples
Publishing an IPv4 address in the Ethernet
compartment.
IP-FB
y
ETH-FB
Ethernet
Compartment
z
publish
"10.1.2.3" z
node M
z <-- publish(y, "*", "10.1.2.3”)
69
Using the API: some examples
Resolving an IPv4 address in the Ethernet
compartment.
IP-FB
s
IP-FB
resolve
e
y
ETH-FB
i
s ETH-M
z
ETH-FB
How the resolution is performed
is compartment specific
(e.g. broadcast message sent to
FF:FF:FF:FF:FF:FF)
"10.1.2.3" z
node N
node M
Ethernet
Compartment
s <-- resolve(e, "*", "10.1.2.3")
70
Using the API: some examples
Sending data.
IP-FB
send
s
IP-FB
e
y
ETH-FB
z
ETH-FB
i
s ETH-M
"10.1.2.3" z
node N
node M
Ethernet
Compartment
send(s, DATA)
71
Using the API: some examples
Releasing an information channel.
IP-FB
IP-FB
release
e
y
ETH-FB
z
ETH-FB
i
"10.1.2.3" z
node N
node M
Ethernet
Compartment
release(e, s)
72
Blueprint Updates
•
•
•
Event notification system
IDPinfo framework
Security section (catch up with implement.)
Clarify „IDP ownership“
Private and public IDPs
Implementation guidelines (threads, crash
containment, msg queues, symbol export,
ANA-controlled malloc)
73
Main publications and deliverables
•
•
•
•
Ghazi Bouabene, Christophe Jelger, Christian Tschudin, Stefan
Schmid, Ariane Keller, Martin May, The Autonomic Network
Architecture (ANA), In IEEE JSAC special issue on Recent
Advances in Autonomic Communications, January 2010.
Ariane Keller, Theus Hossmann, Martin May, Ghazi Bouabene,
Christophe Jelger, and Christian Tschudin, A System
Architecture for Evolving Protocol Stacks, in Proceedings of
the 17th Int. Conference on Computer Communications and
Networks (ICCCN'08), August 2008, St. Thomas, USA.
Deliverable D1.12
Final ANA Blueprint: version 2.1
Deliverable D1.13
Final public release of ANA Core software
74
Final status 2010
Application Layer
IMF
MCIS
capture
Virt. Coord
Mobility
prediction
Remediation
Pub/Sub
CCR
TCP
Service
discovery
NFSR
UDP
FBR
SAFT
Service
placement
TURF
FDE
Minimum
Infrastructure
Maximum
Extensibility
Dispatching Table
ANA core
Functional
composition
ISS
ANA
ANA
Browser
Browser v2
IP
IPv2
Phy/MAC Layer
75
Assessment 2:
NetArch = a sluggish monster?
•
Look at Nimrod as an example of failed arch
thinking
NetArch = sum of
concepts
code framework
actual algorithms (service discovery, routing,
directories, device drivers, monitoring etc)
management logic and knobs for humans
deployment vector (think BSD)
„rat hole“ to sneak into existing solutions ...
77
Assessment 3:
Battle for the brains
First ANA blueprint was not easy to obtain:
Fierce battles on „the right view“
This continues when spreading the word
•
•
„not invented here“
inertia of old thinking/habits („I want my
addresses back“)
78
Extending the reach of ANA
•
By porting of the framework on multiple
mobile platforms / devices
Linux Open Embedded / Nokia N810
Symbian / N95
MacOS / iPhone
79
Software Architecture
•
•
•
•
Implementation in the Linux kernel
Linux kernel network stack replaced by flexible protocol
graph
BSD socket interface and device drivers are retained
Configuration via user space tool
Applications
userspace
kernelspace
FP_s
BSD Socket Interface
FB_1
PPE
FP_d
FB_n
Virtual Link Layer
Device Driver
80
Applications / Use Cases
PUBLISH SUBSCRIBE SYSTEM
81
Extending the reach of ANA
•
By developing mobile applications with
E.g., ANA API for opportunistic networks
Content dissemination
Social networking
Flea Market
Round games
82
Extending the reach of ANA
•
PodNet ANA port
Opportunistic content
exchange
SAFT: reuse link-to-link bricks
Peer Manager: keep track of
peers
Synchronization: keep track of
peer status
Transfer: trigger data exchange
Security/Trust: spam avoidance
Application Layer
App/GUI
Content
Synchronization
FB
Peer
Manager
FB
Transfer
FB
SAFT
FBs
WLAN – 802.11
Bluetooth
Data Link Layer
83
ANA and OneLab2 (EU FP7)
•
PLE/SAC Gateway
Extends PlanetLab nodes to support SAC clouds based on
Future Internet network paradigms
Autonomic Networks (EU FP6 ANA)
Opportunistic (Pocket switched networks – EU FP6 Haggle)
Delay-tolerant (DTNRG)
PlanetLab/SA
C Gateway
PlanetLab/SAC
Cloud
Planet Lab
node
Internet
Internet
84
OneLab2 – ANA testbed
opportunities?
Office Testbed
• Uncontrolled mobility
PlanetLab
node
Sport event Testbed
• Semi-controlled mobility
PlanetLab/SA
C Gateway
Internet
Vehicular Testbed
• Uncontrolled mobility
PlanetLab
Campus Testbed
• Uncontrolled mobility
Robot Testbed
• Controlled mobility
85