RFC 2678
IPPM Metrics for Measuring Connectivity
RFC 2678: IPPM Metrics for Measuring Connectivity π
okay bestie, this is RFC 2678 and it's giving metrics for connectivity π It's a Standards Track doc from the Network Working Group, written by J. Mahdavi (Pittsburgh Supercomputing Center) and V. Paxson (Lawrence Berkeley National Laboratory). It's dated September 1999, and it obsoletes RFC 2498. The header doesn't list any Updates β¨
Status of this Memo β¨
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. πΈ
Copyright Notice π
Copyright (C) The Internet Society (1999). All Rights Reserved.
1. Introduction π¦
Connectivity is the basic stuff the Internet is made of, so honestly it has to be the foundation of any measurement suite π«Ά Metrics that figure out whether pairs of hosts (IP addresses) can reach each other are the base. We define several of them, and some mainly exist to be building blocks for the rest.
This memo defines a series of metrics for connectivity between a pair of Internet hosts. It builds on ideas from RFC 2330, the IPPM framework document, and it assumes you already know that doc, so go read it first π
The structure of the memo goes like this:
- An analytic metric, called
Type-P-Instantaneous-Unidirectional-Connectivity, will be introduced to define one-way connectivity at one moment in time. - Using this metric, another analytic metric, called
Type-P-Instantaneous-Bidirectional-Connectivity, will be introduced to define two-way connectivity at one moment in time. - Using these metrics, corresponding one- and two-way analytic metrics are defined for connectivity over an interval of time.
- Using these metrics, an analytic metric, called
Type-P1-P2-Interval-Temporal-Connectivity, will be introduced to define a useful notion of two-way connectivity between two hosts over an interval of time. - Methodologies are then presented and discussed for estimating
Type-P1-P2-Interval-Temporal-Connectivityin a variety of settings.
Careful definition of Type-P1-P2-Interval-Temporal-Connectivity, plus the discussion of the metric and the methodologies for estimating it, are the two chief contributions of the memo π
2. Instantaneous One-way Connectivity π
2.1. Metric Name:
Type-P-Instantaneous-Unidirectional-Connectivity
2.2. Metric Parameters:
Src, the IP address of a hostDst, the IP address of a hostT, a time
2.3. Metric Units:
Boolean.
2.4. Definition:
Src has Type-P-Instantaneous-Unidirectional-Connectivity to Dst at time T if a type-P packet transmitted from Src to Dst at time T will arrive at Dst.
2.5. Discussion:
For most applications (e.g., any TCP connection), bidirectional connectivity is way more important than unidirectional connectivity π Unidirectional connectivity can still be interesting for some security applications, though (e.g., checking whether a firewall correctly filters out a "ping of death") π
Most applications also need connectivity over an interval, and this metric is instantaneous. For some security applications, instantaneous connectivity still matters, though π Finally, you might not have instantaneous connectivity because of a transient event, like a full queue at a router, even if you do have connectivity at nearby instants in time. These points get addressed below, with this metric serving as a building block π§±
Also, we haven't explicitly defined when the packet arrives at Dst. The TTL field in IP packets is meant to limit IP packet lifetimes to 255 seconds (RFC 791). In practice, the TTL field can be strictly a hop count (RFC 1812), and most Internet hops are much shorter than one second. So most packets will have nowhere near the 255 second lifetime π In principle, though, packets might survive longer than 255 seconds. Packet lifetimes must be taken into account when you try to measure the value of this metric β³
Finally, you might assume that unidirectional connectivity is hard to measure without connectivity in the reverse direction. But consider this: a process on Dst's host notes when it receives packets from Src, and then reports that fact either over an external channel, or later on when Dst does have connectivity to Src. That kind of methodology could reliably measure the unidirectional connectivity defined in this metric π§
3. Instantaneous Two-way Connectivity π
3.1. Metric Name:
Type-P-Instantaneous-Bidirectional-Connectivity
3.2. Metric Parameters:
A1, the IP address of a hostA2, the IP address of a hostT, a time
3.3. Metric Units:
Boolean.
3.4. Definition:
Addresses A1 and A2 have Type-P-Instantaneous-Bidirectional-Connectivity at time T if address A1 has Type-P-Instantaneous-Unidirectional-Connectivity to address A2, and address A2 has Type-P-Instantaneous-Unidirectional-Connectivity to address A1 π―
3.5. Discussion:
There's an alternative definition: A1 and A2 are fully connected if, at time T, address A1 has instantaneous connectivity to address A2, and at time T+dT, address A2 has instantaneous connectivity to A1. Here T+dT is when the packet sent from A1 arrives at A2 π¬ This definition is more useful for measurement, because the measurement can use a reply from A2 to A1 to assess full connectivity. It's more complex, though, because it breaks the symmetry between A1 and A2, and it requires a way of quantifying how long a particular packet from A1 takes to reach A2. We postpone discussion of this distinction until we develop the interval-connectivity metrics below π«Ά
4. One-way Connectivity π¦
4.1. Metric Name:
Type-P-Interval-Unidirectional-Connectivity
4.2. Metric Parameters:
Src, the IP address of a hostDst, the IP address of a hostT, a timedT, a duration
{Comment: Thus, the closed interval [T, T+dT] denotes a time interval.}
4.3. Metric Units:
Boolean.
4.4. Definition:
Address Src has Type-P-Interval-Unidirectional-Connectivity to address Dst during the interval [T, T+dT] if, for some T' within [T, T+dT], it has Type-P-instantaneous-connectivity to Dst β°
5. Two-way Connectivity π
5.1. Metric Name:
Type-P-Interval-Bidirectional-Connectivity
5.2. Metric Parameters:
A1, the IP address of a hostA2, the IP address of a hostT, a timedT, a duration
{Comment: Thus, the closed interval [T, T+dT] denotes a time interval.}
5.3. Metric Units:
Boolean.
5.4. Definition:
Addresses A1 and A2 have Type-P-Interval-Bidirectional-Connectivity between them during the interval [T, T+dT] if address A1 has Type-P-Interval-Unidirectional-Connectivity to address A2 during the interval, and address A2 has Type-P-Interval-Unidirectional-Connectivity to address A1 during the interval π€
5.5. Discussion:
This metric isn't quite what we need for defining "generally useful" connectivity. That requires the idea that a packet sent from A1 to A2 can trigger a response from A2 that reaches A1 π€ With this definition, A1 and A2 could have full connectivity, but only at, say, time T1 early enough in the interval [T, T+dT] that A1 and A2 can't reply to packets sent by the other. That flaw is what motivates the next metric π
6. Two-way Temporal Connectivity πΈ
6.1. Metric Name:
Type-P1-P2-Interval-Temporal-Connectivity
6.2. Metric Parameters:
Src, the IP address of a hostDst, the IP address of a hostT, a timedT, a duration
{Comment: Thus, the closed interval [T, T+dT] denotes a time interval.}
6.3. Metric Units:
Boolean.
6.4. Definition:
Address Src has Type-P1-P2-Interval-Temporal-Connectivity to address Dst during the interval [T, T+dT] if there exist times T1 and T2, and time intervals dT1 and dT2, such that:
T1,T1+dT1,T2,T2+dT2are all in[T, T+dT].T1+dT1 <= T2.- At time
T1,Srchas Type-P1 instantaneous connectivity toDst. - At time
T2,Dsthas Type-P2 instantaneous connectivity toSrc. dT1is the time taken for a Type-P1 packet sent bySrcat timeT1to arrive atDst.dT2is the time taken for a Type-P2 packet sent byDstat timeT2to arrive atSrc.
6.5. Discussion:
This metric defines "generally useful" connectivity. Src can send a packet to Dst that gets a response, and that's the whole vibe π₯ Many applications use different types of packets for forward and reverse traffic, so it's possible (and likely) that the desired responses to a Type-P1 packet will be of a different type, Type-P2. That's why this metric lets the forward and reverse directions use different types of packets π
6.6. Methodologies:
Here we sketch a class of methodologies for estimating Type-P1-P2-Interval-Temporal-Connectivity. It's a class rather than a single methodology, because the particulars depend on the types P1 and P2 π§©
6.6.1. Inputs:
- Types P1 and P2, addresses
A1andA2, interval[T, T+dT]. N, the number of packets to send as probes for determining connectivity.W, the "waiting time", which bounds how long it is useful to wait for a reply to a packet.
Required: W <= 255, dT > W.
6.6.2. Recommended values:
dT = 60 seconds. W = 10 seconds. N = 20 packets.
6.6.3. Algorithm:
- Compute
Nsending-times that are randomly, uniformly distributed over[T, T+dT-W]. - At each sending time, transmit from
A1a well-formed packet of type P1 toA2. - Inspect incoming network traffic to
A1to determine whether a successful reply is received. The particulars of doing so depend on types P1 and P2, discussed below. If any successful reply is received, the value of the measurement is "true". At this point, the measurement can terminate β¨ - If no successful replies are received by time
T+dT, the value of the measurement is "false".
6.6.4. Discussion:
The algorithm is inexact, because it does not (and cannot) probe temporal connectivity at every instant in time between [T, T+dT]. The value of N trades off measurement precision against network measurement load. The state of the art in Internet research doesn't yet offer solid guidance for picking N π€·ββοΈ The values given above are just guidelines.
6.6.5. Specific methodology for TCP: π
okay so the TCP one is literally my fave π A TCP-port-N1-port-N2 methodology sends TCP SYN packets with source port N1 and dest port N2 at address A2. Here's how traffic coming into A1 gets read β¨
- A
SYN-ackpacket fromA2toA1with the proper acknowledgement fields and ports shows temporal connectivity π¦ The measurement ends right away with a value oftrue. {Comment: bestie, if the methodology accidentally creates a full TCP connection betweenA1andA2, meaningA1's TCP stack acknowledgesA2's SYN-ack and finishes the three-way handshake, then that connection should be torn down with the usual FIN handshake and NOT with a RST packet, because RST packets are not reliably delivered π If the three-way handshake never finishes, which happens when the measurement tool onA1makes its own initial SYN packet instead of going throughA1's TCP stack, thenA1's TCP stack will close the connection reliably on its own whileA2keeps sending the SYN-ack trying to connect. Also, usingA1's TCP stack for the measurement makes things messier, since the stack might retransmit the initial SYN packet and change how many probe packets get sent π} - A
RSTpacket fromA2toA1with the proper ports shows temporal connectivity between the addresses πΈ (and a lack of service connectivity forTCP-port-N1-port-N2, which is something that probably should be handled with another metric π§) - An ICMP port-unreachable from
A2toA1also shows temporal connectivity between the addresses π (and again a lack of service connectivity forTCP-port-N1-port-N2). {Comment: TCP implementations usually don't need to send ICMP port-unreachable messages, since there's a separate mechanism for this, which is sending aRSTπ But [RFC1122] is clear: a TCP that receives an ICMP port-unreachable MUST treat it the same as the equivalent transport-level mechanism, which for TCP is aRST.} - An ICMP host-unreachable or network-unreachable sent to
A1(not necessarily fromA2) with an enclosed IP header that matches the one sent fromA1toA2suggests a lack of temporal connectivity π₯Ί If no evidence of temporal connectivity has shown up by timeT+dT, then the ICMP can be used as extra info that backs up a measurement value offalseπ
{Comment: similar methodologies are needed for ICMP Echo, UDP, etc. π}
7. Acknowledgments π«Ά
The comments of Guy Almes, Martin Horneffer, Jeff Sedayao, and Sean Shapira are appreciated π thank you queens!!
8. Security Considerations ππ₯
okay this section is SERIOUS, so read it carefully π¨ As noted in [RFC2330], active measurement techniques like the ones in this document can be abused for denial-of-service attacks that are disguised as legitimate measurement activity π Also, testing for connectivity can be used to probe firewalls and other security mechnisms for weak spots π
9. References π
- [RFC1812] Baker, F., "Requirements for IP Version 4 Routers", RFC 1812, June 1995.
- [RFC1122] Braden, R., Editor, "Requirements for Internet Hosts -- Communication Layers", STD, 3, RFC 1122, October 1989.
- [RFC2330] Paxson, V., Almes, G., Mahdavi, J. and M. Mathis, "Framework for IP Performance Metrics", RFC 2330, May 1998.
- [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.
10. Authors' Addresses π
Jamshid Mahdavi
Pittsburgh Supercomputing Center
4400 5th Avenue
Pittsburgh, PA 15213
USA
EMail: mahdavi@psc.edu
Vern Paxson
MS 50A-3111
Lawrence Berkeley National Laboratory
University of California
Berkeley, CA 94720
USA
Phone: +1 510/486-7504
EMail: vern@ee.lbl.gov
11. Full Copyright Statement βοΈ
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement π
Funding for the RFC Editor function is currently provided by the Internet Society π ily, and that's the whole RFC!! π¦β¨
π¦ where this page comes from
- ietf: rfc2678 1999-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms