|
PROTOCOLLO TCP/IP I protocolli di rete permettono a due computer, geograficamente distanti, di comunicare fra loro. Essi sono di solito sviluppati in strati, ed ogni strato si occupa di un particolare aspetto della comunicazione. La suite di protocolli TCP/IP viene di solito considerata divisa in 4 strati:
In una comunicazione tra due host ogni strato comunica con lo strato corrispondente (peer). Esempio di comunicazione in una LAN:
![]()
Esempio di comunicazione in un interrete:
Come si può vedere dagli esempi la comunicazione tra due hosts può avvenire sia se questi ultimi si trovano su reti omogenee (due host su una rete ethernet) sia se essi si trovano su reti eterogenee (un host si trova su una rete ethernet, l’altro si trova su una token ring). Dalla figura risulta, inoltre, che l’applicazione gira in user mode e non sa niente di ciò che concerne il movimento dei dati all’interno della rete. Gli ultimi tre strati girano in kernel mode e non sanno nulla riguardo l’applicazione, ma sanno ogni cosa dei dettagli della rete e di come consegnare i messaggi tra due host. In un’interrete le cose cambiano. Un vantaggio della stratificazione è che si riescono a connettere due reti fisicamente diverse utilizzando computer dedicati che traducono il traffico di un tipo di rete in un’altro: i router. I router sono multihomed, hanno, cioè, tante interfacce di rete quante sono le reti che connette (nell’esempio il router ha un’interfaccia ethernet che comunica con la rete di sinistra ed un’interfaccia token ring per comunicare con la rete di destra). In questo modo qualsiasi utente della rete ethernet può comunicare con qualsiasi altro della rete token ring. Nella suite di protocolli TCP/IP lo strato IP fornisce un servizio inaffidabile, nel senso che ce la mette tutta per consegnare il pacchetto a destinazione, ma non è garantito che ciò avvenga. TCP garantisce che il pacchetto arrivi a destinazione usando il servizio IP che è inaffidabile. UDP è un’altro protocollo di trasporto al servizio delle applicazioni. Esso invia e riceve datagram, un’unità d’informazione che viaggia tra il mittente ed il destinatario. UDP, al contrario di TCP, è inaffidabile: non è garantito che il datagram raggiunga la destinazione. Anche quest’ultimo si appoggia su IP. Vediamo ora il ciclo di vita di un pacchetto all’interno della rete. Quando un’applicazione invia dati utilizzando TCP, questi ultimi vengono immessi verso il basso all’interno della pila di protocolli. Ogni strato aggiunge informazioni ai dati inserendo un header al pacchetto. La seguente figura illustra questo processo:
Questo pacchetto, nell’host ricevente segue il percorso contrario all’interno della pila di protocolli TCP/IP, ed ogni strato estrarrà l’header corrispondente dal pacchetto, e ne leggerà le informazioni. TCP/IP implementano il meccanismo di porta: Mediante un campo numerico (numero di porta) nel proprio header, TCP e UDP riescono a stabilire qual è l'applicazione che deve avere in consegna il pacchetto precedentemente ricevuto da IP. Alcune porte (fino a 1024) sono dette well-know, cioè si assume che si sappia il tipo di applicazione che è associata a tale
porta. Un browser sa che quando facciamo una richiesta HTTP deve connettersi
alla porta 80 di TCP dell’host che abbiamo specificato, mentre la porta a cui è
associato ad esempio netscape in quel momento sarà stabilita dal sistema al
momento dell'esecuzione e sarà comunicata al web server durante la connessione. |