Il livello Data-Link e i suoi protocolli



Documenti analoghi
LIVELLO DATA LINK (DI LINEA)

ARCHITETTURA DI RETE FOLEGNANI ANDREA

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

IL LIVELLO DI LINEA O LIVELLO DI DATA LINK 1. Servizi offerti 2. Struttura dei pacchetti 3 CAMPO DATI 3. Character stuffing 4.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Reti di Telecomunicazione Lezione 8

Reti di Calcolatori. Il software

Strato di Col o l l e l g e a g m a e m n e t n o

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Per essere inviato il dato deve essere opportunamente codificato in modo da poter essere trasformato in SEGNALE, elettrico oppure onda luminosa.

Parte II: Reti di calcolatori Lezione 24

Gestione della Connessione in TCP

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Quanto sono i livelli OSI?

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

Reti LAN. IZ3MEZ Francesco Canova

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità


Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Elementi di Informatica e Programmazione

Comunicazione codifica dei dati. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

HTTP adaptation layer per generico protocollo di scambio dati

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

Una panoramica su HL7

Appunti sulla Macchina di Turing. Macchina di Turing

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof.

VPN CIRCUITI VIRTUALI

Livello di trasporto: meccanismi trasferimento dati affidabile

Elementi di Informatica e Programmazione

10. Stratificazione dei protocolli

IP Internet Protocol

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

InterNet: rete di reti

Dispositivi di rete. Ripetitori. Hub

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Transmission Control Protocol

MODELLISTICA DI IMPIANTI E SISTEMI 2

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it

Standard di comunicazione

Esercizi su: Ritardi di trasferimento Commutazione Sorgenti di Traffico

Protocolli di Comunicazione

Esercizi su. Funzioni

ARP (Address Resolution Protocol)

Reti di Telecomunicazione Lezione 7

EasyPrint v4.15. Gadget e calendari. Manuale Utente

ESERCIZIO NUMERO 1 ESERCIZIO NUM. 2

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

SWITCH. 100 Mb/s (UTP cat. 5E) Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

Il protocollo MODBUS. Il protocollo MODBUS Pag. 1 di 11

Invio SMS. DM Board ICS Invio SMS

Capitolo 3: Cenni di strategia

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti:

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Linee Commutate. Comunicazione telefonica:

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

DA SA Type Data (IP, ARP, etc.) Padding FCS

Soluzione dell esercizio del 2 Febbraio 2004

Apparecchiature di Rete

CONTROLLO DI GESTIONE DELLO STUDIO

Livello di Rete. Gaia Maselli

Configurazione di Outlook Express

Approfondimento di Marco Mulas

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Classificazione delle tecniche di accesso multiplo

ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Rete di accesso / Rete di trasporto

Vlan Relazione di Sistemi e Reti Cenni teorici

CitySoftware PROTOCOLLO. Info-Mark srl

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

TEST DI RETI DI CALCOLATORI I (9400N) anno 1999/2000

Reti diverse: la soluzione nativa

STAMPA DI UNA PAGINA SEMPLICE

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

QUANTIZZAZIONE diverse fasi del processo di conversione da analogico a digitale quantizzazione

M286 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE. Indirizzo: ELETTRONICA E TELECOMUNICAZIONI CORSO DI ORDINAMENTO. Tema di: TELECOMUNICAZIONI

Introduzione (parte III)

Uso di base delle funzioni in Microsoft Excel

File, Modifica, Visualizza, Strumenti, Messaggio

Product Shipping Cost Guida d'installazione ed Utilizzo

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto

La Fatturazione Elettronica

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

ARCHIVIA PLUS - ARCHIFILE

I canali di comunicazione

Transcript:

Il livello Data-Link e i suoi protocolli Modulo 5 (Integrazione) Livello Data-Link Abbiamo visto che il Livello Data link provvede a: o offrire servizi al livello network con un'interfaccia ben definita; o organizzare i dati in blocchi di lunghezza predefinita chiamati frame (framing) o gestire gli errori di trasmissione (effettuare i primi controlli sulla validità tramite CRC (Cyclic Redundancy Check)); o regolare il flusso della trasmissione fra sorgente e destinatario (evitare che siano inviati dati ad una velocità incompatibile alla capacità di acquisizione del destinatario, evitare che in una trasmissione bidirezionale i due nodi trasmettano contemporaneamente). E che il Data link layer è suddiviso in due sottostrati: LLC (Logical Link Control), il quale si occupa del controllo errori e lavora con il livello di Rete MAC (Media Access Control) che fornisce l'accesso al mezzo trasmissivo (il cavo) e lavora quindi a stretto contatto con il livello Fisico. Dunque, una cosa di cui si occupa è come delimitare un singolo frame. Framing Per delimitare i frame si devono usare degli appositi marcatori per designarne l'inizio e la fine del frame. Ci sono vari metodi: conteggio dei caratteri; caratteri di inizio e fine, con character stuffing; bit pattern di inizio e fine, con bit stuffing; Conteggio dei caratteri Si utilizza un campo nell'header, per indicare quanti caratteri ci sono del frame Figura 1: Il metodo del conteggio quando lo strato di collegamento dati del destinatario vede tale numero, sa quanti caratteri seguono e quindi può determinare la fine del frame. Il problema con questo algoritmo è che se durante la trasmissione si rovina il campo dell header che contiene il conteggio, diventa praticamente impossibile ritrovare l'inizio del prossimo frame e di conseguenza anche quello dei successivi. A causa della sua scarsa affidabilità questo metodo è usato assai raramente. 1

Caratteri di inizio e fine Ogni frame inizia e finisce con una particolare sequenza di caratteri ASCII. Una scelta diffusa è la seguente: inizio frame: o DLE (Data Link Escape), STX (Start of TeXt) fine frame: o DLE, ETX (End of TeXt) In questo modo, se la destinazione perde traccia dei confini di un frame la riacquista all'arrivo della prossima coppia DLE, STX e DLE, ETX. Esiste però un problema: nella trasmissione di dati binari, il byte corrispondente alla codifica di DLE può apparire dentro il frame, imbrogliando le cose. Per evitare questa evenienza, il livello due sorgente aggiunge nei dati, davanti a tale byte, un altro DLE, per cui in arrivo solo i singoli DLE segnano i confini dei frame. Naturalmente, il livello due di destinazione rimuove i DLE aggiunti dentro ai dati prima di consegnarli al livello tre. Questa tecnica si chiama character stuffing. Bit pattern di inizio e fine Un altra tecnica analoga e più recente è quella in cui ogni frame inizia e finisce con una specifica sequenza di bit (bit pattern), ad es.: 01111110 chiamata flag byte. Ovviamente esiste un problema analogo al caso precedente: tale sequenza di bit può infatti apparire all'interno dei dati che devono essere trasmessi. In questo caso: in trasmissione: ogni volta che il livello due incontra nei dati da trasmettere 5 bit consecutivi uguali a 1 inserisce uno zero aggiuntivo; in ricezione: quando nei dati ricevuti compaiono 5 bit uguali a uno, si rimuove lo zero che li segue. Dunque, il flag byte può apparire solo all'inizio ed alla fine dei frame. Questa tecnica va sotto il nome di bit stuffing. Esempio: si supponga che i dati utente siano i seguenti: 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 il livello data link effettuerà il bit stuffing inserendo un bit 0 dopo 5 bit 1 consecutivi: 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 la configurazione trasmessa in linea sarà pari alla precedente con la configurazione di inizio e fine frame: 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 Con questa tecnica, il confine tra due frame può essere riscontrato senza ambiguità. 2

Regolazione sequenza di trasmissione e flusso Dopo aver trovato il modo di delineare l'inizio e la fine dei frame e di gestire gli errori di trasmissione, bisogna trovare la maniera di informare opportunamente il mittente se i frame spediti sono anche arrivati, e senza errori, dall'altra parte: servizi connectionless non confermati: non c'è bisogno di alcuna conferma; servizi connectionless confermati: sono arrivati tutti e senza errori? servizi connection oriented confermati: sono arrivati tutti, senza errori e nell'ordine giusto? Per saperlo si introduce il concetto di acknowledgement, che è un messaggio inviato dal destinatario al mittente per informarlo che: il frame è arrivato correttamente (positive ack); il frame è errato (negative ack). Nel seguito, ove necessario per evitare ambiguità, col termine frame dati indicheremo un frame che trasporta informazioni generate nel colloquio fra le stazioni; col termine frame di ack indicheremo un frame il cui solo scopo è trasportare un acknowledgement. Protocolli di trasmissione per il livello Data-Link Fissate le interfacce, elettrica e meccanica, ed il canale di comunicazione, ad esempio la linea privata in cavo, in fibra ottica o la linea telefonica commutata o dedicata, resta da stabilire le modalità di trasferimento dei dati in ordine alla velocità di trasmissione, al numero di bit dei dati, alla presenza di bit di parità, di bit di stop, ai codici di correzione degli errori, alle procedure di inizializzazione, al sincronismo ed a tutta una serie di informazioni che il trasmettitore deve inviare al ricevitore affinché quest'ultimo sappia come sono organizzati i dati ricevuti e da chi li ha ricevuti. La risposta a questi interrogativi viene fornita dai protocolli di trasmissione noti anche come protocolli di secondo livello o protocolli di linea, tenendo conto dei livelli gerarchici previsti dal modello ISO/OSI. I protocolli di trasmissione rappresentano le regole che i terminali di elaborazione devono rispettare affinché la ricezione dei dati avvenga correttamente. Protocolli stop and wait I protocolli stop and wait sono dei tipi di protocolli in cui il mittente attende un OK dal destinatario per essere autorizzato all'invio del prossimo frame. Mittente: 1) attende un pacchetto dal livello network; 2) costruisce un frame dati; 3) passa il frame al livello fisico; 4) attende evento: * arriva frame di ack (vuoto): 5) torna ad 1). 3

Destinatario: 1) attende evento: * arriva frame dati da livello fisico: 2) estrae il pacchetto; 3) consegna il pacchetto al livello network; 4) invia un frame di ack (vuoto) al mittente; 5) torna ad 1). Assumiamo ora che il canale possa fare errori. I frame (dati o di ack) possono essere danneggiati o persi completamente. Se un frame arriva danneggiato, il controllo del checksum se ne accorge e informa il SW di livello data link; se il frame si perde del tutto, ovviamente, la cosa non si rileva. Si è pensato a uno schema seguente: 1. Il mittente spedisce il frame numerato con x e il destinatario risponde con il messaggio di conferma ACK. 2. Se il pacchetto di ACK arriva nel tempo previsto, il trasmittente continua ad inviare i pacchetti numerandoli progressivamente. 3. Nella seconda figura vediamo che, se dopo un certo tempo (Timeout) il mittente non riceve conferma, rinvia il messaggio. I frame sono numerati per individuare il frame o l ACK perduto. In assenza di errori il funzionamento è il seguente: Figura 1: Normale funzionamento Come abbiamo detto si può verificare che: 1. il frame dati si perde o si danneggia; 2. l'ack del frame x si perde completamente. Se ad esempio il mittente non riceve l ACK entro un certo tempo, ritrasmette il frame. Il ricevente potrebbe interpretare il frame ripetuto come un frame successivo, quindi per evitare tale problema viene introdotto un numero di sequenza: il destinatario passerà al livello network solo i frame con il numero di sequenza atteso. 4

I disegni seguenti illustrano varie eventualità che possono verificarsi durante il dialogo secondo il protocollo Stop and Wait. I numeri ai lati delle figure indicano i numeri di sequenza che, rispettivamente: il mittente usa per etichettare il frame dati da trasmettere; il destinatario usa per decidere se il prossimo frame che arriva va passato al livello network o no. Nel caso in cui un frame dati si perda o si danneggi, la situazione è la seguente: Figura 2: Perdita (o danneggiamento) di un frame Nel caso in cui invece si perda o si danneggi un frame di ack, la situazione è la seguente: Protocolli a finestra scorrevole Figura 3: Perdita (o danneggiamento) di un ack Anche se funziona, i protocolli Stop and Wait non sono completamente efficienti poichè sfruttano solo una piccola parte della larghezza di banda disponibile. Infatti il meccanismo rallenta la trasmissione, perché il trasmettitore deve attendere il riscontro (l ack) di ciascun pacchetto prima di inviare il successivo, quindi i pacchetti viaggiano in rete in una sola direzione per volta, e la rete è sottoutilizzata mentre le stazioni attendono le risposte, che possono ritardare. Un sistema molto più efficiente ed ugualmente affidabile, è il meccanismo a finestre scorrevoli, che rende molto più efficiente la trasmissione e quindi l'utilizzo della banda La tecnica delle finestre scorrevoli (Sliding Windows) permette al trasmettitore di poter continuare ad inviare un certo numero N (dimensione della finestra) di pacchetti successivi all ultimo per cui ha ricevuto il 5

riscontro, ovvero permette di trasmettere fino ad altri N pacchetti mentre si è in attesa di ricevere il riscontro di un pacchetto precedentemente inviato. In tal modo la rete viene utilizzata anche nei periodi di attesa. Il funzionamento è il seguente. Il mittente invia una "finestra" di pacchetti, da 1 a n, ma senza aspettare l'ack, inoltre fa partire un timer per ognuno di essi. Il numero n è detto ampiezza della finestra (la finestra contiene sempre n pacchetti). Il ricevente manda un Ack per ogni pacchetto. Il mittente sposta la finestra "in avanti" di un pacchetto per ogni Ack ricevuto nell'ordine. Cioè quando arriva l'ack del segmento 1, la finestra viene spostata in modo da coprire i pacchetti da 2 a n+1 e viene trasmesso il segmento n+1. Quando per un pacchetto P (trasmesso) nella finestra si riceve l ACK (e si è ricevuto anche i suoi precedenti) allora la finestra avanza fino al pacchetto successivo a P, consentendo di trasmettere i pacchetti che sono entrati nella finestra. le finestre continuano a scorrere finché si ricevono ACK permettendo di trasmettere i nuovi pacchetti che entrano nella finestra. Le prestazioni dei protocolli a finestra scorrevole dipendono dalla dimensione della finestra e dalla velocità della rete: se la dimensione della finestra è 1, si ritorna all algoritmo visto nel primo modo di procedere. All aumentare della dimensione della finestra diminuisce il periodo di non utilizzo della rete e con un opportuna scelta della dimensione della finestra è possibile mantenere la rete satura di pacchetti senza congestionarla. Abbiamo detto che per ogni pacchetto trasmesso viene comunque ancora fatto partire un timer, allo scadere del quale, se non è ancora stato ricevuto l ACK, il pacchetto deve essere ritrasmesso. Consideriamo ora qualche caso particolare. 1) Se il pacchetto 3 non arrivasse a destinazione, la finestra non verrebbe spostata oltre il pacchetto 2. Il destinatario manderebbe gli Ack dei pacchetti 4, 5... ma tutti uguali, cioè settati al valore 2, dato che è questo l'ultimo pacchetto valido, ricevuto nell'ordine di consegna. Ad un certo punto il timer per 3 scade e il pacchetto viene ritrasmesso. 6

Mittente Pacchetto 1 Pacchetto 2 Pacchetto 3 Pacchetto 4 Destinatario ACK 1 Pacchetto 5 Pacchetto 6 Ritrasmette pacchetto 3 ACK 6 2) il pacchetto 2 viene ricevuto correttamente, ma è l'ack che viene perso. Semplicemente, il mittente riceverà prima o poi un Ack con valore 3, questo indica che tutti i pacchetti fino al terzo sono arrivati a destinazione, quindi anche il secondo. Dopo l'ack 3 il mittente può spostare la finestra in avanti di 2 passi in una volta. La finestra ora coprirà i pacchetti da 4 a n+3. Nella realtà, per identificare i segmenti si usa un campo, il Sequence number, che si trova nell header del frame e non il numero di pacchetto. Le dimensioni della finestra possono variare fino ad un massimo di 64 Kbytes. Il meccanismo della finestra è molto importante anche perché fornisce al ricevente un mezzo per governare la mole di dati spediti dall'utente sorgente. Infatti, nell'header dei pacchetti esiste un campo specifico, detto "window", tramite il quale il ricevente indica al trasmittente la dimensione in byte della finestra che è disposto attualmente a ricevere (finestra del ricevente). Questo accordo avviene quando il ricevente spedisce un ACK nel quale specifica innanzitutto l'ultima posizione riconosciuta valida e, a partire da questa, il numero di byte che attualmente può accettare. In questi protocolli il livello data link ha più libertà nell'ordine di trasmissione, fermo restando che: i pacchetti devono essere riconsegnati al livello rete nello stesso ordine di partenza; il canale fisico consegna i frame nell'ordine di partenza. I protocolli data link più diffusi oggi sono: HDLC e PPP. 7