CStream: Neighborhood Bandwidth Aggregation For Better Video Streaming

55
CStream: Neighborhood Bandwidth Aggregation For Better Video Streaming Thangam Vedagiri Seenivasan Advisor: Mark Claypool Reader: Robert Kinicki 1 M.S. Thesis Presentation

description

CStream: Neighborhood Bandwidth Aggregation For Better Video Streaming. Thangam Vedagiri Seenivasan Advisor: Mark Claypool Reader: Robert Kinicki. M.S. Thesis Presentation. Motivation. Increasing popularity of video streaming. [Cisco survey 09’]. Video traffic. Video traffic. 2009. - PowerPoint PPT Presentation

Transcript of CStream: Neighborhood Bandwidth Aggregation For Better Video Streaming

Page 1: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

1

CStream: Neighborhood Bandwidth Aggregation For Better Video Streaming

Thangam Vedagiri SeenivasanAdvisor: Mark ClaypoolReader: Robert Kinicki

M.S. Thesis Presentation

Page 2: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

2

Motivation• Increasing popularity of video streaming

25%75%

50%50%2009 2012

• Clients still have limited Internet bandwidthDialup, DSL 3G

128 Kbps to 3 Mbps 384 Kbps to 2 Mbps

Video streaming still a challenge

[Cisco survey 09’]

• High definition videos Encoding rate: 8 Mbps to 20 Mbps

Video traffic Video traffic

Other traffic

Other traffic[Internet traffic] [Internet traffic]

Page 3: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

3

MotivationHigh density of Internet connections

Potential unused bandwidth most of the time

even in this room!!

Idle users = spare bandwidth

Page 4: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

4

Motivation• Devices have multiple network interfaces

Device can connect to nearby nodes at the same time it is connected to Internet

Can form ad-hoc networks

Page 5: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

5

CStream – Collaborative StreamingAggregates bandwidth from multiple clients in a neighborhood

for video streaming

InternetCStream Video

Server

CStream Video Player

Frame 2 Frame 3

Frame 1

Page 6: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

6

Related Work• Download Accelerators [Rodriguez et al. 00’]

– Multiple connections to mirrored servers• Multi-homing [Chebrolu et al. 06’]

– Multi-homed devices, with multiple interfaces– Aggregate bandwidth from multiple interfaces

• COMBINE [Ananthanarayanan et al. 07’]

– Aggregate bandwidth in phones for HTTP download of large files

• Link Alike [Jakubczak et al. 08’]

– Improve client upload capacity for file transfer

Page 7: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

7

Outline

• Motivation• Challenges• Design• Implementation• Evaluation• Future Work• Conclusion

Page 8: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

8

Challenges

• Neighbor discovery and maintenance– Find and connect to neighbors– Updated knowledge of neighbor status

• Multi-path streaming– Stream through multiple nodes– Frame distribution across links– Effectively utilize available bandwidth

Page 9: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

9

Challenges

• Handle dynamically changing neighborhood– Adapt to neighbors joining and leaving– Use the bandwidth of new neighbors joining– Tolerant to neighbors leaving abruptly

• Buffering and Playing– Buffering mechanism– Discard late frames (I-policy) or Wait for late frames

(E-policy)

Page 10: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

10

Outline

• Motivation• Challenges• Design• Implementation• Evaluation• Future Work• Conclusion

Page 11: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

11

DesignVideo

Database

Neighbor Manager

Helper Manager

ProxyVideo Plan Manager

Buffer ManagerVideo

Player

Frame DistributorPlan Handler

UpdateFrames

Frames Frames

Frames

Wireless ad-hoc network

Videoquery

Plan

Video

Neighbor

Client

Plan

Meta data

Request

I-CAN-HELP

Video Server

Page 12: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

12

Client

• Neighbor manager– Keeps updated knowledge of active neighbors– Informs the Video Plan Manager about change in

neighborhood– Receives frames from the neighbor and forwards to

the Buffer Manager• Video Plan Manager– Informs the server about the active neighbors (IP

Address, Port to stream) - streaming plan– Dynamically updates streaming plan based on input

from Neighbor Manager

Neighbor Manager

Video Plan Manager

Buffer ManagerVideo

Player UpdateFrames

Neighbor Manager

Video Plan Manager

Page 13: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

13

• Buffer Manager– Receives frames from the server– Receives frames from the neighbor through the

Neighbor Manager– Maintains playout buffer

• Video Player– Extracts frames from the Buffer Manager and

plays it– Implements E-policy (wait for late frames)

ClientNeighbor Manager

Video Plan Manager

Buffer ManagerVideo

Player UpdateFrames

Neighbor Manager

Video Plan Manager

Buffer ManagerVideo

Player

Page 14: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

14

DesignVideo

Database

Neighbor Manager

Helper Manager

ProxyVideo Plan Manager

Buffer ManagerVideo

Player

Frame DistributorPlan Handler

UpdateFrames

Frames Frames

Frames

Wireless ad-hoc network

Videoquery

I-CAN-HELP

Plan

Video

Neighbor

Client

Plan

Video Server

Page 15: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

15

Neighbor• Proxy– Receives frames from the server– Sends to the client

• Helper Manager– Sends periodic I-CAN-HELP messages that it is

willing to collaborate– Stops when there is user and network activity

Helper Manager

ProxyProxy

Helper Manager

Page 16: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

16

DesignVideo

Database

Neighbor Manager

Helper Manager

ProxyVideo Plan Manager

Buffer ManagerVideo

Player

Frame DistributorPlan Handler

UpdateFrames

Frames Frames

Frames

Wireless ad-hoc network

Videoquery

Plan

VideoVideo Server

Neighbor

Client

Plan

I-CAN-HELP

Page 17: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

17

Video Server• Frame Distributor– Runs a frame assignment module – Sends assigned frames to client and neighbors– Assignment adapts to the bandwidth of each

client• Plan Handler– Receives dynamic plan about active neighbors

from the client– Updates the Frame Distributor to adapt streaming

to the changing neighborhood

Video Database

Frame DistributorPlan HandlerPlan

Video

Frame DistributorPlan Handler

Page 18: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

18

Outline

• Motivation• Challenges• Design• Implementation• Evaluation• Future Work• Conclusion

Page 19: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

Implementation

• Neighbor Management• Frame Distribution• Adapting to changing neighborhood– Neighbor joining– Neighbor leaving

• Buffering and Playing

19

Page 20: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

20

Neighbor Management

SSID: CStream

Ad-hoc networkAd-hoc network

I-CAN-HELP I-CAN-HELPPlan

Video Server

Client

REQUEST

Frames

Frames

Frames

Page 21: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

21

Frame Distribution1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3

1 2 3

456

4

Frames

Thread - N1 Thread - C Thread - N2

5TCP 6

Neighbors N1 and N2

1 245

1

Page 22: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

22

Neighbor Joining

Page 23: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

23

Neighbor Joining7 8 9 10 11 12 13 14

1 2 34

Frames

Thread - N1 Thread - C Thread - N2

5TCP 6 7

Thread – N3

7

New neighbor N3

245

1

Page 24: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

24

Neighbor Leaving

Page 25: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

25

Neighbor Leaving8 9 10 11 12 13 14

3

Frames

Thread - N1 Thread - C Thread - N2

5TCP 6 7

Thread – N3

Neighbor N1 leftLast Frame Received - 1

6

6

6

245

1

CStream is fault-tolerant

Page 26: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

26

Buffering Policy (E-policy)

• Initial Buffering before first frame played– Playout buffer: n seconds (2 sec in our

implementation)– Wait till (n * encodedFrameRate) frames buffered

• Stop and Rebuffering– frame to be played, not arrived

• Resume video after rebuffering– 2 seconds of frames from the current frame to be

played received

Page 27: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

27

Outline

• Motivation• Challenges• Design• Implementation• Evaluation• Future Work• Conclusion

Page 28: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

28

CStream

• Built the complete system– Video Server, Neighbor, Client Video Player

• C# .NET– 3000 lines of code

• AVI Video Library– Extract frame by frame from avi files

[C. John, CodeProject]

Page 29: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

29

Experimental Setup

BRIDGE

SERVER

Netem, CBQ

CLIENT NEIGHBORNEIGHBOR

WPI LAN

Ad-hoc networkAd-hoc network

Ethernet

Page 30: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

30

Experiment Parameters• Bandwidth from the video server

– Class based queuing discipline, Netem– 250 Kbps, 500 Kbps, 1 Mbps, 2 Mbps, 3 Mbps, 5 Mbps– Equal bandwidth, Unequal bandwidth for nodes

• Number of neighbor nodes– 0, 1, 2

• Location of neighbor nodes– Signal Strength: Excellent, Good, Weak

• Video Content– Short Video– Long Video

Page 31: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

31

Video Content

Short Videocartoon_dog.avi

Long Videoforeman.avi

Length 8 seconds 33 secondsSize 10 MB 26 MB

Encoded bitrate 10Mbps 6.3MbpsFrames per second 15 12Average Frame Size 85 KB 68 KB

Total Frames 120 400Resolution 320×240 176×144

Page 32: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

32

Performance Metrics• Aggregate Throughput (Kbps)– Application throughput at the client node

• Playout Time– Total time to play the entire video

• Startup Delay– Time taken to play the first frame

• Rebuffer Events– Number of stop and buffer events

• Frame Distribution– Contribution of each node vs. ratio of bandwidth

Page 33: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

33

0 1 20

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

11000

239 486 734477

962

1430

938

1854

2806

1767

3472

5411

2576

5047

7096

3754

7396

11047

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Thro

ughp

ut (K

bps)

Throughput (Short Video)

Per Host Capacity

Constraint

Almost 2x improvement with 1 neighborAlmost 3x improvement with 2 neighbors

Client and Neighbors have same bandwidthNeighbors had excellent signal strength to the client

Page 34: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

34

0 1 20

2000

4000

6000

8000

10000

238483

726476

955

1434

932

1854

2778

1777

3558

5338

2611

5045

7624

3902

7437

10925

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Thro

ughp

ut (K

bps)

Throughput (Long Video)

Per Host Capacity

Constraint

Client and Neighbors have same bandwidthNeighbors had excellent signal strength to the client

Page 35: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

35

Playout Time

0 1 20

100

200

300

400

500

600

700

800

900898.88

442.59

294.7

448.28

224.75

150.08

230.2

116.677.42

121.36

61.1340.56

83.4443.44 35.5756.04 35.32 34.85

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Play

out ti

me

(s)

Page 36: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

36

Startup Delay

0 1 20

10

20

30

40

5052.97

26.4

17.9

26.69

13.68

9.57

13.94

7.325.12

7.58

42.95

6.332.94 2.373.65 2.12 1.65

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Star

tup

Dela

y (s

)

Page 37: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

37

Rebuffer Events

BandwidthNeighbors

0 1 2

250 Kbps 15 14.3 14

500 Kbps 15 13 12

1 Mbps 13 11 9

2 Mbps 11 6.6 2

3 Mbps 9 2.6 0

5 Mbps 6 0 0

Maximum Rebuffer Events - 15

Need three 3 Mbps links or two 5Mbps links to stream without rebuffering

Page 38: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

38

Frame DistributionExpected Actual Expected Actual Expected Actual Expected Actual

Client – 2 MbpsNeighbor– 2 Mbps

Client– 2 MbpsNeighbor– 1 Mbps

Client– 2 MbpsNeighbor1 – 2 MbpsNeighbor2– 2 Mbps

Client – 3 MbpsNeighbor1– 2 MbpsNeighbor2 – 1 Mbps

Page 39: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

39

Short Video – 0 Neighbors

Experiment Client – 2 Mbps

Page 40: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

40

Short Video – 1 Neighbor

Experiment Client – 2 Mbps

Neighbor1 – 2 Mbps

Page 41: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

41

Short Video – 2 Neighbors

Experiment Client – 2 Mbps

Neighbor1 – 2 MbpsNeighbor2 – 2Mbps

Page 42: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

42

0 10 20 30 40 50 60 70 800

1000

2000

3000

4000

5000

6000

7000

Time (s)

Thro

ughp

ut (l

ast 2

0 fr

ames

)Kb

ps

Neighbors Joining

1st Neighbor joined

2nd Neighbor joined

Experiment: Long Video, Client – 2 Mbps, Neighbor1 – 2 Mbps, Neighbor2 – 2 Mbps

1787 kbps

3576 kbps

5747 kbps

Page 43: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

43

0 10 20 30 40 50 60 700

1000

2000

3000

4000

5000

6000

7000

Time (s)

Thro

ughp

ut (l

ast 2

0 fr

ames

)Kb

ps

Neighbor Leaving1st Neighbor left

2nd Neighbor left

5653 kbps

3773 kbps

1781kbps

Experiment: Long Video, Client – 2 Mbps, Neighbor1 – 2 Mbps, Neighbor2 – 2 Mbps

Page 44: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

44

Neighbor Joining and Leaving

Experiment Client – 3 Mbps

Neighbor1 – 3 Mbps

Page 45: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

45

Impact of Wireless

0

500

1000

1500

2000

2500

3000

3500 3509

2395

1977

Aggr

egat

e Th

roug

hput

(Kbp

s)

Wireless Signal Strength

ExcellentIperf – 13 Mbps

GoodIperf – 980 Kbps

PoorIperf – 520 Kbps

Bandwidth contributed by Neighbor Min (Internet Bandwidth, Wireless Bandwidth)=

Experiment Client – 2 Mbps

Neighbor1 – 2 Mbps

Page 46: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

46

Future Work

• Better frame distribution algorithm– Solve out of order frame reception

• Other video types (MPEG)• Include audio stream • Extend CStream to support video scaling• CStream system for smart phones – Aggregate the 3G internet bandwidth

Page 47: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

47

Conclusion

• Designed and built CStream– Aggregate bandwidth from neighbors for better

video streaming• Effectively utilizes available bandwidth• Dynamically handles changes in neighborhood• Detailed evaluation– Throughput, Playout Time, Startup Delay, Rebuffer

Events, Frame Distribution

Page 48: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

48

Thank You

Questions?

Page 49: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

49

Backup

Page 50: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

50

Short Video

Page 51: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

51

0 1 20

1000

2000

3000

4000

5000

6000

7000

239486 734477

962

1430

938

1854

2806

1767

3472

5411

2576

5047

7096

2739

5150

7354

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Thro

ughp

ut (K

bps)

Throughput

Per Host Capacity

Constraint

Page 52: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

52

Playout Time

0 1 20

50

100

150

200

250

300

350

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Play

out ti

me

(s)

Page 53: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

53

Startup Delay

0 1 20

10

20

30

40

50

60

70

80

250 Kbps500 Kbps1 Mbps2 Mbps3 Mbps5 Mbps

Number of Neighbors

Star

tup

Dela

y (s

)

Page 54: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

54

Rebuffer Events

BandwidthNeighbors

0 1 2

250 Kbps 3 3 3

500 Kbps 3 3 3

1 Mbps 3 3 2

2 Mbps 3 2 1

3 Mbps 2 1.3 1

5 Mbps 2 1 0

Maximum Rebuffer Events - 3

Page 55: CStream: Neighborhood Bandwidth  Aggregation For Better Video Streaming

55

Frame DistributionExpected Actual Expected Actual Expected Actual Expected Actual

Client – 2 MbpsNeighbor– 2 Mbps

Client– 2 MbpsNeighbor– 1 Mbps

Client– 2 MbpsNeighbor1 – 2 MbpsNeighbor2– 2 Mbps

Client – 3 MbpsNeighbor1– 2 MbpsNeighbor2 – 1 Mbps