Export (0) Print
Expand All

Network Printer Ports

Updated: March 28, 2003

Applies To: Windows Server 2003 with SP1

Standard TCP/IP Port Monitor

For network-connected print devices, the standard TCP/IP port monitor is the best choice. Standard port monitor is the successor to line printer remote (LPR), that has been widely adopted as the de facto standard in network printing for the past several years. Standard port monitor is faster, more scalable, and bidirectional. In contrast, LPR is limited in all of these areas. Although Windows NT 4 and later provided registry modifications to help extend the capabilities of LPR printing, these changes do not compare with the benefits of using standard port monitor.

Standard port monitor uses TCP/IP as the transport protocol, which makes it the preferred port monitor in Windows Server 2003. Standard port monitor also uses the Simple Network Management Protocol (SNMP) to configure and monitor the printer status.

Standard port monitor sends documents to a printer using either the RAW or LPR printing protocols. Together, these protocols support most current TCP/IP printers.

noteNote
Do not confuse these print protocols with the transport protocols such as TCP/IP or Data Link Control (DLC).

The RAW protocol is the default for most print devices. To send a RAW-formatted job, the print server opens a TCP stream to the printer’s network interface. For many devices this will be port 9100. When the TCP/IP port is created, Windows uses SNMP to query the device for its object identifier according to RFC 1759 (Printer MIB). If the device returns a value the system file, tcpmon.ini, is parsed for a match. If the printer manufacturer has provided special configuration information for the particular device, it is created with the configuration settings in place. For example, some external print server interfaces support multiple printers (for example, the Hewlett Packard JetDirect EX with three parallel port connections). The manufacture can use different ports to designate which printer a job should be submitted to (for example, 9102 for port 1, 9103 for port 2; and so on). This ability is helpful for print server interfaces that require the use of specific port names, such as PASS on some IBM network printers.

Standard port monitor can be configured to comply more closely with the LPR standard (RFC 1179). Specifically, you can use the Configure Port button in the Server Properties, Ports tab to enable byte counting. This setting can be helpful if a line printer daemon (LPD) requires an accurate byte count to be sent, which is compliant with the RFC.

By default, standard port monitor deviates from the LPR standard in two ways:

  • First, standard port monitor does not conform to the RFC 1179 requirement that the source TCP port lie between port 721 and port 731. Standard port monitor uses ports from the general, unreserved pool of ports (ports 1024 and above).

  • Second, the LPR standard states that print jobs must include information about the size of the job the port monitor sends. Sending a print job with job size information requires that the port monitor spool the job twice, once to determine size, and once to send the job to the spooler. Spooling the job only once improves printing performance, so standard port monitor sends the job to the spooler without determining the actual job size, and claims the job is a default size, regardless of the job’s actual size.

The table below compares the standard TCP/IP port monitor to the LPR port monitor.

 

LPR (RFC 1179 Compliant) Standard TCP/IP Port Monitor

Limited to 721–731 source ports

Source ports from ephemeral ports (9100 default)

Four-minute timeout per port

No source port timeout

Unidirectional—single error status reporting

Uses SNMP for rich status and error reporting

Control file requires double spooling for accurate byte count

Single-file spooling enabled by default. (configurable through Port Properties)

Prints to destination port 515

Prints to destination port 515 in LPR mode

LPR

Although Windows Server 2003 uses the standard TCP/IP Port monitor by default for a network printer, it still supports LPR/LPD printing for interoperability with legacy systems and RFC-compliant LPR/LPD clients and devices.

An LPR utility lets an application on one computer print to a spooler on a remote computer. The receiving component is called a line printer daemon (LPD). The LPR/LPD combination was developed for UNIX computers but is widely used for many operating systems. Both utilities are included in Print Services for UNIX.

Default Data Types

Print Services for UNIX sets the print data type when it sends the document to the spooler. This type is derived from the control command included in a print job from an LPR client. It might be necessary to change the default data type at the client to avoid processing PCL or PostScript print jobs as TEXT format when they are actually in RAW format.

If the control command is f or p, the data type is TEXT, and the spooler edits the document file to print correctly. If the command is l, the data type is RAW, and no editing is done. If the command is o, the document is already formatted in PostScript code and is assigned the RAW data type.

Some UNIX systems usually send the f command by default, resulting in the following symptoms:

  • Output includes PCL or PostScript code

  • Extended characters are printed incorrectly

  • Printer's default font is used

  • Extra page is printed at the end

You can make a registry entry to force Windows 2000 to process the data as RAW format. For more information, see the following Knowledge Base articles:

  • Q150930, “LPD Server Adds and Print Control Codes”

  • Q168457, “Configuring Individual Printers to Passthrough LPR Print Jobs”

  • Q243729, “Preventing Print Spooler CR or LF to CR/LF Character Translation”

LPR must include an accurate byte count in the control file, but it cannot get it from the local print provider. After LPRMON receives a document from the local print provider, it spools it a second time as a temporary file in the System32 subfolder, finds the size of that file, and sends the size to the LPD print server. The standard TCP/IP port monitor does not adhere to this RFC requirement and sends a very large byte count to the LPD to begin printing. After the job is complete, it simply closes the connection. This step reduces the spool time and disk I/O by eliminating the temporary spool file creation.

The LPR protocol does not return a detailed error status report. If there is a problem, the message is always ERROR and Windows reports ”Printer Error.” As discussed above, through the use of SNMP and the standard printer MIB (RFC 1759), the standard TCP/IP port provides much more detailed error reporting.

Almost all current printer models are compatible with the standard TCP/IP port monitor. In most cases, Print Services for UNIX (LPR/LPD) is required only for interoperability with other computer systems that require strict compliance with the LPR/LPD RFC (1179). Some LPD servers require only the accurate byte count as specified in the RFC. For these systems, simply configuring the standard TCP/IP port with the LPR Byte Counting Enabled option eliminates any errors. Microsoft recommends using the standard TCP/IP port whenever possible for performance and status monitoring.

AppleTalk

To install Apple Talk protocol
  1. From Control Panel, select Add or Remove Programs and then select Add or Remove Windows Components

  2. Select Other Network File and Print Services, and then click Details

  3. Then select Optional Windows Component Print Server for Macintosh. Print Server for Macintosh

This option allows the server to receive jobs from Macintosh clients and print to devices that use the AppleTalk protocol.

When creating an AppleTalk printer port, you are prompted to capture the port. If you capture the AppleTalk print device, it accepts print jobs exclusively from this print server. This option can be helpful in providing tighter device management and control. For a higher level of interoperability or in a mixed environment with multiple servers or clients printing to the device, the port should not be captured, which enables a job-based connection.

In addition, when Printer Services for Macintosh is installed, Macintosh clients can connect to printer shares on a Windows print server. These printers can be locally connected to the server or connected through any support network port, such as standard port monitor, LPR, and so forth.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft