Quelle est l'heure exacte?
Parmi les fonctions que le serveur de temps permet d'exécuter, nous pouvons nommer la formation correcte de la chronologie des événements dans les systèmes de contrôle pour maintenir des journaux appropriés, des journaux, des informations d'archivage, des tendances de construction, des graphiques, etc.
Dans les systèmes de vidéosurveillance, le serveur de temps permet de relier les enregistrements vidéo capturés à l'heure astronomique. En outre, l'appareil vous permet de comparer avec précision les informations de différents systèmes d'information de l'entreprise. Par exemple, il peut s'agir de systèmes de vidéosurveillance et de systèmes de sécurité, tels que les ACS, les systèmes de protection par relais et les systèmes de télémécanique indépendants, etc.
Un certain nombre de protocoles d'échange d'informations utilisent des horodatages directement dans le cadre des paquets de données transmis. Ces protocoles incluent CEI-101/104, utilisé dans les systèmes de télémécanique modernes.
L'une des exigences importantes pour un certain nombre d'applications industrielles est les exigences de sécurité de l'information qui excluent l'accès à Internet pour exécuter la fonction de synchronisation de l'heure.
En raison de sa simplicité et d'un certain nombre de raisons historiques pour résoudre le problème de la synchronisation de l'heure, le protocole le plus répandu est NTP. En plus des serveurs, des archives et des postes opérateur des systèmes de contrôle, des contrôleurs et des panneaux IHM, les équipements réseau des systèmes de communication (commutateurs gérés, routeurs, etc.) peuvent agir comme clients NTP dans une entreprise.
Protocole NTP
Le protocole NTP (Network Time Protocol) est un protocole de réseau permettant de synchroniser les horloges des systèmes informatiques sur des réseaux de données à commutation de paquets avec un retard variable (latence). La grande popularité du protocole est due au développement actif de systèmes basés sur Ethernet. L'un des principaux avantages du protocole est la possibilité de transmettre les horodatages directement sur le réseau de données, ce qui élimine le besoin d'un bus de temps séparé, comme dans les systèmes 1PPS ou IRIG-B. Le protocole a été développé en 1985 et est l'un des plus anciens protocoles Internet utilisés aujourd'hui.
NTP offre une précision de synchronisation acceptable pour la plupart des applications. Le protocole peut prendre en charge le temps avec une précision de plusieurs dizaines de millisecondes sur Internet et jusqu'à 0,2 ms sur les réseaux locaux dans des conditions idéales. Les chemins de données asymétriques et la congestion du réseau peuvent entraîner des erreurs de 100 ms ou plus.
NTP synchronise les appareils avec le temps universel coordonné (UTC). Dans ce cas, le protocole prend en compte l'apparition d'une seconde intercalaire du fait de la rotation inégale de la Terre, mais ne transmet aucune information sur les fuseaux horaires locaux ou l'heure d'été.
Structure du système
NTP utilise un système hiérarchique de sources de temps précises. Chaque niveau de la hiérarchie est appelé une strate (strate, couche) et se voit attribuer un numéro commençant à 0 pour l'horloge de référence en haut de la hiérarchie. Le serveur de temps sur la couche N est synchronisé à partir des serveurs sur la couche N-1. Le nombre N représente la distance de l'horloge de référence et est utilisé pour empêcher le cyclage pendant la synchronisation. La strate n'est pas toujours une mesure de qualité ou de fiabilité. Par exemple, vous pouvez trouver des sources de temps sur la couche 3 qui sont de meilleure qualité que les sources de temps sur la couche 2.
Stratum 0
L'horloge de référence sur la Stratum 0 est constituée des systèmes de navigation par satellite (GLONASS, GPS, etc.), des horloges atomiques ou des émetteurs radio. Une fois par seconde, ils génèrent un signal d'impulsion (1PPS) qui déclenche une interruption et génère un horodatage sur les appareils connectés. Les appareils de la couche 0 sont également appelés horloges de référence. Les serveurs NTP ne peuvent pas se positionner dans le système en tant que Stratum 0. Si le champ Stratum est mis à 0 dans un paquet de données, cela indique une couche non définie.
La structure logique du système de synchronisation basé sur NTP
Stratum 1
Cette couche contient des périphériques dont l'heure système est synchronisée à quelques microsecondes à partir de l'horloge de référence. Les serveurs de temps à ce niveau peuvent fonctionner en mode peer-to-peer avec d'autres serveurs Stratum 1 pour la redondance et la vérification de la précision. Ils sont également appelés serveurs de temps primaires.
Stratum 2
Il s'agit de périphériques qui se synchronisent sur le réseau à partir de serveurs de niveau 1. Souvent, les périphériques de niveau 2 interrogent plusieurs serveurs de niveau 1. Les ordinateurs de la couche 2 peuvent également être peer-to-peer avec d'autres ordinateurs de Stratum 2 pour fournir une heure plus stable et plus fiable à tous les périphériques d'un groupe de pairs. nœuds.
Le nombre théorique maximal de couches est de 15; La strate 16 est utilisée pour indiquer que le périphérique n'est pas synchronisé. Les mécanismes NTP de chaque périphérique du système interagissent pour créer le chemin le plus court vers les serveurs Stratum 1 pour tous les clients. Cela minimise la latence accumulée dans la transmission des données et améliore la précision de la synchronisation. L'algorithme de construction d'un arbre couvrant avec une longueur de chemin minimale est basé sur l'algorithme de Bellman-Ford.
Horodatage
NTP utilisait à l'origine des horodatages 64 bits, consistant en une partie 32 bits pendant les secondes et une partie 32 bits pendant des fractions de seconde, ce qui donnait une chronologie qui défilerait toutes les 32 secondes (136 ans) et donnerait une résolution théorique de 2 à 32 secondes (233 picosecondes). Le compte à rebours a commencé le 1er janvier 1900, donc la première époque se terminait le 7 février 2036.
La dernière version du protocole NTPv4 introduit un format de temps de 128 bits: 64 bits pour les secondes et 64 bits pour les fractions de seconde, ce qui donne une chronologie de plus de 584 milliards d'années et une résolution de 0,05 attoseconde. De plus, un champ numérique d'ère de 32 bits a été introduit, ce qui a même éliminé le problème théorique de la fin de chaque époque.
Algorithme de synchronisation d'horloge
Le client NTP interroge un ou plusieurs serveurs régulièrement. Ce faisant, il calcule le décalage horaire et le délai aller-retour. Le décalage de temps θ est la différence de temps absolu entre les horloges du serveur et du client et est déterminé par la formule: Les
retards aller-retour δ sont définis comme l'heure à laquelle le signal est transmis sur les lignes de communication du client au serveur et inversement. Il s'agit du temps nécessaire pour envoyer le signal, plus le temps nécessaire pour confirmer qu'un signal a été obtenu par:
où t 0 - marque l'heure du client pour transmettre un paquet de requête,
t 1 - horodatage recevant le paquet de requête du serveur,
t 2 - une heure du serveur d'étiquettes pour transmission d'un paquet de réponse,
t 3- horodatage du client recevant le paquet de réponse.
Algorithme de calcul du décalage temporel et du retard aller-retour
Les valeurs calculées de θ et δ sont passées à travers des filtres et soumises à une analyse statistique. Les valeurs aberrantes de l'échantillon total sont ignorées et le biais temporel est estimé sur la base des valeurs restantes. Connaissant le décalage temporel et le délai aller-retour, le client ajuste son propre temps pour atteindre θ égal à zéro.
Une synchronisation précise est obtenue lorsque les routes entrantes et sortantes entre le client et le serveur sont symétriques, c'est-à-dire qu'elles ont la même latence. Si les routes sont asymétriques, alors il y a un biais systématique de la moitié de la différence entre le moment où un paquet est envoyé du client au serveur et inversement.
Mécanismes de transmission
Dans la plupart des cas, le protocole NTP utilise le modèle de fonctionnement client-serveur classique, dans lequel le client envoie une requête et reçoit après un certain temps une réponse du serveur. Cependant, le protocole permet un fonctionnement peer-to-peer, où deux pairs se voient comme une source de temps potentielle. Ce mode de fonctionnement est également appelé symétrique. Pour la communication réseau, NTP utilise le protocole UDP, fonctionnant par défaut sur le port 123. Pour la transmission de données, divers mécanismes peuvent être utilisés - unicast, diffusion, multicast et manycast.
Mode monodiffusion
NTP utilise le plus souvent le mode Unicast pour le transfert de données. Dans ce mode, les données sont transférées individuellement d'un périphérique réseau à un autre. Les paquets de monodiffusion utilisent l'adresse spécifique du périphérique pour lequel le paquet est destiné comme adresse IP de destination. Mode de
diffusion
Ce mode est pratique dans les cas où un petit nombre de serveurs NTP dessert un grand nombre de clients. Dans ce mode, le serveur envoie périodiquement des paquets en utilisant l'adresse de sous-réseau de diffusion. Un client configuré pour se synchroniser de cette manière reçoit le paquet de diffusion du serveur et se synchronise avec lui.
Ce mode a un certain nombre de fonctionnalités. Premièrement, le mode de diffusion offre une précision de synchronisation inférieure à celle de la monodiffusion. Deuxièmement, les paquets de diffusion ne peuvent être transmis que dans le même sous-réseau. De plus, il est conseillé d'utiliser des méthodes d'authentification pour se protéger contre les intrus.
Mode Multicast Le mode Multicast
fonctionne de la même manière que Broadcast. La différence est que l'adresse du groupe de multidiffusion est utilisée pour la livraison des paquets, pas l'adresse de sous-réseau de diffusion. Les clients et les serveurs se voient attribuer une adresse IP de multidiffusion qu'ils utilisent pour la synchronisation de l'heure. Cela permet de synchroniser des groupes de machines situés sur différents sous-réseaux, à condition que les routeurs qui les connectent prennent en charge IGMP et soient configurés pour transmettre le trafic multicast.
Mode Manycast
Ce mode est nouveau dans la dernière version (v4) du protocole NTP. Le mode Manycast fonctionne comme mode Multicast uniquement avec les adresses IP inconnues des serveurs NTP. En envoyant des messages Multicast, le client recherche le réseau de serveurs Manycast, reçoit des échantillons de temps de chacun d'eux et sélectionne les trois "meilleurs" avec lesquels se synchroniser. En cas de panne de l'un des serveurs, le client met automatiquement à jour sa liste.
Les clients et serveurs fonctionnant en mode Manycast utilisent également des adresses de groupe de multidiffusion pour transmettre des échantillons de temps. Les clients et les serveurs utilisant la même adresse forment une seule association. Le nombre d'associations est déterminé par le nombre d'adresses de multidiffusion utilisées.
Versions de protocole
Depuis son apparition en 1985, le protocole a commencé à se développer activement et en 1992 avait changé quatre versions (de NTPv0 à NTPv3). Chaque nouvelle version ajoutait des fonctionnalités et optimisait son travail, mais laissait le format des données inchangé et gardait les différentes versions compatibles les unes avec les autres. La dernière quatrième version du protocole est datée de 2010. Le NTP continue d'évoluer aujourd'hui, des travaux sont en cours pour créer une solution techniquement similaire au PTP (Precision Time Protocol) plus précis.
SNTP
Simultanément avec NTPv3 en 1992, une version plus simple du protocole a été introduite - SNTP (Simple NTP). SNTP utilise le même format de transmission et de présentation que NTP. Dans le même temps, SNTP ne concerne pas les algorithmes du serveur, mais simplifie les algorithmes des clients. C'est pourquoi le protocole est le plus souvent utilisé dans les systèmes embarqués et les appareils qui ne nécessitent pas une grande précision.
La différence entre NTP et SNTP réside dans les méthodes de détermination des serveurs optimaux pour la synchronisation et la méthode de correction du temps. C'est ainsi que NTP permet au client d'utiliser l'algorithme d'intersection mathématique (une version repensée de l'algorithme de Marzullo) pour sélectionner plusieurs des meilleurs serveurs du réseau et ajuster leur heure en douceur. SNTP utilise un serveur NTP prédéfini pour la synchronisation, tandis que d'autres ne peuvent être des sauvegardes qu'en cas de perte de communication avec le périphérique principal. Dans ce cas, un client utilisant SNTP ne peut ajuster l'heure que lors d'un saut après avoir reçu une réponse du serveur.
Schéma typique du système de synchronisation et ses inconvénients
Traditionnellement, un système de temps de précision dans les installations industrielles est basé sur un serveur NTP constitué d'une unité principale montée dans la même armoire avec un équipement réseau et une antenne distante qui est installée à l'extérieur et connectée au serveur à l'aide d'un câble coaxial. En même temps, l'unité principale dispose de plusieurs interfaces réseau (Ethernet ou RS-232/485) pour connecter des clients à un ou plusieurs réseaux.
Système de temps de précision typique
Si vous regardez cette solution de plus près, vous verrez plusieurs inconvénients. Premièrement, un tel système manque de redondance complète. Malgré le fait que l'unité principale dispose de plusieurs interfaces réseau et est capable de fournir une heure précise dans plusieurs réseaux, sa défaillance ou sa défaillance entraînera la perte de la source de l'heure précise sur tout le site. La redondance totale de l'unité principale dans une telle solution rendra le système de synchronisation déjà coûteux encore plus cher.
Le deuxième inconvénient est la nécessité d'installer un serveur de temps dans l'armoire. Ce n'est pas un inconvénient pour les grands projets, mais pour les petits systèmes de contrôle locaux, cela peut être un problème sérieux.
En outre, les inconvénients comprennent la nécessité d'utiliser une antenne distante et un câble coaxial. Pourquoi? Tout d'abord, le coût d'une antenne GPS / GLONASS de haute qualité avec un long câble et une protection contre les rongeurs peut facilement dépasser 10000 roubles. aux prix 2020. Dans ce cas, les câbles coaxiaux ont une longueur limitée pour transmettre les signaux des systèmes satellitaires. Au-dessus de 50 m, le signal s'atténuera considérablement, ce qui est un facteur limitant important dans les grands bâtiments.
Le principal inconvénient de l'approche traditionnelle de la création de systèmes de synchronisation est son coût élevé (souvent plus de 150 000 roubles), qui affecte considérablement l'estimation non seulement des petits projets, mais aussi des projets assez grands.
Comment rendre le système moins cher et plus fiable
La tendance inconditionnelle des technologies modernes est la création d'appareils électroniques plus compacts et plus conviviaux. À cet égard, les serveurs de temps ne font pas exception.
L'ensemble de la solution de synchronisation, y compris l'antenne GPS / GLONASS, peut tenir dans un petit boîtier, comme cela se fait dans
FL TIMESERVER de Phoenix Contact. L'appareil est fabriqué sur le principe d'une antenne intelligente, c'est-à-dire qu'il combine directement les fonctionnalités d'un serveur de temps et d'une antenne de réception GPS / GLONASS. Son design est la seule chose qui le distingue des solutions habituelles.
Serveur de temps NTP FL TIMESERVER
Comme le montre la pratique, l'appareil est capable de communiquer avec les systèmes satellites même à l'intérieur des bâtiments, mais pour une réception du signal plus fiable, il peut être utilisé dans des conditions extérieures, car il est fabriqué dans un boîtier avec un niveau de protection contre la poussière et l'humidité IP68 et est capable de fonctionner dans une large plage de température de -40 à +70 C Dans ce cas, le serveur de temps est monté comme une antenne classique, dispose d'une alimentation redondante à partir du circuit 24 V DC et / ou via un câble Ethernet (PoE) et est diagnostiqué à l'aide de SNMP. Pour les installations extérieures, un presse-étoupe étanche est utilisé pour maintenir un niveau élevé de protection contre la poussière et l'humidité.
En termes de fonctionnalités, il n'y a pas de différences: l'appareil est capable de recevoir des horodatages et des données de géolocalisation des systèmes de navigation par satellite (GLONASS, GPS) et de diffuser ces informations aux clients sur un réseau Ethernet.
Système horaire basé sur la solution Phoenix Contact
Avec cette solution, le système de synchronisation est grandement simplifié et élimine les inconvénients de l'approche traditionnelle. FL TIMESERVERn'a qu'un seul port Ethernet, mais si vous devez utiliser plusieurs interfaces, il vous suffit de le connecter à un commutateur ou d'utiliser plusieurs antennes intelligentes. Dans ce cas, nous obtiendrons une sauvegarde complète des serveurs de temps, et pas seulement de son interface réseau. Dans ce cas, la solution finale sera toujours moins chère que de nombreux analogues existants. FL TIMESERVER peut être déplacé à l'extérieur du réseau ou de l'armoire d'automatisation, économisant de l'espace à l'intérieur. Cette solution ne nécessite pas d'antenne séparée, ici elle est déjà intégrée et nous pouvons nous connecter au réseau de l'entreprise avec un câble Ethernet ordinaire. À son tour, cela vous permet de déplacer le serveur de temps à une distance allant jusqu'à 100 m de l'équipement principal sans craindre que le signal ne disparaisse. L'avantage le plus important d'une telle solution est un ordre de prix complètement différent.Le coût d'un serveur unique est inférieur à 300 euros, ce qui le rend pratique à utiliser dans les petits et grands projets.