[Ndn-interest] Request for NDN Primer

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


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.
>>
> NDNTS_KEYCHAIN=$HOME/keychain NDNTS_UPLINK=udp://
>> 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:
>
> NDNTS_KEYCHAIN=$HOME/keychain NDNTS_NFDREG=1 NDNTS_UPLINK=udp://
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20200109/6b08e9c9/attachment.html>


More information about the Ndn-interest mailing list