Getting around delayed ack problem

Hi,

I have an application that sends data via BSD TCP sockets every 50ms to some software on the PC.
The problem is, windows uses delayed ack - msdn.microsoft.com/.../aa505957.aspx
which means that it waits 200ms before sending an ack back to my device to improve efficiency of the network.
Seems like the only way to turn it off is to change the registry, which I don't really want to do.
Sending data at a rate of 200ms per frame is really bad for this application, does anyone know a way to get around this in TcpNet?

I read on the forum somewhere that the Keil HTTP server does it by sending out a second frame containing a few bytes. With BSD sockets you can only send out one frame at a time, and will not send anything else till that frame has been acked.

Any ideas?

Thanks

Parents
  • I have no direct answer or suggestion for what you're wanting but you say:

    "With BSD sockets you can only send out one frame at a time, and will not send anything else till that frame has been acked."

    As far as I am aware, this is not a limit of the BSD socket but rather the way the lower levels of the protocol stack operate. I have not used BSD sockets with TCPnet myself, I have used raw TCP connections. With these, the sequence is certainly send packet and wait for ack before attempting to send the next.

    To see how it all goes together, you can look at:

    www.keil.com/.../rlarm_tn_using_tcpsoc_example.htm

Reply
  • I have no direct answer or suggestion for what you're wanting but you say:

    "With BSD sockets you can only send out one frame at a time, and will not send anything else till that frame has been acked."

    As far as I am aware, this is not a limit of the BSD socket but rather the way the lower levels of the protocol stack operate. I have not used BSD sockets with TCPnet myself, I have used raw TCP connections. With these, the sequence is certainly send packet and wait for ack before attempting to send the next.

    To see how it all goes together, you can look at:

    www.keil.com/.../rlarm_tn_using_tcpsoc_example.htm

Children
More questions in this forum