Subject: Why Use UDP With SCTP Implementations?

From: "Ismat Halabi (ERA)" <[email-masked]>
Date: Tue, 6 Mar 2001 12:52:51 +0100

Folks,

I am new to SCTP and am doing a masters in the subject. I do not know much about the protocol history.

However, I wonder why in both the implementations of Randell Stewart (v. 4.0.2) and Andreas Jungmaier (v. 0.10.0), the SCTP user uses UDP to connect to an SCTP daemon/instance.

My questions are the following:

- Why is it done this way (or am I mistaken)?

- I would like to test SCTP, by having my client or SCTP user directly over SCTP, i.e. without UDP communication. Is this possible? 

Regards,
Ismat Halabi

---

From: "Randall R. Stewart" <[email-masked]>
Date: Tue, 06 Mar 2001 06:24:26 -0600

Ismat:

Comments below...

> - Why is it done this way (or am I mistaken)?

No, you are correct. When you build a user level implementation
like this you have two basic choices. You either make it
so that every user of your library (for that is what it is) MUST
be superuser or SUID to root. Then the proper permissions are
present to open a RAW socket (it requires root access.. see
socket(2)). Now the other choice, is what Andreas and I have
done. You create ONE program ... the daemon.. that opens the
raw socket and everyone talks to it to send/rcv data. Now one
does not need to use UDP one could in theory use any other
form of IPC... but I (and I take it Andreas as well) felt it
was easier just to go ahead and use UDP... especially since
there was already a reserved SCTP port :)

> - I would like to test SCTP, by having my client or SCTP user directly over SCTP, i.e. without UDP communication. Is this possible?

Give me about a week :)

Yestereday I almost completed the SCTP code for FreeBSD that will
allow the reference implementation to be a true kernel implementation.
Today I should put the finishing touches on the FreeBSD kernel changes
I need to do. Then I just need to add in the routing socket code
to better integrate the add/delete IP address things..

Once this is done I will release the 4.0.3 version of the reference
implementation that will either

A) On linux and non-bsd systems run as it does now (with
   a few minor bugs I have found fixed)

or

B) On a FreeBSD system (and possibly others) it will come with
   kernel patches/files that one can add to the system and the 
   reference implemenation will recognize this and use it. When
   you have this in place it will be a true kernel implementation
   in that the extra copies will not be needed between user library
   to kernel, kernel to daemon and daemon to kernel.... You will
   be able to open a true SCTP socket, which will expect full
   IP packets.

I will not release the code in 4.0.3 until I can also include the
needed changes for IPv6 kernel level. 4.0.4 will include the
support by the SCTP implementation of IPv6...

I hope to announce the first phase to this list Friday... and of
course to the FreeBSD list too..

R

-- 
Randall R. Stewart
[email-masked] or [email-masked]
815-342-5222 (cell) 815-477-2127 (work)