[ndnSIM] behavior of consumer and provider

yao hu huyao0107 at gmail.com
Thu Apr 25 09:13:50 PDT 2013


Hi Alex,

Thanks for your explanation.

(1) Saying "AppFace and NetDeviceFace share FaceId", I meant that if I want
to write my own forwarding strategy in CustomStrategy::DoPropagateInterest,
should I consider AppFace as one usual FaceId like NetDeviceFace?
Especially, for a producer node, do I need to intentionally control the
incoming interest not to forward towards some other node and meanwhile make
it towards AppFace to be satisfied? That seems a little strange though.

(2) Just for a confirmation. Intermediate nodes satisfy interest directly
through cache (if possible), not through AppFace? While for producer node,
it satisfies interest through AppFace?

Regards,
huyao



2013/4/25 Alex Afanasyev <alexander.afanasyev at ucla.edu>

> Hi huyao,
>
> What do you mean by "AppFace and NetDeviceFace share FaceId"?  Each face
> on the node has its own unique id, doesn't matter, NetDeviceFace of
> AppFace...
>
> Your observation about the current situation with face IDs is exactly
> right: application faces have IDs that are numerically larger than any
> other NetDevice face id.  However, this happened completely by "accident"
> and you should not really rely on it in the forwarding strategy.  If you
> want to determine if a specific Ptr<Face> is actually an application face,
> a much safer way is to do a DynamicCast or (better, but I'm not sure yet
> how it can be implemented) mark application faces somehow in FIB entries:
>
> Ptr<Face> someFace = ...;
>
> if (DynamicCast<AppFace> (someFace))
> {
>    // someFace is application face
> }
> else
> {
>    // someFace is some other type of face
> }
>
> ---
> Alex
>
> On Apr 24, 2013, at 5:24 PM, yao hu <huyao0107 at gmail.com> wrote:
>
> Hi Alex,
>
> Thanks very much for your explicit explanation.
> Then, for my understanding, it depends on me to decide whether the
> satisfied interest will be forwarded again towards other nodes (someOtherNode
> in your example) or not. If I send it to both AppFace and NetDeviceFace
> which share FaceId, it will do this. And also, from my simple observance
> from L3RateTracer, if one node connects to two other nodes, face 0 and face
> 1 is the NetDeviceFace, while face 2 will be the AppFace. Is my
> understanding right?
>
> Regards,
> huyao
>
>
>
> 2013/4/25 Alex Afanasyev <alexander.afanasyev at ucla.edu>
>
>> Hi!
>>
>> 1) Yes. There is something like PIT in consumer, but in much more
>> simplistic format.  In consumer it is just a container, containing
>> outstanding sequence number and last retransmission time (m_seqTimeouts
>> variable in apps/ndn-consumer.h).  The code uses boost::multi_index
>> container to have separate indices by sequence number (to efficiently
>> remove) and retransmission time (for retransmission detection).
>>
>> 2) Let me show you my understanding of your question with slightly
>> different topology
>>
>>    (NetDeviceFace)                (NetDeviceFace)
>>  +--------+ /x         +--------------+ /x              +---------------+
>>  | client | ---------- | producerNode | --------------- | someOtherNode |
>>  +--------+            +--------------+                 +---------------+
>>                               | /x (AppFace)
>>                               |
>>                               |
>>                        +-------------+
>>                        | producerApp |
>>                        +-------------+
>>
>> Let's say we have three nodes, one is client, one producer, and one is
>> producerNode.  Prefix /x (under which client will be sending interests) is
>> routed:
>> - on client:  the only NetDeviceFace (towards producerNode)
>> - on producerNode:  to AppFace (to producer app), to NetDeviceFace
>> (towards someOtherNode)
>>
>> When producerNode receives an interests from the client, the strategy may
>> send interest towards application (and this interest will be satisfied) and
>> towards some other node.
>>
>> Among the existing strategies, only ns3::ndn::fw::Flooding is doing this,
>> since it is very simple and dumb strategy.  BestRoute and SmartFlooding
>> forward interest only to a "green" face (if available), which implies that
>> they will forward only to the application (ndn::Producer marks the
>> application face "green").
>>
>> ---
>> Alex
>>
>> On Apr 24, 2013, at 8:17 AM, yao hu <huyao0107 at gmail.com> wrote:
>>
>> > Hi Alex,
>> >
>> > I have two uncertain issues about the behavior of consumer and provider
>> for confirmation.
>> >
>> > (1) Is there any record like PIT for consumer or requester to memorize
>> past Interest transmission? Possibly for its future retransmission.
>> >
>> > (2) Say in a tree topology. If the root as the provider has satisfied
>> the incoming Interest to send back its according Data. Is it possible to
>> again forward the Interest to other branches (except the branch for the
>> incoming Interest)? I am asking this because in my forwarding strategy, I
>> saw some traffic in other branches, however I just modified
>> DoPropagateInterest, no other basic ndn functions.
>> >
>> > Your reply will be really appreciated.
>> >
>> > Regards,
>> > huyao
>> >
>> > _______________________________________________
>> > ndnSIM mailing list
>> > ndnSIM at lists.cs.ucla.edu
>> > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim
>>
>>
> _______________________________________________
> ndnSIM mailing list
> ndnSIM at lists.cs.ucla.edu
> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130426/e00a5fa9/attachment.html>


More information about the ndnSIM mailing list