1. Kristjon Ciko, Michael Welzl, Marcel Marek
University of Oslo, Norway
7th International Workshop on the Recursive InterNetwork Architecture
Paris, 24 February 2020
TAPS and RINA
Do they fit together?
2. Kristjon Ciko
Department of Informatics
University of Oslo
24 February 2020
TAPS and RINA
Do they fit together?
3. 1
RINA transport features
TAPS and RINA
The paper analyses RINA as a transport layer and
investigates the possibility to enable RINA within TAPS
Background
5. 2
RINA can provide simpler, more secure and powerful tools
than the TCP/IP architecture for building future networks
Benefits of RINA:
✦ Security
✦ Multi-homing
✦ Mobility
✦ Quality of Services (QoS)
6. 3
However, gradually deploying RINA in the current Internet
requires challenging approaches
✦ RINA is a novel network architecture developed from scratch
✦ It is drastically different from the current Internet
✦ The Internet’s nature does not easily allow architectural
diversity
7. 4
TAPS is a new transport API that has been addressing the
challenge of deploying new protocols
✦ It exposes a set of transport services (provided by several
transport protocols) to the applications
✦ Protocol-independent, asynchronous and message-based
✦ It provides ”racing” and fall-back mechanisms
✦ Implemented in latest versions of Apple’s Network.framework
8. 5
TAPS is a new transport API that has been addressing the
challenge of deploying new protocols
9. 6
In this paper, we investigate the possibility to adopt RINA
below the TAPS API
11. 7
In RINA, each IPC process is a container that provides
security, management, transport and routing
[ M. Tarzan, L. Bergesio, E. Grasa. "Error and Flow Control Protocol design and implementation: a data transfer
protocol for the Recursive Internetwork Architecture". February 2019. ]
12. 8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
13. 8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
✦ Connection-related functions
o Authentication
o Allocate / Deallocate flow
o Modify flow
Flow Allocator
+
CACEP
14. 8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
✦ Connection-related functions
✦ Delimiting functions
o Fragmentation / Reassembly
o Concatenation / Separation
SDU Delimiting
15. 8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
✦ Connection-related functions
✦ Delimiting functions
✦ Integrity functions
o Encryption
o Compression
o Error detection & correction
o Time To Live
SDU Protection
16. 8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
✦ Connection-related functions
✦ Delimiting functions
✦ Integrity functions
✦ Data transfer functions
o Send / Receive
o Sequencing
o Retransmission control
o Flow control
o Congestion control
EFCP (DTP + DTCP)
17. 9
Feature overview of RINA and currently available
transport protocols
[ Adapted from M. Welzl, S. Jorer and S. Gjessing, "Towards a Protocol-Independent Internet Transport API," 2011
IEEE International Conference on Communications Workshops (ICC), Kyoto, 2011, pp. 1-6. ]
Connection
oriented
Flow
ctrl.
Congestion
ctrl.
App.PDU
bundling
Error
detection
Reliability Delivery
type
Delivery
order
Multi-
streaming
Multi-
homing
TCP x x x 0/1 x t s o
UDP x m u
UDP-Lite x/p1 m u
DCCP x x 2/3/4 x/p1 m u
SCTP x x x 0/1 x t/p2 m o/u 0/1 0/1
RINA x x 0/1 0/1 x t/p2 s/m o/u x x
x – the service is always provided; 0/1 – the service can be turned on or off;
2/3/4 – there is a choice between CCIDs; p1 – partial error detection;
t – total reliability; p2 – partial reliability;
s – stream; m – message;
o – ordered; u – unordered;
19. 10
Mappings between TAPS Minimal Set of Services* and
RINA transport features
✦ “Yes” – Transport features clearly map between TAPS
and RINA
✦ “Maybe” – Possible mappings (require some specific
implementation effort)
✦ “?” – Unclear mappings
✦ “No” – Impossible mappings
* TAPS MinSet – the Minimal Set of transport features that require
“application-specific” knowledge and can fallback to TCP or UDP
20. 11
TAPS Minimal Set of Services ó RINA
Hand over a message to reliably transfer
before connection establishment
? Currently being discussed (“A UNIT DATA” in
an internal specification document).
Specify DSCP field ? The mapping of RINA’s QoS Cubes to DSCP
values is unclear, but should be achievable.
Enable and configure a “Low Extra Delay
Background Transfer”
? The mapping of RINA’s QoS Cubes to such a
service is unclear, but should be achievable.
Notification of ICMP error message
arrival
? CDAP provides somewhat similar
functionality, but mapping to ICMP is
unclear.
? – Unclear mappings
21. TAPS Minimal Set of Services ó RINA
Get max. message size that can be sent
without fragmentation
x Control over fragmentation is not exposed in RINA.
Close after reliably delivering all data,
informing the peer application
x Only Deallocate flow is available, but it does not ensure
delivery of remaining data.
Information about partial message
arrival
x If partial delivery is enabled on the connection then
message can be read in parts. However, the application is
not informed if a particular message is partial or complete.
Obtain ECN field x Checked by the DTCP TransmissionControl policy, and not
exposed to applications.
Notification that the stack has no more
user data to transfer
x Not available in the API.
Disable parallel use of multiple paths x Not available in the API.
Choose a scheduler to operate between
streams of an association
x Not available in the API.
Congestion control on/off for reliable
data transfer
x Not available in the API.
Suggest timeout to the peer x Not available in the API.
x – Impossible mappings
12
22. 13
1. Notification that the stack has no
more user data to transfer
2. Get max. message size that can be
sent without fragmentation
Questions?
In conclusion, we recommend two changes to the RINA API
for a better integration of RINA into TAPS