Operating System - HP-UX
1834499 Members
2393 Online
110068 Solutions
New Discussion

HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

 
SOLVED
Go to solution
Antonio Cardoso_1
Trusted Contributor

HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

Hi all,
Looking at some ethereal traces, I see that empty ACK messages are sent to some (not all) received segments of long (> MTU) messages.
Does anyone here know how these messages are triggered:
- after some timer expires, if no response was sent to carry the ACK flag?
- after some amount of data is received ?

I've been searching in ndd's TCP parameters, but found nothing relevant.

thanks.
antonio.
7 REPLIES 7
Steven E. Protter
Exalted Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

Shalom Antonio,

Can you share a sample of the ethereal trace? It would be helpful.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Antonio Cardoso_1
Trusted Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

OK, here attached is a short sample.

In this sample 10.4.128.42 is a HP-UX box, we find:
- frames 1,2 are 2 first segments of a corba request (last segment is frame4) frame 3 : ACK for frames 1,2 sent by 10.4.128.42
=> what triggers the frame 3 tp be sent?

- frames 7,8,9 are 3 segments of 1 corba request, frame 10 (empty) ACKs frame 7, frame 11 (application response) ACKs frames 8,9

- ...

I'd like to understand what conditions cause empty ACKs to be or not be sent.

thanks,
antonio.
rick jones
Honored Contributor
Solution

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

In broad handwaving terms, a "standalone" or "bare" ACK will be send by the receiver when one or more of the following happens:

1) The arriving segment is "out of order" - this triggers an immediate ACK to say which sequence number was expected.

2) It is time to send a window update because the receiving application has consumed enough data from the socket to warrant a window update

3) The standalone ACK timer has expired (tcp_deferred_ack_interval, IIRC)

4) (HP-UX specific) we have received tcp_deferred_ack_max segments in a row

Is there a specific situation you are trying to debug, or are you merely curious?

there is no rest for the wicked yet the virtuous have no pillows
Antonio Cardoso_1
Trusted Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

rick,

Thanks for your answers, it helps my understanding.
The question was raised in the context of debugging an interworking issue with another system, but the HP-UX box is not suspected.
Antonio Cardoso_1
Trusted Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

Rick,
the tcp_deferred_ack_max is definedas "Upper limit on the number of bytes of data (measured in MSS) that can be received without sending an an ACK. [2-32] Default: 22 MSS"

=> what is MSS ? is it the value of tcp_mss_def parameter?

thanks again.
rick jones
Honored Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

MSS - Maximum Segment Size - exchanged in each direction on the SYNchronize segments that establish a TCP connection. What each side sends will be based on their link-local MTU (Maximum Transmission Unit), and whether or not Path MTU discovery is being used.

If not MSS option appears in a SYN segment, 536 bytes is to be ass-u-med.
there is no rest for the wicked yet the virtuous have no pillows
Antonio Cardoso_1
Trusted Contributor

Re: HP-UX 11iV1 - TCP-IP : how is ACK sending triggered on received segments?

OK, it's all clear now,
I appreciate quality of responses,
thanks Rick.