FAST TCP

25
FAST TCP Presenter Farrukh Shahzad Slides (core) adapted from : IETF presentation slides Link: http://netlab.caltech.edu/FAST/index.html

description

FAST TCP. Presenter Farrukh Shahzad. Slides (core) adapted from : IETF presentation slides Link: http://netlab.caltech.edu/FAST/index.html. Congestion control. - PowerPoint PPT Presentation

Transcript of FAST TCP

Page 1: FAST TCP

FAST TCP

Presenter

Farrukh Shahzad

Slides (core) adapted from : IETF presentation slidesLink: http://netlab.caltech.edu/FAST/index.html

Page 2: FAST TCP

Essential strategy : The TCP host sends packets into the network without resource reservation and then the host reacts to observable events.

Originally TCP assumed FIFO queuing at hosts.

Basic idea: each source determines how much capacity is available to a given flow in the network.

ACKs are used to ‘pace’ the transmission of packets such that TCP is “self-clocking”.

CONGESTION CONTROL

Page 3: FAST TCP

3

AIMD (ADDITIVE INCREASE / MULTIPLICATIVE DECREASE)

CongestionWindow (cwnd) is a variable maintained by the TCP source for each connection.

cwnd: is set based on the perceived level of congestion. The Host receives implicit (packet drop) or explicit (packet mark) indications of internal congestion.

MaxWindow = min (CongestionWindow , AdvertisedWindow)EffectiveWindow = MaxWindow – (LastByteSent -LastByteAcked)

Page 4: FAST TCP

4

ADDITIVE INCREASEAdditive Increase is a reaction to perceived available capacity.

Linear Increase basic idea:: For each “cwnd’s worth” of packets sent, increase cwnd by 1 packet (w=w +1)

In practice, cwnd is incremented fractionally for each arriving ACK.

increment = MSS x (MSS /cwnd)cwnd = cwnd + increment

Page 5: FAST TCP

5

MULTIPLICATIVE DECREASE

The key assumption is that a dropped packet and the resultant timeout are due to congestion at a router /switch.

Multiplicate Decrease:: TCP reacts to a timeout by halving

cwnd (w/2).

Although cwnd is defined in bytes, the literature often discusses congestion control in terms of packets (or more formally in MSS == Maximum Segment Size).

cwnd is not allowed below the size of a single packet.

Loss ProbabilityQueuing Delay

Page 6: FAST TCP

Congestion control problem:How to adjust the sending rates of the data sources to make sure that the bandwidth B of the bottleneck link is not exceeded?

B is unknown to the data sources and possibly time-varying

CONGESTION CONTROL

Page 7: FAST TCP

Congestion control problem:How to adjust the sending rates of the data sources to

make sure that the bandwidth B of the bottleneck link is not exceeded?

CONGESTION CONTROL

Page 8: FAST TCP

When åi ri exceeds B the queue fills and data is lost (drops)

=> ) drop (discrete event)

CONGESTION CONTROL

Event-based control:The sources adjust their rates based on the detection of drops

Page 9: FAST TCP

wi (window size) ´ number of packets that can remain unacknowledged for by the destination

CONGESTION CONTROL

Page 10: FAST TCP

wi (window size) ´ number of packets that can remain unacknowledged by the destination

This mechanism is still not sufficient to prevent a collapse of the network if the sources set the wi too large

queuegets full

longerRTT

ratedecreases

queuegets empty

negative feedback

CONGESTION CONTROL

Page 11: FAST TCP

TCP Reno is a good solution for low speed networks but not a viable solution for high-speed networks

Too conservative, not stable, and requires extremely small equilibrium loss

probability

Philosophy of RenoPacket level

Designed and implemented firstFlow level

Understood afterwardsFlow level dynamics determines

Equilibrium: performance, fairness Stability

TCP RENO

- Design flow level equilibrium & stability- Implement flow level goals at packet

level

Page 12: FAST TCP

congestion control algorithm can be designed at two levels.

1- The flow-level (macroscopic) design aims to achieve high utilization, low queuing delay and loss, fairness, and stability.

2- The packet-level design implements these flow level goals within the constraints imposed by end-to-end control

TCP - RENO

Equilibrium problem Packet level: Additive Increase too slow,

Multiplicative decrease too drastic Flow level: required loss probability too small

Dynamic problem Packet level: must oscillate on binary signal Flow level: unstable at large window

TCP RENO

Page 13: FAST TCP

TCP FLOW DYNAMICS- RENO

ACK: W W + 1/W Loss: W W – 0.5W

Packet level

Flow level dynamics

fLossPobablityoPiRTTTi

tptwT

tw iii

i

&

)()(3211 )( 2

Page 14: FAST TCP

ACK: W W + 1/WLoss: W W – 0.5WRENO:

ACK: W W + a(w)/WLoss: W W – b(w)W

ACK: W W + 0.01Loss: W W – 0.125W

High Speed TCP:

Scalable TCP:

TCP VARIANT PERFORMANCE

Page 15: FAST TCP

FLOW LEVEL: RENO, HSTCP, STCP, FAST

Different gain k and utility Ui They determine stability ,

responsiveness and equilibrium.Different congestion measure pi

Loss probability (Reno, HSTCP, STCP) Queueing delay (Vegas, FAST)

Generic flow level dynamics!

)()(1 )( )( ' tU

tpttwi

ii k

windowadjustment

controlgain

flow levelgoal=

Even though Reno, HSTCP, STCP, and FAST look different at the packet level, they have similar equilibrium and dynamic structures at the flow level

Page 16: FAST TCP

FAST TCP is a new TCP congestion avoidance algorithm especially targeted at high-speed, long-distance links, developed at the Netlab, California Institute of Technology and now being commercialized by Fastsoft. It is compatible with existing TCP algorithms, requiring modification only to the computer from which is sending data.

FAST AQM Scalable TCP, where AQM stands for Active Queue Management, and TCP stands for Transmission Control Protocol.

Like TCP Vegas, FAST TCP uses queueing delay along with loss probability as a congestion signal

It seeks to maintain a constant number of packets in queues throughout the network. The number of packets in queues is estimated by measuring the difference between the observed round trip time (RTT with no Queuing) and the base RTT ( Min observed time for connection), If too few packets are queued, the sending rate is increased, while if too many are queued, the rate is decreased

FAST TCP - INTRODUCTION

Page 17: FAST TCP

Data control : Component determines which packets to transmit, (Selects packet from the pool of 3 packets : 1) new packets, 2) packets that lost (negatively acknowledged), and transmitted packets but not ack’d )

Window control : Determines how many packets to transmit, Window control regulates packet transmission at the RTT timescale,

Burstiness control : Determines when to transmit, It smoothes out transmission of packets in a fluid-like manner to track the available bandwidth

FAST - ARCHITECTURE

Page 18: FAST TCP

Burstiness reduction: limits the number of packets that can be sent when an ack advances congestion window by a large amount.

Window pacing: determines how to increase congestion window over the idle time of a connection to the target determined by the window control component. It reduces burstiness with a reasonable amount of scheduling overhead.

FAST – ARCHITECTURE…CONT ..

Page 19: FAST TCP

WINDOWS CONTROL ALGORITHMFAST reacts to both queueing delay and packet loss.

Normal Network ConditionsFAST TCP periodically updates the congestion window based on the average RTT and average queueing delay provided by the estimation component

γ ∈ (0, 1], baseRTT is the minimum RTT observed and α is a positive protocol parameter that determines the total number of packets queued in routers in equilibrium along the flow’s path. The window update period is 20ms.

Page 20: FAST TCP

WINDOWS CONTROL ALGORITHMFAST TCP with FAST Network Flows

cl : A network is assumed as a set of resources with finite capacities, e.g., transmission links, processing units, memory, etc.

di denote the round-trip propagation delay of source i. R be the routing matrix where Rli = 1 if source i uses link l, and 0 otherwise. pl(t) denote the queueing delay at link l at time t. qi(t) = Σl . Rli . pl(t) be the roundtrip queueing delay, in vector notation, q(t) = RT p(t).

Then the round trip time of source i is Ti(t) := di + qi(t).

Page 21: FAST TCP

SELF CLOCKING

A key difference of FAST TCP from those in the literature is that it assumes that a source’s send rate, defined as xi(t) := wi(t)/Ti(t), cannot exceed the throughput it receives. This is justified because of self-clocking: within one round-trip time after a congestion window is increased, packet transmission will be clocked at the same rate as the throughput the flow receives

A consequence of this assumption is that the link queueing delay vector, p(t), is determined implicitly by the instantaneous window size in a static manner:

Page 22: FAST TCP

Click icon to add picture

Click icon to add picture Click icon to add pictureDYNAMIC SHARING: 3 FLOWSFAST RENOx

HSTCP STCP

throughput flows

Page 23: FAST TCP

QUEUING DELAY COMPARISON

Page 24: FAST TCP

OVERALL COMPARISON

Page 25: FAST TCP

THANKS