Ethereal-users: Re: [Ethereal-users] Help with the Rules of TCP/IP

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxx>
Date: Tue, 10 Jan 2006 00:51:43 -0800
andy@xxxxxxxxxxxxxxxxx wrote:

Is it Legal to send a TCP segment with the ACK flag set and data in the payload.

As others have said, yes. That's called "piggybacked ACK" - the system sending the ACK also has data to send, so it sends the ACK with the data.

In fact, RFC 793 says that, once a connection is established, *all* packets will have ACK set:

  Acknowledgment Number:  32 bits

    If the ACK control bit is set this field contains the value of the
    next sequence number the sender of the segment is expecting to
    receive.  Once a connection is established this is always sent.

I have a malfunctioning application and when it fails I see a continuos TCP
retransmission (5 attempts) of a packet

Somehow either the machine to which that packet is being sent isn't receiving it (so it's not ACKing it), or the ACK it's sending isn't being received.