Service level agreement (SLA) between applications and the network.
Traffic policing to check traffic compliance with SLAs.
Shaping and policing come with the real-time territory.
Buckets, Leaky and Token
Traffic shaping with leaky and token bucket algorithms.
Traffic goes into a bucket with a hole in it; leaking traffic flows
into the network.
Too much traffic overflows the bucket and is lost.
Possible overflow is buffered at the host or tossed by the network
interface.
Token Buckets
A bucket has a replenishing supply of tokens.
At some tokens/sec rate.
Tokens overflowing the bucket are lost.
Packets entering the network require tokens.
At so many tokens/byte.
Buckets pass short bursts, while long bursts are evened out by bucket
storage.
Routers work at 200 Mb/s with 9600 kb buffers.
Buckets
Buckets shape the host traffic to make it suitable for routers.
Packet Scheduling
Guaranteeing network resources is easier with virtual circuits.
Packet scheduling algorithms allocate router resources to flows:
bandwidth, buffer space, cpu cycles.
Buffers absorb small variations in demand; flow reservations make sure
a flow has buffer space.
Scheduling cpu time is important for packet processing.
FIFO Scheduling
Packet scheduling determines which buffered packet gets router
resources. FIFO scheduling is the simplest schedule.
FIFO scheduling tail-drops new packets on full buffers; but RED too.
Fifo doesn't handle multiple flows well.
Per-flow queueing and round-robin service: fair queueing.
Packet-by-packet queuing is unfair with respect to packet size. a
byte-by-byte queuing is the basis for fairer scheduling.
Packet Scheduling
Simulate byte-by-byte queuing by ordering packets via their
transmission times as if sent byte-by-byte
Weighted fair queueing allows priority among flows by counting groups
of bytes as one byte.
WFQ is complex to implement (O(log n)) but an approximation is constant
time.
Priority scheduling: high priority packets before low priority packets;
could lead to starvation. wfq does better
Timestamp Scheduling
A packet timestamp measures on-timedness; later packets are sent before
earlier packets. per-packet cpu overhead.
Admission Control
Resource reservation for stronger guarantees.
Plotting a path through the network capable of handling the flow's qos
spec.
Bandwidth is easy for a host to specify; buffers and cpu cycles are
not.
The guarantee strength is important too; stronger guarantees are more
expensive and harder to provide.
Some applications are resource adaptive; others are not.
Flow Specifications
A flow specification describes flow parameters. routers make commit
decisions based on a flow spec.
Token-bucket size & rate specify the maximum sustained rate and maximum
burst size.
Peak data rate maximum transmission rate.
Resource Mapping
Minimum and maximum packet size; large packets, bandwidth constraint;
small packets, cpu constrained; 10,000 pkt/sec * 1 kbyte/pkt vs 100,000
pkt/sec * 50 byte/pkt
Mapping available resources to requested resources is tricky in the
presence of statistical fluctuations.
Even on this side of resource exhaustion, delays could still build up.
Relate wfq weights to token bucket parameters to provide balance.
Summary
Some applications need guaranteed network-service levels.
Quality-of-service (QoS) network mechanisms provide guaranteed service
levels.