Stream Control Transmission Protocol (SCTP)

Download Report

Transcript Stream Control Transmission Protocol (SCTP)

RivuS
Stream Control Transmission Protocol
(SCTP) on BSD
ByJayesh Rane
Nitin Kumbhar
Kedar Sovani
PICT.
Guides: Prof. Rajesh B. Ingle, PICT.
Mr. Adityashankar Kini,
Calsoft Pvt. Ltd.
RivuS Goals
• Implementation of the entire SCTP protocol
in the network stack of 4.3 FreeBSD.
• Implementation of Load Sharing extension
to SCTP for Performance gains.
What is SCTP?
• SCTP is Stream Control Transmission
Protocol, a Transport layer protocol.
• SCTP is reliable data transfer protocol
which operates over the Network layer
protocol like IP.
Applications
UDP
TCP
IP
Physical
SCTP
Why FreeBSD?
• FreeBSD is Open source, freely available
Operating System.
• FreeBSD is the most well documented,
structured and secure OS.
• FreeBSD has maximum number of
Licenses available.
RivuS Applications
• SCTP is general purpose Transport layer
protocol, so it is used in all applications
which run on normal TCP giving more
remarkable advantages like Availability,
Security, Performance gains.
• RivuS – Load Sharing, is useful for all the
Data intensive applications, Real Time
Video Audio server applications.
Advantages of SCTP over TCP
•
•
•
•
•
No Head of line Blocking
Resistance to Denial of Service Attacks
Support for Multi-Homing
Message-Oriented Nature
Partial Ordered Data Transfer
Head of line blocking
Features of SCTP
•
•
•
•
•
•
•
•
Multi-Streaming
Multi-Homing
Four-way Handshake Association Initialization
Chunk Bundling
Partial Order Delivery of data
Packet Validation
Path & Peer Monitoring
Shutdown Feature
Multi-Streaming
• different streams within one SCTP
association.
• sequence of messages maintained per
stream, which reduces unnecessary head-ofline blocking.
Multi-Homing
• Multihomed nodes are the nodes which can
be reached under several IP addresses.
• Network level fault tolerance
Association Initialization
Endpoint A
Create TCB
Generate INIT
Start T1-init timer
Stop T1-init timer
Send COOKIE ECHO
Start T1-cookie timer
Stop T1-cookie timer
Endpoint Z
Create temp. TCB
Create cookie
Send INIT ACK
Delete temp. TCB
accept valid cookie
send COOKIE ACK
Create TCB
Chunk Bundling
SCTP Packet Format
Shutdown Procedure
Endpoint A
Endpoint Z
Send SHUTDOWN
Start shutdown timer
Send SHUTDOWN ACK
Start shutdown timer
Stop shutdown timer
Send SHUTDOWN COMPLETE
Delete TCB
Stop shutdown timer
Delete TCB
Streaming Context
Request for HTTP
Streaming Objects
Loss/Latency Feedback
Web Server
over SCTP
Web Client
RivuS – Load Sharing
Load Sharing
• Exploiting Multihoming feature of SCTP to
gain performance, increase scalability,
availability and provide user transparency.
• Performance figures show that we gain very
high performance in data intensive transfers
using our concept of multiplexing data on to
different paths.
Load Sharing Concept
Load Sharing Design
Gain in performance using
RivuS
• Since our current
implementation is in
user space, we are
getting 32% gain in
data transfer, after we
put it in the kernel
space, we claim,
performance gains of
70% to 80%.
Other approaches
• Cisco’s ‘Channel Bonding’
Channel bonding is implemented by binding
several Network Interface Cards (NICs) with the
same MAC address. The higher layers of the
network stack could be oblivious to the fact that
the lower level packets were going out (and
coming in) on different NICs.
• Sun Microsystem’s ‘IP Multipathing’
Why RivuS is better than
others?
• The channel bonding approach is limited to data
link layer and some major hardware changes are
need to be done at both the ends.
• The IP Multipathing solution is non-portable, I.e.
it works only on Solaris 8.0
• RivuS is portable solution with minimal changes
to existing installations and more performance is
achieved.
Future work on RivuS
• Gaining extreme data integrity from data
redundancy between the paths.
• RivuS, implementation of SCTP protocol stack on
BSD is the first implementation, other
implementation by Cisco Inc. is UDP style, it
doesn’t support Connection oriented nature which
SCTP protocol should support inherently. So we
have to get our implementation approved by IETF
group.
RivuS
Thank You !!!
Jayesh Rane
Nitin Kumbhar
Kedar Sovani
Visit us:
http://rivus.sourceforge.net/