developing a rina prototype over ip using the tinos...

27
Developing a RINA Prototype over IP using the TINOS framework 7 th International Conference on Future Internet Technologies September 12 th , 2012 Eduard Grasa Research Manager @ DANA Fundació i2CAT

Upload: others

Post on 15-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Developing a RINA Prototype over IP using the TINOS framework

7th International Conference on Future Internet Technologies September 12th, 2012

Eduard Grasa Research Manager @ DANA

Fundació i2CAT

Page 2: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Outline

  Quick introduction to RINA

  RINA Adoption strategy and current prototype rationale

  Prototype components

  Implementation platform

  Next prototyping steps: FP7 IRATI 2

Page 3: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

RINA Architecture

3

•  A structure of recursive layers that provide IPC (Inter Process Communication) services to applications on top

•  There’s a single type of layer that repeats as many times as required by the network designer

•  Separation of mechanism from policy

•  All layers have the same functions, with different scope and range. –  Not all instances of layers may need all functions, but don’t need more.

•  A Layer is a Distributed Application that performs and manages IPC. –  A Distributed IPC Facility (DIF)

•  This yields a theory and an architecture that scales indefinitely, –  i.e. any bounds imposed are not a property of the architecture itself.

© John Day, All Rights Reserved, 2011"

Page 4: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Naming and addressing in RINA   All application processes

(including IPC processes) have a name that uniquely identifies them within the application process namespace.

  In order to facilitate its operation within a DIF, each IPC process within a DIF gets a synonym that may be structured to facilitate its use within the DIF (i.e. an address).

4

  The scope of an address is the DIF, addresses are not visible outside of the DIF.

  The Flow Allocator function of the DIF finds the DIF IPC Process through which a destination Application process can be accessed.

  Because the architecture is recursive, applications, nodes and PoAs are relative   For a given DIF of rank N, the IPC Process is a node, the process at the layer N+1

is an application and the process at the layer N-1 is a Point of Attachment.

1 2 3 4

1 2 1 2 3 1 2

1 2 1 2

DIF A

DIF B DIF C

DIF D

DIF E DIF F

Page 5: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Outline

  Quick introduction to RINA

  RINA Adoption strategy and current prototype rationale

  Prototype components

  Implementation platform

  Next prototyping steps: FP7 IRATI 5

Page 6: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

RINA Adoption strategy

  Start as an overlay to IP, validate technology, work on initial concepts, develop DIF machinery.   Useful by itself: internetwork layer(s), decouple application from infrastructure,

improved application API, support for multi-homing and mobility.

6

IP

Ethernet

Physical Media

Applications

Today  

TCP or UDP

IP

Ethernet

Physical Media

Applications

Current  Prototype  

TCP or UDP

DIF

DIF …

Ethernet

Physical Media

Applications

DIF

DIF …

IP

Physical Media

Applications

TCP or UDP

DIF

DIF …

Physical Media

Applications

DIF

DIF …

End  goal  

Page 7: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

RINA over IP benefits: Internetwork layer(s)

  What if application A wants to communicate with Application C?   It cannot do it, unless you start deploying middleboxes like NATs, application-layer gateways, …

The architecture doesn’t accommodate internetworking!

7

Data Link Data Link Data Link Data Link Data Link

IP

IP Layer A (Public Internet)

IP

IP Layer B (Enterprise Network)

TCP

Appl. A Appl. B

Data Link Data Link Data Link Data Link Data Link

IP

IP Layer A (Public Internet)

IP

IP Layer B (Enterprise Network)

Shim DIF

Appl. A Appl. B Appl. C

Shim DIF

DIF

TCP

Appl. C

Page 8: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

RINA over IP benefits: Separate applications from infrastructure

  There is no separate application namespace, but synonyms that stand for an IP address and a TCP/UDP port number:

  A path to an application.   This makes anything but client/server hard to achieve, e.g. mobility

  In RINA application names are independent of the layers below (DIFs)   Application names can be structured in a way that makes sense for

the application   The application name doesn’t contain the semantics of where the

application is in the network (i.e. what is its point of attachment to the layer below) 8

  http://pouzinsociety.org

Synonym of an interface of a host

Port (Endpoint of TCP connection)

:80

Page 9: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

RINA over IP benefits: Next generation VPN

  DIFs are customizable VPNs that can span multiple IP layers.   Each DIF has its own addressing scheme, security mechanisms (authentication,

authorization), routing strategy, resource allocation strategy (support for different levels of QoS), flow control strategy, data transfer/data transfer control, …

  Processes (and not systems) are members of the DIFs (different processes can access different DIFs in each system). Processes may not have access to the whole range of DIFs available on their system

  DIFs open the door to VPNs optimized for certain applications

9

Data Link Data Link Data Link Data Link Data Link

IP

IP Layer A (Public Internet)

IP

IP Layer B (Enterprise Network)

Shim DIF

Appl. A Appl. B Appl. C

Shim DIF

DIF

Page 10: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Outline

  Quick introduction to RINA and PSOC

  RINA Adoption strategy and current prototype rationale

  Prototype components

  Implementation platform

  Next prototyping steps: FP7 IRATI 10

Page 11: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Architectural model

DIF

System (Host)

IPC Process

IPC Process

Mgmt Agemt

System (Router)

IPC Process

IPC Process

IPC Process

Mgmt Agemt

System (Host)

IPC Process

IPC Process

Mgmt Agemt

Appl. Process

DIF DIF

Appl. Process

IPC API

Data Transfer Data Transfer Control Layer Management

SDU Delimiting

Data Transfer

Relaying and Multiplexing

SDU Protection

Transmission Control

Retransmission Control

Flow Control

RIB Daemon

RIB CDAP Parser/Generator

CACEP Enrollment

Flow Allocation

Resource Allocation

Forwarding Table Generator

Authentication

State

Ve

cto

r Sta

te V

ec

tor

State

Ve

cto

r

Data Transfer Data Transfer

Transmission Control

Transmission Control

Retransmission Control

Retransmission Control

Flow Control Flow Control

11

IPC Resource

Mgt.

Inter DIF Directory

SDU Protec

tion

Multiplexing

IPC Mgt. Tasks

Other Mgt. Tasks

Application Specific Tasks

Increasing timescale (functions performed less often) and complexity

Page 12: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Application 1 (uses native RINA)

The IPC API

12

  Presents the service provided by a DIF: a communication flow between applications, with certain quality attributes.

  6 operations:   portId _allocateFlow(destAppName, List<QoSParams>)   void _write(portId, sdu)   sdu _read(portId)   void _deallocate(portId)   void _registerApp(appName, List<difName>)   void _unregisterApp(appName, List<difName>

  Implementation: Native RINA API and ‘Faux Sockets’ API for Java apps, (the latter to support legacy apps without changing them)

Application 1 (uses faux sockets)

RINA Lib

RINA Software For each flow, local TCP connection to port 32771

RINA Lib

For each flow, local TCP connection to port 32771

Page 13: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  IPC Processes are just application processes. Once they have a communication flow between them, they have to set up an application connection before being able to exchange any further information.

  The application connection allows the two communicating apps to:   Exchange naming information with its apposite, optionally authenticating it   Agree on an application protocol and/or syntax version for the application

data exchange phase

CACEP Common Application Connection Establishment Phase

13

Appl. Process

A

DIF

Appl. Process

B

flow

1) 2)

3) 4)

1

M_CONNECT (srcName, destName, credentials, proto, syntax version) Appl.

Process A

DIF

Appl. Process

B

flow

2

N

Optional messages exchanging authentication information

Appl. Process

A

DIF

Appl. Process

B

flow

N+1

M_CONNECT_R (result, reason, options) Appl.

Process A

DIF

Appl. Process

B

flow

Application data transfer phase, processes exchange data using an application protocol

Page 14: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  CDAP is RINA’s application protocol, modeled after ACSE and CMIP.   CDAP includes CACEP, so it is used both for the application connection

establishment and the application data transfer phases.

  CDAP is object oriented, providing 6 primitives to perform operations on objects: create/delete, read/write, start/stop.   All the objects have the following attributes: class, name, instance and value.   The scope/filter options allow CDAP messages to be applied to multiple

objects at once.

  Implementation:   CDAP abstract syntax defines the contents of the messages that can be used

by the protocol: connect, release (CACEP) create, delete, read, write, start, stop and its associated response messages.

  There can be many concrete encodings for a given CDAP abstract syntax, right now we’re using Google Protocol Buffers (GPB) – many others are possible (JSON, ASN.1, XML, …). Reasons for GPB:   Provides efficient encoding (bitsize and time to parse/generate)

  Being used in production by Google in massive scaled distributed systems   Free, open source tools for developers in many programming languages

CDAP Common Distributed Application Protocol

Page 15: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  The RIB is a logical representation of the information known by a an application process.   Doesn’t need to be a database, the information may be stored in the different

application process components.

  The RIB Daemon provides an API to perform operations on the RIB (both objects in the local RIB and objects in remote application processes’ RIBs).

  Implementation:   The current DIF RIB schema is a tree of the objectNames. The RIB is implemented

as a hashtable indexed by objectName   As a simplification objectName is assumed to be unique

RIB and RIB Daemon Resource Information Base

IPC Process

RIB Daemon

Create | delete | read | write | start | stop

Incoming CDAP messages Outgoing CDAP messages

Invoke operations on other IPC Process components or actual data store

Component 1

Component 1

Page 16: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  Enrollment allows an IPC Process to get enough state information to became an operating member of the DIF.   It occurs when an IPC Process that wants to joint a DIF has established an

application connection to an IPC Process that is a member of the DIF.

  Implementation:   The current enrollment program defines the exchange of objects required to

initialize a new IPC Process as a member of the DIF, including:   Detecting if an address is stale (or null) and assigning a valid one to the new member

(valid addresses are currently preconfigured, will be automated in the future)   Provide information about the QoS classes supported by the DIF   Information on the policy sets supported by the DIF   Information on the DIF data transfer constants, such as max PDU size or the DIF’s MPL

Enrollment

Page 17: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  Manages a flow’s lifecycle: allocation, monitoring and deallocation.

  Note that Flow allocation is separated from data transfer (there can be more than one DTP/DTCP instance associated to the same flow at the same time) – implication of Watson’s results

  Implementation:   Simple distributed directory that implements a broadcast strategy to

disseminate directory updates   Ok for initial experimentation on small networks, use more sophisticated approaches

in the near future

Flow Allocation

DIF

IPC Process

Flow Allocator

Appl. Process

1 Allocate Request (destAPName, QoS Params)

2 Map request into policies, see if is feasible. Search dest app. at the directory.

IPC Process

Flow Allocator

Appl. Process

5

3 M_CREATE(Flow object)

allocation_requested(srcApName)

4 Check access control and policies to see if flow is feasible

6 allocation_response(result)

7 Create DTP/DTCP instance

DTP/DTCP

8

M_CREATE_R(Flow object) 2 Create DTP/DTCP instance

DTP/DTCP

2 Create FAI

FAI FAI

4 Create FAI

9

Allocate Response(result)

Page 18: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  The component that decides how the resources in the IPC Process are allocated.   Dimensioning of the queues, creation/suspension/deletion of RMT queues,

creation/deletion of N-1 flows, and others

  Implementation:   Only the component that manages the creation/deletion of N-1 flows is

implemented.   Management is in charge of imposing the policies of when to create/delete N-1

flows; management being an external DMS (NMS), the OS where the IPC Process is executing or an autonomic management function in the IPC Process.

  Currently the number of N-1 flows to be created is a static policy specified in a configuration file depending on the tests being run.

Resource Allocation

Page 19: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  The RINA data transfer protocol (EFCP) is based on Watson’s Delta-T   Showed that the necessary and sufficient conditions for reliable synchronization

are to bind 3 timers: MPL, Maximum time to ACK and Maximum Time to Retransmit.   In other words, no 3-way handshake, such as in TCP, is required.

  EFCP has 2 parts: Data Transfer (DTP) and Data Transfer Control (DTCP), loosely coupled through a state vector   DTP performs the mechanisms that are tightly coupled to the transported SDU:

fragmentation, reassembly, sequencing, addressing, concatenation, separation.

  DTCP performs the mechanisms that are loosely coupled: transmission control, retransmission control and flow control.

  Implementation:   An initial version of DTP that performs sequencing and addressing has been

implemented. DTCP is in progress.

Data Transfer and Data Transfer Control

User data PCI

Partial, one or more SDUs from the layer abouve

Information required to perform data transfer

mechanisms tightly bound to the transported SDUs:

addressing, sequencing, …

DTP Protocol Data Unit (PDU) DTCP Protocol Data Unit (PDU)

PCI

Information required to perform data transfer mechanisms loosely bound to the transported SDUs: transmission control,

retransmission control, flow control

Page 20: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  The RMT multiplexes the PDUs coming from the N-flows originated at the IPC Process into one or more N-1 flows (in its multiplexing role) and forwards the incoming PDUs to another IPC Process through the adequate N-1 flow based on the PDU’s destination address (in its relaying role).

  Implementation:   A simple RMT has been implemented, serving N FIFO queues in the order that

the PDUs arrive at each different queue   Lots of room for experimentation with different scheduling algorithms

RMT Relaying and Multiplexing Task

© PSOC, All Rights Reserved, 2011"

Page 21: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

The Shim DIF

21

Public Internet Private IP layer

“Shim IPC Process”

“Shim IPC Process”

IPC Process

“Shim IPC Process”

IPC Process

IPC Process

“Shim IPC Process”

Shim DIF Shim DIF

DIF

Appl. Process

Appl. Process

UDP flow UDP flow TCP flow(s) TCP flow(s)

  The “shim IPC Process” for IP layers is not a “real IPC Process”. It just presents an IP layer as if it was a regular DIF.   Wraps the IP layer with the DIF interface.   Maps the names of the IPC Processes of the layer above to IP addresses in the

IP layer.   Creates TCP and/or UDP flows based on the QoS requested by an “allocate

request”.

Page 22: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Outline

  Quick introduction to RINA and PSOC

  RINA Adoption strategy and current prototype rationale

  Prototype components

  Implementation platform

  Next prototyping steps: FP7 IRATI 22

Page 23: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Implementation platform

  Implemented as part of the TINOS framework (a network protocol experimentation framework)   https://github.com/PouzinSociety/tinos

  Implemented in Java, using the OSGi technology (OSGi container provided by Eclipse Virgo)   OSGi is a component model that facilitates building modular Java

applications

  Developed on Mac OS X and Linux Debian, but should be multi-platform (support all the platforms that Eclipse Virgo supports)   Found some OS resource allocation issues with Mac OS X

  Not yet fully integrated with TINOS (once it is, it will be possible to instantiate several “systems” within a single Java process, using XMPP as the underlying “physical substrate”)

23

Page 24: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Java Virtual Machine

Why using TINOS instead of raw Java? To facilitate experimentation: bigger scenarios without adding more hardware

IP (Jnode)

Data Link Data Link Data Link

Shim DIF

Data Link Data Link

IP (Jnode)

Shim DIF

DIF

Java Virtual Machine

IP (Jnode)

Data Link Data Link Data Link

Shim DIF

Data Link Data Link

IP (Jnode)

Shim DIF

DIF

Java Virtual Machine

Data Link IP (OS stack) Shim DIF

Java Virtual Machine

Data Link

IP (JNode)

Shim DIF

DIF

XMPP network

LAN

  With TINOS multiple nodes can be created within the same Java JVM, with different network connectivity with each other and other JVMs (TINOS uses adapted IP stack from JNode and XMPP for this)

Page 25: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Outline

  Quick introduction to RINA and PSOC

  RINA Adoption strategy and current prototype rationale

  Prototype components

  Implementation platform

  Next prototyping steps: FP7 IRATI 25

Page 26: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

  What? Main goal   To advance the state of the art of RINA towards an architecture reference model and

specifications that are closer to enable implementations deployable in production scenarios. The design and implementation of a RINA prototype on top of Ethernet will enable the experimentation and evaluation of RINA in comparison to TCP/IP.

  Who? 4 partners

  How? Requested 870.000 € funding to the EC to perform 5 activities   WP1: Project management   WP2: Architecture, Use cases and Requirements   WP3: Software Design and Implementation   WP4: Deployment into OFELIA testbed, Experimentation and Validation   WP5: Dissemination, Standardisation and Exploitation

Project at a glance

Nextworks Interoute

i2CAT

IBBT

Page 27: Developing a RINA Prototype over IP using the TINOS frameworkrina.tssg.org/docs/CFI-2012-RINA_Prototype.pdfdifferent levels of QoS), flow control strategy, data transfer/data transfer

Thanks for your attention!

You can contact me at [email protected]

More information about RINA at http://rina.tssg.org, http://pouzinsociety.org, http://csr.bu.edu/rina

More information about the prototype at https://github.com/PouzinSociety/tinos/wiki/RINA-Prototype

More information about IRATI at http://irati.eu