Re: [rtcweb] SCTP user-land stack available
Harald Alvestrand <harald@alvestrand.no> Tue, 31 January 2012 05:59 UTC
Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6230521F8795 for <rtcweb@ietfa.amsl.com>; Mon, 30 Jan 2012 21:59:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -109.53
X-Spam-Level:
X-Spam-Status: No, score=-109.53 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, DATE_IN_PAST_06_12=1.069, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FKJXn1TC558Q for <rtcweb@ietfa.amsl.com>; Mon, 30 Jan 2012 21:59:02 -0800 (PST)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 13DCC21F8799 for <rtcweb@ietf.org>; Mon, 30 Jan 2012 21:59:01 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id C123639E0F5; Tue, 31 Jan 2012 06:58:59 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vnQ8U8S3ku-K; Tue, 31 Jan 2012 06:58:58 +0100 (CET)
Received: from [192.168.128.222] (173-164-173-13-SFBA.hfc.comcastbusiness.net [173.164.173.13]) by eikenes.alvestrand.no (Postfix) with ESMTPS id 724D539E0E7; Tue, 31 Jan 2012 06:58:57 +0100 (CET)
Message-ID: <4F26E84B.7010301@alvestrand.no>
Date: Mon, 30 Jan 2012 19:58:19 +0100
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Thunderbird/3.1.16
MIME-Version: 1.0
To: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
References: <C2C6C5AB-7AFB-4830-84B7-A704C278CF3A@lurchi.franken.de> <4F15A1A3.6000304@alvestrand.no> <C8ADA24C-CE20-47DD-91C0-428A6EF11CE3@lurchi.franken.de>
In-Reply-To: <C8ADA24C-CE20-47DD-91C0-428A6EF11CE3@lurchi.franken.de>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] SCTP user-land stack available
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
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: Tue, 31 Jan 2012 05:59:04 -0000
Thanks again! I've now spent a little time playing with it - it's been long since I've worked with C at this level! One question I have is the handling of port numbers ... the way it currently seems to be structured, the SCTP layer is initialized with a listening UDP port number as a parameter to the sctp_init function, and the remote port is set as a socket option, SCTP_REMOTE_UDP_ENCAPS_PORT, on the listening socket (from discard_server.c) and the active socket (from client.c). So both when listening and when calling out, the remote UDP port is a necessary property of the socket. This would mean that the mode of operation in an SCTP implementation embedded in a browser would be: For each browser: - Initialize SCTP to a single random local UDP port For each PeerConnection desiring to use data: - Perform ICE candidate finding to get candidates for this UDP port (or reuse) - Perform ICE negotiation to associate the single UDP port to a remote UDP port - Open an userspace SCTP socket and bind this to the remote UDP port (and address) of the best candidate - (Use some DTLS mechanism to initialize DTLS as an encrypting sublayer for SCTP) - One of the ends takes the initiative to set up the SCTP connection between the two - Channels are then opened at will Does that seem approximately right to you? Harald On 01/20/2012 01:02 PM, Michael Tuexen wrote: > On Jan 17, 2012, at 5:28 PM, Harald Alvestrand wrote: > >> (after a long delay) >> thank you very much for the input! >> >> I've downloaded and compiled the code, but haven't yet found out how to do the typical "hello world" call with the binaries provided. >> >> Could you give us a note saying "do this and see the packets flow"? > Hi Harald, > > an updated version of the user-land stack is available from > http://sctp.fh-muenster.de/sctp-user-land-stack.html > > It now supports the platforms Windows in addition to FreeBSD, Linux and Mac OS X. > It implemented SCTP/IPv4 and SCTP/IPv6 and the UDP encapsulation variants > SCTP/UDP/IPv4 and SCTP/UDP/IPv6. > > In libusrsctp-0.9.0/programs you find examples programs. > > Please note that you need to run the programs with root privileges, > if you want to use native SCTP/IPv4 or SCTP/IPv6. > > For example, you can run > sudo ./discard_server > in one shell and > sudo ./client 127.0.0.1 9 > in another shell. > Whatever you type on the console will be sent to the discard server. > Wireshark will show the packets. > > If you want to use UDP encapsulation, you can run > ./discard_server 9899 9999 > in one shell and > ./client 127.0.0.1 9 9999 9899 > in another shell. > > Things are simpler, if you run the stack on two separate machines: > ./discard_server > on one machine. > ./client a.b.c.d 9 9899 9899 > on the other. > > Please note that the demo programs disable the sending of ABORTs > in response to out of the blue packets to allow running multiple > stacks on the same host. This is done by the line > SCTP_BASE_SYSCTL(sctp_blackhole) = 2; > in the code. (On FreeBSD / Mac OS X kernel versions, you have such > a sysctl). > > I hope this helps. If you have any further questions or issues, > please let me know. > > Best regards > Michael >> Harald, experimenter >> >> On 11/18/2011 02:17 PM, Michael Tüxen wrote: >>> Dear all, >>> >>> I just wanted to let you know that the initial version of the >>> SCTP user-land stack based on the FreeBSD kernel code for SCTP >>> is available at >>> http://sctp.fh-muenster.de/sctp-user-land-stack.html >>> >>> It currently support FreeBSD, Linux and Mac OS X. We are >>> currently working on adding support for Windows, adding >>> more examples and improving the API. >>> >>> Best regards >>> Michael >>> _______________________________________________ >>> rtcweb mailing list >>> rtcweb@ietf.org >>> https://www.ietf.org/mailman/listinfo/rtcweb >>> >> >
- [rtcweb] SCTP user-land stack available Michael Tüxen
- Re: [rtcweb] SCTP user-land stack available Michael Tuexen
- Re: [rtcweb] SCTP user-land stack available Harald Alvestrand
- Re: [rtcweb] SCTP user-land stack available Michael Tuexen
- Re: [rtcweb] SCTP user-land stack available Harald Alvestrand
- Re: [rtcweb] SCTP user-land stack available Michael Tuexen
- Re: [rtcweb] SCTP user-land stack available Harald Alvestrand
- Re: [rtcweb] SCTP user-land stack available Eric Rescorla
- Re: [rtcweb] SCTP user-land stack available Michael Tuexen