Chapter 3 Proposed Efficient Cluster-based Data Dissemination Scheme
3.2 Cluster formation and data dissemination path selection
3.2.1 Cluster formation
In this phase, we set the hop count of each node by using a hop count update procedure, as illustrated in Figure 4. Initially, the hop count of each node is set to the total number of sensor nodes in the sensor field. When an interest is propagated into the sensor field for the first time, the cluster formation mechanism will be performed, and the interest will be propagated to all sensor nodes in the sensor field. Before the interest is propagated into the sensor field, the HOP_COUNT field in a piggybacked interest will be set to the value of the
NEIGHBOR_ID NEIGHBOR_STATUS
0 31 39 71
NEIGHBOR_HOP_COUNT
Figure 3. Structure of a neighbor information table.
hop count stored in the sink plus one. When a sensor node receives the interest, the sensor node will compare its hop count with the value stored in the HOP_COUNT field of the received interest. If the hop count value stored in the sensor node is larger than the value of the HOP_COUNT field in the received interest, the sensor node updates its hop count by the value stored in the HOP_COUNT field of the received interest. Otherwise, the interest will be discarded. Then, the sensor node checks whether there are more interests coming in or not. If the sensor node receives other interests, the sensor node must compare the hop count value with the value of the HOP_COUNT field in the recently received interests again to decide whether the hop count value needs to be updated or not. If the sensor node does not receive any more interests, it replaces the value of the HOP_COUNT field in the received interest with the value of the sensor node’s hop count plus 1. Finally, the sensor node sends the updated interest to other sensor nodes. When an interest is diffused throughout the entire sensor field, each node will be set a new hop count.
A sensor node receives an interest
Node’s hop count >
Interest’s HOP_COUNT?
Update node’s hop count Discard the interest
Done
HOP_COUNT = hop count + 1 Send the updated interest to neighbors
N Start
Figure 5 is an example schematic chart of the hop count update procedure shown in Figure 4. In Figure 5(a), each node is assigned an ID and the initial hop count in each sensor node is set to the value of total number of sensor nodes in the sensor field. After initialization, the interest with HOP_COUNT set by 1 is sent to the sensor field. Figure 5(b) shows that nodes, A, B, and C, that receives an interest and compares its hop count with the HOP_COUNT of the received interest. Nodes A, B, and C update their hop counts by the HOP_COUNT of the received interest because the HOP_COUNT of the received interest is smaller than their hop counts. Subsequently, nodes A, B, and C replace the HOP_COUNT of the received interests by the value of their hop counts plus 1. Finally, nodes A, B, and C send the updated interests to neighbor sensor nodes. In Figure 5(c), nodes D, E, F, and G receive the updated interests which are sent by nodes A, B, and C. Nodes D, E, F, and G also update their hop counts by the HOP_COUNT value in the updated interests according to the hop count update procedure. Each node will set a new hop count when an interest is diffused throughout the entire sensor field, which is shown in Figure 5(d).
Figure 5. An example schematic chart of the hop count update procedure (a) initialization, (b) start to update, (c) rebroadcast to update, (d) finish.
Figure 6 illustrates flowcharts of the actions taken by cluster heads, cluster members, and border nodes. Figure 6(a) shows the actions taken by a cluster head. After the cluster formation is finished, a cluster head will piggyback its ID, status, and the hop count value plus 1 into the NODE_ID, STATUS, and HOP_COUNT fields in the received interest. After finishing the update of the received interest, the cluster head then rebroadcasts the updated interest to its cluster members and border nodes. Figure 6(b) illustrates the actions taken by a cluster member. If a cluster member receives a modified interest, the cluster member will replace its hop count with the HOP_COUNT in the modified interest. The cluster member also stores NODE_ID, STATUS and HOP_COUNT minus 1 in the modified interest to the neighbor information table. Figure 6(c) depicts the actions taken by a border node. If a border node receives a modified interest, the border node will compare its hop count with the HOP_COUNT of the modified interest. If the HOP_COUNT in the modified interest is larger than the border node’s hop count, the border node stores NODE_ID, STATUS, and HOP_COUNT minus 1 in the modified interest to the corresponding fields in the neighbor information table, then discards the interest. Otherwise, the border node will replace its hop count with the HOP_COUNT of the modified interest. Besides, the border node also stores NODE_ID, STATUS, and HOP_COUNT minus 1 in the modified interest to the corresponding fields in the neighbor information table. Afterwards, the border node checks whether there are more interests coming in. If the border node receives more interests, the hop count must be checked again. No matter the border node updates its hop count or not, it updates the received interest according to its NODE_ID, STATUS, CH1_ID, CH2_ID, and HOP_COUNT, and sends the updated interest to each cluster head that sends the modified interest to the border node. The border node uses this interest to notify the cluster heads that this border node belongs to them.
Done Start (Cluster head)
Rebroadcast the modified interest to notify its cluster members and border nodes Piggyback its ID, status and the
value of its hop count plus 1 to the NODE_ID, STATUS, and
HOP_COUNT of an interest
(a) Cluster head
Receive a modified interest from its cluster head and update its hop count
according to the HOP_COUNT of the modified interest.
Done
Record NODE_ID, STATUS and HOP_COUNT minus 1 of the modified interest in its
neighbor information table
Update the modified interest is according to its control information and send the
modified interest to its cluster heads N
Record NODE_ID, STATUS and HOP_COUNT minus 1 of the modified interest in its
neighbor information table Record NODE_ID, STATUS
and HOP_COUNT minus 1 of the modified interest in its
neighbor information table
(c) Border node Start
(Border node)
Figure 6. Flowcharts of the actions taken by (a) cluster heads, (b) cluster members, and (c) border nodes after the cluster formation is finished.
Figure 7 shows an example of actions taken cluster heads, cluster members, and border nodes. After the cluster formation is finished, node B is the first cluster head formed. Node B piggybacks its ID, status, and its hop count plus 1 into the NODE_ID, STATUS, and HOP_COUNT of an interest. The interest then will be rebroadcast to its cluster member nodes A, C, D, E, and G. Nodes A, C, D, E, and G update their hop counts according to the HOP_COUNT in the modified interest and record the control information of node B in their neighbor information tables. When nodes I, K, and M become cluster heads subsequently, nodes I, K, and M also send the modified interests to their cluster members. Because nodes E, F, G, J, and L receive more than two modified interests, nodes E, F, G, J, and L will become border nodes. Node E, F, G, J, and L compare their hop counts with the HOP_COUNT of the modified interests which nodes I, K, and M sent, and update their hop counts. Nodes E, F, G, J, and L record the control information of nodes E, F, G, J, and L in their neighbor information tables. Finally, nodes E, F, G, J, and L update the modified interests according to their control information and send the modified interests to their cluster heads.
Figure 7. An example of actions taken by cluster heads, cluster members, and border nodes.