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:

  1. P begär tiden från S vid tidpunkten t 0 .
  2. 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 .
  3. 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