Re: FIN_WAIT2 not working
- From: "Gary R. Garrison" <g.r.garrison@xxxxxxxxxxxxxxx>
- Date: Wed, 26 Nov 2008 09:22:34 +0100
I'm using an embedded Linux version 2.6.25-rc8.
The variable I meant to mention as being 60 was "proc/sys/net/ipv4/tcp_fin_timeout". I understand what FIN_WAIT_2 means and agree that one side is not being conservative in what it sends by sending a
window update after receiving a FIN, and the other is not being liberal in what it accepts by having a window update trigger a RST.
All communications between the Linux machine and MSWindows machines (WinXP pro, Vista and WinXP embedded) where the Linux machine transmits information then calls Close() result in tcp window updates arriving from the Windows machines after the Linux machine has sent it's FIN.
Communications between Windows machines also show tcp window updates arriving from other Windows machines after we've sent them FIN.
The problem is the Linux machine sending the RST. Since this newsgroup keeps rejecting everything I send with a ".pcap" file attached heres a topo of the end of a capture :
the linux machine : 192.168.250.1
WinXP embedded machine 192.168.250.2
No. Time RT Source Destination
Protocol Info
304 0.178455 0.000246 192.168.250.1 192.168.250.2 TCP 52911 > 11000 [ACK] Seq=204430 Ack=1 Win=5840 Len=1448 TSV=736118 TSER=206788
305 0.178472 0.000017 192.168.250.2 192.168.250.1 TCP 11000 > 52911 [ACK] Seq=1 Ack=204430 Win=2755 Len=0 TSV=206788 TSER=736118
306 0.261309 0.082837 192.168.250.2 192.168.250.1 TCP 11000 > 52911 [ACK] Seq=1 Ack=205878 Win=14339 Len=0 TSV=206789 TSER=736118
307 0.261759 0.000450 192.168.250.1 192.168.250.2 TCP 52911 > 11000 [ACK] Seq=205878 Ack=1 Win=5840 Len=1448 TSV=736127 TSER=206789
308 0.261881 0.000122 192.168.250.1 192.168.250.2 TCP 52911 > 11000 [ACK] Seq=207326 Ack=1 Win=5840 Len=1448 TSV=736127 TSER=206789
309 0.262002 0.000121 192.168.250.1 192.168.250.2 TCP 52911 > 11000 [FIN, PSH, ACK] Seq=208774 Ack=1 Win=5840 Len=1256 TSV=736127 TSER=206789
310 0.262013 0.000011 192.168.250.2 192.168.250.1 TCP 11000 > 52911 [ACK] Seq=1 Ack=208774 Win=11443 Len=0 TSV=206789 TSER=736127
311 0.262102 0.000089 192.168.250.2 192.168.250.1 TCP 11000 > 52911 [ACK] Seq=1 Ack=210031 Win=10187 Len=0 TSV=206789 TSER=736127
312 0.283422 0.021320 192.168.250.2 192.168.250.1 TCP [TCP Window Update] 11000 > 52911 [ACK] Seq=1 Ack=210031 Win=61383 Len=0 TSV=206789 TSER=736127
313 0.283635 0.000213 192.168.250.1 192.168.250.2 TCP 52911 > 11000 [RST] Seq=210031 Win=0 Len=0
Linux client connects WinXP server, sends a block of 29 bytes indicating the Linux machine is going to send 2500 "ArticleInformation" objects. The transfer is accomplished but at the end, after the FIN by the Linux client, the WinXP machine sends a window update then the Linux client sends a RST. Since windows handles RST in realtime and the windows application hasn't yet "taken" all of the incoming data, an error is seen in "read()".
Simple situation mais solution unknown.
.
- Follow-Ups:
- Re: FIN_WAIT2 not working
- From: Rick Jones
- Re: FIN_WAIT2 not working
- References:
- FIN_WAIT2 not working
- From: Gary R. Garrison
- Re: FIN_WAIT2 not working
- From: Rick Jones
- FIN_WAIT2 not working
- Prev by Date: Re: Protected folder on Apache/Linux
- Next by Date: Re: dialup solution (as seconary connection / iptables )
- Previous by thread: Re: FIN_WAIT2 not working
- Next by thread: Re: FIN_WAIT2 not working
- Index(es):
Relevant Pages
|