sctp v/s tcp – a comparison of transport protocols for web traffic cs740 project presentation by...

Post on 15-Dec-2015

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SCTP v/s TCP – A SCTP v/s TCP – A Comparison of Transport Comparison of Transport Protocols for Web TrafficProtocols for Web Traffic

CS740 Project PresentationCS740 Project Presentation

byby

N. Gupta, S. Kumar, R. RajamaniN. Gupta, S. Kumar, R. Rajamani

OutlineOutline

MotivationMotivation

Introduction to SCTPIntroduction to SCTP

Server ArchitectureServer Architecture

Experimental DesignExperimental Design

ParametersParameters

ResultsResults

ConclusionConclusion

MotivationMotivation

Many applications need reliable message Many applications need reliable message

delivery – they do so by delineating a TCP delivery – they do so by delineating a TCP

streamstream

TCP provides both strict-ordering and TCP provides both strict-ordering and

reliability – many applications may not reliability – many applications may not

need bothneed both

Motivation (contd)Motivation (contd)

HTTP is one such applicationHTTP is one such application– While transferring multiple embedded files we While transferring multiple embedded files we

only wantonly wantReliable file transfer for each fileReliable file transfer for each file

Partial ordering for the packets of each file but not Partial ordering for the packets of each file but not total ordering amongst all the packetstotal ordering amongst all the packets

– TCP provides more than this (but overhead?)TCP provides more than this (but overhead?)– SCTP may help (how? – later)SCTP may help (how? – later)

What is SCTP?What is SCTP?

Originally designed to support PSTN Originally designed to support PSTN

signaling messages over IP Networkssignaling messages over IP Networks

It is a reliable transport protocol operating It is a reliable transport protocol operating

on top of a connectionless packet network on top of a connectionless packet network

such as IP (same level as TCP) such as IP (same level as TCP)

Major Differences from TCPMajor Differences from TCP

SCTP is message oriented as opposed to SCTP is message oriented as opposed to being byte stream orientedbeing byte stream orientedSCTP has the concept of an association SCTP has the concept of an association instead of a connection instead of a connection – Each association can have multiple streamsEach association can have multiple streams

SCTP separates reliable transfer of SCTP separates reliable transfer of datagrams from the delivery mechanismdatagrams from the delivery mechanismSCTP supports multihomingSCTP supports multihomingConnection SetupConnection Setup

Packet FormatPacket Format

Similarities to TCPSimilarities to TCP

Similar Flow Control and Congestion Similar Flow Control and Congestion Control Strategies employedControl Strategies employed– Slow Start and Congestion Avoidance phasesSlow Start and Congestion Avoidance phases– Selective AcknowledgementSelective Acknowledgement– Fast RetransmitFast Retransmit– Slight differences for supporting multihomingSlight differences for supporting multihoming

Will allow co-existence of TCP and SCTP Will allow co-existence of TCP and SCTP [JST 2000][JST 2000]

HTTP Server ArchitectureHTTP Server ArchitectureSingle File Transfer ( Both TCP and SCTP are similar)

Client

Server

Childprocess

Request file

Fork child

Send file

HTTP ServerHTTP Server ArchitectureArchitectureMultiple File Transfer (Embedded files) - TCP

Client

Server

Childprocess

Request file 0

Fork childSend file 0

Request file 1..N

Send file 1,2,…N

SCTP Packet FormatSCTP Packet Format

streams

HTTP ServerHTTP Server ArchitectureArchitectureMultiple Files Transfer (Embedded Files) - SCTP

Client

Server

Childprocess

Request file 0

Fork childSend file 0 – stream 0

Request files 1..N

Send file 1 – stream 1

Send file N – stream N

The Scientific MethodThe Scientific Method

ObservationObservation – HTTP does not require – HTTP does not require strict-order of delivery, when fetching strict-order of delivery, when fetching embedded links. Also, HTTP is message-embedded links. Also, HTTP is message-oriented protocol oriented protocol Hypothesis and PredictionsHypothesis and Predictions – SCTP – SCTP provides partially ordered delivery and provides partially ordered delivery and guarantees reliability. This can reduce guarantees reliability. This can reduce user-perceived latency and improve user-perceived latency and improve throughputthroughput

HypothesisHypothesis

3 2 1 3 2 1 3 2 1

File 1File 2File 3

1

TCPReceive buffer in kernel

Server Client

HypothesisHypothesis

3 2 1 3 2 1 3 2 1

File 1File 2File 3

1

SCTPReceive buffer in kernel

Server Client

Experimental DesignExperimental Design

FreeBSD kernel implementation of SCTP FreeBSD kernel implementation of SCTP and TCP Renoand TCP Reno

HTTP 1.1 Server and ClientHTTP 1.1 Server and Client– Similar implementations for TCP/SCTP Similar implementations for TCP/SCTP

Dummynet to simulate interconnection Dummynet to simulate interconnection networknetwork

Our setupOur setup

Server Client

Dummynet configured with different b/w, delay and loss

characteristics

ParametersParameters

We observe latencies for single file and We observe latencies for single file and multiple file transfers by varying the multiple file transfers by varying the following parametersfollowing parameters– Loss rate (0%, 1%, 2%, 5%, 8%, 10%, 15%, Loss rate (0%, 1%, 2%, 5%, 8%, 10%, 15%,

20%, 25%)20%, 25%)– Link Bandwidth (40kbps, 400kbps, Link Bandwidth (40kbps, 400kbps,

3mbps,10mbps)3mbps,10mbps)

We keep Latency constant (80ms)We keep Latency constant (80ms)

ResultsResults

ResultsResults

ResultsResults

About ErrorsAbout Errors

Loss in this direction 1%

Loss in this direction 1%

ReasonReason

3 2 1 3 2 1

File 2File 31

TCPReceive buffer in kernel

Server Client

TCPSend buffer in kernel

23123

ReasonReason

3 2 1 3 2 1

File 2File 3

1

SCTPReceive buffer in kernel

Server Client

SCTPReceive buffer in kernel

2

3

1

2

3

ConclusionsConclusions

The current SCTP implementation performs almost as The current SCTP implementation performs almost as well as TCP when there are no losses – However, there well as TCP when there are no losses – However, there is an extra overhead in sending messages instead of just is an extra overhead in sending messages instead of just a stream of bytesa stream of bytes

SCTP seems to perform better in the presence of losses, SCTP seems to perform better in the presence of losses, because it does not enforce strictly ordered deliverybecause it does not enforce strictly ordered delivery

More graphs available at More graphs available at http://www.cs.wisc.edu/~raj/sctphttp://www.cs.wisc.edu/~raj/sctp

ImplicationsImplications

SCTP can be a viable transport protocol SCTP can be a viable transport protocol for HTTP traffic, because –for HTTP traffic, because –– It helps reduce user-perceived latency and It helps reduce user-perceived latency and

also improves throughputalso improves throughput– Uses a 4-way handshake and also uses an Uses a 4-way handshake and also uses an

encrypted cookie, which offer better protection encrypted cookie, which offer better protection against SYN floods and DoS attacksagainst SYN floods and DoS attacks

– Multihoming feature can be exploited to Multihoming feature can be exploited to transparently allow mobile users to switch transparently allow mobile users to switch between networks between networks

ReferencesReferences

[CT90][CT90] D. Clark and D. Tennenhouse, D. Clark and D. Tennenhouse, Architectural Consideration Architectural Consideration for a New Generation of Protocolsfor a New Generation of Protocols, In Proc. of ACM SIGCOMM '90., In Proc. of ACM SIGCOMM '90.

RFC 2960 (http://www.rfc-editor.org)RFC 2960 (http://www.rfc-editor.org)

http://tdrwww.exp-math.uni-essen.de/pages/forschung/sctp_fbhttp://tdrwww.exp-math.uni-essen.de/pages/forschung/sctp_fb//

[JST 2000] [JST 2000] A. Jungmaier, et. al, Performance Evaluation of the Stream Control Transmission Protocol, In Proc. of the IEEE conference on High Performance Switching and Routing, June 2000.

AcknowledgementsAcknowledgements

Paul BarfordPaul Barford

Doug ThainDoug Thain

Jim Gast, Joel Sommers, Winfred Byrd, Jim Gast, Joel Sommers, Winfred Byrd, CSLCSL

Randall Stewart, Jon Grimm, La Monte Randall Stewart, Jon Grimm, La Monte Henry Piggy YarrollHenry Piggy Yarroll

Questions?Questions?

Server ArchitectureServer Architecture

Single File TransferSingle File Transfer– Server forks a child process for each requestServer forks a child process for each request– Child parses the request and sends the Child parses the request and sends the

requested file or an appropriate error requested file or an appropriate error messagemessage

– Similar for both TCP and SCTPSimilar for both TCP and SCTP

Server Architecture contd.Server Architecture contd.

Multiple File Transfer (embedded files)Multiple File Transfer (embedded files)– TCPTCP

Child process at server parses the request and Child process at server parses the request and sends the requested filesends the requested file

Client parses the received file and sends the Client parses the received file and sends the requests for embedded filesrequests for embedded files

Child process at server receives these requests Child process at server receives these requests and sends the files one after other using persistent and sends the files one after other using persistent connection connection

Server Architecture contd.Server Architecture contd.

Multiple files transfer (embedded files)Multiple files transfer (embedded files)– SCTPSCTP

Child process at server parses the request and Child process at server parses the request and sends the requested filesends the requested file

Client parses the received file and sends requests Client parses the received file and sends requests for embedded filesfor embedded files

Child process at server receives the requests and Child process at server receives the requests and sends the files on different streams within the sends the files on different streams within the same association same association

– Major difference from TCPMajor difference from TCP

Server ArchitectureServer ArchitectureSingle File Transfer ( Both TCP and SCTP are similar)

Client

Server

Child process

request

Fork child

response

top related