Architettura delle reti - Intranet...
Transcript of Architettura delle reti - Intranet...
Architettura delle reti
Versione del 4 marzo 2004
- 2 -
Reti di calcolatori
Una rete di calcolatori è costituita da molti calcolatori (nodi o host della rete) collegati tra loro che interagiscono usufruendo dei servizi di rete per lo scambio delle informazioni.
L’architettura (o struttura) di una rete di calcolatori è definita da:
• un insieme di tipi di mezzi trasmissivi;
• la modalità di connessione dei calcolatori e degli altri apparati di rete;
• il protocollo di comunicazione comune ai nodi collegati.
- 3 -
Reti di calcolatori
Tecnologia di rete:
• insieme di tipi di mezzi trasmissivi e di regole di
connessione. Parametri della tecnologia: distanza,
velocità di trasmissione (bit al secondo), costo.
Protocollo di comunicazione:
• è un insieme di regole che consentono di
trasformare il segnale fisico in "dati riconoscibili“:
– governano la modalità di scambio di informazioni tra nodi
di una stessa rete;
– sono specificate a partire dal livello applicativo fino al
livello fisico di trasmissione.
- 4 -
Mezzi trasmissivi
La comunicazione tra due calcolatori avviene attraverso un
mezzo trasmissivo (guidato o non guidato), come per es.:
– doppino di rame;
– cavo coassiale;
– fibra ottica;
– onde elettromagnetiche;
– porte a infrarossi;
– …. o una loro combinazione.
- 5 -
Modalità di connessione: a commutazione di circuito
Connessione dedicata tra due nodi (non adiacenti):
– è una connessione diretta, punto a punto;
– garantisce una banda (per es. 64 Kbit/s);
– tipicamente basata su linee telefoniche;
– lo sfruttamento della banda non è generalmente continuo:
(ad es. occupo la linea senza sfruttarne la banda quando leggo una pagina
Web che ho appena scaricato in locale);
– elevati costi per connessione.
A
B
p q
r s
A
B
p q
r s
A seguito della richiesta di connessione, viene creato un circuito fisico da A a B.
- 6 -
Modalità di connessione: a commutazione di pacchetto
Il canale è unico, ma il traffico è diviso in piccoli messaggi (pacchetti) di
poche e variabili centinaia di byte:
– Quando un calcolatore collegato in rete non utilizza la banda, questa
può essere utilizzata da altri calcolatori, consentendo più comunicazioni
simultanee.
– Non è garantito il percorso effettuato dai messaggi.
Non garantendo il percorso seguito dai messaggi, si realizza un servizio che
può essere:
– A circuito virtuale o connection oriented (per es. TCP): mantiene
l’ordinamento dei messaggi durante la trasmissione.
– A datagramma o connectionless (IP): ogni messaggio è trattato in modo
indipendente durante la trasmissione. In ricezione è garantita la
ricostruzione del messaggio originario.
- 7 -
Commutazione di pacchetto
A seguito della richiesta di connessione
la rete non crea nessun collegamento.
A
B
p q
s r
Percorso messaggio 1:
A ... p … q … r … B
Percorso messaggio 2:
A ... p … s … r … B
- 8 -
Categorie di reti
LAN (local area network)
velocità 4 Mbps - 2 Gbit/s
MAN (metropolitan area network)
velocità 56 Kbit/s - 100 Mbit/s
WAN (wide area network)
velocità 9.6 Kbit/s - 1 Gbit/s
La maggior parte delle reti è stata standardizzata:
– IEEE 802.3 (Ethernet): di tipo LAN
– Fast Ethernet: di tipo LAN
– Token-Ring (IBM): di tipo LAN
- 9 -
Internetworking - Interconnessione tra reti
diverse
La comunicazione tra calcolatori anche se su reti differenti è difficile ma irrinunciabile.
Una rete di reti è detta internet (con la i minuscola).
Una internet è definita fornendo i protocolli per trasferire le informazioni tra le varie reti (ad es. TCP/IP). I protocolli internet consentono la comunicazione tra macchine non collegate alla stessa rete.
Terminologia – internet: una rete di reti.
– Internet (INTERconnected NETwork): la più diffusa internet del mondo.
– TCP/IP: il più diffuso protocollo per creare internet, ed usato da Internet.
– intranet: una rete privata basata sulle stesse tecnologie di Internet.
– extranet: diverse intranet collegate tra loro.
- 10 -
Stratificazione dei protocolli
Le applicazioni distribuite in rete fanno riferimento ai protocolli
(stratificati) utilizzati nei singoli nodi della rete, indipendentemente da:
– L’implementazione fisica della macchina (HW+SO).
– L’implementazione di alcuni strati del protocollo di comunicazione di
rete stesso.
Deve essere condiviso il protocollo applicativo e il protocollo di
internetworking (ad es. TCP/IP), cioè il protocollo di comunicazione in rete.
Il protocollo di comunicazione in rete è in generale una una famiglia (o
suite) di protocolli:
– La suddivisione in “strati” di protocolli consente di dividere un problema
complesso in più sottoproblemi ed una migliore analisi di ogni singolo protocollo.
– I vari protocolli gestiscono differenti problemi.
- 11 -
I protocolli stratificati
ISO/OSI: descrive in modo stratificato le funzioni astratte
che devono essere fornite da una architettura dicomunicazione tra nodi
internet protocol suite
di applicazione: servizi direttamente utilizzabilidall'utente. E' l'insieme delle interfacce per i programmiapplicativi che utilizzano la rete (API)
http, smtp, ftp, telnet ...sono tutti protocolli applicativi chegestiscono vari tipi di sessioni in rete
di presentazione: servizi direttamente utilizzabilidall'utente. Offre funzioni, non indispensabili, relative alformato delle informazioni da trasferire (ad es.compressione, crittografia)
di sessione: servizi direttamente utilizzabili dall'utente.Gestisce una sessione di lavoro tra due utenti collegati inrete (protocolli diversi per tipologie di sessioni)
di trasporto: Gestisce la trasmissione dei dati da trasferiretra un mittente e un destinatario, eventualmentesuddividendo i dati in messaggi o pacchetti a dimensioniinferiori
TCP e UDP
di rete: Gestisce la trasmissione del singolo messaggio (opacchetto) tra un mittente e un destinatario e stabilisce ilpercorso attraverso nodi intermedi (routing)
IP
di collegamento dati: Definisce le regole di trasmissione tradue nodi fisicamente adiacenti
fisico: Definisce la trasmissione dei singoli bit lungo ilcanale fisico
- 12 -
Applicazione distribuita
ServerX
Software TCP
Software IP
INTERFACCIA DI RETE
protocolli della specifica
rete
driver della scheda di rete
HARDWARE
(scheda di rete)
ClientX
Software TCP
Software IP
INTERFACCIA DI RETE
protocolli della specifica
rete
driver della scheda di rete
HARDWARE
(scheda di rete)
internet (IP)
INTERFACCIA DI RETE
protocolli della specifica rete
driver della scheda di rete
HARDWARE
(scheda di rete)
Protocollo applicativo
per es. “interprete comandi”
Protocollo TCP
Protocollo IP
- 13 -
Applicazione distribuita e interoperabilità
Quali caratteristiche devono avere le architetture
hardware e software su cui girano ServerX e ClientX?
Nessuna specifica, fatto salvo che lo scambio di
informazioni tra ClientX e ServerX deve avvenire
utilizzando la stessa gerarchia di protocolli:
– protocollo applicativo (HTTP, SMTP, FTP, ecc)
– protocollo TCP
– protocollo IP
- 14 -
Protocollo IP (I)
Maschera ai protocolli superiori l’esistenza di tante reti diverse, presentandole come un’unica internet.
Accetta dal protocollo di livello superiore un messaggio (pacchetto da trasferire) dotato di un indirizzo IP e lo consegna al calcolatore (host) caratterizzato da quell’indirizzo.
– Il messaggio IP si chiama datagramma
Ogni calcolatore (host) collegato a una internet ha un suo proprio indirizzo (indirizzo IP):
– univoco: non esistono cioè due macchine di una stessa internet che abbiano indirizzo IP uguale;
– composto da netid e hostid, per un totale di 32 bit;
– tutte le macchine di una rete hanno lo stesso netid;
– una macchina collegata a 2 reti diverse ha 2 indirizzi IP diversi.
- 15 -
Protocollo IP (II)
Il software IP di una qualsiasi macchina è in grado di inviare un
messaggio all’IP di un’altra qualsiasi macchina collegata alla stessa
rete.
Il passaggio di messaggi da una rete a un’altra avviene tramite alcuni
nodi specializzati, chiamati gateway, che sono fisicamente collegati
ad ambedue le reti. Quindi un gateway è in grado di “parlare e
capire” i protocolli di basso livello delle reti cui è fisicamente
collegato.
I gateway dispongono di tabelle di instradamento (routing) che
consentono di instradare i messaggi verso la rete destinazione.
- 16 -
Instradamento
rete 1 rete 2 rete 3 gateway 1 gateway 2
Messaggio da rete 1 a rete 2
Messaggio da rete 1 a rete 3
Messaggio da rete 1 a rete 2 che ….. lo rilancia a rete 3
- 17 -
Comunicazione tra due calcolatori (host)
mittente protocolli applicativi
trasporto (TCP)
internet (IP)
INTERFACCIA DI RETE
protocolli della specifica
rete
driver della scheda di rete
HARDWARE
(scheda di rete)
destinatario protocolli applicativi
trasporto (TCP)
internet (IP)
INTERFACCIA DI RETE
protocolli della specifica
rete
driver della scheda di rete
HARDWARE
(scheda di rete)
gateway
con tabelle di routing
internet (IP)
INTERFACCIA DI RETE
protocolli della specifica
rete
driver della scheda di rete
HARDWARE
(scheda di rete)
- 18 -
Esempio di internet (Purdue University, 1980 circa)
Ethernet 128.10.0.0
Merlin
(multi-home host)
128.10.2.3
Guenever
(ethernet host)
128.10.2.8
Glatisant
(gateway)
128.10.2.70
Lancelot
(ethernet host)
128.10.2.26
proNet-10
192.5.48.0
Arthur
(proNet host)
192.5.48.1 Taliesyn
(gateway)
192.5.48.6 10.2.0.37
ARPAnet 10.0.0.0
192.5.48.3 192.5.48.7
- 19 -
Protocollo IP (III)
Il servizio realizzato da IP è la consegna del datagramma.
– Il datagramma è un pacchetto di bit contenente i dati e un’intestazione
(tra cui indirizzo mittente e indirizzo destinatario).
La consegna del datagramma è:
– Senza connessione. Ogni pacchetto è trattato indipendentemente dagli
altri.
– Inaffidabile. La consegna del messaggio al destinatario non è garantita,
possono esservi pacchetti persi, duplicati, ritardati o consegnati fuori
sequenza. Il mittente non ha riscontro dell’avvenuta consegna.
– Best effort. Il software compie ogni tentativo per consegnare i pacchetti
correttamente.
- 20 -
Protocollo IP (IV)
Il protocollo IP fornisce: – formato esatto di tutti i dati trasferiti in una internet;
– funzioni di istradamento (routing), realizzato proprio in base all’indirizzo IP:
• ogni gateway dispone di opportune tabelle (di routing) per l’istradamento
– insieme di regole che inglobano l’idea di consegna non affidabile.
Limitazioni: – non consente di distinguere più destinazioni di datagrammi all’interno
della stessa macchina (vede solo l’indirizzo IP);
– non ha alcun meccanismo per gestire il problema della consegna non affidabile.
- 21 -
Protocollo TCP (I)
Per distinguere più connessioni verso uno stesso calcolatore, si introduce il concetto di porta, intesa come punto di destinazione di una connessione.
– Ogni porta TCP è identificata univocamente da un unsigned int.
– Un processo accede a una porta in modo sincrono e tamponato (buffered).
Garantisce un servizio affidabile di trasporto di flusso (stream):
– orientamento al flusso (stream): trasmette sequenze di byte;
– connessione di circuito virtuale: chiamante e chiamato stabiliscono una connessione full-duplex utilizzando un circuito virtuale. In caso di fallimento, entrambi se ne accorgono;
– trasferimento tamponato (buffered);
– flusso (stream) non strutturato: per es. un messaggio può essere suddiviso su più pacchetti.
- 22 -
Protocollo TCP (II)
L’affidabilità è una caratteristica imprescindibile. È basata sul riscontro
positivo di ricezione (PAR - Positive Acknowledge with Retransmission)
– Il destinatario informa il mittente della ricezione del messaggio.
– Il mittente, se non ottiene riscontro dal destinatario entro un certo
tempo (time-out), arguisce la perdita del pacchetto.
- 23 -
Protocollo con riscontro positivo di ricezione
Eventi nel mittente Eventi nel destinatario Messaggi sulla rete
Trasmissione pacchetto 1
inizializzazione contatore
di time-out Ricezione pacchetto 1
Ricezione riscontro (ack) 1
azzeramento time-out
Trasmissione riscontro (ack) 1
Trasmissione pacchetto 2
Ricezione pacchetto 2
Ricezione riscontro (ack) 2
Trasmissione riscontro (ack) 2
- 24 -
Trasmissione con perdita di pacchetto
Eventi nel mittente Eventi nel destinatario Messaggi sulla rete
Trasmissione pacchetto 1
inizializzazione time-out Mancata ricezione pacchetto 1
Mancata ricezione riscontro (ack) 1
Mancata trasmissione riscontro (ack) 1
Ritrasmissione pacchetto 1
inizializzazione time-out Ricezione pacchetto 1
Ricezione riscontro (ack) 1
Trasmissione riscontro (ack) 1
Il pacchetto 1 va perso
Il time-out scade
- 25 -
Trasmissione contemporanea di più pacchetti
Eventi nel mittente Eventi nel destinatario Messaggi sulla rete
Trasmissione pacchetto 1
Trasmissione pacchetto 2
Trasmissione pacchetto 3
Trasmissione pacchetto 4
Ricezione pacchetto 1
Ricezione pacchetto 2
Ricezione pacchetto 3
Ricezione pacchetto 4
Ricezione ACK 1
Ricezione ACK 2
Ricezione ACK 3
Ricezione ACK 4
Trasmissione ACK 1
Trasmissione ACK 2
Trasmissione ACK 3
Trasmissione ACK 4
- 26 -
Protocollo TCP (III) - La stima del time-out
Il TCP del destinatario deve:
– trasmettere ACK di ogni pacchetto ricevuto;
– scartare i pacchetti duplicati (cioè di quelli ritrasmessi dal
mittente): questo è possibile perchè i pacchetti sono numerati
progressivamente a partire dal messaggio originario.
Possono esistere pacchetti duplicati a causa del tempo di
“circolazione” all’interno della rete. In TCP il mittente reinvia un
pacchetto allo scadere del time-out di ricezione acknowledge.
La stima del time-out è un problema complesso e critico e dipende
dal carico della rete. Vengono usati algoritmi sofisticati.
Il tempo associato ad una comunicazione in rete (round-trip delay) è
dato dal tempo necessario perchè il messaggio arrivi a destinazione
più il tempo di ricezione dell’acknowledge.
- 27 -
Protocollo TCP (IV) - La stima del time-out
Il round-trip delay dipende dal percorso dei pacchetti e dal carico della rete: è
quindi necessario che i time-out vengano “aggiustati” dinamicamente.
Ad esempio, collasso della rete ……. • istante T rete in equilibrio per quel che riguarda i time-out
• aumento del carico, quindi la la rete “rallenta”
• scadono i time-out (definiti per uno stato di equilibrio), è necessaria la ritrasmissione
• il carico aumenta ulteriormente
TCP consente anche di di controllare il flusso della comunicazione.
– Ogni riscontro dal ricevente indica anche il n° di byte che il ricevente è in grado di
accettare.
– In questo modo è possibile indicare al trasmittente se si ha congestione sulla linea e
addirittura annullare la trasmissione di altri pacchetti indicando di essere disposto a
ricevere 0 byte.
- 28 -
Il datagramma TCP (I)
Il datagramma TCP descrive il formato dei pacchetti.
Esso prevede:
– una parte intestazione, di lunghezza fissa pari a 6 blocchi da 32 bit ciascuno
(quindi 192 bit);
– una parte dati, di lunghezza variabile.
porta provenienza porta destinazione
0 4 10 15 16 24 31
lungh. messaggio UDP codice err. UDP
dati
numero sequenziale
numero di riscontro
hlen riservato bit codice finestra
cheksum puntatore urgente
opzioni (eventuali) riempimento
- 29 -
Il datagramma TCP (II)
intestazione
port di provenienza: porta del mittente (16 bit);
port di destinazione: porta del destinantario (16 bit);
numero sequenziale: posizione dei dati nello stream del mittente (32 bit);
numero riscontro: numero del byte che il destinatario si aspetta di ricevere
successivamente;
hlen: lunghezza del segmento in multipli di 32 bit (4 bit). È necessario perché il
campo opzioni (vedi sotto) ha lunghezza variabile;
riservato: per usi futuri (6 bit);
codice: indica lo scopo ed il contenuto del segmento (6 bit):
– URG: il campo puntatore urgente è valido;
– ACK: il campo riscontro è valido;
– PSH: il campo richiede un push;
– RST: effettua il reset della connessione
– SYN: sincronizza i numeri di sequenza;
– FIN: il mittente ha raggiunto la fine del suo flusso (stream).
- 30 -
Il datagramma TCP (III)
intestazione...
finestra: dimensione del buffer dei dati (16 bit);
checksum: controllo (16 bit);
puntatore urgente: il pacchetto deve essere processato con urgenza - ad es.
contiene ctrl-c ed i pacchetti residui non devono essere più inviati - (16 bit). Se il
codice URG = 1, specifica la posizione della fine dei dati urgenti nella finestra;
opzioni: per informazioni aggiuntive, come ad es. stabilire la dimensione massima
del segmento - maximum segment size - (24 bit);
riempimento: completa le opzioni fino a 32 bit (8 bit).
dati: i dati effettivamente trasmessi dal mittente al destinatario.
- 31 -
Protocollo UDP
A parte la specifica di un port, UDP ha gli stessi vincoli di IP:
– senza connessione;
– inaffidabile;
– best-effort.
Datagramma UDP
port provenienza UDP port destinazione UDP
0 15 16 31
lungh. messaggio UDP codice err. UDP
dati
dati
- 32 -
Alcune porte TCP riservate
num. nome descrizione
11 USERS systat utenti attivi
13 DAYTIME daytime ora del giorno
15 netstat stato della rete
17 QUOTE quotd citazione del giorno
20 FTP-DATA ftp-data dati FTP
21 FTP ftp FTP
23 TELNET telnet connessione di terminale
25 SMTP smtp simple mail transport protocol
37 TIME time tempo
42 NAMESERVER name server di nomi dell'host
53 DOMAIN nameserver server di nomi del dominio
79 FINGER finger
80 WEBSERVER web server server web
93 DCP device control protocol
- 33 -
Protocolli applicativi veicolati da TCP/IP
Sigla Protocollo Servizio
DNS Domain NameService
Servizio di conversione di nomi inindirizzi IP e viceversa
SMTP Simple MailTransferProtocol
Servizio di posta elettronica,comunicazione tra due server e daclient a server
FTP File TransferProtocol
Servizio di trasferimento file in rete
HTTP HyperTextTransferProtocol
Servizio Worl Wide Web
IMAP
POP
Internet MailApplicationProtocolPost OfficeProtocol
Servizio di posta elettronica,comunicazione da server a client
telnet Telnetwork Servizio di emulazione di terminaleremoto