Node-to-node network time synchronization
By utilizing data transmission communication in the load-sharing network, the nodes synchronize the reference time of the master node, solving the problem of time synchronization difficulties in distributed networks, and achieving efficient and low-complexity time synchronization.
Patent Information
- Application Number
- CN202380067493.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-29
- Filing Date
- 2023-08-30
- Publication Date
- 2025-04-25
AI Technical Summary
In distributed networks, especially peer-to-peer networks or node-to-node networks, it is difficult to achieve time synchronization because of the lack of centralized coordination and the existing time synchronization protocols require additional time synchronization signaling and access to centralized reference clocks.
By utilizing data delivery communication in a load-sharing network, nodes can identify the master node and synchronize their time, selectively update the local time using the reference time provided by the master node, reducing the complexity and resource consumption of time synchronization.
This method reduces the complexity and resource consumption of time synchronization, avoids dependence on centralized reference clocks, ensures time synchronization between nodes, and can quickly adapt even if the main node changes.
Smart Images

Figure CN119895751A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to time synchronization, and, for example, to node-to-node network time synchronization. Background Art
[0002] A peer-to-peer (e.g., node-to-node) network is a distributed application architecture that divides tasks or workloads among peers (e.g., nodes). Peers are participants in a network with equal privileges and capabilities. Peers may form a peer-to-peer network of nodes. In a peer-to-peer network, nodes directly provide a portion of their resources (such as processing power, disk storage, and / or network bandwidth) to other nodes without the need for centralized coordination by a server or host.
[0003] Time synchronization may be intended to coordinate clocks that are otherwise independent. Even if the initial settings are performed accurately, the clocks will be different after a certain period of time due to clock drift. Clock drift may be caused by clocks timing at different rates. In a distributed network (such as a peer-to-peer network or a node-to-node network), each node may independently maintain time (e.g., clock). However, since there may not be any centralized coordination, it may be difficult to achieve time synchronization between nodes in a peer-to-peer network or a node-to-node network. In some cases, time synchronization protocols such as the Network Time Protocol (NTP) may be used to synchronize time and / or clocks between distributed nodes. However, such time synchronization protocols require additional time synchronization signaling between nodes and / or access to a central server used as a reference clock. The additional time synchronization signaling may consume network resources, processing resources, and / or computing resources, etc. Additionally, in some cases, nodes in a peer-to-peer network or a node-to-node network may not be able to access a centralized reference clock (e.g., may not be able to access the Internet). In addition, a failure of a centralized node or master node (e.g., maintaining a reference clock) may cause the entire peer-to-peer network or a node-to-node network to fail in time synchronization.
[0004] Chinese Patent No. 107222923B (the '923 patent) discloses a clock synchronization method, which includes time slot synchronization and subsequent clock synchronization of nodes in a network. The clock synchronization method periodically corrects the clock counter of the node through a timing correction time. The clock synchronization method includes: assigning a node number to each node in the network; determining a clock reference node in the network according to the node number of each node; correcting the time slot numbers of other nodes in the network according to the time slot number information of the clock reference node to complete the time slot synchronization of the nodes in the network according to the round-trip delay correction mechanism and the clock counter information of the clock reference node; performing clock synchronization on other nodes in the network to complete the clock synchronization of the nodes in the network; obtaining a timing correction time preset for the node; and periodically correcting the clock counter of the node according to the timing correction time.
[0005] However, the '923 patent introduces additional signaling specific to time synchronization. In other words, to perform the time synchronization method disclosed in the '923 patent, a node may send or broadcast additional time synchronization signals to perform time synchronization between nodes in a peer-to-peer network. This may consume network resources, processing resources, and / or computing resources, among other things. Additionally, this may increase the complexity of performing time synchronization between nodes in a peer-to-peer network.
[0006] The time synchronization techniques of the present disclosure solve one or more of the problems set forth above and / or other problems in the art. Summary of the invention
[0007] Some specific implementations described herein relate to a node. The node may include: one or more memories; and one or more processors, the one or more processors coupled to the one or more memories. The one or more processors may be configured to: receive one or more communications, wherein the one or more communications include time information, and wherein the one or more communications are associated with a load sharing network. The one or more processors may be configured to: identify the master node associated with the load sharing network based on an indicator included in a communication associated with the master node from the one or more communications. The one or more processors may be configured to: synchronize the time stored by the node based on the time information included in the communication associated with the master node. The one or more processors may be configured to: send a multicast communication, the multicast communication including a request to join the load sharing network and an indication that the node has synchronized the time with the time information. The one or more processors may be configured to: receive an indication that the node has successfully joined the load sharing network. The one or more processors may be configured to: selectively update the time stored by the node based on a reference time included in a periodic data transfer communication associated with the master node.
[0008] Some specific implementations described herein relate to a method performed by a node. The method may include receiving one or more communications, wherein the one or more communications include time information, and wherein the one or more communications are associated with a peer-to-peer network. The method may include identifying a master node associated with the peer-to-peer network based on an indicator included in a communication associated with the master node from the one or more communications. The method may include synchronizing a time stored by the node based on the time information included in the communication associated with the master node. The method may include sending a communication including a request to join the peer-to-peer network and an indication that the node has synchronized the time with the time information. The method may include receiving an indication that the node has successfully joined the peer-to-peer network. The method may include selectively updating the time stored by the node based on a reference time included in a periodic data transfer communication associated with the master node.
[0009] Some specific implementations described herein relate to a node-to-node network. The node-to-node network may include: a set of nodes, the set of nodes being configured to perform load sharing associated with the node-to-node network; and a node, the node being included in the set of nodes. The node may be configured to: identify a master node associated with the node-to-node network based on an indicator included in a communication associated with the master node. The node may be configured to: synchronize a time stored by the node based on time information included in the communication associated with the master node. The node may be configured to: send a multicast communication, the multicast communication including a request to join the load sharing network and an indication that the node has synchronized the time with the time information. The node may be configured to: receive an indication that the node has successfully joined the load sharing network. The node may be configured to: receive a periodic data transfer communication including an indication of a reference time from the master node. The node may be configured to: update the time stored by the node to the reference time if the difference between the time and the reference time meets a threshold. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 is a diagram of an example system described herein.
[0011] Figure 2 is a diagram of an example associated with nodes joining a load sharing network as described herein.
[0012] Figure 3 is a diagram of an example associated with maintaining time synchronization of nodes in a load sharing network as described herein.
[0013] Figure 4 is a diagram of an example associated with updating a master node for time synchronization in a load sharing network as described herein.
[0014] Figure 5 is an illustration of an example environment in which the systems and / or methods described herein may be implemented.
[0015] Figure 6 is a diagram of example components of devices associated with node-to-node network time synchronization.
[0016] Figure 7 is a flow diagram of an example process associated with node-to-node network time synchronization. DETAILED DESCRIPTION
[0017] The present disclosure relates to a distributed network that is applicable to any machine of a system utilizing the distributed network. For example, the system can operate using a load sharing network, a peer-to-peer network, a node-to-node network, a cloud computing network, a multicast network, and / or a cluster network, etc.
[0018] Figure 1 is a diagram of an example system 100 described herein. Figure 1 The system 100 includes a device system 110 having a plurality of devices 112 (shown as device 1 to device N, where N is an integer and N>1) and corresponding control modules (CMs) 114, controllers 120, and loads 130. The plurality of devices 112 may be collectively referred to herein as “devices 112” or individually as “devices 112”. As shown and described herein, the controller 120 may control the devices 112 of the device system 110 to provide mechanical power and / or electrical power to the load 130. The devices 112 may be referred to herein as “nodes” in an untrusted network (e.g., a peer-to-peer network or a node-to-node network).
[0019] In some implementations, the plurality of devices 112 may be a plurality of generators or a collection of generators (e.g., which may be referred to as a "collection of generators" or a "generator set") configured to provide power to a load. For example, the system 100 may be a generator set system. As described herein, one or more of the devices 112 may include a compression-ignition internal combustion engine. In some implementations, each of the devices 112 may be the same type of device. For example, all of the devices 112 may be manufactured by the same manufacturer, be the same model, be configured to output the same amount of maximum power and / or torque, and / or be configured to operate in the same manner, etc. In some implementations, one or more of the devices 112 may be a different type relative to another device 112. In addition, the devices 112 may be manufactured by different manufacturers and / or be different models of devices.
[0020] CM 114 includes one or more devices that provide corresponding control of device 112 based on power control information from controller 120. In some specific implementations, CM 114 is implemented as a processor, such as a central processing unit (CPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processing component. The processor is implemented in hardware, firmware, or a combination of hardware and software. CM 114 may include one or more processors that can be programmed to perform functions. In some specific implementations, one or more memories including random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) may store information and / or instructions for use by CM 114. CM 114 may include a memory (e.g., a non-transitory computer-readable medium) capable of storing instructions that, when executed, cause the processor to perform one or more processes and / or methods described herein.
[0021] The controller 120 includes one or more devices that provide control information to control an output (e.g., a power output or another output) from the device system 110. The controller 120 may use the control information to cause the CM 114 to control the corresponding amount of power provided from the device 112 to the load 130. The controller 120 may be implemented as a processor, such as a programmable logic controller (PLC), a CPU, an APU, a microprocessor, a microcontroller, a DSP, an FPGA, an ASIC, or other types of processing components. The processor may be implemented in hardware, firmware, or a combination of hardware and software. The controller 120 may include one or more processors that can be programmed to perform functions. One or more memories including RAM, ROM, and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) may store information and / or instructions for use by the controller 120. The controller 120 may include a memory (e.g., a non-transitory computer-readable medium) capable of storing instructions that, when executed, cause the processor to perform one or more processes and / or methods described herein. In some specific implementations, the system 100 may not include the controller 120. Instead, devices 112 may communicate in a peer-to-peer network without any central control entity.
[0022] The controller 120 may execute instructions based on the load information of the device system 110 and / or one or more parameters or one or more metrics to perform various control functions and processes, thereby causing the CM 114 to control the device 112. The controller 120 may include any appropriate type of control system configured to perform optimization functions, priority determination functions, and / or power control functions. In operation, the controller 120 may execute computer software instructions to perform various control functions and processes to control the device system 110, monitor events associated with the device 112, communicate event indicator notification information, and / or perform other operations as described herein. For example, the controller 120 may monitor and / or receive information associated with one or more metrics associated with the device 112. As Figure 1 As shown, the one or more metrics may include performance metrics of the device 112 (e.g., fuel consumption rate, emissions profile, engine speed, efficiency and / or power output, etc.), real-time onboard health status (e.g., total usage, expected life, component failure monitoring and / or next required or scheduled maintenance) and / or device configuration (e.g., whether two or more devices in the device 112 are mechanically coupled to each other to operate together), etc.
[0023] In some implementations, each device 112 (e.g., each CM 114) may generate and / or store log data. The log data may include information associated with one or more metrics. In some implementations, the device system 110 may be associated with a shared log or a compiled log that includes log data generated by each device 112 in the device system 110. In some implementations, the log data may be stored with a timestamp indicating the time at which the log data was generated and / or the event indicated by the log data occurred. The timestamp may be based on a clock and / or time maintained by the device 112 (e.g., a node) that generated the log data.
[0024] The controller 120 may communicate with the CM 114 and / or other controllers via a data link. For example, the data link may be a peer-to-peer communication link, a controller area network (CAN) communication link, a Transmission Control Protocol (TCP) / Internet Protocol (IP) (TCP / IP) communication link, an Internet Protocol Suite communication link, a MODBUS communication link, an Ethernet data link, an Ethernet User Data Protocol (Ethernet UDP) communication link, or another suitable data link that enables peer-to-peer communication between controllers (e.g., without requiring a host computer or host device).
[0025] As indicated above, Figure 1 are provided as examples. Other examples can be found in the Figure 1 The examples described are different.
[0026] Figure 2 2 is a diagram of an example 200 associated with nodes joining a load sharing network 205 as described herein. The load sharing network 205 may be a distributed network, such as a peer-to-peer network, a node-to-node network, a cloud computing network, a multicast network, and / or a cluster network, etc. For example, in the load sharing network 205, a collection of nodes (e.g., Figure 2 Node 0, Node 1, Node 2, and Node 3) shown may communicate to perform load sharing operations associated with the network. In some examples, the set of nodes may be device 112 and / or CM 114, in conjunction with Figure 1 In other examples, the nodes may be different types of devices, such as computing devices, server devices, and / or virtual computing devices, etc. Although examples are described herein in conjunction with a load sharing network, examples herein (e.g., in conjunction with Figures 2 to 7 ) can be similarly applied to distributed networks that are not associated with load sharing (e.g., peer-to-peer networks).
[0027] The nodes of the load sharing network 205 may communicate via multicast communication. In some cases, multicast communication may be information communication with multiple nodes (e.g., a collection of nodes). In some cases, each of the nodes may need to join a multicast session before receiving information using multicast communication. In some cases, the node may need to be authorized or authenticated before joining the multicast session. For example, a node that has joined the load sharing network 205 may indicate to a certain node whether the node is authorized or authenticated before joining the multicast session and receiving information via multicast communication. In some cases, nodes that have not been authorized or authenticated in the multicast service area cannot receive information via multicast communication. In some cases, multicast communication may be referred to as "one-to-many" communication. In contrast, broadcast communication may be information communication with all nodes within an area (e.g., a broadcast service area). Nodes may not need to join a session before receiving information using broadcast communication. In some cases, nodes may not need to be authorized or authenticated before receiving information via broadcast communication. In some cases, broadcast communication may be referred to as "one-to-all" communication.
[0028] For example, Figure 2 As shown, node 4 may not have joined the multicast session associated with load sharing network 205. In other words, node 4 may not be authorized or authenticated to join the multicast session. Node 0, node 1, node 2, and node 3 may have joined the multicast session (e.g., may have been authorized and / or authenticated to join the multicast session and / or load sharing network 205).
[0029] like Figure 2As shown, a node from a set of nodes associated with the load sharing network 205 may be designated as a master node. The master node may be a node from the set of nodes that is currently performing control and / or configuration operations associated with the load sharing operation of the load sharing network 205. In some examples, the master node may dynamically change over time between nodes included in the load sharing network 205 based on identifiers of corresponding active nodes in the load sharing network 205. An active node may be a node that has joined a multicast session (e.g., authorized and / or authenticated to join the multicast session and / or the load sharing network 205). For example, the load sharing network 205 may be a "mobile master" system in which a master node is not designated as a single node, but may be any active node in the load sharing network 205 (e.g., depending on the identifier of the corresponding active node in the load sharing network 205).
[0030] In some examples, the master node may be identified based on an identifier associated with the master node. For example, the master node may be a node associated with the lowest (or highest) identifier from a set of nodes (active nodes) included in the load sharing network 205. In some examples, the identifier may be a link layer address or a multicast address (e.g., a media access control (MAC) address). In other examples, the identifier may be another type of identifier, such as a device identifier or a unit identifier (e.g., identifying a device 112 associated with a given node). For example, a set of nodes (active nodes) included in the load sharing network 205 may exchange multicast communications that include an identifier of a sender node (e.g., a node that sends a given multicast communication). The set of nodes (active nodes) included in the load sharing network 205 may identify the master node (e.g., a master control node) based on a shared identifier of the set of nodes (active nodes) included in the load sharing network 205.
[0031] In some examples, the master node may be identified based on the accuracy of a clock (e.g., time) maintained by the node compared to a real-world clock (e.g., real-world time and / or one or more clock layers). For example, the nodes included in the load-sharing network 205 may include a telemetry unit (or other component) that enables the node to obtain an indication of the real-world time or clock. For example, the real-world time or clock may be a universal coordinated time, an atomic clock, a global navigation satellite system (GNSS) clock, a radio clock, and / or an Internet Time Protocol clock, etc. For example, the master node may be selected based on having a stored time that is closest to the time indicated by the real-world clock and / or the Internet Time Protocol among the stored times associated with the active nodes in the load-sharing network. For example, each node may obtain an indication of the time indicated by the real-world clock. The node may compare the stored time with the time indicated by the real-world clock (e.g., to determine the difference between the stored time and the real-world time). The set of nodes included in the load-sharing network 205 may share (e.g., via multicast communication) an indication of the difference between the stored time and the real-world time of each node. A master node may be selected or designated for load sharing network 205 (e.g., by a node of load sharing network 205) based on the node having the smallest difference between a stored time (e.g., of a clock maintained by the node) and a real-world time. This may cause a reference time for a time synchronization process for load sharing network 205 (e.g., as explained in more detail elsewhere herein) to be closer to the real-world time, such that all nodes in load sharing network 205 are synchronized to a time that is close to the real-world time.
[0032] like Figure 2 As shown, the master node may be node 0. The master node may perform one or more operations associated with controlling and / or configuring the load sharing operation of the load sharing network 205. For example, the master node may perform operations similar to those performed by the controller 120, as described above in conjunction with Figure 1 As described. Additionally, the time (e.g., clock) maintained by the master node can be used as a reference time (e.g., reference clock) for time synchronization of the load sharing network 205. This can improve the operation of the load sharing network because the node that is performing control and / or configuration operations for the load sharing operations of the load sharing network 205 also provides a reference time to which other nodes in the load sharing network 205 are synchronized. This can ensure that the time and / or clock maintained by other nodes in the network are synchronized to the time and / or clock associated with performing the control and / or configuration operations for the load sharing operations of the load sharing network 205. For example, this can ensure that if a time is associated with a control and / or configuration operation at the master node, the other nodes included in the load sharing network are synchronized to the time associated with the control and / or configuration operation.
[0033] like Figure 2 As shown, access to the load sharing network 205 and / or a multicast session associated with the load sharing network 205 may be prohibited and / or limited until a node that is attempting to join the load sharing network 205 and / or a multicast session has synchronized the time (and / or clock) maintained by the node to the time (and / or clock) maintained by the current master node of the load sharing network (e.g., Figure 2 In other words, access to the load-sharing network 205 by the node 4 may be prohibited until the node 4 has synchronized the time stored by the node 4 based on the time information included in the communication associated with the master node (e.g., node 0). For example, in order for the node 4 to be authorized to join the load-sharing network 205 and / or the multicast session, a node (e.g., the master node or another node) in the load-sharing network 205 may verify that the node 4 has synchronized the time maintained by the node 4 to the time maintained by the master node.
[0034] As indicated by reference numeral 210, node 4 may receive one or more communications associated with one or more nodes (e.g., active nodes) included in load sharing network 205. In some implementations, the one or more communications may be data transfer communications associated with load sharing network 205. For example, node 4 may be allowed to receive multicast communications associated with load sharing network 205, but may not be allowed to join load sharing network 205 (e.g., to participate in load sharing operations) until node 4 synchronizes the time stored by node 4 to the time indicated by the master node (e.g., node 0). In other examples, the one or more communications may be broadcast communications associated with load sharing network 205.
[0035] The one or more communications may include time information (e.g., a timestamp and / or time maintained by a node sending a given communication). For example, a sender node may send a communication (e.g., a data transfer communication, a load sharing communication, a multicast communication, or a broadcast communication) that includes an indication of a time and / or clock maintained by the sender node. A master node (e.g., node 0) may send a communication that includes time information (e.g., a timestamp) and an indication that the communication is associated with a current master node of the load sharing network 205. For example, the communication may include a flag or other indicator (e.g., one or more bits) to indicate that the communication is associated with a current master node of the load sharing network 205. Additionally or alternatively, a sender node may send a communication (e.g., a data transfer communication, a load sharing communication, a multicast communication, or a broadcast communication) that includes an indication of an identifier associated with the sender node.
[0036] As shown at reference numeral 215, node 4 may identify a master node associated with load sharing network 205 based on an indicator included in a communication received by node 4 (e.g., as described above in conjunction with reference numeral 210). For example, the indicator may be a flag or other indicator (e.g., one or more bits) indicating that the communication is associated with the current master node of load sharing network 205. Additionally or alternatively, the indicator may be an identifier associated with a master node (e.g., node 0). For example, node 4 may identify a communication associated with the lowest (or highest) identifier of a node associated with load sharing network 205 (e.g., among communications received from load sharing network 205). In some examples, only master nodes (e.g., and excluding other active nodes in load sharing network 205) may send communications to node 4 (e.g., which is not an active node in load sharing network 205). Thus, node 4 may identify communications received from the master node because only the master node sent (eg, broadcast) communications to node 4 before node 4 had joined the load sharing network 205 and / or the multicast session.
[0037] As indicated by reference numeral 220, node 4 may synchronize the time stored by node 4 based on time information included in communications associated with a master node (e.g., node 0). For example, node 4 may set the time stored by node 4 and / or a clock maintained by node 4 to the time indicated in communications sent by the current master node (e.g., node 0) of the load sharing network 205. In other words, the time indicated in communications sent by the current master node (e.g., node 0) of the load sharing network 205 may be a reference time for node 4 to perform time synchronization prior to joining the load sharing network 205 and / or the multicast session.
[0038] As indicated by reference numeral 225, node 4 may send a request to join the load sharing network 205 and / or the multicast session. For example, node 4 may send a multicast communication that includes a request to join the load sharing network 205 and an indication that node 4 has synchronized the time stored by node 4 to the time information indicated by the master node. In some implementations, node 4 may send the request to join the load sharing network 205 directly to the master node (e.g., in a "one-to-one" communication). In other examples, node 4 may send the request to join the load sharing network 205 in a multicast communication (e.g., sent to a multicast address associated with a multicast session of the load sharing network 205). In other examples, node 4 may send the request to join the load sharing network 205 in a broadcast communication.
[0039] A node (e.g., an active node) in the load sharing network 205 may receive a request to join the load sharing network 205 and / or a multicast session from node 4. For example, a master node (e.g., node 0) may receive a request to join the load sharing network 205 and / or a multicast session from node 4. Before enabling node 4 to join the load sharing network 205, the node may determine whether node 4 is authorized to join the load sharing network 205 and / or is authenticated. For example, the node (e.g., the master node or another node) may determine whether node 4 has synchronized the time stored by node 4 to the time stored by the master node. If node 4 has not synchronized the time stored by node 4 to the time stored by the master node, the node (e.g., the master node or another node) may determine that node 4 is not allowed to join the load sharing network 205 and / or the multicast session. If node 4 has synchronized the time stored by node 4 to the time stored by the master node, the node (e.g., the master node or another node) may determine that node 4 is allowed to join the load sharing network 205 and / or multicast session (e.g., as long as other authentication and / or authorization procedures for node 4 are successfully performed).
[0040] As shown at reference numeral 230, node 4 may receive (e.g., from a master node or another node in load sharing network 205) an indication that node 4 has successfully joined load sharing network 205 (e.g., node 4 has been added to a multicast session associated with load sharing network 205). For example, node 4 may be added to a multicast session associated with load sharing network 205 based on node 4 synchronizing time to a time stored by a current master node (e.g., node 0) of load sharing network 205. For example, node 4 may receive load sharing configuration information, multicast session configuration information, and / or other information that enables node 4 to join load sharing network 205 and / or participate in load sharing operations. Thus, a node (e.g., a master node or another node) of load sharing network 205 may ensure that a node is not added to load sharing network 205 before the node has synchronized time to the current master node of load sharing network 205.
[0041] As indicated above, Figure 2 are provided as examples. Other examples can be found in the Figure 2 The examples described are different.
[0042] Figure 3 is a diagram of an example 300 associated with maintaining time synchronization of nodes in a load sharing network 205 as described herein. Figure 2 In addition to the operations described in Example 200, the following operations may also be performed in conjunction with Figure 3 and the operations described in Example 300. For example, in conjunction with Figure 2 After the operations described in Example 200, the combination Figure 3and the operations described in Example 300. In some examples, the Figure 2 and the operations described in Example 200 and / or without performing the combined Figure 2 and the operation described in Example 200, performing the combined Figure 3 and the operations described in Example 300.
[0043] As shown in the reference numeral 305, the nodes (e.g., active nodes) of the load sharing network 205 may periodically exchange data transfer communications. The data transfer communication may be a communication (e.g., a multicast communication) that includes data stored by and / or generated by the node that is sending the communication. For example, as part of a load sharing operation, the nodes of the load sharing network 205 may periodically exchange sets of data stored by and / or generated by the node. For example, the data transfer communication may be a critical communication for the load sharing operation. In some examples, the nodes of the load sharing network 205 may periodically or cyclically send data transfer communications. For example, a node may send a data transfer communication (e.g., a multicast data transfer communication) every X milliseconds (e.g., every 30 milliseconds, every 100 milliseconds, or other amount of time).
[0044] The data transfer communication may be associated with a format designed or configured for exchanging data associated with the load sharing network 205 and / or the load sharing operation of the load sharing network 205. For example, a node of the load sharing network 205 may be configured with the format (e.g., such that the node can receive, decode, and / or otherwise obtain information from the data transfer communication). In some examples, the data transfer communication may indicate data obtained from a system (such as system 100) and / or a device (such as device 112). In some examples, the data transfer communication may indicate data such as performance data (e.g., fuel consumption rate, emission map, engine speed, efficiency and / or power output, etc.), real-time onboard health status data (e.g., total usage, expected life, component failure monitoring and / or next required or scheduled maintenance) and / or device or node configuration, etc.
[0045] In some implementations, a data transfer communication may include an indication of a time stored by a node that sent the data transfer communication. For example, a data transfer communication may include a timestamp that indicates the time at which the data transfer communication was sent. The timestamp may be based on a current time stored by the node that is sending the data transfer communication. For example, node 4 (e.g., after joining the load sharing network 205 and / or the multicast session) may periodically receive data transfer communications from other nodes in the load sharing network 205. Additionally, node 4 may periodically send data transfer communications (e.g., in a multicast communication associated with the multicast session).
[0046] As shown in reference numeral 310, node 4 may identify a reference time for time synchronization in a data transfer communication from a master node (e.g., node 0). For example, node 0 (e.g., the current master node of the load sharing network 205) may send a data transfer communication. The data transfer communication may include a timestamp (e.g., indicating the time when the data transfer communication was sent by node 0). In some specific implementations, the data transfer communication may include an indication that the data transfer communication was sent by the current master node of the load sharing network 205. For example, the data transfer communication may include a flag or other indicator indicating that the data transfer communication has been sent by the master node. As another example, the data transfer communication may include an indication of an identifier associated with node 0 (e.g., so that node 4 can recognize that the data transfer communication is associated with the current master node).
[0047] Node 4 may selectively update the time stored by node 4 based on a reference time included in a periodic data transfer communication associated with a master node (e.g., node 0). For example, if the stored time has deviated from the reference time stored by the master node, node 4 may update the time stored by node 4. For example, node 4 may receive a data transfer communication from the master node from a periodic data transfer communication sent by the master node. Node 4 may identify that the data transfer communication has been received from the master node (e.g., based on an indicator or identifier included in the data transfer communication).
[0048] As shown in reference numeral 315, node 4 may determine whether the difference between the time stored by node 4 and the reference time meets a threshold. As described above, the reference time may be indicated in the data transfer communication. Node 4 may compare the reference time with the time at which node 4 receives the data transfer communication (e.g., indicated by a clock maintained by node 4). In some implementations, the value of the threshold may be a function of a period (e.g., X) associated with periodic data transfer communications. For example, the value of the threshold may be M·X, where M is a value greater than zero. This ensures that the clock and / or time maintained by node 4 deviates from the reference time by an amount that is not greater than the period of sending the data transfer communication. In other examples, the value of the threshold may be independent of the period associated with the periodic data transfer communication.
[0049] As shown at reference numeral 320, if the difference satisfies the threshold, the node 4 may update the time stored by the node 4. For example, if the time and / or clock stored by the node 4 has deviated from the time and / or clock stored by the current master node of the load sharing network 205 by a given amount (e.g., indicated by the threshold), the node 4 may update the time and / or clock stored by the node 4 to the reference time indicated in the data transfer communication received by the node 4 from the master node. If the difference does not satisfy the threshold, the node may not (e.g., may refrain from) updating the current time and / or clock maintained by the node 4.
[0050] Other nodes in the load sharing network 205 may selectively update the stored time and / or clock based on the reference time indicated by the master node in the data transfer communication in a similar manner as described above. By utilizing data transfer communications for time synchronization in the load sharing network 205, the complexity associated with time synchronization may be reduced. For example, the nodes in the load sharing network 205 may have been configured to exchange data transfer communications. Therefore, it may not be necessary to configure additional time synchronization procedures and / or signaling for the nodes. Instead, only a few (e.g., one or more) fields and / or bits may be added to the existing data transfer communication format to implement the time synchronization process. Additionally, the nodes may not need to send additional time synchronization signals, but may use data transfer communications (e.g., already sent by the nodes for load sharing operations) to indicate time information, thereby achieving time synchronization of the load sharing network 205. This may reduce the signaling overhead associated with performing time synchronization, thereby saving network resources, processing resources, and / or computing resources, etc.
[0051] In some specific implementations, node 4 may generate log data associated with the load sharing network 205. The log data may indicate events detected by node 4, errors detected by node 4, and / or other information associated with the operation of the load sharing network 205. Node 4 may include a timestamp (e.g., an indication of the current time) in the log data, which indicates the time when the log data was generated. The timestamp may be based on a time and / or clock maintained by node 4 (e.g., the time and / or clock are synchronized to a reference time provided by a master node, as described above). Node 4 may store the log data (e.g., in a centralized database associated with the load sharing network 205 or in another storage location). Therefore, the log data generated by the nodes of the load sharing network 205 may be time synchronized. This may enable an operator to accurately and / or efficiently compare log data generated by a first node (e.g., node 1) and log data generated by another node (e.g., node 4) because the time maintained by different nodes is synchronized as described above. This may improve debugging, development, and / or testing performed by an operator.
[0052] As indicated above, Figure 3 are provided as examples. Other examples can be found in the Figure 3 The examples described are different.
[0053] Figure 4 is a diagram of an example 400 associated with updating a master node for time synchronization in a load sharing network 205 as described herein. Figure 2 and example 200 and / or in combination Figure 3 In addition to the operations described in Example 300, the following operations may also be performed in conjunction with Figure 4and the operations described in Example 400. For example, in conjunction with Figure 2 and example 200 and / or in combination Figure 3 After the operations described in Example 300, the combination Figure 4 and the operations described in Example 400. In some examples, the Figure 2 and example 200 and / or in combination Figure 3 and the operations described in Example 300 (e.g., without performing the combined Figure 2 and example 200 and / or in combination Figure 3 and the operation described in Example 300), perform the combined Figure 4 and the operations described in Example 400.
[0054] like Figure 4 As shown, a node that is a master node of the load sharing network 205 may leave the load sharing network 205 and / or the multicast session. Figure 4 As shown, node 0 may go offline. In some implementations, before going offline, node 0 may send a communication (e.g., a multicast communication) indicating that node 0 will go offline and / or leave the load sharing network 205. Other nodes in the load sharing network may receive the communication and identify the new master node of the load sharing network 205 among the active nodes in the load sharing network 205.
[0055] For example, as shown by reference numeral 405, node 4 can determine that the master node has been changed (e.g., from node 0) to node 1. For example, the master node can be identified among the active nodes of the load sharing network 205 in a similar manner as described above (e.g., after node 0 goes offline). In some examples, the new master node can be identified based on an identifier associated with the new master node. For example, the new master node can be the node associated with the lowest (or highest) identifier from the set of nodes (active nodes) included in the load sharing network 205. In some examples, the new master node can be identified based on the accuracy of a clock (e.g., time) maintained by the node compared to a real-world clock (e.g., real-world time and / or one or more clock layers).
[0056] In some implementations, node 4 can receive data transfer communications indicating that the master node has been switched (e.g., from node 0) to node 1. For example, after determining that node 1 is to serve as the master node of the load sharing network, node 1 can begin including an indicator in periodic data transfer communications indicating that node 1 is serving as the master node.
[0057] As shown at reference numeral 410, node 4 can identify a reference time for time synchronization in a data transfer communication from a master node (e.g., node 1). For example, node 1 (e.g., the current master node of the load sharing network 205) can send a data transfer communication. The data transfer communication can include a timestamp (e.g., indicating the time when the data transfer communication was sent by node 1). In some specific implementations, the data transfer communication can include an indication that the data transfer communication was sent by the current master node of the load sharing network 205.
[0058] Node 4 may selectively update the time stored by node 4 based on a reference time included in a periodic data transfer communication associated with a master node (e.g., node 1) in a similar manner as described above. For example, as shown in reference numeral 415, node 4 may determine whether the difference between the time stored by node 4 and the reference time meets a threshold. As shown in reference numeral 420, if the difference meets the threshold, node 4 may update the time stored by node 4 (e.g., to the reference time provided by node 1). In other words, node 4 may receive an indication that the master node has been updated to a different node (e.g., node 1) in the load sharing network 205. Node 4 may selectively update the time stored by node 4 based on another reference time included in a periodic data transfer communication associated with a different node based on receiving an indication that the master node has been updated to a different node (e.g., node 1).
[0059] In this way, when the current master node leaves the load sharing network 205, the operations and / or functions associated with the master node can be quickly transferred to another node in the load sharing network 205. Other nodes (e.g., node 1) can quickly assume (e.g., in data transfer communications) the function of providing a reference time for the load sharing network 205. This can reduce the time associated with transitioning to a new master node. Additionally, since all nodes in the load sharing network 205 are already synchronized in time with the reference time of the previous master node, this can reduce the complexity associated with updating the node that provides the new reference time, because the time and / or clock maintained by the new master node (e.g., node 1) can be similar to the time and / or clock maintained by the previous master node (e.g., node 0) (e.g., the difference between the two can meet a threshold). Therefore, no significant updates may occur during the reference time.
[0060] As indicated above, Figure 4 are provided as examples. Other examples can be found in the Figure 4 The examples described are different.
[0061] Figure 5 is a diagram of an example environment 500 in which the systems and / or methods described herein may be implemented. Figure 5As shown, environment 500 may include a collection of nodes 510 (shown as node 510-1 through node 510-N) and a network 520. The devices of environment 500 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0062] Node 510 may include one or more devices capable of receiving, processing, storing, routing and / or providing services (e.g., payload packets and / or files, etc.) in a manner described herein. For example, node 510 may include a router, a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server and / or a data center server), a device control module, a load balancer and / or similar devices. In some specific implementations, node 510 may include a communication device and / or a computing device. For example, node 510 may include a server, such as an application server, a client server, a web server, a database server, a host server, a proxy server, a virtual server (e.g., executed on computing hardware) or a server in a cloud computing system. In some specific implementations, node 510 may include computing hardware used in a cloud computing environment. In some specific implementations, node 510 may be a physical device implemented in a housing (such as a chassis). In some specific implementations, node 510 may be a virtual device implemented by one or more computer devices in a cloud computing environment or a data center.
[0063] The network 520 may include one or more wired networks and / or wireless networks. For example, the network 520 may include a wireless wide area network (e.g., a cellular network or a public land mobile network), a local area network (e.g., a wired local area network or a wireless local area network (WLAN), such as a Wi-Fi network), a personal area network (e.g., a Bluetooth network), a near field communication network, a telephone network, a private network, the Internet, and / or a combination of these networks or other types of networks. The network 520 enables communication between devices of the environment 500.
[0064] Figure 5 The number and arrangement of devices and networks shown are provided as one or more examples. Figure 5 There may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged in a different manner than those shown. Figure 5 Two or more of the devices shown may be implemented in a single device, or Figure 5 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, a collection of devices (eg, one or more devices) of environment 500 may perform one or more functions described as being performed by another collection of devices of environment 500.
[0065] Figure 6 6 is a diagram of example components of a device 600 associated with node-to-node network time synchronization. Device 600 may correspond to node 510, device 112, and / or CM 114, etc. In some implementations, node 510, device 112, and / or CM 114, etc. may include one or more devices 600 and / or one or more components of device 600. Figure 6 As shown, device 600 may include a bus 610 , a processor 620 , a memory 630 , an input component 640 , an output component 650 , and / or a communication component 660 .
[0066] The bus 610 may include one or more components that enable wired and / or wireless communications between components of the device 600. The bus 610 may be coupled, such as via an operational coupling, a communicative coupling, an electronic coupling, and / or an electrical coupling. Figure 6 Two or more components of a computer system are coupled together. For example, bus 610 may include electrical connectors (e.g., wires, traces, and / or leads) and / or wireless buses. Processor 620 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field programmable gate array, an application specific integrated circuit, and / or another type of processing component. Processor 620 may be implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor 620 may include one or more processors that can be programmed to perform one or more operations or processes described elsewhere herein.
[0067] The memory 630 may include volatile memory and / or non-volatile memory. For example, the memory 630 may include random access memory (RAM), read-only memory (ROM), a hard drive, and / or other types of memory (e.g., flash memory, magnetic memory, and / or optical memory). The memory 630 may include internal memory (e.g., RAM, ROM, or hard drive) and / or removable memory (e.g., removable via a universal serial bus connector). The memory 630 may be a non-transitory computer-readable medium. The memory 630 may store information, one or more instructions, and / or software (e.g., one or more software applications) related to the operation of the device 600. In some specific implementations, the memory 630 may include one or more memories such as coupled (e.g., communicatively coupled) to one or more processors (e.g., processor 620) via bus 610. The communication coupling between the processor 620 and the memory 630 may enable the processor 620 to read and / or process information stored in the memory 630 and / or store information in the memory 630.
[0068] Input assembly 640 may enable device 600 to receive input, such as user input and / or sensed input. For example, input assembly 640 may include a touch screen, keyboard, keypad, mouse, button, microphone, switch, sensor, global positioning system sensor, accelerometer, gyroscope and / or actuator. Output assembly 650 may enable device 600 to provide output such as via a display, speaker and / or light emitting diode. Communication assembly 660 may enable device 600 to communicate with other devices via wired connection and / or wireless connection. For example, communication assembly 660 may include a receiver, a transmitter, a transceiver, a modem, a network interface card and / or an antenna.
[0069] The device 600 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory 630) may store a set of instructions (e.g., one or more instructions or codes) for execution by the processor 620. The processor 620 may execute the set of instructions to perform one or more operations or processes described herein. In some specific implementations, the set of instructions is executed by one or more processors 620, so that the one or more processors 620 and / or the device 600 perform one or more operations or processes described herein. In some specific implementations, hard-wired circuits may be used instead of instructions or in combination with instructions to perform one or more operations or processes described herein. Additionally or alternatively, the processor 620 may be configured to perform one or more operations or processes described herein. Therefore, the specific implementation described herein is not limited to any particular combination of hardware circuits and software.
[0070] Figure 6 The number and arrangement of components shown are provided as examples. Device 600 may include Figure 6 The components shown may include additional components, fewer components, different components, or components arranged in a different manner. Additionally or alternatively, a set of components (e.g., one or more components) of device 600 may perform one or more functions described as being performed by another set of components of device 600.
[0071] Figure 7 is a flow chart of an example process 700 associated with node-to-node network time synchronization. In some implementations, Figure 7 One or more process blocks of may be performed by a node (e.g., node 510 and / or node 4). In some specific implementations, Figure 7 One or more process blocks of may be performed by another device or group of devices separate from or including the node, such as another node in a peer-to-peer network (e.g., load sharing network 205). Additionally or alternatively, Figure 7One or more process blocks of may be performed by one or more components of device 600, such as processor 620, memory 630, input component 640, output component 650, and / or communication component 660.
[0072] like Figure 7 As shown, process 700 may include receiving one or more communications, wherein the one or more communications include time information, and wherein the one or more communications are associated with a peer-to-peer network (block 710). For example, the node may receive one or more communications, wherein the one or more communications include time information, and wherein the one or more communications are associated with a peer-to-peer network as described above.
[0073] like Figure 7 As further shown, process 700 may include: based on an indicator included in a communication associated with the master node from the one or more communications, identifying the master node associated with the peer network (box 720). For example, a node may identify the master node associated with the peer network based on an indicator included in a communication associated with the master node from the one or more communications, as described above. In some specific implementations, identifying the master node is based on an identifier associated with the master node. In some specific implementations, the identifier is a link layer address or a multicast address. In some specific implementations, the master node dynamically changes over time between nodes included in the peer network based on an identifier of a corresponding active node in the peer network.
[0074] like Figure 7 As further shown, process 700 may include synchronizing the time stored by the node based on the time information included in the communication associated with the master node (block 730). For example, the node may synchronize the time stored by the node based on the time information included in the communication associated with the master node, as described above.
[0075] like Figure 7 As further shown, process 700 may include sending a communication including a request to join the peer-to-peer network and an indication that the node has synchronized the time with the time information (block 740). For example, the node may send a communication including a request to join the peer-to-peer network and an indication that the node has synchronized the time with the time information, as described above.
[0076] like Figure 7 As further shown, process 700 may include receiving an indication that the node has successfully joined the peer-to-peer network (block 750). For example, the node may receive an indication that the node has successfully joined the peer-to-peer network, as described above.
[0077] like Figure 7As further shown, process 700 may include selectively updating the time stored by the node based on a reference time included in a periodic data transfer communication associated with the master node (block 760). For example, the node may selectively update the time stored by the node based on a reference time included in a periodic data transfer communication associated with the master node, as described above.
[0078] In some implementations, either alone or in combination with one or more of the first to third implementations, selectively updating the time includes: receiving a data transfer communication from the periodic data transfer communication from the master node, wherein the data transfer communication includes an indication of the reference time, determining whether a difference between the time stored by the node and the reference time satisfies a threshold, and updating the time stored by the node to the reference time based on the difference satisfying the threshold. In some implementations, either alone or in combination with one or more of the first to fourth implementations, the value of the threshold is a function of a period associated with the periodic data transfer communication.
[0079] In some embodiments, either alone or in combination with one or more of the first to fifth embodiments, process 700 includes receiving an indication that the master node has been updated to a different node in the peer network, and based on receiving the indication that the master node has been updated to the different node, selectively updating the time stored by the node based on another reference time included in a periodic data transfer communication associated with the different node.
[0080] In some implementations, alone or in combination with one or more of the first to sixth implementations, process 700 includes generating log data associated with the peer network, wherein the log data includes a timestamp based on the time stored by the node.
[0081] Although Figure 7 An example block diagram of process 700 is shown, but in some implementations, process 700 may include Figure 7 The blocks depicted may include additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner than those depicted. Additionally or alternatively, two or more of the blocks of process 700 may be executed in parallel.
[0082] Industrial Applicability
[0083] Time synchronization may be intended to coordinate clocks that are otherwise independent. Even if the initial setup is performed accurately, the clocks may differ after a certain period of time due to clock drift. Clock drift may be caused by clocks timing at different rates. In a distributed network (such as the load-sharing network 205), each node may independently maintain time (e.g., clock). However, since there may not be any centralized coordination, it may be difficult to achieve time synchronization between the nodes of the load-sharing network 205. In some cases, a time synchronization protocol may be used to synchronize the time and / or clock between distributed nodes. However, such a time synchronization protocol requires additional time synchronization signaling between nodes and / or access to a central server used as a reference clock. The additional time synchronization signaling may consume network resources, processing resources, and / or computing resources, etc. Additionally, in some cases, the nodes of the load-sharing network 205 may not be able to access a centralized reference clock (e.g., may not be able to access the Internet). In addition, a failure of a centralized node or master node (e.g., maintaining a reference clock) may cause the time synchronization of the entire load-sharing network 205 to fail.
[0084] Some implementations described herein use data transfer communications to implement time synchronization in a peer-to-peer network or a node-to-node network (e.g., load sharing network 205). For example, a node may identify a current master node among active nodes in load sharing network 205. The node may synchronize a time stored by the node and / or a clock maintained by the node to a reference time provided by the master node. The node may selectively update the time stored by the node based on a reference time included in a periodic data transfer communication associated with the master node.
[0085] By utilizing data transfer communications for time synchronization in the load sharing network 205, the complexity associated with time synchronization may be reduced. For example, the nodes in the load sharing network 205 may already be configured to exchange data transfer communications. Therefore, it may not be necessary to configure additional time synchronization procedures and / or signaling for the nodes. Instead, only a few (e.g., one or more) fields and / or bits may be added to the existing data transfer communication format to implement the time synchronization process. Additionally, the nodes may not need to send additional time synchronization signals, but may use data transfer communications (e.g., already sent by the nodes for load sharing operations) to indicate time information, thereby achieving time synchronization of the load sharing network 205. This may reduce the signaling overhead associated with performing time synchronization, thereby saving network resources, processing resources, and / or computing resources, etc. Additionally, the log data generated by the nodes of the load sharing network 205 may be time synchronized. This may enable an operator to accurately and / or efficiently compare the log data generated by a first node (e.g., node 1) with the log data generated by another node (e.g., node 4), because the time maintained by different nodes is synchronized as described above. This may improve debugging, development, and / or testing performed by an operator.
[0086] The foregoing disclosure provides illustrations and descriptions, but is not intended to be exhaustive or to limit the specific implementations to the precise forms disclosed. Modifications and changes may be made in accordance with the above disclosure, or may be obtained from the practice of the specific implementations. In addition, any of the specific implementations described herein may be combined, unless the foregoing disclosure explicitly provides reasons why one or more specific implementations cannot be combined. Even if specific combinations of features are recorded in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various specific implementations. Although each dependent claim listed below may directly depend on only one claim, the disclosure of the various specific implementations includes each dependent claim combined with each other claim in the claim group.
[0087] As used herein, satisfying a threshold may refer to a value being greater than a threshold, greater than or equal to a threshold, less than a threshold, less than or equal to a threshold, equal to a threshold, or not equal to a threshold, etc., depending on the context.
[0088] As used herein, "a," "an," and "a set" are intended to include one or more items and are used interchangeably with "one or more." Furthermore, as used herein, the article "the" is intended to include one or more items associated with the article "the," and is used interchangeably with "the one or more." Furthermore, the phrase "based on" is intended to mean "based at least in part on," unless explicitly stated otherwise. Furthermore, as used herein, the term "or" when used in series is intended to be inclusive and is used interchangeably with "and / or," unless explicitly stated otherwise (e.g., if used in combination with "one of" or "only one of").
Claims
1. A node (510), comprising: one or more memories (630); and One or more processors (620) coupled to the one or more memories (630) and configured to: receiving one or more communications (210), wherein the one or more communications include time information, and wherein the one or more communications are associated with a load sharing network (205); identifying a master node associated with the load sharing network (205) based on an indicator included in a communication (210) associated with a master node (215) from the one or more communications; synchronizing a time (220) stored by the node (510) based on time information included in the communication (210) associated with the master node; sending a multicast communication (225) comprising a request to join the load sharing network (205) and an indication that the node has synchronized the time with the time information; receiving an indication (230) that the node has successfully joined the load sharing network (205); and The time stored by the node is selectively updated (320) based on a reference time included in a periodic data transfer communication (305) associated with the master node.
2. The node (510) of claim 1, wherein the one or more communications (210) and the periodic data transfer communication (305) are multicast communications associated with the load sharing network (205).
3. The node (510) according to any one of claims 1 to 2, wherein in order to selectively update the time, the one or more processors (620) are configured to: receiving, from the master node, a data transfer communication from the periodic data transfer communication (305), wherein the data transfer communication includes an indication of the reference time (310); determining (315) whether a difference between the time stored by the node (510) and the reference time satisfies a threshold; as well as Based on the difference satisfying the threshold, the time stored by the node is updated (320) to the reference time.
4. The node (510) according to any one of claims 1 to 3, wherein the one or more processors (620) are further configured to: receiving an indication (405) that the master node has been updated to a different node in the load sharing network (205); and Based on receiving the indication that the master node has been updated to the different node, the time stored by the node is selectively updated (420) based on another reference time included in a periodic data transfer communication associated with the different node.
5. A node (510) according to any one of claims 1 to 4, wherein the master node is selected based on a stored time associated with an active node in the load sharing network (205) that is closest to a time indicated by the Internet Time Protocol.
6. A method comprising: receiving (210), by a node (510), one or more communications, wherein the one or more communications include time information, and wherein the one or more communications are associated with a peer-to-peer network (205); identifying (215), by the node (510), the master node associated with the peer-to-peer network based on an indicator included in a communication associated with the master node from the one or more communications; synchronizing (220), by the node (510), a time stored by the node based on time information included in the communication associated with the master node; sending (225) by the node (510) a communication comprising a request to join the peer-to-peer network and an indication that the node has synchronized the time with the time information; receiving (230), by the node (510), an indication that the node has successfully joined the peer-to-peer network; as well as The time stored by the node is selectively updated (320) by the node (510) based on a reference time included in a periodic data transfer communication associated with the master node.
7. The method of claim 6, wherein identifying (215) the master node is based on a link layer address or a multicast address associated with the master node.
8. The method according to any one of claims 6 to 7, wherein the master node changes dynamically over time between nodes included in the peer-to-peer network (205) based on identifiers of corresponding active nodes in the peer-to-peer network (205).
9. The method of any one of claims 6 to 8, wherein selectively updating the time comprises: receiving (305) from the master node a data transfer communication from the periodic data transfer communication, wherein the data transfer communication includes an indication of the reference time; determining (315) whether a difference between the time stored by the node and the reference time satisfies a threshold, wherein a value of the threshold is a function of a period associated with the periodic data transfer communication; as well as Based on the difference satisfying the threshold, the time stored by the node is updated (320) to the reference time.
10. The method according to any one of claims 6 to 9, further comprising: Log data associated with the peer-to-peer network (205) is generated, wherein the log data includes a timestamp based on the time stored by the node (510).
Citation Information
Patent Citations
Clock synchronization method and device
CN107222923B