[Nfd-dev] Interest equality for for Nack

Klaus Schneider klaus at email.arizona.edu
Tue Apr 26 21:44:30 PDT 2016


Hi Junxiao,

>> The Nack must also carry the latest Nonce coming from the downstream.
>> Otherwise, in case a Nack and a retransmitted Interest are in-flight at
>> the same time between an upstream and a downstream, if the downstream
>> ignores the Nonce and accepts the Nack, it would incorrectly conclude
>> that the upstream cannot answer its retransmitted Interest while the
>> upstream is actively trying to find content for its retransmitted Interest.

- Is there any specification of this design decision?

- Is the "retransmitted Interest" created by the link layer (NDNLP) or 
by the NDN network layer?

I guess that the downstream router retransmits a packet because it 
thinks that the upstream has lost the packet. Shouldn't this 
retransmission timer be much longer than it usually takes for the 
upstream to send a NACK back? Thus, the retransmitted Interest and the 
NACK are unlikely to be in-flight at the same time.

You send an interest to the upstream and either get a NACK back quickly, 
or not at all.

Moreover, whatever the reason for the original NACK was (let's say "no 
path"), there is a good chance that the condition will still apply for 
the re-transmitted interest, so the downstream would make no mistake in 
accepting the NACK for the old packet. (If necessary, I'll continue the 
discussion on the other two types of NACKs).

I'm not saying that "putting the latest nonce from downstream interest 
into NACK packets" is a bad choice. It might just be unnecessary for 
most cases.


Best regards,
Klaus




On 04/25/2016 04:40 PM, Junxiao Shi wrote:
> Hi Jeff
>
> Nack is hop-to-hop. A Nack packet cannot be "forwarded".
> When NFD decides to send a Nack to a downstream, the Nack being sent is
> constructed from the latest Interest received from the downstream; it's
> not a copy of a Nack received from elsewhere. Thus, it would have the
> same wire encoding.
>
>  From protocol point of view, the Nack must be able to locate the
> correct PIT entry, which requires it to have the same Name, Selectors,
> and Link as the original Interest.
> The Nack must also carry the latest Nonce coming from the downstream.
> Otherwise, in case a Nack and a retransmitted Interest are in-flight at
> the same time between an upstream and a downstream, if the downstream
> ignores the Nonce and accepts the Nack, it would incorrectly conclude
> that the upstream cannot answer its retransmitted Interest while the
> upstream is actively trying to find content for its retransmitted Interest.
>
> After fixing Name, Selectors, Link, and Nonce, the only leftover field
> is InterestLifetime. Theoretically, the protocol could operate correctly
> even if the InterestLifetime in Nack differs from the InterestLifetime
> in Interest. In NFD implementation, InterestLifetime field never
> changes, so it's safe for ndn-cxx to compare the wire encoding of entire
> Interest.
>
> Yours, Junxiao
>
> On Mon, Apr 25, 2016 at 12:13 PM, Thompson, Jeff <jefft0 at remap.ucla.edu
> <mailto:jefft0 at remap.ucla.edu>> wrote:
>
>     Hello all,
>
>     To support the network Nack in ndn-cxx, expressInterest takes a
>     NackCallback and stores this along with the Interest in the library
>     PIT. When ndn-cxx receives a Nack, it has to find the PIT entry with
>     the “same” interest as the interest in the Nack packet. The test for
>     “same” uses exact equality of the Interest wire encoding (including
>     the nonce and all the selectors).
>     https://github.com/named-data/ndn-cxx/blob/4b4699897cf281c08b85343a1b0d02961eb727f0/src/interest.hpp#L429
>
>     Is it guaranteed that the Interest which goes through the whole
>     network and is returned Nack will have the exact same encoding bytes
>     as the Interest that was originally expressed? Is this stated
>     somewhere? Could the encoding ever be different?
>
>     Thanks,
>     - Jeff T
>
>
>
> _______________________________________________
> Nfd-dev mailing list
> Nfd-dev at lists.cs.ucla.edu
> http://www.lists.cs.ucla.edu/mailman/listinfo/nfd-dev
>



More information about the Nfd-dev mailing list