rfc2550.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 788 行 · 第 1/2 页

TXT
788
字号

RFC 2550                    Y10K and Beyond                 1 April 1999


   Where "n" is the number of leading carets and the fig, base26 and
   y10k functions are defined with the following recurrence relations:

      fib(n) is the standard Fibonacci sequence with:

      fib(0) = 1

      fib(1) = 1

      fib(n+2) = fib(n) + fib(n+1)

      base26(m letters) is the base 26 number represented by m letters
      A-Z:

      base26(letter) =  ASCII(<letter>) - ASCII('A')
      base26(string letter) = 26 * base26(string) + base26(letter)

      y10k(n) is the necessary fudge factor to align the sequences

      properly:

      y10k(0) = 5
      y10k(n+1) = 26 ** fib(n) + y10k(n)

   If the year does not have at least one letter in the year, then the
   number of digits in the year is:

       4

   This year format is space-efficient.  The length of the prefix giving
   number of digits in the year only grows logarithmically with the
   number of digits in the year.  And, the number of carets preceding
   the prefix only grows logarithmically with the number of digits in
   the prefix.

3.5 B.C.E. (Before Common Era) Years

   Now that have a format for all of the years in the future, we'll take
   on the "negative" years.  A negative year is represented in "Y10K-
   complement" form.  A Y10K-complement year is computed as follows:

    1) Calculate the non-negative Y10K year string as in 3.4.2.4.
    2) Replace all letters by their base 26 complement.  I.E. A -> Z, B
       -> Y, ... Z -> A.
    3) Replace all digits in the year portion of the date by their base
       10 complement.  I.E. 0 -> 9, 1 -> 8, ... 9 -> 0.
    4) Replace carets by exclamation points ('!').
    5) Four-digit years are pre-pended with a slash ('/')



Glassman, et. al.            Informational                      [Page 8]

RFC 2550                    Y10K and Beyond                 1 April 1999


    6) Years that don't now begin with an exclamation point or slash are
       pre-pended with a star ('*').  (This rule covers the negative 5-
       31 digit years).

   For example, the year 1 BCE is represented by "/9998".  The
   conversion is accomplished by applying rules:

    1) Calculate the non-negative Y10K year ("1" -> "0001")
    2) Complement the digits ("0001" -> "9998")
    3) Four-digit numbers get a leading slash.

   The earliest four-digit BCE year (9999 BCE) becomes "/0000" and the
   year before that (10000 BCE) becomes "*Z89999".  The earliest 5-digit
   BCE year (99999 BCE) is "*Z00000".  And the year before that (100000
   BCE) is "*Y899999".  And so on.

   These rules give the desired sort order for BCE dates.  For example,
   the following dates get translated and sorted as:
     Jun 6, 200 BCE            /97990606
     199 BCE                   /9800
     Jan 1, 199 BCE            /98000101

3.6 Restrictions on Y10K Dates

   There are no restrictions on legal values for Y10K dates.  Y10K
   compliant programs MUST accept any syntactically legal Y10K date as a
   valid date.  A '0' can be appended to the end of any Y10K date,
   yielding an equivalent date that sorts immediately after the original
   date and represents the instant after the original date.

   The following are all valid representations (in sorted order) of the
   first instant of A10000:

     A1
     A10000
     A1000001
     A100000101000000
     A1000001010000000000000000000000

   Similarly, the following are all valid Y10K dates (in sorted order)
   for the time after the last instant of the A99999 and before the
   first instant of B100000:

     A999991231250000
     A999991232
     A999992
     A9999999999
     A99999999990000000000000



Glassman, et. al.            Informational                      [Page 9]

RFC 2550                    Y10K and Beyond                 1 April 1999


4 ABNF

   The following ABNF [Crocker] gives the formal syntax for Y10K years.

   The initial characters definitions are given in their lexical
   collation (ASCII) order.

   exclamation = '!'
   star        = '*'
   slash       = '/'
   digit       =  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
   letter      =  A | B | C | D | E | F | G | H | I | J | K | L | M |

                   N | O | P | Q | R | S | T | U | V | W | X | Y | Z
   caret       = '^'


   year     = [*(caret | exclamation) | star | slash ] [ *letter ]
             *digit
   month    = 2digit
   day      = 2digit
   hour     = 2digit
   minute   = 2digit
   second   = 2digit
   fraction = *digit
   date     = year [ month [ day [ hour [ minute [ second [ fraction
             ]]]]]]

5 Open Issues

   There are a number date comparison problems that are beyond the scope
   of this specification.

   1) Dates from different calendar systems can not be directly
      compared.  For instance, dates from the Aztec, Bhuddist, Jewish,
      Muslim, and Hittite calendars must be converted to a common
      calendar before comparisons are possible.

   2) Future re-numberings of years are not covered.  If, and when, a
      new "Year 0" occurs and comes into general use, old dates will
      have to be adjusted.

   3) Continued existence of Earth-centric time periods (year, day,
      etc.) are problematical past the up-coming destruction of the
      solar system (5-10 billion years or so).  The use of atomic-time
      helps some since leap seconds are no longer an issue.





Glassman, et. al.            Informational                     [Page 10]

RFC 2550                    Y10K and Beyond                 1 April 1999


   4) Future standards and methods of synchronization for inter-
      planetary and inter-galactic time have not been agreed to.

   5) Survivability of dates past the end of the universe is uncertain.

6 Affected Standards

   A number of standards currently and RFCs use 4-digit years and are
   affected by this proposal:

     rfc2459: Internet X.509 Public Key Infrastructure
              Certificate and CRL Profile
     rfc2326: Real Time Streaming Protocol (RTSP)
     rfc2311: ODETTE File Transfer Protocol
     rfc2280: Routing Policy Specification Language (RPSL)
     rfc2259: Simple Nomenclator Query Protocol (SNQP)
     rfc2244: ACAP -- Application Configuration Access Protocol
     rfc2167: Referral Whois (RWhois) Protocol V1.5
     rfc2065: Domain Name System Security Extensions
     rfc2060: Internet Message Access Protocol - Version 4rev1
     rfc1922: Chinese Character Encoding for Internet Messages
     rfc1912: Common DNS Operational and Configuration Errors
     rfc1903: Textual Conventions for Version 2 of the
              Simple Network Management Protocol (SNMPv2)
     rfc1521: MIME (Multipurpose Internet Mail Extensions) Part One:

     rfc1123: Requirements for Internet hosts - application and support

   The following standards internally represent years as 16-bit numbers
   (0..65536) and are affected by this proposal:

     rfc2021: Remote Network Monitoring Management Information Base
              Version 2 using SMIv2
     rfc1514: Host Resources MIB

   The following ISO standard is affected:
     ISO8601: International Date Format

8 Security Considerations

   Y10K dates will improve the security of all programs where they are
   used.  Many errors in programs have been tracked to overflow while
   parsing illegal input.  Programs allocating fixed size storage for
   dates will exhibit errors when presented with larger dates.  These
   errors can be exploited by wily hackers to compromise the security of
   systems running these programs.  Since Y10K dates are arbitrary
   length strings, there is no way to make them overflow.




Glassman, et. al.            Informational                     [Page 11]

RFC 2550                    Y10K and Beyond                 1 April 1999


   In addition, positive Y10K dates are easy to compare and less error-
   prone for humans.  It is easier to compare the three projected end of
   the universe dates - "H100000000000", "I1000000000000" and
   "K100000000000000" - by looking at the leading letter than by
   counting the 0's.  This will reduce inadvertent errors by people.
   This advantage will become more noticeable when large dates are more
   common.

   Unfortunately, negative Y10K dates are a bit more difficult to
   decipher.  However, by comparing the current age of the universe to
   its projected end, it is obvious that there will be many more
   positive dates than negative dates.  And, while the number of
   negative dates for human history is currently greater than the number
   of positive dates, the number of negative dates is fixed and the
   number of positive dates is unbounded.

9 Conclusion

   It is not too early to aggressively pursue solutions for the Y10K
   problem.  This specification presents a simple, elegant, and
   efficient solution to this problem.

10 References

   [Crocker]   Crocker, D. and P. Overell, "Augmented BNF for Syntax
               Specifications: ABNF", RFC 2234, November 1997.

   [Drake]     Review for the Drake Equation
               http://www.umsl.edu/~bwilking/assign/drake.html

   [Microsoft] SNMP SysUpTime Counter Resets After 49.7 Days
               http://support.microsoft.com/support/kb/articles/Q169/
               8/47.asp

   [Mike]      Y1K http://lonestar.texas.net/~mdlvas/y1k.htm

   [Nigel]     Nigel's (en)lighening tour of Thermodynamics for
               Economists ;-) http://www.santafe.edu/~nigel/thermo-
               primer.html

   [NRAO]      Astronomical Times
               http://sadira.gb.nrao.edu/~rfisher/Ephemerides/times.html

   [RFC]       Here are all the online RFCs. Note: this is a LONG menu.
               http://info.internet.isi.edu/1s/in-notes/rfc/files

   [UNIX]      Year 2000 Issues http://www.rdrop.com/users/caf/y2k.html




Glassman, et. al.            Informational                     [Page 12]

RFC 2550                    Y10K and Beyond                 1 April 1999


   [Wilborne]  PktCDateLig
               http://www3.gamewood.net/mew3/pilot/pocketc/pktcdate/
               index.html

   [YUCK]      Y10K Unlimited Consulting Knowledgebase
               http://www.loyd.net/y10k/index.html

   [Zebu]      The Search for H0
               http://zebu.uoregon.edu/1997/ph410/l6.html

11 Authors' Addresses

   Steve Glassman
   Compaq Systems Research Center
   130 Lytton Avenue
   Palo Alto, CA 94301 USA

   Phone: +1 650-853-2166
   EMail: steveg@pa.dec.com


   Mark Manasse
   Compaq Systems Research Center
   130 Lytton Avenue
   Palo Alto, CA 94301 USA

   Phone: +1 650-853-2221
   EMail: msm@pa.dec.com


   Jeff Mogul
   Compaq Western Resarch Lab
   250 University Avenue
   Palo Alto, CA 94301 USA

   Phone: +1 650-617-3300
   EMail: mogul@pa.dec.com














Glassman, et. al.            Informational                     [Page 13]

RFC 2550                    Y10K and Beyond                 1 April 1999


12.  Full Copyright Statement

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
























Glassman, et. al.            Informational                     [Page 14]


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?