Assunzioni preliminari

Implementare l'intero protocollo NTP o SNTP che sia sarebbe stato un gran lavoro che sarebbe in buona parte stato vanificato da alcune caratteristiche intrinseche di Java: il fatto di non essere un linguaggio compilato in formato macchina, ma in bytecode, per poi essere interpretato dalla Java Virtual Machine (JVM), introduce un ulteriore livello di esecuzione diminuendo l'efficienza generale. Inoltre, se consideriamo che la precisione nella misura del tempo in Java raggiunge i millisecondi, mentre quella ottenibile utilizzando chiamate dirette al kernel raggiunge, in alcuni casi, ordini dei nanosecondi, ci porta a ritenere che molte parti del protocollo possano essere decurtate.

Per questo, gli algoritmi di selezione della sorgente di sincronizzazione e di controllo degli errori non sono stati implementati in quanto avrebbero introdotto maggiore complessità a fronte di un guadagno minimo in termini di precisione. La decisione, allora, di usare come base SNTP era quasi naturale.



2004-01-08