| Literature DB >> 30609865 |
José Sobral1,2, Joel Rodrigues3,4,5, Ricardo Rabelo6, Kashif Saleem7, Vasco Furtado8.
Abstract
The Internet of Things (IoT) is an emerging paradigm that proposes the connection of objects to exchange information in order to reach a common objective. In IoT networks, it is expected that the nodes will exchange data between each other and with external Internet services. However, due to deployment costs, not all the network devices are able to communicate with the Internet directly. Thus, other network nodes should use Internet-connected nodes as a gateway to forward messages to Internet services. Considering the fact that main routing protocols for low-power networks are not able to reach suitable performance in the displayed IoT environment, this work presents an enhancement to the Lightweight On-demand Ad hoc Distance-vector Routing Protocol-Next Generation (LOADng) for IoT scenarios. The proposal, named LOADng-IoT, is based on three improvements that will allow the nodes to find Internet-connected nodes autonomously and dynamically, decreasing the control message overhead required for the route construction, and reducing the loss of data messages directed to the Internet. Based on the performed assessment study, which considered several number of nodes in dense, sparse, and mobility scenarios, the proposed approach is able to present significant results in metrics related to quality-of-service, reliability, and energy efficiency.Entities:
Keywords: LOADng; LOADng-IoT; internet of things; low power and lossy networks; routing protocol
Year: 2019 PMID: 30609865 PMCID: PMC6339092 DOI: 10.3390/s19010150
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Illustration of an IoT network model with different devices and data message types.
LOADng Control Messages.
| RREQ Message | |
|---|---|
|
|
|
| addr-length | Defines the length of the addresses used by originator and destination nodes |
| seq-num | Indicates the sequence number that uniquely identifies each message |
| metric-type | Determines the type of metric used by the message originator node |
| route-metric | Defines the value of the route metric of the path |
| hop-count | Indicates the number of hops that the message has traversed |
| hop-limit | Indicates the maximum number of times that a message can be forwarded |
| originator | Specifies the address of the message originator |
| destination | Specifies the address of the message destination |
|
|
|
| ackrequired | Indicates the necessity of generating an RREP_ACK when be received |
|
| |
|
|
|
| addr-length | Defines the length of the addresses used by originator and destination nodes |
| seq-num | Indicates the sequence number of the RREP messages that was triggered |
| destination | Specifies the address of the message destination |
|
| |
|
|
|
| addr-length | Defines the length of the addresses used by originator and destination nodes |
| errorcode | Indicates the error code of the message |
| unreachableAddress | Specifies the address of the node unable to be reached |
| originator | Specifies the address of the message originator |
| destination | Specifies the address of the message destination |
| hop-limit | Indicates the maximum number of times that a message can be forwarded |
LOADng Information Base.
| Routing Set | |
|---|---|
|
|
|
| R_dest_addr | Indicates the address of the route destination |
| R_next_addr | Indicates the address of the next hop in the path to the route destination |
| R_metric | Specifies the value of the metric computed for the path to the destination nodes |
| R_metric_type | Determines the route metric used to compute the metric value |
| R_hop_count | Specifies the number of hops to the route destination |
| R_seq_num | Indicates the sequence number of the control message used to |
| R_bidirectional | Indicates if the message is bidirectional |
| R_local_iface_addr | Specifies the communication interface used to reach the |
| R_valid_time | Specifies the length of time the entry is considered valid in the set |
|
| |
|
|
|
| B_neighbor_address | Indicates the address of the blacklisted neighbor |
| B_valid_time | Specifies the length of time the entry is considered valid in the set |
|
| |
|
|
|
| P_next_hop | Indicates the address of the node that the RREP was sent |
| P_originator | Indicates the address of the RREP originator |
| P_seq_num | Defines the sequence number of the sent RREP |
| P_ack_received | Determines whether the pending RREP_ACK was received |
| P_ack_timeout | Specifies the length of time the entry is considered valid in the set |
Figure 2Flowcharts of LOADng RREQ and RREP control messages processing.
LOADng-IoT required increments in to LOADng structure.
| RREQ and RREP | |
|---|---|
|
|
|
| iot | Indicates that the RREQ or RREP message is *-IoT; when used in RREQ, |
|
| |
|
|
|
| R_Internet_conn | Indicates the address of the blacklisted neighbor |
LOADng-IoT new features.
| Internet Route Cache | |
|---|---|
|
|
|
| RC_dest_addr | Specifies the address of the destination removed from the Routing Set |
| RC_next_hop_addr | Specifies the address of the next hop to reach the destination |
|
| |
|
|
|
| R_INTERNET_HOLD_TIME | Defines a valid time to an Internet route entry in the Routing Set |
| USE_INTERNET_ROUTE_CACHE | Specifies if the node uses the IRC mechanism |
| NUM_ROUTE_CACHE_ENTRIES | Indicates the number of entries supported in the IRC |
|
| |
|
|
|
| INTERNET_CONN_LOST | Indicates the impossibility of forwarding a data message to the Internet |
Figure 3Flowcharts of RREQ-IoT control messages processing. Dotted lines represent the optional flow used when IRC is adopted.
Figure 4LOADng-IoT Internet route discovery process. Dotted lines represent the linkages allowed but not used.
Figure 5Flowcharts of RERR control messages with code 253 processing. Dotted lines represent the flow used only when IRC is in use.
Parameters of Simulation.
| Parameter | Value |
|---|---|
| Network Area | 150∼280 m2 |
| Number of Nodes | 16∼64 |
| Num. of Internet-connected Nodes | 2∼6 |
| Simulation Time | 600 s |
| Radio Environment | Unit Disk Graph Model (UDGM)-Distance Loss |
| Transmission Range | 50 m |
| Interference Range | 50 m |
| TX and RX Chance | 90% |
| Data Message Frequency | 10 s∼15 s |
| Data Message Length | 512 bits |
| Traffic Pattern | P2P and MP2P |
| Medium Access Control (MAC) Protocol | Carrier Sense Multiple Access (CSMA) |
| Radio Duty Cycle (RDC) Protocol | ContikiMAC |
| Check Channel Rate (CCR) | 16 Hz |
Nodes Parameters.
| Parameter | Value |
|---|---|
| Mote Type | Tmote Sky |
| Radio | CC2420 |
| Max. Transmission Power | 31 dBm |
| Supply Voltage | 3.6 v |
| TX Current Consumption | 21.0 mW |
| RX Current Consumption | 23.0 mW |
| Low Power Mode (LPM) Current Consumption | 1.2 mW |
| CPU Current Consumption | 2.4 mW |
Mobility Parameters.
| Parameter | Value |
|---|---|
| Mobility Model | Random Waypoint |
| Mobility Area | 200 m2 |
| Max. Speed | 3 m/s |
| Min. Speed | 1 m/s |
| Max. Pause Time | 60 s |
| Min. Pause Time | 0 s |
Parameters of LOADng.
| Parameter | Value |
|---|---|
| NET_TRANSVERAL_TIME | 2 |
| RREQ_RETRIES | 1 |
| RREQ_MIN_INTERVAL | 2 |
| R_HOLD_TIME | 60 |
| MAX_DIST | 65,535 |
| B_HOLD_TIME | 4 |
| MAX_HOP_LIMIT | 255 |
| RREQ_MAX_JITTER | 1 |
| RREP_ACK_REQUIRED | FALSE |
| USE_BIDIRECTIONAL_LINK_ONLY | FALSE |
| RREP_ACK_TIMEOUT | 2 |
| MAX_HOP_COUNT | 255 |
| NUM_RS_ENTRIES | 8 |
| NUM_BLACKLIST_ENTRIES | 16 |
| METRIC_TYPE | HOP_COUNT |
Parameters of LOADng-IoT.
| Parameter | Value |
|---|---|
| R_INTERNET_HOLD_TIME | 120 |
| USE_INTERNET_ROUTE_CAHCE | TRUE |
| NUM_ROUTE_CACHE_ENTRIES | 2 |
Figure 6Packet delivery ratio in function of number of nodes.
Figure 7Average energy spent per delivered data bit in function of number of nodes.
Figure 8Control message overhead per delivered data message in function of number of nodes.
Figure 9Percentage of packets with low latency in function of number of nodes.