Future Internet - ANA. INF5090 Thomas Plagemann

Similar documents
Contents Outline Why do we need a new networking paradigm The drawbacks of the IP hourglass model The self-x attributes Example of network view

2/14/2011. Three Internet Anniversaries in 2009? Outline. Acknowledgement. 20 years World-Wide Web. 30 years Usenet

2/21/2012. Three Internet Anniversaries in 2009? Acknowledgement. Outline. Motivation (cont.) Motivation. 20 years World-Wide Web.

416 Distributed Systems. Networks review; Day 1 of 2 Jan 5 + 8, 2018

Page 1. Goals for Today" What Is A Protocol?" CS162 Operating Systems and Systems Programming Lecture 10. Protocols, Layering and e2e Argument"

Lecture 3 Protocol Stacks and Layering

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

A Polymorphic Network Architecture based on Autonomous Domains DIANA. Domain-Insulated Autonomous Network Architecture

Internet Design: Big Picture

Why do we really want an ID/locator split anyway?

416 Distributed Systems. Networks review; Day 2 of 2 And start of RPC Jan 13, 2016

Service Mesh and Microservices Networking

02 - Distributed Systems

CA464 Distributed Programming

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology 3/2/2016

Need For Protocol Architecture

Distributed Systems Principles and Paradigms

Need For Protocol Architecture

The ANA Project Development of the ANA-Core Software

Part I: Future Internet Foundations: Architectural Issues

02 - Distributed Systems

The Future Internet Motivation, Background, and Basics

Exploring Alternative Routes Using Multipath TCP

1. The Internet 2. Principles 3. Ethernet 4. WiFi 5. Routing 6. Internetworking 7. Transport 8. Models 9. WiMAX & LTE 10. QoS 11. Physical Layer 12.

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

Remote Procedure Calls

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

Memory Management Strategies for Data Serving with RDMA

Software Architecture

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

Virtualization of networks

Global Data Plane. The Cloud is not enough: Saving IoT from the Cloud & Toward a Global Data Infrastructure PRESENTED BY MEGHNA BAIJAL

Theory of Network Communication

Announcements Computer Networking. What is the Objective of the Internet? Today s Lecture

Distributed Systems Multicast & Group Communication Services

Lecture 2: Internet Architecture

COMS Introduction to Computers. Networking

Data Model Considerations for Radar Systems

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Module objectives. Integrated services. Support for real-time applications. Real-time flows and the current Internet protocols

Named Data Networking (NDN) CLASS WEB SITE: NDN. Introduction to NDN. Updated with Lecture Notes. Data-centric addressing

Extensible Kernel Security through the TrustedBSD MAC Framework

CS 428/528 Computer Networks Lecture 01. Yan Wang

OS Extensibility: SPIN and Exokernels. Robert Grimm New York University

Multimedia Networking

A unified multicore programming model

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Mobile Network Architecture & Protocols WINLAB IAB Meeting October 29-30, 2001

Remote Health Monitoring for an Embedded System

Title. EMANE Developer Training 0.7.1

Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology

CS 268: Internet Architecture & E2E Arguments. Today s Agenda. Scott Shenker and Ion Stoica (Fall, 2010) Design goals.

Communication Networks

IP Multicast. Overview. Casts. Tarik Čičić University of Oslo December 2001

Chapter 1 Introduction

Multicast Communications. Tarik Čičić, 4. March. 2016

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

JXTA TM Technology for XML Messaging

Introduction to Networks

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ

Computer Networking. Introduction. Quintin jean-noël Grenoble university

Communication Paradigms

Lecture 8: February 19

Protocol Layers, Security Sec: Application Layer: Sec 2.1 Prof Lina Battestilli Fall 2017

EC EMBEDDED AND REAL TIME SYSTEMS

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

Project Zygote. Rapid prototyping for the Internet of Things

Working with Contracts

Introduction to computer networking

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

OPERETTA: An Optimal Energy Efficient Bandwidth Aggregation System

CS4700/5700: Network fundamentals

Secure Sharing of an ICT Infrastructure Through Vinci

Opal. Robert Grimm New York University

Software Driven Verification at SoC Level. Perspec System Verifier Overview

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

QoS in IPv6. Madrid Global IPv6 Summit 2002 March Alberto López Toledo.

CSCI Computer Networks

Management of Future Internet with Autonomic Network Architecture and Model

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Resource Containers. A new facility for resource management in server systems. Presented by Uday Ananth. G. Banga, P. Druschel, J. C.

Jump-Start Software-Driven Hardware Verification with a Verification Framework

Software-Defined Multicast Network Overlay Framework draft-qi-bitar-intarea-sdn-multicast-overlay-00

Chapter 16 Networking

Interrupts and System Calls

ETSF10 Internet Protocols Routing on the Internet

SJTU 2018 Fall Computer Networking. Wireless Communication

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Square Pegs in a Round Pipe: Wire-Compatible Unordered Delivery In TCP and TLS

Internet of Things 2018/2019

Embedding Identity in Mobile Environments

Forwarding on Gates - a Clean-Slate Replacement for IP

Opportunistic Application Flows in Sensor-based Pervasive Environments

Module 1 - Distributed System Architectures & Models

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

Transcription:

Future Internet - ANA INF5090 Thomas Plagemann

Recap why a Future Internet? ANA - Project 2

Overview Motivation Blueprint ANA core Monitoring Framework ANA - Project 3

Motivation Variability in the Internet is above and below IP: it's the "hourglass" model. Application layer www, email, ftp, ssh, DNS, peer-to-peer (emule, BitTorrent) VoIP (Skype), VoD, grid, IP also called the "waist" of the Internet Link layer Ethernet, wifi (802.11), ATM, SONET/SDH, FrameRelay, modem, ADSL, Cable, Changing/updating the Internet core (e.g., IPv6, Multicast, MIP, QoS, ) is difficult or impossible! 4

Motivation Solutions adopted so far : Patches to cope with challenges contradict the initial design paradigms Incoherencies patches to the patches Consensus in the research community that a next step beyond the Internet is needed. 5

ANA: finding the least common denominator Our contribution: enable & demonstrate autonomic networking. ANA abstractions allow variability at all levels of the architecture: variants to perform a given task, and networks co-exist and (can) compete, open for extensions (evolution) 6

Pitfalls in network architecture design Static/rigid standards instead of mechanisms for change management Global address space (requires uniqueness and global coordination) Leaking of and relying on network internal details Built-in address dependency (i.e. address-centric architecture) To avoid running into such pitfalls, we adopt an incremental approach via prototyping cycles Helps revealing faults or black-holes in the architecture design 7

You can't "build" an architecture, you have to "grow" it Project is articulated around 2 prototyping cycles. Methodology: design, test/validate, refine. 2006 2007 2008 2009 Design phase First "Blueprint" (architectural model) First prototyping phase Testing + feedback phase 2nd prototyping phase Final evaluation 2 nd design phase Mature "Blueprint" 8

ANA "one-size-fits-all" ANA does not want to propose another "one-size-fits-all network waist". ANA is a meta-architecture to host, interconnect and federate multiple heterogeneous networks Application layer Multiple "network instances" can co-exist. ANA framework Link layer 9

Core abstractions ANA abstractions: Compartment. Information Channel (IC). Information Dispatch Point (IDP). Functional Block (FB). More tricks with compartments: "Node compartment". Overlays and compartment inter-stitching. 10

ANA Compartment 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 11

Compartments (cont.) 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 12

Compartments (cont.) 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= resolve Request( A ) A Resolution process returns communication entry point a How resolution is performed is specific to each compartment. Compartment a A Compartment 13

Compartments (cont.) Compartments can be overlaid, i.e. compartments can use the communication services of other compartments. compartment abstraction serves as the unit for the federation of networks into global-scale communication systems. Has interaction rules with "external world", the compartment boundaries (administrative or technical), peerings with other compartments, etc. 14

Compartments (cont.) Compartments decompose communication systems and networks into smaller and easier manageable units. 15

What about addresses and names? Addressing and naming are left to compartments. Each compartment is free to use any addressing and naming 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-work in such heterogeneous address/name spaces? 16

Local labels for handling (global) addresses Target resolution returns a local label = IDP Addresses (if any) and names (if any) limited as input for resolution The IDP maintains the state to reach the destination A= Resolution process returns communication entry point a A a Compartment 17

Local labels for handling (global) addresses Applications send data only to IDPs Bound to a flexibe element data is sent to IDP Name/address IC A Startpoints instead of endpoints.. 18

Information Channels (ICs) Resolution process returns access to an "information channel" that can be used to reach the target member(s). Various types of information channels. unicast multicast anycast concast 19

Core abstractions ANA abstractions: Compartment. Information Channel (IC). Information Dispatch Point (IDP). Functional Block (FB). More tricks with compartments: "Node compartment". Overlays and compartment inter-stitching. 20

Functional Blocks (FBs) Code and state that can process data packets. Protocols and algorithms are represented as FBs. FBs implement the Information Channels (abstract entities) Access to FBs is also 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 21

How ICs, FBs, and IDPs fit together Node compartment Node compartment FB1 IC FB2 a b c 22

Modelling nodes as compartments Organize a node's functionalities as (compartment) members: 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 App/service p e f a 23

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 "ANA world" Send to medium (Ethernet, wifi, etc) Listen to medium (Ethernet, wifi, etc) Underlying Hardware 24

Implementation ANA Core Applications Legacy apps sockets Adaptation layer MINMEX controller MINMEX Node Compartment Information Dispatch Table ANA Playground + API compartments, learning logic, service checker, IP overlay, monitoring, turf, p2p, AN style Platform abstraction layer (optional) Platform OS 25

Basic design Two main components: The MINMEX i.e., the ANA "micro-kernel" Supports core API and inter-brick communications. Implements packet dispatching to IDPs. Implements the Node Compartment. "Bricks" i.e., individual components of the ANA Playground Can be a functional block which offers access to a network compartment. Can also provide processing support (e.g. encryption). 26

Basic design The ANA node can be distributed. We do not enforce that all the components of an "ANA Node" run on the same computer. The MINMEX and its bricks can communicate via various IPC types called "gates": Unix/UDP sockets, named pipes, generic netlink. The motivation was that the notion of a "node" was not restricted to being a physical device. 27

Basic design Three different API levels. Objective: better understand the level of complexity vs. flexibility we want to reach. API Level 0: maximum flexibility but developer must know all the details for encoding and decoding messages. API Level 1: good flexibility and developer can use functions to encode and decode messages. API Level 2: less flexibility, but function prototypes are very ease to use, code is easy to write. 28

Basic design One code, two platforms. The base code compiles as either userspace application or Linux kernel modules Userspace: easy for development and debugging, easy to use, most people can use it. Linux kernel: for best performance, permits to interact with kernel network internals. We also started lately a support for ANA bricks written in the Erlang Programming language 29

Basic design One code, two platforms. Bricks can be developed in a "platform-agnostic" way according to a standard template. The API library provides wrapper functions and mechanisms to properly handle function calls (e.g., malloc vs. kmalloc, main vs. init) We also provide "agnostic" libraries for system-specific functions such as threads and timers. Passing arguments to bricks via CLI is also done via a system-agnostic mechanism (à la argc/argv[ ]). 30

Available components MINMEX: node compartment, IDT, IDP manipulation, status interface, API libraries. Bricks: Ethernet and IP compartments. vlink sub-system for flexible "cabling" of ANA nodes. Monitoring components: core part, packet capture, measurements (CPU, net load), "ping". Inter-compartment routing with regular expressions. Content centered routing, Field Based routing Functional composition prototype. User side: chat application, various code examples. And many other bricks of project partners Tools QuickRep, timers, threads, Remote IDP Access 31

Monitoring - Motivation Blueprint Building blocks: - Measurement FBs - Info. Sharing (MCIS) ANA Core Efficient and user friendly monitoring with ANA properties for all ANA developers 32

Goals Extensibility: arbitrary measurement metrics and bricks can be added at any time no a priori knowledge Self-configuration: without manual configuration Self-optimization: optimize its service by adapting to client requirements, available bricks and current context Adjustable accuracy Efficiency Transparency 33

Conceptual Model 34

Conceptual Model (cont.) Orchestration Dispatcher Metric 1 Metric n Measuring FB1 Measuring FBy 35

Conceptual Model (cont.) Client Return results Dispatcher Client request Identify metric Metric 1 Metric n Select Measuring FB Measuring FB1 Measuring FBy 36

High-level Task of IMF Client brick forwards a monitoring request to IMF including the following fields: Nonce, Type, Type parameters, Metric, Metric parameter, Non-functional requirements, Reply IDP IMF analyses request: Which bricks can provide data for the specified metrics? If more than one brick which is the most suitable one (depends on context and client requirements) Dispatcher forwards client monitoring request to the selected brick 37

Challenge 1 How to achieve extensibility and avoid a priori knowledge? Who knows which metrics can be monitored? Minimal assumption: Each measuring brick developer knows which metrics the brick measures Each measuring brick developer knows the context that is relevant for the brick Each measuring brick developer knows the non-functional properties of the brick New bricks provide the information to IMF and IMF manages it Information Management 38

Challenge 2 How to select the best suited measuring brick? Available bricks Brick properties QoS requirements of client Context 39

Context & Brick Properties Example: Vivaldi brick: Always: resource consumption = low mobile: accuracy = bad Network type = static: accuracy = medium Ping brick: Always: resource consumption = medium Always: accuracy = good /* Impact on non-functional properties */ 40

Context Usage The context defines how the monitoring bricks are performing in the given situation (=context) The monitoring request includes the particular requirements, e.g. prefer high accuracy or low resource usage Example of a simplified monitoring request: Latency: <accuracy, medium or better, medium weight>, <resource consumption, low, high weigh 41

Context Usage (cont.) Instantiate the monitoring brick property descriptions and compare which one matches best the monitoring request Example: Monitoring brick properties Vivaldi brick: Always: resource consumption = low mobile: accuracy = bad Network type = static: accuracy = medium Ping brick: Always: resource consumption = medium Always: accuracy = good Monitoring request: Latency: <accuracy, medium or better, medium weight>, <resource consumption, low, high weight> Context : Network type = mobile -> Vivaldi: Resource consumption = low Accuracy = bad Ping: Resource consumption = medium Accuracy = good -> ping matches best 42

IMF Building Blocks Client request reply Dispatcher Brick Selection Information Management MCIS Measuring FB Measuring FB Extensible set of Measurement Functional Blocks 43

Vocabularies Assumptions: Vocabularies are shared Agreement on a set of vocabulary specification trees (VSTs) Vocabularies are extensible New subconcepts can be added in time Information sharing Each brick in general knows a subtree (a pruned version) of each VST The IMF knows the VSTs composed of the bricks subtrees 44

Shared Vocabularies BrickVST Brick types New bricks announce where they fit in the BrickVST MetricsVST Metrics New bricks announce their metrics and where it fits in the MetricsVST ContextVST Context types and corresponding values QoSVST QoS parameters and corresponding values New bricks announce their QoS profile QoSRequirementsVST 45

Example: Brick VST Brick Type Ping Network Monitoring Brick Monitoring Brick VC Context Brick Brick Selection Brick In BrickVST brick names like Ping and VC are probably not part of the shared vocabulary but are decided by the brick providers 46

Example: MetricsVST Metric Type Network Performance Metrics throughput latency jitter bandwidth Both metric types and metric names are part of the shared vocabulary 47

Example: ContextVST Context types and possible values Context Type Network Context Resource Context Node Type Context mobile static CPU Context Battery Context nodea nodeb cpu1 cpu2 batteryx batteryy 48

Example: QoSVST QoS Parameter accuracy resource consumption bad medium good low medium high QoS parameter names and corresponding possible values 49

Example: Metrics of Context Bricks corresponding metrics name Metric Type Context Type Context Metrics Network Context Node Type Context Network Context Node Type Context mobile static CPU Context Resource Context Battery Context nodea batteryy nodeb network context CPU Context Resource Context Battery Context node type context cpu1 cpu2 batteryx cpu context battery context 50

Information Model Brick brick type brick name metric type metric name QoS Profile brick type brick name QoS parameter context type context value QoS property 51

Summary ANA blueprint: IDPs ICs Compartments FBs and bricks Polymorphic Internet ANA core Monitoring Framework & semantics 52