La perdita di pacchetti durante la stretta di mano TCP

Devo implementare una stretta di mano pseudo TCP che port in un trasferimento di file. Non ho alcun problema a fare il trasferimento di file: semplicemente submit-conferma. Quello che non posso avvolgere la testa è come fare la stretta di mano a tre vie assumendo che ci sarà la perdita di pacchetti durante uno dei tre passaggi.

Ad esempio: Il mio client invia un pacchetto SYN. Se si esaurisce (perdita di pacchetti o solo lento) in attesa di SYN-ACK, lo ristabilisce. Il server invia SYN-ACK. Se si ritarda in attesa di ACK, ristabilire SYN-ACK. Ora come il cliente ora che il suo ACK è stato ricevuto?

  • Come esporre una socket di dominio UNIX direttamente su TCP
  • Perché non è abilitato per impostazione predefinita net.ipv4.tcp_rfc1337?
  • Scoprire la dimensione del segmento TCP Initial Window in Linux
  • C'è un modo per vedere cosa effettivamente filtra la comunicazione di port TCP?
  • Risoluzione dei problemi relativi alle velocità di networking - La vecchia richiesta di età
  • Quali pro e contro di FTP vs SSH per i trasferimenti di file?
  • One Solution collect form web for “La perdita di pacchetti durante la stretta di mano TCP”

    Il cliente non sa che il suo ACK è stato ricevuto, ma perché si preoccupa? La connessione viene stabilita se l'ACK viene ricevuto o no. Non saprai mai che l'ultimo pacchetto inviato fosse stato ricevuto, quindi devi progettare un protocollo che non lo richiede.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.