联系:
Time_wait状态:
作用
1 保证连接的终止,保证对FIN的确认发送到对端
如果没有time_wait状态,将返回RST错误,被东方将产生错误
2 为了让旧连接的重复分结在网络中自然消失
危害:
1 资源占用
2 内存资源占用
在time_wait时间,即会出现Adress aready in use 重复占用的状态。
解决方法:
1 so_linger :直接关闭
2 time_wait: 减小等待时间
3 重用套接字选项
如果新旧四元组信息相同(地址:端口,目的地址,目的端口)相同,则会出现冲突问题
1 第一种优化 新连接SYN告知的初始化序列号,一定比TIME_WAIT老连接的末序列号大,这样通过序列号就可以区别出新老连接
2 第二种优化 开启了tcp_timestamps,使得新连接的时间措比老连接的时间措大,通过时间措可区别新老连接
通过直接设置套套接字配置,TCP连接完全服用TIME_WAIT状态的俩涅
int on=1;
setsockopt(listendf,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
3 可重用端口