WO2020027850A1 - Synchronisation temporelle précise sur des protocoles de réseautage standardisés - Google Patents

Synchronisation temporelle précise sur des protocoles de réseautage standardisés Download PDF

Info

Publication number
WO2020027850A1
WO2020027850A1 PCT/US2018/045158 US2018045158W WO2020027850A1 WO 2020027850 A1 WO2020027850 A1 WO 2020027850A1 US 2018045158 W US2018045158 W US 2018045158W WO 2020027850 A1 WO2020027850 A1 WO 2020027850A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
message
synchronization
timestamp
network
Prior art date
Application number
PCT/US2018/045158
Other languages
English (en)
Inventor
Caleb GARRETT
Original Assignee
Whelen Engineering Company, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Whelen Engineering Company, Inc. filed Critical Whelen Engineering Company, Inc.
Priority to PCT/US2018/045158 priority Critical patent/WO2020027850A1/fr
Publication of WO2020027850A1 publication Critical patent/WO2020027850A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/14Monitoring arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic

Definitions

  • the present invention relates to a time synchronization technique between network nodes, and more particularly to a method for performing a time synchronization between network nodes over a multi-hop network and a network system using the method.
  • Wi-Fi®, Bluetooth®, ZigBee®, Thread, and Ethernet are some examples of standardized networking protocols and interfaces that are pervasive among consumer and industrial computing systems. It is preferable to implement these standardized protocols over developing a proprietary protocol as a means of interoperability with existing electronic devices and reduced development time. While each standardized networking protocol has advantages and disadvantages in terms of throughput, power consumption, range, and cost, they all lack the capability to synchronize time across the network and therefore have inherently limited use in real-time systems.
  • synchronization message is defined by the content within the message payload, which in some protocols such as Thread or Bluetooth may be encrypted. Thus, it is unclear how this time synchronization method might be applied to a protocol utilizing a MAC or application layer encryption without breaking it.
  • aspects of the present invention are a method for performing a time synchronization between network nodes and a system using the method.
  • a network system comprising a first node and a second node.
  • the first node is configured to generate a synchronization message including a synchronization indication ID, transmit the synchronization message to the second node over a network, take a first timestamp in response to the synchronization message being transmitted over the network, and transmit a timestamp message including the first timestamp to the second node at a second time over the network.
  • the second node is configured to receive the synchronization message and the timestamp message from the first node, take a second timestamp in response to the synchronization message being received from the first node, obtain the first timestamp based on the received timestamp message, obtain a timing offset between the first timestamp and the second timestamp, and perform a time synchronization based on the timing offset.
  • the first and second times are different from each other.
  • the synchronization indication ID is formed by modifying one or more of source-related fields from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes.
  • a method for performing a time synchronization between nodes including a first node and a second node.
  • the method includes: the first node performing: generating a synchronization message including a synchronization indication ID, transmitting the synchronization message to the second node at a first time over a network, taking a first timestamp in response to the synchronization message being transmitted over the network, and transmitting a timestamp message including the first timestamp to the second node at a second time over the network; and the second node performing: receiving the
  • the synchronization indication ID is formed by modifying one or more of source-related fields from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes.
  • a computer program product stored in a non- transitory computer-readable storage medium having computer readable program instructions.
  • the computer readable program instructions are read and carried out by at least one processor for performing a time synchronization between nodes including a first node and a second node.
  • the method includes: the first node performing: generating a synchronization message including a synchronization indication ID, transmitting the synchronization message to the second node at a first time over a network, taking a first timestamp in response to the synchronization message being transmitted over the network, and transmitting a timestamp message including the first timestamp to the second node at a second time over the network; and the second node performing: receiving the synchronization message and the timestamp message from the first node, taking a second timestamp in response to the synchronization message being received, receiving the timestamp message from the first node, obtaining the first timestamp based on the received timestamp message, obtaining a timing offset between the first timestamp and the second timestamp, and performing a time synchronization to the first node based on the timing offset.
  • the first and second times are different from each other.
  • the synchronization indication ID is formed by modifying one or more of source-related fields from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes.
  • the network node includes at least one processor and a transmitter.
  • the at least one processor is configured to generate a synchronization message including a synchronization indication ID, transmit the synchronization message to another network node over a network, take a first timestamp in response to the synchronization message being transmitted over the network, and generate a timestamp message based on the first timestamp.
  • the transmitter configured to: transmit the timestamp to another network node at a second time over the network, the second time being different from the first time.
  • the synchronization indication ID is formed by modifying one or more of source-related fields from a standard message format which is compliant to a network protocol implemented in each of the network node and the another network node.
  • the network node includes at least one processor and a receiver.
  • the receiver is configured to receive a synchronization message including a synchronization indication ID and a timestamp message including a first timestamp from another network node.
  • the first timestamp is taken by the another network node in response to the synchronization message being transmitted to the network node over a network.
  • the at least one processor is configured to take a second timestamp in response to the synchronization message being received from the another network node, obtain the first timestamp based on the received timestamp message, obtain a timing offset between the first timestamp and the second timestamp, and perform a time synchronization to the another network node based on the timing offset.
  • a structure of a synchronization message is generated in a first network node and transmitted to a second network node over a network.
  • the structure includes an unencrypted portion having a synchronization indication ID.
  • each of the first and second network nodes takes a timestamp.
  • the structure further includes an encrypted portion including a message ID used for being distinguished from another synchronization message.
  • a structure of a synchronization message is generated in a first network node and transmitted to a second network node over a network.
  • the structure includes a synchronization indication ID and a message ID.
  • the synchronization indication ID is formed by modifying one or more of source- related fields from a standard message format compliant to a network protocol implemented in each of the first and second network nodes. Upon identifying the synchronization indication ID, each of the first and second network nodes takes a timestamp. The message ID is used for being distinguished from another synchronization message.
  • FIG. 1 is a diagram illustrating network protocol stacks of each of a master node and a slave node according to an exemplary embodiment of the present invention
  • FIG. 2 is a flow chart illustrating a method for performing a time synchronization between the master and slave nodes according to an exemplary embodiment of the present invention
  • FIG. 3A is a diagram illustrating an example synchronization message constructed by an application layer module according to an exemplary embodiment of the present invention
  • FIG. 3B is a diagram illustrating an example synchronization message constructed by an application layer module according to an exemplary embodiment of the present invention
  • FIG. 3C is a diagram illustrating an example timestamp message constructed by an application layer module according to an exemplary embodiment of the present invention
  • FIG. 4 is a diagram illustrating a communication network where the master and slave nodes of FIG. 1 are located according to an exemplary embodiment of the present invention
  • LIG. 5 is a flow chart illustrating an example method of how a node operates to prevent duplication of synchronization processes to the same time synchronization session, according to an exemplary embodiment of the present invention
  • LIG. 6A is a simplified version of the flow chart of LIG. 2 according to an exemplary embodiment of the present invention.
  • LIG. 6B is a flow chart illustrating a time synchronization processes between two-hops away nodes according to an exemplary embodiment of the present invention.
  • LIG. 7 is a block diagram of a computing system according to an exemplary embodiment of the present invention.
  • a time synchronization method and a network system using the time synchronization method according to an exemplary embodiment of the present invention provide more reliable compatibility with network nodes using existing (and/or standardized) network protocols. For example, a time synchronization event among devices using standardized network protocols by using an application-controlled time synchronization that is compatible with existing
  • the network system includes a master node and a slave node.
  • the master node (or leader node) represents a node that has been elected for the time-synchronization.
  • the slave node (or “N-hop node” when N is an integer equal to or greater than one) represents a node which will be synchronized to the master node.
  • node used herein may be understood as a“network node”, a“network device”, or any devices capable of communicating or networks with other devices.
  • the term“message” used herein may be understood as a“packet”, a“frame”, or any names used in communication standards, so that they are interchangeable.
  • the method and the network system according to the present invention propose constructing a synchronization message by modifying one or more of fields from a standard message format such as a MAC layer message format or other higher-layer message formats rather than constructing a custom MAC layer message which would break compatibility with other network nodes working with an existing protocol or a third-party networking stack, as discussed earlier.
  • a standard message format such as a MAC layer message format or other higher-layer message formats
  • the modification of the existing standard message format (e.g., MAC message format) is made such that the modification does not cause compatibility issues with other network nodes or other layers of each node, so that the modified message can be recognized as a synchronization message by other network nodes; the modification should easily be detectable regardless of what network protocol the master and slave nodes work with to communicate.
  • the existing standard message format e.g., MAC message format
  • one or more fields of the MAC message to be modified for an indication of the synchronization message include: source-related fields such as a source network ID field (e.g., personal area network (PAN) ID in IEEE 802.15.4) and a source address field.
  • source network ID field e.g., personal area network (PAN) ID in IEEE 802.15.4
  • source address field e.g., a source address field
  • the method and the network system according to the present invention ensure more accurate and reliable time synchronization by taking a timestamp at a lower layer (e.g., physical layer) than a MAC layer.
  • a lower layer e.g., physical layer
  • the method and the network system according to the present invention utilize transmission and reception complete interrupts on the master and slave nodes, respectively, to take a timestamp of the local clocks as closely as possible to the synchronization message event without requiring special hardware such as an off- the-shelf microcontroller or microprocessor that has this capability.
  • an origin session ID is assigned to a time synchronization event to distinguish it from other possible time synchronization events.
  • FIG. 1 is a diagram illustrating network protocol stacks of each of master and slave nodes 10 and 20a according to an exemplary embodiment of the present invention.
  • the slave node 20a is one-hop away from the master node 10.
  • the master and slave nodes 10 and 20a may be parts of a communication network 1 illustrated in FIG. 4.
  • the nodes 10 and 20a each have at least one network protocol implemented, so that they can communicate with each other through a communication channel 150.
  • the communication channel 150 may be wired, wireless, or a combination thereof.
  • the network protocol is a communication standard which has been employed in the existing communication networks.
  • the protocol stacks of the network protocol can be implemented according to an open systems interconnection (OSI) layer model.
  • OSI open systems interconnection
  • the protocol stacks include an application layer, a data link layer, and a physical layer, and may further include other layers such as a network layer, a session layer, a transport layer and a presentation layer. Details thereof will be omitted for the sake of simplicity.
  • the data link layer may include a MAC layer in some network standards such as IEEE 802.15.4.
  • MAC layer is used to replace the term data link layer.
  • Each of the nodes 10 and 20a may include, but is not limited to: an application layer module (see 110 and 210 of FIG. 1) where the functions of the application layer are
  • Each node 10 and 20a includes at least one processor and a memory coupled to the processor (as exemplary depicted in FIG. 7), so that at least one processor of the node 10 (or node 20a) performs the functions of the aforementioned layer modules 110 to 130 (or 210 to 230) for the time synchronization between the nodes.
  • the processor may be implemented using a hardware processor or based on a field- programmable gate array (FPGA) design, but in other embodiments, it may be implemented based on program codes which are stored in the memory or in the hardware processor, and executed by the hardware processor.
  • the application layer module 110 of the master node 10 constructs a synchronization message and sends the synchronization message to the MAC layer module 120.
  • the synchronization message may be a command message to: indicate lower layers such as a physical layer that this message is a synchronization message; and/or instruct the lower layers to take a timestamp.
  • the synchronization message 500a includes a synchronization indication ID 520 and a message ID 530, as exemplary shown in FIG. 3A.
  • the synchronization message 500a is constructed by modifying some fields from a conventional and/or standard message format which is compliant to a network protocol implemented in each of the nodes 10 and 20a, so that the modification does not affect compatibility with other protocol layers or network entities and could be recognized by them without any additional hardware or network protocol.
  • the modification to the message are generally limited to the following information fields: a source address, a source network ID, or other fields containing message origin information - this information generally might not impact message routing or protocol compatibility.
  • the source network ID field is formed to include an identification of a source network where the message originates.
  • the source network ID field is modified to insert the synchronization indication ID 520 indicating that the message is a synchronization message.
  • the source address or other fields containing message origin information which generally do not impact message routing or protocol compatibility over network may be modified for indication of the synchronization message.
  • the source network ID field may correspond to the source PAN ID field, and thus, the synchronization message is formed by modifying the source PAN ID field of the standard IEEE 802.l2.4-based MAC frame.
  • the IEEE 802.l5.4-based network protocol defines a MAC layer adopted and used by various wireless sensor networks such as Bluetooth, ZigBee, Thread, etc.
  • the source network ID field is modified by adding a synchronization indication ID in addition to the source network ID.
  • a synchronization indication ID for instance, if the maximum value allowed for the source network ID is“m” (e.g., OxFFFF if the source network ID is a lb- bit value, or“OxFFFD” for some protocols like Thread protocol), and the designated source network ID is“x” which is an attribute that is exposed to the application layer, the maximum value allowed for the source network ID is“m” (e.g., OxFFFF if the source network ID is a lb- bit value, or“OxFFFD” for some protocols like Thread protocol), and the designated source network ID is“x” which is an attribute that is exposed to the application layer, the maximum value allowed for the source network ID is“m” (e.g., OxFFFF if the source network ID is a lb- bit value, or“OxFFFD” for some protocols like Thread protocol), and the designated source network ID is“x” which is an attribute that is
  • synchronization indication ID may be“m-x”, where m and x represent hexadecimal or binary numbers, m is equal to or greater than x.
  • the synchronization indication ID will be checked by the physical layer module 130 of the master node 10 and the physical layer module 230 of the slave node 20a so as to determine whether the incoming current message is a synchronization message. For instance, the synchronization indication ID (e.g.,“m-x”) of the incoming message is compared to the designated source network ID (e.g.,“x”) observed from other outgoing messages, and if they are not equal to each other and/or their sum (e.g.,“m-x” +“x”) is equal to the maximum value“m" allowable for the source network ID, the physical layer modules 130 and 230 determines the incoming message as the synchronization message.
  • the designated source network ID e.g.,“x”
  • the physical layer modules 130 and 230 determines the incoming message as the synchronization message.
  • Embodiments of the present invention for inserting the synchronization indication ID into the synchronization message and checking whether the synchronization indication ID is detected from the current message are not limited thereto.
  • the synchronization indication ID can be placed any field in the synchronization message if the field remains unencrypted and the modification to the field does not break the protocol compatibility.
  • Bluetooth advertising messages can be considered in generating a synchronization message. The Bluetooth advertising messages are commonly used for applications such as Apple's iBeacons. These messages are not encrypted which simplifies this task significantly. That is, in case of broadcasting or advertising messages not requiring encryption of the payloads thereof, the synchronization indication ID may be embedded within the payloads of these messages.
  • the message ID 530 is an identifier that allows nodes to distinguish between separate synchronization messages. If a synchronization message is received, a timestamp will be taken at a physical layer. The taken timestamp is managed to be paired (or mapped) to a particular synchronization message using a message ID included therein, so that the timestamp paired with the message ID 530 can be distinguished from another timestamp taken in response to another synchronization message having a different message ID from the message ID 530.
  • the synchronization message 500b may further include an origin session ID 540 in addition to the synchronization indication ID 520 and the message ID 530 of FIG. 3A.
  • the origin session ID 540 is an identifier allowing nodes to distinguish between separate rounds of time synchronization, so that duplication of synchronization processes between nodes can be prevented. More details will be explained with reference to FIG. 5. For instance, a CoAP protocol implements a l6-bit message identifier that can be used for this purpose.
  • the master node 10 (or the slave node 20a) may retain the origin session ID for later on in this process.
  • a difference between the message ID and the origin session ID can be explained based on the following example. For instance, regarding two nodes that are two-hops away, a time synchronization between the nodes is made based on two-stages as follows: one of the nodes corresponding to a master node is synchronized to an intermediate node that is one-hop away from the master node in the first stage, and the intermediate node is then synchronized to another of the nodes corresponding to a slave node in the second stage.
  • the same origin session ID is used in all synchronization messages generated during this synchronization process, but different message IDs are assigned for a synchronization message generated during the first stage and another synchronization message generated during the second stage.
  • the MAC layer module 120 encrypts a data payload of the synchronization message received from the application layer module 110 and sends the encrypted synchronization message of which data payload has been encrypted.
  • the data payload to be encrypted includes the message ID and/or the origin session ID.
  • the synchronization indication ID is not encrypted, thus allowing the physical layer modules 130 and 230 to recognize the synchronization indication ID without decrypting the encrypted synchronization message.
  • the synchronization message sent by the MAC layer module 120 toward the physical layer module 130 may include a MAC header and/or a MAC footer added according to a MAC layer protocol implemented in the master node 10.
  • step S 131 the physical layer module 130 determines whether the current message is a synchronization message by checking whether the synchronization indication ID is detected therefrom. Upon determination (or identification) for the synchronization message, the physical layer module 130 transmits the encrypted synchronization MAC message to the slave node 20a over a communication channel 150 (S132) and takes a Tx timestamp 620 upon transmit complete of the encrypted synchronization message (S133)
  • the physical layer module 130 may make certain preparations prior to transmitting of the message; for instance, the 802.l5.4-based protocols may make a clear channel assessment (CCA) of the medium prior to transmitting messages.
  • CCA clear channel assessment
  • the message will be loaded into a transmit buffer of the physical layer module 130.
  • the physical layer module 130 determines whether the current message is a synchronization message by checking if there is a modification on the source network ID field. For instance, if the modification is detected, the physical layer module 130 determines that the message is a synchronization message and prepares to take a Tx timestamp of the real-time clock or other time base upon the triggering of the“Transmit Complete” interrupt. This interrupt may be served shortly after the last byte of data pertaining to the synchronization message is transmitted.
  • the Tx timestamp is then passed to the application layer module 110, bypassing the MAC or other inner layers (e.g., a presentation layer, a session layer, a transport layer, a network layer, etc.) between the MAC layer and the application layer of the networking stack (S134).
  • a data frame including the Tx timestamp might not be modified and the inner layers of the networking stack might not be modified.
  • the physical layer module 130 may transmit the received message to the slave node 20a, but might not take the Tx timestamp and stops the time synchronization process until it receives another
  • the physical layer module 230 of the slave node 20a receives the encrypted message from the physical layer module 130 of the master node 10. It is noted that the physical layer module 230 may have no prior knowledge on whether the message is a synchronization message or not. Thus, upon receiving the encrypted message, the physical layer module 230 takes a Rx timestamp regardless of whether the message is a synchronization message (S231) and then, parses the message to determine whether it is a synchronization message by checking whether the synchronization indication ID is detected therefrom. It is noted that in the step S 111, the synchronization indication ID is formed by modifying the source network ID field from a standard message format which is compliant to a network protocol implemented in each of the nodes 10 and 20a. Thus, in this example, the synchronization indication ID is detected by checking the source network ID field of the incoming message as is performed by the physical layer module 130 during the step S 131.
  • the source network ID field may correspond to the source PAN ID, and thus, the synchronization message is formed by modifying the source PAN ID field of the standard IEEE 802.l2.4-based MAC frame.
  • a“Receive Complete” interrupt service routine can be called shortly after reception of the last byte of each encrypted message from the physical layer module 130 of the master node 10, and the Rx timestamp is taken upon the receive complete interrupt service routine being called.
  • This“receive complete” interrupt may occur at almost the same moment in time as the“transmit complete” interrupt on the physical layer module 130; e.g., a propagation delay of the message over the communication channel 150 is negligibly short.
  • the Rx timestamp is then passed to the application layer module 210, bypassing a MAC layer pertaining to a MAC layer module 220 or other inner layers (e.g., a presentation layer, a session layer, a transport layer, a network layer, etc.) between the MAC layer and the application layer of the networking stack (S233).
  • a MAC layer pertaining to a MAC layer module 220 or other inner layers (e.g., a presentation layer, a session layer, a transport layer, a network layer, etc.) between the MAC layer and the application layer of the networking stack (S233).
  • step S233 if it is determined that the received message is not a
  • the physical layer module 230 does not pass the Rx timestamp to the application layer module 210 and/or discard it.
  • the determination for the synchronization message can be made without decrypting (or deciphering) the payload thereof since the source network ID field including the synchronization indication ID is not encrypted during the step S 121.
  • step S234 the physical layer module 230 sends the encrypted message to the MAC layer module 220.
  • the step S234 may be performed only upon the determination that the encrypted message is a synchronization message, and the message may be discarded without sending it to the MAC layer module 220 if the message is not a synchronization message.
  • the message may be regarded as a normal data message to be forwarded to the MAC layer module 220, but the Rx timestamp might not be passed to the application layer module 210.
  • the MAC layer module 220 of the slave node 20a may perform operations opposite to those of the MAC layer module 120 of the master node 10. For instance, the MAC layer module 220 decrypts the payload of the encrypted message including the message ID 530 and/or the origin session ID 540 and provides the decrypted payload to the application layer module 210 (S221).
  • the application layer module 210 obtains the message ID and/or the origin session ID from the decrypted payload sent from the MAC layer module 220 and pairs (or maps) the message ID 530 to the Rx timestamp sent from the physical layer module 130.
  • the pairing information between the message ID 530 and the Rx timestamp is stored in a memory (not shown) of the slave node 20a and will be looked up later to be compared with the Tx timestamp 620 that will be sent from the master node 10. For instance, the Rx timestamp can be mapped to the synchronization message 500a or 500b along with the message ID 530.
  • the application layer module 110 generates a timestamp message 600 based on the Tx timestamp 620 received from the physical layer module 130, as exemplary depicted in FIG. 3C, and thus, the Tx timestamp 620 and a message ID 630 are included in the timestamp message 600.
  • the message ID 630 may be equal to the message ID 530 of the synchronization message 500a or 500b.
  • the application layer module 110 sends the timestamp message 600 (S 112) to the MAC layer module 120.
  • the MAC layer module 120 encrypts the timestamp message 600 and sends the encrypted timestamp message to the physical layer module 130.
  • the physical layer module 130 transmits the encrypted timestamp message to the slave node 20a over the communication channel 150 (S135).
  • the physical layer module 230 receives the encrypted timestamp message and sends the encrypted timestamp message to the MAC layer module 220 (S235), thus the encrypted timestamp message is decrypted by the MAC layer module 220 and sent to the application layer module 210 (S222).
  • the application layer module 210 retains the information of the Rx timestamp paired (or mapped) to the message ID 530 as a result of performing the step S211. [0073] Thus, the application layer module 210 extracts the Tx timestamp 620 and the message ID 630 from the decrypted timestamp message and compares the Tx timestamp 620 to the Rx timestamp upon finding a match between the message ID 530 paired to the Rx timestamp and the message ID 630 of the timestamp message 600, so as to calculate a timing offset between the Tx timestamp 620 and the Rx timestamp (S212).
  • the application layer module 210 completes the time synchronization between the master node 10 and the slave node 20a based on the calculated time offset (S213).
  • the reference numeral 215 of FIG. 2 represents a state that the slave node 20a has been synchronized to the master node 10.
  • the reference numeral 115 represents a state that the master node 10 has been synchronized to another reference leader node before the time synchronization process of FIG. 2 or that the master node 10 is a node initially triggering the current time synchronization process.
  • the time synchronization between two nodes 10 and 20a which are one-hop away from each other has been described with reference to FIG. 2.
  • the master and slave nodes 10 and 20a are parts of an example network 1 as conceptually depicted in FIG. 4.
  • the network 1 includes, but is not limited: a vehicle-to-vehicle (V2V) communication network, a ubiquitous sensor network (USN), a cellular mobile network, a computer network.
  • V2V vehicle-to-vehicle
  • USN ubiquitous sensor network
  • cellular mobile network a computer network.
  • the network 1 is implemented based on at least one of communication protocols such as local area network (LAN), wide area network (WAN), code division multiple access (CDMA), global system for mobile communication (GSM), wideband CDMA, CDMA-2000, time division multiple access (TDMA), long term evolution (LTE), wireless LAN, Bluetooth, IEEE 802.16, IEEE 802.15.4, Thread, or the like.
  • LAN local area network
  • WAN wide area network
  • CDMA code division multiple access
  • GSM global system for mobile communication
  • GSM global system for mobile communication
  • TDMA time division multiple access
  • LTE long term evolution
  • wireless LAN Bluetooth
  • IEEE 802.16, IEEE 802.15.4 Thread
  • Thread or the like.
  • each node 10, 20a- 20d, 30a-30c, 40a and 40b may be a vehicle or a communication module attached to a vehicle.
  • the slave node 20a upon completion of the time synchronization of the slave node 20a to the master node 10, the slave node 20a initiates a time synchronization to other nodes 30a- 30c which are one hop away from the slave node 20a and are two-hops away from the master node 10. It is noted that the slave node 20a becomes a new master node to the nodes 30a-30c and each of the nodes 30a-30c becomes a slave node to the node 20a. In this example, a time synchronization between the new master node 20a and each new slave node 30a-30c is performed based on substantially the same process described with reference to FIG. 2, in regard to the time synchronization between the nodes 10 and 20a. In FIG. 4, the reference characters TS10 and TS20 indicate a one-hop away time synchronization between the nodes 10 and 20a and a two-hops away time synchronization between the nodes 10 and 30a through the node 20a, respectively.
  • the aforementioned process between the master and slave nodes 10 and 20a, as described with reference to FIG. 2, may occur simultaneously for all or at least two of nodes 20a to 20d that are one-hop away from the master node 10.
  • the Thread protocol may implement a low-power wireless personal area network (LoWPAN) which allows the application layer to address nodes that are one -hop away using a dedicated IPv6 multicast address, which is convenient for implementing this time synchronization algorithm.
  • LoWPAN low-power wireless personal area network
  • the synchronization waves may all be traced back to the same origin of synchronization based on an origin session ID (e.g., 540 of FIG. 3B).
  • origin session ID e.g., 540 of FIG. 3B.
  • the origin session ID can be used as an identifier to distinguish a plurality of time synchronization sessions one from another. Not only does the origin session ID prevent separate sessions from interfering with each other, but it also prevents the possibility of a node being synchronized in the same session more than once. Once a node has been synchronized to the current session, it will ignore all other synchronization messages that contain the same origin session ID.
  • FIG. 5 depicts an example method of how the node 20a operates to prevent duplication of synchronization operations, according to an exemplary embodiment of the present invention.
  • the slave node 20a may retain the origin message ID 540 (S700) even if the time synchronization to the master node 10 has already been completed from the step S213 of FIG. 2.
  • the node 20a obtains another origin session ID (S730) and determines if a new origin session ID included in the new synchronization message is matched to the origin session ID 540 obtained in the previously processed step S213 (S740).
  • the node 20a determines that a time synchronization session associated with the newly received synchronization message has already been completed and thus ignores the receipt of the new synchronization message and/or discard the new message (S750). If the match is not found; NO, the node 20a continues to perform the rest of time synchronization process pertaining to the above new origin session ID of the new synchronization message (S760).
  • FIG. 6A is a simplified form of the flow chart of FIG. 2 according to an exemplary embodiment of the present invention.
  • FIG. 6B is a flow chart illustrating a time synchronization processes between two-hops away nodes according to an exemplary embodiment of the present invention. All steps labeled in FIG. 6B are substantially the same as those described with reference to FIG. 6A. For instance, the steps Sl l l’, S112’, S121’, S122’, S141’, S132’, S133’, S134’ and S 135’ of FIG. 6B are substantially the same as the steps the steps Sl l l, Sl 12, S 121, S122, S 141, S132, S133, S134 and S135 of FIG.
  • steps S211’, S212’, S213’, S221’, S222’, S231’, S232’, S233’, S234’ and S235’ are substantially the same as the steps S211, S212, S213, S221, S222, S231, S232, S233, S234, and S235 of FIG. 6A, respectively.
  • the synchronization of the node 20a to the node lOa has been completed at a time Tl (see FIG. 6A), and the node 20a starts a synchronization with the node 30a at a time T2 which is equal to or greater than Tl.
  • the reference numeral 315 represents that the node 30a has been synchronized to the node 20a.
  • the master node 10 may be a node initiating a particular time synchronization session.
  • the master node 10 is selected as a leader node within the network 1, so that the master node 10 is responsible for triggering each round of time synchronization.
  • the network 1 may be a partition of a larger network including the network 1. In some embodiments, the selection of the leader node is made by an additional external server.
  • the time synchronization method according to the present invention might not require two-way communication between nodes during the synchronization process; for instance, the synchronization of nodes ripples out from the leader where the synchronization process originates.
  • the time synchronization method according to the present invention may require knowledge of which nodes are synchronized on the network, and to which leader they were last synchronized in the event that the elected leader changes. There are a number of methods in which this can be achieved and should be selected based on the method that best fits the application. Some exemplary embodiments to achieve this are detailed below.
  • nodes that desire knowledge on which nodes are synchronized sends out a broadcast message that requests a response from each node indicating whether and to whom that node is synchronized.
  • the application specifies that unsynchronized nodes behave differently when not synchronized. For instance, unsynchronized nodes may be configured to ignore certain commands when they have not been synchronized within a certain time interval.
  • FIG. 7 is a block diagram of a computing system 4000 according to an exemplary embodiment of the present invention.
  • the computing system 4000 may be used as a platform for performing the functions or operations described hereinabove with respect to the nodes 10 and 20a of FIGS. 1 and 2, the methods performed by the nodes 10 and 20a, and/or the methods performed by the application for obtaining the knowledges of which nodes are synchronized on the network and which leader they were last synchronized to.
  • the computing system 4000 may be implemented with a ultra-mobile personal computer (UMPC), a net-book, a personal digital assistant (PDA), a portable computer (PC), a web tablet, a wireless phone, a mobile phone, a smart phone, an e-book, a portable multimedia player (PMP), a portable game console, a navigation device, a black box, a digital camera, a digital multimedia broadcasting (DMB) player, a digital audio recorder, a digital audio player, a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, or the like.
  • UMPC ultra-mobile personal computer
  • PDA personal digital assistant
  • PC portable computer
  • PMP portable multimedia player
  • PMP portable game console
  • a navigation device a black box
  • a digital camera a digital multimedia broadcasting (DMB) player
  • DMB digital multimedia broadcasting
  • the computing system 4000 may include a processor 4010, I/O devices 4020, a memory system 4030, a display device 4040, and/or a network adaptor 4050.
  • the processor 4010 may drive the I/O devices 4020, the memory system 4030, the display device 4040, and/or the network adaptor 4050 through a bus 4060.
  • the computing system 4000 may include a program module for performing the functions or operations described hereinabove with respect to the nodes 10 and 20a of FIGS. 1 and 2, the methods performed by the nodes 10 and 20a, and/or the methods performed by the application for obtaining the knowledges of which nodes are synchronized on the network and which leader they were last synchronized to according to exemplary embodiments.
  • the program module may include routines, programs, objects, components, logic, data structures, or the like, for performing particular tasks or implement particular abstract data types.
  • the processor (e.g., 4010) of the computing system 4000 may execute instructions written in the program module to perform the functions or operations described with respect to the nodes 10 and 20a of FIGS.
  • the program module may be programmed into the integrated circuits of the processor (e.g., 4010).
  • the program module may be stored in the memory system (e.g., 4030) or in a remote computer system storage media.
  • the computing system 4000 may include a variety of computing system readable media. Such media may be any available media that is accessible by the computer system (e.g., 4000), and it may include both volatile and non-volatile media, removable and non-removable media.
  • the memory system (e.g., 4030) can include computer system readable media in the form of volatile memory, such as RAM and/or cache memory or others.
  • the computer system (e.g., 4000) may further include other removable/non-removable, volatile/non-volatile computer system storage media.
  • the computer system can communicate with one or more devices using the network adapter (e.g., 4050).
  • the network adapter may support wired communications based on Internet, local area network (LAN), wide area network (WAN), or the like, or wireless communications based on code division multiple access (CDMA), global system for mobile communication (GSM), wideband CDMA, CDMA-2000, time division multiple access
  • CDMA code division multiple access
  • GSM global system for mobile communication
  • CDMA-2000 time division multiple access
  • TDMA time division multiple access
  • LTE long term evolution
  • wireless LAN wireless local area network
  • Bluetooth wireless personal area network
  • Zig Bee wireless personal area network
  • Exemplary embodiments of the present invention may include a system, a method, and/or a computer program product.
  • the computer program product may include a non-transitory computer readable storage medium (e.g., the memory system 4030) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
  • the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
  • the computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EEPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, or the like, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EEPROM or Flash memory erasable programmable read-only memory
  • SRAM static random access memory
  • CD-ROM compact disc read-only memory
  • DVD digital versatile disk
  • memory stick a floppy disk, or the like
  • a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
  • a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to the computing system 4000 from the computer readable storage medium or to an external computer or external storage device via a network.
  • the network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network adapter card (e.g., 4050) or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the computing system.
  • Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the computing system (e.g., 4000) through any type of network, including a LAN or a WAN, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
  • These computer readable program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures.
  • two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

La présente invention porte sur un système, un procédé et un produit informatique permettant de réaliser une synchronisation temporelle entre des premier et second nœuds, le premier nœud étant destiné à générer un message de synchronisation, à transmettre le message de synchronisation au second nœud à un premier instant, à acquérir un premier horodatage lors de la réception du message de synchronisation et à transmettre un message d'horodatage comprenant le premier horodatage au second nœud à un second instant, et le second nœud étant destiné à recevoir le message de synchronisation et le message d'horodatage en provenance du premier nœud, à acquérir un second horodatage lors de la réception du message de synchronisation, à recevoir le message d'horodatage provenant du premier nœud, à obtenir le premier horodatage en fonction du message d'horodatage reçu, à obtenir un décalage de synchronisation entre les premier et second horodatages et à réaliser une synchronisation temporelle sur le premier nœud basée sur le décalage de synchronisation.
PCT/US2018/045158 2018-08-03 2018-08-03 Synchronisation temporelle précise sur des protocoles de réseautage standardisés WO2020027850A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2018/045158 WO2020027850A1 (fr) 2018-08-03 2018-08-03 Synchronisation temporelle précise sur des protocoles de réseautage standardisés

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/045158 WO2020027850A1 (fr) 2018-08-03 2018-08-03 Synchronisation temporelle précise sur des protocoles de réseautage standardisés

Publications (1)

Publication Number Publication Date
WO2020027850A1 true WO2020027850A1 (fr) 2020-02-06

Family

ID=69232263

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/045158 WO2020027850A1 (fr) 2018-08-03 2018-08-03 Synchronisation temporelle précise sur des protocoles de réseautage standardisés

Country Status (1)

Country Link
WO (1) WO2020027850A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022042697A1 (fr) * 2020-08-31 2022-03-03 中兴通讯股份有限公司 Procédé et appareil de synchronisation temporelle, dispositif, et support de stockage
WO2022103832A1 (fr) 2020-11-10 2022-05-19 Stryker Corporation Récepteur pour système de collecte de déchets médicaux
CN115412533A (zh) * 2021-05-27 2022-11-29 北京小米移动软件有限公司 终端设备及其控制方法、装置和存储介质
CN116471211A (zh) * 2023-06-19 2023-07-21 威胜信息技术股份有限公司 一种电力物联网精准对时方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198499A1 (en) * 2004-03-03 2005-09-08 Rao Salapaka System and method for efficiently transferring media across firewalls
US20060083264A1 (en) * 2004-10-14 2006-04-20 Jordan Patrick D System and method for time synchronizing nodes in an automotive network using input capture
EP2058966A1 (fr) * 2007-11-08 2009-05-13 Harris Corporation Procédé pour la synchronisation de noeuds dans un réseau sans fil
US20130185614A1 (en) * 2012-01-13 2013-07-18 Microsoft Corporation Lost Real-Time Media Packet Recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198499A1 (en) * 2004-03-03 2005-09-08 Rao Salapaka System and method for efficiently transferring media across firewalls
US20060083264A1 (en) * 2004-10-14 2006-04-20 Jordan Patrick D System and method for time synchronizing nodes in an automotive network using input capture
EP2058966A1 (fr) * 2007-11-08 2009-05-13 Harris Corporation Procédé pour la synchronisation de noeuds dans un réseau sans fil
US20130185614A1 (en) * 2012-01-13 2013-07-18 Microsoft Corporation Lost Real-Time Media Packet Recovery

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022042697A1 (fr) * 2020-08-31 2022-03-03 中兴通讯股份有限公司 Procédé et appareil de synchronisation temporelle, dispositif, et support de stockage
WO2022103832A1 (fr) 2020-11-10 2022-05-19 Stryker Corporation Récepteur pour système de collecte de déchets médicaux
CN115412533A (zh) * 2021-05-27 2022-11-29 北京小米移动软件有限公司 终端设备及其控制方法、装置和存储介质
CN115412533B (zh) * 2021-05-27 2024-01-16 北京小米移动软件有限公司 终端设备及其控制方法、装置和存储介质
CN116471211A (zh) * 2023-06-19 2023-07-21 威胜信息技术股份有限公司 一种电力物联网精准对时方法
CN116471211B (zh) * 2023-06-19 2023-10-13 威胜信息技术股份有限公司 一种电力物联网精准对时方法

Similar Documents

Publication Publication Date Title
US10505651B1 (en) Precision time synchronization over standardized networking protocols
WO2020027850A1 (fr) Synchronisation temporelle précise sur des protocoles de réseautage standardisés
US11856546B2 (en) Technologies for managing internal time synchronization
WO2017049521A1 (fr) Procédé de synchronisation, équipement d'utilisateur et station de base
US9585113B2 (en) Method and device for time-synchronization in ad hoc network
CN116112110A (zh) 用于补偿时钟漂移引起的时间同步中的错误的技术
GB2521500A (en) Exchanging configuration information wirelessly
US10548109B2 (en) Opportunistic network-based location detection using unsolicited data packets
KR102045114B1 (ko) 데이터 전송
WO2015027813A1 (fr) Procédé et dispositif de détermination de source d'horloge sur ethernet
WO2018107606A1 (fr) Procédé et dispositif de distribution de messages dans l'internet des objets
JP2023526538A (ja) 通信システムにおいて同期化情報を送信するための装置及び方法
CN108737006A (zh) 一种时间同步方法、客户端及计算机可读存储介质
US11653417B2 (en) Upgrading access points
CN112187557A (zh) 一种测量上报的方法、网络节点
US9578599B2 (en) System and method for optimizing battery life in wireless multi-hop communication systems
US12022411B2 (en) Communication apparatus and communication system
US11089592B2 (en) Communication method executed in a long-range wireless network and affording low energy consumption and load management
CN109906577B (zh) 用于检测帧重发的方法、中央服务器、服务器及记录介质
CN108616453B (zh) 一种用于网络设备的方法、装置和系统
WO2020238738A1 (fr) Procédés et des appareils de communication par trame balise et de synchronisation de station de base dans réseau de communication
KR20150016735A (ko) 중앙 집중 제어 평면을 이용한 네트워크 시각 동기 시스템
WO2024103393A1 (fr) Conception de configuration de détection et de communication intégrée (isac)
EP4383925A1 (fr) Procédé et appareil de communication
KR102274562B1 (ko) 애드혹 네트워크 시스템 및 기준 노드 기반의 그룹 간 동기 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18928307

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18928307

Country of ref document: EP

Kind code of ref document: A1