Re: příjem NTP ESP8266/32

Dodo Racek dodoracek na gmail.com
Sobota Červenec 23 23:59:25 CEST 2022


A osetrite si napr. aj obcasne pridanie  sekundy do svetoveho casu.

Aj vas program ( alebo server, voci ktoremu sa synchronizujete) moze
zazmatkovat, ked v spracovani sekund nebude cislo v rozsahu 0-59, ale cislo
60 (a pre dany okamih to bude spravne cislo ... )

Dodo

Dňa so 23. 7. 2022, 23:20 Dodo Racek <dodoracek na gmail.com> napísal(a):

> Okrem precitaneho casu z paketu sledujte aj stratum.
> Cim nizsie cislo, tym lepsie. (0- atomove hodiny, 1- synchronizovane voci
> atomovym hodinam, 2- synchronizovane voci 1, atd...) na internete bezne
> server bude mat stratum 2-3.
> Server MUSI mat stratum rovnake cislo.
> Ak serveru vypadne synchronizacia na presnejsi nadradeny, tak to "oznami"
> klientom zmenou hodnoty v stratum. Cisla nad 10 sa pouzivaju pre nepresny
> cas (lokalny oscilator bez synchronizacie), takemu casu sa neveri.
>
> Ked sa nejedna o utok, ale o to, ze aj nadradeny server stratil presny cas
> a oznamuje bludy, tak vam nepomoze ani 1000 nacitani a porovnavani.
>
> Ak je NTP server napr. cisco switch, alebo router, tak obycajne nema
> vlastne HW hodiny. Po zapnuti, alebo reboote oznamuje klientom nezmyselny
> cas az do chvile, kym sa nezosynchronizuje s nadradenym ntp sevrom. To moze
> trvat aj 15 min. Oznamuje ale definovanym (nakonfigurovanym) vysokym cislom
> pre stratum.
>
> Voci akemu NTP serveru (FQDN,IP) sa zvyknete synchronizovat?
>
>
> 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/37e34726/attachment.htm>


Další informace o konferenci Hw-list