Network Working Group H. Asai
Internet-Draft Preferred Networks / WIDE Project
Intended status: Standards Track 22 February 2021
Expires: 26 August 2021
Separation of Data Path and Data Flow Sublayers in the Transport Layer
draft-asai-tsvwg-transport-review-01
Abstract
This document reviews the architectural design of the transport
layer. In particular, this document separates the transport layer
into two sublayers; the data path and the data flow layers. The data
path layer provides functionality on the data path, such as
connection handling, path quality and trajectory monitoring, waypoint
management, and congestion control. The data flow layer provides
additional functionality upon the data path layer, such as flow
control for the receive buffer management, retransmission for
reliable data delivery, and transport layer security. The data path
layer multiplexes multiple data flow layer protocols and provides
data path information to the data flow layer to control data
transmissions, such as prioritization and inverse multiplexing for
multipath protocols.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 26 August 2021.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Asai Expires 26 August 2021 [Page 1]
Internet-Draft Data Path and Data Flow Layers February 2021
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Transport Layer Functionality Review . . . . . . . . . . . . 3
2.1. Conventional Layering . . . . . . . . . . . . . . . . . . 3
2.2. Data Path-aware Networking . . . . . . . . . . . . . . . 4
2.3. Resource Management: Flow Control and Congestion
Control . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Communication Models and Transport Layer Protocols . . . 6
2.5. Multipath Protocols . . . . . . . . . . . . . . . . . . . 7
2.6. Reliable Data Communication . . . . . . . . . . . . . . . 7
2.7. Security . . . . . . . . . . . . . . . . . . . . . . . . 8
2.8. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Specifications of Data Path Layer and Data Flow Layer . . . . 9
3.1. Data Path Layer . . . . . . . . . . . . . . . . . . . . . 9
3.1.1. In-band trajectory monitoring . . . . . . . . . . . . 9
3.1.2. Waypoint management . . . . . . . . . . . . . . . . . 10
3.1.3. Bidirectional connection establishment . . . . . . . 11
3.1.4. Data path quality (congestion) monitoring and
congestion control . . . . . . . . . . . . . . . . . 11
3.1.5. Data flow multiplexing . . . . . . . . . . . . . . . 11
3.1.6. Packet duplication . . . . . . . . . . . . . . . . . 12
3.1.7. Data path security . . . . . . . . . . . . . . . . . 12
3.2. Data Flow Layer . . . . . . . . . . . . . . . . . . . . . 12
3.2.1. Retransmission for reliable data communication . . . 12
3.2.2. Flow control for receive-buffer management . . . . . 13
3.2.3. Flow prioritization . . . . . . . . . . . . . . . . . 13
3.2.4. Data flow and end-to-end security . . . . . . . . . . 13
3.2.5. Inverse multiplexing for multipath protocols . . . . 13
4. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1. Multipath Transport Protocols . . . . . . . . . . . . . . 14
4.2. Congestion Control Acceleration . . . . . . . . . . . . . 15
4.3. In-Network Computing . . . . . . . . . . . . . . . . . . 16
4.4. Flow Arbitration . . . . . . . . . . . . . . . . . . . . 17
5. Implementation Considerations . . . . . . . . . . . . . . . . 18
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
7. Security Considerations . . . . . . . . . . . . . . . . . . . 18
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
Asai Expires 26 August 2021 [Page 2]
Internet-Draft Data Path and Data Flow Layers February 2021
9.1. Normative References . . . . . . . . . . . . . . . . . . 19
9.2. Informative References . . . . . . . . . . . . . . . . . 21
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction
This document specifies two sublayers of the transport layer; the
data path and the data flow layers. In this document, the transport
layer's data path functionality, such as bidirectional connection
handling, waypoint management, and congestion control, is separated
from the data flow functionality, such as flow control for the
receive buffer management, retransmission for reliable data delivery,
and transport layer security. This document reviews the transport
layer's functionality from the viewpoint of data paths and data flows
in Section 2. It then specifies the data path layer and the data
flow layer in Section 3. The data path and data flow layers provide
the data path and the data flow functionality, respectively.
This document reviews the transport layer to clarify the transport
layer's functionality and to invent data flow layer protocols for
advanced Internet technologies, such as middleboxes and in-network
computing. Hence, this document does not intend to obsolete the
transport layer or violate the current Internet architecture.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. Transport Layer Functionality Review
This section reviews the conventional layering and transport layer
functionality. It then summarizes the transport layer functionality
by distinguishing data paths and data flows.
2.1. Conventional Layering
RFC 1122 [RFC1122] defines three communication layers, link layer,
Internet layer, transport layer, and the interfaces between these
layers. Link-layer protocols provide hop-by-hop data communications.
Internet layer protocols such as the Internet Protocol (IP), the
Internet Control Message Protocol (ICMP), and the Internet Group
Management Protocol (IGMP) provide fragmentation, hop-by-hop datagram
forwarding, and end-to-end datagram delivery. RFC 1123 [RFC1123]
defines the interface between the application layer and the transport
layer.
Asai Expires 26 August 2021 [Page 3]
Internet-Draft Data Path and Data Flow Layers February 2021
The Internet design follows the end-to-end principle to keep the
simplicity of the Internet layer. Thus, the main functionality of
the Internet layer is to provide end-to-end reachability. It does
not guarantee datagram integrity, which means that packet loss,
duplication, corruption, or reordering may occur. Over the Internet
layer, the transport layer implements such functionality to provide
datagram integrity on the end-hosts to achieve end-to-end
communications.
+-------------------+ +-------------------+
| Application layer |<------------------------->| Application layer |
+-------------------+ +-------------------+
| Transport layer |<------------------------->| Transport layer |
+-------------------+ +-------------------+ +-------------------+
| Internet layer |<->| Internet layer |<->| Internet layer |
+-------------------+ +-------------------+ +-------------------+
| Link layer |<->| Link layer |<->| Link layer |
+-------------------+ +-------------------+ +-------------------+
End-host Router End-host
Figure 1: Conventional layering of Internet architecture
The transport layer provides various functions over the IP. User
Datagram Protocol (UDP) [RFC0768] and Transmission Control Protocol
(TCP) [RFC0793] are the most commonly used transport layer protocols.
UDP is a connectionless transport protocol with a minimum header.
TCP implements flow control according to the receiver's buffer
capacity, retransmission for reliable communication, congestion
control by a packet delivery status such as packet loss and delay.
The transport layer may implement an end-to-end security function,
Transport Layer Security (TLS) [RFC8446].
Figure 1 illustrates the conventional layering of Internet
architecture. A router forwards an IP datagram to a next-hop router
corresponding to the destination address. In this way, the Internet
layer protocol, IP, provides end-to-end reachability through hop-by-
hop routing. The transport layer provides additional functions for
end-to-end communications.
2.2. Data Path-aware Networking
As described above, the Internet layer's main functionality has been
end-to-end reachability with hop-by-hop packet forwarding based on
destination IP address. Therefore, it is unaware of data paths,
i.e., trajectories of packets. Best-effort communications over
``dumb'' networks without the quality of service (QoS) have been the
Internet principle [RFC2768]. This end-to-end principle of the
Internet has achieved a scalable architecture. However, computer
Asai Expires 26 August 2021 [Page 4]
Internet-Draft Data Path and Data Flow Layers February 2021
networks' advancement introduced QoS and middleboxes to achieve high-
quality data communication and optimize communication over
distributed and heterogeneous computer networks. These technologies
require to be aware of data paths associated with data flows.
The Internet layer has been extended to support QoS. Differentiated
Services, DiffServ [RFC2474], is one of the technologies to implement
QoS. It enables autonomous and scalable service discrimination using
an IP header field, differentiated services codepoint (DSCP), to
implement QoS for a data path. Segment Routing [RFC8402] enables
data path configuration for individual flows by leveraging the source
routing paradigm. Thus, Segment Routing is another technology to
treat QoS.
Middleboxes are more complex than QoS. They add various functions
such as firewalls, TCP offloading, transcoding, and content caches to
a data path. These functions require to be aware of waypoints to be
activated. Routing technologies with packet classification using the
IP and the transport protocol headers have collectively been
leveraged to route traffic through the middleboxes as the IP layer is
not aware of data paths. If a middlebox is transparent to end-hosts,
it should be installed at the network gateway or redirected by
policy-based routing or segment routing to activate the function.
Otherwise, an end-host should specify the middlebox as a target end-
host. In addition to these middleboxes, distributed computing
technologies, such as in-network computing and multi-access edge
computing (MEC), also require to be aware of data paths.
In summary, advanced computer networks require to treat data paths
for QoS, middleboxes, and distributed computing. Packet
classification for data path treatment may use the header information
of transport layer protocols such as port numbers as well as IP
header fields.
2.3. Resource Management: Flow Control and Congestion Control
As the Internet layer does not provide resource management
functionality, transport layer protocols may implement it, such as
flow control and congestion control. Both flow control and
congestion control mechanisms control packet transmission for
resource management. However, the target resource is different.
They control packet transmission according to the receiver's buffer
capacity and the network bandwidth capacity, respectively.
For example, in TCP's flow control, a receiver announces the
remaining receive buffer size as the window size. Hence, flow
control is not aware of network bandwidth capacity. On the other
hand, congestion control is performed based on data communication
Asai Expires 26 August 2021 [Page 5]
Internet-Draft Data Path and Data Flow Layers February 2021
quality information, such as packet loss and delay. The underlying
Internet layer may provide congestion information by the Explicit
Congestion Notification (ECN) [RFC3168]. In this manner, transport
layer protocols control congestion depending on the data path's
network resources. Therefore, congestion control is associated with
a data path, while flow control is associated with the end-hosts.
As discussed above, congestion control should be performed on the
associated data path. However, in current transport layer protocols
such as TCP, Datagram Congestion Control Protocol (DCCP) [RFC4340],
and Stream Control Transmission Protocol (SCTP) [RFC4960], an
individual flow independently performs congestion control even if the
same data path multiplexes multiple flows. Therefore, multiple flows
cannot collectively perform congestion control for the data path.
For example, when a data path multiplexes a TCP and a UDP flows, the
TCP flow's congestion control may affect the other UDP flow's
quality. Moreover, transport layer protocols utilize network
resources on a fair basis. Thus, flow prioritization cannot be
implemented at the transport layer, although a QoS technology such as
DiffServ may be leveraged.
2.4. Communication Models and Transport Layer Protocols
This subsection summarizes four communication models between end-
hosts at the Internet layer; unicast, anycast [RFC7094], broadcast
[RFC0919], and multicast [RFC1112], and then discusses transport
layer protocols for these communication models.
Unicast is the most fundamental communication model that performs a
data communication between two end-hosts. Most transport layer
protocols, such as UDP [RFC0768] and TCP [RFC0793], are designed for
unicast. Unicast may be unidirectional, but some transport layer
protocols only support a bidirectional data communication.
Anycast is a special communication model extended from unicast.
Therefore, the same transport layer protocols as unicast are often
used. Anycast performs a one-to-one data communication, but a
destination end-host is not uniquely identified by its IP address
because multiple end-hosts share an identical IP address. Instead, a
destination end-host is determined by IP routing in anycast. Thus,
anycast needs to take into account data path changes for stateful
connections as the destination end-host may change by IP routing
during a long-lived transaction [RFC4786].
Broadcast and multicast are a communication model that one end-host
sends a packet to multiple end-hosts. A difference between broadcast
and multicast is that multicast is to deliver a packet to multiple
end-hosts that join a specific multicast group while broadcast
Asai Expires 26 August 2021 [Page 6]
Internet-Draft Data Path and Data Flow Layers February 2021
delivers packets to all end-hosts within a specified hop count. In
other words, multicast is referred to as a group data communication.
In multicast, IGMP and Protocol Independent Multicast (PIM) (e.g.,
PIM-DM [RFC3973] and PIM-SM [RFC7761]) are used to build data paths
(i.e., multicast tree) from a source end-host to destination end-
hosts for a group. Therefore, data paths are controlled by the
Internet layer. Reliable transport protocols may be used in the
control plane [RFC6559]. Over the data paths, stateless and non-
reliable transport layer protocols such as UDP are usually used. For
TCP-friendly multicast, [RFC4654] defines a congestion control
protocol for multicast. To achieve reliable multicast, Multicast
Transport Protocol (MTP) [RFC1301] defines a transport layer protocol
with flow control, QoS and error recovery for multicast. However, it
has been pointed out that MTP has a potential scalability issue for
flow handling [RFC1458].
In these four communication models, IP routing provides end-to-end
reachability and determines data paths. Transport layer protocols
are not basically aware of data paths, although operational
considerations exist in anycast for uncertainty of data paths
[RFC4786]. As pointed out in [RFC1458], data flow management
requires more resources compared to data path functionality such as
congestion control. It implies that it is more significant in one-
to-many communication in multicast cases than unicast cases discussed
in Section 2.3.
2.5. Multipath Protocols
Multipath TCP [RFC8684] and SCTP utilize multiple data paths over
multiple endpoint addresses. As these multipath protocols are
unaware of data paths, they distinguish the data paths by endpoint IP
addresses. Accordingly, multiple flows of these protocols may use an
identical data path without recognizing it.
Multipath protocols are also responsible for inverse multiplexing to
split a data stream into multiple data paths. This inverse
multiplexing is independent of data paths except for congestion
control.
2.6. Reliable Data Communication
Transport layer protocols may implement retransmission and reordering
functions to recover lost or reordered datagrams for reliable data
communication. This functionality is independent of data paths, and
consequently, should be implemented over data paths. Instead,
``smart'' end-hosts or middleboxes may implement it.
Asai Expires 26 August 2021 [Page 7]
Internet-Draft Data Path and Data Flow Layers February 2021
An end-host may transmit a duplicate packet for improving reliability
[RFC8655]. This functionality is also independent of data paths.
However, a router in a data path may be capable of duplicating a
packet because the duplication process does not require significant
computing resources, unlike retransmission.
2.7. Security
The transport layer may implement an end-to-end security function,
such as Transport Layer Security (TLS) [RFC8446] Datagram Transport
Layer Security (DTLS) [RFC6347]. As TLS does not encrypt the
underlying transport protocol header, middleboxes such as TCP
offloading can still work. However, some protocols implementing a
transport layer protocol over DTLS, such as SCTP over DTLS used in
WebRTC Data Channel [RFC8831], encrypt the transport layer header,
and consequently, have difficulty cooperating with these middleboxes.
In this way, transport layer's security functions have focused on
end-to-end security. However, middleboxes that terminate security
function, such as [mcTLS], have been proposed. Moreover, distributed
computing paradigms such as in-network computing and MEC may also
introduce middleboxes allowed to terminate security functions to
deploy a computing function. Therefore, security should be
considered at three levels. data path security, data flow security,
and end-to-end security. Note that data link security such as Wi-Fi
Protected Access (WPA) is out of the scope of this document.
2.8. Summary
As described above, the transport layer functionality is summarized
by distinguishing data paths and data flows as follows:
The following functionality is categorized as data path functions.
* In-band trajectory monitoring
* Waypoint management
* Bidirectional connection establishment
* Data path quality (congestion) monitoring and congestion control
* Data flow multiplexing
* Packet duplication
* Data path security
Asai Expires 26 August 2021 [Page 8]
Internet-Draft Data Path and Data Flow Layers February 2021
The following functionality is categorized as data flow functions.
* Retransmission for reliable data communication
* Flow control for receive-buffer management
* Flow prioritization
* Data flow and end-to-end security
* Inverse multiplexing for multipath protocols
3. Specifications of Data Path Layer and Data Flow Layer
As summarized in Section 2.8, this document separates data paths and
data flows from the transport layer. Hence, this document divides
the transport layer into two sublayers; the data path and the data
flow layers. This section specifies the functionality of these two
sublayers.
3.1. Data Path Layer
The data path layer provides the functionality to make the transport
layer aware of data paths upon the Internet layer. The data path
layer forwards packets without manipulating the payload. It means
that the data path layer does not provide fragmentation,
segmentation, or reassembly. Instead, the Internet layer or the data
flow layer provide these functions.
The data path layer MAY implement in-band trajectory monitoring,
bidirectional connection establishment, data path quality monitoring
and congestion control, data flow multiplexing, and packet
duplication. A data path layer protocol MAY implement other
functions related to data paths.
3.1.1. In-band trajectory monitoring
The data path layer MAY provide an in-band trajectory monitoring
function. The in-band trajectory monitoring function enables an
upper-layer protocol to detect path change events and a single point
of failure for multipath protocols.
DPH: Data path layer protocol header
Asai Expires 26 August 2021 [Page 9]
Internet-Draft Data Path and Data Flow Layers February 2021
+--------+ *--------------* *--------------* +--------+
| Host A |-----| DPR1 (ID: 3) |-----| DPR2 (ID: 4) |-----| Host B |
+--------+ *--------------* *--------------* +--------+
| |
| v
| +-----+-+-+----...----+
| | DPH |3|4| Payload |
| +-----+-+-+----...----+
v
+-----+-+----...----+
| DPH |3| Payload |
+-----+-+----...----+
Figure 2: Appending data path router identifiers to distinguish
the data path
One approach to implement this functionality is prepending,
appending, or XOR-ing device identifiers like in-band network
telemetry or in-situ OAM [I-D.ietf-ippm-ioam-data] by data path layer
protocol's routers. Figure 2 shows an example of in-band trajectory
monitoring. A router that handles a data path layer protocol appends
the router identifier to the header. In case the upper-layer
protocol does not require the path information but path change
events, the router can apply an XOR operation with a hashed
identifier to a fixed-length field. Other alternative approaches MAY
be used.
The latter approach separates the control plane and the data plane.
The control plane manages the data path, and the data plane monitors
if packets pass through the dedicated data path. The data path
control MAY leverage underlay protocols such as Segment Routing.
3.1.2. Waypoint management
The data path layer MAY support waypoint management functionality.
The in-band trajectory monitoring functionality described above does
not provide the functionality to designate the data path's waypoints.
However, some middleboxes such as firewalls and in-network computing
require to designate waypoints to activate the in-network functions.
Asai Expires 26 August 2021 [Page 10]
Internet-Draft Data Path and Data Flow Layers February 2021
A data path layer protocol MAY define a specification to control the
waypoints of a data path. There are two approaches to designate
waypoints over the Internet layer; 1) setting a waypoint as the
destination IP address and 2) using routing technologies such as
source routing and policy-based routing. The former approach
includes Network Address Translation (NAT) [RFC3022] and proxy
services. The latter approach MAY leverage underlay protocols to
designate waypoints, such as Segment Routing and IPv6 Type 2 Routing
Header [RFC6275]. Other alternative approaches MAY be used in a data
path layer protocol.
3.1.3. Bidirectional connection establishment
The data path layer SHOULD support both unidirectional and
bidirectional paths. A bidirectional path MAY be symmetric or
asymmetric. As the characteristics of unidirectional and
bidirectional paths are different, some data path layer protocols MAY
only support either unidirectional or bidirectional paths.
A data path protocol supporting bidirectional data paths SHOULD
implement a handshake mechanism to establish a bidirectional
connection, such as a 3-way handshake of TCP and a 4-way handshake of
SCTP. It MAY provide a 0-RTT connection establishment feature such
as TLS 1.3 [RFC8446] and TCP Fast Open [RFC7413].
3.1.4. Data path quality (congestion) monitoring and congestion control
The data path layer SHOULD implement congestion control. However,
Data path layer protocols supporting only unidirectional paths MAY
not implement congestion control because it cannot implement
congestion or data path quality reporting.
Congestion control is performed based on data path quality or
congestion reporting from the receiver end-host or intermediate nodes
that process a data path layer protocol. Data path quality or
congestion signals MAY be packet losses, delay, or ECN, as used in
many transport layer protocols. Other signals or metrics, such as
in-band network telemetry information, MAY be used.
3.1.5. Data flow multiplexing
The data path layer enables us to collectively handle different
characteristics (e.g., service level requirements) of transport layer
protocols such as stream and datagram protocols.
Asai Expires 26 August 2021 [Page 11]
Internet-Draft Data Path and Data Flow Layers February 2021
3.1.6. Packet duplication
On a lossy data path, a data path layer protocol MAY implement packet
duplication for improving reliability. However, the data path layer
SHOULD NOT provide retransmission because it requires significant
resources.
3.1.7. Data path security
A data path layer protocol MAY implement data path security. Data
path security provides a security function between data path routers.
As pointed out in Section 2.7, the data path layer assumes
middleboxes that terminate a security function. Therefore, data
(payload) encryption provided by data path security MAY be terminated
at a data path router. In addition to encryption, other security
functions, such as authentication, authorization, and accounting for
a data path router, MAY be implemented as data path security.
3.2. Data Flow Layer
The data flow layer MAY implement various functions for end-to-end
data communication over the data path layer. Data flow layer
protocols MAY be stream, datagram, or message-oriented protocols.
Middleboxes, MEC nodes, or in-network computing nodes MAY process
data flow layer protocols. Therefore, a node processing data flow
layer protocols SHOULD be as ``smart'' as end-hosts.
A data flow layer protocol MAY implement a retransmission function
for reliable data communication, a flow control mechanism for
receive-buffer management, flow prioritization for effective network
resource utilization, a security extension such as TLS and DTLS, and
a multipath transport protocol using multiple bidirectional paths
over the data path layer.
3.2.1. Retransmission for reliable data communication
A data flow layer protocol MAY provide retransmission for reliable
data communication. To this end, a node implementing the data flow
layer protocol MUST equip a transmit buffer for retransmission to
retransmit lost corrupted packets. It MUST also equip a receive
buffer to reassemble a stream and a message from a sequence of
packets in a stream and message-oriented data flow layer protocols.
The receive buffer also handles packet reordering and duplication.
Asai Expires 26 August 2021 [Page 12]
Internet-Draft Data Path and Data Flow Layers February 2021
3.2.2. Flow control for receive-buffer management
Flow control is necessary for receive-buffer management. Therefore,
a data flow layer protocol MAY implement the flow control mechanism.
A receiver node advertises the available receive-buffer size in the
data flow layer, like TCP's window size, when implementing the flow
control mechanism. A sender node controls the transmission so that
transmitted data do not exceed the receive-buffer size.
3.2.3. Flow prioritization
The prioritization of data flows multiplexed in a data path layer
protocol MAY be implemented on the data flow layer using the data
path layer information, such as monitored data path quality or
congestion. A data flow layer protocol MAY provide a service code
point or priority so that nodes processing the data flow protocol
discriminate a flow.
3.2.4. Data flow and end-to-end security
A data flow layer protocol MAY implement a data flow or end-to-end
security function. TLS and DTLS can be used for stream and datagram
data flows, respectively. In such case, data flow security is
identical to end-to-end security. If we consider a mechanism that
terminates a security function for a data flow, such as [mcTLS], data
flow security is handled by a middlebox.
3.2.5. Inverse multiplexing for multipath protocols
A multipath data flow protocol MAY leverage multiple bidirectional
data paths established by data path layer protocols. The data flow
layer is responsible for the inverse multiplexing functionality.
Therefore, the multipath data flow protocol divides a stream, a
message, or a datagram into these multiple data paths. Note that the
data path layer performs congestion control for each data path, while
the data flow layer performs flow control.
4. Use Cases
This document does not specify any data path protocols or data flow
protocols, but the data path and data flow layers' architectural
design. For better understanding, this section describes the use
cases of the data path and the data flow layers. In the use cases, a
data path router (DPR) and a data flow layer node (DFN) denote a
router that processes a data path layer protocol and a node that
processes a data flow layer protocol, respectively.
Asai Expires 26 August 2021 [Page 13]
Internet-Draft Data Path and Data Flow Layers February 2021
4.1. Multipath Transport Protocols
Hosts A and B communicate with each other over multiple data paths;
Path R1-DPR3-DPR2 and Path DPR4-DPR2. R1 is an IP router. DPR2,
DPR3, and DPR4 are data path routers that treat data path layer
protocols.
*----* *------*
+--| R1 |-----| DPR3 |--+
+--------+_/ *----* *------* \_*------* +--------+
| Host A |_ _| DPR2 |-----| Host B |
+--------+ \ *------* / *------* +--------+
+-------------| DPR4 |--+
*------*
Figure 3: An example of multipath data communication
Figure 3 shows an example of multipath data communication over two
data paths. The end-hosts A and B establish two bidirectional data
paths; A-R1-DPR3-R2-B and A-DPR4-DPR2-B, and they use a data flow
layer protocol over these data paths for end-to-end communication.
The data path layer protocols monitor the data path quality and
perform congestion control for each data path. The data flow layer
protocol performs flow control and inverse multiplexing into these
data paths.
Multipath transport protocols MAY leverage in-band trajectory
monitoring to detect a shared waypoint. We assume that the data path
routers manipulate the header of a data path layer protocol. They
add the router identifier to the data path layer protocol's header to
report the trajectory to the end-hosts. When sending packets from
end-host A to end-host B over these paths, each packet reports
trajectory A-DPR3-DPR2-B or A-DPR4-DPR2-B. In this way, end-host B
recognizes two different data paths and detects a shared data path
router, DPR2, on the multiple paths, potentially a single point of
failure for end-to-end communication.
Asai Expires 26 August 2021 [Page 14]
Internet-Draft Data Path and Data Flow Layers February 2021
4.2. Congestion Control Acceleration
Some TCP congestion control acceleration functions proxy TCP sessions
to shorten the perspective latency. The acceleration functions
acknowledge receipt of packets. Using a loss-based congestion
control algorithm, both congestion control and flow control use the
acknowledgments (ACKs). For congestion control, missing ACKs report
packet losses, and consequently, they present the data path quality
to control the transmission rate to avoid congestion. For flow
control, ACKs report successful data delivery. Then, the sender can
release part of the transmit buffer. Otherwise, the sender
retransmits the lost data.
+-------------------+ +-------------------+
| Application layer |<------------------------->| Application layer |
+-------------------+ +-------------------+
| Data flow layer |<------------------------->| Data flow layer |
+-------------------+ +-------------------+ +-------------------+
| Data path layer |<->| Data path layer |<->| Data path layer |
+-------------------+ +-------------------+ +-------------------+
| Internet layer |<->| Internet layer |<->| Internet layer |
+-------------------+ +-------------------+ +-------------------+
| Link layer |<->| Link layer |<->| Link layer |
+-------------------+ +-------------------+ +-------------------+
Sender Accelerator Receiver
Figure 4: An example of a communication model for congestion control
acceleration
Figure 4 illustrates an example of a communication model for
congestion control acceleration using the data path layer. The
accelerator or the receiver reports the data path quality to the
sender on the data path layer to perform congestion control. There
are various ways to measure data path quality. For example, data
path routers MAY use the buffer capacity in the same way as ECN. If
a data path router can detect packet losses for a connection of data
path layer protocols, the packet losses or statistics MAY be used to
report the data path quality. The data path quality report by the
accelerator enables the fast response of congestion control
algorithms. The data flow layer is responsible for retransmission
for reliable communication and flow control for receive-buffer
management.
Asai Expires 26 August 2021 [Page 15]
Internet-Draft Data Path and Data Flow Layers February 2021
4.3. In-Network Computing
In-network computing [I-D.kunze-coin-industrial-use-cases] is a novel
distributed computing paradigm. It requires to be aware of the data
path's waypoints because computing components are placed in between
end-hosts. The message-oriented protocol MAY adopt the pub/sub
communication model, widely used in machine-to-machine communication.
The data path layer establishes a data path while designating the
waypoints to perform in-network computing. The data flow layer over
the data path implements a message-oriented protocol or a stream
protocol to feed data into in-network computing nodes. The message-
oriented protocol MAY adopt the pub/sub communication model, widely
used in machine-to-machine communication.
App., DF, DP, IP, and Link denote the application layer, the data
flow layer, the data path layer, the IP, and the link layer,
respectively. H1 and H2 are end-hosts, C1 and C2 are in-network
computing nodes, P1 is a data path router, and R1 is an IP router.
+------+ +------+
| App. |<--------------------------------------------->| App. |
+------+ +------+ +------+ +------+
| DF |<------------>| DF |<------------>| DF |<->| DF |
+------+ +------+ +------+ +------+ +------+
| DP |<->| DP |<->| DP |<------------>| DP |<->| DP |
+------+ +------+ +------+ +------+ +------+ +------+
| IP |<->| IP |<->| IP |<->| IP |<->| IP |<->| IP |
+------+ +------+ +------+ +------+ +------+ +------+
| Link |<->| Link |<->| Link |<->| Link |<->| Link |<->| Link |
+------+ +------+ +------+ +------+ +------+ +------+
+----+ *----* *----* *----* *----* +----+
| H1 |-----| P1 |-----| C1 |-----| R1 |-----| C2 |-----| H2 |
+----+ *----* *----* *----* *----* +----+
Figure 5: An example of communication model of in-network computing
Figure 5 illustrates an example of the communication model of in-
network computing. A data path is established between H1 and H2. A
data path layer protocol designates C1 and C2 as the waypoints. Over
the established data path, H1 transmits messages to H2 using a data
flow layer protocol. C1 and C2 process the messages according to the
programs running on C1 and C2.
Asai Expires 26 August 2021 [Page 16]
Internet-Draft Data Path and Data Flow Layers February 2021
4.4. Flow Arbitration
The separation of the data path and the data flow layer enables flow-
level prioritization. As the data path layer is responsible for
congestion control, the multiplexed data flows over a data path can
collectively perform resource arbitration for the data path bandwidth
capacity.
For example, a data path multiplexes two data flows; one of them
requires a constant data rate, and the other is tolerant of delayed
data delivery. Flow control can prioritize the former data flow and
decrease the transmission rate when the data path layer detects
congestion. This flow arbitration is crucial in coexisting deadline-
based and best-effort flows.
H1, H2, H3, and H4 are end-hosts. R1, R2, and R3 are IP routers. P1
is a data path router that support the data path quality monitoring
function.
+----+ *----* +----+
| H1 |--+ +--| R2 |-----| H3 |
+----+ \_*----* *----*_/ *----* +----+
_| R1 |-----| P1 |_
+----+ / *----* *----* \ *----* +----+
| H2 |--+ +--| R3 |-----| H4 |
+----+ *----* +----+
Figure 6: An example of flow arbitration over multiple data paths
Moreover, the data path layer MAY support data path quality
monitoring for multiple data paths. If data path routers monitor
multiple data paths' bandwidth capacity, they can report the
estimated capacity to arbitrate multiple flows over the data paths.
Figure 6 shows an example flow arbitration over multiple data paths.
Suppose data flows X and Y are over the data paths H1-R1-P1-R2-H3 and
H2-R1-P1-R3-H4, respectively; the data path router P1 can monitor the
data path quality such as packet losses for these data paths. If the
bandwidth utilization reaches the capacity, the data path router
requests resource arbitration. A flow MAY reduce the data rate using
the flow control mechanism in the data flow layer if its priority is
not high. Thus, these two flows can autonomously perform the flow
arbitration. This flow arbitration MAY fail and perform best-effort
communication, such in case both flows are the high priority and do
not reduce the data rate.
Asai Expires 26 August 2021 [Page 17]
Internet-Draft Data Path and Data Flow Layers February 2021
5. Implementation Considerations
Although this document does not specify the data path layer and the
data flow layer protocols, it discusses the implementation of these
protocols' specifications. The data path layer MAY be implemented
over UDP for interoperability with the current Internet operations
because other protocols than ICMP, TCP, and UDP MAY be filtered on
the Internet. Data path layer protocols MUST implement the maximum
transmission unit (MTU) discovery [RFC8899].
LH: Link-layer protocol header, IPH: IP header, UDPH: UDP header,
DPH: Data path layer protocol header, DFH: Data flow layer protocol
header
+----+-----+------+-----+-----+------------------+-----------+
| LH | IPH | UDPH | DPH | DFH | Payload | (Trailer) |
+----+-----+------+-----+-----+------------------+-----------+
Figure 7: An implementation of data path layer and data flow
layer protocols over UDP
Figure 7 illustrates an example packet format of data path layer and
data flow layer protocols over UDP. In this figure, the UDP header
is not intended to provide the transport layer's functionality but is
introduced for interoperability with existing middleboxes on the
Internet.
A data path layer protocol MAY use hop-by-hop UDP connections to
designate waypoints like an overlay network. Otherwise, data path
routers require to leverage routing technologies such as Segment
Routing and policy-based routing to support waypoint management.
6. IANA Considerations
This document does not have IANA Considerations.
7. Security Considerations
End-to-end encryption becomes critical to Internet protocols for
privacy and security. The data path layer MUST be visible to
intermediate nodes, such as routers and middleboxes, by design to
process and manipulate a data path layer protocol. Therefore, this
document proposes to implement transport layer security at the data
flow layer. It exposes data path information. Therefore, data path
layer protocols MUST NOT include privacy-sensitive information in the
protocol header.
Asai Expires 26 August 2021 [Page 18]
Internet-Draft Data Path and Data Flow Layers February 2021
Data path layer protocols may be invisible to intermediate nodes if
an underlay protocol encrypts the payload. For example, IPsec
[RFC6071] encrypts the payload of IP datagrams. In such cases,
intermediate nodes cannot process or manipulate data path layer
protocols.
8. Acknowledgements
We thank Kenichi Murata, Ryokichi Onishi, Yusuke Doi, and Masahiro
Ishiyama for their comments and review of this document.
9. References
9.1. Normative References
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
DOI 10.17487/RFC0768, August 1980,
<https://www.rfc-editor.org/info/rfc768>.
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
RFC 793, DOI 10.17487/RFC0793, September 1981,
<https://www.rfc-editor.org/info/rfc793>.
[RFC0919] Mogul, J., "Broadcasting Internet Datagrams", STD 5,
RFC 919, DOI 10.17487/RFC0919, October 1984,
<https://www.rfc-editor.org/info/rfc919>.
[RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5,
RFC 1112, DOI 10.17487/RFC1112, August 1989,
<https://www.rfc-editor.org/info/rfc1112>.
[RFC1122] Braden, R., Ed., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122,
DOI 10.17487/RFC1122, October 1989,
<https://www.rfc-editor.org/info/rfc1122>.
[RFC1123] Braden, R., Ed., "Requirements for Internet Hosts -
Application and Support", STD 3, RFC 1123,
DOI 10.17487/RFC1123, October 1989,
<https://www.rfc-editor.org/info/rfc1123>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
Asai Expires 26 August 2021 [Page 19]
Internet-Draft Data Path and Data Flow Layers February 2021
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,
"Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers", RFC 2474,
DOI 10.17487/RFC2474, December 1998,
<https://www.rfc-editor.org/info/rfc2474>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP",
RFC 3168, DOI 10.17487/RFC3168, September 2001,
<https://www.rfc-editor.org/info/rfc3168>.
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
Congestion Control Protocol (DCCP)", RFC 4340,
DOI 10.17487/RFC4340, March 2006,
<https://www.rfc-editor.org/info/rfc4340>.
[RFC4786] Abley, J. and K. Lindqvist, "Operation of Anycast
Services", BCP 126, RFC 4786, DOI 10.17487/RFC4786,
December 2006, <https://www.rfc-editor.org/info/rfc4786>.
[RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol",
RFC 4960, DOI 10.17487/RFC4960, September 2007,
<https://www.rfc-editor.org/info/rfc4960>.
[RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility
Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July
2011, <https://www.rfc-editor.org/info/rfc6275>.
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347,
January 2012, <https://www.rfc-editor.org/info/rfc6347>.
[RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I.,
Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent
Multicast - Sparse Mode (PIM-SM): Protocol Specification
(Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March
2016, <https://www.rfc-editor.org/info/rfc7761>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
Asai Expires 26 August 2021 [Page 20]
Internet-Draft Data Path and Data Flow Layers February 2021
[RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas,
"Deterministic Networking Architecture", RFC 8655,
DOI 10.17487/RFC8655, October 2019,
<https://www.rfc-editor.org/info/rfc8655>.
[RFC8684] Ford, A., Raiciu, C., Handley, M., Bonaventure, O., and C.
Paasch, "TCP Extensions for Multipath Operation with
Multiple Addresses", RFC 8684, DOI 10.17487/RFC8684, March
2020, <https://www.rfc-editor.org/info/rfc8684>.
[RFC8831] Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data
Channels", RFC 8831, DOI 10.17487/RFC8831, January 2021,
<https://www.rfc-editor.org/info/rfc8831>.
[RFC8899] Fairhurst, G., Jones, T., Tüxen, M., Rüngeler, I., and T.
Völker, "Packetization Layer Path MTU Discovery for
Datagram Transports", RFC 8899, DOI 10.17487/RFC8899,
September 2020, <https://www.rfc-editor.org/info/rfc8899>.
9.2. Informative References
[RFC1301] Armstrong, S., Freier, A., and K. Marzullo, "Multicast
Transport Protocol", RFC 1301, DOI 10.17487/RFC1301,
February 1992, <https://www.rfc-editor.org/info/rfc1301>.
[RFC1458] Braudes, R. and S. Zabele, "Requirements for Multicast
Protocols", RFC 1458, DOI 10.17487/RFC1458, May 1993,
<https://www.rfc-editor.org/info/rfc1458>.
[RFC2768] Aiken, B., Strassner, J., Carpenter, B., Foster, I.,
Lynch, C., Mambretti, J., Moore, R., and B. Teitelbaum,
"Network Policy and Services: A Report of a Workshop on
Middleware", RFC 2768, DOI 10.17487/RFC2768, February
2000, <https://www.rfc-editor.org/info/rfc2768>.
[RFC3022] Srisuresh, P. and K. Egevang, "Traditional IP Network
Address Translator (Traditional NAT)", RFC 3022,
DOI 10.17487/RFC3022, January 2001,
<https://www.rfc-editor.org/info/rfc3022>.
[RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol
Independent Multicast - Dense Mode (PIM-DM): Protocol
Specification (Revised)", RFC 3973, DOI 10.17487/RFC3973,
January 2005, <https://www.rfc-editor.org/info/rfc3973>.
Asai Expires 26 August 2021 [Page 21]
Internet-Draft Data Path and Data Flow Layers February 2021
[RFC4654] Widmer, J. and M. Handley, "TCP-Friendly Multicast
Congestion Control (TFMCC): Protocol Specification",
RFC 4654, DOI 10.17487/RFC4654, August 2006,
<https://www.rfc-editor.org/info/rfc4654>.
[RFC6071] Frankel, S. and S. Krishnan, "IP Security (IPsec) and
Internet Key Exchange (IKE) Document Roadmap", RFC 6071,
DOI 10.17487/RFC6071, February 2011,
<https://www.rfc-editor.org/info/rfc6071>.
[RFC6559] Farinacci, D., Wijnands, IJ., Venaas, S., and M.
Napierala, "A Reliable Transport Mechanism for PIM",
RFC 6559, DOI 10.17487/RFC6559, March 2012,
<https://www.rfc-editor.org/info/rfc6559>.
[RFC7094] McPherson, D., Oran, D., Thaler, D., and E. Osterweil,
"Architectural Considerations of IP Anycast", RFC 7094,
DOI 10.17487/RFC7094, January 2014,
<https://www.rfc-editor.org/info/rfc7094>.
[RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014,
<https://www.rfc-editor.org/info/rfc7413>.
[I-D.ietf-ippm-ioam-data]
Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields
for In-situ OAM", Work in Progress, Internet-Draft, draft-
ietf-ippm-ioam-data-11, 22 November 2020,
<http://www.ietf.org/internet-drafts/draft-ietf-ippm-ioam-
data-11.txt>.
[I-D.kunze-coin-industrial-use-cases]
Kunze, I., Wehrle, K., and D. Trossen, "Use Cases for In-
Network Computing", Work in Progress, Internet-Draft,
draft-kunze-coin-industrial-use-cases-04, 2 November 2020,
<http://www.ietf.org/internet-drafts/draft-kunze-coin-
industrial-use-cases-04.txt>.
[mcTLS] Naylor, D., Schomp, K., Varvello, M., Leontiadis, I.,
Blackburn, J., López, D., Papagiannaki, K., Rodriguez, P.,
and P. Steenkiste, "Multi-Context TLS (mcTLS) Enabling
Secure In-Network Functionality in TLS", SIGCOMM Comput.
Commun. Rev., vol. 45, no. 4, pp. 199-212, 2015.
Author's Address
Asai Expires 26 August 2021 [Page 22]
Internet-Draft Data Path and Data Flow Layers February 2021
Hirochika Asai
Preferred Networks, Inc. / WIDE Project
1-6-1 Otemachi, Chiyoda, Tokyo
100-0004
Japan
Email: panda@wide.ad.jp
Asai Expires 26 August 2021 [Page 23]