Lezione sulle reti internet 2.pdf
Document Details
Uploaded by SweetAcropolis
Tags
Full Transcript
Lezione sulle reti internet 2 Nozioni sulle reti di calcolatori: Due categorie di nodi di rete: Nodi terminali ( host o end-systems): interagiscono con l’utente tramite programmi applicativi Nodi di commutazione (switching nodes): smistano messaggi lungo una o più linee ( e...
Lezione sulle reti internet 2 Nozioni sulle reti di calcolatori: Due categorie di nodi di rete: Nodi terminali ( host o end-systems): interagiscono con l’utente tramite programmi applicativi Nodi di commutazione (switching nodes): smistano messaggi lungo una o più linee ( es. I router) Le linee fisiche di comunicazione, chiamate anche canali o circuiti, connettono i nodi a due a due e usano mezzi trasmissivi diversi. Reti di calcolatori → “definizione” = una rete di calcolatori è un insieme di nodi e di linee di comunicazione - logiche oppure fisiche - che li connettono. Tassonomia delle reti: tecnologia di comunicazione Topologia di rete: disposizione spaziale di nodi, linee fisiche e logiche, creando la struttura di interconnessione. Reti broadcast (multipunto): canali di trasmissione condivisi da tutti i calcolatori della rete ogni calcolatore deve essere associato un identificatore univoco (indirizzo di rete), associato al dispositivo fisico utilizzato per connettersi alla rete, un messaggio inviato “sulla rete” raggiunge tutti i calcolatori della rete, ma solo il calcolatore il cui indirizzo corrisponde a quello presente nel messaggio lo tratterrà per elaborarlo. Reti punto a punto: più connessioni individuali tra coppie di calcolatori; comunicazione tra due calcolatori La dimensione delle reti: A seconda della dimensione dell'area geografica in cui sono dislocati i calcolatori, le reti possono essere classificate: BAN (Body Area Network o Body Sensor Network): sono reti che interconnettono dispositivi indossabili il cui raggio di copertura è inferiore al metro. Esempi di BAN sono le reti di sensori corporei in campo biomedico PAN (Personal Area Network): si tratta di una rete che si sviluppa intorno all'utilizzatore con una estensione di pochi metri. E' la tipica rete adoperata per collegare le periferiche ed altri dispositivi (es. macchina fotografica digitale, cellulare, etc.) al Computer. Reti locali (Local Area Network, LAN) di limitata estensione, collegano dispositivi collocati nello stesso edificio o in edifici adiacenti. Reti metropolitane (Metropolitan Area Network, MAN) collegano di dispositivi collocati nella stessa area urbana. Reti geografiche (Wide Area Network, WAN) collegano di dispositivi diffusi in un’ampia area geografica (nazione, continente, …); Reti di reti (Internetwork, GAN), collegano più reti differenti (in termini sia hardware che software) mediante opportuni elementi di interfaccia, che si possono estendere su tutto il pianeta (e.g. Internet). I mezzi di trasmissione → i mezzi fisici per realizzare i canali di trasmissione sono i mezzi guidati e i mezzi non guidati. I mezzi guidati: linee fisiche che portano il segnale fino al ricevitore, supportano la trasmissione di segnali elettrici oppure ottici, segnali elettrici: doppino telefonico o cavo coassiale; segnali ottici: fibre ottiche. supportano tecnologie come ISDN, ASDL, FIBRA, Ethernet I mezzi non guidati: irradiazione di segnali elettromagnetici nello spazio, in modo più o meno diretto; antenne, satelliti, infrarossi, … Supportano tecnologie come Wi-Fi, Bluetooth, GSM, UMTS, 4G Servizi vs. velocità bassa velocità → fonia, fax, POS (point of sale), transazioni remote (come prenotazione di tratte aeree, connessioni remote con calcolatori); media velocità→ audio Hi-Fi, video a bassa velocità, fax ad elevata risoluzione; alta velocità→ interconnessione di reti di calcolatori, trasferimento di file; altissima velocità→ distribuzione di segnali video, video on demand, TV ad alta definizione (HDTV), videoconferenze Tecniche di commutazione: Commutazione: tecniche di instradamento di un messaggio dal mittente al destinatario Commutazione di circuito: una rete stabilisce un canale dedicato (circuito). (Es. Le linee telefoniche ) Commutazione di pacchetto: I messaggi vengono segmentati in pacchetti. Ogni pacchetto ha una intestazione (header) che include informazioni di indirizzamento e controllo. I pacchetti possono essere conservati temporaneamente nella memoria interna del router. I protocollo di comunicazione: Per comunicare i calcolatori devono seguire delle regole: i protocolli di comunicazione. I protocolli di comunicazione specificano: i formati dei dati, la struttura dei pacchetti (includendo la definizione delle informazioni di controllo) la velocità di trasmissione Definire tutte queste proprietà tramite un unico protocollo è praticamente impossibile, per questo si definisce un insieme di protocolli: ogni protocollo gestisce univocamente una componente ben definita della comunicazione ogni protocollo condivide con gli altri protocolli i dati di cui essi necessitano. Come comunicare → è necessario che esista un canale fisico adatto (requisito per la connessione fisica). Occorre predisporre una infrastruttura fisica: degli strumenti per trasferire i segnali tra i comunicanti. E’ necessario avere competenze linguistiche comuni (requisito per la trasmissione), quindi occorre concordare dei protocolli di trasmissione: delle regole per interpretare i segnali “a basso livello”. E’ necessario avere competenze di contenuto comuni (requisito per la comunicazione). Occorre concordare un protocollo applicativo: delle regole per interpretare i segnali “ad alto livello”. Se le soluzioni adottate per soddisfare le tre precondizioni sono efficienti, la comunicazione si realizza come se esse non fossero più necessarie (“trasparenza” dei protocolli e dell’infrastruttura). Architettura a livelli di un insieme di protocolli La trasmissione dell’informazione avviene simulando la connessione tra i livelli corrispondenti (peer) dei due sistemi che si scambiano blocchi di dati, seguendo le regole stabilite dal protocollo definito per quel livello. Gli elementi chiave di un protocollo sono pertanto: la sintassi da seguire per la formattazione dei blocchi dei dati; la semantica, che riguarda, per esempio, le modalità di controllo della trasmissione e di gestione degli errori; Modello ISO-OSI: International Standard Organization (ISO), Open Systems Interconnect (OSI) Nel modello ISO-OSI, la comunicazione è originata dal livello più alto della stazione che invia il messaggio, passa ai livelli inferiori (sette in tutto), in cui il messaggio viene elaborato e preparato per la trasmissione, fino a giungere al livello fisico, che si occupa dell’effettiva trasmissione verso la stazione di destinazione. MODELLO ISO/OSI: TUTTI I 7 LIVELLI 1. LIVELLO FISICO: Definisce tutte le caratteristiche meccaniche, elettriche funzionali per la ricezione e trasmissione del segnale. 2. DATALINK: Il datalink è diviso in due sottolivelli, contiene lo SWITCH. Gestisce la trasmissione dei pacchetti di dati che vengono chiamati FRAMES. Verifica e gestisce gli errori che avvengono durante la trasmissione. 3. NETWORK: Si occupa dell’instradamento dei messaggi mediante il routing dei pacchetti. Questi pacchetti vengono instradati nei nodi intermedi della sottorete. A questo livello lavora il router. 4. TRASPORTO: Frammentare e assemblare i messaggi per dare un ordine e una completezza all’interno del sistema. 5. SESSIONE: Stabilire, gestire e terminare le sessioni di comunicazione tra le applicazioni di origine e destinazione. 6. PRESENTAZIONE: Si occupa di cifratura, compressione e conversione dei dati. Il livello di presentazione è responsabile della garanzia che i dati trasmessi siano comprensibili dalle applicazioni di origine e destinazione. 7. APPLICAZIONE: si occupa dell’interfaccia tra le applicazioni e il livello di rete TCP/IP Modello “Internet” impostato su un’architettura a cinque livelli: livello fisico livello di accesso alla rete livello internet – IP (Internet Protocol) livello di trasporto (host to host) – TCP (Transmission Control Protocol) livello di applicazione Il successo di questa architettura si deve alle seguenti ragioni: è stata ed è un’eccellente piattaforma per la realizzazione di applicazioni client- server affidabili ed efficienti in particolare nell’ambito di reti geografiche; ha permesso da subito di condividere informazioni tra organizzazioni diverse; è stato implementato nella gran parte dei sistemi operativi ed è stato supportato da subito dai produttori di bridge e router. TCP/IP: indirizzamento Schema di indirizzamento generale su due livelli: indirizzo IP + porta TCP: Indirizzo IP 1. indirizzo associato a ogni calcolatore collegato a una sottorete; 2. si tratta di un indirizzo Internet globale unico, utilizzato da IP per l’instradamento e la consegna dei pacchetti. 3. 32 bit (cioè 4 byte) per un totale di 232 possibili indirizzi diversi; 4. successione di quattro numeri (compreso tra 0 e 255 - uno per byte), separati da un punto (e.g. 102.54.94.97) Porta TCP 1. indirizzo unico all’interno del calcolatore che individua un processo attivo sull’host 2. utilizzato da TCP per consegnare i dati al processo giusto, per esempio 80 nel web 3. TCP aggiunge altre informazioni di controllo/servizio per controllo di errori Architettura del Web Il paradigma client-server è alla base di un'ulteriore evoluzione, in cui i protocolli e i client dedicati sono sostituiti dalle tecnologie standard del World Wide Web. Client sostituito dal browser: potenzialmente già installato anche su macchine non controllate dal gestore dell’applicazione. Possibile l’accesso ad applicazioni senza accordi tra le parti. Architetture a tre livelli 1-2. Il browser riceve la richiesta generata dall’utente e la inviata sulla rete; 3. Ricevendo la richiesta, il server stabilisce (sulla base di opportuni parametri di configurazione) che essa specifica non un documento ma una applicazione, e in conseguenza mette in esecuzione un programma, mettendosi in attesa del risultato dell’esecuzione; 4. Alla conclusione della sua esecuzione, il programma produce un risultato e lo rende disponibile al server web nella forma di un flusso di dati (generalmente un testo; potrebbe essere però per esempio un’immagine, costituita di dati in formato binario); 5. Il server acquisisce tale flusso di dati, a esso antepone un’opportuna intestazione HTTP e quindi invia il risultato come risposta al browser da cui aveva ricevuto la richiesta; il browser riceve la risposta, la interpreta e la visualizza per l’utente. Estensione: Architetture a più livelli Se la logica applicativa è complessa o richiede per motivi di prestazioni un'ulteriore distribuzione, si può realizzare un’architettura “a quattro (o più) livelli”. Ad esempio, il back end potrebbe richiedere accesso ad un database oppure ad un altro servizio web. Il back end è responsabile del carico applicativo mentre il server web fa da front end. HTTP: HyperText Transfer Protocol Protocollo di applicazione usato per trasferire risorse tra client e server Gestisce richieste (URL) dal client al server E’ un protocollo stateless: ne’ il client ne’ il server “ricordano” nulla dei messaggi precedenti. La mancanza di stato influenza la scrittura delle app. Una transazione HTTP e’ uno scambio di messaggi richiesta/risposta tra client e server. Le richieste HTTP sono solitamente multiple. Una volta ottenuta la pagina index.html il browser richiede tutte le risorse aggiuntive (immagini, files). HTTP Formato dei Messaggi Linea iniziale: nella richiesta contiene l’URI ed il “verbo” HTTP (metodo) nella risposta contiene l’esito della richiesta (codice) Corpo del messaggio: nella richiesta è vuoto o contiene la query nella risposta contiene la risorsa richiesta, codificata in un formato MIME specificato nell’header Intestazioni del messaggio: Metadati per identificare il messaggio Metodo GET: Metodo standard per richiedere una risorsa al server. E’ quello che accade specificando un URL nel browser o quando si fa click su un link. Viene specificato l’URI della risorsa Il corpo della richiesta è vuoto. La lunghezza massima dell’URI è limitata. Eventuale passaggio di parametri tramite la query visibili pubblicamente. GET /index.html HTTP/1.1 GET /informatica/InformazioniCorsi HTTP/1.1 GET /search.php?nome=Pinco&cogn=Pallo HTTP/1.1 Metodo POST Utilizzato per colloquiare con un servizio web. Per esempio per sottomettere una form o per fare update di una risorsa (e.g., carrello spesa). Viene specificato l’URI della risorsa senza parametri. Utile per dati privati o di una certa lunghezza. I parametri contenuti nel corpo del messaggio. POST /search.php? HTTP/1.1 nome=Pinco&cogn=Pallo Codice di Stato: 3 cifre, la prima indica la classe, le restanti la risposta 1xx: Messaggio informativo temporaneo (deprecato in 1.1) 2xx: Successo. La richiesta e’ stata soddisfatt 3xx: Redirezione. La richiesta e’ ok ma occorrono nuove azioni da parte del client per soddisfare la richiesta 4xx: Errore sul client. La richiesta contiene errori e non e’ autorizzata 5xx: Errore sul server. Problema interno per cui non si puo’ soddisfare la richiesta Applicazioni con stato: Cookie: Problema: Mantenere lo stato tra le diverse richieste/risposte nella “sessione” di lavoro. Idea fondamentale. Utilizzare le intestazioni HTTP per "nascondere" informazioni che vengono scambiate tra client e server. Usa due intestazioni HTTP: Set-Cookie: nelle risposte HTTP del server Cookie: nelle richieste HTTP del client Posta elettronica (email) Il mittente opera con un client (Eudora o Microsoft Outlook) e invia il messaggio al suo server incaricato della spedizione; il protocollo applicativo impiegato in questa fase è Simple Mail Transfer Protocol (SMTP); Il server del mittente invia il messaggio al server che mantiene la mailbox del destinatario, ancora mediante SMTP; il server del destinatario conserva il messaggio nella mailbox; Il destinatario accede alla sua mailbox e ottiene il messaggio in essa contenuto; i protocolli applicativi impiegati in questa fase sono alternativamente Post Office Protocol (POP) oppure Internet Message Access Protocol (IMAP).