Title: NUS'SOC'CS5248
1Previously, on CS5248..
2Idea
- Adjust sending rate based on network conditions
3Part 1 Detecting Congestion
- Bolot and Tulertti
- if median loss rate gt threshold then
- decrease rate
- else
- increase rate
4Part 1 Detecting Congestion
- Busse, Deffner and Schulzrine
- if a lot of congested receivers
- decrease rate
- if a lot of unloaded receivers
- increase rate
- else
- do nothing
5Multiple receivers
- Heterogeneity Issues
- Scalability Issues
- (Another Lecture..)
THIS
6Todays Lecture
7- McCanne, Jacobson, and Vetterli
- "Receiver-driven layered multicast,"
- ACM SIGCOMM 96
- Wu, Sharma, and Smith,
- "Thin Streams An architecture for multicasting
layered video, - NOSSDAV 97
8Todays Lecture
9- Amir, McCanne, and Zhang.
- "An application level video gateway."
- ACM MM 95
10Todays Lecture
11- Bolot, Turletti, and Wakeman.
- "Scalable feedback control for multicast video
distribution in the internet," - ACM SIGCOMM 94.
12Todays Lecture
13Receiver-Driven Layered Multicast
- McCanne, Jacobson Vetterli
- SIGCOMM 96
14Internet Heterogeneity
2 Mbps
56kbps
40kbps
15Heterogeneous Clients
- How to satisfy receivers with different
requirements?
16Method 1 Simulcast
17Method 2 Rate Adaptation
18Method 3 Layered Multicast
Layer 1
Layer 2
Layer 3
19Layering Scheme
20Layering Scheme
21Layering Scheme
30
8
2
30
8
2
0
30
-6
-1
0
0
-6
-1
1
0
0
0
1
0
0
0
0
22Layering Scheme
- Fine Granularity Scalability (FGS)
1 1 0 0 0 0 0 0
1 1 1 0 0 0 1 0
1 0 0 1 0 1 0 1
1 0 0 0 0 1 0 0
23Layered Multicast
- 1 Layer 1 Multicast Group
- Receiver subscribes to as many layers as desired
24RLM Example
25Question
- How many layers is enough?
26Solution Join Experiment
- highest layer 1
- join layer 1
- while no packet loss
- highest layer
- join next layer
- leave highest layer
- highest layer --
27Details
- Tjoin
- Time between join experiments
- Tdetect
- Time taken to detect packet loss
28Effects of Tjoin
- Need to converge to the right level quickly
- Tjoin should be small
- Repeated failed experiments congest networks
- Tjoin should be large
29Adapting Tjoin
- One Tjoin per layer
- if join experiment for layer k fails Tjoin(k)
Tjoin(k)2
30Example
4
3
2
1
31Adapting Tdetect
- Set Tdetect to large initial value
- Estimate Tdetect with mean and deviation
- Mesure time between join and packet loss occur
32Two Problems
33Problem 1 Interference
34Problem 1 Interference
I see, layer 2 is bad for me..
35Problem 2 Scalability
- Lots of receivers
- Lots of experiments
- Lots of congestions
36Solution Shared Learning
I am joining layer 2, do not disturb!
37Solution Shared Learning
38Solution Shared Learning
I am joining layer 3, do not disturb!
39Solution Shared Learning
I see, layer 3 is bad for me..
40Shared Learning
- Conservative learn from failure not success
- Improve convergence time
- Give priority to low-layer experiments
41Evaluation
42Evaluation
43Problems
- Failed join experiments are bad
- Interference across sessions?
44Thin Streams
- Linda Wu, Rosen Sharma and Brian Smith
- NOSSDAV 97
45Problems
- Failed join experiments are bad
- Interference across sessions?
46How bad is failed experiments?
- R sending rate of a layer
- Tj IGMP join latency
- Tl IGMP leave latency
- Buffer space at the router
- R(Tj Tdetect Tl)
-
47Reduce Buffer Space
- Reducing R
- Many layers, each with small bandwidth
- Reducing Tl
- Sharma designed IGMP v2.0
- Reducing Tdetect
- Rely on throughput rather than congestions
48Reducing Tdetect
- Detect congestion before packet drops
- E Expected Throughput
- A Actual Throughput
49Calculating A E
- R bandwidth of one layer
- I measurement interval
- N number of bytes received in I
- G number of layers joined
- A aA (1-a)N/I
- E aE (1-a)GR
50Thin Streams Join-Leave Algo
- do every I seconds
- if (E-A) gt Cleave
- leave
- else
- if (E-A) lt Cjoin and
- time since last leave gt Twait
- join
51More Parameters
- Twait and Cleave
- Affect convergence rate and fairness
- Large G small Cleave large Twait
-
52Problems
- Failed join experiments are bad
- Interference across sessions?
53Interference Across Sessions
- Synchronize join experiments within session
- Reduce period of congestions
54Interference Across Sessions
- Desynchronize join experiments across session
55Estimating IGMP Leave Latency
Time between join and first packet
Time between leave and join
56RLM/ThinStreams Problems
- Need lots of multicast addresses
- Need support from codec
- Does not solve format heterogeneity problem
57Todays Lecture
58Application-Level Media Gateway
- Amir, McCanne, Zhang ACM MM 95
59Gateway Architecture
H.261 128kbps
MJPEG 6Mbps
60Recall..
- Motion-JPEG
- Every frame is a JPEG
- H.261
- I-Frames and P-Frames
61Intra-H.261
- Motion compensation too complicated
- Use conditional replenishment
62Conditional Replenishment
63Conditional Replenishment
64Conditional Replenishment
65How to transcode?
JPEG
Uncompress
Dequantize
IDCT
Compress
Quantize
DCT
Replenish
h261
66How to transcode?
JPEG
Uncompress
Dequantize
IDCT
Compress
Quantize
DCT
Replenish
h261
67Short Cut!
JPEG
Uncompress
Dequantize
IDCT
Replenish
Compress
Quantize
DCT
Replenish
h261
68Compressed-domain Processing
31
8
2
0
30
8
2
0
-6
-1
0
0
-6
-1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
69Other CDP
- Changing Resolutions
- Color Subsampling
- 422 to 420
70Evaluation
- Frame rate improvement
- 12.9 fps to 33.3 fps (low motion)
- 6.9 fps to 21.4 fps (high motion)
71Todays Lecture
72Scalable Feedback
- Bolot,Turletti Wakeman SIGCOMM 95
73Problem
- How can a large number of receivers feedback to
the sender? - How to know the number of receivers?
74Three Approaches
- Probabilistic Query
- Randomly Delayed Responses
- TTL Scoped Search
75BTWs Idea
- Sender and receivers each generate random key of
i bits - Ksend Key of sender
- Kk Key of receiver k
76Sender Probe
- Multicast probe(Ksend, m)
- if Kk matches m most significant bits of Ksend
- reply to sender
77High-Level Mechanism
- foreach epoch
- generate Ksend
- for round j 0 to i
- send probe(Ksend, i j)
- if enough responses
- break
- wait to start next epoch
-
78The Details
Senders Key (Ksend)
79The Details
Number of bits to match (m)
80The Details
SIZESOLICITED I need to estimate the size
81Soliciting Size
- Sender
- set SIZESOLICITED to 1 at the beginning of an
epoch - Receiver
- reply if key matches
82Estimating Number of Receivers
- Overview
- Calculate EX, average number of rounds to first
reply - Express n f(EX)
-
83Estimating Num. of Receivers
- Pj
- Prob. that 1st reply in round j
- i
- Number of bits in key
- Reply in round j match i-j MSB
84Estimating Num. of Receivers
- if j 0 then
-
- Pj 2-i
- else
- Pj 2j-1/(2i-2j-1)
850000 1000 0001 1001 0010 1010 0011 1011 0100
1100 0101 1101 0110 1110 0111 1111
86Estimating Num. of Receivers
- rj Num. of replies in round j
- P(rj gt 0 rj-1 0) 1-(1-pj)n
- P(rj-1 0) (1 2j-1-i)n
- P(rj gt 0 rj-1 0) F(j)
- 1-(1-pj)n(1- 2j-1-i)n
87Estimating Num. of Receivers
88Expected Round
n
log EX
89Estimating Num. of Receivers
90The Details
current worst state Congested, Loaded, Unloaded
91Reporting State
- Sender
- send current worst state
- Receiver
- if key matches and
- if my state is worse than senders state, reply
with my state
92The Details
maximum RTT
93Usage of RTT
- Receiver
- After responding, keep quite for a period of RTT
- Sender
- Time between rounds 2RTT
94The Details
RTTSOLICITED I need to estimate RTT
95The Details
rttshft reply after random 0..(1ltltrttshft)
96Estimate RTT
- Receiver
- T uniform(0, 2rttshft)
- Wait for T
- Reply with probes timestamp T
- Sender
- Set RTT to the worst received smoothed with
moving average
97Todays Summary
98Heterogeneity and Scalability
- Handle receivers with different requirements
- RLM, Thin Streams
- Transcoding in Middleboxes
- Communicate with lots of receivers
- Random helps!
99Survey/Project Topics
- Better layered multicast schemes
- Estimating multicast session size
- More scalable feedback algorithms