[ndnSIM] can't get Nack when congestion

Xiaoke Jiang shock.jiang at gmail.com
Thu Mar 7 19:16:05 PST 2013


Hi Alex,
	I am not sure whether you have improve hop count or not. Now as far as I can understand,  hop count = -1 means Interest got Nack (from provider or middle router). 
	Is it accurate?


thanks

My Regards,
Xiaoke Jiang (蒋小可)

Ph.D Candidate,
Dept. of Computer Science and Technology,
Tsinghua University, P. R. China

On Jan 23, 2013, at 1:36 AM, Alex Afanasyev <alexander.afanasyev at ucla.edu> wrote:

> 
> On Jan 21, 2013, at 11:18 PM, Xiaoke Jiang <shock.jiang at gmail.com> wrote:
> 
>> Thank you Alex. Your email really makes sense.
>> 
>> I think for a Interest-Nack there is same problem with Interest-Content, hop count for last transmission and hop count for whole transmission(This is quit important, which can measure hop cost of request), what do you think?
>> 
>> For our trace, there is trace information for those interest who gets its data, in this case, if hopcount=-1, it means a Nack return but not data, is it suitable to not print trace information, RIGHT?
>> 
>> FYI,  it's quit strange, because this code is inside OnContent function, but not OnNack.
> 
> There is another thing with hop counting.  It is implemented using packet tags, which means that packets tags in the Interest should be transferred to the Content Object.  With NACKs, these tags are getting lost when NACK is generated, because I didn't consider tags when I originally implemented them.  As a result, as soon as something get nacked, the tag is lost and can't reappear again in ContentObject.
> 
> The "fix" to preserve hop count in NACKs is trivial.  Less trivial is to count whole transmission and last transmission separately...
> 
> --
> Alex
> 
>> 
>> thanks
>> 
>> My Regards,
>> Xiaoke Jiang (蒋小可)
>> 
>> Ph.D Candidate,
>> Dept. of Computer Science and Technology,
>> Tsinghua University, P. R. China
>> 
>> On Jan 22, 2013, at 12:55 PM, Alex Afanasyev <alexander.afanasyev at ucla.edu> wrote:
>> 
>>> Hi Xiaoke,
>>> 
>>> I haven't time today to think about the solution, but I think I know what "problem" is.  With hop counting with NACKs there is a question whether each returned NACK should be counted as an extra hop or not (e.g., when Interest is send from A to B and then NACKed from B to A, should it be 2 hops or 0?).   The solution that I'm thinking about would count those "imaginary" hops, not sure if this will make sense for you...
>>> 
>>> ---
>>> Alex
>>> 
>>> On Jan 21, 2013, at 4:58 AM, Xiaoke Jiang <shock.jiang at gmail.com> wrote:
>>> 
>>>> Hi Alex,
>>>> 	There is an error when I enable Nack and set Limit caused by
>>>> 	 if (payload->RemovePacketTag (hopCountTag))
>>>>     {
>>>>       hopCount = hopCountTag.Get ();
>>>>     } else{
>>>>     	NS_LOG_DEBUG("hopcount=-1 because of failling removing tag");
>>>>     }
>>>> 
>>>> Sometimes, payload->RemovePacketTag(hopCountTag) return false, in this case hopcount is -1, I think this is not reasonable.
>>>> what does -1 mean if it do give me hopcount=-1?
>>>> 
>>>> P.S, I think ns3::ndn::fw::BestRoute::PerOutFaceLimits is such a wonderful function, have you put its description to ndnSim.net? I strongly suggest to do that.
>>>> 
>>>> thanks
>>>> 
>>>> My Regards,
>>>> Xiaoke Jiang (蒋小可)
>>>> 
>>>> Ph.D Candidate,
>>>> Dept. of Computer Science and Technology,
>>>> Tsinghua University, P. R. China
>>>> 
>>>> On Jan 21, 2013, at 6:15 AM, Alex Afanasyev <alexander.afanasyev at ucla.edu> wrote:
>>>> 
>>>>> Hi Xiaoke, 
>>>>> 
>>>>> Your message to mailing list got blocked, as it has exceeded 40kb (it's kind of big for a small mailing list).  If you want, you can resend it, but I recommend you to exclude all attachments and (if necessary) put links, for example to pastebin.com.  If you resend your question, I'll replicate my answer there.
>>>>> 
>>>>> 
>>>>> As for your question.  Just enabling NACKs is not be enough.  Forwarding plane needs to know when to start sending them.  For instance, this signal would be when forwarding strategy detects that "Interest limit" has been reached (some explanation is in section 3.4 in the long paper. PS. it got accepted to the journal, so soon will be available to everybody).
>>>>> 
>>>>> To enable this Interest limit, there are a couple of things:
>>>>> 
>>>>> 1) select forwarding strategy that enforces limits. You can choose one of these:
>>>>> - ns3::ndn::fw::BestRoute::PerOutFaceLimits
>>>>> - ns3::ndn::fw::Flooding::PerOutFaceLimits
>>>>> - ns3::ndn::fw::SmartFlooding::PerOutFaceLimits
>>>>> 
>>>>> As well as select the limit enforcement type (the one explained in paper is ns3::ndn::Limits::Rate).  For example, to enable BestRoute with limits:
>>>>> 
>>>>> ndnStack.SetForwardingStrategy ("ns3::ndn::fw::BestRoute::PerOutFaceLimits",
>>>>>                                 "Limit", "ns3::ndn::Limits::Rate");
>>>>> 
>>>>> 2) you also need to call ndnStack.EnableLimits (true, <average RTT>, <average ContentObject size>, <average Interest size>)  to configure limits to reflect you scenario parameters.  You can initially try with default parameters and then subsequently adjust.
>>>>> 
>>>>> Sincerely,
>>>>> Alex
>>>>> 
>>>>> On Jan 20, 2013, at 12:01 AM, Xiaoke Jiang <shock.jiang at gmail.com> wrote:
>>>>> 
>>>>>> Hi Alex,
>>>>>> 	I am trying to making experiment when there is congestion. I enable Nack with "Config::SetDefault("ns3::ndn::fw::Nacks::EnableNACKs", StringValue("true"));"
>>>>>> 	
>>>>>> 	and I log the output from Consumer, but I can't find Nack message, which is very strange.
>>>>>> <xiaoke.cc>
>>>>>> <sprint-topology.txt>
>>>>>> 
>>>>>> <PastedGraphic-1.tiff>
>>>>>> 
>>>>>> 
>>>>>> thanks
>>>>>> 
>>>>>> My Regards,
>>>>>> Xiaoke Jiang (蒋小可)
>>>>>> 
>>>>>> Ph.D Candidate,
>>>>>> Dept. of Computer Science and Technology,
>>>>>> Tsinghua University, P. R. China
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130308/4aeeb970/attachment.html>


More information about the ndnSIM mailing list