lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Significant overhead periodically during TCP receive tr


From: Bob McConnell
Subject: Re: [lwip-users] Significant overhead periodically during TCP receive transfers
Date: Thu, 09 Oct 2008 07:17:30 -0400
User-agent: Thunderbird 2.0.0.4 (X11/20070604)

Kieran Mansley wrote:
On Wed, 2008-10-08 at 16:03 -0400, bill wrote:
That truly is weird.  If you can get a packet capture from just before
the failure, I'd be happy to take a look.
I don't know if the text version I sent helped, but I know a lot more now.

What I see in the packet capture that causes the problem is that the PC
broadcasts an ARP "who has", 50uS later lwIP sends a response packet to the
PC. 4uS after that the PC sends 1460 bytes to lwIP, but the sequence number
is 13140 bytes *ahead* (9 * 1460) of the expect number.  It looks like the
PC has dropped 9 packets while it was doing its ARP query.  Unless WireShark
missed these packets (doubtful).

If I change the PC's ARP table to make the lwIP device static, this problem
disappears!

It sounds like you've got to the bottom of your problem, but why the ARP
table should need refreshing when packets are being transmitted, and why
the existing entry shouldn't be used while it's waiting to hear the
answer is rather odd.  I wonder if you have two things with the same IP
address on the network, and the PC is getting confused about which MAC
address to use?

Most systems send periodic ARP requests, whether there is constant traffic over an open socket or just periodic keep-alive exchanges. Don't ask me why, but I have seen it in Wireshark traces from various versions of MS-Windows, Linux and FreeBSD. The only question here is why does the sender drop those nine extents? That sounds like a bug in their TCP/IP stack.

Bob McConnell
N2SPP




reply via email to

[Prev in Thread] Current Thread [Next in Thread]