120 likes | 243 Vues
Effective Utilization of User-Contributed Resources in Peer-Assisted Video-on-Demand Systems. HONGYANG LI, R esearch Intern at University of Victoria, Victoria, BC, Canada 2012. 8 – 2012.9 Under the Supervision of Dr. Pan and Le . From Dalian University of Technology, Liaoning, China.
E N D
Effective Utilization of User-Contributed Resourcesin Peer-Assisted Video-on-Demand Systems HONGYANG LI, Research Intern at University of Victoria, Victoria, BC, Canada 2012. 8 – 2012.9 Under the Supervision of Dr. Pan and Le From Dalian University of Technology, Liaoning, China
Effective Utilization of User-Contributed Resources in PA-VoDSystems Project Background • Computer Networks – Peer to Peer(P2P) Network • Each peer(computer) acts as a client/server for others; • Allows shared access to various resources; • No need for a central server; • Requires every peer to use the same or a compatible program; FOR RESOURCE SHARING ! • Peer-assisted video-on-demand (PA-VoD) systems • VoD System vs. Live Streaming ? • VoD Enables you to create a library of your own videos • - watch it anytime, any content CACHE MANAGEMENT • Two options of VoD: • streaming video on demand; downloadable VOD
Descriptions and Assumptions Effective Utilization of User-Contributed Resources in PA-VoDSystems Model and Algorithms • Two categories in the system: HD or SD users. rS=500MKbps; rH=1000 • Each peer holds a different uploadLimit, 400, 500, 800. While downloadLimit is infinite. • Peer has a fixed cache size of 1GB, which can store 1 HD movie or 2 SD movies(512M). Movie-(Group Segment, 512)-Segment(64Kb)-Block(1Kb) Local Cache Window (size = 15segs) Time Old Seg 1: 3: 404 Seg 1: 3: 418 Seg 6: 5: 38 Seg 6: 5: 39 Seg 1: 3: 402 Seg 1: 3: 403 One block (pack) 1Kb 1Kb 1Kb Principals for being a Helper: Must watch a SD segment now; why? Must have HD contents. lastPointer Playback point For a SD movie, 16*512*64Kb = 512M HD, 32*512*64Kb = 1G A HD viewer will never be a helper; A SD viewer who has NO HD contents can’t neither.
Effective Utilization of User-Contributed Resources in PA-VoDSystems Assumea typical SD chain: Model and Algorithms Peer 4 P13 P67 P2 500 400 400 Inner-chain Help 800 400 400 500 100 100 After peers on the chain are satisfied, a inter-chain help is launched. Two things must keep in mind: Cache Management; Bandwidth Allocation
Effective Utilization of User-Contributed Resources in PA-VoDSystems Assumea typical SD chain: Model and Algorithms Peer 4 P25 P50 P13 P67 P4 P2 P1 500 800 800 400 500 400 Inner-chain Help Inter-chain Help 800 800 400 800 400 500 500 400 100 100 After peers on the chain are satisfied, a inter-chain help is launched. Two things must keep in mind: Cache Management; Bandwidth Allocation 100 HDchain: (first inner help also) 100 200 500 Any questions now? From the SERVER, a peer who has infinite uploadLimit and any contents. In this case, SBC = 200+500 = 700MKps
Effective Utilization of User-Contributed Resources in PA-VoDSystems Model and Algorithms Two fatal shortcomings of the previous model : HD viewers can only ask CERTAIN helpers, because of content bottleneck. Global info of the system is unknown(This is a distributed network, in real world), so getting the full chain list is not feasible. Solutions: a. Use Substream1. b. Each peer only gets 5-10 neighbor peers’ information. (code design) • Divide every HD seg into 8 parts, each Substream size= 8Kb*numOfSeg • Each helper can help any HD viewer if it has abundant bandwidth within a movie channel! Time Old Local Cache HD SEGS SD SEGS S1 S3 S2 S4 S5 Ss2 Ss8 Ss1 …… 1 “View-Upload Decoupling: A Redesign of Multi-Channel P2P Video Systems”, Di Wu, Chao Liang, Yong Liu and Keith Ross. INFOCOM, 2009
Effective Utilization of User-Contributed Resources in PA-VoDSystems Tools: Python, Matlab and PlanetLab Peer 1: 1. RR Peer 2: 3. SC Leaky Bucket • P1 makes a ‘RR’ package and P2 receives the msg. • Through receiveManager, call self.replyToAskRate(ip, port, rate) function. • P2 sends ‘CP’ package back to P1, and P1 calls replyToRateOfferedfun. • If the offered-rate is over 64(Kb), start connection; else, stop connection. • Once connected, send segment, data management and update peerlist. Recv Msg And Update PL DATA 2. CP Send seg Socket, Multi-Thread, Network programming, classes, Object-oriented programming!
Effective Utilization of User-Contributed Resources in PA-VoDSystems Tools: Python, Matlab and PlanetLab Codes Block Diagram • Playback: • Plays movie if segment is available Connection: Connects two peers according to recvMan order. + The above chart is made by Tushar, modified by Francis
Effective Utilization of User-Contributed Resources in PA-VoDSystems Tools: Python, Matlab and PlanetLab • peer.py – the main thread and beginning of all files.
Effective Utilization of User-Contributed Resources in PA-VoDSystems Tools: Python, Matlab and PlanetLab • receiveManager.py – Receive request packets from other peers and execute corresponding functions based on msgtype.
Effective Utilization of User-Contributed Resources in PA-VoDSystems Tools: Python, Matlab and PlanetLab • packetMaker.py - Make packets for different requests. defmakeHearBeatMessage(self): …… pack = struct.pack('!6s2sHHHHH', 'ECS404', 'HB', 8, watchingMovie, …, helpSeg) return pack How to unpack them? In the receiveManager.py! checkpack, addr = self.peer.s.recvfrom(1024) msgdata = checkpack[10:10+msglen] watchingMovie = struct.unpack('!H',msgdata[0:2])[0] watchingSeg = struct.unpack('!H',msgdata[2:4])[0]
Effective Utilization of User-Contributed Resources in PA-VoDSystems Related and Future Work To do list: • Modify the codes and deploy the files on PlanetLab; • Simulation results(bandwidth efficiency, SBC, etc.) • Try different models. And a few more thanks… HOMEPAGE (FOR FUN): http://francislee2020.weebly.com E-MAIL: hongyangli2020@gmail.com AND I stick to the webb!!haha:D