Title: Separating Network Striping Policy from Mechanism
1Separating Network Striping Policy from Mechanism
- Asfandyar Qureshi
- and
- John Guttag
2Overview
- Horde Networking Middleware
- Provides a simple and robust way for multi-stream
applications to communicate over multiple
channels with widely varying characteristics. - Key problems addressed
- Allow applications to abstractly influence packet
scheduling. - Provide a mechanism that derives the appropriate
packet TX schedules.
3Talk Structure
- Motivation and Background
- Motivating Application
- Public Wireless Networks
- Network Striping
- WWAN Striping Challenges
- Packet Scheduling
- Horde Middleware
- Services Provided
- Objective Driven Scheduling
- Channel Management
4Motivating Application
- Mobile Telemedicine (joint with MGH)
- Provide advanced remote diagnostics capabilities
- Allow doctors to examine patients in-transit
- What we want to send
- Unidirectional VIDEO (300 kbit/sec)
- Bidirectional AUDIO (64 kbit/sec)
- Low-rate Physiological data (EKG, Heart-rate,
etc)
5Mobile Telemedicine
- Communication requirements
- Sustained high throughput
- Low-latency
- Vehicular motion in an urban area
- Economics
- System must be viable to deploy and operate
- Approach
- Use COTS components and public carrier wireless
communications infrastructure
6Public Wireless Networks
- Wireless Wide-Area Data Networks are ubiquitous
in urban Areas - Multiple providers (T-mobile, Verizon, )
- Multiple technologies (GSM/GPRS, CDMA, )
- Providers have overlapping coverage
- Network QoS is not great and not stable
- Latencies are high and variable
- GPRS mean 560ms, stdev 100ms
- CDMA mean 320ms, stdev 80ms
- Upload bandwidths (moving) are low and variable
- GPRS mean 20 kbps, stdev 5
- CDMA mean 120 kbps, stdev 20
7Public Wireless Networks
- Wireless Wide-Area Data Networks are ubiquitous
in urban Areas - Multiple providers (T-mobile, Verizon, )
- Multiple technologies (GSM/GPRS, CDMA, )
- Providers have overlapping coverage
- Network QoS is not great and not stable
- Latencies are high and variable
- GPRS mean 560ms, stdev 100ms
- CDMA mean 320ms, stdev 80ms
- Upload bandwidths (moving) are low and variable
- GPRS mean 20 kbps, stdev 5
- CDMA mean 120 kbps, stdev 20
8Network Striping
- Stripe Application Data across Multiple Network
Channels - Take data units from application and send them in
some order over the channels.
A
B
N channels
M streams
M streams
9Challenges I Application
- Bandwidth Limited Application
- Can send more data than network can accommodate
- Different Types of Streams with Dissimilar Needs
- Video, Audio, Bulk Data
- Different Network QoS Sensitivities
- Want applications to be independent of the number
and types of channels
10Challenges II Networks
- Network Channels are Dissimilar
- CDMA has 6x the bandwidth of GPRS
- Different technologies, many idiosyncrasies
- Network QoS Varies in Time
- Packet latency stdevs are 80
- Number of Channels Varies
- Motion makes this problem worse
- Forward Compatibility
- Different wireless network technologies will
eventually be deployed
11Horde Design Goals
- A Wireless Striping Middleware
- Can be useful to expose aspects of the striping
operation to applications - Develop a Powerful Set of Abstractions
- Make it easy to build diverse applications
- Dont sacrifice performance
- Support a heterogeneous set of unstable wireless
channels - Modularity is important
12Network Striping Scheduling
APPLICATION
Different Requirements (Bandwidth QoS)
STREAMS
Different types of Service (Bandwidth QoS)
INTERFACES
NETWORK SERVICES
13Network Striping Scheduling
APPLICATION
Different Requirements (Bandwidth QoS)
STREAMS
Different types of Service (Bandwidth QoS)
INTERFACES
NETWORK SERVICES
14Network Striping Scheduling
APPLICATION
Different Requirements (Bandwidth QoS)
STREAMS
HORDE
Middleware
Different types of Service (Bandwidth QoS)
INTERFACES
NETWORK SERVICES
15Network Striping Scheduling
APPLICATION
Different Requirements (Bandwidth QoS)
DATA UNITS
HORDE
Middleware
Different types of Service (Bandwidth QoS)
TX SLOTS
NETWORK SERVICES
16Packet Scheduling (simple)
- Randomized Round Robin
- Stripe four streams with the same throughputs
across one CDMA and three GPRS channels - All streams get the same QoS
- Should all streams get the same QoS?
17Packet Scheduling (better)
- Objective Driven Scheduling
- Packet scheduler incorporates application
specific information (Streams 2 and 4 are video
streams) - Optimizes the division of the shared network
resource based on stream sensitivities
18Horde Middleware Overview
APPLICATION
HORDE
API
Packet Scheduler
Network Channel Management
O/S NETWORK SERVICES
19Horde Middleware Overview
APPLICATION
HORDE
API
Packet Scheduler
Network Channel Management
O/S NETWORK SERVICES
20Horde Middleware
- Provides a Number of Services
- Schedule data streams over channels
- Applications can modulate per stream QoS
- Applications abstractly influence striping policy
- Network channel congestion control
- Stream flow control
- Initial Implementation
- User-space
- Event driven API
- Similar to Congestion Manager OSDI 00
21Horde Middleware
- Provides a Number of Services
- Schedule data streams over channels
- Applications can modulate per stream QoS
- Applications abstractly influence striping policy
- Network channel congestion control
- Stream flow control
- Initial Implementation
- User-space
- Event driven API
- Similar to Congestion Manager OSDI 00
22QoS Modulation
- Streams have varying QoS sensitivities
- QoS is multidimensional
- Bandwidth
- Latency
- Loss and loss correlation
- Want to allow applications to express stream QoS
sensitivities - Interface must be flexible
- Applications must be easy to program
23Application Utility
- UTILITY When an application sends data, it
receives some utility from the consumption of its
data at another host - Total value derived from network service, minus
cost - Utility can be affected by the type of the data
unit (e.g., a video I-frame) or the network-QoS
for the data unit - Similar to Microeconomics net consumer utility
- Utility Function
- We use a notion of an application-specified
utility function - This function allows the packet scheduler to
abstractly determine application sensitivities - Pick Schedules that Maximize Utility
24Horde QoS Objectives
- Applications express QoS objectives
- Objectives define QoS constraints on streams
- Each objective defines a QoS goal and how the
achievement of that goal adds to, or subtracts
from, overall application utility - E.g., an objective for a video stream could
express that I-frame ADUs should have lower loss
than P-frame ADUs
25Horde QoS Objectives
- Objectives are
- Modular
- Correspond to QoS Dimensions
- Can refer to such things as expected latency and
loss for an ADU or stream - Independent of the number of channels
- The number and the nature of active network
channels is likely to vary in a mobile
application - Expressed using a specification language
26Expressing Objectives
- Stream audio1 values an average latency less than
one second
objective context streamfoo
stream_id audio1 goal
foolatency_ave lt 1000 utility foo 100
27Expressing Objectives
- Stream audio1 values an average latency less than
one second
objective context streamfoo
stream_id audio1 goal
foolatency_ave lt 1000 utility foo 100
28Expressing Objectives
- Stream audio1 values an average latency less than
one second
objective context streamfoo
stream_id audio1 goal
foolatency_ave lt 1000 utility foo 100
29Expressing Objectives
- Stream audio1 values an average latency less than
one second
objective context streamfoo
stream_id audio1 goal
foolatency_ave lt 1000 utility foo 100
30Expressing Objectives
- I-frames should have lower loss than others
objective context adufoo
(stream_id video1)
(frame_type I) adubar
(stream_id video1)
(frame_type ! I) goal
prob(foolost?) lt prob(barlost?) utility
foo 100
31Objective Driven Scheduling
- Find high expected utility TX schedules
- Interpret set of expressed objectives
- Search over sub-space of possible TX schedules
- For example a random walk
32Horde Middleware Overview
APPLICATION
HORDE
API
Packet Scheduler
Network Channel Management
O/S NETWORK SERVICES
33Horde Middleware Overview
APPLICATION
HORDE
API
Packet Scheduler
Network Channel Management
O/S NETWORK SERVICES
34Channel Management
Packet Scheduler
Network Channel Management
O/S NETWORK SERVICES
- Congestion Control
- Limits the schedulers sending rate
- Channel Bandwidth and QoS Estimation
- Prediction (near future)
- Needed to make good scheduling decisions
35Channel Managers
Packet Scheduler
M1
M2
MN
O/S NETWORK SERVICES
- A single channel manager instance for each active
network interface - Different channel manager implementations for
different network types - Example one implementation to deal with CDMA,
one for GPRS, and another one for 802.11
36Transmission Slots
- For Scheduler, channels are sources of TxSlots
- Scheduler can abstract away channel specific
idiosyncrasies - TxSlots grant TX capabilities
- Scheduler collects slots and maps data to each
slot - Encapsulate expected QoS
- Have fields for expected latency, loss
probability, etc
Scheduler
S
Mk
O/S
37Phantom TX Slots
- Short-term channel QoS prediction boosts
scheduler accuracy - E.g., If a low-latency slot is likely to be
available shortly, defer scheduling an urgent
packet. - Phantom TxSlots allow scheduler to factor in
channel-specific predictions - Phantoms are TxSlots that cant be used to send
data - Phantoms have confidence levels
Scheduler
S
Mk
O/S
38Summary
- Goal was to build a flexible network striping
middleware for WWANs - Handle both channel and stream heterogeneity
- Two key abstractions
- Objectives
- Allow abstract manipulation of striping policy
- Transmission Slots
- Decouple scheduler from channel specific
idiosyncrasies
39Conclusions
- Using Horde it is possible to express rich
objectives - Rich enough for many interesting apps
- Maybe richer than needed
- Very simple schedulers can produce better
schedules than would be produced in the absence
of objectives - Objective driven scheduling accounts for
different stream QoS sensitivities