Laboratorio di Telematica Prof. Alfio Lombardo lombardo@diit.unict.it PROGRAMMA a.a.2005/2006 Come funziona una architettura di protocolli (esercit./lab.) Approfondimento su Architettura TCP/IP - Indirizzamento IP: subnetworking, supernetting, Indirizzi privati, NAT, PAT risoluzione degli indirizzi: DNS, ARP, RARP, DHCP (esercit./lab.) Error Reporting (ICMP) TCP (esercit. /lab.) - InterProcess Communication: i socket (Progetto di un protocollo in lab.) - Il livello applicativo in Internet: FTP, Telnet, SNMP
Testi consigliati Raccolta Lucidi, Dispensa di telematica, ed esercizi on-line: www.diit.unict.it M. Baldi, P. Nicoletti Internetworking Mc Graw Hill Behrouz A. Forouzan I Protocolli TCP/IP McGraw Hill
Virtualizzazione delle risorse Cos’e’ un’architettura di protocolli ? Virtualizzazione delle risorse Gestione delle sessioni Frammentazione Sequencing Indirizzamento Instradamento Gestione delle risorse Individuazione d’errore Correzione d’errore Trasmissione e sincronizzazione di bit
CANALE DI COMUNICAZIONE CANALE DI COMUNICAZIONE A P A P A P CANALE DI COMUNICAZIONE 3-Entity CANALE DI COMUNICAZIONE 2-Entity CANALE DI COMUNICAZIONE 1-Entity
protocollo servizio
N+1_Entity N_SAP N_PDU N_Entity N_Entity N-1_SAP N-1_Entity Esercizio in aula: Apertura di una connessione N-1_Entity
l’architettura TCP/IP Background: l’architettura TCP/IP
Rete geografica di calcolatori Funzioni end-to-end Sin dallo sviluppo delle prime reti di calcolatori è sembrato naturale organizzare il software di comunicazione (protocolli) in più funzionalità che tenessero conto delle esigenze sempre presenti in una rete di calcolatori. Tra l’altro, la rete di comunicazione non è un mezzo passivo e trasparente a tali comunicazioni; bisogna, al contrario, immaginare che ha funzioni da svolgere e quindi è essa stessa un interlocutore nei confronti dei processi residenti sugli elaboratori. Si possono,quindi, individuare tre tipologie di funzioni comuni a tutti i protocolli: - funzioni di accesso alla rete; - funzioni di trasporto; - funzioni di "applicazione" in senso stretto. Le funzioni di accesso alla rete affrontano i problemi legati allo scambio di dati fra elaboratore e rete di comunicazione; ad esempio l'elaboratore deve fornire alla rete l'indirizzo del corrispondente, per l’instradamento dei dati; l'elaboratore può richiedere meccanismi di correzione degli errori di trasmissione. Il protocollo di questo strato o gruppo di strati è relativo alla comunicazione fra calcolatore d’utente e rete di comunicazione e dipende dal tipo di rete utilizzato (rete a commutazione di circuito, rete a commutazione di pacchetto, rete locale, etc.). Per ogni tipo di rete ci sarà, dunque, un insieme di protocolli standard da utilizzare. Le funzioni di trasporto sono relative ad altri problemi, comuni a tutte le applicazioni, quali la necessità che i dati arrivino a destinazione in modo corretto (magari anche in presenza di guasti di parti della rete) e nella stessa sequenza di invio; hanno poi il compito, all’interno dell’elaboratore, di consegnare correttamente i dati al programma applicativo destinatario. In altri termini forniscono un trasporto delle informazioni che sia affidabile da estremo ad estremo. Anche queste funzioni possono, dunque, essere raccolte in uno stesso strato, comune a tutti i servizi. Le funzioni di applicazione, infine, rispondono a requisiti sp ecifici, necessari a garantire lo svolgimento del particolare servizio applicativo (es. il trasferimento di un file, etc.). Anche per queste funzioni si possono realizzare uno o più strati di protocolli. Funzioni di accesso alla rete
ARCHITETTURE A CONFRONTO OSI TCP/IP Applicazione Presentazione Sessione Trasporto Rete Linea Fisico Applicazione Trasporto Internetworking
Problematiche inerenti all’interconnessione a livello III (rete) Armonizzazione dei servizi Supporto QoS Gestione dimensioni massime di pacchetto Compatibilita’ meccanismi di controllo di flusso e di congestione Compatibilita’ tra schemi di indirizzamento
Protocolli di rete orientati alla connessione (virtual circuit switching) NODO NODO Nella commutazione di pacchetto orientata alla connessione (ovvero a circuito virtuale), il servizio di comunicazione si esplica attraverso tre fasi separate (stati della connessione) Apertura della connessione (segnalazione/gestione) Utilizzo della connessione Abbattimento della connessione (segnalazione/gestione) I vantaggi di tale tecnica sono vari; esiste la possibilità di allocare risorse a quella particolare comunicazione e di negoziare i parametri di qualità del servizio (QoS). Inoltre l’instradamento è svolto solamente nella fase di apertura della connessione e le UI d’utente seguono lo stesso percorso nella rete. Il concetto di connessione è associato in una rete geografica ad una memoria degli eventi (cioè allo stato); ogni comunicazione lascia una traccia nei nodi attraversati dalle informazioni ad essa relativa. L’attraversamento dei nodi può essere di vari tipi a seconda dei vincoli temporali e di qualità prescritti dalla comunicazione: ad esempio può essere ad immagazzinamento e rilancio, oppure di tipo cut-through. Le reti di tipo X.25, sono esempi di reti che utilizzano commutazione di pacchetto orientata alla connessione e con attraversamento di tipo immagazzinamento e rilancio. In questo caso è utilizzata appieno la possibilità, data da questo tipo di attraversamento, di garantire un completo controllo sull’affidabilità trasmissiva dello scambio di dati, anche se a prezzo di un maggior tempo di attraversamento della rete. Le reti di tipo ATM sono un altro esempio. In questo caso, però, si dà priorità ai tempi di attraversamento (bassi), a scapito delle procedure di controllo recupero di errori. NODO NODO CIRCUITO VIRTUALE
Protocolli di rete orientati al datagramma (datagram switching) Nodo A C Nodo B D Nodo Nodo Nella commutazione di pacchetto non orientata alla connessione (ovvero datagram), l’instradamento è svolto, per ogni UI, sulla base dell’informazione contenuta nel campo “indirizzo di destinazione” e tramite l’esame di opportune tabelle di routing. Le UI possono seguire differenti percorsi all’interno della rete. Non esiste, in questo caso, alcuna possibilità di allocazione di risorse e di negoziazione della QoS, se non attraverso meccanismi complessi, proprietari, o di difficile applicabilità ad estese porzioni della rete. Anche in questa tecnica, l’attraversamento può essere del tipo ad immagazzinamento e rilancio, oppure cut-through. Esempi di reti che utilizzano tale tecnica sono la rete Internet, la rete di segnalazione a Canale Comune N.7, etc. DATAGRAM
Servizi di Rete Connection Oriented basso overhead di processamento durante il trasferimento dei dati isolamento delle singole sorgenti dal traffico presente in rete lunghi tempi di instaurazione della connessione possibile spreco di risorse caduta della connessione in caso di failure nella sottorete
Servizi di Rete Connectionless trasferimento di piccole quantità di dati in tempi limitati robustezza e flessibilità dei path efficienza nell'uso delle risorse di rete necessità di controllo del traffico offerto dalla sorgente processamento durante il trasferimento dei dati
CONCATENAZIONE DI CIRCUITI VIRTUALI M ATM X.25 SNA M OSI M M
CONCATENAZIONE DI RETI DATAGRAMMA
A B Compatibilita’ tra schemi di indirizzamento 044.3.1436439667 151.97.6.5 137.67.2.4 035.3.5464439367 IP OSI 044.3.1436439667 137.67.2.4 151.97.6.5 035.3.5464439367
TUNNELING Ethernet A Ethernet B WAN M Tunnel M IP IP IP Pacchetto WAN Pacchetto IP Pacchetto IP
Protocolli inerenti al livello di Rete in INTERNET Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP) Protocolli di routing: OSPF, EGP, RIP
Il pacchetto IP
Problemi nell’attuale sistema Internet Esaurimento degli indirizzi IP Evoluzione delle applicazioni di utente Applicazioni mobili Applicazioni multimediali
Protocolli di Internetworking emergenti in INTERNET Mobile IP ReSerVation Protocol (RSVP) Internet Protocol vers.6 (IPv6) Multi Protocol Label Switching (MPLS) ………
Message nesting nell’Architettura TCP/IP dati dati app dati app tcp dati app tcp TCP segment Quando un’applicazione invia dei dati, utilizzando l’architettura TCP/IP, i dati vengono inviati verso il livello fisico attraverso tutti i livelli della pila protocollare fino ad essere trasmessi dal livello fisico (livello hardware). Ogni livello aggiunge delle informazioni di controllo, preponendo degli header (ed a volte aggiungendo anche dei trailer) ai dati che riceve. I dati d’utente, ai quali viene preposta un’intestazione (header) dallo strato di applicazione, vengono passati al protocollo dello strato di trasporto (in questo caso TCP, ma del tutto analogo è il caso di UDP): quest’ultimo esegue varie operazioni e aggiunge un’intestazione alla PDU che gli è stata inviata. L’unità di dati prende ora il nome di segmento. Lo strato di trasporto fornisce quindi il segmento allo strato di rete, che presta anch’esso servizi specifici e aggiunge un’intestazione. Questa unità (che la terminologia di Internet definisce ora datagramma) viene passata ai livelli inferiori, dove lo strato di collegamento dati aggiunge la propria intestazione e una coda (trailer); l’unità di dati (che ora prende il nome di trama) viene poi trasmessa in rete dallo strato fisico. In figura è mostrato un esempio di “imbustamento” dei dati, nell’ipotesi che la sottorete sia una LAN di tipo Ethernet. ip dati app ip tcp IP datagram eth eth Ethernet frame
L’ARCHITETTURA TCP/IP PRO & CONTRO L’ARCHITETTURA TCP/IP Protocolli largamente usati Modello di riferimento dipendente dai protocolli
Architetture Protocolli e Servizi Macrolezione 1: Architetture Protocolli e Servizi