DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 329781 - Last Review: March 5, 2007 - Revision: 3.6

This article was previously published under Q329781

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, "Form-based File Upload in HTML."

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  (http://support.microsoft.com/kb/214397/EN-US/ ) 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.

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows
  1. Start Registry Editor (Regedt32.exe).
  2. Locate and then click the following registry key:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. 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
    Collapse this tableExpand this table
    NoteBuffers sizes larger than those specified here are not supported by Microsoft.
  4. 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.

MORE INFORMATION

When you use the procedure described in the "Resolution" 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 (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  (http://support.microsoft.com/kb/214397/EN-US/ ) INFO: Design Issues - Sending Data Segments Over TCP w/Winsock

APPLIES TO
  • Microsoft Internet Explorer 6.0, when used with:
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Media Center Edition
    • Microsoft Windows XP Tablet PC Edition
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Server 4.0, Terminal Server Edition
    • Microsoft Windows NT Workstation 4.0 Developer Edition
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Second Edition
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.01
Keywords: 
kbprb KB329781
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support