There are two classes of methods described in this section, active methods relying on the reaction to TTL or Hop Limit Exceeded condition to discover Nodes on a path and hybrid active-passive methods that involve direct interrogation of Cooperating Nodes (usually within a single domain). Description of these methods follow.
This section describes the method employed by current open-source tools, thereby providing a practical framework for further advanced techniques to be included as method variants. This method is applicable for use across multiple administrative domains.
Internet routing is complex because it depends on the policies of thousands of Autonomous Systems (ASes). Most routers perform load balancing on flows using a form of ECMP. [
RFC 2991] describes a number of flow-based or hashed approaches (e.g., Modulo-N Hash, Hash-Threshold, and Highest Random Weight (HRW)) and makes some good suggestions. Flow-based ECMP avoids increased packet Delay Variation and possibly overwhelming levels of packet reordering in flows.
A few routers still divide the workload through packet-based techniques, such as a round-robin scheme to distribute every new outgoing packet to multiple links, as explained in [
RFC 2991]. The methods described in this section assume flow-based ECMP.
Taking into account that Internet protocol was designed under the "end-to-end" principle, the IP payload and its header do not provide any information about the Routes or path necessary to reach some destination. For this reason, the popular tool, traceroute, was developed to gather the IP addresses of each Hop along a path using ICMP [
RFC 0792]. Traceroute also measures RTD from each Hop. However, the growing complexity of the Internet makes it more challenging to develop an accurate traceroute implementation. For instance, the early traceroute tools would be inaccurate in the current network, mainly because they were not designed to retain a flow state. However, evolved traceroute tools, such as Paris-traceroute ([
PT] [
MLB]) and Scamper ([
SCAMPER]), expect to encounter ECMP and achieve more accurate results when they do, where Scamper ensures traceroute packets will follow the same path in 98% of cases ([
SCAMPER]).
Today's traceroute tools send Type-P of packets, which are either ICMP, UDP, or TCP. UDP and TCP are used when a particular characteristic needs to be verified, such as filtering or traffic shaping on specific ports (i.e., services). UDP and TCP traceroute are also used when ICMP responses are not received. [
SCAMPER] supports IPv6 traceroute measurements, keeping the Flow Label constant in all packets.
Paris-traceroute allows its users to measure the RTD to every Node of the path for a particular flow. Furthermore, either Paris-traceroute or Scamper is capable of unveiling the many available paths between a source and destination (which are visible to active methods). This task is accomplished by repeating complete traceroute measurements with different flow parameters for each measurement; Paris-traceroute provides an "exhaustive" mode, while Scamper provides "tracelb" (which stands for "traceroute load balance"). [
RFC 2330], updated by [
RFC 7312], has the flexibility to require that the Round-Trip Delay measurement [
RFC 2681] uses packets with the constraints to assure that all packets in a single measurement appear as the same flow. This flexibility covers ICMP, UDP, and TCP. The accompanying methodology of [
RFC 2681] needs to be expanded to report the sequential Hop identifiers along with RTD measurements, but no new metric definition is needed.
The advanced Route assessment methods used in Paris-traceroute [
PT] keep the critical fields constant for every packet to maintain the appearance of the same flow. When considering IPv6 headers, it is necessary to ensure that the IP Source and Destination addresses and Flow Label are constant (but note that many routers ignore the Flow Label field at this time); see [
RFC 6437]. Use of IPv6 Extension Headers may add critical fields and
SHOULD be avoided. In IPv4, certain fields of the IP header and the first 4 bytes of the IP payload should remain constant in a flow. In the IPv4 header, the IP Source and Destination addresses, protocol number, and Diffserv fields identify flows. The first 4 payload bytes include the UDP and TCP ports and the ICMP type, code, and checksum fields.
Maintaining a constant ICMP checksum in IPv4 is most challenging, as the ICMP sequence number or identifier fields will usually change for different probes of the same path. Probes should use arbitrary bytes in the ICMP data field to offset changes to the sequence number and identifier, thus keeping the checksum constant.
Finally, it is also essential to Route the resulting ICMP Time Exceeded messages along a consistent path. In IPv6, the fields above are sufficient. In IPv4, the ICMP Time Exceeded message will contain the IP header and the first 8 bytes of the IP payload, both of which affect its ICMP checksum calculation. The TCP sequence number, UDP length, and UDP checksum will affect this value and should remain constant.
Formally, to maintain the same flow in the measurements to a particular Hop, the Type-P-Route-Ensemble-Method-Variant packets should have the following attributes (see [
PT]):
-
TCP case:
-
For IPv4, the fields Src, Dst, port-Src, port_Dst, sequence number, and Diffserv SHOULD be the same. For IPv6, the fields Flow Label, Src, and Dst SHOULD be the same.
-
UDP case:
-
For IPv4, the fields Src, Dst, port-Src, port-Dst, and Diffserv should be the same, and the UDP checksum SHOULD change to keep the IP checksum of the ICMP Time Exceeded reply constant. Then, the data length should be fixed, and the data field is used to make it so (consider that ICMP checksum uses its data field, which contains the original IP header plus 8 bytes of UDP, where TTL, IP identification, IP checksum, and UDP checksum changes). For IPv6, the field Flow Label and Source and Destination addresses SHOULD be the same.
-
ICMP case:
-
For IPv4, the data field SHOULD compensate variations on TTL or Hop Limit, IP identification, and IP checksum for every packet. There is no need to consider ICMPv6 because only Flow Label of IPv6 and Source and Destination addresses are used, and all of them SHOULD be constant.
Then, the way to identify different Hops and attempts of the same IPv4 flow is:
-
TCP case:
-
The IP identification field.
-
UDP case:
-
The IP identification field.
-
ICMP case:
-
The IP identification field and ICMP sequence number.
The active Route assessment methods described above have the ability to discover portions of a path where ECMP load balancing is present, observed as two or more unique Member Routes having one or more distinct Hops that are part of the Route Ensemble. Likewise, attempts to deliberately vary the flow characteristics to discover all Member Routes will reveal portions of the path that are flow invariant.
Section 9.2 of
RFC 2330 describes the Temporal Composition of metrics and introduces the possibility of a relationship between earlier measurement results and the results for measurement at the current time (for a given metric). There is value in establishing a Temporal Composition relationship for Route metrics; however, this relationship does not represent a forecast of future Route conditions in any way.
For Route-metric measurements, the value of Temporal Composition is to reduce the measurement iterations required with repeated measurements. Reduced iterations are possible by inferring that current measurements using fixed and previously measured flow characteristics:
-
will have many common Hops with previous measurements.
-
will have relatively time-stable results at the ingress and egress portions of the path when measured from user locations, as opposed to measurements of backbone networks and across inter-domain gateways.
-
may have greater potential for time variation in path portions where ECMP load balancing is observed (because increasing or decreasing the pool of links changes the hash calculations).
Optionally, measurement systems may take advantage of the inferences above when seeking to reduce measurement iterations after exhaustive measurements indicate that the time-stable properties are present. Repetitive active Route measurement systems:
-
SHOULD occasionally check path portions that have exhibited stable results over time, particularly ingress and egress portions of the path (e.g., daily checks if measuring many times during a day).
-
SHOULD continue testing portions of the path that have previously exhibited ECMP load balancing.
-
SHALL trigger reassessment of the complete path and Route Ensemble if any change in Hops is observed for a specific (and previously tested) flow.
There is an opportunity to apply the notion from [
RFC 2330] of equal treatment for a class of packets, "...very useful to know if a given Internet component treats equally a class C of different types of packets", as it applies to Route measurements. The notion of class C was examined further in [
RFC 8468] as it applied to load-balancing flows over parallel paths, which is the case we develop here. Knowledge of class C parameters (unrelated to address classes of the past) on a path potentially reduces the number of flows required for a given method to assess a Route Ensemble over time.
First, recognize that each Member Route of a Route Ensemble will have a corresponding class C. Class C can be discovered by testing with multiple flows, all of which traverse the unique set of Hops that comprise a specific Member Route.
Second, recognize that the different classes depend primarily on the hash functions used at each instance of ECMP load balancing on the path.
Third, recognize the synergy with Temporal Composition methods (described above), where evaluation intends to discover time-stable portions of each Member Route so that more emphasis can be placed on ECMP portions that also determine class C.
The methods to assess the various class C characteristics benefit from the following measurement capabilities:
-
flows designed to determine which n-tuple header fields are considered by a given hash function and ECMP Hop on the path and which are not. This operation immediately narrows the search space, where possible, and partially defines a class C.
-
a priori knowledge of the possible types of hash functions in use also helps to design the flows for testing (major router vendors publish information about these hash functions; examples are in [LOAD_BALANCE]).
-
ability to direct the emphasis of current measurements on ECMP portions of the path, based on recent past measurement results (the Routing Class of some portions of the path is essentially "all packets").
There are many examples where passive monitoring of a flow at an Observation Point within the network can detect unexpected Round-Trip Delay or Delay Variation. But how can the cause of the anomalous delay be investigated further
from the Observation Point possibly located at an intermediate point on the path?
In this case, knowledge that the flow of interest belongs to a specific Routing Class C will enable measurement of the Route where anomalous delay has been observed. Specifically, Round-Trip Delay assessment to each Hop on the path between the Observation Point and the Destination for the flow of interest may discover high or variable delay on a specific link and Hop combination.
The determination of a Routing Class C that includes the flow of interest is as described in the section above, aided by computation of the relevant hash function output as the target.
The Hybrid Type I methods provide an alternative for Route assessment. The "Scope, Applicability, and Assumptions" section of [
RFC 9197] provides one possible set of data fields that would support Route identification.
In general, Nodes in the measured domain would be equipped with specific abilities:
-
Store the identity of Nodes that a packet has visited in header data fields in the order the packet visited the Nodes.
-
Support of a "Loopback" capability where a copy of the packet is returned to the encapsulating Node and the packet is processed like any other IOAM packet on the return transfer.
In addition to Node identity, Nodes may also identify the ingress and egress interfaces utilized by the tracing packet, the absolute time when the packet was processed, and other generic data (as described in
Section 3 of
RFC 9197). Interface identification isn't necessarily limited to IP, i.e., different links in a bundle (Link Aggregation Control Protocol (LACP)) could be identified. Equally well, links without explicit IP addresses can be identified (like with unnumbered interfaces in an IGP deployment).
Note that the Type-P packet specification for this method will likely be a partial specification because most of the packet fields are determined by the user traffic. The packet encapsulation header or headers added by the hybrid method can certainly be specified in Type-P, in unpopulated form.
In principle, there are advantages if the entity conducting Route measurements can utilize both forms of advanced methods (active and hybrid) and combine the results. For example, if there are Nodes involved in the path that qualify as Cooperating Nodes but not as Discoverable Nodes, then a more complete view of Hops on the path is possible when a hybrid method (or interrogation protocol) is applied and the results are combined with the active method results collected across all other domains.
In order to combine the results of active and hybrid/interrogation methods, the network Nodes that are part of a domain supporting an interrogation protocol have the following attributes:
-
Nodes at the ingress to the domain SHOULD be both Discoverable and Cooperating.
-
Any Nodes within the domain that are both Discoverable and Cooperating SHOULD reveal the same Node identity in response to both active and hybrid methods.
-
Nodes at the egress to the domain SHOULD be both Discoverable and Cooperating and SHOULD reveal the same Node identity in response to both active and hybrid methods.
When Nodes follow these requirements, it becomes a simple matter to match single-domain measurements with the overlapping results from a multidomain measurement.
In practice, Internet users do not typically have the ability to utilize the Operations, Administrations, and Maintenance (OAM) capabilities of networks that their packets traverse, so the results from a remote domain supporting an interrogation protocol would not normally be accessible. However, a network operator could combine interrogation results from their access domain with other measurements revealing the path outside their domain.