[R-C] Feedback mechanisms

Harald Alvestrand harald at alvestrand.no
Mon Aug 13 01:03:06 CEST 2012


Is there value in going completely extreme and define a generic header 
extension for piggybacking RTCP in RTP packets?

That way, whatever we define in RTCP can also be carried as a header 
extension, if it makes sense to do so.

Of course, it may rarely make sense.

On 08/12/2012 06:26 AM, Randell Jesup wrote:
> On 8/11/2012 6:50 PM, Mo Zanaty (mzanaty) wrote:
>> Michael Welzl <michawe at ifi.uio.no> wrote:
>>> ...piggybacking ACKs on RTP payload...
>> Randell Jesup <randell-ietf at jesup.org> wrote:
>>> ...use header extensions as an alternate channel for RTCP...
>> Several implementations do either or both of these things, in 
>> proprietary ways obviously. I think both should be standardized, 
>> although this may be an unpopular view in AVT.
>
> I *may* agree, though I also agree it may be unpopular.
>
> I've had to do it because of using SBCs configured not to pass RTCP at 
> all and didn't like RTCP on the RTP port, and I needed it for 
> PLI/etc.  But that was a rare homegrown (though ISP-wide) SBC; even 
> misconfigured SBCs typically support RTCP-mux I imagine.  And I did it 
> before RTCP-mux was defined, and was part of why I supported RTCP-mux.
>
> Once you start pushing enough data to double the normal packet rate, 
> the per-packet overhead can get to be a problem, especially if you're 
> on a low-bandwidth link.  Instead of (say) 30 video + 50 audio packets 
> per second, you have an additional 80.  Sending them in header 
> extensions would save around 20Kbps, perhaps a little more - marginal 
> if you have 250Kbps or up, but significant if you have (say) 128Kbps, 
> and already are losing around 25Kbps to overhead.  My old phones would 
> run 30fps down to total bandwidth of as low as 60-80kbps, though it 
> was running QCIF down that low (plus iLBC 20ms - 15Kbps+overhead, so 
> video payload got as low as 40, even 30Kbps). At those bitrates, 
> 20Kbps is huge.
>
> I'll admit given RTCP-mux (and assuming nothing interferes with 
> negotiation of it!), the argument is largely one of efficiency in 
> bandwidth and packet-rate.  And this is much less of an issue if 
> you're not sending circa 1 feedback message per packet.
>
> I assume this would fall in CORE.
>
>> Note that there is no standardized generic ACK. I just submitted an 
>> errata to the RFC 4585 ABNF to clarify that "ack" (without 
>> parameters) is invalid since there is no generic ACK. There is only 
>> "ack rpsi" which is specific to H.263 Annex N, and "ack app" which is 
>> proprietary.
>
> I think there was a generic ACK in an earlier draft, but it was 
> removed (I think a hole in the code list was left to avoid breaking 
> people working with the draft).
>
>> Beyond ACK, many other types of RTCP feedback would benefit from the 
>> efficiency of piggybacking in RTP header extensions. (NACK, ECN, FIR, 
>> TMMBR, PLI, SLI, etc.) So a general mechanism for all RTCP feedback 
>> may be more useful than a single mechanism for ACKs.
>
> Quite true.  The toughest part is to define when such a thing should 
> be used over RTCP-mux.  It would make using other header extensions 
> tricky (though possible), and it would imply a circa up to 20, 30, 
> perhaps in a few cases 100ms delay in sending feedback (avg circa 1/2 
> that; less if they can piggyback on other RTP streams).  If there's 
> "important" data you could send a direct RTCP and not wait.
>



More information about the Rtp-congestion mailing list