RFC 5644
IP Performance Metrics (IPPM): Spatial and Multicast
RFC 5644: IP Performance Metrics (IPPM): Spatial and Multicast โจ๐
Okay bestie, this one's from the Network Working Group ๐ธ and it's a Standards Track doc, so it's an official spec, not just vibes. The authors are E. Stephan (France Telecom), L. Liang (University of Surrey), and A. Morton (AT&T Labs). It came out in October 2009 ๐ . It's all about IP Performance Metrics (IPPM) ๐, which is the IETF's way of measuring how a network is doing ๐ .
Abstract ๐ฆ
The IETF already has IPPM for checking end-to-end performance between two points, like two endpoints talking to each other. This memo adds two brand-new categories of metrics that work across multiple measurement points ๐ฅ. The first is spatial metrics, which measure how each segment of a source-to-destination path is doing. The second is metrics for measuring the performance between one source and many destinations in multiparty communications, like a multicast tree ๐ณ.
Status of This Memo ๐
This is an Internet standards track protocol for the Internet community, and the authors are literally asking for feedback and suggestions to make it better ๐ซถ. If you want the current standardization state and status of this protocol, check the "Internet Official Protocol Standards" (STD 1) doc ๐. Distribution of this memo is unlimited, so share away ๐.
Copyright Notice โ๏ธ
Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved ๐.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info), as they were in effect on the day this was published ๐งพ. Please actually read these, because they spell out your rights and restrictions for this document ๐. Code Components pulled out of this document must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the BSD License ๐.
This document may contain material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008 ๐ฐ๏ธ. Some of the people who hold the copyright on that older material may not have given the IETF Trust permission to allow changes outside the IETF Standards Process ๐ฌ. So without an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works can't be made outside that process either. The one exceptions are formatting it for publication as an RFC or translating it into languages other than English ๐.
Table of Contents ๐๏ธ
1. Introduction and Scope ..........................................3
2. Terminology .....................................................4
3. Brief Metric Descriptions .......................................7
4. Motivations ....................................................10
5. Spatial Vector Metrics Definitions .............................12
6. Spatial Segment Metrics Definitions ............................19
7. One-to-Group Metrics Definitions ...............................27
8. One-to-Group Sample Statistics .................................30
9. Measurement Methods: Scalability and Reporting .................40
10. Manageability Considerations ..................................44
11. Security Considerations .......................................49
12. Acknowledgments ...............................................50
13. IANA Considerations ...........................................50
14. References ....................................................56
14.1. Normative References .....................................56
14.2. Informative References ...................................57
1. Introduction and Scope โจ
Okay so the IETF already has IPPM for measuring end-to-end performance between two points ๐ฏ. This memo adds two new categories of metrics that stretch the coverage out to multiple measurement points ๐ฆ. Spatial metrics check the performance of segments along a source-to-destination path ๐ฃ๏ธ. Metrics for a source and many destinations cover multiparty stuff like a multicast tree ๐ณ.
The whole point of this memo is to define metrics for the new needs that come up when you're measuring with multiple measurement points ๐ . Spatial metrics measure each segment along a path, and one-to-group metrics measure performance for a group of users ๐ฏโโ๏ธ. Both are derived from one-way end-to-end metrics, and all of those follow the IPPM framework [RFC2330] ๐งฉ.
Here's how the memo is laid out ๐บ๏ธ. Section 2 introduces new terms that extend the original IPPM framework [RFC2330]. Section 3 gives a quick intro to the new metrics, and Section 4 explains why each metric category exists ๐ญ. Sections 5 through 8 go deep on each category with definitions and statistics ๐. After that, the memo looks at how the measurement methods affect scalability, and proposes an information model for reporting the measurements ๐. Last but not least, it covers security aspects related to measurement and registers the metrics in the IANA IP Performance Metrics Registry [RFC4148] ๐.
The scope here is limited to metrics that use a single source packet or stream, plus the observations of the matching packets along the path (spatial), at one or more destinations (one-to-group), or both ๐. Heads up: all the metrics in this memo are based on observing packets that are dedicated to testing, which is called active measurement ๐งช. Passive measurement, like a spatial metric based on watching user traffic, is totally out of scope for this memo ๐ โโ๏ธ.
1.1. Requirements Language ๐
Here's the key word situation ๐. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐ค.
2. Terminology ๐
2.1. Naming of the Metrics ๐ท๏ธ
The metric names, capital letters included, stay as close as possible to the names of the one-way end-to-end metrics they're derived from ๐.
2.2. Terms Defined Elsewhere ๐
Some terms are borrowed from other docs, so go check these spots:
- host: section 5 of RFC 2330
- router: section 5 of RFC 2330
- loss threshold: section 2.8.2 of RFC 2680
- path: section 5 of RFC 2330
- sample: section 11 of RFC 2330
- singleton: section 11 of RFC 2330
2.3. Routers Digest ๐
The routers digest is the list of routers on the path from the source to the destination that act as points of interest ๐งญ.
2.4. Multiparty Metric ๐ญ
A metric is multiparty if the topology involves more than one measurement collection point ๐ซ. All multiparty metrics designate a set of hosts as "points of interest", where one host is the source and the other hosts are the measurement collection points. For example, if the set of points of interest is < ha, hb, hc, ..., hn >, where ha is the source and < hb, hc, ..., hn > are the destinations, then measurements may be conducted between < ha, hb>, < ha, hc>, ..., <ha, hn > ๐งฎ.
For this memo, which covers the scope of a single source, the only multiparty metrics are one-to-group metrics ๐.
2.5. Spatial Metric ๐ฐ๏ธ
A metric is spatial if one of the hosts involved (the measurement collection points) is neither the source nor a destination of the measured packet(s) ๐. These measurement hosts will usually be routers that are members of the routers digest ๐ค.
2.6. One-to-Group Metric ๐
A metric is one-to-group if the measured packet is sent by one source and (potentially) received by more than one destination ๐จ. So the communication group's topology looks like a center-distributed or server-client topology, with the source as the center/server ๐๏ธ.
2.7. Points of Interest ๐
Points of interest are the hosts that are measurement collection points ๐. (Per the RFC 2330 definition, "hosts" include routing nodes ๐ค๏ธ.) They're a sub-set of the hosts involved in delivering the packets, and the source itself counts too ๐ .
For spatial metrics, points of interest are a (possibly arbitrary) sub-set of all the routers involved in the path ๐ฒ.
Points of interest for one-to-group metrics are the intended destination hosts for packets from the source, plus the source itself ๐ฏ.
Src Dst
`. ,-.
`. ,' `...... 1
`. ; :
`. ; :
; :... 2
| |
: ;
: ;.... 3
: ;
`. ,'
`-'....... I
Figure 1: One-to-Group Points of Interest ๐ผ๏ธ
A candidate point of interest for spatial metrics is a router from the set of routers involved in delivering packets from the source to the destination ๐.
Src ------. Hosts
\
`---X --- 1
\
x
/
.---------X ---- 2
/
x
...
`---X ---- ...
\
\
\
X ---- J
\
\
\
`---- Dst
Note: 'X' are nodes that are points of interest,
'x' are nodes that are not points of interest
Figure 2: Spatial Points of Interest โจ
2.8. Reference Point ๐
A reference point is the server where the statistical calculations get carried out ๐งฎ. It's usually a centralized server in the measurement architecture that a network operator controls, and that's where measurement data gets collected for further processing ๐๏ธ. The reference point is totally different from the hosts at measurement collection points, where the actual measurements happen (like the points of interest) ๐.
2.9. Vector ๐ง
A vector is a set of singletons (single atomic results) made up of observations for one source packet at different hosts in a network ๐งฉ. For instance, if the one-way delay singletons observed at N receivers for Packet P sent by the source Src are dT1, dT2,..., dTN, then a vector V with N elements can be organized as {dT1, dT2,..., dTN} ๐ธ. The element dT1 is distinct from all the others, since it's the singleton at receiver 1 responding to a packet sent from the source at a specific time โฐ. The complete vector gives information over the dimension of space, which in this example is the set of N receivers ๐ธ.
The singleton elements of any vector are all distinctly different from each other in terms of their measurement collection point ๐. Different vectors for common measurement points of interest are told apart by the source packet's sending time โฑ๏ธ.
2.10. Matrix
okay so a matrix is what happens when a bunch of vectors stack up together ๐
It holds results observed over a sampling interval at different places in the network and at different times ๐ฆ For example, the one-way delay vectors V1={dT11, dT12,..., dT1N}, V2={dT21, dT22,..., dT2N},..., Vm={dTm1, dTm2,..., dTmN} for Packet P1, P2,...,Pm, form a one-way delay Matrix {V1, V2,...,Vm}. The matrix organizes the vector info so you can see network performance in both space and time โจ
A one-dimensional matrix (row) corresponds to a sample in simple point-to-point measurement. So a single row is basically a sample, bestie ๐ธ
The relationship among singleton, sample, vector, and matrix is illustrated in Figure 3. Here's the visual ๐
points of singleton
interest / samples(time)
,----. ^ /
/ R1.....| / R1dT1 R1dT2 R1dT3 ... R3dTk \
/ \ | | |
; R2........| | R2dT1 R2dT2 R2dT3 ... R3dTk |
Src | || | |
| R3....| | R3dT1 R3dT2 R3dT3 ... R3dTk |
| || | |
: ;| | |
\ / | | |
\ Rn......| \ RndT1 RndT2 RndT3 ... RndTk /
`-----' +-------------------------------------> time
vector matrix
(space) (time and space)
Figure 3: Relationship between Singletons, Samples, Vectors, and
Matrix
3. Brief Metric Descriptions โจ
The metrics for spatial and one-to-group measurement are based on the source-to-destination, or end-to-end metrics defined by IETF in [RFC2679], [RFC2680], [RFC3393], and [RFC3432]. Those are the building blocks, and everything here is built on top of them ๐งฑ
This memo defines seven new spatial metrics using the [RFC2330] framework of parameters, units of measure, and measurement methodologies. Each definition includes a section that describes measurement constraints and issues, and gives guidance to increase the accuracy of the results. So you're not left guessing ๐
The spatial metrics are:
Type-P-Spatial-One-way-Delay-Vectordivides the end-to-endType-P-One-way-Delay[RFC2679] into a spatial vector of one-way delay singletons.Type-P-Spatial-One-way-Packet-Loss-Vectordivides an end-to-endType-P-One-way-Packet-Loss[RFC2680] into a spatial vector of packet loss singletons.Type-P-Spatial-One-way-ipdv-Vectordivides an end-to-endType-P-One-way-ipdvinto a spatial vector of ipdv (IP Packet Delay Variation) singletons.- Using elements of the
Type-P-Spatial-One-way-Delay-Vectormetric, a sample calledType-P-Segment-One-way-Delay-Streamcollects one-way delay metrics between two points of interest on the path over time. - Likewise, using elements of the
Type-P-Spatial-Packet-Loss-Vectormetric, a sample calledType-P-Segment-Packet-Loss-Streamcollects one-way delay metrics between two points of interest on the path over time. - Using the
Type-P-Spatial-One-way-Delay-Vectormetric, a sample calledType-P-Segment-ipdv-prev-Streamwill be introduced to compute ipdv metrics (using the previous packet selection function) between two points of interest on the path over time. - Again using the
Type-P-Spatial-One-way-Delay-Vectormetric, a sample calledType-P-Segment-ipdv-min-Streamwill define another set of ipdv metrics (using the minimum delay packet selection function) between two points of interest on the path over time.
The memo also defines three one-to-group metrics to measure the one-way performance between a source and a group of receivers. They are:
Type-P-One-to-group-Delay-Vector, which collects the set ofType-P-One-way-Delaysingletons between one sender and N receivers;Type-P-One-to-group-Packet-Loss-Vector, which collects the set ofType-P-One-way-Packet-Losssingletons between one sender and N receivers; andType-P-One-to-group-ipdv-Vector, which collects the set ofType-P-One-way-ipdvsingletons between one sender and N receivers.
Finally, based on the one-to-group vector metrics listed above, statistics are defined to capture single receiver performance, group performance, and the relative performance for a multiparty communication ๐
- Using the
Type-P-One-to-group-Delay-Vector, a metric calledType-P-One-to-group-Receiver-n-Mean-Delay, or RnMD, presents the mean of delays between one sender and a single receiver 'n'. From this metric, three additional metrics are defined to characterize the mean delay over the entire group of receivers during the same time interval:Type-P-One-to-group-Mean-Delay, or GMD, presents the mean of delays;Type-P-One-to-group-Range-Mean-Delay, or GRMD, presents the range of mean delays; andType-P-One-to-group-Max-Mean-Delay, or GMMD, presents the maximum of mean delays.
- Using the
Type-P-One-to-group-Packet-Loss-Vector, a metric calledType-P-One-to-group-Receiver-n-Loss-Ratio, or RnLR, captures the packet loss ratio between one sender and a single receiver 'n'. Based on this definition, two more metrics are defined to characterize packet loss over the entire group during the same time interval:Type-P-One-to-group-Loss-Ratio, or GLR, captures the overall packet loss ratio for the entire group of receivers; andType-P-One-to-group-Range-Loss-Ratio, or GRLR, presents the comparative packet loss ratio during the test interval between one sender and N receivers.
- Using the
Type-P-One-to-group-Packet-Loss-Vector, a metric calledType-P-One-to-group-Receiver-n-Comp-Loss-Ratio, or RnCLR, computes a packet loss ratio using the maximum number of packets received at any receiver. - Using
Type-P-One-to-group-ipdv-Vector, a metric calledType-P-One-to-group-Range-Delay-Variation, or GRDV, presents the range of delay variation between one sender and a group of receivers.
4. Motivations ๐ญ
All existing IPPM metrics are defined for end-to-end (source-to-destination) measurement of point-to-point paths. It is logical to extend them to multiparty situations, such as one-to-one trajectory metrics and one-to-multipoint metrics. Growing up, aka the internet getting bigger, means we need this ๐
4.1. Motivations for Spatial Metrics
Spatial metrics are needed for:
- Decomposing the performance of an inter-domain path to quantify the per-AS (Autonomous System) contribution to the end-to-end performance.
- Traffic engineering and troubleshooting, which benefit from spatial views of one-way delay and ipdv consumption, or identification of the path segment where packets were lost.
- Monitoring the decomposed performance of a multicast tree based on MPLS point-to-multipoint communications.
- Dividing end-to-end metrics, so that some segment measurements can be re-used and help measurement systems reach large-scale coverage. Spatial measures could characterize the performance of an intra-domain segment and provide an elementary piece of information needed to estimate inter-domain performance to another destination using Spatial Composition metrics [SPATIAL].
4.2. Motivations for One-to-group Metrics
While the node-to-node-based spatial measures can provide very useful data in the view of each connection, we also need measures to present the performance of a multiparty communication topology. A simple point-to-point metric cannot completely describe the multiparty situation. New one-to-group metrics assess performance of the multiple paths for further statistical analysis. The new metrics are named one-to-group performance metrics, and they are based on the unicast metrics defined in IPPM RFCs. One-to-group metrics are one-way metrics from one source to a group of destinations or receivers. The metrics are helpful for judging the overall performance of a multiparty communications network and for describing the performance variation across a group of destinations ๐
One-to-group performance metrics are needed for:
- Designing and engineering multicast trees and MPLS point-to-multipoint Label Switched Paths (LSPs).
- Evaluating and controlling the quality of multicast services, including inter-domain multicast.
- Presenting and evaluating the performance requirements for multiparty communications and overlay multicast.
To understand the packet transfer performance between one source and any one receiver in the multiparty communication group, we need to collect instantaneous end-to-end metrics, or singletons. This gives a very detailed view into the performance of each branch of the multicast tree, and can provide clear and helpful information for engineers to identify the branch with problems in a complex multiparty routing tree ๐
The one-to-group metrics described in this memo introduce the multiparty topology into the IPPM framework, and they describe the performance delivered to a group receiving packets from the same source. The concept extends the "path" of the point-to-point measurement to "path tree" to cover one-to-many topologies. If applied to one-to-one topology, the one-to-group metrics provide exactly the same results as the corresponding one-to-one metrics. Same results, no drama ๐
4.3. Discussion on Group-to-One and Group-to-Group Metrics
We note that points of interest can also be selected to define measurements on group-to-one and group-to-group topologies. These topologies are beyond the scope of this memo, because they would involve multiple packets launched from different sources. However, this section gives some insights on these two cases ๐ง
The measurements for group-to-one topology can be easily derived from the one-to-group measurement. The measurement point is the host that is acting as a receiver while all other hosts act as sources in this case.
The group-to-group communication topology has no obvious focal point: the sources and the measurement collection points can be anywhere. However, it is possible to organize the problem by applying measurements in one-to-group or group-to-one topologies for each host in a uniform way (without taking account of how the real communication might be carried out). For example, one group of hosts < ha, hb, hc, ..., hn > might act as sources to send data to another group of hosts < Ha, Hb, Hc, ..., Hm >, and they can be organized into n sets of points of interest for one-to-group communications:
< ha, Ha, Hb, Hc, ..., Hm >, < hb, Ha, Hb, Hc, ..., Hm >, <hc, Ha, Hb, Hc, ..., Hm >, ..., < hn, Ha, Hb, Hc, ..., Hm >.
5. Spatial Vector Metrics Definitions ๐ฆ
This section defines vectors for the spatial decomposition of end-to-end singleton metrics over a path.
Spatial vector metrics are based on the decomposition of standard end-to-end metrics defined by the IPPM WG in [RFC2679], [RFC2680], [RFC3393], and [RFC3432].
The spatial vector definitions are coupled with the corresponding end-to-end metrics. Measurement methodology aspects are common to all the vectors defined and are consequently discussed in a common section. Next up, the methodology stuff, so stay with me ๐
5.1. A Definition for Spatial One-Way Delay Vector ๐ฆ
Okay so this bit is coupled with the Type-P-One-way-Delay definition in section 3 of [RFC2679] ๐. Whenever we borrow a parameter from that definition, the first time it shows up gets a trailing asterisk (*) โจ.
Sections 3.5 to 3.8 of [RFC2679] are the requirements and applicability bits for end-to-end one-way delay measurements. They apply to every point of interest, Hi, involved in the measurement ๐ธ. Spatial one-way delay measurements MUST respect them, especially the stuff about methodology, clocks, uncertainties, and reporting ๐ซถ.
5.1.1. Metric Name ๐
Type-P-Spatial-One-way-Delay-Vector
5.1.2. Metric Parameters ๐
Src*, the IP address of the sender.Dst*, the IP address of the receiver.i, an integer in the ordered list<1,2,...,n>of routers in the path.Hi, a router of the routers digest.T*, a time, the sending (or initial observation) time for a measured packet.dT*, a delay, the one-way delay for a measured packet.dTi, a delay, the one-way delay for a measured packet from the source to routerHi.<dT1,... dTi,... dTn>, a list of n delay singletons.Type-P*, the specification of the packet type.<H1, H2,..., Hn>, the routers digest.
5.1.3. Metric Units ๐ง
The value of Type-P-Spatial-One-way-Delay-Vector is a sequence of times. Each one is a real number in the dimension of seconds, with enough resolution to show the results properly โฑ๏ธ.
5.1.4. Definition ๐
Given a Type-P packet sent by the Src at wire-time (first bit) T to the receiver Dst on the path <H1, H2,..., Hn>, there is a sequence of values <T+dT1,T+dT2,...,T+dTn,T+dT>. Here dT is the Type-P-One-way-Delay from Src to Dst. For each Hi on the path, T+dTi is either a real number matching the wire-time when the packet passes (last bit received) Hi, or it's undefined if the packet doesn't pass Hi within a specified loss threshold* time ๐.
The Type-P-Spatial-One-way-Delay-Vector metric is defined for the path <Src, H1, H2,..., Hn, Dst> as the sequence of values <T,dT1,dT2,...,dTn,dT> โจ.
5.1.5. Discussion ๐
Some specific issues that may come up are these:
- The delay singletons can "appear" to decrease, where
dTi > dTi+1. This may happen even though it's physically impossible with the definition we're using ๐ญ.- This is frequently due to a measurement clock synchronization issue. We talk about this in section 3.7.1 "Errors or uncertainties related to Clocks" of [RFC2679]. So the delay values measured at multiple routers may not match the order of those routers on the path ๐.
- The actual order of routers on the path may change because of reconvergence (for example, recovering from a link failure) ๐ฅ.
- Where the measurement collection point sits in the device matters too ๐. If the packet isn't observed directly on the input interface, the delay includes buffering time. That means there's an uncertainty from the difference between 'wire-time' and 'host time' ๐ซ .
5.2. A Definition for Spatial Packet Loss Vector ๐ท
This section is coupled with the definition of Type-P-One-way-Packet-Loss. Whenever a parameter from section 2 of [RFC2680] shows up here, its first instance gets a trailing asterisk ๐.
Sections 2.5 to 2.8 of [RFC2680] are the requirements and applicability statements for end-to-end one-way packet loss measurements. They apply to every point of interest, Hi, involved in the measurement. Spatial packet loss measurement MUST respect them, especially the bits about methodology, clocks, uncertainties, and reporting ๐.
The next sections define the spatial loss vector, adapt some of the points above, and bring in new points that are specific to spatial loss measurement ๐ง.
5.2.1. Metric Name ๐
Type-P-Spatial-Packet-Loss-Vector
5.2.2. Metric Parameters ๐ฆ
Src*, the IP address of the sender.Dst*, the IP address of the receiver.i, an integer in the ordered list<1,2,...,n>of routers in the path.Hi, a router of the routers digest.T*, a time, the sending time for a measured packet.dTi, a delay, the one-way delay for a measured packet from the source to hostHi.<dT1,..., dTn>, a list of n delay singletons.Type-P*, the specification of packet type.<H1, H2,..., Hn>, the routers digest.<L1, L2, ...,Ln>, a list of Boolean values.
5.2.3. Metric Units ๐ธ
The value of Type-P-Spatial-Packet-Loss-Vector is a sequence of Boolean values โ
.
5.2.4. Definition โจ
Given a Type-P packet sent by the Src at time T to the receiver Dst on the path <H1, H2, ..., Hn>. For the sequence of times <T+dT1,T+dT2,..., T+dTi, ...,T+dTn> that the packet passes in <H1, H2, ..., Hi, ..., Hn>, define the Type-P-Packet-Loss-Vector metric as the sequence of values <T, L1, L2, ..., Ln>. For each Hi on the path, a value of 0 for Li means that dTi is a finite value, and a value of 1 means that dTi is undefined ๐ง.
5.2.5. Discussion ๐ฅ
Some specific issues that may come up are these:
- The result might include the sequence of values
1,0. This looks physically impossible, since a packet gets lost and then shows up again later on the path ๐ญ:- The actual routers on the path may change because of reconvergence (for example, recovering from a link failure) ๐.
- The order of routers on the path may change because of reconvergence ๐ซถ.
- A packet may not be observed at a router because of some buffer or CPU overflow at the measurement collection point ๐.
5.3. A Definition for Spatial One-Way ipdv Vector ๐
When a parameter from section 2 of [RFC3393] (the definition of Type-P-One-way-ipdv) is used in this section, its first instance gets a trailing asterisk ๐.
The next sections define the spatial ipdv vector, adapt some of the points above, and bring in new points specific to spatial ipdv measurement ๐.
5.3.1. Metric Name ๐ท
Type-P-Spatial-One-way-ipdv-Vector
5.3.2. Metric Parameters ๐
Src*, the IP address of the sender.Dst*, the IP address of the receiver.i, an integer in the ordered list<1,2,...,n>of routers in the path.Hi, a router of the routers digest.T1*, a time, the sending time for a first measured packet.T2*, a time, the sending time for a second measured packet.dT*, a delay, the one-way delay for a measured packet.dTi, a delay, the one-way delay for a measured packet from the source to routerHi.Type-P*, the specification of the packet type.P1, the first packet, sent at timeT1.P2, the second packet, sent at timeT2.<H1, H2,..., Hn>, the routers digest.<T1,dT1.1, dT1.2,..., dT1.n,dT1>, the Type-P-Spatial-One-way-Delay-Vector for a packet sent at timeT1.<T2,dT2.1, dT2.2,..., dT2.n,dT2>, the Type-P-Spatial-One-way-Delay-Vector for a packet sent at timeT2.L*, a packet length in bits. The packets of a Type-P packet stream from which the Type-P-Spatial-One-way-Delay-Vector metric is taken MUST all be the same length ๐.
5.3.3. Metric Units ๐ง
The value of Type-P-Spatial-One-way-ipdv-Vector is a sequence of times. Each one is a real number in the dimension of seconds, with enough resolution to convey the results โฑ๏ธ.
5.3.4. Definition ๐
Given P1, the Type-P packet sent by the sender Src at wire-time (first bit) T1 to the receiver Dst, we have <T1, dT1.1, dT1.2,..., dT1.n, dT1>. That's the Type-P-Spatial-One-way-Delay-Vector of P1 over the sequence of routers <H1, H2,..., Hn> ๐ฆ.
Given P2, the Type-P packet sent by the sender Src at wire-time (first bit) T2 to the receiver Dst, we have <T2, dT2.1, dT2.2,..., dT2.n, dT2>. That's the Type-P-Spatial-One-way-Delay-Vector of P2 over the same path ๐ธ.
The Type-P-Spatial-One-way-ipdv-Vector metric is defined as the sequence of values <T1, T2, dT2.1-dT1.1, dT2.2-dT1.2 ,..., dT2.n-dT1.n, dT2-dT1>. For each Hi in the sequence of routers <H1, H2,..., Hn>, dT2.i-dT1.i is either a real number, if packets P1 and P2 pass Hi at wire-time (last bit) dT1.i and dT2.i respectively. Otherwise it's undefined, if at least one of them never passes Hi (and the respective one-way delay is undefined) ๐ซถ. The T1,T2* pair indicates the inter-packet emission interval, and dT2-dT1 is ddT*, the Type-P-One-way-ipdv โจ.
5.4. Spatial Methodology ๐
The methodology, reporting specifications, and uncertainties in section 3 of [RFC2679] apply to each point of interest (or measurement collection point), Hi, that measures an element of a spatial delay vector ๐.
In the same way, the methodology, reporting specifications, and uncertainties in section 2 of [RFC2680] apply to each point of interest, Hi, that measures an element of a spatial packet loss vector ๐.
Sections 3.5 to 3.7 of [RFC3393] give requirements and applicability statements for end-to-end One-way ipdv measurements. They apply to each point of interest, Hi, involved in the measurement. Spatial One-way ipdv measurement MUST respect the methodology, clock, uncertainties, and reporting aspects given there ๐ซถ.
Generally, for a given Type-P packet of length L at a specific Hi, the methodology for spatial vector metrics may go like this ๐ง:
- At each
Hi, the points of interest (or measurement collection points) get ready to capture the packet sent at timeT. They record a timestampTi'and determine the internal delay correctiondTi'(see section 3.7.1 "Errors or uncertainties related to Clocks" of [RFC2679]). - Each
Hiextracts the path ordering information from the packet (for example, time-to-live (TTL)) ๐. - Each
Hicomputes the corrected wire-time fromSrctoHi:Ti = Ti' - dTi'. This arrival time is undefined if the packet isn't detected after the 'loss threshold' duration โณ. - Each
Hiextracts the timestampTfrom the packet ๐. - Each
Hicomputes the one-way delay fromSrctoHi:dTi = Ti - T๐ธ. - The reference point gathers the result from each
Hiand arranges them according to the path ordering information it received. That builds the Type-P spatial one-way vector (for example, the Type-P-Spatial-One-way-Delay-Vector metric<T, dT1, dT2,..., dTn, dT>) over the path<Src, H1, H2,..., Hn, Dst>at timeT๐.
5.4.1. Packet Loss Detection โจ
Okay so in a pure end-to-end measurement, only the receiver can spot lost packets ๐. A packet counts as lost when its Type-P-One-way-Delay is undefined or super huge (see sections 2.4 and 2.5 of [RFC2680] and section 3.5 of [RFC2680] ๐). The receiver writes the packet off once a timer that starts at send time runs out. The measurement process picks that timeout, and it's the line between "that took a long time" (a finite value) and "it never showed up" (undefined) ๐
In a spatial measurement, losses can get detected at several measurement collection points ๐บ๏ธ. Depending on how consistent those detections are, a packet might be "lost" at one point even though it has a finite delay at another. Or the last collection point on the path might see it while Dst calls it lost ๐ญ
This can get confusing fast. Did the path change? Did the packet actually reach the destination, or did it die on the very last link? ๐ค One-way delay has the same problem: one observation point might compute an infinite delay while another gets a real number, or the last observation point on the path might measure a real value while Dst marks it as undefined ๐
The observation/measurement collection points and the destination SHOULD use consistent methods to detect packet losses ๐ซถ. The methods and parameters must be systematically reported, so people can compare results carefully and nothing sneaky sneaks into the analysis ๐
5.4.2. Routers Digest ๐งฉ
The methodology above relies on knowing the order of the router/measurement collection points on the path [RFC2330] ๐ฃ๏ธ.
Path instability can make a test packet get observed more than once by the same router. That means one or more routers can show up multiple times in the routers digest ๐.
For example, repeated observations can happen during rerouting phases that create temporary micro loops. During an event like that, the routers digest for a packet crossing Ha and Hb might look like <Hb, Ha, Hb, Ha, Hb>. That pattern means Ha finished computing the new path before Hb did, the initial path ran from Ha to Hb, and the new path runs from Hb to Ha ๐.
So duplicate routers in the routers digest of a vector MUST be identified before any statistics get computed, or you'll end up with corrupted info ๐ซ๐
6. Spatial Segment Metrics Definitions โจ
This section defines samples that measure how a segment of a path performs over time. The definitions rely on the matrix of the spatial vector metrics we covered above ๐ง .
First up, this section defines a sample of one-way delay, Type-P-Segment-One-way-Delay-Stream, and a sample of packet loss, Type-P-Segment-Packet-Loss-Stream ๐.
Then it defines two different ipdv samples. Type-P-Segment-ipdv-prev-Stream uses the current and previous packets as the selection function, and Type-P-Segment-ipdv-min-Stream uses the minimum delay as one of the selected packets in every pair ๐ฆ.
6.1. A Definition of a Sample of One-Way Delay of a Segment of the Path ๐ฆ
This metric defines a sample of one-way delays over time between a pair of routers on a path. It's semantically super close to Type-P-One-way-Delay-Poisson-Stream from section 4 of [RFC2679], so sections 4.5 to 4.8 of [RFC2679] are integral parts of the definition text below ๐ .
6.1.1. Metric Name ๐ท๏ธ
Type-P-Segment-One-way-Delay-Stream
6.1.2. Metric Parameters ๐๏ธ
- Src, the IP address of the sender.
- Dst, the IP address of the receiver.
- Type-P, the specification of the packet type.
- i, an integer in the ordered list
<1,2,...,n>of routers in the path. - k, an integer that orders the packets sent.
- a and b, two integers where b > a.
- Hi, a router of the routers digest.
<H1,..., Ha, ..., Hb, ...., Hn>, the routers digest.<T1, T2, ..., Tm>, a list of times.
6.1.3. Metric Units ๐
The value of a Type-P-Segment-One-way-Delay-Stream is a pair of:
- A list of times
<T1, T2, ..., Tm>; and - A sequence of delays.
6.1.4. Definition ๐
Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-One-way-Delay-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:
<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>;
<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>;
...
<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.
We define the sample Type-P-Segment-One-way-Delay-Stream as the sequence <dT1.ab, dT2.ab, ..., dTk.ab, ..., dTm.ab>. For each time Tk, dTk.ab is the real number dTk.b - dTk.a if the packet sent at Tk passes both Ha and Hb. If that packet never passes Ha, or (inclusive) never passes Hb, then it's undefined ๐คทโโ๏ธ.
6.1.5. Discussion ๐ฌ
Some specific issues that can pop up:
- The delay singletons "appear" to decrease:
dTi > DTi+1, which is discussed in section 5.1.5.- This could also happen when the clock resolution of one measurement collection point is bigger than the minimum delay of a path. For example, the minimum delay of a 500 km path through optical fiber facilities is 2.5 ms, but the measurement collection point has a clock resolution of 8 ms โฑ๏ธ.
The metric SHALL be invalid for times <T1 , T2, ..., Tm-1, Tm> if any of these happen:
- Ha or Hb disappears from the path due to some routing change.
- The order of Ha and Hb changes in the path.
6.2. A Definition of a Sample of Packet Loss of a Segment of the Path ๐ณ๏ธ
This metric defines a sample of packet loss over time between a pair of routers on a path. It's semantically super close to Type-P-Packet-loss-Stream from section 3 of [RFC2680], so sections 3.5 to 3.8 of [RFC2680] are integral parts of the definition text below ๐.
6.2.1. Metric Name ๐ท๏ธ
Type-P-Segment-Packet-Loss-Stream
6.2.2. Metric Parameters ๐๏ธ
- Src, the IP address of the sender.
- Dst, the IP address of the receiver.
- Type-P, the specification of the packet type.
- k, an integer that orders the packets sent.
- n, an integer that orders the routers on the path.
- a and b, two integers where b > a.
<H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.- Hi, a router of the routers digest.
<T1, T2, ..., Tm>, a list of times.<L1, L2, ..., Ln>, a list of Boolean values.
6.2.3. Metric Units ๐
The value of a Type-P-Segment-Packet-Loss-Stream is a pair of:
- The list of times
<T1, T2, ..., Tm>; and - A sequence of Boolean values.
6.2.4. Definition ๐
Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-Packet-Loss-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:
<T1, L1.1, L1.2,..., L1.a, ..., L1.b, ..., L1.n, L>,
<T2, L2.1, L2.2,..., L2.a, ..., L2.b, ..., L2.n, L>,
...,
<Tm, Lm.1, Lm.2,..., Lma, ..., Lm.b, ..., Lm.n, L>.
We define the value of the sample Type-P-Segment-Packet-Loss-Stream from Ha to Hb as the sequence of Booleans <L1.ab, L2.ab,..., Lk.ab, ..., Lm.ab>, where for each Tk:
- A value of Lk of 0 means that Ha and Hb both observed the packet sent at time Tk (both Lk.a and Lk.b have a value of 0) โ .
- A value of Lk of 1 means that Ha observed the packet sent at time Tk (Lk.a has a value of 0), but Hb did not (Lk.b has a value of 1) โ.
- The value of Lk is undefined when neither Ha nor Hb observed the packet (both Lk.a and Lk.b have a value of 1) ๐ซฅ.
6.2.5. Discussion ๐ฌ
Unlike Type-P-Packet-loss-Stream, Type-P-Segment-Packet-Loss-Stream relies on the stability of the routers digest. The metric SHALL be invalid for times <T1 , T2, ..., Tm-1, Tm> if any of these happen:
- Ha or Hb disappears from the path due to some routing change.
- The order of Ha and Hb changes in the path.
- Lk.a or Lk.b is undefined.
- Lk.a has the value 1 (not observed) and Lk.b has the value 0 (observed).
- L has the value 0 (the packet was received by Dst) and Lk.ab has the value 1 (the packet was lost between Ha and Hb) ๐ซ .
6.3. A Definition of a Sample of ipdv of a Segment Using the Previous Packet Selection Function ๐
This metric defines a sample of ipdv [RFC3393] over time between a pair of routers, using the previous packet as the selection function ๐งฆ.
6.3.1. Metric Name ๐ท๏ธ
Type-P-Segment-ipdv-prev-Stream
6.3.2. Metric Parameters ๐๏ธ
- Src, the IP address of the sender.
- Dst, the IP address of the receiver.
- Type-P, the specification of the packet type.
- k, an integer that orders the packets sent.
- n, an integer that orders the routers on the path.
- a and b, two integers where b > a.
<H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.<T1, T2, ..., Tm-1, Tm>, a list of times.<Tk, dTk.1, dTk.2, ..., dTk.a, ..., dTk.b,..., dTk.n, dTk>, a Type-P-Spatial-One-way-Delay-Vector.
6.3.3. Metric Units ๐
The value of a Type-P-Segment-ipdv-prev-Stream is a pair of:
- The list of
<T1, T2, ..., Tm-1, Tm>; and - A list of pairs of interval of times and delays;
6.3.4. Definition ๐
Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-One-way-Delay-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:
<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>,
<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>,
...
<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.
We define the Type-P-Segment-ipdv-prev-Stream as the sequence of packet time pairs and delay variations:
<(T1, T2 , dT2.ab - dT1.ab) ,...,
(Tk-1, Tk, dTk.ab - dTk-1.ab), ...,
(Tm-1, Tm, dTm.ab - dTm-1.ab)>
For any pair Tk, Tk-1 with k running from 1 through m, the difference dTk.ab - dTk-1.ab is undefined if either of these is true:
- the delay dTk.a or the delay dTk-1.a is undefined, OR
- the delay dTk.b or the delay dTk-1.b is undefined.
6.3.5. Discussion ๐ฌ
This metric belongs to the family of inter-packet delay variation metrics (IPDV in uppercase), and its results are extremely sensitive to the inter-packet interval in practice ๐ข.
The inter-packet interval of an end-to-end IPDV metric is under the control of the source (the ingress point of interest). A segment IPDV metric is different: its inter-packet interval is not under the control of the ingress point of interest, Ha. That interval will definitely vary if there's delay variation between the Source and Ha. So the ingress inter-packet interval must be known at Ha to fully make sense of the delay variation between Ha and Hb ๐ง.
6.4. A Definition of a Sample of ipdv of a Segment Using the Minimum Delay Selection Function ๐ฏ
This metric defines a sample of ipdv [RFC3393] over time between a pair of routers on a path, using the minimum delay as one of the selected packets in every pair ๐.
6.4.1. Metric Name ๐ท๏ธ
Type-P-Segment-One-way-ipdv-min-Stream
6.4.2. Metric Parameters โจ
okay bestie, here are the ingredients ๐ every one of these matters, so no skipping ๐
Src, the IP address of the sender.Dst, the IP address of the receiver.Type-P, the specification of the packet type.k, an integer that orders the packets sent.i, an integer that identifies a packet sent.n, an integer that orders the routers on the path.aandb, two integers whereb > a.<H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.<T1, T2, ..., Tm-1, Tm>, a list of times.<Tk, dTk.1, dTk.2, ..., dTk.a, ..., dTk.b,..., dTk.n, dTk>, a Type-P-Spatial-One-way-Delay-Vector.
6.4.3. Metric Units ๐ฆ
The value of a Type-P-Segment-One-way-ipdv-min-Stream is a pair of:
- The list of
<T1, T2, ..., Tm-1, Tm>; and - A list of times.
6.4.4. Definition ๐ธ
okay so, this is the big one ๐ญ start with two routers, Ha and Hb, sitting on the path <H1, H2,..., Ha, ..., Hb, ..., Hn>. Then picture the matrix of Type-P-Spatial-One-way-Delay-Vectors for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm> :
<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>,
<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>,
...
<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.
Now the Type-P-Segment-One-way-ipdv-min-Stream is the sequence of times <dT1.ab - min(dTi.ab) ,..., dTk.ab - min(dTi.ab), ..., dTm.ab - min(dTi.ab)>, and here's the tea โ on how it works:
min(dTi.ab)is the minimum value of the tuples(dTk.b - dTk.a);- for each time
Tk,dTk.abis undefined ifdTk.aor (inclusive)dTk.bis undefined, or the real number(dTk.b - dTk.a)is undefined.
6.4.5. Discussion ๐
this metric belongs to the packet delay variation family (PDV) ๐ PDV distributions are less sensitive to inter-packet interval variations than IPDV values, as discussed above. literally the whole point ๐
in principle, the PDV distribution shows the variation over lots of different inter-packet intervals, from the smallest one all the way up to the length of the evaluation interval, Tm - T1. so when delay variation shows up and messes with the packet spacing observed at Ha, the PDV results will likely compare favorably to a PDV measurement where the source is Ha and the destination is Hb, because a wide range of spacings is reflected in any PDV distribution. it's giving main character energy โจ
7. One-to-Group Metrics Definitions ๐
this section defines performance metrics between a source and a group of receivers ๐ซถ
7.1. A Definition for One-to-Group Delay ๐ง
this section defines a metric for one-way delay between a source and a group of receivers.
7.1.1. Metric Name ๐
Type-P-One-to-group-Delay-Vector
7.1.2. Metric Parameters ๐
Src, the IP address of a host acting as the source.Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.T, a time.dT1,...,dTn, a list of times.Type-P, the specification of the packet type.Gr, the receiving group identifier. The parameterGris the multicast group address if the measured packets are transmitted over IP multicast. This parameter is to differentiate the measured traffic from other unicast and multicast traffic. It is OPTIONAL for this metric to avoid losing any generality, i.e., to make the metric also applicable to unicast measurement where there is only one receiver. ๐ซง
7.1.3. Metric Units ๐ธ
the value of a Type-P-One-to-group-Delay-Vector is a set of Type-P-One-way-Delay singletons [RFC2679], which is a sequence of times (a real number in the dimension of seconds, with sufficient resolution to convey the results) ๐
7.1.4. Definition ๐ฆ
okay this one is a whole vibe ๐ given a Type-P packet sent by the source Src at time T, and the N hosts { Recv1,...,RecvN } that receive the packet at the times { T+dT1,...,T+dTn }, or the packet doesn't pass a receiver within a specified loss threshold time, then the Type-P-One-to-group-Delay-Vector is defined as the set of the Type-P-One-way-Delay singletons between Src and each receiver with values { dT1, dT2,...,dTn }. any of these singletons may be undefined if the packet did not pass the corresponding receiver within a specified loss threshold time ๐
7.2. A Definition for One-to-Group Packet Loss ๐
7.2.1. Metric Name ๐
Type-P-One-to-group-Packet-Loss-Vector
7.2.2. Metric Parameters ๐
Src, the IP address of a host acting as the source.Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.T, a time.Type-P, the specification of the packet type.Gr, the receiving group identifier, OPTIONAL.
7.2.3. Metric Units โจ
the value of a Type-P-One-to-group-Packet-Loss-Vector is a set of Type-P-One-way-Packet-Loss singletons [RFC2680]. the pieces are:
T, time the source packet was sent.L1,...,LN, a list of Boolean values.
7.2.4. Definition ๐
given a Type-P packet sent by the source Src at T and the N hosts, Recv1,...,RecvN, the Type-P-One-to-group-Packet-Loss-Vector is defined as a set of the Type-P-One-way-Packet-Loss singletons between Src and each of the receivers:
{T, <L1=0|1>,<L2=0|1>,..., <LN=0|1>},
where the Boolean value 0|1 depends on whether the packet was received at a particular receiver within a loss threshold time ๐ฅ
7.3. A Definition for One-to-Group ipdv ๐ฆ
7.3.1. Metric Name ๐
Type-P-One-to-group-ipdv-Vector
7.3.2. Metric Parameters ๐ธ
Src, the IP address of a host acting as the source.Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.T1, a time.T2, a time.ddT1, ...,ddTn, a list of times.Type-P, the specification of the packet type.F, a selection function non-ambiguously defining the two packets from the stream selected for the metric.Gr, the receiving group identifier. The parameterGris the multicast group address if the measured packets are transmitted over IP multicast. This parameter is to differentiate the measured traffic from other unicast and multicast traffic. It is OPTIONAL in the metric to avoid losing any generality, i.e., to make the metric also applicable to unicast measurement where there is only one receiver. ๐ซถ
7.3.3. Metric Units ๐
the value of a Type-P-One-to-group-ipdv-Vector is a set of Type-P-One-way-ipdv singletons [RFC3393] โจ
7.3.4. Definition ๐
given a Type-P packet stream, the Type-P-One-to-group-ipdv-Vector is defined for two packets transferred from the source Src to the N hosts {Recv1,...,RecvN }. these packets are selected by the selection function F as the difference between the value of the Type-P-One-to-group-Delay-Vector from Src to { Recv1,..., RecvN } at time T1 and the value of the Type-P-One-to-group-Delay-Vector from Src to { Recv1,...,RecvN } at time T2. T1 is the wire-time at which Src sent the first bit of the first packet, and T2 is the wire-time at which Src sent the first bit of the second packet. this metric is derived from the Type-P-One-to-group-Delay-Vector metric ๐ง
for a set of real numbers {ddT1,...,ddTn}, the Type-P-One-to-group-ipdv-Vector from Src to { Recv1,...,RecvN } at T1, T2 being {ddT1,...,ddTn} means that Src sent two packets. the first was sent at wire-time T1 (first bit) and the second at wire-time T2 (first bit). the packets were received by { Recv1,...,RecvN } at wire-time {dT1+ T1,...,dTn+T1} (last bit of the first packet) and at wire-time {dT'1+ T2,...,dT'n+T2} (last bit of the second packet). and {dT'1- dT1,...,dT'n-dTn} ={ddT1,...,ddTn} ๐
for any pair of selected packets, the difference dT'n-dTn is undefined if:
- the delay
dTnto Receiver n is undefined, or - the delay
dT'nto Receiver n is undefined.
8. One-to-Group Sample Statistics โจ
okay so bestie, the one-to-group metrics we defined earlier are basically built by collecting regular unicast one-way measurement results and grouping them per group of receivers ๐ซถ Together they show network performance info that helps engineers spot potential problems on any branch of a multicast routing tree ๐ณ
BUT here's the tea ๐ต the raw results are NOT directly usable for showing how a whole group is doing. Each result is made of a huge pile of singletons that are a nightmare to read and analyze ๐ญ And delays can't be compared fairly because every receiver is a different distance from the sender ๐
Multiparty communication services need more than absolute performance info. They also need info on "relative performance" ๐ That just means the difference between the absolute performance of all the users. You can't show that by directly using the one-way metrics. Using the variations of all users' one-way parameters, though, gives us new metrics that measure those differences ๐ From there we can figure out the threshold value of relative performance a multiparty service might demand. The ultimate example is online gaming ๐ฎ A teeny tiny difference in delay can literally make the game fail ๐ So we need multicast-specific statistic metrics to define the relative delay that online gaming requires. Other services like online bidding and the online stock market also need multicast metrics to check the network against their requirements โจ Which is why new, multicast-specific statistic metrics are so important.
We can also use some one-to-group statistic concepts to present and report group performance and relative performance, which saves report transmission bandwidth ๐ฆ Statistics for one-way metrics were already defined in corresponding RFCs, and they're the foundation for performance statistics. For example, [RFC2679] defines minimum and maximum one-way delay. BUT there's a dramatic difference between statistics for one-to-one communication and for one-to-many communication ๐ The former only has statistics over the time dimension, while the latter can have statistics over both the time and space dimensions. The space dimension comes from the Matrix concept, shown in Figure 4. For a Matrix M, each row is a set of one-way singletons spread over the time dimension, and each column is another set of one-way singletons spread over the space dimension.
Receivers
Space
^
1 | / R1dT1 R1dT2 R1dT3 ... R1dTk \
| | |
2 | | R2dT1 R2dT2 R2dT3 ... R2dTk |
| | |
3 | | R3dT1 R3dT2 R3dT3 ... R3dTk |
. | | |
. | | |
. | | |
n | \ RndT1 RndT2 RndT3 ... RndTk /
+--------------------------------------------> time
T0
Figure 4: Matrix M (n*m)
In Matrix M, each element is a one-way delay singleton ๐ Each column is a delay vector, containing the one-way delays of the same packet observed at n points of interest. That's where the geographical factor of performance within a group shows up ๐ Each row is a set of one-way delays observed during a sampling interval at one point of interest, so it shows the delay performance at one receiver over the time dimension.
So you can calculate statistics either by rows over the space dimension or by columns over the time dimension ๐ง It's up to the operators or service providers which dimension they care about. For example, a TV broadcast provider might want the statistical performance of each user over a long-term run, just to make sure the service is acceptable and stable ๐บ Meanwhile, an online gaming provider might care more about whether all users are served fairly, so they'd calculate statistics over the space dimension ๐ฎ This memo does not try to recommend which statistics are better than others, bestie ๐
To save report transmission bandwidth, each point of interest can send statistics for a pre-defined time interval to the reference point instead of sending every single one-way singleton it observed ๐ As long as an appropriate time interval is picked, the statistics can represent performance at a certain accurate scale โจ How to decide the time interval, and how to bootstrap all points of interest and the reference point, depends on the application. For instance, apps with a lower transmission rate can have a longer interval, and apps with a higher transmission rate can have a shorter one ๐ธ That's out of scope for this memo though.
Also, once you know the statistics over the time dimension, you might want to see how they're distributed over the space dimension ๐ Say a TV broadcast provider has the performance Matrix M and calculates the one-way delay mean over the time dimension, which gives a delay vector {V1,V2,..., VN}. They then calculate the mean of all the elements in that vector to see what level of delay they've served to all N users ๐ That new delay mean tells you how well the service was delivered to a group of users during a sampling interval, in terms of delay. Getting this statistic over both time and space takes twice as much calculation ๐ญ These are called 2-level statistics, to tell them apart from 1-level statistics calculated over just one dimension. It can be easily proven that no matter which dimension a 2-level statistic is calculated over first, the results are the same ๐คฏ So you can get the 2-level delay mean from Matrix M by taking the 1-level delay mean over the time dimension first and then the mean of the resulting vector. OR you can do the 1-level calculation over the space dimension first and then get the 2-level delay mean. Both results will be exactly the same โจ That means when defining a 2-level statistic, there's no need to specify the order the calculation happens in ๐
Tons of statistics can be defined for the proposed one-to-group metrics over the space dimension, the time dimension, or both ๐ This memo covers the case where a stream of packets from the Source results in a sample at each of the Receivers in the Group. Each of those samples is summarized with the usual statistics used in one-to-one communication ๐ฆ New statistic definitions are then presented that summarize those one-to-one statistics over all the Receivers in the Group ๐
8.1. Discussion on the Impact of Packet Loss on Statistics
Packet loss definitely affects one-way metrics and their statistics ๐ค For example, a lost packet can result in an infinite one-way delay. That's easy to handle by just ignoring the infinite value when computing the metrics and the corresponding statistics ๐ BUT packet loss hits the one-to-group statistics SO hard that the same fix used for one-way metrics won't work ๐ That's because building the matrix, which the statistics proposed in this memo need, is really complicated ๐งฉ
Here's the situation. Measurement results from different end users might have different packet loss patterns ๐ For example, for User1, packet A was observed to be lost. But for User2, packet A was received successfully, while packet B was lost. If you apply the one-way metrics fix here, the two singleton sets reported by User1 and User2 end up differing in terms of which transmitted packets they cover ๐ต And if User1 and User2 have different numbers of lost packets, their result sizes will be different too. So for centralized calculation, the reference point can't use those two results to build the group Matrix and can't calculate the statistics ๐ซ The most extreme case is when no packets arrive at any user at all ๐ญ
One possible solution is to replace the infinite or undefined delay value with the average of the two adjacent values โจ For example, say the result reported by User1 is { R1dT1 R1dT2 R1dT3 ... R1dTK-1 UNDEF R1dTK+1... R1MD }, where UNDEF is an undefined value. The reference point can replace it with R1dTK = {(R1dTK-1)+( R1dTK+1)}/2. Then that result can be used to build the group Matrix with an estimated value of R1dTK ๐ There are other possible solutions too, like using the overall mean of the whole result to replace the infinite or undefined value, and so on ๐ธ BUT those are out of scope for this memo.
For distributed calculation, the reported statistics might carry different "weight" when presenting group performance ๐ฏ This is especially true for delay and ipdv-related metrics. For example, User1 calculates the Type-P-Finite-One-way-Delay-Mean R1MD as shown in Figure 7 with no packet loss at all, while User2 calculates R2MD with N-2 packet loss. R1MD and R2MD should not be treated with equal weight, because R2MD was only calculated from two delay values across the whole sample interval ๐ฌ One possible solution is to use a weight factor to mark every statistic value sent by the users, and then use that factor in further statistic calculation ๐
8.2. General Metric Parameters โจ
okay bestie, here's the shared cast of characters for every metric in this section ๐ each one has a little letter name, and you'll see them everywhere so let's meet them ๐ฆ
- Src ๐ธ, the IP address of a host.
- G ๐, the receiving group identifier.
- N ๐ง, the number of Receivers (Recv1, Recv2, ... RecvN).
- T โฐ, a time (start of test interval).
- Tf โฐ, a time (end of test interval).
- K ๐ฆ, the number of packets sent from the source during the test interval.
- J[n] ๐ฌ, the number of packets received at a particular Receiver, n, where 1<=n<=N.
- lambda ๐, a rate in reciprocal seconds (for Poisson Streams).
- incT โฑ๏ธ, the nominal duration of inter-packet interval, first bit to first bit (for Periodic Streams).
- T0 ๐, a time that MUST be selected at random from the interval [T, T+I] to start generating packets and taking measurements (for Periodic Streams).
- TstampSrc ๐๏ธ, the wire-time of the packet as measured at MP(Src) (the Source Measurement Point).
- TstampRecv ๐ซ, the wire-time of the packet as measured at MP(Recv), assigned to packets that arrive within a "reasonable" time.
- Tmax ๐, a maximum waiting time for packets at the destination, set sufficiently long to disambiguate packets with long delays from packets that are discarded (lost); thus, the distribution of delay is not truncated.
- dT ๐, shorthand notation for a one-way delay singleton value.
- L ๐, shorthand notation for a one-way loss singleton value, either zero or one, where L=1 indicates loss and L=0 indicates arrival at the destination within TstampSrc + Tmax, may be indexed over n Receivers.
- DV โจ, shorthand notation for a one-way delay variation singleton value.
8.3. One-to-Group Delay Statistics ๐
okay so this section is where we get into the delay stats for each receiver AND the whole group, and the matrix below is giving everything ๐ญ๐ฅ
Recv /----------- Sample -------------\ Stats Group Stat
1 R1dT1 R1dT2 R1dT3 ... R1dTk R1MD \
|
2 R2dT1 R2dT2 R2dT3 ... R2dTk R2MD |
|
3 R3dT1 R3dT2 R3dT3 ... R3dTk R3MD > Group Delay
. |
. |
. |
n RndT1 RndT2 RndT3 ... RndTk RnMD /
Receiver-n
Delay
Figure 5: One-to-Group Mean Delay
the stats are computed on the finite one-way delays in that matrix ๐ง
all one-to-group delay stats are expressed in seconds, with enough resolution to show three significant digits ๐
8.3.1. Type-P-One-to-group-Receiver-n-Mean-Delay ๐
this part defines Type-P-One-to-group-Receiver-n-Mean-Delay, the Delay Mean at each Receiver N, also called RnMD ๐ฆ
we grab the Type-P-One-way-Delay singleton for all the packets sent during the test interval at each Receiver (Destination), like it says in [RFC2679]. for each packet that arrives within Tmax of its sending time, TstampSrc, the one-way delay singleton (dT) is the finite value TstampRecv[i] - TstampSrc[i] in units of seconds. otherwise, the singleton value is Undefined ๐
J[n]
---
1 \
RnMD = --- * > TstampRecv[i] - TstampSrc[i]
J[n] /
---
i = 1
Note: RnMD value is Undefined when J[n] = 0 for all n.
Figure 6: Type-P-One-to-group-Receiver-n-Mean-Delay
where all packets i= 1 through J[n] have finite singleton delays โจ
8.3.2. Type-P-One-to-group-Mean-Delay ๐
this section defines Type-P-One-to-group-Mean-Delay, the Mean one-way Delay calculated over the entire Group, also called GMD ๐ธ
N
---
1 \
GMD = - * > RnMD
N /
---
n = 1
Figure 7: Type-P-One-to-group-Mean-Delay
fun fact (well, it's in the doc!): the Group Mean Delay can also be calculated by summing the finite one-way delay singletons in the matrix, and dividing by the number of finite one-way delay singletons ๐งฎโจ
8.3.3. Type-P-One-to-group-Range-Mean-Delay ๐
this section defines a metric for the Range of Mean Delays over all N receivers in the Group (R1MD, R2MD...RnMD) ๐
Type-P-One-to-group-Range-Mean-Delay = GRMD = max(RnMD) - min(RnMD)
8.3.4. Type-P-One-to-group-Max-Mean-Delay ๐
this section defines a metric for the Maximum of Mean Delays over all N receivers in the Group (R1MD, R2MD,...RnMD) ๐ฅ
Type-P-One-to-group-Max-Mean-Delay = GMMD = max(RnMD)
8.4. One-to-Group Packet Loss Statistics ๐
same energy as before: this section is the overall one-way loss stats for a receiver AND the entire group, as the matrix below shows ๐
Recv /----------- Sample ----------\ Stats Group Stat
1 R1L1 R1L2 R1L3 ... R1Lk R1LR \
|
2 R2L1 R2L2 R2L3 ... R2Lk R2LR |
|
3 R3L1 R3L2 R3L3 ... R3Lk R3LR > Group Loss Ratio
. |
. |
. |
n RnL1 RnL2 RnL3 ... RnLk RnLR /
Receiver-n
Loss Ratio
Figure 8: One-to-Group Loss Ratio
the stats are computed on the sample of Type-P-One-way-Packet-Loss [RFC2680] in that matrix ๐ง
all loss ratios are expressed as packets lost to total packets sent ๐ซถ
8.4.1. Type-P-One-to-group-Receiver-n-Loss-Ratio ๐
okay so, given a matrix of loss singletons like the one above, you figure out the Type-P-One-way-Packet-Loss-Average for the sample at each receiver, following the definitions and method in [RFC2680]. the Type-P-One-way-Packet-Loss-Average and the Type-P-One-to-group-Receiver-n-Loss-Ratio, also called RnLR, are equivalent metrics ๐ in terms of the parameters we're using here, the definition looks like this:
K
---
1 \
RnLR = - * > RnLk
K /
---
k = 1
Figure 9: Type-P-One-to-group-Receiver-n-Loss-Ratio
8.4.2. Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio ๐ฆ
usually the number of packets sent goes in the denominator of packet loss ratio metrics ๐ฆ but for the comparative metrics defined here, the denominator is the maximum number of packets received at any receiver for the sample and test interval of interest. the numerator is the sum of the losses at receiver n ๐
the Comparative Loss Ratio, also called RnCLR, is defined as:
K
---
\
> Ln(k)
/
---
k=1
RnCLR = -----------------------------
/ K \
| --- |
| \ |
K - Min | > Ln(k) |
| / |
| --- |
\ k=1 / N
Note: Ln is a set of one-way loss values at receiver n.
There is one value for each of the K packets sent.
Figure 10: Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio
8.4.3. Type-P-One-to-group-Loss-Ratio ๐๏ธ
Type-P-One-to-group-Loss-Ratio, the overall Group Loss Ratio, also called GLR, is defined as:
K,N
---
1 \
GLR = --- * > Ln(k)
K*N /
---
k,n = 1
Figure 11: Type-P-One-to-group-Loss-Ratio
where the sum includes all of the Loss singletons, Ln(k), over the N receivers and K packets sent, in a ratio with the total packets over all receivers ๐ซ
8.4.4. Type-P-One-to-group-Range-Loss-Ratio ๐ธ
the One-to-group Loss Ratio Range is defined as:
Type-P-One-to-group-Range-Loss-Ratio = max(RnLR) - min(RnLR)
it's most effective to show the range by giving both the maximum and minimum loss ratios for the Group, rather than only the difference between them ๐ซถ
8.5. One-to-group Delay Variation Statistics โจ
this section defines the one-way delay variation (DV) stats for an entire group, as the matrix below shows ๐ง
Recv /------------- Sample --------------\ Stats
1 R1ddT1 R1ddT2 R1ddT3 ... R1ddTk R1DV \
|
2 R2ddT1 R2ddT2 R2ddT3 ... R2ddTk R2DV |
|
3 R3ddT1 R3ddT2 R3ddT3 ... R3ddTk R3DV > Group Stat
. |
. |
. |
n RnddT1 RnddT2 RnddT3 ... RnddTk RnDV /
Figure 12: One-to-group Delay Variation Matrix (DVMa)
the stats are computed on the sample of Type-P-One-way-ipdv singletons of the group delay variation matrix above, where RnddTk is the Type-P-One-way-ipdv singleton evaluated at Receiver n for the packet k, and RnDV is the point-to-point one-way packet delay variation for Receiver n ๐
all One-to-group delay variation stats are expressed in seconds, with enough resolution to show three significant digits ๐
8.5.1. Type-P-One-to-group-Range-Delay-Variation ๐
this section defines a metric for the Range of Delay Variation over all N receivers in the Group ๐ฅ
the max DV and min DV over all receivers sum up the performance over the Group (and DV is a point-to-point metric, btw). for each receiver, DV is usually expressed as the 1-10^(-3) quantile of one-way delay minus the minimum one-way delay ๐
Type-P-One-to-group-Range-Delay-Variation = GRDV =
= max(RnDV) - min(RnDV) for all n receivers
this range is figured out from the min and max values of the point-to-point one-way IP Packet Delay Variation for the set of Destinations in the group and a population of interest, using the Packet Delay Variation expressed as the 1-10^-3 quantile of one-way delay minus the minimum one-way delay. if you want a more demanding service, one option is the 1-10^-5 quantile, and either way, the quantile you used should be recorded with the results ๐ both the minimum and the maximum delay variation get recorded, and both values are given to show where the range is โจ
9. Measurement Methods: Scalability and Reporting โจ
okay so bestie, basically all the good guidance from the earlier IPPM RFCs (like [RFC2679] and [RFC2680]) for one-to-one scenarios still applies to spatial and multiparty setups ๐ The big difference is that these setups need multiple points of interest, and each one collects a stream of singletons ๐ซถ So the amount of info to store grows with BOTH the number of metrics AND the number of points of interest. The scale of the architecture multiplies how many singleton results need collecting and processing ๐ญ
It's possible that results collection has a single reference point connected to every point of interest ๐ง In that case, the number of points of interest decides the storage capacity AND the packet transfer capacity of the host acting as the reference point. BUT both can be reduced if the points of interest can compute the summary statistics for each measurement interval โจ This is very much how a lot of operational monitoring works today, where even the individual singletons might not get stored at each point of interest ๐ธ
Since minimizing the results for storage and communication is likely to matter, the Group metrics above were built to allow some computations on a per-Receiver basis ๐ That means each Receiver's statistics would normally carry equal weight with every other Receiver in the Group, no matter how many packets that Receiver actually received ๐
9.1. Computation Methods
The scalability issue can come up when there are thousands of points of interest in a group all trying to send measurement results back to the reference point for processing and analysis ๐ญ The points of interest can send either the whole measured sample or only the calculated statistics. The first is a centralized statistic calculation method and the second is a distributed one. The sample should include all metrics parameters, the values, and the corresponding sequence numbers.
Sending the whole sample can cost way more bandwidth than sending just the statistics, which should include all statistic parameters specified by policies plus extra info about the whole sample, like the size of the sample, the group address, the address of the point of interest, the ID of the sample session, and so on ๐ Apparently the centralized method can need much more bandwidth than the distributed method when the sample size is big. This is especially true when there's a very large number of points of interest, and it can lead to a scalability issue at the reference point by overloading the network resources ๐
The distributed calculation method can save much more bandwidth and mitigate scalability issues on the reference point side ๐ฆ
But ngl, there's a tradeoff. It may result in a loss of information. Since not all measured singletons are available for building the group matrix, the real performance over time can get hidden from the result. For example, the loss pattern can be missed by simply accepting the loss ratio ๐ This tradeoff between bandwidth consumption and information acquisition has to be taken into account when designing the measurement approach ๐
One possible solution is to transmit the statistic parameters to the reference point first, to get the general picture of group performance. If detailed results are required, the reference point should send requests to the points of interest, which could be particular ones or the whole group. This procedure can happen in off-peak time and be scheduled so that too many points of interest don't deliver at the same time ๐ Compression techniques can also be used to minimize the bandwidth required for transmission. A measurement protocol to report the measurement results could be one such thing, but that is out of scope for this memo ๐ซถ
9.2. Measurement
To prevent any bias in the result, the configuration of a one-to-many measure must take into consideration that more packets will be routed than sent (copies of a packet sent are expected to arrive at many destination points), and it must select a test packet rate that will not impact the network performance ๐
9.3. Effect of Time and Space Aggregation Order on Stats
This section presents the impact of the aggregation order on the scalability of the reporting and of the computation ๐ It assumes that receivers are not co-located and that results are gathered in a point of reference for further use ๐ง
Multimetric samples are represented in a matrix, like this:
Point of
Interest
1 R1S1 R1S1 R1S1 ... R1Sk \
|
2 R2S1 R2S2 R2S3 ... R2Sk |
|
3 R3S1 R3S2 R3S3 ... R3Sk > Sample over Space
. |
. |
. |
n RnS1 RnS2 RnS3 ... RnSk /
S1M S2M S3M ... SnM Stats over Space
\------------- ------------/
\/
Stats over Space and Time
Figure 13: Impact of Space Aggregation on Multimetrics Stats
Two methods are available to compute statistics on a matrix:
- Method 1: The statistic metric is computed over time and then over space; or
- Method 2: The statistic metric is computed over space and then over time.
These two methods differ only by the order of the aggregation. The order does not impact the computation resources required, and it does not change the value of the result. However, it severely impacts the minimal volume of data to report ๐ฎ
- Method 1: Each point of interest periodically computes statistics over time to lower the volume of data to report. They are reported to the reference point for subsequent computations over the spatial dimension. This volume no longer depends on the number of samples. It is only proportional to the computation period.
- Method 2: The volume of data to report is proportional to the number of samples. Each sample, RiSi, must be reported to the reference point for computing statistic over space and statistic over time. The volume increases with the number of samples. It is proportional to the number of test packets;
Method 2 has severe drawbacks in terms of security and dimensioning ๐
- Increasing the rate of the test packets may result in a Denial of Service (DoS) toward the points of reference;
- The dimensioning of a measurement system is quite impossible to validate because any increase of the rate of the test packets will increase the bandwidth requested to collect the raw results.
The computation period over time (commonly named the aggregation period) gives the reporting side control over various collecting aspects, such as bandwidth, computation, and storage capacities. So this document defines metrics based on method 1 ๐
9.3.1. Impact on Spatial Statistics
Two methods are available to compute spatial statistics:
- Method 1: Spatial segment metrics and statistics are preferably computed over time for each points of interest;
- Method 2: Vectors metrics are intrinsically instantaneous space metrics, which must be reported using Method 2 whenever instantaneous metrics information is needed.
9.3.2. Impact on One-to-Group Statistics
Two methods are available to compute group statistics:
- Method 1: Figure 5 and Figure 8 illustrate the method. The one-to-one statistic is computed per interval of time before the computation of the mean over the group of receivers.
- Method 2: Figure 13 presents the second method. The metric is computed over space and then over time.
10. Manageability Considerations ๐
This section defines the reporting of all the metrics introduced in the document ๐
Information models of spatial metrics and of one-to-group metrics are similar, except that points of interests of spatial vectors MUST be ordered ๐
The complexity of the reporting relies on the number of points of interest ๐ง
10.1. Reporting Spatial Metric
The reporting of spatial metrics shares a lot of aspects with RFC 2679 and RFC 2680 ๐ซถ The new ones are common to all the definitions and are mostly related to the reporting of the path and of methodology parameters that may bias raw results analysis. This section presents these specific parameters and then lists exhaustively the parameters that SHOULD be reported ๐
10.1.1. Path
End-to-end metrics can't determine the path of the measure, even though IPPM RFCs recommend it be reported (see section 3.8.4 of [RFC2679]) ๐ Spatial metrics vectors provide this path. The report of a spatial vector MUST include the points of interests involved: the sub-set of the routers of the path participating in the instantaneous measure.
10.1.2. Host Order
A spatial vector MUST order the points of interest according to their order in the path. The ordering MAY be based on information from the TTL in IPv4, the Hop Limit in IPv6, or the corresponding information in MPLS ๐ฆ
The report of a spatial vector MUST include the ordered list of the hosts involved in the instantaneous measure ๐
10.1.3. Timestamping Bias
The location of the point of interest inside a node influences the timestamping skew and accuracy ๐ As an example, consider that some internal machinery delays the timestamping up to three milliseconds. Then the minimal uncertainty reported be 3 ms if the internal delay is unknown at the time of the timestamping โฑ๏ธ
The report of a spatial vector MUST include the uncertainty of the timestamping compared to wire-time ๐ธ
10.1.4. Reporting Spatial One-Way Delay
The reporting includes information to report for one-way delay as in section 3.6 of [RFC2679]. The same applies for packet loss and ipdv ๐
10.2. Reporting One-to-Group Metric
All reporting rules described in [RFC2679] and [RFC2680] apply to the corresponding One-to-group metrics. The following are specific parameters that SHOULD be reported ๐
10.2.1. Path
As suggested by [RFC2679] and [RFC2680], the path traversed by the packet SHOULD be reported, if possible. For One-to-group metrics, the path tree between the source and the destinations, or the set of paths between the source and each destination, SHOULD be reported ๐บ๏ธ
The path tree might not be as valuable as individual paths, because an incomplete path might be difficult to identify in the path tree. For example, how many points of interest are reached by a packet traveling along an incomplete path? ๐ค
10.2.2. Group Size
The group size SHOULD be reported as one of the critical management parameters ๐ One-to-group metrics, unlike spatial metrics, don't require the ordering of the points of interests, because group members receive the packets in parallel โก
10.2.3. Timestamping Bias
It is the same as described in section 10.1.3.
10.2.4. Reporting One-to-group One-way Delay
It is the same as described in section 10.1.4.
10.2.5. Measurement Method ๐
Okay so, like we covered back in section 9, the measurement method changes how you analyze the results ๐ง so it SHOULD be reported ๐ no skipping it, bestie!
10.3. Metric Identification ๐
Every metric the IPPM WG defines gets its own unique identifier from IANA, assigned as per [RFC4148] and listed in the IANA-IPPM-METRICS-REGISTRY-MIB โจ so everyone can find the same metric by the same name.
10.4. Information Model ๐ง
This section lays out the pieces of info you need and how that info gets used for network performance analysis ๐ How the info actually gets reported is out of scope here, so don't look for it in this part ๐
The info model is built from the pieces introduced and explained in [RFC2679], [RFC2680], [RFC3393], and [RFC3432], which define the IPPM metrics. You also grab stuff from any of the sections called "Reporting the metric", "Methodology", and "Errors and Uncertainties" in those docs, wherever they exist ๐
Here are the info elements taken from the end-to-end metric definitions this memo refers to, plus the spatial and multicast ones it defines itself ๐ฆ
Packet_type, the Type-P of test packets (Type-P).Packet_length, a packet length in bits (L).Src_host, the IP address of the sender.Dst_host, the IP address of the receiver.Hosts_series: <H1, H2,..., Hn>, a list of points of interest taking part in the instantaneous measure. These are routers for spatial metrics, or receivers for one-to-group metrics.Loss_threshold, the threshold of infinite delay.Systematic_error, a constant delay between wire-time and timestamping.Calibration_error, the maximal uncertainty.Src_time, the sending time for a measured packet.Dst_time, the receiving time for a measured packet.Result_status, an indicator of whether a result is usable: 'Resource exhaustion', 'infinite', or 'lost' ๐ฆDelays_series, <dT1,..., dTn>, a list of delays.Losses_series, <B1, B2, ..., Bi, ..., Bn>, a list of Boolean values (spatial) or a set of Boolean values (one-to-group).Result_status_series, a list of result statuses.dT, a delay.Singleton_number, a number of singletons.Observation_duration, an observation duration.metric_identifier.
For each vector, this is the info that SHOULD be available to compute samples ๐งฎ
Packet_type;Packet_length;Src_host, the sender of the packet;Dst_host, the receiver of the packet. This only applies to spatial vectors;Hosts_series, not ordered for one-to-group;Src_time, the sending time for the measured packet;dT, the end-to-end one-way delay for the measured packet. This only applies to spatial vectors;Delays_series. This only applies to delays and ipdv vectors, and it's not ordered for one-to-group;Losses_series. This only applies to packet loss vectors, and it's not ordered for one-to-group;Result_status_series;Observation_duration, the difference between the time of the last singleton and the time of the first singleton.
Next up is the context info, meaning the measure and the points of interest, that SHOULD be available to compute samples ๐ธ
- Loss threshold;
- Systematic error, a constant delay between wire-time and timestamping;
- Calibration error, the maximal uncertainty.
A spatial sample or a one-to-group sample is a bunch of singletons that show the performance from the sender to one single point of interest ๐
For each sample, this is the info that SHOULD be available to compute statistics ๐
Packet_type;Packet_length;Src_host, the sender of the packet;Dst_host, the receiver of the packet;Start_time, the sending time of the first packet;Delays_series. This only applies to delays and ipdv samples;Losses_series. This only applies to packet loss samples;Result_status_series;Observation_duration, the difference between the time of the last singleton of the last sample and the time of the first singleton of the first sample.
The context info (measure and points of interest) that SHOULD be available to compute statistics is:
- Loss threshold;
- Systematic error, a constant delay between wire-time and timestamping;
- Calibration error, the maximal uncertainty;
And finally, for each statistic, this is the info that SHOULD be reported ๐ฏ
Result;Start_time;Duration;Result_status;Singleton_number, the number of singletons the statistic is computed on;
11. Security Considerations ๐
Spatial and one-to-group metrics are built on top of end-to-end metrics, so the security considerations from the one-way delay metric definitions in [RFC2679], the packet loss metric definitions in [RFC2680], and the IPDV metric definitions in [RFC3393] and [RFC3432] all apply to the metrics in this memo too ๐ก๏ธ
Someone could spoof the identity of a point of interest and send corrupt results on purpose, just to steer traffic engineering decisions remotely ๐ฑ
A point of interest could also corrupt its own results on purpose, again to steer traffic engineering decisions remotely ๐
11.1. Spatial Metrics ๐ฐ๏ธ
Generating malicious packets that systematically match the hash function used to detect packets may lead to a DoS attack against the point of reference ๐
Spatial measurement results carry the performance of each segment of a path, along with the identity of the nodes. An attacker could use this to find the weak spots in a network (for example, a congested node) that need the least extra attack traffic to exploit ๐ So monitoring info should be carried in a way that keeps unintended recipients from reading the measurement reports. The simple fix is to restrict access to the reports using encrypted sessions or secured networks ๐
11.2. One-to-Group Metrics ๐ฅ
Reporting measurement results from a huge number of probes may overload the resources of the reference point (network, network interfaces, computation capacity, and so on) ๐ฉ
When you set up a measurement, you have to account for the fact that more packets get routed than sent, and pick the test packet rate with that in mind ๐งฎ Collecting statistics from a huge number of probes may overload any combination of the network the measurement controller is attached to, its network interfaces, and its computation capacity ๐
One-to-group metric measurements should consider using source authentication protocols standardized in the MSEC group, to avoid fraudulent packets in the sampling interval ๐ต๏ธโโ๏ธ The test packet rate could be negotiated before any measurement session, to help avoid denial-of-service attacks ๐ง
A point of interest could also intentionally degrade its results to make the quality of the network look better on the branches of the multicast tree it's connected to ๐
12. Acknowledgments ๐ซถ
Lei would like to thank Professor Zhili Sun from CCSR, University of Surrey, for his guidance and helpful comments on this work ๐
13. IANA Considerations ๐ฆ
okay so the metrics in this memo got officially registered in the IANA IPPM METRICS REGISTRY, which is the registry set up in the first version of it [RFC4148] ๐โจ IANA also registered them in the IANA-IPPM-METRICS-REGISTRY-MIB, so here's the whole list, copied exactly ๐
ietfSpatialOneWayDelayVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Spatial-One-way-Delay-Vector"
REFERENCE
"RFC 5644, section 5.1."
:= { ianaIppmMetrics 52 }
ietfSpatialPacketLossVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Spatial-Packet-Loss-Vector"
REFERENCE
"RFC 5644, section 5.2."
:= { ianaIppmMetrics 53 }
ietfSpatialOneWayIpdvVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Spatial-One-way-ipdv-Vector"
REFERENCE
"RFC 5644, section 5.3."
:= { ianaIppmMetrics 54 }
ietfSegmentOneWayDelayStream OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Segment-One-way-Delay-Stream"
REFERENCE
"RFC 5644, section 6.1."
:= { ianaIppmMetrics 55 }
ietfSegmentPacketLossStream OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Segment-Packet-Loss-Stream"
REFERENCE
"RFC 5644, section 6.2."
:= { ianaIppmMetrics 56 }
ietfSegmentIpdvPrevStream OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Segment-ipdv-prev-Stream"
REFERENCE
"RFC 5644, section 6.3."
:= { ianaIppmMetrics 57 }
ietfSegmentIpdvMinStream OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-Segment-ipdv-min-Stream"
REFERENCE
"RFC 5644, section 6.4."
:= { ianaIppmMetrics 58 }
-- One-to-group metrics
ietfOneToGroupDelayVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Delay-Vector"
REFERENCE
"RFC 5644, section 7.1."
:= { ianaIppmMetrics 59 }
ietfOneToGroupPacketLossVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Packet-Loss-Vector"
REFERENCE
"RFC 5644, section 7.2."
:= { ianaIppmMetrics 60 }
ietfOneToGroupIpdvVector OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-ipdv-Vector"
REFERENCE
"RFC 5644, section 7.3."
:= { ianaIppmMetrics 61 }
-- One to group statistics
--
ietfOnetoGroupReceiverNMeanDelay OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Receiver-n-Mean-Delay"
REFERENCE
"RFC 5644, section 8.3.1."
:= { ianaIppmMetrics 62 }
ietfOneToGroupMeanDelay OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Mean-Delay"
REFERENCE
"RFC 5644, section 8.3.2."
:= { ianaIppmMetrics 63 }
ietfOneToGroupRangeMeanDelay OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Range-Mean-Delay"
REFERENCE
"RFC 5644, section 8.3.3."
:= { ianaIppmMetrics 64 }
ietfOneToGroupMaxMeanDelay OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Max-Mean-Delay"
REFERENCE
"RFC 5644, section 8.3.4."
:= { ianaIppmMetrics 65 }
ietfOneToGroupReceiverNLossRatio OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Receiver-n-Loss-Ratio"
REFERENCE
"RFC 5644, section 8.4.1."
:= { ianaIppmMetrics 66 }
--
ietfOneToGroupReceiverNCompLossRatio OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio"
REFERENCE
"RFC 5644, section 8.4.2."
:= { ianaIppmMetrics 67 }
ietfOneToGroupLossRatio OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Loss-Ratio"
REFERENCE
"RFC 5644, section 8.4.3."
:= { ianaIppmMetrics 68 }
--
ietfOneToGroupRangeLossRatio OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Range-Loss-Ratio"
REFERENCE
"RFC 5644, section 8.4.4."
:= { ianaIppmMetrics 69 }
ietfOneToGroupRangeDelayVariation OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Type-P-One-to-group-Range-Delay-Variation"
REFERENCE
"RFC 5644, section 8.5.1."
:= { ianaIppmMetrics 70 }
--
14. References ๐
14.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. ๐
- [RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Delay Metric for IPPM", RFC 2679, September 1999. ๐ธ
- [RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Packet Loss Metric for IPPM", RFC 2680, September 1999. ๐
- [RFC3393] Demichelis, C. and P. Chimento, "IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)", RFC 3393, November 2002. โจ
- [RFC4148] Stephan, E., "IP Performance Metrics (IPPM) Metrics Registry", BCP 108, RFC 4148, August 2005. ๐ง
14.2. Informative References
- [RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, "Framework for IP Performance Metrics", RFC 2330, May 1998. ๐ฆ
- [RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network performance measurement with periodic streams", RFC 3432, November 2002. ๐
- [SPATIAL] Morton, A. and E. Stephan, "Spatial Composition of Metrics", Work in Progress, June 2009. ๐
Authors' Addresses ๐
Stephan Emile
France Telecom Division R&D
2 avenue Pierre Marzin
Lannion F-22307
France
Fax: +33 2 96 05 18 52
EMail: emile.stephan@orange-ftgroup.com
Lei Liang
CCSR, University of Surrey
Guildford
Surrey GU2 7XH
UK
Fax: +44 1483 683641
EMail: L.Liang@surrey.ac.uk
Al Morton
200 Laurel Ave. South
Middletown, NJ 07748
USA
Phone: +1 732 420 1571
EMail: acmorton@att.com
and that's the whole RFC, bestie!! ๐๐ the people who wrote this are literally the reason we can measure the internet this precisely ๐ญ๐ซถ
๐ฆ where this page comes from
- ietf: rfc5644 2009-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms