Flavio De Paoli depaoli@disco.unimib.it ITIS Lab http://www.itis.disco.unimib.it 1
Internet (parte 2) Obiettivi: Comprensione dei livelli di astrazione per le reti Comprensione del funzionamento di Internet Rassegna seconda parte: Comunicazione a livello applicazione Il livello di trasporto Socket TCP/IP UDP/IP La stratificazione di Internet Il funzionamento del core della rete Packet Switching Circuit Switching Le reti di accesso (cenni) 2: Application Layer 2
Applicazioni e protocolli applicativi Applicazione: processi ditribuiti in comunicazione In esecuzione su host remoti Si scambiano messaggi per eseguire l applicazione Es., posta, FTP, WWW Protocolli applicativi Costituiscono una parte di ogni applicazione Definiscono il formato dei messaggi scambiati e il loro significato (azioni) Usano i servizi degli strati inferiori application transport network data link physical application transport network data link physical application transport network data link physical 2: Application Layer 3
Applicazioni: terminologia essenziale Un processo è un programma in esecuzione su un host Sullo stesso host i processi comunicano mediante meccanismi definiti dal SO. Processi in esecuzione su host diversi comunicano mediante meccanismi definiti dal protocollo dello strato di applicazione (application layer protocol) Un agente utente (user agent) è un interfaccia tra l utente e l applicazione di rete. Browser Web E-mail: lettore di posta streaming audio/video: lettore di file audio/video 2: Application Layer 4
Network edge: end system (hosts): eseguono applicazioni es., WWW, email edge of network modello client/server client host requests, receives service from server e.g., WWW client (browser)/ server; email client/server modello peer-to-peer : interazione simmetrica tra host es.: teleconferenza, Gnutella 1: Introduction 5
Network edge: servizio orientato alla connessione Obiettivo: trasferire dati tra host. handshaking: scambio di informazione di controllo prima della comunicazione Hello, hello ( protocollo umano) viene creato un canale virtuale, cioè uno stato nei due host che comunicano TCP - Transmission Control Protocol Orientato alla connessione Scompone i messaggi in pacchetti Servizio TCP [RFC 793] trasferimento affidabile (reliable) di flussi di byte perdita: conferma (acknowledgement) e ritrasmissioni ordine: numerazione dei pacchetti e scarto dei duplicati controllo di flusso (flow control): il sender rallenta/accelera gli invii al receiver Controllo della congestione (congestion control): il ritmo (rate) di trasmissione diminuisce se la rete è congestionata 6
Network edge: servizio connectionless Obiettivo: trasferimento dati tra host Lo stesso di prima! UDP - User Datagram Protocol [RFC 768]: il servizio connectionless di Internet trasferimento dati non affidabile senza controllo di flusso senza controllo della congestione Applicazioni che usano TCP: HTTP (WWW), FTP (file transfer), Telnet (remote login), SMTP (email) Applicazioni che usano UDP: streaming audio/video teleconferenza, telefonia su Internet 1: Introduction 7
Protocolli di livello applicativo: servizi dagli strati inferiori e identificazione API: Application Programming Interface Definisce l interfaccia tra applicazione e strato di trasporto Socket: API Internet Due processi (applicazione nel modello client server) comunicano inviando/leggendo dati nel/dal socket D: come può un processo identificare quello con cui intende comunicare? Indirizzo IP dell host su cui l altro processo è in esecuzione Numero di porta (port number) permette all host ricevente di identificare il processo locale destinatario del messaggio 2: Application Layer 8
Socket: funzionamento di base Programmatore Sistema operativo processo socket TCP con buffer e variabili Internet processo socket TCP con buffer e variabili Programmatore Sistema operativo host o server host o server 2: Application Layer 9
Client e server TCP/IP Connessione TCP via socket 2: Application Layer 10
Funzioni per TCP/IP
Funzioni per TCP/IP
Processi e socket socket socket-bind connect accept ClientProcess write-read read-write ServerProcess 2: Application Layer 13
Funzionamento dei servizi offerti dai protocolli di trasporto Internet Servizio UDP: Scompone i messaggi in pacchetti Li invia, uno per volta, ai servizi network Servizio TCP: Scompone e invia come UDP Ogni pacchetto viene numerato per garantire Riordinamento dei pacchetti arrivati Controllo delle duplicazioni (scarto dei pacchetti con ugual numero d ordine) Controllo delle perdite (richiesta dei pacchetti mancanti) 2: Application Layer 14
Sintesi dei servizi offerti dai protocolli di trasporto Internet Servizio TCP : Orientato alla connessione: richiesto setup tra client e server Trasporto affidabile (reliable transfer) tra processi mittente e ricevente Controllo di flusso) flow control: il mittente rallenta per non sommergere il ricevente Controllo della congestione (congestion control): il mittente rallenta quando la rete è sovraccarica Non offre: garanzie di banda e ritardo minimi Servizio UDP : Trasporto non affidabile tra processi mittente e ricevente Non offre: connessione, affidabilità, controllo di flusso, controllo di congestione, garanzie di ritardo e banda D: perché esiste UDP? Può essere conveniente per le applicazioni (si vedrà più avanti) 2: Application Layer 15
Requisiti delle applicazioni Perdita (Data loss) Alcune app.ni (es., audio) sono tolleranti (fino a un certo punto) Altre (es., FTP, telnet) richiedono affidabilità totale Banda Alcune app.ni (soprattutto multimediali) richiedono una banda minima Altre (dette elastiche ) usano la banda a disposizione Ritardo Alcune applicazioni (es., telefonia Internet, giochi interattivi in rete) richiedono una banda minima per funzionare con qualità sufficiente Nota: alcuni requisiti sono determinati da esigenze percettive umane (es. ritardo nella telefonia Internet) 2: Application Layer 16
Requisiti per il servizio di trasposrto per alcune applicazioni comuni Application Data loss Bandwidth Time Sensitive file transfer e-mail Web documents real-time audio/video stored audio/video interactive games financial apps no loss no loss loss-tolerant loss-tolerant loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5Kb-1Mb video:10kb-5mb same as above few Kbps up elastic no no no yes, 100 s msec yes, few secs yes, 100 s msec yes and no 2: Application Layer 17
Applicazioni Internet: loro protocolli e protocollo di transporto usato Applicazione e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony Protocollo applicativo smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietario (es. RealNetworks) NFS proprietary (e.g., Vocaltec) Protocollo di trasporto usato TCP TCP TCP TCP TCP o UDP TCP o UDP tipicamente UDP 2: Application Layer 18
Stratificazione protocollare (Protocol Layering ) Le reti sono complesse! Molti elementi: host router link fisici dalle caratteristiche diverse applicazioni protocolli hardware, software Domanda: Come organizzare la struttura della rete? 1: Introduction 19
Esempio di stratificazione: servizio postale Lettera (consegna) Controllo destinazione (ufficio postale di origine) Consegna a corriere Consegna a dest. Controllo destinazione (uff. postale di dest.) Consegna a ufficio di destinazione Spedizione effettiva 1: Introduction 20
Servizio postale: una prospettiva diversa Sorgente Lettera (consegna) Controllo destinazione (consegna a corriere) Corriere Destinazione Lettera (cons. a dest.) Controllo destinazione (ric. da corriere) Corriere (consegna) Trasporto (aereo, treno...) Strati: ogni strato implementa un servizio Mediante funzionalità interne Usando i servizi messi a disposizione dagli strati inferiori 1: Introduction 21
Stratificazione del servizio postale Consegna da mittente a destinatario Consegna da ufficio postale sorgente a ufficio postale di destinazione Trasferimento da sede locale a sede destinazione del corriere Trasporto 1: Introduction 22
Perché la stratificazione? I sistemi sono complessi: La stratificazione permette una più facile organizzazione e individuazione delle funzionalità La modularità facilita la manutenzione e la modifica dei sistemi La modifica dell implementazione dei servizi resi da uno strato è trasparente (non si modifica l interfaccia) Es., cambiare il corriere non altera il funzionamento complessivo del servizio postale 1: Introduction 23
La stratificazione di Internet application: supporto per le applicazioni di rete ftp, smtp, http transport: trasferimento dati end-to-end tcp, udp network: trasferimento di datagrammi da sorgente a destinazione (host-tohost) ip, routing protocols link: trasferimento di dati tra elementi di rete adiacenti ppp, ethernet physical: bit sul cavo application transport network link physical 1: Introduction 24
Stratificazione: comunicazione logica Ogni strato: distribuito entità implementano le funzionalità di strato in ogni nodo Le entità eseguono azioni e scambiano messaggi con le entità pari (peer entities) application transport network link physical application transport network link physical application transport network link physical network link physical application transport network link physical 1: Introduction 25
Layering: logical communication Es.: transport Preleva dati da app. Indirizzamento, crea datagramma Invia il datagramma all entità pari del lato destinazione Attendi che il peer confermi il ricevimento analogia: ufficio postale data application transport network link physical application transport network link physical data ack application transport network link physical network link physical data application transport network link physical 1: Introduction 26
Layering: physical communication data application transport network link physical application transport network link physical application transport network link physical network link physical data application transport network link physical 1: Introduction 27
Stratificazione e dati Ogni strato riceve dati dallo strato superiore Aggiunge header e crea nuova unità dati Passa nuova unità dati a strato inferiore source destination H l Ht HnHt HnHt M M M M application transport network link physical application transport network link physical H l Ht HnHt HnHt M M M M message segment datagram frame 1: Introduction 28
Il funzionamento del core della rete
Network Core Rete di router interconnessi Questione fondamentale : come avviene il trasferimento dei dati? circuit switching: circuito dedicato per ogni connessione: rete telefonica packet-switching: i dati sono trasferiti a blocchi, non viene preallocato un circuito 1: Introduction 30
Network Core: Circuit Switching Pre-allocazione di risorse end-to-end per chiamata Banda dei link, capacità degli switch Risorse dedicate : nessuna condivisione Prestazioni garantite per ogni connessione Ogni chiamata richiede una fase di instaurazione 1: Introduction 31
Network Core: Circuit Switching Le risorse di rete non sono condivise divisione della banda in pezzi divisione di frequenza divisione di tempo la risorsa non usata (idle) dalla chiamata a cui è allocata è sprecata 1: Introduction 32
Network Core: Packet Switching ogni messaggio è diviso in pacchetti (packets) i pacchetti di piu utenti condividono le risorse ogni pacchetto usa tutta la banda le risorse sono usate quando servono contesa per le risorse: congestione: possibilità di eccedere la capacità; i pacchetti sono in coda store and forward (memorizza e inoltra) : i pacchetti si muovono un salto alla volta 1. Attraversa un link 2. Aspetta il turno al prossimo link Trasmissione in ordine di arrivo 1: Introduction 33
Network Core: Packet Switching A 10 Mbs Ethernet multiplexing statistico C B 1.5 Mbs Coda di pacchetti in attesa sul link di uscita 45 Mbs D E 1: Introduction 34
Network Core: Packet Switching Esempio Messaggio di 7.5 Mbit Suddivisione in 5000 pacchetti da 1.5 Kbit Capacità dei link: 1.5 Mbps Tempi di processamento nei router trascurabili Esercizio: calcolare tempo di trasferimento se il messaggio non fosse diviso Attenzione: 1 Mbit=1000 Kbit!! 1: Introduction 35
Packet switching versus circuit switching Packet switching permette a più utenti di usare la rete! Link da 1 Mbit/s Per ogni utente: 100Kbps se attivo attivo 10% del tempo circuit-switching: Max. 10 utenti attivi packet switching: con 35 utenti, Prob > 10 utenti attivi <.004 N utenti link da 1 Mbps 1: Introduction 36
Packet switching versus circuit switching Ottimo per dati a raffica (bursty) Condivisione di risorse Nessuna instaurazione di chiamata MA: Possibilità di congestione: ritardo e perdita di pacchetti Servono protocolli per il trasporto affidabile e per gestire la congestione Come ottenere un comportamento di tipo circuit switched? Problema aperto (cap. 6) 1: Introduction 37
Packet-switched networks: instradamento (routing) Obiettivo: trasferire i pacchetti da sorgente a destinazione seguendo un cammino nella rete Molti algoritmi di selezione dei cammini (cap. 4) Reti a datagramma (datagram networks): Prossimo salto (hop) determinato dall indirizzo di destinazione Il percorso può mutare nel corso della sessione analogia: servizio postale Reti a circuito virtuale (virtual circuit networks): Ogni pacchetto contiene un identificatore che detetmina il prossimo salto Il cammino è fissato una volta per tutte in fase di instaurazione I router attraversati mantengono informazione su ogni chiamata Attenzione: circuito virtuale e circuit switching sono diversi!! 1: Introduction 38
Utenze domestiche Reti di istituzioni (università, aziende) Reti mobili Aspetti importanti: banda (bit al secondo) della rete di accesso Condivisa o dedicata? Reti di accesso 1: Introduction 39
Residential access: point to point access Modem Fino a 56Kbps, accesso diretto al router (conversione D/A A/D) ISDN: integrated services digital network: 128Kbps fino al router (digitale) ADSL: asymmetric digital subscriber line Capacità maggiori 1: Introduction 40
Istituzioni: reti locali Rete locale (LAN) che connette end system a edge router Ethernet: Cavo condiviso che connette sistemi terminali a un router 10 Mbs, 100Mbps, Gigabit Ethernet 1: Introduction 41
Reti di accesso wireless Connettono sistemi terminali a un router mediante un mezzo condiviso wireless LAN: Collegamento radio al posto del cavo es., Lucent Wavelan 10 Mbps Accesso wireless su aree più vaste Es. CDPD (Cellular Digital Packet Data): accesso wireless a router di ISP attraverso una rete cellulare router Punto di accesso Terminali mobili 1: Introduction 42
Physical Media Bit: propagato tra le coppie trasmettitore/ ricevente physical link: cio che connette trasmettitore e ricevente guided media: I segnali si propagano in media solidi: rame, fibra ottica, cavo coassiale unguided media: I segnali si propagano liberamente, e.g., radio Doppino telefonico Twisted Pair (TP) Due fili di rame isolati Categoria 3: cavo telefonico tradizionale, 10 Mbps Ethernet Categoria 5: 100Mbps Ethernet 1: Introduction 43
Physical Media: coax, fiber Coaxial cable: Due conduttori concentrici in rame bidirezionale Banda fissa: Cavi a canale singolo legacy Ethernet Broadband (banda larga): Cavi a canale multiplo HFC Fiber optic cable: Fibra ottica che conduce impulsi luminosi, ogni impulso e un bit Alata velocita operativa: high-speed point-to-point transmission (e.g., 10 s-100 s Gps) Bassa probabilita di errore: ripetitori molto lontani; immune da rumore electromagnetico 1: Introduction 44
Physical media: radio Signale trasmesso nello spettro elettromagnetico no wire cavo fisico bidirezionale Effetti di propagazione nell ambiente: riflessione ostacolato dagli oggetti interferenze Radio link types: terrestrial microwave e.g. up to 45 Mbps channels LAN (e.g., Wifi) 2Mbps, 11Mbps, 54 Mbps wide-area (e.g., cellular) e.g. 3G: hundreds of kbps satellite Kbps to 45Mbps channel (or multiple smaller channels) 270 msec end-end delay geosynchronous versus low altitude 1: Introduction 45
Ritardo di trasferimento nelle reti a pacchetto Quattro sorgenti di ritardo ad ogni salto A Trasmissione 1. Processamento al nodo: Correzione di errore sui bit calcolo link di uscita 2. Attesa in coda Propagazione Attesa per la trasmissione Dipende dalla congestione nel router B Elaborazione nel nodo Accodamento 1: Introduction 46
Ritardo di trasferimento nelle reti a pacchetto (2) 3. Ritardo di trasmissione A R= banda sul link (bps) L=lunghezza pacchetto (bit) Tempo per trasmettere pacchetto sul link = L/R Trasmissione 4. Ritardo di propagazione: d = lunghezza link fisico s = vel. propagazione nel mezzo (~2x10 8 m/ sec) Ritardo di propagazione nel mezzo = d/s Attenzione: 3 e 4 sono quantità diverse! Propagazione B Elaborazione nel nodo Accodamaento 1: Introduction 47
Ritardo di coda nelle reti a pacchetto (3) R=banda del link (bps) L=lungh. pacchetto (bit) a=frequenza (rate) di arrivo dei pacchetti (packets/sec) Intensità del traffico = La/R La/R ~ 0: ritardo medio di coda piccolo La/R -> 1: ritardo medio di coda grande La/R > 1: più pacchetti di quanti possano essere smaltiti, il tempo di attesa in coda tende a divenire infinito! (in realtà perdita) 1: Introduction 48