Re: DTLS-SDP and JSEP Conflicts
Christer Holmberg <[email protected]> Mon, 28 Aug 2017 07:10:39 +0000
| Newsgroups | gmane.ietf.mmusic |
|---|---|
| Message-ID | <D5C99C71.205D6%[email protected]> |
Hi, So, does anyone *OBJECT* to the remove-ufrag-from-section-4 proposal? I assume Justin and Cullen would be ok with it, since it is what JSEP does, but it would still be nice to hear them say that :) I assume we could still keep section 3.3, but we should remove the ³(see Section 4)² part. Because, section 3.3 does not say that a ufrag change triggers a new DTLS association, it simply says that if one changes the ufrag AND wants to create a new DTLS association, the tls-id must be changed. We could also clarify section 3.3: "If an endpoint uses ICE, and modifies a local ufrag value, and if the modification requires a new DTLS association, the endpoint MUST change its local SDP 'tls-id' attribute value, <new> as a modification of the local ufrag value does not itself trigger a new DTLS association </new>" Regards, Christer From: mmusic <[email protected]> on behalf of Taylor Brandstetter <[email protected]> Date: Saturday 26 August 2017 at 02:32 To: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Subject: Re: [MMUSIC] DTLS-SDP and JSEP Conflicts I think I'm just echoing Roman at this point, but might as well send the email since I already wrote it. (Issue 1c) The crux of the matter: does ICE restart cause DTLS to restart? The primary rationale outlined in RFC5245 for restarting ICE is changing the destination (IP address or port) of an ongoing media stream -- which would commonly involve changing to a different physical device. The purpose of section 4 is to describe what should happen for an "existing implementation that has not been updated to support the 'tls-id' attribute", correct? And existing WebRTC implementations do not create a new DTLS association upon ICE restarts. In my experience, ICE restarts are mostly used to restore connectivity when network interfaces change, not to transfer a call to a new endpoint. So I'd say the "ICE ufrag value" bullet in section 4 should be removed. I hate to throw new engineering into the document at this point, but shouldn't it be possible to distinguish between these two circumstances by examining the candidates and determining whether they're completely new (versus having at least one in common with the existing connection)? This means that you won't know whether to restart DTLS until trickling has ended (for trickle), but you can solve that by not doing aggressive (or passive-aggressive) nomination -- just wait until you have all the candidates before you start connecting. Does that sound like it would work? If I understand correctly, you're saying "wait until trickling has ended, and use a new DTLS association if the list of candidates is completely new, and old association if it contains an old candidate"? That doesn't work for a couple reasons: 1. The list may be completely new, but the endpoint may still want to use the existing DTLS association. This is what existing WebRTC implementations do. They continue sending media over the old candidate pair while they're doing an ICE restart, but they don't trickle the old candidate again. 2. It could take a long time to tell that trickling ended, which would delay media. It would defeat a large part of the benefit of trickle ICE. On Fri, Aug 25, 2017 at 4:28 PM, Adam Roach <[email protected]> wrote: On 8/25/17 6:23 PM, Roman Shpount wrote: More importantly this is not how existing implementations work. They simply do not start new DTLS association on ufrag change. This is for legacy interop only, so we might as well do what legacy end points do and ignore ufrag. This seems pretty compelling, as arguments go. /a _______________________________________________ mmusic mailing list [email protected] https://www.ietf.org/mailman/listinfo/mmusic