This invention relates to packet selection techniques that can be used in conjunction with a clock recovery mechanism to mitigate the effects of packet delay variation on timing messages exchanged over a packet network, particularly when seeking to synchronize the time of a clock in a slave device to that of a master clock. The packet selection techniques can assist in reducing the noise in the recovered clock signal at the slave device, allowing recovery to a higher quality. Embodiments of the invention provide techniques based on extracting timing packets that create a constant interval between the arrival of selected packets at the slave device and on extracting timing packets which are closest to making the interval between arrival of the selected packets equal to the interval between the departure of the packets.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of selecting packets transmitted from a first device to a second device over a packet network, the method including the steps of: sending, from the first device to the second device, packets; recording the time of receipt of said packets according to a clock in the second device; repeatedly, for each of a plurality of groups of said packets: determining an optimal inter-arrival time between successive packets at the second device; calculating, for each packet in said group, the inter-arrival time between the packet and the preceding packet; selecting the packet in said group which has an inter-arrival time which is the closest to the optimal inter-arrival time; sending, from the first device to the second device, timestamps which are the time of sending said packets from the first device according to a clock in the first device; determining, for each packet in said group, the inter-departure time between the packet and the preceding packet from the first device, wherein an optimal inter-arrival time is determined for each packet as the inter-departure time between said packet and the preceding packet; and using the selected packets in the synchronization of the clock in the second device to the clock in the first device.
2. A method according to claim 1 wherein the groups of packets are all the packets arriving within a selected time window prior to the current time.
3. A method according to claim 1 wherein the second device is a master device and the first device is a slave device and the packets are timing messages sent from the master device to the slave device over the packet network.
4. A first networked device connected to a second networked device over a packet network, wherein the first networked device has a clock, a memory, and a processor coupled to the memory, the processor configured to: receive packets from the second device; record the time of receipt of said packets according to said clock; repeatedly, for each of a plurality of groups of said packets: determine an optimal inter-arrival time between successive packets at the first device; calculate, for each packet in said group, the inter-arrival time between the packet and the preceding packet; select the packet in said group which has an inter-arrival time which is the closest to the optimal inter-arrival time; receive, from the second networked device, timestamps which are the time of sending said packets from the second device according to a clock in the second device; and determine, for each packet in said group, the inter-departure time between the packet and the preceding packet from the second device, wherein an optimal inter-arrival time is determined for each packet as the inter-departure time between said packet and the preceding packet; and synchronize the clock in the first networked device to the clock in the second networked device using the selected timing messages.
5. A networked device according to claim 4 wherein the groups of packets are all the packets arriving within a selected time window prior to the current time.
6. A networked device according to claim 4 wherein the second networked device is a master device and the first networked device is a slave device and the packets are timing messages sent from the master device to the slave device over the packet network.
7. A networked system, the system including: a first networked device; a second networked device having a clock, a memory, and a processor coupled to the memory; and a packet network connecting the first and second devices, wherein the processor of the second networked device is configured to: receive packets from the first device; record the time of receipt of said packets according to said clock; repeatedly, for each of a plurality of groups of said packets: determine an optimal inter-arrival time between successive packets at the second device; calculate, for each packet in said group, the inter-arrival time between the packet and the preceding packet; select the packet in said group which has an inter-arrival time which is the closest to the optimal inter-arrival time; receive, from the first device, timestamps which are the time of sending said packets from the first device according to a clock in the first device; and determine, for each packet in said group, the inter-departure time between the packet and the preceding packet from the first device, wherein an optimal inter-arrival time is determined for each packet as the inter-departure time between said packet and the preceding packet; and synchronize the clock in the second device to the clock in the first device using the selected timing messages.
8. A networked system according to claim 7 wherein the groups of packets are all the packets arriving within a selected time window prior to the current time.
9. A networked system according to claim 7 wherein the first networked device is a master device and the second networked device is a slave device and the packets are timing messages sent from the master device to the slave device over the packet network.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 9, 2013
February 23, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.