03.02.2015 Views

Cross-layer Optimization of Peer-to-Peer Video Streaming in ...

Cross-layer Optimization of Peer-to-Peer Video Streaming in ...

Cross-layer Optimization of Peer-to-Peer Video Streaming in ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Cross</strong>-<strong>layer</strong> <strong>Optimization</strong> <strong>of</strong><br />

<strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> <strong>in</strong><br />

OpenFlow-based ISP Networks<br />

Diplomarbeit<br />

Jeremias Blend<strong>in</strong><br />

PS-D-0003<br />

Fachbereich Elektrotechnik<br />

und Informationstechnik<br />

Institut für Datentechnik<br />

Fachgebiet P2P Systems Eng<strong>in</strong>eer<strong>in</strong>g<br />

Pr<strong>of</strong>. Dr. David Hausheer


<strong>Cross</strong>-<strong>layer</strong> <strong>Optimization</strong> <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> <strong>in</strong> OpenFlow-based ISP Networks<br />

Diplomarbeit<br />

PS-D-0003<br />

E<strong>in</strong>gereicht von Jeremias Blend<strong>in</strong><br />

Tag der E<strong>in</strong>reichung: 30. April 2013<br />

Gutachter: Pr<strong>of</strong>. Dr. David Hausheer<br />

Zweitgutachter: Pr<strong>of</strong>. Dr.-Ing. Ralf Ste<strong>in</strong>metz<br />

Betreuer: M.Sc. Julius Rückert<br />

Technische Universität Darmstadt<br />

Fachbereich Elektrotechnik und Informationstechnik<br />

Institut für Datentechnik<br />

Fachgebiet P2P Systems Eng<strong>in</strong>eer<strong>in</strong>g<br />

Pr<strong>of</strong>. Dr. David Hausheer


Ehrenwörtliche Erklärung<br />

Hiermit versichere ich, die vorliegende Diplomarbeit ohne Hilfe Dritter und nur mit den angegebenen<br />

Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die aus den Quellen entnommen wurden,<br />

s<strong>in</strong>d als solche kenntlich gemacht worden. Diese Arbeit hat <strong>in</strong> dieser oder ähnlicher Form noch ke<strong>in</strong>er<br />

Prüfungsbehörde vorgelegen. Die schriftliche Fassung stimmt mit der elektronischen Fassung übere<strong>in</strong>.<br />

Darmstadt, den 30. April 2013<br />

Jeremias Blend<strong>in</strong><br />

i


Contents<br />

1. Introduction 1<br />

1.1. Goal and Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2. Outl<strong>in</strong>e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

2. Background 3<br />

2.1. Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.1.1. Multicast on the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.1.2. <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2. Internet Service Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2.1. Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2.2. Network Topology and Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2.3. ISPs and <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.3. Openflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.3.1. The OpenFlow Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.3.2. OpenFlow Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3. Related Work 17<br />

3.1. ISP and <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Cooperation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

3.1.1. ISP Network Information Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

3.1.2. ISP-Owned <strong>Peer</strong>s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.2. <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> and Super <strong>Peer</strong>s . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.2.1. mTreebone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.2.2. SALSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

3.3. Overlay Networks and Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

3.4. Improvements <strong>to</strong> IP Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.4.1. Recursive Unicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.4.2. Explicit Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

3.4.3. LIPSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

3.4.4. Labelcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.5. OpenFlow and IP Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.5.1. IP multicast with Fast Tree Switch<strong>in</strong>g . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.5.2. CastFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

4. Assumptions and Requirements 25<br />

4.1. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

4.2. Requirements <strong>of</strong> ISPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

4.2.1. Service Resource Consumption Requirements . . . . . . . . . . . . . . . . . . . . . . . 26<br />

4.2.2. Service Integration and Management Requirements . . . . . . . . . . . . . . . . . . . 26<br />

4.3. Requirements <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

4.3.1. Technical Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

iii


4.3.2. Requirements <strong>of</strong> Users, Opera<strong>to</strong>rs and Application Providers . . . . . . . . . . . . . . 27<br />

5. System Design 29<br />

5.1. Description and Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

5.1.1. Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

5.1.2. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

5.2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

5.2.1. OpenFlow based Network Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

5.2.2. System Structure and Interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

5.3. Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

5.3.1. Rent-a-Super <strong>Peer</strong> Controller Component . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

5.3.2. Virtual <strong>Peer</strong> Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

5.3.3. S<strong>of</strong>tware Def<strong>in</strong>ed Multicast Component . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.3.4. Explicit Multicast Subcomponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

5.4. <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> System Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

5.4.1. General Considerations and <strong>Peer</strong> Behavior Adaptation . . . . . . . . . . . . . . . . . . 47<br />

5.4.2. Super <strong>Peer</strong> Adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

5.4.3. Rent-a-Super <strong>Peer</strong> Instance Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

6. Pro<strong>to</strong>type 49<br />

6.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

6.2. Network Emulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2.1. M<strong>in</strong><strong>in</strong>et . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2.2. OpenFlow Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2.3. Topology Database and Network Experiments . . . . . . . . . . . . . . . . . . . . . . . 54<br />

6.2.4. OpenFlow Rout<strong>in</strong>g and Forward<strong>in</strong>g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

6.3. The Ryu OpenFlow Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

6.3.1. Architecture and Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

6.3.2. Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.3.3. Ryu Application Bluepr<strong>in</strong>t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.4. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.4.1. Rent-a-Super <strong>Peer</strong> Controller and Public API . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.4.2. Topology Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.4.3. Virtual <strong>Peer</strong> Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.4.4. S<strong>of</strong>tware-Def<strong>in</strong>ed Multicast Application . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

7. Evaluation 69<br />

7.1. Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

7.1.1. ISP Core Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

7.1.2. ISP Access and Aggregation Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

7.1.3. Applied Network Topology Variations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

7.1.4. <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> Model and Emulation . . . . . . . . . . . . . . . . 76<br />

7.1.5. Overlay Topology Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

7.2. Transmission Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

7.2.1. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

7.2.2. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

iv<br />

Contents


7.2.3. Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

7.3. System Costs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

7.3.1. Number <strong>of</strong> Required OpenFlow Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

7.3.2. OpenFlow Messag<strong>in</strong>g Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />

7.3.3. API Management Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

7.4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

8. Conclusion and Future Work 95<br />

8.1. Future Work on the RASP Implementation and Integration <strong>in</strong><strong>to</strong> P2P LVS Systems . . . . . . 96<br />

8.2. Future Work on the Large Scale Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

8.3. Future Work on Us<strong>in</strong>g the RASP Service with other Applications . . . . . . . . . . . . . . . . 97<br />

A. Evaluation Statistics 99<br />

A.1. t-test Statistics <strong>of</strong> the Intra-ISP Traffic Volume Ratio Differences . . . . . . . . . . . . . . . . 99<br />

A.2. t-test Statistics <strong>of</strong> the <strong>Cross</strong>-Border Traffic Volume Differences . . . . . . . . . . . . . . . . . . 100<br />

Acronyms 103<br />

Bibliography 104<br />

Contents<br />

v


List <strong>of</strong> Figures<br />

2.1. A P2P LVS <strong>layer</strong> model (based on [67], p. 73). . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2. Tree and mesh <strong>to</strong>pologies for video stream distribution <strong>in</strong> P2P LVS. Blue boxes denote<br />

exist<strong>in</strong>g, white boxes miss<strong>in</strong>g parts <strong>of</strong> the video. . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2.3. Hierarchical <strong>to</strong>pology <strong>of</strong> the Internet [58, p. 78]. . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.4. ISP network <strong>to</strong>pology by network types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.5. A traditional network<strong>in</strong>g scheme and the OpenFlow network<strong>in</strong>g scheme [see 72, p. 2]. . . 11<br />

2.6. Operat<strong>in</strong>g schema <strong>of</strong> the OpenFlow version 1.0 flow table. . . . . . . . . . . . . . . . . . . . . 13<br />

2.7. Operat<strong>in</strong>g schema <strong>of</strong> the OpenFlow version 1.1 packet-process<strong>in</strong>g pipel<strong>in</strong>e. . . . . . . . . . 14<br />

3.1. The forward<strong>in</strong>g scheme <strong>of</strong> REUNITE (adapted from [104, p. 1645]). . . . . . . . . . . . . . 21<br />

5.1. A simplified illustration <strong>of</strong> the operation <strong>of</strong> a P2P LVS system. . . . . . . . . . . . . . . . . . . 30<br />

5.2. A simplified illustration <strong>of</strong> the operation <strong>of</strong> a P2P LVS system us<strong>in</strong>g the RASP service. . . . 31<br />

5.3. OpenFlow network architecture (adapted from [82, p. 7]). . . . . . . . . . . . . . . . . . . . 34<br />

5.4. Architecture <strong>of</strong> the RASP service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

5.5. The names <strong>of</strong> entities <strong>in</strong>volved with the RASP system. . . . . . . . . . . . . . . . . . . . . . . . 37<br />

5.6. OpenFlow rules for implement<strong>in</strong>g a virtual peer for a connection <strong>in</strong>itiated by peer P <strong>to</strong><br />

super peer SP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.7. Comparison <strong>of</strong> an IP multicast and a SDM doma<strong>in</strong>. . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

5.8. Schema <strong>of</strong> the SDM concept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

5.9. Schematic overview <strong>of</strong> an Explicit SDM doma<strong>in</strong> and its subdoma<strong>in</strong>s. . . . . . . . . . . . . . . 46<br />

6.1. The components <strong>of</strong> the RASP service that are part <strong>of</strong> the pro<strong>to</strong>type. . . . . . . . . . . . . . . 49<br />

6.2. Overview <strong>of</strong> the pro<strong>to</strong>type implementation and the accompany<strong>in</strong>g emulation system <strong>of</strong><br />

RASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

6.3. Throughput <strong>of</strong> the three OpenFlow s<strong>of</strong>tware switches as measured by iperf. . . . . . . . . . 53<br />

6.4. The process schema <strong>of</strong> runn<strong>in</strong>g an emulated network experiment. . . . . . . . . . . . . . . . 54<br />

6.5. An example network based on the <strong>to</strong>pology database <strong>in</strong>formation used for creat<strong>in</strong>g emulated<br />

networks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

6.6. Simplified diagram <strong>of</strong> an OpenFlow LAN switch <strong>in</strong> the emulated network. . . . . . . . . . . 56<br />

6.7. The architecture <strong>of</strong> Ryu [77]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.8. UML class diagram <strong>of</strong> a typical Ryu application skele<strong>to</strong>n. . . . . . . . . . . . . . . . . . . . . . 59<br />

6.9. Overview over the parts <strong>of</strong> the pro<strong>to</strong>type whose implementations are described <strong>in</strong> Section<br />

6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.10.Example <strong>of</strong> a super peer us<strong>in</strong>g the RASP API <strong>to</strong> set up a video stream and add<strong>in</strong>g a member<br />

<strong>to</strong> it. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

6.11.The structure <strong>of</strong> the RASP controller implementation. . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.12.The structure <strong>of</strong> the <strong>to</strong>pology application implementation. . . . . . . . . . . . . . . . . . . . . 63<br />

6.13.The structure <strong>of</strong> the Virtual <strong>Peer</strong> application implementation. . . . . . . . . . . . . . . . . . . 63<br />

6.14.The structure <strong>of</strong> the SDM application implementation. . . . . . . . . . . . . . . . . . . . . . . 64<br />

vii


6.15.Multicast tree construction problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

6.16.Schematic cu<strong>to</strong>ut <strong>of</strong> a SDM multicast tree with three different forward<strong>in</strong>g states. . . . . . . 67<br />

7.1. Deutsche Telekom’s core network [26, p. 4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

7.2. The network <strong>to</strong>pology model used as basis for network <strong>to</strong>pology with annotations on the<br />

scal<strong>in</strong>g possibilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

7.3. Access and aggregation networks: Ethernet application and PPP encapsulation. . . . . . . . 72<br />

7.4. Network model <strong>in</strong>stance DT small. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

7.5. Network model <strong>in</strong>stance scaled by <strong>in</strong>creas<strong>in</strong>g the number <strong>of</strong> connected host per access<br />

switch (DT Hosts). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

7.6. Network model <strong>in</strong>stance scaled by add<strong>in</strong>g core nodes (DT Core). . . . . . . . . . . . . . . . . 76<br />

7.7. Network model <strong>in</strong>stance scaled by <strong>in</strong>creas<strong>in</strong>g the trees depths (DT Depths). . . . . . . . . . 77<br />

7.8. Overlay network algorithm examples based on the DT Small <strong>to</strong>pology. . . . . . . . . . . . . 79<br />

7.9. The cumulative distribution functions <strong>of</strong> two characteristics <strong>of</strong> the three P2P video overlay<br />

tree algorithms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

7.10.The <strong>in</strong>tra ISP data volume per peer for each <strong>to</strong>pology and overlay network algorithm. . . . 84<br />

7.11.The <strong>in</strong>tra ISP data volume per peer for each <strong>to</strong>pology and overlay network algorithm<br />

normalized by the mean <strong>of</strong> the Random overlay algorithm for each <strong>to</strong>pology. . . . . . . . . 85<br />

7.12.The cross-border data volume for each <strong>to</strong>pology and overlay network algorithm. . . . . . . 85<br />

7.13.The l<strong>in</strong>k stretch for each <strong>to</strong>pology and overlay. . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

7.14.The RASP system architecture with annotations on system cost related parts. . . . . . . . . 87<br />

7.15.Schema <strong>of</strong> the SDM distribution tree and the relevant parts for assess<strong>in</strong>g the number <strong>of</strong><br />

used OpenFlow rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

7.16.The number <strong>of</strong> OpenFlow flow modification messages that <strong>in</strong>stall new rules dur<strong>in</strong>g the<br />

network experiments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />

7.17.The number <strong>of</strong> OpenFlow message required for add<strong>in</strong>g peers <strong>to</strong> a RASP <strong>in</strong>stance. . . . . . . 92<br />

viii<br />

List <strong>of</strong> Figures


List <strong>of</strong> Tables<br />

2.1. The packet header match fields available <strong>in</strong> OpenFlow 1.0. . . . . . . . . . . . . . . . . . . . 13<br />

5.1. Comparison <strong>of</strong> multicast concepts (based on [46, p. 158]). . . . . . . . . . . . . . . . . . . . 33<br />

5.2. OpenFlow rule schema for mark<strong>in</strong>g packets addresses <strong>to</strong> a SDM multicast group on the<br />

group’s mark<strong>in</strong>g switches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5.3. OpenFlow rule schema for writ<strong>in</strong>g a member’s socket <strong>in</strong>formation <strong>to</strong> packets <strong>of</strong> a SDM<br />

multicast group on the group’s member switches. . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

5.4. OpenFlow rule schema for switch S4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

5.5. OpenFlow rule schema for switch S9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

6.1. Throughput <strong>of</strong> the three OpenFlow s<strong>of</strong>tware switches as measured by iperf. . . . . . . . . . 53<br />

6.2. OpenFlow 1.0 flowtables for a LAN switch <strong>in</strong> the emulated network. . . . . . . . . . . . . . . 56<br />

6.3. RASP controller service API overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

6.4. Topology application API overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.5. Virtual <strong>Peer</strong> application API overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

6.6. SDM application API overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

6.7. OpenFlow matcher G match for packets <strong>of</strong> SDM group G. . . . . . . . . . . . . . . . . . . . . . . 67<br />

6.8. OpenFlow rules dur<strong>in</strong>g the three steps <strong>of</strong> the SDM tree forward<strong>in</strong>g example. . . . . . . . . 68<br />

7.1. Overview <strong>of</strong> the methods and <strong>to</strong>ols used for evaluation. . . . . . . . . . . . . . . . . . . . . . 82<br />

7.2. Average number <strong>of</strong> OpenFlow rules per device class for the scenario used for evaluation. . 89<br />

ix


1 Introduction<br />

Internet video stream<strong>in</strong>g causes the second largest transfer volume and is the second fastest grow<strong>in</strong>g<br />

application class <strong>in</strong> Internet traffic analysis [58, p. 82]. In the American broadband access market,<br />

stream<strong>in</strong>g video is the source <strong>of</strong> 50% <strong>of</strong> the traffic volume and still expected <strong>to</strong> <strong>in</strong>crease its volume<br />

share [101]. Many large video stream<strong>in</strong>g services use CDNs or closed multicast systems. An approach<br />

that works without fixed <strong>in</strong>frastructure is <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> (P2P) video stream<strong>in</strong>g. Us<strong>in</strong>g P2P systems enables<br />

Internet wide use <strong>of</strong> video stream<strong>in</strong>g, but it is a burden for Internet Service Providers (ISPs) due <strong>to</strong> its<br />

hard <strong>to</strong> control, unpredictable, and unfavorable traffic patterns.<br />

S<strong>of</strong>tware Def<strong>in</strong>ed Network<strong>in</strong>g (SDN) and especially its OpenFlow variant is a network paradigm that<br />

ga<strong>in</strong>s traction <strong>in</strong> the network market [1] and which is already used <strong>in</strong> production environments [40].<br />

OpenFlow enables network doma<strong>in</strong>s and, more importantly, the forward<strong>in</strong>g hardware network switches<br />

and routers <strong>to</strong> be controlled remotely by s<strong>of</strong>tware. At the same time, it allows a logically centralized view<br />

on the network state. These features are <strong>of</strong> immediate relevance for efficient and centralized network<br />

management. Furthermore, new network<strong>in</strong>g concepts can be applied that have been unfeasible before.<br />

This work <strong>in</strong>vestigates how OpenFlow can be used <strong>to</strong> improve <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> (P2P<br />

LVS) for users, opera<strong>to</strong>rs and ISPs. The approach is based on cross-<strong>layer</strong> optimization, as OpenFlow<br />

is a network <strong>layer</strong> technology and P2P LVS an application <strong>layer</strong> technology. It focuses on the network<br />

doma<strong>in</strong>s <strong>of</strong> residential broadband access ISPs, whose cus<strong>to</strong>mers are the ma<strong>in</strong> users <strong>of</strong> video stream<strong>in</strong>g<br />

applications.<br />

The concept presented <strong>in</strong> this work, Rent-a-Super <strong>Peer</strong> (RASP), is a service that enables users <strong>of</strong> P2P<br />

LVS systems <strong>to</strong> <strong>in</strong>crease their network resources with<strong>in</strong> a ISP network, thereby provid<strong>in</strong>g them super peer<br />

like capabilities. The service is <strong>of</strong>fered by residential broadband ISPs for users outside their networks <strong>to</strong><br />

distribute their video streams with<strong>in</strong> the ISP’s network <strong>in</strong> an efficient way. This concept allows us<strong>in</strong>g<br />

the system on-demand. The generic cross-<strong>layer</strong> system enables P2P LVS <strong>to</strong> <strong>in</strong>crease its number <strong>of</strong> super<br />

peers, which leads <strong>to</strong> improved system performance. At the same time, it improves the ISPs’ role <strong>in</strong> P2P<br />

LVS by <strong>in</strong>creas<strong>in</strong>g their control on P2P LVS traffic and mak<strong>in</strong>g its transmission more efficient and, thus,<br />

reduc<strong>in</strong>g the generated traffic volume.<br />

The approach <strong>of</strong> the service and its design is presented and discussed <strong>in</strong> this work. A pro<strong>to</strong>typical<br />

implementation is described and its conceptual characteristics evaluated. OpenFlow is a new technology<br />

and its usage as well as its application <strong>to</strong> specific application doma<strong>in</strong>s is not extensively documented yet.<br />

Hence, this work should give an <strong>in</strong>sight on how an OpenFlow application can be designed and evaluated.<br />

For design<strong>in</strong>g the service, it is assumed that, <strong>in</strong> the future, OpenFlow will be adopted <strong>in</strong> most network<strong>in</strong>g<br />

doma<strong>in</strong>s, <strong>in</strong>clud<strong>in</strong>g ISPs.<br />

1.1 Goal and Contribution<br />

The goals <strong>of</strong> the RASP service are threefold: improv<strong>in</strong>g P2P LVS systems as well as <strong>in</strong>creas<strong>in</strong>g the transmission<br />

efficiency and the control <strong>of</strong> P2P LVS traffic <strong>in</strong> ISP networks.<br />

The service aims <strong>to</strong> improve P2P LVS systems by creat<strong>in</strong>g an on-demand service <strong>in</strong> ISP networks that<br />

provides super peer like network performance <strong>to</strong> normal peers. The services works for peers outside the<br />

ISP network by provid<strong>in</strong>g network resources for other peers <strong>in</strong>side the network. In addition <strong>to</strong> that, the<br />

1


service provides them with a network <strong>layer</strong> proxy presence with<strong>in</strong> the ISP network. The transmission<br />

efficiency is <strong>in</strong>creased by us<strong>in</strong>g a network <strong>layer</strong> multicast mechanism for distribut<strong>in</strong>g the video stream. It<br />

uses unicast IP addresses and its usage is transparent for its users outside the ISP’s OpenFlow network.<br />

This approach <strong>in</strong> comb<strong>in</strong>ation with the network <strong>layer</strong> proxy enables the ISP <strong>to</strong> have full control <strong>of</strong> the<br />

service and its network traffic.<br />

The contribution <strong>of</strong> this work is the design <strong>of</strong> network <strong>layer</strong> service for enabl<strong>in</strong>g generic, on-demand<br />

ISP-owned <strong>Peer</strong>s [89]. It is based OpenFlow and is aimed at exploit<strong>in</strong>g the performance and efficiency <strong>of</strong><br />

OpenFlow hardware. The RASP service provides the network resources, while the P2P LVS users provide<br />

the peer’s comput<strong>in</strong>g resources and operation. The respective applications providers add the <strong>in</strong>tegration<br />

<strong>of</strong> the service <strong>in</strong><strong>to</strong> P2P LVS systems. Due <strong>to</strong> its generic approach, the service can be <strong>in</strong>tegrated <strong>in</strong><strong>to</strong> a wide<br />

range <strong>of</strong> P2P LVS systems. This is possible because it does not require peers <strong>to</strong> support special network<br />

pro<strong>to</strong>cols such as IP multicast.<br />

1.2 Outl<strong>in</strong>e<br />

An overview <strong>of</strong> P2P LVS systems, ISPs, their relationship, and OpenFlow is given <strong>in</strong> Chapter 2. The state<br />

<strong>of</strong> the art on improvements <strong>of</strong> P2P LVS systems, their cooperation with ISPs, and approaches <strong>to</strong> <strong>in</strong>tegrate<br />

network <strong>layer</strong> multicast <strong>in</strong> P2P LVS systems is described <strong>in</strong> Chapter 3. The requirements for OpenFlowbased<br />

services <strong>of</strong>fered by ISPs <strong>to</strong> P2P LVS systems are discussed <strong>in</strong> Chapter 4. The system design <strong>of</strong><br />

RASP is described <strong>in</strong> Chapter 5, its implementation for evaluation <strong>in</strong> Chapter 6. The system is evaluated<br />

<strong>in</strong> Chapter 7. Its results are summed up <strong>in</strong> Chapter 8, f<strong>in</strong>ally and an outlook on the next steps <strong>in</strong> the<br />

research is given.<br />

2 1. Introduction


2 Background<br />

In this section, the relevant background on the research areas <strong>of</strong> P2P LVS, ISPs and OpenFlow is given.<br />

The his<strong>to</strong>rical development <strong>of</strong> live video stream<strong>in</strong>g on the Internet is described <strong>in</strong> Section 2.1, beg<strong>in</strong>n<strong>in</strong>g<br />

from IP multicast <strong>to</strong> <strong>to</strong>day’s P2P LVS systems. An <strong>in</strong>troduction <strong>in</strong><strong>to</strong> the structure <strong>of</strong> the Internet and the<br />

role <strong>of</strong> ISPs is given <strong>in</strong> Section 2.2. Furthermore, their relationship with P2P LVS systems is described.<br />

Lastly, the SDN variant OpenFlow is <strong>in</strong>troduced and relevant features described <strong>in</strong> Section 2.3.<br />

2.1 Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong><br />

Live video stream<strong>in</strong>g is only one <strong>of</strong> three forms <strong>of</strong> Internet video application types, the others are video<br />

file shar<strong>in</strong>g, and video on demand. <strong>Video</strong> file shar<strong>in</strong>g works similar <strong>to</strong> shar<strong>in</strong>g <strong>of</strong> other files; the videos<br />

are downloaded and watched some time later. When us<strong>in</strong>g video on demand, the videos are played<br />

back while still be<strong>in</strong>g downloaded. In addition <strong>to</strong> that, live video streams are watched synchronously by<br />

all clients. The synchronicity <strong>of</strong> the playback <strong>of</strong> live video stream<strong>in</strong>g is def<strong>in</strong>ed by application specific<br />

deadl<strong>in</strong>es. If the deadl<strong>in</strong>es are met the playback is considered synchronous [119, pp. 3548,3589]. The<br />

two major applications <strong>of</strong> live video stream<strong>in</strong>g are video conferenc<strong>in</strong>g and Internet Pro<strong>to</strong>col Television<br />

(IPTV). Typical differences <strong>in</strong> the usage characteristics between video conferenc<strong>in</strong>g and IPTV are the<br />

delay deadl<strong>in</strong>e and the number <strong>of</strong> users. In video conferenc<strong>in</strong>g, the number <strong>of</strong> participat<strong>in</strong>g users is<br />

small as is the delay deadl<strong>in</strong>e. For IPTV the delay deadl<strong>in</strong>e is higher, and the number <strong>of</strong> users is usually<br />

much larger [65, p. 14].<br />

In live video stream<strong>in</strong>g, a source sends a video stream <strong>to</strong> multiple <strong>of</strong> consumers. The natural way<br />

<strong>of</strong> handl<strong>in</strong>g this communication is multicast. The concept and application <strong>of</strong> multicast is described <strong>in</strong><br />

Section 2.1.1, its application for stream<strong>in</strong>g live video is described <strong>in</strong> Section 2.1.2<br />

2.1.1 Multicast on the Internet<br />

The different approaches on implement<strong>in</strong>g multicast services are presented <strong>in</strong> this section. Multicast<br />

communication is a service for send<strong>in</strong>g one message <strong>to</strong> multiple recipients. Without such a service, the<br />

sender has <strong>to</strong> send the message <strong>to</strong> each recipient separately. The sender and its recipients <strong>in</strong> multicast<br />

services constitute a multicast group; the recipients are also called members <strong>in</strong> this context. Computer<br />

systems connected <strong>to</strong> the network (hosts) can jo<strong>in</strong> and leave groups. Members <strong>of</strong> a group receive its<br />

messages and–depend<strong>in</strong>g on the system–can send messages <strong>to</strong> the group. However, <strong>in</strong> this work only<br />

multicast services with one sender per group are discussed. Components required by all types <strong>of</strong> multicast<br />

services are functionality for creat<strong>in</strong>g, jo<strong>in</strong><strong>in</strong>g and leav<strong>in</strong>g groups. Further required functionalities are<br />

rout<strong>in</strong>g and signal<strong>in</strong>g <strong>of</strong> the multicast group <strong>in</strong>formation as well as an address<strong>in</strong>g scheme for identify<strong>in</strong>g<br />

multicast packets and their dest<strong>in</strong>ations.<br />

A multicast service can be implemented on different levels <strong>of</strong> the ISO/OSI network <strong>layer</strong> reference<br />

model. In the next paragraphs, a short overview over the his<strong>to</strong>rical development <strong>of</strong> multicast services is<br />

given.<br />

3


IP Multicast<br />

The implementation <strong>of</strong> multicast services at the network <strong>layer</strong> is very efficient. This concept, IP multicast,<br />

has been a research <strong>to</strong>pic s<strong>in</strong>ce 1990 [22]. The goal <strong>of</strong> IP multicast is <strong>to</strong> create facilities for Internet<br />

wide multicast communications. The fundamental mechanism <strong>of</strong> all IP multicast services is the distribution<br />

tree. The members <strong>of</strong> a multicast group are connected by a tree spann<strong>in</strong>g, which consists <strong>of</strong> IP<br />

multicast enabled routers. Multicast Packets are forwarded along the tree and duplicated at jo<strong>in</strong>ts <strong>of</strong> the<br />

tree.<br />

IP multicast consists <strong>of</strong> a number <strong>of</strong> components that are implemented us<strong>in</strong>g different network pro<strong>to</strong>cols.<br />

Multicast groups are identified and addressed by IP addresses from a special range [21]. Group management,<br />

jo<strong>in</strong><strong>in</strong>g and leav<strong>in</strong>g is enabled by a network <strong>layer</strong> group management pro<strong>to</strong>col (e.g. IGMPv3<br />

[15]) that is used between hosts and routers. To jo<strong>in</strong> a group, a host sends an IGMP message which is<br />

forwarded through the network <strong>to</strong>wards the multicast management router. The management router adds<br />

the hosts <strong>to</strong> the member list, and adjusts the multicast tree accord<strong>in</strong>gly. The setup and ma<strong>in</strong>tenance <strong>of</strong><br />

the routes that constitute the multicast tree is provided by IP multicast rout<strong>in</strong>g pro<strong>to</strong>cols, such as PIM-SM<br />

[28]. Forward<strong>in</strong>g <strong>of</strong> IP multicast packets is done by the normal method <strong>of</strong> packet forward<strong>in</strong>g but with<br />

special IP addresses. The pro<strong>to</strong>cols described up <strong>to</strong> this po<strong>in</strong>t are for usage with<strong>in</strong> a network doma<strong>in</strong>.<br />

Interconnect<strong>in</strong>g multicast doma<strong>in</strong>s is enabled by <strong>in</strong>ter-doma<strong>in</strong> multicast rout<strong>in</strong>g pro<strong>to</strong>cols (e.g. MSDP<br />

[27]). A wide range <strong>of</strong> IP multicast pro<strong>to</strong>cols exists, the ones mentioned here are prom<strong>in</strong>ent examples.<br />

Today, IP multicast is not deployed on a global basis. Only isolated IP multicast doma<strong>in</strong>s, called multicast<br />

islands, exist. For example, some ISPs use IP multicast <strong>to</strong> deliver services like IPTV with<strong>in</strong> their<br />

networks as for example described <strong>in</strong> [66]. The reasons for the failure <strong>of</strong> IP multicast <strong>to</strong> be deployed<br />

globally on the Internet are discussed <strong>in</strong> [23]. Although the paper is more than 10 years old, many<br />

arguments still hold. From a technical perspective, the deployment, management, and operations <strong>of</strong> IP<br />

multicast are complex and thus expensive. One problem that h<strong>in</strong>ders the global deployment <strong>of</strong> IP multicast<br />

is the necessity <strong>to</strong> s<strong>to</strong>re the state <strong>of</strong> multicast groups <strong>in</strong> the network. IP multicast enabled routers<br />

have <strong>to</strong> s<strong>to</strong>re <strong>in</strong>formation on the multicast distribution tree on each group they are part <strong>of</strong>. This characteristic<br />

is the reason for the unfavorable scal<strong>in</strong>g characteristics <strong>of</strong> IP multicast, which is a cause for the<br />

failure <strong>of</strong> Internet-wide IP multicast. Today the scalability aspect <strong>of</strong> IP multicast is still an active research<br />

<strong>to</strong>pic [92]. Admission control and security features are not part <strong>of</strong> most IP multicast pro<strong>to</strong>cols. Hence,<br />

ISPs have no control over IP multicast communications, its users and usage, while its implementation<br />

is expensive. Hence, there are no <strong>in</strong>centives for the major network providers <strong>to</strong> deploy Internet wide IP<br />

multicast services for public consumption.<br />

Overlay Multicast and Application Level Multicast<br />

Application <strong>layer</strong> multicast and overlay multicast were developed <strong>in</strong> response <strong>to</strong> the slow adaption<br />

<strong>of</strong> IP Multicast. Both approaches construct a virtual application <strong>layer</strong> network. “The ma<strong>in</strong> differences<br />

among [...] IP multicast, application <strong>layer</strong> multicast, and overlay multicast, depend on whether the group<br />

management and data delivery control are implemented <strong>in</strong> network routers, and hosts, or <strong>in</strong>termediate<br />

proxy nodes.” [113, 526] In application <strong>layer</strong> multicast, hosts replicate the packets and manage the group<br />

features, which is approach similar <strong>to</strong> P2P. The approach <strong>of</strong> overlay multicast is <strong>to</strong> connect IP multicast<br />

doma<strong>in</strong>s us<strong>in</strong>g specialized hosts. They act as multicast proxies, connect<strong>in</strong>g the multicast islands <strong>in</strong> a<br />

P2P fashion. IP multicast and overlay multicast rely on the IP multicast pro<strong>to</strong>col, while application <strong>layer</strong><br />

multicast uses IP unicast only and therefore does not rely specialized routers.<br />

4 2. Background


2.1.2 <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong><br />

While IP multicast is the most efficient method <strong>to</strong> implement one <strong>to</strong> many communications, it is not<br />

widely deployed. Hence, alternatives such as application <strong>layer</strong> multicast are researched and used. One<br />

form <strong>of</strong> application <strong>layer</strong> multicast are P2P LVS systems. The concept <strong>of</strong> such systems is described <strong>in</strong> this<br />

paragraph. In the follow<strong>in</strong>g paragraph, an <strong>in</strong>sight <strong>in</strong><strong>to</strong> current research on P2P LVS is given.<br />

Applications are called P2P systems because they do net rely on servers <strong>to</strong> communicate. Instead,<br />

the application is run by the participat<strong>in</strong>g clients, the peers. Their communication paths form a virtual<br />

network on <strong>to</strong>p <strong>of</strong> the underly<strong>in</strong>g one, called overlay network. The underly<strong>in</strong>g network is called underlay<br />

network <strong>in</strong> this context.<br />

P2P systems are distributed systems <strong>in</strong> which participat<strong>in</strong>g entities (peers) share resources with the<br />

goal <strong>of</strong> runn<strong>in</strong>g applications mutually. Each peer acts as client and server, the application is consumed<br />

and provided by peers at the same time. Different P2P systems have been developed <strong>to</strong> <strong>of</strong>fer a range<br />

<strong>of</strong> applications such as file shar<strong>in</strong>g, content distribution, and application-level multicast [67, p. 72].<br />

The <strong>to</strong>pology <strong>of</strong> the overlay network can be arbitrary and is not bound <strong>to</strong> the <strong>to</strong>pology <strong>of</strong> the underlay<br />

network. However, the overlay networks performance is bounded by the resources and qualities <strong>of</strong> the<br />

underlay network.<br />

P2P LVS System<br />

Live video stream<strong>in</strong>g<br />

Service: <strong>Video</strong> distribution<br />

Overlay network<br />

Network communication<br />

Underlay network<br />

Figure 2.1.: A P2P LVS <strong>layer</strong> model (based on [67], p. 73).<br />

P2P LVS is an application <strong>of</strong> P2P systems for distribut<strong>in</strong>g live video streams. A <strong>layer</strong> model for such<br />

applications is depicted <strong>in</strong> Figure 2.1. The system is built on the underlay network, which is used for creat<strong>in</strong>g<br />

overlay network connections <strong>to</strong> other peers. The system uses them for management, ma<strong>in</strong>tenance,<br />

and message transport. A video distribution service is built on <strong>to</strong>p <strong>of</strong> the overlay network. It def<strong>in</strong>es<br />

the <strong>to</strong>pology and the behavior <strong>of</strong> peers dur<strong>in</strong>g video distribution. F<strong>in</strong>ally, the live video stream<strong>in</strong>g <strong>layer</strong><br />

creates a video stream for the consumption <strong>of</strong> the user. The general approach <strong>to</strong> live video stream<strong>in</strong>g<br />

<strong>in</strong> P2P systems is <strong>to</strong> split <strong>in</strong><strong>to</strong> small pieces, junks, and distribute them us<strong>in</strong>g the overlay network. The<br />

methods for distribut<strong>in</strong>g the video is either tree or mesh-based. In tree-based systems, the video distribution<br />

<strong>to</strong>pology forms a tree as shown <strong>in</strong> Figure 2.2a. Tree-based systems are application <strong>layer</strong> multicast<br />

systems. For each stream an arborescence is created, <strong>in</strong> which each peer immediately forwards the video<br />

data it receives along the arcs. The root <strong>of</strong> the arborescence is the source <strong>of</strong> the video, denoted by node A<br />

<strong>in</strong> the figure. The video parts 1,2, and 3 are available, as depicted by the blue boxes. These parts are<br />

consecutively sent <strong>to</strong> the downstream nodes B and C. Node C itself has two downstream nodes, <strong>to</strong> which<br />

it sends each part immediately after it is received. Nodes B, D, and E are leaf nodes, they receive the<br />

video stream but do not take part <strong>in</strong> its distribution.<br />

Mesh-based systems work similar <strong>to</strong> common file shar<strong>in</strong>g systems. As shown <strong>in</strong> Figure 2.2b, each<br />

peer ma<strong>in</strong>ta<strong>in</strong>s a list <strong>of</strong> currently relevant parts <strong>of</strong> the video. Neighbors exchange <strong>in</strong>formation on the<br />

2.1. Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> 5


parts they already received and on those they need. Based on this <strong>in</strong>formation the miss<strong>in</strong>g parts are<br />

exchanged, <strong>in</strong>itiated by either the receiver or sender <strong>of</strong> a part. In contrast <strong>to</strong> the tree <strong>to</strong>pology there is no<br />

predef<strong>in</strong>ed video dissem<strong>in</strong>ation path and no predef<strong>in</strong>ed sender and receiver roles. Neighbors are treated<br />

<strong>in</strong>dividually, while <strong>in</strong> tree systems all downstream neighbors <strong>of</strong> a node get the next part as soon as it is<br />

available [119, p. 3552,3553].<br />

1 2<br />

3<br />

A<br />

1<br />

2 3 4<br />

2<br />

2<br />

A<br />

2<br />

1 2<br />

3<br />

B<br />

C<br />

1 2<br />

3<br />

1<br />

2 3 4<br />

B<br />

3<br />

C<br />

1<br />

2 3 4<br />

1<br />

1<br />

3<br />

2<br />

1 2<br />

3<br />

D<br />

E<br />

1 2<br />

3<br />

1<br />

2 3 4<br />

D<br />

1<br />

E<br />

1<br />

2 3 4<br />

(a) Tree <strong>to</strong>pology<br />

(b) Mesh <strong>to</strong>pology<br />

Figure 2.2.: Tree and mesh <strong>to</strong>pologies for video stream distribution <strong>in</strong> P2P LVS. Blue boxes denote exist<strong>in</strong>g, white<br />

boxes miss<strong>in</strong>g parts <strong>of</strong> the video.<br />

The <strong>to</strong>pology <strong>of</strong> P2P LVS systems <strong>in</strong>fluences the performance characteristics <strong>of</strong> the system. Tree-based<br />

systems have the advantage <strong>of</strong> achiev<strong>in</strong>g much smaller playback delays than mesh-based systems [119,<br />

p. 3559]. Their transmission efficiency is higher, because the distribution tree is fixed. For mesh-based<br />

systems the distribution <strong>of</strong> the stream is negotiated between neighbors for every junk, hence the management<br />

overhead is higher. The disadvantage <strong>of</strong> tree-based systems is their susceptibility <strong>to</strong> peers leav<strong>in</strong>g<br />

the system unexpectedly. If a node fails, its complete tree <strong>of</strong> downstream node loses its video stream<br />

source. If a node <strong>in</strong> a level near the video source fails, such an event affects a large number <strong>of</strong> nodes.<br />

Multiple trees are used <strong>in</strong> some systems <strong>to</strong> mitigate this characteristic <strong>of</strong> tree <strong>to</strong>pologies. The video is<br />

split <strong>in</strong> several sub streams at the video source and each sub stream is distributed through a different<br />

tree. The sub streams are recomb<strong>in</strong>ed <strong>to</strong> a complete video stream before playback. Mesh-based systems<br />

have the advantage <strong>of</strong> be<strong>in</strong>g more resilient <strong>to</strong> peers leav<strong>in</strong>g and enter<strong>in</strong>g the system. Due <strong>to</strong> this trade<strong>of</strong>f,<br />

hybrid systems are developed which <strong>in</strong>clude either both <strong>to</strong>pology approaches for different parts <strong>of</strong> the<br />

system or allow the dynamic switch<strong>in</strong>g for adaptation <strong>to</strong> different situations [4, p. 183,184].<br />

P2P LVS issues<br />

A number <strong>of</strong> issues exist<strong>in</strong>g for P2P LVS systems. An overview over current research <strong>to</strong>pics is given<br />

<strong>in</strong> [4]. The issues can be categorized <strong>in</strong> three groups: underlay issues, overlay issues and application<br />

<strong>layer</strong> issues. Underlay issues comprise quality issues <strong>of</strong> network connections such as packet loss, high<br />

latency or fail<strong>in</strong>g l<strong>in</strong>ks. Also, <strong>in</strong>sufficient network resources <strong>in</strong>fluence the systems’ performance. One<br />

example are peers that are connected <strong>to</strong> the Internet by residential broadband Internet connections.<br />

These connections <strong>of</strong>ten exhibit asymmetric transmission capacities for upload and download, which<br />

restrict the number <strong>of</strong> downstream nodes a peer can forward the video stream <strong>to</strong>. In addition, the costs<br />

<strong>of</strong> the data volume might be an issue, for examples for broadband users with data volume limits <strong>in</strong> their<br />

contract.<br />

6 2. Background


The upload capacity <strong>of</strong> peers plays an important role <strong>in</strong> both <strong>to</strong>pologies. In trees it constra<strong>in</strong>ts out<br />

degree <strong>of</strong> the participat<strong>in</strong>g nodes, which <strong>in</strong> turn <strong>in</strong>fluences the trees depths and the playback delay [4,<br />

p. 181]. In mesh systems, upl<strong>in</strong>k capacities <strong>of</strong> a peers neighbor <strong>in</strong>fluences the number <strong>of</strong> them needed<br />

<strong>to</strong> receive all parts <strong>in</strong> time. In sum, the upload capacity determ<strong>in</strong>es how many neighbors a peer can<br />

distribute a video stream <strong>to</strong>. Also, studies show that the ratio <strong>of</strong> peers with low upl<strong>in</strong>k capacities <strong>to</strong> peers<br />

with high upl<strong>in</strong>k capacities <strong>in</strong>fluences the performance <strong>of</strong> the whole P2P LVS system [57],[64, p. 349].<br />

Overlay issues concern the P2P network itself. Problems <strong>in</strong>clude bad overlay connections, unresponsive<br />

peers or improper overlay <strong>to</strong>pologies. The unpredictable jo<strong>in</strong><strong>in</strong>g and leav<strong>in</strong>g <strong>of</strong> peers <strong>in</strong> the system is<br />

called churn. It is <strong>of</strong> relevance <strong>in</strong> P2P systems, as the peers are part <strong>of</strong> the overlay networks <strong>in</strong>frastructure.<br />

<strong>Peer</strong> churn can cause <strong>in</strong>stability <strong>in</strong> the system or be the reason for packet loss <strong>in</strong> the video stream <strong>in</strong> case<br />

<strong>of</strong> P2P LVS systems. Another problem is a high rate <strong>of</strong> new peers, which can overwhelm the system’s<br />

ability <strong>to</strong> <strong>in</strong>tegrate new peers; this phenomenon is also called flash crowd. Similar problems arise dur<strong>in</strong>g<br />

high rates <strong>of</strong> peers leav<strong>in</strong>g the system.<br />

Lastly application <strong>layer</strong> problems could arise, especially if the ISP <strong>of</strong> the user tries <strong>to</strong> mitigate the<br />

negative <strong>in</strong>fluence <strong>of</strong> P2P systems on the network. This could lead <strong>to</strong> throttl<strong>in</strong>g or block<strong>in</strong>g <strong>of</strong> P2P<br />

overlay connections, obstruct<strong>in</strong>g the user <strong>to</strong> use the overlay network.<br />

Approaches for mitigat<strong>in</strong>g these issues are an active research <strong>to</strong>pic. Besides optimiz<strong>in</strong>g the P2P LVS systems,<br />

mechanisms for the cooperation <strong>of</strong> different <strong>layer</strong>s, called cross-<strong>layer</strong> optimization, are researched.<br />

One is underlay awareness, which is the concept <strong>of</strong> consider<strong>in</strong>g the characteristics <strong>of</strong> the underlay network<br />

and adapt<strong>in</strong>g the overlay network accord<strong>in</strong>gly.<br />

2.2 Internet Service Providers<br />

ISPs play an important role <strong>in</strong> the Internet architecture. This work focuses on residential broadband<br />

Internet access. Other means <strong>of</strong> connect<strong>in</strong>g <strong>to</strong> the Internet like cellular networks are not discussed, as<br />

P2P systems are discussed <strong>in</strong> the context <strong>of</strong> fixed Internet connections only.<br />

In Section 2.2.1 an overview is given over the entities <strong>in</strong>volved <strong>in</strong> the Internet architecture and the<br />

role and classification <strong>of</strong> ISPs. The network characteristics <strong>of</strong> broadband access ISPs are described <strong>in</strong><br />

Section 2.2.2. The issue <strong>of</strong> P2P systems and their relation <strong>to</strong> ISPs is discussed <strong>in</strong> Section 2.2.3.<br />

2.2.1 Classification<br />

The Internet is made up <strong>of</strong> au<strong>to</strong>nomous systems, adm<strong>in</strong>istrative doma<strong>in</strong>s that are operated by entities<br />

that take the role <strong>of</strong> network opera<strong>to</strong>rs. This section gives an overview <strong>of</strong> different types <strong>of</strong> network<br />

opera<strong>to</strong>rs with a special focus on ISPs. ISPs are network opera<strong>to</strong>rs whose purpose is <strong>to</strong> provide network<br />

connectivity <strong>to</strong> other entities. The networks differ <strong>in</strong> geographical extent, network degree, data volume,<br />

and place <strong>in</strong> the <strong>to</strong>pology <strong>of</strong> the Internet. As shown <strong>in</strong> Figure 2.3, the networks can be classified <strong>in</strong><strong>to</strong><br />

a hierarchy. On the bot<strong>to</strong>m <strong>of</strong> the hierarchy are networks that are completely managed by a s<strong>in</strong>gle<br />

entity and do net sell their connectivity (cus<strong>to</strong>mer networks). They are geographically small, placed<br />

at the edge <strong>of</strong> the Internet <strong>to</strong>pology, exchange small data volumes and are mostly connected <strong>to</strong> only on<br />

other network, their ISP. Examples for this class are home, company, and educational networks as well as<br />

small host<strong>in</strong>g companies. The next class are regional or tier2 ISPs, that <strong>of</strong>fer transit connectivity for other<br />

networks, and large host<strong>in</strong>g and content companies. They might span a larger area, and are connected <strong>to</strong><br />

a larger number <strong>of</strong> other networks, and exchange larger data volumes. Examples for this class are small<br />

ISPs and midsized host<strong>in</strong>g companies. The <strong>to</strong>p class <strong>of</strong> the hierarchy is called the global Internet core.<br />

2.2. Internet Service Providers 7


It consists <strong>of</strong> worldwide operat<strong>in</strong>g transit ISPs (tier1), large content and host<strong>in</strong>g companies, and large<br />

consumer access providers. They have a high network degree and high transit data volumes. Examples<br />

for this class are tier1 ISPs like Verizon and Deutsche Telekom, large host<strong>in</strong>g and content companies<br />

like Google and content distribution companies like Akamai [58, pp. 78-80]. Internet eXchange Po<strong>in</strong>ts<br />

(IXPs) are located between the <strong>to</strong>p class and the middle class <strong>in</strong> the hierarchy. They are small networks<br />

(consist<strong>in</strong>g only <strong>of</strong> a few hundred nodes), span a small area but their transit traffic volume and network<br />

degree [7] are huge.<br />

Global Internet<br />

Core<br />

Global Transit &<br />

National<br />

Backbone ISPs<br />

"Hyper Giants"<br />

Large Content Provider Networks,<br />

Consumer Access Provider ,<br />

Content Distribution Networks<br />

IXP<br />

IXP<br />

IXP<br />

Regional/Tier 2<br />

ISPs<br />

ISP 1 ISP 2<br />

Cus<strong>to</strong>mer IP<br />

Networks<br />

Figure 2.3.: Hierarchical <strong>to</strong>pology <strong>of</strong> the Internet [58, p. 78].<br />

2.2.2 Network Topology and Characteristics<br />

Most entities from the global Internet core have no direct bus<strong>in</strong>ess contacts with end cus<strong>to</strong>mers. Large<br />

content and transit providers sell their services <strong>to</strong> other ISPs. The same is true for IXPs, content providers<br />

like Google and content distribution providers like Akamai. Often, IXPs operate at <strong>layer</strong> 2 only [7, p.<br />

165] and are not <strong>in</strong>volved with the Internet pro<strong>to</strong>col or services provided by upper <strong>layer</strong>s <strong>of</strong> the ISO/OSI<br />

reference model because <strong>of</strong> that. The only exceptions are large consumer access providers, for example<br />

Comcast. The approach described <strong>in</strong> this work is applicable for ISP with end costumers, because they are<br />

the ones <strong>in</strong>terested <strong>in</strong> P2P LVS services. Only a few consumer access providers are “Hyper Giants”, hence<br />

can be seen as a special case.<br />

Provid<strong>in</strong>g a service for P2P LVS systems and users implies a bus<strong>in</strong>ess relationship with residential<br />

broadband access users. P2P LVS are alternatives <strong>to</strong> Content Delivery Networks (CDNs), hence the<br />

content providers are not the target group. This leaves tier2 ISPs as the ma<strong>in</strong> audience for P2P LVS<br />

optimization services. Consumer ISPs share certa<strong>in</strong> network characteristics. A typical structure <strong>of</strong> a residential<br />

cus<strong>to</strong>mer ISP is shown <strong>in</strong> Figure 2.4.<br />

It consists <strong>of</strong> three types <strong>of</strong> networks: access networks, aggregation networks and one core network.<br />

Access networks consist <strong>of</strong> devices needed for the network l<strong>in</strong>ks <strong>to</strong> the cus<strong>to</strong>mers. Aggregation networks<br />

aggregate the cus<strong>to</strong>mer connections and connect them <strong>to</strong> the backbone. Both access and aggregation<br />

networks are either local or regional networks <strong>of</strong> which a number exists. There is one core network,<br />

which enables connectivity between the aggregation networks, the Internet and other parts <strong>of</strong> the ISP<br />

[33, p. 1][36, p. 1284]. The system is hierarchical; a tree is formed with the core network as root node,<br />

the access networks as leaves and aggregation networks as <strong>in</strong>ner nodes.<br />

8 2. Background


Internet<br />

ISP B<br />

ISP<br />

ISP C<br />

Access<br />

Core<br />

Aggregation<br />

Access<br />

Access<br />

Aggregation<br />

Access<br />

Access<br />

Access<br />

Broadband Cus<strong>to</strong>mer Networks<br />

Figure 2.4.: ISP network <strong>to</strong>pology by network types.<br />

Global rout<strong>in</strong>g on the Internet is provided by network connections <strong>to</strong> neighbor<strong>in</strong>g networks. The connectivity<br />

is redundant for resilience and performance. Each network opera<strong>to</strong>r applies its own policies for<br />

rout<strong>in</strong>g, with which the forward<strong>in</strong>g <strong>of</strong> its own and transit traffic can be <strong>in</strong>fluenced. This is not true for<br />

<strong>in</strong>com<strong>in</strong>g traffic however; it can enter the ISP network on any l<strong>in</strong>k that is connected <strong>to</strong> another network.<br />

Predictions on where traffic from other networks enters the ISP network are hence not possible. Apply<strong>in</strong>g<br />

special treatment for traffic from certa<strong>in</strong> networks is only possible when it is enabled on all <strong>in</strong>com<strong>in</strong>g<br />

l<strong>in</strong>ks.<br />

In the core network, IP and <strong>of</strong>ten MPLS are used for forward<strong>in</strong>g. It is optimized for high throughput<br />

and efficient forward<strong>in</strong>g, not for service delivery or its implementation. In the aggregation and access<br />

networks, the network pro<strong>to</strong>col used for forward<strong>in</strong>g depends on the access technology. When <strong>of</strong>fer<strong>in</strong>g Internet<br />

connectivity <strong>to</strong> consumers, the network access technology used has a big <strong>in</strong>fluence on the network.<br />

Network access technology groups are Digital Subscriber L<strong>in</strong>e (DSL), cable and Fiber-<strong>to</strong>-the-x (FTTX).<br />

DSL uses exist<strong>in</strong>g telephone wires as medium, cable works on exist<strong>in</strong>g TV cables while FTTX relies on<br />

fiber cables <strong>to</strong> or near the access location. The currently prevalent residential network access technology<br />

is DSL both worldwide and <strong>in</strong> Western Europe. The worldwide and western European market share <strong>of</strong><br />

DSL is about 60%. The market shares <strong>of</strong> cable are similar for both areas at about 20%. The market share<br />

<strong>of</strong> FTTX shows a difference, it is globally at about 20% and <strong>in</strong> western Europe below 10%. The rema<strong>in</strong><strong>in</strong>g<br />

market share represents other connection technologies that are not listed separately [105, 93].<br />

2.2. Internet Service Providers 9


2.2.3 ISPs and <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Systems<br />

P2P traffic makes up a considerable part <strong>of</strong> the traffic volumes [69, p. 90][58, p. 82]. Hence, it affects the<br />

ISPs and their networks, and here especially residential broadband access providers. This is because the<br />

users <strong>of</strong> P2P systems are predom<strong>in</strong>antly residential broadband users. Most <strong>of</strong> the data volume is caused<br />

by P2P file shar<strong>in</strong>g.<br />

The effects <strong>of</strong> P2P systems on ISPs are an active research <strong>to</strong>pic. While many issues arise from the usage<br />

<strong>of</strong> P2P file shar<strong>in</strong>g system, many aspects are valid for P2P LVS systems <strong>to</strong>o, even when they are used at a<br />

smaller scale. A good overview <strong>of</strong> the research is given <strong>in</strong> [25] and [20]. P2P systems cause considerable<br />

network traffic, while br<strong>in</strong>g<strong>in</strong>g no additional pr<strong>of</strong>it for the ISPs. Many overlay systems are unaware <strong>of</strong><br />

the underly<strong>in</strong>g network <strong>to</strong>pology lead<strong>in</strong>g <strong>to</strong> <strong>in</strong>efficient network usage. This could result <strong>in</strong> <strong>in</strong>creased<br />

usage <strong>of</strong> expensive l<strong>in</strong>ks. The amount <strong>of</strong> data volume leav<strong>in</strong>g the network could also <strong>in</strong>crease. This is an<br />

issue, because <strong>of</strong> the bill<strong>in</strong>g structure between network opera<strong>to</strong>rs on the Internet. While transit and tier1<br />

providers and large networks <strong>of</strong>ten have different approaches for settl<strong>in</strong>g their peer<strong>in</strong>g, smaller tier2<br />

providers have <strong>to</strong> pay for the data volume transferred. In addition, controll<strong>in</strong>g P2P traffic is difficult, as<br />

it is <strong>of</strong>ten encrypted. Unpredictable usage pattern and traffic flows <strong>in</strong> the overlay network make it more<br />

difficult for ISPs <strong>to</strong> manage their networks and <strong>to</strong> ensure service quality for all users.<br />

A large body <strong>of</strong> approaches on how <strong>to</strong> improve this situation have been developed, good overviews<br />

are given <strong>in</strong> [20] or [25]. Unilateral remedies deployed <strong>to</strong>day by ISP are throttl<strong>in</strong>g and block<strong>in</strong>g <strong>of</strong> P2P<br />

network traffic. However, due <strong>to</strong> the market competition, and legal issues such as net neutrality, research<br />

suggests other solutions. One approach that can be used by P2P systems is implement<strong>in</strong>g underlay awareness<br />

as described <strong>in</strong> Section 2.1.2. Even greater improvements are expected from cooperation between<br />

ISPs and P2P systems. Examples are <strong>to</strong>pology <strong>in</strong>formation services provided by ISPs that are used by P2P<br />

systems <strong>to</strong> improve their underlay awareness.<br />

2.3 Openflow<br />

OpenFlow is a variant <strong>of</strong> the SDN approach. Unlike earlier variants, it is supported by hardware vendors<br />

and dedicated high performance OpenFlow hardware is available. The technology is already deployed <strong>in</strong><br />

the <strong>in</strong>dustry [40], and is popular <strong>in</strong> the research community.<br />

In traditional networks, the forward<strong>in</strong>g elements, such as switches or routers, consist <strong>of</strong> specialized<br />

hardware for packet forward<strong>in</strong>g, the datapath, and a general purpose CPU that runs management s<strong>of</strong>tware.<br />

The management s<strong>of</strong>tware configures the datapath; both, the s<strong>of</strong>tware and the hardware are<br />

vendor specific and not standardized. The forward<strong>in</strong>g elements exchange relevant <strong>in</strong>formation us<strong>in</strong>g<br />

feature specific, standards based network pro<strong>to</strong>cols as shown <strong>in</strong> Figure 2.5a. The management s<strong>of</strong>tware<br />

<strong>of</strong> such a network represents a distributed system. This has the advantage <strong>of</strong> high robustness aga<strong>in</strong>st<br />

failures <strong>of</strong> s<strong>in</strong>gle forward<strong>in</strong>g elements. However, as no central entity exists, it is managed by chang<strong>in</strong>g<br />

sett<strong>in</strong>gs <strong>in</strong> the configuration <strong>of</strong> the management s<strong>of</strong>tware <strong>of</strong> s<strong>in</strong>gle forward<strong>in</strong>g elements. Due <strong>to</strong> the distributed<br />

network state, configuration or network changes take time <strong>to</strong> dissem<strong>in</strong>ate through the network<br />

[90, p. 8]. It is generally not possible for researchers or users <strong>to</strong> change the behavior <strong>of</strong> forward<strong>in</strong>g<br />

elements as the vendors do not disclose details <strong>of</strong> their implementation. Hence, <strong>of</strong>ten routers based on<br />

PCs are used, for which free open source rout<strong>in</strong>g s<strong>of</strong>tware exists. However, low performance makes s<strong>of</strong>tware<br />

routers unsuitable for large experiments or production deployments. To change the behavior <strong>of</strong> the<br />

network, the modification <strong>of</strong> the network pro<strong>to</strong>cols used is necessary. This is difficult, s<strong>in</strong>ce for changed<br />

network pro<strong>to</strong>cols the forward<strong>in</strong>g element’s s<strong>of</strong>tware needs <strong>to</strong> be changed. Hence, standards need <strong>to</strong> be<br />

10 2. Background


changed, which might <strong>in</strong> turn be implemented by the vendors. This situation slows down the research <strong>of</strong><br />

networks as well as the <strong>in</strong>troduction <strong>of</strong> new network<strong>in</strong>g features [71, p. 12].<br />

Feature Specific,<br />

Standards Based<br />

Network Pro<strong>to</strong>cols<br />

OpenFlow<br />

Normal Secure<br />

S<strong>of</strong>tware Channel<br />

Normal Flow<br />

Datapath Table<br />

OpenFlow<br />

Normal Secure<br />

S<strong>of</strong>tware Channel<br />

Normal Flow<br />

Datapath Table<br />

OpenFlow<br />

Normal Secure<br />

S<strong>of</strong>tware Channel<br />

Normal Flow<br />

Datapath Table<br />

(a) Traditional network<strong>in</strong>g scheme.<br />

OpenFlow<br />

Controller<br />

OpenFlow<br />

Switch<br />

Secure<br />

Channel<br />

Flow<br />

Table<br />

OpenFlow<br />

Pro<strong>to</strong>col<br />

OpenFlow<br />

Switch<br />

Secure<br />

Channel<br />

Flow<br />

Table<br />

OpenFlow<br />

Switch<br />

Secure<br />

Channel<br />

Flow<br />

Table<br />

(b) OpenFlow network<strong>in</strong>g scheme.<br />

Figure 2.5.: A traditional network<strong>in</strong>g scheme and the OpenFlow network<strong>in</strong>g scheme [see 72, p. 2].<br />

OpenFlow [72] <strong>in</strong>troduces a concept for manag<strong>in</strong>g computer networks that aims <strong>to</strong> change this situation.<br />

OpenFlow is a standard that def<strong>in</strong>es the configuration <strong>of</strong> datapaths and a pro<strong>to</strong>col for the remote<br />

configuration <strong>of</strong> them: the OpenFlow pro<strong>to</strong>col. This allows mov<strong>in</strong>g the management <strong>of</strong> the forward<strong>in</strong>g<br />

device <strong>to</strong> a central s<strong>of</strong>tware system, the OpenFlow controller, as shown <strong>in</strong> Figure 2.5b. An OpenFlow<br />

network is still a distributed system, but centralized management is possible. OpenFlow forward<strong>in</strong>g elements<br />

are called OpenFlow switches, the datapath <strong>of</strong> an OpenFlow switch is called flow table. OpenFlow<br />

datapaths can be implemented <strong>in</strong> hardware, which allows the configuration <strong>of</strong> high performance forward<strong>in</strong>g<br />

hardware with an open standard pro<strong>to</strong>col. The scopes <strong>of</strong> OpenFlow are Ethernet and TCP/IP<br />

based networks, specifically the OSI/ISO network <strong>layer</strong>s 2-4. The OpenFlow controller is s<strong>of</strong>tware that<br />

runs on a standard PC. It is connected <strong>to</strong> the OpenFlow switches, handles <strong>in</strong>com<strong>in</strong>g <strong>in</strong>formation from<br />

them and sends configuration messages.<br />

The general packet-forward<strong>in</strong>g scheme <strong>of</strong> OpenFlow is based on rules s<strong>to</strong>red <strong>in</strong> the flow table. Each<br />

rule consists <strong>of</strong> a matcher and actions. The matcher consists <strong>of</strong> values for packet header fields <strong>of</strong> Layers<br />

2-4 <strong>of</strong> the TCP/IP network stack, that are matched aga<strong>in</strong>st the values <strong>of</strong> arriv<strong>in</strong>g packets. If all values<br />

match, the list <strong>of</strong> associated actions is applied. Actions <strong>in</strong>clude the chang<strong>in</strong>g <strong>of</strong> header field values, send-<br />

2.3. Openflow 11


<strong>in</strong>g packets out a network <strong>in</strong>terface, dropp<strong>in</strong>g packets and send<strong>in</strong>g <strong>in</strong>com<strong>in</strong>g packets <strong>to</strong> the OpenFlow<br />

controller.<br />

In Section 2.3.1 an overview is given on OpenFlow, its implementations and the versions <strong>of</strong> the Open-<br />

Flow standard. The latter are described <strong>in</strong> more detail <strong>in</strong> Section 2.3.1.<br />

2.3.1 The OpenFlow Standard<br />

The OpenFlow standards, named “OpenFlow Switch Specification”, def<strong>in</strong>e a network pro<strong>to</strong>col and associated<br />

roles for communication between an OpenFlow controller and an OpenFlow switch. The purpose<br />

<strong>of</strong> the OpenFlow pro<strong>to</strong>col is <strong>to</strong> enable the remote operation <strong>of</strong> the OpenFlow switch from the OpenFlow<br />

controller. The ma<strong>in</strong> responsibilities are the configuration <strong>of</strong> the flow table on OpenFlow switches and<br />

handl<strong>in</strong>g associated events. These <strong>in</strong>clude packets that are forwarded from the OpenFlow switch <strong>to</strong> the<br />

controller for <strong>in</strong>spection and flow table related events like rules that are remove due <strong>to</strong> timeouts. The<br />

pro<strong>to</strong>col also enables the controller <strong>to</strong> configure and gather statistical data on the flow table. F<strong>in</strong>ally,<br />

OpenFlow switches send events on their status <strong>to</strong> the controller; examples are a change <strong>of</strong> a network<br />

<strong>in</strong>terface status. The configuration <strong>of</strong> the switch hardware is not part <strong>of</strong> the standard, however an accompany<strong>in</strong>g<br />

standard, the “OpenFlow Management and configuration pro<strong>to</strong>col” (OF-Config) [83]. Its<br />

responsibility <strong>in</strong>cludes the configuration <strong>of</strong> the network ports and accompany<strong>in</strong>g queues as well as configur<strong>in</strong>g<br />

the switches flow tables and their controller connections. The OF-Config pro<strong>to</strong>col is beyond the<br />

scope <strong>of</strong> this work.<br />

The OpenFlow standard describes a network pro<strong>to</strong>col and by def<strong>in</strong><strong>in</strong>g the semantics <strong>of</strong> the flow table<br />

configuration messages, the behavior <strong>of</strong> an OpenFlow switch. An overview over the versions <strong>of</strong> the<br />

OpenFlow standard and their port prom<strong>in</strong>ent features is given, then relevant versions are described <strong>in</strong><br />

detail <strong>in</strong> the rema<strong>in</strong>der <strong>of</strong> this section. The first OpenFlow standard for public use, version 1.0, was<br />

released <strong>in</strong> 2009 [78]. It conta<strong>in</strong>s a simple flow table model, which also illustrates basic OpenFlow<br />

concepts. A number <strong>of</strong> updates <strong>of</strong> the OpenFlow were released. Version 1.1 was published <strong>in</strong> 2011 [80]<br />

and <strong>in</strong>cludes, among other changes, a fundamental change <strong>of</strong> the flow table behavior. All OpenFlow<br />

versions release after 1.1 <strong>in</strong>troduces <strong>in</strong>cremental changes, but no major change as from version 1.0 <strong>to</strong> 1.1.<br />

OpenFlow version 1.2 [79] – published <strong>in</strong> 2011 – <strong>in</strong>troduces a new approach for packet match<strong>in</strong>g. Two<br />

versions <strong>of</strong> the standard were released <strong>in</strong> 2012, version 1.3 [81] and 1.3.1 [84]. OpenFlow version 1.3<br />

adds a number <strong>of</strong> supported network pro<strong>to</strong>cols, improves the connection <strong>to</strong> the controller and <strong>in</strong>troduces<br />

<strong>in</strong>teroperability <strong>to</strong> the OF-Config pro<strong>to</strong>col. The latest version <strong>of</strong> the standard, version 1.3.1, conta<strong>in</strong>s<br />

predom<strong>in</strong>antly corrections and small improvements. The last two standards will not be discussed <strong>in</strong><br />

details, as currently no complete implementations are available, neither for the controller nor for the<br />

switch.<br />

OpenFlow 1.0<br />

The process <strong>of</strong> packet handl<strong>in</strong>g <strong>in</strong> OpenFlow version 1.0 [78] starts with an <strong>in</strong>com<strong>in</strong>g packet. It is<br />

matched aga<strong>in</strong>st the rules <strong>in</strong> the flow table; the action list associated with the first match<strong>in</strong>g rule is<br />

applied <strong>to</strong> the packet. The rules <strong>in</strong> the flow table are ordered by their priority value. Figure 2.6 shows<br />

the operat<strong>in</strong>g schema <strong>of</strong> the flow table <strong>in</strong> OpenFlow version 1.0.<br />

For match<strong>in</strong>g, a set <strong>of</strong> packet header fields and the <strong>in</strong>gress port <strong>of</strong> the packets can be used as shown<br />

<strong>in</strong> Table 2.1. Match<strong>in</strong>g rules consist <strong>of</strong> values for one or more <strong>of</strong> the fields, which are matched aga<strong>in</strong>st<br />

the values <strong>of</strong> <strong>in</strong>com<strong>in</strong>g packets. Fields that should not be matched can be marked as wildcard value, <strong>in</strong><br />

this case all values match. For all fields except the IP addresses, match<strong>in</strong>g means that all bits <strong>of</strong> the given<br />

value and the packet data are equal. In case <strong>of</strong> IP addresses, a subnet mask may be set, <strong>in</strong> which case<br />

12 2. Background


Incom<strong>in</strong>g packet<br />

Matcher<br />

Matcher<br />

Matcher<br />

Flow Table<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

Action List<br />

F<strong>in</strong>d match<strong>in</strong>g rule<br />

Action List<br />

Action List<br />

Apply actions<br />

Figure 2.6.: Operat<strong>in</strong>g schema <strong>of</strong> the OpenFlow version 1.0 flow table.<br />

only a part <strong>of</strong> the IP addresses bits are used for match<strong>in</strong>g. The match<strong>in</strong>g <strong>of</strong> IP address subnet masks is an<br />

optional feature, not every OpenFlow is required <strong>to</strong> support it. The same is true for a number <strong>of</strong> actions.<br />

Due <strong>to</strong> the conceptual and explorative nature <strong>of</strong> this work, from here on, no dist<strong>in</strong>ction will be made<br />

between required and optional features. Instead, it is assumed that all features they are described <strong>in</strong> the<br />

standards are available for use.<br />

Ingress Port<br />

Packet Match Field<br />

Ethernet source address<br />

Ethernet dest<strong>in</strong>ation address<br />

Ether type<br />

VLAN id<br />

VLAN priority<br />

IP source address<br />

IP dest<strong>in</strong>ation address<br />

IP transport pro<strong>to</strong>col ID<br />

IP ToS bits<br />

TCP/UDP source port or ICMP type<br />

TCP/UDP dest<strong>in</strong>ation port or ICMP code<br />

Table 2.1.: The packet header match fields available <strong>in</strong> OpenFlow 1.0.<br />

If a rule matches, the associated actions are applied. Available actions <strong>in</strong>clude the chang<strong>in</strong>g <strong>of</strong> the<br />

values <strong>of</strong> the packet header fields that can be used for match<strong>in</strong>g, except for ICMP code and type. In<br />

addition <strong>to</strong> that, a packet can be forwarded <strong>to</strong> a s<strong>in</strong>gle port or all ports, <strong>to</strong> the controller or it can be<br />

dropped. The actions given <strong>in</strong> the list are applied <strong>in</strong> the order specified. An action list may <strong>in</strong>clude the<br />

repeated writ<strong>in</strong>g <strong>of</strong> header fields and multiple forward actions. If no rules match the packet, it is send<br />

<strong>to</strong> the controller for further <strong>in</strong>spection. For all ports, rules and tables, counters are kept <strong>to</strong> keep statistics<br />

on the packets processed.<br />

An important aspect <strong>of</strong> the OpenFlow standard is the <strong>in</strong>teraction <strong>of</strong> OpenFlow switches with the controller.<br />

As described, <strong>in</strong>com<strong>in</strong>g packets are sent <strong>to</strong> the controller <strong>in</strong> case no rules match or the match<strong>in</strong>g<br />

rules <strong>in</strong>clude a correspond<strong>in</strong>g forward<strong>in</strong>g action. There is no required behavior for the controller s<strong>of</strong>t-<br />

2.3. Openflow 13


ware <strong>in</strong> this case def<strong>in</strong>ed <strong>in</strong> the standard. For certa<strong>in</strong> applications however, the controller can use the<br />

packet <strong>in</strong>formation as basis for <strong>in</strong>stall<strong>in</strong>g new rules <strong>in</strong> the flow table. In addition <strong>to</strong> that, the controller<br />

may also send packets <strong>to</strong> an OpenFlow switch. They are associated with an action list that is applied on<br />

the switch. This list may <strong>in</strong>clude all actions described above and it is possible <strong>to</strong> handle the packet by the<br />

flow table. This facility enables a controller <strong>to</strong> send packets through connected OpenFlow switches.<br />

The ma<strong>in</strong> responsibility <strong>of</strong> the OpenFlow controller is the management <strong>of</strong> the flow table rules. Methods<br />

for add<strong>in</strong>g, modify<strong>in</strong>g and delet<strong>in</strong>g rules are available. For management, flow table rules are identified<br />

either by their exact matcher or by the notion <strong>of</strong> match<strong>in</strong>g equivalency. In the first case, a rule management<br />

command applies <strong>to</strong> the rule that exactly matches the management commands matcher. In the<br />

latter case, all rules that are matched by the commands matcher are affected. Hence, a delete command<br />

whose matcher conta<strong>in</strong>s wildcards for all fields would remove all rules from the flow table.<br />

Rules <strong>in</strong>stalled can be given timeout values, a s<strong>of</strong>t and a hard time. A rule with a hard timeout value is<br />

removed after the given time. A rule with a s<strong>of</strong>t timeout value is removed if there is no match<strong>in</strong>g packet<br />

for the given time. In both cases, a message is send <strong>to</strong> the controller conta<strong>in</strong><strong>in</strong>g <strong>in</strong>formation about which<br />

rule was removed due <strong>to</strong> what reason.<br />

OpenFlow 1.1<br />

OpenFlow version 1.1 <strong>in</strong>troduces a new packet-process<strong>in</strong>g scheme. Instead <strong>of</strong> the s<strong>in</strong>gle matcher that<br />

causes the application <strong>of</strong> an action list, a pipel<strong>in</strong>ed more flexible model is used. The packet process<strong>in</strong>g<br />

consists <strong>of</strong> multiple tables, each with a different set <strong>of</strong> rules. Packets travers<strong>in</strong>g the table pipel<strong>in</strong>e are<br />

associated with a metadata field and an action set, which is executed at the end <strong>of</strong> the process<strong>in</strong>g and<br />

which can be changed by each rule. The action set is kept for each packet dur<strong>in</strong>g the process<strong>in</strong>g pipel<strong>in</strong>e.<br />

Each available action can be <strong>in</strong>cluded <strong>in</strong> the set once; the execution order <strong>of</strong> the set is predef<strong>in</strong>ed by the<br />

action types. The packet-process<strong>in</strong>g model <strong>of</strong> OpenFlow 1.1 is shown <strong>in</strong> Figure 2.7.<br />

Incom<strong>in</strong>g packets are processed <strong>in</strong> flow table 0, similar <strong>to</strong> the method used <strong>in</strong> OpenFlow 1.0. However,<br />

each rule has an associated <strong>in</strong>struction set <strong>in</strong>stead <strong>of</strong> an action list. The <strong>in</strong>struction set may conta<strong>in</strong><br />

one rule <strong>of</strong> each <strong>in</strong>struction type. Instructions exist for modification <strong>of</strong> the action set. In addition, an<br />

<strong>in</strong>struction allows the immediate application <strong>of</strong> an action list, similar <strong>to</strong> the OpenFlow 1.0 flow table<br />

operation. As shown <strong>in</strong> Figure 2.7, at the end <strong>of</strong> the process<strong>in</strong>g pipel<strong>in</strong>e each packets action set is applied.<br />

P P action set<br />

P<br />

action set<br />

Incom<strong>in</strong>g packet<br />

Flow<br />

Table 0<br />

Flow<br />

Table 1<br />

...<br />

Flow<br />

Table n<br />

P<br />

action set<br />

Apply <strong>in</strong>struction<br />

set<br />

Apply <strong>in</strong>struction<br />

set<br />

Apply action<br />

set<br />

Figure 2.7.: Operat<strong>in</strong>g schema <strong>of</strong> the OpenFlow version 1.1 packet-process<strong>in</strong>g pipel<strong>in</strong>e.<br />

The pipel<strong>in</strong>ed packet process<strong>in</strong>g allows the reuse and comb<strong>in</strong>ation <strong>of</strong> rules. In OpenFlow 1.0 each<br />

packet is matched by exactly one matcher, which is associated with exactly one predef<strong>in</strong>ed action list.<br />

Pipel<strong>in</strong>ed process<strong>in</strong>g changes this situation, as each packet can be matched by a number <strong>of</strong> rules. For example,<br />

a firewall implementation <strong>in</strong> OpenFlow is considered. First, each packet is checked if the security<br />

policy allows it <strong>to</strong> be forwarded. If this is the case, the output port is set and the packet is forwarded.<br />

14 2. Background


With OpenFlow 1.0, for each comb<strong>in</strong>ation <strong>of</strong> m security policy entries and n next hops a rule has <strong>to</strong> be<br />

created. With OpenFlow 1.1, the security policies and forward<strong>in</strong>g rules can be implemented us<strong>in</strong>g two<br />

different tables. Us<strong>in</strong>g OpenFlow 1.0 n ∗ m rules need <strong>to</strong> be created; OpenFlow 1.1 only requires n + m<br />

rules.<br />

The table layout can be def<strong>in</strong>ed by the controller. For each rule, the next table id <strong>to</strong> cont<strong>in</strong>ue process<strong>in</strong>g<br />

can be set us<strong>in</strong>g a correspond<strong>in</strong>g <strong>in</strong>struction. Furthermore, for each table, the behavior <strong>in</strong> case no rules<br />

matches can be def<strong>in</strong>ed. This <strong>in</strong>cludes the possibility <strong>to</strong> cont<strong>in</strong>ue the process<strong>in</strong>g at another table. One<br />

restriction is that the next table id for process<strong>in</strong>g has <strong>to</strong> be larger than the old one.<br />

In addition <strong>to</strong> pipel<strong>in</strong>ed process<strong>in</strong>g, OpenFlow version 1.1 <strong>in</strong>troduces groups. Groups are associated<br />

with a type and a list <strong>of</strong> actions buckets, which <strong>in</strong> turn conta<strong>in</strong> action sets. The group type all replicates<br />

the packet for each <strong>of</strong> the action buckets. After application, pipel<strong>in</strong>ed process<strong>in</strong>g is cont<strong>in</strong>ued for all<br />

packets. Groups are referenced by their id and can be utilized by apply<strong>in</strong>g a correspond<strong>in</strong>g action <strong>to</strong><br />

packets. An application example for the group type all is multicast. For each multicast group a group<br />

entry is created, for each next hop <strong>of</strong> a group an action bucket is added. Each action bucket then conta<strong>in</strong>s<br />

an output action for the correspond<strong>in</strong>g <strong>in</strong>terface where the next hop is connected.<br />

OpenFlow 1.2<br />

The ma<strong>in</strong> change <strong>in</strong> OpenFlow 1.2 is extensible match support. Instead <strong>of</strong> us<strong>in</strong>g a predef<strong>in</strong>ed set <strong>of</strong><br />

matchers, extensible matchers <strong>in</strong>troduce a data structure for describ<strong>in</strong>g match fields. For select<strong>in</strong>g which<br />

fields should match, the notion <strong>of</strong> wildcards – as used <strong>in</strong> OpenFlow 1.0 – is abandoned. Instead, for<br />

each field its extensible match description and comparison value is <strong>in</strong>cluded. The description <strong>in</strong>cludes<br />

the field that should be matched and a bitmask that is applied for match<strong>in</strong>g. This approach enables the<br />

application <strong>of</strong> arbitrary bitmasks for match<strong>in</strong>g <strong>of</strong> most fields. This approach enables e.g. the match<strong>in</strong>g <strong>of</strong><br />

a s<strong>in</strong>gle bit <strong>of</strong> a packets IP address.<br />

In addition, OpenFlow version 1.2 <strong>in</strong>troduces support for IPv6 and MPLS and the VLAN support is<br />

improved.<br />

2.3.2 OpenFlow Switches<br />

OpenFlow has attracted a large number <strong>of</strong> companies and organizations [1]. A wide variety <strong>of</strong> OpenFlow<br />

controller s<strong>of</strong>tware, OpenFlow switch s<strong>of</strong>tware and hardware is available, both by commercial vendors<br />

and by open source projects. While OpenFlow s<strong>of</strong>tware switches are convenient for test<strong>in</strong>g and some<br />

usage scenarios, the ma<strong>in</strong> advantage <strong>of</strong> OpenFlow are hardware switches. The most prom<strong>in</strong>ent feature<br />

<strong>of</strong> OpenFlow hardware is the match<strong>in</strong>g hardware, <strong>of</strong> which the most efficient implementation is based on<br />

Content-addressable Memory (CAM). CAM allows the lookup <strong>of</strong> bit field matches <strong>in</strong> one clock cycle [88,<br />

p. 712]. Two types <strong>of</strong> CAM exists, one that implements exact bit matches and one that allows wildcard<br />

bits. CAM is already used <strong>in</strong> <strong>to</strong>day’s network hardware, the OpenFlow pro<strong>to</strong>col enables its usage based<br />

on an open standard. However, CAM has a high power consumption, its size is restricted [88, p. 1] and<br />

is expensive [68, p. 81].<br />

As each OpenFlow matcher requires a certa<strong>in</strong> amount <strong>of</strong> CAM, the amount <strong>of</strong> CAM becomes a restriction.<br />

Therefore, one restriction <strong>of</strong> OpenFlow hardware switches is the number <strong>of</strong> rules the devices<br />

can host. The maximum number <strong>of</strong> supported flow entries for hardware switches could not be found<br />

<strong>in</strong> literature, however a vendor claims for a contemporary OpenFlow switch <strong>to</strong> support up <strong>to</strong> 160,000<br />

flows [74]. Information on older hardware shows much smaller numbers, for example between 512<br />

and 1024 entries <strong>in</strong> [75, p. 30]. Like most controllers and switches available at the time <strong>of</strong> writ<strong>in</strong>g, it<br />

2.3. Openflow 15


supports OpenFlow 1.0 only. Information on the numbers <strong>of</strong> supported OpenFlow 1.1 rules is not available<br />

yet. The OpenFlow features that are implemented <strong>in</strong> hardware vary between devices. Furthermore,<br />

the number <strong>of</strong> supported rules is different for each feature [86]. Hence, the hardware restrictions <strong>of</strong><br />

contemporary OpenFlow switch hardware are not obvious; they require an analysis for each device.<br />

The sizes and prices <strong>of</strong> available CAM are analyzed <strong>in</strong> [68]. Commercial available devices <strong>in</strong>clude<br />

CAM chips with 512,000 40-bit entries for match<strong>in</strong>g. Given that each OpenFlow 1.1 match field can be<br />

implemented <strong>in</strong> one entry and consumes at maximum 128bit for an IPv6 address, devices with 100,000<br />

flow entries seem feasible. This number is supported by the vendor reference mentioned earlier <strong>in</strong> this<br />

section on devices with a 160,000 OpenFlow rule capacity.<br />

16 2. Background


3 Related Work<br />

No relevant approaches exist that aim <strong>to</strong> provide a similar service that is local <strong>to</strong> an ISP. The goal <strong>of</strong><br />

most works is <strong>to</strong> improve and analyze P2P LVS system at a global level. However, due <strong>to</strong> its cross-<strong>layer</strong><br />

approach, which aims <strong>to</strong> be useful for ISPs and P2P LVS system opera<strong>to</strong>rs as well as users, the RASP<br />

service is related <strong>to</strong> a wide range <strong>of</strong> research <strong>to</strong>pics.<br />

Research on ISP and P2P cooperation is presented <strong>in</strong> Section 3.1. Improvements for P2P systems by<br />

<strong>in</strong>tegrat<strong>in</strong>g IP multicast islands and us<strong>in</strong>g super peers are described <strong>in</strong> Section 3.3 and Section 3.2. Approaches<br />

on improv<strong>in</strong>g IP multicast are <strong>in</strong>troduced <strong>in</strong> Section 3.4, OpenFlow-based multicast approaches<br />

<strong>in</strong> Section 3.5.<br />

3.1 ISP and <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Cooperation<br />

The approach <strong>in</strong> this work is us<strong>in</strong>g cross-<strong>layer</strong> optimization for P2P systems and ISPs. Specifically, both<br />

stakeholders should cooperate with the goal <strong>of</strong> improv<strong>in</strong>g their situations. An overview <strong>of</strong> the <strong>to</strong>pic is<br />

given <strong>in</strong> Section 2.2.3. Here, works that a relevant for this thesis are presented and discussed.<br />

3.1.1 ISP Network Information Services<br />

A number <strong>of</strong> approaches exist that propose that ISPs <strong>of</strong>fer <strong>in</strong>formation on their network <strong>to</strong>pology <strong>to</strong> their<br />

cus<strong>to</strong>mers. <strong>Peer</strong>s <strong>of</strong> P2P systems can use this <strong>in</strong>formation <strong>to</strong> optimize the overlay network <strong>to</strong>pology. The<br />

ISPs benefits through P2P locality, the P2P users benefit from a higher Quality <strong>of</strong> Service (QoS) due <strong>to</strong><br />

<strong>in</strong>creased traffic efficiency. In addition <strong>to</strong> that, ISPs can use the systems <strong>to</strong> <strong>in</strong>fluence the behavior <strong>of</strong> P2P<br />

users. This can be achieved by adapt<strong>in</strong>g the <strong>of</strong>fered <strong>in</strong>formation <strong>to</strong> their cost structure or their traffic<br />

eng<strong>in</strong>eer<strong>in</strong>g approach.<br />

Older approaches are the network Oracle [8] and P4P [115]. For us<strong>in</strong>g the Oracle, peers send network<br />

addresses on prospective neighbors <strong>to</strong> the Oracle system. The system orders the address accord<strong>in</strong>g <strong>to</strong><br />

its preferences and sends them back <strong>to</strong> the peer. A more recent approach is Application-Layer Traffic<br />

<strong>Optimization</strong> (ALTO) [102], which is developed based on the P4P concept. An Internet Eng<strong>in</strong>eer<strong>in</strong>g Task<br />

Force (IETF) standard for the ALTO pro<strong>to</strong>col exists, and it is already used <strong>in</strong> real networks [61]. The<br />

ALTO service specifies different request methods. Request similar <strong>to</strong> the ones use by the Oracle approach<br />

are supported, but the system also supports the distribution <strong>of</strong> network cost maps, which can be used by<br />

clients without send<strong>in</strong>g a request every time.<br />

The IETF ALTO standard service [11] aims <strong>to</strong> enable a mechanism for applications <strong>to</strong> gather <strong>in</strong>formation<br />

on the network the application is runn<strong>in</strong>g <strong>in</strong>. ALTO servers are discovered by clients that can send<br />

queries. Offered <strong>in</strong>formation are peer-<strong>to</strong>-peer cost paths and network cost maps for specific peers.<br />

The approaches described <strong>in</strong> this section aim at improv<strong>in</strong>g the <strong>in</strong>fluence <strong>of</strong> ISPs on the traffic <strong>of</strong> P2P<br />

LVS, which is one <strong>of</strong> the goals <strong>of</strong> the RASP service. While it uses a different approach, the approaches<br />

described are complementary <strong>to</strong> the RASP service, hence could be used alongside for further improvements.<br />

17


3.1.2 ISP-Owned <strong>Peer</strong>s<br />

The concept <strong>of</strong> us<strong>in</strong>g ISP-owned peers <strong>to</strong> enable the ISP <strong>to</strong> <strong>in</strong>fluence P2P networks is presented <strong>in</strong> [89].<br />

An ISP-owned peer participates <strong>in</strong> a P2P system while be<strong>in</strong>g controlled or <strong>in</strong>fluenced by the ISP it is<br />

operated <strong>in</strong>. It could either be operated by the ISP or by a different entity, that agrees <strong>to</strong> implement<br />

the goals <strong>of</strong> the ISP <strong>in</strong> exchange e.g. for network resources. The approach is used <strong>in</strong> P2P file shar<strong>in</strong>g<br />

networks <strong>to</strong> reduce the traffic volume cross<strong>in</strong>g the network boundaries. The evaluation shows that the<br />

approach works and <strong>in</strong>creases the control <strong>of</strong> the ISP on the P2P traffic.<br />

However, ISP-owned peers conta<strong>in</strong> P2P application specific parts. They have <strong>to</strong> be updated and managed<br />

along the P2P s<strong>of</strong>tware [20, p. 224]. There are a number <strong>of</strong> different P2P applications used <strong>to</strong>day.<br />

Hence, it is not clear how the approach can be efficiently implemented and operated on a larger scale.<br />

Also, participat<strong>in</strong>g <strong>in</strong> an P2P overlay network can have juridical consequences, for example if illegal<br />

content is distributed and s<strong>to</strong>red on the ISP-owned peer.<br />

ISP-owned peers jo<strong>in</strong> a P2P system with the goal <strong>of</strong> <strong>in</strong>fluenc<strong>in</strong>g it <strong>in</strong> the <strong>in</strong>terest <strong>of</strong> the network opera<strong>to</strong>r.<br />

This idea is the basis for approach used with RASP. However, the RASP service improves the concept<br />

by <strong>in</strong>troduc<strong>in</strong>g a generic on-demand network <strong>layer</strong> service. This approach shifts the burden <strong>of</strong> operat<strong>in</strong>g<br />

and <strong>in</strong>tegrat<strong>in</strong>g the service <strong>in</strong><strong>to</strong> different P2P LVS systems from the ISP <strong>to</strong> P2P LVS users and applications<br />

providers.<br />

3.2 <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> and Super <strong>Peer</strong>s<br />

The super peer concept for P2P systems is widely used and researched. Super peers are peers that fulfill<br />

special tasks that could not be achieved by normal peers. This might be due <strong>to</strong> their stability, their trust<br />

relationship or their available resources for comput<strong>in</strong>g or bandwidth. While this hierarchy for peers is<br />

somewhat contradic<strong>to</strong>ry <strong>to</strong> the concept that all peers are equal, a number <strong>of</strong> works have shown that us<strong>in</strong>g<br />

them has an advantage. These concepts are relevant <strong>to</strong> this thesis, as apply<strong>in</strong>g cross-<strong>layer</strong> optimizations<br />

<strong>in</strong> technological islands leads <strong>to</strong> natural clusters and <strong>to</strong> the question if the empowerment <strong>of</strong> s<strong>in</strong>gle peers<br />

can improve the whole P2P LVS system performance. The idea <strong>of</strong> empower<strong>in</strong>g s<strong>in</strong>gle peers by provid<strong>in</strong>g<br />

them network resources is the RASP systems benefit for P2P LVS systems. Hence, it is <strong>in</strong>terest<strong>in</strong>g <strong>to</strong> see<br />

how this empowerment can be used <strong>to</strong> not only improve P2P LVS, but how its effects can be further<br />

<strong>in</strong>crease by specifically exploit<strong>in</strong>g them. Super <strong>Peer</strong>s are specific <strong>to</strong> their P2P LVS system and set up by<br />

the P2P LVS system opera<strong>to</strong>r or its users.<br />

3.2.1 mTreebone<br />

mTreebone [110] is a P2P LVS approach, which <strong>in</strong>troduces a hybrid tree and mesh <strong>to</strong>pology for improved<br />

resilience. To comb<strong>in</strong>e the advantages <strong>of</strong> tree and mesh <strong>to</strong>pologies, a tree <strong>to</strong>pology for video distribution<br />

is created for video stream delivery. A mesh <strong>to</strong>pology overlay exists <strong>to</strong> handle packet loss <strong>in</strong> the tree<br />

<strong>to</strong>pology. To <strong>in</strong>crease the resilience <strong>of</strong> the tree <strong>to</strong>pology, the system relies on a backbone, called treebone,<br />

which consists <strong>of</strong> super peers. These super peers are elected because <strong>of</strong> their stability. They make up the<br />

upper levels <strong>of</strong> the distribution tree. Other, normal peers are connected <strong>to</strong> the super peers. The mesh<br />

overlay network is created over all nodes and is only used <strong>in</strong> case the tree delivery fails.<br />

The authors show that their approach works and <strong>in</strong>creases the resilience and quality <strong>of</strong> the system.<br />

This result stresses the relevance and usefulness <strong>of</strong> super peers. Hence, mTreebone would be well suited<br />

<strong>to</strong> use the RASP service.<br />

18 3. Related Work


3.2.2 SALSA<br />

In [51], a Super-<strong>Peer</strong> Assisted Live <strong>Stream<strong>in</strong>g</strong> Architecture (SALSA) is presented. The basic idea is <strong>to</strong><br />

auction video stream<strong>in</strong>g quality <strong>in</strong> exchange for video distribution. The proposed P2P LVS system consists<br />

<strong>of</strong> three k<strong>in</strong>ds <strong>of</strong> nodes, the s<strong>in</strong>gle video source, super peers, and leaf peers. Super peers get the video<br />

stream from the source and distribute it <strong>to</strong> leaf peers, which do not distribute the video stream further.<br />

The system uses a multi tree approach, where the video stream is split <strong>in</strong><strong>to</strong> sub streams, which can be<br />

recomb<strong>in</strong>ed arbitrarily. Each additional sub stream <strong>in</strong>creases the quality. The number <strong>of</strong> sub streams the<br />

super peers get varies, while leaf peers always get the lowest quality. The goal <strong>of</strong> the video source is <strong>to</strong><br />

service as much leaf nodes as possible. The video source auctions full quality videos streams <strong>to</strong> super<br />

peers. The payment <strong>in</strong> the auction is video stream<strong>in</strong>g time <strong>to</strong> leaf peers. A super peer <strong>of</strong>fers stream<strong>in</strong>g<br />

time <strong>to</strong> a number <strong>of</strong> leaf peers; the highest bidder gets the full quality video stream. This <strong>in</strong>centive<br />

motivates super peers <strong>to</strong> use as much <strong>of</strong> their upstream bandwidth as possible for distribut<strong>in</strong>g the video<br />

stream. Due <strong>to</strong> this mechanism, the tree construction is <strong>in</strong>fluenced by the auctions. The authors show<br />

by simulation that their approach works and that is has the desired property <strong>of</strong> motivat<strong>in</strong>g upstream<br />

bandwidth contribution.<br />

SALSA is based on the contributions <strong>of</strong> super peers, which makes it <strong>in</strong>terest<strong>in</strong>g for the RASP service.<br />

The work shows that <strong>to</strong> account for super peers dur<strong>in</strong>g P2P LVS system design is beneficial. Furthermore,<br />

an approach is described on how <strong>to</strong> motivate users <strong>to</strong> <strong>in</strong>crease their upstream bandwidth. Hence, it could<br />

be adopted for motivat<strong>in</strong>g users <strong>to</strong> use the RASP service.<br />

3.3 Overlay Networks and Multicast<br />

The approaches on comb<strong>in</strong><strong>in</strong>g IP multicast and P2P systems can be dist<strong>in</strong>guished <strong>in</strong> two groups: one<br />

aims <strong>to</strong> support and improve IP multicast with P2P systems and one that aims <strong>to</strong> improve P2P systems<br />

with IP Multicast. In this thesis, we are <strong>in</strong>terested <strong>in</strong> the latter approach. A P2P system should be optimized<br />

by <strong>in</strong>tegrat<strong>in</strong>g network multicast services where available. However, much <strong>of</strong> the literature tries<br />

<strong>to</strong> connect multicast islands <strong>to</strong> enable global multicast. While these approaches have not the same goal,<br />

it is <strong>in</strong>terest<strong>in</strong>g <strong>to</strong> <strong>in</strong>vestigate the approaches used and how they are related <strong>to</strong> RASP.<br />

There are a number <strong>of</strong> approaches on this <strong>to</strong>pic. One is the Scalable Adaptive Multicast (SAM) research<br />

group <strong>of</strong> the Internet Research Task Force that <strong>in</strong>vestigates multicast pro<strong>to</strong>cols <strong>in</strong>clud<strong>in</strong>g hybrid<br />

techniques that comb<strong>in</strong>e application <strong>layer</strong> multicast with IP multicast [49]. The group proposes <strong>to</strong> an<br />

exist<strong>in</strong>g generic P2P overlay for connect<strong>in</strong>g multicast islands.<br />

Another approach is called island multicast. Its goal is <strong>to</strong> improve application <strong>layer</strong> multicast by <strong>in</strong>tegrat<strong>in</strong>g<br />

IP multicast islands <strong>in</strong><strong>to</strong> the overlay network where available. A number <strong>of</strong> island multicast<br />

approaches exists [45, 113, 62].<br />

In [46] an overview is given on the research on island multicast until the year 2009, hence, [113, 62]<br />

are not discussed there. The fundamental concept is similar with all approaches. Most systems exhibit a<br />

global tree-based overlay network, and an IP multicast control group local <strong>to</strong> the correspond<strong>in</strong>g island.<br />

<strong>Peer</strong>s first detect if they are located with<strong>in</strong> an IP multicast island by contact<strong>in</strong>g the local control overlay.<br />

If there is no IP multicast support, the peer forms its own island and uses the application <strong>layer</strong> multicast<br />

overlay network for operations. If the peer is located with<strong>in</strong> an island, it connects <strong>to</strong> the other peers <strong>of</strong><br />

the island. Some <strong>of</strong> them are connected <strong>to</strong> the global control overlay <strong>to</strong> peers <strong>of</strong> other islands. Thereby<br />

all islands with its peers are connected <strong>in</strong><strong>to</strong> an Internet wide multicast network.<br />

3.3. Overlay Networks and Multicast 19


The focus <strong>of</strong> the research is the efficient and resilient <strong>in</strong>terconnection <strong>of</strong> the IP multicast islands.<br />

Island multicast systems can be classified by the implementation <strong>of</strong> their functional elements: island<br />

management, overlay jo<strong>in</strong><strong>in</strong>g, <strong>in</strong>gress and egress peer election, and connect<strong>in</strong>g multicast islands [46, p.<br />

159]. Some approaches designate a local peer (leader) for island management. If there is no leader, all<br />

local peers jo<strong>in</strong> the global overlay network.<br />

Island multicast approaches comb<strong>in</strong>e the global connectivity and robustness <strong>of</strong> application <strong>layer</strong> multicast<br />

with the efficiency <strong>of</strong> IP multicast. Efficient and reliable ways <strong>of</strong> <strong>in</strong>terconnect<strong>in</strong>g the multicast island<br />

exist. Open research questions are error correction with<strong>in</strong> multicast islands and the <strong>in</strong>tegration <strong>of</strong> these<br />

approaches with mesh-based overlay networks. However, the application scenario <strong>of</strong> these approaches is<br />

not clearly def<strong>in</strong>ed. They aim <strong>to</strong> overcome the limitations <strong>of</strong> IP multicast islands without consider<strong>in</strong>g the<br />

reasons for the failure <strong>of</strong> global multicast as described e.g. <strong>in</strong> [23] (see Section 2.1.1). Most <strong>of</strong> the island<br />

multicast systems require globally unique multicast IP addresses for operations, which is an unsolved<br />

problem. IP multicast authentication, authorization, encryption and data <strong>in</strong>tegrity are still open issues,<br />

which might cause ISPs <strong>to</strong> refra<strong>in</strong><strong>in</strong>g from open<strong>in</strong>g their IP multicast platform <strong>to</strong> third parties. The bus<strong>in</strong>ess<br />

case is not discussed; still it could be assumed that an opera<strong>to</strong>r <strong>of</strong> an application <strong>layer</strong> multicast<br />

system is required <strong>to</strong> contract for IP island operations. Most approaches assume <strong>in</strong> their evaluations that<br />

a significant number <strong>of</strong> IP multicast islands are available. For efficient operations, large deployments are<br />

needed which improve the situation <strong>of</strong> opera<strong>to</strong>rs us<strong>in</strong>g the service. In addition, the system is based on IP<br />

multicast, all routers and the end device have <strong>to</strong> support IP multicast for operations.<br />

The island multicast approaches share a goal with the RASP service: <strong>to</strong> exploit locally available network<br />

<strong>layer</strong> multicast mechanisms for global communication systems. However, the approaches are very<br />

different. Many island multicast approaches aim at connect<strong>in</strong>g IP multicast island for their global use.<br />

This approach has its disadvantages, as described <strong>in</strong> the last paragraph. Hence, for RASP a local approach<br />

is chosen, that allows s<strong>in</strong>gle multicast islands <strong>to</strong> be <strong>in</strong>tegrated <strong>in</strong><strong>to</strong> exist<strong>in</strong>g P2P LVS systems. This<br />

approach has the advantage that it is useful even with a small number <strong>of</strong> deployments. Furthermore, its<br />

deployment does not require new application <strong>layer</strong> multicast systems as the island multicast approaches<br />

do.<br />

3.4 Improvements <strong>to</strong> IP Multicast<br />

While IP multicast is deployed, it is not globally connected. Nevertheless, improvements on multicast<br />

are researched. Some <strong>of</strong> these approaches are <strong>in</strong>terest<strong>in</strong>g <strong>to</strong> consider when implement<strong>in</strong>g multicast with<br />

OpenFlow.<br />

IP multicast is a research <strong>to</strong>pic for already more than 20 years. A large number <strong>of</strong> concepts has been<br />

proposed and analyzed. In this section, a number <strong>of</strong> approaches are <strong>in</strong>troduced, that propose concepts<br />

that are be helpful for <strong>in</strong>tegrat<strong>in</strong>g P2P with OpenFlow based multicast.<br />

The flexibility and performance <strong>of</strong> OpenFlow allows the implementation <strong>of</strong> concepts that have hither<strong>to</strong><br />

been impractical <strong>to</strong> implement. This concerns especially address<strong>in</strong>g schemes and concepts for address<strong>in</strong>g<br />

the multicast scal<strong>in</strong>g problem.<br />

3.4.1 Recursive Unicast<br />

In [104] the network <strong>layer</strong> multicast scheme REUNITE is presented, where unicast IP addresses are<br />

used for forward<strong>in</strong>g and delivery <strong>to</strong> implement a multicast-forward<strong>in</strong>g scheme. The ma<strong>in</strong> goal <strong>of</strong> the<br />

approach is <strong>to</strong> <strong>in</strong>crease the scalability <strong>of</strong> network <strong>layer</strong> multicast by reduc<strong>in</strong>g the amount <strong>of</strong> multicast<br />

20 3. Related Work


elated <strong>in</strong>formation s<strong>to</strong>red on routers <strong>in</strong> the network. IP unicast IP addresses are used for forward<strong>in</strong>g,<br />

a small number <strong>of</strong> multicast-enabled routers are responsible for replicat<strong>in</strong>g the packets on jo<strong>in</strong>ts <strong>of</strong> the<br />

multicast tree.<br />

The follow<strong>in</strong>g description <strong>of</strong> the forward<strong>in</strong>g scheme <strong>of</strong> REUNITE references correspond<strong>in</strong>g elements<br />

<strong>in</strong> Figure 3.1. A multicast group is identified by the IP address <strong>of</strong> the multicast tree root node (S1) and<br />

the source port number <strong>of</strong> the packet stream. For multicast rout<strong>in</strong>g, signal<strong>in</strong>g, and group membership<br />

management two separate pro<strong>to</strong>cols are <strong>in</strong>troduced, which are not discussed here. A multicast packet<br />

P1 is send by the tree root node, us<strong>in</strong>g the multicast groups IP address and source port. The dest<strong>in</strong>ation<br />

address is a unicast IP address <strong>of</strong> a host H1 that is a member <strong>of</strong> the multicast group. The packet is<br />

forwarded us<strong>in</strong>g the unicast-forward<strong>in</strong>g scheme <strong>of</strong> the IP (R2). On routers which constitute a jo<strong>in</strong>t <strong>of</strong> the<br />

multicast tree, an additional multicast rout<strong>in</strong>g table is present (R1, R3, R4). There, packets are identified<br />

by their group id. For each group id, a number <strong>of</strong> dest<strong>in</strong>ation IP addresses exist, represent<strong>in</strong>g a different<br />

subtree <strong>of</strong> the multicast tree. The <strong>in</strong>com<strong>in</strong>g multicast packet uses already one <strong>of</strong> those IP addresses as<br />

dest<strong>in</strong>ation address and is forwarded accord<strong>in</strong>g <strong>to</strong> the unicast rout<strong>in</strong>g table (R1:P1, R3:P1, R4:P2). For<br />

each other dest<strong>in</strong>ation address <strong>in</strong> the table entry, the packet is replicated and the address written as<br />

dest<strong>in</strong>ation (R3:P2, R4:P2). Each replicated packet is send accord<strong>in</strong>g <strong>to</strong> the unicast rout<strong>in</strong>g table. Us<strong>in</strong>g<br />

this scheme on each tree jo<strong>in</strong>t, each member <strong>of</strong> the multicast group gets the multicast packet.<br />

S1<br />

R1<br />

Multicast Router<br />

Multicast Table:<br />

S1 ➔ H1<br />

Unicast Router<br />

R2<br />

R3<br />

Multicast Router<br />

Multicast Table:<br />

S1 ➔ H1, H2<br />

R4<br />

Multicast Router<br />

Multicast Table:<br />

S1 ➔ H2, H3<br />

P1:<br />

S1 ➔ H1<br />

P2:<br />

S1 ➔ H2<br />

P3:<br />

S1 ➔ H3<br />

H1 H2 H3<br />

Figure 3.1.: The forward<strong>in</strong>g scheme <strong>of</strong> REUNITE (adapted from [104, p. 1645]).<br />

REHASH [10] improves REUNITE by <strong>in</strong>troduc<strong>in</strong>g more efficient multicast forward<strong>in</strong>g tables. In [118]<br />

a OSPF pro<strong>to</strong>col extension is presented, that implements an improved version <strong>of</strong> REUNITE. The multicast<br />

approach <strong>of</strong> REUNITE has the advantage <strong>of</strong> forgo<strong>in</strong>g class D IP addresses for forward<strong>in</strong>g and not requir<strong>in</strong>g<br />

IP multicast features on all routers <strong>in</strong> the network. However, it <strong>in</strong>troduces new network pro<strong>to</strong>cols<br />

and is not widely deployed as <strong>of</strong> <strong>to</strong>day.<br />

3.4. Improvements <strong>to</strong> IP Multicast 21


REUNITE uses unicast IP addresses for multicast forward<strong>in</strong>g and describes one way how this can be<br />

achieved without SDN. It also shows that us<strong>in</strong>g unicast addresses for multicast is not possible without<br />

special hardware or SDN. The RASP approach shows that it is possible with OpenFlow.<br />

3.4.2 Explicit Multicast<br />

In explicit multicast, each multicast packet conta<strong>in</strong>s all dest<strong>in</strong>ation <strong>in</strong>formation without requir<strong>in</strong>g multicast<br />

network state <strong>in</strong>formation. One approach, called Xcast (Explicit Multi-unicast) is described [43].<br />

There, an additional header field conta<strong>in</strong>s all unicast IP addresses <strong>of</strong> the multicast group. The dest<strong>in</strong>ation<br />

address <strong>of</strong> Xcast packets is a special IP multicast group, which all Xcast capable routers belong <strong>to</strong>. A host<br />

sends an Xcast packet <strong>to</strong> a capable router, the router analyses the Xcast header and forwards the packet<br />

accord<strong>in</strong>g <strong>to</strong> the conta<strong>in</strong>ed unicast IP addresses. If it conta<strong>in</strong>s different subsets <strong>of</strong> Xcast dest<strong>in</strong>ation addresses<br />

with different next hop addresses, the packet is replicated and each packets Xcast header is set<br />

<strong>to</strong> the respective subset <strong>of</strong> dest<strong>in</strong>ation addresses. If a subset emerges that only conta<strong>in</strong>s one address, the<br />

packet is transformed <strong>in</strong><strong>to</strong> a normal unicast packet. The mode <strong>of</strong> operation is similar <strong>to</strong> recursive unicast<br />

schemes, with the difference that the replication <strong>in</strong>formation is conta<strong>in</strong>ed <strong>in</strong> the packet header, not <strong>in</strong><br />

the router.<br />

The advantages and disadvantages are discussed <strong>in</strong> [43]. The ma<strong>in</strong> advantages are that no network<br />

state is required, group management is done ad-hoc by senders and not all routers need <strong>to</strong> <strong>in</strong>clude Xcast<br />

features. However, due <strong>to</strong> the restricted space <strong>in</strong> the packet, only small groups can rely on Xcast. In<br />

addition, no <strong>in</strong>centives are given <strong>to</strong> the ISPs for roll<strong>in</strong>g out Xcast, except <strong>of</strong> data volume sav<strong>in</strong>gs. Still,<br />

specialized routers are needed which rely on multicast IP addresses. Furthermore, the Xcast mechanisms<br />

could be exploited for unwanted packet duplication <strong>in</strong> comb<strong>in</strong>ation with source address spo<strong>of</strong><strong>in</strong>g.<br />

Xcast is a multicast system based on the idea <strong>of</strong> embedd<strong>in</strong>g all dest<strong>in</strong>ation addresses <strong>of</strong> a multicast<br />

group <strong>in</strong> each packet header. The work shows that its approach works and can reduce the multicast state<br />

<strong>in</strong> the network. However, is only applicable for small groups. RASP takes up the idea and applies it <strong>to</strong><br />

OpenFlow, where it can be implemented for larger groups and without special purpose hardware.<br />

3.4.3 LIPSIN<br />

LIPSIN [47] is an approach for network multicast forward<strong>in</strong>g <strong>in</strong> publish/subscribe systems. The goal<br />

<strong>of</strong> the system is <strong>to</strong> reduce the state <strong>in</strong>formation that is s<strong>to</strong>red <strong>in</strong> the network and thereby <strong>in</strong>creases<br />

the scalability <strong>of</strong> publish/subscribe systems. The ma<strong>in</strong> contribution is multicast forward<strong>in</strong>g where each<br />

packets conta<strong>in</strong>s its distribution path encoded <strong>in</strong> a Bloom [106] filter, similar <strong>to</strong> source rout<strong>in</strong>g. Each<br />

path conta<strong>in</strong>s the list <strong>of</strong> network l<strong>in</strong>ks <strong>to</strong> travel, which is evaluated by each switch <strong>in</strong> the network and<br />

forwarded along the given paths.<br />

The authors evaluate their system with a simula<strong>to</strong>r and with a pro<strong>to</strong>type <strong>of</strong> a LIPSIN compatible router.<br />

The result shows that their approach works and can improve publish/subscribe systems. The concept <strong>of</strong><br />

multicast state reduction <strong>in</strong> networks us<strong>in</strong>g path <strong>in</strong>formation <strong>in</strong> the packet header is promis<strong>in</strong>g. However,<br />

a new network pro<strong>to</strong>col is assumed, that enables the s<strong>to</strong>rage <strong>of</strong> the Bloom filter <strong>in</strong> the packet.<br />

Furthermore, specialized hardware is required for forward<strong>in</strong>g. While the concept is <strong>in</strong>terest<strong>in</strong>g, large<br />

deployments are unlikely <strong>to</strong> happen due <strong>to</strong> the hardware requirements.<br />

The goal <strong>of</strong> LIPSIN is similar <strong>to</strong> the one <strong>of</strong> Xcast. However, the approach is different, not the dest<strong>in</strong>ation<br />

addresses are encoded <strong>in</strong> each packet, but their paths. The approach is <strong>in</strong>terest<strong>in</strong>g and <strong>in</strong>vestigated for<br />

its use <strong>in</strong> RASP, but ultimately not used due <strong>to</strong> its s<strong>to</strong>rage space required <strong>in</strong> each packet.<br />

22 3. Related Work


3.4.4 Labelcast<br />

In [112] a network pro<strong>to</strong>col for IPTV data delivery is <strong>in</strong>troduced. The goals <strong>of</strong> the approach are tw<strong>of</strong>old:<br />

first, decouple the multicast tree management from the user management, second enable the application<br />

<strong>of</strong> traffic eng<strong>in</strong>eer<strong>in</strong>g and load balanc<strong>in</strong>g <strong>to</strong> multicast traffic. In the PIM-SM pro<strong>to</strong>col, the path a group<br />

membership request takes <strong>to</strong> the group management node is used for multicast delivery <strong>to</strong> that user. Labelcast<br />

decouples the two functions by <strong>in</strong>troduc<strong>in</strong>g a network pro<strong>to</strong>col, which comb<strong>in</strong>es RTP/RTCP with<br />

a multicast-forward<strong>in</strong>g scheme, based on the traffic eng<strong>in</strong>eer<strong>in</strong>g idea <strong>of</strong> MPLS. The Labelcast header<br />

<strong>in</strong>cludes content metadata <strong>in</strong>formation on such as priority and flow bandwidth. Routers are assumed<br />

<strong>to</strong> add a special Labelcast handl<strong>in</strong>g facility, which is different from the IP rout<strong>in</strong>g facility. The Labelcast<br />

pro<strong>to</strong>col handler <strong>in</strong>cludes means for packet duplication. The path management is done by a label<br />

distribution pro<strong>to</strong>col similar <strong>to</strong> MPLS. It <strong>in</strong>cludes facilities for moni<strong>to</strong>r<strong>in</strong>g <strong>of</strong> the video stream.<br />

While the goals <strong>of</strong> Labelcast are <strong>in</strong>terest<strong>in</strong>g, its implementation us<strong>in</strong>g a new network pro<strong>to</strong>col is not<br />

ideal. Routers and clients are required <strong>to</strong> support it, which is a big obstacle for deployments.<br />

The goals <strong>of</strong> Labelcast – <strong>to</strong> apply traffic eng<strong>in</strong>eer<strong>in</strong>g <strong>to</strong> multicast traffic and mak<strong>in</strong>g multicast rout<strong>in</strong>g<br />

more flexible – are taken up by the RASP approach. Aga<strong>in</strong>, the work shows that implement<strong>in</strong>g these<br />

features without SDN is difficult. The decoupl<strong>in</strong>g <strong>of</strong> tree management from the user management is<br />

implemented <strong>in</strong> RASP. Furthermore, the idea <strong>of</strong> add<strong>in</strong>g metadata on the multicast groups is <strong>in</strong>terest<strong>in</strong>g.<br />

While the RASP service does not <strong>in</strong>clude this idea, it could be evaluated <strong>in</strong> future works for better quality<br />

<strong>of</strong> service.<br />

3.5 OpenFlow and IP Multicast<br />

The concept <strong>of</strong> SDN and OpenFlow enable new possibilities for IP multicast. This section presents some<br />

<strong>of</strong> the approaches on how <strong>to</strong> implement multicast with OpenFlow <strong>in</strong> particular.<br />

3.5.1 IP multicast with Fast Tree Switch<strong>in</strong>g<br />

In [56] the authors propose an IP multicast-based forward<strong>in</strong>g system optimized for fast recovery <strong>in</strong> case<br />

<strong>of</strong> path failures. A network us<strong>in</strong>g IP multicast is set up us<strong>in</strong>g OpenFlow switches. For each multicast<br />

group, the OpenFlow controller calculates two different multicast trees spann<strong>in</strong>g all switches <strong>of</strong> the<br />

network. If a switch fails, the controller disables the currently used tree and enables the complementary<br />

tree, which might be unaffected by the failure. The authors implement a tree algorithm that creates two<br />

redundant multicast trees. They evaluate their approach us<strong>in</strong>g a NEC 8800 hardware switch used as<br />

n<strong>in</strong>e virtual switches. Low packet loss and fast switch<strong>in</strong>g times are achieved. An <strong>in</strong>-switch method, that<br />

could ease the implementation <strong>of</strong> the proposed mechanism, is available from OpenFlow version 1.2 on<br />

by us<strong>in</strong>g the group feature.<br />

The use <strong>of</strong> the group feature for multicast forward<strong>in</strong>g shows the development <strong>of</strong> OpenFlow and is<br />

beneficial for use <strong>in</strong> the implementation <strong>of</strong> the RASP service. The application <strong>of</strong> redundant trees are<br />

<strong>in</strong>terest<strong>in</strong>g for improved resilience and could be <strong>in</strong>vestigated <strong>in</strong> future research on RASP.<br />

3.5.2 CastFlow<br />

CastFlow, presented <strong>in</strong> [70] proposes the adaptation <strong>of</strong> IP multicast <strong>to</strong> the capabilities <strong>of</strong> OpenFlow. It<br />

is assumed that the network used consists <strong>of</strong> OpenFlow switches. For group management, IGMP could<br />

3.5. OpenFlow and IP Multicast 23


e used with the difference <strong>to</strong> normal IP multicast that the IGMP messages are forwarded <strong>to</strong> an Open-<br />

Flow controller when they are received by the first switch. The OpenFlow controller hosts the multicast<br />

functionality <strong>in</strong> one place <strong>in</strong> contrast <strong>to</strong> the distributed nature <strong>of</strong> IP multicast. The distribution tree is<br />

calculated by the controller s<strong>of</strong>tware and the network is configured accord<strong>in</strong>gly us<strong>in</strong>g OpenFlow. To mitigate<br />

issues <strong>of</strong> the OpenFlow controller as a s<strong>in</strong>gle po<strong>in</strong>t <strong>of</strong> failure, they propose the use <strong>of</strong> a distributed<br />

OpenFlow management system. For quick response times <strong>in</strong> case <strong>of</strong> system events, a wide range <strong>of</strong> multicast<br />

trees is calculated <strong>in</strong> advance. Furthermore, the tree management system is designed <strong>to</strong> require as<br />

little changes as possible for group member changes.<br />

The system’s implementation based on the NOX [35] controller is described and evaluated with M<strong>in</strong><strong>in</strong>et<br />

[59]. They use BRITE [73] <strong>to</strong> generate network <strong>to</strong>pologies and a cus<strong>to</strong>m program <strong>to</strong> emulate <strong>to</strong>pology<br />

events. The authors asses the performance <strong>of</strong> their system when react<strong>in</strong>g <strong>to</strong> events generated <strong>in</strong> the<br />

network. In addition <strong>to</strong> that, they analyze the efficiency <strong>of</strong> their tree construction on vary<strong>in</strong>g network<br />

sizes.<br />

While the adaptation <strong>of</strong> IP multicast <strong>to</strong> an OpenFlow sett<strong>in</strong>g is conv<strong>in</strong>c<strong>in</strong>g the analysis is not. It is not<br />

clear how the response time <strong>of</strong> their system can be transferred <strong>to</strong> other sett<strong>in</strong>gs. Especially consider<strong>in</strong>g<br />

their use <strong>of</strong> M<strong>in</strong><strong>in</strong>et for network emulation, whose performance similarities <strong>to</strong> real networks is unclear.<br />

Furthermore, the approach is very limited. It is not clear how it can be <strong>in</strong>tegrated with other networks<br />

or OpenFlow doma<strong>in</strong>s.<br />

The RASP service does not implement IP multicast. However, the tree construction and the management<br />

concept for multicast from CastFlow are adopted by the RASP service pro<strong>to</strong>type, which is described<br />

<strong>in</strong> Chapter 6.<br />

24 3. Related Work


4 Assumptions and Requirements<br />

The aim <strong>of</strong> the design <strong>of</strong> the RASP service is <strong>to</strong> improve P2P LVS systems and the situation <strong>of</strong> ISPs. Hence,<br />

the requirements <strong>of</strong> both stakeholders <strong>of</strong> the system are described <strong>in</strong> this chapter. A general requirement<br />

is that the systems must be realizable with available technology. Specifically, only available versions <strong>of</strong><br />

the OpenFlow standard and other deployed network technologies must be used. The system should be<br />

easy <strong>to</strong> implement and require no hard- and s<strong>of</strong>tware except OpenFlow and related technologies.<br />

The basic assumptions for the service design are described <strong>in</strong> Section 4.1. The requirements <strong>of</strong> ISPs<br />

are discussed <strong>in</strong> Section 4.2, the requirements <strong>of</strong> P2P LVS systems <strong>in</strong> Section 4.3<br />

4.1 Assumptions<br />

For this work, a future scenario is assumed where OpenFlow is a dom<strong>in</strong>ant technology. For the technological<br />

environment <strong>of</strong> the RASP service, <strong>to</strong>day’s ISP network <strong>to</strong>pologies and P2P LVS systems are assumed.<br />

ISP core networks are assumed <strong>to</strong> be completely based on OpenFlow switches. While no specific assumptions<br />

are required for other technologies used, the ones deployed <strong>to</strong>day are used for comparison. For<br />

aggregation and access networks, different scenarios are considered based on available <strong>in</strong>formation.<br />

For approximation <strong>of</strong> possible future rule numbers, the contemporary available CAM sizes, as described<br />

<strong>in</strong> Section 2.3.2, are used as a start<strong>in</strong>g po<strong>in</strong>t. Up <strong>to</strong> 160,000 rules can be used on devices that are sold<br />

at the time <strong>of</strong> writ<strong>in</strong>g. For the future scenario rule capacities between 50,000 for cheap low-end devices,<br />

such as access switches, between 100,000 and 250,000 for mid-range devices such as Broadband Remote<br />

Access Servers (BRASs), and 1,000,000 for high-end devices such as core switches are assumed.<br />

A P2P LVS system is considered. No further technical details are specified for the RASP service design,<br />

as it should be as generic as possible. For the deployment, it is assumed that the P2P LVS system video<br />

sources, management, and many <strong>of</strong> its peers are located outside the ISP network. Due <strong>to</strong> the number<br />

<strong>of</strong> ISPs and P2P LVS systems, this assumption is statistically true for most systems <strong>in</strong> most networks.<br />

The special case when a video source node or exist<strong>in</strong>g peer is located with<strong>in</strong> the ISP network is not<br />

considered. In such a sett<strong>in</strong>g, other approaches, such as <strong>in</strong>creas<strong>in</strong>g the peer’s bandwidth or allow<strong>in</strong>g the<br />

use <strong>of</strong> a host<strong>in</strong>g center, are available <strong>to</strong>day.<br />

The selection <strong>of</strong> suitable peers for us<strong>in</strong>g the RASP service is left <strong>to</strong> the P2P LVS system opera<strong>to</strong>rs and<br />

users. The service provides network resources; hence, the stability <strong>of</strong> peers should be a requirement. The<br />

identification and selection <strong>of</strong> stable peers is an active research <strong>to</strong>pic (see e.g. [111]). It is assumed, that<br />

sufficiently stable nodes are selected for the use <strong>of</strong> the RASP service.<br />

4.2 Requirements <strong>of</strong> ISPs<br />

This work describes an approach for optimiz<strong>in</strong>g the use <strong>of</strong> P2P LVS with OpenFlow <strong>in</strong> ISP networks with<br />

residential broadband access cus<strong>to</strong>mers. The application <strong>of</strong> OpenFlow <strong>in</strong> ISP networks requires some<br />

consideration. The requirements <strong>of</strong> ISPs regard<strong>in</strong>g the resource consumption <strong>of</strong> services are described<br />

<strong>in</strong> Section 4.2.1. The requirements for the <strong>in</strong>tegration with other services and their management are<br />

presented <strong>in</strong> Section 4.2.2.<br />

25


4.2.1 Service Resource Consumption Requirements<br />

ISPs can have millions cus<strong>to</strong>mers, hence one import requirement for OpenFlow-based services is their<br />

appropriate scalability. For deploy<strong>in</strong>g services <strong>in</strong> ISP networks, three characteristics should be considered:<br />

the number <strong>of</strong> cus<strong>to</strong>mers is high, the traffic volume is high, and the potential number <strong>of</strong> applications is<br />

high. The scalability <strong>of</strong> OpenFlow applications has two aspects: first, the traffic volume, second, the<br />

number <strong>of</strong> OpenFlow rules and rule changes. The first aspect is an issue for all network applications. The<br />

issue <strong>of</strong> restrict<strong>in</strong>g the number <strong>of</strong> OpenFlow rules used and their dynamics is not unique <strong>to</strong> OpenFlow<br />

either, IP multicast has similar issues, but it is more important for OpenFlow due <strong>to</strong> its capabilities and<br />

broad applicability.<br />

The special structure <strong>of</strong> ISP and their large number <strong>of</strong> cus<strong>to</strong>mers necessitate different requirements for<br />

different network parts. Core networks transport traffic from all cus<strong>to</strong>mers, <strong>in</strong>clud<strong>in</strong>g, but not limited <strong>to</strong>,<br />

residential broadband cus<strong>to</strong>mers. Hence, applications should restrict their bandwidth usage. However,<br />

what is more important is the consumption <strong>of</strong> OpenFlow resources: the number <strong>of</strong> rules <strong>of</strong> OpenFlow<br />

services should be kept as low as possible. The number <strong>of</strong> rules per service must not scale l<strong>in</strong>early with<br />

their amount <strong>of</strong> users, but at much lower fac<strong>to</strong>r. Consider<strong>in</strong>g that one router could forward the traffic <strong>of</strong><br />

millions <strong>of</strong> cus<strong>to</strong>mers, us<strong>in</strong>g one rule per user is clearly not feasible. The failure <strong>of</strong> IP multicast shows that<br />

the number <strong>of</strong> worldwide multicast groups is <strong>to</strong>o high <strong>to</strong> require s<strong>in</strong>gle devices <strong>to</strong> s<strong>to</strong>re all <strong>of</strong> them. In<br />

addition, as potentially many applications will be deployed <strong>in</strong> ISP networks, the number <strong>of</strong> rules should<br />

be kept low at all costs.<br />

The situation is different <strong>in</strong> access and aggregation networks. While access networks such as a Digital<br />

Subscriber L<strong>in</strong>e Access Multiplexer (DSLAM) typically serves up <strong>to</strong> a few hundred cus<strong>to</strong>mers, aggregation<br />

networks and especially broadband cus<strong>to</strong>mer access devices such as BRASs connect tens <strong>of</strong><br />

thousands cus<strong>to</strong>mers. The number <strong>of</strong> available OpenFlow rules per device is assumed about 50.000<br />

<strong>in</strong> access switches and 200.000 <strong>in</strong> broadband cus<strong>to</strong>mer access devices, as described <strong>in</strong> Section 4.1. Consider<strong>in</strong>g<br />

these number, it is feasible <strong>to</strong> s<strong>to</strong>re one rule per cus<strong>to</strong>mer on access devices. However, it is less<br />

so for broadband aggregation devices.<br />

The same considerations should be applied for OpenFlow rule dynamics. No real world measurements<br />

on the performance <strong>of</strong> large-scale OpenFlow network deployments are available, hence their capabilities<br />

<strong>in</strong> terms <strong>of</strong> OpenFlow message process<strong>in</strong>g is difficult <strong>to</strong> estimate. Still, its number should be kept low <strong>to</strong><br />

allow other services <strong>to</strong> work <strong>in</strong> parallel.<br />

4.2.2 Service Integration and Management Requirements<br />

For deployment <strong>of</strong> the RASP service, compatibility with other services runn<strong>in</strong>g <strong>in</strong> the same OpenFlow<br />

doma<strong>in</strong> is required. It should be able <strong>to</strong> work with different means <strong>of</strong> transport encapsulation, such as<br />

MPLS, and should not rely on specific network paths or forward<strong>in</strong>g mechanisms. The <strong>in</strong>teractions with<br />

other services should be predictable and comprehensively specified. The RASP service should be able <strong>to</strong><br />

adapt <strong>to</strong> the IPv6 pro<strong>to</strong>col. Furthermore, the service should not be restricted <strong>to</strong> s<strong>in</strong>gle use cases; it should<br />

be a generic as possible.<br />

The whole service should be def<strong>in</strong>ed comprehensively and clearly. This <strong>in</strong>cludes predictable resource<br />

usage and the possibility <strong>to</strong> apply traffic eng<strong>in</strong>eer<strong>in</strong>g. Reduc<strong>in</strong>g the network traffic <strong>in</strong>side the network<br />

and <strong>to</strong> the outside is also beneficial.<br />

26 4. Assumptions and Requirements


4.3 Requirements <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong><br />

The RASP service’s goal is <strong>to</strong> improve the performance and quality <strong>of</strong> P2P LVS systems. It achieves this<br />

goal by <strong>in</strong>creas<strong>in</strong>g the network upload capacity <strong>of</strong> s<strong>in</strong>gle peers. The general requirements <strong>of</strong> P2P LVS<br />

systems are meet<strong>in</strong>g the deadl<strong>in</strong>e for synchronicity, provid<strong>in</strong>g a good stream quality, and system stability.<br />

However, the RASP does not alter the P2P LVS system directly, but <strong>of</strong>fers a network <strong>layer</strong> service.<br />

Hence, the service can only <strong>in</strong>fluence the associated parameters <strong>of</strong> the transmission. The result<strong>in</strong>g technical<br />

requirements are described <strong>in</strong> Section 4.3.1. The requirements <strong>of</strong> users, opera<strong>to</strong>rs and application<br />

providers [38] are described <strong>in</strong> Section 4.3.2.<br />

4.3.1 Technical Requirements<br />

The system should support a wide range <strong>of</strong> P2P LVS systems. It should not restrict its applicability <strong>to</strong><br />

a s<strong>in</strong>gle type <strong>of</strong> <strong>to</strong>pology, such as tree or mesh. While tree <strong>to</strong>pologies are more natural for network<br />

<strong>layer</strong> multicast, many commercially operational systems use a mesh <strong>to</strong>pology [66, p. 236] for its better<br />

resilience. In general, the <strong>in</strong>tegration <strong>of</strong> the RASP service <strong>in</strong><strong>to</strong> P2P LVS systems should require as little<br />

effort as possible.<br />

The system is required <strong>to</strong> improve the effective network upstream capacity <strong>of</strong> the peer us<strong>in</strong>g it. Other<br />

parameters <strong>of</strong> the P2P LVS systems should not be impaired by the service. Specifically, it should not<br />

<strong>in</strong>crease the bandwidth requirements for the peers, <strong>in</strong>crease packet loss or <strong>in</strong>crease the latency <strong>of</strong> the<br />

transmission.<br />

For real deployments, P2P LVS systems are required <strong>to</strong> support Network Address Translation (NAT)<br />

due <strong>to</strong> its prevalent used <strong>in</strong> residential broadband networks. However, the goal <strong>of</strong> this work is <strong>to</strong> provide<br />

the concept <strong>of</strong> the service and analyze its characteristics. Hence, the support <strong>of</strong> NAT is beyond the scope<br />

<strong>of</strong> this work. The same is true for the support <strong>of</strong> heterogeneous peers and the behavior under <strong>of</strong> peer<br />

churn and flash crowds [65, p. 20].<br />

4.3.2 Requirements <strong>of</strong> Users, Opera<strong>to</strong>rs and Application Providers<br />

The usage <strong>of</strong> the service must not require technical changes except those on the P2P LVS s<strong>of</strong>tware itself.<br />

Specifically, IP multicast pro<strong>to</strong>cols, which are <strong>of</strong>ten not supported by consumer grade equipment used <strong>in</strong><br />

home networks, should not be required. The API should be as simple as possible. Still, it should be able<br />

<strong>to</strong> provide the peer us<strong>in</strong>g it with all relevant <strong>in</strong>formation on the system.<br />

4.3. Requirements <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> 27


5 System Design<br />

The concept <strong>of</strong> the RASP service is presented <strong>in</strong> this chapter. Its design is based on the requirements def<strong>in</strong>ed<br />

<strong>in</strong> Chapter 4. The goal is <strong>to</strong> provide a flexible, on-demand service for live video stream distribution<br />

for peers <strong>of</strong> P2P LVS systems. The concept is a cross-<strong>layer</strong> application <strong>of</strong>fered by ISPs <strong>to</strong> peers <strong>of</strong> the P2P<br />

system. The service design is component based, it comb<strong>in</strong>es the functionality <strong>of</strong> two functional OpenFlow<br />

service components: a network <strong>layer</strong> proxy application and a network <strong>layer</strong> multicast application. The<br />

first provides the peer a virtual presence <strong>in</strong> the ISP’s network; the latter provides efficient and reliable<br />

multicast data distribution. A third component, the RASP controller <strong>in</strong>tegrates the other components and<br />

provides a public API.<br />

The rema<strong>in</strong>der <strong>of</strong> this chapter is organized as follows: <strong>in</strong> Section 5.1.1 an overview is given on the<br />

RASP service’s concept and its rationale is discussed. In Section 5.2 the system architecture is expla<strong>in</strong>ed<br />

and the systems components described. The <strong>in</strong>tegration <strong>of</strong> the RASP service <strong>in</strong><strong>to</strong> P2P LVS systems is<br />

expla<strong>in</strong>ed <strong>in</strong> Section 5.4.<br />

5.1 Description and Rationale<br />

Before discuss<strong>in</strong>g the rationale <strong>of</strong> the RASP service and its benefits for the <strong>in</strong>volved parties <strong>in</strong> Section<br />

5.1.2, an overview <strong>of</strong> its and functionality is given <strong>in</strong> the follow<strong>in</strong>g Section 5.1.1.<br />

5.1.1 Functional Description<br />

The focus <strong>of</strong> RASP is the network <strong>of</strong> the ISP deploy<strong>in</strong>g the system. For an exemplary description <strong>of</strong> the<br />

operations <strong>of</strong> RASP, a schematic sett<strong>in</strong>g <strong>of</strong> an ISP network and a P2P LVS system is used as shown <strong>in</strong><br />

Figure 5.1. The ISP network is shown as a box on the left, consist<strong>in</strong>g <strong>of</strong> the aggregation and access<br />

network, and the core network. The core network is connected <strong>to</strong> the <strong>in</strong>ternet, the access network <strong>to</strong><br />

the broadband access cus<strong>to</strong>mers <strong>of</strong> the ISP. <strong>Peer</strong>s P0 through P5 participate <strong>in</strong> a P2P LVS system. The<br />

overlay network connections are displayed <strong>in</strong> blue, the video stream tree, start<strong>in</strong>g <strong>in</strong> P0, is depicted by<br />

orange arrows. <strong>Peer</strong>s P3 through P5 are located <strong>in</strong> cus<strong>to</strong>mer networks <strong>of</strong> the ISP, peers P0 through P2<br />

are located <strong>in</strong> arbitrary networks connected by the Internet.<br />

The ISP network after <strong>in</strong>troduc<strong>in</strong>g the RASP service is shown <strong>in</strong> Figure 5.2. All routers with<strong>in</strong> the ISP<br />

network are OpenFlow based. A host<strong>in</strong>g network area is added <strong>in</strong> the ISP network, which is used for<br />

placement <strong>of</strong> the public service API. It is accessible by any Internet-based host and enables the use <strong>of</strong><br />

the RASP service. Users <strong>of</strong> the system enter a contractual relationship with the ISP before ga<strong>in</strong><strong>in</strong>g access<br />

<strong>to</strong> its features. In the example shown <strong>in</strong> the figure, peer P1 accesses the API <strong>to</strong> use the RASP service,<br />

as <strong>in</strong>dicated by the green arrow. After registration, P1 requests the creation <strong>of</strong> a RASP <strong>in</strong>stance, which<br />

causes the set up a virtual peer 1 . A virtual peer is a network <strong>layer</strong> proxy that establishes a presence for<br />

P4 <strong>in</strong> the ISP network. <strong>Peer</strong>s (e.g. P3) <strong>in</strong> the cus<strong>to</strong>mer networks <strong>of</strong> the ISP are made aware <strong>of</strong> the new<br />

peer <strong>in</strong> the network and choose it for jo<strong>in</strong><strong>in</strong>g the P2P LVS system. Therefore, they send overlay network<br />

connection requests <strong>to</strong> the virtual peer. There, the source and dest<strong>in</strong>ation IP address and ports <strong>of</strong> each<br />

1<br />

The use <strong>of</strong> the term “virtual peer ” is unrelated <strong>to</strong> its earlier use <strong>in</strong> [6]<br />

29


ISP<br />

Internet<br />

Core<br />

P0<br />

P1<br />

P2<br />

Aggregation/<br />

Access<br />

P3 P4 P5<br />

Figure 5.1.: A simplified illustration <strong>of</strong> the operation <strong>of</strong> a P2P LVS system.<br />

packet are rewritten. As source IP address the virtual peer’s address is used, as dest<strong>in</strong>ation IP address the<br />

one <strong>of</strong> P1. As dest<strong>in</strong>ation port, the number registered by P1 is used, as source port a hither<strong>to</strong> unused by<br />

the virtual peer is selected. This approach allows the identification <strong>of</strong> associated packets travel<strong>in</strong>g <strong>in</strong> the<br />

opposite direction, as used with network and port address translation [103]. Therefore, the packets from<br />

peers send <strong>to</strong> the virtual peer are relayed by the virtual peer <strong>to</strong> peer P1. Packets travers<strong>in</strong>g the opposite<br />

direction from P1 <strong>to</strong> P3 are addressed <strong>to</strong> the virtual peer. There, the packets source and dest<strong>in</strong>ation<br />

addresses and ports are rewritten, redirect<strong>in</strong>g the packet <strong>to</strong> P3.<br />

By us<strong>in</strong>g the virtual peer, P3 and P1 have established an overlay network connection. P4 and P5 do the<br />

same and remove the direct overlay connection <strong>to</strong> P1, lead<strong>in</strong>g <strong>to</strong> the overlay network <strong>to</strong>pology as shown<br />

<strong>in</strong> Figure 5.2. Note that each peer has established its own, dedicated network connection. Thus both<br />

connection oriented and connectionless network pro<strong>to</strong>cols can be used for jo<strong>in</strong><strong>in</strong>g the overlay network.<br />

For the distribution <strong>of</strong> the video stream, P1 <strong>of</strong>fers video stream transmission <strong>to</strong> every peer connected<br />

through the virtual peer, regardless <strong>of</strong> its own network upload capacity. The video delivery is done by<br />

means <strong>of</strong> an OpenFlow based network <strong>layer</strong> multicast system, hence only connectionless pro<strong>to</strong>cols such<br />

as User Datagram Pro<strong>to</strong>col (UDP) can be used as transport pro<strong>to</strong>col. Also, us<strong>in</strong>g the exist<strong>in</strong>g overlay<br />

network connections for <strong>in</strong> band video stream delivery cannot be used. When a peer requests the video<br />

stream, it supplies the local port number where the stream should be addressed <strong>to</strong>. P1 adds the IP address<br />

<strong>of</strong> the peer and its port number <strong>to</strong> the multicast recipient list <strong>of</strong> the RASP system by us<strong>in</strong>g the service<br />

API. P1 sends the video stream packets addressed <strong>to</strong> the virtual peer and the previously def<strong>in</strong>ed streams<br />

port. The multicast system calculates the distribution tree for the video stream. It uses the virtual peer’s<br />

IP address location as start<strong>in</strong>g po<strong>in</strong>t and adds all registered peers <strong>to</strong> the dest<strong>in</strong>ation list. The multicast<br />

distribution tree is configured on the OpenFlow switches as required. <strong>Video</strong> stream packets arriv<strong>in</strong>g<br />

from P1 are redirected by the OpenFlow rules. On their way <strong>to</strong>wards the peers, they are duplicated as<br />

needed by correspond<strong>in</strong>g OpenFlow rules. In the access network, before leav<strong>in</strong>g the ISPs network, the<br />

dest<strong>in</strong>ation address and port are rewritten <strong>to</strong> the ones required by the peer.<br />

30 5. System Design


Internet<br />

P0<br />

ISP<br />

Server/Host<strong>in</strong>g<br />

Core<br />

P1<br />

Service<br />

API<br />

OF<br />

OF<br />

Virtual<br />

<strong>Peer</strong><br />

OF<br />

OF<br />

P2<br />

Aggregation/<br />

Access<br />

OF<br />

OF<br />

P3 P4 P5<br />

Figure 5.2.: A simplified illustration <strong>of</strong> the operation <strong>of</strong> a P2P LVS system us<strong>in</strong>g the RASP service.<br />

The virtual presence <strong>of</strong> P1 and its improved video stream delivery capacity <strong>in</strong>side the ISP network<br />

provide it super peer like network performance. This is enabled by the RASP service, hence its name. In<br />

this context, P1 is called super peer, which is enabled by a RASP <strong>in</strong>stance.<br />

The RASP service can be considered as comb<strong>in</strong>ation <strong>of</strong> two dist<strong>in</strong>ct functional components: a network<br />

<strong>layer</strong> proxy and a multicast service. The first is called Virtual <strong>Peer</strong> and the latter S<strong>of</strong>tware Def<strong>in</strong>ed<br />

Multicast (SDM).<br />

5.1.2 Rationale<br />

The RASP service concept is <strong>in</strong>troduced <strong>in</strong> the preced<strong>in</strong>g section. However, for better comprehensibility<br />

the <strong>in</strong>troduction lacked a rational for the system and its approach. Before describ<strong>in</strong>g the systems architecture<br />

and its components <strong>in</strong> Section 5.2.1, the design approach <strong>of</strong> the complete system is discussed.<br />

The RASP service is an on-demand network service reduces the burden <strong>of</strong> P2P LVS for ISPs. For P2P<br />

LVS, it <strong>of</strong>fers a generic stream distribution service for users and opera<strong>to</strong>rs. The design approach is <strong>to</strong> exploit<br />

the hardware features <strong>of</strong> OpenFlow switches for high performance and low resource consumption.<br />

RASP from a P2P LVS Perspective<br />

As described <strong>in</strong> Section 2.1.2, the upload capacity <strong>of</strong> peers <strong>in</strong> P2P LVS systems is crucial for their<br />

performance. The RASP system provides network capacity, enabl<strong>in</strong>g normal peers <strong>of</strong> a P2P LVS system<br />

<strong>to</strong> act like super peers. Given that stable peers exist with low upload capacities, they can use the RASP<br />

service <strong>to</strong> <strong>in</strong>crease their network capacity. Stable peers are important for P2P LVS systems, as described<br />

<strong>in</strong> Section 4.1, <strong>in</strong> comb<strong>in</strong>ation with a high upload capacity they can expand their <strong>in</strong>fluence <strong>in</strong> their P2P<br />

LVS system. Hence, the RASP service should <strong>in</strong>crease the system performance by <strong>in</strong>creas<strong>in</strong>g the resources<br />

<strong>of</strong> s<strong>in</strong>gle peers.<br />

5.1. Description and Rationale 31


RASP from an ISPs’ Perspective<br />

For ISPs the RASP service has two advantages: <strong>in</strong>creased control <strong>of</strong> P2P LVS network traffic and improved<br />

transmission efficiency. When the RASP service is used by P2P LVS users, the amount <strong>of</strong> P2P LVS<br />

traffic pass<strong>in</strong>g through the ISP network is reduced and at the same time, the identified network traffic <strong>to</strong><br />

which traffic eng<strong>in</strong>eer<strong>in</strong>g can be applied is <strong>in</strong>creased. The RASP service usage is fully controllable, the<br />

bandwidth for video streams can be moni<strong>to</strong>red, and the number <strong>of</strong> users is known and can be restricted<br />

if required. Before a new user is added, the system can verify if the required resources <strong>to</strong> serve it are<br />

available. This is an improvement over IP multicast systems, which <strong>of</strong>ten lack admission control. The<br />

RASP service is used on demand. Resources are freed after the usage period, which <strong>in</strong>creases the flexibility<br />

<strong>of</strong> the available resources for the ISP compared <strong>to</strong> IP multicast whose resource allocation is not<br />

subject <strong>to</strong> time restrictions.<br />

Reasons for Us<strong>in</strong>g a Network Layer Proxy<br />

The RASP service could be used without a proxy service; <strong>in</strong> this case, it would be a pure multicast<br />

system. However, this would reduce the control <strong>of</strong> the ISP over the P2P traffic. By us<strong>in</strong>g the virtual peer<br />

functionality, the ISP can verify that each peer the video stream is delivered <strong>to</strong> has an open network<br />

connection <strong>to</strong> the video source. In case <strong>of</strong> unwanted behavior or failure <strong>of</strong> the peer us<strong>in</strong>g the RASP service,<br />

all connections between the peers and the RASP service can be removed by delet<strong>in</strong>g the associated<br />

OpenFlow rules. Furthermore, with the RASP <strong>in</strong>stance IP address location <strong>in</strong>side the ISP network, it can<br />

be announced as a preferred peer by the ISP as described <strong>in</strong> Section 5.4.3 without tak<strong>in</strong>g the risk <strong>of</strong><br />

promot<strong>in</strong>g malicious or spo<strong>of</strong>ed IP addresses.<br />

An alternative for achiev<strong>in</strong>g the same amount <strong>of</strong> <strong>in</strong>fluence on P2P LVS systems are ISP owned peers<br />

[89]. However, such systems are P2P LVS system dependent, which requires the ISP <strong>to</strong> support a vast<br />

range <strong>of</strong> P2P LVS systems. Also, a complete peer has <strong>to</strong> be operated by the ISP, which requires more computational<br />

resources. With the RASP service, only the network transmission has <strong>to</strong> be operated, which<br />

can be implemented us<strong>in</strong>g OpenFlow hardware features. The system allows users <strong>to</strong> access available<br />

network resources, while the P2P LVS system opera<strong>to</strong>rs or users operate the peer and take care <strong>of</strong> <strong>in</strong>tegration<br />

<strong>in</strong><strong>to</strong> the respective P2P LVS system. The only dedicated computational resources required for<br />

operat<strong>in</strong>g the RASP service a public API service and two OpenFlow applications.<br />

Reasons for SDM<br />

The use <strong>of</strong> network <strong>layer</strong> multicast is the most efficient approach on distribut<strong>in</strong>g data <strong>in</strong> one <strong>to</strong> many<br />

communications. Recent studies compar<strong>in</strong>g multicast <strong>to</strong> P2P LVS systems conclude that this is the case<br />

even when underlay awareness is used [17]. It also has the advantage <strong>of</strong> hav<strong>in</strong>g only one packet stream<br />

on the network, compared <strong>to</strong> many different, which <strong>in</strong>creases the ability <strong>to</strong> control the traffic and apply<br />

traffic eng<strong>in</strong>eer<strong>in</strong>g.<br />

Technical features from established IP multicast approaches are not used. Instead, its methods for<br />

creat<strong>in</strong>g and ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g multicast trees are comb<strong>in</strong>ed with a unicast address scheme. This method has<br />

the advantage that it is completely transparent for systems outside the OpenFlow doma<strong>in</strong>. <strong>Peer</strong>s us<strong>in</strong>g<br />

the system are not required <strong>to</strong> use IP multicast or be specially adapted. If IP multicast were required, this<br />

would require all network devices <strong>in</strong> the residential network <strong>of</strong> the P2P LVS user <strong>to</strong> support IP multicast<br />

as well. For this reason, ISPs <strong>of</strong>fer<strong>in</strong>g IP multicast IPTV services <strong>of</strong>ten demand from their cus<strong>to</strong>mers <strong>to</strong><br />

use specific devices that support the required features. Because the RASP service is not such a prom<strong>in</strong>ent<br />

feature for cus<strong>to</strong>mers, such requirements could h<strong>in</strong>der the acceptance <strong>of</strong> the service. Therefore, the<br />

alternative for us<strong>in</strong>g SDM, IP multicast, is not used.<br />

32 5. System Design


The forward<strong>in</strong>g approach used with RASP does not use the dest<strong>in</strong>ation IP address <strong>of</strong> multicast packets.<br />

It allows multicast-forward<strong>in</strong>g schemes the reuse the unused fields for different purposes. This is illustrated<br />

by the Explicit Multicast subcomponent as described <strong>in</strong> Section 5.3.4. It uses the IP address field<br />

for reduc<strong>in</strong>g the network state requirements dur<strong>in</strong>g forward<strong>in</strong>g.<br />

One reason traditional IP multicast systems failed is their lack <strong>of</strong> control by the network opera<strong>to</strong>r. For<br />

that reason, they are used with<strong>in</strong> network doma<strong>in</strong>s only. The same is true for approaches such as island<br />

multicast, which aims <strong>to</strong> connect those doma<strong>in</strong>s, but fail <strong>to</strong> improve controllability <strong>of</strong> IP multicast. A<br />

comparison between IP multicast, overlay multicast, and SDM is shown <strong>in</strong> Table 5.1. Except from not<br />

us<strong>in</strong>g specialized network pro<strong>to</strong>cols, IP multicast and SDM are very similar. Their ma<strong>in</strong> difference is the<br />

control the ISP has over the system. Overlay multicast is more flexible, but <strong>to</strong>o, is hard <strong>to</strong> control and is<br />

less efficient for data delivery.<br />

Multicast tree<br />

Deployment requirement<br />

Transport <strong>layer</strong><br />

connection<br />

Scalability<br />

Congestion control/loss<br />

recovery<br />

IP multicast Overlay multicast S<strong>of</strong>tware Def<strong>in</strong>ed Multicast<br />

Interior tree nodes are<br />

routers, and leaves are<br />

hosts<br />

Require multicast-capable<br />

routers<br />

UDP<br />

Low — multicast-capable<br />

routers are not scalable<br />

No<br />

Both <strong>in</strong>terior nodes and<br />

leaves are hosts<br />

Can be directly deployed<br />

on the current Internet<br />

Can freely choose TCP or<br />

UDP<br />

High — fully distributed<br />

and scalable pro<strong>to</strong>cols are<br />

available<br />

May use exist<strong>in</strong>g solutions<br />

for unicast<br />

In the SDM network<br />

nodes are routers, outside,<br />

nodes and leaves are<br />

routers or hosts<br />

Requires OpenFlowcapable<br />

routers with<strong>in</strong><br />

the SDM doma<strong>in</strong>, no requirements<br />

outside<br />

UDP<br />

Depends on the Open-<br />

Flow hardware and<br />

management architecture<br />

used<br />

Delivery efficiency High Low High <strong>in</strong> the SDM doma<strong>in</strong>,<br />

low outside <strong>of</strong> it<br />

ISP control Low None High<br />

Table 5.1.: Comparison <strong>of</strong> multicast concepts (based on [46, p. 158]).<br />

No<br />

Choos<strong>in</strong>g a Generic Approach<br />

The RASP service <strong>of</strong>fers a network <strong>layer</strong> service that is not specific <strong>to</strong> certa<strong>in</strong> P2P LVS systems. This<br />

property should allow the service <strong>to</strong> be used with a wide range <strong>of</strong> P2P LVS systems, while on the other<br />

hand require the P2P application providers <strong>to</strong> adapt their application <strong>to</strong> the service. Furthermore, it<br />

means that the system can be used <strong>in</strong> different ways by P2P LVS systems. Some P2P LVS systems with tree<br />

<strong>to</strong>pology split the video stream <strong>in</strong> multiple substreams, which are distributed over different distribution<br />

trees, for example SplitStream [16]. This approach <strong>in</strong>creases the systems resilience, because if one tree<br />

fails, the other substreams may still work. This allows <strong>to</strong> cont<strong>in</strong>ue <strong>to</strong> show the video, albeit <strong>in</strong> degraded<br />

quality, <strong>in</strong>stead <strong>of</strong> the s<strong>to</strong>pp<strong>in</strong>g it. Such systems can use the RASP service <strong>to</strong> stream multiple sub streams<br />

over the same <strong>in</strong>stance or by us<strong>in</strong>g different <strong>in</strong>stances.<br />

5.1. Description and Rationale 33


Due <strong>to</strong> its generic approach, the system can also be used for other purposes. This is possible, because<br />

the service <strong>of</strong>fered is a generic network service, consist<strong>in</strong>g <strong>of</strong> a network <strong>layer</strong> proxy and transparent<br />

network <strong>layer</strong> multicast. The service API is more specific, as moni<strong>to</strong>r<strong>in</strong>g and contractual details must be<br />

<strong>in</strong>cluded for real deployments. However, the technical part <strong>of</strong> the API could be standardized. The generic<br />

approach could also lead <strong>to</strong> other uses <strong>of</strong> the service.<br />

5.2 Architecture<br />

The architecture <strong>of</strong> the RASP system is described <strong>in</strong> this chapter. The design goals for the architecture are<br />

<strong>to</strong> yield a stable and clear system as well as enable the reuse <strong>of</strong> functional components. The OpenFlow<br />

network architecture for the system is discussed Section 5.2.1. An overview over the components, their<br />

<strong>in</strong>teraction and dependencies is given <strong>in</strong> Figure 5.2.2<br />

5.2.1 OpenFlow based Network Architectures<br />

The reference architecture for OpenFlow-based networks is shown <strong>in</strong> Figure 5.3, as presented <strong>in</strong> [82,<br />

p. 7]. The foundation is the <strong>in</strong>frastructure <strong>layer</strong>, which represents the OpenFlow devices and the l<strong>in</strong>ks<br />

between them. Its API is the OpenFlow pro<strong>to</strong>col, which is used for communication with OpenFlow controllers.<br />

The latter are part <strong>of</strong> the control <strong>layer</strong>, which also <strong>in</strong>cludes network applications that are built<br />

on <strong>to</strong>p <strong>of</strong> a management abstraction. The network applications can be accessed through their API, which<br />

is also called northbound API. No standards exist for these APIs and their implementations yet. The<br />

network applications are used by applications from the application <strong>layer</strong> <strong>to</strong> implement cross-<strong>layer</strong> functionality.<br />

The control <strong>layer</strong> applications implement technical features, which can be used for different<br />

bus<strong>in</strong>ess purposes. Control <strong>layer</strong> applications are not meant for public consumption, they should be used<br />

by trusted entities. Applications from the application <strong>layer</strong> serve a bus<strong>in</strong>ess purpose. Their usage can be<br />

<strong>of</strong>fered <strong>to</strong> outside entities as their purpose and their restrictions are clearly stated.<br />

Application<br />

Layer<br />

Bus<strong>in</strong>ess<br />

Application<br />

...<br />

Bus<strong>in</strong>ess<br />

Application<br />

Control<br />

Layer<br />

OpenFlow<br />

Application<br />

API Access<br />

...<br />

OpenFlow<br />

Application<br />

OpenFlow Interface<br />

OpenFlow Pro<strong>to</strong>col<br />

Infrastructure<br />

Layer<br />

OpenFlow switches<br />

Figure 5.3.: OpenFlow network architecture (adapted from [82, p. 7]).<br />

34 5. System Design


The architecture <strong>of</strong> OpenFlow applications is an active research <strong>to</strong>pic. As described <strong>in</strong> Section 2.3.1,<br />

the <strong>in</strong>frastructure <strong>layer</strong> and the OpenFlow pro<strong>to</strong>col changed fast over the last years. In the control <strong>layer</strong>,<br />

a number <strong>of</strong> open issues exist. The abstractions the OpenFlow controller should <strong>of</strong>fer and how it should<br />

be implemented is not yet determ<strong>in</strong>ed. Consider<strong>in</strong>g the size <strong>of</strong> most networks, especially ISP networks<br />

that are discussed <strong>in</strong> this thesis, a s<strong>in</strong>gle controller is not sufficient. Hence, the concept <strong>of</strong> the network<br />

operat<strong>in</strong>g system is <strong>in</strong>troduced <strong>in</strong> [35]. A network OS “provides a uniform and centralized programmatic<br />

<strong>in</strong>terface <strong>to</strong> the entire network” [35, p. 105]. It should <strong>of</strong>fer a s<strong>in</strong>gle API for access<strong>in</strong>g the functions <strong>of</strong> an<br />

OpenFlow-based network, which is a large distributed system made up from switches, l<strong>in</strong>ks, controllers,<br />

and miscellaneous s<strong>of</strong>tware. Various aspects <strong>of</strong> this approach are open research issues; an overview <strong>of</strong><br />

them is given <strong>in</strong> [55]. The <strong>to</strong>pic <strong>in</strong>cludes the question for the appropriate level <strong>of</strong> abstraction, [108],<br />

[109], consistency [98] and approaches <strong>to</strong> composition <strong>of</strong> applications [97]. Details on the design and<br />

implementation <strong>of</strong> OpenFlow-based network operat<strong>in</strong>g system is beyond the scope <strong>of</strong> this document.<br />

For the rema<strong>in</strong>der <strong>of</strong> this document, it is assumed that a logically central configuration entity exists for<br />

the OpenFlow network. In a real network, this would be a distributed system <strong>of</strong> OpenFlow controllers<br />

and other components; the task however, is still the configuration <strong>of</strong> the elements <strong>of</strong> the <strong>in</strong>frastructure<br />

<strong>layer</strong>. Hence, for the sake <strong>of</strong> simplicity the term OpenFlow controller is used for the logically central<br />

configuration entity.<br />

5.2.2 System Structure and Interactions<br />

The RASP service can be divided <strong>in</strong><strong>to</strong> three dist<strong>in</strong>ct parts: the RASP controller component with the public<br />

service API and two network components as shown <strong>in</strong> Figure 5.4.<br />

Application<br />

Layer<br />

RASP Controller<br />

with Service API<br />

Control<br />

Layer<br />

Explicit<br />

Multicast<br />

SDM<br />

Application<br />

Virtual <strong>Peer</strong><br />

Application<br />

OpenFlow Controller/<br />

Network OS<br />

Topology<br />

Database<br />

Infrastructure<br />

Layer<br />

OpenFlow switches<br />

Figure 5.4.: Architecture <strong>of</strong> the RASP service.<br />

The technical functionality <strong>of</strong> RASP can be split <strong>in</strong> two parts: a Virtual <strong>Peer</strong> component and a SDM component.<br />

The first implements the network <strong>layer</strong> proxy functionality, the latter the network <strong>layer</strong> multicast<br />

5.2. Architecture 35


functionality. The SDM and Virtual <strong>Peer</strong> application should only implement functions that are strictly and<br />

uniquely needed <strong>to</strong> implement their respective task. This separation <strong>of</strong> features ensures that the Virtual<br />

<strong>Peer</strong> and SDM components are reusable for other purposes. The RASP controller component’s task is <strong>to</strong><br />

translate <strong>in</strong>com<strong>in</strong>g API calls <strong>to</strong> the control <strong>layer</strong> components and <strong>to</strong> coord<strong>in</strong>ate their behavior. It is also<br />

responsible for the management and selection <strong>of</strong> network resources for the control <strong>layer</strong> components.<br />

The controller component is application dependent, hence cannot be reused for other purposes and is<br />

kept as small as possible for this reason. The SDM component relies on multicast forward<strong>in</strong>g subcomponents<br />

for parts <strong>of</strong> functionality. Besides a basic multicast concept, a subcomponent for Explicit Multicast<br />

forward<strong>in</strong>g is presented. It reduces the amount <strong>of</strong> state <strong>in</strong>formation s<strong>to</strong>red <strong>in</strong> the network compared the<br />

basic multicast forward<strong>in</strong>g propose as default for the SDM component.<br />

Both control <strong>layer</strong> applications are based on an OpenFlow controller or network OS, which provides<br />

a <strong>to</strong>pology database that conta<strong>in</strong>s <strong>in</strong>formation on the <strong>in</strong>frastructure <strong>layer</strong>. This database is commonly<br />

required by control <strong>layer</strong> applications. The <strong>in</strong>teractions between the components are kept as low as possible<br />

<strong>in</strong> order <strong>to</strong> <strong>in</strong>crease reuse and flexibility. The RASP service <strong>in</strong> the application <strong>layer</strong> <strong>in</strong>teracts with<br />

both control <strong>layer</strong> applications. The <strong>in</strong>teractions <strong>in</strong>clude the management <strong>of</strong> Virtual <strong>Peer</strong> and SDM <strong>in</strong>stances.<br />

Interactions are started from the RASP service; exceptions are error or resource status change<br />

notifications, which are <strong>in</strong>itiated by the control <strong>layer</strong>. There are no <strong>in</strong>teractions between the two control<br />

<strong>layer</strong> applications. However, both access the underly<strong>in</strong>g network OS and its <strong>to</strong>pology database. Interactions<br />

patterns are bidirectional as management commands are passed <strong>to</strong> the network OS and network<br />

resource status <strong>in</strong>formation are passed from the network OS <strong>to</strong> the applications.<br />

5.3 Components<br />

The components that constitute the RASP service are the RASP controller component, the Virtual <strong>Peer</strong><br />

component and the SDM component. The names <strong>of</strong> the relevant entities <strong>of</strong> the RASP service are depicted<br />

<strong>in</strong> Figure 5.5, . The entity us<strong>in</strong>g the RASP system is called super peer. The entities us<strong>in</strong>g an RASP <strong>in</strong>stance<br />

<strong>to</strong> participate <strong>in</strong> the P2P LVS system are called peers <strong>in</strong> this context.<br />

The functionality and <strong>in</strong>terfaces <strong>of</strong> the components are described <strong>in</strong> the sections 5.3.1, 5.3.2 and 5.3.3.<br />

Furthermore an extension <strong>to</strong> the SDM application for improved multicast group scalability is presented<br />

<strong>in</strong> Section 5.3.4.<br />

5.3.1 Rent-a-Super <strong>Peer</strong> Controller Component<br />

The RASP service is managed and controlled by the service controller. This application <strong>of</strong>fers the service<br />

by means <strong>of</strong> a public API and relies on the OpenFlow application for its delivery. It implements the nonnetworks<br />

part <strong>of</strong> the application such as authenticat<strong>in</strong>g super peers, logg<strong>in</strong>g the service usage, enforc<strong>in</strong>g<br />

non technical-constra<strong>in</strong>ts <strong>in</strong> service usage and allocat<strong>in</strong>g the networks resources. The design goal is <strong>to</strong><br />

provide the service as generic and functional as possible. For model<strong>in</strong>g <strong>of</strong> a P2P LVS system generic<br />

abstractions are used: such a system consists <strong>of</strong> a control channel, and one or more data channels for<br />

video streams; each video channel has a number <strong>of</strong> receivers. Except for expect<strong>in</strong>g the service user <strong>to</strong> be<br />

<strong>in</strong>volved <strong>in</strong> P2P LVS no assumptions on the specific use <strong>of</strong> the service are made.<br />

The API should <strong>of</strong>fer fundamental services such as establish<strong>in</strong>g the connection <strong>to</strong> an <strong>in</strong>terested super<br />

peer and keep<strong>in</strong>g the connection. Dur<strong>in</strong>g all operations, the service controller manages account<strong>in</strong>g <strong>in</strong>formation<br />

on the service usage. Once a connection exists, the follow<strong>in</strong>g functions are needed <strong>to</strong> provide<br />

the RASP service:<br />

36 5. System Design


Internet<br />

Super-<strong>Peer</strong><br />

ISP<br />

RASP<br />

Service<br />

API<br />

Server/Host<strong>in</strong>g<br />

OF<br />

Core<br />

OF<br />

Virtual<br />

<strong>Peer</strong><br />

OF<br />

OF<br />

Aggregation/<br />

Access<br />

OF<br />

OF<br />

S<strong>of</strong>tware Def<strong>in</strong>ed<br />

Multicast<br />

<strong>Peer</strong>s<br />

Figure 5.5.: The names <strong>of</strong> entities <strong>in</strong>volved with the RASP system.<br />

1. Create/delete/moni<strong>to</strong>r RASP <strong>in</strong>stances<br />

2. Confirm peers<br />

3. Add/remove video streams <strong>to</strong> RASP <strong>in</strong>stances<br />

4. Add/remove receivers <strong>of</strong> a video stream<br />

5. Asynchronous message exchange for exchang<strong>in</strong>g system events<br />

The functions are described by assum<strong>in</strong>g successful requests. Errors and their messages are not described<br />

<strong>in</strong> detail; still, they are expected <strong>to</strong> be sent <strong>in</strong> case <strong>of</strong> errors. An error might occur for example if<br />

a given resource is already <strong>in</strong> use.<br />

Create/delete/moni<strong>to</strong>r RASP <strong>in</strong>stances<br />

This function accepts <strong>in</strong>formation on the RASP <strong>in</strong>stance <strong>to</strong> be created: The transport pro<strong>to</strong>col and port<br />

<strong>to</strong> be used for forward<strong>in</strong>g P2P overlay connections and the network port <strong>of</strong> the super peer where the<br />

overlay connections should be forwarded <strong>to</strong>. The IP address <strong>of</strong> the super peer could also be provided or<br />

the IP address <strong>of</strong> the correspond<strong>in</strong>g communications endpo<strong>in</strong>t could be used. The latter should reduce<br />

the susceptibility <strong>to</strong> misuse as the IP address’ existence and location is validated by the communications<br />

between the API server and the super peer.<br />

Upon receiv<strong>in</strong>g the request, the service controller allocates an IP address for the RASP <strong>in</strong>stance and<br />

sends it as reply <strong>to</strong> the super peer. Also, it uses the <strong>in</strong>stance address <strong>to</strong> create a Virtual <strong>Peer</strong> <strong>in</strong>stance us<strong>in</strong>g<br />

the application’s OpenFlow API. The <strong>in</strong>stance address is unique and hence is used for identification.<br />

Dur<strong>in</strong>g the whole time <strong>of</strong> operat<strong>in</strong>g the RASP <strong>in</strong>stance, the service controller should ma<strong>in</strong>ta<strong>in</strong> the<br />

identity and network <strong>in</strong>formation <strong>of</strong> the super peer. In case the identity or network <strong>in</strong>formation check <strong>of</strong><br />

the super peer fails dur<strong>in</strong>g operation, the RASP <strong>in</strong>stance should be deleted as described below. Alterna-<br />

5.3. Components 37


tively, the service controller could <strong>of</strong>fer means for re-establish<strong>in</strong>g the identity and network <strong>in</strong>formation<br />

by appropriate measures.<br />

For deletion <strong>of</strong> a RASP <strong>in</strong>stance, the super peer can send a deletion request. The service controller<br />

replies with a confirmation. For deletion, the service controller uses the SDM and Virtual <strong>Peer</strong> application’s<br />

APIs <strong>to</strong> remove the associated multicast groups and the virtual peer.<br />

Moni<strong>to</strong>r<strong>in</strong>g <strong>in</strong>formation <strong>in</strong>cludes data on the service performance as well as contractual and cost <strong>in</strong>formation.<br />

However, these aspects <strong>of</strong> the service are not the scope <strong>of</strong> this work.<br />

Confirm peers<br />

<strong>Peer</strong>s connect <strong>to</strong> the super peer through the network proxy <strong>of</strong> the RASP <strong>in</strong>stance. The setup <strong>of</strong> the<br />

proxy rules happens without the <strong>in</strong>volvement <strong>of</strong> the super peer. To reduce the effects <strong>of</strong> malicious connection<br />

attempts, the super peer has <strong>to</strong> confirm each overlay connection <strong>of</strong> each peer that uses the Virtual<br />

<strong>Peer</strong> component. Once the overlay connection between the super peer and the peer is active, the super<br />

peer sends a confirmation message <strong>to</strong> the API, mak<strong>in</strong>g the proxy-forward<strong>in</strong>g configuration for this peer<br />

<strong>in</strong> the Virtual <strong>Peer</strong> component permanent. If it fails <strong>to</strong> do so with<strong>in</strong> a given time, the forward<strong>in</strong>g configuration<br />

is removed. Details on this mechanism are given <strong>in</strong> description <strong>of</strong> the Virtual <strong>Peer</strong> component <strong>in</strong><br />

Section 5.3.2.<br />

Add/remove a video stream<br />

For add<strong>in</strong>g a video stream <strong>to</strong> a RASP <strong>in</strong>stance, the super peer supplies the port number <strong>to</strong> be used as<br />

source port for the video stream (virtual stream port) and the port number (stream source port) used by<br />

the super peer for send<strong>in</strong>g the video stream. The service controller sends a confirmation message.<br />

The service controller uses the SDM OpenFlow API <strong>to</strong> create a new multicast group. For remov<strong>in</strong>g a<br />

video stream, the super peer sends a remove request and supplies the <strong>in</strong>stance address and virtual stream<br />

port. The service controller uses the SDM API <strong>to</strong> remove the stream and sends a confirmation.<br />

Add/remove a receiver for a video stream<br />

For add<strong>in</strong>g a receiver <strong>to</strong> a video stream, the super peer requests the addition <strong>of</strong> a receiver. It supplies<br />

the video stream port and the new receivers IP address and receive port. The service controller adds the<br />

receiver <strong>to</strong> the selected multicast group by us<strong>in</strong>g the SDM API, provid<strong>in</strong>g the RASP <strong>in</strong>stance address,<br />

stream port, and the receivers address and port number <strong>of</strong> the new group member. For remov<strong>in</strong>g a<br />

receiver, the super peer requests its deletion and supplies the receivers IP address and port number. The<br />

service controller passes this <strong>in</strong>formation <strong>to</strong> the OpenFlow API and sends a confirmation message <strong>to</strong> the<br />

super peer.<br />

Asynchronous message exchange<br />

Unexpected events can occur dur<strong>in</strong>g operation <strong>of</strong> a RASP <strong>in</strong>stance. Network devices can fail, clients<br />

might disconnect unexpectedly or the service contract might expire. For such cases, the service controller<br />

should be able <strong>to</strong> send <strong>in</strong>formation <strong>to</strong> the service user <strong>in</strong> an asynchronous way. The implementation <strong>of</strong><br />

this communication channel is up <strong>to</strong> the service opera<strong>to</strong>r and depends on the API technology used. It<br />

might be implemented by push<strong>in</strong>g messages <strong>to</strong> the user or <strong>of</strong>fer<strong>in</strong>g functionality where the user can poll<br />

for new messages. Details on error handl<strong>in</strong>g and recovery are beyond the scope <strong>of</strong> this work.<br />

38 5. System Design


5.3.2 Virtual <strong>Peer</strong> Component<br />

The Virtual <strong>Peer</strong> application provides the creation and management <strong>of</strong> virtual peers, which enabl<strong>in</strong>g<br />

network <strong>layer</strong> communication between two hosts through a proxy. A virtual peer (VP) enables the proxy<br />

presence <strong>of</strong> the super peer (SP) <strong>in</strong> the network. The proxies operate at the network <strong>layer</strong> because its<br />

implementation at the application <strong>layer</strong> could not be implemented us<strong>in</strong>g OpenFlow features only. Such<br />

an approach would be less generic and would not be able <strong>to</strong> exploit the performance <strong>of</strong> OpenFlow<br />

hardware.<br />

A virtual peer is created by select<strong>in</strong>g an IP address, which should be used as proxy IP address<br />

(VP address ). For <strong>in</strong>tegration with other network applications and services, the addresses should be taken<br />

from an IP address range reserved for this purpose. The OpenFlow rules that implement the functionality<br />

<strong>of</strong> a virtual peer are located on an OpenFlow switch or a number <strong>of</strong> switches. All packets addressed <strong>to</strong><br />

VP address must pass this switch (VP switch ) with the associated OpenFlow rules. The rout<strong>in</strong>g scheme used<br />

<strong>in</strong> the underly<strong>in</strong>g network must be set up accord<strong>in</strong>gly.<br />

Before creat<strong>in</strong>g a virtual peer, the super peer supplies a transport <strong>layer</strong> pro<strong>to</strong>col (SP pro<strong>to</strong>col ) and port<br />

number (VP port ). This pro<strong>to</strong>col and port number is used for accept<strong>in</strong>g connection request addressed <strong>to</strong><br />

the VP. The general idea is <strong>to</strong> accept connections addressed <strong>to</strong> VP address us<strong>in</strong>g VP pro<strong>to</strong>col and dest<strong>in</strong>ation<br />

port VP port and forward them <strong>to</strong> the super peer by rewrit<strong>in</strong>g source and dest<strong>in</strong>ation addresses and ports.<br />

The same is done for reciprocal packets com<strong>in</strong>g from the super peer, which constitutes the network proxy<br />

functionality.<br />

This approach is required for redirect<strong>in</strong>g network connections transparently from the virtual peer IP<br />

address <strong>to</strong> a different address. For an explanation, consider the alternative where NAT would only be<br />

applied <strong>in</strong> one direction, for example from H1 <strong>to</strong> H2 through proxy PR. Packets from H1 are address <strong>to</strong><br />

PR, their dest<strong>in</strong>ation address is rewritten <strong>in</strong> P <strong>to</strong> H2, they arrive there with source address H1. Replies <strong>to</strong><br />

that packet would be forwarded <strong>to</strong> H1, without necessarily pass<strong>in</strong>g PR. F<strong>in</strong>ally, they arrive at H1 which<br />

expects the packets’ source address <strong>to</strong> be PR. Because the source address is H2 the packet is discarded;<br />

no bidirectional communication is possible.<br />

An OpenFlow rule is <strong>in</strong>stalled on VP switch which forwards packets that are addressed <strong>to</strong> VP address us<strong>in</strong>g<br />

VP pro<strong>to</strong>col and dest<strong>in</strong>ation port VP port <strong>to</strong> the OpenFlow controller. There, this <strong>in</strong>formation is delivered <strong>to</strong><br />

the Virtual <strong>Peer</strong> application. The application checks the packet header for consistency and creates two<br />

rules if it conta<strong>in</strong>s a hither<strong>to</strong> unknown source address and port comb<strong>in</strong>ation which identifies a new peer.<br />

The host from which the packets are com<strong>in</strong>g from is called peer P with address P address us<strong>in</strong>g P port as<br />

source port. This <strong>in</strong>formation is extracted from the received packet.<br />

One <strong>of</strong> the created rule matches on packets com<strong>in</strong>g from P address as shown <strong>in</strong> Table 5.6a, the reciprocal<br />

rule matches on packets com<strong>in</strong>g from SP address as shown <strong>in</strong> Table 5.6b. The pair <strong>of</strong> rules implements<br />

source and dest<strong>in</strong>ation NAT [103]. The first rule rewrites the dest<strong>in</strong>ation address <strong>of</strong> a packet <strong>to</strong> the one<br />

<strong>of</strong> the super peer, SP address and the source address is rewritten <strong>to</strong> VP address . The source port is rewritten <strong>to</strong><br />

a port selected by the controller, which uniquely identifies the connection (peer NAT port, P NAT<br />

port<br />

). This port<br />

is used for match<strong>in</strong>g packets <strong>of</strong> the same network connection <strong>in</strong> the reciprocal rule. These rules match<br />

packets com<strong>in</strong>g from VP address with the SP port as source port and dest<strong>in</strong>ation port P NAT<br />

port<br />

. The dest<strong>in</strong>ation<br />

address and port <strong>of</strong> the packet are rewritten <strong>to</strong> the associated peer’s <strong>in</strong>com<strong>in</strong>g values, the source address<br />

is set <strong>to</strong> VP address .<br />

Each connection attempt from a peer causes two rules <strong>to</strong> be <strong>in</strong>stalled on the switch. To reduce the<br />

number <strong>of</strong> rules and the impact <strong>of</strong> malicious connection attempts, both rules are set with a hard timeout<br />

<strong>of</strong> T h seconds. The super peer sends a confirmation message <strong>to</strong> the Virtual <strong>Peer</strong> application for each<br />

5.3. Components 39


Field Match value Change value New value<br />

Transport pro<strong>to</strong>col SP pro<strong>to</strong>col no –<br />

Network source address P address yes VP address<br />

TCP/UDP source port P port yes P NAT<br />

port<br />

Network dest<strong>in</strong>ation address VP address yes SP address<br />

TCP/UDP dest<strong>in</strong>ation port VP port yes SP port<br />

(a) OpenFlow rule schema for handl<strong>in</strong>g packets from peer P <strong>to</strong> super peer SP.<br />

Field Match value Change value New value<br />

Pro<strong>to</strong>col SP pro<strong>to</strong>col no –<br />

Network source address SP address yes VP address<br />

TCP/UDP source port SP port yes VP port<br />

Network dest<strong>in</strong>ation address VP address yes P address<br />

TCP/UDP dest<strong>in</strong>ation port P NAT<br />

port<br />

yes P port<br />

(b) OpenFlow rule schema for handl<strong>in</strong>g packets from super peer SP <strong>to</strong> peer P.<br />

Figure 5.6.: OpenFlow rules for implement<strong>in</strong>g a virtual peer for a connection <strong>in</strong>itiated by peer P <strong>to</strong> super peer SP.<br />

<strong>in</strong>com<strong>in</strong>g connection from a peer it chooses <strong>to</strong> accept. If the message arrives with<strong>in</strong> T h seconds from the<br />

<strong>in</strong>stallation time <strong>of</strong> the rule, the hard timeout is replaced by a s<strong>of</strong>t timeout <strong>of</strong> T s seconds. If it fails <strong>to</strong> do<br />

so, the rules are removed au<strong>to</strong>matically by the OpenFlow switch. The rules are deleted if the super peer<br />

notifies the Virtual <strong>Peer</strong> application <strong>to</strong> do so, a s<strong>of</strong>t timeout occurs, or when the virtual peer is removed.<br />

The value <strong>of</strong> T s should be set <strong>to</strong> values that are appropriate for the transport pro<strong>to</strong>col used.<br />

The usage <strong>of</strong> one IP address per virtual peer restricts the maximum number <strong>of</strong> connections <strong>to</strong> 64511<br />

as the port number for both Transmission Control Procol (TCP) and UDP is a 16-bit value and the port<br />

numbers up <strong>to</strong> 1024 should not be used. Ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g 64511 network connections, even if they are<br />

used for low traffic volumes only, requires the super peer <strong>to</strong> dispose sufficient process<strong>in</strong>g and network<br />

resources. Hence, connect<strong>in</strong>g <strong>to</strong> 64511 other hosts might be sufficient for many use cases. Additional IP<br />

addresses could be used as source addresses, <strong>in</strong>creas<strong>in</strong>g the maximum number <strong>of</strong> supported clients by<br />

the service. This approach is beyond the scope <strong>of</strong> this work.<br />

Interactions with other components.<br />

The Virtual <strong>Peer</strong> application does <strong>in</strong>teract with the OpenFlow controller it is based upon <strong>in</strong> two ways.<br />

First, the commands for the OpenFlow switch configuration are passed <strong>to</strong> the controller. Second, status<br />

<strong>in</strong>formation on the OpenFlow switch and its configuration are passed from the controller <strong>to</strong> the application.<br />

This <strong>in</strong>cludes <strong>in</strong>formation concern<strong>in</strong>g the operational status <strong>of</strong> the VP switch and timeout events<br />

related <strong>to</strong> the OpenFlow rules managed by the application. Both types <strong>of</strong> events are passed <strong>to</strong> the users<br />

<strong>of</strong> the API, depend<strong>in</strong>g on the technology used either by push or pull <strong>in</strong>teraction pattern.<br />

5.3.3 S<strong>of</strong>tware Def<strong>in</strong>ed Multicast Component<br />

The task <strong>of</strong> the SDM application is <strong>to</strong> distribute video streams efficiently <strong>in</strong> the ISP’s network. However,<br />

SDM does not use rely on IP multicast features or pro<strong>to</strong>cols <strong>to</strong> achieve this goal. Instead, the capabilities<br />

40 5. System Design


<strong>of</strong> OpenFlow are used for implement<strong>in</strong>g network <strong>layer</strong> multicast with IP unicast addresses and cross<br />

<strong>layer</strong> group management.<br />

Multicast systems require three functions: group management, multicast tree management and signal<strong>in</strong>g,<br />

and address<strong>in</strong>g and forward<strong>in</strong>g. Figure 5.7 shows an IP multicast doma<strong>in</strong> and an SDM doma<strong>in</strong>.<br />

IP multicast uses IGMP for group management. The multicast tree is managed by a specialized router.<br />

The forward<strong>in</strong>g elements <strong>in</strong> IP multicast are routers that use pro<strong>to</strong>cols like PIM-SM for signal<strong>in</strong>g. For<br />

forward<strong>in</strong>g, addresses from the IP multicast range are used. Each network device on the path from the<br />

source <strong>to</strong> the dest<strong>in</strong>ations is required <strong>to</strong> support IP multicast.<br />

Multicast<br />

Packet Stream<br />

IP Multicast<br />

Doma<strong>in</strong><br />

Distribution Tree<br />

Management Router<br />

Intradoma<strong>in</strong><br />

Multicast Rout<strong>in</strong>g<br />

Pro<strong>to</strong>col: PIM-SM<br />

Group Management<br />

Pro<strong>to</strong>col: IGMP<br />

(a) IP Multicast Doma<strong>in</strong>.<br />

Group Management<br />

SDM API Access<br />

Unicast packet stream<br />

OpenFlow<br />

API Server<br />

OpenFlow<br />

signal<strong>in</strong>g<br />

Multicast<br />

Packet Stream<br />

S<strong>of</strong>tware Def<strong>in</strong>ed<br />

Multicast Doma<strong>in</strong><br />

Group<br />

Management<br />

Server<br />

Group Management<br />

Client Access<br />

Multicast packet delivery<br />

with unicast addresses<br />

(b) S<strong>of</strong>tware Def<strong>in</strong>ed Multicast Doma<strong>in</strong>.<br />

Figure 5.7.: Comparison <strong>of</strong> an IP multicast and a SDM doma<strong>in</strong>.<br />

With SDM, arbitrary application <strong>layer</strong> pro<strong>to</strong>cols can be used for group management as depicted by<br />

the green arrows <strong>in</strong> Figure 5.7b. For security reasons, the group membership API should not be used<br />

by every group member <strong>in</strong>dividually. Hence, a group member is elected <strong>to</strong> act as proxy for the group<br />

management features. In case <strong>of</strong> the RASP system, the super peer is the group manager. The OpenFlow<br />

SDM application manages the distribution tree <strong>in</strong>side the SDM doma<strong>in</strong>. The OpenFlow controller uses<br />

the OpenFlow pro<strong>to</strong>col for signal<strong>in</strong>g <strong>of</strong> the multicast tree. The whole network consists <strong>of</strong> OpenFlow<br />

switches, no specialized devices or pro<strong>to</strong>cols are needed. For forward<strong>in</strong>g, normal unicast IP addresses are<br />

5.3. Components 41


used outside the SDM doma<strong>in</strong>, <strong>in</strong>side the packets are marked as expla<strong>in</strong>ed below. The data source sends<br />

the packet stream <strong>to</strong> a special network addressed as shown by the <strong>to</strong>pmost red arrow <strong>in</strong> Figure 5.7b. The<br />

packets are labeled for multicast transport and forwarded as shown by the blue l<strong>in</strong>es. Before exit<strong>in</strong>g the<br />

system, the dest<strong>in</strong>ation address and port are rewritten. The packets exit the system as unicast packets,<br />

which is shown <strong>in</strong> Figure 5.7b as the red arrows near the bot<strong>to</strong>m.<br />

The approach <strong>of</strong> SDM exploits the features <strong>of</strong> OpenFlow: the separation <strong>of</strong> rout<strong>in</strong>g and forward<strong>in</strong>g,<br />

the efficient rewrit<strong>in</strong>g <strong>of</strong> packet header fields, and the easy <strong>in</strong>tegration with other s<strong>of</strong>tware. The latter<br />

enables the use <strong>of</strong> a application <strong>layer</strong> API for the service <strong>in</strong>stead <strong>of</strong> us<strong>in</strong>g network <strong>layer</strong> pro<strong>to</strong>cols as with<br />

IP multicast. This is beneficial for <strong>in</strong>tegration with the rest <strong>of</strong> the RASP service as no separate mechanism<br />

is required for the use <strong>of</strong> multicast.<br />

For multicast forward<strong>in</strong>g, SDM has <strong>to</strong> perform three functions: identification and mark<strong>in</strong>g packets<br />

addressed at the border <strong>of</strong> the SDM doma<strong>in</strong>, distribute the packets <strong>to</strong> the OpenFlow switches at the<br />

other border <strong>of</strong> the network and f<strong>in</strong>ally rewrite the packets fields <strong>to</strong> match the values expected by the<br />

each group member. This schema is depicted <strong>in</strong> Figure 5.8.<br />

Group source<br />

Unicast address<strong>in</strong>g<br />

Ingress switches<br />

SDM Doma<strong>in</strong><br />

Forward<strong>in</strong>g by<br />

SDM mark / SDM<br />

group socket<br />

Egress switches<br />

Unicast address<strong>in</strong>g<br />

Group members<br />

Figure 5.8.: Schema <strong>of</strong> the SDM concept.<br />

The identification <strong>of</strong> packets addresses at a SDM group is implemented on the SDM doma<strong>in</strong>’s <strong>in</strong>gress<br />

switches. The set <strong>of</strong> <strong>in</strong>gress switches <strong>in</strong>cludes all switches where packets address <strong>to</strong> SDM groups could<br />

enter the SDM doma<strong>in</strong>. The packets are marked as SDM packets after identification for simple recognition<br />

<strong>in</strong>side the SDM doma<strong>in</strong>. F<strong>in</strong>ally, before leav<strong>in</strong>g the SDM doma<strong>in</strong>, for each member <strong>of</strong> a multicast group<br />

the correspond<strong>in</strong>g dest<strong>in</strong>ation address and port is written <strong>to</strong> the multicast packets on the SDM egress<br />

switches. For optimal efficiency, the SDM doma<strong>in</strong> should span the whole OpenFlow doma<strong>in</strong>. This means,<br />

that egress and <strong>in</strong>gress switches should be as close a possible <strong>to</strong> the border <strong>of</strong> the OpenFlow doma<strong>in</strong>.<br />

The alternative is <strong>to</strong> locate the <strong>in</strong>gress and egress switches further <strong>in</strong>side the OpenFlow doma<strong>in</strong>. This<br />

approach reduces the part <strong>of</strong> the OpenFlow doma<strong>in</strong> where the SDM packets are efficiently forwarded<br />

us<strong>in</strong>g the multicast tree and where they are an easy subject <strong>to</strong> traffic management. Once the dest<strong>in</strong>ation<br />

address <strong>of</strong> the respective peer is written <strong>to</strong> each packet, match<strong>in</strong>g multicast traffic requires one rule for<br />

each group member.<br />

This approach <strong>of</strong> mark<strong>in</strong>g <strong>in</strong>com<strong>in</strong>g packets is used, as SDM multicast packets can only be identified by<br />

their specific source and dest<strong>in</strong>ation address and port, and the used transport pro<strong>to</strong>col. The alternative <strong>to</strong><br />

42 5. System Design


mark<strong>in</strong>g the packets is <strong>to</strong> use OpenFlow rules with 5 match fields on all switches for multicast forward<strong>in</strong>g<br />

<strong>in</strong> the SDM doma<strong>in</strong>. The used match fields make it impossible <strong>to</strong> match more than one SDM group at<br />

once <strong>in</strong> one OpenFlow matcher. On OpenFlow hardware devices that allocate the CAM per match field,<br />

this approach also <strong>in</strong>creases the resource usage. To mitigate this, the packets are marked <strong>in</strong> a generic<br />

fashion, identify<strong>in</strong>g them as multicast packets. In addition <strong>to</strong> that, their multicast group membership<br />

is revealed by the packets source address. Mark<strong>in</strong>g packets on enter<strong>in</strong>g a network and us<strong>in</strong>g the mark<br />

for forward<strong>in</strong>g <strong>in</strong>side the network is an established concept <strong>in</strong> network<strong>in</strong>g; one example is MPLS [100].<br />

For forward<strong>in</strong>g <strong>in</strong>side the SDM doma<strong>in</strong>, the mark is used for identification <strong>of</strong> multicast packets. This<br />

allows match<strong>in</strong>g multicast packets by us<strong>in</strong>g one OpenFlow match field only and the group by us<strong>in</strong>g two<br />

additional match fields. The dest<strong>in</strong>ation address and port fields <strong>in</strong> the multicast packet headers are not<br />

used; they can be used for other purposes if necessary.<br />

The detailed operation <strong>of</strong> the SDM concept and the required OpenFlow rule schemata are described<br />

<strong>in</strong> the follow<strong>in</strong>g paragraphs. An IP address, a transport pro<strong>to</strong>col, and a port number identify<strong>in</strong>g a communications<br />

endpo<strong>in</strong>t is called socket. Only connectionless transport pro<strong>to</strong>cols are suitable for network<br />

<strong>layer</strong> multicast. Hence, UDP is the transport pro<strong>to</strong>col assumed for all sockets described <strong>in</strong> this section.<br />

SDM groups are identified by their group socket G socket = (G address , G port ). It is used as source address for<br />

packet delivery and as dest<strong>in</strong>ation address for the packet stream com<strong>in</strong>g from the group’s source socket<br />

(S socket ). Alternatively, other unused fields could be used for group identification. For example, the data<br />

l<strong>in</strong>k <strong>layer</strong> addresses are likely be not used for forward<strong>in</strong>g <strong>in</strong> an ISP core network. A unique group ID<br />

can be assigned <strong>to</strong> each group and the source and dest<strong>in</strong>ation port used for different purposes. However,<br />

two more fields <strong>of</strong> the multicast packets have <strong>to</strong> be rewritten when the packets leaves the SDM doma<strong>in</strong>,<br />

which might <strong>in</strong>crease the resource requirements on the egress switches. Furthermore, the data l<strong>in</strong>k <strong>layer</strong><br />

addresses can also be used for different purposes as described <strong>in</strong> the Explicit Multicast extension.<br />

Creat<strong>in</strong>g a new SDM group through the API requires the group manager <strong>to</strong> supply G socket and S socket .<br />

Based on this <strong>in</strong>formation, OpenFlow rules for match<strong>in</strong>g and mark<strong>in</strong>g multicast packets belong<strong>in</strong>g <strong>to</strong><br />

that group are created on the relevant <strong>in</strong>gress switches, which are denoted by SWC G . This could be<br />

mark<br />

either a s<strong>in</strong>gle OpenFlow switch or a set <strong>of</strong> switches. Packets addressed <strong>to</strong> G address need <strong>to</strong> be forwarded<br />

<strong>to</strong> the SWC G , which should be ensured by the rout<strong>in</strong>g application used with<strong>in</strong> the OpenFlow doma<strong>in</strong>.<br />

mark<br />

The requirement is au<strong>to</strong>matically fulfilled if all <strong>in</strong>gress switches where packets addressed at the SDM<br />

group G may enter the SDM doma<strong>in</strong> are conta<strong>in</strong>ed <strong>in</strong> SWC G . The OpenFlow rules needed for mark<strong>in</strong>g<br />

mark<br />

the packets are shown <strong>in</strong> Table 5.2. The rule matches on the source and dest<strong>in</strong>ation address and port.<br />

It writes the SDM mark <strong>to</strong> the packet and sets its source address and port <strong>to</strong> the ones <strong>of</strong> the multicast<br />

group G.<br />

Field Match value Change value New value<br />

Pro<strong>to</strong>col UDP no –<br />

Network source address S address yes G address<br />

TCP/UDP source port S port yes G port<br />

Network dest<strong>in</strong>ation address G address no –<br />

TCP/UDP dest<strong>in</strong>ation port G port no –<br />

SDM mark field – yes SDM mark<br />

Table 5.2.: OpenFlow rule schema for mark<strong>in</strong>g packets addresses <strong>to</strong> a SDM multicast group on the group’s mark<strong>in</strong>g<br />

switches.<br />

5.3. Components 43


The packet header fields and its values used for mark<strong>in</strong>g are left <strong>to</strong> the discretion <strong>of</strong> the network opera<strong>to</strong>r.<br />

This allows easy <strong>in</strong>tegration with other services and the exist<strong>in</strong>g technical environment. Depend<strong>in</strong>g<br />

on the OpenFlow version used, a VLAN or MPLS tag, or any other header field that is unused dur<strong>in</strong>g<br />

forward<strong>in</strong>g, like the dest<strong>in</strong>ation IP address field, can be used as mark field.<br />

After creat<strong>in</strong>g a SDM group, members can be added by the group manager. A member M G <strong>of</strong> group<br />

G is identified by its socket M G socket = (MG address , MG port<br />

), which is supplied by the group manager. The<br />

last OpenFlow switch <strong>in</strong> the network on the path from G address <strong>to</strong> M G is identified. This switch is<br />

address<br />

called the member switch M G switch , the set <strong>of</strong> member switches <strong>in</strong> a SDM group is called SWCG member .<br />

Potential member switches are the egress switches <strong>of</strong> the SDM doma<strong>in</strong>. When a member is added, a rule<br />

is <strong>in</strong>stalled on M G that rewrites the multicast packets dest<strong>in</strong>ation IP address and port <strong>to</strong> the values<br />

switch<br />

from the M G . The schema for this rule is shown <strong>in</strong> Table 5.3.<br />

socket<br />

Field Match value Change value New value<br />

Pro<strong>to</strong>col UDP no –<br />

SDM mark field SDM mark no –<br />

Network dest<strong>in</strong>ation address – yes M G address<br />

TCP/UDP dest<strong>in</strong>ation port – yes M G port<br />

Table 5.3.: OpenFlow rule schema for writ<strong>in</strong>g a member’s socket <strong>in</strong>formation <strong>to</strong> packets <strong>of</strong> a SDM multicast group<br />

on the group’s member switches.<br />

The multicast packets are identified by the SDM mark <strong>to</strong> separate them from other traffic. The group<br />

a packet belongs <strong>to</strong> can be identified by the source address and port <strong>of</strong> the packet. The identification<br />

method is similar <strong>to</strong> Source-Specific Multicast (SSM) [41]. This approach enables the network opera<strong>to</strong>r<br />

<strong>to</strong> apply traffic eng<strong>in</strong>eer<strong>in</strong>g <strong>to</strong> all SDM multicast data streams or <strong>in</strong>dividual multicast groups.<br />

The approach on the multicast tree management can be chosen arbitrarily by the network opera<strong>to</strong>r.<br />

The use <strong>of</strong> marked packets for multicast forward<strong>in</strong>g <strong>in</strong> the network and the unused dest<strong>in</strong>ation address<br />

fields allow the application <strong>of</strong> different multicast-forward<strong>in</strong>g schemes. One application <strong>of</strong> this is use <strong>of</strong><br />

multicast group state reduction mechanisms <strong>in</strong> the network as done by the Explicit Multicast concept,<br />

which is presented <strong>in</strong> Section 5.3.4.<br />

For illustration, a simple group-based distribution tree is described. The distribution tree is determ<strong>in</strong>ed<br />

by two sets <strong>of</strong> switches: SWC G mark and SWCG . The m<strong>in</strong>imum tree spann<strong>in</strong>g both sets <strong>of</strong><br />

member<br />

switches (G tree ) is calculated for each SDM group. On the OpenFlow switches that are part <strong>of</strong> G tree a<br />

rule is <strong>in</strong>stalled for forward<strong>in</strong>g packets com<strong>in</strong>g from SWC G mark <strong>to</strong> SWCG . Packets are duplicated by<br />

member<br />

the OpenFlow rules <strong>in</strong>stalled on <strong>in</strong>ternal nodes <strong>of</strong> G tree . One more efficient example is <strong>in</strong>troduced <strong>in</strong><br />

Section 5.3.4.<br />

Interactions with other components.<br />

The SDM application relies on the OpenFlow controller and the <strong>to</strong>pology database for its operation.<br />

The <strong>to</strong>pology database is used for gather<strong>in</strong>g <strong>in</strong>formation on <strong>in</strong>gress and egress nodes, f<strong>in</strong>d<strong>in</strong>g member<br />

switches M G for group members, and for determ<strong>in</strong><strong>in</strong>g the multicast tree. The application processes<br />

switch<br />

<strong>in</strong>formation on <strong>to</strong>pology changes adapt<strong>in</strong>g the multicast distribution tree if needed. If a multicast group<br />

or the forward<strong>in</strong>g <strong>to</strong> a member fails, the respective users are notified.<br />

44 5. System Design


5.3.4 Explicit Multicast Subcomponent<br />

The SDM concept <strong>in</strong>troduced <strong>in</strong> this chapter separates the delivery <strong>of</strong> a multicast packet <strong>to</strong> a group<br />

member from the multicast forward<strong>in</strong>g with<strong>in</strong> the network. The SDM system’s core functionality is the<br />

group management, the identification <strong>of</strong> <strong>in</strong>com<strong>in</strong>g packets and the preparation <strong>of</strong> outgo<strong>in</strong>g packets. The<br />

multicast rout<strong>in</strong>g <strong>in</strong>side the network, whose task it is <strong>to</strong> deliver packets from an <strong>in</strong>gress switch <strong>to</strong> a number<br />

<strong>of</strong> egress switches, can be implemented by a separate subsystem. To illustrate the possibilities <strong>of</strong> this<br />

approach, a stateless hierarchical multicast-forward<strong>in</strong>g scheme based on Explicit Multicast is presented<br />

<strong>in</strong> this section. It is enabled by SDM because the dest<strong>in</strong>ation IP address is not used for forward<strong>in</strong>g <strong>in</strong>side<br />

the multicast doma<strong>in</strong>.<br />

The packet-forward<strong>in</strong>g scheme for SDM as discussed <strong>in</strong> Section 5.3.3 requires one rule per multicast<br />

group on each OpenFlow switch that is part <strong>of</strong> the distribution tree. For large numbers <strong>of</strong> groups this is<br />

disadvantageous, especially for use <strong>in</strong> the core network <strong>of</strong> an ISP. In OpenFlow networks, the number<br />

<strong>of</strong> rules an application requires determ<strong>in</strong>es its applicability. The issue <strong>of</strong> scal<strong>in</strong>g multicast group state<br />

for IP multicast is an open research <strong>to</strong>pic [60]. Also, the <strong>to</strong>pic is researched <strong>in</strong> the context <strong>of</strong> SDN.<br />

In [19] forward<strong>in</strong>g without group state is achieved by <strong>in</strong>clud<strong>in</strong>g packet-process<strong>in</strong>g <strong>in</strong>structions for the<br />

switches <strong>in</strong> each packets header. However, this approach cannot be used with the available versions <strong>of</strong><br />

the OpenFlow standard. Other alternatives rely on Bloom filters for reduc<strong>in</strong>g network state, e.g. [76]<br />

<strong>in</strong> which each packet conta<strong>in</strong>s the whole path it should travel. However, as expla<strong>in</strong>ed at the end <strong>of</strong> this<br />

section, Bloom filters are not suitable <strong>in</strong> this context.<br />

With ability <strong>to</strong> rewrite packets and hav<strong>in</strong>g a logically centralized OpenFlow controller hither<strong>to</strong> unfeasible<br />

approaches can be reevaluated. In the approach outl<strong>in</strong>ed <strong>in</strong> this section, hierarchical multicast [21,<br />

p. 107] and explicit multicast [43] are comb<strong>in</strong>ed. The basic concept is <strong>to</strong> use explicit multicast, where<br />

all dest<strong>in</strong>ations are conta<strong>in</strong>ed <strong>in</strong> the header <strong>of</strong> each multicast packet. To keep the size <strong>of</strong> dest<strong>in</strong>ation<br />

addresses small, the multicast doma<strong>in</strong> is structured hierarchically. In higher <strong>layer</strong>s <strong>of</strong> the hierarchy, one<br />

dest<strong>in</strong>ation address denotes a complete subnetwork. When enter<strong>in</strong>g a subnetwork, each packets header<br />

is rewritten <strong>to</strong> conta<strong>in</strong> dest<strong>in</strong>ation addresses <strong>of</strong> the specific subnetwork only. In the context <strong>of</strong> SDM the<br />

term multicast doma<strong>in</strong> is used, therefore the hierarchical structure consists <strong>of</strong> SDM subdoma<strong>in</strong>s.<br />

The SDM doma<strong>in</strong> is divided hierarchically <strong>in</strong><strong>to</strong> subdoma<strong>in</strong>s, each consist<strong>in</strong>g <strong>of</strong> less than 128 dest<strong>in</strong>ations.<br />

When us<strong>in</strong>g core Po<strong>in</strong>t <strong>of</strong> Presences (PoPs) as dest<strong>in</strong>ations, this assumption covers more than<br />

90% <strong>of</strong> commercial, research, and educational networks [54, p. 1772]. With<strong>in</strong> a subdoma<strong>in</strong>, each packet<br />

header <strong>in</strong>cludes a bitmap <strong>of</strong> all locations it should be forwarded <strong>to</strong>. This requires a 128-bit field <strong>in</strong> the<br />

packets header. Because the dest<strong>in</strong>ation IP address field is not used for forward<strong>in</strong>g <strong>in</strong> SDM it can be used<br />

for other purposes. Us<strong>in</strong>g bit masks as address<strong>in</strong>g scheme for multicast is described <strong>in</strong> [92]. For IPv4 the<br />

network dest<strong>in</strong>ation address with 32 bit and both data l<strong>in</strong>k <strong>layer</strong> addresses with 48 bits each are used.<br />

For IPv6 the dest<strong>in</strong>ation address could be used for a 128 bit field, and both data l<strong>in</strong>k <strong>layer</strong> addresses<br />

for an even larger bitmap. The idea <strong>of</strong> chang<strong>in</strong>g the semantics <strong>of</strong> address fields with SDN is presented<br />

<strong>in</strong> [32, p. 5]. Each subnetwork conta<strong>in</strong>s n ≤ 128 border locations. Each switch <strong>in</strong> all locations conta<strong>in</strong>s<br />

routes <strong>to</strong> locations, yield<strong>in</strong>g n rout<strong>in</strong>g entries per device.<br />

For illustration, an SDM doma<strong>in</strong> with 3 subdoma<strong>in</strong>s and a 3 bit address field is shown <strong>in</strong> Figure 5.9.<br />

Instead <strong>of</strong> locations, <strong>in</strong>dividual switches are used as dest<strong>in</strong>ations <strong>in</strong> the example. The SDM doma<strong>in</strong> has<br />

the <strong>in</strong>gress switches S1 and S2 and the egress switch S7, S8, S10, S11. Subdoma<strong>in</strong> 1 has the border<br />

switches S1, S2, S4. Subdoma<strong>in</strong> 2 has the border switches S4, S7, S8, Subdoma<strong>in</strong> 3 has the border<br />

switches S4, S10, S11. The SDM multicast group depicted by the example has 4 members, which are<br />

connected <strong>to</strong> the egress switches S7, S8, and S11, the group’s mark switch is S1. Packets forwarded by<br />

5.3. Components 45


Unicast address<strong>in</strong>g<br />

Ingress switches<br />

S1 S2<br />

100 010<br />

SDM Subdoma<strong>in</strong> 1<br />

S6<br />

Subdoma<strong>in</strong> border<br />

001<br />

100<br />

S4<br />

100<br />

SDM Subdoma<strong>in</strong> 2<br />

S9<br />

S12<br />

010 001<br />

Egress switches<br />

Unicast address<strong>in</strong>g<br />

S7 S8<br />

010 001<br />

S10<br />

S11<br />

Figure 5.9.: Schematic overview <strong>of</strong> an Explicit SDM doma<strong>in</strong> and its subdoma<strong>in</strong>s.<br />

S1 are addressed at 001, with S4 as the dest<strong>in</strong>ation switch. Switch S4 is a border switch, its task is<br />

<strong>to</strong> rewrite the packet dest<strong>in</strong>ation addresses <strong>to</strong> the respective subdoma<strong>in</strong> dest<strong>in</strong>ation addresses for each<br />

multicast group. The OpenFlow rule schema <strong>of</strong> S4 is shown <strong>in</strong> Table 5.4.<br />

Match<br />

Group G<br />

Actions<br />

Write L3 dst = 011, forward <strong>to</strong> S9; Write L3 dst = 001, Forward <strong>to</strong> S12<br />

Table 5.4.: OpenFlow rule schema for switch S4.<br />

The rule schema on switch S9 illustrates the forward<strong>in</strong>g behavior <strong>in</strong>side a subdoma<strong>in</strong>. Only the dest<strong>in</strong>ation<br />

addresses are matched and the packets forwarded based on this <strong>in</strong>formation. No group related<br />

match<strong>in</strong>g is required. This approach allows multicast forward<strong>in</strong>g <strong>in</strong>side subdoma<strong>in</strong>s with a very small<br />

number <strong>of</strong> rules. This is important for switches <strong>in</strong> the core <strong>of</strong> an ISP network, which are part <strong>of</strong> the forward<strong>in</strong>g<br />

path <strong>of</strong> most applications used <strong>in</strong> the network. Hence, the number <strong>of</strong> rules used for <strong>in</strong>dividual<br />

applications should be as small as possible.<br />

L3 dest<strong>in</strong>ation address field<br />

Match bitmask<br />

Comparison value<br />

Action<br />

010 010 Forward <strong>to</strong> S7<br />

001 001 Forward <strong>to</strong> S8<br />

Table 5.5.: OpenFlow rule schema for switch S9.<br />

Match<strong>in</strong>g <strong>in</strong>dividual bits <strong>of</strong> the dest<strong>in</strong>ation address fields is required for the approach <strong>to</strong> work. This<br />

feature is <strong>in</strong>cluded <strong>in</strong> OpenFlow version 1.2 or later, it is not possible <strong>to</strong> implement this system with<br />

OpenFlow version 1.0 or 1.1.<br />

46 5. System Design


Bloom filters are an <strong>of</strong>ten used alternative approach for s<strong>to</strong>r<strong>in</strong>g address<strong>in</strong>g <strong>in</strong>formation, an overview<br />

<strong>of</strong> their use is given <strong>in</strong> [106, p. 146-148]. An OpenFlow based approach us<strong>in</strong>g Bloom filters is described<br />

<strong>in</strong> [76]. However, the Bloom filter is used <strong>to</strong> encode the whole path <strong>of</strong> the packet not its dest<strong>in</strong>ation<br />

addresses. The goal <strong>of</strong> the approach described here is <strong>to</strong> implement group scale <strong>in</strong>dependent forward<strong>in</strong>g<br />

with OpenFlow and without <strong>in</strong>troduc<strong>in</strong>g new header fields. Hence only exist<strong>in</strong>g and unused header fields<br />

can be used, which <strong>of</strong>fers less than 200-bit s<strong>to</strong>rage space. Furthermore, Bloom filters are probabilistic;<br />

their false positive rates <strong>in</strong>fluence the ratio <strong>of</strong> filter size and number <strong>of</strong> elements that can be s<strong>to</strong>red. A<br />

Bloom filter with a size <strong>of</strong> 128 bit and a false positive rate <strong>of</strong> 0.01 can s<strong>to</strong>re − 128(ln(2))2 = 13.4 elements<br />

ln(0.01)<br />

[106, p. 133]. 128 elements can be s<strong>to</strong>red when each node is encoded as a number and a bitmap is<br />

used. However, Bloom filters are used <strong>in</strong> multicast approaches without rely<strong>in</strong>g on OpenFlow, but us<strong>in</strong>g<br />

forward<strong>in</strong>g methods similar <strong>to</strong> source rout<strong>in</strong>g [47, 96]. In these approaches, each packet conta<strong>in</strong>s the<br />

whole forward<strong>in</strong>g path <strong>in</strong> its header, encoded <strong>in</strong> a Bloom filter, similar <strong>to</strong> the OpenFlow base approach<br />

described before.<br />

5.4 <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> System Integration<br />

The goal <strong>of</strong> RASP is <strong>to</strong> <strong>of</strong>fer upload capacity <strong>of</strong>fload <strong>to</strong> P2P LVS peers. However, the usage <strong>of</strong> RASP<br />

requires the P2P LVS system <strong>to</strong> support its technical implementation. Specifically, RASP requires the<br />

super peer <strong>to</strong> support its service API and the feed<strong>in</strong>g <strong>of</strong> the video stream <strong>to</strong> the service. Other peers<br />

are required <strong>to</strong> receive each video stream pushed by the super peer on a dedicated unidirectional UDP<br />

network connection.<br />

5.4.1 General Considerations and <strong>Peer</strong> Behavior Adaptation<br />

The adaptation <strong>to</strong> these requirements is up <strong>to</strong> the P2P LVS system opera<strong>to</strong>rs and application providers.<br />

Still, certa<strong>in</strong> elements are expected <strong>to</strong> be part <strong>of</strong> most adaptation processes. The overlay connection does<br />

not require any adjustments. Hence, peers can connect <strong>to</strong> a super peer us<strong>in</strong>g a RASP <strong>in</strong>stance normally.<br />

The super peer should <strong>in</strong>form the peers upon connection that the connection used is a special one, which<br />

employs certa<strong>in</strong> characteristics. If the peer is able <strong>to</strong> receive the RASP service and agrees <strong>to</strong> do so, it<br />

cont<strong>in</strong>ues with the connection. If not, it should term<strong>in</strong>ate the connection. Other P2P communication<br />

should proceed normally, like announc<strong>in</strong>g the list <strong>of</strong> available channels and other <strong>in</strong>formation. If a peer<br />

requests a video stream, the super peer should notify the peer on the conditions <strong>of</strong> the delivery. This<br />

<strong>in</strong>formation <strong>in</strong>cludes the port number <strong>of</strong> the video stream source. The peer provides his IP address and<br />

port number where it wished <strong>to</strong> receive the video stream. The super peer then proceeds as described <strong>in</strong><br />

the functional description <strong>in</strong> Section 5.1.1.<br />

Many P2P LVS systems use the overlay network for control message and video stream delivery. RASP<br />

requires the video stream <strong>to</strong> be delivered us<strong>in</strong>g a dedicated network connection. Hence, the systems<br />

need <strong>to</strong> implement this delivery method <strong>in</strong> order <strong>to</strong> use the RASP service. The video stream delivery<br />

method <strong>of</strong> the service has the same characteristics as tree <strong>to</strong>pology. The video is pushed from the super<br />

peer <strong>to</strong> the peer us<strong>in</strong>g a unidirectional connection. If the P2P LVS system is not tree but mesh-based,<br />

adaptation system can be considered. One example for such systems is Transit [99], which allows <strong>to</strong><br />

adapt the <strong>to</strong>pology and schedul<strong>in</strong>g <strong>of</strong> P2P LVS systems dynamically. <strong>Peer</strong>s connect<strong>in</strong>g <strong>to</strong> a RASP super<br />

peer could dynamically switch <strong>to</strong> tree-based <strong>to</strong>pology.<br />

5.4. <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> System Integration 47


5.4.2 Super <strong>Peer</strong> Adaptation<br />

The super peer is required <strong>to</strong> implement the API access <strong>to</strong> the RASP service for its usage. This <strong>in</strong>cludes<br />

the setup <strong>of</strong> a RASP <strong>in</strong>stance and the feed<strong>in</strong>g <strong>of</strong> the relevant video streams <strong>in</strong><strong>to</strong> the system. If connected<br />

peers request the delivery <strong>of</strong> a video stream, the super peer uses the RASP API for add<strong>in</strong>g them <strong>to</strong> the<br />

stream’s member list. When a peer leaves, another call <strong>to</strong> the RASP API is required.<br />

Because the super peer has a contractual relationship with the ISP, it should prohibit the misuse <strong>of</strong><br />

its RASP <strong>in</strong>stance. The overlay connections should not be used for data delivery as the virtual peer is<br />

not designed for high data rates and data volume. For maximal efficiency and P2P LVS performance, the<br />

super peer should accept all peers that request <strong>to</strong> jo<strong>in</strong> the system through the RASP <strong>in</strong>stance.<br />

Special measures should be taken <strong>to</strong> make sure the system is able <strong>to</strong> take over the duties <strong>of</strong> a super peer<br />

<strong>in</strong> the system. This can be done on discretion <strong>of</strong> the super peer opera<strong>to</strong>r or the P2P LVS system opera<strong>to</strong>r.<br />

Approaches on how <strong>to</strong> select stable peers could are described <strong>in</strong> the literature, e.g. [111]. Furthermore,<br />

approaches on motivat<strong>in</strong>g peers <strong>to</strong> <strong>in</strong>crease their upstream bandwidth are researched, e.g. <strong>in</strong> [51]. Once<br />

the RASP <strong>in</strong>stance is runn<strong>in</strong>g, its contact <strong>in</strong>formation should be passed <strong>to</strong> neighbors.<br />

5.4.3 Rent-a-Super <strong>Peer</strong> Instance Discovery<br />

RASP <strong>in</strong>stances should be given precedence for peers with<strong>in</strong> ISP networks. One way <strong>to</strong> achieve this is <strong>to</strong><br />

propagate the <strong>in</strong>formation <strong>in</strong> the P2P LVS system. <strong>Peer</strong>s should propagate the RASP <strong>in</strong>stance <strong>in</strong>formation<br />

<strong>in</strong> their neighborhood. Another way <strong>of</strong> achiev<strong>in</strong>g RASP <strong>in</strong>stance precedence is us<strong>in</strong>g <strong>in</strong>formation supplied<br />

by ISPs for users <strong>of</strong> P2P systems. The ALTO service [11] is a standard pro<strong>to</strong>col for exchange <strong>of</strong> such<br />

<strong>in</strong>formation. It enables P2P users <strong>to</strong> query their ISPs for <strong>in</strong>formation about potential peers. The ALTO<br />

endpo<strong>in</strong>t cost service [11, p. 12] is used for prioritization <strong>of</strong> peer connections. A peer sends a list <strong>of</strong><br />

potential neighbors <strong>to</strong> the service, which replies with network costs for these clients. When the ALTO<br />

service is requested <strong>to</strong> give the costs <strong>of</strong> an IP address <strong>of</strong> a RASP <strong>in</strong>stance, the connection costs should<br />

be m<strong>in</strong>imal <strong>to</strong> encourage peer<strong>in</strong>g. This could be implemented by reserv<strong>in</strong>g certa<strong>in</strong> IP networks for RASP<br />

<strong>in</strong>stances. All addresses <strong>in</strong> these networks are advertised with m<strong>in</strong>imal connections costs. As each RASP<br />

<strong>in</strong>stance is used for only one P2P system, only peers us<strong>in</strong>g this network will attempt <strong>to</strong> connect <strong>to</strong> it,<br />

which eschews the problem for the ALTO service <strong>of</strong> identify<strong>in</strong>g the used P2P LVS system before giv<strong>in</strong>g<br />

<strong>in</strong>formation.<br />

48 5. System Design


6 Pro<strong>to</strong>type<br />

This chapter describes the pro<strong>to</strong>typical implementation <strong>of</strong> RASP for evaluation. The basic components<br />

described <strong>in</strong> the RASP design architecture, which is shown <strong>in</strong> Figure 6.1 are part <strong>of</strong> the pro<strong>to</strong>type.<br />

The pro<strong>to</strong>type allows the evaluation <strong>of</strong> the basic RASP concept and its characteristics. They <strong>in</strong>clude the<br />

transmission efficiency and the overhead generated by the RASP service. Therefore, the implementation<br />

focuses on the key components <strong>of</strong> RASP: the RASP controller with the service’s API, the Virtual <strong>Peer</strong>, and<br />

the SDM component. The explicit multicast subcomponent is not required for evaluat<strong>in</strong>g the concept. It<br />

is relevant for reduc<strong>in</strong>g the network state requirements <strong>of</strong> the SDM component. Furthermore, it requires<br />

OpenFlow version 1.2 for its implementation, for which no evaluation environment is available; the<br />

reason for that is described <strong>in</strong> Section 6.2.2. Of these components, only functional parts required for<br />

evaluat<strong>in</strong>g the RASP service are implemented. Features concern<strong>in</strong>g security such as authentication and<br />

authorization and account<strong>in</strong>g are not part <strong>of</strong> the pro<strong>to</strong>type.<br />

Application<br />

Layer<br />

RASP Controller<br />

with Service API<br />

Control<br />

Layer<br />

Explicit<br />

Multicast<br />

SDM<br />

Application<br />

Virtual <strong>Peer</strong><br />

Application<br />

OpenFlow Controller/<br />

Network OS<br />

Topology<br />

Database<br />

Infrastructure<br />

Layer<br />

OpenFlow switches<br />

Figure 6.1.: The components <strong>of</strong> the RASP service that are part <strong>of</strong> the pro<strong>to</strong>type.<br />

Furthermore, their actual implementations us<strong>in</strong>g OpenFlow and their <strong>in</strong>tegration with other OpenFlow<br />

applications runn<strong>in</strong>g <strong>in</strong> the same network are relevant. As the service should be <strong>of</strong>fered by ISPs, the<br />

characteristics <strong>of</strong> ISP networks and their <strong>in</strong>fluence on the RASP concept are evaluated as well. Hence,<br />

the pro<strong>to</strong>type needs <strong>to</strong> support these sett<strong>in</strong>gs, <strong>to</strong>o.<br />

No sufficiently large testbed is available <strong>to</strong> the author; hence, an emulated network is used. The<br />

emulation is based on a M<strong>in</strong><strong>in</strong>et [59], which makes the au<strong>to</strong>mated creation and operation <strong>of</strong> emulated<br />

network based on OpenFlow switches possible. Either hardware switches or s<strong>of</strong>tware switches can be<br />

used with the system. Normal L<strong>in</strong>ux programs can be used on the emulated hosts <strong>of</strong> M<strong>in</strong><strong>in</strong>et.<br />

The use <strong>of</strong> OpenFlow version 1.1 or higher is advantageous for the RASP applications, because it<br />

enables more efficient comb<strong>in</strong>ation <strong>of</strong> OpenFlow rules, as described <strong>in</strong> Section 2.3.1, which simplifies<br />

the <strong>in</strong>tegration <strong>of</strong> different OpenFlow applications. Furthermore, the Explicit Multicast subcomponent<br />

49


elies on OpenFlow 1.2, which is still a new standard, so that it is not supported by all relevant s<strong>of</strong>tware<br />

yet. In the follow<strong>in</strong>g options that allow the support <strong>of</strong> OpenFlow 1.1 or 1.2 will be <strong>in</strong>cluded if possible.<br />

However, as shown <strong>in</strong> Section 6.2.2 the available s<strong>of</strong>tware does not allow its evaluation on a reasonable<br />

scale.<br />

This chapter is organized as follows: first, an overview <strong>of</strong> the pro<strong>to</strong>types architecture is given <strong>in</strong> Section<br />

6.1 and on the network emulation <strong>in</strong> Section 6.2. Be<strong>in</strong>g the foundation <strong>of</strong> the RASP applications<br />

components, the OpenFlow controller s<strong>of</strong>tware is described <strong>in</strong> Section 6.3. The description <strong>of</strong> the implementation<br />

<strong>of</strong> the components <strong>of</strong> the RASP service follows <strong>in</strong> Section 6.4.<br />

6.1 Architecture<br />

An overview <strong>of</strong> the pro<strong>to</strong>type, its components, and the correspond<strong>in</strong>g setup for evaluation is given <strong>in</strong><br />

Figure 6.2. In the figure, elements, which are colored <strong>in</strong> green, correspond <strong>to</strong> components that constitute<br />

the RASP system, blue elements <strong>to</strong> support<strong>in</strong>g applications written for this work, and grey colored ones<br />

<strong>to</strong> already exist<strong>in</strong>g s<strong>of</strong>tware.<br />

Network<br />

Experiment<br />

RASP Controller<br />

with Service API<br />

REST API REST API REST API<br />

Topology<br />

App<br />

SDM<br />

App<br />

Virtual<br />

<strong>Peer</strong> App<br />

Network<br />

Topology<br />

Ryu OpenFlow Controller<br />

M<strong>in</strong><strong>in</strong>et<br />

OpenFlow Network<br />

Figure 6.2.: Overview <strong>of</strong> the pro<strong>to</strong>type implementation and the accompany<strong>in</strong>g emulation system <strong>of</strong> RASP.<br />

The pro<strong>to</strong>type <strong>of</strong> RASP consists <strong>of</strong> three components: the public service <strong>in</strong>terface and two OpenFlow<br />

controller applications. The controller applications are the SDM and Virtual <strong>Peer</strong> applications. The public<br />

service API allows the usage <strong>of</strong> the RASP service, whose functionality is implemented by the two<br />

OpenFlow controller applications.<br />

50 6. Pro<strong>to</strong>type


As foundation <strong>of</strong> these applications, OpenFlow controller s<strong>of</strong>tware and a network <strong>to</strong>pology database<br />

is required: for the controller, an exist<strong>in</strong>g application is used, for the <strong>to</strong>pology database, an OpenFlow<br />

controller application is created. The <strong>to</strong>pology application uses the network <strong>to</strong>pology data, which has<br />

been already used for creat<strong>in</strong>g the emulated network, for implement<strong>in</strong>g the forward<strong>in</strong>g behavior <strong>of</strong> the<br />

network. In addition <strong>to</strong> that, it <strong>of</strong>fers <strong>to</strong>pology <strong>in</strong>formation on the network <strong>to</strong> other OpenFlow controller<br />

applications.<br />

M<strong>in</strong><strong>in</strong>et is used for emulat<strong>in</strong>g networks. To create network <strong>to</strong>pologies with<strong>in</strong> M<strong>in</strong><strong>in</strong>et, a network <strong>to</strong>pology<br />

configuration is used, which def<strong>in</strong>es the switches, hosts as well as their connections. As the switches<br />

are OpenFlow devices, their behavior is def<strong>in</strong>ed by the OpenFlow controller. The hosts’ sett<strong>in</strong>gs are part<br />

<strong>of</strong> the <strong>to</strong>pology configuration as well as the networks’ forward<strong>in</strong>g behavior. F<strong>in</strong>ally, the network experiment<br />

controls the networks behavior dur<strong>in</strong>g tests. Various scenarios can be created by start<strong>in</strong>g data<br />

streams us<strong>in</strong>g the RASP service and runn<strong>in</strong>g emulated P2P networks.<br />

In this work, dur<strong>in</strong>g the test the network <strong>to</strong>pology is assumed static. This means that network connections,<br />

peers, and switches are not expected <strong>to</strong> change their status dur<strong>in</strong>g tests, what greatly simplifies<br />

the implementation <strong>of</strong> OpenFlow controller applications. Still, this assumption allows evaluation <strong>of</strong> the<br />

relevant properties <strong>of</strong> the system.<br />

6.2 Network Emulation<br />

Before discuss<strong>in</strong>g the actual RASP application and its implementation, the environment <strong>of</strong> the application<br />

needs <strong>to</strong> be described. The RASP application is meant <strong>to</strong> run <strong>in</strong> an ISP network environment; hence, the<br />

goal <strong>of</strong> the emulated network is <strong>to</strong> create adequate network sett<strong>in</strong>gs. The specific assumptions made<br />

should be m<strong>in</strong>imal, while still implement the required characteristics.<br />

For creat<strong>in</strong>g and runn<strong>in</strong>g the emulated network, M<strong>in</strong><strong>in</strong>et, as described <strong>in</strong> Section 6.2.1, is used. The<br />

simulated network and its <strong>to</strong>pology are described <strong>in</strong> Section 6.2.3<br />

6.2.1 M<strong>in</strong><strong>in</strong>et<br />

The network emulation <strong>to</strong>ol M<strong>in</strong><strong>in</strong>et [59] version 2.0 is used. M<strong>in</strong><strong>in</strong>et runs on L<strong>in</strong>ux and uses L<strong>in</strong>ux<br />

features for its operation. A M<strong>in</strong><strong>in</strong>et network consists <strong>of</strong> OpenFlow switches and hosts. For switches,<br />

M<strong>in</strong><strong>in</strong>et creates <strong>in</strong>stances <strong>of</strong> OpenFlow s<strong>of</strong>tware switches as required; the available s<strong>of</strong>tware is discussed<br />

<strong>in</strong> Section 6.2.2. Hosts are runn<strong>in</strong>g as normal L<strong>in</strong>ux programs us<strong>in</strong>g their own virtualized network stack<br />

<strong>in</strong>stance, called network namespace. M<strong>in</strong><strong>in</strong>et uses virtual Ethernet pairs <strong>to</strong> connect these network namespaces<br />

with the OpenFlow s<strong>of</strong>tware switch <strong>in</strong>stances. This approach allows the creation and control <strong>of</strong><br />

emulated networks and the programs runn<strong>in</strong>g on the emulated hosts.<br />

M<strong>in</strong><strong>in</strong>et is written <strong>in</strong> the Python programm<strong>in</strong>g language. It <strong>in</strong>cludes programs for runn<strong>in</strong>g au<strong>to</strong>matically<br />

generated networks and <strong>in</strong>teract<strong>in</strong>g with them. An API is available for creat<strong>in</strong>g cus<strong>to</strong>m programs,<br />

experiments and network <strong>to</strong>pologies. Therefore, it can be used as library <strong>to</strong> run a network and its hosts<br />

au<strong>to</strong>matically without the command l<strong>in</strong>e <strong>in</strong>terface.<br />

6.2.2 OpenFlow Switch<br />

The M<strong>in</strong><strong>in</strong>et network emula<strong>to</strong>r <strong>in</strong>cludes two OpenFlow switch s<strong>of</strong>tware implementations: Open vSwitch<br />

[91] 1 , and the OpenFlow reference s<strong>of</strong>tware switch implementation 2 . Both switches support OpenFlow<br />

1<br />

http://openvswitch.org/ [Accessed 21.04.2013]<br />

2<br />

http://yuba.stanford.edu/git/gitweb.cgip=openflow.git;a=summary [Accessed 21.04.2013]<br />

6.2. Network Emulation 51


version 1.0 only. Their ma<strong>in</strong> difference is that Open vSwitch implements its forward<strong>in</strong>g functions <strong>in</strong><br />

the Operat<strong>in</strong>g System (OS) kernel space while the OpenFlow reference implementation runs <strong>in</strong> the OS<br />

user space, which <strong>in</strong>fluences their performance. Another s<strong>of</strong>tware switch is the OpenFlow 1.2 s<strong>of</strong>tware<br />

switch by CPqD 3 which also runs <strong>in</strong> the user space. It is the only available s<strong>of</strong>tware switch that supports<br />

OpenFlow 1.2 and <strong>in</strong>tegrates with M<strong>in</strong><strong>in</strong>et.<br />

The <strong>in</strong>tegration <strong>of</strong> OpenFlow hardware switches with M<strong>in</strong><strong>in</strong>et networks is also possible. The switch<br />

available <strong>to</strong> the author is a HP 3500yl with 24 network ports, which supports OpenFlow 1.0. However,<br />

a number <strong>of</strong> OpenFlow features required for this work are not implemented with hardware by the<br />

switch, but with s<strong>of</strong>tware. These <strong>in</strong>clude the match<strong>in</strong>g <strong>of</strong> <strong>layer</strong> 2 addresses, the modification <strong>of</strong> IP addresses<br />

and the forward<strong>in</strong>g <strong>of</strong> packets <strong>to</strong> multiple switch ports [39, pp. 40, 41]. If a part <strong>of</strong> an OpenFlow<br />

rule is processed <strong>in</strong> s<strong>of</strong>tware, this applies <strong>to</strong> the whole rule [39, p. 42], so that all OpenFlow features<br />

would run on the switch’s OpenFlow s<strong>of</strong>tware implementation. Therefore, us<strong>in</strong>g the HP switches s<strong>of</strong>tware<br />

implementation would have no advantages over us<strong>in</strong>g the available s<strong>of</strong>tware implementations, yet<br />

it would require a much more complex setup. Also, the HP switch’s OpenFlow s<strong>of</strong>tware performance was<br />

reported <strong>to</strong> be very low [31], yield<strong>in</strong>g 1 Mbit/s throughput for a simple OpenFlow application. The available<br />

switch hardware is not used; the available OpenFlow s<strong>of</strong>tware switches’ performance is analyzed <strong>in</strong><br />

the follow<strong>in</strong>g paragraph.<br />

Comparison <strong>of</strong> s<strong>of</strong>tware switch performance<br />

From the available OpenFlow switches, the performance <strong>of</strong> Open vSwitch, the OpenFlow 1.0 reference<br />

implementation and the CPqD OpenFlow 1.2 implementation have been compared on the available<br />

computer system. The system is a XEN 4 based virtual mach<strong>in</strong>e (VM). Two Intel XEON E5-1410 cores<br />

with 2,8Ghz and 8GB Memory are allocated <strong>to</strong> the VM.<br />

For test<strong>in</strong>g setups with tens <strong>to</strong> hundreds <strong>of</strong> nodes, a used s<strong>of</strong>tware switch should exhibit sufficient performance<br />

<strong>of</strong> at least several Mbit/s per node. The data rate <strong>of</strong> video streams is expected <strong>to</strong> be between<br />

0.1 Mbit/s and 1 Mbit/s. The lower data rate can be used if necessary with the disadvantage <strong>of</strong> represent<strong>in</strong>g<br />

smaller videos only. S<strong>in</strong>ce each stream traverses multiple switches <strong>in</strong> the simulated network, several<br />

Mbit/s per host are required <strong>to</strong> enable a susta<strong>in</strong>ed video stream delivery. Us<strong>in</strong>g the iperf 5 s<strong>of</strong>tware that<br />

comes with M<strong>in</strong><strong>in</strong>et, the three s<strong>of</strong>t switches are tested for throughput.<br />

Three network sizes are analyzed, with 1, 5, and 10 OpenFlow switches. The switches are connected <strong>in</strong><br />

a l<strong>in</strong>e; the hosts for runn<strong>in</strong>g the performance test are connected at the oppos<strong>in</strong>g ends <strong>of</strong> the <strong>to</strong>pology. An<br />

OpenFlow learn<strong>in</strong>g switch application is used for forward<strong>in</strong>g. iperf is run 20 times us<strong>in</strong>g the TCP pro<strong>to</strong>col<br />

for measurement. The average <strong>of</strong> the runs for each pro<strong>to</strong>col is documented <strong>in</strong> Figure 6.3. Because <strong>of</strong> the<br />

large differences <strong>in</strong> the results, the y axis is logarithmically scaled for improved visibility. The averages<br />

for the means <strong>of</strong> the three different network sizes are connected by colored l<strong>in</strong>es; the 95% confidence<br />

<strong>in</strong>tervals are <strong>in</strong>dicated by black l<strong>in</strong>es. The exact results <strong>of</strong> the measurement are given <strong>in</strong> Table 6.1.<br />

The performance differences are huge, Open vSwitch achieves more than 4 Gbit/s with one switch and<br />

1,3 Gbit/s with 10 switches. The OpenFlow version 1.0 reference switch achieves 440 Mbit/s with one<br />

switch and 60 Mbit/s with 10 switches. The CPqD OpenFlow version 1.2 switch performs worst. For one<br />

switch, the throughput is 15 Mbit/s and for 10 switches less than 3 Mbit/s <strong>of</strong> throughput is achieved. The<br />

scal<strong>in</strong>g behavior also differs greatly. While the throughput <strong>of</strong> Open vSwitch for 1 switch is about 3 times<br />

higher than the throughput for 10 switches, the ratio is higher for the other two switches. The OpenFlow<br />

3<br />

https://github.com/CPqD/<strong>of</strong>12s<strong>of</strong>tswitch [Accessed 21.04.2013]<br />

4<br />

http://www.xen.org/ [Accessed 21.04.2013]<br />

5<br />

http://iperf.sourceforge.net/ [Accessed 21.04.2013]<br />

52 6. Pro<strong>to</strong>type


version 1.0 reference throughput for 1 switch is about 7 times higher than for 10 switches, for the CPqD<br />

OpenFlow version 1.2 switch it is about 5 times higher.<br />

The numbers for the OpenFlow version 1.0 reference switch that comes with M<strong>in</strong><strong>in</strong>et is similar <strong>to</strong> the<br />

observation made <strong>in</strong> [59, p. 4]. The Open vSwitch throughput measured for 1 switch is twice as high<br />

as <strong>in</strong> the paper, for 10 switches it is still 30% higher. This is due <strong>to</strong> the better system hardware used <strong>in</strong><br />

this analysis over the hardware used <strong>in</strong> the paper. Furthermore, it shows that the performance <strong>of</strong> Open<br />

vSwitch improves significantly with better hardware, while this does not seem the case for the OpenFlow<br />

version 1.0 reference switch.<br />

5000<br />

1000<br />

Throughput [Mbit/s]<br />

500<br />

100<br />

50<br />

OpenFlow switch s<strong>of</strong>tware:<br />

Open vSwitch<br />

Ver. 1.0 reference switch<br />

CPqD Ver. 1.2 switch<br />

10<br />

5<br />

1 5 10<br />

Number <strong>of</strong> OpenFlow switches<br />

Figure 6.3.: Throughput <strong>of</strong> the three OpenFlow s<strong>of</strong>tware switches as measured by iperf.<br />

Switch s<strong>of</strong>tware Switch count Throughput<br />

[Mbit/s]<br />

Open vSwitch<br />

Ver. 1.0<br />

reference<br />

switch<br />

CPqD Ver.<br />

1.2 switch<br />

95% confidence<br />

<strong>in</strong>terval [Mbit/s]<br />

Standard<br />

deviation<br />

1 4189 ±32 15<br />

5 2116 ±21 10<br />

10 1290 ±8 4<br />

1 440 ±0.8 0.4<br />

5 133 ±0.3 0.1<br />

10 60 ±0.5 0.3<br />

1 15.0 ±0 0<br />

5 5.75 ±0.01 0.005<br />

10 2.85 ±0.003 0.001<br />

Table 6.1.: Throughput <strong>of</strong> the three OpenFlow s<strong>of</strong>tware switches as measured by iperf.<br />

For emulation <strong>of</strong> networks with the largest possible networks on the given hardware, Open vSwitch<br />

<strong>of</strong>fers the best throughput. The OpenFlow version 1.0 reference switch should be usable for smaller<br />

6.2. Network Emulation 53


networks; however, it has no advantage aga<strong>in</strong>st Open vSwitch. The throughput <strong>of</strong> the CPqD OpenFlow<br />

version 1.2 switch is <strong>to</strong>o low for networks larger than a few hosts. As it is the only available OpenFlow<br />

1.2 s<strong>of</strong>tware switch that <strong>in</strong>tegrates with M<strong>in</strong><strong>in</strong>et, OpenFlow 1.2 is not used for the evaluation. OpenFlow<br />

1.0 and the Open vSwitch implementation are used for measurements.<br />

6.2.3 Topology Database and Network Experiments<br />

The API <strong>of</strong> M<strong>in</strong><strong>in</strong>et is used <strong>to</strong> start and control emulated networks. A program called run<strong>to</strong>po.py implements<br />

the approach described <strong>in</strong> this section. For an experiment, the program requires two parameters:<br />

a <strong>to</strong>pology database and a network experiment. The process <strong>of</strong> runn<strong>in</strong>g an experiment is depicted <strong>in</strong> Figure<br />

6.4. A <strong>to</strong>pology database is loaded and <strong>in</strong>stantiated by M<strong>in</strong><strong>in</strong>et. The result<strong>in</strong>g object is transmitted <strong>to</strong><br />

the <strong>to</strong>pology application that runs on the Ryu OpenFlow controller. Then, the emulated hosts are started<br />

and configured us<strong>in</strong>g the <strong>in</strong>formation from the <strong>to</strong>pology database. The emulated network is started as<br />

well as the <strong>to</strong>pology application. This enables the forward<strong>in</strong>g <strong>in</strong> the emulated network. After that, the<br />

network experiment is loaded, <strong>in</strong>stantiated, supplied with the <strong>to</strong>pology database and gets started. The<br />

experiment is supplied by the user and takes control <strong>of</strong> the emulated network. When it is f<strong>in</strong>ished, the<br />

<strong>to</strong>pology as well as the emulated network is s<strong>to</strong>pped.<br />

M<strong>in</strong><strong>in</strong>et<br />

Ryu<br />

TopologyApp<br />

Create <strong>to</strong>pology database<br />

PUT /<strong>to</strong>pology/m<strong>in</strong><strong>in</strong>et<br />

serialized RASPTopo object<br />

200<br />

Setup Hosts<br />

Start M<strong>in</strong><strong>in</strong>et network<br />

PUT /<strong>to</strong>pology/control<br />

start<br />

200<br />

Setup forward<strong>in</strong>g accord<strong>in</strong>g <strong>to</strong><br />

the RASPTopo object<br />

Run network experiments<br />

PUT /<strong>to</strong>pology/control<br />

s<strong>to</strong>p<br />

200<br />

Figure 6.4.: The process schema <strong>of</strong> runn<strong>in</strong>g an emulated network experiment.<br />

54 6. Pro<strong>to</strong>type


The <strong>to</strong>pology database Python class <strong>in</strong>herits from the M<strong>in</strong><strong>in</strong>et Topo class. In addition <strong>to</strong> OpenFlow<br />

switches, hosts and connections between them, it conta<strong>in</strong>s <strong>in</strong>formation on the ISP network. For runn<strong>in</strong>g<br />

an emulated network for P2P LVS, not only nodes <strong>in</strong>side the ISP network are required, but also nodes<br />

which are located on the Internet. Hence, for each host and switch the location <strong>in</strong>formation is added.<br />

Each node is either located <strong>in</strong> the ISP or Internet part <strong>of</strong> the network. For enabl<strong>in</strong>g rout<strong>in</strong>g and differentiation<br />

between different uses <strong>of</strong> switches, they are tagged with a type attribute. A switch is called access<br />

switch if there are hosts directly connected. A switch is called host<strong>in</strong>g switch, if it is used as dedicated<br />

switch for the OpenFlow applications <strong>of</strong> the RASP application. A switch is called core switch, if there are<br />

no hosts connected and if it is not a host<strong>in</strong>g switch.<br />

An example network is shown <strong>in</strong> Figure 6.5. Core switches are depicted <strong>in</strong> orange, access switches <strong>in</strong><br />

blue, and host<strong>in</strong>g switches <strong>in</strong> green if they are located <strong>in</strong> the ISP network. Nodes, which are located <strong>in</strong><br />

the Internet part <strong>of</strong> the network, are depicted <strong>in</strong> gray. Hosts are not shown <strong>in</strong>dividually but as groups<br />

depicted by a rectangle and labeled with the number <strong>of</strong> hosts conta<strong>in</strong>ed <strong>in</strong> the group.<br />

5 H<br />

Access switches<br />

Host<strong>in</strong>g switch<br />

Core switches<br />

ISP<br />

Number <strong>of</strong> connected hosts<br />

5 H 5 H<br />

Internet<br />

5 H 5 H<br />

5 H<br />

Figure 6.5.: An example network based on the <strong>to</strong>pology database <strong>in</strong>formation used for creat<strong>in</strong>g emulated networks.<br />

6.2.4 OpenFlow Rout<strong>in</strong>g and Forward<strong>in</strong>g<br />

For switches where hosts are directly connected, <strong>in</strong>clud<strong>in</strong>g access switches, a local area network (LAN)<br />

is created. In reality their behavior is different, as <strong>in</strong> most cases, hosts are not directly attached, but<br />

connected by an additional router. However, this difference should have no <strong>in</strong>fluence on the outcome <strong>of</strong><br />

experiments but reduces the amount <strong>of</strong> switches needed for tests.<br />

To each switch, a dedicated IP network is assigned, which connected hosts are a part <strong>of</strong>. Rules are<br />

<strong>in</strong>stalled that imitate the behavior <strong>of</strong> a switch<strong>in</strong>g hub. Packets from one host <strong>to</strong> another are identified by<br />

the dest<strong>in</strong>ation IP and MAC address and transmitted <strong>to</strong> the appropriate physical port. For IP addresses<br />

outside the local network, a default router address is configured on all hosts <strong>in</strong> addition <strong>to</strong> a specific<br />

6.2. Network Emulation 55


MAC address. The rules on the switch create a virtual default router by match<strong>in</strong>g each packet’s address<br />

<strong>to</strong> the default router’s MAC address and send<strong>in</strong>g it out the upl<strong>in</strong>k port. Complementary rules exist for<br />

<strong>in</strong>com<strong>in</strong>g packets. They are identified by their source port and their network <strong>layer</strong> dest<strong>in</strong>ation address.<br />

A rule matches these and writes the MAC address <strong>of</strong> the default gateway as source address and the MAC<br />

dest<strong>in</strong>ation address correspond<strong>in</strong>g <strong>to</strong> the dest<strong>in</strong>ation IP address <strong>to</strong> the packet header. The packet is then<br />

sent out the host’s switch port. A simplified LAN switch is shown <strong>in</strong> Figure 6.6.<br />

Host A<br />

IP A<br />

MAC A<br />

P1<br />

OF Switch<br />

P3<br />

Upl<strong>in</strong>k port<br />

Rest <strong>of</strong> the network<br />

Host B<br />

IP B<br />

MAC B<br />

P2<br />

Figure 6.6.: Simplified diagram <strong>of</strong> an OpenFlow LAN switch <strong>in</strong> the emulated network.<br />

Host A and B are connected <strong>to</strong> switch ports 1 and 2 respectively. The upl<strong>in</strong>k port connect<strong>in</strong>g the<br />

switch with the network is port 3. The flowtable for OpenFlow version 1.0 for a LAN switch is shown<br />

<strong>in</strong> Table 6.2. Layer 2 and 3 addresses are denoted by their host’s name, for the default router they are<br />

denoted by DR.<br />

Priority Match Action<br />

Default + 1 In: P3; To: IP A Set: L2 dst=MAC A; Out: P1<br />

Default + 1 In: P3; To: IP B Set: L2 dst=MAC B; Out: P2<br />

Default To: MAC A Out: P1<br />

Default To: MAC B Out: P2<br />

Default To: MAC DR Out: P3<br />

Table 6.2.: OpenFlow 1.0 flowtables for a LAN switch <strong>in</strong> the emulated network.<br />

OpenFlow 1.0 relies on a simple first match scheme as described <strong>in</strong> Section 2.3. For <strong>in</strong>tegration <strong>of</strong><br />

different network features, there are different rule priorities. Each rule conta<strong>in</strong>s all actions which should<br />

be applied <strong>to</strong> the match<strong>in</strong>g packets. This requires each rule <strong>to</strong> match all packets, <strong>to</strong> which a certa<strong>in</strong> action<br />

list is applied. Hence the forward<strong>in</strong>g rules <strong>in</strong> the network match relevant packets, their matchers must<br />

not overlap. Still, matchers for rules for forward<strong>in</strong>g and other network features might overlap. This is<br />

true for rules match<strong>in</strong>g <strong>in</strong>com<strong>in</strong>g packets on a LAN switch, which have a higher priority for that reason.<br />

The reason for this is the OpenFlow specification, if two rules conta<strong>in</strong><strong>in</strong>g a wild card match – as they do<br />

<strong>in</strong> the example shown <strong>in</strong> Table 6.2 – the switch implementation can choose a method <strong>to</strong> determ<strong>in</strong>e which<br />

rule is applied. As the system can be used with different OpenFlow s<strong>of</strong>tware switches, such situations<br />

would effectively show an unknown behavior.<br />

The rule priority approach illustrated <strong>in</strong> this example is used <strong>in</strong> the whole emulated network. Rules<br />

for outputt<strong>in</strong>g traffic <strong>to</strong> directly connected hosts match<strong>in</strong>g <strong>layer</strong> 2 addresses have the lowest priority.<br />

Rules <strong>in</strong>volv<strong>in</strong>g packets from directly connected hosts and forward<strong>in</strong>g them <strong>to</strong> other switches have a<br />

slightly higher priority. Rules for forward<strong>in</strong>g traffic that is not addressed <strong>to</strong> directly connected hosts<br />

have a higher priority. F<strong>in</strong>ally, rules for the RASP component applications have the highest priority. This<br />

approach makes sure that packets are checked for match<strong>in</strong>g application rules first.<br />

56 6. Pro<strong>to</strong>type


The example discussed above is based on LAN switches. Another k<strong>in</strong>d <strong>of</strong> switches are host<strong>in</strong>g switches.<br />

They are used for host<strong>in</strong>g RASP specific functionality. Host<strong>in</strong>g switches use a s<strong>in</strong>gle port for <strong>in</strong>com<strong>in</strong>g<br />

and outgo<strong>in</strong>g traffic. This approach allows us<strong>in</strong>g host<strong>in</strong>g switches with standardized rules while be<strong>in</strong>g<br />

able <strong>to</strong> place them arbitrarily on the network.<br />

The task <strong>of</strong> the other switches <strong>in</strong> the emulated network is <strong>to</strong> forward packets based on their network<br />

<strong>layer</strong> addresses. The specific behavior can be configured by the <strong>to</strong>pology configuration used. Different<br />

forward<strong>in</strong>g mechanisms and their use are discussed <strong>in</strong> the evaluation <strong>in</strong> Chapter 7. The forward<strong>in</strong>g does<br />

not, other than by fulfill<strong>in</strong>g this function, directly <strong>in</strong>fluence the RASP component applications. This is the<br />

reason why the evaluation results are also valid for networks which rely on other forward<strong>in</strong>g mechanism.<br />

6.3 The Ryu OpenFlow Controller<br />

Ryu 6 version 1.7 is used as OpenFlow controller. It supports the OpenFlow versions 1.0, 1.2 and 1.3,<br />

which allows us<strong>in</strong>g the pro<strong>to</strong>type with different OpenFlow switches support<strong>in</strong>g different OpenFlow versions.<br />

Ryu is implemented <strong>in</strong> Python, which eases the <strong>in</strong>tegration with M<strong>in</strong><strong>in</strong>et, the network emulation<br />

system used for evaluation, which is also implemented <strong>in</strong> Python. Ryu is the only available open source<br />

controller s<strong>of</strong>tware that supports OpenFlow versions 1.0 and 1.2 [85] at the same time. As discussed <strong>in</strong><br />

the <strong>in</strong>troduction, the use <strong>of</strong> OpenFlow 1.1 or a higher version is advantageous for the RASP application.<br />

Hence, the Ryu OpenFlow controller is used for its flexibility regard<strong>in</strong>g the use <strong>of</strong> different OpenFlow<br />

versions.<br />

In the follow<strong>in</strong>g Section 6.3.1 an overview is given and the architecture <strong>of</strong> Ryu is expla<strong>in</strong>ed. Then<br />

the limitations <strong>of</strong> Ryu are discussed <strong>in</strong> Section 6.3.2 and f<strong>in</strong>ally, <strong>in</strong> Section 6.3.3, a bluepr<strong>in</strong>t for Ryu<br />

applications is presented.<br />

6.3.1 Architecture and Overview<br />

Ryu adapts the event driven concept <strong>of</strong> OpenFlow for its <strong>in</strong>ternal architecture, which is shown <strong>in</strong> Figure<br />

6.7. The core <strong>of</strong> Ryu is the event system, which creates events and distributes them. Applications<br />

<strong>in</strong>teract with the system by register<strong>in</strong>g for the handl<strong>in</strong>g <strong>of</strong> events. The AppManager is responsible for<br />

load<strong>in</strong>g, start<strong>in</strong>g and manag<strong>in</strong>g applications while the OpenFlow library ma<strong>in</strong>ta<strong>in</strong>s connections <strong>to</strong> Open-<br />

Flow devices and generates related events.<br />

The event process<strong>in</strong>g starts with an event source, which adds an event <strong>to</strong> its event queue. The event<br />

queue eventually dequeues the event and delivers it <strong>to</strong> all registered methods. Register<strong>in</strong>g for events<br />

works by annotat<strong>in</strong>g 7 a method or function with the types <strong>of</strong> events it should receive.<br />

Ryu’s event system is based on the gevent 8 library. As the source <strong>of</strong> actions <strong>in</strong> Ryu, it provides means<br />

for cooperative multitask<strong>in</strong>g. When load<strong>in</strong>g the gevent library, other libraries used by the same program<br />

are patched <strong>to</strong> put the call<strong>in</strong>g thread <strong>to</strong> sleep, given another thread the chance <strong>to</strong> take over, once an<br />

I/O operation is called. This approach makes multitask<strong>in</strong>g possible, given that most control threads are<br />

I/O bound. Runn<strong>in</strong>g long computations or other CPU bound operations impede this mechanism and can<br />

freeze the application. Therefore, CPU bound operations should not be implemented <strong>in</strong> a Ryu application<br />

[13].<br />

The event system is used for <strong>in</strong>ter-application communications. Applications can declare events and<br />

register for receiv<strong>in</strong>g events <strong>of</strong> other applications. However, the ma<strong>in</strong> task <strong>of</strong> the event system is the<br />

6<br />

http://osrg.github.io/ryu/ [Accessed 21.04.2013]<br />

7<br />

This process is called decorat<strong>in</strong>g <strong>in</strong> the Python programm<strong>in</strong>g language<br />

8<br />

http://www.gevent.org/ [Accessed 21.04.2013]<br />

6.3. The Ryu OpenFlow Controller 57


App<br />

1<br />

App<br />

2<br />

...<br />

App<br />

n<br />

Event System<br />

OpenFlow Pro<strong>to</strong>col<br />

Library<br />

App-<br />

Manager<br />

Figure 6.7.: The architecture <strong>of</strong> Ryu [77].<br />

distribution <strong>of</strong> OpenFlow related events, which are generated by the Ryu OpenFlow library. It is used<br />

for manag<strong>in</strong>g connections <strong>to</strong> OpenFlow switches, pars<strong>in</strong>g OpenFlow messages and generat<strong>in</strong>g events<br />

based on them. Due <strong>to</strong> the event handl<strong>in</strong>g, the applications can choose which OpenFlow events they<br />

wish <strong>to</strong> receive. To enable precise event selection, OpenFlow events <strong>in</strong>clude the status <strong>of</strong> the switch<br />

which they are caused by. Upon the connection <strong>of</strong> an OpenFlow switch, the event dispatcher is set <strong>to</strong><br />

the status HANDSHAKE_DISPATCHER. The library au<strong>to</strong>matically processes the handshake and the switch<br />

configuration messages, f<strong>in</strong>ally sett<strong>in</strong>g the event dispatch status <strong>to</strong> MAIN_DISPATCHER. In this status an<br />

OpenFlow switch is ready for operations. Once the connection <strong>to</strong> an OpenFlow switch is lost the status<br />

<strong>of</strong> the event queue changes <strong>to</strong> DEAD_DISPATCHER.<br />

6.3.2 Limitations<br />

Ryu is <strong>in</strong> development at the time <strong>of</strong> writ<strong>in</strong>g, the API is still chang<strong>in</strong>g. Because <strong>of</strong> that, the documentation<br />

is not complete; nevertheless, the architecture and the basic work<strong>in</strong>g pr<strong>in</strong>ciples are described. The application<br />

is small so that it can be unders<strong>to</strong>od by read<strong>in</strong>g the source code. The OpenFlow implementation<br />

is closely modeled after the OpenFlow standards [78, 79, 81], which can serve as documentation.<br />

Besides, the message pass<strong>in</strong>g mechanism used has some limitations: it is unidirectional by nature,<br />

mak<strong>in</strong>g it difficult <strong>to</strong> use bidirectional communication patterns. For example, when OpenFlow messages<br />

are sent, correspond<strong>in</strong>g error messages are not au<strong>to</strong>matically processed. An application needs <strong>to</strong> register<br />

for error message events and implement a method for correlat<strong>in</strong>g error messages <strong>to</strong> outgo<strong>in</strong>g messages.<br />

As this pro<strong>to</strong>type is assumed <strong>to</strong> be used <strong>in</strong> a static network, no errors should occur dur<strong>in</strong>g the operations.<br />

Therefore the limitations <strong>of</strong> Ryu are not relevant for this work.<br />

6.3.3 Ryu Application Bluepr<strong>in</strong>t<br />

Applications runn<strong>in</strong>g on the Ryu OpenFlow controller have a specific structure that is <strong>in</strong>troduced <strong>in</strong> this<br />

section. Ryu applications consist <strong>of</strong> an application class and, for enabl<strong>in</strong>g a RESTful API, a controller<br />

class. Representational State Transfer (REST) [30] is a Hypertext Transfer Pro<strong>to</strong>col (HTTP) based Remote<br />

Procedure Call (RPC) method for resource management. It is used because it is well structured,<br />

easy <strong>to</strong> implement and <strong>to</strong> debug. An UML class diagram <strong>of</strong> a typical application skele<strong>to</strong>n is shown <strong>in</strong><br />

Figure 6.8. The application class <strong>in</strong>herits from ryu.base.app_manager.RyuApp. This marks the class for<br />

<strong>in</strong>stantiation by Ryu’s application manager. In order <strong>to</strong> access Ryu’s built<strong>in</strong> applications, the names <strong>of</strong><br />

58 6. Pro<strong>to</strong>type


the applications are added <strong>to</strong> a list that is ma<strong>in</strong>ta<strong>in</strong>ed by the class for this purpose. Dur<strong>in</strong>g <strong>in</strong>stantiation,<br />

the application manager reads this list and supplies the needed objects as parameters <strong>to</strong> the application<br />

classes construc<strong>to</strong>r. In Figure 6.8, the DPset application is used by Application. The DPset application<br />

ma<strong>in</strong>ta<strong>in</strong>s a list <strong>of</strong> connected OpenFlow switches 9 and their status. It is also used for mapp<strong>in</strong>g switch<br />

IDs <strong>to</strong> switch objects that are used <strong>to</strong> send OpenFlow messages. For this reason all <strong>of</strong> the applications<br />

described <strong>in</strong> this section use the DPset application.<br />

wsgi.ControllerBase<br />

app_manager.RyuApp<br />

ryu.controller.dpset.DPset<br />

ApplicationController<br />

REST API<br />

Application<br />

Ryu Service Applications<br />

Event handler methods<br />

Application API methods<br />

Figure 6.8.: UML class diagram <strong>of</strong> a typical Ryu application skele<strong>to</strong>n.<br />

For the implementation <strong>of</strong> Application Programm<strong>in</strong>g Interfaces (APIs) RESTful web <strong>in</strong>terfaces [30] us<strong>in</strong>g<br />

JavaScript Object Notation (JSON) as data format are selected for ease <strong>of</strong> use. REST (representational<br />

state transfer) is a remote resource management pr<strong>in</strong>ciple based on the HTTP pro<strong>to</strong>col [29]. Resources<br />

are identified by URIs (unified resource identifiers), the mode <strong>of</strong> <strong>in</strong>teraction is set by the HTTP verb used.<br />

The verb GET is used <strong>to</strong> retrieve <strong>in</strong>formation, POST <strong>to</strong> create a resource, PUT for chang<strong>in</strong>g it and DELETE<br />

for delet<strong>in</strong>g it. The POST verb is special, as it is the only one that is not expected <strong>to</strong> be idempotent. The<br />

requirement for all other verbs is that the repeated usage with a specific resource and parameters does<br />

not change the system after the first application.<br />

Ryu’s implementation <strong>of</strong> a RESTful API application, WSGIApplication, can be accessed through the application<br />

manager as described above. However, while WSGIApplications are managed by the application<br />

manager, the class does not <strong>in</strong>herit from RyuApp. It enables the mapp<strong>in</strong>g <strong>of</strong> URIs and HTTP verbs <strong>to</strong> methods<br />

<strong>of</strong> a controller class. The implementation is based on the implementation <strong>of</strong> the Web Server Gateway<br />

Interface (WSGI) 10 standard by the gevent library. This controller class <strong>in</strong>herits from wsgi.ControllerBase<br />

and is supplied by each application; <strong>in</strong> the example figure, it is called ApplicationController. The controller<br />

class implements a method for each API function, handles <strong>in</strong>com<strong>in</strong>g data from the API requests<br />

and is responsible for send<strong>in</strong>g response messages. Incom<strong>in</strong>g data is encoded with JSON, the same is true<br />

for response data, for which <strong>in</strong> addition a HTTP response code should be supplied.<br />

A typical API call sequence starts with an <strong>in</strong>com<strong>in</strong>g request for the WSGIApplication. The request’s URI<br />

and HTTP verb are used <strong>to</strong> select which method <strong>of</strong> ApplicationController is called. The method evaluates<br />

the <strong>in</strong>com<strong>in</strong>g parameters, verifies their values and converts them from str<strong>in</strong>gs and JSON data <strong>to</strong> Python<br />

data structures. Then, methods <strong>of</strong> the Application are called for further process<strong>in</strong>g <strong>of</strong> the request. If the<br />

called method returns result data, it is converted <strong>to</strong> JSON and sent out with an appropriate response<br />

code.<br />

The handl<strong>in</strong>g <strong>of</strong> events is done by methods <strong>of</strong> the application class, which are annotated with the event<br />

type that they should receive, as described <strong>in</strong> Section 6.3.1. Incom<strong>in</strong>g events are filtered by their class<br />

9<br />

OpenFlow switches are called datapaths <strong>in</strong> the context <strong>of</strong> Ryu<br />

10<br />

http://wsgi.org [Accessed 21.04.2013]<br />

6.3. The Ryu OpenFlow Controller 59


and optionally by the status <strong>of</strong> the event source; further <strong>in</strong>spection <strong>of</strong> the event is implemented by each<br />

method <strong>in</strong>dividually. For events that were generated from <strong>in</strong>com<strong>in</strong>g OpenFlow messages, this typically<br />

<strong>in</strong>cludes the check if the source switch is one managed by the application. If the event matches the filter,<br />

further <strong>in</strong>formation can be gathered, and, f<strong>in</strong>ally, another method is called that implements the event<br />

process<strong>in</strong>g logic.<br />

6.4 Implementation<br />

In this section, the implementation <strong>of</strong> the RASP service is described. As expla<strong>in</strong>ed <strong>in</strong> Section 6.1, it consists<br />

<strong>of</strong> three components. For each component, the structure is illustrated us<strong>in</strong>g an UML class diagram<br />

and an overview is given on its API. On this background, the process <strong>of</strong> the usage <strong>of</strong> an exemplary API<br />

function is described. The parts <strong>of</strong> the pro<strong>to</strong>type whose implementations are described <strong>in</strong> this section<br />

are the RASP service application, the SDM application, the Virtual <strong>Peer</strong> application, and the <strong>to</strong>pology<br />

application as depicted <strong>in</strong> Figure 6.9<br />

Network<br />

Experiment<br />

RASP Controller<br />

with Service API<br />

RASP Controller<br />

with Service API<br />

REST API REST API REST API<br />

Topology<br />

App<br />

SDM<br />

App<br />

Virtual<br />

<strong>Peer</strong> App<br />

Network<br />

Topology<br />

Ryu OpenFlow Controller<br />

M<strong>in</strong><strong>in</strong>et<br />

OpenFlow Network<br />

REST API REST API REST API<br />

Topology<br />

App<br />

SDM<br />

App<br />

Virtual<br />

<strong>Peer</strong> App<br />

Figure 6.9.: Overview over the parts <strong>of</strong> the pro<strong>to</strong>type whose implementations are described <strong>in</strong> Section 6.4.<br />

First, the RASP controller and its API is described <strong>in</strong> Section 6.4.1. Then, <strong>in</strong> Section 6.4.2, the <strong>to</strong>pology<br />

application runn<strong>in</strong>g on the OpenFlow controller is presented. The two OpenFlow controller applications<br />

that are used for implement<strong>in</strong>g the RASP service, the Virtual <strong>Peer</strong> application and the SDM application<br />

are expla<strong>in</strong>ed <strong>in</strong> sections 6.4.3 and 6.4.4.<br />

6.4.1 Rent-a-Super <strong>Peer</strong> Controller and Public API<br />

The implementation <strong>of</strong> the RASP controller follows the API requirements described <strong>in</strong> Section 5.3.1. The<br />

implementation covers the required functionality for evaluat<strong>in</strong>g the system. Other functionality such as<br />

authentication and bill<strong>in</strong>g are not implemented, as they are not needed for this purpose. The API is<br />

implemented with RESTful HTTP, as used with Ryu applications, because <strong>of</strong> its simplicity. Alternative<br />

mechanisms such as web services are more complex yet have no advantages compared <strong>to</strong> the RESTful<br />

approach for this specific application.<br />

An application is identified by a base URI, <strong>in</strong> this case http://:/rasp. In the<br />

rema<strong>in</strong>der <strong>of</strong> this description, the /rasp part will be used synonymously for the whole URI <strong>in</strong>clud<strong>in</strong>g<br />

the server address part. In Table 6.3 an overview is given on the controller’s API. A RASP <strong>in</strong>stance is<br />

identified by its IP address, a new one can be created by us<strong>in</strong>g the HTTP verb POST on the URI /rasp.<br />

Information on the super peer are passed as HTTP parameters. These are the IP address, the transport<br />

<strong>layer</strong> pro<strong>to</strong>col, and the transport <strong>layer</strong> port number that is used for P2P overlay network connections.<br />

The same port number is used by the RASP <strong>in</strong>stance for accept<strong>in</strong>g <strong>in</strong>com<strong>in</strong>g overlay connections. The<br />

60 6. Pro<strong>to</strong>type


server replies with the IP address <strong>of</strong> the RASP <strong>in</strong>stance, <strong>in</strong> this example the IP address is 192.168.0.1. An<br />

example <strong>of</strong> the usage <strong>of</strong> the API is shown <strong>in</strong> Figure 6.10.<br />

Super <strong>Peer</strong><br />

RASP Controller<br />

Virtual<strong>Peer</strong>App<br />

SDMApp<br />

POST /rasp<br />

Parameters:<br />

Super peer: 172.16.0.1:5000, TCP<br />

Virtual peer port: 4000<br />

200: Virtual peer address: 192.168.0.1<br />

PUT /vp/192.168.0.1<br />

Parameters:<br />

Super peer: 172.16.0.1:5000<br />

Service: TCP, 4000<br />

200<br />

PUT /rasp/192.168.0.1/streams/8000<br />

Parameters:<br />

Super peer port: 7000<br />

200<br />

PUT /sdm/192.168.0.1:8000<br />

Parameters:<br />

Data source: 172.16.0.1:7000<br />

200<br />

PUT /rasp/192.168.0.1/streams/8000/members/10.0.0.1:2000<br />

200<br />

PUT /sdm/192.168.0.1:8000/members/10.0.0.1:2000<br />

200<br />

Figure 6.10.: Example <strong>of</strong> a super peer us<strong>in</strong>g the RASP API <strong>to</strong> set up a video stream and add<strong>in</strong>g a member <strong>to</strong> it.<br />

The text above the l<strong>in</strong>e describes the HTTP request that is send, listed are the HTTP verb, the URI<br />

and the respective parameters. Below the l<strong>in</strong>e is the HTTP return code followed by data conta<strong>in</strong>ed <strong>in</strong><br />

the reply. Information on the RASP <strong>in</strong>stance (ri) can be retrieved by us<strong>in</strong>g /rasp/. S<strong>in</strong>ce a<br />

RASP <strong>in</strong>stance can be the source <strong>of</strong> multiple streams, the list <strong>of</strong> streams is identified by the URI /rasp//streams. Us<strong>in</strong>g the GET verb with this URI returns a list <strong>of</strong> active streams, identified by their<br />

source port.<br />

The comb<strong>in</strong>ation <strong>of</strong> an IP address with an associated transport <strong>layer</strong> port separated by a colon is called<br />

a socket (e.g. "10.0.1.1:4000"). For each stream, append<strong>in</strong>g /members <strong>to</strong> the URI and us<strong>in</strong>g the GET<br />

verb returns the list <strong>of</strong> peers that receive this stream, identified by their socket. Us<strong>in</strong>g the PUT verb with<br />

the URI /rasp//streams//members/ can be used for add<strong>in</strong>g a<br />

member <strong>to</strong> a stream.<br />

Verbs URI Description<br />

POST /rasp Creates a new RASP <strong>in</strong>stance<br />

GET /rasp/ Get the configuration <strong>in</strong>formation<br />

on the <strong>in</strong>stance<br />

GET /rasp//streams Get the list <strong>of</strong> streams<br />

GET,PUT,DELETE /rasp//streams/ Add/get/delete a stream<br />

GET<br />

GET,PUT,DELETE<br />

/rasp//streams//<br />

members<br />

/rasp//streams//<br />

members/<br />

Table 6.3.: RASP controller service API overview.<br />

Get the list <strong>of</strong> members<br />

Add/get/remove a member<br />

The RASP controller implementation consists <strong>of</strong> the service API implementation and the controller, a<br />

part <strong>of</strong> the application that processes <strong>in</strong>com<strong>in</strong>g requests and translates them <strong>in</strong><strong>to</strong> API calls <strong>to</strong> the Virtual<br />

<strong>Peer</strong> and the SDM application. An example for this is given <strong>in</strong> Figure 6.10. In contrast <strong>to</strong> the other<br />

components described <strong>in</strong> the rema<strong>in</strong>der <strong>of</strong> this chapter, the RASP controller application does not run<br />

<strong>in</strong> the context <strong>of</strong> the Ryu application manager. Hence, it runs its own HTTP server class, RASPServer,<br />

which is implemented based on the pywsgi.WSGIServer class. Incom<strong>in</strong>g requests are handled by the<br />

class RASPController. This approach is similar <strong>to</strong> the one described <strong>in</strong> the Ryu application bluepr<strong>in</strong>t <strong>in</strong><br />

6.4. Implementation 61


Section 6.3.3. The application logic such as the management <strong>of</strong> the available IP addresses is implemented<br />

<strong>in</strong> the class RASPManager. Most requests are processes and translated <strong>in</strong><strong>to</strong> requests <strong>to</strong> the Virtual <strong>Peer</strong><br />

and SDM application. The API calls <strong>to</strong> them are implements by the classes V<strong>Peer</strong>Client and SDMClient.<br />

Many <strong>of</strong> the functions the RASP controller that would be implemented for a real deployment are not<br />

needed for this pro<strong>to</strong>type, like authentication and authorization. For that, the RASP controller implementation<br />

is kept as simple as possible.<br />

pywsgi.WSGIServer<br />

wsgi.ControllerBase<br />

RASPServer<br />

RASPController<br />

RASPController<br />

REST API<br />

RASPManager<br />

V<strong>Peer</strong>Client: vpeer_client<br />

SDMClient: sdm_client<br />

API function<br />

implementations<br />

V<strong>Peer</strong>Client<br />

Client for Virtual-<strong>Peer</strong> App<br />

API<br />

SDMClient<br />

Client for SDM App API<br />

Figure 6.11.: The structure <strong>of</strong> the RASP controller implementation.<br />

6.4.2 Topology Application<br />

Information on the <strong>to</strong>pology <strong>of</strong> the OpenFlow network used is important for OpenFlow applications.<br />

Some patches for Ryu exist, that could be used as basis for a <strong>to</strong>pology discovery application us<strong>in</strong>g the<br />

LLDP pro<strong>to</strong>col. However, the result would be a graph <strong>of</strong> OpenFlow devices, lack<strong>in</strong>g additional <strong>in</strong>formation<br />

on the network such as the location or the type <strong>of</strong> the switches. As an ISP network is assumed,<br />

<strong>in</strong>formation on the different network parts and switch types are required. This k<strong>in</strong>d <strong>of</strong> <strong>in</strong>formation is not<br />

<strong>of</strong>fered by the exist<strong>in</strong>g <strong>to</strong>pology discovery approaches, so it is not used. Instead, as <strong>to</strong>pology database for<br />

the OpenFlow controller application serves the data structure used for sett<strong>in</strong>g up the emulated network.<br />

It provides a s<strong>in</strong>gle coherent view <strong>of</strong> the network, which constitutes the basis for decisions the applications<br />

make. The concept is similar <strong>to</strong> the one described <strong>in</strong> [35, p. 106]. For this, the API, as described<br />

<strong>in</strong> Table 6.4, can be used <strong>to</strong> set the <strong>to</strong>pology applications network <strong>in</strong>formation database. For transfer, an<br />

<strong>in</strong>stance <strong>of</strong> the lib.<strong>to</strong>po.RASPTopo class is used. It is serialized <strong>to</strong> JSON us<strong>in</strong>g the jsonpickle 11 library. The<br />

RASPTopo class is a subtype <strong>of</strong> M<strong>in</strong><strong>in</strong>et’s M<strong>in</strong><strong>in</strong>et.<strong>to</strong>po.Topo class conta<strong>in</strong><strong>in</strong>g additional <strong>in</strong>formation on the<br />

network and its devices.<br />

Verbs URI Description<br />

PUT /<strong>to</strong>pology/m<strong>in</strong><strong>in</strong>et Set M<strong>in</strong><strong>in</strong>et <strong>to</strong>pology object<br />

PUT /<strong>to</strong>pology/control Starts/s<strong>to</strong>ps the <strong>to</strong>pology application<br />

Table 6.4.: Topology application API overview.<br />

An overview <strong>of</strong> the implementation <strong>of</strong> TopologyApp is given <strong>in</strong> Figure 6.12. It consists <strong>of</strong> two parts, the<br />

TopologyApp class, and the Forward<strong>in</strong>gManager class. The first s<strong>to</strong>res the <strong>to</strong>pology database object and implements<br />

the REST API’s functionality. The latter implements the functions <strong>to</strong> enable the network’s basic<br />

behavior which is def<strong>in</strong>ed by the <strong>to</strong>pology database object. This object therefore controls the network’s<br />

forward<strong>in</strong>g behavior.<br />

11<br />

https://github.com/jsonpickle/jsonpickle [Accessed 21.04.2013]<br />

62 6. Pro<strong>to</strong>type


wsgi.ControllerBase<br />

app_manager.RyuApp<br />

ryu.controller.dpset.DPset<br />

m<strong>in</strong><strong>in</strong>et.<strong>to</strong>po.Topo<br />

TopologyController<br />

REST API<br />

TopologyApp<br />

RASPTopo: <strong>to</strong>pology<br />

set_<strong>to</strong>pology(...)<br />

start(...)<br />

s<strong>to</strong>p(...)<br />

Forward<strong>in</strong>gManager<br />

RASPTopo: <strong>to</strong>pology<br />

setup_lan(...)<br />

setup_lan_forward<strong>in</strong>g(...)<br />

setup_forward<strong>in</strong>g(...)<br />

lib.<strong>to</strong>po.RASPTopo<br />

Topology Information<br />

EventTopologySet<br />

RASPTopo: <strong>to</strong>pology<br />

openflow.<strong>to</strong>pology10<br />

Figure 6.12.: The structure <strong>of</strong> the <strong>to</strong>pology application implementation.<br />

If the <strong>to</strong>pology database object is set, the TopologyApp emits an EventTopologySet event. At the time<br />

<strong>of</strong> writ<strong>in</strong>g, Ryu <strong>of</strong>fers a mechanism neither for access<strong>in</strong>g other applications nor for bidirectional event<br />

pass<strong>in</strong>g. Hence, a simple method for dissem<strong>in</strong>at<strong>in</strong>g the <strong>to</strong>pology <strong>in</strong>formation <strong>to</strong> other applications is<br />

needed. In order <strong>to</strong> achieve it, the EventTopologySet event object conta<strong>in</strong>s a reference <strong>to</strong> the <strong>to</strong>pology<br />

database object. Applications receiv<strong>in</strong>g the event are able <strong>to</strong> access at the whole <strong>to</strong>pology database as it<br />

is conta<strong>in</strong>ed <strong>in</strong> the event object.<br />

6.4.3 Virtual <strong>Peer</strong> Application<br />

The Virtual <strong>Peer</strong> application provides a REST API for manag<strong>in</strong>g virtual peers and their clients (peers). The<br />

basic application layout follows the description <strong>in</strong> Section 6.3.3. The relevant part <strong>of</strong> its class diagram is<br />

shown <strong>in</strong> Figure 6.13. Methods for creat<strong>in</strong>g virtual peers are provided by the class Virtual<strong>Peer</strong>App. It uses<br />

a dictionary that maps IP address str<strong>in</strong>gs <strong>to</strong> Virtual<strong>Peer</strong> objects. These objects s<strong>to</strong>re the data for each peer<br />

and provide methods for add<strong>in</strong>g and remov<strong>in</strong>g peers. <strong>Peer</strong>s can be lookup up either by their mapped port<br />

or by a socket str<strong>in</strong>g.<br />

wsgi.ControllerBase<br />

app_manager.RyuApp<br />

ryu.controller.dpset.DPset<br />

Virtual<strong>Peer</strong>Controller<br />

REST API<br />

Virtual<strong>Peer</strong>App<br />

<strong>in</strong>t: datapath_id<br />

Virtual<strong>Peer</strong>: virtual_peers<br />

add_virtual_peer(...)<br />

del_virtual_peer(...)<br />

packet_<strong>in</strong>_handler(...)<br />

Virtual<strong>Peer</strong><br />

IPAddress: address<br />

IPAddress: super_peer_address<br />

<strong>in</strong>t: service_pro<strong>to</strong>col<br />

<strong>in</strong>t: service_port<br />

add_peer(...)<br />

del_peer(...)<br />

1 0..* 1 0..*<br />

<strong>Peer</strong><br />

Socket: socket<br />

<strong>in</strong>t: map_port<br />

bool: confirmed<br />

openflow.virtualpeer10<br />

Figure 6.13.: The structure <strong>of</strong> the Virtual <strong>Peer</strong> application implementation.<br />

An overview <strong>of</strong> the API <strong>of</strong> the application is given <strong>in</strong> Table 6.5 Before creat<strong>in</strong>g a virtual peer, the<br />

OpenFlow switch <strong>to</strong> be used by the application needs <strong>to</strong> be configured. Then virtual peers can be added<br />

by us<strong>in</strong>g their desired IP address as name and supply<strong>in</strong>g the address <strong>of</strong> the super peer, the transport<br />

6.4. Implementation 63


pro<strong>to</strong>col and the port number <strong>to</strong> be used by both. When a virtual peer is added, an OpenFlow rule is<br />

<strong>in</strong>stalled on the switch that matches packets addressed at the associated virtual peer. For identification<br />

<strong>of</strong> the packets, the dest<strong>in</strong>ation address, the service port, and pro<strong>to</strong>col are matched. The rule’s action is<br />

<strong>to</strong> forward packets <strong>to</strong> the OpenFlow controller.<br />

Events match<strong>in</strong>g an OpenFlow PACKET_IN message are processed by the Virtual<strong>Peer</strong>App objects<br />

packet_<strong>in</strong>_handler method. This method checks if the <strong>in</strong>com<strong>in</strong>g packet matches the data <strong>of</strong> the virtual<br />

peer. If it does, the packets source address and port are used for add<strong>in</strong>g a new peer <strong>to</strong> the virtual peer.<br />

The add method <strong>of</strong> the Virtual<strong>Peer</strong> object <strong>in</strong>stalls rules for implement<strong>in</strong>g the packet header rewrite actions.<br />

The OpenFlow implementation <strong>of</strong> this functionality is a straightforward implementation <strong>of</strong> the rule<br />

schema described <strong>in</strong> Table 5.6 <strong>in</strong> Section 5.3.2. No special adaption is necessary.<br />

Verbs URI Description<br />

PUT,GET /vp/datapath_id Set/get datapath id<br />

GET /vp/vps Get the list <strong>of</strong> virtual peers<br />

PUT,GET,DELETE /vp/ Create/get/delete virtual peer<br />

GET /vp//peers Get the list <strong>of</strong> peers<br />

PUT,GET,DELETE /vp//peers/ Add/confirm/get/remove a peer<br />

Table 6.5.: Virtual <strong>Peer</strong> application API overview.<br />

6.4.4 S<strong>of</strong>tware-Def<strong>in</strong>ed Multicast Application<br />

The SDM application, SDMApp, implements the multicast features for the RASP service. Its UML class<br />

diagram is shown <strong>in</strong> Figure 6.14. The application class is responsible for handl<strong>in</strong>g EventTopologySet<br />

events, which are emitted by the <strong>to</strong>pology application. When such an event is received, the conta<strong>in</strong>ed<br />

wsgi.ControllerBase<br />

app_manager.RyuApp<br />

ryu.controller.dpset.DPset<br />

m<strong>in</strong><strong>in</strong>et.<strong>to</strong>po.Topo<br />

lib.<strong>to</strong>po.RASPTopo<br />

Topology Information<br />

SDMController<br />

REST API<br />

SDMApp<br />

RASPTopo: <strong>to</strong>pology<br />

set_<strong>to</strong>pology(...)<br />

MulticastTree<br />

NetworkX.Graph: tree<br />

str: root_switch<br />

get_active_tree(...)<br />

add_delivery_dest<strong>in</strong>ation(...)<br />

del_delivery_destiation(...)<br />

str: root_switch<br />

add_group(...)<br />

del_group(...)<br />

SDMManager 1 0..*<br />

MulticastGroup<br />

Socket: data_source<br />

1 0..*<br />

Socket: tree_root<br />

add_member(...)<br />

del_member(...)<br />

MulticastMember<br />

Socket: socket<br />

str: switch<br />

<strong>in</strong>t: switchport<br />

openflow.<strong>to</strong>pology10<br />

Figure 6.14.: The structure <strong>of</strong> the SDM application implementation.<br />

RASPTopo object is passed <strong>to</strong> a newly created SDMManager object. This object is responsible for manag<strong>in</strong>g<br />

multicast groups and so for implement<strong>in</strong>g most functions <strong>of</strong> the applications API.<br />

The SDMManager needs <strong>to</strong> know the name <strong>of</strong> the OpenFlow switch that constitutes the root node <strong>of</strong><br />

the multicast tree. Once it is set, the multicast tree is calculated as described <strong>in</strong> the next paragraph. It<br />

64 6. Pro<strong>to</strong>type


is s<strong>to</strong>red as arborescence which starts at the root node and connects all access switches <strong>in</strong> the network.<br />

Us<strong>in</strong>g a pre computed multicast tree for improved performance is an approach widely used <strong>in</strong> literature,<br />

e.g. <strong>in</strong> [70]. When a new group is added by creat<strong>in</strong>g a MulticastGroup object, this tree is copied and used<br />

as basis for the management <strong>of</strong> the active multicast tree. The tree management is implemented <strong>in</strong> the<br />

MulticastTree class, <strong>of</strong> which each MulticastGroup object conta<strong>in</strong>s an <strong>in</strong>stance. After a new group is set<br />

up, an OpenFlow rule is created that matches the <strong>in</strong>com<strong>in</strong>g packet stream and transforms it accord<strong>in</strong>g<br />

<strong>to</strong> the multicast-forward<strong>in</strong>g scheme.<br />

Verbs URI Description<br />

PUT,GET /sdm/datapath_id Set/get tree root datapath id<br />

GET /sdm/groups Get the list <strong>of</strong> multicast groups<br />

PUT, GET,<br />

DELETE<br />

/sdm/<br />

Create/get/delete a multicast<br />

group<br />

GET /sdm//members Get the list <strong>of</strong> members<br />

PUT, GET,<br />

DELETE<br />

/sdm//members/<br />

Table 6.6.: SDM application API overview.<br />

Add/get/remove a member<br />

When a new member is added <strong>to</strong> a multicast group, it is identified by its receive socket. The receive<br />

socket is the comb<strong>in</strong>ation <strong>of</strong> IP address and UDP port where the member wishes <strong>to</strong> receive the multicast<br />

packets. First, the switch and port is determ<strong>in</strong>ed where this new member is connected <strong>to</strong> by us<strong>in</strong>g the<br />

<strong>to</strong>pology database. Us<strong>in</strong>g this <strong>in</strong>formation, a MulticastMember object is created and s<strong>to</strong>red <strong>in</strong> the member<br />

list. At the switch where the member is connected, the member switch, a rule is added that creates a copy<br />

<strong>of</strong> each <strong>in</strong>com<strong>in</strong>g multicast packet and writes the dest<strong>in</strong>ation address and port <strong>to</strong> the correct values.<br />

The forward<strong>in</strong>g <strong>of</strong> the multicast data is managed by the MulticastTree object. If the member switch <strong>of</strong><br />

the new member is not part <strong>of</strong> the multicast tree yet, it is added by call<strong>in</strong>g the add_delivery_dest<strong>in</strong>ation<br />

method. Start<strong>in</strong>g with this switch, the method traverses the multicast tree <strong>to</strong>wards the root node. On the<br />

way, switches that are not part <strong>of</strong> the active tree yet are identified. Then, for each <strong>of</strong> these switches, the<br />

rules on the respective predecessor are modified <strong>to</strong> <strong>in</strong>clude them <strong>in</strong> the packet distribution tree. In [70,<br />

p. 000098] the same approach is used.<br />

An alternative <strong>to</strong> the approach described <strong>in</strong> the preced<strong>in</strong>g paragraph is <strong>to</strong> calculate a new multicast<br />

tree every time a member jo<strong>in</strong>s or leaves the multicast group. This approach has some disadvantages.<br />

First, the new multicast tree calculated after changes <strong>to</strong> the group membership could be node disjo<strong>in</strong>t<br />

for a large number <strong>of</strong> the trees <strong>in</strong>ner nodes. Therefore, the forward<strong>in</strong>g rules are removed from the <strong>in</strong>ner<br />

nodes <strong>of</strong> the old tree and rules added <strong>to</strong> the <strong>in</strong>ner nodes <strong>of</strong> the new tree. This could lead <strong>to</strong> a large<br />

number <strong>of</strong> rule changes required for a s<strong>in</strong>gle group member jo<strong>in</strong><strong>in</strong>g or leav<strong>in</strong>g. In contrast, the approach<br />

used for the SDM application limits the number <strong>of</strong> changes <strong>to</strong> the number <strong>of</strong> nodes on the path between<br />

the new member and the tree root. The calculation <strong>of</strong> a new tree is also computationally more complex.<br />

Hence, it could lead <strong>to</strong> comput<strong>in</strong>g times that <strong>in</strong>fluence the whole Ryu controller, because it relies on<br />

cooperative multitask<strong>in</strong>g.<br />

Multicast tree construction<br />

The networks <strong>to</strong>pology conta<strong>in</strong>ed <strong>in</strong> the RASPTopo object is available as a Graph object <strong>of</strong> the NetworkX<br />

12 library. It is used as database for computation <strong>of</strong> the multicast tree. The construction <strong>of</strong> mul-<br />

12<br />

http://networkx.github.com/ [Accessed 21.04.2013]<br />

6.4. Implementation 65


ticast trees still is a research <strong>to</strong>pic [60]. The approach for this implementation is <strong>to</strong> create a simple yet<br />

robust method that solves the multicast tree problem.<br />

The construction <strong>of</strong> the multicast tree is determ<strong>in</strong>ed by the <strong>to</strong>pology <strong>of</strong> the network. Multicast packets<br />

exit the network through access switches. They traveled the core switches <strong>to</strong> get there. For selection <strong>of</strong><br />

the source <strong>of</strong> the multicast tree, several approaches exist. One approach is <strong>to</strong> use a dedicated part <strong>of</strong> the<br />

network as multicast tree source and calculate a tree from there <strong>to</strong> all access switches. Another approach<br />

is <strong>to</strong> set the source <strong>to</strong> the border or access router, where the video stream enters the network. The po<strong>in</strong>t<br />

<strong>of</strong> entry might be stable when the video source is located <strong>in</strong>side the ISPs network. If it is located on the<br />

Internet, the po<strong>in</strong>t can change any time due <strong>to</strong> rout<strong>in</strong>g policy changes <strong>of</strong> the neighbor networks. Because<br />

the po<strong>in</strong>t <strong>of</strong> entry <strong>of</strong> the video stream is likely <strong>to</strong> change, this approach is more complex. It requires<br />

dynamic changes <strong>to</strong> the routes <strong>of</strong> the network, still; it does not fundamentally change the system. Hence,<br />

the approach with one static source node is used.<br />

Internet<br />

Tree Source<br />

Host<strong>in</strong>g<br />

Core<br />

Core<br />

Core Network<br />

Core<br />

Core<br />

Core<br />

Core<br />

Access Access Access Access<br />

Figure 6.15.: Multicast tree construction problem.<br />

The multicast tree construction from a graph theoretic perspective is shown <strong>in</strong> Figure 6.15. The nodes<br />

<strong>to</strong> be connected by the multicast tree are colored blue. The goal is <strong>to</strong> f<strong>in</strong>d a m<strong>in</strong>imum spann<strong>in</strong>g tree<br />

for a subset <strong>of</strong> the nodes <strong>of</strong> the network graph. This problem is also called the Ste<strong>in</strong>er tree problem,<br />

which is known <strong>to</strong> be NP-hard. However, a number <strong>of</strong> approximations exist, one be<strong>in</strong>g the Ravi-Kle<strong>in</strong><br />

algorithm [53]. It is an approximation for the node weighted Ste<strong>in</strong>er problem, which – besides edge<br />

weights – <strong>in</strong>cludes node weights <strong>in</strong> its calculation. This feature is useful for <strong>in</strong>fluenc<strong>in</strong>g the multicast tree<br />

construction, for example by tak<strong>in</strong>g a switch’s load or the exist<strong>in</strong>g number <strong>of</strong> OpenFlow rules on it <strong>in</strong><strong>to</strong><br />

consideration. The algorithms complexity is logarithmic; no exact bounds are given on the accuracy <strong>of</strong><br />

the solution. The Ravi-Kle<strong>in</strong> algorithm is used <strong>in</strong> the pro<strong>to</strong>type because it is available as a NetworkX compatible<br />

Python module as part <strong>of</strong> GenRev 13 . The other NetworkX compatible Python implementation <strong>of</strong><br />

a Ste<strong>in</strong>er tree approximation available is Kuo’s algorithm [18], which is part <strong>of</strong> the GOGrapher project 14 .<br />

However, this implementation does not work as expected; it fails on some small example graphs and is<br />

not used because <strong>of</strong> that.<br />

13<br />

http://bio<strong>in</strong>fo.mc.vanderbilt.edu/GenRev.html [Accessed 29.04.2013]<br />

14<br />

https://projects.dbbe.musc.edu/trac/GOGrapher [Accessed 29.04.2013]<br />

66 6. Pro<strong>to</strong>type


In [70] the authors implement IP multicast OpenFlow forward<strong>in</strong>g with NOX 15 . They propose the<br />

usage <strong>of</strong> the PRIM algorithm for calculat<strong>in</strong>g the multicast tree for its computational efficiency. However,<br />

the PRIM algorithm calculates the m<strong>in</strong>imum spann<strong>in</strong>g tree <strong>of</strong> the network. Depend<strong>in</strong>g on the network<br />

<strong>to</strong>pology, the m<strong>in</strong>imum spann<strong>in</strong>g tree might differ significantly from the Ste<strong>in</strong>er tree that is required<br />

for multicast. This <strong>in</strong> turn might <strong>in</strong>fluence the efficiency <strong>of</strong> the SDM application. Hence, the simplified<br />

approach is not used.<br />

OpenFlow implementation<br />

For identification <strong>of</strong> packets <strong>of</strong> a SDM group with<strong>in</strong> the ISP, the group address and port are used as<br />

source and dest<strong>in</strong>ation socket. Hence, the OpenFlow rules used for forward<strong>in</strong>g on core switches and<br />

the ones used on hosts access switches rely on the same OpenFlow matcher. The SDM group address is<br />

denoted by G addr , the port by G port . The OpenFlow 1.0 match fields and their respective values are listed<br />

<strong>in</strong> Table 6.7. The port number is set <strong>to</strong> the associated tree upstream port. Its usage is required, as the<br />

packet-mark<strong>in</strong>g scheme does not allow the identification <strong>of</strong> the packet’s direction <strong>of</strong> travel, hence it has<br />

<strong>to</strong> be identified by the <strong>in</strong>com<strong>in</strong>g port.<br />

In port L3 pro<strong>to</strong> L3 src L3 dst L4 pro<strong>to</strong> L4 src port L4 dst port<br />

IP G addr G addr UDP G port G port<br />

Table 6.7.: OpenFlow matcher G match for packets <strong>of</strong> SDM group G.<br />

The rule for writ<strong>in</strong>g the packet header <strong>in</strong>formation <strong>to</strong> a multicast packet on an access switch are a<br />

comb<strong>in</strong>ation <strong>of</strong> the SDM matcher and the actions as described <strong>in</strong> Table 5.3 <strong>in</strong> Section 5.3.2.<br />

For a description <strong>of</strong> the OpenFlow rules used for SDM multicast tree forward<strong>in</strong>g, consider step 1 <strong>of</strong><br />

the schematic cu<strong>to</strong>ut <strong>of</strong> a multicast tree <strong>in</strong> Figure 6.16. Switch Core 1 receives the packet stream <strong>of</strong><br />

SDM multicast group G though port 1. It forwards it though port 2 <strong>to</strong> switch Access 1, where peers are<br />

connected that receive group Gs packet stream. Switch Access 2, which is connected through port 3 at<br />

this time does not receive the packet stream.<br />

SDM group packets<br />

1<br />

1<br />

1<br />

Core 1<br />

Core 1<br />

Core 1<br />

2 3<br />

2 3<br />

2 3<br />

Access<br />

1<br />

Access<br />

2<br />

Access<br />

1<br />

Access<br />

2<br />

Access<br />

1<br />

Access<br />

2<br />

(a) Step 1<br />

(b) Step 2<br />

(c) Step 3<br />

Figure 6.16.: Schematic cu<strong>to</strong>ut <strong>of</strong> a SDM multicast tree with three different forward<strong>in</strong>g states.<br />

For step 1, the OpenFlow rule <strong>of</strong> switch Core 1 is shown <strong>in</strong> Table 6.8. The matcher <strong>of</strong> group G is<br />

denoted by G match . The rule conta<strong>in</strong>s one action, which forwards <strong>in</strong>com<strong>in</strong>g packets <strong>to</strong> port 2. In step 2,<br />

a host connected <strong>to</strong> switch Access 2 jo<strong>in</strong>s the multicast group. The request is processed and switch Access<br />

2 is added <strong>to</strong> the multicast tree. The exist<strong>in</strong>g OpenFlow rule is overwritten; the rule now <strong>in</strong>cludes two<br />

15<br />

https://github.com/caioviel/CastFlow [Accessed 21.04.2013]<br />

6.4. Implementation 67


actions, forward <strong>to</strong> port 2 and forward <strong>to</strong> port 3. Then, all clients connected <strong>to</strong> the switches Access 1<br />

and 2 leave the group. The change is processed and the two access switches as well as switch Core 1 are<br />

removed from the tree. The SDM multicast rule is removed from switch Core 1.<br />

Step Matcher Actions<br />

1 G match Forward: Port 2<br />

2 G match Forward: Port 2, Forward: Port 3<br />

3 No rule<br />

Table 6.8.: OpenFlow rules dur<strong>in</strong>g the three steps <strong>of</strong> the SDM tree forward<strong>in</strong>g example.<br />

68 6. Pro<strong>to</strong>type


7 Evaluation<br />

The goals <strong>of</strong> RASP are tw<strong>of</strong>old: support P2P LVS systems and help ISPs <strong>to</strong> cope with P2P traffic. The focus<br />

<strong>of</strong> this evaluation is on the P2P LVS service pro<strong>to</strong>type’s behavior from the perspective <strong>of</strong> the ISP <strong>of</strong>fer<strong>in</strong>g<br />

it. The transmission efficiency and the <strong>in</strong>fluence <strong>of</strong> different network <strong>to</strong>pologies on it are <strong>in</strong>vestigated.<br />

The resource requirements <strong>of</strong> operat<strong>in</strong>g the P2P LVS service are evaluated by analyz<strong>in</strong>g the required<br />

number <strong>of</strong> OpenFlow rules <strong>in</strong> the network and the system’s management overhead.<br />

The improved control <strong>of</strong> the P2P LVS traffic is given by mark<strong>in</strong>g and separat<strong>in</strong>g the P2P traffic that<br />

runs through the RASP service. Subsequently, the ISP can apply traffic eng<strong>in</strong>eer<strong>in</strong>g. Further evaluation <strong>of</strong><br />

this <strong>to</strong>pic depends on the ISP network architecture, which is beyond the scope <strong>of</strong> this thesis. For P2P LVS<br />

systems, on-demand super peer functionality <strong>in</strong>creases the stability and scalability. The beneficial effect<br />

<strong>of</strong> super peers and especially high upload bandwidth is well documented, as described <strong>in</strong> Section 2.1.2<br />

and 3.2. Evaluat<strong>in</strong>g the effects <strong>of</strong> the <strong>in</strong>creased upload bandwidth on complete P2P LVS systems would<br />

require such a system <strong>to</strong> be simulated or emulated. Such an analysis requires a different evaluation<br />

environment than the one used for analyz<strong>in</strong>g the transmission efficiency. Therefore, the <strong>in</strong>vestigation <strong>of</strong><br />

the impact <strong>of</strong> the system on P2P LVS systems is beyond the scope <strong>of</strong> this thesis.<br />

The rema<strong>in</strong>der <strong>of</strong> this chapter is organized as follows: the scenario used throughout this chapter is<br />

<strong>in</strong>troduced <strong>in</strong> Section 7.1. The evaluation <strong>of</strong> the transmission efficiency and its results are presented <strong>in</strong><br />

Section 7.2. The network resources required for operat<strong>in</strong>g the RASP service are described <strong>in</strong> Section 7.3.<br />

The results <strong>of</strong> this chapter are summarized <strong>in</strong> the conclusion <strong>in</strong> Section 7.4.<br />

7.1 Scenario<br />

The goal <strong>of</strong> the evaluation is tw<strong>of</strong>old: first, compar<strong>in</strong>g the transmission efficiency <strong>of</strong> P2P LVS systems<br />

with and without us<strong>in</strong>g the RASP service. The second goal is analyz<strong>in</strong>g the <strong>in</strong>fluence <strong>of</strong> the ISP’s network<br />

<strong>to</strong>pology on the transmission efficiency. Therefore, ISP network <strong>to</strong>pologies and P2P LVS overlay<br />

network <strong>to</strong>pologies, which are representative <strong>of</strong> the field <strong>of</strong> application, are selected for comparison. The<br />

characteristics <strong>of</strong> both ISP networks <strong>to</strong>pologies and P2P LVS overlay <strong>to</strong>pologies are active research <strong>to</strong>pics<br />

and comprise a large number <strong>of</strong> elements <strong>in</strong> their real world application. The used emulation system is<br />

capable <strong>of</strong> handl<strong>in</strong>g ISP and P2P LVS overlay networks <strong>of</strong> sizes <strong>of</strong> up <strong>to</strong> a few hundred nodes. However,<br />

real systems are <strong>of</strong>ten much larger, especially overlay networks might consist <strong>of</strong> thousands <strong>of</strong> nodes.<br />

Hence, for evaluation the sizes <strong>of</strong> the systems have <strong>to</strong> be adapted <strong>to</strong> the available resources. Models are<br />

<strong>in</strong>troduced that <strong>in</strong>clude certa<strong>in</strong> aspects <strong>of</strong> real networks at reduced sizes.<br />

In Section 7.1.1, ISP network <strong>to</strong>pologies and common simulation approaches are discussed. The <strong>in</strong>fluence<br />

<strong>of</strong> technologies used <strong>in</strong> access and aggregation networks is presented <strong>in</strong> Section 7.1.2. Both<br />

considerations are summarized <strong>in</strong> Section 7.1.3, where the network models used for evaluation are described.<br />

The approach used <strong>to</strong> build overlay networks mimick<strong>in</strong>g real P2P LVS system <strong>in</strong> this evaluation<br />

is discussed <strong>in</strong> Section 7.1.4.<br />

69


7.1.1 ISP Core Networks<br />

The characterization and analysis <strong>of</strong> real world ISP networks is an active research area. For many ISP networks,<br />

some details on their <strong>to</strong>pology exist as described e.g. <strong>in</strong> [54]. However, the available <strong>in</strong>formation<br />

differs <strong>in</strong> its details and level <strong>of</strong> abstraction.<br />

Today’s networks <strong>of</strong>ten use IP addresses or IP capable devices <strong>in</strong> the core network only. Most research<br />

focuses on this area because it can be remotely analyzed without depend<strong>in</strong>g on the network owner. For<br />

this evaluation, only the pla<strong>in</strong> <strong>to</strong>pology is relevant. Additional <strong>in</strong>formation such as l<strong>in</strong>k capacities and<br />

lengths are not relevant and not <strong>in</strong>cluded <strong>in</strong> the model that is sought after for this evaluation.<br />

Networks are analyzed on different levels <strong>of</strong> detail: on the router level or on the Po<strong>in</strong>t <strong>of</strong> Presence (PoP)<br />

level. PoP level <strong>to</strong>pologies conta<strong>in</strong> the relevant structural <strong>in</strong>formation such as long distance network<br />

l<strong>in</strong>ks needed for the <strong>to</strong>pology model. Router level <strong>in</strong>formation would also <strong>in</strong>clude details on the <strong>in</strong>ternal<br />

structure <strong>of</strong> PoPs. For analyz<strong>in</strong>g the systems performance and transport efficiency these details are not<br />

required. Hence, PoP level <strong>to</strong>pologies are discussed from here on, the PoPs are also referred <strong>to</strong> as nodes.<br />

The research shows a wide range <strong>of</strong> ISP network <strong>to</strong>pologies and characteristics. It is difficult <strong>to</strong> identify<br />

phenomena that are characteristic for such networks [54, p. 1773]. Often example networks [24, p.<br />

1529],[107, p. 1166] or network genera<strong>to</strong>rs such as TIERS 1 , GT-ITM 2 , or BRITE [73] are used for experiments.<br />

However, the goal <strong>of</strong> the genera<strong>to</strong>rs is ma<strong>in</strong>ly <strong>to</strong> generate large networks and they require a large<br />

set <strong>of</strong> parameters <strong>to</strong> be selected for cus<strong>to</strong>mization <strong>of</strong> the generated network <strong>to</strong>pologies. Hence, parameters<br />

sett<strong>in</strong>gs are required that reflect the characteristics <strong>of</strong> real networks. Some <strong>in</strong>formation on parameter<br />

sett<strong>in</strong>gs is available <strong>in</strong> [37]. They are specifically matched <strong>to</strong> <strong>to</strong>pologies <strong>of</strong> the German research network<br />

(Deutsches Forschungsnetz, DFN) and AT&T. However, DFN is not an ISP with residential broadband<br />

cus<strong>to</strong>mers, AT&T has, but its dom<strong>in</strong>ant role is the one <strong>of</strong> an Internet backbone provider. Hence, both do<br />

not represent the target audience <strong>of</strong> the RASP service. Other approaches from literature <strong>in</strong>clude an old<br />

long distance network <strong>of</strong> the USA [116]. However, it is not clear what k<strong>in</strong>d <strong>of</strong> network it represents and<br />

if the modeled network is still representative. Therefore, a simplified <strong>to</strong>pology <strong>of</strong> a real network is used<br />

for this evaluation, closely follow<strong>in</strong>g publicly available <strong>in</strong>formation on characteristics <strong>of</strong> ISP networks.<br />

Information on the German core network <strong>to</strong>pology <strong>of</strong> Deutsche Telekom (DT) is available [26, p. 4].<br />

Deutsche Telekom has a large number <strong>of</strong> residential cus<strong>to</strong>mers and hence is part <strong>of</strong> the target audience <strong>of</strong><br />

RASP. It is hierarchical organized as depicted <strong>in</strong> Figure 7.1. Beg<strong>in</strong>n<strong>in</strong>g from the highest hierarchy level,<br />

the <strong>in</strong>ner core features three and the outer core n<strong>in</strong>e PoPs. To these 63 regional nodes are attached,<br />

which constitute the lower hierarchy level. Small groups <strong>of</strong> regional nodes are each connected <strong>to</strong> a node<br />

<strong>of</strong> the outer core. Each node has a direct l<strong>in</strong>k <strong>to</strong> the outer core node and one or more l<strong>in</strong>ks <strong>to</strong> its next<br />

neighbors. Those l<strong>in</strong>ks add an extra hop for paths with dest<strong>in</strong>ations on other core nodes. Hence, their<br />

primary task is assumed <strong>to</strong> provide redundancy. The structure <strong>of</strong> the regional node groups is virtually<br />

tree shaped. The basic shape <strong>of</strong> the <strong>in</strong>ner core is a triangle, the outer core adds PoPs by add<strong>in</strong>g l<strong>in</strong>ks <strong>to</strong><br />

two different <strong>in</strong>ner core locations. The whole network shape resembles a so-called snow flake structure.<br />

A similar shape is used for evaluation <strong>of</strong> MPLS traffic eng<strong>in</strong>eer<strong>in</strong>g approaches <strong>in</strong> [117, p. 9-11]. The core<br />

is a triangle; the rest <strong>of</strong> the network is tree-shaped. The authors argue that this reflects the fact that<br />

only the regional PoPs are generat<strong>in</strong>g revenue and that any additional l<strong>in</strong>ks <strong>in</strong>troduce costs, which are<br />

avoided by ISPs if possible.<br />

Based on these two network models, the ISP network model described <strong>in</strong> the rema<strong>in</strong>der <strong>of</strong> this section<br />

is used for evaluation. The model should be scalable while keep<strong>in</strong>g certa<strong>in</strong> characteristics <strong>of</strong> the reference<br />

1<br />

http://www.isi.edu/nsnam/ns/ns-<strong>to</strong>pogen.html#tiers [Accessed 28.04.2013]<br />

2<br />

http://www.cc.gatech.edu/projects/gtitm/ [Accessed 28.04.2013]<br />

70 7. Evaluation


5 regional<br />

nodes<br />

7 regional<br />

nodes<br />

6 regional<br />

nodes<br />

10 regional<br />

nodes<br />

Outer Core<br />

5 regional<br />

nodes<br />

10 regional<br />

nodes<br />

Inner Core<br />

5 regional<br />

nodes<br />

8 regional<br />

nodes<br />

3 regional<br />

nodes<br />

5 regional<br />

nodes<br />

Figure 7.1.: Deutsche Telekom’s core network [26, p. 4].<br />

<strong>to</strong>pologies. The network <strong>to</strong>pology model is shown <strong>in</strong> Figure 7.2. It consists <strong>of</strong> two parts, a part made up<br />

<strong>of</strong> triangular shapes and a part made up <strong>of</strong> tree shapes. The m<strong>in</strong>imal network consists <strong>of</strong> a s<strong>in</strong>gle triangle<br />

with one tree node connected <strong>to</strong> each <strong>of</strong> the triangle’s nodes. The size <strong>of</strong> the network can be <strong>in</strong>crease<br />

either by add<strong>in</strong>g nodes <strong>in</strong> the triangular part or the tree part. In the triangular part, nodes are added<br />

by attach<strong>in</strong>g them <strong>to</strong> two nodes <strong>of</strong> the start<strong>in</strong>g triangle, resembl<strong>in</strong>g the <strong>to</strong>pology <strong>of</strong> Deutsche Telekom.<br />

Nodes can be added <strong>to</strong> the tree part by add<strong>in</strong>g them <strong>to</strong> any <strong>of</strong> the exist<strong>in</strong>g trees. For easy generation and<br />

handl<strong>in</strong>g, all size variations <strong>of</strong> the model are done symmetrically.<br />

Scale the triangular network part by l<strong>in</strong>k<strong>in</strong>g<br />

a node <strong>to</strong> two <strong>of</strong> the start<strong>in</strong>g nodes<br />

Scale the tree part by <strong>in</strong>creas<strong>in</strong>g<br />

its depths<br />

Scale the tree part by <strong>in</strong>creas<strong>in</strong>g its degree<br />

Figure 7.2.: The network <strong>to</strong>pology model used as basis for network <strong>to</strong>pology with annotations on the scal<strong>in</strong>g<br />

possibilities.<br />

7.1. Scenario 71


7.1.2 ISP Access and Aggregation Networks<br />

Access and aggregation networks are fundamentally different from core networks. Core networks are<br />

researched because they are part <strong>of</strong> the public reachable Internet and run the IP pro<strong>to</strong>col. Often this is<br />

not the case <strong>in</strong> access and aggregation networks. This has an impact on the applicability <strong>of</strong> OpenFlow<br />

<strong>in</strong> these network areas, because network pro<strong>to</strong>cols used are <strong>of</strong>ten not support by OpenFlow. Hence,<br />

access and aggregation networks need <strong>to</strong> be analyzed <strong>in</strong> more detail <strong>to</strong> assess the impact on the network<br />

<strong>to</strong>pology model.<br />

Access networks are mostly implemented us<strong>in</strong>g technologies, which are specifically developed for this<br />

application doma<strong>in</strong>. Today, the prevalent technology used <strong>in</strong> access networks is DSL, as described <strong>in</strong><br />

Section 2.2.2. Ethernet based OpenFlow technologies are rarely used, which rules out the application<br />

<strong>of</strong> the Ethernet-based OpenFlow. Aggregation networks are implemented with Ethernet <strong>to</strong>day, however<br />

the technology used for packet transport is <strong>in</strong>fluenced by the technology used <strong>in</strong> the connected access<br />

networks. The applicability <strong>of</strong> Ethernet is shown <strong>in</strong> Figure 7.3 on the left.<br />

Core PoP<br />

BRAS<br />

Use <strong>of</strong> Ethernet<br />

possible and likely<br />

Aggregation switches<br />

PPP encapsulation<br />

Use <strong>of</strong> Ethernet<br />

unlikely<br />

...<br />

...<br />

Access devices, eg. DSLAM<br />

...<br />

...<br />

Figure 7.3.: Access and aggregation networks: Ethernet application and PPP encapsulation.<br />

Cus<strong>to</strong>mer network traffic <strong>in</strong> DSL networks is <strong>of</strong>ten managed by Broadband Remote Access Servers<br />

(BRAS). Such a device is <strong>of</strong>ten placed <strong>in</strong> the core PoP, aggregat<strong>in</strong>g residential subscriber traffic and<br />

manag<strong>in</strong>g the <strong>of</strong>fered network services. Their tasks <strong>in</strong>clude authentication and IP address assignment [9,<br />

p. 8]. In order <strong>to</strong> differentiate the traffic from different subscribers, it is encapsulated on its way <strong>to</strong> the<br />

BRAS. Today, the encapsulation is enabled by creat<strong>in</strong>g a PPP session between the subscribers residential<br />

gateway and the BRAS as shown <strong>in</strong> Figure 7.3 on the right.<br />

The SDM component <strong>of</strong> the RASP service, proposed <strong>in</strong> this thesis, relies on manipulation <strong>of</strong> the IP<br />

header <strong>of</strong> packets. For manipulat<strong>in</strong>g the pro<strong>to</strong>col header <strong>of</strong> a network packet with OpenFlow the pro<strong>to</strong>col<br />

<strong>to</strong> be manipulated and all underly<strong>in</strong>g pro<strong>to</strong>cols must be supported by the OpenFlow standard<br />

specification. Besides the standard pro<strong>to</strong>cols <strong>of</strong> the TCP/IP network stack like IP, TCP, and UDP, Open-<br />

Flow version 1.0 supports the manipulation <strong>of</strong> VLAN tags. In addition <strong>to</strong> that, OpenFlow version 1.2<br />

specifies the manipulation <strong>of</strong> MPLS tags. PPP is not a supported pro<strong>to</strong>col, which prevents the manipulation<br />

<strong>of</strong> other pro<strong>to</strong>col headers which are encapsulated with<strong>in</strong> PPP such as the IP header. Hence, the SDM<br />

component <strong>of</strong> the RASP service can only be used <strong>in</strong> access networks if Ethernet is used as data l<strong>in</strong>k <strong>layer</strong><br />

pro<strong>to</strong>col and the subscriber traffic is encapsulated <strong>in</strong> a supported pro<strong>to</strong>col header or not encapsulated at<br />

all.<br />

Start<strong>in</strong>g from <strong>to</strong>day’s DSL-based standard configuration, possible OpenFlow compatible sett<strong>in</strong>gs are<br />

explored. The placement <strong>of</strong> the BRAS <strong>in</strong> a core PoP is the standard configuration <strong>to</strong>day (e.g. [52, p.<br />

5],[50, p. 413],[34, p. 355]). An alternative approach, called distributed BRAS, is also available, <strong>in</strong><br />

which some <strong>of</strong> the BRAS functionality is moved from the core PoP <strong>to</strong> locations nearer <strong>to</strong> the DSLAMs<br />

72 7. Evaluation


[42, p. 10,11], thereby enlarg<strong>in</strong>g the IP-based network. However, <strong>in</strong>dustry reports from 2005 [9, p. 6]<br />

and virtually none more recent literature on this <strong>to</strong>pic suggest that their distribution is limited.<br />

Another approach for enabl<strong>in</strong>g OpenFlow <strong>in</strong> access networks is <strong>to</strong> forgo subscriber traffic encapsulation<br />

and use Ethernet as data l<strong>in</strong>k <strong>layer</strong> pro<strong>to</strong>col. For the latter, a number <strong>of</strong> approaches exist. A required<br />

functionality <strong>in</strong> the network between the DSLAM and the BRAS is subscriber isolation. Today, this is <strong>of</strong>ten<br />

implemented by us<strong>in</strong>g PPP. Alternative approaches exist: the Broadband Forum suggests us<strong>in</strong>g Ethernet<br />

with VLAN tagg<strong>in</strong>g [2]. In [63], an approach called seamless MPLS is <strong>in</strong>troduced. The authors propose a<br />

MPLS architecture that also spans access networks. In both scenarios PPP over Ethernet (PPPoE) can be<br />

used as encapsulation. An alternative encapsulation exists: IP over Ethernet (IPoE), which forgoes PPP. It<br />

is standardized <strong>in</strong> [2], and further detailed <strong>in</strong> WT-146, which is a work <strong>in</strong> progress and hence not freely<br />

available. When us<strong>in</strong>g IPoE, DHCP is used for IP address management, while a number <strong>of</strong> other features<br />

PPPoE <strong>of</strong>fers are not available [12]. Literature suggests it is deployed <strong>in</strong> production [48, p. 4].<br />

Approaches for implement<strong>in</strong>g ISP networks with OpenFlow are researched, with SPARC [52] be<strong>in</strong>g<br />

one research project <strong>in</strong> this area. Different scenarios for OpenFlow usage are discussed, <strong>in</strong>clud<strong>in</strong>g implement<strong>in</strong>g<br />

PPP-based BRAS functionality and an approach on us<strong>in</strong>g IPoE/DHCP with OpenFlow [3].<br />

The overview <strong>of</strong> current research literature on technologies used, propose that PPP-based aggregation<br />

networks are used <strong>in</strong> the future, even <strong>in</strong> OpenFlow-based aggregation networks. Also, IPoE/DHCP approaches<br />

are used and it is assumed that they will see an <strong>in</strong>creas<strong>in</strong>g adoption <strong>in</strong> the future. Furthermore,<br />

approaches on mov<strong>in</strong>g the BRAS from the access network <strong>to</strong>wards the access network exist and are likely<br />

<strong>to</strong> be used more broadly <strong>in</strong> the future. Aggregation networks are mostly logically tree shaped. Hence,<br />

the impact <strong>of</strong> chang<strong>in</strong>g the tree depths at the borders <strong>of</strong> the ISP network is analyzed <strong>in</strong> this evaluation.<br />

This gives first h<strong>in</strong>ts on how the RASP system would behave if the BRAS location is changed or if it is not<br />

used at all.<br />

7.1.3 Applied Network Topology Variations<br />

In Section 7.1.2 and Section 7.1.1 <strong>to</strong>pologies for core and access networks are discussed. A model for<br />

provider networks is presented, based on the network <strong>to</strong>pology <strong>of</strong> Deutsche Telekom (DT). The nodes or<br />

PoPs <strong>in</strong> the model are represented by OpenFlow switches. For evaluation, a number <strong>of</strong> <strong>in</strong>stances <strong>of</strong> this<br />

<strong>to</strong>pology are chosen and features for runn<strong>in</strong>g the RASP service are added. These <strong>in</strong>clude hosts on which<br />

P2P LVS peers can run, a host<strong>in</strong>g node for implement<strong>in</strong>g the RASP service and a network part mimick<strong>in</strong>g<br />

the Internet. The <strong>in</strong>stances <strong>of</strong> the network model and their selection are described <strong>in</strong> this section.<br />

For illustration, a small example <strong>in</strong>stance <strong>of</strong> the network <strong>to</strong>pology model exhibit<strong>in</strong>g all relevant features,<br />

called DT small, is shown <strong>in</strong> Figure 7.4. The host<strong>in</strong>g switch is connected <strong>to</strong> a switch <strong>of</strong> the core<br />

triangle. Hosts are not directly connected <strong>to</strong> core switches, but <strong>to</strong> access switches. To emulate the effects<br />

<strong>of</strong> the <strong>in</strong>teraction between hosts <strong>in</strong>side the ISP network and on the Internet, Internet switches and hosts<br />

are added. Each switch <strong>of</strong> the ISP network part’s triangular core is connected <strong>to</strong> one Internet switch.<br />

The three Internet core switches are <strong>in</strong>terconnected and one Internet access switch is connected per core<br />

switch. One half <strong>of</strong> the hosts <strong>in</strong> the network is located <strong>in</strong> the ISP part, the other half is located on the Internet<br />

part. The <strong>to</strong>pology conta<strong>in</strong>s a <strong>to</strong>tal <strong>of</strong> 13 switches. In Figure 7.4 the ISP core switches are depicted<br />

<strong>in</strong> orange, the access switches <strong>in</strong> blue; Internet switches and hosts are depicted <strong>in</strong> gray.<br />

Three network <strong>to</strong>pologies with the same amount <strong>of</strong> hosts are used for assess<strong>in</strong>g the <strong>in</strong>fluence <strong>of</strong> their<br />

characteristics on the efficiency <strong>of</strong> the RASP service. Each network <strong>in</strong>cludes 180 hosts, 90 <strong>of</strong> which<br />

are located <strong>in</strong> the ISP network and 90 on the Internet. Larger networks were tested on the available<br />

hardware, but could not be used due <strong>to</strong> excessive packet loss when runn<strong>in</strong>g an emulated P2P LVS overlay<br />

network. The <strong>to</strong>tal <strong>of</strong> 180 hosts is chosen for its adequate performance requirements and because it<br />

7.1. Scenario 73


5 H<br />

Access switches<br />

Host<strong>in</strong>g switch<br />

Core switches<br />

ISP<br />

Number <strong>of</strong> connected hosts<br />

5 H 5 H<br />

Internet<br />

5 H 5 H<br />

5 H<br />

Figure 7.4.: Network model <strong>in</strong>stance DT small.<br />

allows the three <strong>to</strong>pologies <strong>to</strong> conta<strong>in</strong> the same number <strong>of</strong> hosts. 150 hosts <strong>in</strong> the ISP network and the<br />

same number <strong>of</strong> hosts <strong>in</strong> the Internet part, runn<strong>in</strong>g a P2P LVS emulation resulted <strong>in</strong> high packet loss due<br />

<strong>to</strong> an overload situation computer system runn<strong>in</strong>g the test.<br />

The largest <strong>to</strong>pology that is used <strong>in</strong> this thesis conta<strong>in</strong>s 34 switches. The video stream used for<br />

evaluation has an average bit rate <strong>of</strong> 150Kbit/s, which is discussed <strong>in</strong> Section 7.1.4. For an upper<br />

bound <strong>of</strong> the throughput per second, it is assumed that each host uses the full video bandwidth<br />

on every switch <strong>in</strong> the network. This yields an upper bound for the <strong>to</strong>tal throughput requirement <strong>of</strong><br />

180 ∗ 0.150Mbit/s ∗ 34 = 918Mbit/s. These are upper bounds; the real throughput requirement is expected<br />

<strong>to</strong> be much lower. The maximum network diameter <strong>of</strong> the network <strong>to</strong>pologies described later <strong>in</strong><br />

this section is 7. Assum<strong>in</strong>g that the video stream crosses 7 switches <strong>to</strong> reach each host, this lower bound<br />

yields 180 ∗ 0.150Mbit/s ∗ 7 = 189Mbit/s.<br />

The result<strong>in</strong>g numbers <strong>of</strong> this consideration are not consistent with the anticipated performance based<br />

on the analysis <strong>of</strong> the switch performance <strong>in</strong> Section 6.2.2. This is true even if the high process<strong>in</strong>g<br />

resource usage <strong>of</strong> the P2P LVS emulation is considered. The performance test showed an aggregated<br />

throughput <strong>of</strong> 1.3Gbit/s for 10 switches, tests for larger networks where not conducted. Some results<br />

can be deducted from [59, p. 4]. In the evaluation described there, the aggregated throughput <strong>of</strong> the<br />

Open vSwitch s<strong>of</strong>tware drops by 40% when the number <strong>of</strong> switches is <strong>in</strong>creased from 10 <strong>to</strong> 20. When<br />

the number <strong>of</strong> switches is <strong>in</strong>creased from 10 <strong>to</strong> 30, the aggregated throughput drops by 70%. Assum<strong>in</strong>g<br />

the same behavior <strong>of</strong> the hardware used <strong>in</strong> this thesis, the results suggest a maximum throughput <strong>of</strong><br />

1.3Gbit/s ∗ 0.3 = 0.39Gbit/s. This value is twice as high as the upper bound derived for the throughput<br />

performance required for this evaluation. Hence, the network throughput is unlikely <strong>to</strong> be the limit<strong>in</strong>g<br />

performance metric <strong>in</strong> this sett<strong>in</strong>g. Further analysis <strong>of</strong> these performance considerations is beyond <strong>of</strong> the<br />

scope <strong>of</strong> this work.<br />

Each network <strong>to</strong>pology <strong>in</strong>stance starts from the DT Small <strong>in</strong>stances and scales its size by tak<strong>in</strong>g a<br />

different approach. All <strong>to</strong>pologies scale the number <strong>of</strong> access switches per core node. One approach is<br />

74 7. Evaluation


<strong>to</strong> add more hosts per access switch, which is taken for DT Hosts, shown <strong>in</strong> Figure 7.5. 10 hosts are<br />

connected <strong>to</strong> each access node and five access nodes are connected <strong>to</strong> each core node, for a <strong>to</strong>tal <strong>of</strong> 19<br />

switches. The ISP network part consists <strong>of</strong> 13 switches and has a network diameter <strong>of</strong> five. This <strong>to</strong>pology<br />

represents networks with high user density <strong>in</strong> this comparison.<br />

10 H<br />

10 H 10 H<br />

10 H<br />

10 H<br />

10 H<br />

10 H<br />

10 H<br />

10 H<br />

Internet<br />

30 H 30 H<br />

30 H<br />

Figure 7.5.: Network model <strong>in</strong>stance scaled by <strong>in</strong>creas<strong>in</strong>g the number <strong>of</strong> connected host per access switch (DT<br />

Hosts).<br />

Another approach is <strong>to</strong> add more core switches, similar <strong>to</strong> the outer core nodes <strong>in</strong> the DTAG network.<br />

Three core nodes are connected with two access switches each for DT Core, shown <strong>in</strong> Figure 7.6. At each<br />

access switch, six hosts are connected. The <strong>to</strong>pology consists <strong>of</strong> 28 switches; the ISP part consists <strong>of</strong> 22<br />

switches and has a network diameter <strong>of</strong> six. This <strong>to</strong>pology represents networks with a high l<strong>in</strong>k density<br />

<strong>in</strong> the core.<br />

F<strong>in</strong>ally, scal<strong>in</strong>g can be achieved by <strong>in</strong>creas<strong>in</strong>g the depths <strong>of</strong> the tree-shaped part <strong>of</strong> the network. For DT<br />

Depth, at each core node two switches are added as shown <strong>in</strong> Figure 7.7. 5 connected hosts per access<br />

switch yield the same number <strong>of</strong> hosts as DT Hosts, but with an additional tree level and a <strong>to</strong>tal <strong>of</strong> 34<br />

switches. The ISP network consists <strong>of</strong> 28 switches and has a network diameter <strong>of</strong> seven. This <strong>to</strong>pology<br />

represents networks with a high ratio <strong>of</strong> tree-shaped network parts. ISP networks where OpenFlow can<br />

be used <strong>in</strong> the complete aggregation network parts, as described <strong>in</strong> Section 7.1.2, are represented by this<br />

<strong>to</strong>pology.<br />

A simple rout<strong>in</strong>g model is used for the network <strong>to</strong>pologies. Each access switch is associated with an<br />

IP network. A forward<strong>in</strong>g path is created for each pair <strong>of</strong> switches and their associated networks. The<br />

selection <strong>of</strong> the paths is done by calculat<strong>in</strong>g the shortest path between the two access switches. Each<br />

l<strong>in</strong>k <strong>in</strong> the network <strong>to</strong>pology is assigned a length <strong>of</strong> 1. Exceptions are the l<strong>in</strong>ks <strong>in</strong> the Internet part <strong>of</strong><br />

the network. The l<strong>in</strong>ks between the Internet core switches are given a length <strong>of</strong> 3 <strong>to</strong> enforce a balanced<br />

usage <strong>of</strong> the l<strong>in</strong>ks between the ISP and the Internet network part. To these l<strong>in</strong>ks, a length <strong>of</strong> 5 is assigned<br />

7.1. Scenario 75


6 H<br />

6 H 6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H<br />

6 H 6 H<br />

Internet<br />

30 H 30 H<br />

30 H<br />

Figure 7.6.: Network model <strong>in</strong>stance scaled by add<strong>in</strong>g core nodes (DT Core).<br />

<strong>to</strong> ensure that routes between two hosts <strong>in</strong> the Internet part do not use l<strong>in</strong>ks from the ISP network part.<br />

The l<strong>in</strong>k length is also used for the creation <strong>of</strong> the overlay network, which is described <strong>in</strong> Section 7.1.5.<br />

The generated networks used <strong>in</strong> this evaluation are assumed static, they do not change dur<strong>in</strong>g the<br />

time the network emulation is runn<strong>in</strong>g. In addition, no bandwidth restrictions are applied. For a first<br />

basic evaluation <strong>of</strong> the RASP concept, this sett<strong>in</strong>g is assumed sufficient. Evaluations go<strong>in</strong>g beyond these<br />

<strong>to</strong>pologies are considered future work.<br />

7.1.4 <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> Model and Emulation<br />

The P2P LVS emulation def<strong>in</strong>es the workload <strong>of</strong> the evaluation. It runs on the network <strong>to</strong>pology described<br />

<strong>in</strong> the last section. No s<strong>of</strong>tware is available for runn<strong>in</strong>g P2P LVS systems <strong>in</strong> the chosen network emula<strong>to</strong>r<br />

sett<strong>in</strong>g. Therefore, the P2P LVS system behavior is emulated with cus<strong>to</strong>m s<strong>of</strong>tware. The emulation consists<br />

<strong>of</strong> three parts: peers, an overlay <strong>to</strong>pology and a video stream. <strong>Peer</strong>s run on the emulated network,<br />

they are configured by the evaluation system. Their ma<strong>in</strong> task is <strong>to</strong> establish network connections <strong>to</strong> their<br />

neighbors and forward the video stream. The overlay <strong>to</strong>pology is created by the evaluation system before<br />

configur<strong>in</strong>g the peers, its design is discussed <strong>in</strong> Section 7.1.5. Then, a video is streamed <strong>to</strong> the root node<br />

<strong>of</strong> the overlay <strong>to</strong>pology, which forwards it through the overlay network.<br />

Besides the overlay network approach, the hosts, which are <strong>in</strong>cluded <strong>in</strong> the P2P LVS system, can be<br />

used <strong>to</strong> <strong>in</strong>fluence the systems workload. In a real system, the users <strong>of</strong> such systems are expected <strong>to</strong> be<br />

randomly distributed <strong>in</strong> the network. This behavior is simulated by choos<strong>in</strong>g 80% <strong>of</strong> the hosts for the<br />

operation <strong>of</strong> peers <strong>of</strong> the P2P LVS system. The peer selection for each <strong>to</strong>pology is done randomly dur<strong>in</strong>g<br />

<strong>in</strong>itialization <strong>of</strong> an overlay network emulation.<br />

76 7. Evaluation


5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

5 H<br />

Internet<br />

5 H<br />

30 H 30 H<br />

30 H<br />

Figure 7.7.: Network model <strong>in</strong>stance scaled by <strong>in</strong>creas<strong>in</strong>g the trees depths (DT Depths).<br />

The overlay <strong>to</strong>pology is calculated <strong>in</strong> advance, the peers are configured with their neighbors and their<br />

associated roles. Each peer creates a TCP network connection <strong>to</strong> each <strong>of</strong> its neighbors. Small messages<br />

are send over these connections every few seconds, no functional <strong>in</strong>formation is exchanged. Their ma<strong>in</strong><br />

use is <strong>to</strong> verify if the RASP system is work<strong>in</strong>g correctly dur<strong>in</strong>g the experiments.<br />

The video p<strong>layer</strong> and stream<strong>in</strong>g application VLC 3 is used for stream<strong>in</strong>g a video <strong>in</strong> the P2P LVS overlay<br />

network us<strong>in</strong>g UDP as transport pro<strong>to</strong>col. A video 4 , which is encoded for an average bit rate <strong>of</strong> 150kbit/s,<br />

is used for the stream. It is small enough <strong>to</strong> allow its use with a larger number <strong>of</strong> peers <strong>in</strong> the available<br />

emulated network environment. Still, it is large enough <strong>to</strong> be a viewable video and <strong>to</strong> create a sufficient<br />

amount <strong>of</strong> network traffic for measurement. Obta<strong>in</strong>ed qualitative results are assumed representative also<br />

for streams with higher bit rates and scenarios with more peers.<br />

7.1.5 Overlay Topology Generation<br />

As <strong>in</strong>troduced <strong>in</strong> Section 7.1.4, a tree-based P2P LVS overlay is assumed. A method for the construction<br />

<strong>of</strong> the emulated <strong>to</strong>pologies is presented <strong>in</strong> this section. RASP should be most suitable for systems with<br />

centralized control. Hence, we assume an opera<strong>to</strong>r who employs RASP for the stream<strong>in</strong>g, e.g. <strong>of</strong> a live<br />

event. The video stream source is placed somewhere on the Internet as part <strong>of</strong> the respective <strong>to</strong>pology.<br />

The ISP represents – compared <strong>to</strong> the whole Internet – a small number <strong>of</strong> users. Hence, a significant<br />

3<br />

http://www.videolan.org/ [Accessed 29.04.2013]<br />

4<br />

http://www.bigbuckbunny.org/ [Accessed 21.04.2013]<br />

7.1. Scenario 77


number <strong>of</strong> peers connect <strong>to</strong> the system before the first peers <strong>in</strong>side the ISP jo<strong>in</strong> <strong>to</strong> account for this<br />

characteristic situation.<br />

For simplicity <strong>of</strong> the emulation, a centralized overlay network management is assumed. The scheme<br />

used is based on the one used by CoopNet [87], whose operation is described <strong>in</strong> this paragraph. A peer<br />

will<strong>in</strong>g <strong>to</strong> jo<strong>in</strong> the video distribution tree requests <strong>in</strong>formation on potential upstream peers from a central<br />

authority, which aims <strong>to</strong> create a balanced distribution tree. Therefore, the lowest level with available<br />

capacity <strong>in</strong> the tree is chosen for connect<strong>in</strong>g the new peer. From this level, peers with available capacity<br />

are determ<strong>in</strong>ed and one is randomly selected and proposed <strong>to</strong> the new peer. The new peer jo<strong>in</strong>s the<br />

network, receives the video stream and <strong>in</strong>forms the overlay manager on its upload capacity.<br />

A method adapted from the approach <strong>of</strong> CoopNet is used as a model for simple P2P LVS systems that<br />

are underlay network oblivious. This overlay <strong>to</strong>pology algorithm is called Random. Many P2P LVS systems<br />

consider <strong>in</strong>formation on the underlay network dur<strong>in</strong>g the construction <strong>of</strong> their overlay network. In<br />

these systems, the upstream peer is not selected randomly but by estimated virtual or physical distance<br />

or location. Such a representative approach is used <strong>in</strong> this evaluation; the algorithm is called Underlayaware.<br />

The basic approach is similar <strong>to</strong> the one <strong>of</strong> CoopNet. It differs when a new peer is <strong>in</strong>side the ISP<br />

network. In this case, upstream peers from the same network are preferred 90% <strong>of</strong> the time. From the<br />

available peers the one with the shortest distance is chosen. In the other 10% <strong>of</strong> the requests, from the<br />

three closest peers located on the Internet part <strong>of</strong> the network, one is chosen randomly. This concept<br />

is <strong>in</strong>spired by P2P LVS systems that rely on network <strong>in</strong>formation services such as ALTO [11]. Such systems<br />

can provide distance <strong>in</strong>formation on nodes <strong>in</strong>side the ISP network <strong>to</strong> support ISP-friendly overlay<br />

<strong>to</strong>pology constructions. For distance measurement on the Internet, different approaches exist like determ<strong>in</strong><strong>in</strong>g<br />

the hop count or latency measurements between two nodes. For this emulation, the path length<br />

<strong>in</strong>formation available from the network <strong>to</strong>pologies is used <strong>in</strong> both cases.<br />

A method based on the Underlay-aware overlay algorithm is used as model for P2P LVS systems that<br />

<strong>in</strong>tegrate the RASP service. The overlay algorithm is called RASP, it assumes an exist<strong>in</strong>g RASP <strong>in</strong>stance<br />

for its operation, which is always a directly connected peer <strong>of</strong> the video source. The RASP algorithm<br />

differs from the Underlay-aware algorithm <strong>in</strong> the upstream peer selection. In 90% <strong>of</strong> the cases, the RASP<br />

<strong>in</strong>stance is chosen as upstream peer if a new peer is located <strong>in</strong> the ISP network. The preference <strong>of</strong><br />

the RASP <strong>in</strong>stance is achieved by sett<strong>in</strong>g the distance <strong>in</strong> the network <strong>in</strong>formation service between the<br />

RASP <strong>in</strong>stance and all other hosts <strong>in</strong> the ISP network <strong>to</strong> zero. In the other 10% <strong>of</strong> the cases, from the<br />

three closest peers at the right level, one is chosen randomly. The random selection approach reflects<br />

a worst-case scenario for tree-based systems from the perspective <strong>of</strong> transmission efficiency, while the<br />

Underlay-aware approach exhibits features that it shares with underlay-aware P2P systems.<br />

The simulated P2P networks are small compared <strong>to</strong> real systems with thousands or millions <strong>of</strong> users.<br />

Many P2P systems prefer a shallow tree <strong>to</strong> reduce the transmission latency. The out degree <strong>of</strong> peers is <strong>in</strong><br />

many cases restricted by their network upstream capacity. Given that DSL is the prevalent access network<br />

technology and its asynchronous transmission capacity, each peer is assumed <strong>to</strong> have a small number <strong>of</strong><br />

neighbors <strong>to</strong> which they transmit the video stream <strong>to</strong>. The alternative approach <strong>of</strong> us<strong>in</strong>g large numbers<br />

<strong>of</strong> neighbors would lead <strong>to</strong> trees with only a few levels <strong>of</strong> depth because <strong>of</strong> the small number <strong>of</strong> peers<br />

available. This sett<strong>in</strong>g would not be representative and could <strong>in</strong>crease the variability <strong>of</strong> the results, as the<br />

few randomly selected peers near the tree root could have a big <strong>in</strong>fluence on the systems performance.<br />

The advantage <strong>of</strong> a RASP <strong>in</strong>stance is a high out degree. However, with a small number <strong>of</strong> peers between<br />

tens and hundreds and an out degree, which covers a significant part <strong>of</strong> all peers, the advantage <strong>of</strong> a<br />

RASP <strong>in</strong>stance would not appear as it is expected <strong>in</strong> real deployments. To mitigate this, an out degree <strong>of</strong><br />

four is used for peers <strong>in</strong> the generated overlay network <strong>to</strong>pologies. It ensures a tree depth <strong>of</strong> at least two<br />

levels for less than 50 peers.<br />

78 7. Evaluation


H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Host<strong>in</strong>g<br />

Core<br />

Core<br />

Access<br />

H<br />

H<br />

Host<strong>in</strong>g<br />

Core<br />

Core<br />

Access<br />

H<br />

Core<br />

H<br />

Core<br />

H<br />

H<br />

INTERNET<br />

H<br />

INTERNET<br />

H<br />

INTERNET<br />

INTERNET<br />

INTERNET<br />

H<br />

H<br />

INTERNET<br />

INTERNET<br />

INTERNET<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

(a) Random<br />

(b) Underlay-aware<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Access<br />

H<br />

H<br />

H<br />

Host<strong>in</strong>g<br />

Core<br />

Core<br />

Access<br />

H<br />

Core<br />

H<br />

H<br />

INTERNET<br />

H<br />

INTERNET<br />

INTERNET<br />

INTERNET<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

H<br />

INTERNET<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

H<br />

(c) RASP<br />

Figure 7.8.: Overlay network algorithm examples based on the DT Small <strong>to</strong>pology.<br />

The analysis <strong>of</strong> the three overlay network algorithms, Random, Underlay-aware, and RASP, is described<br />

<strong>in</strong> the rema<strong>in</strong>der <strong>of</strong> this section. For comparison <strong>of</strong> the random algorithm for overlay network construction<br />

and the Underlay-aware supported approach the DT Small network <strong>to</strong>pology is used with 80% P2P<br />

usage and 24 peers <strong>in</strong> <strong>to</strong>tal. The lengths <strong>of</strong> network l<strong>in</strong>ks are as described <strong>in</strong> Section 7.1.3. Inside the ISP<br />

network they are 1, the network l<strong>in</strong>ks between the ISP and the Internet have a length <strong>of</strong> 5. The lengths<br />

<strong>of</strong> l<strong>in</strong>ks between Internet switches are 3. The three overlay network algorithms are run 100 times. The<br />

average path lengths <strong>of</strong> overlay l<strong>in</strong>ks <strong>in</strong>side the ISP network and the percentage <strong>of</strong> overlay connections<br />

cross<strong>in</strong>g the network boundaries are used for comparison.<br />

7.1. Scenario 79


For illustration, example overlay networks that were generated by the three algorithms on the small<br />

DTAG network <strong>to</strong>pology are shown <strong>in</strong> Figure 7.8. Blue arrows denote overlay network l<strong>in</strong>ks; the direction<br />

<strong>of</strong> the arrows represents the direction <strong>of</strong> the video stream. Hosts are depicted by boxes with an “H”,<br />

switches by ovals. Other edges are network l<strong>in</strong>ks; the Internet part <strong>of</strong> the network is depicted <strong>in</strong> gray <strong>to</strong><br />

emphasize the ISP network part. The different properties <strong>of</strong> the overlay networks algorithms are clearly<br />

visible <strong>in</strong> the depicted networks. The number <strong>of</strong> edges cross<strong>in</strong>g from the ISP <strong>to</strong> the Internet part is much<br />

smaller for the Underlay-aware and the RASP approach. Furthermore, the overlay l<strong>in</strong>ks are more uniform,<br />

long edges occur less <strong>of</strong>ten. For the RASP algorithm, the virtual peer is represented by the green host<strong>in</strong>g<br />

switch.<br />

1.00<br />

1.00<br />

Cummulative probability<br />

0.75<br />

0.50<br />

0.25<br />

0.00<br />

0 1 2 3 4 5<br />

Average overlay l<strong>in</strong>k lengths <strong>in</strong>side<br />

the ISP network<br />

0.75<br />

0.50<br />

0.25<br />

0.00<br />

0.0 0.2 0.4 0.6<br />

Average ratio <strong>of</strong> network border<br />

cross<strong>in</strong>g overlay l<strong>in</strong>ks<br />

Overlay algorithm: Random RASP Underlay−aware<br />

Figure 7.9.: The cumulative distribution functions <strong>of</strong> two characteristics <strong>of</strong> the three P2P video overlay tree algorithms.<br />

The average overlay l<strong>in</strong>k path lengths and the average ratio <strong>of</strong> overlay network l<strong>in</strong>ks cross<strong>in</strong>g the ISP<br />

network’s border are depicted <strong>in</strong> Figure 7.9. The Underlay-aware overlay algorithm improves the overlay<br />

network with respect <strong>to</strong> the overlay l<strong>in</strong>k length compared <strong>to</strong> the Random algorithm. The average edge<br />

length <strong>in</strong>side the ISP network is reduced by a small amount and the spread <strong>in</strong> reduced. This behavior<br />

can be expla<strong>in</strong>ed by the nature <strong>of</strong> the network <strong>to</strong>pology. If no peer is available on the same access switch,<br />

other peers <strong>in</strong>side the ISP network are at least 5 hops away. The small reduction <strong>of</strong> the average means<br />

that peers connected <strong>to</strong> the same access switch are chosen more <strong>of</strong>ten than <strong>in</strong> the Random algorithm.<br />

The average path length <strong>of</strong> the RASP approach is zero for a third <strong>of</strong> the generated network <strong>to</strong>pologies.<br />

This is due <strong>to</strong> the RASP <strong>in</strong>stance be<strong>in</strong>g chosen as upstream neighbor by many peers <strong>in</strong> the ISP network;<br />

its distance <strong>to</strong> all other hosts <strong>in</strong> the network is def<strong>in</strong>ed as zero.<br />

The average ratio <strong>of</strong> overlay l<strong>in</strong>ks that cross the network boundary is nearly 50% for the Random approach,<br />

about 30% percent for the Underlay-aware and about 20% for the RASP approach. The spread<br />

is similar for the Underlay-aware and the Random algorithm, the spread <strong>of</strong> the RASP algorithm his significantly<br />

higher. Still, the Underlay-aware and RASP approaches yield a significant lower percentage <strong>of</strong><br />

network cross<strong>in</strong>g l<strong>in</strong>ks than the Random approach.<br />

The number <strong>of</strong> cross-border overlay l<strong>in</strong>ks is significantly reduced, as it is expected for underlay aware<br />

P2P LVS approaches. For the Underlay-aware approach, the average overlay l<strong>in</strong>k length is slightly re-<br />

80 7. Evaluation


duced. However, due <strong>to</strong> the characteristics <strong>of</strong> the <strong>to</strong>pology used for comparison, this is <strong>to</strong> be expected.<br />

Lastly, <strong>in</strong> the RASP approach, many peers <strong>in</strong> the ISP network use the RASP <strong>in</strong>stance as upstream neighbor,<br />

as it should be.<br />

7.2 Transmission Efficiency<br />

Different emulated P2P LVS overlay networks, one with and two without RASP <strong>in</strong>tegration, are used<br />

<strong>to</strong> analyze the effect <strong>of</strong> the RASP service on the transmission efficiency <strong>in</strong>side an ISP network. Furthermore,<br />

three network <strong>to</strong>pologies are used <strong>to</strong> analyze the <strong>in</strong>fluence <strong>of</strong> their different characteristics<br />

on the transmission efficiency. F<strong>in</strong>ally, the impact <strong>of</strong> the RASP service on the overlay path lengths is<br />

assessed. The pro<strong>to</strong>type and the emulated network described <strong>in</strong> Chapter 6 are used for emulat<strong>in</strong>g the<br />

system. The metrics used for this evaluation are discussed <strong>in</strong> Section 7.2.1 followed by the description<br />

<strong>of</strong> the implementation measurements <strong>in</strong> Section 7.2.2. The results <strong>of</strong> the measurements are presented <strong>in</strong><br />

Section 7.2.3.<br />

7.2.1 Metrics<br />

The RASP service should improve the efficiency <strong>of</strong> the P2P video stream transport <strong>in</strong> an ISP network.<br />

From the po<strong>in</strong>t <strong>of</strong> view an ISP, the transport efficiency <strong>of</strong> a system can be measured by the data volume<br />

that is send through its network when the system is used. A dist<strong>in</strong>ction is made between the data volume<br />

that is transported with<strong>in</strong> the ISP network and the volume that is exchanged with neighbor<strong>in</strong>g networks.<br />

In addition <strong>to</strong> resource usage, the latter causes costs as described <strong>in</strong> Section 2.2. The data volume is<br />

<strong>in</strong>fluenced by the number <strong>of</strong> peers that reside <strong>in</strong>side the ISP network. For that reason, the transmitted<br />

volume <strong>in</strong>side the ISP network is divided by the peers resid<strong>in</strong>g there. This method shows the resource<br />

consumption for a P2P system for an ISP network with and without the RASP service. Furthermore, it<br />

allows <strong>to</strong> analyze the improvement per peer which is used for comparison with the costs per peer <strong>of</strong><br />

the system. A direct comparison <strong>of</strong> the data volume <strong>of</strong> different network sizes is not possible with this<br />

approach, because the size <strong>of</strong> the network <strong>in</strong>fluences the number <strong>of</strong> l<strong>in</strong>ks which the data is send over<br />

and hence the whole data volume.<br />

The set <strong>of</strong> all devices <strong>in</strong> the network is denoted by D. Nodes n ∈ N ⊆ D and peers p ∈ P ⊆ N are<br />

<strong>in</strong>dexed by their location, ISP or Internet. L<strong>in</strong>ks l ∈ L ⊆ D × D are considered bidirectional and can be<br />

denoted by the location <strong>of</strong> their adjacent nodes. Hence l<strong>in</strong>ks <strong>in</strong>side the ISP are denoted by L ISP , l<strong>in</strong>ks<br />

cross<strong>in</strong>g the network boundary by L ISP,Internet . The data volume send through the network is calculated<br />

by summ<strong>in</strong>g the data volume transmitted <strong>in</strong> both directions on each l<strong>in</strong>k v l ∈ V <strong>of</strong> the network: v ISP =<br />

∑<br />

l∈L ISP<br />

v l . The data volume that crosses the network boundary is the sum <strong>of</strong> the data volume transmitted<br />

<strong>in</strong> both directions <strong>of</strong> l<strong>in</strong>ks that cross it: v ISP,Internet = ∑ l∈L ISP,Internet<br />

v l . The equation for calculat<strong>in</strong>g the<br />

<strong>in</strong>tra-doma<strong>in</strong> data volume per peer (ivp) is shown <strong>in</strong> Equation 7.1, the one for calculat<strong>in</strong>g the network<br />

boundary cross<strong>in</strong>g data volume per peer (bvp) <strong>in</strong> Equation 7.2.<br />

Intra doma<strong>in</strong> data volume per peer: ivp(L, P, V ) =<br />

|P ISP |<br />

∑<br />

Network boundary cross<strong>in</strong>g data volume per peer: bvp(L, P, V ) =<br />

∑<br />

l∈L ISP<br />

v l<br />

l∈L ISP,Internet<br />

v l<br />

|P ISP |<br />

(7.1)<br />

(7.2)<br />

7.2. Transmission Efficiency 81


P2P networks are <strong>of</strong>ten evaluated by metrics like l<strong>in</strong>k stress [44, p. 6]. L<strong>in</strong>k stress is def<strong>in</strong>ed as the<br />

number <strong>of</strong> copies <strong>of</strong> the same packet that are transmitted over a l<strong>in</strong>k. Based on this metric other metrics<br />

such as resource usage, the sum <strong>of</strong> the l<strong>in</strong>k stress <strong>of</strong> active l<strong>in</strong>ks multiplied with its delay, are def<strong>in</strong>ed.<br />

However, these metrics aim at measur<strong>in</strong>g the properties <strong>of</strong> P2P systems. The metrics are less relevant<br />

from the po<strong>in</strong>t <strong>of</strong> view <strong>of</strong> an ISP.<br />

To assess the impact <strong>of</strong> the RASP service on the latency <strong>of</strong> the video delivery, the differences <strong>in</strong> the<br />

overlay l<strong>in</strong>k lengths with and without us<strong>in</strong>g the service are <strong>in</strong>vestigated. The ratio <strong>of</strong> overlay connection<br />

path lengths and direct unicast path lengths is called l<strong>in</strong>k stretch [14]; <strong>of</strong>ten the paths latency is used as<br />

measure for the l<strong>in</strong>k lengths. Here, the lengths <strong>of</strong> P2P LVS connection paths <strong>in</strong> the respective network<br />

<strong>to</strong>pology are compared with the correspond<strong>in</strong>g direct unicast connection path. The forward<strong>in</strong>g <strong>in</strong>side the<br />

ISP network is done by the same OpenFlow switches for all traffic. Therefore, except for other network<br />

traffic, the length is the only fac<strong>to</strong>r that <strong>in</strong>fluences the latency <strong>of</strong> a network path. The relevant paths<br />

are the ones from the video source <strong>to</strong> the peers that consume the video. A l<strong>in</strong>k l a,b ∈ L from node<br />

a ∈ D <strong>to</strong> node b ∈ D has length len(l a,b ). A network path, or route, from device a <strong>to</strong> b is a set <strong>of</strong> l<strong>in</strong>ks<br />

r a,b ⊂ R ⊆ L. Overlay connections o ps ,p ∈ O ⊆ 2 R with p s , p ∈ P are a set <strong>of</strong> overlay l<strong>in</strong>ks, represented<br />

by routes r a,b ∈ o ps ,p, that connect a peer <strong>to</strong> the source peer p s <strong>of</strong> the video stream o ps ,p ⊆ R. The l<strong>in</strong>k<br />

stretch for the video stream delivery is def<strong>in</strong>ed <strong>in</strong> Equation 7.3.<br />

∑ ∑<br />

r∈o p s,p l∈r len(l)<br />

L<strong>in</strong>k stretch : ls(L, P, O) = ∑l∈r len(l) (7.3)<br />

p s,p<br />

7.2.2 Implementation<br />

An overview <strong>of</strong> the different parts <strong>of</strong> the emulated system as well as the methods and <strong>to</strong>ols for implement<strong>in</strong>g<br />

them is given <strong>in</strong> Table 7.1. The system relies on the network emulation and pro<strong>to</strong>type described<br />

<strong>in</strong> Chapter 6. For other parts, such as the emulated P2P LVS system, cus<strong>to</strong>m Python programs are used<br />

that run on the emulated M<strong>in</strong><strong>in</strong>et hosts.<br />

System/Component Method Tools<br />

P2P LVS system Emulation Python program/M<strong>in</strong><strong>in</strong>et control/VLC video stream<strong>in</strong>g<br />

Forward<strong>in</strong>g/Rout<strong>in</strong>g Pro<strong>to</strong>type/Emulation RASP pro<strong>to</strong>type, M<strong>in</strong><strong>in</strong>et/Ryu program<br />

Network Emulation M<strong>in</strong><strong>in</strong>et<br />

Table 7.1.: Overview <strong>of</strong> the methods and <strong>to</strong>ols used for evaluation.<br />

For each <strong>of</strong> the three network <strong>to</strong>pologies (DT Hosts, DT Core, DT Tree), three overlay algorithms<br />

(Random, Underlay-aware, RASP) are used <strong>to</strong> generate 30 different overlay <strong>to</strong>pologies. The comb<strong>in</strong>ation<br />

<strong>of</strong> a network <strong>to</strong>pology and one overlay network generated by an overlay algorithm constitutes an<br />

iteration <strong>of</strong> the experiment. For each iteration, the values <strong>of</strong> the relevant measures are saved for analysis.<br />

80% <strong>of</strong> the available hosts are selected randomly for use as peers <strong>to</strong> mimic a realistic distribution<br />

<strong>of</strong> peers <strong>in</strong> the network. In each iteration, first the hosts for use as peers are selected. Then the overlay<br />

algorithm is applied <strong>to</strong> generate a <strong>to</strong>pology. The M<strong>in</strong><strong>in</strong>et network emula<strong>to</strong>r is started and basic sett<strong>in</strong>gs<br />

are applied <strong>to</strong> the OpenFlow switches as well as the hosts <strong>to</strong> enable normal network communications.<br />

If the RASP overlay algorithm is used, the RASP service is configured. A RASP <strong>in</strong>stance is added and all<br />

82 7. Evaluation


peers as def<strong>in</strong>ed by the overlay network <strong>to</strong>pology. Then, on each selected host, a program emulat<strong>in</strong>g a<br />

P2P LVS peer is started and configured accord<strong>in</strong>g <strong>to</strong> the overlay network <strong>to</strong>pology. After wait<strong>in</strong>g 15s, the<br />

byte counter is <strong>in</strong>itialized for measurement <strong>of</strong> the traffic volume. The wait<strong>in</strong>g period is added because<br />

the emulation startup causes a high CPU usage for some seconds, <strong>in</strong> which the forward<strong>in</strong>g does not work<br />

reliably. Then, the traffic volume is measured for 60 seconds. After that, the network is <strong>to</strong>rn down and<br />

the next iteration beg<strong>in</strong>s.<br />

The measurement <strong>of</strong> the data volume is implemented by read<strong>in</strong>g the byte counters <strong>of</strong> the used <strong>in</strong>terfaces<br />

before and after the experiment. The <strong>in</strong>terface names maps the node and network port names <strong>in</strong><br />

the network <strong>to</strong>pology. By comb<strong>in</strong><strong>in</strong>g the <strong>in</strong>formation, the traffic volume transferred on each l<strong>in</strong>k <strong>in</strong> the<br />

network dur<strong>in</strong>g the 60 seconds <strong>of</strong> operation is calculated.<br />

The computer system used for evaluation is a XEN 5 based virtual mach<strong>in</strong>e (VM). Two Intel XEON E5-<br />

1410 cores with 2,8Ghz and 8 Gbyte Memory are allocated <strong>to</strong> the VM. For process<strong>in</strong>g and analysis <strong>of</strong> the<br />

measured data, a cus<strong>to</strong>m Python program is used. The graphs are created with ggplot2 [114], based on<br />

preprocess<strong>in</strong>g <strong>in</strong> R [94].<br />

7.2.3 Results<br />

The results <strong>of</strong> the measurements are described <strong>in</strong> this section. 30 iterations <strong>of</strong> the experiments are conducted<br />

for each comb<strong>in</strong>ation <strong>of</strong> the network <strong>to</strong>pologies and the overlay network algorithms. The traffic<br />

volume per peer <strong>in</strong> the ISP network for each network <strong>to</strong>pology is shown <strong>in</strong> Figure 7.10a. Box plots are<br />

used for depict<strong>in</strong>g the mean, the confidence <strong>in</strong>terval and the standard deviation. The mean is denoted<br />

by the thick horizontal bar <strong>in</strong> the middle, the box denotes the 95% confidence <strong>in</strong>terval, and the standard<br />

deviation is depicted by the whiskers. The colored dots denote the measurements, one per iteration <strong>of</strong><br />

the experiment. They give an improved impression on the spread <strong>of</strong> the values as well as the m<strong>in</strong>ima<br />

and maxima. For summariz<strong>in</strong>g the metrics, the mean value is used because the RASP system’s use case is<br />

a deployment over time period. For the evaluation <strong>of</strong> the efficiency <strong>of</strong> the system, the <strong>to</strong>tal sum <strong>of</strong> traffic<br />

volume is relevant for the ISP. Hence, the appropriate measure is the mean traffic volume [95, p. 185].<br />

In Figure 7.10a the order <strong>of</strong> the volume per peer is the same for all network <strong>to</strong>pologies. Unsurpris<strong>in</strong>gly<br />

the Random overlay algorithms generates the highest volume, nearly the same amount is generated by<br />

the Underlay-aware algorithm while the RASP algorithm generates significant less traffic volume. The<br />

small differences between the two overlay algorithms that do not use the RASP system <strong>in</strong>dicate that<br />

the differences <strong>in</strong> the <strong>to</strong>tal sum <strong>of</strong> overlay path lengths <strong>in</strong> small. The amount <strong>of</strong> traffic volume per peer<br />

differs slightly between the DT Hosts and the DT Core <strong>to</strong>pologies. The volume is about 20% higher for all<br />

overlay algorithms for the DT Depths <strong>to</strong>pology.<br />

The average traffic volume generated by transferr<strong>in</strong>g the video stream over a network l<strong>in</strong>k is 60s ∗<br />

150KBit/s = 60s ∗ 18.75KByte/s = 1125KByte = 1.125MByte. The RASP algorithm uses per peer on<br />

average about three times the traffic volume a s<strong>in</strong>gle video stream generates over one l<strong>in</strong>k dur<strong>in</strong>g the<br />

same time for deliver<strong>in</strong>g the video throughout the ISP network. Runn<strong>in</strong>g on the DT Hosts <strong>to</strong>pology<br />

the RASP algorithm uses a little less traffic volume, on the DT Depths it uses a little more. Hence, for<br />

deliver<strong>in</strong>g the video stream, it uses the traffic volume equivalent <strong>of</strong> an average <strong>of</strong> 3 l<strong>in</strong>ks per peer. The<br />

other two overlay algorithms use at least 4 times the traffic volume <strong>of</strong> the video stream generated per<br />

l<strong>in</strong>k.<br />

The cumulative distribution functions <strong>of</strong> the traffic volumes per peer are depicted <strong>in</strong> Figure 7.10b. The<br />

variation is similar for all overlay algorithms. It <strong>in</strong>creases with the size <strong>of</strong> the <strong>to</strong>pologies. The smallest<br />

5<br />

http://www.xen.org/ [Accessed 21.04.2013]<br />

7.2. Transmission Efficiency 83


DT Hosts DT Core DT Depths<br />

1.00<br />

Intra−ISP network traffic volume per peer [Mbyte]<br />

7.5<br />

5<br />

2.5<br />

0<br />

Cummulative probability<br />

0.75<br />

0.50<br />

0.25<br />

0.00<br />

0 2.5 5 7.5<br />

Intra−ISP network traffic volume per peer [Mbyte]<br />

Overlay algorithm:<br />

Random<br />

Underlay−aware<br />

RASP<br />

Overlay algorithm:<br />

●<br />

●<br />

Random<br />

Underlay−aware<br />

●<br />

RASP<br />

Topology: DT Hosts DT Core DT Depths<br />

(a) Boxplot with mean, confidence <strong>in</strong>terval, and standard deviation.<br />

(b) Distributions <strong>of</strong> all <strong>to</strong>pologies and overlay algorithms.<br />

Figure 7.10.: The <strong>in</strong>tra ISP data volume per peer for each <strong>to</strong>pology and overlay network algorithm.<br />

variation exhibits DT Hosts with 13 switches <strong>in</strong> the ISP network. It is slightly bigger for DT Core, whose<br />

ISP part consists <strong>of</strong> 22 switches. DT Depths features the largest variation and its ISP network consists <strong>of</strong><br />

28 switches.<br />

For assess<strong>in</strong>g the <strong>in</strong>fluence <strong>of</strong> the network <strong>to</strong>pology on the efficiency <strong>of</strong> the RASP service, a different<br />

representation is helpful. In Figure 7.11 the <strong>in</strong>tra ISP traffic volume is normalized by the mean value <strong>of</strong><br />

the overlay algorithm that uses the highest average traffic volume. This representation shows the ratio<br />

between the algorithm with highest traffic volume, Random, and the other approaches. The mean traffic<br />

volume per peer <strong>of</strong> the Underlay-aware approach is about 10% smaller <strong>in</strong> the DT Hosts <strong>to</strong>pology, and<br />

about 5% smaller <strong>in</strong> the other two <strong>to</strong>pologies than the Random algorithm. The mean traffic volume ratio<br />

<strong>of</strong> the RASP overlay algorithm is about 40% smaller than the Random algorithm <strong>in</strong> all cases. In the DT<br />

Hosts and the DT Depths <strong>to</strong>pologies the mean is less and the ratio larger. However, there is no statistical<br />

significant difference between the mean traffic volume ratio <strong>of</strong> the RASP algorithm <strong>in</strong> the DT Hosts and<br />

DT Depths <strong>to</strong>pologies. The same is true for DT Depths and DT Core, only the difference between DT Core<br />

and DT Hosts is statistically significant. The t-test statistics are listed <strong>in</strong> Section A.1. It can be concluded<br />

that the different <strong>to</strong>pologies used for this evaluation do not <strong>in</strong>fluence the efficiency <strong>of</strong> the RASP overlay<br />

algorithm statistically significant compared <strong>to</strong> the alternatives.<br />

The traffic volume cross<strong>in</strong>g the ISP network border is relevant due <strong>to</strong> its costs. While it is not the goal<br />

<strong>of</strong> the RASP service <strong>to</strong> reduce this type <strong>of</strong> network traffic, it should not <strong>in</strong>crease it either. In Figure 7.12<br />

the traffic volume per peer cross<strong>in</strong>g the network border is depicted. The rasp overlay algorithm’s average<br />

traffic volume is not generally smaller than that <strong>of</strong> the Underlay-aware algorithm. The difference between<br />

both overlay algorithms <strong>in</strong> the <strong>to</strong>pologies DT Core and DT Depths is not statistically significant. However,<br />

the difference is significant <strong>in</strong> the DT Hosts <strong>to</strong>pology. For the t-test statistics refer <strong>to</strong> Section A.2<br />

84 7. Evaluation


DT Hosts DT Core DT Depths<br />

Normalized <strong>in</strong>tra−ISP data volume per peer<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.0<br />

Overlay algorithm: ● Random ● Underlay−aware ● RASP<br />

Figure 7.11.: The <strong>in</strong>tra ISP data volume per peer for each <strong>to</strong>pology and overlay network algorithm normalized by<br />

the mean <strong>of</strong> the Random overlay algorithm for each <strong>to</strong>pology.<br />

DT Hosts DT Core DT Depths<br />

<strong>Cross</strong>−border network traffic volume<br />

per peer [Mbyte]<br />

1.5<br />

1<br />

0.5<br />

0<br />

Overlay algorithm: ● Random ● Underlay−aware ● RASP<br />

Figure 7.12.: The cross-border data volume for each <strong>to</strong>pology and overlay network algorithm.<br />

The overlay algorithm that uses the RASP service requires 40% less traffic volume <strong>in</strong>side the ISP<br />

network compared <strong>to</strong> an underlay oblivious overlay network. About 30% less traffic volume <strong>in</strong>side the<br />

ISP network is required compared <strong>to</strong> an underlay aware overlay network. The <strong>to</strong>pologies used <strong>in</strong> this<br />

7.2. Transmission Efficiency 85


evaluation do not <strong>in</strong>fluence this ratio significantly. The cross-border traffic does not decrease significantly<br />

when us<strong>in</strong>g the RASP service compared <strong>to</strong> an underlay oblivious overlay network. Both, the Underlayaware<br />

and the RASP overlay algorithms use about 30% less cross-border traffic volume than the Random<br />

overlay algorithm.<br />

The l<strong>in</strong>k stretch for the three <strong>to</strong>pologies and overlay algorithms is depicted <strong>in</strong> Figure 7.13. The mean<br />

l<strong>in</strong>k stretch <strong>of</strong> the Random overlay algorithm is the highest, between 2.3 − 2.4 <strong>in</strong> the three <strong>to</strong>pologies.<br />

The Underlay-aware algorithm has a slightly smaller mean, between 2.2 − 2.3. The mean <strong>of</strong> the RASP<br />

algorithm is noticeably smaller at 1.9. The confidence <strong>in</strong>tervals <strong>in</strong> Figure 7.13a are <strong>to</strong>o small <strong>to</strong> be<br />

dist<strong>in</strong>guish them from the mean bar. For all overlay algorithms, the values are very similar for the three<br />

network <strong>to</strong>pologies, which is observable <strong>in</strong> Figure 7.13b.<br />

The l<strong>in</strong>k stretch metric used <strong>in</strong> this thesis is based on the l<strong>in</strong>k lengths, not on measured latencies. Nevertheless,<br />

the results <strong>of</strong> the l<strong>in</strong>k stretch analysis support the assumption that the transmission latencies<br />

are not <strong>in</strong>crease by us<strong>in</strong>g the RASP service; <strong>in</strong> the contrary they are slightly smaller.<br />

DT Hosts DT Core DT Depths<br />

1.00<br />

L<strong>in</strong>k stretch<br />

4<br />

3<br />

2<br />

Cummulative probability<br />

0.75<br />

0.50<br />

0.25<br />

1<br />

0.00<br />

0 1 2 3 4 5<br />

L<strong>in</strong>k stretch<br />

0<br />

Overlay algorithm:<br />

Random<br />

Underlay−aware<br />

RASP<br />

Overlay algorithm:<br />

●<br />

●<br />

Random<br />

Underlay−aware<br />

●<br />

RASP<br />

Topology: DT Hosts DT Core DT Depths<br />

(a) Boxplot with mean, confidence <strong>in</strong>terval, and standard deviation.<br />

(b) Distributions <strong>of</strong> all <strong>to</strong>pologies and overlay algorithms.<br />

Figure 7.13.: The l<strong>in</strong>k stretch for each <strong>to</strong>pology and overlay.<br />

7.3 System Costs<br />

The evaluation showed that us<strong>in</strong>g the RASP system improves the efficiency <strong>of</strong> video stream distribution<br />

<strong>in</strong> an ISP network. However, the systems usage also consumes resources dur<strong>in</strong>g operation, which constitute<br />

operat<strong>in</strong>g costs. Two aspects <strong>of</strong> costs caused by the system are identified: OpenFlow rules and<br />

management overhead. OpenFlow rules represent the state <strong>in</strong>formation that is required <strong>to</strong> be kept <strong>in</strong><br />

the network dur<strong>in</strong>g operation. As described <strong>in</strong> Section 2.3.2, the number <strong>of</strong> available OpenFlow rules<br />

is restricted. Therefore, the number <strong>of</strong> rules is relevant when consider<strong>in</strong>g the systems advantages and<br />

86 7. Evaluation


disadvantages. The messages exchanged for management <strong>of</strong> the RASP system by the super peer is called<br />

management overhead. The RASP system architecture is shown <strong>in</strong> Figure 7.14. Messages are exchanged<br />

between the super peer and the public service <strong>in</strong>terface, the public service <strong>in</strong>terface and the OpenFlow<br />

applications and between the OpenFlow applications and the OpenFlow switches. This is also the location<br />

where the OpenFlow rules are s<strong>to</strong>red dur<strong>in</strong>g operations. For this analysis, the pro<strong>to</strong>type is used<br />

for reference. However, as it lacks certa<strong>in</strong> features, at some po<strong>in</strong>ts the RASP concept is considered for<br />

complet<strong>in</strong>g the analysis. For each part <strong>of</strong> the system, the resources required for add<strong>in</strong>g an additional<br />

peer are described. This is an <strong>in</strong>dica<strong>to</strong>r on the scal<strong>in</strong>g properties <strong>of</strong> the system. The messages exchanged<br />

between the application <strong>layer</strong> and the control <strong>layer</strong> are a direct consequence <strong>of</strong> the behavior <strong>of</strong> either<br />

<strong>layer</strong>s. Therefore, their behavior is not analyzed further.<br />

Super <strong>Peer</strong><br />

Public Service API messages<br />

Application<br />

Layer<br />

RASP Service<br />

with public API<br />

OpenFlow Application API message<br />

Control<br />

Layer<br />

SDM<br />

Application<br />

Virtual <strong>Peer</strong><br />

Application<br />

OpenFlow messages<br />

Infrastructure<br />

Layer<br />

OpenFlow switches<br />

Number <strong>of</strong> OpenFlow rules <strong>in</strong> the network<br />

Figure 7.14.: The RASP system architecture with annotations on system cost related parts.<br />

The use <strong>of</strong> OpenFlow by the RASP service has two aspects. One is the number <strong>of</strong> OpenFlow rules<br />

that are used on the devices <strong>in</strong> the network. The other is the number <strong>of</strong> OpenFlow messages that are<br />

exchanges dur<strong>in</strong>g operation. Both aspects are closely related, as OpenFlow messages are used <strong>to</strong> <strong>in</strong>stall<br />

and remove rules. Due <strong>to</strong> the nature <strong>of</strong> the experiments conducted for this evaluation, measured data is<br />

only available on the setup <strong>of</strong> RASP <strong>in</strong>stances. Hence, only this aspect <strong>of</strong> the RASP services operation is<br />

measured and described. Other aspects are deducted from the available data.<br />

The number <strong>of</strong> OpenFlow rules required is described <strong>in</strong> Section 7.3.1, the number <strong>of</strong> OpenFlow management<br />

messages <strong>in</strong> Section 7.3.2. F<strong>in</strong>ally, the management overhead <strong>of</strong> the public API is described <strong>in</strong><br />

Section 7.3.3.<br />

7.3. System Costs 87


7.3.1 Number <strong>of</strong> Required OpenFlow Rules<br />

The OpenFlow rules are <strong>in</strong>stalled by the two OpenFlow applications used <strong>in</strong> the RASP system: the Virtual<br />

<strong>Peer</strong> application and the SDM application. Both are analyzed separately before summariz<strong>in</strong>g their results<br />

for an overview <strong>of</strong> the complete system. OpenFlow rules are a peer devices resource; each device has<br />

a predef<strong>in</strong>ed rule capacity. Hence, both the rule requirements per device and for the whole OpenFlow<br />

doma<strong>in</strong> are <strong>in</strong>vestigated. Measurement data on the number <strong>of</strong> OpenFlow messages used <strong>to</strong> <strong>in</strong>stall new<br />

OpenFlow rules dur<strong>in</strong>g the experiments is used <strong>to</strong> validate the results.<br />

The task <strong>of</strong> the virtual peer application is <strong>to</strong> manage the network <strong>layer</strong> proxy functionality <strong>of</strong> the RASP<br />

service. It uses a dedicated switch for this task, which is used by the SDM application <strong>to</strong>o. Each RASP<br />

<strong>in</strong>stance i ∈ I uses a switch for both applications, it is called <strong>in</strong>stance Switch (R i SWC ).<br />

For each RASP <strong>in</strong>stance, the Virtual <strong>Peer</strong> application uses one OpenFlow rule on the <strong>in</strong>stance switch<br />

<strong>to</strong> forward connection requests from peers addressed at a RASP <strong>in</strong>stance <strong>to</strong> the OpenFlow controller.<br />

For each peer p ∈ R i P<br />

that uses the <strong>in</strong>stance, two OpenFlow rules for NAT on the dedicated switch are<br />

required.<br />

Super <strong>Peer</strong><br />

SDM distribution tree root<br />

Potential<br />

distribution tree<br />

Distribution tree <strong>in</strong><br />

use<br />

SDM egress switches<br />

Per member<br />

rules<br />

ISP Cus<strong>to</strong>mers<br />

Stream<br />

members<br />

Figure 7.15.: Schema <strong>of</strong> the SDM distribution tree and the relevant parts for assess<strong>in</strong>g the number <strong>of</strong> used Open-<br />

Flow rules.<br />

The usage pattern <strong>of</strong> the OpenFlow network <strong>of</strong> the SDM application is more complex. Different parts<br />

<strong>of</strong> the network are used differently, as shown <strong>in</strong> Figure 7.15. For each video stream v ∈ R i V<br />

that is<br />

added <strong>to</strong> a RASP <strong>in</strong>stance, a SDM stream with an associated distribution tree is created. The distribution<br />

tree root is always the <strong>in</strong>stance switch, from which an arborescence <strong>of</strong> potential forward<strong>in</strong>g paths spans<br />

all SDM egress switches. For establish<strong>in</strong>g a SDM tree, a rule is <strong>in</strong>stalled on the <strong>in</strong>stance switch which<br />

captures <strong>in</strong>com<strong>in</strong>g video stream packets, denoted by the purple arrow <strong>to</strong> the tree root, which are sent<br />

by the super peer for SDM forward<strong>in</strong>g. For each member <strong>of</strong> a stream one OpenFlow rule is <strong>in</strong>stalled on<br />

its associated SDM egress switch, which writes the members dest<strong>in</strong>ation <strong>in</strong>formation <strong>to</strong> the packet. For<br />

each switch <strong>in</strong> the distribution tree that is on the path between a used egress switch and the tree root,<br />

one rule per stream is required. Each core switch <strong>of</strong> the network <strong>to</strong>pology model is a potential member<br />

<strong>of</strong> a SDM distribution tree. Each access switch <strong>in</strong> the model is an SDM egress switch because it is the<br />

88 7. Evaluation


last OpenFlow switch on the path <strong>to</strong> the connected hosts, that has the ability <strong>to</strong> modify the packets as<br />

required by SDM.<br />

Switches are denoted by s ∈ S ⊆ D, the switch type used as <strong>in</strong>dex specifies the type. For the analysis,<br />

it assumed that ∀ i∈I |R i p | ≫ |S access| ≫ |S core |, which is true for the scenario used <strong>in</strong> this evaluation, as<br />

described <strong>in</strong> Section 7.1. The scenario uses only one RASP <strong>in</strong>stance and one video stream. Furthermore,<br />

the SDM multicast tree spans all core switches, and at maximum one peer is used per host. The number<br />

<strong>of</strong> OpenFlow rules is analyzed for the general case and for the described scenario. For the scenario, the<br />

average number <strong>of</strong> rules is shown <strong>in</strong> Table 7.2. The rule numbers <strong>of</strong> the RASP <strong>in</strong>stance switch are exact;<br />

they do not change with different usage scenarios. The rules number for the core switches are <strong>in</strong>fluenced<br />

by the distribution <strong>of</strong> the peers <strong>in</strong> the network; hence, it is a statistical value. However, <strong>in</strong> the network<br />

<strong>to</strong>pologies used for this evaluation, it is unlikely that a core switch will not be part <strong>of</strong> the active SDM<br />

distribution tree. The same is true for access switches, given the random process used <strong>to</strong> select the hosts<br />

<strong>to</strong> run peers on, it should reflect the relationship described <strong>in</strong> the table.<br />

RASP <strong>in</strong>stance property<br />

Number <strong>of</strong> required OpenFlow rules per device<br />

RASP Instance Switch Core switch Access switch<br />

Number <strong>of</strong> <strong>in</strong>stances |I| |I| 0 0<br />

Number <strong>of</strong> peers ∑ i∈I |Ri P | 2 ∑ ∑<br />

i∈I |Ri P | 0 i∈I |Ri P |<br />

|S access |<br />

∑<br />

Number <strong>of</strong> streams ∑ i∈I |Ri V |<br />

Sum for all <strong>in</strong>stances, members, and peers<br />

∑<br />

i∈I<br />

i∈I |Ri V | ∑i∈I |Ri V | 0<br />

∑<br />

i∈I |Ri V |<br />

<br />

2|R<br />

i<br />

P | + |Ri V | + |I|<br />

∑<br />

i∈I |Ri P |<br />

|S access |<br />

Table 7.2.: Average number <strong>of</strong> OpenFlow rules per device class for the scenario used for evaluation.<br />

The rule number given for the RASP <strong>in</strong>stance switch <strong>in</strong> Table 7.2 is an exact value; the value for core<br />

switches is an upper bound. To get a complete picture <strong>of</strong> the upper bound, the rule numbers for the<br />

access switch are derived. The theoretical maximum number <strong>of</strong> rules for one access switch are <strong>in</strong>stalled,<br />

if all peers <strong>of</strong> the RASP service are connected <strong>to</strong> the same switch. Hence, the upper bound is ∑ i∈I |Ri P |.<br />

However, this value is assumed unrealistic <strong>in</strong> sufficiently large deployments.<br />

Based on the analysis for each device class, upper bounds for the number <strong>of</strong> OpenFlow rules for the<br />

whole OpenFlow doma<strong>in</strong> is given <strong>in</strong> Equation 7.4. The values for the RASP <strong>in</strong>stance switch are taken<br />

from Table 7.2. The number <strong>of</strong> rules for core switches already is an upper bound; hence, it is multiplied<br />

with the number <strong>of</strong> core switches. The <strong>to</strong>tal number <strong>of</strong> rules that are <strong>in</strong>stalled on access switches is the<br />

number <strong>of</strong> peers <strong>in</strong> the system.<br />

Max. number <strong>of</strong> rules: <strong>of</strong>r max (I, R I V , Ri P , S) =|I| + ∑<br />

i∈I<br />

<br />

3|R<br />

i<br />

P | + (|S core| + 1)|R I V | (7.4)<br />

Data from the evaluated scenario supports the results <strong>of</strong> Equation 7.4. The network experiment used<br />

for evaluation creates rules, but does not remove them. The pro<strong>to</strong>type implementation sends out one<br />

OpenFlow flow modification message per rule that is <strong>in</strong>stalled on the RASP <strong>in</strong>stance switch or access<br />

switches. For core switches, the first message <strong>to</strong> a specific core switch <strong>in</strong>stalls a new OpenFlow rule;<br />

additional messages modify the exist<strong>in</strong>g one. Hence, the number OpenFlow flow modification messages<br />

without duplicate messages <strong>to</strong> the same core switches equals the number <strong>of</strong> OpenFlow rules <strong>in</strong> the<br />

network. The numbers <strong>of</strong> these OpenFlow message that are send dur<strong>in</strong>g the experiments are depicted <strong>in</strong><br />

Figure 7.16.<br />

7.3. System Costs 89


Number <strong>of</strong> outgo<strong>in</strong>g Openflow<br />

flow modification messages<br />

that <strong>in</strong>stall new rules<br />

200<br />

150<br />

100<br />

50<br />

0<br />

● ●<br />

●<br />

● ● ●<br />

● ●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

30 40 50 60<br />

Number <strong>of</strong> RASP peers<br />

Topology: ● DT Hosts ● DT Core ● DT Depths<br />

Figure 7.16.: The number <strong>of</strong> OpenFlow flow modification messages that <strong>in</strong>stall new rules dur<strong>in</strong>g the network<br />

experiments.<br />

The black l<strong>in</strong>e denotes a l<strong>in</strong>ear regression model fitted <strong>to</strong> the data. Its confidence <strong>in</strong>terval is shown<br />

as a gray shaded band, but is <strong>to</strong>o small <strong>to</strong> be clearly visible. For comparison, the dotted l<strong>in</strong>e denotes<br />

Equation 7.4, the analytically derived upper bound for the number <strong>of</strong> OpenFlow rules <strong>in</strong> the network.<br />

For the number <strong>of</strong> core switches <strong>in</strong> Equation 7.4, the maximum value <strong>of</strong> the three <strong>to</strong>pologies is used,<br />

which is |S core | = 9 for DT Depths. The differences between the <strong>to</strong>pologies are consistent but small. DT<br />

Host requires the lowest number rules, DT Depths the most, and the rule number <strong>of</strong> DT Core is <strong>in</strong> between<br />

the two others. This order correlates with order <strong>of</strong> the number <strong>of</strong> switches <strong>in</strong> the respective ISP network<br />

parts, which is 13, 22, and 28 for DT Host, DT Core, and DT Depths. The slope <strong>of</strong> the l<strong>in</strong>ear model is 3.18<br />

and its <strong>in</strong>tercept is 0.11. The upper bound holds for the segment shown <strong>in</strong> Figure 7.16. However, the<br />

slope <strong>of</strong> the upper bound is 3, which means that it is not an upper bound for the l<strong>in</strong>ear model.<br />

The reason for that could be that the model derived from the experiments conducted <strong>in</strong> this evaluation<br />

is not precise enough due <strong>to</strong> its size. Still for the segment that is analyzed it shows that the upper bound<br />

holds. In addition, it shows that the scenario used for evaluation is near the upper bound for OpenFlow<br />

rule usage.<br />

The bounds for the number <strong>of</strong> rules required by the RASP derived <strong>in</strong> this section are relevant for the<br />

decision if an OpenFlow doma<strong>in</strong> can host the service. Furthermore, it could be used for admission control,<br />

<strong>to</strong> check whether enough resources are available for add<strong>in</strong>g an additional <strong>in</strong>stance, video stream, or peer.<br />

The most resources are required on the RASP <strong>in</strong>stance switch. However, a dedicated switch could be used,<br />

which eases the burden <strong>of</strong> <strong>in</strong>tegrat<strong>in</strong>g the resource requirements with other services and the moni<strong>to</strong>r<strong>in</strong>g<br />

<strong>of</strong> the resource usage. The requirement <strong>of</strong> an average <strong>of</strong> one rule per video stream on each core switch<br />

is more demand<strong>in</strong>g. Consider<strong>in</strong>g that the traffic millions <strong>of</strong> users could pass such a device, and many<br />

OpenFlow applications run on it, the resource requirements might be an issue for <strong>in</strong>tegration <strong>in</strong> a large<br />

network. However this is expected, the Explicit Multicast method for SDM, described <strong>in</strong> Section 5.3.4<br />

is designed as remedy for this, but could not be evaluated due <strong>to</strong> <strong>in</strong>compatible OpenFlow versions.<br />

On access switches, one rule is required for each user on any one <strong>of</strong> the access switches. The resource<br />

restrictions on access switches are expected <strong>to</strong> be lower, hence the requirement might be easier <strong>to</strong> justify<br />

than the one <strong>of</strong> the core switches.<br />

An upper bound can be given for add<strong>in</strong>g an additional peer <strong>to</strong> a RASP service <strong>in</strong>stance and one video<br />

stream. The additional required OpenFlow rules are fixed for the RASP <strong>in</strong>stance switch and the access<br />

90 7. Evaluation


switch. For the core switches, the maximum number <strong>of</strong> additional rules is one rule per switch on the path<br />

from egress switch <strong>of</strong> the peer <strong>to</strong> the host<strong>in</strong>g switch. Hence, the longest path from the RASP <strong>in</strong>stance<br />

switch <strong>to</strong> any egress switch max(dist(R SWC i, s)|s ∈ S egress ) is an upper bound for the number <strong>of</strong> additional<br />

core switch rules required. The bound is def<strong>in</strong>ed <strong>in</strong> Equation 7.5.<br />

Max. number additional rules per peer: <strong>of</strong>r max<br />

peer (Ri SWC , S) =3 + max(dist(Ri SWC , s)|s ∈ S egress)) (7.5)<br />

7.3.2 OpenFlow Messag<strong>in</strong>g Overhead<br />

The number <strong>of</strong> messages send dur<strong>in</strong>g the operation <strong>of</strong> the RASP service describes the load the system imposes<br />

on the OpenFlow network and its management facilities. The numbers <strong>of</strong> OpenFlow rules that are<br />

<strong>in</strong>stalled dur<strong>in</strong>g operation are a lower bound for the number <strong>of</strong> messages send. The reason for that is that<br />

each rule <strong>in</strong>stallation requires one OpenFlow flow modification message. Hence, the f<strong>in</strong>d<strong>in</strong>gs concern<strong>in</strong>g<br />

the number <strong>of</strong> OpenFlow rules described <strong>in</strong> Section 7.3.1 are valid for this section as well. However,<br />

more messages are exchanged, some <strong>of</strong> which do not depend on the OpenFlow applications used. These<br />

messages, such as periodic echo messages between the OpenFlow controller and the OpenFlow switches,<br />

are not relevant and hence not counted. In the next paragraphs, aspects <strong>of</strong> the OpenFlow applications<br />

are described where they send and receive OpenFlow messages other than for rule <strong>in</strong>stallation. The latter<br />

is described <strong>in</strong> Section 7.3.1.<br />

The operation <strong>of</strong> the Virtual <strong>Peer</strong> application relies on reactive <strong>in</strong>stallation <strong>of</strong> OpenFlow rules. When<br />

a hither<strong>to</strong> unknown peer contacts a virtual peer <strong>in</strong>stance, its switch forwards the packet wrapped <strong>in</strong> an<br />

OpenFlow message <strong>to</strong> the Virtual <strong>Peer</strong> application. The correspond<strong>in</strong>g OpenFlow message type is called<br />

a PacketIn. There, two OpenFlow flow modification messages are send for <strong>in</strong>stall<strong>in</strong>g the NAT rules. After<br />

that, the received packet is send back <strong>to</strong> the <strong>in</strong>stance switch, for putt<strong>in</strong>g it back on its path <strong>to</strong> the super<br />

peer. The correspond<strong>in</strong>g OpenFlow message type is called a PacketOut. Depend<strong>in</strong>g on the performance<br />

<strong>of</strong> the OpenFlow controller, the peer can send several packets <strong>to</strong> the virtual peer before the NAT rules<br />

are <strong>in</strong>stalled. This causes the repeated exchange <strong>of</strong> PacketIn and PacketOut messages.<br />

The operation <strong>of</strong> the SDM application relies on proactive OpenFlow rule <strong>in</strong>stallation. Hence, no packets<br />

are send from the <strong>in</strong>stance switch. However, dur<strong>in</strong>g operation multiple flow modification messages are<br />

send <strong>to</strong> the same core switch. Only one rule <strong>in</strong>stalled on the core switch. The flow modification messages<br />

are required <strong>to</strong> modify the exist<strong>in</strong>g rule for enlarg<strong>in</strong>g the distribution tree.<br />

These are the two sources <strong>of</strong> OpenFlow messages besides the <strong>in</strong>stallation <strong>of</strong> rules. Their impact on the<br />

<strong>to</strong>tal number <strong>of</strong> sent messages is depicted <strong>in</strong> Figure 7.17. In both figures, the black l<strong>in</strong>e denotes a l<strong>in</strong>ear<br />

regression model <strong>of</strong> the surround<strong>in</strong>g data po<strong>in</strong>ts. In the left diagram, the number <strong>of</strong> flow modification<br />

messages from one experiment are depicted as a green dot, the <strong>to</strong>tal numbers <strong>of</strong> OpenFlow messages<br />

from one experiment are depicted as a red dot. The number <strong>of</strong> flow modification messages send is stable<br />

and varies only slightly. While it shows all sent OpenFlow flow modification messages, Figure 7.16 only<br />

shows the ones that <strong>in</strong>stall a new rule, but not the ones that modify exist<strong>in</strong>g rules. The PacketIn and<br />

PacketOut messages show a much larger variability. The slope <strong>of</strong> the l<strong>in</strong>ear regression <strong>of</strong> the number <strong>of</strong><br />

all messages is 6.99. The slope <strong>of</strong> the regression model <strong>of</strong> the flow modification messages is 3.46. Hence,<br />

as shown <strong>in</strong> the right figure, the slope <strong>of</strong> the number <strong>of</strong> PacketIn and PacketOut messages is similar with<br />

3.53, albeit its confidence <strong>in</strong>terval is larger. For these messages, the network <strong>to</strong>pology does not seem <strong>to</strong><br />

have a clear <strong>in</strong>fluence on the number <strong>of</strong> messages send.<br />

7.3. System Costs 91


500<br />

500<br />

Number <strong>of</strong> OpenFlow messages<br />

400<br />

300<br />

200<br />

100<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ● ●<br />

●<br />

●<br />

● ● ● ●<br />

●<br />

● ●<br />

● ● ● ●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ●<br />

● ● ● ● ●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ●<br />

● ● ● ●<br />

●<br />

●<br />

● ● ●<br />

● ●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

●<br />

● ● ●<br />

● ●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

● ● ● ●<br />

●<br />

● ●<br />

●<br />

● ●<br />

● ●<br />

Number <strong>of</strong> PacketIn and PacketOut<br />

OpenFlow messages<br />

400<br />

300<br />

200<br />

100<br />

●<br />

●<br />

● ●<br />

●<br />

●<br />

● ● ● ●<br />

● ●<br />

● ● ●<br />

●<br />

●<br />

●<br />

●<br />

● ● ●<br />

●<br />

● ●<br />

●<br />

●<br />

●<br />

● ● ●<br />

●<br />

●<br />

●<br />

● ● ●<br />

●<br />

●<br />

● ● ● ● ● ●<br />

●<br />

●<br />

● ● ●<br />

● ● ● ● ●<br />

●<br />

● ●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

● ●<br />

0<br />

30 40 50 60<br />

Number <strong>of</strong> RASP peers<br />

0<br />

30 40 50 60<br />

Number <strong>of</strong> RASP peers<br />

Message types: ● all ●<br />

flow mod<br />

Topology: ● DT Hosts ● DT Core ● DT Depths<br />

Figure 7.17.: The number <strong>of</strong> OpenFlow message required for add<strong>in</strong>g peers <strong>to</strong> a RASP <strong>in</strong>stance.<br />

The upper bound <strong>of</strong> OpenFlow flow modification messages required <strong>to</strong> add a peer <strong>to</strong> the RASP <strong>in</strong>stance<br />

and one video stream, is identical <strong>to</strong> the upper bound for OpenFlow rules state <strong>in</strong> the last section <strong>in</strong><br />

Equation 7.5. However, an upper bound for the number <strong>of</strong> PacketIn and PacketOut messages cannot be<br />

stated. For the emulated network and setup <strong>in</strong> this evaluation, on average an additional 3.5 messages<br />

are sent. However, the setup used for this evaluation is very specific and likely not representative for<br />

larger systems with respect <strong>to</strong> its OpenFlow controller architecture and the OpenFlow switches used.<br />

7.3.3 API Management Overhead<br />

In this section, the management overhead for a super peer us<strong>in</strong>g the RASP API is described. The API<br />

management overhead adds <strong>to</strong> the data volume transferred by the super peer and <strong>in</strong>creases the load <strong>of</strong><br />

both sides <strong>of</strong> the communications channel.<br />

For creat<strong>in</strong>g an RASP <strong>in</strong>stance, the super peer sets up a connection <strong>to</strong> the public service API <strong>of</strong> the RASP<br />

system. Us<strong>in</strong>g the pro<strong>to</strong>type, this requires two messages, one request and one reply. In a real system,<br />

additional steps for authentication an authorization would be required. As this happens only once from<br />

the po<strong>in</strong>t <strong>of</strong> view <strong>of</strong> a super peer, its <strong>in</strong>fluence is small and thus is ignored <strong>in</strong> this analysis. Once a RASP<br />

<strong>in</strong>stance is created, video streams and peers can be added. Add<strong>in</strong>g a video stream requires that the super<br />

peer sends one message <strong>to</strong> the API, which replies one message. When a peer jo<strong>in</strong>s the overlay network<br />

through the RASP <strong>in</strong>stance, no messag<strong>in</strong>g is required when us<strong>in</strong>g the pro<strong>to</strong>type implementation. For<br />

a complete implementation <strong>of</strong> the system, one message for confirm<strong>in</strong>g the peer’s connection through<br />

the RASP <strong>in</strong>stance has <strong>to</strong> be sent <strong>to</strong> the API. The same is true when a peer leaves or a video stream is<br />

removed. In both cases, one message is send <strong>to</strong>, and one message replied by the API.<br />

The exact number <strong>of</strong> messages exchanged with the API required for add<strong>in</strong>g one peer <strong>to</strong> an <strong>in</strong>stance<br />

and a video stream <strong>in</strong> the pro<strong>to</strong>type is two messages. For a system follow<strong>in</strong>g the RASP concept, two<br />

additional API messages are transmitted.<br />

92 7. Evaluation


7.4 Conclusion<br />

The evaluation showed that us<strong>in</strong>g a RASP service lowers the transmitted data volume by 40% compared<br />

<strong>to</strong> us<strong>in</strong>g an underlay oblivious P2P LVS system, and by 30% compared <strong>to</strong> an underlay-aware system. The<br />

three different network <strong>to</strong>pologies analyzed do not <strong>in</strong>fluence the transmitted data volume significantly.<br />

The data volume cross<strong>in</strong>g the ISP network’s border is not <strong>in</strong>creased compared <strong>to</strong> underlay aware systems.<br />

The same is true for the l<strong>in</strong>k stretch when us<strong>in</strong>g a RASP <strong>in</strong>stance: <strong>in</strong> the presented evaluation, it did not<br />

<strong>in</strong>crease, neither compared <strong>to</strong> underlay-oblivious nor -aware P2P LVS systems.<br />

With respect <strong>to</strong> the required number <strong>of</strong> OpenFlow rules, the system showed l<strong>in</strong>ear scal<strong>in</strong>g. At maximum<br />

3 + max(dist(R i SWC , s)|s ∈ S egress)) <strong>of</strong> additional OpenFlow rules are required for add<strong>in</strong>g one peer <strong>to</strong> an<br />

exist<strong>in</strong>g RASP <strong>in</strong>stance and video stream. This equation is supported by measurements made dur<strong>in</strong>g the<br />

evaluation. The process causes at maximum the same number <strong>of</strong> OpenFlow flow modification messages<br />

and a number <strong>of</strong> OpenFlow PacketIn and PacketOut messages. The latter depends on the system setup<br />

and performance. In addition <strong>to</strong> that, two API messages are sent for add<strong>in</strong>g a peer or a stream. The<br />

messag<strong>in</strong>g overhead for the super peer is very low, two <strong>to</strong> four transferred message calls cause negligible<br />

network traffic. The load imposed on the OpenFlow network and its management system is higher. S<strong>in</strong>ce<br />

there are no such systems known for reference, the numbers cannot be validated for their applicability.<br />

For deployment <strong>of</strong> the system, is it important <strong>to</strong> know its limitations and potential bottlenecks. The<br />

maximum number <strong>of</strong> peers supported by one RASP <strong>in</strong>stance is 64, 511, as described <strong>in</strong> Section 5.3.2. The<br />

maximum number <strong>of</strong> peers supported by an OpenFlow doma<strong>in</strong> is restricted by the number <strong>of</strong> available<br />

RASP <strong>in</strong>stance switches and the rule capacities <strong>of</strong> the access switches. For support<strong>in</strong>g 64, 511 peers, one<br />

RASP <strong>in</strong>stance switch has <strong>to</strong> use 129, 022 rules, and all the access switches <strong>in</strong> the network have <strong>to</strong> support<br />

64, 511 rules <strong>to</strong>gether. The RASP <strong>in</strong>stance switches are likely <strong>to</strong> become the bottleneck <strong>of</strong> the system,<br />

because <strong>of</strong> their vital role and the resource requirements <strong>of</strong> the RASP service. However, these switches<br />

are expected <strong>to</strong> be dedicated <strong>to</strong> their specific role, hence their resource usage can be moni<strong>to</strong>red and their<br />

rule load can be adapted accord<strong>in</strong>gly. The resource requirements for the core and access switches are<br />

clearly stated. Hence, the requirements for <strong>in</strong>tegration <strong>in</strong><strong>to</strong> other services are met.<br />

7.4. Conclusion 93


8 Conclusion and Future Work<br />

Internet video stream<strong>in</strong>g is responsible for a grow<strong>in</strong>g part <strong>of</strong> the <strong>in</strong>ternet traffic. P2P systems are one<br />

delivery method for live video stream<strong>in</strong>g. Their use is beneficial for its users and opera<strong>to</strong>rs, because no<br />

<strong>in</strong>frastructure is required for operation. However, <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong> (P2P LVS) puts a<br />

burden on ISPs because <strong>of</strong> its hard <strong>to</strong> control, unpredictable, and unfavorable traffic patterns. In this<br />

work, the Rent-a-Super <strong>Peer</strong> (RASP) service is <strong>in</strong>troduced <strong>to</strong> improve the situation <strong>of</strong> ISPs by giv<strong>in</strong>g<br />

them the opportunity <strong>to</strong> <strong>of</strong>fer a generic network <strong>layer</strong> service for efficient distribution <strong>of</strong> P2P video<br />

streams. The service is designed <strong>to</strong> be deployed by residential broadband ISPs, whose cus<strong>to</strong>mers are<br />

the ma<strong>in</strong> users <strong>of</strong> P2P LVS. The RASP service provides s<strong>in</strong>gle peers <strong>of</strong> P2P LVS systems on-demand<br />

additional upstream capacity with<strong>in</strong> the ISP’s network. Its generic cross-<strong>layer</strong> approach should allow<br />

easy <strong>in</strong>tegration <strong>in</strong><strong>to</strong> different P2P LVS systems. In exchange for provid<strong>in</strong>g the service, the ISPs get full<br />

control <strong>of</strong> the P2P traffic and benefit from a reduction <strong>of</strong> the traffic volume because <strong>of</strong> the improved<br />

transmission efficiency. The RASP service is enabled by the recently <strong>in</strong>troduced SDN variant OpenFlow.<br />

Its adoption <strong>in</strong> ISP networks is well possible <strong>in</strong> the near future ow<strong>in</strong>g <strong>to</strong> its grow<strong>in</strong>g market acceptance<br />

and available hardware.<br />

In Chapter 4 the requirements for this k<strong>in</strong>d <strong>of</strong> service are described. The design <strong>of</strong> the RASP service<br />

is discussed <strong>in</strong> Chapter 5. Its component based approach def<strong>in</strong>es a service controller component as well<br />

as two functional OpenFlow components, a network <strong>layer</strong> proxy called Virtual <strong>Peer</strong> and a network <strong>layer</strong><br />

multicast component called SDM. The first provides the user <strong>of</strong> a P2P LVS system with a virtual presence<br />

with<strong>in</strong> the ISP network; the latter provides efficient multicast transmission us<strong>in</strong>g IP unicast addresses. A<br />

multicast distribution mechanism based on the Explicit Multicast concept [43] for the SDM component<br />

is described. It exhibits improved scal<strong>in</strong>g properties compared <strong>to</strong> the default multicast mechanism used<br />

by SDM.<br />

A pro<strong>to</strong>typical implementation <strong>of</strong> selected features <strong>of</strong> the RASP systems is described <strong>in</strong> Chapter 6.<br />

Based on the requirements for an evaluation <strong>of</strong> fundamental system properties, the two functional components,<br />

and the service controller component are implemented. The Ryu OpenFlow controller s<strong>of</strong>tware<br />

is used as base for the implementation <strong>of</strong> the components. Reasons for its use are its easy <strong>in</strong>tegration<br />

with M<strong>in</strong><strong>in</strong>et and its flexibility regard<strong>in</strong>g the use <strong>of</strong> different OpenFlow versions. The architectural approach<br />

on design<strong>in</strong>g the RASP OpenFlow applications is described. A cus<strong>to</strong>m emulation environment<br />

for test<strong>in</strong>g emulated P2P LVS systems <strong>in</strong> different <strong>to</strong>pologies is designed and implemented based on the<br />

network emula<strong>to</strong>r M<strong>in</strong><strong>in</strong>et. The Open vSwitch OpenFlow version 1.0 s<strong>of</strong>tware switch is selected for use<br />

with the network emulation for its performance. An assessment <strong>of</strong> the performance <strong>of</strong> available Open-<br />

Flow s<strong>of</strong>tware switches reveals that it is the only viable alternative. The Explicit Multicast concept is not<br />

implemented due <strong>to</strong> its requirement for OpenFlow version 1.2, which is not met by Open vSwitch.<br />

The objectives for the evaluation <strong>of</strong> the RASP service, <strong>in</strong>troduced <strong>in</strong> Chapter 7, are <strong>to</strong> compare the<br />

transmission efficiency <strong>of</strong> P2P LVS system with and without us<strong>in</strong>g the service <strong>in</strong> different network<br />

<strong>to</strong>pologies as well as analyz<strong>in</strong>g its resource requirements and management overhead. The relevant characteristics<br />

<strong>of</strong> ISP networks and their <strong>to</strong>pologies are described tak<strong>in</strong>g the current research <strong>in</strong><strong>to</strong> account<br />

as well as the literature on deployed technologies. Aga<strong>in</strong>st this background, three different network<br />

<strong>to</strong>pologies based on the core network <strong>to</strong>pology model <strong>of</strong> Deutsche Telekom are selected <strong>to</strong> assess the<br />

<strong>in</strong>fluence <strong>of</strong> the network <strong>to</strong>pology on the efficiency <strong>of</strong> RASP service. Three different P2P LVS overlay<br />

95


<strong>to</strong>pology genera<strong>to</strong>rs are created for evaluation. The first approach represents underlay-oblivious overlay,<br />

the second represents underlay-aware overlay networks. The third overlay network genera<strong>to</strong>r is also<br />

underlay-aware, but <strong>in</strong>tegrates the RASP service. Their conformance <strong>to</strong> the expected characteristics <strong>of</strong><br />

their respective represented overlay network <strong>to</strong>pologies is assessed by evaluat<strong>in</strong>g the properties <strong>of</strong> their<br />

generated <strong>to</strong>pologies. The emulated networks consist <strong>of</strong> 19, 28, and 34 OpenFlow switches. On average,<br />

the emulated P2P LVS overlay networks consist <strong>of</strong> 144 peers.<br />

The evaluation results show a significant improvement <strong>in</strong> the average transmission efficiency <strong>of</strong> P2P<br />

LVS systems us<strong>in</strong>g overlay networks that <strong>in</strong>tegrate the RASP service over overlay networks that do not<br />

<strong>in</strong>tegrate the service. Compared <strong>to</strong> random overlay network <strong>to</strong>pologies, underlay aware overlay <strong>to</strong>pologies<br />

with RASP service <strong>in</strong>tegration reduce the traffic volume by 40%. A reduction <strong>of</strong> 30% is achieved<br />

when compar<strong>in</strong>g underlay-aware overlay <strong>to</strong>pologies with and without the use <strong>of</strong> the RASP service. The<br />

<strong>in</strong>vestigated network <strong>to</strong>pologies do not significantly <strong>in</strong>fluence the transmission efficiency <strong>of</strong> the service.<br />

Other characteristics <strong>of</strong> the overlay networks do not deteriorate when us<strong>in</strong>g the RASP service. The traffic<br />

volume cross<strong>in</strong>g the network border as well as the l<strong>in</strong>k stretch does not <strong>in</strong>crease with the use <strong>of</strong> the RASP<br />

service. It is even slightly lower than with the comparable underlay-aware overlay <strong>to</strong>pologies.<br />

The resource requirements and management overhead <strong>of</strong> the RASP service are analyzed by us<strong>in</strong>g measured<br />

data and giv<strong>in</strong>g analytically derived upper bounds. The service imposes a very small management<br />

overhead for peers us<strong>in</strong>g it. The resource requirements on the ISP’ management system are higher but<br />

well def<strong>in</strong>ed. The system relies on dedicated OpenFlow switches for the core <strong>of</strong> its operation. The resource<br />

demand for the rest ISP network is lower. It is well def<strong>in</strong>ed and upper bounds are given, which<br />

is expected <strong>to</strong> allow easy <strong>in</strong>tegration <strong>in</strong><strong>to</strong> OpenFlow-based ISP networks. The RASP service achieves its<br />

objectives without rely<strong>in</strong>g on IP multicast or other specialized network pro<strong>to</strong>cols. Integration <strong>in</strong><strong>to</strong> a wide<br />

range <strong>of</strong> different network management regimes is possible because <strong>of</strong> the flexibility <strong>of</strong> multicast forward<strong>in</strong>g<br />

mechanism. One reason for this is that it is compatible with different network pro<strong>to</strong>cols such as<br />

MPLS that are used for forward<strong>in</strong>g or encapsulation.<br />

8.1 Future Work on the RASP Implementation and Integration <strong>in</strong><strong>to</strong> P2P LVS Systems<br />

The pro<strong>to</strong>type <strong>in</strong> this work is implemented with OpenFlow 1.0 because no adequate OpenFlow 1.2<br />

s<strong>of</strong>tware or hardware switch is available <strong>to</strong> the author. This restriction is the reason why the Explicit<br />

Multicast subcomponent <strong>of</strong> SDM could not be evaluated. An implementation and evaluation is required<br />

<strong>to</strong> verify if this approach scales better than the available pro<strong>to</strong>type.<br />

This evaluation <strong>in</strong> this work provides details on the resource consumption <strong>of</strong> the RASP service. For<br />

evaluat<strong>in</strong>g the impact <strong>of</strong> these resource requirements on real OpenFlow hardware and s<strong>of</strong>tware architectures,<br />

appropriate test<strong>in</strong>g is required. Relevant are the real world throughput <strong>of</strong> hardware OpenFlow<br />

switches given rules that heavily rely on rewrit<strong>in</strong>g packet headers as they are used on the SDM egress<br />

switches and the RASP <strong>in</strong>stance switches. Furthermore, the RASP system should be evaluated us<strong>in</strong>g<br />

adequate OpenFlow controller architectures for ISPs.<br />

The RASP service provides a generic network <strong>layer</strong> service. The <strong>in</strong>tegration <strong>in</strong><strong>to</strong> P2P LVS systems is<br />

crucial for its adoption. Some P2P LVS systems are especially suitable for this purpose. mTreebone [110]<br />

is such a system, as it is based on super peers. SALSA [51] is a system based on super peers as well but it<br />

also proposes an <strong>in</strong>centive system for users <strong>to</strong> <strong>of</strong>fer additional upstream bandwidth. Besides the effects <strong>of</strong><br />

the RASP service, the applicability <strong>of</strong> SALSA’s <strong>in</strong>centive system should give an <strong>in</strong>sight on how <strong>to</strong> motivate<br />

the users <strong>to</strong> adopt the RASP service. Mesh-based systems necessitate special adaptation for <strong>in</strong>tegrat<strong>in</strong>g<br />

the RASP service because SDM requires a tree like push model for connected peers. Hence, adaptation<br />

mechanisms such as the Transit [99] approach are required for the <strong>in</strong>tegration <strong>of</strong> the RASP service. Their<br />

96 8. Conclusion and Future Work


applicability for <strong>in</strong>tegration should be <strong>in</strong>vestigated, and a general approach on how <strong>to</strong> <strong>in</strong>tegrate with<br />

mesh-based systems should be derived.<br />

8.2 Future Work on the Large Scale Evaluation<br />

The pro<strong>to</strong>type <strong>of</strong> the RASP service used for evaluation <strong>in</strong> this thesis is adequate for evaluat<strong>in</strong>g basic<br />

properties. Furthermore, it demonstrates the feasibility <strong>of</strong> the concept. However, the pro<strong>to</strong>typical implementation,<br />

the associated evaluation system, and the available emulated network environment limits the<br />

scale <strong>of</strong> the network <strong>to</strong>pologies and the P2P LVS systems used. Therefore, 180 hosts, 19 <strong>to</strong> 34 switches<br />

and on average 144 peers are used for evaluation. Both, ISP and P2P LVS networks are <strong>of</strong>ten much<br />

larger <strong>in</strong> reality. P2P LVS systems might have tens <strong>of</strong> thousands <strong>of</strong> users; some ISP networks consist <strong>of</strong><br />

hundreds <strong>of</strong> locations with hundreds <strong>of</strong> routers each. Hence, large-scale tests are required <strong>to</strong> get a better<br />

understand<strong>in</strong>g on the performance characteristics <strong>of</strong> the RASP service at such scales.<br />

Given that many questions concern<strong>in</strong>g the use <strong>of</strong> OpenFlow <strong>in</strong> ISP networks are not explored yet,<br />

simulations could provide a better understand<strong>in</strong>g <strong>of</strong> the RASP service. Furthermore, simulations could<br />

be used for <strong>in</strong>vestigation its <strong>in</strong>tegration <strong>in</strong><strong>to</strong> P2P LVS systems and the impact <strong>of</strong> the <strong>in</strong>creased upstream<br />

bandwidth. The same is true for experiments with large ISP networks, given their size; simulations are<br />

the only viable way <strong>to</strong> study the impact <strong>of</strong> a large number <strong>of</strong> RASP <strong>in</strong>stances and users. The large-scale<br />

dynamics <strong>of</strong> the RASP should also be <strong>in</strong>vestigated. <strong>Peer</strong> churn and flash crowds are issues current P2P LVS<br />

systems face. The RASP system should improve the P2P LVS system’s behavior <strong>in</strong> these circumstances.<br />

8.3 Future Work on Us<strong>in</strong>g the RASP Service with other Applications<br />

The generic nature <strong>of</strong> the RASP service and especially its functional components allow its use with other<br />

applications than P2P LVS. Specifically, the applicability <strong>of</strong> the SDM approach <strong>to</strong> different application<br />

areas, such as onl<strong>in</strong>e gam<strong>in</strong>g, should be <strong>in</strong>vestigated. Another application area that could be <strong>in</strong>vestigated<br />

is multicast communication <strong>in</strong> wireless networks such as WiFi, WiMAX, or cellular technologies. In this<br />

area, due <strong>to</strong> technological restrictions, comb<strong>in</strong>ations <strong>of</strong> unicast and multicast are beneficial. However, the<br />

use <strong>of</strong> IP multicast is disadvantageous <strong>in</strong> many areas [5]. The applicability <strong>of</strong> SDM should be <strong>in</strong>vestigates.<br />

Its use could be beneficial <strong>in</strong> this area due <strong>to</strong> its efficient comb<strong>in</strong>ation <strong>of</strong> network <strong>layer</strong> multicast and IP<br />

unicast address<strong>in</strong>g.<br />

8.2. Future Work on the Large Scale Evaluation 97


A Evaluation Statistics<br />

The code <strong>of</strong> the R programm<strong>in</strong>g language shown <strong>in</strong> the follow<strong>in</strong>g sections is based on traffic data processed<br />

with the Python module rasp.evaluation.traffic-process<strong>in</strong>g.py and prepared with the traffic-plot.R<br />

script. For reference <strong>of</strong> the data frame names, their def<strong>in</strong>ition is listed below; the base data frame has<br />

the name traffic <strong>in</strong> the code.<br />

> ic_random ic_underlay ic_rasp oc_random oc_underlay oc_rasp tree_random tree_underlay tree_rasp t.test(ic_rasp$isp_volume_peer_norm, tree_rasp$isp_volume_peer_norm)<br />

Welch Two Sample t-test<br />

data: ic_rasp$isp_volume_peer_norm and tree_rasp$isp_volume_peer_norm<br />

t = -1.5846, df = 51.584, p-value = 0.1192<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

95 percent confidence <strong>in</strong>terval:<br />

-0.051917052 0.006106836<br />

sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

0.5058354 0.5287405<br />

> t.test(ic_rasp$isp_volume_peer_norm, oc_rasp$isp_volume_peer_norm)<br />

Welch Two Sample t-test<br />

data: ic_rasp$isp_volume_peer_norm and oc_rasp$isp_volume_peer_norm<br />

t = -3.8517, df = 55.302, p-value = 0.0003071<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

99


95 percent confidence <strong>in</strong>terval:<br />

-0.07715070 -0.02434784<br />

sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

0.5058354 0.5565846<br />

> t.test(tree_rasp$isp_volume_peer_norm, oc_rasp$isp_volume_peer_norm)<br />

Welch Two Sample t-test<br />

data: tree_rasp$isp_volume_peer_norm and oc_rasp$isp_volume_peer_norm<br />

t = -1.7706, df = 56.838, p-value = 0.08198<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

95 percent confidence <strong>in</strong>terval:<br />

-0.059335984 0.003647667<br />

sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

0.5287405 0.5565846<br />

><br />

A.2 t-test Statistics <strong>of</strong> the <strong>Cross</strong>-Border Traffic Volume Differences<br />

> t.test(ic_underlay$cross_volume_peer, ic_rasp$cross_volume_peer)<br />

Welch Two Sample t-test<br />

data: ic_underlay$cross_volume_peer and ic_rasp$cross_volume_peer<br />

t = 4.2714, df = 57.637, p-value = 7.355e-05<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

95 percent confidence <strong>in</strong>terval:<br />

97046.99 268268.29<br />

sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

862875.9 680218.3<br />

> t.test(oc_underlay$cross_volume_peer, oc_rasp$cross_volume_peer)<br />

Welch Two Sample t-test<br />

data: oc_underlay$cross_volume_peer and oc_rasp$cross_volume_peer<br />

t = 0.441, df = 57.465, p-value = 0.6609<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

95 percent confidence <strong>in</strong>terval:<br />

-58013.40 90788.76<br />

100 A. Evaluation Statistics


sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

803199.8 786812.1<br />

> t.test(tree_underlay$cross_volume_peer, tree_rasp$cross_volume_peer)<br />

Welch Two Sample t-test<br />

data: tree_underlay$cross_volume_peer and tree_rasp$cross_volume_peer<br />

t = 1.7822, df = 50.983, p-value = 0.08067<br />

alternative hypothesis: true difference <strong>in</strong> means is not equal <strong>to</strong> 0<br />

95 percent confidence <strong>in</strong>terval:<br />

-10397.38 174806.56<br />

sample estimates:<br />

mean <strong>of</strong> x mean <strong>of</strong> y<br />

828671.8 746467.2<br />

A.2. t-test Statistics <strong>of</strong> the <strong>Cross</strong>-Border Traffic Volume Differences 101


Acronyms<br />

ALTO Application-Layer Traffic <strong>Optimization</strong>.<br />

API Application Programm<strong>in</strong>g Interface.<br />

BRAS Broadband Remote Access Server.<br />

CAM Content-addressable Memory.<br />

CDN Content Delivery Network.<br />

DHCP Dynamic Host Configuration Pro<strong>to</strong>col.<br />

DSL Digital Subscriber L<strong>in</strong>e.<br />

DSLAM Digital Subscriber L<strong>in</strong>e Access Multiplexer.<br />

FTTX Fiber-<strong>to</strong>-the-x.<br />

HTTP Hypertext Transfer Pro<strong>to</strong>col.<br />

IETF Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force.<br />

IGMP Internet Group Management Pro<strong>to</strong>col.<br />

IPoE IP over Ethernet.<br />

IPTV Internet Pro<strong>to</strong>col Television.<br />

ISP Internet Service Provider.<br />

IXP Internet eXchange Po<strong>in</strong>t.<br />

JSON JavaScript Object Notation.<br />

LLDP L<strong>in</strong>k Layer Discovery Pro<strong>to</strong>col.<br />

MPLS Multipro<strong>to</strong>col Label Switch<strong>in</strong>g.<br />

NAT Network Address Translation.<br />

OS Operat<strong>in</strong>g System.<br />

OSPF Open Shortest Path First.<br />

P2P <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong>.<br />

P2P LVS <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Live <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong>.<br />

PIM-SM Pro<strong>to</strong>col Independent Multicast, Sparse Mode.<br />

PoP Po<strong>in</strong>t <strong>of</strong> Presence.<br />

PPP Po<strong>in</strong>t-<strong>to</strong>-Po<strong>in</strong>t Pro<strong>to</strong>col.<br />

PPPoE PPP over Ethernet.<br />

QoS Quality <strong>of</strong> Service.<br />

RASP Rent-a-Super <strong>Peer</strong>.<br />

REST Representational State Transfer.<br />

103


RPC Remote Procedure Call.<br />

SDM S<strong>of</strong>tware Def<strong>in</strong>ed Multicast.<br />

SDN S<strong>of</strong>tware Def<strong>in</strong>ed Network<strong>in</strong>g.<br />

SSM Source-Specific Multicast.<br />

TCP Transmission Control Procol.<br />

UDP User Datagram Pro<strong>to</strong>col.<br />

VLAN Virtual Local Area Network.<br />

104 Acronyms


Bibliography<br />

[1] Open Network<strong>in</strong>g Foundation Members. URL https://www.opennetwork<strong>in</strong>g.org/membership/<br />

member-list<strong>in</strong>g [Accessed 29.04.2013].<br />

[2] Migration <strong>to</strong> Ethernet-Based Broadband Aggregation. Technical Report TR-101, Broadband Forum,<br />

July 2011.<br />

[3] Split Architecture for Large Scale Wide Area Networks. Technical Report ICT-258457, SPARC,<br />

2012.<br />

[4] O. Abboud, K. Pussep, A. Kovacevic, K. Mohr, S. Kaune, and R. Ste<strong>in</strong>metz. Enabl<strong>in</strong>g resilient P2P<br />

video stream<strong>in</strong>g: survey and analysis. Multimedia Systems, 17(3):177–197, March 2011.<br />

[5] A. Abdollahpouri, B. E. Wolf<strong>in</strong>ger, and J. Lai. Unicast versus Multicast for Live TV Delivery <strong>in</strong><br />

Networks with Tree Topology. In Proceed<strong>in</strong>gs <strong>of</strong> the International Conference on Wired/Wireless<br />

Internet Communications (WWIC), 2010.<br />

[6] K. Abe, T. Ueda, M. Shikano, H. Ishibashi, and T. Matsuura. Toward Fault-Tolerant P2P Systems:<br />

Construct<strong>in</strong>g a Stable Virtual <strong>Peer</strong> from Multiple Unstable <strong>Peer</strong>s. In Proceed<strong>in</strong>gs <strong>of</strong> the<br />

International Conference on Advances <strong>in</strong> P2P Systems (AP2PS), 2009.<br />

[7] B. Ager, N. Chatzis, A. Feldmann, N. Sarrar, S. Uhlig, and W. Will<strong>in</strong>ger. Ana<strong>to</strong>my <strong>of</strong> a large european<br />

IXP. ACM SIGCOMM Computer Communication Review, 42(4), September 2012.<br />

[8] V. Aggarwal, A. Feldmann, and C. Scheideler. Can ISPS and P2P users cooperate for improved<br />

performance ACM SIGCOMM Computer Communication Review, 37(3), July 2007.<br />

[9] Agilent Technologies. Understand<strong>in</strong>g DSLAM and BRAS Access Devices, 2006. URL http://cp.<br />

literature.agilent.com/litweb/pdf/5989-4766EN.pdf [Accessed 29.04.2013].<br />

[10] B. M. Ali, S. A. Al-Talib, S. Khatun, and S. Subramaniam. REHASH: <strong>in</strong>tegrat<strong>in</strong>g recursive unicast<br />

with Hash algorithm <strong>to</strong> provide multicast service <strong>to</strong> receivers. In Proceed<strong>in</strong>gs <strong>of</strong> the IEEE<br />

International Conference on Networks (ICON), 2005.<br />

[11] R. Alimi, R. Penno, and Y. Yang. ALTO Pro<strong>to</strong>col. Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, February<br />

2013. URL http://<strong>to</strong>ols.ietf.org/pdf/draft-ietf-al<strong>to</strong>-pro<strong>to</strong>col-14.pdf [Accessed<br />

29.04.2013].<br />

[12] M. Bernste<strong>in</strong>. Understand<strong>in</strong>g PPPoE and DHCP. Juniper Networks, May 2006. URL http:<br />

//www.broadbandreports.com/r0/download/1468367~39a604b7c30141db72e55620ebf95879/<br />

Understand<strong>in</strong>g%20PPPoE%20and%20DHCP_200187.pdf [Accessed 29.04.2013].<br />

[13] D. Bilenko. gevent Introduction. URL http://www.gevent.org/<strong>in</strong>tro.html [Accessed<br />

29.04.2013].<br />

[14] J. Buford and M. Kolberg. Hybrid Overlay Multicast Simulation and Evaluation. In Proceed<strong>in</strong>gs<br />

<strong>of</strong> the IEEE Consumer Communications and Network<strong>in</strong>g Conference (CCNC), 2009.<br />

105


[15] B. Ca<strong>in</strong>, S. E. Deer<strong>in</strong>g, I. Kouvelas, B. Fenner, and A. Thyagarajan. Internet Group Management<br />

Pro<strong>to</strong>col, Version 3. RFC 3376, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, Oc<strong>to</strong>ber 2002.<br />

[16] M. Castro, P. Druschel, A.-M. Kermarrec, A. Nandi, A. Rowstron, and A. S<strong>in</strong>gh. SplitStream: highbandwidth<br />

multicast <strong>in</strong> cooperative environments. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM Symposium on<br />

Operat<strong>in</strong>g Systems Pr<strong>in</strong>ciples (SOSP), 2003.<br />

[17] M. Cha, P. Rodriguez, S. Moon, and J. Crowcr<strong>of</strong>t. On next-generation telco-managed P2P TV<br />

architectures. In Proceed<strong>in</strong>gs <strong>of</strong> the USENIX International Conference on <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Systems<br />

(IPTPS), 2008.<br />

[18] S.-K. Chang. The Generation <strong>of</strong> M<strong>in</strong>imal Trees with a Ste<strong>in</strong>er Topology. Journal <strong>of</strong> the ACM, 19<br />

(4):699–711, Oc<strong>to</strong>ber 1972.<br />

[19] Y. Chiba, Y. Sh<strong>in</strong>ohara, and H. Shimonishi. Source flow: handl<strong>in</strong>g millions <strong>of</strong> flows on flow-based<br />

nodes. ACM SIGCOMM Computer Communication Review, 40(4):465–466, 2010.<br />

[20] G. Dán, T. Hoßfeld, S. Oechsner, P. Cholda, R. Stankiewicz, I. Papafili, and G. Stamoulis. Interaction<br />

patterns between P2P content distribution systems and ISPs. IEEE Communications<br />

Magaz<strong>in</strong>e, 49(5):222–230, May 2011.<br />

[21] S. E. Deer<strong>in</strong>g. Host Extensions for IP Multicast<strong>in</strong>g. RFC 1112, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force,<br />

August 1989.<br />

[22] S. E. Deer<strong>in</strong>g and D. R. Cheri<strong>to</strong>n. Multicast rout<strong>in</strong>g <strong>in</strong> datagram <strong>in</strong>ternetworks and extended<br />

LANs. ACM Transactions on Computer Systems, 8(2):85–110, 1990.<br />

[23] C. Diot, B. N. Lev<strong>in</strong>e, B. Lyles, H. Kassem, and D. Balensiefen. Deployment issues for the IP<br />

multicast service and architecture. IEEE Network, 14(1):78–88, 2000.<br />

[24] R. D. Doverspike, G. Li, K. N. Oikonomou, K. K. Ramakrishnan, and D. Wang. IP Backbone Design<br />

for Multimedia Distribution: Architecture and Performance. In Proceed<strong>in</strong>gs <strong>of</strong> the IEEE International<br />

Conference on Computer Communications (INFOCOM), 2007.<br />

[25] R. Dunaytsev, D. Moltchanov, Y. Koucheryavy, O. Strandberg, and H. Fl<strong>in</strong>ck. A Survey <strong>of</strong> P2P Traffic<br />

Management Approaches: Best Practices and Future Directions. Journal <strong>of</strong> Internet Eng<strong>in</strong>eer<strong>in</strong>g,<br />

5(1), July 2012.<br />

[26] M. Düser and A. Gladisch. Evaluation <strong>of</strong> Next Generation Network Architectures and Further Steps<br />

for a Clean Slate Network<strong>in</strong>g Approach. In ITG EuroView, Presentation, 2006. URL http://<br />

www3.<strong>in</strong>formatik.uni-wuerzburg.de/euroview/2006/presentations/talk_Dueser.pdf [Accessed<br />

29.04.2013].<br />

[27] B. Fenner and D. Meyer. Multicast Source Discovery Pro<strong>to</strong>col. RFC 3618, Internet Eng<strong>in</strong>eer<strong>in</strong>g<br />

Task Force, Oc<strong>to</strong>ber 2003.<br />

[28] B. Fenner, M. Handley, H. Holbrook, and I. Kouvelas. Pro<strong>to</strong>col Independent Multicast - Sparse<br />

Mode (PIM-SM): Pro<strong>to</strong>col Specification (Revised). RFC 4601, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force,<br />

August 2006.<br />

[29] R. Field<strong>in</strong>g, J. Gettys, J. Mogul, H. Frystyk, L. Mas<strong>in</strong>ter, P. Leach, and T. Berners-Lee. Hypertext<br />

Transfer Pro<strong>to</strong>col – HTTP/1.1. RFC 2616, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, June 1999.<br />

106 Bibliography


[30] R. T. Field<strong>in</strong>g. Architectural styles and the design <strong>of</strong> network-based s<strong>of</strong>tware architectures. PhD<br />

thesis, University <strong>of</strong> California, Irv<strong>in</strong>e, 2000.<br />

[31] P. Georgopoulos. Openflow HP switch (3500yl) - Processes flows on s<strong>of</strong>tware, January 2013.<br />

URL http://thread.gmane.org/gmane.network.rout<strong>in</strong>g.openflow.general/2275 [Accessed<br />

29.04.2013].<br />

[32] A. Gladisch. Programmable BitPipe. In European Workshop on S<strong>of</strong>tware Def<strong>in</strong>ed Networks<br />

(EWSDN), Presentation, 2012. URL http://www.ewsdn.eu/presentations/Gladisch.pdf [Accessed<br />

29.04.2013].<br />

[33] A. Gladisch and F.-J. Westphal. Directions <strong>of</strong> next generation transport network development. In<br />

Optical Fiber Communication Conference and Exposition and the National Fiber Optic Eng<strong>in</strong>eers<br />

Conference (OFC/NFOEC), 2012.<br />

[34] K. Grobe, J.-P. Elbers, and S. Neidl<strong>in</strong>ger. Broadband Access Networks. In A. Shami, M. Maier, and<br />

C. Assi, edi<strong>to</strong>rs, Next-Generation Broadband Access Networks and Technologies, pages 353–372.<br />

Spr<strong>in</strong>ger, 2009.<br />

[35] N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado, N. McKeown, and S. Shenker. NOX: <strong>to</strong>wards<br />

an operat<strong>in</strong>g system for networks. ACM SIGCOMM Computer Communication Review, 38(3):<br />

105–110, 2008.<br />

[36] G. Hassl<strong>in</strong>ger. Improv<strong>in</strong>g <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Transport Paths for Content Distribution. In X. Shen,<br />

H. Yu, J. Buford, and M. Akon, edi<strong>to</strong>rs, Handbook <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Network<strong>in</strong>g, pages 1277–1291.<br />

Spr<strong>in</strong>ger US, 2010.<br />

[37] O. Heckmann, M. Pir<strong>in</strong>ger, J. Schmitt, and R. Ste<strong>in</strong>metz. Generat<strong>in</strong>g realistic ISP-level network<br />

<strong>to</strong>pologies. IEEE Communications Letters, 7(7):335–336, 2003.<br />

[38] M. V. J. Heikk<strong>in</strong>en, T. Casey, and F. Hecht. Value analysis <strong>of</strong> centralized and distributed communications<br />

and video stream<strong>in</strong>g. The Journal <strong>of</strong> Policy, Regulation and Strategy for Telecommunications,<br />

Information and Media (INFO), 12(5):42–58, 2010.<br />

[39] Hewlett-Packard. HP OpenFlow Switches, 1 edition, September 2012. URL http://bizsupport1.<br />

aust<strong>in</strong>.hp.com/bc/docs/support/SupportManual/c03512348/c03512348.pdf [Accessed<br />

29.04.2013].<br />

[40] U. Hoelzle. Openflow@google. In Open Network<strong>in</strong>g Summit, Presentation, 2012. URL<br />

http://www.opennetsummit.org/archives/apr12/hoelzle-tue-openflow.pdf [Accessed<br />

29.04.2013].<br />

[41] H. Holbrook and B. Ca<strong>in</strong>. Source-Specific Multicast for IP. RFC 4607, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task<br />

Force, August 2006.<br />

[42] M. Howard. Routers on the IP Edge. Infonetics Research, Oc<strong>to</strong>ber 2012. URL<br />

http://www.<strong>in</strong>fonetics.com/whitepapers/2012-Infonetcs-Whitepaper-Routers-onthe-IP-Edge.pdf<br />

[Accessed 29.04.2013].<br />

[43] Y. Imai, N. Feldman, R. Boivie, W. Livens, and D. Ooms. Explicit Multicast (Xcast) Concepts and<br />

Options. Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, November 2007. URL http://<strong>to</strong>ols.ietf.org/html/<br />

rfc5058 [Accessed 29.04.2013].<br />

Bibliography 107


[44] X. J<strong>in</strong>, K.-L. Cheng, and S. H. G. Chan. Scalable Island Multicast for <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> <strong>Stream<strong>in</strong>g</strong>.<br />

Advances <strong>in</strong> Multimedia, 2007:1–9, 2007.<br />

[45] X. J<strong>in</strong>, K.-L. Cheng, and S. H. G. Chan. Island Multicast: Comb<strong>in</strong><strong>in</strong>g IP Multicast With Overlay<br />

Data Distribution. IEEE Transactions on Multimedia, 11(5):1024–1036, July 2009.<br />

[46] X. J<strong>in</strong>, W. Tu, and S. H. G. Chan. Challenges and advances <strong>in</strong> us<strong>in</strong>g IP multicast for overlay data<br />

delivery. IEEE Communications Magaz<strong>in</strong>e, 47(6):157–163, 2009.<br />

[47] P. Jokela, A. Zahemszky, C. E. Rothenberg, S. Arianfar, and P. Nikander. LIPSIN: l<strong>in</strong>e speed publish/subscribe<br />

<strong>in</strong>ter-network<strong>in</strong>g. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM Special Interest Group on Data Communication<br />

Conference (SIGCOMM), 2009.<br />

[48] Juniper Networks. Do You Need a Broadband Remote Access Server, 2009. URL http://www.<br />

juniper.net/kr/kr/local/pdf/whitepapers/2000259-en.pdf [Accessed 29.04.2013].<br />

[49] S. Kadadi and J. Buford. SAM Problem Statement. Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, March<br />

2008. URL http://<strong>to</strong>ols.ietf.org/pdf/draft-irtf-sam-problem-statement-02 [Accessed<br />

29.04.2013].<br />

[50] A. Keller. Breitbandkabel und Zugangsnetze. Spr<strong>in</strong>ger, 2011.<br />

[51] J. Kim, Y. Lee, and S. Bahk. SALSA: Super-<strong>Peer</strong> Assisted Live <strong>Stream<strong>in</strong>g</strong> Architecture. In Proceed<strong>in</strong>gs<br />

<strong>of</strong> the IEEE International Conference on Communications (ICC), 2009.<br />

[52] M. K<strong>in</strong>d, F.-J. Westphal, A. Gladisch, and S. Topp. SplitArchitecture: Apply<strong>in</strong>g the S<strong>of</strong>tware Def<strong>in</strong>ed<br />

Network<strong>in</strong>g Concept <strong>to</strong> Carrier Networks. In World Telecommunications Congress (WTC), 2012.<br />

[53] P. Kle<strong>in</strong> and R. Ravi. A Nearly Best-Possible Approximation Algorithm for Node-Weighted Ste<strong>in</strong>er<br />

Trees. Journal <strong>of</strong> Algorithms, 19(1):104–115, July 1995.<br />

[54] S. Knight, H. X. Nguyen, N. Falkner, R. Bowden, and M. Roughan. The Internet Topology Zoo.<br />

IEEE Journal on Selected Areas <strong>in</strong> Communications, 29(9):1765–1775, 2011.<br />

[55] T. Koponen, M. Casado, N. Gude, J. Stribl<strong>in</strong>g, L. Poutievski, M. Zhu, R. Ramanathan, Y. Iwata,<br />

H. Inoue, T. Hama, and S. Shenker. Onix: a distributed control platform for large-scale production<br />

networks. In Proceed<strong>in</strong>gs <strong>of</strong> the USENIX Symposium on Operat<strong>in</strong>g Systems Design and<br />

Implementation (OSDI), 2010.<br />

[56] D. Kotani, K. Suzuki, and H. Shimonishi. A Design and Implementation <strong>of</strong> OpenFlow Controller<br />

Handl<strong>in</strong>g IP Multicast with Fast Tree Switch<strong>in</strong>g. In Proceed<strong>in</strong>gs <strong>of</strong> the IEEE/IPSJ International<br />

Symposium on Applications and the Internet (SAINT), 2012.<br />

[57] R. Kumar, Y. Liu, and K. Ross. S<strong>to</strong>chastic Fluid Theory for P2P <strong>Stream<strong>in</strong>g</strong> Systems. In Proceed<strong>in</strong>gs<br />

<strong>of</strong> the IEEE International Conference on Computer Communications (INFOCOM), 2007.<br />

[58] C. Labovitz, S. Iekel-Johnson, D. McPherson, J. Oberheide, and F. Jahanian. Internet <strong>in</strong>ter-doma<strong>in</strong><br />

traffic. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM Special Interest Group on Data Communication Conference<br />

(SIGCOMM), 2010.<br />

[59] B. Lantz, B. Heller, and N. McKeown. A network <strong>in</strong> a lap<strong>to</strong>p. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM Workshop<br />

on Hot Topics <strong>in</strong> Networks (HotNets), 2010.<br />

108 Bibliography


[60] L. Lao, J.-H. Cui, and M. Gerla. Tackl<strong>in</strong>g group-<strong>to</strong>-tree match<strong>in</strong>g <strong>in</strong> large scale group communications.<br />

Computer Networks, 51(11):3069–3089, 2007.<br />

[61] K. Lee and G. Jian. ALTO and DECADE service trial with<strong>in</strong> Ch<strong>in</strong>a Telecom. Internet Eng<strong>in</strong>eer<strong>in</strong>g<br />

Task Force, March 2012. URL http://<strong>to</strong>ols.ietf.org/id/draft-lee-al<strong>to</strong>-ch<strong>in</strong>atelecomtrial-04.txt<br />

[Accessed 29.04.2013].<br />

[62] S. Lee and S. Sahu. Optimized Hybrid Overlay Design for Real Time Broadcast<strong>in</strong>g. In Proceed<strong>in</strong>gs<br />

<strong>of</strong> the IEEE International Conference on Computer Communications and Networks (ICCCN),<br />

2010.<br />

[63] N. Leyman, B. Decraene, C. Filsfils, M. Konstantynowicz, and D. Ste<strong>in</strong>berger. Seamless MPLS<br />

Architecture. Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, Oc<strong>to</strong>ber 2012. URL http://<strong>to</strong>ols.ietf.org/<br />

pdf/draft-ietf-mpls-seamless-mpls-02.pdf [Accessed 29.04.2013].<br />

[64] C. Liang, Y. Guo, and Y. Liu. Investigat<strong>in</strong>g the Schedul<strong>in</strong>g Sensitivity <strong>of</strong> P2P <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong>: An<br />

Experimental Study. IEEE Transactions on Multimedia, 11(3):348–360, 2009.<br />

[65] J. Liu, S. G. Rao, B. Li, and H. Zhang. Opportunities and Challenges <strong>of</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Internet <strong>Video</strong><br />

Broadcast. Proceed<strong>in</strong>gs <strong>of</strong> the IEEE, 96(1):11–24, 2008.<br />

[66] Y. Liu, Z. Liu, X. Wu, J. Wang, and C. C.-Y. Yang. IPTV System Design: An ISP’s Perspective.<br />

In International Conference on Cyber-enabled Distributed Comput<strong>in</strong>g and Knowledge Discovery<br />

(CyberC), 2011.<br />

[67] E. K. Lua, J. Crowcr<strong>of</strong>t, M. Pias, R. Sharma, and S. Lim. A survey and comparison <strong>of</strong> peer-<strong>to</strong>-peer<br />

overlay network schemes. IEEE Communications Surveys & Tu<strong>to</strong>rials, 7(2):72–93, 2005.<br />

[68] L. Luo, G. Xie, S. Uhlig, L. Mathy, K. Salamatian, and Y. Xie. Towards TCAM-based scalable<br />

virtual routers. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM International Conference on Emerg<strong>in</strong>g Network<strong>in</strong>g<br />

Experiments and Technologies (CoNEXT), 2012.<br />

[69] G. Maier, A. Feldmann, V. Paxson, and M. Allman. On dom<strong>in</strong>ant characteristics <strong>of</strong> residential<br />

broadband <strong>in</strong>ternet traffic. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM SIGCOMM Conference on Internet Measurement<br />

(IMC), 2009.<br />

[70] C. A. C. Marcondes, T. P. C. San<strong>to</strong>s, A. P. Godoy, C. C. Viel, and C. A. C. Teixeira. CastFlow:<br />

Clean-slate multicast approach us<strong>in</strong>g <strong>in</strong>-advance path process<strong>in</strong>g <strong>in</strong> programmable networks. In<br />

Proceed<strong>in</strong>gs <strong>of</strong> the IEEE Symposium on Computers and Communications (ISCC), 2012.<br />

[71] N. McKeown. S<strong>of</strong>tware-def<strong>in</strong>ed network<strong>in</strong>g. In International Conference on Computer Communications<br />

(INFOCOM) Keynote Talk, Presentation, 2009. URL http://klamath.stanford.edu/<br />

~nickm/talks/<strong>in</strong>focom_brazil_2009_v1-1.pdf [Accessed 29.04.2013].<br />

[72] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and<br />

J. Turner. OpenFlow. ACM SIGCOMM Computer Communication Review, 38(2):69–74, March<br />

2008.<br />

[73] A. Med<strong>in</strong>a, A. Lakh<strong>in</strong>a, I. Matta, and J. Byers. BRITE: an approach <strong>to</strong> universal <strong>to</strong>pology generation.<br />

In Proceed<strong>in</strong>gs <strong>of</strong> the International Symposium on Model<strong>in</strong>g, Analysis and Simulation <strong>of</strong><br />

Computer and Telecommunication Systems (MASCOT), 2001.<br />

Bibliography 109


[74] NEC. NEC ProgrammableFlow Univerge PF5240 Product Sheet. URL http://www.necam.com/<br />

docs/id=5ce9b8d9-e3f3-41de-a5c2-6bd7c9b37246 [Accessed 29.04.2013].<br />

[75] NEC. IP8800/S3640 OpenFlow Feature Guide (Version 11.1 Compatible), 1 edition, June<br />

2010. URL http://support.necam.com/kb<strong>to</strong>ols/sDocs.cfmid=fcbdcb3e-45fa-4ec4-9311-<br />

215bd9ab9f81 [Accessed 29.04.2013].<br />

[76] F. Németh, Á. Stipkovits, B. Sonkoly, and A. Gulyás. Towards SmartFlow: case studies on enhanced<br />

programmable forward<strong>in</strong>g <strong>in</strong> OpenFlow switches. ACM SIGCOMM Computer Communication<br />

Review, 42(4):85–86, September 2012.<br />

[77] NTT labora<strong>to</strong>ries OSRG Group. Ryu 1.7 documentation, March 2013.<br />

[78] Open Network<strong>in</strong>g Foundation. OpenFlow Switch Specification 1.0, December 2009.<br />

[79] Open Network<strong>in</strong>g Foundation. OpenFlow Switch Specification 1.2, December 2011.<br />

[80] Open Network<strong>in</strong>g Foundation. OpenFlow Switch Specification 1.1, February 2011.<br />

[81] Open Network<strong>in</strong>g Foundation. OpenFlow Switch Specification 1.3, July 2012.<br />

[82] Open Network<strong>in</strong>g Foundation. S<strong>of</strong>tware-Def<strong>in</strong>ed Network<strong>in</strong>g: The New Norm for Networks, April<br />

2012. URL https://www.opennetwork<strong>in</strong>g.org/images/s<strong>to</strong>ries/downloads/sdn-resources/<br />

white-papers/wp-sdn-newnorm.pdf [Accessed 29.04.2013].<br />

[83] Open Network<strong>in</strong>g Foundation. OpenFlow Management and Configuration Pro<strong>to</strong>col 1.1, June<br />

2012.<br />

[84] Open Network<strong>in</strong>g Foundation. OpenFlow Switch Specification 1.3.1, September 2012.<br />

[85] B. Owens. What’s Next for OpenFlow and Open Source, March 2013. URL http://<br />

packetpushers.net/whats-next-for-openflow-and-open-source/ [Accessed 29.04.2013].<br />

[86] B. Owens. OpenFlow Switch<strong>in</strong>g Performance: Not All TCAM Is Created Equal, February<br />

2013. URL http://packetpushers.net/openflow-switch<strong>in</strong>g-performance-not-all-tcamis-created-equal/<br />

[Accessed 29.04.2013].<br />

[87] V. N. Padmanabhan, H. J. Wang, P. A. Chou, and K. Sripanidkulchai. Distribut<strong>in</strong>g stream<strong>in</strong>g media<br />

content us<strong>in</strong>g cooperative network<strong>in</strong>g. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM International Workshop on<br />

Network and Operat<strong>in</strong>g Systems Support for Digital Audio and <strong>Video</strong> (NOSSDAV), 2002.<br />

[88] K. Pagiamtzis and A. Sheikholeslami. Content-addressable memory (CAM) circuits and architectures:<br />

a tu<strong>to</strong>rial and survey. IEEE Journal <strong>of</strong> Solid-State Circuits, 41(3):712–727, 2006.<br />

[89] I. Papafili, S. Soursos, and G. D. Stamoulis. Improvement <strong>of</strong> BitTorrent Performance and Interdoma<strong>in</strong><br />

Traffic by Insert<strong>in</strong>g ISP-Owned <strong>Peer</strong>s. In Proceed<strong>in</strong>gs <strong>of</strong> the International Workshop on<br />

Internet Charg<strong>in</strong>g and Qos Technologies (ICQT), 2009.<br />

[90] I. Pepelnjak. OpenFlow and SDN: hype, useful <strong>to</strong>ols or panacea In RIPE 65, Presentation,<br />

2012. URL https://ripe65.ripe.net/presentations/19-OpenFlow_and_SDN_(RIPE)<br />

.pdf [Accessed 29.04.2013].<br />

110 Bibliography


[91] J. Pettit, J. Gross, B. Pfaff, M. Casado, and S. Crosby. Virtual switch<strong>in</strong>g <strong>in</strong> an era <strong>of</strong> advanced<br />

edges. In Workshop on Data Center – Converged and Virtual Ethernet Switch<strong>in</strong>g (DC-CAVES),<br />

2010.<br />

[92] K. T. Phan, J. Moulierac, C. N. Tran, and N. Thoai. Xcast6 treemap islands: revisit<strong>in</strong>g multicast<br />

model. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM International Conference on Emerg<strong>in</strong>g Network<strong>in</strong>g Experiments<br />

and Technologies (CoNEXT) Student Workshop, 2012.<br />

[93] Po<strong>in</strong>t Topic. World Broadband Statistics Q2 2012. Oc<strong>to</strong>ber 2012. URL http://po<strong>in</strong>t-<br />

<strong>to</strong>pic.com/wp-content/uploads/2013/02/Sample-Report-Global-Broadband-Statistics-<br />

Q2-2012.pdf [Accessed 29.04.2013].<br />

[94] R Core Team. R: A Language and Environment for Statistical Comput<strong>in</strong>g. R Foundation for<br />

Statistical Comput<strong>in</strong>g, 2013. URL http://www.R-project.org [Accessed 29.04.2013].<br />

[95] J. Raj. The Art <strong>of</strong> Computer Systems Performance Analysis. Wiley-Interscience, 1991.<br />

[96] S. Ratnasamy, A. Ermol<strong>in</strong>skiy, and S. Shenker. Revisit<strong>in</strong>g IP multicast. In Proceed<strong>in</strong>gs <strong>of</strong> the ACM<br />

Special Interest Group on Data Communication Conference (SIGCOMM), 2006.<br />

[97] J. Reich, C. Monsan<strong>to</strong>, N. Foster, J. Rexford, and D. Walker. Compos<strong>in</strong>g S<strong>of</strong>tware Def<strong>in</strong>ed Networks.<br />

In Proceed<strong>in</strong>gs <strong>of</strong> the USENIX Symposium on Networked Systems Design and Implementation<br />

(NSDI), 2013.<br />

[98] M. Reitblatt, N. Foster, J. Rexford, and D. Walker. Consistent updates for s<strong>of</strong>tware-def<strong>in</strong>ed networks.<br />

In Proceed<strong>in</strong>gs <strong>of</strong> the ACM Workshop on Hot Topics <strong>in</strong> Networks (HotNets), 2011.<br />

[99] B. Richerzhagen. Support<strong>in</strong>g Transitions <strong>in</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong>. Master’s thesis, Technische<br />

Universität Darmstadt, November 2012.<br />

[100] E. Rosen, A. Viswanathan, and R. Callon. Multipro<strong>to</strong>col Label Switch<strong>in</strong>g Architecture. RFC 3031,<br />

Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, January 2001.<br />

[101] Sandv<strong>in</strong>e Inc. Global Internet Phenomena Report: 2H 2012, 2012. URL http://www.sandv<strong>in</strong>e.<br />

com/downloads/documents/Phenomena_2H_2012/Sandv<strong>in</strong>e_Global_Internet_Phenomena_<br />

Report_2H_2012.pdf [Accessed 29.04.2013].<br />

[102] J. Seedorf, S. Kiesel, and M. Stiemerl<strong>in</strong>g. Traffic localization for P2P-applications: The ALTO<br />

approach. In Proceed<strong>in</strong>gs <strong>of</strong> the IEEE International Conference on <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> Comput<strong>in</strong>g (P2P),<br />

2009.<br />

[103] P. Srisuresh and K. Egevang. Traditional IP Network Address Transla<strong>to</strong>r (Traditional NAT). Technical<br />

Report RFC 3022, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, January 2001.<br />

[104] I. S<strong>to</strong>ica, T. S. E. Ng, and H. Zhang. REUNITE: a recursive unicast approach <strong>to</strong> multicast. In<br />

Proceed<strong>in</strong>gs <strong>of</strong> the Jo<strong>in</strong>t Conference <strong>of</strong> the IEEE Computer and Communications Societies (INFO-<br />

COM), 2000.<br />

[105] K. S<strong>to</strong>rdahl. Long-term penetration and traffic forecasts for the Western European fixed broadband<br />

market. In Proceed<strong>in</strong>gs <strong>of</strong> the European Regional Conference <strong>of</strong> the International Telecommunications<br />

Society (ITS), 2011.<br />

Bibliography 111


[106] S. Tarkoma, C. E. Rothenberg, and E. Lagerspetz. Theory and Practice <strong>of</strong> Bloom Filters for Distributed<br />

Systems. IEEE Communications Surveys & Tu<strong>to</strong>rials, 14(1):131–155, February 2012.<br />

[107] X. Tian, Y. Cheng, and B. Liu. Design <strong>of</strong> a Scalable Multicast Scheme With an Application-Network<br />

<strong>Cross</strong>-Layer Approach. IEEE Transactions on Multimedia, 11(6):1160–1169, 2009.<br />

[108] A. Voellmy, A. Agarwal, and P. Hudak. Nettle: Functional Reactive Programm<strong>in</strong>g for OpenFlow<br />

Networks. Technical Report YALEU/DCS/RR-1431, Yale University, July 2010.<br />

[109] A. Voellmy, H. Kim, and N. Feamster. Procera: a language for high-level reactive network control.<br />

In Proceed<strong>in</strong>gs <strong>of</strong> the ACM SIGCOMM workshop on Hot <strong>to</strong>pics <strong>in</strong> s<strong>of</strong>tware def<strong>in</strong>ed networks<br />

(HotSDN), 2012.<br />

[110] F. Wang, Y. Xiong, and J. Liu. mTreebone: A Hybrid Tree/Mesh Overlay for Application-Layer Live<br />

<strong>Video</strong> Multicast. In Proceed<strong>in</strong>gs <strong>of</strong> the IEEE International Conference on Distributed Comput<strong>in</strong>g<br />

Systems (ICDCS), 2007.<br />

[111] F. Wang, J. Liu, and Y. Xiong. On Node Stability and Organization <strong>in</strong> <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> <strong>Video</strong> <strong>Stream<strong>in</strong>g</strong><br />

Systems. IEEE Systems Journal, 5(4):440–450, 2011.<br />

[112] H. Wang, Z. Sun, B. Wang, H. Zhang, and L. Liu. A Po<strong>in</strong>t-<strong>to</strong>-Multipo<strong>in</strong>t Distribution Mechanism for<br />

IPTV <strong>Video</strong> Network. In IEEE International Conference on Network<strong>in</strong>g, Architecture, and S<strong>to</strong>rage<br />

(NAS), 2011.<br />

[113] C.-C. Wen, C.-J. Chiu, C.-S. Wu, H.-K. Su, and Y.-S. Chu. An Integrated Two-Tier Multicast-Agent<br />

Architecture for All-IP Multicast Transport Services. In International Conference on Broadband<br />

and Wireless Comput<strong>in</strong>g, Communication and Applications (BWCCA), 2011.<br />

[114] H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Spr<strong>in</strong>ger, 2009.<br />

[115] H. Xie, A. Krishnamurthy, A. Silberschatz, and Y. R. Yang. P4P: Explicit communications for cooperative<br />

control between P2P and network providers. Technical report, P4P Work<strong>in</strong>g Group, 2007.<br />

URL http://www.dcia.<strong>in</strong>fo/documents/P4P_Overview.pdf [Accessed 29.04.2013].<br />

[116] Y. Xiong and L. G. Mason. Res<strong>to</strong>ration strategies and spare capacity requirements <strong>in</strong> self-heal<strong>in</strong>g<br />

ATM networks. In Proceed<strong>in</strong>gs <strong>of</strong> the Jo<strong>in</strong>t Conference <strong>of</strong> the IEEE Computer and Communications<br />

Societies (INFOCOM), 1997.<br />

[117] S. Yasukawa, A. Farrel, and O. Komolafe. An Analysis <strong>of</strong> Scal<strong>in</strong>g Issues <strong>in</strong> MPLS-TE Core Networks.<br />

Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force, February 2009. URL http://<strong>to</strong>ols.ietf.org/pdf/rfc5439.<br />

pdf [Accessed 29.04.2013].<br />

[118] B. Zhang and H. T. Mouftah. Provid<strong>in</strong>g multicast through recursive unicast. IEEE Communications<br />

Magaz<strong>in</strong>e, 43(1):115–121, January 2005.<br />

[119] X. Zhang and H. Hassane<strong>in</strong>. A survey <strong>of</strong> peer-<strong>to</strong>-peer live video stream<strong>in</strong>g schemes — An algorithmic<br />

perspective. Computer Networks, 56(15):3548–3579, Oc<strong>to</strong>ber 2012.<br />

112 Bibliography

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!