Line Printer Daemon protocol: Difference between revisions

Content deleted Content added
No edit summary
m format RFCs
 
(73 intermediate revisions by 55 users not shown)
Line 1:
{{Short description|Network printing protocol}}
The '''Line Printer Daemon protocol/Line Printer Remote protocol''' (or '''LPD''', '''LPR''') also known as the '''Berkeley printing system''', is a set of programs that provide [[printer spooling]] and network [[print server]] functionality for [[Unix-like]] systems. The most common implementations of LPD are the official [[BSD]] UNIX operating system and the [[LPRng]] project. The [[Common Unix Printing System]] (or CUPS), which is more common on modern [[Linux]] distributions, borrows heavily from LPD but implements [[Internet Printing Protocol|Internet Printing Protocol (IPP)]]. Commercial solutions are available that also leverage Berkeley printing protocol components, where more robust functionality and performance is necessary than is available from LPR/LPD (or CUPS) alone (such as might be required in large corporate environments). The LPD Protocol Specification is documented in RFC 1179, Line Printer Daemon Protocol, dated August 1990, edited by L. McLaughlin III.
{{Infobox networking protocol
[[pl:|title=Line Printer Daemon]]
|purpose=Submitting print jobs to a remote printer
|rfcs={{IETF RFC|1179|plainlink=yes}}
|ports=515
|date={{Start date and age|1983}}
|based on=[[Berkeley printing system]]
}}
 
The '''Line Printer Daemon protocol/Line Printer Remote protocol''' (or '''LPD''', '''LPR''') also known as the '''Berkeley printing system''', is a set of programs that providenetwork [[printerprinting spoolingprotocol]] andfor networksubmitting [[print server]]jobs functionalityto fora [[Unix-like]]remote systemsprinter. The most commonoriginal implementationsimplementation of LPD arewas in the official[[Berkeley printing system]] in the [[BSD]] [[UNIX]] operating system and; the [[LPRng]] project also supports that protocol. The [[Common Unix Printing System]] (or CUPS), which is more common on modern [[Linux]] distributions, borrowsand heavilyalso fromfound on [[macOS]], supports LPD butas implementswell as the [[Internet Printing Protocol|Internet Printing Protocol (IPP)]]. Commercial solutions are available that also leverageuse Berkeley printing protocol components, where more robust functionality and performance is necessary than is available from LPR/LPD (or CUPS) alone (such as might be required in large corporate environments). The LPD Protocol Specification is documented in RFC 1179, Line Printer Daemon Protocol, dated August 1990, edited by L.{{Ref McLaughlin III.RFC|1179}}
==Commands==
==Usage ==
The official LPD protocol defines the following commands:
A server for the LPD protocol listens for requests on TCP port 515.{{Ref RFC|1179}} A request begins with a byte containing the request code, followed by the arguments to the request, and is terminated by an ASCII [[Newline|LF]] character.
*<tt>lpr</tt>&mdash;Assign a job to a queue.
*<tt>lpq</tt>&mdash;Display the jobs assigned to a queue and their print status.
*<tt>lprm</tt>&mdash;Remove a job from a queue.
*<tt>lpc</tt>&mdash;Control a queue.
The <tt>lpd</tt> program provides the [[daemon (computer software)|daemon]] and queues with which the aforementioned commands interface.
 
An LPD printer is identified by the [[IP address]] of the [[personalserver computer|PC]] (or network printer or server)machine and the queue name on that machine. Many different queue names may exist in one LPD server, with each queue having unique settings. Note that the LPD queue name is case sensitive. Some modern implementations of LPD on network printers might ignore the case or queue name altogether and send all jobs to the same printer. Others hashave the option to automatically create a new queue when a print job with a new queue name is received. This helps to simplify the setup of the LPD server.<ref>[http://gpvno.co.za/ Winet]'s InetLPD server documentation.</ref> Some companies have a tradition of calling the queue name “lpt1” or “LPT1”.
==Usage==
In order for a system to provide print functionality using <tt><b>LPD</b></tt>, the <tt>lpd</tt> program must be configured and started. Based upon its configuration, it will create the necessary queues and address the printers available to users of the system. Once started, it listens for local messages on TCP port 515 (in standard implementations) from the <tt>lpr</tt>, <tt>lpq</tt>, <tt>lprm</tt>, and <tt>lpc</tt> programs, as well as for network messages from remote clients who also implement the LPD protocol.
 
A printer that supports LPD/LPR is sometimes referred to as a "TCP/IP printer" ([[Internet protocol suite|TCP/IP]] is used to establish connections between printers and workstationsclients on a network), although that term seemswould be equally applicable to a printer that supports CUPSthe [[Internet Printing Protocol]].
An LPD printer is identified by the IP address of the [[personal computer|PC]] (or network printer or server) and the queue name. Many different queue names may exist in one LPD server, with each queue having unique settings. Note that the LPD queue name is case sensitive. Some modern implementations of LPD on network printers might ignore the case or queue name altogether and send all jobs to the same printer. Others has the option to automatically create a new queue when a print job with a new queue name is received. This helps to simplify the setup of the LPD server.<ref>[http://gpvno.co.za/ Winet]'s InetLPD server documentation.</ref> Some companies have a tradition of calling the queue name “lpt1” or “LPT1”.
 
==See also ==
A printer that supports LPD/LPR is sometimes referred to as a "TCP/IP printer" ([[Internet protocol suite|TCP/IP]] is used to establish connections between printers and workstations on a network), although that term seems equally applicable to a printer that supports CUPS.
 
==References==
{{Reflist}}
*RFC 1179
 
==See also==
 
*[[Lp (Unix)]]
Line 26 ⟶ 23:
*[[Legacy printing]]
*[[Common Unix Printing System|Common Unix Printing System (CUPS)]]
*[[RLPR]]
*[[System V printing system]]
*[[print (command)]]
*[[Spooling]]
*[[Print server]]
Line 34 ⟶ 29:
*[[Foomatic]]
 
==ExternalReferences links==
{{Reflist}}
*[http://www.brooksnet.com/lpr-lpd-protocol.html?wiki LPD/LPR Protocol]
*[http://www.networkprinting.info/index.html?wiki Network Printing]
*[http://lpd.brooksnet.com/index.html?wiki LPD Software]
*[http://sdisw.com/LPD/ SDI LPD from SDI]
*[http://linux.about.com/library/cmd/blcmdl1_lpr-cups.htm LPR-CUPS].
 
==External links ==
* [https://www.freebsd.org/cgi/man.cgi?query=lpd&sektion=8 FreeBSD LPD Man Page]
 
[[Category:Computer printing]]
[[Category:NetworkPrinting protocols]]
[[Category:Unix]]
[[Category:Network protocols]]
[[Category:Computer printing]]
 
{{Network-software-stub}}
[[de:Berkeley Printing System]]
[[pl:Line Printer Daemon]]
[[ru:Line Printer Daemon]]