开发者

How do web servers avoid TIME_WAIT?

开发者 https://www.devze.com 2023-01-16 10:07 出处:网络
I\'m writing a simple HTTP server and learning about TIME_WAIT.How do real web servers in heavy environments handle requests from tho开发者_开发技巧usands of users without all the sockets getting stuc

I'm writing a simple HTTP server and learning about TIME_WAIT. How do real web servers in heavy environments handle requests from tho开发者_开发技巧usands of users without all the sockets getting stuck in TIME_WAIT after a request is handled? (Not asking about keep-alive -- that would help for a single client, but not for thousands of different clients coming through).

I've read that you try and get the client to close first, so that all the TIME_WAITs get spread out among all the clients, instead of concentrated on the server.

How is this done? At some point the server has to call close/closesocket.


The peer that initiates the active close is the one that goes into TIME_WAIT. So as long as the client closes the connection the client gets the TIME_WAIT and not the server. I go into this all in a little more detail in this blog posting. If you are unable to reach that link then the wayback machine has it.

0

精彩评论

暂无评论...
验证码 换一张
取 消