Cristians algoritm
Cristians algoritm (introducerad av Flaviu Cristian 1989) är en metod för klocksynkronisering som kan användas inom många områden av distributiv datavetenskap men som främst används i intranät med låg latens . Cristian observerade att denna enkla algoritm är probabilistisk, eftersom den bara uppnår synkronisering om rundturstiden (RTT) för begäran är kort jämfört med erforderlig noggrannhet. Det lider också i implementeringar som använder en enda server, vilket gör det olämpligt för många distributionsapplikationer där redundans kan vara avgörande.
Beskrivning
Cristians algoritm fungerar mellan en process P och en tidsserver S ansluten till en tidsreferenskälla. Enkelt uttryckt:
- P begär tiden från S vid tidpunkten t 0 .
- Efter att ha mottagit begäran från P förbereder S ett svar och lägger till tiden T från sin egen klocka .
- P tar emot svaret vid tidpunkten ti sätter sedan sin tid till T + RTT/2 , där RTT=ti - t 0 .
Om RTT faktiskt delas lika mellan begäran och svar är synkroniseringen felfri. Men på grund av oförutsägbara influenser är detta antagande regelbundet inte sant. Längre RTT indikerar störningar som i allmänhet är asymmetriska. Offset och jitter för synkroniseringen minimeras således genom att välja lämplig RTT från en uppsättning av många begäran/svar-par. Huruvida en RTT kan accepteras vid en given tidpunkt beror på klockans drift och på statistiken för RTT. Dessa kvantiteter kan mätas under synkroniseringen, vilket optimerar metoden i sig.
Se även
- Allan varians
- Berkeley algoritm
- Klocksynkronisering
- Daytime Protocol , äldre tidssynkroniseringsprotokoll med TCP- eller UDP-port 13
- ICMP Timestamp och ICMP Timestamp Reply , äldre tidssynkroniseringsprotokoll med ICMP
- Internationell atomtid
- NTP-pool , en samling världsomspännande datorer som ger en mycket exakt tid via Network Time Protocol
- NTP-server missbruk och missbruk
- ntpd , OpenNTPD och Ntpdate
- Precision Time Protocol
- Synkronisering
- Tidsprotokoll , äldre tidssynkroniseringsprotokoll med TCP- eller UDP-port 37
- Tidsserver