Version 7 (modified by 9 years ago) (diff) | ,
---|
Understanding the AM API using Content Centric Networking
4 Wait for resources to be ready
You can tell whether your nodes are ready by using a script built on omni
called readyToLogin
.
-
Please use the command:
readyToLogin -a AM_NICKNAME SLICENAME
where (as before) AM_NICKNAME and SLICENAME are your aggregate manager nickname and your slice name (both found on your worksheet).
- If it reports that the sliver is not yet ready (for example, it might say that the status is "changing"), then wait a minute
or two and try again. Once everything is complete, readyToLogin
will give output that should look something like this:
... ccnx-router-1's geni_status is: ready User example logs in to ccnx-router-1 using: ssh -p 30267 -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu user-0's geni_status is: ready User example logs in to user-0 using: ssh -p 30270 -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu data's geni_status is: ready User example logs in to data using: ssh -p 30268 -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu ccnx-router's geni_status is: ready User example logs in to ccnx-router using: ssh -p 30266 -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu user's geni_status is: ready User example logs in to user using: ssh -p 30269 -i /Users/example/.ssh/geni_key_portal example@pc1.geni.case.edu ...
5 Trying out the CCN protocol
The install
and execute
services requested in our RSpec have
already started, and nodes in our experiment should be running the CCN (Content Centric Networking) protocol. Our experiment consists of:
- A data source (node
data
that holds precipitation data from the US National Oceanic and Atmospheric Administration (NOAA). - Two nodes forwarding traffic between other locations
ccnx-router
andccnx-router-1
nodes - A researcher node
user
that gets data from theccnx-router
node - A collaborator node
user-0
that gets data fromccnx-router-1
node
Key features of the CCN protocol include:
- 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).
- 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.
We verify this caching behavior by:
- 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. - Retrieving the same data again and noting how we get it much faster since it comes out of a cache.
- Requesting data for different date ranges and seeing how long it took to retrieve the data.
- Requesting the data again and note it is retrieved much faster.
If you have time, you can repeat the above steps on the user-1
node.
Note: There is an 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.
5.1 Run the CCN application
- Log into the node
user
using thessh
command returned byreadyToLogin
. - Once you are logged in, ask for precipitation data from 1 Jan 1902 to 2 Jan 1902:
$ /opt/ccnx-atmos/client.py Start Date in YYYY/MM/DD? 1902/01/01 End Date in YYYY/MM/DD? 1902/01/02
- You should see output that looks like:
Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc Time for pr_1902_01_01.tmp.nc 1.09802699089= Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc Time for pr_1902_01_02.tmp.nc 4.65998315811= Joining files.. Concat + write time 0.0735998153687 Wrote to pr_1902_1_1_1902_1_2.nc
Note that it took about 1.1 and 4.7 seconds respectively to retrieve data for Jan 1 and Jan 2
- Run the client again and request the same data. This time your output should look like:
Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc Time for pr_1902_01_01.tmp.nc 0.0423700809479= Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc Time for pr_1902_01_02.tmp.nc 0.0388598442078= Joining files.. Concat + write time 0.0237510204315 Wrote to pr_1902_1_1_1902_1_2.nc
Notice how much faster the data was retrieved this time. - 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 atccnx-router
, or the local cache.
5.2 (Optional) Visualize experiment data flows
To use the GENI Desktop to visualize the data flows in your network, continue with the instructions here.