Server in SYN_RCVD state but ACK lost - TCP-IP

This is a discussion on Server in SYN_RCVD state but ACK lost - TCP-IP ; Hi, I have a simple question w.r.t the following scenario : 1. Client sends a SYN to the server. 2. Server responds back with SYN/ACK and goes to the SYN_RCVD state. 3. Client sends the ACK and goes to the ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: Server in SYN_RCVD state but ACK lost

  1. Server in SYN_RCVD state but ACK lost

    Hi,

    I have a simple question w.r.t the following scenario :

    1. Client sends a SYN to the server.
    2. Server responds back with SYN/ACK and goes to the SYN_RCVD state.
    3. Client sends the ACK and goes to the ESTABLISHED state.
    4. This ACK gets lost so the server is stuck in the SYN_RCVD state.

    What happens if the client now tries to send data packets to the server
    ?

    a) Does the server retransmit the SYN/ACK when it sees a data packet
    from the connection in SYN_RCVD state, so that the ACK can be
    retransmitted ?
    b) Or does it simply drop the data packet if the connection is not in
    the
    ESTABLISHED state ?

    Thanks
    --Deb


  2. Re: Server in SYN_RCVD state but ACK lost

    In article <1164681436.211832.260400@80g2000cwy.googlegroups.c om>,
    "debdut" wrote:

    > Hi,
    >
    > I have a simple question w.r.t the following scenario :
    >
    > 1. Client sends a SYN to the server.
    > 2. Server responds back with SYN/ACK and goes to the SYN_RCVD state.
    > 3. Client sends the ACK and goes to the ESTABLISHED state.
    > 4. This ACK gets lost so the server is stuck in the SYN_RCVD state.
    >
    > What happens if the client now tries to send data packets to the server
    > ?
    >
    > a) Does the server retransmit the SYN/ACK when it sees a data packet
    > from the connection in SYN_RCVD state, so that the ACK can be
    > retransmitted ?


    ACKs are cumulative. The data packet should contain the ACK of the
    SYN-ACK, so there's no need to retransmit anything.

    > b) Or does it simply drop the data packet if the connection is not in
    > the
    > ESTABLISHED state ?


    It shouldn't.

    --
    Barry Margolin, barmar@alum.mit.edu
    Arlington, MA
    *** PLEASE post questions in newsgroups, not directly to me ***
    *** PLEASE don't copy me on replies, I'll read them in the group ***

  3. Re: Server in SYN_RCVD state but ACK lost

    "debdut" writes:

    >I have a simple question w.r.t the following scenario :


    >1. Client sends a SYN to the server.
    >2. Server responds back with SYN/ACK and goes to the SYN_RCVD state.
    >3. Client sends the ACK and goes to the ESTABLISHED state.
    >4. This ACK gets lost so the server is stuck in the SYN_RCVD state.


    >What happens if the client now tries to send data packets to the server
    >?


    Two things can happen:
    - the server resends its SYN because the ACK was lost
    - the client send its data; but the data will *always* include
    the ACK for all data (including SYN) received from the server
    up to that point.

    >a) Does the server retransmit the SYN/ACK when it sees a data packet
    > from the connection in SYN_RCVD state, so that the ACK can be
    >retransmitted ?


    No, because the data received contains the ACK for the SYN

    >b) Or does it simply drop the data packet if the connection is not in
    >the
    > ESTABLISHED state ?


    It receives the ACK the connection goes in established state and it
    also accepts the data.

    Casper
    --
    Expressed in this posting are my opinions. They are in no way related
    to opinions held by my employer, Sun Microsystems.
    Statements on Sun products included here are not gospel and may
    be fiction rather than truth.

  4. Re: Server in SYN_RCVD state but ACK lost


    Barry Margolin wrote:

    > ACKs are cumulative. The data packet should contain the ACK of the
    > SYN-ACK, so there's no need to retransmit anything.


    This is the key thing to remember. All ACKs are cumulative, and the SYN
    is ACKed in the same way data is ACKed. (So if data can't be lost,
    neither can the SYN. If the ACK for data can't be lost, neither can the
    ACK for the SYN.)

    DS


+ Reply to Thread