rfc9522.original | rfc9522.txt | |||
---|---|---|---|---|
TEAS Working Group A. Farrel, Ed. | Internet Engineering Task Force (IETF) A. Farrel, Ed. | |||
Internet-Draft Old Dog Consulting | Request for Comments: 9522 Old Dog Consulting | |||
Obsoletes: 3272 (if approved) 12 August 2023 | Obsoletes: 3272 January 2024 | |||
Intended status: Informational | Category: Informational | |||
Expires: 13 February 2024 | ISSN: 2070-1721 | |||
Overview and Principles of Internet Traffic Engineering | Overview and Principles of Internet Traffic Engineering | |||
draft-ietf-teas-rfc3272bis-27 | ||||
Abstract | Abstract | |||
This document describes the principles of traffic engineering (TE) in | This document describes the principles of traffic engineering (TE) in | |||
the Internet. The document is intended to promote better | the Internet. The document is intended to promote better | |||
understanding of the issues surrounding traffic engineering in IP | understanding of the issues surrounding traffic engineering in IP | |||
networks and the networks that support IP networking, and to provide | networks and the networks that support IP networking and to provide a | |||
a common basis for the development of traffic engineering | common basis for the development of traffic-engineering capabilities | |||
capabilities for the Internet. The principles, architectures, and | for the Internet. The principles, architectures, and methodologies | |||
methodologies for performance evaluation and performance optimization | for performance evaluation and performance optimization of | |||
of operational networks are also discussed. | operational networks are also discussed. | |||
This work was first published as RFC 3272 in May 2002. This document | This work was first published as RFC 3272 in May 2002. This document | |||
obsoletes RFC 3272 by making a complete update to bring the text in | obsoletes RFC 3272 by making a complete update to bring the text in | |||
line with best current practices for Internet traffic engineering and | line with best current practices for Internet traffic engineering and | |||
to include references to the latest relevant work in the IETF. | to include references to the latest relevant work in the IETF. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
approved by the IESG are candidates for any level of Internet | ||||
Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 13 February 2024. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9522. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. What is Internet Traffic Engineering? . . . . . . . . . . 4 | 1.1. What is Internet Traffic Engineering? | |||
1.2. Components of Traffic Engineering . . . . . . . . . . . . 6 | 1.2. Components of Traffic Engineering | |||
1.3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 1.3. Scope | |||
1.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 8 | 1.4. Terminology | |||
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 2. Background | |||
2.1. Context of Internet Traffic Engineering . . . . . . . . . 12 | 2.1. Context of Internet Traffic Engineering | |||
2.2. Network Domain Context . . . . . . . . . . . . . . . . . 13 | 2.2. Network Domain Context | |||
2.3. Problem Context . . . . . . . . . . . . . . . . . . . . . 15 | 2.3. Problem Context | |||
2.3.1. Congestion and its Ramifications . . . . . . . . . . 16 | 2.3.1. Congestion and Its Ramifications | |||
2.4. Solution Context . . . . . . . . . . . . . . . . . . . . 17 | 2.4. Solution Context | |||
2.4.1. Combating the Congestion Problem . . . . . . . . . . 19 | 2.4.1. Combating the Congestion Problem | |||
2.5. Implementation and Operational Context . . . . . . . . . 22 | 2.5. Implementation and Operational Context | |||
3. Traffic Engineering Process Models . . . . . . . . . . . . . 22 | 3. Traffic-Engineering Process Models | |||
3.1. Components of the Traffic Engineering Process Model . . . 23 | 3.1. Components of the Traffic-Engineering Process Model | |||
4. Taxonomy of Traffic Engineering Systems . . . . . . . . . . . 23 | 4. Taxonomy of Traffic-Engineering Systems | |||
4.1. Time-Dependent Versus State-Dependent Versus | 4.1. Time-Dependent versus State-Dependent versus | |||
Event-Dependent . . . . . . . . . . . . . . . . . . . . . 24 | Event-Dependent | |||
4.2. Offline Versus Online . . . . . . . . . . . . . . . . . . 25 | 4.2. Offline versus Online | |||
4.3. Centralized Versus Distributed . . . . . . . . . . . . . 26 | 4.3. Centralized versus Distributed | |||
4.3.1. Hybrid Systems . . . . . . . . . . . . . . . . . . . 26 | 4.3.1. Hybrid Systems | |||
4.3.2. Considerations for Software Defined Networking . . . 27 | 4.3.2. Considerations for Software-Defined Networking | |||
4.4. Local Versus Global . . . . . . . . . . . . . . . . . . . 27 | 4.4. Local versus Global | |||
4.5. Prescriptive Versus Descriptive . . . . . . . . . . . . . 28 | 4.5. Prescriptive versus Descriptive | |||
4.5.1. Intent-Based Networking . . . . . . . . . . . . . . . 28 | 4.5.1. Intent-Based Networking | |||
4.6. Open-Loop Versus Closed-Loop . . . . . . . . . . . . . . 29 | 4.6. Open-Loop versus Closed-Loop | |||
4.7. Tactical versus Strategic . . . . . . . . . . . . . . . . 29 | 4.7. Tactical versus Strategic | |||
5. Review of TE Techniques . . . . . . . . . . . . . . . . . . . 29 | 5. Review of TE Techniques | |||
5.1. Overview of IETF Projects Related to Traffic | 5.1. Overview of IETF Projects Related to Traffic Engineering | |||
Engineering . . . . . . . . . . . . . . . . . . . . . . . 30 | 5.1.1. IETF TE Mechanisms | |||
5.1.1. IETF TE Mechanisms . . . . . . . . . . . . . . . . . 30 | 5.1.2. IETF Approaches Relying on TE Mechanisms | |||
5.1.2. IETF Approaches Relying on TE Mechanisms . . . . . . 35 | 5.1.3. IETF Techniques Used by TE Mechanisms | |||
5.1.3. IETF Techniques Used by TE Mechanisms . . . . . . . . 37 | 5.2. Content Distribution | |||
5.2. Content Distribution . . . . . . . . . . . . . . . . . . 49 | 6. Recommendations for Internet Traffic Engineering | |||
6. Recommendations for Internet Traffic Engineering . . . . . . 49 | 6.1. Generic Non-functional Recommendations | |||
6.1. Generic Non-functional Recommendations . . . . . . . . . 50 | 6.2. Routing Recommendations | |||
6.2. Routing Recommendations . . . . . . . . . . . . . . . . . 52 | 6.3. Traffic Mapping Recommendations | |||
6.3. Traffic Mapping Recommendations . . . . . . . . . . . . . 54 | 6.4. Measurement Recommendations | |||
6.4. Measurement Recommendations . . . . . . . . . . . . . . . 55 | 6.5. Policing, Planning, and Access Control | |||
6.5. Policing, Planning, and Access Control . . . . . . . . . 56 | 6.6. Network Survivability | |||
6.6. Network Survivability . . . . . . . . . . . . . . . . . . 57 | 6.6.1. Survivability in MPLS-Based Networks | |||
6.6.1. Survivability in MPLS Based Networks . . . . . . . . 59 | 6.6.2. Protection Options | |||
6.6.2. Protection Options . . . . . . . . . . . . . . . . . 60 | 6.7. Multi-Layer Traffic Engineering | |||
6.7. Multi-Layer Traffic Engineering . . . . . . . . . . . . . 61 | 6.8. Traffic Engineering in Diffserv Environments | |||
6.8. Traffic Engineering in Diffserv Environments . . . . . . 61 | 6.9. Network Controllability | |||
6.9. Network Controllability . . . . . . . . . . . . . . . . . 63 | 7. Inter-Domain Considerations | |||
7. Inter-Domain Considerations . . . . . . . . . . . . . . . . . 64 | ||||
8. Overview of Contemporary TE Practices in Operational IP | 8. Overview of Contemporary TE Practices in Operational IP | |||
Networks . . . . . . . . . . . . . . . . . . . . . . . . 65 | Networks | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 68 | 9. Security Considerations | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 | 10. IANA Considerations | |||
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 69 | 11. Informative References | |||
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 71 | Appendix A. Summary of Changes since RFC 3272 | |||
13. Informative References . . . . . . . . . . . . . . . . . . . 72 | A.1. RFC 3272 | |||
Appendix A. Summary of Changes Since RFC 3272 . . . . . . . . . 89 | A.2. This Document | |||
A.1. RFC 3272 . . . . . . . . . . . . . . . . . . . . . . . . 89 | Acknowledgments | |||
A.2. This Document . . . . . . . . . . . . . . . . . . . . . . 92 | Contributors | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 95 | Author's Address | |||
1. Introduction | 1. Introduction | |||
This document describes the principles of Internet traffic | This document describes the principles of Internet traffic | |||
engineering (TE). The objective of the document is to articulate the | engineering (TE). The objective of the document is to articulate the | |||
general issues and principles for Internet TE, and where appropriate | general issues and principles for Internet TE and, where appropriate, | |||
to provide recommendations, guidelines, and options for the | to provide recommendations, guidelines, and options for the | |||
development of preplanned (offline) and dynamic (online) Internet TE | development of preplanned (offline) and dynamic (online) Internet TE | |||
capabilities and support systems. | capabilities and support systems. | |||
Even though Internet TE is most effective when applied end-to-end, | Even though Internet TE is most effective when applied end-to-end, | |||
the focus of this document is TE within a given domain (such as an | the focus of this document is TE within a given domain (such as an | |||
autonomous system). However, because a preponderance of Internet | Autonomous System (AS)). However, because a preponderance of | |||
traffic tends to originate in one autonomous system and terminate in | Internet traffic tends to originate in one AS and terminate in | |||
another, this document also provides an overview of aspects | another, this document also provides an overview of aspects | |||
pertaining to inter-domain TE. | pertaining to inter-domain TE. | |||
This document provides a terminology and taxonomy for describing and | This document provides terminology and a taxonomy for describing and | |||
understanding common Internet TE concepts. | understanding common Internet TE concepts. | |||
This work was first published as [RFC3272] in May 2002. This | This work was first published as [RFC3272] in May 2002. This | |||
document obsoletes [RFC3272] by making a complete update to bring the | document obsoletes [RFC3272] by making a complete update to bring the | |||
text in line with best current practices for Internet TE and to | text in line with best current practices for Internet TE and to | |||
include references to the latest relevant work in the IETF. It is | include references to the latest relevant work in the IETF. It is | |||
worth noting around three fifths of the RFCs referenced in this | worth noting around three-fifths of the RFCs referenced in this | |||
document post-date the publication of RFC 3272. Appendix A provides | document postdate the publication of [RFC3272]. Appendix A provides | |||
a summary of changes between RFC 3272 and this document. | a summary of changes between [RFC3272] and this document. | |||
1.1. What is Internet Traffic Engineering? | 1.1. What is Internet Traffic Engineering? | |||
One of the most significant functions performed in the Internet is | One of the most significant functions performed in the Internet is | |||
the routing and forwarding of traffic from ingress nodes to egress | the routing and forwarding of traffic from ingress nodes to egress | |||
nodes. Therefore, one of the most distinctive functions performed by | nodes. Therefore, one of the most distinctive functions performed by | |||
Internet traffic engineering is the control and optimization of these | Internet traffic engineering is the control and optimization of these | |||
routing and forwarding functions, to steer traffic through the | routing and forwarding functions, to steer traffic through the | |||
network. | network. | |||
Internet traffic engineering is defined as that aspect of Internet | Internet traffic engineering is defined as that aspect of Internet | |||
network engineering dealing with the issues of performance evaluation | network engineering dealing with the issues of performance evaluation | |||
and performance optimization of operational IP networks. Traffic | and performance optimization of operational IP networks. Traffic | |||
engineering encompasses the application of technology and scientific | engineering encompasses the application of technology and scientific | |||
principles to the measurement, characterization, modeling, and | principles to the measurement, characterization, modeling, and | |||
control of Internet traffic [RFC2702], [AWD2]. | control of Internet traffic [RFC2702] [AWD2]. | |||
It is the performance of the network as seen by end users of network | It is the performance of the network as seen by end users of network | |||
services that is paramount. The characteristics visible to end users | services that is paramount. The characteristics visible to end users | |||
are the emergent properties of the network, which are the | are the emergent properties of the network, which are the | |||
characteristics of the network when viewed as a whole. A central | characteristics of the network when viewed as a whole. A central | |||
goal of the service provider, therefore, is to enhance the emergent | goal of the service provider, therefore, is to enhance the emergent | |||
properties of the network while taking economic considerations into | properties of the network while taking economic considerations into | |||
account. This is accomplished by addressing traffic oriented | account. This is accomplished by addressing traffic-oriented | |||
performance requirements while utilizing network resources without | performance requirements while utilizing network resources without | |||
excessive waste and in a reliable way. Traffic oriented performance | excessive waste and in a reliable way. Traffic-oriented performance | |||
measures include delay, delay variation, packet loss, and throughput. | measures include delay, delay variation, packet loss, and throughput. | |||
Internet TE responds to network events (such as link or node | Internet TE responds to network events (such as link or node | |||
failures, reported or predicted network congestion, planned | failures, reported or predicted network congestion, planned | |||
maintenance, service degradation, planned changes in the traffic | maintenance, service degradation, planned changes in the traffic | |||
matrix, etc.). Aspects of capacity management respond at intervals | matrix, etc.). Aspects of capacity management respond at intervals | |||
ranging from days to years. Routing control functions operate at | ranging from days to years. Routing control functions operate at | |||
intervals ranging from milliseconds to days. Packet level processing | intervals ranging from milliseconds to days. Packet-level processing | |||
functions operate at very fine levels of temporal resolution (up to | functions operate at very fine levels of temporal resolution (up to | |||
milliseconds) while reacting to statistical measures of the real-time | milliseconds) while reacting to statistical measures of the real-time | |||
behavior of traffic. | behavior of traffic. | |||
Thus, the optimization aspects of TE can be viewed from a control | Thus, the optimization aspects of TE can be viewed from a control | |||
perspective, and can be both proactive and reactive. In the | perspective and can be both proactive and reactive. In the proactive | |||
proactive case, the TE control system takes preventive action to | case, the TE control system takes preventive action to protect | |||
protect against predicted unfavorable future network states, for | against predicted unfavorable future network states, for example, by | |||
example, by engineering backup paths. It may also take action that | engineering backup paths. It may also take action that will lead to | |||
will lead to a more desirable future network state. In the reactive | a more desirable future network state. In the reactive case, the | |||
case, the control system responds to correct issues and adapt to | control system responds to correct issues and adapt to network | |||
network events, such as routing after failure. | events, such as routing after failure. | |||
Another important objective of Internet TE is to facilitate reliable | Another important objective of Internet TE is to facilitate reliable | |||
network operations [RFC2702]. Reliable network operations can be | network operations [RFC2702]. Reliable network operations can be | |||
facilitated by providing mechanisms that enhance network integrity | facilitated by providing mechanisms that enhance network integrity | |||
and by embracing policies emphasizing network survivability. This | and by embracing policies emphasizing network survivability. This | |||
reduces the vulnerability of services to outages arising from errors, | reduces the vulnerability of services to outages arising from errors, | |||
faults, and failures occurring within the network infrastructure. | faults, and failures occurring within the network infrastructure. | |||
The optimization aspects of TE can be achieved through capacity | The optimization aspects of TE can be achieved through capacity | |||
management and traffic management. In this document, capacity | management and traffic management. In this document, capacity | |||
management includes capacity planning, routing control, and resource | management includes capacity planning, routing control, and resource | |||
management. Network resources of particular interest include link | management. Network resources of particular interest include link | |||
bandwidth, buffer space, and computational resources. In this | bandwidth, buffer space, and computational resources. In this | |||
document, traffic management includes: | document, traffic management includes: | |||
1. Nodal traffic control functions such as traffic conditioning, | 1. Nodal traffic control functions, such as traffic conditioning, | |||
queue management, and scheduling. | queue management, and scheduling. | |||
2. Other functions that regulate the flow of traffic through the | 2. Other functions that regulate the flow of traffic through the | |||
network or that arbitrate access to network resources between | network or that arbitrate access to network resources between | |||
different packets or between different traffic flows. | different packets or between different traffic flows. | |||
One major challenge of Internet TE is the realization of automated | One major challenge of Internet TE is the realization of automated | |||
control capabilities that adapt quickly and cost effectively to | control capabilities that adapt quickly and cost-effectively to | |||
significant changes in network state, while still maintaining | significant changes in network state, while still maintaining | |||
stability of the network. Performance evaluation can assess the | stability of the network. Performance evaluation can assess the | |||
effectiveness of TE methods, and the results of this evaluation can | effectiveness of TE methods, and the results of this evaluation can | |||
be used to identify existing problems, guide network re-optimization, | be used to identify existing problems, guide network reoptimization, | |||
and aid in the prediction of potential future problems. However, | and aid in the prediction of potential future problems. However, | |||
this process can also be time consuming and may not be suitable to | this process can also be time-consuming and may not be suitable to | |||
act on short-lived changes in the network. | act on short-lived changes in the network. | |||
Performance evaluation can be achieved in many different ways. The | Performance evaluation can be achieved in many different ways. The | |||
most notable techniques include analytic methods, simulation, and | most notable techniques include analytic methods, simulation, and | |||
empirical methods based on measurements. | empirical methods based on measurements. | |||
Traffic engineering comes in two flavors: | Traffic engineering comes in two flavors: | |||
* A background process that constantly monitors traffic and network | * A background process that constantly monitors traffic and network | |||
conditions, and optimizes the use of resources to improve | conditions and optimizes the use of resources to improve | |||
performance. | performance. | |||
* A form of a pre-planned traffic distribution that is considered | * A form of a pre-planned traffic distribution that is considered | |||
optimal. | optimal. | |||
In the latter case, any deviation from the optimum distribution | In the latter case, any deviation from the optimum distribution | |||
(e.g., caused by a fiber cut) is reverted upon repair without further | (e.g., caused by a fiber cut) is reverted upon repair without further | |||
optimization. However, this form of TE relies upon the notion that | optimization. However, this form of TE relies upon the notion that | |||
the planned state of the network is optimal. Hence, in such a mode | the planned state of the network is optimal. Hence, there are two | |||
there are two levels of TE: the TE-planning task to enable optimum | levels of TE in such a mode: | |||
traffic distribution, and the routing and forwarding tasks that keep | ||||
traffic flows attached to the pre-planned distribution. | * The TE-planning task to enable optimum traffic distribution. | |||
* The routing and forwarding tasks that keep traffic flows attached | ||||
to the pre-planned distribution. | ||||
As a general rule, TE concepts and mechanisms must be sufficiently | As a general rule, TE concepts and mechanisms must be sufficiently | |||
specific and well-defined to address known requirements, but | specific and well-defined to address known requirements but | |||
simultaneously flexible and extensible to accommodate unforeseen | simultaneously flexible and extensible to accommodate unforeseen | |||
future demands (see Section 6.1). | future demands (see Section 6.1). | |||
1.2. Components of Traffic Engineering | 1.2. Components of Traffic Engineering | |||
As mentioned in Section 1.1, Internet traffic engineering provides | As mentioned in Section 1.1, Internet traffic engineering provides | |||
performance optimization of IP networks while utilizing network | performance optimization of IP networks while utilizing network | |||
resources economically and reliably. Such optimization is supported | resources economically and reliably. Such optimization is supported | |||
at the control/controller level and within the data/forwarding plane. | at the control/controller level and within the data/forwarding plane. | |||
The key elements required in any TE solution are as follows: | The key elements required in any TE solution are as follows: | |||
1. Policy | 1. Policy | |||
2. Path steering | 2. Path steering | |||
3. Resource management | 3. Resource management | |||
Some TE solutions rely on these elements to a lesser or greater | Some TE solutions rely on these elements to a lesser or greater | |||
extent. Debate remains about whether a solution can truly be called | extent. Debate remains about whether a solution can truly be called | |||
TE if it does not include all of these elements. For the sake of | "TE" if it does not include all of these elements. For the sake of | |||
this document, we assert that all TE solutions must include some | this document, we assert that all TE solutions must include some | |||
aspects of all of these elements. Other solutions can be classed as | aspects of all of these elements. Other solutions can be classed as | |||
"partial TE" and also fall in scope of this document. | "partial TE" and also fall in scope of this document. | |||
Policy allows for the selection of paths (including next hops) based | Policy allows for the selection of paths (including next hops) based | |||
on information beyond basic reachability. Early definitions of | on information beyond basic reachability. Early definitions of | |||
routing policy, e.g., [RFC1102] and [RFC1104], discuss routing policy | routing policy, e.g., [RFC1102] and [RFC1104], discuss routing policy | |||
being applied to restrict access to network resources at an aggregate | being applied to restrict access to network resources at an aggregate | |||
level. BGP is an example of a commonly used mechanism for applying | level. BGP is an example of a commonly used mechanism for applying | |||
such policies, see [RFC4271] and [RFC8955]. In the TE context, | such policies; see [RFC4271] and [RFC8955]. In the TE context, | |||
policy decisions are made within the control plane or by controllers | policy decisions are made within the control plane or by controllers | |||
in the management plane, and govern the selection of paths. Examples | in the management plane and govern the selection of paths. Examples | |||
can be found in [RFC4655] and [RFC5394]. TE solutions may cover the | can be found in [RFC4655] and [RFC5394]. TE solutions may cover the | |||
mechanisms to distribute and/or enforce policies, but definition of | mechanisms to distribute and/or enforce policies, but definition of | |||
specific policies is left to the network operator. | specific policies is left to the network operator. | |||
Path steering is the ability to forward packets using more | Path steering is the ability to forward packets using more | |||
information than just knowledge of the next hop. Examples of path | information than just knowledge of the next hop. Examples of path | |||
steering include IPv4 source routes [RFC0791], RSVP-TE explicit | steering include IPv4 source routes [RFC0791], RSVP-TE explicit | |||
routes [RFC3209], Segment Routing [RFC8402], and Service Function | routes [RFC3209], Segment Routing (SR) [RFC8402], and Service | |||
Chaining [RFC7665]. Path steering for TE can be supported via | Function Chaining [RFC7665]. Path steering for TE can be supported | |||
control plane protocols, by encoding in the data plane headers, or by | via control plane protocols, by encoding in the data plane headers, | |||
a combination of the two. This includes when control is provided by | or by a combination of the two. This includes when control is | |||
a controller using a network-facing control protocol. | provided by a controller using a network-facing control protocol. | |||
Resource management provides resource-aware control and forwarding. | Resource management provides resource-aware control and forwarding. | |||
Examples of resources are bandwidth, buffers, and queues, all of | Examples of resources are bandwidth, buffers, and queues, all of | |||
which can be managed to control loss and latency. | which can be managed to control loss and latency. | |||
* Resource reservation is the control aspect of resource management. | Resource reservation is the control aspect of resource management. | |||
It provides for domain-wide consensus about which network | It provides for domain-wide consensus about which network resources | |||
resources are used by a particular flow. This determination may | are used by a particular flow. This determination may be made at a | |||
be made at a very coarse or very fine level. Note that this | very coarse or very fine level. Note that this consensus exists at | |||
consensus exists at the network control or controller level, not | the network control or controller level but not within the data | |||
within the data plane. It may be composed purely of accounting/ | plane. It may be composed purely of accounting/bookkeeping, but it | |||
bookkeeping, but it typically includes an ability to admit, | typically includes an ability to admit, reject, or reclassify a flow | |||
reject, or reclassify a flow based on policy. Such accounting can | based on policy. Such accounting can be done based on any | |||
be done based on any combination of a static understanding of | combination of a static understanding of resource requirements and | |||
resource requirements, and the use of dynamic mechanisms to | the use of dynamic mechanisms to collect requirements (e.g., via | |||
collect requirements (e.g., via [RFC3209]) and resource | RSVP-TE [RFC3209]) and resource availability (e.g., via OSPF | |||
availability (e.g., via [RFC4203]). | extensions for GMPLS [RFC4203]). | |||
* Resource allocation is the data plane aspect of resource | Resource allocation is the data plane aspect of resource management. | |||
management. It provides for the allocation of specific node and | It provides for the allocation of specific node and link resources to | |||
link resources to specific flows. Example resources include | specific flows. Example resources include buffers, policing, and | |||
buffers, policing, and rate-shaping mechanisms that are typically | rate-shaping mechanisms that are typically supported via queuing. | |||
supported via queuing. It also includes the matching of a flow | Resource allocation also includes the matching of a flow (i.e., flow | |||
(i.e., flow classification) to a particular set of allocated | classification) to a particular set of allocated resources. The | |||
resources. The method of flow classification and granularity of | method of flow classification and granularity of resource management | |||
resource management is technology-specific. Examples include | is technology-specific. Examples include Diffserv with dropping and | |||
Diffserv with dropping and remarking [RFC4594], MPLS-TE [RFC3209], | remarking [RFC4594], MPLS-TE [RFC3209], GMPLS-based Label Switched | |||
and GMPLS based label switched paths [RFC3945], as well as | Paths (LSPs) [RFC3945], as well as controller-based solutions | |||
controller-based solutions [RFC8453]. This level of resource | [RFC8453]. This level of resource control, while optional, is | |||
control, while optional, is important in networks that wish to | important in networks that wish to support network congestion | |||
support network congestion management policies to control or | management policies to control or regulate the offered traffic to | |||
regulate the offered traffic to deliver different levels of | deliver different levels of service and alleviate network congestion | |||
service and alleviate network congestion problems, or those | problems. It is also important in networks that wish to control the | |||
networks that wish to control the latency experienced by specific | latency experienced by specific traffic flows. | |||
traffic flows. | ||||
1.3. Scope | 1.3. Scope | |||
The scope of this document is intra-domain TE because this is the | The scope of this document is intra-domain TE because this is the | |||
practical level of TE technology that exists in the Internet at the | practical level of TE technology that exists in the Internet at the | |||
time of writing. That is, it describes TE within a given autonomous | time of writing. That is, this document describes TE within a given | |||
system in the Internet. This document discusses concepts pertaining | AS in the Internet. This document discusses concepts pertaining to | |||
to intra-domain traffic control, including such issues as routing | intra-domain traffic control, including such issues as routing | |||
control, micro and macro resource allocation, and the control | control, micro and macro resource allocation, and control | |||
coordination problems that arise consequently. | coordination problems that arise consequently. | |||
This document describes and characterizes techniques already in use | This document describes and characterizes techniques already in use | |||
or in advanced development for Internet TE. The way these techniques | or in advanced development for Internet TE. The way these techniques | |||
fit together is discussed and scenarios in which they are useful will | fit together is discussed and scenarios in which they are useful are | |||
be identified. | identified. | |||
Although the emphasis in this document is on intra-domain traffic | Although the emphasis in this document is on intra-domain traffic | |||
engineering, an overview of the high-level considerations pertaining | engineering, an overview of the high-level considerations pertaining | |||
to inter-domain TE is provided in Section 7. Inter-domain Internet | to inter-domain TE is provided in Section 7. Inter-domain Internet | |||
TE is crucial to the performance enhancement of the world-wide | TE is crucial to the performance enhancement of the world-wide | |||
Internet infrastructure. | Internet infrastructure. | |||
Whenever possible, relevant requirements from existing IETF documents | Whenever possible, relevant requirements from existing IETF documents | |||
and other sources are incorporated by reference. | and other sources are incorporated by reference. | |||
1.4. Terminology | 1.4. Terminology | |||
This section provides terminology which is useful for Internet TE. | This section provides terminology that is useful for Internet TE. | |||
The definitions presented apply to this document. These terms may | The definitions presented apply to this document. These terms may | |||
have other meanings elsewhere. | have other meanings elsewhere. | |||
Busy hour: A one hour period within a specified interval of time | Busy hour: A one-hour period within a specified interval of time | |||
(typically 24 hours) in which the traffic load in a network or | (typically 24 hours) in which the traffic load in a network or | |||
sub-network is greatest. | sub-network is greatest. | |||
Congestion: A state of a network resource in which the traffic | Congestion: A state of a network resource in which the traffic | |||
incident on the resource exceeds its output capacity over an | incident on the resource exceeds its output capacity over an | |||
interval of time. A small amount of congestion may be beneficial | interval of time. A small amount of congestion may be beneficial | |||
to ensure that network resources are run at full capacity, and | to ensure that network resources are run at full capacity, and | |||
this may be particularly true at the network edge where it is | this may be particularly true at the network edge where it is | |||
desirable to ensure that user traffic is served as much as | desirable to ensure that user traffic is served as much as | |||
possible. Within the network, if congestion is allowed to build | possible. Within the network, if congestion is allowed to build | |||
(such as when input traffic exceeds output traffic in a sustained | (such as when input traffic exceeds output traffic in a sustained | |||
way) it will have a negative effect on user traffic. | way), it will have a negative effect on user traffic. | |||
Congestion avoidance: An approach to congestion management that | Congestion avoidance: An approach to congestion management that | |||
attempts to obviate the occurrence of congestion. Chiefly | attempts to obviate the occurrence of congestion. It is chiefly | |||
relevant to network congestion although may form a part of demand- | relevant to network congestion, although it may form a part of | |||
side congestion management. | demand-side congestion management. | |||
Congestion response: An approach to congestion management that | Congestion response: An approach to congestion management that | |||
attempts to remedy congestion problems that have already occurred. | attempts to remedy congestion problems that have already occurred. | |||
Constraint-based routing: A class of routing protocols that take | Constraint-based routing: A class of routing protocols that takes | |||
specified traffic attributes, network constraints, and policy | specified traffic attributes, network constraints, and policy | |||
constraints into account when making routing decisions. | constraints into account when making routing decisions. | |||
Constraint-based routing is applicable to traffic aggregates as | Constraint-based routing is applicable to traffic aggregates as | |||
well as flows. It is a generalization of QoS-based routing. | well as flows. It is a generalization of QoS-based routing. | |||
Demand-side congestion management: A congestion management scheme | Demand-side congestion management: A congestion management scheme | |||
that addresses congestion problems by regulating or conditioning | that addresses congestion problems by regulating or conditioning | |||
offered load. | the offered load. | |||
Effective bandwidth: The minimum amount of bandwidth that can be | Effective bandwidth: The minimum amount of bandwidth that can be | |||
assigned to a flow or traffic aggregate in order to deliver | assigned to a flow or traffic aggregate in order to deliver | |||
'acceptable service quality' to the flow or traffic aggregate. | "acceptable service quality" to the flow or traffic aggregate. | |||
See [KELLY] for a more mathematical definition. | See [KELLY] for a more mathematical definition. | |||
Egress node: The device (router) at which traffic leaves a network | Egress node: The device (router) at which traffic leaves a network | |||
toward a destination (host, server, etc.) or to another network. | toward a destination (host, server, etc.) or to another network. | |||
End-to-end: This term is context-dependent and often applies to the | End-to-end: This term is context-dependent and often applies to the | |||
life of a traffic flow from original source to final destination. | life of a traffic flow from original source to final destination. | |||
In contrast, edge-to-edge is often used to describe the traffic | In contrast, edge-to-edge is often used to describe the traffic | |||
flow from the entry to a domain or network, to the exit from that | flow from the entry of a domain or network to the exit of that | |||
domain or network. In some contexts, however, for example where | domain or network. However, in some contexts (for example, where | |||
there is a service interface between a network and the client of | there is a service interface between a network and the client of | |||
that network, or where a path traverses multiple domains under the | that network or where a path traverses multiple domains under the | |||
control of a single process, end-to-end is used to refer to the | control of a single process), end-to-end is used to refer to the | |||
full operation of the service that may be composed of concatenated | full operation of the service that may be composed of concatenated | |||
edge-to-edge operations. Thus, in the context of TE, the term | edge-to-edge operations. Thus, in the context of TE, the term | |||
end-to-end may refer to the full TE path, but not to the complete | "end-to-end" may refer to the full TE path but not to the complete | |||
path of the traffic from source application to ultimate | path of the traffic from source application to ultimate | |||
destination. | destination. | |||
Hot-spot: A network element or subsystem which is in a considerably | Hotspot: A network element or subsystem that is in a considerably | |||
higher state of congestion than others. | higher state of congestion than others. | |||
Ingress node: The device (router) at which traffic enters a network | Ingress node: The device (router) at which traffic enters a network | |||
from a source (host) or from another network. | from a source (host) or from another network. | |||
Metric: A parameter defined in terms of standard units of | Metric: A parameter defined in terms of standard units of | |||
measurement. | measurement. | |||
Measurement methodology: A repeatable measurement technique used to | Measurement methodology: A repeatable measurement technique used to | |||
derive one or more metrics of interest. | derive one or more metrics of interest. | |||
skipping to change at page 10, line 5 ¶ | skipping to change at line 434 ¶ | |||
or a specific link that is sufficiently extreme that it results in | or a specific link that is sufficiently extreme that it results in | |||
unacceptable queuing delay or packet loss. Network congestion can | unacceptable queuing delay or packet loss. Network congestion can | |||
negatively impact end-to-end or edge-to-edge traffic flows, so TE | negatively impact end-to-end or edge-to-edge traffic flows, so TE | |||
schemes may be deployed to balance traffic in the network and | schemes may be deployed to balance traffic in the network and | |||
deliver congestion avoidance. | deliver congestion avoidance. | |||
Network survivability: The capability to provide a prescribed level | Network survivability: The capability to provide a prescribed level | |||
of QoS for existing services after a given number of failures | of QoS for existing services after a given number of failures | |||
occur within the network. | occur within the network. | |||
Offered load: The offered load or offered traffic load is a measure | Offered load: Offered load is also sometimes called "offered traffic | |||
of the amount of traffic being presented to be carried across a | load". It is a measure of the amount of traffic being presented | |||
network compared to the capacity of the network to carry it. This | to be carried across a network compared to the capacity of the | |||
term derives from queuing theory and an offered load of 1 | network to carry it. This term derives from queuing theory, and | |||
indicates that the network can carry, but only just manage to | an offered load of 1 indicates that the network can carry, but | |||
carry, all of the traffic presented to it. | only just manage to carry, all of the traffic presented to it. | |||
Offline traffic engineering: A traffic engineering system that | Offline traffic engineering: A traffic engineering system that | |||
exists outside of the network. | exists outside of the network. | |||
Online traffic engineering: A traffic engineering system that exists | Online traffic engineering: A traffic-engineering system that exists | |||
within the network, typically implemented on or as adjuncts to | within the network, typically implemented on or as adjuncts to | |||
operational network elements. | operational network elements. | |||
Performance measures: Metrics that provide quantitative or | Performance measures: Metrics that provide quantitative or | |||
qualitative measures of the performance of systems or subsystems | qualitative measures of the performance of systems or subsystems | |||
of interest. | of interest. | |||
Performance metric: A performance parameter defined in terms of | Performance metric: A performance parameter defined in terms of | |||
standard units of measurement. | standard units of measurement. | |||
Provisioning: The process of assigning or configuring network | Provisioning: The process of assigning or configuring network | |||
resources to meet certain requests. | resources to meet certain requests. | |||
Quality of Service (QoS): QoS ([RFC3198]) refers to the mechanisms | Quality of Service (QoS): QoS [RFC3198] refers to the mechanisms | |||
used within a network to achieve specific goals for the delivery | used within a network to achieve specific goals for the delivery | |||
of traffic for a particular service according to the parameters | of traffic for a particular service according to the parameters | |||
specified in a Service Level Agreement. "Quality" is | specified in a Service Level Agreement. "Quality" is | |||
characterized by service availability, delay, jitter, throughput | characterized by service availability, delay, jitter, throughput, | |||
and packet loss ratio. At a network resource level, "Quality of | and packet loss ratio. At a network resource level, "Quality of | |||
Service" refers to a set of capabilities that allow a service | Service" refers to a set of capabilities that allow a service | |||
provider to prioritize traffic, control bandwidth, and network | provider to prioritize traffic, control bandwidth, and network | |||
latency. | latency. | |||
QoS routing: Class of routing systems that selects paths to be used | QoS routing: Class of routing systems that selects paths to be used | |||
by a flow based on the QoS requirements of the flow. | by a flow based on the QoS requirements of the flow. | |||
Service Level Agreement (SLA): A contract between a provider and a | Service Level Agreement (SLA): A contract between a provider and a | |||
customer that guarantees specific levels of performance and | customer that guarantees specific levels of performance and | |||
reliability at a certain cost. | reliability at a certain cost. | |||
Service Level Objective (SLO): A key element of an SLA between a | Service Level Objective (SLO): A key element of an SLA between a | |||
provider and a customer. SLOs are agreed upon as a means of | provider and a customer. SLOs are agreed upon as a means of | |||
measuring the performance of the Service Provider and are outlined | measuring the performance of the service provider and are outlined | |||
as a way of avoiding disputes between the two parties based on | as a way of avoiding disputes between the two parties based on | |||
misunderstanding. | misunderstanding. | |||
Stability: An operational state in which a network does not | Stability: An operational state in which a network does not | |||
oscillate in a disruptive manner from one mode to another mode. | oscillate in a disruptive manner from one mode to another mode. | |||
Supply-side congestion management: A congestion management scheme | Supply-side congestion management: A congestion management scheme | |||
that provisions additional network resources to address existing | that provisions additional network resources to address existing | |||
and/or anticipated congestion problems. | and/or anticipated congestion problems. | |||
Traffic characteristic: A description of the temporal behavior or a | Traffic characteristic: A description of the temporal behavior or a | |||
description of the attributes of a given traffic flow or traffic | description of the attributes of a given traffic flow or traffic | |||
aggregate. | aggregate. | |||
Traffic engineering system: A collection of objects, mechanisms, and | Traffic-engineering system: A collection of objects, mechanisms, and | |||
protocols that are used together to accomplish traffic engineering | protocols that are used together to accomplish traffic-engineering | |||
objectives. | objectives. | |||
Traffic flow: A stream of packets between two end-points that can be | Traffic flow: A stream of packets between two endpoints that can be | |||
characterized in a certain way. A common classification for a | characterized in a certain way. A common classification for a | |||
traffic flow selects packets with the "five-tuple" of source and | traffic flow selects packets with the five-tuple of source and | |||
destination addresses, source and destination ports, and protocol | destination addresses, source and destination ports, and protocol | |||
ID. Flows may be very small and transient, ranging to very large. | ID. Flows may be very small and transient, ranging to very large. | |||
The TE techniques described in this document are likely to be more | The TE techniques described in this document are likely to be more | |||
effective when applied to large flows. Traffic flows may be | effective when applied to large flows. Traffic flows may be | |||
aggregated and treated as a single unit in some forms of TE making | aggregated and treated as a single unit in some forms of TE, | |||
it possible to apply TE to the smaller flows that comprise the | making it possible to apply TE to the smaller flows that comprise | |||
aggregate. | the aggregate. | |||
Traffic mapping: Traffic mapping is the assignment of traffic | Traffic mapping: Traffic mapping is the assignment of traffic | |||
workload onto (pre- established) paths to meet certain | workload onto (pre-established) paths to meet certain | |||
requirements. | requirements. | |||
Traffic matrix: A representation of the traffic demand between a set | Traffic matrix: A representation of the traffic demand between a set | |||
of origin and destination abstract nodes. An abstract node can | of origin and destination abstract nodes. An abstract node can | |||
consist of one or more network elements. | consist of one or more network elements. | |||
Traffic monitoring: The process of observing traffic characteristics | Traffic monitoring: The process of observing traffic characteristics | |||
at a given point in a network and collecting the traffic | at a given point in a network and collecting the traffic | |||
information for analysis and further action. | information for analysis and further action. | |||
Traffic trunk: An aggregation of traffic flows belonging to the same | Traffic trunk: An aggregation of traffic flows belonging to the same | |||
class which are forwarded through a common path. A traffic trunk | class that are forwarded through a common path. A traffic trunk | |||
may be characterized by an ingress and egress node, and a set of | may be characterized by an ingress and egress node and a set of | |||
attributes which determine its behavioral characteristics and | attributes that determine its behavioral characteristics and | |||
requirements from the network. | requirements from the network. | |||
Workload: The workload or traffic workload is an evaluation of the | Workload: Workload is also sometimes called "traffic workload". It | |||
amount of work that must be done in a network in order to | is an evaluation of the amount of work that must be done in a | |||
facilitate the traffic demand. Colloquially, it is the answer to, | network in order to facilitate the traffic demand. Colloquially, | |||
"How busy is the network?" | it is the answer to, "How busy is the network?" | |||
2. Background | 2. Background | |||
The Internet aims to convey IP packets from ingress nodes to egress | The Internet aims to convey IP packets from ingress nodes to egress | |||
nodes efficiently, expeditiously, and economically. Furthermore, in | nodes efficiently, expeditiously, and economically. Furthermore, in | |||
a multiclass service environment (e.g., Diffserv capable networks - | a multi-class service environment (e.g., Diffserv capable networks; | |||
see Section 5.1.1.2), the resource sharing parameters of the network | see Section 5.1.1.2), the resource-sharing parameters of the network | |||
must be appropriately determined and configured according to | must be appropriately determined and configured according to | |||
prevailing policies and service models to resolve resource contention | prevailing policies and service models to resolve resource contention | |||
issues arising from mutual interference between packets traversing | issues arising from mutual interference between packets traversing | |||
the network. Thus, consideration must be given to resolving | the network. Thus, consideration must be given to resolving | |||
competition for network resources between traffic flows belonging to | competition for network resources between traffic flows belonging to | |||
the same service class (intra-class contention resolution) and | the same service class (intra-class contention resolution) and | |||
traffic flows belonging to different classes (inter-class contention | traffic flows belonging to different classes (inter-class contention | |||
resolution). | resolution). | |||
2.1. Context of Internet Traffic Engineering | 2.1. Context of Internet Traffic Engineering | |||
The context of Internet traffic engineering includes the following | The context of Internet traffic engineering includes the following | |||
sub-contexts: | sub-contexts: | |||
1. A network domain context that defines the scope under | 1. A network domain context that defines the scope under | |||
consideration, and in particular the situations in which the TE | consideration and, in particular, the situations in which the TE | |||
problems occur. The network domain context includes network | problems occur. The network domain context includes network | |||
structure, policies, characteristics, constraints, quality | structure, policies, characteristics, constraints, quality | |||
attributes, and optimization criteria. | attributes, and optimization criteria. | |||
2. A problem context defining the general and concrete issues that | 2. A problem context defining the general and concrete issues that | |||
TE addresses. The problem context includes identification, | TE addresses. The problem context includes identification, | |||
abstraction of relevant features, representation, formulation, | abstraction of relevant features, representation, formulation, | |||
specification of the requirements on the solution space, and | specification of the requirements on the solution space, and | |||
specification of the desirable features of acceptable solutions. | specification of the desirable features of acceptable solutions. | |||
skipping to change at page 13, line 8 ¶ | skipping to change at line 577 ¶ | |||
4. An implementation and operational context in which the solutions | 4. An implementation and operational context in which the solutions | |||
are instantiated. The implementation and operational context | are instantiated. The implementation and operational context | |||
includes planning, organization, and execution. | includes planning, organization, and execution. | |||
The context of Internet TE and the different problem scenarios are | The context of Internet TE and the different problem scenarios are | |||
discussed in the following subsections. | discussed in the following subsections. | |||
2.2. Network Domain Context | 2.2. Network Domain Context | |||
IP networks range in size from small clusters of routers situated | IP networks range in size from small clusters of routers situated | |||
within a given location, to thousands of interconnected routers, | within a given location to thousands of interconnected routers, | |||
switches, and other components distributed all over the world. | switches, and other components distributed all over the world. | |||
At the most basic level of abstraction, an IP network can be | At the most basic level of abstraction, an IP network can be | |||
represented as a distributed dynamic system consisting of: | represented as a distributed dynamic system consisting of: | |||
* a set of interconnected resources which provide transport services | * a set of interconnected resources that provide transport services | |||
for IP traffic subject to certain constraints | for IP traffic subject to certain constraints | |||
* a demand system representing the offered load to be transported | * a demand system representing the offered load to be transported | |||
through the network | through the network | |||
* a response system consisting of network processes, protocols, and | * a response system consisting of network processes, protocols, and | |||
related mechanisms which facilitate the movement of traffic | related mechanisms that facilitate the movement of traffic through | |||
through the network (see also [AWD2]). | the network (see also [AWD2]) | |||
The network elements and resources may have specific characteristics | The network elements and resources may have specific characteristics | |||
restricting the manner in which the traffic demand is handled. | restricting the manner in which the traffic demand is handled. | |||
Additionally, network resources may be equipped with traffic control | Additionally, network resources may be equipped with traffic control | |||
mechanisms managing the way in which the demand is serviced. Traffic | mechanisms managing the way in which the demand is serviced. Traffic | |||
control mechanisms may be used to: | control mechanisms may be used to: | |||
* control packet processing activities within a given resource | * control packet processing activities within a given resource | |||
* arbitrate contention for access to the resource by different | * arbitrate contention for access to the resource by different | |||
packets | packets | |||
* regulate traffic behavior through the resource. | * regulate traffic behavior through the resource | |||
A configuration management and provisioning system may allow the | A configuration management and provisioning system may allow the | |||
settings of the traffic control mechanisms to be manipulated by | settings of the traffic control mechanisms to be manipulated by | |||
external or internal entities in order to exercise control over the | external or internal entities in order to exercise control over the | |||
way in which the network elements respond to internal and external | way in which the network elements respond to internal and external | |||
stimuli. | stimuli. | |||
The details of how the network carries packets are specified in the | The details of how the network carries packets are specified in the | |||
policies of the network administrators and are installed through | policies of the network administrators and are installed through | |||
network configuration management and policy-based provisioning | network configuration management and policy-based provisioning | |||
systems. Generally, the types of service provided by the network | systems. Generally, the types of service provided by the network | |||
also depend upon the technology and characteristics of the network | also depend upon the technology and characteristics of the network | |||
elements and protocols, the prevailing service and utility models, | elements and protocols, the prevailing service and utility models, | |||
and the ability of the network administrators to translate policies | and the ability of the network administrators to translate policies | |||
into network configurations. | into network configurations. | |||
Internet networks have two significant characteristics: | Internet networks have two significant characteristics: | |||
* they provide real-time services | * They provide real-time services. | |||
* their operating environments are very dynamic. | * Their operating environments are very dynamic. | |||
The dynamic characteristics of IP and IP/MPLS networks can be | The dynamic characteristics of IP and IP/MPLS networks can be | |||
attributed in part to fluctuations in demand, to the interaction | attributed in part to fluctuations in demand, the interaction between | |||
between various network protocols and processes, to the rapid | various network protocols and processes, the rapid evolution of the | |||
evolution of the infrastructure which demands the constant inclusion | infrastructure that demands the constant inclusion of new | |||
of new technologies and new network elements, and to transient and | technologies and new network elements, and the transient and | |||
persistent faults which occur within the system. | persistent faults that occur within the system. | |||
Packets contend for the use of network resources as they are conveyed | Packets contend for the use of network resources as they are conveyed | |||
through the network. A network resource is considered to be | through the network. A network resource is considered to be | |||
congested if, for an interval of time, the arrival rate of packets | congested if, for an interval of time, the arrival rate of packets | |||
exceeds the output capacity of the resource. Network congestion may | exceeds the output capacity of the resource. Network congestion may | |||
result in some of the arriving packets being delayed or even dropped. | result in some of the arriving packets being delayed or even dropped. | |||
Network congestion increases transit delay and delay variation, may | Network congestion increases transit delay and delay variation, may | |||
lead to packet loss, and reduces the predictability of network | lead to packet loss, and reduces the predictability of network | |||
services. Clearly, while congestion may be a useful tool at ingress | services. Clearly, while congestion may be a useful tool at ingress | |||
edge nodes, network congestion is highly undesirable. Combating | edge nodes, network congestion is highly undesirable. Combating | |||
network congestion at a reasonable cost is a major objective of | network congestion at a reasonable cost is a major objective of | |||
Internet TE although it may need to be traded with other objectives | Internet TE, although it may need to be traded with other objectives | |||
to keep the costs reasonable. | to keep the costs reasonable. | |||
Efficient sharing of network resources by multiple traffic flows is a | Efficient sharing of network resources by multiple traffic flows is a | |||
basic operational premise for the Internet. A fundamental challenge | basic operational premise for the Internet. A fundamental challenge | |||
in network operation is to increase resource utilization while | in network operation is to increase resource utilization while | |||
minimizing the possibility of congestion. | minimizing the possibility of congestion. | |||
The Internet has to function in the presence of different classes of | The Internet has to function in the presence of different classes of | |||
traffic with different service requirements. This requirement is | traffic with different service requirements. This requirement is | |||
clarified in the architecture for Differentiated Services (Diffserv) | clarified in the architecture for Differentiated Services (Diffserv) | |||
skipping to change at page 14, line 51 ¶ | skipping to change at line 669 ¶ | |||
Delivery requirements of a specific set of packets may be specified | Delivery requirements of a specific set of packets may be specified | |||
explicitly or implicitly. Two of the most important traffic delivery | explicitly or implicitly. Two of the most important traffic delivery | |||
requirements are: | requirements are: | |||
* Capacity constraints can be expressed statistically as peak rates, | * Capacity constraints can be expressed statistically as peak rates, | |||
mean rates, burst sizes, or as some deterministic notion of | mean rates, burst sizes, or as some deterministic notion of | |||
effective bandwidth. | effective bandwidth. | |||
* QoS requirements can be expressed in terms of: | * QoS requirements can be expressed in terms of: | |||
- integrity constraints such as packet loss | - integrity constraints, such as packet loss | |||
- temporal constraints such as timing restrictions for the | ||||
- temporal constraints, such as timing restrictions for the | ||||
delivery of each packet (delay) and timing restrictions for the | delivery of each packet (delay) and timing restrictions for the | |||
delivery of consecutive packets belonging to the same traffic | delivery of consecutive packets belonging to the same traffic | |||
stream (delay variation). | stream (delay variation) | |||
2.3. Problem Context | 2.3. Problem Context | |||
There are several problems associated with operating a network | There are several problems associated with operating a network like | |||
described in the previous section. This section analyzes the problem | those described in the previous section. This section analyzes the | |||
context in relation to TE. The identification, abstraction, | problem context in relation to TE. The identification, abstraction, | |||
representation, and measurement of network features relevant to TE | representation, and measurement of network features relevant to TE | |||
are significant issues. | are significant issues. | |||
A particular challenge is to formulate the problems that traffic | A particular challenge is to formulate the problems that traffic | |||
engineering attempts to solve. For example: | engineering attempts to solve. For example: | |||
* How to identify the requirements on the solution space? | * How to identify the requirements on the solution space | |||
* How to specify the desirable features of solutions? | * How to specify the desirable features of solutions | |||
* How to actually solve the problems? | * How to actually solve the problems | |||
* How to measure and characterize the effectiveness of solutions? | * How to measure and characterize the effectiveness of solutions | |||
Another class of problems is how to measure and estimate relevant | Another class of problems is how to measure and estimate relevant | |||
network state parameters. Effective TE relies on a good estimate of | network state parameters. Effective TE relies on a good estimate of | |||
the offered traffic load as well as a view of the underlying topology | the offered traffic load as well as a view of the underlying topology | |||
and associated resource constraints. Offline planning requires a | and associated resource constraints. Offline planning requires a | |||
full view of the topology of the network or partial network that is | full view of the topology of the network or partial network that is | |||
being planned. | being planned. | |||
Still another class of problem is how to characterize the state of | Still another class of problem is how to characterize the state of | |||
the network and how to evaluate its performance. The performance | the network and how to evaluate its performance. The performance | |||
evaluation problem is two-fold: one aspect relates to the evaluation | evaluation problem is two-fold: one aspect relates to the evaluation | |||
of the system-level performance of the network; the other aspect | of the system-level performance of the network, and the other aspect | |||
relates to the evaluation of resource-level performance, which | relates to the evaluation of resource-level performance, which | |||
restricts attention to the performance analysis of individual network | restricts attention to the performance analysis of individual network | |||
resources. | resources. | |||
In this document, we refer to the system-level characteristics of the | In this document, we refer to the system-level characteristics of the | |||
network as the "macro-states" and the resource-level characteristics | network as the "macro-states" and the resource-level characteristics | |||
as the "micro-states." The system-level characteristics are also | as the "micro-states." The system-level characteristics are also | |||
known as the emergent properties of the network. Correspondingly, we | known as the emergent properties of the network. Correspondingly, we | |||
refer to the TE schemes dealing with network performance optimization | refer to the TE schemes dealing with network performance optimization | |||
at the systems level as "macro-TE" and the schemes that optimize at | at the systems level as "macro-TE" and the schemes that optimize at | |||
skipping to change at page 16, line 22 ¶ | skipping to change at line 727 ¶ | |||
circumstances, the system-level performance can be derived from the | circumstances, the system-level performance can be derived from the | |||
resource-level performance using appropriate rules of composition, | resource-level performance using appropriate rules of composition, | |||
depending upon the particular performance measures of interest. | depending upon the particular performance measures of interest. | |||
Another fundamental class of problem concerns how to effectively | Another fundamental class of problem concerns how to effectively | |||
optimize network performance. Performance optimization may entail | optimize network performance. Performance optimization may entail | |||
translating solutions for specific TE problems into network | translating solutions for specific TE problems into network | |||
configurations. Optimization may also entail some degree of resource | configurations. Optimization may also entail some degree of resource | |||
management control, routing control, and capacity augmentation. | management control, routing control, and capacity augmentation. | |||
2.3.1. Congestion and its Ramifications | 2.3.1. Congestion and Its Ramifications | |||
Network congestion is one of the most significant problems in an | Network congestion is one of the most significant problems in an | |||
operational IP context. A network element is said to be congested if | operational IP context. A network element is said to be congested if | |||
it experiences sustained overload over an interval of time. Although | it experiences sustained overload over an interval of time. Although | |||
congestion at the edge of the network may be beneficial in ensuring | congestion at the edge of the network may be beneficial in ensuring | |||
that the network delivers as much traffic as possible, network | that the network delivers as much traffic as possible, network | |||
congestion almost always results in degradation of service quality to | congestion almost always results in degradation of service quality to | |||
end users. Congestion avoidance and response schemes can include | end users. Congestion avoidance and response schemes can include | |||
demand-side policies and supply-side policies. Demand-side policies | demand-side policies and supply-side policies. Demand-side policies | |||
may restrict access to congested resources or dynamically regulate | may restrict access to congested resources or dynamically regulate | |||
the demand to alleviate the overload situation. Supply-side policies | the demand to alleviate the overload situation. Supply-side policies | |||
may expand or augment network capacity to better accommodate offered | may expand or augment network capacity to better accommodate offered | |||
traffic. Supply-side policies may also re-allocate network resources | traffic. Supply-side policies may also reallocate network resources | |||
by redistributing traffic over the infrastructure. Traffic | by redistributing traffic over the infrastructure. Traffic | |||
redistribution and resource re-allocation serve to increase the | redistribution and resource reallocation serve to increase the | |||
'effective capacity' of the network. | effective capacity of the network. | |||
The emphasis of this document is primarily on congestion management | The emphasis of this document is primarily on congestion management | |||
schemes falling within the scope of the network, rather than on | schemes falling within the scope of the network, rather than on | |||
congestion management systems dependent upon sensitivity and | congestion management systems dependent upon sensitivity and | |||
adaptivity from end-systems. That is, the aspects that are | adaptivity from end systems. That is, the aspects that are | |||
considered in this document with respect to congestion management are | considered in this document with respect to congestion management are | |||
those solutions that can be provided by control entities operating on | those solutions that can be provided by control entities operating on | |||
the network and by the actions of network administrators and network | the network and by the actions of network administrators and network | |||
operations systems. | operations systems. | |||
2.4. Solution Context | 2.4. Solution Context | |||
The solution context for Internet TE involves analysis, evaluation of | The solution context for Internet TE involves analysis, evaluation of | |||
alternatives, and choice between alternative courses of action. | alternatives, and choice between alternative courses of action. | |||
Generally, the solution context is based on making inferences about | Generally, the solution context is based on making inferences about | |||
the current or future state of the network, and making decisions that | the current or future state of the network and making decisions that | |||
may involve a preference between alternative sets of action. More | may involve a preference between alternative sets of action. More | |||
specifically, the solution context demands reasonable estimates of | specifically, the solution context demands reasonable estimates of | |||
traffic workload, characterization of network state, derivation of | traffic workload, characterization of network state, derivation of | |||
solutions which may be implicitly or explicitly formulated, and | solutions that may be implicitly or explicitly formulated, and | |||
possibly instantiating a set of control actions. Control actions may | possibly instantiation of a set of control actions. Control actions | |||
involve the manipulation of parameters associated with routing, | may involve the manipulation of parameters associated with routing, | |||
control over tactical capacity acquisition, and control over the | control over tactical capacity acquisition, and control over the | |||
traffic management functions. | traffic management functions. | |||
The following list of instruments may be applicable to the solution | The following list of instruments may be applicable to the solution | |||
context of Internet TE. | context of Internet TE: | |||
* A set of policies, objectives, and requirements (which may be | * A set of policies, objectives, and requirements (which may be | |||
context dependent) for network performance evaluation and | context dependent) for network performance evaluation and | |||
performance optimization. | performance optimization. | |||
* A collection of online and in some cases possibly offline tools | * A collection of online and, in some cases, possibly offline tools | |||
and mechanisms for measurement, characterization, modeling, and | and mechanisms for measurement, characterization, modeling, | |||
control of traffic, and control over the placement and allocation | control of traffic, control over the placement and allocation of | |||
of network resources, as well as control over the mapping or | network resources, as well as control over the mapping or | |||
distribution of traffic onto the infrastructure. | distribution of traffic onto the infrastructure. | |||
* A set of constraints on the operating environment, the network | * A set of constraints on the operating environment, the network | |||
protocols, and the TE system itself. | protocols, and the TE system itself. | |||
* A set of quantitative and qualitative techniques and methodologies | * A set of quantitative and qualitative techniques and methodologies | |||
for abstracting, formulating, and solving TE problems. | for abstracting, formulating, and solving TE problems. | |||
* A set of administrative control parameters which may be | * A set of administrative control parameters that may be manipulated | |||
manipulated through a configuration management system. Such a | through a configuration management system. Such a system may | |||
system may, itself, include a configuration control subsystem, a | itself include a configuration control subsystem, a configuration | |||
configuration repository, a configuration accounting subsystem, | repository, a configuration accounting subsystem, and a | |||
and a configuration auditing subsystem. | configuration auditing subsystem. | |||
* A set of guidelines for network performance evaluation, | * A set of guidelines for network performance evaluation, | |||
performance optimization, and performance improvement. | performance optimization, and performance improvement. | |||
Determining traffic characteristics through measurement or estimation | Determining traffic characteristics through measurement or estimation | |||
is very useful within the realm of the TE solution space. Traffic | is very useful within the realm of the TE solution space. Traffic | |||
estimates can be derived from customer subscription information, | estimates can be derived from customer subscription information, | |||
traffic projections, traffic models, and from actual measurements. | traffic projections, traffic models, and actual measurements. The | |||
The measurements may be performed at different levels, e.g., at the | measurements may be performed at different levels, e.g., at the | |||
traffic-aggregate level or at the flow level. Measurements at the | traffic-aggregate level or at the flow level. Measurements at the | |||
flow level or on small traffic aggregates may be performed at edge | flow level or on small traffic aggregates may be performed at edge | |||
nodes, when traffic enters and leaves the network. Measurements for | nodes, when traffic enters and leaves the network. Measurements for | |||
large traffic-aggregates may be performed within the core of the | large traffic aggregates may be performed within the core of the | |||
network. | network. | |||
To conduct performance studies and to support planning of existing | To conduct performance studies and to support planning of existing | |||
and future networks, a routing analysis may be performed to determine | and future networks, a routing analysis may be performed to determine | |||
the paths the routing protocols will choose for various traffic | the paths the routing protocols will choose for various traffic | |||
demands, and to ascertain the utilization of network resources as | demands and to ascertain the utilization of network resources as | |||
traffic is routed through the network. Routing analysis captures the | traffic is routed through the network. Routing analysis captures the | |||
selection of paths through the network, the assignment of traffic | selection of paths through the network, the assignment of traffic | |||
across multiple feasible routes, and the multiplexing of IP traffic | across multiple feasible routes, and the multiplexing of IP traffic | |||
over traffic trunks (if such constructs exist) and over the | over traffic trunks (if such constructs exist) and over the | |||
underlying network infrastructure. A model of network topology is | underlying network infrastructure. A model of network topology is | |||
necessary to perform routing analysis. A network topology model may | necessary to perform routing analysis. A network topology model may | |||
be extracted from: | be extracted from: | |||
* network architecture documents | * network architecture documents | |||
* network designs | * network designs | |||
* information contained in router configuration files | * information contained in router configuration files | |||
* routing databases such as the link state database of an interior | * routing databases such as the link-state database of an Interior | |||
gateway protocol (IGP) | Gateway Protocol (IGP) | |||
* routing tables | * routing tables | |||
* automated tools that discover and collate network topology | * automated tools that discover and collate network topology | |||
information. | information | |||
Topology information may also be derived from servers that monitor | Topology information may also be derived from servers that monitor | |||
network state, and from servers that perform provisioning functions. | network state and from servers that perform provisioning functions. | |||
Routing in operational IP networks can be administratively controlled | Routing in operational IP networks can be administratively controlled | |||
at various levels of abstraction including the manipulation of BGP | at various levels of abstraction, including the manipulation of BGP | |||
attributes and IGP metrics. For path-oriented technologies such as | attributes and IGP metrics. For path-oriented technologies such as | |||
MPLS, routing can be further controlled by the manipulation of | MPLS, routing can be further controlled by the manipulation of | |||
relevant TE parameters, resource parameters, and administrative | relevant TE parameters, resource parameters, and administrative | |||
policy constraints. Within the context of MPLS, the path of an | policy constraints. Within the context of MPLS, the path of an | |||
explicitly routed label switched path (LSP) can be computed and | explicitly routed LSP can be computed and established in various | |||
established in various ways including: | ways, including: | |||
* manually | * manually | |||
* automatically, online using constraint-based routing processes | * automatically and online using constraint-based routing processes | |||
implemented on label switching routers | implemented on Label Switching Routers (LSRs) | |||
* automatically, offline using constraint-based routing entities | * automatically and offline using constraint-based routing entities | |||
implemented on external TE support systems. | implemented on external TE support systems | |||
2.4.1. Combating the Congestion Problem | 2.4.1. Combating the Congestion Problem | |||
Minimizing congestion is a significant aspect of Internet traffic | Minimizing congestion is a significant aspect of Internet traffic | |||
engineering. This subsection gives an overview of the general | engineering. This subsection gives an overview of the general | |||
approaches that have been used or proposed to combat congestion. | approaches that have been used or proposed to combat congestion. | |||
Congestion management policies can be categorized based upon the | Congestion management policies can be categorized based upon the | |||
following criteria (see [YARE95] for a more detailed taxonomy of | following criteria (see [YARE95] for a more detailed taxonomy of | |||
congestion control schemes): | congestion control schemes): | |||
1. Congestion Management Based on Response Timescales | 1. Congestion Management Based on Response Timescales | |||
* Long (weeks to months): Expanding network capacity by adding | * Long (weeks to months): Expanding network capacity by adding | |||
new equipment, routers, and links takes time and is | new equipment, routers, and links takes time and is | |||
comparatively costly. Capacity planning needs to take this | comparatively costly. Capacity planning needs to take this | |||
into consideration. Network capacity is expanded based on | into consideration. Network capacity is expanded based on | |||
estimates or forecasts of future traffic development and | estimates or forecasts of future traffic development and | |||
traffic distribution. These upgrades are typically carried | traffic distribution. These upgrades are typically carried | |||
out over weeks or months, or maybe even years. | out over weeks, months, or maybe even years. | |||
* Medium (minutes to days): Several control policies fall within | * Medium (minutes to days): Several control policies fall within | |||
the medium timescale category. Examples include: | the medium timescale category. Examples include: | |||
a. Adjusting routing protocol parameters to route traffic | a. Adjusting routing protocol parameters to route traffic | |||
away from or towards certain segments of the network. | away from or towards certain segments of the network. | |||
b. Setting up or adjusting explicitly routed LSPs in MPLS | b. Setting up or adjusting explicitly routed LSPs in MPLS | |||
networks to route traffic trunks away from possibly | networks to route traffic trunks away from possibly | |||
congested resources or toward possibly more favorable | congested resources or toward possibly more favorable | |||
routes. | routes. | |||
c. Re-configuring the logical topology of the network to make | c. Reconfiguring the logical topology of the network to make | |||
it correlate more closely with the spatial traffic | it correlate more closely with the spatial traffic | |||
distribution using, for example, an underlying path- | distribution using, for example, an underlying path- | |||
oriented technology such as MPLS LSPs or optical channel | oriented technology such as MPLS LSPs or optical channel | |||
trails. | trails. | |||
When these schemes are adaptive, they rely on measurement | When these schemes are adaptive, they rely on measurement | |||
systems. A measurement system monitors changes in traffic | systems. A measurement system monitors changes in traffic | |||
distribution, traffic loads, and network resource utilization | distribution, traffic loads, and network resource utilization | |||
and then provides feedback to the online or offline TE | and then provides feedback to the online or offline TE | |||
mechanisms and tools so that they can trigger control actions | mechanisms and tools so that they can trigger control actions | |||
within the network. The TE mechanisms and tools can be | within the network. The TE mechanisms and tools can be | |||
implemented in a distributed or centralized fashion. A | implemented in a distributed or centralized fashion. A | |||
centralized scheme may have full visibility into the network | centralized scheme may have full visibility into the network | |||
state and may produce more optimal solutions. However, | state and may produce more optimal solutions. However, | |||
centralized schemes are prone to single points of failure and | centralized schemes are prone to single points of failure and | |||
may not scale as well as distributed schemes. Moreover, the | may not scale as well as distributed schemes. Moreover, the | |||
information utilized by a centralized scheme may be stale and | information utilized by a centralized scheme may be stale and | |||
might not reflect the actual state of the network. It is not | might not reflect the actual state of the network. It is not | |||
an objective of this document to make a recommendation between | an objective of this document to make a recommendation between | |||
distributed and centralized schemes: that is a choice that | distributed and centralized schemes; that is a choice that | |||
network administrators must make based on their specific | network administrators must make based on their specific | |||
needs. | needs. | |||
* Short (minutes or less): This category includes packet level | * Short (minutes or less): This category includes packet-level | |||
processing functions and events that are recorded on the order | processing functions and events that are recorded on the order | |||
of several round-trip times. It also includes router | of several round-trip times. It also includes router | |||
mechanisms such as passive and active buffer management. All | mechanisms such as passive and active buffer management. All | |||
of these mechanisms are used to control congestion or signal | of these mechanisms are used to control congestion or signal | |||
congestion to end systems so that they can adaptively regulate | congestion to end systems so that they can adaptively regulate | |||
the rate at which traffic is injected into the network. A | the rate at which traffic is injected into the network. A | |||
well-known active queue management scheme, especially for | well-known active queue management scheme, especially for | |||
responsive traffic such as TCP, is Random Early Detection | responsive traffic such as TCP, is Random Early Detection | |||
(RED) [FLJA93]. During congestion (but before the queue is | (RED) [FLJA93]. During congestion (but before the queue is | |||
filled), the RED scheme chooses arriving packets to "mark" | filled), the RED scheme chooses arriving packets to "mark" | |||
according to a probabilistic algorithm which takes into | according to a probabilistic algorithm that takes into account | |||
account the average queue size. A router that does not | the average queue size. A router that does not utilize | |||
utilize explicit congestion notification (ECN) [RFC3168] can | Explicit Congestion Notification (ECN) [RFC3168] can simply | |||
simply drop marked packets to alleviate congestion and | drop marked packets to alleviate congestion and implicitly | |||
implicitly notify the receiver about the congestion. On the | notify the receiver about the congestion. On the other hand, | |||
other hand, if the router and the end hosts support ECN, they | if the router and the end hosts support ECN, they can set the | |||
can set the ECN field in the packet header, and the end host | ECN field in the packet header, and the end host can act on | |||
can act on this information. Several variations of RED have | this information. Several variations of RED have been | |||
been proposed to support different drop precedence levels in | proposed to support different drop precedence levels in multi- | |||
multi-class environments [RFC2597]. RED provides congestion | class environments [RFC2597]. RED provides congestion | |||
avoidance which is better than or equivalent to traditional | avoidance that is better than or equivalent to Tail-Drop (TD) | |||
Tail-Drop (TD) queue management (drop arriving packets only | queue management (drop arriving packets only when the queue is | |||
when the queue is full). Importantly, RED reduces the | full). Importantly, RED reduces the possibility of | |||
possibility of retransmission bursts becoming synchronized | retransmission bursts becoming synchronized within the network | |||
within the network, and improves fairness among different | and improves fairness among different responsive traffic | |||
responsive traffic sessions. However, RED by itself cannot | sessions. However, RED by itself cannot prevent congestion | |||
prevent congestion and unfairness caused by sources | and unfairness caused by sources unresponsive to RED, e.g., | |||
unresponsive to RED, e.g., some misbehaved greedy connections. | some misbehaved greedy connections. Other schemes have been | |||
Other schemes have been proposed to improve performance and | proposed to improve performance and fairness in the presence | |||
fairness in the presence of unresponsive traffic. Some of | of unresponsive traffic. Some of those schemes (such as | |||
those schemes (such as Longest Queue Drop (LQD) and Dynamic | Longest Queue Drop (LQD) and Dynamic Soft Partitioning with | |||
Soft Partitioning with Random Drop (RND) [SLDC98]) were | Random Drop (RND) [SLDC98]) were proposed as theoretical | |||
proposed as theoretical frameworks and are typically not | frameworks and are typically not available in existing | |||
available in existing commercial products, while others (such | commercial products, while others (such as Approximate Fair | |||
as Approximate Fairness Through Differential Dropping (AFD) | Dropping (AFD) [AFD03]) have seen some implementation. Advice | |||
[AFD03] have seen some implementation. Advice on the use of | on the use of Active Queue Management (AQM) schemes is | |||
Active Queue Management (AQM) schemes is provided in | provided in [RFC7567]. [RFC7567] recommends self-tuning AQM | |||
algorithms like those that the IETF has published in | ||||
[RFC7567]. [RFC7567] recommends self-tuning AQM algorithms | [RFC8290], [RFC8033], [RFC8034], and [RFC9332], but RED is | |||
like those that the IETF has published in [RFC8290], | still appropriate for links with stable bandwidth, if | |||
[RFC8033], [RFC8034], and [RFC9332], but RED is still | configured carefully. | |||
appropriate for links with stable bandwidth, if configured | ||||
carefully. | ||||
2. Reactive Versus Preventive Congestion Management Schemes | 2. Reactive versus Preventive Congestion Management Schemes | |||
* Reactive (recovery) congestion management policies react to | * Reactive (recovery) congestion management policies react to | |||
existing congestion problems. All the policies described | existing congestion problems. All the policies described | |||
above for the short and medium timescales can be categorized | above for the short and medium timescales can be categorized | |||
as being reactive. They are based on monitoring and | as being reactive. They are based on monitoring and | |||
identifying congestion problems that exist in the network, and | identifying congestion problems that exist in the network and | |||
on the initiation of relevant actions to ease a situation. | on the initiation of relevant actions to ease a situation. | |||
Reactive congestion management schemes may also be preventive. | Reactive congestion management schemes may also be preventive. | |||
* Preventive (predictive/avoidance) policies take proactive | * Preventive (predictive/avoidance) policies take proactive | |||
action to prevent congestion based on estimates and | action to prevent congestion based on estimates and | |||
predictions of future congestion problems (e.g., traffic | predictions of future congestion problems (e.g., traffic | |||
matrix forecasts). Some of the policies described for the | matrix forecasts). Some of the policies described for the | |||
long and medium timescales fall into this category. | long and medium timescales fall into this category. | |||
Preventive policies do not necessarily respond immediately to | Preventive policies do not necessarily respond immediately to | |||
existing congestion problems. Instead, forecasts of traffic | existing congestion problems. Instead, forecasts of traffic | |||
demand and workload distribution are considered, and action | demand and workload distribution are considered, and action | |||
may be taken to prevent potential future congestion problems. | may be taken to prevent potential future congestion problems. | |||
The schemes described for the short timescale can also be used | The schemes described for the short timescale can also be used | |||
for congestion avoidance because dropping or marking packets | for congestion avoidance because dropping or marking packets | |||
before queues actually overflow would trigger corresponding | before queues actually overflow would trigger corresponding | |||
responsive traffic sources to slow down. Preventive | responsive traffic sources to slow down. Preventive | |||
congestion management schemes may also be reactive. | congestion management schemes may also be reactive. | |||
3. Supply-Side Versus Demand-Side Congestion Management Schemes | 3. Supply-Side versus Demand-Side Congestion Management Schemes | |||
* Supply-side congestion management policies increase the | * Supply-side congestion management policies increase the | |||
effective capacity available to traffic in order to control or | effective capacity available to traffic in order to control or | |||
reduce congestion. This can be accomplished by increasing | reduce congestion. This can be accomplished by increasing | |||
capacity or by balancing distribution of traffic over the | capacity or by balancing distribution of traffic over the | |||
network. Capacity planning aims to provide a physical | network. Capacity planning aims to provide a physical | |||
topology and associated link bandwidths that match or exceed | topology and associated link bandwidths that match or exceed | |||
estimated traffic workload and traffic distribution subject to | estimated traffic workload and traffic distribution, subject | |||
traffic forecasts and budgetary or other constraints. If the | to traffic forecasts and budgetary (or other) constraints. If | |||
actual traffic distribution does not fit the topology derived | the actual traffic distribution does not fit the topology | |||
from capacity planning, then the traffic can be mapped onto | derived from capacity planning, then the traffic can be mapped | |||
the topology by using routing control mechanisms, by applying | onto the topology by using routing control mechanisms, by | |||
path oriented technologies (e.g., MPLS LSPs and optical | applying path-oriented technologies (e.g., MPLS LSPs and | |||
channel trails) to modify the logical topology, or by | optical channel trails) to modify the logical topology or by | |||
employing some other load redistribution mechanisms. | employing some other load redistribution mechanisms. | |||
* Demand-side congestion management policies control or regulate | * Demand-side congestion management policies control or regulate | |||
the offered traffic to alleviate congestion problems. For | the offered traffic to alleviate congestion problems. For | |||
example, some of the short timescale mechanisms described | example, some of the short timescale mechanisms described | |||
earlier as well as policing and rate-shaping mechanisms | earlier as well as policing and rate-shaping mechanisms | |||
attempt to regulate the offered load in various ways. | attempt to regulate the offered load in various ways. | |||
2.5. Implementation and Operational Context | 2.5. Implementation and Operational Context | |||
skipping to change at page 22, line 24 ¶ | skipping to change at line 1013 ¶ | |||
changes that occur at multiple levels of abstraction. The | changes that occur at multiple levels of abstraction. The | |||
implementation context demands effective planning, organization, and | implementation context demands effective planning, organization, and | |||
execution. The planning aspects may involve determining prior sets | execution. The planning aspects may involve determining prior sets | |||
of actions to achieve desired objectives. Organizing involves | of actions to achieve desired objectives. Organizing involves | |||
arranging and assigning responsibility to the various components of | arranging and assigning responsibility to the various components of | |||
the TE system and coordinating the activities to accomplish the | the TE system and coordinating the activities to accomplish the | |||
desired TE objectives. Execution involves measuring and applying | desired TE objectives. Execution involves measuring and applying | |||
corrective or perfective actions to attain and maintain desired TE | corrective or perfective actions to attain and maintain desired TE | |||
goals. | goals. | |||
3. Traffic Engineering Process Models | 3. Traffic-Engineering Process Models | |||
This section describes a generic process model that captures the | This section describes a generic process model that captures the | |||
high-level practical aspects of Internet traffic engineering in an | high-level practical aspects of Internet traffic engineering in an | |||
operational context. The process model is described as a sequence of | operational context. The process model is described as a sequence of | |||
actions that must be carried out to optimize the performance of an | actions that must be carried out to optimize the performance of an | |||
operational network (see also [RFC2702], [AWD2]). This process model | operational network (see also [RFC2702] and [AWD2]). This process | |||
may be enacted explicitly or implicitly, by a software process or by | model may be enacted explicitly or implicitly, by a software process | |||
a human. | or by a human. | |||
The TE process model is iterative [AWD2]. The four phases of the | The TE process model is iterative [AWD2]. The four phases of the | |||
process model described below are repeated as a continual sequence. | process model described below are repeated as a continual sequence: | |||
* Define the relevant control policies that govern the operation of | 1. Define the relevant control policies that govern the operation of | |||
the network. | the network. | |||
* Acquire measurement data from the operational network. | 2. Acquire measurement data from the operational network. | |||
* Analyze the network state and characterize the traffic workload. | 3. Analyze the network state and characterize the traffic workload. | |||
Proactive analysis identifies potential problems that could | Proactive analysis identifies potential problems that could | |||
manifest in the future. Reactive analysis identifies existing | manifest in the future. Reactive analysis identifies existing | |||
problems and determines their causes. | problems and determines their causes. | |||
* Optimize the performance of the network. This involves a decision | 4. Optimize the performance of the network. This involves a | |||
process which selects and implements a set of actions from a set | decision process that selects and implements a set of actions | |||
of alternatives given the results of the three previous steps. | from a set of alternatives given the results of the three | |||
Optimization actions may include the use of techniques to control | previous steps. Optimization actions may include the use of | |||
the offered traffic and to control the distribution of traffic | techniques to control the offered traffic and to control the | |||
across the network. | distribution of traffic across the network. | |||
3.1. Components of the Traffic Engineering Process Model | 3.1. Components of the Traffic-Engineering Process Model | |||
The key components of the traffic engineering process model are as | The key components of the traffic-engineering process model are as | |||
follows. | follows: | |||
1. Measurement is crucial to the TE function. The operational state | 1. Measurement is crucial to the TE function. The operational state | |||
of a network can only be conclusively determined through | of a network can only be conclusively determined through | |||
measurement. Measurement is also critical to the optimization | measurement. Measurement is also critical to the optimization | |||
function because it provides feedback data which is used by TE | function because it provides feedback data that is used by TE | |||
control subsystems. This data is used to adaptively optimize | control subsystems. This data is used to adaptively optimize | |||
network performance in response to events and stimuli originating | network performance in response to events and stimuli originating | |||
within and outside the network. Measurement in support of the TE | within and outside the network. Measurement in support of the TE | |||
function can occur at different levels of abstraction. For | function can occur at different levels of abstraction. For | |||
example, measurement can be used to derive packet level | example, measurement can be used to derive packet-level | |||
characteristics, flow level characteristics, user or customer | characteristics, flow-level characteristics, user- or customer- | |||
level characteristics, traffic aggregate characteristics, | level characteristics, traffic-aggregate characteristics, | |||
component level characteristics, and network-wide | component-level characteristics, and network-wide | |||
characteristics. | characteristics. | |||
2. Modeling, analysis, and simulation are important aspects of | 2. Modeling, analysis, and simulation are important aspects of | |||
Internet TE. Modeling involves constructing an abstract or | Internet TE. Modeling involves constructing an abstract or | |||
physical representation which depicts relevant traffic | physical representation that depicts relevant traffic | |||
characteristics and network attributes. A network model is an | characteristics and network attributes. A network model is an | |||
abstract representation of the network which captures relevant | abstract representation of the network that captures relevant | |||
network features, attributes, and characteristics. Network | network features, attributes, and characteristics. Network | |||
simulation tools are extremely useful for TE. Because of the | simulation tools are extremely useful for TE. Because of the | |||
complexity of realistic quantitative analysis of network | complexity of realistic quantitative analysis of network | |||
behavior, certain aspects of network performance studies can only | behavior, certain aspects of network performance studies can only | |||
be conducted effectively using simulation. | be conducted effectively using simulation. | |||
3. Network performance optimization involves resolving network | 3. Network performance optimization involves resolving network | |||
issues by transforming such issues into concepts that enable a | issues by transforming such issues into concepts that enable a | |||
solution, identification of a solution, and implementation of the | solution, identification of a solution, and implementation of the | |||
solution. Network performance optimization can be corrective or | solution. Network performance optimization can be corrective or | |||
perfective. In corrective optimization, the goal is to remedy a | perfective. In corrective optimization, the goal is to remedy a | |||
problem that has occurred or that is incipient. In perfective | problem that has occurred or that is incipient. In perfective | |||
optimization, the goal is to improve network performance even | optimization, the goal is to improve network performance even | |||
when explicit problems do not exist and are not anticipated. | when explicit problems do not exist and are not anticipated. | |||
4. Taxonomy of Traffic Engineering Systems | 4. Taxonomy of Traffic-Engineering Systems | |||
This section presents a short taxonomy of traffic engineering systems | This section presents a short taxonomy of traffic-engineering systems | |||
constructed based on TE styles and views as listed below and | constructed based on TE styles and views as listed below and | |||
described in greater detail in the following subsections of this | described in greater detail in the following subsections of this | |||
document. | document: | |||
* Time-Dependent versus State-Dependent versus Event-Dependent | ||||
* Time-dependent versus State-dependent versus Event-dependent | ||||
* Offline versus Online | * Offline versus Online | |||
* Centralized versus Distributed | * Centralized versus Distributed | |||
* Local versus Global Information | * Local versus Global Information | |||
* Prescriptive versus Descriptive | * Prescriptive versus Descriptive | |||
* Open Loop versus Closed Loop | * Open-Loop versus Closed-Loop | |||
* Tactical versus Strategic | * Tactical versus Strategic | |||
4.1. Time-Dependent Versus State-Dependent Versus Event-Dependent | 4.1. Time-Dependent versus State-Dependent versus Event-Dependent | |||
Traffic engineering methodologies can be classified as time- | Traffic-engineering methodologies can be classified as time- | |||
dependent, state-dependent, or event-dependent. All TE schemes are | dependent, state-dependent, or event-dependent. All TE schemes are | |||
considered to be dynamic in this document. Static TE implies that no | considered to be dynamic in this document. Static TE implies that no | |||
TE methodology or algorithm is being applied - it is a feature of | TE methodology or algorithm is being applied -- it is a feature of | |||
network planning, but lacks the reactive and flexible nature of TE. | network planning but lacks the reactive and flexible nature of TE. | |||
In time-dependent TE, historical information based on periodic | In time-dependent TE, historical information based on periodic | |||
variations in traffic (such as time of day) is used to pre-program | variations in traffic (such as time of day) is used to pre-program | |||
routing and other TE control mechanisms. Additionally, customer | routing and other TE control mechanisms. Additionally, customer | |||
subscription or traffic projection may be used. Pre-programmed | subscription or traffic projection may be used. Pre-programmed | |||
routing plans typically change on a relatively long time scale (e.g., | routing plans typically change on a relatively long timescale (e.g., | |||
daily). Time-dependent algorithms do not attempt to adapt to short- | daily). Time-dependent algorithms do not attempt to adapt to short- | |||
term variations in traffic or changing network conditions. An | term variations in traffic or changing network conditions. An | |||
example of a time-dependent algorithm is a centralized optimizer | example of a time-dependent algorithm is a centralized optimizer | |||
where the input to the system is a traffic matrix and multi-class QoS | where the input to the system is a traffic matrix and multi-class QoS | |||
requirements as described in [MR99]. Another example of such a | requirements as described in [MR99]. Another example of such a | |||
methodology is the application of data mining to Internet traffic | methodology is the application of data mining to Internet traffic | |||
[AJ19] which enables the use of various machine learning algorithms | [AJ19], which enables the use of various machine learning algorithms | |||
to identify patterns within historically collected datasets about | to identify patterns within historically collected datasets about | |||
Internet traffic, and to extract information in order to guide | Internet traffic and to extract information in order to guide | |||
decision-making, and to improve efficiency and productivity of | decision-making and improve efficiency and productivity of | |||
operational processes. | operational processes. | |||
State-dependent TE adapts the routing plans based on the current | State-dependent TE adapts the routing plans based on the current | |||
state of the network which provides additional information on | state of the network, which provides additional information on | |||
variations in actual traffic (i.e., perturbations from regular | variations in actual traffic (i.e., perturbations from regular | |||
variations) that could not be predicted using historical information. | variations) that could not be predicted using historical information. | |||
Constraint-based routing is an example of state-dependent TE | Constraint-based routing is an example of state-dependent TE | |||
operating in a relatively long timescale. An example of operating in | operating in a relatively long timescale. An example of operating in | |||
a relatively short timescale is a load-balancing algorithm described | a relatively short timescale is a load-balancing algorithm described | |||
in [MATE]. The state of the network can be based on parameters | in [MATE]. The state of the network can be based on parameters | |||
flooded by the routers. Another approach is for a particular router | flooded by the routers. Another approach is for a particular router | |||
performing adaptive TE to send probe packets along a path to gather | performing adaptive TE to send probe packets along a path to gather | |||
the state of that path. [RFC6374] defines protocol extensions to | the state of that path. [RFC6374] defines protocol extensions to | |||
collect performance measurements from MPLS networks. Another | collect performance measurements from MPLS networks. Another | |||
approach is for a management system to gather the relevant | approach is for a management system to gather the relevant | |||
information directly from network elements using telemetry data | information directly from network elements using telemetry data | |||
collection "publication/subscription" techniques [RFC7923]. Timely | collection publication/subscription techniques [RFC7923]. Timely | |||
gathering and distribution of state information is critical for | gathering and distribution of state information is critical for | |||
adaptive TE. While time-dependent algorithms are suitable for | adaptive TE. While time-dependent algorithms are suitable for | |||
predictable traffic variations, state-dependent algorithms may be | predictable traffic variations, state-dependent algorithms may be | |||
needed to increase network efficiency and to provide resilience to | needed to increase network efficiency and to provide resilience to | |||
adapt to changes in network state. | adapt to changes in network state. | |||
Event-dependent TE methods can also be used for TE path selection. | Event-dependent TE methods can also be used for TE path selection. | |||
Event-dependent TE methods are distinct from time-dependent and | Event-dependent TE methods are distinct from time-dependent and | |||
state-dependent TE methods in the manner in which paths are selected. | state-dependent TE methods in the manner in which paths are selected. | |||
These algorithms are adaptive and distributed in nature, and | These algorithms are adaptive and distributed in nature, and they | |||
typically use learning models to find good paths for TE in a network. | typically use learning models to find good paths for TE in a network. | |||
While state-dependent TE models typically use available-link- | While state-dependent TE models typically use available-link- | |||
bandwidth (ALB) [E.360.1] flooding for TE path selection, event- | bandwidth (ALB) flooding [E.360.1] for TE path selection, event- | |||
dependent TE methods do not require ALB flooding. Rather, event- | dependent TE methods do not require ALB flooding. Rather, event- | |||
dependent TE methods typically search out capacity by learning | dependent TE methods typically search out capacity by learning | |||
models, as in the success-to-the-top (STT) method [RFC6601]. ALB | models, as in the success-to-the-top (STT) method [RFC6601]. ALB | |||
flooding can be resource intensive, since it requires link bandwidth | flooding can be resource intensive, since it requires link bandwidth | |||
to carry routing protocol link state advertisements, processor | to carry routing protocol link-state advertisements and processor | |||
capacity to process those advertisements, and the overhead of the | capacity to process those advertisements; in addition, the overhead | |||
advertisements and their processing can limit area/Autonomous System | of the ALB advertisements and their processing can limit the size of | |||
(AS) size. Modeling results suggest that event-dependent TE methods | the area and AS. Modeling results suggest that event-dependent TE | |||
could lead to a reduction in ALB flooding overhead without loss of | methods could lead to a reduction in ALB flooding overhead without | |||
network throughput performance [I-D.ietf-tewg-qos-routing]. | loss of network throughput performance [TE-QoS-ROUTING]. | |||
A fully functional TE system is likely to use all aspects of time- | A fully functional TE system is likely to use all aspects of time- | |||
dependent, state-dependent, and event-dependent methodologies as | dependent, state-dependent, and event-dependent methodologies as | |||
described in Section 4.3.1. | described in Section 4.3.1. | |||
4.2. Offline Versus Online | 4.2. Offline versus Online | |||
Traffic engineering requires the computation of routing plans. The | Traffic engineering requires the computation of routing plans. The | |||
computation may be performed offline or online. The computation can | computation may be performed offline or online. The computation can | |||
be done offline for scenarios where routing plans need not be | be done offline for scenarios where routing plans need not be | |||
executed in real time. For example, routing plans computed from | executed in real time. For example, routing plans computed from | |||
forecast information may be computed offline. Typically, offline | forecast information may be computed offline. Typically, offline | |||
computation is also used to perform extensive searches on multi- | computation is also used to perform extensive searches on multi- | |||
dimensional solution spaces. | dimensional solution spaces. | |||
Online computation is required when the routing plans must adapt to | Online computation is required when the routing plans must adapt to | |||
changing network conditions as in state-dependent algorithms. Unlike | changing network conditions as in state-dependent algorithms. Unlike | |||
offline computation (which can be computationally demanding), online | offline computation (which can be computationally demanding), online | |||
computation is geared toward relatively simple and fast calculations | computation is geared toward relatively simple and fast calculations | |||
to select routes, fine-tune the allocations of resources, and perform | to select routes, fine-tune the allocations of resources, and perform | |||
load balancing. | load balancing. | |||
4.3. Centralized Versus Distributed | 4.3. Centralized versus Distributed | |||
Under centralized control there is a central authority which | Under centralized control, there is a central authority that | |||
determines routing plans and perhaps other TE control parameters on | determines routing plans and perhaps other TE control parameters on | |||
behalf of each router. The central authority periodically collects | behalf of each router. The central authority periodically collects | |||
network-state information from all routers, and sends routing | network-state information from all routers and sends routing | |||
information to the routers. The update cycle for information | information to the routers. The update cycle for information | |||
exchange in both directions is a critical parameter directly | exchange in both directions is a critical parameter directly | |||
impacting the performance of the network being controlled. | impacting the performance of the network being controlled. | |||
Centralized control may need high processing power and high bandwidth | Centralized control may need high processing power and high bandwidth | |||
control channels. | control channels. | |||
Distributed control determines route selection by each router | Distributed control determines route selection by each router | |||
autonomously based on the router's view of the state of the network. | autonomously based on the router's view of the state of the network. | |||
The network state information may be obtained by the router using a | The network state information may be obtained by the router using a | |||
probing method or distributed by other routers on a periodic basis | probing method or distributed by other routers on a periodic basis | |||
using link state advertisements. Network state information may also | using link-state advertisements. Network state information may also | |||
be disseminated under exception conditions. Examples of protocol | be disseminated under exception conditions. Examples of protocol | |||
extensions used to advertise network link state information are | extensions used to advertise network link-state information are | |||
defined in [RFC5305], [RFC6119], [RFC7471], [RFC8570], and [RFC8571]. | defined in [RFC5305], [RFC6119], [RFC7471], [RFC8570], and [RFC8571]. | |||
See also Section 5.1.3.9. | See also Section 5.1.3.9. | |||
4.3.1. Hybrid Systems | 4.3.1. Hybrid Systems | |||
In practice, most TE systems will be a hybrid of central and | In practice, most TE systems will be a hybrid of central and | |||
distributed control. For example, a popular MPLS approach to TE is | distributed control. For example, a popular MPLS approach to TE is | |||
to use a central controller based on an active, stateful Path | to use a central controller based on an active, stateful Path | |||
Computation Element (PCE), but to use routing and signaling protocols | Computation Element (PCE) but to use routing and signaling protocols | |||
to make local decisions at routers within the network. Local | to make local decisions at routers within the network. Local | |||
decisions may be able to respond more quickly to network events, but | decisions may be able to respond more quickly to network events but | |||
may result in conflicts with decisions made by other routers. | may result in conflicts with decisions made by other routers. | |||
Network operations for TE systems may also use a hybrid of offline | Network operations for TE systems may also use a hybrid of offline | |||
and online computation. TE paths may be precomputed based on stable- | and online computation. TE paths may be precomputed based on stable- | |||
state network information and planned traffic demands, but may then | state network information and planned traffic demands but may then be | |||
be modified in the active network depending on variations in network | modified in the active network depending on variations in network | |||
state and traffic load. Furthermore, responses to network events may | state and traffic load. Furthermore, responses to network events may | |||
be precomputed offline to allow rapid reactions without further | be precomputed offline to allow rapid reactions without further | |||
computation, or may be derived online depending on the nature of the | computation or may be derived online depending on the nature of the | |||
events. | events. | |||
Lastly, note that a fully functional TE system is likely to use all | 4.3.2. Considerations for Software-Defined Networking | |||
aspects of time-dependent, state-dependent, and event-dependent | ||||
methodologies as described in Section 4.1. | ||||
4.3.2. Considerations for Software Defined Networking | ||||
As discussed in Section 5.1.2.2, one of the main drivers for SDN is a | As discussed in Section 5.1.2.2, one of the main drivers for | |||
decoupling of the network control plane from the data plane | Software-Defined Networking (SDN) is a decoupling of the network | |||
[RFC7149]. However, SDN may also combine centralized control of | control plane from the data plane [RFC7149]. However, SDN may also | |||
resources, and facilitate application-to-network interaction via an | combine centralized control of resources and facilitate application- | |||
application programming interface (API) such as [RFC8040]. Combining | to-network interaction via an Application Programming Interface | |||
these features provides a flexible network architecture that can | (API), such as the one described in [RFC8040]. Combining these | |||
adapt to network requirements of a variety of higher-layer | features provides a flexible network architecture that can adapt to | |||
applications, a concept often referred to as the "programmable | the network requirements of a variety of higher-layer applications, a | |||
network" [RFC7426]. | concept often referred to as the "programmable network" [RFC7426]. | |||
The centralized control aspect of SDN helps improve network resource | The centralized control aspect of SDN helps improve network resource | |||
utilization compared with distributed network control, where local | utilization compared with distributed network control, where local | |||
policy may often override network-wide optimization goals. In an SDN | policy may often override network-wide optimization goals. In an SDN | |||
environment, the data plane forwards traffic to its desired | environment, the data plane forwards traffic to its desired | |||
destination. However, before traffic reaches the data plane, the | destination. However, before traffic reaches the data plane, the | |||
logically centralized SDN control plane often determines the path the | logically centralized SDN control plane often determines the path the | |||
application traffic will take in the network. Therefore, the SDN | application traffic will take in the network. Therefore, the SDN | |||
control plane needs to be aware of the underlying network topology, | control plane needs to be aware of the underlying network topology, | |||
capabilities and current node and link resource state. | capabilities, and current node and link resource state. | |||
Using a PCE-based SDN control framework [RFC7491], the available | Using a PCE-based SDN control framework [RFC7491], the available | |||
network topology may be discovered by running a passive instance of | network topology may be discovered by running a passive instance of | |||
OSPF or IS-IS, or via BGP-LS [RFC7752], to generate a Traffic | OSPF or IS-IS, or via BGP Link State (BGP-LS) [RFC9552]), to generate | |||
Engineering Database (TED, see Section 5.1.3.14). The PCE is used to | a Traffic Engineering Database (TED) (see Section 5.1.3.14). The PCE | |||
compute a path (see Section 5.1.3.11) based on the TED and available | is used to compute a path (see Section 5.1.3.11) based on the TED and | |||
bandwidth, and further path optimization may be based on requested | available bandwidth, and further path optimization may be based on | |||
objective functions [RFC5541]. When a suitable path has been | requested objective functions [RFC5541]. When a suitable path has | |||
computed the programming of the explicit network path may be | been computed, the programming of the explicit network path may be | |||
performed using either a signaling protocol that traverses the length | either performed using a signaling protocol that traverses the length | |||
of the path [RFC3209] or per-hop with each node being directly | of the path [RFC3209] or performed per-hop with each node being | |||
programmed [RFC8283] by the SDN controller. | directly programmed [RFC8283] by the SDN controller. | |||
By utilizing a centralized approach to network control, additional | By utilizing a centralized approach to network control, additional | |||
network benefits are also available, including Global Concurrent | network benefits are also available, including Global Concurrent | |||
Optimization (GCO) [RFC5557]. A GCO path computation request will | Optimization (GCO) [RFC5557]. A GCO path computation request will | |||
simultaneously use the network topology and a set of new path | simultaneously use the network topology and a set of new path | |||
signaling requests, along with their respective constraints, for | signaling requests, along with their respective constraints, for | |||
optimal placement in the network. Correspondingly, a GCO-based | optimal placement in the network. Correspondingly, a GCO-based | |||
computation may be applied to recompute existing network paths to | computation may be applied to recompute existing network paths to | |||
groom traffic and to mitigate congestion. | groom traffic and to mitigate congestion. | |||
4.4. Local Versus Global | 4.4. Local versus Global | |||
Traffic engineering algorithms may require local and global network- | Traffic-engineering algorithms may require local and global network- | |||
state information. | state information. | |||
Local information is the state of a portion of the domain. Examples | Local information is the state of a portion of the domain. Examples | |||
include the bandwidth and packet loss rate of a particular path, or | include the bandwidth and packet loss rate of a particular path or | |||
the state and capabilities of a network link. Local state | the state and capabilities of a network link. Local state | |||
information may be sufficient for certain instances of distributed | information may be sufficient for certain instances of distributed | |||
control TE. | control TE. | |||
Global information is the state of the entire TE domain. Examples | Global information is the state of the entire TE domain. Examples | |||
include a global traffic matrix, and loading information on each link | include a global traffic matrix and loading information on each link | |||
throughout the domain of interest. Global state information is | throughout the domain of interest. Global state information is | |||
typically required with centralized control. Distributed TE systems | typically required with centralized control. Distributed TE systems | |||
may also need global information in some cases. | may also need global information in some cases. | |||
4.5. Prescriptive Versus Descriptive | 4.5. Prescriptive versus Descriptive | |||
TE systems may also be classified as prescriptive or descriptive. | TE systems may also be classified as prescriptive or descriptive. | |||
Prescriptive traffic engineering evaluates alternatives and | Prescriptive traffic engineering evaluates alternatives and | |||
recommends a course of action. Prescriptive TE can be further | recommends a course of action. Prescriptive TE can be further | |||
categorized as either corrective or perfective. Corrective TE | categorized as either corrective or perfective. Corrective TE | |||
prescribes a course of action to address an existing or predicted | prescribes a course of action to address an existing or predicted | |||
anomaly. Perfective TE prescribes a course of action to evolve and | anomaly. Perfective TE prescribes a course of action to evolve and | |||
improve network performance even when no anomalies are evident. | improve network performance even when no anomalies are evident. | |||
Descriptive traffic engineering, on the other hand, characterizes the | Descriptive traffic engineering, on the other hand, characterizes the | |||
state of the network and assesses the impact of various policies | state of the network and assesses the impact of various policies | |||
without recommending any particular course of action. | without recommending any particular course of action. | |||
4.5.1. Intent-Based Networking | 4.5.1. Intent-Based Networking | |||
One way to express a service request is through "intent". Intent- | One way to express a service request is through "intent". Intent- | |||
Based Networking aims to produce networks that are simpler to manage | Based Networking aims to produce networks that are simpler to manage | |||
and operate, requiring only minimal intervention. Intent is defined | and operate, requiring only minimal intervention. Intent is defined | |||
in [RFC9315] as a set of operational goals (that a network should | in [RFC9315] as follows: | |||
meet) and outcomes (that a network is supposed to deliver), defined | ||||
in a declarative manner without specifying how to achieve or | | A set of operational goals (that a network should meet) and | |||
implement them. | | outcomes (that a network is supposed to deliver) defined in a | |||
| declarative manner without specifying how to achieve or implement | ||||
| them. | ||||
Intent provides data and functional abstraction so that users and | Intent provides data and functional abstraction so that users and | |||
operators do not need to be concerned with low-level device | operators do not need to be concerned with low-level device | |||
configuration or the mechanisms used to achieve a given intent. This | configuration or the mechanisms used to achieve a given intent. This | |||
approach can be conceptually easier for a user, but may be less | approach can be conceptually easier for a user but may be less | |||
expressive in terms of constraints and guidelines. | expressive in terms of constraints and guidelines. | |||
Intent-Based Networking is applicable to TE because many of the high- | Intent-Based Networking is applicable to TE because many of the high- | |||
level objectives may be expressed as "intent." For example, load | level objectives may be expressed as intent (for example, load | |||
balancing, delivery of services, and robustness against failures. | balancing, delivery of services, and robustness against failures). | |||
The intent is converted by the management system into TE actions | The intent is converted by the management system into TE actions | |||
within the network. | within the network. | |||
4.6. Open-Loop Versus Closed-Loop | 4.6. Open-Loop versus Closed-Loop | |||
Open-loop traffic engineering control is where control action does | Open-loop traffic-engineering control is where control action does | |||
not use feedback information from the current network state. The | not use feedback information from the current network state. | |||
control action may use its own local information for accounting | However, the control action may use its own local information for | |||
purposes, however. | accounting purposes. | |||
Closed-loop traffic engineering control is where control action | Closed-loop traffic-engineering control is where control action | |||
utilizes feedback information from the network state. The feedback | utilizes feedback information from the network state. The feedback | |||
information may be in the form of current measurement or recent | information may be in the form of current measurement or recent | |||
historical records. | historical records. | |||
4.7. Tactical versus Strategic | 4.7. Tactical versus Strategic | |||
Tactical traffic engineering aims to address specific performance | Tactical traffic engineering aims to address specific performance | |||
problems (such as hot-spots) that occur in the network from a | problems (such as hotspots) that occur in the network from a tactical | |||
tactical perspective, without consideration of overall strategic | perspective, without consideration of overall strategic imperatives. | |||
imperatives. Without proper planning and insights, tactical TE tends | Without proper planning and insights, tactical TE tends to be ad hoc | |||
to be ad hoc in nature. | in nature. | |||
Strategic traffic engineering approaches the TE problem from a more | Strategic traffic-engineering approaches the TE problem from a more | |||
organized and systematic perspective, taking into consideration the | organized and systematic perspective, taking into consideration the | |||
immediate and longer-term consequences of specific policies and | immediate and longer-term consequences of specific policies and | |||
actions. | actions. | |||
5. Review of TE Techniques | 5. Review of TE Techniques | |||
This section briefly reviews different TE-related approaches proposed | This section briefly reviews different TE-related approaches proposed | |||
and implemented in telecommunications and computer networks using | and implemented in telecommunications and computer networks using | |||
IETF protocols and architectures. These approaches are organized | IETF protocols and architectures. These approaches are organized | |||
into three categories: | into three categories: | |||
* TE mechanisms which adhere to the definition provided in | * TE mechanisms that adhere to the definition provided in | |||
Section 1.2. | Section 1.2 | |||
* Approaches that rely upon those TE mechanisms. | * Approaches that rely upon those TE mechanisms | |||
* Techniques that are used by those TE mechanisms and approaches. | * Techniques that are used by those TE mechanisms and approaches | |||
The discussion is not intended to be comprehensive. It is primarily | The discussion is not intended to be comprehensive. It is primarily | |||
intended to illuminate existing approaches to TE in the Internet. A | intended to illuminate existing approaches to TE in the Internet. A | |||
historic overview of TE in telecommunications networks was provided | historic overview of TE in telecommunications networks was provided | |||
in Section 4 of [RFC3272], and Section 4.6 of that document presented | in Section 4 of [RFC3272], and Section 4.6 of that document presented | |||
an outline of some early approaches to TE conducted in other | an outline of some early approaches to TE conducted in other | |||
standards bodies. It is out of the scope of this document to provide | standards bodies. It is out of the scope of this document to provide | |||
an analysis of the history of TE or an inventory of TE-related | an analysis of the history of TE or an inventory of TE-related | |||
efforts conducted by other SDOs. | efforts conducted by other Standards Development Organizations | |||
(SDOs). | ||||
5.1. Overview of IETF Projects Related to Traffic Engineering | 5.1. Overview of IETF Projects Related to Traffic Engineering | |||
This subsection reviews a number of IETF activities pertinent to | This subsection reviews a number of IETF activities pertinent to | |||
Internet traffic engineering. Some of these technologies are widely | Internet traffic engineering. Some of these technologies are widely | |||
deployed, others are mature but have seen less deployment, and some | deployed, others are mature but have seen less deployment, and some | |||
are unproven or still under development. | are unproven or are still under development. | |||
5.1.1. IETF TE Mechanisms | 5.1.1. IETF TE Mechanisms | |||
5.1.1.1. Integrated Services | 5.1.1.1. Integrated Services | |||
The IETF developed the Integrated Services (Intserv) model that | The IETF developed the Integrated Services (Intserv) model that | |||
requires resources, such as bandwidth and buffers, to be reserved a | requires resources, such as bandwidth and buffers, to be reserved a | |||
priori for a given traffic flow to ensure that the quality of service | priori for a given traffic flow to ensure that the QoS requested by | |||
requested by the traffic flow is satisfied. The Integrated Services | the traffic flow is satisfied. The Intserv model includes additional | |||
model includes additional components beyond those used in the best- | components beyond those used in the best-effort model such as packet | |||
effort model such as packet classifiers, packet schedulers, and | classifiers, packet schedulers, and admission control. A packet | |||
admission control. A packet classifier is used to identify flows | classifier is used to identify flows that are to receive a certain | |||
that are to receive a certain level of service. A packet scheduler | level of service. A packet scheduler handles the scheduling of | |||
handles the scheduling of service to different packet flows to ensure | service to different packet flows to ensure that QoS commitments are | |||
that QoS commitments are met. Admission control is used to determine | met. Admission control is used to determine whether a router has the | |||
whether a router has the necessary resources to accept a new flow. | necessary resources to accept a new flow. | |||
The main issue with the Integrated Services model has been | The main issue with the Intserv model has been scalability [RFC2998], | |||
scalability [RFC2998], especially in large public IP networks which | especially in large public IP networks that may potentially have | |||
may potentially have millions of active traffic flows in transit | millions of active traffic flows in transit concurrently. Pre- | |||
concurrently. Pre-Congestion Notification (PCN) [RFC5559] solves the | Congestion Notification (PCN) [RFC5559] solves the scaling problems | |||
scaling problems of Intserv by using measurement-based admission | of Intserv by using measurement-based admission control (and flow | |||
control (and flow termination to handle failures) between edge-nodes. | termination to handle failures) between edge nodes. Nodes between | |||
Nodes between the edges of the internetwork have no per-flow | the edges of the internetwork have no per-flow operations, and the | |||
operations and the edge nodes can use the Resource Reservation | edge nodes can use the Resource Reservation Protocol (RSVP) per-flow | |||
Protocol (RSVP) per-flow or per-aggregate. | or per-aggregate. | |||
A notable feature of the Integrated Services model is that it | A notable feature of the Intserv model is that it requires explicit | |||
requires explicit signaling of QoS requirements from end systems to | signaling of QoS requirements from end systems to routers [RFC2753]. | |||
routers [RFC2753]. RSVP performs this signaling function and is a | RSVP performs this signaling function and is a critical component of | |||
critical component of the Integrated Services model. RSVP is | the Intserv model. RSVP is described in Section 5.1.3.2. | |||
described in Section 5.1.3.2. | ||||
5.1.1.2. Differentiated Services | 5.1.1.2. Differentiated Services | |||
The goal of Differentiated Services (Diffserv) within the IETF was to | The goal of Differentiated Services (Diffserv) within the IETF was to | |||
devise scalable mechanisms for categorization of traffic into | devise scalable mechanisms for categorization of traffic into | |||
behavior aggregates, which ultimately allows each behavior aggregate | behavior aggregates, which ultimately allows each behavior aggregate | |||
to be treated differently, especially when there is a shortage of | to be treated differently, especially when there is a shortage of | |||
resources such as link bandwidth and buffer space [RFC2475]. One of | resources, such as link bandwidth and buffer space [RFC2475]. One of | |||
the primary motivations for Diffserv was to devise alternative | the primary motivations for Diffserv was to devise alternative | |||
mechanisms for service differentiation in the Internet that mitigate | mechanisms for service differentiation in the Internet that mitigate | |||
the scalability issues encountered with the Intserv model. | the scalability issues encountered with the Intserv model. | |||
Diffserv uses the Differentiated Services field in the IP header (the | Diffserv uses the Differentiated Services field in the IP header (the | |||
DS field) consisting of six bits in what was formerly known as the | DS field) consisting of six bits in what was formerly known as the | |||
Type of Service (TOS) octet. The DS field is used to indicate the | Type of Service (TOS) octet. The DS field is used to indicate the | |||
forwarding treatment that a packet should receive at a transit node | forwarding treatment that a packet should receive at a transit node | |||
[RFC2474]. Diffserv includes the concept of Per-Hop Behavior (PHB) | [RFC2474]. Diffserv includes the concept of Per-Hop Behavior (PHB) | |||
groups. Using the PHBs, several classes of services can be defined | groups. Using the PHBs, several classes of services can be defined | |||
using different classification, policing, shaping, and scheduling | using different classification, policing, shaping, and scheduling | |||
rules. | rules. | |||
For an end-user of network services to utilize Differentiated | For an end user of network services to utilize Diffserv provided by | |||
Services provided by its Internet Service Provider (ISP), it may be | its Internet Service Provider (ISP), it may be necessary for the user | |||
necessary for the user to have an SLA with the ISP. An SLA may | to have an SLA with the ISP. An SLA may explicitly or implicitly | |||
explicitly or implicitly specify a Traffic Conditioning Agreement | specify a Traffic Conditioning Agreement (TCA) that defines | |||
(TCA) which defines classifier rules as well as metering, marking, | classifier rules as well as metering, marking, discarding, and | |||
discarding, and shaping rules. | shaping rules. | |||
Packets are classified, and possibly policed and shaped at the | Packets are classified and possibly policed and shaped at the ingress | |||
ingress to a Diffserv network. When a packet traverses the boundary | to a Diffserv network. When a packet traverses the boundary between | |||
between different Diffserv domains, the DS field of the packet may be | different Diffserv domains, the DS field of the packet may be re- | |||
re-marked according to existing agreements between the domains. | marked according to existing agreements between the domains. | |||
Differentiated Services allows only a finite number of service | Diffserv allows only a finite number of service classes to be | |||
classes to be specified by the DS field. The main advantage of the | specified by the DS field. The main advantage of the Diffserv | |||
Diffserv approach relative to the Intserv model is scalability. | approach relative to the Intserv model is scalability. Resources are | |||
Resources are allocated on a per-class basis and the amount of state | allocated on a per-class basis, and the amount of state information | |||
information is proportional to the number of classes rather than to | is proportional to the number of classes rather than to the number of | |||
the number of application flows. | application flows. | |||
Once the network has been planned and the packets marked at the | Once the network has been planned and the packets have been marked at | |||
network edge, the Diffserv model deals with traffic management issues | the network edge, the Diffserv model deals with traffic management | |||
on a per hop basis. The Diffserv control model consists of a | issues on a per-hop basis. The Diffserv control model consists of a | |||
collection of micro-TE control mechanisms. Other TE capabilities, | collection of micro-TE control mechanisms. Other TE capabilities, | |||
such as capacity management (including routing control), are also | such as capacity management (including routing control), are also | |||
required in order to deliver acceptable service quality in Diffserv | required in order to deliver acceptable service quality in Diffserv | |||
networks. The concept of Per Domain Behaviors has been introduced to | networks. The concept of "Per-Domain Behaviors" has been introduced | |||
better capture the notion of Differentiated Services across a | to better capture the notion of Diffserv across a complete domain | |||
complete domain [RFC3086]. | [RFC3086]. | |||
Diffserv procedures can also be applied in an MPLS context. See | Diffserv procedures can also be applied in an MPLS context. See | |||
Section 6.8 for more information. | Section 6.8 for more information. | |||
5.1.1.3. Segment Routing Policy | 5.1.1.3. SR Policy | |||
SR Policy [RFC9256] is an evolution of Segment Routing (see | SR Policy [RFC9256] is an evolution of SR (see Section 5.1.3.12) to | |||
Section 5.1.3.12) to enhance the TE capabilities of SR. It is a | enhance the TE capabilities of SR. It is a framework that enables | |||
framework that enables instantiation of an ordered list of segments | instantiation of an ordered list of segments on a node for | |||
on a node for implementing a source routing policy with a specific | implementing a source routing policy with a specific intent for | |||
intent for traffic steering from that node. | traffic steering from that node. | |||
An SR Policy is identified through the tuple <head-end, color, end- | An SR Policy is identified through the tuple <headend, color, | |||
point>. The head-end is the IP address of the node where the policy | endpoint>. The headend is the IP address of the node where the | |||
is instantiated. The endpoint is the IP address of the destination | policy is instantiated. The endpoint is the IP address of the | |||
of the policy. The color is an index that associates the SR Policy | destination of the policy. The color is an index that associates the | |||
with an intent (e.g., low latency). | SR Policy with an intent (e.g., low latency). | |||
The head-end node is notified of SR Policies and associated SR paths | The headend node is notified of SR Policies and associated SR paths | |||
via configuration or by extensions to protocols such as PCEP | via configuration or by extensions to protocols such as the Path | |||
[RFC8664] or BGP [I-D.ietf-idr-segment-routing-te-policy]. Each SR | Computation Element Communication Protocol (PCEP) [RFC8664] or BGP | |||
path consists of a Segment-List (an SR source-routed path), and the | [SR-TE-POLICY]. Each SR path consists of a segment list (an SR | |||
head-end uses the endpoint and color parameters to classify packets | source-routed path), and the headend uses the endpoint and color | |||
to match the SR policy and so determine along which path to forward | parameters to classify packets to match the SR Policy and so | |||
them. If an SR Policy is associated with a set of SR paths, each is | determine along which path to forward them. If an SR Policy is | |||
associated with a weight for weighted load balancing. Furthermore, | associated with a set of SR paths, each is associated with a weight | |||
multiple SR Policies may be associated with a set of SR paths to | for weighted load balancing. Furthermore, multiple SR Policies may | |||
allow multiple traffic flows to be placed on the same paths. | be associated with a set of SR paths to allow multiple traffic flows | |||
to be placed on the same paths. | ||||
An SR Binding SID (BSID) may also be associated with each candidate | An SR Binding SID (BSID) may also be associated with each candidate | |||
path associated with an SR Policy, or with the SR Policy itself. The | path associated with an SR Policy or with the SR Policy itself. The | |||
head-end node installs a BSID-keyed entry in the forwarding plane and | headend node installs a BSID-keyed entry in the forwarding plane and | |||
assigns it the action of steering packets that match the entry to the | assigns it the action of steering packets that match the entry to the | |||
selected path of the SR Policy. This steering can be done in various | selected path of the SR Policy. This steering can be done in various | |||
ways: | ways: | |||
* SID Steering: Incoming packets have an active SID matching a local | SID Steering: Incoming packets have an active Segment Identifier | |||
BSID at the head-end. | (SID) matching a local BSID at the headend. | |||
* Per-destination Steering: Incoming packets match a BGP/Service | Per-destination Steering: Incoming packets match a BGP/Service | |||
route which indicates an SR Policy. | route, which indicates an SR Policy. | |||
* Per-flow Steering: Incoming packets match a forwarding array (for | Per-flow Steering: Incoming packets match a forwarding array (for | |||
example, the classic 5-tuple) which indicates an SR Policy. | example, the classic 5-tuple), which indicates an SR Policy. | |||
* Policy-based Steering: Incoming packets match a routing policy | Policy-based Steering: Incoming packets match a routing policy, | |||
which directs them to an SR Policy. | which directs them to an SR Policy. | |||
5.1.1.4. Layer 4 Transport-Based TE | 5.1.1.4. Layer 4 Transport-Based TE | |||
In addition to IP-based TE mechanisms, layer 4 transport-based TE | In addition to IP-based TE mechanisms, Layer 4 transport-based TE | |||
approaches can be considered in specific deployment contexts (e.g., | approaches can be considered in specific deployment contexts (e.g., | |||
data centers, multi-homing). For example, the 3GPP defines the | data centers and multi-homing). For example, the 3GPP defines the | |||
Access Traffic Steering, Switching, and Splitting (ATSSS) [ATSSS] | Access Traffic Steering, Switching, and Splitting (ATSSS) [ATSSS] | |||
service functions as follows. | service functions as follows: | |||
Access Traffic Steering: This is the selection of an access network | Access Traffic Steering: This is the selection of an access network | |||
for a new flow and the transfer of the traffic of that flow over | for a new flow and the transfer of the traffic of that flow over | |||
the selected access network. | the selected access network. | |||
Access Traffic Switching: This is the migration of all packets of an | Access Traffic Switching: This is the migration of all packets of an | |||
ongoing flow from one access network to another access network. | ongoing flow from one access network to another access network. | |||
Only one access network is in use at a time. | Only one access network is in use at a time. | |||
Access Traffic Splitting: This is about forwarding the packets of a | Access Traffic Splitting: This is about forwarding the packets of a | |||
flow across multiple access networks simultaneously. | flow across multiple access networks simultaneously. | |||
The control plane is used to provide hosts and specific network | The control plane is used to provide hosts and specific network | |||
devices with a set of policies that specify which flows are eligible | devices with a set of policies that specify which flows are eligible | |||
to use the ATSSS service. The traffic that matches an ATSSS policy | to use the ATSSS service. The traffic that matches an ATSSS policy | |||
can be distributed among the available access networks following one | can be distributed among the available access networks following one | |||
of the following four modes. | of the following four modes: | |||
Active-Standby: The traffic is forwarded via a specific access | Active-Standby: The traffic is forwarded via a specific access | |||
(called "active access") and switched to another access (called | (called "active access") and switched to another access (called | |||
"standby access") when the active access is unavailable. | "standby access") when the active access is unavailable. | |||
Priority-based: Network accesses are assigned priority levels that | Priority-based: Network accesses are assigned priority levels that | |||
indicate which network access is to be used first. The traffic | indicate which network access is to be used first. The traffic | |||
associated with the matching flow will be steered onto the network | associated with the matching flow will be steered onto the network | |||
access with the highest priority until congestion is detected, | access with the highest priority until congestion is detected. | |||
then the overflow will be forwarded over the next highest priority | Then, the overflow will be forwarded over the next highest | |||
access. | priority access. | |||
Load-Balancing: The traffic is distributed among the available | Load-Balancing: The traffic is distributed among the available | |||
access networks following a distribution ratio (e.g., 75% - 25%). | access networks following a distribution ratio (e.g., 75% to 25%). | |||
Smallest Delay: The traffic is forwarded via the access that | Smallest Delay: The traffic is forwarded via the access that | |||
presents the smallest round-trip-time (RTT). | presents the smallest round-trip time (RTT). | |||
For resource management purposes, hosts and network devices support | For resource management purposes, hosts and network devices support | |||
means such as congestion control, RTT measurement, and packet | means such as congestion control, RTT measurement, and packet | |||
scheduling. | scheduling. | |||
For TCP traffic, Multipath TCP [RFC8684] and the 0-RTT Convert | For TCP traffic, Multipath TCP [RFC8684] and the 0-RTT Convert | |||
Protocol [RFC8803] are used to provide the ATSSS service. | Protocol [RFC8803] are used to provide the ATSSS service. | |||
Multipath QUIC [I-D.ietf-quic-multipath] and Proxying UDP in HTTP | Multipath QUIC [QUIC-MULTIPATH] and Proxying UDP in HTTP [RFC9298] | |||
[RFC9298] are used to provide the ATSSS service for UDP traffic. | are used to provide the ATSSS service for UDP traffic. Note that | |||
Note that QUIC [RFC9000] natively support the switching and steering | QUIC [RFC9000] supports the switching and steering functions. | |||
functions. Indeed, QUIC supports a connection migration procedure | Indeed, QUIC supports a connection migration procedure that allows | |||
that allows peers to change their layer 4 transport coordinates (IP | peers to change their Layer 4 transport coordinates (IP addresses, | |||
addresses, port numbers) without breaking the underlying QUIC | port numbers) without breaking the underlying QUIC connection. | |||
connection. | ||||
Extensions to the Datagram Congestion Control Protocol (MP-DCCP) | Extensions to the Datagram Congestion Control Protocol (DCCP) | |||
[RFC4340] to support multipath operations are defined in | [RFC4340] to support multipath operations are defined in | |||
[I-D.ietf-tsvwg-multipath-dccp]. | [MULTIPATH-DCCP]. | |||
5.1.1.5. Deterministic Networking | 5.1.1.5. Deterministic Networking | |||
Deterministic Networking (DetNet) [RFC8655] is an architecture for | Deterministic Networking (DetNet) [RFC8655] is an architecture for | |||
applications with critical timing and reliability requirements. The | applications with critical timing and reliability requirements. The | |||
layered architecture particularly focuses on developing DetNet | layered architecture particularly focuses on developing DetNet | |||
service capabilities in the data plane [RFC8938]. The DetNet service | service capabilities in the data plane [RFC8938]. The DetNet service | |||
sub-layer provides a set of Packet Replication, Elimination, and | sub-layer provides a set of Packet Replication, Elimination, and | |||
Ordering Functions (PREOF) to provide end-to-end service assurance. | Ordering Functions (PREOF) to provide end-to-end service assurance. | |||
The DetNet forwarding sub-layer provides corresponding forwarding | The DetNet forwarding sub-layer provides corresponding forwarding | |||
assurance (low packet loss, bounded latency, and in-order delivery) | assurance (low packet loss, bounded latency, and in-order delivery) | |||
functions using resource allocations and explicit route mechanisms. | functions using resource allocations and explicit route mechanisms. | |||
The separation into two sub-layers allows a greater flexibility to | The separation into two sub-layers allows a greater flexibility to | |||
adapt DetNet capability over a number of TE data plane mechanisms | adapt DetNet capability over a number of TE data plane mechanisms, | |||
such as IP, MPLS, and Segment Routing. More importantly it | such as IP, MPLS, and SR. More importantly, it interconnects IEEE | |||
interconnects IEEE 802.1 Time Sensitive Networking (TSN) [RFC9023] | 802.1 Time Sensitive Networking (TSN) [RFC9023] deployed in Industry | |||
deployed in Industry Control and Automation Systems (ICAS). | Control and Automation Systems (ICAS). | |||
DetNet can be seen as a specialized branch of TE, since it sets up | DetNet can be seen as a specialized branch of TE, since it sets up | |||
explicit optimized paths with allocation of resources as requested. | explicit optimized paths with allocation of resources as requested. | |||
A DetNet application can express its QoS attributes or traffic | A DetNet application can express its QoS attributes or traffic | |||
behavior using any combination of DetNet functions described in sub- | behavior using any combination of DetNet functions described in sub- | |||
layers. They are then distributed and provisioned using well- | layers. They are then distributed and provisioned using well- | |||
established control and provisioning mechanisms adopted for traffic | established control and provisioning mechanisms adopted for traffic | |||
engineering. | engineering. | |||
In DetNet, a considerable amount of state information is required to | In DetNet, a considerable amount of state information is required to | |||
maintain per-flow queuing disciplines and resource reservation for a | maintain per-flow queuing disciplines and resource reservation for a | |||
large number of individual flows. This can be quite challenging for | large number of individual flows. This can be quite challenging for | |||
network operations during network events such as faults, change in | network operations during network events, such as faults, change in | |||
traffic volume or re-provisioning. Therefore, DetNet recommends | traffic volume, or reprovisioning. Therefore, DetNet recommends | |||
support for aggregated flows, however, it still requires a large | support for aggregated flows; however, it still requires a large | |||
amount of control signaling to establish and maintain DetNet flows. | amount of control signaling to establish and maintain DetNet flows. | |||
Note that DetNet might suffer from some of the scalability concerns | Note that DetNet might suffer from some of the scalability concerns | |||
described for Intserv in Section 5.1.1.1, but the scope of DetNet's | described for Intserv in Section 5.1.1.1, but the scope of DetNet's | |||
deployment scenarios is smaller and so less exposed to scaling | deployment scenarios is smaller and therefore less exposed to scaling | |||
issues. | issues. | |||
5.1.2. IETF Approaches Relying on TE Mechanisms | 5.1.2. IETF Approaches Relying on TE Mechanisms | |||
5.1.2.1. Application-Layer Traffic Optimization | 5.1.2.1. Application-Layer Traffic Optimization | |||
This document describes various TE mechanisms available in the | This document describes various TE mechanisms available in the | |||
network. However, distributed applications in general and, in | network. However, in general, distributed applications | |||
particular, bandwidth-greedy P2P applications that are used, for | (particularly, bandwidth-greedy P2P applications that are used for | |||
example, for file sharing, cannot directly use those techniques. As | file sharing, for example) cannot directly use those techniques. As | |||
per [RFC5693], applications could greatly improve traffic | per [RFC5693], applications could greatly improve traffic | |||
distribution and quality by cooperating with external services that | distribution and quality by cooperating with external services that | |||
are aware of the network topology. Addressing the Application-Layer | are aware of the network topology. Addressing the Application-Layer | |||
Traffic Optimization (ALTO) problem means, on the one hand, deploying | Traffic Optimization (ALTO) problem means, on the one hand, deploying | |||
an ALTO service to provide applications with information regarding | an ALTO service to provide applications with information regarding | |||
the underlying network (e.g., basic network location structure and | the underlying network (e.g., basic network location structure and | |||
preferences of network paths) and, on the other hand, enhancing | preferences of network paths) and, on the other hand, enhancing | |||
applications in order to use such information to perform better-than- | applications in order to use such information to perform better-than- | |||
random selection of the endpoints with which they establish | random selection of the endpoints with which they establish | |||
connections. | connections. | |||
skipping to change at page 35, line 42 ¶ | skipping to change at line 1643 ¶ | |||
services are built on top of the maps. [RFC7285] describes a | services are built on top of the maps. [RFC7285] describes a | |||
protocol implementing the ALTO services as an information-publishing | protocol implementing the ALTO services as an information-publishing | |||
interface that allows a network to publish its network information to | interface that allows a network to publish its network information to | |||
network applications. This information can include network node | network applications. This information can include network node | |||
locations, groups of node-to-node connectivity arranged by cost | locations, groups of node-to-node connectivity arranged by cost | |||
according to configurable granularities, and end-host properties. | according to configurable granularities, and end-host properties. | |||
The information published by the ALTO Protocol should benefit both | The information published by the ALTO Protocol should benefit both | |||
the network and the applications. The ALTO Protocol uses a REST-ful | the network and the applications. The ALTO Protocol uses a REST-ful | |||
design and encodes its requests and responses using JSON [RFC8259] | design and encodes its requests and responses using JSON [RFC8259] | |||
with a modular design by dividing ALTO information publication into | with a modular design by dividing ALTO information publication into | |||
multiple ALTO services (e.g., the Map service, the Map-Filtering | multiple ALTO services (e.g., the Map Service, the Map-Filtering | |||
Service, the Endpoint Property Service, and the Endpoint Cost | Service, the Endpoint Property Service, and the Endpoint Cost | |||
Service). | Service). | |||
[RFC8189] defines a new service that allows an ALTO Client to | [RFC8189] defines a new service that allows an ALTO Client to | |||
retrieve several cost metrics in a single request for an ALTO | retrieve several cost metrics in a single request for an ALTO | |||
filtered cost map and endpoint cost map. [RFC8896] extends the ALTO | filtered cost map and endpoint cost map. [RFC8896] extends the ALTO | |||
cost information service so that applications decide not only 'where' | cost information service so that applications decide not only "where" | |||
to connect, but also 'when'. This is useful for applications that | to connect but also "when". This is useful for applications that | |||
need to perform bulk data transfer and would like to schedule these | need to perform bulk data transfer and would like to schedule these | |||
transfers during an off-peak hour, for example. [RFC9439] introduces | transfers during an off-peak hour, for example. [RFC9439] introduces | |||
network performance metrics, including network delay, jitter, packet | network performance metrics, including network delay, jitter, packet | |||
loss rate, hop count, and bandwidth. The ALTO server may derive and | loss rate, hop count, and bandwidth. The ALTO server may derive and | |||
aggregate such performance metrics from BGP-LS (see Section 5.1.3.10) | aggregate such performance metrics from BGP-LS (see | |||
or IGP-TE (see Section 5.1.3.9), or management tools, and then expose | Section 5.1.3.10), IGP-TE (see Section 5.1.3.9), or management tools | |||
the information to allow applications to determine 'where' to connect | and then expose the information to allow applications to determine | |||
based on network performance criteria. The ALTO WG is evaluating the | "where" to connect based on network performance criteria. The ALTO | |||
use of network TE properties while making application decisions for | Working Group is evaluating the use of network TE properties while | |||
new use cases such as Edge computing and Datacenter interconnect. | making application decisions for new use cases such as edge computing | |||
and data-center interconnect. | ||||
5.1.2.2. Network Virtualization and Abstraction | 5.1.2.2. Network Virtualization and Abstraction | |||
One of the main drivers for Software Defined Networking (SDN) | One of the main drivers for SDN [RFC7149] is a decoupling of the | |||
[RFC7149] is a decoupling of the network control plane from the data | network control plane from the data plane. This separation has been | |||
plane. This separation has been achieved for TE networks with the | achieved for TE networks with the development of MPLS and GMPLS (see | |||
development of MPLS/GMPLS (see Section 5.1.3.3 and Section 5.1.3.5) | Sections 5.1.3.3 and 5.1.3.5, respectively) and the PCE (see | |||
and the PCE (Section 5.1.3.11). One of the advantages of SDN is its | Section 5.1.3.11). One of the advantages of SDN is its logically | |||
logically centralized control regime that allows a full view of the | centralized control regime that allows a full view of the underlying | |||
underlying networks. Centralized control in SDN helps improve | networks. Centralized control in SDN helps improve network resource | |||
network resource utilization compared with distributed network | utilization compared with distributed network control. | |||
control. | ||||
Abstraction and Control of TE Networks (ACTN) [RFC8453] defines a | Abstraction and Control of TE Networks (ACTN) [RFC8453] defines a | |||
hierarchical SDN architecture which describes the functional entities | hierarchical SDN architecture that describes the functional entities | |||
and methods for the coordination of resources across multiple | and methods for the coordination of resources across multiple | |||
domains, to provide composite traffic-engineered services. ACTN | domains, to provide composite traffic-engineered services. ACTN | |||
facilitates composed, multi-domain connections and provides them to | facilitates composed, multi-domain connections and provides them to | |||
the user. ACTN is focused on: | the user. ACTN is focused on: | |||
* Abstraction of the underlying network resources and how they are | * Abstraction of the underlying network resources and how they are | |||
provided to higher-layer applications and customers. | provided to higher-layer applications and customers. | |||
* Virtualization of underlying resources for use by the customer, | * Virtualization of underlying resources for use by the customer, | |||
application, or service. The creation of a virtualized | application, or service. The creation of a virtualized | |||
environment allows operators to view and control multi-domain | environment allows operators to view and control multi-domain | |||
networks as a single virtualized network. | networks as a single virtualized network. | |||
* Presentation to customers of networks as a virtual network via | * Presentation to customers of networks as a virtual network via | |||
open and programmable interfaces. | open and programmable interfaces. | |||
The ACTN managed infrastructure is built from traffic-engineered | The ACTN managed infrastructure is built from traffic-engineered | |||
network resources, which may include statistical packet bandwidth, | network resources, which may include statistical packet bandwidth, | |||
physical forwarding plane sources (such as wavelengths and time | physical forwarding-plane sources (such as wavelengths and time | |||
slots), forwarding and cross-connect capabilities. The type of | slots), and forwarding and cross-connect capabilities. The type of | |||
network virtualization seen in ACTN allows customers and applications | network virtualization seen in ACTN allows customers and applications | |||
(tenants) to utilize and independently control allocated virtual | (tenants) to utilize and independently control allocated virtual | |||
network resources as if they were physically their own resource. The | network resources as if they were physically their own resource. The | |||
ACTN network is "sliced", with tenants being given a different | ACTN network is sliced, with tenants being given a different partial | |||
partial and abstracted topology view of the physical underlying | and abstracted topology view of the physical underlying network. | |||
network. | ||||
5.1.2.3. Network Slicing | 5.1.2.3. Network Slicing | |||
An IETF Network Slice is a logical network topology connecting a | An IETF Network Slice is a logical network topology connecting a | |||
number of endpoints using a set of shared or dedicated network | number of endpoints using a set of shared or dedicated network | |||
resources [I-D.ietf-teas-ietf-network-slices]. The resources are | resources [NETWORK-SLICES]. The resources are used to satisfy | |||
used to satisfy specific Service Level Objectives (SLOs) specified by | specific SLOs specified by the consumer. | |||
the consumer. | ||||
IETF network slices are not, of themselves, TE constructs. However, | IETF Network Slices are not, of themselves, TE constructs. However, | |||
a network operator that offers IETF network slices is likely to use | a network operator that offers IETF Network Slices is likely to use | |||
many TE tools in order to manage their network and provide the | many TE tools in order to manage their network and provide the | |||
services. | services. | |||
IETF Network Slices are defined such that they are independent of the | IETF Network Slices are defined such that they are independent of the | |||
underlying infrastructure connectivity and technologies used. From a | underlying infrastructure connectivity and technologies used. From a | |||
customer's perspective, an IETF Network Slice looks like a VPN | customer's perspective, an IETF Network Slice looks like a VPN | |||
connectivity matrix with additional information about the level of | connectivity matrix with additional information about the level of | |||
service that the customer requires between the endpoints. From an | service that the customer requires between the endpoints. From an | |||
operator's perspective, the IETF Network Slice looks like a set of | operator's perspective, the IETF Network Slice looks like a set of | |||
routing or tunneling instructions with the network resource | routing or tunneling instructions with the network resource | |||
reservations necessary to provide the required service levels as | reservations necessary to provide the required service levels as | |||
specified by the SLOs. The concept of an IETF network slice is | specified by the SLOs. The concept of an IETF Network Slice is | |||
consistent with an enhanced VPN (VPN+) [I-D.ietf-teas-enhanced-vpn]. | consistent with an enhanced VPN [ENHANCED-VPN]. | |||
5.1.3. IETF Techniques Used by TE Mechanisms | 5.1.3. IETF Techniques Used by TE Mechanisms | |||
5.1.3.1. Constraint-Based Routing | 5.1.3.1. Constraint-Based Routing | |||
Constraint-based routing refers to a class of routing systems that | Constraint-based routing refers to a class of routing systems that | |||
compute routes through a network subject to the satisfaction of a set | compute routes through a network subject to the satisfaction of a set | |||
of constraints and requirements. In the most general case, | of constraints and requirements. In the most general case, | |||
constraint-based routing may also seek to optimize overall network | constraint-based routing may also seek to optimize overall network | |||
performance while minimizing costs. | performance while minimizing costs. | |||
The constraints and requirements may be imposed by the network itself | The constraints and requirements may be imposed by the network itself | |||
or by administrative policies. Constraints may include bandwidth, | or by administrative policies. Constraints may include bandwidth, | |||
hop count, delay, and policy instruments such as resource class | hop count, delay, and policy instruments such as resource class | |||
attributes. Constraints may also include domain-specific attributes | attributes. Constraints may also include domain-specific attributes | |||
of certain network technologies and contexts which impose | of certain network technologies and contexts that impose restrictions | |||
restrictions on the solution space of the routing function. Path | on the solution space of the routing function. Path-oriented | |||
oriented technologies such as MPLS have made constraint-based routing | technologies such as MPLS have made constraint-based routing feasible | |||
feasible and attractive in public IP networks. | and attractive in public IP networks. | |||
The concept of constraint-based routing within the context of MPLS TE | The concept of constraint-based routing within the context of MPLS-TE | |||
requirements in IP networks was first described in [RFC2702] and led | requirements in IP networks was first described in [RFC2702] and led | |||
to developments such as MPLS-TE [RFC3209] as described in | to developments such as MPLS-TE [RFC3209] as described in | |||
Section 5.1.3.3. | Section 5.1.3.3. | |||
Unlike QoS-based routing (for example, see [RFC2386], [MA], and | Unlike QoS-based routing (for example, see [RFC2386], [MA], and | |||
[I-D.ietf-idr-performance-routing]) which generally addresses the | [PERFORMANCE-ROUTING]) that generally addresses the issue of routing | |||
issue of routing individual traffic flows to satisfy prescribed flow- | individual traffic flows to satisfy prescribed flow-based QoS | |||
based QoS requirements subject to network resource availability, | requirements subject to network resource availability, constraint- | |||
constraint-based routing is applicable to traffic aggregates as well | based routing is applicable to traffic aggregates as well as flows | |||
as flows and may be subject to a wide variety of constraints which | and may be subject to a wide variety of constraints that may include | |||
may include policy restrictions. | policy restrictions. | |||
5.1.3.1.1. IGP Flexible Algorithms (Flex-Algos) | 5.1.3.1.1. IGP Flexible Algorithms | |||
The traditional approach to routing in an IGP network relies on the | The normal approach to routing in an IGP network relies on the IGPs | |||
IGPs deriving "shortest paths" over the network based solely on the | deriving "shortest paths" over the network based solely on the IGP | |||
IGP metric assigned to the links. Such an approach is often limited: | metric assigned to the links. Such an approach is often limited: | |||
traffic may tend to converge toward the destination, possibly causing | traffic may tend to converge toward the destination, possibly causing | |||
congestion; and it is not possible to steer traffic onto paths | congestion, and it is not possible to steer traffic onto paths | |||
depending on the end-to-end qualities demanded by the applications. | depending on the end-to-end qualities demanded by the applications. | |||
To overcome this limitation, various sorts of TE have been widely | To overcome this limitation, various sorts of TE have been widely | |||
deployed (as described in this document), where the TE component is | deployed (as described in this document), where the TE component is | |||
responsible for computing the path based on additional metrics and/or | responsible for computing the path based on additional metrics and/or | |||
constraints. Such paths (or tunnels) need to be installed in the | constraints. Such paths (or tunnels) need to be installed in the | |||
routers' forwarding tables in addition to, or as a replacement for | routers' forwarding tables in addition to, or as a replacement for, | |||
the original paths computed by IGPs. The main drawback of these TE | the original paths computed by IGPs. The main drawbacks of these TE | |||
approaches is the additional complexity of protocols and management, | approaches are the additional complexity of protocols and management | |||
and the state that may need to be maintained within the network. | and the state that may need to be maintained within the network. | |||
IGP flexible algorithms (flex-algos) [RFC9350] allow IGPs to | IGP Flexible Algorithms [RFC9350] allow IGPs to construct constraint- | |||
construct constraint-based paths over the network by computing | based paths over the network by computing constraint-based next hops. | |||
constraint- based next hops. The intent of flex-algos is to reduce | The intent of Flexible Algorithms is to reduce TE complexity by | |||
TE complexity by letting an IGP perform some basic TE computation | letting an IGP perform some basic TE computation capabilities. | |||
capabilities. Flex-algo includes a set of extensions to the IGPs | Flexible Algorithm includes a set of extensions to the IGPs that | |||
that enable a router to send TLVs that: | enable a router to send TLVs that: | |||
* describe a set of constraints on the topology | * describe a set of constraints on the topology | |||
* identify calculation-type | * identify calculation-type | |||
* describe a metric-type that is to be used to compute the best | * describe a metric-type that is to be used to compute the best | |||
paths through the constrained topology. | paths through the constrained topology | |||
A given combination of calculation-type, metric-type, and constraints | A given combination of calculation-type, metric-type, and constraints | |||
is known as a "Flexible Algorithm Definition" (or FAD). A router | is known as a Flexible Algorithm Definition (FAD). A router that | |||
that sends such a set of TLVs also assigns a specific identifier (the | sends such a set of TLVs also assigns a specific identifier (the | |||
Flexible Algorithm) to the specified combination of calculation-type, | Flexible Algorithm) to the specified combination of calculation-type, | |||
metric-type, and constraints. | metric-type, and constraints. | |||
There are two use cases for flex-algo: in IP networks | There are two use cases for Flexible Algorithm: in IP networks | |||
[I-D.ietf-lsr-ip-flexalgo] and in Segment Routing networks [RFC9350]. | [RFC9502] and in SR networks [RFC9350]. In the first case, Flexible | |||
In the first case, flex-algo computes paths to an IPv4 or IPv6 | Algorithm computes paths to an IPv4 or IPv6 address; in the second | |||
address, in the second case, flex-algo computes paths to a prefix SID | case, Flexible Algorithms computes paths to a Prefix SID (see | |||
(see Section 5.1.3.12). | Section 5.1.3.12). | |||
Examples of where flex-algo can be useful include: | Examples of where Flexible Algorithms can be useful include: | |||
* Expansion of the function of IP Performance metrics [RFC5664] | * Expansion of the function of IP performance metrics [RFC5664] | |||
where specific constraint-based routing (flex-algo) can be | where specific constraint-based routing (Flexible Algorithm) can | |||
instantiated within the network based on the results of | be instantiated within the network based on the results of | |||
performance measurement. | performance measurement. | |||
* The formation of an 'underlay' network using flex-algo, and the | * The formation of an "underlay" network using Flexible Algorithms, | |||
realization of an 'overlay' network using TE techniques. This | and the realization of an "overlay" network using TE techniques. | |||
approach can leverage the nested combination of flex-algo and TE | This approach can leverage the nested combination of Flexible | |||
extensions for IGP (see Section 5.1.3.9). | Algorithm and TE extensions for IGP (see Section 5.1.3.9). | |||
* Flex-algo in SR-MPLS (Section 5.1.3.12) can be used as a base to | * Flexible Algorithms in SR-MPLS (Section 5.1.3.12) can be used as a | |||
easily build a TE-like topology without TE components on routers | base to easily build a TE-like topology without TE components on | |||
or the use of a PCE (see Section 5.1.3.11). | routers or the use of a PCE (see Section 5.1.3.11). | |||
* The support for network slices [I-D.ietf-teas-ietf-network-slices] | * The support for network slices [NETWORK-SLICES] where the SLOs of | |||
where the SLOs of a particular IETF network slice can be | a particular IETF Network Slice can be guaranteed by a Flexible | |||
guaranteed by a flex-algo, or where a Filtered Topology | Algorithm or where a Filtered Topology [NETWORK-SLICES] can be | |||
[I-D.ietf-teas-ietf-network-slices] can be created as a TE-like | created as a TE-like topology using a Flexible Algorithm. | |||
topology using a flex-algo. | ||||
5.1.3.2. RSVP | 5.1.3.2. RSVP | |||
RSVP is a soft-state signaling protocol [RFC2205]. It supports | RSVP is a soft-state signaling protocol [RFC2205]. It supports | |||
receiver-initiated establishment of resource reservations for both | receiver-initiated establishment of resource reservations for both | |||
multicast and unicast flows. RSVP was originally developed as a | multicast and unicast flows. RSVP was originally developed as a | |||
signaling protocol within the Integrated Services framework (see | signaling protocol within the Integrated Services framework (see | |||
Section 5.1.1.1) for applications to communicate QoS requirements to | Section 5.1.1.1) for applications to communicate QoS requirements to | |||
the network and for the network to reserve relevant resources to | the network and for the network to reserve relevant resources to | |||
satisfy the QoS requirements [RFC2205]. | satisfy the QoS requirements [RFC2205]. | |||
In RSVP, the traffic sender or source node sends a PATH message to | In RSVP, the traffic sender or source node sends a Path message to | |||
the traffic receiver with the same source and destination addresses | the traffic receiver with the same source and destination addresses | |||
as the traffic which the sender will generate. The PATH message | as the traffic that the sender will generate. The Path message | |||
contains: (1) a sender traffic specification describing the | contains: | |||
characteristics of the traffic, (2) a sender template specifying the | ||||
format of the traffic, and (3) an optional advertisement | ||||
specification which is used to support the concept of One Pass With | ||||
Advertising (OPWA) [RFC2205]. Every intermediate router along the | ||||
path forwards the PATH message to the next hop determined by the | ||||
routing protocol. Upon receiving a PATH message, the receiver | ||||
responds with a RESV message which includes a flow descriptor used to | ||||
request resource reservations. The RESV message travels to the | ||||
sender or source node in the opposite direction along the path that | ||||
the PATH message traversed. Every intermediate router along the path | ||||
can reject or accept the reservation request of the RESV message. If | ||||
the request is rejected, the rejecting router will send an error | ||||
message to the receiver and the signaling process will terminate. If | ||||
the request is accepted, link bandwidth and buffer space are | ||||
allocated for the flow and the related flow state information is | ||||
installed in the router. | ||||
One of the issues with the original RSVP specification was | * A sender traffic specification describing the characteristics of | |||
the traffic | ||||
* A sender template specifying the format of the traffic | ||||
* An optional advertisement specification that is used to support | ||||
the concept of One Pass With Advertising (OPWA) [RFC2205] | ||||
Every intermediate router along the path forwards the Path message to | ||||
the next hop determined by the routing protocol. Upon receiving a | ||||
Path message, the receiver responds with a Resv message that includes | ||||
a flow descriptor used to request resource reservations. The Resv | ||||
message travels to the sender or source node in the opposite | ||||
direction along the path that the Path message traversed. Every | ||||
intermediate router along the path can reject or accept the | ||||
reservation request of the Resv message. If the request is rejected, | ||||
the rejecting router will send an error message to the receiver, and | ||||
the signaling process will terminate. If the request is accepted, | ||||
link bandwidth and buffer space are allocated for the flow, and the | ||||
related flow state information is installed in the router. | ||||
One of the issues with the original RSVP specification [RFC2205] was | ||||
scalability. This was because reservations were required for micro- | scalability. This was because reservations were required for micro- | |||
flows, so that the amount of state maintained by network elements | flows, so that the amount of state maintained by network elements | |||
tended to increase linearly with the number of traffic flows. These | tended to increase linearly with the number of traffic flows. These | |||
issues are described in [RFC2961] which also modifies and extends | issues are described in [RFC2961], which also modifies and extends | |||
RSVP to mitigate the scaling problems to make RSVP a versatile | RSVP to mitigate the scaling problems to make RSVP a versatile | |||
signaling protocol for the Internet. For example, RSVP has been | signaling protocol for the Internet. For example, RSVP has been | |||
extended to reserve resources for aggregation of flows [RFC3175], to | extended to reserve resources for aggregation of flows [RFC3175], to | |||
set up MPLS explicit label switched paths (see Section 5.1.3.3), and | set up MPLS explicit LSPs (see Section 5.1.3.3), and to perform other | |||
to perform other signaling functions within the Internet. [RFC2961] | signaling functions within the Internet. [RFC2961] also describes a | |||
also describes a mechanism to reduce the amount of Refresh messages | mechanism to reduce the amount of Refresh messages required to | |||
required to maintain established RSVP sessions. | maintain established RSVP sessions. | |||
5.1.3.3. Multiprotocol Label Switching (MPLS) | 5.1.3.3. MPLS | |||
MPLS is a forwarding scheme which also includes extensions to | MPLS is a forwarding scheme that also includes extensions to | |||
conventional IP control plane protocols. MPLS extends the Internet | conventional IP control plane protocols. MPLS extends the Internet | |||
routing model and enhances packet forwarding and path control | routing model and enhances packet forwarding and path control | |||
[RFC3031]. | [RFC3031]. | |||
At the ingress to an MPLS domain, Label Switching Routers (LSRs) | At the ingress to an MPLS domain, LSRs classify IP packets into | |||
classify IP packets into Forwarding Equivalence Classes (FECs) based | Forwarding Equivalence Classes (FECs) based on a variety of factors, | |||
on a variety of factors, including, e.g., a combination of the | including, e.g., a combination of the information carried in the IP | |||
information carried in the IP header of the packets and the local | header of the packets and the local routing information maintained by | |||
routing information maintained by the LSRs. An MPLS label stack | the LSRs. An MPLS label stack entry is then prepended to each packet | |||
entry is then prepended to each packet according to their forwarding | according to their FECs. The MPLS label stack entry is 32 bits long | |||
equivalence classes. The MPLS label stack entry is 32 bits long and | and contains a 20-bit label field. | |||
contains a 20-bit label field. | ||||
An LSR makes forwarding decisions by using the label prepended to | An LSR makes forwarding decisions by using the label prepended to | |||
packets as the index into a local next hop label forwarding entry | packets as the index into a local Next Hop Label Forwarding Entry | |||
(NHLFE). The packet is then processed as specified in the NHLFE. | (NHLFE). The packet is then processed as specified in the NHLFE. | |||
The incoming label may be replaced by an outgoing label (label swap), | The incoming label may be replaced by an outgoing label (label swap), | |||
and the packet may be forwarded to the next LSR. Before a packet | and the packet may be forwarded to the next LSR. Before a packet | |||
leaves an MPLS domain, its MPLS label may be removed (label pop). A | leaves an MPLS domain, its MPLS label may be removed (label pop). An | |||
Label Switched Path (LSP) is the path between an ingress LSR and an | LSP is the path between an ingress LSR and an egress LSR through | |||
egress LSR through which a labeled packet traverses. The path of an | which a labeled packet traverses. The path of an explicit LSP is | |||
explicit LSP is defined at the originating (ingress) node of the LSP. | defined at the originating (ingress) node of the LSP. MPLS can use a | |||
MPLS can use a signaling protocol such as RSVP or the Label | signaling protocol such as RSVP or the Label Distribution Protocol | |||
Distribution Protocol (LDP) to set up LSPs. | (LDP) to set up LSPs. | |||
MPLS is a powerful technology for Internet TE because it supports | MPLS is a powerful technology for Internet TE because it supports | |||
explicit LSPs which allow constraint-based routing to be implemented | explicit LSPs that allow constraint-based routing to be implemented | |||
efficiently in IP networks [AWD2]. The requirements for TE over MPLS | efficiently in IP networks [AWD2]. The requirements for TE over MPLS | |||
are described in [RFC2702]. Extensions to RSVP to support | are described in [RFC2702]. Extensions to RSVP to support | |||
instantiation of explicit LSP are discussed in [RFC3209] and | instantiation of explicit LSP are discussed in [RFC3209] and | |||
Section 5.1.3.4. | Section 5.1.3.4. | |||
5.1.3.4. RSVP-TE | 5.1.3.4. RSVP-TE | |||
RSVP-TE is a protocol extension of RSVP (Section 5.1.3.2) for traffic | RSVP-TE is a protocol extension of RSVP (Section 5.1.3.2) for traffic | |||
engineering. The base specification is found in [RFC3209]. RSVP-TE | engineering. The base specification is found in [RFC3209]. RSVP-TE | |||
enables the establishment of traffic-engineered MPLS LSPs (TE LSPs), | enables the establishment of traffic-engineered MPLS LSPs (TE LSPs), | |||
using loose or strict paths, and taking into consideration network | using loose or strict paths and taking into consideration network | |||
constraints such as available bandwidth. The extension supports | constraints such as available bandwidth. The extension supports | |||
signaling LSPs on explicit paths that could be administratively | signaling LSPs on explicit paths that could be administratively | |||
specified, or computed by a suitable entity (such as a PCE, | specified or computed by a suitable entity (such as a PCE, | |||
Section 5.1.3.11) based on QoS and policy requirements, taking into | Section 5.1.3.11) based on QoS and policy requirements, taking into | |||
consideration the prevailing network state as advertised by IGP | consideration the prevailing network state as advertised by the IGP | |||
extension for IS-IS in [RFC5305], for OSPFV2 in [RFC3630], and for | extension for IS-IS in [RFC5305], for OSPFv2 in [RFC3630], and for | |||
OSPFv3 in [RFC5329]. RSVP-TE enables the reservation of resources | OSPFv3 in [RFC5329]. RSVP-TE enables the reservation of resources | |||
(for example, bandwidth) along the path. | (for example, bandwidth) along the path. | |||
RSVP-TE includes the ability to preempt LSPs based on priorities, and | RSVP-TE includes the ability to preempt LSPs based on priorities and | |||
uses link affinities to include or exclude links from the LSPs. The | uses link affinities to include or exclude links from the LSPs. The | |||
protocol is further extended to support Fast Reroute (FRR) [RFC4090], | protocol is further extended to support Fast Reroute (FRR) [RFC4090], | |||
Diffserv [RFC4124], and bidirectional LSPs [RFC7551]. RSVP-TE | Diffserv [RFC4124], and bidirectional LSPs [RFC7551]. RSVP-TE | |||
extensions for support for GMPLS (see Section 5.1.3.5) are specified | extensions for support for GMPLS (see Section 5.1.3.5) are specified | |||
in [RFC3473]. | in [RFC3473]. | |||
Requirements for point-to-multipoint (P2MP) MPLS TE LSPs are | Requirements for point-to-multipoint (P2MP) MPLS-TE LSPs are | |||
documented in [RFC4461], and signaling protocol extensions for | documented in [RFC4461], and signaling protocol extensions for | |||
setting up P2MP MPLS TE LSPs via RSVP-TE are defined in [RFC4875] | setting up P2MP MPLS-TE LSPs via RSVP-TE are defined in [RFC4875], | |||
where a P2MP LSP comprise multiple source-to-leaf (S2L) sub-LSPs. To | where a P2MP LSP comprises multiple source-to-leaf (S2L) sub-LSPs. | |||
determine the paths for P2MP LSPs, selection of the branch points | To determine the paths for P2MP LSPs, selection of the branch points | |||
(based on capabilities, network state, and policies) is key [RFC5671] | (based on capabilities, network state, and policies) is key [RFC5671] | |||
RSVP-TE has evolved to provide real time dynamic metrics for path | RSVP-TE has evolved to provide real-time dynamic metrics for path | |||
selection for low latency paths using extensions to IS-IS [RFC8570] | selection for low-latency paths using extensions to IS-IS [RFC8570] | |||
and OSPF [RFC7471] based on STAMP [RFC8972] and TWAMP [RFC5357] | and OSPF [RFC7471] based on performance measurements for the Simple | |||
performance measurements. | Two-Way Active Measurement Protocol (STAMP) [RFC8972] and the Two-Way | |||
Active Measurement Protocol (TWAMP) [RFC5357]. | ||||
RSVP-TE has historically been used when bandwidth was constrained, | RSVP-TE has historically been used when bandwidth was constrained; | |||
however, as bandwidth has increased, RSVP-TE has developed into a | however, as bandwidth has increased, RSVP-TE has developed into a | |||
bandwidth management tool to provide bandwidth efficiency and | bandwidth management tool to provide bandwidth efficiency and | |||
proactive resource management. | proactive resource management. | |||
5.1.3.5. Generalized MPLS (GMPLS) | 5.1.3.5. Generalized MPLS (GMPLS) | |||
GMPLS extends MPLS control protocols to encompass time-division | GMPLS extends MPLS control protocols to encompass time-division | |||
(e.g., Synchronous Optical Network / Synchronous Digital Hierarchy | (e.g., Synchronous Optical Network / Synchronous Digital Hierarchy | |||
(SONET/SDH), Plesiochronous Digital Hierarchy (PDH), Optical | (SONET/SDH), Plesiochronous Digital Hierarchy (PDH), and Optical | |||
Transport Network (OTN)), wavelength (lambdas), and spatial switching | Transport Network (OTN)), wavelength (lambdas), and spatial switching | |||
(e.g., incoming port or fiber to outgoing port or fiber) as well as | (e.g., incoming port or fiber to outgoing port or fiber) and | |||
continuing to support packet switching. GMPLS provides a common set | continues to support packet switching. GMPLS provides a common set | |||
of control protocols for all of these layers (including some | of control protocols for all of these layers (including some | |||
technology-specific extensions) each of which has a distinct data or | technology-specific extensions), each of which has a distinct data or | |||
forwarding plane. GMPLS covers both the signaling and the routing | forwarding plane. GMPLS covers both the signaling and the routing | |||
part of that control plane and is based on the TE extensions to MPLS | part of that control plane and is based on the TE extensions to MPLS | |||
(see Section 5.1.3.4). | (see Section 5.1.3.4). | |||
In GMPLS [RFC3945], the original MPLS architecture is extended to | In GMPLS [RFC3945], the original MPLS architecture is extended to | |||
include LSRs whose forwarding planes rely on circuit switching, and | include LSRs whose forwarding planes rely on circuit switching and | |||
therefore cannot forward data based on the information carried in | therefore cannot forward data based on the information carried in | |||
either packet or cell headers. Specifically, such LSRs include | either packet or cell headers. Specifically, such LSRs include | |||
devices where the switching is based on time slots, wavelengths, or | devices where the switching is based on time slots, wavelengths, or | |||
physical ports. These additions impact basic LSP properties: how | physical ports. These additions impact basic LSP properties: how | |||
labels are requested and communicated, the unidirectional nature of | labels are requested and communicated, the unidirectional nature of | |||
MPLS LSPs, how errors are propagated, and information provided for | MPLS LSPs, how errors are propagated, and information provided for | |||
synchronizing the ingress and egress LSRs [RFC3473]. | synchronizing the ingress and egress LSRs [RFC3473]. | |||
5.1.3.6. IP Performance Metrics | 5.1.3.6. IP Performance Metrics (IPPM) | |||
The IETF IP Performance Metrics (IPPM) working group has developed a | The IETF IP Performance Metrics (IPPM) Working Group has developed a | |||
set of standard metrics that can be used to monitor the quality, | set of standard metrics that can be used to monitor the quality, | |||
performance, and reliability of Internet services. These metrics can | performance, and reliability of Internet services. These metrics can | |||
be applied by network operators, end-users, and independent testing | be applied by network operators, end users, and independent testing | |||
groups to provide users and service providers with a common | groups to provide users and service providers with a common | |||
understanding of the performance and reliability of the Internet | understanding of the performance and reliability of the Internet | |||
component 'clouds' they use/provide [RFC2330]. The criteria for | component clouds they use/provide [RFC2330]. The criteria for | |||
performance metrics developed by the IPPM working group are described | performance metrics developed by the IPPM Working Group are described | |||
in [RFC2330]. Examples of performance metrics include one-way packet | in [RFC2330]. Examples of performance metrics include one-way packet | |||
loss [RFC7680], one-way delay [RFC7679], and connectivity measures | loss [RFC7680], one-way delay [RFC7679], and connectivity measures | |||
between two nodes [RFC2678]. Other metrics include second-order | between two nodes [RFC2678]. Other metrics include second-order | |||
measures of packet loss and delay. | measures of packet loss and delay. | |||
Some of the performance metrics specified by the IPPM working group | Some of the performance metrics specified by the IPPM Working Group | |||
are useful for specifying SLAs. SLAs are sets of service level | are useful for specifying SLAs. SLAs are sets of SLOs negotiated | |||
objectives negotiated between users and service providers, wherein | between users and service providers, wherein each objective is a | |||
each objective is a combination of one or more performance metrics, | combination of one or more performance metrics, possibly subject to | |||
possibly subject to certain constraints. | certain constraints. | |||
The IPPM working group also designs measurement techniques and | The IPPM Working Group also designs measurement techniques and | |||
protocols to obtain thwse metrics. | protocols to obtain these metrics. | |||
5.1.3.7. Flow Measurement | 5.1.3.7. Flow Measurement | |||
The IETF Real Time Flow Measurement (RTFM) working group produced an | The IETF Real Time Flow Measurement (RTFM) Working Group produced an | |||
architecture that defines a method to specify traffic flows as well | architecture that defines a method to specify traffic flows as well | |||
as a number of components for flow measurement (meters, meter | as a number of components for flow measurement (meters, meter | |||
readers, manager) [RFC2722]. A flow measurement system enables | readers, and managers) [RFC2722]. A flow measurement system enables | |||
network traffic flows to be measured and analyzed at the flow level | network traffic flows to be measured and analyzed at the flow level | |||
for a variety of purposes. As noted in RFC 2722, a flow measurement | for a variety of purposes. As noted in [RFC2722], a flow measurement | |||
system can be very useful in the following contexts: | system can be very useful in the following contexts: | |||
* understanding the behavior of existing networks | * understanding the behavior of existing networks | |||
* planning for network development and expansion | * planning for network development and expansion | |||
* quantification of network performance | * quantification of network performance | |||
* verifying the quality of network service | * verifying the quality of network service | |||
* attribution of network usage to users. | * attribution of network usage to users | |||
A flow measurement system consists of meters, meter readers, and | A flow measurement system consists of meters, meter readers, and | |||
managers. A meter observes packets passing through a measurement | managers. A meter observes packets passing through a measurement | |||
point, classifies them into groups, accumulates usage data (such as | point, classifies them into groups, accumulates usage data (such as | |||
the number of packets and bytes for each group), and stores the usage | the number of packets and bytes for each group), and stores the usage | |||
data in a flow table. A group may represent any collection of user | data in a flow table. A group may represent any collection of user | |||
applications, hosts, networks, etc. A meter reader gathers usage | applications, hosts, networks, etc. A meter reader gathers usage | |||
data from various meters so it can be made available for analysis. A | data from various meters so it can be made available for analysis. A | |||
manager is responsible for configuring and controlling meters and | manager is responsible for configuring and controlling meters and | |||
meter readers. The instructions received by a meter from a manager | meter readers. The instructions received by a meter from a manager | |||
skipping to change at page 44, line 20 ¶ | skipping to change at line 2034 ¶ | |||
techniques. The instructions received by a meter reader from a | techniques. The instructions received by a meter reader from a | |||
manager include the address of the meter whose data are to be | manager include the address of the meter whose data are to be | |||
collected, the frequency of data collection, and the types of flows | collected, the frequency of data collection, and the types of flows | |||
to be collected. | to be collected. | |||
IP Flow Information Export (IPFIX) [RFC5470] defines an architecture | IP Flow Information Export (IPFIX) [RFC5470] defines an architecture | |||
that is very similar to the RTFM architecture and includes Metering, | that is very similar to the RTFM architecture and includes Metering, | |||
Exporting, and Collecting Processes. [RFC5472] describes the | Exporting, and Collecting Processes. [RFC5472] describes the | |||
applicability of IPFIX and makes a comparison with RTFM, pointing out | applicability of IPFIX and makes a comparison with RTFM, pointing out | |||
that, architecturally, while RTM talks about devices, IPFIX deals | that, architecturally, while RTM talks about devices, IPFIX deals | |||
with processed to clarify that multiple of those processes may be co- | with processes to clarify that multiple of those processes may be co- | |||
located on the same machine. The IPFIX protocol [RFC7011] is widely | located on the same machine. The IPFIX protocol [RFC7011] is widely | |||
implemented. | implemented. | |||
5.1.3.8. Endpoint Congestion Management | 5.1.3.8. Endpoint Congestion Management | |||
[RFC3124] provides a set of congestion control mechanisms for the use | [RFC3124] provides a set of congestion control mechanisms for the use | |||
of transport protocols. It also allows the development of mechanisms | of transport protocols. It also allows the development of mechanisms | |||
for unifying congestion control across a subset of an endpoint's | for unifying congestion control across a subset of an endpoint's | |||
active unicast connections (called a congestion group). A congestion | active unicast connections (called a "congestion group"). A | |||
manager continuously monitors the state of the path for each | congestion manager continuously monitors the state of the path for | |||
congestion group under its control. The manager uses that | each congestion group under its control. The manager uses that | |||
information to instruct a scheduler on how to partition bandwidth | information to instruct a scheduler on how to partition bandwidth | |||
among the connections of that congestion group. | among the connections of that congestion group. | |||
The concepts described in [RFC3124] and the lessons that can be | The concepts described in [RFC3124] and the lessons that can be | |||
learned from that work found a home in HTTP/2 [RFC9113] and QUIC | learned from that work found a home in HTTP/2 [RFC9113] and QUIC | |||
[RFC9000], while [RFC9040] describes TCP control block | [RFC9000], while [RFC9040] describes TCP control block | |||
interdependence which is a core construct underpinning the congestion | interdependence that is a core construct underpinning the congestion | |||
manager defined in [RFC3124]. | manager defined in [RFC3124]. | |||
5.1.3.9. TE Extensions to the IGPs | 5.1.3.9. TE Extensions to the IGPs | |||
[RFC5305] describes the extensions to the Intermediate System to | [RFC5305] describes the extensions to the Intermediate System to | |||
Intermediate System (IS-IS) protocol to support TE, similarly | Intermediate System (IS-IS) protocol to support TE. Similarly, | |||
[RFC3630] specifies TE extensions for OSPFv2, and [RFC5329] has the | [RFC3630] specifies TE extensions for OSPFv2, and [RFC5329] has the | |||
same description for OSPFv3. | same description for OSPFv3. | |||
IS-IS and OSPF share the common concept of TE extensions to | IS-IS and OSPF share the common concept of TE extensions to | |||
distribute TE parameters such as link type and ID, local and remote | distribute TE parameters, such as link type and ID, local and remote | |||
IP addresses, TE metric, maximum bandwidth, maximum reservable | IP addresses, TE metric, maximum bandwidth, maximum reservable | |||
bandwidth and unreserved bandwidth, and admin group. The information | bandwidth, unreserved bandwidth, and admin group. The information | |||
distributed by the IGPs in this way can be used to build a view of | distributed by the IGPs in this way can be used to build a view of | |||
the state and capabilities of a TE network (see Section 5.1.3.14). | the state and capabilities of a TE network (see Section 5.1.3.14). | |||
The difference between IS-IS and OSPF is in the details of how they | The difference between IS-IS and OSPF is in the details of how they | |||
encode and transmit the TE parameters: | encode and transmit the TE parameters: | |||
* IS-IS uses the Extended IS Reachability TLV (type 22), the | * IS-IS uses the Extended IS Reachability TLV (type 22), the | |||
Extended IP Reachability TLV (type 135), and the TE Router ID TLV | Extended IP Reachability TLV (type 135), and the Traffic | |||
(type 134). These TLVs use specific Sub-TLVs described in | Engineering router ID TLV (type 134). These TLVs use specific | |||
[RFC8570] to carry for the TE parameters. | sub-TLVs described in [RFC8570] to carry the TE parameters. | |||
* OSPFv2 uses Opaque LSA [RFC5250] type 10 and OSPFv3 uses the | * OSPFv2 uses Opaque LSA [RFC5250] type 10, and OSPFv3 uses the | |||
Intra-Area-TE-LSA. In both OSPF cases, two top-level TLVs are | Intra-Area-TE-LSA. In both OSPF cases, two top-level TLVs are | |||
used (Router Address and Link TLVs), and these use Sub-TLVs to | used (Router Address and Link TLVs), and these use sub-TLVs to | |||
carry the TE parameters (as defined in [RFC7471] for OSPFv2 and | carry the TE parameters (as defined in [RFC7471] for OSPFv2 and | |||
[RFC5329] for OSPFv3. | [RFC5329] for OSPFv3). | |||
5.1.3.10. BGP Link-State | 5.1.3.10. BGP - Link State | |||
In a number of environments, a component external to a network is | In a number of environments, a component external to a network is | |||
called upon to perform computations based on the network topology and | called upon to perform computations based on the network topology and | |||
current state of the connections within the network, including TE | current state of the connections within the network, including TE | |||
information. This is information typically distributed by IGP | information. This is information typically distributed by IGP | |||
routing protocols within the network (see Section 5.1.3.9). | routing protocols within the network (see Section 5.1.3.9). | |||
The Border Gateway Protocol (BGP) (see also Section 7) is one of the | BGP (see also Section 7) is one of the essential routing protocols | |||
essential routing protocols that glue the Internet together. BGP | that glues the Internet together. BGP-LS [RFC9552] is a mechanism by | |||
Link State (BGP-LS) [RFC7752] is a mechanism by which link-state and | which link-state and TE information can be collected from networks | |||
TE information can be collected from networks and shared with | and shared with external components using the BGP routing protocol. | |||
external components using the BGP routing protocol. The mechanism is | The mechanism is applicable to physical and virtual IGP links and is | |||
applicable to physical and virtual IGP links, and is subject to | subject to policy control. | |||
policy control. | ||||
Information collected by BGP-LS can be used, for example, to | Information collected by BGP-LS can be used, for example, to | |||
construct the TED (Section 5.1.3.14) for use by the Path Computation | construct the TED (Section 5.1.3.14) for use by the PCE (see | |||
Element (PCE, see Section 5.1.3.11), or may be used by Application- | Section 5.1.3.11) or may be used by ALTO servers (see | |||
Layer Traffic Optimization (ALTO) servers (see Section 5.1.2.1). | Section 5.1.2.1). | |||
5.1.3.11. Path Computation Element | 5.1.3.11. Path Computation Element | |||
Constraint-based path computation is a fundamental building block for | Constraint-based path computation is a fundamental building block for | |||
TE in MPLS and GMPLS networks. Path computation in large, multi- | TE in MPLS and GMPLS networks. Path computation in large, multi- | |||
domain networks is complex and may require special computational | domain networks is complex and may require special computational | |||
components and cooperation between the elements in different domains. | components and cooperation between the elements in different domains. | |||
The Path Computation Element (PCE) [RFC4655] is an entity (component, | The PCE [RFC4655] is an entity (component, application, or network | |||
application, or network node) that is capable of computing a network | node) that is capable of computing a network path or route based on a | |||
path or route based on a network graph and applying computational | network graph and applying computational constraints. | |||
constraints. | ||||
Thus, a PCE can provide a central component in a TE system operating | Thus, a PCE can provide a central component in a TE system operating | |||
on the TE Database (TED, see Section 5.1.3.14) with delegated | on the TED (see Section 5.1.3.14) with delegated responsibility for | |||
responsibility for determining paths in MPLS, GMPLS, or Segment | determining paths in MPLS, GMPLS, or SR networks. The PCE uses the | |||
Routing networks. The PCE uses the Path Computation Element | Path Computation Element Communication Protocol (PCEP) [RFC5440] to | |||
Communication Protocol (PCEP) [RFC5440] to communicate with Path | communicate with Path Computation Clients (PCCs), such as MPLS LSRs, | |||
Computation Clients (PCCs), such as MPLS LSRs, to answer their | to answer their requests for computed paths or to instruct them to | |||
requests for computed paths or to instruct them to initiate new paths | initiate new paths [RFC8281] and maintain state about paths already | |||
[RFC8281] and maintain state about paths already installed in the | installed in the network [RFC8231]. | |||
network [RFC8231]. | ||||
PCEs form key components of a number of TE systems. More information | PCEs form key components of a number of TE systems. More information | |||
about the applicability of PCE can be found in [RFC8051], while | about the applicability of PCEs can be found in [RFC8051], while | |||
[RFC6805] describes the application of PCE to determining paths | [RFC6805] describes the application of PCEs to determining paths | |||
across multiple domains. PCE also has potential use in Abstraction | across multiple domains. PCEs also have potential uses in | |||
and Control of TE Networks (ACTN) (see Section 5.1.2.2), Centralized | Abstraction and Control of TE Networks (ACTN) (see Section 5.1.2.2), | |||
Network Control [RFC8283], and Software Defined Networking (SDN) (see | Centralized Network Control [RFC8283], and SDN (see Section 4.3.2). | |||
Section 4.3.2). | ||||
5.1.3.12. Segment Routing | 5.1.3.12. Segment Routing (SR) | |||
The Segment Routing (SR) architecture [RFC8402] leverages the source | The SR architecture [RFC8402] leverages the source routing and | |||
routing and tunneling paradigms. The path a packet takes is defined | tunneling paradigms. The path a packet takes is defined at the | |||
at the ingress and the packet is tunneled to the egress. | ingress, and the packet is tunneled to the egress. | |||
In a protocol realization, an ingress node steers a packet using a | In a protocol realization, an ingress node steers a packet using a | |||
set of instructions, called segments, that are included in an SR | set of instructions, called "segments", that are included in an SR | |||
header prepended to the packet: a label stack in MPLS case, and a | header prepended to the packet: a label stack in MPLS case, and a | |||
series of 128-bit segment identifiers in the IPv6 case. | series of 128-bit SIDs in the IPv6 case. | |||
Segments are identified by Segment Identifiers (SIDs). There are | Segments are identified by SIDs. There are four types of SIDs that | |||
four types of SID that are relevant for TE. | are relevant for TE. | |||
* Prefix SID: A SID that is unique within the routing domain and is | * Prefix SID: A SID that is unique within the routing domain and is | |||
used to identify a prefix. | used to identify a prefix. | |||
* Node SID: A Prefix SID with the 'N' bit set to identify a node. | * Node SID: A Prefix SID with the "N" bit set to identify a node. | |||
* Adjacency SID: Identifies a unidirectional adjacency. | * Adjacency SID: Identifies a unidirectional adjacency. | |||
* Binding SID: A Binding SID has two purposes: | * Binding SID: A Binding SID has two purposes: | |||
1. To advertise the mappings of prefixes to SIDs/Labels. | 1. To advertise the mappings of prefixes to SIDs/Labels | |||
2. To advertise a path available for a Forwarding Equivalence | 2. To advertise a path available for a Forwarding Equivalence | |||
Class. | Class (FEC) | |||
A segment can represent any instruction, topological or service- | A segment can represent any instruction, topological or service- | |||
based. SIDs can be looked up in a global context (domain wide) as | based. SIDs can be looked up in a global context (domain-wide) as | |||
well as in some other context (see, for example, "context labels" in | well as in some other contexts (see, for example, "context labels" in | |||
Section 3 of [RFC5331]). | Section 3 of [RFC5331]). | |||
The application of "policy" to Segment Routing can make SR into a TE | The application of policy to SR can make SR into a TE mechanism, as | |||
mechanism as described in Section 5.1.1.3. | described in Section 5.1.1.3. | |||
5.1.3.13. Bit Index Explicit Replication Tree Engineering | 5.1.3.13. Tree Engineering for Bit Index Explicit Replication | |||
Bit Index Explicit Replication (BIER) [RFC8279] specifies an | Bit Index Explicit Replication (BIER) [RFC8279] specifies an | |||
encapsulation for multicast forwarding that can be used on MPLS or | encapsulation for multicast forwarding that can be used on MPLS or | |||
Ethernet transports. A mechanism known as Tree Engineering for Bit | Ethernet transports. A mechanism known as Tree Engineering for Bit | |||
Index Explicit Replication (BIER-TE) [RFC9262] provides a component | Index Explicit Replication (BIER-TE) [RFC9262] provides a component | |||
that could be used to build a traffic-engineered multicast system. | that could be used to build a traffic-engineered multicast system. | |||
BIER-TE does not of itself offer full traffic engineering, and the | BIER-TE does not of itself offer full traffic engineering, and the | |||
abbreviation "TE" does not, in this case, refer to traffic | abbreviation "TE" does not, in this case, refer to traffic | |||
engineering. | engineering. | |||
In BIER-TE, path steering is supported via the definition of a | In BIER-TE, path steering is supported via the definition of a | |||
bitstring attached to each packet that determines how the packet is | bitstring attached to each packet that determines how the packet is | |||
forwarded and replicated within the network. Thus, this bitstring | forwarded and replicated within the network. Thus, this bitstring | |||
steers the traffic within the network and forms an element of a | steers the traffic within the network and forms an element of a | |||
traffic engineering system. A central controller that is aware of | traffic-engineering system. A central controller that is aware of | |||
the capabilities and state of the network as well as the demands of | the capabilities and state of the network as well as the demands of | |||
the various traffic flows, is able to select multicast paths that | the various traffic flows is able to select multicast paths that take | |||
take account of the available resources and demands. This | account of the available resources and demands. Therefore, this | |||
controller, therefore, is responsible for the policy elements of | controller is responsible for the policy elements of traffic | |||
traffic engineering. | engineering. | |||
Resource management has implications for the forwarding plane beyond | Resource management has implications for the forwarding plane beyond | |||
the steering of packets defined for BIER-TE. These include the | the steering of packets defined for BIER-TE. These include the | |||
allocation of buffers to meet the requirements of admitted traffic, | allocation of buffers to meet the requirements of admitted traffic | |||
and may include policing and/or rate-shaping mechanisms achieved via | and may include policing and/or rate-shaping mechanisms achieved via | |||
various forms of queuing. This level of resource control, while | various forms of queuing. This level of resource control, while | |||
optional, is important in networks that wish to support congestion | optional, is important in networks that wish to support congestion | |||
management policies to control or regulate the offered traffic to | management policies to control or regulate the offered traffic to | |||
deliver different levels of service and alleviate congestion | deliver different levels of service and alleviate congestion | |||
problems, or those networks that wish to control latencies | problems. It is also important in networks that wish to control | |||
experienced by specific traffic flows. | latencies experienced by specific traffic flows. | |||
5.1.3.14. Network TE State Definition and Presentation | 5.1.3.14. Network TE State Definition and Presentation | |||
The network states that are relevant to TE need to be stored in the | The network states that are relevant to TE need to be stored in the | |||
system and presented to the user. The Traffic Engineering Database | system and presented to the user. The TED is a collection of all TE | |||
(TED) is a collection of all TE information about all TE nodes and TE | information about all TE nodes and TE links in the network. It is an | |||
links in the network. It is an essential component of a TE system, | essential component of a TE system, such as MPLS-TE [RFC2702] or | |||
such as MPLS-TE [RFC2702] or GMPLS [RFC3945]. In order to formally | GMPLS [RFC3945]. In order to formally define the data in the TED and | |||
define the data in the TED and to present the data to the user, the | to present the data to the user, the data modeling language YANG | |||
data modeling language YANG [RFC7950] can be used as described in | [RFC7950] can be used as described in [RFC8795]. | |||
[RFC8795]. | ||||
5.1.3.15. System Management and Control Interfaces | 5.1.3.15. System Management and Control Interfaces | |||
The TE control system needs to have a management interface that is | The TE control system needs to have a management interface that is | |||
human-friendly and a control interface that is programmable for | human-friendly and a control interface that is programmable for | |||
automation. The Network Configuration Protocol (NETCONF) [RFC6241] | automation. The Network Configuration Protocol (NETCONF) [RFC6241] | |||
or the RESTCONF Protocol [RFC8040] provide programmable interfaces | and the RESTCONF protocol [RFC8040] provide programmable interfaces | |||
that are also human-friendly. These protocols use XML or JSON | that are also human-friendly. These protocols use XML- or JSON- | |||
encoded messages. When message compactness or protocol bandwidth | encoded messages. When message compactness or protocol bandwidth | |||
consumption needs to be optimized for the control interface, other | consumption needs to be optimized for the control interface, other | |||
protocols, such as Group Communication for the Constrained | protocols, such as Group Communication for the Constrained | |||
Application Protocol (CoAP) [RFC7390] or gRPC [GRPC], are available, | Application Protocol (CoAP) [RFC7390] or gRPC [GRPC], are available, | |||
especially when the protocol messages are encoded in a binary format. | especially when the protocol messages are encoded in a binary format. | |||
Along with any of these protocols, the data modeling language YANG | Along with any of these protocols, the data modeling language YANG | |||
[RFC7950] can be used to formally and precisely define the interface | [RFC7950] can be used to formally and precisely define the interface | |||
data. | data. | |||
The Path Computation Element Communication Protocol (PCEP) [RFC5440] | PCEP [RFC5440] is another protocol that has evolved to be an option | |||
is another protocol that has evolved to be an option for the TE | for the TE system control interface. PCEP messages are TLV based; | |||
system control interface. The messages of PCEP are TLV-based, not | they are not defined by a data-modeling language such as YANG. | |||
defined by a data modeling language such as YANG. | ||||
5.2. Content Distribution | 5.2. Content Distribution | |||
The Internet is dominated by client-server interactions, principally | The Internet is dominated by client-server interactions, principally | |||
Web traffic and multimedia streams, although in the future, more | web traffic and multimedia streams, although in the future, more | |||
sophisticated media servers may become dominant. The location and | sophisticated media servers may become dominant. The location and | |||
performance of major information servers has a significant impact on | performance of major information servers have a significant impact on | |||
the traffic patterns within the Internet as well as on the perception | the traffic patterns within the Internet as well as on the perception | |||
of service quality by end users. | of service quality by end users. | |||
A number of dynamic load-balancing techniques have been devised to | A number of dynamic load-balancing techniques have been devised to | |||
improve the performance of replicated information servers. These | improve the performance of replicated information servers. These | |||
techniques can cause spatial traffic characteristics to become more | techniques can cause spatial traffic characteristics to become more | |||
dynamic in the Internet because information servers can be | dynamic in the Internet because information servers can be | |||
dynamically picked based upon the location of the clients, the | dynamically picked based upon the location of the clients, the | |||
location of the servers, the relative utilization of the servers, the | location of the servers, the relative utilization of the servers, the | |||
relative performance of different networks, and the relative | relative performance of different networks, and the relative | |||
performance of different parts of a network. This process of | performance of different parts of a network. This process of | |||
assignment of distributed servers to clients is called traffic | assignment of distributed servers to clients is called "traffic | |||
directing. It is an application layer function. | directing". It is an application-layer function. | |||
Traffic directing schemes that allocate servers in multiple | Traffic-directing schemes that allocate servers in multiple | |||
geographically dispersed locations to clients may require empirical | geographically dispersed locations to clients may require empirical | |||
network performance statistics to make more effective decisions. In | network performance statistics to make more effective decisions. In | |||
the future, network measurement systems may need to provide this type | the future, network measurement systems may need to provide this type | |||
of information. | of information. | |||
When congestion exists in the network, traffic directing and traffic | When congestion exists in the network, traffic-directing and traffic- | |||
engineering systems should act in a coordinated manner. This topic | engineering systems should act in a coordinated manner. This topic | |||
is for further study. | is for further study. | |||
The issues related to location and replication of information | The issues related to location and replication of information | |||
servers, particularly web servers, are important for Internet traffic | servers, particularly web servers, are important for Internet traffic | |||
engineering because these servers contribute a substantial proportion | engineering because these servers contribute a substantial proportion | |||
of Internet traffic. | of Internet traffic. | |||
6. Recommendations for Internet Traffic Engineering | 6. Recommendations for Internet Traffic Engineering | |||
This section describes high-level recommendations for traffic | This section describes high-level recommendations for traffic | |||
engineering in the Internet in general terms. | engineering in the Internet in general terms. | |||
The recommendations describe the capabilities needed to solve a TE | The recommendations describe the capabilities needed to solve a TE | |||
problem or to achieve a TE objective. Broadly speaking, these | problem or to achieve a TE objective. Broadly speaking, these | |||
recommendations can be categorized as either functional or non- | recommendations can be categorized as either functional or non- | |||
functional recommendations. | functional recommendations: | |||
* Functional recommendations describe the functions that a traffic | * Functional recommendations describe the functions that a traffic- | |||
engineering system should perform. These functions are needed to | engineering system should perform. These functions are needed to | |||
realize TE objectives by addressing traffic engineering problems. | realize TE objectives by addressing traffic-engineering problems. | |||
* Non-functional recommendations relate to the quality attributes or | * Non-functional recommendations relate to the quality attributes or | |||
state characteristics of a TE system. These recommendations may | state characteristics of a TE system. These recommendations may | |||
contain conflicting assertions and may sometimes be difficult to | contain conflicting assertions and may sometimes be difficult to | |||
quantify precisely. | quantify precisely. | |||
The subsections that follow first summarize the non-functional | The subsections that follow first summarize the non-functional | |||
requirements, and then detail the functional requirements. | requirements and then detail the functional requirements. | |||
6.1. Generic Non-functional Recommendations | 6.1. Generic Non-functional Recommendations | |||
The generic non-functional recommendations for Internet traffic | The generic non-functional recommendations for Internet traffic | |||
engineering are listed in the paragraphs that follow. In a given | engineering are listed in the paragraphs that follow. In a given | |||
context, some of these recommendations may be critical while others | context, some of these recommendations may be critical while others | |||
may be optional. Therefore, prioritization may be required during | may be optional. Therefore, prioritization may be required during | |||
the development phase of a TE system to tailor it to a specific | the development phase of a TE system to tailor it to a specific | |||
operational context. | operational context. | |||
skipping to change at page 50, line 38 ¶ | skipping to change at line 2310 ¶ | |||
may additionally benefit from feedback from the network that | may additionally benefit from feedback from the network that | |||
indicates the state of network resources and the current load in | indicates the state of network resources and the current load in | |||
the network. Further, placing intelligence into components of the | the network. Further, placing intelligence into components of the | |||
TE system could enable automation to be more dynamic and | TE system could enable automation to be more dynamic and | |||
responsive to changes in the network. | responsive to changes in the network. | |||
Flexibility: A TE system should allow for changes in optimization | Flexibility: A TE system should allow for changes in optimization | |||
policy. In particular, a TE system should provide sufficient | policy. In particular, a TE system should provide sufficient | |||
configuration options so that a network administrator can tailor | configuration options so that a network administrator can tailor | |||
the system to a particular environment. It may also be desirable | the system to a particular environment. It may also be desirable | |||
to have both online and offline TE subsystems which can be | to have both online and offline TE subsystems that can be | |||
independently enabled and disabled. TE systems that are used in | independently enabled and disabled. TE systems that are used in | |||
multi-class networks should also have options to support class- | multi-class networks should also have options to support class- | |||
based performance evaluation and optimization. | based performance evaluation and optimization. | |||
Interoperability: Whenever feasible, TE systems and their components | Interoperability: Whenever feasible, TE systems and their components | |||
should be developed with open standards-based interfaces to allow | should be developed with open standards-based interfaces to allow | |||
interoperation with other systems and components. | interoperation with other systems and components. | |||
Scalability: Public networks continue to grow rapidly with respect | Scalability: Public networks continue to grow rapidly with respect | |||
to network size and traffic volume. Therefore, to remain | to network size and traffic volume. Therefore, to remain | |||
applicable as the network evolves, a TE system should be scalable. | applicable as the network evolves, a TE system should be scalable. | |||
In particular, a TE system should remain functional as the network | In particular, a TE system should remain functional as the network | |||
expands with regard to the number of routers and links, and with | expands with regard to the number of routers and links and with | |||
respect to the number of flows and the traffic volume. A TE | respect to the number of flows and the traffic volume. A TE | |||
system should have a scalable architecture, should not adversely | system should have a scalable architecture, should not adversely | |||
impair other functions and processes in a network element, and | impair other functions and processes in a network element, and | |||
should not consume too many network resources when collecting and | should not consume too many network resources when collecting and | |||
distributing state information, or when exerting control. | distributing state information or when exerting control. | |||
Security: Security is a critical consideration in TE systems. Such | Security: Security is a critical consideration in TE systems. Such | |||
systems typically exert control over functional aspects of the | systems typically exert control over functional aspects of the | |||
network to achieve the desired performance objectives. Therefore, | network to achieve the desired performance objectives. Therefore, | |||
adequate measures must be taken to safeguard the integrity of the | adequate measures must be taken to safeguard the integrity of the | |||
TE system. Adequate measures must also be taken to protect the | TE system. Adequate measures must also be taken to protect the | |||
network from vulnerabilities that originate from security breaches | network from vulnerabilities that originate from security breaches | |||
and other impairments within the TE system. | and other impairments within the TE system. | |||
Simplicity: A TE system should be as simple as possible. Simplicity | Simplicity: A TE system should be as simple as possible. Simplicity | |||
in user interface does not necessarily imply that the TE system | in user interface does not necessarily imply that the TE system | |||
will use naive algorithms. When complex algorithms and internal | will use naive algorithms. When complex algorithms and internal | |||
structures are used, the user interface should hide such | structures are used, the user interface should hide such | |||
complexities from the network administrator as much as possible. | complexities from the network administrator as much as possible. | |||
Stability: Stability refers to the resistance of the network to | Stability: Stability refers to the resistance of the network to | |||
oscillate (flap) in a disruptive manner from one state to another, | oscillate (flap) in a disruptive manner from one state to another, | |||
which may result in traffic being routed first one way and then | which may result in traffic being routed first one way and then | |||
another without satisfactory resolution of the underlying TE | another without satisfactory resolution of the underlying TE | |||
issues, and with continued changes that do not settle down. | issues and with continued changes that do not settle down. | |||
Stability is a very important consideration in TE systems that | Stability is a very important consideration in TE systems that | |||
respond to changes in the state of the network. State-dependent | respond to changes in the state of the network. State-dependent | |||
TE methodologies typically include a trade-off between | TE methodologies typically include a trade-off between | |||
responsiveness and stability. It is strongly recommended that | responsiveness and stability. It is strongly recommended that | |||
when a trade-off between responsiveness and stability is needed, | when a trade-off between responsiveness and stability is needed, | |||
it should be made in favor of stability (especially in public IP | it should be made in favor of stability (especially in public IP | |||
backbone networks). | backbone networks). | |||
Usability: Usability is a human aspect of TE systems. It refers to | Usability: Usability is a human aspect of TE systems. It refers to | |||
the ease with which a TE system can be deployed and operated. In | the ease with which a TE system can be deployed and operated. In | |||
general, it is desirable to have a TE system that can be readily | general, it is desirable to have a TE system that can be readily | |||
deployed in an existing network. It is also desirable to have a | deployed in an existing network. It is also desirable to have a | |||
TE system that is easy to operate and maintain. | TE system that is easy to operate and maintain. | |||
Visibility: Mechanisms should exist as part of the TE system to | Visibility: Mechanisms should exist as part of the TE system to | |||
collect statistics from the network and to analyze these | collect statistics from the network and to analyze these | |||
statistics to determine how well the network is functioning. | statistics to determine how well the network is functioning. | |||
Derived statistics such as traffic matrices, link utilization, | Derived statistics (such as traffic matrices, link utilization, | |||
latency, packet loss, and other performance measures of interest | latency, packet loss, and other performance measures of interest) | |||
which are determined from network measurements can be used as | that are determined from network measurements can be used as | |||
indicators of prevailing network conditions. The capabilities of | indicators of prevailing network conditions. The capabilities of | |||
the various components of the routing system are other examples of | the various components of the routing system are other examples of | |||
status information which should be observable. | status information that should be observable. | |||
6.2. Routing Recommendations | 6.2. Routing Recommendations | |||
Routing control is a significant aspect of Internet traffic | Routing control is a significant aspect of Internet traffic | |||
engineering. Routing impacts many of the key performance measures | engineering. Routing impacts many of the key performance measures | |||
associated with networks, such as throughput, delay, and utilization. | associated with networks, such as throughput, delay, and utilization. | |||
Generally, it is very difficult to provide good service quality in a | Generally, it is very difficult to provide good service quality in a | |||
wide area network without effective routing control. A desirable TE | wide area network without effective routing control. A desirable TE | |||
routing system is one that takes traffic characteristics and network | routing system is one that takes traffic characteristics and network | |||
constraints into account during route selection while maintaining | constraints into account during route selection while maintaining | |||
stability. | stability. | |||
Shortest path first (SPF) IGPs are based on shortest path algorithms | Shortest Path First (SPF) IGPs are based on shortest path algorithms | |||
and have limited control capabilities for TE [RFC2702], [AWD2]. | and have limited control capabilities for TE [RFC2702] [AWD2]. These | |||
These limitations include: | limitations include: | |||
1. Pure SPF protocols do not take network constraints and traffic | 1. Pure SPF protocols do not take network constraints and traffic | |||
characteristics into account during route selection. For | characteristics into account during route selection. For | |||
example, IGPs always select the shortest paths based on link | example, IGPs always select the shortest paths based on link | |||
metrics assigned by administrators, so load sharing cannot be | metrics assigned by administrators, so load sharing cannot be | |||
performed across paths of different costs. Note that link | performed across paths of different costs. Note that link | |||
metrics are assigned following a range of operator-selected | metrics are assigned following a range of operator-selected | |||
policies that might reflect preference for the use of some links | policies that might reflect preference for the use of some links | |||
over others, and "shortest" might not, therefore, be purely a | over others; therefore, "shortest" might not be purely a measure | |||
measure of distance. Using shortest paths to forward traffic may | of distance. Using shortest paths to forward traffic may cause | |||
cause the following problems: | the following problems: | |||
* If traffic from a source to a destination exceeds the capacity | * If traffic from a source to a destination exceeds the capacity | |||
of a link along the shortest path, the link (and hence the | of a link along the shortest path, the link (and hence the | |||
shortest path) becomes congested while a longer path between | shortest path) becomes congested while a longer path between | |||
these two nodes may be under-utilized. | these two nodes may be under-utilized. | |||
* The shortest paths from different sources can overlap at some | * The shortest paths from different sources can overlap at some | |||
links. If the total traffic from the sources exceeds the | links. If the total traffic from the sources exceeds the | |||
capacity of any of these links, congestion will occur. | capacity of any of these links, congestion will occur. | |||
* Problems can also occur because traffic demand changes over | * Problems can also occur because traffic demand changes over | |||
time, but network topology and routing configuration cannot be | time, but network topology and routing configuration cannot be | |||
changed as rapidly. This causes the network topology and | changed as rapidly. This causes the network topology and | |||
routing configuration to become sub-optimal over time, which | routing configuration to become sub-optimal over time, which | |||
may result in persistent congestion problems. | may result in persistent congestion problems. | |||
2. The Equal-Cost Multi-Path (ECMP) capability of SPF IGPs supports | 2. The Equal-Cost Multipath (ECMP) capability of SPF IGPs supports | |||
sharing of traffic among equal-cost paths. However, ECMP | sharing of traffic among equal-cost paths. However, ECMP | |||
attempts to divide the traffic as equally as possible among the | attempts to divide the traffic as equally as possible among the | |||
equal-cost shortest paths. Generally, ECMP does not support | equal-cost shortest paths. Generally, ECMP does not support | |||
configurable load sharing ratios among equal cost paths. The | configurable load-sharing ratios among equal-cost paths. The | |||
result is that one of the paths may carry significantly more | result is that one of the paths may carry significantly more | |||
traffic than other paths because it may also carry traffic from | traffic than other paths because it may also carry traffic from | |||
other sources. This situation can result in congestion along the | other sources. This situation can result in congestion along the | |||
path that carries more traffic. Weighted ECMP (WECMP) (see, for | path that carries more traffic. Weighted ECMP (WECMP) (see, for | |||
example, [I-D.ietf-bess-evpn-unequal-lb]) provides some | example, [EVPN-UNEQUAL-LB]) provides some mitigation. | |||
mitigation. | ||||
3. Modifying IGP metrics to control traffic routing tends to have | 3. Modifying IGP metrics to control traffic routing tends to have | |||
network-wide effects. Consequently, undesirable and | network-wide effects. Consequently, undesirable and | |||
unanticipated traffic shifts can be triggered as a result. Work | unanticipated traffic shifts can be triggered as a result. Work | |||
described in Section 8 may be capable of better control [FT00], | described in Section 8 may be capable of better control [FT00] | |||
[FT01]. | [FT01]. | |||
Because of these limitations, capabilities are needed to enhance the | Because of these limitations, capabilities are needed to enhance the | |||
routing function in IP networks. Some of these capabilities are | routing function in IP networks. Some of these capabilities are | |||
summarized below. | summarized below: | |||
* Constraint-based routing computes routes to fulfill requirements | * Constraint-based routing computes routes to fulfill requirements | |||
subject to constraints. This can be useful in public IP backbones | subject to constraints. This can be useful in public IP backbones | |||
with complex topologies. Constraints may include bandwidth, hop | with complex topologies. Constraints may include bandwidth, hop | |||
count, delay, and administrative policy instruments such as | count, delay, and administrative policy instruments, such as | |||
resource class attributes [RFC2702], [RFC2386]. This makes it | resource class attributes [RFC2702] [RFC2386]. This makes it | |||
possible to select routes that satisfy a given set of | possible to select routes that satisfy a given set of | |||
requirements. Routes computed by constraint-based routing are not | requirements. Routes computed by constraint-based routing are not | |||
necessarily the shortest paths. Constraint-based routing works | necessarily the shortest paths. Constraint-based routing works | |||
best with path-oriented technologies that support explicit | best with path-oriented technologies that support explicit | |||
routing, such as MPLS. | routing, such as MPLS. | |||
* Constraint-based routing can also be used as a way to distribute | * Constraint-based routing can also be used as a way to distribute | |||
traffic onto the infrastructure, including for best effort | traffic onto the infrastructure, including for best-effort | |||
traffic. For example, congestion problems caused by uneven | traffic. For example, congestion problems caused by uneven | |||
traffic distribution may be avoided or reduced by knowing the | traffic distribution may be avoided or reduced by knowing the | |||
reservable bandwidth attributes of the network links and by | reservable bandwidth attributes of the network links and by | |||
specifying the bandwidth requirements for path selection. | specifying the bandwidth requirements for path selection. | |||
* A number of enhancements to the link state IGPs allow them to | * A number of enhancements to the link-state IGPs allow them to | |||
distribute additional state information required for constraint- | distribute additional state information required for constraint- | |||
based routing. The extensions to OSPF are described in [RFC3630], | based routing. The extensions to OSPF are described in [RFC3630], | |||
and to IS-IS in [RFC5305]. Some of the additional topology state | and the extensions to IS-IS are described in [RFC5305]. Some of | |||
information includes link attributes such as reservable bandwidth | the additional topology state information includes link | |||
and link resource class attribute (an administratively specified | attributes, such as reservable bandwidth and link resource class | |||
property of the link). The resource class attribute concept is | attribute (an administratively specified property of the link). | |||
defined in [RFC2702]. The additional topology state information | The resource class attribute concept is defined in [RFC2702]. The | |||
is carried in new TLVs and sub-TLVs in IS-IS, or in the Opaque LSA | additional topology state information is carried in new TLVs and | |||
in OSPF [RFC5305], [RFC3630]. | sub-TLVs in IS-IS [RFC5305] or in the Opaque LSA in OSPF | |||
[RFC3630]. | ||||
* An enhanced link-state IGP may flood information more frequently | * An enhanced link-state IGP may flood information more frequently | |||
than a normal IGP. This is because even without changes in | than a normal IGP. This is because even without changes in | |||
topology, changes in reservable bandwidth or link affinity can | topology, changes in reservable bandwidth or link affinity can | |||
trigger the enhanced IGP to initiate flooding. A trade-off | trigger the enhanced IGP to initiate flooding. A trade-off | |||
between the timeliness of the information flooded and the flooding | between the timeliness of the information flooded and the flooding | |||
frequency is typically implemented using a threshold based on the | frequency is typically implemented using a threshold based on the | |||
percentage change of the advertised resources to avoid excessive | percentage change of the advertised resources to avoid excessive | |||
consumption of link bandwidth and computational resources, and to | consumption of link bandwidth and computational resources and to | |||
avoid instability in the TED. | avoid instability in the TED. | |||
* In a TE system, it is also desirable for the routing subsystem to | * In a TE system, it is also desirable for the routing subsystem to | |||
make the load splitting ratio among multiple paths (with equal | make the load-splitting ratio among multiple paths (with equal | |||
cost or different cost) configurable. This capability gives | cost or different cost) configurable. This capability gives | |||
network administrators more flexibility in the control of traffic | network administrators more flexibility in the control of traffic | |||
distribution across the network. It can be very useful for | distribution across the network. It can be very useful for | |||
avoiding/relieving congestion in certain situations. Examples can | avoiding/relieving congestion in certain situations. Examples can | |||
be found in [XIAO] and [I-D.ietf-bess-evpn-unequal-lb]. | be found in [XIAO] and [EVPN-UNEQUAL-LB]. | |||
* The routing system should also have the capability to control the | * The routing system should also have the capability to control the | |||
routes of subsets of traffic without affecting the routes of other | routes of subsets of traffic without affecting the routes of other | |||
traffic if sufficient resources exist for this purpose. This | traffic if sufficient resources exist for this purpose. This | |||
capability allows a more refined control over the distribution of | capability allows a more refined control over the distribution of | |||
traffic across the network. For example, the ability to move | traffic across the network. For example, the ability to move | |||
traffic away from its original path to another path (without | traffic away from its original path to another path (without | |||
affecting other traffic paths) allows the traffic to be moved from | affecting other traffic paths) allows the traffic to be moved from | |||
resource-poor network segments to resource-rich segments. Path | resource-poor network segments to resource-rich segments. Path- | |||
oriented technologies such as MPLS-TE inherently support this | oriented technologies, such as MPLS-TE, inherently support this | |||
capability as discussed in [AWD2]. | capability as discussed in [AWD2]. | |||
* Additionally, the routing subsystem should be able to select | * Additionally, the routing subsystem should be able to select | |||
different paths for different classes of traffic (or for different | different paths for different classes of traffic (or for different | |||
traffic behavior aggregates) if the network supports multiple | traffic behavior aggregates) if the network supports multiple | |||
classes of service (different behavior aggregates). | classes of service (different behavior aggregates). | |||
6.3. Traffic Mapping Recommendations | 6.3. Traffic Mapping Recommendations | |||
Traffic mapping is the assignment of traffic workload onto (pre- | Traffic mapping is the assignment of traffic workload onto (pre- | |||
established) paths to meet certain requirements. Thus, while | established) paths to meet certain requirements. Thus, while | |||
constraint-based routing deals with path selection, traffic mapping | constraint-based routing deals with path selection, traffic mapping | |||
deals with the assignment of traffic to established paths which may | deals with the assignment of traffic to established paths that may | |||
have been generated by constraint-based routing or by some other | have been generated by constraint-based routing or by some other | |||
means. Traffic mapping can be performed by time-dependent or state- | means. Traffic mapping can be performed by time-dependent or state- | |||
dependent mechanisms, as described in Section 4.1. | dependent mechanisms, as described in Section 4.1. | |||
An important aspect of the traffic mapping function is the ability to | Two important aspects of the traffic mapping function are the ability | |||
establish multiple paths between an originating node and a | to establish multiple paths between an originating node and a | |||
destination node, and the capability to distribute the traffic | destination node and the capability to distribute the traffic across | |||
between the two nodes across the paths according to configured | those paths according to configured policies. A precondition for | |||
policies. A precondition for this scheme is the existence of | this scheme is the existence of flexible mechanisms to partition | |||
flexible mechanisms to partition traffic and then assign the traffic | traffic and then assign the traffic partitions onto the parallel | |||
partitions onto the parallel paths (described as "parallel traffic | paths (described as "parallel traffic trunks" in [RFC2702]). When | |||
trunks" in [RFC2702]). When traffic is assigned to multiple parallel | traffic is assigned to multiple parallel paths, it is recommended | |||
paths, it is recommended that special care should be taken to ensure | that special care should be taken to ensure proper ordering of | |||
proper ordering of packets belonging to the same application (or | packets belonging to the same application (or traffic flow) at the | |||
traffic flow) at the destination node of the parallel paths. | destination node of the parallel paths. | |||
Mechanisms that perform the traffic mapping functions should aim to | Mechanisms that perform the traffic mapping functions should aim to | |||
map the traffic onto the network infrastructure to minimize | map the traffic onto the network infrastructure to minimize | |||
congestion. If the total traffic load cannot be accommodated, or if | congestion. If the total traffic load cannot be accommodated, or if | |||
the routing and mapping functions cannot react fast enough to | the routing and mapping functions cannot react fast enough to | |||
changing traffic conditions, then a traffic mapping system may use | changing traffic conditions, then a traffic mapping system may use | |||
short timescale congestion control mechanisms (such as queue | short timescale congestion control mechanisms (such as queue | |||
management, scheduling, etc.) to mitigate congestion. Thus, | management, scheduling, etc.) to mitigate congestion. Thus, | |||
mechanisms that perform the traffic mapping functions complement | mechanisms that perform the traffic mapping functions complement | |||
existing congestion control mechanisms. In an operational network, | existing congestion control mechanisms. In an operational network, | |||
traffic should be mapped onto the infrastructure such that intra- | traffic should be mapped onto the infrastructure such that intra- | |||
class and inter-class resource contention are minimized (see | class and inter-class resource contention are minimized (see | |||
Section 2). | Section 2). | |||
When traffic mapping techniques that depend on dynamic state feedback | When traffic mapping techniques that depend on dynamic state feedback | |||
(e.g., MATE [MATE] and suchlike) are used, special care must be taken | (e.g., MPLS Adaptive Traffic Engineering (MATE) [MATE] and suchlike) | |||
to guarantee network stability. | are used, special care must be taken to guarantee network stability. | |||
6.4. Measurement Recommendations | 6.4. Measurement Recommendations | |||
The importance of measurement in TE has been discussed throughout | The importance of measurement in TE has been discussed throughout | |||
this document. A TE system should include mechanisms to measure and | this document. A TE system should include mechanisms to measure and | |||
collect statistics from the network to support the TE function. | collect statistics from the network to support the TE function. | |||
Additional capabilities may be needed to help in the analysis of the | Additional capabilities may be needed to help in the analysis of the | |||
statistics. The actions of these mechanisms should not adversely | statistics. The actions of these mechanisms should not adversely | |||
affect the accuracy and integrity of the statistics collected. The | affect the accuracy and integrity of the statistics collected. The | |||
mechanisms for statistical data acquisition should also be able to | mechanisms for statistical data acquisition should also be able to | |||
skipping to change at page 55, line 45 ¶ | skipping to change at line 2558 ¶ | |||
Traffic statistics may be classified according to long-term or short- | Traffic statistics may be classified according to long-term or short- | |||
term timescales. Long-term traffic statistics are very useful for | term timescales. Long-term traffic statistics are very useful for | |||
traffic engineering. Long-term traffic statistics may periodically | traffic engineering. Long-term traffic statistics may periodically | |||
record network workload (such as hourly, daily, and weekly variations | record network workload (such as hourly, daily, and weekly variations | |||
in traffic profiles) as well as traffic trends. Aspects of the | in traffic profiles) as well as traffic trends. Aspects of the | |||
traffic statistics may also describe class of service characteristics | traffic statistics may also describe class of service characteristics | |||
for a network supporting multiple classes of service. Analysis of | for a network supporting multiple classes of service. Analysis of | |||
the long-term traffic statistics may yield other information such as | the long-term traffic statistics may yield other information such as | |||
busy-hour characteristics, traffic growth patterns, persistent | busy-hour characteristics, traffic growth patterns, persistent | |||
congestion problems, hot-spot, and imbalances in link utilization | congestion problems, hotspots, and imbalances in link utilization | |||
caused by routing anomalies. | caused by routing anomalies. | |||
A mechanism for constructing traffic matrices for both long-term and | A mechanism for constructing traffic matrices for both long-term and | |||
short-term traffic statistics should be in place. In multi-service | short-term traffic statistics should be in place. In multi-service | |||
IP networks, the traffic matrices may be constructed for different | IP networks, the traffic matrices may be constructed for different | |||
service classes. Each element of a traffic matrix represents a | service classes. Each element of a traffic matrix represents a | |||
statistic about the traffic flow between a pair of abstract nodes. | statistic about the traffic flow between a pair of abstract nodes. | |||
An abstract node may represent a router, a collection of routers, or | An abstract node may represent a router, a collection of routers, or | |||
a site in a VPN. | a site in a VPN. | |||
Traffic statistics should provide reasonable and reliable indicators | Traffic statistics should provide reasonable and reliable indicators | |||
of the current state of the network on the short-term scale. Some | of the current state of the network on the short-term scale. Some | |||
short term traffic statistics may reflect link utilization and link | short-term traffic statistics may reflect link utilization and link | |||
congestion status. Examples of congestion indicators include | congestion status. Examples of congestion indicators include | |||
excessive packet delay, packet loss, and high resource utilization. | excessive packet delay, packet loss, and high resource utilization. | |||
Examples of mechanisms for distributing this kind of information | Examples of mechanisms for distributing this kind of information | |||
include SNMP, probing tools, FTP, IGP link state advertisements, and | include SNMP, probing tools, FTP, IGP link-state advertisements, | |||
NETCONF/RESTCONF, etc. | NETCONF/RESTCONF, etc. | |||
6.5. Policing, Planning, and Access Control | 6.5. Policing, Planning, and Access Control | |||
The recommendations in Section 6.2 and Section 6.3 may be sub-optimal | The recommendations in Sections 6.2 and 6.3 may be sub-optimal or | |||
or even ineffective if the amount of traffic flowing on a route or | even ineffective if the amount of traffic flowing on a route or path | |||
path exceeds the capacity of the resource on that route or path. | exceeds the capacity of the resource on that route or path. Several | |||
Several approaches can be used to increase the performance of TE | approaches can be used to increase the performance of TE systems: | |||
systems. | ||||
* The fundamental approach is some form of planning where traffic is | * The fundamental approach is some form of planning where traffic is | |||
steered onto paths so that it is distributed across the available | steered onto paths so that it is distributed across the available | |||
resources. This planning may be centralized or distributed, and | resources. This planning may be centralized or distributed and | |||
must be aware of the planned traffic volumes and available | must be aware of the planned traffic volumes and available | |||
resources. However, this approach is only of value if the traffic | resources. However, this approach is only of value if the traffic | |||
that is presented conforms to the planned traffic volumes. | that is presented conforms to the planned traffic volumes. | |||
* Traffic flows may be policed at the edges of a network. This is a | * Traffic flows may be policed at the edges of a network. This is a | |||
simple way to ensure that the actual traffic volumes are | simple way to ensure that the actual traffic volumes are | |||
consistent with the planned volumes. Some form of measurement | consistent with the planned volumes. Some form of measurement | |||
(see Section 6.4) is used to determine the rate of arrival of | (see Section 6.4) is used to determine the rate of arrival of | |||
traffic, and excess traffic could be discarded. Alternatively, | traffic, and excess traffic could be discarded. Alternatively, | |||
excess traffic could be forwarded as best-effort within the | excess traffic could be forwarded as best-effort within the | |||
network. However, this approach is only completely effective if | network. However, this approach is only completely effective if | |||
the planning is stringent and network-wide, and if a harsh | the planning is stringent and network-wide and if a harsh approach | |||
approach is taken to disposing of excess traffic. | is taken to disposing of excess traffic. | |||
* Resource-based admission control is the process whereby network | * Resource-based admission control is the process whereby network | |||
nodes decide whether to grant access to resources. The basis for | nodes decide whether to grant access to resources. The basis for | |||
the decision on a packet-by-packet basis is the determination of | the decision on a packet-by-packet basis is the determination of | |||
the flow to which the packet belongs. This information is | the flow to which the packet belongs. This information is | |||
combined with policy instructions that have been locally | combined with policy instructions that have been locally | |||
configured, or installed through the management or control planes. | configured or installed through the management or control planes. | |||
The end result is that a packet may be allowed to access (or use) | The end result is that a packet may be allowed to access (or use) | |||
specific resources on the node if and only if the flow to which | specific resources on the node if, and only if, the flow to which | |||
the packet belongs conforms to the policy. | the packet belongs conforms to the policy. | |||
Combining some element of all three of these measures is advisable to | Combining some elements of all three of these measures is advisable | |||
achieve a better TE system. | to achieve a better TE system. | |||
6.6. Network Survivability | 6.6. Network Survivability | |||
Network survivability refers to the capability of a network to | Network survivability refers to the capability of a network to | |||
maintain service continuity in the presence of faults. This can be | maintain service continuity in the presence of faults. This can be | |||
accomplished by promptly recovering from network impairments and | accomplished by promptly recovering from network impairments and | |||
maintaining the required QoS for existing services after recovery. | maintaining the required QoS for existing services after recovery. | |||
Survivability is an issue of great concern within the Internet | Survivability is an issue of great concern within the Internet | |||
community due to the demand to carry mission-critical traffic, real- | community due to the demand to carry mission-critical traffic, real- | |||
time traffic, and other high priority traffic over the Internet. | time traffic, and other high-priority traffic over the Internet. | |||
Survivability can be addressed at the device level by developing | Survivability can be addressed at the device level by developing | |||
network elements that are more reliable; and at the network level by | network elements that are more reliable and at the network level by | |||
incorporating redundancy into the architecture, design, and operation | incorporating redundancy into the architecture, design, and operation | |||
of networks. It is recommended that a philosophy of robustness and | of networks. It is recommended that a philosophy of robustness and | |||
survivability should be adopted in the architecture, design, and | survivability should be adopted in the architecture, design, and | |||
operation of TE used to control IP networks (especially public IP | operation of TE used to control IP networks (especially public IP | |||
networks). Because different contexts may demand different levels of | networks). Because different contexts may demand different levels of | |||
survivability, the mechanisms developed to support network | survivability, the mechanisms developed to support network | |||
survivability should be flexible so that they can be tailored to | survivability should be flexible so that they can be tailored to | |||
different needs. A number of tools and techniques have been | different needs. A number of tools and techniques have been | |||
developed to enable network survivability including MPLS Fast Reroute | developed to enable network survivability, including MPLS Fast | |||
[RFC4090], Topology Independent Loop-free Alternate Fast Re-route for | Reroute [RFC4090], Topology Independent Loop-free Alternate Fast | |||
Segment Routing [I-D.ietf-rtgwg-segment-routing-ti-lfa] RSVP-TE | Reroute for Segment Routing [SR-TI-LFA], RSVP-TE Extensions in | |||
Extensions in Support of End-to-End GMPLS Recovery [RFC4872], and | Support of End-to-End GMPLS Recovery [RFC4872], and GMPLS Segment | |||
GMPLS Segment Recovery [RFC4873]. | Recovery [RFC4873]. | |||
The impact of service outages varies significantly for different | The impact of service outages varies significantly for different | |||
service classes depending on the duration of the outage which can | service classes depending on the duration of the outage, which can | |||
vary from milliseconds (with minor service impact) to seconds (with | vary from milliseconds (with minor service impact) to seconds (with | |||
possible call drops for IP telephony and session timeouts for | possible call drops for IP telephony and session timeouts for | |||
connection-oriented transactions) to minutes and hours (with | connection-oriented transactions) to minutes and hours (with | |||
potentially considerable social and business impact). Outages of | potentially considerable social and business impact). Outages of | |||
different durations have different impacts depending on the nature of | different durations have different impacts depending on the nature of | |||
the traffic flows that are interrupted. | the traffic flows that are interrupted. | |||
Failure protection and restoration capabilities are available in | Failure protection and restoration capabilities are available in | |||
multiple layers as network technologies have continued to evolve. | multiple layers as network technologies have continued to evolve. | |||
Optical networks are capable of providing dynamic ring and mesh | Optical networks are capable of providing dynamic ring and mesh | |||
restoration functionality at the wavelength level. At the SONET/SDH | restoration functionality at the wavelength level. At the SONET/SDH | |||
layer survivability capability is provided with Automatic Protection | layer, survivability capability is provided with Automatic Protection | |||
Switching (APS) as well as self-healing ring and mesh architectures. | Switching (APS) as well as self-healing ring and mesh architectures. | |||
Similar functionality is provided by layer 2 technologies such as | Similar functionality is provided by Layer 2 technologies such as | |||
Ethernet. | Ethernet. | |||
Rerouting is used at the IP layer to restore service following link | Rerouting is used at the IP layer to restore service following link | |||
and node outages. Rerouting at the IP layer occurs after a period of | and node outages. Rerouting at the IP layer occurs after a period of | |||
routing convergence which may require seconds to minutes to complete. | routing convergence, which may require seconds to minutes to | |||
Path-oriented technologies such as MPLS ([RFC3469]) can be used to | complete. Path-oriented technologies such as MPLS [RFC3469] can be | |||
enhance the survivability of IP networks in a potentially cost- | used to enhance the survivability of IP networks in a potentially | |||
effective manner. | cost-effective manner. | |||
An important aspect of multi-layer survivability is that technologies | An important aspect of multi-layer survivability is that technologies | |||
at different layers may provide protection and restoration | at different layers may provide protection and restoration | |||
capabilities at different granularities in terms of time scales and | capabilities at different granularities in terms of timescales and at | |||
at different bandwidth granularity (from the level of packets to that | different bandwidth granularities (from the level of packets to that | |||
of wavelengths). Protection and restoration capabilities can also be | of wavelengths). Protection and restoration capabilities can also be | |||
sensitive to different service classes and different network utility | sensitive to different service classes and different network utility | |||
models. Coordinating different protection and restoration | models. Coordinating different protection and restoration | |||
capabilities across multiple layers in a cohesive manner to ensure | capabilities across multiple layers in a cohesive manner to ensure | |||
network survivability is maintained at reasonable cost is a | network survivability is maintained at reasonable cost is a | |||
challenging task. Protection and restoration coordination across | challenging task. Protection and restoration coordination across | |||
layers may not always be feasible, because networks at different | layers may not always be feasible, because networks at different | |||
layers may belong to different administrative domains. | layers may belong to different administrative domains. | |||
The following paragraphs present some of the general recommendations | Some of the general recommendations for protection and restoration | |||
for protection and restoration coordination. | coordination are as follows: | |||
* Protection and restoration capabilities from different layers | * Protection and restoration capabilities from different layers | |||
should be coordinated to provide network survivability in a | should be coordinated to provide network survivability in a | |||
flexible and cost-effective manner. Avoiding duplication of | flexible and cost-effective manner. Avoiding duplication of | |||
functions in different layers is one way to achieve the | functions in different layers is one way to achieve the | |||
coordination. Escalation of alarms and other fault indicators | coordination. Escalation of alarms and other fault indicators | |||
from lower to higher layers may also be performed in a coordinated | from lower to higher layers may also be performed in a coordinated | |||
manner. The order of timing of restoration triggers from | manner. The order of timing of restoration triggers from | |||
different layers is another way to coordinate multi-layer | different layers is another way to coordinate multi-layer | |||
protection/restoration. | protection/restoration. | |||
* Network capacity reserved in one layer to provide protection and | * Network capacity reserved in one layer to provide protection and | |||
restoration is not available to carry traffic in a higher layer: | restoration is not available to carry traffic in a higher layer: | |||
it is not visible as spare capacity in the higher layer. Placing | it is not visible as spare capacity in the higher layer. Placing | |||
protection/restoration functions in many layers may increase | protection/restoration functions in many layers may increase | |||
redundancy and robustness, but it can result in significant | redundancy and robustness, but it can result in significant | |||
inefficiencies in network resource utilization. Careful planning | inefficiencies in network resource utilization. Careful planning | |||
is needed to balance the tradeoff between the desire for | is needed to balance the trade-off between the desire for | |||
survivability and the optimal use of resources. | survivability and the optimal use of resources. | |||
* It is generally desirable to have protection and restoration | * It is generally desirable to have protection and restoration | |||
schemes that are intrinsically bandwidth efficient. | schemes that are intrinsically bandwidth efficient. | |||
* Failure notifications throughout the network should be timely and | * Failure notifications throughout the network should be timely and | |||
reliable if they are to be acted on as triggers for effective | reliable if they are to be acted on as triggers for effective | |||
protection and restoration actions. | protection and restoration actions. | |||
* Alarms and other fault monitoring and reporting capabilities | * Alarms and other fault monitoring and reporting capabilities | |||
should be provided at the right network layers so that the | should be provided at the right network layers so that the | |||
protection and restoration actions can be taken in those layers. | protection and restoration actions can be taken in those layers. | |||
6.6.1. Survivability in MPLS Based Networks | 6.6.1. Survivability in MPLS-Based Networks | |||
Because MPLS is path-oriented, it has the potential to provide faster | Because MPLS is path-oriented, it has the potential to provide faster | |||
and more predictable protection and restoration capabilities than | and more predictable protection and restoration capabilities than | |||
conventional hop-by-hop routed IP systems. Protection types for MPLS | conventional hop-by-hop routed IP systems. Protection types for MPLS | |||
networks can be divided into four categories. | networks can be divided into four categories: | |||
* Link Protection: The objective of link protection is to protect an | Link Protection: The objective of link protection is to protect an | |||
LSP from the failure of a given link. Under link protection, a | LSP from the failure of a given link. Under link protection, a | |||
protection or backup LSP (the secondary LSP) follows a path that | protection or backup LSP (the secondary LSP) follows a path that | |||
is disjoint from the path of the working or operational LSP (the | is disjoint from the path of the working or operational LSP (the | |||
primary LSP) at the particular link where link protection is | primary LSP) at the particular link where link protection is | |||
required. When the protected link fails, traffic on the working | required. When the protected link fails, traffic on the working | |||
LSP is switched to the protection LSP at the head-end of the | LSP is switched to the protection LSP at the headend of the failed | |||
failed link. As a local repair method, link protection can be | link. As a local repair method, link protection can be fast. | |||
fast. This form of protection may be most appropriate in | This form of protection may be most appropriate in situations | |||
situations where some network elements along a given path are | where some network elements along a given path are known to be | |||
known to be less reliable than others. | less reliable than others. | |||
* Node Protection: The objective of node protection is to protect an | Node Protection: The objective of node protection is to protect an | |||
LSP from the failure of a given node. Under node protection, the | LSP from the failure of a given node. Under node protection, the | |||
secondary LSP follows a path that is disjoint from the path of the | secondary LSP follows a path that is disjoint from the path of the | |||
primary LSP at the particular node where node protection is | primary LSP at the particular node where node protection is | |||
required. The secondary LSP is also disjoint from the primary LSP | required. The secondary LSP is also disjoint from the primary LSP | |||
at all links attached to the node to be protected. When the | at all links attached to the node to be protected. When the | |||
protected node fails, traffic on the working LSP is switched over | protected node fails, traffic on the working LSP is switched over | |||
to the protection LSP at the upstream LSR directly connected to | to the protection LSP at the upstream LSR directly connected to | |||
the failed node. Node protection covers a slightly larger part of | the failed node. Node protection covers a slightly larger part of | |||
the network compared to link protection, but is otherwise | the network compared to link protection but is otherwise | |||
fundamentally the same. | fundamentally the same. | |||
* Path Protection: The goal of LSP path protection (or end-to-end | Path Protection: The goal of LSP path protection (or end-to-end | |||
protection) is to protect an LSP from any failure along its routed | protection) is to protect an LSP from any failure along its routed | |||
path. Under path protection, the path of the protection LSP is | path. Under path protection, the path of the protection LSP is | |||
completely disjoint from the path of the working LSP. The | completely disjoint from the path of the working LSP. The | |||
advantage of path protection is that the backup LSP protects the | advantage of path protection is that the backup LSP protects the | |||
working LSP from all possible link and node failures along the | working LSP from all possible link and node failures along the | |||
path, except for failures of ingress or egress LSR. Additionally, | path, except for failures of ingress or egress LSR. Additionally, | |||
path protection may be more efficient in terms of resource usage | path protection may be more efficient in terms of resource usage | |||
than link or node protection applied at every hop along the path. | than link or node protection applied at every hop along the path. | |||
However, path protection may be slower than link and node | However, path protection may be slower than link and node | |||
protection because the fault notifications have to be propagated | protection because the fault notifications have to be propagated | |||
further. | further. | |||
* Segment Protection: An MPLS domain may be partitioned into | Segment Protection: An MPLS domain may be partitioned into multiple | |||
multiple subdomains (protection domains). Path protection is | subdomains (protection domains). Path protection is applied to | |||
applied to the path of each LSP as it crosses the domain from its | the path of each LSP as it crosses the domain from its ingress to | |||
ingress to the domain to where it egresses the domain. In cases | the domain to where it egresses the domain. In cases where an LSP | |||
where an LSP traverses multiple protection domains, a protection | traverses multiple protection domains, a protection mechanism | |||
mechanism within a domain only needs to protect the segment of the | within a domain only needs to protect the segment of the LSP that | |||
LSP that lies within the domain. Segment protection will | lies within the domain. Segment protection will generally be | |||
generally be faster than end-to-end path protection because | faster than end-to-end path protection because recovery generally | |||
recovery generally occurs closer to the fault and the notification | occurs closer to the fault, and the notification doesn't have to | |||
doesn't have to propagate as far. | propagate as far. | |||
See [RFC3469] and [RFC6372] for a more comprehensive discussion of | See [RFC3469] and [RFC6372] for a more comprehensive discussion of | |||
MPLS based recovery. | MPLS-based recovery. | |||
6.6.2. Protection Options | 6.6.2. Protection Options | |||
Another issue to consider is the concept of protection options. We | Another issue to consider is the concept of protection options. We | |||
use notation such as "m:n protection", where m is the number of | use notation such as "m:n protection", where m is the number of | |||
protection LSPs used to protect n working LSPs. In all cases except | protection LSPs used to protect n working LSPs. In all cases except | |||
1+1 protection, the resources associated with the protection LSPs can | 1+1 protection, the resources associated with the protection LSPs can | |||
be used to carry preemptable best-effort traffic when the working LSP | be used to carry preemptable best-effort traffic when the working LSP | |||
is functioning correctly. | is functioning correctly. | |||
* 1:1 protection: One working LSP is protected/restored by one | 1:1 protection: One working LSP is protected/restored by one | |||
protection LSP. Traffic is sent only on the protected LSP until | protection LSP. Traffic is sent only on the protected LSP until | |||
the protection/restoration event switches the traffic to the | the protection/restoration event switches the traffic to the | |||
protection LSP. | protection LSP. | |||
* 1:n protection: One protection LSP is used to protect/restore n | 1:n protection: One protection LSP is used to protect/restore n | |||
working LSPs. Traffic is sent only on the n protected working | working LSPs. Traffic is sent only on the n protected working | |||
LSPs until the protection/restoration event switches the traffic | LSPs until the protection/restoration event switches the traffic | |||
from one failed LSP to the protection LSP. Only one failed LSP | from one failed LSP to the protection LSP. Only one failed LSP | |||
can be restored at any time. | can be restored at any time. | |||
* n:1 protection: One working LSP is protected/restored by n | n:1 protection: One working LSP is protected/restored by n | |||
protection LSPs, possibly with load splitting across the | protection LSPs, possibly with load splitting across the | |||
protection LSPs. This may be especially useful when it is not | protection LSPs. This may be especially useful when it is not | |||
feasible to find one path for the backup that can satisfy the | feasible to find one path for the backup that can satisfy the | |||
bandwidth requirement of the primary LSP. | bandwidth requirement of the primary LSP. | |||
* 1+1 protection: Traffic is sent concurrently on both the working | 1+1 protection: Traffic is sent concurrently on both the working LSP | |||
LSP and a protection LSP. The egress LSR selects one of the two | and a protection LSP. The egress LSR selects one of the two LSPs | |||
LSPs based on local policy (usually based on traffic integrity). | based on local policy (usually based on traffic integrity). When | |||
When a fault disrupts the traffic on one LSP, the egress switches | a fault disrupts the traffic on one LSP, the egress switches to | |||
to receive traffic from the other LSP. This approach is expensive | receive traffic from the other LSP. This approach is expensive in | |||
in how it consumes network but recovers from failures most | how it consumes network but recovers from failures most rapidly. | |||
rapidly. | ||||
6.7. Multi-Layer Traffic Engineering | 6.7. Multi-Layer Traffic Engineering | |||
Networks are often implemented as layers. A layer relationship may | Networks are often implemented as layers. A layer relationship may | |||
represent the interaction between technologies (for example, an IP | represent the interaction between technologies (for example, an IP | |||
network operated over an optical network), or the relationship | network operated over an optical network) or the relationship between | |||
between different network operators (for example, a customer network | different network operators (for example, a customer network operated | |||
operated over a service provider's network). Note that a multi-layer | over a service provider's network). Note that a multi-layer network | |||
network does not imply the use of multiple technologies, although | does not imply the use of multiple technologies, although some form | |||
some form of encapsulation is often applied. | of encapsulation is often applied. | |||
Multi-layer traffic engineering presents a number of challenges | Multi-layer traffic engineering presents a number of challenges | |||
associated with scalability and confidentiality. These issues are | associated with scalability and confidentiality. These issues are | |||
addressed in [RFC7926] which discusses the sharing of information | addressed in [RFC7926], which discusses the sharing of information | |||
between domains through policy filters, aggregation, abstraction, and | between domains through policy filters, aggregation, abstraction, and | |||
virtualization. That document also discusses how existing protocols | virtualization. That document also discusses how existing protocols | |||
can support this scenario with special reference to BGP-LS (see | can support this scenario with special reference to BGP-LS (see | |||
Section 5.1.3.10). | Section 5.1.3.10). | |||
PCE (see Section 5.1.3.11) is also a useful tool for multi-layer | PCE (see Section 5.1.3.11) is also a useful tool for multi-layer | |||
networks as described in [RFC6805], [RFC8685], and [RFC5623]. | networks as described in [RFC6805], [RFC8685], and [RFC5623]. | |||
Signaling techniques for multi-layer TE are described in [RFC6107]. | Signaling techniques for multi-layer TE are described in [RFC6107]. | |||
See also Section 6.6 for examination of multi-layer network | See also Section 6.6 for examination of multi-layer network | |||
survivability. | survivability. | |||
6.8. Traffic Engineering in Diffserv Environments | 6.8. Traffic Engineering in Diffserv Environments | |||
Increasing requirements to support multiple classes of traffic in the | Increasing requirements to support multiple classes of traffic in the | |||
Internet, such as best effort and mission critical data, call for IP | Internet, such as best-effort and mission-critical data, call for IP | |||
networks to differentiate traffic according to some criteria and to | networks to differentiate traffic according to some criteria and to | |||
give preferential treatment to certain types of traffic. Large | give preferential treatment to certain types of traffic. Large | |||
numbers of flows can be aggregated into a few behavior aggregates | numbers of flows can be aggregated into a few behavior aggregates | |||
based on some criteria based on common performance requirements in | based on some criteria based on common performance requirements in | |||
terms of packet loss ratio, delay, and jitter, or in terms of common | terms of packet loss ratio, delay, and jitter or in terms of common | |||
fields within the IP packet headers. | fields within the IP packet headers. | |||
Differentiated Services (Diffserv) [RFC2475] can be used to ensure | Differentiated Services (Diffserv) [RFC2475] can be used to ensure | |||
that SLAs defined to differentiate between traffic flows are met. | that SLAs defined to differentiate between traffic flows are met. | |||
Classes of service (CoS) can be supported in a Diffserv environment | Classes of service can be supported in a Diffserv environment by | |||
by concatenating per-hop behaviors (PHBs) along the routing path. A | concatenating Per-Hop Behaviors (PHBs) along the routing path. A PHB | |||
PHB is the forwarding behavior that a packet receives at a Diffserv- | is the forwarding behavior that a packet receives at a Diffserv- | |||
compliant node, and it can be configured at each router. PHBs are | compliant node, and it can be configured at each router. PHBs are | |||
delivered using buffer management and packet scheduling mechanisms | delivered using buffer-management and packet-scheduling mechanisms | |||
and require that the ingress nodes use traffic classification, | and require that the ingress nodes use traffic classification, | |||
marking, policing, and shaping. | marking, policing, and shaping. | |||
TE can complement Diffserv to improve utilization of network | TE can complement Diffserv to improve utilization of network | |||
resources. TE can be operated on an aggregated basis across all | resources. TE can be operated on an aggregated basis across all | |||
service classes [RFC3270], or on a per-service class basis. The | service classes [RFC3270] or on a per-service-class basis. The | |||
former is used to provide better distribution of the traffic load | former is used to provide better distribution of the traffic load | |||
over the network resources (see [RFC3270] for detailed mechanisms to | over the network resources (see [RFC3270] for detailed mechanisms to | |||
support aggregate TE). The latter case is discussed below since it | support aggregate TE). The latter case is discussed below since it | |||
is specific to the Diffserv environment, with so called Diffserv- | is specific to the Diffserv environment, with so-called Diffserv- | |||
aware traffic engineering [RFC4124]. | aware traffic engineering [RFC4124]. | |||
For some Diffserv networks, it may be desirable to control the | For some Diffserv networks, it may be desirable to control the | |||
performance of some service classes by enforcing relationships | performance of some service classes by enforcing relationships | |||
between the traffic workload contributed by each service class and | between the traffic workload contributed by each service class and | |||
the amount of network resources allocated or provisioned for that | the amount of network resources allocated or provisioned for that | |||
service class. Such relationships between demand and resource | service class. Such relationships between demand and resource | |||
allocation can be enforced using a combination of, for example: | allocation can be enforced using a combination of, for example: | |||
* TE mechanisms on a per service class basis that enforce the | * TE mechanisms on a per-service-class basis that enforce the | |||
relationship between the amount of traffic contributed by a given | relationship between the amount of traffic contributed by a given | |||
service class and the resources allocated to that class. | service class and the resources allocated to that class. | |||
* Mechanisms that dynamically adjust the resources allocated to a | * Mechanisms that dynamically adjust the resources allocated to a | |||
given service class to relate to the amount of traffic contributed | given service class to relate to the amount of traffic contributed | |||
by that service class. | by that service class. | |||
It may also be desirable to limit the performance impact of high- | It may also be desirable to limit the performance impact of high- | |||
priority traffic on relatively low-priority traffic. This can be | priority traffic on relatively low-priority traffic. This can be | |||
achieved, for example, by controlling the percentage of high-priority | achieved, for example, by controlling the percentage of high-priority | |||
traffic that is routed through a given link. Another way to | traffic that is routed through a given link. Another way to | |||
accomplish this is to increase link capacities appropriately so that | accomplish this is to increase link capacities appropriately so that | |||
lower-priority traffic can still enjoy adequate service quality. | lower-priority traffic can still enjoy adequate service quality. | |||
When the ratio of traffic workload contributed by different service | When the ratio of traffic workload contributed by different service | |||
classes varies significantly from router to router, it may not be | classes varies significantly from router to router, it may not be | |||
enough to rely on conventional IGP routing protocols or on TE | enough to rely on conventional IGP routing protocols or on TE | |||
mechanisms that are not sensitive to different service classes. | mechanisms that are not sensitive to different service classes. | |||
Instead, it may be desirable to perform TE, especially routing | Instead, it may be desirable to perform TE, especially routing | |||
control and mapping functions, on a per-service class basis. One way | control and mapping functions, on a per-service-class basis. One way | |||
to accomplish this in a domain that supports both MPLS and Diffserv | to accomplish this in a domain that supports both MPLS and Diffserv | |||
is to define class-specific LSPs and to map traffic from each class | is to define class-specific LSPs and to map traffic from each class | |||
onto one or more LSPs that correspond to that service class. An LSP | onto one or more LSPs that correspond to that service class. An LSP | |||
corresponding to a given service class can then be routed and | corresponding to a given service class can then be routed and | |||
protected/restored in a class-dependent manner, according to specific | protected/restored in a class-dependent manner, according to specific | |||
policies. | policies. | |||
Performing TE on a per-class basis may require per-class parameters | Performing TE on a per-class basis may require per-class parameters | |||
to be distributed. It is common to have some classes share some | to be distributed. It is common to have some classes share some | |||
aggregate constraints (e.g., maximum bandwidth requirement) without | aggregate constraints (e.g., maximum bandwidth requirement) without | |||
enforcing the constraint on each individual class. These classes can | enforcing the constraint on each individual class. These classes can | |||
be grouped into class-types, and per-class-type parameters can be | be grouped into class types, and per-class-type parameters can be | |||
distributed to improve scalability. This also allows better | distributed to improve scalability. This also allows better | |||
bandwidth sharing between classes in the same class-type. A class- | bandwidth sharing between classes in the same class type. A class | |||
type is a set of classes that satisfy the following two conditions: | type is a set of classes that satisfy the following two conditions: | |||
* Classes in the same class-type have common aggregate requirements | * Classes in the same class type have common aggregate requirements | |||
to satisfy required performance levels. | to satisfy required performance levels. | |||
* There is no requirement to be enforced at the level of an | * There is no requirement to be enforced at the level of an | |||
individual class in the class-type. Note that it is, | individual class in the class type. Note that it is, | |||
nevertheless, still possible to implement some priority policies | nevertheless, still possible to implement some priority policies | |||
for classes in the same class-type to permit preferential access | for classes in the same class type to permit preferential access | |||
to the class-type bandwidth through the use of preemption | to the class type bandwidth through the use of preemption | |||
priorities. | priorities. | |||
See [RFC4124] for detailed requirements on Diffserv-aware TE. | See [RFC4124] for detailed requirements on Diffserv-aware TE. | |||
6.9. Network Controllability | 6.9. Network Controllability | |||
Offline and online (see Section 4.2) TE considerations are of limited | Offline and online (see Section 4.2) TE considerations are of limited | |||
utility if the network cannot be controlled effectively to implement | utility if the network cannot be controlled effectively to implement | |||
the results of TE decisions and to achieve the desired network | the results of TE decisions and to achieve the desired network | |||
performance objectives. | performance objectives. | |||
Capacity augmentation is a coarse-grained solution to TE issues. | Capacity augmentation is a coarse-grained solution to TE issues. | |||
However, it is simple, may be applied through creating parallel links | However, it is simple, may be applied through creating parallel links | |||
that form part of an ECMP scheme, and may be advantageous if | that form part of an ECMP scheme, and may be advantageous if | |||
bandwidth is abundant and cheap. However, bandwidth is not always | bandwidth is abundant and cheap. However, bandwidth is not always | |||
abundant and cheap, and additional capacity might not always be the | abundant and cheap, and additional capacity might not always be the | |||
best solution. Adjustments of administrative weights and other | best solution. Adjustments of administrative weights and other | |||
parameters associated with routing protocols provide finer-grained | parameters associated with routing protocols provide finer-grained | |||
control, but this approach is difficult to use and imprecise because | control, but this approach is difficult to use and imprecise because | |||
of the way the routing protocols interactions occur across the | of the way the routing protocols interact across the network. | |||
network. | ||||
Control mechanisms can be manual (e.g., static configuration), | Control mechanisms can be manual (e.g., static configuration), | |||
partially-automated (e.g., scripts), or fully-automated (e.g., policy | partially automated (e.g., scripts), or fully automated (e.g., | |||
based management systems). Automated mechanisms are particularly | policy-based management systems). Automated mechanisms are | |||
useful in large-scale networks. Multi-vendor interoperability can be | particularly useful in large-scale networks. Multi-vendor | |||
facilitated by standardized management tools (e.g., YANG models) to | interoperability can be facilitated by standardized management tools | |||
support the control functions required to address TE objectives. | (e.g., YANG models) to support the control functions required to | |||
address TE objectives. | ||||
Network control functions should be secure, reliable, and stable as | Network control functions should be secure, reliable, and stable as | |||
these are often needed to operate correctly in times of network | these are often needed to operate correctly in times of network | |||
impairments (e.g., during network congestion or attacks). | impairments (e.g., during network congestion or attacks). | |||
7. Inter-Domain Considerations | 7. Inter-Domain Considerations | |||
Inter-domain TE is concerned with performance optimization for | Inter-domain TE is concerned with performance optimization for | |||
traffic that originates in one administrative domain and terminates | traffic that originates in one administrative domain and terminates | |||
in a different one. | in a different one. | |||
BGP [RFC4271] is the standard exterior gateway protocol used to | BGP [RFC4271] is the standard exterior gateway protocol used to | |||
exchange routing information between autonomous systems (ASes) in the | exchange routing information between ASes in the Internet. BGP | |||
Internet. BGP includes a decision process that calculates the | includes a decision process that calculates the preference for routes | |||
preference for routes to a given destination network. There are two | to a given destination network. There are two fundamental aspects to | |||
fundamental aspects to inter-domain TE using BGP: | inter-domain TE using BGP: | |||
* Route Propagation: Controlling the import and export of routes | Route Propagation: Controlling the import and export of routes | |||
between ASes, and controlling the redistribution of routes between | between ASes and controlling the redistribution of routes between | |||
BGP and other protocols within an AS. | BGP and other protocols within an AS. | |||
* Best-path selection: Selecting the best path when there are | Best-path selection: Selecting the best path when there are multiple | |||
multiple candidate paths to a given destination network. This is | candidate paths to a given destination network. This is performed | |||
performed by the BGP decision process, selecting preferred exit | by the BGP decision process, which selects the preferred exit | |||
points out of an AS towards specific destination networks taking a | points out of an AS toward specific destination networks by taking | |||
number of different considerations into account. The BGP path | a number of different considerations into account. The BGP path | |||
selection process can be influenced by manipulating the attributes | selection process can be influenced by manipulating the attributes | |||
associated with the process, including NEXT_HOP, LOCAL_PREF, | associated with the process, including NEXT_HOP, LOCAL_PREF, | |||
AS_PATH, ORIGIN, MULTI_EXIT_DISC (MED), IGP metric, etc. | AS_PATH, ORIGIN, MULTI_EXIT_DISC (MED), IGP metric, etc. | |||
Most BGP implementations provide constructs that facilitate the | Most BGP implementations provide constructs that facilitate the | |||
implementation of complex BGP policies based on pre-configured | implementation of complex BGP policies based on pre-configured | |||
logical conditions. These can be used to control import and export | logical conditions. These can be used to control import and export | |||
of incoming and outgoing routes, control redistribution of routes | of incoming and outgoing routes, control redistribution of routes | |||
between BGP and other protocols, and influence the selection of best | between BGP and other protocols, and influence the selection of best | |||
paths by manipulating the attributes (either standardized, or local | paths by manipulating the attributes (either standardized or local to | |||
to the implementation) associated with the BGP decision process. | the implementation) associated with the BGP decision process. | |||
When considering inter-domain TE with BGP, note that the outbound | When considering inter-domain TE with BGP, note that the outbound | |||
traffic exit point is controllable, whereas the interconnection point | traffic exit point is controllable, whereas the interconnection point | |||
where inbound traffic is received typically is not. Therefore, it is | where inbound traffic is received typically is not. Therefore, it is | |||
up to each individual network to implement TE strategies that deal | up to each individual network to implement TE strategies that deal | |||
with the efficient delivery of outbound traffic from its customers to | with the efficient delivery of outbound traffic from its customers to | |||
its peering points. The vast majority of TE policy is based on a | its peering points. The vast majority of TE policy is based on a | |||
"closest exit" strategy, which offloads inter-domain traffic at the | "closest exit" strategy, which offloads inter-domain traffic at the | |||
nearest outbound peering point towards the destination AS. Most | nearest outbound peering point towards the destination AS. Most | |||
methods of manipulating the point at which inbound traffic enters are | methods of manipulating the point at which inbound traffic enters are | |||
either ineffective, or not accepted in the peering community. | either ineffective or not accepted in the peering community. | |||
Inter-domain TE with BGP is generally effective, but it is usually | Inter-domain TE with BGP is generally effective, but it is usually | |||
applied in a trial-and-error fashion because a TE system usually only | applied in a trial-and-error fashion because a TE system usually only | |||
has a view of the available network resources within one domain (an | has a view of the available network resources within one domain (an | |||
AS in this case). A systematic approach for inter-domain TE requires | AS in this case). A systematic approach for inter-domain TE requires | |||
cooperation between the domains. Further, what may be considered a | cooperation between the domains. Further, what may be considered a | |||
good solution in one domain may not necessarily be a good solution in | good solution in one domain may not necessarily be a good solution in | |||
another. Moreover, it is generally considered inadvisable for one | another. Moreover, it is generally considered inadvisable for one | |||
domain to permit a control process from another domain to influence | domain to permit a control process from another domain to influence | |||
the routing and management of traffic in its network. | the routing and management of traffic in its network. | |||
MPLS TE-tunnels (LSPs) can add a degree of flexibility in the | MPLS-TE tunnels (LSPs) can add a degree of flexibility in the | |||
selection of exit points for inter-domain routing by applying the | selection of exit points for inter-domain routing by applying the | |||
concept of relative and absolute metrics. If BGP attributes are | concept of relative and absolute metrics. If BGP attributes are | |||
defined such that the BGP decision process depends on IGP metrics to | defined such that the BGP decision process depends on IGP metrics to | |||
select exit points for inter-domain traffic, then some inter-domain | select exit points for inter-domain traffic, then some inter-domain | |||
traffic destined to a given peer network can be made to prefer a | traffic destined to a given peer network can be made to prefer a | |||
specific exit point by establishing a TE-tunnel between the router | specific exit point by establishing a TE tunnel between the router | |||
making the selection and the peering point via a TE-tunnel and | making the selection and the peering point via a TE tunnel and | |||
assigning the TE-tunnel a metric which is smaller than the IGP cost | assigning the TE tunnel a metric that is smaller than the IGP cost to | |||
to all other peering points. RSVP-TE protocol extensions for inter- | all other peering points. RSVP-TE protocol extensions for inter- | |||
domain MPLS and GMPLS are described in [RFC5151]. | domain MPLS and GMPLS are described in [RFC5151]. | |||
Similarly to intra-domain TE, inter-domain TE is best accomplished | Similarly to intra-domain TE, inter-domain TE is best accomplished | |||
when a traffic matrix can be derived to depict the volume of traffic | when a traffic matrix can be derived to depict the volume of traffic | |||
from one AS to another. | from one AS to another. | |||
Layer 4 multipath transport protocols are designed to move traffic | Layer 4 multipath transport protocols are designed to move traffic | |||
between domains and to allow some influence over the selection of the | between domains and to allow some influence over the selection of the | |||
paths. To be truly effective, these protocols would require | paths. To be truly effective, these protocols would require | |||
visibility of paths and network conditions in other domains, and that | visibility of paths and network conditions in other domains, but that | |||
information may not be available, might not be complete, and is not | information may not be available, might not be complete, and is not | |||
necessarily trustworthy. | necessarily trustworthy. | |||
8. Overview of Contemporary TE Practices in Operational IP Networks | 8. Overview of Contemporary TE Practices in Operational IP Networks | |||
This section provides an overview of some TE practices in IP | This section provides an overview of some TE practices in IP | |||
networks. The focus is on aspects of control of the routing function | networks. The focus is on aspects of control of the routing function | |||
in operational contexts. The intent here is to provide an overview | in operational contexts. The intent here is to provide an overview | |||
of the commonly used practices: the discussion is not intended to be | of the commonly used practices; the discussion is not intended to be | |||
exhaustive. | exhaustive. | |||
Service providers apply many of the TE mechanisms described in this | Service providers apply many of the TE mechanisms described in this | |||
document to optimize the performance of their IP networks, although | document to optimize the performance of their IP networks, although | |||
others choose to not use any of them. These techniques include | others choose to not use any of them. These techniques include | |||
capacity planning including adding ECMP options for long timescales; | capacity planning, including adding ECMP options, for long | |||
routing control using IGP metrics and MPLS, as well as path planning | timescales; routing control using IGP metrics and MPLS, as well as | |||
and path control using MPLS and Segment Routing for medium | path planning and path control using MPLS and SR for medium | |||
timescales; and traffic management mechanisms for short timescale. | timescales; and traffic management mechanisms for short timescales. | |||
* Capacity planning is an important component of how a service | * Capacity planning is an important component of how a service | |||
provider plans an effective IP network. These plans may take the | provider plans an effective IP network. These plans may take the | |||
following aspects into account: location of any new links or | following aspects into account: location of any new links or | |||
nodes, WECMP algorithms, existing and predicted traffic patterns, | nodes, WECMP algorithms, existing and predicted traffic patterns, | |||
costs, link capacity, topology, routing design, and survivability. | costs, link capacity, topology, routing design, and survivability. | |||
* Performance optimization of operational networks is usually an | * Performance optimization of operational networks is usually an | |||
ongoing process in which traffic statistics, performance | ongoing process in which traffic statistics, performance | |||
parameters, and fault indicators are continually collected from | parameters, and fault indicators are continually collected from | |||
the network. This empirical data is analyzed and used to trigger | the network. This empirical data is analyzed and used to trigger | |||
TE mechanisms. Tools that perform what-if analysis can also be | TE mechanisms. Tools that perform what-if analysis can also be | |||
used to assist the TE process by reviewing scenarios before a new | used to assist the TE process by reviewing scenarios before a new | |||
set of configurations are implemented in the operational network. | set of configurations are implemented in the operational network. | |||
* Real-time intra-domain TE using the IGP is done by increasing the | * Real-time intra-domain TE using the IGP is done by increasing the | |||
OSPF or IS-IS metric of a congested link until enough traffic has | OSPF or IS-IS metric of a congested link until enough traffic has | |||
been diverted away from that link. This approach has some | been diverted away from that link. This approach has some | |||
limitations as discussed in Section 6.2. Intra-domain TE | limitations as discussed in Section 6.2. Intra-domain TE | |||
approaches ([RR94] [FT00] [FT01] [WANG]) take traffic matrix, | approaches [RR94] [FT00] [FT01] [WANG] take traffic matrix, | |||
network topology, and network performance objectives as input, and | network topology, and network performance objectives as input and | |||
produce link metrics and load-sharing ratios. These processes | produce link metrics and load-sharing ratios. These processes | |||
open the possibility for intra-domain TE with IGP to be done in a | open the possibility for intra-domain TE with IGP to be done in a | |||
more systematic way. | more systematic way. | |||
Administrators of MPLS-TE networks specify and configure link | Administrators of MPLS-TE networks specify and configure link | |||
attributes and resource constraints such as maximum reservable | attributes and resource constraints such as maximum reservable | |||
bandwidth and resource class attributes for the links in the domain. | bandwidth and resource class attributes for the links in the domain. | |||
A link state IGP that supports TE extensions (IS-IS-TE or OSPF-TE) is | A link-state IGP that supports TE extensions (IS-IS-TE or OSPF-TE) is | |||
used to propagate information about network topology and link | used to propagate information about network topology and link | |||
attributes to all routers in the domain. Network administrators | attributes to all routers in the domain. Network administrators | |||
specify the LSPs that are to originate at each router. For each LSP, | specify the LSPs that are to originate at each router. For each LSP, | |||
the network administrator specifies the destination node and the | the network administrator specifies the destination node and the | |||
attributes of the LSP which indicate the requirements that are to be | attributes of the LSP that indicate the requirements that are to be | |||
satisfied during the path selection process. The attributes may | satisfied during the path selection process. The attributes may | |||
include an explicit path for the LSP to follow, or the originating | include an explicit path for the LSP to follow, or the originating | |||
router may use a local constraint-based routing process to compute | router may use a local constraint-based routing process to compute | |||
the path of the LSP. RSVP-TE is used as a signaling protocol to | the path of the LSP. RSVP-TE is used as a signaling protocol to | |||
instantiate the LSPs. By assigning proper bandwidth values to links | instantiate the LSPs. By assigning proper bandwidth values to links | |||
and LSPs, congestion caused by uneven traffic distribution can be | and LSPs, congestion caused by uneven traffic distribution can be | |||
avoided or mitigated. | avoided or mitigated. | |||
The bandwidth attributes of an LSP relate to the bandwidth | The bandwidth attributes of an LSP relate to the bandwidth | |||
requirements of traffic that flows through the LSP. The traffic | requirements of traffic that flows through the LSP. The traffic | |||
skipping to change at page 67, line 12 ¶ | skipping to change at line 3090 ¶ | |||
alleviate the situation, or the network administrator can configure | alleviate the situation, or the network administrator can configure | |||
new LSPs to divert some traffic to alternative paths. The reservable | new LSPs to divert some traffic to alternative paths. The reservable | |||
bandwidth of the congested links can also be reduced to force some | bandwidth of the congested links can also be reduced to force some | |||
LSPs to be rerouted to other paths. A traffic matrix in an MPLS | LSPs to be rerouted to other paths. A traffic matrix in an MPLS | |||
domain can also be estimated by monitoring the traffic on LSPs. Such | domain can also be estimated by monitoring the traffic on LSPs. Such | |||
traffic statistics can be used for a variety of purposes including | traffic statistics can be used for a variety of purposes including | |||
network planning and network optimization. | network planning and network optimization. | |||
Network management and planning systems have evolved and assumed a | Network management and planning systems have evolved and assumed a | |||
lot of the responsibility for determining traffic paths in TE | lot of the responsibility for determining traffic paths in TE | |||
networks. This allows a network-wide view of resources, and | networks. This allows a network-wide view of resources and | |||
facilitates coordination of the use of resources for all traffic | facilitates coordination of the use of resources for all traffic | |||
flows in the network. Initial solutions using a PCE to perform path | flows in the network. Initial solutions using a PCE to perform path | |||
computation on behalf of network routers have given way to an | computation on behalf of network routers have given way to an | |||
approach that follows the SDN architecture. A stateful PCE is able | approach that follows the SDN architecture. A stateful PCE is able | |||
to track all of the LSPs in the network and can redistribute them to | to track all of the LSPs in the network and can redistribute them to | |||
make better use of the available resources. Such a PCE can form part | make better use of the available resources. Such a PCE can form part | |||
of a network orchestrator that uses PCEP or some other configuration | of a network orchestrator that uses PCEP or some other configuration | |||
and management interface to instruct the signaling protocol or | and management interface to instruct the signaling protocol or | |||
directly program the routers. | directly program the routers. | |||
Segment Routing leverages a centralized TE controller and either an | SR leverages a centralized TE controller and either an MPLS or IPv6 | |||
MPLS or IPv6 forwarding plane, but does not need to use a signaling | forwarding plane but does not need to use a signaling protocol or | |||
protocol or management plane protocol to reserve resources in the | management plane protocol to reserve resources in the routers. All | |||
routers. All resource reservation is logical within the controller, | resource reservation is logical within the controller and is not | |||
and not distributed to the routers. Packets are steered through the | distributed to the routers. Packets are steered through the network | |||
network using Segment Routing, and this may have configuration and | using SR, and this may have configuration and operational scaling | |||
operational scaling benefits. | benefits. | |||
As mentioned in Section 7, there is usually no direct control over | As mentioned in Section 7, there is usually no direct control over | |||
the distribution of inbound traffic to a domain. Therefore, the main | the distribution of inbound traffic to a domain. Therefore, the main | |||
goal of inter-domain TE is to optimize the distribution of outbound | goal of inter-domain TE is to optimize the distribution of outbound | |||
traffic between multiple inter-domain links. When operating a | traffic between multiple inter-domain links. When operating a | |||
geographically widespread network (such as for a multi-national or | geographically widespread network (such as for a multi-national or | |||
global network provider), maintaining the ability to operate the | global network provider), maintaining the ability to operate the | |||
network in a regional fashion where desired, while continuing to take | network in a regional fashion where desired, while continuing to take | |||
advantage of the benefits of a globally interconnected network, also | advantage of the benefits of a globally interconnected network, also | |||
becomes an important objective. | becomes an important objective. | |||
Inter-domain TE with BGP begins with the placement of multiple | Inter-domain TE with BGP begins with the placement of multiple | |||
peering interconnection points that are in close proximity to traffic | peering interconnection points that are in close proximity to traffic | |||
sources/destination, and offer lowest-cost paths across the network | sources/destinations and offer lowest-cost paths across the network | |||
between the peering points and the sources/destinations. Some | between the peering points and the sources/destinations. Some | |||
location-decision problems that arise in association with inter- | location-decision problems that arise in association with inter- | |||
domain routing are discussed in [AWD5]. | domain routing are discussed in [AWD5]. | |||
Once the locations of the peering interconnects have been determined | Once the locations of the peering interconnects have been determined | |||
and implemented, the network operator decides how best to handle the | and implemented, the network operator decides how best to handle the | |||
routes advertised by the peer, as well as how to propagate the peer's | routes advertised by the peer, as well as how to propagate the peer's | |||
routes within their network. One way to engineer outbound traffic | routes within their network. One way to engineer outbound traffic | |||
flows in a network with many peering interconnects is to create a | flows in a network with many peering interconnects is to create a | |||
hierarchy of peers. Generally, the shortest AS paths will be chosen | hierarchy of peers. Generally, the shortest AS paths will be chosen | |||
to forward traffic but BGP metrics can be used to prefer some peers | to forward traffic, but BGP metrics can be used to prefer some peers | |||
and so favor particular paths. Preferred peers are those peers | and so favor particular paths. Preferred peers are those peers | |||
attached through peering interconnects with the most available | attached through peering interconnects with the most available | |||
capacity. Changes may be needed, for example, to deal with a | capacity. Changes may be needed, for example, to deal with a | |||
"problem peer" who is difficult to work with on upgrades or is | "problem peer" who is difficult to work with on upgrades or is | |||
charging high prices for connectivity to their network. In that | charging high prices for connectivity to their network. In that | |||
case, the peer may be given a reduced preference. This type of | case, the peer may be given a reduced preference. This type of | |||
change can affect a large amount of traffic, and is only used after | change can affect a large amount of traffic and is only used after | |||
other methods have failed to provide the desired results. | other methods have failed to provide the desired results. | |||
When there are multiple exit points toward a given peer, and only one | When there are multiple exit points toward a given peer, and only one | |||
of them is congested, it is not necessary to shift traffic away from | of them is congested, it is not necessary to shift traffic away from | |||
the peer entirely, but only from the one congested connections. This | the peer entirely, but only from the one congested connection. This | |||
can be achieved by using passive IGP metrics, AS_PATH filtering, or | can be achieved by using passive IGP metrics, AS_PATH filtering, or | |||
prefix filtering. | prefix filtering. | |||
9. Security Considerations | 9. Security Considerations | |||
In general, TE mechanisms are security-neutral, and this document | In general, TE mechanisms are security neutral, and this document | |||
does not introduce new security issues. | does not introduce new security issues. | |||
Network security is, of course, an important issue, and TE mechanisms | Network security is, of course, an important issue, and TE mechanisms | |||
can have benefits and drawbacks. | can have benefits and drawbacks: | |||
* TE may use tunnels which can slightly help protect traffic from | * TE may use tunnels that can slightly help protect traffic from | |||
inspection and which, in some cases, can be secured using | inspection and that, in some cases, can be secured using | |||
encryption. | encryption. | |||
* TE puts traffic onto predictable paths within the network that may | * TE puts traffic onto predictable paths within the network that may | |||
make it easier to find and attack. | make it easier to find and attack. | |||
* TE often increases the complexity of operation and management of | * TE often increases the complexity of operation and management of | |||
the network which may lead to errors that compromise security. | the network, which may lead to errors that compromise security. | |||
* TE enables traffic to be steered onto more secure links or to more | * TE enables traffic to be steered onto more secure links or to more | |||
secure parts of the network. | secure parts of the network. | |||
* TE can be used to steer traffic through network nodes that are | * TE can be used to steer traffic through network nodes that are | |||
able to provide additional security functions. | able to provide additional security functions. | |||
The consequences of attacks on the control and management protocols | The consequences of attacks on the control and management protocols | |||
used to operate TE networks can be significant: traffic can be | used to operate TE networks can be significant: | |||
hijacked to pass through specific nodes that perform inspection, or | ||||
even to be delivered to the wrong place; traffic can be steered onto | * Traffic can be hijacked to pass through specific nodes that | |||
paths that deliver quality that is below the desired quality; and, | perform inspection or even to be delivered to the wrong place. | |||
networks can be congested or have resources on key links consumed. | ||||
* Traffic can be steered onto paths that deliver quality that is | ||||
below the desired quality. | ||||
* Networks can be congested or have resources on key links consumed. | ||||
Thus, it is important to use adequate protection mechanisms, such as | Thus, it is important to use adequate protection mechanisms, such as | |||
authentication, on all protocols used to deliver TE. | authentication, on all protocols used to deliver TE. | |||
Certain aspects of a network may be deduced from the details of the | Certain aspects of a network may be deduced from the details of the | |||
TE paths that are used. For example, the link connectivity of the | TE paths that are used. For example, the link connectivity of the | |||
network, and the quality and load on individual links may be inferred | network and the quality and load on individual links may be inferred | |||
from knowing the paths of traffic and the requirements they place on | from knowing the paths of traffic and the requirements they place on | |||
the network (for example, by seeing the control messages or through | the network (for example, by seeing the control messages or through | |||
path- trace techniques). Such knowledge can be used to launch | path-trace techniques). Such knowledge can be used to launch | |||
targeted attacks (for example, taking down critical links) or can | targeted attacks (for example, taking down critical links) or can | |||
reveal commercially sensitive information (for example, whether a | reveal commercially sensitive information (for example, whether a | |||
network is close to capacity). Network operators may, therefore, | network is close to capacity). Therefore, network operators may | |||
choose techniques that mask or hide information from within the | choose techniques that mask or hide information from within the | |||
network. | network. | |||
External control interfaces that are introduced to provide additional | External control interfaces that are introduced to provide additional | |||
control and management of TE systems (see Section 5.1.2) provide | control and management of TE systems (see Section 5.1.2) provide | |||
flexibility to management and to customers, but do so at the risk of | flexibility to management and to customers, but they do so at the | |||
exposing the internals of a network to potentially malicious actors. | risk of exposing the internals of a network to potentially malicious | |||
The protocols used at these interfaces must be secured to protect | actors. The protocols used at these interfaces must be secured to | |||
against snooping and modification, and use of the interfaces must be | protect against snooping and modification, and use of the interfaces | |||
authenticated. | must be authenticated. | |||
10. IANA Considerations | 10. IANA Considerations | |||
This draft makes no requests for IANA action. | This document has no IANA actions. | |||
11. Acknowledgments | ||||
Much of the text in this document is derived from RFC 3272. The | ||||
editor and contributors to this document would like to express their | ||||
gratitude to all involved in that work. Although the source text has | ||||
been edited in the production of this document, the original authors | ||||
should be considered as Contributors to this work. They were: | ||||
Daniel O. Awduche | ||||
Movaz Networks | ||||
Angela Chiu | ||||
Celion Networks | ||||
Anwar Elwalid | ||||
Lucent Technologies | ||||
Indra Widjaja | ||||
Bell Labs, Lucent Technologies | ||||
XiPeng Xiao | ||||
Redback Networks | ||||
The acknowledgements in RFC3272 were as below. All people who helped | ||||
in the production of that document also need to be thanked for the | ||||
carry-over into this new document. | ||||
The authors would like to thank Jim Boyle for inputs on the | ||||
recommendations section, Francois Le Faucheur for inputs on | ||||
Diffserv aspects, Blaine Christian for inputs on measurement, | ||||
Gerald Ash for inputs on routing in telephone networks and for | ||||
text on event-dependent TE methods, Steven Wright for inputs | ||||
on network controllability, and Jonathan Aufderheide for | ||||
inputs on inter-domain TE with BGP. Special thanks to | ||||
Randy Bush for proposing the TE taxonomy based on "tactical versus | ||||
strategic" methods. The subsection describing an "Overview of | ||||
ITU Activities Related to Traffic Engineering" was adapted from | ||||
a contribution by Waisum Lai. Useful feedback and pointers to | ||||
relevant materials were provided by J. Noel Chiappa. | ||||
Additional comments were provided by Glenn Grotefeld during | ||||
the working last call process. Finally, the authors would like | ||||
to thank Ed Kern, the TEWG co-chair, for his comments and | ||||
support. | ||||
The early versions of this document were produced by the TEAS Working | ||||
Group's RFC3272bis Design Team. The full list of members of this | ||||
team is: | ||||
Acee Lindem | ||||
Adrian Farrel | ||||
Aijun Wang | ||||
Daniele Ceccarelli | ||||
Dieter Beller | ||||
Jeff Tantsura | ||||
Julien Meuric | ||||
Liu Hua | ||||
Loa Andersson | ||||
Luis Miguel Contreras | ||||
Martin Horneffer | ||||
Tarek Saad | ||||
Xufeng Liu | ||||
The production of this document includes a fix to the original text | ||||
resulting from an Errata Report by Jean-Michel Grimaldi. | ||||
The editor of this document would also like to thank Dhruv Dhody, | ||||
Gyan Mishra, Joel Halpern, Dave Taht, John Scudder, Rich Salz, Behcet | ||||
Sarikaya, Bob Briscoe, Erik Kline, Jim Guichard, Martin Duke, and | ||||
Roman Danyliw, for review comments. | ||||
This work is partially supported by the European Commission under | ||||
Horizon 2020 grant agreement number 101015857 Secured autonomic | ||||
traffic management for a Tera of SDN flows (Teraflow). | ||||
12. Contributors | ||||
The following people contributed substantive text to this document: | ||||
Gert Grammel | ||||
EMail: ggrammel@juniper.net | ||||
Loa Andersson | ||||
EMail: loa@pi.nu | ||||
Xufeng Liu | ||||
EMail: xufeng.liu.ietf@gmail.com | ||||
Lou Berger | ||||
EMail: lberger@labn.net | ||||
Jeff Tantsura | ||||
EMail: jefftant.ietf@gmail.com | ||||
Daniel King | ||||
EMail: daniel@olddog.co.uk | ||||
Boris Hassanov | ||||
EMail: bhassanov@yandex-team.ru | ||||
Kiran Makhijani | ||||
Email: kiranm@futurewei.com | ||||
Dhruv Dhody | ||||
Email: dhruv.ietf@gmail.com | ||||
Mohamed Boucadair | ||||
Email: mohamed.boucadair@orange.com | ||||
13. Informative References | 11. Informative References | |||
[AFD03] Pan, R., Breslau, L., Prabhakar, B., and S. Shenker, | [AFD03] Pan, R., Breslau, L., Prabhakar, B., and S. Shenker, | |||
"Approximate fairness through differential dropping", | "Approximate fairness through differential dropping", ACM | |||
Article ACM SIGCOMM Computer Communication Review, Volume | SIGCOMM Computer Communication Review, Volume 33, Issue 2, | |||
33, Issue 2, April 2003, pp 23-39, 2003, | Pages 23-39, DOI 10.1145/956981.956985, April 2003, | |||
<https://dl.acm.org/doi/10.1145/956981.956985>. | <https://dl.acm.org/doi/10.1145/956981.956985>. | |||
[AJ19] Adekitan, A., Abolade, J., and O. Shobayo, "Data mining | [AJ19] Adekitan, A., Abolade, J., and O. Shobayo, "Data mining | |||
approach for predicting the daily Internet data traffic of | approach for predicting the daily Internet data traffic of | |||
a smart university", Article Journal of Big Data, 2019, | a smart university", Journal of Big Data, Volume 6, Number | |||
Volume 6, Number 1, Page 1, 1998, | 1, Page 1, DOI 10.1186/s40537-019-0176-5, February 2019, | |||
<https://journalofbigdata.springeropen.com/track/ | <https://journalofbigdata.springeropen.com/track/ | |||
pdf/10.1186/s40537-019-0176-5.pdf>. | pdf/10.1186/s40537-019-0176-5.pdf>. | |||
[ATSSS] "Study on access traffic steering, switch and splitting | [ATSSS] 3GPP, "Study on access traffic steering, switch and | |||
support in the 5G System (5GS) architecture", | splitting support in the 5G System (5GS) architecture", | |||
Specification 3GPP Technical Report 23.793 Release 16, | Release 16, 3GPP TR 23.793, December 2018, | |||
December 2018, <https://www.3gpp.org/ftp//Specs/ | <https://www.3gpp.org/ftp//Specs/ | |||
archive/23_series/23.793/23793-g00.zip>. | archive/23_series/23.793/23793-g00.zip>. | |||
[AWD2] Awduche, D., "MPLS and Traffic Engineering in IP | [AWD2] Awduche, D., "MPLS and traffic engineering in IP | |||
Networks", Article IEEE Communications Magazine, December | networks", IEEE Communications Magazine, Volume 37, Issue | |||
1999, <https://ieeexplore.ieee.org/document/809383>. | 12, Pages 42-47, DOI 10.1109/35.809383, December 1999, | |||
<https://ieeexplore.ieee.org/document/809383>. | ||||
[AWD5] Awduche, D., "An Approach to Optimal Peering Between | [AWD5] Awduche, D., "An approach to optimal peering between | |||
Autonomous Systems in the Internet", Paper International | autonomous systems in the Internet", Proceedings 7th | |||
Conference on Computer Communications and Networks | International Conference on Computer Communications and | |||
(ICCCN'98), October 1998, | Networks (Cat. No. 98EX226), | |||
DOI 10.1109/ICCCN.1998.998795, October 1998, | ||||
<https://ieeexplore.ieee.org/document/998795>. | <https://ieeexplore.ieee.org/document/998795>. | |||
[E.360.1] International Telecommunication Union - Telecommunication | [E.360.1] ITU-T, "Framework for QoS routing and related traffic | |||
Standardization Sector, "E.360.1: Framework for QoS | engineering methods for IP-, ATM-, and TDM-based | |||
routing and related traffic engineering methods for IP-, | multiservice networks", ITU-T Recommendation E.360.1, May | |||
ATM-, and TDM-based multiservice networks", | 2002, <https://www.itu.int/rec/T-REC-E.360.1-200205-I/en>. | |||
Recommendation ITU-T Recommendation E.360.1, 16 May 2002, | ||||
<https://www.itu.int/rec/T-REC-E.360.1-200205-I/en>. | [ENHANCED-VPN] | |||
Dong, J., Bryant, S., Li, Z., Miyasaka, T., and Y. Lee, "A | ||||
Framework for NRP-based Enhanced Virtual Private Network", | ||||
Work in Progress, Internet-Draft, draft-ietf-teas- | ||||
enhanced-vpn-17, 25 December 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
enhanced-vpn-17>. | ||||
[Err309] RFC Errata, Erratum ID 309, RFC 3272, | ||||
<https://www.rfc-editor.org/errata/eid309>. | ||||
[EVPN-UNEQUAL-LB] | ||||
Malhotra, N., Ed., Sajassi, A., Rabadan, J., Drake, J., | ||||
Lingala, A., and S. Thoria, "Weighted Multi-Path | ||||
Procedures for EVPN Multi-Homing", Work in Progress, | ||||
Internet-Draft, draft-ietf-bess-evpn-unequal-lb-21, 7 | ||||
December 2023, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-bess-evpn-unequal-lb-21>. | ||||
[FLJA93] Floyd, S. and V. Jacobson, "Random Early Detection | [FLJA93] Floyd, S. and V. Jacobson, "Random Early Detection | |||
Gateways for Congestion Avoidance", Article IEEE/ACM | Gateways for Congestion Avoidance", IEEE/ACM Transactions | |||
Transactions on Networking, Vol. 1, p. 387-413, November | on Networking, Volume 1, Issue 4, Pages 397-413, | |||
1993, | DOI 10.1109/90.251892, August 1993, | |||
<https://www.icir.org/floyd/papers/early.twocolumn.pdf>. | <https://www.icir.org/floyd/papers/early.twocolumn.pdf>. | |||
[FT00] Fortz, B. and M. Thorup, "Internet Traffic Engineering by | [FT00] Fortz, B. and M. Thorup, "Internet Traffic Engineering by | |||
Optimizing OSPF Weights", Article IEEE INFOCOM 2000, March | Optimizing OSPF Weights", Proceedings IEEE INFOCOM 2000, | |||
2000, <https://www.cs.cornell.edu/courses/cs619/2004fa/ | DOI 10.1109/INFCOM.2000.832225, March 2000, | |||
<https://www.cs.cornell.edu/courses/cs619/2004fa/ | ||||
documents/ospf_opt.pdf>. | documents/ospf_opt.pdf>. | |||
[FT01] Fortz, B. and M. Thorup, "Optimizing OSPF/IS-IS Weights in | [FT01] Fortz, B. and M. Thorup, "Optimizing OSPF/IS-IS Weights in | |||
a Changing World", n.d., | a Changing World", IEEE Journal on Selected Areas in | |||
<http://www.research.att.com/~mthorup/PAPERS/papers.html>. | Communications, DOI 10.1109/JSAC.2002.1003042, May 2002, | |||
<https://ieeexplore.ieee.org/document/1003042>. | ||||
[GRPC] Cloud Native Computing Foundation, "gPPC: A high | [GRPC] gRPC Authors, "gRPC: A high performance, open source | |||
performance, open source universal RPC framework", n.d., | universal RPC framework", <https://grpc.io>. | |||
<https://grpc.io>. | ||||
[I-D.ietf-bess-evpn-unequal-lb] | [KELLY] Kelly, F., "Notes on effective bandwidths", Oxford | |||
Malhotra, N., Sajassi, A., Rabadan, J., Drake, J., | University Press, 1996. | |||
Lingala, A., and S. Thoria, "Weighted Multi-Path | ||||
Procedures for EVPN Multi-Homing", Work in Progress, | [MA] Ma, Q., "Quality-of-Service Routing in Integrated Services | |||
Internet-Draft, draft-ietf-bess-evpn-unequal-lb-18, 1 June | Networks", Ph.D. Dissertation, Carnegie Mellon University, | |||
CMU-CS-98-138, January 1998, | ||||
<https://apps.dtic.mil/sti/pdfs/ADA352299.pdf>. | ||||
[MATE] Elwalid, A., Jin, C., Low, S., and I. Widjaja, "MATE: MPLS | ||||
Adaptive Traffic Engineering", Proceedings IEEE INFOCOM | ||||
2001, Conference on Computer Communications, Twentieth | ||||
Annual Joint Conference of the IEEE Computer and | ||||
Communications Society (Cat. No. 01CH37213), | ||||
DOI 10.1109/INFCOM.2001.916625, August 2002, | ||||
<https://www.yumpu.com/en/document/view/35140398/mate- | ||||
mpls-adaptive-traffic-engineering-infocom-ieee-xplore/8>. | ||||
[MR99] Mitra, D. and K.G. Ramakrishnan, "A case study of | ||||
multiservice, multipriority traffic engineering design for | ||||
data networks", Seamless Interconnection for Universal | ||||
Services, Global Telecommunications Conference, | ||||
GLOBECOM'99, (Cat. No. 99CH37042), | ||||
DOI 10.1109/GLOCOM.1999.830281, December 1999, | ||||
<https://ieeexplore.ieee.org/document/830281>. | ||||
[MULTIPATH-DCCP] | ||||
Amend, M., Ed., Brunstrom, A., Kassler, A., Rakocevic, V., | ||||
and S. Johnson, "DCCP Extensions for Multipath Operation | ||||
with Multiple Addresses", Work in Progress, Internet- | ||||
Draft, draft-ietf-tsvwg-multipath-dccp-11, 12 October | ||||
2023, <https://datatracker.ietf.org/doc/html/draft-ietf- | 2023, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
bess-evpn-unequal-lb-18>. | tsvwg-multipath-dccp-11>. | |||
[I-D.ietf-idr-performance-routing] | [NETWORK-SLICES] | |||
Farrel, A., Ed., Drake, J., Ed., 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-25, 14 September 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
ietf-network-slices-25>. | ||||
[PERFORMANCE-ROUTING] | ||||
Xu, X., Hegde, S., Talaulikar, K., Boucadair, M., and C. | Xu, X., Hegde, S., Talaulikar, K., Boucadair, M., and C. | |||
Jacquenet, "Performance-based BGP Routing Mechanism", Work | Jacquenet, "Performance-based BGP Routing Mechanism", Work | |||
in Progress, Internet-Draft, draft-ietf-idr-performance- | in Progress, Internet-Draft, draft-ietf-idr-performance- | |||
routing-03, 22 December 2020, | routing-03, 22 December 2020, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- | <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | |||
performance-routing-03>. | performance-routing-03>. | |||
[I-D.ietf-idr-segment-routing-te-policy] | [QUIC-MULTIPATH] | |||
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and | Liu, Y., Ed., Ma, Y., Ed., De Coninck, Q., Ed., | |||
D. Jain, "Advertising Segment Routing Policies in BGP", | Bonaventure, O., Huitema, C., and M. Kühlewind, Ed., | |||
Work in Progress, Internet-Draft, draft-ietf-idr-segment- | "Multipath Extension for QUIC", Work in Progress, | |||
routing-te-policy-23, 25 July 2023, | Internet-Draft, draft-ietf-quic-multipath-06, 23 October | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- | 2023, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
segment-routing-te-policy-23>. | quic-multipath-06>. | |||
[I-D.ietf-lsr-ip-flexalgo] | ||||
Britto, W., Hegde, S., Kaneriya, P., Shetty, R., Bonica, | ||||
R., and P. Psenak, "IGP Flexible Algorithms (Flex- | ||||
Algorithm) In IP Networks", Work in Progress, Internet- | ||||
Draft, draft-ietf-lsr-ip-flexalgo-17, 24 July 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-lsr-ip- | ||||
flexalgo-17>. | ||||
[I-D.ietf-quic-multipath] | ||||
Liu, Y., Ma, Y., De Coninck, Q., Bonaventure, O., Huitema, | ||||
C., and M. Kühlewind, "Multipath Extension for QUIC", Work | ||||
in Progress, Internet-Draft, draft-ietf-quic-multipath-05, | ||||
10 July 2023, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-quic-multipath-05>. | ||||
[I-D.ietf-rtgwg-segment-routing-ti-lfa] | ||||
Litkowski, S., Bashandy, A., Filsfils, C., Francois, P., | ||||
Decraene, B., and D. Voyer, "Topology Independent Fast | ||||
Reroute using Segment Routing", Work in Progress, | ||||
Internet-Draft, draft-ietf-rtgwg-segment-routing-ti-lfa- | ||||
11, 30 June 2023, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-rtgwg-segment-routing-ti-lfa-11>. | ||||
[I-D.ietf-teas-enhanced-vpn] | ||||
Dong, J., Bryant, S., Li, Z., Miyasaka, T., and Y. Lee, "A | ||||
Framework for Enhanced Virtual Private Network (VPN+)", | ||||
Work in Progress, Internet-Draft, draft-ietf-teas- | ||||
enhanced-vpn-14, 28 July 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
enhanced-vpn-14>. | ||||
[I-D.ietf-teas-ietf-network-slices] | ||||
Farrel, A., Drake, J., Rokui, R., Homma, S., Makhijani, | ||||
K., Contreras, L. M., and J. Tantsura, "A Framework for | ||||
IETF Network Slices", Work in Progress, Internet-Draft, | ||||
draft-ietf-teas-ietf-network-slices-22, 24 July 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
ietf-network-slices-22>. | ||||
[I-D.ietf-tewg-qos-routing] | ||||
Ash, G., "Traffic Engineering & QoS Methods for IP-, ATM-, | ||||
& Based Multiservice Networks", Work in Progress, | ||||
Internet-Draft, draft-ietf-tewg-qos-routing-04, 15 October | ||||
2001, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
tewg-qos-routing-04>. | ||||
[I-D.ietf-tsvwg-multipath-dccp] | ||||
Amend, M., Brunstrom, A., Kassler, A., Rakocevic, V., and | ||||
S. Johnson, "DCCP Extensions for Multipath Operation with | ||||
Multiple Addresses", Work in Progress, Internet-Draft, | ||||
draft-ietf-tsvwg-multipath-dccp-10, 26 July 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | ||||
multipath-dccp-10>. | ||||
[KELLY] Kelly, F., "Notes on effective bandwidths. In Stochastic | ||||
Networks: Theory and Applications", Book Oxford University | ||||
Press, 1996. | ||||
[MA] Ma, Q., "Quality of Service Routing in Integrated Services | ||||
Networks", Ph.D. PhD Dissertation, CMU-CS-98-138, CMU, | ||||
1998, <https://apps.dtic.mil/sti/pdfs/ADA352299.pdf>. | ||||
[MATE] Elwalid, A., Jin, C., Low, S., and I. Widjaja, "MATE - | ||||
MPLS Adaptive Traffic Engineering", | ||||
Proceedings INFOCOM'01, April 2001, | ||||
<https://www.yumpu.com/en/document/view/35140398/mate- | ||||
mpls-adaptive-traffic-engineering-infocom-ieee-xplore/8>. | ||||
[MR99] Mitra, D. and K.G. Ramakrishnan, "A Case Study of | ||||
Multiservice, Multipriority Traffic Engineering Design for | ||||
Data Networks", Proceedings Globecom'99, December 1999, | ||||
<https://ieeexplore.ieee.org/document/830281>. | ||||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
DOI 10.17487/RFC0791, September 1981, | DOI 10.17487/RFC0791, September 1981, | |||
<https://www.rfc-editor.org/info/rfc791>. | <https://www.rfc-editor.org/info/rfc791>. | |||
[RFC1102] Clark, D., "Policy routing in Internet protocols", | [RFC1102] Clark, D., "Policy routing in Internet protocols", | |||
RFC 1102, DOI 10.17487/RFC1102, May 1989, | RFC 1102, DOI 10.17487/RFC1102, May 1989, | |||
<https://www.rfc-editor.org/info/rfc1102>. | <https://www.rfc-editor.org/info/rfc1102>. | |||
[RFC1104] Braun, H., "Models of policy based routing", RFC 1104, | [RFC1104] Braun, H., "Models of policy based routing", RFC 1104, | |||
skipping to change at page 84, line 15 ¶ | skipping to change at line 3726 ¶ | |||
[RFC7679] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, | [RFC7679] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, | |||
Ed., "A One-Way Delay Metric for IP Performance Metrics | Ed., "A One-Way Delay Metric for IP Performance Metrics | |||
(IPPM)", STD 81, RFC 7679, DOI 10.17487/RFC7679, January | (IPPM)", STD 81, RFC 7679, DOI 10.17487/RFC7679, January | |||
2016, <https://www.rfc-editor.org/info/rfc7679>. | 2016, <https://www.rfc-editor.org/info/rfc7679>. | |||
[RFC7680] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, | [RFC7680] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, | |||
Ed., "A One-Way Loss Metric for IP Performance Metrics | Ed., "A One-Way Loss Metric for IP Performance Metrics | |||
(IPPM)", STD 82, RFC 7680, DOI 10.17487/RFC7680, January | (IPPM)", STD 82, RFC 7680, DOI 10.17487/RFC7680, January | |||
2016, <https://www.rfc-editor.org/info/rfc7680>. | 2016, <https://www.rfc-editor.org/info/rfc7680>. | |||
[RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | ||||
S. Ray, "North-Bound Distribution of Link-State and | ||||
Traffic Engineering (TE) Information Using BGP", RFC 7752, | ||||
DOI 10.17487/RFC7752, March 2016, | ||||
<https://www.rfc-editor.org/info/rfc7752>. | ||||
[RFC7923] Voit, E., Clemm, A., and A. Gonzalez Prieto, "Requirements | [RFC7923] Voit, E., Clemm, A., and A. Gonzalez Prieto, "Requirements | |||
for Subscription to YANG Datastores", RFC 7923, | for Subscription to YANG Datastores", RFC 7923, | |||
DOI 10.17487/RFC7923, June 2016, | DOI 10.17487/RFC7923, June 2016, | |||
<https://www.rfc-editor.org/info/rfc7923>. | <https://www.rfc-editor.org/info/rfc7923>. | |||
[RFC7926] Farrel, A., Ed., Drake, J., Bitar, N., Swallow, G., | [RFC7926] Farrel, A., Ed., Drake, J., Bitar, N., Swallow, G., | |||
Ceccarelli, D., and X. Zhang, "Problem Statement and | Ceccarelli, D., and X. Zhang, "Problem Statement and | |||
Architecture for Information Exchange between | Architecture for Information Exchange between | |||
Interconnected Traffic-Engineered Networks", BCP 206, | Interconnected Traffic-Engineered Networks", BCP 206, | |||
RFC 7926, DOI 10.17487/RFC7926, July 2016, | RFC 7926, DOI 10.17487/RFC7926, July 2016, | |||
skipping to change at page 88, line 45 ¶ | skipping to change at line 3934 ¶ | |||
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | |||
DOI 10.17487/RFC9350, February 2023, | DOI 10.17487/RFC9350, February 2023, | |||
<https://www.rfc-editor.org/info/rfc9350>. | <https://www.rfc-editor.org/info/rfc9350>. | |||
[RFC9439] Wu, Q., Yang, Y., Lee, Y., Dhody, D., Randriamasy, S., and | [RFC9439] Wu, Q., Yang, Y., Lee, Y., Dhody, D., Randriamasy, S., and | |||
L. Contreras, "Application-Layer Traffic Optimization | L. Contreras, "Application-Layer Traffic Optimization | |||
(ALTO) Performance Cost Metrics", RFC 9439, | (ALTO) Performance Cost Metrics", RFC 9439, | |||
DOI 10.17487/RFC9439, August 2023, | DOI 10.17487/RFC9439, August 2023, | |||
<https://www.rfc-editor.org/info/rfc9439>. | <https://www.rfc-editor.org/info/rfc9439>. | |||
[RR94] Rodrigues, M.A. and K.G. Ramakrishnan, "Optimal Routing in | [RFC9502] Britto, W., Hegde, S., Kaneriya, P., Shetty, R., Bonica, | |||
Shortest Path Data Networks", Proceedings ITS'94, Rio de | R., and P. Psenak, "IGP Flexible Algorithm in IP | |||
Janeiro, Brazil, 1994, | Networks", RFC 9502, DOI 10.17487/RFC9502, November 2023, | |||
<https://www.rfc-editor.org/info/rfc9502>. | ||||
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and | ||||
Traffic Engineering Information Using BGP", RFC 9552, | ||||
DOI 10.17487/RFC9552, December 2023, | ||||
<https://www.rfc-editor.org/info/rfc9552>. | ||||
[RR94] Rodrigues, M. and K.G. Ramakrishnan, "Optimal routing in | ||||
shortest-path data networks", Bell Labs Technical Journal, | ||||
Volume 6, Issue 1, Pages 117-138, DOI 10.1002/bltj.2267, | ||||
August 2002, | ||||
<https://onlinelibrary.wiley.com/doi/abs/10.1002/ | <https://onlinelibrary.wiley.com/doi/abs/10.1002/ | |||
bltj.2267>. | bltj.2267>. | |||
[SLDC98] Suter, B., Lakshman, T., Stiliadis, D., and A. Choudhury, | [SLDC98] Suter, B., Lakshman, T.V., Stiliadis, D., and A.K. | |||
"Design Considerations for Supporting TCP with Per-flow | Choudhury, "Design considerations for supporting TCP with | |||
Queueing", Proceedings INFOCOM'98, p. 299-306, 1998, | per-flow queueing", Proceedings IEEE INFOCOM '98, | |||
DOI 10.1109/INFCOM.1998.659666, April 1998, | ||||
<https://ieeexplore.ieee.org/document/659666>. | <https://ieeexplore.ieee.org/document/659666>. | |||
[SR-TE-POLICY] | ||||
Previdi, S., Filsfils, C., Talaulikar, K., Ed., Mattes, | ||||
P., and D. Jain, "Advertising Segment Routing Policies in | ||||
BGP", Work in Progress, Internet-Draft, draft-ietf-idr- | ||||
segment-routing-te-policy-26, 23 October 2023, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- | ||||
segment-routing-te-policy-26>. | ||||
[SR-TI-LFA] | ||||
Bashandy, A., Litkowski, S., Filsfils, C., Francois, P., | ||||
Decraene, B., and D. Voyer, "Topology Independent Fast | ||||
Reroute using Segment Routing", Work in Progress, | ||||
Internet-Draft, draft-ietf-rtgwg-segment-routing-ti-lfa- | ||||
13, 16 January 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-rtgwg- | ||||
segment-routing-ti-lfa-13>. | ||||
[TE-QoS-ROUTING] | ||||
Ash, G., "Traffic Engineering & QoS Methods for IP-, ATM-, | ||||
& Based Multiservice Networks", Work in Progress, | ||||
Internet-Draft, draft-ietf-tewg-qos-routing-04, October | ||||
2001, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
tewg-qos-routing-04>. | ||||
[WANG] Wang, Y., Wang, Z., and L. Zhang, "Internet traffic | [WANG] Wang, Y., Wang, Z., and L. Zhang, "Internet traffic | |||
engineering without full mesh overlaying", | engineering without full mesh overlaying", Proceedings | |||
Proceedings INFOCOM'2001, April 2001, | IEEE INFOCOM 2001, DOI 10.1109/INFCOM.2001.916782, April | |||
<https://ieeexplore.ieee.org/document/916782>. | 2001, <https://ieeexplore.ieee.org/document/916782>. | |||
[XIAO] Xiao, X., Hannan, A., Bailey, B., and L. Ni, "Traffic | [XIAO] Xiao, X., Hannan, A., Bailey, B., and L. Ni, "Traffic | |||
Engineering with MPLS in the Internet", Article IEEE | Engineering with MPLS in the Internet", IEEE Network, | |||
Network Magazine, March 2000, | Volume 14, Issue 2, Pages 28-33, DOI 10.1109/65.826369, | |||
March 2000, | ||||
<https://courses.cs.washington.edu/courses/cse561/02au/ | <https://courses.cs.washington.edu/courses/cse561/02au/ | |||
papers/xiao-mpls-net00.pdf>. | papers/xiao-mpls-net00.pdf>. | |||
[YARE95] Yang, C. and A. Reddy, "A Taxonomy for Congestion Control | [YARE95] Yang, C. and A. Reddy, "A Taxonomy for Congestion Control | |||
Algorithms in Packet Switching Networks", Article IEEE | Algorithms in Packet Switching Networks", IEEE Network, | |||
Network Magazine, p. 34-45, 1995, | Pages 34-45, DOI 10.1109/65.397042, August 1995, | |||
<http://www.cs.uccs.edu/~zbo/teaching/CS522/Projects/ | <https://ieeexplore.ieee.org/document/397042>. | |||
Taxonomy_Network1995.pdf>. | ||||
Appendix A. Summary of Changes Since RFC 3272 | Appendix A. Summary of Changes since RFC 3272 | |||
The changes to this document since RFC 3272 are substantial and not | The changes to this document since [RFC3272] are substantial and not | |||
easily summarized as section-by-section changes. The material in the | easily summarized as section-by-section changes. The material in the | |||
document has been moved around considerably, some of it removed, and | document has been moved around considerably, some of it removed, and | |||
new text added. | new text added. | |||
The approach taken here is to list the table of content of both the | The approach taken here is to list the contents of both [RFC3272] and | |||
previous RFC and this document saying, respectively, where the text | this document saying, respectively, where the text has been placed | |||
has been placed and where the text came from. | and where the text came from. | |||
A.1. RFC 3272 | A.1. RFC 3272 | |||
1.0 Introduction: Edited in place in Section 1. | * Section 1.0 ("Introduction"): Edited in place in Section 1. | |||
1.1 What is Internet Traffic Engineering?: Edited in place in | - Section 1.1 ("What is Internet Traffic Engineering?"): Edited | |||
Section 1.1. | in place in Section 1.1. | |||
1.2 Scope: Moved to Section 1.3. | - Section 1.2 ("Scope"): Moved to Section 1.3. | |||
1.3 Terminology: Moved to Section 1.4 with some obsolete terms | - Section 1.3 ("Terminology"): Moved to Section 1.4 with some | |||
removed and a little editing. | obsolete terms removed and a little editing. | |||
2.0 Background: Retained as Section 2 with some text removed. | * Section 2.0 ("Background"): Retained as Section 2 with some text | |||
removed. | ||||
2.1 Context of Internet Traffic Engineering: Retained as | - Section 2.1 ("Context of Internet Traffic Engineering"): | |||
Section 2.1. | Retained as Section 2.1. | |||
2.2 Network Context: Rewritten as Section 2.2. | - Section 2.2 ("Network Context"): Rewritten as Section 2.2. | |||
2.3 Problem Context: Rewritten as Section 2.3. | - Section 2.3 ("Problem Context"): Rewritten as Section 2.3. | |||
2.3.1 Congestion and its Ramifications: Retained as | o Section 2.3.1 ("Congestion and its Ramifications"): Retained | |||
Section 2.3.1. | as Section 2.3.1. | |||
2.4 Solution Context: Edited as Section 2.4. | - Section 2.4 ("Solution Context"): Edited as Section 2.4. | |||
2.4.1 Combating the Congestion Problem: Reformatted as | o Section 2.4.1 ("Combating the Congestion Problem"): | |||
Section 2.4.1. | Reformatted as Section 2.4.1. | |||
2.5 Implementation and Operational Context: Retained as | - Section 2.5 ("Implementation and Operational Context"): | |||
Section 2.5. | Retained as Section 2.5. | |||
3.0 Traffic Engineering Process Model: Retained as Section 3. | * Section 3.0 ("Traffic Engineering Process Model"): Retained as | |||
Section 3. | ||||
3.1 Components of the Traffic Engineering Process Model: Retained | - Section 3.1 ("Components of the Traffic Engineering Process | |||
as Section 3.1. | Model"): Retained as Section 3.1. | |||
3.2 Measurement: Merged into Section 3.1. | - Section 3.2 ("Measurement"): Merged into Section 3.1. | |||
3.3 Modeling, Analysis, and Simulation: Merged into Section 3.1. | - Section 3.3 ("Modeling, Analysis, and Simulation"): Merged into | |||
Section 3.1. | ||||
3.4 Optimization: Merged into Section 3.1. | - Section 3.4 ("Optimization"): Merged into Section 3.1. | |||
4.0 Historical Review and Recent Developments: Retained as | * Section 4.0 ("Historical Review and Recent Developments"): | |||
Section 5, but the very historic aspects have been deleted. | Retained as Section 5, but the very historic aspects have been | |||
deleted. | ||||
4.1 Traffic Engineering in Classical Telephone Networks: Deleted. | - Section 4.1 ("Traffic Engineering in Classical Telephone | |||
Networks"): Deleted. | ||||
4.2 Evolution of Traffic Engineering in the Internet: Deleted. | - Section 4.2 ("Evolution of Traffic Engineering in the | |||
Internet"): Deleted. | ||||
4.3 Overlay Model: Deleted. | - Section 4.3 ("Overlay Model"): Deleted. | |||
4.4 Constraint-Based Routing: Retained as Section 5.1.3.1, but | - Section 4.4 ("Constraint-Based Routing"): Retained as | |||
moved into Section 5.1. | Section 5.1.3.1, but moved into Section 5.1. | |||
4.5 Overview of Other IETF Projects Related to Traffic | - Section 4.5 ("Overview of Other IETF Projects Related to | |||
Engineering: Retained as Section 5.1 with many new subsections. | Traffic Engineering"): Retained as Section 5.1 with many new | |||
subsections. | ||||
4.5.1 Integrated Services: Retained as Section 5.1.1.1. | o Section 4.5.1 ("Integrated Services"): Retained as | |||
Section 5.1.1.1. | ||||
4.5.2 RSVP: Retained as Section 5.1.3.2 with some edits. | o Section 4.5.2 ("RSVP"): Retained as Section 5.1.3.2 with | |||
some edits. | ||||
4.5.3 Differentiated Services: Retained as Section 5.1.1.2. | o Section 4.5.3 ("Differentiated Services"): Retained as | |||
Section 5.1.1.2. | ||||
4.5.4 MPLS: Retained as Section 5.1.3.3. | o Section 4.5.4 ("MPLS"): Retained as Section 5.1.3.3. | |||
4.5.5 IP Performance Metrics: Retained as Section 5.1.3.6. | o Section 4.5.5 ("IP Performance Metrics"): Retained as | |||
Section 5.1.3.6. | ||||
4.5.6 Flow Measurement: Retained as Section 5.1.3.7 with some | o Section 4.5.6 ("Flow Measurement"): Retained as | |||
reformatting. | Section 5.1.3.7 with some reformatting. | |||
4.5.7 Endpoint Congestion Management: Retained as | o Section 4.5.7 ("Endpoint Congestion Management"): Retained | |||
Section 5.1.3.8. | as Section 5.1.3.8. | |||
4.6 Overview of ITU Activities Related to Traffic Engineering: De | - Section 4.6 ("Overview of ITU Activities Related to Traffic | |||
leted. | Engineering"): Deleted. | |||
4.7 Content Distribution: Retained as Section 5.2. | - Section 4.7 ("Content Distribution"): Retained as Section 5.2. | |||
5.0 Taxonomy of Traffic Engineering Systems: Retained as Section 4. | * Section 5.0 ("Taxonomy of Traffic Engineering Systems"): Retained | |||
as Section 4. | ||||
5.1 Time-Dependent Versus State-Dependent: Retained as | - Section 5.1 ("Time-Dependent Versus State-Dependent"): Retained | |||
Section 4.1. | as Section 4.1. | |||
5.2 Offline Versus Online: Retained as Section 4.2. | - Section 5.2 ("Offline Versus Online"): Retained as Section 4.2. | |||
5.3 Centralized Versus Distributed: Retained as Section 4.3 with | - Section 5.3 ("Centralized Versus Distributed"): Retained as | |||
additions. | Section 4.3 with additions. | |||
5.4 Local Versus Global: Retained as Section 4.4. | - Section 5.4 ("Local Versus Global"): Retained as Section 4.4. | |||
5.5 Prescriptive Versus Descriptive: Retained as Section 4.5 with | - Section 5.5 ("Prescriptive Versus Descriptive"): Retained as | |||
additions. | Section 4.5 with additions. | |||
5.6 Open-Loop Versus Closed-Loop: Retained as Section 4.6. | - Section 5.6 ("Open-Loop Versus Closed-Loop"): Retained as | |||
Section 4.6. | ||||
5.7 Tactical vs Strategic: Retained as Section 4.7. | - Section 5.7 ("Tactical vs Strategic"): Retained as Section 4.7. | |||
6.0 Recommendations for Internet Traffic Engineering: Retained as | * Section 6.0 ("Recommendations for Internet Traffic Engineering"): | |||
Section 6. | Retained as Section 6. | |||
6.1 Generic Non-functional Recommendations: Retained as | - Section 6.1 ("Generic Non-functional Recommendations"): | |||
Section 6.1. | Retained as Section 6.1. | |||
6.2 Routing Recommendations: Retained as Section 6.2 with edits. | - Section 6.2 ("Routing Recommendations"): Retained as | |||
Section 6.2 with edits. | ||||
6.3 Traffic Mapping Recommendations: Retained as Section 6.3. | - Section 6.3 ("Traffic Mapping Recommendations"): Retained as | |||
Section 6.3. | ||||
6.4 Measurement Recommendations: Retained as Section 6.4. | - Section 6.4 ("Measurement Recommendations"): Retained as | |||
Section 6.4. | ||||
6.5 Network Survivability: Retained as Section 6.6. | - Section 6.5 ("Network Survivability"): Retained as Section 6.6. | |||
6.5.1 Survivability in MPLS Based Networks: Retained as | o Section 6.5.1 ("Survivability in MPLS Based Networks"): | |||
Section 6.6.1. | Retained as Section 6.6.1. | |||
6.5.2 Protection Option: Retained as Section 6.6.2. | o Section 6.5.2 ("Protection Option"): Retained as | |||
Section 6.6.2. | ||||
6.6 Traffic Engineering in Diffserv Environments: Retained as | - Section 6.6 ("Traffic Engineering in Diffserv Environments"): | |||
Section 6.8 with edits. | Retained as Section 6.8 with edits. | |||
6.7 Network Controllability: Retained as Section 6.9. | - Section 6.7 ("Network Controllability"): Retained as | |||
Section 6.9. | ||||
7.0 Inter-Domain Considerations: Retained as Section 7. | * Section 7.0 ("Inter-Domain Considerations"): Retained as | |||
Section 7. | ||||
8.0 Overview of Contemporary TE Practices in Operational IP | * Section 8.0 ("Overview of Contemporary TE Practices in Operational | |||
Networks: Retained as Section 8. | IP Networks"): Retained as Section 8. | |||
9.0 Conclusion: Removed. | * Section 9.0 ("Conclusion"): Removed. | |||
10.0 Security Considerations: Retained as Section 9 with | * Section 10.0 ("Security Considerations"): Retained as Section 9 | |||
considerable new text. | with considerable new text. | |||
A.2. This Document | A.2. This Document | |||
* Section 1: Based on Section 1 of RFC 3272. | * Section 1: Based on Section 1 of [RFC3272]. | |||
- Section 1.1: Based on Section 1.1 of RFC 3272. | - Section 1.1: Based on Section 1.1 of [RFC3272]. | |||
- Section 1.2: New for this document. | - Section 1.2: New for this document. | |||
- Section 1.3: Based on Section 1.2 of RFC 3272. | - Section 1.3: Based on Section 1.2 of [RFC3272]. | |||
- Section 1.4: Based on Section 1.3 of RFC 3272. | - Section 1.4: Based on Section 1.3 of [RFC3272]. | |||
* Section 2: Based on Section 2. of RFC 3272. | * Section 2: Based on Section 2 of [RFC3272]. | |||
- Section 2.1: Based on Section 2.1 of RFC 3272. | - Section 2.1: Based on Section 2.1 of [RFC3272]. | |||
- Section 2.2: Based on Section 2.2 of RFC 3272. | - Section 2.2: Based on Section 2.2 of [RFC3272]. | |||
- Section 2.3: Based on Section 2.3 of RFC 3272. | - Section 2.3: Based on Section 2.3 of [RFC3272]. | |||
o Section 2.3.1: Based on Section 2.3.1 of RFC 3272. | o Section 2.3.1: Based on Section 2.3.1 of [RFC3272]. | |||
- Section 2.4: Based on Section 2.4 of RFC 3272. | - Section 2.4: Based on Section 2.4 of [RFC3272]. | |||
o Section 2.4.1: Based on Section 2.4.1 of RFC 327 | o Section 2.4.1: Based on Section 2.4.1 of [RFC3272]. | |||
- Section 2.5: Based on Section 2.5 of RFC 3272. | - Section 2.5: Based on Section 2.5 of [RFC3272]. | |||
* Section 3: Based on Section 3 of RFC 3272. | * Section 3: Based on Section 3 of [RFC3272]. | |||
- Section 3.1: Based on Sections 3.1, 3.2, 3.3, and 3.4 of RFC | - Section 3.1: Based on Sections 3.1, 3.2, 3.3, and 3.4 of | |||
3272. | [RFC3272]. | |||
* Section 4: Based on Section 5 of RFC 3272. | * Section 4: Based on Section 5 of [RFC3272]. | |||
- Section 4.1: Based on Section 5.1 of RFC 3272. | - Section 4.1: Based on Section 5.1 of [RFC3272]. | |||
- Section 4.2: Based on Section 5.2 of RFC 3272. | - Section 4.2: Based on Section 5.2 of [RFC3272]. | |||
- Section 4.3: Based on Section 5.3 of RFC 3272. | - Section 4.3: Based on Section 5.3 of [RFC3272]. | |||
o Section 4.3.1: New for this document. | o Section 4.3.1: New for this document. | |||
o Section 4.3.2: New for this document. | o Section 4.3.2: New for this document. | |||
- Section 4.4: Based on Section 5.4 of RFC 3272. | - Section 4.4: Based on Section 5.4 of [RFC3272]. | |||
- Section 4.5: Based on Section 5.5 of RFC 3272. | - Section 4.5: Based on Section 5.5 of [RFC3272]. | |||
o Section 4.5.1: New for this document. | o Section 4.5.1: New for this document. | |||
- Section 4.6: Based on Section 5.6 of RFC 3272. | - Section 4.6: Based on Section 5.6 of [RFC3272]. | |||
- Section 4.7: Based on Section 5.7 of RFC 3272. | - Section 4.7: Based on Section 5.7 of [RFC3272]. | |||
* Section 5: Based on Section 4 of RFC 3272. | * Section 5: Based on Section 4 of [RFC3272]. | |||
- Section 5.1: Based on Section 4.5 of RFC 3272. | - Section 5.1: Based on Section 4.5 of [RFC3272]. | |||
o Section 5.1.1.1: Based on Section 4.5.1 of RFC 3272. | o Section 5.1.1.1: Based on Section 4.5.1 of [RFC3272]. | |||
o Section 5.1.1.2: Based on Section 4.5.3 of RFC 3272. | o Section 5.1.1.2: Based on Section 4.5.3 of [RFC3272]. | |||
o Section 5.1.1.3: New for this document. | o Section 5.1.1.3: New for this document. | |||
o Section 5.1.1.4: New for this document. | o Section 5.1.1.4: New for this document. | |||
o Section 5.1.1.5: New for this document. | o Section 5.1.1.5: New for this document. | |||
o Section 5.1.2.1: New for this document. | o Section 5.1.2.1: New for this document. | |||
o Section 5.1.2.2: New for this document. | o Section 5.1.2.2: New for this document. | |||
o Section 5.1.2.3: New for this document. | o Section 5.1.2.3: New for this document. | |||
o Section 5.1.3.1: Based on Section 4.4 of RFC 3272. | o Section 5.1.3.1: Based on Section 4.4 of [RFC3272]. | |||
+ Section 5.1.3.1.1: New for this document. | + Section 5.1.3.1.1: New for this document. | |||
o Section 5.1.3.2: Based on Section 4.5.2 of RFC 3272. | o Section 5.1.3.2: Based on Section 4.5.2 of [RFC3272]. | |||
o Section 5.1.3.3: Based on Section 4.5.4 of RFC 3272. | o Section 5.1.3.3: Based on Section 4.5.4 of [RFC3272]. | |||
o Section 5.1.3.4: New for this document. | o Section 5.1.3.4: New for this document. | |||
o Section 5.1.3.5: New for this document. | o Section 5.1.3.5: New for this document. | |||
o Section 5.1.3.6: Based on Section 4.5.5 of RFC 3272. | o Section 5.1.3.6: Based on Section 4.5.5 of [RFC3272]. | |||
o Section 5.1.3.7: Based on Section 4.5.6 of RFC 3272. | o Section 5.1.3.7: Based on Section 4.5.6 of [RFC3272]. | |||
o Section 5.1.3.8: Based on Section 4.5.7 of RFC 3272. | o Section 5.1.3.8: Based on Section 4.5.7 of [RFC3272]. | |||
o Section 5.1.3.9: New for this document. | o Section 5.1.3.9: New for this document. | |||
o Section 5.1.3.10: New for this document. | o Section 5.1.3.10: New for this document. | |||
o Section 5.1.3.11: New for this document. | o Section 5.1.3.11: New for this document. | |||
o Section 5.1.3.12: New for this document. | o Section 5.1.3.12: New for this document. | |||
o Section 5.1.3.13: New for this document. | o Section 5.1.3.13: New for this document. | |||
o Section 5.1.3.14: New for this document. | o Section 5.1.3.14: New for this document. | |||
o Section 5.1.3.15: New for this document. | o Section 5.1.3.15: New for this document. | |||
- Section 5.2: Based on Section 4.7 of RFC 3272. | - Section 5.2: Based on Section 4.7 of [RFC3272]. | |||
* Section 6: Based on Section 6 of RFC 3272. | * Section 6: Based on Section 6 of [RFC3272]. | |||
- Section 6.1: Based on Section 6.1 of RFC 3272. | - Section 6.1: Based on Section 6.1 of [RFC3272]. | |||
- Section 6.2: Based on Section 6.2 of RFC 3272. | - Section 6.2: Based on Section 6.2 of [RFC3272]. | |||
- Section 6.3: Based on Section 6.3 of RFC 3272. | - Section 6.3: Based on Section 6.3 of [RFC3272]. | |||
- Section 6.4: Based on Section 6.4 of RFC 3272. | - Section 6.4: Based on Section 6.4 of [RFC3272]. | |||
- Section 6.5: New for this document. | - Section 6.5: New for this document. | |||
- Section 6.6: Based on Section 6.5 of RFC 3272. | - Section 6.6: Based on Section 6.5 of [RFC3272]. | |||
o Section 6.6.1: Based on Section 6.5.1 of RFC 3272. | o Section 6.6.1: Based on Section 6.5.1 of [RFC3272]. | |||
o Section 6.6.2: Based on Section 6.5.2 of RFC 3272. | o Section 6.6.2: Based on Section 6.5.2 of [RFC3272]. | |||
- Section 6.7: New for this document. | - Section 6.7: New for this document. | |||
- Section 6.8: Based on Section 6.6. of RFC 3272. | - Section 6.8: Based on Section 6.6 of [RFC3272]. | |||
- Section 6.9: Based on Section 6.7 of RFC 3272. | - Section 6.9: Based on Section 6.7 of [RFC3272]. | |||
* Section 7: Based on Section 7 of RFC 3272. | * Section 7: Based on Section 7 of [RFC3272]. | |||
* Section 8: Based on Section 8 of RFC 3272. | * Section 8: Based on Section 8 of [RFC3272]. | |||
* Section 9: Based on Section 10 of RFC 3272. | * Section 9: Based on Section 10 of [RFC3272]. | |||
Acknowledgments | ||||
Much of the text in this document is derived from [RFC3272]. The | ||||
editor and contributors to this document would like to express their | ||||
gratitude to all involved in that work. Although the source text has | ||||
been edited in the production of this document, the original authors | ||||
should be considered as contributors to this work. They were: | ||||
Daniel O. Awduche | ||||
Movaz Networks | ||||
Angela Chiu | ||||
Celion Networks | ||||
Anwar Elwalid | ||||
Lucent Technologies | ||||
Indra Widjaja | ||||
Bell Labs, Lucent Technologies | ||||
XiPeng Xiao | ||||
Redback Networks | ||||
The acknowledgements in [RFC3272] were as below. All people who | ||||
helped in the production of that document also need to be thanked for | ||||
the carry-over into this new document. | ||||
| The authors would like to thank Jim Boyle for inputs on the | ||||
| recommendations section, Francois Le Faucheur for inputs on | ||||
| Diffserv aspects, Blaine Christian for inputs on measurement, | ||||
| Gerald Ash for inputs on routing in telephone networks and for | ||||
| text on event-dependent TE methods, Steven Wright for inputs on | ||||
| network controllability, and Jonathan Aufderheide for inputs on | ||||
| inter-domain TE with BGP. Special thanks to Randy Bush for | ||||
| proposing the TE taxonomy based on "tactical vs strategic" | ||||
| methods. The subsection describing an "Overview of ITU Activities | ||||
| Related to Traffic Engineering" was adapted from a contribution by | ||||
| Waisum Lai. Useful feedback and pointers to relevant materials | ||||
| were provided by J. Noel Chiappa. Additional comments were | ||||
| provided by Glenn Grotefeld during the working last call process. | ||||
| Finally, the authors would like to thank Ed Kern, the TEWG co- | ||||
| chair, for his comments and support. | ||||
The early draft versions of this document were produced by the TEAS | ||||
Working Group's RFC3272bis Design Team. The full list of members of | ||||
this team is: | ||||
Acee Lindem | ||||
Adrian Farrel | ||||
Aijun Wang | ||||
Daniele Ceccarelli | ||||
Dieter Beller | ||||
Jeff Tantsura | ||||
Julien Meuric | ||||
Liu Hua | ||||
Loa Andersson | ||||
Luis Miguel Contreras | ||||
Martin Horneffer | ||||
Tarek Saad | ||||
Xufeng Liu | ||||
The production of this document includes a fix to the original text | ||||
resulting from an errata report #309 [Err309] by Jean-Michel | ||||
Grimaldi. | ||||
The editor of this document would also like to thank Dhruv Dhody, | ||||
Gyan Mishra, Joel Halpern, Dave Taht, John Scudder, Rich Salz, Behcet | ||||
Sarikaya, Bob Briscoe, Erik Kline, Jim Guichard, Martin Duke, and | ||||
Roman Danyliw for review comments. | ||||
This work is partially supported by the European Commission under | ||||
Horizon 2020 grant agreement number 101015857 Secured autonomic | ||||
traffic management for a Tera of SDN flows (Teraflow). | ||||
Contributors | ||||
The following people contributed substantive text to this document: | ||||
Gert Grammel | ||||
Email: ggrammel@juniper.net | ||||
Loa Andersson | ||||
Email: loa@pi.nu | ||||
Xufeng Liu | ||||
Email: xufeng.liu.ietf@gmail.com | ||||
Lou Berger | ||||
Email: lberger@labn.net | ||||
Jeff Tantsura | ||||
Email: jefftant.ietf@gmail.com | ||||
Daniel King | ||||
Email: daniel@olddog.co.uk | ||||
Boris Hassanov | ||||
Email: bhassanov@yandex-team.ru | ||||
Kiran Makhijani | ||||
Email: kiranm@futurewei.com | ||||
Dhruv Dhody | ||||
Email: dhruv.ietf@gmail.com | ||||
Mohamed Boucadair | ||||
Email: mohamed.boucadair@orange.com | ||||
Author's Address | Author's Address | |||
Adrian Farrel (editor) | Adrian Farrel (editor) | |||
Old Dog Consulting | Old Dog Consulting | |||
Email: adrian@olddog.co.uk | Email: adrian@olddog.co.uk | |||
End of changes. 526 change blocks. | ||||
1357 lines changed or deleted | 1385 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |