[Ndn-interest] clarification about NACKs
Salvatore Signorello
ssignorello at ciencias.ulisboa.pt
Thu May 7 13:47:42 PDT 2020
Dear members,
I am trying to understand how NACK packets look like in the current NDN
codebase. I am aware that the NACK functionality has been extensively
debated over time among this community, but I have only partially
followed this thread, so please bear with me if I am missing any
important point I should know. Your guidance will be very much appreciated.
I am not sure whether that exact difference still holds or not, but in
my mind I am following the difference between
application(producer)-level NACK and forwarding-NACK which I have
learned from the "To NACK or not to NACK?" paper of Compagno et al. And,
conceptually that difference seems to hold in the NDN too since I could
find both application-level NACKs and network NACKs.
With regard to the former NACK type, according to the latest NDN packet
specification (0.3
<https://named-data.net/doc/NDN-packet-spec/current/data.html#contenttype>)
and to this link
<https://redmine.named-data.net/projects/ndn-tlv/wiki/ContentType> from
the project specifications page on the NDN official website,
application-level NACKs are carried within Data packets with a specific
content type. The specification, however, does not specify yet how
exactly the NACK field/payload would look like. More specifically,
please see my question (a) below.
With regard to the latter NACK type, network NACKs are generated through
a Nack header field in NDNLPv2 packets carrying interests. At first, by
digging into the ndn-cxx 0.7.0 library (files nack-header.cpp/hpp) it
could find out that the network-level NACK header is currently encoded
with a single TLV, where the Value contains a NACK code. But,
afterwards, checking the NDNLPv2 spec
<https://redmine.named-data.net/projects/nfd/wiki/NDNLPv2> it looks like
that header is made of two nested TLVs instead, where to specify a
nack-type and a nack-reason. I am wondering what's the difference
between these two and what would a nack-type mean a that level.
The above being said, I would have the two following questions:
(a) Is an application-level NACK supposed to carry an empty payload in
NDN? In particular I am wondering if an application-level NACK could
contain additional arbitrary data.
(b) any initial thoughts/considerations about what NDN routers
should/shouldn't do with application-level NACKs? Here, Is there any
reference I should look at?
Could you also please confirm that there are no amendments to be done to
the above discussion when talking about the latest NDNsim version?
Thank you very much for your time,
regards,
Salvatore Signorello
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20200507/16ff6e90/attachment.html>
More information about the Ndn-interest
mailing list