From zeynalvand at ce.sharif.edu Wed Apr 16 04:49:56 2014 From: zeynalvand at ce.sharif.edu (L.Zeynalvand) Date: Wed, 16 Apr 2014 16:19:56 +0430 Subject: [Ndn-interest] Standard Naming Convention Message-ID: <1cb91a7690da74912b84233f48752e39@ce.sharif.edu> Hi What has been confusing me for a while is the exact meaning of "Standard Naming Convention" indicating segmentation, as far as I could guess from the word convention, it should be something between the producer and consumers, hence opaque to the network, making it difficult to benefit from content caching. so lets say I am a consumer who wants to get /prefix/movie.mpeg from NDN network (simulating in ndnSim), and producer knows that movie.mpeg is segmented into /prefix/movie.mpeg/%00/%01 , /prefix/movie.mpeg/%00/%02 , /prefix/movie.mpeg/%00/%03 what should I do to get movie.mpeg and also benefit from content caching (if segments are already in my ISP's cache, its not efficient to get them from producer) Best Regards, -- Leonid Zeynalvand M.Sc Information Technology Sharif University of Technology From shijunxiao at email.arizona.edu Wed Apr 16 07:01:07 2014 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Wed, 16 Apr 2014 07:01:07 -0700 Subject: [Ndn-interest] Standard Naming Convention In-Reply-To: <1cb91a7690da74912b84233f48752e39@ce.sharif.edu> References: <1cb91a7690da74912b84233f48752e39@ce.sharif.edu> Message-ID: Hi Leonid NDN recommends using unique and consistent names for same Data. For a sepecific movie, the publisher gives it a Name that is used universally. Thus, every ISP may have the movie in the cache, with the same Name. If the same movie is published under multiple different names, network doesn't know they are actually the same, and thus won't benefit from caching. In a class project I made "Content Addressable Repository" that can discover same payload under different names. https://github.com/yoursunny/carepo The basic idea is to maintain an index of Data objects by the hash of payload, so that Data can be retrieved by either Name or hash. However, this scheme suffers from routing scalability issue if deployed beyond local area network. Yours, Junxiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Thu Apr 17 14:30:51 2014 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 17 Apr 2014 14:30:51 -0700 Subject: [Ndn-interest] Standard Naming Convention Message-ID: Hi Leonid Suppose I know /prefix/movie.mpeg is a video, and there are two additional name components: version number and segment number. But I don't know what's the latest version, and I don't know how many segments are there in the latest version. I would: 1. let version be nil 2. send Interest to /prefix/movie.mpeg ChildSelector=rightmost 3. if Data does not arrive within InterestLifetime, goto step 7 4. let version be third Name component (version) of the Data 5. send Interest to /prefix/movie.mpeg ChildSelector=rightmost Exclude=version 6. goto step 3 7. if knownLatestVersion is nil, fail 8. let seq be %00 9. send Interest to /prefix/movie.mpeg/version/seq 10. if Data does not arrive within InterestLifetime, fail 11. append Data content to the video stream 12. if FinalBlockId is present in Data and it equals seq, abort these steps 13. increment seq 14. goto step 9 Yours, Junxiao On Wed, Apr 16, 2014 at 8:12 AM, L.Zeynalvand wrote: > thank you Junxiao for your consideration, > But that was not the problem I discussed, > lets say you want to get movie.mpg, and we know that movie.mpg does not > fit in one packet, so clearly it is segmented into > /prefix/movie.mpeg/%00/%01 , /prefix/movie.mpeg/%00/%02 , > /prefix/movie.mpeg/%00/%03, ... > Now what is the name of the first interest you are sending to the network > to get the movie? and how do you know how many more interests you should > send? > > thank you very much > > > -- > Leonid Zeynalvand > M.Sc Information Technology > Sharif University of Technology > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jburke at remap.ucla.edu Thu Apr 17 14:56:18 2014 From: jburke at remap.ucla.edu (Burke, Jeff) Date: Thu, 17 Apr 2014 21:56:18 +0000 Subject: [Ndn-interest] Standard Naming Convention In-Reply-To: Message-ID: For versioned content, the publisher may also choose to set FreshnessPeriod in the data packet, and the consumers can then set MustBeFresh in the Interests described in Junxiao's steps below, in order to not get old versions if newer ones are available. (The application needs to decide the semantics of 'fresh'.) Jeff From: Junxiao Shi > Date: Thu, 17 Apr 2014 14:30:51 -0700 To: "L.Zeynalvand" > Cc: "ndn-interest at lists.cs.ucla.edu" > Subject: Re: [Ndn-interest] Standard Naming Convention Hi Leonid Suppose I know /prefix/movie.mpeg is a video, and there are two additional name components: version number and segment number. But I don't know what's the latest version, and I don't know how many segments are there in the latest version. I would: 1. let version be nil 2. send Interest to /prefix/movie.mpeg ChildSelector=rightmost 3. if Data does not arrive within InterestLifetime, goto step 7 4. let version be third Name component (version) of the Data 5. send Interest to /prefix/movie.mpeg ChildSelector=rightmost Exclude=version 6. goto step 3 7. if knownLatestVersion is nil, fail 8. let seq be %00 9. send Interest to /prefix/movie.mpeg/version/seq 10. if Data does not arrive within InterestLifetime, fail 11. append Data content to the video stream 12. if FinalBlockId is present in Data and it equals seq, abort these steps 13. increment seq 14. goto step 9 Yours, Junxiao On Wed, Apr 16, 2014 at 8:12 AM, L.Zeynalvand > wrote: thank you Junxiao for your consideration, But that was not the problem I discussed, lets say you want to get movie.mpg, and we know that movie.mpg does not fit in one packet, so clearly it is segmented into /prefix/movie.mpeg/%00/%01 , /prefix/movie.mpeg/%00/%02 , /prefix/movie.mpeg/%00/%03, ... Now what is the name of the first interest you are sending to the network to get the movie? and how do you know how many more interests you should send? thank you very much -- Leonid Zeynalvand M.Sc Information Technology Sharif University of Technology _______________________________________________ Ndn-interest mailing list Ndn-interest at lists.cs.ucla.edu http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From zeynalvand at ce.sharif.edu Thu Apr 17 23:20:50 2014 From: zeynalvand at ce.sharif.edu (L.Zeynalvand) Date: Fri, 18 Apr 2014 10:50:50 +0430 Subject: [Ndn-interest] Standard Naming Convention In-Reply-To: References: Message-ID: <47b42122b67313f67abe6e75c62d30e9@ce.sharif.edu> thank you very much Jeff. On 18.04.2014 02:26, Burke, Jeff wrote: > For versioned content, the publisher may also choose to set > FreshnessPeriod in the data packet, and the consumers can then set > MustBeFresh in the Interests described in Junxiao's steps below, in > order to not get old versions if newer ones are available. (The > application needs to decide the semantics of 'fresh'.) > > Jeff > > From: Junxiao Shi > Date: Thu, 17 Apr 2014 14:30:51 -0700 > To: "L.Zeynalvand" > Cc: "ndn-interest at lists.cs.ucla.edu [3]" > > Subject: Re: [Ndn-interest] Standard Naming Convention > > Hi Leonid > > Suppose I know /prefix/movie.mpeg is a video, and there are two > additional name components: version number and segment number. > But I don't know what's the latest version, and I don't know how many > segments are there in the latest version. > > I would: > > * let version be nil > > * send Interest to /prefix/movie.mpeg > ChildSelector=rightmost > * if Data does not arrive within InterestLifetime, goto step 7 > > * let version be third Name component (version) of the Data > > * send Interest to /prefix/movie.mpeg > ChildSelector=rightmost > Exclude=version * goto step 3 > * if knownLatestVersion is nil, fail > * let seq be %00 > > * send Interest to /prefix/movie.mpeg/version/seq > * if Data does not arrive within InterestLifetime, fail > * append Data content to the video stream > * if FinalBlockId is present in Data and it equals seq, abort these > steps > * increment seq > * goto step 9 > > Yours, Junxiao > > On Wed, Apr 16, 2014 at 8:12 AM, L.Zeynalvand > wrote: > >> thank you Junxiao for your consideration, >> But that was not the problem I discussed, >> lets say you want to get movie.mpg, and we know that movie.mpg does >> not fit in one packet, so clearly it is segmented into >> /prefix/movie.mpeg/%00/%01 , /prefix/movie.mpeg/%00/%02 , >> /prefix/movie.mpeg/%00/%03, ... >> Now what is the name of the first interest you are sending to the >> network to get the movie? and how do you know how many more >> interests you should send? >> >> thank you very much >> >> -- >> Leonid Zeynalvand >> M.Sc Information Technology >> Sharif University of Technology > _______________________________________________ Ndn-interest mailing > list Ndn-interest at lists.cs.ucla.edu [6] > http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest [7] > > Links: > ------ > [1] mailto:shijunxiao at email.arizona.edu > [2] mailto:zeynalvand at ce.sharif.edu > [3] mailto:ndn-interest at lists.cs.ucla.edu > [4] mailto:ndn-interest at lists.cs.ucla.edu > [5] mailto:zeynalvand at ce.sharif.edu > [6] mailto:Ndn-interest at lists.cs.ucla.edu > [7] http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest -- Leonid Zeynalvand M.Sc Information Technology Sharif University of Technology From zeynalvand at ce.sharif.edu Thu Apr 17 23:22:36 2014 From: zeynalvand at ce.sharif.edu (L.Zeynalvand) Date: Fri, 18 Apr 2014 10:52:36 +0430 Subject: [Ndn-interest] Standard Naming Convention In-Reply-To: References: Message-ID: <71f4822c8c5af6ebf67026a4cb89dd42@ce.sharif.edu> hi Junxiao, that was very useful, thank you very much. On 18.04.2014 02:00, Junxiao Shi wrote: > Hi Leonid > > Suppose I know /prefix/movie.mpeg is a video, and there are two > additional name components: version number and segment number. > But I don't know what's the latest version, and I don't know how many > segments are there in the latest version. > > I would: > > * let version be nil > > * send Interest to /prefix/movie.mpeg > ChildSelector=rightmost > * if Data does not arrive within InterestLifetime, goto step 7 > > * let version be third Name component (version) of the Data > > * send Interest to /prefix/movie.mpeg > ChildSelector=rightmost > Exclude=version * goto step 3 > * if?knownLatestVersion is nil, fail > * let seq be %00 > > * send Interest to /prefix/movie.mpeg/version/seq > * if Data does not arrive within InterestLifetime, fail > * append Data content to the video stream > * if FinalBlockId is present in Data and it equals seq, abort these > steps > * increment seq > * goto step 9 > > Yours, Junxiao > > On Wed, Apr 16, 2014 at 8:12 AM, L.Zeynalvand > wrote: > >> thank you Junxiao for your consideration, >> But that was not the problem I discussed, >> lets say you want to get movie.mpg, and we know that movie.mpg does >> not fit in one packet, so clearly it is segmented into >> /prefix/movie.mpeg/%00/%01 , /prefix/movie.mpeg/%00/%02 , >> /prefix/movie.mpeg/%00/%03, ... >> Now what is the name of the first interest you are sending to the >> network to get the movie? and how do you know how many more >> interests you should send? >> >> thank you very much >> >> -- >> Leonid Zeynalvand >> M.Sc Information Technology >> Sharif University of Technology > > > Links: > ------ > [1] mailto:zeynalvand at ce.sharif.edu -- Leonid Zeynalvand M.Sc Information Technology Sharif University of Technology