draft-ietf-rmcat-sbd-07.txt | draft-ietf-rmcat-sbd-08.txt | |||
---|---|---|---|---|
RTP Media Congestion Avoidance Techniques D. Hayes, Ed. | RTP Media Congestion Avoidance Techniques D. Hayes, Ed. | |||
Internet-Draft S. Ferlin | Internet-Draft S. Ferlin | |||
Intended status: Experimental Simula Research Laboratory | Intended status: Experimental Simula Research Laboratory | |||
Expires: December 10, 2017 M. Welzl | Expires: January 4, 2018 M. Welzl | |||
K. Hiorth | K. Hiorth | |||
University of Oslo | University of Oslo | |||
June 8, 2017 | July 3, 2017 | |||
Shared Bottleneck Detection for Coupled Congestion Control for RTP | Shared Bottleneck Detection for Coupled Congestion Control for RTP | |||
Media. | Media. | |||
draft-ietf-rmcat-sbd-07 | draft-ietf-rmcat-sbd-08 | |||
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 based on continuous measurements and used as | that are calculated based on continuous measurements and used as | |||
input to a grouping algorithm that runs wherever the knowledge is | input to a grouping algorithm that runs wherever the knowledge is | |||
needed. This mechanism complements the coupled congestion control | needed. This mechanism complements the coupled congestion control | |||
mechanism in draft-ietf-rmcat-coupled-cc. | mechanism in draft-ietf-rmcat-coupled-cc. | |||
skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
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 December 10, 2017. | This Internet-Draft will expire on January 4, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 16 ¶ | skipping to change at page 2, line 16 ¶ | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. The basic mechanism . . . . . . . . . . . . . . . . . . . 3 | 1.1. The basic mechanism . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. The signals . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. The signals . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2.1. Packet loss . . . . . . . . . . . . . . . . . . . . . 3 | 1.2.1. Packet loss . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2.2. Packet delay . . . . . . . . . . . . . . . . . . . . 3 | 1.2.2. Packet delay . . . . . . . . . . . . . . . . . . . . 4 | |||
1.2.3. Path lag . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2.3. Path lag . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Parameters and their effect . . . . . . . . . . . . . . . 7 | 2.1. Parameters and their effect . . . . . . . . . . . . . . . 6 | |||
2.2. Recommended parameter values . . . . . . . . . . . . . . 8 | 2.2. Recommended parameter values . . . . . . . . . . . . . . 7 | |||
3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.1. SBD feedback requirements . . . . . . . . . . . . . . . . 9 | 3.1. SBD feedback requirements . . . . . . . . . . . . . . . . 8 | |||
3.1.1. Feedback when all the logic is placed at the sender . 9 | 3.1.1. Feedback when all the logic is placed at the sender . 9 | |||
3.1.2. Feedback when the statistics are calculated at the | 3.1.2. Feedback when the statistics are calculated at the | |||
receiver and SBD performed at the sender . . . . . . 10 | receiver and SBD performed at the sender . . . . . . 9 | |||
3.1.3. Feedback when bottlenecks can be determined at both | 3.1.3. Feedback when bottlenecks can be determined at both | |||
senders and receivers . . . . . . . . . . . . . . . . 11 | senders and receivers . . . . . . . . . . . . . . . . 10 | |||
3.2. Key metrics and their calculation . . . . . . . . . . . . 11 | 3.2. Key metrics and their calculation . . . . . . . . . . . . 10 | |||
3.2.1. Mean delay . . . . . . . . . . . . . . . . . . . . . 11 | 3.2.1. Mean delay . . . . . . . . . . . . . . . . . . . . . 10 | |||
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 . . . . . . . . . . . . . 16 | 3.3.2. Using the flow group signal . . . . . . . . . . . . . 16 | |||
4. Enhancements to the basic SBD algorithm . . . . . . . . . . . 17 | 4. Enhancements to the basic SBD algorithm . . . . . . . . . . . 16 | |||
4.1. Reducing lag and improving responsiveness . . . . . . . . 17 | 4.1. Reducing lag and improving responsiveness . . . . . . . . 16 | |||
4.1.1. Improving the response of the skewness estimate . . . 18 | 4.1.1. Improving the response of the skewness estimate . . . 17 | |||
4.1.2. Improving the response of the variability estimate . 20 | 4.1.2. Improving the response of the variability estimate . 19 | |||
4.2. Removing oscillation noise . . . . . . . . . . . . . . . 20 | 4.2. Removing oscillation noise . . . . . . . . . . . . . . . 19 | |||
5. Measuring OWD . . . . . . . . . . . . . . . . . . . . . . . . 21 | 5. Measuring OWD . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
5.1. Time stamp resolution . . . . . . . . . . . . . . . . . . 21 | 5.1. Time stamp resolution . . . . . . . . . . . . . . . . . . 20 | |||
5.2. Clock skew . . . . . . . . . . . . . . . . . . . . . . . 21 | 5.2. Clock skew . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
6. Expected feedback from experiments . . . . . . . . . . . . . 21 | 6. Expected feedback from experiments . . . . . . . . . . . . . 20 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
10. Change history . . . . . . . . . . . . . . . . . . . . . . . 22 | 10. Change history . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 23 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 22 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 23 | 11.2. Informative References . . . . . . . . . . . . . . . . . 23 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
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 may or may not share a bottleneck. Flows that share a bottleneck | and may or may not share a bottleneck. Flows that share a bottleneck | |||
link usually compete with one another for their share of the | link usually compete with one another for their share of the | |||
capacity. This competition has the potential to increase packet loss | capacity. This competition has the potential to increase packet loss | |||
and delays. This is especially relevant for interactive applications | and delays. This is especially relevant for interactive applications | |||
skipping to change at page 5, line 33 ¶ | skipping to change at page 5, line 38 ¶ | |||
E_T(...) -- the expectation or mean of the measurements of the | E_T(...) -- the expectation or mean of the measurements of the | |||
variable in parentheses over T | variable in parentheses over T | |||
E_N(...) -- the expectation or mean of the last N values of the | E_N(...) -- the expectation or mean of the last N values of the | |||
variable in parentheses | variable in parentheses | |||
E_M(...) -- the expectation or mean of the last M values of the | E_M(...) -- the expectation or mean of the last M values of the | |||
variable in parentheses, where M <= N. | variable in parentheses, where M <= N. | |||
max_T(...) -- the maximum recorded measurement of the variable in | ||||
parentheses taken over the interval T | ||||
min_T(...) -- the minimum recorded measurement of the variable in | ||||
parentheses taken over the interval T | ||||
num_T(...) -- the count of measurements of the variable in | num_T(...) -- the count of measurements of the variable in | |||
parentheses taken in the interval T | parentheses taken in the interval T | |||
num_VM(...) -- the count of valid values of the variable in | num_VM(...) -- the count of valid values of the variable in | |||
parentheses given M records | parentheses given M records | |||
PB -- a boolean variable indicating the particular flow | PB -- a boolean variable indicating the particular flow | |||
was identified transiting a bottleneck in the | was identified transiting a bottleneck in the | |||
previous interval T (i.e. Previously Bottleneck) | previous interval T (i.e. Previously Bottleneck) | |||
skipping to change at page 6, line 18 ¶ | skipping to change at page 6, line 18 ¶ | |||
calculating var_est. | calculating var_est. | |||
freq_est -- a measure of low frequency oscillation in the OWD | freq_est -- a measure of low frequency oscillation in the OWD | |||
measurements. | measurements. | |||
p_l, p_f, p_mad, c_s, c_h, p_s, p_d, p_v -- various thresholds | p_l, p_f, p_mad, c_s, c_h, p_s, p_d, p_v -- various thresholds | |||
used in the mechanism | used in the mechanism | |||
M and F -- number of values related to N | M and F -- number of values related to N | |||
. | ||||
2.1. Parameters and their effect | 2.1. Parameters and their effect | |||
T T should be long enough so that there are enough packets | T T should be long enough so that there are enough packets | |||
received during T for a useful estimate of short term mean | received during T for a useful estimate of short term mean | |||
OWD and variation statistics. Making T too large can limit | OWD and variation statistics. Making T too large can limit | |||
the efficacy of freq_est. It will also increase the response | the efficacy of freq_est. It will also increase the response | |||
time of the mechanism. Making T too small will make the | time of the mechanism. Making T too small will make the | |||
metrics noisier. | metrics noisier. | |||
N & M N should be large enough to provide a stable estimate of | N & M N should be large enough to provide a stable estimate of | |||
skipping to change at page 9, line 48 ¶ | skipping to change at page 9, line 13 ¶ | |||
document, however, it is expected that feedback will take the form | document, however, it is expected that feedback will take the form | |||
scenario 1 and operate in conjunction with sender-based congestion | scenario 1 and operate in conjunction with sender-based congestion | |||
control mechanisms. | control mechanisms. | |||
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. | |||
For every packet, the sender requires accurate OWD measurements of | For every packet, the sender requires accurate relative OWD | |||
adequate precision, along with an indication of lost packets (or the | measurements of adequate precision, along with an indication of lost | |||
proportion of packets lost over an interval). These can be provided | packets (or the proportion of packets lost over an interval). These | |||
by [I-D.dt-rmcat-feedback-message]. | can be provided by [I-D.dt-rmcat-feedback-message]. | |||
The mechanism performs its calculation whenever it has received | Sums, var_base_T and skew_base_T are calculated incrementally as | |||
sufficient measurements in the feedback messages to cover the T base | relative OWD measurements are determined from the feedback messages. | |||
time interval. The exact timing of these calculations will depend on | When the mechanism has received sufficient measurements to cover the | |||
the frequency of the feedback message. | T base time interval for all flows, the summary statistics (see | |||
Section 3.2) are calculated for that T interval and flows are grouped | ||||
(see Section 3.3.1). The exact timing of these calculations will | ||||
depend on the frequency of the feedback message. | ||||
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 performed at the sender | SBD performed at the sender | |||
This scenario minimizes 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 initialize 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 | |||
skipping to change at page 10, line 45 ¶ | skipping to change at page 10, line 15 ¶ | |||
* 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 initialization 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 initialization the agreed summary statistics SHOULD be fed back | After initialization the agreed summary statistics are fed back to | |||
to the sender (nominally every T). | the sender (nominally 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 initialized in a | It is envisaged that such a mechanism would be initialized in a | |||
skipping to change at page 15, line 18 ¶ | skipping to change at page 15, line 7 ¶ | |||
Subdivide the groups obtained in 4. by grouping flows whose | Subdivide the groups obtained in 4. by grouping flows whose | |||
difference is less than a threshold | difference is less than a threshold | |||
diff(pkt_loss) < (p_d * pkt_loss) | diff(pkt_loss) < (p_d * pkt_loss) | |||
The threshold, (p_d * pkt_loss), is with respect to the highest | The threshold, (p_d * pkt_loss), is with respect to the highest | |||
value in the difference. | value in the difference. | |||
This procedure involves sorting estimates from highest to lowest. It | This procedure involves sorting estimates from highest to lowest. It | |||
is simple to implement, and efficient for small numbers of flows (up | is simple to implement, and efficient for small numbers of flows (up | |||
to 10-20).Figure 2 illustrates this algorithm | to 10-20). Figure 2 illustrates this algorithm. | |||
********* | ********* | |||
* Flows * | * Flows * | |||
***.**.** | ***.**.** | |||
/ ' | / ' | |||
/ '--. | / '--. | |||
/ \ | / \ | |||
.---v--. .----v---. | .---v--. .----v---. | |||
1. Flows traversing | Cong | | UnCong | | 1. Flows traversing | Cong | | UnCong | | |||
a bottleneck '-.--.-' '--------' | a bottleneck '-.--.-' '--------' | |||
/ \ | / \ | |||
skipping to change at page 21, line 27 ¶ | skipping to change at page 20, line 27 ¶ | |||
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. | |||
5.1. Time stamp resolution | 5.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 coarser the time resolution, the more care | delays. In general, the coarser 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. Time stamp resolution such as that described | skewness calculation. Timing information described by | |||
by [I-D.dt-rmcat-feedback-message] should be sufficient. | [I-D.dt-rmcat-feedback-message] should be sufficient for the sender | |||
to calculate relative OWD. | ||||
5.2. Clock skew | 5.2. Clock skew | |||
Generally sender and receiver clock skew will be too small to cause | Generally sender and receiver clock skew will be too small to cause | |||
significant errors in the estimators. Skew_est and freq_est are the | significant errors in the estimators. Skew_est and freq_est are the | |||
most sensitive to this type of noise due to their use of a mean OWD | most sensitive to this type of noise due to their use of a mean OWD | |||
calculated over a longer interval. In circumstances where clock skew | calculated over a longer interval. In circumstances where clock skew | |||
is high, basing skew_est only on the previous T's mean and ignoring | is high, basing skew_est only on the previous T's mean and ignoring | |||
freq_est provides a noisier but reliable signal. | freq_est provides a noisier but reliable signal. | |||
skipping to change at page 22, line 30 ¶ | skipping to change at page 21, line 30 ¶ | |||
Non-authenticated RTCP packets carrying OWD measurements, shared | Non-authenticated RTCP packets carrying OWD measurements, shared | |||
bottleneck indications, and/or summary statistics could allow | bottleneck indications, and/or summary statistics could allow | |||
attackers to alter the bottleneck sharing characteristics for private | attackers to alter the bottleneck sharing characteristics for private | |||
gain or disruption of other parties communication. | gain or disruption of other parties communication. | |||
10. Change history | 10. Change history | |||
Changes made to this document: | Changes made to this document: | |||
WG-07->WG-08 : Updates addressing https://www.ietf.org/mail- | ||||
archive/web/rmcat/current/msg01671.html Mainly | ||||
clarifications. | ||||
WG-06->WG-07 : Updates addressing | WG-06->WG-07 : Updates addressing | |||
https://mailarchive.ietf.org/arch/msg/ | https://mailarchive.ietf.org/arch/msg/ | |||
rmcat/80B6q4nI7carGcf_ddBwx7nKvOw. Mainly | rmcat/80B6q4nI7carGcf_ddBwx7nKvOw. Mainly | |||
clarifications. Figure 2 to supplement grouping | clarifications. Figure 2 to supplement grouping | |||
algorithm description. | algorithm description. | |||
WG-05->WG-06 : Updates addressing WG reviews | WG-05->WG-06 : Updates addressing WG reviews | |||
https://mailarchive.ietf.org/arch/msg/rmcat/- | https://mailarchive.ietf.org/arch/msg/rmcat/- | |||
1JdrTMq1Y5T6ZNlOkrQJQ27TzE and | 1JdrTMq1Y5T6ZNlOkrQJQ27TzE and | |||
https://mailarchive.ietf.org/arch/msg/rmcat/ | https://mailarchive.ietf.org/arch/msg/rmcat/ | |||
End of changes. 18 change blocks. | ||||
50 lines changed or deleted | 51 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/ |