TCP/IP Embryonic Connections
Posted on 1997-04-24
Where can I find the setting in NT that is the equivalent of the Unix SOMAXCONN?
For those that don't know, the reason you often get a 60 second delay in loading files from a Web site is due to a low SOMAXCONN setting. The way it works is like this:
1) The client contacts the server and asks for a connection.
2) The server ACKs that and creates an entry in a table whose size is controlled by SOMAXCONN. The connection is now in an "embyonic" state.
3) The client ACKs the server, and the connection is properly established.
If there are more outstanding embryonic connections than there are entries in the table, the kernel drops the connection on the floor without telling anyone. The client then waits 60 seconds before timing out.
This scheme worked great for NNTP, SMTP, FTP, and all the other protocols that were around pre-1991. But HTTP with its short-lived, multiple connections per client, and with many clients connecting at the same time, creates real problems with this scheme when the table size is too low. On a great many Unix boxes, the table size is only 5!
I'd like to verify the number used in NT and 95, if someone could point me in the right direction. Thanks.