Title: QoS over IP Networks
1QoS over IP Networks
- Dave Olshefski
- Candidacy Exam, 12/8/99
2Overview
- Motivation for QoS in the network
- Flow specification
- Flow separation
- Resource reservation
- Solving the scaling problem
- Management
- Interesting research issues
3Top Three reasons for QoS in the Network
- Ensure mission critical applications are
allocated the resources they need. - Multimedia/realtime applications can only operate
within a certain range of service. - Service providers wish to increase revenues
through premium pricing and competitive
differentiation of services
4What is a service?
- End users concerned with response time cost
- Better than Best Effort for webserver
- 1 Mbps, to any point in net, over 1Mbps gets BE
- Leased Line Emulation from point A to B
(realtime) - 100 Kbps, A to B, over 100 Kbps get dropped
- Media Playback from point A to B (adaptive)
- 100Kbps sustained, 100Kbps max burst at peak rate
of 200 Kbps, A to B, excess burst traffic over
sustained rate given lower priority in class,
non-conforming traffic etc..
5Characterize a Flow ltr,b,p,m,Mgt
r constant token rate (bps)
p max peak rate
variable rate input
b token bucket depth
input queue
burst
leaky bucket depth
6Weighted Round Robin (WRR)
Queue A
WA
Bandwidth assurances iff mean packet size per
flow is known
Queue B
Packet Scheduler
WB
No delay assurances
Queue C
WC
Wi number of packets to service during turn
7Weighted Fair Queuing (WFQ)
Queue A
WA
Bandwidth and delay assurances
t0
Packet Scheduler
Queue B
WB
Simulates bit-by-bit WRR Sorted list expensive
to maintain
t1
Queue C
WC
t2
Wi number of bits to service during turn
8Deficit Round Robin (DRR)
Queue A
QADA
Bandwidth assurances but no delay bounds
Queue B
Packet Scheduler
QBDB
Queue C
QCDC
IF (quantumdeficit) gt packet length THEN
send packet deficit - length ELSE deficit
quantum
9Router Traffic Conditioning
Queue A
Queue B
Multifield Classifier
data
Queue C
BE
- 5-tuple classification ltsrc IP, src port, dest
IP, dest port, prot idgt - queue per microflow scaling problem
- How is this configured??
10ReSource reserVation Protocol
R3
R5
R4
R6
R2
- PATH
- Follows routing path (router alert)
- Carries Tspec for generated traffic
- Soft state left in each router (prev hop)
- Nodes on path advertise capabilities
- All nodes are equivalent
R7
R1
H1
H2
11RSVP
R3
R5
R4
- RESV
- Hop-by-hop
- Carries Tspec for reservation
- Admission decision made at each node
R6
R2
R7
R1
H1
H2
12Diff-serv Backbone
IR
ER
CR
BR
BR
Aggregation region single field classification
and class-based queuing
R6
R1
RSVP Stub
RSVP Stub
H1
H2
13Ingress router to DS domain
Queue A
Queue B
MF Classifier Marker
data
Queue C
5-tuple to DSCP mapping
Multiple field -gt Single field i.e.
microflow-gtclass of service
14Core router in DS domain
Queue A
Queue B
BA Classifier
Packet Scheduler
data
Queue C
Single field classification No policing, shaping,
dropping
15Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
RSVP_E2E_IGNORE to H2
PATH to H2
PATH to H2
RSVP PATH w/DSCP for aggregate
RESV to IR for aggregate
RESV from H2
RESV from H2
RESV from H2
Aggregate RSVP
16Variations
- Partial path reservations w/incremental updates
- Bottleneck reservations
- reserve if needed else use BE
- Sender initiated reservations
17RSVP Stub
Multicast Problem
BR
H3
ER
Diff-serv Backbone
IR
CR
ER
BR
BR
R6
R1
RSVP Stub
RSVP Stub
H1
H2
18Windows 2000/98
QoS-Enabled Application
Traffic Management Application
GQoS
TC API
Winsock2.dll
RAPI
RSVP.exe
Protocol Stack
Kernel Traffic Control
Packet Scheduler
GPC API
Network Card Driver
19Winsock 2 API
- WSAStartup()
- WSAEnumProtocols(NULL, Protocols, bufferSize)
- WSASocket(, Protocolsi, )
- WSAConnect(, FlowSpecs, )
- WSAGetQoSByName(socket,RSVP,FlowSpec)
- WSAIoctl(socket, SIO_SET_QOS, , Qos2, )
20- WSAStartup()
- numProtocols WSAEnumProtocols(NULL, Protocols,
bufferSize) - For (i 0 i lt numProtocols i)
- if (Protocolsi.dwServiceFlags1
XP1_QOS_SUPPORTED) - (Protocolsi.dwServiceFlags1
XP1_CONNECTIONLESS) - (Protocolsi.iAddressFamily
AF_INET) - (ProtocolsI.iProtocol
IPROTO_UDP)) -
- s WSASocket(FROM_PROTOCOL_INFO,
// address family -
FROM_PROTOCOL_INFO, // socket type -
FROM_PROTOCOL_INFO, // protocol -
Protocolsi, 0, WSA_FLAG_OVERLAPPED) - WSAConnect(s, (sockaddr
)RemoteHost, sizeof(RemoteHost), - NULL,
NULL, Qos, RESERVED) -
- ..
21Service Level Agreement
- constraints on source and destination points
- out of profile actions
- marking and shaping services provided
- encryption services
- authentication mechanisms
- pricing and billing
- availability/reliability, refunds,
re-negotiation/cancellation - static or dynamic
22Negotiation During RSVP Signaling
Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
- Each node on path adds its fee to the
charge/price as the reservation is propagated
from end to end. - Iteration not well supported
23Bandwidth Broker Negotiation
SLA/COPS
SLA/COPS
BB/PDP
IR
ER
CR
BR
BB/PDP
BR
BB/PDP
- Hierarchical
- Inter-domain
- Intra-domain
- With OSPF, BB can determine price from demand
RSVP
RSVP
R6
R1
H1
H2
24H1
MPLS
BR
BR
BR
BR
BR
BR
BR
BR
H2
MPLS encapsulation at ingress -gt de-encapsulation
at egress Routing QoS
25Market
BB
PDP
BB
BB
IR
ER
CR
BR
PDP
BR
PDP
- Negotiation more efficient
- Matching alg. (social welfare)
- Fairness controls
RSVP
RSVP
R6
R1
H1
H2
26Management Console
PAPI
Policy Server
BB
Policy DB
CPC
LDAP
COPS
PDP
PDP
Border Router
PEP
Proxy
SNMP
Border Router
PEP
LPDP
Border Router
27Research Issues
- Aggregation
- Expanding/collapsing regions
- dynamic or static SLAs
- Integrating policy, pricing and measurement for
admissions control/marketing decisions - Market mechanisms and product definition
- Matching algorithms
- Advanced reservations (pre-emption)
- Pricing (holding, usage, congestion)
28Research Issues
- Adaptive applications
- Temporal scaling (sampling rate)
- Spatial resolution (image size)
- Layering (video)
- Advance Reservations adapting to price
fluctuations and availability over time. - Bandwidth CPU, memory disk space
- Server farms, web hosting
- VPNs, VANs, active networks
29Questions
30Pricing/Charging
- Reservation charge
- Usage based charging
- Congestion charging
- Pre-emption vs. selling back unused bandwidth
31Reservation Styles
- Fixed filter
- Distinct reservations from each source to dest
- Shared Explicit
- Specified sources share the same reservation
- Wildcard filter
- All sources share the same reservation
32IP-SEC
- DS codepoint not encrypted
- incoming IP-SEC packets cant be multi-field
classified - may have to rely on DS codepoint marking in hosts
- IP-SEC hides dst address? Difficult to provide
quantitative services without knowing the egress
point.
33DSCP remarking between domains
BR
BR
R6
R1
RSVP Stub
RSVP Stub
H1
H2
34Controlled Load
- Approximate BE under unloaded conditions
- Most packets receive little/no queuing delay but
no delay/jitter assurances - No micro-flow packet reordering
- ltr,b,p,M,mgt
- Out-of-profile share BE
35Guaranteed Service
- Firm guarantees on delay bound and minimum
bandwidth - No jitter, min or avg delay assurances
- Apps with hard real-time requirements
- Out-of-profile gets dropped
36Assured Forwarding Group
- Four classes
- Each class receives a certain amount of resources
- Within each class there are three drop
precedence's - No micro-flow packet reordering
- No delay/jitter assurances
- ltr,b,p,M,mgt
- Approximates Controlled Load
37(Weighted) Random Early Detection
Min Threshold
Max Threshold
p1
p0
- P is a function of mean queue length and time to
last packet drop. - P increases slowly as queue fills up
- Flows lose packets in proportion to their
allocated bandwidth - RIO RED applied to in-profile and out-profile
queues separately - Weights(drop probabilities) based on IP-precedence
38Slots
bandwidth
new intervals
unallocated
allocated
time
demand
time
39Intervals
bandwidth
new intervals
unallocated
allocated
time
demand
time
40- hEvent WSACreateEvent()
- While(True)
- rc WSAWaitForMultipleEvents(1, hEvent,
FALSE, timer, FALSE) - switch(rc)
- case WSA_WAIT_EVENT_0
- WSAEnumNetworkEvents(s, hEvent,
events) - if (events.lNetworkEvents
FD_QOS) - WSAIoctl(s, SIO_GET_QOS,
NULL, 0, Qos2, sizeof(QoS2), ) -
- if (events.lNetworkEvents
FD_READ) - WSARecvFrom(.
-
-
-
41Windows 2000 Flow Spec
- typedef struct _flowspec
- uint32 TokenRate
/ In Bytes/sec - uint32 TokenBucketSize
/ In Bytes - uint32 PeakBandwidth
/ In Bytes/sec - uint32 Latency
/ In microseconds - uint32 DelayVariation
/ In microseconds - SERVICETYPE ServiceType /
Guaranteed, Predictive, -
/ Best Effort, etc. - uint32 MaxSduSize
/ In Bytes - uint32 MinimumPolicedSize
/ In Bytes -
42Services
- Qualitative
- relative, measured by comparison
- Traffic service B has a lower drop probability
than traffic in service A - arbitrary end points A to ?
- harder to manage predict
- Quantitative
- measured independent of other services
- 90 of traffic delivered at service level C will
experience no more than 50 msec delay - between specific end points A to B
- Easier to manage and predict
43Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
RSVP PATH from H1 to H2
Using RSVP signaling to establish aggregate
reservation.
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspec gt
44Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
Microflow RSVP packets IP Protocol number are
remarked from RSVP to RSVP_E2E_IGNORE by ingress
router. Router Alert is set but CR doesnt
recognize RSVP_E2E_IGNORE.
Signal ltsrc IP, src port, dest IP, dest port,
RSVP_E2E_IGNORE, Tspec gt
45Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
Egress router recognizes RSVP_E2E_IGNORE and
resets IP Protocol to RSVP. Packets can now
reserve rest of path IR is seen as the previous
hop so RESV will be addressed to IR.
Signal ltsrc IP, src port, dest IP, dest port,
RSVP, Tspec gt
46Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
TSpecs/Flowspecs for microflows are summed. An
RSVP packet for the aggregate is passed from IR
to ER which CR notices. The DSCP is included.
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspec, DSCP gt
47Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
Remote host sends a RESV to allocate resources,
hop-by-hop.
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspecgt
48Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
ER sends an aggregate RESV to IR. CR routers
perform normal RESV admission control.
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspec, DSCP gt
49Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
ER sends the mircoflow RESV to IR (previous hop).
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspec, DSCPgt
50Aggregate Region
RSVP Region
RSVP Region
H1
IR
CR
ER
H2
BR
BR
IR establishes reservation and sends the
microflow RESV on to source.
Signal ltsrc IP, src port, dest IP, dest
port, RSVP, Tspecgt