I have an application that sends 100 of 186-byte (excluding headers) TCP messages back to back without gap from host A to host B.
I ran tcpdump to capture the packets on host A (where the sender is), and I noticed that after few messages (like 9), then the next ~25 messages got merged into one 5+K message.
I have already turned off Nagle's algorithm through setsockopt() in the sender application, and the calculated TCP windows is over 14K byte all the time. Hence, it doesn't seem like the first 9 messages filled up host B and host B asked host A to slow down.
Any tips on how to figure out why the TCP messages got merged?