Re: příjem NTP ESP8266/32

Dodo Racek dodoracek na gmail.com
Sobota Červenec 23 22:03:37 CEST 2022


Vseobecne v IT:
- na NTP sa obcas objavuju utoky (podhadzuje sa iny cas, vratenie casu moze
zhodit napr. databazy )
- pri dolezitych projektoch sa pouziva lokalny NTP setver, najcastejsie
synchronizovany cez GPS/GLONASS/BEIDOU/Galileo... a zalohovany napr.
Rubidiovym normalom.
Napr. Meinberg M300 a mnoho dalsich. Pozor. Cena je niekde od 3-5 000 eur
vyssie. A male projekty to nie je.
- pri menej dolezitych systemoch je mozne pouzit symetricke sifrovanie a
kluce. Tak si klient a server veria.
- pri viacerych zariadenich pracujucch spolocne sa pouziva otocenie
vsetkych voci serveru a zaroven zariadenia sa nastavuju ako peer. To
zabezpeci, ze sa na zariadeniach nerozide cas pri skokovej zmene servera,
ale "tahaju sa" vsetky zariadenia spolu (napr nody clustra )
- standardne NTP daemon riesi dotahovanie. Skokovo sa nastavi cas len pri
starte a dalej sa uz len dotahuje lokalny cas na klientovi ako pri fazovom
zavese.

Skokova zmena o viac ako 15 min vyhodi synchronizaciu.

Pozrite si neco okolo ntpd.


Dodo

Dňa so 23. 7. 2022, 21:28 Petr Zapadlo <zapik na email.cz> napísal(a):

> Zdravím,
>
> na většině projektů, kde je  třeba   čas, tak ho synchronizuji z NTP.
> Občas (třeba  jednou za půl roku) se stane, že ESP získá špatný čas.
> Pokusil jsem se to eliminovat  - načítám čas 3x a porovnávám - použiji
> dvě hodnoty, které mají minimální rozestup. (pokud se nesejdou, tak to
> ignoruji a zkouším znova)
>
> Situace se zlepšila, přesto občas k problému dojde. Zdá se, že četnost
> nějak závisí i na kvalitě internetové linky.  U mě doma se to prakticky
> neděje (Metronet, DSL, modem Terminator) , ale u známé se to děje
> poměrně často (měsíčně) (O2, DSL, modem ZTE), u syna tak jednou za půl
> roku (kabelovka Vodafone).
>
> Vypadá to, že za nějakých podmínek projde UDP stackem v ESP i paket,
> který není v pořádku - asi má i vadný checksum, ale vzhledem k četnosti
> to nejsem schopen nijak ověřit.  Případně projde nesmyslný paket (ale to
> by měl eliminovat požadavek na 2 stejné hodnoty).
>
> Jak se divám do struktury NTP paketu, tak tam už žádný kontrolní
> mechanizmus není. (dívám se dobře?)
>
> Základní kus kodu je vzat z mnohokrát opakovaného příkladu:
>
> Poslání paketu:
>
>   memset(packetBuffer, 0, NTP_PACKET_SIZE);
>    // Initialize values needed to form NTP request
>    // (see URL above for details on the packets)
>    packetBuffer[0] = 0b11100011;   // LI, Version, Mode
>    packetBuffer[1] = 0;     // Stratum, or type of clock
>    packetBuffer[2] = 6;     // Polling Interval
>    packetBuffer[3] = 0xEC;  // Peer Clock Precision
>    // 8 bytes of zero for Root Delay & Root Dispersion
>    packetBuffer[12]  = 49;
>    packetBuffer[13]  = 0x4E;
>    packetBuffer[14]  = 49;
>    packetBuffer[15]  = 52;
>
>    // all NTP fields have been given values, now
>    // you can send a packet requesting a timestamp:
>    _ntp_udp.beginPacket(timeServerIP, 123); //NTP requests are to port 123
>    _ntp_udp.write(packetBuffer, NTP_PACKET_SIZE);
>    _ntp_udp.endPacket();
>
>
> Příjem paketu:
>
> _ntp_udp.read(packetBuffer, NTP_PACKET_SIZE); // read the packet into
> the buffer
>
>      //the timestamp starts at byte 40 of the received packet and is
> four bytes,
>      // or two words, long. First, esxtract the two words:
>
>      unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
>      unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
>
>
> Jak zvýšit spolehlivost a eliminovat blbý čas?
>
>
> Díky
>
> Petr
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220723/9cea07a1/attachment.htm>


Další informace o konferenci Hw-list