Loss of SYN+ACK packets through wpa_supplicant

Wim Heirman wim at heirman.net
Thu Aug 26 09:17:36 EDT 2010


Hello,

I know this might be a bit of a long shot, but I'd be grateful if
someone could provide some pointers.

I'm running wpa_supplicant on a home router-style device (DataTank2,
with OpenFSG firmware, Linux 2.6.12 kernel), which runs as a client on
my wifi network (to provide wired internet access to a part of my home
that's not near my actual router+cable modem). I have compiled
wpa_supplicant 5.11 with the madwifi driver (I tried 6.11 but this
hanged the router). Everything mostly works fine, except that TCP
connections crossing the wireless often, but not always, fail to
connect. Using tcpdump both on this router's wifi interface and at
another machine connected through wifi, I can see that for the
offending connection attempts (which go into the client router) the
SYN packets are received, the router sends out the SYN+ACK packet, but
that one is consistently not received by the other side (which is
either the actual access point (an OpenWRT router running hostapd), or
another client (OS X 10.6), results are the same so I'm fairly
convinced that the problem is somewhere in the router's stack - either
in wpa_supplicant or somewhere below). I've attached both tcpdump
traces, where you can see two successful HTTP connections, and one
that's not.
For TCP connections originating at the router I'm having similar
results. On the other hand, connections (originating at my wired PC)
going *through* the router (from its wired LAN side and being routed
through wifi) never seem to have any problems.

Thanks in advance for any help!

Regards,
Wim
-------------- next part --------------
# tcp connection initiated at 192.168.1.1 to 192.168.1.18.www


# logging at 192.168.1.18 (wpa_supplicant side): at 00:42:50: TCP SYN is received, SYN+ACK is sent out

00:42:40.528666 192.168.1.1.33104 > 192.168.1.18.www: S 989377141:989377141(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:40.528764 192.168.1.18.www > 192.168.1.1.33104: S 2412847012:2412847012(0) ack 989377142 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:40.534318 192.168.1.1.33104 > 192.168.1.18.www: . ack 1 win 2920 (DF)
00:42:40.535033 192.168.1.1.33104 > 192.168.1.18.www: P 1:57(56) ack 1 win 2920 (DF)
00:42:40.535568 192.168.1.18.www > 192.168.1.1.33104: . ack 57 win 2920 (DF)
00:42:40.536756 192.168.1.18.www > 192.168.1.1.33104: . 1:1461(1460) ack 57 win 2920 (DF)
00:42:40.536879 192.168.1.18.www > 192.168.1.1.33104: . 1461:2921(1460) ack 57 win 2920 (DF)
00:42:40.543262 192.168.1.1.33104 > 192.168.1.18.www: . ack 1461 win 4380 (DF)
00:42:40.543462 192.168.1.1.33104 > 192.168.1.18.www: . ack 2921 win 5840 (DF)
00:42:40.544151 192.168.1.18.www > 192.168.1.1.33104: P 2921:3229(308) ack 57 win 2920 (DF)
00:42:40.547509 192.168.1.1.33104 > 192.168.1.18.www: . ack 3229 win 5840 (DF)
00:42:40.570478 192.168.1.1.33104 > 192.168.1.18.www: R 57:57(0) ack 3229 win 5840 (DF)
00:42:49.261070 192.168.1.1.33105 > 192.168.1.18.www: S 1115661269:1115661269(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:49.261179 192.168.1.18.www > 192.168.1.1.33105: S 2428597057:2428597057(0) ack 1115661270 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:49.269278 192.168.1.1.33105 > 192.168.1.18.www: . ack 1 win 2920 (DF)
00:42:49.280150 192.168.1.1.33105 > 192.168.1.18.www: P 1:57(56) ack 1 win 2920 (DF)
00:42:49.280471 192.168.1.18.www > 192.168.1.1.33105: . ack 57 win 2920 (DF)
00:42:49.281651 192.168.1.18.www > 192.168.1.1.33105: . 1:1461(1460) ack 57 win 2920 (DF)
00:42:49.281771 192.168.1.18.www > 192.168.1.1.33105: . 1461:2921(1460) ack 57 win 2920 (DF)
00:42:49.290085 192.168.1.1.33105 > 192.168.1.18.www: . ack 1461 win 4380 (DF)
00:42:49.290181 192.168.1.1.33105 > 192.168.1.18.www: . ack 2921 win 5840 (DF)
00:42:49.290657 192.168.1.18.www > 192.168.1.1.33105: P 2921:3229(308) ack 57 win 2920 (DF)
00:42:49.294588 192.168.1.1.33105 > 192.168.1.18.www: . ack 3229 win 5840 (DF)
00:42:49.377095 192.168.1.1.33105 > 192.168.1.18.www: F 57:57(0) ack 3229 win 5840 (DF)
00:42:49.377492 192.168.1.18.www > 192.168.1.1.33105: F 3229:3229(0) ack 58 win 2920 (DF)
00:42:49.380156 192.168.1.1.33105 > 192.168.1.18.www: . ack 3230 win 5840 (DF)
00:42:50.903081 192.168.1.1.33106 > 192.168.1.18.www: S 1141432687:1141432687(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:50.903179 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:53.903272 192.168.1.1.33106 > 192.168.1.18.www: S 1141432687:1141432687(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:53.903356 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:42:55.095257 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:43:01.095258 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:43:13.095260 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:43:37.295266 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)
00:44:25.295265 192.168.1.18.www > 192.168.1.1.33106: S 2422388700:2422388700(0) ack 1141432688 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 1> (DF)



# logging at 192.168.1.1: at 00:42:49, TCP SYN is sent, SYN+ACK is never received

00:42:39.536578 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [S], seq 989377141, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
00:42:39.543615 IP 192.168.1.18.80 > 192.168.1.1.33104: Flags [S.], seq 2412847012, ack 989377142, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
00:42:39.544373 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [.], ack 1, win 2920, length 0
00:42:39.547668 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [P.], ack 1, win 2920, length 56
00:42:39.550335 IP 192.168.1.18.80 > 192.168.1.1.33104: Flags [.], ack 57, win 2920, length 0
00:42:39.552041 IP 192.168.1.18.80 > 192.168.1.1.33104: Flags [.], ack 57, win 2920, length 1460
00:42:39.552692 IP 192.168.1.18.80 > 192.168.1.1.33104: Flags [.], ack 57, win 2920, length 1460
00:42:39.555205 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [.], ack 1461, win 4380, length 0
00:42:39.555849 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [.], ack 2921, win 5840, length 0
00:42:39.559384 IP 192.168.1.18.80 > 192.168.1.1.33104: Flags [P.], ack 57, win 2920, length 308
00:42:39.560011 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [.], ack 3229, win 5840, length 0
00:42:39.582974 IP 192.168.1.1.33104 > 192.168.1.18.80: Flags [R.], seq 57, ack 3229, win 5840, length 0
00:42:48.273019 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [S], seq 1115661269, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
00:42:48.275789 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [S.], seq 2428597057, ack 1115661270, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
00:42:48.276556 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [.], ack 1, win 2920, length 0
00:42:48.292502 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [P.], ack 1, win 2920, length 56
00:42:48.295114 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [.], ack 57, win 2920, length 0
00:42:48.296864 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [.], ack 57, win 2920, length 1460
00:42:48.297519 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [.], ack 57, win 2920, length 1460
00:42:48.301257 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [.], ack 1461, win 4380, length 0
00:42:48.301906 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [.], ack 2921, win 5840, length 0
00:42:48.305431 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [P.], ack 57, win 2920, length 308
00:42:48.306055 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [.], ack 3229, win 5840, length 0
00:42:48.389898 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [F.], seq 57, ack 3229, win 5840, length 0
00:42:48.392133 IP 192.168.1.18.80 > 192.168.1.1.33105: Flags [F.], seq 3229, ack 58, win 2920, length 0
00:42:48.392828 IP 192.168.1.1.33105 > 192.168.1.18.80: Flags [.], ack 3230, win 5840, length 0
00:42:49.915134 IP 192.168.1.1.33106 > 192.168.1.18.80: Flags [S], seq 1141432687, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
00:42:52.915096 IP 192.168.1.1.33106 > 192.168.1.18.80: Flags [S], seq 1141432687, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0


More information about the HostAP mailing list