SmoothFlow: Optimizing Live-Streaming in Enterprise Networks Using OpenFlow /

Waleed Fakher Hussein Soliman Reda

SmoothFlow: Optimizing Live-Streaming in Enterprise Networks Using OpenFlow / Waleed Fakher Hussein Soliman Reda - 2014 - 108 p. ill. 21 cm.

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.


Software Engineering


Dissertation, Academic

627