Есть протокол синхронизации времени
NTP для сетей с переменными задержками, от него нужно отталкиваться и реализовать похожим образом. NTP использует алгоритм Марзулло, который учитывает время передачи.
На
stackoverflow человек подробно описал как работает протокол, привел пример, думаю, это то, что вам нужно.
Также на просторах сети есть куски кода, реализующих NTP.
Есть
opensource приложение под андроид для синхронизации телефона с NTP сервером.