Flow Flashcards
Open Loop
Source describes its desired flow rate, network admits call, source sends at this rate.
Closed Loop
Source monitors available service rate, sends at this rate, due to speed of light delay, errors occur
Hybrid Loop
Source asks for some minimum rate, but can send more if available
Traffic descriptors
Envelope constraining worst case behaviour.
Has three uses - basis for traffic contract, input to regulator, input to policer.
Requirements for Traffic Descriptors
Representativity - adequately describes flow so too little or too much resource is not conserved.
Verifiability - verify that descriptor holds.
Preservability - doesn’t change inside the network
Usability - easy to describe and use for admission control.
Linear Bounded Arrival Process
Source bounds number of bits sent in any time interval by a linear function of time.The number of bits transmitted in any active interval of length t is less than rt + s. r is long term rate and s is the burst limit. Popular in practice and academia as ~representative, verifiable, ~preservable and ~usable. Problems with multiple time scale traffic as large bust messes up things.
Open Loop vs. Closed Loop
Open loop describes traffic, network admits/reserves resources and offers regulation/policing.
In contrast closed loop is really, really shit like these notes. It can’t describe traffic and network doesn’t support reservation so must monitor available bandwidth and adapt to it.
Flow Control Window
Determined by largest number of unacked packet.
If endpoint has sent all packets in window, it must wait => rate slows down.
Window therefore provides flow control and error control.
Windows vs Rate
In adaptive rate, directly control rate. Needs a timer per connection and no need for fine-grained timer and self-limiting.
Plusses for Rate: +better control, +no coupling of flow control and error control
What should window size be?
Bottleneck service rate along path = b packets/sec
Round Trip Time = R secs
Let flow control window = w packets
Sending rate is w packets in R seconds = w/R
To use bottleneck w?R > b => w > bR
so BR is bandwidth delay product or optimal window size.
DECbit flow control
Every packet has a bit in header, intermediate routers set b if queue has built up => source window is too large, sink copies bit to ack, if set then source reduces window size, oscillates around optimal size in steady state. If mean queue length > 1.0, set bits on sources whose demand exceeds fair share and if exceeds 2.0 set bits on everyone.
TCP Flow Control
Implicit, dynamic window, end-to-end. Window starts at 1, increase exponentially for a while then linearly.
Double every RTT in exponential phase but increase by one every RTT in linear stage.
During exp, every ack results in window increase by 1.
During linear phase, window increases by 1 when # acks = window size.
Exponential phase is called slow start.
Linear phase is called congestion avoidance.
On loss current window size is store in ssthresh, switch from exp to lin when wind size reach thresh.
Tahoe - in both cases drop window to one
Reno - on timeout drop window to 1 and on fast retransmit drop window to falf previous size
TCP Vegas
Expected Throughput = transmission_window_size/propagation_delay
Numerator: known
Denominator: smallest RTT
Actual throughput known
Algorithm:
send special packet
on ack, compute expected and actual throughput
(expected-acutal) * RTT is # of packets in bottleneck buffer
adjust sending rate if this is too large