We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
we are sending data using method www.keil.com/.../rlarm_tn_using_tcpsoc_example.htm
however, the ping delay between the server and client is more than 1500ms (VPN over slow GPRS) the data transfer using the method above is ~0.5kB/s
We tested the build it http server with 74kB file, it has same problem as our TCP socket communication (~0.5kB/s)
We tested PC-PC interconnected over the same GPRS VPN and we reached 2.5kB/s which is the reasonable limit for GPRS.
Is it possible to send more than one packed and wait ACK for each of it ? E.g. we would allocate N (eg. 10) buffers, tcp_send all buffer and then wait for ACK per each buffer.
Or could you suggest any other method to send data over high latency network using TCP ?
Thank you !
It appears that Keil's implementation of TCP allows only one unacknowledged packet 'in-flight.' This greatly simplifies TCP implementation, but obviously severely limits bandwidth on high-latency networks. There are more sophisticated TCP implementations around which don't have this limitation: commercial ones like Interniche and free/open-source ones like LWIP.