Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

DATA LINK

finanze



DATA LINK


Per la sola rilevazione degli errori in una trasmissione è comunemente usato il metodo CRC. In pratica considera i bit da trasmettere come coefficienti di un ipotetico polinomio, M(x), di grado n-1, dove n è il numero dei bit. Utilizza anche un altro polinomio detto generatore, G(x), più corto di M(x). Il metodo consiste nel calcolare una checksum da accodare a M(x) in modo che il risultato sia divisibile per G(x), in questo modo il destinatario non dovrà fare altro che dividere il frame ricevuto per G(x) e controllare che il resto sia zero; ciò significa che la trasmissione non ha generato errori. Per ottenere il frame da trasmettere di procede cosi:

  • se M(x) è la stringa da trasmettere gli si accodano tanti zeri quanto è il grado di G(x), il risultato sarà P(x);
  • si divide P(x) per G(x);
  • si aggiunge il resto a P(x);

P(x) è ora divisibile per G(x).

Questo metodo però non è molto sicuro, infatti durante la trasmissione si potrebbero verificare errori che mantengono comunque P(x) divisibile per G(x).

Il livello di data link offre anche servizi connessi e affidabili, grazie ai quali i frame devono arrivare a destinazione nel giusto ordine e senza errori per poter essere passati al livello sovrastante. Ovvero devono essere garantiti questi tre aspetti:



devono essere ricevuti tutti i frame;

i frame devono essere ricevuti nel giusto ordine;

non devono arrivare più copie de 818b17i llo stesso frame;

Per risolvere il primo punto il ricevente calcola la checksum per ogni frame e se corrisponde manda al mittente un riscontro chiamato ack. Se il mittente non riceve questo messaggio entro un determinato tempo rispedisce il pacchetto. Qui subentrano il secondo e il terzo problema, infatti potrebbe capitare che l'ack venga perduto durante la trasmissione e in questo caso il frame viene rispedito anche se è già stato ricevuto. Il destinatario deve quindi ignorare questo pacchetto perché non ne ha bisogno, per fare ciò i frame sono numerati e in questo modo è semplice capire se può essere accettato oppure no. Un altro problema si verifica se una stazione è più veloce di un'altra; infatti se il mittente è troppo rapido nello spedire i pacchetti, il destinatario non riuscirà più a gestirli e inevitabilmente ne perderà alcuni. Perciò il mittente deve adeguarsi alla velocità del ricevente.

Tutti questi controlli vanno sotto il nome di controllo di flusso e i modi più diffusi per gestirlo sono lo stop and wait e lo sliding windows.

La tecnica stop and wait utilizza l'ack, che viene inviato al mittente dal ricevente quando il frame è stato accettato. Quando il mittente lo riceve spedisce il frame successivo. Se per qualche motivo il riscontro non arriva, il mittente rispedisce il frame; come descritto sopra però, potrebbe essere stato perso l'ack e quindi il ricevente si troverebbe con due frame uguali, quindi i pacchetti vengo numerati con uno 0 o un 1 alternativamente, perciò se vengono ricevuti due frame consecutivi con lo stesso numero, l'ultimo deve essere scartato. Questo metodo però spreca banda e quindi è preferibile lo sliding windows.

Il protocollo sliding windows numera i frame con valori ciclici e utilizza due finestre scorrevoli, ovvero due intervalli di valori, uno per il mittente e uno per il ricevente. La finestra del mittente contiene i numeri dei frame che vanno mantenuti in memoria perché non si sa ancora se sono stati ricevuti. Se deve essere inviato un nuovo frame si aumenta la dimensione della finestra di uno e lo si memorizza in un buffer. Quando si riceve un riscontro si aumenta di uno la parte inferiore della finestra. C'è anche un timer che viene fatto partire per ogni invio, se scade, il pacchetto viene rispedito; quando si riceve un riscontro si considerano ricevuti anche quelli precedenti.

La finestra del ricevente è di dimensione fissa e contiene il numero corrispondente ai frame che sono attesi. Se viene ricevuto un frame che ricade tra quei valori viene memorizzato in un buffer, se il numero di un frame ricevuto corrisponde all'estremo inferiore della finestra, viene passato al livello di rete, viene inviato il riscontro al mittente e si fa scorrere la finestra di un numero. Ci sono poi due tecniche per la gestione degli errori: go back n e selective repeat.

Nella prima le due finestre hanno dimensione 1 e se si verifica un errore il mittente continuerà ad inviare frame, che verranno scartati, fino a quando non scadrà il timer, solo allora verrà rimandato il frame necessario. Nella seconda invece la finestra del ricevente ha dimensioni più grandi, in questo modo memorizzerà i frame che riceve dopo l'errore, anche se non sono quelli necessari, fino a quando dall'altra parte non scadrà il timer e verrà rimandato il frame perduto.

La tecnica go back n è utile se gli errori sono rari, altrimenti è bene usare la selective repeat.

Oltre al segnale di ack esiste la possibilità di avere anche il nack, ovvero un riscontro negativo che il ricevitore può mandare nel caso riceva il frame con degli errori, per dire al mittente di rispedire il frame.

Per effettuare tutte queste comunicazioni si usa di solito una linea bidirezionale, che evita lo spreco di banda dovuto all'invio dei soli riscontri, però è necessario distinguere i dati da questi ultimi. Inoltre si usa anche la tecnica del piggybacking per inviare i riscontri; in pratica si aspetta di dover inviare un frame di dati e di inserirgli dentro anche il riscontro. Si deve comunque tener contro del timer del mittente che attende la risposta, e quindi bisogna comunque mandare l'ack o il nack entro un certo tempo scandito anch'esso da un timer.

Per trasmettere i dati sulle linee pubbliche il data link utilizza dei protocolli, chiamati protocolli di linea. Si differenziano in due tipi, quelli per collegamenti punto a punto e quelli per i collegamenti multipunto. Il primo caso si ha quando ogni coppia di stazioni è collegate con una linea, il secondo invece è il tipico caso di un mainframe, in cui tutti i terminali sono collegati su una stessa linea all'unità centrale. Per gestire la trasmissione si usano due diverse tecniche: per il punto a punto ogni stazione può iniziare a trasmettere quando vuole (metodo a contesa), per il multipunto la stazione principale (o master) effettua ciclicamente un polling su tutte le altre stazioni per stabilire se vogliono o meno utilizzare la linea.

Uno di questi protocolli di linea è l'HDLC dell'ISO ed è orientato al bit. Con questo protocollo si possono gestire collegamenti punto a punto e multipunto. Il frame da trasmettere è delimitato da due flag (01111110) e contiene: l'indirizzo del ricevente, un campo di controllo, un campo dati e un campo di controllo CRC. Il controllo del flusso viene fatto mediante sliding windows di 3 bit, gli ack vengo trasmessi in piggybacking, gli errori sono gestiti con il go back n e con il selective repeat. L'HDLC offre un servizio connesso e affidabile o non connesso non affidabile. Nel primo caso si distinguono tre tipi di campi di controllo: informazione, supervisione e non numerati; nel secondo caso il frame di controllo usa solo quelli non numerati.

Un frame di informazione è così composto:

  • Seq (3 bit): numero del frame;
  • Next (3 bit): numero di ack;
  • P/F (1 bit): nei collegamenti multipunto viene messo a 1 dalla stazione primaria per dare il permesso ad un'altra stazione di trasmettere, le stazioni secondarie lo mettono a 1 se hanno altri frame e a 0 quando è l'ultimo frame. Al contrario nei collegamenti punto a punto si usa per obbligare l'altra stazione a spedire l'ack;

Un frame di supervisione ha due campi uguali a quelli del frame di informazione (Next e P/F), l'altro (Type) può assumere quattro valori:

  • 00: corrisponde ad un ack, Next indica il frame atteso;
  • 01: indica un errore di trasmissione, Next indica il frame di cui si ha bisogno;
  • 10: corrisponde a tutti gli ack fino a Next e blocca momentaneamente la trasmissione;
  • 11: chiede la trasmissione del frame specificato in Next;

I frame non numerati hanno due campi Modifier e Type che insieme indicano il comando, per esempio:

  • SABM: imposta la linea per un collegamento bilanciato;
  • SNRM: imposta la linea per un collegamento non bilanciato;
  • SABME e SNRME: trasformano il frame con il numero progressivo a 7 bit;
  • DISC: disconnette la comunicazione;
  • UA: ack per il frame di controllo;

Per la comunicazione tra due router o tra utente e provider si usano i protocolli SLIP e PPP.

Il protocollo SLIP serve per far viaggiare i pacchetti sulla linea telefonica, ma ha molte limitazioni, ad esempio deve conoscere in anticipo l'indirizzo IP e non gestisce gli errori. Il PPP invece può portare nel campo dati del suo frame informazioni relative ai protocolli di livello superiore e anche il LCP e il NCP, che sono due protocolli usati insieme al PPP. Il LCP si occupa di tutto quello che riguarda il collegamento a livello di data link, mentre il NCP provvede alle opzioni della rete; quest'ultimo permette al protocollo IP di ottenere un indirizzo IP dinamico.

Le fasi di una connessione possono essere quindi così schematizzate:

  1. il modem effettua la connessione fisica;
  2. vengono inviati frame PPP contenenti pacchetti LCP per stabilire la connessione al provider;
  3. partono altri pacchetti NCP per configurare la rete, di solito TCP/IP, e ottenere un IP;
  4. con altri pacchetti NCP si rilascia la connessione di rete;
  5. con l'LCP si rilascia la connessione a livello di data link;
  6. si interrompe la connessione fisica col modem;

Il frame del PPP è orientato al byte e solitamente si usa un servizio non affidabile, quindi con frame non numerati. La composizione del frame è la seguente:

    • un byte per il flag (01111110);
    • un byte con l'indirizzo di destinazione 11111111, ovvero indica che il frame è destinato a tutte le stazioni;
    • un byte con valore 00000011, che indica un frame non numerato;
    • un byte o due che indicano il tipo di protocollo per il campo dati;
    • un campo dati di lunghezza variabile impostata dal LCP;
    • due byte o quattro che contengono una checksum per il controllo degli errori;

Può anche essere negoziato un protocollo di autenticazione, scelto tra PAP e CHAP. Il PAP riguarda praticamente un servizio con password, in cui il client invia un username e una password e il provider controlla che corrispondano a quelli del suo database. Con l'autenticazione CHAP invece il server manda al client una stringa casuale e il suo nome, il client in base al nome del server deve trovare una chiave per cifrare la stringa e la manda poi al server insieme al suo nome; il server cifra la stringa originale e deve ottenere lo stesso risultato ricevuto dal client.

Se i dati devono viaggiare su un canale broadcast allora il livello di data link si deve occupare anche di gestirne gli accessi. In particolare lo fa un sottolivello del data link chiamato MAC. I due modi utilizzati possono essere statici o deterministici. Con il metodo statico ogni stazione tenta di accedere al canale fino a che non lo trova libero, inevitabilmente si verificheranno delle collisioni con le altre stazioni. I deterministici invece danno un ordine di accesso al canale in modo da evitare collisioni.

Tra i metodi statici troviamo l'Aloha che si distingue in due tipi. L'Aloha puro fa trasmettere alla stazione centrale ogni volta che vuole, se si verifica una collisione si aspetta un tempo casuale e si riprova a spedire. L'Aloha a slot divide il tempo in intervalli (slot) e ogni stazione può provare ad inviare all'inizio di ogni intervallo. Per sincronizzare gli intervalli si può usare una stazione speciale che comunica alle altre quando comincia uno slot.

Un altro metodo statico è il CSMA, che permette alle stazioni di controllare la trasmissione in modo da capire se si può trasmettere oppure no. Ci sono vari tipi di CSMA:

CSMA 1-persistente: la stazione ascolta il canale e se è libero trasmette il frame altrimenti aspetta, se si verifica una collisione attende un tempo casuale e poi riprova;

CSMA non persistente: se non può trasmettere, la stazione aspetta un tempo casuale e poi prova ad ascoltare di nuovo;

CSMA p-persistente: il tempo viene diviso in slot, la stazione ascolta il canale all'inizio di ogni slot e se è libero trasmette con probabilità p, così anche all'inizio del successivo slot. Se trova il canale occupato aspetta un tempo casuale e poi riprende;

CSMA/CD: la stazione continua ad ascoltare anche dopo aver iniziato la trasmissione, se si verifica una collisione blocca la trasmissione per risparmiare banda e tempo;

Un metodo detrministico che previene le collisioni è quello della prenotazione; consiste nell'utilizzare un tempo di prenotazione diviso in slot e se una stazione vuole prenotarsi, deve mandare un 1 durante lo slot corrispondente al suo numero. Alla fine le stazioni sanno qual è l'ordine di trasmissione.

L'ultimo metodo si usa nelle reti ad anello, nelle quali due stazioni non possono comunque trasmettere insieme. Per decidere a chi tocca si usa una sequenza di bit chiamata token o gettone (da qui il nome token ring), che viaggia continuamente nella rete. Quando una stazione vuole trasmettere deve acquisire il gettone (modificandolo) e una volta terminata l'operazione lo deve rimettere com'era.




Privacy




Articolo informazione


Hits: 2089
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024