Line printer daemon protocol (RFC1179)
Original Publication Date: 1990-Aug-01
Included in the Prior Art Database: 2019-Feb-11
Internet Society Requests For Comment (RFCs)
This RFC describes an existing print server protocol widely used on the Internet for communicating between line printer daemons (both clients and servers). This memo is for informational purposes only, and does not specify an Internet standard. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol.
Network Printing Working Group L. McLaughlin III, Editor Request for Comments: 1179 The Wollongong Group August 1990
Line Printer Daemon Protocol
Status of this Memo
This RFC describes an existing print server protocol widely used on the Internet for communicating between line printer daemons (both clients and servers). This memo is for informational purposes only, and does not specify an Internet standard. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.
The Berkeley versions of the Unix(tm) operating system provide line printer spooling with a collection of programs: lpr (assign to queue), lpq (display the queue), lprm (remove from queue), and lpc (control the queue). These programs interact with an autonomous process called the line printer daemon. This RFC describes the protocols with which a line printer daemon client may control printing.
This memo is based almost entirely on the work of Robert Knight at Princeton University. I gratefully acknowledge his efforts in deciphering the UNIX lpr protocol and producing earlier versions of this document.
2. Model of Printing Environment
A group of hosts request services from a line printer daemon process running on a host. The services provided by the process are related to printing jobs. A printing job produces output from one file. Each job will have a unique job number which is between 0 and 999, inclusive. The jobs are requested by users which have names. These user names may not start with a digit.
3. Specification of the Protocol
The specification includes file formats for the control and data files as well as messages used by the protocol.
McLaughlin [Page 1]
RFC 1179 LPR August 1990
3.1 Message formats
LPR is a a TCP-based protocol. The port on which a line printer daemon listens is 515. The source port must be in the range 721 to 731, inclusive. A line printer daemon responds to commands send to its port. All commands begin with a single octet code, which is a binary number which represents the requested function. The code is immediately followed by the ASCII name of the printer queue name on which the function is to be performed. If there are other operands to the command, they are separated from the printer queue name with white space (ASCII space, horizontal tab, vertical tab, and form feed). The end of the command is indicated with an ASCII line feed character.
4. Diagram Conventions
The diagrams in the rest of this RFC use these conventions. These diagrams show the format of an octet stream sent to the server. The outermost box represents this stream. Each box within the outermost one shows one portion of the stream. If the contents of the box is two decimal digits, this indicates that the binary 8 bit value is to be used. If the contents is two uppercase letters, this indicates that the corresponding ASCII control character is to be used....