Subject: Re: [AVTCORE] RFC6679 ECN in RTP: intent of ect = 0, 1, or random?

From: Bob Briscoe <[email-masked]>
Date: Wed, 4 Nov 2015 08:50:38 +0000

Piers,

I realised I didn't send the mail thanking you for your response. Thank 
you - v useful, and confirmation of my vague memory of events.

1. Would the authors (and wider community) be happy to allow ECT(1) not 
to be set-aside for future anti-cheating use, as long as there was 
another way, in principle, for the sender to check for cheating?

For TCP, we worked out a way for the sender to check for cheating 
without burning a codepoint - by the sender introducing one or two CE 
codepoints of its own, and checking the receiver reports them. Would 
this be harder for RTP? Are the receiver reports deterministic enough 
for the sender to determine whether codepoints it injected are correctly 
counted in the next report?

2. A couple of days after I posted the original question, we posted the 
-00 individual draft aiming to start the process of repurposing ECT(1). 
You will see the sentence in the scope section 
<https://tools.ietf.org/html/draft-briscoe-tsvwg-ecn-l4s-id-00#section-1.3>

See security considerations for discussion on feedback integrity checking.

Bob

On 19/10/15 10:15, Piers O'Hanlon wrote:
> Hi Bob,
>
> I think the reasoning was that ECT(1)/random could potentially be used to detect cheating/failures as mentioned in section 7.4, but I can't see that it's going to make a lot of difference if ECT(1) is not used.
>
> Piers
>
> On 17 Oct 2015, at 22:59, Bob Briscoe wrote:
>
>> Guys,
>> [Ignore last identical email - I left the list off the distr in error]
>>
>> I'm writing a draft to propose a new use for ECT(1).
>>
>> In reading RFC6679, It says that the there is no intent to use an ECN nonce.
>> Also it says the receiver might want to advise the sender not to use ect=random, if its behind a header compression link. And that ect=0 is recommended and the default.
>>
>> But it doesn't seem to actually say why a sender might send ECT(1) instead of ECT(0). Or why a sender might use the two randomly. Or why a receiver might ask for ect=1, or ect=random.
>>
>> I'm trying to work out whether there would be any detriment to RFC6679 if it couldn't use ECT(1). It looks like not.
>>
>>
>> Bob
>>
>> -- 
>> ________________________________________________________________
>> Bob Briscoehttp://bobbriscoe.net/

-- 
________________________________________________________________
Bob Briscoehttp://bobbriscoe.net/

---

From: Colin Perkins <[email-masked]>
Date: Thu, 5 Nov 2015 16:34:32 +0900

Bob,

> On 4 Nov 2015, at 17:50, Bob Briscoe <[email-masked]> wrote:
> 
> Piers,
> 
> I realised I didn't send the mail thanking you for your response. Thank you - v useful, and confirmation of my vague memory of events.
> 
> 1. Would the authors (and wider community) be happy to allow ECT(1) not to be set-aside for future anti-cheating use, as long as there was another way, in principle, for the sender to check for cheating?

I have no objection. You might check with the RMCAT chairs, since some of their proposals make use of ECN with RTP, but I doubt this will be a problem.

> For TCP, we worked out a way for the sender to check for cheating without burning a codepoint - by the sender introducing one or two CE codepoints of its own, and checking the receiver reports them. Would this be harder for RTP? Are the receiver reports deterministic enough for the sender to determine whether codepoints it injected are correctly counted in the next report?

The sender could easily set a CE mark on a small number of packets it’s sending. For unicast cases, where there’s an explicit control loop, it should be able to correlate this with the returned RTCP feedback. Where it might be difficult is with open loop layered multicast congestion control, where some receivers might see the CE mark and drop a layer since they don’t know it’s a synthetic mark.

Colin

> 2. A couple of days after I posted the original question, we posted the -00 individual draft aiming to start the process of repurposing ECT(1). You will see the sentence in the scope section <https://tools.ietf.org/html/draft-briscoe-tsvwg-ecn-l4s-id-00#section-1.3>
> 

-- 
Colin Perkins
https://csperkins.org/

---

From: Bob Briscoe <[email-masked]>
Date: Thu, 5 Nov 2015 10:04:55 +0000

Colin,

OK. In the fullness of time, if our proposal continues to get traction, 
I'll draft a little experimental bis to ECN in RTP to specify scalable 
congestion control. It will be v simple:

If using scalable cc:
* sender only uses scalable cc if (all) receiver(s) report ECN support
* sender rate equation is like TFRC equation, but with 1/p instead of 
1/sqrt(p)
* fall back to TFRC equation on loss rather than ECN (and also possibly 
on ECN accompanied by high variable delay) for 'a few' 1RTT (TBD)
* sender sets ECT(1) not ECT(0)
* no changes on receiver
* I think it would work deployed one RTP hop at a time, but that would 
have to be tested

But I'd want to implement and test it first, of course.

Bob

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/