Architettura OSI
Livello 1: Fisico
Fornisce i mezzi meccanici, fisici, funzionali e procedurali per attivare e mantenere le connessioni fisiche. Ha il compito di effettuare il trasferimento delle cifre binarie scambiate dalle entità di livello di collegamento. Le unità dati sono bit o simboli. PDU = flussi di bit. SAP = porta fisica.
Livello 2: Collegamento o linea (Data Link)
Fornisce i mezzi funzionali e procedurali per il trasferimento delle unità dati tra entità di livello rete e per fronteggiare malfunzionamenti del livello fisico. Le sue funzioni fondamentali sono:
- Rivelazione e recupero degli errori di trasmissione
- Controllo di flusso
- Divisione delle trame
Nel caso di canali broadcast, il livello 2 è diviso in due sottolivelli: MAC e LLC. In un nodo esiste un'entità di linea per ogni SAP fisico. Livello di linea per reti Broadcast: al livello di linea viene aggiunta una funzionalità di accesso multiplo detta MAC.
Livello 3: Rete
Fornisce i mezzi funzionali e procedururali per lo scambio di informazioni tra entità di livello trasporto. Fornisce i mezzi per instaurare, mantenere e abbattere le connessioni di rete tra entità di livello trasporto. Le sue funzioni fondamentali sono:
- Instradamento
- Indirizzamento
- Controllo di connessione
- Inoltro
- Scheduling
- Controllo di congestione
Questo livello è implementato in ogni nodo di rete. Esiste un'unica entità di rete per l'instradamento.
Livello 4: Trasporto
Fornisce alle entità di livello sessione le connessioni di livello trasporto. Colma le deficienze della qualità di servizio delle connessioni a livello di rete. È il livello più basso con significato da estremo a estremo. Frammenta i messaggi in segmenti. Multiplazione e suddivisione di connessioni. Le sue funzioni sono: connessione, controllo d'errore e di flusso. È implementato nei nodi terminali. Trasporto dei dati per il colloquio tra applicazioni residenti in sistemi remoti. Può anche offrire: servizio di connessione, controllo d'errore, controllo di flusso, prevenzione della congestione. Le entità di trasporto possono essere molteplici in funzione di diversi servizi.
Livello 5: Sessione
È il responsabile dell'organizzazione del dialogo fra due programmi applicativi di sistemi diversi. Assicura alle entità di presentazione una connessione di sessione. Organizza il colloquio tra le entità di presentazione. Le sue funzioni sono: gestione del dialogo e sincronizzazione tra eventi. Struttura e sincronizza lo scambio di dati in modo da poterlo sospendere, riprendere e terminare ordinatamente. Maschera le interruzioni del servizio di trasporto.
Livello 6: Presentazione
Risolve i problemi di compatibilità per quanto riguarda la rappresentazione dei dati da trasferire. Risolve i problemi relativi alla trasformazione della sintassi dei dati (colloquio tra sistemi basati su sistemi operativi diversi). Può fornire servizi di cifratura delle informazioni.
Livello 7: Applicazione
Fornisce ai processi applicativi i mezzi per accedere all'ambiente OSI.
Riassunto dei livelli
- Fisico: Trasmettere i bit. Fornire specifiche meccaniche ed elettroniche.
- Linea: Organizzare i bit in frame. Fornire la consegna nodo per nodo.
- Rete: Muovere i pacchetti dalla sorgente alla destinazione.
- Trasporto: Fornire la consegna dei messaggi da una parte all'altra.
- Sessione: Stabilire, modificare e terminare le sessioni.
- Presentazione: Tradurre, decifrare e comprimere i dati.
- Applicazione: Permettere l'accesso alle risorse di rete.
Architettura TCP/IP
Nell'architettura TCP/IP ogni livello riceve dati dal livello superiore, aggiunge un header per creare una nuova unità dati e passa la nuova unità dati al livello inferiore. Questo procedimento viene detto incapsulamento.
- Applicazione: Supporto alle applicazioni di rete (FTP, SMTP, HTTP)
- Trasporto: Trasferimento dati host-host (TCP, UDP)
- Rete: Routing dei datagrammi da sorgente a destinazione (IP, protocolli di routing)
- Collegamento: Trasferimento di dati tra elementi di reti vicini (PPP, Ethernet)
- Fisico: Bit sul canale
Collegamento e Fisico vengono uniti in accesso alla rete.
OSI vs TCP/IP
Il principale contributo del modello OSI è la distinzione tra servizi, interfacce e protocolli.
- Servizio: Dice cosa offre ma non come lo strato opera.
- Interfaccia: L'interfaccia di uno strato dice ai processi dello strato superiore come accedere ad esso, specificando i parametri e i risultati attesi.
- Protocollo: Il protocollo di uno strato è una scelta dello strato stesso purché fornisca il servizio specificato.
Il modello OSI è nato prima della definizione dei suoi protocolli, quindi è un modello abbastanza generale, ma il progetto non teneva conto di problemi reali di alcune reti (LAN). I protocolli sono nati prima del modello TCP/IP, il quale è solo una descrizione di questi, quindi i protocolli si adattano perfettamente al modello. Però, il modello non è adatto a descrivere reti non TCP/IP. OSI è arrivato quando TCP/IP era già diffuso tra le università, quindi i produttori investono su quest’ultimo. Non tutti i livelli dell’OSI sono necessari e sono anche troppo carichi di funzioni. È un modello pesante. In TCP/IP manca una vera distinzione tra servizi, interfacce e protocolli. Non è generalizzabile. Non c'è distinzione tra livello fisico e data link (linea).
Livello di collegamento
Il livello data-link ha la responsabilità di trasferire datagrammi da un nodo adiacente su un link.
- Protocolli di livello data-link:
- Orientati al carattere: Informazione numerica interpretata a gruppi di 8 bit sulla base dei caratteri di un alfabeto.
- Orientati al bit: Informazione senza interpretazione diretta. Trasferimento trasparente dei bit.
Il tipo di protocollo usato è funzione della separazione tra i terminali e del bit-rate della linea. Il protocollo del livello di link è implementato in un adattatore (scheda Ethernet).
Sottolivello data-link
Framing: Nella trasmissione dati, i bit trasmessi dal livello fisico sono organizzati in gruppi logici: trame. Le trame sono separate con metodi opportuni e identificate tramite un "header" dal livello di linea. I motivi per cui si divide il flusso in trame includono controllo d'errore, indirizzamento e numerazione trame. La delimitazione delle trame consente al ricevitore di riconoscerne l’inizio e la fine senza ambiguità. I delimitatori possono essere: sequenze di bit (flag) o caratteri speciali, conteggio di caratteri o di bit.
Rilevazione errori
In ricezione è possibile che venga riconosciuta una sequenza di bit diversa da quella trasmessa (bit errati). La ritrasmissione viene effettuata in trasporto, collegamento, fisico -> I livelli della pila offrono un servizio con basso tasso di errore.
Tecniche per la protezione dagli errori di trasmissione
- Correzione FEC (forward error correction): Codifica di canale -> aggiunta ridondanza in trasmissione -> uso della ridondanza in ricezione per rimediare ai bit errati (se in numero contenuto), es. codice a ripetizione (N volte lo stesso bit), correzione di N/2 -1 errori.
- Ritrasmissione (ARQ – Automatic Repeat reQuest): Aggiunta di ridondanza in trasmissione per ogni unità informativa (FCS, Frame Check Sequence), uso della ridondanza in ricezione per rivelare la presenza di errori e non per correggerli. Uso di messaggi di servizio per la richiesta di ritrasmissioni o la conferma di corretta ricezione (necessita di collegamenti half o full duplex).
La ridondanza richiesta per rivelare gli errori è molto più contenuta di quella richiesta per la correzione (aggiunta di 16-32 bit ai pacchetti è di solito sufficiente). Il più semplice codice a rivelazione d’errore è costituito dal bit di parità: alla fine del pacchetto viene aggiunto un bit pari a 1 se il numero di 1 nel pacchetto è dispari e 0 se il numero di 1 è pari.
Internet CheckSum
L’obiettivo è rivelare gli errori (flipped bit) nel segmento trasmesso.
- Trasmittente: Tratta segmenti di 16 bit interi, fa il checksum: somma il contenuto dei segmenti e fa il complemento ad 1 della somma. Il trasmittente mette il valore della checksum nel campo checksum dell’UDP.
- Ricevitore: Calcola la checksum del segmento ricevuto, vede se la checksum calcolata è uguale al campo checksum, se NO -> rilevato errore.
Distanza di Hamming
Di quanti bit differiscono. Se due parole di codice hanno una distanza di Hamming d, vuol dire che saranno necessari d errori di singoli bit per convertire l’una nell’altra.
- Rilevazione errori: Per rivelare d errori è necessario un codice con distanza d+1, poiché con questo codice non c’è modo che d errori di bit singolo mutino una codeword valida in un’altra codeword valida.
- Correzione errori: Per correggere d errori è necessario un codice con distanza 2d+1 poiché le sue parole valide sono così distanti che anche con d mutazioni, la parola originale è ancora la più vicina valida e può essere individuata.
Checksum: Cyclic Redundancy Check
Codice polinomiale, ARQ (Automatic Repeat reQuest), controllo congiunto di errore, flusso, sequenza su una connessione. L’obiettivo del controllo di flusso è regolare la velocità di invio delle unità informative da una sorgente a una destinazione in modo tale che tale velocità non sia superiore a quella con la quale le unità informative vengono smaltite a destinazione. Avviene a livello di linea e trasporto. L’obiettivo è anche evitare che i pacchetti vadano persi perché all’arrivo trovano il buffer pieno.
Tecniche ARQ
- Stop and wait (Alternating bit)
- Go back N
- Selective repeat
Protocollo stop and wait
Trasmettitore:
- Invia una PDU
- Attiva un orologio (tempo di timeout)
- Si pone in attesa della conferma di ricezione (ACK)
- Se scade il timeout prima dell’arrivo della conferma, ripete la trasmissione
Ricevitore:
- Riceve una PDU
- Controlla la correttezza della PDU
- Controlla il numero di sequenza
- Se la PDU è corretta invia la conferma di ricezione
Trasmettitore (dopo che riceve ACK):
- Controlla la correttezza dell’ACK
- Controlla il numero di sequenza
- Se l’ACK è relativo all’ultima PDU trasmessa, si abilita la trasmissione alla prossima PDU
Un problema è che c’è una stretta alternanza tra mittente e ricevente e l’altro è che il frame di riscontro si potrebbe perdere nella trasmissione.
PiggyBacking
Quando il flusso dati è bidirezionale è possibile includere nell’intestazione della PDU dati un campo con l’informazione di riscontro (ACK) per il flusso dati che sta fluendo in direzione opposta.
Protocolli Pipeline
Pipelining: Al sender è consentito l’invio di pacchetti multipli senza che debba aspettare riscontri. I pacchetti in transito è come se riempissero un canale. Ci sono due protocolli pipeline: go-Back-N, selective repeat.
Go back N
Consiste nel far in modo che il ricevente scarti tutti i pacchetti successivi ad uno in errore, non spendendo alcun ACK per quelli scartati. La finestra del ricevente è di dimensione 1. Il data link si rifiuta di accettare pacchetti, eccetto quello che in sequenza deve passare al livello di rete. Quando scade il timer al mittente, esso ricomincerà a trasmettere dall’ultimo pacchetto non ricevuto. Un grande svantaggio è che c’è spreco di banda se il tasso d’errore è elevato.
Selective Repeat
Consiste nel far in modo che il livello data link del ricevente memorizzi tutti i pacchetti corretti che seguono quello danneggiato. In questo caso il mittente dovrà ritrasmettere solo il pacchetto danneggiato.
Sliding Window
È possibile usare un meccanismo come quello del go back N. La sorgente non può inviare più di W trame senza aver ricevuto il riscontro. I riscontri vengono inviati dal ricevitore solo quando i pacchetti vengono assorbiti dall’utente.
Ritrasmissioni
Il meccanismo del controllo di flusso è strettamente legato al meccanismo di controllo d’errore e questo può essere fonte di problemi. Se il ricevitore ritarda di molto l’invio dei riscontri il trasmettitore inizia la ritrasmissione poiché scade il timeout. Aumentare il timeout non è una scelta efficiente perché in caso di errori si aumenta il ritardo. Il problema può essere affrontato trasmettendo regolarmente i riscontri all’arrivo dei pacchetti, usando un messaggio speciale di RNR (Receiver Not Ready) per segnalare che il buffer è pieno. La cosa migliore è un approccio ibrido: ritardare al massimo l’invio dei riscontri e poi usare RNR.
Uso del campo W
Il problema può essere risolto in modo radicale separando i meccanismi di controllo d’errore e di controllo di flusso a finestra. Si inserisce nei riscontri (o nell’header delle trame in direzione opposta) un campo finestra W. Il ricevitore invia riscontri sulla base dell’arrivo dei pacchetti e si usa il campo W per indicare lo spazio rimanente sul buffer. Questo è l’approccio usato nel TCP.
Protocollo HDLC (High-Level Data Link Communications)
Standard ISO. Deriva dal protocollo SDLC di IBM. Può essere applicato sia con half duplex (stop and wait) che con full duplex (go back N, selective repeat).
NRM (Normal Response Mode)
Una stazione primaria è collegata a una o più stazioni secondarie tipicamente in modalità half-duplex. Solo la stazione primaria può inviare comandi e le stazioni secondarie trasmettono solo a seguito di un permesso (polling) esplicito inviato dalla stazione primaria.
ARM (Asynchronous Response Mode)
Anche in questo caso il colloquio è di tipo sbilanciato, ma la stazione ha la possibilità di iniziare una trasmissione senza il permesso esplicito di quella primaria, iniziando così un colloquio full duplex.
ABM (Asynchronous Balanced Mode)
Fornisce una modalità di funzionamento bilanciato su configurazioni punto-punto tra stazioni combinate che (full-duplex) possono inviare informazioni in modo indipendente e asincrono. È l’unico modo di funzionamento conforme con lo stack OSI.
Formato della trama HDLC
Flag Address Control Information Frame Check Flag: 1 byte n 1 o 2 byte >=0 sequence 1 byte
Address: Normalmente a 8 bit, ma può essere di n byte. L’ultimo bit di ogni byte è usato per indicare se segue un ulteriore byte del campo A. L’indirizzo contenuto è quello della stazione secondaria (NRM, ARM), mentre è quello della destinazione (ABM).
Control: Distingue i tipi di trama e contiene le informazioni relative ad ogni tipo. I primi bit distinguono il tipo, gli altri contengono il controllo vero e proprio.
- Information (I): Sono trame numerate per la trasmissione di informazione d’utente contenuta nel campo.
- Supervisory (S): Trame per la gestione del flusso.
- Unnumbered (U): Trame per inizio e fine di trasmissione oppure per l’invio di informazione in modalità senza connessione.
Information: Contiene l’informazione d’utente (dei livelli superiori), può essere non presente. È presente nelle trame I e U. Ha lunghezza variabile.
Frame check Sequence: Contiene il codice a rivelazione d’errore per capire se il frame è arrivato errato o no.
Reti in area locale (LAN)
Nascono per effettuare l’interconnessione di apparecchiature di calcolo in area geografica limitata (edificio, campus). Unico mezzo trasmissivo con capacità elevata e con basso tasso d’errore. Utilizzo di protocolli di accesso al mezzo. Rete senza funzionalità di commutazione (no router).
Indirizzamento
Le trasmissioni vengono divise in trame. Ciascuna stazione ha associato un indirizzo univoco (MAC address) associato dal costruttore della scheda di rete. Il MAC address della stazione destinazione viene indicato nel campo destinazione dell’header di trama. Quando una stazione riceve una trama, verifica se il valore del campo destinazione corrisponde ad un suo indirizzo. Solo in questo caso copia la trama ricevuta e la passa per ulteriori elaborazioni ai livelli superiori.
Mezzo di comunicazione
Il mezzo è multi-accesso (accesso multiplo) quando comprende due o più punti distinti che sono sorgenti e/o ricevitori di informazione (stazioni). In questo caso il segnale ricevuto in una stazione dipende dal segnale trasmesso da due o più tra le altre stazioni ed è la somma delle versioni attenuate di questi segnali, corrotti da disturbi e ritardi. Il problema è che se due o più trasmissioni avvengono contemporaneamente si verifica una collisione. I protocolli di accesso multiplo permettono a varie stazioni di accedere alla rete fisica sottostante che è di tipo broadcast. Tali protocolli hanno il compito di regolare la trasmissione delle stazioni in modo tale che non si sovrappongano sul mezzo. In caso si verifichino delle collisioni esse, devono essere individuate in modo da poter ritrasmettere le trame coinvolte nella collisione. Questa funzione è svolta dal sottolivello MAC (Medium Access Control) del livello di Link. Il livello Data Link si divide in Logical Link Control (LLC) e Medium Access Control (MAC).
Accesso multiplo con allocazione statica
Noti come tecniche di channel partitioning: si divide il canale in pezzi più piccoli e si assegna ogni pezzo a una stazione, in modo che non ci siano contese di utilizzazione.
TDMA – Time Division Multiple Access
Accesso al canale a turno, cioè a ogni stazione viene assegnato uno slot di lunghezza fissa (lunghezza=tempo di trasmissione del pacchetto).
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Esercizi di Fondamenti di Telecomunicazioni - Reti
-
Esercizi Reti - Fondamenti di telecomunicazioni
-
Telecomunicazioni - Fondamenti di Reti
-
Riassunto Telecomunicazioni