Microsoft KB Archive/329781

= HTTP File Upload Operation Takes a Long Time to Complete =

Article ID: 329781

Article Last Modified on 3/5/2007

-

APPLIES TO


 * Microsoft Internet Explorer 6.0
 * Microsoft Internet Explorer 6.0
 * Microsoft Internet Explorer 6.0
 * Microsoft Internet Explorer 6.0
 * Microsoft Internet Explorer 6.0
 * Microsoft Internet Explorer 5.5
 * Microsoft Internet Explorer 5.5
 * Microsoft Internet Explorer 5.5
 * Microsoft Internet Explorer 5.5
 * Microsoft Internet Explorer 5.01

-



This article was previously published under Q329781



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
When you use the HTTP File Upload feature to upload multi-megabyte files, the upload operation may take a very long time to complete.

Note This issue is documented in Request For Comment (RFC) 1867, &quot;Form-based File Upload in HTML.&quot;



CAUSE
This issue occurs because the default Winsock Send buffer is 8 kilobytes (KB), and therefore Internet Explorer supplies the data in 8 KB chunks. On an average network, this equals approximately 80 KB per second (KBps), regardless of network bandwidth.

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

214397 INFO: Design Issues - Sending Small Data Segments Over TCP w/Winsock



RESOLUTION
To resolve this issue, configure Internet Explorer to increase the Send buffer when communicating with Winsock. This increases network performance when you use the HTTP File Upload method. To do this, follow these steps.

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

 Start Registry Editor (Regedt32.exe). Locate and then click the following registry key:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

 On the Edit menu, click Add Value, and then add the following registry value:

Value name: SocketSendBufferLength

Data type: REG_DWORD

Radix: Decimal

Value data: Buffer size that you want (in bytes)

Buffer size value options:

16-KB Buffer = 16384

24-KB Buffer = 24576

32-KB Buffer = 32768

40-KB Buffer = 40960

48-KB Buffer = 49152

56-KB Buffer = 57344

64-KB Buffer = 65536

 Quit Registry Editor.

Make sure that you test each value, starting with a 16-KB buffer. When the upload performance becomes acceptable, select the corresponding buffer value.



STATUS
This behavior is by design.

<div class="moreinformation_section">

MORE INFORMATION
When you use the procedure described in the &quot;Resolution&quot; section of this article, any program that uses the WININETAPI HTTPSendRequest function (as documented on the following Microsoft Developer Network (MSDN) Web site) will allocate and request a Winsock Send buffer, as defined by the registry key.

For additional information about the HTTPSendRequest function, visit the following MSDN Web site:

http://msdn2.microsoft.com/en-us/library/aa384247.aspx

For additional information about Winsock Send Buffer behavior, click the article number below to view the article in the Microsoft Knowledge Base:

214397 INFO: Design Issues - Sending Data Segments Over TCP w/Winsock

Keywords: kbprb KB329781

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.