Re: [rtcweb] Comments on draft-ietf-rtcweb-data-channel-06 - SCTP parameters and options
Gunnar Hellstrom <gunnar.hellstrom@omnitor.se> Sat, 28 December 2013 00:03 UTC
Return-Path: <gunnar.hellstrom@omnitor.se>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7363B1AE9B6 for <rtcweb@ietfa.amsl.com>; Fri, 27 Dec 2013 16:03:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2
X-Spam-Level: **
X-Spam-Status: No, score=2 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, J_CHICKENPOX_28=0.6, J_CHICKENPOX_31=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
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 U2cly2YYX782 for <rtcweb@ietfa.amsl.com>; Fri, 27 Dec 2013 16:03:37 -0800 (PST)
Received: from vsp-authed-02-02.binero.net (vsp-authed02.binero.net [195.74.38.226]) by ietfa.amsl.com (Postfix) with ESMTP id B5BBC1AE9B7 for <rtcweb@ietf.org>; Fri, 27 Dec 2013 16:03:35 -0800 (PST)
Received: from smtp01.binero.se (unknown [195.74.38.28]) by vsp-authed-02-02.binero.net (Halon Mail Gateway) with ESMTPS for <rtcweb@ietf.org>; Sat, 28 Dec 2013 01:03:21 +0100 (CET)
Received: from [192.168.50.32] (81-224-110-16-no227.business.telia.com [81.224.110.16]) (Authenticated sender: gunnar.hellstrom@omnitor.se) by smtp-10-01.atm.binero.net (Postfix) with ESMTPA id 7E4D83A146 for <rtcweb@ietf.org>; Sat, 28 Dec 2013 01:03:21 +0100 (CET)
Message-ID: <52BE154D.7000602@omnitor.se>
Date: Sat, 28 Dec 2013 01:03:25 +0100
From: Gunnar Hellstrom <gunnar.hellstrom@omnitor.se>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <5280E181.20104@ericsson.com> <52AE2C51.5000600@omnitor.se> <52AEC405.6070107@alvestrand.no> <52AF672B.2090100@omnitor.se>
In-Reply-To: <52AF672B.2090100@omnitor.se>
Content-Type: multipart/alternative; boundary="------------080007070600090405020800"
Subject: Re: [rtcweb] Comments on draft-ietf-rtcweb-data-channel-06 - SCTP parameters and options
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 28 Dec 2013 00:03:41 -0000
There is a set of parameters for SCTP in RFC 4690 with proposed values in chapter 15. I suggest that the data-channel draft specifies somewhere that the values recommended in SCTP chapter 15 SHOULD be used whenever there is no reason to select other values. The following is an extract from SCTP chapter 15: 15 <http://tools.ietf.org/html/rfc4960#section-15>. Suggested SCTP Protocol Parameter Values The following protocol parameters are RECOMMENDED: RTO.Initial - 3 seconds RTO.Min - 1 second RTO.Max - 60 seconds Max.Burst - 4 RTO.Alpha - 1/8 RTO.Beta - 1/4 Valid.Cookie.Life - 60 seconds Association.Max.Retrans - 10 attempts Path.Max.Retrans - 5 attempts (per destination address) Max.Init.Retransmits - 8 attempts HB.interval - 30 seconds HB.Max.Burst - 1 ------------------------- Some of them are for example used in chapter 8, fault management, where also some of my earlier questions are touched. This is my deduction of a typical error scenario: The retry mechanism seems to possibly result in retries after about 1, 3, 7, 15 and 31 seconds after the initial transmission of a chunk of data. If still not successful, the path is considered to fail. If no other path is available, the connection fails. ( this assumes a connection with about <400 ms delay ) SCTP is not totally clear about if the upper layer shall be told about the failure. In 8.2 it says: When the value in the error counter exceeds the protocol parameter 'Path.Max.Retrans' of that destination address, the endpoint should mark the destination transport address as inactive, and a notification SHOULD be sent to the upper layer. (There are other cases in 8.1 with even more vague requirement to report the failure to the upper layer. ) I suggest that the data channel draft shall be clear about that the higher layer gets an error indication, indicating how much data the sending side has marked as unsent. The retries for the partially-reliable channel type seems to only have any meaning if it is set to a value <5 The retry time for the partially-reliable channel will also have an upper liit set by the maximum retry period for the reliable channel, but it is harder to peredict what the limits are. 31 seconds seems to be one of the shortest total retry periods appearing, so times <30 s makes sense as partially-reliable total retry timeout. Gunnar ------------------------------------------------------------------------ gunnar.hellstrom@omnitor.se On 2013-12-16 21:48, Gunnar Hellstrom wrote: > On 2013-12-16 10:12, Harald Alvestrand wrote: >> On 12/15/2013 11:25 PM, Gunnar Hellstrom wrote: >>> I took a look at the data channel draft. >>> >>> I am missing descriptions of the requirements of how transmission >>> failures are to be handled. >>> >>> I suggest that section 6.6 "Transferring User Data on a Channel" is >>> extended with a description on what happens if the transmission fails. >>> It is evident that there will be different actions for the different >>> types of channels. >>> >>> For unordered, unreliable channels, I assume that neither the >>> transmitter nor the receiver will be notified of transmission failures. >>> >>> For ordered, semi-reliable channels, I assume that the transmitter is >>> notified about failure if the transmitting channel has no indication >>> of successful transmission after the specified number of >>> retransmissions or milliseconds. >>> Same with the receiver, but the error notification may not appear >>> until next transmission is received, so that the gap can be detected. >>> >>> Also the so called ordered reliable channel may fail. It just has a >>> higher number of retries over a longer time. So, same information >>> should be provided for that type. >> The traditional way of signalling the failiure of a reliable channel is >> to indicate that the channel has failed. > So, let us try to get proposed text in order for a suitable behavior > for the data channel draft. > > In the data channel draft, section 6.6, I suggest to add something like: > -------------------------------------------------------------- > "In case of transmission problems, a reliable channel and a > partially-reliable channel performs retries. The retries for a > reliable channel are limited by SCTP parameters. The retries for a > partially-reliable channel are limited by the parameter set by the > application at channel creation time. > > If transmission on a reliable channel is considered unsuccessful by > the transport protocol, the channel is regarded to have failed. An > error report is provided to the upper layer on the transmitter side. > An error report is provided on the receiver side if the receiver has > any indication that a transmission was intended. > If the channel is ordered, then no data from the lost transmission and > onwards is lost. > > If transmission on a partially-reliable channel is unsuccessful after > the specified retry limit, the channel reports temporary failure to > the transmitting application and accepts new send requests. If the > channel is un-ordered, the receiving side will not notify the > application about the loss. > If the channel is ordered, then the channel on the receive side > provides a loss indication in place of the lost data. > > If transmission on a nonreliable channel is unsuccessful, it is not > reported as any failure." > > ------------------------------------------------------------- > It could also be collected in a separate section "Data transmission > failures" after section 6.6. > > Further thoughts: > > For an application designer, it is important to know for how long the > channel will stall in case of transmission problems before it is > regarded to have failed. I could not find information for the general > case in SCTP. > Can anyone guide on this: How long does SCTP try with a reliable > transmission before it gives up? > > Not until that is known, it can be judged if a reliable or > partially-reliable channel is the right choice for the planned > application. > > >> >>> And, is there just an error notification and then open for trying next >>> transmission, or is the channel broken and needs to be opened again. I >>> suggest that transmission can continue after the error notification. >> This should expose the corresponding property of the SCTP protocol. I >> expect SCTP experts will answer that. > Yes, please. I did not find it in RFC 4960. >>> Can duplications be guaranteed to be avoided in the ordered channel? >> As far as I know, yes. >> >>> Can there be cases when the transmitter gets a notification about >>> failure, but the receiver has received the data successfully? >> Yes. Avoiding such a situation is logically impossible; you'd get into >> an infinite regression of ACKs otherwise. >> >>> How is this reflected in WebRTC API:s? >> The WebRTC API has no defined function for notification of >> single-message transmission failure. So it reflects the assumption that >> one either gets no indication at all (for unreliable and limited-retry) >> or channel failure (for reliable). > This sounds not logical for ordered partially-reliable channels. I > think a gap indication shall be provided through the API. > I inserted that thought for the text proposal for > draft-ietf-rtcweb-data-channel-06, and something similar is needed in > the API as well. > > > > /Gunnar >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >
- [rtcweb] Comments on draft-ietf-rtcweb-data-chann… Magnus Westerlund
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Harald Alvestrand
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Gunnar Hellstrom
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Michael Tuexen
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Randell Jesup
- Re: [rtcweb] Comments on draft-ietf-rtcweb-data-c… Magnus Westerlund