Re: [rtcweb] [tram] RTP header extension for "Interfacing to QoS" WAS: I-D Action: draft-thomson-tram-turn-bandwidth-00.txt

"Karl Stahl" <karl.stahl@intertex.se> Thu, 13 March 2014 08:27 UTC

Return-Path: <karl.stahl@intertex.se>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF3911A096F; Thu, 13 Mar 2014 01:27:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.801
X-Spam-Level: *
X-Spam-Status: No, score=1.801 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, MSGID_MULTIPLE_AT=1] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7-cp3xrKI_FX; Thu, 13 Mar 2014 01:26:59 -0700 (PDT)
Received: from smtp.it-norr.com (smtp.it-norr.com [80.244.64.160]) by ietfa.amsl.com (Postfix) with ESMTP id 23E2E1A095A; Thu, 13 Mar 2014 01:26:57 -0700 (PDT)
Received: from ([95.199.19.223]) by smtp.it-norr.com (Telecom3 SMTP service) with ASMTP id 201403130926480855; Thu, 13 Mar 2014 09:26:48 +0100
From: "Karl Stahl" <karl.stahl@intertex.se>
To: "'Pal Martinsen \(palmarti\)'" <palmarti@cisco.com>, "'Colin Perkins'" <csp@csperkins.org>, "'Magnus Westerlund'" <magnus.westerlund@ericsson.com>
References: <20140214030712.30321.21888.idtracker@ietfa.amsl.com> <CAKhHsXGzA=ZTFGTK7ht9hQbfG70iqKrDtxrZCdQNNMzBYZCk8A@mail.gmail.com> <530604ea.c5bf440a.5cfd.ffffde18SMTPIN_ADDED_BROKEN@mx.google.com> <CAKhHsXGsp6ma6Ko9op+YFRqSGM_Ex-jFo_fjz69rN0SEHfNK2A@mail.gmail.com> <CALDtMrKb3_38Rs0vaGnpEvNvTYz8YUTo89STvLJNXfkfdipDSQ@mail.gmail.com> <93BEDDC39A54294B9E78C7860516FA4724AA4422@AZ-US1EXMB06.global.avaya.com> <B7FA2629-6D48-4569-BB62-56395C3EE4BC@cisco.com> <04ee01cf31ae$e296d500$a7c47f00$@stahl@intertex.se> <B788D545-BDC0-47A7-BE1B-76E2A5F60509@cisco.com>
In-Reply-To: <B788D545-BDC0-47A7-BE1B-76E2A5F60509@cisco.com>
Date: Thu, 13 Mar 2014 09:26:49 +0100
Message-ID: <022d01cf3e95$fafd57b0$f0f80710$@stahl@intertex.se>
MIME-Version: 1.0
Content-Type: multipart/related; boundary="----=_NextPart_000_022E_01CF3E9E.5CC1BFB0"
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AQHPMa7rPKSdbWG+c0KNNHF0bIvNNJrGUOCAgBSaP9A=
Content-Language: sv
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/ae0n1il_-oPBGkfZPnHgOcuGusw
Cc: rtcweb@ietf.org, tram@ietf.org
Subject: Re: [rtcweb] [tram] RTP header extension for "Interfacing to QoS" WAS: I-D Action: draft-thomson-tram-turn-bandwidth-00.txt
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Mar 2014 08:27:08 -0000

For the “mission to bring quality to real-time traffic over our best effort
Internet” I have started
<http://www.ietf.org/mail-archive/web/tram/current/msg00331.html>
http://www.ietf.org/mail-archive/web/tram/current/msg00331.html

[tram] [rtcweb] The way to "Interfacing to QoS", A level 3-5
IP/IETF/WebRTC-thing how to interface to lower level's QoS-stuff [1] [2]

 

 

*SUMMARY* to be brought into the common "Interfacing to QoS"-thread

(From there it will be clearer how to split “Interfacing to QoS” into
[tram], [rtcweb] and [avtext]-threads.)

 

The steps A), B) to D) for achieving the mission:

http://www.ietf.org/mail-archive/web/tram/current/msg00273.html

 

a: Step D) using the RTP extension header RCF5285 (that works for all IP
network types) can obsolete step C) (Using STUN-attributes which is an
incomplete transfer of traffic info to the network level.) We need traffic
info (bandwidth and type) that is unchanged through various networks and can
be read and used by network elements (here in a TURN-server flow) and for
traffic in both directions.

 

b: Here it is only discussed for RTP (not for the data channel), but it
could be good to also consider this for the webrtc data channel. I will
discuss that in next email responding to Magnus’
http://www.ietf.org/mail-archive/web/rtcweb/current/msg11549.html coming
soon.

 

c: How to find and pick out the traffic information from the RTP extension
header when RCF 5285 is used for this purpose is trivial, especially when
“in-band” in a known TURN-flow. 

 

There are further detail in-line below for Pål, Colin, Magnus and other
interested.

 

/Karl

 

Footnotes:

 

[1] Please do not divert or confuse this with QoS methods in themselves
(like diffserve, bandwidth reservation, congestion control etc.) This is the
interface from the application to the network level, where all networks
types should be able to use the traffic information for QoS methods relevant
to the particular network.

 

[2] Here it is about recreation of the idea/intention of the RTP payload
type (PT) header that is not available for the network level anymore, by
instead having the application/browser filling the RTP header extension with
relevant traffic info that all IP network types can use. There will be more
detail in the response to Magnus’
http://www.ietf.org/mail-archive/web/rtcweb/current/msg11549.html coming
soon.

 

Från: Pal Martinsen (palmarti) [mailto:palmarti@cisco.com] 
Skickat: den 25 februari 2014 13:48
Till: Karl Stahl
Kopia: tram@ietf.org; rtcweb@ietf.org; Oleg Moskalenko; Alan Johnston;
Yoakum, John H (John)
Ämne: Re: [tram] [rtcweb] I-D Action:
draft-thomson-tram-turn-bandwidth-00.txt

 

On 24 Feb 2014, at 23:22 pm, Karl Stahl < <mailto:karl.stahl@intertex.se>
karl.stahl@intertex.se> wrote:

 

Hi Pål,

 

You did not comment nor answer, in response to any of:

 <http://www.ietf.org/mail-archive/web/tram/current/msg00275.html>
http://www.ietf.org/mail-archive/web/tram/current/msg00275.html

 <http://www.ietf.org/mail-archive/web/tram/current/msg00273.html>
http://www.ietf.org/mail-archive/web/tram/current/msg00273.html

 

Sorry about that. I did not notice any clear items to answer or comment on. 

[Karl -regarding “Interfacing to QoS”] From what you answer below, I
conclude:

a: step D) (that works for all IP network types) can obsolete step C) (using
STUN-attributes which is an incomplete transfer of traffic info to the
network level) (We need a quality marking that is unchanged and can be read
and used throughout various networks and for traffic in both directions).

b: here it is only discussed for RTP (not for the data channel, but I will
discuss that in next email responding to Magnus.

c: you have hesitations how to find and pick out the traffic information
from the RTP extension header when RCF5285 is used for this purpose, but
that is trivial, especially when “in-band” in a known TURN-flow. See further
below.

 

 

(DISCUSS/MALICE) by allowing the application/browser to transfer relevant
real-time traffic information (types and bandwidth) into every RTP package
by using the already IETF standardized RTP extension header RCF 5285, which
could be used by any current or future Internet (including OTT) network
where WebRTC real-time traffic may flow. It seems to have been standardized
already 2008 to allow such usage.





whether step D) can obsolete step C) (DISCUSS/MALICE) by allowing the
application/browser to transfer relevant real-time traffic information
(types and bandwidth) into every RTP package by using the already IETF
standardized RTP extension header RCF 5285, which could be used by any
current or future Internet (including OTT) network where WebRTC real-time
traffic may flow. It seems to have been standardized already 2008 to allow
such usage.

 

[Pål] draft-martinsen-tram-discuss is intended to solve internal application
stream prioritisation pr flow, i.e. it is more important for me to get the
video stream across than my application stream at this moment in time. Its
intention is to describe the 5-topple the STUN message was sent on. 

 

Moving to a pr packet prioritisation is interesting as it can solve the
bundle problem, and mark the relative importance of specific video frames
(I-Frames for example). Since its pr packet the network element might not
keep stream state so it might be easier that way. But the information needs
to be in a fixed offset for quick network element processing. And we want to
describe other streams than just RTP. That makes RTP header extensions
unsuitable. 

 

QoS related step C) draft-martinsen-tram-discuss can then be taken out of
TRAM, and step D) (that was never intended to be handled by TRAM anyway)
will be handled elsewhere.

 

[Pål] I was hoping to argue that the draft is only new signalling of old
concepts (DSCP and ECN). In the end it is the WG that decides if there is
enough interest. 

 

 

I have repeated my suggestion to RTCWEB WG from the October discussions on
the relevant [rtcweb] [avtext] [mmusic] lists
<http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html>
http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html to
introduce the QoS related step D) into draft-ietf-rtcweb-rtp-usage
suggesting usage of RFC5285, where traffic information in RTP packets simply
would be filled by any browser under any OS.

 

Without step B), TRAM “Enforcing the real-time traffic through the
offered/discovered TURN servers”, the real-time traffic may happen through
the IP default gateways often congested by data traffic and QoS insensitive
streaming video and file sharing. Without specific QoS methods at those
points, the network raw bandwidth capacity may have to be 10-folded to
achieve sufficient QoE when WebRTC usage becomes popular. Methods like
DISCUSS addresses such things occurring when STUN instead TURN is used (by
allowing flows into such congestion points), but only provides direct
traffic info for outgoing (not incoming) real-time traffic and locally,
therefore are not even applicable to reservation type of networks like Cable
Networks and Mobile OTT.

 

[Pål] If both clients supports draft-martinsen-tram-discuss you would get an
bi-directional end to end description of the flow that works through NAT.

The information in the STUN packet can be used to remark DSCP bits to
whatever values that is of best use for the network the packet is flowing
though.

[Karl] Again, this is only applicable for all-diffserve networks and you
cannot even route the flow to a quality pipe, not even a duplicate pipe that
is not the default gateway surf pipe (which is a very common method used for
VoIP).

 

[Pål] I dont see how TURN gives that ability. 

[Karl - ???] Haven’t we many times agreed that you can add exactly the same
STUN-attributes to the TURN allocate request AND in addition to that,
control where the flow goes?

BUT THIS IS ALSO INSUFFICIENT. 

I discarded such (similar) interface to QoS already October 22

 <http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html>
http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html 

…

PS Microsoft seems to have done work in this field, defining a proprietary
attribute “MS Service Quality”; 

However that seems to apply to the TURN server allocation request and would
therefore:

--- Apply to the whole UDP flow, and could not be set for each stream
individually (with different requirements), and

--- Does not handle the bandwidth requirement for incoming real-time traffic
(required to reserve in RSVP type of networks)

However the quality attributes conveyed and their encoding may  be
considered.

This is 2.2.2.19 MS-Service Quality Attribute from 

 <http://msdn.microsoft.com/en-us/library/cc431507(v=office.12).aspx>
http://msdn.microsoft.com/en-us/library/cc431507(v=office.12).aspx 

…

[Pål] Once the channel is bound you only have a channel number in front of
the UDP payload. And TURN is designed to carry alls sort of traffic. For
this to work there must be some sort of only webRTC traffic is allowed
through this TURN server. (And Ill bet bitorrent or others find a way to
mimic webRTC to set up only a data channel..)

[Karl] I owe Simon a response to misuse of prioritized channels – will do
later after first collecting these diversions. This has nothing to do with
STUN vs TURN! TURN just gives the addition of ALSO directing the flow. In
both cases it is insufficient to transfer traffic info in the STUN/TURN
attributes.
 

That would leave certain network types to investing in raw bandwidth
increase, instead of simply borrowing the bandwidth (from much larger data
traffic and QoS insensitive streaming video and file sharing at no adverse
effect) and making that borrowed no-cost bandwidth very valuable for the
carriers when delivering to their customers.

I know a few of you Cisco guys are among the ones that have been fighting
against the general “it is all about bandwidth” and “it will go away with
time”-attitude within IETF work, e.g. see
<http://www.ietf.org/mail-archive/web/rtcweb/current/msg09031.html>
http://www.ietf.org/mail-archive/web/rtcweb/current/msg09031.html, but the
pointers given in the current QoS discussion within TRAM:

 

(i) will *not allow* ISP’s to use already available and currently deployable
quality IP pipes for real-time traffic to also be used for WebRTC generated
real-time traffic.

 

(ii) will *not allow* some network types (e.g. Cable Networks and Mobile
OTT) to borrow bandwidth from data traffic and QoS insensitive streaming
video and file sharing. All networks will *also be inhibited* from the very
common and used method of simply providing an extra IP pipe (often provided
over the same wire but level-2 separated) dedicated for real-time usage

(*by resisting TRAM implementation of step B*)

Newer, fiber only type of networks, can still borrow bandwidth at no extra
cost, *by proprietary usage* of RFC5285 by browsers.

 

(iii) will leave most ISPs to *only use* raw bandwidth capacity increase
that may has to be 10-folded to reach sufficient QoE when WebRTC usage
becomes popular (if at all possible, since unmanaged IP pipes intermittently
are filled, whatever bandwidth is available).

 

Further explainations about QoS methods and their implementation were given
a few days ago in:

 <http://www.ietf.org/mail-archive/web/tram/current/msg00274.html>
http://www.ietf.org/mail-archive/web/tram/current/msg00274.html

 

(i), (ii) and (iii) will *seriously delay* usage of telepresence capable and
quality demanding WebRTC (bandwidth being around 30 times higher over best
effort Internet, than telephony over quality managed networks) and will
*vastly increase cost* for ISPs to offer WebRTC with good QoE.

 

Below you are giving pointers saying “They are currently working on a
problem-statement draft and a use-case draft, any input to those would be
very helpful.” Those are unnecessary, risking leading to (i), (ii) and (iii)
above.

 

[Pål] We find them quite useful. It allows us to engage with potential users
and see if there are real problems to solve. If the customer/users do not
see a problem there is little incentive for us to invest in creating a
solution that nobody wants. That said, it is always the danger of crating a
to complicated solution that solves to many problems.  

[Karl] This is QoS stuff. Let’s stick to “Interfacing to QoS” and with a
general interface, that the “QoS device including the TURN server” should be
able to do whatever network QoS-method you arrive at.



So are pointers such as: “RMCAT where congestion avoidance for RTP is being
developed”. TRAMs Milestone 3 is for the purpose of directing real-time
traffic where congestion control isn’t already in place. Using RFC5285
available since 2008, to fill traffic information in RTP packets (step D))
is probably a necessity for most future “congestion control” discussed.

 

[Pål] There are some good example of RTP header extension usage. For example
draft-avtext-berger-framemarking. But that information may very well be
encrypted and unavailable to the network element.

[Karl] You (Pål), Colin and Magnus seem to worry about trivial things when
using the RTP header extension, for transferring traffic information from
the application (here browser) to the network level. Don’t worry! J  These
are really trivial things :

- If we select to use the RTP extension header RCF5285 for this purpose, it
should of course NOT use RFC6904 encryption, since it is meant for network
level reading/usage!

- Finding the RTP header extension (especially when “in-band” in a known
TURN-flow) is really trivial.  

Linking each RTP-flow by its SSRC and sequence number, and picking exactly
the right traffic type and bandwidth parameters is no problem (I am not
aware of any “Zero CPU” DPI device that needs to be considered – But if we
can ease the job, we should.)

This link shows much more advanced things are available in Cisco devices: 

http://www.cisco.com/en/US/products/ps6616/products_white_paper09186a0080110
040.shtml#wp39132 

and the ADSL 2+ modem doing a lot of advanced QoS-stuff, described in 

http://www.ietf.org/mail-archive/web/rtcweb/current/msg09031.html 

is our Intertex/Ingate IX78, just powered by a 6 USD 264 MHz ARM ADSL chip
set CPU and we have implemented a check box TO REMOVE the RTP Header
extension (for the ugly reason that the ITSP’s billing system requires G.711
VoIP packets of a certain length) – It does not take noticeable CPU power to
do this at 100 Mbps wire speed! 



/Karl 

.-.

Pål-Erik





This chicken-and-egg circular also applies to RTCWEB direction of QoS issues
to:

 <http://datatracker.ietf.org/doc/draft-dhesikan-tsvwg-rtcweb-qos>
http://datatracker.ietf.org/doc/draft-dhesikan-tsvwg-rtcweb-qos

focusing on DSCP-mapping without even mentioning RFC 5285 available since
2008, to fill traffic information in RTP packets where it  is a necessity
and will allow:

(1) applications to directly convey QoS related real-time traffic info to
the network at points where RTP flow is directed to by TRAM Milstone 3, to
be used by *any network element implementing any suitable QoS methods for
the particular network* for

(2) *all* WebRTC browsers *and* dedicated clients (not using WebRTC), under
*all* OSs, and *all* current and future IP networks

(3) *without* having to be forced into application specific networks (PSTN,
IMS) instead of using the Internet (including OTT).

 

The only activity required, is to call for ISPs’ review whether the traffic
information transferred by RFC 5285 is sufficient for current and future
needs in their network as suggested in
<http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html>
http://www.ietf.org/mail-archive/web/rtcweb/current/msg09129.html

<snip>

…two parameters (e.g. two bytes each) are encoded into the RTP header
extension:

 

A) The maximum bandwidth requirement: Two bytes could contain everything
from some bps for real-time text to Gbps for future 3D supersize
telepresence… on a logarithmic scale.

 

B) The quality characteristics for the stream, with the highest bit set to
1, we could allocate a bit each for quality type e.g:

Best Effort, Audio, Video, Supplemental Video, Gaming, Data, Delay
Insensitive (e.g. video streaming), Minimum Delay, Reliable Delivery,
Prioritize X, Variation Y, that could be combined as required to describe
the stream.

 

And with highest bit set to 0, there could instead be a number for special
usage that does not fit the general description of the individual bits.

</snip>

 

Then this could be assigned numbers to have the RFC in place.

With TRAM milestone 3 also place,

market forces will drive ISPs and browser makers to implement just that,
without even having it MUST-established.

“Who does not want a “WebRTC-Ready” Internet access?” and

“Who wants to use Chrome, if Firefox, Internet Explorer or Safari comes with
much better QoE?” and vice versa.

 l

Please see further emails soon following this one, for details and history.

 

/Karl

 

Från: tram [ <mailto:tram-bounces@ietf.org> mailto:tram-bounces@ietf.org]
För Pal Martinsen (palmarti)
Skickat: den 21 februari 2014 10:37
Till: tram@ietf.org
Kopia: Karl Stahl; Oleg Moskalenko; Alan Johnston; Yoakum, John H (John)
Ämne: Re: [tram] I-D Action: draft-thomson-tram-turn-bandwidth-00.txt

 

Hi,

 

I agree the full QoS discussion should _not_ happen in TRAM. If you are
interested in helping out in that area I suggest you looking into the AEON
mailing list at:  <https://www.ietf.org/mailman/listinfo/aeon>
https://www.ietf.org/mailman/listinfo/aeon . They are currently working on a
problem-statement draft and a use-case draft, any input to those would be
very helpful. ( <http://tools.ietf.org/html/draft-eckel-aeon-use-cases-01>
http://tools.ietf.org/html/draft-eckel-aeon-use-cases-01,
<http://tools.ietf.org/html/draft-eckel-aeon-problem-statement-00>
http://tools.ietf.org/html/draft-eckel-aeon-problem-statement-00).

 

That said, STUN have a few nice characteristics that makes it a perfect
candidate for transporting some of the QoS information.  IMHO that would be
extending the STUN spec and should be within the TRAM charter.  The main
goal of draft-martinsen-tram-discuss was to show how already existing QoS
mechanisms could be transported with STUN to provide more value, and to
start the discussion if TRAM is the appropriate place to have those on the
wire format discussions.

 

.-.

Pål-Erik