diff options
Diffstat (limited to 'doc/rfc/rfc2568.txt')
-rw-r--r-- | doc/rfc/rfc2568.txt | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc2568.txt b/doc/rfc/rfc2568.txt new file mode 100644 index 0000000..2d3ae49 --- /dev/null +++ b/doc/rfc/rfc2568.txt @@ -0,0 +1,563 @@ + + + + + + +Network Working Group S. Zilles +Request for Comments: 2568 Adobe Systems Inc. +Category: Experimental April 1999 + + + Rationale for the Structure of the Model and Protocol + for the Internet Printing Protocol + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. It does not specify an Internet standard of any kind. + Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +IESG Note + + This document defines an Experimental protocol for the Internet + community. The IESG expects that a revised version of this protocol + will be published as Proposed Standard protocol. The Proposed + Standard, when published, is expected to change from the protocol + defined in this memo. In particular, it is expected that the + standards-track version of the protocol will incorporate strong + authentication and privacy features, and that an "ipp:" URL type will + be defined which supports those security measures. Other changes to + the protocol are also possible. Implementors are warned that future + versions of this protocol may not interoperate with the version of + IPP defined in this document, or if they do interoperate, that some + protocol features may not be available. + + The IESG encourages experimentation with this protocol, especially in + combination with Transport Layer Security (TLS) [RFC2246], to help + determine how TLS may effectively be used as a security layer for + IPP. + +ABSTRACT + + This document is one of a set of documents, which together describe + all aspects of a new Internet Printing Protocol (IPP). IPP is an + application level protocol that can be used for distributed printing + using Internet tools and technologies. This document describes IPP + from a high level view, defines a roadmap for the various documents + that form the suite of IPP specifications, and gives background and + rationale for the IETF working group's major decisions. + + + +Zilles Experimental [Page 1] + +RFC 2568 Rationale for IPP April 1999 + + + The full set of IPP documents includes: + + Design Goals for an Internet Printing Protocol [RFC2567] + Rationale for the Structure and Model and Protocol for the + Internet Printing Protocol (this document) + Internet Printing Protocol/1.0: Model and Semantics [RFC2566] + Internet Printing Protocol/1.0: Encoding and Transport [RFC2565] + Internet Printing Protocol/1.0: Implementer's Guide [ipp-iig] + Mapping between LPD and IPP Protocols [RFC2569] + + The "Design Goals for an Internet Printing Protocol" document takes a + broad look at distributed printing functionality, and it enumerates + real-life scenarios that help to clarify the features that need to be + included in a printing protocol for the Internet. It identifies + requirements for three types of users: end users, operators, and + administrators. The Design Goals document calls out a subset of end + user requirements that are satisfied in IPP/1.0. Operator and + administrator requirements are out of scope for version 1.0. + + The "Internet Printing Protocol/1.0: Model and Semantics" document + describes a simplified model consisting of abstract objects, their + attributes, and their operations that is independent of encoding and + transport. The model consists of a Printer and a Job object. The + Job optionally supports multiple documents. This document also + addresses security, internationalization, and directory issues. + + The "Internet Printing Protocol/1.0: Encoding and Transport" document + is a formal mapping of the abstract operations and attributes defined + in the model document onto HTTP/1.1. It defines the encoding rules + for a new Internet media type called "application/ipp". + + The "Internet Printing Protocol/1.0: Implementer's Guide" document + gives insight and advice to implementers of IPP clients and IPP + objects. It is intended to help them understand IPP/1.0 and some of + the considerations that may assist them in the design of their client + and/or IPP object implementations. For example, a typical order of + processing requests is given, including error checking. Motivation + for some of the specification decisions is also included. + + The "Mapping between LPD and IPP Protocols" document gives some + advice to implementers of gateways between IPP and LPD (Line Printer + Daemon) implementations. + +1. ARCHITECTURAL OVERVIEW + + The Internet Printing Protocol (IPP) is an application level protocol + that can be used for distributed printing on the Internet. This + protocol defines interactions between a client and a server. The + + + +Zilles Experimental [Page 2] + +RFC 2568 Rationale for IPP April 1999 + + + protocol allows a client to inquire about capabilities of a printer, + to submit print jobs and to inquire about and cancel print jobs. The + server for these requests is the Printer; the Printer is an + abstraction of a generic document output device and/or a print + service provider. Thus, the Printer could be a real printing device, + such as a computer printer or fax output device, or it could be a + service that interfaced with output devices. + + The protocol is heavily influenced by the printing model introduced + in the Document Printing Application (DPA) [ISO10175] standard. + Although DPA specifies both end user and administrative features, IPP + version 1.0 (IPP/1.0) focuses only on end user functionality. + + The architecture for IPP defines (in the Model and Semantics document + [RFC2566]) an abstract Model for the data which is used to control + the printing process and to provide information about the process and + the capabilities of the Printer. This abstract Model is hierarchical + in nature and reflects the structure of the Printer and the Jobs that + may be being processed by the Printer. + + The Internet provides a channel between the client and the + server/Printer. Use of this channel requires flattening and + sequencing the hierarchical Model data. Therefore, the IPP also + defines (in the Encoding and Transport document [RFC2565]) an + encoding of the data in the model for transfer between the client and + server. This transfer of data may be either a request or the + response to a request. + + Finally, the IPP defines (in the Encoding and Transport document + [RFC2565]) a protocol for transferring the encoded request and + response data between the client and the server/Printer. + + An example of a typical interaction would be a request from the + client to create a print job. The client would assemble the Model + data to be associated with that job, such as the name of the job, the + media to use, the number of pages to place on each media instance, + etc. This data would then be encoded according to the Protocol and + would be transmitted according to the Protocol. The server/Printer + would receive the encoded Model data, decode it into a form + understood by the server/Printer and, based on that data, do one of + two things: (1) accept the job or (2) reject the job. In either case, + the server must construct a response in terms of the Model data, + encode that response according to the Protocol and transmit that + encoded Model data as the response to the request using the Protocol. + + Another part of the IPP architecture is the Directory Schema + described in the model document. The role of a Directory Schema is to + provide a standard set of attributes which might be used to query a + + + +Zilles Experimental [Page 3] + +RFC 2568 Rationale for IPP April 1999 + + + directory service for the URI of a Printer that is likely to meet the + needs of the client. The IPP architecture also addresses security + issues such as control of access to server/Printers and secure + transmissions of requests, response and the data to be printed. + +2. THE PRINTER + + Because the (abstract) server/Printer encompasses a wide range of + implementations, it is necessary to make some assumptions about a + minimal implementation. The most likely minimal implementation is one + that is embedded in an output device running a specialized real time + operating system and with limited processing, memory and storage + capabilities. This printer will be connected to the Internet and will + have at least a TCP/IP capability with (likely) SNMP [RFC1905, + RFC1906] support for the Internet connection. In addition, it is + likely the the Printer will be an HTML/HTTP server to allow direct + user access to information about the printer. + +3. RATIONALE FOR THE MODEL + + The Model [RFC2566] is defined independently of any encoding of the + Model data both to support the likely uses of IPP and to be robust + with respect to the possibility of alternate encoding. + + It is expected that a client or server/Printer would represent the + Model data in some data structure within the applications/servers + that support IPP. Therefore, the Model was designed to make that + representation straightforward. Typically a parser or formatter would + be used to convert from or to the encoded data format. Once in an + internal form suitable to a product, the data can be manipulated by + the product. For example, the data sent with a Print Job can be used + to control the processing of that Print Job. + + The semantics of IPP are attached to the (abstract) Model. + Therefore, the application/server is not dependent on the encoding of + the Model data, and it is possible to consider alternative mechanisms + and formats by which the data could be transmitted from a client to a + server; for example, a server could have a direct, client-less GUI + interface that might be used to accept some kinds of Print Jobs. This + independence would also allow a different encoding and/or + transmission mechanism to be used if the ones adopted here were shown + to be overly limiting in the future. Such a change could be migrated + into new products as an alternate protocol stack/parser for the Model + data. + + + + + + + +Zilles Experimental [Page 4] + +RFC 2568 Rationale for IPP April 1999 + + + Having an abstract Model also allows the Model data to be aligned + with the (abstract) model used in the Printer [RFC1759], Job and Host + Resources MIBs. This provides consistency in interpretation of the + data obtained independently of how the data is accessed, whether via + IPP or via SNMP [RFC1905, RFC1906] and the Printer/Job MIBs. + + There is one aspect of the Model that deserves some extra + explanation. There are two ways for identifying a Job object: (a) + with a Job URI and (b) using a combination of the Printer URI and a + Job ID (a 32 bit positive integer). Allowing Job objects to have URIs + allows for flexibility and scalability. For example a job could be + moved from a printer with a large backlog to one with a smaller load + and the job identification, the Job object URI, need not change. + However, many existing printing systems have local models or + interface constraints that force Job objects to be identified using + only a 32-bit positive integer rather than a URI. This numeric Job + ID is only unique within the context of the Printer object to which + the create request was originally submitted. In order to allow both + types of client access to Jobs (either by Job URI or by numeric Job + ID), when the Printer object successfully processes a create request + and creates a new Job, the Printer object generates both a Job URI + and a Job ID for the new Job object. This requirement allows all + clients to access Printer objects and Job objects independent of any + local constraints imposed on the client implementation. + +4. RATIONALE FOR THE PROTOCOL + + There are two parts to the Protocol: (1) the encoding of the Model + data and (2) the mechanism for transmitting the model data between + client and server. + +4.1 The Encoding + + To make it simpler to develop embedded printers, a very simple binary + encoding has been chosen. This encoding is adequate to represent the + kinds of data that occur within the Model. It has a simple structure + consisting of sequences of attributes. Each attribute has a name, + prefixed by a name length, and a value. The names are strings + constrained to characters from a subset of ASCII. The values are + either scalars or a sequence of scalars. Each scalar value has a + length specification and a value tag which indicates the type of the + value. The value type has two parts: a major class part, such as + integer or string, and a minor class part which distinguishes the + usage of the major class, such as dateTime string. Tagging of the + values with type information allows for introducing new value types + at some future time. + + + + + +Zilles Experimental [Page 5] + +RFC 2568 Rationale for IPP April 1999 + + + A fully encoded request/response has a version number, an operation + (for a request) or a status and optionally a status message (for a + response), associated parameters and attributes which are encoded + Model data and, optionally (for a request), print data following the + Model data. + +4.2 The Transmission Mechanism + + The chosen mechanism for transmitting the encoded Model data is HTTP + 1.1 Post (and associated response). No modifications to HTTP 1.1 are + proposed or required. The sole role of the Transmission Mechanism is + to provide a transfer of encoded Model data from/to the client + to/from the server. This could be done using any data delivery + mechanism. The key reasons why HTTP 1.1 Post is used are given below. + The most important of these is the first. With perhaps this + exception, these reasons could be satisfied by other mechanisms. + There is no claim that this list uniquely determines a choice of + mechanism. + + 1. HTTP 1.0 is already widely deployed and, based on the recent + evidence, HTTP 1.1 is being widely deployed as the manufacturers + release new products. The performance benefits of HTTP 1.1 have + been shown and manufactures are reacting positively. + + Wide deployment has meant that many of the problems of making a + protocol work in a wide range of environments from local net to + Intranet to Internet have been solved and will stay solved with + HTTP 1.1 deployment. + + 2. HTTP 1.1 solves most of the problems that might have required a + new protocol to be developed. HTTP 1.1 allows persistent + connections that make a multi-message protocol be more efficient; + for example it is practical to have separate Create-Job and Send- + Document messages. Chunking allows the transmission of large print + files without having to pre-scan the file to determine the file + length. The accept headers allow the client's protocol and + localization desires to be transmitted with the IPP operations and + data. If the Model were to provide for the redirection of Job + requests, such as Cancel-Job, when a Job is moved, the HTTP + redirect response allows a client to be informed when a Job he is + interested in is moved to another server/Printer for any reason. + + 3. Most network Printers will be implementing HTTP servers for + reasons other than IPP. These network attached Printers want to + provide information on how to use the printer, its current state, + HELP information, etc. in HTML. This requires having an HTTP + server which would be available to do IPP functions as well. + + + + +Zilles Experimental [Page 6] + +RFC 2568 Rationale for IPP April 1999 + + + 4. Most of the complexity of HTTP 1.1 is concerned with the + implementation of HTTP proxies and not the implementation of HTTP + clients and/or servers. Work is proceeding in the HTTP Working + Group to help identify what must be done by a server. As the + Encoding and Transport document shows, that is not very much. + + 5. HTTP implementations provide support for handling URLs that + would have to be provided if a new protocol were defined. + + 6. An HTTP based solution fits well with the Internet security + mechanisms that are currently deployed or being deployed. HTTP + will run over SSL3. The digest access authentication mechanism of + HTTP 1.1 provides an adequate level of access control. These + solutions are deployed and in practical use; a new solution would + require extensive use to have the same degree of confidence in its + security. Note: SSL3 is not on the IETF standards track. + + 7. HTTP provides an extensibility model that a new protocol would + have to develop independently. In particular, the headers, + intent-types (via Internet Media Types) and error codes have wide + acceptance and a useful set of definitions and methods for + extension. + + 8. Although not strictly a reason why IPP should use HTTP as the + transmission protocol, it is extremely helpful that there are many + prototyping tools that work with HTTP and that CGI scripts can be + used to test and debug parts of the protocol. + + 9. Finally, the POST method was chosen to carry the print data + because its usage for data transmission has been established, it + works and the results are available via CGI scripts or servlets. + Creating a new method would have better identified the intended + use of the POSTed data, but a new method would be more difficult + to deploy. Assigning a new default port for IPP provided the + necessary identification with minimal impact to installed + infrastructure, so was chosen instead. + +5. RATIONALE FOR THE DIRECTORY SCHEMA + + Successful use of IPP depends on the client finding a suitable IPP + enabled Printer to which to send a IPP requests, such as print a + job. This task is simplified if there is a Directory Service which + can be queried for a suitable Printer. The purpose of the + Directory Schema is to have a standard description of Printer + attributes that can be associated the URI for the printer. These + attributes are a subset of the Model attributes and can be encoded + in the appropriate query syntax for the Directory Service being + used by the client. + + + +Zilles Experimental [Page 7] + +RFC 2568 Rationale for IPP April 1999 + + +6. SECURITY CONSIDERATIONS - RATIONALE FOR SECURITY + + Security is an area of active work on the Internet. Complete + solutions to a wide range of security concerns are not yet + available. Therefore, in the design of IPP, the focus has been on + identifying a set of security protocols/features that are + implemented (or currently implementable) and solve real problems + with distributed printing. The two areas that seem appropriate to + support are: (1) authorization to use a Printer and (2) secure + interaction with a printer. The chosen mechanisms are the digest + authentication mechanism of HTTP 1.1 and SSL3 [SSL] secure + communication mechanism. + +7. REFERENCES + + [ipp-iig] Hastings, T. and C. Manros, "Internet Printing + Protocol/1.0:Implementer's Guide", Work in Progress. + + [RFC2569] Herriot, R., Hastings, T., Jacobs, N. and J. Martin, + "Mapping between LPD and IPP Protocols", RFC 2569, April + 1999. + + [RFC2566] deBry, R., Isaacson, S., Hastings, T., Herriot, R. and P. + Powell, "Internet Printing Protocol/1.0: Model and + Semantics", RFC 2566, April 1999. + + [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet + Printing Protocol/1.0: Encoding and Transport", RFC 2565, + April 1999. + + [RFC2567] Wright, D., "Design Goals for an Internet Printing + Protocol", RFC 2567, April 1999. + + [ISO10175] ISO/IEC 10175 "Document Printing Application (DPA)", June + 1996. + + [RFC1759] Smith, R., Wright, F., Hastings, T., Zilles, S. and J. + Gyllenskog, "Printer MIB", RFC 1759, March 1995. + + [RFC1905] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, + "Protocol Operations for Version 2 of the Simple Network + Management Protocol (SNMPv2)", RFC 1905, January 1996. + + [RFC1906] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, + "Transport Mappings for Version 2 of the Simple Network + Management Protocol (SNMPv2)", RFC 1906, January 1996. + + + + + +Zilles Experimental [Page 8] + +RFC 2568 Rationale for IPP April 1999 + + + [SSL] Netscape, The SSL Protocol, Version 3, (Text version + 3.02), November 1996. + +8. AUTHOR'S ADDRESS + + Stephen Zilles + Adobe Systems Incorporated + 345 Park Avenue + MailStop W14 + San Jose, CA 95110-2704 + + Phone: +1 408 536-4766 + Fax: +1 408 537-4042 + EMail: szilles@adobe.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Zilles Experimental [Page 9] + +RFC 2568 Rationale for IPP April 1999 + + +9. 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. + + + + + + + + + + + + + + + + + + + + + + + + +Zilles Experimental [Page 10] + |