Tutto

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tutto as PDF for free.

More details

  • Words: 49,318
  • Pages: 393
Reti di Calcolatori Presentazione del Corso Giorgio Ventre

Laboratorio COMICS Dipartimento di Informatica e Sistemistica Università di Napoli Federico II

Corso di Reti di Calcolatori, Anno Accademico 2005/2006

Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II

Roadmap

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

Related Documents

Tutto
November 2019 10
Le Immagini Dicono Tutto
November 2019 14
Ricomincio Da Tutto
November 2019 8
Tutto Il Processo
August 2019 21