[Haskell-cafe] network package and SIGVTALRM
wangbj at gmail.com
Wed Jul 13 18:42:54 UTC 2016
Suppose TCP_NODELAY sock opt can prevent Nagle join small packets?
On Wed, Jul 13, 2016 at 11:10 AM Andrey Sverdlichenko <blaze at ruddy.ru>
> On Wed, Jul 13, 2016 at 3:14 AM Ruben Astudillo <ruben.astud at gmail.com>
>> Right on the nail. I played a bit with tcpdump/wireshark to see I was
>> just sending 0 length ACKs and multiple 4 byte messages joined on a
>> single packet. Seems TCP buffers tiny packets using a strategy called
>> Nagle's algorithm and thus joined all my packets on a bufferzone until a
>> threeshold. Then it sent them all at once, making the other end crazy.
> This looks a bit scary. It should not matter if replies are merged or not.
> By any chance, don't your code use recv with some large max buffer size,
> but expect to get only 4 bytes because this is how much receiver sends each
> time? If so, change it to read 4 bytes only, and handle the case when less
> than 4 bytes are out. TCP do not preserve message boundaries and you can
> expect reads to return data in arbitrary sized chunks.
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe