Changes between Version 7 and Version 8 of GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Execute


Ignore:
Timestamp:
09/14/15 18:38:39 (9 years ago)
Author:
sedwards@bbn.com
Comment:

Revert to GEC22 version

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Execute

    v7 v8  
    1 = [../Setup  Understanding the AM API using Content Centric Networking] =
    2 
    3 {{{
    4 #!html
    5 
    6 <div style="text-align:center; width:495px; margin-left:auto; margin-right:auto;">
    7 <img id="Image-Maps_5201305222028436" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/Execute.jpg?format=raw" usemap="#Image-Maps_5201305222028436" border="0" width="495" height="138" alt="" />
    8 <map id="_Image-Maps_5201305222028436" name="Image-Maps_5201305222028436">
    9 <area shape="rect" coords="18,18,135,110" href="./Setup" alt="" title=""    />
    10 <area shape="rect" coords="180,18,297,111" href="./Execute" alt="" title=""    />
    11 <area shape="rect" coords="344,17,460,110" href="./Finish" alt="" title=""    />
    12 <area shape="rect" coords="493,136,495,138" href="http://www.image-maps.com/index.php?aff=mapped_users_5201305222028436" alt="Image Map" title="Image Map" />
    13 </map>
    14 <!-- Image map text links - End - -->
    15 
    16 </div>
    17 }}}
    18 
    19 == 4 Wait for resources to be ready ==
    20 
    21 You can tell whether your nodes are ''ready'' by using a script built on `omni` called `readyToLogin`.
    22 
    23 {{{
    24 #!html
    25 <ol type='a'>
    26   <li>
    27     Please use the command:
    28 <pre>
    29 readyToLogin -a AM_NICKNAME SLICENAME
    30 <pre>
    31 where (as before) <tt>AM_NICKNAME</tt> and <tt>SLICENAME</tt> are your aggregate
    32 manager nickname and your slice name (both found on your worksheet).
    33   </li>
    34   <li>If it reports that the sliver is not yet ready (for example, it might say that the status is "changing"), then wait a minute
    35 or two and try again.  Once everything is complete, <tt>readyToLogin</tt>
    36 will give output that should look something like this:
    37 <pre>
    38 ...
    39 
    40 ccnx-router-1's geni_status is: ready
    41 User example logs in to ccnx-router-1 using:
    42         ssh -p 30267  -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu
    43        
    44 user-0's geni_status is: ready
    45 User example logs in to user-0 using:
    46         ssh -p 30270  -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu
    47        
    48 data's geni_status is: ready
    49 User example logs in to data using:
    50         ssh -p 30268  -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu
    51        
    52 ccnx-router's geni_status is: ready
    53 User example logs in to ccnx-router using:
    54         ssh -p 30266  -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu
    55        
    56 user's geni_status is: ready
    57 User example logs in to user using:
    58         ssh -p 30269  -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu
    59 
    60 ...     
    61 </pre>
    62 
    63   </li>
    64 </ol>
    65 }}}
    66 
    67 == 5 Trying out the CCN protocol ==
    68 
    69 The `install` and `execute` services requested in our RSpec have
    70 already started, and nodes in our experiment should be running the CCN (Content Centric Networking) protocol.  Our experiment consists of:
    71    * A data source (node {{{data}}} that holds precipitation data from the US National Oceanic and Atmospheric Administration (NOAA).
    72    * Two nodes forwarding traffic between other locations `ccnx-router` and `ccnx-router-1` nodes
    73    * A researcher node {{{user}}} that gets data from the `ccnx-router` node
    74    * A collaborator node {{{user-0}}} that gets data from `ccnx-router-1` node
    75 
    76 Key features of the CCN protocol include:
    77    * Data is accessed by name.  In our case we use a program called client to get precipitation data by date range (e.g. precipitation between 1902/01/01 and 1902/01/02).
    78    * All nodes cache data for a certain period of time.   When a node receives a request for data, it checks its local cache.  If the data is in it's cache, it returns that data.  Otherwise, it forwards it on to its neighbor.
    79 
    80 We verify this caching behavior by:
    81    * Logging into the `user` node and using the client program to get precipitation data for a certain date range.  The client displays how long it took to get the data.
    82    * Retrieving the same data again and noting how we get it much faster since it comes out of a cache.
    83    * Requesting data for different date ranges and seeing how long it took to retrieve the data.
    84    * Requesting the data again and note it is retrieved much faster.
    85 
    86 If you have time, you can repeat the above steps on the `user-1` node.
    87 
    88 Note: There is an [wiki:GENIExperimenter/Tutorials/GettingStarted_PartII_ccn/Procedure/Execute/GEMINI optional part] to this exercise that uses the GENI Desktop to visualize traffic on the links in our network.  There you can visualize which data requests went all the way to the data source (node {{{data}}}) and which data requests were fulfilled from a node's cache.
    89 
    90 === 5.1 Run the CCN application ===
    91  1. Log into the node {{{user}}} using the {{{ssh}}} command returned by {{{readyToLogin}}}.
    92  2. Once you are logged in, ask for precipitation data from 1 Jan 1902 to 2 Jan 1902:
    93      {{{
    94      $ /opt/ccnx-atmos/client.py
    95      Start Date in YYYY/MM/DD? 1902/01/01
    96      End Date in YYYY/MM/DD? 1902/01/02
    97      }}}
    98  3. You should see output that looks like:
    99      {{{
    100      Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc
    101      Time for pr_1902_01_01.tmp.nc 1.09802699089=
    102      Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc
    103      Time for pr_1902_01_02.tmp.nc 4.65998315811=
    104      Joining files..
    105      Concat + write time 0.0735998153687
    106      Wrote to pr_1902_1_1_1902_1_2.nc
    107      }}}
    108      Note that it took about 1.1 and 4.7 seconds respectively to retrieve data for Jan 1 and Jan 2
    109  4. Run the client again and request the same data.  This time your output should look like:
    110      {{{
    111      Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc
    112      Time for pr_1902_01_01.tmp.nc 0.0423700809479=
    113      Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc
    114      Time for pr_1902_01_02.tmp.nc 0.0388598442078=
    115      Joining files..
    116      Concat + write time 0.0237510204315
    117      Wrote to pr_1902_1_1_1902_1_2.nc
    118      }}}
    119     Notice how much faster the data was retrieved this time.
    120  5. If time permits, log into the collaborator node {{{user-0}}} and run queries from there.  (Pick dates in January of 1902.) Notice different data retrieval times depending on whether the data came from the data source, the cache at {{{ccnx-router}}}, or the local cache.
     1= [../Setup  Understanding the AM API using Content Centric Networking] =
     2         
     3{{{
     4#!html
     5                 
     6<div style="text-align:center; width:495px; margin-left:auto; margin-right:auto;">
     7<img id="Image-Maps_5201305222028436" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/Execute.jpg?format=raw" usemap="#Image-Maps_5201305222028436" border="0" width="495" height="138" alt="" />
     8<map id="_Image-Maps_5201305222028436" name="Image-Maps_5201305222028436">
     9<area shape="rect" coords="18,18,135,110" href="./Setup" alt="" title=""    />
     10<area shape="rect" coords="180,18,297,111" href="./Execute" alt="" title=""    />
     11<area shape="rect" coords="344,17,460,110" href="./Finish" alt="" title=""    />
     12<area shape="rect" coords="493,136,495,138" href="http://www.image-maps.com/index.php?aff=mapped_users_5201305222028436" alt="Image Map" title="Image Map" />
     13</map>
     14<!-- Image map text links - End - -->
     15 
     16</div>
     17}}}
     18 
     19== 4 Wait for resources to be ready ==
     20 
     21You can tell whether your nodes are ''ready'' by using a script built on `omni` called `readyToLogin`.
     22 
     23{{{
     24#!html
     25<ol type='a'>
     26  <li>
     27    Please use the command:
     28<pre>
     29readyToLogin -a AM_NICKNAME SLICENAME
     30<pre>
     31where (as before) <tt>AM_NICKNAME</tt> and <tt>SLICENAME</tt> are your aggregate
     32manager nickname and your slice name (both found on your worksheet).
     33  </li>
     34  <li>If it reports that the sliver is not yet ready (for example, it might say that the status is "changing"), then wait a minute
     35or two and try again.  Once everything is complete, <tt>readyToLogin</tt>
     36will give output that should look something like this:
     37<pre>
     38...
     39rschr's geni_status is: ready (am_status:ready) 
     40User example logs in to rschr using:
     41        ssh  -p 32768 -i /Users/example/.ssh/geni_key_portal example@pc1.utah.geniracks.net
     42User example logs in to collar using:
     43        ssh -p 32769 -i /Users/example/.ssh/geni_key_portal example@pc1.utah.geniracks.net
     44...
     45</pre>
     46 
     47  </li>
     48</ol>
     49}}}
     50 
     51== 5 Trying out the CCN protocol ==
     52 
     53The `install` and `execute` services requested in our RSpec have
     54already started, and nodes in our experiment should be running the CCN (Content Centric Networking) protocol.  Our experiment consists of:
     55   * A data source (node {{{dsrc1}}} that holds precipitation data from the US National Oceanic and Atmospheric Administration (NOAA).
     56   * A researcher node {{{rsrchr}}} that gets data from the data source
     57   * A collaborator node {{{collab}}} that gets data from the researcher
     58 
     59Key features of the CCN protocol include:
     60   * Data is accessed by name.  In our case we use a program called client to get precipitation data by date range (e.g. precipitation between 1902/01/01 and 1902/01/02).
     61   * All nodes cache data for a certain period of time.   When a node receives a request for data, it checks its local cache.  If the data is in it's cache, it returns that data.  Otherwise, it forwards it on to its neighbor.
     62 
     63We verify this caching behavior by:
     64   * Logging into the researcher node and using the client program to get precipitation data for a certain date range.  The client displays how long it took to get the data.
     65   * Retrieving the same data again and noting how we get it much faster since it comes out of a cache.
     66   * Requesting data for different date ranges and seeing how long it took to retrieve the data.
     67   * Requesting the data again and note it is retrieved much faster.
     68 
     69If you have time, you can repeat the above steps on the collaborator node.
     70 
     71Note: There is an [wiki:GENIExperimenter/Tutorials/GettingStarted_PartII_ccn/Procedure/Execute/GEMINI optional part] to this exercise that uses the GENI Desktop to visualize traffic on the links in our network.  There you can visualize which data requests went all the way to the data source (node {{{dsrc1}}}) and which data requests were fulfilled from a node's cache.
     72 
     73=== 5.1 Run the CCN application ===
     74 1. Log into the node {{{rsrchr}}} using the {{{ssh}}} command returned by {{{readyToLogin}}}.
     75 2. Once you are logged in, ask for precipitation data from 1 Jan 1902 to 2 Jan 1902:
     76     {{{
     77     $ /opt/ccnx-atmos/client.py 
     78     Start Date in YYYY/MM/DD? 1902/01/01
     79     End Date in YYYY/MM/DD? 1902/01/02
     80     }}}
     81 3. You should see output that looks like:
     82     {{{
     83     Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc
     84     Time for pr_1902_01_01.tmp.nc 1.09802699089= 
     85     Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc
     86     Time for pr_1902_01_02.tmp.nc 4.65998315811= 
     87     Joining files..
     88     Concat + write time 0.0735998153687
     89     Wrote to pr_1902_1_1_1902_1_2.nc
     90     }}}
     91     Note that it took about 1.1 and 4.7 seconds respectively to retrieve data for Jan 1 and Jan 2
     92 4. Run the client again and request the same data.  This time your output should look like:
     93     {{{
     94     Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc
     95     Time for pr_1902_01_01.tmp.nc 0.0423700809479= 
     96     Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc
     97     Time for pr_1902_01_02.tmp.nc 0.0388598442078= 
     98     Joining files..
     99     Concat + write time 0.0237510204315
     100     Wrote to pr_1902_1_1_1902_1_2.nc
     101}}}
     102Notice how much faster the data was retrieved this time.
     1035. If time permits, log into the collaborator node {{{collab}}} and run queries from there.  (Pick dates in January of 1902.) Notice different data retrieval times depending on whether the data came from the datasource, the cache at {{{rsrchr}}}, or the local cache.
     104         
     105         
     106=== 5.2 (Optional) Visualize experiment data flows ===
     107   To use the GENI Desktop to visualize the data flows in your network, continue with the instructions [wiki:GENIExperimenter/Tutorials/GettingStarted_PartII_ccn/Procedure/Execute/GEMINI here].
    121108
    122109
    123 === 5.2 (Optional) Visualize experiment data flows ===
    124     To use the GENI Desktop to visualize the data flows in your network, continue with the instructions [wiki:GENIExperimenter/Tutorials/GettingStarted_PartII_ccn/Procedure/Execute/GEMINI here].
     110----
    125111
    126 
    127 ----
    128 
    129 = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Setup] =
    130 = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Finish Next:  Finish] =
     112= [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Setup] =
     113= [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Finish Next:  Finish] =