Alain Mouette
2009-08-07 21:56:17 UTC
Hi, I am getting quite a lot of these in WireShark:
TCP [TCP Window Update]
0) I am using the socket interface :)
1) lwip sends a 15 byte packet to the server
2) the server responds an 11 byte packet, with ACK
3) lwip sends an ACK with a reduced window, from 2048 to 2037, delay is
between 5 and 66ms
4) lwip sends an extra ACK with the full window size, delay is around 250ms.
5) next packet is sent usualy many minutes later...
What I can understand that is happening is this: I take a little too
long to read the received data. I am using select to poll for data, with
1ms delay, but it is with FreeRTOS and so it might take a little longer
sometimes...
My question is: is there a way to delay that ack so that it only goes
after I read the data? Or store it somewhere (like buffers)?
This is to be with GPRS and I am getting over 20% extra trafic just for
that :(
Thanks,
Alain
TCP [TCP Window Update]
0) I am using the socket interface :)
1) lwip sends a 15 byte packet to the server
2) the server responds an 11 byte packet, with ACK
3) lwip sends an ACK with a reduced window, from 2048 to 2037, delay is
between 5 and 66ms
4) lwip sends an extra ACK with the full window size, delay is around 250ms.
5) next packet is sent usualy many minutes later...
What I can understand that is happening is this: I take a little too
long to read the received data. I am using select to poll for data, with
1ms delay, but it is with FreeRTOS and so it might take a little longer
sometimes...
My question is: is there a way to delay that ack so that it only goes
after I read the data? Or store it somewhere (like buffers)?
This is to be with GPRS and I am getting over 20% extra trafic just for
that :(
Thanks,
Alain