RINA: Update on research and prototyping activities. Global Future Internet Week 2012
1. RINA: Update on Research and
Prototyping Activities
Global Future Internet Summit
September 14th
, 2012
Eduard Grasa
Research Manager @ DANA
Fundació i2CAT
2. Before we start… our perspective
What is the “Future Internet”?
We don’t know, we’re just interested in building better computer networks
and finding out the correct ways of doing so.
Is RINA “clean slate”?
We’re retaking the direction of computer network research in the mid-70s,
continuing where INWG left off, and learning from the success and mistakes
of 40+ years of computer networking. If we were starting with “no
assumptions” we would not be learning from the past (“Those who don’t know
history are destined to repeat it”)
What are the design goals of RINA?
No design goals, we just look at solving the problem of computer networking
and try to maximize the invariances and minimize the discontinuities. All the
results and insights have emerged from listening to the problem.
Do you have all the answers?
No way! We’re just beginning to explore the properties of a new paradigm*
that simplifies computer networking by orders of magnitude. Do you want to
join us?
2* Not so new to be honest, initial computer network research (CYCLADES, INWG) was headed in this
3. Outline
Quick Introduction to RINA
Java prototype over IP
Inter DIF Directory
RINA Security Assessment
FP7 IRATI Project: Kernel prototype over
Ethernet
3
5. 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 have be structured to
facilitate its use within the DIF
(i.e. an address).
5
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 21 2
DIF A
DIF B
DIF C
DIF D
DIF E DIF F
6. RINA vs. the current Internet
Architecture:
Current: 5/7? layers, layers “2.5”, layer violations, “overlays”, “virtual networks”,
“middleboxes” (NATs, firewalls, application-layer gateways) Getting complex!
Unforeseen interactions
RINA: Repeating structure, DIF (one type of layer, repeat as needed)
Naming, addressing and routing:
Current: No independent application names, no node names, just PoA names,
routing on PoAs (no wonder why multi-homing and mobility is hard to support)
RINA: Complete naming & addressing, routing on the node; support for multi-
homing and mobility without special protocols. No need for global address
space.
Congestion control:
Current: Put in TCP, the worst place it could be, since it maximizes the delay and
variance of the control loop (makes the system chaotic: self-similar traffic)
RINA: Each layer can perform congestion control, confining the effects of
congestion to that layer. The delay and variance of control loops can be
bound. 6
7. RINA vs. the current Internet
Scalability:
Current: Limited due to the fixed number of layers in the architecture
RINA: Recursion provides a divide and conquer approach, the way to scalability
Security:
Current: No systematic approach to security, secure each protocol or add boxes in
between to improve security (firewalls).
RINA: Strong design tells you where security functions go in the architecture (see
later in the presentation). DIFs are securable containers.
Quality of Service:
Current: Best effort is the dogma, “network neutrality”
RINA: Each DIF is free to provide the QoS classes it wants, using different policies for
resource allocation, routing and data transfer
Management:
Current: Complex, reflecting the complexity in the architecture and the high
number of protocols.
RINA: The commonality in the structure simplifies management by orders of
magnitude, 7
8. Outline
Quick Introduction to RINA
Java prototype over IP
Inter DIF Directory
RINA Security Assessment
FP7 IRATI Project: Kernel prototype over
Ethernet
8
9. 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.
9
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
10. 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!
10
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
11. 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) 11
http://pouzinsociety.org
Synonym of an
interface of a host
Port (Endpoint of TCP
connection)
:80
12. 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
12
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
13. 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
RIBRIB CDAP
Parser/Generator
CACEP Enrollment
Flow Allocation
Resource
Allocation
Forwarding Table
Generator
Authentication
StateVector
StateVectorStateVector
Data TransferData Transfer
Transmission
Control
Transmission
Control
Retransmission
Control
Retransmission
Control
Flow Control
Flow Control
13
IPC
Resource
Mgt.
Inter DIF
Directory
SDU
Protec
tion
Multipl
exing
IPC Mgt. Tasks
Other Mgt. Tasks
Application Specific
Tasks
Increasing timescale (functions performed less often) and complexity
14. The Shim DIF
14
Public Internet Private IP
network
“Shim IPC
Process”
“Shim IPC
Process”
IPC
Process
“Shim IPC
Process”
IPC
Process
IPC
Process
“Shim IPC
Process”
Shim DIFShim 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”.
15. 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”)
15
16. 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
Public
Internet
Data
Link
IP
(O
Sstack)
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)
17. Current status & some conclusions
Since all the layers have the same mechanisms with different policies,
implementation becomes much simpler than today’s protocol
suite(therefore more effort can be devoted to making it more robust and
efficient)
Also no need to distinguish between ‘physical’ or ‘virtual’ networking protocols: it’s all IPC.
Customization & innovation in networking becomes much easier
Just focus on the area you’re interested in and change the relevant policies for yours (NOTE:
Today “changing the policies” in the prototype means modifying the code, since
developing a pluggable policy framework is out of the scope of the initial prototype)
Interoperability with existing networking technologies is not an issue
Just wrap the XX layer as a shim DIF, and there you go 17
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
RIBRIB CDAP
Parser/Generator
CACE Enrollment
Flow Allocation
Resource
Allocation
Forwarding Table
Generator
AuthenticationStateVector
StateVectorStateVector
Data TransferData Transfer
Transmission
Control
Transmission
Control
Retransmission
Control
Retransmission
Control
Flow Control
Flow Control
18. Outline
Quick Introduction to RINA
Java prototype over IP
Inter DIF Directory
RINA Security Assessment
FP7 IRATI Project: Kernel prototype over
Ethernet
18
19. What’s a layer?
Although the term “layer” has been extensively used in
networking, the concept itself has not been clearly defined.
In its origin layers were adopted from its use in operating systems.
But in operating systems, using layers is a choice, whereas using
layers in networks is a necessity because of the distributed
shared state of different scopes
The necessary and sufficient condition for a layer is distributed
shared state of different scope.
Therefore we can describe a layer as the collection of
application processes that share state.
Physical
Data Link
Network
Transport
Application
Host or End System
Router
Less
Scope
More
Scope
19
20. Application discovery involves also layer
discovery
host H2
router R2 router R3
host H1
Layer 1
web server
application
B
web
browser
application
A
router R4
router R1
host H4
Layer 3
Layer 2
Layer 4
Layer 6
Layer 5
router R5
host H3
web server
application
C
20
21. The InterDIF Directory (IDD)
A distributed application, Distributed Application Facility (DAF) as
it’s called in RINA, which is a collection of two or more
cooperating application processes in one or more processing
systems, which exchange information using IPC and maintain
shared state
The IDD DAF maintains a distributed database that keeps
mappings of application names to list of supporting layers
The IDD is responsible for two main distinct functions:
a) Discovery of the application
b) Creation of the supporting DIF
21
22. A) Discovery of the application (I)
IDD-Request
Destination IDD Name, Source IDD Name, Requested Application
Process Name, Access Control Information, Quality of Service,
Termination Condition
Forwarding of the request between the peer IDDs until the
destination application is found or the pre-defined termination
condition is met
host H2
router R2 router R3
host H1
web server
application
B
web
browser
application
A
router R4
router R1
host H4
Layer 6
router R5
host H3
...
Layer 1
Layer 3
Layer 2
Layer 4Layer 5
IDD DAF
web server
application
C
22
23. A) Discovery of the application (II)
Confirmation that the requested application is executing in
the destination system and authorization check that the
requesting application has the rights to access it
host H2
router R2 router R3
host H1
web server
application
B
web
browser
application
A
router R4
router R1
host H4
Layer 6
router R5
host H3
...
Layer 1
Layer 3
Layer 2
Layer 4Layer 5
IDD DAF
web server
application
C
23
24. B) Creation of the supporting DIF
A DIF supporting the communication between the two user
applications has to be found
This either involves creating a new DIF from scratch or
expanding (joining) an existing one so that it spans from the
source to the destination system
host H2
router R2 router R3
host H1
web server
application
B
web
browser
application
A
router R4
router R1
host H4
Layer 6
router R5
host H3
...
Layer 1
Layer 3
Layer 2
Layer 4Layer 5
IDD DAF
web server
application
C
24
25. Current status
Ph.D. thesis ongoing
Defined the IDD Framework. Current research is focused in
application discovery; looking at different policies to perform
the IDD search, the replication of the directory information,
and compare them in terms of:
Time to discover the requested application
Average number of messages generated on the IDD DAF per search
Average number of hops needed to locate the destination application
Time to distribute directory updates, and average number of messages
generated by directory update
Java simulator of the IDD is being implemented. After results
have been tested in the simulator, the IDD framework and
some selected policies will be ported to the prototypes
25
26. Outline
Quick Introduction to RINA
Java prototype over IP
Inter DIF Directory
RINA Security Assessment
FP7 IRATI Project: Kernel prototype over
Ethernet
26
27. Benefits of having an architecture instead of a protocol suite: the
architecture tells you where security related functions are placed.
Instead of thinking protocol security, think security of the architecture: no
more ‘each protocol has its own security’, ‘add another protocol for
security’ or ‘add another box that does security’
Allocating a flow to
destination application
Access control
Sending/receiving PDUs
through N-1 DIF
Confidentiality, integrity
Placement of security related functions
27
N DIF
N-1 DIF
IPC
Process
IPC
Process
IPC
Process
IPC
Process Joining a DIF
authentication,
access control
Sending/receiving PDUs
through N-1 DIF
Confidentiality, integrity
Allocating a flow to
destination application
Access control
IPC
Process
Appl.
Process
Access control
(DIF members)
Confidentiality, integrity
Authentication
Access control
(Flow allocations to apps)
DIF Operation
Logging
DIF Operation
Logging
28. DIFs are securable containers
Master thesis on RINA security assessment (results to be
published)
Possible attacks to a DIF
Information required to perform these attacks
Mitigation measures against these attacks
Comparison to the current Internet
Concludes that DIFs are securable containers if proper
standard security tools are used (authentication, access
control, confidentiality, integrity and strong auditing)
Securable = A structure used to hold or transport something that can be
made to be not subject to threat
Again, with a proper structure in place, achieving better
security in networks is much simpler and cost-effective than
in the current situation
28
29. Outline
Quick Introduction to RINA
Java prototype over IP
Inter DIF Directory
RINA Security Assessment
FP7 IRATI Project: Kernel prototype over
Ethernet
29
30. 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
31. Thanks for your attention!
You can contact me at
eduard.grasa@i2cat.net
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
Hinweis der Redaktion
Application name spaces are not tied to any layer or DIF. Recognizing that they may all be members of other DIFs.
An API overlay to isolate applications and develop a DIF, then just push the use of the architecture down further and further up.
Remember, this is the architecture! DAF Support Tasks: The IPC Management (and other management: memory, storage, CPU) tasks are usually implemented as OS functionality. IPC Resource Management: Creation/Deletion of IPC processes Multiplexing (Usually inverse multiplexing, an application flow into multiple DIF flows, for example: 1 for video, 1 for audio, 1 for text, …) SDU Protection (CRCs, encryption, TTL, …) IDD (Inter DIF Directory, find out in what DIF the destination application process is executing)
Stress that with our scientific approach we are trying maximize the invariances, and minimize how much policy is necessary, as opposed to the craft tradition being pursued by others to minimize invariance.
Mention Dijkstra was right, but don’t repeat functions on the same scope.
A simple case that illustrates the problem under research is given in Fig. 1. In the scenario shown the web browser (application A) residing in host H3 requests to communicate with the web page (application C) on host H1. What discovering the requested application does require is finding which layers make it available, and then choosing an existing layer to join or creating a new one to enable the communication.
Each processing system has an instance of the IDD, an application process that enables the system to make available its applications and discover other applications. The application processes that are members of the same DAF are called “peer IDDs” are able to exchange messages for the discovery of applications. As every other DAF the IDD is supported by one DIF or a collection (set) of underlying DIFs that provide to the distributed application IPC services. Communication in RINA implies that the two systems that the communicating applications are residing share a DIF which provides IPC service. When an application wants to communi- cate with another application, first all the DIFs available to the source system are examined to see if the requested application is available through them. If none of the available DIFs returns a positive result, the IDD is responsible to first find the requested application and then attempt to create a supporting DIF between the two systems for the communication. The DAPs that comprise the IDD will forward a request from one to another asking for the requested application. Forwarding begins at the IDD DAP of the source system and will be based on the forwarding policies between the members of the DAF. The forwarding continues until the IDD DAP of the system in which the requested application resides is found or when some other predefined termination condition is met to prevent infinite searching.
In the case that the destination system is reached, the IDD will have first to verify that the requested application is still there and then that the requesting application is allowed to communicate with it. If both checks are positive, the next action for the IDD is to find a DIF that will support the communication between the two applications.
Since a common DIF between the source and the destination systems does not exist, a new one will have to be created by either expanding (joining) an existing DIF or creating a new one from scratch. The creation of the supporting DIF involves choosing a path from the source to the destination and coordination with the intermediate IDD DAPs for authorization control and creation and initialization of the new IPC application processes. Once the supporting DIF is in place, communication between the two applications can start.
Might cite the results of Gotham’s paper that analyzing the attacks that can be mounted on TCP don’t work on delta-t even though delta-t was designed decades before the attacks were known. The same is true of the IPC Model. No consideration given to security. However the model is more secure. Strong design has more to do with security than security does.