Re: [Taps] UDP rendezvous

Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 27 April 2020 12:59 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 465C93A0982 for <taps@ietfa.amsl.com>; Mon, 27 Apr 2020 05:59:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.921
X-Spam-Level:
X-Spam-Status: No, score=-2.921 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.82, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 usJY9AWVSHvE for <taps@ietfa.amsl.com>; Mon, 27 Apr 2020 05:59:20 -0700 (PDT)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50045.outbound.protection.outlook.com [40.107.5.45]) (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 9D2663A098B for <taps@ietf.org>; Mon, 27 Apr 2020 05:59:19 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HaS69aV+DjAWCrOjpCqL0jEwjIjMBk5vUxGsvUFBCB+Yj4/oh6MmMOZpCWbu9IGKREin4EJ61W6zFb3mfKDALybt1zjPdt/czpU6yYjWxs7IAL2GFjyT0NYS3FrGhi3c8nJUGOuwUPx3vOk+D1T5dZcTc8Az/DQyfeerTaH/jJAA2c8jCDPgE8vSC3x53V12TEuEIFpECBxulRkrfprwp/Mf42byICinNi6OQoWVJWM3AKbLRjDJ1y8J3dLa9u9+obpEJ02nI3RJXAbGPbQjsWBn+KLrXWw2RAAldx+lw0jrUOG/T7cWhuIe7QOIpHLYYda0b0ekxuDAA6JzAkMCIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qiMkKQLoX8npyqj61Ob626Vu+Lj2jg1jR1oTqVEhO94=; b=WvhE6jpyQKH+6T5sGpCN63qv5462gkBmEbM5/5d2WwJVpcOPVIIVbyOJp6kwq0nhNtcjckQTAK5QOi3lLocQVnYpcOr4oTo3wFiETRuAhrb0YM3E8J/RqVUg5v9bySK86Vw8rswZyCh1/vLinQ4BBl1rmgO6QXZRQ5GrCiT0CfyUj2G6tez7xCGz5+qjjiWIc/OCTjBmtCOvzuONPd0GePr/V6gxgmQLEFCbMjMBECQjnNeG0JngV/mqAJTVmyPefip1ZM9x0Dg8TzsloDNiXbcUxd0l/saG6py8TzPJl4UiFjSkfsOX3+W2gxHzJlhb/BWUVe08wdw0BgkuOLdQ6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qiMkKQLoX8npyqj61Ob626Vu+Lj2jg1jR1oTqVEhO94=; b=Bj4b2bc1rkUvAot4WCMjRSR01wJXxIUQ3n4SbYc97Fnj1bcmtVcY7biv0ixWDiO4SdfrQDpnFKGGR0KhXH72JIq68pjOGbCR/aE6BU06qEndr4E4v0Fv4hecr0Xg2S8fhGTDtXNN9CqbSznqv4CpXW49TA8wuj4LX6/z2AY+QjY=
Received: from HE1PR0702MB3772.eurprd07.prod.outlook.com (2603:10a6:7:8e::14) by HE1PR0702MB3676.eurprd07.prod.outlook.com (2603:10a6:7:8d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.14; Mon, 27 Apr 2020 12:59:16 +0000
Received: from HE1PR0702MB3772.eurprd07.prod.outlook.com ([fe80::ec28:2c21:6d78:917a]) by HE1PR0702MB3772.eurprd07.prod.outlook.com ([fe80::ec28:2c21:6d78:917a%2]) with mapi id 15.20.2958.014; Mon, 27 Apr 2020 12:59:16 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: "michawe@ifi.uio.no" <michawe@ifi.uio.no>, "csp@csperkins.org" <csp@csperkins.org>
CC: "taps@ietf.org" <taps@ietf.org>
Thread-Topic: [Taps] UDP rendezvous
Thread-Index: AQHWGv9EAtpm6aBMDECQrPBg/ZpIZ6iMxaoAgAAU+4CAABa5gA==
Date: Mon, 27 Apr 2020 12:59:16 +0000
Message-ID: <dd183000bf697a72768d467722fe6cfdecc4f7db.camel@ericsson.com>
References: <B04764EF-FD10-45A0-9080-0A84C21107C1@ifi.uio.no> <A8590FF8-9905-4942-845B-0F38510D101B@csperkins.org> <05A1D6E3-88A4-4D9D-A482-34210B2E956C@ifi.uio.no>
In-Reply-To: <05A1D6E3-88A4-4D9D-A482-34210B2E956C@ifi.uio.no>
Accept-Language: sv-SE, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2
authentication-results: spf=none (sender IP is ) smtp.mailfrom=magnus.westerlund@ericsson.com;
x-originating-ip: [98.128.243.138]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 01ad6dd4-82f9-45f2-7389-08d7eaaacac6
x-ms-traffictypediagnostic: HE1PR0702MB3676:
x-microsoft-antispam-prvs: <HE1PR0702MB367659AA3CB1301082A037DE95AF0@HE1PR0702MB3676.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:2000;
x-forefront-prvs: 0386B406AA
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR0702MB3772.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(376002)(39860400002)(136003)(346002)(66616009)(66476007)(66946007)(66556008)(6486002)(76116006)(99936003)(478600001)(2906002)(26005)(186003)(53546011)(6506007)(5660300002)(2616005)(966005)(44832011)(81156014)(4326008)(316002)(6512007)(8936002)(64756008)(86362001)(110136005)(66446008)(8676002)(71200400001)(36756003)(99106002); DIR:OUT; SFP:1101;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: YZSAt5Y8GXiUQZHYtaLQq9SJwoLxKNYYbG/LCehjGplXEZ71D4pSMMElj8SnSPjL3jpKV4H2x6oXOAIeMUDOfDDyQmfJgSYRTADV1LlpWabZbMWFwrbbkrzFb40mcpf3TyRJdz2coTSHKY1+OdsqhBLKusz7kZvqNk8jUdoB2lnkj871hh6nI7rpet0ElniHdV0rGjvhiMDMbcHbrBFk8JrpEWPUlfRDYUyRzULWa43l1RWBFBcaKMtrBi0wbyigc1z7MqXEnrjPco6UEInz4TiWFHPBReYGmzCBVdgmCyMo6IrMmoagYlSBBxEkEOS357nGLAKUgh3841Vp8AsIj3SheyCCzxgu0SLWBuLcRyguMmCFfafEoqzskrXQYeIqPpkHtb/9PTY9PVdDbBjUWdk61PqU6lDZcPnbkyrCVgc8oL4fuO4Z22nEd1pnEeFq2Jc3WhVo0QO04AW/XPg2Da3ZlbioL/gjh0n4LbDSksdMCl9h9E/sZwfhGj1959sJt4UgVzPPLqnXj+M82QVEt6ly2iz0UPVTiLZANK9eZ/pj1wJ7TVwzGLp8eFMgWSbj
x-ms-exchange-antispam-messagedata: YCj46T7GFg7nkjSuUHVkEpZIWxazMC4/ZHN01kz3sLL/Lwok47FXH7yjLEjIweMq8z79kXz27SPfaEoB+5KXycucBb5QOk5p7OrRVHn7V+i/46tQhH3clREH9r6AH+oTMxkU5RFDLxbMJPOC96x1UQNZIP/LKlPpVW3N8hctxnCmlqDVJf8+/c9dLAovIr1cYfafpuelQiNzDM10soL0MGmsVWuXj1GNyxzUVsX6XETehUsgoFgJEr4VG+YGyXQjxWLdWDa/C7ummBE0F9CC1KBT0ZUptp0OYlDoRiSDQpqmiwARjEbM7kHEdSHoqx7/TI0/oLxOFWbMMdvH3M0+VtHwbNfxtBx42fTQdpBcIur9Rp46aAQZBm4dJ5rL3F9t0jQFHQxzQS04BK368X8Czoiu9cFSfFhJOpKhAekpz9lwX+aIXlfqmwoYduSszjY5XvqB2PNalK4mIUYimI6lCsFREVLfM0is9EE8mUmZZXLcqUejRUOj/ubKI23O5nFgwccPqjta9EPKRoFRQZX9MRbrmzfq2VdK2lfle8KBt8ajK37RJSD5/Kn184SnY+ww1u/EX35d6M4Dg2/e2z0wi+pVaJ155BtKH2j9NTKZtOy3gECFVqucRfVg4PddAmg3c31JDEfVJxVOsxgH+XYpDJKICvkmB7v655GpD1LFqK1qNubkJAq3qxxnKuUCfH1sZKHljArAJhlcQcEzztwxZywHHWuGyUFOBMtTtbP5K/z8v7wflKxZ6MvhNP63z2okunOLRANSsa2mipgcr2fRs6j7w9JPbCeBPVtY7YJusok=
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/x-pkcs7-signature"; boundary="=-4rb84VvPV1UnhDcwF5Qa"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 01ad6dd4-82f9-45f2-7389-08d7eaaacac6
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2020 12:59:16.2218 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sS4dzKjD7ipALWJSZrAWpfdInSZBjuvCoYDzac0iaYU6vu1XT2E7iadAin3ytfieWkr60w+SvWZCeCF81yT/NxAmGcibJVqosC8d6rgY1Mw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0702MB3676
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/qCDVRw5y5GXhT4vYlsHjsuPFfhA>
Subject: Re: [Taps] UDP rendezvous
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2020 12:59:23 -0000

Hi,

Michael if you want an example of an API that contains the ICE related
rendezvous aspects it is the WebRTC. https://www.w3.org/TR/webrtc/

You will find the ICEserver with configuration information. Note also how
candidates are handled. I would also note the possibility to enable or disable
trickling of candidates. Which is possibly something an application could want
to indicate. I know the ICE parts is only a part of the complete WebRTC API so
there is a lot to wade through here. 


I would also note that there might be an other aspect of embedding ICE under the
hood is the potential to use this as a method to update the path used between
two peers during an ongoing communication session. There are two takes on this.
Either the more standards compliant way of triggering an ICE restart, which
involved application interaction through a new candidate exchange. 

Or the less so which is to not really terminate ICE. And instead keep your
checklist alive and continously verify what candidate pairs that actually work
and use re-occuring nomination to move the application datagram flow between
working candidate pairs (
https://datatracker.ietf.org/doc/draft-thatcher-ice-renomination/). I would
recommend avoiding the later, but wanted to mention it for completeness. 

As I haven't been active in TAPS, I would appreciate any pointers to where the
WG is in regards to the need for parameter exchange that need to be done by the
application using the TAPS interface, rather than letting the lower layers
handle that aspect. 

Cheers

Magnus


On Mon, 2020-04-27 at 13:38 +0200, Michael Welzl wrote:
> Hi,
> 
> I’m answering this email, but Magnus, consider yourself answered too with a
> big THANK YOU for your thorough explanation!
> 
> I agree that we want some (much!) of this functionality “under the hood” if
> possible. And, of course, I agree that we don’t want the application to be
> aware of e.g. UDP specifically if we can avoid it. I think we’re all on the
> same page on that; but I think that, indeed, the text in the API draft needs
> some fixing.
> 
> Colin, thank you very much for outlining the 5 steps below: they give a very
> good context for this conversation. So, I answer in line below:
> 
> > On Apr 27, 2020, at 12:23 PM, Colin Perkins <csp@csperkins.org> wrote:
> > 
> > Hi,
> > 
> > This is one of the areas where the drafts likely need expanding, but I think
> > the model is:
> > 
> > 1) application configures STUN (and maybe also TURN) local endpoints
> > 
> > 2) application calls Resolve() on these, to find server reflexive candidates
> 
> These two steps are reflected in the API as it stands, and so this is already
> reasonably clear, I think. IMO, nothing to do here.
> 
> 
> > 3) application shares these candidates with its peer, via out-of-band means,
> > and receives remote endpoint candidates from the peer
> 
> Based on Magnus’ email, I suppose that this *could* be done in standard ways
> with trickle, and hence theoretically put “under the hood” too.
> But, I think that keeping this in the application space for the sake of TAPS
> is quite reasonable. This step is perhaps implicit in the text, but I think
> it’s pretty obvious that it would need to happen. People doing rendezvous will
> have to be aware of this step anyway, so I see no real problem here.
> 
> 
> > 4) application adds remote endpoints for the peer’s candidates
> 
> My first hiccup: I don’t see that this is supported in our current API - how
> would one add remote endpoints? I think, the way we have it, there’s only one
> for each Connection.
> Have I overlooked something?
> 
> 
> > 5) application calls Rendezvous(), which performs the ICE-style probing to
> > find a working path, based on the candidates, then returns s Connection
> 
> THIS would be really good, but it’s not at all how I read the current text. It
> says:
> 
> "The Rendezvous() Action causes the Preconnection to listen on the Local
> Endpoint for an incoming Connection from the Remote Endpoint, while
> simultaneously trying to establish a Connection from the Local Endpoint to the
> Remote Endpoint. This corresponds to a TCP simultaneous open, for example.”
> 
> My interpretation of this sentence is that Rendezvous doesn’t do much more
> than listen + send something, using the same local ports. For TCP, I would
> have implemented this functionality by just doing an active connect, using a
> pre-configured local port (TCP will retry sending SYNs, and if both sides
> issue this call with the correct ports, I guess it all works out eventually).
> However, from below, it seems to me that such an implementation would be doing
> way too little!
> 
> 
> > This relies on the Endpoint abstraction supporting STUN, which is maybe
> > implicit in the drafts. 
> 
> Yes - there is text there about STUN configuration, but nothing about it in
> the Rendezvous text (unless I missed it, apologies if I have!). And it’s not
> just STUN, it’s the ICE-style probing, with various candidates supplied,
> that’s missing.
> 
> 
> > Also, as usual with TAPS, the application doesn’t say that it wants UDP. It
> > says it wants, e.g., RTP preferably over an unreliable connection, and this
> > higher-level protocool gives the de-framer the ability to distinguish the
> > STUN packets from the data packets.
> 
> Okay, I understand this… but what happens if UDP *is* the protocol that is
> available (not e.g. RTP), and the application calls Rendezvous?
> (I guess failing, with a useful error code, is the best choice, then?)
> 
> Again, just to be clear, I agree with everything you say here, and I thank you
> (and Magnus) again for explaining it to me!   - I just want to get the text
> right. Actually, I was just trying to understand how to implement this call’s
> functionality, and was left puzzled.
> 
> Cheers,
> Michael
> 
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps
-- 
Cheers

Magnus Westerlund 


----------------------------------------------------------------------
Networks, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------