TCP recv timeout drop
Posted: Thu Aug 10, 2017 4:21 am
Hello,
I'm implementing a download system using TCP.
When I send small or medium files, there are no issues.
However, when I send large files that could take up to 60 seconds for the final download packet to reach the client, it quits receiving the data after so long.
I believe that TCP is recognizing the time it takes for the final half-ish packets to be sent and then received is a rather long amount of time, and quits trying to receive them.
The server shows that all bytes of the file are being sent, but the client shows that recv quits trying to receive the bytes after a period of time.
Is there some way I can make TCP not do this timeout, but rather continuously send?
I'm assuming a flag like this would conflict with other timeout methods in TCP, such as determining a disconnection.
I am trying to stray away from an ID-system where if the ID is not the last ID + 1, then request the packet again (ensuring there is no loss, since it is waiting for each individual ID), but speed is a big factor and I need all the available bytes I can get.
Thanks
I'm implementing a download system using TCP.
When I send small or medium files, there are no issues.
However, when I send large files that could take up to 60 seconds for the final download packet to reach the client, it quits receiving the data after so long.
I believe that TCP is recognizing the time it takes for the final half-ish packets to be sent and then received is a rather long amount of time, and quits trying to receive them.
The server shows that all bytes of the file are being sent, but the client shows that recv quits trying to receive the bytes after a period of time.
Is there some way I can make TCP not do this timeout, but rather continuously send?
I'm assuming a flag like this would conflict with other timeout methods in TCP, such as determining a disconnection.
I am trying to stray away from an ID-system where if the ID is not the last ID + 1, then request the packet again (ensuring there is no loss, since it is waiting for each individual ID), but speed is a big factor and I need all the available bytes I can get.
Thanks