chdonald 回复于:2003-07-11 12:30:51 |
产生原因:
1。常连接并且当连接一直处于IDLE状态导致SERVER CLOSE时,CLIENT编程缺陷,没有向SERVER 发出FIN和ACK包 2。APACHE1.1和APACHE1.2增加了linger_close()函数,前面的帖子有介绍,这个函数可能引起了这个问题(为什么我也不清楚) 解决办法: 1。对FIN_WAIT_2状态增加超时机制,这个特性在协议里没有体现,但在一些OS中已经实现 如:LINUX、SOLARIS、FREEBSD、HP-UNIX、IRIX等 2。不要用linger_close()编译 3。用SO_LINGER代替,这个在某些系统中还能很好地处理 4。增加用于存储网络连接状态的内存mbuf,以防止内核crash 5。DISABLE KEEPALIVE |
无双 回复于:2003-07-11 17:57:53 |
不错
原创吗 给你加个原创吧 |
蓝色键盘 回复于:2003-07-11 18:03:45 |
给予鼓励,希望以后多发表一些自己的看法和优秀文章。 |
icedust 回复于:2003-07-11 19:32:33 |
不错,只得学习 |
惜过 回复于:2003-07-11 20:24:16 |
不错不错,我下次也去下一点看看?? |
koath 回复于:2003-07-11 23:21:00 |
是啊,我也编过HTTP brute force的client
好像iis, apache都是这样了,想是为了防止穷举。 不过再看看TCP/IP volume 2估计可以找到解决方案,代码不是bsd的,不爽 |
houhuaw 回复于:2003-07-15 11:36:44 |
不错,有深度 |
threehair 回复于:2003-07-15 13:11:50 |
不错不错 |
uniks 回复于:2003-07-16 08:41:44 |
只有当建立连接后,才可以使连接建立定时器无效。也就是说,在同步开放连接建立过程中,当主机收到一个ACK时,定时器应置为无效,使状态转移到ESTABLISHED。好像fin_wati_2状态机也是有超时设置的。 |