Flow control

Download Report

Transcript Flow control

Summer Report
Reporter : Yi-Cheng Lin
Data: 2008/09/02
1
Outline
• What is SCTP [rfc 2960]
• Reference paper : Performance of SCTP
for IPTV Applications
• Ongoing work
2
What is SCTP
•
•
•
•
•
•
Introduction
Packets
States
Data
Multihoming
Streams
3
What is SCTP
: Introduction
Introduction
• SCTP is a reliable transport protocol operating
on top of a potentially unreliable connectionless
packet service such as IP.
• It offers acknowledged error-free non-duplicated
transfer of datagrams (messages). Detection of
data corruption, loss of data and duplication of
data is achieved by using checksums and
sequence numbers.
4
What is SCTP
:Introduction
Applicability:
• SCTP can be used as the transport protocol for
applications where monitoring and detection of loss of
session is required.
• Diagram showing the concept of SCTP association.
SCTP User
Application
SCTP User
Application
SCTP Transport
Service
IP Network
Service
SCTP Node A
SCTP Transport
Service
One or more
IP address
appearances
One or more
IP address
appearances
Network transport
IP Network
Service
SCTP Node B
Naturally
at the
same
layer as
TCP or
UDP
services
5
What is SCTP
:Introduction
• The SCTP decisive difference to TCP is :
– Multihoming
– the concept of several streams within a
connection (association )
– TCP a stream is referred to as a sequence of
bytes, an SCTP stream represents a
sequence of messages (and these may be
very short or long)
6
What is SCTP
:Packets
Packets
• SCTP Packets
– SCTP packet forms the payload of an IP
packet
– composed of a common header and chunks.
• Multiple chunks may be multiplexed into one
packet up to the Path-MTU size
• A chunk may contain either control information or
user data.
7
What is SCTP
:Packets
8
What is SCTP
:Packets
The common header
• The common header consists of 12 bytes.
– Source Port
– Destination Port
– Checksum:
• SCTP packet is protected by a 32 bit checksum ,
robust than the 16 bit checksum of TCP and UDP
– verification tag :
• 32 bit value , association specific, and exchanged
between the endpoints at association startup. So
there are two tag values used in one association.
9
What is SCTP
:Packets
Chunk
• Chunk type field
– used to distinguish data chunks and different
types of control chunks
• Flags
• A chunk length field
– because chunks have a variable length.
• The value field
– contains the actual payload of the chunk.
10
11
What is SCTP
:States
States
• This section describes the states that an
instance of the SCTP protocol enters while
an association is established, and when it
is taken down again.
• The initialization of an association is
completed on both sides after the
exchange of four messages.
12
13
14
What is SCTP
:Data
Data
• SCTP Data Transmission
– General concepts
• SCTP distinguishes different streams of messages
within one SCTP association.
• This enables a delivery scheme where only the
sequence of messages needs to be maintained
per stream (partial in-sequence delivery) which
reduces unnecessary head-of-line blocking
between independent streams of messages .
15
What is SCTP
:Data
• SCTP Data Transmission
– Flow control
• SCTP uses an end-to-end window based flow and
congestion control mechanism similar to the one
that is well known from TCP .
• The receiver of data may control the rate at which
the sender is sending by specifying an octet-based
window size (the so-called Receiver Window), and
returning this value along with all SACK chunks.
• The sender itself keeps a variable known as
Congestion Window (short: CWND) that controls
the maximum number of outstanding bytes
16
What is SCTP
:Multihoming
Multihoming
– An essential property of SCTP is its support of
multi-homed nodes.
• i.e. nodes which can be reached under several IP
addresses.
• Advantage: travels on physically different paths if
different destination IP address are used,
associations become tolerant against physical
network failures.
17
What is SCTP
:Streams
Streams
• SCTP distinguishes different streams of messages within
one SCTP association .
• SCTP provides a mechanism for bypassing the
sequenced delivery service.
• Flow control and congestion control in SCTP have been
designed in a way which assures that SCTP traffic
behaves in the network in the same way as TCP traffic
does.
• Transport Sequence Number (TSN): Detection of loss
and duplication of data chunks .
• Selective Acknowledgement (SACK) : retransmitted
18
Reference paper : Performance of
SCTP for IPTV Applications
Sang Tae Kim, Seok Joo Koh, Yong Jin Kim
Advanced Communication Technology, The 9th International
Conference on (ICACT.2007)
19
Reference paper : Performance of
SCTP for IPTV Applications
Outline
• Introduction
• Features of SCTP for IPTV Applications
• Design of IPTV over SCTP
• Performance Analysis
• Conclusions
20
Introduction
• There have been some studies on the
performance of the SCTP until now.
–
–
–
–
–
–
–
(1) congestion control,
(2) multihoming,
(3) multistreaming,
(4) out-of-order service,
(5) partial reliability extension,
(6) application in the wireless/mobile environment,
(7) SCTP over satellite networks [4].
• we note some works on the multi-streaming and
partial-reliable extension for IPTV applications.
21
Features of SCTP for IPTV
Applications
• we describe the new features of SCTP
that can be considered to support realtime IPTV applications.
– PR-SCTP
– Multi-streaming
• PR-SCTP
22
Features of SCTP for IPTV
Applications
• Multi-streaming
23
Design of IPTV over SCTP
• In this section, we briefly give an overview
of our implementation of IPTV over SCTP.
24
Performance Analysis
• Experimental Environment
– The bit-rate of multimedia data is a constant
value (i.e., CBR traffic).
– The data rate is usually grater than the bitrate R.
– The message size of each SCTP DATA chunk
is a constant value of 1024 bytes.
25
Performance Analysis
•Linux kernel 2.6.16 and
lksctp-tools 1.0.6 [9],
sctplib 1.0.5 and socketapi 1.9.0 [10].
well-known GNU C/C++ compiler 4.1.2 and GNU make 3.8.1.
•NISTNET 3.Oa [14] is used to emulate network environment.
•Wireshark network protocol analyzer [15], similar to the
well-known Ethereal, is used to capture the traffic in the
transmission.
26
Performance Analysis
• Test Scenarios
– i. We compare the transfer completion time of TCP, UDP, SCTP
and PR-SCTP for different loss rate.
– ii. We compare the transfer-to-reception ratio of PR-SCTP and
UDP for different loss rate.
– iii. We compare the transfer completion time of PR-SCTP for
different loss rate and different stream numbers.
– iv. We compare the transfer completion time of TCP and SCTP
using three streams for different loss rate.
– v. We compare the channel switching delay of TCP and SCTP.
• Using MPEG-TS movie file with the size of 2Mbytes,
which is transmitted over the bandwidth of 1024 kbps.
27
28
29
Ongoing work
• Install NISTNET emulation tool.
• Install sctplib 1.0.8 and socketapi 2.2.0 in
Unbuntu.
• Write a simple SCTP echo client-server
and SCTP daytime client-server program.
• Learning how to use SCTP API to
implement SCTP multihoming feature.
• Learning how to transmits the media data
using SCTP characteristic.
30