tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

TCP/IPv6 stalling



Hello,

   I'm having some networking issues which aren't completely unheard of;
I googled around a little and found several posts from diffierent people
describing more or less exactly this problem, but couldn't find any
solutions.

   The abstract versions is:  I can ping Internet from the host, I can
make very small requests ("wget http://www.netbsd.org"; works fine), but
if I try to fetch something larger than a few KB, the transfer grinds to
a halt (not entirely true, I get like 50B/s (very unstable) transfer
rate, and that's not a typo, there isn't a "K" missing there, it's in
the magnitude of 50 characters per second).

   Any such operations from the router works fine, it's only when
performed from any of the system on the LAN.  (All host systems are
affected; NetBSD, Linux, Windows, Mac).  IPv4 does not have any issues;
this only occurs with IPv6.

   I looked at the traffic on the router in Wireshark while performing:

   $ wget http://ftp.gnu.org/pub/gnu/tar/tar-1.29.tar.bz2

   .. on the host in a setup which looks like this:

   host             router
   (re0)    <--> (wm0)   (re0)   <--> Modem
   Asustek       Intel   Asustek      Cisco

   .. and it's immediately apparent that something is wrong.  The
capture is riddled with [TCP Retransmission] and [TCP Dup ACK ...].

   First entries in the capture are normal:
   SYN  host -> server
   SYN+ACK host <- server
   ACK  host -> server

   This is followed the actual HTTP request being sent from the host to
the server.

   After that the oddities begin.  The initial SYN is resent; marked in
Wireshark as a [TCP Spurious Retransmission].  The ethernet frame
indicates that the first SYN was sent from the host to the router's wm0
interface.  The retransmission is sent from the routers re0 interface to
the modem.

   I've attached the summary part of the capture.  If anyone is
interested in a more detailed capture, I can email them.

   It looks to my highly untrained eyes like the network stack is
suddenly deciding, a while after the initial SYN/ACK handshake has
completed, that the SYN was never ACK'd, so it is resent.  The similar
kind of issue occurs over and over again, which causes more or less a
complete stall of the TCP traffic.

   The router is running NetBSD/amd64 -7 with npf (currently configured
to just pass everything in both directions).

-- 
Kind Regards,
Jan
No.     Time           Source                Destination           Protocol Length Info
   3785 3.524968       2001:host             2001:4830:134:3::b    TCP      98     65387→80 [SYN] Seq=0 Win=32768 Len=0 MSS=1440 WS=8 SACK_PERM=1 TSval=1 TSecr=0
   3973 3.680796       2001:4830:134:3::b    2001:host             TCP      94     80→65387 [SYN, ACK] Seq=0 Ack=1 Win=28560 Len=0 MSS=1440 SACK_PERM=1 TSval=618195561 TSecr=1 WS=128
   3975 3.681260       2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=1 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195561
   3976 3.681260       2001:host             2001:4830:134:3::b    HTTP     247    GET /pub/gnu/tar/tar-1.29.tar.bz2 HTTP/1.1
   4056 3.524977       2001:host             2001:4830:134:3::b    TCP      98     [TCP Spurious Retransmission] 65387→80 [SYN] Seq=0 Win=32768 Len=0 MSS=1440 WS=8 SACK_PERM=1 TSval=1 TSecr=0
   4245 3.680787       2001:4830:134:3::b    2001:host             TCP      94     [TCP Retransmission] 80→65387 [SYN, ACK] Seq=0 Ack=1 Win=28560 Len=0 MSS=1440 SACK_PERM=1 TSval=618195561 TSecr=1 WS=128
   4247 3.681266       2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=1 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195561
   4248 3.681272       2001:host             2001:4830:134:3::b    TCP      247    [TCP Retransmission] 65387→80 [PSH, ACK] Seq=1 Ack=1 Win=33120 Len=161 TSval=1 TSecr=618195561
   4413 3.832790       2001:4830:134:3::b    2001:host             TCP      86     80→65387 [ACK] Seq=1 Ack=162 Win=29696 Len=0 TSval=618195600 TSecr=1
   4414 3.835545       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Previous segment not captured] [TCP segment of a reassembled PDU]
   4415 3.835950       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#1] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=2857
   4416 3.836805       2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
   4417 3.837211       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#2] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=4285
   4418 3.838053       2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
   4419 3.838458       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#3] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=5713
   4420 3.840492       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Previous segment not captured] [TCP segment of a reassembled PDU]
   4421 3.840898       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#4] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=8569 SLE=1429 SRE=5713
   4422 3.841747       2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
   4423 3.842152       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#5] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=9997 SLE=1429 SRE=5713
   4424 3.843120       2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
   4425 3.843526       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#6] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=11425 SLE=1429 SRE=5713
   4605 3.832785       2001:4830:134:3::b    2001:host             TCP      86     80→65387 [ACK] Seq=1 Ack=162 Win=29696 Len=0 TSval=618195600 TSecr=1
   4606 3.835541       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=1429 Ack=162 Win=29696 Len=1428 TSval=618195600 TSecr=1
   4607 3.835954       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#7] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=2857
   4608 3.836802       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=2857 Ack=162 Win=29696 Len=1428 TSval=618195601 TSecr=1
   4609 3.837214       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#8] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=4285
   4610 3.838050       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=4285 Ack=162 Win=29696 Len=1428 TSval=618195601 TSecr=1
   4611 3.838461       2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 4247#9] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=1429 SRE=5713
   4612 3.840489       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=7141 Ack=162 Win=29696 Len=1428 TSval=618195601 TSecr=1
   4613 3.840901       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#10] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=8569 SLE=1429 SRE=5713
   4614 3.841743       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=8569 Ack=162 Win=29696 Len=1428 TSval=618195601 TSecr=1
   4615 3.842155       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#11] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=9997 SLE=1429 SRE=5713
   4616 3.843117       2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=9997 Ack=162 Win=29696 Len=1428 TSval=618195601 TSecr=1
   4617 3.843529       2001:host             2001:4830:134:3::b    TCP      106    [TCP Dup ACK 4247#12] 65387→80 [ACK] Seq=162 Ack=1 Win=33120 Len=0 TSval=1 TSecr=618195600 SLE=7141 SRE=11425 SLE=1429 SRE=5713
   9562 11.004783      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=1 Ack=162 Win=29696 Len=1428 TSval=618197400 TSecr=1
   9563 11.005189      2001:host             2001:4830:134:3::b    TCP      98     65387→80 [ACK] Seq=162 Ack=5713 Win=27408 Len=0 TSval=15 TSecr=618197400 SLE=7141 SRE=11425
   9564 11.005189      2001:host             2001:4830:134:3::b    TCP      98     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=5713 Win=33120 Len=0 TSval=15 TSecr=618197400 SLE=7141 SRE=11425
   9568 11.004766      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Spurious Retransmission] [TCP segment of a reassembled PDU]
   9569 11.005196      2001:host             2001:4830:134:3::b    TCP      98     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=5713 Win=27408 Len=0 TSval=15 TSecr=618197400 SLE=7141 SRE=11425
   9570 11.005203      2001:host             2001:4830:134:3::b    TCP      98     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=5713 Win=33120 Len=0 TSval=15 TSecr=618197400 SLE=7141 SRE=11425
  12765 14.379952      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=5713 Ack=162 Win=29696 Len=1428 TSval=618198244 TSecr=15
  12766 14.380357      2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=162 Ack=11425 Win=27408 Len=0 TSval=22 TSecr=618198244
  12767 14.380357      2001:host             2001:4830:134:3::b    TCP      86     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=11425 Win=33120 Len=0 TSval=22 TSecr=618198244
  12781 14.379940      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Spurious Retransmission] [TCP segment of a reassembled PDU]
  12782 14.380363      2001:host             2001:4830:134:3::b    TCP      86     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=11425 Win=27408 Len=0 TSval=22 TSecr=618198244
  12783 14.380369      2001:host             2001:4830:134:3::b    TCP      86     [TCP Window Update] 65387→80 [ACK] Seq=162 Ack=11425 Win=33120 Len=0 TSval=22 TSecr=618198244
  14760 17.737318      2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
  14873 17.737327      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=11425 Ack=162 Win=29696 Len=1428 TSval=618199081 TSecr=22
  15109 17.934936      2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=162 Ack=12853 Win=33120 Len=0 TSval=29 TSecr=618199081
  15293 17.934947      2001:host             2001:4830:134:3::b    TCP      86     [TCP Dup ACK 15109#1] 65387→80 [ACK] Seq=162 Ack=12853 Win=33120 Len=0 TSval=29 TSecr=618199081
  21352 25.331297      2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
  21353 25.331306      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=12853 Ack=162 Win=29696 Len=1428 TSval=618200982 TSecr=29
  21354 25.528232      2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=162 Ack=14281 Win=33120 Len=0 TSval=45 TSecr=618200982
  21355 25.528214      2001:host             2001:4830:134:3::b    TCP      86     [TCP Dup ACK 21354#1] 65387→80 [ACK] Seq=162 Ack=14281 Win=33120 Len=0 TSval=45 TSecr=618200982
  24469 29.382995      2001:4830:134:3::b    2001:host             TCP      1514   [TCP segment of a reassembled PDU]
  24616 29.382986      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=14281 Ack=162 Win=29696 Len=1428 TSval=618201982 TSecr=45
  24853 29.580263      2001:host             2001:4830:134:3::b    TCP      86     65387→80 [ACK] Seq=162 Ack=15709 Win=33120 Len=0 TSval=53 TSecr=618201982
  24983 29.580254      2001:host             2001:4830:134:3::b    TCP      86     [TCP Dup ACK 24853#1] 65387→80 [ACK] Seq=162 Ack=15709 Win=33120 Len=0 TSval=53 TSecr=618201982
  24990 29.705295      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Previous segment not captured] [TCP segment of a reassembled PDU]
  24991 29.705701      2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 24853#2] 65387→80 [ACK] Seq=162 Ack=15709 Win=33120 Len=0 TSval=53 TSecr=618201982 SLE=38557 SRE=39985
  24992 29.705289      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=38557 Ack=162 Win=29696 Len=1428 TSval=618202075 TSecr=53
  24993 29.705705      2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 24853#3] 65387→80 [ACK] Seq=162 Ack=15709 Win=33120 Len=0 TSval=53 TSecr=618201982 SLE=38557 SRE=39985
  29872 34.326306      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [PSH, ACK] Seq=15709 Ack=162 Win=29696 Len=1428 TSval=618203222 TSecr=53
  29873 34.326725      2001:host             2001:4830:134:3::b    TCP      98     65387→80 [ACK] Seq=162 Ack=17137 Win=31688 Len=0 TSval=62 TSecr=618203222 SLE=38557 SRE=39985
  29969 34.326314      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Spurious Retransmission] [TCP segment of a reassembled PDU]
  29970 34.326720      2001:host             2001:4830:134:3::b    TCP      98     [TCP Dup ACK 29873#1] 65387→80 [ACK] Seq=162 Ack=17137 Win=31688 Len=0 TSval=62 TSecr=618203222 SLE=38557 SRE=39985
  29988 34.801493      2001:host             2001:4830:134:3::b    TCP      98     65387→80 [FIN, ACK] Seq=162 Ack=17137 Win=33120 Len=0 TSval=63 TSecr=618203222 SLE=38557 SRE=39985
  29989 34.801483      2001:host             2001:4830:134:3::b    TCP      98     [TCP Spurious Retransmission] 65387→80 [FIN, ACK] Seq=162 Ack=17137 Win=33120 Len=0 TSval=63 TSecr=618203222 SLE=38557 SRE=39985
  30069 35.796319      2001:host             2001:4830:134:3::b    TCP      98     [TCP Spurious Retransmission] 65387→80 [FIN, ACK] Seq=162 Ack=17137 Win=33120 Len=0 TSval=65 TSecr=618203222 SLE=38557 SRE=39985
  30096 35.796313      2001:host             2001:4830:134:3::b    TCP      98     [TCP Spurious Retransmission] 65387→80 [FIN, ACK] Seq=162 Ack=17137 Win=33120 Len=0 TSval=65 TSecr=618203222 SLE=38557 SRE=39985
  31333 36.389558      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=17137 Ack=163 Win=29696 Len=1428 TSval=618203734 TSecr=65
  31334 36.389963      2001:host             2001:4830:134:3::b    TCP      74     65387→80 [RST] Seq=163 Win=0 Len=0
  31456 36.389551      2001:4830:134:3::b    2001:host             TCP      1514   [TCP Retransmission] 80→65387 [ACK] Seq=17137 Ack=163 Win=29696 Len=1428 TSval=618203734 TSecr=65
  31457 36.389968      2001:host             2001:4830:134:3::b    TCP      74     65387→80 [RST] Seq=163 Win=0 Len=0


Home | Main Index | Thread Index | Old Index