Changes between Initial Version and Version 1 of GENIEducation/SampleAssignments/VLCDashTutorial/Procedure


Ignore:
Timestamp:
08/06/14 10:52:51 (7 years ago)
Author:
dbhat@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIEducation/SampleAssignments/VLCDashTutorial/Procedure

    v1 v1  
     1[[PageOutline]]
     2
     3= VLC DASH Tutorial =
     4In this tutorial, we will show how to run VLC DASH using OpenFlow on GENI. Dynamic Adaptive Streaming over HTTP (DASH) is used to adapt the quality of the video based on the bandwidth between the video streaming server and the client.
     5
     6This exercise builds on the OpenFlow Load Balancer Tutorial that can be found [http://groups.geni.net/geni/wiki/GEC17Agenda/AdvancedOpenFlow/Procedure here].
     7
     8== Overview ==
     9This tutorial leverages resources on the GENI aggregate in order to experiment with VLC DASH.  For this tutorial, you will install an Apache server with videos that have already been encoded in a DASH format on one node and install an OMLified VLC client on another node. You will then be able to run the load-balancer using OpenFlow and OVS switches and subsequently use !LabWiki to observe how the quality of the video changes based on available bandwidth between the server and the client.
     10[[Image(OpenFlowLB-topo.png, 20%, nolink)]]
     11
     12== Prerequisites ==
     13   - A GENI account, if you don't have one [wiki:SignMeUp sign up!]
     14   - Familiarity with how to reserve GENI resources with any of the GENI Tools (GENI Experimenter Portal, Omni, Flack). If you don't know you can take any of the tutorials:
     15      * Reserving resources using Flack [wiki:GENIExperimenter/Tutorials/RunHelloGENI tutorial]
     16      * Reserving resources using Omni [wiki:GENIExperimenter/Tutorials/HelloOmni tutorial]
     17   - Familiarity with [wiki:HowTo/LoginToNodes logging in to GENI compute resources].
     18   - Basic understanding of OpenFlow. If you are going over this tutorial at home, flip through the [http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/AdvancedOpenFlowTutorial/AdvancedOpenFlow-GEC17.pptx tutorial's slides]
     19   - [wiki:GEC18Agenda/GettingStartedWithGENI_III_GIMI/Procedure/DesignSetup#iRODs Create iRODs account]
     20   - Introduction to !LabWiki [http://groups.geni.net/geni/wiki/GEC18Agenda/GettingStartedWithGENI_III_GIMI tutorial]
     21   - Familiarity with Unix Command line - See "Tools" section
     22   - A moderately deep understanding of the [http://www.openflow.org OpenFlow controller model] and API is required.
     23   - The OpenFlow specification, [http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf version 1.0] is a valuable reference for OpenFlow and the controller model.
     24
     25== Tools ==
     26'''1. Trema''' [[BR]]
     27Each exercise in this assignment will require you to design and implement an OpenFlow controller.
     28Numerous libraries and controller frameworks are available for this task. The guidelines in this assignment assume that you are using the [http://trema.github.com/trema/ Trema] controller framework.
     29The Trema project web site, http://trema.github.com/trema/, contains documentation, a number of helpful examples, and some tutorial material for learning to use Trema.
     30
     31'''2. Traffic Control (tc)'''[[BR]]
     32The tc command is available in the GNU Linux distributions on GENI nodes, found in the ''/sbin'' directory.
     33This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines,
     34which change the policies controlling which packets are forwarded in what order and which are dropped; and network
     35emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss.
     36These two effects are provided by the qdisc and netem subcommands, respectively.
     37In these exercises, tc will be used to modify network conditions and enable different scheduling policies.
     38Example command lines will be provided.
     39
     40'''3. [http://iperf.sourceforge.net/ Iperf]'''[[BR]]
     41Iperf is available on the GENI nodes, located at ''/usr/local/etc/emulab/emulab-iperf''.
     42Iperf is used to measure the bandwidth performance of Internet links. In these exercises,
     43it is used to study the behavior of TCP in the face of changing link characteristics.
     44Iperf runs as both a server and a client. The server is started with the -s command line option,
     45and listens for connections from the client. The client is started with the ''-c <server>'' command line option,
     46and connects to the server and sends data at either the fastest possible rate (given the underlying network)
     47or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP.
     48Various other options will be required for these exercises, and provided in the appropriate sections.
     49All Iperf measurement data should be recorded from the TCP receiver (server) side.
     50
     51== How to get Help ==
     52 * Always ask your tutors (tutorial helper/presenter/TA) first. They are the fastest way to solve the problem.
     53 * If you are using a specific aggregate or tool, you should consider registering in their [wiki:NikySandbox/GENIExperimenter/GENICommunity#Joinusermailinglists mailing list]. It is a great way to get connected with other GENI users and it is an excellent source of wisdom.
     54 * Send mail to the GENI help list: [mailto:help@geni.net].
     55 * If you want to chat real-time with other GENI users and ask questions, [wiki:HowTo/ConnectToGENIChatRoom join us] in a GENI chatroom.
     56
     57== Tutorial Instructions ==
     58{{{
     59#!html
     60
     61
     62<table id="Table_01" height="409" border="0" cellpadding="0" cellspacing="0">
     63        <tr>
     64                <td>
     65                        <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/DesignSetup"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" width="152" height="152" alt="Design/Setup"></a>
     66               </td>
     67               <td>
     68<ul>
     69             <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/DesignSetup">Part I: Design/Setup</a></li>
     70             <ul>
     71                 <li> 1. Obtain Resources </li>
     72             </ul></ul>
     73               </td>
     74        </tr>
     75        <tr>
     76                <td>
     77                        <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/Execute"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" width="152" height="143" alt="Execute"></a>
     78                </td>
     79                <td>
     80             <ul>
     81<li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/Execute">Part II: Execute</a></li>
     82             <ul>
     83                 <li> 2. Configure and Initialize services</li>
     84                  <li> 3. Run your experiment </li>
     85                  <li> Appendix: Hints and Explanations </li>
     86             </ul></ul>
     87                </td>
     88        </tr>
     89        <tr>
     90                <td>
     91                        <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/Finish"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw" width="152" height="114" alt="Finish"></a>
     92                </td>
     93
     94                <td>
     95             <ul>
     96             <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/VLCDashTutorial/Finish">Part III: Finish</a></li>
     97             <ul>
     98                 <li> 4. Release Resources </li>
     99             </ul></ul>
     100                </td>
     101
     102        </tr>
     103</table>
     104
     105}}}