Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

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


View products that this article applies to.

Source: Microsoft Support

↑ Back to the top


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.

↑ Back to the top


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.

↑ Back to the top


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

↑ Back to the top


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.

↑ Back to the top


Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

↑ Back to the top


Keywords: kbnosurvey, kbarchive, kbrapidpub, kbnomt, KB969205

↑ Back to the top

Article Info
Article ID : 969205
Revision : 2
Created on : 1/16/2015
Published on : 1/16/2015
Exists online : False
Views : 389