SRT 2 NTP
Nécessité ● Les ordinateurs utilisent des horloges à quartz – Peu de précision – Tendance à dériver – Parfois plusieurs secondes par jour
Nécessité ● Synchronisation des horloges nécessaire entre systèmes informatiques ● Parfois indispensable : – Contrôle aérien – échanges commerciaux – transactions journalisées de bases de données – diffusion de contenu multimédia en temps-réel – etc.
NTP ● Il faut donc synchroniser les systèmes entre eux, ou distribuer le temps ● Basé sur une heure de référence, le temps universel coordonné (UTC) ● Création du protocole NTP : Network Time Protocol
Histoire ● Originellement, Time Protocole : plus assez précis ● Sortie en 1985 de NTP qui offre une précision de l'ordre de la seconde ● V1 en 1988, V2 en 1989 avec authentification par clé symétrique, V3 utilise une meilleur algorithme de correction de l'heure + diffusion du temps en broadcast ● V4 en développement depuis 1994 mais utilisée, incluant un développement de modèles d'horloges plus stables dans les noyaux entre autres
Principe ● NTP ne se charge pas de changement de fuseau horaire, ni passage à l'heure d'été et d'hiver : géré par OS ● NTP diffuse une référence UTC
Architecture hiérarchique
● Récepteurs : récupèrent l'heure de référence par radios, câbles, satellites ou directement depuis une horloge atomique. ● Serveurs de temps : récupèrent l'heure de référence auprès des récepteurs ou bien auprès d'autres serveurs de temps ● Clients : récupérent l'heure de référence auprès des serveurs de temps ● Organisé par strates : chaque strate se synchronise avec strate supérieure ou serveur de même niveau ● Tous systèmes sont clients et serveurs, excepté strate inférieure et supérieure
Architecture hiérarchique ● En 1999, nombre de serveurs : ● strate 1 : 300, synchronisés sur horloges atomiques ● strate 2 : , par exemple serveurs de campus, fournisseurs d'accès, backbone ● strate 3 : ● à partir de strate 4, clients connectés sur Internet : plusieurs centaines de millions car implémentation automatique dans les OS ● 15 couches possibles mais on ne dépasse pas la 5ème en général
Principe de diffusion du temps ● Le temps est défini comme un entier de 64 bits : – les 32 bits de poids forts correspondent au nombre de secondes écoulées depuis le 1er janvier 1900 à minuit – les 32 bits restant représentent la fraction d'une seconde ● L'échelle de temps : 2^32 secondes (soit un peu plus de 136 ans), résolution théorique de 2^-32 seconde (ce qui correspond à un peu moins de 0,233 nanosecondes). ● Mécanismes de correction des délais dûs aux temps de transmission ; jusqu'à 5 min pour se synchroniser ● Précision moindre via Internet (10ms), bonne sur réseau local (200µs) ● en TCP ou UDP (plus courant)
Implémentation ● C'est une bonne pratique d'avoir un serveur de temps sur son réseau ● Configuration /etc/ntp.conf ● Définir au moins 3 serveurs de temps de référence ● Définir des restrictions pour les connexions à notre serveur de temps ● Le client et le serveur sont en fait le même service : ntpd – dû à l'architecture de ntp