90 likes | 285 Views
Providing Guaranteed Services without Per Flow Management. Today’s Internet offers best-effort delivery service and IP routers are stateless (except coarse-grained routing state) ==> scalable and robust Solutions for better services
E N D
Providing Guaranteed Services without Per Flow Management • Today’s Internet offers best-effort delivery service and IP routers are stateless (except coarse-grained routing state) ==> scalable and robust • Solutions for better services - stateless, e.g. RED for congestion control, Diffserv for QoS - stateful (per flow management), e.g. FQ, Intserv • Stateful solutions provide more powerful and flexible services, but require per flow state, classification, buffers and scheduling • Goal: want to emulate stateful services (per flow bandwidth and delay guarantees) at the cost of stateless solutions (only edge routers perform per flow management)
Dynamic Packet State (DPS) • Ingress router computes and inserts per flow state in packet’s header • Core router processes packet based on its state and node’s state • Core router updates both packet and node’s state • Egress router removes state from packet’s header
Reference Stateful Network • Want to emulate a network where - each router implements Jitter-VC discipline on data path - each router performs per flow admission control on control path • On data path, use DPS to approximate Jitter-VC with Core-Jitter-VC, where core routers do not maintain per flow state
Jitter Virtual Clock • Delay-jitter rate-controller + VC scheduler • Assign each packet eligible time and deadline • Keep packet in rate-controller until it becomes eligible • Schedule packets in increasing order of their deadlines • A network of Jitter-VC servers can provide the same guaranteed service as a network of WFQ servers • Intuition: eligible time and deadline of a packet in a flow with reservation r <==> start and finish time of transmitting the packet in an ideal network in which flow has dedicated links of capacity r • Eligible time = max of * arrival time + ahead time = (departure time at previous router + prop delay) + (deadline at previous router - departure time) = deadline at previous router + prop delay * deadline of previous packet (this is the per flow state!) • Deadline = eligible time + (packet length / flow reserved rate)
Core-Jitter VC • Goal: eliminate per flow state at core routers - eliminate dependence on previous packet deadline • Solution: introduce a slack variable s, such that at each core router packet deadline at previous router + prop delay + s >= deadline of previous packet for every packet • Then eligible time = packet deadline at previous router + prop delay + s • s is inserted in packet’s header by ingress router, depends on - lengths of previous and current packets - slack of previous packet - number of hops (known at admission control time) • Each packet carries its slack, flow reserved rate, and ahead time at previous router • No per flow classification and no per flow scheduling state
No per Flow Admission Control • Goal: light-weight signaling protocol that does not require core routers to maintain per flow state (the reserved rate of the flow) • A router admits a reservation r, if r <= C - R • Solution: maintain aggregate reservation R • Problem: requires per flow state to handle partial reservation failures and message loss (to maintain consistency) • Solution: Estimate aggregate reservation Re • Account for approximations and compute upper bound Rb, Rb>= R • Admit a reservation if r <= C - Rb
Estimate Aggregate Reservation • If all flows were sending at their reserved rates, computing Re is trivial; just measure traffic throughput • Problem: what if flows do not send at their reserved rates? • Solution: Associate with each packet a virtual length - virtual length = r * (time now - transmit time of previous packet) • Use virtual lengths instead of actual lengths to compute Re • Ingress router inserts virtual length in packet’s header • Core router uses virtual lengths to compute Re on each output link • Re can underestimate R, because it ignores jitter and packet inter-departure times, and reservations accepted or terminated in the middle of an estimation interval
Computing Upper Bound • Rb = (sum of virtual lengths / estimation interval)/(1-f) + Rn where f = (max inter-departure time + max jitter) / estimation interval Rn = new reservations made during estimation interval • The estimation algorithm is robust in presence of control message loss and duplication - their effect is “forgotten” after one time interval • If no packet of a flow departs during a predefined interval (i.e., maximum inter-departure time), ingress router generates a dummy packet
Implementation • Where to insert the state? • Possible solutions: - between link layer and network layer headers - as an IP option - find room in IP header (e.g. TOS byte and fragment offset)