ntp protocol
This commit is contained in:
35
networking/028-ntp.md
Normal file
35
networking/028-ntp.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Network Time Protocol (NTP)
|
||||
|
||||
`NTP` è un protocollo dell'Application Layer, progettato per sincronizzare gli orologi dei dispositivi all'interno di una rete. Utilizza un punto centrale di riferimento, rappresentato da un server NTP, per garantire che i timestamp siano accurati e coerenti.
|
||||
|
||||
## Gerarchia
|
||||
|
||||
NTP si basa sul protocollo UDP e utilizza la *well-known port 123*. Esistono numerosi server NTP distribuiti in tutto il mondo, gestiti da vari enti, e sono organizzati gerarchicamente in livelli, noti come `strati`.
|
||||
|
||||
- **Strato 1**: i server NTP di primo livello sincronizzano i loro orologi interni con fonti esterne estremamente precise, come gli orologi atomici. Queste informazioni vengono poi trasmesse a cascata ai server NTP degli strati inferiori, che si scambiano anche informazioni tra di loro, garantendo una continua sincronizzazione temporale
|
||||
- **Client finali**: all'ultimo strato si trovano i client, che inviano richieste NTP per ottenere la sincronizzazione temporale dai server
|
||||
|
||||

|
||||
|
||||
### Algoritmi di Sincronizzazione
|
||||
|
||||
NTP utilizza diversi algoritmi per regolare il tempo ricevuto, tenendo conto di varie problematiche legate al tempo, come il ritardo nella trasmissione della risposta.
|
||||
|
||||
## Pacchetto NTP
|
||||
|
||||
Il pacchetto NTP ha una dimensione fissa di 48 byte e contiene diversi campi, alcuni dei quali sono utilizzati nella richiesta NTP, mentre altri sono presenti nella risposta.
|
||||
|
||||
- `LI` (Leap Indicator): indica se ci sono stati aggiustamenti nel timestamp, ovvero un intervento per correggere l'ora e garantire l'accuratezza
|
||||
- `VN` (Version Number): specifica la versione di NTP utilizzata per la comunicazione
|
||||
- `Mode`: indica il ruolo del dispositivo, specificando se si tratta di una richiesta da parte del client, di una risposta del server, ecc.
|
||||
- `Stratum`: indica da quale strato viene prelevata l'informazione temporale
|
||||
- `Precision`: indica la precisione del clock locale di un dispositivo, ossia la sua capacità di mantenere il tempo in modo accurato rispetto a quello ricevuto dalla sorgente
|
||||
- `Root Delay`: tempo stimato di andata e ritorno al server di riferimento, utilizzato per calcolare il ritardo temporale tra la richiesta e la risposta
|
||||
- `Root Dispersion`: Rappresenta l'errore massimo atteso nella sincronizzazione temporale.
|
||||
- `Reference ID`: identificativo del server sorgente
|
||||
- `Reference Timestamp`: timestamp dell'ultima sincronizzazione del server NTP con una fonte affidabile
|
||||
- `Originate Timestamp`: timestamp che indica quando il client ha originato la richiesta
|
||||
- `Receive Timestamp`: timestamp che indica quando la richiesta è stata ricevuta dal server NTP
|
||||
- `Transmit Timestamp`: timestamp che indica quando il server ha inviato la risposta al client
|
||||
|
||||

|
BIN
networking/asset/img/ntp-package.png
Normal file
BIN
networking/asset/img/ntp-package.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
networking/asset/img/ntp-stratum.png
Normal file
BIN
networking/asset/img/ntp-stratum.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 392 KiB |
Reference in New Issue
Block a user