Route Request Broadcast with Low Overhead

 ISSN: 1693-6930 TELKOMNIKA Vol. 13, No. 3, September 2015 : 904 – 921 910 Figure 3. RREP message Figure 4 describes an example of path construction and it consists of four nodes, namely, Sink, N, V and W. If the sink node intends to transmit a specific task to node W, and if the Sink node route to W is non-existence in its routing table, it transmits a RREQ. If the RREQ is received by node N, it must attach its address, increase the field of hop count by one, and update the energy cost field of the RREQ before forwarding the request, because route W is inaccessible and has no route to it. Likewise, if node V receives the RREQ, it attaches its address and its energy cost and increases the field of hop count by one in the RREQ message. Once the request arrives at the target W, node W examines the path construction list Sink-N-V through the RREQ and reviews if the routing path is a node-disjoint path or otherwise. Once true, node W produces a Route Reply message, which holds the path construction list for the entire path and forwards it towards the direction of the sink node, which initiated the RREQ message. If not true, node W rejects the received RREQ message. Figure 4. Path construction process

3.3. Route Request Broadcast with Low Overhead

When a node gets a RREQ message, which happens to be its first one, it examines the path construction list from the message packet, calculates total hops starting from the source to itself and then records the total residual energy in its route table. When the node gets the RREQ identical message for another time, the node calculates the number of hops from the source to itself and contrasts it to the number of the shortest hops, which is stored in the entry of the routing table. If the new message has smaller number of hops, the node attaches its addresses, in addition to its energy cost, to the route path list for the RREQ message and then transmits the RREQ message to surrounding nodes. Otherwise, the new RREQ message is rejected. The pair Source address, Broadcast ID is utilized to differentiate the message packets. Consequently, for this method, several identical RREQ messages will be rejected when new RREQ has greater number of hops when compared to the record. TELKOMNIKA ISSN: 1693-6930  Robust Path Construction for Reliable Data Transmissions in Node… Abdulaleem Ali Almazroi 911 Figure 5. RREQ Propagation with the Shortest Hops From the illustration in Figure 5, starting from the sink node to node N, there are a combination of five route paths, namely: Sink-N, Sink-F-N, Sink-G-N, Sink-F-K-N, and Sink-G- C-N. The total number of the hops comprises of 1, 2, 2, 3 and 3, in that order, and the energy costs involved are 0, 20, 30, 50 and 50, respectively. If node N gets the RREQ packet during the initial period from Sink-N, it registers 0 to be the energy cost and 1 to indicate the smallest total of hops. Once node N gets a RREQ identical message through the remaining four route paths, it computes the total of hops and contrasts it to the smallest number of hops in its routing table. Since the total number of hops of the route list for all the four route paths exceeds 1, it will reject the four Route Request identical messages. 3.4. Paths Overlapped Filtering Additional method during Router Request message was to filter overlapped routing paths to minimize the routing overhead. From Figure 6, node R gets three RREQs and that denotes three routing paths Sink-F-K, Sink-N-K and S-N-V. These all have an equal number of hops, that is 3 hops. However, the method does not only forward them, but also examines if the routing paths are node-disjoint or otherwise before forwarding. When there are overlapped routing paths, decisions are taken to reject one of them for node-disjoint. Therefore, node R compares RREQs when it received the messages within a specific period. As a result, the routing path, Sink-N-K-R, which includes a common overlapped link K-R when equated with that of path Sink-F-K-R. It also has additional overlapped link, Sink-N, when compared with the path, Sink-N-V-R. Consequently, it rejects the routing path, Sink-N-K-R, having extra two common overlapped links when compared with the other paths. Therefore, the concept was to just re- broadcast two RREQ messages containing the routing paths information of Sink-F-K-R and Sink-N-V-R. Thus, node R can be assured of two node-disjoint routing paths. Likewise, node Q transmits two RREQ messages, once assured of two node-disjoint paths. Every neighbor node adapts this method with low routing overhead to transmit RREQ messages. Algorithm 1 highlights the process of RREQ message with low overhead in intermediate nodes. Figure 6. RREQ Propagation with no Overlapped  ISSN: 1693-6930 TELKOMNIKA Vol. 13, No. 3, September 2015 : 904 – 921 912 Algorithm 1: Algorithm to process the RREQ with Low broadcast routing overhead Set myaddress: address intermediate node, ID: broadest id of RREQ, mycost: energy cost of intermediate node Set SA: Source Address, DA: Destination Address, h: hop count, RT: Routing Table, Enr cost: energy in path Step1: Receive RREQ Check for node address equal to target if myaddress == RREQ[DA] then Act as destination to send reply; end if Step 2: if node address exists in RREQ of path then drop RREQ if myaddress exit in RREQ[path] then Drop RREQ; go to step 6. end if Step 3: Compare the pair Source Address, ID of RREQ with each entry of Route table RT if RREQ[SA, ID] not exist in RT [SA, ID] then Record the partial information RREQ into RT by creating new entry RT[SA]=RREQ[SA]; RT[ID]=RREQ[ID]; RT[DA]=RREQ[DA]; RT[hop]=RREQ[hop]; RT[Enr cost]=RREQ[Enr cost]; Assign the hop to L1 L1= RREQ[hop]; Update the fields of RREQ by adding node cost to cost field, appending node address to Route_list field , increasing hop RREQ [Enr cost]= RREQ[Enr cost]+ mycost; RREQ[Route list]=RREQ[Route list]+ myaddress; RREQ [hop]= RREQ[hop]+1; Broadcast the RREQ to another intermediate node else Step 4: if match is found, then currently received RREQ becomes new duplicate RREQ say DRREQ, Assign its hop to L2. if RREQ[SA, ID] exist in RT [SA, ID] then L2= DRREQ [hop]; Step 5: compare the currently received RREQ New duplicate with previous RREQ if L2 = L1 then Drop DRREQ; go to step 6. else RT[SA]=DRREQ[SA]; RT[ID]=DRREQ[ID]; RT[DA]=DRREQ[DA]; RT[hop]=DRREQ[hop]; RT[Enr cost]=DRREQ[Enr cost]; RREQ [Enr cost]= RREQ[Enr cost]+ mycost; RREQ[Route list]=RREQ[Route list]+ myaddress; RREQ [hop]= RREQ[hop]+1; Assign its hop to L1 L1= RREQ[hop]; Broadcast the DRREQ to another intermediate node Step 6: perform step1 to step5. end if end if end if 3.5. Selecting Node-Disjoint Paths Within the set of rules for choosing node-disjoint paths, the destination node is responsible for choosing node-disjoint route paths. To ensure reduction in overhead of the routing table for every node, the total number of node-disjoint routing paths are restricted to the three paths that have the smallest energy cost path and less number of hops even though more TELKOMNIKA ISSN: 1693-6930  Robust Path Construction for Reliable Data Transmissions in Node… Abdulaleem Ali Almazroi 913 than three node-disjoint paths are explored. Therefore if the RREQ messages are received by the sensor node having the required information, it caches the node IDs list for the whole route paths in its routing table and transmits three RREP messages that comprise the route paths in the direction to the sink, which initially sent the RREQ messages. In this instance, the foremost route is the route with the smallest energy cost and number of hops. When the destination node receives another router request message, it contrasts the entire route path in the RREQ message to all the existing node-disjoint route paths in its routing table. Therefore, if there is no shared node among the route path in the RREQ message and any node-disjoint route path, which is cached in the destination’s routing table, then the route path ensures the requirement and conditions of the node-disjoint is recorded in the destination’s routing table. Else, the route path is discarded. In addition, the third node-disjoint path that has smallest energy cost and number of hops is chosen. At the end of this procedure, on-demand data transmissions will take place when sensor nodes detect an interesting event. Algorithm 2 highlights the process of creating node-disjoint paths. Figure 7. Construction of node-disjoint paths Algorithm 2: Algorithm for creating node-disjoint paths Let M is a set of m-1 multiple paths from excluding primary Let p1, p2, p3,...,pm-1 be the m-1 multiple paths that are stored at two dimensional array M. Let Pp is primary path stored 1-D array N. Let D=set of paths that are node-disjoint to primary. Initialize D= ø. min CP:minimum cost of the path. D is computed as follows for k = 1 to m-1 do Select p1from M and Check it is minimum cost of the path and it is node disjoint to primary. if p1== min CP then if p1∩Pp == ø then add p1 to D, M = M - p1; else Drop p1; end if end if end for 3.6. Data Packet Segmentation and Encoding The data packet is divided into N sub-packets having the same sizes , and an overhead part of H+1, where HN. Moreover, it also appends the  ISSN: 1693-6930 TELKOMNIKA Vol. 13, No. 3, September 2015 : 904 – 921 914 error correction codes 1 2 , , ,.... H C C C C of equal size as the data fragment, which are added to the original packet as revealed in Figure 8. The error correction codes and data fragments have the same length of l bytes and should be multiple of 8. The error correction codes are computed as a function of the information bits to supply redundant information by using an XOR-based Forward Error Correction FEC technique. XOR-based FEC technique does not involve high storage space or high computation power. The correction codes are calculated as below: Where  represents exclusive XOR operation. Figure 8. Packet structure 3.7. Data Decoding and Recovery After calculating the XOR error correction codes, the fragments of the original packet , alongside with the error correction codes , are forwarded through the available multipath. [26] demonstrated that if H or less fragments are lost out of the N+H total data and overhead correction codes, the original N packet fragments can be reassemble by XOR operation. The original packet could be reassembled as below: 1 2 3 D , , , .... N D D D 1 2 3 , , , ,.... H C C C C C TELKOMNIKA ISSN: 1693-6930  Robust Path Construction for Reliable Data Transmissions in Node… Abdulaleem Ali Almazroi 915 Figure 8 shows the packet fragmentation and the fields in every sub-packet. As indicated in the legend to Figure 8, the FL field is fixed fragment length and the fragment should have a length, which is a multiple of 8. The ID, signifying the identification field, is a distinctive identifier allocated to every packet being broken up. The field is utilized via the sink node to reconstruct and reassemble packets without accidentally mixing fragments from different packets. More fragments field MF has its bit set to 1 for all fragments, excluding the last one, which is set to 0. When the fragment with a value of zero in the MF field bit is recognized, the sink node knows that it has received the last fragment of the packet. The segment-offset field resolves the problem of sequencing fragments by indicating the location of every fragment in the sink node as in the original packet.

4. Simulation Setup