IP Library › Granted Patent US 10,505,651
Granted Patent B1
US 10,505,651 · App. 16/054,526 · Granted Dec 10, 2019

Precision time synchronization over standardized networking protocols

Inventor: Caleb Garrett (Essex, CT)
Assignee: WHELEN ENGINEERING COMPANY, INC.
H04J3/0655H04J3/0682H04L69/28H04J3/0635H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,505,651
App. No.
16/054,526
Granted
Dec 10, 2019
Kind
B1
Abstract

A system, method and computer product for performing a time synchronization between first and second nodes includes the first node performing: generating a synchronization message, transmitting the synchronization message to the second node at a first time, taking a first timestamp in response to the synchronization message being transmitted and transmitting a timestamp message including the first timestamp to the second node at a second time; 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.

Claims (71)

1. A network system comprising a first node and a second node, wherein the first node including a first processor is configured to:

generate, using the first processor, a synchronization message including a synchronization indication ID;

transmit, using the first processor, the synchronization message to the second node over a network;

take, using the first processor, a first timestamp in response to the synchronization message being transmitted over the network when the message is being transmitted; and

transmit, using the first processor, a timestamp message including the first timestamp to the second node at a second time over the network, the second time being different from the first time,

wherein the second node including a second processor is configured to:

receive, using the second processor, the synchronization message and the timestamp message from the first node;

take, using the second processor, a second timestamp in response to the synchronization message being received from the first node when the message is being received;

obtain, using the second processor, the first timestamp based on the received timestamp message;

obtain, using the second processor, a timing offset between the first timestamp and the second timestamp; and

perform, using the second processor, a time synchronization to the first node based on the timing offset,

wherein the synchronization indication ID is formed by modifying a source-related field from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes,

wherein the modified source-related field contains the synchronization indication ID and source origin information, and

wherein a value of the synchronization indication ID is determined based on an offset between a value of the source origin information and a maximum allowable value for the modified source-related field.

2. The network system of claim 1 , wherein the synchronization message comprises an encrypted portion including a message ID and an unencrypted portion including the synchronization indication ID.

3. The network system of claim 1 , wherein subsequent to taking the second timestamp, the second node is further configured to identify the synchronization message based on the synchronization indication ID.

4. The network system of claim 3 , wherein in response to identifying the synchronization message, the second node is further configured to decrypt the encrypted portion of the synchronization message to obtain a message ID included in the synchronization message.

5. The network system of claim 4 , wherein the second node is further configured to pair the second timestamp with the obtained message ID.

6. The network system of claim 5 , wherein the second node is further configured to calculate the timing offset between the first and second timestamps, in response to determining that another message ID of the timestamp message transmitted from the first node is equal to the message ID paired with the second timestamp.

7. The network system of claim 1 , wherein the network system further a third node, and subsequent to the second node completing the time synchronization to the first node, the second node is further configured to initiate another time synchronization with the third node by generating another synchronization message to transmit said another synchronization message to the third node.

8. The network system of claim 1 , wherein the second node is one-hop away from the first node, the third node is one-hop away from the second node, and the third node is two-hops away from the first node.

9. The network system of claim 1 , wherein a message ID of the another synchronization message generated by the second node is different from the message ID of the synchronization message generated by the first node.

10. The network system of claim 1 , wherein the one or more of the source-related fields comprise a source network ID field.

11. A method for performing a time synchronization between nodes including a first node and a second node, comprising:

generating, by a first processor of the first node, a synchronization message including a synchronization indication ID;

transmitting, by the first processor of the first node, the synchronization message to the second node at a first time over a network;

taking, by the first processor of the first node, a first timestamp in response to the synchronization message being transmitted over the network when the message is being transmitted;

transmitting, by the first processor of the first node, a timestamp message including the first timestamp to the second node at a second time over the network, the second time being different from the first time,

wherein the synchronization indication ID is formed by modifying a source-related field from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes,

wherein the modified source-related field contains the synchronization indication ID and source origin information, and

wherein a value of the synchronization indication ID is determined based on an offset between a value of the source origin information and a maximum allowable value for the modified source-related field.

12. The method of claim 11 , further comprising:

receiving, by the second node, the synchronization message and the timestamp message from the first node;

taking, by the second node, a second timestamp in response to the synchronization message being received when the message is being received;

receiving, by the second node, the timestamp message from the first node; obtaining, by the second node, the first timestamp based on the received timestamp message;

obtaining, by the second node, a timing offset between the first timestamp and the second timestamp; and

performing, by the second node, a time synchronization to the first node based on the timing offset.

13. The method of claim 11 , wherein the synchronization message comprises an encrypted portion including a message ID and unencrypted portion including the synchronization indication ID.

14. The method of claim 12 , further comprising:

identifying, by the second node, the synchronization message based on the synchronization indication ID, subsequent to taking the second timestamp.

15. The method of claim 14 , further comprising:

decrypting the encrypted portion of the synchronization message to obtain a message ID included in the synchronization message, in response to identifying the synchronization message.

16. The method of claim 15 , further comprising pairing, by the second node, the second timestamp with the obtained message ID.

17. The method of claim 16 , wherein the calculating the timing offset between the first and second timestamps is performed in response to determining that another message ID of the timestamp message transmitted from the first node is equal to the message ID paired with the second timestamp.

18. The method of claim 11 , wherein the one or more of the source-related fields comprise a source network ID field.

19. The method of claim 12 , wherein the second node is one-hop away for the first node.

20. A computer program product stored in a non-transitory computer-readable storage medium having computer readable program instructions, the computer readable program instructions read and carried out by a first processor and a second processor for performing a time synchronization between nodes including a first node and a second node, wherein the method comprises:

generating, using the first processor of the first node, a synchronization message including a synchronization indication ID;

transmitting, using the first processor of the first node, the synchronization message to the second node at a first time over a network;

taking, using the first processor of the first node, a first timestamp in response to the synchronization message being transmitted over the network when the message is being transmitted;

transmitting, using the first processor of the first node, a timestamp message including the first timestamp to the second node at a second time over the network, the second time being different from the first time;

receiving, using the second processor of the second node, the synchronization message and the timestamp message from the first node;

taking, using the second processor of the second node, a second timestamp in response to the synchronization message being received when the message is being received;

receiving, using the second processor of the second node, the timestamp message from the first node;

obtaining, using the second processor of the second node, the first timestamp based on the received timestamp message;

obtaining, using the second processor of the second node, a timing offset between the first timestamp and the second timestamp; and

performing, using the second processor of the second node, a time synchronization to the first node based on the timing offset,

wherein the synchronization indication ID is formed by modifying a source-related field from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes,

wherein the modified source-related field contains the synchronization indication ID and source origin information, and

wherein a value of the synchronization indication ID is determined based on an offset between a value of the source origin information and a maximum allowable value for the modified source-related field.

21. The computer program product of claim 20 , wherein the synchronization message comprises an encrypted portion including a message ID and unencrypted portion including the synchronization indication ID.

22. The computer program product of claim 20 , wherein the one or more of the source-related fields comprise a source network ID field.

23. A network node comprising at least one processor, is configured to:

generate, using the at least one processor, a synchronization message including a synchronization indication ID;

transmit, using the at least one processor, the synchronization message to another network node over a network;

take, using the at least one processor, a first timestamp in response to the synchronization message being transmitted over the network when the message is being transmitted; and

generate, using the at least one processor, a timestamp message based on the first timestamp; and

transmit, using the at least one processor, the timestamp to another network node at a second time over the network, the second time being different from the first time

wherein the synchronization indication ID is formed by modifying a source-related field from a standard message format which is compliant to a network protocol implemented in each of the first and second nodes,

wherein the modified source-related field contains the synchronization indication ID and source origin information, and

wherein a value of the synchronization indication ID is determined based on an offset between a value of the source origin information and a maximum allowable value for the modified source-related field.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2018
From: GARRETT, CALEB
To: WHELEN ENGINEERING COMPANY, INC.
Reel/Frame 047642/0738 →
Cited By (3)
US 12,268,958 US 12,500,827 US 12,563,511