lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] Re: lwip-users Digest, Vol 88, Issue 15


From: Chen
Subject: [lwip-users] Re: lwip-users Digest, Vol 88, Issue 15
Date: Tue, 14 Dec 2010 10:12:26 -0500

Hi Kieran,

I may have to take back my accusation regarding "Requiring ACK for every two TCP packets "

Please see attachment smallerpacket_retransmit.pcap, it sends out three packets. So the problem may be in the tx buffer size.

Also attached is lwipopts.h, and I checked a few times, and believed I specify a decent tx buffer.

/* TCP sender buffer space (bytes). */
#define TCP_SND_BUF             30000

Maybe you can point out my mistake in the setting, or maybe there is an error in lwip that ignores such setting.

Thanks again for your time and help!

Regards,

Chen


>>>>>>>>>>>>>>>>>>>

Hi Kieran,

NonAVR retransmit after a specified amount of timeout (RTO) or transmit pool is near full. The reason you don't see any retransmission is because the time-out was set very high on purpose.

Requiring ACK for every two TCP packets is not good for high-speed communication:

Since the ACK can take a long time to come back if the final product is deployed over the internet. For example, if it takes 0.5 seconds for ACK to come back, which is shorter than RTO, then the maximum data rate is 2*1460*2, where the first 2 represents the two packets before the ACK, 1460 is the max payload, and the second 2 is max ACK within a second, and the result is only merely 5.8KB/sec

Could you reconsider my request? (not necessary the same as NonAVR, but something better than the current lwip)

Thanks!

Chen


On Fri, 2010-12-10 at 15:50 -0500, Chen wrote:
>
> Both cases were created by pulling the ethernet cable on the PC to
> demonstrate the retransmit mechanism, and Nagel is disabled in both
> cases.
>
> *** THERE IS NOTHING WRONG IN LWIP'S APPROACH ***, but there is room
> to improve: If the ack comes in slower than usual, the Non-lwip
> approach will keep the flow going and have no impact on the throughput
> rate.
>
> May I request such option in the future lwip?

I really don't like the NonAVR version.  What will cause it to start
retransmission?  It seems to have ignored the TCP retransmission timeout
and is just carrying on sending new data regardless.  I would be against
any change to make lwIP behave more like this.  I'm happy to see it
carry on sending data until the RTO fires, but after that we must assume
something is wrong and stop sending new data to retransmit old packets.

Kieran

Attachment: smallerpacket_retransmit.pcap
Description: Binary data

Attachment: lwipopts.h
Description: Text document


reply via email to

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