draft-ietf-rmcat-sbd-04.txt | draft-ietf-rmcat-sbd-05.txt | |||
---|---|---|---|---|
RTP Media Congestion Avoidance Techniques D. Hayes, Ed. | RTP Media Congestion Avoidance Techniques D. Hayes, Ed. | |||
Internet-Draft University of Oslo | Internet-Draft S. Ferlin | |||
Intended status: Experimental S. Ferlin | Intended status: Experimental Simula Research Laboratory | |||
Expires: September 22, 2016 Simula Research Laboratory | Expires: March 21, 2017 M. Welzl | |||
M. Welzl | ||||
K. Hiorth | K. Hiorth | |||
University of Oslo | University of Oslo | |||
March 21, 2016 | September 17, 2016 | |||
Shared Bottleneck Detection for Coupled Congestion Control for RTP | Shared Bottleneck Detection for Coupled Congestion Control for RTP | |||
Media. | Media. | |||
draft-ietf-rmcat-sbd-04 | draft-ietf-rmcat-sbd-05 | |||
Abstract | Abstract | |||
This document describes a mechanism to detect whether end-to-end data | This document describes a mechanism to detect whether end-to-end data | |||
flows share a common bottleneck. It relies on summary statistics | flows share a common bottleneck. It relies on summary statistics | |||
that are calculated by a data receiver based on continuous | that are calculated based on continuous measurements and used as | |||
measurements and regularly fed to a grouping algorithm that runs | input to a grouping algorithm that runs wherever the knowledge is | |||
wherever the knowledge is needed. This mechanism complements the | needed. This mechanism complements the coupled congestion control | |||
coupled congestion control mechanism in draft-ietf-rmcat-coupled-cc. | mechanism in draft-ietf-rmcat-coupled-cc. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on September 22, 2016. | This Internet-Draft will expire on March 21, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 23 ¶ | skipping to change at page 2, line 22 ¶ | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. The signals . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. The signals . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1.1. Packet Loss . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Packet Loss . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1.2. Packet Delay . . . . . . . . . . . . . . . . . . . . 3 | 1.1.2. Packet Delay . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1.3. Path Lag . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1.3. Path Lag . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Parameters and their Effect . . . . . . . . . . . . . . . 7 | 2.1. Parameters and their Effect . . . . . . . . . . . . . . . 7 | |||
2.2. Recommended Parameter Values . . . . . . . . . . . . . . 8 | 2.2. Recommended Parameter Values . . . . . . . . . . . . . . 8 | |||
3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1. SBD feedback requirements . . . . . . . . . . . . . . . . 9 | 3.1. SBD feedback requirements . . . . . . . . . . . . . . . . 9 | |||
3.1.1. Feedback when all the logic is placed at | 3.1.1. Feedback when all the logic is placed at the sender . 9 | |||
the sender . . . . . . . . . . . . . . . . . . . . . 10 | 3.1.2. Feedback when the statistics are calculated at the | |||
3.1.2. Feedback when the statistics are | receiver and SBD performed at the sender . . . . . . 10 | |||
calculated at the receiver and SBD at | 3.1.3. Feedback when bottlenecks can be determined at both | |||
the sender . . . . . . . . . . . . . . . . . . . . . 10 | senders and receivers . . . . . . . . . . . . . . . . 10 | |||
3.1.3. Feedback when bottlenecks can be | ||||
determined at both senders and | ||||
receivers . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
3.2. Key metrics and their calculation . . . . . . . . . . . . 11 | 3.2. Key metrics and their calculation . . . . . . . . . . . . 11 | |||
3.2.1. Mean delay . . . . . . . . . . . . . . . . . . . . . 11 | 3.2.1. Mean delay . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.2.2. Skewness Estimate . . . . . . . . . . . . . . . . . . 11 | 3.2.2. Skewness Estimate . . . . . . . . . . . . . . . . . . 11 | |||
3.2.3. Variability Estimate . . . . . . . . . . . . . . . . 12 | 3.2.3. Variability Estimate . . . . . . . . . . . . . . . . 12 | |||
3.2.4. Oscillation Estimate . . . . . . . . . . . . . . . . 12 | 3.2.4. Oscillation Estimate . . . . . . . . . . . . . . . . 12 | |||
3.2.5. Packet loss . . . . . . . . . . . . . . . . . . . . . 13 | 3.2.5. Packet loss . . . . . . . . . . . . . . . . . . . . . 13 | |||
3.3. Flow Grouping . . . . . . . . . . . . . . . . . . . . . . 13 | 3.3. Flow Grouping . . . . . . . . . . . . . . . . . . . . . . 13 | |||
3.3.1. Flow Grouping Algorithm . . . . . . . . . . . . . . . 13 | 3.3.1. Flow Grouping Algorithm . . . . . . . . . . . . . . . 13 | |||
3.3.2. Using the flow group signal . . . . . . . . . . . . . 15 | 3.3.2. Using the flow group signal . . . . . . . . . . . . . 15 | |||
3.4. Removing Noise from the Estimates . . . . . . . . . . . . 15 | 3.4. Removing Noise from the Estimates . . . . . . . . . . . . 15 | |||
3.4.1. Oscillation noise . . . . . . . . . . . . . . . . . . 15 | 3.4.1. Oscillation noise . . . . . . . . . . . . . . . . . . 15 | |||
3.4.2. Clock skew . . . . . . . . . . . . . . . . . . . . . 16 | 3.4.2. Clock skew . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.5. Reducing lag and Improving Responsiveness . . . . 16 | 3.5. Reducing lag and Improving Responsiveness . . . . . . . . 16 | |||
3.5.1. Improving the response of the skewness estimate . 17 | 3.5.1. Improving the response of the skewness estimate . . . 16 | |||
3.5.2. Improving the response of the variability estimate 19 | 3.5.2. Improving the response of the variability estimate . 19 | |||
4. Measuring OWD . . . . . . . . . . . . . . . . . . . . . . . . 19 | 4. Measuring OWD . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
4.1. Time stamp resolution . . . . . . . . . . . . . . . . . . 19 | 4.1. Time stamp resolution . . . . . . . . . . . . . . . . . . 19 | |||
5. Implementation status . . . . . . . . . . . . . . . . . . . . 20 | 5. Expected feedback from experiments . . . . . . . . . . . . . 20 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | |||
9. Change history . . . . . . . . . . . . . . . . . . . . . . . 20 | 9. Change history . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 21 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 21 | 10.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
1. Introduction | 1. Introduction | |||
In the Internet, it is not normally known if flows (e.g., TCP | In the Internet, it is not normally known if flows (e.g., TCP | |||
connections or UDP data streams) traverse the same bottlenecks. Even | connections or UDP data streams) traverse the same bottlenecks. Even | |||
flows that have the same sender and receiver may take different paths | flows that have the same sender and receiver may take different paths | |||
and share a bottleneck or not. Flows that share a bottleneck link | and may or may not share a bottleneck. Flows that share a bottleneck | |||
usually compete with one another for their share of the capacity. | link usually compete with one another for their share of the | |||
This competition has the potential to increase packet loss and | capacity. This competition has the potential to increase packet loss | |||
delays. This is especially relevant for interactive applications | and delays. This is especially relevant for interactive applications | |||
that communicate simultaneously with multiple peers (such as multi- | that communicate simultaneously with multiple peers (such as multi- | |||
party video). For RTP media applications such as RTCWEB, | party video). For RTP media applications such as RTCWEB, | |||
[I-D.ietf-rmcat-coupled-cc] describes a scheme that combines the | [I-D.ietf-rmcat-coupled-cc] describes a scheme that combines the | |||
congestion controllers of flows in order to honor their priorities | congestion controllers of flows in order to honor their priorities | |||
and avoid unnecessary packet loss as well as delay. This mechanism | and avoid unnecessary packet loss as well as delay. This mechanism | |||
relies on some form of Shared Bottleneck Detection (SBD); here, a | relies on some form of Shared Bottleneck Detection (SBD); here, a | |||
measurement-based SBD approach is described. | measurement-based SBD approach is described. | |||
1.1. The signals | 1.1. The signals | |||
The current Internet is unable to explicitly inform endpoints as to | The current Internet is unable to explicitly inform endpoints as to | |||
which flows share bottlenecks, so endpoints need to infer this from | which flows share bottlenecks, so endpoints need to infer this from | |||
whatever information is available to them. The mechanism described | whatever information is available to them. The mechanism described | |||
here currently utilises packet loss and packet delay, but is not | here currently utilizes packet loss and packet delay, but is not | |||
restricted to these. | restricted to these. As ECN becomes more prevalent it too will | |||
become a valuable base signal. | ||||
1.1.1. Packet Loss | 1.1.1. Packet Loss | |||
Packet loss is often a relatively rare signal. Therefore, on its own | Packet loss is often a relatively rare signal. Therefore, on its own | |||
it is of limited use for SBD, however, it is a valuable supplementary | it is of limited use for SBD, however, it is a valuable supplementary | |||
measure when it is more prevalent. | measure when it is more prevalent. | |||
1.1.2. Packet Delay | 1.1.2. Packet Delay | |||
End-to-end delay measurements include noise from every device along | End-to-end delay measurements include noise from every device along | |||
the path in addition to the delay perturbation at the bottleneck | the path in addition to the delay perturbation at the bottleneck | |||
device. The noise is often significantly increased if the round-trip | device. The noise is often significantly increased if the round-trip | |||
time is used. The cleanest signal is obtained by using One-Way-Delay | time is used. The cleanest signal is obtained by using One-Way-Delay | |||
(OWD). | (OWD). | |||
Measuring absolute OWD is difficult since it requires both the sender | Measuring absolute OWD is difficult since it requires both the sender | |||
and receiver clocks to be synchronised. However, since the | and receiver clocks to be synchronized. However, since the | |||
statistics being collected are relative to the mean OWD, a relative | statistics being collected are relative to the mean OWD, a relative | |||
OWD measurement is sufficient. Clock skew is not usually significant | OWD measurement is sufficient. Clock skew is not usually significant | |||
over the time intervals used by this SBD mechanism (see [RFC6817] A.2 | over the time intervals used by this SBD mechanism (see [RFC6817] A.2 | |||
for a discussion on clock skew and OWD measurements). However, in | for a discussion on clock skew and OWD measurements). However, in | |||
circumstances where it is significant, Section 3.4.2 outlines a way | circumstances where it is significant, Section 3.4.2 outlines a way | |||
of adjusting the calculations to cater for it. | of adjusting the calculations to cater for it. | |||
Each packet arriving at the bottleneck buffer may experience very | Each packet arriving at the bottleneck buffer may experience very | |||
different queue lengths, and therefore different waiting times. A | different queue lengths, and therefore different waiting times. A | |||
single OWD sample does not, therefore, characterize the path well. | single OWD sample does not, therefore, characterize the path well. | |||
skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 32 ¶ | |||
increase the responsiveness of the SBD mechanism. If F is | increase the responsiveness of the SBD mechanism. If F is | |||
too small, statistics will be too noisy. | too small, statistics will be too noisy. | |||
c_s c_s is the threshold in skew_est used for determining whether | c_s c_s is the threshold in skew_est used for determining whether | |||
a flow is transiting a bottleneck or not. It should be | a flow is transiting a bottleneck or not. It should be | |||
slightly negative so that a very lightly loaded path does not | slightly negative so that a very lightly loaded path does not | |||
give a false indication. Setting c_s more negative makes the | give a false indication. Setting c_s more negative makes the | |||
SBD mechanism less sensitive to transient and slight | SBD mechanism less sensitive to transient and slight | |||
bottlenecks. | bottlenecks. | |||
c_h c_h adds hysteresis to the botteneck determination. It | c_h c_h adds hysteresis to the bottleneck determination. It | |||
should be large enough to avoid constant switching in the | should be large enough to avoid constant switching in the | |||
determination, but low enough to ensure that grouping is not | determination, but low enough to ensure that grouping is not | |||
attempted when there is no bottleneck and the delay and loss | attempted when there is no bottleneck and the delay and loss | |||
signals cannot be relied upon. | signals cannot be relied upon. | |||
p_v p_v determines the sensitivity of freq_est to noise. Making | p_v p_v determines the sensitivity of freq_est to noise. Making | |||
it smaller will yield higher but noisier values for freq_est. | it smaller will yield higher but noisier values for freq_est. | |||
Making it too large will render it ineffective for | Making it too large will render it ineffective for | |||
determining groups. | determining groups. | |||
skipping to change at page 8, line 34 ¶ | skipping to change at page 8, line 34 ¶ | |||
oscillation (estimate freq_est, see Section 3.2.4) | oscillation (estimate freq_est, see Section 3.2.4) | |||
with packet loss (estimate pkt_loss, see Section 3.2.5) used as a | with packet loss (estimate pkt_loss, see Section 3.2.5) used as a | |||
supplementary statistic. | supplementary statistic. | |||
Summary statistics help to address both the noise and the path lag | Summary statistics help to address both the noise and the path lag | |||
problems by describing the general shape over a relatively long | problems by describing the general shape over a relatively long | |||
period of time. Each summary statistic portrays a "view" of the | period of time. Each summary statistic portrays a "view" of the | |||
bottleneck link characteristics, and when used together, they provide | bottleneck link characteristics, and when used together, they provide | |||
a robust discrimination for grouping flows. They can be signalled | a robust discrimination for grouping flows. An RTP Media device may | |||
from a receiver, which measures the OWD and calculates the summary | be both a sender and a receiver and SBD can be performed at either a | |||
statistics, to a sender, which is the entity that is transmitting the | sender or a receiver or both. | |||
media stream. An RTP Media device may be both a sender and a | ||||
receiver. SBD can be performed at either a sender or a receiver or | ||||
both. | ||||
+----+ | +----+ | |||
| H2 | | | H2 | | |||
+----+ | +----+ | |||
| | | | |||
| L2 | | L2 | |||
| | | | |||
+----+ L1 | L3 +----+ | +----+ L1 | L3 +----+ | |||
| H1 |------|------| H3 | | | H1 |------|------| H3 | | |||
+----+ +----+ | +----+ +----+ | |||
skipping to change at page 10, line 12 ¶ | skipping to change at page 9, line 43 ¶ | |||
both senders and receivers (beyond the current scope, but allows | both senders and receivers (beyond the current scope, but allows | |||
cooperative detection of bottlenecks). | cooperative detection of bottlenecks). | |||
3.1.1. Feedback when all the logic is placed at the sender | 3.1.1. Feedback when all the logic is placed at the sender | |||
Having the sender calculate the summary statistics and determine the | Having the sender calculate the summary statistics and determine the | |||
shared bottlenecks based on them has the advantage of placing most of | shared bottlenecks based on them has the advantage of placing most of | |||
the functionality in one place -- the sender. | the functionality in one place -- the sender. | |||
The sender requires precise accurate OWD measurements for every | The sender requires precise accurate OWD measurements for every | |||
packet, along with the proportion of packets lost over the interval | packet, along with an indication of lost packets (or the proportion | |||
T, to be sent from the receivers to the senders every T. | of packets lost over the interval T). The mechanism performs its | |||
calculations every T and requires measurements to be available for | ||||
this. | ||||
An initialisation message may be required to agree on the feedback | An initialization message may be required to agree on the feedback | |||
interval. | interval. | |||
3.1.2. Feedback when the statistics are calculated at the receiver and | 3.1.2. Feedback when the statistics are calculated at the receiver and | |||
SBD at the sender | SBD performed at the sender | |||
This scenario minimises feedback, but requires receivers to send | This scenario minimizes feedback, but requires receivers to send | |||
selected summary statistics at an agreed regular interval. We | selected summary statistics at an agreed regular interval. We | |||
envisage the following exchange of information to initialise the | envisage the following exchange of information to initialize the | |||
system: | system: | |||
o An initialization message from the sender to the receiver will | o An initialization message from the sender to the receiver will | |||
contain the following information: | contain the following information: | |||
* A protocol identifier (SBD=01). This is to future proof the | * A protocol identifier (SBD=01). This is to future proof the | |||
message exchange so that potential advances in SBD technology | message exchange so that potential advances in SBD technology | |||
can be easily deployed. All following initialisation elements | can be easily deployed. All following initialization elements | |||
relate to the mechanism outlined in this document which will | relate to the mechanism outlined in this document which will | |||
have the identifier SBD=01. | have the identifier SBD=01. | |||
* A list of which key metrics should be collected and relayed | * A list of which key metrics should be collected and relayed | |||
back to the sender out of a possibly extensible set (pkt_loss, | back to the sender out of a possibly extensible set (pkt_loss, | |||
var_est, skew_est, freq_est). The grouping algorithm described | var_est, skew_est, freq_est). The grouping algorithm described | |||
in this document requires all four of these metrics, and | in this document requires all four of these metrics, and | |||
receivers MUST be able to provide them, but future algorithms | receivers MUST be able to provide them, but future algorithms | |||
may be able to exploit other metrics (e.g. metrics based on | may be able to exploit other metrics (e.g. metrics based on | |||
explicit network signals). | explicit network signals). | |||
* The values of T, N, M, and the necessary resolution and | * The values of T, N, M, and the necessary resolution and | |||
precision of the relayed statistics. | precision of the relayed statistics. | |||
o A response message from the receiver acknowledges this message | o A response message from the receiver acknowledges this message | |||
with a list of key metrics it supports (subset of the senders | with a list of key metrics it supports (subset of the senders | |||
list) and is able to relay back to the sender. | list) and is able to relay back to the sender. | |||
This initialisation exchange may be repeated to finalize the agreed | This initialization exchange may be repeated to finalize the agreed | |||
metrics should not all be supported by all receivers. | metrics should not all be supported by all receivers. | |||
After initialisation the agreed summary statistics will be fed back | After initialization the agreed summary statistics will be fed back | |||
to the sender every T. | to the sender every T. | |||
3.1.3. Feedback when bottlenecks can be determined at both senders and | 3.1.3. Feedback when bottlenecks can be determined at both senders and | |||
receivers | receivers | |||
This type of mechanism is currently beyond the scope of SBD in RMCAT. | This type of mechanism is currently beyond the scope of SBD in RMCAT. | |||
It is mentioned here to ensure more advanced sender/receiver | It is mentioned here to ensure more advanced sender/receiver | |||
cooperative shared bottleneck determination mechanisms remain | cooperative shared bottleneck determination mechanisms remain | |||
possible in the future. | possible in the future. | |||
It is envisaged that such a mechanism would be initialised in a | It is envisaged that such a mechanism would be initialized in a | |||
similar manner to that described in Section 3.1.2. | similar manner to that described in Section 3.1.2. | |||
After initialisation both summary statistics and shared bottleneck | After initialization both summary statistics and shared bottleneck | |||
determinations will need to be exchanged every T. | determinations should be exchanged every T. | |||
3.2. Key metrics and their calculation | 3.2. Key metrics and their calculation | |||
Measurements are calculated over a base interval, T and summarized | Measurements are calculated over a base interval, T and summarized | |||
over N or M such intervals. All summary statistics can be calculated | over N or M such intervals. All summary statistics can be calculated | |||
incrementally. | incrementally. | |||
3.2.1. Mean delay | 3.2.1. Mean delay | |||
The mean delay is not a useful signal for comparisons between flows | The mean delay is not a useful signal for comparisons between flows | |||
skipping to change at page 12, line 8 ¶ | skipping to change at page 11, line 43 ¶ | |||
3.2.2. Skewness Estimate | 3.2.2. Skewness Estimate | |||
Skewness is difficult to calculate efficiently and accurately. | Skewness is difficult to calculate efficiently and accurately. | |||
Ideally it should be calculated over the entire period (M * T) from | Ideally it should be calculated over the entire period (M * T) from | |||
the mean OWD over that period. However this would require storing | the mean OWD over that period. However this would require storing | |||
every delay measurement over the period. Instead, an estimate is | every delay measurement over the period. Instead, an estimate is | |||
made over M * T based on a calculation every T using the previous T's | made over M * T based on a calculation every T using the previous T's | |||
calculation of mean_delay. | calculation of mean_delay. | |||
The base for the skewness calculation is estimated using a counter | The base for the skewness calculation is estimated using a counter | |||
initialised every T. It increments for one way delay samples (OWD) | initialized every T. It increments for one way delay samples (OWD) | |||
below the mean and decrements for OWD above the mean. So for each | below the mean and decrements for OWD above the mean. So for each | |||
OWD sample: | OWD sample: | |||
if (OWD < mean_delay) skew_base_T++ | if (OWD < mean_delay) skew_base_T++ | |||
if (OWD > mean_delay) skew_base_T-- | if (OWD > mean_delay) skew_base_T-- | |||
The mean_delay does not include the mean of the current T interval to | The mean_delay does not include the mean of the current T interval to | |||
enable it to be calculated iteratively. | enable it to be calculated iteratively. | |||
skipping to change at page 12, line 50 ¶ | skipping to change at page 12, line 36 ¶ | |||
var_est = MAD_MT = sum_MT(var_base_T)/num_MT(OWD) | var_est = MAD_MT = sum_MT(var_base_T)/num_MT(OWD) | |||
For calculation of freq_est p_v=0.7 | For calculation of freq_est p_v=0.7 | |||
For the grouping threshold p_mad=0.1 | For the grouping threshold p_mad=0.1 | |||
3.2.4. Oscillation Estimate | 3.2.4. Oscillation Estimate | |||
An estimate of the low frequency oscillation of the delay signal is | An estimate of the low frequency oscillation of the delay signal is | |||
calculated by counting and normalising the significant mean, | calculated by counting and normalizing the significant mean, | |||
E_T(OWD), crossings of mean_delay: | E_T(OWD), crossings of mean_delay: | |||
freq_est = number_of_crossings / N | freq_est = number_of_crossings / N | |||
where we define a significant mean crossing as a crossing that | where we define a significant mean crossing as a crossing that | |||
extends p_v * var_est from mean_delay. In our experiments we | extends p_v * var_est from mean_delay. In our experiments we | |||
have found that p_v = 0.7 is a good value. | have found that p_v = 0.7 is a good value. | |||
Freq_est is a number between 0 and 1. Freq_est can be approximated | Freq_est is a number between 0 and 1. Freq_est can be approximated | |||
incrementally as follows: | incrementally as follows: | |||
skipping to change at page 15, line 33 ¶ | skipping to change at page 15, line 16 ¶ | |||
Grouping decisions can be made every T from the second T, however | Grouping decisions can be made every T from the second T, however | |||
they will not attain their full design accuracy until after the | they will not attain their full design accuracy until after the | |||
2*N'th T interval. We recommend that grouping decisions are not made | 2*N'th T interval. We recommend that grouping decisions are not made | |||
until 2*M T intervals. | until 2*M T intervals. | |||
Network conditions, and even the congestion controllers, can cause | Network conditions, and even the congestion controllers, can cause | |||
bottlenecks to fluctuate. A coupled congestion controller MAY decide | bottlenecks to fluctuate. A coupled congestion controller MAY decide | |||
only to couple groups that remain stable, say grouped together 90% of | only to couple groups that remain stable, say grouped together 90% of | |||
the time, depending on its objectives. Recommendations concerning | the time, depending on its objectives. Recommendations concerning | |||
this are beyond the scope of this draft and will be specific to the | this are beyond the scope of this document and will be specific to | |||
coupled congestion controllers objectives. | the coupled congestion controllers objectives. | |||
3.4. Removing Noise from the Estimates | 3.4. Removing Noise from the Estimates | |||
The following describe small changes to the calculation of the key | The following describe small changes to the calculation of the key | |||
metrics that help remove noise from them. Currently these "tweaks" | metrics that help remove noise from them. These "tweaks" are | |||
are described separately to keep the main description succinct. In | described separately to keep the main description succinct. | |||
future revisions of the draft these enhancements may replace the | ||||
original key metric calculations. | ||||
3.4.1. Oscillation noise | 3.4.1. Oscillation noise | |||
When a path has no bottleneck, var_est will be very small and the | When a path has no bottleneck, var_est will be very small and the | |||
recorded significant mean crossings will be the result of path noise. | recorded significant mean crossings will be the result of path noise. | |||
Thus up to N-1 meaningless mean crossings can be a source of error at | Thus up to N-1 meaningless mean crossings can be a source of error at | |||
the point a link becomes a bottleneck and flows traversing it begin | the point a link becomes a bottleneck and flows traversing it begin | |||
to be grouped. | to be grouped. | |||
To remove this source of noise from freq_est: | To remove this source of noise from freq_est: | |||
skipping to change at page 18, line 14 ¶ | skipping to change at page 18, line 14 ¶ | |||
To calculate this weighted skew_est incrementally: | To calculate this weighted skew_est incrementally: | |||
Notation: F_ - flat portion, D_ - declining portion, W_ - weighted | Notation: F_ - flat portion, D_ - declining portion, W_ - weighted | |||
component | component | |||
Initialise: sum_skewbase = 0, F_skewbase=0, W_D_skewbase=0 | Initialise: sum_skewbase = 0, F_skewbase=0, W_D_skewbase=0 | |||
skewbase_hist = buffer length M initialize to 0 | skewbase_hist = buffer length M initialize to 0 | |||
numsampT = buffer length M initialzed to 0 | numsampT = buffer length M initialized to 0 | |||
Steps per iteration: | Steps per iteration: | |||
1. old_skewbase = skewbase_hist(M) | 1. old_skewbase = skewbase_hist(M) | |||
2. old_numsampT = numsampT(M) | 2. old_numsampT = numsampT(M) | |||
3. cycle(skewbase_hist) | 3. cycle(skewbase_hist) | |||
4. cycle(numsampT) | 4. cycle(numsampT) | |||
skipping to change at page 19, line 36 ¶ | skipping to change at page 19, line 36 ¶ | |||
Var_est can be calculated incrementally in the same way as skew_est | Var_est can be calculated incrementally in the same way as skew_est | |||
in Section 3.5.1. However, note that the buffer numsampT is used for | in Section 3.5.1. However, note that the buffer numsampT is used for | |||
both calculations so the operations on it should not be repeated. | both calculations so the operations on it should not be repeated. | |||
4. Measuring OWD | 4. Measuring OWD | |||
This section discusses the OWD measurements required for this | This section discusses the OWD measurements required for this | |||
algorithm to detect shared bottlenecks. | algorithm to detect shared bottlenecks. | |||
The SBD mechanism described in this draft relies on differences | The SBD mechanism described in this document relies on differences | |||
between OWD measurements to avoid the practical problems with | between OWD measurements to avoid the practical problems with | |||
measuring absolute OWD (see [Hayes-LCN14] section IIIC). Since all | measuring absolute OWD (see [Hayes-LCN14] section IIIC). Since all | |||
summary statistics are relative to the mean OWD and sender/receiver | summary statistics are relative to the mean OWD and sender/receiver | |||
clock offsets should be approximately constant over the measurement | clock offsets should be approximately constant over the measurement | |||
periods, the offset is subtracted out in the calculation. | periods, the offset is subtracted out in the calculation. | |||
4.1. Time stamp resolution | 4.1. Time stamp resolution | |||
The SBD mechanism requires timing information precise enough to be | The SBD mechanism requires timing information precise enough to be | |||
able to make comparisons. As a rule of thumb, the time resolution | able to make comparisons. As a rule of thumb, the time resolution | |||
should be less than one hundredth of a typical path's range of | should be less than one hundredth of a typical path's range of | |||
delays. In general, the lower the time resolution, the more care | delays. In general, the lower the time resolution, the more care | |||
that needs to be taken to ensure rounding errors do not bias the | that needs to be taken to ensure rounding errors do not bias the | |||
skewness calculation. | skewness calculation. | |||
Typical RTP media flows use sub-millisecond timers, which should be | Typical RTP media flows use sub-millisecond timers, which should be | |||
adequate in most situations. | adequate in most situations. | |||
5. Implementation status | 5. Expected feedback from experiments | |||
The University of Oslo is currently working on an implementation of | The algorithm described in this memo has so far been evaluated using | |||
this in the Chromium browser. | simulations. Real network tests using the proposed congestion | |||
control algorithms will help confirm the default parameter choice. | ||||
For example, the time interval T may need to be made longer if the | ||||
packet rate is very low. Implementers and testers are invited to | ||||
document their findings in an Internet draft. | ||||
6. Acknowledgements | 6. Acknowledgments | |||
This work was part-funded by the European Community under its Seventh | This work was part-funded by the European Community under its Seventh | |||
Framework Programme through the Reducing Internet Transport Latency | Framework Programme through the Reducing Internet Transport Latency | |||
(RITE) project (ICT-317700). The views expressed are solely those of | (RITE) project (ICT-317700). The views expressed are solely those of | |||
the authors. | the authors. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This memo includes no request to IANA. | This memo includes no request to IANA. | |||
skipping to change at page 20, line 38 ¶ | skipping to change at page 20, line 42 ¶ | |||
Non-authenticated RTCP packets carrying shared bottleneck indications | Non-authenticated RTCP packets carrying shared bottleneck indications | |||
and summary statistics could allow attackers to alter the bottleneck | and summary statistics could allow attackers to alter the bottleneck | |||
sharing characteristics for private gain or disruption of other | sharing characteristics for private gain or disruption of other | |||
parties communication. | parties communication. | |||
9. Change history | 9. Change history | |||
Changes made to this document: | Changes made to this document: | |||
WG-04->WG-05 : Fix ToC formatting. Add section on expected | ||||
feedback from experiments replacing short section | ||||
on implementation status. Added comment on ECN as | ||||
a signal. Clarification of lost packet signaling. | ||||
Change term "draft" to "document" where | ||||
appropriate. American spelling. Some tightening | ||||
of the text. | ||||
WG-03->WG-04 : Add M to terminology table, suggest skew_est based | WG-03->WG-04 : Add M to terminology table, suggest skew_est based | |||
on previous T and no freq_est in clock skew | on previous T and no freq_est in clock skew | |||
section, feedback requirements as a separate sub | section, feedback requirements as a separate sub | |||
section. | section. | |||
WG-02->WG-03 : Correct misspelled author | WG-02->WG-03 : Correct misspelled author | |||
WG-01->WG-02 : Removed ambiguity associated with the term | WG-01->WG-02 : Removed ambiguity associated with the term | |||
"congestion". Expanded the description of | "congestion". Expanded the description of | |||
initialisation messages. Removed PDV metric. | initialisation messages. Removed PDV metric. | |||
skipping to change at page 22, line 29 ¶ | skipping to change at page 23, line 4 ¶ | |||
<http://www.rfc-editor.org/info/rfc6817>. | <http://www.rfc-editor.org/info/rfc6817>. | |||
[Zhang-Infocom02] | [Zhang-Infocom02] | |||
Zhang, L., Liu, Z., and H. Xia, "Clock synchronization | Zhang, L., Liu, Z., and H. Xia, "Clock synchronization | |||
algorithms for network measurements", Proc. the IEEE | algorithms for network measurements", Proc. the IEEE | |||
International Conference on Computer Communications | International Conference on Computer Communications | |||
(INFOCOM) pp160-169, September 2002, | (INFOCOM) pp160-169, September 2002, | |||
<http://dx.doi.org/10.1109/INFCOM.2002.1019257>. | <http://dx.doi.org/10.1109/INFCOM.2002.1019257>. | |||
Authors' Addresses | Authors' Addresses | |||
David Hayes (editor) | David Hayes (editor) | |||
University of Oslo | Simula Research Laboratory | |||
PO Box 1080 Blindern | P.O. Box 134 | |||
Oslo N-0316 | Lysaker 1325 | |||
Norway | Norway | |||
Phone: +47 2284 5566 | Phone: +47 2284 5566 | |||
Email: davihay@ifi.uio.no | Email: davidh@simula.no | |||
Simone Ferlin | Simone Ferlin | |||
Simula Research Laboratory | Simula Research Laboratory | |||
P.O.Box 134 | P.O.Box 134 | |||
Lysaker 1325 | Lysaker 1325 | |||
Norway | Norway | |||
Phone: +47 4072 0702 | Phone: +47 4072 0702 | |||
Email: ferlin@simula.no | Email: ferlin@simula.no | |||
Michael Welzl | Michael Welzl | |||
University of Oslo | University of Oslo | |||
PO Box 1080 Blindern | PO Box 1080 Blindern | |||
Oslo N-0316 | Oslo N-0316 | |||
Norway | Norway | |||
Phone: +47 2285 2420 | Phone: +47 2285 2420 | |||
Email: michawe@ifi.uio.no | Email: michawe@ifi.uio.no | |||
Kristian Hiorth | Kristian Hiorth | |||
End of changes. 38 change blocks. | ||||
70 lines changed or deleted | 77 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |