rina motivation, introduction and irati goals. ieee ants 2012
DESCRIPTION
TRANSCRIPT
Research topics on theRecursive InterNetwork Architecture
Dimitri [email protected] Vrijders [email protected] Based Communication Networks and Services (IBCN)Department of Information Technology (INTEC)Ghent University - iMinds
09/04/2023 1
The EU Project IRATI
IEEE ANTS 2012, Dec. 16-19, Bangalore
209/04/2023
Patterns in Network Architectures
All credits for this talk go to John Day
Presentation index
Background, concepts and problems Back to basics: What is networking? Introducing RINA Research: the IRATI project (2013-2015)
09/04/2023 3
09/04/2023 4
The current architecture
ARPANET / CYCLADES First effort Architectural flaws (as we will see later)
09/04/2023 5
What is a Network Layer?
PHYSICAL
DATALINK
NETWORK
TRANSPORT
SESSION
PRESENTATION
APPLICATION
“A layer is a collection of subsystems of the same rank”“Subsystems are the intersection of a system and a layer”
OSI reference model ISO 7498-1
09/04/2023 6
A layer disappeared
Internetwork layer
Network layer
Datalink layer
Transport layer
Network layer
Physical layer
Datalink layer
INWG 96 (1972-76) (Int’l Packet Network WG)
709/04/2023
The current architecture
Modularity Function per layer Not an internetwork
09/04/2023 8
One problem with the current TCP/IP split Retransmission: TCP Fragmentation: IP If a packet gets fragmented in a router
Chances are a fragment gets lost towards the next hop IP needs to reassemble the fragments in the next hop
and waits for 1 MPL (5 seconds) BUT TCP times out in the order of RTT-> retransmit IP fragments the packet, chances are a fragment gets
lost Now the next hop has 2 incomplete IP packets!
TCP and IP should be aware of each other
909/04/2023
Multihoming and mobility
Failure Load balancing Complexity
09/04/2023 10
Why is multihoming complex?
09/04/2023 11
Protocol
Mechanism Policy Mechanism: static, does not change
attaching CRC / checking CRC with PCI ACK
Policy: occurs in pairs (sending / receiving) When to attach CRC / polynomial function
Sending policy attaches the CRC in header Receiving policy computes CRC on packet
When to send ACK, how long to wait for ACK
Tightly coupled Loosely coupled Tight
No feedback mechanisms Typically associated with (SDU) data transfer Policy set by sender
Loose Feedback mechanisms No data transfer Policy set by receiver
09/04/2023 12
Relations between (protocol) state machines Association
No shared state ~UDP
Flow Some shared state, but no Feedback Request – response (2-way handshake)
Connection Shared state, feedback (3-way handshake) ~TCP
Binding Very tightly coupled shared state ~shared memory
09/04/2023 13
Data Transfer Mechanisms
Delimiting: indicate start/end of PDU External: flag sequence (e.g. Ethernet) Internal: “length” field (e.g. IP)
Initial state synchronization Association: Local binding of client/server protocol
machine Flow:+ request/response (two-way handshake) Connection: +3-way handshake Timer based (delta-t, Watson 1981)
MPL, Retransmission, ACK time
09/04/2023 14
Delta-t (Richard Watson, 1980)
Developed at L.Livermore labs, unique approach. Assumes all connections exist all the time. keep caches of state on ones with recent activity
Watson proves that the conditions for distributed synchronization are met if and only if 3 timers are bounded: Maximum Packet Lifetime (Infinite -> Remote storage) Maximum number of Retries Maximum time before Ack
That no explicit state synchronization, i.e. hard state, is necessary. SYNs, FINs are unnecessary IOW, all properly designed data transfer protocols are soft-state.
1981:Watson shows that TCP has all three timers and more.
09/04/2023 15
Data Transfer Mechanisms (2)
Policy selection Addressing
Identify source / destination of the PDUs
Flow or Connection ID (if multiple associations between two hosts)
Relaying and Multiplexing Next hop Different flows on same interface
Ordering
09/04/2023 16
Data Transfer Mechanisms (3)
Fragmentation/Reassembly Large SDU in smaller PDU’s
Combining/Separation Small SDUs into larger PDU’s
Data Corruption (CRC/FEC) Lost/Duplicate detection Flow control (i.e. don’t swamp receiver) Retransmission Control (Acks) Compression Authentication
09/04/2023 17
Data Transfer Mechanisms (4)
Access-control Prevent unauthorized use of a resource
Integrity (encryption) Prevent unauthorized insertion/deletion of PDU’s
Confidentiality (encryption) Nonrepudiation (no denial of having participated) Activity (Keepalive)
09/04/2023 18
Phases of Operation
Enrollment Creates, maintains distributes and deletes the
information required to create instances of communication
IP: Manual configuration or DHCP
Establishment of synchronization Creates, maintains distributes and deletes the
information required to support the functions of data transfer
Data Transfer Phase Actual transfer of data.
09/04/2023 19
Naming and Addressing (Shoch 1978, Saltzer 1982, RFC1493) Names – what? – Location Independent Adresses – where? – Location Dependent Routes – how to get there? - Route Dependent Saltzer: Four things need to be named
Services and users (Applications) Location independent naming
Nodes Points of Attachment Routes (set of nodes)
09/04/2023 20
Naming and Addressing (2)
Bindings between these names A service may run at one or more than one nodes and
may need to move between nodes without losing its identity (application roaming)
A given node may be connected to one or more network attachment points (multihoming) and may need to move from one attachment point to another without losing its identity as a node (mobility)
A given pair of attachment points may be connected by one or more paths, and those paths may need to change with time without affecting the identity of the attachment points. (resiliency)
09/04/2023 21
Saltzer’s Network View
Application names map to Node Addresses Node Addresses map to PoA addresses Routes are sequences of PoA Addresses
09/04/2023 22
But Saltzer missed a case
There can be more than one path to the next hop Must route on the Node addresses, not the point of
attachments COMPLETE ADDRESSING SCHEME
Route
Directory
Path
09/04/2023 23
Apply this to the `net Most of the addressing architecture is missing!
No Node, Application names DNs are Synonyms for IP addresses
The PoA is named twice! URL’s are pathnames and location dependent
Presentation index
Background and concepts Back to basics: What is networking? Introducing RINA Research
09/04/2023 25
What is networking?
Single system: Interprocess communication (IPC)
09/04/2023 26
IPC Facility
Application Process
Application Protocol Machines
Port IDs
09/04/2023 27
Steps1. The APM from A invokes an Allocate
request specifying B: allocate(B, my-port, properties)
2. IPC Facility assigns a port ID, if request is well formed and it has enough resources to handle the request
3. IPC uses ‘search rules’ to find B. IPC will check if A is allowed to have access to B. (B may be instantiated)
4. B is notified of request and assigned port-id b
5. If B responds positively , IPC notifies A.6. A may send PDUs to B by calling
send(a,buf), B receives by using receive(b, rcv_buffer)
7. Afterwards they de-allocate their resources.
IPC Facility
AP
APMs
Port IDs
Communication between two systems
09/04/2023 28
Driver Driver
Application Process
Application Protocol Machines
IPC Facility
BIGGER NAMESPACE!application name has to be unambiguous on both systems
Communication between two systems
09/04/2023 29
Driver Driver
IAP IAP
Application Process
Application Protocol Machines
Port IDs
09/04/2023 30
IPC Access Protocol (IAP)
Simple Request/Response Protocol IAP-Req(Dest-Appl-name, Src-Appl-name, QoS
params, Src-Capability) IAP-Resp(Dest-Appl-name, Src-Appl-name, QoS
params, result)
How do we know when to use it? If the application isn’t here, it must be there!
But we have a problem. How do we get it there? We need a protocol for sending the data We need Error and Flow control
09/04/2023 31
EFCP
Bad things can happen to messages in transit. Protection against lost or corrupted messages
Receiver must be able to tell sender, it is going too fast. Flow Control
We have lost our means of synchronization: No common test and set means shared memory can
no longer be used Must create shared state between two systems. An
explicit synchronization mechanism is required.
We need an Error and Flow Control protocol
Communication between two systems
09/04/2023 32
Driver Driver
IPC Mgt
IAP
EFCP
IPC Mgt
IAP
EFCP
Application Process
Application Protocol Machines
Port IDs
EFCP EFCPEFCP EFCP
09/04/2023 33
Three new concepts
An Application Name Space that spans both systems. (not really new) Should be location-independent in general so that applications can move.
A Protocol to carry Application Names and access control info Applications need to know with whom they are talking IPC must know what Application is being requested to be able to find it.
For now, if the requested Application isn’t local, it must in the other system.
A Protocol that provides the IPC Mechanism and does Error and Flow Control. To maintain shared state about the communication, i.e. synchronization To detect errors and ensure order To provide flow control
Resource allocation can be handled for now by either end refusing service.
09/04/2023 34
Multiple Instances of IPC
New Concept: a multiplexing application to manage the single resource, the physical media. need to be fast, its functionality should be minimized,
i.e. just the scheduling of messages to send.
To provide QoS, we use the EFCP and scheduling by the Mux.
To do resource allocation, we will just let the other side refuse if it can’t satisfy the request.
Application naming gets a bit more complicated than just multiple application-names. Must allow multiple instances of the same process
Communication with N systems
09/04/2023 35
Communication with N systems
09/04/2023 36
IPC Mgt
IAPDir
RIEP
MuxMuxMux
Driver DriverDriver
EFCP
Communication with N systems
Relaying function is necessary
09/04/2023 37
Resulting structure:recurring functions of different scope
09/04/2023 38
Mux
EFCP
EFCP EFCPEFCP EFCP EFCP
Mux
EFCP
EFCP
User applications
Relaying app
Presentation index
Shortcomings of the current architecture. Back to basics: What is networking? Introducing RINA Research
09/04/2023 39
09/04/2023 40
EFCP: Error and Flow Control Protocol
DTP Fragmentation Reassembly Sequencing Concatenation Separation
DTCP Transmission control Retransmission control Flow control
Loosely coupled by a state vector Based on Delta-t
09/04/2023 41
What’s inside an IPC process
09/04/2023 42
Number of layers
At least two layers required for networking Upper bound?
Internetworking, VPN, P2P, virtualization…
Security Smaller Scopes Private networks become the norm
Presentation index
Shortcomings of the current architecture. Back to basics: What is networking? Introducing RINA Research: the IRATI project (2013-2015)
09/04/2023 44
09/04/2023 45
Future Research
Since 2008 Draft RINA model and core spec. by Pouzin society Software implementation (DIF over IP)
IRATI 2013-2015 will Research and implement RINA prototypes for the
kernel of a UNIX-like Operating System and JunOS, through the usage of the JunOS SDK.
Develop policies adequate to comply with the IRATI use cases, focused around the dynamic creation of DIFs in order to support cloud services across multiple datacentres.
09/04/2023 46
DIF over Ethernet Currently DIFs over IP
wrap the IP layer with the IPC Process Interface map the names of IPC Processes of the layer above to IP addresses in the
IP layer and create TCP and/or UDP flows based on the QoS requested by the upper
layer application proces
09/04/2023 47
Resources
John Day “Patterns in Network Architecture” http://www.pouzinsociety.org/ http://www.irati.eu RINA workshop 21-24 Jan 2012, BCN, ES
Questions ?Sander Vrijders [email protected] Staessensdimitri.staessens@intec.ugent.bewww.ibcn.intec.ugent.beInternet Based Communication Networks and Services (IBCN)Department of Information Technology (INTEC)Ghent University - iMinds
09/04/2023 48