IPPM Connectivity: IPPM Metrics for Measuring Connectivity
Precise definitions of what it means for two Internet hosts to be connected, and a way to estimate it.
Mahdavi, J. and V. Paxson, "IPPM Metrics for Measuring Connectivity", RFC 2678, DOI 10.17487/RFC2678, September 1999, <https://www.rfc-editor.org/info/rfc2678>.
@misc{rfc2678,
series = {Request for Comments},
number = 2678,
howpublished = {RFC 2678},
publisher = {RFC Editor},
doi = {10.17487/RFC2678},
url = {https://www.rfc-editor.org/info/rfc2678},
author = {J. Mahdavi and V. Paxson},
title = {{IPPM Metrics for Measuring Connectivity}},
pagetotal = 10,
year = 1999,
month = sep,
} RFC text
Contents
Network Working Group J. Mahdavi
Request for Comments: 2678 Pittsburgh Supercomputing Center
Obsoletes: 2498 V. Paxson
Category: Standards Track Lawrence Berkeley National Laboratory
September 1999
IPPM Metrics for Measuring Connectivity
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 from which the Internet is made.
Therefore, metrics determining whether pairs of hosts (IP addresses)
can reach each other must form the base of a measurement suite. We
define several such metrics, some of which serve mainly as building
blocks for the others.
This memo defines a series of metrics for connectivity between a pair
of Internet hosts. It builds on notions introduced and discussed in
RFC 2330, the IPPM framework document. The reader is assumed to be
familiar with that document.
The structure of the memo is as follows:
+ 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-Connectivity in a variety of
settings.
Careful definition of Type-P1-P2-Interval-Temporal-Connectivity and
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 host
+ Dst, the IP address of a host
+ T, 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 considerably more germane than unidirectional
connectivity, although unidirectional connectivity can be of interest
for some security applications (e.g., testing whether a firewall
correctly filters out a "ping of death"). Most applications also
require connectivity over an interval, while this metric is
instantaneous, though, again, for some security applications
instantaneous connectivity remains of interest. Finally, one might
not have instantaneous connectivity due to a transient event such as
a full queue at a router, even if at nearby instants in time one does
have connectivity. These points are addressed below, with this
metric serving as a building block.
Note also that we have not 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), with most Internet hops being
much shorter than one second. This means that most packets will have
nowhere near the 255 second lifetime. In principle, however, it is
also possible that packets might survive longer than 255 seconds.
Consideration of packet lifetimes must be taken into account in
attempts to measure the value of this metric.
Finally, one might assume that unidirectional connectivity is
difficult to measure in the absence of connectivity in the reverse
direction. Consider, however, the possibility that a process on
Dst's host notes when it receives packets from Src and reports this
fact either using an external channel, or later in time when Dst does
have connectivity to Src. Such a 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 host
+ A2, the IP address of a host
+ T, 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:
An alternative definition would be that 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,
where 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 in order to assess full connectivity.
It is a more complex definition, however, because it breaks the
symmetry between A1 and A2, and requires a notion of quantifying how
long a particular packet from A1 takes to reach A2. We postpone
discussion of this distinction until the development of 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 host
+ Dst, the IP address of a host
+ T, a time
+ dT, 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 host
+ A2, the IP address of a host
+ T, a time
+ dT, 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 is not quite what's needed for defining "generally
useful" connectivity - that requires the notion that a packet sent
from A1 to A2 can elicit a response from A2 that will reach A1. With
this definition, it could be that A1 and A2 have full-connectivity
but only, for example, at time T1 early enough in the interval [T,
T+dT] that A1 and A2 cannot reply to packets sent by the other. This
deficiency 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 host
+ Dst, the IP address of a host
+ T, a time
+ dT, 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+dT2 are all in [T, T+dT].
+ T1+dT1 <= T2.
+ At time T1, Src has Type-P1 instantanous connectivity to Dst.
+ At time T2, Dst has Type-P2 instantanous connectivity to Src.
+ dT1 is the time taken for a Type-P1 packet sent by Src at time T1
to arrive at Dst.
+ dT2 is the time taken for a Type-P2 packet sent by Dst at time T2
to arrive at Src.
6.5. Discussion:
This metric defines "generally useful" connectivity -- Src can send a
packet to Dst that elicits a response. Because many applications
utilize different types of packets for forward and reverse traffic,
it is possible (and likely) that the desired responses to a Type-P1
packet will be of a different type Type-P2. Therefore, in this
metric we allow for different types of packets in the forward and
reverse directions.
6.6. Methodologies:
Here we sketch a class of methodologies for estimating Type-P1-P2-
Interval-Temporal-Connectivity. It is a class rather than a single
methodology because the particulars will depend on the types P1 and
P2.
6.6.1. Inputs:
+ Types P1 and P2, addresses A1 and A2, interval [T, T+dT].
+ N, the number of packets to send as probes for determining
connectivity.
+ W, the "waiting time", which bounds for 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 N *sending-times* that are randomly, uniformly distributed
over [T, T+dT-W].
+ At each sending time, transmit from A1 a well-formed packet of
type P1 to A2.
+ Inspect incoming network traffic to A1 to determine if a
successful reply is received. The particulars of doing so are
dependent on types P1 & 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 does not
yet offer solid guidance for picking N. The values given above are
just guidelines.
6.6.5. Specific methodology for TCP:
A TCP-port-N1-port-N2 methodology sends TCP SYN packets with source
port N1 and dest port N2 at address A2. Network traffic incoming to
A1 is interpreted as follows:
+ A SYN-ack packet from A2 to A1 with the proper acknowledgement
fields and ports indicates temporal connectivity. The measurement
terminates immediately with a value of "true". {Comment: if, as a
side effect of the methodology, a full TCP connection has been
established between A1 and A2 -- that is, if A1's TCP stack
acknowledges A2's SYN-ack packet, completing the three-way
handshake -- then the connection now established between A1 and A2
is best torn down using the usual FIN handshake, and not using a
RST packet, because RST packets are not reliably delivered. If
the three-way handshake is not completed, however, which will
occur if the measurement tool on A1 synthesizes its own initial
SYN packet rather than going through A1's TCP stack, then A1's TCP
stack will automatically terminate the connection in a reliable
fashion as A2 continues transmitting the SYN-ack in an attempt to
establish the connection. Finally, we note that using A1's TCP
stack to conduct the measurement complicates the methodology in
that the stack may retransmit the initial SYN packet, altering the
number of probe packets sent.}
+ A RST packet from A2 to A1 with the proper ports indicates
temporal connectivity between the addresses (and a *lack* of
service connectivity for TCP-port-N1-port-N2 - something that
probably should be addressed with another metric).
+ An ICMP port-unreachable from A2 to A1 indicates temporal
connectivity between the addresses (and again a *lack* of service
connectivity for TCP-port-N1-port-N2). {Comment: TCP
implementations generally do not need to send ICMP port-
unreachable messages because a separate mechanism is available
(sending a RST). However, RFC 1122 states that a TCP receiving an
ICMP port-unreachable MUST treat it the same as the equivalent
transport-level mechanism (for TCP, a RST).}
+ An ICMP host-unreachable or network-unreachable to A1 (not
necessarily from A2) with an enclosed IP header matching that sent
from A1 to A2 *suggests* a lack of temporal connectivity. If by
time T+dT no evidence of temporal connectivity has been gathered,
then the receipt of the ICMP can be used as additional information
to the measurement value of "false".
{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.
8. Security Considerations
As noted in RFC 2330, active measurement techniques, such as those
defined in this document, can be abused for denial-of-service attacks
disguised as legitimate measurement activity. Furthermore, 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.
AI ELI5
On this page
§1Connectivity as a Measurable Thing
The RFC argues that connectivity is the basic stuff the Internet is made from, so metrics saying whether pairs of hosts (IP addresses) can reach each other must form the base of a measurement suite. It builds on the IPPM framework in RFC 2330, and assumes the reader knows it.
The memo builds up in steps: one-way connectivity at one moment, then two-way at one moment, then both over an interval, then a useful two-way notion called Type-P1-P2-Interval-Temporal-Connectivity, and finally methodologies to estimate it. The RFC names the careful definition of that last metric and the discussion of its methodologies as its two chief contributions. All of its metrics are Boolean.
To check whether two friends can pass notes, you first have to decide exactly what counts as passing a note. This document does that.
§2Instantaneous Connectivity
Type-P-Instantaneous-Unidirectional-Connectivity takes a source address, a destination address and a time T. Src has it to Dst at time T if a type-P packet sent from Src to Dst at time T will arrive at Dst.
The RFC notes that most applications, such as a TCP connection, need two-way connectivity over an interval, though one-way and instantaneous connectivity can matter for security uses such as testing whether a firewall filters a "ping of death". It also does not define when the packet must arrive. The IP TTL is meant to limit lifetimes to 255 seconds, though in practice it can be a hop count, so packet lifetimes must be considered when measuring.
Type-P-Instantaneous-Bidirectional-Connectivity holds for addresses A1 and A2 at time T if each has the one-way metric to the other. The RFC mentions an alternative definition that lets A2's reply travel after A1's packet arrives, which is easier to measure but breaks the symmetry, and postpones it to the interval metrics.
Instant connectivity asks: if I throw a ball right now, will it land in your hands? Two-way asks if both of us could catch right now.
§4Connectivity Over an Interval
Real applications need connectivity over a stretch of time, and an instant can fail because of a transient event such as a full router queue. The interval metrics add a duration dT, giving the closed interval [T, T+dT].
Type-P-Interval-Unidirectional-Connectivity holds if for some T' within the interval, Src has instantaneous connectivity to Dst. Type-P-Interval-Bidirectional-Connectivity holds if each address has the one-way interval metric to the other during the interval.
The RFC admits this two-way version is not quite what is needed. The two directions might work only at different times, for example early in the interval, so that neither side could reply to the other. That deficiency motivates the next metric.
Over an interval you ask if the ball can land at least once during a whole afternoon. But it might land only in the morning, too early for you to throw one back.
| Metric | Direction | Time scope |
|---|---|---|
| Type-P-Instantaneous-Unidirectional-Connectivity | One-way | One time T |
| Type-P-Instantaneous-Bidirectional-Connectivity | Two-way | One time T |
| Type-P-Interval-Unidirectional-Connectivity | One-way | Interval [T, T+dT] |
| Type-P-Interval-Bidirectional-Connectivity | Two-way | Interval [T, T+dT] |
| Type-P1-P2-Interval-Temporal-Connectivity THIS RFC | Two-way, request then reply | Interval [T, T+dT] |
§6Two-way Temporal Connectivity
Type-P1-P2-Interval-Temporal-Connectivity is the metric the RFC treats as "generally useful": Src can send a packet to Dst that elicits a response. Its parameters are Src, Dst, T and dT.
It holds if there are times T1 and T2, and delays dT1 and dT2, such that T1, T1+dT1, T2 and T2+dT2 all lie within [T, T+dT], T1+dT1 is no later than T2, Src has Type-P1 instantaneous connectivity to Dst at T1, and Dst has Type-P2 instantaneous connectivity to Src at T2. dT1 and dT2 are the transit times of the two packets.
The forward and reverse packets may be different types, because applications often use different packet types in each direction and the wanted reply to a Type-P1 packet is likely a different Type-P2.
This asks the useful question: can I send you something and get an answer back, within the time window, with your answer sent after mine arrives?
§6.6Estimating the Metric
The RFC sketches a class of methodologies rather than one, since details depend on types P1 and P2. Inputs are the types, the two addresses, the interval, N (the number of probe packets) and W (the waiting time, bounding how long a reply is useful). It requires W <= 255 and dT > W. Recommended values are dT = 60 seconds, W = 10 seconds and N = 20 packets.
The algorithm picks N sending times randomly and uniformly over [T, T+dT-W] and sends a well-formed P1 packet to A2 at each one. A1 watches incoming traffic for a successful reply. Any such reply makes the result true and ends the measurement. If none arrives by T+dT, the result is false.
The RFC calls this inexact, since it cannot probe every instant. N trades precision against network load, and it says the state of the art offers no solid guidance for choosing N, so the values are only guidelines.
You tap on the door a handful of times at random moments during a minute. If anyone ever answers, the answer is yes. If nobody does, it is no.
§6.6.5A TCP Methodology
A TCP-port-N1-port-N2 methodology sends TCP SYN packets from source port N1 to destination port N2 at A2, and interprets what comes back at A1.
- A SYN-ack with the proper acknowledgement fields and ports means temporal connectivity, so the measurement ends with true.
- A RST with the proper ports also means temporal connectivity, but a lack of service connectivity for that port pair.
- An ICMP port-unreachable from A2 likewise means temporal connectivity and no service connectivity.
- An ICMP host-unreachable or network-unreachable (not necessarily from A2) with a matching enclosed IP header only suggests a lack of connectivity. If no evidence of connectivity appears by T+dT, it can add support to a false result.
If a full connection is accidentally established, the RFC says to tear it down with the usual FIN handshake rather than a RST, since RST packets are not reliably delivered. It adds that using the host's own TCP stack complicates the method because the stack may retransmit the SYN and change the number of probes. Similar methods are said to be needed for ICMP Echo and UDP.
Knock on a door. If someone says come in, or even if they say go away, you know someone is home. A silent street with a sign saying the road is closed suggests nobody is reachable.
- TCP SYN (port N1 to N2)Sent at one of N random sending times.
- SYN-ackTemporal connectivity: result is true.
§8Security Considerations
As RFC 2330 notes, active measurement techniques like these can be abused for denial-of-service attacks disguised as legitimate measurement. The RFC adds that testing for connectivity can be used to probe firewalls and other security mechanisms for weak spots.
Checking over and over whether a door is open can be a trick to annoy the house or find a weak lock, so it must be done carefully.