Re: [rtcweb] Review of draft-ietf-rtcweb-rtp-usage

Magnus Westerlund <magnus.westerlund@ericsson.com> Fri, 09 May 2014 09:53 UTC

Return-Path: <magnus.westerlund@ericsson.com>
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 712071A0237 for <rtcweb@ietfa.amsl.com>; Fri, 9 May 2014 02:53:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
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 jjc5SGXRFm6Z for <rtcweb@ietfa.amsl.com>; Fri, 9 May 2014 02:53:50 -0700 (PDT)
Received: from sesbmg22.ericsson.net (sesbmg22.ericsson.net [193.180.251.48]) by ietfa.amsl.com (Postfix) with ESMTP id A53A31A023D for <rtcweb@ietf.org>; Fri, 9 May 2014 02:53:49 -0700 (PDT)
X-AuditID: c1b4fb30-f790e6d000001067-d4-536ca5a84998
Received: from ESESSHC009.ericsson.se (Unknown_Domain [153.88.253.124]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 86.12.04199.8A5AC635; Fri, 9 May 2014 11:53:44 +0200 (CEST)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.47) with Microsoft SMTP Server id 14.3.174.1; Fri, 9 May 2014 11:53:43 +0200
Message-ID: <536CA59F.3090707@ericsson.com>
Date: Fri, 09 May 2014 11:53:35 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: Emil Ivov <emcho@jitsi.org>, Colin Perkins <csp@csperkins.org>
References: <CAOW+2dsdEZyzs4Qu6+z55JcgiwaOWNQ0pHz=8-buuH1+3TJj8w@mail.gmail.com> <D3F43C35-2B37-4111-8803-46B6DED248E7@csperkins.org> <C9834672-6685-471C-83B9-B52CB8532573@gmail.com> <2CE99351-87F9-4815-913A-092C1B703D8A@csperkins.org> <536BB52B.50102@jitsi.org> <A40F4E8F-1F9A-4A8D-9F5D-F318B8FE3224@csperkins.org> <536BFBC2.4090107@jitsi.org>
In-Reply-To: <536BFBC2.4090107@jitsi.org>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrNLMWRmVeSWpSXmKPExsUyM+Jvje6KpTnBBis/CFksf3mC0WLNzgks Fmv/tbM7MHtMu3+fzWPJkp9MHv/fBAYwR3HZpKTmZJalFunbJXBlnN80ib1gvlHF7/MfmBsY L2p0MXJySAiYSKzZvIAdwhaTuHBvPVsXIxeHkMBRRolLB76zQDjLGCWOzn3CDFLFK6AtsX7v PkYQm0VARWLhpHksIDabgIXEzR+NbCC2qECwxIaHf9kh6gUlTs58AlYjIuAkMWHmTrA5zALq EncWnwOrERawllg28yzU5htMEn+WTgJr4BTQlPja/QBoGQfQeeISPY1BEL0GEkcWzWGFsOUl mrfOBpspBHRbQ1MH6wRGoVlIVs9C0jILScsCRuZVjKLFqcVJuelGRnqpRZnJxcX5eXp5qSWb GIGhfXDLb4MdjC+fOx5iFOBgVOLhVTiWHSzEmlhWXJl7iFGag0VJnPfbWfdgIYH0xJLU7NTU gtSi+KLSnNTiQ4xMHJxSDYyTvj89ccToP2dZKTvDo/0dJS5anA8f9J5wzJCd8M12Hydv6zKu abNVtqTcE05cXHqax3b5hHXtXsyf13b0djLsdDopo3j5s/VeG+VlZl1xh5eukb2+ftay/Q9+ /Njp1PFAO+3zQY0KlQqphZ0Sh7e77vLrOVikFeK2O1fgwT4j/ffPBPvlOCyVWIozEg21mIuK EwGuUY/BTgIAAA==
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/IvnaN6Hx7eehObofu-ZlJMqS8fQ
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Review of draft-ietf-rtcweb-rtp-usage
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: Fri, 09 May 2014 09:53:52 -0000

On 2014-05-08 23:48, Emil Ivov wrote:
> 
> 
> On 08.05.14, 21:02, Colin Perkins wrote:
>> On 8 May 2014, at 17:47, Emil Ivov <emcho@jitsi.org> wrote:
>>> On 08.05.14, 14:54, Colin Perkins wrote:
>>>> On 8 May 2014, at 13:43, Bernard Aboba <bernard.aboba@gmail.com>
>>>> wrote:
>>>>>> On May 8, 2014, at 3:45, Colin Perkins <csp@csperkins.org>
>>>>>> wrote: The fix here is to delete “In the absence of a
>>>>>> concrete congestion control algorithm, all”, leaving the text
>>>>>> as “WebRTC implementations MUST implement the RTP circuit
>>>>>> breaker…” since as you note, we want the circuit breaker even
>>>>>> if there is congestion control.
>>>>>
>>>>> [BA] The question I have is whether this would be widely
>>>>> implemented. The Circuit Breaker algorithm pauses sessions, but
>>>>> has no mechanism to resume them, so it increases brittleness.
>>>>
>>>> The circuit breaker is a mechanism of last resort. If we've
>>>> designed it correctly, it will only stop sessions that are
>>>> otherwise unusable.
>>>
>>> Shouldn't we have the "if" cleared before making this a MUST? It is
>>> not clear to me that we’ve managed to avoid excessive false
>>> positives for example.
>>
>> The experiments that I, Varun, and Zahed have done look to show the
>> circuit breaker behaving as desired.
> 
> That sounds interesting and I'd actually be happy to see the data
> although I can easily believe that circuit breakers could come in handy
> in certain situations.
> 
> draft-ietf-avtcore-rtp-circuit-breakers-05 contains some very useful
> guidelines on determining how and when an application might want to
> consider employing them.
> 
> So I am fine with the concept ... *as long as* the choice is left to the
> application.
> 
> I don't believe that any of the breakers however have the reliability to
> only trigger in cases where ceasing media transmission is the right
> thing to do. I don't think such a thing is possible given how use cases
> and requirements vary from one application to the next.

The circuit breakers triggers when the conditions are really bad. I
think the one condition which is most likely to give a false positive is
the loss of feedback, i.e. that one loses all RTCP packets under 3
regular reporting intervals.

It is very hard to define programmatic rules that always do the "Right
thing" here. Because with hindsight you can determine one action more
appropriate than another.

> 
>> If you know of scenarios where
>> there are false positives, I’d like to see your data so we can
>> improve the circuit breaker.
> 
> It's funny you should ask. I am currently having connectivity issues and
> my media transmissions would every now and then be interrupted for
> periods that go beyond two or three RR packets. I am very happy that my
> sessions just resume when things go back to normal.

Well, the important aspect here is how your sending client behaves
during these outages. The circuit breaker do requires you to have cut
back the transmission in these conditions to less than a 10th of the
nominal rate during these outages if the circuit breaker triggers. That
means that you can continue to send low bit-rate traffic to detect when
the path is restored and ramp up again with your congestion control.
Thus, I don't see circuit breakers preventing a congestion control
algorithm to operate under these conditions and maintain the session. If
the congestion control isn't there that is another question.

> 
> In cases like demo stands or some forms of video surveillance, lack of
> media for several (tens) of seconds is not really a problem, whereas a
> break that requires human intervention could be one.
> 
> Cases where SFUs decide to selectively NOT forward some RTP but forward
> all RTCP would also trigger false positives, while they are not a
> problem for applications that are aware of their behaviour.

A SFU must provide consistent RTCP, i.e. RTCP SRs from the SFU must
provide RTCP statistics for what is actually forwarded, not what the SFU
received from the originating RTP sender.

> 
> IP layer network mobility à la NEMO, temporary uplink saturation because
> someone mistakenly started a torrent client (and quit a few seconds
> later), someone tripping over a cable and then re-plugging it, buggy NAT
> gateways ... all of those could potentially trigger circuit breakers and
> in all these cases both the application and the user may prefer that
> they don't.

Triggering the circuit breakers just requires the sending client to have
taken sufficient action to prevent persistent congestion. If it does it
can continue to transmit.

> 
> Obviously browsers are a special case but we already have consent
> freshness there and that likely covers most of the concerns for
> undesirable streaming that circuit breakers address.

The point of the circuit breakers is to prevent situations where RTP
senders continue to blast away into a persistent congestion situation or
onto paths that are broken.

> 
> So again, I feel circuit breakers could be a useful informative
> reference but they can be harmful if REQUIRED.

I think they will from a protect the network perspective needs to be
REQUIRED. As I have tried to explain above, there are actions that are
allowed within the circuit breaker specification that allows a sender to
throttle its traffic sufficiently when it detects a path breakage, to
keep monitoring it until it recovers and then resume transmission. But,
if the implementation in the sender does not care to implement such
functionality, the circuit breaker do require them to cease
transmission. But, it do become a implementers choice.

In addition I don't think IETF should publish an RFC for a RTP media
plane that doesn't have some REQUIRED behaviour when it comes to
protecting the network in persistent congestion situations.

Cheers

Magnus Westerlund

----------------------------------------------------------------------
Services, Media and Network features, Ericsson Research EAB/TXM
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Färögatan 6                 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------