<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The last part explains why my download still succeded until half the size<br>
of the file. But no sending any reply (because the message is too little<br>
to send) is a failure of interactivity on the protocol, not of message<br>
boundaries (which specify that the reply is 4 byte in length).<br></blockquote><div><br></div></div><div dir="ltr"><div class="gmail_quote"><div>TCP with Nagle algorithm enabled will not hold data infinitely. In fact, it only waits for a few tenths of a second, hoping there would be more data to send. If not, whatever it has is sent away.</div><div>What your dumps show is a window announcement of size 0, which means there was a lot of data successfully received by TCP stack, but never read from socket, and this happens in both directions. You may want to check why you processes stop issuing read/recv calls.</div></div></div></div>