Horse Sense #63
In this issue:
Y2K Returns: It is About Time!
Welcome to the new and improved Daylight Savings Time! Are your computers giving you the correct time? Now is the time to check. Any Pre-Windows XP system is likely to have the wrong time, for example. It would also be a good idea to check your fax machines. Send an e mail to yourself. Check the headers. Are the times correct? If you need help with time, call Iron Horse!
Computers are very dependent upon time. The rollover from 1999 to 2000 was especially troublesome as any program or operating system using two digit years would cause a real problem. Would 00 be 1900, 2000, or some other number when the rollover happened? Would an "invalid" number shut down the system, cause it to run in reverse, or cause some other unpredictable action? It took a massive effort worldwide to identify vulnerable systems and correct them. Now, the US and other countries are changing how they implement daylight savings time. In case you haven't reset your clock yet, it happened earlier this year and will end later. If you want to read more about time in the US, go to www.time.gov. Not only will you see the current time, but you will also be able to read all about issues like Daylight Savings Time and how to fix time issues.
There are other time related issues that will be coming up. Some systems count time from January 1, 1970 in seconds. For those systems that do so and use a standard 4 byte integer to do the counting, that means they can count up to 2 to the power of 31 seconds (there is one bit reserved for a sign). That means that on Tuesday, January 19 at 03:14:07 of the year 2038 equipment prone to this bug will give the time as Friday, December 13 20:45:52, 1901. Some programs that calculate dates are already giving incorrect values. Any date calculation using seconds since 1/1/1970 will give an incorrect result if the number exceeds 31 bits. If you averaged two dates together, for example, you would start getting errors if your dates were after January of 2004.
One of the most important components of any computing device is its timing crystal. Think of this as the drummer counting out time for the computer. Every part of computer performs its actions relative to that beat, like other instruments in a band playing their part of a piece of music. The timing crystal also counts actual time in very small increments. So, in theory, your computer is a very precise time keeping device. Unfortunately, while your computer may be precise, it often is not accurate. Besides issues like the 2038 bug, Y2K, and Daylight Savings Time, a computer will slowly drift off of the correct time because of small differences between the change in true time and the time counted in the machine. For example, over 30 days, a 1 second error in a day is 30 seconds. This represents a 0.001% error. As it turns out, many computing devices will not keep time that accurately.
Clocks do not know what time it is unless you first set them. Even if you could set multiple clocks to the same exact time, they will drift away from the true value at varying rates. This can cause huge problems as time can really be money. For example, you sell one million shares of stock at 10:17:22 AM by your computer clock, but by your broker’s clock it was 10:18:27 AM and on the exchange it was 10:18:13 AM. What if the price changed in that time frame? Who is right? You also want your time to be correct so that you can tell when something happened or will happen. It could be very difficult to fix a mail problem when a message you sent seems to arrive 5 minutes before you sent it.
To maintain accurate time, the entire world agrees on a reference time called Coordinated Universal Time (previously called Greenwich Mean Time). Devices like atomic clocks are used to deliver very precise reference Coordinated Universal Time. Computers throughout the world access servers synchronized to these time sources through Network Time Protocol (NTP). NTP gets the correct Coordinated Universal Time from a reference time server. NTP also calculates how much time it takes to get that answer and corrects for problem as well. Reference time servers are graded on their ability to provide "true" time. A stratum 1 NTP server would be the closest to true time and is directly tied to a very accurate timing device. These servers tend to be very busy and their operators do not want just anyone asking them for the correct time. Many stratum 1 and even stratum 2 servers are not publicly available. In general, most of us should be using stratum 3 or higher time servers as our reference sources simply because we don’t need that high a degree of time precision. A few thousandths of a second will be just fine. It is not necessary for every machine on your network to get its time directly from a reference time server on the Internet. Once you synchronize one machine on your network to an external time source, you can then have all the other machines on your network match this internal time server. In addition, since clients of the internal time server are most likely in the same time zone, they can pick up that information from the server as well.
If you think about it, time zones are only useful to humans. Computers don't care what time of day it is. On very large networks, one might use Coordinated Universal Time for all the devices, even if they are in different time zones. That way, you could synchronize all your logging and graphing so that events matched up around the world. Most of us, however, want our devices on local time so that when someone reports "This happened at 3 pm today," the technician can look at graphs or logs in local time and see what they are talking about.
If you want to know more about time or need help using time on your network, call Iron Horse.