当FIN_WAIT2时间用完,而最后一个鳍不是从另一边来的时候,下一个状态是什么?TIME-WAIT还是CLOSED?
我们知道在linux系统中,可以在文件/proc/sys/net/ipv4 4/tcp_fin_timeout: man (7)中设置fin 2。
我不太确定这个TCP套接字是否会在FIN_WAIT2时间用完后消失,是强行关闭,还是传输到CLOSED?还是直接跳到TIME-WAIT状态?
我做了个测试:
1: echo 3>/proc/sys/net/ipv4 4/tcp_fin_timeout 2:在linux上运行tomcat的基准测试
事实证明,大量的TIME-WAIT出现在netstat中并在积累,这是否意味着在FIN_WAIT2时间用完后,套接字跳入了TIME-WAIT
还有一个问题:我改变了这个:echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse就像其他人说的那样:“重用套接字”,并保留tcp_fin_timeout:3。但是没有什么改变,TIME-WAIT只是在积累。tcp_tw_reuse是否与TIME-WAIT状态下的套接字无关,TIME-WAIT套接字不能重用?
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle似乎可以减少TIME-WAIT计数,并将其保持在较低的水平,从而避免了负载平衡问题。
发布于 2014-09-02 17:17:20
如果您查看TCP/IP状态图,FIN_WAIT_2将转换为TIME_WAIT。因此,我可以想象,当FIN_WAIT_2超时时,当FIN没有到达时,Linux就会发生简单的转换。
https://stackoverflow.com/questions/25621622
复制相似问题