What are SLA?
Service Level Agreement
=> Performance guarantee
specifies bound on metrics
which needs to be guaranteed for an application
to work correctly
How can SLA be structured?
On different layers
Packet
Flow
Applicatoin
User Level
Give some SLA metrics on the packet level
ENd-to-end latency and jitter
packet loss
Give some SLA metrics on the flow level
throuthput
transfer completion time
Give some SLA metrics on the application level
time to complete transaction (e.g. SQL, download, backup,…)
Give some SLA metrics on the user level
Video or Audio quality
Quality-of-Experience
What tasks are needed to meet SLAs?
modeling
understand which partsof network have impact on SLA
classification
identify which packet needs which service
scheduling
give preferential service to packets
monitoring
check that SLAs are met
using passive or active measurements
How does the SLA QoS pipeline look like?
===== Ingress ======
ingress PHY
-> Packet classification
-> Packet marking Shaping/Dropping
==============
-> Packet Processing (MAC learning, forwarding table lookup,…)
=== Egress ========
packet classification
-> Queue 1
-> Queue 2
-> …
-> Queue n
-> Scheduler (picking from queues)
-> Egress phys
What methods can be used to validate that SLAs are not broken?
live testing in worst-case conditions
emulations and simulations
formal verificatoin using analytical models
What are the inputs and outputs of formal mehtods using mathematical modeling for checking SLAs?
input:
network topology and configuration
flow descriptions
output:
bound on metrics (e.g. end-to-end latencies, buffer sizes,…)
When can we guarantee that an SLA will not be broken?
when we give and calculate the bounds by formal methods
and they are below the requirements
What types of latencies exist in networks? What to they depend on?
propagation
depends on cable lengths and physical signal propagation
Processing
depends on hardware
Transmisison
depends on packet sizes
queuing
depends on the behavior of the other flows and the scheduling
How to calculate the end-to-end delay?
propagation and transmission delay for each hop
processing delay at each hop in-between
queuing at recipient
What is described by the maximal observed delay?
Maximal delay which is measured on a real network
during its normal operation, or via simulations.
What is described by the actual worst case (delay)?
Theoretical worst case delay which can actually occur
in case the elements of the network behave within their limits
but in a very specific pattern leading to this worst-case
What is described by the upper bound (delay)?
bound calculated by analytical model
which is generally larger than actual worst case
due to
approximations
simplifications
or shortcomings of the formal method
What is the distribution of the delays, how often do they ocur?
0 -> maximal observed delay
occur often, most of the delays are in this area
maximal observed delay -> actual worst case
rare events, not many will actually falll into this
actual worst case -> upper bound
(nearly) no fall into this category
over provisionning…
What performance bound types are there?
maximal observed delay
actual worst case
upper bound
What types of requirements criticallity are there?
hard real-time
firm real-time
soft real-time
best-effort
What is ment by the requirements criticallity types?
missing deadline is total system failure
infrequent deadline misses are tolerable
late packets are discarded
late packets may be used
best effort
no deadline requirements
How do different mathematical frameworks compare in terms of criticality and accuracy/tightness?
What is a general trend in mathematical frameworks?
better accuracy and thightness often paid with higher complexity of the mathemtical tools and more CPU time
What is network calculus?
theoretical framework
developed for analyzing performance guarantees
latencies and buffer sizes
in networks of queues and schedulers
Since when is network calculus around and give an example where it is used
since early 1990s
still under active research
-> mostly applied to communication networks
e.g. validation of embedded networks in airbus A380, A350)
What variants of network calculus exist?
deterministic
no randomness involved
=> performances are guaranteed whatever happens to the network
stochastic
randomness involved
=> performances are characterized in probabilistic terms
Give an example of worst-case analysis on dropping matches
Dropping three matches
expected case
all matches fall and lie down
deterministic worst-case
all three matches stay ontop of eachother
-> no matter what happens, this will be lower bound (as no other outcome can be worse, regardeless of probability of them falling)
probable worst-case
two lie down, one stays
-> probably the worst case, but bound by probability, not in all cases (as two can stay although unlikely)
What are flows and what are they used for in network calculus?
unidirectional set of packets going from sender to receiver
used to describe packets and network protocols
How are flows modeled?
cumulative arrival function A
A(t) := amount of data sent by flow in time-interval [0,t)
What are two characteristics of the cumulative arrival function A, what set is it part of?
non-decreasing
strictly positive
part of
F =
{f:R^+ -> R^+ |
function from all positive real values to all positive real values
for all 0 <= t <= s:
f(t) <= f(s),
earlier values are always smaller or equal
f(0) = 0
When is a flow said to have a deterministic arrival curve α?
if its cumulative arrival function A satisfies:
A(t+s) - A(t)
<=
α(s),
For all (s,t) >= 0
=> what ever has arrived in timespan s (for each timepoint t)
is smaller than what has arrived at timepoint s in our arrival curve
=> there cannot be more sent in the arrival function than in the arrival curve… (regardeless of the observed time interval)
=> arrival curve is deterministic if it is upper bound for cumulative arrival function…
What is the token bucket?
example of deterministic arrival function
-> defined by long-term averate rate r
and burstiness parameter b
γ_r,b (s) = r · s + b, ∀s ≥ 0
How are queues and schedulers described in network calculus?
as servers ß
A -> (ß) -> A*
=> cumulative arrival functoin goes in
-> circle around server ß (graphical representation…)
-> cumulative arrival function A* goes out
When is a service curve strict?
server S offers strict service curve ß
if during any period of duratoin ∆
where there is data waiting to be served by S
the output of S (A*) is at least ß(∆)
=> ß gives lower bound of what is served for a given time interval…(if there is enough data available to be served…)
Again, what gives the arrival curve?
upper bound for transmissions / time
How can A* be mathematically defined for strict service curves?
A* (t + ∆) − A* (t) ≥ β(∆)
output cumulative arrival from timeinterval ∆ is larger than ß(∆)
A* (t) ≥ A(s) + β(t − s)
cumulative output at time t
is larger equal than
cumulative input at earlier point s
plus upper bound for processes stuff …?
What is the rate latency, how is it defined?
example of deterministic service curve
-> defined by rate R and processing delay T
denoted β_R,T
β_R,T(t)
= R[t − T]^+ ,
where [x]^+ = max(0, x)
=> higher value than 0
-> gives the processing rate right shifted by the processing delay
-> begins at point T and increases with processing rate
-> y-axis is cumulative arrival of output (A*)
If one plots both A and A* (ß…)
-> how to determine the queue size and delay of the server S?
horizontal space is the delay
-> same height == same packet from input/output
=> time it takes for packet to traverse queue
D(t) -> infimum for all s > 0
of all values where {A(t) <= A*(t+s)}
-> basically the smallest horizontal difference for all s >0(menaing later) -> is straight forward horizontal distance… as all later will be larger distnace…
vertical space: queue size
-> what is arrived but not yet processed at certain point in time…
What is the delay bound?
maximum time a given data has to wait before being processed by the server
=> graphical : maximum horizontal deviation between arrival and service curve
What is the backlog bound?
maximum amount of data that will have to wait before being processed by the server
-> graphical: max vertical deviation between arival and service curve
Mathematical formulation delay bound
A*(t) − A(t − s)
sup_t>=0
{ inf s>=0
{α(t) ≤ β(t + s)}
}
=>
What algebra operators are there in min-plus algebra?
congolution (f ⊗ g)(t)
deconvolutoin (f (only one from left lower to right upper in circle) g)(t)
What is the mathematical formula to a convolution in min-plus algebra?
inf _0<=s<=t (lower bound between s and t)
{f(s) + g(t-s)}
Mathematical formulation deconvolution?
(f g)(t) := sup s≥0 {f(t + s) − g(s)}
How to calculate output curve with min-plis?
A ∗ (t) ≥ (A ⊗ β)(t)
=> convolute input accumul. fct with ß (service curve)
How to calculate output envelope?
α* (t) = (α β)(t)
-> output curve -> deconvolve input curve with service curve…
How to calc delay bound with min plus?
infimum for s:
deconvolve alpha and beta over -s
-> smaller equals 0
How to calc backlog bound with min plus?
alpha deconvolve beta (0)
Practical applicatoin of calculating token bucket traversing rate-latency server?
(γr,b βR,T )(t) = γr,b+rT (t)
What means pay burst only once? What property is this?
two concatenated servers (ß) can be conbined into one by convoluting them…
=> (βR1 ,T1 ⊗ βR2 ,T2 )(t) = βmin(R1 ,R2 ),T1 +T2 (t)
=> take minimum of first value and sum of second => basically add delay and keep lowest steigung, as delay accumulative and steigung upper bound…
=> concatenation property with multiple servers
Where is the left-over property seen? What is it?
multiple flows traversing a server
=> performance of one flow depends on influence of other flow
-> assumption worst case (if we know nothing)
WHat is it called if we know nothing of another flow traversing the same server?
blind multiplexing
arbitrary multiplexing
-> assume worst case
How can we calculate the bounds of a flow in blind multiplexing?
make use of service that is left after flow 2 has been serviced…
=> called resudial or left-over service curve
How is the left-over service curve calcuated?
ß^(l.o.) = [ß - α2]^+
= ß_(R-r),)(b+RT)/(R-r)
What are the principles of strict priority queuing?
queues are polled in priority order until non-empty queue is found
queue can be served only if all higher priority queues are empty
Where is strict priority queuing usually found?
majority of ethernet switches on the market
What are pros of strict priority queuing?
easy implementation
zero configuration
simple formal verification
What are cons of strict priority queuing?
starvation problem
How is the left over service curve for strict priority calculated?
highest priority:
ß (l.o.highest) = ß
ß (l.o.next highest) = [ß - alpha_highest]^+
…
ß (l.o.lowest) =
[ß - (sum of alpha of all highers)] ^+
What is separate flow analysis?
compute bounds in network by separating individual bounds and then aggregating them
Compute the left-over service curve for each server traversed by the flow
Concatenate the left-over service curves
Compute the bounds
What is a packetizer?
not fluid serving of server
=> server identifies all packets from individual flows and groups them
-> if all packets from a flow have arrived, serve them simultaneously
=> step function…
What did we not really regard ?
what happens if a computer sends more than expected?
=> enforcement!!!
switches and routers need to check that each flow conform to its arrival curve…
What are some enforcement solutoins in switches and routers?
mechanism: rate shaping/limiting and flow filtering
protocols: IntServ and RSVP, DiffServ, MPLS-TE
What are some enforcement solutoins in critical applications (e.g. aircraft, cars,…)?
Commercial devices usually have limitations or unwanted functionalities
Custom-designed and/or industry-specific devices and protocols
What are some enforcement solutoins in ethernet networks?
New protocols currently standardized:
IEEE Time Sensitive Networking (TSN)
OpenFlow meters
What are the key concepts of network calculus?
Study the cummulative arrival of traffic
Characterize the behavior of servers as function of the cummulative arrival,
Define a (simple) bounding function of the traffic and server behavior,
Work with the bounding functions – not the traffic itself – to compute bounds.
Last changed2 years ago