[Nfd-dev] Please review the update of NDN-TLV spec, introducing implicit digest name component
Alex Afanasyev
alexander.afanasyev at UCLA.EDU
Fri Oct 10 19:08:52 PDT 2014
On Oct 10, 2014, at 2:42 PM, Ignacio.Solis at parc.com wrote:
> On 10/10/14, 1:01 PM, "Alex Afanasyev" <alexander.afanasyev at ucla.edu>
> wrote:
>
>> On Oct 10, 2014, at 12:48 PM, <Ignacio.Solis at parc.com>
>> <Ignacio.Solis at parc.com> wrote:
>>>>> Yes, the parc's proposal introduces hash restriction (aka selector).
>>>>> As
>>>>> I understand correctly, this restriction is based on "content hash",
>>>>> rather than "data packet hash". This is very different thing from
>>>>> the
>>>>> implicit hash and has very different use case: content hash
>>>>> identifies
>>>>> "content", while implicit digest identifies specific Data packet
>>>>> (which
>>>>> is the atomic unit in NDN sense). With just content hash it is
>>>>> impossible to "exclude" wrong data, since it is not really known
>>>>> whether
>>>>> the content is wrong or signature is wrong. It also has implications
>>>>> while requesting Data: what you would get back is "content", which can
>>>>> have any name. This may be acceptable in some cases, while not so in
>>>>> others where name is used by the application (e.g., if app needs to
>>>>> know
>>>>> which segment this returned piece of content belongs).
>>>
>>> The ContentObjectHash restriction in CCN is over the Content Object (as
>>> the name implies). This includes the name and signature (if present).
>>
>> Sorry. I misunderstood then. So, this basically exactly the same thing,
>> covering Name, meta parts of the data packet, Content, and signature
>> parts?
>
> Basically yes. It just doesn’t cover the static header and optional
> headers (which you don’t have in NDN).
>
>
>
>>> It is the same as the implicit hash in the sense that the hash is
>>> implicit
>>> in the content object. This is calculated over the message. The static
>>> headers and the optional headers are NOT part of the message.
>>>
>>> We don¹t exclude data, so that is, effectively, impossible for CCN.
>>> Having said that, if you followed the SelectorProtocol described in the
>>> NDN-interest list this ContentObjectHash would be able to be used for
>>> excludes just like the ones on NDN. It servers the same purpose but
>>> it¹s
>>> not part of a name.
>>>
>>> It is NOT true that the content you get can have any name. The content
>>> has either a) the exact same name as the interest (after all, we do
>>> exact
>>> matching), or b) no name at all.
>>>
>>> Also, I don¹t understand why you say that the app needs to know what
>>> segment you¹re getting. Didn¹t you request the content with a name
>>> anyway? Use that name. Also, if you have a ContentObjectHash, that
>>> means
>>> somebody gave you that hash, did they not tell you what this hash was
>>> for?
>>
>> I just gave an example of what can go wrong with this. Yes, you're
>> requesting by hash. But if the only thing you know is the hash, how
>> would you reliably reconstruct the whole thing without relying on
>> something extra (like the order in manifest).
>
> You still need a name, otherwise the Interest would not have been
> forwarded.
>
> Also, I’m not sure where you would get a hash only. If you did get the
> hash (and some potentially uninformative name) from the manifest, then you
> already have that info, it’s in the manifest.
Yes, manifest can have such information, which in such a hypothetical case would need to be remembered somewhere. However, I think it is important to keep all relevant information in the Name, so it can be (to some extent) used on its own (less things to remember in the app/library).
>> In any case, this is a separate discussion and the primary goal for my
>> original email is to move the NDN spec forward.
>
> I was just clearing up the CCN methods. Even if you don’t do the same
> thing in NDN, at least it would hopefully inform you of what we’re doing
> in CCN so you can make good architectural choices.
Sure, you're always welcome. Thanks for the comments and corrections.
---
Alex
> Nacho
>
>
> --
> Nacho (Ignacio) Solis
> Protocol Architect
> Principal Scientist
> Palo Alto Research Center (PARC)
> +1(650)812-4458
> Ignacio.Solis at parc.com
More information about the Nfd-dev
mailing list