[ndnSIM] Fwd: Forwarding strategy for wireless network

John McKendry john.mckendry at gmail.com
Sun Jul 14 18:36:01 PDT 2013

For the past eight months I have been working on a version of ndnSIM for
wireless mobile ad-hoc networks, so maybe it will be useful to share some
experience. (Unfortunately I don't think the sponsoring agency will let me
share the actual code.)

The biggest problem I had to deal with is that the Face abstraction is
implicitly a point-to-point link to a single neighbor node, and wireless
links are inherently broadcast. I considered a scheme in which each node
maintains separate faces for every other node in the network, but that
didn't seem like a good solution for a network with hundreds of nodes, with
neighbors appearing and disappearing and reappearing unpredictably based on
mobility. What I use instead is a Neighbor structure consisting of a Face
and a MAC address; this Neighbor structure becomes the addressing unit for
the network.

The Face <=> (one neighbor node) equivalence is a central feature of  the
CCN architecture, so replacing the Face with something else required
changes to the rest of ndnSIM. (To be clear, I still use Faces to represent
different network devices; the nodes in my network may have multiple
wireless interfaces, each of which is a separate Face.) Most of the work
went into changing the FIB and PIT. I ended up creating parallel wireless
versions of each, called WFIB and WPIT. The entries in these tables store
next-hop information using the Neighbor structure rather than the Face.

I also had to change the Interest packet to include a FromNode MAC address
so that I could construct the Neighbor information when I received an
Interest. Again I created a parallel wireless version, called WInterest.
And that meant that I had to add an OnWInterest( ) method to my Forwarding
Strategy, so I ended up writing a parallel Wireless Forwarding Strategy
class, WFW.

I added a SendTo( ) method to the Face class so that I can send packets to
a specific MAC address. I should have done this in a child class
(AdHocNetDeviceFace or something) but I was in a hurry.

Lastly, I created a rudimentary routing protocol  using broadcast flooding
with a new message type, called Announcement. Producers send Announcements
for their prefixes periodically, and these Announcements are used to
populate and refresh the WFIBs. Like the WInterest, the Announcement
contains a FromNode field that lets each node construct a path to the
Producer. When a node propagates an Announcement it places its own MAC
address into the FromNode field and then broadcasts it.

I haven't finished with this; I don't have funding to keep working on it
right now, and I know of many ways it can be improved. But it does work.

I hope this is useful to anyone who is trying to do CCN/Named Data
Networking in a mobile wireless environment. It's my impression that the
CCN architecture has some built-in biases in favor of stable
enterprise-scale networks, so making it work in a wireless MANET will
require breaking a few eggs.


On Sun, Jul 14, 2013 at 6:54 PM, Alex Afanasyev <
alexander.afanasyev at ucla.edu> wrote:

> Hi Milad,
> Sorry for my delayed reply.  Currently, there are no strategies that
> implement smart wireless-aware forwarding are implemented in ndnSIM.  I
> think I already pointed you to an extension that does some wireless-based
> forwarding in vehicular environments (
> https://github.com/cawka/ndnSIM-nom-rapid-car2car), but it is not exactly
> what are you looking for.
> As for the implementation, you may want to start with creating a new
> custom strategy class that is derived from ndn::ForwardingStrategy and
> overload a couple of methods,
> including SatisfyPendingInterest, CanSendOutInterest, DoPropagateInterest
> and may be some others.  The key point is that you should enable
> "forwarding" to the incoming face (since in wifi scenarios this is an
> intended behavior).  Also, you should be careful to terminate such
> "relaying" at some point.
> As for multipath routing.  It is NDN feature (nonce in interests
> effectively prevent any looping, so it is supported by ndnSIM). Another
> question is how exactly this multipath is implemented in the forwarding
> strategy.
> ---
> Alex
> On Jul 14, 2013, at 1:28 PM, Milad Mahdian <mahdian.m at husky.neu.edu>
> wrote:
> Hi Alex,
> Assuming one node is trying to send a packet to another node over a
> wireless channel, I was wondering how I can simulate this communication in
> ndnSIM. in another word, as in ndnSIM nodes are communicating through
> interfaces, how one can simulate a wireless communication over a wireless
> channel.
> Regards,
> Milad Mahdian
> ---------- Forwarded message ----------
> From: Milad Mahdian <mahdian.m at husky.neu.edu>
> Date: Sun, Jul 14, 2013 at 12:33 AM
> Subject: Forwarding strategy for wireless network
> To: ndnsim at lists.cs.ucla.edu
> Cc: Edmund Yeh <eyeh at ece.neu.edu>, melis yetkinler <
> melisyetkinler at gmail.com>
> Hi Alex,
> We are working on a wireless scenario in which nodes are chosen randomly
> as a relay. I was wondering if there is such a forwarding strategy that
> relays are chosen randomly. Also, is there any support for multipath
> routing in ndnSIM?
> Regards,
> Milad
> _______________________________________________
> 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/20130714/f6844b53/attachment.html>

More information about the ndnSIM mailing list