3. Routing Parameters and Routing
The parameters that are used to evaluate the routing protocols are as follows:
1) Network parameters:
- number of devices, density and network diameter are taken into consideration as these parameters affect the routing state i.e., the number of entries in the routing table.
- a LoWPAN node can be in several states ranging from “always connected” to “rarely connected” which affects dynamic discovery of routes across 6LoPWAN.
- LoWPAN nodes are highly dynamic. They can be added or removed dynamically from the network. This affects the routing state and the volume of control messages.
- the deployment might occur at once or iteratively which may affect the routing state.
- spatial distribution of nodes (whether they are placed on a grid or located randomly in an area), the number and the spatial distribution of gateways affects the network connectivity, network congestion and available data rate.
- according to different traffic patterns (point-to-point, point-to-multipoint or multipoint-to-multipoint) and different network architectures different routing protocols have been developed such as event-driven, data-centric, location-based and address-centric.
- routing protocols developed should support multiple class of service keeping in mind that LoWPANs are resource-restricted.
- the routing protocols should ensure the security of data carried by LoWPANs along with providing optimizing overhead and power consumption.
2) Node parameters:
- processing speed, memory size, queuing strategies and queue buffer sizes affects the routing state and maximum complexity of its processing.
- the number of battery powered and mains powered nodes and their positions in LoWPAN topology affects routing protocols in selecting the optimized routing path.
- transmission also affects routing.
- highly loaded nodes have higher delivery delays and higher energy consumption than lightly loaded nodes. So traffic patterns affects routing.
3) Link parameters:
There are several requirements for 6LoWPAN routing protocols, which are as follows:
1) Support of 6LoWPAN device properties:
- the protocol running on a node depend on node type and its role. If the node is battery powered then the implementation of routing protocol should have small code size and smaller routing state to fit in the capacity of that node.
- Routing protocols should make efficient use of control packets and there by consuming less power.
2) Support of 6LoWPAN link properties:
- in order to minimize power consumption, fragmentation is avoided wherever possible. So 6LoWPAN routing does not allow packets to exceed the size of IEEE 802.15.4 frame size.
- depending on the application requirement 6LoWPAN routing should ensure successful end-to-end delivery of packets.
- the routing protocols must consider link latency requirements and its characteristics.
- 6LoWPANs are unreliable due to their limited system capabilities. So routing protocols should be adaptable and robust to the dynamic environmental changes like link failure, device unavailability, hardware breakdown, operating system misbehaviour etc
- in the presence of link asymmetry, routing protocols should operate correctly.
3) Support of 6LoWPAN network characteristics:
- inorder to save energy LoWPAN nodes may go into sleep for a short span of time despite of which the routing protocols should ensure successful packet delivery.
- routing protocols should be able to select the routing path that balance the tradeoff between the power consumption and packet delivery ratio.
- routing protocols should be scalable.
- the route repair mechanism and the related control messages should not increase the overall energy consumption.
- the routing protocol should be adaptable to dynamically changing topology. Routing protocols should be able to deal with mobile nodes changing their locations inside the 6LoWPAN, movement of LoWPAN with respect to other connected LoWPAN and nodes permanently joining or leaving the LoWPAN.
- 6LoWPAN can have different traffic patterns like point-to-point, point-to-multipoint, multipoint-to-multipoint. A routing protocol should be able to support different traffic patterns.
4) Support of security:
- 6LoWPAN routing protocols should not compromise the confidentiality, authentication and integrity services.
5) Support for mesh under forwarding:
- -mesh under routing requires operation below IP layer. Routing protocols must be able to support 16-bit short and 64-bit extended MAC address.
- To perform neighbour discovery 6LoWPANs should avoid sending Hello messages. Instead it should make use of link layer mechanisms like acknowledgements.
- routing protocol can employ mechanisms that minimize the link layer broadcast.
6) Support of management:
- routing protocols are designed in a way that they are easy to operate , manage and maintain.
Based on application scenarios routing protocols are classified as flooding, data-aware routing, location-based routing, probabilistic routing, event-driven, query-based routing and hierarchical routing. In data centric routing queries on particular data is sent from base station to the network. A node holding the answer replies back. It supports redundant transmissions. In hierarchical routing several nodes grouped together to form a cluster. A node will be assigned as a Cluster Head (CH). CH aggregates data from its cluster members using standard data fusion techniques. In location based routing, geographic location of nodes is used to transmit information. They help to achieve power optimization and minimize control overhead. Based on route discovery process routing protocols can be classified as pro active, reactive and hybrid. Pro active routing protocol calculates routes in priori. So they are best suited for static networks. In reactive routing protocols routes are calculated on demand. So they are applied to dynamic networks. Hybrid is the combination of these two protocols. Based on the layer at which routing takes place, routing protocols are divided into route-over and mesh-under routing. If routing is handled by the network layer then it is called route-over routing and if it is handled by the adaptation layer then it is called mesh-under routing.
3.1. Mesh-under and route-over routing:
In mesh-under routing, forwarding/routing decisions are taken by the link layer based on 802.15.4 frame or 6LoWPAN header. To complete a single IP hop, multiple link layer hops are used and hence the name mesh-under. The link layer source address and destination address are included inside 6LoWPAN header and hence it is possible to forward packets in the adaptation layer. It uses EUI 64 bit address or 16 bit short address. Adaptation layer fragments the IP packet and each fragment is transmitted through mesh routing to reach the final destination. Different fragments can take different paths and they are reassembled at the destination. If any fragment is missing then the whole IP packet is retransmitted to the destination as a packet loss recovery mechanism.
In route-over routing routing decisions are taken at the network layer. Here each link layer hop is an IP hop. Routing takes place with the help of IP routing tables. The adaptation layer builds direct mapping between the frame and the IP headers. The fragments at adaptation layer are sent to the next hop based on routing table information. The adaptation layer at the next hop checks if all the fragments are received properly. If so, it creates an IP packet and forwards it to the network layer. The network layer, if the packet is destined to itself, forwards it to the transport layer. Otherwise forwards the packet to the next hop based on routing table information. If any fragments are missing then all the fragments are retransmitted to one hop distance. After receiving all the fragments successfully it creates IP packet and forwards it to the network layer.
4. Different routing protocols in 6LoWPAN:
4.1. The 6LoWPAN Ad hoc Routing Protocol(LOAD)
LOAD is a simplified form of On-Demand Routing Protocol (AODV) for 6LoWPAN. LOAD operates on adaptation layer of the 6LoWPAN, LOAD is designed to find an optimized route with minimum Route Cost (RC) between two nodes in a network by generating and forwarding broadcast RREQ messages towards the destination during a discovery period. The optimum discovered route is then examined and being communicated to the originator by generating a unicast RREP message at the destination and forwarding it to the originator. While LOAD supports the use of both the EUI-64 and the 16 bit short addressing for routing.
Using LOAD Each node is required to accommodate two tables : Routing Table, which include Destination Address, Next Hop Address to the destination, Status of a route and Life Time of a route before being expired. Route Request Table, which is maintained during the route discovery to keep track of RREQ messages. It includes RREQ ID which is a sequence number to uniquely identify a RREQ, Originator Address of a RREQ, Forward Route cost from the originator to the current node, Reverse Route Cost from destination to current node and Valid Time of the entry before being expired.
Following messages are used to establish a route:
RREQ is a broadcast message originated by the source node and forwarded by middle nodes to the destination. The main field of the message include: Route Cost, RREQ ID, number of Weak Links WL and Destination Adresses.
RREP is a unicast message originated by the destination node and forwarded by intermediate nodes along the discovered route to the source. The message include following main fields: Route Cost, RREQ ID, WL and Destinetion Address.