Re: [rtcweb] Lower-overhead protocol variations

Michael Tuexen <> Wed, 27 February 2013 18:32 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 68A1321F89B2 for <>; Wed, 27 Feb 2013 10:32:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.549
X-Spam-Status: No, score=-2.549 tagged_above=-999 required=5 tests=[AWL=0.050, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 4AyUJtWVKPB8 for <>; Wed, 27 Feb 2013 10:32:52 -0800 (PST)
Received: from ( [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by (Postfix) with ESMTP id 1104921F84D1 for <>; Wed, 27 Feb 2013 10:32:51 -0800 (PST)
Received: from [] ( []) (Authenticated sender: macmic) by (Postfix) with ESMTP id 57A471C0C069F; Wed, 27 Feb 2013 19:32:49 +0100 (CET)
Mime-Version: 1.0 (Apple Message framework v1283)
Content-Type: text/plain; charset="iso-8859-1"
From: Michael Tuexen <>
In-Reply-To: <>
Date: Wed, 27 Feb 2013 19:32:48 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <> <> <> <> <>
To: Salvatore Loreto <>
X-Mailer: Apple Mail (2.1283)
Subject: Re: [rtcweb] Lower-overhead protocol variations
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 27 Feb 2013 18:32:53 -0000

On Feb 27, 2013, at 1:12 PM, Salvatore Loreto wrote:

> On 2/26/13 9:36 AM, Michael Tuexen wrote:
>> On Feb 25, 2013, at 11:51 PM, Harald Alvestrand wrote:
>>> On 02/25/2013 04:22 PM, Michael Tuexen wrote:
>>>> On Feb 25, 2013, at 1:28 PM, Harald Alvestrand wrote:
>>>>> On 02/21/2013 09:19 PM, Michael Tuexen wrote:
>>>>>> On Feb 21, 2013, at 3:54 PM, Randell Jesup wrote:
>>>>>>> On 2/21/2013 8:03 AM, Michael Tuexen wrote:
>>>>>>>> On Feb 20, 2013, at 10:31 PM, Randell Jesup wrote:
>>>>>>>>> This is a relevant thread to current discussions:
>>>>>>>>> and continued with subject change in
>>>>>>>>> I'm re-evaluating if the original decision against even/odd was required,
>>>>>>>>> in order to see if we can collapse the current draft 0-RTT proposal
>>>>>>>>> into a single declarative "open" message on a stream with no response or ack
>>>>>>>>> required. Even/odd (perhaps based on a property of the SCTP association?)
>>>>>>>>> would avoid the need for mismatched channel pairs, and thus avoid the need
>>>>>>>>> for the response/ack and the need to send with the in-order bit.
>>>>>>>> I'm not sure what you mean you even/odd?
>>>>>>>> I guess you will send the "open" message reliable and ordered. OK.
>>>>>>>> Are you proposing that there is no ACK sent back? What would happen
>>>>>>>> if one side sends an "open" message indicating an unordered data channel,
>>>>>>>> sends a user message on this channel and the user message is delivered
>>>>>>>> first?
>>>>>>> As you infer below, this would be one side uses even channels to initiate, the other uses odd (to avoid glare).
>>>>>>> The reliability question is important; the simplest solution would be to buffer any data that arrives without an Open message until the Open message is received, and then deliver it.  There's no issue in the other direction, as once the open message is received the receiver can then send on that stream/channel with no restrictions. I assume there's some way to reliably choose roles for even/odd selection in SCTP?  If not, we can find other ways to do it (even SDP if we had to), though I think we could also key off the DTLS.
>>>>>> Not sure we can choose based on SCTP. The port numbers can be the same and we have no addresses
>>>>>> available. Maybe we can use the client/server identity from DTLS (the DTLS client uses even,
>>>>>> the DTLS server uses odd).
>>>>> The MMUSIC SCTP draft (draft-ietf-mmusic-sctp-sdp-03.txt) says:
>>>>> 6.  The Setup and Connection Attributes and Association Management
>>>>>   The use of the 'setup' and 'connection' attributes in the context of
>>>>>   an SCTP association is identical to the use of these attributes in
>>>>>   the context of a TCP connection.  That is, SCTP endpoints MUST follow
>>>>>   the rules in Sections 4 and 5 of RFC 4145 [RFC4145] when it comes to
>>>>>   the use of the 'setup' and 'connection' attributes in offer/answer
>>>>>   [RFC3264] exchanges.
>>>>> The relevant table from section 4 of RFC 4145 is:
>>>>>           Offer      Answer
>>>>>            ________________
>>>>>            active     passive / holdconn
>>>>>            passive    active / holdconn
>>>>>            actpass    active / passive / holdconn
>>>>>            holdconn   holdconn
>>>>> I think that based on RFC 4145, it would be reasonable to say that the party in the "active" role uses the even channels and the party in the "passive" role uses the odd channels, and that if the initiator uses "actpass", no channel assignment can be made until the answer comes back as either "active" or "passive".
>>>> OK. I was writing the statement based on how things are currently implemented
>>>> in Firefox. Both side are the active side...
>>>> Thanks for the clarification.
>>> That confuses me ... do both sides send INIT (RFC 4960 section 5.1 step A)?
>> Yes...
>>> Collision is described in section 5.2.1 section B - I guess that if that's something that makes sense to provoke on a regular basis, "both active" can make sense.
>> Yes, SCTP handles INIT collisions. In API terms: Bots call connect() (using the 1to1 style API).
>> This is possible, since both sides know the port number of the peer.
> thanks for the clarification Michael.
> just to be clear before I do any changes in the The MMUSIC SCTP draft,
> is this something always true? (i.e. implementation independent)
No. It is how it is currently handled in Firefox. If i remember it correctly,
ekr preferred a symmetric solution. So he hasn't to figure out which side
is active and which side is passive. Could be related to the fact, the Firefox
currently doesn't use SDP for the data channels (if I remember it correctly).
> even if I haven't checked I am not sure it is true also for the "1 to many" model...
> and that make me cautious on doing any changes unless we do not restrict the scope of
> the draft to 1to1 style
INIT collision is also handled by 1-to-1 style sockets.

Best regards
> br
> /Salvatore
>> Best regards
>> Michael
>>> draft-ietf-mmusic-sctp-sdp needs to be updated with this possibility.
>>>>> This, of course, implies that channel numbers are reassigned from a blank slate if the connection goes down and is reestablished with new values for active and passive. Probably one should say that if the connection goes down, all channels go down too - that the data channel system doesn't attempt to layer yet another layer of reconnection on top of the already existing ones.
>>>>>                   Harald