Re: [MMUSIC] AD Evaluation of draft-ietf-mmusic-sctp-sdp-21 - TECHNICAL comments

Paul Kyzivat <paul.kyzivat@comcast.net> Tue, 24 January 2017 21:10 UTC

Return-Path: <paul.kyzivat@comcast.net>
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 0C0D71297CE for <mmusic@ietfa.amsl.com>; Tue, 24 Jan 2017 13:10:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.899
X-Spam-Level:
X-Spam-Status: No, score=-5.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-3.199, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=comcast.net
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 gtEYkuKvozdF for <mmusic@ietfa.amsl.com>; Tue, 24 Jan 2017 13:10:02 -0800 (PST)
Received: from resqmta-po-05v.sys.comcast.net (resqmta-po-05v.sys.comcast.net [IPv6:2001:558:fe16:19:96:114:154:164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CBC551297CB for <mmusic@ietf.org>; Tue, 24 Jan 2017 13:10:02 -0800 (PST)
Received: from resomta-po-13v.sys.comcast.net ([96.114.154.237]) by resqmta-po-05v.sys.comcast.net with SMTP id W8KZcIw6lMqbUW8LqcJmJI; Tue, 24 Jan 2017 21:10:02 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1485292202; bh=ie9UBeBgLbkN1JGt1+PrqLOGnoSw0gyTeu0FvxDK9B4=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=EvRx8WIN5hdFIdQtOVcH4JQJ1fB2MzrD/6D+2kD4xgZvZsZej3mM8uMtgKQLnFKO4 vETIx1eVtk4IYIx4tYO8oxbnGOPeGwh+bTAaQqL2SuxL1SgBSyZzFPOSzFwXfl5dOk PVhmdiqtkBwpGSvDP5VZggE18wcsr0emo9BRib0pnJ/k9PuJmZ3jyIKvytSOziVnSL 29xrqbKpUhFn6yhDSis2nPcTwUTUv6qr2ihnMTxaE+55ljxTm5n8RTLydbsXIIcs8X SxC8u4kukgo9DCbTApbQCYBOrz19foMFTd++oC0CQUgH1vwQFntnXpf6u3iqVVit9f Zd3KXCJF6n5gA==
Received: from [192.168.1.110] ([73.186.127.100]) by resomta-po-13v.sys.comcast.net with SMTP id W8Lpcu5AMxumkW8LpcV8A8; Tue, 24 Jan 2017 21:10:02 +0000
To: Roman Shpount <roman@telurix.com>
References: <7594FB04B1934943A5C02806D1A2204B4BF9A860@ESESSMB209.ericsson.se> <18D6EC97-0A89-4139-834B-7E889CD8ECF1@nostrum.com> <CAD5OKxv_OmC+8ECNUBUjc9+o_kRaRTPnbnEf9uP_8f4AYAxEEQ@mail.gmail.com> <a0e80a3e-9754-1d1c-739b-a7f9e361ff0a@comcast.net> <CAD5OKxun818jB10g7cfA+4wMu+d4FBLAcFnt60esCFLfTCUiNQ@mail.gmail.com>
From: Paul Kyzivat <paul.kyzivat@comcast.net>
Message-ID: <57d1cc4c-2cb4-4b01-db13-41b64b455887@comcast.net>
Date: Tue, 24 Jan 2017 16:10:00 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
MIME-Version: 1.0
In-Reply-To: <CAD5OKxun818jB10g7cfA+4wMu+d4FBLAcFnt60esCFLfTCUiNQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-CMAE-Envelope: MS4wfE2/Nc+diHpgNzrUrv/qtFPrNzBbc3a5bsnZQ1qCDzwafnUWPcOLoPrKJ+jKkpqJQRB7Mt0W1nmHdPnEemcnBJUXUiMXbgI401aVAxBKlZrWdLTJwssK +8vWpdwTtVWjon1rxggzG0ZIpDT8sjBMt0YpLGqeNHCJKKG0ivyfWIp6Ii1+gfu3vAvvEHv0S+rAhxNtJEPoorCOO1/XUJ6zxLY=
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/03L1ea7gpqrgz85AoYgvFdUu7OI>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] AD Evaluation of draft-ietf-mmusic-sctp-sdp-21 - TECHNICAL comments
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Tue, 24 Jan 2017 21:10:04 -0000

Roman,

On 1/24/17 2:18 PM, Roman Shpount wrote:

>         Replacing of TCP connection or DTLS association does not break
>         the SCTP
>         association. SCTP is designed to run over unreliable transports, so
>         short term loss of connectivity when one TCP connection or one DTLS
>         association is being replaced by the other would be handled by
>         the SCTP
>         re-transmit timers. Also, when ICE is used, switching from one ICE
>         candidate to another, including switching between two ICE tcp
>         candidates
>         or switching from udp to tcp candidate, does not affect existing
>         SCTP
>         association. Existing SCTP association continues to run despite the
>         underlying candidate switch and as far as SCTP association is
>         concerned
>         it is running over the same unreliable transport. Finally, DTLS
>         association can be re-established to force re-keying the long
>         running
>         connection. This can be done without affecting SCTP association
>         running
>         on top of these DTLS associations.
>
>         This is why we are saying that the SCTP association, the DTLS
>         association and the TCP connection are managed independently
>         from each
>         other.  Each can be established and  closed without impacting
>         others.
>         Each protocol uses its own means to detect connection closure,
>         failure
>         or timeout.
>
>
>     I can see that this can be a good thing when it is what you want/need.
>
>     OTOH, if one of the two parties involved changes, and there is no
>     state sharing, you need to establish a new SCTP association. This
>     may turn out to be the case even when the offerer doesn't know that
>     the other party has changed.
>
>     So how are these two cases distinguished in the signaling? AFAICT
>     the only thing available is sctp-port. If the offerer doesn't
>     realize a change is coming, then it won't change its port. And in
>     that case the answerer won't know what port its predecessor used, so
>     it might choose the same value.
>
>     Of course, this is largely a 3pcc scenario, and if it is initiated
>     in the middle then the middle can probably know to change the port
>     somewhere.
>
>     But I'm not sure if that is the only case.
>
>
> We have considered that issue and assumed that selecting a random
> sctp-port is sufficient to determine if this is the same vs new
> connection.

I see *no* mention that the sctp-port value should be chosen randomly. 
And IMO it is unnatural to suggest port values be random. There could be 
reasons for them not being random - for instance interop with SCTP over 
IP with well known ports. Also, while there is currently no spec for 
multiple SCTP associations in the same bundle, it is not hard to imagine 
that that might be a useful thing to do in the future. In that case 
random port numbers could be more troublesome.

> There is some possibility of collisions when answering party
> accidentally picks the same port as the one which was previously used
> for SCTP communications, but this is similar to ICE ufrag
> collisions, dtls-id collisions or to-tag collisions.

But those all use values that are specified to be random.

> I do agree that
> sctp-port has less random bits then ufrag, dtls-id, or to-tag, so it is
> more likely to collide. Please let us know if this is a sufficient point
> of concern to warrant adding more randomness by changing sctp-port
> definition (making it longer)

That isn't possible, because the port number and its format are 
specified in the SCTP spec.

> or adding another attribute. Another
> solution would be to require SCTP association restart on DTLS
> association restart and use random bits in dtls-id minimize the chance
> of collision.

The most straightforward way would be to follow the pattern used with 
comedia (rfv4145), with a=coonnection=new/existing. But that attribute 
couldn't be used, because it can already be in use for a TCP connection 
below it. Also, we have already abandoned using something akin to a=setup.

Unfortunately the end result we have arrived add is, IMO, a one-off hack 
that doesn't follow established approaches. This has arisen because we 
are negotiated layered protocols and the established SDP mechanisms 
don't have provision for that. But I don't think there is the will to 
clean this up.

> In general, I am not strongly attached to not restarting SCTP
> association on underlying transport change. I am even less attached to
> restarting SCTP on DTLS restart.

Coupling SCTP restart with one of those is a simple answer.

> What I do feel strongly about is:
>
> 1. Keeping SCTP association when ICE candidates change
> 2. Keeping SCTP association on ICE restart
>
> Keeping SCTP association on ICE restart has exactly the same properties
> as keeping SCTP association on transport change (it is unclear if ICE
> restart was caused by the same endpoint or by endpoint change due to
> 3pcc). Since ICE restart and transport change are essentially the same
> thing, I proposed that SCTP association is preserved in both cases. If
> we tie SCTP association restart to DTLS association restart we will get
> the desired result for ICE only at the cost of loosing re-key ability
> for the existing SCTP association.
>
> So, my questions are:
> 1. Is possibility of sctp-port collision large enough concern to change
> when SCTP association is restarted?
> 2. Would it be acceptable to lose ability to re-key DTLS association
> while running the same SCTP assignations and force SCTP association
> restart on DTLS association restart?

I'd like to hear what others have to say.

	Thanks,
	Paul