TRASMISSIONE DATI CON MODEM |
|
Si definisce trasmissione dati l’insieme delle tecniche hardware e software per la propagazione a distanza d'informazioni digitali tra due o più sistemi d'elaborazione DTE (Data Terminal Equipement) utilizzando un'opportuna rete di comunicazione su cui far viaggiare i dati.
In genere ci si riferisce a sistemi d'elaborazione posti in località diverse e distanti tra loro, quindi è difficilmente ipotizzabile la stesura diretta di un certo numero di cavi di collegamento tra le due stazioni o che colleghi un sistema d'elaborazione a tutti gli altri sistemi d'elaborazione.
La trasmissione deve essere di tipo seriale, in altre parole i bit che compongono i byte da trasmettere sono inviati sequenzialmente, uno per volta e non tutti e otto contemporaneamente. La trasmissione parallela è possibile, com'è noto, tra elementi vicini di uno stesso sistema (microprocessore - memoria centrale) o tra apparecchiature distanti tra loro fino a qualche metro (computer - stampante, ad esempio).
Per questi motivi nelle comunicazioni a grandi distanze si utilizza la rete telefonica pubblica che consente, inoltre, il collegamento ad un qualsiasi altro punto nel mondo.
Uno dei problemi da affrontare è l’adattamento del segnale digitale alla rete telefonica. Infatti, il segnale numerico ha uno spettro di frequenza teoricamente infinito al contrario il canale fonico è compreso tra 300Hz e 3400Hz.
Si possono ipotizzare le seguenti due soluzioni di massima:
1) Modulare una portante analogica avente frequenza compresa tra 300Hz e 3400Hz con il segnale digitale; il risultato della modulazione è trasmesso nella rete telefonica come un normale segnale fonico, cioè analogico, per poi essere demodulato quando raggiunge il ricevitore. Le operazioni di modulazione e demodulazione, insieme con altre complesse funzioni di controllo, codifica e compressione dei dati, sono svolte da un dispositivo di comunicazione (DCE = Data Communication Equipement) denominato MODEM (MODulatore DEModulatore).
2) Utilizzo di reti adatte a trasmettere segnali numerici come, ad esempio, la rete CDN (Collegamenti Diretti Numerici), la rete ISDN (Integrated Service Digital Network) e la rete ADSL (Asymmetric Digital Subscriber Line).
Anche in questo caso il terminale dei dati deve essere collegato alla rete attraverso un particolare circuito d'interfaccia. Le reti numeriche consentono di operare ad elevate velocità con bassi tassi d'errore.
Durante la trasmissione, il segnale subisce distorsioni da parte del trasmettitore, del canale di trasmissione e del ricevitore oltre al rumore recepito dal canale di trasmissione.
La distorsione consiste nell’alterazione non voluta del segnale. Il rumore è un disturbo costituito da elementi prevedibili ed imprevedibili come le diafonie e le intermodulazioni, il rumore termico, i disturbi atmosferici, alterazione delle caratteristiche dei componenti per invecchiamento e riscaldamento. Per questi motivi conviene introdurre ridondanza nel segnale, attraverso dei codici di controllo e di autocorrezione, in modo di assicurarsi, entro certi limiti, della correttezza della trasmissione.
In fig. 1 si mostra lo schema a blocchi di un sistema di trasmissione dati che collega due dispositivi terminali DTE (Data Terminal Equipement), utilizzando due modem.
Fig. 1. - Schema a blocchi di un sistema di trasmissione dati con MODEM.
L’utilizzo del modem per la trasmissione dei dati può avvenire sulla rete telefonica commutata (RC) o dedicata (RD).
Nel primo caso il modem si collega alla normale presa telefonica attraverso un'attivazione manuale (operazione obsoleta e non più presente sui moderni modem) o automatica e la trasmissione avviene dopo aver selezionato via software il numero di telefono del destinatario; il modem di quest’ultimo si pone in risposta automatica e riceve le informazioni provenienti dalla linea.
I vantaggi della RC consistono nel basso costo d'esercizio e nella grande flessibilità in quanto è possibile collegarsi con chiunque possegga un modem. Uno svantaggio è la relativa lentezza di funzionamento per la modesta qualità della linea telefonica commutata. In questi ultimi anni la rete telefonica commutata si è trasformata quasi del tutto da analogica in numerica e il canale di trasmissione, che collega le attuali centrali, è in fibra ottica. Questo ha comportato un notevole miglioramento della qualità della trasmissione che ha incoraggiato molti utenti, soprattutto privati, all’uso di modem in RC ad elevata velocità (56Kbps) con basso tasso d'errore.
L’utente che esegue il collegamento sulla rete telefonica dedicata RD, realizza il collegamento punto-punto ed è connesso permanentemente ad un solo utente. Per le chiamate, pertanto, non è necessario formulare alcun numero. Il contratto CDN che si stipula con TELECOM prevede solo una spesa fissa che dipende dalla distanza dei due utenti (da pochi Km. a 1000Km.) e dalla velocità di comunicazione richiesta (da 64Kbps a 34Mbps) e non dalla durata della comunicazione. Per brevi distanze, ad esempio all’interno di un edificio, si può realizzare una RD privata gestita dall’utente stesso. Su questo principio si basano le reti locali.
I vantaggi della RD consistono nello scarso disturbo che consente un'elevata velocità di funzionamento. Uno svantaggio è il costo piuttosto elevato.
L’utente che deve effettuare le trasmissioni verso una sola destinazione per un numero d'ore giornaliere piuttosto elevato, può trovare conveniente, anche sotto il profilo della spesa, l’utilizzo della RD. Le reti dedicate sono utilizzate da utenti che sviluppano un grande traffico telefonico come banche, industrie, ecc.
In questo caso una sola linea collega tra loro più dispositivi. È una struttura basata su un elaboratore centrale dotato di un proprio modem collegato ad una linea alla quale sono connessi, tramite modem, vari DTE remoti. La linea, ovviamente, può essere utilizzata da una sola coppia d'apparecchiature per cui si rende necessario un protocollo che stabilisca l’accesso alla linea da parte dei vari DTE. Solitamente il compito è attribuito all’elaboratore centrale che esegue il polling (interrogazione ciclica) delle varie periferiche.
In fig.2 si mostra lo schema di principio del collegamento multipunto tra un elaboratore centrale e più dispositivi periferici, tramite l’utilizzo di modem.
Fig. 2. - Collegamento multipunto tra un elaboratore centrale e più DTE.
Con il tumultuoso progresso tecnologico in campo elettronico e in quello delle telecomunicazioni, i costruttori hanno inizialmente prodotto apparecchiature capaci di collegarsi solo a determinate altre apparecchiature della stessa ditta. Il problema dell'incompatibilità hardware e software spinse costruttori e governanti di molti paesi a istituire organismi internazionali composti da tecnici specialisti dei vari settori in grado di emanare regole e norme che consentissero il corretto funzionamento di apparecchiature tra loro collegate anche se di costruttori diversi. Uno di questi organismi è l’ISO (International Standard Organization).
In particolare, in un sistema di trasmissione dati è necessario stabilire una serie di regole hardware e software, denominate protocolli, indispensabili per assicurare un corretto collegamento e funzionamento tra apparato trasmittente e ricevente.
Tali protocolli devono garantire, ad esempio, la compatibilità tra i segnali elettrici dei terminali DTE e DCE, la correttezza della trasmissione con eventuale possibilità di rivelazione e correzione degli errori, ecc. In sede internazionale, è stato messo a punto dall'ISO un sistema di riferimento, denominato modello OSI (Open System Interconnection), che ha unificato in modo sistematico i protocolli di comunicazione nella trasmissione dati. Il modello ISO/OSI classifica i protocolli di comunicazioni in sette livelli come mostrato in fig.3.
Fig. 3. - Architettura dei livelli del modello ISO/OSI.
I protocolli di basso livello (1- 4) hanno funzioni legate al trasporto dei segnali elettrici fra trasmettitore e ricevitore. I protocolli d'alto livello (5 - 7) svolgono funzioni software d'elaborazione e trattamento dei dati.
In pratica, i protocolli di trasporto s'interessano del trasferimento dei dati da trasmettitore al ricevitore consentendo al software d'elaborazione di dedicarsi esclusivamente alla manipolazione ed all’elaborazione delle informazioni.
In un sistema di trasmissioni dati non tutti i livelli sono sempre presenti distintamente nel collegamento; ciò dipende fondamentalmente sia dal tipo di rete utilizzata (commutata, dedicata, punto-punto, multipunto, ecc.) che dalle specifiche costruttive dei computer impiegati (omogeneità nella struttura dei dati, compatibilità software, ecc.). Di seguito si fornisce una descrizione dei livelli ISO/OSI.
1 - Livello fisico. Definisce gli standard e le interfacce di comunicazione (RS-232, USB, firewire, Ethernet), meccaniche (tipo di materiale, forme di prese e spine, numero di contatti), elettriche (livelli di tensione di corrente, impedenza di ingresso e di uscita, risposta in frequenza), funzionali attraverso il significato dei vari segnali e procedurali attraverso la sequenza temporale dei segnali necessari per il corretto funzionamento. Facciamo un esempio di collegamento ad Internet tramite modem. Il calcolatore (DTE) si collega alla rete pubblica tramite un modem (DCE) utilizzando una certa interfaccia di livello 1 (RS-232, USB, wireless ...). Qualora si decida di modificare il tipo di accesso alla rete pubblica, per esempio passando da un normale accesso di tipo telefonico all'accesso di tipo ADSL, è sufficiente cambiare il modem esistente con uno nuovo avente la medesima interfaccia verso il calcolatore di quello precedente, con il risultato che il collegamento alla rete viene modificato senza modificare il calcolatore.
2 - Livello di linea. Definisce le procedure d'inizializzazione, sincronismo, rivelazione d'errori con protocolli di tipo BSC, HDLC, ecc. Gli aspetti più importanti di tali protocolli sono rappresentati dalle regole di riconoscimento e correzione degli errori e dalle modalità di colloquio tra i vari periferici. I servizi offerti dal livello 2 sono:
· senza connessione e senza riscontro; vengono inviati dei frame indipendenti e non vengono confermati dal destinatario quando questi vengono ricevuti, non viene instaurata una connessione diretta tra i 2 sistemi in comunicazione. Può capitare che alcuni frame non vengano ricevuti, e con questa strategia viene ignorato (a livello data link) il mancato recupero. È un servizio conveniente per reti con basso tasso di errore, con traffico che richiede una elevata trasparenza temporale (ad esempio per traffico vocale), in particolare viene usato nelle reti locali quando si preferisce la velocità all'integrità dei dati;
· senza connessione e con riscontro; caso analogo al precedente, solo che al momento della ricezione viene inviato dal destinatario un messaggio che conferma la corretta ricezione (acknowledge - ack ) del frame. Il mancato ricevimento dalla sorgente del segnale ack comporta la ritrasmissione del frame non confermato. Questo servizio è utile per reti non affidabili, ad esempio connessioni wireless. È possibile che un frame non riscontrato sia spedito più volte, inoltre questo meccanismo di riscontro è utile ma non necessario, infatti è possibile implementarlo a livelli superiori;
· con connessione e con riscontro; è il servizio più sofisticato, prevede tre fasi, instaurazione della connessione, invio dei dati e chiusura connessione. In questo modo è possibile garantire che ogni frame sia consegnato correttamente e nel corretto ordine. Viene fornito al livello di rete un flusso di bit affidabile.
3 - Livello di rete. Definisce le procedure necessarie al collegamento di rete tra utenti. Divide il messaggio da trasmettere in pacchetti e ne gestisce il transito attraverso la rete di trasmissione. La principale differenza rispetto al livello 2 è nel fatto che deve effettuare una vera e propria funzione di instradamento. I servizi offerti dal livello di rete possono essere sia con connessione che senza:
servizio con connessione; le entità coinvolte nella comunicazione stabiliscono una connessione, negoziando i vari parametri, e a questa connessione viene associato un identificatore. Questo identificatore viene inserito in ogni pacchetto inviato dalle due entità, la comunicazione è bidirezionale e i pacchetti viaggiano in sequenza lungo il percorso prestabilito in fase di negoziazione. Con questa strategia il controllo di flusso è operato automaticamente grazie ai parametri prestabiliti all'inizio. In questo modo si opera in modo da fornire un servizio di tipo affidabile;
servizio senza connessione; la sottorete viene considerata inaffidabile, pertanto sono il sorgente e il destinatario del flusso informativo che devono preoccuparsi di gestire sia gli errori che il controllo di flusso, in pratica è il livello di trasporto che si deve occupare di queste cose. Il servizio offerto è di tipo datagramma, cioè i pacchetti viaggiano indipendentemente l'uno dall'altro e devono contenere tutti un indirizzo di destinazione.
Per realizzare correttamente la principale funzione del livello di rete, ossia l'instradamento o routing, sono necessari opportuni algoritmi. L'algoritmo di routing deve calcolare su quale uscita di un commutatore instradare il flusso dati in ingresso. Se il servizio è con connessione, questo algoritmo si applica solo in fase di setup della connessione, se invece è senza connessione allora si applica su ogni pacchetto.
I requisiti per un algoritmo di routing sono:
semplicità, al fine di non richiedere ai nodi grandi sforzi di elaborazione;
robustezza, per garantire buone funzionalità anche in presenza di malfunzionamenti della rete;
stabilità, per non creare inconsistenze che possano rendere inefficace l'intradamento dei dati;
equità al fine di fornire la stessa qualità di servizio a tutte le connessioni;
ottimalità nelle scelte di percorso.
Gli algoritmi di routing possono essere statici e adattivi. Gli algoritmi statici sono eseguiti solamente all'avvio della rete e le decisioni prese non vengono più modificate. Rientrano in questa classe gli algoritmi:
shortest path routing; ogni router viene considerato come un nodo e una connessione punto punto come un ramo. Vengono calcolati i cammini minimi tra ogni coppia di nodi e vengono inviati a ogni router. I cammini minimi vengono calcolati in base al numero di nodi che devono essere attraversati, alla lunghezza dei rami, tempo medio di immagazzinamento e rilancio;
flooding; il pacchetto viene rinviato su tutti i rami tranne quello da cui è arrivato. In questo modo però si potrebbe generare un numero infinito di pacchetti, quindi per ridurre il traffico generato si possono utilizzare alcuni stratagemmi. Uno di questi richiede l'inserimento nei pacchetti di un numero massimo di nodi da attraversare, successivamente se questo numero viene superato il pacchetto viene scartato. Un altro richiede la verifica da parte di ogni router che quel pacchetto non sia già transitato, altrimenti lo scarta. Questo algoritmo è più robusto e affidabile anche se genera una quantità di dati tale da non essere usabile con efficacia;
flow-based routing; questo algoritmo effettua una stima del traffico atteso su ogni ramo, poi calcola il tempo medio di attraversamento, quindi decide su quale ramo instradare.
Nelle reti moderne sono in uso algoritmi dinamici di routing, in grado di adattarsi ai cambiamenti della rete stessa. Questi algoritmi funzionano non solo all'avvio della rete, ma rimangono in esecuzione durante il normale funzionamento della rete stessa. Fanno parte degli algoritmi dinamici di routing:
distance vector routing; ogni router mantiene al proprio interno una tabella in cui vengono indicizzati tutti gli altri router conosciuti fino a quel momento nella rete. In questa tabella viene memorizzato per ogni altro router la distanza e il ramo d'uscita per arrivarci. Il router a intervalli di tempo manda degli speciali pacchetti chiamati echo a tutti gli altri nodi adiacenti e misura il tempo di risposta. Appena completa la tabella la invia ai nodi adiacenti. In questo modo non viene a conoscenza del router la topologia totale della rete, ed inoltre la convergenza dell'algoritmo è piuttosto lenta quando si verificano eventi che modificano la topologia della rete;
link state routing; ogni router controlla lo stato dei collegamenti con i router adiacenti, misurando i ritardi di attraversamento, e distribuisce queste informazioni agli altri nodi adiacenti. Considerando tutti i pacchetti arrivati, si costruisce un grafo della rete e si calcola il cammino minimo per ogni nodo della subnet. Questo algoritmo è molto usato, ad esempio una sua implementazione in internet è piuttosto affermata, questa corrisponde al nome di OSPF - Open Shortest Path First.
Quando la grandezza della rete diventa tale da non permettere un efficace utilizzo di questi algoritmi, viene utilizzato il metodo del routing gerarchico. La rete viene suddivisa in regioni e gli algoritmi si applicano su due livelli; all'inizio si opera all'interno di una regione, successivamente si applica l'algoritmo una seconda volta su tutti i router che fanno parte del confine di una regione.
4 - Livello di trasporto. Definisce ed ottimizza i collegamenti tra utenti. Gestisce l’apertura e la chiusura dei collegamenti, sceglie il percorso ottimale lungo la rete, rivela e corregge i dati errati di trasmissione. Non tutti le applicazioni hanno bisogno delle stesse funzioni, per cui si possono definire diverse classi di servizi di trasporto.
Ad esempio nel modello internet lo strato di trasporto prevede diversi protocolli per la fornitura di diverse tipologie di servizio. I più usati fra questi protocolli sono:
TCP per un trasferimento dati end-to-end connection oriented con recupero degli errori e controllo del flusso;
UDP per un trasferimento dati end-to-end connectionless;
RTP per un trasferimento dati end-to-end che rispetti il più possibile stretti requisiti di temporizzazione.
Un'applicazione di trasferimento file tipicamente utilizzerà TCP, mentre l'applicazione di invio di un e-mail utilizzerà UDP ed un collegamento audio via Internet utilizzerà RTP.
5 - Livello di sessione. Definisce le modalità per individuare l’indirizzo dell’utente, interrompe il collegamento e lo riattiva in qualunque momento e per qualsiasi causa. Definisce, inoltre, il tipo di collegamento (half-duplex, full-duplex, ecc.).
Una sessione può essere individuata, aperta ed interrotta per fare fronte a vari eventi catastrofici: perdita di dati, caduta della linea, momentaneo crash di uno dei due interlocutori. Permette, inoltre, la corretta chiusura del dialogo, con la garanzia che tutti i dati trasmessi siano arrivati a destinazione.
6 - Livello di presentazione. Definisce le modalità per interpretare e modificare i dati ricevuti in modo da presentarli in forma idonea e comprensibile sul terminale utente.
Nell'architettura dei protocolli di internet non sono previsti strati di sessione e presentazione, per cui le relative funzioni sono demandate alle applicazioni.
Per questa ragione, ad esempio, dobbiamo preoccuparci di specificare il tipo di codifica quando inviamo un allegato ad un e-mail, oppure dobbiamo ricominciare da capo una navigazione se per qualche ragione cade il collegamento.
Se queste funzioni fossero previste in rete, la rete stessa si preoccuperebbe di svolgerle, senza renderle visibili all'utente.
7 - Livello di applicazione. Definisce le procedure, gli archivi e i pacchetti software applicativi che l’utente può utilizzare anche se fisicamente allocati su altri terminali di rete.
Sono applicazioni i programmi che utilizziamo normalmente per accedere a servizi di rete, quali il browser Internet, il programma di invio e ricezione dell'e-mail, i programmi di trasferimento file e condivisione delle risorse eccetera.
Secondo il modello di riferimento OSI, il risultato dell’interazione verticale tra i livelli costituisce un servizio (service).
Si definisce N-service provider il fornitore di servizi a livello N che comprende lo stesso livello N e tutti i livelli inferiori fino al primo.
Si definisce N-service user l’entità, inteso come elemento attivo, di livello N+1 che fa uso dei servizi del livello N.
Il generico strato N, nel fornire servizi allo strato N+1, maschera a quest’ultimo l’esistenza degli N-1 strati sottostanti.
Un servizio può essere:
· senza connessione;
· orientato alla connessione.
Un servizio si dice senza connessione (connectionless) se il trasferimento dei dati avviene senza che sia prima stabilita una connessione.
Per ogni accesso al servizio vengono fornite tutte le informazioni necessarie per il trasferimento dei dati ed ogni unità dei dati viene trasferita in modo indipendente dalle altre.
Un servizio orientato alla connessione (connection oriented) individua due o più sistemi interessati al trasferimento dei dati e successivamente:
· apre la connessione inviando opportune informazioni iniziali atte a stabilire le modalità di transito dei dati;
· effettua il trasferimento dei dati vero e proprio;
· chiude la connessione.
L’interfaccia tra una entità di livello N+1 ed una di livello N prende il nome di N-SAP (N-Service Access Point).
Ogni N-SAP possiede un indirizzo unico per poter essere riconosciuto inequivocabilmente.
Un N-SAP è connesso ad una sola entità del livello N+1 ed ad una sola entità del livello N. Non è, quindi, possibile che due entità di livello N+1 utilizzino lo stesso N-SAP. È possibile, invece, che una entità di livello N sia collegato a due o più distinti N-SAP o a due o più distinti n-1 SAP come si mostra in figura 4.
Fig.4. – Il punto nero rappresenta un N-SAP. A sinistra si mostra la corretta connessione tra entità appartenenti ai livelli N-1, N e N+1. A destra si mostra una connessione scorretta.
Quando una applicazioni attiva il trasferimento dei dati ad un’altra applicazione, le informazioni transitano dal livello 7 al livello 1 passando attraverso i livelli intermedi.
Per ogni passaggio verso il basso vengono aggiunte, ai dati ricevuti, informazioni di servizio specifiche di quel livello note come intestazione (header).
I dati giunti al livello 1 contengono le informazioni utili vere e proprie più le intestazioni dei vari livelli attraversati. È come se, per ogni livello attraversato, le informazioni siano inserite in scatole successive. Il livello 1 provvede al trasferimento dei dati dall’applicazione che ha generato i dati all’applicazione che ne ha fatto richiesta.
Quando i dati raggiungono il sistema ricevitore si attiva un procedimento al contrario. I dati ricevuti sul livello 1 vengono depurati dell’header del livello 1 e trasferiti al livello 2 e così via fino a raggiungere il livello 7 dell’applicazione ricevente secondo il meccanismo delle scatole cinesi.
Il passaggio dei dati dall’applicazione trasmittente a quella ricevente non è avvenuta direttamente (per via orizzontale) ma attraverso un passaggio verso livelli inferiori nel sistema trasmettitore ed un successivo passaggio dai livelli inferiori verso il livello 7 del sistema ricevitore.
Si mostra in fig.5 la tecnica della trasmissione tra le applicazioni secondo lo standard ISO-OSI.
Fig.5. – Meccanismo a strati secondo lo standard ISO-OSI per il trasferimento dei dati tra due applicazioni.
a cura del prof. Giuseppe Spalierno, docente di Elettronica - ultima versione febbraio 2005