RFC 9473
A Vocabulary of Path Properties
RFC 9473: A Vocabulary of Path Properties ๐ฆ
okay bestie, let's talk about RFC 9473, and yes the title is literally A Vocabulary of Path Properties ๐ It's marked Informational, so it's published for information and isn't a Standards Track spec. It came out in September 2023 through the IRTF (Internet Research Task Force), and the work comes from the Path Aware Networking Research Group (PANRG). The authors are R. Enghardt at Netflix and C. Krรคhenbรผhl at ETH Zรผrich. The ISSN is 2070-1721. Its header doesn't list any RFCs that it obsoletes or updates, so it doesn't replace or change anything else ๐ธ
Abstract
okay so path properties are the info about the paths your traffic takes across a network and about the services you can use along those paths โจ In a path-aware network, endpoints and other entities might get some or all of that info ๐ This doc defines path properties and sorts them into categories ๐๏ธ It also points out several path properties that could be handy for endpoints or other entities, like picking between paths or invoking some of the services on offer ๐ซถ This document is a product of the Path Aware Networking Research Group (PANRG) ๐
Status of This Memo
not a Standards Track spec, so this is published purely for info ๐
this is a product of the Internet Research Task Force (IRTF), which shares the results of Internet-related research and development ๐ฌ Those results might not be suitable for deployment, so be careful ๐ This RFC represents the consensus of the Path Aware Networking Research Group of the IRTF ๐ซถ Documents approved for publication by the IRSG are not candidates for any level of Internet Standard, see Section 2 of RFC 7841 ๐
for the current status, any errata, and how to send feedback, check https://www.rfc-editor.org/info/rfc9473 ๐
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. ๐
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the date this was published ๐ Please read them carefully, because they spell out your rights and restrictions for this document ๐
Table of Contents ๐
1. Introduction
2. Terminology
2.1. Terminology Usage for Specific Technologies
3. Use Cases for Path Properties
3.1. Path Selection
3.2. Protocol Selection
3.3. Service Invocation
4. Examples of Path Properties
5. Security Considerations
6. IANA Considerations
7. Informative References
Acknowledgments
Authors' Addresses
1. Introduction โจ
okay so the current Internet architecture doesn't explicitly let endpoints discover the forwarding paths through the network, or find out the properties and services tied to those paths ๐ญ Path-aware networking, as defined in Section 1.1 of [RFC9217], is described as "endpoint discovery of the properties of paths they use for communication across an internetwork, and endpoint reaction to these properties that affects routing and/or data transfer". This document gives a generic definition of path properties, which answers the first of the questions in path-aware networking [RFC9217] ๐
path terms have been used with different meanings in different areas of networking, so first this doc gives a common terminology for paths, path elements, and flows ๐ง Using those terms, it defines path properties ๐ฆ Then it shares some example use cases for path properties ๐ Finally, it lists several path properties that could be useful for those use cases ๐ This list isn't meant to be exhaustive or definitive, so don't treat it as the whole universe ๐
heads up, this document does not assume that any of the listed path properties are actually available to any entity ๐ How entities can discover and distribute path properties in a trustworthy way is out of scope here ๐ โโ๏ธ
this document represents the consensus of the Path Aware Networking Research Group (PANRG) ๐ซถ
2. Terminology ๐
- Entity: a physical or virtual device or function, or a whole collection of devices or functions, that plays a role in path-aware networking for particular paths and flows โจ An entity can be on-path or off-path ๐ฃ๏ธ When it's on the path, it can take part in forwarding the flow, which is what people call "data plane functionality" ๐ฆ On or off the path, an entity can influence how the flow gets forwarded, which is "control plane functionality" like path selection or service invocation ๐๏ธ An entity that influences forwarding is usually aware of path properties, for example by observing or measuring them, or by learning them from another entity ๐ง
- Node: an on-path entity that processes packets, like sending, receiving, forwarding, or modifying them ๐ A node can be physical or virtual, like a physical device, a service function provided as a virtual element, or even a single queue inside a switch ๐ช A node can also be an entity made of a collection of devices or functions, like an entire Autonomous System (AS) ๐๏ธ
- Link: a medium or communication facility that connects two or more nodes โจ A link lets a node send packets to other nodes ๐ฌ Links can be physical, like a Wi-Fi network connecting an Access Point to stations ๐ถ, or virtual, like a virtual switch connecting two virtual machines hosted on the same physical machine ๐ป A link is unidirectional, so bidirectional communication gets modeled as two links between the same nodes, pointing in opposite directions โ๏ธ
- Path element: either a node or a link ๐งฉ For example, a path element can be an Abstract Network Element (ANE) as defined in [RFC9275] ๐
- Path: a sequence of adjacent path elements that a packet can be transmitted over, starting and ending with a node ๐บ๏ธ
- Paths are unidirectional and time dependent ๐ฐ๏ธ There can be a bunch of different paths from one node to another, and the path your packets take can change over time ๐ A path definition can be strict, meaning the exact sequence of path elements stays the same, or loose, meaning the start and end node stay the same but the elements in between can vary over time ๐ข
- How a path and its properties get represented can depend on which entity is looking at it ๐๏ธ That's because entities might only partially see the path elements, or their visibility might change over time ๐ซ๏ธ It can also differ because path elements get treated at different levels of abstraction ๐ช For example, a path can be a sequence of physical nodes and the links between them, or a sequence of logical nodes like a sequence of ASes or an Explicit Route Object (ERO), or it can just be a specific source and destination known to be reachable from that source ๐
- multicast or broadcast, where one node sends a packet and multiple nodes receive it, is described by multiple paths, one for each combination of sending and receiving node ๐ก These paths don't have to be disjoint, which is what the disjointness path property is about, see Section 4 ๐
- Endpoint: the endpoints of a path are its start and end nodes ๐ฏ For example, an endpoint can be a host as defined in [RFC1122], which could be a client (like a node running a web browser) or a server (like a node running a web server) ๐ฅ๏ธ
- Reverse Path: the path that a remote node uses in the context of bidirectional communication ๐
- Subpath: given a path, a subpath is a sequence of adjacent path elements of that path ๐งต
- Flow: one or multiple packets that the traits of a path or a set of subpaths may be applied to in a functional sense ๐ For example, a flow can be all packets sent within a TCP session with the same five-tuple between two hosts, or it can be all packets sent on the same physical link ๐ฆ
- Property: a trait of one or a sequence of path elements, or a trait of a flow with respect to one or a sequence of path elements ๐ท๏ธ An example of a link property is the maximum data rate that can be sent over the link ๐๏ธ An example of a node property is the administrative domain the node belongs to ๐ข An example of a property of a flow with respect to a subpath is the aggregated one-way delay of the flow sent from one node to another over that subpath โฑ๏ธ So a property is described by a tuple with the path element(s), the flow (or an empty set if no packets are relevant for the property), the name of the property (like maximum data rate), and the value of the property (like 1 Gbps) ๐งฎ
- Aggregated property: a bunch of values of a property squished into one value, using a function ๐ฅฃ A property can be aggregated over:
- multiple path elements (i.e., a subpath), for example the MTU of a path as the minimum MTU of all links on the path ๐ค๏ธ
- multiple packets (i.e., a flow), for example the median one-way latency of all packets between two nodes ๐
- or both path elements and packets, for example the mean of the queueing delays of a flow on all nodes along a path ๐ง
- The aggregation function can be numerical (like median, sum, or minimum) or logical (like "true if all are true" or "true if at least 50% of values are true"), or it can be any arbitrary function that maps multiple input values to one output value ๐ง
- Observed property: a property that's observed for a specific path element, subpath, or path ๐ It can be observed using measurements, like the one-way delay of one specific packet sent from node to node โฒ๏ธ
- Assessed property: an approximate calculation or assessment of a property's value โจ An assessed property includes how reliable that calculation or assessment is, and what "reliable" means depends on the property ๐ For example, a path property based on an approximate calculation might describe the expected median one-way latency of packets sent on a path within the next second, including the confidence level and interval ๐ A non-numerical assessment might instead include the likelihood that the property holds ๐ฒ
- Target property: an objective set for a property over a path element, subpath, or path ๐ฏ A target property can be set for observed properties, like one-way delay, and also for properties the entity setting the target can't observe, like certain nodes being included on a path ๐ฆ
2.1. Terminology Usage for Specific Technologies โจ
okay so the terms we just went over are meant to be super general ๐ they work for path-aware tech that exists right now AND stuff that hasn't been invented yet ๐ฎ which is so iconic. so a technology can pick its own path elements and path properties at whatever level of abstraction it wants ๐ฆ
for example, a technology might say path elements are IP routers, like in source routing [RFC1940] ๐ฃ๏ธ or it might look at path elements on a different layer of the Internet architecture [RFC1122] ๐งฑ or treat them as a bunch of entities that aren't tied to one layer at all, like an AS or ERO ๐
and even inside ONE path-aware technology, the definitions can shift depending on where you're using them ๐ซถ like, the endpoints could be the communicating hosts if you're talking transport layer, ASes that hold those hosts if you're talking routing, or specific applications if you're at the application layer. it's the same word doing different jobs, bestie ๐
3. Use Cases for Path Properties ๐
okay so when a path-aware network shows its path properties to endpoints or other entities, those entities can use that info to chase different goals ๐ฏ this section is a little list of use cases ๐
and heads up, this is NOT the full list ๐ new tech and protocols always bring new use cases, and new path properties might pop up too ๐ธ plus, for any given technology, different entities might see and control different path elements and path properties, and think about them at different levels of abstraction ๐ง so a new technology might pull off an existing use case with different path elements, or at a different level of abstraction entirely. it's giving flexibility ๐
3.1. Path Selection ๐ค๏ธ
so nodes might be able to send flows over one path (or a subset of paths) out of several possible ones, and an entity might be able to nudge which path(s) get picked ๐ path selection makes sense when there are several paths to the same destination (like a mobile device with two wireless interfaces, each providing a path ๐ฑ๐ถ) or when there are several destinations, and therefore several paths, offering the same service (like Application-Layer Traffic Optimization (ALTO) [RFC5693], an application-layer peer-to-peer protocol that gives endpoints a better-than-random peer selection ๐ค). entities can say what they're aiming for by specifying target properties for their paths, like stuff about performance or security ๐ฏ then paths that best meet those target properties can get selected. the entity can pick from all the available paths itself, or it can hand the target properties to the network and trust the network to choose good paths ๐ซถ
target properties about network performance usually refer to observed properties, like one-way delay, one-way packet loss, and link capacity ๐ entities then select paths by comparing their target property with the assessed property of the available paths, and they go with whichever paths best match the application requirements โจ for these performance-related target properties, the observed property is kinda like a Service Level Indicator (SLI), and the assessed property is kinda like a Service Level Objective (SLO) for IETF Network Slices [NETWORK-SLICES] ๐ as an example strategy, an entity might pick a path with a short one-way delay for a small delay-sensitive query ๐โโ๏ธ, but pick a path with high link capacities on all links for grabbing a big file ๐ฆ
it's also possible for an entity to set target properties it can't (directly) observe ๐ this is kinda like Service Level Expectations (SLEs) for IETF Network Slices [NETWORK-SLICES] ๐ง this could apply to security-related target properties (like requiring that ALL enterprise traffic goes through one specific firewall ๐ฅ) and to path selection (like enforcing traffic policies by allowing or disallowing flows over paths that go through specific networks or nodes ๐ง)
โ ๏ธ bestie, be careful when you pick paths based on observed path properties! path properties measured in the past might not help predict the current or future ones ๐ฌ and that kind of path selection can lead to unintended feedback loops ๐ also, path properties can trade off against each other (like one-way delay vs. link capacity), and entities can influence those trade-offs with their choices ๐๏ธ and path selection can affect fairness ๐ฅบ like, if multiple entities are trying to hit their target properties using the same network resources at the same time, one entity's choices can change the conditions on the path that another entity's flows experience ๐ญ
as a baseline, a path-selection algorithm should aim to do a better job of meeting the target properties, and therefore accommodating the user's requirements, than the default case of not selecting a path most of the time ๐ it's giving "don't be worse than doing nothing" energy ๐
path selection can be done by the communicating node(s) OR by other entities inside the network ๐ a network (like an AS) can adjust its path selection for internal or external routing based on path properties ๐บ๏ธ in BGP, the Multi-Exit Discriminator (MED) attribute gets used in the decision-making process to pick which path to take among those with the same AS path length and origin [RFC4271] ๐ข but in a path-aware network, instead of relying on that single MED value, other properties like link capacity or link usage could also be used to improve load balancing or performance [PERFORMANCE-ROUTING] โ๏ธโจ
3.2. Protocol Selection ๐งฉ
before sending data over a specific path, an entity might pick an appropriate protocol or configure protocol parameters depending on path properties ๐ง for example, an endpoint might cache state if a path allows the use of QUIC [RFC9000] ๐พ and if it does, it can try connecting with QUIC first, then fall back to another protocol next time it connects over that same path ๐ a video-streaming app might choose its (initial) video quality based on the achievable data rate or the monetary cost of sending data (like a volume-based or flat-rate cost model) ๐ฌ๐ธ
3.3. Service Invocation ๐ช
on top of path or protocol selection, an entity might choose to invoke additional functions in the context of Service Function Chaining [RFC7665], which can influence which nodes end up on the path ๐ for example, a 0-RTT Transport Converter [RFC8803] only gets involved in a path when an endpoint invokes it ๐ that invocation leads to the use of Multipath TCP (MPTCP) [RFC8684] or tcpcrypt [RFC8548] capabilities, while that use isn't supported via the default forwarding path ๐ซ another example is a connection made up of multiple streams, where each stream has its own specific service requirements ๐ an endpoint might decide to invoke a given service function (like transcoding) for only some streams, while others skip that service function entirely ๐๏ธ๐
4. Examples of Path Properties โจ
Okay bestie, this section gives some examples of path properties ๐ that could be super useful for the use cases in Section 3 ๐ซถ.
Path properties depend on who's looking. Visibility changes by technology, because entities can see into and influence different path elements and properties. An endpoint might see things that are close and low-level, like individual nodes within the first few hops ๐, or things that are far away and higher-level, like the list of ASes traversed ๐. What's visible can depend on physical or network distance, or on whether there are trust or contractual relationships between the endpoint and the path element(s) ๐ค. A path property can be defined relative to individual path elements, a sequence of path elements, or "end-to-end," which means relative to a path that has two endpoints and a single virtual link connecting them ๐ง.
Some properties are super dynamic, and some are not. A dynamic one is the one-way delay of a packet sent over a specific path ๐จ. A non-dynamic one is the MTU of an Ethernet link that only changes infrequently ๐ธ. How useful a property is over time depends on how dynamic it is. A momentarily observed dynamic property can get stale fast ๐. The observed one-way delay can change on timescales shorter than the one-way delay between the measurement point and an entity making a decision, like path selection, so the measurement might already be outdated by the time it reaches that decision-maker ๐ญ. That's why consumers of dynamic path properties need to be careful. Aggregate them appropriately, or apply a dampening function to their changes to avoid oscillation ๐. On the flip side, the observed value of a less dynamic property can stay relevant for way longer. A NAT, for example, typically stays on a particular path during the lifetime of a connection involving packets sent over this path ๐ฆ.
Access Technology: The physical- or link-layer technology used for transmitting or receiving a flow on one or multiple path elements ๐ก. If it's known, the access technology can be given as an abstract link type, like Wi-Fi, wired Ethernet, or cellular. It can also be given as a specific technology used on a link, like 3GPP cellular or 802.11 Wireless Local Area Network (WLAN) ๐. Other path elements related to the access technology can include nodes that process packets on the physical or link layer, like elements of a cellular core network ๐๏ธ. Note that there is no common registry of possible values for this property, so it's a bit of a free-for-all ๐.
Monetary Cost: The price to be paid to transmit or receive a specific flow across a network that one or multiple path elements belong to ๐ธ.
Service Function: A service function that a path element applies to a flow, see [RFC7665] ๐งฐ. Examples of abstract service functions include firewalls, Network Address Translation (NAT), and TCP Performance Enhancing Proxies ๐ฅ. Some stateful service functions, like NAT, need to observe the same flow in both directions, for example by being an element of both the path and the reverse path ๐.
Transparency: When a node performs an action A on a flow F, the node is transparent to F with respect to some (meta-)information M if the node performs A independently of M ๐ซฅ. M can be, for example, the existence of a protocol (header) in a packet, or the content of a protocol header, payload, or both. A can be things like blocking packets, or reading and modifying (other protocol) headers or payloads. Transparency can be modeled using a function f, which takes F and M as input and outputs the action taken by the node ๐งฎ. If a taint analysis shows that the output of f is not tainted (impacted) by M, or if the output of f is constant for arbitrary values of M, then the node is considered transparent โ .
Here's how that plays out. An IP router could be transparent to transport protocol headers such as TCP/UDP but not transparent to IP headers, since its forwarding behavior depends on the IP headers ๐ฆ. A firewall that only allows outgoing TCP connections by blocking all incoming TCP SYN packets regardless of their IP address is transparent to IP but not to TCP headers ๐งฑ. And a NAT that actively modifies IP and TCP/UDP headers based on their content is not transparent to either IP or TCP/UDP headers ๐ . Note that under this definition, a node that modifies packets in accordance with the endpoints, such as a transparent HTTP proxy as defined in [RFC9110], is not considered transparent. Same goes for a node listening and reacting to implicit or explicit signals, see [RFC8558] ๐ โโ๏ธ.
Transparency only applies to nodes, not links. A link can't modify packets or do any other actions on them by itself, so it doesn't count ๐. For example, if the content of a packet gets altered when it's forwarded over a Generic Routing Encapsulation (GRE) tunnel [RFC2784] [RFC7676], then per this document, the software instances that terminate the tunnel are the nodes where the actions are performed, and the transparency definition applies to those nodes ๐งโโ๏ธ.
Administrative Domain: The identity of an individual or an organization that controls access to a path element (or several path elements) ๐ข. Examples of administrative domains are an IGP area, an AS, or a service provider network ๐บ๏ธ.
Routing Domain Identifier: An identifier that indicates the routing domain of a path element. Path elements in the same routing domain are in the same administrative domain and use a common routing protocol to talk to each other ๐ฃ๏ธ. An example of a routing domain identifier is the globally unique Autonomous System Number (ASN) as defined in [RFC1930] ๐ข.
Disjointness: For a set of two paths or subpaths, the number of shared path elements can be a measure of intersection. The Jaccard coefficient is a great example of this, and it's the number of shared elements divided by the total number of elements ๐ค. Flip it around, and the number of non-shared path elements can be a measure of disjointness, like 1 - Jaccard coefficient ๐งฉ. A multipath protocol might use disjointness as a metric to reduce the number of single points of failure ๐ก๏ธ. Also, because paths can be defined at different levels of abstraction, two paths might be disjoint at one level but not at another ๐ซ .
Symmetric Path: Two paths are symmetric if the path and its reverse path consist of the same path elements on the same level of abstraction, just in reverse order ๐ช. For example, a path made of layer 3 switches and the links between them, plus a reverse path with those same path elements in reverse order, is considered "routing" symmetric, since the same path elements on the same level of abstraction (IP forwarding) are traversed in the opposite direction โฉ๏ธ. Symmetry can depend on the level of abstraction the path is defined or modeled on. If there are two parallel physical links between two nodes, modeling them as separate links may result in a flow using asymmetric paths. Modeling them as a single virtual link may result in symmetric paths, e.g., if the difference between the two physical links doesn't matter in a particular context ๐.
Path MTU: The maximum size, in octets, of a packet or frame that can be transmitted without fragmentation ๐.
Transport Protocols available: Whether a specific transport protocol can be used to establish a connection over a path or subpath, e.g., whether the path is QUIC-capable or MPTCP-capable. This is based on input such as policy, cached knowledge, or probing results ๐.
Protocol Features available: Whether a specific protocol feature is available over a path or subpath, e.g., Explicit Congestion Notification (ECN) or TCP Fast Open โจ.
Some path properties express the performance of transmitting a packet or flow over a link or subpath. These transmission performance properties can be observed or assessed by endpoints or by path elements on the path. They can also be available as cost metrics, see [RFC9439] ๐. They might be shared in an aggregated form, like averages or minimums ๐งฎ. Properties related to a path element that makes up a single layer 2 domain are abstracted from the physical- and link-layer technology used, similar to [RFC8175] ๐ช.
Link Capacity: The maximum data rate at which data sent over a link can be correctly received at the node adjacent to the link ๐ฐ. This property is analogous to the link capacity defined in [RFC5136] and [RFC9097], but it isn't restricted to IP-layer traffic ๐.
Link Usage: The actual data rate at which data sent over a link is correctly received at the node adjacent to the link ๐. This property is analogous to the link usage defined in [RFC5136] and [RFC9097], but it isn't restricted to IP-layer traffic either ๐.
One-Way Delay: The delay between a node sending a packet and another node on the same path receiving it โฑ๏ธ. This property is analogous to the one-way delay defined in [RFC7679], but it isn't restricted to IP-layer traffic ๐.
One-Way Delay Variation: The variation of the one-way delays within a flow ๐ข. This property is similar to the one-way delay variation defined in [RFC3393]. The difference is that it isn't restricted to IP-layer traffic, and it's defined for packets on the same flow instead of packets sent between a source and destination IP address ๐.
One-Way Packet Loss: Packets that a node sends but that another node on the same path doesn't receive after a certain time interval are considered lost ๐ค. This property is analogous to the one-way loss defined in [RFC7680], but it isn't restricted to IP-layer traffic. Metrics like loss patterns [RFC3357] and loss episodes [RFC6534] can be expressed as aggregated properties ๐.
5. Security Considerations โจ
Okay bestie, this part is super important ๐. If entities are making policy or path-selection decisions based on path properties, they need to rely on the accuracy of the path properties that other devices send them ๐ก. To actually trust those properties, entities may need to set up a trust relationship, or be able to independently verify the authenticity, integrity, and correctness of path properties received from another entity ๐ซถ.
Now, the privacy side is a whole vibe ๐. Entities that reveal their target path properties to the network can hurt their own privacy. For example, if the target property leaks personal info about a user, like their identity or which (type of) application they're using, that info could let network operators block or reprioritize traffic for certain users and/or applications ๐. On the flip side, if privacy-enhancing technologies, like MASQUE proxies [RFC9298], are used on a path, the path may only be partially visible to any single entity ๐ฆ. That can lowkey reduce how useful path-aware technologies are over that path ๐ญ.
The need for, and possible definition of, security- and privacy-related path properties (like confidentiality and integrity protection of payloads) is still being talked about and researched, see [RFC9049] and [RFC9217] ๐ง . Since the discussion isn't mature enough yet, these are out of scope for this document ๐ โโ๏ธ. One thing that comes up in this context is that security-related properties are hard to pin down, since they only mean something with respect to a threat model. That threat model depends on the use case, application, environment, and other factors ๐ธ. Same deal for trust relations between entities: they can't be meaningfully defined without a concrete threat model, and defining a threat model is out of scope for this document ๐ .
Properties related to confidentiality, integrity, and trust seem to be orthogonal to the path terminology and path properties defined in this document โจ. They're tied to the communicating nodes and the protocols they use (like a client and server using HTTPS, or a client and remote network node using a VPN service), plus extra context like keying material and who has access to that context ๐. The path, as defined here, is typically oblivious to all of that ๐ซ . Intuitively, the path describes what function the network applies to packets, while confidentiality, integrity, and trust describe what function the communicating parties apply to packets ๐.
6. IANA Considerations
This document has no IANA actions ๐ท.
7. Informative References
Here's the full reading list, bestie ๐ (all the details, no cuts):
- [NETWORK-SLICES] Farrel, A., Drake, J., Rokui, R., Homma, S., Makhijani, K., Contreras, L. M., and J. Tantsura, "A Framework for Network Slices in Networks Built from IETF Technologies", Work in Progress, Internet-Draft, draft-ietf-teas-ietf-network-slices-24, 25 August 2023,
https://datatracker.ietf.org/doc/html/draft-ietf-teas-ietf-network-slices-24. - [PERFORMANCE-ROUTING] Xu, X., Hegde, S., Talaulikar, K., Boucadair, M., and C. Jacquenet, "Performance-based BGP Routing Mechanism", Work in Progress, Internet-Draft, draft-ietf-idr-performance-routing-03, 21 December 2020,
https://datatracker.ietf.org/doc/html/draft-ietf-idr-performance-routing-03. - [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. - [RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, selection, and registration of an Autonomous System (AS)", BCP 6, RFC 1930, DOI 10.17487/RFC1930, March 1996,
https://www.rfc-editor.org/info/rfc1930. - [RFC1940] Estrin, D., Li, T., Rekhter, Y., Varadhan, K., and D. Zappala, "Source Demand Routing: Packet Format and Forwarding Specification (Version 1)", RFC 1940, DOI 10.17487/RFC1940, May 1996,
https://www.rfc-editor.org/info/rfc1940. - [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, DOI 10.17487/RFC2784, March 2000,
https://www.rfc-editor.org/info/rfc2784. - [RFC3357] Koodli, R. and R. Ravikanth, "One-way Loss Pattern Sample Metrics", RFC 3357, DOI 10.17487/RFC3357, August 2002,
https://www.rfc-editor.org/info/rfc3357. - [RFC3393] Demichelis, C. and P. Chimento, "IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)", RFC 3393, DOI 10.17487/RFC3393, November 2002,
https://www.rfc-editor.org/info/rfc3393. - [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006,
https://www.rfc-editor.org/info/rfc4271. - [RFC5136] Chimento, P. and J. Ishac, "Defining Network Capacity", RFC 5136, DOI 10.17487/RFC5136, February 2008,
https://www.rfc-editor.org/info/rfc5136. - [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic Optimization (ALTO) Problem Statement", RFC 5693, DOI 10.17487/RFC5693, October 2009,
https://www.rfc-editor.org/info/rfc5693. - [RFC6534] Duffield, N., Morton, A., and J. Sommers, "Loss Episode Metrics for IP Performance Metrics (IPPM)", RFC 6534, DOI 10.17487/RFC6534, May 2012,
https://www.rfc-editor.org/info/rfc6534. - [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015,
https://www.rfc-editor.org/info/rfc7665. - [RFC7676] Pignataro, C., Bonica, R., and S. Krishnan, "IPv6 Support for Generic Routing Encapsulation (GRE)", RFC 7676, DOI 10.17487/RFC7676, October 2015,
https://www.rfc-editor.org/info/rfc7676. - [RFC7679] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, Ed., "A One-Way Delay Metric for IP Performance Metrics (IPPM)", STD 81, RFC 7679, DOI 10.17487/RFC7679, January 2016,
https://www.rfc-editor.org/info/rfc7679. - [RFC7680] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, Ed., "A One-Way Loss Metric for IP Performance Metrics (IPPM)", STD 82, RFC 7680, DOI 10.17487/RFC7680, January 2016,
https://www.rfc-editor.org/info/rfc7680. - [RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B. Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175, DOI 10.17487/RFC8175, June 2017,
https://www.rfc-editor.org/info/rfc8175. - [RFC8548] Bittau, A., Giffin, D., Handley, M., Mazieres, D., Slack, Q., and E. Smith, "Cryptographic Protection of TCP Streams (tcpcrypt)", RFC 8548, DOI 10.17487/RFC8548, May 2019,
https://www.rfc-editor.org/info/rfc8548. - [RFC8558] Hardie, T., Ed., "Transport Protocol Path Signals", RFC 8558, DOI 10.17487/RFC8558, April 2019,
https://www.rfc-editor.org/info/rfc8558. - [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. - [RFC8803] Bonaventure, O., Ed., Boucadair, M., Ed., Gundavelli, S., Seo, S., and B. Hesmans, "0-RTT TCP Convert Protocol", RFC 8803, DOI 10.17487/RFC8803, July 2020,
https://www.rfc-editor.org/info/rfc8803. - [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021,
https://www.rfc-editor.org/info/rfc9000. - [RFC9049] Dawkins, S., Ed., "Path Aware Networking: Obstacles to Deployment (A Bestiary of Roads Not Taken)", RFC 9049, DOI 10.17487/RFC9049, June 2021,
https://www.rfc-editor.org/info/rfc9049. - [RFC9097] Morton, A., Geib, R., and L. Ciavattone, "Metrics and Methods for One-Way IP Capacity", RFC 9097, DOI 10.17487/RFC9097, November 2021,
https://www.rfc-editor.org/info/rfc9097. - [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, DOI 10.17487/RFC9110, June 2022,
https://www.rfc-editor.org/info/rfc9110. - [RFC9217] Trammell, B., "Current Open Questions in Path-Aware Networking", RFC 9217, DOI 10.17487/RFC9217, March 2022,
https://www.rfc-editor.org/info/rfc9217. - [RFC9275] Gao, K., Lee, Y., Randriamasy, S., Yang, Y., and J. Zhang, "An Extension for Application-Layer Traffic Optimization (ALTO): Path Vector", RFC 9275, DOI 10.17487/RFC9275, September 2022,
https://www.rfc-editor.org/info/rfc9275. - [RFC9298] Schinazi, D., "Proxying UDP in HTTP", RFC 9298, DOI 10.17487/RFC9298, August 2022,
https://www.rfc-editor.org/info/rfc9298. - [RFC9439] Wu, Q., Yang, Y., Lee, Y., Dhody, D., Randriamasy, S., and L. Contreras, "Application-Layer Traffic Optimization (ALTO) Performance Cost Metrics", RFC 9439, DOI 10.17487/RFC9439, August 2023,
https://www.rfc-editor.org/info/rfc9439.
Acknowledgments
Huge thanks to the Path Aware Networking Research Group for the discussion and feedback ๐. Special shoutout to Mohamed Boucadair for the detailed review, various text suggestions, and shepherding ๐. Thanks to Brian Trammell for suggesting the flow definition ๐ฆ. And thanks to Luis M. Contreras, Spencer Dawkins, Paul Hoffman, Jake Holland, Colin Perkins, Adrian Perrig, and Matthias Rost for the reviews, comments, and suggestions ๐. Many thanks to Dave Oran for his careful IRSG review ๐ซถ.
Authors' Addresses
Reese Enghardt Netflix Email: ietf@tenghardt.net
Cyrill Krรคhenbรผhl ETH Zรผrich Email: cyrill.kraehenbuehl@inf.ethz.ch ๐
๐ฆ where this page comes from
- ietf: rfc9473 2023-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms