TCP modelling and predictive congestion control Rafael C. Melo ∗ Julio E. Normey-Rico ∗ Jean-Marie Farines ∗ ∗
Departamento de Automa¸c˜ ao e Sistemas (DAS) Universidade Federal de Santa Catarina (UFSC) Florianpolis, SC, Brasil e-mails:{rafaelcm,julio,farines}@das.ufsc.br
Abstract: This paper presents a comparative analysis of some models recently proposed in literature to represent the TCP protocol and its congestion control algorithm pointing out advantages and drawbacks. The comparative analysis also considers the results obtained with the NS-2 network’simulator to validate the different models. From this analysis a model is selected for control purposes and a generalized predictive controller is proposed to perform the TCP congestion control mechanism. The proposed controller can cope with the dead time of the process and handle the process constraints. Some simulations using NS-2 are used to show the good properties of the proposed model and controller in several cases such as variations in c IFAC 2009 the time delay and communication bandwidth. Copyright ° 1. INTRODUCTION The Transmission Control Protocol (TCP) is the most widely used Internet protocol, owing to its reliability skills. Expansion and growth of traffic are the causes of Internet congestion which must be controlled to guarantee the stability of Internet (Kurose and Ross (2001)). The TCP congestion control is based on a additiveincrease/multiplicative-decrease (AIMD) mechanism in order to regulate the size of the congestion window in source. The window size is increased while the network congestion is not reached; as soon as congestion is detected, the mechanism reduces the window, decreasing so the sending rate. Timeouts, duplicated acknowledges and round trip times (RTT) are also taken in account to detect packed losses and to avoid the network flooding (Kurose and Ross (2001)). The TCP connection considers usually a single bottleneck link with a capacity which can depend on time; a buffer is associated to this link and its usual model is based on queue with an integrator representation in order to predict the changes in the window (Baiocchi and Vacirca (2007); Tang et al. (2007)). In accordance with the classic TCP congestion control defined initially in (Jacobson (1988)), the sending rate is “clocked” by the received acknowledgments and consequently influenced by the variations on links (forward and reverse) of the TCP connection. Because this “selfclocking” mechanism, the queue size due to changes of the window are faster than the integrator can model (Tang et al. (2007)). The congestion control and the model which represents it, must take in account these link variations with a delay. In the model representing the relation between the window size and the buffer size, the sending rate is usually assumed as proportional to the window size divided by the round
trip delay RTT and the queue is represented by an integrator of the exceeding rate at the link (Hollot et al. (2001)). But this model doesn’t take in account the “self-clocking” phenomena where sending rate is controlled by the rate of received acknowledgements. An alternative model, to deal with “self-clocking” is based on an algebraic relation between window and buffer size, reflecting proportionally any window change on buffer queue, with a transmission delay; in this static model, the variations are more abrupt than in the former model (Wang et al. (2006)). A joint link model, combining both integrator and static model (Tang et al. (2007)) captures in a more accurate way, the queue dynamics when congestion windows change. This general model deals with N window-based TCP sources, a single bottleneck link and cross-traffic through it, however it does not consider the load in the bottleneck link in an appropriate manner in our point of view. In this paper we are interested in obtaining a simple model for control purposes that takes into account both, the load and congestion window effect. We consider first the ideas proposed in (Tang et al. (2007)) and we derive a linearized model composed of two first order plus dead time transfer functions. Several congestion control strategies based on control theory have been recently presented in literature (Mascolo (2003); Gerla (1999); Tang et al. (2007); Hollot et al. (2002)). In Mascolo (2003) a control strategy is presented based in the Smith Predictor. Gerla (1999) presents a control strategy also based in the the Smith predictor however including a queue size feedback based on a IPv6 protocol. In Tang et al. (2007) a different control strategy is presented focused on the stability analysis. In Hollot et al. (2002) the control strategy is based on active queue management (AQM ) principle where the control is not performed in the source but in the router. Nevertheless none of the control strategies mentioned above consider the constraints for obtaining the control law.
In this paper, we propose to use a model based predictive controller (MPC) to control the queue length because: (i) it can cope with dead-time systems, (ii) the input and output constraints can be included in the formulation of the control law through on-line optimization and (iii) the results obtained for the single-input-single-output (SISO) process analyzed here can be extended to the case of a multi-sender multi-receiver network. To illustrate the advantages of the proposed controller we use the NS-2 simulator. This paper is organized as follows. Section 2 describes the congestion control mechanism and section 3 presents the proposed model and some comparisons with others models. The design of the model based predictive controller and the obtained simulation results are analyzed in section 4. The paper ends with the conclusions and future work. 2. CONGESTION CONTROL The TCP connection can be seen as a virtual link between the sender and the receiver, including its respective buffers. The following variables, used in the TCP flow control mechanism are available in the sender size: RW nd which indicates the free space in the receptor buffer, LBSent and LBAcked respectively the last byte sent and acknowledged (Kurose and Ross (2001)). The congestion control mechanism uses two additional variables: the congestion window (CW nd) and a threshold value. The number of data in transit LBSent − LBAcked shall be smaller than the minimum between the congestion window CW nd and the reception window RW nd. The effective window is calculated as following: W = M IN (CW nd, RW nd) − (LBSent − LBAcked)(1) At the present work we assume that the reception buffer is large enough in order to consider the limitation only due to the congestion window (CW nd). During the initial phase (“slow start” phase) of the classical TCP congestion control mechanism, congestion window increases exponentially up to reaching the threshold. From this value, the window grows linearly (“congestion avoidance” phase). When time-out occurs or duplicate acknowledgments (three in general) are detected, signaling to sender packed losses, this phase stops and the “recovery” phase begins, setting a new threshold, half of the present congestion window size, resetting the window and repeating the phases. This TCP congestion control mechanism is considered as an additive-increase, multiplicative-decrease (AIMD) algorithm, ignoring the “slow start”phase. Different propositions of the “recovery” phase to improve the performance of this algorithm were implemented in the last years (Allman et al. (1999); Blanton et al. (2003); Kurose and Ross (2001)). 3. MODELING In this section some ideas recently presented in literature are analyzed with the purpose of modeling the TCP connection. The focus here are TCP networks with a single bottleneck link topology like presented in figure 1 which was studied in (Mascolo (2003)). It is assumed that
the queue in the bottleneck link is controlled using the CW nd of the TCP source and that other uncontrolled flow (disturbances) can arrive to this link. TCP SOURCE TCP SOURCE (control) n0
TCP SINK
100Mbps
n1
1ms
5Mbps 35ms
n2
100Mbps 1ms
n3
TCP SOURCE
Fig. 1. TCP - Network Topology 3.1 System considerations On TCP connections the packets flow from the sender to the receiver and, depending on the transmission rate, queues can be observed in the bottleneck link. The queue size depends on the available bandwidth (Ab ), the round trip time (RT T ), the packet size and the link capacity. The queue size present in the bottleneck link depends on the difference between the congestion window CW nd and the link storage capacity. CW nd defines the number of packets that are ”on traffic”. Considering the topology in figure 1, it will be observed that, when Ab and the packet size Ps do not vary, incrementing the CW nd of a value of δ packets over the link capacity D = Ab ×RT T (in Mbits), the increment in the queue size will be equal to δ. If the queue is maintained constant using a fixed value of the congestion window for a given and constant available bandwidth the following relationship is valid: CW nd = Ab RT T = p + RT T ∗ p > 0 (2) RT T where RT T ∗ is the minimal value of the RT T (the one obtained when the queue in the bottleneck is empty, 74 ms in our example) and p is the queue time delay. Ps
This is a very simple model that assumes that the load in the link does not change, as the available bandwidth is given by: Ab = B − x where B is the bottleneck link bandwidth and x is the traffic of other flows (which are not being controlled by CW nd) in the bottleneck link. This static model can be validated in NS-2 using the topology in figure 1 for different packet sizes. 3.2 Dynamical Model The static model cannot be used for control purposes. To model the dynamic of the queue, some approaches on window based congestion control assumes that the sending rate is proportional to the window size divided by the round trip delay and that the queue behaves like a simple integrator. However, this integrator model does not take into account the self-clocking characteristic of window based schemes, where the sending rate is regulated by the rate of the received acknowledges. As pointed out in (Tang et al. (2007)) this phenomenon can be easily modeled by a static plus dead time model that considers the variations
in the queue delay being proportional to the variations in the delayed value of the congestion window. Considering these two aspects a complete model that gives the behavior of the queue p(t) is considered here. Consider that p(t) is the delay of the queue at time t which can be related to the size of the queue q(t) assuming uniform movements of the packets in the queue q(t) = Bp(t) and the length of the queue is given in Mbits. If Ps is constant the queue size can be measured in packets using q(t) = (B/Ps )p(t). In this model it is also assumed that the dynamics associated to these movements is negligible. Thus, the dynamical model, that is similar to the one proposed in (Tang et al. (2007)) is: CW nd(t − L) dp(t) dCW nd(t − L) = Ps − + Ps dt p(t) + RT T ∗ dt [B − x(t)] (3) where L is the time spent by the packet to arrive at the bottleneck link. This model can capture the static and dynamic behavior even when heterogeneous RT T s or non-window based connections like U DP are present. This model can be generalized for N homogeneous and controlled TCP flows. B
There are some important points to be considered in this model: (i) it assumes that both L and RT T ∗ are known; (ii) it is only valid for the situation where the CW nd generates a queue q(t) > 0, that is, it is assumed that all the available bandwidth Ab is being used at any time; (iii) the model is open-loop stable. In (Tang et al. (2007)) some open-loop simulations studies using NS-2 were presented to validate this model in the following situations: (a) when x(t) = 0 and (b) when x(t) is generated with UDP traffic. From a control point of view this model has to be considered as a input-output model with CW nd(t) as the manipulated variable, p(t) as the controlled variable and x(t) as the disturbance caused by the flow load. It is important to note that p(t) is not available, as the length queue information arrives to the sender, where the control action is executed, Lb times latter, being Lb the time spent between the instant when the packet arrives to the queue link and the instant when the correspondent acknowledge arrives to the source. Thus, a new equation is necessary to define the measured queue delay pm (t): pm (t) = p(t − Lb )
(4)
Note that L + Lb = RT T and L + Lb − p(t) = RT T ∗ . In this paper we will consider a linear controller to control the queue length, thus, a linearized model near an operating point will be obtained to be used in the predictor model of the proposed MPC. The model considers an operating point given by: CW nd0 , p0 and x0 , respectively, the desired congestion window, queue delay and expected load at the operating point. These values are related by: p0 =
Ps CW nd0 − RT T ∗ B − x0
(5)
In the Laplace domain the linearized model is given by: ∆pm (s) = Gw (s)e−RT T s ∆CW nd(s) + Gx (s)e−Lb s ∆x(s)
where ∆pm (s), ∆CW nd(s), ∆x(s) are the incremental variables in the Laplace domain and: Gw (s) =
Ps τ1 s + 1 τ1 = RT T0 = p0 + RT T ∗ (6) B − x 0 τ2 s + 1
1 RT T0 B RT T0 τ2 = (7) B − x0 τ2 s + 1 B − x0 Note that the disturbance to output dead time is smaller that the control to output dead time. Gx (s) =
Moreover, some other hypotheses must be considered for control purposes: (i) in practice L cannot be measured at every sampling time because of cost increasing, as special packets must be sent in order to determine when the packet arrives to the bottleneck link; (ii) the time spent by the packet in the queue is normally smaller that the RT T , RT T ∗ >> p0 , thus, RT T0 ∼ = RT T ∗ ; (iii) with no load x0 = 0 Gw (s) is a simple gain plus a dead-time model; (iv) τ2 ≥ τ1 = RT T0 , that is, the model is dead-time dominant for low values of x0 and lag-dominant for high values of x0 ; (v) the dead-time of the model is almost constant if we consider that the packets use the considered path. Considering all these model assumptions and some simulation results in NS-2 a simple first order plus dead time model (FOPDT), similar to the one presented on (Melo et al. (2008)), is proposed here to relate the control action to the measured output: ∆pm (s) =
Km e−Lm s ∆CW nd(s) 1 + sTm
(8)
Ps and Tm = τ2 − 0.5τ1 where Lm = RT T0 and Km = B−x 0 are chosen using average values of the available bandwidth Ab = B − x0 . As will be shown in the next section the controller is able to cope with these model uncertainties. Note that if the packet size does not change and both the queue size and the congestion window are given in packets, the model has unitary static gain.
3.3 Comparative Dynamical Models Simulation Results Based on the topology presented in figure 1 we compare the presented model with others recently presented in literature to analyze their benefits and drawbacks. The topology under consideration presents a bottleneck link between the nodes n1 and n2 where the system has the lowest bandwidth. In this case the RT T ∗ is the sum of all transmission times among the links, thus, RT T ∗ = 2X(35 + 1 + 1)ms = 74ms. Assuming that the packet size is 1400 bytes, the link capacity is in this case 34 packets. Then if the CW nd is greater than the link capacity the bottleneck queue starts growing. In order to make the open-loop dynamic comparisons three input-output models with different characteristics were chosen. All of them consider ∆CW nd as model input and ∆pm as model output. The model presented in this paper is called Model 1. The second model (from now on called Model 2) is a simple static link model plus a dead time, as the one presented in (Tang et al. (2007)). This model represents the static behavior described in the previous section and includes a
The third one, Model 3, proposes to represent the TCP congestion control as a generic flow model and in order to represent this mechanism the Smith predictor principle is applied (Mascolo (2003)). The CW nd is the input and the output queue size is denoted xr (t) as shown in figure 2.
Models
40
NS−2 Dynamic model Static model PS based model
30 output
Ps ∆CW nd(t − RT T ) ∆pm (t) = (9) B This model has the advantage of simplicity but considers that the value of pm varies instantaneously after the dead time, ignoring the effect of the load, both in the time constant and static gain. It must be noted that: (i) even in the case of TCP traffic the load x will affect the model dynamics (in (Tang et al. (2007)) the effect of x is only considered for UDP traffic); (ii) the dead time used in the model presented in (Tang et al. (2007)) considers only the forward delay L and p(t) for the simulations; here we include the total delay RT T and the measured queue delay pm (t) as we are interested in a model for control development.
Lm = 74ms, in model 3 the gain k is 400 and in the proposed model Tm = 10ms.
20 10 0 0
5
10
15
20 time(s)
25
30
35
5
10
15
20 time(s)
25
30
35
40
60 50 40 Input
dead time to take into account the delay caused by the transmission time. However this model doesn’t capture the system dynamics in case of heterogeneous RT T s or non-window based connection like U DP , as also presented in (Tang et al. (2007)). The equation below presents the static model (Model 2).
30 20 10 0 0
CWnd 40
Fig. 3. Comparison between models for packet size equal to 1400bytes The results show that all models approximate quite well the behavior obtained in the NS-2 simulations. The detailed plots in figure 4 show that the differences are small and almost insignificant for control purposes. In the next simulation a square-wave signal is once again applied to the models and the NS-2 simulator, however in this case the packet size is increased to 3000 bytes. Models
20
output
15 10 NS−2 Dynamic model Static model PS based model
5 0 16.8
Fig. 2. Block diagram of Model 3
With this predictor model the author obtains a behavior that both represents well the dead time of the process and also its dynamics. However, it is a complex model to be used in the controller algorithm proposed here and, as will be shown, does not presents any advantages over the simple model presented here. In order to compare the different models and to check the modeling accuracy, several simulation tests were used. In the following one a square-wave signal is applied to the three models and also to NS-2 simulator using the parameters of the link previously defined. Figures 3 and 4 show the first comparative results. In this case, the tree models have the same static gain and a dead time of
17
17.1 time(s)
17.2
17.3
16.9
17
17.1 time(s)
17.2
17.3
60 50 40 Input
The difference between the receiver buffer capacity r1 and the receiver queue length xr provides the AdW nd information, which is received by the sender after the feedback delay Tf b . The input for the Smith predictor is the minimum between the CW nd and the AdW nd where in most of cases the receiver capacity is considered to be greater than the link capacity which makes the AdW nd information to be unconsidered in such cases. The variable b represents the bandwidth available and o represents the the lost packets caused by the buffer saturation.
16.9
30 20 10 0 16.8
CWnd
Fig. 4. Detailed comparison between models for packet size equal to 1400bytes The results observed in figure 5 are similar to the ones in figure 3. The only change is the operation point since the packet size has been changed. Despite the results are similar, comparing the different models, Model 1 presents a good compromise between accuracy and simplicity and will be adopted for the proposed controller. 4. CONGESTION PREDICTIVE CONTROL This section presents the application of a predictive controller to the congestion control problem presented in section 2. A Generalized Predictive Controller (GPC, Clarke et al. (1987)) has been chosen for this study although other MPC approach could also be used with similar results. A brief GPC overview is first given.
40 30 output
The final expression is then
NS−2 Dynamic model Static model PS based model
y ˆ = Gu + fr
20
where G is the step response matrix and fr the free response of the system (Camacho and Bordons (2004))
10 0 0
5
10
15
20 time(s)
25
30
35
5
10
15
20 time(s)
25
30
35
Using this expression J can be considered as a function of the future control sequence u where the horizons and weighting factors are the tuning parameters. Then, the implementation of GPC requires the solution of a quadratic programming (QP) problem (Camacho and Bordons (2004)).
40
60 50 40 input
(13)
30 20 10
CWnd
0 0
4.2 Congestion control using GPC
40
Fig. 5. Comparison between models for packet size equal to 3000bytes 4.1 GPC overview The GPC minimizes a multi-stage cost function of the form (Camacho and Bordons (2004)): J=
N2 X
δ(j)[ˆ y (t + j | t) − w(t + j)]2 +
j=N1 Nu X
λ(j)[4u(t + j − 1)]2
(10)
j=1
considering a set of constraints normally given by: U ≤ u(t) ≤ U ∀t ≥ 0, u ≤ 4u(t) ≤ u ∀t ≥ 0, y ≤ y(t) ≤ y ∀t ≥ 0. where yˆ(t + j | t) is an optimum j-step ahead prediction of the system output in data up to time t, N1 and N2 are the minimum and maximum costing horizons, Nu is the control horizon, δ(j) and λ(j) are weighting sequences and w(t+j) is a future set-point or reference sequence. The considered constraints are amplitude limits in the control signal U , U , slew rate limits of the actuator u, u and limits on the process output y, y.
In the particular case of the congestion control the model used for the predictions was obtained by the discretization of the continuous FOPDT model Gm (s) using a zero order hold and a sampling time Ts = 5ms. In the simulations the packet size Ps = 1400bytes is constant and both the queue size and the congestion window will be represented in packets. Thus, A(z −1 ) = 1−0.65z −1 , B(z −1 ) = 0.35z −1 and d = 15 where used in the predictor. Because of the dead-time characteristics of the process, horizons N1 and N2 are computed as N1 = d + 1 and N2 = N + d (NormeyRico and Camacho (2007)). This implies considering the first value of yˆ(t + j | t) at j = d + 1 that is related to the control action up to time t. In this case constant weighting sequences are used: δ = 1 and λ = 0.8, and the horizons chosen as N = 3, Nu = 1. This choice was determined using several simulations trying to reduce control complexity without performance loosing. The control constraints were defined as follows: u = −0.2, u = 0.2 U = 0, U = ∞ that is, the control action Cwnd is always positive and its slew rate is smaller than 0.2. The proposed controller was implemented in C and the network behavior simulated with NS-2. 4.3 Simulation Results
In order to evaluate the controller performance two different simulation situations are proposed. In the first one the The objective of predictive control is to compute the future parameters in the simulated network topology shown in incremental control sequence 4u(t), 4u(t + 1),... in such figure 1 are kept until t = 20s. At this time the bottleneck a way that the future plant output y(t + j) is driven close link dead time is reduced from 35ms to 20ms. This is a to w(t + j). This is accomplished by minimizing J, using strong change in the system configuration used to evaluate an optimal predictor to compute yˆ(t+j | t) (Camacho and the controller robustness. In practical terms corresponds to a change in the packet flow to a shorter path, from Bordons (2004)). sender to receiver. At t = 30s the bottleneck link dead This optimal predictions are computed using a controlled time is increased from 20ms to 50ms which corresponds autoregressive integrated moving average (CARIMA) model to a change in the packet flow to a longer path. The results (Goodwin and Sin (1984)): can be seen on figure 6.
e(t) (11) 4 where 4(z −1 ) = 1−z −1 , d is the dead time, e(t) is a white noise. A and B are polynomials in the back shift operator z −1 related to the transfer function of the process P (z): A(z −1 )y(t) = z −d B(z −1 )u(t − 1) +
P (z) = G(z)z −d =
B(z −1 )z −1 −d z A(z −1 )
(12)
As can be observed, the GPC controller is able to compensate the dead time variation bringing the output back on track in both variations, dead time decreasing and increasing. It’s also seen that the control variation is limited to the maximum variation determined a priori (0.2). It’s also important to emphasize that in both delay variations the controller compensates the used bandwidth keeping it most of time near the maximum available limit. This shows the efficiency of the proposed control law.
control action output and set−point Bandwidth (Kbps) control variation
20
packets set−point
10 0 0
5
10
15
20
25
30
35
40
5
10
15
20
25
30
35
40
5
10
15
20
35
40
50
0 0
Cwnd
0.2 0 Cwnd(n)−Cwnd(n−1)
−0.2 0
25
30
0 0
Bandwidth Used Bandwidth Available 5
10
15
20 time(s)
25
30
35
40
control action output and set−point
In the second simulation the simulated network topology shown in figure 1 is used until t = 20s. At this time the bottleneck link bandwidth is increased from 5M bps to 6M bps. This disturbance simulates in the real network a stop of another sender that was using the link and then more bandwidth is available from t = 20s on. At t = 30s the bottleneck link bandwidth is reduced to 4M bps which corresponds to the effect caused by a new sender that starts sending packages in the same link and then less bandwidth is available. The results can be seen on figure 7. 20 10 0 0
packets set−point
5
10
15
20
25
30
35
5
10
15
20
25
30
35
40
50
0 0
Cwnd
0.2
40
Cwnd(n)−Cwnd(n−1)
0 −0.2 0
5
10
15
20
25
30
35
40
5000
0 0
ACKNOWLEDGEMENTS Partially supported by CNPq-Brazil.
5000
Fig. 6. GPC results under delay variation disturbances
Bandwidth (Kbps) control variation
(M P C). The constrained GPC strategy used for the congestion control gives adequate dynamic responses in all the simulated situations, avoiding buffer overflow and keeping the bandwidth usage near the maximum available limit. Robustness was also tested under changes in the network configurations. Among the good results obtained in this case the proposed approach has the additional advantage that the model and controller can be generalized for the case of multiple senders and receivers. This point is under research.
Bandwidth Used Bandwidth Available 5
10
15
20 time(s)
25
30
35
40
Fig. 7. GPC results under bandwidth variation disturbances As can be seen, the controller once again is able to compensate the bandwidth variations, avoiding buffer overflow and keeping the bandwidth usage near the maximum available limit. Again the control variation is limited as desired. 5. CONCLUSION This paper has analyzed the modelling and control of the TCP protocol and its congestion control algorithm. The presented input-output model comparisons allow to define a simple model for control purposes that shows a good compromise between simplicity and accuracy and also can be applied in model based predictive controllers
REFERENCES Allman, M., Paxson, V., and Stevens, W. (1999). Tcp congestion control. IETF RFC 2581. Baiocchi, A. and Vacirca, F. (2007). Tcp fluid modeling with a variable capacity bottleneck link. IEEE Infocom 2007, 1. Blanton, E., Allman, M., Fall, K., and Wang, L. (2003). A conservative selective acknowledgment (sack)-based loss recovery algorithm per tcp. IETF RFC 3517. Camacho, E. and Bordons, C. (2004). Model Predictive Control. Springer, Berlin. Clarke, D., Mohtadi, C., and Tuffs, P. (1987). Generalized predictive control. parts i and ii. Automatica, 23(2), 137–160. Gerla, M. (1999). Generalized window advertising for TCP congestion control. Technical Report 990012. Goodwin, G. and Sin, K. (1984). Adaptive Filtering Prediction and Control. Prentice Hall, Englewood Cliffs, NJ. Hollot, C., Misra, V., Towsley, D., and Gong, W. (2001). A control theoretic analysis of red. IEEE Infocom 2001, 1. Hollot, C., Misra, V., Towsley, D., and Gong, W. (2002). Analysis and design of controllers for aqm routers supporting tcp flows. IEEE/ACM Trans. Automatic Control. Jacobson, V. (1988). Congestion avoidance and control. ACM Computer Communications Review, 18(4), 314329. Kurose, J. and Ross, K. (2001). Computer Networking: A top-down Approach Featuring the Internet. Addison Wesley. Mascolo, S. (2003). Modeling the internet congestion control using a smith controller with input shaping. IFAC. Melo, R.C., Normey-Rico, J.E., and Farines, J.M. (2008). Modelagem e controle de congestionamento em conex˜oes tcp. Brazilian Control Conference 2008. Normey-Rico, J.E. and Camacho, E.F. (2007). Control of Dead-time Processes. Spinger, Berlin. Tang, A., Jacobsson, K., Andrew, L.L.H., and Low, S.H. (2007). An accurate link model and its application to stability analysis of fast tcp. IEEE Infocom 2007, 1. Wang, J., Wei, D.X., and Low, S.H. (2006). Modeling and stability of fast tcp. IMA Volumes in Mathematics and its Applications, Volume 143: Wireless Communications.