Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Reti di Calcolatori
1
Università di Bologna - Corso di Laurea in Informatica
Riferimenti bibliografici
• Libri di Testo:
– L. L. Peterson, B. S. Davie, Computer Networks - A Systems Approach,
3rd Edition, Morgan Kaufmann, San Francisco, CA, 2003.
• Disponibile anche nella traduzione italiana: L. Peterson - B. Davie, Reti di
Calcolatori, APOGEO, Milano, 2004. ISBN 88-503-2158-9.
– F. Halsall, Computer Networking and the Internet - 5th Edition, Addison
Wesley 2005.
• Disponibile anche nella traduzione italiana.
Modalità d’ esame
• L'esame di RdC e' integrato con l'esame di LPR
– questi due corsi danno luogo ad un solo voto
– il voto finale dell'esame integrato RdC-LPR si ottiene dalla combinazione dei voti
ottenuti nei due esami distinti
– i due esami non sono svolti contestualmente
– il voto ottenuto in ognuna delle due prove e' mantenuto valido per l'intero Anno
Accademico.
• RdC: prova scritta, obbligatoria, + prova orale, facoltativa
– è possibile confermare il voto della prova scritta, senza svolgere la prova orale
– è consentito “sedere” alla prova scritta quante volte si vuole
– la consegna di una prova scritta annulla eventuale voto ottenuto in precedente
appello
• LPR: Sviluppo di un progetto (relazione scritta + demo)
• Appelli d’esame: 6 per A.A.
2
Università di Bologna - Corso di Laurea in Informatica
Promemoria
• Lucidi delle lezioni (3pp, formato pdf) disponibili all’URL:
http://www.cs.unibo.it/~panzieri/Reti/prog.html
User: RdCstudent
Password: UniBoRdC90
• N.B.:
– NON SOSTITUISCONO I LIBRI
– non rispondo a email in cui si richiedono spiegazioni relative ai
lucidi
– non rispondo a email non provenienti da cs.unibo.it
– se avete bisogno di chiariment i , l’orario di ricevimento è il
mercoledi dalle 11:30 alle 13:00
Il problema
• Costruire una “rete di elaboratori” capace di
– crescere a dimensioni “globali”
– supportare varietà di applicazioni (tlconf., VoD, distr. comp., …)
3
Università di Bologna - Corso di Laurea in Informatica
Attualmente
Host
Host
Application
Host Host
4
Università di Bologna - Corso di Laurea in Informatica
router
workstation
• Milioni di dispositivi di calcolo server
interconnessi mobile
local ISP
• Hosts (o end-systems)
– pc’s, workstations, servers, PDA’s, …
– eseguono applicazioni di rete regional ISP
• Link di comunicazione
– fibra, rame, radio, satellite
• routers: trasmettono pacchetti
contenenti dati attraverso la rete
company
network
Reti di Calcolatori (Fabio Panzieri) 10
5
Università di Bologna - Corso di Laurea in Informatica
company
network
Reti di Calcolatori (Fabio Panzieri) 11
Servizi di rete
6
Università di Bologna - Corso di Laurea in Informatica
Cos’e un protocollo?
• Protocolli umani • Protocolli di rete:
– regolano interazioni fra umani – simili a quelli umani
• acquisto biglietti di viaggio – eseguiti da h/w e s/w anzichè da
umani
• regole di precedenza in auto,
– tutte le comunicazioni di rete
in coda
sono gestite da protocolli
• Messaggi specifici vengono • Protocolli di rete definiscono:
trasmessi/ricevuti – formato dei messaggi
• Azioni specifiche vengono – azioni da intraprendere in seguito
a trasmissione e ricezione di
eseguite in conseguenza dei messaggi
messaggi trasmessi e ricevuti. • Formato: sintassi
• Azioni: semantica
Esempio di protocollo
Un protocollo umano e un protocollo di rete:
buon giorno
TCP connection
req.
‘n giorno
TCP connection
Che ora è? reply
Get http://www.cs.unibo.it/~panzieri
le 2:00
<file>
time
7
Università di Bologna - Corso di Laurea in Informatica
Architetture di protocolli
• s/w di comunicazione strutturato gerarchicamente
• Uso di “astrazione” per nascondere complessità
• Astrazioni alternative ad ogni livello
Internet
Host-to-host connectivity IP
Hardware Network
8
Università di Bologna - Corso di Laurea in Informatica
Connettività
• Abilitare comunicazione fra computers interconnessi
– Reti private possono voler limitare il n. di computers abilitati a
comunicare far loro per ragioni di sicurezza/privacy
– Reti pubbliche (p.e. Internet) progettate in modo da crescere
arbitrariamente in dimensioni (p.e. n. di utenti, n. di elaboratori
interconnessi, distanza geografica fra questi)
• Reti pubbliche devono poter “scalare”
• Tipi di connettività
– Diretta
– Indiretta
• Connettività a vari livelli di astrazione:
– Macchina (p.e. host-to-host)
– Sistema operativo (p.e. driver-to-driver)
– Processo (p.e. process-to-process)
=> protocolli specifici ad ogni livello
Reti di Calcolatori (Fabio Panzieri) 18
9
Università di Bologna - Corso di Laurea in Informatica
Connettività diretta
• Nodi connessi direttamente fra loro mediante qualche
supporto fisico
• Componenti di base:
– link: cavo coassiale, fibra ottica, canale satellitare, …
– nodo: elaboratore “general-purpose” (workstation), elaboratore
dedicato (p.e. file server, router)
• Link diretti
a) Punto-punto
b) Accesso multiplo
– link condiviso
– distanza limitata
– n. di nodi limitato (con l’eccezione del satellite)
Figure 1.12 Satellite systems: (a) broadcast television; (b) data communications
Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005
Canale satellitare:
- ampiezza di banda elevata (500 MHz)
- fornisce linee ad alta velocità sfruttando “TDM” del canale (cf. più avanti)
Reti di Calcolatori (Fabio Panzieri) 20
10
Università di Bologna - Corso di Laurea in Informatica
Connettività indiretta
• Reti commutate (switched networks)
– commutazione di circuito vs. commutazione di pacchetto
• I nodi connessi ad almeno due link eseguono s/w che può
trasmettere dati ricevuti da un link su un altro link. Sono
chiamati switches, e formano la switched network.
– I nodi interni alla “nuvola” implementano la switched network.
– I nodi esterni alla “nuvola” usano la rete (i.e., hosts).
11
Università di Bologna - Corso di Laurea in Informatica
12
Università di Bologna - Corso di Laurea in Informatica
Connettività indiretta
• Reti possono essere connesse ad altre reti per formare
un internetwork (Internet e’ una specifica istanza di
internetwork).
– Nodo connesso a due o più reti è chiamato router o gateway, e
svolge le funzioni di uno switch.
Host
Internetwork router/gateway
Connettività
responsabilità principali
• Garantire:
R1: Utilizzo ottimale dei canali di comunicazione
• Strategie di commutazione del canale
R2: Raggiungibilità delle risorse in rete
• Identificazione
• Indirizzamento
• Instradamento
13
Università di Bologna - Corso di Laurea in Informatica
R1:
strategie di commutazione
• Commutazione di circuito (p.e. rete telefonica):
– circuito dedicato fra src e dst;
– consente trasmissione/ricezione di flusso di bit
– La rete
• stabilisce circuito dedicato tra src e dst attraverso serie di link;
• src invia flusso di bit su circuito
• Commutazione di pacchetto: store-and- forward mediante
send/receive di messaggi (o pacchetti) di dimensione max.
predefinita:
– Nodi scambiano pacchetti fra loro
• ogni pacchetto contiene dst.addr.
– Ogni switch
• carica in memoria (store) locale i pacchetti che riceve, e
• instrada (forward) ogni pacchetto sul link appropriato.
• Reti di computer: a commutazione di pacchetto (perché …)
Src1 Rcv1
Src2 Rcv2
Switch 1 Switch 2
Src3 Rcv3
14
Università di Bologna - Corso di Laurea in Informatica
Src1
Switch
Src2 … Dst
Src3
R1: Multiplexing
• STDM (Synchronized Time Division Multiplexing)
– Uso del link diviso in “finestre” (o “quanta”) di tempo
– Ogni flusso riceve un quantum di tempo durante il quale può
trasmettere (tecnica di round-robin per assegnare i quanta di tempo)
• FDM (Frequency Division Multiplexing)
– Ogni flusso trasmesso usando una frequenza diversa
• Vantaggi
– Semplici da implementare
• Svantaggi
– Se src non ha dati da trasmettere il quantum o la frequenza
assegnatele sono inutilizzate (i.e. il canale rimane “idle”)
– Max n. di flussi deve essere noto in anticipo per poter definire i
quantum o la frequenza da assegnare ad ogni src.
15
Università di Bologna - Corso di Laurea in Informatica
Host
SWITCH
A C2 A2 D2 D1 B1 C1 A1
B buffer
D1 ….…. A1
clock
C Output
D A
D C B
Quantum per
flusso B
• Vantaggi:
– if singolo flusso di dati then accesso al link senza attesa
– Eliminazione tempi di “non utilizzo” del canale => commutazione di
pacchetto efficiente
16
Università di Bologna - Corso di Laurea in Informatica
Ciclo di trasmissione A1 A2 A3 C1 B1
Q1 Q2 Q3 Q4 Q1 t
Implicazioni:
– Trasmissione: messaggi di lunghezza arbitraria devono essere
frammentati in pacchetti
– Ricezione: pacchetti devono essere riassemblati a formare messaggio
originale.
– Ogni flusso invia sequenza di pacchetti su link fisico
– Decisione su quale flusso servire presa dallo switch al momento della
trasmissione di ogni pacchetto
– if singolo flusso then switch trasmette sequenza di pacchetti di quel
flusso
– Politica dello switch di trasmissione dei pacchetti: FIFO
– Se switch riceve pacchetti più velocemente di quanto possa
trasmetterli su link, li deve mantenere (“bufferizzare”) al suo interno
• if buffer full then scarta pacchetti; /* congestione allo switch */
17
Università di Bologna - Corso di Laurea in Informatica
18
Università di Bologna - Corso di Laurea in Informatica
19
Università di Bologna - Corso di Laurea in Informatica
Funzionalità
20
Università di Bologna - Corso di Laurea in Informatica
Funzionalità
• Problema:
– Identificare requisiti applicativi comuni, p.e.:
• garanzia di consegna messaggi
• ordinamento messaggi
• privacy/sicurezza,...
• Obiettivo:
– Nascondere all’applicazione complessità di rete
– Fornire molteplicità di servizi di comunicazione che l’applicazione può
scegliere
• Metodo:
– 1. Catturare i requisiti di diverse classi di applicazioni
– 2. Identificare requisiti comuni
– 3. Incorporare nel s/w di rete funzionalità che soddisfano 2.
21
Università di Bologna - Corso di Laurea in Informatica
22
Università di Bologna - Corso di Laurea in Informatica
Architettura risultante
• Ogni protocollo può supportare applicazioni diverse
– RRP (RequestReplyProtocol), MSP (MessageStreamProtocol), HHP (Host-to-
HostProtocol)
– ogni livello può implementare protocolli diversi
– ogni protocollo mantiene specifica interfaccia
I2
MSP RRP RRP MSP
L2
I1
HHP HHP
L1
23
Università di Bologna - Corso di Laurea in Informatica
• 1º approccio:
– S/w di rete fornisce comm’s host-to-host (flusso di pacchetti
fra hosts remoti)
– Hosts implementano IPC
Pros: Semplifica switches (trasmissione di pacchetti, solamente)
Cons: Complessità di IPC negli hosts
• 2º approccio:
– IPC implementato da switches
Pros: rete può supportare dispositivi “ottusi” (p.e. telefoni)
Cons: complessità implementazione switch aumenta
Affidabilità
• Consegna affidabile di messaggi: requisito fondamentale
• Non esistono canali di comunicazione “perfetti”
– Tolleranza ai guasti
• problemi h/w e s/w a vari livelli
• Problemi h/w
• Workstation crash e re-boot
• Cavo danneggiato fisicamente
• Interferenze elettriche
• Buffer overflow (congestione) in switch
• Problemi s/w
• Trasmissione pacchetti a destinazioni arbitrarie (switch seleziona link errato)
• N.B.:
– Definire servizi di comunicazione “utili” richiede conoscenza sia dei requisiti
applicativi, sia dei limiti della tecnologia usata.
– Difficoltà:
• coprire gap fra requisiti applicativi e limiti tecnologici
• importanza del modello dei guasti (i.e., che sia realistico)
24
Università di Bologna - Corso di Laurea in Informatica
Affidabilità
• Classi di guasti
Livello Causa
Bit campi magnetici, interferenze elettriche, “burst” di bits
errore: 10-6, 10-7 (rame); 10-12, 10-14 (fibra ottica)
Packet congestione (switch buffer overflow), switch misrouting
Node link fisico danneggiato, crash di nodo
BER
• Misura dell’affidabilità di un canale
– tasso medio di errore sui bit (Bit Error Rate - BER)
• probabilità che un bit sia danneggiato/alterato in trasmissione in
un determinato intervallo di tempo
– in canale a bit rate costante, BER equivale a probabilità che
un bit in un n. definito di bit sia danneggiato.
– p.e. BER = 10-3 => 1 bit errato ogni 1000 bit trasmessi
• BER noto => blocco dati dimensionato in modo da minimizzare
probabilità di errore
– p.e. BER = 10-3 => block size << 1000 bit
• in generale, dato P (probabilità BER) e N (n. di bit in un blocco), se
gli errori sono casuali, la probabilità PB che blocco contenga un
errore sui bit è PB = 1 - (1 - P)N
• che si approssima NxP, se NxP<1
25
Università di Bologna - Corso di Laurea in Informatica
BER (esempio)
Guasti
Interferenza
canale di comunicazione
buffer
buffer
overflow
Livello Packet P5 P4 P3 P2 P1
P5 Switch
26
Università di Bologna - Corso di Laurea in Informatica
Guasti
crash di nodo
Livello Node
switch
switch
Host A Host B
switch switch
INTERNET
Performance
• Prestazioni delle computazioni in ambito distribuito dipendono anche da
efficienza con cui la rete consegna dati.
• Metriche principali:
– Bandwidth (o throughput): numero di bit che possono essere trasmessi in un
determinato intervallo di tempo.
• P.E. 10 Mbps = 107 bit al secondo.
• Bandwidth: tempo di trasmissione di ogni singolo bit.
– P.E. in rete da 10Mbps, 0.1 µs (microsecondi) necessari a trasmettere un bit.
– Latency (o ritardo): tempo necessario a singolo bit per percorrere distanza da src a
dst.
– P.E. rete intercontinentale: 24 ms (millisecondi)
• a 2.3 x 108m/s, in 24 ms un bit percorre 5520 Km (distanza Londra - New York = 5585 Km)
– Throughput: sinonimo di bandwidth, oppure:
• prestazioni misurate di un sistema.
– P.E.: 2 nodi comunicanti via link a 10 Mbps possono raggiungere throughput = 2 Mbps
(causa: s/w overheads)
27
Università di Bologna - Corso di Laurea in Informatica
1 µs 1 secondo
– Canale a 2Mb/s: un bit trasmesso ogni 0.5 µs
1 µs
1 secondo
N.B. 1 s = 103 ms (millisec.) = 106µs (microsec) = 109 ns (nanosec.) = 1012 ps (picosec.)
=> 1ms = 10-3 s; 1µs = 10-6 s; 1ns = 10-9 s; 1ps = 10-12 s.
10 Mbps = 10.000.000 bps => 1/10.000.000 s/bit = 1/10 x 10-6 s/bit = 1/10 µs/bit
Latenza
• Tempo impiegato da un bit a percorrere distanza src -> dst
• Latenza formata da:
– ritardo di propagazione della velocità della luce;
• variabile da canale a canale, a seconda del “mezzo” di cui il canale è costituito; p.e.:
– nel vuoto: 299.792.458 m/s (circa 3 x 108 metri/secondo, i.e. 300.000 Km/s)
– su rame, circa 2.3 x 10 8 m/s
– su fibra, circa 2 x 108 m/s
– ritardo di trasmissione: tempo necessario a trasmettere unità dati
• funzione di bandwidth e dimensione pacchetto
– ritardo di accodamento (queueing delay):
• tempo speso nei buffer degli switch (causato da store and forward).
• Round Trip Time (RTT): latenza src -> dst -> src
28
Università di Bologna - Corso di Laurea in Informatica
29
Università di Bologna - Corso di Laurea in Informatica
Delay x Bandwidth
• Canale di comunicazione fra due processi: pipe (condotto)
• Indica quanti bit src deve trasmettere prima che il primo bit trasmesso sia
ricevuto a dst
• Delay = lunghezza della pipe
• Bandwidth = diametro della pipe
• Delay x Bandwidth = volume (i.e.,n. di bits che pipe può contenere)
delay
bandwidth
PIPE
30
Università di Bologna - Corso di Laurea in Informatica
Delay x Bandwidth
• P.e.: link intercontinentale, latenza = 50 ms, bandwidth = 45 Mbps
DxB = 50 x 10-3 s x 45 x 106 b/s =
= ((5 x 10)/1000)s x (45 x 106)b/s =
= (5/100) x 45 x 106 b = 2.25 x 106 b
Poiché 106 b = (1.000.000/8)B = 125.000B e (125.000/1024)B =
= 122.07 KB
=> DxB = 2.25 x 122.07 KB = 275 KB (circa)
• Src attende 1 bit di ack da dst
=> src può inviare il doppio del delay x bandwidth di dati prima di ricevere ack
• Se dst vuole richiedere STOP di trasmissione
=> dst può ricevere il doppio del delay x bandwidth di dati prima che src riceva
segnale di STOP
Esempio 1
Svolgimento:
1. Conversione in bit di File_size = 1000KB = 103 x 210 x 23 b
2. RT = Size/BW =
File_size/BW = (103 x 210 x 23 )b/(1.5 x 106)bps =
(103 x 213)/1500000) s = 8192000/1500000 s ≈ 5.46 s
31
Università di Bologna - Corso di Laurea in Informatica
Esempio 2
• Calcolare tempo totale TT necessario a trasmettere un file di 1000KB
assumendo
1. BW= 1.5Mbps, RTT = 100 ms, pkt-size = 1KB
2. Prima di trasmettere file, src e dst eseguono “handshake” (costo = 2RTT)
3. Dopo trasmissione di ogni pacchetto, src attende 1 RTT
Svolgimento
– Src deve frammentare file in pkts di 1KB:
File_size = 1000KB => 1000 pkts di pkt_size = 1KB = 8Kb
– Per ogni pacchetto impiega tempo di trasmissione
pkt-time = (pkt_size/BW) + RTT =
= (8 x 210)b/(1.5 x 106 ) bps + RTT = (8192/1500000)s + 0.1s ≈
≈ 0.0055 s + 0,1 s = 0,1055
– Per 1000 pkts + handshake
TT = 1000 x 0.1055s + 0.2s = 105.7 s
Esempio 3
• Dato un canale con BW = 1.5 Mbps e RTT = 100ms,
calcolarne la capacità DxB (i.e., il delay x bandwidth).
• Svolgimento:
32
Università di Bologna - Corso di Laurea in Informatica
Esempio 4
• Computers A e B connessi da un canale con DxB = 73Kb e RTT =
100ms. A trasmette a B pkts di pkt_size = 1KB; quanti pkts potrà
trasmettere A prima di ricevere 1 bit di ack da B?
• Svolgimento
– RTT = 100ms ⇒ delay (unidirezionale) = 50 ms (i.e.,tempo impiegato da 1
bit di ack da B ad A) ⇒
⇒ A può trasmettere per 100ms prima di ricevere ack da B
– Canale ha DxB = 73Kb in 50ms,
=> capacità C doppia in 100ms;
C = 73Kb x 2 = 146Kb = (146/8)KB ≈ 18KB
– C = 18KB, singolo pkt da A a B = 1KB
=> A potrà inviare 18 pkts a B prima di ricevere 1 bit ack da B.
N.B.: pkts da A saturano pipe; non necessariamente ricevuti da B.
Esempio 5
33
Università di Bologna - Corso di Laurea in Informatica
Soluzione
Architetture di rete
• Requisiti applicativi per
– connettività affidabile, ad elevate prestazioni, sicura …
– scalabilità, adattabilità ad accogliere nuove tecnologie, …
introducono complessità nel s/w di rete
• Architettura di rete: schema progettuale che guida la
realizzazione dell’infrastruttura di comm’s H/W e S/W richiesta.
• Software di rete progettato come “gerarchia di servizi”:
– alla base: servizi offerti dall’hardware;
– si aggiunge sequenza di “livelli” (o “strati”) software (moduli software),
ciascuno dei quali fornisce un livello di servizi più elevato (più
“astratto”).
34
Università di Bologna - Corso di Laurea in Informatica
Architetture di rete
• Principio progettuale: servizi forniti da un livello implementati
usando i servizi forniti dal livello sottostante.
– Medesimo principio usato per progettare qualunque sistema complesso.
• p.e., file system progettato gerarchicamente: partendo da servizi di basso
livello h/w di lettura/scrittura di blocchi di disco, si costruiscono servizi di
più alto livello di create, open, close, read, write di oggetti chiamati files.
Esempi
– Fig. (a): architettura a quattro livelli.
• L0: xmit/rcv flusso di bit
• L1, usa L0 per implementare scambio di pacchetti host-to-host
• L2 usa L1 (host-to-host) per implementare scambio di messaggi process-to-
process.
• Programmi applicativi in L3 usano i servizi forniti da L2 per costruire
applicazioni specifiche (p.e., file transfer, email,…).
– Fig. (b): ogni livello può fornire uno o più tipi di servizi, p.e. L2.
Hardware L0 Hardware
(a) (b)
Reti di Calcolatori (Fabio Panzieri) 70
35
Università di Bologna - Corso di Laurea in Informatica
Protocolli
• “Building blocks” di architettura di rete
• Ogni protocollo mantiene 2 interfacce
– Interfaccia di servizio: operazioni rese disponibili
dall’implementazione del protocollo
– Interfaccia “peer-to-peer” : formato messaggi scambiati fra “peer” +
regole di procedura
N.B. “peer”: componenti allo stesso livello di astrazione (i.e., “di
pari grado”)
• Termine “protocollo”: duplice significato
1. Specifica dell’interfaccia peer-to-peer
2. Modulo implementazione di questa interfaccia
I/f di servizio i
Protocollo i Protocollo i
Li
I/f peer-to-peer
Comunicazione peer-to peer
Reti di Calcolatori (Fabio Panzieri) 72
36
Università di Bologna - Corso di Laurea in Informatica
Modello object-oriented
• Oggetto: struttura dati con associate operazioni (metodi) che
possono essere esportate per poter essere invocate da altri
oggetti.
• Oggetti con caratteristiche simili raggruppabili in classi; p.e.:
– Classe protocolli
– Classe messaggi
• Oggetto protocollo esporta interfaccia di servizio e interfaccia
peer-to-peer
– Interfaccia di servizio: esporta i metodi che altri protocolli sulla
stessa macchina possono invocare
– Interfaccia peer-to-peer: definisce formato e significato dei messaggi
scambiati fra entità “peer” (i.e. istanze del protocollo su macchine
distinte).
– incapsulamento
– mpx/dmpx
37
Università di Bologna - Corso di Laurea in Informatica
Incapsulamento
• Applicazione in Host 1 “invia messaggio” (“data”) ad
applicazione in Host 2: Host 1 Host 2
– in pratica, invoca procedura implementatata da Application Application
RRP locale program program
• RRP appende RRP header info. di controllo a dati per
Data Data
RRP peer. Messaggio “combinato” viene trasmesso, i.e.
passato a modulo HHP locale (via procedure call).
RRP RRP
• HHP appende header specifico per HHP a messaggio, e
lo trasmette a Host2 (invoca primitiva livello
RRP Data RRP Data
sottostante).
• In generale, ogni livello
HHP HHP
– in trasmissione (Host1):
1. incapsula il msg in proprio <hdr; DATA; tail>;
2. trasmette via primitive di livello sottostante
– in ricezione (Host2), ogni livello
1. riceve msg mediante primitive del livello sottostante
2. rimuove il proprio hdr e tail
3. esegue processing specifico di hdr e tail;
4. passa il msg DATA (privato di hdr e tail) al livello HHP RRP Data
superiore.
Multiplexing/Demultiplexing di protocollo
• Protocollo supporta applicazioni diverse
– RRP src include demultiplexing key (demux key) in RRP header
– RRP dst esamina demux key e consegna msg a destinazione appropriata
• Livello supporta protocolli diversi: stesso meccanismo
MSP MSP
RRP RRP HDR MSG RRP
38
Università di Bologna - Corso di Laurea in Informatica
OSI RM
Application Application
Presentation Presentation
Session Session
Transport Transport
39
Università di Bologna - Corso di Laurea in Informatica
Livelli in OSI RM
• Physical Layer:
– Gestisce la comunicazione di flussi di bits sul canale fisico.
• Data Link Layer:
– Struttura e trasmette/riceve un flusso di bit in unità dati chiamate
frames. L’interfaccia di rete (network adaptor card) collegata ad un
computer implementa un protocollo data link., i.e. l’host riceve frames, non
stringhe di bits.
• Network Layer:
– Gestisce l’istradamento dell’informazione fra i nodi in una rete a
commutazione di pacchetto. L’unità di informazione a questo livello è il
pacchetto.
• Questi tre livelli sono presenti in tutti i nodi della rete: switches e
hosts.
Livelli in OSI RM
• Transport Layer:
– Implementa comunicazioni process-to-process; l’unità di trasmissione a
questo livello è il messaggio.
• Session Layer:
– Supporta gestione integrata di flussi di trasporto diversi di una
medesima applicazione, p.e. flussi audio e video.
• Presentation Layer:
– Gestisce differenze di rappresentazione dati fra hosts (p.e. big-endian
vs. little-endian, dimensioni tipi di dato come interi a 16, 32, o 64 bits)
• Application Layer:
– Implementa protocolli applicativi specifici, p.e. FTP, HTTP, Telnet,
SMTP …
• Transport Layer e superiori eseguiti in Host solamente.
40
Università di Bologna - Corso di Laurea in Informatica
Livelli in OSI RM
• Osservazioni:
– Physical layer: consente trasmissione di flussi di bits su canale fisico (cavo,
fibra, spazio,…)
– Data link layer: consente comunicazione affidabile di frames tra coppie di nodi
direttamente connessi.
• Canale punto-punto: due nodi sono fisicamente connessi da un canale di comunicazione
punto-punto che assolve la funzione di un cavo di collegamento (p.e. canale in fibra,
linea telefonica).
• Canale ad accesso multiplo (canale broadcast): il Data Link layer è anche responsabile
del controllo degli accessi al canale (condivisione risorse).
– Network layer: abilita la comunicazione fra due nodi qualunque, arbitrariamente
connessi
• Caratteristica avanzata: comunicazioni multicast (un mittente molte destinazioni).
Architettura INTERNET
• Quattro livelli solamente:
– I primi due livelli OSI RM corrispondono al livello Network di Internet.
– L’ Internet Protocol (IP) corrisponde al Network layer di OSI RM.
– TCP (Transmission Control Protocol) and UDP (User datagram Protocol)
corrispondono al Transport layer di OSI RM.
– le applicazioni possono usare TCP, UDP e protocolli di livello più basso.
Application layer
Presentation layer Application
Session layer
Transport layer TCP UDP
Network layer IP
Data Link layer
Network
Physical layer
41
Università di Bologna - Corso di Laurea in Informatica
Architettura Internet
• Definita da Internet Engineering Task Force (IETF)
• Gerarchia lasca
TCP UDP
IP
Programmare la rete
• API (application programming interface)
– Interfaccia supportata dall’architettura di rete
– Consiste di insieme di primitive per la programmazione delle
comunicazioni via rete
– Definisce sintassi utilizzabile per invocare servizi implementati dai
protocolli di rete
– Convenzionalmente implementata dal sistema operativo
• Implementazione di applicazioni di rete
– Concettualmente, simile a implementazione di gerarchia di protocolli
• Applicazione invoca servizi di rete come protocollo di livello X invoca servizi
implementati da protocollo di livello X-1
– In pratica, implementazione di gerarchia di protocolli si differenzia per
• Limitare il numero dei context switch
• Limitare il numero delle operazioni di copia
42
Università di Bologna - Corso di Laurea in Informatica
L’interfaccia socket
43
Università di Bologna - Corso di Laurea in Informatica
Interfaccia “socket”
Protocolli
modelli implementativi
• Process-per-protocol
• Process-per-message
(a) (b)
Process-per-Protocol Process-per-Message
44
Università di Bologna - Corso di Laurea in Informatica
Modello process-per-protocol
Modello process-per-message
45
Università di Bologna - Corso di Laurea in Informatica
Ricezione messaggi
• fonte di inefficienza: rcv bloccante
=> protocollo a livello X deve attendere terminazione rcv di
protocollo a livello X-1 (equivalente a context switch)
• Risolto mediante upcall deliver (consegna messaggio
ricevuto a livello superiore)
– upcall: chiamata di procedura da livello X-1 a livello X
• principio analogo a “interrupt handling”
TCP
sendIPmsg() deliverTCPmsg()
IP
Reti di Calcolatori (Fabio Panzieri) 91
46
Università di Bologna - Corso di Laurea in Informatica
Applicazione
copyout_msg()
send() deliver() copyin_msg()
Protocollo
Scatter-Gather
• Uso di astrazione “messaggio”:
• Messaggio: stringa di bytes di qualche lunghezza predefinita condivisa da i
vari protocolli ai diversi livelli di astrazione
• Operazioni su “messaggio”: manipolano stringa di bytes
– msgAddHdr(…); msgStripHdr(…);
– msgFragment(…); msgReassemble(…);
• Tecnica dello “scatter/gather”
– lista di “puntatori” che indirizzano, per ogni livello, porzioni di msg
Lista di puntatori
ø
Lj HDR Dati
Lj Lj
HDR HDR Ii
Dati Dati
Li Li Lj Lj
Li HDR Dati
Li Li
Scatter-gather copy-and-store
47
Università di Bologna - Corso di Laurea in Informatica
OSI RM
Application Application
Presentation Presentation
Session Session
Transport Transport
48
Università di Bologna - Corso di Laurea in Informatica
Componenti di segnalazione
segnali
Node adaptor adaptor Node
bits
frames
49
Università di Bologna - Corso di Laurea in Informatica
memoria
50
Università di Bologna - Corso di Laurea in Informatica
Teorema di Nyquist
51
Università di Bologna - Corso di Laurea in Informatica
52
Università di Bologna - Corso di Laurea in Informatica
ADSL
Local loop
53
Università di Bologna - Corso di Laurea in Informatica
VDSL
• Simmetrico
12.96 Mbps ≤ bandwidth ≤ 55.2 Mbps (dipendentemente da
distanza da switch)
• Switch ottico
– gestito da compagnia telefonica
– Serve comunità di utenti (p.e. un quartiere)
CAble TV
(o cable modem)
• Servizio alternativo ad ADSL
– Fornisce collegamento ad alta velocità fra host (subscriber) e ISP
• Utilizza infrastruttura TV via cavo
– Sottoinsieme di canali TV messi a disposizione per trasmissione dati
digitali
• Bandwidth: 6MHz per canale
• Asimmetrico
– tecnologia attuale: 40Mbps downstream, 20Mbps upstream
• Downstream maggiore perché si prevede trasmissione di traffico ≠ caratteri
• Condiviso
– Comunità di utenti condividono bandwidth
=> Meccanismi di arbitraggio per allocazione di banda
54
Università di Bologna - Corso di Laurea in Informatica
Wireless
• Standard attuali: per fonia e trasmissione dati
– PCS (Personal Communication Services): USA, CANADA
– GSM (Global System Mobile): EUROPA (e resto del mondo)
– Bluetooth (Ericsson, Nokia, IBM, Toshiba, Intel)
• Standard industriale per coprire brevi distanze (decine di metri)
• Disegnato per uso in qualunque dispositivo (WSs, stampanti, proiettori, telefoni, …)
– IEEE 802.11: accesso a canale condiviso in area geografica limitata
• In corso di sviluppo per comm’s su scala planetaria
– Costellazioni di satelliti
P.e. Teledesic: rete di satelliti in grado di fornire canale da 2048 Mbps fra ogni
coppia di hosts sulla terra
• 288 satelliti a bassa orbita (1350 Km dalla Terra)
• Ogni satellite: 1440 canali satellite-terra a 16Kbps, aggregabili in gruppi di 128 max.
per fornire canali da 2048 Mbps
• Ogni satellite connesso ad 8 vicini da canali da 155.52 Mbps
55
Università di Bologna - Corso di Laurea in Informatica
Tecniche di codifica
• NRZ (Non Return to Zero)
– Valore 1 codificato in segnale high, valore 0 codificato in segnale low
(relativamente a baseline)
stringa di bit 0 0 1 0 1 1
codifica NRZ
• Problemi
– Segnale low prolungato: sequenza di 0 o link guasto?
– Segnale high prolungato (i.e. sequenza di 1): causa variazione di valor
medio (baseline)
– Sequenze di 0 o di 1 inibiscono clock recovery, a causa di assenza di
transizioni, provocando clock drift
Tecniche di codifica
stringa di bit 0 0 1 0 1 1
clock
codifica NRZI
56
Università di Bologna - Corso di Laurea in Informatica
Tecniche di codifica
• Manchester encoding
– Src trasmette XOR di NRZ encoding e clock
• 0 codificato come transizione low -> high
• 1 codificato come transizione high -> low
+ Risolve problema sequenze di 0 o 1 (i.e., abilita clock recovery a rcv)
– Raddoppia il tasso di variazione del segnale
=> dimezza il bit rate
xor
stringa di bit 0 0 1 0 1 1 0 0 0
codifica NRZ 0 1 1
clock 1 0 1
1 1 0
Manchester encoding
Tecniche di codifica
• 4B/5B
– Inserisce bit aggiuntivo in ogni sequenza di 4 bit
i.e. sequenza di 4 bit codificata con codice di 5 bit
– Codici di 5 bit costruiti in modo che
• Ogni codice ha al più un bit 0 in testa
• Ogni codice ha al più due bit 0 in coda
– Codici trasmessi con codifica NRZI
• NRZI risolve problema sequenze di 1
• 4B/5B risolve problema sequenze di 0
• Osservazioni
– 16 i possibili simboli di 4 bit
– 32 i possibili codici di 5 bit
=> 16 codici liberi per scopi speciali,p.e.:
• 11111 “canale inutilizzato”, 00000 “canale non attivo”, 00100 “halt”
• Dei 13 codici rimanenti, 7 violano regole 4B/5B, perciò non utilizzabili
57
Università di Bologna - Corso di Laurea in Informatica
Principio operativo
• Trasmissione di frame da A a B
– A richiede ad adaptor trasmissione di frame da memoria di nodo
• e.g. interfaccia Nodo/Adaptor: xmit(*ptr, length) da buf in A
– Adaptor invia sequenza di bit su link
– Adaptor in B riceve sequenza di bit
• e.g. interfaccia Nodo/Adaptor: deliver(*ptr, lenght) in buf in B
bits
Nodo A adaptor adaptor Nodo B
frames
58
Università di Bologna - Corso di Laurea in Informatica
Framing
STX
SYN
SYN
ETX
59
Università di Bologna - Corso di Laurea in Informatica
8 16 16 8
Beginning Ending
HDLC sequence Header Body CRC sequence
ces
sivo 0 => bit stuffing; scarta bit
suc
bit_
011111 0 => End of Frame
1
1 => sequenza non ammessa; scarta frame
60
Università di Bologna - Corso di Laurea in Informatica
8 8 8 14 42 16
SYN
class
SYN
Protocolli “clock-based”
• SONET (Synchronous Optical NETwork)
– Standard internazionale per trasmissione su fibra ottica
– Gestisce: framing, encoding e multiplexing di flussi a bassa velocità su canale ad
alta velocità
• Framing in SONET
– Ogni frame e’ lunga 125µs
• STS-1 (51.84 Mbps): frame length = 810 bytes
• STS-3 (155.25 Mbps): frame length = 2430 bytes
Frame STS1
Overhead Payload
Hdr
Hdr
Hdr
9 rows
61
Università di Bologna - Corso di Laurea in Informatica
SLIP
• SLIP, Serial Line IP (Rick Adams 1984):
– sviluppato per connettere SUN W/S a Internet via modem e linea telefonica
– incapsula pacchetti IP in frame speciale
• aggiunge flag byte alla fine di ogni pacchetto IP
• se flag byte appare nel pacchetto IP, usa “character stuffing” (2 byte speciali)
• Problemi
– Non svolge controllo di errore
– Supporta solo IP
– Src e rcv devono conoscere relativi indirizzi IP
– Non fornisce autenticazione
– Non è Internet standard
• ne esistono versioni diverse, incompatibili fra loro, e con IP
62
Università di Bologna - Corso di Laurea in Informatica
Frame PPP
• Come HDLC, ma “character oriented”, non “bit oriented”
– (i.e., frame size = n. intero di bytes)
• “flag” = HDLC standard
• “address”: normalmente settato a 1
– tutte le stazioni possono accettare frame
• “control”= 00000011: “no error checking, no SeqNum”
– assume link sufficientemente affidabile; possibile introdurre SeqNum,…
• “protocol”: tipo di info. contenuta in “payload” (NCP, LCP, IP, AppleTalk,…)
• “payload”: lunghezza variabile, default = 1500 B, altrimenti negoziato
• “checksum”: normalmente 2 B, negoziabili 4 B.
63
Università di Bologna - Corso di Laurea in Informatica
64
Università di Bologna - Corso di Laurea in Informatica
65
Università di Bologna - Corso di Laurea in Informatica
Individuazione di errori
• Come individuare “corruzione” di bit (1 diviene 0, o vv.)?
– mediante “ridondanza”, i.e. bit addizionali aggiunti al messaggio
• Bit di parità: un bit (parity bit) viene aggiunto ad un
carattere di 7 bit. P.e. Parità “pari”:
– mittente aggiunge parity bit = 1 o 0 in modo che il n. totale di
1 (bit di parità incluso) sia un numero pari
p.e. parity bit per 0100101 è 1.
– destinatario controlla che ogni byte ricevuto contenga un
numero pari di bit 1, altrimenti individua errore
• L’occorrenza di un errore in un bit può essere individuata, ma non
corretta; un numero pari di errori non può essere individuato.
– Parità dispari: l’opposto di parità pari.
Parità bidimensionale
bit di parità
• Introduce
a) bit di parità per singolo byte
b) bit di parità per ogni posizione 0101001 1
di bit nella frame 1101001 0
– Ne risulta un byte di parità 1011110 1
dati
• Proprietà: 0001110 1
– Individua tutti gli errori di 1, 2,
e 3 bit, e gran parte degli errori
0110100 1
di 4 bit 1011111 0
• CRC (Cyclic Redundancy Code):
più potente 1111011 0 byte di parità
– protegge da “burst” (raffiche) di
errori
66
Università di Bologna - Corso di Laurea in Informatica
Errore “burst”
• Errore “burst” inizia e finisce con bit errato, anche se i bit fra questi due
sono corretti
• Definizione:
– numero di bit compresi fra due bit errati (contando anche i due bit errati)
• Due errori burst consecutivi devono essere separati da almeno B bit
consecutivi corretti, dove B è la lunghezza del “burst”
67
Università di Bologna - Corso di Laurea in Informatica
• Aritmetica polinomiale
– i coefficienti possono assumere valore 0 o 1, solamente
– operazioni sui coefficienti eseguite con aritmetica modulo 2 (i.e.,
senza riporti per l’addizione, né prestiti per la sottrazione)
• Alcune proprietà
– Polinomio B(x) divisibile per polinomio C(x) se B(x) è di grado più
elevato di C(x)
– Polinomio B(x) divisibile una volta per polinomio C(x) se B(x) e C(x)
sono dello stesso grado
– resto della divisione ottenuto sottraendo C(x) a B(x)
– Sottrazione: B(X) XOR C(X)
• i.e., if bit i = bit j then bit i xor bit j = 0 else bit i xor bit j = 1
68
Università di Bologna - Corso di Laurea in Informatica
Esempio
Mittente
Msg = 10011010
Polinomio corrispondente: M(x) = x7+ x4 + x3 + x1
Generatore C(x) = x3+ x2 + 1, i.e. 1101, k = 3 T(x)
1. moltiplicare M(x) per xk ottenendo
• T(x) = x10 + x7 + x6 + x4 (10011010000) Msg 10011010000 : 1101 Generatore G
2. calcolare resto T(x)/C(x) G 1101
3. Sottrarre resto a T(x) resto 1001
• T(x) - resto sicuramente divisibile per C(x) G 1101
4. Trasmette messaggio ottenuto 1000
N.B.: Passo 3. equivale a T(x) XOR resto, i.e. Msg G 1101
concatenato a resto ottenuto in 3. 1011
Ricevente: G 1101
calcola 10011010101/1101 1100
– i.e., divide frame ricevuta per lo stesso G 1101
generatore usato dal mittente 1000
• Resto = 0 => frame corretta, scarta tre bit finali G 1101
• Resto ≠ 0 => errore di trasmissione resto 101
Trasmette 10011010101
69
Università di Bologna - Corso di Laurea in Informatica
Generatori
CRC C(x)
CRC-8 x8+x2+x1+1
CRC-10 x10+x9+x5+x4+x1+1
CRC-12 x12+x11+x3+x2+x1+1
CRC-16 x16+x15+x2+1
CRC-CCITT x16+x12+x5+1
(HDLC)
CRC-32 x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
(ethernet)
70
Università di Bologna - Corso di Laurea in Informatica
Checksum in Internet
• Mittente:
– somma tutte le parole che vengono trasmesse, usando aritmetica
in complemento a 1
– trasmette anche il risultato della somma (checksum)
• Ricevente:
– fa lo stesso
– se checksum calcolato differisce da quello ricevuto, allora errore
• Fornisce protezione “debole”
– p.e. non protegge da modifiche nell’ordine delle parole
– ritenuto sufficiente
Checksum in Internet
u_short cksum(u_short *buf, int count)
{ register u_long sum = 0;
while (count--) /*count: lunghezza di buf in
unità di 16 bit */
{ sum += *buf++;
if (sum & 0xFFFF0000)
{ /*si è verificato riporto;
incrementa risultato*/
sum &= 0xFFFF;
sum++;
}
}
return ~(sum & 0xFFFF); /*due bytes meno significativi
di sum in complemento a 1*/
}
71
Università di Bologna - Corso di Laurea in Informatica
Trasmissione affidabile
• Ricevente scarta frames contenenti errori di trasmissione
• Per ottenere link affidabile
– Ricevente deve segnalare al mittente che ha scartato una frame
– Mittente deve essere in grado di ritrasmettere frames scartate
• Due meccanismi di base:
– acknowledgement (ACK): ricevente invia a mittente una frame di controllo
(frame priva di dati) a indicare che ha accettato un frame inviata dal
mittente
• piggybacking: invio di ACK in frame di dati che destinatario trasmette a mittente
– timeout: se mittente non riceve ACK in un intervallo di tempo predefinito,
ritrasmette frame
• in termini di programmazione:
– mittente attiva timer di una certa durata
if ACK ricevuto prima che il timer termini, then cancella timer
else cattura eccezione dal timer, e ritrasmette
• ARQ (Automatic Repeat Request): tecnica basata su ACK e timeout
Principio operativo:
• Dopo aver inviato una frame, il
mittente attiva time-out e
attende ACK prima di inviare la
frame successiva
• Terminazione del time-out prima di
ricezione ack
=> ritrasmissione frame
• N.B.: Casi c), d)
– perdita/ritardo dell’ ACK
possono provocare richieste
replicate
72
Università di Bologna - Corso di Laurea in Informatica
73
Università di Bologna - Corso di Laurea in Informatica
100Kb
• Src trasmette solo 8Kb per RTT su 200 che può trasmetterne
=> 8/200 = 1/25, i.e. utilizza solo il 4% della capacità della “pipe”.
• Ottimizzazione dell’uso del canale:
– mittente deve poter inviare più di una frame durante l’intervallo di RTT
• in esempio precedente, un massimo (teorico) = 25 frames
• Protocollo Sliding Window lo consente
74
Università di Bologna - Corso di Laurea in Informatica
…
si richiede che
Time
– vi possano essere fino a 8 frame in
transito, e che
– sender possa inviare frame 9
quando riceve ACK di frame 1
=> frames contengono SNs
N.B.: frames inviate sono bufferizzate
…
al sender finché non ACK’ed
=> limite superiore al numero di frames
inviate che possono essere non ACK’ed.
Reti di Calcolatori (Fabio Panzieri) 149
≤ SWS
… …
LAR LFS
75
Università di Bologna - Corso di Laurea in Informatica
≤ RWS
… …
LFR LAF
76
Università di Bologna - Corso di Laurea in Informatica
Esempio
• Supponiamo LFR = 5 e RWS = 4, allora:
1. ultimo ack inviato da receiver era per SeqNum = 4
2. LAF = 9
– if riceve frames 7 e 8 then accetta e bufferizza, no ACK (attende frame 6)
– prima o poi riceve frame 6 (p.e., in ritardo perché persa in precedente
trasmissione)
N.B.: se frame 6 persa, time out a sender termina, e sender ri-invia frame 6
– Ricevente può inviare singolo ACK di frames fino a, ed inclusa, frame 8
– LFR viene incrementato a 8, LAF a 12 (i.e. RWS + 8)
• Ulteriori strategie di ACK
– “negative ack” (NAK)
• nell’esempio precedente, if 6 ricevuto dopo 4 then ricevente richiede
ritrasmissione di 5, i.e. invia NAK per frame 5
• NACK è ridondante, se il sender è dotato di time out
– “selective ack” (SAK): ricevente invia ACK delle sole frames ricevute
N.B.: facilitano sender a mantenere “pipe full”, ma aumentano complessità di
receiver
Reti di Calcolatori (Fabio Panzieri) 153
77
Università di Bologna - Corso di Laurea in Informatica
Esempio
• HDR contiene 3 bit disponibili per S R
SN
sn = 0
⇒ SN = 0,1,…,7
⇒ SWS < (7 + 1)/2 = 4 sn = 1
⇒ SWS = 3 sn = 2
78
Università di Bologna - Corso di Laurea in Informatica
79
Università di Bologna - Corso di Laurea in Informatica
Network Adaptor
• MAC implementa funzionalità di livello data link; p.e. framing, individuazione
di errore
• Funzionalità come Automatic Repeat reQuest e “sliding window” implementate
via s/w in host, di norma.
• Network adaptor
– Interfaccia Link: implementa protocollo MAC
– Interfaccia bus: implementa protocollo con host (interrupts, I/O verso
memoria)
– Buffers necessari a causa delle differenti velocità del bus e del link
Host I/O bus
Bus Link
Adaptor
Ethernet
• Cenni storici
– Sviluppata presso Xerox verso la metà degli anni 70
– Standardizzata da Xerox, DEC, e Intel nel 1978 (Ethernet standard)
– Più tardi, IEEE 802.3 standard ratificato (simile a Ethernet standard).
– Da allora chiamato 802.3 LAN
• Protocollo MAC di Ethernet: di tipo CSMA/CD
– Carrier Sense Multiple Access/Collision Detection
• CSMA/CD
– algoritmo distribuito che fornisce accesso al canale condiviso
• Bandwidth
– 10Mbps, 100Mbps (Fast Ethernet), 1000 Mbps (Gigabit Ethernet)
80
Università di Bologna - Corso di Laurea in Informatica
Host
81
Università di Bologna - Corso di Laurea in Informatica
82
Università di Bologna - Corso di Laurea in Informatica
• preamble: primi 7 bytes <- 10101010 ciascuno, 8º byte <- 10101011 (Start of Frame)
• Manchester encoding dei primi 7 bytes del preamble genera onda quadra (10 MHz)
per 5.6 µs che abilita ricevente a sincronizzare proprio clock con mittente
• dest.addr, src. addr.: identificano host destinazione e sorgente
• type ( demultiplexing key): identifica protocollo di livello superiore
– usa codici superiori al valore 1500 (cf. slide successiva)
• Body: campo dati.
– contiene da 46 bytes min. a 1500 bytes max.
– 46 byte min. necessari per individuare collisione
• CRC: campo di controllo errori
• postamble: simile a HDLC, indica fine frame
N.B. Frame header a livello host: 2 indirizzi di 6 bytes ciascuno + campo type di 2
bytes. Adaptor include preamble, CRC e postamble prima di trasmettere frame.
Reti di Calcolatori (Fabio Panzieri) 166
83
Università di Bologna - Corso di Laurea in Informatica
Indirizzamento
• Indirizzi:
• Indirizzo unico “unicast” di 48-bit assegnato ad ogni adaptor
– 24 bit assegnati da IEEE OUI (Organizationally Unique Identifier)
rimanenti da produttore
• consente di assegnare 224 = 16.777.216 id. diversi
• Broadcast: tutti 1
• Multicast: primo bit è 1 (ma non tutti gli altri sono 1, in modo da distinguere
Multicast da Broadcast)
• Host può programmare il proprio adaptor ad accettare un insieme
di indirizzi Multicast
• Adaptor programmabile ad accettare tutte le frame (modalità promiscua)
• Adaptor riceve tutte le frames, e accetta (i.e. passa al proprio
host):
– Frames indirizzate al proprio indirizzo (unico) unicast
– Frames indirizzate all’indirizzo broadcast
– Frames indirizzate ad ogni indirizzo multicast che l’adaptor è stato
programmato ad accettare
– Tutte le frames, se programmato in modalità promiscua
Reti di Calcolatori (Fabio Panzieri) 168
84
Università di Bologna - Corso di Laurea in Informatica
Trasmissione
• Se canale idle, adaptor:
– Invia immediatamente, senza negoziare uso del canale con altri adaptors
– Dimensione massima del Body inviabile: 1500 bytes
=> adaptor può occupare il canale per intervallo di tempo di lunghezza max.
prefissata
– Deve attendere 9.6µs prima di inviare nuova frame
=> fairness: altri adaptors possono utilizzare il canale
• Se canale busy, adaptor:
– Attende finché idle, quindi trasmette immediatamente (i.e., dopo 9.6µs)
• Protocollo Ethernet chiamato 1-persistent (i.e. adaptor con frame da inviare
trasmette con probabilità 1 quando canale passa da busy a idle)
– Controlla trasmissione per rilevare eventuali collisioni
• Collisione: si verifica quando più adaptors trasmettono contemporaneamente
• Rilevamento di collisione: segnale inviato non è quello in transito sul canale.
• Minima dimensione frame = 64 bytes (i.e., 512 bits)
– necessaria per garantire che collisione venga rilevata
Reti di Calcolatori (Fabio Panzieri) 169
Rilevamento di collisione
• Sia τ il ritardo di propagazione di una frame trasmessa da stazione A alla
destinazione più lontana B.
• Al tempo 0, stazione A invia frame a B.
• Subito prima che frame raggiunga B (al tempo τ − ε, ε: frazione di tempo), B
inizia trasmissione di sua frame, che colide con quella da A al tempo τ
• Quando B rileva collisione, interrompe trasmissione e invia “rumore” (32 bit)
per allertare le altre stazioni in rete.
• Dopo un tempo di al più 2τ, A recepisce il “rumore” e sospende trasmissione.
85
Università di Bologna - Corso di Laurea in Informatica
Exponential backoff
86
Università di Bologna - Corso di Laurea in Informatica
ethernet
bridge bridge
IBM token Ring
FDDI Ring
• Differenza:
– topologia ad anello anziché a bus
⇒frame trasmessa ritorna alla stazione src; i.e., ack intrinseco
87
Università di Bologna - Corso di Laurea in Informatica
a) b)
host host
relay relay
88
Università di Bologna - Corso di Laurea in Informatica
Consegna affidabile
• Due bit (A,C) in campo Status servono da ack
– inizializzati A = 0, C = 0
– interfaccia a dst di frame
• setta A = 1
• if copia frame in memoria nodo OK then C = 1
else C = 0 /* trasferimento in memoria nodo fallito (p.e.
buffer ricevente “full”) */
- src estrae frame da ring, quando torna, e esamina bits A, C
1. [A=0, C=0] => destinazione non attiva (p.e., guasta/spenta)
2. [A=1, C=0] => destinazione attiva ma frame scartata
3. [A=1, C=1] => destinazione attiva e frame accettata
- N.B. A=0, C=1 => combinazione non ammissibile
- se si verifica trattata come caso 1.
89
Università di Bologna - Corso di Laurea in Informatica
Protocollo di accesso
principio di funzionamento
• Anello “idle”
– Token, costituito dai 3 bytes SoF AC EoF, circola sull’anello
• Trasmissione:
– stazione cattura token, costruisce frame, trasmette
• setta un bit in campo AC a indicare “ring busy”
– può trattenere token per Token Holding Time (THT)
• default THT = 10 ms in 802.5.
– se THT non terminato, dopo trasmissione di una frame, può trasmettere
nuova frame
• prima di trasmettere nuova frame, src controlla se THT residuo è
sufficiente a trasmettere tutti i bit in nuova frame
– altrimenti rigenera token di 3 bytes e lo invia sull’anello
N.B. Uso del THT determina dimensione variabile del campo Body
90
Università di Bologna - Corso di Laurea in Informatica
Ring Monitor
• Elezione del Monitor
– Nodo X invia claim frame sul ring
• annuncia propria intenzione a diventare monitor
– if claim frame torna al mittente then
• Nodo X diviene Monitor
• Monitor genera token
– if claim frame inviata concorrentemente da altro Nodo Y then
• X e Y eseguono “regola di risoluzione”
p.e.: regola di risoluzione = nodo con indirizzo maggiore eletto monitor
• Monitoring del token (svolto da stazione monitor)
– Monitor osserva passaggio token
– Per ogni passaggio attiva timeout = “max token rotation time”
• max token rotation time = NumNodi x THT + LatenzaRing
– LatenzaRing: ritardo di propagazione
– if timeout termina prima di passaggio token then rigenera token
• Monitor elimina frames
– “corrotte” (p.e. checksum error, formato invalido)
– “orfane” (src ha subito crash)
FDDI
• Ring secondario entra in funzione in caso di guasto del primario e
riconfigurazione
Host A
Host A
crash
Host B
Host B Host D
Host D
Host C
Host C
91
Università di Bologna - Corso di Laurea in Informatica
SoF Control dst. addr. src. addr. Body CRC EoF Status
IEEE 802.11
(reti wireless)
• Standard di comunicazione per uso in aree
geograficamente limitate (abitazioni, uffici)
• Responsabilità principale:
– Accesso a “canale condiviso”: i.e., “spazio”
• Specificato per operare utilizzando 2 supporti fisici
– radio frequenza
• 802.11b: 2.4 GHz, 11Mbps
• 802.11a: 5GHz, 54Mbps
– infrarosso: 2Mbps, range = 10m (approx.)
92
Università di Bologna - Corso di Laurea in Informatica
IEEE 802.11
tecniche di trasmissione
• Frequency hopping: trasmette segnale usando una sequenza
“casuale” di frequenze:
• “casuale”: prodotta da un generatore di numeri pseudo-casuali noto a
src e dst
• Direct sequence: rappresenta ogni bit come sequenza di bit
ottenuta da XOR di quel bit e n-bit chipping code
• n-bit chipping code: sequenza di bit casuali nota a src e dst
p.e.: 4-bit chipping code:
1
0 Flusso dati: 1010
1
0 n-bit chipping code: 0100 |1011 | 0101 | 1001
XOR
1
0 Sequenza ottenuta 1011 | 1011 | 1010 | 1001
Reti di Calcolatori (Fabio Panzieri) 185
Collisioni
• Simile a Ethernet
– Attende link idle
– Trasmette
– if collisione_rilevata then exponential back off
• Complicato dal fatto che nodi non sempre mutualmente
raggiungibili
– ogni nodo rileva presenza dei nodi nel proprio raggio di
copertura, esclusivamente
• Problemi:
– nodi nascosti
– nodi esposti
Reti di Calcolatori (Fabio Panzieri) 186
93
Università di Bologna - Corso di Laurea in Informatica
Nodi nascosti
• Figura illustra raggio di
copertura di B e C
• A sente B ma non C e D; B
sente A e C, ma non D; C
sente B e D, ma non A.
• A e C inviano frame a B
contemporaneamente
=> collisione A B C D
N.B.:
• A e C non a conoscenza di
reciproca esistenza
=> non possono prevenire
collisione
Nodi esposti
• B trasmette ad A
• C vuole trasmettere a D
• C rileva trasmissione da B ed
assume canale occupato
• C non trasmette per non
creare interferenze
=> decisione errata: A B C D
– C può trasmettere a D senza
creare interferenze con
comunicazioni da B ad A
– C non può/deve trasmettere
a B
94
Università di Bologna - Corso di Laurea in Informatica
Protocollo MACAW:
Multiple Access Collision Avoidance
for Wireless LANs
• Src invia RequestToSend (RTS) frame
• informa i vicini di richiesta di accesso al canale
• frame contiene campo “durata”, indica per quanto tempo src impegnera’ canale
• Dst risponde con ClearToSend (CTS) frame
• Vicini:
• intercettano CTS: non trasmettono (sono vicini al dst, possono inteferire)
• intercettano RTS ma non CTS: possono trasmettere (non creano interferenze)
• Dst invia ACK quando ha ricevuto frame
• Vicini non trasmettono fin quando non intercettano ACK
• Collisoni
• Due nodi inviano RTS concorrentemente;
• RTS frames collidono
• Non vi è meccanismo di individuazione di collisone
• Collisione scoperta quando non ricevono CTS dopo timeout
• Exponential backoff: riprova dopo attesa “casuale” (cf. IEEE 802.3)
Sistema di distribuzione
• Ambito wireless:
– comunicazioni abilitate dipendentemente da distanza fra nodi
– nodi “mobili”
=>insieme dei nodi abilitati a comunicare fra loro varia nel tempo
• IEEE 802.11 definisce infrastruttura aggiuntiva che
supporta “mobilità”, e consiste di:
– nodi mobili: abilitati a “roaming” (mobilità)
– Access Points (APs): nodi fissi connessi a infrastruttura di rete
(cablata) detta Sistema di Distribuzione (SdD)
• Ogni AP serve una “regione” e abilita comm’s fra nodi nella propria
regione
– regione: anologa a cella in infrastruttura di supporto a telefoni cellulari
95
Università di Bologna - Corso di Laurea in Informatica
Sistema di distribuzione
• Ogni nodo mobile si connette ad
un AP
– P.e.: comunicazione A <-> E:
• A invia frame ad AP-1
• AP-1 invia frame ad AP-3 Distribution system
• AP-3 invia frame ad E
– Come fa AP-1 a scoprire di
dover inviare ad AP-3?
AP-1 AP-3
• non in IEEE 802.11
AP-2 F
• può usare standard definito per
rete fissa (p.e., BGP) A B G
H
• IEEE 802.11 definisce protocollo
di C E
– selezione dell’AP D
Selezione dell’AP
• Protocollo di “active scanning”
1. Nodo src invia frame di PROBE (sonda)
2. Tutti gli APs raggiungibili rispondono con frame PROBE_RESPONSE
3. Nodo src seleziona un AP (p.e., quello con segnale migliore), e invia frame
ASSOCIATION_REQUEST
4. AP risponde con ASSOCIATION_REPONSE
• Active scanning eseguito
a) ogni volta che nodo entra in rete
b) quando segnale da AP corrente si attenua (p.e., causa movimento del nodo)
– N.B.: quando nodo si connette a nuovo AP, questo informa AP precedente del
movimento del nodo attraverso SdD.
• Oltre ad active scanning: “passive scanning”
– ogni AP invia periodicamente frame speciale (BEACON) che annuncia prestazioni
dell’AP (p.e., velocità di trasmissione supportate)
– ogni nodo può cambiare AP quando ne rileva BEACON
96
Università di Bologna - Corso di Laurea in Informatica
97
Università di Bologna - Corso di Laurea in Informatica
Esempio
Distribution system
• A trasmette ad E
– Addr1 = E
– Addr2 = AP-3 AP-1 AP-3
AP-2 F
– Addr3 = AP-1 A B G
H
– Addr4 = A
C E
D
IEEE 802.15
• Deriva da standard industriale Bluetooth
• Copertura geografica
– raggio limitato (10m)
• conseguenza di potenza di trasmissione molto bassa
• bit rate < 1Mbps
• robustezza
– poichè potenza di trasmissione è molto bassa, dispositivi più potenti (p.e.,
802.11) possono interferire e degradare il segnale Bluetooth
• IEEE 802.15 vs. IEEE 802.11
– IEEE 802.11 estende standard 802.3
– copertura geografica: fino a 150m (in interni), fino a 300m in esterno
– bit rate:
• 802.11 originale da 1Mbps a 2Mbps
• 802.11b da 5.5Mbps a 11Mbps (throughput reale atteso: 4 - 5 Mbps)
• 802.11a da 24Mbps a 54Mbps (throughput reale atteso: 10 - 22 Mbps
– robustezza: non subisce interferenze da dispositivi Bluetooth
Reti di Calcolatori (Fabio Panzieri) 196
98
Università di Bologna - Corso di Laurea in Informatica
Bluetooth
http://www.bluetooth.com:
• Unlike many other wireless standards, the Bluetooth wireless
specification includes both link layer and application layer definitions
for product developers which supports data, voice, and content-centric
applications. Radios that comply with the Bluetooth wireless
specification operate in the unlicensed, 2.4 GHz radio spectrum
ensuring communication compatibility worldwide. These radios use a
spread spectrum, frequency hopping, full-duplex signal at up to 1600
hops/sec. The signal hops among 79 frequencies at 1 MHz intervals to
give a high degree of interference immunity. Up to seven
simultaneous connections can established and maintained.
99
Università di Bologna - Corso di Laurea in Informatica
Dispositivi di interconnessione:
repeaters, hubs, bridges
• Repeater: dispositivo di livello fisico, i.e. propaga segnali elettrici fra due segmenti
Ethernet; usato per estendere singola rete Ethernet.
• Hub: repeater multi-porte
• Bridge: trasmette frames di livello data link da una rete fisica ad un altra (detto
anche switch di LAN); usato per interconnettere LANs
ethernet
bridge repeater
IBM token Ring bridge
FDDI Ring
Hubs
• Dispositivi di interconnesione a livello fisico
– i.e. repeaters multi-porta che operano a livello fisico (i.e., di segnale):
• propagano segnali ricevuti da porta di input a tutti le porte di output
• Consentono interconnessione di LANs omogenee (i.e., medesima tecnologia)
– singola LAN: segmento di LAN estesa
• Organizzabili in gerarchia (o “multi-tier design”):
– radice: “backbone hub”
100
Università di Bologna - Corso di Laurea in Informatica
Hub (vantaggi)
Hubs (limiti)
• Hubs non isolano collisioni su singolo segmento
– creano singolo dominio di collisione
• i.e. se si verifica collisione, su qualunque segmento, ogni nodo in trasmissione
esegue exponential backoff
• Singolo dominio di collisione non aumenta bandwidth
– multi-tier bandwidth = bandwidth di singolo segmento
E.g.: LAN estesa di tre reti interdipartimentali da 10 Mbps ciascuna
• bandwidth aggregata potenziale = 30Mbps
• interconnesse con hub, appartengono allo stesso dominio di collisione
=> bandwidth aggregata = 10Mbps
• Limitazioni di singolo segmento limitano n. di nodi nel dominio di
collisione e copertura geografica totale
• Non consentono interconnesione di tecnologie diverse
– propagano segnali, non bufferizzano frames, non consentono
interconnessione di segmenti con diverse velocità (e.g., Ethernet 10BaseT
e 100baseT)
101
Università di Bologna - Corso di Laurea in Informatica
Bridge
• Dispositivo multi-porta collocato a livello Data Link
– lavora su frames del protocollo data link (p.e., CSMA/CD di Ethernet)
in modalità “store and forward”
– store…: bufferiza frame ed esamina campo “dst” in frame header
– …and forward: inoltra frame verso destinazione sulla base del dst
address in frame
• utilizza data link protocol di specifico segmento di rete per
trasmettere (i.e., abilita interconnessione di reti eterogene)
Il problema:
A B C
• se frame per B è ricevuta su Porta
1, non occorre che Bridge la inoltri
Port 1
via Port 2
Bridge
• come dotare il Bridge di sufficiente Port 2
info per determinare cosa inoltrare
e attraverso quale Port#?
X Y Z
102
Università di Bologna - Corso di Laurea in Informatica
Filtering
Procedura di filtering
… /* esamina frame */
if dst in medesima LAN di src
then scarta frame /* trasmessa comunque da src */
else {
cerca dst in tabella di filtering
if entry contenente dst trovata
then forward frame su porta indicata in tabella
else forward frame su tutte le porte eccetto quella
di provenienza
}
…
103
Università di Bologna - Corso di Laurea in Informatica
tabella di filtering
104
Università di Bologna - Corso di Laurea in Informatica
• Soluzione sconsigliata
– Hub di CS Dept.: singolo punto di guasto
– traffico tra EE and SE deve passare attraverso segmento CS
105
Università di Bologna - Corso di Laurea in Informatica
Bridges ridondanti
• Per aumentare affidabilità necessario avere link/cammini alternativi
(ridondanti) da src a dst, via bridges diversi
– però: cammini alternativi possono provocare cicli
• bridges possono replicare e trasmettere frames indefinitamente
• Soluzione:
– organizzare bridges in grafo aciclico (o “spanning tree” = albero di copertura)
disabilitando sotto-insieme di porte
collegamento
disabilitato
collegamento
disabilitato
B6 B4
I
J
B3
B3
B5 B5
B2 B7 B7
B2
Algoritmo di spanning tree
B1
Trasforma grafo con cicli in
B1
un sottografo senza cicli,
contenente tutti i vertici,
B6 B4 B6 B4
106
Università di Bologna - Corso di Laurea in Informatica
107
Università di Bologna - Corso di Laurea in Informatica
108
Università di Bologna - Corso di Laurea in Informatica
Esempio
• Istante di bootstrap:
– ogni bridge ha tabella vuota
– ogni bridge assume di essere root
• Cfg-msg da bridge X: <Y, d, X>
– Y: id di presunta root
– d: distanza di X da presunta root A
– X: id di bridge mittente B
• Esempio B3
C
B3 invia (B3,0,B3); riceve (B2, 0, B2) B5
• 2 < 3 => B3 accetta B2 come root D
B2 B7 K
• B3 somma 1 a distanza 0 annunciata da B2 e E
invia (B2, 1, B3) a B5 F
B2 riceve (B1, 0, B1) da B1, accetta B1 come root, B1
invia a B3 (B1, 1, B2) G H
B5 riceve (B1, 0, B1) da B1, accetta B1 come root,
e invia a B3 (B1, 1, B5) B6 B4
I
B3 accetta B1 come root, registra che B2 e B5
sono più vicini a root di lui (quindi designati J
per LANs C e A), sospende trasmissione
messaggi su entrambe le sue interfacce,
restando con entrambe le porte non
selezionate (spezzando eventuale loop)
Bridge
• Vantaggi
– mantiene isolati i domini di collisione dei singoli segmenti
• consente uso concorrente di segmenti distinti
– può interconnetere tecnologie diverse (grazie a “store and
forward”) se queste usano medesimo formato indirizzi di 48 bit
• Ethernet-Ethernet, Ethernet-802.5 (ring), 802.5-802.5
– non limita dimensioni di LAN estesa
– trasparente: non richiede modifiche agli adaptors di LAN
incorporati negli hosts
• Svantaggi
– Algoritmo di spanning tree scala linearmente; i.e.:
• all’aumentare del n. di LANs il tempo di exec. aumenta linearmente
=> uso limitato a qualche decina di LANs
109
Università di Bologna - Corso di Laurea in Informatica
OSI RM
Application Application
Presentation Presentation
Session Session
Transport Transport
Livello Network
• Requisito
– abilitare comunicazioni fra ogni coppia di nodi, anche non direttamente connessi,
in rete composta da numero arbitrario di nodi
• hosts possono essere separati da una combinazione arbitraria di reti (WANS, LANs)
• Reti a connessione diretta
– Limiti di scalabilità (dovuti a tecnologia di comuunicazione)
• Link punto-punto: collega 2 nodi
• 1024 nodi max in Ethernet
• Distanza geografica limitata
• LAN estese
– Limiti di scalabilità (dovuti a tecnologia “bridge”)
• Algoritmo di spanning tree
• Eterogeneità
110
Università di Bologna - Corso di Laurea in Informatica
Livello Network
• Soddisfa requisito in reti a commutazione di pacchetto
(Packet Switched Network) consistenti di links, switches
e routers
• Responsabilità principale:
– instradamento dei pacchetti da src a dst
• calcolo della rotta
– internetworking
• hosts devono possedere un identificatore unico globale
• Dispositivi di interconnessione:
– switches, routers (spesso usati come sinonimi)
Dispositivi di interconnessione:
switches e routers
• Switch:
– trasmette pacchetti di livello network da porta di input a porta di output
– utilizza informazione di indirizzamento contenuta negli header dei pacchetti
stessi
– usato per interconnettere reti omogenee.
• Router:
– Trasmette pacchetti di livello network
– usato per interconnettere reti eterogenee.
switch router
111
Università di Bologna - Corso di Laurea in Informatica
Switch
• Trasmette pacchetti da una porta di input ad una porta di output
– se connesso a più link, esegue i protocolli data link di ciascuno
• Seleziona porta di output sulla base di indirizzo dst in pkt hdr
• Originariamente implementati da computers “general-purpose”
– Switches moderni implementati da hardware specializzato
– Tecnologia switch consente di
• costruire reti che coprono vaste aree geografiche
– i link fisici possono essere linee telefoniche pubbliche, fibre ottiche,
microonde …
• costruire reti che interconnettono un vasto numero di computers
• estendere la rete con computers (hosts) addizionali senza interferire con le
prestazioni degli hosts già in rete
Switches e links
• Switches e links
– infrastruttura per costruire
una WAN
• Switch
– collegato a molteplicità di
links
– esegue protocollo data link
appropriato su ogni link per
comunicare con host connesso
direttamente allo stesso link
– responsabilità principale:
instradamento di pacchetti
i.e. riceve pacchetti da uno dei
suoi links e li trasmette su
un altro dei suoi link.
112
Università di Bologna - Corso di Laurea in Informatica
Switches: proprietà
• Scalabilità della rete:
– singolo switch: n. limitato di porte di I/O limita n. di hosts che possono essere
connessi ad esso, però
– interconnessione di switches: consente implementazione di reti “switched” con
vasta copertura geografica
• Ottimizzazione prestazioni:
– Connessione di host a switch via link punto-punto
=> host puo’ trasmettere sfruttando bandwidth completa del link
N.B.: switch deve fornire sufficiente “bandwidth aggregata”
=> connessione di nuovo host a rete “switched” non implica degrado
prestazionale per gli hosts già connessi
≠ da rete “shared” (e.g. Ethernet, token ring)
– impossibile per due hosts su rete shared trasmettere alla velocità della rete
(causa: condivisione)
Instradamento (switching/forwarding)
113
Università di Bologna - Corso di Laurea in Informatica
Instradamento
• Tre approcci principali:
• “datagram”:
– ogni pacchetto è instradato indipendentemente dagli altri
• “circuito vituale” (o “connection-oriented”):
– percorso (connessione) da src a dst inizializzato prima di trasferimento dati,
usando qualche tecnica di routing
– i pacchetti da src a dst seguono quel percorso per tutta la durata della
connessione.
• “source routing”:
– header del pacchetto specifica l’intera rotta.
– semplice, ma non scalabile (assume che ogni src conosca topologia di rete per
costruire header).
• N.B.
– Network layer in OSI RM fornisce servizi connection-oriented e connection-less
a transport layer
• Transport layer in Internet richiede solo servizio connection-less da network layer.
114
Università di Bologna - Corso di Laurea in Informatica
115
Università di Bologna - Corso di Laurea in Informatica
0 Switch 1
3 1
2 Switch 2
2 3 1
B
B
Tabella connessioni in Sw1 0
0 Switch 1
3 1
2 Switch 2
2 3 1
B
B
0
Tabella connessioni in Sw2
in i/f in vci out i/f out vci Host A
3 11 0 B
0 Switch 3
…… ……
1 3
B
2 Host B
116
Università di Bologna - Corso di Laurea in Informatica
0 Switch 1
3 1
2 Switch 2
2 3 1
B
B
0
0 7 3 4 3 11 0 7 2 5 1 11
…… …… …… …… …… ……
117
Università di Bologna - Corso di Laurea in Informatica
Esempio (segue)
• Trasmissione dati
– Se richiesta di connessione da A a B accettata:
• A invierà a B pacchetti con VCI = 5 in hdr, senza più includere indirizzo dst.
• Ogni switch sostituisce “in vci” con “out vci” nei pacchetti
• N.B.:
– meccanismo di assegnamento di “vci” garantisce univocità locale di id’s
=> Switches possono appartenere ad amministrazioni indipendenti
• Terminazione della connessione:
– A invia un pacchetto di connection release a B
– switches rimuovono C_Id dalle loro tabelle quando ricevono connection
release packet.
Source Routing
– Indirizzo: lista di porte da src a dst.
– Switch legge elemento più a destra della lista.
– Ogni switch ruota la lista di una posizione, dopo aver letto la sua porta.
– Semplice, ma non scala: su rete vasta, impossibile per host costruire lista
Switch 1 0
1 1 3 0 0
3 1
3 2 Switch 2
2 1
3 2
3 0 1 0
0 1 3 0
Switch 3
1 3
Host A
Host B
2
Reti di Calcolatori (Fabio Panzieri) 236
118
Università di Bologna - Corso di Laurea in Informatica
Circuito virtuale
• Switch mantengono stato della connessione
119
Università di Bologna - Corso di Laurea in Informatica
Datagram
• Switch non mantengono informazione di stato
• Utilizzato in Internet (i.e., servizio “best-effort”)
application
application
transport
transport
network 1. Send data 2. Receive data network
data link
data link
physical
physical
120
Università di Bologna - Corso di Laurea in Informatica
121
Università di Bologna - Corso di Laurea in Informatica
122
Università di Bologna - Corso di Laurea in Informatica
Architettura ATM
User data
AAL convergenza
AAL
frammentazione/ (Segmentation And Reassembly)
riassemblaggio
123
Università di Bologna - Corso di Laurea in Informatica
8 8 16 < 64 KB 0– 24 8 8 16
124
Università di Bologna - Corso di Laurea in Informatica
125
Università di Bologna - Corso di Laurea in Informatica
Livello ATM
126
Università di Bologna - Corso di Laurea in Informatica
ATM VCs
• Vantaggi
– Garanzie prestazionali di QoS per connessioni mappate
su VC (bandwidth, delay, delay jitter)
• Svantaggi
– Supporto inefficiente di traffico datagram
– Switched VCs introducono latenza di call setup +
overhead di processing per connessioni brevi
– Formato switch-to-switch
• GFC diviene parte del campo VPI
127
Università di Bologna - Corso di Laurea in Informatica
Livello Network:
Internetworking
• Problemi
– Eterogeneità
• quale servizio di comunicazione host-to-host fornire in contesto tecnologico di
reti eterogenee ?
– i.e., ≠ schemi di indirizzamento, ≠ velocità di trasmissione, ≠ protocolli di
accesso, ≠ modelli di servizio
– Scalabilità
• Internet raddoppiata in dimensione ogni anno negli ultimi 20 anni
– come costruire percorsi (rotte) host-to-host efficienti e “loop free” in una
rete con numero arbitrario di nodi, che varia dinamicamente ?
– come costruire identificatori unici (i.e., indirizzi) della locazione geografica
di questi nodi ?
• Le soluzioni IPV4 e IPV6
Esempio di internetwork
Network 1 (Ethernet)
H7 R3 H8
Concatenazione di reti
H1 H2 H3
Network 4
(point-to-point link)
Network 2 (Ethernet)
R1
R2
H4
Network 3 (FDDI)
Internetworking mediante IP H5 H6
H1 H8
TCP R1 R2 R3 TCP
IP IP IP IP IP
128
Università di Bologna - Corso di Laurea in Informatica
Protocollo IP
Modello di servizio
– Comunicazioni “connectionless” Formato datagram IP
0 4 8 16 19 31
• consegna “best-effort” Version HLen TOS Length
– pkts possono essere persi
Ident Flags Offset
– consegnati non in ordine
TTL Protocol Checksum
– duplicati
SourceAddr
– ritardati in switch
DestinationAddr
– Schema di indirizzamento globale Pad
Options (variable) (variable)
Data
Formato datagram IP
• Version: versione IP (IPv4, IPv6)
• Hlen: lunghezza hdr in words di 32 bit
• Ident (pkt id), Flags, Offset
– no Options => Hlen = 20 bytes – usati in frammentazione
• TOS: type of service • TTL: time to live (default = 64)
– trattamento pkt, p.e. “low delay”; • Protocol: demux key (TCP, UDP)
usato per DiffServ • Checksum: CRC descritto
• Src/dst fields: IP addr’s globali
• Length: lunghezza d/gram, incluso hdr, in
• Options: estendono IP hdr
bytes (i.e., 65535 B max)
• Pad: padding a completare 32bit
Frammentazione e re-assembly
129
Università di Bologna - Corso di Laurea in Informatica
Ident = x 0 Offset = 0
Rest of header
ETH IP (1400) FDDI IP (1400) PPP IP (512) ETH IP (512) Start of header
Ident = x 1 Offset = 0
PPP IP (512) ETH IP (512)
Rest of header
PPP IP (376) ETH IP (376)
• MTUs 512 data bytes
Indirizzi IP
• Proprietà
– Unici globalmente
– Gerarchici
• Strutturati in <network part; host part>
• Hosts connessi a stessa rete condividono parte network
p.e., H1, H2 e R1 in Network 1, …
• Router che interconnette 2 reti ha 2 indirizzi IP, uno per
interfaccia di rete (p.e. R1, R2 e R3 in fig.)
N.B. indirizzi IP associati a interfacce di rete
H1 R1 R2 R3 H8
130
Università di Bologna - Corso di Laurea in Informatica
Indirizzi IP
• Strutturati in “classi” A, B, C, D e E (non usata; riservata per usi futuri)
– 232bit = 4.294.967.296 indirizzi possibili cosi’ allocati:
– Classe A: 27 - 2 = 126 reti (0 e 127 riservati); 224 - 2 = 16.777.214 indirizzi di hosts ognuna
(2 indirizzi riservati)
=> 126 x 16.777.214 = 2.113.928.964 (~50% di spazio indirizzi)
– Classe B: 214 = 16384 reti, 216 - 2 = 65534 hosts ognuna
=> 16384 x 65534 = 1.073.709.056 (~25%)
– Classe C: 221 = 2.097.152 reti, 28 = 256 hosts di cui 254 utili (~12.5%)
• (255: broadcast, 0: non valido)
Rappresentazione decimale:
ogni intero rappresenta il decimale
Classe contenuto nel byte corrsipondente
A 0 network host
1.0.0.0 -> 127.255.255.255
B 10 network host
128.0.0.0 -> 191.255.255.255
32 bits
Reti di Calcolatori (Fabio Panzieri) 261
Datagram Forwarding
• Strategia
– Ogni datagram contiene indirizzo dst
– Src, se direttamente connesso a rete destinazione, trasmette a dst
– Src, se non direttamente connesso trasmette a router
– Ogni network ha un router di default, noto a hosts
– Ogni router mantiene una tabella di forwarding
– Tabella di forwarding mappa network number in next hop
131
Università di Bologna - Corso di Laurea in Informatica
Traduzione indirizzi
• Problema
– da schema precedente
• datagrams IP trasportati su rete destinazione
– Come raggiungere host dst?
• Datagram IP contiene indirizzo IP
• Interfaccia h/w di dst (host o router) indirizzata con schema indirizzamento
di rete dst specifica
=> indirizzo IP deve essere “tradotto” in indirizzo di livello data link della
rete (p.e., 48 bit Ethernet addr.)
• Solo successivamente, datagram IP incapsulato in frame di livello data link
e trasmesso a dst
• Soluzioni
– Codificare indirizzi fisici in parte host di indirizzi IP
p.e., ind. fisico di host: 00010001 00101001 -> IP: 128.96.33.81
• richiede indirizzi fisici di rete < 16 bit (classe C: host addr = 8 bit)
• non funziona per indirizzi di 48 bit (Ethernet)
– Address Resolution Protocol: uso di tabella dinamica
132
Università di Bologna - Corso di Laurea in Informatica
ARP: Note
• Entries in tabelle sono scartate e rigenerate
periodicamente, se non usate
– p.e. guasto/sostituzione interfaccia di rete (i.e. nuovo indirizzo)
– TTL = 15’ (circa)
• Host target aggiorna tabella con indirizzo src, quando
riceve datagram
• Host non-target intercetta richiesta ARP
se src presente tabella allora “refresh” entry (i.e. re-setta TTL
)
altrimenti ignora richiesta
133
Università di Bologna - Corso di Laurea in Informatica
Internetworking via IP
• IP soddisfa requisiti di:
• Eterogeneità
– Modello “best-effort” (i.e. datagram)
• assunzioni minime su infrastrutture di rete di supporto a IP
– Formato del pacchetto comune a qualunque supporto di rete
• Meccanismo di frammentazione/re-assemblaggio consente di lavorare con
differenti MTUs
– Spazio di indirizzi “globale”
• ARP supporta spazio indirizzi globale su reti con schemi di indirizzamento
diversi
• Scalabilità
– Struttura gerarchica degli indirizzi (<network_num; host_addr>) riduce
quantità di informazione necessaria a trasmettere datagrams
• Come assegnare indirizzi IP a hosts?
134
Università di Bologna - Corso di Laurea in Informatica
DHCP
• Host cliente
– Invia msg DHCPDISCOVER a ind. 255.255.255.255
• 255.255.255.255: indirizzo IP di broadcast
• routers e nodi ≠ DHCP server ignorano messaggio
• msg include h/w net. addr. (e.g. Ethernet MAC addr.) di host cliente
• DHCP server
– risponde con
• indirizzo IP per host cliente
• indirizzo di router di default per host cliente (se disponibile)
• N.B.: Dominio amministrativo può consistere di internetwork
– DHCP server in ogni rete?
• potenzialmente gran n. di DHCP servers
– complessità:
• configurazione e allineamento (coerenza) dei DHCP servers
– Uso di relay agents
DHCP DHCP
Rete
relay Server
msg
Host
135
Università di Bologna - Corso di Laurea in Informatica
136
Università di Bologna - Corso di Laurea in Informatica
ICMP-REDIRECT
• Router notifica host src rotta migliore per dst
2
Msg 1 a dst via R2
host
R1 dst
Net A R2
(default)
Msg 1 a dst via R1
ICMP-REDIRECT:
msgs a dst via R2
Net B
R2
1
3
via
Net C
dst
4
2 a
host
Msg
src
Reti di Calcolatori (Fabio Panzieri) 273
Routing
• Forwarding vs. Routing = instradamento vs. costruzione di rotte
• Tabella di routing
– mapping fra rete destinazione e indirizzo IP di “next hop”
• E.g.:
• Tabella di forwarding
– mapping fra rete dst., porta di uscita (i.e., come raggiungere “next hop”), e indirizzo fisico
di “next hop” (p.e., MAC address fornito da ARP)
• E.g.
• 1 o 2 tabelle?
• scelta implementativa
• meglio se separate:
– modifiche di topologia richiedono cambiamento di tabella di routing, solamente
– sostituzione di MAC i/f richiede modifica di forwarding table, solamente
137
Università di Bologna - Corso di Laurea in Informatica
Routing in Internet
Routing
• Costruzione delle routing table
– applicazione della teoria dei grafi
• rete rappresentata come un grafo
– nodi = routers, archi = links
– ogni arco ha un “costo”
• costo: ritardo, livello di congestione, €, …
• permette di valutare opportunità di usare il link corrispondente
– problema del routing
• trovare il cammino di costo minimo tra due nodi qualunque
A
3
1 6
B 1 2
E F
4
1
C 9
D
138
Università di Bologna - Corso di Laurea in Informatica
Routing tables
• Costruite mediante algoritmi distribuiti
– routers scambiano informazione e costruiscono propria routing table
• periodicamente (periodic udate), o
• se si verifica qualche cambiamento
– p.e. aggiunta di link, crash di link (triggered update)
• Due tecniche principali per la costruzione delle routing tables:
– in entrambe:
• ogni router stabilisce costo della comunicazione con i routers cui è
direttamente connesso, e costruisce routing table iniziale
– Distance Vector Routing
• Ogni router invia routing table corrente ai routers cui è direttamente
connesso, solamente
• Ogni router aggiorna la propria routing table sulla base di quella ricevuta,
se scopre in questa percorsi meno costosi verso le destinazioni note
– Link State Routing
• Ogni router invia routing table a tutti gli altri routers in rete
• Ogni router aggiorna la propria routing table sulla base di quanto ricevuto
139
Università di Bologna - Corso di Laurea in Informatica
F 1 F F G
G INF -
140
Università di Bologna - Corso di Laurea in Informatica
C
A
D
E
F G
C
A
D
E
F G
141
Università di Bologna - Corso di Laurea in Informatica
Distance Vector
• Euristiche per spezzare i routing loops
– “infinito = n”, n quantità sufficientemente piccola
• dopo n aggiornamenti viene sollevata eccezione
– p.e., forward di email fra gli stessi due indirizzi: dopo 16 iterazioni sospende e
invia messaggio di errore
– Split horizon:
• Non inviare informazione ricevuta da un vicino indietro a quel vicino
P.E.:
– se tabella di B contiene rotta <E,2,A>, B sa di averla ottenuta da A stesso;
– quando invia aggiornamenti ad A non include rotta <E,2> nell’aggiornamento
N.B.: spezza solo routing loops fra due nodi
• Routing loops risolti da Link State Routing
Routing in Internet:
Routing Information Protocol (RIP)
• Basato su algoritmo di “distance vector”
• Ogni router
– annuncia costo per raggiungere “rete dst ”, anzichè “router dst”
– invia annunci ogni 30”
• oppure quando “triggered” da annuncio da altro router che modifica la sua
routing table
– assume “costo” di link unitario (i.e., “costo”: n. di hops)
– supporta “famiglie” di indizzi (i.e., non solo IP)
– spezza routing loops assumendo “infinito = 16”
• RIP utilizzabile per routing in reti di dimensioni contenute
– Lunghezza path: 15 hops max.
• i.e. ok in singolo dominio amministrativo
142
Università di Bologna - Corso di Laurea in Informatica
Reliable Flooding
• Ogni nodo invia informazione di stato relativa ai link a lui direttamente
connessi su ognuno di questi link mediante Link State Packet (LSP)
• Nodo che riceve LSP ne effettua il forwarding sui link a lui direttamente
connessi (eccetto quello da cui l’LSP proviene)
• LSP contiene:
– id del nodo che ha creato l’LSP stesso
Per scopi di calcolo
– lista di nodi direttamente connessi
delle rotte
– costo di ogni link direttamente connesso
– numero di sequenza (seq.no.)
– time-to-live (TTL) per l’LSP Per consetire “flooding” affidabile
143
Università di Bologna - Corso di Laurea in Informatica
Reliable Flooding
• Quando nodo X riceve LSP da nodo Y, controlla se possiede già un LSP
da Y
– si:
• if seq. no. del nuovo LSP > seq. no. di LSP attualmente mantenuto
then
{nuovo LSP sostituisce precedente LSP;
“forward” nuovo LSP su tutti i link di uscita,tranne quello di
provenienza}
else scarta nuovo LSP
– no:
• mantiene copia di LSP ricevuto,
• “forward” LSP su tutti i link di uscita, tranne quello di provenienza
=> ogni LSP raggiunge tutti i nodi (a meno di guasti di comunicazione)
• Ogni nodo genera l’LSP periodicamente
=> ogni volta, il seq. no. è incrementato di 1
– necessario che seq.no. non ciclino
=> uso di un campo ampio (64 bits) per rappresentarli
Reliable Flooding
• Garanzia che LSPs obsoleti siano scartati
– ogni LSP ha associato un TTL (alcuni minuti)
– TTL decrementato da ogni nodo attraverso cui l’LSP transita;
– TTL di ogni LSP mantenuto dal nodo è decrementato periodicamente da quel
nodo;
– ogni LSP con TTL = 0 scartato (e “re-flooded” con TTL = 0 in modo che possa
essere scartato da tutti i nodi)
– Nodo “guasto” (crashed) dopo recovery genera LSPs partendo da seq.no. = 0
• durata del guasto sufficientemente lunga
=> TTL degli LSPs del nodo re-inizializzato sono terminati e info. di stato rimossa
• durata guasto sufficientemente breve
=> nodo re-inizializzato riceve (prima o poi) suo pre-crash LSP; in questo caso, può
continuare da quel seq. no.
144
Università di Bologna - Corso di Laurea in Informatica
M = {s} /Inizializza M
for each n in N - {s} / Inizializza tabella con costi dei
C(n) = l(s,n) /nodi direttamente connessi
while (N ≠ M) /Cerca nodo w di costo min. e mettilo in M
M = M ∪ {w} such that C(w) is the minimum for all w in (N-M)
for each n in (N-M) /Aggiorna tabella con costi via w
C(n) = MIN (C(n), C(w)+l(w,n))
Reti di Calcolatori (Fabio Panzieri) 289
145
Università di Bologna - Corso di Laurea in Informatica
146
Università di Bologna - Corso di Laurea in Informatica
147
Università di Bologna - Corso di Laurea in Informatica
Metriche di costo
• Problemi con metriche “New”
– Carico di rete basso:
• fattori statici (latency, transmission time) dominano il costo (OK)
– Carico di rete elevato:
• link congestionati assumono costo molto elevato, e lo annunciano;
• pacchetti transitano verso link scarichi, scaricando quelli congestionati,
• e congestionando quelli scarichi, e così via.
• Metriche di costo “revised”, in uso oggi:
– Basate su riduzione del campo di variabilità delle metriche:
– Sostituiscono misure di delay con link utilization, mediato con l’ultimo link
utilization conosciuto (per evitare sbalzi di carico improvvisi)
– Impongono limite su variabilità dei valori misurati fra un ciclo di misure ed il
successivo
=> attenuando i cambiamenti nei costi, si riduce la probabilità che tutti i nodi abbandonino
una rotta tutti insieme.
148
Università di Bologna - Corso di Laurea in Informatica
Link layer
physical layer
Internet globale
• Indirizzamento gerarchico IP rende routing non sufficientemente
scalabile
– Routers mantengono indirizzi di tutte le reti connesse ad Internet,
solamente, i.e. non mantengono indirizzi degli hosts (usano ARP)
• Scalabilità insufficiente a causa della crescita di Internet in
termini di n. di reti interconnesse che la compongono
• Principali problemi di scalabilità nel routing
1. Ottimizzare uso di spazio indirizzi IP
• i.e., garantire che non si esaurisca
2. Minimizzare dimensioni tabelle di routing nei routers
• i.e., minimizzare numero di “network numbers” trasportati nei pacchetti IP
e mantenuti nelle tabelle di routing dei routers
149
Università di Bologna - Corso di Laurea in Informatica
Large corporation
“Consumer ” ISP
Peering
point
Backbone service provider Peering
point
“ Consumer ” ISP
Small
corporation
• Identificazione univoca di ciascuna rete con network number
– non praticabile
• saturazione memoria dei routers
• esaurimento network numbers di IP
150
Università di Bologna - Corso di Laurea in Informatica
Subnetting:
ottimizzare uso degli indirizzi IP
• Idea di base: allocare gli indirizzi IP con stesso IP network number
a molteplicità di “subnets” (reti fisiche)
• IP standard: hosts su medesima rete fisica configurati con
medesimo network number
• IP con subnetting: hosts su medesima rete fisica configurati con
medesima subnet mask
– unica per tutti gli hosts nella medesima subnet
– subnets distinte possono usare la stessa subnet mask
• Subnet mask: consente di introdurre subnet number
• Subnet number
– AND bit a bit di indirizzo IP e subnet mask
– Hosts su medesima rete fisica:
= subnet number
– Hosts su diverse reti fisiche:
= network number
≠ subnet number
– Subnet numbers visibili solo all’interno di rete con medesimo network
number (invisibili al resto di Internet)
Meccanismo di subnetting
• Subnet mask
– definisce partizione (variabile) del
campo host number; Network number Host number
• i.e., campo Host Number diviso in
<subnet ID; host ID> Indirizzo classe B
– in esempio:
• 16 bit di ordine più alto 111111111111111111111111 00000000
– network number (classe B)
Subnet mask (255.255.255.0)
• 8 successivi:
– subnet ID; Host ID
Network number Subnet ID
• 8 successivi:
– host ID Indirizzo “subnetted”
⇒ Indirizzo diviso in 3 parti:
<NetNum; SubnetID; HostID>
N.B.: Subnet mask introduce ulteriore
livello gerarchico nell’ indirizzamento
151
Università di Bologna - Corso di Laurea in Informatica
IP addressing
Network ranges
Subnetting: esempio
• Sia assegnato al gestore di rete l’indirizzo di classe B = 152.15.x.x
• 2 bytes non assegnati, i.e. disponibili per indirizzamento
• è responsabilità del gestore disporre di questi 2 bytes per indirizzare
eventuali sottoreti, e dispositivi su queste (i.e. hosts)
• usiamo le lettere n(etwork), s(ubnet), e h(ost) per denotare la struttura
dell’indirizzo
– quindi, per ora 152.15.x.x = nnnnnnnn.nnnnnnnn.xxxxxxxx.xxxxxxxx
• Si vuole dividere rete 152.15.x.x in 4 sottoreti:
– si possono usare i 2 bit di ordine piu alto dei due bytes disponibili, ottenendo:
nnnnnnnn.nnnnnnnn.sshhhhhh.hhhhhhhh.
– settando questi bit a 00, 01, 10, 11 lo spazio indirizzi disponibile può essere diviso
in 4 gruppi
152
Università di Bologna - Corso di Laurea in Informatica
Subnetting 152.15.x.x
• Subnet 1:
– 152.15.0.1 to 152.15.63.254.
– da x.x.00000000.00000001 a x.x.00111111.11111110
• Subnet 2:
– 152.15.64.1 to 152.15.127.254
– da x.x.01000000.00000001 a x.x.01111111.11111110
• Subnet 3:
– 152.15.128.1 to 152.15.191.254
– da x.x.10000000.00000001 a x.x.10111111.11111110
• Subnet 4:
– 152.15.192.1 to 152.15.255.254
– da x.x.11000000.00000001 a x.x.11111111.11111110
• Subnet mask:
– bit pattern usato per identificare parti comuni a gruppo di indirizzi IP
– consente di identificare hosts su medesima sottorete
– simile a indirizzo IP
– creata confrontando i bit di due indirizzi IP, a partire da sinistra
– se i bit nella medesima posizione (1º, 2º, ...) sono uguali, il corrispondente
bit nella mask è uguale 1
– dalla posizione del primo bit che differisce in poi, tutti i bit della mashera
sono uguali a 0
153
Università di Bologna - Corso di Laurea in Informatica
11011100.01111001.00001100.00000010 = 220.121.12.2
11011100.01111001.00001010.00000001 = 220.121.10.1
11111111.11111111.11111111.00000000 = 255.255.255.0
yyyyyyyy.yyyyyyyy.yyyyynxx.xxxxxxxx = respinta!
154
Università di Bologna - Corso di Laurea in Informatica
11011100.01111001.00001010.10000010 = 220.121.10.130
11011100.01111001.00001010.00001100 = 220.121.10.12
11111111.11111111.11111111.11000000 = 255.255.255.192
yyyyyyyy.yyyyyyyy.yyyyyyyy.nxxxxxxx = respinta!
Esempio: Routing
R3
Subnet mask: 255.255.255.128
Subnet number: 128.96.34.0 Subnet number di H1:
128.96.34.15 AND 255.255.255.128 = 128.96.34.0
128.96.34.15 128.96.34.1
H1
R1
Subnet mask: 255.255.255.128
128.96.34.130 Subnet number: 128.96.34.128
128.96.34.139
128.96.34.129
H2
R2
H3
128.96.33.1
128.96.33.14
155
Università di Bologna - Corso di Laurea in Informatica
Subnetting e Routers
• Modifiche alle tabelle di forwarding
– IP semplice: <NetworkNum; NextHop>
– Subnetting: <SubnetworkNum; SubnetMask; NextHop>
• router mantiene subnet mask di reti dst
• in generale, mantiene anche indirizzo di default router
Algoritmo di forwarding
D = indirizzo IP di destinazione
for ogni entry (SubnetNum, SubnetMask, NextHop) in tabella
D1 = SubnetMask & D
if D1 = SubnetNum
if NextHop è una interfaccia
trasmetti datagram direttamente a D
else
trasmetti datagram a NextHop
if Subnetnum non in tabella then
trametti datagram a router di default
156
Università di Bologna - Corso di Laurea in Informatica
Subnetting
• Pre-condizione: vicinanza fisica delle subnets (p.e. campus
universitario)
• Motivazione
– Insieme di subnets che condividono IP network number appaiono a
routers remoti come singola rete
– Routers remoti
• mantengono singolo network number per raggiungere tutte le subnets con
medesimo IP network number
• riduzione dimensioni tabelle di forwarding in routers
• selezionano unico percorso per raggiungere tutte le subnets con medesimo
IP network number
– Vicinanza fisica di subnets con medesimo IP network number agevola
routing interno a subnets
• Scalabilità di subnetting
1. Migliora efficienza di assegnamento indirizzi (i.e., un classe B per più
di una rete)
2. Aggregazione di informazione (i.e., un network number per raggiungere
più reti) riducendo requisiti di memoria nei routers
Subnetting: esercizi
• Dato l’indirizzo: 50.16.12.178...
• Qual’è il suo valore binario? 00110010.00010000.00001100.10110010
• In quale classe si trova? A
• Come si stabilisce? valore del 1º byte (0 in posizione più alta)
• Qual’è la maschera di rete per questa classe? 255.0.0.0
• Se la maschera di sottorete fosse: 255.255.240.0…
– quante sottoreti questa maschera consentirebbe di specificare?
– 255 nel byte di ordine più alto è la network mask; questo lascia 255.240.0 come subnet
mask; in binario: 11111111.11110000.00000000; ovvero: 12 bits per sottoreti (gli 1) e i
rimanenti 12 per hosts. Quindi,il nº di sottoreti è (2^12)-2, (escludendo sottoreti “tutti 0”
e “tutti 1”).
– quanti hosts/sottorete? (2^12)-2 (“tutti 0” e “tutti 1” esclusi per hosts)
– quanti hosts in totale? Sottoreti x (host/sottorete)=((2^12)-2) x ((2^12)-2)
157
Università di Bologna - Corso di Laurea in Informatica
length
Blocco dell’ISP 11001000 00010111 0001 0000 00000000 200.23.16.0/20
Organizzazione 0 11001000 00010111 0001 0000 00000000 200.23.16.0/23
Organizzazione 1 11001000 00010111 0001 0010 00000000 200.23.18.0/23
…
Organizzazione 7 11001000 00010111 0001 1110 00000000 200.23.30.0/23
158
Università di Bologna - Corso di Laurea in Informatica
CIDR
• Subnetting:
– singolo indirizzo IP condiviso da molteplicità di reti fisiche
• CIDR:
– collassa molteplicità di indirizzi IP in singolo indirizzo
– aggrega rotte
• E.g.:
– ISP assegna network numbers adiacenti (20 bit) a AS X e AS Y
– Gateway: accetta pacchetti con dst = 19 bit comuni (prefisso)
– Risolve indirizzi secondo il criterio del “longest match”
• E.g.: 179.10 e 179.10.15 in tabella di routing
– IP dst: 179.10.15.6 -> forward a 179.10.15
– IP dst: 179.10.20.4 -> forward a 179.10
AS X
11000000000001 000001
gateway ISP network
Fornisce accesso a rete
11000000000001 AS Y
11000000000001 000000
Reti di Calcolatori (Fabio Panzieri) 317
159
Università di Bologna - Corso di Laurea in Informatica
Routing in Internet:
Open Shortest Path First (OSPF)
• OSPF
– “open”: di dominio pubblico
– implementa algoritmo link state
– usa algoritmo di Dijkstra per calcolare rotte
– annunci OSPF contengono un entry per ogni router vicino
– distribuiti all’intero dominio amministrativo
• Aggiunge a RIP
– sicurezza: msgs OSPF sono autenticati
– metriche di costo “tarate” su TOS (e.g., canale satellitare: basso costo
per “best effort”, alto costo per “real time”)
• Introduce gerarchie di routing:
– ogni dominio partizionabile in “aree” (area = internetwork fisica)
– ogni router configurato per raggiungere “aree” (anzichè sotto-reti)
=> aumenta scalabilità del routing in domini ampi e strutturati
OSPF
• AS rappresentato da
grafo
• OSPF usa reliable
flooding e usa algoritmo
di shortest path first
per costruire tabelle di
routing
• Link rappresentato da
coppia di archi con pesi
possibilimente diversi
160
Università di Bologna - Corso di Laurea in Informatica
OSPF
OSPF: gerarchie di
routers
161
Università di Bologna - Corso di Laurea in Informatica
inter-AS e intra-AS
network layer
routing in
link layer
gateway A.c
physical layer
C.b Inter-AS
routing B.a
A.a Fra A e B Host
b A.c c h2
a C a
b
a B
Host d c
h1 A b Intra-AS routing
Intra-AS routing in AS B
in AS A
162
Università di Bologna - Corso di Laurea in Informatica
163
Università di Bologna - Corso di Laurea in Informatica
BGP (esempio)
• BGP Speaker per AS2: annuncia raggiungibilità di P e Q
– network 128.96, 192.4.153, 192.4.32, e 192.4.3, raggiungibili
direttamente da AS2
Customer P 128.96
(AS 4) 192.4.153
Regional provider A
(AS 2)
Customer Q 192.4.32
(AS 5) 192.4.3
Backbone network
(AS 1)
Customer R 192.12.69
(AS 6)
Regional provider B
(AS 3)
Customer S 192.4.54
(AS 7) 192.4.23
• BGP Speaker per backbone
– networks 128.96, 192.4.153, 192.4.32, e 192.4.3 raggiungibili lungo il
persorso (AS1, AS2).
• BGP Speakers possono cancellare percorsi annunciati
IPv6
• Motivazione iniziale:
– IPv4: spazio indirizzi di 32-bit completamente esaurito entro il 2008
– IPv6: circa 5000 indirizzi IP per m2
• Inoltre:
– Nuovo formato header facilita processing/forwarding di d/g’s (semplificato
rispetto a IPv4)
– header modificato consente di supportare QoS
– Nuovo indirizzo anycast
• Specifica “entità topologiche” anzichè nodi
– p.e.:
• indirizzo anycast assegnato a gruppo di i/f’s
• d/g’s con dst=anycast inviati all’i/f “più vicina”, dove “più vicino” è determinato dai
protocolli di routing
164
Università di Bologna - Corso di Laurea in Informatica
IPv6
• Caratteristiche generali
– Indirizzi “classless” di 128-bit
– Multicasting
– Servizi real-time
– Supporto per autenticazione e sicurezza
– Supporto per autoconfigurazione
– Frammentazione
– Estensioni del protocollo
• Header
– 40-byte di header di “base”
– Headers di estensione per
• frammentazione
• source routing
• Autenticazione e sicurezza
• Altre opzioni
trasportati come payload
165
Università di Bologna - Corso di Laurea in Informatica
166
Università di Bologna - Corso di Laurea in Informatica
Tunneling
D to E
IPv4
(encapsulating
IPv6)
Reti di Calcolatori (Fabio Panzieri) 334
167
Università di Bologna - Corso di Laurea in Informatica
IP Tunneling: esempio
Rete privata Rete privata
IP hdr: 10.0.0.1
IP hdr:
DST := 2.x IP hdr:
DST := 2.x
IP payload DST:= 10.0.0.1
IP payload
IP hdr:
DST = 2.x Payload di IP d/g
IP payload da R1 a R2
168
Università di Bologna - Corso di Laurea in Informatica
Tunneling
• Vantaggi
– Implementazione di politiche di sicurezza
• Tunnel può trasportare traffico crittografato
– Specializzazione dei routers
• possono supportare funzionalità specifiche, solo nei tunnel
– p.e., rete privata virtuale con multicasting
– Utilizzo di protocolli non standard nella rete privata virtuale
⇒ Routers alle estremità dei tunnel possono gestire protocolli non standard
• Svantaggi
– Aumento delle dimensioni dei d/g’s
– Routers possono soffrire di degrado prestazionale (p.e. causa conversione
protocolli)
– Costi di management dei tunnel (setting-up, verifiche di correttezza del
routing)
Livello di Trasporto
• Livello Network fornisce scambio messaggi host-to-host
– in Internet: servizio ‘best effort’ fornito da IP
• Scarta pacchetti
• Scambia ordine
• Consegna duplicati
• Limita dimensione
• Consegna con ritardo arbitrario
• Livello Trasporto fornisce servizio scambio di messaggi process-to-process
(o “end-to-end” ), i.e. da applicazione ad applicazione
– In Internet
• UDP (User Datagram Protocol): servizio “best effort” processo-processo
• TCP (Transmission Control Protocol): servizio di consegna affidabile di flusso di bytes
ordinato processo-processo
– In Unix: servizi accessibili via libreria “socket”
169
Università di Bologna - Corso di Laurea in Informatica
UDP
• Servizio “best effort”
– Trasmissione/ricezione di datagrams non affidabile, non ordinata
• Aggiunge demultiplexing a IP
• Sorgente e destinazione identificati da “port#”: srcPort, dstPort
– Coppia <Host address (IP), port# (UDP)> identifica univocamente
processo applicativo
– Servers utilizzano porte well-known; 0 16 31
• eg: server DNS su qualunque ospite è a porta no. 53, talk a porta no. SrcPort DstPort
517 (cf. /etc/services in Unix)
• Checksum Checksum Length
– pseudo header + udp header + data Dati
• pseudo header: campi length, src, dst in IP hdr
• attualmente opzionale, obligatorio con IPV6
UDP header
• Length: lunghezza in bytes di d/g UDP, incluso hdr UDP
170
Università di Bologna - Corso di Laurea in Informatica
Demultiplexing in UDP
dst
P3 P4
Dati di applicazione M M
application
P1 src
d/g header transport P2 src
M M
network application
application
transport
Ht M transport
network
Hn d/g network
Multiplexing/demultiplexing: esempi
src port: x Client
host A dst port: 23 server B host C
src port:23
dst port: x
Source IP: C Source IP: C
Dest IP: B Dest IP: B
source port: y source port: x
Uso di port#: telnet dest. port: 53 dest. port: 53
Source IP: A
Dest IP: B DNS
Client source port: x server B
host A dest. port: 53
Uso di port#: DNS server
171
Università di Bologna - Corso di Laurea in Informatica
UDP
• Implementazione di astrazione di porta può differire da OS a OS
– in genere
• Porta implementata come coda di messaggi
• Coda messaggi mantenuta in spazio utente
• Gestione/assegnazione porte effettuata da kernel di OS
• Ricezione di messaggi
– UDP accoda msg a porta (coda) in esso specificata
if coda piena then scarta messaggio
– Processo in ricezione su porta:
• rimuove messaggio in testa alla coda
if coda vuota then blocca finché msg ricevuto
UDP: osservazioni
• Non fornisce controllo di flusso che indica a src di ridurre rate di
trasmissione
• Non implementa trasmissione/consegna affidabile/ordinata di
datagrams (solo “best effort”)
• Implementa individuazione di errori via checksum
• A che serve?
– Streaming di oggetti multimediali tolleranti perdite di d/g’s e sensibili
a tasso di trasferimento dati (p.e. telefonia via Internet)
– DNS
– Simple Network Management Protocol (SNMP)
• Monitoring di routers e hosts
• Trasferimento dati affidabile utilizzando UDP?
– aggiungere affidabilità a livello applicativo
• tecniche di error recovery “ad hoc” per l’applicazione
172
Università di Bologna - Corso di Laurea in Informatica
TCP
• Flusso di bytes ordinato, affidabile, connection-oriented
– Processo src scrive no. arbitrario di bytes (flusso/stream) su connessione
– TCP (xmit) frammenta in segmenti, e invia ogni segmento via IP
– TCP (rcv) riceve e riassembla segmenti, e effettua delivery a processo dst
– Processo dst legge flusso di bytes da connessione
Write Read
bytes
…
bytes
…
TCP TCP
Send buffer Receive buffer
…
Segment Segment Segment
Transmit segments
• Full duplex (per semplicità, figura mostra half duplex)
• Controllo di flusso: impedisce che src sovraccarichi dst
• Controllo di congestione: impedisce che src’s sovraccarichino rete (i.e., i routers)
Segmenti TCP
• Pacchetti TCP: segmenti
– ognuno trasporta un segmento del flusso di bytes
– max. seg. size (MSS) uguale a max. trasfer unit (MTU) supportata da
rete direttamente connessa (meno overhead di headers IP e TCP)
– TCP invia segmento quando:
• MSS bytes sono disponibili, oppure
• applicazione forza trasmissione invocando operazione di push su TCP;
• timer periodicamente forza TCP a trasmettere segmento non vuoto, anche se
non completamente pieno.
173
Università di Bologna - Corso di Laurea in Informatica
Data
Segmenti TCP
• Acknowledgment,SequenceNum,AdvertisedWindow:
usati per controllo di flusso
• SequenceNum contiene seq. no. del primo byte di dati nel segmento (ogni
byte ha un seq.no.)
– Acknowledgment e AdvertisedWindow contengono info. su
flusso di dati nell’altra direzione (in fig., flusso in un’unica direzione)
Dati (SequenceNum)
Sender Receiver
Acknowledgment + AdvertisedWindow
174
Università di Bologna - Corso di Laurea in Informatica
Attivazione connessione
“Three way handshake”
• Processo server: ‘passive open’, in ricezione (p.e., su
porta “well-known”)
• Processo client: inizia connessione con ‘active open’:
– invia segmento SYN, con seq.no. iniziale
• Flags = SYN, SequenceNum = x Client Server
• Se “Server not listening”: Flags
= SY
– TCP ritorna segmento RESET N, S
equen
ceNu
• altrimenti, server risponde con ack m =
x
– Flags = ACK, Ack = x+1
– server SN (Flags = SYN, SequenceNum = y). m=y
,
en ceNu
• Infine, client risponde: (Flags = ACK, Ack = y+1).
K, Sequ
• Campo ack identifica prossimo SN atteso da N.AC
destinatario (client o server) e conferma SNs g s = SY + 1
Fla = x
precedenti. Ack
• SN iniziali scelti a caso per ridurre la possibilità che Flags
connessione accetti SNs di connessioni precedenti , e = AC
K, Ack =
ora chiuse, utilizzanti la stessa porta. y+1
• Timers usati per ritransmissioni (non mostrati in figura)
Rilascio di connessione
• Ogni connessione è full duplex
– Ogni processo agli estremi della connessione può rilasciare la sua parte di
connessione ( “simplex”) indipendentemente.
• Per rilasciare connessione,
– ogni partecipante invia segmento FIN
• p.e., A invia FIN a B
• quando questo è confermato (ack’ed) da B, A chiude la sua connessione e attende FIN
da B;
• quando A riceve FIN da B, A invia un ACK, attende per periodo “time-wait”, e chiude
– “time-wait”: doppio del massimo TTL di un datagram IP (120 secs).
– motivazione: se ACK da A va perso e B invia un altro FIN, si vuole evitare che
venga ricevuto da una nuova connessione e interpretato erroneamente.
• B chiude dopo “time-wait”, se non riceve ACK da A.
175
Università di Bologna - Corso di Laurea in Informatica
connect
LISTEN
disconnect
AC FIN/ACK
primo segmento ricevuto ACK K Close/FIN
+
FI
N
FIN_WAIT_2 /A CLOSING LAST_ACK
CK
ACK Timeout after two ACK
segment lifetimes
FIN/ACK
TIME_WAIT CLOSED
176
Università di Bologna - Corso di Laurea in Informatica
177
Università di Bologna - Corso di Laurea in Informatica
TCP TCP
LastByteWritten LastByteRead
Buffer mittente Buffer ricevente
178
Università di Bologna - Corso di Laurea in Informatica
179
Università di Bologna - Corso di Laurea in Informatica
Sender Receiver
/* NextByteExpected */
2. Write 3KB /* WS = 2048 => sender
frammenta dati in 2 segmenti */
180
Università di Bologna - Corso di Laurea in Informatica
tempo
• Mittente
– deve mantenere tutti i pacchetti non ack’ed in buffer perchè
possono dover essere ritrasmessi
• Ricevente
– può accettare pacchetti fuori ordine, ma solo entro i limiti delle
dimensioni della finestra di ricezione
• Mittente:
– deve attivare timer per richiedere ritrasmissione di segmento, se
ACK non ricevuto in un certo intervallo di tempo (time-out).
• DURATA DEL TIME-OUT ?
181
Università di Bologna - Corso di Laurea in Informatica
Time-out
1 1
Timeout
RTT
RTT 1
Timeout
182
Università di Bologna - Corso di Laurea in Informatica
183
Università di Bologna - Corso di Laurea in Informatica
Controllo di Congestione
Problemi
184
Università di Bologna - Corso di Laurea in Informatica
In astratto
A B
Src Host Buffer in Router Dst Host
100 Mbps
A B
185
Università di Bologna - Corso di Laurea in Informatica
BW(t)
A B
Flussi multipli
Due problemi
• Adattare DTR totale (i.e., traffico “aggregato”) a
sfruttare al meglio la Banda totale disponibile
• Allocare la banda fra flussi distinti “equamente”
A1 B1
100 Mbps
A2 B2
A3 B3
Reti di Calcolatori (Fabio Panzieri) 372
186
Università di Bologna - Corso di Laurea in Informatica
In pratica
• Controllo di congestione: problema di allocazione di risorse che
coinvolge molteplicità di flussi, attraverso molteplicità di links e
routers
Controllo di congestione
• Problema (in generale):
– allocazione “equa” di risorse a utenti in competizione per accedervi
• risorse: ampiezza di banda, memoria dei router
• utenti: pacchetti in competizione per l’accesso ad un link
• Origine del problema:
– Internetwork
• src e dst connessi da link con differenti velocità di trasmissione
– Store-and-forward
• Pacchetti ricevuti ai routers mantenuti in code, in attesa di trasmissione
• Code possono andare in overflow e pacchetti essere scartati
• => CONGESTIONE
• Soluzione: meccanismi di controllo di congestione
– implementano politiche di gestione di code nei routers
– limitano la velocità di trasmissione degli host src
187
Università di Bologna - Corso di Laurea in Informatica
• Tariffario
– scarta prima pacchetti di chi “paga meno” (i.e., offerta di servizi
differenziati)
– richiede modello tariffario
• Adattamento dinamico
– mantiene controllo del livello di congestione della rete
– aumenta traffico a rete scarica
– riduce traffico a rete carica
• Tutte e 4 le tecniche possono avere senso (in contesti
diversi)
– in Internet si usa “adattamento dinamico”
• a causa di caratteristiche di traffico, assenza di tariffe, ...
188
Università di Bologna - Corso di Laurea in Informatica
Allocazione di risorse e
controllo di congestione
• Allocazione di risorse: componenti di rete cercano di soddisfare
requisiti applicativi per risorse di rete
– Host usano protocolli di “signaling” per esprimere requisiti di risorse
– Routers/host intermedi rispondono relativamente alla disponibilità delle
risorse richieste
• Controllo di congestione: componenti di rete prevengono, o reagiscono
a, condizioni di sovraccarico delle risorse di rete
– può utilizzare meccanismi di allocazione di risorse
• Implementazione: parte nei routers, parte negli hosts (livello di
trasporto)
• Controllo di flusso (CdF) vs. Controllo di congestione (CdC)
– CdF: impedisce che src veloce sovraccarichi dst lento
– CdC: controlla che insieme di src’s non sovraccarichino risorse di rete
Source
1 10-M
bps
Ethe
rnet Router Destination
1.5-Mbps T1 link
I
• CdC e routing: CdC FDD
ps non implementabile mediante routing alternativo che evita router
Source -Mb
congestionato
2
100
– Possibilità di “bottleneck router” (cf. Fig.)
=> assenza di rotte alternative
– Complessità di routing in Internet
=> garantire rotta priva di cicli
189
Università di Bologna - Corso di Laurea in Informatica
Source
1
Router Destination
1
Source
Router Molteplicità di flussi
2
Router
attraverso i routers
Destination
2
Source
3
190
Università di Bologna - Corso di Laurea in Informatica
191
Università di Bologna - Corso di Laurea in Informatica
Allocazione di risorse:
metriche di valutazione
• Efficacia del meccanismo
– Power (rapporto throughput/delay)
– Obiettivo: massimizzare questo rapporto al variare del carico di rete
Throughput/delay
Optimal Load
load
• “Fairness”: indice di “equità” con cui vengono allocate risorse
– ancora oggetto di ricerca
Reti di Calcolatori (Fabio Panzieri) 383
192
Università di Bologna - Corso di Laurea in Informatica
Flow 1
Flow 2
Round-robin
service
Flow 3
Flow 4
FQ: osservazioni
• FQ
– si limita a gestire risorse (code) separando i flussi di traffico
=> src’s “dannose” (p.e. troppo veloci) non interferiscono con altre
– non informa src di stato del router, nè ne limita la velocità di
trasmissione
– richiede meccanismo di CdC end-to-end che regoli velocità di
trasmissione dei flussi
• Implementazione
– Per scopi di fairness, deve tenere conto di lunghezza pkts
• P.e. router gestisce 2 flussi
– Flusso A: pkts di 1000 B, Flusso B: pkts di 500 B
– Servizio round-robin => flusso A ottiene 2/3 della bandwidth disponibile
– Soluzione: round-robin (RR) “bit a bit”
• non pratica
• FQ simula RR “bit a bit”
193
Università di Bologna - Corso di Laurea in Informatica
Algoritmo FQ
• Principio di funzionamento
– Determina istante di terminazione di trasmissione di pkt, se tramesso bit a bit
– Usa timestamp ottenuto per sequenzializzare pacchetti
• Caso di singolo flusso
Assunzioni:
1. Clock avanza di un “tick” ogni volta che un bit è trasmesso da flusso “attivo”
(i.e., non vuoto)
2. Pi: lunghezza di pkt I, in bits
3. Si: istante di inizio trasmissione di pkt i
4. Fi: istante di fine trasmissione di pkt i (i.e., time stamp)
=> Fi = Si + Pi (a causa di condizione 1.)
• Quando inizia la trasmissione di pkt i?
194
Università di Bologna - Corso di Laurea in Informatica
Algoritmo FQ
F=8 F = 10 F = 10
F=5 F=2
(a) (b)
195
Università di Bologna - Corso di Laurea in Informatica
AIMD (segue)
– MSS: Max Segment Size che TCP può inviare senza che IP
frammenti
specificamente:
Increment = MSS * (MSS/CongestionWindow)
CongestionWindow += Increment
196
Università di Bologna - Corso di Laurea in Informatica
Slow Start
• Obiettiv o : determinare rapidamente capacità del canale Source Destination
disponibile
• Principio:
– Inizia con CongestionWindow = 1 pkt
– Raddoppia CongestionWindow ad ogni RTT
≠ “additive increase”: incrementa di 1 pkt per ogni RTT
– Se si verifica perdita di pkt (i.e., timeout), applica
“multiplicative decrease”
i.e. CongestionWindow = CongestionWindow/2
– Utilizzo di Slow Start
• in fase di attivazione di connessione
• quando connessione “bloccata” da pkt perso, e src sbloccata da time
out
• quando src riceve ACK cumultativo che riapre intera “advertised
window”
…
Reti di Calcolatori (Fabio Panzieri) 393
197
Università di Bologna - Corso di Laurea in Informatica
Fast Recovery
198
Università di Bologna - Corso di Laurea in Informatica
Esempio
• Mailboxes
User 1
2
cs.unibo.it panzieri@cs.unibo.it
Name Mail
server program
130.136.1.110 130.136.1.110 4
3
TCP
130.136.1.110 5
IP
DNS: Storia
• Inizialmente: mapping host<->addess mantenuto nel file hosts.txt (in
/etc/hosts di ogni host in rete)
– “spazio dei nomi” non strutturato (i.e., flat)
• spazio dei nomi: insieme dei nomi utilizzabili
– Amministratori di rete sceglievano nomi hosts a loro discrezione
– Cambiamenti venivano comunicati a network Information Center (NIC) via
email
– Nuove versioni di hosts.txt trasmesse via ftp da NIC periodicamente
• Al crescere di Internet il sistema non funzionò più:
– NIC non poteva sostenere il carico
– Nomi non erano unici
– Hosts avevano copie non coerenti di hosts.txt
• La crescita di Internet era messa a rischio
– fu introdotto il Domain Name System (DNS)
199
Università di Bologna - Corso di Laurea in Informatica
Gerarchia di nomi
root
200
Università di Bologna - Corso di Laurea in Informatica
x.berkeley.edu
argus y.sims.berkeley.edu
Gerarchia di Server
201
Università di Bologna - Corso di Laurea in Informatica
• Locale:
– Ogni ISP (compagnia) ha un name server locale di default
– Host DNS query indirizzata a name server locale prima di altri
• “Authoritative”:
– per un host: mantiene mapping <name, IP address> per quell host
– Può eseguire risoluzione del nome di quellhost nel suo indirizzo IP
202
Università di Bologna - Corso di Laurea in Informatica
• “forward”
• iterativa
• ricorsiva
• Server locale
– deve conoscere indirizzo di un root server (non ogni host)
203
Università di Bologna - Corso di Laurea in Informatica
www.berkeley.edu
www.berkeley.edu
Reti di Calcolatori (Fabio Panzieri) 408
204
Università di Bologna - Corso di Laurea in Informatica
DNS Records
dig cs.unibo.it
;; AUTHORITY SECTION:
cs.unibo.it. 432000 IN NS leporello.cs.unibo.it.
cs.unibo.it. 432000 IN NS simon.cs.cornell.edu.
cs.unibo.it. 432000 IN NS dns2.nic.it.
;; ADDITIONAL SECTION:
leporello.cs.unibo.it. 345600 IN A 130.136.1.110
simon.cs.cornell.edu. 27773 IN A 128.84.154.10
dns2.nic.it. 14500 IN A 193.205.245.8
dig unibo.it
;; AUTHORITY SECTION:
unibo.it. 86400 IN NS dns.cineca.it.
unibo.it. 86400 IN NS dns2.cineca.it.
unibo.it. 86400 IN NS almadns.unibo.it.
;; ADDITIONAL SECTION:
dns.cineca.it. 364 IN A 130.186.1.53
dns2.cineca.it. 364 IN A 130.186.1.9
almadns.unibo.it. 432000 IN A 137.204.1.15
Reti di Calcolatori (Fabio Panzieri) 410
205
Università di Bologna - Corso di Laurea in Informatica
dig it
;; AUTHORITY SECTION:
nic.it. 43252 IN NS itgeo.mix-it.net.
nic.it. 43252 IN NS nameserver.cnr.it.
nic.it. 43252 IN NS dns.nic.it.
nic.it. 43252 IN NS dns2.nic.it.
;; ADDITIONAL SECTION:
itgeo.mix-it.net. 2353 IN A 217.29.76.5
nameserver.cnr.it. 23854 IN A 194.119.192.34
dns.nic.it. 7684 IN AAAA 2001:760:600:1::5
dns.nic.it. 64136 IN A 193.205.245.5
dns2.nic.it. 13552 IN A 193.205.245.8
206
Università di Bologna - Corso di Laurea in Informatica
Osservazioni conclusive
• Caching
– aumenta prestazioni salvando risultati di precedenti ricerche in
memoria cache
• N.B.: TTL può causare problemi di sovraccarico in conseguenza della
struttura gerarchica del DNS, e del caching
• Principio di delega amministrativa a singoli domini, e
architettura distribuita:
– riducono complessità nella generazione di nomi unici
– inducono “condivisione della sorte” fra gli hosts all’interno del
medesimo dominio in caso di guasti di rete
207
Università di Bologna - Corso di Laurea in Informatica
Nota storica
• Tutti gli elaboratori ospiti in Internet utilizzano protocolli standard
per scambio di informazione:
– UDP: messaggio inviato senza ack da ricevente (servizio datagram)
– TCP: trasmissione affidabile e consegna in sequenza di messaggi
• connessione stabilita fra src e dst , msgs trasmessi con ack da dst,
terminazione di connessione.
• Utenti iniziali di Internet: comunità accademiche (email, ftp
applicazioni principali).
• Introduzione di “News groups” e “Bulletin Boards” estendono le classi
di utenza.
• Inizio anni ‘80: Tim berners-Lee e colleghi al CERN (centro europeo di
ricerca su fisica delle particelle) sviluppano varie applicazioni che
supportano lavoro collaborativo per la comunità dei ricercatori in
fisica. Queste applicazioni si affermano a livello internazionale come
WWW.
• Oggi, WWW si sta sviluppando come infrastruttura di supporto a
sistemi di commercio elettronico, insegnamento, intrattenimento, …
208
Università di Bologna - Corso di Laurea in Informatica
P.E.: URL di server che usa ftp (rapporti tecnici del Dipartimento)
ftp://ftp.cs.unibo.it/pub/techreports/93-22.ps.gz
WWW Server
• Processo applicativo eseguito su elaboratore
– attende richieste di connessione da clienti su porta TCP (porta di default:
# 80)
– usa HTTP (che a sua volta usa TCP per trasmissione messaggi)
– Contenuto dei messaggi: rappresentato in MIME
• MIME (Multiporpose Internet Mail Extension): standard di email per inviare
posta elettronica multimediale
– Uso di MIME: consente al ricevente l’uso di applicazioni adeguate per
trattare l’informazione ricevuta
– Tipi di messaggi MIME più comunemente usati da WWW:
• contenuto di tipo text
– text/plain: testo senza particolari requisiti di formattamento
– text/html: testo contenente istruzioni HTML
• contenuto di tipo image:
– image/gif: un immagine in formato GIF
209
Università di Bologna - Corso di Laurea in Informatica
HTTP (V1.0)
• HTTP V1.0:
– protocollo prima versione (ancora in uso)
– di tipo RPC client-server
– server è “stateless” (i.e. non mantiene stato della richiesta
dopo averla servita)
– fasi di esecuzione di un comando HTTP:
• connessione: Cliente stabilisce una connessione TCP con Server,
identificato dall’URL nel comando
P.E. open ftp://ftp.cs.unibo.it/pub/techreports
• richiesta: richiesta di servizio inviata dal Cliente al Server
• risposta: Cliente riceve la risposta dal Server
• terminazione: Cliente o Server chiudono la connessione
Esempio
Client Server
TCP Syn
Establish
connection TCP syn + ack
Client TCP ac
k+ HTTP
request GET
..
Request
response
.
Close
connection
210
Università di Bologna - Corso di Laurea in Informatica
Osservazioni
• Servers WWW
– implementano un insieme prefissato di operazioni
– operazioni sono codificate all’interno del protocollo HTTP
– operazioni includono
• GET: ottiene la risorsa identificata dall’URL
• HEAD: simile a GET, ritorna però solo gli headers HTML
• PUT: carica i dati all’URL specificato
• Protocolli di RPC “tradizionali”
– combinati con generatori di stubs possono essere usati per invocare
qualunque operazione implementata da un server
– non esiste compilatore di stubs per HTTP
– protocollo di RPC usato in HTTP è per uso esclusivo con servers WWW
– se server deve essere esteso con nuove operazioni, anche il protocollo
HTTP deve essere esteso
Scripts di Server
• WWW non limitato a ricerca di files HTML. Cliente può richiedere a
server di eseguire particolari programmi applicativi (principio di
funzionamento delle “mappe attive”). Realizzato mediante CGI
(Common Gateway Interface.
211
Università di Bologna - Corso di Laurea in Informatica
Proxy di Servers
• Proxy Server:
– server programmabile ad agire da cache per ridurre il traffico di rete al server di
origine
– fornisce informazione da un suo cache interno
– richieste cliente consegnate a Proxy Server
– se risorse richieste non disponibili in cache di Proxy, questo ne effettua fetching da
Server di origine
N.B. Web caching: problema di ricerca; meccanismo principale di minimizzazione del
carico dei Web Servers
WWW
Client
Proxy Web
WWW
Server Server
Client
WWW
Client
212
Università di Bologna - Corso di Laurea in Informatica
Problemi di WWW
• Fetching di pagina Web: può richiedere fetching di varie risorse URL
(di testo e immagini). E’ comune che cliente effettui diverse richieste
a un Web server in rapida successione. Ogni richiesta crea e chiude
(i.e. connect, disconnect) una nuova connessione TCP
– connessione/disconnessione: operazione costosa in termini di carico
computazionale, memoria, numero di messaggi. Se effettutata
frequentemente, aumenta il carico del Server e causa congestione di rete.
– TCP, quando individua congestione di rete, riduce il tasso di trasferimento
messaggi
– effetto al cliente: server lento.
• Come evitare questi problemi e implementare servers scalabili:
– ridurre la necessità di creare molte connessioni
• uso di connessioni persistenti
– ridurre le richieste di accesso a servers
• uso di proxy di servers e caching
• N.B. Necessario implementare quanto sopra senza aumentare
(significativamente) la complessità del protocollo HTTP
• Vantaggi:
– aprendo un minor n. di connessioni si risparmia memoria e tempo di CPU
– molteplicità di richieste HTTP possono essere inviate da cliente a server
in pipeline sulla medesima connessione. Pipelining consente al cliente di
inviare molteplicità di richieste senza attendere ogni singola risposta; ne
consegue un uso più efficiente della connessione
– possibilità di congestione di rete viene ridotta
213
Università di Bologna - Corso di Laurea in Informatica
Caching in HTTP/1.1
214
Università di Bologna - Corso di Laurea in Informatica
Caching in HTTP/1.1
215
Università di Bologna - Corso di Laurea in Informatica
216
Università di Bologna - Corso di Laurea in Informatica
• Soluzioni:
– RPC: protocollo per invocare operazioni generiche (i.e. non vi è un set
di operazioni prefissato cui è associato il protocollo di RPC)
– Le risorse definiscono le operazioni ad esse applicabili in un IDL
– Dall’IDL si possono generare stubs di cliente e server usando
generatori di stub (come in RPC)
– In tal modo si ottiene un metodo uniforme per trattare risorse
arbitrarie (inclusi meccanismi come Azioni Atomiche per l’integrità dei
dati)
– Questa soluzione è estendibile: nuove risorse possono essere aggiunte,
con nuove operazioni, senza dover modificare il protocollo di RPC, ne
usare soluzioni ad hoc come gli script CGI
217
Università di Bologna - Corso di Laurea in Informatica
218