<?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">CMES</journal-id>
<journal-id journal-id-type="nlm-ta">CMES</journal-id>
<journal-id journal-id-type="publisher-id">CMES</journal-id>
<journal-title-group>
<journal-title>Computer Modeling in Engineering &#x0026; Sciences</journal-title>
</journal-title-group>
<issn pub-type="epub">1526-1506</issn>
<issn pub-type="ppub">1526-1492</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">66589</article-id>
<article-id pub-id-type="doi">10.32604/cmes.2025.066589</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Deep Auto-Encoder Based Intelligent and Secure Time Synchronization Protocol (iSTSP) for Security-Critical Time-Sensitive WSNs</article-title>
<alt-title alt-title-type="left-running-head">Deep Auto-Encoder Based Intelligent and Secure Time Synchronization Protocol (iSTSP) for Security-Critical Time-Sensitive WSNs</alt-title>
<alt-title alt-title-type="right-running-head">Deep Auto-Encoder Based Intelligent and Secure Time Synchronization Protocol (iSTSP) for Security-Critical Time-Sensitive WSNs</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Abdul-Rashid</surname><given-names>Ramadan</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Rahman</surname><given-names>Mohd Amiruddin Abd</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><email>mohdamir@upm.edu.my</email></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Barnawi</surname><given-names>Abdulaziz Yagoub</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<aff id="aff-1"><label>1</label><institution>Department of Physics, Faculty of Science, Universiti Putra Malaysia</institution>, UPM, <addr-line>Serdang, 43400</addr-line>, <country>Malaysia</country></aff>
<aff id="aff-2"><label>2</label><institution>Department of Computer Engineering, King Fahd University of Petroleum and Minerals</institution>, Dhahran, <addr-line>31261</addr-line>, <country>Saudi Arabia</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Mohd Amiruddin Abd Rahman. Email: <email>mohdamir@upm.edu.my</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2025</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>30</day><month>09</month><year>2025</year>
</pub-date>
<volume>144</volume>
<issue>3</issue>
<fpage>3213</fpage>
<lpage>3250</lpage>
<history>
<date date-type="received">
<day>11</day>
<month>4</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>19</day>
<month>8</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2025 The Authors.</copyright-statement>
<copyright-year>2025</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_CMES_66589.pdf"></self-uri>
<abstract>
<p>Accurate time synchronization is fundamental to the correct and efficient operation of Wireless Sensor Networks (WSNs), especially in security-critical, time-sensitive applications. However, most existing protocols degrade substantially under malicious interference. We introduce <italic>iSTSP</italic>, an Intelligent and Secure Time Synchronization Protocol that implements a four-stage defense pipeline to ensure robust, precise synchronization even in hostile environments: (1) trust preprocessing that filters node participation using behavioral trust scoring; (2) anomaly isolation employing a lightweight autoencoder to detect and excise malicious nodes in real time; (3) reliability-weighted consensus that prioritizes high-trust nodes during time aggregation; and (4) convergence-optimized synchronization that dynamically adjusts parameters using theoretical stability bounds. We provide rigorous convergence analysis including a closed-form expression for convergence time, and validate the protocol through both simulations and real-world experiments on a controlled 16-node testbed. Under Sybil attacks with five malicious nodes within this testbed, iSTSP maintains synchronization error increases under 12% and achieves a rapid convergence. Compared to state-of-the-art protocols like TPSN, SE-FTSP, and MMAR-CTS, iSTSP offers 60% faster detection, broader threat coverage, and more than 7 times lower synchronization error, with a modest 9.3% energy overhead over 8 h. We argue this is an acceptable trade-off for mission-critical deployments requiring guaranteed security. These findings demonstrate iSTSP&#x2019;s potential as a reliable solution for secure WSN synchronization and motivate future work on large-scale IoT deployments and integration with energy-efficient communication protocols.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Time-sensitive wireless sensor networks (TS-WSNs)</kwd>
<kwd>secure time synchronization protocol</kwd>
<kwd>trust-based authentication</kwd>
<kwd>autoencoder model</kwd>
<kwd>deep learning</kwd>
<kwd>malicious node detection</kwd>
<kwd>Internet of Things</kwd>
<kwd>energy-efficient communication protocols</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>thank Universiti Putra Malaysia</funding-source>
<award-id>GP-GPI/2023/9762100</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>WSNs have transformed the way we collect and handle data in a variety of disciplines, from environmental monitoring to industrial automation. These networks are made up of little, resource-constrained sensor nodes dispersed across a certain area, cooperating to gather and transmit data to a central sink or gateway [<xref ref-type="bibr" rid="ref-1">1</xref>]. Time synchronization, which requires the nodes to maintain a consistent sense of time to successfully coordinate their operations, is one of the fundamental conditions for the accurate operation of WSNs.</p>
<p>Time synchronization is essential in WSNs for a number of reasons. It is essential to many applications, including target tracking, event detection, and data aggregation. It also makes it possible to combine accurate data in an energy-efficient manner. Many time synchronization techniques have been developed and implemented in WSNs with the goal of achieving a balance between synchronization accuracy and resource efficiency [<xref ref-type="bibr" rid="ref-2">2</xref>]. Time synchronization protocols allow sensor nodes to align their internal clocks, promoting data coherence and efficient network administration. The inherent characteristics of WSNs make them vulnerable to security attacks. These characteristics include [<xref ref-type="bibr" rid="ref-3">3</xref>]:
<list list-type="simple">
<list-item><label>1.</label><p>Limited resources: The processing speed, memory, and energy of sensor nodes are all finite. This makes elaborate security methods harder to implement.</p></list-item>
<list-item><label>2.</label><p>Exposed and hostile environments: WSNs are frequently deployed in open and dangerous locations, such as battlefields or disaster zones. As a result, they are subject to physical attacks and eavesdropping.</p></list-item>
<list-item><label>3.</label><p>Absence of central security control: The security management in WSNs is not centralized. As a result, it is challenging to implement security regulations and to recognize and stop attacks.</p></list-item>
</list></p>
<p>One of the most important security threats in the WSN network is the spoofing of time synchronization protocols. By manipulating the message timestamps, an attacker can disrupt the normal operation of the network, such as by injecting fake data, delaying the message, or replaying old messages. To secure the time synchronization protocols in WSN, some studies [<xref ref-type="bibr" rid="ref-4">4</xref>&#x2013;<xref ref-type="bibr" rid="ref-7">7</xref>] have suggested various techniques to combat attacks, such as:
<list list-type="simple">
<list-item><label>1.</label><p>Using cryptography to secure communications between sensor nodes.</p></list-item>
<list-item><label>2.</label><p>Applying algorithms to validate the authenticity of sensor nodes in a sensor field.</p></list-item>
<list-item><label>3.</label><p>Implementing secure detection and routing to prevent attackers from injecting malicious messages into the network.</p></list-item>
</list></p>
<p>To address these challenges, we propose the Intelligent and Secure Time Synchronization Protocol (iSTSP), a novel solution that integrates deep learning-based anomaly detection with adaptive control theory in a structured four-stage defense pipeline. iSTSP&#x2019;s architecture systematically mitigates threats while maintaining high synchronization accuracy:
<list list-type="simple">
<list-item><label>1.</label><p>Trust Preprocessing&#x2014;Filters out untrusted nodes before synchronization begins using dynamic trust scoring, reducing the attack surface by 63%.</p></list-item>
<list-item><label>2.</label><p>Anomaly Isolation&#x2014;Detects and excludes compromised nodes in real time using an autoencoder-based model, achieving 92% Sybil attack detection within a single synchronization round.</p></list-item>
<list-item><label>3.</label><p>Reliability-Weighted Consensus&#x2014;Prioritizes high-trust nodes during time aggregation, limiting malicious influence by 7.2<inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> compared to unweighted methods.</p></list-item>
<list-item><label>4.</label><p>Convergence-Optimized Synchronization&#x2014;Dynamically adjusts synchronization parameters using a closed-form convergence time model, reducing synchronization error by 38% under attack conditions.</p></list-item>
</list></p>
<p>Our key contributions include:
<list list-type="simple">
<list-item><label>1.</label><p>A four-stage defense pipeline that sequentially filters, isolates, weights, and optimizes synchronization for robustness.</p></list-item>
<list-item><label>2.</label><p>Rigorous theoretical analysis, including stability proofs, asymptotic error bounds, and a closed-form convergence time expression.</p></list-item>
<list-item><label>3.</label><p>Real-world validation on a 16-node testbed, demonstrating iSTSP&#x2019;s superiority over existing protocols (AvgPISync, SE-FTSP, and MMAR-CTS) in attack resilience, convergence speed, and energy efficiency.</p></list-item>
</list></p>
<p>This work establishes the feasibility and core benefits of the iSTSP approach through rigorous theoretical analysis and validation on a controlled 16-node laboratory testbed using MICAz motes. While the protocol design is general, the experimental evaluation focuses on demonstrating its effectiveness under specific adversarial conditions manageable within this testbed scope. It bridges the gap between theoretical security guarantees and practical deployment, offering a scalable solution for mission-critical WSN applications in adversarial environments.</p>
<p>The rest of the paper is organized as follows: <xref ref-type="sec" rid="s2">Section 2</xref> discusses related works in terms of secure clock syncronization in WSNs. <xref ref-type="sec" rid="s3">Section 3</xref> formulates the WSN system model to lay the foundation for the design of secure time synchronization protocol. <xref ref-type="sec" rid="s4">Section 4</xref> presents the suggested synchronization framework. <xref ref-type="sec" rid="s5">Section 5</xref> conducts the theoretical convergence analysis of synchronization. <xref ref-type="sec" rid="s6">Section 6</xref> presents the design of the iSTSP protocol that performs secure multi-hop global synchronization of WSN nodes. In <xref ref-type="sec" rid="s7">Section 7</xref>, a thorough performance evaluation of the protocol using both simulations and real-time synchronization is presented. Lastly, <xref ref-type="sec" rid="s8">Section 8</xref> concludes the paper.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Works</title>
<p>Many techniques have been proposed to solve the problem of security in addressing clock synchronization problem. Traditional protocols such as the Flooding Time Synchronization Protocol (FTSP), and Timing-sync Protocol for Sensor Networks (TPSN) [<xref ref-type="bibr" rid="ref-8">8</xref>] introduced a hierarchical mechanisms involving level discovery and pairwise synchronization using a two-way message exchange. TPSN for example achieves sub-microsecond accuracy in ideal conditions, but it assumes a benign environment and is highly susceptible to adversarial delay injection and replay attacks, as it lacks any built-in authentication or anomaly detection mechanisms.</p>
<p>To enhance resilience, cryptographic extensions have been proposed. The Secure Flooding Time Synchronization Protocol (SE-FTSP) enhances the original FTSP by integrating message authentication codes (MACs) into synchronization packets [<xref ref-type="bibr" rid="ref-9">9</xref>]. SE-FTSP prevents simple spoofing and replay attacks by ensuring that only authenticated messages contribute to clock updates. While this approach secures the protocol against unauthorized time sources, it does not mitigate subtle timing manipulations or insider threats, and it introduces overhead due to cryptographic operations.</p>
<p>In [<xref ref-type="bibr" rid="ref-10">10</xref>], the authors investigated the large-scale Internet of Things&#x2019; safe time synchronization and presented a secure clock model that can identify hostile nodes and avoid the use of malicious timestamps to prevent external attacks. A secure time synchronization protocol was developed to prevent fake timestamps. The model was evaluated using NS2 and compared to previous protocols TPSN and STETS, demonstrating its effectiveness in preventing malicious nodes attacks.</p>
<p>A secure time synchronization protocol based on node identification was also presented by Wang et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] after they researched the design and analysis of secure time synchronization algorithms for resource-constrained industrial WSNs under the Sybil attack. Instead of isolating suspicious nodes, the main concept is to use the timestamp correlation between various nodes and the distinctiveness of the node clock offset to detect erroneous information.</p>
<p>In order to reduce external attacks and react to changes in topology, Fan et al. suggested a blockchain-based solution [<xref ref-type="bibr" rid="ref-12">12</xref>]. This approach primarily employed a closed blockchain to record and broadcast the clock information of nodes. The scheme uses POS consensus for efficient time synchronization, achieving high efficiency and reduced communication costs, according to the analysis results.</p>
<p>The authors in [<xref ref-type="bibr" rid="ref-13">13</xref>] studied the clock synchronization security problem and suggested methods that takes into account malicious attacks in sensor networks and proposed a technique based on detect and compensate for attacks using maximum consensus protocol. Techniques for detecting binary attacks variable in their method was based on the removing received malicious node clocks in the synchronization process.</p>
<p>Jha et al. [<xref ref-type="bibr" rid="ref-14">14</xref>] analyzed and evaluated the behavior of consensus-based time synchronization (CTS) algorithms under message manipulation attacks using simulation-based analysis. Their simulation results showed that the proposed Message Manipulation Attack Resilient CTS (MMAR-CTS) algorithm outperforms other candidate algorithms in terms of convergence speed and synchronization error. MMAR-CTS (Multi-Model Adversarial Resilient Clock-Time Sync) uses statistical residual analysis to detect and isolate malicious nodes based on deviations from expected timing patterns [<xref ref-type="bibr" rid="ref-15">15</xref>]. By combining multiple prediction models and applying statistical hypothesis testing, MMAR-CTS detects manipulation and Sybil attacks with moderate detection latency. However, this method requires fine-tuning of residual thresholds and incurs significant computational cost for multi-model evaluations.</p>
<p>Using dynamic control theory, Xuan et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] examined the viability of the Kalman filter based on resolving the error brought on by CPU interrupt and other factors. The Kalman filter-optimized precise time synchronization protocol outperforms the protocol without the filter in terms of accuracy and stability in estimation error of clock offset and clock skew rate. This approach is particularly effective for single-hop and multi-hop synchronization, with significant advantages for larger observation noise. The Kalman filter effectively filters out synchronization noise and suppresses transmission of synchronization errors, thereby enhancing the network&#x2019;s expansion.</p>
<p>Another recent work by Jha et al. in [<xref ref-type="bibr" rid="ref-17">17</xref>] suggested a novel sybil resilient consensus time synchronization protocol (SRCTS) for WSNs to detect and filter sybil messages. The protocol uses a graph-theoretic approach and a connected component strategy to detect sybil messages at the message level. Simulation results show that SRCTS has a higher sybil message detection rate compared to existing protocols, the robust and secure Time Synchronization Protocol (RTSP) and the node-identification-based secure time synchronization protocols (NiSTS), with a 6% improvement compared to RTSP and a 14% improvement compared to NiSTS. The SRCTS algorithm is also shown to be more effective and efficient in terms of convergence rate compared to NiSTS and RTSP.</p>
<p>Recently, reference [<xref ref-type="bibr" rid="ref-18">18</xref>] proposes an improved version of intrusion detection systems (IDSs) called multipath intrusion detection system (MIDS) to limit the hostile impact of packet-dropping attacks in a Low Energy Adaptive Clustering Hierarchy (LEACH) environment. The system integrates IDs with ad hoc on-demand Multipath Distance Vector (AOMDV) protocol, calculating intrusion ratio (IR) to mitigate sinkhole attacks and round trip time (RTT) to mitigate wormhole attacks. The proposed MIDS algorithm shows efficiency in terms of energy consumption, lifetime, and network throughput.</p>
<p>To the best of authors&#x2019; knowledge, previous works show that there is no single solution available to completely secure time synchronization protocols in the WSN. Each of them covers multiple targeted applications with different adaptive time synchronization strategies. The best approach employed by most of previous works was to use a combination of security mechanisms to reduce the risk of attacks on the time synchronization protocol or introduce these mechanisms in the protocol itself. The work presented in this paper also utilized hybrid approach for securing time synchronization protocol, but different from previous works. We first utilize the trust based authetication technique between nodes, we detect malicious node using an artificial intellgence based approach, and lastly we propose a dynamic weighted time synchronization approach for optimal syncronization accross network&#x2019;s node.</p>
<p>While this work focuses on time-delay based Sybil attacks where a single malicious node injects variable timestamp delays to multiple identities full identity-forging Sybil attacks (i.e. virtual-identity injection) are orthogonal to our synchronization-accuracy threat model. Techniques such as robust identity management or certificate-based node authentication can be layered on top of iSTSP. We leave the integration of such schemes as future work.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>WSN System Model</title>
<p>Time synchronization is a crucial need in WSNs, ensuring that sensor nodes maintain constant and accurate clocks to enable coordinated data gathering, processing, and transfer. However, achieving accurate time synchronization in the face of clock errors, network topological restrictions, transmission delays, and possible threats presents formidable difficulties [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
<sec id="s3_1">
<label>3.1</label>
<title>Network Model</title>
<p>The sensor nodes in the WSN are linked together by wireless communication lines. Since nodes can join or leave the network and communication links might have varying degrees of availability and quality, the network topology is by its very nature dynamic [<xref ref-type="bibr" rid="ref-20">20</xref>]. In the network model, nodes that are within communication range of one another are referred to as neighbors. Gateway nodes also act as hubs for data gathering and coordination, which is essential for time synchronization [<xref ref-type="bibr" rid="ref-12">12</xref>]. The hardware clock of the gateway node, <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:math></inline-formula>, acts as a source in the absence of an external clock source and is tracked for synchronization by all other sensor nodes, as shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. In this paradigm, nodes <italic>i</italic> and <italic>j</italic> are 1-hop neighbors of the gateway node, <italic>g</italic>, and communicate clock values to their 1-hop neighbors as well as occasionally receiving clock values from the gateway, <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:math></inline-formula>. Each node uses a synchronization algorithm to update its clock value utilizing the current clock value and received neighborhood clock values after a predetermined number of packet exchanges after which global network synchronization is expected within acceptable error margins [<xref ref-type="bibr" rid="ref-21">21</xref>].</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Model network for clock synchronization: where the synchronization of each node&#x2019;s clock to the clock of a gateway node is accomplished through the exchange of neighborhood clock information between nodes, <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:math></inline-formula></title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-1.tif"/>
</fig>
<p>Assume a WSN has symmetric links and hence can be represented by an undirected graph <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mrow><mml:mrow><mml:mi>&#x1D4A2;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> where the sensor nodes of the network as the vertex set, <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula> is the cardinality of <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> and the connectivity between these nodes as an edge set, <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mtext>such that</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> if nodes <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>j</mml:mi></mml:math></inline-formula> can send information to each other. Such nodes that directly communicate with node <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi>i</mml:mi></mml:math></inline-formula> are referred to as the neighbors of <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>i</mml:mi></mml:math></inline-formula> and represented by the set, <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>=</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>v</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> of cardinality <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Clock Model</title>
<p>The consequences of clock inaccuracies are significant because nodes with inaccurate clocks may induce synchronization issues, leading to misalignment and inconsistent temporal coordination in the network. In a WSN, each node is equipped with a hardware clock, <italic>T</italic> which is designed using a crystal oscillator. Since the nominal operating frequency of these oscillators vary due to changes in temperature, and aging, the hardware clocks exhibit drifts. We adopt the definition of a hardware clock given in [<xref ref-type="bibr" rid="ref-2">2</xref>], where the hardware clock value, <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of an arbitrary WSN node <italic>i</italic> at time <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>t</mml:mi><mml:mo>&#x003E;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> is modeled in terms of an initial clock value, <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and the oscillator frequency, <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> as
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi></mml:math></disp-formula>where <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are, respectively, the lower and upper bounds of the nominal frequency of the oscillator, <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and the drift dynamics of the clock is modeled as
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is uniformly distributed between <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>Since the physical clock parameters of a node cannot be modified, each node maintains a logical clock <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> that is a function, <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo>.</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> of the initial physical and logical clock values, current physical clock value <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and a logical clock rate <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>:
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>The logical clock speed <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> depends on the relative frequency estimate <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mfrac><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:math></inline-formula>. The clocks can be kept synchronized by recursively updating the logical clock offset <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and rate <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> using an adaptive approach.</p>
<p>We assume the gateway&#x2019;s clock ticks with perfect regularity. This means it advances by a ticking rate <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> with each tick. The clock value of the gateway, <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:math></inline-formula> at time <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>t</mml:mi></mml:math></inline-formula> at any given tick can then be expressed as:
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>k</mml:mi></mml:math></inline-formula> is a non-negative integer representing the tick count. The corresponding gateway clock frequency <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:msub><mml:mi>f</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:math></inline-formula> of this perfect clock is defined as the inverse of the time interval between ticks:
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:msub><mml:mi>f</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Malicious Node Attack Models</title>
<p>The potential existence of hostile nodes that purposefully interfere with synchronization operations causes security flaws in time synchronization. In this section we present the two attack models considered in our protocol design. The models are the malicious node mode and the delay attack models.</p>
<sec id="s3_3_1">
<label>3.3.1</label>
<title>Delay Attack Model</title>
<p>Wireless communication is prone to transmission delays, which can have a big impact on time synchronization. The propagation, queueing, and processing delays that occur during message transmission between nodes are included in the delay model [<xref ref-type="bibr" rid="ref-22">22</xref>]. These delays impair the precise alignment of clocks by introducing uncertainty and asynchronicity into message exchange. Let <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> denote the transmission delay between nodes <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mi>t</mml:mi></mml:math></inline-formula>. The delay model captures the temporal offset introduced by delays:
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mtext>prop</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mtext>queue</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mtext>proc</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></disp-formula>where <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mtext>prop</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> represents propagation delay, <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mtext>queue</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is queuing delay, and <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mtext>proc</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> represents processing delay.</p>
<p>In order to induce faults and inconsistencies, malicious nodes stray from the recommended synchronization technique. These nodes may broadcast erroneous synchronization messages, alter message timings, or make an effort to desynchronize nearby nodes. The dynamics of a malicious node <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> can be modeled as:
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> represents the malicious deviation from the true logical clock which can be modeled as white noise.</p>
<p>This attack can also be based on artificial delaying message transmission by adding <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to delay, <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> between node <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>i</mml:mi></mml:math></inline-formula> and its neighbors aimed at preventing synchronization. These attacks may cause incorrect synchronization assumptions between nearby nodes, resulting in misalignment and undermining of the correctness of the overall synchronization. The malicious deviation, <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> can be modeled as <italic>white</italic> or <italic>colored</italic> stochastic noise which is characterized by flat power spectral frequencies across all frequencies and can introduce widespread random disruptions on clock signals in the form of erratic jitters and deviations in clock values and frequency making it challenging to predict and counteract.</p>
</sec>
<sec id="s3_3_2">
<label>3.3.2</label>
<title>Sybil Attack Model</title>
<p>A Sybil attacker introduces a set of fake identities <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mrow><mml:mrow><mml:mi>&#x1D4AE;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><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>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> into the network such that <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mrow><mml:mrow><mml:mi>&#x1D4AE;</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2229;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x2205;</mml:mi></mml:math></inline-formula>. These identities falsely appear as legitimate nodes to neighbors and participate in clock synchronization exchanges with manipulated timing data.</p>
<p>Let node <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> be a legitimate sensor node with a neighbor <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. Suppose that <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>j</mml:mi></mml:math></inline-formula> is a Sybil node or influenced by a Sybil attacker. The goal of the Sybil attacker is to disrupt the time synchronization process by injecting inconsistent or misleading timing information.</p>
<p>Each Sybil identity <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:msub><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4AE;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> reports a forged clock value at time <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:math></inline-formula>, denoted as:
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is an arbitrary deviation from the true gateway clock value <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, possibly designed to disrupt consensus. The attacker may adapt <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to bias synchronization depending on the synchronization algorithm used.</p>
<p>Node <italic>i</italic> typically uses information from its neighborhood <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to update its local clock. The update rule (e.g., averaging or weighted consensus) can then be expressed as:
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>where:</p>
<p><inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula> is a step size,</p>
<p><inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is a weight assigned to neighbor <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mi>j</mml:mi></mml:math></inline-formula> (typically based on trust, distance, or static topology),</p>
<p><inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the clock value by neighbor <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p>However, if Sybil nodes are present in <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, the update becomes:
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mrow><mml:mtext>legit</mml:mtext></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:munder><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mrow><mml:mtext>sybil</mml:mtext></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:munder><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>here: <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:msubsup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:mtext>legit</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2282;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the set of legitimate neighbors, <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:msubsup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:mtext>sybil</mml:mtext></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2229;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4AE;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> is the set of Sybil identities within <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:mi>i</mml:mi></mml:math></inline-formula>&#x2019;s neighborhood.</p>
<p>If the sum of weights of Sybil neighbors is large or if the <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> values are skewed, node <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mi>i</mml:mi></mml:math></inline-formula>&#x2019;s clock update may drift significantly from the true time.</p>
<p>We can quantify the clock skew induced by Sybil influence at node <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mi>i</mml:mi></mml:math></inline-formula> over time as:
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>A rapid increase in <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> or a consistently high value suggests possible Sybil interference.</p>
</sec>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Problem Formulation</title>
<p>Examining the clock model, network topology, delay model, and various attack scenarios is necessary for formalizing the difficulties of secure time synchronization. The problem formulation aims to establish accurate and secure time synchronization by accounting for clock errors, communication delays, and adversarial behaviors. This requires developing synchronization techniques that reduce the impact of clock variances, make use of network topology, and guard against malicious behavior.</p>
<p>WSNs need an integrated method for secure and intelligent time synchronization due to the combined effects of clock imperfections, network topology, communication delays, and potential assaults.</p>
<p>We propose a thorough system that handles these issues in the subsequent chapters, combining trust-based authentication, malicious node identification, adaptive clock updates, and selective synchronization techniques. Our suggested framework attempts to establish robust and secure time synchronization framework in WSNs by combining these methods in an optimized manner.</p>
<p>Our protocol operates under the practical assumption that:
<list list-type="simple">
<list-item><label>1.</label><p>The system is partially synchronous (i.e., bounded delay assumptions hold in real WSNs).</p></list-item>
<list-item><label>2.</label><p>Trust-based authentication allows nodes to selectively synchronize with more reliable peers, mitigating the effects of attacks.</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Suggested Framework for Intelligent Secure Synchronization</title>
<p>Achieving secure time synchronization in WSNs necessitates a comprehensive solution that covers both dependability and resistance against hostile behaviors. The proposed system combines cutting-edge methods for adaptive clock updates, malicious node identification, trust-based neighborhood authentication, and selective clock update to build a solid framework for precise and secure synchronization between sensor nodes.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Trust Based Neighborhood Authentication</title>
<p>Establishing trust among neighboring nodes is critical for dependable time synchronization. Trust-based neighborhood authentication allows nodes to work successfully and maintain correct time synchronization collectively. A trust score can be calculated by analyzing the synchronization behavior of surrounding nodes, which reflects the level of confidence in a node&#x2019;s synchronization dependability. The trust-based neighborhood authentication mechanism involves the following steps:
<list list-type="simple">
<list-item><label>1.</label><p>Observation and Logging: Each node keeps track of its neighbors&#x2019; synchronization patterns over time through observation and logging. This involves keeping an eye on synchronization patterns, transmission delays, and clock offsets.</p></list-item>
<list-item><label>2.</label><p>Trust Score Computation: Each neighboring node receives a trust score based on the observed synchronization behavior. The node&#x2019;s reliability, precision, and adherence to the synchronization protocol are reflected in the trust score.</p></list-item>
<list-item><label>3.</label><p>Threshold-based Trust Decision: Nodes assess the computed trust scores against a predetermined cutoff. Nodes over the threshold are regarded as reliable, whereas nodes below the threshold should be handled carefully.</p></list-item>
</list></p>
<p>The trust score <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> for node <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mi>t</mml:mi></mml:math></inline-formula> is calculated using the observed synchronization behavior of nearby nodes <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, and it depends on transmission delays and offset values:
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>for</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula>where <italic>F</italic> is a trust score computation function that captures the dynamics of synchronization behavior, <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are the clock offset value and transmission delay between nodes <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mi>t</mml:mi></mml:math></inline-formula>, respectively. The trust score <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is updated over time to reflect the evolving trustworthiness of neighboring nodes. Three candidate functions are considered for secure neighborhood trust score computation for time synchronization. These are a linear function, exponential decay function and a moving average function.</p>
<sec id="s4_1_1">
<label>4.1.1</label>
<title>Linear Function</title>
<p>A simple linear function can be used to compute the trust score based on offset and delay values
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mi>a</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>b</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mi>c</mml:mi></mml:math></inline-formula> are coefficients that can be adjusted to assign different weights to offset and delay.</p>
</sec>
<sec id="s4_1_2">
<label>4.1.2</label>
<title>Exponential Decay Function</title>
<p>An exponential decay function can be used to give more weight to recent offset and delay values while considering historical behavior
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mi>exp</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula>where <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:mi>&#x03B3;</mml:mi></mml:math></inline-formula> are tuning parameters, and the exponential term captures the influence of the current offset and delay while the previous trust score contributes through <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="s4_1_3">
<label>4.1.3</label>
<title>Moving Average Function</title>
<p>A moving average function can be employed to compute the trust score based on the average offset and delay over a certain window of time
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03C3;</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><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>&#x03C3;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mover><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>D</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula>where <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> is a smoothing factor, and <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:msub><mml:mover><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:msub><mml:mover><mml:mi>D</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> represent the average offset and delay values over a specified window of time.</p>
</sec>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Malicious Node Detection</title>
<p>Detecting malicious nodes is vital for maintaining the integrity of time synchronization. We propose an innovative approach utilizing deep learning autoencoder-based anomaly detection to identify nodes that deviate from normal synchronization patterns. The autoencoder model is trained on historical synchronization data from legitimate nodes and aims to reconstruct normal synchronization behavior. Nodes exhibiting significant deviations in synchronization patterns are flagged as potential malicious nodes. Compared to other algorithms, autoencoders often prove more effective at anomaly identification due to the fact they can:
<list list-type="simple">
<list-item><label>1.</label><p>Learn from unlabeled data, which is useful when labeled anomalies are uncommon.</p></list-item>
<list-item><label>2.</label><p>Identify non-linear correlations and complicated patterns in data.</p></list-item>
<list-item><label>3.</label><p>Adapt to various domains and data types.</p></list-item>
<list-item><label>4.</label><p>Automate appropriate feature learning to do away with the necessity for manual feature engineering.</p></list-item>
<list-item><label>5.</label><p>Make use of transfer learning when pre-trained models are available.</p></list-item>
</list></p>
<p>Let <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> represent the synchronization features observed for node <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mi>t</mml:mi></mml:math></inline-formula> by node <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:mi>i</mml:mi></mml:math></inline-formula>. The encoder system model, <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> maps the input <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to a lower-dimensional representation <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:msub><mml:mi>Z</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and the decoder attempts to reconstruct the input from this representation using its system model, <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Anomalies are detected by comparing the reconstruction error <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> with a predefined threshold <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>. Mathematically, the autoencoder-based anomaly detection process can be described as follows:
<disp-formula id="ueqn-16"><mml:math id="mml-ueqn-16" 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:mrow><mml:mtext>Encoder:</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:msub><mml:mi>Z</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mtext>Decoder:</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:msubsup><mml:mi>X</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>Z</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mtext>Reconstruction Error:</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo symmetric="true" maxsize="1.623em" minsize="1.623em">&#x2016;</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo symmetric="true" maxsize="1.623em" minsize="1.623em">&#x2016;</mml:mo></mml:mrow></mml:mstyle><mml:mn>2</mml:mn></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>If <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>, node <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>j</mml:mi></mml:math></inline-formula> is considered to be a Sybil malicious attacker on node <inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mi>i</mml:mi></mml:math></inline-formula>. At each resynchronization period, node <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:mi>i</mml:mi></mml:math></inline-formula> accept packets from only non-anomalous nodes of set <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:msubsup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2282;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and updates its clock parameters using the clock values from these nodes.</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Adaptive Clock Update Using Normalized LMS Algorithm</title>
<p>Adaptive clock rate updates are essential for achieving accurate time synchronization. We employ the Normalized Least Mean Square (NLMS) algorithm to adjust the clock rates of sensor nodes. Because of input normalization, the normalized least mean squares (NLMS) method is less sensitive to input-correlation and has a significantly faster convergence than several other stochastic gradient algorithms, particularly the LMS algorithm [<xref ref-type="bibr" rid="ref-23">23</xref>].</p>
<p>Let, <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> be the clock rate adjustment and <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> be the target logical clock value for node <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mi>t</mml:mi></mml:math></inline-formula>. The NLMS-based adaptive clock update can be expressed as:
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo fence="false" stretchy="false">&#x2016;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo fence="false" stretchy="false">&#x2016;</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03B7;</mml:mi></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula>where <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> is a positive step-size and <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is a small positive parameter.</p>
<p>The ultimate aim of our protocol is to synchronize each node&#x2019;s clock rate to that of the gateway, but node <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mi>i</mml:mi></mml:math></inline-formula> might not be a neighbor of the gateway node and hence the expression of <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> will differ depending on the neighbor(s), <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of node <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mi>i</mml:mi></mml:math></inline-formula>. Therefore we can express <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> as:
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mml:mtr><mml:mtd><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd><mml:mtd><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mtext>&#xA0;and&#xA0;</mml:mtext></mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd><mml:mtd><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mtext>&#xA0;and&#xA0;</mml:mtext></mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mi>g</mml:mi><mml:mo>&#x2209;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;and&#xA0;</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mtext>&#x00A0;</mml:mtext><mml:mo>+</mml:mo><mml:mtext>&#x00A0;</mml:mtext><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mi>g</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;and&#xA0;</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></disp-formula>where <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> is the adaptation step size, and <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is a small positive constant to prevent division by zero. The NLMS algorithm adjusts the clock rate <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> proportionally to the difference between the target clock value and the current clock value, with a weight that depends on the observed synchronization features <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Dynamic Weighted Time Synchronization</title>
<p>Achieving optimal synchronization across all nodes can be resource-intensive. To enhance efficiency, we propose a selective time synchronization strategy that prioritizes trustworthy nodes for synchronization. The strategy involves the following steps:
<list list-type="simple">
<list-item><label>1.</label><p>Trust Score-Based Ranking: Nodes are ranked based on their trust scores. Nodes with higher trust scores are considered more reliable and suitable for synchronization.</p></list-item>
<list-item><label>2.</label><p>Neighbor Selection: Nodes select a subset of neighboring nodes with the highest trust scores for synchronization.</p></list-item>
<list-item><label>3.</label><p>Synchronization Weighting: The synchronization weight of each selected neighbor is determined by its trust score. Nodes with higher trust scores have a greater influence on the synchronization process.</p></list-item>
</list></p>
<p>Mathematically, the synchronization weight <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> between nodes <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mi>t</mml:mi></mml:math></inline-formula> can be calculated as:
<disp-formula id="eqn-18"><label>(18)</label><mml:math id="mml-eqn-18" display="block"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:munder><mml:msub><mml:mi>L</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p>Computing <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> in the number of neighbors, requiring only two arithmetic operations per neighbor, and takes under 10 ms on a 32 MHz Cortex-M4 for <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>20</mml:mn></mml:math></inline-formula>.</p>
<p>Where <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the trust score of node <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:mi>t</mml:mi></mml:math></inline-formula>, and <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the set of neighboring nodes of node <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:mi>i</mml:mi></mml:math></inline-formula> with synchronization error <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> given by:
<disp-formula id="eqn-19"><label>(19)</label><mml:math id="mml-eqn-19" display="block"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>Using the computed clock rate <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and synchronization neighborhood trust weight, <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, node <inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mi>i</mml:mi></mml:math></inline-formula> updates its logical clock, <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> expressed as:
<disp-formula id="eqn-20"><label>(20)</label><mml:math id="mml-eqn-20" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>The synchronization weight <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> shows the influence of node <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mi>j</mml:mi></mml:math></inline-formula> on node <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mi>i</mml:mi></mml:math></inline-formula> during synchronization while taking nearby node trust scores into account. Nodes with higher trust scores that are identified as non-anomalous by the anomaly detection autoencoder will have a bigger impact on the synchronization process. This improved clock update strategy optimizes synchronization efforts by adding anomalous node identification, trust-based node selection, and dynamic synchronization weighting, focusing on nodes with better trust ratings and providing a more efficient and secure time synchronization process.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Convergence Analysis of Proposed Synchronization Framework</title>
<p>In a WSN, various factors can contribute to clock drifts and desynchronization among nodes. Some of these factors include communication delays, clock inaccuracies, changes in environmental conditions, and node mobility. As a result, the clock synchronization error between two nodes, <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> given by <xref ref-type="disp-formula" rid="eqn-19">(19)</xref>, may not necessarily converge to a fixed point. The main objective of a protocol is therefore to achieve bounded synchronization errors and ensure that the error remains within an acceptable range [<xref ref-type="bibr" rid="ref-21">21</xref>]. While additional stochastic effects, e.g., temporary link failures, and bursty traffic could be modeled, they do not fundamentally alter the protocol&#x2019;s operation. Therefore, those factors are not accounted in our proposed model development.</p>
<p>In practical WSNs, achieving exact global synchronization may be challenging due to the dynamic nature of the environment and the presence of various sources of uncertainty [<xref ref-type="bibr" rid="ref-24">24</xref>]. However, synchronization algorithms can aim to achieve approximate or relative synchronization, which is often sufficient for many applications in WSNs. Since the clock dynamics of the gateway node <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mi>g</mml:mi></mml:math></inline-formula> is different from that of normal WSN nodes, we analyze the pairwise synchronization convergence for an arbitrary node <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mi>i</mml:mi></mml:math></inline-formula> to its neighbor <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mi>j</mml:mi></mml:math></inline-formula> and to node <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:mi>g</mml:mi></mml:math></inline-formula> separately.</p>
<sec id="s5_1">
<label>5.1</label>
<title>Pairwise Time Synchronization to Gateway Node</title>
<p>Achieving pairwise synchronization to a gateway node is crucial for establishing a global reference and facilitating network-wide coordination. We discuss the conditions under which network nodes converge towards synchronization with the gateway node. By analyzing the properties of the synchronization error, we outline the conditions that ensure convergence towards the gateway node and the error and clock rate steady state values.</p>
<sec id="s5_1_1">
<label>5.1.1</label>
<title>Conditions for Convergence</title>
<p>Applying Normalized LMS algorithm for the update of the logical clock rate of node <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:mi>i</mml:mi></mml:math></inline-formula>, we have
<disp-formula id="eqn-21"><label>(21)</label><mml:math id="mml-eqn-21" display="block"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mi>I</mml:mi><mml:mo>+</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>J</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:math></inline-formula> and <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:math></inline-formula>.</p>
<p>For simplicity, let <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> be the synchronization error between clock values of <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:mi>g</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:mi>t</mml:mi></mml:math></inline-formula>. To optimize the clock rate update algorithm, we use the cost function <italic>J</italic>, which we define to be the square the error, defined as:
<disp-formula id="eqn-22"><label>(22)</label><mml:math id="mml-eqn-22" display="block"><mml:mi>J</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>Assuming node <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:mi>i</mml:mi></mml:math></inline-formula> is in communication range of the gateway node, <inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:mi>g</mml:mi></mml:math></inline-formula>, i.e., <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:mrow><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> and there is a transmission delay of <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> between <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:mi>g</mml:mi></mml:math></inline-formula>, then at time <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:mi>t</mml:mi></mml:math></inline-formula>, node <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:mi>i</mml:mi></mml:math></inline-formula> receives <inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:msub><mml:mi>T</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and therefore
<disp-formula id="eqn-23"><label>(23)</label><mml:math id="mml-eqn-23" 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:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>In [<xref ref-type="bibr" rid="ref-1">1</xref>], using the central limit theorem, <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is modeled as a zero-mean Gaussian distributed random variable with variance, <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:math></inline-formula>.</p>
<p>Assuming <inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mi>&#x03B7;</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> and using <xref ref-type="disp-formula" rid="eqn-21">(21)</xref>, we derive <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> respectively as:
<disp-formula id="ueqn-25"><mml:math id="mml-ueqn-25" 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:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>and;</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:msubsup><mml:mi>T</mml:mi><mml:mi>i</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Since
<disp-formula id="ueqn-26"><mml:math id="mml-ueqn-26" 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:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Since <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is in the scalar form we write <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mo stretchy="false">[</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>.</p>
<p>Hence the update equation in <xref ref-type="disp-formula" rid="eqn-15">(15)</xref> can be rewritten as:
<disp-formula id="eqn-24"><label>(24)</label><mml:math id="mml-eqn-24" 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>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Since continuous access of <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> might over-complicate the synchronization algorithm, we approximate it with its mean value, i.e.,
<disp-formula id="ueqn-28"><mml:math id="mml-ueqn-28" 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>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2243;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>And from the definition of the hardware clock model given by <xref ref-type="disp-formula" rid="eqn-1">(1)</xref>, <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi></mml:math></inline-formula> and hence we can write
<disp-formula id="eqn-25"><label>(25)</label><mml:math id="mml-eqn-25" 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>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2243;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mo>&#x222B;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>But,
<disp-formula id="ueqn-30"><mml:math id="mml-ueqn-30" 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:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-26"><label>(26)</label><mml:math id="mml-eqn-26" 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>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2243;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:msub><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> is the average ticking rate of the gateway node. Therefore the synchronization clock update rule can be simplified as follows:
<disp-formula id="eqn-27"><label>(27)</label><mml:math id="mml-eqn-27" 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:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mi>R</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>and the logical clock rate update as follows:
<disp-formula id="eqn-28"><label>(28)</label><mml:math id="mml-eqn-28" display="block"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p><bold>Theorem 1.</bold> The update of the logical clock rate, <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of a node <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> with initial clock value, <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> using the normalized least mean-square (LMS) algorithm of the form <xref ref-type="disp-formula" rid="eqn-28">(28)</xref> to synchronize to a gateway node <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mi>g</mml:mi></mml:math></inline-formula> with ticking rate, <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> will converge in the <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:msup><mml:mrow><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> mean-sense to an asymptotically stable point if and only if the step size <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> must be chosen based on the inequality
<disp-formula id="eqn-29"><label>(29)</label><mml:math id="mml-eqn-29" 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:mn>0</mml:mn><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>2</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is a small positive value.</p>
<p><bold>Proof of Theorem 1.</bold> Based on the update equations, <xref ref-type="disp-formula" rid="eqn-27">(27)</xref> and <xref ref-type="disp-formula" rid="eqn-28">(28)</xref>, we can define <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> as:
<disp-formula id="eqn-30"><label>(30)</label><mml:math id="mml-eqn-30" 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:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-31"><label>(31)</label><mml:math id="mml-eqn-31" 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>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>We can combine <xref ref-type="disp-formula" rid="eqn-30">(30)</xref> and <xref ref-type="disp-formula" rid="eqn-31">(31)</xref> into a state representation given by <xref ref-type="disp-formula" rid="eqn-32">(32)</xref>.
<disp-formula id="eqn-32"><label>(32)</label><mml:math id="mml-eqn-32" 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:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
To evaluate the pairwise convergence of the proposed system in the mean-sense, we evaluate the expectation of <xref ref-type="disp-formula" rid="eqn-32">(32)</xref>.
<disp-formula id="eqn-33"><label>(33)</label><mml:math id="mml-eqn-33" 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:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>From <xref ref-type="disp-formula" rid="eqn-33">(33)</xref> we obtain the eigenvalues the coefficient matrix as:
<disp-formula id="ueqn-39"><mml:math id="mml-ueqn-39" 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:mi></mml:mi><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Therefore, a necessary and sufficient condition for asymptotic convergence in the mean-sense is if <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mn>0</mml:mn><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>2</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. &#x25A1;</p>
</sec>
<sec id="s5_1_2">
<label>5.1.2</label>
<title>Asymptotic Clock Frequency and Synchronization Error</title>
<p>Analyzing the behavior of clock frequency and synchronization error over time provides valuable insights into the long-term dynamics of the synchronization process. We derive expressions for the asymptotic clock frequency and investigate how synchronization error evolves as the number of synchronization iterations increases.</p>
<p><bold>Theorem 2.</bold> The evolving pairwise synchronization error, <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and the clock rate, <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> for node <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mi>i</mml:mi></mml:math></inline-formula> synchronizing to the clock of a perfectly ticking gateway node, <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:mi>g</mml:mi></mml:math></inline-formula> converge in the mean-sense to the steady state values <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:math></inline-formula> if it satisfies the linear <xref ref-type="disp-formula" rid="eqn-32">Eq. (32)</xref>.</p>
<p><bold>Proof of Theorem 2.</bold> The asymptotic error and clock rate variables can be written as:
<disp-formula id="ueqn-40"><mml:math id="mml-ueqn-40" 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:mi></mml:mi><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>and</mml:mtext></mml:mrow><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>From <xref ref-type="disp-formula" rid="eqn-33">Eq. (33)</xref>, we can write the respective steady state equations of <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mtext>and</mml:mtext><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> as:
<disp-formula id="ueqn-41"><mml:math id="mml-ueqn-41" 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>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">&#x27F9;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>We therefore conclude from the above analysis that, the synchronization error, <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:msub><mml:mi>e</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of a node <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mi>i</mml:mi></mml:math></inline-formula> synchronizing to the gateway node <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mi>g</mml:mi></mml:math></inline-formula>, converges to zero and its logical clock rate, <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> converges to the nominal oscillation period, <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:math></inline-formula>. &#x25A1;</p>
</sec>
<sec id="s5_1_3">
<label>5.1.3</label>
<title>Asymptotic Error Variance</title>
<p>When a control system achieves zero steady-state error, it means the regulated output precisely follows the desired value and there is no variation over time between the actual output and the target value. In-order to maintain a tight global synchronization among network nodes, the asymptotic variance of the steady-error has to be as small as possible.</p>
<p>To further analyze the convergence behavior of this proposed method for clock synchronization, the asymptotic variance of the synchronization error is given by Theorem 3.</p>
<p><bold>Theorem 3.</bold> The asymptotic variance in synchronization error, <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:mi>V</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> of a node <inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> with initial hardware clock value, <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> using the normalized least mean-square (LMS) algorithm of the form <xref ref-type="disp-formula" rid="eqn-28">(28)</xref> to synchronize to a gateway node <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mi>g</mml:mi></mml:math></inline-formula> with ticking rate, <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> is given by:
<disp-formula id="eqn-34"><label>(34)</label><mml:math id="mml-eqn-34" 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:mi>V</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mfrac><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mi>D</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><bold>Proof of Theorem 3.</bold> Let <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C6;</mml:mi></mml:math></inline-formula>
<disp-formula id="eqn-35"><label>(35)</label><mml:math id="mml-eqn-35" 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>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> has statistics <inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>.</p>
<p>Based on these definitions, we can rewrite the error and clock rate recursion equations respectively as:
<disp-formula id="ueqn-44"><mml:math id="mml-ueqn-44" 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:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>and
<disp-formula id="ueqn-45"><mml:math id="mml-ueqn-45" 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>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Let <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> with mean, <inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and second moment, <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mn>3</mml:mn></mml:mfrac></mml:math></inline-formula>
<disp-formula id="ueqn-46"><mml:math id="mml-ueqn-46" 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>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-36"><label>(36)</label><mml:math id="mml-eqn-36" 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:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x27F9;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="ueqn-48"><mml:math id="mml-ueqn-48" 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:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Taking expectation of both sides, we get
<disp-formula id="eqn-37"><label>(37)</label><mml:math id="mml-eqn-37" 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:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mfrac><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mrow><mml:mn>3</mml:mn><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mi>D</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Since <inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, it follows that, <inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:mi>V</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> can be expressed in terms of <inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> as:
<disp-formula id="ueqn-50"><mml:math id="mml-ueqn-50" 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:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mfrac><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">]</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Using straight-forward steps, the asymptotic variance of the error can be given as:
<disp-formula id="eqn-38"><label>(38)</label><mml:math id="mml-eqn-38" 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:mi>V</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msup><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mfrac><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mi>D</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>&#x25A1;</p>
</sec>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Pairwise Clock Synchronization of Neighboring Nodes</title>
<p>Pairwise clock synchronization among neighboring nodes is a fundamental to achieving accurate time synchronization in WSNs. Here, we analyze the convergence properties in probability and mean-sense associated with our proposed synchronization algorithm. Each node evaluates its neighbors&#x2019; synchronization patterns based on:
<list list-type="simple">
<list-item><label>1.</label><p>historical synchronization accuracy (i.e., how closely a node&#x2019;s clock aligns with its trusted neighbors).</p></list-item>
<list-item><label>2.</label><p>deviation from expected timestamps (i.e., identifying outliers in time updates).</p></list-item>
<list-item><label>3.</label><p>communication reliability metrics (e.g., packet loss and response delays).</p></list-item>
</list></p>
<p>These computations are lightweight and do not require complex cryptographic operations or excessive message passing. Ideal pairwise synchronization between node <inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:mi>i</mml:mi></mml:math></inline-formula> and node <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:mi>j</mml:mi></mml:math></inline-formula>, means the error <inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> evolves towards zero with time which is expressed mathematically as:
<disp-formula id="eqn-39"><label>(39)</label><mml:math id="mml-eqn-39" display="block"><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></disp-formula></p>
<sec id="s5_2_1">
<label>5.2.1</label>
<title>Mean Sense Error Convergence</title>
<p>To prove the expression in <xref ref-type="disp-formula" rid="eqn-39">(39)</xref> for any synchronization algorithm means perfect synchronization among WSN nodes or sure-convergence of synchronization error which is impossible given the dynamics of WSNs. Instead we will show that, our proposed framework for synchronization achieves synchronization within acceptable error margins using mean-sense convergence</p>
<p><bold>Definition 1.</bold> (<inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:msup><mml:mrow><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow></mml:mrow><mml:mi>p</mml:mi></mml:msup></mml:math></inline-formula> Convergence in Mean-Sense) A sequence of <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:mrow><mml:mrow><mml:mi>&#x2131;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>-measurable random variables <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mi>x</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>:</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">N</mml:mi></mml:mrow></mml:math></inline-formula> is said to converge to an <inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:mrow><mml:mrow><mml:mi>&#x2131;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>-measurable random variable <inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:mi>x</mml:mi></mml:math></inline-formula> in <inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><mml:msup><mml:mrow><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow></mml:mrow><mml:mi>p</mml:mi></mml:msup></mml:math></inline-formula> sense if for some <inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:mi>p</mml:mi><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>,
<disp-formula id="ueqn-53"><mml:math id="mml-ueqn-53" 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:mi></mml:mi><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>x</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>x</mml:mi><mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>p</mml:mi></mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Based on Definition 1, and taking <inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula>, we want to show that as time <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:mi>t</mml:mi></mml:math></inline-formula> approaches infinity, the mean-square synchronization error between nodes <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-232"><mml:math id="mml-ieqn-232"><mml:mi>j</mml:mi></mml:math></inline-formula> converges to zero:
<disp-formula id="eqn-40"><label>(40)</label><mml:math id="mml-eqn-40" 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:mi></mml:mi><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><bold>Theorem 4.</bold> In a WSN represented by a unidirected graph, <inline-formula id="ieqn-233"><mml:math id="mml-ieqn-233"><mml:mrow><mml:mrow><mml:mi>&#x1D4A2;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the asymptotic mean-square pairwise synchronization error, <inline-formula id="ieqn-234"><mml:math id="mml-ieqn-234"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> for a node <inline-formula id="ieqn-235"><mml:math id="mml-ieqn-235"><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4A2;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, with neighbor <inline-formula id="ieqn-236"><mml:math id="mml-ieqn-236"><mml:mi>j</mml:mi></mml:math></inline-formula> is zero if
<disp-formula id="ueqn-55"><mml:math id="mml-ueqn-55" 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>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-237"><mml:math id="mml-ieqn-237"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-238"><mml:math id="mml-ieqn-238"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are the clock rate of node <inline-formula id="ieqn-239"><mml:math id="mml-ieqn-239"><mml:mi>i</mml:mi></mml:math></inline-formula> and transmission delays between <inline-formula id="ieqn-240"><mml:math id="mml-ieqn-240"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-241"><mml:math id="mml-ieqn-241"><mml:mi>j</mml:mi></mml:math></inline-formula> at time <inline-formula id="ieqn-242"><mml:math id="mml-ieqn-242"><mml:mi>t</mml:mi></mml:math></inline-formula>.</p>
<p><bold>Proof of Theorem 4.</bold> We start by assuming that at time <inline-formula id="ieqn-243"><mml:math id="mml-ieqn-243"><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, the synchronization error <inline-formula id="ieqn-244"><mml:math id="mml-ieqn-244"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is bounded and has finite variance, i.e.,
<disp-formula id="ueqn-56"><mml:math id="mml-ueqn-56" 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:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>We also assume that the synchronization algorithm is stable, meaning that the clock updates are bounded, and the synchronization process does not diverge. For pairwise synchronization, <inline-formula id="ieqn-245"><mml:math id="mml-ieqn-245"><mml:msup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> and assuming nodes <inline-formula id="ieqn-246"><mml:math id="mml-ieqn-246"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-247"><mml:math id="mml-ieqn-247"><mml:mi>j</mml:mi></mml:math></inline-formula> are trusted neighbors, i.e., <inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, then the clock updates for nodes <inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mi>j</mml:mi></mml:math></inline-formula> are given respectively by:
<disp-formula id="eqn-41"><label>(41)</label><mml:math id="mml-eqn-41" 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:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-42"><label>(42)</label><mml:math id="mml-eqn-42" 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:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Let the clock rate and delay differences between nodes <inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:mi>j</mml:mi></mml:math></inline-formula> be denoted as <inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>, respectively, and given by:
<disp-formula id="eqn-43"><label>(43)</label><mml:math id="mml-eqn-43" 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>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-44"><label>(44)</label><mml:math id="mml-eqn-44" 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>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Assuming <inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, we can express the evolution of the synchronization error as:
<disp-formula id="eqn-45"><label>(45)</label><mml:math id="mml-eqn-45" 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>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Consider the difference in synchronization error between two consecutive time steps:
<disp-formula id="ueqn-62"><mml:math id="mml-ueqn-62" 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>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Assuming, <inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> are constants, we can rewrite the difference in synchronization error as:
<disp-formula id="eqn-46"><label>(46)</label><mml:math id="mml-eqn-46" 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>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</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>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>This is a discrete-time linear system, and its stability depends on <inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. If <inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, the synchronization error converges to zero.</p>
<p>Now consider the mean-square synchronization error change:
<disp-formula id="eqn-47"><label>(47)</label><mml:math id="mml-eqn-47" display="block"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">[</mml:mo></mml:mrow></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mn>2</mml:mn></mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>=</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>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>We know that <inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x003C;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> (since <inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> for convergence), so the mean-square error decreases with time, i.e.,
<disp-formula id="eqn-48"><label>(48)</label><mml:math id="mml-eqn-48" display="block"><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:msup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>Hence we can conclude that our algorithm achieves zero asymptotic error variance between two neighboring nodes <inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-263"><mml:math id="mml-ieqn-263"><mml:mi>j</mml:mi></mml:math></inline-formula>.
<disp-formula id="eqn-49"><label>(49)</label><mml:math id="mml-eqn-49" display="block"><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></disp-formula></p>
<p>&#x25A1;</p>
</sec>
<sec id="s5_2_2">
<label>5.2.2</label>
<title>Convergence Time</title>
<p>A theoretical convergence time <inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> provides an estimate of how long it takes for the clock rate <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:msub><mml:mi>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to approach the same nominal clock rate, <inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> or for the clock rate synchronization error <inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to approach within a threshold <inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula>. The derivation of a closed-form expression of the convergence time <inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> will help us to understand the dynamics of the synchronization process and provides insight into optimizing parameters such as step size <inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> to achieve faster and more accurate synchronization.</p>
<p><bold>Theorem 5.</bold> In a WSN represented by a unidirected graph, <inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:mrow><mml:mrow><mml:mi>&#x1D4A2;</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the convergence time <inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> of the clock rate synchronization error <inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> of node <inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x2130;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D4A2;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, using the normalized least mean-square (LMS) algorithm of the form <xref ref-type="disp-formula" rid="eqn-28">(28)</xref> to synchronize to its neighbor <inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:mi>j</mml:mi></mml:math></inline-formula> to an error threshold <inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula> can be expressed as:
<disp-formula id="eqn-50"><label>(50)</label><mml:math id="mml-eqn-50" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>h</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:math></disp-formula>where:</p> <p><inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:mrow><mml:mover><mml:mi>h</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi>&#x03B7;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula></p>
<p><inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p>
<p><inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p>
<p><inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> is start time for the synchronization process</p>
<p><inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is a small positive value</p>
<p><bold>Proof of Theorem 5.</bold> Using the clock rate <xref ref-type="disp-formula" rid="eqn-28">Eq. (28)</xref>, we can express the clock rate synchronization error as an update equation given by:
<disp-formula id="eqn-51"><label>(51)</label><mml:math id="mml-eqn-51" display="block"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfrac></mml:math></disp-formula>where <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>&#x03B7;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p>
<p>We can express <inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> recursively in terms of the initial error, <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> as:
<disp-formula id="eqn-52"><label>(52)</label><mml:math id="mml-eqn-52" display="block"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:munderover><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">(</mml:mo></mml:mrow></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>For convergence, we want the synchronization error <inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to be within some threshold <inline-formula id="ieqn-288"><mml:math id="mml-ieqn-288"><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula>, i.e.,
<disp-formula id="ueqn-70"><mml:math id="mml-ueqn-70" 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:mi></mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Our main goal is to find the convergence time, <inline-formula id="ieqn-289"><mml:math id="mml-ieqn-289"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> such that <inline-formula id="ieqn-290"><mml:math id="mml-ieqn-290"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula> and therefore we can write:
<disp-formula id="ueqn-71"><mml:math id="mml-ueqn-71" 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:mi></mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Using the expression for <inline-formula id="ieqn-291"><mml:math id="mml-ieqn-291"><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, we can write
<disp-formula id="eqn-53"><label>(53)</label><mml:math id="mml-eqn-53" display="block"><mml:mi>&#x03BE;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle><mml:munderover><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">(</mml:mo></mml:mrow></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">)</mml:mo></mml:mrow></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>Taking natural logarithms of both sides:
<disp-formula id="eqn-54"><label>(54)</label><mml:math id="mml-eqn-54" display="block"><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:munderover><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">(</mml:mo></mml:mrow></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">)</mml:mo></mml:mrow></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-55"><label>(55)</label><mml:math id="mml-eqn-55" display="block"><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">|</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula></p>
<p>Now, assuming that <inline-formula id="ieqn-292"><mml:math id="mml-ieqn-292"><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mfrac></mml:math></inline-formula> is small, we can use the logarithmic property <inline-formula id="ieqn-293"><mml:math id="mml-ieqn-293"><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2248;</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula>. Using this approximation, we can write:
<disp-formula id="eqn-56"><label>(56)</label><mml:math id="mml-eqn-56" display="block"><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2248;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mfrac></mml:math></disp-formula></p>
<p>Rearranging, we have:
<disp-formula id="eqn-57"><label>(57)</label><mml:math id="mml-eqn-57" display="block"><mml:mn>1</mml:mn><mml:mo>&#x2248;</mml:mo><mml:mfrac><mml:mrow><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mfrac></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p>Assuming we approximate <inline-formula id="ieqn-294"><mml:math id="mml-ieqn-294"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-295"><mml:math id="mml-ieqn-295"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> with their respective averages <inline-formula id="ieqn-296"><mml:math id="mml-ieqn-296"><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-297"><mml:math id="mml-ieqn-297"><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula>, then <inline-formula id="ieqn-298"><mml:math id="mml-ieqn-298"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-299"><mml:math id="mml-ieqn-299"><mml:mrow><mml:mover><mml:mi>h</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi>&#x03B7;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> then,
<disp-formula id="ueqn-77"><mml:math id="mml-ueqn-77" 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:mn>1</mml:mn><mml:mo>&#x2248;</mml:mo><mml:mfrac><mml:mrow><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mover><mml:mi>h</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Hence the approximate convergence time, <inline-formula id="ieqn-300"><mml:math id="mml-ieqn-300"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is:
<disp-formula id="eqn-58"><label>(58)</label><mml:math id="mml-eqn-58" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mover><mml:mi>h</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math></disp-formula>which can also be given as,
<disp-formula id="eqn-59"><label>(59)</label><mml:math id="mml-eqn-59" display="block"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>conv</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mfrac><mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msup><mml:mi>&#x03B7;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x22C5;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover><mml:mi>T</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p>&#x25A1;</p>
<p>From <xref ref-type="disp-formula" rid="eqn-59">(59)</xref>, we see that the time the algorithm takes to converge depends largely on initial clock parameters, the synchronization period and the nominal clock frequency. Based on the performed analysis, we show that the synchronization process is modeled under varying network delays and also accounted for dynamic trust updates, ensuring stability despite adversarial behavior.</p>
</sec>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Intelligent and Secure Time Synchronization Protocol (iSTSP) Design</title>
<p>The proposed iSTSP protocol implements a <bold>layered security pipeline</bold> consisting of four progressively refined defense stages. Each stage builds upon the previous one, transitioning from proactive trust enforcement to reactive anomaly isolation, then applying resilience-weighted synchronization, and finally tuning adaptivity for rapid convergence. This architectural progression ensures not only robust defense against malicious behavior, but also efficient recovery and synchronization accuracy.</p>
<sec id="s6_1">
<label>6.1</label>
<title>Stage 1: Trust-Based Node Authentication (Preprocessing Filter)</title>
<p><bold>Objective:</bold> To proactively establish a legitimate neighborhood of participants, excluding suspicious or misbehaving nodes before any synchronization message exchanges occur.</p>
<p><bold>Mechanism:</bold> Each node <inline-formula id="ieqn-301"><mml:math id="mml-ieqn-301"><mml:mi>i</mml:mi></mml:math></inline-formula> continuously assesses the trustworthiness of its one-hop neighbors <inline-formula id="ieqn-302"><mml:math id="mml-ieqn-302"><mml:mi>j</mml:mi></mml:math></inline-formula> through a time-updated trust metric. The trust score <inline-formula id="ieqn-303"><mml:math id="mml-ieqn-303"><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is formulated using an exponentially weighted decay, which ensures responsiveness to rapidly evolving threats:
<disp-formula id="eqn-60"><label>(60)</label><mml:math id="mml-eqn-60" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mi>exp</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>where <inline-formula id="ieqn-304"><mml:math id="mml-ieqn-304"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-305"><mml:math id="mml-ieqn-305"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> balance prior trust history against current timing observations. This design allows the protocol to adaptively discount a neighbor showing growing time offset anomalies or unusual delays.</p>
<p><bold>Exclusion Protocol:</bold> A neighbor <inline-formula id="ieqn-306"><mml:math id="mml-ieqn-306"><mml:mi>j</mml:mi></mml:math></inline-formula> is excluded from synchronization if
<disp-formula id="ueqn-81"><mml:math id="mml-ueqn-81" 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>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mrow><mml:mtext>trust</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>with <inline-formula id="ieqn-307"><mml:math id="mml-ieqn-307"><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mtext>trust</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> empirically set to 0.4 to balance false positives and detection coverage. This stage alone reduces the initial attack surface by up to 63%.</p>
</sec>
<sec id="s6_2">
<label>6.2</label>
<title>Stage 2: Anomaly Scoring and Attacker Isolation</title>
<p><bold>Objective:</bold> To reactively detect and isolate adversarial or compromised nodes that may have evaded the initial trust filter.</p>
<p><bold>Scoring Framework:</bold> After Stage 1, the subset of non-excluded neighbors is monitored for deeper inconsistencies using a lightweight autoencoder neural network. The anomaly score <inline-formula id="ieqn-308"><mml:math id="mml-ieqn-308"><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> quantifies how well a neighbor&#x2019;s observed behavior matches expected benign patterns:
<disp-formula id="eqn-61"><label>(61)</label><mml:math id="mml-eqn-61" display="block"><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>Decoder</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>Encoder</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:math></disp-formula>where reconstruction error indicates deviation from normal timing and delay statistics.</p>
<p>A binary classification rule then determines isolation:
<disp-formula id="ueqn-83"><mml:math id="mml-ueqn-83" 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:mrow><mml:mtext>IsolationFlag</mml:mtext></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#xA0;</mml:mtext></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003E;</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mtext>&#xA0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext>95th percentile</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><bold>Isolation Protocol:</bold> Neighbors flagged as anomalous (<inline-formula id="ieqn-309"><mml:math id="mml-ieqn-309"><mml:msub><mml:mtext>IsolationFlag</mml:mtext><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>) are immediately removed from the working neighbor set <inline-formula id="ieqn-310"><mml:math id="mml-ieqn-310"><mml:msubsup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> for the current synchronization round (see <xref ref-type="disp-formula" rid="eqn-10">Eq. (10)</xref>). This mechanism detects 92% of Sybil attackers within a single round.</p>
<p><italic>AutoEncoder Design</italic></p>
<p>We considered several AI approaches for adaptive malicious node detection and selected autoencoders for their low computational cost, lightweight inference, and proven effectiveness in unsupervised anomaly detection, making them ideal for identifying malicious deviations in time synchronization within low-power WSNs. In contrast, Graph Neural Networks (GNNs) are computationally expensive and require extensive training data, while Reinforcement Learning (RL) involves high training overhead and delayed decision-making, rendering both unsuitable for real-time, energy-constrained WSN environments. While deep learning-based anomaly detection introduces some computational overhead, iSTSP is designed to operate efficiently in resource-constrained WSNs. The autoencoder model used for malicious node detection is pre-trained offline and deployed on each node for real-time anomaly detection, requiring only lightweight inference operations with minimal energy consumption.</p>
<p>An autoencoder is made up of two major components: an encoder and a decoder. The input data is mapped by the encoder to a lower-dimensional representation, which is then mapped back to the input space by the decoder. The goal is to force the network to learn a compressed version of the input data by introducing a bottleneck. The autoencoder&#x2019;s ability to recover the input data from this compressed representation is measured in order to identify anomalies. The optimal design architecture should have a relatively simple structure to reduce processing requirements.</p>
<p>We consider a minimalistic autoencoder architecture for anomalous node detection:
<list list-type="simple">
<list-item><label>1.</label><p>Input Layer: The input layer consists of two parts:
<list list-type="simple">
<list-item><label>(a)</label><p>Delay values: The delay values between node <inline-formula id="ieqn-311"><mml:math id="mml-ieqn-311"><mml:mi>i</mml:mi></mml:math></inline-formula> and its neighbors <inline-formula id="ieqn-312"><mml:math id="mml-ieqn-312"><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> form the input vector <inline-formula id="ieqn-313"><mml:math id="mml-ieqn-313"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of size <inline-formula id="ieqn-314"><mml:math id="mml-ieqn-314"><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-315"><mml:math id="mml-ieqn-315"><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the number of neighbors of node <inline-formula id="ieqn-316"><mml:math id="mml-ieqn-316"><mml:mi>i</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><label>(b)</label><p>Node clock values: The clock values <inline-formula id="ieqn-317"><mml:math id="mml-ieqn-317"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-318"><mml:math id="mml-ieqn-318"><mml:msub><mml:mi>C</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> of the node <inline-formula id="ieqn-319"><mml:math id="mml-ieqn-319"><mml:mi>i</mml:mi></mml:math></inline-formula>, and its neighbors <inline-formula id="ieqn-320"><mml:math id="mml-ieqn-320"><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> form an input vector <inline-formula id="ieqn-321"><mml:math id="mml-ieqn-321"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> of size <inline-formula id="ieqn-322"><mml:math id="mml-ieqn-322"><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, including the node <inline-formula id="ieqn-323"><mml:math id="mml-ieqn-323"><mml:mi>i</mml:mi></mml:math></inline-formula> itself.</p></list-item>
</list></p></list-item>
<list-item><label>2.</label><p>Encoding Layer: The encoding layer reduces the dimensionality of the input data, which is crucial for efficient processing. We use a small encoding layer with only a few neurons, say <italic>K</italic> neurons. The encoding function is denoted as <inline-formula id="ieqn-324"><mml:math id="mml-ieqn-324"><mml:msub><mml:mi>f</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x27F6;</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">E</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-325"><mml:math id="mml-ieqn-325"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">E</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the encoded representation.</p></list-item>
<list-item><label>3.</label><p>Decoding Layer: The decoding layer attempts to reconstruct the original input from the encoded representation. It has two parts:
<list list-type="simple">
<list-item><label>(a)</label><p>Decoding the Delay Values: The decoder for the delay values is denoted as <inline-formula id="ieqn-326"><mml:math id="mml-ieqn-326"><mml:msubsup><mml:mi>f</mml:mi><mml:mi>d</mml:mi><mml:mi>D</mml:mi></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">E</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x27F6;</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, where <inline-formula id="ieqn-327"><mml:math id="mml-ieqn-327"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the reconstructed delay values.</p></list-item>
<list-item><label>(b)</label><p>Decoding the Node Clock Values: The decoder for the clock values is denoted as <inline-formula id="ieqn-328"><mml:math id="mml-ieqn-328"><mml:msubsup><mml:mi>f</mml:mi><mml:mi>d</mml:mi><mml:mi>D</mml:mi></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">E</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x27F6;</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, where <inline-formula id="ieqn-329"><mml:math id="mml-ieqn-329"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the reconstructed clock values.</p></list-item>
</list></p></list-item>
<list-item><label>4.</label><p>Activation Function: We use the ReLU (Rectified Linear Unit) as the activation function for both the encoding and decoding layers.</p></list-item>
<list-item><label>5.</label><p>Loss Function: For anomaly detection, use the mean squared error (MSE) as the loss function. The total loss is the sum of the MSE for both delay values and node clock values:
<disp-formula id="ueqn-84"><mml:math id="mml-ueqn-84" 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:msubsup><mml:mi>e</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mfrac><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:munderover><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>+</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:munderover><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p></list-item>
<list-item>
<p>The goal is to minimize this loss function, <inline-formula id="ieqn-330"><mml:math id="mml-ieqn-330"><mml:msubsup><mml:mi>e</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> during training.</p></list-item>
<list-item><label>6.</label><p>Training: We used a data set of typical synchronization data to train the autoencoder. The delay and clock value for various synchronizations is collected for a set period when the protocol initiates for each network node.</p></list-item>
<list-item><label>7.</label><p>Thresholding: After training, we establish a threshold for the reconstruction error. Instances with reconstruction errors above this threshold are considered anomalies. The threshold is set through cross-validation.</p></list-item>
</list></p>
<p>Each WSN node independently computes trust values based on locally observed synchronization patterns, such as timestamp discrepancies and message consistency. These trust values are then shared with neighboring nodes in a decentralized manner, ensuring that no centralized authority is required. This localized approach minimizes communication overhead, which is critical for resource-constrained WSNs. The initial training of the model is done offline prior to the network deployment executed locally at each node, eliminating the need for centralized or federated learning. Then during the operation of the network, each node re-trains its model once in a certain long period, when certain network dynamics and neighborhood set has changed. The pseudo-code for the training model is given by Algorithm 1.</p>
<fig id="fig-16">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-16.tif"/>
</fig>
</sec>
<sec id="s6_3">
<label>6.3</label>
<title>Stage 3: Reliability-Weighted Time Consensus</title>
<p><bold>Objective:</bold> To apply consensus-based clock synchronization in a way that prioritizes reliable, trustworthy inputs while minimizing the disruptive effect of adversaries.</p>
<p><bold>Weight Assignment:</bold> The influence of each non-isolated neighbor <inline-formula id="ieqn-360"><mml:math id="mml-ieqn-360"><mml:mi>j</mml:mi></mml:math></inline-formula> is weighted according to its trust score from Stage 2:
<disp-formula id="eqn-62"><label>(62)</label><mml:math id="mml-eqn-62" display="block"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:mrow></mml:munder><mml:msub><mml:mi>L</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p><bold>Consensus Update:</bold> Nodes update their local clock values via a weighted aggregation:
<disp-formula id="eqn-63"><label>(63)</label><mml:math id="mml-eqn-63" display="block"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:mrow></mml:munder><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>This approach reduces malicious influence by a factor of 7.2 compared to standard unweighted averaging (<xref ref-type="fig" rid="fig-13">Fig. 13a</xref>).</p>

</sec>
<sec id="s6_4">
<label>6.4</label>
<title>Stage 4: Convergence-Optimized Synchronization</title>
<p><bold>Objective:</bold> To dynamically adapt the synchronization rate to current network conditions, achieving faster convergence while maintaining stability guarantees.</p>
<p><bold>Adaptive Engine:</bold> The step size <inline-formula id="ieqn-361"><mml:math id="mml-ieqn-361"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> is adjusted based on error magnitude:
<disp-formula id="eqn-64"><label>(64)</label><mml:math id="mml-eqn-64" display="block"><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">min</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>&#x03C5;</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>where
<disp-formula id="ueqn-88"><mml:math id="mml-ueqn-88" 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>&#x03BC;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub><mml:mo>&#x003C;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>ensures stability per Theorem 1.</p>
<p>To determine the most optimal step size update equation for the Normalized Least Mean Square (NLMS) algorithm based on the given acceptable range of the step size <inline-formula id="ieqn-362"><mml:math id="mml-ieqn-362"><mml:mn>0</mml:mn><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>2</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>, we choose an adaptive step size update equation that keeps within this range while adjusting based on the network&#x2019;s characteristics. We adopt an adaptive approach is to use a step size, <inline-formula id="ieqn-363"><mml:math id="mml-ieqn-363"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> that satisfies the given constraint given by the update equation:
<disp-formula id="eqn-65"><label>(65)</label><mml:math id="mml-eqn-65" display="block"><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>&#x03C5;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">)</mml:mo></mml:mrow></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="2.470em" minsize="2.470em">)</mml:mo></mml:mrow></mml:mstyle></mml:math></disp-formula>where:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-364"><mml:math id="mml-ieqn-364"><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> represents the step size at time <inline-formula id="ieqn-365"><mml:math id="mml-ieqn-365"><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-366"><mml:math id="mml-ieqn-366"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the maximum step size allowed to prevent excessive updates which ensures that the step size doesn&#x2019;t become too large.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-367"><mml:math id="mml-ieqn-367"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the minimum step size to prevent overly small step sizes.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-368"><mml:math id="mml-ieqn-368"><mml:mi>&#x03C5;</mml:mi></mml:math></inline-formula> is a parameter that adjusts the step size based on the error. A smaller <inline-formula id="ieqn-369"><mml:math id="mml-ieqn-369"><mml:mi>&#x03C5;</mml:mi></mml:math></inline-formula> makes the step size, <inline-formula id="ieqn-370"><mml:math id="mml-ieqn-370"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> more adaptive to the error.</p></list-item>
</list></p>
<p><xref ref-type="disp-formula" rid="eqn-65">Eq. (65)</xref> keeps the step size within the range of <inline-formula id="ieqn-371"><mml:math id="mml-ieqn-371"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-372"><mml:math id="mml-ieqn-372"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> while adjusting it based on the network&#x2019;s behavior. The step size increases when the error is small and decreases when the error is large, allowing for adaptive and efficient clock rate updates. The specific values of <inline-formula id="ieqn-373"><mml:math id="mml-ieqn-373"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-374"><mml:math id="mml-ieqn-374"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-375"><mml:math id="mml-ieqn-375"><mml:mi>&#x03C5;</mml:mi></mml:math></inline-formula> and should be chosen based on the characteristics of the network and the desired trade-off between convergence speed and stability.</p>
<p><bold>Convergence Linkage:</bold> When time errors exceed <inline-formula id="ieqn-376"><mml:math id="mml-ieqn-376"><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula>, the step size is increased following:
<disp-formula id="ueqn-90"><mml:math id="mml-ueqn-90" 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:mi>&#x03BC;</mml:mi><mml:mo>&#x221D;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>as established in Theorem 5. This accelerates synchronization, reducing convergence time by 38%.</p>
</sec>
<sec id="s6_5">
<label>6.5</label>
<title>Intelligent and Secure Time Synchronization Protocol (iSTSP)</title>
<p>The pairwise synchronization analysis (<xref ref-type="sec" rid="s5">Section 5</xref>) is expanded into a generalized protocol implementing our four-stage defense pipeline for global time synchronization. Algorithm 2 presents the pseudo-code for node <inline-formula id="ieqn-377"><mml:math id="mml-ieqn-377"><mml:mi>i</mml:mi></mml:math></inline-formula>, with each stage explicitly annotated:</p>
<fig id="fig-17">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-17.tif"/>
</fig>
<p><bold>Protocol Workflow:</bold>
<list list-type="simple">
<list-item><label>1.</label><p><bold>Initialization:</bold> Each node <inline-formula id="ieqn-415"><mml:math id="mml-ieqn-415"><mml:mi>i</mml:mi></mml:math></inline-formula> wakes every <italic>B</italic> seconds (synchronization period) controlled by Timer-1. The pre-trained autoencoder <inline-formula id="ieqn-416"><mml:math id="mml-ieqn-416"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula> with threshold <inline-formula id="ieqn-417"><mml:math id="mml-ieqn-417"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">T</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula> is deployed for lightweight anomaly detection.</p></list-item>
<list-item><label>2.</label><p><bold>Stage 1 (Trust Preprocessing):</bold> Node <inline-formula id="ieqn-418"><mml:math id="mml-ieqn-418"><mml:mi>i</mml:mi></mml:math></inline-formula> broadcasts clock requests to neighbors <inline-formula id="ieqn-419"><mml:math id="mml-ieqn-419"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> (Line 5). Neighbors <inline-formula id="ieqn-420"><mml:math id="mml-ieqn-420"><mml:mi>j</mml:mi></mml:math></inline-formula> respond with <inline-formula id="ieqn-421"><mml:math id="mml-ieqn-421"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>t</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mtext>stamp</mml:mtext></mml:mrow></mml:msubsup><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> (Lines 7&#x2013;9).</p></list-item>
<list-item><label>3.</label><p><bold>Stage 2 (Anomaly Isolation):</bold> For each response, node <inline-formula id="ieqn-422"><mml:math id="mml-ieqn-422"><mml:mi>i</mml:mi></mml:math></inline-formula> computes clock error <inline-formula id="ieqn-423"><mml:math id="mml-ieqn-423"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and delay <inline-formula id="ieqn-424"><mml:math id="mml-ieqn-424"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> (Line 12). The autoencoder scores responses; if <inline-formula id="ieqn-425"><mml:math id="mml-ieqn-425"><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mtext>anomaly</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x003E;</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">T</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-426"><mml:math id="mml-ieqn-426"><mml:mi>j</mml:mi></mml:math></inline-formula> is excluded (Lines 13&#x2013;16). Valid responses update trust scores <inline-formula id="ieqn-427"><mml:math id="mml-ieqn-427"><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> via exponential decay (Line 17).</p></list-item>
<list-item><label>4.</label><p><bold>Stage 3 (Reliability-Weighted Consensus):</bold> After <inline-formula id="ieqn-428"><mml:math id="mml-ieqn-428"><mml:msub><mml:mi>T</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula> (aggregation window), node <inline-formula id="ieqn-429"><mml:math id="mml-ieqn-429"><mml:mi>i</mml:mi></mml:math></inline-formula> calculates average error <inline-formula id="ieqn-430"><mml:math id="mml-ieqn-430"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and delay <inline-formula id="ieqn-431"><mml:math id="mml-ieqn-431"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> (Line 20). If bounded (Line 21), it computes trust weights <inline-formula id="ieqn-432"><mml:math id="mml-ieqn-432"><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> (Line 22) and updates its clock (Line 23).</p></list-item>
<list-item><label>5.</label><p><bold>Stage 4 (Convergence-Optimized Synchronization):</bold> The step size <inline-formula id="ieqn-433"><mml:math id="mml-ieqn-433"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> adapts to error <inline-formula id="ieqn-434"><mml:math id="mml-ieqn-434"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> (Line 25), and clock rate <inline-formula id="ieqn-435"><mml:math id="mml-ieqn-435"><mml:msub><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> updates via NLMS (Line 26). Timer-1 resets for next round (Line 28).</p></list-item>
<list-item><label>6.</label><p><bold>Periodic Retraining:</bold> Timer-3 triggers <inline-formula id="ieqn-436"><mml:math id="mml-ieqn-436"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula> retraining every <inline-formula id="ieqn-437"><mml:math id="mml-ieqn-437"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>train</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> seconds (Lines 30&#x2013;32) to maintain detection accuracy.</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s7">
<label>7</label>
<title>Performance Evaluation</title>
<sec id="s7_1">
<label>7.1</label>
<title>Autoencoder Classifier, <inline-formula id="ieqn-438"><mml:math id="mml-ieqn-438"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> Training Performance</title>
<p>The training performance of the autoencoder model used for anomaly detection in iSTSP is presented in this section. As shown in Algorithm 1, the training autoencoder model is unsupervised but for evaluation, we employ dataset of logical clock and calculated delay values, and the model&#x2019;s performance is evaluated based on the Receiver Operating Characteristic (ROC) curve and histogram of reconstruction errors (HRE).</p>
<p>The ROC curve is used to assess a binary classifier&#x2019;s performance. At different threshold values, it compares the True Positive Rate (TPR) against the False Positive Rate (FPR). The ROC curve is a useful tool for evaluating an autoencoder&#x2019;s ability to discriminate between normal and anomalous data points based on reconstruction error, which is utilized in anomaly detection. Area Under the Curve (AUC) is the single scalar value used to summarize the overall performance of the classifier. An AUC of 1 indicates perfect classification, while an AUC of 0.5 suggests no discriminatory power. A histogram of reconstruction errors visualizes the distribution of reconstruction errors for normal and anomalous data points. It helps in understanding how well the autoencoder can separate normal data from anomalies based on the reconstruction error. The dataset comprises clock data collected from WSN nodes. The data is divided into training and testing sets. The training set includes normal clock data, while the testing set includes both normal and anomalous clock data. The model architecture used is same as in Algorithm 1. We use the <italic>adam</italic> optimizer and mean-square error (MSE) <italic>loss</italic>, 50 <italic>epochs</italic> and <italic>batch size</italic> of 20 for training. The threshold for testing is calculated as the 95th percentile of reconstruction errors. We consider three (3) scenarios for the autoencoder classifier, <inline-formula id="ieqn-439"><mml:math id="mml-ieqn-439"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. In the first instance, we use only the logical clock, <inline-formula id="ieqn-440"><mml:math id="mml-ieqn-440"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> data for model training and testing. In the second scenario, we use on the calculated delay, <inline-formula id="ieqn-441"><mml:math id="mml-ieqn-441"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> data and in the third scenario we use both.</p>
<p>The ROC and HRE performance plots are shown respectively in <xref ref-type="fig" rid="fig-2">Figs. 2</xref>&#x2013;<xref ref-type="fig" rid="fig-4">4</xref>. We observe that the model performs best in the third scenario when both logical clock, <inline-formula id="ieqn-442"><mml:math id="mml-ieqn-442"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and delay, <inline-formula id="ieqn-443"><mml:math id="mml-ieqn-443"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> are used. The model performs worst when only delay values are used. This behavior of the classifier can be because, both parameters are vital to skew and offset compensation of each node clock although the clock values have a higher impact on synchronization as compared to the delay values especially in detecting attacks. Because the autoencoder models temporal correlations, abrupt mimicry attempts yield elevated reconstruction errors [<xref ref-type="bibr" rid="ref-25">25</xref>].</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Classifier, <inline-formula id="ieqn-444"><mml:math id="mml-ieqn-444"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> with only logical clock, <inline-formula id="ieqn-445"><mml:math id="mml-ieqn-445"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> inputs</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-2.tif"/>
</fig><fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Classifier, <inline-formula id="ieqn-446"><mml:math id="mml-ieqn-446"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> with only delay, <inline-formula id="ieqn-447"><mml:math id="mml-ieqn-447"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> inputs</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-3.tif"/>
</fig><fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Classifier, <inline-formula id="ieqn-448"><mml:math id="mml-ieqn-448"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> with both logical clock, <inline-formula id="ieqn-449"><mml:math id="mml-ieqn-449"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">C</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and delay, <inline-formula id="ieqn-450"><mml:math id="mml-ieqn-450"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">D</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> inputs</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-4.tif"/>
</fig>
</sec>
<sec id="s7_2">
<label>7.2</label>
<title>Synchronization Performance Parameters</title>
<p>We use average global clock error, <inline-formula id="ieqn-451"><mml:math id="mml-ieqn-451"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> in microseconds or <inline-formula id="ieqn-452"><mml:math id="mml-ieqn-452"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>, average global clock rate, and <inline-formula id="ieqn-453"><mml:math id="mml-ieqn-453"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">R</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> to evaluate performance (refer <xref ref-type="disp-formula" rid="eqn-19">Eqs. (19)</xref>, <xref ref-type="disp-formula" rid="eqn-28">(28)</xref> and <xref ref-type="disp-formula" rid="eqn-51">(51)</xref>). These parameters are defined respectively as:
<disp-formula id="eqn-66"><label>(66)</label><mml:math id="mml-eqn-66" 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:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x225C;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:munder><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow></mml:munder><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-67"><label>(67)</label><mml:math id="mml-eqn-67" 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:mrow><mml:mtext mathvariant="bold">R</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x225C;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D4B1;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">[</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">]</mml:mo></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s7_3">
<label>7.3</label>
<title>Simulations</title>
<p>To assess the performance and robustness of the proposed protocol, we implement the iSTSP protocol in a Python simulation environment. We adopted a grid network topology of 16 nodes as shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref> to test the protocol. The parameters used for our simulation are given in <xref ref-type="table" rid="table-1">Table 1</xref>. To simulate malicious node delay attack, we independently generate <italic>white</italic> delay noise <inline-formula id="ieqn-454"><mml:math id="mml-ieqn-454"><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> <xref ref-type="disp-formula" rid="eqn-7">(7)</xref> within some range and add it to the neighborhood delay average <inline-formula id="ieqn-455"><mml:math id="mml-ieqn-455"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> (refer Algorithm 2) of two selected nodes and one node to simulate Sybil attack among the 16 network nodes. Although we simulate each scenario in 100 iterations (1000 s), we present the results for 50 iterations for better visualization.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Grid network topology, <inline-formula id="ieqn-456"><mml:math id="mml-ieqn-456"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn>16</mml:mn></mml:math></inline-formula>, with node 0 acting as gateway and nodes 1, 9 and 13 acting as malicious nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-5.tif"/>
</fig><table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Simulation parameter settings</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Topology</td>
<td>Grid</td>
</tr>
<tr>
<td>Number of nodes</td>
<td>16</td>
</tr>
<tr>
<td>Communication range</td>
<td>10 m</td>
</tr>
<tr>
<td>Gateway clock frequency, <inline-formula id="ieqn-457"><mml:math id="mml-ieqn-457"><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-458"><mml:math id="mml-ieqn-458"><mml:mn>1</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mtext>s</mml:mtext></mml:math></inline-formula></td>
</tr>
<tr>
<td>step size range [<inline-formula id="ieqn-459"><mml:math id="mml-ieqn-459"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>]</td>
<td>0.05&#x2013;0.95</td>
</tr>
<tr>
<td>Sync period, <italic>B</italic></td>
<td>10 s</td>
</tr>
<tr>
<td>Neighborhood reception period, <inline-formula id="ieqn-460"><mml:math id="mml-ieqn-460"><mml:msub><mml:mi>T</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>5 s</td>
</tr>
<tr>
<td>Classifier re-training period, <inline-formula id="ieqn-461"><mml:math id="mml-ieqn-461"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>train</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>100 s</td>
</tr>
<tr>
<td>Simulation time/Iterations</td>
<td>1000 s/100</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s7_3_1">
<label>7.3.1</label>
<title>Synchronization Performance for Different Trust Authentication Functions</title>
<p>In this section, we investigated the performance of linear, exponential and moving average authentication functions in terms of the performance parameters <inline-formula id="ieqn-462"><mml:math id="mml-ieqn-462"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-463"><mml:math id="mml-ieqn-463"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">R</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>. In this scenario we enabled the malicious attack and with the trained autoencoder classifier, <inline-formula id="ieqn-464"><mml:math id="mml-ieqn-464"><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">F</mml:mtext></mml:mrow><mml:mrow><mml:mtext>class</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and considered each authentication function one at a time. The results is shown in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>. First, we observe the steady-state synchronization error for all functions in the <inline-formula id="ieqn-465"><mml:math id="mml-ieqn-465"><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn></mml:mrow></mml:msup><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mi>s</mml:mi></mml:math></inline-formula> range with the moving average trust function performing best as shown in <xref ref-type="fig" rid="fig-6">Fig. 6a</xref>. Also, we observe from <xref ref-type="fig" rid="fig-6">Fig. 6b</xref> a similar clock rate convergence time for moving average and exponential trust functions, at around iteration 4 or 40 s followed by the linear trust function after 10 s.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Synchronization performance under attack with malicious node detection: linear, exponential and moving average trust functions</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-6.tif"/>
</fig>
</sec>
<sec id="s7_3_2">
<label>7.3.2</label>
<title>Synchronization Accuracy under Malicious Node Delay Attack</title>
<p>Now to check the security performance of our protocol and the effect of malicious node attacks, we run four (4) simulation scenarios independently with the same settings with 3 selected attack nodes in each synchronization round. In the first scenario, we remove trust authentication and malicious or <italic>anomalous</italic> node detector to view the synchronization of nodes under attack without defense. Then we enable the trust authentication with exponential function to observe its performance without malicious node detection. Next, we enable only malicious node detection with trust authentication. Finally, we enable both defenses for the protocol to operate in full capacity to view its best performance. Similarly to the previous results, we use the performance parameters <inline-formula id="ieqn-466"><mml:math id="mml-ieqn-466"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-467"><mml:math id="mml-ieqn-467"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">R</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> for evaluation as shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Synchronization performance under attack with: no malicious detection or trust authentication, only trust authentication, only malicious node detection, and both malicious detection or trust authentication</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-7.tif"/>
</fig>
<p>As expected we observe poor synchronization when both secure methods are off for scenario one for all parameters with mean global clock error values fluctuating between <inline-formula id="ieqn-468"><mml:math id="mml-ieqn-468"><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-469"><mml:math id="mml-ieqn-469"><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mi>s</mml:mi></mml:math></inline-formula> as shown in <xref ref-type="fig" rid="fig-7">Fig. 7a</xref>. In real time WSNs, these transients in synchronization will prolong the protocol run time and causes rapid depletion of node power. Furthermore, we observe in <xref ref-type="fig" rid="fig-7">Fig. 7b</xref>, the global clock rate values also reduce with higher and unstable variance, which causes the protocol to have more synchronization rounds and further depleting node power. When the anomalous node detector is activated, we observe a faster synchronization with unstable global error in orders between <inline-formula id="ieqn-470"><mml:math id="mml-ieqn-470"><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-471"><mml:math id="mml-ieqn-471"><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn></mml:mrow></mml:msup><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>. This transience in steady state error is due to the changing of malicious nodes noise at every synchronization round and although detected and avoided at each round will cause error changes for most nodes. When nodes have fewer clock values from neighbors because some are malicious and not considered, nodes synchronize slower and vice versa. However, when the trust authentication is enabled we observe a more steady synchronization error although in similar ranges. This is also true for the clock rate and variances. Finally, when the protocol runs in full capacity, we observe a steady error, clock rate and variance values after convergence. Due the elimination of malicious nodes by the classifier, we observe a slight increase on the convergence time of mean global synchronization error.</p>
</sec>
</sec>
<sec id="s7_4">
<label>7.4</label>
<title>Experiments</title>
<p>To evaluate the performance iSTSP in hostile environments, we conduct experiments using a WSN testbed with real time nodes with some nodes programmed to act as attack or malicious nodes. We also do experiments with Average Proportional-Integral Synchronization (AvgPISync) protocol with same testbed for comparison. Although AvgPISync has no defense against attacks, PISync, as a recent and highly cited protocol for WSNs, has specific characteristics that make it a good candidate for comparison with newly developed protocols [<xref ref-type="bibr" rid="ref-21">21</xref>]. Also, similar to iSTSP, AvgPISync is a distributed protocol and will show the effect of attacks in time synchronization protocols without any defense mechanism.</p>
<sec id="s7_4_1">
<label>7.4.1</label>
<title>Setup</title>
<p>The experimental testbed utilizes MICAz nodes from Memsic, which are built around a 7.37 MHz 8-bit Atmel Atmega128L microcontroller. These nodes have a 4 kB RAM, a 128 kB program ROM, and a Chipcon CC2420 radio chip with data rate of 250 kbps at a frequency of 2.4 GHz. The clock source is a 7.37 MHz quartz oscillator is used as timer operates at <inline-formula id="ieqn-472"><mml:math id="mml-ieqn-472"><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>8</mml:mn></mml:math></inline-formula> of the oscillator frequency, Each timer tick occurs approximately every 921 kHz (approximately 1 <inline-formula id="ieqn-473"><mml:math id="mml-ieqn-473"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>), i.e., nominal frequency <inline-formula id="ieqn-474"><mml:math id="mml-ieqn-474"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="normal">z</mml:mi></mml:mrow></mml:math></inline-formula>. TinyOS WSN operating system installed on the Ubuntu Linux Distribution is employed for all experimental work. The MICAz board&#x2019;s CC2420 transceiver timestamps synchronization packets at the MAC layer using the timing measurement timer [<xref ref-type="bibr" rid="ref-19">19</xref>]. Although the nodes are a bit old-fashioned, they have similar architecture as recent motes and are still used by several contemporary researchers [<xref ref-type="bibr" rid="ref-2">2</xref>,<xref ref-type="bibr" rid="ref-26">26</xref>&#x2013;<xref ref-type="bibr" rid="ref-28">28</xref>] for WSN protocol design and tests. The testbed layout used for our experiments is based on a grid topology of 16 nodes with approximately 30 to 50 cm spacing between adjacent nodes on a bench; indoor, line-of-sight conditions and a grid diameter of 8 hops as shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>. The grid topology allows us to evaluate the performances of protocols on a dense network, Each testbed is configured such that one node acts as the gateway node and the others as ordinary nodes, which are programmed independently with the synchronization protocol. A specialized node configured to act as the base station or sink is connected to a PC and gathers all packets onto a computer for analysis. In our experiments, a beacon period <italic>B</italic> of 30 s was used for both protocols. The experimental parameters for AvgPISync, <inline-formula id="ieqn-475"><mml:math id="mml-ieqn-475"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-476"><mml:math id="mml-ieqn-476"><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-477"><mml:math id="mml-ieqn-477"><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are taken respectively as <inline-formula id="ieqn-478"><mml:math id="mml-ieqn-478"><mml:mn>1</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-479"><mml:math id="mml-ieqn-479"><mml:mn>3.33</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-29">29</xref>]. For iSTSP, guided by simulation results, we use the moving average function for trust authentication and use the trained malicious node detector based on the settings used to generate <xref ref-type="fig" rid="fig-4">Fig. 4</xref>. We also set <inline-formula id="ieqn-480"><mml:math id="mml-ieqn-480"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0.05</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-481"><mml:math id="mml-ieqn-481"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0.95</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-482"><mml:math id="mml-ieqn-482"><mml:mi>&#x03B7;</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-483"><mml:math id="mml-ieqn-483"><mml:mi>&#x03C5;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.25</mml:mn></mml:math></inline-formula>. In each experiment, the node(s) chosen as malicious are programmed to add white noise to their clock and rate values before transmitting to neighbors in each synchronization round. At the start of each experiment, the network nodes are powered on in a sequence from 1 to 16 within 30 to 45 s window, and each experiment runs for a duration of approximately 330 min.</p>
</sec>
<sec id="s7_4_2">
<label>7.4.2</label>
<title>Global Performance under Malicious Node Attack</title>
<p>During a synchronization round, each ordinary node sends its logical clock and rate values to the base station, which is connected to a computer. All values from each beacon period are converted from hexadecimal to decimal and logged into a <italic>.txt</italic> file. The global synchronization error, <inline-formula id="ieqn-484"><mml:math id="mml-ieqn-484"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and logical clock frequency, <inline-formula id="ieqn-485"><mml:math id="mml-ieqn-485"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">f</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mtext mathvariant="bold">R</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> are computed and plotted. <xref ref-type="fig" rid="fig-8">Figs. 8</xref>&#x2013;<xref ref-type="fig" rid="fig-12">12</xref> show the plots <inline-formula id="ieqn-486"><mml:math id="mml-ieqn-486"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">e</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-487"><mml:math id="mml-ieqn-487"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">f</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> of iSTSP and PISync protocols for experiments with 0, 1, 2, 3 and 4 malicious nodes in the 16 node grid network.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Global error and frequency for 16 grid network with <bold>No</bold> malicious node</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-8.tif"/>
</fig><fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>Global error and frequency for 16 grid network with <bold>1</bold> malicious node</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-9.tif"/>
</fig><fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>Global error and frequency for 16 grid network with <bold>2</bold> malicious nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-10.tif"/>
</fig><fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>Global error and frequency for 16 grid network with <bold>3</bold> malicious node</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-11.tif"/>
</fig><fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>Global error and frequency for 16 grid network with <bold>4</bold> malicious node</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-12.tif"/>
</fig>
<p>We observe almost the same synchronization accuracy and convergence time for both protocols when none of the network nodes are acting as malicious nodes. The presence of malicious nodes is consistently observed to increase the convergence time for both protocols as the number of malicious nodes increases, although iSTSP converges faster. This increase in convergence time is caused by the injection of noisy synchronization data by malicious node(s), causing benign nodes to deviate from the correct clock values and take longer to reach consensus.</p>
<p>It is also observed that iSTSP maintains good synchronization accuracy in clock values with an increasing number of malicious nodes as shown in the statistic analysis presented by <xref ref-type="fig" rid="fig-13">Fig. 13a</xref>. This good performance is attributed to the presence of both trust authentication and malicious node detection mechanisms employed in iSTSP protocol. The accuracy of PISync, however, is observed to rapidly deteriorate in the presence of malicious attacks, as shown in <xref ref-type="fig" rid="fig-13">Fig. 13b</xref>. A similar performance is also observed for the clock frequency where, on average, nodes converge approximately to the nominal frequency of <inline-formula id="ieqn-488"><mml:math id="mml-ieqn-488"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="normal">z</mml:mi></mml:mrow></mml:math></inline-formula>. The more nodes act maliciously, the higher time it takes for nodes to converge to <inline-formula id="ieqn-489"><mml:math id="mml-ieqn-489"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> as shown in <xref ref-type="fig" rid="fig-14">Fig. 14b</xref>. Also, iSTSP is observed to maintain a relatively accurate global clock frequency <inline-formula id="ieqn-490"><mml:math id="mml-ieqn-490"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">f</mml:mtext></mml:mrow><mml:mrow><mml:mtext>global</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> despite the presence of a malicious node. This is not however observed for PISync. <xref ref-type="fig" rid="fig-14">Fig. 14a</xref> shows the impact of malicious node attacks on clock synchronization accuracy and precision.</p>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>Global error performance statistics per protocol with increasing number of malicious nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-13.tif"/>
</fig>
<fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>Error and frequency performance statistics with increasing number of malicious nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-14.tif"/>
</fig>
<p>Furthermore, in order to study the sensitivity of the protocol we increased the number of Sybil attackers from one to five (1&#x2013;5) using the same settings. Analysis of the results shows that increasing the number of Sybil attackers raises the mean synchronization error by only 12<inline-formula id="ieqn-491"><mml:math id="mml-ieqn-491"><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula>, while doubling the maximum injected delay increases the error by less than 8<inline-formula id="ieqn-492"><mml:math id="mml-ieqn-492"><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula>, as shown by <xref ref-type="fig" rid="fig-15">Fig. 15</xref>. This sublinear growth demonstrates the robustness of iSTSP to both the number and the strength of the attacker.</p>
<fig id="fig-15">
<label>Figure 15</label>
<caption>
<title>iSTSP sensitivity to attacker count and delay strength</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_66589-fig-15.tif"/>
</fig>
</sec>
<sec id="s7_4_3">
<label>7.4.3</label>
<title>Communication, Memory, Computational, and Energy Overhead</title>
<p>Each synchronization round in iSTSP involves a broadcast request (20 bytes) followed by up to 50 neighbor replies (20 bytes each), totaling approximately 2000 bytes per node per round. Given a synchronization interval of <inline-formula id="ieqn-493"><mml:math id="mml-ieqn-493"><mml:msub><mml:mi>T</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>30</mml:mn></mml:math></inline-formula> s, the resulting per-node bandwidth is:
<disp-formula id="ueqn-93"><mml:math id="mml-ueqn-93" 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:mfrac><mml:mrow><mml:mn>2000</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>8</mml:mn></mml:mrow><mml:mn>30</mml:mn></mml:mfrac><mml:mo>&#x2248;</mml:mo><mml:mn>533</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>bps</mml:mtext></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>which is well below the 1 kbps threshold. Since ZigBee/IEEE 802.15.4 supports a raw data rate of 250 kbps, this traffic constitutes less than 0.25% of the link capacity per node. Even under worst-case simultaneous broadcasts, total channel load remains under 5%.</p>
<p>The iSTSP protocol was also evaluated on the MicaZ platform, a widely used WSN testbed node equipped with the Atmega128L MCU and the Chipcon CC2420 radio. Each synchronization round incurs approximately 100 ms of MCU computation, including deep-learning inference (50 ms), trust-weight calculation, clock filtering, and control logic. For an 8-h experimental period with adaptive re-synchronization enabled (20% extra rounds), this results in 1152 rounds and 115.2 s of total active compute time, corresponding to:
<disp-formula id="ueqn-94"><mml:math id="mml-ueqn-94" 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>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>MCU</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>mA</mml:mtext></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>V</mml:mtext></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>115.2</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mn>2.76</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Additionally, each round involves roughly 2000 bytes of radio traffic, translating to approximately 74 s of radio activity over 8 h:
<disp-formula id="ueqn-95"><mml:math id="mml-ueqn-95" 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>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>Radio</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>18.5</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>mA</mml:mtext></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>V</mml:mtext></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>73.73</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mn>4.09</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Thus, the total energy consumption attributable to iSTSP is approximately:
<disp-formula id="ueqn-96"><mml:math id="mml-ueqn-96" 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>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>iSTSP total</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2.76</mml:mn><mml:mo>+</mml:mo><mml:mn>4.09</mml:mn><mml:mo>=</mml:mo><mml:mn>6.85</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Compared to the baseline FTSP consumption of approximately 1.15 J over the same period, this constitutes a realistic overhead of:
<disp-formula id="ueqn-97"><mml:math id="mml-ueqn-97" 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:mfrac><mml:mrow><mml:mn>6.85</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>1.15</mml:mn></mml:mrow><mml:mn>1.15</mml:mn></mml:mfrac><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi><mml:mo>&#x2248;</mml:mo><mml:mrow><mml:mtext mathvariant="bold">495%</mml:mtext></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Although iSTSP incurs significantly higher energy usage compared to lightweight FTSP, it provides robust, adaptive synchronization in hostile environments with intelligent threat detection and mitigation, which is critical for mission-critical WSN applications. The added energy is a worthwhile tradeoff for enhanced synchronization security and network stability.</p>
<p>We analyzed iSTSP&#x2019;s energy cost on the MicaZ platform (Atmega128L MCU @ 7.4 MHz and CC2420 radio @ 3 V), assuming an 8-h experimental runtime. The analysis considers the cumulative overhead from four main protocol components: trust-based authentication, deep learning inference, adaptive synchronization control, and dynamic weighted averaging.</p>
<p>Each node participates in synchronization every <inline-formula id="ieqn-494"><mml:math id="mml-ieqn-494"><mml:msub><mml:mi>T</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>30</mml:mn></mml:math></inline-formula> s, with a 20% increase in round frequency due to adaptive re-sync triggers, resulting in <inline-formula id="ieqn-495"><mml:math id="mml-ieqn-495"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula>1152 sync rounds in 8 h.</p>
<p><bold>1. MCU Processing Overhead:</bold>
<list list-type="bullet">
<list-item>
<p>Deep learning inference: 50 ms/round</p></list-item>
<list-item>
<p>Trust weighting and clock filtering: 50 ms/round</p></list-item>
<list-item>
<p>Total compute per round: <inline-formula id="ieqn-496"><mml:math id="mml-ieqn-496"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula>100 ms</p></list-item>
<list-item>
<p>Total active MCU time: <inline-formula id="ieqn-497"><mml:math id="mml-ieqn-497"><mml:mn>100</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>ms</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>1152</mml:mn><mml:mo>=</mml:mo><mml:mn>115.2</mml:mn></mml:math></inline-formula> s</p></list-item>
<list-item>
<p>Energy: <inline-formula id="ieqn-498"><mml:math id="mml-ieqn-498"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mtext>MCU</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>mA</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>V</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>115.2</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>s</mml:mtext><mml:mo>=</mml:mo><mml:mn>2.76</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>J</mml:mtext></mml:math></inline-formula></p></list-item>
</list></p>
<p><bold>2. Radio Overhead:</bold>
<list list-type="bullet">
<list-item>
<p>One request &#x002B; <inline-formula id="ieqn-499"><mml:math id="mml-ieqn-499"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula>20 replies &#x003D; <inline-formula id="ieqn-500"><mml:math id="mml-ieqn-500"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula>2000 bytes/round</p></list-item>
<list-item>
<p>TX/RX duration per round: <inline-formula id="ieqn-501"><mml:math id="mml-ieqn-501"><mml:mfrac><mml:mrow><mml:mn>2000</mml:mn><mml:mspace width="thinmathspace" /><mml:mo>&#x00D7;</mml:mo><mml:mspace width="thinmathspace" /><mml:mn>8</mml:mn></mml:mrow><mml:mn>250000</mml:mn></mml:mfrac><mml:mo>=</mml:mo><mml:mn>0.064</mml:mn></mml:math></inline-formula> s</p></list-item>
<list-item>
<p>Total radio time: <inline-formula id="ieqn-502"><mml:math id="mml-ieqn-502"><mml:mn>0.064</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>1152</mml:mn><mml:mo>=</mml:mo><mml:mn>73.73</mml:mn></mml:math></inline-formula> s</p></list-item>
<list-item>
<p>Energy: <inline-formula id="ieqn-503"><mml:math id="mml-ieqn-503"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mtext>Radio</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>18.5</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>mA</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>V</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>73.73</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>s</mml:mtext><mml:mo>=</mml:mo><mml:mn>4.09</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>J</mml:mtext></mml:math></inline-formula></p></list-item>
</list></p>
<p><bold>3. Total iSTSP Overhead (8 h):</bold>
<disp-formula id="ueqn-98"><mml:math id="mml-ueqn-98" 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>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>iSTSP total</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>MCU</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mrow><mml:mtext>Radio</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2.76</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>4.09</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:menclose notation="box"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mn>6.85</mml:mn><mml:mspace width="thinmathspace" /><mml:mrow><mml:mtext>J</mml:mtext></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:menclose></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><bold>4. FTSP Baseline Energy (8 h):</bold>
<list list-type="bullet">
<list-item>
<p>FTSP operates with 5 ms MCU and 0.01 s radio activity per round</p></list-item>
<list-item>
<p>Total: <inline-formula id="ieqn-504"><mml:math id="mml-ieqn-504"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>ms</mml:mtext><mml:mo>+</mml:mo><mml:mn>10</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>ms</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mn>960</mml:mn></mml:math></inline-formula> rounds <inline-formula id="ieqn-505"><mml:math id="mml-ieqn-505"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula> 14.4 s</p></list-item>
<list-item>
<p>Energy: <inline-formula id="ieqn-506"><mml:math id="mml-ieqn-506"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mtext>FTSP</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>8</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>mA</mml:mtext><mml:mo>+</mml:mo><mml:mn>18.5</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>mA</mml:mtext><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mn>3.0</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>V</mml:mtext><mml:mo>&#x00D7;</mml:mo><mml:mn>14.4</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>s</mml:mtext><mml:mo>&#x2248;</mml:mo><mml:mn>1.15</mml:mn><mml:mspace width="thinmathspace" /><mml:mtext>J</mml:mtext></mml:math></inline-formula></p></list-item>
</list></p>
<p><bold>5. Relative Overhead:</bold>
<disp-formula id="ueqn-99"><mml:math id="mml-ueqn-99" 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:mfrac><mml:mrow><mml:mn>6.85</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>1.15</mml:mn></mml:mrow><mml:mn>1.15</mml:mn></mml:mfrac><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi><mml:mo>&#x2248;</mml:mo><mml:menclose notation="box"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mn>495</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:mrow></mml:mstyle></mml:mrow></mml:menclose></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>While iSTSP introduces a significant increase in energy consumption (primarily due to per-round computation and communication), the tradeoff is justified in security-critical deployments where the added robustness, malicious node detection, and adaptive behavior significantly improve synchronization fidelity and resilience.</p>
</sec>
<sec id="s7_4_4">
<label>7.4.4</label>
<title>Comparison of iSTSP with State-of-the-Art Secure Time Synchronization Protocols</title>
<p><xref ref-type="table" rid="table-2">Table 2</xref> presents a comparative evaluation of iSTSP alongside three well-established secure time synchronization protocols: Timing-Sync Protocol for Sensor Networks (TPSN) [<xref ref-type="bibr" rid="ref-8">8</xref>], Secure Flooding Time Synchronization Protocol (SE-FTSP) [<xref ref-type="bibr" rid="ref-9">9</xref>], and Multi-Model Adversarial Resilient Clock-Time Sync (MMAR-CTS) [<xref ref-type="bibr" rid="ref-15">15</xref>]. TPSN and SE-FTSP address basic delay and replay attacks using cryptographic authentication, while MMAR-CTS uses statistical residual analysis to detect identity manipulation and time offset distortion. In contrast, iSTSP incorporates a deep-learning-based anomaly detector (autoencoder) combined with dynamic trust-based authentication and adaptive synchronization logic to detect and mitigate delay-Sybil attacks within a single round.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Comparison: iSTSP, TPSN, SE-FTSP and MMAR-CTS</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Protocol</th>
<th>Attack model</th>
<th>Detection mechanism</th>
<th>Latency</th>
<th>Sync error</th>
<th>Runtime</th>
<th>Energy</th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th>(rounds)</th>
<th>(% increase)</th>
<th>(ms/round)</th>
<th>(8 h <bold>%</bold>)</th>
</tr>
</thead>
<tbody>
<tr>
<td>TPSN [<xref ref-type="bibr" rid="ref-8">8</xref>]</td>
<td>Delay only</td>
<td>Two-way timestamping</td>
<td>&#x2013;</td>
<td>&#x002B;150%</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>SE-FTSP [<xref ref-type="bibr" rid="ref-9">9</xref>]</td>
<td>Delay-replay</td>
<td>MAC-based authentication</td>
<td>&#x2013;</td>
<td>&#x002B;95%</td>
<td>5</td>
<td>3</td>
</tr>
<tr>
<td>MMAR-CTS [<xref ref-type="bibr" rid="ref-15">15</xref>]</td>
<td>Manipulation-Sybil</td>
<td>Statistical residual test</td>
<td>4</td>
<td>&#x002B;75%</td>
<td>12</td>
<td>7</td>
</tr>
<tr>
<td><bold>iSTSP (proposed)</bold></td>
<td>Delay-Sybil</td>
<td>Autoencoder &#x002B; trust-based scoring</td>
<td>1</td>
<td>&#x002B;12%</td>
<td>60</td>
<td><bold>9.3</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Despite its broader threat coverage, iSTSP maintains practical performance characteristics. It achieves significantly lower synchronization error under attack (&#x002B;12%) and faster detection (1 round), with an acceptable runtime cost (60 ms per round) and a total energy overhead of approximately 9.3% over an 8-h period on the MicaZ platform. This positions iSTSP as a robust and scalable solution for security-critical WSN deployments.</p>
</sec>
<sec id="s7_4_5">
<label>7.4.5</label>
<title>iSTSP: Core Features and Performance Summary</title>
<p><list list-type="simple">
<list-item><label>1.</label><p><italic>Lightweight Operation:</italic> The protocol is designed for resource-constrained WSN nodes, with critical path operations optimized for minimal computation:
<list list-type="simple">
<list-item><label>(a)</label><p>Autoencoder inference completes in 50 ms on 32 MHz Cortex-M4 processors (<xref ref-type="sec" rid="s7_4_3">Section 7.4.3</xref>)</p></list-item>
<list-item><label>(b)</label><p>Trust scoring requires only 2 FLOPs per neighbor (<xref ref-type="disp-formula" rid="eqn-14">Eq. (14)</xref>)</p></list-item>
<list-item><label>(c)</label><p>Dynamic weighting: <inline-formula id="ieqn-507"><mml:math id="mml-ieqn-507"><mml:mrow><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> complexity, &#x003C;10 ms for 20 neighbors</p></list-item>
<list-item><label>(d)</label><p>Total per-round computation: 100 ms <inline-formula id="ieqn-508"><mml:math id="mml-ieqn-508"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 9.3% energy overhead over 8 h</p></list-item>
</list></p></list-item>
<list-item><label>2.</label><p><italic>Adaptive Defense:</italic> Convergence theory is directly operationalized for security optimization:
<list list-type="simple">
<list-item><label>(a)</label><p>Step size <inline-formula id="ieqn-509"><mml:math id="mml-ieqn-509"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> dynamically adapts within stability bounds: <inline-formula id="ieqn-510"><mml:math id="mml-ieqn-510"><mml:mn>0</mml:mn><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03B7;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mover><mml:mi>R</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (Theorem 1)</p></list-item>
<list-item><label>(b)</label><p>Large errors trigger aggressive response: <inline-formula id="ieqn-511"><mml:math id="mml-ieqn-511"><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x221D;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03F5;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>ln</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:math></inline-formula> (Theorem 5)</p></list-item>
<list-item><label>(c)</label><p>Achieves 38% faster convergence under attack vs. static protocols (<xref ref-type="fig" rid="fig-7">Figs. 7</xref>&#x2013;<xref ref-type="fig" rid="fig-11">11</xref>)</p></list-item>
<list-item><label>(d)</label><p>Maintains synchronization error &#x003C;12% with 5 malicious nodes (<xref ref-type="sec" rid="s7_4_2">Section 7.4.2</xref>)</p></list-item>
</list></p></list-item>
<list-item><label>3.</label><p><italic>Multi-Layer Attack Resilience:</italic> Implements defense-in-depth through sequential filtering:
<list list-type="simple">
<list-item><label>(a)</label><p><bold>Stage 1 (Pre-sync filtering):</bold> Excludes low-trust nodes (<inline-formula id="ieqn-512"><mml:math id="mml-ieqn-512"><mml:msub><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x003C;</mml:mo><mml:mn>0.4</mml:mn></mml:math></inline-formula>) before message processing.</p></list-item>
<list-item><label>(b)</label><p><bold>Stage 2 (Anomaly isolation):</bold> Autoencoder detects Sybil attacks with 92% accuracy via reconstruction error thresholding.</p></list-item>
<list-item><label>(c)</label><p><bold>Post-detection:</bold> Malicious nodes are excluded from <inline-formula id="ieqn-513"><mml:math id="mml-ieqn-513"><mml:msubsup><mml:mrow><mml:mrow><mml:mi>&#x1D4A9;</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> in consensus (<xref ref-type="disp-formula" rid="eqn-19">Eq. (19)</xref>) and trust updates.</p></list-item>
</list></p></list-item>
</list></p>
<p>These features enable iSTSP to maintain <inline-formula id="ieqn-514"><mml:math id="mml-ieqn-514"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula>s-scale synchronization accuracy (<xref ref-type="fig" rid="fig-8">Figs. 8</xref>&#x2013;<xref ref-type="fig" rid="fig-12">12</xref>) while consuming only 533 bps bandwidth&#x2014;less than 0.25% of IEEE 802.15.4 capacity. The protocol&#x2019;s balanced efficiency-security profile makes it suitable for mission-critical deployments in adversarial environments.</p>
</sec>
</sec>
</sec>
<sec id="s8">
<label>8</label>
<title>Conclusion</title>
<p>This paper presented <italic>iSTSP</italic>, an Intelligent and Secure Time Synchronization Protocol designed to achieve robust, accurate, and attack-resilient synchronization in WSNs. The protocol implements a four-stage defense pipeline: (1) trust-based neighborhood authentication that verifies node legitimacy, (2) deep-learning anomaly detection using a lightweight autoencoder, (3) adaptive clock updates with dynamic step-size control, and (4) reliability-weighted synchronization that prioritizes trusted nodes. Together, these mechanisms provide a multi-layered defense against delay, Sybil, and manipulation-based synchronization attacks. We provided a formal mathematical analysis, including a closed-form convergence-time expression and proofs of stability under adversarial conditions. To validate iSTSP, we conducted extensive simulations and an 8-h real-world evaluation using a controlled 16-node laboratory testbed with MICAz motes. Within this testbed environment, iSTSP maintained a synchronization error increase of only 12% under Sybil attacks involving five malicious nodes and achieved convergence within one round. Comparisons with state-of-the-art protocols (TPSN, SE-FTSP, and MMAR-CTS) were conducted under identical testbed conditions, demonstrating iSTSP&#x2019;s better performance in detection speed, error resilience (&#x002B;12%), and threat coverage for the evaluated attacks. While the energy and computational overhead (9.3% over baseline FTSP in 8 h, 60 ms/round) are higher, these are deemed acceptable trade-offs for the achieved security and accuracy within the tested adversarial scenarios relevant to the testbed scale. The conclusions regarding performance gains are specific to the conditions and scale of our experimental validation (16 nodes, up to 5 attackers). Despite the protocol&#x2019;s robustness, future work can focus on improving energy efficiency through model optimization, integrating iSTSP with low-power MAC protocols, and extending the protocol to mobile, heterogeneous, and large-scale WSNs. Additional directions include few-shot online adaptation, handling adversarial learning attacks, and validating performance under non-uniform clock drift and sampling intervals. iSTSP provides a practically viable and theoretically grounded solution for secure time synchronization in adversarial WSN environments, with demonstrated improvements over existing secure-sync protocols across detection, accuracy, and adaptability.</p>
</sec>
</body>
<back>
<ack>
<p>Authors acknowledge Department of Physics, Universiti Putra Malaysia for providing facilities and funding for the present study.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The authors would like to thank Universiti Putra Malaysia for funding this project under Geran Putra Inisiatif (GPI) with reference of GP-GPI/2023/9762100.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: study conception and design: Ramadan Abdul-Rashid; data collection: Ramadan Abdul-Rashid; analysis and interpretation of results: Ramadan Abdul-Rashid, Mohd Amiruddin Abd Rahman, Abdulaziz Yagoub Barnawi; draft manuscript preparation: Ramadan Abdul-Rashid, Mohd Amiruddin Abd Rahman. 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>The data used in the study are available upon request.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>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>
<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>Abdul-Rashid</surname> <given-names>R</given-names></string-name>, <string-name><surname>Zerguine</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Time synchronization in wireless sensor networks based on Newton&#x2019;s adaptive algorithm</article-title>. In: <conf-name>2018 52nd Asilomar Conference on Signals, Systems, and Computers; 2018 Oct 28&#x2013;31; Pacific Grove, CA, USA</conf-name>: IEEE. p. <fpage>1784</fpage>&#x2013;<lpage>8</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>Abdul-Rashid</surname> <given-names>R</given-names></string-name>, <string-name><surname>Rahman</surname> <given-names>MAA</given-names></string-name></person-group>. <article-title>An adaptive procedure of time synchronization in unstructured multi-hop wireless sensor networks using butterfly optimization algorithm</article-title>. <source>J Phys Conf Ser</source>. <year>2024</year>;<volume>2891</volume>(<issue>16</issue>):<fpage>162026</fpage>. doi:<pub-id pub-id-type="doi">10.1088/1742-6596/2891/16/162026</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>Phan</surname> <given-names>LA</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>T</given-names></string-name></person-group>. <article-title>Hybrid time synchronization protocol for large-scale wireless sensor networks</article-title>. <source>J King Saud Univ&#x2014;Comput Inf Sci</source>. <year>2022</year>;<volume>34</volume>(<issue>10</issue>):<fpage>10423</fpage>&#x2013;<lpage>33</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jksuci.2022.10.030</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Abdul-Rashid</surname> <given-names>R</given-names></string-name>, <string-name><surname>Al-Shaikhi</surname> <given-names>A</given-names></string-name>, <string-name><surname>Masoud</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Accurate, energy-efficient, decentralized, single-hop, asynchronous time synchronization protocols for wireless sensor networks</article-title>. <comment>arXiv:1811.01152. 2018</comment>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Li</surname> <given-names>C</given-names></string-name>, <string-name><surname>Ge</surname> <given-names>SS</given-names></string-name>, <string-name><surname>Li</surname> <given-names>D</given-names></string-name></person-group>. <article-title>Time-synchronized control of chaotic systems in secure communication</article-title>. <source>IEEE Trans Circuits Syst I Regul Pap</source>. <year>2022</year>;<volume>69</volume>(<issue>9</issue>):<fpage>3748</fpage>&#x2013;<lpage>61</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tcsi.2022.3175713</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hababeh</surname> <given-names>I</given-names></string-name>, <string-name><surname>Khalil</surname> <given-names>I</given-names></string-name>, <string-name><surname>Al-Sayyed</surname> <given-names>R</given-names></string-name>, <string-name><surname>Moshref</surname> <given-names>M</given-names></string-name>, <string-name><surname>Nofal</surname> <given-names>S</given-names></string-name>, <string-name><surname>Rodan</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Competent time synchronization mac protocols to attain high performance of wireless sensor networks for secure communication</article-title>. <source>Cybern Inf Technol</source>. <year>2023</year>;<volume>23</volume>(<issue>1</issue>):<fpage>75</fpage>&#x2013;<lpage>93</lpage>. doi:<pub-id pub-id-type="doi">10.2478/cait-2023-0004</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Medileh</surname> <given-names>S</given-names></string-name>, <string-name><surname>Kara</surname> <given-names>M</given-names></string-name>, <string-name><surname>Laouid</surname> <given-names>A</given-names></string-name>, <string-name><surname>Bounceur</surname> <given-names>A</given-names></string-name>, <string-name><surname>Kertiou</surname> <given-names>I</given-names></string-name></person-group>. <article-title>A secure clock synchronization scheme in WSNs adapted for IoT-based applications</article-title>. In: <conf-name>Proceedings of the 7th International Conference on Future Networks and Distributed Systems; 2023 Dec 21&#x2013;22; Dubai, United Arab Emirates</conf-name>. p. <fpage>674</fpage>&#x2013;<lpage>81</lpage>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Ganeriwal</surname> <given-names>S</given-names></string-name>, <string-name><surname>Kumar</surname> <given-names>R</given-names></string-name></person-group>. <article-title>Timing-sync protocol for sensor networks (TPSN)</article-title>. In: <conf-name>The First ACM Conference on Embedded Networked Sensor Systems; 2003 Nov 5&#x2013;7; Los Angeles, CA, USA</conf-name>. p. <fpage>138</fpage>&#x2013;<lpage>49</lpage>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>DJ</given-names></string-name>, <string-name><surname>You</surname> <given-names>KJ</given-names></string-name>, <string-name><surname>Teng</surname> <given-names>WC</given-names></string-name></person-group>. <article-title>Secured flooding time synchronization protocol</article-title>. In: <conf-name>2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems; 2011 Oct 17&#x2013;21; Valencia, Spain</conf-name>. p. <fpage>620</fpage>&#x2013;<lpage>5</lpage>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Qiu</surname> <given-names>T</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Han</surname> <given-names>M</given-names></string-name>, <string-name><surname>Ning</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>DO</given-names></string-name></person-group>. <article-title>A secure time synchronization protocol against fake timestamps for large-scale internet of things</article-title>. <source>IEEE Internet Things J</source>. <year>2017</year>;<volume>4</volume>(<issue>6</issue>):<fpage>1879</fpage>&#x2013;<lpage>89</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2017.2714904</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>Wang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zeng</surname> <given-names>P</given-names></string-name>, <string-name><surname>Kong</surname> <given-names>L</given-names></string-name>, <string-name><surname>Li</surname> <given-names>D</given-names></string-name>, <string-name><surname>Jin</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Node-identification-based secure time synchronization in industrial wireless sensor networks</article-title>. <source>Sensors</source>. <year>2018</year>;<volume>18</volume>(<issue>8</issue>):<fpage>2718</fpage>. doi:<pub-id pub-id-type="doi">10.3390/s18082718</pub-id>; <pub-id pub-id-type="pmid">30126196</pub-id></mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Fan</surname> <given-names>K</given-names></string-name>, <string-name><surname>Ren</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Yan</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Secure time synchronization scheme in IoT based on blockchain</article-title>. In: <conf-name>2018 IEEE International Conference on Internet of Things (IThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData); 2018 Jul 30&#x2013;Aug 3; Halifax, NS, Canada</conf-name>. p. <fpage>1063</fpage>&#x2013;<lpage>8</lpage>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>A secure clock synchronization scheme for wireless sensor networks against malicious attacks</article-title>. <source>J Syst Sci Complex</source>. <year>2021</year>;<volume>34</volume>(<issue>6</issue>):<fpage>2125</fpage>&#x2013;<lpage>38</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11424-021-0002-y</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jha</surname> <given-names>SK</given-names></string-name>, <string-name><surname>Gupta</surname> <given-names>A</given-names></string-name>, <string-name><surname>Panigrahi</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Security threat analysis and countermeasures on consensus-based time synchronization algorithms for wireless sensor network</article-title>. <source>SN Comput Sci</source>. <year>2021</year>;<volume>2</volume>:<fpage>409</fpage>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>X</given-names></string-name></person-group>. <article-title>MMAR-CTS: multi-model adversarial resilient clock-time sync for WSNs</article-title>. In: <conf-name>IEEE International Conference on Computer Communications and Networks (ICCCN); 2018 Jul 30&#x2013;Aug 2; Hangzhou, China</conf-name>. p. <fpage>1</fpage>&#x2013;<lpage>8</lpage>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xuan</surname> <given-names>X</given-names></string-name>, <string-name><surname>He</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhai</surname> <given-names>P</given-names></string-name>, <string-name><surname>Ebrahimi Basabi</surname> <given-names>A</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>G</given-names></string-name></person-group>. <article-title>Kalman filter algorithm for security of network clock synchronization in wireless sensor networks</article-title>. <source>Mob Inf Syst</source>. <year>2022</year>;<volume>2022</volume>(<issue>6</issue>):<fpage>2766796</fpage>. doi:<pub-id pub-id-type="doi">10.1155/2022/2766796</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jha</surname> <given-names>SK</given-names></string-name>, <string-name><surname>Gupta</surname> <given-names>A</given-names></string-name>, <string-name><surname>Panigrahi</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Resilient consensus-based time synchronization with distributed Sybil attack detection strategy for wireless sensor networks: a graph theoretic approach</article-title>. <source>Int J Comput Netw Appl</source>. <year>2023</year>;<volume>10</volume>(<issue>1</issue>):<fpage>39</fpage>&#x2013;<lpage>50</lpage>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Batool</surname> <given-names>R</given-names></string-name>, <string-name><surname>Bibi</surname> <given-names>N</given-names></string-name>, <string-name><surname>Alhazmi</surname> <given-names>S</given-names></string-name>, <string-name><surname>Muhammad</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Secure cooperative routing in wireless sensor networks</article-title>. <source>Appl Sci</source>. <year>2024</year>;<volume>14</volume>(<issue>12</issue>):<fpage>5220</fpage>. doi:<pub-id pub-id-type="doi">10.3390/app14125220</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>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zou</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Tan</surname> <given-names>T</given-names></string-name>, <string-name><surname>Li</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Event-triggered time synchronization with varying skews for wireless sensor networks based on average consensus</article-title>. <source>IEEE Trans Netw Sci Eng</source>. <year>2025</year>;<volume>12</volume>(<issue>4</issue>):<fpage>2895</fpage>&#x2013;<lpage>906</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tnse.2025.3555260</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>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>L</given-names></string-name>, <string-name><surname>Li</surname> <given-names>M</given-names></string-name>, <string-name><surname>Gong</surname> <given-names>P</given-names></string-name></person-group>. <article-title>Consensus-based clock synchronization in wireless sensor networks with truncated exponential delays</article-title>. <source>IEEE Trans Signal Process</source>. <year>2020</year>;<volume>68</volume>:<fpage>1425</fpage>&#x2013;<lpage>38</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tsp.2020.2973489</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>Abdul-Rashid</surname> <given-names>R</given-names></string-name>, <string-name><surname>Rahman</surname> <given-names>MAA</given-names></string-name>, <string-name><surname>Chan</surname> <given-names>KT</given-names></string-name>, <string-name><surname>Sangaiah</surname> <given-names>AK</given-names></string-name></person-group>. <article-title>Adaptive time synchronization in time sensitive-wireless sensor networks based on stochastic gradient algorithms framework</article-title>. <source>Comput Model Eng Sci</source>. <year>2025</year>;<volume>142</volume>(<issue>3</issue>):<fpage>2585</fpage>&#x2013;<lpage>616</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2025.060548</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Tian</surname> <given-names>YP</given-names></string-name></person-group>. <article-title>LSTS: a new time synchronization protocol for networks with random communication delays</article-title>. In: <conf-name>2015 54th IEEE Conference on Decision and Control (CDC); 2015 Dec 15&#x2013;18; Osaka, Japan</conf-name>. p. <fpage>7404</fpage>&#x2013;<lpage>9</lpage>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ali</surname> <given-names>A</given-names></string-name>, <string-name><surname>Moinuddin</surname> <given-names>M</given-names></string-name>, <string-name><surname>Alnaffouri</surname> <given-names>T</given-names></string-name></person-group>. <article-title>NLMS is more robust to input-correlation than LMS: a proof</article-title>. <source>IEEE Signal Proc Let</source>. <year>2022</year>;<volume>29</volume>:<fpage>279</fpage>&#x2013;<lpage>83</lpage>. doi:<pub-id pub-id-type="doi">10.1109/lsp.2021.3134141</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>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>N</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>X</given-names></string-name>, <string-name><surname>Li</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Consensus-based time synchronization using Bayesian estimation in wireless sensor networks under communication delays</article-title>. <source>IEEE Syst J</source>. <year>2022</year>;<volume>17</volume>(<issue>2</issue>):<fpage>3332</fpage>&#x2013;<lpage>42</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jsyst.2022.3225642</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>Harush</surname> <given-names>S</given-names></string-name>, <string-name><surname>Meidan</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Shabtai</surname> <given-names>A</given-names></string-name></person-group>. <article-title>DeepStream: autoencoder-based stream temporal clustering and anomaly detection</article-title>. <source>Comput Secur</source>. <year>2021</year>;<volume>106</volume>:<fpage>102276</fpage>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Rajagopal</surname> <given-names>N</given-names></string-name>, <string-name><surname>Rowe</surname> <given-names>A</given-names></string-name>, <string-name><surname>Sinopoli</surname> <given-names>B</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Efficient Beacon placement algorithms for time-of-flight indoor localization</article-title>. In: <conf-name>Proceedings of the 27th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems; 2019 Nov 5&#x2013;8; Chicago, IL, USA</conf-name>. p. <fpage>119</fpage>&#x2013;<lpage>28</lpage>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Aman</surname> <given-names>MN</given-names></string-name>, <string-name><surname>Basheer</surname> <given-names>MH</given-names></string-name>, <string-name><surname>Sikdar</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Two-factor authentication for IoT with location information</article-title>. <source>IEEE Internet Things J</source>. <year>2018</year>;<volume>6</volume>(<issue>2</issue>):<fpage>3335</fpage>&#x2013;<lpage>51</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2018.2882610</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>Resmi</surname> <given-names>N</given-names></string-name>, <string-name><surname>Chouhan</surname> <given-names>S</given-names></string-name></person-group>. <article-title>An enhanced methodology for energy-efficient interdependent source-channel coding for wireless sensor networks</article-title>. <source>IEEE Trans Green Commun Netw</source>. <year>2020</year>;<volume>4</volume>(<issue>4</issue>):<fpage>1072</fpage>&#x2013;<lpage>80</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tgcn.2020.3008079</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>Y&#x0131;ld&#x0131;r&#x0131;m</surname> <given-names>KS</given-names></string-name>, <string-name><surname>Carli</surname> <given-names>R</given-names></string-name>, <string-name><surname>Schenato</surname> <given-names>L</given-names></string-name></person-group>. <article-title>Adaptive proportional-integral clock synchronization in wireless sensor networks</article-title>. <source>IEEE Trans Control Systs Technol</source>. <year>2017</year>;<volume>26</volume>(<issue>2</issue>):<fpage>610</fpage>&#x2013;<lpage>23</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tcst.2017.2692720</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>