Unix TCP Equivalent Settings in Windows 2000?
sameerdesai asks: "While working on a project that required client-server functionality I was running into processes that wouldn't finish and eventually hang. While running packet tracing, I found out the tcp_fin_wait_2_timeout setting on the server side (UNIX) was too low for the Windows client, and after increasing that value it worked great. I am trying to apply a similar technique for a Windows server and was wondering what the equivalent registry key is for UNIX's tcp_fin_wait_2_timeout setting? Also, is there a guide out there that compares TCP setting in UNIX with Windows?"
Sorry folks, there's just no way this will scale.
Knowing Windows, it's probably some obscure undocumented registry key somewhere which you need to twiddle... Fun :)
You have to give the windows client time to reboot.
Without knowing what tcp_fin_wait_2_timeout is supposed to do, a quick search of /proc turned up:
/proc/sys/net/ipv4/tcp_fin_timeout
Which could be related. Google has many results.
I will not deploy any software that requires me to start tweaking obscure registry values that change my server's basic TCP behavior. I'm sure I'm not alone in this.
I don't know what you are planning to do with this project, ie: sell it to the masses, make it open source, use it in house. Just keep this in mind.
- For the complete works of Shakespeare: cat
Is HKLM\System\CurrentControlSet\Services\Tcpip\Param eters
e sk it/en-us/default.asp?url=/windows2000/techinfo/res kit/en-us/regentry/58811.asp
REG_DWORD
30
Setting this to anything below 30 decimal will just set it to 30 anyway though.
http://www.microsoft.com/windows2000/techinfo/r
Maybe this document is enlightening? http://www.microsoft.com/windows2000/techinfo/resk it/en-us/default.asp?url=/windows2000/techinfo/res kit/en-us/regentry/33563.asp
there is a very similar setting in windows, just follow these simple steps: /dev/hda1
- *reboot*
- insert debian boot cd
- follow prompts, click 'yes' when prompted if
you really want to delete
- voila, you have similar tcp options available on
you wintel machine
Browse Slashdot at Funny+5, everything else -5. The only way to sustain it.
So, what is this application doing relying on a timeout value in this phase? It would be terrible to be dependent on a TCP implementation in an application!
Because of course using regedit to tweak the value of HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Param eters is MUCH more intuitive and user friendly than doing something in /proc/sys/net/ipv4. Actually, I don't see any sort of tcp_fin_wait_2_timeout in there, nor do I see anything that looks like an equivalent parameter in the Windows help page. At least I see tcp_fin_timout in /proc, but don't see anything like it in the registry documentation page.
/proc and the Registry are equally binary, since the tools let you plug in equivalent numbers. But it remains that I can do directory navigation on /proc, and must use a special tool for the Registry.
/usr/src/linux/Documentation/networking/ip-sysctl. txt I find that tcp_fin_timeout is indeed used to control the time to hold the socket in FIN-WAIT-2, so it turns out that it is indeed the correct parameter. That still doesn't help me find the same parameter in the Microsoft documentation, which is on the web, not on the system, and if I can't get the networking running, how do I search?
On a slightly more usable scale, if I'm going to use an obscure interface, at LEAST I'd prefer it be in cleartext than some odd binary thingy that can only be edited with a special tool. OK, perhaps
Even better, looking in
The living have better things to do than to continue hating the dead.
can change hard-coded values in Linux source code and recompile.
did you try looking in the freebsd handbook .......
bu bum tshhhh
rosetta stone: performance tuning
this is conceptually similar to http://bhami.com/rosetta.html, but my table focuses on design choices, specifically performance and security tuning, not daily operations.
note: i couldn't find a value for windows TCP FIN timeout (fin-wait-[12]). The TcpTimedWaitDelay that somebody else suggested is for the TCP TIME_WAIT.
The URL you just referenced lives at nonstandard port 81: Does the Google spider look for nonstandard ports?
As far as I know every platform that Windows runs on can also run Linux. Shouldn't it be easy to just reformat your Windows servers to install the necessary software to do what you need (Linux)? Is there something I'm not getting here, or were you perhaps unaware of this possibility? If the later is the case, I hope this post will be helpful to you.
Windows has networking that was taken straight from Berkely. i.e. \etc\drivers\hosts being similar to /etc/hosts and Windows using Berkeley socket APIs.
n/t
is always a viable option! So are: A) insert *distro of choice* install media B) change server side params C) live with it?
I've found that disabling the delayed ACK on Windows servers generally fixes all problems I've had with Windows->unix communication.
MS even has a technet article on it, actually a few.
Need Free Juniper/NetScreen Support? JuniperForum
1) Go get the relevant hotfix for it (kb813056) from MS support : http://support.microsoft.com/default.aspx?scid=kb; en-us;813056
2) Go to HKLM\SYSTEM\CurrentControlSet\ Services\TcpIp\Parameters and add the reg key TCPFinWait2Delay
3) Set the reg key value to the appropriate delay you want