INFORMATIONAL

Network Working Group S. Christey Request for Comments: 2795 MonkeySeeDoo, Inc. Category: Informational 1 April 2000 The Infinite Monkey Protocol Suite (IMPS) Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This memo describes a protocol suite which supports an infinite number of monkeys that sit at an infinite number of typewriters in order to determine when they have either produced the entire works of William Shakespeare or a good television show. The suite includes communications and control protocols for monkeys and the organizations that interact with them. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 2 2. Objects In The Suite . . . . . . . . . . . . . . . . . . . 2 3. IMPS Packet Structure . . . . . . . . . . . . . . . . . . 4 4. Infinite Threshold Accounting Gadget (I-TAG) Encoding . . 5 5. KEEPER Specification . . . . . . . . . . . . . . . . . . . 6 5.1 KEEPER Message Request Codes (ZOO-to-SIMIAN) . . . . . . 7 5.2 KEEPER Message Response Codes (SIMIAN-to-ZOO) . . . . . 8 5.3 Requirements for KEEPER Request and Response Codes . . . 8 5.4 Example ZOO-to-SIMIAN Exchanges using KEEPER . . . . . . 9 6. CHIMP Specification . . . . . . . . . . . . . . . . . . . 9 6.1 SIMIAN Client Requests . . . . . . . . . . . . . . . . . 10 6.2 ZOO Server Responses . . . . . . . . . . . . . . . . . . 11 6.3 Example SIMIAN-to-ZOO Session using CHIMP . . . . . . . 11 7. IAMB-PENT SPECIFICATION . . . . . . . . . . . . . . . . . 12 7.1 ZOO Client Requests . . . . . . . . . . . . . . . . . . 12 7.2 BARD Responses . . . . . . . . . . . . . . . . . . . . . 12 7.3 Example ZOO-to-BARD Session using IAMB-PENT . . . . . . 13 8. PAN Specification . . . . . . . . . . . . . . . . . . . . 13 8.1 ZOO Requests . . . . . . . . . . . . . . . . . . . . . . 14 8.2 CRITIC Responses . . . . . . . . . . . . . . . . . . . . 14 Christey Informational [Page 1]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 8.3 Table of CRITIC Reject Codes . . . . . . . . . . . . . . 15 8.4 Example ZOO-to-CRITIC Session using PAN . . . . . . . . 16 9. Security Considerations . . . . . . . . . . . . . . . . . 16 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . 18 11. References . . . . . . . . . . . . . . . . . . . . . . . 18 12. Author's Address . . . . . . . . . . . . . . . . . . . . 19 13. Full Copyright Statement . . . . . . . . . . . . . . . . .20 1 . Introduction 1] [2]. But if such a feat is accomplished, how would anybody be able to know? And what if the monkey has flawlessly translated Shakespeare's works into Esperanto? How could one build a system that obtains these works while addressing the basic needs of monkeys, such as sleep and food? Nobody has addressed the practical implications of these important questions [3]. In addition, it would be a waste of resources if such a sizable effort only focused on Shakespeare. With an infinite number of monkeys at work, it is also equally likely that a monkey could produce a document that describes how to end world poverty, cure disease, or most importantly, write a good situation comedy for television [4]. Such an environment would be ripe for innovation and, with the proper technical design, could be effectively utilized to "make the world a whole lot brighter" [5]. The Infinite Monkey Protocol Suite (IMPS) is an experimental set of protocols that specifies how monkey transcripts may be collected, transferred, and reviewed for either historical accuracy (in the case of Shakespearean works) or innovation (in the case of new works). It also provides a basic communications framework for performing normal monkey maintenance. 2 . Objects in the Suite Christey Informational [Page 2]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 Christey Informational [Page 3]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 3 . IMPS Packet Structure 6] [7] [8]. The Source and Destination are identifiers for the IMPS objects that are communicating. They are represented using Infinite TAGs (see next section). The Data section contains data which is of arbitrary length. The Size field records the size of the entire packet using Infinite TAG encoding. The end of the packet may contain extra padding, between 0 and 7 bits, to ensure that the size of packet is rounded out to the next byte. Christey Informational [Page 4]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 4 . Infinite Threshold Accounting Gadget (I-TAG) Encoding 9], "[Greater than] 999999999 bytes is bad." Well put. A scheme for identifying arbitrary dates was also considered for implementation [10]. While it solves the Y10K problem and does scale to infinity, its ASCII representation wastes memory by a factor greater than 8. While this may not seem important in an environment that has enough resources to support an infinite number of monkeys, it is inelegant for the purpose of monkey identification. It is also CPU intensive to convert such a representation to a binary number (at least based on the author's implementation, which was written in a combination of LISP, Perl, and Java). The algorithm is complicated and could lead to incorrect implementations. Finally, the author of this document sort of forgot about that RFC until it was too late to include it properly, and was already emotionally attached to the I- TAG idea anyway. It should be noted, however, that if a monkey had typed this particular section and it was submitted to a CRITIC, it would probably receive a PAN rejection code signifying the reinvention of the wheel. Christey Informational [Page 5]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 1110 where N is the smallest number such that 2^N exceeds the number of bits required to represent the number of bytes that are necessary to store the ID (i.e., SIZE). The SIZE is then encoded using N bits, ordered from the most significant bit to the least significant bit. Finally, the ID is encoded using SIZE bytes. This representation, while clunky, makes efficient use of memory and is scalable to infinity. For any number X which is less than 2^N (for any N), a maximum of (N + log(N) + log(log(N)))/8 bytes is necessary to represent X. The math could be slightly incorrect, but it sounds right. A remarkable, elegant little C function was written to implement I- TAG processing, but it has too many lines of code to include in this margin [11]. 5 . KEEPER Specification Christey Informational [Page 6]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 5.1 KEEPER Message Request Codes (ZOO-to-SIMIAN) Christey Informational [Page 7]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 5.2 KEEPER Message Response Codes (SIMIAN-to-ZOO) 5.3 Requirements for KEEPER Request and Response Codes Christey Informational [Page 8]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 5.4 Example ZOO-to-SIMIAN Exchanges using KEEPER 6 . CHIMP Specification Christey Informational [Page 9]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 6.1 . SIMIAN Client Requests 12]. If this theory is proven true, then CLEAN may become the most critical command in the entire protocol suite. NOTIFY <status> The SIMIAN notifies the ZOO of the monkey's status. The status may be any status as defined in the KEEPER protocol, i.e. ASLEEP, GONE, DISTRACTED, NORESPONSE, ALIVE, or DEAD. TRANSCRIPT <size> The SIMIAN notifies the ZOO of a new transcript from the monkey. The number of characters in the transcript is specified in the size parameter. Christey Informational [Page 10]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 6.2 . ZOO Server Responses 6.3 Example SIMIAN-to-ZOO Session using CHIMP Christey Informational [Page 11]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 7 . IAMB-PENT Specification 7.1 . ZOO Client Requests 7.2 BARD Responses Christey Informational [Page 12]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 7.3 Example ZOO-to-BARD Session using IAMB-PENT 8 . PAN Specification 13]. PAN is a connection-oriented protocol. A ZOO (the "unwashed masses") sends a request to the CRITIC (the "all-powerful"), which sends a response back to the ZOO. Christey Informational [Page 13]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 8.1 . ZOO Requests 8.2 . CRITIC Responses Christey Informational [Page 14]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 8.3 . Table of CRITIC Reject Codes Christey Informational [Page 15]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 8.4 . Example ZOO-to-CRITIC Session using PAN 9 . Security Considerations Christey Informational [Page 16]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 14]. Since a CRITIC could significantly reduce the success of a BARD with an appropriate PAN response, this is one more reason why BARDs and CRITICs should always be kept separate from each other. It is expected that very few people will care about most implementations of CRITIC, and CRITICs themselves are inherently insecure. Therefore, security is not a priority for CRITICs. The CRITIC may become the victim of a denial of service attack if too many SIMIANs submit transcripts at the same time. In addition, one SIMIAN may submit a non-innovative work by spoofing another SIMIAN (this is referred to as the Plagiarism Problem). A CRITIC response can also be spoofed, but since the only response supported in PAN version 1 is REJECT, this is of little consequence. Care must be taken in future versions if a GRUDGING_ACCEPTANCE response is allowed. Finally, a transcript may be lost in transmission, and PAN does not provide a mechanism for a ZOO to determine if this has happened. Future versions of IMPS may be better suited to answer this fundamental design problem: if an innovative work is lost in transmission, can a CRITIC still PAN it? Based on the number of packet-level vulnerabilities discovered in recent years, it is a foregone conclusion that some implementations will behave extremely poorly when processing malformed IMPS packets with incorrect padding or reserved bits [15] [16] [17]. Christey Informational [Page 17]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 11] "My Last Theorem: A Prankster's Guide to Ageless Mathematical Jokes That are Funny Because They're True and People Can't Prove Them for Centuries." P. Fermat. Circa 1630. [12] .signature in various USENET postings, circa 1994. Author unknown. [13] "Recognizing Irony, or How Not to be Duped When Reading." Faye Halpern. 1998. http://www.brown.edu/Student_Services/Writing_Center/halpern1.htm [14] Andy Warhol. Circa 1964. [15] CERT Advisory CA-98-13. CERT. December 1998. http://www.cert.org/advisories/ [16] CERT Advisory CA-97.28. CERT. December 1997. http://www.cert.org/advisories/ [17] CERT Advisory CA-96.26. CERT. December 1996. http://www.cert.org/advisories/ [18] All issues of TV Guide published between 1956 and the date of this document. 12 . Author's Address Christey Informational [Page 19]

RFC 2795 The Infinite Monkey Protocol Suite (IMPS) 1 April 2000 13 . Full Copyright Statement