<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="">Hi Lixia,<div class=""><br class=""></div><div class="">the consumer application does have a simplified retransmission mechanism based on timeouts:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/named-data-ndnSIM/ndnSIM/blob/master/apps/ndn-consumer.cpp#L265" class="">https://github.com/named-data-ndnSIM/ndnSIM/blob/master/apps/ndn-consumer.cpp#L265</a></div><div class=""><br class=""></div><div class="">Unfortunately, it is not clear to me why Junxiao mentioned that "This point is not correctly implemented in the consumer”. If he has found a bug there, he is welcome to push a patch on gerrit for us to review.</div><div class=""><br class=""></div><div class="">In the other email threads created by Marzieh, I have already suggested all the approaches I believe could make her simulation scenario work. Therefore, I have started running out of more ideas. The hackathon project and all the changes we made and scenarios we created are similar to what she is trying to do, that is why taking a look at the hackathon project was one of my very first suggestions. I feel that if all the changes that we made to NFD and ndnSIM for the hackathon project are implemented (by taking a look at the GitHub commits of the project), chances are that this simulation scenario would work. The link for the hackathon project is the following:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/4th-ndn-hackathon/ndnSIM-Mobile-Simulation-Package" class="">https://github.com/4th-ndn-hackathon/ndnSIM-Mobile-Simulation-Package</a></div><div class=""><br class=""></div><div class="">If nothing related to ndnSIM itself is the issue here, then the issue might be related to NS-3 (propagation/loss model or/and net device model that is used or even the distance between the nodes). Therefore, taking a look at how these components of NS-3 work was another suggestion of mine.</div><div class=""><br class=""></div><div class="">Probably another good place to ask for further suggestions would be the NS-3 mailing list by explaining what exactly NS-3 components and net devices are used.</div><div class=""><br class=""></div><div class="">Hope that this helps,</div><div class=""><br class=""><div class="">
<div class=""><div class=""><div class=""><span class="" style="float: none; display: inline !important;">Spyridon (Spyros) Mastorakis</span><br class=""><span class="" style="float: none; display: inline !important;">Personal Website: </span><a href="http://cs.ucla.edu/~mastorakis/" class="">http://cs.ucla.edu/~mastorakis/</a><br class=""><span class="" style="float: none; display: inline !important;">Internet Research Laboratory</span><br class=""><span class="" style="float: none; display: inline !important;">Computer Science Department</span><br class=""><span class="" style="float: none; display: inline !important;">UCLA</span></div><div class=""><br class=""></div></div></div></div><div><blockquote type="cite" class=""><div class="">On Aug 18, 2017, at 8:45 AM, Lixia Zhang <<a href="mailto:lixia@cs.ucla.edu" class="">lixia@cs.ucla.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Aug 18, 2017, at 8:33 AM, Marzieh Babaeianjelodar <<a href="mailto:babaeim@clarkson.edu" class="">babaeim@clarkson.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi Junxaio,</div><div class=""><br class=""></div><div class="">Thank you for your response, </div><div class=""><br class=""></div><div class="">Is there anything I could do in this stage to make it work?</div></div></div></blockquote><div class=""><br class=""></div>As Junxiao mentioned, the consumer should retransmit a lost Interest.</div><div class="">I dont know why that does not work (Junxiao mentioned that "This point is not correctly implemented in the consumer"??)</div><div class=""><br class=""></div><div class="">I copied Spyros here to see if he has a comment/suggestion</div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""> or should I just wait for the next release?</div><div class=""><br class=""></div><div class="">And, may I ask when is the new release of ndnSIM going to be out?</div><div class=""><br class=""></div><div class="">Best Regards,</div><div class=""><br class=""></div><div class="">Marzieh</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Aug 17, 2017, at 1:21 PM, 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 class=""><div dir="auto" class="">Hi Marzieh</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">I see no problem in NFD configuration or routing setup.</div><div dir="auto" class="">There was a packet loss. When Data was returned from node 2 to node 1, it was not received by node 1.</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">As recommended by the NDN protocol, the consumer should retransmit the Interest if it does not receive the Data but still wants the Data. Moreoever, this retransmission should occur before InterestLifetime expires. This point is not correctly implemented in the consumer.</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">Also, NFD has a NDNLP reliability improvement option, which can perform hop-by-hop retransmission. It has been merged into NFD codebase and will apeear in next ndnSIM release. Per-hop reliability is more suitable than consumer retransmission, as I assume the packet loss was caused by interference or thermal noise in wireless channel. You may wait for the next release and retry this simulation with reliability enabled.</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">Yours, Junxiao</div><br class=""><div class="gmail_quote"><div class="">On Thu, Aug 17, 2017 at 09:25 Marzieh Babaeianjelodar <<a href="mailto:babaeim@clarkson.edu" class="">babaeim@clarkson.edu</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">Hi Junxiao,</div><div class=""><br class=""></div><div class="">Thanks for your response and your time,</div><div class=""><br class=""></div><div class="">I filtered out the logs to the forwarder, and this is what I get for one Interest (I used Consumber Batches to send 1 Interest packet at second 2):</div><div class=""><br class=""></div><div class="">2s 0 nfd.Forwarder:onIncomingInterest(): [DEBUG] onIncomingInterest face=259 interest=/test/prefix/%FE%00<br class="">2s 0 nfd.Forwarder:onContentStoreMiss(): [DEBUG] onContentStoreMiss interest=/test/prefix/%FE%00<br class="">2s 0 nfd.Forwarder:onOutgoingInterest(): [DEBUG] onOutgoingInterest face=257 interest=/test/prefix/%FE%00<br class="">2.00005s 1 nfd.Forwarder:onIncomingInterest(): [DEBUG] onIncomingInterest face=257 interest=/test/prefix/%FE%00<br class="">2.00005s 1 nfd.Forwarder:onContentStoreMiss(): [DEBUG] onContentStoreMiss interest=/test/prefix/%FE%00<br class="">2.00005s 1 nfd.Forwarder:onOutgoingInterest(): [DEBUG] onOutgoingInterest face=256 interest=/test/prefix/%FE%00<br class="">2.0001s 0 nfd.Forwarder:onIncomingInterest(): [DEBUG] onIncomingInterest face=256 interest=/test/prefix/%FE%00<br class="">2.0001s 0 nfd.Forwarder:onInterestLoop(): [DEBUG] onInterestLoop face=256 interest=/test/prefix/%FE%00 send-Nack-duplicate<br class="">2.0001s 2 nfd.Forwarder:onIncomingInterest(): [DEBUG] onIncomingInterest face=256 interest=/test/prefix/%FE%00<br class="">2.0001s 2 nfd.Forwarder:onContentStoreMiss(): [DEBUG] onContentStoreMiss interest=/test/prefix/%FE%00<br class="">2.0001s 2 nfd.Forwarder:onOutgoingInterest(): [DEBUG] onOutgoingInterest face=259 interest=/test/prefix/%FE%00<br class="">2.0001s 2 nfd.Forwarder:onIncomingData(): [DEBUG] onIncomingData face=259 data=/test/prefix/%FE%00<br class="">2.0001s 2 nfd.Forwarder:onIncomingData(): [DEBUG] onIncomingData matching=/test/prefix/%FE%00<br class="">2.0001s 2 nfd.Forwarder:onOutgoingData(): [DEBUG] onOutgoingData face=256 data=/test/prefix/%FE%00<br class=""><b class="">2.1001s 2 nfd.Forwarder:onInterestFinalize(): [DEBUG] onInterestFinalize interest=/test/prefix/%FE%00 satisfied</b><br class="">4s 0 nfd.Forwarder:onInterestUnsatisfied(): [DEBUG] onInterestUnsatisfied interest=/test/prefix/%FE%00<br class=""><b class="">4s 0 nfd.Forwarder:onInterestFinalize(): [DEBUG] onInterestFinalize interest=/test/prefix/%FE%00 unsatisfied</b><br class="">4.00005s 1 nfd.Forwarder:onInterestUnsatisfied(): [DEBUG] onInterestUnsatisfied interest=/test/prefix/%FE%00<br class=""><b class="">4.00005s 1 nfd.Forwarder:onInterestFinalize(): [DEBUG] onInterestFinalize interest=/test/prefix/%FE%00 unsatisfied</b></div><div class=""><br class=""></div><div class="">Best Regards,</div><div class="">Marzieh</div><div class=""><br class=""></div></div></blockquote></div></div>
</div></blockquote></div></div><br class=""></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></body></html>