Internet DRAFT - draft-franceschini-avt-bwmetrics
draft-franceschini-avt-bwmetrics
avt G. Franceschini
Internet Draft Telecom Italia Lab
Expires: August 2007 February 13, 2007
Bandwidth Metrics
draft-franceschini-avt-bwmetrics-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that
any applicable patent or other IPR claims of which he or she is
aware have been or will be disclosed, and any of which he or she
becomes aware will be disclosed, in accordance with Section 6 of
BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on August 13, 2007.
Franceschini Expires August 13, 2007 [Page 1]
Internet-Draft Bandwidth Metrics February 2007
Abstract
When delivering audio and video data through low capacity links, it
is important to optimally exploit the limited resources in order to
provide the best possible user experience. QoS aspects in this
respect might relate to the pure audio and video quality, as well as
to delay and lip-sync. The actual weights of the different QoS
aspects depend on the service being offered, and are out of the scope
of this document.
In order to optimally exploit the limited resources, it is necessary
to get a reasonable precise measurement of them. This document
proposes metrics to address this problem.
This document, in this initial draft, focuses only on the semantic
aspects, leaving out the syntactical details.
Conventions used in this document
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 [1].
Franceschini Expires August 13, 2007 [Page 2]
Internet-Draft Bandwidth Metrics February 2007
Table of Contents
1. Introduction...................................................4
2. The starting point.............................................5
2.1. Use case: peer-to-peer audio/visual narrowband communication
...............................................................5
2.2. The proposed metrics......................................5
2.3. Examples of metrics values................................7
2.3.1. PSTN stack including RTP/UDP/IP/PPP/LAPM, with 40 Kbit/s
of physical capacity........................................7
2.3.2. ATM stack including RTP/UDP/IP/PPP/ETH+FCS/LLC-
SNAP/AAL5/ATM, with 128 Kbit/s of physical capacity.........9
2.4. Sender decisions affecting QoS...........................10
2.5. Computation of the optimal transmission parameters.......11
2.5.1. Parameters..........................................11
2.5.2. Computation of MaxVSize.............................12
2.5.3. Computation of MaxPTime.............................12
2.5.4. Computation of VideoBW..............................14
2.6. Examples of use..........................................15
3. Other issues..................................................18
3.1. Narrowband and wideband communication....................18
3.2. Session level and media level parameters.................18
3.3. Point-to-point and point-to-multipoint...................19
3.4. TIDC or MPO updates......................................19
3.5. RTCP support.............................................20
3.6. Middle boxes.............................................20
4. Security Considerations.......................................21
5. IANA Considerations...........................................21
6. Conclusions...................................................21
7. Acknowledgments...............................................21
8. References....................................................22
8.1. Normative References.....................................22
8.2. Informative References...................................22
Author's Addresses...............................................22
Intellectual Property Statement..................................22
Disclaimer of Validity...........................................23
Copyright Statement..............................................23
Acknowledgment...................................................23
Franceschini Expires August 13, 2007 [Page 3]
Internet-Draft Bandwidth Metrics February 2007
1. Introduction
In a path from A to B, there are often one or more bottlenecks that
limit the bandwidth available for the audio and/or video data.
Bottlenecks can, in principle, be present in any link, but most
reasonably they are present at the access links of A and/or B. When
this occurs, knowledge about the characteristics of such
bottleneck(s) is essential to:
i) prevent congestion;
ii) exploit the available resources at their maximum capacity.
The requirement of defining metrics that precisely characterize the
bottleneck capacity applies to both the initial negotiation phase and
to the case of updates.
It is well known that the simple indication of a bandwidth value
(such as the CT or AS bandwidth parameters) provides quite vague
information, since the protocol stack overhead remains unknown, and
might greatly affect the overall bandwidth consumption. As a
consequence, a compromise between the requirements (i) and (ii) above
is chosen in a conservative way, that sacrifices (ii) to make (i)
almost guaranteed. Sometimes this compromise results in an excess of
unnecessary sacrifice for (ii).
The indication of a couple of values (one being some form of
bandwidth, and one being some indication of overhead) looks
definitely more attractive, and has the potential of reducing the
vagueness in the information, thus allowing for a less severe
sacrifice in (ii).
Also, since links might not necessarily present the same
characteristics in Uplink and Downlink, the information shall relate
to a specific direction.
This document presents in section 2 a first use-case (peer-to-peer
audio/visual narrowband communication), proposes new bandwidth
metrics and shows how this use-case would benefit from the signaling
of such metrics. Subsections 2.1 through 2.3 are the most relevant,
while 2.4 through 2.6 are dedicated to those really intrigued in the
algorithm.
More sceanrios and issues are then considered in section 3, along
with proposed solutions that both address variations to the original
proposal of section 2, and highlights potential further areas of
work.
Franceschini Expires August 13, 2007 [Page 4]
Internet-Draft Bandwidth Metrics February 2007
2. The starting point
2.1. Use case: peer-to-peer audio/visual narrowband communication
The whole work presented in this document derives from the analysis,
implementation and deployment experience conducted on a well-defined
use case: peer-to-peer audio/visual narrowband communication.
For such a scenario the basic requirement was very simple: optimize
the user experience!
2.2. The proposed metrics
When audio/video data is delivered through an IP Network, a number of
protocol layers are involved, resulting in a significant overhead.
The protocol stack typically involves, from the application layer
down to the physical medium:
o the Real-time Transport Protocol (RTP);
o the User Datagram Protocol (UDP);
o the Internet Protocol (IP);
o a number of different protocol stacks featuring Data Link and
Physical Layer functionalities and that depend on the specific
network itself.
The overhead induced by the RTP/UDP/IP protocol layers might, in some
case, differ significantly from the normal 40 bytes. E.g., IP
Tunneling could be employed, that implies a sort of "double" IP
layer, and in essence an extra overhead for each packet. Another
technique used in some context is the compression of the RTP/UDP/IP
headers. Other changes in the overhead might derive from the usage of
IP-SEC or of IPv6, and possibly from other variations in the stack
currently not envisaged.
The computation of the overhead induced by the protocol layers below
the IP level is even more complex.
On some networks, data is physically streamed according to a framing
mechanism totally decoupled from the IP packetization; in other
cases, the IP packets boundaries are preserved, but adapted with
extra padding to fit the physical frames.
The overhead due to the various protocol layers can be in general
modeled as:
Franceschini Expires August 13, 2007 [Page 5]
Internet-Draft Bandwidth Metrics February 2007
o per packet overhead, when the protocol layer takes care of the
packet boundaries of the upper layer, and adds a certain overhead
on each such data packet: the bigger the data packet is, the lower
the overhead percentage results (examples are RTP, UDP, IP, as
well as ETH, PPP)
o per byte overhead, when the protocol layer ignores the packet
boundaries of the upper layer, and manages the data traffic as a
stream of bytes to which it adds a certain mean overhead; e.g.:
o the stream of bytes is segmented in frames of a certain
length, each having a header and/or trailer (e.g.: LAP-M);
o the stream of bytes is coded according to some rule, e.g.
escape bytes are inserted to avoid emulating certain
sequences, whose occurrence can be statistically determined
(e.g.: again LAP-M);
all such examples can be modeled as a fixed overhead percentage;
o stepwise overhead, when the protocol layer takes care of the
packet boundaries of the upper layer, but encapsulates the upper
layer data in frames of fixed length, adding padding bytes to fill
the last frame assigned to the upper layer packet: this is the
case of e.g. ATM-AAL5, where an upper layer data packet is
segmented to fit the payload space of an integral number of ATM
cells, with padding in the last cell of 0 to 47 bytes; this is the
most difficult case to model, since the difference of 1 byte in
the packet length at the application layer might result in a full
additional ATM cell (53 bytes). In practice, it sounds reasonable
in such a case to compute a statistically equivalent per-byte
overhead.
Thus, in general, the computation of the overhead induced by the
various protocol layers on an audio or video flow is not trivial, and
definitely depends on how big the packets generated at the
application layer are, and how these packets are managed through the
different protocol layers.
Since the overhead depends on the protocol stack, it can potentially
change on each link of the delivery path. The most important overhead
is clearly the overhead associated to the bottleneck link.
In a path from A to B, assuming that the two potential bottlenecks
are the links close to peer A and peer B themselves, the sender (A)
needs information about the characteristics of the local UplinkA and
of the remote DownlinkB. Once such characterization is available at
Franceschini Expires August 13, 2007 [Page 6]
Internet-Draft Bandwidth Metrics February 2007
sender A, it might identify the best compromises between e2e delay
and overhead, and determine the values for the maxptime, maxvsize and
videobw parameters defined above: in essence, sender A will be able
to make its own best decision on how to (i) prevent congestion and at
the same time (ii) exploit the available resources at their maximum
capacity.
The proposed metrics measure the bandwidth available at a certain
protocol stack layer and the corresponding mean per-packet overhead:
o TIDC/TIUC (Transport Independent Downlink/Uplink Capacity):
represents the capacity (in Kbit/s) of the link
(Downstream/Upstream direction) measured at a certain protocol
stack layer.
o MPO (Mean Packet Overhead): represents the mean overhead that
applies to each packet from the layer above RTP down to the
protocol stack layer at which the corresponding TIxC value has
been measured. The overhead excludes any bytes in excess with
respect to the canonical 12 bytes RTP header. Thus RTP Header
extensions are not included, and neither are the Payload Format
overheads.
2.3. Examples of metrics values
2.3.1. PSTN stack including RTP/UDP/IP/PPP/LAPM, with 40 Kbit/s of
physical capacity.
The contribution of the various layers to the per-packet overhead is:
RTP (12), UDP (8), IP (20), PPP (8); in addition the LAPM provides a
per-byte overhead of about 10% (this figure depends on some parameter
of the LAPM itself, but for the example purposes let's assume 10%).
This means that 40 - 10% = 36 Kbit/s are left to the PPP layer. Also,
the total per-packet overhead at the PPP layer is 12+8+20+8 = 48
bytes
For such a case an optimal tuple would therefore be:
TIDC(PPP) = 36
MPOD(PPP) = 48
The above tuple refers to the PPP layer. If the IP layer were
selected instead, the MPO figure would clearly decrease to 40.
However, it is not obvious how to compute the TIDC for the IP layer,
since the PPP layer provides a per-packet overhead, not a per-byte
overhead. Thus, an hypothesis on the packet rate is required, say 50
Franceschini Expires August 13, 2007 [Page 7]
Internet-Draft Bandwidth Metrics February 2007
packets/second. This translates into 3200 bit/sec of overhead, i.e.
~3 Kbit/s. The tuple therefore becomes:
TIDC(IP,50) = 33
MPOD(IP) = 40
This tuple relative to the IP layer however implies as well a packet
rate of 50 packets/sec, whereas the tuple relative to the PPP layer
had no assumption on the packet rate.
Using the same approach and hypothesis of 50 packets/sec, the tuples
relative to the UDP, RTP and application layer can be computed as
well:
TIDC(UDP,50) = 25
MPOD(UDP) = 20
TIDC(RTP,50) = 22
MPOD(RTP) = 12
TIDC(APP,50) = 17
MPOD(APP) = 0
All five tuples are equivalent as far as the hypothesis of 50
packets/sec is correct. But the more the reality diverges from the
hypothesis, the more the APP, RTP, UDP and IP tuples provide
inaccurate information, while the PPP tuple remains correct, since it
is independent on the packet rate assumption.
In other words, if the measurement is made at the interface between
the lowest protocol stack layer providing per-packet overhead and the
highest protocol stack layer providing per-byte overhead, that
measurement is accurate under all packet rates. Otherwise, it is only
precise when the packet rate hypothesis well approximates the
reality.
Indeed, if the packet rate hypothesis changes into 25 packets/sec the
new figures become:
TIDC(IP,25) = 34
MPOD(IP) = 40
TIDC(UDP,25) = 30
MPOD(UDP) = 20
TIDC(RTP,25) = 29
MPOD(RTP) = 12
TIDC(APP,25) = 26
Franceschini Expires August 13, 2007 [Page 8]
Internet-Draft Bandwidth Metrics February 2007
MPOD(APP) = 0
2.3.2. ATM stack including RTP/UDP/IP/PPP/ETH+FCS/LLC-SNAP/AAL5/ATM,
with 128 Kbit/s of physical capacity.
The contribution of the various layers to the per-packet overhead is:
RTP (12), UDP (8), IP (20), PPP (8), ETH+FCS (18), LLC/SNAP (10),
AAL5 (8); in addition the ATM layer provides a fixed per-byte
overhead of about 10% (5 header bytes for every 48 payload bytes)
plus a statistical per-byte overhead of, say, another 10% (due to the
padding of 0-47 bytes in the last cell belonging to an AAL5 PDU).
This means that 128 - 20% = 102 Kbit/s are left to the AAL5 layer.
Also, the total per-packet overhead at the AAL5 layer is
12+8+20+8+18+10+8 = 84 bytes
For such a case an optimal tuple would therefore be:
TIDC(AAL5) = 102
MPOD(AAL5) = 84
As in the previous example, here as well it is possible to compute
alternate tuples based on an hypothesis on the packet rate. Say,
again, 50 packet/sec. We can then obtain:
TIDC(IP,50) = 84
MPOD(IP) = 40
TIDC(UDP,50) = 76
MPOD(UDP) = 20
TIDC(RTP,50) = 73
MPOD(RTP) = 12
TIDC(APP,50) = 68
MPOD(APP) = 0
While for 25 packets/sec the figures become:
TIDC(IP,25) = 93
MPOD(IP) = 40
TIDC(UDP,25) = 89
MPOD(UDP) = 20
TIDC(RTP,25) = 88
MPOD(RTP) = 12
Franceschini Expires August 13, 2007 [Page 9]
Internet-Draft Bandwidth Metrics February 2007
TIDC(APP,25) = 85
MPOD(APP) = 0
2.4. Sender decisions affecting QoS
For the peer-to-peer audio/visual narrowband communication scenario,
three encoding and transmission parameters have been identified as
crucial for the overall QoS, and mostly determined by a sender-only
decision:
o maxptime: maximum length (in ms) of the audio content transmitted
in a single audio RTP packet;
o maxvsize: maximum length (in bytes) of a video RTP packet;
o videobw: bandwidth assigned to the video stream at the media
level.
These parameters affect the QoS because:
maxptime: small values imply low acquisition, serialization and
rendering delays, thus an overall low e2e delay. On the other hand,
the generation of many small RTP packets determines a significantly
high transmission overhead that erodes the bandwidth available for
the video stream. This might be less evident when RTP Header
compression techniques are in place. In general, the sender shall
identify an acceptable compromise between e2e delay and overhead,
although there are cases where the value is quite constrained.
maxvsize: small values allow for a fine interleaving between audio
and video packets, thus keep low the amount of jitter induced on the
audio delivery by the serialization of the video RTP packets. Such a
jitter directly contributes to the audio e2e delay. On the other
hand, the generation of many small RTP packets determines a
significantly high transmission overhead that erodes the bandwidth
available for the video stream. Here again the sender shall identify
an acceptable compromise between audio e2e delay and overhead. There
is of course an upper-bound constraint that is determined by the path
MTU-SIZE.
videobw: small values allow for a conservative approach in which the
path capacity is under-utilized, therefore preventing congestion in
case of transient problems (e.g. retransmissions). On the other hand,
the video quality is directly proportional to the video bandwidth.
The sender shall identify the highest possible value that still keeps
the risk of congestion acceptable.
Franceschini Expires August 13, 2007 [Page 10]
Internet-Draft Bandwidth Metrics February 2007
Of course many other parameters could be considered, such as the
audio bandwidth itself (e.g.: AMR coding can range from 4.75 up to
12.2 Kbit/s), but it is believed that the three parameters above are
the ones that deserve the main attention.
2.5. Computation of the optimal transmission parameters
2.5.1. Parameters
Here is a possible algorithm for computing the optimal transmission
parameters. Here a number of constraints are set: this is an example,
and the mechanism by which the sender is made aware of the values of
such constraints is outside the scope of this document.
The parameters to compute are:
o MaxPTime: maximum length (in ms) of the audio content transmitted
in a single audio RTP packet;
o MaxVSize: maximum length (in bytes) of a video RTP packet;
o VideoBW: bandwidth assigned to the video stream at the media
level.
The parameters providing the link characterization are:
o TIDC: the remote Downlink capacity in bit/s
o MPOD: the remote Downlink mean packet overhead in Bytes
o TIUC: the local Uplink capacity in bit/s
o MPOU: the local Uplink mean packet overhead in Bytes
In the following they will be often referred to as TIxC and MPOx, to
mean either remote Downlink or local Uplink.
Furthermore, the following constraints are set:
o MTUSIZE: maximum IP packet length;
o MAX_JITTER_INT: maximum interleaving jitter (in ms), computed as
the difference between the minimal and maximum delay of an audio
packet due to the interleaving of video packets;
o MIN_VIDEO_BW: the minimum bandwidth to dedicate to the video
stream at the media level;
o AUDIO_BW: the bandwidth to dedicate to the audio stream at the
media level;
Franceschini Expires August 13, 2007 [Page 11]
Internet-Draft Bandwidth Metrics February 2007
o MAX_AUDIOLENMS: the maximum value for MaxPTime.
o MIN_AUDIOLENMS: the minimum value for MaxPTime.
o AUDIOFRAMELENMS: the audio frame length.
2.5.2. Computation of MaxVSize
This parameter shall assume the highest possible value (to reduce
overhead) coherently with the following constraints:
o Shall be small enough to avoid causing an interleaving jitter
greater than MAX_JITTER_INT;
o Shall be small enough to avoid causing IP fragmentation
(coherently with MTUSIZE).
The minimum delay of an audio packet induced by the interleaving of
video packets is clearly 0. The interleaving jitter thus equates the
maximum delay of an audio packet induced by the interleaving of video
packets. This in turn can be reasonably computed as the serialization
time of the longest video packet across the two known links (UplinkA
and DownlinkB). Thus (all terms in bytes, ms and bits/ms):
MAX_JITTER_INT = ((MaxVSize+MPOD)*8/TIDC + (MaxVSize+MPOU)*8/TIUC)
Assuming that MAX_JITTER_INT is known (constraint), and that MPOD,
TIDC, MPOU e TIUC are known as well, it is possible to obtain
MaxVSize:
MaxVSize = [(MAX_JITTER_INT * TIDC * TIUC / 8) - (MPOD * TIUC) -
(MPOU * TIDC)] / (TIUC + TIDC)
If no audio is involved, MaxVSize does not require -of course- any
such calculation.
MaxVSize shall than respect the IP requirement of not causing any IP
fragmentation, and (notwithstanding all possible variations of the
RTP/UDP/IP stack) a typical formula would just be:
MaxVSize <= MTUSIZE - 40
2.5.3. Computation of MaxPTime
This parameter shall assume the lowest possible value (to reduce e2e
delay) coherently with the following constraints:
o It shall correspond to an integral multiple of the AUDIOFRAMELENMS
(e.g. Nx10 ms for G.729, or Nx20 ms for AMR)
Franceschini Expires August 13, 2007 [Page 12]
Internet-Draft Bandwidth Metrics February 2007
o Shall not be bigger than MAX_AUDIOLENMS
o Shall not be smaller than MAX_AUDIOLENMS
o Shall be big enough to not erode excessive bandwidth to the video
payload, which is requested to reach at least MIN_VIDEO_BW;
The available bandwidth (TIUC or TIDC) can be assigned to audio and
video payload and overhead as in the formula below:
TIxC >= BW_V + BW_A + OVx_V + OVx_A
Where:
o BW_V is the pure video bandwidth, which is required to be >
MIN_VIDEO_BW
o BW_A is the pure audio bandwidth, which is known to be AUDIO_BW
o OVx_V and OVx_A are the bandwidths consumed by the overheads for
audio and video
By 'x' is meant either 'D' (remote Downlink) or 'U'(local Uplink).
The OVx_V can be approximated, being known the MaxVSize, as a
function of BW_V (all terms in bytes, ms and bits/ms):
OVx_V = <video packet rate> * MPOx * 8
OVx_V = (BW_V/((MaxVSize+MPOx)*8)) * MPOx * 8
And being MIN_VIDEO_BW the target for BW_V:
OVx_V = (MIN_VIDEO_BW/((MaxVSize+MPOx)*8)) * MPOx * 8
The OVx_A can be represented as a function of MaxPTime:
OVx_A = (1000/MaxPTime) * MPOx * 8
From:
TIxC >= BW_V + BW_A + OVx_V + OVx_A
We get:
OVx_A <= TIxC - BW_V - BW_A - OVx_V
The formula (for both the local Uplink and remote Downlink) now
contains on the right side all known terms. Thus the upper limit for
OVx_A can be computed for both the local Uplink and remote Downlink.
Franceschini Expires August 13, 2007 [Page 13]
Internet-Draft Bandwidth Metrics February 2007
Thus, it is possible to derive the lower limit for MaxPTime(x) (all
terms in bytes, ms and bits/ms):
MaxPTime(x) >= MPOx * 8 / OVx_A
Which corresponds to:
MaxPTime(x) >= (MPOx * 8) / (TIxC - MIN_VIDEO_BW - BW_A -
((MIN_VIDEO_BW/((MaxVSize + MPOx) * 8 )) * MPOx * 8))
End finally determine:
MaxPTime >= max (MaxPTime(D), MaxPTime(U))
This lower limit will be then round up to fit an integral number of
audio frames.
If this result is outside the boundaries set by the MIN_AUDIOLENMS
and MAX_AUDIOLENMS, then of course the MaxPTime shall be corrected
accordingly: this would mean however that it is not possible to
guarantee the MIN_VIDEO_BW to the video payload.
In case the upper limit for OVx_A is negative, and thus a MaxPTime(x)
is also negative, that means that there is not enough bandwidth to
accommodate the constraints: in such a case the best compromise is to
set MaxPTime to the maximum acceptable, to leave as much bandwidth as
possible to the video. In case MaxPTime(x) becomes negative, that
means that there is not enough.
2.5.4. Computation of VideoBW
This parameter shall assume the highest possible value (to reduce
overhead)
Starting again from:
TIxC >= BW_V + BW_A + OVx_V + OVx_A
And being now known the OVx_A contribution, it is possible to
identify the upper limit for BW_V.
OVx_A = (MPOx * 8) / MaxPTime
BW_V + OVx_V <= TIxC - BW_A - OVx_A
And replacing the OVx_V term:
BW_V * (1 + (1/((MaxVSize+MPOx)*8)) * MPOx * 8) <= TIxC - BW_A -
OVx_A
Franceschini Expires August 13, 2007 [Page 14]
Internet-Draft Bandwidth Metrics February 2007
All terms are known, thus for both the local Uplink and remote
Downlink it is possible to determine the upper limit for BW_V(x).
VideoBW(x) <= (TIxC-BW_A-((MPOx*8) / MaxPTime))
/(1+(1/((MaxVSize+MPOx)*8))*MPOx*8)
And finally identify the maximum value that fits both:
VideoBW = min (VideoBW(D), VideoBW(U))
2.6. Examples of use
Suppose the audio/video communication scenario involves peers A and
B, with peer A on a PSTN link and peer B on a ATM link, running the
protocol stack as described in the above examples.
Assume the TIxC/MPOx values are the following:
At link A (PSTN line with a line rate of 40 Kbit/s Downlink and 33
Kbit/s Uplink):
o TIDC(PPP) = 36
o MPOD(PPP) = 48
o TIUC(PPP) = 30
o MPOU(PPP) = 48
At link B (ATM link at 128 Kbit/s in both directions)
o TIDC(AAL5) = 102
o MPOD(AAL5) = 84
o TIUC(AAL5) = 102
o MPOU(AAL5) = 84
Also assume that the constraints are set to:
o MTUSIZE: 1500 bytes
o MAX_JITTER_INT: 150 ms
o MIN_VIDEO_BW: 20 Kbit/s
o AUDIO_BW: 8 Kbit/s
Franceschini Expires August 13, 2007 [Page 15]
Internet-Draft Bandwidth Metrics February 2007
o MAX_AUDIOLENMS: 120 ms
o MIN_AUDIOLENMS: 20 ms
o AUDIOFRAMELENMS: 20 ms
Applying the formulas above in the A=>B direction:
MaxVSize = ((MAX_JITTER_INT * TIDC * TIUC / 8) - (MPOD * TIUC) -
(MPOU * TIDC)) / (TIUC + TIDC)
= ((150 * 102 * 30 / 8) - (84 * 30) - (48 * 102)) / (30+102)
= 378 bytes
MaxPTime(D) >= (MPOD * 8) / (TIDC - MIN_VIDEO_BW - BW_A -
((MIN_VIDEO_BW / ((MaxVSize + MPOD) * 8)) * MPOD * 8))
= (84 * 8) / (102 - 20 - 8 - ((20 / ((378 + 84) * 8)) * 84 * 8))
= 10 ms
MaxPTime(U) >= (MPOU * 8) / (TIUC - MIN_VIDEO_BW - BW_A -
((MIN_VIDEO_BW / ((MaxVSize + MPOU) * 8)) * MPOU * 8))
= (48 * 8) / (30 - 20 - 8 - ((20 / ((378 + 48) * 8)) * 48 * 8))
= -1514 ms
Being MaxPTime(U) negative:
MaxPTime = MAX_AUDIOLENMS = 120 ms
VideoBW(D) <= (TIDC-BW_A-((MPOD * 8) / MaxPTime)) / (1 + (1 /
((MaxVSize + MPOD) * 8)) * MPOD * 8)
= (102 - 8 - ((84 * 8) / 120)) / (1 + (1 / ((378 + 84) * 8)) * 84 *8)
= 74 Kbit/s
VideoBW(U) <= (TIUC - BW_A - ((MPOU * 8) / MaxPTime)) / (1 + (1 /
((MaxVSize + MPOU) * 8)) * MPOU * 8)
= (30 - 8 - ((48 * 8) / 120)) / (1 + (1 / ((378 + 48) * 8)) * 48 * 8)
= 16 Kbit/s
Thus
VideoBW = 16 Kbit/s
(which is indeed lower than the constraint MIN_VIDEO_BW)
Applying the formulas above in the B=>A direction:
MaxVSize = ((MAX_JITTER_INT * TIDC * TIUC / 8) - (MPOD * TIUC) -
(MPOU * TIDC)) / (TIUC + TIDC)
Franceschini Expires August 13, 2007 [Page 16]
Internet-Draft Bandwidth Metrics February 2007
= ((150 * 36 * 102 / 8) - (48 * 102) - (84 * 36)) / (102 + 36)
= 441 bytes
MaxPTime(D) >= (MPOD * 8) / (TIDC - MIN_VIDEO_BW - BW_A -
((MIN_VIDEO_BW / ((MaxVSize + MPOD) * 8 )) * MPOD * 8))
= (48 * 8) / (36 - 20 - 8 - ((20 / ((441 + 48) * 8)) * 48 * 8))
= 64 ms
MaxPTime(U) >= (MPOU * 8) / (TIUC - MIN_VIDEO_BW - BW_A -
((MIN_VIDEO_BW / ((MaxVSize + MPOU) * 8 )) * MPOU * 8))
= (84 * 8) / (102 - 20 - 8 - ((20 / ((441 + 84) * 8)) * 84 * 8))
= 10 ms
MaxPTime >= max (MaxPTime(D), MaxPTime(U))
Being AUDIOFRAMELENMS = 20 ms:
MaxPTime = 80 ms
VideoBW(D) <= (TIDC - BW_A - ((MPOD * 8) / MaxPTime)) / (1 + (1 /
((MaxVSize + MPOD) * 8)) * MPOD * 8)
= (36 - 8 - ((48 * 8) / 80)) / (1 + (1 / ((441 + 48) * 8)) * 48 * 8)
= 21 Kbit/s
VideoBW(U) <= (TIUC - BW_A - ((MPOU * 8) / MaxPTime)) / (1 + (1 /
((MaxVSize + MPOU) * 8)) * MPOU * 8)
= (102 - 8 - ((84 * 8) / 80)) / (1 + (1 / ((441 + 84) * 8)) * 84 * 8)
= 73 Kbit/s
Thus
VideoBW = 21 Kbit/s
(which is indeed higher than the constraint MIN_VIDEO_BW)
Thus, in this example peer A will use:
o MaxVSize = 378 bytes
o MaxPTime = 120 ms
o VideoBW = 16 Kbit/s
And peer B will use:
o MaxVSize = 441 bytes
o MaxPTime = 80 ms
Franceschini Expires August 13, 2007 [Page 17]
Internet-Draft Bandwidth Metrics February 2007
o VideoBW = 21 Kbit/s
3. Other issues
3.1. Narrowband and wideband communication
The algorithm presented in section 2, which is based on the exchange
of downlink capacity characterization, aims at saturating the
bottleneck's capacity. This is not necessarily desired. Suppose,
e.g., that both peers A and B in a video communication session happen
to reside on a wideband link: in such a case an upper (at least
approximate) limit for the bandwidth to dedicate to the communication
session shall be set.
Thus, when a terminal attached to a wideband link is involved in a
communication session (as peer A), it makes little sense for that
terminal to communicate its TIDC and MPO values. However, if it does
not communicate such values, then peer B would not be aware of the
ability of peer A to interpret such TIDC and MPO parameters.
A different, preferable solution could therefore consist in having
peer A communicating in addition to its TIDC and MPO values, a
further parameter that specifies an approximate upper bandwidth limit
for the communication session. The CT parameter as already defined in
RFC3550 seems appropriate for this goal, or anyway an ad-hoc
parameter could be defined if CT is deemed inapplicable.
3.2. Session level and media level parameters
The algorithm presented in section 2 implies that TIDC is a session
level parameter. The usage of TIDC as session level parameter allows
taking care of the cross-media relations, and more specifically of:
o the impact of video packet sizes on audio jitter, in case audio
and video RTP packets get serialized on the physical link;
o the impact of audio packet rate (and thus overhead) on the
bandwidth that remains available for the video.
The usage of TIDC as media level parameter would sacrifice the above
advantages; furthermore, the application would be responsible of
segmenting the overall available bandwidth between video and audio,
leading to a potential sub-optimization in case the goal is to
saturate the bottleneck.
There might be however scenarios in which such cons are not relevant,
and where therefore the TIDC as media level parameter could be
acceptable.
Franceschini Expires August 13, 2007 [Page 18]
Internet-Draft Bandwidth Metrics February 2007
Concerning the MPO parameter instead, it better fits with a media
level definition, since in cases where header compression techniques
are in place, their effectiveness might result quite different for
audio and video. When no difference in MPO for audio and video
exists, it is questionable whether to exchange a single session level
value, or keep exchanging two individual media level values.
3.3. Point-to-point and point-to-multipoint
The algorithm presented in section 2 has been conceived for a point-
to-point scenario, and naturally fits the SDP capability exchange
model that takes place during a SIP session setup. Thus, the TIDC and
MPO parameters could be exchanged between the peers by means of
simple additions to the set of SDP parameters.
In point-to-multipoint scenarios instead, the SIP signaling protocol
is not used, and the capability information flows only from source to
destination. In order to let the destination(s) communicate their own
capabilities back to the source, no specific mechanism is generally
used other than RTCP.
This implies that in order to apply the proposed algorithm in point-
to-multipoint scenarios as well, appropriate RTCP messages carrying
the relevant information (TIDC, MPO) should be defined.
3.4. TIDC or MPO updates
During the lifetime of a communication session, the TIDC (and maybe
MPO) parameters originally communicated could change. This is true,
for example, in PSTN modems, that might re-negotiate the physical
bandwidth as a result of excessive error-rate; and of course this
happens as well in mobile links.
When working in a SIP based, peer-to-peer communication session, the
REINVITE method could be exploited to communicate such an update.
There are different opinions on the applicability of this solution,
but this is certainly a potential candidate solution.
A different mechanism could be based on providing feedback via RTCP:
such a solution would be synergic with the extension of applicability
to point-to-multipoint sessions.
Thus, while implementing the REINVITE would solve the update issue
(with a number of cons) but would not providing any advantage towards
the point-to-multipoint scenario, the definition of appropriate RTCP
messages would address both issues.
Franceschini Expires August 13, 2007 [Page 19]
Internet-Draft Bandwidth Metrics February 2007
3.5. RTCP support
The definition of appropriate RTCP messages to update the TIDC and/or
MPO values highly depends on whether such parameters are at session
or at media level. In the latter case, there is no conceptual
obstacle, and indeed the TMMBR messages being defined in AVT are
exactly addressing this kind of problem (i.e. signal a change in the
channel capacity).
If instead the TIDC parameter is kept in its session level meaning,
then a different kind of extension to RTCP feedback mechanisms is
required, since there is no current provision in RTCP to provide
feedback on session level parameters.
The issues here are not of syntactic nature, since RTCP already
includes elements that have session level scope (e.g.: in SDES or
APP), which could be easily extended to carry TIDC information; the
problem instead is of coherence with the general RTCP architectural
design, a field in which the author does not feel expert enough to
autonomously provide any assertion.
3.6. Middle boxes
Presence of middle boxes along the path between a sender A and a
receiver B needs special care.
As far as a SIP INVITE or REINVITE is considered, middle boxes might
be given the right to inspect and alter the SDP description. This
might be meaningful in case the middle box knows about a bottleneck
that is not otherwise known at the peers A and B: in such a case the
middle box could add the characterization of such bottleneck in the
SDP descriptions, and the recipient of such SDP could therefore get
information about more than one potential bottleneck. The algorithm
presented in section 2 could be easily updated to deal with multiple
bottlenecks.
As far as RTCP feedback messages are concerned, it is conceivable
that a middle box re-generates RTCP messages and that in doing so, it
also inserts subparts of its own (such as a description of its own
bottleneck). Although conceivable, there is probably no practical
use-case requiring this functionality.
Franceschini Expires August 13, 2007 [Page 20]
Internet-Draft Bandwidth Metrics February 2007
4. Security Considerations
5. IANA Considerations
6. Conclusions
This document presented new bandwidth metrics designed to precisely
describe the link characteristics. It was shown that the accuracy of
such metrics depends on the measurement point: the closer this point
is to the layer at which the protocol stack portion providing per-
packet overhead interfaces with the protocol stack portion providing
per-byte overhead, the better is the accuracy. The metrics presented
can be interpreted at both media and session level, but if used at
session level allow also to take care of cross-media relations, such
as the induced jitter on the audio due to the serialization of video
packets, or the erosion in video bandwidth due to audio packet
overhead.
An algorithm that takes advantage of the metrics presented to
calculate transmission parameters at a sender peer has been also
described in detail.
A number of additional issues have then been dealt with, leading to a
few ideas on how to extend/modify the metrics presented.
Also, most important, it has been shown that in order to fully
exploit the benefit of the metrics proposed (the usage of session
level parameters to take care of cross-media relations), it is
necessary to consider a new type of RTCP extension, able to carry
session level feedback.
7. Acknowledgments
Franceschini Expires August 13, 2007 [Page 21]
Internet-Draft Bandwidth Metrics February 2007
8. References
8.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
8.2. Informative References
Author's Addresses
Guido Franceschini
Telecomi Italia Lab
Via Reiss Romoli 274
I-10148 Torino
Italy
Email: guido.franceschini@telecomitalia.it
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Franceschini Expires August 13, 2007 [Page 22]
Internet-Draft Bandwidth Metrics February 2007
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Franceschini Expires August 13, 2007 [Page 23]