Cerca nel blog

venerdì 20 marzo 2015

IL PROTOCOLLO TCP E GLI STATI DELLA SUA CONNESSIONE

IL PROTOCOLLO TCP:
Il TCP fornisce un servizio byte-stream. Questo termine indica che i dati per i livelli superiori vengono presentati e ricevuti come un unico flusso di byte, e non come pacchetti. TCP, e non i protocolli superiori, si occupano di preparare i pacchetti, avendo una chiara la distinzione dei ruoli: SMTP, pensa a preparare il messaggio di posta, TCP pensa a come deve inviarlo. Un pacchetto TCP è detto segmento.
Essenzialmente i compiti di TCP sono:
  • suddividere i dati da spedire in tanti segmenti indipendenti e numerati.
  • assembla i dati arrivati all’altro capo, presentandoli nuovamente come un flusso di byte.
  • rispedire i datagrammi non arrivati o arrivati corrotti.
  • rimetterli nel giusto ordine se alcuni di essi non hanno “rispettato il turno”.
  • controllare il flusso attraverso il meccanismo delle finestre e dell’acknowledgement (usato per segnalare di avere ricevuto tutti i dati fino al numero di byte specificato meno uno, e dovrebbe essere uguale al valore del prossimo Sequence number che sarà ricevuto)



GLI STATI DI CONNESSIONE DEL PROTOCOLLO TCP:

Una sessione TCP può essere in diversi stati:


  • LISTEN: in attesa che qualcuno richieda una connessione
  • SYN-SENT: durante la creazione di una connessione, indica che è stato inviato un segmento con flag SYN attivo e si sta aspettando il segmento di risposta (quello con i flag SYN/ACK).
  • SYN-RECEIVED: durante la creazione di una connessione, indica che è stato ricevuto un segmento SYN, è stato inviato in risposta il SYN/ACK e che ora si sta attendendo l’ACK che completa l’handshake.
  • ESTABLISHED: stato raggiunto dopo che l’handshake è stato completato con successo. La connessione è ora aperta e si possono trasferire dati.
  • FIN-WAIT1: in attesa di una richiesta di terminazione della sessione da parte del computer remoto o di un acknowledgement della richiesta di terminazione della connessione precedentemente stabilita.
  • FIN-WAIT2: in attesa di una richiesta di terminazione della sessione da parte del computer remoto.
  • CLOSE-WAIT: in attesa di una richiesta di terminazione della sessione da parte del computer locale.
  • CLOSING: in attesa dell’acknowledgement alla richiesta di terminazione da parte del computer remoto.
  • LAST-ACK: in attesa dell’acknowledgement della richiesta di terminazione della connessione che è stata precedentemente inviata al computer remoto, include un acknowledgement della sua richiesta di terminazione della connessione
  • TIME-WAIT: in attesa che passi abbastanza tempo in modo da essere sicuri che il computer abbia ricevuto l’acknowledgement della sua richiesta di terminazione della connessione.
  • CLOSED: quando la connessione è del tutto terminata.




Nessun commento:

Posta un commento