An Adaption Broadcast Radius-Based Code Dissemination Scheme for Low Energy Wireless Sensor Networks

Due to the Software Defined Network (SDN) technology, Wireless Sensor Networks (WSNs) are getting wider application prospects for sensor nodes that can get new functions after updating program codes. The issue of disseminating program codes to every node in the network with minimum delay and energy consumption have been formulated and investigated in the literature. The minimum-transmission broadcast (MTB) problem, which aims to reduce broadcast redundancy, has been well studied in WSNs where the broadcast radius is assumed to be fixed in the whole network. In this paper, an Adaption Broadcast Radius-based Code Dissemination (ABRCD) scheme is proposed to reduce delay and improve energy efficiency in duty cycle-based WSNs. In the ABCRD scheme, a larger broadcast radius is set in areas with more energy left, generating more optimized performance than previous schemes. Thus: (1) with a larger broadcast radius, program codes can reach the edge of network from the source in fewer hops, decreasing the number of broadcasts and at the same time, delay. (2) As the ABRCD scheme adopts a larger broadcast radius for some nodes, program codes can be transmitted to more nodes in one broadcast transmission, diminishing the number of broadcasts. (3) The larger radius in the ABRCD scheme causes more energy consumption of some transmitting nodes, but radius enlarging is only conducted in areas with an energy surplus, and energy consumption in the hot-spots can be reduced instead due to some nodes transmitting data directly to sink without forwarding by nodes in the original hot-spot, thus energy consumption can almost reach a balance and network lifetime can be prolonged. The proposed ABRCD scheme first assigns a broadcast radius, which doesn’t affect the network lifetime, to nodes having different distance to the code source, then provides an algorithm to construct a broadcast backbone. In the end, a comprehensive performance analysis and simulation result shows that the proposed ABRCD scheme shows better performance in different broadcast situations. Compared to previous schemes, the transmission delay is reduced by 41.11~78.42%, the number of broadcasts is reduced by 36.18~94.27% and the energy utilization ratio is improved up to 583.42%, while the network lifetime can be prolonged up to 274.99%.

types of data transmission in wireless sensor networks. One is an n-to-1 data collection mode. In this mode, the sink is usually located in the center of the network, and n ordinary nodes are randomly deployed in the network. Nodes generate a data packet in one data collection cycle. Then, n data needs to be quickly transmitted to the sink. This is an n-to-1 data collection mode. The other data propagation model is studied in this paper. The program codes of the sink under this propagation mode need to be transmitted to all nodes in the network. This is a 1-to-n mode.
The following describes the data propagation method in n-to-1 data propagation mode. One of the data collection methods called converged cast is a typical method for data collection, which can be seen in Figure 1 [52]. Each node in the network generates a data packet in one data collection period and needs to send it to the sink. Due to the redundancy between data, data fusion is used to collect data. Data fusion is an n-to-1 data fusion method. That is, after the n data packets meet, the merged data is still a data packet. To save energy and minimize delay, Figure 1 gives a concurrent data collection method [52]. First, the network is divided into multiple sets. There is only one dominator (black nodes in Figure 1) in each set. The other nodes are called dominatees. Any node in the network must belong to a set [52]. In this way, data in the entire network can be collected to sink through the following two processes. The first process is for each dominatee (white nodes in Figure  1) to send data to the dominator and for each dominator to fuse all the data received into a packet (see the left of Figure 1). Then, in the second step, dominators send data to the sink through a multihop route, as shown in the right of Figure 1   In this paper, we study a 1-to-n transmission method. That is, a source node transmits data to n nodes [25]. Such a method is often applied to diffuse program codes [25]. A sink disseminates the updated program codes to each node in the network, so that nodes can acquire new functions after updating the software [25]. Since the wireless network has the function of broadcasting, multiple recipients can receive data packets after one broadcast. Therefore, the use of broadcasting can substantially reduce the number of transmissions to nodes, thereby reducing the energy consumption of the network [25,53]. Researchers have summarized this problem as the issue of Minimumtransmission broadcast (MTB) [25]. One way to solve the MTB problem is to construct a Minimum Connected Dominating Set (MCDS) for the network [54]. Then the nodes on the MCDS broadcast to allow data to be transmitted to each node in the network.
Different from the node periodic awake/sleep mode of operation in this paper, the initial MTB study assumes that the nodes of the wireless network or the wireless ad hoc networks (WANETs) are all working continuously. Therefore, these kinds of studies often use a Set-Cover-based Approximation (SCA) scheme [28] (actually similar to MCDS). In the SCA scheme, there are two main steps: (a) Select a node set that can cover the entire network. These nodes are called covering nodes. This problem is the so-called set covering problem. (b) Construct a broadcast backbone based on these covering nodes. After the completion of the above, codes can be broadcasted along the broadcast In this paper, we study a 1-to-n transmission method. That is, a source node transmits data to n nodes [25]. Such a method is often applied to diffuse program codes [25]. A sink disseminates the updated program codes to each node in the network, so that nodes can acquire new functions after updating the software [25]. Since the wireless network has the function of broadcasting, multiple recipients can receive data packets after one broadcast. Therefore, the use of broadcasting can substantially reduce the number of transmissions to nodes, thereby reducing the energy consumption of the network [25,53]. Researchers have summarized this problem as the issue of Minimum-transmission broadcast (MTB) [25]. One way to solve the MTB problem is to construct a Minimum Connected Dominating Set (MCDS) for the network [54]. Then the nodes on the MCDS broadcast to allow data to be transmitted to each node in the network. Different from the node periodic awake/sleep mode of operation in this paper, the initial MTB study assumes that the nodes of the wireless network or the wireless ad hoc networks (WANETs) are all working continuously. Therefore, these kinds of studies often use a Set-Cover-based Approximation (SCA) scheme [28] (actually similar to MCDS). In the SCA scheme, there are two main steps: (a) Select a node set that can cover the entire network. These nodes are called covering nodes. This problem is the so-called set covering problem. (b) Construct a broadcast backbone based on these covering nodes. After the completion of the above, codes can be broadcasted along the broadcast backbone. Since nodes on the broadcast backbone cover all the nodes in the network, each node on the broadcast backbone broadcasts once, and it can ensure that codes are propagated to each node of the network. Therefore, constructing a backbone that can cover the entire network and reach the minimum transmissions becomes the key in this method. Different broadcast backbones require different numbers of broadcasts.
Research in [28] shows that such an SCA scheme is a complete NP problem.
Then, some researchers proposed the MTB problem in the duty-cycle based network, called the MTB problem in duty-cycled networks (MTB-DC problem) [28]. In this study, nodes are working periodically. In general, one period is divided into k time slots. The node selects one of the time slots as a working slot and sleeps in other time slots. In such a network, the number of broadcasts required for code propagation will be much greater than the number when nodes are always working. This is because, for a covering node, when it broadcasts, the nodes in its coverage range are not all awake at the moment. Only nodes that are in the awake state of this time slot can receive broadcast packets. Therefore, in such a network, the most extreme situation is that if the nodes in the coverage node covering range choose k different time slots, respectively, the covering node needs to broadcast k times to transmit codes to each node. Thus, more broadcasts are generated than in the no duty-cycle based network. Obviously, the MTB scheme proposed in the previous no duty-cycle based network can be applied to the duty-cycle based network. Hong et al. [28] proposed a modified MTB scheme. In the modified MTB scheme, only a maximum of k broadcasts per node on the broadcast backbone are needed to ensure that each node can receive data. However, Hong et al. [28] confirmed that the performance of this modified strategy based on the original MTB scheme is not necessarily optimized. Therefore, Hong et al. [28] proposed two new MTB-DC schemes: the centralized SCA (CSCA) algorithm, and the distributed SCA (DSCA) algorithm, respectively. The complexity of these two algorithms is: for CSCA algorithm, 3(ln ∆ + 1) approximation ratio and O(n 3 ) time complexity (∆ is the maximum degree of the network); for the DSCA algorithm, a constant approximation ratio and both linear time and message complexities.
In an MTB scheme, the purpose of reducing the number of broadcasts is to save energy, and reducing delay is another important research objective of this type of strategy. We proposed an adjustable duty cycle-based fast disseminate (ADCFD) scheme in [25] to minimize the number of broadcasts while reducing the time required for broadcasting for smart wireless software-defined networks. In the code transmission, the number and time of broadcasts required to broadcast are related to the duty cycle used by the node. In general, the greater the duty cycle of a node, the smaller the number of broadcasts and delay required for code transmission. The most specific example is that if the node is always awake without sleeping, i.e., the duty cycle is 1, then it is the same as the MTB in [54], and each covering node only needs to broadcast once, while the smaller the duty cycle, the larger the number of broadcasts and delay. For example, if a node only has one time slot awake in k time slots, it means that it needs to broadcast k times in the worst case. Obviously, the larger the number of k is, the larger the number of broadcasts is. Therefore, another effective way to reduce propagation times and delays is to increase duty cycle (decrease k), but increasing the duty cycle consumes more energy, thus reducing network lifetime. [25] found that during data collection, the area far from sink has energy surplus, so in the ADCFD scheme, the remaining energy of these regions is fully utilized to increase the duty cycle of nodes in this region so that the number of broadcasts and delay for nodes in these region can be decreased, and the performance of code transmission is improved. There are some similar studies. For example, Wieselthier et al. [55] proposed a scheme, whose main idea is to build a minimum transmission tree to reduce transmission delay. Le Duc et al. [27] proposed a level-based approximation scheme. In his scheme, the nodes in the broadcast backbone remain active. Thus, data can be quickly transmitted to the broadcast backbone nodes far away from the data source, while other nodes not on the broadcast backbone work in the duty-cycled mode. In this way, as a whole, most nodes adopt a duty-cycled mode. Only the nodes on the broadcast backbone are always active, so the energy consumption is relatively small, but it can effectively reduce the delay. Similar research on duty cycle WSNs was also presented in [56,57].

System Model
The software defined wireless sensor network (SDWSN) in this paper consists of m homogenous static sensor nodes v i |i ∈ {1 . . . m} and the sink v 0 , so the node set can be indicated as The same as in previous research [27], the network can be abstracted as a unit disk graph G = (M, ), and is the set of edges. A directed edge from node u to node v exists if Euclidean distance between u and v is within the broadcast radius of u. Broadcast radius of each node is variable, according [58]. The network radius is R. Sensor nodes are powered by battery with limited energy, while the energy of sink is unlimited.
During data transmission and reception, an uncoordinated duty-cycle mechanism is adopted, thus, it is necessary to conduct time synchronization among nodes. Global time is divided into several working periods. Each working period is composed of |T| time slots, where T is the set of time slots, indicated as T = {0,1,2, . . . , |T| − 1}. Each node v has two status, active and sleep, and chooses its active time slot τ v randomly among T. A node is only able to receive in its active time slot but can wake up to transmit in any time slot. Considering the working period of a network is 3, then T = {0,1,2}. And a node choose its active time slot 0, then its active/sleep status is as shown in Figure 2.

System Model
The software defined wireless sensor network (SDWSN) in this paper consists of homogenous static sensor nodes | ∈ {1. . } and the sink , so the node set can be indicated as ℳ ≜ { = , , , … , }. The same as in previous research [27], the network can be abstracted as a unit disk graph G = (ℳ, ℰ), and ℰ is the set of edges. A directed edge from node u to node v exists if Euclidean distance between u and v is within the broadcast radius of u. Broadcast radius of each node is variable, according [58]. The network radius is R. Sensor nodes are powered by battery with limited energy, while the energy of sink is unlimited.
During data transmission and reception, an uncoordinated duty-cycle mechanism is adopted, thus, it is necessary to conduct time synchronization among nodes. Global time is divided into several working periods. Each working period is composed of |T| time slots, where T is the set of time slots, indicated as T = {0,1,2, ..., |T| − 1}. Each node v has two status, active and sleep, and chooses its active time slot randomly among T. A node is only able to receive in its active time slot but can wake up to transmit in any time slot. Considering the working period of a network is 3, then T = {0,1,2}. And a node choose its active time slot 0, then its active/sleep status is as shown in Figure 2. The central node is responsible for disseminating codes to the entire network and collecting data of all sensors. The code dissemination we study in this paper can be described as: first collects information of network topology and active time slot of each node, then it builds the broadcast backbone and start to broadcast program codes to neighbor nodes, then the program codes are transmitted from those neighbor nodes to outside nodes, until program codes reach every node in the network.

The Energy Consumption Model
The energy consumption of a node contains two aspects: (1) The energy consumption for transmitting data packets , (2) the energy consumption for receiving data packet . is described as follows: is the amount of transmitting data bit of node . is the broadcast radius of node . is the energy of transmitting circuit loss. , is energy of power amplification loss for the Free Space Model and Multi-path Fading Model, respectively.
Energy consumption for data transmitting is a piecewise function. When the broadcast radius is less than threshold , the Free Space Model is taken to calculate power amplification loss. When the broadcast radius is not less than , power amplification turns to a Multi-path Fading Model. The central node v 0 is responsible for disseminating codes to the entire network and collecting data of all sensors. The code dissemination we study in this paper can be described as: v 0 first collects information of network topology and active time slot of each node, then it builds the broadcast backbone and start to broadcast program codes to neighbor nodes, then the program codes are transmitted from those neighbor nodes to outside nodes, until program codes reach every node in the network.

The Energy Consumption Model
The energy consumption of a node contains two aspects: (1) The energy consumption for transmitting data packets E i T , (2) the energy consumption for receiving data packet E i R .
E i T is described as follows: Energy consumption for data transmitting is a piecewise function. When the broadcast radius is less than threshold d 0 , the Free Space Model is taken to calculate power amplification loss. When the broadcast radius is not less than d 0 , power amplification turns to a Multi-path Fading Model. E i R is described as follows: Q i R is the amount of receiving data bit of node v i . Thus, the total energy consumption for node v i is: The parameters adopted in the energy model are similar to those given in [57] and their values are listed in Table 1.

Problem Statement
This paper aims to design an ABRCD scheme. This scheme can reduce transmissions and broadcast delays, and at the same time, increase the network lifetime, energy utilization ratio compared with previous schemes. Thus, ABRCD aims to minimize transmissions, minimize delay, maximize lifetime and maximize energy utilization. Details of the four aspects are as follows: (1) Minimization of transmissions. As a sensor has multiple neighbors and the chosen active time slots of neighbors are often different, a node often has to broadcast several times. Transmissions of the network is the sum of broadcast times of each node when program codes arrive at the edge of the network. LBAS provides a method to reach the minimum transmissions. The ABRCD scheme reduces transmissions further by enlarging the broadcast radius of some nodes. Thus, a node has more neighbors, bringing probability to reach more nodes in one broadcast. Let B = (V B , E B ) denote the final backbone, where V B ∈ M, and E B ∈ . Let i be the set of transmitting time slots of v i , the value of transmissions can be calculated as: (2) Minimization of delay. The broadcast delay T is the number of time slots taken for codes to be transmitted from the code source to the boundary of a network. As the active time slots of neighbors are often different, there is a waiting time between two broadcasts. Suppose there are two neighbors α, β for a node, and broadcasting to α is ahead of β, the waiting time can be calculated as τ β − τ α when τ β ≥ τ α , or τ β − τ α + |T| when τ β < τ α . It is known that decrement in the number of transmissions leads to decrement in broadcast delay. Thus, ABRCD provides a reduction in broadcast delay by generating less number of transmissions. Let v be the parent of node v in the backbone. The delay taken for codes to arrive at node v can be calculated as: and the delay for program codes to arrive at the network edge can be calculated as: (3) Maximization of network lifetime. Lifetime in this paper is defined as the number of periods the network works until the first dead node appears, for after the first node dies, the topology of network is destroyed. The connectivity and coverage of the network are severely affected, leading the network to be unable to play the designated function. ABRCD generates an improvement in network lifetime because enlarging the broadcast radius for nodes near an original hot-spot makes them reach the sink directly without forwarding by nodes in the hot-spot, and not only in hot-spot, but also nodes in other areas forward less due to the larger broadcast radius. Thus, the highest data burden due to forwarding is reduced and the highest energy consumption (energy consumption of nodes in hot-spot area) is reduced. Lifetime can be expressed as: (4) Maximization of energy utilization. In ABRCD, network energy consumption is mainly determined by the data load and broadcast radius. The energy consumption theory in [57] is that energy consumption is much more in hot-spot areas than that at areas far from the sink. The network topology becomes broken and the entire network can't be used when the first dead node appears. At this time about 90% energy is not used. The original idea for ABRCD is to enlarge the radius for nodes far from the sink to better use the energy surplus at those nodes, since radius enlarging brings less data burden, as the number of forwarding times is less. The energy consumption of some nodes is reduced. However, as lifetime is improved, even though energy consumption of some nodes in one period is less, with more working periods and larger radius of nodes far from sink, energy utilization is improved. Energy utilization ratio can be calculated as: Summing up, the optimization goal of ABRCD in this paper is:

Research Motivation of ABRCD
During data collection, all sensors send their sensed data to a sink. Nodes near the sink carry a great amount of data, causing much energy consumption of these nodes. Once the energy runs out in a hot-spot area, the topology of the entire network is destroyed. The network is not able to work appropriately, while there is a lot of energy surplus in nodes far from sink. In order to make use of the energy surplus in nodes far from the sink, we enlarge the transmission radius of these nodes, and is different from previous studies in which the node transmission radius are all same as in Figure 3. Thus, delay can be reduced while lifetime is not affected.
LBAS provides an algorithm that aims to reach the minimum transmissions [27]. On the basis of LBAS, ABRCD aims to generate less number of transmissions further by enlarging the broadcast radius of nodes far from the sink. The method to assign a radius to each node is to first zone the network into different areas, and then assign a corresponding broadcast radius to the nodes in each area. Our idea is to zone networks according to their distance to the sink. We zone the entire network into several rings, whose width w i grows by geometric progression as shown in Figure 4. Nodes in a certain zone have a corresponding radius, which has the same length as the width w i . If the original radius is r, and zoning distance set can be denoted as {w 1 , w 2 , . . . , w N }. d 1 = r, common ratio q can be defined as: If q = 2, and R = 7r, network zoning is shown in Figure 4, while the original zoning is shown in Figure 3.

Definition 1 (Layer). Given node v, at
away from sink, layer of v is defined as the hop count from sink to v under ideal conditions. The ideal conditions are that there is always a forwarding node on the intersection of the edge of zoning area and the straight line from sink to the node v. Like , , , as forwarders for v in Figure 3, and , as forwarders for v in Figure 4.
In ABRCD, the number of layers of the entire network can be calculated as: Layer of v can be calculated as:

Definition 1 (Layer). Given node v, at
away from sink, layer of v is defined as the hop count from sink to v under ideal conditions. The ideal conditions are that there is always a forwarding node on the intersection of the edge of zoning area and the straight line from sink to the node v. Like , , , as forwarders for v in Figure 3, and , as forwarders for v in Figure 4.  Definition 1 (Layer). Given node v, at d v away from sink, layer of v is defined as the hop count from sink to v under ideal conditions. The ideal conditions are that there is always a forwarding node on the intersection of the edge of zoning area and the straight line from sink to the node v. Like v 4 , v 3 , v 2 , v 1 as forwarders for v in Figure 3, and v 2 , v 1 as forwarders for v in Figure 4.

Definition 2 (Level).
Given node v, at d v away from sink, level of v is defined as hop count from sink to v under practical condition. The practical condition is the hop count based on the actual topology. Theorem 1. In LBAS, the number of layers of the entire network can be calculated as: Layer of v can be calculated as: In ABRCD, the number of layers of the entire network can be calculated as: Layer of v can be calculated as: where L and L v are both integers making the right side of equations just not less than the left side. Thus: Like in Figure 3, L = 7, L v = 6.
In ABRCD, R and d v are sum of some width growing in geometric progression, and where N and n v are both integers making the right side of equation just bigger than the left side. Thus: Like in Figure 4, N = 3, n v = 3.

Theorem 2.
In ABRCD, the broadcast radius for each node can be calculated as: Proof. As the radius-assigning method introduced before, nodes in a certain zone are assigned a radius that has the same length as the width of the zone. The width of the zone is related to the layer of the node, and the layer of node v can be calculated using Equation (11). Then the broadcast radius of node v can be calculated using general term formula for geometric sequence: Like in Figure 4, n v = 3, r v = 4r. network topology with every node assigned the same radius r is shown in Figure 5. The network has five layers. When adopting the ABRCD scheme, the topology of network becomes that in Figure 12. The network has four layers this time. The following describes the process of adopting LBAS (Figures 5-7) first and then the process of ABRCD (Figures 12-14). Descriptions below change i and v in Section 3 to ST(i) and Pr(v) for the convenience of algorithm descriptions.
of the node, and the layer of node v can be calculated using Equation (11). Then the broadcast radius of node v can be calculated using general term formula for geometric sequence: An original network topology with every node assigned the same radius r is shown in Figure 5. The network has five layers. When adopting the ABRCD scheme, the topology of network becomes that in Figure 12.         LBAS provides an algorithm to construct a broadcast backbone for reducing broadcast delay and transmission times. Before program codes start to be broadcasted, the broadcast backbone should be built. LBAS is composed of two parts: find the minimum covering node set and building the broadcast backbone. Building the backbone involves two stages. The first is to connect covering nodes from upper to lower level, building covering sub-trees. The second is to connect the sub-trees from lower to upper level, finishing the backbone. Thus, the broadcast backbone construction is accomplished by three steps: (1) Find the minimum covering node set. (2) Build the covering subtree. (3) Finalize backbone.

The network has four layers this time. The following describes the process of adopting LBAS (Figures 5-7) first and then the process of ABRCD (Figures 12-14). Descriptions below change ℑ and in Section 3 to ST(i) and Pr(v) for the convenience of algorithm descriptions.
(1) Find the minimum covering node set For each time slot, a covering set is composed of a minimum number of nodes which can cover all nodes active at that time slot. Nodes in such a set are called covering nodes, and nodes covered by these covering nodes are called covered nodes. A greedy algorithm is adopted to find the minimum covering set. For every time slot i: ① Find a node v covering most uncovered nodes in slot i as covering node and mark nodes covered ② Find other covering nodes until all nodes in time slot i are all covered.
Nodes find above make up the covering node set for time slot i. Covering node sets for all time slots(0~|T| − 1) can be found in the same way. And each covered node v knows its covering node,  LBAS provides an algorithm to construct a broadcast backbone for reducing broadcast delay and transmission times. Before program codes start to be broadcasted, the broadcast backbone should be built. LBAS is composed of two parts: find the minimum covering node set and building the broadcast backbone. Building the backbone involves two stages. The first is to connect covering nodes from upper to lower level, building covering sub-trees. The second is to connect the sub-trees from lower to upper level, finishing the backbone. Thus, the broadcast backbone construction is accomplished by three steps: (1) Find the minimum covering node set. (2) Build the covering subtree. (3) Finalize backbone.
(1) Find the minimum covering node set For each time slot, a covering set is composed of a minimum number of nodes which can cover all nodes active at that time slot. Nodes in such a set are called covering nodes, and nodes covered by these covering nodes are called covered nodes. A greedy algorithm is adopted to find the minimum covering set. Nodes find above make up the covering node set for time slot i. Covering node sets for all time slots(0~|T| − 1) can be found in the same way. And each covered node v knows its covering node, identified as CovNode(v). Figure 6 is a level-clear graph of Figure 5. The minimum covering node set is also shown in LBAS provides an algorithm to construct a broadcast backbone for reducing broadcast delay and transmission times. Before program codes start to be broadcasted, the broadcast backbone should be built. LBAS is composed of two parts: find the minimum covering node set and building the broadcast backbone. Building the backbone involves two stages. The first is to connect covering nodes from upper to lower level, building covering sub-trees. The second is to connect the sub-trees from lower to upper level, finishing the backbone. Thus, the broadcast backbone construction is accomplished by three steps: (1) Find the minimum covering node set. (2) Build the covering sub-tree.
(1) Find the minimum covering node set For each time slot, a covering set is composed of a minimum number of nodes which can cover all nodes active at that time slot. Nodes in such a set are called covering nodes, and nodes covered by these covering nodes are called covered nodes. A greedy algorithm is adopted to find the minimum covering set. For every time slot i: Nodes find above make up the covering node set for time slot i. Covering node sets for all time slots(0~|T| − 1) can be found in the same way. And each covered node v knows its covering node, identified as CovNode(v). Figure 6 is a level-clear graph of Figure 5. The minimum covering node set is also shown in Figure 6, where the minimum covering set for time slot 0 is {v 4 (2) Build the covering sub-tree When building the sub-tree, there are four cases: • Case 1: If a covering node v is covered by another one u at upper level, like in Figure 8a, we assign u to be the parent of v. That is, Pr(v) = u. And Root(v) = Root(u). In Figure 6, v 3 is covered by Case 2: If two covering nodes, u and v, cover each other and they are at the same level, like in Figure 8b, then the one with more neighbors is selected to be the parent of the other. If they have the same number of neighbors, then use id to break the tie. Suppose u is the parent of v. If Root(u) is not set yet, u itself is selected as the root. And Root(v) = Root(u). In subsequent Figure 13, And Root(v) = Root(u). In Figure 6, Default Case: If a covering node v doesn't trigger any of the above cases and it just forms a covering sub-tree with a single node itself, like in Figure 8d, it is the default case. Then v is selected to be the root. Like in Figure 6, when v 2 and v 7 first added to build the sub-tree, they are added itself, with no parent.
(3) Finalizing backbone When finalizing the backbone, from lower to upper level, for the covering nodes which don't have parent, there are three cases: • Case 1: Node v can find a covering node u that covers it at lower level, but Root(u) is at upper level, like in Figure 9, then Pr(v) = u. Root(v) is updated as Root(u). Our example doesn't trigger this case, but it is obvious that the first stage only connects the lower covering nodes to the upper ones or covering nodes at the same level. There could be a covering sub-tree whose root node v is at the upper level compared with its covering node u, but at the lower level compared with Root(u). • Case 2: If node v can't find a parent in Case 1, then it tries to find a neighbor u as parent. u must satisfy one of the following two conditions: (1) u is a covering node in the sub-trees and Root(u) is at upper level than v. Like in Figure 10a, then Pr(v) = u.
(2) u is a connector, and Root(CovNode(u)) is at upper level than v, like in Figure 10b, then u is added to the backbone, and Pr(v) = u, Pr(u) = CovNode(u), Root(v) = Root(CovNode(u)). For all the above two cases, the active time slot of v is added to covering time slots of u. That is, ST(u) = ST(u)∪{AT(v)}. In Figure 7, Pr(v 7 ) is v 4 , because v 4 is a node satisfying condition (1). • Case 3: If node v can't find a parent in all two above cases, then it tries to find a covered node u as parent. u must satisfy one of the following two conditions: (1) u is a connector, and u has a neighbor N(u) already in the backbone, whose root is at upper level than that of v. Like in Figure 11a Node level upper lower k-3 In addition, we use the order of Breadth-first Search (BFS) starting from code source as id to nodes, because in this way breaking ties by id can lead to a broadcast tree with the lowest depth, making it more probable to diminish delays. The process of data dissemination from sink to sensor nodes is shown in Table 2, where information of nodes receiving data in every time slot is concluded. The number of transmissions of adopting LBAS scheme is 9 and delay is 15.  The ABRCD scheme first assigns a broadcast radius according to Equation (12). The topology of adopting ABRCD is shown in Figure 12. It can be observed that directed links exist in ABRCD, because different nodes may have different radii. Situations can arise where node v can cover node u, while node u can't cover node v. Minimum covering set finding and covering sub-tree building are the same as in LBAS, just with changed transmitting radii in different areas ( Figure 12). As the two schemes adopting the same algorithm in the above two stages, we take situations in Figure 13 to better explain LBAS in a foregoing passage. In addition, we use the order of Breadth-first Search (BFS) starting from code source as id to nodes, because in this way breaking ties by id can lead to a broadcast tree with the lowest depth, making it more probable to diminish delays. The process of data dissemination from sink to sensor nodes is shown in Table 2, where information of nodes receiving data in every time slot is concluded. The number of transmissions of adopting LBAS scheme is 9 and delay is 15. Table 2. Data packet dissemination using LBAS.

Period Slot Data Received at Node
The ABRCD scheme first assigns a broadcast radius according to Equation (12). The topology of adopting ABRCD is shown in Figure 12. It can be observed that directed links exist in ABRCD, because different nodes may have different radii. Situations can arise where node v can cover node u, while node u can't cover node v. Minimum covering set finding and covering sub-tree building are the same as in LBAS, just with changed transmitting radii in different areas ( Figure 12). As the two schemes adopting the same algorithm in the above two stages, we take situations in Figure 13 to better explain LBAS in a foregoing passage.  While finalizing backbones has slight differences because of the existence of directed links, the little modification needed in Case 2 and Case 3 is that connectors need to be nodes that can cover node v, instead of just node v covering the connector. The modified Case 2 and Case 3 are illustrated in Figures 15 and 16 respectively. It can be observed that: 1. "Physical link" in Case 2 is replaced by "Directed or double link", because it should be guaranteed that codes can be transmitted from node u to node v. "Physical link" and the "Covering link" of v in Case 3 is replaced by "Directed or double link" for the same reason. 2. "N(u)" is replaced by "f" in Case 3, because when adopting ABRCD, u is required to be the neighbor of f, so that program codes can be transmitted from f to u.  While finalizing backbones has slight differences because of the existence of directed links, the little modification needed in Case 2 and Case 3 is that connectors need to be nodes that can cover node v, instead of just node v covering the connector. The modified Case 2 and Case 3 are illustrated in Figures 15 and 16 respectively. It can be observed that: 1. "Physical link" in Case 2 is replaced by "Directed or double link", because it should be guaranteed that codes can be transmitted from node u to node v. "Physical link" and the "Covering link" of v in Case 3 is replaced by "Directed or double link" for the same reason. 2. "N(u)" is replaced by "f" in Case 3, because when adopting ABRCD, u is required to be the neighbor of f, so that program codes can be transmitted from f to u. While finalizing backbones has slight differences because of the existence of directed links, the little modification needed in Case 2 and Case 3 is that connectors need to be nodes that can cover node v, instead of just node v covering the connector. The modified Case 2 and Case 3 are illustrated in Figures 15 and 16 respectively. It can be observed that: 1.
"Physical link" in Case 2 is replaced by "Directed or double link", because it should be guaranteed that codes can be transmitted from node u to node v. "Physical link" and the "Covering link" of v in Case 3 is replaced by "Directed or double link" for the same reason. 2.
"N(u)" is replaced by "f " in Case 3, because when adopting ABRCD, u is required to be the neighbor of f, so that program codes can be transmitted from f to u.
The modification can be observed in Figure 13. When connecting covering node v 10 to upper covering node v 2 , v 3 owns smaller id number than v 7 , it is selected as the connector with a higher priority in Case 3. v 3 should have been chosen as connector if adopting LBAS scheme, yet it isn't the connector in ABRCD, because it is unable to transmit data to v 10 , So, instead v 7 is chosen as the connector.
When there are directed edges, the above algorithm is very effective and guarantees data can be transmitted to sub-trees at lower level in simulations. Details of the modification are given in Section 4.2.
The final backbone of ABRCD is shown in Figure 14, and the process of data dissemination from sink to sensor nodes is shown in Table 3. The number of transmissions in ABRCD is 5 and delay is 11. Compared with LBAS in Table 2 The modification can be observed in Figure 13. When connecting covering node to upper covering node , owns smaller id number than , it is selected as the connector with a higher priority in Case 3.
should have been chosen as connector if adopting LBAS scheme, yet it isn't the connector in ABRCD, because it is unable to transmit data to , So, instead is chosen as the connector.
When there are directed edges, the above algorithm is very effective and guarantees data can be transmitted to sub-trees at lower level in simulations. Details of the modification are given in Section 4.2.
The final backbone of ABRCD is shown in Figure 14, and the process of data dissemination from sink to sensor nodes is shown in Table 3. The number of transmissions in ABRCD is 5 and delay is 11. Compared with LBAS in Table 2, the number of transmissions is reduced by 44.4% and delay by 26.7%.
From Figures 5 and 12, it can be observed that in ABRCD, nodes far from the sink cover more neighbors with larger radius, which makes it probable for them to cover more nodes in one transmission. Thus, the number of transmissions decreases, and delay also becomes smaller at the same time.  Table 3. Data packet dissemination using ABRCD.

Period Slot Data Received at Node
From Figures 5 and 12, it can be observed that in ABRCD, nodes far from the sink cover more neighbors with larger radius, which makes it probable for them to cover more nodes in one transmission. Thus, the number of transmissions decreases, and delay also becomes smaller at the same time.

Algorithm of ABRCD
As mentioned in Section 4.1, modifications for the LBAS backbone finalizing part are needed because of the existence of directed links. Case 1 doesn't need to be changed, because a covering node u for v can satisfy codes transmitted from u to v, while Case 2 and Case 3 should be modified as follows:

Algorithm of ABRCD
As mentioned in Section 4.1, modifications for the LBAS backbone finalizing part are needed because of the existence of directed links. Case 1 doesn't need to be changed, because a covering node u for v can satisfy codes transmitted from u to v, while Case 2 and Case 3 should be modified as follows: • Case 2: If node v can't find a parent in Case 1, then it tries to find a node u that can cover it. That is, v∊N(u). u must satisfy one of the following two conditions: (a) u is a covering node in the subtree and Root Calculate using its coordinates Figure 16. Connecting T 1 to T 0 using one-hop and two-hop connectors.

Algorithm of ABRCD
As mentioned in Section 4.1, modifications for the LBAS backbone finalizing part are needed because of the existence of directed links. Case 1 doesn't need to be changed, because a covering node u for v can satisfy codes transmitted from u to v, while Case 2 and Case 3 should be modified as follows:

•
Case 2: If node v can't find a parent in Case 1, then it tries to find a node u that can cover it. That is, v∈N(u). u must satisfy one of the following two conditions: (a) u is a covering node in the sub-tree and Root(u) is at upper level than v. Then Pr(v) = u. Thus, the pseudo code of ABRCD is shown in Algorithm 1. Calculate d v i using its coordinates 3.

6.
Construct graph G = ( M, ) based on coordinates and radius of each node 7.
Conduct BFS on G starting from v 0 , obtain the level of each node L(v), and take the order of BFS as id for each node 8.
Find the Minimum Covering Node Sets C i , iT 9.
Build Covering Sub-tree, and obtain the set of root and parent of each node, Root and Pr 10. Finalize Backbone: //Backbone is denoted as B 11. for l in [max({L(x)}) .. 1] do 12.
for each node v, L(v) = l do 13.
if such a forwarder u exists then 20.
Find two forwarders u and f, satisfying 24.

Analysis of Energy Consumption
Data load and energy calculation adopt method in [57], but as the radius for every node is not the same, there is no continuous mathematical formula that can be provided to do the calculation, so we provide a discrete method (Algorithm 2) to measure the data load and energy consumption for nodes at a certain distance away from sink.

Algorithm 2: Discrete method to calculate data load and energy consumption
Input: The whole network radius R, original broadcast radius r, common ratio q, the probability of generating data λ and energy parameters in Table 1 1. Initializetotal_Q to all zeros/*total_Q i denotes a set of total data load in the Sector i */ 2. InitializeQ to all zeros/*Q i is a set of average data load for each node in Sector i */ 3. for i in [R...1] do 4. /*i is the distance from current node v to sink*/ 5.
Treat i as d v and calculate n v using Equation (11) 6.
Calculate energy consumption E(i) using Equation (3) 14. end for 15. Output: Q and E Algorithm 2 first initializes the total data load set total_Q i and the average data load set Q i for each sector to all zeros. Here Sector i denotes a small sector area where nodes are i m away from sink. In Figure 17, S i denotes Sector i. In [57], each sector will forward data towards sink to sector r away from itself. While in ABRCD, broadcast radius is variable, and each sector will forward data towards sink to sector r v away from itself. As the width b for every sector is very small, the area of each sector can be calculated by: Suppose the density of nodes is ρ, then data generated in S i is θibρλ. When nodes in S i send data to sector r v away from itself, the average data burden for each node in the latter is: /*i is the distance from current node v to sink*/ 5.
Treat i as and calculate using Equation (11) 6.
Calculate energy consumption E(i) using Equation (3) 14. end for 15. Output: Q and E Algorithm 2 first initializes the total data load set total_ and the average data load set for each sector to all zeros. Here Sector i denotes a small sector area where nodes are i m away from sink. In Figure 17, denotes Sector i. In [57], each sector will forward data towards sink to sector r away from itself. While in ABRCD, broadcast radius is variable, and each sector will forward data towards sink to sector away from itself. As the width for every sector is very small, the area of each sector can be calculated by: = Suppose the density of nodes is ρ, then data generated in is . When nodes in send data to sector away from itself, the average data burden for each node in the latter is: It can be observed that the average data load is only related to the distance from the current node to the sink, and the distance can represent the data load generated in the current node area. We define total_Q to record the total data load at each distance. Line 7 is to add data generated to the total data load in the current area. Data generated in the current area doesn't have to be received but must be transmitted. Line 9~11 is to measure total data load at away from current node after data transmitting to it. Then line 12 calculates the average data load for each node in current area. Figure 17 shows the process of data collection. Line 7 achieves the calculation of data generated inS , , , … Line 10 achieves the process of data transmission from to and to … Line 12 achieves to calculate average data on each node for , , , … is the set denoting the amount of transmitting data at certain distance. − denotes the amount of receiving data. Then energy consumption is calculated by Equation (3).
Analysis is performed with = 400, = 40, = 0.1, and with q = 1.5, q = 2.0, q = 2.5, q = 3, q = 3.2 It can be observed that the average data load is only related to the distance from the current node to the sink, and the distance can represent the data load generated in the current node area. We define total_Q to record the total data load at each distance. Line 7 is to add data generated to the total data load in the current area. Data generated in the current area doesn't have to be received but must be transmitted. Line 9~11 is to measure total data load at r v away from current node after data transmitting to it. Then line 12 calculates the average data load for each node in current area. Figure 17 shows the process of data collection. Line 7 achieves the calculation of data generated in S i , S i−r v1 , S i−r v1 −r v2 , . . . Line 10 achieves the process of data transmission from S i to S i−r v1 and S i−r v1 to S i−r v1 −r v2 . . . Line 12 achieves to calculate average data on each node for S i , S i−r v1 , S i−r v1 −r v2 , . . . Q i is the set denoting the amount of transmitting data at certain distance. Q i − λ denotes the amount of receiving data. Then energy consumption is calculated by Equation (3).
Analysis is performed with R = 400, r = 40, λ = 0.1, and with q = 1.5, q = 2.0, q = 2.5, q = 3, q = 3.2 respectively. E(i) in Algorithm 2 is taken as energy consumption measurement. Figures 18-24 shows the energy consumption of LBAS and that of ABRCD with a selected common ratio q. The curve of ABRCD is not as smooth as that of LBAS, because calculation of the data load for ABRCD is achieved by a discrete method, while in LBAS, the radius of each node is the same, so a continuous mathematical formula can be used. When using a discrete method, the node receiving data is not exactly r v away from current node, but the lower bound of r v away. Thus, some nodes have to forward additionally while some forward less.
At areas near to sink (1~19 m), Figures 18 and 19 show that energy consumption in ABRCD is not bigger than that in LBAS with any selected q. Energy consumption in original hot-spot area decreases because the data load decreases. The data load decrease in hot-spot areas is caused by more nodes reaching the sink immediately with the larger broadcast radius. Thus, nodes in original hot-spot areas don't have to forward as much data as before. Somehow, the hot-spot area is widened.
At areas far from sink (20~400 m),  show that energy consumption of ABRCD is very high at areas far from sink, while lower than that of LBAS at some nearby areas. That shows that the large radius at far areas reduces the data burden at nearby areas. For q = 1.5, the energy consumption at far area is raised to about 250 nJ and for q = 2.0, about 1350 nJ. However, Figures 22 and 24 (see along with Figures 18 and 19) show that q = 2.5 and q = 3.5 are not proper to choose for conduction, because they generate so large a radius at far areas that the energy consumption at the far areas is even more than that at the hot-spot. When q = 2.5, energy consumption at far areas is almost 20,000 nJ, while approximately 5000 nJ at the hot-spot. When q = 3.5, energy consumption at far area is almost 7500 nJ, while approximately 2500 nJ at the hot-spot. This is not conducive to energy balancing and prolonging the network lifetime.
During several trials and analysis, we find that energy consumption at far areas overwhelms that at near area when q is not less than 3.2, and q between 3.0 and 3.2 achieve nearly the same effect. Thus, q = 3.0 is the most energy-balanced common ratio.  Figures 18-24 shows the energy consumption of LBAS and that of ABRCD with a selected common ratio q. The curve of ABRCD is not as smooth as that of LBAS, because calculation of the data load for ABRCD is achieved by a discrete method, while in LBAS, the radius of each node is the same, so a continuous mathematical formula can be used. When using a discrete method, the node receiving data is not exactly away from current node, but the lower bound of away. Thus, some nodes have to forward additionally while some forward less.
At areas near to sink (1~19 m), Figures 18 and 19 show that energy consumption in ABRCD is not bigger than that in LBAS with any selected q. Energy consumption in original hot-spot area decreases because the data load decreases. The data load decrease in hot-spot areas is caused by more nodes reaching the sink immediately with the larger broadcast radius. Thus, nodes in original hotspot areas don't have to forward as much data as before. Somehow, the hot-spot area is widened.
At areas far from sink (20~400 m),  show that energy consumption of ABRCD is very high at areas far from sink, while lower than that of LBAS at some nearby areas. That shows that the large radius at far areas reduces the data burden at nearby areas. For q = 1.5, the energy consumption at far area is raised to about 250 nJ and for q = 2.0, about 1350 nJ. However, Figures 22  and 24 (see along with Figures 18 and 19) show that q = 2.5 and q = 3.5 are not proper to choose for conduction, because they generate so large a radius at far areas that the energy consumption at the far areas is even more than that at the hot-spot. When q = 2.5, energy consumption at far areas is almost 20,000 nJ, while approximately 5000 nJ at the hot-spot. When q = 3.5, energy consumption at far area is almost 7500 nJ, while approximately 2500 nJ at the hot-spot. This is not conducive to energy balancing and prolonging the network lifetime.
During several trials and analysis, we find that energy consumption at far areas overwhelms that at near area when q is not less than 3.2, and q between 3.0 and 3.2 achieve nearly the same effect. Thus, q = 3.0 is the most energy-balanced common ratio.

Analysis of Energyutilization Ratio and Network Lifetime
The lifetime of LBAS and ABRCD is calculated as Equation (7). As is shown in Figure 25, ABRCD outperforms LBAS in terms of lifetime, because of the reduction of the highest energy consumption. Among the chosen common ratios, q = 3.0 brings the best performance, increasing the lifetime of the network up by 274.99%. This is due to the advantage of energy balancing. Other common ratios prolong the lifetime by 157.20%, 124.92%, 5.79%, 179.92% with q = 1.5, q = 2.0, q = 2.5, q = 3.5, respectively.

Analysis of Energyutilization Ratio and Network Lifetime
The lifetime of LBAS and ABRCD is calculated as Equation (7). As is shown in Figure 25, ABRCD outperforms LBAS in terms of lifetime, because of the reduction of the highest energy consumption. Among the chosen common ratios, q = 3.0 brings the best performance, increasing the lifetime of the network up by 274.99%. This is due to the advantage of energy balancing. Other common ratios prolong the lifetime by 157.20%, 124.92%, 5.79%, 179.92% with q = 1.5, q = 2.0, q = 2.5, q = 3.5, Figure 24. Energy consumption of nodes 20~400 m away from sink with q = 3.5.

Analysis of Energyutilization Ratio and Network Lifetime
The lifetime of LBAS and ABRCD is calculated as Equation (7). As is shown in Figure 25, ABRCD outperforms LBAS in terms of lifetime, because of the reduction of the highest energy consumption. Among the chosen common ratios, q = 3.0 brings the best performance, increasing the lifetime of the network up by 274.99%. This is due to the advantage of energy balancing. Other common ratios prolong the lifetime by 157.20%, 124.92%, 5.79%, 179.92% with q = 1.5, q = 2.0, q = 2.5, q = 3.5, respectively. Distance to sink(m) Figure 24. Energy consumption of nodes 20~400 m away from sink with q = 3.5.

Analysis of Energyutilization Ratio and Network Lifetime
The lifetime of LBAS and ABRCD is calculated as Equation (7). As is shown in Figure 25, ABRCD outperforms LBAS in terms of lifetime, because of the reduction of the highest energy consumption. Among the chosen common ratios, q = 3.0 brings the best performance, increasing the lifetime of the network up by 274.99%. This is due to the advantage of energy balancing. Other common ratios prolong the lifetime by 157.20%, 124.92%, 5.79%, 179.92% with q = 1.5, q = 2.0, q = 2.5, q = 3.5, respectively.  The energy utilization ratio of LBAS and ABRCD is calculated as Equation (8). In Figure 26, ABRCD outperforms LBAS in terms of energy utilization ratio. The effective energy utilization of ABRCD is mainly because of lifetime improvement and radius enlarging. ABRCD improves the energy utilization ratio by 204.70%, 54.14%, 25.14%, 583.42%, 1466.30% with q = 1.5, q = 2.0, q = 2.5, q = 3.0, q = 3.5, respectively. The energy utilization ratio of LBAS and ABRCD is calculated as Equation (8). In Figure 26, ABRCD outperforms LBAS in terms of energy utilization ratio. The effective energy utilization of ABRCD is mainly because of lifetime improvement and radius enlarging. ABRCD improves the energy utilization ratio by 204.70%, 54.14%, 25.14%, 583.42%, 1466.30% with q = 1.5, q = 2.0, q = 2.5, q = 3.0, q = 3.5, respectively.

Transmissions Analysis
Simulations are conduction of Algorithm 1 using Matlab, which is an h-language for algorithm development, data visualization, data analysis and numerical calculation. Constants adopted in conduction are as follows: radius of the whole network R = 400 m, the original transmitting radius = 40, packet generation possibility is = 0.1. Other parameters setting refers to Table 1. Moreover, three proper value of common ratio q 1.5, 2.0, 3.0 mentioned before are applied in the simulation to see their impact.
Transmissions of ABRCD is calculated as Equation (4). and ℑ is from the output of Algorithm 1. The impact of total number of time slots |T| is shown in Figures 27-31, with 200, 400, 600, 800, 1000 fixed nodes, respectively.

Transmissions Analysis
Simulations are conduction of Algorithm 1 using Matlab, which is an h-language for algorithm development, data visualization, data analysis and numerical calculation. Constants adopted in conduction are as follows: radius of the whole network R = 400 m, the original transmitting radius r = 40, packet generation possibility is λ = 0.1. Other parameters setting refers to Table 1. Moreover, three proper value of common ratio q 1.5, 2.0, 3.0 mentioned before are applied in the simulation to see their impact.
Transmissions of ABRCD is calculated as Equation (4). B and i is from the output of Algorithm 1. The impact of total number of time slots |T| is shown in Figures 27-31, with 200, 400, 600, 800, 1000 fixed nodes, respectively.

Transmissions Analysis
Simulations are conduction of Algorithm 1 using Matlab, which is an h-language for algorithm development, data visualization, data analysis and numerical calculation. Constants adopted in conduction are as follows: radius of the whole network R = 400 m, the original transmitting radius = 40, packet generation possibility is = 0.1. Other parameters setting refers to Table 1. Moreover, three proper value of common ratio q 1.5, 2.0, 3.0 mentioned before are applied in the simulation to see their impact.
Transmissions of ABRCD is calculated as Equation (4). and ℑ is from the output of Algorithm 1. The impact of total number of time slots |T| is shown in Figures 27-31, with 200, 400, 600, 800, 1000 fixed nodes, respectively.  It can be observed that ABRCD generates less transmissions than LBAS, and larger q performs better. The number of broadcasts ABRCD generates is reduced up to 36.18~94.27% compared with LBAS. It is because ABRCD assigns large transmitting radius to nodes far from the sink. These nodes have more neighbors, thus, there is more probability to reach more covered nodes in one transmission. A larger radius generates fewer hop counts for codes to disseminate data from the code source to the edge of the network. Thus, the number of broadcasts is less than that of LBAS. Moreover, the ratio of reduction of ABRCD over LBAS decreases with higher |T|. This is because with higher |T|, the number of neighbors receiving codes during one transmission is reduced. When every neighbor has different active time slot with each other, the advantage of codes reaching more nodes in ABRCD is totally lost.
Both schemes generate a larger number of broadcasts when |T| is higher. This is obvious because increasing the number of time slots causes a covering node to need more covering time slots to transmit. When every neighbor has different active time slots with each other, the advantage of covering node set reaching the most covered nodes in one time slot is totally lost. It can be observed that ABRCD generates less transmissions than LBAS, and larger q performs better. The number of broadcasts ABRCD generates is reduced up to 36.18~94.27% compared with LBAS. It is because ABRCD assigns large transmitting radius to nodes far from the sink. These nodes have more neighbors, thus, there is more probability to reach more covered nodes in one transmission. A larger radius generates fewer hop counts for codes to disseminate data from the code source to the edge of the network. Thus, the number of broadcasts is less than that of LBAS. Moreover, the ratio of reduction of ABRCD over LBAS decreases with higher |T|. This is because with higher |T|, the number of neighbors receiving codes during one transmission is reduced. When every neighbor has different active time slot with each other, the advantage of codes reaching more nodes in ABRCD is totally lost.
Both schemes generate a larger number of broadcasts when |T| is higher. This is obvious because increasing the number of time slots causes a covering node to need more covering time slots to transmit. When every neighbor has different active time slots with each other, the advantage of covering node set reaching the most covered nodes in one time slot is totally lost.
neighbor has different active time slot with each other, the advantage of codes reaching more nodes in ABRCD is totally lost.
Both schemes generate a larger number of broadcasts when |T| is higher. This is obvious because increasing the number of time slots causes a covering node to need more covering time slots to transmit. When every neighbor has different active time slots with each other, the advantage of covering node set reaching the most covered nodes in one time slot is totally lost.       As is shown, ABRCD outperforms LBAS, and larger q performs better. The number of broadcasts is reduced up to 36.18~94.27%. Both schemes generate a larger number of broadcast when the network size is higher. This is obvious because every node chooses its time slot randomly, increasing the number of neighbors causes a covering node to need more covering time slots to transmit.
Moreover, with higher network size, the ratio of reduction of ABRCD over LBAS is higher. This is because when the network size is higher, the density of nodes is higher, nodes can reach more neighbors by enlarging radius. In addition, q = 2.0 and q = 3.0 almost reach the same low number of broadcasts for both the impact of |T| and network size. This shows that broadcasts reduction by enlarging the radius has a lowest bound.  As is shown, ABRCD outperforms LBAS, and larger q performs better. The number of broadcasts is reduced up to 36.18~94.27%. Both schemes generate a larger number of broadcast when the network size is higher. This is obvious because every node chooses its time slot randomly, increasing the number of neighbors causes a covering node to need more covering time slots to transmit.
Moreover, with higher network size, the ratio of reduction of ABRCD over LBAS is higher. This is because when the network size is higher, the density of nodes is higher, nodes can reach more neighbors by enlarging radius. In addition, q = 2.0 and q = 3.0 almost reach the same low number of broadcasts for both the impact of |T| and network size. This shows that broadcasts reduction by enlarging the radius has a lowest bound. As is shown, ABRCD outperforms LBAS, and larger q performs better. The number of broadcasts is reduced up to 36.18~94.27%. Both schemes generate a larger number of broadcast when the network size is higher. This is obvious because every node chooses its time slot randomly, increasing the number of neighbors causes a covering node to need more covering time slots to transmit. Moreover, with higher network size, the ratio of reduction of ABRCD over LBAS is higher. This is because when the network size is higher, the density of nodes is higher, nodes can reach more neighbors by enlarging radius. In addition, q = 2.0 and q = 3.0 almost reach the same low number of broadcasts for both the impact of |T| and network size. This shows that broadcasts reduction by enlarging the radius has a lowest bound.
Network size(nodes) Figure 34. The impact of network size with fixed |T| = 60 on the number of broadcasts.
As is shown, ABRCD outperforms LBAS, and larger q performs better. The number of broadcasts is reduced up to 36.18~94.27%. Both schemes generate a larger number of broadcast when the network size is higher. This is obvious because every node chooses its time slot randomly, increasing the number of neighbors causes a covering node to need more covering time slots to transmit.
Moreover, with higher network size, the ratio of reduction of ABRCD over LBAS is higher. This is because when the network size is higher, the density of nodes is higher, nodes can reach more neighbors by enlarging radius. In addition, q = 2.0 and q = 3.0 almost reach the same low number of broadcasts for both the impact of |T| and network size. This shows that broadcasts reduction by enlarging the radius has a lowest bound.

Delay Analysis
Broadcast delay is calculated as Equations (5) and (6).
is from the output of Algorithm 1. Figures 38-42 show the impact of |T| on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less

Delay Analysis
Broadcast delay is calculated as Equations (5) and (6).
is from the output of Algorithm 1. Figures 38-42 show the impact of |T| on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less

Delay Analysis
Broadcast delay is calculated as Equations (5) and (6). v is from the output of Algorithm 1. Figures 38-42 show the impact of |T| on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less depth. Both schemes generate higher delays with larger |T|. This is obvious, because increasing number of time slots makes it more probable for nodes to choose different active time slots, and a covering node needs to wait for more time until its neighbor is the active time slot.

Delay Analysis
Broadcast delay is calculated as Equations (5) and (6).
is from the output of Algorithm 1. Figures 38-42 show the impact of |T| on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less depth. Both schemes generate higher delays with larger |T|. This is obvious, because increasing number of time slots makes it more probable for nodes to choose different active time slots, and a covering node needs to wait for more time until its neighbor is the active time slot.        [43][44][45][46][47][48] show the impact of network size on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less depth. The delay of both the two schemes is not related with network size, because even though a high network size requires many transmissions, it brings high transmitting parallelism at the same time. Moreover, it can be observed that when network size is 200, the reduction ratio is always high, about 55% for q = 1.5, about 65% for q = 2.0, about 75% for q = 3.0 because when the network size is 200, the network is barely connected. Under these circumstances, enlarging the broadcast radius brings dominant benefits. Thus, ABRCD performs LBAS significantly when the network is sparse.   [43][44][45][46][47][48] show the impact of network size on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less depth. The delay of both the two schemes is not related with network size, because even though a high network size requires many transmissions, it brings high transmitting parallelism at the same time. Moreover, it can be observed that when network size is 200, the reduction ratio is always high, about 55% for q = 1.5, about 65% for q = 2.0, about 75% for q = 3.0 because when the network size is 200, the network is barely connected. Under these circumstances, enlarging the broadcast radius brings dominant benefits. Thus, ABRCD performs LBAS significantly when the network is sparse.  Figures 43-48 show the impact of network size on broadcast delay. ABRCD outperforms LBAS, and generally larger q performs better. The broadcast delay is reduced by 41.11~78.42%, because reduction of transmissions leads to a decrement of delay and ABRCD can provide a broadcast tree with less depth. The delay of both the two schemes is not related with network size, because even though a high network size requires many transmissions, it brings high transmitting parallelism at the same time. Moreover, it can be observed that when network size is 200, the reduction ratio is always high, about 55% for q = 1.5, about 65% for q = 2.0, about 75% for q = 3.0 because when the network size is 200, the network is barely connected. Under these circumstances, enlarging the broadcast radius brings dominant benefits. Thus, ABRCD performs LBAS significantly when the network is sparse.

Conclusions
Software-defined wireless networks (SDWNs) bring great benefits for upgrading the services of sensors by updating software codes. This technology is very effective for sensor nodes deployed in the target area such as in environmental monitoring, industrial fields, smart fields and so on. Fast broadcasting of program codes to the entire network and energy conservation become important issues for SDWNs. Previous schemes provide optimization of minimum transmissions with fixed radius. The proposed Adaption Broadcast Radius-based Code Dissemination (ABRCD) scheme provides an idea of changing broadcast radius in geometric progression. Thanks to the benefits of a large radius at far areas that makes nodes to broadcast codes to many neighbors in one transmission and decrease data load at near area. ABRCD allows fast broadcasting and balancing of the energy consumption to increase the network lifetime at the same time. ABRCD can be used to modify many previous algorithms, bringing better performance to previous schemes.
For further study, Adaption Broadcast Radius based Code Dissemination (ABRCD) scheme and the Adjustable Duty Cycle Based Fast Disseminate (ADCFD) [25] scheme shall be combined to make a new scheme to achieve more significant performance improvements.

Conflicts of Interest:
The authors declare no conflict of interest. Figure 48. The impact of network size with fixed |T| = 120 on delay.

Conclusions
Software-defined wireless networks (SDWNs) bring great benefits for upgrading the services of sensors by updating software codes. This technology is very effective for sensor nodes deployed in the target area such as in environmental monitoring, industrial fields, smart fields and so on. Fast broadcasting of program codes to the entire network and energy conservation become important issues for SDWNs. Previous schemes provide optimization of minimum transmissions with fixed radius. The proposed Adaption Broadcast Radius-based Code Dissemination (ABRCD) scheme provides an idea of changing broadcast radius in geometric progression. Thanks to the benefits of a large radius at far areas that makes nodes to broadcast codes to many neighbors in one transmission and decrease data load at near area. ABRCD allows fast broadcasting and balancing of the energy consumption to increase the network lifetime at the same time. ABRCD can be used to modify many previous algorithms, bringing better performance to previous schemes.
For further study, Adaption Broadcast Radius based Code Dissemination (ABRCD) scheme and the Adjustable Duty Cycle Based Fast Disseminate (ADCFD) [25] scheme shall be combined to make a new scheme to achieve more significant performance improvements.