Printing performance over Wan Networks in Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008 systems

Article ID: 969205 - View products that this article applies to.
Expand all | Collapse all

On This Page

Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Symptom

In Pre-Vista OS's, printing (spooler service running over RPC scenario) over WAN networks is generally slow especially when there's a delay in the WAN links. In Windows Vista and Windows Server 2008 systems, printing is faster compared to Windows XP and Windows Server 2003 scenario due to design changes made in the printing RPC interface.

More Information



In Pre-Vista OS's, printing (Spooler service running over RPC) over WAN networks is generally slow especially when there's a delay in the WAN links. This mainly stems from the fact that Pre-Vista OS's (Windows NT, Windows 2000, Windows XP, and Windows server 2003) use the printing RPC interface which runs on top of named pipes over SMB. In such OS's, RPC over named pipe is limited to 4280 bytes. Hence while printing a document, spooler client needs to send a new RPC (over named pipe over SMB) request every 4280 bytes and this must be ACK'ed at SMB layer by the remote party (with an SMB Write AndX request) before the client sends the next RPC request. This behavior exists when older printing RPC interface used as it works over named pipes (and SMB in result).

RPC over named pipe buffer is still hardcoded to 4280 bytes in Windows Vista and Windows Server 2008 systems. But Windows Vista and Windows Server 2008 systems use the newer printing RPC interface when communicating with the remote Windows Vista and Windows Server 2008 systems (not Windows NT, Windows 2000, Windows XP, and Windows server 2003 systems – Windows Vista and Windows Server 2008 will still keep using the older printing RPC interface while communicating with down-level platforms)

The new printing RPC interface directly runs on top of TCP (named pipe over SMB is eliminated in the new interface). Hence spooler client doesn't have to wait for any SMB layer acknowledgements. All spooler related RPC traffic will be sent over TCP and this will improve the printing performance over WAN networks.

Example 1



The following typical flow is seen while spooling to Windows Vista or Windows Server 2008 from a Windows Vista or Windows Server 2008 system

Notes
  • 192.168.1.101 is Windows Vista or Windows Vista SP1 client
  • 192.168.1.1 is Windows Server 2008 server       


.

.

1958  0.011479 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC first fragment]

1962  0.000252 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1966  0.000136 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1970  0.000128 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1974  0.000238 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1978  0.000132 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1982  0.000129 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1986  0.000128 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1990  0.000128 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

1997  0.000123 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

2001  0.000137 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC middle fragment]

2005  0.000116 192.168.1.101  192.168.1.1    DCERPC   Request: call_id: 64 opnum: 12 ctx_id: 0 [DCE/RPC last fragment]

2009  0.005823 192.168.1.1    192.168.1.101  DCERPC   Response: call_id: 64 ctx_id: 0 76f03f96-cdfd-44fc-a22c-64950a001209 V1

.

.

Note Opnum 12 is RpcAsyncWritePrinter() as per the new printing RPC interface IDL:

http://msdn.microsoft.com/en-us/library/cc238131(PROT.10).aspx

Example 2



The following typical flow is seen while spooling to a Windows Server 2003 system from a Windows Vista or Windows Server 2008 system.

Notes
  • 192.168.1.101 is Windows Vista or Windows Vista SP1 client
  • 192.168.1.3 is Windows Server 2003 or Windows Server SP2 server


.

.

449    0.039921   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

453    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

454    0.000330   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

458    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

459    0.000296   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

463    0.000015   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

464    0.000332   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

468    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

469    0.000398   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

473    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

474    0.000291   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

478    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

479    0.000364   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

483    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

484    0.000325   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

488    0.000012   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

489    0.000532   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

493    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

494    0.000299   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

498    0.000012   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

499    0.000415   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

503    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

504    0.000291   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

508    0.000012   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

509    0.000469   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

513    0.000011   192.168.1.3    192.168.1.101  SMB       Write AndX Response, FID: 0x0004, 4280 bytes

514    0.000266   192.168.1.101  192.168.1.3    DCERPC    Request: call_id: 9 opnum: 19 ctx_id: 0

517    0.000079   192.168.1.3    192.168.1.101  SPOOLSS   WritePrinter response, 57344 bytes written

.

.

Note Opnum 19 is RpcWritePrinter() as per the RPC interface IDL:

http://msdn.microsoft.com/en-us/library/cc244649(PROT.10).aspx

 

References 

Old printing RPC interface (NT/2000/XP/2003)
http://msdn.microsoft.com/en-us/library/cc244528(PROT.10).aspx

Transport used by the old printing RPC interface
http://msdn.microsoft.com/en-us/library/cc244535(PROT.10).aspx

New printing RPC interface (Vista/2008/Windows 7/Windows 2008 R2)
http://msdn.microsoft.com/en-us/library/cc238080(PROT.10).aspx

Transport used by the new printing RPC interface 
http://msdn.microsoft.com/en-us/library/cc238087(PROT.10).aspx

DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

Properties

Article ID: 969205 - Last Review: March 18, 2009 - Revision: 1.0
APPLIES TO
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Starter
  • Windows Vista Ultimate
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
Keywords: 
kbrapidpub kbnomt KB969205

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com