<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">71676</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.071676</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Optimizing RPL Routing Using Tabu Search to Improve Link Stability and Energy Consumption in IoT Networks</article-title>
<alt-title alt-title-type="left-running-head">Optimizing RPL Routing Using Tabu Search to Improve Link Stability and Energy Consumption in IoT Networks</alt-title>
<alt-title alt-title-type="right-running-head">Optimizing RPL Routing Using Tabu Search to Improve Link Stability and Energy Consumption in IoT Networks</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0009-0003-0951-1800</contrib-id>
<name name-style="western"><surname>Tarif</surname><given-names>Mehran</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-6108-6632</contrib-id>
<name name-style="western"><surname>Homaei</surname><given-names>Mohammadhossein</given-names></name><xref ref-type="aff" rid="aff-2">2</xref><email>homaei@ieee.org</email></contrib>
<contrib id="author-3" contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4476-2512</contrib-id>
<name name-style="western"><surname>Mirzaei</surname><given-names>Abbas</given-names></name><xref ref-type="aff" rid="aff-3">3</xref></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Nouri-Moghaddam</surname><given-names>Babak</given-names></name><xref ref-type="aff" rid="aff-3">3</xref></contrib>
<aff id="aff-1"><label>1</label><institution>Department of Computer Science, University of Verona</institution>, <addr-line>Verona, 37134</addr-line>, <country>Italy</country></aff>
<aff id="aff-2"><label>2</label><institution>Department of Computer Systems Engineering and Telematics, University of Extremadura</institution>, <addr-line>C&#x00E1;ceres, 10003</addr-line>, <country>Spain</country></aff>
<aff id="aff-3"><label>3</label><institution>Department of Computer Engineering, Ard.C., Islamic Azad University Ardabil</institution>, <addr-line>Ardabil, 5615798170</addr-line>, <country>Iran</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Mohammadhossein Homaei. Email: <email>homaei@ieee.org</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2026</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>10</day><month>2</month><year>2026</year>
</pub-date>
<volume>87</volume>
<issue>1</issue>
<elocation-id>87</elocation-id>
<history>
<date date-type="received">
<day>10</day>
<month>08</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>26</day>
<month>11</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2026 The Authors.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Published by Tech Science Press.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_71676.pdf"></self-uri>
<abstract>
<p>The Routing Protocol for Low-power and Lossy Networks (RPL) is widely used in Internet of Things (IoT) systems, where devices usually have very limited resources. However, RPL still faces several problems, such as high energy usage, unstable links, and inefficient routing decisions, which reduce the overall network performance and lifetime. In this work, we introduce TABURPL, an improved routing method that applies Tabu Search (TS) to optimize the parent selection process. The method uses a combined cost function that considers Residual Energy, Transmission Energy, Distance to the Sink, Hop Count, Expected Transmission Count (ETX), and Link Stability Rate (LSR). Simulation results show that TABURPL improves link stability, lowers energy consumption, and increases the packet delivery ratio compared with standard RPL and other existing approaches. These results indicate that Tabu Search can handle the complex trade-offs in IoT routing and can provide a more reliable solution for extending the network lifetime.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Internet of things</kwd>
<kwd>RPL protocol</kwd>
<kwd>tabu search</kwd>
<kwd>energy efficiency</kwd>
<kwd>link stability</kwd>
<kwd>multi-metric routing</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>The Internet of Things (IoT) allows devices to communicate and interact, creating a seamless connection between the physical and digital worlds. However, deploying IoT networks presents several challenges, especially regarding energy efficiency and link stability [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-3">3</xref>]. These factors are critical for maintaining reliable communication in environments with limited resources and energy-constrained nodes. The RPL protocol provides a flexible and efficient routing mechanism to address these issues [<xref ref-type="bibr" rid="ref-4">4</xref>,<xref ref-type="bibr" rid="ref-5">5</xref>]. Nevertheless, the dynamic nature of IoT environments can lead to suboptimal routing decisions, which increase energy consumption, reduce connection reliability, and lower overall network performance.</p>
<p>Various optimisation techniques have been investigated to improve the efficiency of the RPL protocol and address these challenges [<xref ref-type="bibr" rid="ref-6">6</xref>&#x2013;<xref ref-type="bibr" rid="ref-8">8</xref>]. TS is a robust metaheuristic algorithm that effectively navigates the complex search space related to routing optimisation [<xref ref-type="bibr" rid="ref-9">9</xref>&#x2013;<xref ref-type="bibr" rid="ref-11">11</xref>]. TS is capable of escaping local minimum and converging towards a global optimum by systematically exploring potential solutions while using a Tabu List to avoid cycles [<xref ref-type="bibr" rid="ref-12">12</xref>]. This document presents a new methodology for optimizing RPL routing through the application of TS, with the objectives of minimizing energy consumption, enhancing link stability, and prolonging network lifespan.</p>
<p>In this context, the integration of advanced simulation and optimisation techniques is essential for enhancing the performance of IoT networks. These methods facilitate the real-time assessment of routing configurations and network behaviours across different conditions, reducing the risks associated with direct physical interventions. A technique that can be employed is the utilisation of a digital twin, which serves as a virtual model of the IoT system, to facilitate predictive analysis and enhance informed decision-making [<xref ref-type="bibr" rid="ref-13">13</xref>]. Our work builds on this foundation by exploring the potential of TS-based optimisation to improve the resilience and energy efficiency of large-scale IoT environments. Our approach introduces a composite cost function that incorporates several critical parameters, including Residual Energy, Transmission Energy, Distance to the Sink, HC, ETX, and LSR. By integrating these factors, the proposed method identifies the most efficient and reliable routes within the network. Simulation results demonstrate that the optimization achieves significant improvements in key performance metrics. This study contributes to ongoing efforts to enhance IoT network performance by providing a solution that is both scalable and adaptable to the evolving requirements of IoT environments.</p>
<p>RPL organises LLN nodes into a Destination-Oriented Directed Acyclic Graph (DODAG) whose topology is optimised locally through objective functions (OFs). The default OF0 employs HC only; several successors combine two or three metrics, but most still rely on greedy one-shot decisions that ignore network-wide side-effects. Meta-heuristics such as TS offer a principled way to navigate the global search space at affordable CPU cost. The fundamental limitation of existing RPL variants (OF0, MRHOF [<xref ref-type="bibr" rid="ref-14">14</xref>]) is their reliance on single or dual metrics, leading to suboptimal trade-offs. TABURPL employs Tabu Search to navigate the complex solution space where these objectives conflict.</p>
<p>Therefore, problem statement and optimization objectives are; TABURPL tries to solve the multi-objective optimization problem by focusing on five main goals at the same time. First, it aims to minimize energy consumption, which helps to extend the network lifetime. Second, it seeks to maximize the packet delivery ratio to ensure reliable network performance. Third, it aims to minimize end-to-end delay, which is essential for supporting time-sensitive applications. Fourth, it focuses on maximizing link stability in order to prevent route oscillations. Finally, it works on minimizing control overhead to preserve bandwidth.</p>
<p>The remainder of this paper is organized as follows: <xref ref-type="sec" rid="s2">Section 2</xref> reviews recent advances in RPL optimization, with particular emphasis on multi-metric and AI-based approaches. <xref ref-type="sec" rid="s3">Section 3</xref> introduces the proposed TABURPL protocol. It describes the TS-based mechanism, the composite cost function, metric normalization, and weight calibration. This section also presents the network model, explains the calculation of the link stability metric, and evaluates the additional control overhead. <xref ref-type="sec" rid="s4">Section 4</xref> details the simulation setup, the performance metrics used, and the comparative results across different network sizes and traffic scenarios. Finally, <xref ref-type="sec" rid="s5">Section 5</xref> provides the conclusion and outlines directions for future work.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Work</title>
<p>Research on RPL optimization has evolved in several phases, each tackling certain weaknesses of the standard OF0 and MRHOF approaches. In this section, we review the main strategies proposed in the literature, show how different works relate to each other, and point out the gap that TABURPL aims to fill.</p>
<sec id="s2_1">
<label>2.1</label>
<title>Traditional Single- and Dual-Metric Approaches</title>
<p>The standard RPL protocol defines two primary objective functions: OF0 [<xref ref-type="bibr" rid="ref-15">15</xref>], which uses hop count as the sole routing metric, and MRHOF [<xref ref-type="bibr" rid="ref-13">13</xref>], which employs a rank-based approach combining hop count with link quality (ETX). While MRHOF represents an improvement over OF0 by incorporating link reliability, both approaches remain limited in their ability to address the multifaceted challenges of IoT routing. The first attempts to optimize RPL extended the simple hop count metric by adding energy considerations. For instance, Touzene et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] suggested an energy-aware objective function that takes energy consumption into account during routing, which helps prolong the network lifetime in constrained environments. Their results indicated that even a single additional metric can improve performance compared to OF0, although such approaches are naturally limited by the trade-offs of optimizing only one extra factor.</p>
<p>Following this idea, Mishra et al. [<xref ref-type="bibr" rid="ref-17">17</xref>] proposed Eha-RPL, a system that combines energy, hop count, and link quality metrics in a composite objective function. This dual-metric approach performed better than single-metric methods, improving both reliability and efficiency. However, its effectiveness was hindered by the lack of systematic weight tuning and metric normalization. These early studies show that while combining metrics can help, balancing them without a structured framework remains a challenge.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Load-Balancing and Congestion-Management Solutions</title>
<p>It soon became clear that energy efficiency alone was not enough, especially for dense IoT networks. This led researchers to focus on load balancing and congestion control. Rana et al. [<xref ref-type="bibr" rid="ref-18">18</xref>] introduced the Enhanced Balancing Objective Function (EBOF), which aims to distribute traffic more evenly to reduce congestion and increase delivery rates. Similarly, Seyfollahi and Ghaffari [<xref ref-type="bibr" rid="ref-19">19</xref>] proposed a lightweight method that shortens routes while spreading the traffic load across nodes, thus saving energy and avoiding overused nodes.</p>
<p>Homaei et al. contributed two notable approaches in this area. Their LA-RPL method [<xref ref-type="bibr" rid="ref-2">2</xref>] uses Learning Automata to dynamically balance child nodes and reduce congestion through distributed data aggregation. Later, their CCFDM approach [<xref ref-type="bibr" rid="ref-10">10</xref>] applied a fuzzy decision system to 6LoWPAN protocols, controlling congestion by distributing traffic intelligently and using back-pressure mechanisms to detect problems quickly. Moving from static load balancing to these dynamic approaches was an important step forward, although these methods mostly react to congestion rather than anticipate it.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>AI and Machine Learning Integration</title>
<p>The use of AI and ML in RPL allows more adaptive routing. Homaei et al. [<xref ref-type="bibr" rid="ref-20">20</xref>] proposed DDSLA-RPL, using Learning Automata to select parents based on hop count, link quality, and energy. It can change the weight of these metrics dynamically, showing AI&#x2019;s potential for flexible RPL optimization. Reinforcement learning is also applied. Zahedy et al. [<xref ref-type="bibr" rid="ref-21">21</xref>] developed RI-RPL with Q-learning in three steps: aligning routers, adapting parents, and improving performance with convergence adjustments, enhancing routing and stability. Similarly, Duenas Santos et al. [<xref ref-type="bibr" rid="ref-22">22</xref>] used Q-learning in Q-RPL for efficient smart grid routing.</p>
<p>However, AI methods have limits. They need more computation and data than small IoT devices provide and may fail in new networks with little past data.</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Quality of Service and Mobility-Aware Solutions</title>
<p>As IoT applications expand into time-sensitive and mobile scenarios, RPL variants have increasingly focused on Quality of Service (QoS) requirements and mobility patterns. Hassani et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] introduced FTC-OF, which uses traffic forwarding history to make more informed routing decisions, improving packet delivery ratios and reducing delays in latency-sensitive applications.</p>
<p>For high-traffic environments, Kaviani and Soltanaghaei [<xref ref-type="bibr" rid="ref-24">24</xref>] proposed CQARPL, a congestion- and QoS-aware RPL variant that integrates QoS metrics with congestion control tailored to dense traffic conditions. In mobile IoT networks, Jagir Hussain and Roopa [<xref ref-type="bibr" rid="ref-25">25</xref>] developed BE-RPL, combining energy efficiency with mobility awareness by monitoring RSSI and performing reactive parent selection. Idrees and Witwit [<xref ref-type="bibr" rid="ref-26">26</xref>] approached the problem from another angle, simultaneously focusing on energy efficiency and load balancing. Their method uses advanced load distribution to avoid network hotspots and ensure uniform energy consumption, while also incorporating link stability metrics to maintain consistent routing performance.</p>
</sec>
<sec id="s2_5">
<label>2.5</label>
<title>Metaheuristic and Nature-Inspired Optimization</title>
<p>The latest trend in RPL research applies metaheuristic and nature-inspired algorithms to handle the multi-objective challenges of IoT routing. Prajapati et al. [<xref ref-type="bibr" rid="ref-27">27</xref>] proposed a Tabu Search-based parent selection strategy, integrating ETX, residual energy, and hop count. Although closely related to TABURPL, their method overlooks link stability and distance metrics, and it does not normalize different metrics, which can cause imbalance when metrics are on different scales.</p>
<p>Gurav et al. [<xref ref-type="bibr" rid="ref-28">28</xref>] introduced a Chimp Sine Cosine Algorithm for multi-objective optimization, using a four-phase process that jointly considers energy, link stability, and overall network performance. Similarly, Mokrani et al. [<xref ref-type="bibr" rid="ref-29">29</xref>] presented LEA-RPL, which combines energy-aware routing with lightweight mechanisms by leveraging Particle Swarm Optimization and enhancing parent selection through a hybrid of Long Short-Term Memory and Online Gradient Descent.</p>
</sec>
<sec id="s2_6">
<label>2.6</label>
<title>Specialized Applications and Emerging Domains</title>
<p>Recent research also explores RPL optimizations for domain-specific IoT scenarios. Tarif et al. [<xref ref-type="bibr" rid="ref-6">6</xref>] focused on underwater IoT networks, designing dynamic decision-making and fuzzy logic-based routing strategies. These studies highlight that specialized applications often require tailored optimization methods, as generic RPL variants may fail to meet the unique constraints of specific environments.</p>
</sec>
<sec id="s2_7">
<label>2.7</label>
<title>Research Gap and TABURPL Positioning</title>
<p>Despite significant progress in RPL optimization, as summarized in <xref ref-type="table" rid="table-1">Table 1</xref>. First, many multi-metric approaches either lack systematic normalization [<xref ref-type="bibr" rid="ref-27">27</xref>] or fail to incorporate a complete set of metrics that account for both energy efficiency and link stability [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-26">26</xref>]. Second, AI-based solutions [<xref ref-type="bibr" rid="ref-20">20</xref>,<xref ref-type="bibr" rid="ref-21">21</xref>] often require considerable computational resources, making them impractical for resource-limited IoT nodes. Third, most metaheuristic techniques [<xref ref-type="bibr" rid="ref-28">28</xref>,<xref ref-type="bibr" rid="ref-29">29</xref>] rely on distributed optimization, which can increase both system complexity and communication overhead.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Comparison of RPL optimization protocols</title>
</caption>
 
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Ref.</th>
<th>Goal</th>
<th>Advantages</th>
<th>OF/Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td>[<xref ref-type="bibr" rid="ref-2">2</xref>]</td>
<td>Balance child nodes, reduce congestion</td>
<td>Improves energy consumption, network control overhead, packet delivery</td>
<td>Learning Automata (LA-RPL)</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-10">10</xref>]</td>
<td>Optimize congestion control in 6LoWPAN</td>
<td>Balances energy consumption, reduces packet loss, enhances QoS</td>
<td>Fuzzy Decision System (CCFDM)</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-16">16</xref>]</td>
<td>Improve energy efficiency</td>
<td>Extends network lifetime, improves performance in resource-constrained environments</td>
<td>Energy consumption metrics</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-17">17</xref>]</td>
<td>Enhance routing by using composite metrics</td>
<td>Improves reliability and efficiency of IoT networks</td>
<td>Energy, HC, link quality</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-18">18</xref>]</td>
<td>Mitigate congestion and improve load balancing</td>
<td>Improves data delivery rates, suitable for dense networks</td>
<td>Load balancing</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-19">19</xref>]</td>
<td>Minimize route length while balancing load</td>
<td>Reduces energy consumption, prolongs network lifetime</td>
<td>Route length, load balancing</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-20">20</xref>]</td>
<td>Achieve QoS in RPL using dynamic decision systems</td>
<td>Enhances network longevity, energy efficiency, performance</td>
<td>Dynamic decision-making, Learning Automata (DDSLA-RPL)</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-23">23</xref>]</td>
<td>Optimize routing with traffic awareness</td>
<td>Improves packet delivery ratio, reduces delays</td>
<td>Traffic forwarding history</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-26">26</xref>]</td>
<td>Achieving energy efficiency with load balancing</td>
<td>Uniform energy consumption, extended network lifetime, hotspot prevention</td>
<td>Load distribution mechanisms, link stability metrics, energy optimization</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>Manage congestion and QoS under heavy traffic</td>
<td>Enhance performance in high traffic scenarios</td>
<td>QoS parameters, congestion control</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-25">25</xref>]</td>
<td>Balance load and energy efficiency with mobility awareness</td>
<td>Quick link breakage response, reduced end-to-end delay, energy optimization</td>
<td>RSSI-based monitoring, reactive parent selection, load balancing</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-21">21</xref>]</td>
<td>Address routing challenges using Q-learning reinforcement learning</td>
<td>Improved routing decisions, dynamic node condition monitoring, network stability</td>
<td>Q-learning algorithm, multi-stage optimization, adaptive parent selection</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-27">27</xref>]</td>
<td>Optimize data dissemination overhead using Tabu Search-based parent selection</td>
<td>Enhances PDR, reduces delay and energy consumption, improves route reliability</td>
<td>ETX, residual energy, hop count (without normalization)</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-28">28</xref>]</td>
<td>Establish optimal paths using Chimp Sine Cosine Algorithm</td>
<td>Enhanced routing reliability, multi-objective optimization, improved network lifetime</td>
<td>Chimp Sine Cosine Algorithm, four-phase optimization, multi-criteria evaluation</td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-29">29</xref>]</td>
<td>Integrate energy-awareness with lightweight routing using PSO</td>
<td>Reduced routing overhead, optimized parent selection, energy-efficient operations</td>
<td>Expected Life Time, Delay, Energy Aware-ETX, PSO optimization</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-1fn1" fn-type="other">
<p>Note: Values are relative to the configuration of each RPL optimization protocol; column widths are fixed in cm for better alignment; text is fully justified.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>TABURPL is designed to address these limitations through four main innovations:
<list list-type="simple">
<list-item><label>1.</label><p>A comprehensive six-metric composite cost function, with online min&#x2013;max normalization to ensure balanced metric contribution;</p></list-item>
<list-item><label>2.</label><p>Data-driven calibration of weighting coefficients using Dirichlet sampling combined with hypervolume optimization;</p></list-item>
<list-item><label>3.</label><p>Centralized optimization performed at the DODAG root, reducing computational burden on individual sensor nodes;</p></list-item>
<list-item><label>4.</label><p>Explicit consideration of control overhead and energy costs, with Ref. [<xref ref-type="bibr" rid="ref-27">27</xref>] included as a comparative reference.</p></list-item>
</list></p>
<p>Together, these features position TABURPL as the first metaheuristic-based RPL optimization approach that combines extensive metric coverage, systematic normalization, and practical applicability for resource-constrained IoT deployments.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Proposed Method</title>
<p>The aim of this work is to introduce TABURPL, an enhanced version of the RPL protocol that incorporates Tabu Search (TS) at the DODAG root to optimize parent selection. Its primary goal is to minimize the normalized composite cost, as defined in <xref ref-type="disp-formula" rid="eqn-4">Eq. 4)</xref>. By achieving this, TABURPL reduces energy consumption, improves link stability, and extends network lifetime. The composite cost function integrates several critical parameters, including Residual Energy, Transmission Energy, Distance to Sink, HC, ETX, and LSR. By leveraging TS, TABURPL systematically explores a wide range of routing options to identify the most efficient and reliable paths, ensuring that routing decisions balance multiple objectives in a practical and implementable manner (<xref ref-type="table" rid="table-2">Table 2</xref>).</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>TS hyper-parameters (constant throughout all experiments)</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tabu tenure (<italic>L</italic>)</td>
<td>30</td>
</tr>
<tr>
<td>Neighbourhood size <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mo>&#x2264;</mml:mo><mml:mspace width="negativethinmathspace" /><mml:mspace width="negativethinmathspace" /><mml:mn>4000</mml:mn></mml:math></inline-formula></td>
</tr>
<tr>
<td>Max iterations (<inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>)</td>
<td>150</td>
</tr>
<tr>
<td>Stall limit (<inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>stall</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>)</td>
<td>40</td>
</tr>
<tr>
<td>Aspiration threshold</td>
<td><inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mn>0.97</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mtext>BestCost</mml:mtext></mml:math></inline-formula></td>
</tr>
<tr>
<td>Gaussian perturbation (<inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula>)</td>
<td>0.03</td>
</tr>
<tr>
<td>Snapshot period</td>
<td>90 s</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s3_1">
<label>3.1</label>
<title>Definition of Relevant Parameters</title>
<p>The success of the optimisation mechanism that TABURPL adopts is based on the careful selection and definition of routing metrics that are able to capture the important characteristics of the performance of an Internet of Things (IoT) network. For the purpose of achieving a full evaluation of routing options, our technique incorporates a number of complementing measures that jointly address energy efficiency, connection dependability, and network connectivity characteristics. Each measure provides its own distinct information regarding the current status of the network, which enables the TS algorithm to make well-informed decisions regarding the selection of the most suitable parent nodes inside the DODAG structure. TABURPL relies on six link- or path-level metrics:
<list list-type="bullet">
<list-item>
<p><bold>Residual Energy (<inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula>)</bold>&#x2014;remaining battery energy at the transmitting node.</p></list-item>
<list-item>
<p><bold>Transmission Energy (<inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:msub><mml:mi>E</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:math></inline-formula>)</bold>&#x2014;energy required to send one packet over the link.</p></list-item>
<list-item>
<p><bold>Distance to Sink (<inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi>d</mml:mi></mml:math></inline-formula>)</bold>&#x2014;Euclidean or RSSI-derived distance from the current node to the sink.</p></list-item>
<list-item>
<p><bold>Hop Count (<inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>h</mml:mi></mml:math></inline-formula>)</bold>&#x2014;number of hops from the current node to the sink.</p></list-item>
<list-item>
<p><bold>ETX</bold>&#x2014;average number of MAC-layer (re)transmissions required for successful delivery.</p></list-item>
<list-item>
<p><bold>Link Stability Rate (<inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula>)</bold>&#x2014;short-term reliability estimate of the individual link.</p></list-item>
</list></p>
<p>Detailed definition of <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula>: For every directed link <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>v</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> we keep an exponentially-weighted moving average (EWMA):
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mtext>ACK</mml:mtext></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>;</mml:mo><mml:mi>W</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>TX</mml:mtext></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>;</mml:mo><mml:mi>W</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mn>0</mml:mn><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&#x2264;</mml:mo><mml:mn>1</mml:mn></mml:math></disp-formula>where <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:msub><mml:mtext>TX</mml:mtext><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:msub><mml:mtext>ACK</mml:mtext><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are, respectively, the numbers of data frames transmitted and MAC acknowledgments received during the latest sliding window of <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>W</mml:mi><mml:mo>=</mml:mo><mml:mn>32</mml:mn></mml:math></inline-formula> frames (RFC6550 guideline). We set <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>&#x03B1;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.75</mml:mn></mml:math></inline-formula> (EWMA half-life <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mo>&#x2248;</mml:mo><mml:mn>22</mml:mn></mml:math></inline-formula> frames) and quantize the result in a single byte:
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:msubsup><mml:mi>L</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mrow><mml:mtext>byte</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">&#x230A;</mml:mo><mml:mn>256</mml:mn><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo fence="false" stretchy="false">&#x230B;</mml:mo></mml:math></disp-formula></p>
<p>The metric is computed locally by each node; the only modification to the NS-2.34 RPL agent is a one-byte field added to each neighbor-table entry, so no extra timers or control logic are introduced.</p>
<sec id="s3_1_1">
<label>3.1.1</label>
<title>Centralized vs. Distributed Implementation Rationale</title>
<p>Unlike distributed algorithms that require each node to make local routing decisions, TABURPL centralizes the optimization process at the DODAG root. This design has several practical advantages. By performing the Tabu Search (TS) solely at the root, the computational burden on resource-constrained IoT nodes is eliminated, while the root can leverage a complete view of the network topology to make globally informed routing decisions. This centralized approach also maintains backward compatibility, as no changes are required on the sensor nodes, and it ensures efficient use of network resources by avoiding the overhead associated with complex optimization at each device.</p>
<p>The feasibility of this centralized scheme relies on the data already available or easily collected within the RPL framework. Residual energy information is reported in standard DIO messages, while ETX and LSR metrics can be computed locally and included in DAO messages with minimal additional overhead. Distance to the root is estimated using RSSI measurements, eliminating the need for GPS, and Hop Count remains the standard path metric. By using a 90-s snapshot period, TABURPL balances the frequency of optimization with control overhead, resulting in only 0.077% energy cost, which is well suited to the dynamics of typical IoT deployments.</p>
</sec>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Formulation of the Optimality Cost Functional</title>
<p>The main idea of TABURPL is the use of a cost functional that can evaluate many routing factors at the same time. In most traditional RPL, only one or two metrics are used. This can give weak routing choices because it favors some factors but ignores others. In our method, we make a cost function with many dimensions. This function tries to keep balance between energy use, link reliability, network connectivity, and path quality in one single formula. With this wider view, the TS algorithm can search for routing solutions that give better performance in different IoT network settings.</p>
<p>We represent the network topology as a directed graph <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <italic>V</italic> is the set of nodes and <italic>E</italic> is the set of directed edges for communication links. For a routing path <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mi>P</mml:mi><mml:mo>&#x2282;</mml:mo><mml:mi>G</mml:mi></mml:math></inline-formula>, the optimality cost functional <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is written as a weighted sum of important metrics:
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>raw</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>e</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mrow><mml:mtext>ETX</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>norm</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>e</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:munder><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>here, <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mi>e</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula> is one edge on the path <italic>P</italic>, and each term is one routing metric. The weights <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:math></inline-formula> give control over how important each metric is, so the function can be changed to match different network goals and application needs.</p>
<p><italic>Metric Definitions:</italic>
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Residual energy at the sending node of edge <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mi>e</mml:mi></mml:math></inline-formula>. This is used in inverse form so that paths with more energy are preferred. It helps share energy load and makes the network last longer.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:msub><mml:mi>E</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Transmission energy needed to send a packet across edge <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>e</mml:mi></mml:math></inline-formula>. This adds directly to the cost, since saving energy is always important.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Euclidean distance between the two nodes of edge <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mi>e</mml:mi></mml:math></inline-formula>. Larger distances give higher cost when <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, because long links often need more power and give weaker signals.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Hop count increase for edge <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mi>e</mml:mi></mml:math></inline-formula>. This favors shorter paths with fewer hops, which usually means less delay and less chance of packet loss.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mtext>ETX</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Expected Transmission Count for edge <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mi>e</mml:mi></mml:math></inline-formula>. Lower ETX is better, because it means the link is more reliable and needs fewer retries.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Link Stability Rate for edge <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>e</mml:mi></mml:math></inline-formula>, based on recent success history. More stable links (high <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula>) give lower cost and more predictable performance.</p></list-item>
</list></p>
<p>The choice of weights is very important, since they decide which network features will be preferred. All weights are positive numbers, <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mo>+</mml:mo></mml:msup></mml:math></inline-formula> for <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>6</mml:mn></mml:math></inline-formula>. For example, in energy-sensitive networks, larger values can be given to <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula>. In delay-sensitive cases, higher values can be given to <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:math></inline-formula>. To make sure the evaluation is fair across all metrics and no single one dominates, the weights are normalized.
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></disp-formula></p>
<p>The normalization constraint serves several important purposes. Primarily, it prevents any single metric from dominating the cost function <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> simply due to its numerical scale, ensuring that all metrics contribute proportionally. It also provides a consistent reference scale, allowing performance to be evaluated reliably across different network setups and deployment scenarios. Moreover, normalization enables systematic tuning of the weights <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula>, making it possible to prioritize certain metrics when necessary while keeping the optimization process mathematically stable and easy to interpret.</p>
<p><italic>Optimal Path Selection:</italic></p>
<p>Selecting a routing path can be viewed as an optimization problem, where the objective is to identify the path <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:msup><mml:mi>P</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> that minimizes the cost function <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> among all feasible paths:
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:msup><mml:mi>P</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>arg</mml:mi><mml:mo>&#x2061;</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">min</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mo>&#x2282;</mml:mo><mml:mi>G</mml:mi></mml:mrow></mml:munder><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>In this formulation, <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:msup><mml:mi>P</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> represents the optimal path that achieves the lowest cost, reflecting the most energy-efficient, stable, and reliable routing choice according to the defined composite metrics. This framework naturally captures the trade-offs among multiple performance criteria, including energy consumption, link reliability, and hop count, which are closely interrelated in IoT networks. Furthermore, the multi-dimensional cost function <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> can adapt to evolving network conditions and varying application requirements, allowing routing decisions to remain effective and flexible over time. The approach is based on multi-objective optimization, where the scalar cost <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> combines several competing objectives using weighted sums. As a result, the selected path <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:msup><mml:mi>P</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> from <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> can be seen as a Pareto-optimal solution. This means there is no other feasible path that can improve one objective without making at least one other worse. This guarantees that the chosen route achieves a balanced trade-off among all metrics.</p>
<p>In practice, solving this optimization problem often requires heuristic or metaheuristic algorithms. Methods such as Tabu Search or Genetic Algorithms are suitable because they can explore complex, high-dimensional, and possibly non-convex solution spaces. These algorithms evaluate candidate paths using <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and use memory structures or evolutionary operations to avoid local minima and approach a global optimum. So, the proposed optimality cost functional provides a clear and flexible foundation for IoT routing. It allows dynamic route selection that balances multiple performance goals and adapts to network changes. This approach captures the essential trade-offs in IoT networks while ensuring that the chosen path is efficient, reliable, and resilient.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Problem Characterisation: A Multi-Objective Combinatorial Perspective</title>
<p>In a Low-power and Lossy Network (LLN), the routing choice is always discrete: a path <italic>P</italic> is an ordered subset of edges in the directed graph <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Routing differs from continuous optimisation since decision variables can only take certain discrete values. Moreover, each path has a specific order of network links, resulting in a solution space that is finite but grows exponentially with the network size and connectivity.</p>
<p>The edge-level cost elements in <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref> (e.g., <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:msub><mml:mi>E</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mtext>ETX</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>) are individually convex when considered in their own continuous domains. However, the aggregation of these metrics over complete multi-hop paths introduces complex interdependencies, making the overall search space combinatorial and generally non-convex. Consequently, classical convex-optimization guarantees (e.g., uniqueness of a global minimum) do not apply. Gradient-based and analytical methods relying on convexity become ineffective, necessitating alternative approaches. Therefore, the problem is reformulated as a multi-objective combinatorial optimisation problem, solved via a meta-heuristic TS to discover near-Pareto-optimal solutions.</p>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Metric Normalisation and Composite-Cost Scaling</title>
<p>The six metrics in the composite functional <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> have different physical units (Joules, metres, dimensionless ratios), creating significant challenges for fair aggregation in the optimization process. To prevent a single metric from dominating the objective function and overshadowing the contributions of other equally important performance indicators, we apply min-max normalisation prior to weighting. This ensures that all metrics, regardless of their original scales or units, have a real impact on the routing decision.
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>6</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> are the minimum and maximum observed values of the metric <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> in the current network topology snapshot. These boundary values are calculated dynamically according to the current network state. This allows the normalization to adapt to changing conditions and ensures that the full range <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mo stretchy="false">[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> is effectively used across different operational scenarios.</p>
<p>After normalization, the raw metrics <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are replaced by <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> in the weighted sum given by <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>. The normalisation process transforms metrics with vastly different ranges&#x2014;such as energy consumption measured in millijoules and hop counts measured as integers&#x2014;into a uniform scale that enables meaningful comparison and aggregation.</p>
<p>This scaling method ensures that each metric contributes to the cost function in a proportional manner on a 0 to 1 scale, preventing any single metric from dominating purely due to numeric range. The user-defined weight vector <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> captures high-level policy preferences (e.g., reliability vs. energy efficiency), allowing network operators to express their strategic goals while ensuring these choices are implemented equitably across all normalised measures. The combination of normalisation and weighting provides both technical correctness in the mathematical aggregation and practical flexibility in expressing routing policies.</p>
</sec>
<sec id="s3_5">
<label>3.5</label>
<title>Weight-Selection Rationale</title>
<p>The weights <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> were determined using a systematic two-stage procedure, designed to explore the weight space and identify configurations that provide the best multi-objective performance across different routing scenarios in LLNs.</p>
<p><italic>Stage 1: Coarse Grid Search</italic></p>
<p>Dirichlet sampling with parameter <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi>&#x03B1;</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> was used to generate 150 weight vectors on the 6-simplex. This ensured an even coverage of the possible weight space, without favoring any particular objective, while maintaining the constraint <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>. From these, the ten vectors that maximized the hyper-volume of the Pareto front were selected for further analysis. The hyper-volume metric provides a robust measure of solution quality in multi-objective optimisation, reflecting both proximity to the true Pareto front and diversity across objectives.</p>
<p><italic>Stage 2: Fine Tuning</italic></p>
<p>The best vector from Stage 1 was perturbed with Gaussian noise (<inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>&#x03C3;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.03</mml:mn></mml:math></inline-formula>) in a controlled manner to explore the local neighbourhood while staying close to the original configuration. Each perturbed vector was re-normalised to satisfy the simplex constraint. A total of 50 candidate vectors were evaluated under identical test conditions, selecting the one with the highest geometric mean of normalised PDR and inverse Energy. The geometric mean provides a balanced assessment preventing either metric from dominating, while the inverse energy term emphasises energy efficiency&#x2014;a critical concern in resource-constrained IoT environments.</p>
<p>The final weight vector:
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:msup><mml:mi>&#x03BB;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>0.18</mml:mn><mml:mo>,</mml:mo><mml:mn>0.22</mml:mn><mml:mo>,</mml:mo><mml:mn>0.12</mml:mn><mml:mo>,</mml:mo><mml:mn>0.08</mml:mn><mml:mo>,</mml:mo><mml:mn>0.25</mml:mn><mml:mo>,</mml:mo><mml:mn>0.15</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>represents the culmination of this systematic calibration process, prioritising the most impactful performance indicators while maintaining adequate representation for secondary objectives. This configuration is maintained fixed throughout all experiments to eliminate potential confounding effects from adaptive weight selection during performance evaluation.</p>
</sec>
<sec id="s3_6">
<label>3.6</label>
<title>Metric-Orthogonality Analysis</title>
<p>Including both Euclidean distance <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>d</mml:mi></mml:math></inline-formula> and Hop Count <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>h</mml:mi></mml:math></inline-formula> has been criticised as redundant for static deployments because, under an ideal disc-radio model, the two are strictly monotone. However, real LLNs exhibit radio irregularity, anisotropic path loss, and obstacles, so a short physical link does not necessarily translate into a single hop, and vice versa. We therefore quantified the statistical dependence between the two metrics.</p>
<p>For the 50-node baseline topology, we logged <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> for every edge over 100 snapshot periods (9000 samples). The Pearson correlation coefficient is <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0.63</mml:mn></mml:math></inline-formula> (95% CI: 0.61&#x2013;0.65)&#x2014;moderate, but far from the <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2248;</mml:mo><mml:mn>0.95</mml:mn></mml:math></inline-formula> expected under an ideal model. When replayed with log-normal shadowing radio (<inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mtext>sh</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:math></inline-formula> dB), the correlation dropped to 0.41.</p>
<p><italic>Ablation Experiment:</italic></p>
<p>We re-optimized the weight vector <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> in three settings (<xref ref-type="table" rid="table-3">Table 3</xref>):</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Ablation analysis on routing metric weights</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Setting</th>
<th>PDR <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mo stretchy="false">&#x2191;</mml:mo></mml:math></inline-formula> (%)</th>
<th>Energy <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mo stretchy="false">&#x2193;</mml:mo></mml:math></inline-formula> (%)</th>
<th>Delay <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:mo stretchy="false">&#x2193;</mml:mo></mml:math></inline-formula> (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Full metric set (6)</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
</tr>
<tr>
<td>Without <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mi>h</mml:mi></mml:math></inline-formula></td>
<td>&#x2212;2.1</td>
<td>&#x002B;0.6</td>
<td>&#x2212;1.8</td>
</tr>
<tr>
<td>Without <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mi>d</mml:mi></mml:math></inline-formula></td>
<td>&#x2212;0.4</td>
<td>&#x002B;4.3</td>
<td>&#x2212;0.9</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-3fn1" fn-type="other">
<p>Note: Values are relative to the full TABURPL configuration; 30 runs, packet rate 10 pkt/sec, 95% CI shown.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>Removing either metric degrades at least one key KPI statistically significantly (<inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.01</mml:mn></mml:math></inline-formula>). The effect is small but systematic, confirming that <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mi>d</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi>h</mml:mi></mml:math></inline-formula> capture different aspects of link quality: distance relates to radio energy cost while hop count affects queuing and MAC back-off delay. Consequently, we keep both terms, with their relative impact balanced by the learned weights (<inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn>0.12</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn>0.08</mml:mn></mml:math></inline-formula>).</p>
<p><italic>Practical Note:</italic></p>
<p>Distance <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mi>d</mml:mi></mml:math></inline-formula> is only known at the root from node coordinates or RSSI trilateration, so it does not increase on-mote storage. Hop Count <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mi>h</mml:mi></mml:math></inline-formula> remains locally computable, introducing no additional control-plane bytes.</p>
</sec>
<sec id="s3_7">
<label>3.7</label>
<title>Computational Complexity and Convergence</title>
<sec id="s3_7_1">
<label>3.7.1</label>
<title>Algorithm Complexity and Termination</title>
<p>Let <italic>I</italic> be the maximum number of iterations, <italic>L</italic> the length of the Tabu list, and <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula> the neighbourhood size for each iteration (<inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>4000</mml:mn></mml:math></inline-formula> for our 50-node topology, depending on network architecture and local search operators). The algorithm&#x2019;s computational complexity is:
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>I</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>P</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>P</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula> is the average path length for computing <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. With <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mn>150</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>4000</mml:mn></mml:math></inline-formula>, and <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>P</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>6</mml:mn></mml:math></inline-formula>, this corresponds to approximately 360,000 path-element cost evaluations. For practical C implementation, assuming <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mo>&#x223C;</mml:mo><mml:mn>20</mml:mn></mml:math></inline-formula> CPU instructions per evaluation, a CC2538 (ARM Cortex-M3) core at 32 MHz executes about <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mn>7.2</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn>6</mml:mn></mml:msup></mml:math></inline-formula> instructions with worst-case execution time of approximately 250&#x2013;300 ms, which remains acceptable for RPL control-plane operations given the update interval [<xref ref-type="bibr" rid="ref-30">30</xref>].</p>
<p>Memory usage for the Tabu list scales as <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>L</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>P</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. For <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn>30</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>P</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>6</mml:mn></mml:math></inline-formula>, the list holds 180 entries (each stored as <monospace>uint32_t node_id</monospace>), requiring <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mn>180</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>4</mml:mn><mml:mtext>&#xA0;B</mml:mtext><mml:mo>=</mml:mo><mml:mn>720</mml:mn></mml:math></inline-formula> B&#x2014;negligible for typical IoT gateway devices.</p>
<p>The TS algorithm terminates when: (1) maximum iteration limit <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub></mml:math></inline-formula> reached to ensure bounded execution time, (2) no improvement for <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>stall</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>40</mml:mn></mml:math></inline-formula> consecutive iterations (stagnation detection), or (3) aspiration criterion satisfied (cost below user-defined threshold for early termination when acceptable solution quality is achieved).</p>
</sec>
<sec id="s3_7_2">
<label>3.7.2</label>
<title>Performance and Target Scenarios</title>
<p>In practice, 94% of the trials converge within 120 iterations (see <xref ref-type="fig" rid="fig-1">Fig. 1</xref>), demonstrating efficient convergence behavior. The best solution remains stable across 20 additional runs with different random seeds, indicating consistent and reliable algorithm performance in realistic scenarios.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Convergence of TS: best composite cost over 20 runs; 94% settle before iteration 120 (dashed line)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-1.tif"/>
</fig>
 
<p>This stability is crucial for deployment circumstances where routing decisions need to be stable and predictable, even though TS doesn&#x2019;t formally guarantee optimality as a heuristic method.</p>
<p>TABURPL is intended for static or low-mobility IoT deployments, where network topology changes gradually over the course of minutes to hours. Typical applications include environmental monitoring, smart buildings, industrial sensor networks, and infrastructure monitoring, where nodes remain physically stationary but link quality may slowly fluctuate due to interference, battery depletion, or environmental factors. The 90-s snapshot period strikes a balance between responsiveness and efficiency, allowing the protocol to detect energy hotspots, link degradation, and load imbalances while keeping control overhead very low, at just 0.077% of total energy consumption.</p>
<p>For occasional mobility events, TABURPL includes adaptive mechanisms that identify significant topology changes&#x2014;defined as more than 15% of parent switches per snapshot&#x2014;and trigger immediate re-optimization. This reduces the response time to around 250&#x2013;300 ms, ensuring that the network can adjust without unnecessary overhead. The design emphasizes energy efficiency and stability over ultra-fast convergence, making it well suited for most IoT deployments, where network lifetime and reliability are more critical than instantaneous route updates. In high-mobility scenarios, reactive protocols or shorter snapshot intervals of 20&#x2013;30 s may be preferable, though this comes at the cost of higher control overhead, approximately 0.22% of total energy consumption.</p>
</sec>
<sec id="s3_7_3">
<label>3.7.3</label>
<title>Residual-Energy Safeguard</title>
<p>Because the composite cost uses <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula>, numerical overflow can occur when residual energy <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula> approaches zero. To prevent this, a floor value is introduced:
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:msubsup><mml:mi>E</mml:mi><mml:mi>r</mml:mi><mml:mrow><mml:mrow><mml:mtext>safe</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>&#x03B5;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.05</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>0.5</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi><mml:mrow><mml:mtext>&#xA0;of initial energy</mml:mtext></mml:mrow></mml:math></disp-formula></p>
<p>In all occurrences of the reciprocal term, we use <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi>r</mml:mi><mml:mrow><mml:mtext>safe</mml:mtext></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. All other metrics and the weight vector <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> remain unchanged.</p>
</sec>
</sec>
<sec id="s3_8">
<label>3.8</label>
<title>Acquisition of the Link&#x2013;Stability Rate <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mi mathvariant="bold-italic">s</mml:mi></mml:msub></mml:math></inline-formula></title>
<p>For each directed link <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the Link&#x2013;Stability Rate is defined as an exponentially-weighted moving average (EWMA):
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:mtext>ACK</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>&#x03B2;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.75</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0.5</mml:mn></mml:math></disp-formula>where <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:msub><mml:mn>1</mml:mn><mml:mrow><mml:mtext>ACK</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> if the unicast transmission from <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>u</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mi>v</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:mi>t</mml:mi></mml:math></inline-formula> is acknowledged at the MAC layer. With default NS2.34 queue length (8 frames), this <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> gives an effective window of <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mo>&#x2248;</mml:mo><mml:mn>32</mml:mn></mml:math></inline-formula> packets&#x2014;close to the value recommended in RFC 6551 for the LL-LSP metric.</p>
<p>NS2.34 already computes the same EWMA internally to derive ETX. When the RPL stack is built with <monospace>#define RPL_WITH_METRICS 1</monospace>, the per-link statistic is periodically exported inside a Metric Container option of type <monospace>0x04</monospace> (Link-Layer Link Success Probability, LL-LSP) that is fully specified in RFC 6551 and thus ignored gracefully by OF0.</p>
<p><italic>Piggy-back Mechanism:</italic></p>
<p>One-byte fixed-point LL-LSP values (range 0&#x2013;255) are attached to DAO messages; this adds exactly <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> neighbours to each snapshot, already counted in <xref ref-type="sec" rid="s3_9">Section 3.9</xref>. At the root, values are rescaled to <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> and used in the composite cost. If the option is absent (legacy mote), the root falls back to ETX-derived success probability <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mtext>ETX</mml:mtext></mml:math></inline-formula>, ensuring backward compatibility.</p>
<p><italic>Numerical Range:</italic></p>
<p>Because <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, we safely invert it in <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>; to avoid division by zero we clamp <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&#x2265;</mml:mo><mml:mn>0.05</mml:mn></mml:math></inline-formula>, mirroring the <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula> safeguard used in <xref ref-type="sec" rid="s3_7">Section 3.7</xref>.</p>
<sec id="s3_8_1">
<label>3.8.1</label>
<title>Distance-to-Sink Measurement Implementation</title>
<p>The distance metric <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> requires practical measurement techniques suitable for resource-constrained IoT devices. Unlike GPS-based localization systems, which consume significant energy and may be unavailable in indoor or underground environments, TABURPL primarily uses RSSI-based distance estimation, with network coordinates as a backup. So in RSSI-based distance calculation, for each link <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the distance is estimated using the log-distance path loss model:
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mtext>RSSI</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>RSSI</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>measured</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>10</mml:mn><mml:mo>&#x22C5;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:msup></mml:math></disp-formula>where <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:msub><mml:mi>d</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> is the reference distance (typically 1 m), <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msub><mml:mtext>RSSI</mml:mtext><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the received signal strength at the reference distance, <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:msub><mml:mtext>RSSI</mml:mtext><mml:mrow><mml:mtext>measured</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the measured RSSI value, and <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:mi>n</mml:mi></mml:math></inline-formula> is the path loss exponent (2.0 for free space, 2.7&#x2013;4.3 for indoor environments).</p>
<p>When RSSI measurements are unreliable due to interference or multipath fading, TABURPL uses virtual coordinate estimation. Each node positions itself in a 2D coordinate space based on distances to landmark nodes, typically including the sink and selected high-energy nodes. The Euclidean distance is then computed directly from these virtual coordinates.</p>
<p>RSSI-based distance estimation introduces <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mo>&#x00B1;</mml:mo><mml:mn>20</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula> error, which is acceptable for routing decisions. The metric captures transmission energy cost correlation better than hop count alone. No additional hardware requirements beyond standard 802.15.4 transceivers. Compatible with existing RPL implementations through DAO message extensions.</p>
</sec>
</sec>
<sec id="s3_9">
<label>3.9</label>
<title>Control-Plane Overhead and Energy Accounting</title>
<p>Each snapshot message includes the tuple <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mtext>nbrID</mml:mtext><mml:mo>,</mml:mo><mml:mtext>ETX</mml:mtext><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> for up to <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>6</mml:mn></mml:math></inline-formula> neighbors. The fixed header is 18 B, and each neighbor adds 6 B, so the total snapshot size is:
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mrow><mml:mtext>snap</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>18</mml:mn><mml:mo>+</mml:mo><mml:mn>6</mml:mn><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>50</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>18</mml:mn><mml:mo>+</mml:mo><mml:mn>6</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>6</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>2400</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>B</mml:mtext></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>19</mml:mn><mml:mo>,</mml:mo><mml:mspace width="negativethinmathspace" /><mml:mn>200</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>bits</mml:mtext></mml:mrow></mml:math></disp-formula></p>
<p>The per-bit radio cost is based on CC2538 parameters used by the 802.15.4 PHY model in NS-2.34 (<xref ref-type="table" rid="table-4">Table 4</xref>):</p>

<p><disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>tx(bit)</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mrow><mml:mtext>tx</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mrow><mml:mtext>bat</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mrow><mml:mtext>bit</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>24.0</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn></mml:mrow><mml:mrow><mml:mn>250</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>&#x2248;</mml:mo><mml:mn>288</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>nJ/bit</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>rx(bit)</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mrow><mml:mtext>rx</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mrow><mml:mtext>bat</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mrow><mml:mtext>bit</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>20.0</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn></mml:mrow><mml:mrow><mml:mn>250</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>&#x2248;</mml:mo><mml:mn>240</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>nJ/bit</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Transceiver parameters (TI CC2538 [<xref ref-type="bibr" rid="ref-30">30</xref>], 0 dBm)</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>tx</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>24.0 mA</td>
<td>TX current (Active-Mode TX at 0 dBm)</td>
</tr>
<tr>
<td><inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>rx</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>20.0 mA</td>
<td>RX current (Active-Mode RX)</td>
</tr>
<tr>
<td><inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mtext>bat</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>3.0 V</td>
<td>Supply voltage</td>
</tr>
<tr>
<td><inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mtext>bit</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>250 kbps</td>
<td>IEEE 802.15.4 PHY data rate (2.4 GHz)</td>
</tr>
<tr>
<td>Packet size</td>
<td>80 B</td>
<td>Single MAC frame (no fragmentation)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Each node transmits one snapshot and receives <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mi>k</mml:mi></mml:math></inline-formula> snapshots from its neighbors. The energy per node per snapshot is calculated as:
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>ctrl</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mrow><mml:mtext>snap</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>tx(bit)</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>rx(bit)</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>=</mml:mo><mml:mn>19200</mml:mn><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>288</mml:mn><mml:mo>+</mml:mo><mml:mn>6</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>240</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>9</mml:mn></mml:mrow></mml:msup><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>33.2</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>mJ</mml:mtext></mml:mrow></mml:math></disp-formula></p>
<p>With the initial battery set to <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:msub><mml:mi>E</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn>1000</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mi mathvariant="normal">J</mml:mi></mml:mrow></mml:math></inline-formula>, this overhead corresponds to:
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:mfrac><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>ctrl</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mfrac><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn><mml:mo>&#x2248;</mml:mo><mml:mn>3.32</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi><mml:mrow><mml:mtext>&#xA0;every 90 s</mml:mtext></mml:mrow></mml:math></disp-formula></p>
<p><italic>Post-Processing Methodology Justification:</italic></p>
<p>NS-2.34&#x2019;s energy model tracks battery consumption only when packets reach the MAC layer, requiring post-processing to account for control overhead. While this approach does not capture per-packet MAC retransmissions, it provides a methodologically sound and conservative <italic>lower bound</italic> estimate for three key reasons:
<list list-type="simple">
<list-item><label>1.</label><p><bold>Deterministic overhead:</bold> Control message size and transmission schedule are known a priori from protocol specifications, enabling accurate energy calculation using validated hardware parameters (<xref ref-type="table" rid="table-4">Table 4</xref>).</p>
</list-item>
<list-item><label>2.</label><p><bold>Statistical correction:</bold> We apply a correction factor of 1.1&#x2013;1.2<inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> based on empirical 802.15.4 collision rates in dense networks [<xref ref-type="bibr" rid="ref-31">31</xref>], accounting for MAC-layer retransmissions observed in typical IoT deployments.</p></list-item>
<list-item><label>3.</label><p><bold>Uniform methodology:</bold> The same post-processing procedure is applied consistently to all compared protocols (OF0, MRHOF, DDSLA-RPL, FTC-OF, CQARPL, Tabu-RPL), ensuring fair evaluation without introducing systematic bias favoring any particular approach.</p></list-item>
</list></p>
<p><italic>Implementation Details:</italic></p>
<p>In NS-2.34, battery energy is reduced only when a Packet object reaches the MAC layer. Therefore, DAO/DIO piggyback bytes are ignored by default. We account for this in post-processing to correctly inject the snapshot energy cost into the simulation trace.
<list list-type="bullet">
<list-item>
<p>After each simulation, the standard <monospace>&#x002A;.tr</monospace> file is processed using the AWK script <monospace>add_ctrl_energy.awk</monospace>.</p></list-item>
<list-item>
<p>The script identifies lines of the form <monospace>(s $node_i Energy... RES E_r)</monospace> for every node <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:mi>i</mml:mi></mml:math></inline-formula> at time stamps corresponding to snapshot events (i.e., multiples of <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>snap</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>).</p></list-item>
<list-item>
<p>It subtracts <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mtext>ctrl</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> from the reported residual energy. If <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:mi>k</mml:mi></mml:math></inline-formula> or <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>snap</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> are modified by the user, the script recalculates all parameters automatically from the trace header.</p></list-item>
</list></p>
<p>This calculation provides a <italic>lower bound</italic> estimate of control overhead, as the post-processing approach does not capture MAC-layer retransmissions due to collisions or channel contention. Based on empirical observations of 802.15.4behavior in dense networks (typically 10%&#x2013;15% collision rate under moderate traffic [<xref ref-type="bibr" rid="ref-31">31</xref>]), the actual overhead may be <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:mn>1.1</mml:mn></mml:math></inline-formula>&#x2013;<inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:mn>1.2</mml:mn><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> higher than the computed value. Nevertheless, even accounting for this factor, total control overhead remains below 0.09% of total energy consumption, which is negligible compared to data transmission costs and well within acceptable bounds for IoT deployments.</p>
<p>In Algorithm 1, we present the complete TABURPL procedure that systematically explores the solution space using TS to identify optimal parent-child relationships in the DODAG structure.</p>
<fig id="fig-15">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-15.tif"/>
</fig>
<p>The <sc>generateneighbours</sc> function evaluates potential parent switches for each node <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mi>i</mml:mi></mml:math></inline-formula> in the DODAG. For a node with current parent <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mi>p</mml:mi></mml:math></inline-formula>, we consider all nodes <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mi>j</mml:mi></mml:math></inline-formula> within transmission range that satisfy three critical constraints:
<list list-type="bullet">
<list-item>
<p><bold>Loop prevention:</bold> Node <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mi>j</mml:mi></mml:math></inline-formula> must be closer to the sink than <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:mi>i</mml:mi></mml:math></inline-formula>, measured by rank or hop count, ensuring acyclic routing topology.</p></list-item>
<list-item>
<p><bold>Energy viability:</bold> Node <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mi>j</mml:mi></mml:math></inline-formula> must maintain residual energy <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:msub><mml:mi>E</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mn>0.1</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> (10% of initial capacity) to avoid routing through nearly depleted nodes.</p></list-item>
<list-item>
<p><bold>Load balancing:</bold> Node <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:mi>j</mml:mi></mml:math></inline-formula> must serve fewer than 6 children to prevent congestion hotspots.</p></list-item>
</list></p>
<p>Transmission range is determined by RSSI threshold of <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mo>&#x2212;</mml:mo><mml:mn>85</mml:mn></mml:math></inline-formula> dBm, typical for 802.15.4 radios. In practice, each node has 3&#x2013;8 candidate parents, yielding <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mn>150</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>400</mml:mn></mml:math></inline-formula> routing configurations per iteration for a 50-node network. The tabu tenure <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn>30</mml:mn></mml:math></inline-formula> was determined empirically: values <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mi>L</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>20</mml:mn></mml:math></inline-formula> caused cycling, while <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mi>L</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>40</mml:mn></mml:math></inline-formula> restricted exploration without improving convergence.</p>
<p>The diversity function measures solution dissimilarity using normalized Hamming distance:<disp-formula id="eqn-18"><label>(18)</label><mml:math id="mml-eqn-18" display="block"><mml:mrow><mml:mtext>diversity</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>N</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover><mml:mo>&#x22AE;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mtext>parent</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2260;</mml:mo><mml:msub><mml:mrow><mml:mtext>parent</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:mo>&#x22AE;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> is the indicator function and <italic>N</italic> is the number of nodes. A solution is considered sufficiently diverse if <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mtext>diversity</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mtext>candidate</mml:mtext></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mtext>recent</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mn>0.15</mml:mn></mml:math></inline-formula> (i.e., at least 15% of parent assignments differ), preventing premature convergence to similar routing topologies.</p>
</sec>
<sec id="s3_10">
<label>3.10</label>
<title>Practical Example</title>
<p>To show how the proposed TS-based routing optimization works, consider a simple network with six nodes, where the source node (Node 1) has three possible paths to the sink node. The cost of each path is calculated using the composite cost functional <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> defined in <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>, which uses normalized metrics for energy, reliability, and network performance.</p>
<p>For example, available routing paths:
<list list-type="bullet">
<list-item>
<p>Path A: Node 1 <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 2 <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 3 <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Sink, <inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:msub><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>15</mml:mn></mml:math></inline-formula></p></list-item>
<list-item>
<p>Path B: Node 1 <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 4 <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 3 <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Sink, <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:msub><mml:mi>C</mml:mi><mml:mi>B</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>12</mml:mn></mml:math></inline-formula></p></list-item>
<list-item>
<p>Path C: Node 1 <inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 2 <inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Node 5 <inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> Sink, <inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:msub><mml:mi>C</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>13</mml:mn></mml:math></inline-formula></p></list-item>
</list></p>
<p>At the start, Path A is chosen as the initial solution. In the first TS iteration, the algorithm evaluates all neighboring solutions, which are paths that differ by one edge. Path B has the lowest cost (<inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:msub><mml:mi>C</mml:mi><mml:mi>B</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>0.72</mml:mn></mml:math></inline-formula>), so it becomes the new current solution. Path A is added to the Tabu List with a tenure of <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn>30</mml:mn></mml:math></inline-formula> iterations to prevent immediate cycling.</p>
<p>The search continues around Path B. The algorithm may accept Path C or other modifications if the aspiration criteria are met, for example, when the cost improves beyond a predefined threshold. Iterations continue until one of the convergence criteria is reached: maximum iterations (<inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub></mml:math></inline-formula>), <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>stall</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> consecutive iterations without improvement, or achieving the aspiration threshold. Finally, Path B is selected as the optimal route, showing how the TS algorithm balances energy efficiency, connection reliability, and hop count.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Simulation and Analysis</title>
<p>The suggested TABURPL protocol improves RPL with TS, and we ran a battery of simulations in the NS-2.34 network simulator to see how well it worked [<xref ref-type="bibr" rid="ref-32">32</xref>]. Our goal in creating this simulation environment was to capture the essence of IoT networks, complete with nodes that suffer from poor transmission power, limited energy, and erratic communication links. The evaluation performance measures, parameters, and network features used in the simulation are detailed in this section (<xref ref-type="table" rid="table-5">Table 5</xref>).</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Comparison of RPL-based protocols used for evaluating TABURPL (sorted by year)</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Protocol</th>
<th>Tabu</th>
<th>ML/AI</th>
<th>Energy</th>
<th>Delay</th>
<th>Stability</th>
<th>Eff.</th>
<th>IoT</th>
</tr>
</thead>
<tbody>
<tr>
<td>OF0 (baseline)</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>Low</td>
<td>Base</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>MRHOF (RPL)</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>Base</td>
<td>Improved</td>
<td>Improved</td>
<td>Improved</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>DDSLA-RPL</td>
<td>&#x2013;</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>High</td>
<td>Improved</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>FTC-OF</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>Moderate</td>
<td>&#x2713;</td>
<td>Moderate</td>
<td>Base</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>CQARPL</td>
<td>&#x2013;</td>
<td>Moderate</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>Moderate</td>
<td>Improved</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>Tabu-RPL</td>
<td>&#x2713;</td>
<td>Moderate</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>Moderate</td>
<td>Significant</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>TABURPL (this work)</td>
<td>&#x2713;</td>
<td>&#x2013;</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>High</td>
<td>Significant</td>
<td>&#x2713;</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Statistical Methodology: Unless stated otherwise, each data point represents the average of 30 independent simulation runs using different pseudorandom number generator (PRNG) seeds. We report the mean along with a two-sided 95% confidence interval, estimated using bootstrap resampling with <inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:msup><mml:mn>10</mml:mn><mml:mn>4</mml:mn></mml:msup></mml:math></inline-formula> iterations, and represent it as <inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:mtext>mean</mml:mtext><mml:mo>&#x00B1;</mml:mo><mml:mtext>half-width</mml:mtext></mml:math></inline-formula>. When comparative results are discussed in the text, we include the confidence interval after the percentage improvement. For example, TABURPL reduces delay by <inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:mn>12</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi><mml:mo>&#x00B1;</mml:mo><mml:mn>2</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula> compared to MRHOF.</p>
<p>Simulator Justification: Although more modern simulators such as NS-3 and Contiki-NG offer advanced MAC and PHY layer models, NS-2.34 remains a widely used and reliable tool for evaluating routing protocols in IoT scenarios. It provides support for energy-aware simulation and large-scale network layer evaluations, which are the focus of this study. Since our approach targets centralized optimization at the DODAG root rather than low-level wireless dynamics, NS-2.34 is appropriate for our purposes.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Simulation Parameters</title>
<p><xref ref-type="table" rid="table-6">Table 6</xref> shows the setup we used for our NS-2.34 simulations. We chose these characteristics to show what it&#x2019;s really like to deploy IoT devices, with a focus on limited energy, spotty connectivity, and changing traffic loads. We wanted to see how well TABURPL worked in situations that are common in large sensor networks and compare it against five RPL-based protocols: OF0, MRHOF (RPL), DDSLA-RPL, FTC-OF, CQARPL, and Tabu-RPL.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Simulation parameters for NS-2.34 experiments</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Network simulator</td>
<td>NS-2.34</td>
<td>Protocol-level simulation engine</td>
</tr>
<tr>
<td>Simulation time</td>
<td>1000 s</td>
<td>Duration of each experiment run</td>
</tr>
<tr>
<td>Network sizes</td>
<td>50, 100, 200 nodes</td>
<td>Number of sensor nodes</td>
</tr>
<tr>
<td>Deployment area</td>
<td><inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mn>1000</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">m</mml:mi></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>1000</mml:mn></mml:math></inline-formula> m</td>
<td>Random uniform node distribution</td>
</tr>
<tr>
<td>Traffic pattern</td>
<td>CBR (UDP)</td>
<td>Periodic sensing model</td>
</tr>
<tr>
<td>Traffic loads</td>
<td>2, 5, 10 pkt/s</td>
<td>Low, medium, high transmission rates</td>
</tr>
<tr>
<td>Packet size</td>
<td>80 bytes</td>
<td>Application-layer payload (802.15.4 compliant)</td>
</tr>
<tr>
<td>MAC protocol</td>
<td>IEEE 802.15.4</td>
<td>Low-power link-layer standard</td>
</tr>
<tr>
<td>Routing protocols</td>
<td>RPL variants</td>
<td>As in <xref ref-type="table" rid="table-5">Table 5</xref></td>
</tr>
<tr>
<td>Optimization algorithm</td>
<td>TS</td>
<td>Applied only in TABURPL at DODAG root</td>
</tr>
<tr>
<td>Initial energy per node</td>
<td>1000 J</td>
<td>Total energy at start</td>
</tr>
<tr>
<td>Energy model</td>
<td>Tx/Rx-based cost</td>
<td>Battery consumption based on packet events</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Performance Metrics</title>
<p>We use eight key metrics to evaluate protocol behavior across multiple traffic levels and network sizes [<xref ref-type="bibr" rid="ref-33">33</xref>,<xref ref-type="bibr" rid="ref-34">34</xref>]:
<list list-type="bullet">
<list-item>
<p><bold>Packet Delivery Ratio (PDR):</bold><disp-formula id="eqn-19"><label>(19)</label><mml:math id="mml-eqn-19" display="block"><mml:mi>P</mml:mi><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>sent</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:math></disp-formula>where <inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mtext>sent</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the total number of packets transmitted by source nodes, and <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the number of packets successfully received at the sink [<xref ref-type="bibr" rid="ref-31">31</xref>].</p></list-item>
<list-item>
<p><bold>Energy Consumption:</bold><disp-formula id="eqn-20"><label>(20)</label><mml:math id="mml-eqn-20" display="block"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>total</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></disp-formula>where <inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the energy consumed by node <inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mi>i</mml:mi></mml:math></inline-formula>, and <italic>N</italic> is the total number of nodes in the network [<xref ref-type="bibr" rid="ref-31">31</xref>].</p></list-item>
<list-item>
<p><bold>Average Path Length:</bold><disp-formula id="eqn-21"><label>(21)</label><mml:math id="mml-eqn-21" display="block"><mml:mrow><mml:mtext>AvgPathLength</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></disp-formula>where <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the hop count taken by the <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mi>i</mml:mi></mml:math></inline-formula>-th received packet.</p></list-item>
<list-item>
<p><bold>Routing Control Overhead:</bold><disp-formula id="eqn-22"><label>(22)</label><mml:math id="mml-eqn-22" display="block"><mml:mrow><mml:mtext>Overhead</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mtext>(Control packets sent)</mml:mtext></mml:mrow></mml:math></disp-formula>representing the total number of control messages (e.g., DIO, DAO) generated by each protocol.</p></list-item>
<list-item>
<p><bold>End-to-End Delay:</bold><disp-formula id="eqn-23"><label>(23)</label><mml:math id="mml-eqn-23" display="block"><mml:mrow><mml:mtext>Delay</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mrow><mml:mtext>arrival</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mrow><mml:mtext>sent</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>where <inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:msubsup><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mtext>sent</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:msubsup><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mtext>arrival</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> are the send and receive timestamps of packet <inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><mml:mi>i</mml:mi></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-35">35</xref>].</p></list-item>
<list-item>
<p><bold>Packet Loss Ratio (PLR):</bold><disp-formula id="eqn-24"><label>(24)</label><mml:math id="mml-eqn-24" display="block"><mml:mi>P</mml:mi><mml:mi>L</mml:mi><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mrow><mml:mtext>sent</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn></mml:math></disp-formula>indicating the percentage of dropped packets.</p></list-item>
<list-item>
<p><bold>Throughput:</bold><disp-formula id="eqn-25"><label>(25)</label><mml:math id="mml-eqn-25" display="block"><mml:mrow><mml:mtext>Throughput</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>comm</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:math></disp-formula>where <inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mtext>received</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the total amount of data (in bits) delivered to the sink, and <inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>comm</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the total communication time [<xref ref-type="bibr" rid="ref-35">35</xref>].</p></list-item>
<list-item>
<p><bold>LSR:</bold><disp-formula id="eqn-26"><label>(26)</label><mml:math id="mml-eqn-26" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>success</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>attempts</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:math></disp-formula>measuring the proportion of successful transmissions relative to total attempts. Higher <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:msub><mml:mi>L</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula> suggests more reliable links [<xref ref-type="bibr" rid="ref-36">36</xref>].</p></list-item>
</list></p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>PDR</title>
<p>The PDR shows how many packets successfully reach their destination compared to the total packets sent (<xref ref-type="disp-formula" rid="eqn-19">Eq. (19)</xref>). <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows PDR results for networks with 50, 100, and 200 nodes under different traffic loads.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Packet delivery ratio under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-2.tif"/>
</fig>
<p>TABURPL performs better than all other protocols in every test scenario. In the 50-node network (left), TABURPL achieves 95.7% PDR under low traffic and 92.0% under high traffic. The baseline OF0 protocol only reaches 81.2% and 75.3%, respectively, showing TABURPL improves performance by about 18% to 22%.</p>
<p>When we test larger networks with 100 nodes (middle), TABURPL maintains strong performance with 94.2% to 90.4% PDR. OF0 drops significantly to 72.8% under high traffic, while TABURPL stays consistently better by 19% to 24%.</p>
<p>The most challenging test uses 200 nodes (right). Even here, TABURPL delivers 92.1% to 88.2% PDR while OF0 falls to 69.9% under heavy traffic. TABURPL also outperforms other advanced protocols like DDSLA-RPL, FTC-OF, CQARPL, and Tabu-RPL. Paired <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:mi>t</mml:mi></mml:math></inline-formula>-tests confirm that TABURPL&#x2019;s improvements over OF0 are statistically significant across all scenarios (<inline-formula id="ieqn-232"><mml:math id="mml-ieqn-232"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula>, 95% CI shown in error bars).</p>
<p>TABURPL works well because it uses Tabu Search to find the best routing paths. The algorithm considers link stability, energy efficiency, and transmission reliability together. This helps avoid congested or unreliable network areas. While all protocols perform worse as traffic increases, TABURPL handles the load much better and keeps PDR above 88% even in the hardest conditions. This makes it suitable for important IoT applications that need reliable data delivery.</p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Energy Consumption Evaluation</title>
<p>This section analyzes how much energy different RPL protocols use across various network sizes and traffic loads. <xref ref-type="fig" rid="fig-3">Fig. 3</xref> shows the average energy consumed per node (measured in joules) under low (2 pkt/sec), medium (5 pkt/sec), and high (10 pkt/sec) traffic conditions.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Average energy consumption under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-3.tif"/>
</fig>
<p>TABURPL uses less energy than all other protocols in every test scenario. The Tabu Search optimization helps the protocol choose more efficient and stable paths, which reduces retransmissions and control message overhead. In the 50-node network (left), TABURPL consumes only 1.5 J under low traffic and 1.9 J under high traffic. The baseline OF0 protocol uses much more energy with 2.8 and 3.7 J, respectively. One-way ANOVA shows significant differences among protocols (<inline-formula id="ieqn-233"><mml:math id="mml-ieqn-233"><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>6</mml:mn><mml:mo>,</mml:mo><mml:mn>203</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>127.4</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-234"><mml:math id="mml-ieqn-234"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula>), with post-hoc tests confirming TABURPL&#x2019;s superiority (<inline-formula id="ieqn-235"><mml:math id="mml-ieqn-235"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula> for all pairwise comparisons).</p>
<p>The same pattern continues as networks get larger. In the 100-node network (middle), TABURPL uses 1.7 to 2.1 J while OF0 consumes 3.1 to 4.0 J. For the largest 200-node network (right), TABURPL needs only 2.1 to 2.5 J compared to OF0&#x2019;s 3.6 to 4.5 J. An important finding is how energy consumption changes with traffic load. TABURPL&#x2019;s energy use increases by only 0.4 J from low to high traffic, while other protocols increase by 0.8 to 1.2 J. This shows TABURPL handles traffic growth much more efficiently.</p>
<p>Furthermore, the analysis of node-level energy distribution reveals that TABURPL prevents the formation of energy hotspots. In OF0 and MRHOF, nodes closer to the sink tend to deplete their battery 2.5<inline-formula id="ieqn-236"><mml:math id="mml-ieqn-236"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> faster than leaf nodes due to the funneling effect. In contrast, TABURPL exhibits a more uniform energy drain across the network, with the standard deviation of residual energy being approximately 40% lower than that of the baseline protocols. This load-balancing capability ensures that the first-node-death event is significantly delayed, thereby extending the functional lifetime of the entire network.</p>
</sec>
<sec id="s4_5">
<label>4.5</label>
<title>Average Path Length Analysis</title>
<p><xref ref-type="fig" rid="fig-4">Fig. 4</xref> shows the average hop count that data packets need to reach the sink under different traffic loads (2, 5, and 10 pkt/sec) and network sizes (50, 100, and 200 nodes). TABURPL consistently achieves the shortest path lengths among all protocols, even when traffic increases.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Average path length (Hop Count) under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-4.tif"/>
</fig>
<p>In the 50-node network (left), TABURPL uses an average of 3.2 hops under low traffic and increases moderately to 4.1 hops under high traffic. The baseline OF0 protocol starts at 4.3 hops and reaches 5.2 hops under the same conditions. This pattern continues in larger networks: TABURPL maintains 3.4&#x2013;4.3 hops in the 100-node network (middle) compared to OF0&#x2019;s 4.5&#x2013;5.5 hops, and 3.6&#x2013;4.5 hops in the 200-node network (right) vs. OF0&#x2019;s 4.7&#x2013;5.8 hops.</p>
<p>TABURPL achieves these shorter paths through its Tabu Search mechanism, which finds efficient routes while avoiding congested and unstable links. Unlike traditional RPL protocols that sometimes choose longer paths to save energy, TABURPL does something interesting: it reduces both energy consumption and hop count at the same time. This shows the optimization algorithm effectively avoids unnecessary detours while selecting reliable forwarding nodes.</p>
<p>The results demonstrate that smarter routing doesn&#x2019;t always mean longer paths. TABURPL&#x2019;s ability to balance route length with stability and energy efficiency leads to better overall performance. This contributes to its superior results in both energy savings and packet delivery across all network conditions.</p>
</sec>
<sec id="s4_6">
<label>4.6</label>
<title>Routing Control Overhead</title>
<p>Routing control overhead measures how many control messages (like DIO, DAO, DIS) protocols exchange to establish routes, maintain connections, and select parent nodes. <xref ref-type="fig" rid="fig-5">Fig. 5</xref> shows the average control traffic generated per minute (in bytes) for each protocol under different network sizes and traffic loads. TABURPL consistently produces the lowest control overhead in all scenarios.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Routing control overhead under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-5.tif"/>
</fig>
<p>In the 50-node network (left), TABURPL reduces control traffic significantly compared to OF0. While OF0 generates 465&#x2013;585 bytes/min, TABURPL only produces 310&#x2013;380 bytes/min. This advantage continues in larger networks. For the 100-node network (middle), TABURPL generates 330 bytes/min under low traffic and increases modestly to 400 bytes/min under high traffic, compared to OF0&#x2019;s 495&#x2013;620 bytes/min. In the largest 200-node network (right), TABURPL maintains the most efficient performance with only 350&#x2013;420 bytes/min vs. OF0&#x2019;s 535&#x2013;670 bytes/min.</p>
<p>The Tabu Search mechanism helps TABURPL achieve this reduction by quickly finding optimal or near-optimal paths. This means fewer route rediscoveries and less control packet generation. Other protocols like OF0 and DDSLA-RPL need more frequent route updates when links change, which creates higher overhead.</p>
<p>Lower control messaging helps TABURPL in several ways: it reduces network congestion, saves energy, and improves channel utilization. These benefits are particularly important for IoT deployments where bandwidth is limited and energy efficiency is crucial.</p>
</sec>
<sec id="s4_7">
<label>4.7</label>
<title>End-to-End Delay</title>
<p>End-to-End Delay (E2ED) measures the average time (in milliseconds) for a data packet to travel from the source node to the sink. This is an important metric for time-sensitive IoT applications (see <xref ref-type="disp-formula" rid="eqn-23">Eq. (23)</xref>). <xref ref-type="fig" rid="fig-6">Fig. 6</xref> presents the delay results across different traffic loads and network sizes. TABURPL consistently achieves the lowest E2ED in all scenarios.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Average end-to-end delay (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-6.tif"/>
</fig>
<p>In the 50-node network (left), TABURPL records delays ranging from 140 ms under low traffic to 185 ms under high traffic, while OF0 ranges from 235 to 295 ms. This pattern continues in the 100-node network (middle), where TABURPL maintains delays between 155 and 200 ms, significantly outperforming OF0, which reaches 320 ms under high traffic. The same trend appears in the 200-node network (right), where TABURPL reaches a maximum of 220 ms, much lower than OF0&#x2019;s 350 ms.</p>
<p>The Tabu Search optimization at the DODAG root reduces delay by selecting low-congestion and stable routes that minimize retransmissions and MAC-layer back-offs. Compared to OF0, TABURPL lowers delay by about 25%&#x2013;35% under all conditions. The improvement is statistically significant (paired <inline-formula id="ieqn-237"><mml:math id="mml-ieqn-237"><mml:mi>t</mml:mi></mml:math></inline-formula>-test, <inline-formula id="ieqn-238"><mml:math id="mml-ieqn-238"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula>) with large effect sizes (<inline-formula id="ieqn-239"><mml:math id="mml-ieqn-239"><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>1.89</mml:mn></mml:math></inline-formula>&#x2013;<inline-formula id="ieqn-240"><mml:math id="mml-ieqn-240"><mml:mn>2.15</mml:mn></mml:math></inline-formula>, Cohen&#x2019;s <inline-formula id="ieqn-241"><mml:math id="mml-ieqn-241"><mml:mi>d</mml:mi></mml:math></inline-formula>). Although some protocols reach similar path lengths, their higher delays reveal instability or congestion during route selection, which TABURPL avoids through its intelligent search strategy.</p>
<p>The per-hop delay is calculated as:<disp-formula id="eqn-27"><label>(27)</label><mml:math id="mml-eqn-27" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>hop</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Tx</mml:mtext></mml:mrow></mml:msub><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mrow><mml:mrow><mml:mtext>End</mml:mtext></mml:mrow></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Tx</mml:mtext></mml:mrow></mml:msub><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mrow><mml:mrow><mml:mtext>Start</mml:mtext></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>air</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></disp-formula>where <inline-formula id="ieqn-242"><mml:math id="mml-ieqn-242"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>hop</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the per-hop delay, <inline-formula id="ieqn-243"><mml:math id="mml-ieqn-243"><mml:msub><mml:mi>T</mml:mi><mml:mtext>Tx</mml:mtext></mml:msub><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mrow><mml:mrow><mml:mtext>Start</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-244"><mml:math id="mml-ieqn-244"><mml:msub><mml:mi>T</mml:mi><mml:mtext>Tx</mml:mtext></mml:msub><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mrow><mml:mrow><mml:mtext>End</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> denote the start and end of the transmission window, and <inline-formula id="ieqn-245"><mml:math id="mml-ieqn-245"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>air</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the physical propagation delay.</p>
<p>These results show that TABURPL&#x2019;s intelligent routing decisions lead to faster data delivery, making it suitable for IoT applications that require quick response times.</p>
</sec>
<sec id="s4_8">
<label>4.8</label>
<title>Packet Loss Ratio Analysis</title>
<p>Packet Loss Ratio (PLR) measures network reliability by showing the percentage of packets that fail to reach their destination (see <xref ref-type="disp-formula" rid="eqn-24">Eq. (24)</xref>). <xref ref-type="fig" rid="fig-7">Fig. 7</xref> illustrates the PLR for all evaluated protocols under different traffic loads and network sizes. TABURPL consistently achieves the lowest packet loss across all scenarios.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Packet loss ratio comparison (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-7.tif"/>
</fig>
<p>In the 50-node network (left), TABURPL reduces packet loss to 4.3% under low traffic and 8.0% under high traffic, while OF0 experiences much higher losses of 18.8% to 24.7% under the same conditions. At 100 nodes (middle), TABURPL maintains its advantage with packet loss ranging from 5.8% to 9.6%, compared to 21.1% to 27.2% for OF0. In the 200-node network (right), TABURPL achieves 7.9% loss under low traffic and 11.8% under high traffic, significantly outperforming all other protocols, including DDSLA-RPL and FTC-OF.</p>
<p>The Tabu Search optimization mechanism helps TABURPL avoid unstable or lossy links during parent selection. The protocol chooses routes that are both energy-efficient and reliable, which reduces retransmissions and improves delivery success rates. Overall, TABURPL reduces packet loss by more than 50% compared to the baseline OF0, making it highly suitable for critical IoT applications that require consistent data delivery.</p>
</sec>
<sec id="s4_9">
<label>4.9</label>
<title>Throughput Analysis</title>
<p>Throughput measures the rate of successful data delivery in the network, expressed in kilobits per second (kbps) (see <xref ref-type="disp-formula" rid="eqn-25">Eq. (25)</xref>). <xref ref-type="fig" rid="fig-8">Fig. 8</xref> illustrates the throughput performance of all evaluated protocols. TABURPL consistently achieves the highest throughput across all network sizes and traffic conditions.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Throughput under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-8.tif"/>
</fig>
<p>In the 50-node network (left), TABURPL achieves throughput ranging from 41.97 kbps under low traffic to 43.93 kbps under high traffic, significantly outperforming OF0, which delivers only 31.52&#x2013;33.28 kbps. This trend continues as networks get larger: in the 100-node scenario (middle), TABURPL reaches 42.18&#x2013; 44.38 kbps compared to OF0&#x2019;s 31.68&#x2013;33.65 kbps. For the largest 200-node network (right), TABURPL achieves 42.63&#x2013;44.72 kbps, while OF0 caps at 31.95&#x2013;34.10 kbps.</p>
<p>TABURPL&#x2019;s superior throughput comes from its ability to maintain stable, energy-efficient paths and minimize packet loss, as shown in the PLR and delay analyses. The Tabu Search mechanism improves performance by intelligently selecting optimal routes with minimal congestion and fewer retransmissions. These results demonstrate that TABURPL significantly improves network capacity and data delivery efficiency, making it highly suitable for bandwidth-sensitive and real-time IoT applications.</p>
</sec>
<sec id="s4_10">
<label>4.10</label>
<title>LSR Analysis</title>
<p>LSR measures how consistent and reliable data transmissions are between nodes, computed according to <xref ref-type="disp-formula" rid="eqn-26">Eq. (26)</xref>, with values ranging from 0 to 1. <xref ref-type="fig" rid="fig-9">Fig. 9</xref> shows how different traffic loads and network sizes affect LSR. TABURPL consistently outperforms all other protocols across all scenarios.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>LSR of RPL variants under different traffic loads (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-9.tif"/>
</fig>
<p>In the 50-node network under low traffic (left), TABURPL achieves the highest stability of 0.86, while the baseline OF0 reaches only 0.71. As networks get larger and traffic increases, all protocols show lower stability, but TABURPL maintains its advantage. In the 100-node network (middle), TABURPL achieves 0.82 to 0.70 compared to OF0&#x2019;s 0.65 to 0.52. Even under the most challenging conditions with 200 nodes and high traffic (right), TABURPL maintains acceptable stability at 0.63, while OF0 drops significantly to 0.45.</p>
<p>This degradation pattern makes sense: as network density and traffic increase, nodes compete more for the wireless channel, leading to more collisions and reducing transmission reliability. However, TABURPL handles these challenges much better than other protocols.</p>
<p>TABURPL&#x2019;s Tabu Search-driven parent selection helps by choosing routes with historically higher delivery rates and fewer retransmissions. The algorithm learns from past performance and avoids unstable links. These results show that TABURPL provides robust and adaptive routing that maintains high link stability even under challenging IoT conditions.</p>
</sec>
<sec id="s4_11">
<label>4.11</label>
<title>Statistical Analysis and Robustness Evaluation</title>
<p>This section shows statistical validation of TABURPL performance using confidence intervals, significance testing, and sensitivity analysis. All experiments used 30 independent runs with different random seeds. Results are reported as mean <inline-formula id="ieqn-246"><mml:math id="mml-ieqn-246"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> 95% confidence interval. We used paired <inline-formula id="ieqn-247"><mml:math id="mml-ieqn-247"><mml:mi>t</mml:mi></mml:math></inline-formula>-tests for comparing protocols and one-way ANOVA for multi-protocol analysis.</p>
<p><xref ref-type="table" rid="table-7">Table 7</xref> summarizes the statistical results for key performance metrics in the 100-node, medium traffic scenario. The ANOVA F-statistic for PDR shows <inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>174</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>89.23</mml:mn></mml:math></inline-formula> with <inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula>, indicating significant differences among protocols. Post-hoc Tukey HSD confirms that TABURPL significantly outperforms all protocols (<inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mi>p</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.001</mml:mn></mml:math></inline-formula>).</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Statistical analysis summary (100 nodes, 5 pkt/sec)</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Protocol</th>
<th>PDR (%)</th>
<th>Energy (J)</th>
<th>Delay (ms)</th>
<th>Effect size (Cohen&#x2019;s d)</th>
</tr>
</thead>
<tbody>
<tr>
<td>TABURPL</td>
<td><inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mn>92.6</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:msup><mml:mn>1.8</mml:mn><mml:mo>&#x2020;</mml:mo></mml:msup></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:mn>1.9</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:msup><mml:mn>0.2</mml:mn><mml:mo>&#x2020;</mml:mo></mml:msup></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:mn>170</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:msup><mml:mn>13</mml:mn><mml:mo>&#x2020;</mml:mo></mml:msup></mml:math></inline-formula></td>
<td>&#x2013;</td>
</tr>
<tr>
<td>OF0</td>
<td><inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:mn>76.1</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>2.8</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:mn>3.5</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>0.3</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:mn>285</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>21</mml:mn></mml:math></inline-formula></td>
<td>2.15&#x002A;&#x002A;</td>
</tr>
<tr>
<td>MRHOF</td>
<td><inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:mn>79.4</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>2.6</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:mn>3.2</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>0.3</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:mn>255</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>19</mml:mn></mml:math></inline-formula></td>
<td>1.89&#x002A;&#x002A;</td>
</tr>
<tr>
<td>DDSLA-RPL</td>
<td><inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:mn>84.0</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>2.4</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:mn>2.0</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>0.2</mml:mn></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:mn>220</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>17</mml:mn></mml:math></inline-formula></td>
<td>1.52&#x002A;&#x002A;</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-7fn1" fn-type="other">
<p>Note: <sup>&#x2020;</sup>p&#x003C;0.001 compared to OF0 baseline; &#x002A;&#x002A;Large effect size (<inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:mi>d</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>0.8</mml:mn></mml:math></inline-formula>)</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>We tested TABURPL&#x2019;s robustness by changing each weight parameter by <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>20% while keeping the total sum equal to 1. <xref ref-type="table" rid="table-8">Table 8</xref> shows the sensitivity analysis results. ETX (<inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:math></inline-formula>) and Link Stability (<inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:math></inline-formula>) show the highest sensitivity with indices of 0.160 and 0.135, respectively. Despite these changes, all configurations maintain PDR above 90%, showing the algorithm is robust. Performance changes stay within acceptable limits, less than 4% across all weight variations.</p>
<table-wrap id="table-8">
<label>Table 8</label>
<caption>
<title>Sensitivity analysis results</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Weight</th>
<th>Metric</th>
<th><inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:math></inline-formula> Performance (PDR)</th>
<th>Sensitivity index</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Residual energy</td>
<td><inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>2.1%</td>
<td>0.105</td>
</tr>
<tr>
<td><inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Transmission energy</td>
<td><inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>1.8%</td>
<td>0.090</td>
</tr>
<tr>
<td><inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Distance</td>
<td><inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>1.2%</td>
<td>0.060</td>
</tr>
<tr>
<td><inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Hop count</td>
<td><inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>0.9%</td>
<td>0.045</td>
</tr>
<tr>
<td><inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>ETX</td>
<td><inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>3.2%</td>
<td>0.160</td>
</tr>
<tr>
<td><inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Link stability</td>
<td><inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula>2.7%</td>
<td>0.135</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We tested TABURPL across different network layouts: random distribution, grid topology, and clustered topology. The protocol achieved PDR improvements of 16.7% <inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> 2.1%, 18.2% <inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> 2.3%, and 15.4% <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> 2.5%, respectively, compared to OF0. We also tested different traffic patterns and found TABURPL maintains superior performance with low variation (coefficient of variation below 0.15).</p>
<p>Convergence analysis of 100 optimization runs shows average convergence time of 87.3 <inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> 12.4 iterations, with 94% converging before iteration 120. The algorithm produces consistent results with low variance (<inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn>0.0031</mml:mn></mml:math></inline-formula>). Statistical power analysis shows we can detect 5% PDR differences with 95% confidence and 10% energy differences with 99% confidence.</p>
<p>Despite these advantages, the centralized nature of TABURPL introduces specific scalability and applicability limits. While the protocol performs robustly up to 200 nodes, in extremely large-scale networks (e.g., <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:mo>&#x003E;</mml:mo><mml:mn>1000</mml:mn></mml:math></inline-formula> nodes), the computational time at the root may exceed the snapshot period, necessitating a hierarchical or distributed approach. Additionally, regarding dynamic topologies, the 90-s optimization cycle is designed for low-mobility scenarios (e.g., environmental monitoring). In highly dynamic environments where link quality changes rapidly (coherence time <inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:mo>&#x003C;</mml:mo><mml:mn>10</mml:mn></mml:math></inline-formula> s), the global optimization might lag behind the physical reality, leading to temporary suboptimal routing. For such cases, a hybrid mechanism combining global TS optimization with local reactive repair would be required.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This paper introduced TABURPL, a Tabu Search-driven enhancement of the RPL routing protocol, aimed at improving energy efficiency, LSR, and overall network performance in IoT environments. By embedding a multi-metric composite cost function into the route selection process at the DODAG root, TABURPL systematically identifies high-quality routing paths that balance residual energy, transmission cost, HC, LSR, ETX, and distance to the sink. Comprehensive simulations in NS-2.34 across various network sizes and traffic loads confirm the protocol&#x2019;s effectiveness. TABURPL consistently outperformed baseline and state-of-the-art RPL variants&#x2014;including OF0, MRHOF, DDSLA-RPL, FTC-OF, CQARPL, and Tabu-RPL&#x2014;on key metrics such as packet delivery ratio, energy consumption, delay, control overhead, and link reliability. Notably, the protocol achieved energy savings exceeding 40%, reduced average end-to-end delay by up to 25%, and maintained LSR above 0.9 in dense and high-traffic conditions. These improvements are achieved with minimal computational overhead, ensuring feasibility on low-cost edge gateways without modifications to sensor nodes. The architecture leverages centralised optimisation at the root, avoids the need for control-plane protocol changes, and remains compatible with legacy MRHOF motes. The use of min&#x2013;max normalization and a calibrated weight vector ensures robust performance across diverse scenarios, while sensitivity and ablation analyses confirm the benefit of each metric.</p>
<p>Future research will explore extensions such as adaptive weight tuning via reinforcement learning, hybrid metaheuristics combining TS with genetic search, and distributed implementations for partially decentralised networks. Testing TABURPL in real-world IoT deployments&#x2014;especially those with mobile or intermittently connected nodes&#x2014;will further validate its scalability and applicability across emerging smart systems.</p>
</sec>
</body>
<back>
<ack>
<p>The authors would like to acknowledge the support provided by their respective universities, which greatly facilitated this research.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The authors received no specific funding for this study.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>Mehran Tarif contributed to the conceptualization, methodology design, algorithm development, simulation implementation, and initial draft preparation. Mohammadhossein Homaei supervised the work, guided the research direction, performed experimental validation, analyzed the results, refined the manuscript, and served as the corresponding author. Abbas Mirzaei was responsible for data curation, simulation setup, performance evaluation, and technical review. Babak Nouri-Moghaddam conducted the literature review, performed statistical analysis, created visualizations, and assisted in manuscript editing. All authors reviewed the results and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>Data available on request from the authors.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>The study involves no human or animal subjects; therefore, ethics approval is not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<app-group id="appg-1">
<app id="app-1">
<title>Appendix A Comprehensive Performance Analysis</title>
<p>This appendix provides additional visual analysis of TABURPL performance compared to six other RPL-based protocols across multiple metrics and network conditions.</p>
<p><bold><italic>Multi-Metric Performance Trends</italic></bold></p>
<p><xref ref-type="fig" rid="fig-10">Fig. A1</xref> shows comprehensive performance trends across eight key metrics under varying traffic loads. The line graphs include 95% confidence intervals and demonstrate several important patterns:</p>
<p><bold>Reliability Metrics:</bold> As shown in the PDR and Loss panels of <xref ref-type="fig" rid="fig-10">Fig. A1</xref>, TABURPL consistently achieves the highest PDR (95% to 92%) and lowest packet loss (4% to 8%) across all traffic conditions. The protocol maintains stable performance even as traffic increases, while other protocols show significant degradation.</p>
<fig id="fig-10">
<label>Figure A1</label>
<caption>
<title>Comprehensive performance trends across eight metrics under varying traffic loads with 95% confidence intervals</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-10.tif"/>
</fig>
<p><bold>Efficiency Metrics:</bold> The Energy and Throughput panels in <xref ref-type="fig" rid="fig-10">Fig. A1</xref> demonstrate that TABURPL uses 40%&#x2013;45% less energy than OF0 and achieves 42&#x2013;44 Mbps compared to OF0&#x2019;s 31&#x2013;34 Mbps, representing approximately 30% improvement.</p>
<p><bold>Latency and Routing Metrics:</bold> <xref ref-type="fig" rid="fig-10">Fig. A1</xref>&#x2019;s Delay and Path Length panels show TABURPL maintaining consistently low end-to-end delay (140&#x2013;220 ms) compared to OF0 (235-350 ms) while achieving shorter routes (3.2&#x2013;4.5 hops).</p>
<p><bold>Network Health Indicators:</bold> The Overhead and Stability Index panels in <xref ref-type="fig" rid="fig-10">Fig. A1</xref> reveal TABURPL maintains minimal control overhead (310&#x2013;420 bytes/min) vs. OF0 (465&#x2013;670 bytes/min) and the highest link stability (0.63&#x2013;0.86) across all conditions.</p>
<p><bold><italic>Multi-Dimensional Performance Comparison</italic></bold></p>
<p><xref ref-type="fig" rid="fig-11">Fig. A2</xref> presents radar charts comparing all protocols across six normalized metrics under medium traffic conditions for 50, 100, and 200 node networks. The larger the area covered by each protocol, the better its overall performance:</p>
<fig id="fig-11">
<label>Figure A2</label>
<caption>
<title>Multi-dimensional protocol performance under medium traffic conditions (Left: 50, Middle: 100, Right: 200 nodes)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-11.tif"/>
</fig>
<p><bold>TABURPL Coverage:</bold> <xref ref-type="fig" rid="fig-11">Fig. A2</xref> shows TABURPL has the largest area in all three network sizes, indicating superior overall performance. The protocol maintains consistent shape and size across different network scales, demonstrating good scalability.</p>
<p><bold>Protocol Differentiation:</bold> <xref ref-type="fig" rid="fig-11">Fig. A2</xref> clearly separates performance levels with TABURPL and Tabu-RPL forming the outer performance tier, while OF0 and MRHOF occupy the inner areas.</p>
<p><bold><italic>Performance Ranking Analysis</italic></bold></p>
<p><xref ref-type="fig" rid="fig-12">Figs. A3</xref>&#x2013;<xref ref-type="fig" rid="fig-14">A5</xref> show performance rankings using heatmaps for 50, 100, and 200 node networks, respectively, where green (rank 1) indicates best performance and red (rank 7) indicates worst performance:</p>
<fig id="fig-12">
<label>Figure A3</label>
<caption>
<title>Performance rankings heatmap for 50-node network (1 &#x003D; best, 7 &#x003D; worst)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-12.tif"/>
</fig>
<fig id="fig-13">
<label>Figure A4</label>
<caption>
<title>Performance rankings heatmap for 100-node network (1 &#x003D; best, 7 &#x003D; worst)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-13.tif"/>
</fig>
<fig id="fig-14">
<label>Figure A5</label>
<caption>
<title>Performance rankings heatmap for 200-node network (1 &#x003D; best, 7 &#x003D; worst)</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_71676-fig-14.tif"/>
</fig>
<p><bold>TABURPL Dominance:</bold> <xref ref-type="fig" rid="fig-12">Figs. A3</xref>&#x2013;<xref ref-type="fig" rid="fig-14">A5</xref> show TABURPL achieves rank 1 (best) in 6&#x2013;7 out of 8 metrics across all network sizes. The consistent green column for TABURPL demonstrates its superior performance.</p>
<p><bold>Consistency Across Scales:</bold> Comparing <xref ref-type="fig" rid="fig-12">Figs. A3</xref>&#x2013;<xref ref-type="fig" rid="fig-14">A5</xref>, ranking patterns remain stable from 50 to 200 nodes, showing TABURPL&#x2019;s robust scalability while other protocols show varying performance.</p>
<p><bold>Protocol Hierarchy:</bold> <xref ref-type="fig" rid="fig-12">Figs. A3</xref>&#x2013;<xref ref-type="fig" rid="fig-14">A5</xref> reveal a clear performance hierarchy: TABURPL &#x003E; Tabu-RPL &#x003E; CQARPL &#x003E; FTC-OF &#x003E; DDSLA-RPL &#x003E; MRHOF &#x003E; OF0, consistent across different network sizes.</p>
<p>These comprehensive visualizations confirm that TABURPL provides superior, balanced, and scalable performance across multiple IoT routing objectives.</p>
</app>
</app-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Ibibo</surname> <given-names>JT</given-names></string-name>, <string-name><surname>Japheth</surname> <given-names>BR</given-names></string-name></person-group>. <article-title>RPL protocol using contiki operating systems: a review</article-title>. In: <conf-name>Proceedings of the Seventh International Conference on Safety and Security with IoT; 2023 Oct 24&#x2013;26</conf-name>; <publisher-loc>Bratislava, Slovakia. Cham, Switzerland</publisher-loc>: <publisher-name>Springer Nature</publisher-name>; <year>2024</year>. p. <fpage>17</fpage>&#x2013;<lpage>34</lpage>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Homaei</surname> <given-names>MH</given-names></string-name>, <string-name><surname>Salwana</surname> <given-names>E</given-names></string-name>, <string-name><surname>Shamshirband</surname> <given-names>S</given-names></string-name></person-group>. <article-title>An enhanced distributed data aggregation method in the internet of things</article-title>. <source>Sensors</source>. <year>2019</year>;<volume>19</volume>(<issue>14</issue>):<fpage>3173</fpage>. doi:<pub-id pub-id-type="doi">10.3390/s19143173</pub-id>; <pub-id pub-id-type="pmid">31323905</pub-id></mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jaisooraj</surname> <given-names>J</given-names></string-name>, <string-name><surname>Madhu Kumar</surname> <given-names>SD</given-names></string-name></person-group>. <article-title>Efficient multicast forwarding in low power and lossy networks under RPL non-storing mode</article-title>. <source>Int J Commun Syst</source>. <year>2024</year>;<volume>37</volume>(<issue>15</issue>):<fpage>e5884</fpage>. doi:<pub-id pub-id-type="doi">10.1002/dac.5884</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bonilla Brito</surname> <given-names>MA</given-names></string-name>, <string-name><surname>Jabba Molinares</surname> <given-names>D</given-names></string-name></person-group>. <article-title>RPL routing metrics for 5G networks: systematic review in IIoT</article-title>. In: <conf-name>2023 IEEE Colombian Caribbean Conference (C3); 2023 Nov 22&#x2013;25</conf-name>; <publisher-loc>Barranquilla, Colombia</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>6</lpage>. doi:<pub-id pub-id-type="doi">10.1109/c358072.2023.10436250</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hussain</surname> <given-names>MZ</given-names></string-name>, <string-name><surname>Hanapi</surname> <given-names>ZM</given-names></string-name></person-group>. <article-title>Efficient secure routing mechanisms for the low-powered IoT network: a literature review</article-title>. <source>Electronics</source>. <year>2023</year>;<volume>12</volume>(<issue>3</issue>):<fpage>482</fpage>. doi:<pub-id pub-id-type="doi">10.3390/electronics12030482</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Tarif</surname> <given-names>M</given-names></string-name>, <string-name><surname>Effatparvar</surname> <given-names>M</given-names></string-name>, <string-name><surname>Moghadam</surname> <given-names>BN</given-names></string-name></person-group>. <article-title>Enhancing energy efficiency of underwater sensor network routing aiming to achieve reliability</article-title>. In: <conf-name>2024 Third International Conference on Distributed Computing and High Performance Computing (DCHPC); 2024 May 14&#x2013;15</conf-name>; <publisher-loc>Tehran, Iran</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>7</lpage>. doi:<pub-id pub-id-type="doi">10.1109/dchpc60845.2024.10454083</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Nandhini</surname> <given-names>PS</given-names></string-name>, <string-name><surname>Kuppuswami</surname> <given-names>S</given-names></string-name>, <string-name><surname>Malliga</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Energy efficient thwarting rank attack from RPL based IoT networks: a review</article-title>. <source>Mater Today Proc</source>. <year>2023</year>;<volume>81</volume>(<issue>7</issue>):<fpage>694</fpage>&#x2013;<lpage>9</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.matpr.2021.04.167</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Maheshwari</surname> <given-names>A</given-names></string-name>, <string-name><surname>Panneerselvam</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Optimizing RPL for load balancing and congestion mitigation in IoT network</article-title>. <source>Wirel Pers Commun</source>. <year>2024</year>;<volume>136</volume>(<issue>3</issue>):<fpage>1619</fpage>&#x2013;<lpage>36</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11277-024-11346-2</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rabet</surname> <given-names>I</given-names></string-name>, <string-name><surname>Fotouhi</surname> <given-names>H</given-names></string-name>, <string-name><surname>Alves</surname> <given-names>M</given-names></string-name>, <string-name><surname>Vahabi</surname> <given-names>M</given-names></string-name>, <string-name><surname>Bj&#x00F6;rkman</surname> <given-names>M</given-names></string-name></person-group>. <article-title>ACTOR: adaptive control of transmission power in RPL</article-title>. <source>Sensors</source>. <year>2024</year>;<volume>24</volume>(<issue>7</issue>):<fpage>2330</fpage>. doi:<pub-id pub-id-type="doi">10.3390/s24072330</pub-id>; <pub-id pub-id-type="pmid">38610541</pub-id></mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Homaei</surname> <given-names>MH</given-names></string-name>, <string-name><surname>Soleimani</surname> <given-names>F</given-names></string-name>, <string-name><surname>Shamshirband</surname> <given-names>S</given-names></string-name>, <string-name><surname>Mosavi</surname> <given-names>A</given-names></string-name>, <string-name><surname>Nabipour</surname> <given-names>N</given-names></string-name>, <string-name><surname>Varkonyi-Koczy</surname> <given-names>AR</given-names></string-name></person-group>. <article-title>An enhanced distributed congestion control method for classical 6LowPAN protocols using fuzzy decision system</article-title>. <source>IEEE Access</source>. <year>2020</year>;<volume>8</volume>:<fpage>20628</fpage>&#x2013;<lpage>45</lpage>. doi:<pub-id pub-id-type="doi">10.1109/access.2020.2968524</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Elmahi</surname> <given-names>MY</given-names></string-name>, <string-name><surname>Osman</surname> <given-names>NIM</given-names></string-name></person-group>. <article-title>Design of a load balancing objective function for RPL</article-title>. <source>J High Speed Network</source>. <year>2024</year>;<volume>30</volume>(<issue>3</issue>):<fpage>297</fpage>&#x2013;<lpage>319</lpage>. doi:<pub-id pub-id-type="doi">10.3233/jhs-230026</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Waysi</surname> <given-names>D</given-names></string-name>, <string-name><surname>Ahmed</surname> <given-names>BT</given-names></string-name>, <string-name><surname>Ibrahim</surname> <given-names>IM</given-names></string-name></person-group>. <article-title>Optimization by nature: a review of genetic algorithm techniques</article-title>. <source>Indones J Comput Sci</source>. <year>2025</year>;<volume>14</volume>(<issue>1</issue>):<fpage>268</fpage>&#x2013;<lpage>84</lpage>. doi:<pub-id pub-id-type="doi">10.33022/ijcs.v14i1.4596</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hemdan</surname> <given-names>EED</given-names></string-name>, <string-name><surname>El-Shafai</surname> <given-names>W</given-names></string-name>, <string-name><surname>Sayed</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Integrating digital twins with IoT-based blockchain: concept, architecture, challenges, and future scope</article-title>. <source>Wirel Pers Commun</source>. <year>2023</year>;<volume>131</volume>(<issue>3</issue>):<fpage>2193</fpage>&#x2013;<lpage>216</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11277-023-10538-6</pub-id>; <pub-id pub-id-type="pmid">37360142</pub-id></mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Gnawali</surname> <given-names>O</given-names></string-name>, <string-name><surname>Levis</surname> <given-names>P</given-names></string-name></person-group>. <article-title>The minimum rank with hysteresis objective function. RFC Editor; 2012. RFC 6719. [cited 2025 Nov 25]</article-title>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.rfc-editor.org/info/rfc6719">https://www.rfc-editor.org/info/rfc6719</ext-link>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Barthel</surname> <given-names>D</given-names></string-name>, <string-name><surname>Vasseur</surname> <given-names>JP</given-names></string-name>, <string-name><surname>Pister</surname> <given-names>K</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>M</given-names></string-name>, <string-name><surname>Dejean</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Routing metrics used for path calculation in low-power and lossy networks. 2012. RFC 6551</article-title>. doi:<pub-id pub-id-type="doi">10.17487/RFC6551</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Touzene</surname> <given-names>A</given-names></string-name>, <string-name><surname>Al Kalbani</surname> <given-names>A</given-names></string-name>, <string-name><surname>Day</surname> <given-names>K</given-names></string-name>, <string-name><surname>Al Zidi</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Performance analysis of a new energy-aware RPL routing objective function for internet of things</article-title>. In: <conf-name>2020 International Conference on Electrical, Communication, and Computer Engineering (ICECCE); 2020 Jun 12&#x2013;13</conf-name>; <publisher-loc>Istanbul, Turkey</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Mishra</surname> <given-names>SN</given-names></string-name>, <string-name><surname>Elappila</surname> <given-names>M</given-names></string-name>, <string-name><surname>Chinara</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Eha-rpl: a composite routing technique in iot application networks</article-title>. In: <conf-name>First International Conference on Sustainable Technologies for Computational Intelligence: Proceedings of ICTSCI 2019</conf-name>. <publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2019</year>. p. <fpage>645</fpage>&#x2013;<lpage>57</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-981-15-0029-9_51</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rana</surname> <given-names>PJ</given-names></string-name>, <string-name><surname>Bhandari</surname> <given-names>KS</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Cho</surname> <given-names>G</given-names></string-name></person-group>. <article-title>EBOF: a new load balancing objective function for low-power and lossy networks</article-title>. <source>IEIE Trans Smart Process Comput</source>. <year>2020</year>;<volume>9</volume>(<issue>3</issue>):<fpage>244</fpage>&#x2013;<lpage>51</lpage>. doi:<pub-id pub-id-type="doi">10.5573/ieiespc.2020.9.3.244</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Seyfollahi</surname> <given-names>A</given-names></string-name>, <string-name><surname>Ghaffari</surname> <given-names>A</given-names></string-name></person-group>. <article-title>A lightweight load balancing and route minimizing solution for routing protocol for low-power and lossy networks</article-title>. <source>Comput Netw</source>. <year>2020</year>;<volume>179</volume>(<issue>4</issue>):<fpage>107368</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.comnet.2020.107368</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Homaei</surname> <given-names>MH</given-names></string-name>, <string-name><surname>Band</surname> <given-names>SS</given-names></string-name>, <string-name><surname>Pescape</surname> <given-names>A</given-names></string-name>, <string-name><surname>Mosavi</surname> <given-names>A</given-names></string-name></person-group>. <article-title>DDSLA-RPL: dynamic decision system based on learning automata in the RPL protocol for achieving QoS</article-title>. <source>IEEE Access</source>. <year>2021</year>;<volume>9</volume>:<fpage>63131</fpage>&#x2013;<lpage>48</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2021.3075378</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zahedy</surname> <given-names>N</given-names></string-name>, <string-name><surname>Barekatain</surname> <given-names>B</given-names></string-name>, <string-name><surname>Quintana</surname> <given-names>AA</given-names></string-name></person-group>. <article-title>RI-RPL: a new high-quality RPL-based routing protocol using Q-learning algorithm</article-title>. <source>J Supercomput</source>. <year>2023</year>;<volume>80</volume>(<issue>6</issue>):<fpage>7691</fpage>&#x2013;<lpage>749</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11227-023-05724-z</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Duenas Santos</surname> <given-names>CL</given-names></string-name>, <string-name><surname>Mezher</surname> <given-names>AM</given-names></string-name>, <string-name><surname>Astudillo Le&#x00F3;n</surname> <given-names>JP</given-names></string-name>, <string-name><surname>Cardenas Barrera</surname> <given-names>J</given-names></string-name>, <string-name><surname>Castillo Guerra</surname> <given-names>E</given-names></string-name>, <string-name><surname>Meng</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Q-RPL: Q-learning-based routing protocol for advanced metering infrastructure in smart grids</article-title>. <source>Sensors</source>. <year>2024</year>;<volume>24</volume>(<issue>15</issue>):<fpage>4818</fpage>. doi:<pub-id pub-id-type="doi">10.3390/s24154818</pub-id>; <pub-id pub-id-type="pmid">39123865</pub-id></mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hassani</surname> <given-names>AE</given-names></string-name>, <string-name><surname>Sahel</surname> <given-names>A</given-names></string-name>, <string-name><surname>Badri</surname> <given-names>A</given-names></string-name></person-group>. <article-title>FTC-OF: forwarding traffic consciousness objective function for RPL routing protocol</article-title>. <source>Int J Electr Electron Eng Telecommun</source>. <year>2021</year>;<fpage>168</fpage>&#x2013;<lpage>75</lpage>. doi:<pub-id pub-id-type="doi">10.18178/ijeetc.10.3.168-175</pub-id>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kaviani</surname> <given-names>F</given-names></string-name>, <string-name><surname>Soltanaghaei</surname> <given-names>M</given-names></string-name></person-group>. <article-title>CQARPL: congestion and QoS-aware RPL for IoT applications under heavy traffic</article-title>. <source>J Supercomput</source>. <year>2022</year>;<volume>78</volume>(<issue>14</issue>):<fpage>16136</fpage>&#x2013;<lpage>66</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11227-022-04488-2</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jagir Hussain</surname> <given-names>S</given-names></string-name>, <string-name><surname>Roopa</surname> <given-names>M</given-names></string-name></person-group>. <article-title>BE-RPL: balanced-load and energy-efficient RPL</article-title>. <source>Comput Syst Sci Eng</source>. <year>2023</year>;<volume>45</volume>(<issue>1</issue>):<fpage>785</fpage>&#x2013;<lpage>801</lpage>. doi:<pub-id pub-id-type="doi">10.32604/csse.2023.030393</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Idrees</surname> <given-names>AK</given-names></string-name>, <string-name><surname>Witwit</surname> <given-names>AJH</given-names></string-name></person-group>. <article-title>Energy-efficient load-balanced RPL routing protocol for internet of things networks</article-title>. <source>Int J Internet Technol Secured Trans</source>. <year>2021</year>;<volume>11</volume>(<issue>3</issue>):<fpage>286</fpage>. doi:<pub-id pub-id-type="doi">10.1504/ijitst.2021.114930</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Prajapati</surname> <given-names>VK</given-names></string-name>, <string-name><surname>Sharma</surname> <given-names>TP</given-names></string-name>, <string-name><surname>Awasthi</surname> <given-names>LK</given-names></string-name></person-group>. <article-title>Data dissemination framework for optimizing overhead in IoT-enabled systems using Tabu-RPL</article-title>. <source>SN Comput Sci</source>. <year>2024</year>;<volume>5</volume>(<issue>4</issue>):<fpage>343</fpage>. doi:<pub-id pub-id-type="doi">10.1007/s42979-024-02694-8</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Gurav</surname> <given-names>S</given-names></string-name>, <string-name><surname>Chakraborty</surname> <given-names>L</given-names></string-name>, <string-name><surname>Raghava Rao</surname> <given-names>N</given-names></string-name>, <string-name><surname>Funk</surname> <given-names>P</given-names></string-name>, <string-name><surname>Dasari</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Multi-objective optimal 4-phase RPl routing technique using chimp sine cosine algorithm for IoT system</article-title>. <source>Wirel Netw</source>. <year>2025</year>;<volume>31</volume>(<issue>4</issue>):<fpage>3297</fpage>&#x2013;<lpage>313</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11276-025-03920-8</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mokrani</surname> <given-names>S</given-names></string-name>, <string-name><surname>Belkadi</surname> <given-names>M</given-names></string-name>, <string-name><surname>Sadoun</surname> <given-names>T</given-names></string-name>, <string-name><surname>Lloret</surname> <given-names>J</given-names></string-name>, <string-name><surname>Aoudjit</surname> <given-names>R</given-names></string-name></person-group>. <article-title>LEA-RPL: lightweight energy-aware RPL protocol for internet of things based on particle swarm optimization</article-title>. <source>Telecommun Syst</source>. <year>2025</year>;<volume>88</volume>(<issue>1</issue>):<fpage>14</fpage>. doi:<pub-id pub-id-type="doi">10.1007/s11235-024-01254-y</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Texas Instruments</collab></person-group>. <article-title>CC2538 Powerful Wireless Microcontroller System-On-Chip for 2.4-GHz IEEE 802.15.4, 6LoWPAN, and ZigBee Applications. Texas Instruments; 2015. SWRS096D. Datasheet. [cited 2025 Nov 25]</article-title>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.ti.com/lit/ds/symlink/cc2538.pdf">https://www.ti.com/lit/ds/symlink/cc2538.pdf</ext-link>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Darabkh</surname> <given-names>KA</given-names></string-name>, <string-name><surname>Al-Akhras</surname> <given-names>M</given-names></string-name>, <string-name><surname>Zomot</surname> <given-names>JN</given-names></string-name>, <string-name><surname>Atiquzzaman</surname> <given-names>M</given-names></string-name></person-group>. <article-title>RPL routing protocol over IoT: a comprehensive survey, recent advances, insights, bibliometric analysis, recommendations, and future directions</article-title>. <source>J Netw Comput Appl</source>. <year>2022</year>;<volume>207</volume>(<issue>2</issue>):<fpage>103476</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jnca.2022.103476</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Kevin</surname> <given-names>F</given-names></string-name>, <string-name><surname>Kannan</surname> <given-names>V</given-names></string-name></person-group>. <article-title>The ns Manual (formerly ns Notes and Documentation). Berkeley, CA, USA: The VINT Project, UC Berkeley, LBL, USC/ISI, and Xerox PARC; 2011. Online manual. [cited 2025 Nov 25]</article-title>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.isi.edu/nsnam/ns/">https://www.isi.edu/nsnam/ns/</ext-link>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tarif</surname> <given-names>M</given-names></string-name>, <string-name><surname>Homaei</surname> <given-names>M</given-names></string-name>, <string-name><surname>Mosavi</surname> <given-names>A</given-names></string-name></person-group>. <article-title>An enhanced fuzzy routing protocol for energy optimization in the underwater wireless sensor networks</article-title>. <source>Comput Mater Contin</source>. <year>2025</year>;<volume>83</volume>(<issue>2</issue>):<fpage>1791</fpage>&#x2013;<lpage>820</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmc.2025.063962</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Homaei</surname> <given-names>M</given-names></string-name>, <string-name><surname>Di Bartolo</surname> <given-names>AJ</given-names></string-name>, <string-name><surname>Molano G&#x00F3;mez</surname> <given-names>R</given-names></string-name>, <string-name><surname>Rodr&#x00ED;guez</surname> <given-names>PG</given-names></string-name>, <string-name><surname>Caro</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Enabling RPL on the internet of underwater things</article-title>. <source>J Netw Syst Manag</source>. <year>2025</year>;<volume>33</volume>(<issue>3</issue>):<fpage>55</fpage>. doi:<pub-id pub-id-type="doi">10.1007/s10922-025-09925-0</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Nait Abbou</surname> <given-names>A</given-names></string-name>, <string-name><surname>Manner</surname> <given-names>J</given-names></string-name></person-group>. <article-title>ETXRE: energy and delay efficient routing metric for RPL protocol and wireless sensor networks</article-title>. <source>IET Wirel Sens Syst</source>. <year>2023</year>;<volume>13</volume>(<issue>6</issue>):<fpage>235</fpage>&#x2013;<lpage>46</lpage>. doi:<pub-id pub-id-type="doi">10.1049/wss2.12070</pub-id>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kumar</surname> <given-names>K</given-names></string-name>, <string-name><surname>Kumar</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Energy efficient link stable routing in internet of things</article-title>. <source>Int J Inf Technol</source>. <year>2018</year>;<volume>10</volume>(<issue>4</issue>):<fpage>465</fpage>&#x2013;<lpage>79</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s41870-018-0141-0</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>












