[Ndn-interest] Request for NDN Primer

Mohammad Ishfaque Jahan Rafee mij.rafee.1344 at gmail.com
Thu Jan 9 13:20:14 PST 2020

When I check https://nlsr-status.netlify.com/, I can't find my content at
/Rafee/my-second-packet/33=%00. However, when I try the command ndnpeek -p
/Rafee/my-second-packet/33=%00, it produces the following output ndnpeek -p
/Rafee/my-second-packet/33=%00. Where is it being served from? Is it being
served locally? If yes, how to purge the local cache? Also, how to set a
lifetime for content? And more importantly, How do I find this information
without bothering you over email?

On Thu, Jan 9, 2020 at 4:09 PM Mohammad Ishfaque Jahan Rafee <
mij.rafee.1344 at gmail.com> wrote:

> Hi Junxiao,
> I transferred the content using ndncat. I tried to do a binary comparison,
> as there's no way to play the video on the server. However, I think there's
> some overhead like segment inside the mp4 file transferred by ndn. Other
> than that, the file transferred successfully.
> On Thu, Jan 9, 2020 at 1:12 PM Junxiao Shi <shijunxiao at email.arizona.edu>
> wrote:
>> Hi Rafee
>> I tried the whole thing again, and it worked this time. Thank you very
>>> much. It wasn't working today morning, and after checking
>>> http://ndndemo.arl.wustl.edu/ I realized, the SAVI Testbed is down,
>>> which I was trying to use as the default gateway. But after changing UIUC
>>> endpoint, everything worked fine. My setup is as follows:
>>> Machine 1 (Producer): VM on SAVI.
>>> Machine 2 (Consumer): VM on AWS.
>>> As I can see, my message is still available, even after the producer is
>>> shut down (As expected with ICN). I also tried ndnpeek, and that worked as
>>> well.
>> Congrats for having successfully transferred a text message through the
>> NDN testbed using NDNts <https://github.com/yoursunny/NDNts>.
>>> Now, at this point. I am looking for further assistance.
>>> 1. Can you explain to me what happened in simple terms?
>> Producer side
>> Download the attached file and save as ndncert-ucla.json in the current
>>> directory.
>>> savi.testbed.named-data.net:6363 ndntssec ndncert-client --ca
>>> ndncert-ucla.json --valid-days 120 --verbose
>> ndncert-ucla.json contains name prefix and certificate of an NDNCERT
>> certificate authority, hosted at UCLA.
>> ndntssec ndncert-client command requests a certificate from this
>> certificate authority, and stores it in $HOME/keychain directory along with
>> the private key.
>> The certificate request procedure uses Interest-Data exchange, hence a
>> testbed router address is specified on the command line.
>> echo "Rafee's first packet" | NDNTS_KEYCHAIN=$HOME/keychain
>>> NDNTS_NFDREG=1 NDNTS_UPLINK=udp://savi.testbed.named-data.net:6363
>>> NDNTS_PKTTRACE=1 ndncat put /Rafee/my-first-packet --ver=none
>> ndncat put command reads content from standard input (created by echo),
>> and turns it into one or more Data packets under /Rafee/my-first-packet
>> prefix.
>> In order for other nodes to reach this producer via the testbed, the
>> producer must announce this name prefix to the global routing system.
>> Testbed requires all announcements to be signed by a testbed certificate,
>> hence the previous step obtains a certificate for you. ndncat put
>> command loads your key pair from $HOME/keychain directory, as specified on
>> the command line.
>> The router you are connecting to will retrieve the certificate so that it
>> can verify the signature on the prefix announcement. During your first
>> attempt, the UCLA certificate authority did not publish your certificate,
>> so that the router couldn't retrieve the certificate, and had to reject the
>> prefix announcement.
>> Once the prefix announcement has been verified using your certificate,
>> the router announces your prefix globally. Your producer is now reachable
>> from anywhere on the NDN testbed, and the announcement shows up on
>> https://nlsr-status.netlify.com/ , which is a status page of the global
>> routing system.
>> Consumer side
>> NDNTS_UPLINK=udp://savi.testbed.named-data.net:6363 NDNTS_PKTTRACE=1
>>> ndncat get /Rafee/my-first-packet --ver=none
>> ndncat get sends a few Interests to the specified testbed router. Since
>> the producer prefix has been announced globally, you could connect to any
>> testbed node and retrieve the content.
>>> ndnpeek -p /Rafee/my-first-packet/33=%00
>> This reveals the actual name of the first Data packet.
>> ndncat currently does not support serving a single packet. The text
>> message is treated like a stream. and chunked into segments. 33=%00
>> indicates "segment number 0".
>> 2. How can I go about hosting my content (Something more than a text,
>>> such as a video)? I am asking this because the current content seems to be
>>> just *cat* into the terminal.
>> If you just want to transfer a video file, you can still use ndncat
>> <https://github.com/yoursunny/NDNts/tree/284d3d9f0b6b8c83a746e763d09ab00637f2d5a4/packages/cat>.
>> ndncat put reads from standard input, and ndncat get writes to standard
>> output. Thus, you can do something like:
>> savi.testbed.named-data.net:6363 NDNTS_PKTTRACE=1 ndncat put
>> /Rafee/my-video.mp4 --ver=none  < my-video.mp4
>> NDNTS_UPLINK=udp://savi.testbed.named-data.net:6363 NDNTS_PKTTRACE=1
>> ndncat get /Rafee/my-video.mp4 --ver=none > my-video.mp4
>> However, currently the producer would buffer all Data packets in memory,
>> so that you can only transfer small files (500MB is fine on a 8GB
>> laptop, maybe more).
>> If you want a more substantial video service
>> <https://ivoosh.netlify.com/>, setting up the backend
>> <https://github.com/chavoosh/ndn-mongo-fileserver> is much more
>> involved, and I haven't tried it myself. It's better to leave it to the
>> experts.
>> Yours, Junxiao
> --
> Best Regards
> Rafee
> www.mohammadrafee.com

Best Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20200109/174a6001/attachment-0001.html>

More information about the Ndn-interest mailing list