330 likes | 572 Views
NS Simulator Studying For Stream Control Transmission Protocol. CSCI8211 Project Presentation Ke Zhang Computer Science & Engineering University of Minnesota. Outline. Myself Motivation for this project Background My work Results Conclusions & Future Work References. Who am I?.
E N D
NS Simulator Studying ForStream Control Transmission Protocol CSCI8211 Project Presentation Ke Zhang Computer Science & Engineering University of Minnesota
Outline • Myself • Motivation for this project • Background • My work • Results • Conclusions & Future Work • References
Who am I? • Working as a full-time Programmer @ Silicon Graphics, Inc (SGI, famous for its graphics technology and IRIX OS) • Currently, pursuing master degree of MICS program @ Computer Science & Engineering Department of U of Minnesota • First time coming to University campus • Planning to graduate Fall, 2003
Motivation for Steaming video/audio Technology • I am directly benefit from this technology; taking every class by streaming video offered by Unite program of U of M • Original topic: Security issue for streaming video/audio for RealNetwork technology • Case study: Only allow users view the stream video/audio. Don’t allow save! • Give it up due to technical difficulties
Motivation for developing SCTP • Transportation of telephony signaling messages over IP networks: rigid timing and reliability requirements (Driven by moving from PSTN[public switched telephone network or Plain Old Telephone Service] to packet based Internet for telecommunication connection) • Problems for TCP and UDP • TCP • Byte-Stream Oriented • Provides strict ordering of information, which causes Head of Line Blocking(HOL) problem • No built-in support for multi-homed IP hosts • Vulnerable for SYN flooding attacks • UDP • Unreliable data transfer • No congestion/flow control (application must handle it by itself) • Solution: need a new Transport Layer Protocol SCTP
Application UDP TCP SCTP IPv4/IPv6 Link Layer Physical Layer IP Network What is SCTP? • An end-to-end, connection-oriented transport protocol that transports data in independent sequenced streams • The Signaling Transport (SIGTRAN) group of the Internet Engineering Task Force (IETF) defines SCTP standards in RFC 2960 (October 2000) • Transport layer protocol which operates on top of an unreliable connectionless network layer such as IP. • SCTP could be implemented in network systems and applications that deliver voice/data and support quality real-time services (e.g., streaming video and multimedia).
SCTP Features • End-to-end reliable transportation service over IP networks • Support multiple streams: • Multiple streams per assocation • solves HOL blocking problem and enables partial ordering. • Support for multi-homed hosts • Multiple IP addresses per host • More tolerant to network failures • Message-oriented: conserves message boundaries • Unordered delivery: SCTP can deliver message as ordered or unordered. • Congestion Control: SCTP congestion control is similar to TCP. • Enables seamless introduction of SCTP into IP networks • SCTP is rate adaptive similar to TCP. • AIMD (Additive Increase/Multiplicative Decrease) algorithm with slow start, congestion avoidance, fast retransmit and fast recovery. SCTP uses delayed SACKs and duplicate SACKs.
SCTP Header • Port • Checksum • Verification Tag Chunk 1 Header Chunk 1 Payload . . Chunk 1 Header Chunk 1 Payload SCTP Packets Each SCTP packet contains 1 or more “Chunks” Each Chunk has a common header: type, flags, length Example Chunk types: DATA, SACK, INIT
SCTP Packets – Another view 32 bits Source Port Dest. Port SCTP Verification Tag Common Header Checksum Type Flags Length Chunk1 [Control/Data Data Segment 1 MTU Resv.U,B,E Type Length TSN n Chunk [Data Chunk] Stream Identifier S Stream Sequence # n Payload Protocol Identifier User Data (seq n of Stream S)
SCTP Packet details • The common headers includes: • The source port address • The destination port address • The verification tag • The checksum of the entire packet • The chunk fields includes: • The chunk-type field: identifies the type of chunk being transmitted (Currently, 16 different types of chunks : 1 DATA chunk + 15 control chunks) • The chunk flag: specifies whether bits will be used in the association • The chunk length: determines the size of the entire chunk in bytes • The chunk data: includes the actual data payload of the chunk
SCTP Basic terms • SCTP Endpoint: is the logical end of the SCTP transport protocol. • Multi-homed SCTP Endpoint: a list of SCTP transport addresses on the machine that share a single SCTP port. • E.g. endpoint A = [123.23.45.5, 137.38.84.4: 100] • SCTP Association: Similar to TCP connection. • An association between two SCTP end points allows the transfer of both application data and control data • Association begins with an “initiation” and is maintained until all data has been successfully transmitted and received. Once all data is successfully received, the association is gracefully terminated through a “shutdown” • Denotes by a pair of two SCTP endpoints. E.g. association = {[123.23.45.5, 137.38.84.4: 100] :[35.43.121.34:200]}
Responsibility of STCP Endpoints SCTP user application Association startup and shutdown Stream sequence delivery Message fragmentation Acknowledgement & Congestion control Message bundling Packet validation Path Management IP Network
SCTP Unordered Messages • Any message may be marked as “Unordered”. • Unordered message 3 will not wait for lost message 1 in this case • Unordered Message avoid Head of Line Blocking problem. 4 hello 3U world 4 csci8211 Receiver
Stream 0 Sender Receiver Stream N Multiple stream feature of SCTP • SCTP stream: represents a sequence of messages • SCTP accomplishes multistreaming by creating independence between • Data transmission (uses Transport Sequence Number) • Data delivery ( uses Stream Sequence Number) • In the normal case, each message is delivered to the receiver in its order of transmission within the stream • A message may also be specified by the sending application as unordered
IPB1 IPA1 IP Network IPA2 Host A IPB2 IPA3 Host B Multihoming • SCTP can support multiple IP addresses in an association • Requires multiple Network Interface Cards • Peer need to select primary transport address
Flow Control & Congestion Control • SCTP uses an end-to-end window based flow and congestion control (similar to TCP) • AIMD algorithm with Slow Start and Congestion Avoidance, fast retransmit and fast recovery • SCTP uses selective Acknowledgement (SACK)
NS-2 Simulations • Why choosing NS-2? • NS-2 is a popular tool for network simulation study • SCTP is available for NS-2 • Features of SCTP module for NS-2 • Establishment of association • Multi-homed SCTP endpoints • Ordered and Unordered Delivery • SCTP Slow-start and Congestion Control • Endpoint and Path Failure Detection
Problems in NS2 Installation and Simulation • Need install cygwin first (www.cygwin.com) on my laptop • Only ns2 versions for window-based cygwin env are ns-2.1b.9a and ns-2.26 • Installation packet @: http://www.cs.virginia.edu/~nc2y/ns-cygwin.shtml • Installed latest ns-2.26 on my laptop • SCTP patch for ns-2 is contributed by a group at the University of Delware. • Installation packet @: http://pel.cis.udel.edu/# • Only works for ns-2.1b8 version • My strategy: • Install ns-2.1b8 on my laptop first • Apply SCTP patch to ns-2.1b8 to get the list of all files that are touched by SCTP packet • Go through the whole patch file for SCTP and applies the changes to each files for ns-2.26 installation on my laptop • Compile ns-2.26
TCP 1Mbps 1Mbps 1Mpbs DropTail 1Mbps 1Mbps TCP sender/receiver SCTP SCTP sender/receiver Fairness between TCP and SCTP • Simulation setting: • TCP: • packet size = 1000 bytes; window_ = 20 • SCTP: • Data Chunk Size = 1448 bytes; MTU = 1500 bytes; outstream_number = 1 • Simulation time: 6.0 seconds • 60 samples • Metrics: Total number of packets received by TCP/SCTP receiver
Multihoming study • Case 1: Change the primary address in the middle of an association • SCTP Chunk size = 1448 bytes; MTU =1500; one HEARTBEAT is shared for all destination. • Both nodes have two network interfaces. • 20 second simulation; switching happens at 15 second • Expected result: • The association should not be tear down between two SCTP nodes • the normal data transfer should not be interrupted. SCTP Sender SCTP Receiver
TCP 1Mpbs DropTail TCP sender/receiver SCTP SCTP sender/receiver Alternate(backup) path for SCTP Multihoming study • Case 2: SCTP vs. TCP for the network path failure • SCTP host and TCP host share the same bottleneck network link • SCTP • SCTP Chunk size = 1448 bytes; MTU =1500; each destination has its own HEARTBEAT. • Both nodes have two network interfaces. • One TCP Agent and TCP Sink Agent • 20 second simulation; network failure between [10, 15] • Expected result: • Continually delivering data for SCTP • no data transfer using TCP during the network failure
Alternate path for SCTP Shared Bottleneck link
SCTP TCP No data transfer during network failure [10, 15] During the network failure, SCTP using alternate path to continually delivering data
Conclusion and Future Work • SCTP’s multi-homing feature • Learned a lot from this project • In the future: • Study the flow control and congestion control mechanism of SCTP • Investigate user-space SCTP reference implementation
References • SCTP RFC: http://www.ietf.org/rfc/rfc2960.txt • Randall Stewart and Qiaobing Xie, Stream Control Transmission Protocol (SCTP): A Reference, Publisher: Addison-Wesley • NS2 internet site: http://www.isi.edu/nsnam/ns/index.html • NS2 SCTP patch internet site: http://pel.cis.udel.edu/ • A.Jungmaier, M.Schopp, et al. - Performance Evaluation of the Stream Control transmission Protocol - Proceedings of the IEEE Conference on High Performance Switching and Routing, June 2000. • Rajesh Rajamani, S. Kumar, et al., “SCTP versus TCP: Comparing the Performance of Transport Protocols for Web Traffic”, Computer Sciences Department, University of Wisconsin=Madison, May 13, 2002 • A.Jungmaier, M.Schopp, et al – SCTP – A multi-link end-to-end protocol for IP-Based Networks – International Journal of Electronics and Communications-2001 • SCTP in Battlefield networks - Phillip T. Conrad, Gerard J. Heinz - Computer and Information Science Department, Temple University, Philadelphia • SCTP Web site: http://www.sctp.de/sctp.html • SCTP Web site: http://www.sctp.org/index.html • SCTP for Beginners: http://tdrwww.exp-math.uni-essen.de/pages/forschung/sctp_fb/ • Atifquzzaman, M., “Performance of Stream Control Transmission Protocol (SCTP)”, PowerPoint slides, School of Computer Science, University of Oklahoma • Chang D., and Grimm J., IBM Linux Technology Center, “An Introduction to SCTP and the LKSCTP Project ”, PowerPoint slides • Nicolas Christin, Build NS-2 on Cygwin, http://www.cs.virginia.edu/~nc2y/ns-cygwin.shtml
Quiz • The Signaling Transport group of IETF defines SCTP standards in _______ A) RFC 2890 B) RFC 2780 C) RFC 2960 D) RFC 2360 • In SCTP, data is transmitted only when a connection is established by creating a relationship, which is referred to as _______ • A link • An association • A collaboration • An affiliation
SCTP closely monitors the transmission paths to the peer endpoint using _____ chunks that test the connectivity of each path. A) INIT B) SACK C) HEARTBEAT D) Shutdown • The ______ feature enables SCTP endpoints to support multiple addresses. A) Chunk bundling B) multi-streaming C) address management D) multi-homing