Re: [MMUSIC] Signaling trickle support

Flemming Andreasen <fandreas@cisco.com> Thu, 08 November 2012 22:21 UTC

Return-Path: <fandreas@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 8942421F85A1 for <mmusic@ietfa.amsl.com>; Thu, 8 Nov 2012 14:21:31 -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 8Yvykgm5ZCoN for <mmusic@ietfa.amsl.com>; Thu, 8 Nov 2012 14:21:30 -0800 (PST)
Received: from ams-iport-3.cisco.com (ams-iport-3.cisco.com [144.254.224.146]) by ietfa.amsl.com (Postfix) with ESMTP id E531321F853B for <mmusic@ietf.org>; Thu, 8 Nov 2012 14:21:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8574; q=dns/txt; s=iport; t=1352413290; x=1353622890; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=OIPgI5qimyFoyc+BIuZ1Y+i746t2zKJ8PMjg8y0USxU=; b=cxioAX5A8NLA/lwvtH9iTcEk8yXAsvsQIuY9uKKZ3AWOVVd1eI8XXT/9 xQgEoWdReymcroIH7MBUG1xqZSM2PZbPZWaqCiCPqqny68aoBGWQAep2r j/EgubhQafmfveItiw3kqYDTE4qnKaCK14hWLSuF8H/xNwEsDK8GRZ75Q 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgIFADQwnFCQ/khM/2dsb2JhbABEhhi9K4EIgh4BAQEDAQEBAQ8BEBU2CgEFBwQLDgMEAQEBAgIFFggDAgIJAwIBAgEVHwkIBg0BBQIBARcHh2IGC5wkjSWTAIEginKFNIETA4haiW+DMoEcjTyBa4MN
X-IronPort-AV: E=Sophos;i="4.80,740,1344211200"; d="scan'208";a="9436343"
Received: from ams-core-3.cisco.com ([144.254.72.76]) by ams-iport-3.cisco.com with ESMTP; 08 Nov 2012 22:21:28 +0000
Received: from dhcp-407c.meeting.ietf.org ([10.86.246.202]) by ams-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id qA8MLRn1019365; Thu, 8 Nov 2012 22:21:27 GMT
Message-ID: <509C3066.6020209@cisco.com>
Date: Thu, 08 Nov 2012 17:21:26 -0500
From: Flemming Andreasen <fandreas@cisco.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:16.0) Gecko/20121026 Thunderbird/16.0.2
MIME-Version: 1.0
To: Emil Ivov <emcho@jitsi.org>
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>
In-Reply-To: <509C0724.3050300@jitsi.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: "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: Thu, 08 Nov 2012 22:21:31 -0000

On 11/8/12 2:25 PM, Emil Ivov wrote:
> Hey Flemming,
>
> On 08.11.12, 14:07, Flemming Andreasen wrote:
>> On 11/8/12 11:29 AM, Emil Ivov wrote:
>>> Hey Flemming,
>>>
>>> On 08.11.12, 10:53, Flemming Andreasen wrote:
>>>> On 11/8/12 10:46 AM, Martin Thomson wrote:
>>>>> Trolled.
>>>>>
>>>>> Though to be honest, I don't see a way around this particular problem.
>>>>>     The idea of using a Require: trickle header is fraught with problems;
>>>>> the idea that you might use an a= line doesn't give you the
>>>>> characteristics you desire.  I just don't know how to cause the
>>>>> failure that is needed when this isn't supported.
>>>> Can we capture the desired characteristics and failure mode for starters ?
>>> The "really" desired characteristic is knowing in advance whether or not
>>> the remote party can do trickle so that you know whether you can afford
>>> to send an empty offer without causing it to freak out.
>> Why would you send an empty offer ?
> Normally the offer should contain only candidates that are readily
> available (such as host candidates). However if the offerer does not
> wish to disclose those for privacy reasons, then it would just send an
> offer with no candidates. This is for example how Chrome currently behaves.
>
> It also places 0.0.0.0:1 in the c= and m= lines.
>
> That's currently explain in section 4 of the draft:
>
> http://tools.ietf.org/html/draft-rescorla-mmusic-ice-trickle-00#section-4
Ok (that's not an empty offer though).

>
>>> 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. 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, ...)

> 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.

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
>>>>> .
>>>>>
>>