[brainstorm] Tijd synchronisatie voorbeelden

Pagina: 1
Acties:

  • JaWSnl
  • Registratie: Maart 2007
  • Laatst online: 27-02 17:21
Voor mijn stage moet ik een tijdsynchronisatie verzorgen tussen verschillende lagen in de machines. Ik heb zelf al veel proberen uit te zoeken maar ik kom niet verder. Mijn begeleider is een aantal dagen weg.

In eerste instantie is er een ethernetverbinding van een Sun Solaris systeem naar een 24-port switch naar allerlei verschillende hosts. Deze zijn gedeeltelijk eigen gemaakte Linux-systemen, en gedeeltelijk VxWorks systemen.

Ik heb verschillende fases in mijn stage. De eerste heb ik afgerond, dat was: een duidelijk beeld krijgen van de aanwezige hardware/software in het systeem, en de gebruikte technieken voor tijdsynchronisatie nu. Voornamelijk wordt nu ICMP-timestamping gebruikt, wat uiteindelijk zorgt voor een precisie van rond de 2 [ms].

Mijn doel is om dit terug te brengen tot max 50 [us] (dus microseconden).

Ik ben nu aan het onderzoeken naar alle mogelijkheden. Er is bijvoorbeeld NTP en PTP (IEEE 1588) als echte protocollen. Maar waar ik nu naar zoek is manieren waar ze bij andere producten,bedrijven,organisaties hier in real-life mee omgaan.

Bijvoorbeeld, de spoorwegen: die zullen allemaal gesynchroniseerd moeten worden door heel nederland. Dan praat je dus over een enorm netwerk, wat wellicht niet zo tijd-kritisch is maar op kleine schaal wellicht dit wel zou kunnen zijn. Of radio-telescopen: Machines die samenwerken en beelden die exact over elkaar heen gelegd moeten worden.

Wie heeft er ideeen over waar het "probleem" nog meer speelt, en voornamelijk: hoe ik erachter kom hoe ze het oplossen! Hoe kom ik aan die kennis, bij welke bedrijven is dit openbaar wellicht?

edit: de maximale kabellengte van ethernet is 10meter (even een richtlijn).

There are only 10 types of people in the world: those who understand binary and those who don't.


  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 21:40
Ik heb ben dit probleem ook tegen gekomen tijdens mijn stage. Ik was bezig met het ontwikkelen van Machine to Machine systemen, waarbij sommige systemen de tijd compleet vergaten bij power verlies. Op zich was het voldoende als het tot op de minuut werd gesynchroniseerd, echter omdat ik toch een oplossing (J2ME) moest verzinnen, heb ik het SNTP protocol geïmplementeerd. Overigens moet ik hierbij toegeven dat het geen volledige/officiële implementatie is geworden :+. Werkte echter perfect, zelfs over GPRS verbindingen etc. Indien je meer informatie wenst kan ik die wel verschaffen (DM/mail) :)

Een reference implementatie is te bekijken op http://support.ntp.org/bin/view/Main/SoftwareDownloads overigens :)

[ Voor 8% gewijzigd door asfaloth_arwen op 04-03-2009 09:58 ]

Specs


  • Equator
  • Registratie: April 2001
  • Laatst online: 06-03 15:24

Equator

Crew Council

#whisky #barista

Tja, voor tijd sync in een multi OS omgeving, zou ik toch kiezen voor een standaard als NTP.

Gewoon een centrale NTP server plaatsen die zijn tijd haalt van een publiek stratum 2 server. (hier is een lijst te vinden: http://support.ntp.org/bi...ers/StratumTwoTimeServers )

In geval van meerdere sites, zou ik per site weer een aparte server plaatsen die de tijd van de cetrale server krijgt.

Overigens is NTP.org een leuke site om eens doorheen te lopen.

  • JaWSnl
  • Registratie: Maart 2007
  • Laatst online: 27-02 17:21
Okee naar NTP en PTP heb ik op zich gekeken. Probleem is dat de implementatie waar ik mee moet komen, geen gebruik kan maken van een hardware-clock. Ik kan wel het advies doen dat dit het beste is, maar uiteindelijk kan dit niet zo eenvoudig omdat daarvoor geen ruimte is. Het zit al erg vol in de machine.

Dus puur voor de uitbreiding op standaard protocollen zoek ik praktijkvoorbeelden, en hoe daar tijd-gerelateerde problemen worden opgelost.

Maar je hebt gelijk, NTP is waarschijnlijk het beste, en ik gok erop dat dit het uiteindelijk gaat worden. De Sun is in dit geval de host waar de tijd van af gehaald wordt en naar de verschillende racken toe gaat.

There are only 10 types of people in the world: those who understand binary and those who don't.


  • riddles
  • Registratie: April 2000
  • Laatst online: 25-02 14:30
Voor synchronisatie tussen machines is NTP het meest gebruikt (in bijna alle reguliere LAN en WAN omgevingen), maar het is niet echt accuraat. Door variabele netwerkvertragingen kan de afwijking makkelijk 1ms of 2ms zijn. Voor 99% van de applicaties is die afwijking geen probleem. Heb je meer accuratesse nodig, dan ga je naar bijzondere oplossingen toe (PTP, hardware receivers, etc).

  • JaWSnl
  • Registratie: Maart 2007
  • Laatst online: 27-02 17:21
Hangt ook een beetje van de complexiteit van het systeem af denk ik.
Er is hier iig een test uitgevoerd waarin met ICMP een preciezie wordt gehaald van +/- 2[ms], en met een eenvoudige NTP implementatie 50[us] (maximale afwijkingen).

There are only 10 types of people in the world: those who understand binary and those who don't.

Pagina: 1