Hi,
I'm currently using TCPnet on Ethernet in my app and I get decent speed in my LAN (650 Ko/s FTP reading on a SD card). We deployed recently the project with a intercontinental connection so we get high ping (about 300ms).
And now the speed is catastrophic !! (3-4 kB/s). After some (little) research I found why : TCPnet has to wait an ACK from the remote IP after every packet sending. So even with full packets of 1500 bytes , and with a 300ms of ping,TCPnet can send only 3 frames every second ....
Could it be possible to implement a TCPnet side sliding-window management in order to be able to send more than only one frame before getting an ACK ?
Hi, if you buy the source code it should be possible, to change this behavior. -> http://www.keil.com/rl-arm/
If your project requires TCPnet source code, this is available as a separate source code extension, Part Number:RL-ARM-S.
Thanks , but honestly I think it's a major modification in the source code , and I don't trust my dev level enough :) Maybe Keil has something in its roadmap for this point ? Because an Ethernet TCP link at 3.7KB/s it hurts ... ;-)
You should contact Keil direct about that!
Why not pick a different TCP/IP stack? Have a look at lwip. It does proper sliding window management among other things. And it's free. It's not very 'plug-and-play', though. But if you are lucky, you'll find a ready-made port for your architecture.
Thanks. I'm now looking for a lpc23xx port :)
I'd strongly urge you to contact Keil Support and report the problem. I recently reported a problem regarding POST data with the web server, and I've just been informed that a fix is now ready for the next release. So they are listening, and it's definitely worth giving feedback.