Design of SCTP-SCF - IJCSNSpaper.ijcsns.org/07_book/200804/20080411.pdf · SCTP (Stream Control...
Transcript of Design of SCTP-SCF - IJCSNSpaper.ijcsns.org/07_book/200804/20080411.pdf · SCTP (Stream Control...
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
74
Manuscript received April 5, 2008
Manuscript revised April 20, 2008
Design of SCTP-SCF
Doo-Won Seo1, Hyuncheol Kim2
1 Dept. of Computer Information, Daeduk College, Deajon, Korea
2 Dept. of Computer Science, Namseoul Univ., Cheonan, Korea Summary SCTP (Stream Control Transmission Protocol) is a general-purpose transport protocol for IP network data communications. This paper examines methods of guaranteeing multi-streaming management and fairness among streams within SCTP associations. We investigated an important aspect of fairness adjustment between streams of SCTP, the underlying congestion control mechanism. In this paper, we propose that separated congestion control with a fairness compensation module is more efficient than the standard SCTP. Proposed SCTP-SCF overcomes existing problems in the traditional SCTP when a multi-streaming feature is used.
Key words: SCTP, Fairness, Multi-streaming, Congestion control
1. Introduction
Stream Control Transmission Protocol (SCTP) is a general-purpose transport protocol for IP network data communications that resembles Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). The Internet Engineering Task Force (IETF) published it as RFC2960 [1]. The main purpose of SCTP is providing reliable end-to-end message transportation services over IP-based networks. The network community has paid a lot of attention, regarding both research and development, to SCTP because of its beneficial features such as multi-streaming and multi-homing in many institutes and universities [2][3][4][5].
Multi-streaming with only one congestion control can not settle the HOL blocking problem. To settle the problem clearly, it is needed to separate congestion control on each stream. However, a new problem will be generated in that fairness will not be guaranteed. It seems to be a worthwhile subject to settle the fairness problem. It will be a great help in upgrading the total throughput over networks.
Unfairness supports unfair service to the applications. When the status of fairness is not so good, it could generate a situation where several packets are accidently unable to transfer. At this time, the average throughput of SCTP is degraded.
This paper examines methods of guaranteeing multi-streaming management and fairness among streams within a SCTP association. For this research of multi-streaming fairness, congestion control, which is based on the loss and Round Trip Time (RTT) was used to adaptively modify the SCTP congestion control window.
This paper presents a revised, improved congestion control scheme such as SCTP-SCF that includes SCTP multi-streaming to solve performance problems at high speed and evaluates the method’s performance. The performance of the proposed scheme is evaluated using an OPNET simulator.
2. Related Works
The basic service offered by SCTP is the reliable transfer of user messages between peer SCTP users. It performs this service within the context of an association between two SCTP endpoints. SCTP is connection-oriented in nature, but the SCTP association is a broader concept than the TCP connection [1]. This section summarizes some of the key features that provide to the ULP (Upper layer protocol).
Fig. 1 SCTP multi-homing concept
2.1 SCTP Multi-Streaming
The SCTP transfer protocol has a function in which one SCTP association has multiple streams. Multi-streaming allows for multiple streams on an association to send data. A SSN (Streaming Sequence Number) is allocated to each stream in SCTP so that the order of the streams could be maintained to manage the data being transferred thereby providing secure data transfers.
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
75
As for the single-stream TCP, in the case where packets of a data that was transferred to the stream is lost, the Head of Line blocking occurs. The data cannot be transported to an application when waiting for the lost packet to be retransferred.
Fortunately, SCTP supports the multi-streaming function in which even if the data transfer in one stream encounters the packet loss of a data, the transfer process in other streams are not affected and therefore able to continue transferring data to an application. Fig. 1 shows the SCTP multi-streaming concept [6][7].
Therefore, SCTP's strength is in its multi-streaming ability that makes the data transfer faster. In addition, SCTP contains a U flag that can select the data chunk to be ordered or unordered. If a data transfer does not to be ordered, the U flag can simply be set to one for unordered data transfer. The receiving end of the terminal that identifies the U flag can reduce the waiting time because it does not need to wait to receive the packets in order or to receive any lost data. Therefore, using the ordered, unordered function of the data chunk in association with the multi-streaming ability can bring a significant increase in the performance.
2.2 SCTP Multi-Homing
An SCTP endpoint is considered multi-homed if there are more than one transport addresses that can be used as a destination address to reach that endpoint. Moreover, the ULP of an endpoint shall select one of the multiple destination addresses of a multi-homed peer endpoint as the primary path. By default, an endpoint should always transmit to the primary path, unless the SCTP user explicitly specifies the destination transport address to use. Fig. 2 shows the SCTP multi-streaming concept [6][7].
3. SCTP-SCF
3.1 Motivation
If we make a typical request to an HTTP server to download a web page when surfing the Internet, normally we will receive several different files, containing text, graphics, or sound. In figure 2 the left side represents the source, which sends three small files upon the request of the client, and the right side is the destination. In figure 2, we see what happens when the three files are sent using a single TCP connection: as the first datagram is lost, even though the second and third files arrived entirely at the client they cannot be delivered to the upper user.
Source Destination
Text
SoundGraph
S1G1T1S2G2T2
G1T1S2G2T2
TCP User
Buffered
Fig. 2 A single TCP connection
Usually, the client opens several different TCP connections, one independent connection per file, and closes each one once the file is completely transferred. This is shown in figure 3. However, we still suffer from the delay involved in opening and closing the TCP connections, and what is worse, we are wasting resources by having several TCP connections open at the same time between the same two endpoints, as servers have a limitation in the number of open TCP connections they can have at the same time. Apart from saving resources and avoiding delay by establishing these TCP connections, all the streams belong to the same association [8].
Source
Text
SoundGraphS1
G1
T1
S2
G2
T2 S2
TCP User
BufferedDestination
TCP Connection 1
TCP Connection 2
TCP Connection 3 Delivered Delivered
G1G2
T1T2
TCP User
TCP User
Fig. 3 Multiple TCP connections
Using multi-streaming, data transmitted with a single SCTP association may be divided into multiple streams as shown figure 4. The delivery sequence of these streams is independently handled. Within each stream, it is also possible to independently set the ordered or unordered delivery. Packet loss in one stream has no effect on the remaining streams, which assists them in avoiding the well-known TCP HOL blocking problem. When using the multi-streaming feature, the in-sequence delivery of the transmitted data may only be guaranteed within each stream, not the whole association. At the same time, a transport is performed within a single association, so all of the streams are under a common flow and congestion control mechanism [9].
Source
Text
SoundGraph
S1
G1
T1
S2
G2
T2
Stream 1
BufferedDestination
Stream 1
Stream 2
Stream 3 Delivered Delivered
G1G2
T1T2
SCTP User
Stream 3Stream 2
SCTPAssociation
S2
Fig. 4 A single SCTP association with 3 streams
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
76
The current network end users want to request various types of data from an application. The application must provide a way to transmit multiple data types in parallel, and must effectively respond to periods of insufficient bandwidth. SCTP streams are independent, so research is under way to support their adaptation to specific application requirements. However, no another previous work has suggested an algorithm to guarantee fairness of a stream competing with other stream with SCTP. Therefore, the work presented in this paper differs from previous works in that it guarantees fairness among streams. In this paper, a new congestion control called SCTP-SCF is proposed to settle this problem as shown figure 5.
Source
Text
SoundGraphS1
G1
T1
S2
G2
T2
Stream 1
Buffered->DeliveredDestination
Stream 1
Stream 2
Stream 3 DeliveredDelivered
G1G2
T1T2
SCTP User
Stream 3Stream 2
SCTPAssociation
S2
S1S2
Fig. 5 A single SCTP-SCF association with 3 streams
Since congestion and flow control are respectively done for each path and association, a stream congestion control is performed per application. Thus, when single loss occurs for a particular stream, SCTP suffers cwnd reductions per path and halves the whole stream values each time. Consequently, the current specification of SCTP’s congestion control does not ensure precise congestion control for each stream when there is a single loss or multiple losses within a certain stream [10].
Multi-streaming with only one congestion control can not settle the HOL blocking problem. To settle the problem clearly, it is needed to separate congestion control on each stream. However, a new problem will be generated in that fairness will not be guaranteed. It seems to be a worthwhile subject to settle the fairness problem. It will be a great help in upgrading the total throughput over networks.
Unfairness supports unfair service to the applications. When the status of fairness is not so good, it could generate a situation where several packets are accidently unable to transfer. At this time, the average throughput of SCTP is degraded.
3.2 Standard SCTP Module
The Figure 6 shows the standard SCTP module, which consists of association management module, global congestion control, and queue management modules.
AssociationManagement
Module
Send
Queue
Management
Module
Receive
Queue
Management
Module
GlobalCongestionController
IP
SCTP
ULP API
Fig. 6 Standard SCTP's functional modules
◦ Stream queue management: The endpoint must manage the operation and resources for every stream. For outbound streams, the endpoint will have to assign stream sequence numbers for every outgoing message. For inbound streams, the endpoint will have to monitor the continuity of stream sequence numbers of the arriving messages and undertake message reordering when needed.
◦ Global congestion controller: The end point must check whether a congestion problem exists in the network. If it finds that network congestion is happening, the endpoint will have to adjust its sending operation to help mitigate the network congestion.
Figure 7 shows the layered operation of standard SCTP.
Application
DataType 3
DataType 2
stream1
DataType 1
stream3
stream2
Packet 2 :
Stream 1,2
Packet 3 :
Stream 2,3
Packet 1 :
Stream 1
IP
SCTP
One AssociationOne Congestion Control
Fig. 7 The layered operation of standard SCTP
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
77
3.3 SCTP-SC
Proposed SCTP using Separated Congestion controller (SCTP-SC) is an SCTP using separated congestion control. Since congestion and flow control are respectively done for each path and association, a stream congestion control is performed per application. Thus, when a single loss occurs for a particular stream, SCTP suffers cwnd reductions per path and halves the whole stream values each time. SCTP-SC will settle this problem.
Figure 8 shows the SCTP-SC module. The SCTP-SC module is made up of association management modele, per stream congestion controller, queue management module, and windows update scheme. The per stream congestion controller and windows update scheme operate on each stream.
AssociationManagement
Module
Send
Queue
Management
Module
Receive
Queue
Management
Module
per StreamCongestion
Controller
per Stream
CongestionController
w indow supdate scheme
w indow supdate scheme
IP
SCTP-SC
ULPAPI
Fig. 8 SCTP-SC's functional modules
Figure 9 shows the layered operation of SCTP-SC
Application
DataType 3
DataType 2
stream1
DataType 1
stream3
stream2
Packet 2 :
Stream 2
Packet 3 :
Stream 3
Packet 1 :
Stream 1
IP
SCTP
Each ConnectionEach Congestion Control
Fig. 9 The layered operation of SCTP-SC
3.4 SCTP-SCF
In this section, we propose an algorithm to improve the SCTP fairness based on the fairness guarantee scheme and the window adaptation scheme.
SCTP using Separated Congestion controller with Fairness guarantee module (SCTP-SCF) use separated congestion control with a fairness guarantee module. SCTP-SC increases the total throughput but makes a new problem that generates unfairness. SCTP-SCF controls the congestion window based on its own information and information from another stream. SCTP-SCF is more efficient than the original SCTP. By applying a separated congestion control module, SCTP-SCF created and can be used for various applications. SCTP-SCF overcomes existing problems in the standard SCTP when the multi-streaming feature is used.
Unfairness supports unfair service to applications. When the status of fairness is not very good, a situation can be generated where several packets are unable to transfer accidently. At such a time, the average throughput of SCTP is degraded. Table 1 shows a comparison of SCTP at collision.
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
78
Table 1 Comparison of SCTP at collision
Standard SCTP
SCTP-SC SCTP-SCF
Throughput decrease all streams
-decrease special stream -slow restoration from pseudo collision
fast restoration from pseudo collision
Fairness no meaning could not guarantee fairness
guarantee fairness
Figure 10 shows the SCTP-SCF module. The SCTP-SC module is made up of an association management module, per stream congestion controller, queue management module, windows update scheme, and fairness guarantee module. The fairness guarantee module uses congestion control for aggregates where flows have the same end-to-end path. The architecture’s core is the fairness guarantee module, which coordinates path information to guarantee correct congestion behavior and permits applications to readily adapt to network congestion. To react more effectively with high BDP networks, the window adjustment algorithm needs to be fairer than it has been. It is worthwhile to attempt a fairer approach depending on the information the estimated extra data gives. Layered operation of SCTP-SCF is same as that of SCTP-SC.
AssociationManagement
Module
Send
Queue
Management
Module
Receive
Queue
Management
Module
FairnessGuarantee
Moduleper StreamCongestionController
per StreamCongestionController
w indow s
update scheme
w indow supdate scheme
IP
SCTP-SCF
ULP API
Fig. 10 SCTP-SCF's functional modules
We introduce four zones, OverLoadZone (OLZ), LoadZone(LZ), Base Zone(BZ), and Idle Zone(IZ), as shown in figure 11.
if ( (α + RanF) < Diff )
OLZ
else if ((α < Diff) && ( Diff < (α + RanF)))
LZ
else if (((α ‒ RanF) < Diff) && ( Diff < α ))
BZ
else if ( Diff < (α ‒ RanF))
IZ
◦Expected = cwnd / BaseRTT
◦Actual =cwnd / RTT
◦ Diff = Expected – Actual
◦ RanF: Range Factor of α
Fig. 11 Classification of zone
where α is extra buffer counts that are occupied by the
connection in the network. The OLZ is a zone where overload traffic is repeatedly
in a collision status. At OLZ, SCTP-SCF can increase the congestion window size based on its own cwnd, cwnds from other streams, and a compensation factor such as equation (3.1).
÷÷÷÷
ø
ö
çççç
è
æ
´+=
å=
n
i
iCwnd
nCwndnCwndnCwnd
0
][
][][][ m (3.1)
where n is the number of stream, μ is compensation
factor. If the effect of μ is rapid, compensation factorμ is exchanged to μ/n. (3.1) is changed to (3.2)
÷÷÷÷
ø
ö
çççç
è
æ
´+=
å=
n
i
iCwnd
nCwndnnCwndnCwnd
0
][
]'[)/(]'[]'[ m (3.2)
At IZ, cwnd could be decreased based on information
from other streams. as in equation (3.3), (3.4). The LZ is a zone where overload traffic is sometimes in a collision status.
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
79
÷÷÷÷
ø
ö
çççç
è
æ
´-=
å=
n
i
iCwnd
nCwndnCwndnCwnd
0
][
][][][ m (3.3)
÷÷÷÷
ø
ö
çççç
è
æ
´-=
å=
n
i
iCwnd
nCwndnnCwndnCwnd
0
][
]'[)/(]'[]'[ m (3.4)
4. Performance Evaluation
3.4 Modeling
This Chapter describes the SCTP module developed for the network simulator OPNET [11]. OPNET is a discrete event simulator developed for network research. Our SCTP implementation is based on RFC 2960, CINT's SCTP module[12], and the University of Delaware's SCTP module [13]. The latter module is in wide use and provides a strong baseline for SCTP functionality.
OPNET is implemented in C with a moduler framework for extensibility. Since we are dealing with a simulation environment, we abstracted some functions of SCTP from all the detailed functions. We also simplify other procedures such as association establishment and association shutdown. The target network configuration of our simulation model is shown in figure 11.
Source(2 Stream)
\
Destination
\
Fig. 11 Logical representation of a target network
3.4 Simulation Result
We constructed two scenarios. The first scenario is for SCTP-SC, and the second scenario is for SCTP-SCF at the OLZ. In each scenario, we used the SCTP stream0 process model and SCTP stream1 process model in order to use a multi-streaming function. Traffic losses were generated only on stream 0.
Jain's fairness index function is used to justify the fairness of TCP schemes. Jain fairness index function is used to justify the fairness of SCTP schemes.
From figure 12, it can be seen that SCTP-SCF performs better than SCTP-SC. SCTP-SCF outperforms SCTP-SC because SCTP-SCF finds the peer stream's measurement and increases cwnd. Measurement data of a packet loss, a timeout and cwnd are considered.
Fig. 12 Jain's fairness index
5. Conclusion
Congestion and flow control at SCTP are executed once for each path and association, respectively. Contrarily, congestion control is executed for each application. Therefore, when a certain stream has a single loss, SCTP undergoes reductions in cwnd size for each path, and the whole-stream values are halved in value every time. Consequently, the current specification of SCTP’s congestion control does not make certain that congestion control is accurate for every stream when a single loss or multiple losses occur within a particular stream.
Multi-streaming with only one congestion control cannot settle the HOL blocking problem. To settle the problem clearly, a separate congestion control on each stream is needed. However, a new problem will be generated in that fairness will not be guaranteed. It seems to be a worthwhile subject to settle the fairness problem.
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.4, April 2008
80
as it will be a great help in upgrading the total throughput over networks. Unfairness supports unfair service to applications. When the fairness status is not so good, it could generate a situation where several packets are accidently unable to transfer. At this time, the average throughput of SCTP is degraded.
We investigated an important aspect of fairness adjustment between streams of SCTP, the underlying congestion control mechanism. To improve SCTP's performance and to guarantee fairness in a new approach that refers to another stream's information such as cwnd and RTT, we introduce a fairness guarantee module.
Proposed SCTP-SCF overcomes existing problems in the traditional SCTP when multi-streaming feature is used. The network simulator OPNET was used to run the performance evaluation. Through simulation, our algorithms show an improvement over standard SCTP.
References
[1] R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang, and V. Paxson, “Stream Control Transmission Protocol”, RFC 2960, October 2000.
[2] Eum-Mi Park, “A study of SCTP Streaming Scheme for Effective Bandwidth Aggregation”, Thesis for the Degree of Master, Korean University, June 2005.
[3] Kang-Min Jung, “A Efficient Video Transmission Scheme Using Predictive SCTP”, Thesis for the Degree of Master, Korean University, December 2005.
[4] Guanhua Ye, “Congestion Control for SCTP in Wireless Ad-Hoc Networks”, Ph.D. dissertation, the City University of New York, 2004.
[5] Zhengliang Yi, “Analytical Modeling of SCTP and Load Balancing SCTP”, Ph.D. dissertation, the City University of New York, 2005.
[6] S. Ladha, and P. Amer, ''Improving multiple file transfers using SCTP multistreaming'', 23rd IEEE and Comm Conf (IPCCC), Apr. 2003, pp. 13-22.
[7] Tasneem Yunus Kanpurwala, ''SCTP multi-streaming: Study of transmission of partially reliable and reliable data using dynamic stream priorities'', The Degree of MASTER of SCIENCE, Oklahoma State University, 2006.
[8] Iván Arias Rodríguez, “Stream Control Transmission Protocol The design of a new reliable transport protocol for IP networks”, Helsinki University of Technology, February, 2002.
[9] Alberto Dainotti, Salvatore Loreto, Antonio Pescap ,́ and Giorgio Ventre, “SCTP performance evaluation over heterogeneous networks”, Published online 3 in Wiley InterScience, April 2007, pp. 1207–1218.
[10] Seok-Hoon Choi, A SCTP Traffic Control Scheduler for Effective Multi-streaming Management, Thesis for the Degree of Master, Korea University, December 2005
[11] "OPNET Module", www.opnet.com.
[12] Ahmed Abd El Al, http://ees2cy.engr.ccny.cuny.edu/wwwa/web/aabdelal/.
[13] A.Caro, J. Iyengar. ns-2 SCTP module, http://pel.cis.udel.edu.