This project focuses on implementing an advanced IoT network custom protocol using the RPL (Routing Protocol for Lossy networks) with a time-window expiration parameter. The primary goals are to handle power consumption and reduce network congestion.
Read ProjectPresentation.pdf
for more info.
- Implement the RPL protocol with a time-window expiration parameter.
- Introduce performance and optimization strategies to enhance efficiency.
- ClockSync Node: Responsible for marking time-window parameters and deciding which sensors can transmit data. Assumed to have no power limitations.
- Sensor Node: Classic sensors that read and transmit data, phased with ClockSync decisions to reduce congestion.
The protocol defines three types of messages:
- Sync Message: Sent by ClockSync Nodes.
- Sensor Message: Sent by Sensor Nodes.
- Ack Message: Sent by Sensor Nodes to acknowledge receipt of messages.
- Sync Message: Includes fields like PackVersion, ChoosenSlot, NumberOfSlots, LimitTime, ClockSyncID, and Hops.
- Sensor Message: Includes fields like SendingTime, TimeToLive, SenderID, ReceiverID, Data, and Hops.
- Ack Message: Includes fields like SendingTime, TimeToLive, SenderID, ReceiverID, Data, Hops, and ReversedHops.
Several strategies are implemented to improve the protocol's efficiency:
- Slot-Based Exclusion Mechanism
- HPD (Hops in Pack Data) Method
- OTA (One-Time-Ack) Application
- Clever Transmissions Mechanism
- Buffered Message for Loop Avoidance
- Time Relaxation on Receiver
- Try-and-Repeat Method
The project includes pseudo-code for both Sensor Nodes and ClockSync Nodes to illustrate the logic behind their operations.
Simulations are conducted using CupCarbon to test the protocol in various network topologies:
- Snowflake Topology
- Square Topology
- Fisheye Topology
- Number of Nodes: 35
- Number of Slots: 2-5
- Buffer Size: 10-20
- Max Loop: 2-3
- Max Retry: 3
- Sync Refresh: 35100ms to 35150ms
- Time: 5-27 minutes
Energy consumption is analyzed using specific battery drain criteria:
- Transmission: 0.6
- Reception: 0.1
Simulations show the duration of sensor operation under different scenarios, highlighting the efficiency of the RPL optimized protocol compared to RPL flooding.
- Nodes can decide whether to transmit messages based on remaining energy and buffer saturation.
- Dying sensors can send messages to ClockSync Nodes to influence slot and time-window mechanisms.
- Use HPD for internal routing table population to enhance the clever sending mechanism.
- The RPL protocol performs better in topologies with stable connections.
- If ClockSync nodes die, only sensors with the last chosen slot can send messages.
This project demonstrates the implementation and optimization of the RPL protocol for IoT networks, addressing power consumption and congestion issues through various strategies and simulations.
This project is licensed under the MIT License. See the LICENSE
file for more details.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or new features.