Image from Google Jackets

SmoothFlow: Optimizing Live-Streaming in Enterprise Networks Using OpenFlow / Waleed Fakher Hussein Soliman Reda

By: Material type: TextTextLanguage: English Summary language: English Publication details: 2014Description: 108 p. ill. 21 cmSubject(s): Genre/Form: DDC classification:
  • 627
Contents:
Contents: 1 Introduction 1 1.1 Goals & Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Background 4 2.1 Live video-streaming and Enterprise Networks . . . . . . . . . . . . . . . . 4 2.2 Live-video streaming improvements and optimizations . . . . . . . . . . . 5 2.2.1 Infrastructure-layer optimizations . . . . . . . . . . . . . . . . . . . 5 2.2.1.1 IP Multicasting . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1.2 Content-Delivery Networks (CDNs) . . . . . . . . . . . . 7 2.2.2 Application-layer optimizations . . . . . . . . . . . . . . . . . . . . 7 2.2.2.1 Application-level Multicasting (P2P) . . . . . . . . . . . 7 Streaming Overlays . . . . . . . . . . . . . . . . . . . . . . . 8 1) Tree-based overlay: . . . . . . . . . . . . . . . . . . . 8 2.1 Single tree: . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Multiple trees: . . . . . . . . . . . . . . . . . . . . . 8 2) Mesh-based overlay: . . . . . . . . . . . . . . . . . . 8 3) Hybrid overlay: . . . . . . . . . . . . . . . . . . . . . 8 Data dissemination . . . . . . . . . . . . . . . . . . . . . . . 9 1) Push-based: . . . . . . . . . . . . . . . . . . . . . . . 9 2) Pull-based: . . . 3) Pull-Push Hybrid: . . . . . . . . . . . . . . . . . . . 9 2.2.3 Hybrid optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.3.1 Hybrid Multicasting . . . . . . . . . . . . . . . . . . . . . 10 2.2.3.2 Peer-assisted Content-Delivery Networks . . . . . . . . . 10 2.2.3.3 Software-Dened Network (SDN) optimizations . . . . . 11 2.2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Streaming Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1 Protocol comparison . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1.1 Non-HTTP protocols . . . . . . . . . . . . . . . . . . . . 12 2.3.1.2 Adaptive HTTP protocols . . . . . . . . . . . . . . . . . 13 2.3.1.3 Microsoft Smooth Streaming Protocol . . . . . . . . . . . 15 2.4 Software-Dened Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 OpenFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.1 Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.2 OpenFlow Architecture . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.3 OpenFlow Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5.4 Switch Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5.5 Flow Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5.5.1 Matchers . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5.5.2 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5.5.3 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Header Modication . . . . . . . . . . . . . . . . . . . . . . 22 Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Dropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.6 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.7 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3 Review of Literature 24 3.1 Live-streaming SDN-based Optimizations . . . . . . . . . . . . . . . . . . 24 3.1.1 OpenSession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.1.2 Rent-a-Super Peer (RASP) . . . . . . . . . . . . . . . . . . . . . . 25 3.2 Live-streaming SDN-based QoS frameworks . . . . . . . . . . . . . . . . . 25 3.2.1 OpenQoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.2 OpenFlow-assisted QoE fairness framework (QFF) . . . . . . . . . 26 3.3 Goal relevancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 System Design 28 4.1 Assumptions and Requirements . . . . . . . . . . . . . . . . . . . . . . . . 28 4.1.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.1.1.1 OpenFlow pervasiveness . . . . . . . . . . . . . . . . . . . 28 4.1.1.2 HTTP Live-Streaming . . . . . . . . . . . . . . . . . . . . 29 4.1.1.3 OpenFlow Switch . . . . . . . . . . . . . . . . . . . . . . 29 4.1.1.4 Content Distributer . . . . . . . . . . . . . . . . . . . . . 29 4.1.1.5 Client Operating System . . . . . . . . . . . . . . . . . . 29 4.1.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.3 Client-side Application Requirements . . . . . . . . . . . . . . . . 30 4.1.3.1 Controller Requirements . . . . . . . . . . . . . . . . . . 30 4.1.3.2 Connection Requirements . . . . . . . . . . . . . . . . . . 30 4.1.3.3 Savings Requirements . . . . . . . . . . . . . . . . . . . . 30 4.2 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.1.1 Cross-layer communication . . . . . . . . . . . . . . . . . 33 4.3.2 OpenFlow Network Architecture . . . . . . . . . . . . . . . . . . . 33 4.4 Smooth Streaming Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.1 ToS Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5 Stream Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.5.1 Leader Election . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.5.2.1 Leader Software-Dened Multicasting (SDM) . . . . . . . 37 4.5.2.2 Redirect-to-Peer (R2P) . . . . . . . . . . . . . . . . . . . 38 4.5.2.3 Flow Rule Management . . . . . . . . . . . . . . . . . . . 40 4.5.3 Operation Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.5.3.1 Scenario 1 (Peer is joining stream as a follower) . . . . . 42 4.5.3.2 Scenario 2 (Peer is joining stream as a leader) . . . . . . 46 4.5.3.3 Scenario 3 (Leader disconnections) . . . . . . . . . . . . . 47 4.5.4 Summary of processes . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 Dynamic Application-aware Routing . . . . . . . . . . . . . . . . . . . . . 52 4.6.1 Protocol specics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.1.1 Network Monitoring . . . . . . . . . . . . . . . . . . . . . 52 4.6.1.2 Route calculation . . . . . . . . . . . . . . . . . . . . . . 53 4.6.2 Contention Resolution . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.6.2.1 Flow Prioritization . . . . . . . . . . . . . . . . . . . . . . 56 4.6.3 Rerouting Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.6.3.1 Flow insertions and deletions . . . . . . . . . . . . . . . . 59 5 Implementation 62 5.1 Client-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.1.1 Proxy components . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.1.1.1 Socket types . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.2 Controller-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.2.1 Opensource software controller survey . . . . . . . . . . . . . . . . 65 5.2.2 Beacon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.2.2.1 Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.2.2.2 OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.2.2.3 Observer pattern . . . . . . . . . . . . . . . . . . . . . . . 68 5.2.2.4 Write modes . . . . . . . . . . . . . . . . . . . . . . . . . 68 Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 I/O looping . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.2.3 Controller Application . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2.3.1 Beacon Bundle Library . . . . . . . . . . . . . . . . . . . 70 5.2.3.2 SmoothFlow bundles . . . . . . . . . . . . . . . . . . . . 71 Stream Sharing: . . . . . . . . . . . . . . . . . . . . . . . . . 71 SD Multicast: . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Network Monitor: . . . . . . . . . . . . . . . . . . . . . . . . 72 Application-Aware Routing Engine: . . . . . . . . . . . . . 72 Routing: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Topology: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 SmoothFlow Web: . . . . . . . . . . . . . . . . . . . . . . . 73 5.2.3.3 Packet processing pipeline . . . . . . . . . . . . . . . . . 73 6 Evaluation 75 6.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.1.1 Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.1.2 Emulated Smooth Streaming Player . . . . . . . . . . . . . . . . . 76 6.1.3 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.1.4 Stream setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.1.5 Evaluation Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.1.5.1 Playback Continuity . . . . . . . . . . . . . . . . . . . . . 78 6.1.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.1.5.3 Instability (bitrate shifts) . . . . . . . . . . . . . . . . . . 78 6.1.5.4 Bitrate Distribution . . . . . . . . . . . . . . . . . . . . . 78 6.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.1 Scenario 1 (Ideal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.1.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.2 Scenario 2 (Source-limited) . . . . . . . . . . . . . . . . . . . . . . 81 6.2.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.2.2.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.2.3 Scenario 3 (Bandwidth-starved) . . . . . . . . . . . . . . . . . . . . 83 6.2.3.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2.3.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7 Limitations and Future Work 88 7.1 TCP sessions and Raw sockets . . . . . . . . . . . . . . . . . . . . . . . . 88 7.2 ToS bit size limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.3 Match Rule header extensions and TCP . . . . . . . . . . . . . . . . . . . 89 7.4 SmoothFlow and Bitrate adaptation . . . . . . . . . . . . . . . . . . . . . 90 7.5 Controller and Switch scalability tests . . . . . . . . . . . . . . . . . . . . 90
Dissertation note: Thesis (M.A.)—Nile University, Egypt, 2014 . Abstract: Abstract: Video-streaming has seen massive growth on the internet, and its popularity is at an all-time high. With these growth-rates, comes a need for making infrastructural accommodations to handle the associated trac growth. This is especially true in live video-streaming, as trac needs to be handled in a way that keeps latencies minimized. Enterprises have often used Content-Delivery Networks (CDNs) to boost their network streaming capabilities, as well as Peer-to-Peer live-streaming systems. However, these solutions often came with their list of associated issues. The former requires signicant capital investment which acts as a deterrent to companies with lesser nancial capabilities. The latter is sub-optimal at best since it's orchestrated by the end-to-end systems without help from the underlying network. In this thesis, our aim is to nd a middle-ground solution that requires minor nancial investment while allowing the network itself to support live-streaming applications running on the upper layers. This approach aims to use a new networking paradigm - Software-Dened Networks (SDNs). Software-Dened Networks provides us with the exibility of modifying trac ow logic on-the-spot. As such, their involvement provides the means of embedding higher-layer application data in the network, and allowing the underlying network devices (switches, routers, hubs, etc.) to handle these trac ows in a way that's advantageous for the entire network. The methods that are utilized involve having the switches orchestrate streaming sharing and load-balancing between the various end-users in the system. Our work results in the construction of a system that we named "SmoothFlow".
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Status Date due Barcode
Thesis Thesis Main library 627/ W.R.S 2014 (Browse shelf(Opens below)) Not For Loan

Supervisor: Sameh Elansary

Thesis (M.A.)—Nile University, Egypt, 2014 .

"Includes bibliographical references"

Contents:
1 Introduction 1
1.1 Goals & Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Background 4
2.1 Live video-streaming and Enterprise Networks . . . . . . . . . . . . . . . . 4
2.2 Live-video streaming improvements and optimizations . . . . . . . . . . . 5
2.2.1 Infrastructure-layer optimizations . . . . . . . . . . . . . . . . . . . 5
2.2.1.1 IP Multicasting . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1.2 Content-Delivery Networks (CDNs) . . . . . . . . . . . . 7
2.2.2 Application-layer optimizations . . . . . . . . . . . . . . . . . . . . 7
2.2.2.1 Application-level Multicasting (P2P) . . . . . . . . . . . 7
Streaming Overlays . . . . . . . . . . . . . . . . . . . . . . . 8
1) Tree-based overlay: . . . . . . . . . . . . . . . . . . . 8
2.1 Single tree: . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Multiple trees: . . . . . . . . . . . . . . . . . . . . . 8
2) Mesh-based overlay: . . . . . . . . . . . . . . . . . . 8
3) Hybrid overlay: . . . . . . . . . . . . . . . . . . . . . 8
Data dissemination . . . . . . . . . . . . . . . . . . . . . . . 9
1) Push-based: . . . . . . . . . . . . . . . . . . . . . . . 9
2) Pull-based: . . .
3) Pull-Push Hybrid: . . . . . . . . . . . . . . . . . . . 9
2.2.3 Hybrid optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3.1 Hybrid Multicasting . . . . . . . . . . . . . . . . . . . . . 10
2.2.3.2 Peer-assisted Content-Delivery Networks . . . . . . . . . 10
2.2.3.3 Software-Dened Network (SDN) optimizations . . . . . 11
2.2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Streaming Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Protocol comparison . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1.1 Non-HTTP protocols . . . . . . . . . . . . . . . . . . . . 12
2.3.1.2 Adaptive HTTP protocols . . . . . . . . . . . . . . . . . 13
2.3.1.3 Microsoft Smooth Streaming Protocol . . . . . . . . . . . 15
2.4 Software-Dened Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 OpenFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1 Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2 OpenFlow Architecture . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3 OpenFlow Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.4 Switch Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.5 Flow Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.5.1 Matchers . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.5.2 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.5.3 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Header Modication . . . . . . . . . . . . . . . . . . . . . . 22
Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Dropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.6 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.7 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3 Review of Literature 24
3.1 Live-streaming SDN-based Optimizations . . . . . . . . . . . . . . . . . . 24
3.1.1 OpenSession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Rent-a-Super Peer (RASP) . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Live-streaming SDN-based QoS frameworks . . . . . . . . . . . . . . . . . 25
3.2.1 OpenQoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2 OpenFlow-assisted QoE fairness framework (QFF) . . . . . . . . . 26
3.3 Goal relevancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 System Design 28
4.1 Assumptions and Requirements . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.1.1 OpenFlow pervasiveness . . . . . . . . . . . . . . . . . . . 28
4.1.1.2 HTTP Live-Streaming . . . . . . . . . . . . . . . . . . . . 29
4.1.1.3 OpenFlow Switch . . . . . . . . . . . . . . . . . . . . . . 29
4.1.1.4 Content Distributer . . . . . . . . . . . . . . . . . . . . . 29
4.1.1.5 Client Operating System . . . . . . . . . . . . . . . . . . 29
4.1.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.3 Client-side Application Requirements . . . . . . . . . . . . . . . . 30
4.1.3.1 Controller Requirements . . . . . . . . . . . . . . . . . . 30
4.1.3.2 Connection Requirements . . . . . . . . . . . . . . . . . . 30
4.1.3.3 Savings Requirements . . . . . . . . . . . . . . . . . . . . 30
4.2 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.1.1 Cross-layer communication . . . . . . . . . . . . . . . . . 33
4.3.2 OpenFlow Network Architecture . . . . . . . . . . . . . . . . . . . 33
4.4 Smooth Streaming Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4.1 ToS Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Stream Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5.1 Leader Election . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.5.2.1 Leader Software-Dened Multicasting (SDM) . . . . . . . 37
4.5.2.2 Redirect-to-Peer (R2P) . . . . . . . . . . . . . . . . . . . 38
4.5.2.3 Flow Rule Management . . . . . . . . . . . . . . . . . . . 40
4.5.3 Operation Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5.3.1 Scenario 1 (Peer is joining stream as a follower) . . . . . 42
4.5.3.2 Scenario 2 (Peer is joining stream as a leader) . . . . . . 46
4.5.3.3 Scenario 3 (Leader disconnections) . . . . . . . . . . . . . 47
4.5.4 Summary of processes . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6 Dynamic Application-aware Routing . . . . . . . . . . . . . . . . . . . . . 52
4.6.1 Protocol specics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6.1.1 Network Monitoring . . . . . . . . . . . . . . . . . . . . . 52
4.6.1.2 Route calculation . . . . . . . . . . . . . . . . . . . . . . 53
4.6.2 Contention Resolution . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.6.2.1 Flow Prioritization . . . . . . . . . . . . . . . . . . . . . . 56
4.6.3 Rerouting Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6.3.1 Flow insertions and deletions . . . . . . . . . . . . . . . . 59
5 Implementation 62
5.1 Client-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.1 Proxy components . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.1.1 Socket types . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2 Controller-side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.1 Opensource software controller survey . . . . . . . . . . . . . . . . 65
5.2.2 Beacon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2.1 Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2.2 OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2.3 Observer pattern . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.2.4 Write modes . . . . . . . . . . . . . . . . . . . . . . . . . 68
Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
I/O looping . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.3 Controller Application . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.3.1 Beacon Bundle Library . . . . . . . . . . . . . . . . . . . 70
5.2.3.2 SmoothFlow bundles . . . . . . . . . . . . . . . . . . . . 71
Stream Sharing: . . . . . . . . . . . . . . . . . . . . . . . . . 71
SD Multicast: . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Network Monitor: . . . . . . . . . . . . . . . . . . . . . . . . 72
Application-Aware Routing Engine: . . . . . . . . . . . . . 72
Routing: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Topology: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
SmoothFlow Web: . . . . . . . . . . . . . . . . . . . . . . . 73
5.2.3.3 Packet processing pipeline . . . . . . . . . . . . . . . . . 73
6 Evaluation 75
6.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.1.1 Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.1.2 Emulated Smooth Streaming Player . . . . . . . . . . . . . . . . . 76
6.1.3 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.1.4 Stream setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1.5 Evaluation Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1.5.1 Playback Continuity . . . . . . . . . . . . . . . . . . . . . 78
6.1.5.2 Savings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.1.5.3 Instability (bitrate shifts) . . . . . . . . . . . . . . . . . . 78
6.1.5.4 Bitrate Distribution . . . . . . . . . . . . . . . . . . . . . 78
6.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.1 Scenario 1 (Ideal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.1.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.2 Scenario 2 (Source-limited) . . . . . . . . . . . . . . . . . . . . . . 81
6.2.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2.2.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.2.3 Scenario 3 (Bandwidth-starved) . . . . . . . . . . . . . . . . . . . . 83
6.2.3.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2.3.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7 Limitations and Future Work 88
7.1 TCP sessions and Raw sockets . . . . . . . . . . . . . . . . . . . . . . . . 88
7.2 ToS bit size limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.3 Match Rule header extensions and TCP . . . . . . . . . . . . . . . . . . . 89
7.4 SmoothFlow and Bitrate adaptation . . . . . . . . . . . . . . . . . . . . . 90
7.5 Controller and Switch scalability tests . . . . . . . . . . . . . . . . . . . . 90

Abstract:
Video-streaming has seen massive growth on the internet, and its popularity is at an
all-time high. With these growth-rates, comes a need for making infrastructural accommodations
to handle the associated trac growth. This is especially true in live
video-streaming, as trac needs to be handled in a way that keeps latencies minimized.
Enterprises have often used Content-Delivery Networks (CDNs) to boost their network
streaming capabilities, as well as Peer-to-Peer live-streaming systems. However, these
solutions often came with their list of associated issues. The former requires signicant
capital investment which acts as a deterrent to companies with lesser nancial capabilities.
The latter is sub-optimal at best since it's orchestrated by the end-to-end systems
without help from the underlying network.
In this thesis, our aim is to nd a middle-ground solution that requires minor nancial
investment while allowing the network itself to support live-streaming applications
running on the upper layers. This approach aims to use a new networking paradigm
- Software-Dened Networks (SDNs). Software-Dened Networks provides us with the

exibility of modifying trac
ow logic on-the-spot. As such, their involvement provides
the means of embedding higher-layer application data in the network, and allowing the
underlying network devices (switches, routers, hubs, etc.) to handle these trac
ows
in a way that's advantageous for the entire network. The methods that are utilized
involve having the switches orchestrate streaming sharing and load-balancing between
the various end-users in the system. Our work results in the construction of a system
that we named "SmoothFlow".

Text in English, abstracts in English.

There are no comments on this title.

to post a comment.