From owner-freebsd-stable Wed Mar 20 2:28:51 2002 Delivered-To: freebsd-stable@freebsd.org Received: from ns.itga.com.au (ns.itga.com.au [202.53.40.210]) by hub.freebsd.org (Postfix) with ESMTP id 8F07837B400 for ; Wed, 20 Mar 2002 02:28:44 -0800 (PST) Received: from lightning.itga.com.au (lightning.itga.com.au [192.168.71.20]) by ns.itga.com.au (8.9.3/8.9.3) with ESMTP id VAA49598; Wed, 20 Mar 2002 21:28:34 +1100 (EST) (envelope-from gnb@itga.com.au) Received: from lightning.itga.com.au (localhost [127.0.0.1]) by lightning.itga.com.au (8.9.3/8.9.3) with ESMTP id VAA28355; Wed, 20 Mar 2002 21:28:33 +1100 (EST) Message-Id: <200203201028.VAA28355@lightning.itga.com.au> From: Gregory Bond To: Aaron Baugher Cc: freebsd-stable@FreeBSD.ORG, gnb@itga.com.au Subject: Re: Network stalls with 4.5 In-reply-to: Your message of 19 Mar 2002 12:19:44 -0600. Date: Wed, 20 Mar 2002 21:28:33 +1100 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG At this point, your server has sent 33324 btyes. > 09:41:22.371874 55.66.77.88.22 > 11.22.33.44.4257: P 33324:33472(148) ack 161 > win 65535 [tos 0x10] > 09:41:23.371716 55.66.77.88.22 > 11.22.33.44.4257: P 33324:33472(148) ack 161 > win 65535 [tos 0x10] OK, the server tried to send another 148 bytes starting at byte #33324. After a second, it sent it again because your client didn't reply. > 09:41:24.381831 55.66.77.88.22 > 11.22.33.44.4257: P 33472:33628(156) ack 161 > win 65535 [tos 0x10] > 09:41:24.629822 11.22.33.44.4257 > 55.66.77.88.22: . ack 33324 win 51360 (DF) > [tos 0x10] A second later the server application sends another 156 bytes, and your client replies saying its received only the first 33324 bytes. > 09:41:25.371763 55.66.77.88.22 > 11.22.33.44.4257: P 33324:33628(304) ack 161 > win 65535 [tos 0x10] Now the server has 2 bunchs of data to send, and is trying to send them both at once. > Now here's the same number (33324) as the doubled packet above, but > with a different second number and size. (This is a misunderstanding - the : are sequence numbers of bytes being sent in this packet.) > 09:41:26.391896 55.66.77.88.22 > 11.22.33.44.4257: P 33628:33744(116) ack 161 > win 65535 [tos 0x10] Yet more data from the application. > 09:41:26.630980 11.22.33.44.4257 > 55.66.77.88.22: . ack 33324 win 51360 (DF) > [tos 0x10] Still your client is saying they haven't seen anything past byte 33324 [snip more of the same] > 09:41:35.147334 11.22.33.44.4257 > 55.66.77.88.22: . ack 34336 win 51360 (DF) > [tos 0x10] Finally! your application says, they recieved all the bytes up to 34336. AFAICT the problem is either in your client or the network between the two. The server seems to be doing everything right, but the client is either not getting the data packets or ignoring them for some reason. The net can't be totally down as we are seeing the occational ack packet back from the client. Someone with more experience on TCP internals might speculate on why the client was sending the acks at all, and what this tells us about the problem. (hmmm, I suppose it could be a CRC calculation error at the server that would cause it to send bogus checksums with some particular set of packet contents, but in that case I would expect the checksum to be OK and transfers to continue once the second load of data was added to the outgoing packets.) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message