220 likes | 326 Views
Deterministic Network Calculus p.2. DNC arrival results. Accumulated arrival functions R(t): traffic recieved in [0,t] Arrival function may be constrained: R(t)-R(s) <= a (t-s) a (t-s) is typically either affine or staircase
E N D
DNC arrival results • Accumulated arrival functions R(t): traffic recieved in [0,t] • Arrival function may be constrained: • R(t)-R(s) <= a(t-s) • a(t-s) is typically either affine or staircase • Packet spacing with period T and tolerance t is constrained by staircase arrival curve. • For fixed length packets affine and staircase constraints are equivalent. • Leaky buckets and GCRAs are euqivalent and are affine and staircase constrained.
DNC arrival results • Arrival curves a and their left limits aL are equivalent. • Good functions have a(0)=0 and are subadditive: • a(t+s) <= a(t) + a(s) • Arrival curves a and their subadditive closures are equivalent. • Good functions are sufficient as arrival functions. • Affine and staircase functions are good. • R R (t) = sup {R(t+v)-R(v)} (for all positive v) is the smallest arrival curve for R
Service curves (definition) Service curves specify in the worst service to be experienced by some service element in a network. Service curves play the role of transfer functions (system impulse responses in our network calculus) Definition (of service curve) An input flow R is guaranteed a service s from som network element iff: R >= R* >= R s = inf {s(t-s)+R(s)} (for all s <= t) Where R* is the output flow from the network element.
Service curves (motivation) Consider a service element where the output rate is constantly r within busy periods. Input flow is R and output flow is R* We have directly for t0 < t R*(t)-R*(t0) = r(t-t0) when t and t0 are in the same busy period. If t0 is the beginning of the busy period: R(t0)=R*(t0) so that R*(t)-R(t0) = r(t-t0) R*(t)=R(t0)+r(t-t0) R*(t) >= inf {r(t-s)+R(s)} (for all s <= t)
Service Curves (motivation) Consider a service element where every bit is delayed constantly d. We have directly for t0 < t R*(t)=R(t-d) Consider the funtion sd defined by sd(t)=0 for t <=d sd(t)=infinity for t > d Then R*(t) =R(t-d) = inf {sd(t-s)+R(s)} (for all s <= t) (s must be the smallest value for which t-s <= d i.e. s = t-d) infinity d
Service curves (motivation)(strict service curves) Consider a network element where the output from the beginning of the present busy period is above s(t-t0) (t0 – beginning of busy period) when t is in busy period. Then for some t in a busy period: R*(t)-R*(t0) >= s(t-t0) R*(t) >= R*(t0) + s(t-t0) R*(t) >= R(t0) + s(t-t0) >= inf {s(t-s)+R(s)} (for all s <= t) Then for some t in an idle period: R*(t) = R(t) >= inf {s(t-s)+R(s)} (for all s <= t)
Service Curves (Concatenation) Consider the following tandem configuration of network elements R(t) R*(t) R**(t) Then the tandem guarantees a service curve s1 s2 What we need to prove is that is monotone and associative, i.e. R** >= R* s >= (R s) s = R (s s)
Concatenation (associativity) • (R s) s = infs <= t { s(t-s) +inf z <= s{s(s-z)+R(z)}} • = infs <= t {inf z <= s{s(t-s) + s(s-z)+R(z)}} • = infs <= t, z <= s { s(t-s) + s(s-z) + R(z)} • R (s s) = infs <= t {inf z<= t-s {s(t-s-z)+ s(z)}+R(s) }} • = infs <= t {inf z<= t-s {s(t-s-z) + s(z) +R(s) }} • infs <= t, z<= t-s {s(t-s-z) + s(z) + R(s) } (t-z = h => z = t-h) = inf h <= t, s<= h {s(h-s) + s(t-h) + R(s) } = inf h <= t, s<= h {s(t-h) + s(h-s) + R(s) } • (h -> s, s -> z) = infs <= t, z<= s {s(t-s) + s(s-z) + R(z) }= (R s) s
Concatenating Constant Rates s1s2 = inf s <= t{s2(t-s)+s1(s)} = inf s <= t {r2(t-s) + r1(s)} = inf s <= t {r2(t-s) + r1(s)} r2 t for r1>r2 (s=0) r1 t for r2>r1 (s=t) = min{r1,r2} t CONSITENT WITH BOTTLENECK INTUITION
Concatenating with max. Delay sd s = inf s <= t{s(t-s)+sd(s)} = min{inf s <= d {s(t-s)},inf} = inf s <= d {s(t-s)}= s(t-d) or in fact [s(t-d)]+ d
Prioritizing Servers (preemptive) sH = c t aH sH = c t sL = [c t – aH]+ sL
Queue Lengths R q(t) R* q t time
Queue Lengths from Specifications a qmax s
Proof R(t)-R*(t) <= R(t)-inf s<=t {s(t-s)+R(s)} = sup s<=t {R(t) - s(t-s) - R(s)} = sup s<=t {R(t) – R(s) - s(t-s)} <= sup s<=t {a(t-s) - s(t-s)} = sup 0<=t-s {a(t-s) - s(t-s)}
Waiting Times R R* w(t) t time
Waiting Times from Specifications a wmax s
Output Flow Let the inflow R to some service element be constrained by a and the service element guarantee a service curve s Then The output flow R* is constrained by A*= a s = sup u>=0 {a(t+u) – s(u)}
Output Flow (example) sup u>=0 {a(t+u) – s(u)}= sup u>=0 {r(t+u)+b – [s u – p]+}= max{sup 0<=u<d {r(t+u)+b}, sup u>=d {r(t+u)+b – s u + p}}= max{{r(t+d)+b},{r (t+d) – (s d – p)}}= r(t+d) + b = rt + rd + b = rt + r (p/s) + b a* a rd s d
Converging Flows an+x <= an + ax
Loops (example) GRlow GLlow c c aL aR GLhigh GRhigh sLhigh= sRhigh=c t, sLlow= [c t- GRlow]+, sRlow= [c t- GLlow]+,
Loops (example) sLhigh= sRhigh=c t, sLlow= [c t- GRlow]+, sRlow= [c t- GLlow]+ aL = rL t + bL , aR = rR t + bR GRlow = rRlow t + bRlow , GLlow = rLlow t + bLlow rRlow = rR , rLlow = rL bRlow = bR + rR bLlow /(c- rLlow) = bR + bLlow rR /(c- rLlow) bLlow = bL + rL bRlow /(c- rRlow) = bL + bRlow rL /(c- rRlow)