lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] http client causes server to stop sending data


From: Chris Frost
Subject: [lwip-users] http client causes server to stop sending data
Date: Sat, 8 Jan 2005 10:57:17 -0800
User-agent: Mutt/1.3.28i

I was wondering if anyone had a thought on why an http client I've written
running on top of lwip (v1.1.0 over slip) causes the http server to stop
sending data after receiving ~5-30kB.

I've also written an http server, I've not had any problems with it sending
4MB files. Perhaps the problem is in sending vs recving?

Using tcpdump on the other side of lwip's slip interface, the tcp connection
looks like this: The lwip-based client connects to the server, they connect.
They client sends a request, the server acks, and begins responding with
the http headers and content. I'm not very experience with tcp, but now I'll
try to mention what looks interesting in what follows in the connection.
For the first second or so, the client only acks once for every two server
packets. Then there is a 1-1 until ~packet 100 on a particular test (~11secs)
when the client begins sending ACKs more sporadically, groups of them
together. The client is also sending multiple copies of each ACK. Immediately,
the server then starts backing off its packet send rate, it never
recovers. This test was on a 100kB file, the client saw around 6kB downloaded.

Smaller files (up to 30kB, I've seen) download without issue.

A few additional things in case they are relevant. This slip interface
is pretty slow, the os is running inside an emulator. I had corrupted
packet problems earlier, that I solved by compiling with optimizations,
lowering the serial connection speed [to 9600], and increasing
PBUF_POOL_BUFSIZE [to 2000]. Fwiw, pinging lwip gives time = 250ms and
about a 15% packet loss. However, the http server sends large amounts of
data without problem, so this may not be a problem anymore.
Also, most of the lwip options I'm using are the same as the contrib unix
port's in its lwipopts.h.

In case what I've said above could be more precise, I've also attached
the [gzipped] tcpdump.


thanks so much for any thoughts!
-- 
Chris Frost  |  <http://www.frostnet.net/chris/>
-------------+----------------------------------
Public PGP Key:
   Email address@hidden with the subject "retrieve pgp key"
   or visit <http://www.frostnet.net/chris/about/pgp_key.phtml>

Attachment: p.tcpdump.gz
Description: Text document


reply via email to

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