面试题目整理 关于服务器TIME_WAIT和CLOSE_WAIT
2017-03-15 18:50
1041 查看
关于TCP 三次握手和四次挥手下面这个图已经很清晰了(盗图)
我之前用asio碰到过 大量连接 CLOSE_WAIT 状态
现在想想是没调用 socket_.shutdown(tcp::socket::shutdown::shutdown_both,ec);就直接析构了socket_
具体原因是客户端请求关闭连接的时候 服务器在收到 FIN M 之后 没发送 ack M+1 和 FIN N
正确的关闭连接是:
boost::system::error_code ec;
socket_.cancel(ec);
socket_.shutdown(tcp::socket::shutdown_both,ec);
socket_.close(ec);
而 TIME_WAIT状态出现在服务器接受了大量连接 主动关闭连接的时候(一般是web服务器)
这时候就要考虑是不是被攻击了
这里有篇文章讲解的比较详细
http://www.cnblogs.com/sunxucool/p/3449068.html
我之前用asio碰到过 大量连接 CLOSE_WAIT 状态
现在想想是没调用 socket_.shutdown(tcp::socket::shutdown::shutdown_both,ec);就直接析构了socket_
具体原因是客户端请求关闭连接的时候 服务器在收到 FIN M 之后 没发送 ack M+1 和 FIN N
正确的关闭连接是:
boost::system::error_code ec;
socket_.cancel(ec);
socket_.shutdown(tcp::socket::shutdown_both,ec);
socket_.close(ec);
而 TIME_WAIT状态出现在服务器接受了大量连接 主动关闭连接的时候(一般是web服务器)
这时候就要考虑是不是被攻击了
这里有篇文章讲解的比较详细
http://www.cnblogs.com/sunxucool/p/3449068.html
相关文章推荐
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解
- [Nginx笔记]关于线上环境CLOSE_WAIT和TIME_WAIT过高
- 关于面试经常被问到的socket的TIME_WAIT状态的原因及解决办法和避免的办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 解决服务器出现大量CLOSE_WAIT和TIME_WAIT连接的方法
- 关于线上环境CLOSE_WAIT和TIME_WAIT过高
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT区别及解决方案
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法