
On 1/17/25 14:29, William Herrin wrote:
Well... In theory, TCP closes the segment at the end of the application's send() and sets the PSH flag. Likewise, on the receiving side the recv() returns before filling the buffer upon receipt of a segment with the PSH flag set.
Every segment this thing sends has PSH set which again makes me think that they've got TCP_NODELAY set but are sending their messages piecemeal across multiple send/write calls. The actual high-level messages are fairly small at typically less than 100B. Most implementations end up sending the entire message in a single TCP segment.
In theory. In practice, it doesn't always work out that way and applications which depend on a short recv() meaning that was where the sender's send() ended tend to flake out in unexpected ways.
I don't think that's the issue in this case, but it's a useful thing to go looking for. -- Brandon Martin