1
PARTE 2
SUITE STANDARD
Modulo 1:Stack di protocolli standard
Parte 2
2
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.3
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.4
Due standard in concorrenza
ISO/OSI TCP/IP(de iure) (de facto)
3
Modulo 1a:Stack ISO/OSI
Parte 2
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.6
Il caso dello “standard de iure” ISO/OSI
• L’organizzazione ISO (International StandardOrganization) ha definito le specifiche di quelloche sarebbe dovuto diventare lo standard diprotocolli per l’interconnessione di nodieterogenei: OSI (Open System Interconnection)
4
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.7
Funzionalità del modello ISO/OSI1) Protocolli di comunicazione (network level): riguardano la
comunicazione di messaggi tra nodi della rete, in modo danascondere le caratteristiche dei mezzi fisici di trasmissione allefunzionalità di elaborazione
2) Protocolli di elaborazione (application level): insieme dimeccanismi per il controllo delle applicazioni
Funzioni di elaborazione
Protocolli di elaborazione
Funzioni di comunicazione
Protocolli di comunicazione
Funzioni di elaborazione
Funzioni di comunicazione
interfaccia interfaccia
Rete di comunicazione
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.8
I 7 livelli dello stack ISO/OSI
Session
Physical
Data link
Network
Transport
Application
Presentation
7 livelli
5
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.9
I 7 livelli del modello ISO/OSI
processo
strato di applicazione
strato di trasportostrato di retestrato di collegamento
strato di sessionestrato di presentazione
strato fisico
processo
strato di applicazione
strato di trasportostrato di retestrato di collegamento
strato di sessionestrato di presentazione
strato fisico
Host A Host B
Nodo all’internodella reteComunicazione logica
Comunicazione fisica
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.10
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 pacchettitrasformando la semplice trasmissione in una linea di comunicazionepriva 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 lacorrezione di errori che si sono verificati nello strato fisico, e la confermadell’avvenuta ricezione
• Livello di rete (3): Fornisce i collegamenti e l’instradamento deipacchetti nella rete, comprese la gestione dell’indirizzo dei pacchetti inuscita, la decodifica dell’indirizzo dei pacchetti in ingresso e lagestione delle informazioni di instradamento (ad es., router)
6
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.11
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 trasferimentodei messaggi tra i client) e garantisce l’affidabilità del trasporto
• Livello di sessione (5): Consente a utenti su macchine eterogenee distabilire sessioni, implementando funzioni di coordinamento,sincronizzazione e mantenimento dello stato (di sessione)
• Livello di presentazione (6): Risolve le differenze di formato chepossono presentarsi tra diversi nodi della rete (ad es., conversione tracaratteri ASCII, Unicode, EBCDC, conversione di codifica tra little- ebig-endian), ma gestisce anche la compressione dei dati, la sicurezzae l’autenticità dei messaggi attraverso tecniche di crittografia
• Livello di applicazione (7): Fornisce un’interfaccia standard per iprogrammi applicativi che utilizzano la rete, mascherando lepeculiarità e la complessità del sistema sottostante
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.12
Formato del messaggio inviato• Messaggio (PDU) composto da intestazione (header) e dati• Ogni livello aggiunge una propria intestazione
Dati
Intestazione del livello applicazioniIntestazione del livello presentazione
Intestazione del livello sessioneIntestazione del livello trasporto
Intestazione del livello rete
Intestazione del livello collegamento dati
Insieme di bit inviati sulla rete
7
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.13
Comunicazione nel Modello ISO/OSI
Application
Presentation
Session
Transport
Network
Data link
Physical
Messaggio inviato Messaggio ricevuto
Mittente Destinatario
Livelli
Rete di comunicazione
Ma l’ISO/OSI non è riuscito ad affermarsi perchénel frattempo stava esplodendo ………
Modulo 1b:Stack TCP/IP
(“Protocolli di Internet”)
Parte 2
8
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.15
I livelli dei due Protocol Stack
Session
Physical
Data link
Network
Transport
Application
Presentation
Host-to-network
Internet
Transport
ApplicationISO/OSI TCP/IP
75
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.16
CriticheAl modello ISO/OSI
• Cattiva tempistica
• Cattiva tecnologia– Influenzato dal modello IBM-SNA– Ridondanze
• Cattiva implementazione– Complessità– Eccessivi 7 livelli per la
tecnologia (reti-computer) del tempo
• Pessima politica– Modello imposto contro il libero
TCP/IP legato a Unix
Al modello TCP/IP
• Poco generale
• Meno concettuale e più orientato al funzionamento
• Livelli host-to-network confusi e interdipendenti
• Protocolli sviluppati ad hoc invece che protocolli generali
9
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 1.17
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.18
Due standard non più in concorrenza
ISO/OSI TCP/IP(de iure) (de facto)
10
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.19
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
Modulo 2:Un po’ di storia di Internet
Parte 2
11
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.21
Internet: storia e leggenda
• La leggendaUn 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
Anni ’60: la teoria e i primi esperimenti• 1961: Leonard Kleinrock del MIT
pubblica “Information flow in large communication nets” sulla teoria del packet switching
• 1962: J.C.R. Licklider e Wesley Clark del MIT pubblicano “On-line man computer communication” che rappresenta il primo articolo sul concetto di Internet
• 1962-1964: J.C.R. Licklider è il primo direttore dell’ufficio IPT dell’ Arpa e scrive diversi articoli sul concetto di “galactic network”
• 1964: Leonard Kleinrock descrive il funzionamento di una rete basata sul packet switching nel libro “Communication net”, ma non incontra il favore dei principali esperti dell’epoca, che considerano una tale rete irrealizzabile
• 1965: Larry Roberts e Thomas Marrill effettuano il primo collegamento dati fra Massachussets e Santa Monica in California:
– Prima volta che due computer si scambiano informazioni
– Primo utilizzo dei "packets“– Risultati sorprendenti: il collegamento
a commutazione di circuito era inaffidabile, mentre le teorie di Kleinrock sul “packet switching" funzionavano
• 1966: Roberts e Marrill pubblicano i risultati in “Toward a cooperative network of time-shared computers”, dove viene utilizzato per la prima volta il termine protocollo
• 1966: Robert Taylor diventa il terzo direttore dell'ufficio IPT dell’Arpa ed assume Larry Roberts per portare avanti il progetto Arpanet. Charlie Hertzfeld, direttore dell’agenzia Arpa, stanzia 1 milione di dollari per il progetto ARPAnet
4.22
12
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Internet 1967-1972: gli albori• 1967: Wesley Clark suggerisce di
utilizzare una sottorete di minicomputer, tutti uguali, dedicata esclusivamente alla ricezione e trasmissione dei dati. Suggerisce di chiamare questi computer IMP (Interface Message Processors). Questa idea consente di evitare i problemi hw/sw causati dalla diversità ed incompatibilità dei computer dell’epoca
• 1967: Larry Roberts presenta il primo disegno di Arpanet e rilascia la Request For Proposals“ (RFP) per la realizzazione degli IMP della rete Arpanet che viene inviata a 140 società
• 1968: La società BBN vince la gara per la realizzazione degli IMP (Honeywell con 12 Kbyte di memoria)
• 1969: Bob Kahn scrive “host to imp specification 1822” che descrivono le interfacce tra gli host della rete Arpanet e gli IMP. Gli IMP devono essere collegati ai computer attraverso questa interfaccia che deve essere riscritta e costruita per ogni singolo computer collegato
• 1969 (apr.): Steve Crocker scrive il Request For Comment (RFC) #1che tratta l’host-to-host protocol
• 1969 (sett.): Installato il primo nodo della rete Arpanet, presso UCLA: si collega ad un computer Sigma 7
4.23
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
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
4.24
13
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
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• 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
schema originale
4.25
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
“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]
4.26
14
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Alcuni “padri” di Internet
Bob Metcalfe
4.27
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Internet 1980-1990: la maturità
• 1983: protocollo TCP/IP
• 1982: protocollo SMTP per e-mail
• 1983: sistema DNS distribuito per la traduzione da hostname a indirizzo IP
• 1985: protocollo FTP
• 1988: controllo di congestione del TCP
• 1989: nuove reti nazionali: Csnet, BITnet, NSFnet, Minitel
• 1990: 100.000 nodi sono connessi a reti confederate
4.28
15
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Suite di protocolli Internet (TCP/IP)
• Applicativo: supporta le applicazionidi rete: FTP, HTTP, SMTP, ...
• Trasporto: supporta i trasferimentida host a host: TCP, UDP
• Rete: trasferisce i pacchetti dalnodo mittente al destinatario: IP
• Link: effettua i trasferimenti dei datitra componenti della rete confinanti:PPP, Ethernet, …
• Fisico: trasferisce bit “sul cavo”
OSI
7
4
3
2
1
applicativo
trasporto
rete
link
fisico
Internet
Host-to-Network(H2N)
4.29
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Internet 1990-2000: l’esplosione• Inizi ’90: si dismette
ARPAnet• 1991: NSF rimuove le
restrizioni sull’uso commerciale di NSFnet (dismessa poi nel 1995)
• Inizi ’90: nascita del WWW– Ipertesti [Bush 1945, Nelson
1960’s]– HTML, http: Berners-Lee– 1994: Mosaic, poi Netscape,
ed Explorer, poi Firefox– fine anni ’90:
commercializzazione delWWW
Inizi anni 2000:• circa 100 milioni di host
connessi ad Internet• più di 300 milioni di utenti• le dorsali di Internet
(backbone) hanno capacità di trasferimento di 1 Gbps
Oggi
• più di 500 milioni di host connessi ad Internet
• host sempre più eterogenei• oltre 1 miliardo di utenti
4.30
16
Modulo 3:Internet: principi di
funzionamento
Parte 2
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.32
Obiettivi progettuali di Internet
• Architettura– Connettere diversi host e diverse reti
• Tecniche di trasmissione– Store-and-forward– Packet switching
17
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.33
Comunicazione in Internet [vista 1]
Rete WAN(Network provider)
LAN
LAN
LAN
LAN
Host A
Host B
trasmissionelogica
Logicamente comunicano i due host terminali
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.34
Architettura Internet
Rete WAN(Network provider)
LANLAN
LAN
LAN
In realtà, Internet consiste in milioni di host (computer, PDA, TV,…), di dispositivi che instradano i messaggi (router) e di linkdi comunicazione (cavi, fibra ottica, satellitari,…)
Host A
Host B
18
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.35
Comunicazione in Internet [vista 2]
Rete WAN(Network provider)
Rete WAN(Network provider)
Rete WAN(Network provider)
LANLAN
LAN
LAN
Quindi, in realtà il messaggio deve attraversarevari nodi intermedi (router) con un meccanismodi store and forward
Host A
Host B
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.36
Application
Transport
Network
Host-to-net
Application
Transport
Network
Host-to-net
IP
Host-to-network
IP
Host-to-network
rete 1 rete 3. . .
Router
Host A Host B
Comunicazioni in Internet [vista 3]
Router
In ciascun nodo, l’informazione attraversa tuttii livelli necessari (5 per host, 3 per router)
19
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
Due modalità per trasferire dati
• Circuit switching– Un circuito virtuale dedicato per ogni comunicazione
• Packet switching– I dati sono suddivisi in “parti” ed inviati attraverso la rete
L’idea alla base di Internet
L’idea alla base del sistema telefonico
4.37
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
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
4.38
20
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP
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 risorseAssegnamento esclusivo
Divisione della banda in parti
4.39
Modulo 4:Sintesi dello stack TCP/IP
Parte 2
21
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.41
Molti protocolli, ma non a tutti i livelli
IP
ICMP IGMP OSPF RSVP
TCP UDP
BGP FTP HTTP SMTP Telnet SNMP
MIME RSVP=Resource Reservation PBGP = Border Gataway PSNMP=Simple Net. Manag. PSMTP=Simple Mail Tranfer PICMP=Int. Control Message PIGMP=Int. Group Manag. POSPF=Open Shortest Path First
BOOTPDHCP
Host-to-Network
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.42
Progetto Internet “a clessidra”
…
FTP HTTP IRC RTP
TCP UDP
IP
H2N 1 H2N 2 H2N n
22
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.43
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.44
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)
23
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.45
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.46
Livello 4 (transport)[ UDP ]
• Protocollo che fornisce un livello di trasporto dell’informazione connectionless
• Specifica in [RFC 768]
24
Protocolli e Architetture di Rete 2009/2010 – Protocolli TCP/IP 2.47
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.48
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