[comp.protocols.tcp-ip] TCP/IP printing protocol

Leisner.Henr@XEROX.COM (Marty) (01/10/90)

Is there a TCP/IP printing protocol?  Is there such a thing as a TCP/IP print server?

Any information is appreciated, 

thanks,

marty
ARPA:	leisner.henr@xerox.com
GV:  leisner.henr
NS:  leisner:wbst139:xerox
UUCP:	hplabs!arisia!leisner
 

ccruss@pollux (Russ Hobby) (01/11/90)

Currently there is no offical TCP/IP protocol for printing, and there is
a need. Amoung UNIX systems lpr is used a lot. Several printer vendors have 
their own protocols. 

I am in search of people interested in this problem to form an IETF Working
Group to come up with a good network printer protocol.  Some of the things that
the protocol would need to consider are:
   1) Authentication/security/accounting
   2) Printing modes and options (Postscript, plain text, page/line size,...)
   3) Scheduling priorities
   4) Begin/end job control
   5) Printers that are directly connected to a network or through a host.

If you are interested in working on such a protocol or just have some good
ideas, let me know.

Russ Hobby                              INTERNET: rdhobby@ucdavis.edu  
IETF Area Director - Applications       BITNET:   RDHOBBY@UCDAVIS  
                                        UUCP:  ...!ucbvax!ucdavis!rdhobby 

geof@aurora.com (Geoffrey H. Cooper) (01/11/90)

In article <900109-093140-4953@Xerox> Leisner.Henr@XEROX.COM (Marty) writes:
>Is there a TCP/IP printing protocol?  Is there such a thing as a TCP/IP print server?

IMAGEN (now QMS) has been selling TCP-IP print servers since 1983 for
their line of high-end printers (20ppm, duplex, many
emulations/languages).  QMS itself has a product called "PrintLink"
that also speaks TCP-IP (I think it only uses a standard FTP server).
DEC also has a TCP-IP print server that runs at 40ppm.

DEC has its own protocol, which is somewhat more complex than
IMAGEN's.  I'll let one of the DEC people explain it, since I'm not
fully familiar with it.

IMAGEN's protocol was designed to maximize simplicity, since the
printer has other mechanisms for communicating everything about a
print job (#copies, duplex on/off, emulation to select, etc).  The
protocols are documented in manuals shipped with the printers.  There
are three protocols: "transport1", "status1", "accounting1".  (The "1"
part was an optimistic hope that there would be fancier protocols to
come.  That these were never really needed is partially a tribute to
how much can be achieved with how little and partially a sign that
people are only mildly interested in doing fancy things with their
printers). 

IMAGEN's approach has been to distribute software for popular machines
that implements its printing protocols.

Status1 is a UDP-based protocol.  The printer listens on a dedicated
UDP port (35) for packets, and returns every packet it receives with a
description of the current state of the printer: print a job, paper
jam, out of paper, etc..

Transport1 is a TCP-based protocol.  The printer listens on a
dedicated TCP port (35) for connections.  All data sent down the
connection is processed as a single print job.  The sender sends a
FIN to indicate end-of-job, and the printer responds with its FIN when
it is willing to accept full responsibility for printing the tail of
the job.

To talk to the printer, Status1 and Transport1 are enjoined into a
"combined protocol" that arbitrates multiple access.  Under this
protocol, the sender probes with Status1 until it sees that the
printer is ready to accept a new job (most implementations of the
suite do not locally spool data, and for other reasons they can't 
accept a TCP connection until they are actually ready to start
processing the print job).  Then it attempts to open a Transport1
connection.  If this fails, the loop repeats.

In the early days, host UDP support of sometimes poor (hello apollo)
so a modified combined protocol also exists whereby only Transport1 is
used.  In the rare case that I personally did an installation, I was
able to implement this with a shell script that piped into telnet, so
that I could demo the printer immediately.

Accounting1 is a UDP-based protocol.  The printer can be configured
with a number of trusted "accounting hosts" and sends datagram packets
to them at the end of each job.  The protocol is not completely
reliable, but you can make it pretty useful if you have multiple hosts
receiving UDP packets (there was a paper done some time ago about the
doing reliable broadcasts without ACK's).  This is probably the
weakest link of the "suite".

- Geof
-- 
geof@aurora.com / aurora!geof@decwrl.dec.com / geof%aurora.com@decwrl.dec.com

kjj@varese.UUCP (Kevin Johnson) (01/11/90)

In article <6434@ucdavis.ucdavis.edu> rdhobby@ucdavis.edu (Russ Hobby) writes:
>Currently there is no offical TCP/IP protocol for printing, and there is
>a need. Amoung UNIX systems lpr is used a lot. Several printer vendors have 
>their own protocols. 

I'm curious why there isn't an RFC addressing this...

. . .

>If you are interested in working on such a protocol or just have some good
>ideas, let me know.

apol. for tacking this in but the news posting is going out anyway...
Sure, I'll byte...