On Applicability of Network Coding Technique for 6LoWPAN ... - MDPI

1 downloads 0 Views 5MB Size Report
May 26, 2018 - The authors validate the proposed procedures in terms of end-to-end packet delay, packet loss ratio, traffic in the air, total energy consumption, ...
sensors Article

On Applicability of Network Coding Technique for 6LoWPAN-based Sensor Networks Marek Amanowicz 1 and Jaroslaw Krygier 2, * 1 2

*

NASK—National Research Institute, Kolska 12, Warsaw 01-045, Poland; [email protected] Faculty of Electronics, Military University of Technology, Urbanowicza 2, Warsaw 00-908, Poland Correspondence: [email protected]; Tel.: +48-261-837-193

Received: 16 April 2018; Accepted: 24 May 2018; Published: 26 May 2018

 

Abstract: In this paper, the applicability of the network coding technique in 6LoWPAN-based sensor multihop networks is examined. The 6LoWPAN is one of the standards proposed for the Internet of Things architecture. Thus, we can expect the significant growth of traffic in such networks, which can lead to overload and decrease in the sensor network lifetime. The authors propose the inter-session network coding mechanism that can be implemented in resource-limited sensor motes. The solution reduces the overall traffic in the network, and in consequence, the energy consumption is decreased. Used procedures take into account deep header compressions of the native 6LoWPAN packets and the hop-by-hop changes of the header structure. Applied simplifications reduce signaling traffic that is typically occurring in network coding deployments, keeping the solution usefulness for the wireless sensor networks with limited resources. The authors validate the proposed procedures in terms of end-to-end packet delay, packet loss ratio, traffic in the air, total energy consumption, and network lifetime. The solution has been tested in a real wireless sensor network. The results confirm the efficiency of the proposed technique, mostly in delay-tolerant sensor networks. Keywords: network coding; wireless sensor networks; 6LoWPAN; delay-tolerant sensor networks; Internet of Things

1. Introduction In recent years, wireless networks have become present in almost every area of our lives. Growing demand for mobile services provision enforces careful bandwidth allocation to each wireless network, which, as a consequence, may limit its capacity. Moreover, new mobile applications generate higher traffic streams, which can overload the network. Besides, the Internet is a continuously growing network, covering Wireless Sensor Networks (WSNs) and machine to machine communications. This idea refers to the so-called Internet of Things (IoT), where things can communicate while using heterogeneous networks. Most things require an autonomous power supply (mostly small battery), thus they use low power consuming wireless techniques. Traffic streams in such networks can be sent in multihop transmissions, where packets are forwarded hop by hop to a destination. In many cases, the WSNs use IEEE 802.15.4-based sensor motes with a small data rate. However, traffic that is generated by IoT applications can easily overload such networks. Many solutions have appeared in recent years, which can be applied in these networks to increase traffic handling efficiency, and consequently, to decrease the overall traffic volume [1–5]. One of them is the Network Coding (NC) technique that was introduced by Ahlswede et al., in [6] and was then used in many solutions, discussed for example in [7–23]. It is defined as a “technique, where a node (nodes) receives information from all the input links, encodes, and sends information to all the output links” [6]. This technique can be used in telecommunication networks for many purposes, e.g., to reduce the network load, to increase the

Sensors 2018, 18, 1718; doi:10.3390/s18061718

www.mdpi.com/journal/sensors

Sensors 2018, 18, 1718

2 of 20

packets delivery ratio, to improve the reliability or the security of communication, to improve energy efficiency, etc. The main goal of the NC implementation in WSNs is to increase the network lifetime through decreasing the network load. The reduction of wireless transmissions is crucial for energy saving in sensors motes. The majority of sensors’ energy is used by Radio Frequency (RF) transceivers. For example, the CC2420 single-chip used in Tmote Sky motes consumes maximum 23 mA in receive mode and 21 mA in transmit mode (at 0 dB), as compared with 2.4 mA that is used by microcontroller in operating mode and 21 µA in standby mode [24]. In order to achieve this goal, the inter-session NC mechanism (called as NC6LoWPAN), which is located between Medium Access Control (MAC) and adaptation (6LoWPAN) layers, is proposed. It can be implemented in WSNs with different MAC protocols without any additional modifications of the protocol stack. Additionally, this enables the implementation of the NC6LoWPAN in the networks with resource (battery, memory) limitation. The inter-session coding works in enforced coding opportunity, i.e., packets are fractionally delayed in sensor nodes to perform coding. Thus, the network throughput (and consequently energy efficiency) can be improved, even if this leads to increase in the end-to-end packet delay. Moreover, it occurs that slight delay in packets delivery can be acceptable for many services in so called Delay-Tolerant Sensor Networks (DTSN) [25]. Therefore, the network coding technique that is discussed in this paper supplements many solutions for non-6LoPWAN networks that have been presented so far [7–23]. The main contribution of this paper as compared to the previous work is:



• •

the proposal of the relatively simple solution allowing for the encoding of small 6LoWPAN datagrams (fragments) characterized by compressed headers and which are often changed from hop-to-hop, the reduction of the number of signaling messages keeping the NC usefulness for the WSNs, and the implementation and verification of the NC proposal in a real 6LoWPAN-based testbed.

The NC6LoWPAN mechanism was implemented in Contiki Operating System (OS) [26] and it runs both on the IEEE 802.15.4-based Atmel AVR RAVEN and Tmote Sky sensor motes. The configuration attributes as well as the main parameters of the sensors are described in Section 4. The implementation of the NC6LoWPAN in a real testbed shows a practical usage and verification of the NC technique in an IPv6-based WSN. Most of the papers, in dealing with the NC solutions for WSNs describe the simulation results. The remainder of the paper is organized as follows: Section 2 presents prior work related to the NC adoption in wireless ad-hoc networks, Section 3 describes the NC6LoWPAN network coding technique and principles of its implementation in WSN mote, Section 4 depicts the testing methodology and presents the obtained results. Section 5 concludes this paper by summarizing the most relevant results and outlining possible future work. 2. Related Work Most network coding solutions are dedicated for wireless ad-hoc networks; however, other applications are also possible. For instance, networks with overlay P2P services, as presented in [11,12], are a good example of encoding the streams of data that are shared between different positions in the Internet, in order to increase file sharing efficiency. But, due to overhearing, wireless medium gives natural opportunity for network coding. One of the most influential, practical inter-session network coding mechanisms, named COPE, was proposed by Katti et al., in [13]. COPE was elaborated to improve the throughput of IEEE 802.11-based ad-hoc wireless network. The opportunistic unicast packet encoding is performed based on bitwise XOR (Exclusive Or) operations. A similar approach can be found in [14], where also XOR encoding is executed, not in a whole network, but in the so-called capacity region. The NC operations are based on flows instead of individual packets. Both of the solutions ([13,14]) give significant network throughput improvements (from 20 to 80%). A couple of extensions of COPE that offer throughput improvement are presented, for example, in [15–17].

Sensors 2018, 18, 1718

3 of 20

Distinctly fewer solutions are devoted to network coding for wireless sensor networks. It should be noticed that sensor motes are characterized by restricted memory resources, which limit the space that is required for efficient network coding operation. In [18], Guo et al., proposed a combined network coding and multipath routing scheme for underwater sensor networks, which is efficient for error recovery and energy consumption. The reliable data dissemination protocol, which uses adaptive network coding to reduce broadcast traffic in sensor networks, is proposed in [19]. This technique is based on the dynamic adjustment of a number of coefficients, and then, the number of packets that can be encoded depending on link density (number of neighboring nodes). Similarly, in [20], network coding is used for the management of available energy during broadcast transmission in a sensor network. It is based on a cross-layer approach that supports the random linear network coding at the network layer, allowing for the cooperation with the MAC layer’s forwarding and scheduling schemes, in order to determine whether and how broadcast packets are encoded. The enhancement of the sensor network lifetime, using duty cycle and network coding, was also discussed in [21,27,28]. Some recent papers are also focused on the increase in the transmission reliability in sensor networks. Amdouni et al., in [22], proposed a broadcast protocol that uses an inter-session network coding scheme, based on the sliding encoding window, which positively influences the efficiency of packet streams transmission. A very interesting solution is presented by Zhu et al., in [23]. To increase a packet delivery ratio in 6LoWPAN-based sensor network, the authors proposed the intra-session network coding to encode the fragments of IPv6 packets that are typically sent in 6LoWPAN-based networks. To decrease an overhead, which is caused by the coding vector that is attached to each encoded packet, 2-byte field of powers of coefficients from Vandermonde matrix are attached, instead of full coefficient vectors. This solution allows for avoiding the retransmissions of frames, and therefore for decreasing overall traffic in a lossy sensor network. One of the important issues in sensor networks is a scalability problem. A lot of sensors can be deployed in some region; thus, networks are often organized hierarchically using clustering approach. The NC technique application in cluster-based, error-prone networks is discussed in [29], where the impact of cluster size on approximate decoding performance and data transfer rate is analytically studied. To improve the decoding performance of approximate decoding, a position information matrix (PIM) is used. Presented simulation results confirm that an optimal cluster size can be determined considering the PIM overhead and a target decoding performance. This approach is interesting but should also be analyzed in terms of practical implementation in WSNs. The NC has also been proposed recently for routing support in variety of sensor networks. The example solution, named Cooperative and Adaptive Network Coding for Gradient Based Routing (CoAdNC-GBR), is described and discussed in [30]. The CoAdNC-GBR considers the network density as dynamically defined by the average number of neighboring nodes, to perform linear network coding operations on the interest messages. Authors of [30] argue that the cooperation of multiple sinks that were used in the proposed routing mechanism, improves the transmission reliability of links lowers the number of transmissions and the propagation latency and enhances the energy efficiency of the network when comparing to typical gradient-based routing schemes. The NC application for underwater wireless sensor network routing protocol can also be found in [31], where cross-layer interactions are used to mix transport layer packets and the maintenance and correction of paths in the network are operated along with data packets. Simulation results confirm that this solution significantly improves the network performance in terms of energy consumption, end-to-end delay, and packet delivery ratio as compared with other routing protocols. The other proposals for WSNs that support both routing and network lifetime are described in [32–34]. Most of the solutions that are mentioned above are mainly aimed at an increased packet delivery ratio and an increased reliability of broadcast (multicast) transmission in IEEE 802.11-based networks. The main difference between the network coding schemes, dedicated for sensor network when comparing the solutions for other wireless networks, is maximal simplicity forced by limited resources. Currently, a limited number of network coding-based solutions exist, allowing for us to decrease

Sensors 2018, 2018, 18, 18, x1718 Sensors FOR PEER REVIEW

of 20 20 44 of

standard is proposed for the IoT architecture, we can expect significant growth of traffic in such the unicast traffic 6LoWPAN-based networks. in mindlifetime. that theIn6LoWPAN standard is networks what caninlead to overload and decrease Bearing in the network order to increase the proposed for the IoT architecture, we can expect significant growth of traffic in such networks what WSN lifetime, through decreasing the network load, the authors of this paper propose the can lead to overload and decrease the network lifetime. In order to increase theofWSN lifetime, NC6LoWPAN inter-session networkincoding technique for encoding unicast streams fragments of through decreasing the network load, the authors of this paper propose the NC6LoWPAN inter-session IPv6 packets. The 6LoWPAN standard assumes that IPv6 packets can be compressed and network coding technique for encoding unicast streams of fragments IPv6 packets. Thehop-to-hop. 6LoWPAN fragmented, while these operations can change the format of theofdatagrams from standardallassumes IPv6solutions packets can be compressed these operations can Almost of the that similar on the NC, which and are fragmented, presented inwhile the papers, assume that change the format of the datagrams from hop-to-hop. Almost all of the similar solutions on the NC, encoded packets should contain some portion of the original packets that are exactly the same as the which arepackets presented the papers, assume that encoded packets contain portion the buffered (to in ensure decoding). This paper proposes an should appropriate NCsome header that of deals original packets that are exactly the same as the buffered packets (to ensure decoding). This paper with the changing 6LoWPAN headers. The packet buffering mechanism, which is tailored to the proposes sensor an appropriate NC header that deals with the changing 6LoWPAN The packet available motes resources, is used to increase coding opportunity, andheaders. in consequence, to buffering mechanism, which is tailored to the available sensor motes resources, is used to increase decrease the overall traffic in 6LoWPAN-based WSNs, and in consequence to minimize energy that coding opportunity, and in motes. consequence, to decrease the overall traffic in 6LoWPAN-based WSNs, and is consumed by the sensor in consequence to minimize energy that is consumed by the sensor motes. 3. Network Coding for 6LoWPAN-Based Wireless Sensor Networks 3. Network Coding for 6LoWPAN-Based Wireless Sensor Networks 3.1. 3.1. Linear Linear Network Network Coding Coding Technique Technique The The idea idea of of network network coding coding was was introduced introduced in in 2000 2000 by by Ahlswede, Ahlswede, Cai, Cai,Li Liand andYeung Yeung in in [6], [6], where the authors found that a node cannot only receive and forward packets, but also encode where the authors found that a node cannot only receive and forward packets, but also encode the the received (map them them on on other otherpackets), packets),and andsend sendthe theencoded encodedpackets packetstotonodes nodes that able received packets packets (map that areare able to to decode the original packets. It was argued that, while using network coding, the bottleneck decode the original packets. It was argued that, while using network coding, the bottleneck problem problem can be in a traditional wireline The network. The packetsmechanism encoding mechanism is, in can be solved in solved a traditional wireline network. packets encoding is, in most cases, most based on linear mathematical onoriginal at least(native) two original (native) packets. A basedcases, on linear mathematical operations onoperations at least two packets. A linear network linear network coding theory was promulgated by Yeung and Cai in [7] and Koetter and Medard in coding theory was promulgated by Yeung and Cai in [7] and Koetter and Medard in [8]. It assumes [8]. assumes a portionsegments, of data symbols...), (packets, segments, symbols...), is generated or that It a portion of that data (packets, which is generated or which retransmitted by a node retransmitted a node combined (encoder),(encoded), can be linearly giving the vector of the (encoder), can by be linearly givingcombined the vector (encoded), of the encoded packets. The encoded encoded packets. The encoded packets are then sent over the network together with a vector of packets are then sent over the network together with a vector of coefficients used during encoding coefficients used during encoding and decoding. Thethe decoder (orpackets decoders) decodesome the original and decoding. The decoder (or decoders) can decode original aftercan receiving portion packets after receiving some portion of the encoded packets, while using relatively of the encoded packets, while using relatively simple mathematical calculations. The selectionsimple of the mathematical calculations. The of the encoding technique is based onGenerally, the applied criteria encoding technique is based onselection the applied criteria of network performance. two types of of network performance. Generally, two types of network coding processes exist [35]. Intra-session network coding processes exist [35]. Intra-session network coding is typically used to increase the network codingratio is typically usedwith to increase the[22], packet delivery ratio in networks withis lossy links packet delivery in networks lossy links while inter-session network coding considered [22], while inter-session network coding is considered to grow the throughput of the network [14]. to grow the throughput of the network [14]. The basic concept of the latter technique that is suitable The basic concept of latterlimited technique that is be suitable for using implementation in resource limited for implementation in the resource WSNs can explained a simple network, as presented WSNs can be explained using a simple network, as presented in Figure 1. Two nodes (1 3) in Figure 1. Two nodes (1 and 3) exchange the packets p1 and p2 . Unfortunately, both packets and cannot exchange packets p1 directly. and p2. Unfortunately, both packets cannotp reach their destinations directly. reach theirthe destinations Figure 1a shows that the packets 1 and p2 are forwarded by node 2. Figure 1a shows that the packets p 1 and p2 are forwarded by node 2. Typically, node 2 can transmit Typically, node 2 can transmit the packets sequentially (in consecutive slots or after gaining access to the the packets wirelesssequentially medium). (in consecutive slots or after gaining access to the wireless medium). a) 1

b) 1

p1 p2

2

p1

p1 p2

3

p2 2

3

c1= p1 + p2 Figure 1. 1. Example Exampleof ofinformation informationexchange exchange without without (a) (a) and and with with inter-session inter-session network network coding coding (b). (b). Figure

Sensors 2018, 18, 1718

5 of 20

In contrary, Figure 1b shows that node 2 performs a linear coding operation, producing one encoded packet c1 = p1 + p2 instead of two packets, and broadcasts it to nodes 1 and 3. Encoding operation in node 2 is possible if the destination nodes (1, 3) are able to extract the original packets. To show that decoding is possible in node 3, let us assume that encoding is performed in node 2 for the transmissions that are directed to node 1 and 3. Original packets vector is then composed of two packets P1×2 = [p1 , p2 ]. Let us also select the following static coefficients in the matrix V 2×2 : " V2×2 =

v11 v21

v12 v21

#

"

1 0

=

1 1

# .

(1)

The vector of encoded packets is calculated, as follows: C1T×2 = V2×2 × P1T×2 , " C1T×2

=

c1 c2

#

"

=

1 0

1 1

#

"

×

(2)

#

p1 p2

"

=

p1 + p2 p2

# ,

(3)

where P1T×2 is a transpose vector of P1×2 . Thus, two encoded packets should be received by node 3 to perform the decoding. The packet c1 = p1 + p2 is constructed in node 2 and c2 = p2 must be buffered in node 3. Since the packets are a series of bits (values from the field GF(2)), the XOR bitwise operator is used (p1 + p2 = p1 ⊕p2 ). The static coding vectors are not attached to the encoded packets, but they should be known in a decoding node. Node 3 can decode the original packets by performing the following operations P1T×2 = V2−×12 × C1T×2 , "

P1T×2

# −1

# −1 = = , 1 " # " # " # " # p1 1 −1 c1 c1 − c2 = = × = . p2 0 1 c2 c2 V2−×12

1 0

1 1

"

1 0

(4)

(5)

(6)

The following equation is valid in the field GF(2): c1 − c2 = c1 ⊕ c2 .

(7)

Thus, in node 3, the packet p1 is extracted by the calculation p1 = c1 − c2 = c1 ⊕c2 (bitwise XOR operation), and the packet p2 = c2 is buffered in node 3. The broadcast nature of wireless networks becomes a natural NC opportunity, since nodes can simultaneously receive broadcasted transmissions. Nodes that perform an encoding operation have to know which packets can be encoded (depending on the decoding possibility of the nodes that will receive coded packet). Even more, each node should also remember the packets that have already been sent, in order to use them for potential decoding. Also important is that inter-session network coding operations have to be performed in intermediate nodes. We expect that, while using the NC in the 6LoWPAN-based network, we can decrease the overall traffic volume that is generated by the WSN’s nodes, what leads to the decrease in the energy consumption in the whole network. 3.2. IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN) In [36], the 6LoWPAN RFC4944 standard was introduced to support IPv6 packets transmission in the IEEE802.15.4-based sensor networks. The Maximum Transmission Unit (MTU) of the IPv6 streams cannot be smaller than 1280B, while the IEEE 802.15.4 standard offers a maximum frame payload of

Sensors 2018, 18, 1718

6 of 20

127B [37]. The 6LoWPAN provides an adaptation layer that is located between the MAC layer and the IPv6 protocols stack. Additionally, it ensures IPv6 packets fragmentation to cope with small payloads. Besides, it allows for deep headers compression, in order to minimise the upper layers overhead. Since the IEEE802.15.4 standard offers a maximum 250 kbps data rate, the IPv6 protocols stack overhead would significantly reduce the network goodput. To increase sensor nodes resources utilization, the 6LoWPAN proposes—as an option—the so-called route-over routing mechanism. Fragments of IPv6 packets are transmitted to the destination nodes without reassembling at intermediate nodes, and without forwarding the full IPv6 packets at the network layer. This overcomes the problem of a larger memory size that is required in the nodes to collect fragments before reassembling. Unfortunately, in lossy sensor network, the route-over routing increases the packet loss ratio. Therefore, the traditional forwarding method (mesh-under routing) is often applied in the software used in sensor motes (i.e., in the Contiki Operating System). 3.3. Network Coding for 6LoWPAN (NC6LoWPAN) WSNs As has already been mentioned, the main goal of the NC6LoWPAN implementation in 6LoWPAN-based WSNs is to decrease the overall network load, even if the network is not overloaded, which is what leads to saving the energy consumed by sensor motes. The following three basic assumptions were taken by the authors of this paper: 1.

2. 3.

NC6LoWPAN should be applied for unicast transmission. Most of the sensor networks are deployed to transfer unicast streams from end sensors to a border gateway (and further to the Internet or cloud) or/and from the decision center to the actuators (associated with the sensor motes). This technique should be easily implemented in sensor motes, possibly without any modifications in the MAC layer drivers. It should be optimized to minimize node’s resources utilization, i.e., it should be equipped with the operations tailored for sensor network to minimize node’s memory usage, minimize additional signaling required for encoded packets acknowledgments, and decrease the overall traffic in the WSN (what should lead to the energy consumption decrease).

In the NC6LoWPAN, the encoding and decoding operations are performed in the NC layer at the bottom of the 6LoWPAN layer, as it is shown in Figure 2. Such location of the NC entity avoids the modification of the MAC driver software, but it requires 6LoWAPN packets buffering in the NC layer, in order to ensure coding opportunity. Most of the NC techniques proposed in the literature (i.e., in [13]) assume that the native packets are not delayed for performing coding operation, but only buffered waiting for wireless medium access. Such assumption practically limits the network coding utilization to highly loaded or congested nodes. Thus, some authors proposed (for example, in [27,38]) to intentionally delay the packets in intermediate nodes of the IEEE 802.11-based network, allowing for increasing the coding opportunity. This idea is also used in the NC6LoWPAN, since the sensor network’s traffic can often be at low level, what could limit the coding efficiency. Appling additional packet delays, we should remember that it can influence the upper layer protocols (i.e., Transmission Control Protocol), which are packet delay and packet reordering sensitive. The NC6LoWPAN was assumed to be used with the User Datagram Protocol (UDP) units. This assumption seems to be reasonable for WSNs, since more services that were handled in the WSN are based on UDP transmissions. Besides, the communication techniques dedicated for wideband wireless networks allow for collecting all overheard packets and then use them during encoding and decoding operations. In addition, Katti et al., as showed in [13] that many network coding implementations work well in IEEE 802.11-based networks, where the node’s memory resources are not significantly restricted, while the 6LoWPAN-based WSNs are mainly composed of nodes with many specific functions and limitations. One of the restrictions of the NC application in such networks is the IPv6 headers compression, where some of the header fields can be changed from hop-to-hop. Additionally, we cannot occupy too much memory for NC buffers since the 6LoWPAN allows for

Sensors 2018, 18, 1718

7 of 20

packets’ fragmentation, which is what requires that nodes have to reserve the memory for merging fragments. Otherwise, the native datagrams (fragments) will be lost. All of these problems need some effort, mainly thePEER reduction Sensors 2018, 18, xby FOR REVIEWof the NC signaling overhead, reduction of the coding/decoding range 7 of 20 (one-hop), excluding the broadcast and multicast transmissions from coding operations, and other Sensors 2018, 18, xpaper. FOR PEER REVIEW 7 of 20 described in this Applications data IPv6/UDP IPv6/UDP

6LoWPAN layer

Buffering. Encoding opportunity checking

IPv6/TCP

6LoWPAN NC layer layer

Buffering. Encoding opportunity Encoding checking Encoding

IPv6/TCP

Applications data

Decoding

NC Decoding Decoding possibility checking layer

IEEE802.15.4 interface Decoding possibility checking

interfaceCoding (NC) layer. Figure 2. Location IEEE802.15.4 of the Network

Figure 2. Location of the Network Coding (NC) layer. Figure 2. Location of the Network Coding (NC) layer. In order to increase the coding opportunity in softly loaded WSNs, the native packets have to be buffered and slightly delayed in some nodes. What is more, the NC6LoWPAN does not collect all of In order to increase coding opportunity in softly loaded WSNs, packets have to be the overheard because of the sensors’ memory limitations. Thus, thenative main function oftothe In order topackets, increase thethe coding opportunity in softly loaded WSNs, the the native packets have be buffered and slightly delayed in some nodes. What is more, the NC6LoWPAN does not collect all NC layerand in the NC6LoWPAN to buffer theWhat nativeisunicast packets belongingdoes to different sessions, buffered slightly delayed inissome nodes. more, the NC6LoWPAN not collect all of of the overheard packets, because ofsensors’ theencoded sensors’ memory limitations. Thus, the function main function of the check the coding opportunity, broadcast packets using bitwise XOR operation the overheard packets, because ofprepare the memory limitations. Thus, the main of the NC NC layer in the NC6LoWPAN is to buffer the native unicast packets belonging to different sessions, (according Equation (7)), and perform decoding. The location of the NC layer that is shown in layer in the to NC6LoWPAN is to buffer the native unicast packets belonging to different sessions, check check the coding opportunity, prepare encoded broadcast packets using bitwise XOR operation Figure 2 provides implementation simplicity, which is required in resource-limited sensor nodes. the coding opportunity, prepare encoded broadcast packets using bitwise XOR operation (according to (according to Equation (7)), and decoding. location NC layer that is shown Furthermore, NC layer decoding. allows forperform coding and decoding the 6LoWPAN datagrams rather than in Equation (7)), the and perform The location of the The NCof layer thatofis the shown in Figure 2 provides Figure 2 provides implementation simplicity, which is required in resource-limited sensor nodes. the IPv6 packets.simplicity, which is required in resource-limited sensor nodes. Furthermore, the NC implementation Furthermore, theisNC layer allows for coding and decoding of the 6LoWPAN rather than The encoding performed in the intermediate nodes using native packets, which layer allows for coding and decoding of the 6LoWPAN datagrams rather thanunicast thedatagrams IPv6 packets. the IPv6 packets. belong different is sessions. As has already been mentioned, to increase network codingwhich opportunity Thetoencoding performed in the intermediate nodes using native unicast packets, belong The encoding is performed in the intermediate nodes using native unicast packets, during normal WSN operation (at low traffic volume), these packets have to be buffered in which the to different sessions. As has already been mentioned, to increase network coding opportunity during belong to different sessions. As has already been mentioned, to increase network coding opportunity intermediate The(atsize buffers is limited bypackets the node’s that has allocated to normal WSN nodes. operation lowoftraffic volume), these havememory to be buffered inbeen the intermediate normal WSN operation (atthe low traffic volume), packets have buffered intothe theduring NCThe operations. The encoded can be memory formed ifthat at these least two native packets transferred nodes. size of buffers is limitedpacket by node’s has been allocated toto thebeNC operations. intermediate nodes. The size of buffers is limited by the node’s memory that has been allocated different nextpacket hop nodes buffered. Figure showspackets six IPv6 unicast streams (s1...s 6). Only some to The encoded can beare formed if at least two3native transferred to different next hop nodes the NC operations. The encoded packet can be formed at least two native packets transferred packets crossing nodes 2 and 4 can encoded. For example, packets from the stream s1 and s2 can be to are buffered. Figure 3 shows six IPv6beunicast streams (s1 ...s6 ).ifOnly some packets crossing nodes 2 and different next hop nodes are buffered. Figure 3 shows six IPv6 unicast streams (s 1...s6). Only some only if they in node 2. Broadcast layer broadcast) depicted 4encoded can be encoded. Formeet example, packets from theencoded stream sstream encoded only ifisthey meet as in 1 and s(MAC 2 can be packets crossing nodes 2the andstreams 4 can bes3encoded. Forbe example, packets from the stream s1 and s2 can be cnode 1. Similarly, packets from and s 4 can encoded in node 2, while packets from the 2. Broadcast encoded stream (MAC layer broadcast) is depicted as c1 . Similarly, packets from encoded only ifcan they meet in node 2. Broadcast encodedfrom stream layer broadcast) is encoded depicted as ss64can be in 4.2, while packets streams s35 and and beencoded encoded innode node the(MAC streams s5 and s6 can be c1. Similarly, packets from the streams s3 and s4 can be encoded in node 2, while packets from the in node 4. streams s5 and s6 can be encoded in node 4. s2

1

s1 c1 2 c2 s3 s1 c1 1 c2 s3

3 c1 s5s2 c3 c1 c2 s54 2 s4 c3

3

c2

4

s6 c3

s6

5

c3 5 nodes. Figure 3. Network coding opportunity in intermediate s4 Figure 3. Network coding opportunity in intermediate nodes.

The proposed network coding mechanism decreases the overall traffic in a sensor network Figure 3. Network coding opportunity in intermediate nodes. The proposed network coding mechanism decreases the overall traffic in a sensor network (particularly in synchronised network). However, it should be noticed that native packets that are (particularly in synchronised network). However, it should be noticed that native packets that are bufferedThe in the intermediate nodes increase the overall end-to-end techniques proposed network coding mechanism decreases thepackets overalldelay. trafficThe in NC aNC sensor network buffered in the intermediate nodes increase the overall end-to-end packets delay. The techniques often detect poor links (for example, based on the expected transmission count metric) to limitare (particularly in links synchronised network). However, it should transmission be noticed that native packets often detect poor (for example, based on the expected count metric) to that limit buffered in theand intermediate nodes increase the overall end-to-end The NC techniques coding operation then to decrease the number of decoding errorspackets [13]. Atdelay. this stage, to keep the often detect simplicity, poor links it(for on the expected transmission count metric)errors to limit NC6LoWPAN wasexample, assumedbased that sensors do not detect poor links. Potential coding operation and to decrease number of decoding [13]. At this stage, to keep during transmission of then encoded packetstheaffect decoding errors.errors Many solutions for the IEEEthe NC6LoWPAN simplicity, it was assumed that sensors do not detect poor links. Potential 802.11-based networks provide some kind of error correction mechanisms allowing errors for during transmission of encoded decoding errors. Many solutionstransmission for the IEEE acknowledging the correctly receivedpackets encodedaffect packets (ACKs and pseudo-broadcast

Sensors 2018, 18, 1718

8 of 20

coding operation and then to decrease the number of decoding errors [13]. At this stage, to keep the NC6LoWPAN simplicity, it was assumed that sensors do not detect poor links. Potential errors during transmission of encoded packets affect decoding errors. Many solutions for the IEEE 802.11-based networks provide some kind of error correction mechanisms allowing for acknowledging the correctly received encoded packets (ACKs and pseudo-broadcast transmission in [13]). Similar mechanisms can also be used in WSNs, but they introduce additional signalling traffic, especially unwanted in a sensor network. It was assumed that the higher packet loss ratio resulting from decoding errors could be accepted from many WSN services point of view if the network lifetime will be extended. Nevertheless, to limit such effect, the next version of the NC6LoWPAN will be equipped with a relatively simple solution allowing for links quality detection. Additionally, to avoid instability in network operation that is caused by potential decoding errors, the signalling packets are not buffered and encoded (e.g., multicast Neighbour Discovery or RPL packets). The NC buffering time directly influences the coding efficiency and the network operation, which is discussed in Section 4. The encoding procedure at the NC layer is described in Algorithm 1. Native 6LoWPAN packets, as received from the upper layer (named CurrentNativePackets), are checked according to message type (unicast or multicast, user data or signalling messages) in Steps 2–14. The current native packets that are excluded from further coding process are sent directly to the MAC layer (Step 8, 13), and then to the next hop node. Remaining current native packets can potentially be encoded depending on the node’s role recognised in Steps 15–20. In the source nodes (CurrentNodeRole = SourceNode), the current native packets are sent to the MAC layer (Step 24) without encoding (decoding is not possible) if they are sent directly to the neighbouring sink node (checked in Step 23). If the current native packet is sent to the destination node via a neighbouring node (Step 24), then it has to be copied (Step 26). The copy is stored in the NC buffer (Step 30), while the current native packet is sent immediately to the MAC layer (Step 31). The copy of the current native packet (named BufferedNativePacket) can be used later on in case of a decoding necessity (the encoded packets received in the future can contain native packets retained in the NC buffer). Otherwise, the buffered native packet will be deleted from the NC buffer after the timeout tz. The value of tz directly influences the decoding possibility. By selecting a too low value of tz, the encoded packets cannot be decoded correctly in the node because of lack of the buffered native packets in the NC buffer, and in consequence, the coding gain will be decreased. A too high value of tz engages the node’s memory resources to keep native packets that cannot be used for decoding. To control appropriate timers reacting to timeout tz, current system time is written in the BufferedNativePacket_tp variable during the current native packet buffering (Step 28). Moreover, BufferedNativePacket is marked by the BufferedNativePacket_role variable, indicating that the current node is a source of the packet (Step 27). A network coding procedure in an intermediate node (CurrentNodeRole = RelayNode) starts in Step 33. Additionally, Figure 4 graphically illustrates coding scheme. The NC buffer is searched (Step 34) for buffered native packets that can be used for coding operation (Step 34). The buffered native packets meeting the coding rules are extracted from the NC buffer and are coded with the current native packet (Step 37). The coding rule requires that the buffered native packets, which are stored in the NC buffer, will be sent to their final destination over the node from which the current native packet was received. The encoded packet (Step 38) preceded by a Dispatch and NC layer headers (Figure 5) is sent to the MAC layer and broadcast. In order to simplify the decoding procedure, the identifiers of the recipients (hash of the recipients’ MAC addresses) are added to the NC header.

Sensors 2018, 18, 1718

Algorithm 1. Encoding Procedure at the NC Layer Input: CurrentNativePacket received from 6LoWPAN layer, tc—current system time. Output: OutputPacket prepared for sending to MAC layer. 1: Initialize: NCOpportunity = FALSE 2: Read DestAddr of the CurrentNativePacket 3: if DestAddr = UnicastAddr then 4: Read NextHeader field of the CurrentNativePacket 5: if NextHeader = ICMPv6 then 6: Read MessageType of the CurrentNativePacket 7: if MessageType = RPL or MessageType = IPv6NeighborDiscoveryTypes then 8: OutputPacket ← CurrentNativePacket 9: end if 10: end if 11: end if 12: if DestAddr = MulticastAddr then 13: OutputPacket ← CurrentNativePacket 14: end if 15: Read SrcAddr of the CurrentNativePacket 16: if SrcAddr = CurrentNodeAddr then 17: CurrentNodeRole ← SourceNode 18: else 19: CurrentNodeRole ← RelayNode 20: end if 21: if CurrentNodeRole = SourceNode then 22: Read NextHopAddr from the forwarding table of the current node 23: if NextHopAddr = DestAddr then 24: OutputPacket ← CurrentNativePacket 25: else 26: BufferedNativePacket ← Copy of CurrentNativePacket 27: BufferedNativePacket_role = SourceNode 28: Set BufferedNativePacket_tz = tc 29: NCBuffer ← BufferedNativePacket 30: OutputPacket ← CurrentNativePacket 31: end if 32: end if 33: if CurrentNodeRole = RelayNode then 34: for each BufferedNativePacket ∈ NCBuffer do 35: NCOpportunity ← Check NC opportunity (BufferedNativePacket, CurrentNativePacket) 36: if NCOpportunity = TRUE then 37: NetworkCodedPacket ← Encode (BufferedNativePacket, CurrentNativePacket) 38: OutputPacket ← NetworkCodedPacket 39: else 40: BufferedNativePacket ← CurrentNativePacket 41: BufferedNativePacket_role = RelayNode 42: Set BufferedNativePacket_tp = tc 43: Set BufferedNativePacket_tz = −1 44: NCBuffer ← BufferedNativePacket 45: end if 46: end for 47: end if

9 of 20

Sensors 2018, 18, x FOR PEER REVIEW Sensors 2018, 18, 1718 Sensors 2018, 18, x FOR PEER REVIEW

10 of 20 10 of 20

10 of 20

Native 6LoWPAN Nativepacket 6LoWPAN 6LoWPAN layer 6LoWPAN layer packet Packets Packets deleted deleted after after buffering buffering time tz time tz Packets Packets extracted extracted after after buffering buffering time tp time tp

Current Current native native packet packet

Current native packet Current native packet that cannot be encoded that cannot be encoded Buffered Buffered native packets native NC packets NC buffer Coding buffer Packet found Coding operation Packet found for coding operation for coding NC layer NC layer

Native Native 6LoWPAN 6LoWPAN packets packets

Network Network coded coded packet packet

MAC layer MAC layer

Figure 4. Network coding scheme in intermediate nodes. Figure Networkcoding coding scheme scheme in nodes. Figure 4. 4.Network inintermediate intermediate nodes. Dispatch Code Dispatch (NALP) Code (NALP)

Dispatch code NALP bit Dispatch code pattern:bit NALP 00pattern: xxxxxx 00 xxxxxx

NC header NC header

NID #1 NID #1

Encoded data (unchanged Encoded fields of native data packets) (unchanged fields of native packets)

HL PID #1 PID #1 HL #1 #1

CF #1 CF #1

NID #2 NID #2

HL PID #2 PID #2 HL #2 #2

CF #2 CF #2

Figure 5. NC header format (for two encoded packets).

Figure 5. NC header format (for two encoded packets). Figure 5. NC header format (for two encoded packets). the coding operation cannot performed,the thecurrent currentnative nativepacket packet is is added added in If theIf coding operation cannot be be performed, in Step Step44 44to to the the NCcoding buffer for a short time (tp)be toperformed, give a chance forcurrent future encoding (it becomes buffered native If the operation cannot the native packet is added in Step 44 to the NC buffer for a short time (tp) to give a chance for future encoding (it becomes buffered native packet). To control timeout tp, the current system time is written in the BufferedNativePacket_tz variable NC buffer a short time (tp) to give a chance fortime future encodingin(itthe becomes buffered native packet). Tofor control timeout tp, the current system is written BufferedNativePacket_tz during the current native packet buffering. The value of tp is a parameter that directly influences the packet). during To control timeout native tp, thepacket currentbuffering. system time value is written theparameter BufferedNativePacket_tz variable the but current of tpinis thatsince directly coding efficiency, also the end-to-end packets delay.The This value should be acarefully selected, variable during the current nativebut packet buffering. The value of tpdelay. is a parameter that directly influences the coding efficiency, also the end-to-end packets This should an additional delay cannot be acceptable for some services. Buffered native packets that value have not been be influences the coding efficiency, but also the end-to-end packets delay. This value should be carefully since an additional delay acceptable forMAC, someand services. Buffered native used selected, in coding operation are extracted fromcannot the NC be buffer, sent to the then transmitted to carefully selected, since an additional delayoperation cannot beare acceptable forfrom some services. Buffered native packets that have not used in coding extracted the NC buffer, to the its next hop node. Inbeen the meantime, the copy of this packet is still buffered for the time tz for sent further packets that have not been used in coding operation are extracted from the NC buffer, sent tostill the possible decoding process. To BufferedNativePacket_tz is used Step 43 −1 is set, MAC, and then transmitted to do itsso, next hop node. In the variable meantime, theincopy of (value this packet is MAC, and then transmitted to its next hop node. In the meantime, the copy of this packet is still to indicate thattime buffered packet is ready for network coding). Both the space complexity of buffered for the tz for further possible decoding process. Totime do and so, BufferedNativePacket_tz buffered for the time tz for further possible decoding process. To do so, Algorithm 1 is O(n), and it directly depends on the NC buffer length. variable is used in Step 43 (value −1 is set, to indicate that buffered packetBufferedNativePacket_tz is ready for network Algorithm 2 illustrates a timers control procedure. Buffered native packets that have not variable is used in Step 43 (value −1 is set, to indicate that buffered packet is ready for been network coding). Both the time and space complexity of Algorithm 1 is O(n), and it directly depends on the used for coding or decoding operations are deleted after time tz in source nodes (Step 4) and after time coding). Both the time and space complexity of Algorithm 1 is O(n), and it directly depends on the NC buffer length. tp + tz, length. in relay nodes (Step 16). NC buffer

Algorithm 2 illustrates a timers control procedure. Buffered native packets that have not been timers control procedure. native packets have not after been used Algorithm for coding 2orillustrates decodingaoperations are deleted afterBuffered time tz in source nodesthat (Step 4) and used tp for+ tz, coding or decoding operations are deleted after time tz in source nodes (Step 4) and after time in relay nodes (Step 16). time tp + tz, in relay nodes (Step 16). Algorithm 2. NC Buffer Timers Control Algorithm 2. NCtc—current Buffer Timers Control Input: NCBuffer, system time, tz, tp. Input: NCBuffer, tc—current system time, tz,totp. Output: OutputPacket prepared for sending MAC layer. Output: OutputPacket prepared for sending to 1: for each BufferedNativePacket ∊ NCBuffer do MAC layer. 1: for if each BufferedNativePacket ∊=NCBuffer do then 2: BufferedNativePacket_role SourceNode 2: if if BufferedNativePacket_role = SourceNode 3: (tc − BufferedNativePacket_tz) ≥ tz thenthen 3: if Delete (tc − BufferedNativePacket_tz) 4: BufferedNativePacket ≥ tz then 4: Delete 5: end if BufferedNativePacket 5: end 6: end if if 6: end if 7: if BufferedNativePacket_role = RelayNode then

Sensors 2018, 18, 1718

11 of 20

Algorithm 2. NC Buffer Timers Control Input: NCBuffer, tc—current system time, tz, tp. Output: OutputPacket prepared for sending to MAC layer. 1: for each BufferedNativePacket ∈ NCBuffer do 2: if BufferedNativePacket_role = SourceNode then 3: if (tc − BufferedNativePacket_tz) ≥ tz then 4: Delete BufferedNativePacket 5: end if 6: end if 7: if BufferedNativePacket_role = RelayNode then 8: if BufferedNativePacket_tz < 0 then 9: if (tc − BufferedNativePacket_tp) ≥ tp then 10: OutputPacket ← copy of BufferedNativePacket 11: BufferedNativePacket_tp = −1 12: BufferedNativePacket_tz = tz 13: end if 14: else 15: if (tc − BufferedNativePacket_tz) ≥ tz then 16: Delete BufferedNativePacket 17: end if 18: end if 19: end if 20: end for

The decoding operation can be performed in each node, but to simplify, the implementation of the mechanism it is executed in the next hop nodes (nodes that are the neighbours of the coding nodes). The decoding procedure is described in Algorithm 3. The NC layer distinguishes encoded packets from native packets in Step 2 based on the dispatch code attached at the beginning of each packet (Figure 5). As proposed in RFC4944, the NLAP (Not a LoWPAN) bit pattern is selected to be sent with encoded data (Step 3). The original types of received packets are mapped on the 6-bits xxxxxx pattern. The native packets are directly sent to the 6LoWPAN layer in Step 25. Besides the dispatch header, the NLAP packets (encoded) are composed of the NC layer header and encoded data field. Only unchanged fields of the native 6LoWPAN packets can be used to prepare encoded data. The remaining ones have to be attached to the NC header (some 6LoWPAN fields are changing from hop-to-hop). The structure of the NC header, in the case of mixing of two native packets (#1 and #2), is shown in Figure 5. It contains identifiers of the nodes (hash of the MAC addresses) that are the recipients of the packet (NID#1 and NID#2), 6LoWPAN header fields that are changed from hop-to-hop (CF#1, CF#2), lengths of the CF fields (HL#1, HL#2), and native packets identifiers (PID#1, PID#2) that are required for separation of the packets from different streams. Encoding of compressed and frequently changing headers causes the NC header size to be relatively high. This limits the number of native packets that can be mixed together, and finally leads to the smaller value of coding gain (percentage of encoded packets versus all native packets that are generated in the network). The encoded shortest packets are padded by zeros to match the largest packet. The length of the packets can be found in the IPv6 compressed headers (payload length) or in the 6LoWPAN fragment header (datagram size). To process encoded packets, the nodes compare its CurrentNodeID with NIDs that are attached to the NC header (Steps 4–8). If the recipient finds in Steps 10–15 buffered packet that can be used for decoding, the decoding operation will be performed in Step 17 (BufferedNativePacket is XORed with ReceivedPacket). Otherwise, the decoding operation is not performed. This leads to decoding errors, and in consequence, to packets losses (Step 19). Decoding errors can be decreased by selecting a higher value of tp. On the other hand, a higher value of tp leads to ineffective utilisation of the sensor

Sensors 2018, 18, 1718

12 of 20

nodes recourses. The NC6LoWPAN does not acknowledge decoding errors. It accepts more errors, but it needs smaller memory size to perform network coding operations and increases sensors lifetime. Similarly to Algorithm 1, the time and space complexity of Algorithm 3 is also O(n) and it depends on the NC buffer length. Algorithm 3. Decoding Procedure at the NC Layer Input: ReceivedPacket—packet received from MAC layer (encoded or native 6LoWPAN packet), CurrentNodeID. Output: CurrentNativePacket prepared for sending to 6LoWPAN layer. 1: Initialize: Decode, Matched = FALSE 2: Read DispatchCode from the dispatch header of the ReceivedPacket 3: if DispatchCode = NLAP then 4: for i ← 1 to 2 do 5: if NIDi = CurrentNodeID then 6: Matched ← TRUE 7: end if 8: end for 9: if Matched = TRUE then 10: for each BufferedNativePacket ∈ NCBuffer do 11: Decode ← Check decoding possibility (BufferedNativePacket, ReceivedPacket) 12: if Decode = TRUE then 13: BufferedNativePacket ← Extract BufferedNativePacket from NCBuffer 14: end if 15: end for 16: if Decode = TRUE then 17: CurrentNativePacket ← Perform decoding (BufferedNativePacket, ReceivedPacket) 18: else 19: Discard ReceivedPacket 20: end if 21: else 22: Discard ReceivedPacket 23: end if 24: else 25: CurrentNativePacket ← ReceivedPacket 26: end if

The algorithms presented in this section point that many mutually connected factors can influence the 6LoWPAN-based WSN efficiency. For example, by increasing the NC buffer length, we can expect higher NC opportunity, lower value of network traffic, and decoding errors, but the sensors need more memory resources and higher computing capability. Additionally, through increasing the NC buffer length, more packet can be delayed. Thus, reasonable trade-off should be found between these factors. The goal of this paper is to confirm the applicability of the NC technique in a real 6LoWPAN-based WSN, which is discussed in Section 4. Nevertheless, founding optimal values of the parameters used in the algorithms depending on the assumed requirements and constraints (applications, nodes, and network resources) requires further simulation investigations. 4. Performance of NC6LoWPAN Mechanism The NC6LoWPAN mechanism, as presented in Section 3, was implemented in an open source Contiki Operating System (OS) [26] that incorporates micro IPv6 protocols stack (uIPv6). It was ported to a number of microcontroller architectures, including the Texas Instruments MSP430. The performance of network coding in WSN was tested on the 2.4 GHz IEEE 802.15.4, 8-bit Amtel motes, as well as on the 8-bit Tmote Sky motes. The 8-bit Amtel AVR motes were equipped with AT86RF230 radio transceiver with high gain PCB antenna and RISC-based ATmega1284P

Sensors 2018, 18, 1718

13 of 20

microcontroller (AVRRAVEN), and with AT86RF230 radio transceiver with miniature PCB antenna, and AT90USB1287 microcontroller (RZUSBSTICK). The AVRRAVEN mote incorporates 128 KB ISP flash memory with read-while-write capabilities, 4 KB EEPROM and 16 KB SRAM, while the RZUSBSTICK uses 128 KB ISP flash memory with read-while-write capabilities, 4 KB EEPROM and 8 KB SRAM. The Tmote Sky motes utilise 48 KB flash memory and 10 KB RAM. The NC6LoWPAN mechanism was examined in a testbedding environment. In the first scenario, the network was composed of three Amtel AVR motes (USB stick and AVR Raven boards) with Routing Protocol for Low power and Lossy Networks (RPL) [39]. The structure of the network is shown in Figure 6. Sensor nodes are located in such a way that propagation conditions do not bring packets Sensors 2018, 18, x FOR PEER REVIEW 13 of 20 loss due to jamming or signal attenuation. Thus, possible packet losses are caused by collisions or the sensors’ memory limitation (decoding errors). The packet analyser overhears all traffic and it helps traffic and it helps packet end-to-end delay and packet loss ratio calculation. Such relatively simple packet end-to-end delay and packet loss ratio calculation. Such relatively simple scenario was selected scenario was selected to validate the correctness of NC6LoWPAN operations. to validate the correctness of NC6LoWPAN operations. 6LoWPAN network address: bbbb::/64 gateway bbbb::1 1 IEEE802.15.4 USB stick

bbbb::11:22ff:fe33:4457 2 IEEE802.15.4 AVR Raven board

bbbb::11:22ff:fe33:4458 3 IEEE802.15.4 AVR Raven board

Up to 7 IPv6 streams Packet analyser

Figure Figure 6. 6. Simple two-hops Wireless Wireless Sensor Sensor Networks Networks (WSN). (WSN).

The traffic trafficvolume volume and profile directly depend the application. WSN application. If the perform sensors The and its its profile directly depend on theon WSN If the sensors perform their standard (just sensing), data packet are mostly unidirectional (streams their standard role (justrole sensing), the datathe packet streamsstreams are mostly unidirectional (streams from from sensors to border gateway). In such a case, there gainofofthe theNC6LoWPAN NC6LoWPANusage usage (coding (coding sensors to border gateway). In such a case, there is is nono gain opportunity is is low). low). It It is is more more reasonable reasonable to to use use the in WSNs WSNs with with bidirectional bidirectional traffic traffic opportunity the NC6LoWPAN NC6LoWPAN in (Wireless Sensor Sensor & & Actuator Actuator Network). Network). The The following following characteristic characteristic of of traffic traffic exchanged exchanged between between (Wireless nodes 1 and 3 was assumed: nodes 1 and 3 was assumed:

•

Packets type: type: ICMPv6 traffic, commonly commonly used used in in Packets ICMPv6 (emulate (emulate bidirectional bidirectional connectionless connectionless traffic, sensor/actuator network). sensor/actuator network).  Packet size size (ICMP (ICMP data): data): 10 10 Bytes Bytes (constant, (constant, arbitrary arbitraryselected). selected). • Packet  Number of streams: varying from 1 to 7 (to check an influence of traffic volume on correctness Number of streams: varying from 1 to 7 (to check an influence of traffic volume on correctness • and efficiency of the NC6LoWPAN). and efficiency of the NC6LoWPAN).  Packets inter-arrival time distribution: uniform (arbitrary selected, which gives • Packets inter-arrival time distribution: uniform (arbitrary selected, which gives average 188 bps mean data rate). average 188 bps mean data rate). To examine the sensor’s memory size allocation for the NC6LoWPAN, the NC buffer length To examine the sensor’s memory size allocation for the NC6LoWPAN, the NC buffer length was changed from 0 to 5 packets in each node, while 0 means that NC6LoWPAN is switched off, and was changed from 0 to 5 packets in each node, while 0 means that NC6LoWPAN is switched off, 5, which means that up to 5 native packets can be buffered for coding or decoding operations. Thus, and 5, which up to native packets buffered for coding decoding operations. if higher NCmeans buffer that length is 5set up, then we can canbeexpect higher coding or opportunity in a node Thus, if higher NC buffer length is set up, then we can expect higher coding opportunity in a node (buffered native packets can be coded with other native packets which are currently received by a (buffered native packets can be coded with other native packets which are currently received by a node). The native packets were buffered in the node for tp = tz = 0.5 s (values of tp and tz were node). The native packets were buffered in the node for tp = tz = 0.5 s (values of tp and tz were arbitrary arbitrary selected and have to be adjusted in the future depending on the applications end-to-end selected and have to be adjusted in the futureindepending on the applications end-to-endusing requirements). requirements). The overall traffic volume the air (network load) was registered a packet The overall traffic volume in the air (network load)that wasare registered using a packet analyser capturing analyser capturing all of the IEEE802.15.4 frames generated in the network. all of Figure the IEEE802.15.4 frames that are generated in the in network. 7 shows the overall traffic that is captured the air as a function of the number of packet Figure 7 shows the overall traffic that is captured in the air as a function of the number of packet streams in one direction for different values of the NC buffer length (number of buffered native streams direction different values of the NC appears, buffer length (number of stored buffered native packets).inIf one the NC buffer for is full and a new native packet the oldest packet in the NC buffer is immediately sent. The results confirm that the decrease in the overall network load directly depends on the traffic volume that is generated by the nodes, and on NC buffers capacity. It means that network coding in WSNs gives better results for higher traffic volume in the network. Unfortunately, the memory that is allocated for NC buffer is limited due to the sensor nodes resource limitations, which in consequence limits coding opportunity. Furthermore, the allocation of

Sensors 2018, 18, 1718

14 of 20

packets). If the NC buffer is full and a new native packet appears, the oldest packet stored in the NC buffer is immediately sent. The results confirm that the decrease in the overall network load directly depends on the traffic volume that is generated by the nodes, and on NC buffers capacity. It means that network coding in WSNs gives better results for higher traffic volume in the network. Unfortunately, the memory that is allocated for NC buffer is limited due to the sensor nodes resource limitations, which in consequence limits coding opportunity. Furthermore, the allocation of the memory for buffers in the nodes with significant memory limitation can increase the packets loss Sensors 2018, 18,NC x FOR PEER REVIEW 14 of 20 Sensors 2018, 18, x FOR PEER REVIEW 14 of 20 ratio because of the lack of free space for routed packets in the intermediate nodes.

Figure 7. Overall traffic captured in the air (simple testing scenario)—number of buffered native Figure 7. 7. Overall Overall traffic traffic captured captured in in the the air air (simple (simple testing testing scenario)—number scenario)—number of of buffered buffered native native Figure packets = 00 means network without NC. packets = means network without NC. packets = 0 means network without NC.

The NC6LoWPAN implementation in the WSNs may cause additional end-to-end packet delay, The implementation in the WSNs may cause additional end-to-end packet delay, The NC6LoWPAN NC6LoWPAN as shown in Figure 8. implementation in the WSNs may cause additional end-to-end packet delay, as as shown shown in in Figure Figure 8. 8.

Figure 8. End-to-end packet delay (simple testing scenario). Figure 8. End-to-end packet delay (simple testing scenario). Figure 8. End-to-end packet delay (simple testing scenario).

The number of buffered native packet does not significantly influence the packet end-to-end The number of buffered native packet does not significantly influence the packet end-to-end thethe packet lossloss ratio, as itas is shown in Figure 9. This9.shows an impact delay; however, however,ititmay maydecrease decrease packet ratio, it is shown in Figure This shows an delay; however, it may decrease the packet loss ratio, as it is shown in Figure 9. This shows an of the nodes memory resources on the NC6LoWPAN efficiency. impact of the nodes memory resources on the NC6LoWPAN efficiency. impact of the nodes memory resources on the NC6LoWPAN efficiency. The results presented in Figures 7–9 are derived from a relatively simple sensor network. A more complex WSN scenario that is composed of seven Tmote Sky motes, as shown in Figure 10, was examined to validate these results. Nodes from #3 up to #7 exchange IPv6 packets with the gateway (number of bidirectional packet streams varies from 1 to 7), with the same profile as in the simple scenario. Additionally, to demonstrate the influence of segmentation and reassembling processes that are given by the 6LoWPAN standard on the network performance, nodes #3 and #1 exchange 1500B IPv6 packets every 1 s. As a consequence, the overall traffic volume in the air is increased, as it is shown in Figure 11.

Figure 8. End-to-end packet delay (simple testing scenario).

The number of buffered native packet does not significantly influence the packet end-to-end delay; however, it may decrease the packet loss ratio, as it is shown in Figure 9. This shows an Sensors 2018, 18, 1718 15 of 20 impact of the nodes memory resources on the NC6LoWPAN efficiency.

Sensors 2018, 18, x FOR PEER REVIEW

15 of 20

6LoWPAN network address: aaaa::/64 aaaa::212:7406:6:606 6

aaaa::212:7407:7:707 7

aaaa::212:7405:5:505 5

Sensors 2018, 18, x FOR PEER REVIEW Figure 9. Packet loss ratio (simple testing scenario).

15 of 20

The results presented in aaaa::212:7404:4:404 Figures 76LoWPAN to 9 arenetwork derived from a relatively simple sensor network. A address: aaaa::/64 4 3 aaaa::212:7406:6:606 more complex WSN scenario that is composed of seven Tmote Sky motes, as shown in Figure 10, 6 aaaa::212:7403:3:303 was examined to validate these results. aaaa::212:7407:7:707 7

aaaa::212:7405:5:505 5 IPv6 stream: 1500B packets

2

aaaa::212:7402:2:202 aaaa::212:7404:4:404 4

3 1 gateway

IPv6 stream: 10B packets aaaa::212:7403:3:303

aaaa::212:7401:1:101 IPv6 stream: Figure 10.2Multihop WSN. aaaa::212:7402:2:202 1500B packets

Nodes from #3 up to #7 exchange IPv6 packets with the gateway (number of bidirectional IPv6 stream: packet streams varies from 1 to 7), with the same profile as10B inpackets the simple scenario. Additionally, to gateway demonstrate the influence of segmentation 1 and reassembling processes that are given by the aaaa::212:7401:1:101 6LoWPAN standard on the network performance, nodes #3 and #1 exchange 1500B IPv6 packets every 1 s. As a consequence, the overall traffic volume in the air is increased, as it is shown in Figure 11. Figure Figure10. 10. Multihop Multihop WSN. WSN.

Nodes from #3 up to #7 exchange IPv6 packets with the gateway (number of bidirectional packet streams varies from 1 to 7), with the same profile as in the simple scenario. Additionally, to demonstrate the influence of segmentation and reassembling processes that are given by the 6LoWPAN standard on the network performance, nodes #3 and #1 exchange 1500B IPv6 packets every 1 s. As a consequence, the overall traffic volume in the air is increased, as it is shown in Figure 11.

Figure 11. 11. Overall Overall traffic traffic captured captured in in the the air air (extended (extended testing testing scenario). scenario). Figure

Both segmentation and reassembling actions require additional memory that is available in the nodes, which limits coding efficiency. The network coding operations reduce the overall traffic volume, but also they increase the packet loss ratio, as confirmed in Figure 12.

Figure 11. Overall traffic captured in the air (extended testing scenario).

Sensors 2018, 18, 1718

16 of 20

Both segmentation and reassembling actions require additional memory that is available in the nodes, which limits coding efficiency. The network coding operations reduce the overall traffic volume, Sensors 2018, 18, x FOR PEER REVIEW 16 of 20 but also they increase the packet loss ratio, as confirmed in Figure 12.

Figure Packet lose lose ratio (extended testing Figure 12. 12. Packet ratio (extended testing scenario). scenario).

Many nodes nodesare areboth bothsource source and relaying ones, so lack the of lack of memory is a reason major of reason of Many and relaying ones, so the memory is a major packets packetsThis losses. This means that the network proposed network codingcan technique can be used in sensor losses. means that the proposed coding technique be used in sensor networks, but networks, but with moderate traffic level, and preferably in the nodes with relaying capabilities. We with moderate traffic level, and preferably in the nodes with relaying capabilities. We can decrease the can decrease the by packet loss the rationumber by limiting the number of stored packetsinthat theit NC packet loss ratio limiting of packets that are the are NC stored buffer,in but alsobuffer, limits but NC it also limits the NC efficiency through overallSimilar traffic increase. effect can beadditional observed the efficiency through the overall trafficthe increase. effect canSimilar be observed if the if the additional be provided to packets. retransmit packets.that Onecan of improve the method that signalling will be signalling provided towill retransmit the lost Onethe of lost the method a packet can improve a packet loss ratio (keeping a traffic load decreased) can be the adaptive NC operations loss ratio (keeping a traffic load decreased) can be the adaptive NC operations allowing for switch off allowing NC node or case in a of part oftraffic the WSN in the case of high traffic the NC in for the switch node oroff in athe part of in thethe WSN in the high identified. identified. To show the NC6LoWPAN efficiency in terms of energy consumption, the overall energy that is To show efficiency inThe terms of energy consumption, the802.15.4-based overall energy sensor that is consumed by the the NC6LoWPAN network were calculated. energy consumed by the IEEE consumed by the network were calculated. The energy consumed by the IEEE 802.15.4-based sensor motes that were used in the experiments were calculated according to the formula proposed in [40] for motes that were used in the experiments were calculated according to the formula proposed in [40] sent and received packets: for sent and received packets: E(send/receive) = msend/receive ·size + bsend/receive , (8) 𝐸(𝑠𝑒𝑛𝑑/𝑟𝑒𝑐𝑒𝑖𝑣𝑒) = 𝑚𝑠𝑒𝑛𝑑/𝑟𝑒𝑐𝑒𝑖𝑣𝑒 ∙ 𝑠𝑖𝑧𝑒 + 𝑏𝑠𝑒𝑛𝑑/𝑟𝑒𝑐𝑒𝑖𝑣𝑒 , (8) where, m —the 𝑚send/receive —theenergy energyconsumed consumedby bythe thesensor sensortotosend/receive send/receive 1B 1B of of the the packet packet [J/B], [J/B], 𝑠𝑒𝑛𝑑/𝑟𝑒𝑐𝑒𝑖𝑣𝑒 bsend/receive —the energy consumed by the sensor to perform all of the operations to send/receive the 𝑏 —the energy consumed by the sensor to perform all of the operations to send/receive 𝑠𝑒𝑛𝑑/𝑟𝑒𝑐𝑒𝑖𝑣𝑒 data packet (transmission/reception initialization, the IEEE 802.15.4 header transmission/reception, data packet (transmission/reception initialization, the IEEE 802.15.4 header transmission/reception, the IEEE 802.15.4 acknowledge [J], size—the size—the size size of of the the data data packets packets to be acknowledge reception/transmission) reception/transmission) [J], transmitted transmitted [B]. [B]. Supporting by reference reference about about the the energy energy that that is is consumed consumed by by the the Tmote Tmote Sky Sky motes motes from from [41], [41], Supporting by we we can can receive receive energy energy that that is is required required for for sending sending n-byte n-byte packets: packets: E(send) E(send) == 0.12n 0.12n + + 3.54 3.54 [J], [J], and and for for receiving n-byte 4.03 [J]. By collecting all of the packets transmitted and n-byte packets: E(receive) E(receive) = 0.12n ++ 4.03 received presented in Figure 11 (with meanmean 28 Bytes: encoded and native packets, received in inthe thenetwork network presented in Figure 11 (with 28 Bytes: encoded and data native data including headers),headers), we can assess NC the efficiency in termsinofterms the total energy consumed in the packets, including we canthe assess NC efficiency of the total energy consumed network (E(send) + E(receive)). FigureFigure 13 shows this assessment. in the network (E(send) + E(receive)). 13 shows this assessment.

Sensors 2018, 18, x FOR PEER REVIEW

17 of 20

Sensors 2018, 18, 1718 x FOR PEER REVIEW

17 of 20

Figure 13. Total energy consumed in the network for packets transmission and reception (extended testing scenario). Figure 13. Total energy consumed in the network for packets transmission and reception (extended Figure 13. Total energy consumed in the network for packets transmission and reception (extended The highest energy consumption gain was observed when six streams were transmitted testing scenario). testing scenario).

simultaneously in the network. Using the NC6LoWPAN, about 7% of the total energy was saved. It should behighest emphasized thatconsumption the experiments with a relatively high traffic volume The gainwere was performed observed The highest energy energy consumption gain was observed when when six six streams streams were were transmitted transmitted generated duringinmore than 1 hour, by each node of the networks (high total energy consumed). We simultaneously the network. network. Using theNC6LoWPAN, NC6LoWPAN, about7% 7% the total energy was saved. simultaneously in the Using the about ofof the total energy was saved. It can expect that the traffic will be much lower in many cases of the WSN. Thus, coding opportunities It should emphasized thatthe theexperiments experimentswere wereperformed performedwith withaarelatively relatively high high traffic traffic volume should bebe emphasized that volume can also be decreased, and consequently, the energy consumption efficiency can be We lower. generated during node ofof the networks (high total energy consumed). can generated duringmore morethan than11hour, hour,bybyeach each node the networks (high total energy consumed). We Nevertheless, the results confirm thatin the NC6LoWPAN can Thus, be effectively used in can the expect that the traffic will be much lower many cases of the WSN. coding opportunities can expect that the traffic will be much lower in many cases of the WSN. Thus, coding opportunities 6LoWPAN-based networks. also be decreased, and consequently, the energy the consumption efficiency can be lower. Nevertheless, the can also be decreased, and consequently, energy consumption efficiency can be lower. Total energy consumption, as shown ineffectively Figure 13, is in directly reflected in a WSN lifetime. results confirm that the NC6LoWPAN can be used the 6LoWPAN-based networks. Nevertheless, the results confirm that the NC6LoWPAN can be effectively used in the Assuming that each node is powered by a in battery mAh reflected capacity and V nominal Total energy consumption, as shown Figurewith 13, 1200 is directly in a 1.5 WSN lifetime. 6LoWPAN-based networks. voltage, we have estimated the lifetime of the extended network shown in Figure 10. Thus, a node Assuming that each node is powered by a battery with 1200 mAh capacity and 1.5 V nominal voltage, Total energy consumption, as shown in Figure 13, is directly reflected in a WSN lifetime. can use maximum energy equaloftothe 6480 J. Since network the experiments in lasted for10. 67 Thus, min., we can linearly we have estimated lifetime Figure node can use Assuming that eachthe node is poweredextended by a battery withshown 1200 mAh capacity and a1.5 V nominal estimate the lifetime of the network that is composed of seven nodes. Figure 14 shows this maximum equal to 6480 Since the lasted for 67shown min., we can linearly estimate the voltage, weenergy have estimated theJ.lifetime ofexperiments the extended network in Figure 10. Thus, a node estimation. lifetime of the network that is composed of seven nodes. Figure 14 shows this estimation. can use maximum energy equal to 6480 J. Since the experiments lasted for 67 min., we can linearly estimate the lifetime of the network that is composed of seven nodes. Figure 14 shows this estimation.

Figure 14. Estimated Estimated network network lifetime lifetime (extended (extended testing testing scenario). Figure

A relatively low lowvalue valueofofthethe network lifetime a result of high traffic in the network A relatively network lifetime is a is result of high traffic sent insent the network during Figure 14. Estimated network lifetime (extended testing scenario). during each experiment. In real WSNs, such traffic typically appears occasionally, thus the network each experiment. In real WSNs, such traffic typically appears occasionally, thus the network lifetime lifetime is incomparablyNevertheless, better. Nevertheless, an activation of the NC during higher traffic periods is incomparably an activation NC during periods brings A relatively better. low value of the network lifetime of is the a result of highhigher traffictraffic sent in the network brings an increase in the lifetime. For example, for seven streams that were sent over the network, an increase in the lifetime. For example, for seven streams that were sent over the network, we can during each experiment. In real WSNs, such traffic typically appears occasionally, thus the network we can observe that estimated network lifetime is increased by about 60% if the NC is applied (with observe is that estimated network lifetime is increased by about 60% if during the NChigher is applied (with five lifetime incomparably better. Nevertheless, an activation of the NC traffic periods native packets buffered in the NC buffers), when comparing to the network without the NC. Since the brings an increase in the lifetime. For example, for seven streams that were sent over the network, we can observe that estimated network lifetime is increased by about 60% if the NC is applied (with

Sensors 2018, 18, 1718

18 of 20

NC6LoWPAN mechanism is applied in real sensor motes and the results come from the experiments conducted in the real network, we mainly focused on the confirmation that the NC can bring benefits in overall traffic sent in the 6LoWPAN-based network, and in consequence, we can achieve lower overall energy consumption and a longer network lifetime. Moreover, the better benefits can be reached if the network is highly loaded. The NC6LoWPAN optimisation and its adaptation to specific applications used in the WSNs is left for further investigations. 5. Conclusions and Future Work The paper discusses the efficiency of the inter-session network coding technique in the IEEE802.15.4/6LoWPAN-based wireless sensor networks. The NC6LoWPAN mechanism was examined both in simple and more complex scenarios. The results confirm that the application of the network coding technique reduces both the overall traffic volume and the packet loss ratio, which leads to the sensor’s energy saving, but it may increase the end-to-end packet delay. The following recommendations should be considered for effective application of NC6LoWPAN in WSNs. Firstly, packets have to be buffered in the NC layer to provide a network coding opportunity, even in the softly loaded network. Secondly, an appropriate value of the buffering time has to be selected, depending on network type, traffic characteristics and user’s mobility. Thirdly, only unicast-based user data packets can be coded. The future work will be focused on the adaptive technique, allowing an increase in the coding efficiency in cognitive mobile sensor networks. The new solution should actively react on links quality, network structure changes due to nodes mobility, and the dynamic nature of wireless communications. It should also be independent of the broadcasted transmission and data link layer signaling protocols. Finally, it should incorporate some level of intelligence, allowing for us to adjust the network coding processes to a traffic type, routing information, and other possible cross layer information. Author Contributions: M.A. prepared the concept of the paper; J.K. developed the algorithms; J.K. conceived, designed and performed the experiments; M.A. and J.K. analyzed the data; J.K. wrote the paper. M.A. revised the paper. Acknowledgments: Work done as a part of the CYBERSECIDENT/369195/I/NCBR/2017 project supported by the National Centre of Research and Development in the frame of CyberSecIdent Programme. Conflicts of Interest: The authors declare no conflict of interest.

References 1.

2.

3. 4.

5. 6. 7.

Krygier, J.; Bednarczyk, M.; Maslanka, K. Evaluation of the Multimetric Proactive Routing Protocol Implementation for Mobile Ad-Hoc Networks. In Proceedings of the 19th International Conference on Microwave Radar and Wireless Communications, Warsaw, Poland, 21–23 May 2012; pp. 259–261. Karenos, K.; Kalogeraki, V. Real-Time Traffic Management in Sensor Networks. In Proceedings of the 27th IEEE International Real-Time Systems Symposium (RTSS 0 06), Rio de Janeiro, Brazil, 5–8 December 2006; pp. 422–434. Djenouri, D.; Balasingham, I. Traffic-Differentiation-Based Modular QoS Localized Routing for Wireless Sensor Networks. IEEE Trans. Mob. Comput. 2011, 10, 797–809. [CrossRef] Vithya, G.; Vinayagasundaram, B. Actuation Sensor with Adaptive Routing and QOS Aware Checkpoint Arrangement on Wireless Multimedia Sensor Network. In Proceedings of the International Conference on Recent Trends in Information Technology (ICRTIT 2011), Chennai, Tamil Nadu, India, 3–5 June 2011; pp. 444–449. Niewiadomska-Szynkiewicz, E. Energy Aware Communication Protocols for Wireless Sensor Networks. In Transactions on Computational Collective Intelligence; Springer: Berlin, Germany, 2013; pp. 135–149. Ahlswede, R.; Cai, N.; Li, S.Y.R.; Yeung, R.W. Network Information Flow. IEEE Trans. Inf. Theory 2000, 46, 1204–1216. [CrossRef] Li, S.Y.R.; Yeung, R.W.; Cai, N. Linear Network Coding. IEEE Trans. Inf. Theory 2003, 49, 371–381. [CrossRef]

Sensors 2018, 18, 1718

8. 9.

10. 11. 12.

13. 14. 15.

16.

17. 18.

19.

20.

21. 22.

23. 24.

25.

26.

27.

19 of 20

Koetter, R.; Medard, M. An Algebraic Approach to Network Coding. IEEE Trans. Netw. 2003, 11, 782–795. [CrossRef] Hagedorn, A.; Starobinski, D.; Trachtenberg, A. Rateless Deluge: Over-the-Air Programming of Wireless Sensor Networks Using Random Linear Codes. In Proceedings of the International Conference on Information Processing in Sensor Networks, St. Louis, MO, USA, 22–24 April 2008; pp. 457–466. Wu, Y.; Chou, P.A.; Jain, K. A Comparison of Network Coding and Tree Packing. In Proceedings of the International Symposium on Information Theory, Chicago, IL, USA, 27 June–2 July 2004; p. 145. Chou, P.A.; Wu, Y. Network Coding for the Internet and Wireless Networks. IEEE Signal Process. Mag. 2007, 24, 77–85. [CrossRef] Gkantsidis, C.; Rodriguez, P. Network Coding for Large Scale Content Distribution. In Proceedings of the 24th Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM 2005), Miami, FL, USA, 13–17 March 2005; pp. 2235–2245. Katti, S.; Rahul, H.; Hu, W.; Katabi, D.; Medard, M.; Crowcroft, J. XORs in the Air: Practical Wireless Network Coding. IEEE Trans. Netw. 2008, 16, 497–510. [CrossRef] Khreishah, A.; Wu, J.; Ostovari, P.; Khalil, I. Flow-based XOR Network Coding for Lossy Wireless Networks. IEEE Trans. Wirel. Commun. 2012, 11, 2321–2329. [CrossRef] Dong, Q.; Wu, J.; Hu, W.; Crowcroft, J. Practical network coding in wireless networks. In Proceedings of the 13th Annual ACM International Conference on Mobile Computing and Networking, Montreal, QC, Canada, 9–14 September 2007; pp. 306–309. Omiwade, S.; Zheng, R.; Hua, C. Butterflies in the Mesh: Lightweight Localized Wireless Network Coding. In Proceedings of the ITA Fourth Workshop on Network Coding, Theory and Applications, Hong Kong, China, 3–4 January 2008; pp. 1–6. Zhao, F.; Medard, M. On Analyzing and Improving COPE Performance. In Proceedings of the Information Theory and Applications Workshop, San Diego, CA, USA, 31 January–5 February 2010; pp. 1–6. Guo, Z.; Wang, B.; Cui, J.H. Efficient Error Recovery Using Network Coding in Underwater Sensor Networks. In Networking, Ad Hoc and Sensor Networks, Wireless Networks, Next Generation Internet; Springer: Berlin/Heidelberg, Germany, 2007; pp. 227–238. Hou, I.H.; Tsai, Y.E.; Abdelzaher, T.F.; Gupta, I. AdapCode: Adaptive Network Coding for Code Updates in Wireless Sensor Networks. In Proceedings of the 27th Conference on Computer Communications (INFOCOM 2008), Phoenix, AZ, USA, 13–18 April 2008; pp. 2189–2197. Platz, D.; Woldegebreal, D.H.; Karl, H. Random Network Coding in Wireless Sensor Networks: Energy Efficiency via Cross-Layer Approach. In Proceedings of the IEEE 10th International Symposium on Spread Spectrum Techniques and Applications, Bologna, Italy, 25–28 August 2008; pp. 654–660. Rout, R.R.; Ghosh, S.K. Enhancement of Lifetime using Duty Cycle and Network Coding in Wireless Sensor Networks. IEEE Trans. Wirel. Commun. 2013, 12, 656–667. [CrossRef] Amdouni, I.; Adjih, C.; Plesse, T. Network Coding in Military Wireless Ad Hoc and Sensor Networks: Experimentation with GardiNet. In Proceedings of the International Conference on Military Communications and Information Systems (ICMCIS 2015), Cracow, Poland, 18–19 May 2015; pp. 1–6. Zhu, Y.H.; Chi, K.; Tian, X.Z.; Leung, V.C.M. Network Coding Based Reliable IPv6 Packet Delivery over IEEE 802.15.4 Wireless Personal Area Networks. IEEE Trans. Veh. Technol. 2015, PP, 1–13. [CrossRef] Tmote Sky: Ultra Low Power IEEE 802.15.4 Compliant Wireless Sensor Module. Moteiv Corporation. Available online: http://www.eecs.harvard.edu/~konrad/projects/shimmer/references/tmote-skydatasheet.pdf (accessed on 16 March 2018). Zhou, X.; Boukerche, A. Energy-efficient MAC schemes for Delay-Tolerant Sensor Networks. In Proceedings of the IEEE Symposium on Computers and Communication (ISCC), Messina, Italy, 27–30 June 2016; pp. 27–30. [CrossRef] Dunkels, A.; Gronvall, B.; Voigt, T. Contiki–A lightweight and flexible operating system for tiny networked sensors. In Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks (LCN’04), Tampa, FL, USA, 16–18 November 2004; pp. 455–462. Palacios-Trujillo, R.; Alonso-Zarate, J.; Granelli, F.; Fitzek, F.H.P.; Fonseca, N.L.S. Network Coding and Duty Cycling in IEEE 802.11 Wireless Networks with Bidirectional Transmissions and Sleeping Periods. In Proceedings of the IEEE Global Communications Conference (GLOBECOM), San Diego, CA, USA, 6–10 December 2015; pp. 1–7.

Sensors 2018, 18, 1718

28. 29. 30.

31. 32. 33. 34.

35.

36.

37.

38.

39. 40.

41.

20 of 20

Chandanala, R.; Stoleru, R. Network Coding in Duty-Cycled Sensor Networks. In Proceedings of the Seventh International Conference on Networked Sensing Systems, Kassel, Germany, 15–18 June 2010; pp. 203–210. Kwon, M.; Park, H. The Impact of Network Coding Cluster Size on Approximate Decoding Performance. KSII Trans. Internet Inf. Syst. 2016, 10, 1144–1158. Migabo, M.E.; Olwal, T.O.; Djouani, K.; Kurien, A.M. Cooperative and Adaptive Network Coding for Gradient Based Routing in Wireless Sensor Networks with Multiple Sinks. J. Comput. Netw. Commun. 2017, 2017, 5301462. [CrossRef] Wang, H.; Wang, S.; Bu, R.; Zhang, E. A Novel Cross-Layer Routing Protocol Based on Network Coding for Underwater Sensor Networks. Sensors 2017, 17, 1821. [CrossRef] [PubMed] Ahmadi, A.; Shojafar, M.; Hajeforosh, S.; Dehghan, M.; Singhal, M. An efficient routing algorithm to preserve k-coverage in wireless sensor networks. J. Supercomput. 2013, 68, 599–623. [CrossRef] Mostafaei, H.; Shojafar, M.; Zaher, B.; Singhal, M. Barrier coverage of WSNs with the imperialist competitive algorithm. J. Supercomput. 2017, 73, 4957–4980. [CrossRef] Naranjo, P.G.V.; Shojafar, M.; Mostafaei, H.; Pooranian, Z.; Baccarelli, E. P-SEP: A prolong stable election routing algorithm for energy-limited heterogeneous fog-supported wireless sensor network. J. Supercomput. 2017, 73, 733–755. [CrossRef] Ostovari, P.; Wu, J.; Khreishah, A. Network Coding Techniques for Wireless and Sensor Networks. In The Art of Wireless Sensor Networks. Signals and Communication Technology; Ammari, H., Ed.; Springer: Berlin/Heidelberg, Germany, 2014. Montenegro, G.; Kushalnagar, N.; Corp, I.; Hui, J.; Culler, D. Transmission of IPv6 Packets over IEEE 802.15.4 Networks. Request for Comments, RFC4944. September 2007. Available online: https://tools.ietf.org/html/ rfc4944 (accessed on 16 March 2018). IEEE Computer Society, IEEE 802.15.4 Standard for Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (WPANs). IEEE Computer Society. September 2011. Available online: https://ieeexplore.ieee.org/document/7460875 (accessed on 16 March 2018). Palacios-Trujillo, R.; Dabi, B.H.; Alonso-Zarate, J.; Granelli, F.; Fitzek, F.H.P.; Fonseca, N.L.S. Network Coding-Aware IEEE 802.11 MAC Protocol Using Batch Transmissions and Multiple Reverse Direction Exchanges. In Proceedings of the IEEE International Conference on Communications (ICC), Kuala Lumpur, Malaysia, 22–27 May 2016; pp. 1–7. Winter, T. RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. Request for Comments, RFC6550. March 2012. Available online: https://tools.ietf.org/html/rfc6550 (accessed on 16 March 2018). Feeney, L.M.; Nilsson, M. Investigating the Energy Consumption of a Wireless Network Interface in an Ad Hoc Networking Environment. In Proceedings of the Twentieth Annual Joint Conference of the IEEE Computer and Communications Societies, Anchorage, AK, USA, 22–26 April 2001; pp. 1548–1557. Amiri, M. Measurements of Energy Consumption and Execution Time of Different Operations on Tmote Sky Sensor Motes. Masaryk University, Brno, 2010; pp. 1–39. Available online: https://is.muni.cz/th/nezqg/ Thesis.pdf (accessed on 16 March 2018). © 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

Suggest Documents