<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 8, 2017, at 10:51 AM, Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu" class="">shijunxiao@email.arizona.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Jongdeog<div class=""><br class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><div style="direction: ltr; font-family: Tahoma; font-size: 10pt;" class=""><div class="">
1. Is it allowed to produce different contents with same name?<br class=""></div></div></div></blockquote><div class="">No, it violates data immutability as required by <a href="https://named-data.net/project/ndn-design-principles/" target="_blank" class="">NDN protocol design principles</a>.</div><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><div style="direction: ltr; font-family: Tahoma; font-size: 10pt;" class=""><div class="">
2. If it is allowed, what would be a conventional way to implement it? My thoughts are:<br class="">
- the interest of the consumer 'must be fresh'<br class="">
- the producer produces the contents with the minimal freshness period (0 or 1).<br class="">
<br class="">
3. If there is any other conventional way of fetching the newest version of contents, please let me know. As we discussed in the NDN seminar, the selector (right most child) does not solve the problem as it can sometimes retrieve old cached data.<br class=""></div></div></div></blockquote><div class="">You may use <a href="https://github.com/named-data/ndn-tools/blob/25625ca1a06d5f6e0a1c8c9b88303a8a2b6d19a7/tools/chunks/catchunks/discover-version-iterative.hpp" target="_blank" class="">iterative version discovery</a>: use ChildSelector=rightmost to find a version, then express another Interest that excludes that and all lower versions, repeat until you are unable to retrieval any newer versions. A drawback is that <a href="https://redmine.named-data.net/issues/3793" target="_blank" class="">there needs to be a timeout</a> to complete this version discovery procedure.</div><div class="">So far, no valid alternative solution has been proposed.</div></div></div></div></div></div></blockquote><br class=""></div><div>I would like to express a different view from Junxiao’s last statement above.</div><div><br class=""></div><div>1/ regarding requesting data with the same "name": I would like to draw people’s attention to the important distinction between an exact name and a name prefix.  </div><div>One must not put different contents under the same exact name.</div><div>one can use the same name prefix to fetch future content under that name prefix.</div><div><br class=""></div><div>2/ as Jongdeog’s earlier msg already mentioned, he thought about using a combination of "must be fresh" flag on an Interest packet and "FreshnessPeriod" to achieve the goal of fetching latest content: </div><div>a) the producer sets "FreshnessPeriod" in its data packet to a small value.</div><div><br class=""></div><div>b) a consumer sets "must be fresh" flag its Interest packet</div><div><br class=""></div><div>c) This will prevent intermediate forwarders from replying to the Interest with Data packet whose "FreshnessPeriod" already expired, so that the Interest will be forwarded toward the producer.</div><div><br class=""></div><div>d) I would also like to make it clear that the "FreshnessPeriod" is a relative time, it gets restarted at each hop. Therefore it is not an upper bound of "freshness" as measured by how long the data packet has left the original producer.  Nevertheless it is an effective measure for the producer to control how frequently it can handle incoming Interests for its latest content.</div><div><br class=""></div><div>Lixia</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><br class=""></body></html>