## 3 CENTERA: Our Centralized Trust-Based Efficient Routing Protocol with Authentication
### Routing Information Dissemination Block  
Finally the Routing Information Dissemination Block is initiated to synchronize the pass number and distribute the routing information to the network sensor nodes. The synchronization is done by sending the number of activity periods (the pass number) as seen by the BS and thus, all nodes will be synchronized.  
As for the efficient dissemination of the routing information, the block tries to minimize duplicates information sent over the nodes in order to minimize their communication overhead. This is done by calculating path fragments in the WSN. The path fragment is a path without any bisection. The BS determines the path fragments by first determining all the overlapping paths and then deducing the list of all the path fragments (overlapping by a maximum of one node) and finally uniquely numbering each fragment. This way the overhead of the update messages transmitted through the sensor nodes is decreased to a minimum.  
The path fragments, shown in Figure 1, have the following format--{Message Type = 21 [one byte], Path Number [one byte], Path Intersection [one byte of the form path.node], Total Number [one byte], List of N Nodes [N bytes], MAC [x bytes]}.  
The path number is the unique number that the BS gives to each path, and the path intersection has the format path.node specifying to which node of which path is the current path connected to. The total number specifies the number of nodes in the current path. When a node receives a path fragment, it may encounter three cases:  
1. If the node finds itself to be part of the path, it saves the path number together with its location in the current path and the uplink node for that path. In addition, it performs the following: 1. it sets its next hop as the previous location node in the path fragment 2. it adds to its uplink neighbors the next location node in the path fragment 3. it forwards the packet to the next location node in the path fragment 2. If the node finds itself to be the intersection byte node (path.node = itself) 1. it adds the new path number to the paths it belongs to, together with the uplink to reach that path (in case there were more paths fragmenting from that path) 2. it adds to its uplink neighbors the next location node in the path fragment 3. it forwards the packet to the next location node in the path fragment 3. If the node is not part of the path and it is not itself the intersection node, it checks if it has previously saved the path in the intersection node (path.node). This case occurs when a further-away path fragment is sent through the preceding distributed fragments from the BS; in other words, a closer node to the BS will not appear in the farther path fragment even though it is part of the full path:* it adds the new path number to the paths it belongs to, together with the uplink to reach that path (in case there were more paths fragmenting from that path)
* it forwards the packet to its uplink neighbor to reach the path in the intersection node (path.node)--this uplink neighbor is saved from a previous packet  
From this point on and until the next path fragment message, every node sends its periodic reading only through its next hop neighbors and forwards only the packets of its designated uplink neighbors as instructed by the BS. Note that in case of an authentication scheme set, the BS signs each path fragment before forwarding it.