Mariarosaria Napolitano Architettura TCP/IP Corso di: Laboratorio di tecnologie informatiche e telematiche
Contesto e Prerequisiti Contesto E' rivolto agli studenti del V anno degli Istituti Tecnici Industriali ad Indirizzo "Informatica". Prerequisiti Conoscere il concetto di protocollo Conoscere il modello ISO/OSI
Obiettivi Didattici Sottolineare i vantaggi derivanti dalla connessione di più computer in una rete; Individuare le principali caratteristiche di un Architettura di rete distribuita. Conoscenze da apprendere Conoscere il concetto di rete di computer; Conoscere le differenze fra il modello ISO/OSI e TCP/IP; Conoscere il concetto di Architettura Distribuita. Competenze da acquisire Spiegare il ruolo ed il funzionamento di un Client e di un Server; Spiegare il funzionamento di un architettura Client/Server di Rete; Descrivere alcuni esempi di architetture Client/Server.
Architettura TCP/IP Lo straordinario sviluppo della rete Internet, avvenuto durante la definizione delle specifiche ISO/OSI, ha imposto come standard de facto la propria architettura di rete basata sul TCP/IP (Transmission Control Protocol/Internet Protocol). Nota: Il TCP/IP, al contrario di molti standards diventati in seguito protocolli, è nato prima come protocollo e successivamente è stato affinato per poi diventare uno standard, effettuando prove "sul campo"; è in qualche modo uno standard "cooperativo
Architettura TCP/IP E nata allo scopo di integrare reti di tipo eterogeneo. Non è un modello vero e proprio perché i protocolli inclusi nella suite TCP/IP sono descritti per mezzo di documenti detti RFC (Request For Comments)
Il modello a strati è una comoda rappresentazione dei sistemi di rete che permette concettualmente di separare le diverse funzionalità in livelli di protocolli, ciascuno dei quali tratta una parte specifica dei problemi di trasmissione. Per trasmettere i dati attraverso una rete stratificata, questi devono passare da un livello al successivo, mediante il processo dell incapsulamento. Infatti ad ogni livello di protocollo, i dati vengono incapsulati in un formato diverso e con delle info aggiuntive e poi trasmesse al livello successivo più basso L architettura TCP/IP Il modello TCP/IP comprende quattro livelli, più un quinto costituito dal supporto fisico vero e proprio. La figura mostra i quattro livelli: Livello applicazione livello trasposto livello internet e livello network
TCP vs OSI applicazione presentazione sessione trasporto rete data link fisico FTP - SMTP - HTTP - Telnet TCP,UDP IP Rete (Non specificato)
TCP vs OSI Somiglianze: Basate entrambi sul concetto di pila di protocolli indipendenti; Funzionalità simili in entrambi per i vari livelli Differenze principali: TCP/IP unisce i livelli OSI presentazione sessione ed applicazione in un unico livello applicazione. TCP/IP unisce i livelli data link e fisico nel livello network access TCP/IP appare più semplice perché ha un numero inferiore di livelli. Il livello trasporto di TCP/IP che utilizza UDP, non garantisce sempre una consegna affidabile dei pacchetti, cosa che avviene invece con il protocollo TCP simile al livello di trasporto del modello OSI.
Livelli del TCP/IP Livello Applicazione FTP DNS HTTP Livello Trasporto TCP Messaggi dell Applicazione UDP Livello Rete Segmento TCP IP Datagram UDP Pacchetto IP Livello Rete Interfaccia hardware Ethernet Livello Fisico
Livello Rete Il quarto ed ultimo strato è comunque costituito da una interfaccia di rete che accetta il datagramma IP e lo trasmette, dopo averlo incapsulato in appositi frame, sull'hardware di rete (Link fisico del modello OSI).
Livello Internet Il protocollo IP ha il compito di impacchettare i dati in uscita e di inviarli, trovando la strada migliore per arrivare ad un particolare computer tra tutti quelli connessi alla rete. Le informazioni necessarie a questo fine sono inserite in una intestazione (header) IP che viene aggiunta ad ogni pacchetto di dati. Si occupa di: Routing: scelta del percorso migliore, commutazione dei pacchetti Controllo congestione
Livello Trasporto Consente la conversazione end-to-end. Sono definiti due protocolli in questo livello: TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
Livello Trasporto Il TCP è un protocollo connesso ed affidabile. Frammenta il flusso in arrivo dal livello superiore (Applicativo) (aggiungendo una intestazione: TCP header), in messaggi separati che vengono passati al livello Internet. In arrivo, invece dal livello sottostante, i pacchetti vengono riassemblati in un flusso di output per il livello superiore. FRAMMENTAZIONE messaggio A F1 A1 F2 A2 F3 A3
Livello TCP Vediamo un esempio di come avviene la trasmissione dei dati ed il loro riconoscimento mediante la frammentazione in pacchetti dei dati e l utilizzo di una finestra scorrevole che gli consente di trasmettere più pacchetti prima di attendere un riconoscimento. Invio frammenti 1 e 2 1 2 1 2 3 4 5 Ricevuti 1 e 2 Invio frammenti 3 e 4 3 4 Ricevuto solo il 3, invio di nuovo il 4 Invio frammenti 4 e 5 4 5 1 2 3 4 5 Ricevuti 4 e 5
Livello UDP UDP (User Datagram Protocol) è un protocollo non connesso e non affidabile, i pacchetti possono arrivare in ordine diverso o non arrivare affatto
Livello Applicazione É il livello più vicino all utente finale, perché è quello che fornisce servizi alle applicazioni sia usate che scritte dall utente. Alcuni esempi sono: File Transfer Terminale Virtuale Posta Elettronica
Livello Applicazione Contiene quindi tutti i protocolli di alto livello che vengono usati dalle applicazioni reali. I primi protocolli furono: Telnet: Terminale virtuale FTP (File Transfer Protocol) SMTP (Simple Mail Transfer Protocol) e POP (Post Office Protocol): Posta elettronica
Livello Applicazione Successivamente: DNS (Domain Name Service): mapping fra nomi di host e indirizzi IP numerici NNTP (Network News Transfer Protocol): trasferimento di articoli per i newsgroup HTTP (HyperText Transfer Protocol): alla base del Word Wide Web
Protocolli Applicativi Nella comunicazione tra client e server non è sufficiente che richiesta e risposta giungano correttamente al destinatario: occorre che i due programmi comunicanti siano in grado di comprendere le rispettive comunicazioni, cioè parlino la stessa lingua : devono perciò condividere uno stesso protocollo applicativo Il dialogo client-server è regolato quindi da protocolli del livello applicativo di supporto ad applicazioni standars, tra cui: Simple Mail Transfer Protocol (SMTP) per la posta; Hyper-Text Transfer Protocol (HTTP) per il Web. File Transfer Protocol (FTP) per i file; Un esempio di protocollo di supporto a tutte le applicazioni è il Doman Name Server (DNS)
Esempio di applicazione Client/server Supponiamo di voler spedire una e-mail utilizzando un client di posta elettronica realizzato in JAVA. Come avverrà la comunicazione tra il client ed il server di posta elettronica?
Posta elettronica La posta elettronica (electronic mail o, semplicemente, e-mail) è sicuramente il servizio di rete più conosciuto e più usato attualmente. Concettualmente, mandare un messaggio da un programma su una macchina ad un programma su un'altra, significa trasferire tale messaggio giù attraverso tutti i vari strati fino al livello di rete e, tramite l'hardware, raggiungere l'altra macchina, risalire gli strati software in successione fino al livello di applicazione dell'utente destinazione.vediamo un esempio.
Esempio di comunicazione TCP/IP Appl. Java e-mail Client SMTP messaggio SMTP... TCP protocollo di applicazione protocollo di trasporto Server email e-mail Server SMTP messaggio SMTP... TCP H T fr1 HT fr500 HT fr1000 IP protocollo di rete H T fr1 HT fr500 HT fr1000 IP H IP H T fr500 R router R H IP H T fr500 \ Ethernet 0100100110 collegamento fisico Ethernet