Download CSE561: Graduate Computer Networking

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Deep packet inspection wikipedia , lookup

CAN bus wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Transcript
Resilient Peer-to-Peer Streaming
Venkat Padmanabhan
Microsoft Research
March 2003
Collaborators and Contributors
• MSR Researchers
– Phil Chou
– Helen Wang
• MSR Intern
– Kay Sripanidkulchai (CMU)
Outline
• Motivation and Challenges
• CoopNet approach to resilience:
– Path diversity: multiple distribution trees
– Data redundancy: multiple description coding
•
•
•
•
Performance evaluation
Layered MDC & Congestion Control
Related work
Summary and ongoing work
Motivation
• Problem: support “live” streaming to a potentially
large and highly dynamic population
• Motivating scenario: flash crowds
– often due to an event of widespread interest…
– … but not always (e.g., Webcast of a birthday party)
– can affect relatively obscure sites (e.g., www.cricket.org)
• site becomes unreachable precisely when it is popular!
• Streaming server can quickly be overwhelmed
– network bandwidth is the bottleneck
Solution Alternatives
• IP multicast:
– works well in islands (e.g., corporate intranets)
– hindered by limited availability at the inter-domain
level
• Infrastructure-based CDNs (e.g., Akamai, RBN)
– well-engineered network  good performance
– but may be too expensive even for big sites
• (e.g., CNN [LeFebvre 2002])
– uninteresting for CDN to support small sites
• Goal: solve the flash crowd problem without
requiring new infrastructure!
Cooperative Networking (CoopNet)
• Peer-to-peer streaming
– clients serve content to other clients
• Not a new idea
– much research on application-level multicast (ALMI, ESM,
Scattercast)
– some start-ups too (Allcast, vTrails)
• Main advantage: self-scaling
– aggregate bandwidth grows with demand
• Main disadvantage: hard to provide “guarantees”
– P2P not a replacement for infrastructure-based CDNs
– but how can we improve the resilience of P2P streaming?
Challenges
• Unreliable peers
– peers are not dedicated servers
– disconnections, crashes, reboots, etc.
• Constrained and asymmetric bandwidth
– last hop is often the bottleneck in “real-world” peers
– median broadband bandwidth: 900 Kbps/212 Kbps
(PeerMetric study: Lakshminarayanan & Padmanabhan)
– congestion due to competing applications
• Reluctant users
– some ISPs charge based on usage
• Others:
– NATs: IETF STUN offers hope
– Security: content integrity, privacy, DRM
CoopNet Design Choices
• Place minimal demands on the peers
– peer participates only for as long as it is
interested in the content
– peer contributes only as much upstream
bandwidth as it consumes downstream
– natural incentive structure
• enforcement is a hard problem!
• Resilience through redundancy
– redundancy in network paths
– redundancy in data
Outline
• Motivation and Challenges
• CoopNet approach to resilience:
– Path diversity: multiple distribution trees
– Data redundancy: multiple description coding
•
•
•
•
Performance evaluation
Layered MDC & Congestion Control
Related work
Summary and ongoing work
Traditional Application-level Multicast
Traditional ALM falls short: vulnerable to node departures and failures
CoopNet Approach to Resilience
• Add redundancy in data…
– multiple description coding (MDC)
• … and in network paths
– multiple, diverse distribution trees
Multiple Description Coding
MDC
•
•
•
•
Layered coding
Unlike layered coding, there isn’t an ordering of the descriptions
Every subset of descriptions must be decodable
So better suited for today’s best-effort Internet
Modest penalty relative to layered coding
Multiple, Diverse Distribution Trees
Minimize and diversify set of ancestors in each tree.
Tree diversity provides robustness to node failures.
Tree Management Goals
• Traditional goals
– efficiency
• close match to underlying network topology
• mimic IP multicast?
• optimize over time
– scalability
• avoid hot spots by distributing the load
– speed
• quick joins and leaves
• But how appropriate for CoopNet?
– unreliable peers, high churn rate
– failures likely due to peers nodes or their last-mile
– resilience is the key issue
Tree Management Goals (contd.)
• Additional goals for CoopNet:
– shortness
• fewer ancestors  less prone to failure
– diversity
• different ancestors in each tree  robustness
• Some of the goals may be mutually conflicting
– shortness vs. efficiency
– diversity vs. efficiency
– quick joins/leaves vs. scalability
• Our goal is resilience
– so we focus on shortness, diversity, and speed
– efficiency is a secondary goal
Shortness, Diversity & Efficiency
Seattle
New York
S
Supernode
Mimicking IP multicast
is not the goal
Redmond
CoopNet Approach
Centralized protocol anchored at the server
(akin to the Napster architecture)
• Nodes inform the server when they join and leave
– indicate available bandwidth, delay coordinates
• Server maintains the trees
• Nodes monitor loss rate on each tree and seek new
parent(s) when it gets too high
– single mechanism to handle packet loss and ungraceful
leaves
Pros and Cons
• Advantages:
– availability of resourceful server simplifies protocol
– quick joins/leaves: 1-2 network round-trips
• Disadvantages:
– single point of failure
• but server is source of data anyway
– not self-scaling
• but still self-scaling with respect to bandwidth
• tree manager can keep up with ~100 joins/leaves per second
on a 1.7 GHz P4 box (untuned implementation)
• tree management can be scaled using a server cluster
– CPU is the bottleneck
Randomized Tree Construction
Simple motivation: randomize to achieve diversity!
• Join processing:
– server searches through each tree to find the highest k
levels with room
• need to balance shortness and diversity
• usually k is small (1 or 2)
– it randomly picks a parent from among these nodes
– informs parents & new node
• Leave processing:
– find new parent for each orphan node
– orphan’s subtree migrates with it
• Reported in our NOSSDAV ’02 paper
Why is this a problem?
• We only ask nodes to contribute as
much bandwidth as they consume
R
1
R
2
1
2
• So T trees  each node can support at
most T children in total
• Q: how should a node’s out-degree be
distributed?
3
4
4
3
• Randomized tree construction tends to
distribute the out-degree randomly
5
6
5
6
• This results in deep trees (not very
bushy)
Deterministic Tree Construction
• Motivated by SplitStream work [Castro et al. ‘03]
– a node need be an interior node in just one tree
– their motivation: bound outgoing bandwidth requirement
– our motivation: shortness!
• Fertile nodes and sterile nodes
–
–
–
–
every node is fertile in one and only one tree
decided deterministically
deterministically pick parent at the highest level with room
may need to “migrate” fertile nodes between trees
• Diversity
– set of ancestors are guaranteed to be disjoint
– unclear how much it helps when multiple failures are likely
Randomized vs. Deterministic
Construction
R
R
R
1
2
1
2
3
4
4
3
R
1
2
3
4
5
2
6
1
4
3
5
(b) Deterministic construction
5
6
5
6
(a) Randomized construction
6
Multiple Description Coding
• Key point: independent descriptions
– no ordering of the descriptions
– any subset should be decodable
• Old idea dating back to the 1970s
– e.g., “voice splitting” work at Bell Labs
• A simple MDC scheme for video
– every Mth frame forms a description
– precludes inter-frame coding  inefficient
• We can do much better
– e.g., Puri & Ramachandran ’99, Mohr et al. ‘00
Multiple Description Coding
GOF GOF GOF GOF GOF
n-2 n-1
n n+1 n+2
• Combine:
Rate-distortion
Curve
D(R 1)
D(R 2)
D(R M )
R1
R2
Embedded bit stream
R3
R M-1
…
RM
..
…
…
Bits
…
Packet 1
Packet 2
Packet 3
Packet 4
…
…
…
(M,2)
(M,3)
…
Packet M
(M,M)
code
R0
RS
(M,1)
• Easy to generate if the
input stream is layered
• M = R*G/P
D(R 0 )
Distortion
– layered coding
– Reed-Solomon coding
– priority encoded
transmission
– optimized bit allocation
Adaptative MDC
• Optimize rate points based on loss distribution
– source needs p(m) distribution
– individual reports from each node might overwhelm the
source
• Scalable feedback
–
–
–
–
a small number of trees are designated to carry feedback
each node maintains a local h(m) histogram
the node adds up histograms received from its children…
…and periodically passes on the composite histogram for
the subtree to its parent
– the root (source) then computes p(m) for the entire group
Scalable Feedback
Report
# Desc
Count
0
1
1
0
…
…
16
3
# of Clients
Record at Node N
Description #
N
Report
Report
# clients
# clients
# descriptions
# descriptions
System Architecture
GOF n
Frame 1
Frame 2
Frame 3
…..
…..
Frame 10
Server
Embedded Stream
Prioritizer
Tree
Manager
RD
Curve
FEC
Optimizer Profile
M, p(m),
PacketSize
Packetizer
RS Encoder
M
descriptions
Internet
Embedded
Depacketizer Stream
m≤ M
descriptions
(truncated)
RS Decoder
DePrioritizer
Decoder
Render
GOF
Client
Flash Crowd Traces
• MSNBC access logs from Sep 11, 2001
– join time and session duration
– assumption: session termination  node stops participating
• Live streaming: 100 Kbps Windows Media Stream
–
–
–
–
up to ~18,000 simultaneous clients
~180 joins/leaves per second on average
peak rate of ~1000 per second
~70% of clients tuned in for less than a minute
• possibly because of poor stream quality
Flash Crowd Dynamics
911 Trace: Number of Clients Vs. Time
18000
16000
14000
# of Nodes
12000
10000
8000
6000
4000
2000
0
0
200
400
600
800
1000
Time (Second)
1200
1400
1600
1800
Simulation Parameters
Source bandwidth: 20 Mbps
Peer bandwidth: 160 Kbps
Stream bandwidth: 160 Kbps
Packet size: 1250 bytes
GOF duration: 1 second
# desciptions: 16
# trees: 1, 2, 4, 8, 16
Repair interval: 1, 5, 10 seconds
Video Data
Akiyo
Foreman
Stefan
Standard MPEG test sequences, each 10 seconds long
QCIF (176x144), 10 frames per second
Questions
• Benefit of multiple, diverse trees
• Randomized vs. deterministic tree
construction
• Variation across the 3 video clips
• MDC vs. pure FEC
• Redundancy introduced by MDC
• Impact of repair time
• Impact of network packet loss
• What does it look like?
Impact of Number of Trees
PSNR Vs. Time (Deterministic Algorithm)
35
30
16 Trees
PSNR (dB)
25
8 Trees
4 Trees
20
2 Trees
1 Tree
15
10
5
0
250
500
750
1000
Time (Second)
1250
1500
Impact of Number of Trees
1
0.9
Pdf
0.8
0.7
16 Trees
0.6
8 Trees
0.5
4 Trees
2 Trees
0.4
1 Tree
0.3
0.2
0.1
0
5
10
15
20
PSNR (dB)
25
30
Randomized vs. Deterministic Tree
Construction
0.9
0.8
0.7
PDF
0.6
Deterministic
Randomized
0.5
0.4
0.3
0.2
0.1
0
0
5
10
15
20
PSNR (dB)
25
30
35
Comparison of Video Clips
PSNR Comparison for 3 MPEG Test Sequence Video Clips
35
30
Akiyo-8 Trees
PSNR (dB)
25
Foreman-8 Trees
Stefan-8 Trees
20
Akiyo-1Tree
Foreman-1 Tree
15
Stefan-1 Tree
10
5
0
200
400
600
800
1000
Time (Seconds)
1200
1400
1600
MDC vs. FEC
Redundancy vs. Tree Failure Rate
2.8
1 Tree
2 Trees
4 Trees
8 Trees
16 Trees
Redundancy Factor
2.6
2.4
2.2
2
1.8
1.6
1.4
1.2
1
0
5
10
Tree Failure Rate (%)
15
20
Packet Layout
Impact of Repair Interval
0.9
Impact of Repair Interval
0.8
0.7
100% Graceful (1 sec)
PDF
0.6
10% Ungraceful (5 sec)
0.5
10% Ungraceful (10 sec)
0.4
100% Ungraceful (5 sec)
0.3
100% Ungraceful (10 sec)
0.2
0.1
0
14
16
18
20
22
24
PSNR (dB)
26
28
30
32
Impact of Network Packet Loss
0.9
Impact of Network Packet Loss
0.8
0.7
Loss
Loss
Loss
Loss
PDF
0.6
0.5
rate = 0
rate = 0.1 for 10% of Nodes
rate = 0.01
rate = 0.1
0.4
0.3
0.2
0.1
0
12
17
22
PSNR (dB)
27
32
CoopNet in a Flash Crowd
Single-tree Distribution CoopNet Distribution
with FEC (8 trees)
CoopNet Distribution
with MDC (8 trees)
Heterogeneity & Congestion Control
• Layered MDC
– base layer descriptions and enhancement layer descriptions
– forthcoming paper at Packet Video 2003
• Congestion response depends on location of problem
• Key questions:
– how to tell where congestion is happening?
– how to pick children to shed?
– how to pick parents to shed?
• Tree diversity + layered MDC can help
– infer location of congestion from loss distribution
– parent-driven dropping: shed enhancement-layer children
– child-driven dropping: shed enhancement-layer parent in
sterile tree first
Related Work
• Application-level multicast
– ALMI [Pendarakis ’01], Narada [Chu ’00], Scattercast
[Chawathe’00]
• small-scale, highly optimized
– Bayeux [Zhuang ’01], Scribe [Castro ’02]
• P2P DHT-based
• nodes may have to forward traffic they are not interested in
• performance under high rate of node churn?
– SplitStream [Castro ’03]
• layered on top of Scribe
• interior node in exactly one tree  bounded bandwidth usage
• Infrastructure-based CDNs
– Akamai, Real Broadcast Network, Yahoo Platinum
– well-engineered but for a price
• P2P CDNs
– Allcast, vTrails
Related Work (Contd.)
• Coding and multi-path content delivery
– Digital Fountain [Byers et al. ‘98]
• focus on file transfers
• repeated transmissions not suitable for live streaming
– MDC for on-demand streaming in CDNs
[Apostolopoulos et al. ’02]
• what if last-mile to the client is the bottleneck?
– Integrated source coding & congestion control
[Lee et al. ’00]
Summary
• P2P streaming is attractive because of selfscaling property
• Resilience to peer failures, departures,
disconnections is a key concern
• CoopNet approach:
– minimal demands placed on the peers
– redundancy for resilience
• multiple, diverse distribution trees
• multiple description coding
Ongoing and Future Work
• Layered MDC
• Congestion control framework
• On-demand streaming
• More info:
research.microsoft.com/projects/coopnet/
• Includes papers on:
–
–
–
–
case for P2P streaming: NOSSDAV ’02
layered MDC: Packet Video ’03
resilient P2P streaming: MSR Tech. Report
P2P Web content distribution: IPTPS ‘02