The information in this article applies to:
SUMMARYA delay can occur between two TCP response packets in a Keep-Alive connection. It does not matter whether ISAPI is invoked with GET or POST. MORE INFORMATION
To prevent wasted space in TCP packets, the IIS socket attempts to wait until the data area of a packet is full (1460 bytes for Ethernet TCP/IP) before sending it out (Nagling). TCP will wait up to 200 ms before it sends a partially full packet.
Please note that this workaround applies only to IIS 5.0. This behavior is by design.
The IIS socket uses Nagle algorithm to maximize the space utilization in TCP packets. TCP tries to wait until the data area of the packet is full before sending out the packet, and it will wait up to 200 ms before it sends a partially full packet. If the socket connection is closed, then all outstanding data is sent. With a Keep-Alive connection, the client needs to have some way of knowing when the response is complete so that it can correctly process the response. IIS uses the Content-Length header to tell the client how many bytes to expect, or it can tell the client that its done after sending the response by closing the connection. Given these facts, here are the two scenarios: Scenario 1 (no Content-Length):
Q126716 Poor TCP/IP Performance When Doing Small Sends Q214397 Design Issues - Sending Data Segments Over TCP w/Winsock RFC 2068, Hypertext Transfer Protocol - HTTP/1.1 Additional query words:
Keywords : kbGrpInetServer |
Last Reviewed: February 2, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |