presenter : kuei -yu hsu advisor : dr . kai-wei ke oral defense date : 2014/7/30
DESCRIPTION
點對點即時串流分享傳輸系統之研製與效能 評估 Implementation and performance evaluation of a Peer-to-Peer Real-time streaming media system. Presenter : Kuei -Yu Hsu Advisor : Dr . Kai-Wei Ke Oral Defense Date : 2014/7/30. Outline. Introduction Network Structure Multicast Transmission P2P Streaming System - PowerPoint PPT PresentationTRANSCRIPT
Implementation and Performance Evaluation of a Peer-to-Peer Real-time streaming media system
Implementation and performance evaluation of a Peer-to-Peer Real-time streaming media systemPresenter: Kuei-Yu HsuAdvisor: Dr. Kai-Wei KeOral Defense Date: 2014/7/301OutlineIntroductionNetwork StructureMulticast Transmission P2P Streaming SystemOverlay NetworkMPEG-2 Transport StreamSystem ImplementationStreaming Encode moduleNetwork Management moduleStreaming Transfer moduleRouting Algorithm moduleStreaming Decode moduleSystem Result & EvaluationConclusion2Introduction33Network Structure(Client-Server)
4userstreaming applicationvideoaudiocontentbandwidthANYONE can access the video/audio content freely from Internet ANYTIME and ANYWHERE.client-serveruseruserapplicationsserverconnectionperformance, scalabilitycost
4Network Structure (cont.)(Content Delivery Network, CDN)(Cluster)(Distributed)
5serverclientservercontentsCDNclientserverclientserverclientCDNserverproxy server
CDN Benefits:Maximizing bandwidth utilizationReducing the response time for the end-usersAchieving higher throughput through replicating content---
clientpeerserverpeerstoragebandwidth
5Network Structure (cont.)(Peer-to-Peer, P2P)
6Network Structure (cont.) Hybrid CDN-P2P
7p2pCDN-P2P7Multicast Transmission (cont.)8(IP Multicast, IPM)Internet Group Management Protocol (IGMP)
8Multicast Transmission(Application Layer Multicast, ALM)IPM9
ALMP2PIP multicast
IPP2PIP
9Overlay Network10
(Overlay Network)
10P2P Streaming System (Push)
11
11P2P Streaming System (Pull)
12
---
12MPEG-2 Transport Stream13MPEG Bit Stream:Elementary stream (ES): MPEG-2access unitsESDigital Control DataDigital Audio (sampled and compressed)Digital Video (sampled and compressed)Digital Data (synchronous, or asynchronous)
Packetized elementary stream(PES): PacketizerES14ES:access units: video frameFor example, in video, an access unit will usually be a complete encoded video frame
Packetizer: a video compressor or data formatted14Two Kind of Data StreamingProgram Stream(PS): PS(Program)DVD
Transport Stream(TS):188 bytesTS(Program)DVB-TIPTV
PESPESPESPSTSTSPES1 Part1PES1 Part2TSPES1 Part3TSPESn Partm15TS15Single Program TS process
1616Multiple Programs TS process
17TS Packet Encapsulation (cont.)TSIP/UDP/RTPEthernet1370 bytesUDP7188 bytesTS
(14 bytes + 20 bytes + 8 bytes + 12 bytes) + 188 bytes * 7 = 54 bytes overhead + 1316 byte payload = 1370 bytes
18TS Packet Encapsulation
7 TS packets19 TS Header AnalysisTS188 bytes = 4 bytes header + 184 bytes payloadTS:Sync Byte: Packet Identifier (PID): (e.q. Video, Audio)Continuity Counter(CC): 0~15TSProgram Counter Reference(PCR):
20TS188 bytes = 4 bytes header + 184 bytes payloadAdaption FieldTSpayload
1. : TS Header8 bitsSync Byte0x47Sync Byte188 bytesTS
2. ID: PID13 bitsTSESAudio ESVideo ESPIDPIDTS
3. : CC4 bits (0~15)
4. : PCRRTPtimestampAdaption FieldTS20System Implementation21System interaction5
:::::
22multisource22System modules flow
23Streaming Encode moduleVLC command-line
> vlc -I dummy vvv input-stream --sout "#transcode{vcodec=h264,vb=800,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{dst=127.0.0.1,port=5004,mux=ts}> vlc -I dummy vvv dshow:// --sout "#transcode{vcodec=h264,vb=800,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{dst=127.0.0.1,port=5004,mux=ts}24VLC command-linevlc24System modules flow
25Network Management module(Input/Output Completion Port, IOCP)Windows(Input/Output)IOCPMicrosoftWindowsAPI(asynchronous)(multiple thread)I/OI/OWindowsI/O
26I/O IOCPWinSock(Windows Socket)26IOCP Asynchronous:I/O:
27IOCP Architecture & flowIOCP(thread pool)I/OI/O
2828System modules flow
29Streaming Transfer moduleRTP
30Streaming Transfer module(overflow)(empty)
3131Streaming Transfer module2333
3232System modules flow
33Routing Algorithm module
: ALM(Distributed Multisource Forwarding Trees, DMFT)(Cluster-based Distributed Multisource Forwarding Trees, CDMFT)
: BitTorrent3434DMFT(Neighbor Information Table, NIT):NIT
(Data Forwarding Table, DFT):DFTNITMember IPHop CountIPDFTSource IPNext Peers IPParent IP3535Five MechanismNIT(Heart Beat, HB)36Update NIT (cont.)NITNIT
3737Update NIT
3838
39
40
4141DMFT flow chart
(1) Member Join(2) Construct Routing Tree(3) Prune Duplicate Path(4) Recover Tree Structure(5) Inquire at regular time42CDMFT(Cluster-based Distributed Multisource Forwarding Trees, CDMFT)CDMFT
43Pull-based Streaming SystemBitTorrentRTP44
System modules flow
45Streaming Decode moduleVLC-Qt LibraryVLC media playerQt C++VLC-Qt LibraryQtLibVLC LibraryQtQt: SkypeVLC media playerAdobe Photoshop ElementsVirtualBoxLibVLC LibraryVLC media playerLibVLC: FreeTuxTVKamosoSopCast Player
46System Result & Evaluation47P2P Streaming System
48Streaming Media Dialog
49Testing Environment6:Catalyst 3560-eight portsCisco 1800 Series-two ports94
50Testing ToolsWireshark:TelephonyRTPPacket loss
TSReader:TSContinuity Error
51Test MethodsP2PP2P(Multiple Unicast)(Packet loss)(Continuity)NetLimiterP2P
52
53
P2P systemVLC UnicastUnicast streaming54
P2P streaming system results
55
P2P3P4Conclusion56ConclusionP2PDMFTCDMFTBitTorrent57Thanks for listening58
59DMFT ExampleA joinB joinC joinD joinE joinA send data to BC send data to EA leave the group
60A Join61
62A NITA DFTA
63B Join64A NITA
A DFT
65A NITB5A DFTA
66A NITB5AB NITA5B DFTB
A DFT
67A NITB5AB NITA5B DFTBAB
ABA DFTAB-B DFTBA-
68C Join69A NITB5AB NITA5B
ABA DFTAB-B DFTBA-
70A NITB5AB NITA5C5B
ABAC NITC DFTCA DFTAB-B DFTBA-
71A NITB5AB NITA5C5B
ABC NITB5CCA DFTAB-B DFTBA ,C-C DFT
72A NITB5AB NITA5C5B
ABC NITB5CCBA DFTAB-B DFTBA ,C-C DFTCB-
73A NITB5AB NITA5C5B
ABC NITB5CCBA DFTAB-B DFTBA ,C-C DFTCB-
74A NITB5C6AB NITA5C5B
ABC NITB5CBCBA DFTAB-B DFTBA ,C-C DFTCB-
75A NITB5C6AB NITA5C5B
ABC NITB5A6CCCB{C}A DFTAB-B DFTBA ,C-C DFTCB-
76A NITB5C6AB NITA5C5B
ABC NITB5A6CCCBA{C}{A}A DFTAB-B DFTBA ,C-CACC DFTCB-
77D Join78A NITB5C6AB NITA5C5B
ABC NITB5A6CCCBA{C}{A}A DFTAB-B DFTBA ,C-CACC DFTCB-
79A NITD4B5C6AB NITA5C5B
ABC NITB5A6CCCBA{C}{A}B ,CD NITD DFTDA DFTAB-B DFTBA ,C-CACC DFTCB-
80A NITD4B5C6AB NITA5C5B
ADC NITB5A6CCBA{B ,C}{A}D NITA4DA DFTAD-B DFTBA ,C-CACC DFTCB-D DFT
81A NITD4B5C6AB NITA5C5B
ADC NITB5A6CCBA{B ,C}{A}D NITA4DAA DFTAD-B DFTBA ,C-CACC DFTCB-D DFTDA-
82A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6CCBA{B ,C}{A}D NITA4DAA ,CA DFTAD-B DFTBA ,C-CACC DFTCB-D DFTDA-
83A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6CCBA{B ,C}{A}D NITA4B5DADA DFTAD-B DFTBA ,C ,D-CACC DFTCB-D DFTDA-
84A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6CCBA{B ,C}{A}D NITA4B5DAD{B}BA DFTAD-DBDB DFTBA ,C ,D-CACC DFTCB-D DFTDA-
85A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6D6CCBA{B ,C}{A}D NITA4B5DAD{B}BA ,BA DFTAD-DBDB DFTBA ,C ,D-CACC DFTCB-D DFTDA-
86A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6D6CCBA{B ,C}{A ,D}D NITA4B5C6DAD{B}BDA DFTAD-DBDB DFTBA ,C ,D-CA ,DCC DFTCB-D DFTDA-
87A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6D6CCBA{B ,C}{A ,D}D NITA4B5C6DAD{B ,C}BDC{C}A DFTAD-DBDB DFTBA ,C ,D-CA ,DCDCAC DFTCB-D DFTDA-
88A NITD4B5C6AB NITA5C5D5B
ADC NITB5A6D6CCBA{B ,C}{A ,D}D NITA4B5C6DAD{B ,C}BDC{C}B{C}A DFTAD-DBDB DFTBA ,C ,D-CA ,DCDCAC DFTCB-D DFTDA-ABA
89B DFTBA ,C ,D-CA ,DCDCAACDA NITD4B5C6AB NITA5C5D5B
ADC NITB5A6D6CCBA{B ,C}{A ,D}D NITA4B5C6DAD{B ,C}BDC{C}B{C}CA DFTAD-DBDC DFTCB-D DFTDA-ABA
90E Join91A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7CCBA{B ,C}{A ,D ,E}D NITA4B5E5C6DAD{B ,C ,E}BDC{C}B{C}CE NITA3D5B6C7E DFTEA-ADADBAE{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}E{E}{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBA
92A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
93A send data to B94A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
95A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
96A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
97C send data to E98A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
99A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7C{B ,C}D NITA4B5E5C6DAD{B ,C ,E}BC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}{E}CBA{A ,D ,E}DE{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
100A NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7CCBA{B ,C}{A ,D ,E}D NITA4B5E5C6DAD{B ,C ,E}BDC{C}B{C}CE NITA3D5B6C7E{D ,B ,C}EAE{D ,B ,C}D{B ,C}B{C}CE{B ,C}E{E}{E}A DFTAE-DEDBEBCEBEDEB DFTBA ,C ,D-CA ,DCDCEACDC DFTCB-D DFTDA-ABAEBAE DFTEA-ADADBA
101A Leave Group102E DFTED-ADADBDD DFTDE-ABAEBEB DFTBA ,C ,D-CA ,DCDCEACDA DFTAE-DEDBEBCEBEDEA NITE3D4B5C6AB NITA5C5D5E6B
ADC NITB5A6D6E7CCBA{B ,C}{A ,D ,E}D NITA4B5E5C6DDB{C}CE NITA3D5B6C7E{D ,B ,C}EE{D ,B ,C}D{B ,C}B{C}CE{E}{E}DA{B ,C ,E}BC{C}E{B ,C}AC DFTCB-
103B NITC5D5E6B
C NITB5D6E7CCB{D ,E}D NITB5E5C6DDE NITD5B6C7EED{B ,C}B{C}CE{E}{E}DBC{C}E{B ,C}B DFTBC ,D-CDCDCEC DFTCB-D DFTDE-EBEE DFTED-DBD
104