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?
Kristjon Ciko
Department of Informatics
University of Oslo
24 February 2020
TAPS and RINA
Do they fit together?
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
Background & motivation
RINA transport features
TAPS and RINA
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)
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
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
5
TAPS is a new transport API that has been addressing the
challenge of deploying new protocols
6
In this paper, we investigate the possibility to adopt RINA
below the TAPS API
Background & motivation
RINA transport features
TAPS and RINA
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. ]
8
RINA’s transport features are offered by its data transfer
protocol (EFCP) in cooperation with other modules
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
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
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
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)
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;
Background & motivation
RINA transport features
TAPS and RINA
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
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
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
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

Rina2020 taps rina-ocarina (1)

  • 1.
    Kristjon Ciko, MichaelWelzl, 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 ofInformatics University of Oslo 24 February 2020 TAPS and RINA Do they fit together?
  • 3.
    1 RINA transport features TAPSand RINA The paper analyses RINA as a transport layer and investigates the possibility to enable RINA within TAPS Background
  • 4.
    Background & motivation RINAtransport features TAPS and RINA
  • 5.
    2 RINA can providesimpler, 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 deployingRINA 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 anew 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 anew 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
  • 10.
    Background & motivation RINAtransport features TAPS and RINA
  • 11.
    7 In RINA, eachIPC 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 featuresare offered by its data transfer protocol (EFCP) in cooperation with other modules
  • 13.
    8 RINA’s transport featuresare 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 featuresare 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 featuresare 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 featuresare 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 ofRINA 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;
  • 18.
    Background & motivation RINAtransport features TAPS and RINA
  • 19.
    10 Mappings between TAPSMinimal 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 Setof 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 Setof 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 thatthe 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