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
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 z
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
Mercoledì 8.30-10.30 (I1 Biennio) z Venerdì 10.30 – 12.30 (IA2 Agnano) z Orario di ricevimento z
» Per il momento lunedì 14.30-16.30 » Palazzina Ex- Elettrotecnica, IV Piano, Dip. di Informatica e Sistemistica z
Mezzi di comunicazione » Posta elettronica :
[email protected] » 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 z z z z
Presentare Protocolli e Servizi per le moderne Reti di Calcolatori Seguire un approccio metodologico allo studio di un sistema complesso quale è Internet Fare capire il perché di scelte progettuali Darvi nozioni sufficienti a farvi maturare una capacità di analisi critica 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
Trasparenze dalle lezioni z Ulteriori risorse didattiche messe a disposizione dal docente all’interno del sito del corso, raggiungibile a partire da: z
» 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 »
[email protected]
z
Alberto Dainotti »
[email protected]
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 z
Come sta andando il mercato ICT? 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 (Circuit Switching)
Data Networks (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
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
Payload
Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
A rapidly changing scenario
Evolution in technology or what?
Smaller, smarter, cheaper CPU Multiservice Terminals: PC+TV+Phone+… More bandwidth Cellular & Wireless networks Corso di Reti di Calcolatori, Anno Accademico 2005/2006
End of monopolies More competition Global markets Greed
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 Wireless technologies WLAN e WLL Bluetooth GPRS UMTS Corso di Reti di Calcolatori, Anno Accademico 2005/2006
INTERNET as a Global Network
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 & expensive Internet Teorically imperfect In practice, lean & mean Corso di Reti di Calcolatori, Anno Accademico 2005/2006
INTERNET as a Global Network
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 e boom Nascita e boomdelle dellereti retilocali locali Evoluzione verso sistemi Evoluzione verso sistemiaperti aperti Periferia eterogenea ed intelligente Periferia eterogenea ed intelligente Nascita Nascitadegli deglistandard standardper: per: –– Cablaggi strutturati Cablaggi strutturati –– Protocolli ProtocollididiComunicazione Comunicazione
WAN LAN
MAN LAN LAN
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
LAN
MAN LAN
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 » 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
workstation
notebook
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 » distributed file systems » digital libraries (web)
Stream-Based » video: sequence of frames – 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 – Ethernet – ATM – X.25 – Frame Relay – WLAN – GPRS – UMTS
Tecnologie “Wired”
Tecnologie “Wireless”
• 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 accesso
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
Backbone
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
B
C
Coda di pacchetti in attesa di essere trasmessi
D
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
E
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
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
queueing
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 transport network 1. Send data data link physical
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
application transport 2. Receive data network data link physical
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 transport network 1. Send data data link physical
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
application transport 2. Receive data network data link physical
Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Datagrammi vs circuiti virtuali Proprietà
datagrammi
circuiti virtuali
Creazione del circuito Non richiesta ☺
Richiesta
Indirizzamento
Ogni pacchetto contiene l’intero indirizzo della sorgente e della destinazione
Ogni pacchetto contiene un numero di VC ☺
Informazioni sullo stato
I nodi di rete non mantengono informazioni sullo stato ☺
Ogni VC richiede uno spazio di memoria sui nodi
Instradamento
Ogni pacchetto è instradato indipendentemente
Percorso pre-calcolato: ogni pacchetto segue questo percorso ☺
Effetti di guasti ai nodi
Nessuno (solo i pacchetti persi durante il guasto) ☺
Tutti i VC che attraversano quel nodo sono chiusi
Controllo di congestione
Complicato
Semplice se possiamo allocare spazio sufficiente per ogni VC ☺
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
19
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
LAN LAN
MAN MAN
WAN WAN
Capacità à di Banda Capacit
Numero di host connessi
Dimensione della rete
Le reti di calcolatori
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 e Sistemistica, Università di Napoli Federico II
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
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
Strato n+1 protocollo
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
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 M Ht M Hr Ht M Hl Hr Ht M
applicazione trasporto rete data-link fisico
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
destinatario applicazione Ht trasporto Hr Ht rete data-link Hl Hr Ht fisico
M
messaggio
M
segmento
M M
datagram frame
Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
SDU e SAP SAP = Service Access Point SDU = Service Data Unit
SDU del livello n SAP del livello n
Strato n+1 Strato n Strato n-1
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
SDU del livello n-1
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 6 5 4 3 2 1
Applicazione Applicazione Presentazione Presentazione Sessione Sessione Trasporto Trasporto Rete Rete Data DataLink Link 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 L7 L6 L5 L4 L3 L2 L1
End System B
Intermediate System L3 L2 L1
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
L7 L6 L5 L4 L3 L2 L1
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 0
1 0
1 0
1 0
1
1 0
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
0 1
0
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. # (3 Bytes)
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
Device # (3 Bytes)
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
Corso di Reti di Calcolatori, Anno Accademico 2005/2006
6
01011010
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-andForward 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 Corso di Reti di Calcolatori, Anno Accademico 2005/2006 Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II diverso da quello con cui sono stati trasmessi
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 Gli ISP sono collegati tra loro secondo una struttura gerarchica
ISP locale ISP nazionale
» ISP locali » ISP nazionali
Gli ISP nazionali si collegano a fornitori di connettività internazionali: i Network Backbone Provider (NBP) » BBN/GTE, Sprint, UUNet
Gli NBP sono tra loro collegati in punti di interscambio detti NAP, Network Access Point Corso di Reti di Calcolatori, Anno Accademico 2005/2006
NBP B NAP
NAP NBP A
ISP nazionale ISP locale
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:
Internet
» Modem analogico, ISDN, ADSL – 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.
2
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.).
3
Caso d’ d’uso: comunicazione locale
Host Applicazione
Applicazione
socket
socket
Sistema Operativo
•Due applicazioni, localizzate sulla stessa macchina, scambiano dati tra di loro utilizzando l’interfaccia delle socket. •Le socket utilizzate a questo scopo vengono comunemente definite Unix-domain socket.
4
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
2
Caso d’ d’uso: comunicazione remota via TCP/IP
Host1
Host2
Applicazione
Applicazione
socket
socket
Transport (TCP)
Transport (TCP)
Network (IP)
Network (IP)
Data-Link
Data-Link
Physical
Physical
•Anche due applicazioni situate su macchine distinte possono scambiare informazioni secondo gli stessi meccanismi. •Così funzionano telnet, ftp, ICQ, Napster.
Network Network 5
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. 6
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 8
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?…
9
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
•
Principali svantaggi
• Basso overhead • 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() Client socket()
listen() accept() Wait for connection
establishm Connection
Data (request)
ent
connect() 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
write()
Data (reply)
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; char sa_data[14]; }; struct in_addr { u_long s_addr; };
/* address family: AF_xxx value */ /* up to 14 bytes of protocol-specific address */
/* 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; char sun_path[108]; };
/* AF_UNIX */ /* 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. •Dopo l’accept() il descrittore newsockfd ha la quintupla tutta impostata, ed è pronto ad essere utilizzato.
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, … ); if (newsockfd < 0) { err_sys(“accept errror”); if (fork() == 0) { close(sockfd); doit(newsockfd); close(newsockfd); exit(0); } close(newsockfd);
/* blocks */
•sockfd, invece, continua ad avere impostati solo i primi tre campi e può essere usato per accettare le altre connessioni, senza la necessità di istanziare, per questo, una nuova socket.
/* child */ /* process the request */
/* 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, … ); if (newsockfd < 0) { err_sys(“accept errror”); doit(newsockfd); close(newsockfd);
/* blocks */
/* process the request */
}
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 systemsystem-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 systemsystem-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 systemsystem-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 u_long htonl(u_long hostlong); u_short htons(u_short hostshort); u_long ntohl(u_long netlong); u_short ntohs(u_short netshort); •
/* /* /* /*
host to net host to net net to host net to host
long */ short */ long */ 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 #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
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Le funzioni del livello rete application transport network data link physical
• Trasportare i pacchetti dall’host mittente a quello ricevente • Implementare protocolli di livello rete in tutti i router e in tutti gli host
network data link physical
network data link physical network data link physical
network data link physical
network data link physical
network data link physical
network data link physical network data link physical
application transport network data link physical
3
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! 4
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 transport network 1. Send data data link physical
application transport 2. Receive data network data link physical
5
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 transport network 1. Send data data link physical
application transport 2. Receive data network data link physical
6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Lo strato di rete di Internet
7
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 8
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)
9
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
S[i]=x mod B
x div B=0
SI
END
NO i=i+1 x=x div B
i: contatore S: stringa risultato x: numero da convertire B: base
Esempio Vogliamo convertire 25 in binario: 25 mod 2 = 1 ⇒ S=1 25 div 2 = 12 12 mod 2 = 0 ⇒ S=01 12 div 2 = 6 6 mod 2 = 0 ⇒ S=001 6 div 2 = 3 3 mod 2 = 1 ⇒ S=1001 3 div 2 = 1 1 mod 2 = 1 ⇒ S=11001 1 div 2 = 0 END (25)10 = (11001)2
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
223.1.1.1 223.1.1.4 Come trovare le reti? • ‘Staccare’ ogni 223.1.1.3 interfaccia dal corrispondente 223.1.7.0 223.1.9.2 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
Nell’esempio: sistema interconnesso costituito da sei reti
223.1.2.6 223.1.2.1
223.1.3.27 223.1.2.2
223.1.3.1
223.1.3.2
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 1 10
Network
31 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 • 172.16.0.0 - 172.31.255.255 • 192.168.0.0 - 192.168.255.255
Classe A Classe B 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.2
11.2.0.1 11.2.0.254 Router
11.1.0.0
11.1.0.253
11.1.0.3
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 R1
H4
R4
190.3.1.4 190.3.1.5
190.3.7.1
190.3.9.2
Subnet 7
190.3.9.3 Net: 190.3 Mask: 255.255.255.0
190.3.7.2
Subnet 9
R3 H2 190.3.6.8 190.3.6.7
R2 190.3.3.2 H1
FDDI
190.3.3.3
190.3.6.3
190.3.6.2
R5
H3
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 190.3.1.0 190.3.7.0 190.3.9.0
Indirizzo del router 190.3.3.2 190.3.3.2 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 le strade
Dobbiamo scegliere il tipo di strada (Autostrada, Provinciale, Urbana,…) Dobbiamo scegliere le indicazioni della prossima rotonda Dobbiamo scegliere come trasportare
Livello Fisico Cablaggio Strutturato
Livello Data Link Livello Rete
Livello Trasporto
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Il livello rete nella pila OSI
3
Reti di calcolatori e grafi Rete modellata come grafo: • nodi = router • archi = link fisici
5
• costo link: • ritardo, • costo trasmissione, • congestione,…
2
A
B 2
1
D
3
C 3
1
5
F
1
E
2
• 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,…) 5
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
6
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 A B C
1 2 1
Next
Dest
x z z
A B C
W
A B C
Hops Next 2 1 0
Z
w y Network C
0 1 2
Network C
Network A y y
Network A
X
2 1
Dest
Hops Next
3 4
Y
Dest
Hops
A B C
1 0 1
Next x Network B z
Network B 8
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, …
9
Routing: reti a circuiti virtuali • Viene aperta una connessione prima di inviare dati
application 5. Invia flusso dati 4. Connessione transport network 1. Inizia call data link physical
6. Ricevi dati 3. Accetta call 2. Ricevi call
application transport network data link 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 network data link physical
1. invia dati
2. ricevi dati
application transport network 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. net 1 net 2 net 4 net 17 net 24 net 30 net 42
Dist. Route 0 direct 0 direct 8 router L Æ 5 router M 6 router A 2 router Q 2 router A
Tabella del router B
Destin. net 1 net 4 net 17 net 21 net 24 net 30 net 42
Dist. 2 3 6 4 5 10 3
Messaggio di aggiornamento del router A
Æ
Destin. net 1 net 2 net 4 net 17 net 24 net 30 net 42 net 21
Dist. 0 0 4 5 6 2 4 5
Route direct direct router A router M router A router Q router A router A
Tabella aggiornata del router B
(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: • vengono mandate ai vicini le informazioni su tutti (il vettore delle distanze) • Link State: • vengono mandate a tutti informazioni sui vicini • si invia in broadcast un Link State Packet contenente informazioni circa lo stato dei vicini • ogni router contiene la topologia della rete
Distance -vector
Link -state
23
Ricapitolando… Protocolli Ibridi (IS-IS) +
Layer Layer33 protocols protocols
Routed (IP, IPX, NetBEUI)
Types Types
+
+
Link -state
Distance -vector
+
+ Routing (RIP, OSPF)
Updates Updates
Routing Routing
Ogni trasmette routing router trasmette Eachrouter router Each Ogni router update agli altri router solo periodically routing update transmits routing sends ai suoi quando ci sono to stati dei vicini periodicamente information information to all other routers of its neighbors cambiamenti nella topologia each (RIP). only when there (RIP). (OSPF). are changes Problemi: (OSPF/BGP/EGP) Problems: Problemi: - Spreco di Banda • Bandwidth - Flooding Iniziale - Gli update viaggiano -by-step - Problems: Capacità eleborative e di • Step step by step updates • Initial flooding memoria maggiori
Distance Distance metrics metrics Hop count
+
Delay
Load Tick
+
Bandwidth
+
Event driven vs. broadcast
Cost
+
Reliability
+
Statici vs. dinamici
• Processing/memory
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! 3
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)} 4
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
2
Distance Vector: un esempio
A
B
C
E
2
B
D
A
1
14
5
B
7
8
5
C
6
9
4
D
4
11
2
D
E
D
D (C,D) = c(E,D) + minw {D (C,w)} = 2+2 = 4
E
D
D (A,D) = c(E,D) + minw {D (A,w)} = 2+3 = 5 loop!
E
A
2
8 1
E
D ()
destinazione
7
costo per la destinazione via
1
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
A
B
D
A
1
14
5
A
A
1
B
7
8
5
B
D
5
C
6
9
4
C
D
4
D
4
11
2
D
D
2
Distance table
link uscita da usare costo
destinazione
destinazione
D ()
Routing table 6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Distance Vector: ricapitolando… Iterativo, asincrono: ogni iterazione locale è causata da: • Cambiamento di costo di un collegamento • Messaggi dai vicini Distribuito: ogni nodo contatta i vicini solo quando un suo cammino di costo minimo cambia • i vicini, a loro volta, contattano i propri vicini se necessario
Ogni nodo: aspetta notifica modifica costo da un vicino
ricalcola distance table se il cammino meno costoso verso una quanlunque destinazione e’ cambiato, allora invia notifica ai vicini
7
Distance Vector: l’ algoritmo (1/2) Ad ogni nodo, x: 1 Inizializzazione: 2 per tutti i nodi adiacenti v: {il simbolo * significa “per ogni riga” } 3 DX(*,v) = infinito 4 DX(v,v) = c(x,v) 5 per tutte le destinazioni, y 6 manda minWD(y,w) a ogni vicino
8
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
9
Distance Vector : esempio completo (1/2)
X
2
Y 7
1
Z
10
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
5
Distance Vector : esempio completo (2/2)
X
2
Y 7
1
Z
Z
X
D (Y,Z) = c(X,Z) + minw{D (Y,w)} = 7+1 = 8 Y
X
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 costo di un link ad esso connesso • Aggiorna la sua distance table (linea 15 algoritmo) • Se cambia il costo di qualche path allora lo notifica ai vicini (linee 23,24 algoritmo) “le buone notizie” viaggiano veloci
1
X
4
Y
1
50
Z
algoritmo termina
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, le cattive lentamente Problema: “conteggio all’infinito”!
60
X
4
Y
1
Z
50
algoritmo continua!
13
Distance Vector: poisoned reverse Se z raggiunge x tramite y: • z dice a y che la sua distanza per x è infinita (così y non andrà a x attraverso z) • Viene risolto completamente il problema?
60
X
4
Y 50
1
Z
algoritmo termina
14
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
7
Un esempio in cui lo split horizon fallisce 1 1
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 tutti i nodi: • la diffusione è realizzata via “link state broadcast” • tutti i nodi hanno la stessa informazione • Si calcola il percorso minimo da un nodo a tutti gli altri: • l’algoritmo fornisce la tavola di routing per quel nodo • Iterativo: un nodo, dopo k iterazioni, conosce i cammini meno costosi verso k destinazioni
Notazione: • c(i,j): costo collegamento da i a j: • infinito se non c’è collegamento • per semplicità, c(i,j) = c(j,i))
• D(v): costo corrente del percorso, dalla sorgente al nodo v
• 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 2
A 1
B 2
D
3
C 3
1
5
F
1
E
2
30
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
15
Algoritmo di Dijkstra: esempio Step 0 1 2 3 4 5
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinity infinity 2,A 4,D 2,D infinity 2,A 3,E 4,E 3,E 4,E 4,E
start N A AD ADE ADEB ADEBC ADEBCF
Notazione: • c(i,j): costo collegamento da i a j (infinito se non c’e’ collegamento e per semplicità c(i,j) = c(j,i)) • D(v): costo corrente del percorso, dalla
5
A
3
B
2
2 1
C 3
D
1
5
F
1
•
2
E
•
sorgente al nodo v p(v): predecessore (collegato a v) lungo il cammino dalla sorgente a v N: insieme di nodi per cui la distanza è stata trovata 31
Algoritmo di Dijkstra: discussione
Se il costo di un link è proporzionale al traffico su quel link, allora sono possibili oscillazioni
D 1
1 0
A 0 0
C e
inizio
1+e e
B 1
2+e
A
0
0
A
2+e
D 1+e 1 B 0 0 C
D
… ricalcola routing
… ricalcola
1
0 0
C
B
1+e
2+e
A
0
D 1+e 1 B e 0 C
… ricalcola
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
2
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…
3
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
4
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
2
Il routing in Internet: com’era e com’è Single backbone
Org1
Site1
Site2
Org2
Site3
Site1
Site2
Site3
Org 3
LAN1
LAN2
LAN3
LAN1
LAN2
Org1
LAN3
Org2 Site1
Site2
Site3
Site1 LAN1
LAN2
Site2
Site3
LAN3
LAN1
LAN2
LAN3
5
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
6
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)
7
AT&T (AS-7018)
Background image courtesy JHU, applied physics labs
8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Sprint (AS-1239)
Background image courtesy JHU, applied physics labs
9
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
a
C
Gateway:
B.a A.a
b
A.c d A
a
a b
c
• eseguono interAS routing fra loro • eseguono intraAS routing con altri router nel loro AS
b
B
c
network layer inter-AS, intra-AS routing nel gateway A.c
link layer physical layer
15
Instradamento gerarchico in Internet (3/4) Inter-AS routing tra gli AS A e B
C.b
a Host h1
C
B.a A.a
b
A.c a
d c b A Intra-AS routing dentro l’AS A
a
c B
Host h2 b
Intra-AS routing dentro l’AS B Domande: • 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 è usato per migliorare la scalabilità:
La tabella di routing dice che il percorso che usa l’area 4 è migliore del percorso attraverso le aree 3, 2, 1 e 4
• con 150 milioni di destinazioni: • non è possibile memorizzare tutte le destinazioni nelle routing table • lo scambio di tabelle di routing così grandi diminuisce notevolmente la banda utilizzata
area 4 area 3
area 2
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
2
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 Ht M Hn Ht M Hl Hn Ht M
application transport network link physical
data link protocol phys. link
network link physical
Hl Hn Ht M frame
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…
4
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
5
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 fullduplex 7
Rilevazione degli errori
EDC: Error Detection & Correction D: Dati 8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Controllo di parità Parità ad un bit:
Rilevazione errori su un singolo bit
Parità a due bit:
Rilevazione e correzione di errori su un singolo bit
9
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 come una sequenza di interi espressi su 16 bit • checksum: addizione (in complementi ad 1) del contenuto del segmento • La checksum calcolata viene inserita all’interno di un apposito campo dell’header del segmento
• Calcola il complemento ad 1 della somma dei dati ricevuti (compresa la checksum) • Risultato composto da tutti bit pari ad 1? • NO: errore! • SI: nessun errore rilevato… • …il che non vuol dire che non vi siano stati 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: • •
sia divisibile esattamente per G (modulo 2) Il ricevente, che deve conoscere G, divide 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 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: R = resto[
D.2r ] G
Un esempio con r=3
NB: tutti I calcoli sono eseguiti in aritmetica modulo 2 senza riporti in 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, è: S = throughput = “goodput” (success rate)
» 1/2e, pari a circa il 18%
0.4 0.3
Slotted Aloha
0.2 0.1
Pure Aloha 0.5
1.0
1.5
il protocollo limita il throughput effettivo del canale di trasmissione!
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 nodi slave a trasmettere in maniera alternata • Impiego di messaggi del tipo “Request to Send”, “Clear to Send” • Problemi da affrontare:
• Un “gettone” (token) di controllo viene passato da un nodo al successivo in maniera sequenziale • Il possesso del token dà diritto a trasmettere • Problemi da affrontare:
• Overhead dovuto al polling • Latenza • Presenza di un single point of failure (master)
• Overhead nella gestione del token • Latenza • 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
2
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 3
Indirizzi LAN Ogni scheda di rete su una LAN ha un indirizzo LAN univoco
4
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
6
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 7
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
8
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} 9
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
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
ICMP
3
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
4
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
2
Esempio di traceroute (1/9)
5
Esempio di traceroute (2/9)
6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Esempio di traceroute (3/9)
7
Esempio di traceroute (4/9)
8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Esempio di traceroute (5/9)
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 HLEN
PLEN
Protocol Type 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
IP: 192.168.1.3 netmask: 255.255.255.0
IP: 192.168.1.1 netmask: 255.255.255.0
rete: netmask:
192.168.1.0 255.255.255.0
A ha intenzione di inviare un pacchetto a B. Prima Domanda: 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: E’ proprio l’indirizzo della sottorete IP cui appartiene A
IP di B
192.168.1.2 AND netmask A 255.255.255.0 = 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 netmask: 255.255.255.0
Default router IP: 192.168.1.254 netmask: 255.255.255.0
A
B
R1
CDN
R2
Y
X
Rete IP di classe C
Rete IP di classe C
rete: netmask:
rete: netmask:
192.168.1.0 255.255.255.0
192.168.3.0 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
Non è l’indirizzo della sottorete cui appartiene A Æ Occorre inviare il pacchetto al router.
192.168.3.3 AND netmask A 255.255.255.0 = 192.168.3.0
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 2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Sistemi Wireless
3
Stime di mercato Numero di apparati
Potenziale di mercato mondiale
Modalità di utilizzo
Stimoli
Potenziale di mercato europeo
Ostacoli
Luoghi di utilizzo
Dinamica dei costi
4
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
2
Numero di apparati
5
Potenziale di mercato mondiale
6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Potenziale di mercato europeo
Terminal end User in Europa
7
Luoghi di utilizzo
8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Modalità di utilizzo
9
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 dei cavi • degradazione delle prestazioni nel tempo causata da: • degradazione delle caratteristiche elettriche dei conduttori dovuta a agenti atmosferici • riflessioni dovute a giunzioni imperfette tra cavi
• rottura di cavi e connettori durante l’uso
• riorganizzare o aggiungere uffici • implementare reti temporanee prima della la posa di cavi • Ridurre i costi per manutenzione e sostituzione dei cavi in presenza di guasti
• Mobilità • libertà di movimento dell’utente senza perdita della connessione
• Scalabilità
• Motivazioni di ordine logistico: • cablaggio tra edifici separati da ostacoli quali fiumi, laghi, ecc. • cablaggio in ambienti a logistica complessa • cablaggio in edifici di interesse storico e/o artistico
• semplicità di connessione e configurazione in caso di incremento del numero degli utenti
• Flessibilità • numero variabile di utenti che si collegano alla rete
13
Problemi LAN wireless •
Inaffidabilità del mezzo trasmissivo: •
• interferenze elettromagnetiche • interferenze dovute ad “affollamento” della banda
•
•
•
sovrapposizione del segnale trasmesso e delle sue riflessioni dovute a pareti e oggetti metallici Soluzioni: • sistema di ricezione, 2 antenne • elaborazione del segnale ricevuto
•
Sicurezza •
•
libero accesso al mezzo condiviso
Mobilità •
Consumo di energia •
•
“power saving” per massimizzare la durata delle batterie
Area di copertura • •
necessità di garantire il corretto funzionamento dei protocolli di livello rete
Multipath fading in ricezione •
•
range e velocità di trasmissione influenzate da:
vincolata dal consumo di energia dipende da: • interferenze • vleocità di trasmissione
•
Salute
•
Legislazione
• •
•
limitare emissione elettromagnetica ogni nazione regolamenta l’occupazione delle frequenze
Interoperabilità • •
vari produttori presenza di organismi per il rilascio di certificazioni di conformità agli standard (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) •
•
• •
funzione logica che in un BSS assegna alle STA i diritti a trasmettere/ricevere Distribuited Coordination Function (DCF): accesso distribuito Point Coordination Function (PCF): accesso centralizzato
Extended Service Set (ESS) •
•
insieme di STA controllate dalla medesima Coordination Function
Coordination Function •
•
Distribuition System (DS) •
Base Service Set (BSS) •
•
•
stazione 802.11
insieme di BSS e LAN visto dal LLC delle STA associate a tali BSS come un’unica BSS
•
Access Point (AP):
•
Independent Basic Service Set (IBSS)
• • •
• •
rete ad hoc è priva di accessi al DS punto logico di ingresso nel DS di un ESS non 802.11
Wireless medium (WM) •
•
punto di accesso a un DS
Portal •
Basic Service Area (BSA) •
interconnette BSS e LAN per formare un ESS
mezzo attraverso il quale comunicano livelli fisici una WLAN
Distribuition system medium (DSM) •
area di comunicazione dei membri di un BSS
mezzo attraverso il quale, in un ESS, il 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 • un unico IBSS a livello Logical Link Control (LLC) • superamento della distanza fra stazioni imposta dal livello fisico BSS2 • mobilità delle stazioni tra BSS “LLC-trasparente” • possibilità varie: – sovrapposizione dei BSS (estensione della copertura del BSS) – iterconnessione di BSS distanti – compenetrazione fisica di ESS o tra ESS e IBSS
802.11 LAN
802.x LAN
BSS1 PORTAL
DS
BSS3
ESS 802.11 LAN
802.11 LAN
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 0 1 0 1 0
Flussi di dati 1010 Sequenza random 0100101101011001 Risultato dell’OR esclusivo 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
Short InterFrame Spacing
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 trasmissioni per il tempo necessario a terminare 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 A
Raggio di C
A
B
C
25
WLAN/802.11: attenuazione del segnale (fading)
A e C sono situati in modo che la forza del loro segnale non è sufficiente perché essi possano rilevare le rispettive trasmissioni…
…i segnali sono, tuttavia, abbastanza forti da presentare interferenza tra loro alla stazione B
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 A
AP3
AP2 D
B
C E
F G 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 A
D B
AP3
AP2 C E
F G
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
bit
6 1 1 Type ToDS FromDS
• Type: • • • •
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 pseudocasuale 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 EMULAZIONE PORTA AL MONDO IP 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 » Manifacturing Automation Protocol » Proposed by GM to have performance guarantees in data delivery for assembly lines » Based on a token-passing mechanism to have fairness in media access
14/06/2006 GV/RC/A&P 4/
z
The TOP protocol suite » Technical and Office Protocol » Proposed by Boeing as a standard for office automation » Designed for offering wide connectivity and communication to computers » Based on a contention mechanism
GRID - Gruppo di Ricerca sull’Informatica Distribuita
2 2
The OSI Reference Model: LAN Architectures 802.10 Security & Privacy
Logical Link Sub-Layer
802.2
Data Link Layer
802.1 Bridging 802 Overview & Architecture
802.3
802.4
802.5
802.6 MAC Sub-Layer
802.1 Management
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
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 7/
ISO/OSI, IEEE 802, EIA/TIA 568
Applicazione Presentazione Sessione Trasporto P A B X
. . .
Rete IEEE 802
EIA/TIA 568 (*) (*) in futuro ISO/IEC 11801 14/06/2006 GV/RC/A&P 8/
Data Link Fisico
7 6 5 4 3 2 1
WAN 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 GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 17/
Il pacchetto MAC
zI
campi principali di un pacchetto a livello MAC sono: OTTETTI
6
Indirizzo Destinatario DSAP
14/06/2006 GV/RC/A&P 18/
6
Indirizzo Mittente SSAP
variabile
4
DATI
FCS
LLC-PDU
CRC
GRID - Gruppo di Ricerca sull’Informatica Distribuita
9 9
MAC-PDU e LLC-PDU Network PDU
LLC PDU
LLC-DSAP LLC-SSAP CONTROL NPDU
MAC MAC-DSAP MAC-SSAP PDU
LLC PDU
FCS
LIVELLO FISICO (es, coax + codice di Manchester) GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 19/
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-002b-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 Il
broadcast è 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 deve passare la trama ricevuta alla CPU?
Rete locale
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
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 23/
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. GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 25/
Primitive di Servizio
(a)
LLC LAYER
MAC LAYER
CORRESPONDENT LLC LAYER
MA.DATA.request MA.DATA.confirm MA.DATA.indication
(b) MA.DATA.request MA.DATA.indication MA.DATA.confirm
(a) (b) 14/06/2006 GV/RC/A&P 26/
TIME
usato da 802.3 usato da 802.4, 802.5, FDDI 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
z
z
Reservation » Static or dynamic channel assignment » Centralised or distributed control » Suited for continuous traffic Round Robin » Static or dynamic cyclic channel assignment » Centralised or distributed control » For bursty and continuous traffic 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 z z
CSMA suffers of inefficiency due to the problem of detecting collisions The effective channel bandwidth is then reduced by the existence of a “contention” state for the network The duration of this state is linked to the » Frame dimension » Technique used to detect collisions
Frame
Frame
Contention Slots
Frame
Frame
Idle
14/06/2006 GV/RC/A&P 31/
Contention Interval
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
z
z
z z
Coding should allow detection of collision (Manchester) Frames should be long enough to ensure collision detection A maximum cable length is set to avoid non detections due to attenuation The longer the frame, the longer the collision state Binary Exponential Back-Off to reduce collision congestion
14/06/2006 GV/RC/A&P 34/
t=2T
A
B
A
B
A
B
A
B
GRID - Gruppo di Ricerca sull’Informatica Distribuita
17 17
LAN Architectures: Ethernet
Preamble
7 Bytes
Start of Frame (SFD)
1 Byte
Destination Addr.
6 Bytes 6 Bytes
Source Addr. Length
2 Bytes
• Operational Parameters • Bit Rate 10 Mbps • Slot Time 512 Bit/t • Interframe gap 9.6 µsec • Backoff limit 10 • Attempt limit 16 • Jam size 32 bits • Maximum Frame 1518 bytes • Minimum Frame 512 bytes
< 1518 Bytes
Data
Pad Frame Check
4 Bytes
The bus topology allows multicasting Destination Addr. is a Group Addr. to be programmed in the stations broadcasting Destination Addr. is 111111 GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 35/
LAN Architectures: Ethernet RX Algorithm
WAIT PACKET FORM FRAME
Y
N
CARRIER ON ?
SIGNAL RX ?
Y
N
CARRIER = ON SYNC & WAIT SFD START RX
WAIT FRAME GAP TX FRAME
Y
N
COLLISION ?
FCS & SIZE ?
N
Y
COMPLETE TX TX = OK
ATTE_MAX = TRUE TX = NOK
TX JAM ATTE ++
DEST_ADD ?
N
Y
Y MAX ATTE ?
SEND FRAME UP
DROP FRAME
N
TX Algorithm 14/06/2006 GV/RC/A&P 36/
BACKOFF = R(ATT) WAIT BACKOFF
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 10Base2 FOIRL 10baseFL 10baseFB 10BaseT
100 30 2 2 2 2
* : c = 3 x 108
500 185 1000 2000 2000 100
0.77 c (*) 0.65 c 0.66 c 0.66 c 0.66 c 0.59 c
2165 950 5000 10000 10000 565
m/s (velocità della luce nel vuoto) GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 37/
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 P=B S=C
P = Predecessor S = Successor
C
D
E P=E S=B
z z z
P=A S=E
P=D S=A
P=C S=D
The solution is to define a ring-based logical topology over a bus architecture Each node has a Predecessor and a Successor 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 z z
75 Ω Broadband coax Bus or Tree structure Transmission: » Modified Basebad (Carrierband) » Broadband
z
Requires modulation equipment (sometime in DTE)
14/06/2006 GV/RC/A&P 42/
Mod/Dem & Control
Physical Interface Module
MAC MAC DTE Protocol Firmware
Architectural choices influenced by operative environment (factory) GRID - Gruppo di Ricerca sull’Informatica Distribuita
21 21
LAN Architectures: Token Bus z
z
z z
As in baseband, carrierband occupies all the cable bandwidth (1 - 5 - 10 Mbps) Signal is modulated “phasecoherent frequency shift” with no phase change from 1 to 0 2 Frequencies for 1 and 0 + 3 frequencies for control All other frequencies can be filtered out (noise)
14/06/2006 GV/RC/A&P 43/
Binary 1
Binary 0
1 Bit time
GRID - Gruppo di Ricerca sull’Informatica Distribuita
LAN Architectures: Token Bus
A token based MAC is very sensitive to token corruption and station faults z The MAC protocol must manage events such as z
» 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
Preamble
=> 1 Byte
Start Delimiter (SD)
1 Byte
Frame Control
1 Byte
Destination Addr.
6 Bytes
Source Addr.
6 Bytes
Data
< 8191 Bytes
CRC
4 Bytes
End Delimiter
1 Bytes
14/06/2006 GV/RC/A&P 45/
Frame Control specifies if a frame contains data or control info If data, contains priority and ack grant information If control, contains message type: Token passing Token claim (for ring initialization) Solicit successor (station joining - periodic) Who follows me (lost token) Resolve contention (multiple new stations) Set successor (station informs predec. about leaving) GRID - Gruppo di Ricerca sull’Informatica Distribuita
LAN Architectures: Token Bus z
Basic network operation 1) 2) 3) 4)
Wait for token Transmit Nmax frames in queue Pass token to successor 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 HP-THT > 0 THT > 0
B
Token Class 6 Classes 0-4
TRT = t
B
HP-THT = 0 THT := TRT
B
HP-THT = 0 THT = TTRT
TRT = 1
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
C
A
A receives the Token
F
F
A tx a Frame to D
B
C
A
C
A
Frame returns to A through D and is eliminated
B
D
B
D
A releases the Token to B
C
A
F
Early Token Release
C
A
T A tx a Frame to D and releases immediately the token
T B
F
B
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 51/
LAN Architectures: Token Ring z z z
The network media is a 2 pairs shielded cable The signal coding is Differential Manchester The physical architecture can be a point-to-point ring or through a concentrator
Drop Connection
Trunk Coupling Unit MAC MAC Protocol Firmware
R T R T R T R T HUB
DTE
Ring In
14/06/2006 GV/RC/A&P 52/
Ring Out
GRID - Gruppo di Ricerca sull’Informatica Distribuita
26 26
LAN Architectures: Token Ring z
z
Since the ring is realised through point-to-point lines, the TCU must guarantee data by-passing when a station is inactive. 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 GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 53/
LAN Architectures: Token Ring Data Frame Format
Token Frame Format
Start Delimiter
1 Byte
Start Delimiter
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.
Data
< 5000 Bytes
Frame Control: For ring management
CRC
4 Bytes
Frame Status: 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/
=> 1 Byte
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)
Case 2: B = 100 Mbps, N = 5000 z Case 3: B = 200 Mbps, N = 10000 (Frame) CSMA/CD is not suited! z
GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 63/
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
Single Attachment Stations (SAS) z Dual Attachment Stations (DAS) z
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 Slave Key
S
S
Media Interface Connector
Master Key
Primary Ring
M
M
Wiring Concentrator B
DAS
A
B
A
B
A
Secondary Ring
Primary Ring GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 65/
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 Local Area Network
Building 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 LAN 4
Office LAN
Buiding C Buiding D GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 69/
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 Office LAN
2.5 Km
Bridge
Computer
LAN 3 Buiding A
14/06/2006 GV/RC/A&P 70/
2.5 Km
GRID - Gruppo di Ricerca sull’Informatica Distribuita
35 35
LAN Architectures: Bridging Bridging keeps local all the problems due to faulty networks or systems Missing Terminator
Faulty Transceiver LAN 2 LAN 1
Buiding B Buiding A
Bridge
Computer
Backbone LAN LAN 3 LAN 4
Office LAN
Buiding C Buiding D GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 71/
Bridging Operation Differences in formats and protocols make bridging a complex task. Host A NET
Host B
PKT
PKT
LLC
NET
PKT
Bridge PKT
PKT
LLC
MAC
802.3
PKT
802.3
PKT
802.4
PKT
802.4
PKT
MAC
PHY
802.3
PKT
802.3
PKT
802.4
PKT
802.4
PKT
PHY
CSMA/CD Lan 14/06/2006 GV/RC/A&P 72/
802.4 Lan 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
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 z
14/06/2006 GV/RC/A&P 74/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
37 37
Bridging Operation z z
802.3 to 802.3: only load differences 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
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 z
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 Mngmt
MAC Chipset
Port 1 14/06/2006 GV/RC/A&P 77/
Protocol Entity
Memory Buffers
MAC Chipset
Port 2 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 z z z z
The Inactivity Timer (IT) is a value in the FDB that records the silence time of a source. When IT > Tmax the entry is removed In this way the FDB is formed only of active stations and has a limited size A spanning tree algorithm is used to evaluate the proper forwarding route in case of multiple paths 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
z z
Bridges exchange regularly special frames called Bridges Protocol Data Units (BPDU). These frames are not directly forwarded, but used to produce new BPDUs Each bridge has an Id and a priority. The root bridge has the highest priority and smallest Id 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 z z z
z
When a bridge receives a BPDU it compares the root Priority and Id with its own values. If this is the case, the bridge sets the new value for the root and computes the new cost for the root path A new Configuration BPDU is formed and forwarded to all the other ports 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 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
z
z 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 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 Topology Change Notification BPDUs are exchanged to inform the root about port status modifications 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) Interfaccia unificata con il livello network 802.2 Logical Link Control ISO 8802.2
LLC
LIVELLO NETWORK
LIVELLO DATA LINK
MAC 802.3 ISO 8802.3
802.4 ISO 8802.4
802.5 ISO 8802.5
802.6 ISO 8802.6
FDDI ISO 9314
CSMA/CD
TOKEN BUS
TOKEN RING
DQDB
FDDI
LIVELLO FISICO
Tecnologie trasmissive differenziate 14/06/2006 GV/RC/A&P 83/
GRID - Gruppo di Ricerca sull’Informatica Distribuita
Il sottolivello LLC z Definisce
i 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
DESTINATION ADDRESS
1o2
SOURCE ADDRESS
CONTROL
variabile INFORMATION
<= max. ammesso da MAC GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 85/
Condivisione LLC
Livello 3 OSI
Livello 3 TCP/IP
Altro 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
14/06/2006 GV/RC/A&P 87/
I/G (Individual=0, Group=1) U (Non Universal=0, Universal=1) 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
0FEH
0FEH
UI
1
1
OTTETTI 1 14/06/2006 GV/RC/A&P 89/
CONTROL
INFO
m
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 GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 91/
Primitive per LLC tipo 1 z Questo
servizio LLC è molto semplice e richiede solo due primitive: » L.DATA.request » L.DATA.indication
USER L.DATA.request
LLC
LAYER
CORRESPONDENT USER
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) GRID - Gruppo di Ricerca sull’Informatica Distribuita
14/06/2006 GV/RC/A&P 93/
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
2
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
3
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 4
Corso di Reti di Calcolatori (CdL Ingegneria delle Telecomunicazioni) -- a.a. 2005/2006
2
Le entità in gioco Tre entità principali: • user agents • mail servers • protocollo SMTP User Agent • anche detto mail reader • composizione, modifica, lettura di messaggi • es.: Eudora, Outlook, Netscape Messenger • messaggi in uscita ed in entrata immagazzinati sul server
user agent mail server
SMTP SMTP mail server
user agent
user agent mail server
SMTP user agent
user agent
user agent outgoing message queue user mailbox 5
I mail server Mail Server • mailbox contenente messaggi in entrata (non letti) per l’utente mail • coda dei messaggi in uscita server contenente i messaggi non ancora recapitati • protocollo SMTP a cavallo di due SMTP mail server. • “client”: mail server mittente • “server”: mail server destinatario mail server • Un “mail server” funge in momenti diversi da client o da server a seconda del ruolo che ricopre nello scambio del messaggio user
agent
user agent
SMTP
SMTP user agent
user agent mail server
user agent
user agent coda dei messaggi in uscita mailbox 6
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
7
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 S: C: S: C: S: C: S: C: S: C: C: C: S: C: S:
server
220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: 250 [email protected]... Sender ok RCPT TO: 250 [email protected] ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection
9
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 • Linee di intestazione (header): • To: • From: • Subject: • … differenti da comandi smtp!
linea vuota
body
• 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 versione MIME metodo utilizzato per codificare i dati tipo, sottotipo e parametri del contenuto dati codificati
From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data
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 ContentContent-Type: type/subtype; parameters
Text
Video
• sottotipi: plain, html
• sottotipi: mpeg, quicktime
Image • sottotipi: jpeg, gif
Audio • sottotipi: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding)
Application • altri dati che devono essere processati da specifiche applicazioni • sottotipi: msword, octet-stream
15
Esempio di mail “multiparte” From: [email protected] To: [email protected] 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 user agent
SMTP
SMTP
mail server mittente
POP3 o IMAP
user agent
mail server 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 autorizzazione •
•
comandi del client: • user: specifica la username • pass: specifica la password il server risponde • +OK • -ERR
fase di scambio •
comandi del client: • list: visualizza la lista dei messaggi • retr: preleva il messaggio per numero • dele: elimina il messaggio dal server • quit: chiude la sessione
S: C: S: C: S:
+OK POP3 server ready user alice +OK pass hungry +OK user successfully logged
C: S: S: S: C: S: S: C: C: S: S: C: C: S:
list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off
on
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 INTERNET
HTTP
SMTP mail server destinatario
browser
web server
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 • [email protected]
• 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.: [email protected] 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: • quando un server gestisce un carico troppo elevato si suole replicare il suo contenuto su molte macchine differenti. Il servizio DNS può distribuire il carico tra le macchine rilasciando l’intero pool di indirizzi e ruotandoli ciclicamente ad ogni richiesta, senza che gli utenti si accorgano di nulla.
www.domain.com –1.2.3.4 –1.2.3.5 –1.2.3.6 –1.2.3.7 –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 conoscere l’indirizzo IP dell’host gaia.cs.umass.edu
root name server
2 1. Contatta il suo Local Name Server: 5 dns.eurecom.fr di cui possiede l’indirizzo IP 2. dns.eurecom.fr contatta un root name server, se necessario local name server 3. il root name server contatta dns.eurecom.fr l’Authoritative Name Server, dns.umass.edu, se necessario. 1 6
host richiedente surf.eurecom.fr
4 3
authorititive name server dns.umass.edu
gaia.cs.umass.edu 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 contattare necessariamente l’Authoritative Name Server finale, ma un Authoritative Name Server intermediario
6
2 3
7
local name server
intermediate name server dns.umass.edu
dns.eurecom.fr
1
4
8
5
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 la responsabilità di risolvere l’indirizzo • troppo carico? (p.es.: su un
3 4
root NS)
Richiesta Iterativa: • il server contattato risponde con il nome del server da contattare • “Non so risolvere, ma chiedi a quest’altro server”
iterated query
2
7 local name server dns.eurecom.fr
1
8
host richiedente
intermediate name server dns.umass.edu
5
6
authoritative name server dns.cs.umass.edu
surf.eurecom.fr 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,
• Tipo=A • nome=hostname • valore: ind. IP
valore, tipo, ttl)
• Type=CNAME • nome=alias per il nome canonico (reale) • valore=nome canonico
• Tipo=NS • nome=dominio (p.es.: unina.it) • valore=ind. IP dell’Authoritative NS
• Type=MX • valore=nome dell’host mailserver associato a 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
Generici
it
fr
uk
de
es
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 grid honolulu comicserver ... ; Aliases www ftp news tesisti www.tesisti
A A A A
143.225.229.1 143.225.229.3 143.225.229.111 143.225.229.112
CNAME CNAME CNAME CNAME CNAME
grid grid grid vesuvio vesuvio
MX
10
; MX Record 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
; Machine Name 1 3 111 112
NS
grid.grid.unina.it.
PTR PTR PTR PTR
vesuvio.grid.unina.it. grid.grid.unina.it. honolulu.grid.unina.it. comicserver.grid.unina.it.
41
Il file named.root . A.ROOT-SERVERS.NET. ; ; formerly NS1.ISI.EDU ; . B.ROOT-SERVERS.NET. ; ; formerly C.PSI.NET
3600000 3600000
IN
3600000 3600000
NS A
A.ROOT-SERVERS.NET. 198.41.0.4
NS A
B.ROOT-SERVERS.NET. 128.9.0.107
NS A
L.ROOT-SERVERS.NET. 198.32.64.12
NS A
M.ROOT-SERVERS.NET. 202.12.27.33
... . 3600000 L.ROOT-SERVERS.NET. 3600000 ; ; housed in Japan, operated by WIDE ; . 3600000 M.ROOT-SERVERS.NET. 3600000 ; 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
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
La trasmissione multicast
3
La trasmissione multicast
Come identificare i ricevitori di un datagramma multicast?
Come inviare un datagramma ai ricevitori, una volta identificati?
4
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 5
Gli indirizzi multicast Ad ogni gruppo è associato un indirizzo multicast, cioè un indirizzo IP di classe D 0 1 2 1 1 1 03
Multicast Address
31
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” 6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Il gruppo multicast
7
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 8
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
9
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
Internet Group Management Protocol
Fornisce ad un host i mezzi per informare il multicast router ad esso più vicino che un’applicazione vuole unirsi ad un determinato gruppo multicast
Algoritmi per il multicast routing
Coordinano i multicast router all’interno della rete Internet, per permettere l’instradamento dei datagrammi multicast
IGMP
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
Header IP 20 bytes
Messaggio IGMP 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
membership query: generale
router
Informarsi sui gruppi multicast cui gli host locali partecipano
membership query: specifico
router
Informarsi se uno o più host locali partecipano ad un determinato gruppo multicast
membership report
host
Informa il multicast router locale che l'host vuole unirsi ad (o fa parte di) un determinato gruppo multicast
leave group
host
Informa il multicast router locale che l'host vuole 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 è NPcompleto 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
Least unicast-cost path tree
Steiner tree
Minimizza il costo dalla sorgente ad ognuna delle destinazioni
Minimizza la 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
Reverse Path Forwarding (RPF)
Quando un router riceve un pacchetto multicast con un dato indirizzo sorgente, lo trasmette su tutte le interfacce di uscita 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 (softstate)
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
Dense mode
Sparse mode
Dato che la maggior parte dei router è coinvolta nella trasmissione, utilizza un approccio RPF (simile a quello adottato da DVMRP)
Utilizza un approccio center-based, 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: standard de facto
BGMP: 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 2
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… 3
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
4
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) 5
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 7
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 8
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 9
L’header principale 0
31
VERS
FLOW LABEL
PRIO
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
APP
38355
Web Server
HTTP response
TCP
80
APP TCP
IP
IP
DL
DL
PHY
PHY
INTERNET INTERNET
2
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
3
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. 4
Corso di Reti di Calcolatori (CdL Ingegneria delle Telecomunicazioni) -- a.a. 2005/2006
2
Connessioni persistenti e non persistenti non persistente
• HTTP/1.0 • Il server analizza una richiesta, la serve e chiude la connessione • 2 Round Trip Time (RTT) per ciascuna richiesta • Ogni richiesta subisce lo slow-start TCP
persistente
• HTTP/1.1 • Sulla stessa connessione il server analizza tutte le richieste e le serve • Il client riceve la pagina iniziale e invia subito tutte le altre richieste • Si hanno meno RTT ed un solo slow-start
5
Round Trip Time e connessioni HTTP
6
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. 7
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
8
Corso di Reti di Calcolatori (CdL Ingegneria delle Telecomunicazioni) -- a.a. 2005/2006
4
Il messaggio HTTP/1.0 request (cont) METHOD Header
SP
URL
SP
HEADER FIELD NAME
VERSION
:
request line
CR LF
VALUE
CR LF
field lines HEADER FIELD NAME
:
VALUE
CR LF
CR LF
PAYLOAD
9
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# on s p s e 1 2 pr htt t# ues q e pr ht t
htt p
Client
ht t
res
pr
Server A
po n
se # 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
open
client
server
open
client
server
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 …
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
•
200 Ok
•
201 Created
•
301 Moved permanently
•
400 Bad request
•
401 Unauthorized
•
403 Forbidden
•
404 Not found
•
500 Internal server error
•
501 Not implemented
• • • • • • • • • •
se il client non ha ancora mandato il body GET con successo PUT con successo URL non valida, il server conosce la nuova posizione errore sintattico nella richiesta manca l’autorizzazione richiesta non autorizzabile URL errato tipicamente un programma in esecuzione sul server ha generato errore 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) server HTTP
client request
applicazione in esecuzione sul server request genera il cookie
reply
okie + Set-Co
request + Cookie
okie Output + co
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
Cache
Server
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
Oggetto presente
SI
La cache contatta il Content Server
Consegna la copia
TTL>0
SI
SI Una richiesta giunge alla cache
NO
GET IMS
200 OK Restituisce il nuovo documento
Oggetto modificato
NO
304 Not Modified 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
user at host
FTP FTP user client interface
file transfer
FTP server
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
FTP client
TCP data connection port 20
FTP 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 • PASS password • LIST
• 331 Username OK, password required • 125 data connection already open; transfer starting • 425 Can’t open data connection • 452 Error writing file
restituisce la lista dei files presenti nella directory corrente
• GET filename preleva il file dalla macchina remota
• PUT filename invia il file alla macchina 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
APP
38355
Web Server
HTTP response
TCP
80
APP TCP
IP
IP
DL
DL
PHY
PHY
INTERNET INTERNET
2
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
3
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. 4
Corso di Reti di Calcolatori (CdL Ingegneria delle Telecomunicazioni) -- a.a. 2005/2006
2
Connessioni persistenti e non persistenti non persistente
• HTTP/1.0 • Il server analizza una richiesta, la serve e chiude la connessione • 2 Round Trip Time (RTT) per ciascuna richiesta • Ogni richiesta subisce lo slow-start TCP
persistente
• HTTP/1.1 • Sulla stessa connessione il server analizza tutte le richieste e le serve • Il client riceve la pagina iniziale e invia subito tutte le altre richieste • Si hanno meno RTT ed un solo slow-start
5
Round Trip Time e connessioni HTTP
6
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. 7
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
8
Corso di Reti di Calcolatori (CdL Ingegneria delle Telecomunicazioni) -- a.a. 2005/2006
4
Il messaggio HTTP/1.0 request (cont) METHOD Header
SP
URL
SP
HEADER FIELD NAME
VERSION
:
request line
CR LF
VALUE
CR LF
field lines HEADER FIELD NAME
:
VALUE
CR LF
CR LF
PAYLOAD
9
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# on s p s e 1 2 pr htt t# ues q e pr ht t
htt p
Client
ht t
res
pr
Server A
po n
se # 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
open
client
server
open
client
server
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 …
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
•
200 Ok
•
201 Created
•
301 Moved permanently
•
400 Bad request
•
401 Unauthorized
•
403 Forbidden
•
404 Not found
•
500 Internal server error
•
501 Not implemented
• • • • • • • • • •
se il client non ha ancora mandato il body GET con successo PUT con successo URL non valida, il server conosce la nuova posizione errore sintattico nella richiesta manca l’autorizzazione richiesta non autorizzabile URL errato tipicamente un programma in esecuzione sul server ha generato errore 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) server HTTP
client request
applicazione in esecuzione sul server request genera il cookie
reply
okie + Set-Co
request + Cookie
okie Output + co
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
Cache
Server
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
Oggetto presente
SI
La cache contatta il Content Server
Consegna la copia
TTL>0
SI
SI Una richiesta giunge alla cache
NO
GET IMS
200 OK Restituisce il nuovo documento
Oggetto modificato
NO
304 Not Modified 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
user at host
FTP FTP user client interface
file transfer
FTP server
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
FTP client
TCP data connection port 20
FTP 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 • PASS password • LIST
• 331 Username OK, password required • 125 data connection already open; transfer starting • 425 Can’t open data connection • 452 Error writing file
restituisce la lista dei files presenti nella directory corrente
• GET filename preleva il file dalla macchina remota
• PUT filename invia il file alla macchina 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
H1
INTERNET
3
Hn
Cache
H2 4 1
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Distribuzione dei contenuti off-line
3
Prelievo da parte del client
4
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:
7
P2P con directory decentralizzata:
NB: In tal caso si realizza un’architettura di rete gerarchica sovrapposta
(overlay network)
8
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).
9
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 Presentation Session
Transport Service User
Transport Network
Transport Service Provider
Data Link Physical
OSI 2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Livello Trasporto Application Presentation
Application
I protocolli di Livello Trasporto sono presenti solo negli end-system
Presentation
Session
Session
Transport
Transport
Network
Network
Network
Network
Data Link Physical
Data Link Data Link Physical Physical
Data Link Physical
3
Servizi e Protocolli del Livello Trasporto
network data link physical
network data link physical
a ic
le
nd -t e o-
network data link physical
nd s an tr
network data link physical
network data link physical
rt po
• Network-layer: trasferimento dati tra end-system • Transport layer: trasferimento dati tra processi. Naturalmente necessita dei servizi offerti dal livello rete.
application transport network data link physical
g lo
• Offre un canale di comunicazione logica tra applicazioni attive su differenti host • Differenze tra livello trasporto e livello rete:
application transport network data link physical
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
Network
- inaffidabile
Data Link Physical
- affidabile - inaffidabile
OSI Isolare i livelli superiori dai problemi dovuti all’uso di differenti tecnologie di rete e dalle loro (eventuali) imperfezioni
Il livello trasporto deve rimediare: • aumentare l’efficienza • aumentare l’affidabilità
In particolare: • controllo degli errori • sequenza ordinata • controllo di flusso • controllo di congestione 5
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
6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Multiplexing e Demultiplexing - 1 segment – dati che sono scambiati tra processi a livello trasporto TPDU: transport protocol data unit application-layer data segment header segment
Ht M Hn segment
P3
P1 M
application transport network
Demultiplexing: inoltrare i segment ricevuti al corretto processo cui i dati sono destinati receiver M
M
P4
application transport network
M
P2
application transport network
7
Multiplexing e Demultiplexing - 2 Multiplexing: Raccogliere i dati provenienti dalle applicazioni, imbustare i dati con un header approriato (per il de-multiplexing)
32 bits source port #
dest port #
other header fields
multiplexing/demultiplexing: • Realizzato attraverso la coppia • source, dest port # è presente in ogni segmento • numeri di porto “well-known” per applicazioni particolari
application data (message) TCP/UDP segment format
8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Multiplexing e Demultiplexing: esempi host A
source port: x dest. port: 23
Web client host C
server B
source port:23 dest. port: x
Source IP: C Dest IP: B source port: y dest. port: 80
Uso del concetto di porto: una semplice app telnet
Web client host A
Source IP: C Dest IP: B source port: x dest. port: 80
Source IP: A Dest IP: B source port: x dest. port: 80
Web server B Caso del Web server 9
I protocolli TCP e UDP Application
Transport Service User Transport Service Provider
Presentation Session
Telnet FTP
XDR
SMTP
RPC
SNMP
Transport Network
NFS
TCP e UDP ICMP
IP
Protocolli di routing
ARP e RARP
Data Link Physical
OSI
Non Specificati
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: • tolleranti alle perdite di pacchetti • sensibili ai ritardi
Lunghezza in bytes del • DNS segmento UDP, • NFS (Network File System) header incluso • SNMP (Simple Network
32 bits source port #
dest port #
length
checksum
• Altre applicazioni:
Management Protocol)
• Domanda: si può rendere UDP affidabile? • Gestione degli errori • Conferma di avvenuta ricezione)
Application data (message) Formato di un segmento UDP
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
2
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 oppure • Rilevamento degli errori e: 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 3
Realizzare una trasmissione affidabile - 3 data
ACK = notifica NAK = notifica negativa
ACK
data L’errore è rilevato
NAK
Data(ritrasmissione) Canale con errori ma senza perdita di pacchetti
sender
receiver
Il ricevente non può sapere se la richiesta di ritrasmissione è arrivata al sender, quindi non sa interpretare se quello appena ricevuto è il segmento ritrasmesso dal sender, o un segmento contenente nuovi dati
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 (seq.=0)
ACK = notifica NAK = notifica negativa
ACK
data (seq.=1)
L’errore è rilevato Aspetto ancora data(seq.=1)
NAK
data (seq.=1) sender
Accetto data (seq.=1)
ACK
receiver 6
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
3
Realizzare una trasmissione affidabile - 6 data (seq.=0)
t i m e o u t
ACK
In particolare un conto alla rovescia: timeout Si può fare a meno dei NAK
data (seq.=0) ACK
sender
Nel caso di canale che introduce perdita di pacchetti, è necessario introdurre un altro parametro: il tempo
Canale con errori e con perdita di pacchetti
Il receiver si accorge di aver già ricevuto data (seq.=0), scarta tale segmento e invia nuovamente l’ACK al mittente
Problema: quanto dovrà
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 9
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 mittente e ricevente
• Flusso di dati bi-direzionale all’interno della stessa connessione • MSS: maximum segment size
• Senza errori, sequenza ordinata. • pipelined:
• connection-oriented: • handshaking (scambio di msg di controllo a tre vie) prepara mittente e ricevente prima della comunicazione
• Controllo di flusso e di congestione impostano la TCP window
• Buffers su mittente e ricevente socket door
application writes data
• controllo di flusso: application reads data
TCP send buffer
TCP receive buffer
socket door
• Il mittente non invia più di quanto il ricevente non possa accettare
segment
2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
Struttura del segmento TCP
3
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
4
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
6
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
8
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)
9
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 Three way handshake:
Mittente e Ricevente concordano l’apertura della connessione prima di inviare i dati --------------------------------------Impostare le variabili del TCP: • Numeri di sequenza • Allocare i buffer, impostare un valore iniziale della RcvWindow
Passo 1: client invia segmento di controllo TCP SYN al server • Specifica il 1° seq #
Passo 2: server riceve SYN, rsponde con segmento di controllo SYN/ACK • ACK del SYN ricevuto • Alloca buffer • Specifica il 1°seq. # per la connessione serverÆclient
Passo 3: client riceve SYN/ACK, invia ACK al server •
Connessione instaurata
17
Three way handshake Host A
timeout
SYN S e
Host B q=x, n o
data
=y Seq x+1, CK= A , 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
Passo 1: client invia segmento di controllo TCP FIN al server
close
server FIN
ACK
Step 2: server riceve FIN, timed wait
risponde con ACK. Quindi chiude la connessione, invia ACK al client
close
FIN
ACK
closed
19
Chiusura della connessione Passo 3: client riceve FIN, risponde con un ACK • Attende in uno stato TIMED_WAIT (nel caso in cui l’ultimo ACK vada perso, e riceve un ulteriore FIN dal server)
Passo 4: server, riceve ACK. Chiude la connessione
client
closing Time_WAIT_1
server FIN
ACK Time_WAIT_2
closing
FIN
N.B: una piccola variante al Passo 2: il sender invia ACK e FIN contemporaneamente all’interno dello stesso segmento
timed wait
Time_WAIT
ACK
closed
closed
20
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
10
Numeri sequenza ed ACKs Seq. number: • Numero del primo byte del segmento in procinto di essere inviato ACK: • Numero del byte successivo atteso dall’altro host • ACK Q: in che modo il ricevente gestisce I segmenti fuori ordine? • A: Nelle RFC non è specificato, ampia libertà ai programmatori
Host A User types ‘C’
Seq=4 2, AC K=79, d
Host B
ata = ‘C’
= ‘C’ data =43, K C A 79, Seq=
host ACKs receipt of echoed ‘C’
host ACKs receipt of ‘C’, echoes back ‘C’
Seq=4 3, ACK =80
simple telnet scenario
time
21
Un sender TCP semplificato
22
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
11
Alcuni scenari di rilievo - 1 Host A
s data
ACK
Seq=100 timeout Seq=92 timeout
Seq=9 2, 8 b yte
timeout
Host A
Host B
=100
X
loss Seq=9 2, 8 b yte
s data
Ritrasmissione dovuta ad un riscontro perso
Seq=9 2, 8 b ytes d ata Seq= 100, 20 by tes d ata 0 10 K= 120 AC ACK=
Seq=9 2, 8 b yte
s data
20 K=1 AC
=100 ACK
time
Host B
time
Timeout prematuro, 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 SENT
SYN RCVD SYN / SYN + ACK (simultaneous open)
SYN + ACK / ACK CLOSE / FIN
ACK / --
ESTABLISHED CLOSE / FIN
FIN / ACK
FIN / ACK
FIN WAIT 1 ACK / --
CLOSING FIN + ACK / ACK
FIN WAIT 2
CLOSE WAIT
ACK / --
CLOSE / FIN
TIMED WAIT
LAST ACK
FIN / ACK (Timeout /)
Active Close
(Go back to Start)
CLOSED
ACK / --
Passive Close
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 2
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
1
TCP Flow Control flow control
Il mittente non dovrà sovraccaricare il ricevente inviando dati ad una velocità troppo elevata RcvBuffer = size of TCP Receive Buffer RcvWindow = amount of spare room in Buffer
ricevente: comunica dinamicamente al mittente la dimensione corrente del buffer • campo RcvWindow nel segmento TCP: RcvWindow = RcvBuffer – [LastByteRcvd LastByteRead]
mittente: conserva i dati già trasmessi, ma non riscontrati, meno la quantità pari all’ultima RcvWindow ricevuta: receiver buffering
LastByteSent – LastByteAcked ≤ RcvWindow
3
TCP: Transmission Policy
4
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
5
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
6
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
7
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 8
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
4
Effetti della congestione: esempi (2/2) Il mittente invia dati solo quando il buffer non è pieno: • caso ideale 9 no ritrasmissioni 9 throughput max = R/2
Scadenza prematura del timer del mittente: 9 es: ogni segmento è spedito, in media, due 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
9
Tecniche di Controllo della Congestione Approccio end-to-end: • Nessuna segnalazione esplicita dalla rete • A partire dall’osservazione di ritardi e perdite di pacchetti gli end-system deducono uno stato di congestione nella rete • Approccio utilizzato da TCP
Approccio in base a segnalazione della rete: • I router forniscono informazioni circa lo stato della rete agli end-system: • l’invio di un singolo bit indica lo stato di congestione • SNA, DECbit, TCP/IP ECN, ATM
• 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
//initialization
for (each segment ACKed) Congwin++ until (loss event OR CongWin > threshold)
RTT
Congwin = 1
Host B one segm ent
two segm ents
four segm ents
• Crescita esponenziale della dimensione della finestra (ogni RTT): • “Slow start” Æ termine improprio! time
• Evento di perdita: • 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
• Entrambe le connessioni si trovano oltre lo slow start: • fase di prevenzione della congestione:
Punto ideale di funziona mento
partenza
– incremento additivo – decremento moltiplicativo
21
Corso di Reti di Calcolatori (TLC) -- a.a. 2003/2004
11