Resposta do servidor no handshake de 3 vias do TCP

1

Um servidor normalmente responde com o SYN ACK em um handshake de 3 vias.

O que aconteceria se respondesse apenas com o ACK?

    
por tony_sid 07.04.2011 / 08:21

1 resposta

2

O cliente irá esperar por um pacote SYN, depois de algum tempo ele irá expirar.

O RFC relevante é o link

The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion. To deal with this, a special control message, reset, has been devised. If the receiving TCP is in a non-synchronized state (i.e., SYN-SENT, SYN-RECEIVED), it returns to LISTEN on receiving an acceptable reset. If the TCP is in one of the synchronized states (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT), it aborts the connection and informs its user. We discuss this latter case under "half-open" connections below.

O RFC permite o ACK e o SYN separados pelo servidor, mas observa que eles podem ser combinados em um único pacote. Na prática, acredito que todas as implementações comuns combinam o servidor SYN e o ACK.

...

Stevens † tem um diagrama de transição de estado. Isso sugere que o cliente atingirá o tempo limite para um estado FECHADO e, presumivelmente, tentará estabelecer a conexão novamente.

Se uma das extremidades receber pacotes de dados antes de chegarem ao estado ESTABLISHED da conexão, eles estarão em SYN_SENT ou SYN_RCVD, respectivamente, e enviarão um reset (RST) e (eu acho) para um estado CLOSED ou LISTEN.

† ISBN 0-201--63346-9

    
por 07.04.2011 / 11:05