Perda de pacotes durante o handshake TCP

3

Eu tenho que implementar um handshake pseudo-TCP que leva a uma transferência de arquivos. Não tenho nenhum problema em fazer a transferência de arquivos: simples reconhecimento de envio. O que não consigo entender é como fazer o handshake de três vias, assumindo que haverá perda de pacotes durante uma das três etapas.

Por exemplo: Meu cliente envia um pacote SYN. Se expirar (perda de pacotes ou apenas devagar) esperando pelo SYN-ACK, ele reenvia-lo. O servidor envia SYN-ACK. Se o tempo limite de espera pelo ACK, reenvie o SYN-ACK. Agora como o cliente agora que seu ACK foi recebido?

    
por user111658 23.02.2012 / 04:58

1 resposta

4

O cliente não sabe que seu ACK foi recebido, mas por que ele se importa? A conexão é estabelecida se o ACK é recebido ou não. Você nunca saberá com certeza que o último pacote enviado foi recebido, então você deve criar um protocolo que não exija isso.

    
por 23.02.2012 / 05:32