AODV mesh routing
Zigbee employs mesh routing to establish a route between the source device and the destination. Mesh routing allows data packets to traverse multiple nodes (hops) in a network to route data from a source to a destination. Routers and coordinators can participate in establishing routes between source and destination devices using a process called route discovery. The Route discovery process is based on the Ad-hoc On-demand Distance Vector routing (AODV) protocol.
Sample transmission through a mesh network:
AODV routing algorithm
Routing under the AODV protocol uses tables in each node that store the next hop (intermediary node between source and destination nodes) for a destination node. If a next hop is unknown, route discovery takes place to find a path. Since only a limited number of routes can be stored on a router, route discovery takes place more often on a large network with communication between many different nodes.
| Node | Destination address | Next hop address |
|---|---|---|
|
R3 |
Router 6 |
Coordinator |
|
C |
Router 6 |
Router 5 |
|
R5 |
Router 6 |
Router 6 |
When a source node discovers a route to a destination node, it sends a broadcast route request command. The route request command contains the source network address, the destination network address and a path cost field (a metric for measuring route quality). As the route request command propagates through the network (refer to Broadcast transmissions), each node that re-broadcasts the message updates the path cost field and creates a temporary entry in its route discovery table.
The following graphic is a sample route request (broadcast) transmission where R3 is trying to discover a route to R6:
When the destination node receives a route request, it compares the ‘path cost’ field against previously received route request commands. If the path cost stored in the route request is better than any previously received, the destination node transmits a route reply packet to the node that originated the route request. Intermediate nodes receive and forward the route reply packet to the source node (the node that originated route request).
The following graphic is a sample route reply (unicast) where R6 sends a route reply to R3:
Note R6 could send multiple replies if it identifies a better route.
Retries and acknowledgments
Zigbee includes acknowledgment packets at both the Mac and Application Support (APS) layers. When data is transmitted to a remote device, it may traverse multiple hops to reach the destination. As the device transmits data from one node to its neighbor, it transmits an acknowledgment packet (Ack) in the opposite direction to indicate that the transmission was successfully received. If the Ack is not received, the transmitting device retransmits the data, up to 4 times.
This Ack is called the Mac layer acknowledgment. In addition, the device that originated the transmission expects to receive an acknowledgment packet (Ack) from the destination device. This Ack traverses the same path the data traversed, but in the opposite direction. If the originator fails to receive this Ack, it retransmits the data, up to 2 times until it receives an Ack. This Ack is called the Zigbee APS layer acknowledgment.
Note Refer to the Zigbee specification for more details.
PDF
