Manuali, links, fotografie e tanto altro
alla portata di un semplice click!
 
 Benvenuto Ospite
Manuali, immagini, fotografie e tanto altro a portata di un click

Cartoline virtuali

Cartolina n° 272



Sono presenti 1307 cartoline virtuali. Entra ora


Giochi online
Cone Crazy


1. poz: 760
2. ermesiti: 740
3. barone400: 730

Visualizza tutti i giochi.

News Reader















L'handshaking
.: Data Pubblicazione 28-Nov-2004 :: Letture:: 817 :: Recensione :: Stampa solo questa pagina :: Stampa pagina con tutte le sottopagine:.

L' handshaking è lo scambio di dati che avviene tra due protocolli TCP, uno trasmittente e l'altro ricevente.

Il protocollo TCP è il più utilizzato per gestire il trasporto dei dati in quanto ottimizza l'ampiezza di banda, si assicura che i pacchetti giungano a destinazione e che arrivino nella sequenza corretta, in modo che il computer ricevente possa ricostruire il file. Il modo in cui il TCP ottimizza il flusso è il seguente: il TCP ricevente comunica al TCP mittente di ridurre il flusso di dati quando la comunicazione è in eccesso (" overflow "). Il TCP si assicura che i dati giungano a destinazione attraverso una procedura detta "di acknowledgement ": il TCP ricevente verifica se è l'effettivo destinatario del pacchetto e se il pacchetto non è alterato. In caso affermativo il TCP ricevente invia un " messaggio ACK ", altrimenti invia il pacchetto sulla connessione meno impegnata alla ricerca del giusto destinatario; se invece il TCP ricevente è l'effettivo destinatario ma il datagram è alterato, invia al TCP trasmittente un "messaggio NAK" (" not-acknowledgement ") per farsi trasmettere nuovamente il pacchetto.

Il TCP trasferisce i dati utilizzando una " finestra di scorrimento ". Questa "finestra" è un contenitore di pacchetti, in cui il TCP ne mette tanti se la connessione è libera, meno se la connessione è impegnata. Il sistema agisce in questo modo: il TCP invia ad esempio 3 pacchetti e modifica la finestra mentre aspetta i messaggi di ACK. Non appena questi giungono, il TCP fa scorrere la finestra successiva lungo il flusso.

Il protocollo TCP divide i dati in unità -dette " pacchetti ", "messaggi TCP" o "segmenti TCP" e le invia al protocollo IP, il quale le struttura in " datagram " per trasmetterle sulla rete. Infatti i pacchetti sono proprio come segmenti di un flusso continuo di trasmissione, e come tali sono trattati dai programmi, che li ricevono uno dietro l'altro appunto in un flusso continuo, ignorando quindi la struttura a datagram dell'IP.

Esiste un modo di identificare i messaggi in base al mittente, al destinatario, all'ordine corretto di trasmissione, ecc. Ad esempio, il TCP ricevente deve sapere a chi è indirizzato il pacchetto e a chi eventualmente spedire il messaggio di ACK: tali dati sono indicati nell' intestazione del pacchetto (" header ").

Poste le premesse per capire il modo in cui due protocolli TCP comunicano, ecco in dettaglio come avviene una connessione TCP passo per passo:

1. Sul mio computer di casa (client) voglio inviare una e-mail al mio amico nome_amico@tin.it ; quindi il mio programma di posta richiede al livello di trasporto del mio server (io ho un server remoto, cioé quello del mio ISP, ad esempio IOL.it) una connessione TCP.

2. Il modulo TCP che risiede nel livello di trasporto di Tiscali invia, alla porta remota del computer destinatario, un messaggio TCP contenente nell'intestazione un "flag di sincronizzazione" (SYN) e un "numero di sequenza" a 32 bit. Il valore del numero di sequenza non è importante e serve solo identificare il TCP trasmittente.

3. Il TCP ricevente (il server TIN.it) invia un messagio TCP contenente il "flag ACK" e un "numero di ACK". Il numero di ACK specifica il suo numero di sequenza, in modo che i due TCP possano sincronizzarsi e comunicare in full-duplex , cioé contemporaneamente in entrambe le direzioni.

4. il server IOL.it (server trasmittente) comunica al mio computer (client trasmittente) un flag ACK e un messaggio di ACK contenente il numero di sequenza iniziale + 1.

5. A questo punto i due TCP sanno che possono attivare una comunicazione efficace e il mio programma può inviare l'e-mail.

L'intestazione TCP è il segmento con cui inizia ogni pacchetto ed é così composto:

< --- porta di origine (16 bit) I porta di destinazione (16 bit) I numero di sequenza (32 bit) I numero di ACK (32 bit) I lunghezza intestazione (4 bit) I riservati (6 bit) I URG (1 bit) I ACK (1 bit) I PSH (1 bit) I RST (1 bit) I SYN (1 bit) I FIN (1 bit) I dimensioni finestra (16 bit) I checksum TCP (16 bit) I puntatore urgente (16 bit) I opzioni (se presenti) I riempimento (se necessario) I area dati opzionale I

  • porta di origine : contiene il numero della porta di origine e l'indirizzo IP del mittente
  • porta di destinazione : contiene il numero della porta di destinazione e l'indirizzo IP del destinatario; insieme, "porta di origine" e "porta di destinazione" costituiscono i " socket "
  • numero di sequenza : identifica il primo byte di dati nell'area dati del pacchetto
  • numero di ACK : identifica il prossimo byte di dati che il TCP si attende di ricevere dal canale dati
  • lunghezza intestazione : serve per poterla sottrarre al pacchetto e capire così dove ha inizio l'area dati
  • URG : il campo "Puntatore Dati Urgenti" punta a dati che vanno elaborati con priorità assoluta
  • ACK : il campo "Numero di ACK" contiene un numero di ACK valido
  • PSH : chiede al TCP ricevente di inviare immediatamente i dati di questo segmento al programma destinatario
  • RST : chiede al TCP ricevente di reinizializzare la connessione in quanto si è verificato un problema
  • SYN : chiede al TCP ricevente di sincronizzare i numeri di sequenza
  • FIN : comunica al TCP ricevente che questo è l'ultimo pacchetto e che la trasmissione è terminata
  • dimensioni finestra : comunica al TCP ricevente il numero di byte che il TCP trasmittente chiede di accettare
  • checksum TCP : il TCP trasmittente calcola i dati TCP e vuole che il TCP ricevente li verifichi
  • puntatore urgente : punta all'ultimo byte della zona di dati urgenti (RFC Host Requirements)
  • opzioni : può essere indicata la dimensione massima del segmento (se non è indicata, é 536 byte di default)
.: Ritorna ad argomento Networking :: Ritorna a Indice Argomenti :.
Network: Cartoline virtuali - Calendari - Modelle - Playmates - Sfondi - Forum - Old SecurityNews - Warez