RivuS

Design phase

                                        We propose that the implementation should be a user/kernel implementation. There will be a part of the implementation, in the kernel, which will be supporting the user space part to implement the protocol. In our design we keep the kernel part as a trivial part, which in most cases will not be manipulating data, but will act as placeholder. The part in the kernel will be defined as connection-oriented.

                We provide the user with a set of primitives, as we will see in this section soon. Our user space part will do most of the data manipulation defined by the protocol, and finally will map these primitives to existing socket system calls, which in turn will be calling the functions that we have provided in the kernel.

                The Protocol Control Block for SCTP is kept in the user space, whereas the one for Internet PCB will reside in the kernel itself. All the buffers (retransmission queues, receive buffers) will also be a part of the user space. The design will be analogous to the design of the TCP used in the kernel.