[Nfd-dev] review request: NDNLPv2 NACK, Fragmentation, LocalControlHeader

Dave Oran (oran) oran at cisco.com
Thu Jun 11 04:32:57 PDT 2015


> On Jun 10, 2015, at 11:40 AM, Junxiao Shi <shijunxiao at email.arizona.edu> wrote:
> 
> Hi Christian
> 
> protocol in charge
> The protocol in charge is determined by the link, not determined by every packet.
> Before an NDNLPv2 packet is processed, the receiver already knows what features are enabled.
How? Not by hand on each end I hope? No initialization handshake?

> In the normal case, a link cannot be configured to run two fragmentation features at the same time.
> 
> For example, if IndexedFragmentation is enabled on a link:
> The receiver will expect Sequence, FragIndex, and FragCount.
> When Sequence is missing, the packet is dropped.
> When FragIndex is missing, it implied value 0 is used.
> When FragCount is missing, it implied value 1 is used.
> 
> When a BeginEndFragBits field is received,
> if the receiver understands B-E fragmentation feature but this feature is disabled on this link, B-E fragmentation feature should define what to do in this situation (typically, either drop or ignore);
> if the receiver does not understand B-E fragmentation feature, the unknown field procedure is used.
> 
> In case some link must run two fragmentation features at the same time, one may define a new fragmentation feature that is a combination of these two. It would be "Indexed + B-E fragmentation". It can either declare a demux field, or dispatch according to what fields are present.
> However, such combination fragmentation feature is not recommended. It's expected for a link to choose at most one fragmentation feature.
> 
> 
> Yours, Junxiao
> 
> On Wed, Jun 10, 2015 at 1:18 AM, <christian.tschudin at unibas.ch> wrote:
> Hi Junxiao,
> 
> thanks, nice to see this uptake.
> 
> I was (waiting for time to write this up and) thinking about another general comment on the NDNLPv2 spec:
> 
> Currently it seems that the "protocol in charge" is defined implicitely through the presence or absence of some fields. For example, IndexedFragmentation could be defined as
> 
> "needs Sequence plus at least one of the fields FragIndex and FragCount"
> 
> If I introduce a BeginEndFragmentation protocol, the rule would be
> 
> "needs the BeginEndFragBits field"
> 
> and the implicit assumption that the fields present in a packet must violate the previous rules, otherwise the router is confused which protocol is in charge. (see also the note below on the "roles" that a router should adopt).
> 
> 
> My suggestion: the spec should either spell out these rules (and how new rules have to be formed), or introduce an explicit protocol demux field as is the case with SignatureType.
> 
> The latter approach has the benefit that new protocols can reuse existing fields (and their type values) and that new protocols do not necessarily need a new type-value (to mark their presence).
> 
> What do you think?
> 
> best, christian
> 
> 
> PS: Here is a link on that question of how to organize the header space, see Bob Braden et al's "From Protocol Stacks to Protocol Heaps - Role Based Architecture" http://conferences.sigcomm.org/hotnets/2002/program.html
> 
> which is exactly what TLV permits do to, namely to escape the strict encapsulation. Dropping the header container was one such step in that direction.
> 
> _______________________________________________
> 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