Re: [MMUSIC] Signaling trickle support

"Pal Martinsen (palmarti)" <palmarti@cisco.com> Fri, 09 November 2012 12:45 UTC

Return-Path: <palmarti@cisco.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 727C221F867C for <mmusic@ietfa.amsl.com>; Fri, 9 Nov 2012 04:45:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.999
X-Spam-Level:
X-Spam-Status: No, score=-9.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_92=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lLEK5HA8EwnR for <mmusic@ietfa.amsl.com>; Fri, 9 Nov 2012 04:45:53 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) by ietfa.amsl.com (Postfix) with ESMTP id 1A32321F8675 for <mmusic@ietf.org>; Fri, 9 Nov 2012 04:45:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11144; q=dns/txt; s=iport; t=1352465153; x=1353674753; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=2Y4vdYykB/MDjvU4w9md1Xdg/JYDQelwsLzGduQ7sHk=; b=WLjayeWYFIbtKsJho1O1De4Wlt81gOsqg9d0Tnz0HQnVSNZ8n96uzNEc 0hu7+6uLglj533gz6QrIc67bOrQxtrr0QIYjNI1fbY9dA8IO+ComECoGy Oo2PqFG6KHKbSDY7BV6kqzcMzO1MGhlCZRIOiuBjPvN66q+w8g0lSyl/X Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Av8EALj6nFCtJV2Z/2dsb2JhbABEw0qBCIIeAQEBAwEBAQEPAVsEBwUHBAIBCA4DBAEBAQodBycLFAkIAgQOBQgTB4diBgudBKAPBIwShWdhA4gliiSSCoFrgm+CGQ
X-IronPort-AV: E=McAfee;i="5400,1158,6890"; a="140544045"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by rcdn-iport-7.cisco.com with ESMTP; 09 Nov 2012 12:45:29 +0000
Received: from xhc-rcd-x02.cisco.com (xhc-rcd-x02.cisco.com [173.37.183.76]) by rcdn-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id qA9CjTBJ013670 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 9 Nov 2012 12:45:29 GMT
Received: from xmb-rcd-x06.cisco.com ([169.254.6.76]) by xhc-rcd-x02.cisco.com ([173.37.183.76]) with mapi id 14.02.0318.001; Fri, 9 Nov 2012 06:45:28 -0600
From: "Pal Martinsen (palmarti)" <palmarti@cisco.com>
To: Emil Ivov <emcho@jitsi.org>
Thread-Topic: [MMUSIC] Signaling trickle support
Thread-Index: AQHNvPBFbiFQG76VOEudS1kVJ+wHIZffJpWAgADJ6YCAAHNpgIAACqiAgAADOYCAAAl0gIAAAcKAgAAKRoCAACwJAIAABQEAgAAxLwCAABGlgIAA374A
Date: Fri, 09 Nov 2012 12:45:27 +0000
Message-ID: <1373AC9C23D80E44856F5CF6F883ACAB0EA57C@xmb-rcd-x06.cisco.com>
References: <CABkgnnVR-prV8xgzPx9H-MYRM_vTui-8GGfTD0yy1JPvJJzrrQ@mail.gmail.com> <509AB627.1090507@alum.mit.edu> <509B5F87.1010807@ericsson.com> <7594FB04B1934943A5C02806D1A2204B027800@ESESSMB209.ericsson.se> <509BC947.709@cisco.com> <509BCBFB.2020305@jitsi.org> <CABkgnnVMf53Vk_Rd-0erZN4ZLDKM4ePOvMfLJnfOUNVxdWYLqQ@mail.gmail.com> <509BD563.9080808@cisco.com> <509BDE01.9060705@jitsi.org> <509C02F2.10303@cisco.com> <509C0724.3050300@jitsi.org> <509C3066.6020209@cisco.com> <509C3F33.8060809@jitsi.org>
In-Reply-To: <509C3F33.8060809@jitsi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.55.154.68]
x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19350.005
x-tm-as-result: No--56.093500-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <DF1FCCD4BAC40F4DA7796DA9F0A38BEF@cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "Flemming Andreasen (fandreas)" <fandreas@cisco.com>, "mmusic@ietf.org" <mmusic@ietf.org>, Paul Kyzivat <pkyzivat@alum.mit.edu>, Christer Holmberg <christer.holmberg@ericsson.com>
Subject: Re: [MMUSIC] Signaling trickle support
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Nov 2012 12:45:54 -0000

On Nov 9, 2012, at 24:24 AM, Emil Ivov <emcho@jitsi.org> wrote:

> Hey Flemming,
> 
> On 08.11.12, 17:21, Flemming Andreasen wrote:
>>>>> Since protocols like SIP don't really have things like XMPP disco and
>>>>> Cap Neg that would have allowed it, we were considering other options.
>>>>> One such option would be to send a trickle offer and format it in a way
>>>>> that would cause a non-trickle answerer to reject it in a _predictable_
>>>>> way. This would allow the offerer to retry with a regular ICE offer.
>>>> I thought the point with trickle-ICE was to reduce call setup latency
>>> It is.
>>> 
>>>> and hence you would want to make sure that things complete in as few
>>>> round-trips as possible. This doesn't seem to line up with that (?).
>>> The thing is that in cases where trickle ICE support cannot be
>>> pre-confirmed you have to fall back to half trickle. The probing
>>> requests would hence allow for an optimisation compared to that.
>> Somewhat unclear to me as it builds upon an assumption that it is 
>> somehow "more efficient"to probe than to collect candidates.
> 
> Indeed, this would not always be the case and it would basically come
> down to comparing one signalling RTT to the duration of candidate
> gathering.
> 
> As you agreed in one of your previous mails, the relation may vary:
> 
> Executing a single STUN transaction is likely to be less time consuming
> than a signalling RTT. Candidate gathering however may also last a lot
> longer than a single offer/answer exchange.
> 
> However, an agent that has several interfaces and uses them to gather
> candidates for three streams that don't have bundle nor RTCP muxing is
> going to need quite some time to complete a harvest.

>From our experience single allocation takes aprox 30ms. This includes one redirect due to alternate server and one extra roundtrip because of authentication. The time the TURN server is using to process the request is neglicable and so  it is RTT that is important. If the RTT is to large media would be troublesome anyway due to excessive jitter and delay.

Number of media lines and interfaces does not matter as this is done in parallel (or pretty close to). Our implementation have 5 media lines (Audio, 2x Video, BFCP, FECC), resulting in 9 TURN allocations. 

What we have been struggling with is delay in the signaling path. We have seen delays in the range of 3-5 seconds for the 200OK to traverse the signaling path. That caused some failing ICE calls due to to large skew and we did not complete the transactions in what we have set as a reasonable time. 

> Add to this UPnP
> allocations and a second STUN server and you could easily find the
> signalling RTT tens of times shorter than the candidate gathering.
> 
My understanding is that UPnP or PCP can be used to open pinholes without the need for keepalives.
So in theory this can be done when the endpoints registers. At least if we are not overly concerned about the extra port allocations on the NAT.

But I agree with the point. Additional steps to gather "better" candidates can take time.


> In all cases the UA would have a fairly good idea of what to expect so
> it could easily determine whether or not a probe would make sense.
> 
>> Clarifying 
>> the criteria for something being "more efficient" would also be helpful 
>> here (what is it truly that we are after; setup delay reduction, fewer 
>> NAT bindings, ...)
> 
> I believe we can agree that in the context of trickle the only thing
> that matters is call setup duration.
> 
Personally I see great benefit in having the ability to add candidates (and remove them) without doing a update or re-invite. This would make mobility scenarios easier, and developing a smarter and more optimized media experience can be a lot easier.  

.-.
Pål-Erik


>>> With half-trickle the offerer has to gather all candidates anyway so,
>>> while doing so, they might as well try and check if they really need to
>>> complete it before sending their first offer.
>> Unclear to me since you can collect candidates before you know who to 
>> send the offer to.
> 
> You could ... but not always. A hard phone can easily do this when
> someone picks it up. A softphone however doesn't have a clear early cue
> about a pending call initiation so the only way would be to always
> maintain a set of active candidates and to keep them alive. Not
> necessarily the most desirable option, especially for large deployments.
> 
> A web page could be even worse, especially in cases where the calling
> functionality is only a side feature (e.g. a support or a customer
> service call option).
> 
> Cheers,
> Emil
> 
>> Thanks
>> 
>> -- Flemming
>>>>>>> Besides, the failure modes all lead to an expenditure of time that is
>>>>>>> worse than the simple candidate gathering scenarios (reflexive,
>>>>>>> relay), though not "other" gathering methods (UPnP, etc...).
>>>>>> Is there a requirement here that needs to be written down ?
>>>>> The point that Martin is making is that sending an offer and then
>>>>> waiting for the failure may potentially take longer than just gathering
>>>>> your candidates. This is true especially in cases where the offerer is
>>>>> only planning on using a single port, on a single interface, with a
>>>>> single STUN/TURN server and no other candidate gathering mechanisms.
>>>> I would agree with that.
>>>>> But then, if this really is the case, the offerer knows it and can
>>>>> choose not to do the probing.
>>>> Agreed.
>>>>>>> half-trickle is a reasonable solution.
>>>>>> Sorry - what's half-trickle ?
>>>>> We had that in the slides on Tuesday but it's not yet in the draft. The
>>>>> idea is that if you can't confirm support for trickle in the answerer,
>>>> Do you mean: if you don't know if the answerer supports it before
>>>> sending an offer to him
>>> Yes. That's what I meant. The offerer needs to know that in advance in
>>> order to decide how to form their offer.
>>> 
>>> Cheers,
>>> Emil
>>> 
>>>> [since confirming support in the answer should
>>>> be easy]  ?
>>>>> you just send a vanilla ICE offer and you also indicate you do support
>>>>> trickle. A trickle ICE answerer can then trickle candidates and in
>>>>> general you get half the optimizations of Trickle ICE. You even get more
>>>>> than that in case the offerer is able to predictively gather candidates
>>>>> before the call is initiated.
>>>> Agreed.
>>>>> We'll describe this in the next version.
>>>> Ok - thanks for the explanation.
>>>> 
>>>> -- Flemming
>>>>> Cheers,
>>>>> Emil
>>>>> 
>>>>>> -- Flemming
>>>>>> 
>>>>>> 
>>>>>>> On 8 November 2012 10:12, Emil Ivov <emcho@jitsi.org> wrote:
>>>>>>>> I actually think this was supposed to be a joke. At least that's how I
>>>>>>>> got it.
>>>>>>>> 
>>>>>>>> Emil
>>>>>>>> 
>>>>>>>> On 08.11.12, 10:01, Flemming Andreasen wrote:
>>>>>>>>> This is very different from the way we normally handle extensions in SDP
>>>>>>>>> both from a pure signaling and negotiation point of view. I share the
>>>>>>>>> sentiment of others that this does not look like a good idea but would
>>>>>>>>> like to understand if there were other considerations for suggesting
>>>>>>>>> this radically different approach.
>>>>>>>>> 
>>>>>>>>> Thanks
>>>>>>>>> 
>>>>>>>>> -- Flemming
>>>>>>>>> 
>>>>>>>>> On 11/8/12 9:23 AM, Christer Holmberg wrote:
>>>>>>>>>> +1
>>>>>>>>>> 
>>>>>>>>>> Regards,
>>>>>>>>>> 
>>>>>>>>>> Christer
>>>>>>>>>> 
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: mmusic-bounces@ietf.org [mailto:mmusic-bounces@ietf.org] On Behalf Of Miguel A. Garcia
>>>>>>>>>> Sent: 8. marraskuuta 2012 9:30
>>>>>>>>>> To: Paul Kyzivat; Martin Thomson; Emil Ivov
>>>>>>>>>> Cc: mmusic@ietf.org
>>>>>>>>>> Subject: Re: [MMUSIC] Signaling trickle support
>>>>>>>>>> 
>>>>>>>>>> As an individual...
>>>>>>>>>> 
>>>>>>>>>> I concur with Paul, changing the v= version in the SDP is a very bad idea.
>>>>>>>>>> 
>>>>>>>>>> Let met quote RFC 4566:
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>        The "v=" field gives the version of the Session Description Protocol.
>>>>>>>>>>        This memo defines version 0.  There is no minor version number.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> This means that if you define another version different than zero, then, as a side effect, you are creating a different version of SDP than the one specified in RFC 4566. So, you will need to create an RFC specifying how such version of SDP works.
>>>>>>>>>> 
>>>>>>>>>> /Miguel
>>>>>>>>>> 
>>>>>>>>>> On 07/11/2012 20:27, Paul Kyzivat wrote:
>>>>>>>>>>> On 11/7/12 8:59 AM, Martin Thomson wrote:
>>>>>>>>>>>> Matthew, Justin and I were discussing the problem of signaling
>>>>>>>>>>>> trickle ICE support and the following proposal was made:
>>>>>>>>>>>> 
>>>>>>>>>>>> The 24th bit in SDP is currently set to zero.  This bit is
>>>>>>>>>>>> specifically reserved for forward compatibility purposes.  We can use
>>>>>>>>>>>> this bit.  Set this bit to one to indicate support for trickle ICE.
>>>>>>>>>>>> 
>>>>>>>>>>>> This meets the "works if supported, fails if it doesn't criteria".
>>>>>>>>>>>> 
>>>>>>>>>>>> This solution may also be appropriate for bundle/mmt/whatever.
>>>>>>>>>>> After some side discussion, I guess you are talking about bits in the
>>>>>>>>>>> value of the v= field ???
>>>>>>>>>>> 
>>>>>>>>>>> If so, I still have no idea what you are talking about. The syntax for
>>>>>>>>>>> the value of v= is 1*DIGIT. You can choose to represent that in binary
>>>>>>>>>>> and then choose bit 24 if you want, but that has no significance in 4566.
>>>>>>>>>>> 
>>>>>>>>>>> Assigning a new SDP version to signal Trickle ICE support seems like
>>>>>>>>>>> an incredibly bad idea.
>>>>>>>>>>> 
>>>>>>>>>>>         Thanks,
>>>>>>>>>>>         Paul
>>>>>>>>>>> 
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> mmusic mailing list
>>>>>>>>>>> mmusic@ietf.org
>>>>>>>>>>> https://www.ietf.org/mailman/listinfo/mmusic
>>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Miguel A. Garcia
>>>>>>>>>> +34-91-339-3608
>>>>>>>>>> Ericsson Spain
>>>>>>>>>> _______________________________________________
>>>>>>>>>> mmusic mailing list
>>>>>>>>>> mmusic@ietf.org
>>>>>>>>>> https://www.ietf.org/mailman/listinfo/mmusic
>>>>>>>>>> _______________________________________________
>>>>>>>>>> mmusic mailing list
>>>>>>>>>> mmusic@ietf.org
>>>>>>>>>> https://www.ietf.org/mailman/listinfo/mmusic
>>>>>>>>>> .
>>>>>>>>>> 
>>>>>>>> --
>>>>>>>> https://jitsi.org
>>>>>>> .
>>>>>>> 
>>>> 
>> 
>> 
> 
> -- 
> https://jitsi.org
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic