US 11,953,938 B1
Generating globally coherent timestamps
Peter Hochschild, New York, NY (US); Alexander Lloyd, New York, NY (US); Wilson Cheng-Yi Hsieh, Syosset, NY (US); Robert Edman Felderman, Portola Valley, CA (US); and Michael James Boyer Epstein, Brooklyn, NY (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on May 10, 2022, as Appl. No. 17/740,688.
Application 15/877,845 is a division of application No. 14/925,278, filed on Oct. 28, 2015, granted, now 9,915,970, issued on Mar. 13, 2018.
Application 17/740,688 is a continuation of application No. 16/992,673, filed on Aug. 13, 2020, granted, now 11,353,917.
Application 16/992,673 is a continuation of application No. 15/877,845, filed on Jan. 23, 2018, granted, now 10,775,837, issued on Sep. 15, 2020.
Application 14/925,278 is a continuation of application No. 14/567,294, filed on Dec. 11, 2014, granted, now 9,203,600, issued on Dec. 1, 2015.
Application 14/567,294 is a continuation of application No. 13/475,143, filed on May 18, 2012, granted, now 8,938,636, issued on Jan. 20, 2015.
Int. Cl. G06F 1/12 (2006.01); G01S 19/01 (2010.01); G06F 11/16 (2006.01); H04J 3/06 (2006.01); H04L 7/00 (2006.01); H04L 43/106 (2022.01); H04L 67/10 (2022.01)
CPC G06F 1/12 (2013.01) [G01S 19/01 (2013.01); H04J 3/0661 (2013.01); H04J 3/0667 (2013.01); H04L 7/0008 (2013.01); H04L 7/0012 (2013.01); H04L 7/0016 (2013.01); H04L 43/106 (2013.01); H04L 67/10 (2013.01); G06F 11/1675 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A method for synchronizing a host machine, comprising:
receiving an initial local timestamp;
receiving response timestamps transmitted from a first group of time masters and a second group of time masters, the second group of time masters configured differently than the first group of time masters with respect to connection to a reliable source of time, each response timestamp associated with a current local timestamp;
calculating, using a processor, time offset intervals for the first group of time masters based on the initial local timestamp and the response timestamps of the first group of time masters;
calculating, using the processor, time offset intervals for the second group of time masters based on the initial local timestamp and the response timestamps of the second group of time masters;
determining, using the processor, an agreement based smallest time offset interval consistent among both groups of time masters; and
adjusting, using the processor, a local clock on the host machine based on the agreement based smallest time offset interval consistent among both groups of time masters.