Jak działa BMCA (Best Master Clock Algorithm) w IEEE 1588 PTP?
P: Czym jest Best Master Clock Algorithm (BMCA)?
O: Best Master Clock Algorithm (BMCA) to mechanizm zdefiniowany w standardzie IEEE 1588 Precision Time Protocol (PTP), który automatycznie określa, który zegar w sieci powinien pełnić rolę Grandmastera (GM) — autorytatywnego źródła czasu, z którym synchronizują się wszystkie inne zegary. BMCA działa niezależnie na każdym urządzeniu PTP, a każdy port porównuje atrybuty własnego zegara z ogłoszeniami otrzymanymi od sąsiednich zegarów. Poprzez tę rozproszoną porównanie wszystkie urządzenia niezależnie dochodzą do tego samego wniosku, który zegar jest najlepszy, bez potrzeby scentralizowanego kontrolera.
P: Jak działa proces porównywania?
O: Gdy urządzenie PTP otrzyma komunikat Announce od sąsiada, BMCA porównuje uszeregowany zestaw atrybutów, aby zdecydować, który zegar jest lepszy. Porównanie następuje w ścisłej kolejności priorytetów:
clockClass — najwyższy priorytet w porównaniu
clockAccuracy
offsetScaledLogVariance (stabilność)
priority1
clockIdentity
priority2
Adres portu / sekwencja
Pierwszy atrybut, który się różni, decyduje o zwycięzcy. Port przegrywającego zegara przechodzi w stan Slave (lub Passive) w stosunku do zwycięzcy.
P: Czym jest clockClass i dlaczego jest ważny?
O:clockClass to wartość całkowita (0–255) wskazująca jakość i identyfikowalność źródła czasu zegara. Niższe wartości oznaczają lepszą jakość. Kluczowe zakresy to:
6 — Zablokowany do źródła referencyjnego (np. zegar dyscyplinowany GPS)
7 — Niezablokowany, ale w specyfikacji przetrzymania
13 — Zablokowany do źródła specyficznego dla aplikacji
248 — Domyślny, niesynchronizowany lub zdegradowany
255 — Zegar tylko w roli Slave (nigdy nie wybierany jako GM)
Ponieważ clockClass jest pierwszym atrybutem porównywania, zegar zablokowany do GPS (klasa 6) zawsze będzie miał wyższy priorytet niż lokalny zegar pracujący swobodnie (klasa 248), niezależnie od innych ustawień.
P: Czym są priority1 i priority2?
O:Priority1 i priority2 to konfigurowalne przez użytkownika wartości (0–255), które dają administratorom ręczną kontrolę nad wyborem GM.
priority1 jest porównywany przed clockIdentity. Niższa wartość oznacza wyższy priorytet. Ustawienie priority1 na 0 dla preferowanego zegara silnie zachęca do wybrania go jako GM.
priority2 jest porównywany jako ostatni wśród standardowych atrybutów, służąc jako ostateczny rozstrzygający czynnik wśród zegarów, które są w inny sposób identyczne pod względem jakości. Na przykład, jeśli istent dwa identyczne redundantne zegary, priority2 wyróżnia, który jest preferowany.
Ustawienie priority1 = 255 skutecznie wyklucza zegar z możliwości stania się Grandmasterem.
P: Podsumowanie
O: BMCA zapewnia solidny, automatyczny i deterministyczny wybór GM. clockClass kontroluje jakość źródła czasu, priority1 zapewnia silną administracyjną preferencję, a priority2 oferuje szczegółowe rozstrzyganie remisów — razem dając inżynierom pełną kontrolę nad topologią grandmastera PTP.