Making SCTP More Robust to Changeover



Similar documents
TRANSPORT LAYER LOAD BALANCING IN FCS NETWORKS

TCP over Multi-hop Wireless Networks * Overview of Transmission Control Protocol / Internet Protocol (TCP/IP) Internet Protocol (IP)

TCP in Wireless Mobile Networks

Low-rate TCP-targeted Denial of Service Attack Defense

Simulation-Based Comparisons of Solutions for TCP Packet Reordering in Wireless Network

Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation

Mobile SCTP Transport Layer Mobility Management for the Internet

Lecture 15: Congestion Control. CSE 123: Computer Networks Stefan Savage

Transport Layer Protocols

Improved Multiple File Transfer Protocol using Extended features of SCTP

Data Networks Summer 2007 Homework #3

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

An enhanced TCP mechanism Fast-TCP in IP networks with wireless links

TCP for Wireless Networks

Transport layer issues in ad hoc wireless networks Dmitrij Lagutin,

SJBIT, Bangalore, KARNATAKA

Student, Haryana Engineering College, Haryana, India 2 H.O.D (CSE), Haryana Engineering College, Haryana, India


Lecture Objectives. Lecture 07 Mobile Networks: TCP in Wireless Networks. Agenda. TCP Flow Control. Flow Control Can Limit Throughput (1)

AN IMPROVED SNOOP FOR TCP RENO AND TCP SACK IN WIRED-CUM- WIRELESS NETWORKS

Performance Evaluation of AODV, OLSR Routing Protocol in VOIP Over Ad Hoc

Performance Analysis of AQM Schemes in Wired and Wireless Networks based on TCP flow

CSE 473 Introduction to Computer Networks. Exam 2 Solutions. Your name: 10/31/2013

Requirements of Voice in an IP Internetwork

QoS issues in Voice over IP

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

First Midterm for ECE374 03/24/11 Solution!!

How To Provide Qos Based Routing In The Internet

TCP over Wireless Networks

Computer Networks. Chapter 5 Transport Protocols

Adopting SCTP and MPLS-TE Mechanism in VoIP Architecture for Fault Recovery and Resource Allocation

15-441: Computer Networks Homework 2 Solution

A Survey on Congestion Control Mechanisms for Performance Improvement of TCP

A Passive Method for Estimating End-to-End TCP Packet Loss

Mobile Communications Chapter 9: Mobile Transport Layer

CS268 Exam Solutions. 1) End-to-End (20 pts)

TCP and Wireless Networks Classical Approaches Optimizations TCP for 2.5G/3G Systems. Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

Quality of Service versus Fairness. Inelastic Applications. QoS Analogy: Surface Mail. How to Provide QoS?

Configuring an efficient QoS Map

A Study of Internet Packet Reordering

CROSS LAYER BASED MULTIPATH ROUTING FOR LOAD BALANCING


Bandwidth Measurement in Wireless Networks

Quality of Service using Traffic Engineering over MPLS: An Analysis. Praveen Bhaniramka, Wei Sun, Raj Jain

Mobile Computing/ Mobile Networks

International Journal of Scientific & Engineering Research, Volume 6, Issue 7, July ISSN


Network Friendliness of Mobility Management Protocols

Secure SCTP against DoS Attacks in Wireless Internet

Computer Networks - CS132/EECS148 - Spring

First Midterm for ECE374 02/25/15 Solution!!

Names & Addresses. Names & Addresses. Hop-by-Hop Packet Forwarding. Longest-Prefix-Match Forwarding. Longest-Prefix-Match Forwarding

High-Speed TCP Performance Characterization under Various Operating Systems

A Survey: High Speed TCP Variants in Wireless Networks

Influence of Load Balancing on Quality of Real Time Data Transmission*


Stop And Wait. ACK received; transmit frame 2 CS 455 3

Congestion Control Review Computer Networking. Resource Management Approaches. Traffic and Resource Management. What is congestion control?




Outline. TCP connection setup/data transfer Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics

A Network-Controlled Architecture for SCTP Hard Handover

COMP 361 Computer Communications Networks. Fall Semester Midterm Examination

Application Level Congestion Control Enhancements in High BDP Networks. Anupama Sundaresan


Publication III. c 2003 IEEE. Reprinted with permission.

Recovery Modeling in MPLS Networks



ANALYSIS OF LONG DISTANCE 3-WAY CONFERENCE CALLING WITH VOIP

Stability of QOS. Avinash Varadarajan, Subhransu Maji

(a) Original Images. (b) Stitched Image


Applications. Network Application Performance Analysis. Laboratory. Objective. Overview

XCP-i : explicit Control Protocol for heterogeneous inter-networking of high-speed networks

Downloaded from SPIE Digital Library on 29 Aug 2011 to Terms of Use:


Sources: Chapter 6 from. Computer Networking: A Top-Down Approach Featuring the Internet, by Kurose and Ross

drop probability maxp

In Proceedings of the 1999 USENIX Symposium on Internet Technologies and Systems (USITS 99) Boulder, Colorado, October 1999

(a) Hidden Terminal Problem. (b) Direct Interference. (c) Self Interference


Effect of Packet-Size over Network Performance

Comparative Analysis of Congestion Control Algorithms Using ns-2

Basic Multiplexing models. Computer Networks - Vassilis Tsaoussidis


Broadband Networks. Prof. Dr. Abhay Karandikar. Electrical Engineering Department. Indian Institute of Technology, Bombay. Lecture - 29.

1. The subnet must prevent additional packets from entering the congested region until those already present can be processed.


Universitat Autònoma de Barcelona

Client URL. List of object servers that contain object

Transcription:

Making SCTP More Robust to Changeover Janardhan R. Iyengar, Armando L. Caro, Jr., Paul D. Amer, Gerard J. Heinz Computer and Information Sciences University of Delaware iyengar, acaro, amer, heinz @cis.udel.edu Randall R. Stewart Cisco Systems Inc. rrs@cisco.com Abstract We present a problem in the current SCTP (RFC296) specification that results in unnecessary retransmissions and TCP-unfriendly growth of the sender s congestion window during certain changeover conditions. We first illustrate the problem using an example scenario. To gain insight into the ambient conditions under which cwnd overgrowth can be observed, we present an analytical model of this problem. As solutions, we then propose two changeover aware congestion control (CACC) algorithms which incorporate changeover awareness in SCTP s congestion control mechanism: Conservative CACC (C- CACC), andsplit Fast Retransmit CACC (SFR-CACC). Using ns-2 simulations, we validate the model and evaluate the recommended solution. Based on the analysis, we make recommendations for modifications to SCTP. 1 Introduction A node is multihomed if it can be addressed by multiple IP addresses [], as would be the case when the host has multiple network interfaces. Network layer redundancy allows access to a host even if one of its IP addresses becomes unreachable; ideally packets can be rerouted to one of the host s alternate IP addresses. However, since IP is connectionless, end-to-end session persistence under failure conditions becomes the responsibility of the transport layer and above. To provide for such fault tolerance, the Stream Control Transmission Protocol (SCTP) supports multihoming at the transport layer. SCTP sessions, or associations, can dynamically span over multiple local and peer IP addresses so that an association can remain alive even if one of the endpoints addresses becomes unreachable. SCTP [13] is a recent standards track transport layer protocol in the Internet Engineering Task Force (IETF). Of the salient features that distinguish SCTP from TCP, we concern ourselves with multihoming. SCTP Prepared through collaborative participation in the Communications and Networks Consortium sponsored by the U. S. Army Research Laboratory under the Collaborative Technology Alliance Program, Cooperative Agreement DAAD19-1-2-11. The U. S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation thereon. 1

multihoming allows binding of one transport layer association to multiple IP addresses. This binding allows an SCTP sender to send data to a multihomed receiver through different destination addresses. For instance, in figure 1, could send data to using destination address ½ or ¾. SCTP s multihoming feature was motivated by fault tolerance; if one destination address becomes unreachable, the destination can still send and receive via other interfaces bound to the association. In a multihomed SCTP association, the sender transmits data to its peer s primary destination address. SCTP provides for application-initiated changeovers so that the sending application can change the sender s primary destination address, thus moving the outgoing traffic to a potentially different path 1. We uncovered a problem in the current SCTP (RFC296) specification [13] that results in unnecessary retransmissions and TCP-unfriendly growth of the sender s congestion window under certain changeover conditions. We wish to point out that the problem of unnecessary fast retransmits observed is applicable to TCP as well, under reordering of traffic by the network. Such reordering has been known to occur, and there s been work done in the area [4, 7, 14]. But, under a single association, SCTP has the unique feature of multihoming which allows multiple congestion windows to co-exist. Such a feature has not been known to TCP, and hence the problem of congestion window overgrowth is unique to SCTP. Nevertheless, any transport layer protocol equipped with multihoming awareness would probably observe the described problems. Though the solutions as described in Section are specific to SCTP, they also indicate that such multihoming aware transport protocols should incorporate changeover awareness in their congestion control algorithms. In Section 2, we present a specific example which illustrates the problem of cwnd overgrowth with SCTP s currently specified handling of changeover. We then generalize the problem, and develop an analytical model in Section 3. The model abstractly quantifies the cwnd overgrowth under various network and changeover conditions. This model provides insight into the ambient conditions under which cwnd overgrowth can be observed. Based on the model, we present some results estimating conditions for cwnd overgrowth in Section 4. Due to the fact that transport layer multihoming is not a current practice, it is extremely difficult to use any empirical data to reinforce the importance of the observed congestion window overgrowth. Hence, we use analytical results in Section 4 to suggest that the problem might not be a corner case. Section presents two changeover aware congestion control algorithms as solutions: Conservative CACC (C-CACC) and Split Fast Retransmit CACC (SFR-CACC). By approaching the problem from different perspectives, the Rhein algorithm (described in a previous work [8]) and the CACC algorithms (Section ) all solve the problem of TCP-unfriendly cwnd growth. After analyzing their advantages and disadvantages in Section 6, we recommend the addition of the SFR-CACC algorithm to SCTP. The problem description presented in Section 2 was introduced in [8]. This material is repeated here to establish context, and can be skipped by readers familiar with [8]. 2 Congestion Window Overgrowth: An Example In this Section, we present an example illustrating the occurence of cwnd overgrowth and unnecessary retransmissions with SCTP s currently specified handling of changeover. The example uses the architecture shown in figure 1. Endpoints and have an SCTP association between them. Both endpoints are 1 SCTP was designed as a transport protocol for telephony signaling in SS7 networks. In an SS7 network the upper layers can dictate to which destination address packets will be sent, motivating the application-initiated changeover feature in SCTP. 2

Host A A 1 A 2 Path1 Network Path2 B 1 Host B B 2 Figure 1: Architecture used in example multihomed, with network interfaces ½ and ¾,and with interfaces ½ and ¾ 2. All four addresses are bound to the one SCTP association. For several possible reasons (e.g., path diversity, policy based routing, load balancing), we assume in this example that the data traffic from to ½ is locally routed through ½, and from to ¾ through ¾. Non overlapping paths are assumed with the bottleneck bandwidth of path 1 being Mbps, and that of path 2 being Mbps. The propagation delay of both paths is ms, and the path MTU for both paths is 12 bytes. Figure 2 shows a timeline of events for our example. The vertical lines represent interfaces ½, ½, ¾ and ¾. The numbers along the lines represent times in milliseconds. Each arrow depicts the departure of a packet from one interface and its arrival at the destination. The labels on the arrows are either SCTP Transmission Sequence Numbers (TSN) or labels of the form ËÌ Ì Ë Ì µ. SCTP transmits data and control information in transport layer entities called chunks. Each DATA chunk carries a unique TSN, as against the sequence numbering scheme in TCP, which assigns a sequence number per byte. Assuming one chunk per packet, every packet in the example corresponds to one TSN. A number represents the TSN of the chunk in the packet being transmitted. SCTP uses cumulative acks and selective acks in acknowledgments, where the selective acks indicate the TSNs received out of order. Such selective acks in SCTP, which are sent in SAC chunks, are called gap acks. AlabelËÌ Ì Ë Ì µ represents a packet carrying a SAC chunk with cumulative ack Ì, and gap ack for TSNs Ì Ë through Ì. ½ is the cwnd at for destination ½,and ¾ is the cwnd at for destination ¾. ½ and ¾ are denoted in terms of MTUs, not bytes. The assignments such as initial TSN = 1 and initial time Ø ¼ are arbitrary assignments to signify the beginning of the snapshot. These assignments are not meant to imply the beginning of the association. Initially, ¾ ¾because we assume that either there has been no transmission to ¾ before Ø ¼during the lifetime of the association, or ¾ has decayed 3 to two ÅÌÍ by Ø ¼. 2.1 Example Description The sender ( ) initially sends to the receiver ( ) using primary destination address ½. This setting causes packets to leave through ½. Assume these packets leave the transport/network layers, and get buffered at s link layer ½, whereupon they get transmitted according to the channel s availability. This initial condition is depicted in figure 2 at time Ø ¼, when in this example has packets buffered on interface ½. At Ø ½, as TSNs 1 - are being transmitted through ½, the sender s application changes the primary destination to ¾, thus requiring any new data from to be sent to ¾. In the example, we assume TSN 2 More precisely, ½, ¾, ½ and ¾ are IP addresses associated with link layer interfaces. Here we assume only one address per interface, so address and interface are used interchangeably. 3 The cwnd for a destination address decays exponentially if no data is transmitted to that destination address [13]. 3

Receiver B B 1 A 1 Sender A 2 B 2 A 1-* (C 2 =2) 1 21 22 23 61 62 63 64 6 66 69 7 41 1 2 3 S1 S2(1-2) S3(1-2) S41(1-2) S42(1-4) S43(1-4) S44(1-4) S4(1-4) S46(1-4) 42 43 44 4 46 49 S49 (1-4) S4 * TSNs 1- have been buffered at the sender s link layer corresponding to A 1 and are being sent. 41 42 43 81 82 83 84 8 86 89 9 (C 2 =2) 2 (C 2 =2) 41.1 (C 2 =2) 41.2 (C 2 =2) 81.2 (C 2 =2) 81.3 (C 2 =3) 82 (C 2 =4) 83 (C 2 =) 84 (C 2 =6) 8 (C 2 =7) 86 (C 2 =) 89 (C 2 =11) 9 1 2 S1(1-1) S1(1-2) 3 4 S41(1-3) S41(1-4) 42 (rtx) 43, 44 (rtx) 4, 46 (rtx) 47, 48 (rtx) 49, (rtx) 6, 7 62, 63 64, 6 21.1 21.2 61.2 61.3 1.3 1.4 2.1 3.1 4.1.1 6.1 Receiver B Figure 2: Timeline for the example 1 is transmitted to the new primary at Ø ½. We refer to this moment as the changeover time. Thisnew primary destination causes new TSNs to leave the sender through ¾. Concurrently, the packets buffered earlier at ½ are still being transmitted. Previous packets sent through ½, and the packets sent through ¾, can arrive at the receiver in an interleaved fashion on interfaces ½ and ¾ respectively. In figure 2, TSNs 1, 1, 2 and 2 arrive at times 21, 21.1, 21.2, 22, respectively. This reordering is introduced as a result of changeover; the specific times depend on the delays of paths 1 and 2. The receiver starts reporting gaps as soon as it notices reordering. If the receiver communicates four missing reports to the sender before all of the original transmissions (TSNs 1 - ) have been acked, the sender will start retransmitting the unacked TSNs. SCTP s Fast Retransmit algorithm is based on TCP s Fast Retransmit algorithm [6], with the additional use of selective acks and a modification to handle some cases of reordering 4. Accordingly, the SACs resulting from the receipt of TSNs 1-4 will be the only ones generating missing reports. The SACs received by on ¾ at Ø ½ ½ and Ø ½ ¾ will be considered as the first and second missing reports for TSNs 2 -. Since these SACs do not carry new cumulative acks, they do not cause growth of ¾. Between Ø ¾ and Ø ½, the cumulative ack in the SACs received by on ½ increases as a consequence of the original transmissions to destination ½ reaching. Inthis period, receives 4 SACs which incrementally carry cumulative acks of 2-41. The SACs received by on ¾ at Ø ½ ¾ and Ø ½ carry a cumulative ack of 41, and are the third and the fourth missing reports for TSNs 42 -. Upon the fourth missing report, retransmits only TSN 42, since ¾ permits only one more packet to be outstanding. At Ø ¾, the SAC for the original transmission of TSN 42 reaches on ½. Since the sender cannot distinguish between SACs generated 4 [11] goes hand-in-hand with RFC296. The Implementor s guide maintains all changes and additions to be included in RFC296 s next version. All implementations are expected to carry the specifications and modifications in this guide. 4

by transmissions from SACs generated by retransmissions, this SAC incorrectly acks the retransmission of TSN 42, thereby increasing ¾ by one, reducing the amount of data outstanding on destination ¾,and triggering the retransmission of TSNs 43 and 44. At Ø, the SAC for the original transmission of TSN 43 arrives at on ½. As before, this SAC acks the retransmission (of TSN 43), further incorrectly increasing ¾, and triggering retransmission of TSNs 4 and 46. This behaviour of SACs for original transmissions incorrectly acking retransmissions continues until the SACs of all the original transmissions to ½ (up to TSN ) are received by A. Thus, the SACs from the original transmissions cause ¾ to grow (possibly drastically) from wrong interpretation of the feedback. 2.2 Discussion The TCP-unfriendly cwnd growth and incorrect retransmissions during changeover occur due to current inadequacies of SCTP - (i) the sender is unable to distinguish SACs for transmissions from SACs for retransmissions, and (ii) the sender s congestion control mechanism is unaware of the occurrence of a changeover, and hence is unable to identify reordering introduced due to changeover. Addressing either of these inadequacies will solve the more important problem of TCP-unfriendly cwnd growth, as described in Section. While the values chosen in our example illustrate but a single case of the congestion window overgrowth problem, our preliminary investigation shows that the problem occurs for a range of propagation delay, bandwidth, MTU settings. For example, with both paths having RTTs of ms (bandwidth = bps, propagation delay = 4ms) and MTU = 1 bytes, the incorrect retransmission starts much earlier (at TSN 3), and the cwnd overgrowth is even more dramatic. The congestion window overgrowth problem exists even if the buffering occurs not at the sender s link layer, but in a router along the path (in figure 1, path 1). In essence, the transport layers at the endpoints can be thought of as the sending and receiving entities, and the buffering could potentially be distributed anywhere along the end-to-end path. 3 Congestion Window Overgrowth: A General Model In this section, we generalize the scenario described in Section 2. This model abstractly quantifies the cwnd overgrowth and the number of unnecessary retransmissions caused by the changeover under various network conditions. In Section 3.1, we present a generalized timeline of SCTP behaviour during changeover. We then derive analytic results from this general model in Section 3.2, followed by a discussion of these results in section 3.3. 3.1 Model Description We now present a generalized timeline of SCTP behaviour during changeover in figure 3. This timeline is an excerpt from an association and is based on the example scenario described in Section 2. Some parameters used in the model are described below. The rest of the notation is described in Section 3.2. ½ ¾ : Congestion windows at A for ½ and ¾, respectively

Ø : Changeover time - Moment after a changeover when sender starts sending packets to new primary destination ¾ Ø ¾ : Time when fast retransmission (incorrectly) starts. ½ : Number of Transmission Sequence Numbers (TSNs) sent in initial group transmitted to destination ½ in the time interval ¼ Ø. à ½: First TSN to be fast retransmitted (incorrectly) by. Receiver B e 1F d 1F t 1 B 1 A 1 Sender A A 2 B 2 (G 1 TSNs being transmitted) (C 2 =2) t c 1 2 +1 +2 S ([G 1 +1] -[G 1 +X])* S+1 ([G 1 +1] -[G 1 +4]) S+2 ([G 1 +1] [G 1 +4]) t 2 e 1R e 2R d 2F (C 2 = 2) t 2 (C 2 = 3) G 1 +1 G 1 +2 SY ([G 1 +1] - [G 1 +1])* G 1 +3 G 1 +4 G 1 + +1 (rtx) +2, +3 (rtx) S ([G 1 +1] - [G 1 +4]) t 1 Receiver B e 2F d 2F G 1-1 (C 2 = 4) +4, + (rtx) S G 1-1 ([G 1 +1] -[G 1 +]) G 1 S G 1 + (C 2 = G 1 -+1) G 1 (rtx) * X = 3 if TSN is received after TSN (G 1 + 3), i.e., { e 1F + (-1)d 1F } > { t c + 2e 2F + e 2R } 2 otherwise Y = ceiling {(t c + e 2F -e 1F ) / d 1F } (C 2 = G 1 -+2) New transmissions, limited by Max.Burst Figure 3: General timeline for the problem At Ø ¼, host starts to transmit ½ TSNs (TSN 1 through ½ ) to destination address ½. By time Ø the transport layer at host has ½ TSNs outstanding. This group of TSNs (1 through ½ ) is referred to as the initial group. Note that these TSNs are outstanding at the transport entity at host and could be buffered anywhere along the end-to-end path, even at interface ½. By time Ø, has changed its primary destination to ¾. At the instant Ø Ø, starts transmitting new data to ¾ through interface ¾. Ø can also be thought of as the time elapsed from the transmission of the first outstanding TSN on destination ½ to the time of transmission of the first TSN on destination ¾ after changeover. Note that the SCTP receiver normally responds with delayed SACs, but immediately returns a SAC whenever reordering is observed. The critical instant in the scenario, denoted Ø ¾, occurs when receives the fourth missing report [11, 13]. At this instant, TSNs à ½through ½ get marked for retransmission. Due to the receipt of a SAC acking TSN ½,(atØ ¾ ) ¾ allows one ÅÌÍ sized chunk to be transmitted, hence TSN à ½gets retransmitted to destination ¾. According to RFC296,... when its peer is multi-homed, an endpoint SHOULD try to retransmit a chunk to an active destination transport address that is different from the last destination address to which the DATA chunk was sent. Since the original transmission of TSN à ½went to ½, the retransmission of TSN à ½is sent to ¾.Thevalueofà is estimated and its relevance to the cwnd overgrowth is explained in Section 3.2. 6

The retransmission of TSN à ½at Ø Ø ¾ is a consequence of the fourth missing report (SAC received on interface ¾ at Ø Ø ¾ ) carrying cumulative ack Ã. Since TSNs ½ ½through ½ reached host by time Ø ½, the SAC also carries a gap ack for TSNs ½ ½through ½, resulting in the marking of TSNs à ½through ½ for retransmission. The cumulative ack à is an indication that the receiver has received à TSNs in-sequence by time Ø ½. This in-sequence data is clearly the data received by on the interface ½ by time Ø ½. Following the retransmission of TSN à ½, the SAC for the original transmission of TSN à ½arrives at. Since host now considers TSN à ½to be outstanding on destination ¾, the receipt of this SAC incorrectly increases ¾, and allows TSNs à ¾and à to be retransmitted. The receipt of a SAC for TSN à ½immediately after TSN à ½is retransmitted is not a coincidence. At time Ø ½ when host sends a SAC with a cumulative ack of à acking the receipt of TSN ½, TSN à ½is concurrently being received on interface ½. Immediately after the receipt of TSN à ½on interface ½, host sends a SAC with cumulative ack à ½. Consequently, the sequence of events at host is the receipt of a SAC with cumulative ack à (which is also the fourth missing report for TSNs à ½through ½ )followedbya SAC with cumulative ack à ½. As shown, this behaviour continues until the SACs for all the original transmissions to ½ (uptotsn ½ ) have been received at host. 3.2 Analytic Results We will now estimate the cwnd overgrowth of ¾, and the number of unnecessary retransmissions. The parameters used in the following analysis are: Ä ½ Ä ¾ : Maximum Transmission Unit (MTU) sizes on forward paths ½ to ½ and ¾ to ¾, respectively ½ ¾ : End-to-End available bandwidths [9] on forward paths ½ to ½ and ¾ to ¾, respectively : Delay experienced by a packet along a path, given by: ÓÖ ÓÔ ÔÖÓÔµ ÔÖÓµ ÕÙ Ù µ ØÖ Ò µ (1) where ÔÖÓÔ = propagation delay, ÔÖÓ = processing delay, ÕÙ Ù = queueing delay, and ØÖ Ò = transmission delay. : Delay experienced by a data packet, along the forward path. Assumption: Each data packet is ÅÌÍ sized, therefore, is estimated by: ÓÖ ÓÔ Ò ÓÖÛ Ö Ô Ø ÔÖÓÔµ ÔÖÓµ ÕÙ Ù µ Ä (2) where, Ä is the MTU of the path, and is available bandwidth at hop. ½ ¾ : Delays experienced by a data packet on forward paths ½ to ½ and ¾ to ¾, respectively, Ê : Delay experienced by a pure SAC packet, along the reverse path. Assumption: that transmission delays for pure SAC packets are negligible, therefore, Ê is estimated by: Ê ÓÖ ÓÔ Ò Ö Ú Ö Ô Ø ÔÖÓÔµ ÔÖÓµ ÕÙ Ù µ (3) 7

½Ê ¾Ê : Delays experienced by a pure SAC packet on reverse paths ½ to ½ and ¾ to ¾, respectively. : Minimum delay observed between consecutive packets transmitted along a same path by the receiver of the packets. This delay is dictated by end-to-end available bandwidth of the path, which is determined by the hop with the minimum available bandwidth on the path (in other words, the path bottleneck). is given by: Ä (4) Ñ Ò ÓÖ ÓÔ where, Ä is the MTU of the path, and is available bandwidth at hop. ½ ¾ : Minimum delays between consecutive data packets from ½ to ½ observed at ½, and from ¾ to ¾ observed at ¾, respectively. ½Ê ¾Ê : Minimum delays between consecutive SAC packets from ½ to ½ observed at ½, and from ¾ to ¾ observed at ¾, respectively. Assumption: The reverse path does not change the delay between SACs. In other words, the forward path s bottleneck dictates the rate at which SACs are transmitted and then received, not the reverse path s bottleneck. Therefore, the delay observed between SACs is the same as the delay observed between the data packets. In other words, ½Ê ½ Ò ¾Ê ¾ () Packet transmission on path 2 starts at time Ø ; it takes some time for the fourth legitimate missing report to reach the sender. This time instant is shown in figure 3 as Ø ¾, which is given by: Ø ¾ Ø ¾ ¾ ¾ ¾Ê ¾ (6) Ø ½ is the instant when this fourth legitimate missing report leaves the receiver through ¾, and is given by: Ø ½ Ø ¾ ¾Ê Ø ¾ ¾ ¾Ê ¾ (7) As shown in figure 3, we assume that the SAC received at Ø ¾ on ¾ contains the highest cumulative ack received by so far. Let à be defined as the TSN that was most recently cumulatively acked at prior to time Ø ¾. In other words, à is the last TSN that reached the receiver on ½ at Ø ½,where, Ã Ø ½ ½ ½ Ø ¾ ¾ ¾Ê ¾ ½ ½ (8) The result is that TSNs à ½µthrough ½ will be retransmitted on Path 2 and the total number of unnecessary retransmissions = Ñ Ü ¼ ½ à ½µ ½ Ñ Ü ¼ ½ Ã. Thecwnd overgrowth for ¾ will be Ñ Ü ¼ ½ Ã. This assumption is made for simplicity of analysis. If this assumption does not hold, the cwnd overgrowth will be lesser by ¾Ê ½Ê. ½ 8

3.3 Discussion For an AIMD (Additive Increase Multiplicative Decrease) congestion control algorithm, a round refers to the period from the transmission of cwnd amount of data to the receipt of acks for that data. After receipt of these acks, the next round starts as the sender transmits cwnd+1 amount of data. In our general model, the period between Ø ¼ and Ø Ø represents the beginning of such a round when the sender transmits ½ amount of data. This transmission of data may or may not be in a burst, but the receiver receives the data with packet interarrival times of at least ½ on interface ½ since ½ is the delay due to the available bandwidth of the bottleneck link on path 1. Thus, in our model, we assume that TSNs are received on interfaces ½ and ¾ uniformly with interarrival times ½ and ¾, respectively. If à ½, then all of the original transmissions to ½ are received by host by time Ø ½. Hence, the SAC received by host at time Ø ¾ would carry a cumulative ack of ½ and no gap acks. In this case, no unnecessary retransmission and no TCP-unfriendly cwnd growth occurs. On the other hand, if à ½,thenà is the last TSN cumulatively acked prior to time Ø ¾. Consequently, à ½is the first TSN to be retransmitted incorrectly, and ¾ overgrows by ½ Ã. A higher value of à results in a higher cumulative ack at at Ø ¾, hence fewer retransmissions and consequently less error in ¾. Similarly, as à decreases, more unnecessary retransmissions occur, and the error in ¾ also increases. From equation (8), à decreases with an increase in ½, or a decrease in ¾. Further, à decreases with an increase in ½, or a decrease in ¾. These relationships between à and the characteristics of the two paths imply that when a changeover is made to a higher quality path, there is a likelihood of TCP-unfriendly cwnd growth and unnecessary retransmissions, and the bigger the improvement in quality that the new path provides, the larger the TCP-unfriendly growth and number of incorrect retransmissions will be. 4 Analytic Results: Validation and Visualization It is clear from the analytic results derived in Section 3.2 that cwnd overgrowth occurs if the sender has more than à packets outstanding at the time of changeover. The value of Ã, given by equation (8), is thus pivotal in quantifying cwnd overgrowth. We first validate this analytical value of à using ns-2 simulations in Section 4.1. We then estimate the value of à using the model under various network and changeover conditions in Section 4.2. 4.1 Analytic Results: Validation We now validate the analytical value of à derived in Section 3.2 through simulations using the SCTP module for ns-2 which was developed in the Protocol Engineering Lab at the University of Delaware [1, ]. The topology is the same as in figure 1. The simulations do not have any cross traffic, hence the endto-end available bandwidths on each of paths 1 and 2 is equal to the minimum of link capacities on the corresponding path. Each of paths 1 and 2 has three links - two edge links and one core link. The edge links have a capacity of Mbps and propagation delay of 1ms. The available bandwidths of the paths, i.e., the capacities of the core links are chosen randomly between bps and 1Mbps. The propagation delays of the core links are chosen randomly between 2ms and ms. The sender s sending window is fixed at B 9

by setting the receiver s advertised window to B. We fix the sending window to make it easier to extract parameters from the traces. Changeover occurs at time seconds. Of simulation runs, 11 runs showed the occurrence of incorrect fast retransmissions due to changeover. Only the runs which showed these retransmissions could be used for validation because to infer the value of à from a simulation run (denoted Ã Ñ ), at least one such retransmission had to occur. The first incorrect retransmission would correspond to TSN Ã Ñ ½. We extracted the values of the parameters ½, ½Ê, ¾, ¾Ê, ½, ¾ and Ø from the traces for each of the 11 runs. Feeding these parameters into equation (8) gave us the analytic value of à (denoted Ã Ò Ð ). Simulation results show that of the 11 comparisons of Ã Ñ and Ã Ò Ð, 431 results agreed exactly. In the remaining 8 results that did not agree, Ã Ò Ð was equal to Ã Ñ ½. This underestimation of à by the analytic model could be attributed to the assumption made in the derivation of analytic expression for à in Section 3.2, or to approximations made in extracting the parameters from the traces. The simulations thus agree with our analytic results. 4.2 Analytic Results: Visualization In graphing the analytically derived value of Ã, we reduce the number of independent variables by making the following assumptions so as to visualize the graphs better: Forward paths 1 and 2 have the same ÅÌÍ. Hence, Ä ½ Ä ¾ Ä The forward and reverse paths have the same propagation, processing and queueing delays. Using equations (2) and (3), Ê Ä (9) ÓÖ ÓÔ Ò ÓÖÛ Ö Ô Ø The transmission delays at the other links along a path are assumed negligible in comparison to the transmission delay at the bottleneck link. Using equation (4), Ä ÓÖ ÓÔ Combining the above two assumptions, we get Ä Ñ Ò ÓÖ ÓÔ () Ê Ê Ä (11) For the forward paths 1 and 2, the equation 11 can be rewritten as ½ ½Ê Ä ½ Ò ¾ ¾Ê Ä ¾ (12) Figures 4 and (left) graph à asafunctionof ¾, for fixed values of ½, ½Ê and ¾Ê. In these 2- D graphs, the changeover time, Ø, is fixed at ms. Each 3-D graph in figures 4 and (right) picks one

representative curve from the corresponding 2-D graph (left), and shows the influence of Ø on Ã. These 3-D graphs thus show à as a function of ¾ and Ø, for fixed values of ½, ½Ê and ¾Ê. The graphs are organized as follows: The results in figure 4 use the range kbps - kbps for the available bottleneck bandwidths ½ and ¾. Ø is set to ms in the 2-D graphs. The curve corresponding to ½ = kbps is used as a representative curve to show the influence of Ø on Ã. Ø varies over ms - ms in the 3-D graphs. Three combinations of ( ½Ê, ¾Ê ) are used: (ms, ms), (ms, 2ms), and (2ms, ms). The results in figure use the range kbps - 1Mbps for the available bottleneck bandwidths ½ and ¾. Ø is set to ms in the 2-D graphs. The curve corresponding to ½ = kbps is used as a representative curve to show the influence of Ø on Ã. Ø varies over ms - ms in the 3-D graphs. Three combinations of ( ½Ê, ¾Ê ) are used: (ms, ms), (ms, 2ms), and (2ms, ms). We split the range (kbps - 1Mbps) into two subranges (kbps - kbps and kbps - 1Mbps), because the variation observed in à with both ½ and ¾ ranging from kbps to 1Mbps is large. We are thus able to visualize the behaviour of à over a large range of available bandwidths, with the assumption that the available bandwidths of the two paths are comparable. In figure 4, à varies between and, and mostly has a value below. Remember that the smaller à is, the more unnecessary retransmissions will occur, and the more cwnd grows when it should not. Changes in ½Ê ¾Ê and Ø seem to have little influence on Ã, as compared to the variation due to ½ ¾.That is because in this set, since the available bandwidths are low, the total delay is dominated by transmission delay. In figure, à varies between and 4. The median value of à in this set has increased from the first set. This increase can be attributed to the greater range of the bottleneck bandwidths. Another important factor can be understood by considering equation (8). With an increase in the bottleneck bandwidth, the value of ½ decreases, consequently increasing Ã. We also observe the increased influence of ½Ê ¾Ê and Ø in this set of results, since the transmission delay is lesser dominant in this set. In both sets, we note that à decreases with a decrease in ½ or an increase in ¾, as is expected. Proposed Solution: Changeover Aware Congestion Control As mentioned earlier, the TCP-unfriendly cwnd growth and incorrect retransmissions during changeover occur due to current inadequacies of SCTP - (i) the sender is unable to distinguish SACs for transmissions from SACs for retransmissions, and (ii) the sender s congestion control mechanism is unaware of the occurrence of a changeover, and hence is unable to identify reordering introduced due to changeover. Addressing either of these inadequacies will solve the more important problem of TCP-unfriendly cwnd growth. The Rhein Algorithm [8] solves the problem by addressing (i). In this section, we propose solutions which solve the problem by addressing (ii). In other words, the following solutions introduce changeover awareness in the sender s congestion control mechanism. The cwnd overgrowth occurs due to the sender misinterpreting SAC feedback, and incorrectly sending fast 11

2 B2F (in kbps) vs (e1r = ms, e2r = ms, tc = ms) B1F=kbps B1F=kbps B1F=kbps B1F=7kbps B1F=kbps 1 as a function of B2F and tc (e1r=ms, e2r=ms, B1F=kbps) 1 4 6 7 8 9 B2F B2F (in kbps) vs (e1r = ms, e2r = 2ms, tc = ms) B1F=kbps B1F=kbps B1F=kbps B1F=7kbps 2 B1F=kbps 4 B2F (kbps) 6 7 8 9 1 6 7 8 4 tc (ms) as a function of B2F and tc (e1r = ms, e2r = 2ms, B1F = kbps) 9 1 4 6 7 8 9 B2F B2F (in kbps) vs (e1r = 2 ms, e2r = ms, tc = ms) 3 B1F=kbps B1F=kbps B1F=kbps B1F=7kbps B1F=kbps 1 4 B2F (kbps) 6 7 8 9 as a function of B2F and tc (e1r = 2ms, e2r = ms, B1F = kbps) 4 6 7 tc (ms) 8 9 2 1 4 6 7 8 9 B2F 4 B2F (kbps) 6 7 8 9 4 6 7 tc (ms) 8 9 Figure 4: Graphing analytically: kbps ½ ¾ kbps 12

4 3 B2F (in kbps) vs (e1r = ms, e2r = ms, tc = ms) B1F=kbps B1F=kbps B1F=kbps B1F=7kbps B1F=1Mbps 2 2 1 1 9 8 7 4 6 6 7 4 8 9 4 6 7 8 9 B2F B2F (in kbps) vs (e1r = ms, e2r = 2ms, tc = ms) 3 B1F=kbps B1F=kbps B1F=kbps B1F=7kbps B1F=1Mbps 2 as a function of B2F and tc (e1r = ms, e2r = 2ms, B1F = kbps) 2 1 1 4 6 7 8 9 B2F B2F (in kbps) vs (e1r = 2ms, e2r = ms, tc = ms) 4 B1F=kbps B1F=kbps 4 B1F=kbps B1F=7kbps B1F=1Mbps 3 2 4 6 B2F (kbps) 7 89 6 7 4 tc (ms) as a function of B2F and tc (e1r = 2ms, e2r = ms, B1F = kbps) 8 9 2 1 1 4 6 7 8 9 B2F 4 6 B2F (kbps) 7 89 4 6 7 tc (ms) 8 9 Figure : Graphing analytically: kbps ½ ¾ 1Mbps 13

retransmissions. Changeover aware congestion control (CACC) algorithms curb the TCP-unfriendly cwnd growth by eliminating these improper fast retransmissions. The key in a CACC algorithm is maintaining state at the sender for each destination when changeover happens. On receipt of a SAC, the sender selectively increases the missing report count for TSNs in the retransmission list, thus preventing incorrect fast retransmissions. Section.1 describes the Conservative CACC (C-CACC) algorithm which has the disadvantage that in the face of loss, a significant number of TSNs could potentially wait for a retransmission timeout when they could have been fast retransmitted. In Section.2, we describe the Split Fast Retransmit CACC (SFR-CACC) algorithm which alleviates this disadvantage. We verify the effectiveness of the SFR-CACC algorithm through simulation in Section.3. In Section 6, we discuss the advantages of the CACC algorithms over the Rhein algorithm in solving the cwnd overgrowth problem..1 Conservative CACC As mentioned previously, C-CACC maintains state at the sender when changeover happens, on a perdestination basis. This state is used to conservatively increment missing report counts for TSNs. This conservative approach prevents incorrect triggering of fast retransmissions, thus eliminating the cwnd overgrowth problem. On changeover, the sender maintains the following state for the new primary destination: 1) Set CHANGEOVER ACTIVE to 1, indicating that a changeover has occured. 2) Store the next TSN to be sent in next tsn at change. On receipt of a SAC, 1) If the cumulative ack in the SAC is the next tsn at change, the CHANGEOVER ACTIVE flag is cleared. 2) The following algorithm dictates when the missing report count for a TSN Ø should be incremented in accordance with [13, 11], and when the count should not be incremented: if (CHANGEOVER ACTIVE == 1) and (the SAC reports at least one TSN next tsn at change) then if (Ø next tsn at change) then Increment missing report count for Ø according to [13, 11]; else Do not increment missing report count for Ø; else Increment missing report count for Ø according to [13, 11]; Figure 6: Conservative CACC Algorithm 14

As was discussed in Section 3.1, the receiver could observe reordering of TSNs due to changeover. According to C-CACC, the sender uses state maintained for the current primary destination to identify SACs that are sent by the receiver after the receiver observes this reordering. The state is constituted by two variables per-destination: 1. CHANGEOVER ACTIVE - a flag which indicates the occurence of a changeover. 2. next tsn at change - the next TSN to be used by the sender, at the moment of changeover. The algorithm is described in figure 6. On changeover, the sender sets the state as described 6. The sender is considered to be in active changeover state until the CHANGEOVER ACTIVE flag is cleared. The flag is cleared when a SAC which cumulatively acks TSNs up to and including next tsn at change is received. At that time, all TSNs which were sent to the receiver before changeover occurred at the sender have been received, andreordering due to changeover no longer happens. This period during which the sender is in active changeover state is referred to as the active changeover period, and the outstanding TSNs which have not yet been acked at the sender at the moment of changeover constitute the changeover range. During the changeover period, receipt of a SAC that reports a TSN greater than or equal to next tsn at change indicates to the sender that reordering has been observed at the receiver. Since this reordering is likely due to changeover, the sender does not increment missing report counts for TSNs in the changeover range, thus preventing the incorrect fast retransmissions. C-CACC is conservative because when reordering due to changeover is observed at the receiver and consequently reported to the sender, the sender conservatively chooses to not increment missing reports for any TSN in the changeover range. In the face of loss, the sender will not perform fast retransmission on any TSN in the changeover range. The TSNs in the changeover range would thus have to wait for retransmission timeouts to be retransmitted. Furthermore, C-CACC does not take into account the possibility of multiple changeovers at the sender..2 Split Fast Retransmit CACC (SFR-CACC) To alleviate the limitations of C-CACC, note that the reordering observed during changeover happens because TSNs which are supposed to reach the receiver in-sequence end up reaching the receiver in concurrent groups, in-sequence within each group. With this observation, we reason that the fast retransmit algorithm can be applied independently within each group. That is, on the receipt of a SAC, if the sender can estimate the TSN(s) that causes this SAC to be sent from the receiver, the sender can use the SAC to increment missing report counts within the causative TSN(s) s group. In SFR-CACC, four variables for each destination are introduced: 1. CHANGEOVER ACTIVE - a flag which indicates the occurrence of a changeover. 2. CYCLING CHANGEOVER - a flag which indicates whether the change of primary is the first changeover to this destination address during an active changeover. This flag helps determine changeovers cycling through destination address space. 6 Unless explicitly stated, the variables used in the CACC algorithms refer to the state for the current primary destination, from the sender s viewpoint. 1

On changeover, for the new primary destination: 1) If CHANGEOVER ACTIVE is 1, then there was a changeover to this destination address earlier. The sender sets CYCLING CHANGEOVER to 1, indicating that this changeover is a cycling switch to the same destination address during an active changeover. 2) The sender sets CHANGEOVER ACTIVE to 1, indicating that a changeover has occured. 3) The sender stores the next TSN to be sent in next tsn at change. Figure 7: Split Fast Retransmit CACC Algorithm (Part 1) 3. next tsn at change - the next TSN to be used by the sender, at the moment of changeover. 4. cacc saw newack - a temporary flag, used during SAC processing to estimate the causative TSN(s) s group. On receipt of a SAC, 1) If the cumulative ack in the SAC is next tsn at change, the CHANGEOVER ACTIVE and CYCLING CHANGEOVER flags are cleared for all destinations. 2) If (CHANGEOVER ACTIVE == 1) and (the SAC contains Gap Acks) then for each destination do initialize d.cacc saw newack = ; done; for each TSN Ø being acked, that has not been acked in any SAC so far do let be the destination to which t was sent; set d.cacc saw newack = 1; done Figure 8: Split Fast Retransmit CACC Algorithm (Part 2) SFR-CACC is broken up into three logical parts. SFR-CACC(1) is very similar to the initial part of C-CACC algorithm, except for the CYCLING CHANGEOVER flag which we will discuss shortly. SFR-CACC(2) and SFR-CACC(3) specify sender actions on receipt of a SAC. On receipt of a SAC that cumulatively acks up to and including next tsn at change, the sender leaves the active changeover state. In SFR-CACC(2) the sender estimates the causative TSN(s) s destination. The sender estimates the causative TSN(s) as TSN(s) getting acked for the first time in a SAC. TSNs sent to 16

On receipt of a SAC (contd.), 3) The following algorithm dictates when the missing report count for a TSN Ø should be incremented in accordance with [13, 11], and when the count should not be incremented: if (CHANGEOVER ACTIVE == 1) and (CYCLING CHANGEOVER == ) then let count of newacks be number of destinations for which cacc saw newack is set; if (count of newacks == 1) then /* SAC acks only one dest */ let be the destination to which Ø was sent; if (d.cacc saw newack == 1) then Increment missing report count for Ø according to [13, 11]; else Do not increment missing report count for Ø; else /* Mixed SAC - SAC acks more than one dest */ if (Ø was sent to the current primary) then Increment missing report count for Ø according to [13, 11]; else Do not increment missing report count for Ø; else if (CHANGEOVER ACTIVE == 1) and (CYCLING CHANGEOVER == 1) then /* Cycling observed, hence mark only in latest group */ if (Ø next tsn at change) then Increment missing report count for Ø according to [13, 11]; else Do not increment missing report count for Ø; else /* Sender is not in changeover active state */ Increment missing report count for Ø according to [13, 11]; Figure 9: Split Fast Retransmit CACC Algorithm (Part 3) 17

the same destination as the causative TSN(s) form the causative TSN(s) s group. In SFR-CACC(3), the sender does not increment missing report counts for TSNs outside the causative TSN(s) s group. In other words, the sender applies the SAC selectively to fast retransmit within the causative TSN(s) s group. If more than one group are being acked, then fast retransmit is conservatively applied only to TSNs in the current primary destination s group. SFR-CACC does the in-group marking of TSNs only as long as the sender does not changeover to a previously used destination address which was already used during the current active changeover period. If the sender starts to cycle through destination address space, then the sender switches to a more conservative behaviour of marking only TSNs in the latest outstanding group. The protection from such cycling changeovers is necessary because SFR-CACC assumes that the latest outstanding TSNs were transmitted to the current primary. One could envision a scenario where the sender has TSNs outstanding on two destination addresses, ½ and ¾, having performed changeover in that order. The sender then performs a changeover back to ½, and a SAC acking both TSNs from both groups is received. The sender could now end up incorrectly fast retransmitting TSNs sent to destination ½, causing cwnd overgrowth on destination ¾ - precisely what we are trying to avoid. There may be other scenarios where the original problem of cwnd overgrowth may occur due to cycling changeovers. For the moment, we have not looked into cycling changeover in greater depth, and design SFR-CACC to be conservative when a cycling changeover occurs..3 Simulations Verification of the effectiveness of SFR-CACC was done through ns-2 simulations. Using SFR-CACC under the same conditions as in section 4.1 for which cwnd overgrowth was observed, the simulations showed no unnecessary retransmissions, or cwnd overgrowth due to changeover. 6 Conclusion and Future Work Results from Section 4 suggest that the problem might not be a corner case, since for a large range of network settings, the value of Ã, which governs the minimum packets required to be outstanding at the time of changeover so as to observe cwnd overgrowth, is low. By approaching the problem from different perspectives, the Rhein algorithm [8] and the CACC algorithms all solve the problem of TCP-unfriendly cwnd growth. The Rhein algorithm recognizes that this growth occurs due to the sender s inability to distinguish between SACs for original transmissions from SACs for retransmissions. This algorithm does not solve the problem of unnecessary fast retransmissions on a changeover. This algorithm also adds the overhead of an extra chunk for every SCTP packet. The CACC algorithms maintain state information during a changeover, and use this information to avoid incorrect fast retransmissions. Consequently, these algorithms prevent the TCP-unfriendly cwnd growth. These algorithms have the added advantage that no extra bits are added to any packets, and thus the load on the wire and the network is not increased. One disadvantage of the CACC algorithms is that some of the TSNs on the old primary are ineligible for fast retransmit. Furthermore, complexity is added at the sender to maintain and use the added state variables. 18

The fast retransmit algorithm is active on the changeover range for a longer time in SFR-CACC than with C-CACC. To quantify the number of TSNs which will be ineligible for fast retransmit in the face of loss, let us assume that only one changeover is performed and that SACs are not lost. Under these assumptions, potentially only the last four packets sent to the old primary destination will be forced to be retransmitted with an RTO instead of a fast retransmit. In other words, under these assumptions, if a TSN is lost, and at least four packets are successfully transmitted to the same destination after the loss, then the TSN will be retransmitted via fast retransmit. With C-CACC however, any TSN in the changeover range will require an RTO to recover from loss. C-CACC is also incapable of handling multiple changeovers, whereas SFR- CACC is equipped to do so. We have implemented SFR-CACC in the NetBSD/FreeBSD release for the AME stack [2, 3]. The implementation uses three flags and one TSN marker for each destination, as described in Section.2. Approximately twenty lines of code were needed to facilitate the SFR-CACC algorithm, most of which will be executed only when a changeover is performed in an association. We therefore recommend the addition of the SFR-CACC algorithm to RFC296 to alleviate the problem of artificial cwnd growth and unnecessary fast retransmissions during a changeover. We plan to further investigate simulated results for the cwnd overgrowth with cross traffic. We also plan to look at multiple and cycling changeovers, and how well SFR-CACC performs in the face of multiple changeovers. It may also be interesting to look at how the receiver could help the sender make more informed decisions by participating more actively in the congestion control mechanisms. 7 Disclaimer The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Army Research Laboratory or the U.S. Government. 8 Acknowledgments Thanks to Ivan Arias Rodriguez, Vern Paxson, Mark Allman, Phillip Conrad and Johan Garcia for their comments and inputs. References [1] The Network Simulator - ns-2. http://www.isi.edu/nsnam/ns/. [2] The SCTP Homepage. http://www.sctp.org. [3] Webpage of the AME project. http://www.kame.net. [4] E. Blanton and M. Allman. On Making TCP More Robust to Packet Reordering. ACM Computer Communication Review, Vol. 32(1), January 2. 19

[] R. Braden. Requirements for internet hosts communication layers. RFC1122, Internet Engineering Task Force (IETF), October 1989. [6] M. Allman et al. TCP Congestion Control. RFC281, Internet Engineering Task Force (IETF), April 1999. [7] M. Gerla, S. S. Lee, and G. Pau. TCP Westwood Simulation Studies in Multiple-Path Cases. Proc. International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS) 2, San Diego, CA, July 2. [8] Janardhan R. Iyengar, Armando L. Caro Jr., Paul D. Amer, Gerard J. Heinz, and Randall Stewart. SCTP Congestion Window Overgrowth During Changeover. Proc. SCI2, Orlando, July 2. [9] M. Jain and C. Dovrolis. Pathload: A Measurement Tool for End-to-End Available Bandwidth. Proc. 3rd Passive and Active Measurements Workshop, Fort Collins, March 2. [] Protocol Engineering Lab, University of Delaware. SCTP Module for ns-2. http://pel.cis.udel.edu. [11] R. Stewart, L. Ong, I. Arias-Rodriguez,. Poon, P. Conrad, A. Caro, and M. Tuexen. SCTP Implementers Guide. Internet Draft: draft-ietf-tsvwg-sctpimpguide-6.txt, Internet Engineering Task Force (IETF), May 2. (work in progress). [12] R. Stewart and Q. Xie. Stream Control Transmission Protocol (SCTP): A Reference Guide. Addison Wesley, New York, NY, 1. [13] R. Stewart, Q. Xie,. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M. alla, L. Zhang, and V. Paxson. Stream Control Transmission Protocol. Proposed standard, RFC296, Internet Engineering Task Force (IETF), October. [14] M. Zhang, B. arp, S. Floys, and L. Peterson. RR-TCP: A Reordering-Robust TCP with DSAC. Technical Report TR-2-6, International Computer Science Institute (ICSI), July 2.