Šuplík Honzy Hučína

Skok na navigaci (menu)

Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.

Komentovaný článek

Internet a vše kolem
13. 9. 2004

Hodiny uživatelů jdou poměrně správně

  • Přibližně polovině uživatelů se hodiny v počítači liší od správného času nejvýše o 10 sekund.
  • Přibližně každému osmému uživateli jdou hodiny přesně.
  • Asi 5 % vykazuje větší odchylku než 45 minut, v naprosté většině jde o systematickou chybu nastavení hodin – špatné datum nebo hodina.

Vyplývá to z výzkumu, který jsem prováděl na začátku září. S měřením mi účinně pomohl Yuhů, data poskytl Český hosting. Děkuji!

Metodika měření

Od 27. srpna do 7. září byl na stránkách Jak psát web umístěn kód, který javaskriptem zjistil lokální čas a časové pásmo v počítači uživatele, poslal to na server (v rámci speciálního HTTP požadavku), kde se vše zaznamenalo spolu s aktuálním serverovým časem. U každého přístupu se tak mohl porovnat stav hodin na počítači uživatele s přesným časem (serverové hodiny šly přesně). Prováděl jsem určitou kontrolu, zda prodleva mezi zpracováním HTTP požadavků není příliš velká. Po očištění dat bylo k dispozici 21 052 záznamů z 5220 unikátních IP adres, tedy dost velký vzorek.

Protože serverový čas byl uveden s přesností na sekundy, zaokrouhlil jsem i klientský čas z javaskriptu na celé sekundy dolů.

Přístupy a IP adresy

Mohl jsem analyzovat jednotlivé přístupy bez ohledu na to, že jich mohlo pocházet víc od jednoho uživatele, anebo pouze jednotlivé IP adresy. S IP adresami je ale potíž:

  • přesnost hodin na jednom počítači se mohla během experimentu měnit (uživatel si mohl hodiny přeřídit),
  • tam, kde jsou IP adresy přiřazovány dynamicky (například u připojení po telefonní lince), v žádném případě neplatí, že co IP adresa, to jeden uživatel.

Data to potvrdila. U 15 % IP adres se během experimentu změnila přesnost hodin o více než 10 sekund, což mohlo těžko nastat tím, že by si takové množství uživatelů měnilo čas. Proto jsem bral v úvahu jenom jednotlivé přístupy. Ověřil jsem si, že výsledky, které uvádím dále, jsou velmi podobné pro přístupy i pro IP adresy.

Odlehlá pozorování

U 4,5 % přístupů byl časový rozdíl mezi klientem a serverem větší než 45 minut. 188 přístupů (necelé jedno procento) mělo dokonce rozdíl větší než jeden rok. Jelikož ale byly časové rozdíly v takových případech blízké celému počtu hodin, dní, měsíců nebo roků, vyvozuji z toho, že hodiny uživatele byly chybně nařízeny – nastaveno špatné datum, případně špatná hodina nebo špatné časové pásmo.

Rozložení časových rozdílů

U zbývajících přístupů byly odchylky hodin uživatele od skutečnosti mnohem menší. Například plných 90 % přístupů mělo odchylku do 5 minut. Podrobně si můžete rozložení odchylek prohlédnout na grafech:


Pozoruhodné je zjištění, že odchylku do 10 sekund (kladnou nebo zápornou) má přibližně polovina přístupů. A u 12 % přístupů (tedy zhruba každý osmý) jdou hodiny uživatele zcela správně, odchylka od serverového času je nulová.

K čemu to je

Uvedené závěry ukazují, že se na hodiny v počítači uživatele dá do značné míry spolehnout. Pětiminutová odchylka u 90 % uživatelů je poměrně přijatelná tam, kde se má v určitý čas začít objevovat nějaká doplňková informace, upozornění, odkaz apod. Přesun hlídání času ze serverových skriptů na klientské může odlehčit provozu na serverech, stránka se pak může generovat v delších intervalech a víc kešovat.

V každém případě je ale nutné brát v úvahu, že

  • zjišťování klientského času je závislé na javaskriptu
  • určitá, i když relativně malá část uživatelů má hodiny nastavené špatně
  • při využití klientského skriptu si informaci může uživatel zjistit i před stanoveným časem ze zdrojového kódu stránky

Aktualizace: Na přání některých komentujících doplňuji tabulku podle operačních systémů.

Podíly odchylek od správného času podle operačního systému (v %)

OS 0 s do 10 s nad 45 min # celkem
celkem 11,8 50,1 4,4 21512
Windows XP 12,5 64,9 4,2 12765
Windows NT/2000 16,8 37,8 2,5 4404
Windows 95/98/ME 2,4 16,5 6,2 3812
Linux 23,3 37,4 9,7 486
Mac 25,0 56,3 25,0 32
ostatní 23,1 0,0 0,0 13

 

Vložit vlastní komentářNávrat k článkuRSS komentářů tohoto článku

Komentáře

[1] 13. 9. 2004, 16:41 – dgx (Odkaz)

Tak dobré výsledky jsou nejspíš proto, že Windows XP už automaticky synchronizují přes internet čas. Honzo, nemáš možnost zjistit vztah mezi časovou odchylkou a použitým OS?

[2] 13. 9. 2004, 18:08 – Jiří Macich ml. (Odkaz)

A nejen Windows XP. Ta mají integrovaný nástroj, ale stejně funkčních utilit jsou mraky ... Spíš by bylo zajímavější měřit datum a pozorovat, kolik lidí šulí nějaký nešikovně ochráněný shareware ;-)

[3] 13. 9. 2004, 19:07 – noname

jo já také občas měním čas kvůli jednomu shareware (spouštím ho tak málo často, že to neřeším systémově).
XP obsahují v sobě automaticky synchronizaci, u jiných je to třeba vesměs zapínat (ještě jeden Linux co jsem zkoušel měl tuším auto zapnutou NTP synchron). Takže by asi synchronizace versus OS smysl měli. V Linuxu zase nebývá problém s shareware.
Znám i maníka, co má prehistorický stroj neY2K compatible, tak to řeší tak, že tam má rok nějaký 9x

[4] 13. 9. 2004, 19:49 – Honza Hučín (Odkaz)

[1][3] Data se sbírala o platformě i o user-agentech, takže teoreticky by to asi šlo. Podívám se na to, neručím za to, že ještě dnes.
Rychle jsem se podíval, jak se chová Linux - nulovou odchylku má i na Linuxu cca 12 % přístupů, odchylku do 10 sekund má trochu méně než polovina, maximální odchylka byla jen pár hodin.

[5] 14. 9. 2004, 05:09 – llook (Odkaz)

Mám nějak rozbitou CMOSku, takže co start počítače, to snulování času na 30.11.1999 (nulový timestamp). Ted už to mám vyřešený skriptem, který se mě na datum a čas zeptá (nejsem nastálo připojený abych to mohl tahat ze sítě).

[6] 14. 9. 2004, 08:52 – Eso

Dotaz: Jak se scriptu jevil cas navstevniku, kteri byly opravdu v jinem casovem pasmu?

[7] 14. 9. 2004, 08:58 – Honza Hučín (Odkaz)

Aktualizace: doplnil jsem tabulku podle operačních systémů. WinXP mají opravdu nejvyšší podíl malých odchylek, i když přesnou nulu trefují častěji jiné OS. Jak se dalo čekat, nejhůř jsou na tom Win 9x/ME.
Opravuji včerejší informaci [4] - Linux trefuje přesnou nulu z více než 20 %, tedy ne 12 %.

[8] 14. 9. 2004, 09:05 – Honza Hučín (Odkaz)

Ad [6] Javaskript poskytuje dva údaje: lokální čas v milisekundách od 1. 1. 1970 (metoda getTime) a posun časového pásma, které má uživatel zadané v počítači, v minutách vůči GMT (metoda getTimezoneOffset). Samozřejmě Javaskriptem nelze zjistit, v jakém časovém pásmu uživatel fyzicky je.
Takže když si člověk v Praze nastaví časové pásmo Londýn, ale čas si nastaví pražský, vyhodnotí to skript jako hodinové zpoždění.
Pokud se k lokálnímu času přičte posun časového pásma, dostane se čas uživatele v GMT. A serverový čas běžel v GMT.

K tomuto článku není možné vkládat komentáře.

© Honza Hučín 2004–6

Šuplík běží na PIPNI.CZ. Díky!

sber.cermat.cz

RSS Šuplíku

RSS komentářů – souhrnně

U každého článku je samostatný RSS kanál pro komentáře.

Výběr článků

Posledních 10 článků

nebo podle data:

nebo hledání fulltextem:

Archiv všech článků

Poslední komentáře

Zabili mě, parchanti [2]

8. 8. 16:48 | Pepa

Cestou kolem blogu [2]

7. 8. 21:26 | Honza Hučín

Cestou kolem blogu [1]

7. 8. 21:02 | Honza

Vrtulník nad hlavou [3]

6. 8. 14:29 | Pepa

Taková hra na volby [1]

3. 8. 18:29 | Honza

Nejčtenější

Žádné údaje nejsou k dispozici.

O mně

*1967, absolvent MFF UK v Praze (1991)

statistik, analytik, programátor, učitel, hudebník

nyní Ústav pro informace ve vzdělávání

Životopis (RTF)

Napište mi