MARC details
000 -LEADER |
fixed length control field |
13422nam a22002537a 4500 |
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION |
fixed length control field |
210111b2014 a|||f mb|| 00| 0 eng d |
040 ## - CATALOGING SOURCE |
Original cataloging agency |
EG-CaNU |
Transcribing agency |
EG-CaNU |
041 0# - Language Code |
Language code of text |
eng |
Language code of abstract |
eng |
082 ## - DEWEY DECIMAL CLASSIFICATION NUMBER |
Classification number |
627 |
100 0# - MAIN ENTRY--PERSONAL NAME |
Personal name |
Waleed Fakher Hussein Soliman Reda |
245 1# - TITLE STATEMENT |
Title |
SmoothFlow: Optimizing Live-Streaming in Enterprise Networks Using OpenFlow / |
Statement of responsibility, etc. |
Waleed Fakher Hussein Soliman Reda |
260 ## - PUBLICATION, DISTRIBUTION, ETC. |
Date of publication, distribution, etc. |
2014 |
300 ## - PHYSICAL DESCRIPTION |
Extent |
108 p. |
Other physical details |
ill. |
Dimensions |
21 cm. |
500 ## - GENERAL NOTE |
Materials specified |
Supervisor: Sameh Elansary |
502 ## - Dissertation Note |
Dissertation type |
Thesis (M.A.)—Nile University, Egypt, 2014 . |
504 ## - Bibliography |
Bibliography |
"Includes bibliographical references" |
505 0# - Contents |
Formatted contents note |
Contents:<br/>1 Introduction 1<br/>1.1 Goals & Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br/>1.2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br/>2 Background 4<br/>2.1 Live video-streaming and Enterprise Networks . . . . . . . . . . . . . . . . 4<br/>2.2 Live-video streaming improvements and optimizations . . . . . . . . . . . 5<br/>2.2.1 Infrastructure-layer optimizations . . . . . . . . . . . . . . . . . . . 5<br/>2.2.1.1 IP Multicasting . . . . . . . . . . . . . . . . . . . . . . . 5<br/>2.2.1.2 Content-Delivery Networks (CDNs) . . . . . . . . . . . . 7<br/>2.2.2 Application-layer optimizations . . . . . . . . . . . . . . . . . . . . 7<br/>2.2.2.1 Application-level Multicasting (P2P) . . . . . . . . . . . 7<br/>Streaming Overlays . . . . . . . . . . . . . . . . . . . . . . . 8<br/>1) Tree-based overlay: . . . . . . . . . . . . . . . . . . . 8<br/>2.1 Single tree: . . . . . . . . . . . . . . . . . . . . . . . 8<br/>2.2 Multiple trees: . . . . . . . . . . . . . . . . . . . . . 8<br/>2) Mesh-based overlay: . . . . . . . . . . . . . . . . . . 8<br/>3) Hybrid overlay: . . . . . . . . . . . . . . . . . . . . . 8<br/>Data dissemination . . . . . . . . . . . . . . . . . . . . . . . 9<br/>1) Push-based: . . . . . . . . . . . . . . . . . . . . . . . 9<br/>2) Pull-based: . . .<br/>3) Pull-Push Hybrid: . . . . . . . . . . . . . . . . . . . 9<br/>2.2.3 Hybrid optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br/>2.2.3.1 Hybrid Multicasting . . . . . . . . . . . . . . . . . . . . . 10<br/>2.2.3.2 Peer-assisted Content-Delivery Networks . . . . . . . . . 10<br/>2.2.3.3 Software-Dened Network (SDN) optimizations . . . . . 11<br/>2.2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br/>2.3 Streaming Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br/>2.3.1 Protocol comparison . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br/>2.3.1.1 Non-HTTP protocols . . . . . . . . . . . . . . . . . . . . 12<br/>2.3.1.2 Adaptive HTTP protocols . . . . . . . . . . . . . . . . . 13<br/>2.3.1.3 Microsoft Smooth Streaming Protocol . . . . . . . . . . . 15<br/>2.4 Software-Dened Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br/>2.5 OpenFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br/>2.5.1 Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br/>2.5.2 OpenFlow Architecture . . . . . . . . . . . . . . . . . . . . . . . . 18<br/>2.5.3 OpenFlow Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br/>2.5.4 Switch Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br/>2.5.5 Flow Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br/>2.5.5.1 Matchers . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br/>2.5.5.2 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br/>2.5.5.3 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br/>Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br/>Header Modication . . . . . . . . . . . . . . . . . . . . . . 22<br/>Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>Dropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>2.5.6 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>2.5.7 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br/>3 Review of Literature 24<br/>3.1 Live-streaming SDN-based Optimizations . . . . . . . . . . . . . . . . . . 24<br/>3.1.1 OpenSession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br/>3.1.2 Rent-a-Super Peer (RASP) . . . . . . . . . . . . . . . . . . . . . . 25<br/>3.2 Live-streaming SDN-based QoS frameworks . . . . . . . . . . . . . . . . . 25<br/>3.2.1 OpenQoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br/>3.2.2 OpenFlow-assisted QoE fairness framework (QFF) . . . . . . . . . 26<br/>3.3 Goal relevancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br/>4 System Design 28<br/>4.1 Assumptions and Requirements . . . . . . . . . . . . . . . . . . . . . . . . 28<br/>4.1.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br/>4.1.1.1 OpenFlow pervasiveness . . . . . . . . . . . . . . . . . . . 28<br/>4.1.1.2 HTTP Live-Streaming . . . . . . . . . . . . . . . . . . . . 29<br/>4.1.1.3 OpenFlow Switch . . . . . . . . . . . . . . . . . . . . . . 29<br/>4.1.1.4 Content Distributer . . . . . . . . . . . . . . . . . . . . . 29<br/>4.1.1.5 Client Operating System . . . . . . . . . . . . . . . . . . 29<br/>4.1.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br/>4.1.3 Client-side Application Requirements . . . . . . . . . . . . . . . . 30<br/>4.1.3.1 Controller Requirements . . . . . . . . . . . . . . . . . . 30<br/>4.1.3.2 Connection Requirements . . . . . . . . . . . . . . . . . . 30<br/>4.1.3.3 Savings Requirements . . . . . . . . . . . . . . . . . . . . 30<br/>4.2 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>4.3 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>4.3.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br/>4.3.1.1 Cross-layer communication . . . . . . . . . . . . . . . . . 33<br/>4.3.2 OpenFlow Network Architecture . . . . . . . . . . . . . . . . . . . 33<br/>4.4 Smooth Streaming Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br/>4.4.1 ToS Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br/>4.5 Stream Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br/>4.5.1 Leader Election . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br/>4.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br/>4.5.2.1 Leader Software-Dened Multicasting (SDM) . . . . . . . 37<br/>4.5.2.2 Redirect-to-Peer (R2P) . . . . . . . . . . . . . . . . . . . 38<br/>4.5.2.3 Flow Rule Management . . . . . . . . . . . . . . . . . . . 40<br/>4.5.3 Operation Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br/>4.5.3.1 Scenario 1 (Peer is joining stream as a follower) . . . . . 42<br/>4.5.3.2 Scenario 2 (Peer is joining stream as a leader) . . . . . . 46<br/>4.5.3.3 Scenario 3 (Leader disconnections) . . . . . . . . . . . . . 47<br/>4.5.4 Summary of processes . . . . . . . . . . . . . . . . . . . . . . . . . 50<br/>4.6 Dynamic Application-aware Routing . . . . . . . . . . . . . . . . . . . . . 52<br/>4.6.1 Protocol specics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br/>4.6.1.1 Network Monitoring . . . . . . . . . . . . . . . . . . . . . 52<br/>4.6.1.2 Route calculation . . . . . . . . . . . . . . . . . . . . . . 53<br/>4.6.2 Contention Resolution . . . . . . . . . . . . . . . . . . . . . . . . . 55<br/>4.6.2.1 Flow Prioritization . . . . . . . . . . . . . . . . . . . . . . 56<br/>4.6.3 Rerouting Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . 58<br/>4.6.3.1 Flow insertions and deletions . . . . . . . . . . . . . . . . 59<br/>5 Implementation 62<br/>5.1 Client-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br/>5.1.1 Proxy components . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br/>5.1.1.1 Socket types . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>5.2 Controller-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br/>5.2.1 Opensource software controller survey . . . . . . . . . . . . . . . . 65<br/>5.2.2 Beacon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br/>5.2.2.1 Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br/>5.2.2.2 OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br/>5.2.2.3 Observer pattern . . . . . . . . . . . . . . . . . . . . . . . 68<br/>5.2.2.4 Write modes . . . . . . . . . . . . . . . . . . . . . . . . . 68<br/>Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br/>I/O looping . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br/>5.2.3 Controller Application . . . . . . . . . . . . . . . . . . . . . . . . . 70<br/>5.2.3.1 Beacon Bundle Library . . . . . . . . . . . . . . . . . . . 70<br/>5.2.3.2 SmoothFlow bundles . . . . . . . . . . . . . . . . . . . . 71<br/>Stream Sharing: . . . . . . . . . . . . . . . . . . . . . . . . . 71<br/>SD Multicast: . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br/>Network Monitor: . . . . . . . . . . . . . . . . . . . . . . . . 72<br/>Application-Aware Routing Engine: . . . . . . . . . . . . . 72<br/>Routing: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br/>Topology: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br/>SmoothFlow Web: . . . . . . . . . . . . . . . . . . . . . . . 73<br/>5.2.3.3 Packet processing pipeline . . . . . . . . . . . . . . . . . 73<br/>6 Evaluation 75<br/>6.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br/>6.1.1 Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br/>6.1.2 Emulated Smooth Streaming Player . . . . . . . . . . . . . . . . . 76<br/>6.1.3 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br/>6.1.4 Stream setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br/>6.1.5 Evaluation Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br/>6.1.5.1 Playback Continuity . . . . . . . . . . . . . . . . . . . . . 78<br/>6.1.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br/>6.1.5.3 Instability (bitrate shifts) . . . . . . . . . . . . . . . . . . 78<br/>6.1.5.4 Bitrate Distribution . . . . . . . . . . . . . . . . . . . . . 78<br/>6.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br/>6.2.1 Scenario 1 (Ideal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br/>6.2.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br/>6.2.1.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br/>6.2.2 Scenario 2 (Source-limited) . . . . . . . . . . . . . . . . . . . . . . 81<br/>6.2.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br/>6.2.2.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br/>6.2.3 Scenario 3 (Bandwidth-starved) . . . . . . . . . . . . . . . . . . . . 83<br/>6.2.3.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br/>6.2.3.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br/>6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br/>7 Limitations and Future Work 88<br/>7.1 TCP sessions and Raw sockets . . . . . . . . . . . . . . . . . . . . . . . . 88<br/>7.2 ToS bit size limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br/>7.3 Match Rule header extensions and TCP . . . . . . . . . . . . . . . . . . . 89<br/>7.4 SmoothFlow and Bitrate adaptation . . . . . . . . . . . . . . . . . . . . . 90<br/>7.5 Controller and Switch scalability tests . . . . . . . . . . . . . . . . . . . . 90 |
520 3# - Abstract |
Abstract |
Abstract:<br/>Video-streaming has seen massive growth on the internet, and its popularity is at an<br/>all-time high. With these growth-rates, comes a need for making infrastructural accommodations<br/>to handle the associated trac growth. This is especially true in live<br/>video-streaming, as trac needs to be handled in a way that keeps latencies minimized.<br/>Enterprises have often used Content-Delivery Networks (CDNs) to boost their network<br/>streaming capabilities, as well as Peer-to-Peer live-streaming systems. However, these<br/>solutions often came with their list of associated issues. The former requires signicant<br/>capital investment which acts as a deterrent to companies with lesser nancial capabilities.<br/>The latter is sub-optimal at best since it's orchestrated by the end-to-end systems<br/>without help from the underlying network.<br/>In this thesis, our aim is to nd a middle-ground solution that requires minor nancial<br/>investment while allowing the network itself to support live-streaming applications<br/>running on the upper layers. This approach aims to use a new networking paradigm<br/>- Software-Dened Networks (SDNs). Software-Dened Networks provides us with the<br/><br/>exibility of modifying trac <br/>ow logic on-the-spot. As such, their involvement provides<br/>the means of embedding higher-layer application data in the network, and allowing the<br/>underlying network devices (switches, routers, hubs, etc.) to handle these trac <br/>ows<br/>in a way that's advantageous for the entire network. The methods that are utilized<br/>involve having the switches orchestrate streaming sharing and load-balancing between<br/>the various end-users in the system. Our work results in the construction of a system<br/>that we named "SmoothFlow". |
546 ## - Language Note |
Language Note |
Text in English, abstracts in English. |
650 #4 - Subject |
Subject |
Software Engineering |
655 #7 - Index Term-Genre/Form |
Source of term |
NULIB |
focus term |
Dissertation, Academic |
690 ## - Subject |
School |
Software Engineering |
942 ## - ADDED ENTRY ELEMENTS (KOHA) |
Source of classification or shelving scheme |
Dewey Decimal Classification |
Koha item type |
Thesis |
650 #4 - Subject |
-- |
211 |
655 #7 - Index Term-Genre/Form |
-- |
187 |
690 ## - Subject |
-- |
211 |