Specyfikacja

Sieć RunRabbit umożliwia wymianę danych pomiędzy dowolnymi urządzeniami znajdującymi się w tej samej sieci oraz synchronizację czasu.

Synchronizacja odbywa się w topologii hierarchicznej, na jej szczycie umieszczone jest główne urządzenie nadrzędne (Grand Master) będące źródłem precyzyjnego czasu dla całej sieci, natomiast reszta sieci podzielona jest na warstwy, gdzie każde urządzenie Slave w warstwie n synchronizuje się do urządzenia Master z warstwy n-1.

Urządzenie GrandMaster może dodatkowo być synchronizowane do zewnętrznego źródła czasu (np. cezowy zegar atomowy lub GPS).

Synchronizacja między każdymi dwoma urządzeniami zachodzi zawsze w jednym kierunku, jedno z urządzeń pełni rolę Master i jest źródłem czasu dla urządzenia podrzędnego Slave.

W takiej sieci dokładność synchronizacji względem urządzenia Grand Master ulega pogorszeniu w każdej kolejnej warstwie. W związku z tym należy zapewnić, aby urządzenia Slave w najbardziej oddalonej od urządzenia Grand Master warstwie były zsynchronizowane z dokładnością poniżej 1ns nanosekundy.

Sieć RUNRABBIT umożliwia transfer czasu i standardowego ruchu sieciowego używając tych samych łącz. Dla danych sieć ta działa tak samo jak standardowa sieć Ethernet. Którekolwiek z urządzeń może generować pakiety i wysyłać je do któregokolwiek z pozostałych urządzeń podłączonych do tej samej sieci. W związku z tym, sieć RUNRABBIT ma płaską strukturę dla ruchu niezwiązanego z synchronizacją.

  • Aby być w stanie zbudować taką sieć potrzebne są dwa rodzaje urządzeń: węzły (urządzenia wieloportowe) oraz urządzenia jednoportowe. Urządzenie jednoportowe może znajdować się na szczycie hierarchii i być źródłem czasu dla całej sieci (Grand Master), lub też pełnić funkcję urządzenia końcowego, synchronizującego się do sieci RunRabbit i wykorzystującego informację o precyzyjnym czasie w pożądany dla danej aplikacji sposób. Urządzenie wieloportowe (węzeł) służy natomiast do budowy sieci RunRabbit synchronizacji. Jest to urządzenie posiadające jeden port Slave – za jego pomocą synchronizuje się ono do urządzenia Master w wyższej warstwie – oraz wiele portów Master pozwalających urządzeniom Slave z niższej warstwy synchronizować się do węzła. Rysunek 1 przedstawia topologię sieci. W ramach projektu wykonany zostanie moduł sprzętowy jedno-portowego urządzenia GrandMaster/ Master/ Slave.
  • Umożliwienie łatwego wymieniania danych zapewnia oparcie rozwiązania o powszechnie wykorzystywaną i dobrze ustandaryzowaną technikę komunikacji – Ethernet (IEEE802). W ten sposób od dawna działają już inne protokoły synchronizacji takie jak Network Time Protocol (NTP) lub Precision Time Protocol (IEEE-1588). Synchronizacja odbywa się tam poprzez wymianę pakietów stemplowanych czasem (zapamiętany czas wysłania lub oraz odebrania pakietu). Protokoły te nie pozwalają jednak osiągnąć dokładności synchronizacji wymaganej od sieci RunRabbit. Obecnie najpowszechniej używany wariant technologii Ethernet umożliwia przesyłanie danych z prędkością 1Gbit/s. Urządzenia RunRabbit będą pracowały w tej właśnie technologii wykorzystując łącza światłowodowe.Rys. 1
  • Istniejące protokoły synchronizacji bazujące na Ethernecie (NTP, IEEE-1588) mają już dobrze ugruntowaną pozycję w zastosowaniach profesjonalnych. O ile w przypadku NTP synchronizacja odbywa się jedynie przez instalację odpowiedniego oprogramowania (daemona NTP) na komputerze czy też systemie wbudowanym, to wykorzystanie pełnych możliwości IEEE-1588 wymaga zastosowania dedykowanego sprzętu. Dzięki takiemu podejściu uzyskuje się lepsze dokładności synchronizacji, gdyż generacja stempli czasowych odbywa się w sprzęcie, dzięki czemu pominięty zostaje cały nie-determinizm systemu operacyjnego, przełączania kontekstu, obsługi przerwań itd. Z drugiej jednak strony budowa takiego systemu synchronizacji wymaga zakupienia dedykowanego dla IEEE-1588 sprzętu. Chodzi tutaj zarówno o urządzenia końcowe synchronizujące się do sieci IEEE-1588, jak i przełączniki Ethernetowe pełniące rolę węzłów IEEE-1588 (Boundary Clock). Jako, że IEEE-1588 pozwala osiągnąć wyższe dokładności synchronizacji znajduje on wiele zastosowań między innymi w:
    1. automatyce przemysłowej
    2. sieciach telekomunikacyjnych
    3. sieciach energetycznych (GRID)
    4. sieciach informatycznych systemów giełdowych

Jeśli więc urządzenia RunRabbit będą bazowały na powszechnie wykorzystywanym protokole synchronizacji IEEE-1588, to możliwe będzie wykonywanie stopniowej modernizacji już istniejących systemów w celu osiągnięcia jeszcze dokładniejszej synchronizacji – poniżej 1ns. W takim przypadku urządzenia RunRabbit kompatybilne wstecz z obecnie stosowanymi urządzeniami IEEE1588-2008 (druga i dużo bardziej rozpowszechniona wersja protokołu) będą mogły być dołączane do obecnych systemów. Oczywiście dokładność synchronizacji na poziomie <1ns będzie możliwa do osiągnięcia jedynie pomiędzy modułami RunRabbit. W przypadku dołączenia urządzenia Slave IEEE1588 do modułu RUNRABBIT Master, synchronizacja nie będzie lepsza niż obecne możliwości protokołu IEEE1588-2008.