Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-users: [Wireshark-users] is it Nagle?

From: Omar Balbuena <omar.canopus@xxxxxxxxxxxx>
Date: Fri, 20 Jul 2007 11:42:23 -0300
Hello!

I have sniffed the communication between a PLC and a software I am maintaining. We're introducing TCP/IP communication. There is an unexplained, unacceptable delay of about 0,35 seconds between every ACK and SEND here. See messages 4 and 5, or 8 and 9:
http://balbuena.com.br/aae/2007/undesired-delay.pcap
http://balbuena.com.br/aae/2007/undesired-delay.png

I am absolutely sure this has nothing to do with software processing, because such thing never happened with serial ports and modem communication using the exact same layers. After some research, I've discovered it seems to be the Nagle Algorithm that's slowing me down, and I've added the proper lines of code and it seems to have no effect. But this looks like absolutely anything but Delayed Ack.

My question is:
Is it really Nagle?
If it is, do any of you have any example of some complete Winsock2 application that manages to disable it?
If it's not, what is it and how do I disable it in Winsock2?
How could I switch to Delayed Ack using Winsock2?
*OR* Is there a better alternative than Winsock2 for developing a TCP/IP layer for a small message protocol into a Windows C++ non-MFC DLL?

--
Omar M. Balbuena N.
Canopus Inform�tica Ltda
Porto Alegre - RS - Brasil
+55 51 33622404
http://www.canopusonline.com/