gram to the BS and broadcasting it in the network.
Every generated RReq includes a three-tuple infor-
mation: hSeq, RRec, Dti. Seq stands for a sequence
number which should be different for every new gen-
erated RReq. The sequence number, together with the
IP address of the sender, allow to uniquely identify
the RReq and associate it to the subsequent generated
responses. Dt is the disjointness threshold which is
set by the sender to specify the maximal number of
nodes that could be shared by any two paths among
the set of paths to establish with the BS. The value of
Dt remains unchanged during the forwarding of the
RReq to the destination. RRec is a route record which
is used to include the path followed by the RReq to
reach the BS. In fact, when a node in the network
receives a copy of this datagram for the first time, it
appends its identity to the RRec field, and broadcasts
it to its neighbors. Every node, say N, including the
BS, which receives a second copy of the datagram,
extracts the content of the RRec field. The latter pro-
vides a path from the sender to the node N. The node
N will append the content of RRec together with the
value of Seq to a list, entitled RP, which stands for list
of Received Paths. Then it discards the datagram.
Route Response Generation and Forwarding.
Once different copies of the RReq datagram reach
the destination (i.e., the BS), the latter will gen-
erate a Route Response datagram, say RRep, to
the source. It includes three-tuple information
hSeq, R, RNC, RPBSi where Seq represents the value
of the sequence number that appeared within the re-
ceived RReq, R is the route, which is composed of the
sequence of nodes identities representing the shortest
path (between the source and the BS) among those
that were received within the different copies of the
RReqs. RCN stands for the remaining number of com-
mon nodes. It is initiated by the BS to the value of x
received within the RReq. This value is decreased by
1 every time the RRep is routed by a node which con-
tains a non empty list of received paths for the same
value of the sequence number. The RRep datagram
will be source routed to the sender based on the con-
tent of R. Moreover a list, say RPBS ,containing the
list of all the routing paths connecting the source node
to the BS is added to the RRep. When the RRep packet
is routed to the source, the latter and all intermediate
nodes will discover a route to the BS, store it in their
cache, and use it as an alternative path if some link er-
ror will potentially occur. We remind the reader that
any different routes requests, to be received by the
BS, may share some nodes. Every one of them can be
written as a series of nodes shared with other routes,
followed by a series of distinct nodes.
Notification Datagrams Generation and Forward-
ing. In the case where the BS has discarded a
copy of the RReq, it generates a notification data-
gram, say NP, containing the three-tuple informa-
tion hSeq, RCN, L, RPBSi composed of the sequence
number (Seq) and the value of RCN received in the
RRep, in addition to a list, say L, containing the iden-
tities of neighbor nodes from which a received copy
of the RReq was previously discarded (i.e., the identi-
ties of these neighbors stand for the last nodes in the
routing paths provided by RP and related to the se-
quence number Seq). If the case where the NP is sent
by the BS, the list L will be set to the identities of
neighbor nodes from which a copy of the RReq was
received. RPBS is a list containing the set of routing
paths connecting the source node to the BS, includ-
ing the shortest path. These routes are collected from
the copies of the RReq received by the BS. The NP is
sent to the source node, broadcasted but treated only
by nodes existing in the list L.
In the case where some node in the network, say
X, receives the RRep two situations may happen. It
X has already discarded, at least, a copy of the re-
lated RReq, it forwards it after decreasing the value of
RCN and generates an NP containing the three-tuple
information hSeq, RCN − 1, L,RPBSi. If it is not the
case, it simply forwards the datagram to its neighbors.
When an intermediate node, say X, receives an NP for
the first time, two situations may happen. If X has not
previously discarded any copy of the related RReq, it
simply forwards the NP to its neighbors. If X has al-
ready discarded, at least, a copy of the related RReq,
it forwards it after decreasing the value of RCN and
replacing the value of L by the identities of neighbor
nodes from which a received copy of the RReq was
previously discarded. When a node receives a second
copy of the NP, it simply discards it. If the value RCN
becomes equal to 0 after decreasing it by one, the no-
tification packet will be rejected before sending it.
List Forwarding Datagrams Generation and For-
warding. Every node which decreases the RCN’s
value of the NP, generates a list forwarding datagram
containing the sequence number (already received in
the NP) and a list obtained from RP (the sequence
number associated to RP should be the same as the
one received in the NP) after applying two filters, say
F1 and F2, consecutively. The list forwarding data-
gram is sent to the source node (i.e., the node which
initiated the RReq). The first filter F1 eliminates from
RP any path that has more than RCN −1 shared nodes
with any path existing in RPBS. The second filter F2
locates in the output of F1 groups of nodes that share
more than RCN − 1 nodes. It replaces each one of
these groups in the RP list by the shortest path. When
DCNET 2010 - International Conference on Data Communication Networking
28