2. Comunicazione e standard
• La comunicazione tra nodi differenti e,
possibilmente, basati su piattaforme hardware e/o
software eterogenee necessita di STANDARD
• L’informatica, da sempre, conosce due modi per
arrivare ad uno standard
– STANDARD de iure
– STANDARD de facto
• Gli standard di comunicazioni tra calcolatori
offrono un esempio “storico”
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.3
Due standard in concorrenza
ISO/OSI TCP/IP
(de iure) (de facto)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.4
2
3. Parte 2
Modulo 1a:
Stack ISO/OSI
Il caso dello “standard de iure”
ISO/OSI
• L’organizzazione ISO (International Standard
Organization) ha definito le specifiche di quello
che sarebbe dovuto diventare lo standard di
protocolli per l’interconnessione di nodi
eterogenei: OSI (Open System Interconnection)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.6
3
4. Funzionalità del modello ISO/OSI
1) Protocolli di comunicazione (network level): riguardano la
comunicazione di messaggi tra nodi della rete, in modo da
nascondere le caratteristiche dei mezzi fisici di trasmissione alle
funzionalità di elaborazione
2) Protocolli di elaborazione (application level): insieme di
meccanismi per il controllo delle applicazioni
Protocolli di
Funzioni di elaborazione Funzioni di
elaborazione elaborazione
interfaccia Protocolli di interfaccia
Funzioni di comunicazione Funzioni di
comunicazione comunicazione
Rete di comunicazione
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.7
I 7 livelli dello stack ISO/OSI
Application
Presentation
Session
7 livelli
Transport
Network
Data link
Physical
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.8
4
5. I 7 livelli del modello ISO/OSI
Host A Host B
processo processo
strato di applicazione strato di applicazione
strato di presentazione strato di presentazione
strato di sessione strato di sessione
strato di trasporto strato di trasporto
strato di rete strato di rete
strato di collegamento strato di collegamento
strato fisico strato fisico
Nodo all’interno
della rete
Comunicazione logica
Comunicazione fisica
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.9
Livelli ISO/OSI
• Livello fisico (1): Gestisce i particolari meccanici ed elettrici della
trasmissione fisica di un flusso di bit
• Livello di collegamento dati (2): Gestisce i frame o i pacchetti
trasformando la semplice trasmissione in una linea di comunicazione
priva di errori non rilevati.
– Gestisce l’accesso e l’uso dei canali fisici, gestisce il formato dei messaggi
suddividendo (ove necessario) i dati in frame.
– Gestisce la corretta sequenza dei dati trasmessi, comprendente l’uso di
codifiche ridondanti (ad es., bit di parità) per l’individuazione e la
correzione di errori che si sono verificati nello strato fisico, e la conferma
dell’avvenuta ricezione
• Livello di rete (3): Fornisce i collegamenti e l’instradamento dei
pacchetti nella rete, comprese la gestione dell’indirizzo dei pacchetti in
uscita, la decodifica dell’indirizzo dei pacchetti in ingresso e la
gestione delle informazioni di instradamento (ad es., router)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.10
5
6. Livelli ISO/OSI (cont.)
• Livello di trasporto (4): Effettua il controllo end-to-end della sessione
di comunicazione (accesso alla rete da parte del client e trasferimento
dei messaggi tra i client) e garantisce l’affidabilità del trasporto
• Livello di sessione (5): Consente a utenti su macchine eterogenee di
stabilire sessioni, implementando funzioni di coordinamento,
sincronizzazione e mantenimento dello stato (di sessione)
• Livello di presentazione (6): Risolve le differenze di formato che
possono presentarsi tra diversi nodi della rete (ad es., conversione tra
caratteri ASCII, Unicode, EBCDC, conversione di codifica tra little- e
big-endian), ma gestisce anche la compressione dei dati, la sicurezza
e l’autenticità dei messaggi attraverso tecniche di crittografia
• Livello di applicazione (7): Fornisce un’interfaccia standard per i
programmi applicativi che utilizzano la rete, mascherando le
peculiarità e la complessità del sistema sottostante
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.11
Formato del messaggio inviato
• Messaggio (PDU) composto da intestazione (header) e dati
• Ogni livello aggiunge una propria intestazione
Intestazione del livello collegamento dati
Intestazione del livello rete
Intestazione del livello trasporto
Intestazione del livello sessione
Intestazione del livello presentazione
Intestazione del livello applicazioni
Dati
Insieme di bit inviati sulla rete
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.12
6
7. Comunicazione nel Modello ISO/OSI
Messaggio inviato Messaggio ricevuto
Livelli
Application
Presentation
Session
Transport
Network
Data link
Physical
Mittente Rete di comunicazione Destinatario
Ma l’ISO/OSI non è riuscito ad affermarsi perché
nel frattempo stava esplodendo ………
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.13
Parte 2
Modulo 1b:
Stack TCP/IP
(“Protocolli di Internet”)
7
8. I livelli dei due Protocol Stack
ISO/OSI TCP/IP
Application Application
Presentation
Session
7
Transport 5 Transport
Network Internet
Data link Host-to-
Physical network
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.15
Critiche
Al modello ISO/OSI Al modello TCP/IP
• Cattiva tempistica • Poco generale
• Cattiva tecnologia • Meno concettuale e più
– Influenzato dal modello IBM-SNA orientato al funzionamento
– Ridondanze
• Livelli host-to-network
• Cattiva implementazione confusi e interdipendenti
– Complessità
– Eccessivi 7 livelli per la • Protocolli sviluppati ad hoc
tecnologia (reti-computer) del invece che protocolli generali
tempo
• Pessima politica
– Modello imposto contro il libero
TCP/IP legato a Unix
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.16
8
9. Altro motivo del successo di TCP/IP
• Disponibilità di una buona implementazione dello
stack in versione open source a metà degli anni
’80 su BSD Unix
• Disponibilità di un buon insieme di API (BSD
socket API) per sviluppare applicazioni di rete:
non perfette, ma funzionanti
• Al contrario,
– il comitato ISO/OSI definì le specifiche dello stack
– le implementazioni funzionanti delle specifiche ISO/OSI
erano molto in ritardo rispetto a quelle già disponibili
TCP/IP
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.17
Due standard non più in
concorrenza
ISO/OSI TCP/IP
(de iure) (de facto)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.18
9
10. Internet: Cosa non è ...
• Non è una singola rete, ma un insieme di reti esteso in
tutto il mondo
• Non è governata da un gruppo né da un ente né da
un’unica azienda
• Non è gestita in modo centralizzato perché tutte le
singole sottoreti che compongono Internet hanno una
gestione autonoma
E soprattutto: Non è sinonimo di World Wide Web
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.19
Parte 2
Modulo 2:
Un po’ di storia di Internet
10
11. Internet: storia e leggenda
• La leggenda
Un progetto finanziato dal Ministero della Difesa USA
con lo scopo di realizzare una rete in grado di
comunicare anche in seguito ad attacchi nucleari
• La realtà
– Finanziata dal Ministero della Difesa USA
– Motivazione: successi spaziali dell’URSS
– Obiettivo: consentire l’accesso alle poche risorse di
calcolo potenti (e costose) da vari centri di ricerca e
Università USA
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.21
Anni ’60: la teoria e i primi esperimenti
• 1961: Leonard Kleinrock del MIT • 1965: Larry Roberts e Thomas Marrill
pubblica “Information flow in large effettuano il primo collegamento dati
communication nets” sulla teoria del fra Massachussets e Santa Monica in
packet switching California:
– Prima volta che due computer si
• 1962: J.C.R. Licklider e Wesley Clark scambiano informazioni
del MIT pubblicano “On-line man – Primo utilizzo dei "packets“
computer communication” che – Risultati sorprendenti: il collegamento
rappresenta il primo articolo sul a commutazione di circuito era
concetto di Internet inaffidabile, mentre le teorie di
Kleinrock sul “packet switching"
• 1962-1964: J.C.R. Licklider è il primo funzionavano
direttore dell’ufficio IPT dell’ Arpa e • 1966: Roberts e Marrill pubblicano i
scrive diversi articoli sul concetto di risultati in “Toward a cooperative
“galactic network” network of time-shared computers”,
• 1964: Leonard Kleinrock descrive il dove viene utilizzato per la prima volta
il termine protocollo
funzionamento di una rete basata sul
packet switching nel libro • 1966: Robert Taylor diventa il terzo
direttore dell'ufficio IPT dell’Arpa ed
“Communication net”, ma non incontra il assume Larry Roberts per portare
favore dei principali esperti dell’epoca, avanti il progetto Arpanet. Charlie
che considerano una tale rete Hertzfeld, direttore dell’agenzia
irrealizzabile Arpa, stanzia 1 milione di dollari
per il progetto ARPAnet
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.22
11
12. Internet 1967-1972: gli albori
• 1967: Wesley Clark suggerisce di • 1969: Bob Kahn scrive “host to imp
utilizzare una sottorete di minicomputer, specification 1822” che descrivono
tutti uguali, dedicata esclusivamente alla le interfacce tra gli host della rete
ricezione e trasmissione dei dati. Arpanet e gli IMP. Gli IMP devono
Suggerisce di chiamare questi computer essere collegati ai computer
IMP (Interface Message Processors).
attraverso questa interfaccia che
Questa idea consente di evitare i
problemi hw/sw causati dalla diversità deve essere riscritta e costruita per
ed incompatibilità dei computer ogni singolo computer collegato
dell’epoca • 1969 (apr.): Steve Crocker scrive il
• 1967: Larry Roberts presenta il primo Request For Comment (RFC) #1
disegno di Arpanet e rilascia la Request che tratta l’host-to-host protocol
For Proposals“ (RFP) per la • 1969 (sett.): Installato il primo nodo
realizzazione degli IMP della rete
della rete Arpanet, presso UCLA: si
Arpanet che viene inviata a 140 società
collega ad un computer Sigma 7
• 1968: La società BBN vince la gara per
la realizzazione degli IMP (Honeywell
con 12 Kbyte di memoria)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.23
I primi nodi di Arpanet (1969)
• 1969 (ott.): Nasce il secondo nodo
della rete Arpanet presso lo
Stanford Research Institute (SRI)
di Doug Engelbart dove si riesce a
collegare il computer Sds 940
all’IMP. Il primo messaggio della
rete Arpanet passa questo giorno
• 1969 (nov.): Viene installato il
terzo nodo della rete Arpanet
presso l’Università di Santa
Barbara (UCSB). La rete assume
una “topologia ridondante”
• 1969 (dic.): Viene installato il
quarto nodo della rete Arpanet
presso l’Università dello Utah
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.24
12
13. Internet 1972-1980: la ricerca
• 1972:
– ARPAnet viene presentata pubblicamente
– NCP (Network Control Protocol): primo
protocollo host-to-host
– primo programma di posta elettronica
– ARPAnet ha 15 nodi (ovvero collega 15
host)
• 1973: Nella tesi di PhD, Metcalfe propone il
protocollo e architettura per reti locali Ethernet schema originale
• 1974: Cerf e Kahn definiscono i principî che
tuttora regolano l’architettura di Internet
(autonomia, minimalismo, best effort service
model, controllo distribuito, router senza stato)
• fine anni ’70: architetture di rete proprietarie:
DECnet (Digital), SNA (IBM), XNA
• 1979: ARPAnet collega 200 nodi
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.25
“Slogan” per il progetto ARPAnet
• “Perfection is achieved not when there is no longer
anything to add, but when there is no longer anything to
take away” [Antoine de Saint-Exupery]
• “The simplest explanation is the best” [Occam’s razor]
• “Be liberal in what you accept, and conservative in what
you send” [Jon Postel]
• “In allocating resources, strive to avoid a disaster rather
than to achieve an optimum” [Butler Lampson]
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.26
13
14. Alcuni “padri” di Internet
Bob Metcalfe
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.27
Internet 1980-1990: la maturità
• 1983: protocollo TCP/IP • 1989: nuove reti nazionali:
• 1982: protocollo SMTP per Csnet, BITnet, NSFnet,
e-mail Minitel
• 1983: sistema DNS • 1990: 100.000 nodi sono
distribuito per la traduzione connessi a reti
da hostname a indirizzo IP confederate
• 1985: protocollo FTP
• 1988: controllo di
congestione del TCP
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.28
14
15. Suite di protocolli Internet (TCP/IP)
• Applicativo: supporta le applicazioni
di rete: FTP, HTTP, SMTP, ... Internet OSI
• Trasporto: supporta i trasferimenti applicativo 7
da host a host: TCP, UDP
trasporto 4
• Rete: trasferisce i pacchetti dal
nodo mittente al destinatario: IP rete 3
• Link: effettua i trasferimenti dei dati
link 2
tra componenti della rete confinanti:
PPP, Ethernet, …
fisico 1
• Fisico: trasferisce bit “sul cavo”
Host-to-Network
(H2N)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.29
Internet 1990-2000: l’esplosione
• Inizi ’90: si dismette Inizi anni 2000:
ARPAnet • circa 100 milioni di host
• 1991: NSF rimuove le connessi ad Internet
restrizioni sull’uso • più di 300 milioni di utenti
commerciale di NSFnet • le dorsali di Internet
(dismessa poi nel 1995) (backbone) hanno capacità di
• Inizi ’90: nascita del WWW trasferimento di 1 Gbps
– Ipertesti [Bush 1945, Nelson
1960’s]
– HTML, http: Berners-Lee Oggi
– 1994: Mosaic, poi Netscape,
ed Explorer, poi Firefox • più di 500 milioni di host
– fine anni ’90: connessi ad Internet
commercializzazione del • host sempre più eterogenei
WWW • oltre 1 miliardo di utenti
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.30
15
16. Parte 2
Modulo 3:
Internet: principi di
funzionamento
Obiettivi progettuali di Internet
• Architettura
– Connettere diversi host e diverse reti
• Tecniche di trasmissione
– Store-and-forward
– Packet switching
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.32
16
17. Comunicazione in Internet [vista 1]
Logicamente comunicano i due host terminali
LAN
LAN
LAN
Rete WAN
Host A
(Network provider)
trasmissione
logica
LAN
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP Host B 2.33
Architettura Internet
In realtà, Internet consiste in milioni di host (computer, PDA,
TV,…), di dispositivi che instradano i messaggi (router) e di link
di comunicazione (cavi, fibra ottica, satellitari,…)
LAN
LAN LAN
Host A
Rete WAN
(Network provider)
Host B
LAN
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.34
17
18. Comunicazione in Internet [vista 2]
Quindi, in realtà il messaggio deve attraversare
vari nodi intermedi (router) con un meccanismo
di store and forward
LAN
LAN
LAN
Host A Rete WAN
Rete WAN
(Network provider)
(Network provider)
Rete WAN
(Network provider)
Host B
LAN
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.35
Comunicazioni in Internet [vista 3]
In ciascun nodo, l’informazione attraversa tutti
i livelli necessari (5 per host, 3 per router)
Host A Host B
Application Router Router Application
Transport Transport
IP IP
Network Host-to- Host-to- Network
network network
Host-to-net Host-to-net
rete 1 ... rete 3
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.36
18
19. Due modalità per trasferire dati
• Circuit switching
– Un circuito virtuale dedicato per ogni comunicazione
L’idea alla base del sistema telefonico
• Packet switching
– I dati sono suddivisi in “parti” ed inviati attraverso la rete
L’idea alla base di Internet
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.37
Circuit switching
• Necessità di riservare tutte le risorse
(link e switch) end-to-end prima di
trasmettere
• Avere risorse dedicate
– CONTRO
Non c’è possibilità di condividere le risorse assegnate
Necessaria una fase di setup per ogni chiamata
– PRO
Prestazioni garantite rispetto alla tipologia di risorse riservate
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.38
19
20. Packet switching
Ogni comunicazione è suddivisa in pacchetti
• I pacchetti condividono le risorse della rete
• Ogni pacchetto utilizza tutta la capacità trasmissiva di un link
• Le risorse sono utilizzate sulla base della necessità e
non della prenotazione
Prenotazione delle risorse
Assegnamento esclusivo
Divisione della banda in parti
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 4.39
Parte 2
Modulo 4:
Sintesi dello stack TCP/IP
20
21. Molti protocolli, ma non a tutti i livelli
RSVP=Resource Reservation P
MIME BGP = Border Gataway P
SNMP=Simple Net. Manag. P
BOOTP
SMTP=Simple Mail Tranfer P
BGP FTP HTTP SMTP Telnet SNMP DHCP ICMP=Int. Control Message P
IGMP=Int. Group Manag. P
OSPF=Open Shortest Path First
TCP UDP
ICMP IGMP OSPF RSVP
IP
Host-to-Network
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.41
Progetto Internet “a clessidra”
FTP HTTP IRC RTP
TCP UDP
IP
H2N H2N
… H2N
1 2 n
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.42
21
22. Livello 1-2 (host-to-network)
• I primi due livelli (fisico e data link) non sono
separati, nel senso che connessione fisica e
protocollo data link sono interdipendenti
• Pertanto, nel caso dello stack TCP/IP è più
corretto parlare di un livello host-to-network
(h2n) che comprende i primi due livelli
• Esempi di protocolli h2n:
– Protocollo per LAN: Ethernet, token-ring
– Protocollo per connessioni via modem: PPP
– Protocollo per connessioni LAN wireless: 802.11
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.43
Livello 3 (network): Protocollo IP
• Protocollo per la consegna dei pacchetti da un
host mittente ad un host destinatario
• Servizi aggiuntivi rispetto a h2n
– identificativo univoco di ciascun host (indirizzo IP)
– comunicazione logica tra host
• Ma
– privo di connessione: ogni pacchetto è trattato in modo
indipendente da tutti gli altri
– non affidabile: la consegna non è garantita (i pacchetti possono
essere persi, duplicati, ritardati, o consegnati senza l’ordine di
invio)
– consegna con impegno: tentativo di consegnare ogni pacchetto
(l’inaffidabilità deriva dalle possibili congestioni della rete o guasti
dei nodi/router)
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.44
22
23. Livello 4 (transport)
• Il livello transport estende il servizio di consegna
con impegno proprio del protocollo IP tra due
host terminali ad un servizio di consegna a due
processi applicativi in esecuzione sugli host
• Servizi aggiuntivi rispetto a IP
– multiplazione e demultiplazione messaggi tra processi
– rilevamento dell’errore (mediante checksum)
• Esempi di protocolli transport
– UDP (User Datagram Protocol)
– TCP (Transmission Control Protocol): offre servizi aggiuntivi
rispetto a UDP
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.45
Livello 4 (transport)
[ UDP ]
• Protocollo che fornisce un livello di trasporto
dell’informazione connectionless
• Specifica in [RFC 768]
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.46
23
24. Livello 4 (transport)
[ TCP ]
• Protocollo che fornisce un livello di trasporto
affidabile e orientato alla connessione
• Servizi aggiuntivi rispetto a UDP
– orientato alla connessione: comprende l’instaurazione, l’utilizzo e
la chiusura della connessione
– orientato al flusso di dati: considera il flusso di dati dall’host
mittente fino al destinatario ( considera sia rete sia host terminali)
– trasferimento con buffer: i dati sono memorizzati in un buffer e poi
inseriti in un pacchetto quando il buffer è pieno
– connessione full duplex (bi-direzionale): una volta instaurata una
connessione, è possibile il trasferimento contemporaneo in entrambe
le direzioni della connessione
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.47
Livello 5 (application)
• Il livello application utilizza il livello di trasporto
dell’informazione tra processi in esecuzione su
host terminali per realizzare applicazioni di rete
• Esempi protocolli applicativi
– ftp
– telnet
– http
– smtp
– irc
– …
NOTA: Applicazioni di reteprotocolli applicativi
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.48
24