Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tutto
Tutto
Tutto
Giorgio Ventre
Laboratorio COMICS
Dipartimento di Informatica e Sistemistica
Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Roadmap
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
1
Orari e mezzi di comunicazione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
2
Il Materiale Didattico
z Libro di testo:
» James F. Kurose e Keith W. Ross, “Reti di
Calcolatori e Internet”,Terza edizione, Pearson
Education Italia – ISBN 88-719-22255
3a Edizione
J. Kurose - K. Ross
z Trasparenze dalle lezioni
z Ulteriori risorse didattiche messe a
disposizione dal docente all’interno del sito
del corso, raggiungibile a partire da:
» http://www.docenti.unina.it/giorgio.ventre
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
3
La filosofia di base del corso
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
z Giorgio Ventre
» giorgio.ventre@unina.it
z Alberto Dainotti
» alberto@unina.it
z Contributi/Seminari da
» Simon Pietro Romano
» Antonio Pescapè, Stefano Avallone
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
4
Qualche considerazione …
z Come sta andando il mercato ICT?
z Situazione ancora abbastanza ferma:
» Area IT: tiene, e ed è lentamente ripartendo
» Area TLC: ancora immobile, ma primi segni di ripresa
z Gli insegnamenti degli ultimi anni:
» Mai puntare su una eccessiva specializzazione
» La tesi rimane il miglior biglietto da visita: forti basi
teoriche o di innovazione ma su temi realistici
» Competenze multi-disciplinari sono fortemente gradite
dalle aziende
z Dove prendere informazioni sul Mercato ICT
» www.aitech-assinform.it per l’Italia
» I siti di aziende di consulenza “globale”: CDC, DeLoitte,
Forrester, McKinsey
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
5
Reti di Calcolatori
Bit, Reti, Protocolli
Giorgio Ventre
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Nota di Copyright
Quest’insieme di trasparenze è stato ideato e realizzato dai
ricercatori del Gruppo di Ricerca sull’Informatica Distribuita del
Dipartimento di Informatica e Sistemistica dell’Università di
Napoli e del Laboratorio Nazionale per la Informatica e la
Telematica Multimediali. Esse possono essere impiegate
liberamente per fini didattici esclusivamente senza fini di lucro,
a meno di un esplicito consenso scritto degli Autori. Nell’uso
dovrà essere esplicitamente riportata la fonte e gli Autori. Gli
Autori non sono responsabili per eventuali imprecisioni
contenute in tali trasparenze né per eventuali problemi, danni o
malfunzionamenti derivanti dal loro uso o applicazione.
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
1
Introduction
Today’s economy
» manufacturing, distributing, and retailing atoms
» but also
– publishing
– banking
– film making….
» main ‘product’ is creation and dissemination of
information
» part of the ‘information economy’
Future economy likely to be dominated by
information
» e.g. smart shoes and wireless tags on groceries
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Information
A representation of knowledge
» Knowledge of a song vs. representation
Can represent in two ways
» analog (atoms)
» digital (bits)
Digital is better
» computers manipulate digital information
» infinitely replicable
» networks can move bits efficiently
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
2
Information as atoms
Common
» books
» bills
» CDs
» …
We can do better if we represent information as
bits
The is the heart of the Digital Revolution
» convert information as atoms to information as bits
» use networks to move bits around instead of atoms
» let bits be bits!
(What industries are affected?)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
What do we need?
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
3
A rapidly changing scenario
CATV
(Wireline Broadcast)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Circuit Switching
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
4
Circuit Switching
Circuit switching
» Good for isochronous media (voice)
» Good for human interaction
» Originally, narrow band media
» Then, narrow band only at edge
» Today, ???
» Needs a connection establishment
» Few actions done in the network core (just switching +
OAM)
» Light-speed transmission
» Dumb&cheap peripherals (no messy sw!)
» Networks made for voice/telephony (Erlang formulas!!)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Circuit Switching
Simplest case: the network is a direct copper wire
Real case: the network is made of copper wires and switching boards
Node
Node Node
Node
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
5
Commutazione di circuito
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Commutazione di circuito
Nella telefonia
tradizionale, due coppie
di conduttori venivano
impegnate per ciascuna
conversazione
Successivamente, le
coppie “fisiche” sono
state sostituite da:
» “porzioni di banda”
(multiplazione a divisione
di frequenza, FDM)
» “porzioni di tempo”
(multiplazione a divisione
di tempo, TDM)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
6
Wireline broadcast
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Packet Switching
7
Computer Communication
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
8
Why such attention to regulatory issues ?
From the very beginning telecommunications have
attracted the attention of Governements
1878, Bell vs Western Union. First separation of
technologies & markets (telegraph&telephone)
1890, Sherman Antitrust Act: even Standard Oil
had to dissolve. But AT&T was allowed to have a
monopoly until 1984
1910, Universal Service & the Interconnection of
competitors
1977, MCI vs FCC. First blow to AT&T Monopoly
1996, U.S. Telecommunications Act: dramatic
change in TLC market regulation
1997, WTO Agreement: global opening of TLC
markets
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
9
New technologies for a global infrastructure
Why Internet?
Several possible candidates
B-ISDN & ATM
Teorically perfect
In practice, too complex INTERNET
as a
& expensive Global Network
Internet
Teorically imperfect
In practice, lean & mean
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
L’evoluzione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
10
L’evoluzione: dal “computing centralizzato”…
•• Sistemi
Sistemifortemente
fortementecentralizzati
centralizzati
•• Grandi
Grandicapacità
capacitàdidicalcolo
calcolo
•• Rete
Retecomplessa
complessama...
ma...omogenea
omogenea
•• Ambiente
Ambienteperiferico:
periferico:
terminali
terminalieestampanti
stampanti
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
•• Avvento
Avventodel delPC
PC
•• Nascita
Nascita e boomdelle
e boom dellereti
retilocali
locali
•• Evoluzione
Evoluzione verso sistemiaperti
verso sistemi aperti
•• Periferia eterogenea ed intelligente
Periferia eterogenea ed intelligente WAN
•• Nascita
Nascitadegli
deglistandard
standardper:per: LAN
–– Cablaggi strutturati
Cablaggi strutturati MAN
LAN
–– Protocolli
ProtocollididiComunicazione
Comunicazione MAN
LAN
LAN LAN
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
11
Le reti di calcolatori: scopi
Condivisione dell’informazione
Condivisione delle risorse
Accesso a risorse remote
Convenienza economica
Crescita graduale
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
12
Inter-Process Communication
Client - Server
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Inter-Process Communication
Multipeer/Group
Communication
Loose coupling
of processes
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
13
IPC Abstractions
Request/Reply Stream-Based
» distributed file » video: sequence of
systems frames
» digital libraries (web) – 1/4 NTSC = 352x240 pixels
– (352 x 240 x 24)/8=247.5KB
– 30 fps = 7500KBps =
60Mbps
» video applications
– on-demand video
– video conferencing
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
14
Struttura delle reti di calcolatori (1)
• Reti di backbone
• Costituiscono la dorsale della rete vera e propria
• Sono strutturate in sottoreti tra loro interconnesse
• Si collegano alle reti di accesso
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Reti di Backbone
accesso
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
15
Commutazione di Pacchetto
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Header Payload
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
16
Commutazione di Pacchetto (3)
A Multiplexing statistico C
B
Coda di pacchetti
in attesa di
essere trasmessi
D E
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
17
Ritardo nelle reti a commutazione di pacchetto
B
nodal
processing queueing
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
18
Packet switching: reti a circuiti virtuali
application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
19
Le reti di calcolatori
LAN
Numero di host connessi
LAN
Dimensione della rete
à di Banda
MAN
MAN
Capacità
Capacit
WAN
WAN
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Caratteristiche LAN
Velocità trasmissiva “V” molto elevata (V >
100Mb/s)
In teoria distanze D ridotte (D < qualche
chilometro) ma oggi anche molto di più (vedi MAN)
Non attraversano suolo pubblico
Conformità:
» conformi a standard emessi da ISO/IEEE/ANSI
» conformi a standard di cablaggio ed a normativa di
sicurezza
» non conformi agli standard CCITT
Scopo: rendere “virtualmente” locali le risorse
distribuite in rete
Tecnologie eterogenee (rame, fibra, etere) ma
semplici
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
20
Caratteristiche WAN
Velocità trasmissiva “V”
» 9.6 kb/s < V < 2Mb/s (una volta)
» Oggi praticamente uguale a LAN
Installazioni in ambito interurbano
Affidabilità, “vendibilità”, capillarità
Conformità:
» conformi standard CCITT
» conformi ad agreement di servizio (concessioni)
» conformi ad agreement di interconnessione
» Sottoposti ad azioni di auditing (agenzie & authorities)
Mezzi trasmissivi:
» Una volta gli stessi usati per la telefonia convenzionale
» Oggi reti integrate e complesse (problema del
management)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Caratteristiche MAN
Velocità trasmissiva “V” elevata
» 2 Mb/s < V < 140 Mb/s e molto oltre
Installazioni in ambito urbano
“Vendibilità”, capillarità
Conformità:
» conformi sia standard CCITT sia ISO/IEEE sia anche
mondo LAN
» Problematiche analoghe a WAN
» Sviluppate spesso con accordi con enti locali
(Metroweb/Fastweb, ACEA, az. Municipalizzate)
Mezzo trasmissivo tipico: fibra ottica sul
Backbone, rame sull’accesso
Oggi molto diffuso ETTH: Ethernet to the Home
Anche forte eterogeneità: WLL, Coax, IR, Laser
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
21
Reti eterogenee
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
22
I livelli: un esempio
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
23
Modelli a strati: interfacce
Strato n+1
Strato n
interfaccia
Strato n-1
Strato n-2
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Dispositivo A Dispositivo B
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
24
Protocolli di comunicazione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Protocolli: un esempio
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
25
“Imbustamento” dei messaggi
mittente destinatario
M applicazione applicazione M messaggio
Ht M trasporto trasporto Ht M segmento
Hr Ht M rete rete Hr Ht M datagram
Hl Hr Ht M data-link data-link Hl Hr Ht M frame
fisico fisico
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
SDU e SAP
SAP
del livello n
Strato n+1
Strato n
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
26
PDU
Strato n+1
Strato n
Strato n-1
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
27
Il modello OSI (2)
7 Applicazione
Applicazione
6 Presentazione
Presentazione
5 Sessione
Sessione
4 Trasporto
Trasporto
3 Rete
Rete
2 Data
DataLink
Link
1 Fisico
Fisico
28
Livello 1: Fisico
1 0 1
1 0 0 1
0 1 0 0
1 0
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
000081 576989
MFG. Device
# #
(3 Bytes) (3 Bytes)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
29
Livello 3: Rete
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Livello 4: Trasporto
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
30
Livello 5: Sessione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Livello 6: Presentazione
Testo
6 01011010
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
31
Livello 7: Applicazione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
32
Internet: Origini ed Evoluzione
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
33
Internet: architettura della rete
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
34
Internet: architettura della rete
router
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Struttura di Internet
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
35
Accesso ad Internet residenziale
Personal Computer +
Modem
Internet
ISP
Rete
Telefonica
• Modem analogico
• fino a 56Kbps
• ISDN (Integrated Services Digital Network)
• fino a 128Kbps
• ADSL (Asymmetric Digital Subscriber Line)
• fino ad 1 Mbps upstream e fino ad 8 Mbps downstream
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Collegamento mediante:
» Modem analogico, ISDN, ADSL Internet
– Per reti aziendali di piccole
dimensioni
» Linea dedicata con collegamento
permanente con l’ISP ISP
– Per reti aziendali di medie/grandi
dimensioni
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
36
Internet in Italia
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
La rete GARR-B
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
37
Una vista parziale su Internet negli USA
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
38
Lo stack TCP/IP
Applicazione
Applicazione
Trasporto
Trasporto
Rete
Rete
Data
DataLink
Link
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
39
Corso di Laurea in
Ingegneria delle Telecomunicazioni
Il livello Trasporto:
L’interfaccia Socket
Giorgio Ventre
Università di Napoli Federico II
Caso d’
d’uso: comunicazione locale
Host
•Due applicazioni, localizzate
Applicazione
socket
Applicazione
socket
sulla stessa macchina,
scambiano dati tra di loro
utilizzando l’interfaccia delle
socket.
Sistema •Le socket utilizzate a questo
Operativo
scopo vengono comunemente
definite Unix-domain socket.
Host1 Host2
Network
Network
Il concetto di indirizzo
Il paradigma“Connection-Oriented”
11
Connection-Oriented vs Datagram
• Connection oriented.
• Principali vantaggi:
• Affidabilità
• Controllo di flusso
• Principali svantaggi:
• Overhead per instaurare la connessione
• Datagram.
• Principali Vantaggi
• Basso overhead
• Principali svantaggi
• Nessun controllo sulla consegna
12
Server
socket()
bind()
listen() Client
socket()
accept()
ent connect()
Wait for connection establishm
Connection
Process request
Comunicazione Datagram
Server
socket()
bind()
Client
socket()
recvfrom()
bind()
Blocks waiting for data
Data (request) sendto()
Process request
Data (reply)
write() recvfrom()
14
<sys/socket.h>
struct sockaddr {
u_short sa_family; /* address family: AF_xxx value */
char sa_data[14]; /* up to 14 bytes of protocol-specific address */
};
<netinet/in.h>
struct in_addr {
u_long s_addr; /* 32-bit netid/hostid network byte ordered */
};
struct sockaddr_in {
short sin_family; /* AF_INET */
u_short sin_port; /* 16-bit port number network byte ordered */
struct in_addr sin_addr;
char sin_zero[8]; /* unused */
};
<sys/un.h>
struct sockaddr_un {
short sun_family; /* AF_UNIX */
char sun_path[108]; /* pathname */
};
15
(unused)
16
#include <sys/types.h>
#include <sys/socket.h>
17
#include <sys/types.h>
#include <sys/socket.h>
18
19
#include <sys/types.h>
#include <sys/socket.h>
20
21
La system-call listen()
#include <sys/types.h>
#include <sys/socket.h>
22
#include <sys/types.h>
#include <sys/socket.h>
23
24
close(newsockfd); /* parent */
}
25
for ( ; ; ) {
newsockfd = accept(sockfd, … ); /* blocks */
if (newsockfd < 0) {
err_sys(“accept errror”);
26
27
Le system-
system-call send()
send() e sendto()
sendto()
28
29
La system-
system-call close()
close()
30
31
#include <sys/types.h>
#include <netinet/in.h>
• E’ implicito in queste funzioni che uno short occupi 16 bit e un long ne occupi
32.
32
33
• bcopy() copia nbytes bytes dalla locazione src alla locazione dest.
• bzero() imposta a zero nbytes a partire dalla locazione dest.
• bcmp() confronta nbytes bytes a partire dalle locazioni ptr1 e ptr2,
restituendo 0 se essi sono identici, altrimenti un valore diverso da 0.
34
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
35
Esercizio
• Scrivere un programma server ed un programma
client che funzionino nel seguente modo:
• il client chiede sullo standard input una stringa di caratteri e
la invia al server;
• il server riceve la stringa, la visualizza e la invia nuovamente
al client;
• anche il client visualizza la stringa appena ricevuta.
• Questo è un esempio di programma echo.
36
Il livello Rete:
IP – Indirizzamento – Subnetting
Giorgio Ventre
Università di Napoli Federico II
Il livello rete
• Stack OSI
Applicazione
Presentazione
Sessione
Trasporto
Rete
Data Link
Fisico
application
transport
network
data link network
physical data link
network network
data link physical data link
• Trasportare i pacchetti dall’host physical physical
network
mittente a quello ricevente data link
physical network
data link
physical
network
• Implementare protocolli di livello network data link
data link physical
rete in tutti i router e in tutti gli host physical
network
data link application
physical transport
network
data link
physical
application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical
application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical
IP (Internet Protocol)
• IP è un protocollo di livello rete usato per lo scambio di
dati tra reti di calcolatori
• I dati sono trasportati con la tecnica dei datagrammi
• Offre un servizio di comunicazione connection-less
• Gestisce indirizzamento, frammentazione,
riassemblaggio e multiplexing dei protocolli
• Costituisce la base sulla quale poggiano tutti gli altri
protocolli, collettivamente noti come TCP/IP suite
• TCP, UDP, ICMP, ARP
• È responsabile dell’instradamento dei pacchetti
L’header IP
• L’header contiene tutte le informazioni necessarie per
la consegna del datagramma alla destinazione
• Indirizzo destinazione
• Indirizzo sorgente
• Identificativo
• Ed altro ancora…
• I router esaminano l’header di ogni datagramma e
inoltrano il pacchetto lungo il percorso verso la
destinazione
• Usano tabelle di routing per calcolare il next hop
• Aggiornano tali tabelle usando protocolli di routing dinamici
10
11
12
13
14
15
Opzioni
• È il modo per estendere IP con un numero variabile di
opzioni
• Security
• Source routing
• Route recording
• Stream identification
• Timestamping
• Siccome è opzionale, l’header può essere di
lunghezza variabile
• Questo è il motivo della presenza del campo IHL
• Se l’opzione non occupa 4 byte (o un suo multiplo), vengono
inseriti dei bit di riempimento (tutti zero)
16
17
18
19
20
i=1
Esempio
Vogliamo convertire 25 in binario:
25 mod 2 = 1 ⇒ S=1
S[i]=x mod B 25 div 2 = 12
12 mod 2 = 0 ⇒ S=01
12 div 2 = 6
SI 6 mod 2 = 0 ⇒ S=001
x div B=0 END 6 div 2 = 3
3 mod 2 = 1 ⇒ S=1001
NO 3 div 2 = 1
1 mod 2 = 1 ⇒ S=11001
i=i+1
1 div 2 = 0
x=x div B
END
(25)10 = (11001)2
i: contatore
S: stringa risultato
x: numero da convertire
B: base
21
22
23
• ICANN:
• Internet Corporation for Assigned Names and Numbers
• Assegna gli indirizzi
• Gestisce il DNS
• Assegna i nomi dei domini
• Risolve eventuali dispute (conflitti di nomi e/o
indirizzi)
24
25
26
Domanda:
Quante sono
le reti?
27
Soluzione…
223.1.1.2
Come trovare le reti? 223.1.1.1 223.1.1.4
223.1.2.6 223.1.3.27
Nell’esempio:
sistema
223.1.2.1 223.1.2.2 223.1.3.1
interconnesso 223.1.3.2
costituito da sei
reti
28
29
Classi di indirizzi
30
• Campo rete
• 7 bit
• Massimo 128 reti
• Il primo byte è compreso tra 0 e 127
• Campo host
• 24 bit
• Massimo 224 ≈ 16M host
31
Indirizzi di classe B
• Campo rete
• 14 bit
• Massimo 16k reti
• Il primo byte è compreso tra 128 e 191
• Campo host
• 16 bit
• Massimo 216 ≈ 64k host
32
0 24 31
1 10 Network Host
• Campo rete
• 21 bit
• Massimo 2M reti
• Il primo byte è compreso tra 192 e 223
• Campo host
• 8 bit
• Massimo 256 host
33
Indirizzi di classe D e E
34
35
Indirizzi IP “speciali”
• This computer address
• L’intero indirizzo è costituito da tutti ‘0’
• Per ottenere un indirizzo automaticamente all’avvio, si
potrebbe usare IP per comunicare…
• …ma non abbiamo ancora un indirizzo:
• vedremo che per l’assegnazione di tale indirizzo si utilizzano
protocolli quali DHCP (Dynamic Host Configuration Protocol) e
BOOTP (Boot Protocol)
• Loopback address
• Ogni indirizzo che comincia con 127 indica il computer
locale
• 127.0.0.1 è il più comune, ma va bene anche 127.0.44.53
• Usato per test, nessun pacchetto esce sulla rete
• Utile quando il computer non ha schede di rete
36
37
Indirizzi IP privati
• L’RFC 1597 riserva i seguenti blocchi di indirizzi per
uso privato:
• 10.0.0.0 - 10.255.255.255 Classe A
• 172.16.0.0 - 172.31.255.255 Classe B
• 192.168.0.0 - 192.168.255.255 Classe C
• I router di Internet non inoltrano pacchetti aventi
indirizzo sorgente o destinazione compreso in uno di
questi blocchi
• Vedremo dopo il modo per tradurre tali indirizzi in
indirizzi Internet (NAT)
38
39
Sottoreti
40
41
Sottoreti
• Suddividere una rete in sottoreti ci consente di
allocare in maniera efficiente gli indirizzi, migliorando
al tempo stesso le prestazioni (il traffico relativo ad
una sottorete non viene introdotto nelle altre)
• Come viene utilizzata una subnet mask?
• Da un host che deve trasmettere un pacchetto:
• Confronta la destinazione con la propria subnet mask
• Se la dest è sulla stessa sottorete, broadcast sulla LAN
• Altrimenti, invia al gateway o al router
• Da un router all’interno della rete suddivisa in sottorete
• Utilizza la subnet mask con l’indirizzo di rete delle reti collegate per
determinare la giusta destinazione
42
Bridge
11.1.0.0
11.1.0.1 11.1.0.2
43
Netmask
44
45
46
47
Gerarchia
Subnet 1
190.3.1.1 H4 R4
R1
190.3.1.4 190.3.1.5
190.3.7.1 190.3.9.2
Subnet
Subnet 9
7 Net: 190.3 190.3.9.3
190.3.7.2 Mask: 255.255.255.0
R3 H2
R2
190.3.6.8 190.3.6.7
190.3.3.2
190.3.6.3 190.3.6.2
H1 FDDI
R5 H3
190.3.3.3 190.3.3.1
Subnet 3 Subnet 6
48
Default Route
50
51
Il livello Rete:
Routing - Fondamenti
Giorgio Ventre
Università di Napoli Federico II
Il processo di routing
W
2
X Network A
1 3
Network C Network B
6. Ricevi dati
application 5. Invia flusso dati application
transport 4. Connessione 3. Accetta call transport
network 1. Inizia call 2. Ricevi call network
data link data link
physical physical
10
application
transport 1. invia dati 2. ricevi dati application
network transport
data link network
physical data link
physical
11
Tipologie di routing
• La scelta del percorso di instradamento può essere
realizzata mediante due approcci:
• centralizzato
• più semplice, ma non scalabile
• distribuito
• più complesso, ma scalabile e robusto
• Lo scopo ultimo di un protocollo di routing consiste nel
creare una tabella di instradamento in ciascun nodo
della rete:
• ciascun nodo deve prendere una decisione locale sulla base
della conoscenza dello stato dell’intera rete
• Questa è, probabilmente, la difficoltà principale del routing
12
13
Routing distribuito
• Broadcast periodico
• i router possono trasmettere agli altri router informazioni
circa la raggiungibilità delle reti (destinazioni) di propria
competenza ad intervalli regolari di tempo
• questa tecnica risulta inefficiente, in quanto si spediscono
informazioni anche quando non è cambiato nulla rispetto
all’update precedente
• Event-driven
• in questo caso gli update sono inviati solo quando è
cambiato qualcosa nella topologia oppure nello stato della
rete
• questa tecnica garantisce un uso più efficiente della banda
disponibile
16
17
18
19
20
• Vantaggi:
• facile da implementare
• Svantaggi
• ogni messaggio contiene un’intera tabella di routing
• lenta propagazione delle informazioni sui cammini:
• se lo stato della rete cambia velocemente, le rotte
possono risultare inconsistenti
21
Link State
• Utilizza l’algoritmo Shortest Path First (SPF):
• non basato sullo scambio delle tabelle
• tutti i router devono conoscere l’intera topologia della rete
• Ogni router esegue due azioni:
• controlla lo stato di tutti i router vicini
• periodicamente invia, in broadcast, un messaggio
contenente lo stato dei link a cui è collegato
• I router utilizzano i messaggi ricevuti per aggiornare la
loro mappa della rete:
• se la mappa cambia, il router ricalcola i percorsi di
instradamento applicando l’algoritmo di Dijkstra
22
23
Ricapitolando…
+ + +
Layer
Layer33
protocols Types
Types
protocols
Link -state Distance -vector
+
Routed
(IP, IPX,
NetBEUI)
Updates
Updates
Routing
+ Routing
Routing
(RIP, OSPF) Eachrouter
Ogni router trasmette routingEach Ogni
routerrouter trasmette
transmits
update routing
agli altri router solo periodically sends ai suoi
routing update
information
quando ci sono tostati dei information to
vicini periodicamente
all other routers
cambiamenti nella topologia each (RIP).
of its neighbors
only when there
(OSPF). (RIP).
Distance
Distance are changes Problemi:
metrics
metrics (OSPF/BGP/EGP)
Problemi: Problems:
- Spreco di Banda
- Flooding Iniziale • Bandwidth
- Gli update viaggiano
- Problems:
Capacità eleborative e di • Step -by-step
step by step updates
• Initial flooding
memoria maggiori
Hop count + Delay • Processing/memory
Load
Tick + Bandwidth + Event driven vs. broadcast
Cost
+
Reliability + Statici vs. dinamici
24
Il livello Rete:
Routing Intradomain
Giorgio Ventre
Università di Napoli Federico II
• Algoritmo di Bellman-Ford
• Ogni nodo:
• Invia ai nodi adiacenti un distance vector, costituito
da:
• insieme di coppie (indirizzo,distanza), dove la distanza è
espressa tramite metriche classiche, quali numero di hop
e costo
• Memorizza per ogni linea l’ultimo distance vector
ricevuto.
• Calcola le proprie tabelle di instradamento.
• Se le tabelle risultano diverse da quelle precedenti:
• invia ai nodi adiacenti un nuovo distance vector
2
destinazione
E 5
D
D (C,D) = c(E,D) + minw {D (C,w)}
= 2+2 = 4 C 6 9 4
E D
D (A,D) = c(E,D) + minw {D (A,w)}
= 2+3 = 5 loop!
D 4 11 2
E B
D (A,B) = c(E,B) + minw{D (A,w)}
= 8+6 = 14
loop!
5
A 1 14 5 A A 1
B 7 8 5
destinazione
B D 5
destinazione
C 6 9 4 C D 4
D 4 11 2 D D 2
Ad ogni nodo, x:
1 Inizializzazione:
2 per tutti i nodi adiacenti v:
3 DX(*,v) = infinito {il simbolo * significa “per ogni riga” }
4 DX(v,v) = c(x,v)
5 per tutte le destinazioni, y
6 manda minWD(y,w) a ogni vicino
8 loop
9 aspetta (fino a quando vedo una modifica nel costo di un
10 collegamento oppure ricevo un messaggio da un vicino v)
11
12 if (c(x,v) cambia di d)
13 { cambia il costo a tutte le dest. via vicino v di d }
14 { nota: d puo’ essere positivo o negativo }
15 per tutte le destinazioni y: DX(y,v) = DX(y,v) + d
16
17 else if (ricevo mess. aggiornamento da v verso destinazione y)
18 { cammino minimo da v a y e’ cambiato }
19 { V ha mandato un nuovo valore per il suo minW DV(y,w) }
20 { chiama questo valore "newval" }
21 per la singola destinazione y: DX(y,v) = c(x,v) + newval
22
23 if hai un nuovo minW DX(y,w) per una qualunque destinazione y
24 manda il nuovo valore di minWDX(y,w) a tutti i vicini
25
26 forever
Y
2 1
X Z
7
10
Y
2 1
X Z X Z
7 D (Y,Z) = c(X,Z) + minw{D (Y,w)}
= 7+1 = 8
X Y
D (Z,Y) = c(X,Y) + minw {D (Z,w)}
= 2+1 = 3
11
12
algoritmo
continua!
13
algoritmo
termina
14
1 1
15
Link State
• Ogni router:
• impara il suo ambito locale (linee e nodi adiacenti)
• trasmette queste informazioni a tutti gli altri router della rete
tramite un Link State Packet (LSP)
• memorizza gli LSP trasmessi dagli altri router e costruisce
una mappa della rete
• Calcola, in maniera indipendente, le sue tabelle di
instradamento applicando alla mappa della rete l'algoritmo di
Dijkstra, noto come Shortest Path First (SPF)
• Tale approccio è utilizzato nello standard ISO 10589 (protocollo
IS-IS) e nel protocollo OSPF (adottato in reti TCP/IP)
16
17
LSP flooding
18
19
20
DESTINAZIONE
22
23
24
25
26
27
1 Inizializzazione:
2 N = {A}
3 per tutti i nodi v
4 if (v e’ adiacente a A)
5 then D(v) = c(A,v)
6 else D(v) = infty
7
8 Loop
9 sia w non in N tale che D(w) è minimo
10 aggiungi w a N
11 aggiorna D(v) per ogni v adiacente a w e non in N:
12 D(v) = min( D(v), D(w) + c(w,v) )
13 {il nuovo costo fino a v è o il vecchio costo, oppure il costo del
cammino piu breve fino a w più il costo da w a v }
15 fino a quando tutti i nodi sono in N
29
B 3 C
2 5
A 2 1 F
3
1 2
D 1
E
30
31
1 A A A A
1+e 2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0 1 1+e 0 e
1
C C C C
1
e
… ricalcola … ricalcola … ricalcola
inizio
routing
32
Il livello Rete:
Routing Interdomain
Giorgio Ventre
Università di Napoli Federico II
Routing Gerarchico
Org1 Org2
Org 3
Org2
AT&T (AS-7018)
Level3 (AS-3356)
10
11
Tipi di AS
• Un solo border router:
• stub o single-homed:
• (piccole corporate)
• Più border router:
• multi-homed:
• transit (provider)
– accetta di essere
attraversato da traffico
diretto ad altri AS
• non-transit (grandi
corporate)
– non accetta di essere
attraversato da traffico
diretto ad altri AS
12
13
14
C.b Gateway:
B.a
• eseguono inter-
A.a AS routing fra loro
b A.c c
a C a • eseguono intra-
b AS routing con altri
a B
router nel loro AS
d c
A b
network layer
inter-AS, intra-AS link layer
routing nel
gateway A.c physical layer
15
16
Ma…
area 1
17
18
19
BGP: analisi
• BGP utilizza i
messaggi scambiati
tra i border router per
costruire un grafo di
AS
• In genere si
costruisce un albero:
• AS path tree
20
21
22
23
BGP: funzionamento
• Due peer periodicamente si scambiano informazioni di
raggiungibilità:
• nuove rotte
• vecchie rotte non più valide
• Le informazioni di raggiungibilità vengono trasmesse
tramite il messaggio UPDATE
• Tipi di UPDATE:
• WITHDRAWN
• percorsi non più disponibili
• PATH
• nuovi percorsi:
– lista delle reti raggiungibili, con relativi attributi
24
25
26
27
• Dimensioni:
• si realizza un routing gerarchico
• si diminuisce il traffico per aggiornare le tabelle di routing
• Prestazioni:
• Intra-AS
• si concentra sull’ottimizzazione delle prestazioni
• Inter-AS
• gli aspetti politico-amministrativi sono prevalenti
28
Il livello Data-Link:
Introduzione e concetti generali
Giorgio Ventre
Università di Napoli Federico II
M application
Ht M transport
Hn Ht M network data link network
protocol
Hl Hn Ht M link link Hl Hn Ht M
physical physical frame
phys. link
adapter card
3
Interfacce di rete
• Un adattatore è un circuito (es: scheda PCMCIA) che
si occupa di:
• Ricevere datagram dallo strato di rete
• Incapsulare i datagram ricevuti all’interno di frame
• Trasmettere le frame all’interno del link di comunicazione
• In ricezione, effettuare le operazioni inverse…
Metodi di checksum
10
11
12
13
14
15
16
17
18
19
21
22
Slotted Aloha
• Il tempo è diviso in slot di uguale durata
• Se un nodo ha dati disponibili per la trasmissione:
• Trasmette all’inizio del primo slot disponibile
• In caso di collisione:
• Ritrasmette il pacchetto negli slot successivi con probabilità
p, finché la trasmissione non va a buon fine
24
25
26
27
0.4
0.3
(success rate)
Slotted Aloha
0.2
il protocollo limita il
0.1 throughput effettivo del
Pure Aloha
canale di trasmissione!
0.5 1.0 1.5 2.0
G = offered load = Np
28
29
CSMA: collisioni
• Col CSMA si possono avere
collisioni:
• Il ritardo di propagazione fa sì
che due nodi possano non
ascoltare le reciproche
trasmissioni
• In caso di collisione:
• Il tempo di trasmissione della
frame risulta completamente
sprecato
• La distanza ed il ritardo di
propagazione concorrono a
determinare la probabilità di
collisione
30
CSMA/CD:
• “Ascolta mentre parli” (listen while talking):
• Analogo al CSMA, ma in più:
• Rileva le collisioni durante la trasmissione
• Le trasmissioni che collidono vengono terminate,
riducendo lo spreco di risorse del canale trasmissivo
• Ritrasmissioni persistenti o non persistenti
• Collision Detection:
• Si misura la potenza del segnale ricevuto e la si
compara con quella del segnale trasmesso
31
CSMA/CD: funzionamento
32
33
34
Il livello Data-Link:
Ethernet – Hub – Bridge – Switch
Giorgio Ventre
Università di Napoli Federico II
Indirizzi IP a 32-bit:
• Indirizzi di livello rete
• Usati per permettere la corretta consegna del
pacchetto ad un destinatario collegato alla rete
Indirizzi LAN (o MAC o fisici):
• usati per permettere la trasmissione di una frame da
una scheda di rete ad un’altra scheda con cui sussiste
un collegamento diretto (stessa rete fisica)
• indirizzi MAC di 48 bit (per la maggior parte delle LAN)
cablati nelle ROM delle schede di rete
Indirizzi LAN
Ethernet
Tecnologia “dominante” per le LAN:
• Economica: 20€ per 100Mbs!
• La prima tecnologia LAN ampiamente diffusa
• Più semplice ed economica rispetto alle LAN “a token” e ad
ATM
• Aggiornata nel corso degli anni: 10, 100, 1000 Mbps
Preambolo:
• 7 byte con una sequenza 10101010 seguiti da
un byte con la sequenza 10101011
• utilizzato per sincronizzare i clock del mittente
e del destinatario
CSMA/CD
11
12
13
Gbit Ethernet
• Usa il formato delle frame di Ethernet standard
• Funziona in modalità collegamento point-to-point ed a
canale broadcast condiviso
• In modalità condivisa, è utilizzato il protocollo
CSMA/CD
• le distanze tra i nodi sono ridotte al minimo per aumentare
l’efficienza
• Usa gli hub, che in questa tecnologia prendono il
nome di “Buffered Distributors”
• Full-Duplex a 1 Gbps nel caso di collegamento di tipo
point-to-point
14
• 4 Mbps
• max token holding time: 10 ms (limita la
massima lunghezza del frame)
16
Hub
18
19
20
Bridges (2/2)
22
• Forwarding:
• Come fare a sapere su quale segmento una frame
deve essere inoltrata?
• Analogia con i problemi di routing (anche se su
scala meno ampia!)
• I bridge filtrano i pacchetti
• Stesso segmento di LAN:
• le frame non sono inoltrate su altri segmenti di LAN
23
Backbone Bridge
24
25
Bridge Filtering
26
• filtering procedure:
if destination is on LAN on which frame was received
then drop the frame
else { lookup filtering table
if entry found for destination
then forward the frame on interface indicated;
else flood; /* forward on all but the interface on
which the frame arrived*/
}
27
30
31
Router vs Bridge
Bridge: pro (+) e contro (-)
+ Le operazioni nei bridge sono più semplici
+ I bridge processano meno richieste
- Le topologie sono limitate: è necessario uno spanning
tree per prevenire i cicli
- I bridge non offrono alcuna protezione contro le
tempeste broadcast (il broadcast ininterrotto generato
da un host è normalmente inoltrato da un bridge)
32
Switch Ethernet1/3
• Effettuano l’inoltro di frame a
livello 2
• filtraggio mediante l’uso di
indirizzi LAN
• Switching: da A a B e da A’ a
B’ simultaneamente:
• non ci sono collisioni
• Alto numero di interfacce
• spesso: host singoli,
topologia a stella con
collegamento ad uno switch:
• È ethernet, ma senza
collisioni!
34
35
Dedicated
Shared
36
Il livello Data-Link:
ICMP – ARP – RARP – DHCP – NAT
Giorgio Ventre
Università di Napoli Federico II
ICMP
• Applicazioni:
• Ping
• Utilizzato per verificare la connettività a livello rete tra due host, A e B
– l’host A invia un pacchetto “echo request”
– alla ricezione di tale messaggio, l’host B risponde con un pacchetto
“echo reply”
• Traceroute
• Utilizzato per scoprire il percorso seguito per raggiungere una certa
destinazione
• Viene inviata una serie di pacchetti con TTL via via crescente, a
partire da 1:
– il router che, decrementando il TTL, lo azzera invierà indietro un
messaggio “time exceeded”
» in questo modo si riesce a determinare il percorso fino alla destinazione
10
11
12
13
14
15
16
Target IP Address
17
18
19
20
21
Default router
A B R1 IP: 192.168.1.254
netmask: 255.255.255.0
Rete IP di classe C
rete: 192.168.1.0
IP: 192.168.1.3
netmask: 255.255.255.0
netmask: 255.255.255.0
A ha intenzione di inviare un
pacchetto a B. Prima Domanda:
IP: 192.168.1.1
netmask: 255.255.255.0 come fa A a sapere se B è sulla
propria sottorete?
Risposta: attraverso la netmask!
22
23
24
IP: 192.168.3.3
Default router
netmask: 255.255.255.0
IP: 192.168.1.254
netmask: 255.255.255.0
A B R1 CDN R2 X Y
IP: 192.168.1.3
netmask: 255.255.255.0
25
27
28
29
Proxy ARP
30
31
Scenario RARP
• A conosce il proprio indirizzo MAC, ma non
conosce il proprio indirizzo IP
• L’host B (server RARP) conosce l’indirizzo IP di
A
• Soluzione
• RARP request sulla rete (in brodacast)
• B risponde con un messaggio RARP reply
contenente l’indirizzo IP di A
32
33
34
35
DHCP discover
36
37
DHCP request
38
39
40
41
NAT
• Quando il router riceve un pacchetto inviato da un
computer della rete privata ad un computer esterno,
salva in una tabella l’indirizzo e il porto del mittente,
oltre ai nuovi valori che esso assegna
• Tale tabella viene consultata anche quando il router
riceve un pacchetto dal computer destinazione
42
43
Il livello Data-Link:
Wireless LAN – Bluetooth
Giorgio Ventre
Università di Napoli Federico II
Acknowledgements
Alcune slide di questa presentazione sono tratte da
lavori di approfondimento svolti dagli studenti del
corso di Reti di Calcolatori (vecchio ordinamento)
dell’Università di Napoli “Federico II” nell’anno
accademico 2003-2004
• Si ringraziano, in particolare:
• Pierluigi Cigliano, Francesco Paolo d’Andria:
• Reti wireless LAN
• Maria Ricciardi, Gaetano Trombetta e Sabina Viola:
• Bluetooth
Stime di mercato
Potenziale di Potenziale di
Numero di apparati Luoghi di utilizzo
mercato mondiale mercato europeo
Luoghi di utilizzo
Stimoli
10
11
12
13
14
15
Tipologie
• Rete ad hoc: BSS1
• Alta flessibilità
• Robustezza
• Gestione complessa
• Rete “infrastructure”: 802.11 LAN BSS2 802.11 LAN
• ESS
• più BSS interconnessi
802.11 LAN
• un unico IBSS a livello Logical Link 802.x LAN
Control (LLC) BSS1
• superamento della distanza fra
stazioni imposta dal livello fisico DS PORTAL
16
17
• Frequency hopping
• 79 canali ciascuno ampio 1 MHz
• cambio di frequenza (hop) almeno ogni 0.4 secondi
• richiede sincronizzazione
• ridotta sensibilità alle interferenze
• un pacchetto perso viene trasmesso al successivo
hop
19
20
1 Flussi di dati
0 1010
1 Sequenza random
0 0100101101011001
22
23
Network Allocation
Vector
Distributed Inter-Frame Space
24
Raggio di B Raggio di C
A B C
Raggio di A
25
26
• B invia dati ad A
• C è al corrente di tale comunicazione perché ascolta
le trasmissioni di B:
• È un errore per C concludere di non poter trasmettere a
nessuno
• Ad esempio, C potrebbe inviare frame a D senza interferire con la
capacità di A di ricevere dati da B
Raggio di B Raggio di C
A B C D
27
28
29
30
32
33
34
2 2 6 6 6 2 6 0-2312 4
Control Duration addr1 addr2 addr3 SeqCtrl addr4 Payload CRC
• Type:
bit 6 1 1
Type ToDS FromDS • Data
• RTS frame
• CTS frame
• Used by scanning algorithm
35
Bluetooth
Realizza un collegamento
wireless a onde radio e a corto
raggio d’azione tra dispositivi
fissi e portatili
36
37
Bluetooth: lo stack
38
39
40
41
Bluetooth: scatternet
• L’unione di due o più piconet
42
43
INTERFACCIA STANDARD
VERSO I LIVELLI INFERIORI
44
14/06/2006 GV/RC/A&P 1/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 2/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
1
1
The OSI Reference Model: the Data Link Layer
14/06/2006 GV/RC/A&P 3/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 4/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
2
2
The OSI Reference Model: LAN Architectures
14/06/2006 GV/RC/A&P 5/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
3
3
The OSI Reference Model: LAN Architectures
14/06/2006 GV/RC/A&P 7/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
Applicazione 7
Presentazione 6
Sessione 5
Trasporto 4
P
. Rete 3
A
.
B
X
. IEEE 802 Data Link 2
EIA/TIA 568 (*) Fisico 1
(*) in futuro ISO/IEC 11801 WAN
14/06/2006 GV/RC/A&P 8/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
4
4
IEEE 802.1
14/06/2006 GV/RC/A&P 9/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
5
5
I Sottolivelli
6
6
MAC (Media Access Control)
z Topologia: bus
z Cablaggio: bus, stella
z Arbitraggio del canale trasmissivo: tramite
contesa
z Tipologia del protocollo: non deterministico
z Velocità Trasmissiva: 10 Mb/s
z Throughput massimo: 4 Mb/s
z Evoluzione della rete Ethernet proposta da
Digital, Intel, Xerox (DIX).
14/06/2006 GV/RC/A&P 14/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
7
7
IEEE 802.4 (Token Bus)
z Topologia: bus
z Cablaggio: bus
z Arbitraggio del canale trasmissivo: token
z Tipologia del protocollo: deterministico
z Velocità Trasmissiva: 10 Mb/s
z Throughput massimo: 8 Mb/s
z Standard di rete utilizzato in ambito di fabbrica
specialmente in relazione al MAP
(Manufacturing Automation Protocol)
14/06/2006 GV/RC/A&P 15/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
z Topologia: anello
z Cablaggio: stella o doppio anello
z Arbitraggio del canale trasmissivo: token
z Tipologia del protocollo: deterministico
z Velocità Trasmissiva: 4 o 16 Mb/s
z Throughput massimo: 3 o 12 Mb/s
z Evoluzione della rete Token Ring proposta da
IBM in alternativa a Ethernet
8
8
ISO 9314
(FDDI: Fiber Distributed Data Interface)
z Topologia: anello
z Cablaggio: doppio anello o stella
z Arbitraggio del canale trasmissivo: token
z Tipologia del protocollo: deterministico
z Velocità Trasmissiva: 100 Mb/s
z Throughput massimo: 80 Mb/s
z Primo standard per reti locali concepito per
operare su fibra ottica
Il pacchetto MAC
Indirizzo Indirizzo
DATI FCS
Destinatario Mittente
DSAP SSAP LLC-PDU CRC
9
9
MAC-PDU e LLC-PDU
Network
PDU
LLC
LLC-DSAP LLC-SSAP CONTROL NPDU
PDU
MAC
MAC-DSAP MAC-SSAP LLC PDU FCS
PDU
Indirizzi MAC
10
10
Indirizzo di Broadcast
Ricezione
Transceiver
Transceiver
cable
11
11
Ricezione
Indirizzi di Gruppo
12
12
Primitive di Servizio
Primitive di Servizio
(b)
MA.DATA.request
MA.DATA.indication
MA.DATA.confirm
TIME
13
13
LAN Architectures: Medium Access Control
z Reservation
» Static or dynamic channel assignment
» Centralised or distributed control
» Suited for continuous traffic
z Round Robin
» Static or dynamic cyclic channel assignment
» Centralised or distributed control
» For bursty and continuous traffic
z Contention
» Inherently distributed (local) control
» Dynamic channel assignment
» Suited for bursty traffic
14
14
LAN Architectures: Medium Access Control
z Non persistent
» If no carrier, transmit
» If channel occupied, wait time T=f(Prob)
z 1-Persistent
» If no carrier, transmit
» If channel occupied, wait until again free
» If collision (no ack), wait time T=Random
z P-Persistent
» If no carrier, transmit with probability P
» If channel occupied, wait until again free
14/06/2006 GV/RC/A&P 30/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
15
15
LAN Architectures: Medium Access Control
z CSMA/Collision Detect
» Collisions are detected by listening over the media
while transmitting a frame
– If no carrier, transmit
– If channel occupied, wait until again free
– If collision, stop and transmit collision warning
– Wait for time T=f(Random Backoff)
» The problem is now ensuring that
– collisions can be detected
– all the stations can hear the collision warning
– the duration of the collision state be shortest possible
16
16
LAN Architectures: Ethernet
z Ethernet
» Developed by Xerox PARC (Metcalfe-Boggs) in late
‘70 with contribution from Intel and DEC
» High reliability (no critical dependecies on anyone of
the network components)
» Low installation and operation costs
» Distributed control
» Suited for data (burst) traffic
» Fits the typical office environment
CSMA/CD
14/06/2006 GV/RC/A&P 33/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
17
17
LAN Architectures: Ethernet
• Operational Parameters
Preamble
• Bit Rate 10 Mbps
7 Bytes
• Slot Time 512 Bit/t
Start of Frame (SFD) 1 Byte
• Interframe gap 9.6 µsec
Destination Addr. 6 Bytes • Backoff limit 10
Source Addr. 6 Bytes
• Attempt limit 16
• Jam size 32 bits
Length 2 Bytes
• Maximum Frame 1518 bytes
• Minimum Frame 512 bytes
Data < 1518 Bytes
WAIT PACKET RX
FORM FRAME
Algorithm
Y N
CARRIER
SIGNAL
ON ?
RX ?
Y
N
CARRIER = ON
WAIT FRAME GAP SYNC & WAIT SFD
TX FRAME START RX
Y N
COLLISION
FCS & SIZE
?
?
N Y
COMPLETE TX TX JAM
TX = OK ATTE ++ DEST_ADD
? N
Y
ATTE_MAX = TRUE
Y
MAX ATTE SEND FRAME
TX = NOK DROP FRAME
? UP
N
TX BACKOFF = R(ATT)
WAIT BACKOFF
Algorithm
14/06/2006 GV/RC/A&P 36/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
18
18
I mezzi trasmissivi IEEE 802.3
19
19
LAN Architectures: Ethernet
The longer the cable, the longer the contention interval, the
smaller the Efficiency!
14/06/2006 GV/RC/A&P 39/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
20
20
LAN Architectures: Token Bus
A B C
P=B P=D P=A
S=C S=A S=E
P = Predecessor
S = Successor
D E
P=E P=C
S=B S=D
z 75 Ω Broadband coax
Physical
z Bus or Tree structure Mod/Dem
& Control
Interface
Module
z Transmission:
» Modified Basebad MAC
MAC
DTE
(Carrierband) Protocol
Firmware
» Broadband
z Requires modulation Architectural choices
equipment (sometime in influenced by operative
DTE) environment (factory)
21
21
LAN Architectures: Token Bus
z As in baseband, carrierband
occupies all the cable
bandwidth (1 - 5 - 10 Mbps)
z Signal is modulated “phase-
coherent frequency shift” with Binary 1
22
22
LAN Architectures: Token Bus
23
23
LAN Architectures: Token Bus
z Priority operation
» Four Access Classes
– Class 6: Urgent Messages, Alarms
– Class 4: Control and Management
– Class 2: Routine Operations
– Class 0: Low priority (e.g. file transfer, downloading)
» Transmission regulated by two timers
– Token Hold Timer (THT)
Maximum Transmission Time for a Station
– High-Priority THT (HP-THT)
Maximum Transmission Time for Class 6 Packets
24
24
LAN Architectures: Token Bus
Token
HP-THT > 0
B THT > 0 Class 6
Classes 0-4
TRT = t
HP-THT = 0
B THT := TRT
TRT = 1
HP-THT = 0
B THT = TTRT
TRT = 2
25
25
LAN Architectures: Token Ring
D D D
T F F
A C A C A C
Frame returns
A receives A tx a to A
the Token B Frame to D B through D and B
is eliminated
D D
A releases F
the Token to B Early Token
Release
A C A C
A tx a T
T Frame to D and
releases immediately
F
B the token B
Drop Connection
Trunk
Coupling
Unit
MAC
MAC
R T R T R T R T
HUB
Protocol DTE
Firmware
26
26
LAN Architectures: Token Ring
In Out In Out
DTE DTE
Source Addr.
6 Bytes Access Control:
Token, Monitor, Priority, Reserv.
Frame Control:
Data < 5000 Bytes
For ring management
Frame Status:
CRC 4 Bytes A bit - On, Destination OK
C bit - On, Frame OK
End Delimiter 1 Bytes
27
27
LAN Architectures: Token Ring
28
28
LAN Architectures: Token Ring
29
29
LAN Architectures: Token Ring
30
30
LAN Architectures: High Speed LANs
31
31
LAN Architectures: High Speed LANs
z Case 1:
Tp = 25 µsec (Lenght = 2.5 Km)
Fs = 10.000 bits (Frame size)
B = 10 Mbps (Bandwidth)
» Tp / Tix = 25 / 1000
» Tc = 50 µsec
» N = Tc x B = 500 (Bits wasted if collision)
z Case 2: B = 100 Mbps, N = 5000
z Case 3: B = 200 Mbps, N = 10000 (Frame)
CSMA/CD is not suited!
14/06/2006 GV/RC/A&P 63/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
32
32
LAN Architectures: High Speed LANs
SAS
Optical Coupling
Unit
S S
Slave Key Media Interface
Connector
Master Key
Primary Ring
M M
Wiring Concentrator
A B
DAS
B
A
Secondary Ring
A
Primary Ring B
z FDDI is used
» as a High-Speed LAN for clustering top-end computing
systems (NOW)
» as a High-Speed backbone for LAN interconnection
FDDI
Bridge
Campus Network
33
33
LAN Architectures: High Speed LANs
z Operation Mode
» At any time, only one ring is active and provides
timing
» 4B/5B Manchester Coding
» MAC based on ETR - Token Ring
» Priority mechanism similar to Token Bus
» Isochronous FDDI defined but not standard
based on allocation of time-slots to isochronous
media - Synchronous Allocation Time (SAT)
34
34
LAN Architectures: Bridging
LAN 2
LAN 1 Buiding B
Buiding A
Bridge Computer
Backbone LAN
LAN 3
Office LAN
LAN 4
Buiding C
Buiding D
2.5 Km
LAN 2
Buiding B
Connecting LAN
2.5 Km Bridge Computer
Office LAN
LAN 3
Buiding A
2.5 Km
35
35
LAN Architectures: Bridging
LAN 1 Buiding B
Buiding A
Bridge Computer
Backbone LAN
LAN 3
Office LAN
LAN 4
Buiding C
Buiding D
Bridging Operation
Host A Host B
NET PKT
Bridge PKT NET
PHY 802.3 PKT 802.3 PKT 802.4 PKT 802.4 PKT PHY
36
36
Bridging Operation
Bridging Disadvantages
37
37
Bridging Operation
Bridging Operation
z Transparent bridging
the presence of one or multiple bridges is
transparent to the stations
z Bridges automatically initialize and configure
dynamically with no external intervention
z A bridge can have two or more bridge ports. In
this last case it is called a multiport bridge.
z Bridges operate in promiscuous mode, i.e. they
receive and buffer all frames received
38
38
Bridging Operation
Forw.
DataBase
Port Protocol
Mngmt Entity
Port 1 Port 2
Bridge learning
39
39
Bridge learning
Topology Initialization
40
40
Topology Initialization
Topology change
41
41
Il progetto IEEE 802: il sottolivello LLC
Il sottolivello LLC
42
42
PDU del LLC
DESTINATION SOURCE
CONTROL INFORMATION
ADDRESS ADDRESS
Condivisione LLC
Sottolivello LLC
Sottolivello MAC
43
43
SAP di LLC
44
44
Esempi di SAP-LLC
0FEH 0FEH UI
OTTETTI 1 1 1 m
Servizi LLC
45
45
LLC Tipo 1
L.DATA.indication
46
46
LLC tipo 2
z Servizio connesso
z É il servizio più sofisticato che il livello data link
possa offrire al livello network
z Sorgente e destinazione aprono una connessione
prima di trasferire i dati e la chiudono al termine
z I frame sono numerati e il livello 2 garantisce che:
» ogni frame inviato sia ricevuto correttamente
» ogni frame sia ricevuto esattamente solo una volta
» tutti i frame siano ricevuti nell'ordine corretto
z Esistono meccanismi di controllo di flusso (flow
control)
14/06/2006 GV/RC/A&P 93/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
47
47
LLC tipo 2
LLC tipo 2
48
48
The ultimate winner in the LAN war
49
49
The ultimate winner in the LAN war
50
50
Corso di Laurea in
Ingegneria delle Telecomunicazioni
Protocolli Applicativi:
SMTP-POP3-DNS
Giorgio Ventre
Università di Napoli Federico II
Protocolli Applicativi
• Protocolli “utente”
• SMTP
• Telnet
• FTP
• HTTP
• Protocolli di servizio
• DNS
• SNMP
Il protocollo SMTP
• Una volta che una e-mail è stata scritta attraverso l’uso di un
programma su un personal computer, è necessario inviarla al
destinatario
• Come è noto, il destinatario potrebbe non essere in quel
momento disponibile ad accettare messaggi di posta:
• utente impegnato
• computer spento
• La posta elettronica sfrutta degli intermediari per il trasferimento
delle e-mail tra le parti, alla stregua degli uffici postali che
ospitano pacchi nell’attesa che i destinatari passino a ritirarli
• Per trasferire messaggi di posta elettronica tra gli intermediari si
utilizza un apposito protocollo
• Si chiama Simple Mail Transfer Protocol, definito in RFC821
User Agent
SMTP mail
server user
• anche detto mail reader
• composizione, modifica, lettura di
SMTP agent
messaggi SMTP
• es.: Eudora, Outlook, Netscape mail user
server agent
Messenger
• messaggi in uscita ed in entrata user
immagazzinati sul server outgoing
agent
message queue
user
agent user mailbox
I mail server
Mail Server
user
• mailbox contenente messaggi in agent
entrata (non letti) per l’utente
mail
user
• coda dei messaggi in uscita server
agent
contenente i messaggi non ancora
recapitati SMTP mail
• protocollo SMTP a cavallo di due server user
mail server. SMTP agent
10
11
header
linea
• Linee di intestazione vuota
(header):
• To:
• From: body
• Subject:
• …
differenti da comandi smtp!
• corpo (body):
• il “messaggio” vero e
proprio
• solo caratteri ASCII
12
13
14
Text Video
• sottotipi: plain, html • sottotipi: mpeg,
quicktime
Image
• sottotipi: jpeg, gif
Application
• altri dati che devono
Audio essere processati da
• sottotipi: specifiche applicazioni
basic (8-bit mu-law
encoded), 32kadpcm • sottotipi: msword,
(32 kbps coding) octet-stream
15
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
16
17
18
20
21
POP3 HTTP
INTERNET browser
SMTP
mail server web server
destinatario
22
23
• La rete Internet è stata progettata invece per lavorare con indirizzi di diversa
natura. Per es.:
• 143.225.229.3
• 217.9.64.225
• Questi indirizzi, detti indirizzi IP, sono formati da 4 numeri che vanno da 0 a
255 separati da un punto.
• Ogni dispositivo nella rete Internet ha un tale indirizzo; esso permette
l’identificazione univoca a livello globale e la localizzazione.
• A differenza dei nomi simbolici, essendo gli indirizzi IP di lunghezza fissa,
sono più facilmente gestibili dalle macchine
• Data la loro natura gerarchica forniscono inoltre precise informazioni sulla
loro dislocazione sul territorio:
• leggendo l’indirizzo da sinistra verso destra si ottengono informazioni sempre più
dettagliate circa la rete di appartenenza (all’interno di tutte le reti di Internet)
24
25
26
27
DNS distribuito!
• Quello che si fa è distribuire le informazioni sul
territorio
• Ciascuno ha la responsabilità di raccogliere, gestire,
aggiornare e divulgare le informazioni che lo
riguardano.
• In particolare l’approccio è di tipo gerarchico:
• gli elementi più alti nella gerarchia contengono molte
informazioni non dettagliate
• gli elementi più bassi nella gerarchia contengono poche
informazioni dettagliate
• Attraverso un colloquio concertato tra le entità (di cui
gli utenti non hanno percezione) si riesce a fornire il
servizio di risoluzione.
28
29
31
Un semplice esempio
32
gaia.cs.umass.edu
33
35
• Tipo=A • Type=CNAME
• nome=alias per il nome
• nome=hostname
canonico (reale)
• valore: ind. IP • valore=nome canonico
• Tipo=NS
• nome=dominio (p.es.: • Type=MX
unina.it) • valore=nome dell’host
• valore=ind. IP mailserver associato a
dell’Authoritative NS nome
36
37
RR in risposta ad
una richiesta
records per
server authoritative
informazioni addizionali
utili che possono
essere utilizzate
38
Generici Geografici
vesuvio A 143.225.229.1
grid A 143.225.229.3
honolulu A 143.225.229.111
comicserver A 143.225.229.112
...
; Aliases
www CNAME grid
ftp CNAME grid
news CNAME grid
tesisti CNAME vesuvio
www.tesisti CNAME vesuvio
; MX Record
MX 10 grid.grid.unina.it.
40
$TTL 3600
; Machine Name
1 PTR vesuvio.grid.unina.it.
3 PTR grid.grid.unina.it.
111 PTR honolulu.grid.unina.it.
112 PTR comicserver.grid.unina.it.
41
Il file named.root
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
...
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
42
Il livello Rete:
IP Multicasting
Giorgio Ventre
Università di Napoli Federico II
IP Multicasting
La trasmissione multicast
Address indirection:
da “indirizzo per
destinazione” ad “indirizzo
per evento”
0 1 2 31
1 1 1 03 Multicast Address
Classe D
All’interno di tale classe esiste un certo numero di
indirizzi che sono riservati dall’authority che gestisce
Internet a dei gruppi permanenti: tali indirizzi sono
detti “well-known”
10
Coordinano i multicast
Algoritmi per il router all’interno della rete
Internet, per permettere
multicast routing l’instradamento dei
datagrammi multicast
11
12
Messaggio
Header IP IGMP
20 bytes 8 bytes
13
Il protocollo IGMP
14
15
IGMP : funzionalità
• Fase 1
16
• Fase 2
17
IGMP : implementazione
18
19
Il routing multicast
20
21
Group-shared Tree
Approccio core-based :
N.B.: Il “core” è il nodo E
23
Source-based Tree
Least unicast-cost
path tree:
l’unione dei
percorsi minimi
dalla sorgente a
tutte le
destinazioni
24
Minimizza il costo
Least unicast-cost dalla sorgente ad
path tree ognuna delle
destinazioni
Minimizza la
Steiner tree somma dei costi
dei link dell’albero
multicast
25
26
28
29
30
Core-Based Tree
31
32
33
DVMRP: BGMP:
standard de facto Border Gateway Multicast Protocol
•approccio group-shared
•in corso di sviluppo
34
35
36
37
Il programma Mrouted
• Si occupa del routing multicast sui sistemi UNIX
• Il suo funzionamento è del tutto simile a quello del
demone routed nel caso unicast:
• opera in stretta collaborazione col sistema
operativo per installare le informazioni relative
all’instradamento dei pacchetti multicast
• Può essere utilizzato solo con una versione
speciale di UNIX, conosciuta come “multicast
kernel”, contenente:
• una tabella apposita per il routing dei pacchetti
multicast
• il codice necessario per il loro smistamento
38
39
Il livello Rete:
Il protocollo IPv6
Giorgio Ventre
Università di Napoli Federico II
L’header principale
0 31
VERS PRIO FLOW LABEL
SOURCE ADDRESS
DESTINATION
ADDRESS
10
11
12
13
14
16
17
Protocolli Applicativi:
HTTP ed FTP
Giorgio Ventre
Università di Napoli Federico II
client server
HTTP request
Browser Web Server
APP APP
38355 HTTP response 80
TCP TCP
IP IP
DL DL
PHY PHY
INTERNET
INTERNET
• HTTP/1.0 • HTTP/1.1
• Il server analizza una • Sulla stessa
richiesta, la serve e connessione il server
chiude la connessione analizza tutte le richieste
e le serve
• 2 Round Trip Time (RTT)
• Il client riceve la pagina
per ciascuna richiesta iniziale e invia subito
• Ogni richiesta subisce lo tutte le altre richieste
slow-start TCP • Si hanno meno RTT ed
un solo slow-start
request
METHOD SP URL SP VERSION CR LF line
HEADER FIELD NAME : VALUE CR LF
Header field
lines
HEADER FIELD NAME : VALUE CR LF
CR LF
PAYLOAD
HTTP/1.0 200 OK
Date: Mon, 16 Dec 2002 14:00:22 GMT
Server: Apache/1.3.24 (Win32)
Last-Modified: Fri, 13 Dec 2002 08:06:44 GMT
Content-Length: 222
Content-Type: text/html
RIGA VUOTA
PAYLOAD
10
11
12
Pagina HTML
1
2
e#
s pon s
e
pr 1
2 Server A
htt t#
e q ues
pr
ht t
htt
p res
po n
ht t se #
Client pr 3
equ
est
#3
Server B
13
URL
14
close
open
close
close
open close
close
15
Il metodo GET
• Uno dei più importanti metodi di HTTP è GET
• Usato per richiedere una risorsa ad un server
• Questo è il metodo più frequente, ed è quello che viene attivato
facendo click su un link ipertestuale di un documento HTML, o
specificando un URL nell’apposito campo di un browser
• GET può essere:
• assoluto
• la risorsa viene richiesta senza altre specificazioni
• condizionale
• si richiede la risorsa se è soddisfatto un criterio indicato negli header
If-match, If-modified-since, If-range, ecc.
• parziale
• si richiede una sottoparte di una risorsa memorizzata
16
17
Il metodo POST
• Il metodo POST serve per trasmettere delle informazioni dal
client al server, ma senza la creazione di una nuova risorsa
• POST viene usato per esempio per sottomettere i dati di una
form HTML ad un’applicazione sul server
• I dati vengono trasmessi nel body della richiesta
• Il server può rispondere positivamente in tre modi:
• 200 Ok: dati ricevuti e sottomessi alla risorsa specificata; è stata data
risposta
• 201 Created: dati ricevuti, la risorsa non esisteva ed è stata creata
• 204 No content: dati ricevuti e sottomessi alla risorsa specificata; non è
stata data risposta
18
19
HTTP: Response
• La risposta HTTP è un messaggio testuale formato da una riga
iniziale, da header facoltativi ed eventualmente un body (corpo)
Version status-code reason-phrase CRLF
[Header]
CRLF
Body
dove:
[…] indica un elemento opzionale
CRLF indica la sequenza di caratteri di codice ASCII
13 (base 16) = 19 (base 10) → CR = Carriage Return
10 (base 16) = 16 (base 10) → LF = Line Feed
20
HTTP/1.1 200 OK
Date: Thu, 10 Apr 2003 11:46:53 GMT
Server: Apache/1.3.26 (Unix) PHP/4.0.3pl1
Last-Modified: Wed, 18 Dec 2002 12:55:37 GMT
Accept-Ranges: bytes
Content-Length: 7394
Content-Type: text/html
<HTML> … </HTML>
21
Status code
• Lo status code è un numero di tre cifre, di cui la prima indica la
classe della risposta, e le altre due la risposta specifica
• Esistono le seguenti classi:
• 1xx: Informational
• Una risposta temporanea alla richiesta, durante il suo svolgimento
• 2xx: Successful
• Il server ha ricevuto, capito e accettato la richiesta
• 3xx: Redirection
• Il server ha ricevuto e capito la richiesta, ma sono necessarie altre azioni da
parte del client per portare a termine la richiesta
• 4xx: Client error
• La richiesta del client non può essere soddisfatta per un errore da parte del
client (errore sintattico o richiesta non autorizzata)
• 5xx: Server error
• La richiesta può anche essere corretta, ma il server non è in grado di
soddisfare la richiesta per un problema interno
22
23
24
26
27
Cookies (2)
applicazione
server in esecuzione
client
HTTP sul server
request
request
genera il cookie
okie
+ Set-Co
okie Output + co
reply
request + Cookie
request + Cook
ie
analizza il cookie
reply Output
28
29
Web caching
• Si parla genericamente di Web caching quando le richieste di un
determinato client non raggiungono il Web Server, ma vengono intercettate
da una cache
• Tipicamente, un certo numero di client di una stessa rete condivide una
stessa cache web, posta nelle loro prossimità (es. nella stessa LAN)
• Se l’oggetto richiesto non è presente nella cache, questa lo richiede in vece
del client conservandone una copia per eventuali richieste successive
• Richieste successive alla prima sono servite più rapidamente
• Due tipi di interazione HTTP: client-cache e cache-server
Server
Cache
30
31
32
200 OK
SI TTL>0 Restituisce il
SI nuovo documento
Una
richiesta NO GET Oggetto
giunge alla IMS modificato
cache
304 Not Modified
NO
Consegna la copia
33
• Internet oggi si presenta come una rete ad estensione globale che connette
molti milioni di macchine sparse su tutto il globo.
• Spesso sorge l’esigenza di copiare un file da una macchina ad un’altra per
poterlo utilizzare localmente:
• un documento di Office;
• un file eseguibile;
• un file di testo;
• etc…
• Ciò può accadere sia
tra macchine molto
distanti tra di loro che
tra macchine
direttamente
connesse, presenti
nello stesso locale.
34
35
37
38
39
40
Protocolli Applicativi:
HTTP ed FTP
Giorgio Ventre
Università di Napoli Federico II
client server
HTTP request
Browser Web Server
APP APP
38355 HTTP response 80
TCP TCP
IP IP
DL DL
PHY PHY
INTERNET
INTERNET
• HTTP/1.0 • HTTP/1.1
• Il server analizza una • Sulla stessa
richiesta, la serve e connessione il server
chiude la connessione analizza tutte le richieste
e le serve
• 2 Round Trip Time (RTT)
• Il client riceve la pagina
per ciascuna richiesta iniziale e invia subito
• Ogni richiesta subisce lo tutte le altre richieste
slow-start TCP • Si hanno meno RTT ed
un solo slow-start
request
METHOD SP URL SP VERSION CR LF line
HEADER FIELD NAME : VALUE CR LF
Header field
lines
HEADER FIELD NAME : VALUE CR LF
CR LF
PAYLOAD
HTTP/1.0 200 OK
Date: Mon, 16 Dec 2002 14:00:22 GMT
Server: Apache/1.3.24 (Win32)
Last-Modified: Fri, 13 Dec 2002 08:06:44 GMT
Content-Length: 222
Content-Type: text/html
RIGA VUOTA
PAYLOAD
10
11
12
Pagina HTML
1
2
e#
s pon s
e
pr 1
2 Server A
htt t#
e q ues
pr
ht t
htt
p res
po n
ht t se #
Client pr 3
equ
est
#3
Server B
13
URL
14
close
open
close
close
open close
close
15
Il metodo GET
• Uno dei più importanti metodi di HTTP è GET
• Usato per richiedere una risorsa ad un server
• Questo è il metodo più frequente, ed è quello che viene attivato
facendo click su un link ipertestuale di un documento HTML, o
specificando un URL nell’apposito campo di un browser
• GET può essere:
• assoluto
• la risorsa viene richiesta senza altre specificazioni
• condizionale
• si richiede la risorsa se è soddisfatto un criterio indicato negli header
If-match, If-modified-since, If-range, ecc.
• parziale
• si richiede una sottoparte di una risorsa memorizzata
16
17
Il metodo POST
• Il metodo POST serve per trasmettere delle informazioni dal
client al server, ma senza la creazione di una nuova risorsa
• POST viene usato per esempio per sottomettere i dati di una
form HTML ad un’applicazione sul server
• I dati vengono trasmessi nel body della richiesta
• Il server può rispondere positivamente in tre modi:
• 200 Ok: dati ricevuti e sottomessi alla risorsa specificata; è stata data
risposta
• 201 Created: dati ricevuti, la risorsa non esisteva ed è stata creata
• 204 No content: dati ricevuti e sottomessi alla risorsa specificata; non è
stata data risposta
18
19
HTTP: Response
• La risposta HTTP è un messaggio testuale formato da una riga
iniziale, da header facoltativi ed eventualmente un body (corpo)
Version status-code reason-phrase CRLF
[Header]
CRLF
Body
dove:
[…] indica un elemento opzionale
CRLF indica la sequenza di caratteri di codice ASCII
13 (base 16) = 19 (base 10) → CR = Carriage Return
10 (base 16) = 16 (base 10) → LF = Line Feed
20
HTTP/1.1 200 OK
Date: Thu, 10 Apr 2003 11:46:53 GMT
Server: Apache/1.3.26 (Unix) PHP/4.0.3pl1
Last-Modified: Wed, 18 Dec 2002 12:55:37 GMT
Accept-Ranges: bytes
Content-Length: 7394
Content-Type: text/html
<HTML> … </HTML>
21
Status code
• Lo status code è un numero di tre cifre, di cui la prima indica la
classe della risposta, e le altre due la risposta specifica
• Esistono le seguenti classi:
• 1xx: Informational
• Una risposta temporanea alla richiesta, durante il suo svolgimento
• 2xx: Successful
• Il server ha ricevuto, capito e accettato la richiesta
• 3xx: Redirection
• Il server ha ricevuto e capito la richiesta, ma sono necessarie altre azioni da
parte del client per portare a termine la richiesta
• 4xx: Client error
• La richiesta del client non può essere soddisfatta per un errore da parte del
client (errore sintattico o richiesta non autorizzata)
• 5xx: Server error
• La richiesta può anche essere corretta, ma il server non è in grado di
soddisfare la richiesta per un problema interno
22
23
24
26
27
Cookies (2)
applicazione
server in esecuzione
client
HTTP sul server
request
request
genera il cookie
okie
+ Set-Co
okie Output + co
reply
request + Cookie
request + Cook
ie
analizza il cookie
reply Output
28
29
Web caching
• Si parla genericamente di Web caching quando le richieste di un
determinato client non raggiungono il Web Server, ma vengono intercettate
da una cache
• Tipicamente, un certo numero di client di una stessa rete condivide una
stessa cache web, posta nelle loro prossimità (es. nella stessa LAN)
• Se l’oggetto richiesto non è presente nella cache, questa lo richiede in vece
del client conservandone una copia per eventuali richieste successive
• Richieste successive alla prima sono servite più rapidamente
• Due tipi di interazione HTTP: client-cache e cache-server
Server
Cache
30
31
32
200 OK
SI TTL>0 Restituisce il
SI nuovo documento
Una
richiesta NO GET Oggetto
giunge alla IMS modificato
cache
304 Not Modified
NO
Consegna la copia
33
• Internet oggi si presenta come una rete ad estensione globale che connette
molti milioni di macchine sparse su tutto il globo.
• Spesso sorge l’esigenza di copiare un file da una macchina ad un’altra per
poterlo utilizzare localmente:
• un documento di Office;
• un file eseguibile;
• un file di testo;
• etc…
• Ciò può accadere sia
tra macchine molto
distanti tra di loro che
tra macchine
direttamente
connesse, presenti
nello stesso locale.
34
35
37
38
39
40
Protocolli Applicativi:
Giorgio Ventre
Università di Napoli Federico II
Web Caching
Server
2
INTERNET 3
H1 H2 Hn Cache
4
1
2
Le reti overlay
NB:
In tal caso si realizza
un’architettura di rete
gerarchica sovrapposta
(overlay network)
NB:
In tal caso l’overlay network ha una struttura paritetica.
I peer , una volta unitisi alla rete, inviano richieste mediante la tecnica
del flooding (inondazione).
Il livello trasporto:
Introduzione e protocollo UDP
Giorgio Ventre
Università di Napoli Federico II
Livello Trasporto
Application
Transport
Presentation Service
User
Session
Transport
Transport
Network Service
Provider
Data Link
Physical
OSI
Application Application
I protocolli di Livello
Presentation Trasporto sono presenti Presentation
solo negli end-system
Session Session
Transport Transport
network physical
su differenti host
icg
data link
a
physical
le
network
nd
physical network
o-
physical
tr
• Network-layer: network
an
data link
spo
physical
trasferimento dati tra
rt
end-system application
transport
network
• Transport layer: data link
physical
trasferimento dati tra
processi. Naturalmente
necessita dei servizi
offerti dal livello rete.
4
Multiplexing e Demultiplexing - 2
Multiplexing:
Raccogliere i dati provenienti 32 bits
dalle applicazioni, imbustare i
dati con un header approriato source port # dest port #
(per il de-multiplexing)
other header fields
multiplexing/demultiplexing:
• Realizzato attraverso la coppia
<indirizzo IP, numero di porto> application
data
• source, dest port # è (message)
presente in ogni segmento
• numeri di porto “well-known”
per applicazioni particolari TCP/UDP segment format
source port:23
dest. port: x
Source IP: C Source IP: C
Dest IP: B Dest IP: B
source port: y source port: x
Uso del concetto di porto: dest. port: 80 dest. port: 80
una semplice app telnet
Source IP: A
Dest IP: B Web
Web client source port: x server B
host A dest. port: 80
Caso del Web server
ICMP Protocolli
Transport Network IP di routing
Service ARP e RARP
10
11
12
14
Il livello trasporto:
Giorgio Ventre
Università di Napoli Federico II
• Soluzioni:
• Rete che presenta errori di trasmissione:
• In questo caso il ricevente deve effettuare:
1) Correzione degli errori
• Rilevamento degli errori e: oppure
2) Notifica al mittente
Richiesta ritrasmissione
NAK
Il ricevente non può sapere
se la richiesta di ritrasmissione
Data(ritrasmissione) è arrivata al sender, quindi
non sa interpretare se quello
appena ricevuto è il segmento
Canale con errori ma senza ritrasmesso dal sender, o un
perdita di pacchetti segmento contenente nuovi
dati
sender receiver
4
data
(seq.=1) Accetto data (seq.=1)
ACK
sender receiver
6
Aumentare l’efficienza
In alternativa al semplice Stop & Wait …
Pipelining: il mittente invia pacchetti prima di
ricevere il riscontro dei precedenti
• Occorre aumentare l’intervallo dei num. sequenza
• Aggiungere buffer nel sender e/o receiver
Go Back-N in azione
10
11
12
Il livello trasporto:
Il Protocollo TCP
Giorgio Ventre
Università di Napoli Federico II
• pipelined: • connection-oriented:
• Controllo di flusso e di • handshaking (scambio di msg
congestione impostano la TCP di controllo a tre vie) prepara
window mittente e ricevente prima della
comunicazione
• Buffers su mittente e
• controllo di flusso:
ricevente
• Il mittente non invia più di
application application
socket
writes data reads data
socket
quanto il ricevente non possa
door
TCP TCP
door
accettare
send buffer receive buffer
segment
TCP: PDU
• Bit di Codice:
• Per identificare il tipo di informazione contenuta nel
segmento vengono impiegati i 6 bit di codice:
• URG: Il campo puntatore urgente è valido
• ACK: Il campo riscontro è valido
• PSH: Questo segmento richiede una “spinta”
• RST: Effettua il reset della connessione
• SYN: Sincronizza i numeri di sequenza
• FIN: Il trasmettitore ha raggiunto la fine del suo
stream di byte
• HLEN:
• Contiene un numero intero che indica la
lunghezza dell'intestazione TCP del
datagramma. Questa informazione è
necessaria perché il campo opzioni è di
lunghezza variabile
• Porta (provenienza/destinazione):
• Contengono i numeri di porta di protocollo
TCP che identificano gli applicativi alle
estremità della connessione
5
TCP: PDU
• Numero sequenziale:
• questo campo identifica, nello stream di byte del trasmettitore, la
posizione dei dati nel segmento. Questo valore è riferito alla
stream che fluisce nella medesima direzione del segmento,
mentre il Numero di Riscontro si riferisce alla stream che fluisce
nella direzione opposta
• Numero di riscontro:
• Contiene il numero sequenziale del byte successivo a quello
correttamente ricevuto dalla destinazione. Tale campo è valido
solo nei segmenti di riscontro, o nei segmenti utilizzanti la tecnica
trasmissiva Piggy-backing, e fa riferimento allo stream di dati
che fluisce nella direzione opposta a tale segmento
• Finestra:
• Numero intero senza segno di 16 bit che specifica la
dimensione del buffer che il TCP ha a disposizione per
immagazzinare dati in arrivo. È utilizzato per la
gestione dinamica della dimensione della finestra
scorrevole
• Puntatore urgente:
• Il TCP permette la trasmissione fuori banda di dati
informativi ad alta priorità. Questi devono essere
trasmessi il prima possibile, indipendentemente dalla
loro posizione nello stream. Questo campo, se valido,
conterrà un puntatore alla posizione, nello stream, dei
dati NON urgenti
7
TCP: PDU
• Checksum:
• Campo di 16 bit contenente un valore intero
utilizzato dal TCP della macchina host di
destinazione, per verificare l'integrità dei dati e
la correttezza dell'intestazione
• questa informazione è di essenziale importanza
perché il protocollo IP non prevede nessun
controllo di errore sulla parte dati del frame
• per il calcolo del valore checksum il TCP ha
bisogno di aggiungere una pseudointestazione al
datagramma, per effettuare così un controllo anche
sugli indirizzi IP di destinazione e provenienza
TCP: PDU
10
• Riscontro e ritrasmissione:
• Consiste nella ritrasmissione di un segmento se
non è giunta conferma entro un tempo massimo
(time-out)
• Time-Out:
• Al momento della trasmissione di un segmento, il
TCP attiva un timer
11
TCP: Caratteristiche
12
13
14
15
16
17
Host A Host B
SYN S
e q=x, n
o data
timeout
=y
Seq
x+1,
, ACK=
SYN
ACK=
y+1 S
e q=x+1
, no da
ta
time
18
client server
Passo 1: client invia close
segmento di controllo TCP FIN
FIN al server
ACK
close
Step 2: server riceve FIN, FIN
risponde con ACK. Quindi
chiude la connessione, invia
timed wait
ACK
ACK al client
closed
19
ACK
N.B: una piccola variante al
Passo 2: il sender invia ACK closed
e FIN contemporaneamente
all’interno dello stesso closed
segmento
20
Seq. number:
Host A Host B
• Numero del primo
byte del segmento User Seq=4
2, AC
in procinto di essere types K=79,
d ata =
inviato ‘C’ ‘C’
host ACKs
ACK: receipt of
• Numero del byte data
= ‘C’ ‘C’, echoes
A CK =43, back ‘C’
successivo atteso Seq=
79,
dall’altro host
• ACK host ACKs
Q: in che modo il ricevente receipt Seq=4
of echoed 3, ACK
=80
gestisce I segmenti
‘C’
fuori ordine?
• A: Nelle RFC non è
specificato, ampia time
libertà ai simple telnet scenario
programmatori
21
22
Seq=9 Seq=9
2, 8 b 2, 8 b
yte ytes d
s data ata
Seq=92 timeout
Seq=
100,
20 by
tes d
Seq=100 timeout
ata
timeout
=100
ACK 0
10
X K= 120
AC ACK=
loss
Seq=9
Seq=9 2, 8 b
2, 8 b yte s data
yte s data
20
K=1
=100 AC
ACK
time time
Ritrasmissione dovuta Timeout prematuro,
ad un riscontro perso azione dell’ ACK cumulativo:
il segmento 100 non è ritrasmesso
23
Il riscontro cumulativo
evita la ritrasmissione del
primo segmento…
24
25
26
FIN / ACK
FIN WAIT 1 CLOSING CLOSE WAIT
ACK / -- FIN + ACK / ACK ACK / -- CLOSE / FIN
27
28
29
Il livello Trasporto:
TCP: controllo di flusso e controllo della congestione
Giorgio Ventre
Università di Napoli Federico II
Receiver: legge un
byte alla volta Soluzione di Clark:
Impedisce al
receiver di
aggiornare la
finestra un byte alla
volta
• 2 mittenti
• 2 riceventi
• 1 router con
buffer (coda) ∞:
• non ci sono
ritrasmissioni
• I ritardi aumentano
all’avvicinarsi del
limite di capacità
del canale
• Non si può
superare il max
throughput
10
11
CongWin
12
• Slow Start
• Partenza lenta (per modo di dire!)
• Congestion Avoidance:
• Additive Increase, Multiplicative Decrease (AIMD)
• incremento additivo, decremento moltiplicativo
14
RTT
for (each segment ACKed)
Congwin++ two segm
ents
until (loss event OR
CongWin > threshold)
four segm
ents
• Crescita esponenziale della
dimensione della finestra (ogni RTT):
• “Slow start” Æ termine improprio!
• Evento di perdita: time
• timeout
• tre ACK duplicati consecutivi
15
Congestion
Avoidance
Slow Start
Subito dopo
un timeout
(CongWin = 16)
16
• Additive Increase
• Una volta raggiunta la soglia:
• ci si avvicina con cautela al valore della banda disponibile
tra le due estremità della connessione
• meccanismo adottato:
– incremento di CongWin alla ricezione di un ACK
• questa fase è nota come fase di congestion avoidance
• Multiplicative Decrease:
• Al sopraggiungere della congestione (scadenza di
un timeout o ricezione di tre ACK duplicati
consecutivi):
• la finestra di congestione viene dimezzata
17
18
20
21