lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Delayed Ack causing problems? Where to call tcp_nagle_d


From: Felipe de Andrade Neves L.
Subject: Re: [lwip-users] Delayed Ack causing problems? Where to call tcp_nagle_disable()?
Date: Sat, 6 Aug 2011 20:40:30 -0300

Richard, excellent information you've provided. 

May I ask something, how came the Nagle's algorithm has caused the problem, as it is suppose to group small data until receive the next ack, but the JPG has lots of pending data to be sent and the algorithm shouldn't retain it.

Thanks
Felipe

2011/8/6 FreeRTOS Info <address@hidden>
I think I have answered my own question.  I put it before these lines,
and everything is fine now.

 /* Tell TCP that this is the structure we wish to be passed for our
    callbacks. */
 tcp_nagle_disable(pcb);//<<<<<<<<<<<<<<<<Added line
 tcp_arg(pcb, hs);

 /* Set up the various callback functions */
 tcp_recv(pcb, http_recv);
 tcp_err(pcb, http_err);
 tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL);
 tcp_sent(pcb, http_sent);


Regards,
Richard.

+ http://www.FreeRTOS.org
Designed for Microcontrollers.
More than 7000 downloads per month.




On 06/08/2011 18:12, FreeRTOS Info wrote:
> Hi,
>
> lwIP V1.4.0.
>
> I have moved the demo FreeRTOS example from the Windoze simulator onto
> real hardware in order to check the timing behaviour (which can't really
> be done in the simulator), and found a timing problem.
>
> Using an umodified raw http server from the contrib distribution, I am
> attempting to retrieve a large jpg file (approx 37K).  The file is
> retrieved in tact, but very slowly.  I am using a point to point connection.
>
> Taking a Wireshark log I see that data is only being sent by lwIP  after
> an ACK from Windows.  I have attached the log for good measure.
> 192.168.0.200 is the lwIP end.
>
> I have considered three things to fix this.  First I have set
> TCP_SND_QUEUELEN to (8 * TCP_SND_BUF/TCP_MSS), but that made no
> difference.  Second I considered the calls to tcp_output() after
> tcp_write() to make sure data is actually going out immediately, but
> don't think that is the issue as I'm using an unmodified HTTP server
> from the contrib distribution.
>
> Finally, I want to try disabling the nagle algorithm, and see this can
> be done by calling tcp_nagle_disable(), but I am unsure where and how to
> do this?  I don't want to modify the core lwIP code, so assume it should
> be in the http server code.  It is using the raw API version, so it is
> not obvious how or where to do to call the macro correctly.
>
> I would be grateful for advise or an example.  Thanks.
>
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> Designed for Microcontrollers.
> More than 7000 downloads per month.
>
>
>
>
>
>
> _______________________________________________
> lwip-users mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/lwip-users

_______________________________________________
lwip-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/lwip-users


reply via email to

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