Microsoft KB Archive/329781

From BetaArchive Wiki
Knowledge Base


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, "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 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.

  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

  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:

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