Re: [rtcweb] RTP Usage: Is RTP Retransmission REQUIRED or RECOMMENDED

Randell Jesup <randell-ietf@jesup.org> Thu, 05 July 2012 05:11 UTC

Return-Path: <randell-ietf@jesup.org>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E88D221F856C for <rtcweb@ietfa.amsl.com>; Wed, 4 Jul 2012 22:11:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.026
X-Spam-Level:
X-Spam-Status: No, score=-2.026 tagged_above=-999 required=5 tests=[AWL=0.573, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ox6hjpWAdceR for <rtcweb@ietfa.amsl.com>; Wed, 4 Jul 2012 22:11:36 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id 0A52821F8569 for <rtcweb@ietf.org>; Wed, 4 Jul 2012 22:11:35 -0700 (PDT)
Received: from pool-108-16-41-249.phlapa.fios.verizon.net ([108.16.41.249] helo=[192.168.1.12]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <randell-ietf@jesup.org>) id 1SmeLz-0002WF-U0 for rtcweb@ietf.org; Thu, 05 Jul 2012 00:11:48 -0500
Message-ID: <4FF521DF.1090202@jesup.org>
Date: Thu, 05 Jul 2012 01:10:55 -0400
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20120614 Thunderbird/13.0.1
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <4FEAB80A.7040207@ericsson.com> <4E5389B4-F54C-4060-952E-8319A801FDC3@iii.ca> <4FED4E81.7000607@ericsson.com> <B7F8286E-BDB0-4033-991C-A54A0A1227EB@iii.ca> <A8D45DD6-4E82-413F-8978-C6A80B2806DA@edvina.net> <CAOJ7v-1SwvqDrzOGGSwFjkmnqPmF8PVvbOoGrtbtx6qk2T_R-w@mail.gmail.com> <4FF217DD.1060607@jesup.org> <4FF451C7.5080804@ericsson.com>
In-Reply-To: <4FF451C7.5080804@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - r2-chicago.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.org
X-Source:
X-Source-Args:
X-Source-Dir:
Subject: Re: [rtcweb] RTP Usage: Is RTP Retransmission REQUIRED or RECOMMENDED
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
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, 05 Jul 2012 05:11:37 -0000

On 7/4/2012 10:23 AM, Stefan Hakansson LK wrote:
> On 07/02/2012 11:51 PM, Randell Jesup wrote:
>>
>>> Again, this is about making _support_ for retransmission a requirement,
>>> not _use_.
>>
>>
>> If you don't mandate use, what does mandating "support" buy you?  An
>> implementation (see above about PSTN gateways) might always decline to
>> use retransmission, so what does MUST (REQUIRE) buy you?  I say SHOULD
>> (RECOMMEND), with a statement that it's strongly recommended it be
>> supported if video is supported, especially for non-single-purpose
>> devices (i.e. browsers).
>>
>> In either case, you need to think about who decides to use re-xmit or
>> not, what influences that, and if the app has visibility into this.
>> Someone could as an rtx-time=0 to the SDP.  Or not include one, but
>> never actually retransmit a packet regardless of NACKs - it could just
>> repair via IDR (or other means).
>>
>> So here's a real problem related to retransmission: since the request is
>> not specific and negotiated (it's normally a generic NACK), the receiver
>> who sent the NACK has no idea if it will get a retransmission, an IDR
>> (or IDR slice), another form of repair (pframe/slice against
>> known-decoded frame - rpsi/etc), or nothing at all (NACK lost). So, it
>> doesn't know if it should freeze the video or play with errors. It has
>> to decide if it *thinks* the sender will use retransmission, or if it
>> doesn't, does the receiver want to freeze video until an IDR or other
>> repair is done, which might be a while.
>
> Isn't retransmission negotiated using "rtx", "atp" and so on?

Support for it is.  However, negotiating support for it doesn't solve 
the problem of not knowing how the sender will respond to a NACK (or 
SLI/RPSI/etc).  Generally, the sender has to make the decision, but the 
receiver has to guess.

>
> One way of removing the uncertainty would be to require that all 
> browsers support RTP retransmission: This way, any RTP endpoint 
> sending a NACK to a browser would know that that packet would be 
> retransmitted (given that congestion does not prohibit, or NACK packet 
> is lost etc.).

Um, no.  Just because both sides support retransmission does not mean 
that a NACK will generate a retransmission.  Retransmission only makes 
sense in some instances, and there's no guarantee that retransmission 
will be possible (for example, the requested packet might have timed out 
and been thrown away).

>
> If we have this in place, I'm confident that implementors will quickly 
> develop strategies on how and when to _use_ retransmission in the best 
> way. There has already been input made on its usefulness.

Sure, and they will anyways.  RECOMMENDED or REQUIRED, it really doesn't 
matter to the implementation.  For that matter, even if REQUIRED there's 
nothing that says it has to be offered or accepted.  Even if that were 
mandated, the implementation could accept but with a 0-length rtx-time.  
So it's really unclear what REQUIRED buys you that RECOMMENDED doesn't.

>
> Maybe the problem with legacy not always supporting retransmission is 
> not that big. First of all, legacy is to a large extent audio only 
> (e.g. PSTN), and no one is arguing for retransmission there. Secondly, 
> I fail to see that this situation would be improved in any way if 
> browsers are only recommended (and not required) to support RTP 
> retransmission.
>
> So I think we should require rtcweb capable browsers to support RTP 
> retransmission.
>
>>
>> We also need to think about when a receiver should use SLI or RPSI.  PLI
>> can also be used and should be if the other options don't negotiate (so
>> it's important to offer it).  Certainly it's more work to keep track of
>> the contents of each packet (slices, etc), especially in things like
>> H.264 NALU aggregation packets, than it is to just respond to an SLI.
>>
>> That said, my previous systems just used NACK and let the sender decide
>> the correct repair, but I wasn't leveraging slices and wasn't using
>> retransmission, so there was only minor complexity (looking at possible
>> reference frames).


-- 
Randell Jesup
randell-ietf@jesup.org