- About this Journal
- Abstracting and Indexing
- Aims and Scope
- Article Processing Charges
- Articles in Press
- Author Guidelines
- Bibliographic Information
- Citations to this Journal
- Contact Information
- Editorial Board
- Editorial Workflow
- Free eTOC Alerts
- Publication Ethics
- Reviewers Acknowledgment
- Submit a Manuscript
- Subscription Information
- Table of Contents
Journal of Computer Networks and Communications
Volume 2012 (2012), Article ID 316839, 10 pages
Routing in IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN): A Survey
Department of Electronics and Communication Engineering, Motilal Nehru National Institute of Technology, Allahabad 211004, India
Received 20 October 2011; Accepted 5 January 2012
Academic Editor: Yang Yang
Copyright © 2012 Vinay Kumar and Sudarshan Tiwari. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
6LoWPANs (IPv6-based Low-Power Personal Area Networks) are formulated by devices that are compatible with the IEEE 802.15.4 standard. To moderate the effects of network mobility, the Internet Protocol (IP) does not calculate routes; it is left to a routing protocol, which maintains routing tables in the routers. 6LowPAN uses an adaptation layer between the network (IPv6) and data link layer (IEEE802.15.4 MAC) to fragment and reassemble IPv6 packets. The routing in 6LoWPAN is primarily divided on the basis of routing decision taken on adaptation or network layer. The objective of this paper is to present a state-of-the-art survey of existing routing protocols: LOAD, M-LOAD, DYMO-Low, Hi-Low, Extended Hi-Low, and S-AODV. These routing protocols have compared on the basis of different metric like energy consumption, memory uses, mobility, scalability, routing delay, an RERR message, a Hello message, and local repair. We have also presented the taxonomy of routing requirement; parameter for evaluating routing algorithm, and it was found that the routing protocol has its own advantages depending upon the application where it is used.
6LoWPANs are formed by devices that are compatible with the IEEE 802.15.4. However, ZigBee uses the IEEE 802.15.4 standard as its communication protocol for Medium Access Control (MAC) layer and Physical (PHY) layer. IEEE 802.15.4 devices are characterized by low computational power, scarce memory capacity, lower bit rate, short range, and low cost . LoWPAN have devices that work together and connect the physical working environment to real-world applications like sensors with wireless application. Some protocols exist in sensor networks that have a non-IP network layer protocol such as ZigBee, where the TCP/IP protocol is not used. As node density in sensor networks increases and these networks required connection with other networks via internet, then Internet Engineering Task Force (IETF)  defines IPv6 over LoWPAN as techniques to implement the TCP/IP protocol in WSNs . 6LoWPAN provides a WSN node with IP communication capabilities by putting an adaptation layer above the IEEE 802.15.4 link layer for the packet fragmentation and reassembly purpose [4–6]. IP routing protocols are used to maintain routing tables on IP routers which indicates on which next-hop forwarding decision should be made for the destination of an IP packet. In this paper, we have surveyed a number of existing routing protocols in 6LoWPAN like: LOAD (6LoWPAN Ad-hoc On-Demand Distance Vector), MLOAD (Multipath-based 6LoWPAN Ad-hoc On-Demand Distance Vector), DYMO-Low (Dynamic MANET On-demand for 6LoWPAN Routing), Hi-Low (Hierarchical Routing), Extended Hi-Low, and S-AODV (Sink-Ad-hoc on demand Distance Vector Routing). IP networks are packet switched, in which forwarding decisions are made hop-by-hop, based on the destination address in a packet. IP addresses are structured, and this structure is used to group addresses together under a single route entry. In IPv6, an address prefix is used, hence this routing is called prefixed-based routing. We have compared the different routing protocols in 6LoWPAN on the basis of energy consumption, memory usage, scalability, routing delay, and so forth. The rest of the paper is organized as follows: Section 2 presents 6LoWPAN architecture. Section 3 presents the basic requirement of routing in 6LoWPAN. Section 4 presents a survey on state-of-art of different routing in 6LoWPAN reported in the literature till date. The final paper is concluded in Section 5.
2. 6LoWPAN Architecture
There are three types of LoWPANs [7–9]: Ad-Hoc LoWPANs, Simple LoWPANs, and Extended LoWPANs. Ad-hoc LoWPANs are infrastructure less and not connected to the internet, a Simple LoWPANs is connected through one LoWPANs edge router to another Internet Protocol (IP) network. Extended LoWPANs have the LoWPANs consisting of multiple edge routers along with a backbone link in order to interconnect them. The role of edge router is as it routes traffic data or video in and out of the LoWPANs. Figure 1 shows the architecture of 6LoWPAN. A LoWPAN consists of a number of nodes, which can play the role of a router or host, along with one or multiple edge routers. One important term used with 6LoWPAN is the Neighbor discovery (ND), which facilitates the nodes to register with the edge router in order to provide efficient network operation. ND is the basic mechanism in 6LoWPAN and defines how routers and hosts communicate with each other on the same link. Nodes in the LoWPAN are free to move throughout the LoWPAN, between edge routers, and even between LoWPANs. Protocol stacks of 6LoWPAN are shown in Figure 2 compared to TCP/IP and ISO/OSI Layer. 6LoWPAN standards enable the efficient use of IPv6 over low-rate, low-power wireless networks of simple embedded devices through an optimization of related protocols and adaptation layer.
3. Routing in 6LoWPAN
There are four basic requirements for routing in 6Lowpan :(i)the node should support sleep mode for considering battery saving;(ii)generated overhead on data packets should be low;(iii)routing overhead should be lower;(iv)minimal computation and memory requirements.
3.1. 6LoWPAN Routing Requirements
3.1.1. Devices Properties
Low Routing State
6LoWPAN routing protocols must allow implementation with small code size and require low routing state to fit the typical 6LoWPAN node capacity. Due to these hardware constraints, size of code not more than (48–128 KB) flash memory ranges. 6LoWPAN technology reduces power consumption and improves robustness and easy to analyze because of low complexity.
Minimal Power Consumption
6LoWPAN technology has the ability to efficiently use available resources, because of this routing protocol should cause minimal power consumption. One way of battery lifetime optimization is by achieving a reducible control message overhead.
3.1.2. Link Properties
Minimal Routing Overhead
For energy conservation, routing overhead should be minimized to fragmentation of the frames. The size of the control packet frame should not cross the IEEE 802.15.4 standard frame size. This provides a reduction in the power consumption for transmission of packet frame, avoids unnecessary usage of bandwidth, and stops the requirement for packet reassembly.
Successful Packet Delivery
The design of routing protocol must consider about the probability of successfully delivering of packet frames and all of this is done according to the requirement of applications. The requirement of a successful end-to-end packet delivery ratio may be varied according to different application.
Link Latency Characteristics
Depending upon the types of application, the range of link latency characteristics vary from a few hundred milliseconds to minutes.
Robust to Dynamic Loss
6LoWPAN routing protocols should be robust to dynamic loss caused by link failure or device enriched ability, operating system misbehavior, hardware problem, and power consumption by source. The link failure condition occurs in harsh environments, but in few condition, user desires the feedback after carrying out actions, routing protocols must cover within 2 seconds if the destination node of the packet has moved and must cover within 0.5 seconds if only the sender has moved, such as for home applications.
Designed to Successfully Operate
Link asymmetry occurs when the probabilities of successful transmission between two nodes is significantly higher in one direction than in the other one. In case of link asymmetry, 6LoWPAN routing protocols should be designed to successfully function.
3.1.3. Network Characteristics
Some node in the network does not respond during certain time duration due to periodic hibernation. In 6LoWPAN condition, the nodes may be hibernating periodically because of saving power consumption. After the successful transmission of packets, nodes frequently shut off their radio transmission.
Flexibility, Energy Balance, and Link Qualities
The metrics used in 6LoWPAN are flexible as well as others to optimize the route selection after considering the energy balance and link qualities. Simple hop-count-only mechanism may be inefficient in 6LoWPANs. There is a Link Quality Indication (LQI), or/and RSSI from IEEE 802.15.4 that may be taken into account for better metrics.
Scalability and Minimality
In 6LoWPAN, scalability of nodes ranges from few to millions of nodes and minimality should be designed in order to get the maximum utilization of the resources. For home automation application, it is envisioned that the routing protocol must support 250 devices in the network while the routing protocol for metropolitan-scale sensor networks must be capable of clustering a large number of sensing nodes into regions containing the order of 102 to 104 sensing nodes each.
6LoWPAN routing protocols should be designed to achieve route repair and should not disturb power saving from routing protocols. Local repair improves throughput and end-to-end latency, especially in large networks. Since routes are repaired quickly, fewer data packets are lossy, and a smaller number of routing protocol packet transmissions are needed.
Dynamic Adaptive Topology
Dynamic adaptive topology is used in the 6LoWPAN routing protocol and mobile nodes. This supports the minimal routing state and routing protocol message overhead. Physical mobility of nodes making the change in radio environment, because of this topology and routing protocols, is changed. Some nodes may move from one 6LoWPAN to another 6LoWPAN and are expected to become functional members of the latter 6LoWPAN in a limited amount of time.
Multicast Traffic Pattern
6LoWPAN routing protocol supports multicast traffic pattern, that is, point-to-point, point-to-multipoint, or vice-versa. 6LoWPAN routing protocols should be designed with the consideration of forwarding packets from/to multiple sources/destinations.
Confidentiality and Authentication
6LoWPAN supports secure delivery of control messages or packets, among others. Security of documents is very important to prevent the misuse of confidential information and also important for designing robust routing protocols. 6LoWPAN poses unique challenges to which traditional security techniques cannot be applied directly. For example, public key cryptography primitives are typically avoided as are relatively heavyweight conventional encryption methods.
3.1.5. Mesh under Forwarding
6LoWPAN routing protocols must support 16-bit short and 64-bit extended MAC addresses.
In neighbor discovery, ND-style performs the operation to the discovery and maintenance of neighbor. 6LoWPAN nodes should avoid sensing separate “Hello” messages because of link-layer mechanisms. IP Multicast: 6LoWPAN routing protocol supports functionality included.
It may employ structure in the network for efficient distribution in order to minimize link layer broadcast.
3.2. Parameters for Evaluating the Routing Protocols
6LoWPAN technology is a very hot field for the researchers. Research in the area of sensor networks has various routing protocols that may be used. Taxonomy of parameters for evaluating the routing protocols is shown in Figure 4. We have evaluated the parameters for the routing protocols, such as  the following.
3.2.1. Network Properties
Number of Devices and Network Parameters
These parameters directly change the routing state, routing table, or neighbor list.
6LoWPAN devices have several states of connectivity, ranging from “always connected” to “rarely connect.”
Mobility of nodes in a LoWPANs directly affects the routing state and influencing radio propagation change.
In 6LoWPAN, nodes can be placed either in the controlled or random manner. Once the nodes deployed in the network, they affect the routing state.
Spatial Distribution of Nodes and Gateways
Connectivity of the network is related to the spatial distribution of the nodes and other parameters. Nodes can be deployed any of the manner, but here we assume random spatial distribution where an average of 7 neighbors per node are required for approximately 95% network connectivity.
Traffic Pattern, Topology, and Application
6LoWPAN devices use the efficient routing protocols. For various traffic patterns and network architectures, various routing mechanisms have been deployed.
Classes of Service
These various protocols support multiple classes of service and required resource—constrained in LoWPAN.
This technology carries various confidential data with a high level of security and affects the power consumption.
3.2.2. Node Parameters
Processing Speed and Memory Size
These fundamental parameters explore the maximum size of the routing state and the maximum complexity of its process.
Power Consumption and Power Source
The nodes position in the topology created by the routing protocol affected the power consumption.
Routing protocol directly affects the transmission range in 6LoWPAN.
Traffic pattern affects the routing protocol since highly loaded nodes may distribute to higher delivery delays and may consume more energy than lightly loaded nodes.
3.2.3. Link Parameters
The user data throughput of loaded data transmission is between a single sender and a single receiver through an unslotted IEEE 802.15.4 2.4 GHz channel in ideal conditions such as 16-bit MAC addresses.
Payload size fixed the range of latencies of a frame transmission between a single sender and a single receiver through an unslotted IEEE 802.15.4 2.4 GHz channel in ideal condition such as 16-bit MAC addresses.
4. Routing Protocols in 6LoWPAN
The routing protocol in 6LoWPAN is very sensitive due to limited node’s capabilities in terms of power, transmission range, and so forth. Routing in 6LoWPAN is divided on the basis of layering decision , application-based, and other parameter bases. On the bases of layering, decision the routings are of two types: mesh-under routing and route-over routing. In mesh routing, routing decision is taken on adaptation layer and in route-over routing, routing decision taking is on the network layer. Based on application requirements, the routing in 6LoWPAN can be divided as data-aware routing, probabilistic routing, geographic routing, event-driven, query-based routing, and hierarchical routing. The different routing protocols in 6LoWPAN are LOAD, MLOAD, DYMO-Low, Hi-Low, Extended Hi-Low, S-AODV, and so forth.
Figure 5 shows the mesh-under and route-over routing. In this, the adaptation layer performs the mesh routing and forwards packets to the destination over multiple hops in mesh-under the scheme. The network layer does not involve performing the routing inside a LoWPAN. In mesh-under routing, routing and forwarding are performed at data link layer based on 6LoWPAN header or IEEE 802.15.4 frame. An IP packet is fragmented by the adaptation layer to a number of fragments. These fragments are transferred to the next hop by mesh routing.
In route-over routing scheme, all routing decisions are taken in the network layer where each node acts as an IP router. Each link layer hop is an IP hop in the route over the scheme. The IP routing supports the forwarding of packets between these links. In this adaptation, layer of 6LoWPAN establishes a direct connection between the frame and the IP headers.
4.1. Discussion of Routing Protocol in 6LoWPAN
4.1.1. Hierarchical Routing (Hi-Low)
In order to increase the network scalability, Hi-Low  is proposed for 6LoWPAN. Unlike AODV and LOAD that use IEEE 64-bit identifier, Hi-Low use 16-bit unique short address as an interface identifier for memory saving and larger scalability. In Hi-Low, routing protocol address assigned to the nodes is totally dependent upon the existence of 6LoWPAN in the area of POS (Personal Operating Space), when the nodes entering, existing 6LoWPAN. If they found that, 6LoWPAN exists in their POS, which is an area within the reception range of the wireless transmission. If there is not any 6LoWPAN in their POS, they become the coordinator of a new 6LoWPAN and assign the short address by 0. If in POS, they become the member of an existing parent node and are assigned 16 bit short address of a parent node. Maximum number of child nodes that a parent can have is called Maximum number of Child (MC). If a parent node does have child nodes, the new child node becomes a First Child node (FC) and receives a short address which is determined by (1) from a parent of the current node. A Second Child node is assigned a short address like FC. It means that the in (1) is the th child node. An address allocation of (1) is as follows: for Figure 6, .
4.1.2. 6LoWPAN Ad-Hoc On-Demand Distance Vector Routing (LOAD)
A LOAD routing protocol is a simplified version of an on-demand routing protocol based on AODV . It should be only run on FFDs. LOAD does not use the destination sequence number just like AODV in MANETs. For ensuring loop freedom, only the destination of a route should generate a Route Reply (RREP) in the reply. A route will be preferred by LOAD if the number of Weak links along the way is smaller and less hops from the source to the destination. In case of link break, the nodes of link break try to repair locally broadcasted Route Request (RREQ) and unicast RREP message. If the repairing node unable to repair to link, it unicasts an RERR with an error code that indicate the reason of the repair failure to the originator of the failed data message only. It does not require any precursor list as used in AODV for forwarding the RERR messages. It requests MAC layer acknowledgement for every sent data message and is termed as Link Layer Notification (LLN) acknowledgements. LOAD does not use destination sequence number. Figure 7 shows the message exchange in LOAD protocol. The message exchange in DYMO-Low protocol can be described by Figure 8.
4.1.3. Dynamic MANET On-Demand for 6LoWPAN Routing (DYMO-Low)
In DYMO-Low  routing protocol, DYMO packets should not be fragmented because RREQ messages are transmitted as IEEE 802.15.4 standard broadcast messages to reach all the next hop neighbors. In this Link quality (LQI) of IEEE 802.15.4 standard in addition to the route, cost is utilized for selecting the best route to the destination. Only the final destination should respond to an RREQ by replying with an RREP. Hello messages are not used by this protocol. All of the features that discussed in LOAD above are used in DYMO-low except that the 16-bit sequence numbers are used in DYMO-low to ensure loop freedom. Beside that, local repair and route cost accumulation that used in LOAD are now used as well in DYMO-Low. DYMO-Low uses 16-bit destination sequence number and does not use local repair, and route cost accumulation is not used.
4.1.4. Extended Hi-Low 
In Hierarchical routing, if any node failure occurs, it does not support path recovery. Extended Hi-Low routing protocol provides path recovery techniques for Hi-Low routing. If any node parent or child is a failure due to hardware or software problem which can be seen below the given figure, it is not suitable for maintaining the routing tree. Extended Hi-Low routing protocol provides recovery of a hierarchical routing path when a parent node is a failure. This mechanism uses NAC (Neighbor Added Child) and NRP (Neighbor Replace Parent) with existing routing table for recovery path. Figure 9 shows the route recovery mechanism in which if Node B is failure, the child nodes of node B cannot transmit the packet to parent node or upstream node. In Extended Hi-Low, the child node 3 has new NRP as node E. So Node-3 can appoint a new upstream node or parent node to Node E after it did not receive a reply of its parent for a while. After the child node’s NRP is set to the new parent node and new parent node’s NAC is set to the child, the process of packet delivery is as follows. For example, when node-8 (source node) transmits a packet to Node-3 (the destination node), Node-8 sends a packet through Node-D to Node-A which is the coordinator. When the node-A asks the Node-3 passway to parent nodes, if one of them had Node-3 as a new NAC address at that time, the parent node, which has it, would give an answer to Node-A. Then, the packet can be sent from source node (Node-8) to the destination node (Node-3). The recovery path would be completed using this mechanism.
4.1.5. Sink Routing Table over AODV
S-AODV  provided benefits in terms of traffic reduction, power consumption, and network lifetime extension for 6LoWPAN. In S-AODV, traffic of route discovery in original AODV is reduced by using SRT (Sink Routing Table). By the new mechanism, the delay and energy consumption of the connection between each internal common node and the sink are reduced. More importantly, the new mechanism in the S-AODV optimizes the routing performance, but it does not ask the 6LoWPAN to provide more powerful hardware. The SRT would not shut down the routing capability of original AODV routing between internal nodes at all. On the whole SRT and AODV are able to work well together. Figure 10 shows the S-AODV routing.
4.1.6. MLOAD (Multipath 6LoWPAN Ad-Hoc On-Demand Distance Vector Routing)
In LOAD routing protocol, every route discovery will broadcast RREQ over the 6LoWPAN. MLOAD  reduces the network overhead of route discovery by using multipath techniques. During route discovery, the MLOAD will find the multipath, when the main route fails, then it uses the alternate route for transmission data. MLOAD uses multipath link-disjoint path during route discovery. The route discovery has two phases, which route request and route reply. If the node in 6LoWPAN needs a route to transmit data, the node will broadcast a route request. When the destination node received the request, it will reply a packet to the source node. MLOAD improved the LOAD routing technique by reducing the route discovery count, power consumption in 6LoWPAN mesh network. Multipath techniques used by M-LOAD is shown in Figure 11.
4.2. Comparisons of Different Routing Protocols in 6LoWPAN
Table 1 shows the timeline comparison of routing protocols on the basis of different performance metric like energy consumption, memory uses, mobility, scalability, routing delay, an RERR message, a Hello message, and Local repair. In this table, we can see that some routing protocols belong to route-over routing and some belong to mesh-under routing protocol. It is confirmed from Table 1 that the routing protocols have their own advantages depending upon the application where it they are used.
In this paper, survey was done on the different routing algorithm and IP mobility in 6LoWPAN. The existing routing algorithms in 6LoWPAN like LOAD, M-LOAD, DYMO-Low, Hi-Low, Extended Hi-Low, and S-AODV compared on the basis of different metric like energy consumption, memory uses, mobility, scalability, and so forth. We have also presented the taxonomy of routing requirement, parameter for evaluating routing algorithm and mobility, and so forth. It was found that the routing protocols have their own advantages depending upon the application where they are used. There exists some trade-off in the respective routing protocols such as routing protocol that uses Hello message that may provide more reliable but have higher end-to-end delay in the packet routing. Hi-Low routing protocol provides an advantage of memory saving by which the networks become more scalable. Hi-Low provides low memory usage and higher scalability compared to LOAD, DYMO-Low, and S-AODV. DYMO-Low provides more routing delay compared to other routing protocols. S-AODV provides benefits in terms of traffic reduction, power consumption, and network lifetime extension, for 6LoWPAN.
- 802.15.4-2003 IEEE standard, “Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs),” IEEE Computer Society Sponsored by the LAN/MAN Standards Committee, October 2003.
- N. Kushalnagaret, G. Montenegro, and C. Schumacher, “IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): overview, assumptions, problem statement, and goals,” IETF RFC 4919, August 2007.
- D. Singh and K. Daeyeoul, “Performance analysis of gateway discovery techniques: IPv6-based wireless sensor networks,” in Proceedings of the 2nd International Conference on Evolving Internet (INTERNET '10), pp. 142–146, Seoul, South Korea, November 2010.
- N. Kushalnagar, G. Montenegro, J. Hui, and D. Culler, “Transmission of IPv6 Packets over IEEE 802.15.4 Networks,” IETF RFC 4944, September 2007.
- X. Ma and W. Luo, “The analysis of 6LowPAN technology,” in Proceedings of the Pacific-Asia Workshop on Computational Intelligence and Industrial Application (PACIIA '08), pp. 963–966, Wuhan, China, December 2008.
- C. Yibo, K. Hou, H. Zhou et al., “6LowPAN stacks: a survey,” in Proceedings of the 7th International Conference on Wireless Communications, Networking and Mobile Computing (WiCOM '07), pp. 1–4, Wuhan, China, October 2011.
- Z. Shelby and C. Bormann, 6LoWPAN: The Wireless Embedded Internet, John Wiley & Sons, Chichester, UK, 2009.
- L. Atzori, A. Iera, and G. Morabito, “The internet of things: a survey,” Computer Networks, vol. 54, no. 15, pp. 2787–2805, 2010.
- G. Mulligan, “The 6LoWPAN architecture,” in Proceedings of the 4th Workshop on Embedded Networked Sensors (EmNets '07), pp. 78–82, June 2007.
- E. Kim, D. Kaspar, C. Gomez, and C. Bormann, “Problem Statement and Requirements for 6LoWPAN Routing,” draft-ietf-6lowpan-routing-requirements-10, November 2011.
- A. H. Chowdhury, M. Ikram, H. S. Cha et al., “Route-over vs mesh-under routing in 6LoWPAN,” in Proceedings of the ACM International Wireless Communications and Mobile Computing Conference (IWCMC '09), pp. 1208–1212, March 2009.
- K. Kim, S. Yoo, J. Park, S. Daniel Park, and J. Lee, “Hierarchical Routing over 6LoWPAN (HiLow),” draft-deniel-6lowpan-hilow- hierarchical-routing-01, June 2007.
- K. Kim, S. Daniel Park, G. Montenegro, S. Yoo, and N. Kushalnagar, “6LoWPAN Ad Hoc On-Demand Distance Vector Routing (LOAD),” draft-daniel-6lowpan-load-adhoc-routing-03, June 2007.
- K. Kim, S. Park, S. I. Chakeres, and C. Perkins, “Dynamic MANET On-demand for 6LoWPAN (DYMO-low) Routing,” draft-montenegro- 6lowpan-dymo-low-routing-03, June 2007.
- C. S. Nam, H. J. Jeong, and D. R. Shin, “Extended hierarchical routing over 6LoWPAN,” in Proceedings of the 4th International Conference on Networked Computing and Advanced Information Management (NCM '08), pp. 403–405, Gyeongju, Korea, September 2008.
- Z. Cao and G. Lu, “S-AODV: Sink routing table over AODV routing protocol for 6LoWPAN,” in Proceedings of the 2nd International Conference on Networks Security, Wireless Communications and Trusted Computing (NSWCTC '10), vol. 2, pp. 340–343, June 2010.
- J. Chang, T. Chi, H. Yang, and H. Chao, “The 6LoWPAN Ad-hoc on demand distance vector routing with multi-path scheme,” in Proceedings of the IET International Conference on Frontier Computing. Theory, Technologies and Applications, pp. 204–209, August 2010.