Clock skew and the importance of clock synchronization in HTTP servers.

Jim Gettys (jg@pa.dec.com)
Fri, 12 Sep 1997 04:40:39 -0700


The attached is exerpted from an Internet draft Jeff Mogul is submitting
to the ID editor today, with some very interesting trace data. 

As you know, bad dates in documents will badly affect caching behavior in 
the Web, up to and including serving documents long after they should have 
expired to unsuspecting users (with no way in HTTP/1.0 to ever force a reload 
on the cache, this problem will be with us for a long time until most 1.0 
proxies are gone)...

The situation is much worse than I believe most of us or all of us have 
realized. More than 1/5 of the servers are wrong by more than a minute.  
Ugh...  Shudder... Median errors are in the two minute range.

While I will be adding some text to the 1.1 spec encouraging clock 
synchronization for reliable caching operation, there are some concrete 
things that can/should be done by those who have influence over HTTP 
implementations and documentation.

1) installation directions and scripts for Web servers/prxies should strongly 
encourage the use of clock synchronization (e.g. use of NTP or equivalent).  
In server installation directions I've seen, there has never been any mention 
of this topic (not that I've installed a server recently).

2) server implementors might consider some "sanity checks" in their code 
to warn operators that their systems are likely running badly synchronized. 
I can think of some heuristics that might work. I can think of ugly hacks 
like looking for the existance of an NNTP server running.  It may be 
that the system call interfaces to adjusting clocks might or might not be 
useful to warn operators (it's been too long since I looked at how NTP is 
commonly implemented, and whether those system call interfaces provide 
applications useful information on whether the clock is running within the 
phase lock capture range)....  Exactly what might/should be done
here is not completely clear and maybe worth discussion.

In any case, I think at a minimum installation directions for Web servers 
and proxies should get some work to encourage better practice, even if not 
a line of code changes in the software itself.  This is a call for us to 
go poke our respective documentation folks on this topic... 				- Jim


				- Jim Gettys