Sei sulla pagina 1di 393

Reti di Calcolatori

Presentazione del Corso

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

z Chi terrà il corso


z Orari e mezzi di comunicazione
z Gli obiettivi del corso
z Come sarà sviluppato il corso
z Il Materiale Didattico

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

z Mercoledì 8.30-10.30 (I1 Biennio)


z Venerdì 10.30 – 12.30 (IA2 Agnano)
z Orario di ricevimento
» Per il momento lunedì 14.30-16.30
» Palazzina Ex- Elettrotecnica, IV Piano, Dip. di
Informatica e Sistemistica
z Mezzi di comunicazione
» Posta elettronica : giorgio.ventre@unina.it
» Telefono : 081 768 3908 / 2892

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Obiettivi del Corso

z Presentare Protocolli e Servizi per le moderne Reti


di Calcolatori
z Seguire un approccio metodologico allo studio di
un sistema complesso quale è Internet
z Fare capire il perché di scelte progettuali
z Darvi nozioni sufficienti a farvi maturare una
capacità di analisi critica
z Darvi le basi per la progettazione di
» Sistemi Informativi Distribuiti
» Sistemi di Comunicazione a Commutazione di
Pacchetto
» Protocolli
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

Altri testi di consultazione

z A. Tanenbaum, Computer Networks, IV Ed.,


Prentice-Hall
» A classic, starting-from-the-scratch book
z Keshav, An engineering approach to
computer networks, Addison-Wesley
» A must for a real network engineer
z More books from Peterson, Halsall, ...

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

z Siete grandi abbastanza


» Se siete qui è perché avete scelto di farlo
» Non ci sarà nessun guardiano
» Gli esami non sono gestiti dalla Procura della
Repubblica
z tuttavia
» Ci si aspetta un impegno serio e professionale
» Non saranno accettati approcci “al risparmio”
» Saranno benvenute proposte e suggerimenti

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Chi vedrete a lezione

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

Alcuni temi “caldi”:

z Ovviamente parlo del Networking


» Sicurezza di rete
» Network Management/Engineering
» Web services
» Servizi per terminali mobili
» Content Delivery
» Service Engineering
» Content Adaptation/Web accessibility

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

Gruppo di Ricerca sull’Informatica Distribuita


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

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?

Ways to represent all types of information as


bits
Ways to move lots of bits everywhere,
cheaply, and with quality of service
» need to engineer computer networks to meet
these objectives

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

3
A rapidly changing scenario

Different networks for different services

Telephone networks Data Networks


(Circuit Switching) (Packet Switching)

CATV
(Wireline Broadcast)

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Circuit Switching

Circuit switching: to carry streams


» original telephone patent
» Needs/creates a temporary but exclusively
dedicated link between transmitter & receiver
» At the beginning a simple copper wire
» Then a fabric of copper wires manually switched
» Then many fabrics of copper wires
automatically switched
» Now, a mess of fabrics of copper/sylicon/radio/
I-red, slotted/unslotted wires automatically
switched

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

Nelle reti a commutazione di


circuito, la capacità
trasmissiva all’interno della
rete è assegnata per ciascuna
“chiamata”
» E’ definita una porzione di
capacità trasmissiva che è
allocata in modo esclusivo
per servire ciascuna
comunicazione
» È il modello dell’attuale
rete telefonica

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

CATV technology was born to


» Simplify TV broadcast over large & rural areas
» Increase the number of channel in spite of
UHF/VHF lmitations
» Provide better quality
» Offer pay-tv channels
It is a broadband, circuit based, system
Originally CATV was not a network

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Packet Switching

Packet switching: store-and-forward messages


» What if I use CS for connecting computers?
» Computers, when interact, do not speak always
–DB access
–Computations
–Web access
» Computers, when interact, mostly exchange
discrete, digital data and ask for remote
processing
» In a sense, computers interact asynchronously
» In a sense, computers usually exchange letters
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

7
Computer Communication

In Packet Switching, each data flow is divided in


packets. A packet is an entity with an header part
for its identification and management and a
payload part carrying the user data.
A network is composed of End Systems
(producing or receiving the data) and Network
Nodes (routing and controlling the data from the
sources to the destinations). Each Node stores the
incoming packets to forward them to the next
Node.
Header Payload

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

A rapidly changing scenario

Evolution in technology or what?

Smaller, smarter, cheaper End of monopolies


CPU More competition
Multiservice Terminals: Global markets
PC+TV+Phone+… Greed
More bandwidth
Cellular & Wireless networks

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

New technologies for a global infrastructure

Quite a large number of choices


Wireline technologies
xDSL
ATM
WDM
INTERNET
Wireless technologies as a
WLAN e WLL Global Network
Bluetooth
GPRS
UMTS

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

Anni ‘60 Mainframe e supercomputer

Anni ‘80 Home e Personal Computer

Anni ‘90 Reti di calcolatori

2000 - … Information Highways

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

L’evoluzione: …al “computing distribuito”

•• 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

Elementi costitutivi delle reti di calcolatori (1)

Alle estremità della rete si trovano


gli end-system o host
server workstation notebook
» sono calcolatori di vario tipo su cui
girano i programmi applicativi
» i programmi applicativi possono
essere progettati secondo due
modelli:
– Client-Server
Il client invia una richiesta
ed il server risponde (es.
WWW)
– Peer-to-peer
Le due entità comunicanti
si scambiano informazioni
in modo paritetico
(es. e-mule, skype)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

12
Inter-Process Communication

Computational models for distributed processing:

Client - Server

Tight coupling of processes

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Inter-Process Communication

Computational models for distributed processing:

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

Elementi costitutivi delle reti di calcolatori (2)

L’infrastruttura della rete è fatta


di: router
» apparati tra loro interconnessi
– hub, switch, bridge
– modem
– access point
– router
– …
» supporti trasmissivi che
realizzano le interconnessioni
– doppini in rame
– cavi coassiali
– fibre ottiche
– collegamenti radio punto-punto
– collegamenti satellitari
– …

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)

L’infrastruttura di rete si può dividere grossolanamente in:


• Reti di accesso
• Forniscono la connettività agli end-system
• Utilizzano svariate tecnologie:
– Rete telefonica tradizionale Tecnologie “Wired”
– Ethernet
– ATM
– X.25
– Frame Relay
Tecnologie “Wireless”
– WLAN
– GPRS
– UMTS

• 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

Struttura delle reti di calcolatori (2)

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

La natura discontinua della trasmissione di dati digitali


può essere sfruttata per far sì che flussi di dati differenti
possano condividere la stessa connessione, a patto di
poterli distinguere
Questo principio è alla base della tecnica detta
“commutazione di pacchetto” (packet switching)

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Commutazione di Pacchetto (2)

Nel Packet Switching ciascun flusso di dati è diviso in


pacchetti, cioè in entità composte da:
» un’intestazione (header), utilizzata ai fini dell’identificazione e
gestione,
» i dati veri e propri (payload)

Header Payload

Una rete a commutazione di pacchetto è composta da:


» sistemi terminali (End System o host): producono o ricevono dati
» apparati che si occupano dell’instradamento dei pacchetti tra
sorgente e destinazione, detti nodi della rete (Network Nodes)
Ogni nodo memorizza i pacchetti in ingresso, per poi
instradarli verso il nodo successivo (store & forward)
I collegamenti fisici tra i nodi sono detti link

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

Commutazione di Pacchetto (4)

La Qualità del Servizio di una rete a commutazione di pacchetto è


misurata da una molteplicità di “indici di prestazione”
I più importanti sono:
» Ritardo nella consegna dei pacchetti [s]
» Throughput = quantità di bit al secondo che la rete è in grado di
trasferire tra due terminali [b/s]
» Probabilità che un pacchetto non venga consegnato a destinazione
» Differenza tra massimo e minimo ritardo (jitter)

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

Il ritardo nella consegna di un pacchetto alla destinazione è determinato


da:
» Tempo di elaborazione nel nodo:
– controllo di errori, determinazione link di uscita, …
» Tempo di trasmissione su ciascun link = Lunghezza in bit / velocità in bps
» Tempo di attesa nelle code dei router (variabile)
» Tempo di propagazione sulle linee = lunghezza della linea / velocità del segnale
transmission
A propagation

B
nodal
processing queueing

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Packet switching: reti a datagrammi

Ogni nodo che riceve un pacchetto decide in maniera


indipendente a quale altro nodo inoltrarlo, sulla base
dell’indirizzo destinazione contenuto nel pacchetto
Pacchetti tra la stessa coppia sorgente-destinazione
possono seguire percorsi differenti

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

Ogni pacchetto contiene il numero del circuito virtuale


Il circuito virtuale è stabilito prima della trasmissione dei
dati
I nodi devono conservare informazioni sui circuiti virtuali
che li attraversano

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

Datagrammi vs circuiti virtuali

Proprietà datagrammi circuiti virtuali


Creazione del circuito Non richiesta ☺ Richiesta
Ogni pacchetto contiene
Ogni pacchetto contiene un
Indirizzamento l’intero indirizzo della
numero di VC ☺
sorgente e della destinazione
Informazioni sullo I nodi di rete non mantengono Ogni VC richiede uno
stato informazioni sullo stato ☺ spazio di memoria sui nodi
Percorso pre-calcolato:
Ogni pacchetto è instradato
Instradamento ogni pacchetto segue
indipendentemente
questo percorso ☺
Nessuno (solo i pacchetti Tutti i VC che attraversano
Effetti di guasti ai nodi
persi durante il guasto) ☺ quel nodo sono chiusi
Semplice se possiamo
Controllo di
Complicato allocare spazio sufficiente
congestione per ogni VC ☺
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

• Gli esempi presentati non sono mutuamente esclusivi


• Nella maggior parte dei casi, soluzioni architetturali
differenti coesistono in un singolo sistema distribuito
complesso
• L’esempio per eccellenza: Internet

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Le reti di calcolatori: gestire la complessità

La comunicazione tra computer richiede soluzioni


tecniche complesse riguardanti una serie di problemi:
» Ricezione e Trasmissione fisica
» Controllo degli errori
» Controllo di flusso
» Conversione dei dati
» Crittografia e sicurezza
» Sincronizzazione
Un approccio logico è quello di analizzare tali
problematiche singolarmente:
“Divide et Impera”
Nelle reti di calcolatori questo ha condotto
a modelli “a strati”
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

Modelli a strati: perché


Come vedremo, la suddivisione delle funzionalità secondo
un modello a strati agevola la gestione della complessità
Ciascuno strato (o livello):
» è responsabile di un sottoinsieme definito e limitato di compiti
» funziona indipendentemente dagli altri
» interagisce solo con gli strati immediatamente superiore ed inferiore
» fa affidamento sui “servizi” forniti dallo strato immediatamente
inferiore
» fornisce “servizi” allo strato immediatamente superiore
Alcuni strati sono realizzati in software altri in hardware
Vantaggi:
» l’indipendenza tra gli strati consente la sostituzione di uno strato
con un altro di pari livello che offra i medesimi servizi allo strato
superiore
» limitare le funzionalità di uno strato ne semplifica la realizzazione
Svantaggi:
» L’eccessivo numero di strati puòDipartimento
portaredi Informatica
ad inefficienze
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 e Sistemistica, Università di Napoli Federico II

23
Modelli a strati: interfacce

All’interno di ciascun dispositivo di rete, lo scambio di


informazioni tra due strati adiacenti avviene attraverso una
interfaccia, che definisce i servizi offerti dallo strato inferiore
allo strato superiore

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

Modelli a strati: protocolli

Lo strato n-esimo di un dispositivo comunica con lo


strato n-esimo di un’altra entità secondo un protocollo
assegnato

Strato n+1 Strato n+1


protocollo
Strato n Strato n

Strato n-1 Strato n-1

Strato n-2 Strato n-2

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

• Per protocollo di comunicazione si intende un insieme di regole


che permette la corretta instaurazione, mantenimento e
terminazione di una comunicazione di qualsiasi tipo tra due o più
entità
• Un protocollo di comunicazione definisce il formato e l’ordine
dello scambio di messaggi tra le entità comunicanti
• Nelle reti di calcolatori, un protocollo regola la comunicazione tra
entità di pari livello esistenti in due dispositivi della rete tra loro
comunicanti
• Nell'ambito delle reti di computer un notevole sforzo è stato
compiuto per definire protocolli standard, allo scopo di consentire
l’integrazione di reti differenti

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Protocolli: un esempio

Un confronto tra un protocollo tra persone ed un


protocollo per la comunicazione tra computer

Buongiorno TCP connection


req.
Buongiorno
TCP connection
reply
Che ora è ?
GET http://www.unina.it/index.html
Sono le 2:00
<file>
tempo

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

25
“Imbustamento” dei messaggi

In trasmissione, ogni strato antepone una intestazione (header) al


messaggio ricevuto dallo strato soprastante
» Paragone con la busta di una lettera
L’insieme messaggio+header viene passato allo strato sottostante
A destinazione il messaggio risale la pila
In ricezione, ad ogni strato l’header viene rimosso

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 = Service Access Point


SDU del livello n
SDU = Service Data Unit

SAP
del livello n

Strato n+1

Strato n

Strato n-1 SDU del livello n-1

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

26
PDU

PDU = Protocol Data Unit


PDU del livello n

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

Il modello OSI (1)

• Negli anni ’80 l’ ISO, International Standards Organization, ha definito


un modello di riferimento per reti di calcolatori a commutazione di
pacchetto: il modello OSI, Open System Interconnection
• Il modello OSI è un modello a strati su 7 livelli:
» Applicazione
» Presentazione
» Sessione
» Trasporto
» Rete
» Data link
» Fisico
• Il modello OSI non è risultato vincente, a causa della sua eccessiva
complessità

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

OSI: Open Systems Interconnection


Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Dispositivi di rete e livelli

L’intera pila di livelli è realizzata negli end system


I dispositivi di rete si differenziano per il numero di livelli fino a cui
operano
» Fino a L1operano i ripetitori
» Fino a L2 operano i bridge / switch di rete locale
» Fino a L3 operano i router
End System A End System B
L7 L7
L6 L6
L5 L5
L4 Intermediate System L4
L3 L3 L3
L2 L2 L2
L1 L1 L1
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

28
Livello 1: Fisico

• Si occupa di trasmettere sequenze binarie sul canale di


comunicazione
• A questo livello si specificano:
• Caratteristiche elettriche dei segnali
• Tecniche di codifica/decodifica
• Caratteristiche dei mezzi trasmissivi
• Tipi di connettori
• Il livello fisico è nel dominio dell'ingegneria elettronica:
descrizione elettrico/meccanica dell’interfaccia

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

Livello 2: Data Link

Ha come scopo la trasmissione affidabile di pacchetti di dati (frame)


» Affidabile nel senso di “garanzia di inoltro”
Accetta come input i frame (tipicamente poche centinaia di byte) e li
trasmette sequenzialmente
Verifica la presenza di errori di trasmissione aggiungendo delle
informazioni aggiuntive di controllo
» Frame Control Sequence, FCS
Può gestire meccanismi di correzione di errori tramite ritrasmissione

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

Questo livello gestisce l'instradamento dei messaggi


Determina quali sistemi intermedi devono essere attraversati da un
messaggio per giungere a destinazione
Il livello 3 gestisce, quindi, delle tabelle di instradamento per
ottimizzare il traffico sulla rete

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Livello 4: Trasporto

Fornisce servizi per il trasferimento dei dati da terminale a


terminale (ovvero end-to-end), indipendentemente dalla
rete sottostante
In particolare il livello 4 può:
» frammentare i pacchetti in modo che abbiano dimensioni idonee
al livello 3
» rilevare/correggere gli errori
» controllare il flusso
» controllare le congestioni

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

30
Livello 5: Sessione

Il livello 5 è responsabile dell'organizzazione del dialogo e della


sincronizzazione tra due programmi applicativi e del conseguente
scambio di dati
Si occupa cioè di stabilire la sessione

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Livello 6: Presentazione

Il livello di presentazione gestisce la sintassi dell'informazione da


trasferire

L’informazione è infatti rappresentata in modi diversi su elaboratori


diversi (es. ASCII o EBCDIC)

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

É il livello dei programmi applicativi, cioè di quei programmi


appartenenti al sistema operativo o scritti dagli utenti, attraverso i quali
l'utente finale utilizza la rete
Esempi di applicazioni previste dall’OSI sono:
» VT: Virtual Terminal, connessione interattiva ad un elaboratore
remoto
» FTAM: File Transfer and Access Management
» X.400: Posta Elettronica
» X.500: Directory Service
Nel mondo Internet, le applicazioni sono: Posta Elettronica, WWW,
FTP, ecc…

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Internet: Origini ed Evoluzione

Internet nasce come interconnessione di diverse reti di


carattere sperimentale
Prime attività di rilievo come sperimentazione di reti a
commutazione di pacchetto finanziate per scopi militari
(Department of Defence – DoD, tramite Defence
Advanced Research Projects Agency – DARPA)
ARPANET: Rete sperimentale basata su Interface
Message Processors (IMP) con meccanismi Store-and-
Forward
Approccio Datagram per garantire la sopravvivenza in
caso di eliminazione di nodi e linee

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

32
Internet: Origini ed Evoluzione

Un primo gruppo di Università crea un nucleo di rete per


sperimentare applicazioni (1969-72)
» Collegamenti da 56 kbps
Le sperimentazioni mostrano l’inadeguatezza dei
protocolli ARPANET per differenti architetture
» Esigenza di protocolli per “internetworks”
V. Cerf e R. Kahn progettano la suite TCP-IP (1974)
BBN e UCB vengono finanziate per inserire TCP-IP in
Unix BSD
Quattro fattori di successo: PDP/Vax, LAN, TCP-IP, Unix

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Internet: Origini ed Evoluzione

1984: la parte militare di ARPANET si separa (MILNET)


1986: La National Science Foundation (NSF) finanzia lo
sviluppo di una rete basata su TCP-IP (NSFNET)
» NSFNET ha una struttura gerarchica: una dorsale ad alta velocità
ed una serie di reti regionali
» Collegamenti da 56 Kbps a T1 (1,544 Mbps)
1989: ARPANET è smantellata
1990: NSF smette di finanziare la rete e cede la struttura
ad una organizzazione non-profit
» Nasce Advanced Network and Services (ANS), una organizzazione
fondata da Merit, IBM ed MCI
» Collegamenti da T1 a T3 (45 Mbps)
1995: NSFNET è smantellata
» Nascono i Network Access Point (NAP) per interconnettere varie
reti commerciali
Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

33
Internet: architettura della rete

• Una architettura completa, dai servizi alle applicazioni


• È di dominio pubblico e di diffusione enorme
• In evoluzione con i requisiti degli utenti
• Gestita da specifici organismi
– Internet Society (ISOC): IETF, IRTF
• I protocolli in uso sono standardizzati mediante documenti
approvati dall’IETF: le “Request for Comments” (RFC):
– Informational e Standard Track
• Opera su tecnologie di rete standard e non
– SLIP, PPP, Dialup
– LAN 802.X, FDDI
– X.25, FR, ATM, SMDS

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Internet: architettura della rete

La rete è progettata secondo un modello a datagram


L’informazione viaggia in pacchetti (datagram) che
vengono trattati dalla rete indipendentemente l’uno dagli
altri
Ogni terminale è univocamente individuato da un indirizzo
associato alla interfaccia che lo collega alla rete
Ogni pacchetto contiene l’indirizzo del mittente e l’indirizzo
del destinatario
L’infrastruttura della rete è costituita dai router che hanno
il compito di instradare i pacchetti e consegnarli a
destinazione
Non c’è garanzia che un pacchetto venga realmente
consegnato a destinazione
» I pacchetti possono andare persi nella rete
» I pacchetti possono seguire percorsi diversi ed arrivare in un ordine
diverso da quello con cui sono stati
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
trasmessi
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

L’accesso ad Internet avviene per


mezzo di un fornitore di servizi o
Internet Service Provider, ISP ISP
Gli ISP sono collegati tra loro locale
secondo una struttura gerarchica ISP nazionale
» ISP locali
NBP B
» ISP nazionali
Gli ISP nazionali si collegano a NAP NAP
fornitori di connettività
internazionali: i Network Backbone NBP A
Provider (NBP)
ISP nazionale
» BBN/GTE, Sprint, UUNet
ISP
Gli NBP sono tra loro collegati in locale
punti di interscambio detti NAP,
Network Access Point

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 ad Internet di LAN aziendali

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

• Esistono degli Internet Service Provider commerciali che


operano a livello nazionale fornendo la connessione ad
Internet a privati ed aziende
– Telecom Italia Net (TIN)
– Infostrada
– FastWeb
• Esistono anche molti medi e piccoli ISP che operano su
scala locale

Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

La rete GARR-B

L’accesso ad Internet per le Università è gestito dal GARR


Gruppo
Armonizzazione
Reti
di Ricerca

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

Chi regolamenta Internet

La standardizzazione dei protocolli in


uso su Internet è fatta
dall’Internet Engineering Task Force,
IETF
L’assegnazione degli indirizzi e dei nomi
di dominio è oggi supervisionata dall’
Internet Corporation for Assigned Names
and Numbers, ICANN, che ha preso il
posto dell’ Internet Assigned Numbers
Authority, IANA, una authority federale
degli 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

• Internet si basa su un modello definito da una collezione di protocolli


standardizzati dall’IETF, il modello TCP/IP
• Siccome i protocolli sono organizzati secondo una struttura a pila (stack), si
parla dello “stack TCP/IP”
• Il modello prende il nome da due protocolli fondamentali:
• TCP, Transmission Control Protocol, di livello Trasporto
• IP, Internet Protocol, di livello Rete

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

Corso di Reti di Calcolatori

Il livello Trasporto:
L’interfaccia Socket

Giorgio Ventre
Università di Napoli Federico II

SOCKET: cosa sono? (1)

•Le socket rappresentano un’astrazione di canale di


comunicazione tra processi.
•Attraverso di esse un’applicazione può ricevere o
trasmettere dati.
•I meccanismi restano (quasi) indipendenti dal supporto
fisico su cui le informazioni viaggiano.
•Esse originariamente apparvero nella versione 4.1cBSD
di Unix, sviluppate a Berkeley nei primi anni 80.

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
SOCKET: cosa sono? (2)

•Si presentano sotto la forma di un’API (Application


Programming Interface), cioè un insieme di funzioni
scritte in C, che le applicazioni possono invocare per
ricevere il servizio desiderato.
•Questa API è poi divenuta uno standard de facto, ed
oggi è diffusa nell’ambito di tutti i maggiori sistemi
operativi (Linux, FreeBSD, Solaris, Windows… etc.).

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.

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Caso d’
d’uso: comunicazione remota via TCP/IP

Host1 Host2

Applicazione Applicazione •Anche due


socket socket
applicazioni situate
su macchine distinte
possono scambiare
informazioni secondo
Transport (TCP) Transport (TCP) gli stessi meccanismi.
Network (IP) Network (IP)
Data-Link Data-Link •Così funzionano
Physical Physical telnet, ftp, ICQ,
Napster.

Network
Network

Il problema della connessione

•Nel momento in cui una entità decide di instaurare una


comunicazione con un’ entità paritaria, come assicurarsi
che quest’ultima sia disponibile?
•La chiamata telefonica:
telefonica chi desidera instaurare la comunicazione
compone il numero del destinatario e attende durante il segnale di
chiamata. Dall’altro lato uno squillo avverte di una chiamata in arrivo.
Se si è disponibili alla comunicazione (si è in casa, si può ascoltare lo
squillo e non si è sotto la doccia) si alza la cornetta. Lo squillo dal lato
del chiamante termina. Da questo momento in poi la chiamata è
instaurata e diviene simmetrica: chiunque può parlare quando vuole.

•E’ necessario che il chiamante conosca l’indirizzo del


chiamato e che il chiamato sia in attesa di eventuali
comunicazioni.

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Il paradigma Client-Server (C/S)

•Il chiamato è il server:


server
•deve aver divulgato il proprio indirizzo
•resta in attesa di chiamate
•in genere viene contattato per fornire un servizio
•Il chiamante è il client:
client
•conosce l’indirizzo del partner
•prende l’iniziativa di comunicare
•usufruisce dei servizi messi a disposizione dal
server
7

Il concetto di indirizzo

•Una comunicazione può essere identificata attraverso


la quintupla:
{protocol, local-addr, local-process, foreign-addr, foreign-process}

•Una coppia {addr, process} identifica univocamente un


terminale di comunicazione (end-point).
•Nel mondo IP, ad esempio:
•local-addr e foreign-addr rappresentano indirizzi IP
•local-process e foreign-process rappresentano
numeri di porto

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Server concorrente e iterativo

•Un server può ricevere chiamate anche da più client diversi.


•Ogni comunicazione richiederà un certo tempo prima di potersi
considerare conclusa.
E se una chiamata arriva mentre il server è già impegnato in una
comunicazione?
•Un server che accetti più comunicazioni contemporaneamente si definisce
concorrente.
•Un server che accetti una sola comunicazione alla volta è detto iterativo.
•In questo ultimo caso una richiesta può essere servita solo quando la
precedente si è già conclusa.
•Questo è il paradigma applicato nel modello di comunicazione telefonica di
base.
•E l’avviso di chiamata?…

Il paradigma“Connection-Oriented”

•In una comunicazione dati Connection-Oriented, i due end-point


dispongono di un canale di comunicazione che:
•trasporta flussi
•è affidabile
•è dedicato
•preserva l’ordine delle informazioni
•Il canale si comporta cioè come una sorta di “tubo”: tutto quello
che viene inserito al suo interno, arriverà inalterato dall’altro lato e
nello stesso ordine con cui è stato immesso.
•Non è detto che vengano però mantenuti i limiti dei messaggi.
•La comunicazione telefonica è più simile ad una comunicazione
connection-oriented.
10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Il paradigma di comunicazione “Datagram”

•In una comunicazione Datagram (anche detta


connectionless), il canale
•trasporta messaggi
•non è affidabile
•è condiviso
•non preserva l’ordine delle informazioni
•Se si inviano dieci messaggi dall’altro lato essi possono anche
arrivare mescolati tra di loro e tra i messaggi appartenenti ad altre
comunicazioni. I limiti dei messaggi vengono comunque preservati.
•La posta ordinaria è un esempio di comunicazione a datagramma.

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

• Le socket che utilizzano i protocolli Internet sfruttano rispettivamente TCP (Transmission


Control Protocol) e UDP (User Datagram Protocol) per implementare le due tipologie di
comunicazione. In entrambi i casi il protocollo di livello inferiore è IP (che è un protocollo
datagram).

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Comunicazione Connection-Oriented

Server
socket()

bind()

listen() Client
socket()
accept()
ent connect()
Wait for connection establishm
Connection

Data (request) write()


read()

Process request

write() Data (reply)


read()
13

Comunicazione Datagram

Server
socket()

bind()
Client
socket()
recvfrom()

bind()
Blocks waiting for data
Data (request) sendto()

Process request

Data (reply)
write() recvfrom()

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Strutture dati socket: il trattamento indirizzi (1)

<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

Strutture dati socket: il trattamento indirizzi (2)

struct sockaddr_in struct sockaddr_un


family family
2-byte port
4-byte
netID,hostID pathname
(up to 108 bytes)

(unused)

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
La system-call socket()

• Questa system-call serve ad instanziare un nuovo descrittore di socket.


• Esso verrà utilizzato in tutte le successive chiamate

#include <sys/types.h>
#include <sys/socket.h>

int socket(int family, int type, int protocol);

• family può essere: AF_UNIX, AF_INET…


• type può essere: SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET,
SOCK_RDM.
• protocol indica il protocollo utilizzato.
• il valore restituito è un descrittore di socket (di tipo int secondo lo stile Unix).
• Della quintupla, dopo la chiamata socket(), resta specificato solo il primo
campo:
{protocol, local-addr, local-process, foreign-addr, foreign-process}

17

La system-call bind() (1)

• Questa system-call serve ad assegnare un indirizzo locale (name) ad una


socket.

#include <sys/types.h>
#include <sys/socket.h>

int bind(int sockfd, struct sockaddr *myaddr, int addrlen);

• sockfd è il descrittore di socket restituito da socket().


• myaddr punta ad un generico indirizzo, mentre addrlen è la lunghezza di
quest’ultimo.
• il valore restituito è indicativo del successo dell’operazione.
• Della quintupla, dopo la chiamata bind(), restano specificati il secondo ed il
terzo campo, cioè gli estremi locali della comunicazione:

{protocol, local-addr, local-process, foreign-addr, foreign-process}

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
La system-call bind() (2)

• Essa può essere invocata in una molteplicità di casi:

• un server vuole registrare i suoi estremi (già divulgati


precedentemente) presso il sistema sul quale si trova. In questo
modo è come se dicesse:- “Questo è il mio indirizzo e tutti i
messaggi inviati ad esso devono essere consegnati a me”.
• Ciò accade sia per i server connection-oriented che per quelli
connectionless.
• un client vuole registrare uno specifico indirizzo per se stesso.
• un client connectionless vuole assicurarsi uno specifico indirizzo
poiché è solo attraverso di esso che può essere raggiunto da un
server al quale aveva in precedenza inoltrato una richiesta.

• Può restituire una condizione di errore, per esempio, se


l’indirizzo al quale si desidera “legarsi” risulta già occupato.

19

La system-call connect() (1)

• Attraverso la chiamata connect(), subito dopo una chiamata socket(), un


processo client stabilisce una connessione con un server.

#include <sys/types.h>
#include <sys/socket.h>

int connect(int sockfd, struct sockaddr *servaddr, int addrlen);

• sockfd è il descrittore di socket restituito da socket().


• servaddr punta all’indirizzo (generico) del server, e addrlen è sempre la lunghezza
di quest’ultimo.
• il valore restituito è indicativo del successo dell’operazione.
• Della quintupla, dopo la chiamata connect(), restano specificati tutti i campi relativi
agli indirizzi:

{protocol, local-addr, local-process, foreign-addr, foreign-process}

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
La system-call connect() (2)

• Per le comunicazioni connection-oriented, la chiamata connect() scatena


una fase di segnalazione tra il client ed il server intesa a stabilire realmente
la connessione, ed a concordare una serie di parametri che la
caratterizzano. In questo caso la connect() è bloccante e non ritorna se
non dopo aver instaurato la connessione (o, eventualmente, con una
condizione di errore).
• Un client non deve necessariamente realizzare una chiamata a bind()
prima della connect(), poiché è il sistema che assegna automaticamente
un indirizzo valido tra quelli disponibili. Questo è il motivo per cui tutta la
quintupla risulterà valorizzata dopo una chiamata a connect().
• Per un client connectionless c’è ancora la possibilità di invocare la chiamata
connect(). In questo caso, però, il server non viene realmente contattato
(potrebbe anche non essere attivo), ma si produce semplicemente la
memorizzazione locale dell’indirizzo del server con la conseguenza che:
• ogni successivo messaggio scritto sulla socket sarà diretto a quel server;
• ogni messaggio ricevuto sulla socket verrà accettato solo se proveniente da quel
server.

21

La system-call listen()

• Attraverso la chiamata listen(), un server manifesta la sua volontà di


apprestarsi a ricevere connessioni.
• Generalmente si esegue dopo socket() e bind() e prima di accept().

#include <sys/types.h>
#include <sys/socket.h>

int listen(int sockfd, int qlen);

• sockfd è il descrittore di socket restituito da socket().


• qlen indica quante richieste di connessione possono essere accodate dal sistema
in attesa di essere servite. Il massimo è 5.
• il valore restituito è indicativo del successo dell’operazione.

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
La system-call accept() (1)

• Dopo la chiamata listen(), un server si mette realmente in attesa di


connessioni attraverso una chiamata ad accept().

#include <sys/types.h>
#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *peer, int *addrlen);

• sockfd è il descrittore di socket restituito da socket().


• peer e addrlen sono parametri di ingresso-uscita:
• prima dell’ accept(), devono essere impostati coerentemente con le caratteristiche delle
strutture dati allocate.
• dopo l’accept(), contengono l’indirizzo del client di cui si è accettata la connessione,
con la sua lunghezza (minore o uguale a quella preimpostata).

23

La system-call accept() (2)

• accept() preleva la prima richiesta di connessione dalla coda e crea


una nuova socket avente le stesse proprietà di sockfd, supponendo
implicitamente che il servente sia concorrente.
• Se la coda è vuota la chiamata è invece bloccante.
• accept() restituisce fino a tre valori:
• se è andata a buon fine restituisce
• il nuovo descrittore di socket;
• l’indirizzo del client di cui si è accettata la connessione;
• la sua lunghezza dell’indirizzo.
• se non è andata a buon fine
• il codice relativo all’errore verificatosi.

24

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Es.: accept() in un server concorrente.

int sockfd, newsockfd; •Dopo l’accept() il


descrittore newsockfd ha la
if ( (sockfd = socket( … ) ) < 0 ) quintupla tutta impostata, ed
err_sys(“socket error”);
if ( bind(sockfd, … ) < 0 )
è pronto ad essere utilizzato.
err_sys(“bind error”); •sockfd, invece, continua
if ( listen(sockfd, 5) < 0 )
err_sys(“listen error”);
ad avere impostati solo i
primi tre campi e può essere
for ( ; ; ) { usato per accettare le altre
newsockfd = accept(sockfd, … ); /* blocks */ connessioni, senza la
if (newsockfd < 0) {
necessità di istanziare, per
err_sys(“accept errror”);
questo, una nuova socket.
if (fork() == 0) {
close(sockfd); /* child */
doit(newsockfd); /* process the request */
close(newsockfd);
exit(0);
}

close(newsockfd); /* parent */
}

25

Es.: accept() in un server iterativo.

int sockfd, newsockfd;

if ( (sockfd = socket( … ) ) < 0 )


err_sys(“socket error”);
if ( bind(sockfd, … ) < 0 )
err_sys(“bind error”);
if ( listen(sockfd, 5) < 0 )
err_sys(“listen error”);

for ( ; ; ) {
newsockfd = accept(sockfd, … ); /* blocks */
if (newsockfd < 0) {
err_sys(“accept errror”);

doit(newsockfd); /* process the request */


close(newsockfd);
}

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Ricevere ed inviare i dati
• Una volta utilizzate le precedenti chiamate, la
“connessione” è stata predisposta.
• La quintupla risulta completamente impostata.
• A questo punto chiunque può inviare o ricevere dati.
• Per questo, è necessario aver concordato un
protocollo comune.
• Per esempio, nella comunicazione telefonica, il chiamato parla per primo e risponde:-
“Pronto, chi è?”, e quindi il chiamante fornisce la propria identità.

27

Le system-
system-call send()
send() e sendto()
sendto()

• send() e sendto() si utilizzano per inviare dati verso l’altro terminale di


comunicazione.

int send(int sockfd, char *buff, int nbytes, int flags);


int sendto(int sockfd, char *buff, int nbytes, int flags,
struct sockaddr *to, int addrlen);

• sockfd è il descrittore restituito dalla chiamata socket().


• buff punta all’inizio dell’area di memoria contenente i dati da inviare.
• nbytes indica la lunghezza in bytes del buffer, e quindi, il numero di bytes da
inviare.
• to e addrlen indicano l’indirizzo del destinatario, con la sua lunghezza.
• flags abilita particolari opzioni. In generale è pari a 0.
• entrambe restituiscono il numero di bytes effettivamente inviati.

28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Le system-
system-call recv()
recv() e recvfrom()
recvfrom()

• recv() e recvfrom() si utilizzano per ricevere dati dall’altro terminale di


comunicazione.

int recv(int sockfd, char *buff, int nbytes, int flags);


int recvfrom(int sockfd, char *buff, int nbytes, int flags,
struct sockaddr *from, int *addrlen);

• sockfd è il descrittore restituito dalla chiamata socket().


• buff punta all’inizio dell’area di memoria in cui devono essere ricopiati i dati
ricevuti.
• nbytes è un parametro di ingresso che indica la lunghezza del buffer.
• from e addrlen contengono, dopo la chiamata, l’indirizzo del mittente con la sua
lunghezza.
• flags abilita particolari opzioni. In generale è pari a 0.
• entrambe restituiscono il numero di bytes ricevuti (minore o uguale a nbytes).
• in assenza di dati da leggere, la chiamata è bloccante.

29

La system-
system-call close()
close()

• Chiude una socket e rilascia le risorse ad essa associate.

int close(int fd);

• in seguito a questa chiamata, eventuali dati pendenti, vengono inviati al


destinatario prima che la socket venga chiusa.

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Il marshalling dei parametri (1)

• Quando si invia un dato sulla rete, in generale, nulla si può


ipotizzare sulla architettura dell’host ricevente.
• E’ necessario quindi che i dati in transito siano codificati
secondo una convenzione standard.
• Con il termine marshalling si intende la traduzione di
un’informazione in un formato prefissato e comprensibile
universalmente.
• L’operazione inversa è detta un-marshalling.
• E’ un’operazione tipica del sesto livello della pila OSI
(presentazione) il cui intento è di assicurare portabilità ad un
programma.

• Se, ad esempio, l’host trasmittente è dotato di un processore Intel (little- endian)


e l’host ricevente è dotato invece di un processore Motorola (big-endian), lo
scambio tra questi non può avvenire senza uniformare le convenzioni sulla
codifica dei dati.

31

Il marshalling dei parametri (2)

• Una serie di funzioni è stata prevista, nell’ambito della comunicazione


su Internet, proprio a questo scopo.
• Vanno sotto il nome di Byte Ordering Routines.
• Sui sistemi che adottano la stessa convenzione fissata per Internet,
queste routines sono implementate come “null-macros” (funzioni
‘vuote’).

#include <sys/types.h>
#include <netinet/in.h>

u_long htonl(u_long hostlong); /* host to net long */


u_short htons(u_short hostshort); /* host to net short */
u_long ntohl(u_long netlong); /* net to host long */
u_short ntohs(u_short netshort); /* net to host short */

• E’ implicito in queste funzioni che uno short occupi 16 bit e un long ne occupi
32.

32

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Operazioni sui buffer (1)
• Le classiche funzioni standard del C per operare sulle stringhe
(strcpy(), strcmp(), etc.) non sono adatte per operare sui
buffer di trasmissione e ricezione.
• Esse infatti ipotizzano che ogni stringa sia terminata dal
carattere null e, di conseguenza, non contenga caratteri
null.
• Ciò non può essere considerato vero per i dati che si
trasmettono e che si ricevono sulle socket.
• E’ stato necessario quindi prevedere altre funzioni per le
operazioni sui buffer.

33

Operazioni sui buffer (2)


bcopy(char *src, char *dest, int nbytes);
bzero(char *dest, int nbytes);
int bcmp(char *ptr1, char *ptr2, int nbytes);

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
Conversione di indirizzi

• Poiché spesso nel mondo Internet gli indirizzi vengono espressi


in notazione dotted-decimal (p.es. 192.168.1.1), sono state
previste due routine per la conversione tra questo formato e il
formato in_addr.

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

unsigned long inet_addr(char *ptr);


char *inet_ntoa(struct in_addr inaddr);

• inet_addr() converte una stringa (C-style) dalla notazione


dotted-decimal alla notazione in_addr (che è un intero a 32
bit).
• inet_ntoa() effettua la conversione opposta.

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Le funzioni del livello rete

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

Le funzioni del livello rete


• Le reti possono essere classificate a seconda del
metodo utilizzato per trasportare i pacchetti dalla
sorgente alla destinazione:
• Reti a datagrammi
ogni pacchetto è instradato indipendentemente dagli altri
pacchetti dello stesso flusso
• Reti a circuiti virtuali
viene precalcolato un percorso e tutti i pacchetti del flusso
seguono questo percorso
• NB: parliamo comunque di reti a commutazione di
pacchetto!

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Reti a datagrammi
• Ogni router che riceve un pacchetto decide indipendentemente
a chi mandarlo sulla base dell’indirizzo destinazione contenuto
nel pacchetto
• Pacchetti tra la stessa coppia sorgente-destinazione possono
seguire percorsi differenti

application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical

Reti a circuiti virtuali


• Ogni pacchetto contiene il numero del circuito virtuale
• Il circuito virtuale è stabilito prima della trasmissione dei dati
• I nodi devono conservare informazioni sui circuiti virtuali che li
attraversano

application application
transport transport
network 1. Send data
data link 2. Receive data network
data link
physical physical

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Lo strato di rete di Internet

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Il datagramma IP

• Un pacchetto IP è anche chiamato datagramma


• È costituito da un header e un’area dati
• I datagrammi possono avere dimensioni diverse
• La dimensione dell’header è solitamente fissata (20
byte) a meno che non siano presenti opzioni
• Un datagramma può contenere fino a un massimo di
65535 byte (216 – 1)

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Formato del pacchetto IP

11

Formato del pacchetto IP


• Version
• Versione del protocollo IP cui il pacchetto è conforme
• IP header length (IHL)
• Lunghezza dell'header, in multipli di 32 bit
• Type-of-Service (ToS)
• Specifica come un protocollo di livello superiore vorrebbe
che il pacchetto fosse trattato
• Total length
• Specifica la lunghezza in byte dell’intero pacchetto (header +
dati)
• …max 64kB

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Formato del pacchetto IP
• Time-to-live (TTL)
• Contatore che viene gradualmente decrementato fino a
zero, punto in cui il pacchetto viene scartato. Serve ad
evitare che un pacchetto resti perennemente in circolo
• Protocol
• Indica il protocollo di livello superiore che riceve il pacchetto
dopo che l’elaborazione IP è terminata
• Header checksum
• Aiuta a garantire l’integrità dell’header IP
• Source Address
• Specifica il nodo mittente

13

Formato del pacchetto IP


• Destination Address
• Specifica il nodo ricevente
• Identification
• I pacchetti possono essere frammentati lungo il percorso
• Questo campo è un identificativo del datagramma
• Flags
• Il bit D indica se il pacchetto può essere frammentato
• Il bit M indica se il pacchetto è l’ultimo frammento
• Fragment offset
• Identifica la posizione del frammento all’interno del
pacchetto

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Frammentazione e riassemblaggio IP

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
IP è consegna Best effort

• IP non garantisce di prevenire:


• Datagrammi duplicati
• Consegna ritardata o fuori ordine
• Corruzione di dati
• Perdita di pacchetti
• La consegna affidabile dei pacchetti può avvenire
grazie a meccanismi di controllo da parte di protocolli
di livello superiore

17

Sistema di numerazione decimale (cenni)

• La base è 10. Questo vuol dire che:


• Utilizza 10 simboli (le cifre da 0 a 9)
• Ogni cifra è pesata secondo una potenza di 10 con
esponente crescente da destra verso sinistra
• es.
(2536)10 = 2*103 + 5*102 + 3*101 + 6*100

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Sistema di numerazione binaria (cenni)

• La base è 2. Questo vuol dire che:


• Utilizza 2 simboli (le cifre 0 e 1)
• Ogni cifra è pesata secondo una potenza di 2 con
esponente crescente da destra verso sinistra
• es.
(11010)2 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = (26)10
• Abbiamo così visto anche il modo per convertire un
numero da base 2 a base 10

19

Sistema di numerazione esadecimale (cenni)

• La base è 16. Questo vuol dire che:


• Utilizza 16 simboli (le cifre da 0 a 9 e le lettere da A a F)
• Ogni cifra è pesata secondo una potenza di 16 con
esponente crescente da destra verso sinistra
• es.
(1E5)16 = 1*162 + 14*161 + 5*160 = (485)10
• Abbiamo così visto anche il modo per convertire un
numero da base 16 a base 10

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Conversione da decimale (cenni)

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

Relazione tra numeri binari ed esadecimali

• Una stringa di 4 bit può assumere 24=16 diversi valori


• Se ogni stringa la consideriamo un numero binario,
essa rappresenta un numero compreso tra 0 e 15
• In base 16 abbiamo 16 cifre che assumono un valore
compreso tra 0 e 15

• 1 cifra esadecimale “rappresenta” 4 cifre decimali


(11001001)2
• es. (201)10
(C9)16

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Indirizzi IP
• Ad ogni host è assegnato un indirizzo IP o indirizzo
Internet
• È un numero di 32 bit = 4 byte
• Unico in tutta Internet
• Ogni indirizzo IP è diviso in un prefisso e un suffisso
• Il prefisso indica la rete alla quale l’host è collegato
• Due reti non possono avere lo stesso numero di rete
• Il suffisso identifica l’host all’interno della rete
• Due host sulla stessa rete non possono avere lo stesso suffisso, ma
host su reti diverse possono avere lo stesso suffisso

23

Chi assegna gli indirizzi IP?

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Indirizzi delle interfacce…

25

…indirizzi delle reti

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Tre router che interconnettono sei host

Domanda:
Quante sono
le reti?

27

Soluzione…
223.1.1.2
Come trovare le reti? 223.1.1.1 223.1.1.4

• ‘Staccare’ ogni 223.1.1.3


interfaccia dal
corrispondente 223.1.9.2 223.1.7.0
router/host
• creare “isole” costituite
da segmenti di rete 223.1.9.1
223.1.7.1
disgiunti 223.1.8.1 223.1.8.0

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Notazione dotted decimal
• La notazione dotted decimal rappresenta gli indirizzi
IP come 4 numeri decimali separati da punto
• Ogni numero decimale, in quanto rappresenta un byte,
è compreso tra 0 e 255

29

Classi di indirizzi

• La parte di indirizzo che specifica la rete e quella che


specifica l’host non hanno lunghezza fissa, ma variano
a seconda della classe a cui appartiene l’indirizzo
• Sono state definite 5 classi:
• 3 (A, B, C) sono usate per gli indirizzi degli host e si
differenziano per la lunghezza della parte rete/host
• 1 (D) è usata per il multicast
• 1 (E) è riservata per usi futuri

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Indirizzi di classe A

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Indirizzi di classe C

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
Indirizzi IP “speciali”
• Network address
• La rete stessa ha un indirizzo, il cui suffisso è costituito da
tutti ‘0’
• Nessun host può quindi avere tutti ‘0’ nel suffisso
• Directed broadcast address
• Per mandare un messaggio in broadcast ad una rete
• Il suffisso è costituito da tutti ‘1’
• Limited broadcast address
• Broadcast sulla LAN locale
• L’intero indirizzo è costituito da ‘1’: 255.255.255.255

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
Indirizzi IP
• La suddivisione degli indirizzi IP in classi non è
efficiente perché comporta lo spreco di indirizzi
• 32 bit ⇒ 232 ≈ 4 miliardi di indirizzi diversi, ma non tutti
vengono usati
• Rimedi:
• Indirizzi privati
• Sottoreti

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 19
Sottoreti
• Gli indirizzi IP sono assegnati in modo che tutti gli host sulla stessa rete
locale appartengono alla stessa sottorete
• Una sottorete è individuata dai bit del prefisso più alcuni bit presi in prestito
dal suffisso, come specificato dalla subnet mask
• Una subnet mask è una stringa di 32 bit associata ad ogni host:
• Gli ‘1’ definiscono la porzione di indirizzo che identifica la sottorete
• Gli ‘0’ definiscono la porzione di indirizzo che identifica l’host
• L’indirizzo della sottorete si ottiene mediante un AND bit a bit tra l’indirizzo
dell’host e la netmask
• Esempio: vogliamo utilizzare un unico indirizzo di classe B avendo diverse
reti fisiche. Se prendiamo in prestito 8 bit dal suffisso avremo a disposizione
256 sottoreti, ognuna delle quali potrà avere 254 host
• L’host 128.192.56.50 con netmask 255.255.255.0
appartiene alla sottorete 128.192.56.0

39

Sottoreti

40

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 20
Sottoreti: un esempio

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 21
Reti logiche e fisiche

11.2.0.0 11.2.0.1 11.2.0.2


11.2.0.254
Router
11.1.0.0 11.1.0.3 11.1.0.253 11.1.0.4

Bridge
11.1.0.0
11.1.0.1 11.1.0.2

43

Netmask

• Parametro che specifica il subnetting


• bit a 1 in corrispondenza dei campi network e
subnetwork
• bit a 0 in corrispondenza del campo host
• Esempio: si supponga di voler partizionare una
rete di classe B in 16 subnet da 4096 host
• Netmask 11111111 11111111 11110000 00000000
• Netmask esadecimale ff ff f0 00
• Netmask decimale 255.255.240.0

44

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 22
Subnet e reti fisiche

• IP assume una corrispondenza biunivoca tra


reti fisiche e subnet:

• routing implicito all’interno di una subnet

• Il routing tra subnet diverse è esplicito

• gestito dai router tramite tabelle di instradamento

45

Es: tabella di routing nell’host A

46

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 23
Es: tabella di routing nel router

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 24
Subnet: instradamento

• All’interno della subnet l’instradamento deve


essere fornito dalla rete fisica
• Corrispondenza tra gli indirizzi di subnet
(indirizzi IP) e gli indirizzi di livello 2 gestita da
ARP
• Indirizzi di livello 2
• Indirizzi MAC sulle LAN
• Indirizzi di DTE in X.25
• Identificatori di LCI in Frame Relay
• .........
49

Default Route

• Gli host devono conoscere almeno un router


presente sulla loro rete fisica
• Il protocollo ICMP permette di ottimizzare
dinamicamente il routing
• Ad esempio sull’host H4
• route add default 190.3.1.5

50

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 25
Tabelle di Instradamento

• L’instradamento tra subnet diverse viene gestito


da tabelle di instradamento presenti sui router
• Esempio:
• tabelle di instradamento del router R5
• 3 subnet non raggiungibili direttamente

Subnet di Destinazione Indirizzo del router


190.3.1.0 190.3.3.2
190.3.7.0 190.3.3.2
190.3.9.0 190.3.6.8

51

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 26
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Rete:
Routing - Fondamenti

Giorgio Ventre
Università di Napoli Federico II

Il ruolo dei livelli OSI

Dobbiamo Pavimentare Livello Fisico


le strade Cablaggio
Strutturato

Dobbiamo scegliere il tipo


Livello
di strada (Autostrada,
Data Link
Provinciale, Urbana,…)
Dobbiamo scegliere le indicazioni Livello Rete
della prossima rotonda

Dobbiamo scegliere Livello


come trasportare Trasporto

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Il livello rete nella pila OSI

Reti di calcolatori e grafi

Rete modellata come grafo:


• nodi = router
• archi = link fisici 5
• costo link: 3
B C
2 5
• ritardo,
• costo trasmissione, A 2 1 F
3
1
• congestione,… 2
D E
1
• Scelta del cammino:
• cammino a costo minimo
• altre possibilità (un cammino calcolato in base a specifici vincoli…)
• Gli algoritmi per la gestione di una rete sono basati sulla teoria
dei grafi
4

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Parametri del processo decisionale
• Bandwidth
• capacità di un link, tipicamente definita in bit per secondo (bps)
• Delay
• il tempo necessario per spedire un pacchetto da una sorgente ad una
destinazione
• Load
• una misura del carico di un link
• Reliability
• riferita, ad esempio, all’error rate di un link
• Hop count
• il numero di router da attraversare nel percorso dalla sorgente alla
destinazione
• Cost
• un valore arbitrario che definisce il costo di un link
• ad esempio, costruito come funzione di diversi parametri (tra cui
bandwidth, delay, packet loss, MTU,…)

Il processo di routing

• Il processo di routing è un processo decisionale


• Ogni entità che partecipa a questo processo:
• mantiene delle informazioni
• in base ad uno specifico algoritmo ed in funzione di
determinate metriche:
• definisce il procedimento di instradamento verso le
possibili destinazioni
• può spedire informazioni di aggiornamento alle altre
entità coinvolte, secondo diversi paradigmi

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Il routing e la funzione di un router
• La funzione principale di un router è quella di
determinare i percorsi che i pacchetti devono seguire
per arrivare a destinazione, partendo da una data
sorgente:
• ogni router si occupa, quindi, del processo di ricerca di un
percorso per l’instradamento di pacchetti tra due nodi
qualunque di una rete
• Problemi da risolvere:
• Quale sequenza di router deve essere attraversata?
• Esiste un percorso migliore (più breve, meno carico, …)?
• Cosa fare se un link si guasta ?
• Trovare una soluzione robusta e scalabile …
7

Un esempio di tabelle di routing

Dest Hops Next Dest Hops Next


A 1 x A 0 Network A
B 2 z B 1 y
C 1 z C 2 y

W
2
X Network A

1 3

Dest Hops Next 4 Dest Hops Next


Z Y
A 2 w A 1 x
B 1 y B 0 Network B
C 0 Network C C 1 z

Network C Network B

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Tecniche di routing
• Routing by Network Address
• ogni pacchetto contiene l’indirizzo del nodo destinatario, che
viene usato come chiave di accesso alle tabelle di
instradamento
• usato tipicamente nei protocolli non orientati alla
connessione:
• IPv4 e IPv6, bridge trasparenti, OSI CLNP, …
• Label Swapping
• ogni pacchetto è marcato con una label (etichetta) che:
• identifica la connessione
• viene usata come chiave per determinare l’instradamento
• generalmente usato nei protocolli orientati alla connessione:
• X.25, ATM, MPLS, …

Routing: reti a circuiti virtuali

• Viene aperta una connessione prima di inviare


dati

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Routing: reti a datagramma
• Non esiste la fase di call setup a livello rete
• Nei router non esiste il concetto di connessione
• I pacchetti sono indirizzati usando un ID di
destinazione:
• pacchetti fra la stessa coppia sorgerte-destinazione possono
seguire strade diverse

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Routing centralizzato

• Esiste un nodo centrale che calcola e


distribuisce le tabelle
• tale nodo riceve informazioni sullo stato della rete
da tutti gli altri e calcola le nuove tabelle
• Ottimizza le prestazioni, ma è poco robusto
• aggiornamenti parziali delle tabelle dovuti a guasti
possono generare loop
• induce un notevole carico sulla rete, specialmente
in prossimità del nodo centrale

13

Routing distribuito

• Ogni router calcola le sue tabelle dialogando


con gli altri router:
• Ogni router informa gli altri riguardo le “rotte” che
conosce
• Il dialogo tra router avviene tramite dei
protocolli ausiliari di livello rete
• Comprende due approcci principali:
• Algoritmi distance vector
• Algoritmi link state
• Utilizzato in varie reti proprietarie,
in OSI, ed in Internet
14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Problematiche associate al routing
• Un router deve opportunamente sintetizzare le
informazioni rilevanti utili alle proprie decisioni:
• per prendere correttamente decisioni locali bisogna avere
almeno una conoscenza parziale dello stato globale della
rete
• lo stato globale della rete è difficile da conoscere in quanto
si può riferire ad un dominio molto esteso e che cambia in
maniera estremamente dinamica
• Le tabelle di routing devono essere memorizzate
all’interno dei router:
• bisogna minimizzare l’occupazione di spazio e rendere
rapida la ricerca
• Bisogna minimizzare il numero di messaggi che i router si
scambiano
• Si deve garantire la robustezza dell’algoritmo
15

Scambio delle informazioni di update

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Scelta dell’algoritmo di routing: problematiche

• Possono esistere più criteri di ottimalità


contrastanti:
• Es: “minimizzare il ritardo medio di ogni pacchetto”
vs “massimizzare l'utilizzo dei link della rete”
• Il numero di nodi può essere elevato
• La topologia può essere complessa
• Algoritmi troppo complessi, operanti su reti
molto grandi, potrebbero richiedere tempi di
calcolo inaccettabili

17

Scelta dell’algoritmo di routing: parametri


• Semplicità
• i router hanno CPU e memoria finite
• Robustezza
• Adattabilità alle variazioni (di topologia, di carico, …)
• Stabilità
• l'algoritmo deve convergere in tempo utile
• Equità
• stesso trattamento a tutti i nodi
• Metrica da adottare
• numero di salti effettuati, somma dei costi di tutte le linee
attraversate, ecc.

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Distance Vector
• Ogni router mantiene una tabella di tutti gli instradamenti a lui
noti
• inizialmente, solo le reti a cui è connesso direttamente
• Ogni entry della tabella indica:
• una rete raggiungibile
• il next hop
• il numero di hop necessari per raggiungere la destinazione
• Periodicamente, ogni router invia a tutti i vicini (due router sono
vicini se sono collegati alla stessa rete fisica):
• un messaggio di aggiornamento contenente tutte le informazioni della
propria tabella
• I router che ricevono tale messaggio aggiornano la tabella nel
seguente modo:
• eventuale modifica di informazioni relative a cammini già noti
• eventuale aggiunta di nuovi cammini
• eventuale eliminazione di cammini non più disponibili

19

Distance Vector: un esempio

Destin. Dist. Route


Destin. Dist. Route Destin. Dist.
net 1 0 direct
net 1 0 direct net 1 2
net 2 0 direct
net 2 0 direct net 4 3
net 4 4 router A
net 4 8 router L net 17 6
Æ Æ net 17 5 router M
net 17 5 router M net 21 4
net 24 6 router A
net 24 6 router A net 24 5
net 30 2 router Q
net 30 2 router Q net 30 10
net 42 4 router A
net 42 2 router A net 42 3
net 21 5 router A
Messaggio di
aggiornamento Tabella aggiornata del router B
Tabella del router B
del router A
(vicino di B)

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Distance Vector: analisi

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Distance Vector vs LINK STATE
• Distance Vector:
Distance -vector
• vengono mandate ai vicini le
informazioni su tutti (il vettore delle
distanze)
• Link State:
• vengono mandate a tutti informazioni Link -state
sui vicini
• si invia in broadcast un Link State
Packet contenente informazioni
circa lo stato dei vicini
• ogni router contiene la topologia
della rete

23

Ricapitolando…

Protocolli Ibridi (IS-IS)

+ + +
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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Rete:
Routing Intradomain

Giorgio Ventre
Università di Napoli Federico II

Algoritmo Distance Vector

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Distance Vector: elaborazione
• Il calcolo consiste nella fusione di tutti i distance vector delle linee attive
• Un router ricalcola le sue tabelle se:
• cade una linea attiva
• riceve un distance vector, da un nodo adiacente, diverso da quello memorizzato
• Se le tabelle risultano diverse da quelle precedenti:
• invia ai nodi adiacenti un nuovo distance vector
• Vantaggi:
• Molto semplice da implementare
• Svantaggi
• Possono innescarsi dei loop a causa di particolari variazioni della
topologia
• Converge alla velocità del link più lento e del router più lento
• Difficile capirne e prevederne il comportamento su reti grandi
• nessun nodo ha una mappa della rete!

Distance Vector: caratteristiche


• Iterativo:
• continua fino a quando non c’è più scambio di informazioni
• self-terminating: non c’è un esplicito segnale di stop
• Asincrono
• Distribuito:
• ogni nodo comunica con i diretti vicini
• Struttura Distance Table
• ogni nodo ha la sua tabella delle distanze:
• una riga per ogni destinazione
• una colonna per ogni nodo adiacente
• Notazione adoperata: X
distanza da X a Y,
D (Y,Z) = via Z (prossimo hop)
Z
= c(X,Z) + minw{D (Y,w)}

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Distance Vector: un esempio

costo per la destinazione via


B 1 C E
7 D () A B D
A 8 2
1 A 1 14 5
E D
2
B 7 8

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

Distance Vector: distance table e routing table

costo a destinazione via


E
D () A B D link uscita da usare costo

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

Distance table Routing table

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Distance Vector: ricapitolando…
Iterativo, asincrono: ogni
Ogni nodo:
iterazione locale è causata da:
• Cambiamento di costo
aspetta notifica modifica
di un collegamento costo da un vicino
• Messaggi dai vicini
Distribuito: ogni nodo contatta i ricalcola distance table
vicini solo quando un suo
cammino di costo minimo
cambia se il cammino meno costoso
verso una quanlunque
• i vicini, a loro volta, contattano i destinazione e’ cambiato,
propri vicini se necessario allora invia notifica ai vicini

Distance Vector: l’ algoritmo (1/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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Distance Vector : algoritmo (2/2)

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

Distance Vector : esempio completo (1/2)

Y
2 1
X Z
7

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Distance Vector : esempio completo (2/2)

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

Distance Vector : modifica dei costi dei collegamenti (1/2)

• Un nodo si accorge di una modifica locale al 1


costo di un link ad esso connesso Y
4 1
• Aggiorna la sua distance table (linea 15 X Z
algoritmo) 50
• Se cambia il costo di qualche path allora lo
notifica ai vicini (linee 23,24 algoritmo)
algoritmo
termina
“le buone
notizie”
viaggiano
veloci

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Distance Vector: modifica dei costi dei collegamenti (2/2)

Cambiamenti nei costi: le


“buone notizie” viaggiano in fretta, 60
le cattive lentamente Y
4 1
X Z
Problema: “conteggio all’infinito”! 50

algoritmo
continua!

13

Distance Vector: poisoned reverse


Se z raggiunge x tramite y:
60
• z dice a y che la sua distanza per x è Y
4 1
infinita (così y non andrà a x attraverso z) X Z
• Viene risolto completamente il problema? 50

algoritmo
termina

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Un esempio in cui lo split horizon fallisce

1 1

•Quando il link tra C e D si interrompe, C “setterà” la sua


distanza da D ad ∞
• Però, A userà B per andare a D e B userà A per andare a D.
• Dopo questi update, sia A che B riporteranno un nuovo
percorso da C a D (diverso da ∞)

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Il processo di update

• Ogni router genera un Link State Packet (LSP)


contenente:
• stato di ogni link connesso al router
• identità di ogni vicino connesso all'altro estremo del
link
• costo del link
• numero di sequenza per l’LSP
• checksum
• lifetime

17

LSP flooding

• Un LSP è trasmesso in flooding su tutti i link del


router
• I pacchetti LSP memorizzati nei router formano
una mappa completa e aggiornata della rete:
• Link State Database

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Esempio: trasmissione di un LSP

19

Esempio: grafo della rete e LSP-DB

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
LSP database
SORGENTE

DESTINAZIONE

Questa rappresentazione è quella più appropriata


per applicare l’agoritmo di Dijkstra
21

Gestione degli LSP


• All'atto della ricezione di un LSP, il router compie le
seguenti azioni:
• se non ha mai ricevuto LSP da quel router o se l’LSP è più
recente di quello precedentemente memorizzato:
• memorizza il pacchetto
• lo ritrasmette in flooding su tutte le linee eccetto quella da cui l'ha
ricevuto
• se l’LSP ha lo stesso numero di sequenza di quello
posseduto:
• non fa nulla
• Se l’LSP è più vecchio di quello posseduto:
• trasmette al mittente il pacchetto più recente

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Routing: decisioni
• Il router elabora il Link State Database per produrre il
Forwarding Database:
• si pone come radice dello shortest-path tree
• cerca lo shortest path per ogni nodo destinatione
• memorizza il vicino (i vicini) che sono sullo shortest path
verso ogni nodo destinatione
• Il Forwarding Database contiene, per ogni nodo
destinazione:
• l’insieme delle coppie {path, vicino}
• la dimensione di tale insieme

23

Architettura di un router Link State

24

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Link State: caratteristiche
• Vantaggi:
• può gestire reti di grandi dimensioni
• ha una convergenza rapida
• difficilmente genera loop, e comunque è in grado di
identificarli ed interromperli facilmente
• facile da capire: ogni nodo ha la mappa della rete
• Svantaggi:
• Molto complesso da realizzare:
• Es: la prima implementazione ha richiesto alla Digital 5 anni

25

Esempio: tabelle di instradamento

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Algoritmo di Dijkstra
• Ogni nodo ha a disposizione il grafo della rete:
• i nodi sono i router
• gli archi sono le linee di collegamento tra router:
• agli archi è associato un costo
• Ogni nodo usa l'algoritmo di Dijkstra per costruire lo
Spanning Tree del grafo, ovvero l’albero dei cammini
di costo minimo
• Ad ogni nodo si assegna un’etichetta che rappresenta
il costo massimo per raggiungere quel nodo
• L'algoritmo modifica le etichette cercando di
minimizzarne il valore e di renderle permanenti

27

Algoritmo di Dijkstra: formalizzazione

• La Topologia della rete è nota a Notazione:


tutti i nodi:
• la diffusione è realizzata via • c(i,j): costo collegamento da
“link state broadcast” i a j:
• tutti i nodi hanno la stessa • infinito se non c’è collegamento
informazione
• Si calcola il percorso minimo da un • per semplicità, c(i,j) = c(j,i))
nodo a tutti gli altri:
• l’algoritmo fornisce la tavola di
• D(v): costo corrente del
routing per quel nodo percorso, dalla sorgente al
• Iterativo: un nodo, dopo k nodo v
iterazioni, conosce i cammini meno
costosi verso k destinazioni • p(v): predecessore
(collegato a v) lungo il
cammino dalla sorgente a v
• N: insieme di nodi per cui la
distanza è stata trovata
28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Algoritmo di Dijkstra (cont.)

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

Algoritmo di Dijkstra: interpretazione


• L’algoritmo consiste in un passo di inizializzazione, più
un ciclo di durata pari al numero di nodi della rete. Al
termine avremo i percorsi più brevi dal nodo sorgente a
tutti gli altri nodi
• Esempio. Calcoliamo sulla rete data i percorsi di costo
minimo da A a tutte le possibili destinazioni. Ciascuna
riga della tabella della slide seguente fornisce i valori
delle variabili dell’algoritmo alla fine di ciascuna
iterazione 5

B 3 C
2 5
A 2 1 F
3
1 2
D 1
E

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Algoritmo di Dijkstra: esempio

Step start N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)


0 A 2,A 5,A 1,A infinity infinity
1 AD 2,A 4,D 2,D infinity
2 ADE 2,A 3,E 4,E
3 ADEB 3,E 4,E
4 ADEBC 4,E
5 ADEBCF
Notazione:
• c(i,j): costo collegamento da i a j (infinito se
5 non c’e’ collegamento e per semplicità c(i,j)
= c(j,i))
3
B C 5 • D(v): costo corrente del percorso, dalla
2 sorgente al nodo v
A 2 1 F • p(v): predecessore (collegato a v) lungo il
3
1 2
cammino dalla sorgente a v
D E • N: insieme di nodi per cui la distanza è
1 stata trovata

31

Algoritmo di Dijkstra: discussione

Se il costo di un link è proporzionale al traffico su


quel link, allora sono possibili oscillazioni

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Rete:
Routing Interdomain

Giorgio Ventre
Università di Napoli Federico II

Il routing in Internet: com’era

• Negli anni 80 l’architettura di Internet era molto


semplice:
• c’era un’unica rete backbone
• ogni rete fisica era collegata alla backbone da un
core router:
• ogni core router conosceva le rotte per tutte le reti fisiche

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Il routing in Internet: problematiche

• Non è accettabile che ci sia un unico


proprietario per la backbone di tutta la rete
• Non tutte le reti fisiche possono essere
collegate direttamente alla backbone
• Soluzione non scalabile:
• al crescere del numero di core router diventa
impossibile mantenerli tutti aggiornati…

Il routing in Internet: com’è

• Reti con Peer Backbone:


• prevedono l’esistenza di diverse dorsali:
• gli amministratori delle reti backbone devono concordare
una politica di routing per evitare la creazione di cicli
• i core router delle diverse reti devono scambiarsi
informazioni sulle rotte

Routing Gerarchico

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Il routing in Internet: com’era e com’è
Single backbone

Org1 Org2

Site1 Site2 Site3 Site1 Site2 Site3

Org 3

LAN1 LAN2 LAN3 LAN1 LAN2 LAN3 Org1

Org2

Site1 Site2 Site3

Site1 Site2 Site3

LAN1 LAN2 LAN3

LAN1 LAN2 LAN3

Il routing in Internet: com’è

• Ai nostri giorni Internet è strutturata come un


insieme di Autonomous System (AS):
• un AS è una collezione di reti amministrate da
un’unica autorità
• Ogni AS contiene un numero limitato di reti:
• la gestione delle informazioni di routing all’interno
dell’AS è più semplice

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Il Routing in presenza di Autonomous System

• Ogni AS è responsabile del routing all’interno delle


sue reti:
• routing interno
• Gli AS devono scambiarsi informazioni di
raggiungibilità:
• routing esterno
• garantisce la correttezza e la consistenza delle informazioni
memorizzate nelle tabelle dei router
• Ogni AS deve essere identificato da un nome:
• AS number (16 bit)

AT&T (AS-7018)

Background image courtesy JHU, applied physics labs

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Sprint (AS-1239)

Background image courtesy JHU, applied physics labs

Level3 (AS-3356)

Background image courtesy JHU, applied physics labs

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Routing interno e routing esterno
• Le tabelle di routing interne di un AS sono mantenute
dall’Interior Gateway Protocol (IGP):
• i messaggi IGP sono scambiati tra router appartenenti al medesimo AS
• contengono solo informazioni sulle reti dell’AS
• RIP (distance vector)
• OSPF (link state)
• IGRP (Interior Gateway Routing Protocol – Cisco)
• Le tabelle di routing esterne di un AS sono mantenute
dall’Exterior Gateway Protocol (EGP):
• i messaggi EGP sono scambiati tra router designati dai rispettivi AS
(border router)
• contengono informazioni sulle rotte conosciute dai due AS
• EGP (Exterior Gateway Protocol), ormai obsoleto
• BGP (Border Gateway Protocol): approccio path vector

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
I gateway router

Sono speciali router dell’AS, che:


• eseguono protocolli di routing intra-AS con altri router
appartenenti all’AS
• sono, inoltre, responsabili del routing verso destinazioni
esterne al proprio AS:
• a tal fine, eseguono un protocollo di routing inter-AS con
altri gateway router

13

Instradamento gerarchico in Internet (1/4)

Inter-AS border (exterior gateway) routers

Intra-AS interior (gateway) routers

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Instradamento gerarchico in Internet (2/4)

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

Instradamento gerarchico in Internet (3/4)


Inter-AS
routing
tra gli AS A e B
C.b
B.a
A.a Host
b A.c c h2
a C a
b
a B
Host d c Intra-AS routing
h1 b
A dentro l’AS B
Intra-AS routing Domande:
dentro l’AS A
• Cosa sa il router A.d ?
• Cosa sa il router A.c ?
• Cosa sa il router B.a ?

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Routing Gerarchico vs Routing Piatto
• Il routing gerarchico è La tabella di routing dice che il
usato per migliorare la percorso che usa l’area 4 è
migliore del percorso
scalabilità: attraverso le aree 3, 2, 1 e 4
• con 150 milioni di
destinazioni: area 4
• non è possibile
memorizzare tutte le area 3
destinazioni nelle routing
table
• lo scambio di tabelle di
routing così grandi area 2
diminuisce notevolmente
la banda utilizzata

Ma…
area 1

17

Border Gateway Protocol (BGP)


• Uno standard de facto
• Il più diffuso protocollo EGP
• sviluppato nell’ ’89
• attualmente arrivato alla versione 4
• Utilizza la tecnica path vector
• generalizzazione della tecnica distance vector
• ogni messaggio contiene una lista di percorsi
• Ogni Border Gateway comunica a tutti i vicini l’intero
cammino (cioè la sequenza di AS) verso una
specifica destinazione

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
BGP: un esempio
• Il gateway X può memorizzare, per la destinazione Z, il
seguente cammino:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
• Il gateway X manda il suo cammino al peer gateway W
• Il gateway W può scegliere se selezionare il cammino offerto
dal gateway X, in base, ad esempio:
• al costo
• a questioni politico/economiche
• Se W seleziona il cammino annunciato da X:
Path (W,Z) = w, Path (X,Z)
• la selezione del cammino è basata più su aspetti politici ed amministrativi
(ad es. non passare attraverso concorrenti) che sul costo (ad es. # di AS
attraversati)

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
BGP: funzioni dei peer

• I BGP peer svolgono tre funzioni principali:


• stabiliscono la connessione e concordano i
parametri di comunicazione
• si scambiano informazioni di raggiungibilità
• effettuano un monitoraggio periodico dello stato
degli altri peer

21

BGP: politiche di instradamento

• BGP consente solo di pubblicizzare dei percorsi


verso altri AS:
• non associa nessuna metrica ai percorsi
• Il border router “esporta” solo le informazioni
consentite dalla politica di routing dell’AS
• Non è possibile considerare BGP come un
classico algoritmo di routing

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
BGP: tipi di messaggio
• OPEN
• inizializza la connessione tra peer:
• apre connessione TCP
• autentica il mittente
• UPDATE
• aggiornamento delle informazioni di raggiungibilità
• annuncio di un nuovo cammino
• eliminazione di un cammino preesistente
• NOTIFICATION
• risposta ad un messaggio errato
• chiusura di una connessione
• KEEPALIVE
• verifica che il peer sia ancora attivo
• si tratta di messaggi che mantengono la connessione attiva in assenza di
UPDATE
• serve a:
– tenere attiva la connessione TCP
– dare l’ACK ad una richiesta di OPEN

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
BGP: routing
• BGP consente solo di pubblicizzare informazioni di
raggiungibilità:
• non garantisce la consistenza delle informazioni nelle tabelle
di routing
• non è un algoritmo di routing
• Per implementare un sistema di routing inter-AS è
necessario che gli AS si fidino l’uno dell’altro
• il demone gated implementa un’interfaccia tra AS distinti:
• supporta politiche di routing basate su vari tipi di metriche
• è in grado di integrare il routing interno con quello esterno:
– può usare un protocollo IGP su un’interfaccia e BGP su un’altra

25

Il Routing Arbiter System

• Un meccanismo per coordinare il routing a


livello globale
• Un database distribuito ed autenticato che
mantiene tutte le informazioni di raggiungibilità
• Sostituisce il core network

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Route Server

• L’architettura di Internet è basata sui Network


Access Point (NAP):
• punti di interconnessione di tutti gli ISP di un’area
geografica
• Ogni NAP ha un route server (RS), che
mantiene una copia del Routing Arbiter
Database
• Ogni ISP ha un border gateway che usa BGP
per comunicare con il route server

27

Inter-AS vs Intra-AS routing


• Politica:
• Inter-AS
• si concentra su aspetti politici (es: quale provider scegliere o evitare)
• Intra-AS
• si applica in una singola organizzazione:
– all’interno dell’organizzazione, la politica di routing applicata è coerente

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Data-Link:
Introduzione e concetti generali

Giorgio Ventre
Università di Napoli Federico II

Il livello data link nella rete

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Caratteristiche del livello data link

• Si occupa della comunicazione tra due dispositivi


fisicamente connessi:
• host-router, router-router, host-host
• Unità di dati: frame

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…

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Funzionamento degli adattatori di rete
• Gli adattatori sono entità semi-autonome:
• Alla ricezione di una frame, il nodo è coinvolto solo se i dati devono
essere passati al livello rete
• Un nodo che spedisce un datagram, delega completamente
all’adattatore di rete la trasmissione sul link
• Un adattatore è, dunque, dotato di memoria RAM, di chip di
elaborazione delle frame e di interfacce verso il bus dell’host e
verso il link

Servizi del livello data link (1/2)


• Framing (incorniciatura) ed accesso al link:
• Incapsulamento di datagrammi all’interno di frame, aggiunta
di campi di intestazione (header e trailer)
• Gestione dell’accesso al canale, in caso di mezzo condiviso
• Utilizzo di ‘indirizzi fisici’ all’interno delle frame, per
identificare nodo sorgente e destinazione:
• NB: indirizzi fisici diversi dagli indirizzi di rete!
• Trasferimento affidabile dei dati tra due
dispositivi fisicamente connessi:
• Utile soprattutto in caso di collegamenti con alta probabilità
di errore, quali i link wireless
• Controllo di flusso:
• Per regolare la velocità di trasmissione tra mittente e
destinatario
6

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Servizi del livello data link (2/2)

• Rilevazione degli errori:


• Errori causati da attenuazione del segnale o da presenza di
rumore (interferenza)
• Il ricevente rileva la presenza di errori e:
• Segnala tale evento al mittente…
• …oppure elimina la frame ricevuta

• Correzione degli errori:


• Il ricevente identifica e corregge errori su alcuni bit della
frame, evitando ritrasmissioni da parte del mittente
• Trasferimento dati di tipo half-duplex o full-
duplex
7

Rilevazione degli errori

EDC: Error Detection & Correction


D: Dati

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Controllo di parità
Parità ad un bit: Parità a due bit:
Rilevazione errori su un Rilevazione e correzione di errori su un singolo bit
singolo bit

Metodi di checksum

Obiettivo: rilevare “errori” sui bit all’interno dei


segmenti trasmessi (tecnica tipicamente
utilizzata al livello trasporto)
Mittente: Ricevitore:
• Tratta il contenuto del segmento • Calcola il complemento ad 1
come una sequenza di interi della somma dei dati ricevuti
espressi su 16 bit (compresa la checksum)
• checksum: addizione (in • Risultato composto da tutti bit
complementi ad 1) del pari ad 1?
contenuto del segmento • NO: errore!
• La checksum calcolata viene • SI: nessun errore rilevato…
inserita all’interno di un apposito • …il che non vuol dire
campo dell’header del che non vi siano stati
segmento errori

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Codici CRC -- Cyclic Redundancy Check
• Si considerano i bit di dati, D, come un numero binario
• Si sceglie un opportuno pattern di r+1 bit (generatore), G
• Obiettivo: scegliere r bit di controllo CRC, R, tali che:
• <D,R> sia divisibile esattamente per G (modulo 2)
• Il ricevente, che deve conoscere G, divide <D,R> per G:
• Se il resto della divisione non è nullo:
– errore rilevato!
• Con tale tecnica si possono rilevare tutti gli errori che coinvolgono meno di r+1 bit
• Il CRC è molto utilizzato nella pratica, al livello data link

11

Un esempio di codice CRC


Un esempio con r=3
Obiettivo:
D.2r XOR R = nG
In maniera equivalente:
D.2r = nG XOR R
ossia:
se dividiamo D.2r per G,
vogliamo un resto pari a R:
NB: tutti I calcoli
sono eseguiti in
D.2r aritmetica modulo
R = resto[ ] 2 senza riporti in
G addizione e
sottrazione
(addizione =
sottrazione = XOR)

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Tipi di link di rete

Due tipi di “link”:


• punto-punto:
• Point to Point Protocol –
PPP
• Serial Line IP – SLIP
• Broadcast:
• mezzo condiviso
• Ethernet
• Wavelan
• Satellite
• Ecc.

13

Protocolli di accesso multiplo


• Un unico canale di comunicazione condiviso
• Due o più trasmissioni simultanee da parte dei nodi della rete:
• interferenza
• Solo un nodo può inviare dati con successo!
• Protocolli di accesso multiplo:
• Un algoritmo distribuito determina le modalità di condivisione del canale,
vale a dire quando una stazione può trasmettere
• Le comunicazioni per regolare l’accesso al canale utilizzano il canale
stesso!
• Caratteristiche di un protocollo di accesso multiplo:
• Sincrono o asincrono
• Necessità di informazioni riguardanti le altre stazioni
• Robustezza (ad esempio, in relazione agli errori sul canale)
• Prestazioni

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Gli uomini e l’accesso multiplo: esempio
• Corso di Reti di Calcolatori:
• Prof e studenti condividono un unico mezzo broadcast:
• L’aula IA5 ad Agnano ☺
• Chi deve parlare?
• Ipotesi 1: solo il prof
– Broadcast unidirezionale prof studenti
– Mancanza di interazione (modello “televisivo”)
• Ipotesi 2: tutti possono intervenire
– Necessità di sincronizzazione nell’accesso:
» Alza la mano se devi porre una domanda
» Non interrompere quando qualcun altro (specialmente il prof!) sta parlando
» Dai ai colleghi la possibilità di porre domande (cioè, non monopolizzare la
conversazione)
» …
– Si tratta, in effetti, di protocolli di comunicazione

15

Protocolli di accesso multiplo: tassonomia


• Channel Partitioning
• suddivide il canale in “porzioni” più piccole (slot temporali o
di frequenza)
• Ogni nodo gode dell’uso esclusivo di una di tali porzioni
• Random Access
• Consente collisioni dovute a trasmissioni
simultanee
• Gestisce le collisioni
• Taking turns
• Coordina opportunamente l’accesso al mezzo, in modo da
evitare le collisioni

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Protocolli di accesso multiplo: obiettivi

• Per un canale con velocità di R bit/sec:


• Se un solo nodo ha dati da inviare:
• Quel nodo ha un throughput di R bit/sec
• Se M nodi hanno dati da spedire:
• Ognuno di essi ha un throughput medio di R/M bit/sec
• Il protocollo per la gestione dell’accesso è
distribuito:
• Assenza di “single points of failure”
• Il protocollo è semplice:
• Implementazione economica

17

Protocolli di suddivisione del canale: TDMA


Time Division Multiple Access
• L’accesso al canale avviene a “cicli”:
• Ogni stazione ottiene uno slot di
trasmissione di lunghezza fissa in ogni
ciclo
• Gli slot inutilizzati da una stazione
vanno deserti
• Vantaggi:
• Elimina le collisioni
• È equo
• Svantaggi:
• Throughput max per un nodo, in
una rete con N stazioni:
• R/N bit/sec anche se il nodo in
esame è l’unico ad avere frame da
spedire
• Un nodo deve sempre aspettare il
suo turno nella sequenza di
trasmissione

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Protocolli di suddivisione del canale: FDMA

Frequency Division Multiple


Access
• Lo spettro di trasmissione è diviso
in bande di frequenza
• Ad ogni stazione è assegnata una
banda di frequenza fissa
• Il tempo di trasmissione inutilizzato
nelle singole bande di frequenza
risulta sprecato
• Vantaggi:
• Come per il TDMA
• Svantaggi:
• Come per il TDMA

19

Protocolli di suddivisione del canale: CDMA

CDMA (Code Division Multiple Access)


• Un codice unico è assegnato ad ogni utente:
• code set partitioning
• Usato principalmente nei canali wireless di tipo broadcast (reti
cellulari, satellitari, ecc.)
• Tutti gli utenti condividono la stessa frequenza di trasmissione,
ma ognuno di essi possiede un codice unico (noto come
“chipping sequence”) per codificare i dati
• segnale codificato = (dati originali) X (chipping sequence)
• decodifica: prodotto scalare del segnale codificato e della
chipping sequence
• Consente a diversi nodi di trasmettere simultaneamente,
riducendo al minimo l’interferenza nel caso in cui si siano scelti
codici “ortogonali”
20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
CDMA: codifica e decodifica

21

CDMA: interferenza tra due mittenti

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Protocolli ad accesso casuale
• Quando un nodo ha un pacchetto da trasmettere:
• Trasmette alla massima velocità consentita dal canale
• Non esiste nessuna forma di coordinamento a priori tra i
nodi
• Trasmissione simultanea di due o più nodi:
• Collisione!
• Un protocollo ad accesso casuale specifica:
• Come rilevare le collisiomi
• Come risolvere le collisioni:
• Es: tecniche di ritrasmissione delle frame
• Esempi di protocolli random access:
• slotted ALOHA
• ALOHA
• CSMA e CSMA/CD
23

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Slotted ALOHA: efficienza

• Qual è la percentuale massima di slot in cui la


trasmissione ha successo?
• Supponiamo che N stazioni abbiano frame da
trasmettere:
• Ogni stazione trasmette in un determinato slot, con
probabilità p
• La probabilità S che una trasmissione abbia
successo è data da:
• Per il singolo nodo:
– S= p(1-p)(N-1)
• Dato che ci sono N nodi:
– S = Prob(solo uno degli N nodi trasmetta) = N p (1-p)(N-1)
– …il valore ottimo di p, per N che tende ad infinito, è:
» 1/e, pari a circa il 37%

25

Slotted ALOHA: efficienza massima

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
ALOHA puro
• ALOHA “unslotted”:
• Più semplice
• Non richiede sincronizzazione:
• In trasmissione:
• Invia la frame non appena i dati sono disponibili
• La probabilità di collisione raddoppia:
• Una frame inviata al tempo t0 può collidere con altre frame inviate in [t0-1, t0+1]

27

ALOHA puro: prestazioni


• P(successo di un dato nodo) =
P(nodo trasmetta) . P(nessun altro nodo transmetta in [t0-1,t0]) .
P(nessun altro nodo trasmetta in [t0,t0+1]) =
p . (1-p)(N-1) . (1-p)(N-1) = p . (1-p)2(N-1)

• P(successo di uno su N nodi) = N . p . (1-p)2(N-1)


• …il valore ottimo di p, per N che tende ad infinito, è:
» 1/2e, pari a circa il 18%
S = throughput = “goodput”

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
CSMA: Carrier Sense Multiple Access
CSMA:
• “Ascolta prima di parlare” (listen before talking):
• Se il canale è libero
• Trasmetti la frame
• Se il canale è occupato
• Rimanda la trasmissione
• CSMA persistente:
• Riprova immediatamente con probabilità p quando
il canale si libera
• CSMA non persistente:
• Riprova dopo un intervallo casuale

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
CSMA/CD: CSMA con Collision Detection

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Protocolli di tipo “Taking Turns”
Protocolli “channel partitioning”:
• Condivisione efficiente del canale con carico elevato
• Poco efficienti con carico leggero:
• Ritardo nell’accesso al canale
• Banda pari ad 1/N anche se solo uno degli N nodi presenti è attivo!
Protocolli “random access”:
• Efficienti con carico leggero:
• Un singolo nodo può utilizzare a pieno il canale
• Carico elevato:
• Overhead dovuto alla presenza di collisioni
Protocolli “taking turns”:
• Cercano di prendere il meglio dai due approcci precedenti!

33

Tipici protocolli “Taking Turns”


Polling: Token passing:
• Un nodo master “invita” I • Un “gettone” (token) di
nodi slave a trasmettere in controllo viene passato da
maniera alternata un nodo al successivo in
• Impiego di messaggi del tipo maniera sequenziale
“Request to Send”, “Clear to • Il possesso del token dà
Send” diritto a trasmettere
• Problemi da affrontare: • Problemi da affrontare:
• Overhead dovuto al polling • Overhead nella gestione del
• Latenza token
• Presenza di un single point of • Latenza
failure (master) • Presenza di un single point of
failure (token)

34

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Data-Link:
Ethernet – Hub – Bridge – Switch

Giorgio Ventre
Università di Napoli Federico II

Tecnologie per le LAN


Riepilogo dei compiti del livello Data link:
• servizi, rilevamento/correzione degli errori,
accesso al canale
Agenda: tecnologie per le LAN
• Indirizzamento
• Ethernet
• Hub, bridge, switch

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Indirizzi IP ed indirizzi LAN

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

Ogni scheda di rete su una LAN ha un indirizzo LAN univoco

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Indirizzi LAN
• Distribuzione degli indirizzi MAC gestita da IEEE
• I produttori di schede di rete detengono una porzione
degli indirizzi MAC (per garantire l’univocità)
• Analogie:
(a) MAC address: come il Codice Fiscale
(b) IP address: come l’Indirizzo di Posta
• MAC “flat” address Æ portabilità
• è possibile spostare una scheda di rete da una LAN ad
un’altra
• Classi gerarchiche di indirizzi IP:
• NON SONO portabili
• dipendono dalla rete alla quale si è collegati
5

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

Uno schizzo del progetto di


Metcalfe per la rete
Ethernet

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Struttura della Frame Ethernet 1/2

L’interfaccia di rete del mittente incapsula i


datagrammi IP (o altri pacchetti di livello rete)
in frame Ethernet

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

Struttura della Frame Ethernet 2/2


• Indirizzi di 6 byte. La frame è ricevuta da tutti gli
adattatori di rete presenti sulla LAN, e scartata se
l’indirizzo destinazione non coincide con quello della
scheda stessa – (indirizzo broadcast: ff:ff:ff:ff:ff:ff)
• Type: indica il protocollo di livello rete sovrastante,
principalmente IP, ma altri protocolli (ad esempio
Novell IPX e AppleTalk) sono supportati
• CRC: controllo effettuato alla destinazione:
• se l’errore è rilevato, la frame viene scartata

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Ethernet: impiego del CSMA/CD

A: ascolta il canale, if idle


then {
transmit and monitor the channel;
If detect another transmission
then {
abort and send jam signal;
update # collisions;
delay as required by exponential backoff algorithm;
goto A
}
else {done with the frame; set collisions to zero}
}
else {wait until ongoing transmission is over and
goto A}

CSMA/CD

Jam Signal: consente alle altre stazioni di accorgersi


dell’avvenuta collisione (48 bit)
Exponential Backoff:
• Obiettivo: algoritmo per adattare i successivi tentativi
di ri-trasmissione al carico corrente della rete
• in presenza di sovraccarico il tempo d’attesa casuale sarà
maggiore:
• prima collisione: scegli K tra {0,1}; il ritardo di trasmissione è pari ad
un intervallo K x 512 bit (pari a 51.2 usec)
• dopo la seconda collisione: scegli K tra {0,1,2,3}…
• dopo 10 o più collisioni, scegli K tra {0,1,2,3,4,…,1023}

• Segnale: in banda base, codifica Manchester


10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Ethernet Technologies: 10Base2

• 10: 10Mbps; 2: massima lunghezza del cavo: 200 metri


• Topologia a bus su cavo coassiale sottile (thin)

• Impiego di ripetitori per collegare più segmenti


• I ripetitori ritrasmettono i bit in entrata da un’interfaccia
verso le altre interfacce:
• entità di livello fisico

11

10BaseT e 100BaseT (1/2)


• 10/100 Mbps
• La versione a 100Mbps è nota come “fast ethernet”
• T sta per Twisted Pair (doppino intrecciato)
• Topologia “a stella”, mediante un concentratore (hub) al quale
gli host sono collegati con i doppini intrecciati

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
10BaseT e 100BaseT (2/2)
• Massima distanza tra nodo e hub pari a 100 metri
• Gli hub possono disconnettere le schede
malfunzionanti:
• “jabbering”
• Gli hub possono:
• fornire informazioni utili al monitoraggio
• collezionare statistiche per effettuare previsioni, agevolando
il compito degli amministratori della LAN

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Token Passing: standard IEEE 802.5

• 4 Mbps
• max token holding time: 10 ms (limita la
massima lunghezza del frame)

• SD, ED rappresentano inizio e fine del frame


• AC: access control byte:
• token bit: valore 0 significa che il token può essere preso,
valore 1 indica che dei dati seguono il FC
• priority bits: priorità della frame
• reservation bits: una stazione può configurare questi bit per
evitare che le stazioni con una priorità più bassa possano
impossesarsi del token quando quest’ultimo diventa libero
15

Token Passing: standard IEEE 802.5

• FC: frame control utilizzato per effettuare monitoraggio e gestione


della rete
• source, destination address: 48 bit per gli indirizzi fisici, così come
in Ethernet
• data: pacchetto proveniente dal livello rete
• checksum: CRC
• FS: frame status: impostato dal receiver e letto dal sender
• set per indicare che il ricevente è attivo, e che il frame è stato
prelevato dall’anello
• ACK di livello DLC

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Interconnettere più LAN

D: Perchè non creare un’unica grande LAN?


• Limitata quantità di banda disponibile, considerato che
su una singola LAN tante stazioni dovrebbero
condividere la banda
• Estensione limitata: ad esempio, 802.3 specifica la
massima lunghezza del cavo
• “Dominio di collisione” troppo ampio (una trasmissione
può collidere con molte altre)
• Numero limitato di stazioni: ad esempio, 802.5
introduce un ritardo in ogni stazione dovuto al
passaggio del token
17

Hub

• Dispositivi di Livello Fisico:


• sostanzialmente si tratta di ripetitori di bit
• riproducono i bit in ingresso ad un’interfaccia su tutte le altre
interfacce
• Gli hub possono essere organizzati in una gerarchia
(o architettura multi-livello), con un backbone hub al
livello più alto

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Hub: caratteristiche
• Ogni LAN collegata è considerata come un segmento di
LAN
• Gli hub non isolano i domini di collisione:
• le stazioni possono subire una collisione per una trasmissione
simultanea con qualunque stazione presente su qualunque
segmento
• Vantaggi degli hub:
• Sono dispositivi semplici e poco costosi
• L’organizzazione Multi-livello garantisce una parziale
tolleranza ai guasti: porzioni di LAN continuano a
funzionare in caso di guasto ad uno o più hub
• Estende la massima distanza esistente tra i nodi
(100m per ogni Hub)

19

Limiti degli hub


• La creazione di un singolo dominio di collisione non
comporta alcun aumento del throughput massimo
• Il throughput complessivo in una rete multi-livello è
lo stesso di una rete con un unico segmento
• La realizzazione di un’unica LAN impone un limite al
numero massimo di stazioni che è possibile collegare,
nonché all’estensione geografica che è possibile
raggiungere
• Solo una tipologia di Ethernet (per esempio, 10BaseT
e 100baseT)

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Bridge (1/2)

• Dispositivi di livello 2: in grado di leggere le


intestazioni di frame Ethernet, ne esaminano il
contenuto, e selezionano il link d’uscita sulla
base dell’indirizzo destinazione
• I bridge isolano I domini di collisione, grazie alla
loro capacità di porre le frame in un buffer
(dispositivi store & forward)
• Non appena una frame può essere inoltrata su
un link d’uscita, un bridge usa il protocollo
CSMA/CD sul segmento LAN d’uscita prima di
trasmettere
21

Bridges (2/2)

• Vantaggi dei bridge:


• Isolano i domini di collisione, determinando un
aumento complessivo del throughput massimo
• Non introducono limitazioni sul numero massimo
delle stazioni, né sull’estensione geografica
• Possono collegare differenti tecnologie, dal
momento che sono dispositivi di tipo store &
forward
• Trasparenti: non richiedono alcuna modifica negli
adattatori dei computer

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Bridge: frame filtering & forwarding

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Interconnessione senza backbone

• Soluzione non consigliata a causa di due motivi:


- esiste un punto critico presso l’hub di Computer Science, in
caso di rottura dello stesso
- il traffico tra EE e SE deve necessariamente attraversare il
segmento CS

25

Bridge Filtering

• I bridge eseguono un algoritmo di auto


apprendimento per scoprire a quali interfacce sono
collegati gli host:
• Tali informazioni sono salvate in delle “filtering tables”
• Quando una frame è ricevuta, il bridge “prende nota”
del segmento di LAN di provenienza
• L’interfaccia di provenienza è memorizzata in una
filtering table
– filtering table entry:
» (Node LAN Address, Bridge Interface, Time Stamp)
» dati della Filtering Table obsoleti vengono cancellati (TTL
tipicamente pari a 60 minuti)

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Bridge Filtering

• 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

Bridge Learning: esempio (1/2)

Supponendo che C invii una frame a D e che D


risponda con una frame a C

• C invia la frame, il bridge non ha alcuna informazione


circa D, pertanto invia in flooding
• Il bridge annota C sul porto 1
• La frame è ignorata nella LAN in alto
• La frame viene ricevuta da D
28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Bridge Learning: esempio (2/2)

• D genera una risposta destinata a C e la invia


• Il bridge vede la frame proveniente da D
• Il bridge annota D sul porto 2
• Il bridge sa che C è sul porto 1, quindi invia
esclusivamente la frame sul porto 1
29

Bridge Spanning Tree


• Per incrementare l’affidabilità, può essere utile introdurre un
certo grado di ridondanza:
• percorsi alternativi
• In presenza di percorsi alternativi simultanei, vengono create
copie molteplici delle frame (loop)
• SOLUZIONE: organizzare i bridge mediante uno spanning tree,
disabilitando alcune interfacce
Disabled

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Bridge vs Router

• Sono entrambi dispositivi di tipo store-and-forward


• router: dispositivi di livello rete (esaminano il contenuto dell’header di
livello 3)
• Bridge: sono dispositivi di livello Data Link
• I router si basano sulle routing table ed implementano algoritmi
di routing
• I bridge si basano sulle filtering table ed implementano algoritmi
di filtering, learning e spanning tree

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Router vs Bridge
Router: pro (+) e contro (-)
+ possono essere realizzate differenti topologie, i loop
sono limitati grazie al contatore TTL (ed all’impiego di
buoni protocolli di routing)
+ forniscono una naturale protezione contro le tempeste
broadcast
- richiedono configurazione al livello IP (non sono plug
and play)
- richiedono capacità adeguata per processare una
grande quantità di pacchetti
• I bridge sono maggiormente utili in caso di reti piccole
(con poche centinaia di host) mentre i router sono
usati nelle grandi reti (migliaia di hosts)
33

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
Switch Ethernet 2/3

• Cut-through switching: frame inoltrate


dall’ingresso all’uscita senza attendere
l’assemblamento dell’intera frame
• Leggera diminuzione della latenza
• Consentono la combinazione di interfacce
condivise/dedicate, a 10/100/1000 Mbps

35

Switch Ethernet 3/3

Dedicated

Shared

36

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Data-Link:
ICMP – ARP – RARP – DHCP – NAT

Giorgio Ventre
Università di Napoli Federico II

ICMP (Internet Control Message Protocol)


• Funzionalità:
• Verificare lo stato della rete
• echo request, echo reply
• Riportare anomalie
• destination unreachable
• time exceeded
• parameter problem
• Scoprire la netmask
• mask request
• address mask reply
• Migliorare il routing
• redirect

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
ICMP

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Esempio di traceroute (1/9)

Esempio di traceroute (2/9)

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Esempio di traceroute (3/9)

Esempio di traceroute (4/9)

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Esempio di traceroute (5/9)

Esempio di traceroute (6/9)

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Esempio di traceroute (7/9)

11

Esempio di traceroute (8/9)

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Esempio di traceroute (9/9)

13

Indirizzi IP ed Indirizzi di Livello 2

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Problema della risoluzione dell’indirizzo
• Due host possono comunicare direttamente solo se
sono collegati alla stessa rete fisica
• Per potersi scambiare informazioni devono conoscere i
rispettivi indirizzi fisici
• Il protocollo IP consente di individuare univocamente
un host tramite un indirizzo logico (indirizzo IP)
• Tutte le applicazioni usano gli indirizzi logici ed ignorano la
rete fisica. Ma per inviare un messaggio occorre
necessariamente conoscere anche l’indirizzo fisico
• Pertanto, serve un meccanismo di corrispondenza tra gli
indirizzi logici e gli indirizzi fisici. Tale meccanismo è offerto
dal protocollo ARP

15

ARP - Address Resolution Protocol


• Uno scenario tipico:
• A deve spedire un datagram a B, host appartenente alla
medesima rete logica (cioè, alla medesima rete IP)
• A conosce l’indirizzo IP di B, ma non il suo indirizzo fisico
• Soluzione tramite ARP:
• A manda in broadcast a tutti gli host della rete un pacchetto
contenente l’indirizzo di rete di B, allo scopo di conoscere
l’indirizzo fisico di B
• B riconosce il suo indirizzo di rete e risponde ad A
• Finalmente A conosce l’indirizzo fisico di B, quindi può
spedire il datagram a B

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Formato del pacchetto ARP

Hardware Type Protocol Type


HLEN PLEN Operation
Sender Hardware Address

Sender HW Address Sender IP Address

Sender IP Address Target HW Address

Target Hardware Address

Target IP Address

17

Incapsulamento dei pacchetti ARP

• Il protocollo ARP interagisce direttamente con il


livello data link
• Il pacchetto ARP viene incapsulato in un frame
e spedito in broadcast sulla rete
• L’header del frame di livello 2 specifica che il frame
contiene un pacchetto ARP

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Esempio: richiesta ARP

19

Esempio: risposta ARP

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
ARP: scenari tipici

• Primo caso: l’host destinazione è sulla stessa


LAN (stessa subnet IP)

• Secondo caso: l’host destinazione non è sulla


stessa LAN (subnet IP)

21

ARP: primo caso (1/3)

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
ARP: primo caso (2/3)

• Ogni computer ha un indirizzo IP ed una


netmask. La netmask serve ad individuare la
propria sottorete IP:
• Digitare da una shell win2000 il comando:
• ipconfig /all
• Il computer A esegue una AND tra l’indirizzo IP
destinazione e la propria netmask.
• Nel caso precedente: IP di B 192.168.1.2
AND
netmask A 255.255.255.0
E’ proprio l’indirizzo della =
sottorete IP cui appartiene A 192.168.1.0

23

ARP: primo caso (3/3)

• Se il computer B è sulla stessa sottorete IP


• allora mando un pacchetto ARP request in
broadcast
• tale pacchetto contiene, nel campo DEST IP, l’indirizzo IP
di B

24

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
ARP: secondo caso (1/2)

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

Rete IP di classe C Rete IP di classe C

rete: 192.168.1.0 rete: 192.168.3.0


netmask: 255.255.255.0 netmask: 255.255.255.0

IP: 192.168.1.3
netmask: 255.255.255.0

25

ARP: secondo caso (2/2)

• Se A intende mandare un pacchetto a X,


l’operazione di AND tra la netmask e l’indirizzo
IP DEST fornisce un risultato differente
IP di X 192.168.3.3
AND
netmask A 255.255.255.0
Non è l’indirizzo della sottorete =
cui appartiene A Æ Occorre 192.168.3.0
inviare il pacchetto al router.

In questo caso, pertanto, si prepara un pacchetto ARP in


cui si specifica come indirizzo IP DEST proprio
l’indirizzo IP del router
26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
ARP: ricapitolando…

• Operazione di AND logico tra l’indirizzo IP della


destinazione e la propria netmask:
• Se il risultato fornisce l’indirizzo della propria subnet
IP:
• Invia una richiesta ARP per risolvere l’indirizzo della
destinazione
• …altrimenti:
• Il pacchetto deve essere inviato al router di default:
– Nel caso in cui l’indirizzo MAC del router non sia noto:
» Invia una richiesta ARP per risolvere l’indirizzo IP del router

27

Raffinamenti del protocollo

• Per ridurre il traffico sulla rete, ogni host


mantiene una cache con le corrispondenze tra
indirizzi logici e fisici
• Prima di spedire una richiesta ARP controlla nella
cache
• Il pacchetto ARP contiene indirizzo fisico e
logico del mittente
• Gli host che leggono il pacchetto possono
aggiornare le loro ARP cache

28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Monitoraggio di ARP

• Con il comando arp è possibile leggere e


modificare il contenuto della arp cache
• arp –a (legge il contenuto di tutta la cache)
• Con il comando tcpdump (o con un software
tipo Ethereal…) è possibile monitorare tutto il
traffico che viaggia sulla rete
• È possibile filtrare solo i pacchetti spediti da un dato
protocollo su una data interfaccia
• tcpdump arp (legge solo i pacchetti arp)

29

Proxy ARP

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Reverse ARP

• Il protocollo RARP svolge il ruolo opposto ad


ARP
• fisico Æ logico
• Usato per sistemi diskless:
• X terminal, diskless workstation
• Al boot non conoscono il loro indirizzo IP

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Altre soluzioni per boot remoto

• Il protocollo RARP è stato sostituito da altri


protocolli più flessibili e potenti:
• BOOTP: BOOTstrap Protocol
• DHCP: Dynamic Host Configuration Protocol
• Utilizzati per assegnare dinamicamente gli indirizzi
agli host di una rete IP

33

DHCP: scenario tipico

34

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
Interazione client-server via DHCP

35

DHCP discover

36

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
DHCP offer

37

DHCP request

38

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 19
DHCP ACK

39

NAT: Network Address Translation


• Network Address Translation (RFC 1631) consente ad
un dispositivo di agire come intermediario tra Internet
(rete pubblica) e una rete privata
• In questo modo, un unico indirizzo IP può
rappresentare un intero gruppo di computer

40

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 20
NAT
• L’uso più comune del NAT è quello di mappare un
insieme di indirizzi privati su di un unico indirizzo
pubblico, utilizzando differenti porti per mantenere
traccia delle diverse connessioni

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 21
NAT: un esempio

43

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 22
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Sistemi Wireless

Stime di mercato

Potenziale di Potenziale di
Numero di apparati Luoghi di utilizzo
mercato mondiale mercato europeo

Modalità di utilizzo Stimoli Dinamica dei


Ostacoli costi

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Numero di apparati

Potenziale di mercato mondiale

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Potenziale di mercato europeo

Terminal end User in Europa

Luoghi di utilizzo

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Modalità di utilizzo

Stimoli

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Ostacoli

11

Dinamica dei costi

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Vantaggi LAN wireless
• Problemi delle soluzioni wired: • Motivazioni di ordine economico:
• costi e tempi della posa in opera • riorganizzare o aggiungere uffici
dei cavi • implementare reti temporanee
• degradazione delle prestazioni nel prima della la posa di cavi
tempo causata da: • Ridurre i costi per manutenzione e
• degradazione delle caratteristiche sostituzione dei cavi in presenza di
elettriche dei conduttori dovuta a guasti
agenti atmosferici
• riflessioni dovute a giunzioni
• Mobilità
imperfette tra cavi • libertà di movimento dell’utente
• rottura di cavi e connettori durante senza perdita della connessione
l’uso • Scalabilità
• Motivazioni di ordine logistico: • semplicità di connessione e
• cablaggio tra edifici separati da configurazione in caso di
ostacoli quali fiumi, laghi, ecc. incremento del numero degli utenti
• cablaggio in ambienti a logistica • Flessibilità
complessa • numero variabile di utenti che si
• cablaggio in edifici di interesse collegano alla rete
storico e/o artistico

13

Problemi LAN wireless


• Inaffidabilità del mezzo trasmissivo: • Consumo di energia
• range e velocità di trasmissione • “power saving” per massimizzare la
influenzate da: durata delle batterie
• interferenze elettromagnetiche • Area di copertura
• interferenze dovute ad “affollamento”
della banda • vincolata dal consumo di energia
• necessità di garantire il corretto • dipende da:
funzionamento dei protocolli di livello • interferenze
rete • vleocità di trasmissione
• Multipath fading in ricezione • Salute
• sovrapposizione del segnale trasmesso • limitare emissione elettromagnetica
e delle sue riflessioni dovute a pareti e • Legislazione
oggetti metallici • ogni nazione regolamenta
• Soluzioni: l’occupazione delle frequenze
• sistema di ricezione, 2 antenne
• Interoperabilità
• elaborazione del segnale ricevuto
• vari produttori
• Sicurezza • presenza di organismi per il rilascio di
• libero accesso al mezzo condiviso certificazioni di conformità agli standard
• Mobilità (Wireless Fidelity -- WiFi)
• problematiche di indirizzamento

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Architettura: elementi e concetti di base

• Station (STA) • Distribuition System (DS)


• stazione 802.11 • interconnette BSS e LAN per formare
• Base Service Set (BSS) un ESS
• insieme di STA controllate dalla medesima • Access Point (AP):
Coordination Function • punto di accesso a un DS
• Coordination Function • Independent Basic Service Set (IBSS)
• funzione logica che in un BSS assegna alle • rete ad hoc
STA i diritti a trasmettere/ricevere • è priva di accessi al DS
• Distribuited Coordination Function (DCF): • Portal
accesso distribuito
• punto logico di ingresso nel DS di un
• Point Coordination Function (PCF): accesso ESS non 802.11
centralizzato • Wireless medium (WM)
• Extended Service Set (ESS) • mezzo attraverso il quale comunicano
• insieme di BSS e LAN visto dal LLC delle livelli fisici una WLAN
STA associate a tali BSS come un’unica
BSS • Distribuition system medium (DSM)
• Basic Service Area (BSA) • mezzo attraverso il quale, in un ESS, il
• area di comunicazione dei membri di un BSS DS comunica con AP e portali

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

• mobilità delle stazioni tra BSS BSS2 BSS3


“LLC-trasparente”
• possibilità varie:
– sovrapposizione dei BSS ESS
(estensione della copertura del 802.11 LAN 802.11 LAN
BSS)
– iterconnessione di BSS distanti
– compenetrazione fisica di ESS o
tra ESS e IBSS

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Wireless LAN: 802.11
• Le reti wireless rappresentano una tecnologia in
rapida evoluzione per la connessione di computer
• In una rete locale wireless, i dispositivi non sono
collegati fisicamente, ma, per comunicare, usano onde
elettromagnetiche che si propagano nello spazio
• Come altre tecnologie LAN, l’802.11 è progettato per
un impiego in aree geografiche limitate ed ha lo scopo
principale di “fare da mediatore” nell’accesso ad un
mezzo condiviso di comunicazione (in questo caso,
una frequenza radio)

17

WLAN/802.11: livello fisico


• 802.11 è progettato per trasmettere dati usando tre
tecniche differenti:
• frequency hopping
• direct sequence
• diffused infrared
• Le prime due tecniche sfruttano il range di frequenza
intorno ai 2.4 GHz e sono tecniche del tipo “spread
spectrum”:
• L’obiettivo di tali tecniche è quello di diffondere il segnale su
di un intervallo di frequenza ampio, in modo tale da
minimizzare l’effetto dell’interferenza da parte di altri
dispositivi
18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Spread spectrum
• Direct sequence
• 11 canali stazionari da 22 MHz
• data rate = 11 Mbps
• 3 canali non sovrapposti
• codifica del bit in una stringa di bit:
• chipping sequence
• ridondanza in cambio di robustezza al rumore
• trasmissione delle chipping sequence su un range
di frequenze
• cambio di canale in caso di interferenza

• 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

WLAN/802.11: frequency hopping

• Il segnale è trasmesso su una sequenza


“random” di frequenze
• Tale sequenza è in realtà calcolata in maniera
algoritmica, tramite un generatore di numeri
pseudo-casuali
• Il ricevitore:
• utilizza il medesimo algoritmo del mittente
• inizializzazione con il medesimo seme
• è dunque in grado di “saltare” le frequenze in
maniera sincronizzata con il mittente, per ricevere
correttamente le frame

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
WLAN/802.11: direct sequence

• Ogni bit di una frame è rappresentato da


molteplici bit nel segnale trasmesso
• Il mittente invia, in effetti, il risultato dell’OR
esclusivo di tale bit e di n bit scelti in maniera
casuale
• Come nel caso del frequency hopping, la sequenza
di bit casuali è generata da un generatore di numeri
“pseudo-casuali” nota sia al mittente che al
ricevitore
• I valori trasmessi sono noti come chipping
sequence (come nel caso del CDMA)
• L’802.11 utilizza una chipping sequence a 11 bit
21

WLAN/802.11: direct sequence

• Un esempio: chipping sequence a 4 bit

1 Flussi di dati
0 1010

1 Sequenza random
0 0100101101011001

1 Risultato dell’OR esclusivo


0 1011101110101001

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
WLAN/802.11: Medium Access Control

• Il metodo di accesso è simile ad Ethernet:


• Prima di trasmettere, si attende finché il canale
diventa libero
• In caso di collisione:
• algoritmo del binary exponential backoff
• Tuttavia, bisogna tenere in considerazione il
fatto che non tutti i nodi sono sempre alla
portata l’uno dell’altro
• Ciò impone due tipi di problemi:
• Problema del nodo nascosto (Hidden node problem)
• Problema del nodo esposto (Exposed node problem)

23

WLAN/802.1: gestione dell’accesso

Network Allocation
Vector
Distributed Inter-Frame Space

NB: nella frame c’è un


campo duration che dà
un’indicazione relativa
alla durata della
trasmissione dati. Ciò
consente agli altri nodi
di astenersi dalle
Short Inter- trasmissioni per il tempo
Frame necessario a terminare
Spacing l’invio della frame

24

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
WLAN/802.11: Hidden nodes problem

• Le trasmissioni di A non sono ascoltate da C (e


viceversa)
• A e C possono inviare dati simultaneamente verso B
causando una collisione in ricezione
• Né A né C sono in grado di rilevare la collisione
• A e C sono detti nodi nascosti (l’uno rispetto all’altro)

Raggio di B Raggio di C

A B C
Raggio di A

25

WLAN/802.11: attenuazione del segnale (fading)

A e C sono situati …i segnali sono,


in modo che la tuttavia,
forza del loro abbastanza forti
segnale non è da presentare
sufficiente perché interferenza tra
essi possano loro alla stazione
rilevare le B
rispettive
trasmissioni…

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
WLAN/802.11: Exposed nodes problem

• 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

WLAN/802.11: collision avoidance (1/2)

• Lo standard 802.11 risolve i due problemi precedenti


introducendo un algoritmo chiamato CSMA/CA:
• Carrier Sense Multiple Access with Collision Avoidance
• Prima di inviare i dati, il mittente trasmette una frame
di “richiesta di trasmissione”:
• Request to Send (RTS):
• In tale frame è presente anche un campo che indica la lunghezza
della frame dati da trasmettere
• Il ricevitore risponde con una frame di “permesso di
trasmissione”:
• Clear to Send (CTS)
• In tale frame viene replicato il valore relativo alla lunghezza dei dati,
annunciato dal mittente

28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
WLAN/802.11: collision avoidance (2/2)

• Un nodo che vede la frame CTS sa di essere vicino al


ricevitore:
• Esso non può trasmettere per tutto il tempo necessario ad
inviare la frame dati (la cui lunghezza è stata specificata
nella frame RTS)
• Un nodo che vede la frame RTS, ma non quella CTS,
non è abbastanza vicino al ricevitore per interferire
con esso e può quindi trasmettere senza attendere
• Il ricevitore invia un ACK dopo aver ricevuto una frame
• I nodi non rilevano le collisioni:
• Se due nodi inviano una frame RTS in contemporanea,
queste frame collideranno
• I nodi assumono che vi sia stata una collisione se non
ricevono una frame CTS di risposta

29

WLAN/802.11: il CSMA/CA in funzione

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
WLAN/802.11: Distribution system (1/4)

• Pe fornire il supporto alla mobilità e la


connessione ad altre reti (prima tra tutte, la rete
Internet), si utilizzano dei nodi speciali:
• Access Point (AP):
• Si tratta di nodi connessi ad un’infrastruttura di rete fissa,
chiamata Distribution System

AP1 AP2 AP3


A D F
C
B G
E
31

WLAN/802.11: Distribution system (2/4)

• Ogni nodo si associa ad un particolare access point


• Se A vuole comunicare con F:
• A invia una frame al suo access point (AP1)
• AP1 inoltra ad AP3 la frame attraverso il distribution system
• AP3 trasmette la frame ad F

AP1 AP2 AP3


A D F
C
B G
E

32

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
WLAN/802.11: Distribution system (3/4)

• La tecnica per selezionare un Access Point è


detta scanning e prevede quattro passi:
1. Il nodo invia una frame di probe
2. Tutti gli AP alla portata del nodo rispondono con
una frame di risposta al probe
3. Il nodo seleziona uno degli AP (tipicamente quello
con la migliore qualità del segnale ricevuto), e gli
invia una frame di richiesta di associazione
4. L’AP selezionato risponde con una frame di
conferma di associazione

33

WLAN/802.11: Distribution system (4/4)

• Il protocollo descritto è utilizzato:


• Quando il nodo si unisce alla rete
• Quando il nodo diventa “scontento” dell’attuale AP utilizzato
• Questo avviene, per esempio, perché il segnale ricevuto da tale AP
risulta indebolito a causa del fatto che il nodo si sta allontanando da
esso
• Durante lo spostamento, un nodo potrebbe preferire
un nuovo AP ed inviargli una richiesta di associazione:
• Il nuovo AP invia una notifica del cambiamento al vecchio
AP, attraverso il distribution system

34

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
WLAN/802.11: framing
Domanda: perché ci sono 4
campi indirizzo?

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

Sostituzione dei fili con un


minuscolo ricetrasmettitore
radio a basso consumo ed
economico

36

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
Bluetooth: la genesi del progetto
• 1998:
• Nascita dello Special Interest
Group tra Ericsson ed altre
grandi aziende per la
definizione dello standard
Bluetooth
• Formazione del Gruppo di
Lavoro (Working Group) IEEE
802.15 per le WPAN (Wireless
Personal Area Networks):
• interazione tra dispositivi
dislocati su di una singola
persona

37

Bluetooth: lo stack

38

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 19
Bluetooth: livello RF
• Banda ISM (Industrial Scientific
Medical):
• Non è richiesta nessuna licenza
• Interferenza:
• si impiega la tecnica FHSS
• Frequency Hopping Spread
Spectrum
• Sequenza di hopping pseudo-
casuale su 79 canali da 1 MHz
• Locazione delle frequenze:
– 2402+k MHz , k = 0,1,....78
• Modulazione GFSK (Gaussian
Frequency Shift Keying)
• Bit rate:
• 1 Mbps
• Tre classi di potenza

39

Bluetooth: livello baseband

• Protocollo del livello: Link Controller


• Procedure per la sincronizzazione delle unità
• Creazione della piconet
• Selezione dei salti di frequenza
• Correzione degli errori
• Definizione del formato delle frame di basso
livello

40

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 20
Bluetooth: piconet
• Rete ad hoc
• Sette slave al massimo
• Indirizzo IEEE a 48 bit
• AM_ADDR:
• Indirizzo unico piconet

41

Bluetooth: scatternet
• L’unione di due o più piconet

42

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 21
Bluetooth: livello Link Manager

• Cooperazione con i livelli Link Manager di altre


unità
• Setup delle connessioni
• Autenticazione
• Possibilità di trasmissioni codificate
• Configurazione del canale
• Predisposizione modalità di “basso consumo”

43

Bluetooth: altri protocolli


CONNESSIONE A LAN
INTRANET, INTERNET
- SERVIZI CO E CL
- MULTIPLEXING PACCHETTI
BRIDGE PER LA - SEGMENTAZIONE E RIASSEMBLAGGIO
CONNESSIONE
AL MONDO IP EMULAZIONE PORTA
SERIALE RS232
DETERMINA I SERVIZI PRESENTI
CONNESSIONI MODEM-like NELLA PICONET
E DISPONIBILI
ANCHE PER FAX

INTERFACCIA STANDARD
VERSO I LIVELLI INFERIORI

44

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 22
Reti di Calcolatori
Architetture e Protocolli
Giorgio Ventre

Gruppo di Ricerca sull’Informatica Distribuita


Dipartimento di Informatica e Sistemistica
Università di Napoli Federico II

14/06/2006 GV/RC/A&P 1/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

The OSI Reference Model

The Data Link Layer

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

z In a LAN, the Data Link Layer is responsible for


offering access to the network to/from the upper
layers

z Different technical solutions depending on the type


of service required by the applications

z Office automation applications might ask for


simplicity and capillarity, while factory automation
needs performance guarantees in data delivery

14/06/2006 GV/RC/A&P 3/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

The OSI Reference Model: LAN Architectures

z The MAP protocol suite z The TOP protocol suite


» Manifacturing Automation » Technical and Office
Protocol Protocol
» Proposed by GM to have » Proposed by Boeing as a
performance guarantees standard for office
in data delivery for automation
assembly lines » Designed for offering wide
» Based on a token-passing connectivity and
mechanism to have communication to
fairness in media access computers
» Based on a contention
mechanism

14/06/2006 GV/RC/A&P 4/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

2
2
The OSI Reference Model: LAN Architectures

802.10 Security & Privacy


Logical Link
802.2
Sub-Layer
Data
802.1 Bridging Link
Layer
802.3 802.4 802.5 802.6
802
Overview 802.1 MAC
& Management Sub-Layer
Architecture 802.9
Physical Link
Layer

z The IEEE 802 Standard


» Needed to provide a standard for LAN manifacturers (1980)
» Compromise over different technical solutions
» Offers a common interface to the implementation of upper
layers protocols

14/06/2006 GV/RC/A&P 5/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

The OSI Reference Model: LAN Architectures

z IEEE 802.3 - Ethernet (1983)


» Bus Topology with contention based access
z IEEE 802.4 - Token Bus (1983)
» Bus Topology with token-passing mechanism
z IEEE 802.5 - Token Ring (1984)
» Ring Topology with token passing mechanism
z IEEE 802.6 - DQDB (1990)
» Standard for Metropolitan Area Network
z IEEE 802.9 - New for Isochronous LANs
14/06/2006 GV/RC/A&P 6/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

3
3
The OSI Reference Model: LAN Architectures

z The IEEE 802.X Standards have been adopted


or recognized by
» National Bureau of Standards
» International Standard Organisation (ISO) as the
8802.X Standard
» European Computer Manifacturer Association
z They have inspired other important standards
» EIA/TIA 568 for Structured Cabling Systems

14/06/2006 GV/RC/A&P 7/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

ISO/OSI, IEEE 802, EIA/TIA 568

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

z IEEE 802.1 è lo standard che contiene le


specifiche generali del progetto 802
z IEEE 802.1 è uno standard composto da molte
parti tra cui:
» 802.1 Part A: Overview and Architecture
» 802.1 Part B: Addressing Internetworking and
Network Management
» 802.1 Part D: MAC Bridges

14/06/2006 GV/RC/A&P 9/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

Il Data Link nelle LAN

z Le LAN sono reti di tipo broadcast in cui ogni


stazione a livello data link riceve i frame inviati
da tutte le altre stazioni
z Il data link broadcast può essere realizzato sia
con topologie broadcast quali il bus, sia con
topologie punto a punto quali l'anello
z I canali trasmissivi sono sufficientemente
affidabili e non è necessario in genere
correggere gli errori a questo livello

14/06/2006 GV/RC/A&P 10/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

5
5
I Sottolivelli

z Per tener conto delle precedenti peculiarità il


progetto IEEE 802 ha suddiviso il livello data link
in due sottolivelli:
» LLC: Logical Link Control
» MAC: Media Access Control

14/06/2006 GV/RC/A&P 11/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LLC (Logical Link Control)

zÈ l’interfaccia comune a tutte le LAN verso il


livello network.
z I servizi e i protocolli di questo sottolivello sono
descritti nello standard IEEE 802.2

14/06/2006 GV/RC/A&P 12/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

6
6
MAC (Media Access Control)

zÈ specifico per ogni LAN e risolve il problema


della condivisione del mezzo trasmissivo
z Esistono vari tipi di MAC: ad allocazione di
canale fissa o dinamica, deterministici o
statistici, ecc.

14/06/2006 GV/RC/A&P 13/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

IEEE 802.3 (CSMA/CD)

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

IEEE 802.5 (Token Ring)

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

14/06/2006 GV/RC/A&P 16/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 17/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Il pacchetto MAC

zI campi principali di un pacchetto a livello MAC


sono:
OTTETTI 6 6 variabile 4

Indirizzo Indirizzo
DATI FCS
Destinatario Mittente
DSAP SSAP LLC-PDU CRC

14/06/2006 GV/RC/A&P 18/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

LIVELLO FISICO (es, coax + codice di Manchester)

14/06/2006 GV/RC/A&P 19/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Indirizzi MAC

z Si compongono di due parti di 3 Byte:


» I tre byte più significativi indicano il lotto di indirizzi
acquistato dal costruttore della scheda, detto
anche vendor code o OUI (Organization Unique
Identifier).
» I tre meno significativi sono una numerazione
progressiva decisa dal costruttore
» Esempio: una scheda con MAC address 08-00-
2b-3c-07-9a è una scheda prodotta da Digital in
quanto il lotto 08-00-2b è stato acquistato da
Digital
z Sono di tre tipi:
» Single: indirizzo di una singola stazione
» Multicast: indirizzo di un gruppo di stazioni
» Broadcast: indirizzo di tutte le stazioni
14/06/2006 GV/RC/A&P 20/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

10
10
Indirizzo di Broadcast

z Ilbroadcast è un tipo particolare di multicast che


indica tutte le stazioni sulla rete locale
z La sua codifica esadecimale è ff-ff-ff-ff-ff-ff

14/06/2006 GV/RC/A&P 21/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Ricezione

Quando la scheda LAN Rete locale


deve passare la trama
ricevuta alla CPU?

Transceiver
Transceiver
cable

Scheda di Rete Locale

14/06/2006 GV/RC/A&P 22/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

11
11
Ricezione

z Ogni scheda di rete, quando riceve un


pacchetto, lo passa ai livelli superiori nei
seguenti casi:
» Broadcast: sempre
» Single: se il DSAP è uguale a quello hardware della
scheda (scritto in una ROM) o a quello caricato da
software in un apposito buffer
» Multicast: se è stato abilitato via software

14/06/2006 GV/RC/A&P 23/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Indirizzi di Gruppo

z Servono tipicamente per scoprire i nodi


adiacenti
z Esistono due modi diversi di impiego:
» Solicitation: la stazione che è interessata a scoprire
chi offre un dato servizio invia un pacchetto di
multicast all’indirizzo di quel servizio. Le stazioni che
offrono il servizio rispondono alla solicitation
» Advertisement: le stazioni che offrono un servizio
trasmettono periodicamente un pacchetto di
multicast per informare di tale offerta tutte le altre
stazioni
14/06/2006 GV/RC/A&P 24/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

12
12
Primitive di Servizio

zA livello MAC esistono solo tre delle quattro


primitive presenti ai livelli superiori:
» Request
» Indication
» Confirm
z La Response non è usata
z Confirm viene generata o dal protocollo locale,
come indicazione dell'avvenuta trasmissione, o
dal protocollo remoto, come indicazione
dell'avvenuta ricezione.
14/06/2006 GV/RC/A&P 25/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

Primitive di Servizio

LLC LAYER MAC CORRESPONDENT


(a) LAYER LLC LAYER
MA.DATA.request
MA.DATA.confirm
MA.DATA.indication

(b)
MA.DATA.request

MA.DATA.indication
MA.DATA.confirm
TIME

(a) usato da 802.3


(b) usato da 802.4, 802.5, FDDI

14/06/2006 GV/RC/A&P 26/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

13
13
LAN Architectures: Medium Access Control

z The Medium Access Control Problem


» Where can we apply the control ?
– Distributed Control
– Centralised Control
» How can we enforce the control ?
– Sinchronous techniques
– Asinchronous techniques
» Which type of control can we apply ?
– Continuous Traffic
– Bursty Traffic
Are the assumptions still valid today ?
14/06/2006 GV/RC/A&P 27/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

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/06/2006 GV/RC/A&P 28/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

14
14
LAN Architectures: Medium Access Control

z Carrier Sensing Multiple Access (CSMA)


» Very simple model: multiple stations connected
through a shared media (bus)
– Random Access
– Contention
» Derived from the ALOHA Protocols
» Two-state behavior of a system
– Thinking
– Transmitting
» Contention is perceived from destruction/garbling of
data on shared media
14/06/2006 GV/RC/A&P 29/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

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 suffers of inefficiency due to the problem of


detecting collisions
z The effective channel bandwidth is then reduced by the
existence of a “contention” state for the network
z The duration of this state is linked to the
» Frame dimension
» Technique used to detect collisions

Frame Frame Frame Frame

Contention Slots Idle Contention Interval

14/06/2006 GV/RC/A&P 31/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 32/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

LAN Architectures: Ethernet

z Coding should allow


detection of collision
(Manchester) A B

z Frames should be long


enough to ensure collision
detection A B

z A maximum cable length is


set to avoid non detections
due to attenuation A B

z The longer the frame, the


longer the collision state
z Binary Exponential Back-Off t=2T A B

to reduce collision congestion

14/06/2006 GV/RC/A&P 34/


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

The bus topology allows


multicasting
Pad Destination Addr. is a Group Addr.
Frame Check 4 Bytes
to be programmed in the stations
broadcasting
Destination Addr. is 111111

14/06/2006 GV/RC/A&P 35/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Ethernet

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

Tipo di Num Max. Lunghezza Min. velocità Ritardo


Segmento di MAU Massima di propagaz. Max. (ns)

10Base5 100 500 0.77 c (*) 2165


10Base2 30 185 0.65 c 950
FOIRL 2 1000 0.66 c 5000
10baseFL 2 2000 0.66 c 10000
10baseFB 2 2000 0.66 c 10000
10BaseT 2 100 0.59 c 565

* : c = 3 x 108 m/s (velocità della luce nel vuoto)

14/06/2006 GV/RC/A&P 37/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Ethernet

z How Ethernet performs ?


» The random-based contention makes impossible to get any
bounds on the transmission delay induced
» However, a worst case analysis can help us in figuring out
how efficient can be an Ethernet
– High, constant workload from K stations
– Constant transmission probability p (no Exp. backoff)

If A is the probability that the net is already


acquired in a slot, then
A = K p (1 - p) k-1
For p = 1 / K then A = A max = (1 - 1/K) k-1
So A tends to 1 if K tends to infinite

14/06/2006 GV/RC/A&P 38/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

19
19
LAN Architectures: Ethernet

The probability a contention is made of j slots is


j-1
A (1-A)
and the mean number of slots per contention is
j-1
SUMj jA (1-A) = 1/A
A slot has duration 2 τ then mean contention interval w is
w=2τ/Α
If P is the mean frame duration, then we can define the
Efficiency E as
E = P / (P + w) = P / (P + 2 τ / A)

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

LAN Architectures: Token Bus

z IEEE 802.4 - Token Bus


» For automation of assembly lines it is essential to
have deterministic bounds on the worst case
transmission delay Dmax
» A token passing mechanism over a ring seems a
simple solution, since with N stations and for T
frame transmission time, we have
Dmax = NT
» However, a ring topology is very sensitive to
breakage and does not fit well an assembly line
architecture.
14/06/2006 GV/RC/A&P 40/
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 The solution is to define a ring-based logical topology


over a bus architecture
z Each node has a Predecessor and a Successor
z A node passes over the token by broadcasting it on the
bus where it is taken by its Successor

14/06/2006 GV/RC/A&P 41/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Bus

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)

14/06/2006 GV/RC/A&P 42/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

no phase change from 1 to 0


z 2 Frequencies for 1 and 0 + 3 Binary 0

frequencies for control 1 Bit time

z All other frequencies can be


filtered out (noise)

14/06/2006 GV/RC/A&P 43/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Bus

z A token based MAC is very sensitive to token


corruption and station faults
z The MAC protocol must manage events such as
» Stations joining or leaving the ring
» Faulty or powering down stations
» Corrupted tokens/frames
z There is a Tmax maximum
waiting time for DTEs
Tmax = 2 * (TxD + ProcD) + ε

14/06/2006 GV/RC/A&P 44/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

22
22
LAN Architectures: Token Bus

Frame Control specifies if a frame


contains data or control info
Preamble => 1 Byte
If data, contains priority and ack
Start Delimiter (SD) 1 Byte grant information
Frame Control 1 Byte If control, contains message type:
Token passing
Destination Addr. 6 Bytes
Token claim
6 Bytes
Source Addr. (for ring initialization)
Solicit successor
(station joining - periodic)
Data < 8191 Bytes
Who follows me
(lost token)
4 Bytes
Resolve contention
CRC
(multiple new stations)
End Delimiter 1 Bytes
Set successor
(station informs predec.
about leaving)

14/06/2006 GV/RC/A&P 45/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Bus

z Basic network operation


1) Wait for token
2) Transmit Nmax frames in queue
3) Pass token to successor
4) Lissen new traffic
4.1) If valid frames, then my tx was ok
4.2) If frames not valid, then there is a problem
4.2.1) Rigenerate new token
4.2.2) If still nothing, my successor is dead
4.2.3) “Who follows me ?”
4.2.4) Receive “Set successor” & Synchronize Net
14/06/2006 GV/RC/A&P 46/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 47/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Bus

z When the token is received, the station transmits Class


6 packets until HP-THT

z Then, if THT has not expired, it is set to a timer called


Token Rotation Timer (TRT) measuring the time
expired since the last token reception

z The station starts transmitting lower priority packets


until the difference between THT and a fixed value
called Target Token Rotation Time (TTRT) is positive

14/06/2006 GV/RC/A&P 48/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 49/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring

z IEEE 802.5 Token Ring


» Standard originated from/compatible with IBM LAN
» Based on a ring topology
» Stations connected through a serial line, not via a
bus
» Media Access Control based on a token mechanism
» Bandwidth achievable 4 - 16 Mbps
» Star topology possible with concentrators

14/06/2006 GV/RC/A&P 50/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 51/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring

z The network media is a 2 pairs shielded cable


z The signal coding is Differential Manchester
z The physical architecture can be a point-to-point ring or
through a concentrator

Drop Connection
Trunk
Coupling
Unit
MAC
MAC
R T R T R T R T
HUB
Protocol DTE
Firmware

Ring In Ring Out

14/06/2006 GV/RC/A&P 52/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

26
26
LAN Architectures: Token Ring

z Since the ring is realised through point-to-point lines,


the TCU must guarantee data by-passing when a
station is inactive.
z When it is not transmitting, a station is in
listening mode - 1 bit copy mechanism

1 Bit Buffer / Copy Delay

In Out In Out

DTE DTE

To/From Upper Layers


Listening Mode Tx Mode

14/06/2006 GV/RC/A&P 53/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring


Data Frame Format Token Frame Format

Start Delimiter 1 Byte Start Delimiter => 1 Byte

Access Control 1 Byte Access Control (AC) 1 Byte

Frame Control 1 Byte End Delimiter 1 Byte

Destination Addr. 6 Bytes

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

Frame Status 1 Bytes

14/06/2006 GV/RC/A&P 54/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

27
27
LAN Architectures: Token Ring

z Token Ring has also a priority mechanism:


» Each token has a priority assigned
» When a station receives a token with priority P, it
can only transmit frames with priority F > = P
» A station can book a token with a certain priority
» Mechanisms exists in order to avoid “abuses”
» This priority mechanism is not fair as the one
adopted in Token Bus

14/06/2006 GV/RC/A&P 55/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring

z Each MAC Layer maintains two sets of values:


» Priorities:
– Pm: Max priority among the waiting frames
– Pr: Priority of the previous token
– Rr: Reservation contained in the previous token
» Stacks:
– Sr: Stack for the previous Pr
– Sx: Stack for new priorities P

14/06/2006 GV/RC/A&P 56/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

28
28
LAN Architectures: Token Ring

z MAC assignes priority to any tx frame


» P = Current token priority Pr
» R = 0 (to be set by other stations)
z MAC generates a new token with:
» P = Pr, R= Max(Rr,Pm) P constant
if there are no more transmittable frames or no
reservation request with higher P
» P = Max(Rr,Pm), R = 0 P increases
if there are still transmittable frames pending or
there is a reservation request for higher priority

14/06/2006 GV/RC/A&P 57/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring

z We now need a mechanism to lower the priority:


» The station who raises P becames the
stacking station, i.e. a station keeping track of P
» This station will be responsible for
– raising the priority for new reservations
– keeping it the same
– lowering it, as soon as new reservations ask for lower
priorities

14/06/2006 GV/RC/A&P 58/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

29
29
LAN Architectures: Token Ring

z Ring Management - Inizialization


» When switched on, a station makes a Duplication Address
Test (DAT)
» If OK, it send out a Standby Monitor Present (SMP) to inform
the immediate downstream station about its existence.
z Ring Management - Standby Monitor
» Each ring has a monitor station, to check token passing and
transmitting periodic Active Monitor Present (AMP) signals
» In case there are no AMP, a station can send a Claim Token
(CT) frame to become the monitor (FCFS approach)

14/06/2006 GV/RC/A&P 59/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Token Ring

z Ring Management - Active Monitor


» When a station becomes the new monitor, it starts a clock
and sends out a Purge (PRG) frame to eliminate tokens and
frames
» It then sends out a AMP signal to inform the other stations,
and creates a new token
» The other stations move to a Standby Monitor State
z Ring Management - Beaconing
» When a station receives no AMP or frames in an interval, it
transmits a Beacon (BCN) signal to verify the existence of a
connection
» If the signal is not received back from the station, then the
ring is interrupted somewhere
14/06/2006 GV/RC/A&P 60/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

30
30
LAN Architectures: High Speed LANs

z High Speed Lans


» The Performance Problem -
– More stations
– More applications
– More usage
– More media
– More capillarity
Demand for More Bandwidth
» This must cope with the technological limitations of
some LAN architectures

14/06/2006 GV/RC/A&P 61/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: High Speed LANs

z An example: improving Ethernet performance


» If Tc is the delay to detect a collision, and Tix the
delay to transmit a frame, when
Tc << Tix
collision detection is very fast - High efficiency

» Since Tc = 2 x Tp (Prop. delay), a bus performs well


if
Tp / Tix << 1

14/06/2006 GV/RC/A&P 62/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

LAN Architectures: High Speed LANs

z FDDI : ISO 9314


» Token based MAC
» Fibre based (Copper based available - CDDI)
» Ring 1: Primary Ring
» Ring 2: Secondary Ring - Backup / Add. Tx
z Single Attachment Stations (SAS)
z Dual Attachment Stations (DAS)

Longer distances - Higher speed

14/06/2006 GV/RC/A&P 64/


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

14/06/2006 GV/RC/A&P 65/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: High Speed LANs

z FDDI is used
» as a High-Speed LAN for clustering top-end computing
systems (NOW)
» as a High-Speed backbone for LAN interconnection

Building Local Area Network


Backbone

FDDI
Bridge

Campus Network

14/06/2006 GV/RC/A&P 66/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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)

14/06/2006 GV/RC/A&P 67/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Bridging

z The diffusion of LANs brings in several


problems:
» How to connect multiple LANs with similar
technologies
» How to divide a single LAN into separate entities
» How to connect multiple LANs with different
technologies
» How to limit and control the traffic flowing from LAN
to LAN (load balancing and security)

14/06/2006 GV/RC/A&P 68/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

34
34
LAN Architectures: Bridging

Bridging keeps local all the frames to systems in the same


LAN and propagates only frames for external systems

LAN 2

LAN 1 Buiding B

Buiding A
Bridge Computer
Backbone LAN

LAN 3
Office LAN
LAN 4
Buiding C
Buiding D

14/06/2006 GV/RC/A&P 69/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LAN Architectures: Bridging

Bridging is a solution also for the existing limitations


over the extension of a LAN

2.5 Km
LAN 2

Buiding B
Connecting LAN
2.5 Km Bridge Computer
Office LAN

LAN 3

Buiding A
2.5 Km

14/06/2006 GV/RC/A&P 70/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

35
35
LAN Architectures: Bridging

Bridging keeps local all the problems due to


faulty networks or systems
Faulty Missing
Transceiver Terminator
LAN 2

LAN 1 Buiding B

Buiding A
Bridge Computer
Backbone LAN

LAN 3
Office LAN
LAN 4
Buiding C
Buiding D

14/06/2006 GV/RC/A&P 71/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Bridging Operation

Differences in formats and protocols make bridging


a complex task.

Host A Host B

NET PKT
Bridge PKT NET

LLC PKT PKT PKT LLC

802.3 PKT 802.3 PKT 802.4 PKT 802.4 PKT


MAC MAC

PHY 802.3 PKT 802.3 PKT 802.4 PKT 802.4 PKT PHY

CSMA/CD Lan 802.4 Lan

14/06/2006 GV/RC/A&P 72/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

36
36
Bridging Operation

z A long list of problems


» Different frames:
– translation
– fragmentation
» Different data rates:
– buffering
– timing control from faster to slower
» Different MACs
– token vs. collision with different efficiency
» Different maximum frame length
– no solution!
14/06/2006 GV/RC/A&P 73/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

Bridging Disadvantages

z Store&Forward behaviour with additional delay


introduced
z No flow-control at the MAC sublayer, with
possible buffer overflow when the output LAN is
overloaded
z Differences in frame types demand for frame
conversion, with possible multiple errors
introduced during frame relaying

14/06/2006 GV/RC/A&P 74/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

37
37
Bridging Operation

z 802.3 to 802.3: only load differences


z 802.4 to 802.3
» Priority bits missing (bridge lie)
» Acknowledgement request (bridge lie)
z 802.5 to 802.3
» A&C bits missing (bridge lie)
» Priority bits (bridge lie)
z 802.4 to 802.4
» Acknowledgement request (bridge lie)
z 802.5 to 802.4
» A&C bits
» Priority
z 802.5 to 802.5
» A&C bits
14/06/2006 GV/RC/A&P 75/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

14/06/2006 GV/RC/A&P 76/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

38
38
Bridging Operation

z A bridge includes a MAC chipset with a port


management software Station
Address
Port
Num.

Forw.
DataBase

Port Protocol
Mngmt Entity

MAC Memory MAC


Chipset Buffers Chipset

Port 1 Port 2

14/06/2006 GV/RC/A&P 77/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Bridge learning

z The Forwarding Data Base (FDB) is formed by


dynamic learning and interaction with other
bridges
» A newly inserted bridge has an empty FDB
» For each received frame, the source address and
the entry port are stored in the FDB
» To ensure delivery, the frame is forwarded over all
the ports (flooding)
» The procedure is repeated for each frame from a
new source
» OK for static scenarios: no moving stations/links

14/06/2006 GV/RC/A&P 78/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

39
39
Bridge learning

z The Inactivity Timer (IT) is a value in the FDB that


records the silence time of a source.
z When IT > Tmax the entry is removed
z In this way the FDB is formed only of active stations
and has a limited size
z A spanning tree algorithm is used to evaluate the
proper forwarding route in case of multiple paths
z In large networks, stations can move and links can
change state so a new spanning tree must be created

14/06/2006 GV/RC/A&P 79/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Topology Initialization

z Bridges exchange regularly special frames called


Bridges Protocol Data Units (BPDU). These frames are
not directly forwarded, but used to produce new
BPDUs
z Each bridge has an Id and a priority. The root bridge
has the highest priority and smallest Id
z A new bridge starts to operate in the root state and
transmists over all ports the Configuration BPDUs
– Id of the current root (itself initially)
– Path cost to the root (0 initially)
– Id of the transmitter
– Id of the port
14/06/2006 GV/RC/A&P 80/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

40
40
Topology Initialization

z When a bridge receives a BPDU it compares the root


Priority and Id with its own values.
z If this is the case, the bridge sets the new value for the
root and computes the new cost for the root path
z A new Configuration BPDU is formed and forwarded to
all the other ports
z By knowing the costs to the root for each port, a bridge
is designated to be its way to the root. It will be the only
frowarding bridge in that segment
z The Id value is again the tie breaker value

14/06/2006 GV/RC/A&P 81/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Topology change

z The root bridge will transmit regularly Configuration


BPDUs. These are processed by the bridges on the
path to inform all other bridges about changes
z A Message Age Timer is kept for each port. In case of
a port/link failure, the MAT expires and a procedure is
activated to change topology
z Topology Change Notification BPDUs are exchanged
to inform the root about port status modifications
z Exists a procedure also to change the root and the
designated bridge

14/06/2006 GV/RC/A&P 82/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

41
41
Il progetto IEEE 802: il sottolivello LLC

(Local and Metropolitan Area Network)


LIVELLO
Interfaccia unificata con il livello network NETWORK

802.2 Logical Link Control


LLC
ISO 8802.2
LIVELLO
DATA LINK
MAC
802.3 802.4 802.5 802.6 FDDI
ISO ISO ISO ISO ISO LIVELLO
8802.3 8802.4 8802.5 8802.6 9314 FISICO
CSMA/CD TOKEN TOKEN DQDB FDDI
BUS RING
Tecnologie trasmissive differenziate
14/06/2006 GV/RC/A&P 83/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

Il sottolivello LLC

z Definiscei protocolli usati per realizzare una o


più connessioni logiche su di un singolo mezzo
fisico
z LLC deve essere utilizzabile con uno qualunque
dei MAC

14/06/2006 GV/RC/A&P 84/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

42
42
PDU del LLC

z Il campo control permette l’esistenza di tre tipi di


pacchetti:
» Unnumbered
» Supervisor
» Information

OTTETTI 1 1 1o2 variabile

DESTINATION SOURCE
CONTROL INFORMATION
ADDRESS ADDRESS

<= max. ammesso da MAC

14/06/2006 GV/RC/A&P 85/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Condivisione LLC

Livello 3 Livello 3 Altro


OSI TCP/IP livello 3
Scelta basata
su LLC-DSAP

Sottolivello LLC

Sottolivello MAC

14/06/2006 GV/RC/A&P 86/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

43
43
SAP di LLC

z Servono ad indicare quale protocollo di livello


superiore ha originato il pacchetto
z Sono grandi un Byte
» due bit I/G e U riservati
» 64 indirizzi singoli, globali definibili
» ff broadcast
» 00 data link layer itself
1011110
1
I/G (Individual=0, Group=1)
U (Non Universal=0, Universal=1)

14/06/2006 GV/RC/A&P 87/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

SAP LLC Universal

z Gli indirizzi globali sono assegnati dall’ISO solo


per i protocolli progettati da un comitato di
standardizzazione

14/06/2006 GV/RC/A&P 88/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

44
44
Esempi di SAP-LLC

z La codifica 0FEH indica il protocollo ISO 8473


Internet Protocol
z La codifica 042H indica il protocollo IEEE
802.1D Spanning Tree Configuration
z La codifica 0AAH indica un pacchetto LLC
speciale detto SNAP
DSAP SSAP CONTROL INFO

0FEH 0FEH UI
OTTETTI 1 1 1 m

14/06/2006 GV/RC/A&P 89/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

Servizi LLC

z LLC offre al Livello 3 i seguenti tipi di servizio:


» Tipo 1: Unacknowledged Connectionless Service
» Tipo 2: Connection Oriented Service
» Tipo 3: Semireliable Service

14/06/2006 GV/RC/A&P 90/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

45
45
LLC Tipo 1

z Unacknowledged Connectionless Service


z Servizio non connesso
z Non esiste un acknowledge (ACK)
z Se il messaggio è perso o rovinato dai disturbi
non viene fatto nessun tentativo, a questo livello,
di recuperare l'errore
z Nessuna procedura di controllo di flusso: le
trame non sono numerate
z La trasmissione può essere punto-punto,
multipunto o broadcast
14/06/2006 GV/RC/A&P 91/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

Primitive per LLC tipo 1

z Questo servizio LLC è molto semplice e richiede


solo due primitive:
» L.DATA.request
» L.DATA.indication

USER LLC CORRESPONDENT


LAYER USER
L.DATA.request

L.DATA.indication

14/06/2006 GV/RC/A&P 92/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

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

Primitive LLC tipo 2

z Instaurazione della Connessione:


» L.CONNECT.request
» L.CONNECT.indication
» L.CONNECT.confirm
z Trasferimento dei dati:
» L.DATA_CONNECT.request
» L.DATA_CONNECT.indication
» L.DATA_CONNECT.confirm
z Chiusura della Connessione:
» L.DISCONNECT.request
» L.DISCONNECT.indication
» L.DISCONNECT.confirm

14/06/2006 GV/RC/A&P 94/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

47
47
LLC tipo 2

z Reset della Connessione:


» L.RESET.request
» L.RESET.indication
» L.RESET.confirm
z Flow control:
» L.FLOWCONTROL.request
» L.FLOWCONTROL.indication

14/06/2006 GV/RC/A&P 95/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

LLC tipo 2

z Il campo control può essere lungo 1 o 2 Byte


z Il campo control è lungo 2 Byte:
» I: information è il pacchetto di dati. I numeri di
sequenza sono lunghi 7 bit
» RR: Receiver Ready è un ACK frame quando non
esiste traffico per piggybacking
» RNR: Receiver Not Ready come RR, ma invita il
trasmettitore a sospendere la trasmissione
» REJ: Reject indica un errore di trasmissione. Il
mittente deve ritrasmettere tutti i pacchetti a partire
da quello errato
14/06/2006 GV/RC/A&P 96/
GRID - Gruppo di Ricerca sull’Informatica Distribuita

48
48
The ultimate winner in the LAN war

14/06/2006 GV/RC/A&P 97/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

The ultimate winner in the LAN war

14/06/2006 GV/RC/A&P 98/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

49
49
The ultimate winner in the LAN war

14/06/2006 GV/RC/A&P 99/


GRID - Gruppo di Ricerca sull’Informatica Distribuita

50
50
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Protocolli Applicativi:

SMTP-POP3-DNS

Giorgio Ventre
Università di Napoli Federico II

Protocolli Applicativi

• Specificano le regole di comunicazione e di


interoperabilità tra applicazioni
• Tipologie di messaggio
• Sintassi dei messaggi
• Formati dei dati scambiati
• Regole di scambio
• Messaggi di errore e relativa sintassi

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 1
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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 2
Le entità in gioco
Tre entità principali:
user
• user agents agent
• mail servers mail
user
• protocollo SMTP server
agent

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

• “client”: mail server mittente


SMTP
• “server”: mail server destinatario mail user
server agent
• Un “mail server” funge in momenti
diversi da client o da server a
user
seconda del ruolo che ricopre nello coda dei
agent
scambio del messaggio messaggi in uscita
user
agent mailbox

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 3
Caratteristiche di SMTP (1)
• Usa il protocollo TCP (porto 25) per consegnare in modo
affidabile messaggi dal client al server
• Trasferimento diretto dal server mittente al server destinatario
• Tre fasi durante il trasferimento:
• handshaking (“stretta di mano”)
• trasferimento del messaggio
• chiusura della connessione
• interazione comando/risposta (command/response)
• comandi: testo ASCII
• risposta: codice di stato e descrizione (facoltativa)
• messaggi codificati con caratteri ASCII a 7-bit

Caratteristiche di SMTP (2)

• Usa una connessione persistente


• Richiede che il messaggio, comprensivo del
contenuto, sia codificato in caratteri ASCII a 7
bit
• Alcune combinazioni di caratteri non sono
ammesse (p.es., CRLF.CRLF). Quando queste
combinazioni si presentano il messaggio deve
essere opportunamente codificato.
• SMTP usa CRLF.CRLF per determinare la fine
di un messaggio
8

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 4
Esempio di interazione client server
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

SMTP in pratica: uso con telnet (1/2)


• telnet servername 25
• Si osservi il codice 220 di risposta dal server
• Si inseriscano i comandi HELO, MAIL FROM, RCPT TO,
DATA, QUIT
• In questo modo è possibile inviare un’e-mail senza
servirsi dello user agent

10

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 5
SMTP in pratica: uso con telnet (2/2)

11

Formato del messaggio SMTP

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 6
L’estensione MIME

• MIME: Multipurpose Internet Mail Extension, RFC


2045, 2056
• righe aggiuntive nell’intestazione informano della
presenza di un body MIME
From: alice@crepes.fr
versione MIME To: bob@hamburger.edu
Subject: Picture of yummy crepe.
metodo utilizzato MIME-Version: 1.0
per codificare i dati Content-Transfer-Encoding: base64
Content-Type: image/jpeg
tipo, sottotipo
e parametri base64 encoded data .....
del contenuto .........................
......base64 encoded data
dati codificati

13

Messaggi SMTP: un esempio (sniffer Ethereal)

14

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 7
Esempi di tipi MIME
Content-
Content-Type: type/subtype; parameters

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

Esempio di mail “multiparte”


From: alice@crepes.fr
To: bob@hamburger.edu
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789

--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

base64 encoded data .....


.........................
......base64 encoded data
--98766789--

16

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 8
Prelievo della posta: Post Office Protocol (POP3)

• Fino ad ora abbiamo visto come sia possibile trasferire


messaggi tra i vari mail server
• Non abbiamo però ancora parlato di come un utente possa, in
un momento qualsiasi, accedere alla propria casella di posta
elettronica per leggere i propri messaggi
• Per questa operazione è previsto un ulteriore protocollo
• Esso è chiamato POP3 (Post Office Protocol – versione 3) ed è
definito in RFC 1939
• Si tratta sempre di un protocollo client server:
• lo user agent ancora una volta gioca il ruolo di client POP
• il mail server gioca il ruolo di server POP

17

La catena dei protocolli per la posta

SMTP SMTP POP3 o user


user
agent IMAP agent

mail server mail server


mittente destinatario

• SMTP: consegna di messaggi


• Protocolli di accesso alla mail: recupero dei messaggi dai
server
• POP: Post Office Protocol
• autorizzazione (agent server) e download
• IMAP: Internet Mail Access Protocol [RFC 1730]
• più complicato e potente
• manipolazione dei messaggi sul server
• HTTP: Hotmail , Yahoo! Mail, ecc.

18

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 9
Esempio di dialogo POP3
S: +OK POP3 server ready
C: user alice
autorizzazione S: +OK
• comandi del client: C: pass hungry
• user: specifica la username S: +OK user successfully logged on
• pass: specifica la password
C: list
• il server risponde
S: 1 498
• +OK
S: 2 912
• -ERR S: .
fase di scambio C: retr 1
• comandi del client: S: <message 1 contents>
• list: visualizza la lista dei S: .
messaggi C: dele 1
• retr: preleva il messaggio per C: retr 2
numero
S: <message 1 contents>
• dele: elimina il messaggio dal
server
S: .
• quit: chiude la sessione C: dele 2
C: quit
S: +OK POP3 server signing off
19

POP3 in pratica (1/2): telnet cds.unina.it 110

Qui c’era la mia password! ☺

20

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 10
POP3 in pratica (2/2): telnet cds.unina.it 110

21

L’accesso alla posta via WEB


• Molti siti web forniscono accesso alle proprie caselle
di posta (libero, inwind, tin, hotmail, Yahoo!, ecc.)
• In questo caso non serve avere uno user agent
installato e correttamente configurato per ricevere ed
inviare posta.
• È sufficiente disporre di un qualsiasi browser

POP3 HTTP
INTERNET browser
SMTP
mail server web server
destinatario

22

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 11
Domain Name System (DNS)

• Tutti noi siamo oggi abituati a raggiungere un servizio (e quindi


il calcolatore che lo offre) utilizzando nomi simbolici di facile
memorizzazione:
• www.google.com
• www.rai.it
• pippo@unina.it
• Questi nomi non sono immediatamente adatti ad essere
compresi dai dispositivi che costituiscono la rete Internet.
• Un nome di questo tipo, infatti, non dà informazioni esatte sulla
dislocazione sul territorio della macchina che si desidera
contattare.
• I router, di conseguenza, non saprebbero come instradare i dati
in maniera tale da raggiungere la destinazione.

23

Nomi simbolici vs Indirizzi IP

• 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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 12
Il servizio DNS
• Non volendo rinunciare alla comodità di lavorare con
nomi simbolici, è stato necessario progettare un
servizio di risoluzione dei nomi simbolici in indirizzi IP.
• Tale servizio associa ad un nome simbolico univoco
(www.grid.unina.it) un indirizzo IP (143.225.229.3)
permettendo così di raggiungere la macchina.
• Questo servizio si chiama Domain Name System
(DNS) ed è definito in RFC1034 e RFC1035
• Esso funziona attraverso lo scambio di messaggi UDP
sul porto 53.

25

Altre funzionalità offerte


• Alias degli hostname:
• ad una macchina con un nome complicato può essere
associato un “soprannome” più piccolo e semplice da
ricordare.
P.es.: rcsn1.roma.rai.it www.rai.it
• Alias dei server di posta:
• permette di associare un server di posta al nome di un
dominio per facilitare la memorizzazione dell’indirizzo
di posta.
P. es.: pippo@unina.it identifica l’utente pippo sulla
macchina mailsrv1.cds.unina.it. L’associazione unina.it
mailsrv1.cds.unina.it è a carico del servizio DNS.
• Distribuzione del carico: www.domain.com
• quando un server gestisce un carico troppo elevato si –1.2.3.4
suole replicare il suo contenuto su molte macchine –1.2.3.5
differenti. Il servizio DNS può distribuire il carico tra le
macchine rilasciando l’intero pool di indirizzi e –1.2.3.6
ruotandoli ciclicamente ad ogni richiesta, senza che gli –1.2.3.7
utenti si accorgano di nulla. –1.2.3.8

26

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 13
DNS centralizzato?
• Si potrebbe pensare di risolvere il problema piazzando in un
unico punto della terra una macchina che realizzi la risoluzione
di tutti i nomi.
DNS

• Questa soluzione, sebbene teoricamente realizzabile, ha così


tanti svantaggi da risultare impraticabile:
• Single Point of Failure
• Volume di traffico
• Database distante
• Manutenzione

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 14
Tipologie di server DNS (Local)
• Local Name Server (Locale)
• ciascun ente (università, società, etc…) ne installa uno nel
proprio dominio.
• Tutti gli host nel dominio inviano a questo server le proprie
richieste di risoluzione.
• Ciascun host deve essere configurato con l’indirizzo del
DNS server locale per il dominio. Questa configurazione
spesso avviene manualmente, ma in certi casi può avvenire
anche in maniera automatica.

29

Tipologie di server DNS (Root)


• Root Name Server
(Fondamentale)
• Ne esistono varie decine in
Internet e i loro indirizzi sono
ben noti alla comunità.
• Ad essi si riferiscono i Local
Name Server che non
possono soddisfare
immediatamente una
richiesta di risoluzione.
• In questo caso il Local Name
Server si comporta come
client DNS ed invia una
richiesta di risoluzione al
Root Name Server.
30

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 15
Tipologie di server DNS (Authoritative)

• Authoritative Name Server (Assoluto)


• È un server dei nomi capace di risolvere tutti i nomi
all’interno di un dominio.
• P.es.: un server dei nomi assoluto per il dominio unina.it
deve essere capace di risolvere tutti i nomi del tipo
xyz.unina.it
• Ad essi si riferiscono i Root Name Server quando,
interpellati dai Local Name Server, devono risolvere
un indirizzo.

31

Un semplice esempio

L’host surf.eurecom.fr vuole root name server


conoscere l’indirizzo IP dell’host
gaia.cs.umass.edu
1. Contatta il suo Local Name Server: 2 4
dns.eurecom.fr di cui possiede 5 3
l’indirizzo IP
2. dns.eurecom.fr contatta un root
name server, se necessario
3. il root name server contatta local name server authorititive name server
dns.eurecom.fr dns.umass.edu
l’Authoritative Name Server,
dns.umass.edu, se necessario. 1 6

host richiedente gaia.cs.umass.edu


surf.eurecom.fr

32

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 16
Un esempio a più livelli
root name server
Il Root Name Server
potrebbe non 2 6
7 3
contattare
necessariamente
l’Authoritative Name
Server finale, ma un local name server intermediate name server
dns.eurecom.fr dns.umass.edu
Authoritative Name 4 5
1 8
Server intermediario
authoritative name server
dns.cs.umass.edu
host richiedente
surf.eurecom.fr

gaia.cs.umass.edu

33

Richieste Iterative e Ricorsive


root name server
Richiesta Ricorsiva:
• delega al NS contattato iterated query
2
la responsabilità di 3
risolvere l’indirizzo
4
• troppo carico? (p.es.: su un
root NS) 7
local name server intermediate name server
Richiesta Iterativa: dns.eurecom.fr dns.umass.edu
• il server contattato 5 6
1 8
risponde con il nome del
server da contattare
authoritative name server
• “Non so risolvere, ma dns.cs.umass.edu
chiedi a quest’altro host richiedente
surf.eurecom.fr
server”
gaia.cs.umass.edu
34

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 17
Il caching dei nomi

• Per esigenza di efficienza un server DNS


memorizza localmente un certo numero di
corrispondenze
• Per evitare che informazioni non
aggiornate restino nella rete, dopo un
certo tempo (circa un giorno), le
associazioni vengono eliminate dalla
cache

35

Cosa memorizza un DNS

Resource records (RR)


Formato RR: (nome, valore, tipo, ttl)

• 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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 18
Il formato dei messaggi (1)

Protocollo DNS : richieste e risposte, entrambe con lo


stesso formato di messaggio

Header del mess.:


• identification: diverso
numero di 16bit per ogni
richiesta. Le risposte usano
lo stesso identificativo
• flags:
• risposta a richiesta
• ricorsione desiderata
• ricorsione disponibile
• risposta authoritative

37

Il formato dei messaggi (2)

Nome e tipo per


una richiesta

RR in risposta ad
una richiesta

records per
server authoritative
informazioni addizionali
utili che possono
essere utilizzate

38

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 19
I “top-level domain”

int com edu gov mil org net it fr uk de es

Generici Geografici

I domini e le classi di indirizzi in Internet sono gestiti da:


Internet Corporation for Assigned Names and Numbers (ICANN)
www.icann.org
39

Un esempio: configurazione di BIND


$TTL 3600
@ IN SOA grid.grid.unina.it. root.grid.grid.unina.it. (
2004020901 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; Machine Name
localhost A 127.0.0.1

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 20
Un esempio: configurazione del RDNS

$TTL 3600

@ IN SOA grid.grid.unina.it. root.grid.grid.unina.it. (


2004020901 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
NS grid.grid.unina.it.

; 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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 21
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Rete:
IP Multicasting

Giorgio Ventre
Università di Napoli Federico II

IP Multicasting

Il Multicasting IP è un’astrazione fornita da


Internet per emulare il multicasting
hardware, ossia quella serie di meccanismi
utilizzati dalle varie tecnologie per
trasmettere messaggi simultaneamente a
più destinazioni

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
La trasmissione multicast

La trasmissione multicast

Come identificare i ricevitori di un


datagramma multicast?

Come inviare un datagramma ai ricevitori, una volta


identificati?

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
La trasmissione multicast

Address indirection:
da “indirizzo per
destinazione” ad “indirizzo
per evento”

Si utilizza un identificativo unico per il


gruppo di ricevitori e una copia del
datagramma è inviata, utilizzando tale
identificativo, a tutti i membri del gruppo

Gli indirizzi multicast

Ad ogni gruppo è associato un indirizzo multicast,


cioè un indirizzo IP di classe D

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”

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Il gruppo multicast

La gestione dei gruppi

La gestione dei gruppi è di tipo dinamico:

• Un host può unirsi o abbandonare un gruppo in


qualsiasi momento e può appartenere
contemporaneamente a più gruppi
• Non è necessario appartenere ad un gruppo per
poter inviare ad esso dei messaggi
• I membri del gruppo possono appartenere alla
medesima rete o a reti fisiche differenti

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Il multicast router

Si occupa dello smistamento dei datagrammi


multicast, in maniera trasparente riguardo agli
host interessati ad una determinata sessione di
gruppo

Il multicast router: funzionamento

• Ogni elaboratore trasmette i datagrammi multicast


sfruttando il meccanismo hardware messo a
disposizione dalla rete locale su cui si trova

• Se un datagramma giunge al multicast router,


quest’ultimo si occupa, se necessario, di instradarlo
verso le altre reti

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Protocolli per il multicast in Internet

Fornisce ad un host i mezzi


IGMP per informare il multicast
Internet Group router ad esso più vicino
Management Protocol che un’applicazione vuole
unirsi ad un determinato
gruppo multicast

Coordinano i multicast
Algoritmi per il router all’interno della rete
Internet, per permettere
multicast routing l’instradamento dei
datagrammi multicast

11

Protocolli per il multicast in Internet

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Il protocollo IGMP

IGMP serve a garantire la trasmissione, tra host e


multicast router ad essi direttamente collegati, dei
messaggi relativi alla costituzione dei gruppi.
A tal fine, esso utilizza i normali datagrammi IP.
Il raggio di interazione di tale protocollo è locale (cioè
limitato alle reti locali di frontiera)
Datagramma IP

Messaggio
Header IP IGMP
20 bytes 8 bytes

13

Il protocollo IGMP

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Il protocollo IGMP

Tipo di messaggio Inviato da Scopo


Informarsi sui gruppi
membership query: generale router multicast cui gli host locali
partecipano

Informarsi se uno o più host


membership query: specifico router locali partecipano ad un
determinato gruppo multicast

Informa il multicast router


locale che l'host vuole unirsi
membership report host
ad (o fa parte di) un
determinato gruppo multicast

Informa il multicast router


locale che l'host vuole
leave group host
lasciare un determinato
gruppo multicast

15

IGMP : funzionalità

Le funzioni di IGMP sono relative a due fasi differenti:

• Fase 1

Quando un host si unisce ad un nuovo gruppo, invia un


messaggio IGMP ad un particolare indirizzo multicast, detto
“all hosts”. I multicast router appartenenti alla rete locale
sulla quale tale host è situato, ricevono il messaggio e
stabiliscono i meccanismi di routing propagando le
informazioni concernenti il gruppo attraverso la rete
interconnessa

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
IGMP : funzionalità (segue)

• Fase 2

Dovendo gestire i gruppi in maniera dinamica, i


multicast router interrogano periodicamente
(mediante opportune tecniche di “polling”) gli host
sulle varie reti locali, per aggiornare le
informazioni relative alla composizione dei gruppi
stessi

17

IGMP : implementazione

IGMP è stato accuratamente progettato per evitare di aggiungere


carico eccessivo sulla rete:

• esso cerca, laddove possibile, di sfruttare al massimo i


meccanismi hardware dei livelli sottostanti

• il multicast router evita di trasmettere messaggi di richiesta


individuali per ciascun gruppo, cercando, piuttosto, di
raccogliere informazioni relative alla composizione dei singoli
gruppi con una sola richiesta (“poll request”)

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
IGMP : implementazione (segue)

• host appartenenti a più di un gruppo non inviano


risposte multiple in contemporanea, ma le diluiscono, in
maniera random, su di un intervallo di 10 secondi

• ogni host ascolta le risposte inviate dagli altri e


sopprime le proprie nel caso in cui risultino superflue

19

Il routing multicast

Come trovare un albero che


connetta tutti i router
multicast cui siano connessi
host appartenenti ad un
determinato gruppo?

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Il routing multicast: due possibili approcci

Group-shared Tree Source-shared Tree

21

Group-shared Tree

Steiner Tree Problem:


il problema di trovare
un albero a costo
minimo

Tale problema è NP-


completo
Esistono, tuttavia, algoritmi
che approssimano la
soluzione ottimale in
maniera soddisfacente
22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Un’alternativa al 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Differenze tra gli approcci al routing multicast

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

Il Reverse Path Forwarding (RPF)

L’algoritmo “least unicast-cost path tree” è di tipo


“link state”, per cui richiede che ciascun router
conosca lo stato di ciascun link della rete

Quando un router riceve un


pacchetto multicast con un dato
indirizzo sorgente, lo trasmette
Reverse Path su tutte le interfacce di uscita
Forwarding (RPF) solo se il pacchetto è giunto da
un link appartenente al proprio
shortest path verso il sender in
questione

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Il Reverse Path Forwarding

N.B.: In tal caso, D inoltra il pacchetto verso


G, nonostante G non appartenga al gruppo
multicast
27

Il Truncated Reverse Path Forwarding

I router che ricevono pacchetti multicast pur non essendo


connessi ad host appartenenti al gruppo destinazione, inviano un
apposito messaggio di “pruning” verso il router a monte. Un
router che riceve tale messaggio da tutti i suoi successori, itera il
procedimento

28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Protocolli per il multicast in Internet : DVMRP

Distance Vector Multicast Routing Protocol

Implementa un algoritmo source-based tree con RPF,


pruning e grafting (innesto)

Utilizza un algoritmo Distance Vector che permette


ad ogni router di calcolare il link di uscita sul
percorso minimo verso ciascuna possibile sorgente

29

Protocolli per il multicast in Internet : MOSPF

Multicast Open Shortest Path First

Estende OSPF facendo sì che i router si scambino


anche le informazioni relative all’appartenenza ai
gruppi

In tal modo, i router possono costruire alberi


specifici per ogni sorgente, pre-potati, relativi ad
ogni gruppo multicast

30

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Protocolli per il multicast in Internet : CBT

Core-Based Tree

Costruisce un albero “group-shared”


bidirezionale, con un unico centro (“core”)
• L’aggiunta di rami avviene mediante appositi messaggi di “join”
• La gestione dell’albero è affidata a meccanismi di refresh (soft-
state)

31

Protocolli per il multicast in Internet : PIM

Protocol Independent Multicast

Prevede due scenari alternativi:


•dense mode
•sparse mode

32

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 16
Il protocollo PIM

Dato che la maggior parte dei router


Dense mode è coinvolta nella trasmissione,
utilizza un approccio RPF (simile a
quello adottato da DVMRP)

Utilizza un approccio center-based,


Sparse mode in cui i router interessati alla
trasmissione inviano messaggi
espliciti di “join” (simile a CBT)

33

Il routing multicast inter-dominio

Per instradare datagrammi multicast tra differenti


Sistemi Autonomi (Autonomous Systems -- AS)

DVMRP: BGMP:
standard de facto Border Gateway Multicast Protocol
•approccio group-shared
•in corso di sviluppo

34

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 17
La rete MBone: Multicast BackBone

• Un banco di prova semi-permanente per il multicast

• Una rete virtuale che si appoggia su porzioni


dell’Internet fisica

• Composta da “isole” capaci di supportare il multicast


IP (es: reti locali dotate di meccanismi hardware per il
multicasting, quali Ethernet), collegate mediante link
virtuali di tipo punto-punto chiamati “tunnel”

35

MBone : i tunnel multicast

• I pacchetti IP multicast vengono incapsulati prima


di essere trasmessi attraverso i tunnel, in modo da
apparire, all’esame dei router e delle sottoreti
intermediarie, come normali datagrammi unicast

• Un multicast router intenzionato a trasmettere un


pacchetto all’altro capo di un tunnel deve aggiungere
ad esso un ulteriore header IP in cui sia presente,
come indirizzo destinazione, l’indirizzo unicast del
router che si trova al capo opposto del tunnel

36

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 18
MBone : i tunnel multicast (segue)

• Il router situato all’altro estremo del tunnel deve,


alla ricezione del pacchetto, eliminare l’header unicast
che fungeva da capsula e smistare il pacchetto
multicast nel modo appropriato

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 19
Mrouted : funzioni principali
• Propagazione delle informazioni relative al routing :
• mrouted utilizza DVMRP per propagare tali informazioni
• un calcolatore che supporta mrouted è anche in grado di
costruire la “multicast routing table”:
• Impiego di algoritmi quali il Truncated Reverse Path Broadcast
(TRPB)
• Creazione dei tunnel multicast:
• non tutti i router di Internet sono capaci di smistare i
datagrammi di tipo multicast
• mrouted si occupa, quindi, della configurazione di un tunnel tra due
router, attraverso elementi intermediari che non partecipano al
multicasting

39

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 20
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Rete:
Il protocollo IPv6

Giorgio Ventre
Università di Napoli Federico II

IP Next Generation (IPng o IPv6)

• E’ la nuova versione del protocollo di Internet


• Mira a risolvere parte dei problemi che Internet
sta incontrando a causa della sua crescita
vertiginosa
• Principali questioni affrontate:
• indirizzamento e routing
• sicurezza
• configurazione automatica
• servizi di tipo real-time

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
IPv6 : problemi affrontati in fase di progetto

• Supportare reti interconnesse di tipo globale


• Garantire una transizione chiara e diretta
dell’immensa base di sistemi utilizzanti IPv4
• Sostenere l’elevato tasso di crescita delle reti
• Far fronte ai possibili scenari futuri nel mondo
dell’internetworking:
• mobile computing
• networked entertainment
• ecc…

IPv6 : la fase di transizione

• La sfida per IPng è quella di completare la


transizione prima che i problemi di IPv4 legati
all’indirizzamento ed al routing emergano in
tutta la loro tragicità, cioè prima che gli indirizzi
di Internet perdano la loro unicità a livello
globale.
• Ciò richiede:
• una strategia di sviluppo flessibile ed incrementale
• l’interoperabilità tra le due versioni di IP

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
IPv6 : modifiche principali rispetto ad IPv4

• Espansione capacità di indirizzamento e di


routing
• la dimensione degli indirizzi passa da 32 a 128 bit,
per supportare una gerarchia su più livelli ed un
numero di nodi molto più elevato
• la scalabilità del routing multicast è migliorata
grazie all’aggiunta di un campo scope agli indirizzi
di classe D
• viene definito un nuovo tipo di indirizzo (anycast
address)

IPv6 : caratteristiche generali

• Semplificazione del formato


dell’header:
• alcuni campi dell’header (quelli che
vengono sfruttati solo in casi particolari)
sono stati eliminati o resi opzionali
• ciò ha consentito di ottenere che, malgrado
gli indirizzi di IPv6 siano 4 volte più lunghi
di quelli di IPv4, l’header del primo è
soltanto il doppio di quello del secondo
6

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
IPv6 : caratteristiche generali

• Supporto per le opzioni migliorato:


• alcuni cambiamenti nel modo di codificare le
opzioni permettono uno smistamento più efficiente
ed una maggiore flessibilità per introdurre, in futuro,
nuove funzionalità
• Supporto della Quality of Service (QoS)
• viene introdotta una nuova funzionalità per
permettere di etichettare (flow label) i pacchetti
appartenenti a flussi di dati particolari per i quali si
richiede un trattamento di tipo non-default

IPv6 : caratteristiche generali

• Autenticazione e salvaguardia della


privacy:
• definizione di estensioni che forniscono
il supporto per:
• l’autenticazione
• l’integrità dei dati
• la sicurezza, considerata elemento
fondamentale del nuovo protocollo

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Header principale ed extension headers

• L’header IPv6 consiste di due parti:


• header principale
• extension headers:
• introdotti per ospitare le eventuali opzioni
• situati, all’interno del pacchetto, in una posizione
intermedia tra l’header principale e l’header del protocollo
di trasporto
• forniscono, tra l’altro, informazioni relative:
– al routing
– alla frammentazione
– all'autenticazione
– alla sicurezza

L’header principale

0 31
VERS PRIO FLOW LABEL

PAYLOAD LENGTH NEXT HDR HOP LIMIT

SOURCE ADDRESS

DESTINATION
ADDRESS

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
L’header principale

• Vers : numero della versione


• Prio : livello di priorità del datagramma
• Flow Label : associato alla QoS richiesta
• Payload Length : lunghezza del payload
• Next Hdr : tipo di header che segue quello IPv6
• Hop Limit : contatore del numero di hops
• Source Address : indirizzo del mittente
• Destination Address : indirizzo del destinatario

11

La priorità dei pacchetti IPv6

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Il campo Next Header

13

Gli Extension Headers ed il Daisy Chaining

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Gli Extension Headers

• Hop by hop option header


• es: jumbograms
• Routing header:
• strict source routing
• loose source routing
• Fragment header:
• gestisce la frammentazione
• Authentication header
• Encrypted security payload header
• Destination option header
15

Tipi di indirizzo in IPv6

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Modalità di scrittura degli indirizzi in IPv6

17

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Protocolli Applicativi:

HTTP ed FTP

Giorgio Ventre
Università di Napoli Federico II

Web: interazione ClientÆServer

client server
HTTP request
Browser Web Server

APP APP
38355 HTTP response 80
TCP TCP
IP IP
DL DL
PHY PHY

INTERNET
INTERNET

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 1
Il protocollo HTTP
• Si basa su TCP
• Il client apre una socket verso il porto 80 (se non diversamente
specificato) del server
• Il server accetta la connessione
• Il client manda una richiesta
• Il server risponde e chiude la connessione

• Il protocollo HTTP è stateless: né il server né il client


mantengono a livello HTTP informazioni relative ai messaggi
precedentemente scambiati

Es: richiesta di una pagina contenente immagini


1: il client apre una connessione TCP sul
porto 80 verso l’indirizzo www.unina.it

2: il server è in ascolto sul porto 80 ed


accetta la connessione

3: il client invia un messaggio di richiesta


della home page

4: il server analizza la richiesta, prepara la


risposta e la invia al client

5: il server chiude la connessione TCP

6: il client effettua il parsing dello stream


HTML, ne fa il rendering sullo schermo e
rileva che all’interno della pagina sono
presenti 3 collegamenti ad immagini.

7: per ciascuna delle immagini vengono


ripetuti i passi da 1 a 5.

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 2
Connessioni persistenti e non persistenti
non persistente persistente

• 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

Round Trip Time e connessioni HTTP

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 3
Il protocollo HTTP

• Per effettuare richieste, specificare cosa si


richiede, rispondere alle richieste, si rende
necessario un opportuno protocollo.
• Su Internet si usa il protocollo HTTP
• E’ un protocollo testuale
• I messaggi sono costituiti da sequenze di
byte
• Ogni byte identifica un carattere secondo la
tabella ASCII
• In certi casi, il payload dei messaggi può
essere comunque anche in formato binario.

Il messaggio HTTP/1.0 request

Un esempio di messaggio GET

GET /path/pagename.html HTTP/1.0


User-agent: Mozilla/4.0
Accept: text/html, image/gif, image/jpeg
Accept-language: it
RIGA VUOTA

indica la fine del messaggio

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 4
Il messaggio HTTP/1.0 request (cont)

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

Il messaggio HTTP/1.0 response


codice di stato

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 5
Esempi di codici di stato
200 OK
•Successo: l’oggetto richiesto si trova più avanti nel messaggio

301 Moved Permanently


•L’oggetto richiesto è stato spostato.
Il nuovo indirizzo è specificato più avanti nel messaggio
( Location: )

400 Bad Request


•Richiesta incomprensibile al server

404 Not Found


•Il documento non è presente sul server

505 HTTP Version Not Supported


•La versione del protocollo HTTP usata non è supportata
dal server

11

HTTP per il trasferimento di pagine web

• Tipicamente, una pagina web è descritta da un file testuale in


formato HTML (Hypertext Markup Language)
• La pagina è identificata mediante un indirizzo, detto URL
• Un file HTML può contenere riferimenti ad altri oggetti che
arricchiscono la pagina con elementi grafici
• Es. sfondo, immagini, ecc.
• Ciascun oggetto è identificato dal proprio URL
• Questi oggetti possono trovarsi anche su server web diversi
• Una volta ricevuta la pagina HTML, il browser estrae i
riferimenti agli altri oggetti che devono essere prelevati e li
richiede attraverso una serie di connessioni HTTP

12

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 6
HTTP per il trasferimento di pagine web (2)

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

• Un URL HTTP ha la seguente sintassi:


http://host[:port]/path[#fragment][?query]
• Host identifica il server
• Può essere sia un nome simbolico che un indirizzo IP in notazione dotted
decimal
• Port è opzionale; di default è 80
• Path identifica la risorsa sul server
• es: images/sfondo.gif
• #fragment identifica un punto preciso all’interno di un oggetto
• es: #paragrafo1
• ?query è usato per passare informazioni dal client al server
• es: dati inseriti nei campi di una form

14

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 7
La connessione HTTP

client server client server client server


open open open

close
open

close
close
open close

close

HTTP 1.0 HTTP 1.1 HTTP 1.1


con pipelining

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 8
Il metodo HEAD
• Simile al metodo GET, ma il server deve rispondere soltanto
con gli header relativi, senza il corpo
• Usato per verificare:
• la validità di un URI
• la risorsa esiste e non è di lunghezza zero
• l’accessibilità di un URI
• la risorsa è accessibile presso il server, e non sono richieste procedure di
autenticazione del documento
• la coerenza di cache di un URI
• la risorsa non è stata modificata nel frattempo, non ha cambiato lunghezza,
valore hash o data di modifica

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 9
Il metodo PUT
• Il metodo PUT serve per trasmettere delle informazioni dal
client al server, creando o sostituendo la risorsa specificata
• Esempio: upload di un file
• In generale, l’argomento del metodo PUT è la risorsa che ci si
aspetta di ottenere facendo un GET in seguito con lo stesso
nome

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 10
HTTP: Response (2)
• Esempio:

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 11
Status code: esempi
• 100 Continue
• se il client non ha ancora mandato il body
• 200 Ok
• GET con successo
• 201 Created
• PUT con successo
• 301 Moved permanently
• URL non valida, il server conosce la nuova posizione
• 400 Bad request
• errore sintattico nella richiesta
• 401 Unauthorized
• manca l’autorizzazione
• 403 Forbidden
• richiesta non autorizzabile
• 404 Not found
• URL errato
• 500 Internal server error
• tipicamente un programma in esecuzione sul server ha generato errore
• 501 Not implemented
• metodo non conosciuto dal server

23

Gli header di risposta


• Gli header della risposta sono posti dal server per specificare
informazioni sulla risposta e su se stesso al client
• Server: una stringa che descrive il server: tipo, sistema operativo e
versione
• Accept-ranges: specifica che tipo di range può accettare (valori previsti:
byte e none)

24

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 12
Gli header generali
• Gli header generali si applicano solo al messaggio trasmesso e
si applicano sia ad una richiesta che ad una risposta, ma non
necessariamente alla risorsa trasmessa
• Date: data ed ora della trasmissione
• MIME-Version: la versione MIME usata per la trasmissione
(sempre 1.0)
• Transfer-Encoding: il tipo di formato di codifica usato per la
trasmissione
• Cache-Control: il tipo di meccanismo di caching richiesto o
suggerito per la risorsa
• Connection: il tipo di connessione da usare
• Connection: Keep-Alive → tenere attiva dopo la risposta
• Connection: Close → chiudere dopo la risposta
• Via: usato da proxy e gateway
25

Gli header dell’entità


• Gli header dell’entità danno informazioni sul body del messaggio, o, se non
vi è body, sulla risorsa specificata
• Content-Type: il tipo MIME dell’entità acclusa
• Specifica se è un testo, se un’immagine GIF, un’immagine JPG, un suono WAV,
un filmato MPG, ecc…
• Obbligatorio in ogni messaggio che abbia un body
• Content-Length: la lunghezza in byte del body
• Obbligatorio, soprattutto se la connessione è persistente
• Content-Base, Content-Encoding, Content-Language,
Content-Location, Content-MD5, Content-Range: l’URL di base, la
codifica, il linguaggio, l’URL della risorsa specifica, il valore di digest MD5 e
il range richiesto della risorsa
• Expires: una data dopo la quale la risorsa è considerata non più valida
(e quindi va richiesta o cancellata dalla cache)
• Last-Modified: la data e l’ora dell’ultima modifica
• Serve per decidere se la copia posseduta (es. in cache) è ancora valida o no
• Obbligatorio se possibile

26

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 13
I cookies
• HTTP è stateless: il server non è tenuto a mantenere
informazioni su connessioni precedenti
• Un cookie è una breve informazione scambiata tra il server ed il
client
• Tramite un cookie il client mantiene lo stato di precedenti
connessioni, e lo manda al server di pertinenza ogni volta che
richiede un documento
• Esempio: tramite un cookie si viene rediretti sulla pagina in
Italiano tutte le volte che ci si ricollega allo stesso server
(es. www.google.com)
• I cookies sono definiti in RFC 2108 (su proposta di Netscape)

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 14
Cookies: header specifici
• I cookies dunque usano due header: uno per la risposta, ed
uno per le richieste successive:
• Set-Cookie: header della risposta
• il client può memorizzarlo (se vuole) e rispedirlo alla prossima richiesta
• Cookie: header della richiesta
• il client decide se spedirlo sulla base del nome del documento, dell’indirizzo
IP del server, e dell’età del cookie
• Un browser può essere configurato per accettare o rifiutare i
cookies
• Alcuni siti web richiedono necessariamente la capacità del
browser di accettare i cookies

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 15
Server proxy: schema logico

31

Server proxy in una rete di accesso

32

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 16
Gestione della coerenza
• Problema: cosa succede se l’oggetto presente nel server è aggiornato ?
• La copia in cache deve essere aggiornata per mantenersi uguale all’originale
• HTTP fornisce due meccanismi per la gestione della coerenza:
• TTL (Time To Live) : il server quando fornisce un oggetto dice anche quando
quell’oggetto “scade” (header Expires)
• Quando TTL diventa < 0, non è detto in realtà che l’oggetto sia stato
realmente modificato
• Il client può fare un ulteriore controllo mediante una GET condizionale
(If-Modified-Since)
NO GET
La cache contatta
il Content Server
Consegna
Oggetto SI
presente
la copia

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

File Transfer Protocol (FTP)

• 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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 17
Il protocollo FTP
• Un apposito protocollo è stato definito a questo scopo.
• Si chiama File Transfer Protocol (FTP)
• Attraverso di esso è possibile trasferire uno o più files
di qualsiasi tipo tra due macchine.
• Il protocollo FTP è descritto in RFC959

• NOTA: un RFC (Request For Comment) è un documento


pubblico sottoposto alla comunità Internet al fine di essere
valutato. Ciò che è un RFC rappresenta uno standard de facto
nella comunità Internet. Tutti gli RFC possono essere reperiti al
sito dell’Internet Engineering Task Force (http://www.ietf.org)

35

Come funziona FTP

FTP file transfer


FTP FTP
user client server
interface
user
at host local file
system

• trasferisce files da o verso una macchina remota


• usa il modello client/server
• client: è l’entità che dà luogo al trasferimento
(sia in un senso che nell’altro)
• server: è l’entità remota che è in continua attesa
di connessioni FTP da parte di altre entità
• ftp server: numero di porto 21
36

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 18
Le connessioni di una sessione FTP
• Il client ftp contatta il server ftp al porto 21;
• vengono aperte due connessioni parallele:
• controllo: scambio di comandi, messaggi di risposta tra il client e il server
controllo “out of band” (fuori banda)
• dati: file che fluiscono dal client al server o viceversa
• un server ftp mantiene uno stato:
• la directory corrente;
• i dati dell’autenticazione.

TCP control connection


port 21

TCP data connection


FTP port 20 FTP
client server

37

Scambio delle informazioni


• I comandi vengono inviati come testo ASCII sulla
connessione di controllo
• Anche le risposte sono costituite da testo ASCII

• NOTA: il testo ASCII è una sequenza di caratteri testuali


stampabili

38

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 19
Esempi di comandi e codici

Esempi di comandi: Esempi di codici di stato:


• USER username • 331 Username OK,
• PASS password password required
• LIST • 125 data connection
restituisce la lista dei files already open;
presenti nella directory
corrente transfer starting
• GET filename • 425 Can’t open data
preleva il file dalla macchina connection
remota
• PUT filename • 452 Error writing
invia il file alla macchina file
remota

39

Cosa è un server FTP


• Non è possibile per un client stabilire una connessione FTP verso una
qualsiasi macchina
• Il tipo di paradigma adottato (client/server) presuppone infatti che il server
debba essere stato opportunamente configurato per accettare connessioni
• Normalmente non tutte le macchine sono originariamente configurate per
accettare connessioni di tipo FTP; se si tenta di stabilire una connessione
verso una macchina non abilitata la sessione fallisce e nessun trasferimento
risulta possibile
• Ad esempio le macchine dotate di Win98, WinME, WinXP e
Win2000Professional non accettano automaticamente connessioni FTP ma
devono essere opportunamente configurate perché ciò possa avvenire
• Le macchine Linux o Win2000Server, invece, spesso hanno il servizio FTP
già attivo, senza che esso debba essere esplicitamente installato

• I client FTP sono invece disponibili pressoché su tutti i sistemi operativi

40

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 20
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Protocolli Applicativi:

HTTP ed FTP

Giorgio Ventre
Università di Napoli Federico II

Web: interazione ClientÆServer

client server
HTTP request
Browser Web Server

APP APP
38355 HTTP response 80
TCP TCP
IP IP
DL DL
PHY PHY

INTERNET
INTERNET

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 1
Il protocollo HTTP
• Si basa su TCP
• Il client apre una socket verso il porto 80 (se non diversamente
specificato) del server
• Il server accetta la connessione
• Il client manda una richiesta
• Il server risponde e chiude la connessione

• Il protocollo HTTP è stateless: né il server né il client


mantengono a livello HTTP informazioni relative ai messaggi
precedentemente scambiati

Es: richiesta di una pagina contenente immagini


1: il client apre una connessione TCP sul
porto 80 verso l’indirizzo www.unina.it

2: il server è in ascolto sul porto 80 ed


accetta la connessione

3: il client invia un messaggio di richiesta


della home page

4: il server analizza la richiesta, prepara la


risposta e la invia al client

5: il server chiude la connessione TCP

6: il client effettua il parsing dello stream


HTML, ne fa il rendering sullo schermo e
rileva che all’interno della pagina sono
presenti 3 collegamenti ad immagini.

7: per ciascuna delle immagini vengono


ripetuti i passi da 1 a 5.

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 2
Connessioni persistenti e non persistenti
non persistente persistente

• 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

Round Trip Time e connessioni HTTP

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 3
Il protocollo HTTP

• Per effettuare richieste, specificare cosa si


richiede, rispondere alle richieste, si rende
necessario un opportuno protocollo.
• Su Internet si usa il protocollo HTTP
• E’ un protocollo testuale
• I messaggi sono costituiti da sequenze di
byte
• Ogni byte identifica un carattere secondo la
tabella ASCII
• In certi casi, il payload dei messaggi può
essere comunque anche in formato binario.

Il messaggio HTTP/1.0 request

Un esempio di messaggio GET

GET /path/pagename.html HTTP/1.0


User-agent: Mozilla/4.0
Accept: text/html, image/gif, image/jpeg
Accept-language: it
RIGA VUOTA

indica la fine del messaggio

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 4
Il messaggio HTTP/1.0 request (cont)

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

Il messaggio HTTP/1.0 response


codice di stato

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 5
Esempi di codici di stato
200 OK
•Successo: l’oggetto richiesto si trova più avanti nel messaggio

301 Moved Permanently


•L’oggetto richiesto è stato spostato.
Il nuovo indirizzo è specificato più avanti nel messaggio
( Location: )

400 Bad Request


•Richiesta incomprensibile al server

404 Not Found


•Il documento non è presente sul server

505 HTTP Version Not Supported


•La versione del protocollo HTTP usata non è supportata
dal server

11

HTTP per il trasferimento di pagine web

• Tipicamente, una pagina web è descritta da un file testuale in


formato HTML (Hypertext Markup Language)
• La pagina è identificata mediante un indirizzo, detto URL
• Un file HTML può contenere riferimenti ad altri oggetti che
arricchiscono la pagina con elementi grafici
• Es. sfondo, immagini, ecc.
• Ciascun oggetto è identificato dal proprio URL
• Questi oggetti possono trovarsi anche su server web diversi
• Una volta ricevuta la pagina HTML, il browser estrae i
riferimenti agli altri oggetti che devono essere prelevati e li
richiede attraverso una serie di connessioni HTTP

12

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 6
HTTP per il trasferimento di pagine web (2)

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

• Un URL HTTP ha la seguente sintassi:


http://host[:port]/path[#fragment][?query]
• Host identifica il server
• Può essere sia un nome simbolico che un indirizzo IP in notazione dotted
decimal
• Port è opzionale; di default è 80
• Path identifica la risorsa sul server
• es: images/sfondo.gif
• #fragment identifica un punto preciso all’interno di un oggetto
• es: #paragrafo1
• ?query è usato per passare informazioni dal client al server
• es: dati inseriti nei campi di una form

14

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 7
La connessione HTTP

client server client server client server


open open open

close
open

close
close
open close

close

HTTP 1.0 HTTP 1.1 HTTP 1.1


con pipelining

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 8
Il metodo HEAD
• Simile al metodo GET, ma il server deve rispondere soltanto
con gli header relativi, senza il corpo
• Usato per verificare:
• la validità di un URI
• la risorsa esiste e non è di lunghezza zero
• l’accessibilità di un URI
• la risorsa è accessibile presso il server, e non sono richieste procedure di
autenticazione del documento
• la coerenza di cache di un URI
• la risorsa non è stata modificata nel frattempo, non ha cambiato lunghezza,
valore hash o data di modifica

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 9
Il metodo PUT
• Il metodo PUT serve per trasmettere delle informazioni dal
client al server, creando o sostituendo la risorsa specificata
• Esempio: upload di un file
• In generale, l’argomento del metodo PUT è la risorsa che ci si
aspetta di ottenere facendo un GET in seguito con lo stesso
nome

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 10
HTTP: Response (2)
• Esempio:

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 11
Status code: esempi
• 100 Continue
• se il client non ha ancora mandato il body
• 200 Ok
• GET con successo
• 201 Created
• PUT con successo
• 301 Moved permanently
• URL non valida, il server conosce la nuova posizione
• 400 Bad request
• errore sintattico nella richiesta
• 401 Unauthorized
• manca l’autorizzazione
• 403 Forbidden
• richiesta non autorizzabile
• 404 Not found
• URL errato
• 500 Internal server error
• tipicamente un programma in esecuzione sul server ha generato errore
• 501 Not implemented
• metodo non conosciuto dal server

23

Gli header di risposta


• Gli header della risposta sono posti dal server per specificare
informazioni sulla risposta e su se stesso al client
• Server: una stringa che descrive il server: tipo, sistema operativo e
versione
• Accept-ranges: specifica che tipo di range può accettare (valori previsti:
byte e none)

24

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 12
Gli header generali
• Gli header generali si applicano solo al messaggio trasmesso e
si applicano sia ad una richiesta che ad una risposta, ma non
necessariamente alla risorsa trasmessa
• Date: data ed ora della trasmissione
• MIME-Version: la versione MIME usata per la trasmissione
(sempre 1.0)
• Transfer-Encoding: il tipo di formato di codifica usato per la
trasmissione
• Cache-Control: il tipo di meccanismo di caching richiesto o
suggerito per la risorsa
• Connection: il tipo di connessione da usare
• Connection: Keep-Alive → tenere attiva dopo la risposta
• Connection: Close → chiudere dopo la risposta
• Via: usato da proxy e gateway
25

Gli header dell’entità


• Gli header dell’entità danno informazioni sul body del messaggio, o, se non
vi è body, sulla risorsa specificata
• Content-Type: il tipo MIME dell’entità acclusa
• Specifica se è un testo, se un’immagine GIF, un’immagine JPG, un suono WAV,
un filmato MPG, ecc…
• Obbligatorio in ogni messaggio che abbia un body
• Content-Length: la lunghezza in byte del body
• Obbligatorio, soprattutto se la connessione è persistente
• Content-Base, Content-Encoding, Content-Language,
Content-Location, Content-MD5, Content-Range: l’URL di base, la
codifica, il linguaggio, l’URL della risorsa specifica, il valore di digest MD5 e
il range richiesto della risorsa
• Expires: una data dopo la quale la risorsa è considerata non più valida
(e quindi va richiesta o cancellata dalla cache)
• Last-Modified: la data e l’ora dell’ultima modifica
• Serve per decidere se la copia posseduta (es. in cache) è ancora valida o no
• Obbligatorio se possibile

26

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 13
I cookies
• HTTP è stateless: il server non è tenuto a mantenere
informazioni su connessioni precedenti
• Un cookie è una breve informazione scambiata tra il server ed il
client
• Tramite un cookie il client mantiene lo stato di precedenti
connessioni, e lo manda al server di pertinenza ogni volta che
richiede un documento
• Esempio: tramite un cookie si viene rediretti sulla pagina in
Italiano tutte le volte che ci si ricollega allo stesso server
(es. www.google.com)
• I cookies sono definiti in RFC 2108 (su proposta di Netscape)

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 14
Cookies: header specifici
• I cookies dunque usano due header: uno per la risposta, ed
uno per le richieste successive:
• Set-Cookie: header della risposta
• il client può memorizzarlo (se vuole) e rispedirlo alla prossima richiesta
• Cookie: header della richiesta
• il client decide se spedirlo sulla base del nome del documento, dell’indirizzo
IP del server, e dell’età del cookie
• Un browser può essere configurato per accettare o rifiutare i
cookies
• Alcuni siti web richiedono necessariamente la capacità del
browser di accettare i cookies

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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 15
Server proxy: schema logico

31

Server proxy in una rete di accesso

32

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 16
Gestione della coerenza
• Problema: cosa succede se l’oggetto presente nel server è aggiornato ?
• La copia in cache deve essere aggiornata per mantenersi uguale all’originale
• HTTP fornisce due meccanismi per la gestione della coerenza:
• TTL (Time To Live) : il server quando fornisce un oggetto dice anche quando
quell’oggetto “scade” (header Expires)
• Quando TTL diventa < 0, non è detto in realtà che l’oggetto sia stato
realmente modificato
• Il client può fare un ulteriore controllo mediante una GET condizionale
(If-Modified-Since)
NO GET
La cache contatta
il Content Server
Consegna
Oggetto SI
presente
la copia

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

File Transfer Protocol (FTP)

• 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

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 17
Il protocollo FTP
• Un apposito protocollo è stato definito a questo scopo.
• Si chiama File Transfer Protocol (FTP)
• Attraverso di esso è possibile trasferire uno o più files
di qualsiasi tipo tra due macchine.
• Il protocollo FTP è descritto in RFC959

• NOTA: un RFC (Request For Comment) è un documento


pubblico sottoposto alla comunità Internet al fine di essere
valutato. Ciò che è un RFC rappresenta uno standard de facto
nella comunità Internet. Tutti gli RFC possono essere reperiti al
sito dell’Internet Engineering Task Force (http://www.ietf.org)

35

Come funziona FTP

FTP file transfer


FTP FTP
user client server
interface
user
at host local file
system

• trasferisce files da o verso una macchina remota


• usa il modello client/server
• client: è l’entità che dà luogo al trasferimento
(sia in un senso che nell’altro)
• server: è l’entità remota che è in continua attesa
di connessioni FTP da parte di altre entità
• ftp server: numero di porto 21
36

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 18
Le connessioni di una sessione FTP
• Il client ftp contatta il server ftp al porto 21;
• vengono aperte due connessioni parallele:
• controllo: scambio di comandi, messaggi di risposta tra il client e il server
controllo “out of band” (fuori banda)
• dati: file che fluiscono dal client al server o viceversa
• un server ftp mantiene uno stato:
• la directory corrente;
• i dati dell’autenticazione.

TCP control connection


port 21

TCP data connection


FTP port 20 FTP
client server

37

Scambio delle informazioni


• I comandi vengono inviati come testo ASCII sulla
connessione di controllo
• Anche le risposte sono costituite da testo ASCII

• NOTA: il testo ASCII è una sequenza di caratteri testuali


stampabili

38

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 19
Esempi di comandi e codici

Esempi di comandi: Esempi di codici di stato:


• USER username • 331 Username OK,
• PASS password password required
• LIST • 125 data connection
restituisce la lista dei files already open;
presenti nella directory
corrente transfer starting
• GET filename • 425 Can’t open data
preleva il file dalla macchina connection
remota
• PUT filename • 452 Error writing
invia il file alla macchina file
remota

39

Cosa è un server FTP


• Non è possibile per un client stabilire una connessione FTP verso una
qualsiasi macchina
• Il tipo di paradigma adottato (client/server) presuppone infatti che il server
debba essere stato opportunamente configurato per accettare connessioni
• Normalmente non tutte le macchine sono originariamente configurate per
accettare connessioni di tipo FTP; se si tenta di stabilire una connessione
verso una macchina non abilitata la sessione fallisce e nessun trasferimento
risulta possibile
• Ad esempio le macchine dotate di Win98, WinME, WinXP e
Win2000Professional non accettano automaticamente connessioni FTP ma
devono essere opportunamente configurate perché ciò possa avvenire
• Le macchine Linux o Win2000Server, invece, spesso hanno il servizio FTP
già attivo, senza che esso debba essere esplicitamente installato

• I client FTP sono invece disponibili pressoché su tutti i sistemi operativi

40

Corso di Reti di Calcolatori (CdL


Ingegneria delle Telecomunicazioni) -- a.a.
2005/2006 20
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Protocolli Applicativi:

Content Delivery Networks (CDN)


& Peer-to-Peer Networks (P2P)

Giorgio Ventre
Università di Napoli Federico II

Web Caching

Server

2
INTERNET 3

H1 H2 Hn Cache
4

1
2

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Distribuzione dei contenuti off-line

Prelievo da parte del client

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Le reti overlay
• IP nasce come protocollo di internetworking per
nascondere agli strati superiori le carattersitiche della
rete
• Oggi le applicazioni tendono a seguire questa filosofia
cercando di creare dei veri e propri “sistemi di
interconnessione virtuali”
• Questi sistemi di interconnessione sono dette “Reti
Overlay” in quanto si appoggiano sulla rete “fisica”.
• Esse sono indipendenti dalla struttura della rete e
dalle decisioni di instradamento dei protocolli
sottostanti.
5

Le reti overlay

• In queste reti, i sistemi (client e server) si


associano in funzione delle esigenze delle
applicazioni e delle strategie di comunicazione
che la stessa applicazione determina e “misura”
• Un esempio sono i sistemi di Application Layer
Multicast, dove la trasmissione multipla dello
stesso contenuto informativo a più clienti viene
realizzata con dei terminali “multiplexer”, scelti
in funzione del loro essere baricentrici rispetto a
un gruppo di altri terminali.
6

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
P2P con directory centralizzata:

P2P con directory decentralizzata:

NB:
In tal caso si realizza
un’architettura di rete
gerarchica sovrapposta
(overlay network)

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
P2P con directory decentralizzata:

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).

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Livello Trasporto

Application Application
I protocolli di Livello
Presentation Trasporto sono presenti Presentation
solo negli end-system
Session Session

Transport Transport

Network Network Network Network

Data Link Data Link Data Link Data Link


Physical Physical Physical Physical

Servizi e Protocolli del Livello Trasporto


• Offre un canale di
application
comunicazione logica transport
network

tra applicazioni attive data link


physical
network
data link
lo

network physical
su differenti host
icg

data link
a

physical
le

network
nd

• Differenze tra livello data link


-t

physical network
o-

trasporto e livello rete: data link


end

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Servizi del Livello Trasporto - 1

Il livello rete offre un


servizio inaffidabile, quindi:
Transport - affidabile
Il livello trasporto
Network - inaffidabile deve rimediare:
Data Link - affidabile
• aumentare l’efficienza
• aumentare l’affidabilità
Physical - inaffidabile
OSI
In particolare:
• controllo degli errori
Isolare i livelli superiori dai • sequenza ordinata
problemi dovuti all’uso di differenti • controllo di flusso
tecnologie di rete e dalle loro
(eventuali) imperfezioni
• controllo di congestione

Servizi del Livello Trasporto - 2

• I protocolli di Livello Trasporto sono realizzati al


di sopra del Livello Rete, quindi è necessario
gestire:
• apertura della connessione (setup)
• memorizzazione dei pacchetti all’interno della rete
• un numero elevato di connessioni …
• Multiplexing e Demultiplexing

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Multiplexing e Demultiplexing - 1
segment – dati che sono
scambiati tra processi a Demultiplexing: inoltrare
livello trasporto i segment ricevuti al corretto
processo cui i dati sono
destinati
TPDU: transport protocol data unit
receiver
P3 P4
application-layer M M
data
application
segment P1 transport P2
header M
M network
application application
segment Ht M transport transport
network
Hn segment network

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Multiplexing e Demultiplexing: esempi

source port: x Web client


host A dest. port: 23 server B host C

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

I protocolli TCP e UDP

Application Telnet NFS


FTP
Presentation XDR
Transport SMTP
Service Session SNMP RPC
User
Transport TCP e UDP

ICMP Protocolli
Transport Network IP di routing
Service ARP e RARP

Provider Data Link


Non Specificati
Physical
OSI Internet Protocol Suite

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
UDP: User Datagram Protocol [RFC 768]

• Aggiunge poco ad IP:


• servizio “best effort”:
• i pacchetti UDP possono:
– subire perdite
– giungere a destinazione in ritardo, (o non arrivare affatto)
– giungere a destinazione non ordinati
• servizio connectionless:
• non è prevista una fase di inizializzazione
• ogni segmento UDP è inviato indipendentemente dagli
altri
– Domanda: C’è qualcuno in ascolto?

11

UDP: User Datagram Protocol - 2

• Perché è stato introdotto UDP?


• non è necessaria la fase di inizializzazione (setup)
che introduce delay
• Es: DNS è basato su UDP
• semplice: sender e receiver non devono conservare
informazioni di stato
• intestazione di dimensioni contenute:
• basso overhead
• controllo della congestione assente:
• le applicazioni possono inviare alla velocità desiderata
– utile per alcune applicazioni
– rischioso per la rete

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
UDP: User Datagram Protocol - 3

• Ampiamente usato per


applicazioni multimediali: 32 bits
• tolleranti alle perdite di
source port # dest port #
pacchetti
length checksum
• sensibili ai ritardi
Lunghezza
• Altre applicazioni: in bytes del
• DNS segmento UDP,
• NFS (Network File System) header incluso
• SNMP (Simple Network Application
Management Protocol) data
• Domanda: si può rendere UDP (message)
affidabile?
• Gestione degli errori
Formato di un segmento UDP
• Conferma di avvenuta
ricezione)
13

Incapsulamento di segmenti UDP

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello trasporto:

Tecniche di trasmissione affidabile dei dati

Giorgio Ventre
Università di Napoli Federico II

Realizzare una trasmissione affidabile

• Se il livello rete è inaffidabile:


• Presenza di errori
• Perdita di pacchetti
• Ordine dei pacchetti non garantito
• Duplicazione di pacchetti
• Inoltre bisogna tenere in considerazione:
• Le risorse del computer ricevente:
– Controllo di flusso
• Le risorse della rete
– Controllo di congestione

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Realizzare una trasmissione affidabile - 2

• 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

• La prima soluzione introduce complicazioni, la


seconda introduce possibili duplicazioni sulla rete
che il ricevente non è in grado di interpretare

Realizzare una trasmissione affidabile - 3

data ACK = notifica

ACK NAK = notifica


negativa
data
L’errore è rilevato

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
Realizzare una trasmissione affidabile - 4

• Per risolvere il problema dei duplicati che il


ricevente non è in grado di interpretare, occorre
inserire nell’header del segmento da inviare un’
ulteriore informazione:
• numero di sequenza
• Nel caso di protocolli che inviano un messaggio
e quindi aspettano un riscontro prima di
ritrasmettere un nuovo messaggio (stop & wait),
è sufficiente un numero di sequenza su un bit
(0,1). Vediamo un esempio:
5

Realizzare una trasmissione affidabile - 5

data ACK = notifica


(seq.=0)
ACK NAK = notifica
negativa
data
(seq.=1) L’errore è rilevato
Aspetto ancora
NAK data(seq.=1)

data
(seq.=1) Accetto data (seq.=1)
ACK

sender receiver
6

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Realizzare una trasmissione affidabile - 6
Nel caso di canale che
introduce perdita di pacchetti,
t
data è necessario introdurre un
i (seq.=0) altro parametro: il tempo
m ACK
In particolare un conto alla
e
rovescia: timeout
o
u Si può fare a meno dei NAK
t data
(seq.=0) Il receiver si accorge
di aver già ricevuto
ACK data (seq.=0), scarta
tale segmento e invia
nuovamente l’ACK al
mittente
Canale con errori e con
perdita di pacchetti Problema: quanto dovrà
sender receiver essere grande il timeout?
7

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

• Due alternative per il pipelining: go-Back-N,


selective repeat
8

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Go Back-N
Sender:
• Nell’header del segmento k-bit per il num. sequenza
• Una finestra di max N pacchetti senza riscontro
• ACK numerati

• ACK cumulativo: ricevere ACK(n) significa che tutti i pkts


precedenti l’n-esimo sono stati ricevuti correttamente
• Un timer per ogni pacchetto trasmesso e non riscontrato
• timeout(n): ritrasmetti pkt n e tutti i pacchetti che seguono n

Go Back-N in azione

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Selective Repeat

11

Selective Repeat in azione

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello trasporto:

Il Protocollo TCP

Giorgio Ventre
Università di Napoli Federico II

TCP: Transmission Control Protocol

• End-to-end: • full duplex data:


• Una connessione unica tra • Flusso di dati bi-direzionale
mittente e ricevente all’interno della stessa
• Senza errori, sequenza connessione
ordinata. • MSS: maximum segment size

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
Struttura del segmento TCP

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
TCP: PDU

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
TCP: PDU

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
TCP: PDU

La Pseudointestazione viene creata e posta in testa al datagramma TCP. Viene inserito


in essa un ulteriore byte di zeri per raggiungere un multiplo di 16 bit. Successivamente
viene calcolata la checksum su tutto il messaggio così formato, viene scartata la
pseudointestazione e passato il datagramma al livello IP. In fase di ricezione, il livello
TCP ricrea la pseudointestazione interagendo con l'IP sottostante, calcola la checksum
e verifica la correttezza del messaggio ricevuto. In caso di errore il datagramma verrà
scartato (e quindi ritrasmesso dal mittente)

TCP: PDU

• Principali opzioni di TCP


• Maximum TCP payload: durante la fase di connessione, ciascun
end-point annuncia la massima dimensione di payload che
desidera accettare; la minima tra le due dimensioni annunciate
viene selezionata per la trasmissione
• Window Scale: per negoziare un fattore di scala per la finestra;
utile per connessioni a larga banda e/o elevato ritardo di
trasmissione
• Selective Repeat: nel caso in cui un segmento corrotto sia stato
seguito da segmenti corretti, introduce i NAK (Not AcKnowledge),
per permettere al receiver di richiedere la ritrasmissione di quello
specifico segmento; è un’alternativa al “go back n”, che prevede la
ritrasmissione di tutti i segmenti

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
TCP: Caratteristiche

• 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

• Nel datagramma di riscontro la destinazione


comunica quale byte dello stream si aspetta di
ricevere successivamente:
• I riscontri specificano sempre il numero sequenziale
del primo byte non ancora ricevuto
» Esempio: in uno stream di 1000 byte segmentato in blocchi di 100
byte, il primo riscontro conterrà il numero sequenziale 101

• Con questo metodo di riscontro cumulativo si ha il


vantaggio che la perdita di un riscontro non blocca la
trasmissione se confermato dal riscontro successivo

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Round Trip Time e Timeout

Domanda: A che valore deve essere


impostato il timeout?
• Di sicuro sarà maggiore del RTT (Round Trip
Time)
• N.B: RTT varia nel tempo
• Se timeout è scelto troppo breve:
• timeout prematuro
– ritrasmissioni ridondanti
– scarsa efficienza
• Se timeout è scelto troppo lungo:
• scarsa efficienza nella gestione delle ritrasmissioni

13

RTT campionato vs RTT stimato

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Calcolo del timeout
EstimatedRTT = (1-α)*EstimatedRTT + α*SampleRTT

• Una media esponenziale pesata (EWMA: Exponential Weighted


Moving Average) dei campioni:
• L’influenza di un singolo campione sul valore della stima decresce
in maniera esponenziale
• Valore tipico per α: 0.125
Valore del timeout:
• EstimtedRTT più un “margine di sicurezza” proporzionale alla
variabilità della stima effettuata:
• variazione significativa di EstimatedRTT -> margine più ampio:
Timeout = EstimatedRTT + 4*DevRTT, dove:
DevRTT = (1-β)*DevRTT + β *|SampleRTT-EstimatedRTT|

NB: Valore raccomandato per β: 0,25

15

Apertura di una connessione

Il problema dei due eserciti:

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
TCP Connection Management

Mittente e Ricevente Three way handshake:


concordano l’apertura Passo 1: client invia segmento di
controllo TCP SYN al server
della connessione prima di • Specifica il 1° seq #
inviare i dati
Passo 2: server riceve SYN,
--------------------------------------- rsponde con segmento di
Impostare le variabili del controllo SYN/ACK
TCP: • ACK del SYN ricevuto
• Alloca buffer
• Numeri di sequenza • Specifica il 1°seq. # per la
• Allocare i buffer, connessione serverÆclient
impostare un valore Passo 3: client riceve SYN/ACK,
iniziale della invia ACK al server
RcvWindow • Connessione instaurata

17

Three way handshake

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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Chiusura della connessione

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

Chiusura della connessione

Passo 3: client riceve FIN,


risponde con un ACK client server
• Attende in uno stato
closing
TIMED_WAIT (nel caso in FIN
Time_WAIT_1
cui l’ultimo ACK vada perso,
e riceve un ulteriore FIN dal
server) ACK
closing
Passo 4: server, riceve ACK. Time_WAIT_2
FIN
Chiude la connessione
Time_WAIT
timed wait

ACK
N.B: una piccola variante al
Passo 2: il sender invia ACK closed
e FIN contemporaneamente
all’interno dello stesso closed
segmento

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Numeri sequenza ed ACKs

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

Un sender TCP semplificato

22

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11
Alcuni scenari di rilievo - 1

Host A Host B Host A Host B

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

Alcuni scenari di rilievo - 2

Il riscontro cumulativo
evita la ritrasmissione del
primo segmento…

24

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 12
Modifiche tipiche del TCP - 1
• Raddoppio dell’intervallo di timeout:
• Allo scadere di un timeout:
• si imposta il prossimo intervallo al doppio del valore precedente
(invece di usare la stima di RTT)
– Crescita esponenziale degli intervalli dopo ogni ritrasmissione
• Quando il timer viene riavviato (ricezione di un ACK o di
nuovi dati dall’applicazione):
• l’intervallo di timeout viene nuovamente configurato in funzione dei
valori più recenti di EstimatedRTT e DevRTT

• Fornisce una forma limitata di controllo della congestione:


• Il mittente, in caso di supposta congestione (perdita di un segmento),
ritrasmette ad intervalli sempre più lunghi

25

Modifiche tipiche del TCP - 2


• Ritrasmissione veloce:
• ACK duplicati:
• Consentono di rilevare la perdita di un pacchetto prima del timeout
– un receiver che rileva un “buco” nei segmenti ricevuti (ricezione di un
segmento con numero di sequenza maggiore di quello atteso):
» invia un nuovo riscontro per l’ultimo byte di dati che ha ricevuto
correttamente
– poiché il mittente spesso manda molti segmenti contigui, se uno di tali
segmenti si perde, ci saranno molti ACK duplicati contigui:
» un sender che riceve tre ACK duplicati per gli stessi dati assume che il
segmento successivo a quello riscontrato tre volte è andato perso ed
effettua, quindi, una ritrasmissione prima della scadenza del timeout

26

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 13
Diagramma degli stati del TCP
CONNECT / SYN
(Start) CLOSED
CLOSE / --
LISTEN / -- CLOSE / --
SYN / SYN + ACK
LISTEN
SEND /SYN
RST / --
SYN RCVD SYN SENT
SYN / SYN + ACK (simultaneous open)
SYN + ACK / ACK
ESTABLISHED
CLOSE / FIN ACK / -- CLOSE / FIN FIN / ACK

FIN / ACK
FIN WAIT 1 CLOSING CLOSE WAIT
ACK / -- FIN + ACK / ACK ACK / -- CLOSE / FIN

FIN WAIT 2 TIMED WAIT LAST ACK


FIN / ACK
(Timeout /)
Active Close ACK / -- Passive Close
(Go back to Start) CLOSED

27

Sequenza tipica degli stati nel client

28

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 14
Sequenza tipica degli stati nel server

29

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 15
Corso di Laurea in
Ingegneria delle Telecomunicazioni

Corso di Reti di Calcolatori

Il livello Trasporto:
TCP: controllo di flusso e controllo della congestione

Giorgio Ventre
Università di Napoli Federico II

TCP: Controllo di Flusso e di Congestione

Come gestire entrambi i


tipi di controllo?

• Receiver window: dipende


dalla dimensione del buffer di
ricezione
• Congestion window: basata su
una stima della capacità della
rete

I byte trasmessi corrispondono


alla dimensione della finestra
più piccola

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 1
TCP Flow Control

flow control ricevente: comunica


dinamicamente al mittente
Il mittente non dovrà
la dimensione corrente del
sovraccaricare il ricevente
buffer
inviando dati ad una velocità
troppo elevata • campo RcvWindow nel
segmento TCP:
RcvWindow = RcvBuffer –
RcvBuffer = size of TCP Receive Buffer
[LastByteRcvd -
RcvWindow = amount of spare room in Buffer LastByteRead]
mittente: conserva i dati già
trasmessi, ma non
riscontrati, meno la quantità
pari all’ultima RcvWindow
ricevuta:
LastByteSent – LastByteAcked
≤ RcvWindow
receiver buffering
3

TCP: Transmission Policy

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 2
L’algoritmo di Nagle

• Per applicazioni che inviano dati un byte alla


volta (es: TELNET):
• invia il primo byte e bufferizza il resto finché non
giunge l’ACK
• in seguito:
• invia, in un unico segmento, tutti i caratteri bufferizzati
• ricomincia a bufferizzare finché non giunge l’ACK per
ognuno di essi

La sindrome della Silly Window

Sender: invia blocchi grandi

Receiver: legge un
byte alla volta Soluzione di Clark:
Impedisce al
receiver di
aggiornare la
finestra un byte alla
volta

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 3
Controllo della congestione

• Congestione nella rete


• Tecnicamente dovuta a:
• un numero elevato di sorgenti di traffico
• sorgenti di traffico che inviano troppi dati
• traffico inviato ad una frequenza troppo elevata
• In presenza di questi fenomeni, singoli o concomitanti, la
rete è sovraccarica
• effetti:
– perdita di pacchetti:
» buffer overflow nei router
– ritardi nell’inoltro dei pacchetti:
» accodamenti nei buffer dei router

Effetti della congestione: esempi (1/2)

• 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

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 4
Effetti della congestione: esempi (2/2)
Il mittente invia Scadenza
dati solo quando il prematura del
buffer non è pieno: timer del
• caso ideale mittente:
9 no 9 es: ogni
ritrasmissioni segmento è
9 spedito, in
throughput media, due
max = R/2 volte
9 throughput
max = R/4

Il mittente rispedisce un segmento solo


quando è sicuro che sia andato perso:

9 il throughput effettivo è inferiore al


carico offerto (trasmissioni dati originali
+ ritrasmissioni)
9 es: curva in figura

Tecniche di Controllo della Congestione


Approccio end-to-end: Approccio in base a
• Nessuna segnalazione segnalazione della rete:
esplicita dalla rete • I router forniscono
• A partire dall’osservazione di informazioni circa lo stato
ritardi e perdite di pacchetti della rete agli end-system:
gli end-system deducono • l’invio di un singolo bit indica lo
uno stato di congestione stato di congestione
nella rete • SNA, DECbit, TCP/IP ECN,
ATM
• Approccio utilizzato da TCP • in alternativa, il sender è
informato circa la massima
frequenza alla quale può
trasmettere

10

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 5
Feedback di rete: tecniche alternative

11

Controllo della congestione in TCP

• Controllo end-to-end: nessun feedback dalla rete


• Frequenza di trasmissione variabile:
• dipendente dalla cosiddetta finestra di congestione

CongWin

Considerando controllo di flusso e controllo di congestione


insieme, si ha, dunque:

LastByteSent – LastByteAcked ≤ min{RcvWindow, CongWin}

12

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 6
Controllo della congestione: idea di base

• Si procede per tentativi, per stabilire quanto si


può trasmettere:
• obiettivo:
• trasmettere alla massima velocità possibile (Congwin
quanto più grande possibile) senza perdite
• approccio utilizzato:
• incrementare Congwin finchè non si verifica la perdita di
un segmento (interpretata come il sopraggiungere dello
stato di congestione)
• in seguito alla perdita di un segmento:
– decrementare Congwin
– ricominciare daccapo
13

Controllo della congestione: fasi

• Slow Start
• Partenza lenta (per modo di dire!)
• Congestion Avoidance:
• Additive Increase, Multiplicative Decrease (AIMD)
• incremento additivo, decremento moltiplicativo

14

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 7
Lo Slow Start in TCP
Algoritmo Slowstart
Host A Host B
//initialization
Congwin = 1 one segm
ent

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

Controllo della congestione in Internet


È presente un ulteriore parametro: soglia (threshold)
3 ACK duplicati

Congestion
Avoidance

Slow Start

Subito dopo
un timeout
(CongWin = 16)

16

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 8
Dopo lo slow start: AIMD

• 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

AIMD: andamento a “dente di sega”

18

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 9
Ricapitolando…
• Finestra di congestione sotto la soglia:
• Slow start
• Crescita esponenziale della finestra
• Finestra di congestione sopra la soglia:
• Prevenzione della congestione
• Crescita lineare della finestra
• Evento di perdita dedotto da ACK duplicato 3 volte:
• Soglia posta alla metà del valore attuale della finestra
• TCP Reno:
• Finestra posta pari alla soglia
• TCP Tahoe:
• Finestra posta pari ad un segmento (MSS -- Maximum Segment Size)
• Evento di perdita dedotto da timeout:
• Soglia posta alla metà del valore attuale della finestra
• Finestra posta pari ad un segmento (MSS -- Maximum Segment Size)
19

TCP Reno: “fast recovery”

• TCP Reno elimina la fase di partenza lenta


dopo un evento di perdita dedotto dalla
ricezione di tre ACK duplicati:
• tale evento indica che, nonostante si sia perso un
pacchetto, alcuni segmenti sono stati ricevuti dal
destinatario:
• a differenza del caso di timeout, la rete mostra di essere
in grado di consegnare una certa quantità di dati
• è possibile, quindi, evitare una nuova partenza lenta,
ricominciando direttamente dalla fase di prevenzione
della congestione

20

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 10
Equità tra le connessioni TCP
• Ipotesi:
• MSS e RTT uguali per le
due connessioni:
• a parità di dimensioni della
finestra, il throughput è lo
stesso Punto
ideale di
• Entrambe le connessioni funziona
mento
si trovano oltre lo slow
start:
• fase di prevenzione della
partenza
congestione:
– incremento additivo
– decremento moltiplicativo

21

Corso di Reti di Calcolatori (TLC) -- a.a.


2003/2004 11