Guida

  • 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 Guida as PDF for free.

More details

  • Words: 44,659
  • Pages: 218
Università di Bologna - Corso di Laurea in Informatica

Reti di Calcolatori

Prof. Fabio Panzieri Dipartimento di Scienze dell’Informazione Università di Bologna Mura Anteo Zamboni 7 40127 Bologna tel.: 0512094508 email: [email protected]

Reti di Calcolatori (Fabio Panzieri)

1

Università di Bologna - Corso di Laurea in Informatica

Programma del corso RdC • Fondamenti: – Requisiti applicativi – Architetture di rete (OSI Internet) – Metriche prestazionali – Protocolli di comunicazione

• Tecnologie di rete: – – – – – – –

Hardware di rete Tecniche di codifica Trasmissione affidabile CSMA/CD Token ring Wireless (802.11) ATM

Reti di Calcolatori (Fabio Panzieri)

• Commutazione di pacchetto: RM,

– Datagram, Circuito virtuale – Commutazione, trasmissione – LAN estese

• Internetworking: – Bridge, Switch, Routers e il protocollo ARP, protocollo IP, Instradamento, Internet globale (subnetting, interdomain routing (BGP), IPV6)

• Protocolli end-to-end: – UDP, TCP

• Applicazioni: DNS, Mail, WWW 2

1

Università di Bologna - Corso di Laurea in Informatica

Riferimenti bibliografici • Libri di Testo: – L. L. Peterson, B. S. Davie, Computer Networks - A Systems Approach, 3rd Edition, Morgan Kaufmann, San Francisco, CA, 2003. • Disponibile anche nella traduzione italiana: L. Peterson - B. Davie, Reti di Calcolatori, APOGEO, Milano, 2004. ISBN 88-503-2158-9.

– F. Halsall, Computer Networking and the Internet - 5th Edition, Addison Wesley 2005. • Disponibile anche nella traduzione italiana.

• Ulteriori testi consigliati: – J. F. Kurose, K. W. Ross, Computer Networking - A Top-down Approach Featuring the Internet, Addison Wesley, 2001 – A. S. Tanenbaum, Computer Networks (Third Edition), Prentice Hall, Upper Saddle River, NJ, 1996.

Reti di Calcolatori (Fabio Panzieri)

3

Università di Bologna - Corso di Laurea in Informatica

Modalità d’ esame •

L'esame di RdC e' integrato con l'esame di LPR – questi due corsi danno luogo ad un solo voto – il voto finale dell'esame integrato RdC-LPR si ottiene dalla combinazione dei voti ottenuti nei due esami distinti – i due esami non sono svolti contestualmente – il voto ottenuto in ognuna delle due prove e' mantenuto valido per l'intero Anno Accademico.



RdC: prova scritta, obbligatoria, + prova orale, facoltativa – è possibile confermare il voto della prova scritta, senza svolgere la prova orale – è consentito “sedere” alla prova scritta quante volte si vuole – la consegna di una prova scritta annulla eventuale voto ottenuto in precedente appello

• •

LPR: Sviluppo di un progetto (relazione scritta + demo) Appelli d’esame: 6 per A.A.

Reti di Calcolatori (Fabio Panzieri)

4

2

Università di Bologna - Corso di Laurea in Informatica

Promemoria • Lucidi delle lezioni (3pp, formato pdf) disponibili all’URL: http://www.cs.unibo.it/~panzieri/Reti/prog.html User: RdCstudent Password: UniBoRdC90 • N.B.: – NON SOSTITUISCONO I LIBRI – non rispondo a email in cui si richiedono spiegazioni relative ai lucidi – non rispondo a email non provenienti da cs.unibo.it – se avete bisogno di chiariment i , l’orario di ricevimento è il mercoledi dalle 11:30 alle 13:00

Reti di Calcolatori (Fabio Panzieri)

5

Università di Bologna - Corso di Laurea in Informatica

Il problema • Costruire una “rete di elaboratori” capace di – crescere a dimensioni “globali” – supportare varietà di applicazioni (tlconf., VoD, distr. comp., …)

• Le domande principali cui vogliamo rispondere: – Quale tecnologia h/w e s/w occorre? – Quale architettura costruire per integrare le componenti in modo da offrire un “servizio” di comunicazione “efficace” (i.e.: efficiente - affidabile - rispondente ai requisiti applicativi)?

• Soluzione richiede di definire: – Cos’è una rete di elaboratori; – Perché costruirla; – Per chi costruirla.

Reti di Calcolatori (Fabio Panzieri)

6

3

Università di Bologna - Corso di Laurea in Informatica

Cos’ è una rete di elaboratori ? •

Cosa NON è: – Complesso di dispositivi che includono: • linee seriali che consentono il collegamento di terminali ad un mainframe; • rete telefonica; • cavi che consentono la trasmissione di segnali video, p.e. TV via cavo.

– Questi condividono le seguenti caratteristiche • Gestione di un particolare tipo di traffico (caratteri, voce, immagini); • Interconnettono dispositivi specializzati per quel tipo di traffico (terminali, telefoni, televisioni)



Rete di elaboratori: – Sistema di interconnessione di dispositivi programmabili – Dispositvi possono gestire una varietà di tipi di traffico (testo, immagini, voce) – Sistema non ottimizzato per un particolare tipo di traffico

Reti di Calcolatori (Fabio Panzieri)

7

Università di Bologna - Corso di Laurea in Informatica

Attualmente Host

Host

Application

Host

Web Server

Channel

Browser

Application

Host

Host

Cosa nasconde la nuvola? Reti di Calcolatori (Fabio Panzieri)

8

4

Università di Bologna - Corso di Laurea in Informatica

Pavone dopo l’incontro con un rullo compressore

Reti di Calcolatori (Fabio Panzieri)

9

Università di Bologna - Corso di Laurea in Informatica

Autopsia del “pavone”: componenti di rete (1) router • Milioni di dispositivi interconnessi • Hosts (o end-systems)

di

calcolo

server local ISP

workstation mobile

– pc’s, workstations, servers, PDA’s, …

– eseguono applicazioni di rete

regional ISP

• Link di comunicazione – fibra, rame, radio, satellite

• routers: trasmettono pacchetti contenenti dati attraverso la rete company network Reti di Calcolatori (Fabio Panzieri)

10

5

Università di Bologna - Corso di Laurea in Informatica

Autopsia del “pavone”: componenti di rete (2) Internet: “rete di reti” su planetaria – Topologia a gerarchia lasca



scala

• end systems connessi a ISPs locali mediante access networks (linee telefoniche, LANs, …)

router server local ISP

• ISPs locali connessi a ISPs regionali, connessi a ISPs nazionali, connessi a ISPs internazionali

mobile

regional ISP

Internet e intranets



workstation

– intranet: rete privata che usa tecnologia Internet, i cui hosts sono accessibili solo da hosts nella medesima intranet

company network Reti di Calcolatori (Fabio Panzieri)

11

Università di Bologna - Corso di Laurea in Informatica

Servizi di rete •



• •

Infrastruttura di comunicazione (tecnologia abilitante ) per supportare applicazioni distribuite: – WWW, email, giochi, commercio elettronico, banche dati, voto elettronico, teleconferenza, VoD, … Servizi di comunicazione: – connectionless – connection-oriented Protocolli: regolano la comunicazione i.e., controllano xmit/rcv di messaggi (e.g., TCP, IP, HTTP, FTP, PPP, …) Internet standards – RFC: Request for comments – IETF: Internet Engineering Task Force

Reti di Calcolatori (Fabio Panzieri)

12

6

Università di Bologna - Corso di Laurea in Informatica

Cos’e un protocollo? • Protocolli umani



• acquisto biglietti di viaggio • regole di precedenza in auto, in coda

• Messaggi specifici vengono trasmessi/ricevuti • Azioni specifiche vengono eseguite in conseguenza dei messaggi trasmessi e ricevuti.

Protocolli di rete: – simili a quelli umani – eseguiti da h/w e s/w anzichè da umani – tutte le comunicazioni di rete sono gestite da protocolli

– regolano interazioni fra umani



Protocolli di rete definiscono: – formato dei messaggi – azioni da intraprendere in seguito a trasmissione e ricezione di messaggi

• •

Formato: sintassi Azioni: semantica

Reti di Calcolatori (Fabio Panzieri)

13

Università di Bologna - Corso di Laurea in Informatica

Esempio di protocollo Un protocollo umano e un protocollo di rete:

buon giorno

TCP connection req.

‘n giorno

TCP connection reply

Che ora è?

Get http://www.cs.unibo.it/~panzieri

le 2:00

time

Reti di Calcolatori (Fabio Panzieri)

14

7

Università di Bologna - Corso di Laurea in Informatica

Architetture di protocolli • s/w di comunicazione strutturato gerarchicamente • Uso di “astrazione” per nascondere complessità • Astrazioni alternative ad ogni livello Internet Application programs Request/reply channel

Message stream channel

Applications TCP

UDP

Host-to-host connectivity

IP

Hardware

Network

Reti di Calcolatori (Fabio Panzieri)

15

Università di Bologna - Corso di Laurea in Informatica

Perché costruire reti di elaboratori? • Motivazione principale: – Supporto ad applicazioni di rete (p.e. FTP, E-mail, WWW, Ecommerce, digital libraries, …) di uso generale

• Osservazioni: – Crescita esplosiva del n. di utenti di Internet: • 1989: 100.000 computers approx. • 1992: 1.000.000 di computers approx. • 1999: 8, 9 milioni di computers; 160 milioni di utenti appox. (fonte: NetCenter News, Feb. 1999) • 2003: 150 milioni di computers, 500 milioni di utenti (approx.)

• Perché questa crescita? – Funzionalità di Internet accessibili mediante “general purpose workstations” – Basso costo dell’h/w + s/w necessario – La rete ha arricchito le sue funzionalità (p.e. servizi di teleconferenza) • Supporto di applicazioni multi-mediali (p.e., voce+testo+immagini)

Reti di Calcolatori (Fabio Panzieri)

16

8

Università di Bologna - Corso di Laurea in Informatica

Per chi costruire reti di elaboratori? • Utenti: utenti finali e fornitori di servizi (ISP, ASP) • Problema progettuale: utenti esprimono requisiti diversi – Utenti di rete: garanzia che ogni messaggio trasmesso dall’applicazione in uso sia consegnato senza errori in un qualche intervallo di tempo finito – ISP: sistema facile da amministrare, contabilizzare, in cui i guasti possono essere facilmente isolati, e che garantisca la raggiungibilità del servizio – Progettista: risorse di rete allocate efficientemente ed equamente a utenti diversi

• Requisiti principali: – Connettività – Condivisione di risorse (rapporto costi/benefici favorevole) – requisiti “non funzionali” soddisfatti (affidabilità, sicurezza, …)

prestazioni,

Reti di Calcolatori (Fabio Panzieri)

17

Università di Bologna - Corso di Laurea in Informatica

Connettività • Abilitare comunicazione fra computers interconnessi – Reti private possono voler limitare il n. di computers abilitati a comunicare far loro per ragioni di sicurezza/privacy – Reti pubbliche (p.e. Internet) progettate in modo da crescere arbitrariamente in dimensioni (p.e. n. di utenti, n. di elaboratori interconnessi, distanza geografica fra questi) • Reti pubbliche devono poter “scalare”

• Tipi di connettività – Diretta – Indiretta

• Connettività a vari livelli di astrazione: – Macchina (p.e. host-to-host) – Sistema operativo (p.e. driver-to-driver) – Processo (p.e. process-to-process)

=> protocolli specifici ad ogni livello Reti di Calcolatori (Fabio Panzieri)

18

9

Università di Bologna - Corso di Laurea in Informatica

Connettività diretta • Nodi connessi direttamente fra loro mediante qualche supporto fisico • Componenti di base: – link: cavo coassiale, fibra ottica, canale satellitare, … – nodo: elaboratore “general-purpose” (workstation), dedicato (p.e. file server, router)

elaboratore

• Link diretti a) Punto-punto b) Accesso multiplo –

link condiviso



distanza limitata



n. di nodi limitato (con l’eccezione del satellite)

Reti di Calcolatori (Fabio Panzieri)

19

Università di Bologna - Corso di Laurea in Informatica

Figure 1.12 Satellite systems: (a) broadcast television; (b) data communications Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005

Canale satellitare: - ampiezza di banda elevata (500 MHz) - fornisce linee ad alta velocità sfruttando “TDM” del canale (cf. più avanti) Reti di Calcolatori (Fabio Panzieri)

20

10

Università di Bologna - Corso di Laurea in Informatica

Connettività indiretta • Reti commutate (switched networks) – commutazione di circuito vs. commutazione di pacchetto

• I nodi connessi ad almeno due link eseguono s/w che può trasmettere dati ricevuti da un link su un altro link. Sono chiamati switches, e formano la switched network. – I nodi interni alla “nuvola” implementano la switched network. – I nodi esterni alla “nuvola” usano la rete (i.e., hosts).

Reti di Calcolatori (Fabio Panzieri)

21

Università di Bologna - Corso di Laurea in Informatica



Rete consiste di centrali di commutazione (switching exchange)



host/terminal

– p.e.: rete telefonica – connesso a exchange locale – identificato da numero/indirizzo di rete unico



exchange stabiliscono circuito fisico tra A e B (via “signaling”) – circuito riservato fino al termine della comunicazione Figure 1.5 Circuit-switched network schematic – rilasciato al termine della Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005 comunicazione

Reti di Calcolatori (Fabio Panzieri)

22

11

Università di Bologna - Corso di Laurea in Informatica

• circuito fra A e B utilizza porzione variabile di banda – usa risorse secondo necessità

• trasmette pacchetti dimensione max. prefissata

di

Figure 1.6 Packet-switching network principles: (a) connection-oriented Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005

Reti di Calcolatori (Fabio Panzieri)

23

Università di Bologna - Corso di Laurea in Informatica

Figure 1.6 Packet-switching network principles: (b) connectionless Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005 Reti di Calcolatori (Fabio Panzieri)

24

12

Università di Bologna - Corso di Laurea in Informatica

Connettività indiretta • Reti possono essere connesse ad altre reti per formare un internetwork (Internet e’ una specifica istanza di internetwork). – Nodo connesso a due o più reti è chiamato router o gateway, e svolge le funzioni di uno switch. Host

Internetwork

router/gateway

Reti di Calcolatori (Fabio Panzieri)

25

Università di Bologna - Corso di Laurea in Informatica

Connettività responsabilità principali • Garantire: R1: Utilizzo ottimale dei canali di comunicazione • Strategie di commutazione del canale

R2: Raggiungibilità delle risorse in rete • Identificazione • Indirizzamento • Instradamento

Reti di Calcolatori (Fabio Panzieri)

26

13

Università di Bologna - Corso di Laurea in Informatica

R1: strategie di commutazione • Commutazione di circuito (p.e. rete telefonica): – circuito dedicato fra src e dst; – consente trasmissione/ricezione di flusso di bit – La rete • stabilisce circuito dedicato tra src e dst attraverso serie di link; • src invia flusso di bit su circuito

• Commutazione di pacchetto: store-and- forward mediante send/receive di messaggi (o pacchetti) di dimensione max. predefinita: – Nodi scambiano pacchetti fra loro • ogni pacchetto contiene dst.addr.

– Ogni switch • carica in memoria (store) locale i pacchetti che riceve, e • instrada (forward) ogni pacchetto sul link appropriato.

• Reti di computer: a commutazione di pacchetto (perché …) Reti di Calcolatori (Fabio Panzieri)

27

Università di Bologna - Corso di Laurea in Informatica

R1: commutazione di pacchetto • Problema: condivisione di risorse; i.e., condivisione della rete (links e switches) – multiplexing di flussi di pacchetti su singolo link. – Ogni switch trasmette un po’ alla volta parte dei dati di ciascun host src – Ogni host src che vuole trasmettere ne ha la possibilità.

Src1

Rcv1

Src2

Rcv2

Src3 Reti di Calcolatori (Fabio Panzieri)

Switch 1

Switch 2

Rcv3 28

14

Università di Bologna - Corso di Laurea in Informatica

R1: commutazione di pacchetto – Messaggio (di dimensioni arbitrarie) da host src frammentato in blocchi di dimensione prefissata (pacchetti) – Switch usa qualche strategia per combinare pacchetti (multiplexing) in un singolo flusso sul link (p.e., round-robin: un pacchetto da ogni src). – A dst, switch effettua demultiplexing del flusso combinato in flussi separati per le relative dst.

Src1 Switch …

Src2

Dst

Src3 Reti di Calcolatori (Fabio Panzieri)

29

Università di Bologna - Corso di Laurea in Informatica

R1: Multiplexing • STDM (Synchronized Time Division Multiplexing) – Uso del link diviso in “finestre” (o “quanta”) di tempo – Ogni flusso riceve un quantum di tempo durante il quale può trasmettere (tecnica di round-robin per assegnare i quanta di tempo)

• FDM (Frequency Division Multiplexing) – Ogni flusso trasmesso usando una frequenza diversa

• Vantaggi – Semplici da implementare

• Svantaggi – Se src non ha dati da trasmettere il quantum o la frequenza assegnatele sono inutilizzate (i.e. il canale rimane “idle”) – Max n. di flussi deve essere noto in anticipo per poter definire i quantum o la frequenza da assegnare ad ogni src.

Reti di Calcolatori (Fabio Panzieri)

30

15

Università di Bologna - Corso di Laurea in Informatica

R1: STDM (round-robin) Host

SWITCH

A

C2 A2 D2 D1 B1 C1 A1

B

buffer

D1 ….…. A1

clock

C D

D

A

C

B

Output

Quantum per flusso B

Reti di Calcolatori (Fabio Panzieri)

31

Università di Bologna - Corso di Laurea in Informatica

R1: Statistical Multiplexing • = STDM: link assegnato ad ogni flusso per intervallo di tempo. • ≠ STDM: flusso di dati trasmesso su richiesta anziché in finestra di tempo predefinita. • Vantaggi: – if singolo flusso di dati then accesso al link senza attesa – Eliminazione tempi di “non utilizzo” del canale => commutazione di pacchetto efficiente

• Dimensione dell’intervallo di tempo assegnato ad un flusso? – Statistical multiplexing definisce max size del blocco (i.e. pacchetto) che flusso può trasmettere in un dato istante

Reti di Calcolatori (Fabio Panzieri)

32

16

Università di Bologna - Corso di Laurea in Informatica

R1: Statistical MPX Host

SWITCH

A D1

B

B1 C1 A3 A2 A1

…… A3 A2 A1

buffer

C

clock D

Ciclo di trasmissione

Q4

Q1

Q3

Q2

Output Quanta di tempo

A1

A2

A3

C1

B1

Q1

Q2

Q3

Q4

Q1

t

Reti di Calcolatori (Fabio Panzieri)

33

Università di Bologna - Corso di Laurea in Informatica

R1: Statistical Multiplexing

(dimensionamento quantum di tempo) Implicazioni: – Trasmissione: messaggi di lunghezza arbitraria devono essere frammentati in pacchetti – Ricezione: pacchetti devono essere riassemblati a formare messaggio originale. – Ogni flusso invia sequenza di pacchetti su link fisico – Decisione su quale flusso servire presa dallo switch al momento della trasmissione di ogni pacchetto – if singolo flusso then switch trasmette sequenza di pacchetti di quel flusso – Politica dello switch di trasmissione dei pacchetti: FIFO – Se switch riceve pacchetti più velocemente di quanto possa trasmetterli su link, li deve mantenere (“bufferizzare”) al suo interno • if buffer full then scarta pacchetti; /* congestione allo switch */

Reti di Calcolatori (Fabio Panzieri)

34

17

Università di Bologna - Corso di Laurea in Informatica

R2: raggiungibilità delle risorse • Nome: cosa si vuole (identificatore astratto di una risorsa) • Indirizzo: dove si trova (identificatore della locazione geografica della risorsa) • Rotta (route): come ci si arriva (percorso) • WANs, MANs, LANs, DANs – WANs: reti geografiche a commutazione di pacchetto • Dimensione arbitraria/planetaria

– MANs: reti distribuite su scala cittadina (fibra ottica, ATM) • Dimensione < qualche decina di km

– LANs: reti distribuite localmente (p.e. dipartimento) • Dimensione < 1Km

– DANs: reti distribuite su scala molto ridotta, p.e. scrivania (e.g., bus sostituito da switch ATM, canali Bluetooth) • Dimensione ≤ 10m

– NOC: Network On Chip • Dimensione ≤ 0.1 m Reti di Calcolatori (Fabio Panzieri)

35

Università di Bologna - Corso di Laurea in Informatica

R2: indirizzamento e instradamento (addressing e routing)

• Connettività: src e dst identificabili univocamente. • Identificazione: mediante indirizzo

– Indirizzo: stringa di bytes usata per identificare localizzazione geografica di un nodo – Tipi di indirizzo: • unicast: singolo nodo dst; • broadcast: tutti i nodi in rete; • multicast: qualche sottoinsieme dei nodi in rete

la

• Routing: processo di determinazione dell’instradamento dei messaggi verso la dst, basato sull’indirizzo di dst.

– Switches e routers costruiscono percorso (route) da src a dst sulla base dell’indirizzo dst.

Reti di Calcolatori (Fabio Panzieri)

36

18

Università di Bologna - Corso di Laurea in Informatica

Figure 1.4 Communication modes: (a) unicast Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005 Reti di Calcolatori (Fabio Panzieri)

37

Università di Bologna - Corso di Laurea in Informatica

Figure 1.4 Communication modes: (b) broadcast Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005 Reti di Calcolatori (Fabio Panzieri)

38

19

Università di Bologna - Corso di Laurea in Informatica

Figure 1.4 Communication modes: (c) multicast Halsall, Computer Networking and the Internet, 5th Edition © Pearson Education Limited 2005 Reti di Calcolatori (Fabio Panzieri)

39

Università di Bologna - Corso di Laurea in Informatica

Funzionalità • Connettività e tecniche di condivisione di risorse non sufficienti a garantire utilizzabilità dell’infrastruttura di comunicazione • Obbiettivo principale da conseguire: – fornire servizi di comunicazione che rispondano a requisiti applicativi

1º approccio: – applicazione stessa implementa funzionalità richieste – inefficace, implica ridondanza di implementazioni analoghe

2º approccio: – applicazioni condividono requisiti => progettista fornisce astrazioni comuni a classi di applicazioni

Reti di Calcolatori (Fabio Panzieri)

40

20

Università di Bologna - Corso di Laurea in Informatica

Funzionalità • Problema: – Identificare requisiti applicativi comuni, p.e.: • garanzia di consegna messaggi • ordinamento messaggi • privacy/sicurezza,...

• Obiettivo: – Nascondere all’applicazione complessità di rete – Fornire molteplicità di servizi di comunicazione che l’applicazione può scegliere

• Metodo: – 1. Catturare i requisiti di diverse classi di applicazioni – 2. Identificare requisiti comuni – 3. Incorporare nel s/w di rete funzionalità che soddisfano 2.

Reti di Calcolatori (Fabio Panzieri)

41

Università di Bologna - Corso di Laurea in Informatica

Cattura dei requisiti applicativi: esempi •

Costruire servizi di comunicazione per applicazioni di FTP, Digital Library (DL), VoD, Teleconferenza (Tlcf)



FTP: Create, Open, R/W, Seek, Close, Delete file remoto da client a server – Client(read) • Send_request(R_FILE); /*richiesta operazione read e f.name (msg breve)*/ • Get_reply(FILE); /*riceve risposta (file)*/ – Server • Get_request(…); /* riceve breve msg */ • Work(…); /* esegue operazione */ • Send_reply(…) /*trasmette risultato */ – In scrittura avviene l’opposto (msg di richiesta lungo, breve “reply”) – Modalità di interazione applicativa: request/reply



DL – (alla WWW) client può richiedere singola pagina o più pagine da server – Modalità di interazione applicativa: request/reply

Reti di Calcolatori (Fabio Panzieri)

42

21

Università di Bologna - Corso di Laurea in Informatica

Cattura dei requisiti applicativi • VoD: – Client invia richiesta di fetching di video, Server genera flusso di “frames” di cui client deve effettuare “rendering” – Client accetta perdita di qualche frame (sotto una certa soglia) 1º approccio: • Server scarica su client l’intero video • Client attende di ricevere l’intero video • Client effettua rendering => Client richiede molta memoria; non richiede synch. Srvr/rendering

2º approccio: • Server invia blocchi di sequenze di frames • Client effettua rendering appena le riceve => Riduce requisiti di memoria del Client; richiede synch. Srvr/rendering

Modalità di interazione applicativa: • flusso di frames unidirezionale Reti di Calcolatori (Fabio Panzieri)

43

Università di Bologna - Corso di Laurea in Informatica

Cattura dei requisiti applicativi •

Teleconferenza (Tlcf) Apparentemente come VoD (i.e. flusso di frames), ma 1. Comunicazione soggetta a vincoli di tempo – Speaker deve avere canale disponibile per la durata del suo intervento 2. Flusso di frames multi-direzionale – Ogni speaker deve poter interagire con ogni altro speaker

In Tlcf, ritardi possono rendere sistema inutilizzabile – in VoD un ritardo di 10’’ dalla richiesta del cliente alla ricezione della prima sequenza di frames è ininfluente – in Tlcf ritardo di flusso da uno speaker può creare interferenze con gli altri speakers

Modalità di interazione applicativa: – flusso di frames multi-direzionale •

molteplicità di destinazioni per ogni flusso

Reti di Calcolatori (Fabio Panzieri)

44

22

Università di Bologna - Corso di Laurea in Informatica

Soddisfare i requisiti applicativi • Applicazioni esaminate richiedono: – Request/reply – Flusso di messaggi

• Request/reply

– Garantisce delivery messaggi trasmessi – Protegge “privacy” dei dati trasmessi

• Flusso di messaggi

– Parametrico: consente half-duplex (VoD) e full-duplex (Tlcf) – Non garantisce delivery di tutti i messaggi • i.e. % frames possono essere “perse” senza danno

– Garantisce ordinamento msg’s

• i.e. msg’s ricevuti nello stesso ordine in cui sono trasmessi

– Garantisce privacy e integrità dei dati – Supporta multicasting

• sia per Tlcf sia per VoD a molteplicità di utenti finali

Reti di Calcolatori (Fabio Panzieri)

45

Università di Bologna - Corso di Laurea in Informatica

Architettura risultante •

Ogni protocollo può supportare applicazioni diverse – RRP (RequestReplyProtocol), MSP (MessageStreamProtocol), HHP (Host-toHostProtocol) – ogni livello può implementare protocolli diversi – ogni protocollo mantiene specifica interfaccia

Video Client

Digital library Client

FS

L3

FS client

Digital Library

Video Server

I2 MSP

RRP

L2

RRP

MSP

I1 HHP

Reti di Calcolatori (Fabio Panzieri)

L1

HHP

46

23

Università di Bologna - Corso di Laurea in Informatica

Funzionalità: “dove” implementarle? • 1º approccio: – S/w di rete fornisce comm’s host-to-host (flusso di pacchetti fra hosts remoti) – Hosts implementano IPC Pros: Semplifica switches (trasmissione di pacchetti, solamente) Cons: Complessità di IPC negli hosts

• 2º approccio: – IPC implementato da switches Pros: rete può supportare dispositivi “ottusi” (p.e. telefoni) Cons: complessità implementazione switch aumenta

Reti di Calcolatori (Fabio Panzieri)

47

Università di Bologna - Corso di Laurea in Informatica

Affidabilità • •

Consegna affidabile di messaggi: requisito fondamentale Non esistono canali di comunicazione “perfetti” – Tolleranza ai guasti • problemi h/w e s/w a vari livelli • Problemi h/w • • • •

Workstation crash e re-boot Cavo danneggiato fisicamente Interferenze elettriche Buffer overflow (congestione) in switch

• Problemi s/w •



Trasmissione pacchetti a destinazioni arbitrarie (switch seleziona link errato)

N.B.:

– Definire servizi di comunicazione “utili” richiede conoscenza sia dei requisiti applicativi, sia dei limiti della tecnologia usata. – Difficoltà: • coprire gap fra requisiti applicativi e limiti tecnologici • importanza del modello dei guasti (i.e., che sia realistico)

Reti di Calcolatori (Fabio Panzieri)

48

24

Università di Bologna - Corso di Laurea in Informatica

Affidabilità • Classi di guasti Livello

Causa

Bit

campi magnetici, interferenze elettriche, “burst” di bits errore: 10-6, 10-7 (rame); 10-12, 10-14 (fibra ottica)



Packet

congestione (switch buffer overflow), switch misrouting

Node

link fisico danneggiato, crash di nodo

Errori “burst”: sequenza di bit corrotta

Reti di Calcolatori (Fabio Panzieri)

49

Università di Bologna - Corso di Laurea in Informatica

BER • Misura dell’affidabilità di un canale – tasso medio di errore sui bit (Bit Error Rate - BER) • probabilità che un bit sia danneggiato/alterato in trasmissione in un determinato intervallo di tempo – in canale a bit rate costante, BER equivale a probabilità che un bit in un n. definito di bit sia danneggiato. – p.e. BER = 10-3 => 1 bit errato ogni 1000 bit trasmessi • BER noto => blocco dati dimensionato in modo da minimizzare probabilità di errore – p.e. BER = 10-3 => block size << 1000 bit • in generale, dato P (probabilità BER) e N (n. di bit in un blocco), se gli errori sono casuali, la probabilità PB che blocco contenga un errore sui bit è PB = 1 - (1 - P)N • che si approssima NxP, se NxP<1 Reti di Calcolatori (Fabio Panzieri)

50

25

Università di Bologna - Corso di Laurea in Informatica

BER (esempio) • calcolare dimensione massima dei blocchi da utilizzare in un canale con BER medio = 10-4, supponendo che la probabilità che un blocco contenga un errore, e quindi venga scartato, sia 10-1 • Soluzione approssimata PB = 1 - (1 - P)N => approssimazione PB = NxP 0,1 = N x 10-4 1/10 = N/10000 N = 10000/10 = 1000 bit

Reti di Calcolatori (Fabio Panzieri)

51

Università di Bologna - Corso di Laurea in Informatica

Guasti Interferenza Livello bit

… 00111 …

… 00011 canale di comunicazione

buffer overflow

Livello Packet

P5

buffer P4 P3 P2 P1

P5 •

Switch

Tecniche di recovery: basate su uso di “ridondanza” – Livello bit: dell’informazione (p.e. Error Correcting Codes) – Livello packet: delle trasmissioni (i.e. ritrasmissione di pacchetti)

Reti di Calcolatori (Fabio Panzieri)

52

26

Università di Bologna - Corso di Laurea in Informatica

Guasti crash di nodo

Livello Node

switch

switch

Host A switch

Host B switch

INTERNET

• Tecniche di recovery: basate su uso di “ridondanza” – Livello node: ridondanza dei cammini/percorsi fra gli hosts Reti di Calcolatori (Fabio Panzieri)

53

Università di Bologna - Corso di Laurea in Informatica

Performance • •

Prestazioni delle computazioni in ambito distribuito dipendono anche da efficienza con cui la rete consegna dati. Metriche principali: – Bandwidth (o throughput): numero di bit che possono essere trasmessi in un determinato intervallo di tempo. • P.E. 10 Mbps = 107 bit al secondo. • Bandwidth: tempo di trasmissione di ogni singolo bit. – P.E. in rete da 10Mbps, 0.1 µs (microsecondi) necessari a trasmettere un bit.

– Latency (o ritardo): tempo necessario a singolo bit per percorrere distanza da src a dst. – P.E. rete intercontinentale: 24 ms (millisecondi) •

a 2.3 x 108m/s, in 24 ms un bit percorre 5520 Km (distanza Londra - New York = 5585 Km)

– Throughput: sinonimo di bandwidth, oppure: • prestazioni misurate di un sistema. – P.E.: 2 nodi comunicanti via link a 10 Mbps possono raggiungere throughput = 2 Mbps (causa: s/w overheads)

Reti di Calcolatori (Fabio Panzieri)

54

27

Università di Bologna - Corso di Laurea in Informatica

Bandwidth: Rappresentazione lineare •

Bit trasmessi con data bandwidth rappresentabili mediante ampiezza: – Canale da 1Mbps => 1 s frazionato in 1.000.000 µs => 1b/µs – 1 s rappresentato graficamente come distanza fra due punti => 1 bit: impulso di ampiezza 1 µs

1 µs 1 secondo – Canale a 2Mb/s: un bit trasmesso ogni 0.5 µs

1 µs N.B.

1 secondo

1 s = 103 ms (millisec.) = 106µs (microsec) = 109 ns (nanosec.) = 1012 ps (picosec.) => 1ms = 10-3 s; 1µs = 10-6 s; 1ns = 10-9 s; 1ps = 10-12 s. 10 Mbps = 10.000.000 bps => 1/10.000.000 s/bit = 1/10 x 10-6 s/bit = 1/10 µs/bit

Reti di Calcolatori (Fabio Panzieri)

55

Università di Bologna - Corso di Laurea in Informatica

Latenza • •

Tempo impiegato da un bit a percorrere distanza src -> dst Latenza formata da: –

ritardo di propagazione della velocità della luce; •



ritardo di trasmissione: tempo necessario a trasmettere unità dati



ritardo di accodamento (queueing delay):

• •



funzione di bandwidth e dimensione pacchetto tempo speso nei buffer degli switch (causato da store and forward).

Latenza = Propagazione + Trasmissione + Accodamento – –



variabile da canale a canale, a seconda del “mezzo” di cui il canale è costituito; p.e.: – nel vuoto: 299.792.458 m/s (circa 3 x 108 metri/secondo, i.e. 300.000 Km/s) – su rame, circa 2.3 x 10 8 m/s – su fibra, circa 2 x 108 m/s

Propagazione = distanza/velocità della luce Trasmissione = dimensione_dati/bandwidth

Round Trip Time (RTT): latenza src -> dst -> src

Reti di Calcolatori (Fabio Panzieri)

56

28

Università di Bologna - Corso di Laurea in Informatica

Latenza vs. Bandwidth • Importanza di bandwith e latenza dipende da applicazione • Es.1: applicazione “latency-bound” – client invia un byte (B) a server, server risponde con un B a client (ip.: ritardo di elaborazione = 0, p.e. ping) • sensibile a latenza (ovvero, RTT): applicazione percepisce tempo di risposta, p.e.: RTT = 100 ms => applicazione esegue più “lentamente” che se RTT = 1 ms

• Bandwidth è irrilevante: – Bandwidth = 100 Mbps = 100.000.000 bps => (1/100.000.000) s/b = (1/100 x 10-6) s/b = (1/100)µs/b => ritardo di trasmiss. di 1 B (B = 8 bit) = (8 x 1/100)µs = 8/100µs = 0.08 µs

– Bandwidth = 1 Mbps = 1.000.000 bps => (1/1.000.000) s/b = 10-6 s/b = 1µs/b => ritardo di trasmiss. di 1 B = 8µs

⇒ Differenza trascurabile

Reti di Calcolatori (Fabio Panzieri)

57

Università di Bologna - Corso di Laurea in Informatica

Latenza vs. Bandwidth • Es.2: applicazione “bandwidth bound” – programma trasmette immagine di 25 Mbyte: – sensibile a bandwidth

• Bandwidth domina prestazioni – Dimensione-dati = 25MB file => 25MB = (25 x 220 x 8) b = 200Mb (dimensione file)

– Poiché ritardo di trasmissione (rdt) = dimensione_dato/bandwidth • BD = 10Mbps => rdt = 200Mb/10Mbps = 20 s • BD = 100Mbps => rdt = 200Mb/100Mbps = 2 s

• Latenza è irrilevante – RTT = 100 ms => tempo di risposta (un bit di ack.) = 20.1 s – RTT = 1 ms => tempo di risposta (un bit di ack.) = 20.001 s Differenza trascurabile

Reti di Calcolatori (Fabio Panzieri)

58

29

Università di Bologna - Corso di Laurea in Informatica

MB, Mbps, KB, Kbps • M = 106 oppure M = 220, K = 103 oppure K = 210 • Bandwidth: gestita dal clock di sistema trasmittente – Misurata con metrica di clock • Clock a 10MHz trasmette bits a 10Mbps • poiché M (in MHZ) indica 106 => M in Mbps indica 106 bps (e K in Kbps indica 103)

• Messaggio: risiede in memoria – misurato secondo metrica di memoria del computer – memoria misurata con potenze di 2 – KB (Kb) indica 210 bytes (210 bits), MB (Mb) indica 220 bytes (220 bits),

• Messaggio di 32 KB trasmesso su canale con bandwidth = 10 Mbps => 32 x 210 x 8 bits trasmessi ad una velocità di 10 x 106 bps.

Reti di Calcolatori (Fabio Panzieri)

59

Università di Bologna - Corso di Laurea in Informatica

Delay x Bandwidth • • • • •

Canale di comunicazione fra due processi: pipe (condotto) Indica quanti bit src deve trasmettere prima che il primo bit trasmesso sia ricevuto a dst Delay = lunghezza della pipe Bandwidth = diametro della pipe Delay x Bandwidth = volume (i.e.,n. di bits che pipe può contenere)

bandwidth

delay

Reti di Calcolatori (Fabio Panzieri)

PIPE

60

30

Università di Bologna - Corso di Laurea in Informatica

Delay x Bandwidth •

P.e.: link intercontinentale, latenza = 50 ms, bandwidth = 45 Mbps DxB = 50 x 10-3 s x 45 x 106 b/s = = ((5 x 10)/1000)s x (45 x 106)b/s = = (5/100) x 45 x 106 b = 2.25 x 106 b Poiché 106 b = (1.000.000/8)B = 125.000B e (125.000/1024)B = = 122.07 KB => DxB = 2.25 x 122.07 KB = 275 KB (circa)



Src attende 1 bit di ack da dst



Se dst vuole richiedere STOP di trasmissione

=> src può inviare il doppio del delay x bandwidth di dati prima di ricevere ack => dst può ricevere il doppio del delay x bandwidth di dati prima che src riceva segnale di STOP

Reti di Calcolatori (Fabio Panzieri)

61

Università di Bologna - Corso di Laurea in Informatica

Esempio 1 •

Calcolare Ritardo di Trasmissione RT necessario a trasmettere un file di 1000KB assumendo Bandwidth BW= 1.5Mbps

Svolgimento: 1. Conversione in bit di File_size = 1000KB = 103 x 210 x 23 b 2. RT = Size/BW = File_size/BW = (103 x 210 x 23 )b/(1.5 x 106)bps = (103 x 213)/1500000) s = 8192000/1500000 s ≈ 5.46 s

Reti di Calcolatori (Fabio Panzieri)

62

31

Università di Bologna - Corso di Laurea in Informatica

Esempio 2 •

Calcolare tempo totale TT necessario a trasmettere un file di 1000KB assumendo 1. BW= 1.5Mbps, RTT = 100 ms, pkt-size = 1KB 2. Prima di trasmettere file, src e dst eseguono “handshake” (costo = 2RTT) 3. Dopo trasmissione di ogni pacchetto, src attende 1 RTT

Svolgimento – –



Src deve frammentare file in pkts di 1KB: File_size = 1000KB => 1000 pkts di pkt_size = 1KB = 8Kb Per ogni pacchetto impiega tempo di trasmissione pkt-time = (pkt_size/BW) + RTT = = (8 x 210)b/(1.5 x 106 ) bps + RTT = (8192/1500000)s + 0.1s ≈ ≈ 0.0055 s + 0,1 s = 0,1055 Per 1000 pkts + handshake TT = 1000 x 0.1055s + 0.2s = 105.7 s

Reti di Calcolatori (Fabio Panzieri)

63

Università di Bologna - Corso di Laurea in Informatica

Esempio 3 •

Dato un canale con BW = 1.5 Mbps e RTT = 100ms, calcolarne la capacità DxB (i.e., il delay x bandwidth).



Svolgimento: 1. RTT = 100ms ⇒ delay (unidirezionale) = 50 ms = 50 x 10

-3

s;

2. BW = 1.5 Mbps = 1.5 x 106 bps. 3. DxB = 50 x 10-3s x 1.5 x 106bps = 50 x 1.5 x 103 b = 75000 b ≈ 73Kb

Reti di Calcolatori (Fabio Panzieri)

64

32

Università di Bologna - Corso di Laurea in Informatica

Esempio 4 • Computers A e B connessi da un canale con DxB = 73Kb e RTT = 100ms. A trasmette a B pkts di pkt_size = 1KB; quanti pkts potrà trasmettere A prima di ricevere 1 bit di ack da B? • Svolgimento – RTT = 100ms ⇒ delay (unidirezionale) = 50 ms (i.e.,tempo impiegato da 1 bit di ack da B ad A) ⇒ ⇒ A può trasmettere per 100ms prima di ricevere ack da B – Canale ha DxB = 73Kb in 50ms, => capacità C doppia in 100ms; C = 73Kb x 2 = 146Kb = (146/8)KB ≈ 18KB

– C = 18KB, singolo pkt da A a B = 1KB => A potrà inviare 18 pkts a B prima di ricevere 1 bit ack da B.

N.B.: pkts da A saturano pipe; non necessariamente ricevuti da B.

Reti di Calcolatori (Fabio Panzieri)

65

Università di Bologna - Corso di Laurea in Informatica

Esempio 5 • Gli elaboratori H1 e H2 sono interconnessi da una rete con bandwidth = 10Mbps. L’elaboratore H1 trasmette un messaggio M di 2 KB all’elaboratore H2. • Assumendo che – la rete possa trasmettere pacchetti contenenti al massimo 1500 B di dati, senza introdurre errori, e – i protocolli di rete introducano un overhead di 26 byte per pacchetto trasmesso, e

calcolare il tempo di trasmissione del messaggio M da H1 a H2.

Reti di Calcolatori (Fabio Panzieri)

66

33

Università di Bologna - Corso di Laurea in Informatica

Soluzione •

Il tempo di trasmissione (TT) di un messaggio è: – –



Calcoliamo le dimensioni dei pacchetti da trasmettere. –



TT = dimensione-dato/bandwidth Il messaggio di 2KB (i.e. 2048 Bytes) deve essere frammentato in due frammenti M1 e M2, e trasmesso in due pacchetti distinti. Quindi, il tempo di trasmissione di M sarà dato dalla somma dei tempi di trasmissione dei due pacchetti contenenti M1 e M2. Poichè il protocollo di rete può trasportare 1500B max di dati, e introduce 26B di overhead (HDR), le dimensioni dei due paccketti da trassmettere saranno: Pkt1 = HDR + M1 = 26B + 1500B = 1526B Pkt2 = HDR + M2 = 26B + 548B = 574B

Da cui discende che: TT = TT_Pkt1 + TT_Pkt2 = (1526B/10Mbps) + (574B/10Mbps) = 2100B/10Mbps = 16800b/10000000bps = 0.00168s = 1.68 ms

Reti di Calcolatori (Fabio Panzieri)

67

Università di Bologna - Corso di Laurea in Informatica

Architetture di rete • Requisiti applicativi per – connettività affidabile, ad elevate prestazioni, sicura … – scalabilità, adattabilità ad accogliere nuove tecnologie, …

introducono complessità nel s/w di rete • Architettura di rete: schema progettuale che guida la realizzazione dell’infrastruttura di comm’s H/W e S/W richiesta. • Software di rete progettato come “gerarchia di servizi”: – alla base: servizi offerti dall’hardware; – si aggiunge sequenza di “livelli” (o “strati”) software (moduli software), ciascuno dei quali fornisce un livello di servizi più elevato (più “astratto”).

Reti di Calcolatori (Fabio Panzieri)

68

34

Università di Bologna - Corso di Laurea in Informatica

Architetture di rete • Principio progettuale: servizi forniti da un livello implementati usando i servizi forniti dal livello sottostante. – Medesimo principio usato per progettare qualunque sistema complesso. • p.e., file system progettato gerarchicamente: partendo da servizi di basso livello h/w di lettura/scrittura di blocchi di disco, si costruiscono servizi di più alto livello di create, open, close, read, write di oggetti chiamati files.

• L’insieme di livelli l’architettura

H/W

e

S/W

di

rete

ne

costituiscono

– l’architettura descrive le funzionalità di base di ogni livello, in modo da consentire al progettista di costruire i livelli necessari.

Reti di Calcolatori (Fabio Panzieri)

69

Università di Bologna - Corso di Laurea in Informatica

Esempi – Fig. (a): architettura a quattro livelli. • L0: xmit/rcv flusso di bit • L1, usa L0 per implementare scambio di pacchetti host-to-host • L2 usa L1 (host-to-host) per implementare scambio di messaggi process-toprocess. • Programmi applicativi in L3 usano i servizi forniti da L2 per costruire applicazioni specifiche (p.e., file transfer, email,…).

– Fig. (b): ogni livello può fornire uno o più tipi di servizi, p.e. L2.

Application programs

L3

Request/Reply channel

L2

Host-to-host connectivity

L1

Hardware

L0

(a) Reti di Calcolatori (Fabio Panzieri)

Application programs R/R channel MSG Stream Host-to-host connectivity Hardware

(b) 70

35

Università di Bologna - Corso di Laurea in Informatica

Protocolli • •

“Building blocks” di architettura di rete Ogni protocollo mantiene 2 interfacce – –

Interfaccia di servizio: operazioni rese disponibili dall’implementazione del protocollo Interfaccia “peer-to-peer” : formato messaggi scambiati fra “peer” + regole di procedura

N.B. “peer”: componenti allo stesso livello di astrazione (i.e., “di pari grado”) •

Termine “protocollo”: duplice significato 1. Specifica dell’interfaccia peer-to-peer 2. Modulo implementazione di questa interfaccia

Reti di Calcolatori (Fabio Panzieri)

71

Università di Bologna - Corso di Laurea in Informatica

Comunicazioni fra livelli • Interfaccia di servizio Li: definisce le operazioni primitive che Li fornisce a Li+1 • Interfaccia peer-to-peer: definisce formato e regole di scambio messaggi fra componenti allo stesso livello Li Host A Li+1

Protocollo i+1

I/f di servizio i + 1

Host B Protocollo i+1 I/f di servizio i

Li

Protocollo i I/f peer-to-peer

Reti di Calcolatori (Fabio Panzieri)

Protocollo i Comunicazione peer-to peer 72

36

Università di Bologna - Corso di Laurea in Informatica

Modello object-oriented • Oggetto: struttura dati con associate operazioni (metodi) che possono essere esportate per poter essere invocate da altri oggetti. • Oggetti con caratteristiche simili raggruppabili in classi; p.e.: – Classe protocolli – Classe messaggi

• Oggetto protocollo esporta interfaccia di servizio e interfaccia peer-to-peer – Interfaccia di servizio: esporta i metodi che altri protocolli sulla stessa macchina possono invocare – Interfaccia peer-to-peer: definisce formato e significato dei messaggi scambiati fra entità “peer” (i.e. istanze del protocollo su macchine distinte).

Reti di Calcolatori (Fabio Panzieri)

73

Università di Bologna - Corso di Laurea in Informatica

Comunicazioni fra livelli •

A livello H/W, comm’s peerto-peer dirette (via canale fisico).



A livelli superiori (p.e. Li+1), comunicazione peer-to-peer indiretta (in pratica, via Li che usa i servizi di Li-1, p.e. chiamata di procedura). Utilizzo dei servizi di Li-1



Host 1

Host 2

Application program

Application program

Data

Data RRP

RRP

RRP

Data

RRP HHP

Data

HHP

– incapsulamento – mpx/dmpx HHP

RRP

Data

RRP: Request Reply Protocol HHP: Host-to-Host Protocol Reti di Calcolatori (Fabio Panzieri)

74

37

Università di Bologna - Corso di Laurea in Informatica

Incapsulamento •

• • •

Applicazione in Host 1 “invia messaggio” (“data”) ad applicazione in Host 2: – in pratica, invoca procedura implementatata da RRP locale RRP appende RRP header info. di controllo a dati per RRP peer. Messaggio “combinato” viene trasmesso, i.e. passato a modulo HHP locale (via procedure call). HHP appende header specifico per HHP a messaggio, e lo trasmette a Host2 (invoca primitiva livello sottostante). In generale, ogni livello – 1. 2. – 1. 2. 3. 4.

Host 1

Host 2

Application program

Application program

Data

RRP

in trasmissione (Host1): incapsula il msg in proprio ; trasmette via primitive di livello sottostante in ricezione (Host2), ogni livello riceve msg mediante primitive del livello sottostante rimuove il proprio hdr e tail esegue processing specifico di hdr e tail; passa il msg DATA (privato di hdr e tail) al livello superiore.

Data RRP

RRP

HHP

HHP

Data

RRP

HHP

Data

RRP Data

Reti di Calcolatori (Fabio Panzieri)

75

Università di Bologna - Corso di Laurea in Informatica

Multiplexing/Demultiplexing di protocollo •

Protocollo supporta applicazioni diverse – –



RRP src include demultiplexing key (demux key) in RRP header RRP dst esamina demux key e consegna msg a destinazione appropriata

Livello supporta protocolli diversi: stesso meccanismo

Video Client

MSP

File server

Digital library Client

FS Client

Digital Library

RRP

RRP HDR

MSG

RRP

HHP

HHP HDR

MSG

HHP

Reti di Calcolatori (Fabio Panzieri)

Video Server

MSP

76

38

Università di Bologna - Corso di Laurea in Informatica

Architettura di rete OSI • ISO (International Standards Organization) ha definito un’architettura di rete chiamata Open Systems Interconnection Reference Model (OSI RM) per l’interconnessione di sistemi aperti, consistente di 7 livelli funzionali. • OSI RM è uno strumento per capire e descrivere architetture reali, e.g. Internet. • OSI RM non è una guida all’implementazione – Architeture reali raramente hanno 7 livelli; p.e., l’architettura Internet ne ha 4 – OSI RM: strumento utile per classificare le funzionalità di ciascun livello.

Reti di Calcolatori (Fabio Panzieri)

77

Università di Bologna - Corso di Laurea in Informatica

OSI RM End host

End host Application

Application

Presentation

Presentation

Session

Session

Transport

Transport

Network

Network

Network

Network

Data link

Data link

Data link

Data link

Physical

Physical

Physical

Physical

Uno o piu’ nodi di rete

Reti di Calcolatori (Fabio Panzieri)

78

39

Università di Bologna - Corso di Laurea in Informatica

Livelli in OSI RM • Physical Layer: – Gestisce la comunicazione di flussi di bits sul canale fisico.

• Data Link Layer: – Struttura e trasmette/riceve un flusso di bit in unità dati chiamate frames. L’interfaccia di rete (network adaptor card) collegata ad un computer implementa un protocollo data link., i.e. l’host riceve frames, non stringhe di bits.

• Network Layer: – Gestisce l’istradamento dell’informazione fra i nodi in una rete a commutazione di pacchetto. L’unità di informazione a questo livello è il pacchetto.

• Questi tre livelli sono presenti in tutti i nodi della rete: switches e hosts.

Reti di Calcolatori (Fabio Panzieri)

79

Università di Bologna - Corso di Laurea in Informatica

Livelli in OSI RM • Transport Layer: – Implementa comunicazioni process-to-process; l’unità di trasmissione a questo livello è il messaggio.

• Session Layer: – Supporta gestione integrata di flussi di trasporto diversi di una medesima applicazione, p.e. flussi audio e video.

• Presentation Layer: – Gestisce differenze di rappresentazione dati fra hosts (p.e. big-endian vs. little-endian, dimensioni tipi di dato come interi a 16, 32, o 64 bits)

• Application Layer: – Implementa protocolli applicativi specifici, p.e. FTP, HTTP, Telnet, SMTP …

• Transport Layer e superiori eseguiti in Host solamente.

Reti di Calcolatori (Fabio Panzieri)

80

40

Università di Bologna - Corso di Laurea in Informatica

Livelli in OSI RM •

Osservazioni: – Physical layer: consente trasmissione di flussi di bits su canale fisico (cavo, fibra, spazio,…) – Data link layer: consente comunicazione affidabile di frames tra coppie di nodi direttamente connessi. • Canale punto-punto: due nodi sono fisicamente connessi da un canale di comunicazione punto-punto che assolve la funzione di un cavo di collegamento (p.e. canale in fibra, linea telefonica). • Canale ad accesso multiplo (canale broadcast): il Data Link layer è anche responsabile del controllo degli accessi al canale (condivisione risorse).

– Network layer: abilita la comunicazione fra due nodi qualunque, arbitrariamente connessi • Caratteristica avanzata: comunicazioni multicast (un mittente molte destinazioni).

Reti di Calcolatori (Fabio Panzieri)

81

Università di Bologna - Corso di Laurea in Informatica

Architettura INTERNET • Quattro livelli solamente: – I primi due livelli OSI RM corrispondono al livello Network di Internet. – L’ Internet Protocol (IP) corrisponde al Network layer di OSI RM. – TCP (Transmission Control Protocol) and UDP (User datagram Protocol) corrispondono al Transport layer di OSI RM. – le applicazioni possono usare TCP, UDP e protocolli di livello più basso. Application layer Presentation layer Session layer Transport layer Network layer Data Link layer Physical layer

Reti di Calcolatori (Fabio Panzieri)

Application UDP

TCP IP

Network

82

41

Università di Bologna - Corso di Laurea in Informatica

Architettura Internet • Definita da Internet Engineering Task Force (IETF) • Gerarchia lasca FTP

HTTP

NV

TFTP

UDP

TCP

IP

NET 1

NET2



NET n

Reti di Calcolatori (Fabio Panzieri)

83

Università di Bologna - Corso di Laurea in Informatica

Programmare la rete • API (application programming interface) – Interfaccia supportata dall’architettura di rete – Consiste di insieme di primitive per la programmazione delle comunicazioni via rete – Definisce sintassi utilizzabile per invocare servizi implementati dai protocolli di rete – Convenzionalmente implementata dal sistema operativo

• Implementazione di applicazioni di rete – Concettualmente, simile a implementazione di gerarchia di protocolli • Applicazione invoca servizi di rete come protocollo di livello X invoca servizi implementati da protocollo di livello X-1

– In pratica, implementazione di gerarchia di protocolli si differenzia per • Limitare il numero dei context switch • Limitare il numero delle operazioni di copia

Reti di Calcolatori (Fabio Panzieri)

84

42

Università di Bologna - Corso di Laurea in Informatica

L’interfaccia socket • API nata per UNIX BSD e supportata da ampia varietà di OSs • Fornisce l’astrazione di “socket”: – Punto di accesso ai servizi di rete, utilizzabile da processo applicativo

• Primitive principali: 1) int socket(int domain, int type, int protocol) 2) int bind(int socket, struct sockaddr *address, int addr_len) 3) int listen(int socket, int backlog) 4) int accept(int socket, struct sockaddr *address, int *addr_len) 5) int connect(int socket, struct sockaddr *address, int addr_len) 6) int send(int socket, char *msg, int msg_len, int flags) 7) int recv(int socket, char *buffer, int buf_len, int flags)

Reti di Calcolatori (Fabio Panzieri)

85

Università di Bologna - Corso di Laurea in Informatica

Esempio di uso di socket /* client TCP*/ … main(…) { … /*risolvi indirizzo host dst*/ ds = gethostbyname(host); … /*stabilisci connessione*/ s = socket(PF_INET,SOCK_STREAM,0); … connect(s, …, …); … while (fgets(…) ) { /*legge e invia linee di testo*/ … send(s, buf, len, 0); } }

Reti di Calcolatori (Fabio Panzieri)

/* Server TCP */ … main() { … /* init open passiva */ s = socket(PF_INET,SOCK_STREAM,0); … bind(s,…,…); … listen(s,MAX_PENDING); /*attendi richiesta connessione*/ while(1){ new_s=accept(s,…,…); … recv(new_s,buf,sizeof(buf),0); close(new_s); } }

86

43

Università di Bologna - Corso di Laurea in Informatica

Interfaccia “socket” • abilita comunicazione fra programmi in esecuzione su nodi remoti – consente l’implementazione di protocolli applicativi

• Osservazioni – uso di interfaccia socket => system calls

• Adatta all’implementazione di protocolli? • Come si implementano i protocolli?

Reti di Calcolatori (Fabio Panzieri)

87

Università di Bologna - Corso di Laurea in Informatica

Protocolli modelli implementativi • •

Process-per-protocol Process-per-message

(a)

Process-per-Protocol Reti di Calcolatori (Fabio Panzieri)

(b)

Process-per-Message 88

44

Università di Bologna - Corso di Laurea in Informatica

Modello process-per-protocol • Ogni protocollo implementato da un processo – i.e., un processo per ogni livello di astrazione

• Msg viene trasmesso da un processo all’altro (i.e. da un livello all’altro) – msg attraversa stack di protocolli utilizzando IPC di OS – processo ricevente assume controllo e interpreta msg – assume disponibilità di qualche meccanismo di accodamento messaggi ai processi

N.B.: passare controllo a processo => costoso context switch Reti di Calcolatori (Fabio Panzieri)

89

Università di Bologna - Corso di Laurea in Informatica

Modello process-per-message • Ogni protocollo implementato mediante codice statico (procedura) – i.e., una procedura (contenente invocazioni di procedura) per livello di astrazione

• Gestione messaggi (in generale): – OS attiva processo responsabile per gestire messaggio – Processo invoca procedura che implementa specifico protocollo ad ogni livello della gerarchia per trattare messaggio – Gerarchia di protocolli attraversata mediante sequenza di chiamate di procedura

NB: chiamata di procedura è un’ordine di grandezza più efficiente di context switch

Reti di Calcolatori (Fabio Panzieri)

90

45

Università di Bologna - Corso di Laurea in Informatica

Ricezione messaggi • fonte di inefficienza: rcv bloccante => protocollo a livello X deve attendere terminazione rcv di protocollo a livello X-1 (equivalente a context switch)

• Risolto mediante upcall deliver (consegna messaggio ricevuto a livello superiore) – upcall: chiamata di procedura da livello X-1 a livello X • principio analogo a “interrupt handling”

TCP sendIPmsg()

deliverTCPmsg()

IP Reti di Calcolatori (Fabio Panzieri)

91

Università di Bologna - Corso di Laurea in Informatica

Protocolli: aspetti implementativi (modello process-per-protocol) • Socket API inadeguata per implementare architettura di protocolli – Ogni invocazione di primitiva socket causa context switch • OS sospende applicazione e passa controllo a kernel (driver che implementa protocollo)

– Costo accettabile a livello applicativo: • si paga una volta per invocazione • semplifica sviluppo

– Inaccettabile nell’implementazione di gerarchia di protocolli: • Invocazione di una primitiva a livello X causa successive invocazioni di primitive ai livelli inferiori • Se ogni primitiva (o protocollo) è implementata(o) da un processo, OS consuma tempo prezioso nell’effettuare i context switch

Reti di Calcolatori (Fabio Panzieri)

92

46

Università di Bologna - Corso di Laurea in Informatica

Inadeguatezza socket API: buffering di messaggi • send, recv: processo applicativo fornisce buffer da cui copiare dati da trasmettere, e dove copiare dati ricevuti – Protocollo di più alto livello copia dati da buffer utente a buffer sistema, e viceversa



Operazione “copia” è estremamente costosa (memoria più lenta di CPU) – da evitare nell’implementazione di gerarchie di protocolli Applicazione

copyout_msg()

send()

deliver()

copyin_msg()

Protocollo

Reti di Calcolatori (Fabio Panzieri)

93

Università di Bologna - Corso di Laurea in Informatica

Scatter-Gather • Uso di astrazione “messaggio”: • Messaggio: stringa di bytes di qualche lunghezza predefinita condivisa da i vari protocolli ai diversi livelli di astrazione • Operazioni su “messaggio”: manipolano stringa di bytes – msgAddHdr(…); msgStripHdr(…); – msgFragment(…); msgReassemble(…); • Tecnica dello “scatter/gather” – lista di “puntatori” che indirizzano, per ogni livello, porzioni di msg Lista di puntatori ø

HDR Li

Dati Li

HDR Lj

Scatter-gather Reti di Calcolatori (Fabio Panzieri)

Dati Lj

Lj

HDR Lj

Dati Lj

HDR Li

Dati Li

Ii Li

copy-and-store 94

47

Università di Bologna - Corso di Laurea in Informatica

Protocolli: aspetti implementativi (scheduling di eventi) • Protocollo può voler gestire evento che può accadere in qualche istante futuro p.e.: ritrasmissione di un messaggio allo scadere di un (timeout)

• Sottosistema di rete fornisce Event Manager (EM) – EM consente a protocollo di invocare procedura specifica dopo periodo di tempo prefissato. – p.e.: Event evSchedule(EvFunc function, void *argument, int time) /* invoca function dopo time microsecondi; ritorna descrittore evento ‘event’ per eventuale successiva cancellazione */ Void evCancel(Event event) /* cancella evento ‘event’ */

Reti di Calcolatori (Fabio Panzieri)

95

Università di Bologna - Corso di Laurea in Informatica

OSI RM

End host

End host

Application

Application

Presentation

Presentation

Session

Session

Transport

Transport

Network

Network

Network

Network

Data link

Data link

Data link

Data link

Physical

Physical

Physical

Physical

Uno o piu’ nodi di rete

Reti di Calcolatori (Fabio Panzieri)

96

48

Università di Bologna - Corso di Laurea in Informatica

Livelli Fisico e Data Link (funzionalità) •

Connessione diretta (punto-punto) fra elaboratori – –



Accesso singolo Accesso multiplo (condiviso)

Richiede soluzione di 5 problemi principali – – – – –

Encoding: codifica dei singoli bit in modo da essere riconoscibili da destinazione (i.e. distinguibili da rumore) Framing: consentire riconoscimento di sequenza di bit (frame) come singolo messaggio Individuazione di errori: bits in frame possono subire alterazioni in transito; di conseguenza, necessario individuare possibile errori Trasmissione affidabile: “mascherare” errori individuati Controllo di accesso: tecniche di arbitraggio degli accessi in canali ad accesso multiplo.

Reti di Calcolatori (Fabio Panzieri)

97

Università di Bologna - Corso di Laurea in Informatica

Livelli Fisico e Data Link • Livello fisico: – flusso di segnali – flusso di bit

• Livello data link: – flusso di frames Componenti di segnalazione Node

adaptor

segnali

adaptor

Node

bits frames Reti di Calcolatori (Fabio Panzieri)

98

49

Università di Bologna - Corso di Laurea in Informatica

Nodo (host computer) • Memoria: risorsa scarsa (e lenta); minimizzarne l’uso • Network Adaptor (NA) – Codifica/trasferisce dati da host a rete – Decodifica/ trasferisce dati da rete a host – Pilotato da device driver in host OS • Driver src fornisce a NA ptr e size dei dati da codificare/trasmettere • Driver rcv fornisce a NA ptr e size del buffer destinazione cpu

I/O bus

cache

network NA

memoria Reti di Calcolatori (Fabio Panzieri)

99

Università di Bologna - Corso di Laurea in Informatica

Livello Fisico: componenti • Nodi – host computers connessi mediante qualche supporto fisico (p.e., coax., fibra ottica, “spazio”) detto link

• Link – propaga (xmit/rcv) segnali – segnale: onda elettromagnetica che viaggia a velocità della luce (dipendente da supporto fisico) • p.e.: nel vuoto, 3 x 108 m/s, su rame, 2.3 x 108 m/s

– Link half-duplex: unidirezionale • richiede coordinamento fra src e rcv per decidere “chi fa cosa”

– Link full-duplex: bidirezionale

• Xmit/Rcv a livello fisico: – codifica dati (0,1) in segnali / decodifica segnali in dati • p.e. modem (modulator/demodulator): modulazione/demodulazione elettromagnetiche attraverso il canale fisico Reti di Calcolatori (Fabio Panzieri)

di onde

100

50

Università di Bologna - Corso di Laurea in Informatica

Livello fisico: xmit/rcv • Modulazione (variazione della frequenza) del segnale – Frequenza: velocità di oscillazione misurata in Hz

• Codifica – associazione dello stato del segnale ad un dato binario • p.e. 0 < signal ≤ +5v => ON = 1; -5V ≤ signal ≤ 0 => OFF = 0 N.B.: Modulazione istantaneamente

non

avviene

=> velocità di trasmissione del segnale limitata (i.e. bandwidth limitata) – Bandwidth (a livello fisico): velocità max cui h/w può variare il segnale – Bandwidth misurata in: • Cicli al secondo (Hz) per segnali analogici (p.e., da 300Hz a 3300 Hz per voce) • Bit al secondo (bps) per segnali digitali (i.e. impulsi ON e OFF) Reti di Calcolatori (Fabio Panzieri)

101

Università di Bologna - Corso di Laurea in Informatica

Teorema di Nyquist • Nel 1924, Nyquist stabilì che il massimo tasso di trasmissione di bit (bit rate) ottenibile su un canale “perfetto”, con bandwidth di B Hz è: D = 2B log 2 K dove, D e’ il bit rate (in bps), and K è il n. di livelli discreti di voltaggio del segnale. – p.e. su canale a 3 KHz (3000 Hz), max. bit rate per segnali binari (2 livelli) è 6000 bps. – Per ottenere bit rate maggiore sono necessarie tecniche di codifica sofisticate che usano numerosi livelli di voltaggio.

• Il teorema di Nyquist assume canale perfetto, senza rumore. – in pratica, il canale è soggetto a disturbi (interferenze), riducendo così il bit rate teorico. Reti di Calcolatori (Fabio Panzieri)

102

51

Università di Bologna - Corso di Laurea in Informatica

Teorema di Shannon (1948) • Fornisce limite superiore, in bps, della capacità (bit rate) di un canale soggetto a rumore, in funzione del rapporto segnale/rumore (S/N), misurato in dB – S = segnale elettrico, N = rumore termico

• Consente di valutare max capacità C di un dispositivo che trasmette segnale digitale su link analogico (p.e. modem), indipendentemente dal n. di livelli del segnale: C = B log2 (1 + S/N) bps – C: capacità del canale (bit rate, in bps) – B: bandwidth per il segnale analogico (in Hz) – S/N in dB ricavabile da relazione: dB = 10 log10 (S/N) • p.e.:S/N = 10 => 10dB, S/N = 100 => 20dB, S/N = 1000 => 30dB

– quindi, canale con B = 3000Hz e S/N di 30 dB avrà capacità massima C = 3000 log2 (1001) = 30 Kbps (circa) N.B.: 30dB = tipico valore del rapporto S/N su linea per voce Reti di Calcolatori (Fabio Panzieri)

103

Università di Bologna - Corso di Laurea in Informatica

Livello fisico: tipi di link Tecnologia e relative bande di frequenza (in Hz) 105 ≤ Cavo Coassiale < 109 107 < TV < 1010 108 < Satellite < 1011 1014 ≤ Fibra Ottica ≤ 1015

Tecnologia

Reti locali (private) Bandwidth

Reti pubbliche (leased lines)

Distanza

Doppino categoria

10 - 100 Mbps,

100m

50-ohm coax. (Thin Net)

10 - 100 Mbps

200m

75-ohm coax. (Thick Net)

10 - 100 Mbps

500m

Multimode Fiber

100 Mbps

2Km

Single-mode Fiber

100 - 2400 Mbps

40Km

Reti di Calcolatori (Fabio Panzieri)

Servizio Bandwidth T1 (DS1) 1.544 Mbps T3 (DS3) 44.736 Mbps STS-1 51.840 Mbps STS-3 155.250 Mbps … STS-48 2.488320 Gbps

104

52

Università di Bologna - Corso di Laurea in Informatica

Reti pubbliche: “last mile” link • Come connettersi a rete pubblica esistente – Linea telefonica standard, via modem • 56 Kbps

– ISDN (Integrated Services Digital Network) • Due canali a 64Kbps, uno per dati, l’altro per voce digitalizzata – CODEC (COder/DECoder) codifica voce in segnale digitale • Se canale “voce” non in uso, utilizzabile per dati => Bandwith disponibile = 128Kbps

– – – –

ADSL (Asymmetric Digital Subscriber Line) VDSL (Very-high-data-rate Digital Subscriber Line) CATV (Cable TV) Wireless

Reti di Calcolatori (Fabio Panzieri)

105

Università di Bologna - Corso di Laurea in Informatica

ADSL • •

Collegamento ad alta velocità fra host (subscriber) e telecom ISP Collegamento “asimmetrico” – –

i.e. bandwidth ISP -> subscriber (downstream) più ampia che subscriber -> ISP (upstream) Bandwidth effettiva dipende distanza subscriber <-> ISP

downstream (1.554 - 8.448 Mbps) TIN switch

Subscriber upstream (16 - 640 Kbps) Local loop

Reti di Calcolatori (Fabio Panzieri)

106

53

Università di Bologna - Corso di Laurea in Informatica

VDSL • Simmetrico 12.96 Mbps ≤ bandwidth ≤ 55.2 Mbps (dipendentemente da distanza da switch)

• Switch ottico – gestito da compagnia telefonica – Serve comunità di utenti (p.e. un quartiere)

Telecom switch

STS-N su fibra

Switch ottico

12.96 - 55.2 Mbps 300 - 1500 m

Subscriber

Reti di Calcolatori (Fabio Panzieri)

107

Università di Bologna - Corso di Laurea in Informatica

CAble TV (o cable modem) • Servizio alternativo ad ADSL – Fornisce collegamento ad alta velocità fra host (subscriber) e ISP

• Utilizza infrastruttura TV via cavo – Sottoinsieme di canali TV messi a disposizione per trasmissione dati digitali • Bandwidth: 6MHz per canale

• Asimmetrico – tecnologia attuale: 40Mbps downstream, 20Mbps upstream • Downstream maggiore perché si prevede trasmissione di traffico ≠ caratteri

• Condiviso – Comunità di utenti condividono bandwidth => Meccanismi di arbitraggio per allocazione di banda

Reti di Calcolatori (Fabio Panzieri)

108

54

Università di Bologna - Corso di Laurea in Informatica

Wireless •

Standard attuali: per fonia e trasmissione dati – PCS (Personal Communication Services): USA, CANADA – GSM (Global System Mobile): EUROPA (e resto del mondo) – Bluetooth (Ericsson, Nokia, IBM, Toshiba, Intel) • Standard industriale per coprire brevi distanze (decine di metri) • Disegnato per uso in qualunque dispositivo (WSs, stampanti, proiettori, telefoni, …)

– IEEE 802.11: accesso a canale condiviso in area geografica limitata



In corso di sviluppo per comm’s su scala planetaria – Costellazioni di satelliti P.e. Teledesic: rete di satelliti in grado di fornire canale da 2048 Mbps fra ogni coppia di hosts sulla terra • 288 satelliti a bassa orbita (1350 Km dalla Terra) • Ogni satellite: 1440 canali satellite-terra a 16Kbps, aggregabili in gruppi di 128 max. per fornire canali da 2048 Mbps • Ogni satellite connesso ad 8 vicini da canali da 155.52 Mbps

Reti di Calcolatori (Fabio Panzieri)

109

Università di Bologna - Corso di Laurea in Informatica

Livello fisico: tecniche di codifica • Principio operativo: – valori 1 e 0 codificati con diversi valori del segnale – Baseline: valore medio del segnale, usato per distinguere codifiche

• Pilotate da clock – Ad ogni ciclo di clock: • src codifica/trasmette un bit • rcv decodifica/riceve un bit

– Sincronizzazione tra src e rcv necessaria affinché rcv decodifichi/riceva lo stesso bit che src ha trasmesso – Rcv deriva segnale di clock da segnale ricevuto (clock recovery) • transizione di segnale da 0 a 1 e da 1 a 0 causa che rcv re-sincronizzi il proprio clock; i.e., rcv riconosce il clock boundary (o terminazione del ciclo)

– Clock potrebbe essere inviato come segnale separato, su link dedicato, ma ciò eleverebbe i costi di cablaggio

Reti di Calcolatori (Fabio Panzieri)

110

55

Università di Bologna - Corso di Laurea in Informatica

Tecniche di codifica • NRZ (Non Return to Zero) – Valore 1 codificato in segnale high, valore 0 codificato in segnale low (relativamente a baseline) stringa di bit

0

0

1

0

1

1

codifica NRZ

• Problemi – Segnale low prolungato: sequenza di 0 o link guasto? – Segnale high prolungato (i.e. sequenza di 1): causa variazione di valor medio (baseline) – Sequenze di 0 o di 1 inibiscono clock recovery, a causa di assenza di transizioni, provocando clock drift

Reti di Calcolatori (Fabio Panzieri)

111

Università di Bologna - Corso di Laurea in Informatica

Tecniche di codifica • NRZI (NRZ Inverted) – Src forza transizione del segnale corrente per codificare 1 – Src mantiene stato del segnale per codificare 0 – Risolve problema delle sequenze di 1 (non risolve quello delle sequenze di 0) stringa di bit

0

0

1

0

1

1

clock

codifica NRZI

Reti di Calcolatori (Fabio Panzieri)

112

56

Università di Bologna - Corso di Laurea in Informatica

Tecniche di codifica • Manchester encoding – Src trasmette XOR di NRZ encoding e clock • 0 codificato come transizione low -> high • 1 codificato come transizione high -> low

+ Risolve problema sequenze di 0 o 1 (i.e., abilita clock recovery a rcv) – Raddoppia il tasso di variazione del segnale => dimezza il bit rate stringa di bit

0

0

1

0

1

1

codifica NRZ clock

xor 0 0 1 1

0 1 0 1

0 1 1 0

Manchester encoding

Reti di Calcolatori (Fabio Panzieri)

113

Università di Bologna - Corso di Laurea in Informatica

Tecniche di codifica •

4B/5B – Inserisce bit aggiuntivo in ogni sequenza di 4 bit i.e. sequenza di 4 bit codificata con codice di 5 bit

– Codici di 5 bit costruiti in modo che • Ogni codice ha al più un bit 0 in testa • Ogni codice ha al più due bit 0 in coda

– Codici trasmessi con codifica NRZI • NRZI risolve problema sequenze di 1 • 4B/5B risolve problema sequenze di 0



Osservazioni – 16 i possibili simboli di 4 bit – 32 i possibili codici di 5 bit => 16 codici liberi per scopi speciali,p.e.: • 11111 “canale inutilizzato”, 00000 “canale non attivo”, 00100 “halt” • Dei 13 codici rimanenti, 7 violano regole 4B/5B, perciò non utilizzabili

Reti di Calcolatori (Fabio Panzieri)

114

57

Università di Bologna - Corso di Laurea in Informatica

Livello Data Link • In PSN: scambio di pkts – i.e., “frames” a livello data link

• Responsabilità principale del livello Data Link – Abilitare trasmissione/ricezione di frames fra due hosts connessi punto-punto • Framing: costruzione dei messaggi che possono essere trasmessi/ricevuti • Individuazione di errori • Trasmissione affidabile • Controllo degli accessi, nell’uso di canali punto-punto condivisi (p.e. CSMA/CD, Token Ring)

Reti di Calcolatori (Fabio Panzieri)

115

Università di Bologna - Corso di Laurea in Informatica

Principio operativo • Trasmissione di frame da A a B – A richiede ad adaptor trasmissione di frame da memoria di nodo • e.g. interfaccia Nodo/Adaptor: xmit(*ptr, length) da buf in A

– Adaptor invia sequenza di bit su link – Adaptor in B riceve sequenza di bit • e.g. interfaccia Nodo/Adaptor: deliver(*ptr, lenght) in buf in B

Nodo A

adaptor

Reti di Calcolatori (Fabio Panzieri)

bits frames

adaptor

Nodo B

116

58

Università di Bologna - Corso di Laurea in Informatica

Framing • Ruolo del livello Data Link: – imporre formato (frame) a flusso di bit – gestire xmit/delivery di flussi di frames

• Problema principale: determinare inizio/fine frame • Tre approcci – Byte oriented framing: frame come insieme finito di caratteri • basato su “sentinella” (delimitatore) • basato su “contatore” (lunghezza)

– Bit oriented framing: frame come insieme finito di bit • basato su “sentinella”

– Clock based framing: • frame come insieme sender/receiver

finito

di

bytes

costruito

su

sincronizzazione

• SONET: standard per trasmissione dati su fibra ottica Reti di Calcolatori (Fabio Panzieri)

117

Università di Bologna - Corso di Laurea in Informatica

Protocolli “sentinel-based” byte-oriented •

BISYNC (Binary Synchronous Communication) – protocollo IBM usato in computers IBM e switch Internet.

Ogni frame è una sequenza di bytes (caratteri) consistente di: – – – – – –



Caratteri speciali SYN e ETX usati per delimitare frame Usa tecnica del “character stuffing”: ogni carattere ETX in “body” sostituito da sequenza DLEETX (DLE: Data Link Escape) CRC: “cyclic redundancy code” su STX, body, ETX SOH

SYN

SYN

8 8 8

Reti di Calcolatori (Fabio Panzieri)

8 header

body

8

16

ETX

• •

2 caratteri SYN :“start of frame” carattere SOH: “start of header” campo “header”: info applicativa di controllo (address, n. di sequenza della frame) carattere STX: identifica “end of header” e “start of text” campo “body” (dati effetivi) carattere ETX: “ end of text”

STX



CRC 118

59

Università di Bologna - Corso di Laurea in Informatica

Protocolli “sentinel-based” bit oriented • HDLC (High level data link control) – – – –

Frame trattata come sequenza di bits. Sequenza 01111110 delimita la frame Stessa sequenza trasmessa con canale “idle” Bit stuffing • usato per riconoscere l’occorrenza della sequenza speciale nel “body”

HDLC

8

16

Beginning sequence

Header

16 Body

CRC

8 Ending sequence

Reti di Calcolatori (Fabio Panzieri)

119

Università di Bologna - Corso di Laurea in Informatica

Bit Stuffing in HDLC •

Mittente: – inserisce bit 0 dopo ogni sequenza di cinque bit 1 consecutivi nel “body” della frame



Destinatario: – se riceve sequenza di cinque 1 consecutivi nel body di una frame, allora esamina bit_successivo: if bit_successivo = 0 then “scarta bit” /* bit stuffing è avvenuto */ else /* bit_successivo = 1; due i casi possibili */ if bit_successivo = 0 then end-of-frame marker /* ultimi 8 bit ricevuti: 01111110 */ else “scarta frame” /* è stato ricevuto bit = 1; quindi, ultimi 8 bit ricevuti: 0111111; i.e., sequenza non ammessa */ o

siv ces

011111

suc bit_

0 => bit stuffing; scarta bit 1

Reti di Calcolatori (Fabio Panzieri)

0 => End of Frame 1 => sequenza non ammessa; scarta frame 120

60

Università di Bologna - Corso di Laurea in Informatica

Protocolli “counter-based” byte oriented • DDCMP (Digital Data Communication Message Protocol) – Usato da DEC in DECNET – Count: specifica n. di bytes in Body – Problema: corruzione del campo Count

8

8

8

14

42

SYN

SYN

class

• Ricevente: individua “framing error” calcolando CRC if framing error detected then discard frame; receive SYN

Count

Header

16 Body

CRC

Reti di Calcolatori (Fabio Panzieri)

121

Università di Bologna - Corso di Laurea in Informatica

Protocolli “clock-based” •

SONET (Synchronous Optical NETwork) – Standard internazionale per trasmissione su fibra ottica – Gestisce: framing, encoding e multiplexing di flussi a bassa velocità su canale ad alta velocità



Framing in SONET – Ogni frame e’ lunga 125µs • STS-1 (51.84 Mbps): frame length = 810 bytes •

STS-3 (155.25 Mbps): frame length = 2430 bytes

Frame STS1

STS -1

Hdr

STS -1

Hdr

Payload

Hdr

Overhead

STS -1

9 rows

Hdr

STS -3c

90 columns

Reti di Calcolatori (Fabio Panzieri)

122

61

Università di Bologna - Corso di Laurea in Informatica

Data Link Layer in Internet • •

Protocolli byte oriented Usati per: – comunicazioni router-to-router – comunicazioni utente_privato-ISP via linea telefonica

Reti di Calcolatori (Fabio Panzieri)

123

Università di Bologna - Corso di Laurea in Informatica

SLIP •

SLIP, Serial Line IP (Rick Adams 1984): – sviluppato per connettere SUN W/S a Internet via modem e linea telefonica – incapsula pacchetti IP in frame speciale • aggiunge flag byte alla fine di ogni pacchetto IP • se flag byte appare nel pacchetto IP, usa “character stuffing” (2 byte speciali)



Problemi – Non svolge controllo di errore – Supporta solo IP – Src e rcv devono conoscere relativi indirizzi IP – Non fornisce autenticazione – Non è Internet standard • ne esistono versioni diverse, incompatibili fra loro, e con IP

Reti di Calcolatori (Fabio Panzieri)

124

62

Università di Bologna - Corso di Laurea in Informatica

Point-to-Point Protocol (PPP) • •

IETF standard, utilizzabile via modem, linee seriali HDLC, SONET 3 responsabilità principali 1. Imporre una struttura di frame (simile a frame HDLC) 2. Implementare protocollo di controllo del link (LCP; i.e. Link Control Protocol) per •

attivare la linea



testing della linea



negoziare opzioni di comunicazione (p.e., velocità di trasmissione, controllo di errori)



disattivare la linea

3. Consentire configurazione protocollo di rete usato

del

livello

rete

indipendentemente

da



svolto da protocollo NCP (Network Control Protocol)



consente uso di un differente NCP per ogni protocollo di livello network usato

Reti di Calcolatori (Fabio Panzieri)

125

Università di Bologna - Corso di Laurea in Informatica

Frame PPP



Come HDLC, ma “character oriented”, non “bit oriented”

• •

“flag” = HDLC standard “address”: normalmente settato a 1 – tutte le stazioni possono accettare frame “control”= 00000011: “no error checking, no SeqNum” – assume link sufficientemente affidabile; possibile introdurre SeqNum,… “protocol”: tipo di info. contenuta in “payload” (NCP, LCP, IP, AppleTalk,…) “payload”: lunghezza variabile, default = 1500 B, altrimenti negoziato “checksum”: normalmente 2 B, negoziabili 4 B.

• • • •

– (i.e., frame size = n. intero di bytes)

Reti di Calcolatori (Fabio Panzieri)

126

63

Università di Bologna - Corso di Laurea in Informatica

PPP: principio di funzionamento • Home PC “chiama” host ISP via modem • Stabilisce connessione fisica via linea telefonica • Invia sequenza di pacchetti LCP in payload field per selezionare parametri di comunicazione (e.g. controllo di errore, velocità di trasmissione) • Scambia serie di pacchetti NCP per configurare livello network – se home PC usa TCP/IP, richiede indirizzo IP • in esempio: computer ISP dispone di n indirizzi IP che vengono allocati dinamicamente all’utente (i.e., può avere fino a n utenti collegati simultaneamente). NCP svolge questo ruolo.

• Home PC = Internet host – scambia pacchetti IP

• Terminazione sessione: – NCP chiude sessione a livello network – LCP chiude sessione a livello data link Reti di Calcolatori (Fabio Panzieri)

127

Università di Bologna - Corso di Laurea in Informatica

Attivazione/disattivazione linea in PPP 1. Fase “dead”: connessione assente 2. Fase “establish”: stabilita la connessione fisica, frames LCP scambiate per attivare una connessione con certe proprietà 3. Fase “authentication”: esegue autenticazione (p.e. controllo della password di utente). 4. Fase “network”: frames NCP trasmesse per inizializzare parametri di rete (p.e. indirizzo IP). 5. Fase “open”: trasferimento dati ha luogo 6. Fase “terminate”: chiude comunicazione Reti di Calcolatori (Fabio Panzieri)

128

64

Università di Bologna - Corso di Laurea in Informatica

Reti di Calcolatori (Fabio Panzieri)

129

Università di Bologna - Corso di Laurea in Informatica

Livello Data Link • Framing: costruzione dei messaggi che possono essere trasmessi/ricevuti • Individuazione di errori • Trasmissione affidabile • Controllo degli accessi, nell’uso di canali condivisi (p.e. CSMA/CD, Token Ring)

Reti di Calcolatori (Fabio Panzieri)

130

65

Università di Bologna - Corso di Laurea in Informatica

Individuazione di errori • Come individuare “corruzione” di bit (1 diviene 0, o vv.)? – mediante “ridondanza”, i.e. bit addizionali aggiunti al messaggio

• Bit di parità: un bit (parity bit) viene aggiunto ad un carattere di 7 bit. P.e. Parità “pari”: – mittente aggiunge parity bit = 1 o 0 in modo che il n. totale di 1 (bit di parità incluso) sia un numero pari p.e. parity bit per 0100101 è 1.

– destinatario controlla che ogni byte ricevuto contenga un numero pari di bit 1, altrimenti individua errore • L’occorrenza di un errore in un bit può essere individuata, ma non corretta; un numero pari di errori non può essere individuato.

– Parità dispari: l’opposto di parità pari.

Reti di Calcolatori (Fabio Panzieri)

131

Università di Bologna - Corso di Laurea in Informatica

Parità bidimensionale bit di parità a) bit di parità per singolo byte b) bit di parità per ogni posizione di bit nella frame – Ne risulta un byte di parità

• Proprietà: – Individua tutti gli errori di 1, 2, e 3 bit, e gran parte degli errori di 4 bit

• CRC (Cyclic Redundancy Code): più potente – protegge da “burst” (raffiche) di errori

Reti di Calcolatori (Fabio Panzieri)

dati

• Introduce

0101001 1101001 1011110 0001110 0110100 1011111

1 0 1 1 1 0

1111011 0

byte di parità

132

66

Università di Bologna - Corso di Laurea in Informatica

Errore “burst” • •

Errore “burst” inizia e finisce con bit errato, anche se i bit fra questi due sono corretti Definizione: – numero di bit compresi fra due bit errati (contando anche i due bit errati)



Due errori burst consecutivi devono essere separati da almeno B bit consecutivi corretti, dove B è la lunghezza del “burst”

Sequenza trasmessa: 110110 111101 111000 111110 11 Sequenza ricevuta: 111111 111101 011111 111110 11 min. seq. di bit “error-free” burst di 6 bit min. seq. di bit “error-free” burst di 4 bit Reti di Calcolatori (Fabio Panzieri)

133

Università di Bologna - Corso di Laurea in Informatica

Cyclic Redundancy Code •

Principio operativo: –

Rappresentare messaggio di n bit come un polinomio di grado n-1 •

p.e. MSG=10011010 corrisponde a M(x) = x7+ x4 + x3 + x1



p.e. C(x) = x3+ x2 + 1, k = 3



i.e.,M(x)/C(x) => resto = 0

– mittente e ricevente concordano divisore polinomiale C(x) (detto generatore) di grado k – C(x) deve dividere esattamente M(x) – Aggiungere k bits ridondanti a messaggio di n bit (k << n).



Mittente:



Ricevente

– trasmette un polinomio P(x) generato da M(x) . xk e divisibile per C(x) – Riceve P(x) – Calcola P(x)/C(x)

• resto = 0 in soli due casi: a. assenza di errori, i.e. P(x) = M(x) . xk b. P(x) ≠ M(x) . xk, ma è divisibile esattamente per C(x) => scegliere C(x) in modo da rendere b. caso “raro”, o impossibile

Reti di Calcolatori (Fabio Panzieri)

134

67

Università di Bologna - Corso di Laurea in Informatica

Aritmetica polinomiale per calcolo del CRC • Aritmetica polinomiale – i coefficienti possono assumere valore 0 o 1, solamente – operazioni sui coefficienti eseguite con aritmetica modulo 2 (i.e., senza riporti per l’addizione, né prestiti per la sottrazione)

• Alcune proprietà – Polinomio B(x) divisibile per polinomio C(x) se B(x) è di grado più elevato di C(x) – Polinomio B(x) divisibile una volta per polinomio C(x) se B(x) e C(x) sono dello stesso grado – resto della divisione ottenuto sottraendo C(x) a B(x) – Sottrazione: B(X) XOR C(X) • i.e., if bit i = bit j then bit i xor bit j = 0 else bit i xor bit j = 1 Reti di Calcolatori (Fabio Panzieri)

135

Università di Bologna - Corso di Laurea in Informatica

Regole di calcolo del CRC •

Obiettivo: creare polinomio che sia – derivato da messaggio originale M(x) – k bits più lungo di M(x) – Divisibile esattamente per polinomio C(x) di grado k



Procedura: 1. Moltiplicare M(x) per xk, i.e. creare messaggio T(x) = M(x) con k 0 aggiunti a fine messaggio 2. Dividere T(x) per C(x) e trovare resto 3. Sottrarre resto a T(x) 4. Inviare messaggio così ottenuto – i.e., viene generato e trasmesso un messaggio sicuramente divisibile per C(x)

Reti di Calcolatori (Fabio Panzieri)

136

68

Università di Bologna - Corso di Laurea in Informatica

Esempio Mittente Msg = 10011010 Polinomio corrispondente: M(x) = x7+ x4 + x3 + x1 Generatore C(x) = x3+ x2 + 1, i.e. 1101, k = 3 T(x) 1. moltiplicare M(x) per xk ottenendo • T(x) = x10 + x7 + x6 + x4 (10011010000) Msg 10011010000 : 1101 Generatore G G 1101 2. calcolare resto T(x)/C(x) 3. Sottrarre resto a T(x) resto 1001 • T(x) - resto sicuramente divisibile per C(x) G 1101 4. Trasmette messaggio ottenuto 1000 G 1101 N.B.: Passo 3. equivale a T(x) XOR resto, i.e. Msg concatenato a resto ottenuto in 3. 1011 Ricevente: G 1101 calcola 10011010101/1101 1100 – i.e., divide frame ricevuta per lo stesso G 1101 1000 generatore usato dal mittente G 1101 • Resto = 0 => frame corretta, scarta tre bit finali • Resto ≠ 0 => errore di trasmissione resto 101

Trasmette 10011010101 Reti di Calcolatori (Fabio Panzieri)

137

Università di Bologna - Corso di Laurea in Informatica

Proprietà del generatore • T(x): frame trasmessa; T(x) + E(x): frame ricevuta – polinomio E(x) rappresenta l’errore

• (T(x) + E(x))/C(x) = T(x)/C(x) + E(x)/C(x) • T(x)/C(x) dà resto 0 (per def. di T(x)) => eventuale errore si trova in E(x)/C(x) – se E(x)/C(x) dà resto ≠ 0, allora errore individuato – se E(x)/C(x) dà resto = 0 allora assenza di errore oppure errore non individuato

• Ne consegue: – C(x) tale da non dividere esattamente il polinomio “errore” E(x)

Reti di Calcolatori (Fabio Panzieri)

138

69

Università di Bologna - Corso di Laurea in Informatica

Caratteristiche del generatore • Come costruire C(x)? – Errore di singolo bit i esprimibile da polinomio di un singolo termine E(x) = xi – C(x) di grado k contiene almeno xk = 1 e x0 = 1 ⇒ C(x) di 2 termini non potrà dividere esattamente nessuna stringa di bit contenente errore in un singolo bit (i.e., esprimibile come E(x) = xi) ⇒ C(x) puo’ rilevare tutti gli errori di un singolo bit

• Dimostrato che generatore opportunamente costruito individua – – – –

tutti gli errori di un singolo bit, se i termini xk e x0 hanno coefficiente ≠ 0 tutti gli errori di due bit, se C(x) ha un fattore con almeno tre termini numero arbitrario dispari di errori, se C(x) contiene il fattore (x + 1) ogni errore “burst” la cui lunghezza sia inferiore a k bits e la maggior parte di errori “burst” di lunghezza superiore a k bits

NB: implementabile in H/W mediante registri shift e porte XOR Reti di Calcolatori (Fabio Panzieri)

139

Università di Bologna - Corso di Laurea in Informatica

Generatori

CRC CRC-8 CRC-10 CRC-12

C(x) x10+x9+x5+x4+x1+1 x12+x11+x3+x2+x1+1

CRC-16 CRC-CCITT

x16+x15+x2+1 x16+x12+x5+1

(HDLC) CRC-32 (ethernet)

x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

x8+x2+x1+1

Reti di Calcolatori (Fabio Panzieri)

140

70

Università di Bologna - Corso di Laurea in Informatica

Checksum in Internet • Mittente: – somma tutte le parole che vengono trasmesse, usando aritmetica in complemento a 1 – trasmette anche il risultato della somma (checksum)

• Ricevente: – fa lo stesso – se checksum calcolato differisce da quello ricevuto, allora errore

• Fornisce protezione “debole” – p.e. non protegge da modifiche nell’ordine delle parole – ritenuto sufficiente

Reti di Calcolatori (Fabio Panzieri)

141

Università di Bologna - Corso di Laurea in Informatica

Checksum in Internet u_short cksum(u_short *buf, int count) { register u_long sum = 0; while (count--) /*count: lunghezza di buf in unità di 16 bit */ { sum += *buf++; if (sum & 0xFFFF0000) { /*si è verificato riporto; incrementa risultato*/ sum &= 0xFFFF; sum++; } } return ~(sum & 0xFFFF); /*due bytes meno significativi di sum in complemento a 1*/ } Reti di Calcolatori (Fabio Panzieri)

142

71

Università di Bologna - Corso di Laurea in Informatica

Trasmissione affidabile

• Ricevente scarta frames contenenti errori di trasmissione • Per ottenere link affidabile

– Ricevente deve segnalare al mittente che ha scartato una frame – Mittente deve essere in grado di ritrasmettere frames scartate

• Due meccanismi di base:

– acknowledgement (ACK): ricevente invia a mittente una frame di controllo (frame priva di dati) a indicare che ha accettato un frame inviata dal mittente • piggybacking: invio di ACK in frame di dati che destinatario trasmette a mittente

– timeout: se mittente non riceve ACK in un intervallo di tempo predefinito, ritrasmette frame • in termini di programmazione: – mittente attiva timer di una certa durata if ACK ricevuto prima che il timer termini, then cancella timer else cattura eccezione dal timer, e ritrasmette • ARQ (Automatic Repeat Request): tecnica basata su ACK e timeout

Reti di Calcolatori (Fabio Panzieri)

143

Università di Bologna - Corso di Laurea in Informatica

Stop-and-wait: semplice schema ARQ Principio operativo: • Dopo aver inviato una frame, mittente attiva time-out attende ACK prima di inviare frame successiva • Terminazione del time-out prima ricezione ack

il e la di

=> ritrasmissione frame



N.B.: Casi c), d) – perdita/ritardo dell’ ACK possono provocare richieste replicate

Reti di Calcolatori (Fabio Panzieri)

144

72

Università di Bologna - Corso di Laurea in Informatica

Stop-and-wait: casi particolari 1. situazione normale, ACK ricevuto prima che time-out termini 2. frame non ricevuta (persa in transito), ACK non trasmesso, timeout termina, mittente ritrasmette frame 3. ACK perso, time-out termina, mittente ritrasmette frame, creando “duplicato” N.B.: mittente non può distinguere caso b) “frame persa” da caso c) “ACK perso”

4. ACK ricevuto dopo la terminazione del time-out, frame è stata ritrasmessa creando “duplicato” N.B.: – in c) “ACK perso”, in d) “ACK in ritardo” => ricevente deve poter distinguere duplicati da nuove frames

– a tale scopo, ogni frame contiene nel suo header un numero di sequenza (seqnum), p.e. un bit; – ogni frame ritrasmessa contiene lo stesso seqnum della frame originale – frames duplicate sono ACK’ed (confermate al mittente) e scartate Reti di Calcolatori (Fabio Panzieri)

145

Università di Bologna - Corso di Laurea in Informatica

Stop-and wait: Frames con seqnum • • •





Ogni frame contiene seqnum di un bit (0, 1) ACK di ogni frame contiene lo stesso seqnum della frame corrispondente Perdita di frame: – No ack generato da receiver – Time out termina e sender ri-invia frame con stesso sn (finchè non riceve un ack) Perdita di ack: – Time out termina e sender ri-invia frame con stesso sn – receiver riconosce duplicato, lo scarta, e ri-invia ack N.B.: funziona perché “stop and wait” ammette che vi sia solo una frame in transito, per cui src è in attesa di ACK – elimina caso di ACK in ritardo – non sfrutta la capacità del link

Reti di Calcolatori (Fabio Panzieri)

Sender

Receiver 0 0 1 1 0 0

146

73

Università di Bologna - Corso di Laurea in Informatica

Problema con Stop-and-Wait (SaW) Bassa utilizzazione del canale •

Assumiamo link con latenza L = 50 ms – SaW prevede che mittente, dopo aver inviato frame, attenda almeno 100msec prima di inviare frame successiva • i.e., il RTT = 100ms necessario a ricevere ack

=> a) frames possono essere inviate ad un tasso massimo di 1 ogni 100 ms. •

Assumiamo dimensione frame = 8 Kb (8192 bits) a) => al più 10 frame/secondo => max. bit rate = 80 Kbps



Assumiamo canale con bandwidth B = 2 Mbps => solamente 4% (i.e., 80Kbps/2Mbps) della bandwidth disponibile viene utilizzato – intuitivamente, relativamente a B disponibile, in 100 msec il mittente può inviare circa 200Kb (i.e. 25 frames), ma, in conseguenza di a), invia solo 8 Kbit (i.e. 1 frame).

BitPerFrame/TempoPerFrame = 8Kb/0.1s = 80Kbps

Reti di Calcolatori (Fabio Panzieri)

147

Università di Bologna - Corso di Laurea in Informatica

In termini di delay x bandwith •

Ip: B = 2Mb; L = 50 ms => D = 0.05s => D X B = 0.05s x 2000Kbps = 100Kb – poichè assumiano un bit di ack, src potrebbe trasmettere fino a 2(DxB) = 200Kb in un RTT (i.e. 2L)

2000Kbit

50 ms

100Kb



Src trasmette solo 8Kb per RTT su 200 che può trasmetterne



Ottimizzazione dell’uso del canale:



Protocollo Sliding Window lo consente

=> 8/200 = 1/25, i.e. utilizza solo il 4% della capacità della “pipe”. – mittente deve poter inviare più di una frame durante l’intervallo di RTT • in esempio precedente, un massimo (teorico) = 25 frames

Reti di Calcolatori (Fabio Panzieri)

148

74

Università di Bologna - Corso di Laurea in Informatica

Protocollo Sliding Window •

Receiver



Sender

Time

Principio di base: – consentire al mittente di trasmettere più di una frame prima di ricevere un ACK, mantenendo così il canale impegnato. P.e.: dato un canale di capacità Delay x Bandwidth = 8Kb dimensione frame = 1Kb si richiede che – vi possano essere fino a 8 frame in transito, e che – sender possa inviare frame 9 quando riceve ACK di frame 1

=> frames contengono SNs



N.B.: frames inviate sono bufferizzate al sender finché non ACK’ed => limite superiore al numero di frames inviate che possono essere non ACK’ed. Reti di Calcolatori (Fabio Panzieri)

149

Università di Bologna - Corso di Laurea in Informatica

Protocollo Sliding Window (mittente) Mittente: – Assegna numero di sequenza (SeqNum) ad ogni frame – Mantiene tre variabili di stato: • “send window size” (SWS): max. num. di frames non-ACK’ed tollerabili • “last acknowledgment received” (LAR): SeqNum di ultimo ACK ricevuto • “last frame sent” (LFS): SeqNum di ultima frame inviata

– Mantiene invariante: LFS - LAR <= SWS – Quando riceve ACK, avanza LAR verso destra (i.e. fa “scorrere finestra”), abilitando la trasmissione di frame successiva – Bufferizza al più SWS frame

≤ SWS



… LAR

Reti di Calcolatori (Fabio Panzieri)

LFS 150

75

Università di Bologna - Corso di Laurea in Informatica

Protocollo Sliding Window (ricevente 1/2) • Ricevente: – Mantiene tre variabili di stato: • “receive window size” (RWS): max. num. di frames non ordinate che ricevente può accettare; • “largest acceptable frame” (LAF): max. SeqNum di frame accettabile • “last frame received” (LFR): SeqNum dell’ultima frame ricevuta

– Mantiene invariante: LAF - LFR <= RWS

≤ RWS



… LFR

LAF

Reti di Calcolatori (Fabio Panzieri)

151

Università di Bologna - Corso di Laurea in Informatica

Protocollo Sliding Window (ricevente 2/2) • Ricevente riceve frame con SN = SeqNum: – if LFR < SeqNum <= LAF then accetta frame – if SeqNum < LFR or SeqNum > LAF then scarta frame (frame è fuori finestra)

• Invia ACK “cumultativo” (per più di una frame) – Sia SeqNumToAck il numero di sequenza maggiore fra quelli non ancora ACK’ed, i.e. tale che: • tutte le frames con SeqNum < SeqNumToAck sono state ricevute e ack’ed • può avere ricevuto frames con SN > SeqNumToAck, ma non sono ordinate

– Ricevente: • invia ACK di frame con SeqNum = SeqNumToAck per indicare che tutte le frames fino a SeqNumToAck sono state ricevute • aggiorna le variabili di stato: – LFR = SeqNumToAck – LAF = LFR + RWS. Reti di Calcolatori (Fabio Panzieri)

152

76

Università di Bologna - Corso di Laurea in Informatica

Esempio •

Supponiamo LFR = 5 e RWS = 4, allora: 1. 2. – –

ultimo ack inviato da receiver era per SeqNum = 4 LAF = 9 if riceve frames 7 e 8 then accetta e bufferizza, no ACK (attende frame 6) prima o poi riceve frame 6 (p.e., in ritardo perché persa in precedente trasmissione) N.B.: se frame 6 persa, time out a sender termina, e sender ri-invia frame 6

– Ricevente può inviare singolo ACK di frames fino a, ed inclusa, frame 8 – LFR viene incrementato a 8, LAF a 12 (i.e. RWS + 8)



Ulteriori strategie di ACK – “negative ack” (NAK) • •

nell’esempio precedente, if 6 ricevuto dopo 4 ritrasmissione di 5, i.e. invia NAK per frame 5 NACK è ridondante, se il sender è dotato di time out

then

ricevente

richiede

– “selective ack” (SAK): ricevente invia ACK delle sole frames ricevute N.B.: facilitano sender a mantenere “pipe full”, ma aumentano complessità di receiver Reti di Calcolatori (Fabio Panzieri)

153

Università di Bologna - Corso di Laurea in Informatica

Dimensionamento di SWS e RWS •

SWS determinata in base a – RTT di singola frame e – bandwidth del canale i.e. SWS calcolata sulla base di quante frames possono essere trasmesse prima di ricevere ACK della prima frame



RWS determinata in base a – quante frames fuori ordine (i.e. non in sequenza regolare) il ricevente può accettare – 2 le dimensioni di RWS utilizzate comunemente: RWS = 1 i.e. ricevente non accetta frames non ordinate RWS = SWS i.e. ricevente può bufferizzare tutte le frames che il mittente invia.



N.B. Window Size concordata via handshake prima di iniziare trasmissione

Reti di Calcolatori (Fabio Panzieri)

154

77

Università di Bologna - Corso di Laurea in Informatica

Spazio dei numeri di sequenza • SeqNum specificato in campo, di dimensione finita, di HDR – p.e.: campo di 3 bit, SeqNum 0…7 => SeqNum devono essere riutilizzabili (campo riservato di dimensioni finite) => necessità di distinguere fra occorrenze distinte dello stesso SeqNum e duplicati => spazio dei SeqNum deve essere più grande del N. di frames non-ACK’ed

• SWS ≤ MaxSeqNum-1 non è sufficiente – – – – –

Supponiamo campo di 3-bit per SeqNum (0..7) SWS = RWS = 7 Mittente trasmette frames 0..6; ricevute ok a dst. ma ACK perso Mittente ritrasmette frames 0..6 Ricevente si aspetta 7,0..5, con frames 0…5 seconda occorrenza dello stesso SeqNum su nuove frames; invece ottiene replica di precedenti.

• Regola: SWS < (MaxSeqNum+1)/2 – intuitivamente, SeqNum “scorre” (si alterna) tra due metà dello spazio dei SeqNum Reti di Calcolatori (Fabio Panzieri)

155

Università di Bologna - Corso di Laurea in Informatica

Esempio •

HDR contiene 3 bit disponibili per SN ⇒ SN = 0,1,…,7 ⇒ SWS < (7 + 1)/2 = 4 ⇒ SWS = 3 messaggio perso time-out termina S ritrasmette

S

R sn = 0 sn = 1 sn = 2

ack = 3

sn = 0 sn = 1

ack = prossimo sn atteso

R riconosce duplicati; attendeva 3, 4, 5, 6, 7

sn = 2

Reti di Calcolatori (Fabio Panzieri)

156

78

Università di Bologna - Corso di Laurea in Informatica

Livello Data Link • Framing: costruzione dei messaggi che possono essere trasmessi/ricevuti • Individuazione di errori • Trasmissione affidabile • Controllo degli accessi in canali condivisi – – – –

CSMA/CD Token Ring FDDI 802.11

Reti di Calcolatori (Fabio Panzieri)

157

Università di Bologna - Corso di Laurea in Informatica

Canali ad accesso multiplo • A differenza dei link point-to-point, i canali ad accesso multiplo sono canali “broadcast” – Esempi: reti locali (Ethernet, Token ring), reti via satellite

• Caratteristiche principali – Canale condiviso da molteplicità di hosts – Protocollo di accesso al canale necessario per garantirne l’utilizzo senza interferenze fra hosts – Protocollo di accesso: Medium Access Control (MAC) protocol – Protocollo MAC: parte “bassa” del data link layer (MAC sub layer).

Reti di Calcolatori (Fabio Panzieri)

158

79

Università di Bologna - Corso di Laurea in Informatica

Network Adaptor • •

Host I/O bus



MAC implementa funzionalità di livello data link; p.e. framing, individuazione di errore Funzionalità come Automatic Repeat reQuest e “sliding window” implementate via s/w in host, di norma. Network adaptor – Interfaccia Link: implementa protocollo MAC – Interfaccia bus: implementa protocollo con host (interrupts, I/O verso memoria) – Buffers necessari a causa delle differenti velocità del bus e del link

Interfaccia

Interfaccia

Bus

Link

Network link

Adaptor Reti di Calcolatori (Fabio Panzieri)

159

Università di Bologna - Corso di Laurea in Informatica

Ethernet • Cenni storici – Sviluppata presso Xerox verso la metà degli anni 70 – Standardizzata da Xerox, DEC, e Intel nel 1978 (Ethernet standard) – Più tardi, IEEE 802.3 standard ratificato (simile a Ethernet standard). – Da allora chiamato 802.3 LAN

• Protocollo MAC di Ethernet: di tipo CSMA/CD – Carrier Sense Multiple Access/Collision Detection

• CSMA/CD – algoritmo distribuito che fornisce accesso al canale condiviso

• Bandwidth – 10Mbps, 100Mbps (Fast Ethernet), 1000 Mbps (Gigabit Ethernet)

Reti di Calcolatori (Fabio Panzieri)

160

80

Università di Bologna - Corso di Laurea in Informatica

Tecnologia Ethernet classica (thick-net) • Segmenti di cavo coassiale (impedenza: 75 ohms) – Lunghezza massima del segmento: 500m

• Segmenti connessi mediante repeaters – Non più di 4 repeaters fra ogni coppia di nodi • Lunghezza massima di una rete: 2500m

– Segnale trasmesso da un host propagato in entrambe le direzioni; repeaters propagano ulteriormente il segnale in tutti i link in uscita. – Ogni segmento è chiuso da un terminatore che assorbe il segnale impedendogli di “rimbalzare”, causando interferenze.

Reti di Calcolatori (Fabio Panzieri)

161

Università di Bologna - Corso di Laurea in Informatica

Interfaccia h/w host - Ethernet 10Base5) •





transceiver –

Percepisce stato del canale (idle/busy)



pilota il segnale quando l’host trasmette

Connessione fisica tra transceiver e host mediante Ethernet controller (o adaptor) –

Xmit/rcv frames a/da transceiver



assembla dati in formato frame



calcola checksum in in/out frames



gestisce buffers di in/out

Cavo Ethernet transceiver

controller

Distanza minima fra coppia di “transceiver”: 2.5m

Host

Reti di Calcolatori (Fabio Panzieri)

162

81

Università di Bologna - Corso di Laurea in Informatica

Tecnologia Ethernet classica (thick-net) • •



Numero massimo di hosts: 1024 Chiamata anche: 10Base5 – 10 : opera a 10Mbps – Base : opera in modalità baseband • uso di unica frequenza di trasmissione per tutte le stazioni collegate • ogni stazione deve “partecipare” (i.e. listen) ad ogni trasmissione – 5 : segmento può essere di 500m max. Tecnologie alternative – 10Base2 (thin-net): 200m max; configurazione a “daisy-chain” – 10BaseT (T: twisted-pair): 100m max.; configurazione a stella • segmenti punto-punto collegati ad un repeater multi-porte (Hub)

Repeaters R R R R R

Reti di Calcolatori (Fabio Panzieri)

163

Università di Bologna - Corso di Laurea in Informatica

Collegamenti in LAN 802.3 (Ethernet)

Reti di Calcolatori (Fabio Panzieri)

164

82

Università di Bologna - Corso di Laurea in Informatica

Trasmissione del segnale in 802.3 LAN •

802.3 LAN usa “Manchester encoding” (ME):

– Trasmissione di ciascun bit ha una transizione nel mezzo: • 1: da “high” (+0.85 Volts) a “low” • 0: da “low” (-0.85 Volts) a “high”. N.B.: – schema bit 0 = 0 volt, bit 1 = +ve volt, non consente di distinguere fra “sorgente idle” (0 volts) e “sorgente trasmette bit 0”; ME elimina questa limitazione. – Differential Manchester Enconding: protegge da rumore, aunenta complessità

Reti di Calcolatori (Fabio Panzieri)

165

Università di Bologna - Corso di Laurea in Informatica

Formato della frame Ethernet (Digital-Intel-Xerox)

64 bit preamble



48 bit

48 bit 16 bit 46 ≤ n. bytes ≤ 1500

dest. addr. src. addr. type

Body

32 bit CRC

postamble

preamble: primi 7 bytes <- 10101010 ciascuno, 8º byte <- 10101011 (Start of Frame) • Manchester encoding dei primi 7 bytes del preamble genera onda quadra (10 MHz) per 5.6 µs che abilita ricevente a sincronizzare proprio clock con mittente

• •

dest.addr, src. addr.: identificano host destinazione e sorgente type ( demultiplexing key): identifica protocollo di livello superiore



Body: campo dati.

– usa codici superiori al valore 1500 (cf. slide successiva) – contiene da 46 bytes min. a 1500 bytes max. – 46 byte min. necessari per individuare collisione

• •

CRC: campo di controllo errori postamble: simile a HDLC, indica fine frame N.B. Frame header a livello host: 2 indirizzi di 6 bytes ciascuno + campo type di 2 bytes. Adaptor include preamble, CRC e postamble prima di trasmettere frame. Reti di Calcolatori (Fabio Panzieri)

166

83

Università di Bologna - Corso di Laurea in Informatica

Formato della frame 802.3 LAN standard •

Differenze principali da Ethernet (Dec-Intel-Xerox) – Campo length di 16 bit al posto di type

• usato per indicare lunghezza di frame • demultiplexing effettuato mediante informazione in campo Data

– Campo Pa (Padding)

• lunghezza minima di frame deve essere 64 bytes (da Destination a Checksum); campo Pa usato per estendere lunghezza di frame se campo Data < 46 bytes



Osservazioni

– IEEE standard abilita indirizzi da 2 a 6 bytes di lunghezza • in pratica usati indirizzi di 6 bytes, solamente

– Length elimina necessità di postamble – può coesistere con standard Dec-Intel-Xerox

• driver in host interpreta ultimi 16 bit di hdr come type o lenght a seconda del valore contenuto

Reti di Calcolatori (Fabio Panzieri)

167

Università di Bologna - Corso di Laurea in Informatica

Indirizzamento • Indirizzi: • Indirizzo unico “unicast” di 48-bit assegnato ad ogni adaptor – 24 bit assegnati da IEEE OUI (Organizationally Unique Identifier) rimanenti da produttore • consente di assegnare 224 = 16.777.216 id. diversi

• Broadcast: tutti 1 • Multicast: primo bit è 1 (ma non tutti gli altri sono 1, in modo da distinguere Multicast da Broadcast)

• Host può programmare il proprio adaptor ad accettare un insieme di indirizzi Multicast • Adaptor programmabile ad accettare tutte le frame (modalità promiscua)

• Adaptor riceve tutte le frames, e accetta (i.e. passa al proprio host):

– Frames indirizzate al proprio indirizzo (unico) unicast – Frames indirizzate all’indirizzo broadcast – Frames indirizzate ad ogni indirizzo multicast che l’adaptor è stato programmato ad accettare – Tutte le frames, se programmato in modalità promiscua

Reti di Calcolatori (Fabio Panzieri)

168

84

Università di Bologna - Corso di Laurea in Informatica

Trasmissione • Se canale idle, adaptor: – Invia immediatamente, senza negoziare uso del canale con altri adaptors – Dimensione massima del Body inviabile: 1500 bytes => adaptor può occupare il canale per intervallo di tempo di lunghezza max. prefissata

– Deve attendere 9.6µs prima di inviare nuova frame => fairness: altri adaptors possono utilizzare il canale

• Se canale busy, adaptor: – Attende finché idle, quindi trasmette immediatamente (i.e., dopo 9.6µs) • Protocollo Ethernet chiamato 1-persistent (i.e. adaptor con frame da inviare trasmette con probabilità 1 quando canale passa da busy a idle)

– Controlla trasmissione per rilevare eventuali collisioni • Collisione: si verifica quando più adaptors trasmettono contemporaneamente • Rilevamento di collisione: segnale inviato non è quello in transito sul canale. • Minima dimensione frame = 64 bytes (i.e., 512 bits) – necessaria per garantire che collisione venga rilevata Reti di Calcolatori (Fabio Panzieri)

169

Università di Bologna - Corso di Laurea in Informatica

Rilevamento di collisione • • • • •

Sia τ il ritardo di propagazione di una frame trasmessa da stazione A alla destinazione più lontana B. Al tempo 0, stazione A invia frame a B. Subito prima che frame raggiunga B (al tempo τ − ε, ε: frazione di tempo), B inizia trasmissione di sua frame, che colide con quella da A al tempo τ Quando B rileva collisione, interrompe trasmissione e invia “rumore” (32 bit) per allertare le altre stazioni in rete. Dopo un tempo di al più 2τ, A recepisce il “rumore” e sospende trasmissione.

Reti di Calcolatori (Fabio Panzieri)

170

85

Università di Bologna - Corso di Laurea in Informatica

Rilevamento di collisione: dimensione frame

• Se frame da A è corta e trasmissione termina prima che A riceva “rumore” da B all’istante 2τ, A potrebbe concludere erroneamente che la propria frame è stata trasmessa con successo. • Prevenzione: tutte le frame devono impiegare più di 2τ. • In 10Mbps Ethernet di lunghezza max. = 2500 m, con max . 4 repeaters: τ = 51.2µs – corrisponde a trasmettere 512 bit (64 bytes), i.e. 14 bytes di header (dest.addr., src.addr., type) e almeno 46 bytes di Body, da cui il vincolo su min. num. di bytes in campo dati Reti di Calcolatori (Fabio Panzieri)

171

Università di Bologna - Corso di Laurea in Informatica

Exponential backoff • Tecnica di ritramissione in seguito a collisione • Collisione => necessario evitare che stazioni concorrentemente • Ogni adaptor riprova usando tecnica di exponential backoff

riprovino

• 1ª volta: attende tra 0 e 51.2µs, a caso e riprova. Se fallisce… • 2ª volta: attende tra 0 e 102.4µs, a caso, e riprova. Se fallisce… • 3ª volta: attende 0 e 204.8µs, a caso, e… • Rinuncia dopo vari tentativi (solitamente 16) e riporta errore

Reti di Calcolatori (Fabio Panzieri)

172

86

Università di Bologna - Corso di Laurea in Informatica

Reti Token Ring • Insieme di nodi interconnessi ad anello • Alcune tecnologie: – IBM: 4Mbps token ring (256 stazioni max.) – 16Mbps IEEE 802.5/token ring (250 stazioni max.) – 100Mbps Fiber Distributed Data Interface (FDDI) (500 stazioni max)

ethernet bridge

bridge

IBM token Ring FDDI Ring

Reti di Calcolatori (Fabio Panzieri)

173

Università di Bologna - Corso di Laurea in Informatica

Token Ring vs. Ethernet • Similarità: – algoritmo distribuito per controllo condivisione canale – tutte le stazioni ricevono tutte le frames

• Differenza: – topologia ad anello anziché a bus ⇒frame trasmessa ritorna alla stazione src; i.e., ack intrinseco

• FDDI Token Ring: – due anelli concentrici con senso di rotazione opposto – consente riconfigurazione in caso di guasti di nodo e di link

Reti di Calcolatori (Fabio Panzieri)

174

87

Università di Bologna - Corso di Laurea in Informatica

Token Ring: principio operativo • Frames trasmesse in un’unica direzione • Ogni stazione

– riceve frame da stazione vicina (upstream) – trasmette frame a stazione vicina (downstream)

• Token:

– frame contenente particolare configurazione di bit che circola sul ring

• Src: – – – –

cattura token prima di trasmettere inserisce propria frame e trasmette rimuove propria frame dal ring quando gli ritorna rilascia il token a trasmissione terminata

• i.e., consente ad altro nodo di trasmettere (“ring fairness”)

• Dst:

– Salva copia di frame, se campo destinazione contiene Dst addr. – Rilascia frame “downstream”

Reti di Calcolatori (Fabio Panzieri)

175

Università di Bologna - Corso di Laurea in Informatica

Interfaccia fisica Host-token ring b)

a)

host

host da host precedente

a host successivo

da host precedente relay

relay a)

Relay aperto: •

host funzionante • •

cattura token trasmette frame

Reti di Calcolatori (Fabio Panzieri)

a host successivo

b) Relay chiuso: •

host isolato •

in caso di giasto di nodo il ring non è interrotto

176

88

Università di Bologna - Corso di Laurea in Informatica

Formato della frame IEEE 802.5 Bytes

1 SoF

1 AC

1 FC

2o6 dst. addr.

2o6

dimensione variabile

src. addr.

Body

4 CRC

1

1

EoF Status

• SoF: start of frame; EoF: end of frame (marche di inizio e fine frame) • AC: access control – configurazione particolare di bit in AC identifica token – priorità della frame

• FC: frame control – usato per distinguere frame di dati da frame di controllo

• dst addr, src addr, CRC: come in 802.3 • Status: usato per acknowledgement/flow control da destinazione a mittente Reti di Calcolatori (Fabio Panzieri)

177

Università di Bologna - Corso di Laurea in Informatica

Consegna affidabile •

Due bit (A,C) in campo Status servono da ack – inizializzati A = 0, C = 0 – interfaccia a dst di frame • •

-

setta A = 1 if copia frame in memoria nodo OK then C = 1 else C = 0 /* trasferimento in memoria nodo fallito (p.e. buffer ricevente “full”) */

src estrae frame da ring, quando torna, e esamina bits A, C 1. [A=0, C=0] => destinazione non attiva (p.e., guasta/spenta) 2. [A=1, C=0] => destinazione attiva ma frame scartata 3. [A=1, C=1] => destinazione attiva e frame accettata

-

N.B. A=0, C=1 => combinazione non ammissibile -

se si verifica trattata come caso 1.

Reti di Calcolatori (Fabio Panzieri)

178

89

Università di Bologna - Corso di Laurea in Informatica

Protocollo di accesso principio di funzionamento • Anello “idle” – Token, costituito dai 3 bytes SoF AC EoF, circola sull’anello

• Trasmissione: – stazione cattura token, costruisce frame, trasmette • setta un bit in campo AC a indicare “ring busy”

– può trattenere token per Token Holding Time (THT) • default THT = 10 ms in 802.5.

– se THT non terminato, dopo trasmissione di una frame, può trasmettere nuova frame • prima di trasmettere nuova frame, src controlla se THT residuo è sufficiente a trasmettere tutti i bit in nuova frame

– altrimenti rigenera token di 3 bytes e lo invia sull’anello

N.B. Uso del THT determina dimensione variabile del campo Body

Reti di Calcolatori (Fabio Panzieri)

179

Università di Bologna - Corso di Laurea in Informatica

Gestione del Token Ring • Ogni ring ha una stazione eletta a monitor che individua eventuali “smarrimenti” del token • Smarrimento del token – Token non generato a tempo di inizializzazione del ring – Errore in un bit altera token e lo rende irriconoscibile – Nodo che detiene token subisce crash

• Ogni stazione può agire da monitor del ring • Monitor “sano” annuncia sua presenza con messaggio periodico – “active monitor present” = 00000101 in campo Frame Control (FC)

• Nodo che non riceve “active monitor present” sospetta guasto del monitor e si candida per diventarlo – Stessa procedura usata per eleggere monitor a tempo di bootstrap del ring Reti di Calcolatori (Fabio Panzieri)

180

90

Università di Bologna - Corso di Laurea in Informatica

Ring Monitor • Elezione del Monitor

– Nodo X invia claim frame sul ring

• annuncia propria intenzione a diventare monitor

– if claim frame torna al mittente then • Nodo X diviene Monitor • Monitor genera token

– if claim frame inviata concorrentemente da altro Nodo Y then

• X e Y eseguono “regola di risoluzione” p.e.: regola di risoluzione = nodo con indirizzo maggiore eletto monitor

• Monitoring del token (svolto da stazione monitor)

– Monitor osserva passaggio token – Per ogni passaggio attiva timeout = “max token rotation time” • max token rotation time = NumNodi x THT + LatenzaRing – LatenzaRing: ritardo di propagazione

– if timeout termina prima di passaggio token then rigenera token

• Monitor elimina frames

– “corrotte” (p.e. checksum error, formato invalido) – “orfane” (src ha subito crash)

Reti di Calcolatori (Fabio Panzieri)

181

Università di Bologna - Corso di Laurea in Informatica

FDDI •

Ring secondario entra in funzione in caso di guasto del primario e riconfigurazione Host A Host A

crash Host B

Host B

Host D

Host D

Host C

Reti di Calcolatori (Fabio Panzieri)

Host C

182

91

Università di Bologna - Corso di Laurea in Informatica

Formato della frame FDDI 8 bit

8 bit

SoF

Control

16 o 48 bit 16 o 48 bit dst. addr.

src. addr.

n. bytes ≤ 4478

Body

8 bit

32 bit

CRC

24 bit

EoF

Status

• Standard supporta indirizzi di 16 o 48 bit – 48 bit è il formato solitamente usato

• Start of frame/ End of frame:

– sequenza di bit che identifica inizio/fine frame

• Control: informazione riguardo la frame

– bit 1 = 0: frame trasporta traffico asincrono; bit 1 = 1: frame trasporta traffico sincrono – bit 2 = 0: indirizzi di 16 bit; bit 2 = 1: indirizzi di 48 bit – bit 3 … bit 8: demultiplexing key come campo type in frame Ethernet



• alcuni types di frame riservati per uso interno del protocollo FDDI P.E.: token identificato da una configurazione speciale del campo control

Status: settato dalla destinazione per riportare al mittente informazione di stato frame – P.E.: ricevuta frame errata – utilizzabile da dst. per implementare controllo di flusso

• P.E.: informa mittente di non avere sufficiente memoria per bufferizzare frame

Reti di Calcolatori (Fabio Panzieri)

183

Università di Bologna - Corso di Laurea in Informatica

IEEE 802.11 (reti wireless) • Standard di comunicazione per uso geograficamente limitate (abitazioni, uffici)

in

aree

• Responsabilità principale: – Accesso a “canale condiviso”: i.e., “spazio”

• Specificato per operare utilizzando 2 supporti fisici – radio frequenza • 802.11b: 2.4 GHz, 11Mbps • 802.11a: 5GHz, 54Mbps

– infrarosso: 2Mbps, range = 10m (approx.)

Reti di Calcolatori (Fabio Panzieri)

184

92

Università di Bologna - Corso di Laurea in Informatica

IEEE 802.11 tecniche di trasmissione • Frequency hopping: trasmette segnale usando una sequenza “casuale” di frequenze: • “casuale”: prodotta da un generatore di numeri pseudo-casuali noto a src e dst

• Direct sequence: rappresenta ogni bit come sequenza di bit ottenuta da XOR di quel bit e n-bit chipping code • n-bit chipping code: sequenza di bit casuali nota a src e dst p.e.: 4-bit chipping code: 1 0

Flusso dati: 1010

1 0

n-bit chipping code: 0100 |1011 | 0101 | 1001

1 0

Sequenza ottenuta 1011 | 1011 | 1010 | 1001

XOR

Reti di Calcolatori (Fabio Panzieri)

185

Università di Bologna - Corso di Laurea in Informatica

Collisioni • Simile a Ethernet – Attende link idle – Trasmette – if collisione_rilevata then exponential back off • Complicato dal fatto che nodi non sempre mutualmente raggiungibili – ogni nodo rileva presenza dei nodi nel proprio raggio di copertura, esclusivamente

• Problemi: – nodi nascosti – nodi esposti Reti di Calcolatori (Fabio Panzieri)

186

93

Università di Bologna - Corso di Laurea in Informatica

Nodi nascosti •

Figura illustra raggio copertura di B e C

di



A sente B ma non C e D; B sente A e C, ma non D; C sente B e D, ma non A.



A e C inviano frame a B contemporaneamente => collisione

N.B.: •

A

B

C

D

A e C non a conoscenza di reciproca esistenza =>

non possono collisione

prevenire

Reti di Calcolatori (Fabio Panzieri)

187

Università di Bologna - Corso di Laurea in Informatica

Nodi esposti • • • •

B trasmette ad A C vuole trasmettere a D C rileva trasmissione da B ed assume canale occupato C non trasmette per non creare interferenze => decisione errata:

A

B

C

D

– C può trasmettere a D senza creare interferenze con comunicazioni da B ad A – C non può/deve trasmettere a B

Reti di Calcolatori (Fabio Panzieri)

188

94

Università di Bologna - Corso di Laurea in Informatica

Protocollo MACAW: Multiple Access Collision Avoidance for Wireless LANs • Src invia RequestToSend (RTS) frame

• informa i vicini di richiesta di accesso al canale • frame contiene campo “durata”, indica per quanto tempo src impegnera’ canale

• Dst risponde con ClearToSend (CTS) frame • Vicini:

• intercettano CTS: non trasmettono (sono vicini al dst, possono inteferire) • intercettano RTS ma non CTS: possono trasmettere (non creano interferenze)

• Dst invia ACK quando ha ricevuto frame

• Vicini non trasmettono fin quando non intercettano ACK

• Collisoni • • • • •

Due nodi inviano RTS concorrentemente; RTS frames collidono Non vi è meccanismo di individuazione di collisone Collisione scoperta quando non ricevono CTS dopo timeout Exponential backoff: riprova dopo attesa “casuale” (cf. IEEE 802.3)

Reti di Calcolatori (Fabio Panzieri)

189

Università di Bologna - Corso di Laurea in Informatica

Sistema di distribuzione • Ambito wireless: – comunicazioni abilitate dipendentemente da distanza fra nodi – nodi “mobili” =>insieme dei nodi abilitati a comunicare fra loro varia nel tempo

• IEEE 802.11 definisce infrastruttura supporta “mobilità”, e consiste di:

aggiuntiva

che

– nodi mobili: abilitati a “roaming” (mobilità) – Access Points (APs): nodi fissi connessi a infrastruttura di rete (cablata) detta Sistema di Distribuzione (SdD) • Ogni AP serve una “regione” e abilita comm’s fra nodi nella propria regione – regione: anologa a cella in infrastruttura di supporto a telefoni cellulari

Reti di Calcolatori (Fabio Panzieri)

190

95

Università di Bologna - Corso di Laurea in Informatica

Sistema di distribuzione •

Ogni nodo mobile si connette ad un AP – P.e.: comunicazione A <-> E: • A invia frame ad AP-1 • AP-1 invia frame ad AP-3 • AP-3 invia frame ad E

Distribution system

– Come fa AP-1 a scoprire di dover inviare ad AP-3? • non in IEEE 802.11 • può usare standard definito per rete fissa (p.e., BGP)



AP-1

AP-3 F

AP-2 A

IEEE 802.11 definisce protocollo di – selezione dell’AP – gestione della mobilità del nodo da una cella all’altra

B

G H

C

E D

Reti di Calcolatori (Fabio Panzieri)

191

Università di Bologna - Corso di Laurea in Informatica

Selezione dell’AP •





Protocollo di “active scanning” 1.

Nodo src invia frame di PROBE (sonda)

2.

Tutti gli APs raggiungibili rispondono con frame PROBE_RESPONSE

3.

Nodo src seleziona un AP (p.e., quello con segnale migliore), e invia frame ASSOCIATION_REQUEST

4.

AP risponde con ASSOCIATION_REPONSE

Active scanning eseguito a)

ogni volta che nodo entra in rete

b)

quando segnale da AP corrente si attenua (p.e., causa movimento del nodo)



N.B.: quando nodo si connette a nuovo AP, questo informa AP precedente del movimento del nodo attraverso SdD.

Oltre ad active scanning: “passive scanning” –

ogni AP invia periodicamente frame speciale (BEACON) che annuncia prestazioni dell’AP (p.e., velocità di trasmissione supportate)



ogni nodo può cambiare AP quando ne rileva BEACON

Reti di Calcolatori (Fabio Panzieri)

192

96

Università di Bologna - Corso di Laurea in Informatica

Formato frame 802.11 bits

16

16

48

Control Duration Addr1

48 Addr2

48 Addr3

16 SeqCtrl

48 Addr4

0 - 18.496

P a y l o a d

32 CRC

• Control: contiene 3 sottocampi – Type (6 bits): indica se frame contiene DATI, RTS, CTS, o è usata da protocollo di scanning – ToDS, FromDS bits: consentono intrepretazione di campi Addr

• Duration: durata dell’utilizzo del canale • Addr1,2,3,4: campi indirizzi (cf. slide successiva) • Payload: 2312 B max • SeqCtrl: n. di sequenza frame • CRC: ciclic redundancy checksum Reti di Calcolatori (Fabio Panzieri)

193

Università di Bologna - Corso di Laurea in Informatica

ToDS FromDS bits • Identificano provenienza frame – i.e., se da src a dst entrambe in medesima regione o attraverso SdD

• ToDS = 0, FromDS = 0 – src e dst in medesima regione => Addr1 = dst finale Addr2 = src “origine”

• ToDS = 1, FromDS = 1: – frame proviene da nodo mobile via SdD, e da qui a nodo mobile => Addr1 = dst finale Addr2 = src più “recente” (ha effettuato forward di frame) Addr3 = src “intermedia” (ha accettato frame da src “origine” e l’ha trasmessa via SdD) Addr4 = src “origine” Reti di Calcolatori (Fabio Panzieri)

194

97

Università di Bologna - Corso di Laurea in Informatica

Esempio

Distribution system

• A trasmette ad E – – – –

Addr1 = E Addr2 = AP-3 Addr3 = AP-1 Addr4 = A

AP-1

AP-3 F

AP-2 A

B

G H

C

E D

Reti di Calcolatori (Fabio Panzieri)

195

Università di Bologna - Corso di Laurea in Informatica

IEEE 802.15 • Deriva da standard industriale Bluetooth • Copertura geografica – raggio limitato (10m) • conseguenza di potenza di trasmissione molto bassa

• bit rate < 1Mbps • robustezza – poichè potenza di trasmissione è molto bassa, dispositivi più potenti (p.e., 802.11) possono interferire e degradare il segnale Bluetooth

• IEEE 802.15 vs. IEEE 802.11 – IEEE 802.11 estende standard 802.3 – copertura geografica: fino a 150m (in interni), fino a 300m in esterno – bit rate: • 802.11 originale da 1Mbps a 2Mbps • 802.11b da 5.5Mbps a 11Mbps (throughput reale atteso: 4 - 5 Mbps) • 802.11a da 24Mbps a 54Mbps (throughput reale atteso: 10 - 22 Mbps

– robustezza: non subisce interferenze da dispositivi Bluetooth Reti di Calcolatori (Fabio Panzieri)

196

98

Università di Bologna - Corso di Laurea in Informatica

Bluetooth http://www.bluetooth.com: • Unlike many other wireless standards, the Bluetooth wireless specification includes both link layer and application layer definitions for product developers which supports data, voice, and content-centric applications. Radios that comply with the Bluetooth wireless specification operate in the unlicensed, 2.4 GHz radio spectrum ensuring communication compatibility worldwide. These radios use a spread spectrum, frequency hopping, full-duplex signal at up to 1600 hops/sec. The signal hops among 79 frequencies at 1 MHz intervals to give a high degree of interference immunity. Up to seven simultaneous connections can established and maintained.

Reti di Calcolatori (Fabio Panzieri)

197

Università di Bologna - Corso di Laurea in Informatica

Interconnesione di reti locali a livello data link (LAN estese) •

Limiti di singola LAN – supporta traffico limitato • su LAN singola, le stazioni condividono bandwidth

– lunghezza limitata (p.e., 802.3 specifica lunghezza max.) – numero limitato di stazioni (in 802.5 ritardo del passaggio del token) – collisioni



Soluzioni: interconnesione di due o più LANs mediante – Hubs – Bridges a livello data link • i.e., senza introdurre pkt header addizionale

Reti di Calcolatori (Fabio Panzieri)

198

99

Università di Bologna - Corso di Laurea in Informatica

Dispositivi di interconnessione: repeaters, hubs, bridges •

Repeater: dispositivo di livello fisico, i.e. propaga segnali elettrici fra due segmenti Ethernet; usato per estendere singola rete Ethernet.



Hub: repeater multi-porte



Bridge: trasmette frames di livello data link da una rete fisica ad un altra (detto anche switch di LAN); usato per interconnettere LANs

ethernet repeater

bridge

bridge

IBM token Ring FDDI Ring

Reti di Calcolatori (Fabio Panzieri)

199

Università di Bologna - Corso di Laurea in Informatica

Hubs •

Dispositivi di interconnesione a livello fisico – i.e. repeaters multi-porta che operano a livello fisico (i.e., di segnale):



Consentono interconnessione di LANs omogenee (i.e., medesima tecnologia)



– singola LAN: segmento di LAN estesa Organizzabili in gerarchia (o “multi-tier design”):

• propagano segnali ricevuti da porta di input a tutti le porte di output

– radice: “backbone hub”

Reti di Calcolatori (Fabio Panzieri)

200

100

Università di Bologna - Corso di Laurea in Informatica

Hub (vantaggi) • Semplice e poco costoso • Multi-tier design garantisce riduzione graduale del servizio (“graceful degradation”) – i.e., segmenti continuano a funzionare anche se un hub si guasta

• Estende distanza massima fra coppie di nodi – E.g.: 10BaseT • 100 m dist. max. fra coppia di nodi • segmenti 10BaseT collegati via Hub: 100 m dist. max. fra nodo e hub => 200 m dist. max. fra coppia di nodi

Reti di Calcolatori (Fabio Panzieri)

201

Università di Bologna - Corso di Laurea in Informatica

Hubs (limiti) • Hubs non isolano collisioni su singolo segmento – creano singolo dominio di collisione • i.e. se si verifica collisione, su qualunque segmento, ogni nodo in trasmissione esegue exponential backoff

• Singolo dominio di collisione non aumenta bandwidth – multi-tier bandwidth = bandwidth di singolo segmento E.g.: LAN estesa di tre reti interdipartimentali da 10 Mbps ciascuna • bandwidth aggregata potenziale = 30Mbps • interconnesse con hub, appartengono allo stesso dominio di collisione => bandwidth aggregata = 10Mbps

• Limitazioni di singolo segmento limitano n. di nodi nel dominio di collisione e copertura geografica totale • Non consentono interconnesione di tecnologie diverse – propagano segnali, non bufferizzano frames, non consentono interconnessione di segmenti con diverse velocità (e.g., Ethernet 10BaseT e 100baseT) Reti di Calcolatori (Fabio Panzieri)

202

101

Università di Bologna - Corso di Laurea in Informatica

Bridge •

Dispositivo multi-porta collocato a livello Data Link – lavora su frames del protocollo data link (p.e., CSMA/CD di Ethernet) in modalità “store and forward” – store…: bufferiza frame ed esamina campo “dst” in frame header – …and forward: inoltra frame verso destinazione sulla base del dst address in frame • utilizza data link protocol di specifico segmento di rete per trasmettere (i.e., abilita interconnessione di reti eterogene) Il problema: • se frame per B è ricevuta su Porta 1, non occorre che Bridge la inoltri via Port 2 • come dotare il Bridge di sufficiente info per determinare cosa inoltrare e attraverso quale Port#?

A

B

C Port 1 Bridge Port 2 X

Y

Z

Reti di Calcolatori (Fabio Panzieri)

203

Università di Bologna - Corso di Laurea in Informatica

Bridge: funzioni principali •

Filtering – determinare se inoltrare o scartare una frame • scarta frame se src e dst connessi a medesima LAN



Forwarding – determinare la porta di output (i.e., l’interfaccia di LAN) cui una frame deve essere diretta



Decisione presa sulla base di “tabella di filtering” mantenuta da bridge – tabella associa porte di output a nodi della rete (non necessariamente tutti) – costruita automaticamente e mantenuta dinamicamente • non richiede configurazione iniziale • bridge auto-apprende (“learning bridge”) locazione hosts su LANs e costruisce tabella

Reti di Calcolatori (Fabio Panzieri)

204

102

Università di Bologna - Corso di Laurea in Informatica

Filtering • Bridge auto-apprende attraverso quali porte può raggiungere quali hosts quando attraversato da frame – frame in input: bridge legge indirizzo src in frame – mantiene/aggiorna tabella di filtering • registra in tabella indirizzo src e relativa porta da cui ha ricevuto frame

• Entry in tabella – – Time Stamp: data di ingresso dell’entry in tabella

– Entry obsolete vengono scartate (TTL: 60’)

Reti di Calcolatori (Fabio Panzieri)

205

Università di Bologna - Corso di Laurea in Informatica

Procedura di filtering … /* esamina frame */ if dst in medesima LAN di src then scarta frame else {

/* trasmessa comunque da src */

cerca dst in tabella di filtering if entry contenente dst trovata then forward frame su porta indicata in tabella else forward frame su tutte le porte eccetto quella di provenienza }



Reti di Calcolatori (Fabio Panzieri)

206

103

Università di Bologna - Corso di Laurea in Informatica

Learning bridge: esempio •

Ip.: C invia frame a D e D risponde a C con nuova frame

tabella di filtering

• C invia frame; bridge non ha info per D, inoltra frame su LAN 2 e 3 – bridge registra che C è su porta 1 (i.e., aggiorna tabella) – frame ignorata in LAN 3 – frame trasmessa a D Reti di Calcolatori (Fabio Panzieri)

207

Università di Bologna - Corso di Laurea in Informatica

Esempio: learning bridge • D invia risposta a C – bridge attraversato da frame da D – bridge registra che D è su porta 2 – tabella contiene entry per C (C associato a porta 1) • bridge trasmette frame via porta 1 esclusivamente • successive comunicazioni C <-> D via porte 1 e 2 esclusivamente tabella di filtering

address port A 1 B 1 C 1 D 2 E 2 H 3 J 3 Reti di Calcolatori (Fabio Panzieri)

208

104

Università di Bologna - Corso di Laurea in Informatica

Interconnessione di LANs via bridge

• Soluzione sconsigliata – Hub di CS Dept.: singolo punto di guasto – traffico tra EE and SE deve passare attraverso segmento CS

Reti di Calcolatori (Fabio Panzieri)

209

Università di Bologna - Corso di Laurea in Informatica

Interconnessione di LANs via bridge: backbone bridge

• Pros: risolve problema di hub e traffico superfluo • Cons: bridge diviene singolo punto di guasto Reti di Calcolatori (Fabio Panzieri)

210

105

Università di Bologna - Corso di Laurea in Informatica

Bridges ridondanti •

Per aumentare affidabilità necessario avere link/cammini alternativi (ridondanti) da src a dst, via bridges diversi – però: cammini alternativi possono provocare cicli • bridges possono replicare e trasmettere frames indefinitamente



Soluzione: – organizzare bridges in grafo aciclico (o “spanning tree” = albero di copertura) disabilitando sotto-insieme di porte

collegamento disabilitato

collegamento disabilitato Reti di Calcolatori (Fabio Panzieri)

211

Università di Bologna - Corso di Laurea in Informatica

Algoritmo di spanning tree •

Problema dei loop –



A

B1, B4, B6 formano ciclo

Bridges eseguono algoritmo distribuito di “spanning tree” – determina quali bridge effettuano il forwarding – ideato da Radia Perlman (DEC) – standard IEEE 802.1

B

B3

C E

D

B2

B5 B7

K F

B1 G

H I

B6

B4 J

B3

B3

B5

B5

B7

B2

B1

B6

B4

Reti di Calcolatori (Fabio Panzieri)

Algoritmo di spanning tree Trasforma grafo con cicli in un sottografo senza cicli, contenente tutti i vertici,

B7

B2

B1

B6

B4 212

106

Università di Bologna - Corso di Laurea in Informatica

Obiettivi principali dell’algoritmo 1. Rendere trasparente ai nodi l’eventuale internetwork di LANs • i.e., extended LAN = LAN, dal punto di vista del nodo

2. Consentire uso di bridges ridondanti in LAN estese al fine di far fronte a guasti 3. Essere auto-configurante • ogni nodo conosce solo il suo ID (MAC address)

4. Scalabile: requisiti di memoria di bridge non devono aumentare con l’aumentare del n. di LANs o bridges 5. Bandwidth usata da alg. deve essere costante, indipendentemente dal n. di bridges e LANs nell’extended network 6. Alg. deve “stabilizzarsi” (i.e., produrre uno spanning tree deterministico) rapidamente, indipendentemente dal n. di bridges e LANs nell’extended network • in un multiplo del round trip time di rete, in assenza di guasti e perdita di msgs o successivamente alla riparazione di un guasto. Reti di Calcolatori (Fabio Panzieri)

213

Università di Bologna - Corso di Laurea in Informatica

Obiettivi principali dell’algoritmo 7. Consentire caching al bridge della locazione dei nodi in LAN estesa; i.e., – ogni bridge seleziona le porte attraverso cui trasmettera’ frames; – ogni bridge mantiene DB di indirizzi per limitare traffico

8. Garantire assenza di loop permanenti, e minimizzare probabilità di loop temporanei 9. Spezzare gli eventuali loops anche se alcuni bridge non implementano questo algoritmo (alcuni , ma non tutti, ovviamente) 10. Essere basato su servizio “datagram” • i.e., servizio “connectionless” (o “best effort”) a livello DataLink

11. Configurabile (mediante settaggio di parametri ) secondo la specifica configurazione di LAN estesa in cui viene eseguito Reti di Calcolatori (Fabio Panzieri)

214

107

Università di Bologna - Corso di Laurea in Informatica

Algoritmo “spanning tree” •

Ogni bridge identificato da id unico (e.g., B1, B2, B3, …)



Algoritmo nomina bridge con id minore come “root”



Algoritmo nomina, in ogni LAN, il bridge più vicino a root “bridge designato” –

responsabile per effettuare forwarding di frames da LAN verso radice •

se più di 1, sceglie quello con id minore



Inizialmente, ogni bridge assume di essere root (quindi “designato”)



Ogni bridge invia frames su ogni LAN per cui è stato nominato “bridge designato” (bridge non designati scartano frames)



Bridge scambiano “messaggi di configurazione” (cfg_msg) delle porte contenenti: –

id del bridge mittente del msg



id del bridge che mittente presume sia root



distanza (hops) fra mittente a presunta root

Reti di Calcolatori (Fabio Panzieri)

215

Università di Bologna - Corso di Laurea in Informatica

Algoritmo “spanning tree” •

Ogni bridge mantiene il miglior cfg_msg ricevuto da ogni porta (scartando eventuali “migliori” precedenti) –

miglior cfg_msg contiene: • • •

root con id minore, oppure root con id uguale ma distanza minore, oppure root con id e distanza uguali ma bridge mittente ha id minore

– if miglior cfg_msg ricevuto then

• incrementa campo “distanza da radice” • scarta eventuali “migliori” precedenti



Se scopre di non essere root, interrompe generazione cfg_msg



Se scopre di non essere bridge designato interrompe trasmissione di cfg_msg

• •

Root invia cfg_msg periodicamente Se qualche bridge non riceve cfg_msg, dopo time out assume di essere root e genera cfg_msg

– –

a regime, solo root genera cfg_msg a regime, solo bridge designati trasmettono cfg_msg

Reti di Calcolatori (Fabio Panzieri)

216

108

Università di Bologna - Corso di Laurea in Informatica

• •



Esempio

Istante di bootstrap: – ogni bridge ha tabella vuota – ogni bridge assume di essere root Cfg-msg da bridge X: – Y: id di presunta root – d: distanza di X da presunta root – X: id di bridge mittente Esempio B3 invia (B3,0,B3); riceve (B2, 0, B2)

• 2 < 3 => B3 accetta B2 come root • B3 somma 1 a distanza 0 annunciata da B2 e invia (B2, 1, B3) a B5

B2 riceve (B1, 0, B1) da B1, accetta B1 come root, invia a B3 (B1, 1, B2) B5 riceve (B1, 0, B1) da B1, accetta B1 come root, e invia a B3 (B1, 1, B5) B3 accetta B1 come root, registra che B2 e B5 sono più vicini a root di lui (quindi designati per LANs C e A), sospende trasmissione messaggi su entrambe le sue interfacce, restando con entrambe le porte non selezionate (spezzando eventuale loop)

A B

B3

C E

D

B2

B5 B7

K F

B1 G

H I

B6

B4 J

Reti di Calcolatori (Fabio Panzieri)

217

Università di Bologna - Corso di Laurea in Informatica

Bridge • Vantaggi – mantiene isolati i domini di collisione dei singoli segmenti • consente uso concorrente di segmenti distinti

– può interconnetere tecnologie diverse (grazie a “store and forward”) se queste usano medesimo formato indirizzi di 48 bit • Ethernet-Ethernet, Ethernet-802.5 (ring), 802.5-802.5

– non limita dimensioni di LAN estesa – trasparente: non richiede modifiche agli adaptors di LAN incorporati negli hosts

• Svantaggi – Algoritmo di spanning tree scala linearmente; i.e.: • all’aumentare del n. di LANs il tempo di exec. aumenta linearmente => uso limitato a qualche decina di LANs Reti di Calcolatori (Fabio Panzieri)

218

109

Università di Bologna - Corso di Laurea in Informatica

OSI RM

End host

End host

Application

Application

Presentation

Presentation

Session

Session

Transport

Transport

Network

Network

Network

Network

Data link

Data link

Data link

Data link

Physical

Physical

Physical

Physical

Uno o piu’ nodi di rete

Reti di Calcolatori (Fabio Panzieri)

219

Università di Bologna - Corso di Laurea in Informatica

Livello Network •

Requisito – abilitare comunicazioni fra ogni coppia di nodi, anche non direttamente connessi, in rete composta da numero arbitrario di nodi • hosts possono essere separati da una combinazione arbitraria di reti (WANS, LANs)



Reti a connessione diretta – Limiti di scalabilità (dovuti a tecnologia di comuunicazione) • Link punto-punto: collega 2 nodi • 1024 nodi max in Ethernet • Distanza geografica limitata



LAN estese – Limiti di scalabilità (dovuti a tecnologia “bridge”) • Algoritmo di spanning tree • Eterogeneità

Reti di Calcolatori (Fabio Panzieri)

220

110

Università di Bologna - Corso di Laurea in Informatica

Livello Network • Soddisfa requisito in reti a commutazione di pacchetto (Packet Switched Network) consistenti di links, switches e routers • Responsabilità principale: – instradamento dei pacchetti da src a dst • calcolo della rotta

– internetworking • hosts devono possedere un identificatore unico globale

• Dispositivi di interconnessione: – switches, routers (spesso usati come sinonimi)

Reti di Calcolatori (Fabio Panzieri)

221

Università di Bologna - Corso di Laurea in Informatica





Dispositivi di interconnessione: switches e routers

Switch: – trasmette pacchetti di livello network da porta di input a porta di output – utilizza informazione di indirizzamento contenuta negli header dei pacchetti stessi – usato per interconnettere reti omogenee. Router: – Trasmette pacchetti di livello network – usato per interconnettere reti eterogenee.

switch

Reti di Calcolatori (Fabio Panzieri)

router

222

111

Università di Bologna - Corso di Laurea in Informatica

Switch • Trasmette pacchetti da una porta di input ad una porta di output – se connesso a più link, esegue i protocolli data link di ciascuno

• Seleziona porta di output sulla base di indirizzo dst in pkt hdr • Originariamente implementati da computers “general-purpose” – Switches moderni implementati da hardware specializzato – Tecnologia switch consente di • costruire reti che coprono vaste aree geografiche – i link fisici possono essere linee telefoniche pubbliche, fibre ottiche, microonde … • costruire reti che interconnettono un vasto numero di computers • estendere la rete con computers (hosts) addizionali senza interferire con le prestazioni degli hosts già in rete

Reti di Calcolatori (Fabio Panzieri)

223

Università di Bologna - Corso di Laurea in Informatica

Switches e links •

Switches e links – infrastruttura per costruire una WAN



Switch – collegato a molteplicità di links – esegue protocollo data link appropriato su ogni link per comunicare con host connesso direttamente allo stesso link – responsabilità principale: instradamento di pacchetti i.e. riceve pacchetti da uno dei suoi links e li trasmette su un altro dei suoi link.

Reti di Calcolatori (Fabio Panzieri)

224

112

Università di Bologna - Corso di Laurea in Informatica

Switches: proprietà •

Scalabilità della rete: – –



singolo switch: n. limitato di porte di I/O limita n. di hosts che possono essere connessi ad esso, però interconnessione di switches: consente implementazione di reti “switched” con vasta copertura geografica

Ottimizzazione prestazioni: –

Connessione di host a switch via link punto-punto => host puo’ trasmettere sfruttando bandwidth completa del link N.B.: switch deve fornire sufficiente “bandwidth aggregata” => connessione di nuovo host a rete “switched” non implica prestazionale per gli hosts già connessi

degrado

≠ da rete “shared” (e.g. Ethernet, token ring) – impossibile per due hosts su rete shared trasmettere alla velocità della rete (causa: condivisione)

Reti di Calcolatori (Fabio Panzieri)

225

Università di Bologna - Corso di Laurea in Informatica

Instradamento (switching/forwarding) • Scelta della porta di output su cui trasmettere pkt – switch esamina identificatore di destinazione in pkt hdr e lo usa per decidere porta di output.

• Scelta effettuata sulla base di “tabelle di forwarding” (o “routing tables”) • N.B.: Switching/Forwarding ≠ Routing – Forwarding: come sopra – Routing: processo di costruzione delle tabelle di routing • avviene in background • Consente di gestire variazioni (i.e. dinamicità) della topologia della rete • abilita percorsi multipli verso destinazioni

Reti di Calcolatori (Fabio Panzieri)

226

113

Università di Bologna - Corso di Laurea in Informatica

Instradamento •

Tre approcci principali: • “datagram”: – ogni pacchetto è instradato indipendentemente dagli altri • “circuito vituale” (o “connection-oriented”): – percorso (connessione) da src a dst inizializzato prima di trasferimento dati, usando qualche tecnica di routing – i pacchetti da src a dst seguono quel percorso per tutta la durata della connessione. • “source routing”: – header del pacchetto specifica l’intera rotta. – semplice, ma non scalabile (assume che ogni src conosca topologia di rete per costruire header).



N.B.

– Network layer in OSI RM fornisce servizi connection-oriented e connection-less a transport layer • Transport layer in Internet richiede solo servizio connection-less da network layer.

Reti di Calcolatori (Fabio Panzieri)

227

Università di Bologna - Corso di Laurea in Informatica

Datagram routing

(connection-less routing)

• Non richiede di stabilire connessione – –

Ogni pacchetto contiene l’indirizzo dst completo Ogni switch mantiene una tabella di instradamento

• Pacchetti trasmessi indipendentemente uno dall’altro (non garantisce ordinamento) •

Simile a sistema postale; ogni lettera inviata/consegnata indipendentemente dalle altre Switch 2 Dest

Reti di Calcolatori (Fabio Panzieri)

Porta I/O

A

3

B

0

C

3

D

3

E

2

F

1

G

0

H

0 228

114

Università di Bologna - Corso di Laurea in Informatica

Datagram routing: proprietà 1. Host può inviare datagram in qualunque istante di tempo a qualunque destinazione – Switch inoltra datagram appena lo riceve, se la sua tabella di forwarding è correttamente configurata

2. Host non può sapere se datagram verrà inoltrato da switch o no, nè se la destinazione sia attiva, nè se la rete consegni datagrams 3. Due datagrams in sequenza da medesimo host possono seguire rotte diverse verso la medesima destinazione 4. Switch o link guasto possono essere “aggirati” se esiste rotta alternativa => tabella di forwarding degli switch deve essere agiornata Reti di Calcolatori (Fabio Panzieri)

229

Università di Bologna - Corso di Laurea in Informatica

Virtual circuit routing (connection-oriented routing) •

Richiede fase esplicita di attivazione (e disattivazione) “connessione” (o circuito virtuale) fra host src e host dst

di

=> Trasferimento dati in due fasi sequenziali: 1. “connection set-up” 2. “data transfer”



Connection set-up: – costruzione di “stato” della connessione all’interno degli switch tra src e dst (i.e. costruzione delle tabelle di fowarding negli switches) – effettuata mediante protocolllo di “signalling” •



“signalling”: scambio di messaggi fra host src, switches, e host dst

Data transfer – tutti i data pkts da src a dst inviati su connessione consegnati nell’ordine di trasmissione (principio simile a chiamata telefonica, i.e. PVC)

Reti di Calcolatori (Fabio Panzieri)

230

115

Università di Bologna - Corso di Laurea in Informatica

Virtual circuit routing: esempio •

Host A invia richiesta di connessione a Switch 1 contenente indirizzo completo di B;



Switch 1



connection request trasmessa/consegnata a Switch 1 via porta 2 •

– – –

assumere che ogni switch conosca la propria porta di uscita verso destinazione

assegna VCI unico localmente a connessione da A verso B, p.e. 5; crea entry incompleta in tabella per la richiesta di connessione da A a B => trasmettere via porta 1 tutti i pacchetti da porta 2, con VCI = 5; N.B.: dovrà informare A di usare VCI = 5 per comunicazioni con B Invia a Switch 2 via porta 1 richiesta di connessione di A a B

0 Switch 1 1

3

2 B

B

Tabella connessioni in Sw1

in i/f

in vci

2

5

……

……

out i/f

3

2 Switch 2 1 0

out vci

Host A

1

B 0 Switch 3 3

1

2

B

Host B

Reti di Calcolatori (Fabio Panzieri)

231

Università di Bologna - Corso di Laurea in Informatica

Virtual circuit routing: esempio •

Switch 2 – assegna VCI unico localmente a connessione da A a B, p.e. 11; – crea entry incompleta in tabella per la richiesta di connessione da A a B => trasmettere via porta 0 tutti i pacchetti da porta 2, con VCI = 11; N.B.: dovrà informare Switch 1 di usare VCI = 11 per comunicazioni con B – Invia a Switch 3 via porta 0 richiesta di connessione di A a B

0 Switch 1 1

3

2 B

Tabella connessioni in Sw2

in i/f

in vci out i/f

3

11

……

……

out vci

3 B

2 Switch 2 1 0

Host A

0

B 1

0 Switch 3 3 2

Reti di Calcolatori (Fabio Panzieri)

B

Host B 232

116

Università di Bologna - Corso di Laurea in Informatica

Virtual circuit routing: esempio •

Switch 3 – assegna C_Id unico localmente a connessione da A a B, p.e. 7; – crea entry incompleta in tabella per la richiesta di connessione da A a B => trasmettere via porta 3 tutti i pacchetti da porta 0, con VCI = 7; N.B.: dovrà informare Switch 2 di usare VCI = 7 per comunicazioni con B – Invia a B via porta 3 richiesta di connessione da A 0 Switch 1 1

3

2

3

B

Tabella connessioni in Sw3

in i/f

in vci

out i/f

0

7

3

……

……

B

2 Switch 2 1 0

Host A

out vci

B 1

0 Switch 3 3 B

2

Host B

Reti di Calcolatori (Fabio Panzieri)

233

Università di Bologna - Corso di Laurea in Informatica

Virtual circuit routing: esempio •

Host B accetta (o scarta) la connection request ed invia ack (o nack) ad A seguendo il percorso inverso. –





alloca un VCI unico (localmente), p.e. 4; • VCI = 4 identificherà univocamente a B tutti i pkts provenienti da A invia a switch 3 ack contenente il VCI = 4 selezionato

– –

completa la sua forwarding table inserendo VCI = 4 in “out vci” invia ack (nack) di B a Switch 2 contenente VCI = 7

– –

completa la sua forwarding table inserendo VCI = 7 in “out vci” invia ack (nack) di B a Switch 1 contenente VCI = 11

– –

completa la sua forwarding table inserendo VCI = 11 in “out vci” invia ack (nack) di B ad A contenente VCI = 5

Switch 3



Switch 2



Switch 1

Tabella connessioni in Sw3 in i/f

in vci

out i/f

out vci

0

7

3

4

……

……

Reti di Calcolatori (Fabio Panzieri)

Tabella connessioni in Sw2 in i/f

in vci out i/f

3

11

……

……

0

out vci

7

Tabella connessioni in Sw1 in i/f

in vci

2

5

……

……

out i/f

1

out vci

11

234

117

Università di Bologna - Corso di Laurea in Informatica

Esempio (segue) • Trasmissione dati – Se richiesta di connessione da A a B accettata: • A invierà a B pacchetti con VCI = 5 in hdr, senza più includere indirizzo dst. • Ogni switch sostituisce “in vci” con “out vci” nei pacchetti

• N.B.: – meccanismo di assegnamento di “vci” garantisce univocità locale di id’s => Switches possono appartenere ad amministrazioni indipendenti

• Terminazione della connessione: – A invia un pacchetto di connection release a B – switches rimuovono C_Id dalle loro tabelle quando ricevono connection release packet.

Reti di Calcolatori (Fabio Panzieri)

235

Università di Bologna - Corso di Laurea in Informatica

– – – –

Source Routing

Indirizzo: lista di porte da src a dst. Switch legge elemento più a destra della lista. Ogni switch ruota la lista di una posizione, dopo aver letto la sua porta. Semplice, ma non scala: su rete vasta, impossibile per host costruire lista

0

Switch 1

1

0

1 3 0

3 2

3 0 1

0 0

1

Switch 3 3

2 Reti di Calcolatori (Fabio Panzieri)

1 2

3

0 1 3 Host A

3

2 Switch 2 1

Host B 236

118

Università di Bologna - Corso di Laurea in Informatica

Modelli di servizio a Livello Network • Quale modello di servizio offrire ? – Bandwidth garantita? – Controllo dei ritardi nella consegna di pacchetti (e variazioni)? – Consegna senza perdite di pacchetti? – Ordinamento dei pacchetti? – Segnalazione di congestione di rete?

• Astrazione a livello rete: Circuito virtuale o datagram?

Reti di Calcolatori (Fabio Panzieri)

237

Università di Bologna - Corso di Laurea in Informatica

Circuito virtuale • Switch mantengono stato della connessione

application transport network data link physical

5. Data flow begins 4. Call connected 1. Initiate call

Reti di Calcolatori (Fabio Panzieri)

6. Receive data 3. Accept call 2. incoming call

application transport network data link physical

238

119

Università di Bologna - Corso di Laurea in Informatica

Datagram • Switch non mantengono informazione di stato • Utilizzato in Internet (i.e., servizio “best-effort”)

application transport network data link physical

1. Send data

application transport 2. Receive data network data link physical

Reti di Calcolatori (Fabio Panzieri)

239

Università di Bologna - Corso di Laurea in Informatica

Circuito virtuale vs. Datagram •

Circuito virtuale – Impone un ritardo di RTT completo per stabilire connessione prima di poter inviare pacchetti di dati + Mentre connection request contiene indirizzo completo della destinazione, ogni pacchetto dati contiene solo C_Id + ridotto overhead di header per pacchetto

– Se uno switch o un link nella connessione si guastano, la connessione è interrotta e una nuova connessione deve essere stabilita. + Attivare una connessione fornisce la possibilità di riservare risorse di rete + per scopi di QoS: la rete fornisce garanzie relativamente alle prestazioni che può offrire + switch riservano risorse (p.e. memoria, bandwidth nei link in uscita) per soddisfare garanzie

Reti di Calcolatori (Fabio Panzieri)

240

120

Università di Bologna - Corso di Laurea in Informatica

Circuito virtuale vs. Datagram •

Datagram + Non richiede ritardo di RTT per stabilire connessione + host può inviare dati senza ritardi, se disponibili – Host src non ha modo di sapere • se la rete è in grado di consegnare i pacchetti • se host dst è attivo o no + Pacchetti trattati indipendentemente uno dall’altro + in caso di guasto di uno switch o di un link è possibile instradare pacchetti attraverso rotte alternative - Pacchetti trattati indipendentemente uno dall’altro - Ordinamento non garantito – Overhead di protocollo per-pacchetto più alto che in connection-oriented routing – ogni pacchetto contiene indirizzo completo di dst

Reti di Calcolatori (Fabio Panzieri)

241

Università di Bologna - Corso di Laurea in Informatica

Asynchronous Transfer Mode (ATM) • Tecnologia packet-switching connection-oriented • 1980/90 standard per architettura ad alta velocità Broadband ISDN (da 155Mbps a 622 Mbps e superiore) • Obbiettivo: trasporto integrato end-to-end di voce, video, dati – Soddisfare requisiti temporali di traffico voce e video (a differenza di modello Internet best-effort) => diverse classi di servizio con diverse garanzie di QoS

– Utilizza packet-switching su circuiti virtuali • Protocollo di “signalling”: Q.2931 – “route discovery” – allocazione di risorse negli switch ATM per garantire QoS • Pacchetto di lunghezza fissa: “cell” – dimensione cell: 5 B hdr + 48 B payload = 53B

Reti di Calcolatori (Fabio Panzieri)

242

121

Università di Bologna - Corso di Laurea in Informatica

Dimensione cell ATM: proprietà •

Dimensione fissa: – agevola progettazione switch hardware • processing di cells di lunghezza fissa => predicibilità di tempo di elab. • predicibilità di tempo di elab. di cell abilita parallelismo fra switches



Dimensione ridotta: – riduce latenza in switch ottimizzando gestione code in switch Ex. 1a - rete con pkts a dimensione variabile: • • • •

Dimensione max. pacchetto: PktSize = 4 KB Bandwidth di canale: 100Mbps tempo di trasmissione pkt “X”: PktSize/bandwith=4096x8/100= 327.68µs pkt “X + 1” ad alta priorità in attesa per 327.68µs

Ex.1b - rete con cells a dimensione fissa: • Pacchetti frammentati in cells ATM di 53 B • Tempo di trasmissione cell “X”: 53 x 8 /100 = 4.24µs • cell “X+1” ad alta priorità in attesa per 4.24µs

Reti di Calcolatori (Fabio Panzieri)

243

Università di Bologna - Corso di Laurea in Informatica

Dimensione cell ATM: proprietà •

Dimensione ridotta: abilita comportamento “cut-through” – pacchetto inizia ad essere trasmesso su porta di output prima di essere ricevuto completamente. (Di nuovo: minimizzazione latenza in switch)

Ex. 2a – – => –

bandwith = 100Mbps, max. pktsize = 4KB 2 pacchetti di 4KB ricevuti contemporaneamente Canale di output “idle” per 327.68µs (fino a termine consegna) Al termine dei 327.68µs: 8 KB in coda di trasmissione

Ex.2b – Pacchetti frammentati in cells ATM – Cut-through: dopo 4.24µs può trasmettere prima cell => dopo 327.68µs ha trasmesso circa 77 cells con 48 B di payload ciascuna, i.e. circa 3.6KB totali di payload – Al termine dei 327.68µs: 4.4 KB, circa, in coda di trasmissione

Reti di Calcolatori (Fabio Panzieri)

244

122

Università di Bologna - Corso di Laurea in Informatica

Architettura ATM



Livello ATM Adaptation (AAL): residente in host (end system) – Frammentazione in cells/riassemblaggio in pkts di payload utente • pkts di utente possono essere di lunghezza variabile – analogo a servizio di trasporto in OSI RM o TCP

• •

Livello “ATM”: livello “network” (analogo a IP) – switching, routing di cells ATM, implementazione di classi di servizio Livello “physical”: codifica/temporizzazione bit, framing

Reti di Calcolatori (Fabio Panzieri)

245

Università di Bologna - Corso di Laurea in Informatica

Formato cella Livello Adaption •

Specificate differenti versioni dipendentemente da classe di servizio ATM – AAL1: per CBR (Constant Bit Rate), e.g. voce – AAL2: per VBR (Variable Bit Rate), e.g. MPEG video – AAL3/4: per dati (frammentazione complessa) – AAL5: per dati (frammentazione semplificata; usato per IP datagrams)



Strutturato in 2 livelli gerarchici => 2 formati di pacchetto

User data AAL convergenza AAL frammentazione/ riassemblaggio Reti di Calcolatori (Fabio Panzieri)

(Segmentation And Reassembly)

246

123

Università di Bologna - Corso di Laurea in Informatica

AAL 3/4: convergenza •

Common Part Convergence Sublayer Protocol Data Unit (CPCS-PDU) – Definisce modialità di incapsulamento di PDU di lunghezza variable, prima di frammentazione in cells

– –

– – –

8

8

16

CPI

Btag

BASize

< 64 KB

0– 24

8

8

16

Pad

0

Etag

Len

User data

CPI (8 bit): Common Part Indicator • Specifica versione di CPCS-PDU in uso (attualmente = 0 ) Btag/Etag (8 bit): • Beginning and Ending tag (uguali fra loro per ogni PDU) • proteggono dal caso in cui la perdita dell’ultima cell di una PDU e la prima di un’altra provochino che le due PDUs siano considerate una sola BASize (16 bit): • suggerisce dimensione buffer da allocare per riassemblare Pad (24 bit) + “0”: campo “padding” • fino a 3 Byte di Pad + Byte 0 assicurano allineamento a 32 bit del “trailer” (Etag + Len) Len (16 bit): dimensione della PDU

Reti di Calcolatori (Fabio Panzieri)

247

Università di Bologna - Corso di Laurea in Informatica

AAL 3/4: frammentazione/riassemblaggio •

AAL3/4: hdr + trailer trasportati in ogni cella ATM 40



ATM header

Header

2

4

10

Type

SEQ

MID

352 (44 bytes) Payload

6

10

Length

CRC-10

– Type (2 bits): per scopi di frammentazione/riassemblaggio • • • •

BOM: Beginning Of Message COM: Continuation Of Message EOM: End Of Message SDU: Single Data Unit

– SEQ: SEQuence number relativo a cella

• per individuare perdite di celle e errato ordine – protezione debole se perdite elevate

– MID: Message ID

• per multiplexing di PDUs su singola connessione



Trailer:



N.B.: CPCS PDU trasportata in frammenti di 44 bytes max.

– Length: numero di bytes di PDU in questa cell – CRC-10: 10 bit di CRC per individuare errori nella pdu di 48B (i.e., in cell)

Reti di Calcolatori (Fabio Panzieri)

248

124

Università di Bologna - Corso di Laurea in Informatica

AAL5 - Simple And Efficient AL (SEAL)



< 64 KB

0– 47 bytes

16

16

32

Data

Pad

Reserved

Len

CRC-32

SEAL: livello adaptation “a basso costo” (prestazionale) per trasmettere pacchetti IP – Consiste di campo dati (da livello superiore) e trailer di 8 bytes – Pad: campo “padding” • garantisce che “trailer” sia sempre collocato alla fine di una cell ATM

– trailer: • Reserved (16 bits): campo riservato per uso futuro (attualmente = 0) • Length (16 bits): n. di bytes della PDU (solo dati) • CRC-32 (32 bits): applicato a PDU intera , individua celle mancanti o non in ordine – Frammentazione: sostituisce campo Type di AAL3/4 con un bit in ATM header • bit = 1: identifica “end of PDU”; cella successiva : prima di nuova PDU; successive considerate di tipo Continuation of Message (COM), fino a “ultima” con ATM hdr bit = 1 Reti di Calcolatori (Fabio Panzieri)

249

Università di Bologna - Corso di Laurea in Informatica

Incapsulamento e segmentazione per AAL5

User data

48 bytes

Padding CS-PDU trailer

48 bytes

48 bytes

… Header ATM Reti di Calcolatori (Fabio Panzieri)

Payload di cella 250

125

Università di Bologna - Corso di Laurea in Informatica

Livello ATM • diverse “classi di servizio” Architetura di rete

Modello di servizio

Internet

best effort

ATM

CBR

Garanzie ? data rate

Loss Order

Timing

rilevamento congestione

non garantito costante

no

no

no

no

si

si

si

variabile entro limiti minimo garantito non garantito

si

si

si

no

si

no

congestione prevenuta congestione prevenuta si

no

si

no

no

constant bit rate

ATM

VBR variable bit rate

ATM

ABR available bit rate

ATM

UBR unspecified bit rate

Reti di Calcolatori (Fabio Panzieri)

251

Università di Bologna - Corso di Laurea in Informatica

Livello ATM: circuiti virtuali •

Permanent VCs (PVCs) – Connessioni di lunga durata • Percorso “permanente” tra coppie di routers IP



Switched VCs (SVC)



Trasporto di “cells” su VC da src a dst

– Stabiliti dinamicamente per sessione – call setup/teardown iniziare/terminare

per

ogni

chiamata

prima

che

trasferimento

possa

• seleziona classe di servizio

– ogni cell contiene VC id (non dst ID) – ogni switch sul cammino src-dst mantiene “stato” per ogni connessione che lo attraversa – link, switch, risorse (bandwidth, buffers) possono essere allocate a VC per fornire garanzie prestazionali

Reti di Calcolatori (Fabio Panzieri)

252

126

Università di Bologna - Corso di Laurea in Informatica

ATM VCs • Vantaggi – Garanzie prestazionali di QoS per connessioni mappate su VC (bandwidth, delay, delay jitter) • Svantaggi – Supporto inefficiente di traffico datagram – Switched VCs introducono latenza di call setup + overhead di processing per connessioni brevi

Reti di Calcolatori (Fabio Panzieri)

253

Università di Bologna - Corso di Laurea in Informatica

Formato cella livello ATM • User-Network Interface (UNI); – formato host-to-switch

• GFC: Generic Flow Control (t.b.d.) • VPI: Virtual Path Identifier • VCI: Virtual Circuit Identifier – VPI + VCI: abilitano gerarchia di connessioni virtuali • Virtual Path può contenere fino a 216 Virtual Circuits

• Type: management, controllo di congestione • CLP: Cell Loss Priority

– CLP = 1 => cell a bassa priorità • può essere scartata in caso di congestione • HEC: Header Error Check (CRC-8) 4

8

16

3

1

GFC VPI VCI Type • Network-Network Interface (NNI)CLP

8

384 (48 bytes)

HEC (CRC-8)

Payload

– Formato switch-to-switch

• GFC diviene parte del campo VPI

Reti di Calcolatori (Fabio Panzieri)

254

127

Università di Bologna - Corso di Laurea in Informatica

Livello Network: Internetworking • Problemi – Eterogeneità • quale servizio di comunicazione host-to-host fornire in contesto tecnologico di reti eterogenee ? – i.e., ≠ schemi di indirizzamento, ≠ velocità di trasmissione, ≠ protocolli di accesso, ≠ modelli di servizio

– Scalabilità • Internet raddoppiata in dimensione ogni anno negli ultimi 20 anni – come costruire percorsi (rotte) host-to-host efficienti e “loop free” in una rete con numero arbitrario di nodi, che varia dinamicamente ? – come costruire identificatori unici (i.e., indirizzi) della locazione geografica di questi nodi ?

• Le soluzioni IPV4 e IPV6

Reti di Calcolatori (Fabio Panzieri)

255

Università di Bologna - Corso di Laurea in Informatica

Esempio di internetwork Network 1 (Ethernet) H7

Concatenazione di reti

H2

H1 Network 2 (Ethernet)

H3

R3

H8

Network 4 (point-to-point link)

R1 R2

H4 Network 3 (FDDI)

Internetworking mediante IP

H5

H6

H1

H8

TCP

R1

ETH

R2

IP

IP ETH

Reti di Calcolatori (Fabio Panzieri)

R3

IP FDDI

FDDI

IP PPP

PPP

TCP IP

ETH

ETH

256

128

Università di Bologna - Corso di Laurea in Informatica

Protocollo IP Modello di servizio

Formato datagram IP

– Comunicazioni “connectionless”

0

• consegna “best-effort” – pkts possono essere persi – consegnati non in ordine – duplicati – ritardati in switch

4 Version

8 HLen

16

31 Length

Ident TTL

19

TOS Flags Protocol

Offset Checksum

SourceAddr DestinationAddr

– Schema di indirizzamento globale

Options (variable)

Pad (variable)

Data

Formato datagram IP • Version: versione IP (IPv4, IPv6) • Hlen: lunghezza hdr in words di 32 bit – no Options => Hlen = 20 bytes • TOS: type of service – trattamento pkt, p.e. “low delay”; usato per DiffServ • Length: lunghezza d/gram, incluso hdr, in bytes (i.e., 65535 B max)



Ident (pkt id), Flags, Offset

• • • • • •

TTL: time to live (default = 64) Protocol: demux key (TCP, UDP) Checksum: CRC descritto Src/dst fields: IP addr’s globali Options: estendono IP hdr Pad: padding a completare 32bit



usati in frammentazione

Reti di Calcolatori (Fabio Panzieri)

257

Università di Bologna - Corso di Laurea in Informatica

Frammentazione e re-assembly • Ogni rete in internetwork può usare propria MTU – MTU: max. dim. di IP datagram trasportabile in frame data link – interconnessione di reti con diverse MTU richiede frammentazione e riassemblaggio

• Strategia di frammentazione in IP – Frammentare solo se necessario (i.e. MTU < datagram) – Evitare frammentazione a src host – Assumere possibilità di ri-frammentazione – Frammenti trasmessi come datagram, indipendenti uno dall’altro – Riassemblaggio a dst – Non effettuare recovery di frammenti persi Reti di Calcolatori (Fabio Panzieri)

258

129

Università di Bologna - Corso di Laurea in Informatica

Esempio

Start of header Ident = x

0

Offset = 0

Rest of header

H1

R1

ETH IP (1400)



R2

FDDI IP (1400)

R3

PPP IP (512)

ETH IP (512)

PPP IP (512)

ETH IP (512)

PPP IP (376)

MTUs

1400 data bytes

H8

Start of header Ident = x

1

Offset = 0

Rest of header

ETH IP (376)

512 data bytes

– Ethernet = 1500 B – FDDI = 4500 B – Point-to-Point = 532 B

Start of header Ident = x

1

Offset = 512

Rest of header 512 data bytes

• H1 invia msg di 1400 B a H8 • IP in H1 genera datagram di 1420 B

Start of header Ident = x

0 Offset = 1024 Rest of header

– R1: tramette senza frammentare; – R2: frammenta e trasmette; – R3 non riassembla e trasmette

376 data bytes

Reti di Calcolatori (Fabio Panzieri)

259

Università di Bologna - Corso di Laurea in Informatica

Indirizzi IP • Proprietà – Unici globalmente – Gerarchici • Strutturati in • Hosts connessi a stessa rete condividono parte network p.e., H1, H2 e R1 in Network 1, … • Router che interconnette 2 reti ha 2 indirizzi IP, uno per interfaccia di rete (p.e. R1, R2 e R3 in fig.) N.B. indirizzi IP associati a interfacce di rete

H1

Reti di Calcolatori (Fabio Panzieri)

R1

R2

R3

H8

260

130

Università di Bologna - Corso di Laurea in Informatica

Indirizzi IP •

Strutturati in “classi” A, B, C, D e E (non usata; riservata per usi futuri) – 232bit = 4.294.967.296 indirizzi possibili cosi’ allocati: –

Classe A: 27 - 2 = 126 reti (0 e 127 riservati); 224 - 2 = 16.777.214 indirizzi di hosts ognuna (2 indirizzi riservati)



Classe B: 214 = 16384 reti, 216 - 2 = 65534 hosts ognuna



Classe C: 221 = 2.097.152 reti, 28 = 256 hosts di cui 254 utili (~12.5%)

=> 126 x 16.777.214 = 2.113.928.964 (~50% di spazio indirizzi) => 16384 x 65534 = 1.073.709.056 (~25%) •

(255: broadcast, 0: non valido)

Rappresentazione decimale: ogni intero rappresenta il decimale contenuto nel byte corrsipondente

Classe A

0 network

B

10

network

C

110

network

D

1110

1.0.0.0 -> 127.255.255.255

host

128.0.0.0 -> 191.255.255.255

host host

192.0.0.0 -> 223.255.255.255

multicast address

224.0.0.0 -> 239.255.255.255

32 bits Reti di Calcolatori (Fabio Panzieri)

261

Università di Bologna - Corso di Laurea in Informatica

Datagram Forwarding

• Strategia – – – – – –

Ogni datagram contiene indirizzo dst Src, se direttamente connesso a rete destinazione, trasmette a dst Src, se non direttamente connesso trasmette a router Ogni network ha un router di default, noto a hosts Ogni router mantiene una tabella di forwarding Tabella di forwarding mappa network number in next hop

Esempio H1

Ethernet 2

R1

tabella di forwarding in R2 R2

FDDI 3

R3

P-to-P 4

H8

Ethernet 1

Network Number 1 2 3 4

Next hop R3 R1 I/F 1 I/F 2

N.B.: tabella contiene solo 4 entry per raggiungere tutti gli hosts su tutte e 4 le reti => scalabilità Reti di Calcolatori (Fabio Panzieri)

262

131

Università di Bologna - Corso di Laurea in Informatica

Traduzione indirizzi • Problema – da schema precedente • datagrams IP trasportati su rete destinazione

– Come raggiungere host dst? • Datagram IP contiene indirizzo IP • Interfaccia h/w di dst (host o router) indirizzata con schema indirizzamento di rete dst specifica => indirizzo IP deve essere “tradotto” in indirizzo di livello data link della rete (p.e., 48 bit Ethernet addr.) • Solo successivamente, datagram IP incapsulato in frame di livello data link e trasmesso a dst

• Soluzioni – Codificare indirizzi fisici in parte host di indirizzi IP p.e., ind. fisico di host: 00010001 00101001 -> IP: 128.96.33.81 • richiede indirizzi fisici di rete < 16 bit (classe C: host addr = 8 bit) • non funziona per indirizzi di 48 bit (Ethernet)

– Address Resolution Protocol: uso di tabella dinamica

Reti di Calcolatori (Fabio Panzieri)

263

Università di Bologna - Corso di Laurea in Informatica

ARP (Address Resolution Protocol) • • •

Consente ad ogni host, o router, di costruire tabella di mapping di indirizzi IP e corrispondenti indirizzi fisici Sfrutta broadcasting (in ethernets e rings) Invio di datagram IP a dst (host o router) su medesima rete il cui indirizzo data link è ignoto 1. Host src consulta suo “ARP cache” (i.e., tabella) 2. se indirizzo fisico di host dst non in ARP cache allora broadcast richiesta ARP (i.e. “chi possiede questo IP?”) 3. Ogni host in network intercetta richiesta ARP 4. Confronta proprio IP con quello in richiesta ARP 5. Se uguali, host risponde con il suo indirizzo fisico 6. Host src aggiorna propria cache 7. Host dst aggiorna propria cache

Reti di Calcolatori (Fabio Panzieri)

264

132

Università di Bologna - Corso di Laurea in Informatica

ARP: Note • Entries in tabelle sono periodicamente, se non usate

scartate

e

rigenerate

– p.e. guasto/sostituzione interfaccia di rete (i.e. nuovo indirizzo) – TTL = 15’ (circa)

• Host target aggiorna tabella con indirizzo src, quando riceve datagram • Host non-target intercetta richiesta ARP se src presente tabella allora “refresh” entry (i.e. re-setta TTL ) altrimenti ignora richiesta

Reti di Calcolatori (Fabio Panzieri)

265

Università di Bologna - Corso di Laurea in Informatica

Formato del pacchetto ARP • • • • • •

Hardware type: Tipo di 0 8 16 rete (1 = ethernet) Protocol type: protocollo Hardware type = 1 Protocol Type = 0x0800 di livello superiore (p.e. IP) HLen = 48 PLen = 32 Operation Hlen: lunghezza indirizzo SourceHardwareAddr (bytes 0-3) data link Plen: lunghezza indirizzo SourceHardwareAddr (bytes 4-5) SourceProtocolAddr (bytes 0-1) livello superiore Operation: ARP request, SourceProtocolAddr (bytes 2-3) TargetHardwareAddr (bytes 0-1) o ARP response Indirizzi data link e TargetHardwareAddr (bytes 2-5) protocollo superiore di src e dst TargetProtocolAddr (bytes 0-3)

31

Pacchetto ARP per mappare indirizzi IP in indirizzi Ethernet Reti di Calcolatori (Fabio Panzieri)

266

133

Università di Bologna - Corso di Laurea in Informatica

Internetworking via IP • IP soddisfa requisiti di: • Eterogeneità – Modello “best-effort” (i.e. datagram) • assunzioni minime su infrastrutture di rete di supporto a IP

– Formato del pacchetto comune a qualunque supporto di rete • Meccanismo di frammentazione/re-assemblaggio consente di lavorare con differenti MTUs

– Spazio di indirizzi “globale” • ARP supporta spazio indirizzi globale su reti con schemi di indirizzamento diversi

• Scalabilità – Struttura gerarchica degli indirizzi () riduce quantità di informazione necessaria a trasmettere datagrams

• Come assegnare indirizzi IP a hosts? Reti di Calcolatori (Fabio Panzieri)

267

Università di Bologna - Corso di Laurea in Informatica

Configurazione di hosts con indirizzi IP • Indirizzi IP devono – essere unici in internetwork (per scopi di identificazione univoca) – riflettere struttura dell’internetwork (per scopi di routing) – essere riutilizzabili – per rilocare un host da una rete ad un altra – sostituire host guasto

• Soluzioni manuali: non proponibili (soggette a errore) • Soluzione automatica: Dynamic Host Configuration Protocol (DHCP) – Basato su DHCP server che:

• mantiene “serbatoio” di indirizzi IP per particolare dominio amministrativo da assegnare a hosts richiedenti • evita all’amministratore del dominio – l’assegnazione di indirizzi IP a hosts – l’assegnazione dell’indirizzo del DHCP server a hosts

– Almeno un DHCP server per dominio amministrativo

Reti di Calcolatori (Fabio Panzieri)

268

134

Università di Bologna - Corso di Laurea in Informatica

DHCP •

Host cliente – Invia msg DHCPDISCOVER a ind. 255.255.255.255 • 255.255.255.255: indirizzo IP di broadcast • routers e nodi ≠ DHCP server ignorano messaggio • msg include h/w net. addr. (e.g. Ethernet MAC addr.) di host cliente



DHCP server – risponde con • indirizzo IP per host cliente • indirizzo di router di default per host cliente (se disponibile)



N.B.: Dominio amministrativo può consistere di internetwork – DHCP server in ogni rete? •

potenzialmente gran n. di DHCP servers – complessità: •

configurazione e allineamento (coerenza) dei DHCP servers

– Uso di relay agents

Reti di Calcolatori (Fabio Panzieri)

269

Università di Bologna - Corso di Laurea in Informatica

DHCP: Relay agents •

Almeno un relay agent per rete –

configurato con (i.e. conosce) indirizzo IP di DHCP server

• Host: invia in broadcast DHCPDISCOVER msg • Realy agent: – cattura DHCPDISCOVER msg – invia in unicast DHCPDISCOVER a DHCP server – attende risposta – invia risposta a host broadcast msg

unicast msg

DHCP relay

a DHCP server

Rete

DHCP Server

Host Reti di Calcolatori (Fabio Panzieri)

270

135

Università di Bologna - Corso di Laurea in Informatica

DHCP: riutilizzabilità di indirizzi IP •

Indirizzi IP assegnati dinamicamente (su richiesta) da DHCP server => conflitto di requisiti (A vs. B) A. devono essere restituiti da hosts altrimenti server esaurisce serbatoio •

DHCP non può affidarsi a host per la restituzione – host può guastarsi, essere disconnesso, imbrogliare, …

B. host deve poter usare indirizzo IP per quanto necessario



Soluzione – – –



DHCP “affitta” ogni indirizzo IP per lasso di tempo (i.e. TTL) Se TTL termina, DHCP server riutilizza indirizzo Host può rinnovare periodicamente “affitto” di indirizzo, se necessario

N.B.: Complessità indotta da DHCP in gestione di rete –

Associazione dinamica indirizzo <mac address; IP> •

complesso localizzare host guasto sulla base del suo indirizzo IP

Reti di Calcolatori (Fabio Panzieri)

271

Università di Bologna - Corso di Laurea in Informatica

Internet Control Message Protocol (ICMP) •

IP configurato con protocollo “peer” ICMP per 1. segnalazione di errori a host src •

“Destination unreachable” – p.e., link guasto, host guasto



“TTL exceeded” – TTL = 0 (previene loop permanente di datagram) “Checksum failed” “Reassembly failed” – p.e., frammento mancante

• •

2. messaggi di controllo router-host •

ICMP-redirect

Reti di Calcolatori (Fabio Panzieri)

272

136

Università di Bologna - Corso di Laurea in Informatica

ICMP-REDIRECT • Router notifica host src rotta migliore per dst

2

via R2

3

1 4

host src

Msg 2 a dst

Net B

host dst

R2

Net A Msg 1 a dst via R1

ICMP-REDIRECT: msgs a dst via R2

R1 (default)

Msg 1 a dst via R2

Net C

Reti di Calcolatori (Fabio Panzieri)

273

Università di Bologna - Corso di Laurea in Informatica

Routing • •

Forwarding vs. Routing = instradamento vs. costruzione di rotte Tabella di routing –

mapping fra rete destinazione e indirizzo IP di “next hop” •

E.g.:

Network num Next hop 10 130.136.2.253 •

Tabella di forwarding –

mapping fra rete dst., porta di uscita (i.e., come raggiungere “next hop”), e indirizzo fisico di “next hop” (p.e., MAC address fornito da ARP) •

E.g.

Network num Interface 10 0 •

MAC Address 7:0:3b:e5:b:2:3

1 o 2 tabelle? • •

scelta implementativa meglio se separate: – modifiche di topologia richiedono cambiamento di tabella di routing, solamente – sostituzione di MAC i/f richiede modifica di forwarding table, solamente

Reti di Calcolatori (Fabio Panzieri)

274

137

Università di Bologna - Corso di Laurea in Informatica

Routing in Internet • Protocolli (IGPs))

intra-dominio

(Interior

Gateway

Protocols

– Protocolli di routing per uso interno a dominio • dominio: internetwork i cui routers sono sotto il medesimo controllo ammistrativo (p.e., Università di Bologna) • Non scalano a livello globale • Costituiscono “building block” per routing su scala globale • Includono – Routing Information Protocol (RIP) – Open Shortest Path First (OSPF) Protocol

– Protocolli extra-dominio (Exterior Gateway Protocols (EGPs)) • Usati per routing attraverso domini amministrativi diversi • Boarder Gateway Protocol 4 (BGP-4) Reti di Calcolatori (Fabio Panzieri)

275

Università di Bologna - Corso di Laurea in Informatica

Routing •

Costruzione delle routing table – applicazione della teoria dei grafi • rete rappresentata come un grafo – nodi = routers, archi = links

– ogni arco ha un “costo” • costo: ritardo, livello di congestione, €, … • permette di valutare opportunità di usare il link corrispondente

– problema del routing

• trovare il cammino di costo minimo tra due nodi qualunque

A

3 B

E

4 C Reti di Calcolatori (Fabio Panzieri)

6

1 1

2

F

1 9

D 276

138

Università di Bologna - Corso di Laurea in Informatica

Routing tables • Costruite mediante algoritmi distribuiti

– routers scambiano informazione e costruiscono propria routing table • periodicamente (periodic udate), o • se si verifica qualche cambiamento – p.e. aggiunta di link, crash di link (triggered update)

• Due tecniche principali per la costruzione delle routing tables: – in entrambe:

• ogni router stabilisce costo della comunicazione con i routers cui è direttamente connesso, e costruisce routing table iniziale

– Distance Vector Routing

• Ogni router invia routing table corrente ai routers cui è direttamente connesso, solamente • Ogni router aggiorna la propria routing table sulla base di quella ricevuta, se scopre in questa percorsi meno costosi verso le destinazioni note

– Link State Routing

• Ogni router invia routing table a tutti gli altri routers in rete • Ogni router aggiorna la propria routing table sulla base di quanto ricevuto

Reti di Calcolatori (Fabio Panzieri)

277

Università di Bologna - Corso di Laurea in Informatica

Distance Vector (RIP) • •

Ogni nodo mantiene tabella di routing consistente di insieme di triple: Ogni nodo invia aggiornamenti a (e riceve aggiornamenti da) i nodi vicini direttamente connessi – periodicamente (ordine di qualche secondo) – quando la sua tabella cambia (triggered update)

• •

Ogni aggiornamento è una coppia: Aggiorna la propria tabella se scopre una rotta migliore



Ad ogni riga in tabella (rotta) è assegnato un max. time to live (TTL) if nodo vicino non invia propria tabella (aggiornamento) entro TTL, then reset valori di rotta /* i.e. sospetta che il canale di comunicazione al nodo vicino sia guasto */

Reti di Calcolatori (Fabio Panzieri)

278

139

Università di Bologna - Corso di Laurea in Informatica

Distance Vector: esempio • Vector: direzione, i.e. primo passo che un pacchetto deve compiere • Ip.: – ogni nodo (router) conosce il costo (distance ) dei links connessi direttamente – distance vector iniziale: costo unitario di ogni link

• Routing table iniziale al nodo A (INF = costo infinito; i.e., ignoto) Destination

Cost

Next Hop

B

1

B

C

1

C

D

INF

-

E

1

E

F

1

F

G

INF

-

1 1

B

1

A

1

C D

E

F

G

Reti di Calcolatori (Fabio Panzieri)

279

Università di Bologna - Corso di Laurea in Informatica

Distance vector: esempio



Ogni nodo invia il proprio distance vector ai vicini (i.e., nodi direttamente connessi) Se un nodo scopre che il vettore ricevuto ha un cammino di costo migliore (i.e. più basso), di quello conosciuto, sostituisce quello conosciuto con il nuovo valore.



Ogni nodo costruisce “distance vector” per raggiungere tutti gli altri nodi



B

1 A

1 F

C

1 1

D

E

1

1

G

Destination

Cost

Next Hop

B

1

B

C

1

C

D

2

C

E

1

E

F

1

F

G

2

F

Routing table al nodo A al termine del calcolo del distance vector Reti di Calcolatori (Fabio Panzieri)

280

140

Università di Bologna - Corso di Laurea in Informatica

Distance Vector: trattamento dei guasti •

Mancanza di aggiornamento da un nodo direttamente connesso



Esempio 1



In generale la situazione tende a stabilizzarsi, però:

=> considerare guasto il link con quel nodo – – – – – –

F sospetta guasto del link con G F setta la sua distanza con G a infinito e invia aggiornamento ad A A setta la sua distanza con G a infinito poiché usa F per raggiungere G A riceve aggiornamento periodico da C con costo 2 per G A setta la sua distanza con G a 3 invia aggiornamento a F F decide che può raggiungere G a costo 4 via A, ristabilendo connettività con G

– rischio di routing loops

B C

A

D

E F

G

Reti di Calcolatori (Fabio Panzieri)

281

Università di Bologna - Corso di Laurea in Informatica

Distance Vector: routing loops • Esempio 2: A rileva guasto nel link da A a E – A annuncia costo infinito con E a B, C, F

N.B.: msg viaggia via IP; può subire ritardi in rete

– B e C annunciano costo = 2 con E

• msg consegnato prima di msg di A

– B riceve msg’s da C e A, decide che può raggiungere E a costo 3 via C (B->C + C->E), e lo comunica ad A – A decide che può raggiungere E a costo 4 (A->B + B->E annunciato), e lo comunica a C – C decide che può raggiungere E a costo 5 (C->A + A->E annunciato) … – Processo termina solo quando costo = “infinito” B C

A

D

E F Reti di Calcolatori (Fabio Panzieri)

G 282

141

Università di Bologna - Corso di Laurea in Informatica

Distance Vector •

Euristiche per spezzare i routing loops – “infinito = n”, n quantità sufficientemente piccola • dopo n aggiornamenti viene sollevata eccezione – p.e., forward di email fra gli stessi due indirizzi: dopo 16 iterazioni sospende e invia messaggio di errore

– Split horizon: • Non inviare informazione ricevuta da un vicino indietro a quel vicino P.E.: – se tabella di B contiene rotta <E,2,A>, B sa di averla ottenuta da A stesso; – quando invia aggiornamenti ad A non include rotta <E,2> nell’aggiornamento N.B.: spezza solo routing loops fra due nodi



Routing loops risolti da Link State Routing

Reti di Calcolatori (Fabio Panzieri)

283

Università di Bologna - Corso di Laurea in Informatica

Routing in Internet: Routing Information Protocol (RIP) • Basato su algoritmo di “distance vector” • Ogni router – annuncia costo per raggiungere “rete dst ”, anzichè “router dst” – invia annunci ogni 30” • oppure quando “triggered” da annuncio da altro router che modifica la sua routing table

– assume “costo” di link unitario (i.e., “costo”: n. di hops) – supporta “famiglie” di indizzi (i.e., non solo IP) – spezza routing loops assumendo “infinito = 16”

• RIP utilizzabile per routing in reti di dimensioni contenute – Lunghezza path: 15 hops max. • i.e. ok in singolo dominio amministrativo

Reti di Calcolatori (Fabio Panzieri)

284

142

Università di Bologna - Corso di Laurea in Informatica

Link State Routing • Ip: ogni nodo è in grado di valutare costo dei link con cui è direttamente connesso • Strategia: – fornire ad ogni nodo sufficiente informazione di routing affinchè questo possa determinare la migliore rotta per ogni destinazione • informazione di stato relativa ai link a cui un nodo è direttamente connesso è trasmessa da questo ai suoi vicini, e propagata a tutti • ogni nodo riceve informazione relativa a tutta la rete da tutti i nodi

• Algoritmo di LSR basato su due meccanismi: – Reliable Flooding • dissemina informazione di stato sui link attraverso la rete

– Shortest path first • costruisce tabelle di routing (algoritmo di Dijkstra) calcolando rotte sulla base dell’informazione di stato ottenuta via reliable flooding Reti di Calcolatori (Fabio Panzieri)

285

Università di Bologna - Corso di Laurea in Informatica

Reliable Flooding • • •

Ogni nodo invia informazione di stato relativa ai link a lui direttamente connessi su ognuno di questi link mediante Link State Packet (LSP) Nodo che riceve LSP ne effettua il forwarding sui link a lui direttamente connessi (eccetto quello da cui l’LSP proviene) LSP contiene: – – – – –

id del nodo che ha creato l’LSP stesso Per scopi di calcolo lista di nodi direttamente connessi delle rotte costo di ogni link direttamente connesso numero di sequenza (seq.no.) Per consetire “flooding” affidabile time-to-live (TTL) per l’LSP

Reti di Calcolatori (Fabio Panzieri)

286

143

Università di Bologna - Corso di Laurea in Informatica

Reliable Flooding • Quando nodo X riceve LSP da nodo Y, controlla se possiede già un LSP da Y – si:

• if seq. no. del nuovo LSP > seq. no. di LSP attualmente mantenuto then {nuovo LSP sostituisce precedente LSP; “forward” nuovo LSP su tutti i link di uscita,tranne quello di provenienza} else scarta nuovo LSP

– no:

• mantiene copia di LSP ricevuto, • “forward” LSP su tutti i link di uscita, tranne quello di provenienza => ogni LSP raggiunge tutti i nodi (a meno di guasti di comunicazione)

• Ogni nodo genera l’LSP periodicamente

=> ogni volta, il seq. no. è incrementato di 1 – necessario che seq.no. non ciclino

=> uso di un campo ampio (64 bits) per rappresentarli

Reti di Calcolatori (Fabio Panzieri)

287

Università di Bologna - Corso di Laurea in Informatica

Reliable Flooding •

Garanzia che LSPs obsoleti siano scartati – ogni LSP ha associato un TTL (alcuni minuti) – TTL decrementato da ogni nodo attraverso cui l’LSP transita; – TTL di ogni LSP mantenuto dal nodo è decrementato periodicamente da quel nodo; – ogni LSP con TTL = 0 scartato (e “re-flooded” con TTL = 0 in modo che possa essere scartato da tutti i nodi) – Nodo “guasto” (crashed) dopo recovery genera LSPs partendo da seq.no. = 0 • => • =>

durata del guasto sufficientemente lunga TTL degli LSPs del nodo re-inizializzato sono terminati e info. di stato rimossa durata guasto sufficientemente breve nodo re-inizializzato riceve (prima o poi) suo pre-crash LSP; in questo caso, può continuare da quel seq. no.

Reti di Calcolatori (Fabio Panzieri)

288

144

Università di Bologna - Corso di Laurea in Informatica

Calcolo della rotta (in teoria) • Shortest path algorithm (Dijkstra)

– calcola cammino fra nodo s, che esegue l’algoritmo, e il resto dei nodi nel grafo – N: insieme di nodi nel grafo; – l(i,j): costo dell’arco fra i nodi i e j • posto a infinito se non vi è alcun link diretto fra i e j.

– s: nodo che esegue l’algoritmo – M: insieme dei nodi per cui è stata calcolato un cammino con relativo costo – C(n): costo del cammino dal nodo s al nodo n

M = {s} /Inizializza M for each n in N - {s} / Inizializza tabella con costi dei C(n) = l(s,n) /nodi direttamente connessi while (N ≠ M) /Cerca nodo w di costo min. e mettilo in M M = M ∪ {w} such that C(w) is the minimum for all w in (N-M) for each n in (N-M) /Aggiorna tabella con costi via w C(n) = MIN (C(n), C(w)+l(w,n)) Reti di Calcolatori (Fabio Panzieri)

289

Università di Bologna - Corso di Laurea in Informatica

Shortest Path Algorithm (principio di funzionamento) 1. Inizializza M a contenere solo s (il nodo che esegue l’alg.) 2. Inizializza tabella dei costi (tutti i C(n)) verso gli altri nodi – i.e. inserisci costo conosciuto per i nodi direttamente connessi e infinito per gli altri

3. Seleziona nodo w ≠ s a costo più basso, e aggiungilo a M. 4. Calcola costo per raggiungere il resto dei nodi via w; 5. if uno di questi è più economico di quelli noti in tabella then aggiorna tabella; 6. Ripeti da passo 3 finché M = N. Reti di Calcolatori (Fabio Panzieri)

290

145

Università di Bologna - Corso di Laurea in Informatica

Costruzione di tabelle di routing: esempio • Implementazione dell’algoritmo di Dijkstra (algoritmo forward search): – Ogni nodo mantiene due liste: Tentative e Confirmed – Ogni nodo calcola la sua tabella di routing sulla base degli LSP ricevuti dagli altri nodi in Confirmed – Ogni lista contiene un insieme di triple: Costruzione di routing table di D

5 A

B

3

Confirmed

1.

(D,0,-)

2.

(D,0,-)

Tentative

2

Commenti D: unico membro in Confirmed. Esamina LSP di D LSP di D indica C(B) = 11, C(C) = 2 (da D); li aggiunge a Tentative

(B,11,B) (C,2,C)

C

10 11

Step

3.

(D,0,-)

(B,11,B)

(C,2,C)

D 4.

(D,0,-)

(B,5,C)

(C,2,C)

(A,12,C)

Muovi (C,2,C) in Confirmed [membro di costo minore in Tentative] Esamina LSP da C

LSP da C indica costo C ->B = 3, C -> A = 10. Aggiorna Tentative

Reti di Calcolatori (Fabio Panzieri)

291

Università di Bologna - Corso di Laurea in Informatica

Costruzione di tabelle di routing: esempio Step

Confirmed

Tentative

Commenti

5.

(D,0,-)

(A,12,C)

Muovi (B,5,C) in Confirmed [membro di costo più basso in Tentative]

(C,2,C)

Esamina LSP di B

(B,5,C) 6.

(D,0,-) (C,2,C)

(A,10,C)

LSP da B indica costo B -> A = 5. Aggiorna Tentative

(B,5,C) 7.

(D,0,-) (C,2,C)

Muovi (A,10,C) in Confirmed [membro di costo più basso in Tentative]

(B,5,C)

if Tentative = ø then termina

(A,10,C)

5 A

B

3 C

10 11

2

D Reti di Calcolatori (Fabio Panzieri)

292

146

Università di Bologna - Corso di Laurea in Informatica

Calcolo della rotta (in pratica) 1. Nodo S (esecutore) inizializza Confirmed con tripla relativa a se stesso •

assume costo = 0

2. esamina l’LSP del nodo in Confirmed (detto Next, nel seguito). 3. Per ogni Neighbour di Next, calcola il costo per raggiungere Neighbour come somma del costo da se a Next, e da Next a Neighbour 3.1. Se Neighbour non è attualmente né in Confirmed né in Tentative, aggiungi (Neighbour, Cost, NextHop) a Tentative, dove NextHop è la direzione per raggiungere Next. 3.2 Se Neighbour è attualmente in Tentative e costo è inferiore al costo corrente per Neighbour, allora sostituisci entry attuale con (Neighbour, Cost, NextHop)

4. Se Tentative è vuota, stop. Altrimenti, seleziona entry da Tentative con costo più basso, spostala in Confirmed, e ritorna al passo 2.

Reti di Calcolatori (Fabio Panzieri)

293

Università di Bologna - Corso di Laurea in Informatica

Link State Routing: proprietà • Pro’s

– Si stabilizza rapidamente – Introduce overhead di traffico ridotto – Risponde rapidamente a modifiche della topologia di rete

• Con’s

– Volume di informazione di stato mantenuta ad ogni router (un LSP per ogni switch nella rete) – non sufficientemente scalabile • i.e., utile in singolo dominio amministrativo (i.e., reti con n. contenuto di nodi)

• Distance Vector Routing (DSR) vs. Link State Routing (LSR)

– In DSR ogni router comunica con i routers direttamente connessi, solamente, ma invia loro la propria tabella di forwarding, completa. – In LSR ogni router comunica con tutti i router in rete, ma invia loro stato dei link a lui direttamente connessi, solamente

• Entrambi non sufficientemente scalabili

– Si richiedono tecniche di routing per internetwork globale

Reti di Calcolatori (Fabio Panzieri)

294

147

Università di Bologna - Corso di Laurea in Informatica

Costo dei link • Determinato sperimentalmente • Inizialmente, metriche di ARPANET (divenuta poi Internet) – Misura di numero di pacchetti mantenuti ad ogni switch – Non consideravano né latenza né bandwidth

• Successivamente sostituite da “new ARPANET metric”: – Marca ogni pacchetto ricevuto con il suo arrival time (AT) – Registra departure time (DT) – Quando riceve ACK da livello Data Link, calcola Delay = (DT - AT) + TransmissionTime + Latency (DT - AT): tempo in cui il pacchetto è rimasto in coda nello switch TransmissionTime e Latency: definite staticamente

– if timeout per mancanza di ACK, then risetta DT all’istante di ritrasmissione – Costo del link = ritardo medio su un periodo di tempo

Reti di Calcolatori (Fabio Panzieri)

295

Università di Bologna - Corso di Laurea in Informatica

Metriche di costo •

Problemi con metriche “New” – Carico di rete basso: • fattori statici (latency, transmission time) dominano il costo (OK)

– Carico di rete elevato: • link congestionati assumono costo molto elevato, e lo annunciano; • pacchetti transitano verso link scarichi, scaricando quelli congestionati, • e congestionando quelli scarichi, e così via.



Metriche di costo “revised”, in uso oggi: – Basate su riduzione del campo di variabilità delle metriche: – Sostituiscono misure di delay con link utilization, mediato con l’ultimo link utilization conosciuto (per evitare sbalzi di carico improvvisi) – Impongono limite su variabilità dei valori misurati fra un ciclo di misure ed il successivo => attenuando i cambiamenti nei costi, si riduce la probabilità che tutti i nodi abbandonino una rotta tutti insieme.

Reti di Calcolatori (Fabio Panzieri)

296

148

Università di Bologna - Corso di Laurea in Informatica

Livello Network in Internet sommario Transport layer: TCP, UDP IP protocol •addressing conventions •datagram format •packet handling conventions

Routing protocols •path selection •RIP, OSPF, BGP

Network layer

routing table

ICMP protocol •error reporting •router “signaling”

Link layer physical layer

Reti di Calcolatori (Fabio Panzieri)

297

Università di Bologna - Corso di Laurea in Informatica

Internet globale •

Indirizzamento gerarchico IP rende routing non sufficientemente scalabile – Routers mantengono indirizzi di tutte le reti connesse ad Internet, solamente, i.e. non mantengono indirizzi degli hosts (usano ARP)



Scalabilità insufficiente a causa della crescita di Internet in termini di n. di reti interconnesse che la compongono



Principali problemi di scalabilità nel routing 1. Ottimizzare uso di spazio indirizzi IP •

i.e., garantire che non si esaurisca

2. Minimizzare dimensioni tabelle di routing nei routers •

i.e., minimizzare numero di “network numbers” trasportati nei pacchetti IP e mantenuti nelle tabelle di routing dei routers

Reti di Calcolatori (Fabio Panzieri)

298

149

Università di Bologna - Corso di Laurea in Informatica

Struttura attuale di Internet •

Insieme di “Autonomous Systems” (ASs) – AS: rete, o interconnessione di reti, amministrata indipendentemente dagli altri ASs (e.g., università, compagnia, ISP, ASP) Large corporation “Consumer Peering point

Backbone service provider

“ Consumer ” ISP Large corporation

” ISP

Peering point

“Consumer ”ISP

Small corporation



Identificazione univoca di ciascuna rete con network number – non praticabile • saturazione memoria dei routers • esaurimento network numbers di IP

Reti di Calcolatori (Fabio Panzieri)

299

Università di Bologna - Corso di Laurea in Informatica

Scalabilità del routing: gestione dello spazio indirizzi IP • • •

Classe A: 27 = 256 reti, 224 hosts Classe B: 214 = 16384 reti, 216 = 65534 hosts Classe C: 221 reti, 28 - 2 = 254 hosts – Organizzazione con 2000 hosts riceve classe B, • lascia inutilizzati 63334 indirizzi • Efficienza = 2000/65534 = 0.03 = 3%

– Organizzazione con 2 hosts riceve classe C • lascia inutilizzati 252 indirizzi • Efficienza = 2/254 = 0.0078 = 0.78%

– Spazio indirizzi si esaurisce rapidamente



Soluzione: –

tecnica di subnetting

Reti di Calcolatori (Fabio Panzieri)

300

150

Università di Bologna - Corso di Laurea in Informatica

Subnetting: ottimizzare uso degli indirizzi IP • Idea di base: allocare gli indirizzi IP con stesso IP network number a molteplicità di “subnets” (reti fisiche) • IP standard: hosts su medesima rete fisica configurati con medesimo network number • IP con subnetting: hosts su medesima rete fisica configurati con medesima subnet mask – unica per tutti gli hosts nella medesima subnet – subnets distinte possono usare la stessa subnet mask

• Subnet mask: consente di introdurre subnet number • Subnet number – AND bit a bit di indirizzo IP e subnet mask – Hosts su medesima rete fisica: = subnet number

– Hosts su diverse reti fisiche: = network number ≠ subnet number

– Subnet numbers visibili solo all’interno di rete con medesimo network number (invisibili al resto di Internet)

Reti di Calcolatori (Fabio Panzieri)

301

Università di Bologna - Corso di Laurea in Informatica

Meccanismo di subnetting • Subnet mask – definisce partizione (variabile) del campo host number; • i.e., campo Host Number diviso in <subnet ID; host ID>

– in esempio: • 16 bit di ordine più alto – network number (classe B) • 8 successivi: – subnet ID; • 8 successivi: – host ID

⇒ Indirizzo diviso in 3 parti:

Reti di Calcolatori (Fabio Panzieri)

Network number

Host number

Indirizzo classe B 111111111111111111111111

00000000

Subnet mask (255.255.255.0) Network number Subnet ID

Host ID

Indirizzo “subnetted”

N.B.: Subnet mask introduce ulteriore livello gerarchico nell’ indirizzamento 302

151

Università di Bologna - Corso di Laurea in Informatica

IP addressing

Network ranges

Reti di Calcolatori (Fabio Panzieri)

303

Università di Bologna - Corso di Laurea in Informatica

Subnetting: esempio •

Sia assegnato al gestore di rete l’indirizzo di classe B = 152.15.x.x

• •

2 bytes non assegnati, i.e. disponibili per indirizzamento è responsabilità del gestore disporre di questi 2 bytes per indirizzare eventuali sottoreti, e dispositivi su queste (i.e. hosts) usiamo le lettere n(etwork), s(ubnet), e h(ost) per denotare la struttura dell’indirizzo



– quindi, per ora 152.15.x.x = nnnnnnnn.nnnnnnnn.xxxxxxxx.xxxxxxxx



Si vuole dividere rete 152.15.x.x in 4 sottoreti: – si possono usare i 2 bit di ordine piu alto dei due bytes disponibili, ottenendo: nnnnnnnn.nnnnnnnn.sshhhhhh.hhhhhhhh. – settando questi bit a 00, 01, 10, 11 lo spazio indirizzi disponibile può essere diviso in 4 gruppi

Reti di Calcolatori (Fabio Panzieri)

304

152

Università di Bologna - Corso di Laurea in Informatica

Subnetting 152.15.x.x • Subnet 1: – 152.15.0.1 to 152.15.63.254. – da x.x.00000000.00000001 a x.x.00111111.11111110

• Subnet 2: – 152.15.64.1 to 152.15.127.254 – da x.x.01000000.00000001 a x.x.01111111.11111110

• Subnet 3: – 152.15.128.1 to 152.15.191.254 – da x.x.10000000.00000001 a x.x.10111111.11111110

• Subnet 4: – 152.15.192.1 to 152.15.255.254 – da x.x.11000000.00000001 a x.x.11111111.11111110

Reti di Calcolatori (Fabio Panzieri)

305

Università di Bologna - Corso di Laurea in Informatica

Subnet mask – concetto di base • Subnet mask: – bit pattern usato per identificare parti comuni a gruppo di indirizzi IP – consente di identificare hosts su medesima sottorete – simile a indirizzo IP – creata confrontando i bit di due indirizzi IP, a partire da sinistra – se i bit nella medesima posizione (1º, 2º, ...) sono uguali, il corrispondente bit nella mask è uguale 1 – dalla posizione del primo bit che differisce in poi, tutti i bit della mashera sono uguali a 0

Reti di Calcolatori (Fabio Panzieri)

306

153

Università di Bologna - Corso di Laurea in Informatica

Subnet mask – concetto di base •

P.e.: dati i due indirizzi di host: 152.15.12.9 = 1011000.00001111.00001100.00001001 152.15.46.48 = 1011000.00001111.00101110.00110000 possiamo creare una maschera che isola le componenti da componente individuando sequenza di bit nella medesima posizione uguali fra loro

1011000.00001111.00001100.00001001 1011000.00001111.00101110.00110000 1111111.11111111.11000000.00000000 – ovvero: 255.255.192.0



Network mask: bit selezionati per identificare sottoreti p.e.: bit 11 nel 3º byte 11000000

Reti di Calcolatori (Fabio Panzieri)

307

Università di Bologna - Corso di Laurea in Informatica

Subnet mask – uso • • •

Network manager vuole consentire accesso a file server solo a richieste provenienti dalla rete della propria organizzazione, cui è stato assegnato indirizzo di classe C: 220.121.10.X. la mask è: 255.255.255.0 poichè relativa a indirizzi di classe C il firewall può essere programmato a confrontare l’indirizzo sorgente di tutte le richieste con il proprio (p.e. 220.121.10.1), usando la mask – i.e., estrae bit significativi dal proprio indirizzo e dal sorgente mediante la mask e li confronta



P.e.: e viene ricevuta la richiesta da indirizzo confronta: 11011100.01111001.00001100.00000010 11011100.01111001.00001010.00000001 11111111.11111111.11111111.00000000 yyyyyyyy.yyyyyyyy.yyyyynxx.xxxxxxxx

Reti di Calcolatori (Fabio Panzieri)

220.121.12.2, il firewall = = = =

220.121.12.2 220.121.10.1 255.255.255.0 respinta!

308

154

Università di Bologna - Corso di Laurea in Informatica

Subnet mask – uso •

Network manager vuole consentire accesso a file server solo a richieste provenienti dal dipartimento che possiede il firewall.



La sua organizzazione dispone dell’indirizzo di classe C 220.121.10.X e usa i primi due bit di byte X per definire 4 sottoreti.



Mask = 255.255.255.192. – –

primi 3 byte: mask di classe C 192 (11000000) deriva da uso dei primi 2 bit nel 4º byte, per subnetting



il firewall confronta indirizzi sorgenti di richieste con il proprio (p.e. 220.121.10.130) usando mask.



Se richiesta proviene da 220.121.10.12:



estrae bit significativi da proprio indirizzo e da quello sorgente e li confronta

11011100.01111001.00001010.10000010 11011100.01111001.00001010.00001100 11111111.11111111.11111111.11000000 yyyyyyyy.yyyyyyyy.yyyyyyyy.nxxxxxxx

= = = =

220.121.10.130 220.121.10.12 255.255.255.192 respinta!

Reti di Calcolatori (Fabio Panzieri)

309

Università di Bologna - Corso di Laurea in Informatica

Esempio: Routing R3

Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0

128.96.34.15

Subnet number di H1: 128.96.34.15 AND 255.255.255.128 = 128.96.34.0

128.96.34.1 H1 R1

Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128

128.96.34.130

128.96.34.139

128.96.34.129 R2

H3 128.96.33.14

H2

128.96.33.1

Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0

H1 invia d/g a H2 if H2 IP addr AND subnetmask ≠ H1 subnet number then invia a R1

/*default router*/

else invia direttamente a H2 Reti di Calcolatori (Fabio Panzieri)

310

155

Università di Bologna - Corso di Laurea in Informatica

Subnetting e Routers •

Modifiche alle tabelle di forwarding – –

IP semplice: Subnetting: <SubnetworkNum; SubnetMask; NextHop> • •

router mantiene subnet mask di reti dst in generale, mantiene anche indirizzo di default router

Tabella di forwarding del router R1 Subnet number

Subnet mask

NextHop

128.96.34.0

255.255.255.128

interface 0

128.96.34.128

255.255.255.128

interface 1

128.96.33.0

255.255.255.0

R2

default

R3

Reti di Calcolatori (Fabio Panzieri)

311

Università di Bologna - Corso di Laurea in Informatica

Algoritmo di forwarding D = indirizzo IP di destinazione for ogni entry (SubnetNum, SubnetMask, NextHop) in tabella D1 = SubnetMask & D if D1 = SubnetNum if NextHop è una interfaccia trasmetti datagram direttamente a D else trasmetti datagram a NextHop if Subnetnum non in tabella then trametti datagram a router di default

Reti di Calcolatori (Fabio Panzieri)

312

156

Università di Bologna - Corso di Laurea in Informatica

Subnetting • •

Pre-condizione: vicinanza universitario) Motivazione

fisica

delle

subnets

(p.e.

campus

– Insieme di subnets che condividono IP network number appaiono a routers remoti come singola rete – Routers remoti • •

mantengono singolo network number per raggiungere tutte le subnets con medesimo IP network number • riduzione dimensioni tabelle di forwarding in routers selezionano unico percorso per raggiungere tutte le subnets con medesimo IP network number

– Vicinanza fisica di subnets con medesimo IP network number agevola routing interno a subnets



Scalabilità di subnetting

1. Migliora efficienza di assegnamento indirizzi (i.e., un classe B per più di una rete) 2. Aggregazione di informazione (i.e., un network number per raggiungere più reti) riducendo requisiti di memoria nei routers

Reti di Calcolatori (Fabio Panzieri)

313

Università di Bologna - Corso di Laurea in Informatica

Subnetting: esercizi • • • • • •

Dato l’indirizzo: 50.16.12.178... Qual’è il suo valore binario? 00110010.00010000.00001100.10110010 In quale classe si trova? A Come si stabilisce? valore del 1º byte (0 in posizione più alta) Qual’è la maschera di rete per questa classe? 255.0.0.0 Se la maschera di sottorete fosse: 255.255.240.0… – quante sottoreti questa maschera consentirebbe di specificare? – 255 nel byte di ordine più alto è la network mask; questo lascia 255.240.0 come subnet mask; in binario: 11111111.11110000.00000000; ovvero: 12 bits per sottoreti (gli 1) e i rimanenti 12 per hosts. Quindi,il nº di sottoreti è (2^12)-2, (escludendo sottoreti “tutti 0” e “tutti 1”). – quanti hosts/sottorete? (2^12)-2 (“tutti 0” e “tutti 1” esclusi per hosts) – quanti hosts in totale? Sottoreti x (host/sottorete)=((2^12)-2) x ((2^12)-2)

Reti di Calcolatori (Fabio Panzieri)

314

157

Università di Bologna - Corso di Laurea in Informatica

Scalabilità del routing: minimizzazione delle tabelle di routing • Problemi di scala: – Ip.: 50.000.000 di destinazioni • non realistico mantenere tutti gli indirizzi destinazione nelle tabelle di routing • il solo scambio della tabelle congestionerebbe le linee

• Problemi di amministrazione del routing – Internet: rete di reti – Amministratore di ciascuna rete può voler adottare politiche di routing proprietarie

• Soluzioni: – Classless routing – Gerarchie di routers Reti di Calcolatori (Fabio Panzieri)

315

Università di Bologna - Corso di Laurea in Informatica

Classless Inter-Domain Routing (CIDR) •

Tecnica per limitare – –

• •

crescita delle tabelle di routing nei routers di backbone (tra ASs) esaurimento indirizzi IP

Elimina classi statiche (A, B, C) e le rende di dimensioni variabili Assegna blocchi di network numbers contigui –

Dimensione blocco: potenza di 2 •

indirizzi nello stesso blocco devono condividere stesso prefisso



Rappresenta numero di rete mediante coppia



P.E.: Blocco assegnato all’ISP: [200.23.16.0, 200.23.16.30]

– – – –

length: n. di bits nel prefisso “network number” 20 bit di ordine più alto uguali Assegna a se stesso 200.23.16.0/20 Sfrutta 3 bit per assegnare a 8 organizzazioni clienti indirizzi di length 23

Blocco dell’ISP Organizzazione 0 Organizzazione 1 … Organizzazione 7

11001000 00010111 0001 0000 00000000 11001000 00010111 0001 0000 00000000 11001000 00010111 0001 0010 00000000

length 200.23.16.0/20 200.23.16.0/23 200.23.18.0/23

11001000 00010111 0001 1110

200.23.30.0/23

Reti di Calcolatori (Fabio Panzieri)

00000000

316

158

Università di Bologna - Corso di Laurea in Informatica



Subnetting:



CIDR:



E.g.:

CIDR

– singolo indirizzo IP condiviso da molteplicità di reti fisiche – collassa molteplicità di indirizzi IP in singolo indirizzo – aggrega rotte – ISP assegna network numbers adiacenti (20 bit) a AS X e AS Y – Gateway: accetta pacchetti con dst = 19 bit comuni (prefisso) – Risolve indirizzi secondo il criterio del “longest match” • E.g.: 179.10 e 179.10.15 in tabella di routing – IP dst: 179.10.15.6 -> forward a 179.10.15 – IP dst: 179.10.20.4 -> forward a 179.10

AS X gateway

ISP network

11000000000001 000001

Fornisce accesso a rete 11000000000001

AS Y 11000000000001 000000

Reti di Calcolatori (Fabio Panzieri)

317

Università di Bologna - Corso di Laurea in Informatica

Routing in Internet globale •

In generale, gerarchia a due livelli – Interior Gateway Protocols (ogni AS seleziona il suo) • P.e. RIP, OSPF

– Exterior Gateway Protocols (Internet standard) • P.e. EGP, BGP-4



Interior Gateway Protocols comunemente usati – RIP: Route Information Protocol • Distribuito con Unix • Algoritmo di distance-vector • Basato su hop-count

– OSPF: Open Shortest Path First • • • •

Internet standard usa algoritmo di link-state supporta bilanciamento del carico supporta autenticazione

Reti di Calcolatori (Fabio Panzieri)

318

159

Università di Bologna - Corso di Laurea in Informatica

Routing in Internet: Open Shortest Path First (OSPF) • OSPF – – – – –

“open”: di dominio pubblico implementa algoritmo link state usa algoritmo di Dijkstra per calcolare rotte annunci OSPF contengono un entry per ogni router vicino distribuiti all’intero dominio amministrativo

• Aggiunge a RIP – sicurezza: msgs OSPF sono autenticati – metriche di costo “tarate” su TOS (e.g., canale satellitare: basso costo per “best effort”, alto costo per “real time”)

• Introduce gerarchie di routing: – ogni dominio partizionabile in “aree” (area = internetwork fisica) – ogni router configurato per raggiungere “aree” (anzichè sotto-reti) => aumenta scalabilità del routing in domini ampi e strutturati Reti di Calcolatori (Fabio Panzieri)

319

Università di Bologna - Corso di Laurea in Informatica

OSPF • •



AS rappresentato da grafo OSPF usa reliable flooding e usa algoritmo di shortest path first per costruire tabelle di routing Link rappresentato da coppia di archi con pesi possibilimente diversi

Reti di Calcolatori (Fabio Panzieri)

320

160

Università di Bologna - Corso di Laurea in Informatica

OSPF •

AS puo’ essere ampio (i.e. rete di reti) – OSPF usa strutturazione gerarchica di AS in aree (numerate univocamente) • Area: rete o insieme di reti contigue

– Ogni AS ha area di backbone (area 0); – Routing inter-area è via l’area backbone – Routers in un’area mantengono stato dei link relativi ai routers nella stessa area e ai routers nell’area backbone • Flooding avviene solo internamente ad un area

– Inter-area routing in tre fasi • va al backbone area • da li all’area destinazione • infine alla destinazione

Reti di Calcolatori (Fabio Panzieri)

321

Università di Bologna - Corso di Laurea in Informatica

OSPF: gerarchie di routers •

Aggrega routers in ASs



Internal routers (stesso AS): eseguono protocollo di routing intra-AS, esclusivamente



Backbone routers: instradamento entro il solamente



Boundary routers (gateways):



eseguono backbone,



instradano traffico in/out l’AS



Eseguono protocollo intra-AS con tutti i routers nel medesimo AS



Eseguono protocollo inter-AS con gli altri gateway routers

Area border routers: instradano in/out backbone

Relazione tra ASs, backbones, e aree in OSPF Reti di Calcolatori (Fabio Panzieri)

322

161

Università di Bologna - Corso di Laurea in Informatica

Boundary routers (gateways) C.b

a

A.a

b

C

Boundary routers: •eseguono inter-AS routing fra loro •eseguono intra-AS b routing con altri routers nel loro AS

B.a A.c

A

a

a

d

c B

c

b

inter-AS e intra-AS routing in gateway A.c

network layer link layer physical layer

Reti di Calcolatori (Fabio Panzieri)

323

Università di Bologna - Corso di Laurea in Informatica

Intra-AS e Inter-AS routing

C.b

a Host h1

C

A.a

b

a

Inter-AS routing Fra A e B A.c

d c b A Intra-AS routing in AS A

Reti di Calcolatori (Fabio Panzieri)

B.a a

c B

Host h2 b

Intra-AS routing in AS B

324

162

Università di Bologna - Corso di Laurea in Informatica

Exterior Gateway Protocols EGP, BGP • Garantiscono raggiungibilità delle risorse attraverso gli ASs – non necessariamente rotte ottimali

• Complessità di costruire rotte ottimali dovuta a natura autonoma degli ASs – Costo dei link può essere quantificato diversamente da AS ad AS – Considerazioni politiche • Traffico da/per AS-IBM non deve transitare via AS-Microsoft, traffico USA - Europa non deve transitare via Canada

• EGP – Progettato per Internet strutturata ad albero • singolo backbone(radice) • ASs connessi come padri e figli, solamente • Non sufficientemente generale

Reti di Calcolatori (Fabio Panzieri)

325

Università di Bologna - Corso di Laurea in Informatica

BGP-4: Border Gateway Protocol • Classifica ASs in – stub AS

• singola connessione ad altro AS • trasporta solamente traffico locale – i.e. originato e/o destinato localmente

– multihomed AS

• connette a più di un AS • non accetta traffico “di passaggio” (i.e. non originato o destinato al suo AS)

– transit AS

• connette a più di un AS • accetta traffico di passaggio e traffico locale

• Ogni AS possiede:

– uno o più boundary routers – un BGP speaker che fornisce info di raggiungibilità da/a: • reti locali interne all’AS • altre reti raggiungibili (solamente nei transit AS)

Reti di Calcolatori (Fabio Panzieri)

326

163

Università di Bologna - Corso di Laurea in Informatica

BGP (esempio) • BGP Speaker per AS2: annuncia raggiungibilità di P e Q – network 128.96, 192.4.153, direttamente da AS2

192.4.32,

Regional provider A (AS 2) Backbone network (AS 1) Regional provider B (AS 3)

• BGP Speaker per backbone

e

192.4.3,

raggiungibili

Customer P (AS 4)

128.96 192.4.153

Customer Q (AS 5)

192.4.32 192.4.3

Customer R (AS 6)

192.12.69

Customer S (AS 7)

192.4.54 192.4.23

– networks 128.96, 192.4.153, 192.4.32, e 192.4.3 raggiungibili lungo il persorso (AS1, AS2).

• BGP Speakers possono cancellare percorsi annunciati Reti di Calcolatori (Fabio Panzieri)

327

Università di Bologna - Corso di Laurea in Informatica

IPv6 •

Motivazione iniziale: – IPv4: spazio indirizzi di 32-bit completamente esaurito entro il 2008 – IPv6: circa 5000 indirizzi IP per m2



Inoltre: – Nuovo formato header facilita processing/forwarding di d/g’s (semplificato rispetto a IPv4) – header modificato consente di supportare QoS – Nuovo indirizzo anycast • Specifica “entità topologiche” anzichè nodi – p.e.: • •

indirizzo anycast assegnato a gruppo di i/f’s d/g’s con dst=anycast inviati all’i/f “più vicina”, dove “più vicino” è determinato dai protocolli di routing

Reti di Calcolatori (Fabio Panzieri)

328

164

Università di Bologna - Corso di Laurea in Informatica

IPv6 •

Caratteristiche generali – – – – – – –



Indirizzi “classless” di 128-bit Multicasting Servizi real-time Supporto per autenticazione e sicurezza Supporto per autoconfigurazione Frammentazione Estensioni del protocollo

Header – –

40-byte di header di “base” Headers di estensione per • • • •

frammentazione source routing Autenticazione e sicurezza Altre opzioni

trasportati come payload

Reti di Calcolatori (Fabio Panzieri)

329

Università di Bologna - Corso di Laurea in Informatica

IPv6 Header (Cont) • Ver: V6 • Priority (o traffic class): priorità di d/g in un flusso • Flow Label: identifica d/g’s nello stesso flusso • N.B.: priority e flow label per QoS • Payload len: lunghezza in B di data • Next header: • chiave di demux (TCP, UDP)

• codice 44: hdr di estensione per frammentazione in “data” • codice 6: hdr TCP in “data” • Codice 51: header di autenticazione in “data”

• Hop limit: come TTL in IPv4 • Source/destination addresses:

• campo indirizzi di 16 B ciascuno

Reti di Calcolatori (Fabio Panzieri)

330

165

Università di Bologna - Corso di Laurea in Informatica

Altri cambiamenti da IPv4 • Checksum: rimosso per ridurre overhead di processing • Options: consentite, fuori dell’ header, indicate in “Next Header” – P.e., indirizzo anycast specificato in estensione di header per routing

• ICMPv6: nuova versione di ICMP – Ulteriori tipi di messaggi, e.g. “Packet Too Big” – Funzioni di management id gruppi multicast

Reti di Calcolatori (Fabio Panzieri)

331

Università di Bologna - Corso di Laurea in Informatica

Transizione da IPv4 a IPv6 • Routers non possono essere aggiornati simultaneamente in tutta Internet – impossibile riservare un giorno in cui si passa da IPv4 a IPv6 in tutta Internet

• Come far lavorare contemporaneamente? • 2 approcci proposti:

i

routers

con

IPv4

e

IPv6

– Dual Stack: alcuni routers con doppia pila di protocolli (v6, v4) “traducono” da un formato all’altro – Tunneling: IPv6 trasportato come payload in datagram IPv4 datagram fra routers IPv4 Reti di Calcolatori (Fabio Panzieri)

332

166

Università di Bologna - Corso di Laurea in Informatica

Approccio Dual Stack

• A e F, anche se nodi IPv6, si scambiano pacchetti IPv4 – Nella traduzione, campi specifici corrispondenti IPv4, vanno persi.

IPv6

non mappabili in campi

Reti di Calcolatori (Fabio Panzieri)

333

Università di Bologna - Corso di Laurea in Informatica

Tunneling

IPv6 inside IPv4 where needed

D to E IPv4 (encapsulating IPv6) Reti di Calcolatori (Fabio Panzieri)

334

167

Università di Bologna - Corso di Laurea in Informatica

Ulteriore utilizzo di tunnel IP •

Tecnica di realizzazione di reti private virtuali



Routers connessi da VC

• •

VC creato c/o router src fornendo indirizzo IP di router dst Router src incapsula datagram IP in ingresso in datagram IP con src = router_src e dst = router_dst Router dst

– i.e., basate su reti pubbliche – i.e., n. arbitrario di reti può separarli



– riconosce proprio indirizzo IP in datagram – esamina payload e estrae datagram IP da datagram IP ricevuto – legge campo dst – invia a dst



N.B.: routers lungo il cammino tra router src e router dst trattano il datagram “capsula” come datagram IP standard

Reti di Calcolatori (Fabio Panzieri)

335

Università di Bologna - Corso di Laurea in Informatica

IP Tunneling: esempio Rete privata

Net 1

Rete privata

R1

R2

tunnel

10.0.0.1

IP hdr: DST := 2.x IP payload

IP hdr: DST:= 10.0.0.1 IP hdr: DST = 2.x IP payload

Tabella di routing in R1 NetworkNum 1 2 default

Internetwork

NextHop I/F 0 I/F virtuale 0 I/F 1

Reti di Calcolatori (Fabio Panzieri)

Net 2

IP hdr: DST := 2.x IP payload

Payload di IP d/g da R1 a R2

Configurazione tabella di routing in R1: I/F 0: connette a Net 1 I/F 1: default (i.e., connette a reti ≠ Net 1) I/F virtuale 0: connette a tunnel (i.e. R2) R1 trasmette datagram per Net2 a R2 via I/F virtuale 0 –

incapsulato in d/g IP (Dst = R2_addr = 10.0.0.1) •

R2_netnum = 10 ≠ 1 e da 2

=>

d/g trasmesso via I/F di default

336

168

Università di Bologna - Corso di Laurea in Informatica

Tunneling •

Vantaggi –

Implementazione di politiche di sicurezza



Specializzazione dei routers

• •



possono supportare funzionalità specifiche, solo nei tunnel – p.e., rete privata virtuale con multicasting

Utilizzo di protocolli non standard nella rete privata virtuale ⇒



Tunnel può trasportare traffico crittografato

Routers alle estremità dei tunnel possono gestire protocolli non standard

Svantaggi – – –

Aumento delle dimensioni dei d/g’s Routers possono soffrire di degrado prestazionale (p.e. causa conversione protocolli) Costi di management dei tunnel (setting-up, verifiche di correttezza del routing)

Reti di Calcolatori (Fabio Panzieri)

337

Università di Bologna - Corso di Laurea in Informatica

Livello di Trasporto •

Livello Network fornisce scambio messaggi host-to-host – in Internet: servizio ‘best effort’ fornito da IP • Scarta pacchetti • Scambia ordine • Consegna duplicati • Limita dimensione • Consegna con ritardo arbitrario



Livello Trasporto fornisce servizio scambio di messaggi process-to-process (o “end-to-end” ), i.e. da applicazione ad applicazione – In Internet • UDP (User Datagram Protocol): servizio “best effort” processo-processo • TCP (Transmission Control Protocol): servizio di consegna affidabile di flusso di bytes ordinato processo-processo

– In Unix: servizi accessibili via libreria “socket”

Reti di Calcolatori (Fabio Panzieri)

338

169

Università di Bologna - Corso di Laurea in Informatica

Livello di Trasporto: UDP/TCP • UDP aggiunge “indirizzamento di processo” a IP – i.e. pacchetti trasmessi/ricevuti a/da processi in elaboratori ospiti

• TCP copre gap fra requisiti applicativi e servizi del livello rete i.e., TCP: – Garantisce consegna messaggi/pacchetti – Mantiene ordine di trasmissione – Consegna al più una copia – Abilita trasmissione/ricezione di messaggi di lunghezza arbitraria – Consente al ricevente di regolare il flusso

• Ulteriori requisiti applicativi soddisfatti a livelli superiori (p.e. autenticazione)

Reti di Calcolatori (Fabio Panzieri)

339

Università di Bologna - Corso di Laurea in Informatica

UDP • • •

Servizio “best effort” – Trasmissione/ricezione di datagrams non affidabile, non ordinata Aggiunge demultiplexing a IP Sorgente e destinazione identificati da “port#”: srcPort, dstPort – Coppia identifica univocamente processo applicativo – Servers utilizzano porte well-known; •





eg: server DNS su qualunque ospite è a porta no. 53, talk a porta no. 517 (cf. /etc/services in Unix)

Checksum – pseudo header + udp header + data • pseudo header: campi length, src, dst in IP hdr • attualmente opzionale, obligatorio con IPV6

0

16 SrcPort

31 DstPort

Checksum

Length Dati

UDP header

Length: lunghezza in bytes di d/g UDP, incluso hdr UDP

Reti di Calcolatori (Fabio Panzieri)

340

170

Università di Bologna - Corso di Laurea in Informatica

Demultiplexing in UDP • d/g: unità dati scambiata fra entità a livello UDP dst

P3

Dati di applicazione

M

M

Ht M Hn d/g

M

P4

application transport network

P1 src

d/g header

Demultiplexing: consegna dei d/g’s ricevuti ai processi applicativi destinazione

application transport network

M

P2 src

application transport network

Reti di Calcolatori (Fabio Panzieri)

341

Università di Bologna - Corso di Laurea in Informatica

Multiplexing/demultiplexing: esempi host A

src port: x dst port: 23

server B

src port:23 dst port: x

Source IP: C Dest IP: B source port: y dest. port: 53

Uso di port#: telnet

Client host A Reti di Calcolatori (Fabio Panzieri)

Client host C

Source IP: A Dest IP: B source port: x dest. port: 53

Source IP: C Dest IP: B source port: x dest. port: 53

DNS server B Uso di port#: DNS server 342

171

Università di Bologna - Corso di Laurea in Informatica

UDP • Implementazione di astrazione di porta può differire da OS a OS – in genere • Porta implementata come coda di messaggi • Coda messaggi mantenuta in spazio utente • Gestione/assegnazione porte effettuata da kernel di OS

• Ricezione di messaggi – UDP accoda msg a porta (coda) in esso specificata if coda piena then scarta messaggio – Processo in ricezione su porta: • rimuove messaggio in testa alla coda if coda vuota then blocca finché msg ricevuto

Reti di Calcolatori (Fabio Panzieri)

343

Università di Bologna - Corso di Laurea in Informatica

UDP: osservazioni • Non fornisce controllo di flusso che indica a src di ridurre rate di trasmissione • Non implementa trasmissione/consegna affidabile/ordinata di datagrams (solo “best effort”) • Implementa individuazione di errori via checksum • A che serve? – Streaming di oggetti multimediali tolleranti perdite di d/g’s e sensibili a tasso di trasferimento dati (p.e. telefonia via Internet) – DNS – Simple Network Management Protocol (SNMP) • Monitoring di routers e hosts

• Trasferimento dati affidabile utilizzando UDP? – aggiungere affidabilità a livello applicativo • tecniche di error recovery “ad hoc” per l’applicazione

Reti di Calcolatori (Fabio Panzieri)

344

172

Università di Bologna - Corso di Laurea in Informatica

TCP

• Flusso di bytes ordinato, affidabile, connection-oriented – Processo src scrive no. arbitrario di bytes (flusso/stream) su connessione – TCP (xmit) frammenta in segmenti, e invia ogni segmento via IP – TCP (rcv) riceve e riassembla segmenti, e effettua delivery a processo dst

– Processo dst legge flusso di bytes da connessione Application process

Application process





Write bytes

TCP Send buffer

Read bytes

TCP Receive buffer

Segment

Segment



Segment

Transmit segments



Full duplex (per semplicità, figura mostra half duplex)

• •

Controllo di flusso: impedisce che src sovraccarichi dst Controllo di congestione: impedisce che src’s sovraccarichino rete

(i.e., i routers)

Reti di Calcolatori (Fabio Panzieri)

345

Università di Bologna - Corso di Laurea in Informatica

Segmenti TCP • Pacchetti TCP: segmenti – ognuno trasporta un segmento del flusso di bytes – max. seg. size (MSS) uguale a max. trasfer unit (MTU) supportata da rete direttamente connessa (meno overhead di headers IP e TCP) – TCP invia segmento quando: • MSS bytes sono disponibili, oppure • applicazione forza trasmissione invocando operazione di push su TCP; • timer periodicamente forza TCP a trasmettere segmento non vuoto, anche se non completamente pieno.

Reti di Calcolatori (Fabio Panzieri)

346

173

Università di Bologna - Corso di Laurea in Informatica

Formato Segmenti TCP Quadrupla

0

<src_IP_addr, srcPort;

10

4

16

31

SrcPort

dst_IP_addr, dstPort> identifica univocamente connessione fra due processi Poiché connessioni sono stabilite e rilasciate, numeri di porta riutilizzabili in tempi diversi per identificare connessioni diverse.

DstPort SequenceNum Acknowledgment

HdrLen

0

Flags

AdvertisedWindow

Checksum

UrgPtr Options (variable) Data

Reti di Calcolatori (Fabio Panzieri)

347

Università di Bologna - Corso di Laurea in Informatica

Segmenti TCP • Acknowledgment,SequenceNum,AdvertisedWindow: usati per controllo di flusso • SequenceNum contiene seq. no. del primo byte di dati nel segmento (ogni byte ha un seq.no.)

– Acknowledgment e AdvertisedWindow contengono info. su flusso di dati nell’altra direzione (in fig., flusso in un’unica direzione) Dati (SequenceNum)

Sender

Receiver Acknowledgment + AdvertisedWindow

Flags: SYN, FIN, RESET, PUSH, URG, ACK SYN per stabilire, FIN per chiudere connessione ACK: se settato indica che il campo acknowledgment è valido RESET: ricevente vuole chiudere connessione (condizione anormale individuata) PUSH: src ha invocato push; TCP deve notificare ricevente URG: segmento contiene “urgent data” (in testa); UrgPtr punta ai dati non urgenti Reti di Calcolatori (Fabio Panzieri)

348

174

Università di Bologna - Corso di Laurea in Informatica

Attivazione connessione “Three way handshake” • •

• •

• • • •

Processo server: ‘passive open’, in ricezione (p.e., su porta “well-known”) Processo client: inizia connessione con ‘active open’: – invia segmento SYN, con seq.no. iniziale • Flags = SYN, SequenceNum = x Se “Server not listening”: – TCP ritorna segmento RESET altrimenti, server risponde con ack – Flags = ACK, Ack = x+1 – server SN (Flags = SYN, SequenceNum = y). Infine, client risponde: (Flags = ACK, Ack = y+1). Campo ack identifica prossimo SN atteso da destinatario (client o server) e conferma SNs precedenti. SN iniziali scelti a caso per ridurre la possibilità che connessione accetti SNs di connessioni precedenti , e ora chiuse, utilizzanti la stessa porta. Timers usati per ritransmissioni (non mostrati in figura)

Server

Client Flags

= SY N, S equen

ceNu

en Sequ

K, N.AC = SY s g + 1 Fla = x Ack Flags

= AC K,

m = x

ceNu

m=y

,

Ack = y+1

Reti di Calcolatori (Fabio Panzieri)

349

Università di Bologna - Corso di Laurea in Informatica

Rilascio di connessione •

Ogni connessione è full duplex – Ogni processo agli estremi della connessione può rilasciare la sua parte di connessione ( “simplex”) indipendentemente.



Per rilasciare connessione, – ogni partecipante invia segmento FIN • p.e., A invia FIN a B • quando questo è confermato (ack’ed) da B, A chiude la sua connessione e attende FIN da B; • quando A riceve FIN da B, A invia un ACK, attende per periodo “time-wait”, e chiude – “time-wait”: doppio del massimo TTL di un datagram IP (120 secs). – motivazione: se ACK da A va perso e B invia un altro FIN, si vuole evitare che venga ricevuto da una nuova connessione e interpretato erroneamente. • B chiude dopo “time-wait”, se non riceve ACK da A.

Reti di Calcolatori (Fabio Panzieri)

350

175

Università di Bologna - Corso di Laurea in Informatica 2. Client effettua active open e entra in SYN_SENT

Connect/Disconnect: Diagramma di transizione degli stati

CLOSED Active open /SYN

1.

Server effettua passive open e entra in “listen”

Passive open

Close

connect

Close LISTEN

3. Server riceve SYN, genera SYN+ACK, entra stato SYN_RCVD

Send/ SYN SYN/SYN + ACK

ACK

Close/FIN

SYN_SENT

SYN + ACK/ACK

ESTABLISHED Close /FIN

4. Client riceve SYN+ACK, invia ACK, entra stato entra stato ESTABLISHED FIN/ACK

FIN_WAIT_1 ACK FIN_WAIT_2

CLOSE_WAIT

AC FIN/ACK K + FI N /A CK FIN/ACK

Close/FIN CLOSING

LAST_ACK

ACK Timeout after two segment lifetimes TIME_WAIT

disconnect

N.B. In 4, se ACK di client perso => client in ESTABLISHED => client invia dati con ACK settato + campo Acknowledgement corretto => server entra in ESTABLISHED al primo segmento ricevuto

SYN/SYN + ACK SYN_RCVD

ACK CLOSED

Reti di Calcolatori (Fabio Panzieri)

351

Università di Bologna - Corso di Laurea in Informatica

Controllo di flusso in TCP • Implementa “sliding window” – Garantisce consegna affidabile dei messaggi – Garantisce ordinamento (i.e. consegna nello stesso ordine trasmissione) – Impone controllo di flusso (i.e. mittente non sovraccarica dst)

di

• Inoltre in TCP – Dst informa dinamicamente src di dimensione “window” utilizzando campo “advertized_window” nell’header di segmento TCP => src non può avere mai più di “advertized_window” bytes non confermati

– Dst dimensiona buffer di ricezione ad “advertized_window” bytes dipendentemente da memoria disponibile – Src può inviare esclusivamente “advertized_window” Reti di Calcolatori (Fabio Panzieri)

un no. max

di

bytes pari

a

352

176

Università di Bologna - Corso di Laurea in Informatica

Sliding window: TCP vs.Data Link Livello Data Link – protocollo esegue su configurazione fissa di nodi • link singolo che connette due computers (src e dst) direttamente

Livello di Trasporto – src e dst dovunque in Internet – necessità di stabilire e rilasciare esplicitamente connessione

Livello Data Link – RTT fisso per data configurazione

Livello di trasporto – RTT variabile • i due processi possono essere arbitrariamente vicini (stessa LAN), o lontani (in continenti distinti, connessi da molteplicità di reti) • richiede meccanismo di timeout adattivo per scopi di ritrasmissione • gestione conseguenze dovute a ritardi; in particolare, consegna di pacchetti “vecchi” (non si verifica a livello data link). Reti di Calcolatori (Fabio Panzieri)

353

Università di Bologna - Corso di Laurea in Informatica

Sliding window: TCP vs.Data Link Livello data link – protocollo esegue con window size prefissata – src e dst configurati con sufficiente spazio buffer

Livello di trasporto – host può avere in esecuzione molteplicità di applicazioni che mantengon o connessioni TCP => dimensioni buffer variabili.

Livello data link – capacità (bandwidth) link nota, quindi src può decidere max data rate di trasmissione.

Livello di trasporto – molteplicità di links con differenti capacità possono essere utilizzati in singola connessione – link a bassa bandwidth può essere congestionato – TCP deve poter gestire congestione di rete

Reti di Calcolatori (Fabio Panzieri)

354

177

Università di Bologna - Corso di Laurea in Informatica

Ordinamento segmenti in TCP •

TCP mantiene buffers mittente e ricevente – Buffer mittente contiene: (i) dati trasmessi ma non ack’ed, (ii) dati scritti da applicazione in buffer TCP, ma non ancora trasmessi

– Buffer ricevente contiene: (i) dati ricevuti, possibilmente non in sequenza (ii) dati ricevuti in sequenza, ma non ancora letti da applicazione

– Puntatori ai buffers = SNs dei singoli bytes (per semplicità)

Sending application

Receiving application

TCP

TCP

LastByteWritten

LastByteRead

Buffer mittente

Buffer ricevente LastByteAcked

LastByteSent

NextByteExpected

LastByteRcvd

Reti di Calcolatori (Fabio Panzieri)

355

Università di Bologna - Corso di Laurea in Informatica

Ordinamento segmenti in TCP: invarianti •

Mittente mantiene 3 puntatori (SNs): – LastByteAcked, LastByteSent, LastByteWritten M.1 LastByteSent ≥ LastByteAcked – SN di ultimo byte trasmesso ≥ SN ultimo byte ack’ed

M.2 LastByteSent ≤ LastByteWritten – SN di ultimo byte trasmesso ≤ SN di ultimo byte scritto da applicazione in buffer TCP

– Bytes compresi tra LastByteAcked e LastByteWritten devono essere mantenuti in buffer mittente



Ricevente mantiene 3 puntatori (SNs): – LastByteRead, NextByteExpected, LastByteRcvd R.1 LastByteRead < NextByteExpected •

Applicazione non può leggere un byte prima di averlo ricevuto e prima di aver ricevuto tutti i precedenti a quello • NextByteExpected = SN di primo byte che soddisfa questo criterio

R.2 NextByteExpected ≤ LastByteRcvd + 1 •

a causa di possibile consegna non ordinata: – se in ordine allora NextByteExpected = SN successivo – se non in ordine allora NextByteExpected = SN di inizio gap (per R.1)

– Bytes compresi tra LastByteRead e LastByteRcvd devono essere mantenuti in buffer ricevente

Reti di Calcolatori (Fabio Panzieri)

356

178

Università di Bologna - Corso di Laurea in Informatica

Controllo di flusso in TCP: invarianti • Assumiamo: – dimensione buffer mittente: MaxSendBuffer – dimensione buffer ricevente: MaxRcvBuffer

• Ricevente deve garantire R.1 LastByteRcvd - LastByteRead ≤ MaxRcvBuffer (per evitare buffer overflow) ⇒ R.2 AdvertisedWindow = MaxRcvBuffer - (LastByteRcvd LastByteRead) i.e. spazio libero in buffer ricevente

• N.B. – LastByteRead avanza quando il ricevente legge dati, liberando spazio nel buffer; se ricevente lento, allora AdvertisedWindow si riduce e può calare a 0 – Se AdvertisedWindow = 0, mittente sospende trasmissione Reti di Calcolatori (Fabio Panzieri)

357

Università di Bologna - Corso di Laurea in Informatica

Controllo di flusso in TCP •

Mittente LastByteSent - LastByteAcked indica i bytes inviati e non ancora ack’ed => mittente deve garantire che, ad ogni istante: LastByteSent - LastByteAcked ≤ AdvertisedWindow del ricevente Perciò, mittente mantiene EffectiveWindow (max. dati che può inviare) EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)

– EffectiveWindow deve essere > 0 perché possa inviare dati

N.B. :

EffectiveWindow usata per abilitare/inibire trasmissione.

E.g.: • Mittente riceve ACK di x bytes • incrementa LastByteAcked = LastByteAcked + x • Ricevente non ha consumato/letto dati • Annuncia AdvertisedWindow di x bytes più piccola • Mittente può liberare spazio in buffer di trasmissione ma non può trasmettere

Reti di Calcolatori (Fabio Panzieri)

358

179

Università di Bologna - Corso di Laurea in Informatica

Controllo di flusso in TCP • Mittente Prevenzione di overflow del buffer di mittente LastByteWritten - LastByteAcked ≤ MaxSendBuffer – Applicazione mittente può riempire buffer TCP mittente solo se in questo c’è spazio. Se l’applicazione vuole scrivere y bites, sarà bloccata se: (LastByteWritten - LastByteAcked) + y > MaxSendBuffer

• Se AdvertisedWindow = 0, mittente blocca, in attesa di AdvertisedWindow > 0. – Per sbloccarlo, TCP mittente invia segmento con unico byte di dati, occasionalmente. Ack del ricevente indica dimensione corrente della AdvertisedWindow. Assumendo che applicazione ricevente legga/consumi dati da buffer TCP (window), prima o poi AdvertisedWindow > 0.

Reti di Calcolatori (Fabio Panzieri)

359

Università di Bologna - Corso di Laurea in Informatica

Controllo di flusso in TCP: esempio Receiver buffer = 4K (comunicato a sender durante “connect”) Sender

Receiver 4KB RCV buffer = ø

1. Write 2KB 2KB dati SN = 0

2KB data

ø

ACK = 2048 WS = 2KB /* NextByteExpected */ 2. Write 3KB

/* WS = 2048 => sender frammenta dati in 2 segmenti */

/* 1º segmento */

2KB dati SN = 2048 ACK = 4096

/* Sender bloccato da WS = 0 */

WS = 0

BUFFER

SATURO

/* Receiver legge 2KB dati */ ø

dati non letti

ACK = 4096 WS = 2KB

/* Sender può inviare fino a 2KB */ 3. Write 1KB

1KB dati SN = 4096 ACK = 5120

Reti di Calcolatori (Fabio Panzieri)

1KB dati

ø dati non letti

WS = 1KB 360

180

Università di Bologna - Corso di Laurea in Informatica

Sliding Window: osservazioni • Consente di massimizzare l’uso del link, a condizione che la window sia sufficientemente ampia • Throughput = ~ (n/RTT) – n: numero di pkts trasmessi e non ack’ed – in fig.: n = 9 pacchetti in un RTT invece di 1

tempo Reti di Calcolatori (Fabio Panzieri)

361

Università di Bologna - Corso di Laurea in Informatica

Sliding Window: osservazioni • Mittente – deve mantenere tutti i pacchetti non ack’ed in buffer perchè possono dover essere ritrasmessi

• Ricevente – può accettare pacchetti fuori ordine, ma solo entro i limiti delle dimensioni della finestra di ricezione

• Mittente: – deve attivare timer per richiedere ritrasmissione di segmento, se ACK non ricevuto in un certo intervallo di tempo (time-out).

• DURATA DEL TIME-OUT ?

Reti di Calcolatori (Fabio Panzieri)

362

181

Università di Bologna - Corso di Laurea in Informatica

Time-out 1

Timeout

RTT

RTT

1 1

Timeout 1

Timeout troppo lungo inefficienza

Timeout troppo breve pacchetti duplicati

Reti di Calcolatori (Fabio Panzieri)

363

Università di Bologna - Corso di Laurea in Informatica

Time-out adattivo in TCP • TCP usa meccanismo “adattivo”: – – – =>

in generale, durata del time-out ≈ RTT tra src <-> dst noto in LANs (in generale), ignoto in multi-hop WANs deve essere utilizzabile in entrambi i contesti protocollo deve adattarsi alle caratteristiche del path tra src e dst

• Schema in uso oggi definito dopo sperimentazioni attraverso gli anni • Nel seguito – Schema originale – Schema modificato, in uso oggi

Reti di Calcolatori (Fabio Panzieri)

364

182

Università di Bologna - Corso di Laurea in Informatica

Timeout adattivo in TCP: schema originale 1. Misura SampleRTT per ogni coppia segment/ACK 2. Calcola media pesata di RTT EstimatedRTT = α x EstimatedRTT + (1 − α) x SampleRTT dove 0.8 ≤ α ≤ 0.9 –

EstimatedRTT: combinazione pesata del suo valore con il valore attualmente misurato di SampleRTT

3. Setta timeout sulla base di EstimatedRTT TimeOut = 2 x EstimatedRTT



Schema insoddisfacente – non tiene conto della varianza del RTT • RTT può variare da segmento a segmento a causa di carico/congestione nei routers, carico variabile agli hosts, …

– Varianza piccola fra campioni di RTT => EstimatedRTT può essere credibile e non ci dovrebbe essere bisogno di moltiplicarlo per 2 – Varianza ampia => valore di TimeOut non dovrebbe essere influenzato troppo da EstimatedRTT

Reti di Calcolatori (Fabio Panzieri)

365

Università di Bologna - Corso di Laurea in Informatica

Timeout adattivo in TCP: schema modificato •

Principio: time out deve essere settato in modo tale che solo raramente termini troppo presto  TimeOut > EstimatedRTT  TimeOut = EstimatedRTT + Difference dove Difference è una quantità che cattura quanto SampleRTT si discosta da EstimatedRTT (detta “deviazione media”)



Nuovo calcolo di EstimatedRTT tiene conto di variazione media del ritardo: EstimatedRTT = EstimatedRTT + (δ x Difference)/* RTT medio */

• i.e.: Difference = SampleRTT - EstimatedRTT







Calcola deviazione da RTT medio: Deviation = Deviation + δ(|Difference|- Deviation), 0 ≤ δ ≤ 1

Valore di time out settato sulla base di RTT stimato e deviazione da questo: TimeOut = µ x EstimatedRTT + φ x Deviation (i valori µ = 1, φ = 4 sono risultati soddisfacenti). Quindi: Deviation piccola => valore di TimeOut vicino a EstimatedRTT Deviation grande => valore di TimeOut dominato da varianza in RTT

Reti di Calcolatori (Fabio Panzieri)

366

183

Università di Bologna - Corso di Laurea in Informatica

Controllo di Congestione Ciò che sappiamo: • come instradare pacchetti da src a dst • come trasmetterli in modo “affidabile” (i.e., ordinati, individuando eventuali perdite, ...) Cio’ che non sappiamo: • a che velocità una src può trasmettere senza intasare la rete?

Reti di Calcolatori (Fabio Panzieri)

367

Università di Bologna - Corso di Laurea in Informatica

Problemi • Trasmissione troppo lenta – link sotto-utilizzato – inutili ritardi

• Trasmissione troppo veloce – link utilizzato a pieno ma ... • si possono formare code nei buffers dei router – => ritardi • overflow nei buffers dei router – => pkts scartati

Reti di Calcolatori (Fabio Panzieri)

368

184

Università di Bologna - Corso di Laurea in Informatica

In astratto

A

B

Src Host

Buffer in Router



Assumiamo router consistent di:



Tre problemi di congestione

– – – –

Dst Host

singola coda per ogni coppia di input - output singolo flusso deve adattarsi a collo di bottiglia causato da banda ad ampiezza fissa singolo flusso deve adattarsi a collo di bottiglia causato da banda ad ampiezza variabile flusso multipli devono condividere banda

Reti di Calcolatori (Fabio Panzieri)

369

Università di Bologna - Corso di Laurea in Informatica

Flusso singolo, banda fissa

A

100 Mbps

B

• Richiede di adattare DTR all’ampiezza di banda disponibile – non banale, senza saperlo a priori – potrebbe essere un link con capacità in Gb, o un moden con capacità in Kb

Reti di Calcolatori (Fabio Panzieri)

370

185

Università di Bologna - Corso di Laurea in Informatica

Flusso singolo, banda variabile

BW(t)

A

B

• Richiede di adattare DTR istantaneamente a variazioni di banda

Reti di Calcolatori (Fabio Panzieri)

371

Università di Bologna - Corso di Laurea in Informatica

Flussi multipli Due problemi • Adattare DTR totale (i.e., traffico “aggregato”) a sfruttare al meglio la Banda totale disponibile • Allocare la banda fra flussi distinti “equamente”

A1 A2 A3 Reti di Calcolatori (Fabio Panzieri)

B1 100 Mbps

B2 B3 372

186

Università di Bologna - Corso di Laurea in Informatica

In pratica • Controllo di congestione: problema di allocazione di risorse che coinvolge molteplicità di flussi, attraverso molteplicità di links e routers

Reti di Calcolatori (Fabio Panzieri)

373

Università di Bologna - Corso di Laurea in Informatica

Controllo di congestione •

Problema (in generale): – allocazione “equa” di risorse a utenti in competizione per accedervi • risorse: ampiezza di banda, memoria dei router • utenti: pacchetti in competizione per l’accesso ad un link



Origine del problema: – Internetwork • src e dst connessi da link con differenti velocità di trasmissione

– Store-and-forward • Pacchetti ricevuti ai routers mantenuti in code, in attesa di trasmissione • Code possono andare in overflow e pacchetti essere scartati • => CONGESTIONE



Soluzione: meccanismi di controllo di congestione – implementano politiche di gestione di code nei routers – limitano la velocità di trasmissione degli host src

Reti di Calcolatori (Fabio Panzieri)

374

187

Università di Bologna - Corso di Laurea in Informatica

Approcci alla soluzione • Prevenzione – pre-allocare risorse in modo da evitare congestione => ruolo attivo della rete nell’allocare risorse P.e.: scheduling di VC su link fisico in particolare intervallo di tempo

+ Consente di evitare congestione • rende meccanismi di controllo di congestione non necessari

- Complesso - richiede “negoziazione” di risorse prima dell’uso

- Sotto-utilizzazione di risorse

• Ottimistico (senza prenotazione) – non pre-allocare risorse e controllare congestione se e quando si verifica • consente a qualunque src di trasmettere n. arbitrario di pacchetti • se si verifica congestione, abilita ritrasmissione

Reti di Calcolatori (Fabio Panzieri)

375

Università di Bologna - Corso di Laurea in Informatica

Approcci alla soluzione • Tariffario – scarta prima pacchetti di chi “paga meno” (i.e., offerta di servizi differenziati) – richiede modello tariffario

• Adattamento dinamico – mantiene controllo del livello di congestione della rete – aumenta traffico a rete scarica – riduce traffico a rete carica

• Tutte e 4 le tecniche possono avere senso (in contesti diversi) – in Internet si usa “adattamento dinamico” • a causa di caratteristiche di traffico, assenza di tariffe, ... Reti di Calcolatori (Fabio Panzieri)

376

188

Università di Bologna - Corso di Laurea in Informatica

Allocazione di risorse e controllo di congestione • Allocazione di risorse: componenti di rete cercano di soddisfare requisiti applicativi per risorse di rete – Host usano protocolli di “signaling” per esprimere requisiti di risorse – Routers/host intermedi rispondono relativamente alla disponibilità delle risorse richieste

• Controllo di congestione: componenti di rete prevengono, o reagiscono a, condizioni di sovraccarico delle risorse di rete – può utilizzare meccanismi di allocazione di risorse

• Implementazione: parte nei routers, parte negli hosts (livello di trasporto) • Controllo di flusso (CdF) vs. Controllo di congestione (CdC) – CdF: impedisce che src veloce sovraccarichi dst lento – CdC: controlla che insieme di src’s non sovraccarichino risorse di rete Reti di Calcolatori (Fabio Panzieri)

377

Università di Bologna - Corso di Laurea in Informatica

Allocazione di risorse: problemi •

Modello di rete a commutazione di pacchetto –

Link possono avere diverse capacità (cf. Fig.) ≠ – –

da reti ad accesso condiviso (shared access media (SAM), p.e. Ethernet, token ring) in SAM, src “osserva” traffico su rete e decide se trasmettere o no protocollo MAC effettua controllo di congestione

Source 10-M 1

bps

Ethe

rnet

Router 1.5-Mbps T1 link



Destination

I FDD

CdC e routing: CdC ps non implementabile mediante routing alternativo che evita router -Mb Source congestionato 100 2 – –

Possibilità di “bottleneck router” (cf. Fig.) => assenza di rotte alternative Complessità di routing in Internet => garantire rotta priva di cicli

Reti di Calcolatori (Fabio Panzieri)

378

189

Università di Bologna - Corso di Laurea in Informatica

Allocazione di risorse: problemi • Modello di rete: flussi “connectionless”

– Sequenza di pkts trasmessi fra coppie di src/dst

• pkts in un flusso seguono identico percorso attraverso la rete • Astrazione di flusso: visibile ai routers – Mantengono “soft state” per ogni flusso – “soft state” non richiede attivazione di connessione – non ha semantica end-to-end, i.e. non implica consegna ordinata dei pkts

≠ VC: astrazione end-to-end visibile agli host e non ai routers Perchè non mantenere VC attraverso routers (e.g., X.25)? • Sotto-utilizzazione di risorse

• VC setup riserva risorse nei routers; se non usato, risorse inutilizzate

Source 1 Router

Destination 1 Router

Source 2 Router

Destination 2

Molteplicità di flussi attraverso i routers

Source 3 Reti di Calcolatori (Fabio Panzieri)

379

Università di Bologna - Corso di Laurea in Informatica

Politiche di allocazione di risorse Classificazioni principali a) Router-centric vs. Host-centric b) Reservation-based vs. Feedback-based c) Window-based vs. Rate-based Router-centric vs. Host-centric • Router-centric: ogni router – –



Host-centric –



decide quali pacchetti trasmettere e quali scartare segnala a hosts tasso di trasferimento dati che possono generare End host osserva condizioni di rete (p.e., quanti pacchetti raggiungono dst), e regola traffico che genera

Non mutualmente esclusive – –

in router-centric: host devono rispettare messaggi di cntrl dai router in host-centric: routers devono implementare politiche di eliminazione pacchetti da code quando queste vanno in overflow

Reti di Calcolatori (Fabio Panzieri)

380

190

Università di Bologna - Corso di Laurea in Informatica

Politiche di allocazione di risorse Reservation-based vs. feedback-based • Reservation-based – – –



ogni host richiede a rete una certa “capacità” quando attiva un VC ogni router valuta disponibilità risorse e le alloca, se possibile se risorse non disponibili, router rigetta flusso

Feedback-based: – –

End-host invia dati e regola tasso di trasferimento sulla base del feedback che riceve Feedback implicito: • =>



Host regola tasso di trasfermento dati (DTR) sulla base del comportamento “osservabile” della rete (p.e., % pkts persi) host-centric (routers non prendono decisioni)

Feedback esplicito: • =>

Router congestionato invia messaggio a host di ridurre DTR router-centric, dato che il router è coinvolto

Reti di Calcolatori (Fabio Panzieri)

381

Università di Bologna - Corso di Laurea in Informatica

Politiche di allocazione di risorse Window-based vs. rate-based – Window-based: • Src “annuncia” la window_size, i.e. la quantità di buffer che richiede

– Rate-based: • Rete regola flusso da src segnalando quanti bps può trasmettere



In Internet attuale – Servizio “best-effort” => usare tecniche “feedback-based” • Utenti di Internet non possono “prenotare” risorse • CdC in end-host, usando meccanismi “window-based”



In Internet2 – DiffServ: meccanismi reservation-based – “reservation” espressa in “rate”, i.e. DTR in bps

Reti di Calcolatori (Fabio Panzieri)

382

191

Università di Bologna - Corso di Laurea in Informatica

Allocazione di risorse: metriche di valutazione • Efficacia del meccanismo

Throughput/delay

– Power (rapporto throughput/delay) – Obiettivo: massimizzare questo rapporto al variare del carico di rete

Optimal load

Load

• “Fairness”: indice di “equità” con cui vengono allocate risorse – ancora oggetto di ricerca

Reti di Calcolatori (Fabio Panzieri)

383

Università di Bologna - Corso di Laurea in Informatica

Politiche di gestione delle code: FIFO • Regolano bufferizzazione pkts in attesa di trasmissione e eventuale eliminazione • Allocano bandwidth e buffer – decisione relativa a quali pkts trasmettere e quali scartare

• First-In-First-Out (FIFO)

– Non discrimina fra src’s di traffico – Singola coda contiene pkt’s da varie src’s – Coda piena?

• tail drop policy: prossimo pacchetto indipendentemente dal flusso cui appartiene

ricevuto

viene

scartato

• FIFO con priorità – – – – –

Variazione di FIFO di base Ogni pacchetto marchiato da priorità (p.e., campo TOS in IP hdr) Routers mantengono code multiple con priorità diverse Servono prima code a priorità più alta Problema: “starvation” di code a priorità bassa

Reti di Calcolatori (Fabio Panzieri)

384

192

Università di Bologna - Corso di Laurea in Informatica

Politiche di gestione delle code: FQ • Fair Queuing (FQ)

– Mantiene coda separata per ogni flusso di traffico – Router serve code in round-robin – Se coda di un flusso raggiunge lunghezza max. prefissata

=> tail drop su pacchetti addizionali di quel flusso => FAIRNESS: ogni src non può acquisire maggior capacità di canale a scapito di altre src’s Flow 1

Flow 2 Round-robin service Flow 3

Flow 4

Reti di Calcolatori (Fabio Panzieri)

385

Università di Bologna - Corso di Laurea in Informatica

FQ: osservazioni • FQ

– si limita a gestire risorse (code) separando i flussi di traffico => src’s “dannose” (p.e. troppo veloci) non interferiscono con altre

– non informa src di stato del router, nè ne limita la velocità di trasmissione – richiede meccanismo di CdC end-to-end che regoli velocità di trasmissione dei flussi

• Implementazione

– Per scopi di fairness, deve tenere conto di lunghezza pkts

• P.e. router gestisce 2 flussi – Flusso A: pkts di 1000 B, Flusso B: pkts di 500 B – Servizio round-robin => flusso A ottiene 2/3 della bandwidth disponibile

– Soluzione: round-robin (RR) “bit a bit” • non pratica • FQ simula RR “bit a bit”

Reti di Calcolatori (Fabio Panzieri)

386

193

Università di Bologna - Corso di Laurea in Informatica

Algoritmo FQ •



Principio di funzionamento –

Determina istante di terminazione di trasmissione di pkt, se tramesso bit a bit



Usa timestamp ottenuto per sequenzializzare pacchetti

Caso di singolo flusso Assunzioni: 1.

Clock avanza di un “tick” ogni volta che un bit è trasmesso da flusso “attivo” (i.e., non vuoto)

2. Pi: lunghezza di pkt I, in bits 3. Si: istante di inizio trasmissione di pkt i 4. Fi: istante di fine trasmissione di pkt i (i.e., time stamp) => Fi = Si + Pi (a causa di condizione 1.)



Quando inizia la trasmissione di pkt i?

Reti di Calcolatori (Fabio Panzieri)

387

Università di Bologna - Corso di Laurea in Informatica

Calcolo del time stamp • Se pkt i ricevuto al router prima di fine trasmissione di pkt i-1 da medesimo flusso, allora – i può essere trasmesso immediatamente dopo ultimo bit di pkt i-1 (i.e. al tempo Fi-1) • coda relativa a flusso non vuota, RR trova bit da trasmettere

• Se i ricevuto al router dopo fine trasmissione di i-1 da medesimo flusso, allora – coda relativa a flusso rimasta temporaneamente vuota – RR non ha potuto trasmettere da questa coda per un certo tempo

• In conclusione – se Ai è l’istante di arrivo di pkt i, allora Si = MAX(Fi-1, Ai)

• Quindi: Fi = MAX (Fi-1, Ai) + Pi

Reti di Calcolatori (Fabio Panzieri)

388

194

Università di Bologna - Corso di Laurea in Informatica

Algoritmo FQ • Per flussi multipli – calcola Fi per ogni pacchetto che arriva in ogni flusso – tratta gli Fi’s come timestamp – dà priorità a pkt con timestamp più bassa

• Non perfetto: non effettua preemption di pacchetto in trasmissione (Fig. (b)) • Esempio Flow 1

F=8 F=5

Flow 2

Output

Flow 1 (arriving)

F = 10

Flow 2 (transmitting)

Output

F = 10 F=2 (a)

(b)

Reti di Calcolatori (Fabio Panzieri)

389

Università di Bologna - Corso di Laurea in Informatica

Controllo di congestione in TCP • Approccio in TCP

– inviare pkts in rete, senza prenotazione di risorse – reagire/adattarsi a eventi osservati

• Specificamente, TCP:

– assume rete best-effort (routers FIFO o FQ) – ogni src determina capacità di rete autonomamente • valuta n. di pkts che può mantenere in transito

– src usa ACK da dst come segnale che uno dei suoi pkt ha lasciato la rete (i.e., feedback implicito) • quindi, può trasmetterne un’altro

– ACKs abilitano e regolano trasmissione: TCP è self-clocking

• Difficoltà

– determinare la capacità di canale disponibile – adattarsi a variazioni di capacità di canale disponibile

• Combina tre meccanismi:

– AdditiveIncrease/MultiplicativeDecrease, Slow Start, Fast Retrasmit/ Fast Recovery

Reti di Calcolatori (Fabio Panzieri)

390

195

Università di Bologna - Corso di Laurea in Informatica

Additive Increase/Multiplicative Decrease (AIMD) • •

Obiettivo: adattarsi a variazioni di capacità del canale disponibile Mantiene ulteriore variabile di stato “CongestionWindow” per ogni connessione (simile a AdvertisedWindow per flow control) => N. max. di bytes non ack’ed che src ammette ricalcolato come: MaxWindow = MIN(CongestionWindow, AdvertisedWindow) e il n. max di bytes che src può inviare diviene: EffectiveWindow = MaxWindow - (LastByteSent - LastByteAcked) – limita n. di pkts che src può avere in transito – MaxWindow sostituisce AdvertisedWindow



Idea di base: – incrementare CongestionWindow quando congestione cala – decrementare CongestionWindow quando congestione aumenta

Reti di Calcolatori (Fabio Panzieri)

391

Università di Bologna - Corso di Laurea in Informatica

AIMD (segue) •

Individuazione di congestione di rete in TCP – src utilizza timeout – se timeout termina, allora pkt perso

Source

Destination

• pkts raramente persi in seguito a errori di trasmissione • pkts persi implicano congestione (scartati da qualche router)



Algoritmo



In pratica: incrementa CongestionWindow di “frazione” di MSS ogni volta riceve un ACK

– MSS: Max Segment Size che TCP può inviare senza che IP frammenti specificamente:



– incrementa CongestionWindow di 1 pkt per RTT (additive increase lineare) – divide CongestionWindow per 2 quando si verifica timeout (multiplicative decrease)

Increment = MSS * (MSS/CongestionWindow) CongestionWindow += Increment Reti di Calcolatori (Fabio Panzieri)

392

196

Università di Bologna - Corso di Laurea in Informatica

Slow Start • •

Obiettiv o : determinare rapidamente capacità del canale disponibile Principio: – –

Inizia con CongestionWindow = 1 pkt Raddoppia CongestionWindow ad ogni RTT



Se si verifica perdita “multiplicative decrease”



Utilizzo di Slow Start

Source

Destination

≠ “additive increase”: incrementa di 1 pkt per ogni RTT

di

pkt

(i.e.,

timeout),

applica

i.e. CongestionWindow = CongestionWindow/2 • •





in fase di attivazione di connessione quando connessione “bloccata” da pkt perso, e src sbloccata da time out quando src riceve ACK cumultativo che riapre intera “advertised window”

Reti di Calcolatori (Fabio Panzieri)

393

Università di Bologna - Corso di Laurea in Informatica

Fast Retransmit e Fast Recovery •

Sender

Problema – time out in TCP comportano che connessioni entrino in stato di “idle” per lunghi periodi



Fast Retransmit – usa ACKs duplicati per abilitare ritransmissioni prima della terminazione dei time out

Packet 2 Packet 3

ACK 1

Packet 4

ACK 2

Packet 5

ACK 2

Packet 6

– non elimina time out •

ACK 2

Principio di funzionamento – Pkt fuori ordine => TCP(rcv) non può inviare ACK finchè non arrivano pkts precedenti – TCP(rcv): ri-invia ultimo ACK trasmesso (duplicate ACK) – TCP(src): riceve duplicate ACK e sospetta perdita o ritardo di pkt trasmesso – Se TCP(src ) riceve ritrasmette pkt

Reti di Calcolatori (Fabio Panzieri)

Receiver

Packet 1

3

duplicate

ACK 2 Retransmit packet 3 ACK 6 (cumulativo di 4 e 5)

ACK , allora

394

197

Università di Bologna - Corso di Laurea in Informatica

Fast Recovery • Evita fase di slow-start quando Fast Retrasmit individua perdita di pkt • Riparte con CongestionWindow = CongestionWindow/2

e riavvia AIMD • In conclusione: – Slow start usato in fase di connection establishment – In altri casi, CongestionWindow gestita via AIMD

Reti di Calcolatori (Fabio Panzieri)

395

Università di Bologna - Corso di Laurea in Informatica

Nomi & Indirizzi in Internet • Nomi: e.g. maddalena.cs.unibo.it – identificatore mnemonico di risorsa (p.e., computer) • facile da ricordare per un essere umano • riflette struttura organizzativa

• Indirizzi: p.e., 130.136.5.6 – etichette utilizzabili convenientemente da programmi in esecuzione nei router – conformi alla struttura della rete

• Come avviene il mapping di uno nell’altro? – Domain Name System (DNS)

Reti di Calcolatori (Fabio Panzieri)

396

198

Università di Bologna - Corso di Laurea in Informatica

Esempio • Mailboxes User 1 [email protected]

2 cs.unibo.it Name server

Mail program 130.136.1.110

130.136.1.110 3

4

TCP 130.136.1.110

5

IP

Reti di Calcolatori (Fabio Panzieri)

397

Università di Bologna - Corso di Laurea in Informatica

DNS: Storia • Inizialmente: mapping host<->addess mantenuto nel file hosts.txt (in /etc/hosts di ogni host in rete) – “spazio dei nomi” non strutturato (i.e., flat) • spazio dei nomi: insieme dei nomi utilizzabili

– Amministratori di rete sceglievano nomi hosts a loro discrezione – Cambiamenti venivano comunicati a network Information Center (NIC) via email – Nuove versioni di hosts.txt trasmesse via ftp da NIC periodicamente

• Al crescere di Internet il sistema non funzionò più: – NIC non poteva sostenere il carico – Nomi non erano unici – Hosts avevano copie non coerenti di hosts.txt

• La crescita di Internet era messa a rischio – fu introdotto il Domain Name System (DNS)

Reti di Calcolatori (Fabio Panzieri)

398

199

Università di Bologna - Corso di Laurea in Informatica

DNS: Caratteristiche di Base • Spazio dei nomi gerarchico anzichè “flat” – aumenta scalabilità dello spazio di nomi

• Architettura distribuita, anzichè centralizzata – aumenta sia la scalabilità che le garanzie di continuità del servizio

• Interazione client-server via Porta UDP # 53 – ma può essere configurato ad usare TCP se richiesto

Reti di Calcolatori (Fabio Panzieri)

399

Università di Bologna - Corso di Laurea in Informatica

Gerarchia di nomi root

edu

berkeley

mil

org

net

uk

mit

sims

argus

Reti di Calcolatori (Fabio Panzieri)

it etc.

unibo •

eecs

gov

com

strutturata ad albero – –

• • •

nodi: radici di sotto-domini, foglie: hosts

deis

profondità dell’albero è arbitraria (max 128) domini: sottoalberi – P.e.: .it, unibo.it, cs.unibo.it unicità dei nomi limitata al singolo sotto-dominio – P.e. maddalena.cs.unibo e maddalena.deis.unibo coesistere

cs maddalena

possono

400

200

Università di Bologna - Corso di Laurea in Informatica

Nomi di hosts amministrati gerarchicamente root

edu

mit

berkeley eecs

gov

com

sims

mil

org

net

uk



zona: porzione della gerarchia di responsabilità di una particolare autorità amministrativa



zona eecs controla i nomi



zona berkeley controlla i nomi:

fr

x.eecs.berkeley.edu

x.berkeley.edu y.sims.berkeley.edu

argus

Reti di Calcolatori (Fabio Panzieri)

401

Università di Bologna - Corso di Laurea in Informatica

Gerarchia di Server • Ogni server ha autorità su una zona – ogni server mantiene solo un sottoinsieme di tutti i nomi

• Ogni server mantiene tutti i records per gli hosts della sua zona – può essere replicato per scopi di robustezza

• Ogni server conosce l’indirizzo di qualche altro server, responsabile di altre zone – Ogni server conosce l’indirizzo del server “radice” (controllato dal NIC) – Il server radice può indirizzare i domini di livello più alto

Reti di Calcolatori (Fabio Panzieri)

402

201

Università di Bologna - Corso di Laurea in Informatica

DNS Name Servers

• Locale: – Ogni ISP (compagnia) ha un name server locale di default – Host DNS query indirizzata a name server locale prima di altri

• “Authoritative”: – per un host: mantiene mapping per quell host – Può eseguire risoluzione del nome di quellhost nel suo indirizzo IP

Reti di Calcolatori (Fabio Panzieri)

403

Università di Bologna - Corso di Laurea in Informatica

DNS: Root Name Servers •

una dozzina di root name servers sparsi per il mondo



contattati da name server locali non in grado di risolvere un nome Root name server:



– contatta name server “authoritative” per quel nome, se non è in grado di risolverlo autonomamente – ottiene indirizzo IP – invia IP a name server locale

Reti di Calcolatori (Fabio Panzieri)

404

202

Università di Bologna - Corso di Laurea in Informatica

Strategie di risoluzione dei

• “forward” • iterativa • ricorsiva • Server locale – deve conoscere indirizzo di un root server (non ogni host)

Reti di Calcolatori (Fabio Panzieri)

405

Università di Bologna - Corso di Laurea in Informatica

Esempio di interrogazione “forward”

Host maddalena.cs.unibo.it richiede indirizzo IP di www.berkeley.edu

1. contatta DNS server locale, ns. ns.cs.unibo.it 2. ns.cs.unibo.it contatta root name server, se necessario 3. Root name server contatta “authoritative” name server, ns1.berkeley.edu, se necessario N.B.: se necessario = non è in grado di risolvere nome in indirizzo IP

root name server

2 5

4

name server locale authorititive name server ns.cs.unibo.it

1

ns1.berkeley.edu

6

host richiedente maddalena.cs.unibo.it Reti di Calcolatori (Fabio Panzieri)

3

www.berkeley.edu 406

203

Università di Bologna - Corso di Laurea in Informatica

Esempio di Interrogazione Ricorsiva root name server

Root name server: • •

può non conoscere name server “authoritative” può conoscere name server intermedio: chi contattare in caso non si conosca il name server “authoritative”

Interrogazione ricorsiva: •

impone carico della risoluzione del nome in indirizzo sul name server contattato



rischio di sovraccarico?

Alternativamente ...

2

6 7

3

local name server ns.cs.unibo.it 1

name server intermedio (edu server) 5 4

8

name server “authoritative” ns1.berkeley.edu

requesting host maddalena.cs.unibo.it

www.berkeley.edu Reti di Calcolatori (Fabio Panzieri)

407

Università di Bologna - Corso di Laurea in Informatica

Esempio di Interrogazione Iterativa root name server

Interrogazione Iterativa: •

nel caso server contattato non sia in grado di risolevere nome, invia al richiedente nome di server alternativo da contattare i.e.“non conosco questo nome, prova a chiedere a quest’altro server”

iterated query

2 3

4 5 name server intermedio (edu server)

name server locale ns.cs.unibo.it 1

8

host richiedente maddalena.cs.unibo.it

6

7

name server “authoritative” ns1.berkeley.edu

www.berkeley.edu Reti di Calcolatori (Fabio Panzieri)

408

204

Università di Bologna - Corso di Laurea in Informatica

DNS Records • Ogni DNS server mantiene records di 4 campi: • Type = A: name = nome host; value = indirizzo IP • Type = NS: name = dominio; value = nome di server DNS per quel dominio • Type = CNAME: name = hostname; value = nome canonico (alias) • Type = MX: name = dominio in indirizzo email; value = nome canonico di mail server • TTL: time to live associato a record Reti di Calcolatori (Fabio Panzieri)

409

Università di Bologna - Corso di Laurea in Informatica

dig cs.unibo.it ;; AUTHORITY SECTION: cs.unibo.it. cs.unibo.it. cs.unibo.it.

432000 432000 432000

IN IN IN

NS NS NS

leporello.cs.unibo.it. simon.cs.cornell.edu. dns2.nic.it.

;; ADDITIONAL SECTION: leporello.cs.unibo.it. simon.cs.cornell.edu. dns2.nic.it.

345600 27773 14500

IN IN IN

A A A

130.136.1.110 128.84.154.10 193.205.245.8

;; AUTHORITY SECTION: unibo.it. unibo.it. unibo.it.

86400 86400 86400

IN IN IN

NS NS NS

dns.cineca.it. dns2.cineca.it. almadns.unibo.it.

;; ADDITIONAL SECTION: dns.cineca.it. dns2.cineca.it. almadns.unibo.it.

364 364 432000

IN IN IN

A A A

130.186.1.53 130.186.1.9 137.204.1.15

dig unibo.it

Reti di Calcolatori (Fabio Panzieri)

410

205

Università di Bologna - Corso di Laurea in Informatica

dig it ;; AUTHORITY SECTION: nic.it. nic.it. nic.it. nic.it.

43252 43252 43252 43252

IN IN IN IN

NS NS NS NS

itgeo.mix-it.net. nameserver.cnr.it. dns.nic.it. dns2.nic.it.

;; ADDITIONAL SECTION: itgeo.mix-it.net. nameserver.cnr.it. dns.nic.it. dns.nic.it. dns2.nic.it.

2353 23854 7684 64136 13552

IN IN IN IN IN

A A AAAA A A

217.29.76.5 194.119.192.34 2001:760:600:1::5 193.205.245.5 193.205.245.8

Reti di Calcolatori (Fabio Panzieri)

411

Università di Bologna - Corso di Laurea in Informatica

DNS: servizio di ri-direzionamento • Consente di identificare hosts per nome, anzichè indirizzo – non solo comodo per esseri umani (facile da ricordare) – consente anche di cambiare indirizzo IP a hosts senza dover cambiare modo di identificarli (anche da programma)

• Consente di identificare host mediante “alias” – www.berkeley.edu può identificare un server Web generico – DNS risolve questo nome nell’indirizzo IP di un host particolare che può cambiare nel tempo

• Questa flessibilità vale solo all’interno del singolo dominio!

Reti di Calcolatori (Fabio Panzieri)

412

206

Università di Bologna - Corso di Laurea in Informatica

Osservazioni conclusive • Caching – aumenta prestazioni salvando risultati di precedenti ricerche in memoria cache • N.B.: TTL può causare problemi di sovraccarico in conseguenza della struttura gerarchica del DNS, e del caching

• Principio di delega amministrativa a singoli domini, e architettura distribuita: – riducono complessità nella generazione di nomi unici – inducono “condivisione della sorte” fra gli hosts all’interno del medesimo dominio in caso di guasti di rete

Reti di Calcolatori (Fabio Panzieri)

413

Università di Bologna - Corso di Laurea in Informatica

World Wide Web •

WWW: esempio di sistema Client-Server distribuito su larga scala – descrizione dell’architettura del WWW – analisi dei pro’s e con’s di questa architettura alla luce di quello che abbiamo studiato



Nota storica su Internet – DoD USA finanzia progetto di ricerca su reti a commutazione di pacchetto (PSN) agli inizi degli anni ‘70 (ARPAnet Project) – fine anni ‘70: PSNs di vari paesi interconnesse via routers e gateways (nasce Internet) – Internet Society (organizzazione internazionale) responsabile per assegnare “indirizzi di Internet” a computers che si connettono. Name servers (Domain Name Servers, DNSs) mappano “nomi” (stringhe di caratteri), e.g. leporello.cs.unibo.it, in “indirizzi di Internet”, e.g. 130.136.2.204.

Reti di Calcolatori (Fabio Panzieri)

414

207

Università di Bologna - Corso di Laurea in Informatica

Nota storica

• Tutti gli elaboratori ospiti in Internet utilizzano protocolli standard per scambio di informazione: – UDP: messaggio inviato senza ack da ricevente (servizio datagram) – TCP: trasmissione affidabile e consegna in sequenza di messaggi

• connessione stabilita fra src e dst , msgs trasmessi con ack da dst, terminazione di connessione.

• Utenti iniziali di Internet: comunità accademiche (email, ftp applicazioni principali). • Introduzione di “News groups” e “Bulletin Boards” estendono le classi di utenza. • Inizio anni ‘80: Tim berners-Lee e colleghi al CERN (centro europeo di ricerca su fisica delle particelle) sviluppano varie applicazioni che supportano lavoro collaborativo per la comunità dei ricercatori in fisica. Queste applicazioni si affermano a livello internazionale come WWW. • Oggi, WWW si sta sviluppando come infrastruttura di supporto a sistemi di commercio elettronico, insegnamento, intrattenimento, …

Reti di Calcolatori (Fabio Panzieri)

415

Università di Bologna - Corso di Laurea in Informatica

Architettura del WWW • WWW consiste di varie componenti: – Programmi cliente (e.g. Netscape Browser, Apple Safari, ...) – WWW Servers (HTTP Servers o HTTP Demons) che mantengono dati scritti in linguaggio HTML (HyperText Markup Language) – Servers mantengono pagine in formato HTML; pagine sono consegnate a clienti usando HTTP (HyperText Transfer Protocol) – Browser mostra testo HTML in un formato familiare a tutti (links ipertestuali sono sottolineati)

• P.E. il codice HTML che implementa University of Bologna nella home page del nostro Dipartimento di Scienze dell’Informazione è: il testo in "…"è un URL (Uniform Resource Locator), i.e. il nome di una risorsa. Il Browser individua la risorsa e ne fa il rendering sul display se uno “clicka” University of Bologna .

Reti di Calcolatori (Fabio Panzieri)

416

208

Università di Bologna - Corso di Laurea in Informatica

Architettura del WWW • •

Vantaggio principale di un browser: può utilizzare un ampio n. di protocolli differenti, quindi può contattare un ampio n. di servers differenti Protocolli usati da browser includono: http, ftp (per file transfer), telnet (per login remoto), …

P.E.: URL di server che usa ftp (rapporti tecnici del Dipartimento)

ftp://ftp.cs.unibo.it/pub/techreports/93-22.ps.gz

protocollo

nome host

directory

file

Reti di Calcolatori (Fabio Panzieri)

417

Università di Bologna - Corso di Laurea in Informatica

WWW Server • Processo applicativo eseguito su elaboratore – attende richieste di connessione da clienti su porta TCP (porta di default: # 80) – usa HTTP (che a sua volta usa TCP per trasmissione messaggi) – Contenuto dei messaggi: rappresentato in MIME • MIME (Multiporpose Internet Mail Extension): standard di email per inviare posta elettronica multimediale

– Uso di MIME: consente al ricevente l’uso di applicazioni adeguate per trattare l’informazione ricevuta – Tipi di messaggi MIME più comunemente usati da WWW: • contenuto di tipo text – text/plain: testo senza particolari requisiti di formattamento – text/html: testo contenente istruzioni HTML • contenuto di tipo image: – image/gif: un immagine in formato GIF

Reti di Calcolatori (Fabio Panzieri)

418

209

Università di Bologna - Corso di Laurea in Informatica

HTTP (V1.0) • HTTP V1.0: – protocollo prima versione (ancora in uso) – di tipo RPC client-server – server è “stateless” (i.e. non mantiene stato della richiesta dopo averla servita) – fasi di esecuzione di un comando HTTP: • connessione: Cliente stabilisce una connessione TCP con Server, identificato dall’URL nel comando P.E. open ftp://ftp.cs.unibo.it/pub/techreports • richiesta: richiesta di servizio inviata dal Cliente al Server • risposta: Cliente riceve la risposta dal Server • terminazione: Cliente o Server chiudono la connessione Reti di Calcolatori (Fabio Panzieri)

419

Università di Bologna - Corso di Laurea in Informatica

Esempio Client Establish connection Client request Request response

TCP Syn

Server

TCP syn + ack TCP ac k+

HTTP GET

.. .

Close connection

Reti di Calcolatori (Fabio Panzieri)

420

210

Università di Bologna - Corso di Laurea in Informatica

Osservazioni • Servers WWW – implementano un insieme prefissato di operazioni – operazioni sono codificate all’interno del protocollo HTTP – operazioni includono • GET: ottiene la risorsa identificata dall’URL • HEAD: simile a GET, ritorna però solo gli headers HTML • PUT: carica i dati all’URL specificato

• Protocolli di RPC “tradizionali” – combinati con generatori di stubs possono essere usati per invocare qualunque operazione implementata da un server – non esiste compilatore di stubs per HTTP – protocollo di RPC usato in HTTP è per uso esclusivo con servers WWW – se server deve essere esteso con nuove operazioni, anche il protocollo HTTP deve essere esteso

Reti di Calcolatori (Fabio Panzieri)

421

Università di Bologna - Corso di Laurea in Informatica

Scripts di Server

• WWW non limitato a ricerca di files HTML. Cliente può richiedere a server di eseguire particolari programmi applicativi (principio di funzionamento delle “mappe attive”). Realizzato mediante CGI (Common Gateway Interface. • In sostanza, server mantiene un certo numero di programmi applicativi e Shell Scripts per la loro esecuzione. Cliente può usare CGI per impartire direttive al server per eseguire questi scripts, fornendo gli opportuni parametri • P.E. Invio di richiesta GET con URL: http://www.unibo.it/cgi-bin/htimage/usr/www/img/bolognamap?450,451

– WWW Server usa convenzione che se URL contiene nome cgi-bin allora l’URL deve essere interpretato per eseguire un programma – Server effettua “fork” di processo che esegue shell script htimage e usa il resto del pathname come parametri

Reti di Calcolatori (Fabio Panzieri)

422

211

Università di Bologna - Corso di Laurea in Informatica

Proxy di Servers •

Proxy Server: – server programmabile ad agire da cache per ridurre il traffico di rete al server di origine – fornisce informazione da un suo cache interno – richieste cliente consegnate a Proxy Server – se risorse richieste non disponibili in cache di Proxy, questo ne effettua fetching da Server di origine N.B. Web caching: problema di ricerca; meccanismo principale di minimizzazione del carico dei Web Servers

WWW Client Proxy Server

WWW Client

Web Server

WWW Client Reti di Calcolatori (Fabio Panzieri)

423

Università di Bologna - Corso di Laurea in Informatica

Alcuni problemi di WWW • Popolarità di WWW: chiara indicazione del fatto che gli utenti lo trovano facile da usare e comodo/utile per condividere informazione • Richiede miglioramenti: – Problemi con il protocollo HTTP/1.0 (versione in uso): affrontati in HTTP/1.1 – Problemi con l’architettura generale di WWW e come si può migliorare

• Vantaggio principale di HTTP/1.0: SEMPLICITA’ – servers non mantengono stato. Relativamente facili da costruire. Con ampio numero di clienti è importante minimizzare la necessità di mantenere stato (i.e. chi sta facendo cosa). – Approccio HTTP: aprire e chiudere una nuova connessione TCP per ogni risorsa URL richiesta dal cliente – Uso di TCP implica: HTTP non deve gestire (i) perdita di messaggi, o delivery fuori sequenza, (ii) problemi di congestione di Internet (se ne preoccupa TCP)

• Caratteristiche precedenti limitano scalabilità di HTTP all’aumentare dei clienti Reti di Calcolatori (Fabio Panzieri)

424

212

Università di Bologna - Corso di Laurea in Informatica

Problemi di WWW

• Fetching di pagina Web: può richiedere fetching di varie risorse URL (di testo e immagini). E’ comune che cliente effettui diverse richieste a un Web server in rapida successione. Ogni richiesta crea e chiude (i.e. connect, disconnect) una nuova connessione TCP

– connessione/disconnessione: operazione costosa in termini di carico computazionale, memoria, numero di messaggi. Se effettutata frequentemente, aumenta il carico del Server e causa congestione di rete. – TCP, quando individua congestione di rete, riduce il tasso di trasferimento messaggi – effetto al cliente: server lento.

• Come evitare questi problemi e implementare servers scalabili: – ridurre la necessità di creare molte connessioni • uso di connessioni persistenti

– ridurre le richieste di accesso a servers •

• uso di proxy di servers e caching

N.B. Necessario implementare quanto sopra (significativamente) la complessità del protocollo HTTP

senza

aumentare

Reti di Calcolatori (Fabio Panzieri)

425

Università di Bologna - Corso di Laurea in Informatica

Connessioni persistenti in HTTP/1.1 • HTTP/1.1: nuova versione di HTTP prodotta da HTTP WG, organizzato da Internet Society e WWW Consortium (cf. http://www.w3.org/ per il draft report) • Connessioni persistenti: cliente usa la medesima connessione TCP con server per inviare molteplicità di richieste • Vantaggi: – aprendo un minor n. di connessioni si risparmia memoria e tempo di CPU – molteplicità di richieste HTTP possono essere inviate da cliente a server in pipeline sulla medesima connessione. Pipelining consente al cliente di inviare molteplicità di richieste senza attendere ogni singola risposta; ne consegue un uso più efficiente della connessione – possibilità di congestione di rete viene ridotta

Reti di Calcolatori (Fabio Panzieri)

426

213

Università di Bologna - Corso di Laurea in Informatica

Connessioni persistenti in HTTP/1.1 Principio operativo • cliente – apre connessione con server e la chiude esplicitamente solo quando non richiede più il server

• server – controlla connessione aperta con un cliente mediante un timeout – Se il timeout termina senza che siano state ricevute richieste dal cliente, allora server chiude connessione N.B.: semplice meccanismo che assicura che le connessioni vengono chiuse anche in caso di crash cliente o disconnessione per guasto di comunicazione

• cliente – deve essere in grado di gestire server che chiude connessione e, in caso, aprire nuova connessione per continuare

Reti di Calcolatori (Fabio Panzieri)

427

Università di Bologna - Corso di Laurea in Informatica

Caching in HTTP/1.1 • •

Obiettivo: ridurre il carico sul server e migliorare il tempo di risposta Attualmente HTTP/1.0: – supporta la creazione di proxy che mantengono copie in cache di risorse URL – non fornisce supporto per garantire che il cache di proxy contenga la versione più recente della risorsa URL (si assuma che il contenuto informativo di una risorsa può cambiare) => cliente non protetto dal ricevere copie non aggiornate della risorsa

• •

Si richiede: meccanismo a basso overhead che assicuri che il cache mantenga sempre la versione più recente di una risorsa Approccio in HTTP/1.1: parte di questa responsabilità delegata a livello superiore del fornitore di informazione (p.e. proprietario della risorsa URL, fornitore del contenuto della risorsa URL)

Reti di Calcolatori (Fabio Panzieri)

428

214

Università di Bologna - Corso di Laurea in Informatica

Caching in HTTP/1.1 • In HTTP/1.1 una risposta da cache è definita corretta se soddisfa una delle seguenti condizioni: – è stata controllata con quella del server di origine ed è uguale • accettabile in quanto un cache può convalidare la sua copia di informazione con quella del server di origine

– è “sufficientemente attuale” , dove il concetto di “attuale” è specificato dal gestore della risorsa URL • accettabile in quanto i servers possono fornire stime su quanto recenti sono le loro risorse URL

– contiene un qualche avviso (eccezione) se non soddisfa il requisito di “sufficientemente attuale” • accettabile in quanto il cliente almeno è informato della possibilità che abbia ottenuto informazione non aggiornata

Reti di Calcolatori (Fabio Panzieri)

429

Università di Bologna - Corso di Laurea in Informatica

Determinare se copia in cache è “attuale” • Attività di caching è più efficiente se cache può evitare di controllare con il server d’origine l’età delle proprie copie. • Meccanismo principale (assume orologi sincronizzati => letture di clock consistenti globalmente ): – ogni server d’origine attribuisce un data_di_morte ad ogni risorsa URL che indica fino a quando la risorsa rimane attuale (data_di_morte: definito dal fornitore di informazione) – server d’origine invia Date Header con ogni risposta, indicando il tempo (data_di_nascita) a cui la risposta è stata generata – Cache calcola età_attuale e margine_di_vita di una risorsa:

età_attuale = valore_attuale_del_clock - data_di_nascita margine_di_vita = data_di_morte - data_di_nascita – risorsa in cache è attuale se

margine_di_vita > età_attuale

Reti di Calcolatori (Fabio Panzieri)

430

215

Università di Bologna - Corso di Laurea in Informatica

Validazione di risorse “obsolete” • Cache deve inviare risorsa in una risposta – se scopre che risorsa non è attuale, allora controlla con il server d’origine se la risorsa è ancora utilizzabile

• Sever d’origine deve associare un validatore con ogni risorsa, p.e.: – validatore: data dell’ultima modifica – validatore: numero di versione

• Cache invia al server il valore del validatore della risorsa che mantiene

Reti di Calcolatori (Fabio Panzieri)

431

Università di Bologna - Corso di Laurea in Informatica

Validazione di risorse “obsolete” • Server controlla l’ ”attualità” del valore del validatore ricevuto confrontandolo con il valore corrente del validatore della risorsa richiesta, e invia una nuova copia della risorsa, se necessario • Cliente aggiorna risorsa: cache deve aggiornare risorsa su server d’origine – N.B. non assicura che tutti gli altri cache contenenti quella risorsa siano aggiornati automaticamente: non pratico in sistemi distribuiti su larga scala (o per lo meno non vi sono ancora soluzioni accettabili) => Schema di caching in HTTP/1.1: ottimizzato per aggiornamenti di informazione da parte del fornitore Reti di Calcolatori (Fabio Panzieri)

432

216

Università di Bologna - Corso di Laurea in Informatica

WWW: problemi architetturali • Due problemi principali: – URLs: nomi a basso livello,dipendenti dalla locazione fisica => spostare fisicamente una risorsa URL provoca rottura dei links

– WWW non è facilmente estendibile

• Difficoltà di estendere WWW – progettato principalmente per trattare documenti iper-testuali basati su files read-only (risorse standard) – risorse non standard trattate da meccanismi “ad hoc” via scripts CGI – scrivere script CGI non è banale. Non vi è supporto per controllo di concorrenza. Utenti tendono ad adottare politiche ad hoc per ottenere persistenza di, e controllo di concorrenza su, risorse – HTTP è un protocollo di RPC per invocare un insieme predefinito di operazioni. Aggiungere nuove operazioni richiede re-implementazione dei servers HTTP N.B.: tutto ciò si poteva evitare usando tecniche note (cf. seguito)

Reti di Calcolatori (Fabio Panzieri)

433

Università di Bologna - Corso di Laurea in Informatica

WWW: problemi architetturali • Soluzioni: – RPC: protocollo per invocare operazioni generiche (i.e. non vi è un set di operazioni prefissato cui è associato il protocollo di RPC) – Le risorse definiscono le operazioni ad esse applicabili in un IDL – Dall’IDL si possono generare stubs di cliente e server usando generatori di stub (come in RPC) – In tal modo si ottiene un metodo uniforme per trattare risorse arbitrarie (inclusi meccanismi come Azioni Atomiche per l’integrità dei dati) – Questa soluzione è estendibile: nuove risorse possono essere aggiunte, con nuove operazioni, senza dover modificare il protocollo di RPC, ne usare soluzioni ad hoc come gli script CGI

Reti di Calcolatori (Fabio Panzieri)

434

217

Università di Bologna - Corso di Laurea in Informatica

WWW: problemi architetturali • Troppo tardi per applicare questo approccio a WWW – architettura attuale ormai consolidata in prodotti – non pratico introdurre modifiche fondamentali all’architettura WWW

• Possibile consentire interazione di WWW con sistemi object oriented, in modo che WWW possa sfruttare i vantaggi di questa tecnologia

Reti di Calcolatori (Fabio Panzieri)

435

218

Related Documents

Guida
November 2019 83
Guida
November 2019 44
Guida Dvdrecorder2avi
November 2019 27
Guida Lettorino
November 2019 25
Guida Linux
November 2019 36