📄 rfc2550.txt
字号:
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 /980001013.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 A99999999990000000000000Glassman, et. al. Informational [Page 9]RFC 2550 Y10K and Beyond 1 April 19994 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 Format8 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.htmlGlassman, 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.html11 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.comGlassman, et. al. Informational [Page 13]RFC 2550 Y10K and Beyond 1 April 199912. 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -