Re: [Ice] Proposal for ICE "network cost"

Emil Ivov <emcho@jitsi.org> Thu, 07 April 2016 22:14 UTC

Return-Path: <emcho@sip-communicator.org>
X-Original-To: ice@ietfa.amsl.com
Delivered-To: ice@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4609B12D135 for <ice@ietfa.amsl.com>; Thu, 7 Apr 2016 15:14:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=jitsi-org.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lGOwWHdiaqJc for <ice@ietfa.amsl.com>; Thu, 7 Apr 2016 15:14:05 -0700 (PDT)
Received: from mail-io0-x236.google.com (mail-io0-x236.google.com [IPv6:2607:f8b0:4001:c06::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C156D12D0BF for <ice@ietf.org>; Thu, 7 Apr 2016 15:14:05 -0700 (PDT)
Received: by mail-io0-x236.google.com with SMTP id q128so110918605iof.3 for <ice@ietf.org>; Thu, 07 Apr 2016 15:14:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jitsi-org.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=Ry8R8MQ61YyaxUAfRAdvJiZDTKYT4cTLXR/pQsZ92LE=; b=ZTNr+f8ChdymnCyA9aJLlDh/oL59LnioHJhq1w2+UCeOB1WBNq6xK/eI6M8SqYXAOO YSQ7/DgFIjT2ItGDCQg6dM2IyCqmeme/OduEYsRe+cb/m6ewThzOXmbaWyq6h/RRhqHr wP8ABEwCvKk/ZpzWfPcg1IhggL2essC0ORvfH46wzrJEZCdXq+BUFqtsXuczoQ62bR67 v4jXV8/UJoTi3wjA2UtcDHz3WnWDrcNRx5I9EpkITImQUyOn0mStSzryddocwlUgCzzf 13gWynBAAgLeybcEvNpwmK9AEbMsgQQRD0z6sWxmrZWZvqSf9ORxyBycsiarrnnpiB5o jjHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=Ry8R8MQ61YyaxUAfRAdvJiZDTKYT4cTLXR/pQsZ92LE=; b=NANSkIJ1Fgz7VKz9tIuzYsLpIy3ctbrhyaQ81c83wdTv2SLeuT0CKimQF809FfgoIF FpEPpX0p/JudtIRDbPTOESJbWFZXmltds8rJESHcZYPlhNr3ILNbeQvfqY/P4raIM98g MOkz38St2qVFMIRCytPZC/tCeNeLhZ8C7da70EaV556mhAdZpzjYEsKA0Di+fYJRFCmf AN7Jml2VSHXBgaibaZ2ONz9XlYaCxH5Lgmjzxags8qCEk3v1JXYQlcaNJnbjuNU6JL0S Ml7DK7FNkyY1aPH1BUxKPYR7niTtpT1hkJQV7IwIaJkPWfF4JZ7g4n0DW0MsCY8z+QYe 07Ng==
X-Gm-Message-State: AD7BkJKs3QFAMbe3krlFbhKpAE5vlce0uiIGMeAevYnGRcUXPlvPGL8u+R7yRy0wRDnU6g==
X-Received: by 10.107.162.7 with SMTP id l7mr6623811ioe.147.1460067244968; Thu, 07 Apr 2016 15:14:04 -0700 (PDT)
Received: from camionet.office.atlassian.com (72-48-156-244.static.grandenetworks.net. [72.48.156.244]) by smtp.googlemail.com with ESMTPSA id in6sm54219igb.0.2016.04.07.15.14.03 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 07 Apr 2016 15:14:03 -0700 (PDT)
To: Peter Thatcher <pthatcher@google.com>
References: <CAJrXDUHNJm8=fzrmvJWTz9TE47GEzkiJQOKakPzdYZ_GM67FBw@mail.gmail.com> <57069DE4.1070805@jitsi.org> <CAJrXDUGE8DOVyDEi3hSxtQ-_WKZ01LEhiVaw3mCvu=xtA7qNbA@mail.gmail.com>
From: Emil Ivov <emcho@jitsi.org>
Message-ID: <5706DBAB.7030703@jitsi.org>
Date: Thu, 07 Apr 2016 17:14:03 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <CAJrXDUGE8DOVyDEi3hSxtQ-_WKZ01LEhiVaw3mCvu=xtA7qNbA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/ice/h8gxARkAucoiVYYIGbYVdEOkwnM>
Cc: ice@ietf.org
Subject: Re: [Ice] Proposal for ICE "network cost"
X-BeenThere: ice@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Interactive Connectivity Establishment \(ICE\)" <ice.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ice>, <mailto:ice-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ice/>
List-Post: <mailto:ice@ietf.org>
List-Help: <mailto:ice-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ice>, <mailto:ice-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Apr 2016 22:14:08 -0000


On 7.04.16 г. 16:27, Peter Thatcher wrote:
>
>
> On Thu, Apr 7, 2016 at 10:50 AM, Emil Ivov <emcho@jitsi.org
> <mailto:emcho@jitsi.org>> wrote:
>
>     On 21.03.16 г. 19:07, Peter Thatcher wrote:
>
>         As an author (not a chair), I just submitted a draft for an idea I'd
>         like to propose for ICE: network cost.
>
>         Here's the draft:
>
>         https://datatracker.ietf.org/doc/draft-thatcher-ice-network-cost/
>
>
>         The idea is basically to allow the controlled side to tell the
>         controlling side which candidates "cost" more than others (such as
>         cellular costing more than Wi-Fi).  This is different than candidate
>         priority for reasons explained in the draft.
>
>
>     I see the value here but I have a few problems with the current state.
>
>     To begin with, I find the "cost" name overly confusing. I realize
>     the draft already says this is not necessarily real cost but it
>     still leaves people with the wrong impression (and I've confirmed
>     this in conversations these days). So let's just go for bias or
>     something (I also like fondness).
>
>
> ​There are two question here:  the name and the direction.  The choice
> of direction is more important than the name.  I prefer the direction
> where 0 means "free/use-freely" and a big number means
> "expensive/restrained/last-resort".  This is because if we ever expand
> the range, I think it would be better in the direction of "I really
> don't want to use this" rather than "this is even more free to use".
> You'll note that this direction is the opposite of
> fondness/preference/priority.
>
> In other words, I think modeling this as "badness' is better than as
> "goodness".

OK, this makes sense.

> So if we're going to debate names, let's debate synonyms of "badness".
> The best I could come up with is cost.  But I'd love to hear good synonyms.​

Let's go with "handicap" then? (If not we always have aversion and 
reluctance).

>     The draft is not currently very explicit about exactly how this
>     works in the selection of candidates but I assume it basically
>     means: "if it's all the same to you, I'd much rather you get in
>     touch with me here than there."
>
>
> Close.  0 means "use this freely".  A small number means "I'd rather not
> use this".  A large number means "Only use this if nothing else works".​
> ​
>
>     The trickiest part here is how to assign importance to this new bias
>     as opposed to existing metrics such as RTT for example. We could say
>     it's up to implementations or try to come up with some
>     recommendation for a formula.
>
>
> ​That's exactly what I think we should do: standardized how information
> is conveyed from controlled to controlling, but then let the controlling
> side decided how to select and nominate.​

The problem here is that unless we give directions about how it should 
be used in practice, then we greatly limit the usefulness and 
interoperability.

I actually think we can be very helpful without going into the details 
that much. Like for example:

0: use freely as you say.
h>0: you MAY use if no valid pairs exist where the remote candidate has 
a lower handicap but you SHOULD/MUST switch if such a pair becomes valid.

Also, unless your nominated pair has pair.remoteCandidate.handicap==0, 
then you MUST continue running checks until either you run through all 
of them or at least one pair with zero handicap becomes valid. When that 
happens you must switch.

Also if your selected pair has a remoteCandidate with non-zero handicap 
H and another pair becomes valid where the remoteCandidate has a lower 
handicap h (i.e., h<H) then you SHOULD switch to that new pair.

>     The other thing is that I cannot at all see the value of the network
>     ID. Why is this necessary?
>
>
> ​Technically, I could make it a separate draft, but the kind of go well
> together (they both fit in one nice STUN attribute, for example).
>
> The value of network ID is the following:  if the remote side's network
> interface changes, it's wise to notify your bandwidth estimator, because
> the change may have been drastic (wifi to 2g).  ​ It could change either
> by TURN mobility, or by continual gathering, or by the use of backup
> candidate pairs (I realized the last two are not yet standardized).

I am not a huge fan of this. I think it requires the remote side to know 
more than it needs to. If you want to reinit your bwe engine then we 
should have a message that says that (and it should probably be in 
RTCP). There could be other reasons for this that cannot be directly 
mapped to changing interfaces.

An interface ID mainly bothers me as it delivers more knowledge than one 
needs for that sort of stuff and it encourages implementers to make 
assumptions ... and ICE is all about avoiding them.

Emil

-- 
https://jitsi.org