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
 

RETI DI CALCOLATORI

informatica



RETI DI CALCOLATORI

(bozza aggiornata al 28/5/99 - liv 1-2-3-4)


INDICE


Introduzione

Reti di calcolatori

Gli standards

Il modello ISO-OSI



Internetworking

Esempi di reti



INTRODUZIONE.


Sin dalla metà degli anni '60 l'evoluzione tecnologica consentiva, in un Centro di Calcolo, di collegare ad un grosso calcolatore centrale (mainframe) delle postazioni di lavoro che permettevano anche ad utenti lontani di accedere alle risorse del mainframe.

Inizialmente, queste erano le reti in uso. Le postazioni di lavoro erano costituite da terminali privi di risorse proprie, senza rilevanti capacità di elaborazione e controllati direttamente dal calcolatore centrale. Tali reti vengono chiamate reti di terminali.

L'impossibilita' di eseguire lavoro autonomo e il controllo centralizzato della comunicazione rendeva il tutto molto lento; questo limite è stato risolto introducendo calcolatori capaci di fare elaborazioni in ambito locale e decentrando le risorse e la loro gestione.

Si ha così il passaggio da sistemi centralizzati a sistemi distribuiti e l'evoluzione da reti di terminali a reti di calcolatori.


Gli scopi principali di una rete, condividere le risorse e scambiare i messaggi, sono raggiunti con la funzione di elaborazione e quella di trasferimento delle informazioni.


Una rete e'formata di nodi (calcolatori ed altri dispositivi) e di collegamenti tra i nodi.

Essa si puo' suddividere in sottorete di elaborazione, formata di nodi terminali (End System) ed in sottorete di commutazione costituita di nodi di commutazione (Intermediate System).

I nodi terminali, a loro volta, si classificano in:

Server: sono quelli che forniscono i servizi;

Client: sono quelli che usufruiscono dei servizi offerti dai server.

I nodi di commutazione servono per instradare i dati trasmessi da un nodo terminale e diretti ad un altro.


Attenzione a non confondere un server con un IS: un server fornisce dei servizi (WEB, posta elettronica, ecc.), un IS smista i dati in arrivo verso le destinazioni.





Esempi.

La rete bancaria, la rete di un Comune, la rete di un laboratorio, Internet (rete di reti), ecc


I collegamenti tra i nodi di una rete possono essere di 2 tipi: punto-punto e multipunto




2. RETI DI CALCOLATORI.


Le reti differiscono per la loro storia, l'amministrazione e le funzioni offerte, per il progetto tecnico e per la comunità degli utenti.

Le funzioni disponibili variano da un'arbitraria comunicazione da processo a processo fino alla posta elettronica , al trasferimento di file , al collegamento remoto ed all'esecuzione remota.

I progetti tecnici possono differire per i mezzi di trasmissione utilizzati , per la denominazione e gli algoritmi di instradamento impiegati e per i protocolli usati.

Infine, la comunità degli utenti nel mondo industrializzato può variare dalla singola azienda agli scienziati d'informatica nelle università.

Pertanto i parametri che possono classificare una rete e renderla diversa da un'altra possono essere: la topologia, l'estensione geografica, il protocollo, la proprietà, il mezzo trasmissivo, la modalita' di funzionamento.



2.1 LE TOPOLOGIE


Tutti gli elementi che compongono una rete di calcolatori possono essere connessi fisicamente tra loro in molti modi, secondo le necessità reali. La disposizione fisica dei nodi e dei collegamenti definiscono quella che si chiama topologia.


Ogni topologia possiede caratteristiche diverse per quanto riguarda: costi iniziali, costi di comunicazione e affidabilita'.


Topologia a stella


La topologia a stella prevede un nodo centrale al quale sono connessi tutti gli altri.

A parte il nodo centrale tutti i nodi presentano una sola linea di collegamento, quindi i costi iniziali saranno piuttosto alti a causa del numero elevato di linee da cablare.

I costi di comunicazione sono bassi poichè per raggiungere un altro nodo è necessario l'attraversamento di non più di due collegamenti.

Il maggior pericolo per le reti a stella è la formazione di un collo di bottiglia all'interno della stazione centrale dovuto ad un grande flusso di dati.

Il livello di affidabilita' è piuttosto basso infatti il nodo centrale è un nodo critico, se non funziona correttamente la rete puo' risultare inutilizzabile.

Non bisogna però confondere una rete a stella con un sistema centralizzato: in una rete a stella ogni nodo periferico ha le sue risorse eventualmente condivisibili con gli altri nodi, la gestione del movimento dei dati viene lasciata al nodo centrale; in un sistema centralizzato le risorse sono nel mainframe.

Una variante della rete a stella è la rete a stelle connesse in cui viene raggiunto un livello di sicurezza maggiore.


Topologia ad anello


In una topologia ad anello, ogni nodo è fisicamento connesso con altri due in modo da costruire una struttura circolare. L'anello può essere unidirezionale o bidirezionale.

Unidirezionale: Ha una affidabilita'  non molto superiore a quella di una rete a stella, costi iniziali bassi , costi di comunicazione notevolmente incrementati. Non esistono nodi prevalenti sugli altri quindi sarà meno frequente la formazione di colli di bottiglia. Questo modello è molto sensibile ai guasti in caso di interruzione del canale trasmissivo.

Bidirezionale: Se consideriamo la rete bidirezionale molti problemi vengono risolti. In una rete ad anello bidirezionale il numero medio di nodi attraversati scende da "n-1" a "n/2" e il pericolo dell'isolamento viene eliminato. I nodi hanno la possibilità di scegliere il percorso per il messaggio in base a criteri di intensità del traffico e alla velocità di canali di diversa natura fisica.


Topologia gerarchica


Una rete con topologia gerarchica è caratterizzata da un'organizzazione ad albero dei nodi: ogni nodo (tranne la radice) è figlio di un nodo padre e potrà avere fratelli e figli.

Un'architettura di questo genere può essere utilizzata in ambienti aziendali con elaborazioni locali e controllo strettamente gerarchici.

In questi ambienti sono veloci i collegamenti tra nodi figli e padri mentre tutti gli altri sono molto più lenti.

Una struttura gerarchica può essere considerata equivalente a una a stelle connesse.

Se si presenta un problema ad un nodo, allora i suoi figli non possono più comunicare con il resto della rete. Questo guasto causa la spaccatura dell'architettura in vari sottoalberi.



Topologia completamente connessa


In questo tipo di architettura ogni nodo della rete è connesso direttamente a tutti gli altri

I costi iniziali saranno molto alti dato il grande numero di connessioni che aumenteranno in modo quadratico rispetto ai nodi.

Il vantaggio fondamentale è la velocità di comunicazione infatti un messaggio deve attraversare una sola linea per arrivare a destinazione.

Molto alta è anche la resistenza ai guasti. Un sistema come questo offre prestazioni e costi molto elevati e per questo viene realizzato solo in alcuni casi.



Topologia parzialmente connessa


In una rete con topologia parzialmente connessa esistono solo alcuni collegamenti abilitati al momento della progettazione secondo le necessità reali di ogni nodo.

Una rete di questo tipo ha come obiettivo principale quello di contenere i costi cercando di mantenere le connessioni dirette fondamentali.

Topologia a bus


Questa architettura prevede che i nodi della rete siano tutti collegati a un unico canale di comunicazione condiviso.

Le reti a bus possono essere di due tipi: Lineari e Circolari.

In entrambi i casi i costi iniziali non sono eccessivi e il Bus Circolare, grazie alla connessione degli estremi del canale, può garantire una maggiore velocità di comunicazione . Poiche' il mezzo trasmissivo e' condiviso, il problema fondamentale dei protocolli e' quello di gestire l' accesso ordinato dei singoli nodi alla rete.


Le topologie piu' importanti sono rapprenesate in figura:




2.2 RETI GEOGRAFICHE, LOCALI E METROPOLITANE


Se consideriamo l'estensione, possiamo classificare le reti in tre grandi famiglie: geografiche (WAN), locali (LAN), metropolitane (MAN).


2.2.1 RETI GEOGRAFICHE


Sono chiamate WAN (Worldwide Area Network)  perche' si estendono su aree geografiche molto vaste con collegamenti tra nodi anche dell'ordine di migliaia di chilometri.

I nodi di una rete geografica (WAN) sono connessi secondo le modalità punto-punto o multipunto.




(FIG.4.12 PAG.104 SISTEMI 3- Struttura di una rete geografica)


Con riferimento alla figura possiamo identificare:

- un livello che comprende la rete di comunicazione, che mette in collegamento i nodo principali  (dorsale) e garantisce i servizi principali e la gestione complessiva del trasferimento delle informazioni.

- un livello  base, che comprende la gestione del lavoro locale, delle risorse locali e la connessione alle risorse globali del sistema (tramite i nodi principali).

I nodi concentratori: collegano un gruppo di terminali al nodo principale a cui fanno riferimento per le loro operazioni.

I nodi multiplatori: forniscono le funzionalità simili a quelle dei concentratori ma  cambia il principio di connessione tra i terminali e il nodo principale.

Il nodo di transito: nodo addetto alla sola gestione del traffico ed eventualmente al collegamento ad altre aree della rete.


Le caratteristiche di una WAN sono:

possibilita' di collegare tra loro terminali anche molto lontani ed in numero notevole;

velocita' di trasmissione medio-basse (tipicamente 9600 bps- 64 Kbps)

probabilita' di errore elevata se paragonata con quella delle reti locali (circa 10-8)


Un esempio di rete WAN può essere quella di una azienda con filiali anche estere e conforme alla architettura SNA IBM.


Oltre ai servizi propri di ogni rete (accesso al DB dell'azienda, ecc) ne esistono altri che sono divenuti assai diffusi:

VIDEOTEX: è un servizio di accesso a banche dati di interesse generale per utenti che vi accedono tramite linea telefonica;

FACSIMILE: è un servizio di riproduzione a distanza (per linea telefonica) di  supporti cartacei;

BBS (Bullettin Board System): è un servizio di bacheca elettronica la cui installazione richiede semplicemente un computer, un modem, un programma di gestione di una linea telefonica;

POSTA ELETTRONICA: è un servizio che consente lo scambio automatico di messaggi tra tutti gli utenti di una rete.


Il trasferimento dei dati avviene generalmente su collegamenti multipunto in broadcast, cioe' i messaggi non raggiungono solo il destinatario, ma anche altri nodi. Solo il primo pero' riconosce che il messaggio e' per lui e lo accetta.




2.2.2 RETI LOCALI E METROPOLITANE

Le caratteristiche di una LAN (local area network) sono:

La rete si espande al massimo su un'area  con diametro di circa un chilometro e non attraversa suolo pubblico (ad esempio una rete d'istituto che collega fra loro i vari laboratori ed uffici);

un'elevata velocità di trasferimento dati (molti Mb/sec);


Poiché l'area di diffusione è limitata, è possibile utilizzare cavi di connessione a larga banda e protocolli che usano meccanismi di controllo dell'errore e della velocità di trasmissione decisamente più elementari.

Nelle reti locali, infatti, per l'alta qualità dei mezzi trasmissivi, può essere sufficiente verificare la presenza d'errori ai livelli superiori del protocollo per essere sicuri delle prestazioni dei livelli inferiori. Di conseguenza i livelli inferiori vengono ad essere semplificati.


2.2.2.1 Protocolli di rete locale


Per avere accesso alla rete ogni nodo ha diversi metodi tra cui i principali sono:

1) Accesso ad assegnazione fissa;

2) Accesso probabilistico;

3) Accesso deterministico;


Protocolli ad accesso fisso

I due principali metodi sono denominati TDMA (Time Division Multiple Access) e FDMA (Frequency Division Multiple Access), entrambi cercano di sfruttare al massimo il mezzo trasmissivo disponibile.

Con TDMA il mezzo trasmissivo   viene riservato ciclicamente ad ogni risorsa per un intervallo di tempo prefissato.

Nel metodo FDMA è invece la banda ad essere divisa in sottobande, una per ogni nodo.

Questi due metodi sono utili solo in condizioni particolari specialmente in presenza di forte regolarità di struttura e di traffico.

Protocolli ad accesso probabilistico


Gli algoritmi di questo secondo gruppo sono dinamici e di tipo probabilistico, vengono spesso utilizzati in reti con topologia a bus o ad albero operanti in banda base. Questi metodi non escludono la probabilità di una collisione, ma usano particolari tecniche per risolvere questa complicazione.

ALOHA consiste nella trasmissione del frame in un qualsiasi istante da qualsiasi utente, senza osservare temporizzazioni particolari, naturalmente, con questo metodo, la possibilità di collisione con effetti distruttivi per la trama è alta. Se gli utenti non riceveranno, entro un certo tempo, il frame di riscontro, allora potranno dedurre che il loro messaggio è andato distrutto e quindi sarà necessario rispedirlo dopo un intervallo di tempo casuale. Questo procedimento continuerà finché la trasmissione non avrà esito positivo. Può essere usato su reti con un basso traffico di tipo distribuito.

CSMA/CD (Carrier Sense Multiple Access/ Collision Detector). A differenza del precedente, prima di trasmettere un frame si effettua un ascolto della linea e solo se questa è libera inizia la trasmissione della trama. Esiste pero'ancora la possibilità di collisioni, perché due stazioni in ascolto potrebbero non sentire attivita' sul canale e quindi decidere di trasmettere. Per effetto dei ritardi di propagazione del segnale si potrebbe verificare una collisione. In caso affermativo, ogni stazione (ognuna è in grado di rilevare le collisioni) attende per un intervallo casuale di tempo prima di ritentare la trasmissione dei dati. Questo metodo è stato adottato come riferimento per lo standard delle reti locali IEEE 802.

La rilevazione di collisione avviene tramite dispositivi hardware.


Conoscendo il ritardo di propagazione lungo il canale fisico a disposizione, si può inoltre porre un limite massimo alla lunghezza dei segmenti di cavo tra le stazioni cosi' da ridurre la probabilita'di collisione.

L'algoritmo di accesso al mezzo e' il seguente:

la stazione ascolta se il canale è libero;

se l'esito è positivo mette in rete il frame, altrimenti ripete il procedimento finché il canale non sarà libero;

durante la trasmissione controlla lo stato del canale dopo la trasmissione d'ogni bit (col dispositivo chiamato "collision detector"): se il valore rilevato è differente da quello trasmesso allora c'è stata una collisione;

se non si rivelano collisioni per tutto il tempo della trasmissione del frame, allora la spedizione è giunta a buon fine;

se si rivelano collisioni il dispositivo provvederà al rilascio del canale da parte della stazione emittente;

dopo un opportuno intervallo di tempo, la stazione potrà ritentare l'accesso al canale.



Protocolli ad accesso deterministico


Sono usati con reti di tipo "ad anello" e "bus ad anello".

Si hanno N stazioni numerate progressivamente da uno a N, l'accesso alla rete avviene ordinatamente con precedenza alla stazione con priorita' piu'elevata.


I principali protocolli sono:

TOKEN-BUS. All'interno della rete viaggia un particolare frame (denominato token) in un unico esemplare che abilita a turno le stazioni alla comunicazione. Quando una stazione vuole trasmettere deve attendere il suo turno: una volta rilevata la presenza del token, essa ha un periodo di tempo per inviare i dati lungo la rete.

Un gran vantaggio di questo metodo è che è possibile sapere il tempo massimo d'attesa visto che il numero di stazioni è conosciuto. Questo tipo di protocollo è usato frequentemente negli ambienti d'automazione industriale.

Svantaggi in questo metodo sono: l'inevitabile tempo d'attesa che in una rete con molti utenti si fa eccessivo e inoltre in caso d'operazioni che richiedono più tempo d'esecuzione si rende necessaria una frammentazione delle stesse in più momenti.


SLOTTED-RING. All'interno della rete viaggiano particolari frame denominati slot che contengono, in forma binaria, il numero corrispondente all'indirizzo del destinatario del messaggio. Lo slot si muove nella rete come una locomotiva a cui sono attaccati tutti i vagoni che costituiscono il messaggio. Quando lo slot arriva ad una stazione, essa controlla se l'indirizzo corrisponde con il suo, se è uguale svuota lo slot e lo rilascia, altrimenti lascia passare lo slot intatto.

Problematico in questo metodo è definire il ritardo massimo poiché, al normale ritardo, va sommato il tempo di controllo da parte delle stazioni dell'indirizzo; procedimento che viene fatto ad ogni attraversamento dello slot su di una stazione. Da ciò si deduce che il tempo massimo dipende dalla lunghezza dell'anello e dal numero di stazioni della rete..


TOKEN-RING. E' il metodo più importante che si basa sulla topologia ad anello e viene definito anche dallo standard IEEE 802. In questo protocollo il sistema di funzionamento è simile a quello dello slotted-ring, soltanto che nella rete gira un solo token. Quando una stazione vuole trasmettere attende l'arrivo del token e lo sostituisce con il messaggio. La stazione ricevente, legge il messaggio ed imposta un codice di ritorno. Il ritorno del frame con l'indicazione dell'avvenuta lettura o con un codice di errore permette al mittente di rimettere il token o ritentare se ne ha la facolta'(timeout). Un vantaggio rispetto al metodo precedente è che ogniqualvolta una stazione acquisisce il frame diventa momentaneamente master del sistema e può gestire l'intero procedimento di comunicazione.




2.4 RETI PUBBLICHE E PRIVATE


Sono numerose le reti attualmente in funzione in tutto il mondo. Alcune di esse sono reti pubbliche, gestite da società di servizi di comunicazione, altre sono reti di ricerca, altre sono reti cooperative gestite dai loro utenti, altre ancora reti commerciali o aziendali.

In molte nazioni, il governo o determinate società private hanno cominciato ad offrire servizi di connessione di rete a qualunque organizzazione che desideri abbonarsi. La sottorete è di proprietà dell'operatore della rete, che fornisce il servizio di comunicazione per gli host ed i terminali dei clienti. Questo sistema è noto come rete pubblica ed è analogo ad un sistema telefonico pubblico.

Le reti che invece non ammettono un accesso pubblico, ma sono limitate ad utenti con particolari caratteristiche come ad esempio alcuni dipendenti dell'azienda proprietaria della rete, sono dette reti private.


2.5 RETI ANALOGICHE (CDA) E NUMERICHE (CDN)

Reti analogiche

Le linee analogiche, pensate originariamente per la trasmissione del segnale vocale, fanno parte del servizio telefonico nazionale e si trovano ovunque.

Per quanto sia possibile sfruttare un normale collegamento telefonico su rete telefonica pubblica (PSN - Public Switched Network), per quantita' dati notevoli e' piu' ragionevole disporre di una linea dedicata (CDA - Canale Dati Analogico).

Le linee CDA vanno richieste alla Telecom.

La trasmissione dati digitali su linea analogica va fatta con l'uso di un apparecchio detto modem (modulatore/ demodulatore).

La massima velocita' di trasmissione del traffico digitale ottenibile su linee analogiche commutate (PSN) e' un limite teorico dato dalla larghezza di banda limitata originariamente pensata per comunicazioni vocali, ed e' di 43 Kbit/s. Attualmente i modem piu' veloci comunemente disponibili sono a velocita' di 32.6 Kb/s. Un metodo particolare di codifica dei dati si sta cominciando ad affermare, detto X2, che permette di arrivare a velocita' di 55.6 Kb/s.


Linee digitali

Sono linee specificamente usate per istradare il traffico di dati. Non richiedono la presenza di modem ma di una semplice interfaccia verso la linea digitale, detta CDU/CSU ( Channel Service Unit/ Digital Service Unit).

Le linee digitali disponibili commercialmente raggiungono velocita' di 45 Mb/s e sono disponibili sia come servizi commutati (reti a pacchetto), che come servizi dedicati (CDN - Canale Dati Numerico).

I servizi digitali dedicati piu' usati hanno denominazione diversa in America e in Europa:

canale T1 - americano, a velocita' globale di 1.544 Mb/s suddivisibile in 24 canali da 64 Kb/s, anche affittabili separatamente (T1 frazionario)

canale T3 - americano, eqiuvalente a 28 linee T1 o 45 Mb/s

canale E1 - europeo, di 2.048 Mb/s suddivisibile in 32 canali a 64 Kb/s


2.6 MODALITA' DI FUNZIONAMENTO


Commutazione di circuito

La commutazione di circuito prevede l'impiego fisico ed esclusivo del percorso che deve compiere il messaggio per arrivare a destinazione. Con questa tecnica non si hanno ritardi e l'unico ritardo possibile è dovuto alla propagazione del segnale lungo la linea. Il fatto di dedicare un certo segmento di linea può causare delle attese ad altri utenti che richiedono delle connessioni  in transito della centralina coinvolta.


Commutazione di messaggio

La commutazione di messaggio non prevede l'acquisizione fisica di un percorso di linea, ma vengono impegnate solo le parti del cammino interessate in quel momento al transito del messaggio e non tutte le tappe del percorso in modo esclusivo.



Commutazione di pacchetto

Il messaggio deve essere diviso in piccole porzioni (pacchetti) ognuno indipendente.

Così facendo ogni pacchetto può scegliere strade diverse per arrivare a destinazione, consentendo di ridurre i  rischi di sovraffollamento di una linea e in caso si verifichino degli errori non si dovrà più rispedire l'intero messaggio , ma il singolo pacchetto.

Nella trasmissione dati con la commutazione di pacchetto si sfrutta meglio la rete consentendo collegamenti multipli con tempi di attesa molto brevi (time sharing).



2.7 RETI DIGITALI A SERVIZI INTEGRATI (ISDN)

Lo Integrated Systems Digital Network (ISDN) e' uno standard governato dalla ITU-T (nota precedentemente come CCITT). Lo standard definisce una specifica generica per telefonia digitale ed e' in esistenza dagli anni 1980. Sebbene ISDN offra un metodo completamente nuovo per l'organizzazione dell'informazione trasportata in collegamenti punto-punto (cioe' l'uso di un segnale digitale anziche' analogico), uno dei suoi punti di forza princopali e' la compatibilita' con l'infrastruttura esistente telefonica e comunicativa. Si possono usare le centraline esistenti e gran parte della caveria per collegare stazioni sia private che commerciali. Sebbene ISDN sia progettato per funzionare in modo ottimale con apparecchiature elettroniche speciali, anche i telefoni e i fax standard si possono collegare a ISDN facendo uso di adattatori particolari.

Il servizio ISDN tradizionale viene anche detto Narrow Band ISDN (a banda stretta), per differenziarlo dal prossimo venturo Broadband ISDN (B-ISDN - a banda larga).

Tipi di Servizi: BRI e PRI

Una chiamata tramite ISDN consiste in un canale dedicato tra le due stazioni dedicate, alla velocita' di 64 kbit/sec e controllato da un protocollo standard.

Un'interfaccia Basic Rate Interface (BRI)\consiste di:

due canali 'B' (bearer) a 64kbps

un canale 'D' (delta) a 16 kbps

I canali B sono usati per la trasmissione di voce o dati, il canale D per la senalazione e/o la trasmissione di pacchetti X.25. La BRI e' concepita per l'uso privato, ma anche un'organizzazione puo' possedere piu' BRI collegati tra loro tramite l'ente telefonico.

L'altro servizio disponibile e' chiamato Primary Rate Interface (PRI) e consistente in America e in Giappone di 23 canali B ed 1 canale D sull'interfaccia fisica T1, e in Europa ed altri paesi di 30 canali B ed 1 canale D sull'interfaccia fisica E1.

Il PRI si usa tipicamente per connessioni tra un PBX (centralino privato) ed un Central Office (CO), punto di smistamento locale o a lunga distanza di un fornitore d'accesso telefonico. Il PRI e' inteso soprattutto per le organizzazioni e da' la possibilita' al centralino PBX di distribuire i canali B a richiesta agli utenti.

3. GLI STANDARDS


Nel mondo della trasmissione dati e delle reti di comunicazione esistono moltissimi standards. Una delle possibili classificazione e' quella tra standard di fatto e di diritto.

Ci sono anche diversi enti che emettono standard. Di seguito si riportano i principali:

ISO (Internatinal Standard Organization) = ente di standardizzazione internazionale, emette standards di tutti i tipi, tra questi anche per reti di calcolatori;

ANSI (American National Standards Institute) = istituto americano per gli standards, e' un ente privato, i suoi membri sono produttori, societa' di servizi di comunicazione;

IEEE (Institute of Electrical and Electronics Engineers) = organizzazione professionale degli ingegneri elettrotecnici ed elettronici;

CCITT (Comite' Consultatif International de Telegraphie et Telefonie) = organismo internazionale delle PTT (poste e telegrafi delle singole nazioni)


4. Il Modello di Riferimento OSI dell'ISO


Dopo aver analizzato le varie classificazioni di reti, prendiamo in esame il modello ISO-OSI, che costituisce attualmente un modello di riferimento per le reti.

Il significato dei termini e' il seguente:

OSI/RM=Open System Interconnection Reference Model (Modello di riferimento per la interconnessione di sistemi aperti);

ISO=International Standard Organization (Organizzazione internazionale degli standard)

Si tratta di un modello di architettura di rete elaborato nel 1978 dal Comitato tecnico 97 all'interno dell'ISO denominato OSI/RM.

L'OSI/RM è stato elaborato con l'obiettivo di fornire una base comune di coordinamento per lo sviluppo di "standard" relativi all'interconnessione di sistemi.

L'OSI/RM è sufficientemente generale ed abbastanza flessibile da poter "assorbire" eventuali nuove tecnologie del mezzo trasmissivo e nuove applicazioni di utente e consentire una graduale convergenza delle architetture proprietarie verso l'OSI/RM stesso.


In sintesi alcune definizioni utilizzate in ambiente OSI:

- Sistema. Insieme di uno o più elaboratori, del loro software associato, delle loro componenti hardware, dei loro utenti, della rete che li connette, che permettono una elaborazione di dati.

- Processo applicativo. Elemento di un sistema che esegue l'elaborazione delle informazioni.

- Apertura. Riferita ad un sistema di rete, indica la possibilità tra i relativi utenti di comunicare tra loro mediante una qualsiasi apparecchiatura indipendentemente dalla casa costruttrice.

- Interconnessione. Processo di cooperazione all'interno di una rete. In pratica lo scambio di informazioni (tra processi applicativi) per il raggiungimento di un risultato comune.


Approfondiamo ora il concetto di cooperazione nel modello OSI/RM.

Una cooperazione richiede innanzi tutto l'esistenza di un mezzo trasmissivo (rete di telecomunicazione) che permetta lo scambio fisico delle informazioni.

Tale scambio di informazioni avviene grazie ad un "servizio di trasporto" che si occupa della gestione della rete in modo tale da trasferire i dati all'interno di essa.

Questo servizio di trasporto libera quindi il software applicativo dalle operazioni di comunicazione e se ne occupa in maniera trasparente, non alterando cioè il contenuto dell'informazione trasmessa.

Deve inoltre essere in grado di gestire una vasta quantità di tipologie di rete a seconda delle esigenze dell'utente.

Per far ciò vengono utilizzati due tipi di protocolli: ad alto e basso livello.

Quelli ad alto livello comprendono le procedure di elaborazione dei dati atte a creare la cooperazione. Quelli a basso livello invece prendono in considerazione l'aspetto comunicativo di una rete risolvendo i problemi a livello hardware della trasmissione.


Appare evidente una visione del modello ISO/RM a strati o livelli ognuno dei quali avente la funzione di assolvere ad un particolare compito. Il risultato dell'elaborazione di ogni livello viene così offerto al livello successivo arricchito di controlli e protezioni.


La scelta dei livelli nel modello ISO/RM rispetta i seguenti criteri:

- ogni livello deve contenere funzioni in numero tale da non complicarne la gestione ma anche di non renderlo ingiustificato;

- i protocolli devono agire esclusivamente all'interno di un solo livello per volta;

- i livelli devono poter subire modifiche interne senza che ciò provochi ripercussioni sui servizi offerti;

- nessuna funzione di un livello deve essere a conoscenza di come i servizi di cui ha bisogno le vengono forniti, è sufficiente che sappia il modo per richiederli.


Con tali premesse il modello OSI/RM è stato articolato nei sette livelli rappresentati in figura:




I livelli dell'OSI/RM non necessariamente devono essere realizzati all'interno dello stesso elaboratore. Infatti data la definizione di rete aperta è possibile far gestire alcuni livelli (primi tre livelli) da una unità di controllo della linea e i restanti da un normale elaboratore.

Inoltre la standardizzazione non può essere estesa anche alle interfacce tra i vari livelli che, per problemi legati ai costi ed alla tecnologia di costruzione, non potranno mai essere universalmente compatibili. Questo provoca alcuni problemi nell'ideazione di sistemi di rete aperte.


Prima però di addentrarci nella descrizione dei singoli livelli del modello, è necessario chiarire alcuni concetti fondamentali utilizzati nel modello OSI.

Infatti oltre ad una standardizzazione inerente all'architettura di una rete interconnessa, è stata necessaria una standardizzazione nella descrizione dei concetti trattati.

Ogni singola particolarità costruttrice infatti utilizza un proprio gergo per indicare determinate operazioni, una sorta di dialetto del linguaggio di trasmissione.

Con il modello OSI/RM si è cercato quindi di uniformare anche il linguaggio utilizzato nella descrizione dei vari livelli.

- Entità. Quella parte di un processo che è di pertinenza dell'OSI/RM (ad esempio vengono definite entità applicative quelle operazioni svolte dal livello applicazione).

- Specificazione del servizio. La descrizione astratta (senza cioè scendere nel dettaglio hardware) del comportamento di input/output di un certo livello che viene fornita al livello superiore o inferiore.

- Specificazione di interfaccia. L'insieme dei meccanismi (che variano a seconda del modello di interfaccia utilizzato nei vari tipi di modelli OSI/RM) agenti all'interno dell'interfaccia al fine di fornire il proprio servizio.  

- Primitive di servizio. Le singole operazioni semplici che compongono e producono un servizio.

- Specificazione del protocollo. Deve descrivere, oltre al formato delle unità-dati scambiate tra due entità dello stesso livello (poste una nella stazione di comunicazione A e una nell'altra B), il modo in cui ciascuna di esse reagisce ai comandi inoltrati dall'utente del livello e alle unità-dati provenienti dall'altra entità di pari livello.

- Punti di accesso al servizio (SAP). Attraverso i punti di accesso al servizio l'entità di ciascun livello offre un servizio all'entità superiore o ne richiede uno all'entità inferiore. Ogni SAP è localizzato da un suo particolare indirizzo.

- Directory. Funzione propria del livello che stabilisce l'indirizzo del SAP di quel particolare livello.

- Relay. Sistemi intermediari (nodi) all'interno di una rete che non sono ne' sorgente ne' destinatario di un particolare messaggio ma solo degli instradatori.

- End systems. Sistemi che spediscono o ricevono il messaggio passato attraverso (non necessariamente) più relay.

- Connessione. Scambio di dati tra entità dello stesso livello poste in due trasmettitori. Tale scambio avviene grazie alle entità di livello inferiore ed è utile all'applicativo per lo scambio di informazioni di controllo.


Nel modello si definiscono due tipi di servizi: "orientati alla connessione" e "senza connessione".

I servizi orientati alla connessione si articolano in tre parti: fase di apertura, fase di trasferimento dati e fase di svincolo. In generale si può dire che queste tre fasi sono caratterizzate dall'esecuzione di ben definite primitive di servizio secondo un ordinamento temporale stabilito.


Le caratteristiche di un servizio rivolto alla connessione devono essere essenzialmente divise in quattro fasi. Innanzitutto le tre parti fondamentali dello scambio di dati e cioè le due entità ed il servizio devono essere pronte simultaneamente per il trasferimento dei dati.

Se ciò non si verifica si passa alla negoziazione che è in pratica una fase durante la quale la entità che non può connettersi cerca di comunicare una serie di risorse alternative da utilizzare se ad esempio quelle standard non sono disponibili. Alla fine, una volta raggiunto l'accordo tra le due entità riguardo le risorse da utilizzare nello scambio di dati, avviene lo scambio di questi in blocchi correlati tra loro da un preciso ordine cronologico. Un controllo di flusso assicura che i blocchi giungano a destinazione in modo da non sovrapporsi finché una delle due entità non chiede lo svincolo dalla connessione. La connessione e lo scambio dei dati avviene grazie ai livelli inferiori che comunicano con quelli superiori tramite i SAP. Per facilitare la trasmissione però viene assegnato ad ogni SAP un identificatore di connessione che permette di gestire indirizzi logici anziché fisici.

Inoltre il servizio di connessione svolge altre funzioni oltre al trasferimento di dati in blocchi regolati come la rilevazione e la correzione di errori, la messa in sequenza di unità dati di protocollo disallineate, il riporto del flusso dati su una connessione in uno stato predeterminato (reset), la multiplazione, la suddivisione o splitting.


I servizi senza connessione riguardano la trasmissione di unità dati indipendenti senza alcun controllo.


L'OSI/RM ha inoltre la necessità di standardizzare la gestione della comunicazione nell'ambito delle attività di management, delle risorse di sistema dei livelli.

La prima include funzioni di supporto specifiche per i processi applicativi quali la loro inizializzazione e terminazione, la allocazione e deallocazione delle risorse necessarie tramite un protocollo di applicazione.

La seconda categoria riguarda la gestione delle risorse fisiche dell'OSI/RM come gli allarmi, le funzioni diagnostiche le statistiche di comunicazione. Anche queste funzioni sono svolte da protocolli di livello applicativo.

La terza categoria concerne la gestione dei livelli sia dal punto di vista dei protocolli che da quello dell'impiego delle risorse.

In particolare viene gestito lo scambio di informazioni tra i vari livelli e quello applicativo che grazie a determinate procedure controlla le operazioni dei vari livelli.

In questo modo il livello applicativo comunica con altri livelli applicativi secondo un protocollo standard per la gestione della rete.

Tutto ciò che riguarda la comunicazione fisica dei dati comunque viene eseguito dai livelli più bassi del modello OSI/RM. Ognuno di questi livelli, dopo aver reso il proprio servizio, aggiunge all'informazione proveniente dal livello superiore una serie di caratteri di controllo che verranno utilizzati dal livello inferiore per eseguire il proprio servizio.


(vedi fig.13 pag. 242 del testo "Reti per dati" di L. Lenzini e C. Boreggi)

4.1 Il LIVELLO FISICO E COLLEGAMENTO DATI NELLE RETI LOCALI


LO STANDARD IEEE 802

Il progetto IEEE 802 è il nome in codice del modello di riferimento standard per i protocolli in ambito di rete locale. Da alcuni anni questo standard è accettato anche dall'OSI. Ecco di seguito uno schema che raffronta il modello OSI con il modello IEEE 802:

***** INSERIRE FIGURA 6.3 PAG 172 libro: SISTEMI 3 ******

In questa tabella si fa riferimento a vari documenti IEEE 802, ecco una loro breve descrizione.

IEEE 802.1 riguarda l'architettura generale, la gestione della rete e le funzioni d'internetworking;

IEEE 802.2 descrive la parte superiore del livello di linea, impiegando il protocollo LLC (Logical Link Control) per il controllo del collegamento logico. Valutando i punti in comune con il livello 2 dello standard OSI, si notano somiglianze con i protocolli orientati al bit come SDLC e HDLC. Anche in quest'ambiente, infatti, sono previsti servizi privi di connessione e di conferma, servizi orientati alla connessione e servizi privi di connessione ma con conferma;

IEEE 802.3 descrive il protocollo per LAN con metodo d'accesso CSMA/CD. Lavora ad un livello corrispondente nell'OSI a1 e buona parte del 2. Lo standard prende le sue caratteristiche dal sistema "Ethernet";

IEEE 802.4 descrive il protocollo per LAN con metodo d'accesso token-bus. Differisce di poco dal .3, la principale differenza è data dal fatto che questo gestisce anche l'anello virtuale attraverso l'uso del protocollo MAC (Medium Access Control);

IEEE 802.5 descrive il protocollo LAN con metodo d'accesso token-ring, ha una velocità di 4Mb/sec ed utilizza collegamenti di tipo punto-punto con reti di massimo 256 stazioni, i collegamenti si possono effettuare con qualsiasi cavo (coassiale, doppino telefonico, fibra ottica).

STANDARD IEEE 802.5 (TOKEN-RING)

Lo standard è rivolto alle LAN basate su topologia ad anello con token-ring; hanno la struttura simile all'802.4, con la possibilità di comunicazione una sola stazione per volta. Quando non c'è traffico nell'anello, nella rete circola il token lungo tre byte, in attesa che qualcuno richieda di effettuare una trasmissione. Quando il token ha un certo bit del secondo byte a 1 allora significa che la trama porta informazione, di conseguenza i primi 2 byte del token mi indicano la testata del frame di dati. Quando il messaggio è stato ricevuto il primo bit del frame tornerà indietro. La durata di possesso di un token da parte di una stazione è mediamente di 10ms, dopo questo tempo il token passa forzatamente alla stazione successiva.

In questa figura è riportata sia la struttura del frame di dati che del token:

***** INSERIRE FIGURA 6.10 PAG 177 libro: SISTEMI 3 *****

Campi del frame di dati:

SD (Start Delimiter) e ED (End Delimiter): indicano i confini del frame e contengono una codifica  differente da "0" e "1" per non creare confusioni.

FC (Frame Control): è usato per distinguere il frame di controllo da quello di dati. Contiene l'indicazione delle priorità.

AC (Access Contol): definisce l'accesso alla trama o al token. Contiene i tre bit per la gestione della priorità e il bit che segnala se la trama è rientrata o no.

CAMPI D'INDIRIZZO: i due campi sono identici e contengono gli indirizzi del mittente e del destinatario.

AREA DATI: contiene i byte d'informazione.

FCS: contiene la check sun della frequenza.

FS (Frame Status): mi indica se, quando una stazione ha letto un dato a lei inviato, lo ha copiato correttamente.


4.1.2 LO STANDARD ETHERNET



4.2 IL LIVELLO FISICO E DI COLLEGAMENTO DATI NELLE RETI GEOGRAFICHE


4.2.1 IL LIVELLO FISICO


Il livello fisico è il primo livello del modello OSI. I dati possono essere trasmessi in modalità analogica o digitale.


Trasmissione analogica

La trasmissione analogica è oggi  la più diffusa visto che la rete telefonica è il mezzo più utilizzato per la trasmissione di dati.


La struttura della rete telefonica italiana (gestita dalla Telecom) si articola in 4 livelli:

centri di compartimento (CC) alcuni collegati a centri nazionali (CN)

centri di distretto (CD)

centri di settore (CS) che gestiscono (CRU) o le centraline di zona (CU)

centri di rete urbana (CRU)

tuttavia con l'adattamento alla multifrequenza (trasmissione digitale) questa struttura ha ridotto i suoi livelli da 4 a 2, eliminando il livello compartimento (CC) e di distretto (CD).


dove SGT = CC

SQU = CD

UCR ruolo simile RCU


-INSERIRE IMMAGINE PAGINA 114 (fig. 5.2)


Trasmissione digitale

La trasmissione digitale ha numerosi vantaggi rispetto a quella analogica.

probabilità di errore molto più bassa

velocità di trasmissione molto superiore


I protocolli di livello fisico

Per mettere in collegamento due DTE bisogna effettuare le seguenti fasi:

invio in linea della portante da parte DTE emettitore

rilevazione della portante da parte DTE ricevente

sincronizzazione del clock

queste 3 fasi richiedono lo scambio di segnali fra un DTE e il suo DCE: le norme internazionali che stabiliscono gli standard dei dispositivi di interfaccia sono alle basi di un protocollo fisico.

Le interfacce più comuni e utilizzate sono l'RS-232-c e la sua versione internazionale V24.


4.2 IL LIVELLO DI LINEA


Il compito principale dei protocolli del livello di linea è di controllare, in senso generale, il movimento dei dati (intesi come sequenze di bit) lungo i tratti di linea della rete.


Servizi forniti dal livello


Il servizio principale che deve essere fornito dal secondo livello è quello di essere in grado di accogliere i dati dell'utente del terzo livello della macchina trasmittente e di trasferirli sino al secondo livello della macchina ricevente in un formato che possa essere interpretato dall'utente destinatario al suo terzo livello.

Sono disponibili i seguenti servizi:

senza connessione e senza riscontro;

senza connessione con riscontro;

orientato alla connessione.


Nel primo caso si prevede che il calcolatore che emette il messaggio decida di spedirlo senza conoscere le caratteristiche della connessione che lo legherà al destinatario e senza aspettarsi da questo alcun tipo di conferma (riscontro) della ricezione né della sua correttezza. Resta compito dei livelli superiori quello di ricostruire il significato originale del messaggio. Questo è utile negli ambienti che lavorano a basse velocità.


Nel secondo caso, si consente ancora che il percorso verso il destinatario non venga definito a priori, tuttavia si richiede un segnale di riscontro da parte del ricevente. Se il frame non arriva a destinazione entro un tempo stabilito, allora verrà emessa una segnalazione da parte del ricevitore verso la sorgente del messaggio.


Nel terzo caso il trasmettitore e il ricevitore definiscono in anticipo la connessione, prima che venga spedito un qualsiasi frame di dati. Ogni frame spedito lungo la connessione viene numerato e il ricevitore emette un riscontro per ognuno di essi; in questo modo c'è un controllo completo per ogni porzione del messaggio. Questa terza modalità non è sempre fisicamente realizzabile.


La prima cosa che dovrà fare il livello di linea sarà di organizzare i bit grezzi, forniti dal livello fisico, e trasformarli in frame secondo certe regole.


Relazione tra frame e pacchetto.

Il livello tre (rete) prende il messaggio che riceve dal livello quattro (trasporto), vi aggiunge l'intestazione relativa al proprio livello e così crea il pacchetto che viene passato al livello di linea. Il secondo livello inserisce il pacchetto ricevuto nel campo info del proprio frame e provvede alla spedizione. Il destinatario estrae il contenuto del campo info del frame ricevuto e ricostruisce il pacchetto destinato ai livelli superiori.


Protocolli orientati al byte e al bit

I protocolli utilizzati a livello due si possono dividere in due categorie: orientati al byte e orientati al bit.

Protocolli orientati al byte



Protocollo START-STOP.

La trasmissione avviene carattere per carattere (trasmissione asincrona). Ogni carattere e' preceduto da un bit di start e seguito da un bit di stop.

Viene utilizzato per basse velocita' di trasmissione a causa della scarsa efficienza (8 bit utili/10 totali).

Non esistono conferme di ricezione del singolo carattere. Puo' essere attivato il controllo di parita'.

Il controllo di flusso puo' essere attuato via hardware (RTS/CTS) oppure via software (XON/XOFF).


Esempio 1: START-STOP

Trasmissione via modem asincrono.



BSC


Con uno schema di trasmissione orientato al byte la trama da trasmettere e' costituita di un numero variabile di byte con 7 od 8 bit significativi, che vengono inviati come uno stream continuo senza intervalli.

Il sistema ricevente deve compiere:

un sincronismo di trama - trovare l'inizio e la fine di ciascuna trama

un sincronismo di byte

Il protocollo oriantato al byte piu' comune e' il Bynary Synchronous Control (BSC), che e' particolarmente semplice in cosiddetto Basic Mode


Il sistema trasmittente invia un numero minimo di byte speciali di sincronizzazione detti SYN immediatamente prima della trama. Il ricevente che ascolta la linea vuota (idle) trova tali caratteri e li usa per mettersi in sincronismo di byte.

L'inizio trama e' denotato dalla coppia di caratteri speciali:

DLE - Data Link Escape

STX - Start od Text

Tutti i caratteri speciali sono caratteri di controllo, non stampabili, del codice US ASCII.

La trama e' terminata dai caratteri speciali DLE ed ETX (End of Text).

Il carattere DLE funge da escape generico: dopo tale carattere segue sempre un codice di controllo e non un byte di dati validi.

Qualora nell'interno dei dati validi vi fosse un byte con lo stesso schema di bit del DLE il sistema inviante lo precede con un secondo DLE. Il ricevente sa che deve toglierne uno. Questa inserzione viene detta 'byte stuffing'.


Sono consentiti collegamenti punto-punto (una stazione master e l'altra slave) e multipunto (una stazione master e le altre slave).


La stazione master ha il compito di gestire il colloquio attraverso due fasi: polling e selecting.

La fase di polling e'una interrogazione da parte della stazione master per vedere se la stazione slave ha dati da inviare, la fase di selecting permette alla stazione master di inviare dati alla slave.

Ogni stazione sarà identificata da due indirizzi, uno per l'accesso alla stazione in modalità polling, l'altro in modalità selecting.


Trama

Il testo, corrispondente al messaggio vero e proprio, viene preceduto da un'intestazione, quindi da alcuni caratteri di controllo: SOH (Start Of Header), DLE ETB (Data Link Escape - End of Transmission Block), STX (Start of TeXt).


Schema di colloquio

La stazione master emette il messaggio di ENQ+indirizzo; se la stazione ricevente è attiva risponderà col carattere ACK d'accettazione seguito da un carattere 0 o 1 in modo alternato.

La stazione primaria potrà trasmettere il frame ponendosi in attesa di un nuovo carattere d'accettazione. Terminato l'invio dei blocchi il master spedisce il carattere EOT che rilascia la connessione con lo slave.

Se il ricevente non è disponibile dopo aver ricevuto il carattere ENQ manda il carattere NAK; dopo un certo numero di rifiuti il master fa cadere la connessione.

Se il ricevente riscontra un'irregolarità nel messaggio il trasmettitore provvede a rispedire il blocco, se invece è un carattere di accettazione ad andare perso, il trasmettitore manda un ENQ dopo un certo periodo, richiedendo l'ultimo carattere.

Se si verifica un malfunzionamento nel ricevente allora questo manderà un EOT, quindi il trasmettitore richiederà la sua disponibilità con l'ENQ, se la risposta sarà sempre un NAK allora il trasmettitore accetterà la disconnessione.

Se viene perso un blocco non viene nemmeno spedito l'ACK corrispondente, il trasmettitore manda quindi un ENQ, il ricevitore risponde con l'ACK dell'ultimo blocco ricevuto, viene così rispedito il blocco che era andato perso.

Nel caso in cui il ricevitore sia temporaneamente indisponibile invece di inviare un ACK spedirà un WACK (Wait ACKnowledge), il trasmettitore richiederà la disponibilità del ricevente con ENQ, fino al ripristinarsi del normale funzionamento o al chiudersi della connessione (EOT).

Se c'è bisogno di invertire la direzione della trasmissione il ricevente manda un RVI (ReVerse Interrupt), viene così chiusa la connessione ed il ricevente chiede la disponibilità di trasmettere.


Protocolli orientati al bit

Uno schema di trasmissione orientato al bit consiste di trame il cui numero di bit e' qualsiasi, non necessariamente un multiplo di 8.

La trama e' delimitata all'inizio e alla fine dalla stessa sequenza di 8 bit e cioe' 01111110, detta il 'flag'. Il ricevente si sincronizza sulla ricezione del singolo bit.


Qualora nella trama vi fosse una sequenza di cinque bit a 1 consecutivi il trasmittente inserisce un sesto bit settato a zero. Il ricevente semplicemente lo scarta. Solo se sei bit a 1 sono seguiti da uno 0 si tratta del flag finale di trama.

Questa tecnica di inscerimento di bit aggiuntivi viene detta 'bit stuffing'.


Protocolli di tipo HDLC

Il protocollo High-level Data Link Control e' un protocollo ISO orientato al bit, di livello Data Link per uso in connessioni punto-punto o multipunto.

Supporta collegamenti full-duplex in modo trasparente ed ha dato origine a tutta una serie di protocolli simile e derivati, quali SDLC (Synchronous Data Link Control) della IBM e ADCCP (Advanced Data Communication Control Procedure) della ANSI.

Sono possibili due modi di funzionamento:

Unbalanced Normal Response (UNR): configurazione non bilanciata, con un master, che è completamente responsabile della gestione, e degli slave, usato per un collegamento da computer a stazioni secondarie quali terminali;

Asynchronous Balanced Mode (ARM): configurazione bilanciata, nella quale è consentito che le stazioni funzionino sia come master sia come slave, e' usato per collegamenti alla pari tra due computer.

Vi sono tre classi di trame usate da HDLC:

Unnumbered (non numerate): usate per stabilire ed abbattere la connessione;

Information (informative): usate per il trasporto normale di informazioni

Supervisory (supervisore): usate per il recupero errori e controllo di flusso


Nel protocollo SDLC (Synchronous Data Link Control), le stazioni vengono suddivise in stazioni primarie (responsabili della gestione del collegamento e dei comandi alle stazioni secondarie) e stazioni secondarie (hanno l'obbligo di rispondere a tutti i comandi spediti dalla stazione primaria).


Struttura di un frame HDLC

I frame sono composti da campi a dimensione fissa, il vantaggio è quindi quello di identificare subito la posizione di un campo all'interno di un frame.


[figura 5.27 testo Sistemi 3]


flag: viene posto all'inizio e alla fine del frame e permette la sincronizzazione con la stazione ricevente;

indirizzo: contiene l'indirizzo della stazione destinataria (un byte);

controllo: contiene informazioni sul tipo di comunicazione in atto e sul conteggio dei frame (un byte);

dati: area riservata ai dati;

CRC: controllo della ridondanza (due byte).


Il campo di controllo identifica il tipo di frame:

frame di informazione: indica che il frame contiene dati diretti al dispositivo ricevente;

frame di supervisione: indica che il frame ha funzionalità di controllo;

frame non sequenziale: indica che il frame viene utilizzato in modo asincrono, per operazioni di gestione della linea, ma non strettamente legate alla comunicazione in corso.


Formato del campo di controllo di un frame HDLC:

[figura 5.28 testo Sistemi 3]

Nr: contatore dei frame ricevuti;

Ns: contatore dei frame spediti;

P/F: flag di interrogazione/risposta;

C/R: contengono un valore, di 2 o 5 bit, per codificare un comando o una risposta.


Gestione dei contatori Nr e Ns in un normale scambio di trame informative:

[figura 5.31 testo Sistemi 3]


4.3 IL LIVELLO DI RETE


Il terzo livello, detto di rete, controlla l'intero movimento dei pacchetti dalla sorgente sino alla destinazione, guidando l'eventuale attraversamento di altri nodi della rete e/o di altre reti.

Per raggiungere i suoi obiettivi, il livello in questione deve essere a conoscenza della topologia della rete, in modo da poter scegliere possibilmente il cammino migliore.


Le funzioni svolte dal livello sono:

la gestione dell'instradamento dei pacchetti lungo la sottorete di comunicazione;

il controllo della congestione del traffico;

l'interconnessione di reti (internetworking).


I servizi offerti sono di 2 tipi:

- orientati alla connessione: affidano i controlli principali sulla trasmissione al livello di rete;

- non orientati alla connessione, effettuano una gestione limitata alla singola operazione e affidano i controlli principali sulla trasmissione al livello di trasporto.

La scelta del tipo di servizio riguarda la progettazione complessiva della rete.


Un servizio orientato alla connessione possiede le seguenti caratteristiche:

prima dell'invio dei dati, la sorgente deve assicurarsi che sia stata definita e accettata la connessione con la stazione destinataria;

esiste un controllo del flusso di dati che consente la trasmissione anche tra nodi con velocita' diverse;

poiche' la connessione e' attiva per tutta la trasmissione, e' necessario specificare l'indirizzo della stazione destinataria solo al momento della connessione;

viene garantito l'ordine d'arrivo dei pacchetti.


Nei servizi non orientati alla connessione, le funzioni più complesse vengono delegate al quarto livello, mentre al terzo livello si garantiscono le funzioni primitive invio pacchetto (Send Packet) e ricezione pacchetto (Receive Packet) e poco altro.

Poiché non è stata effettuata una connessione stabile, ogni pacchetto ha bisogno di conoscere l'indirizzo della stazione destinataria e non è garantito né che i pacchetti componenti il messaggio arrivino a destinazione nello stesso ordine, né lungo lo stesso percorso.


4.3.1 PRIMITIVE


I servizi del livello sono realizzate attraverso  primitive (funzioni di base)

Dovremo distinguere tra servizi orientati alla connessione e servizi non orientati alla connessione. Creare una connessione vuol dire definire una coppia di code tra due NSAP (indirizzi di rete): ogni coda serve il traffico in una direzione. Solo dopo aver creato queste code virtuali si potrà iniziare la trasmissione dei pacchetti di dati.


Le primitive dei servizi orientati alla connessione possono essere raggruppate in quattro categorie:

attivazione della connessione: Request, Indication, Response, Confirmation;

rilascio della connessione: Request (con indicazione del motivo) e Indication;

utilizzo della connessione Request, Indication;

reset delle connessioni.


Le primitive senza connessione definite dall'OSI sono solo cinque e sono suddivise in due categorie:

primitive utilizzate per inviare dati sino a 64512 byte; non sono previsti meccanismi di controllo dell'errore, né di controllo del flusso o di altro genere che rimane a carico del livello di trasporto;

primitive che emettono un segnale di interrogazione e d'indicazione verso la destinazione indicando nei parametri alcune prestazioni.


Esempio 1: la rete telefonica pubblica è un servizio orientato alla connessine, in quanto l'utente forma il numero per stabilire una connessione con un altro abbonato, squilla il telefono per comunicare la richiesta di comunicazione ed eventualmente inizia l'interscambio di informazioni; in questo caso la connessione è attivata in modo esclusivo per tutta la durata della comunicazione.


Esempio 2: il servizio postale è un servizio senza connessione: ogni lettera porta indicato l'intero indirizzo del destinatario e viene trasportata in modo indipendente rispetto a tutte le altre comunicazioni destinate alla stessa persona, inoltre non siamo sicuri che la posta arrivi nello stesso ordine in cui è stata spedita.


In riferimento al funzionamento interno della sottorete, una connessione è chiamata circuito virtuale (con riferimento ai circuiti fisici definiti nel sistema telefonico), mentre un'organizzazione senza connessione è denominata datagramma (in analogia col sistema di avviamento del servizio postale).




4.3.2 INSTRADAMENTO


La funzione di instradamento dei pacchetti lungo la rete viene realizzata tramite un algoritmo detto di instradamento

Se si utilizza un servizio senza connessione (datagramma), l'algoritmo deve essere applicato a tutti i pacchetti da parte dei nodi  lungo il percorso che porta alla destinazione. Se si utilizza un servizio con connessione (circuito virtuale), l'instradamento viene completamente definito al momento della'attivazione della connessione e resta valido per tutta la sessione.


L' algoritmo deve assicurare una buona velocita' e deve evitare o ridurre il fenomeno indesiderato della congestione ricorrendo a tecniche di controllo del flusso e del traffico.


Algoritmi di instradamento

I metodi adottati per la scelta del cammino che un pacchetto dovra'percorrere sono diversi a seconda che si privilegi il costo, l' affidabilita', la velocita' di decisione o altri parametri.

La tecnica più semplice e più comunemente utilizzata è basata sulla scelta del cammino più breve, cioe'quello che attraversa il minor numero di stazioni

Un'altra tecnica potrebbe assegnare un peso a ogni arco tenendo conto dei tempi di attesa in coda, dei tempi di trasmissione e di altri parametri temporali. Compito dell'algoritmo di instradamento è tenere conto di queste diverse possibilità e scegliere quella più efficiente.

L'instradamento centralizzato, prevede che in una stazione primaria sia presente un RCC (Routing Control Center, centro di controllo dell'instradamento) incaricato di analizzare le informazioni sulle modifiche e sul traffico che vengono spedite periodicamente dalle altre stazioni: in base a queste informazioni, l'RCC può portare delle modifiche alle tabelle di instradamento contenute in ogni nodo e quindi spedire delle comunicazioni opportune agli altri nodi della rete.

Un'alternativa alla centralizzazione è l'instradamento decentralizzato che prevede che le decisioni sul percorso vengano prese direttamente dal nodo in base alle informazioni che esso stesso è stato in grado di raccogliere. Quando arriva un pacchetto, la stazione cerca di disfarsene immediatamente indirizzandolo verso la coda di attesa più breve; alcune alternative prevedono che la decisione tenga conto dei pesi statistici inseriti nella tabella di instradamento.

Poiché al crescere della rete aumentano il numero e la dimensione della tabella di instradamento, si può arrivare ad un livello di complessità insostenibile per la dimensione e la complessità del software. Un modo per arginare il problema è consentire una gestione più leggera suddividendo l'area della rete in regioni, come avviene per le reti telefoniche. Questo metodo, detto di instradamento gerarchico, richiede che ogni stazione sia completamente informata su tutte le altre stazioni che fanno parte della propria regione.

Un'ultima tecnica è chiamata "broadcast" e viene utilizzata quando c'è necessita, per una stazione della rete, di spedire uno stesso messaggio a molte o a tutte le altre stazioni. Esempi classici di questo tipo sono l'aggiornamento di database distribuiti, la consultazioni di alcune stazioni da parte di una stazione primaria sulla loro disponibilità a eseguire certe operazioni. Il metodo più semplice consiste nella distribuzione di una copia dello stesso pacchetto a ogni stazione interessata alla comunicazione: pur non richiedendo particolari accorgimenti, è però senza dubbio ridondante e lento.


4.3.4 CONTROLLO DEL TRAFFICO


Le tecniche piu' utilizzate:

la preallocazione di risorse;

lo scarto dei pacchetti;

il passaggio di gettone;

il controllo del flusso;

i pacchetti di strozzamento.


La preallocazione delle risorse prevede che, al momento della definizione del circuito virtuale, venga fatta anche un'allocazione preventiva dei buffer dati che devono contenere temporaneamente i pacchetti che transitano lungo la rete, in attesa di proseguire il cammino verso la destinazione.

Con lo scarto dei pacchetti non viene riservata in anticipo alcuna risorsa; se non esiste lo spazio per allocare un pacchetto in transito, allora si scartano i pacchetti che giungono alla stazione congestionata.

Il metodo del passaggio di gettone prevede che esistano dei pacchetti speciali (i gettoni) che circolano liberamente nella rete: ogni volta che una stazione vuole effettuare una trasmissione blocca un gettone, effettua la sua comunicazione e alla fine libera il gettone che ritorna a circolare nella rete.

Il metodo basato sul controllo del flusso agisce sul livello di trasporto affinché non accada che una stazioni saturi gli altri suoi vicini.

L'ultimo metodo utilizza i pacchetti di strozzamento che funzionano come dei campanelli d'allarme, indicando alle stazioni il livello di congestionamento del traffico.

Ad ogni linea è associato un peso indicatore del traffico che si riesce a supportare, e se viene superata la soglia viene rispedito indietro un pacchetto di strozzamento; a questo punto la stazione "avvertita" deve ridurre il traffico. La forma estrema di congestione del traffico è lo stallo.



Esempio di protocollo di livello 3: il protocollo IP


Indirizzi IP

Ogni interfaccia che usa i protocolli TCP/IP e'identificata da un Indirizzo Internet a 32 bit.

Questo indirizzo deve essere univoco in tutta la rete visibile, al limite in tutta l'internet.

Un indirizzo internet consiste di due parti concatenate: indirizzo di rete ed indirizzo di host.

Il numero di bit per ciascuna parte e' determinato dalla Classe a cui l'indirizzo appartiene.

Gli indirizzi sono scritti in formato "Big Endian", col bit piu' significativo per primo.

Gli indirizzi sono rappresentati come quattro numeri separati da punti (notazione punto). Ogni numero rappresenta un byte dell'indirizzo.

Gli indirizzi internet sono assegnati da autorita' ufficiali Internet.

La gerarchia di indirizzamento a due livelli viene spesso estesa ad avere un terzo livello gerarchico, quello di sottorete. Una sottorete e' una suddivisione dello spazio di indirizzi riservato ad una rete. Il nuovo formato di indirizzi diviene:


Il campo congiunto rete + sottorete e' specificato da una maschera di sottorete a 32 bit. L'appartenenza di un indirizzo ad una sottorete viene determinata con una operazione di AND logico tra l'indirizzo internet e la maschera di sottorete. La maschera deve contenere piu' di un bit ed i bit devono essere consecutivi.

L'assegnazione di indirizzi e' molto inefficiente: viene assegnato un indirizzo di rete ad un richiedente, anche se questi non usa tutti gli indirizzi di host disponibili. L'espansione recente dell'Internet ha determinato l'esaurimento degli indirizzi in classe B.

Ai richiedenti di nuovi indirizzi di rete con piu' di 256 indirizzi di host vengono in questi giorni assegnati piu' indirizzi consecutivi in classe C. Per impedire un eccessivo carico della tabella di routing e' stato introdotto un nuovo protocollo, il Classless Inter-Domain Routing (CIDR), che gestisce questa situazione.

Indirizzi ed Interfacce

Gli indirizzi internet non designano le stazioni di rete ma le interfacce di rete. Una stazione con piu' interfacce e' detta "multi-homed". Questo e' tipicamente, ma non solo, il caso dei router, che compiono lo smistamento tra due o piu' reti contigue.

Tutti gli host mantengono Tabelle di Routing che specificano come far arrivare un pacchetto ad una stazione remota, inviandolo ad un router locale che esegue poi lo smistamento. L'associazione di indirizzi internet ad interfacce permette di ottenere del routing (smistamento) di precisione, e permette ai router di scegliere il percorso migliore per una determinata destinazione.

Indirizzi Speciali

Alcuni indirizzi sono riservati a scopi speciali e non devono venire usati come indirizzi di interfacce:


lo host corrente nella rete corrente - usato solo come indirizzo sorgente, p.es. da una stazione durante il boot

0.X.Y.Z

lo host X.Y.Z sulla rete corrente di classe A


indirizzo di broadcast limitato - tutti gli host sulla rete corrente, come indirizzo di destinazione

A.255.255.255 B.B.255.255 C.C.C.255

indirizzo di broadcast diretto - tutti gli host su una rete di classe A o B o C o su una sottorete con la stessa struttura

127.X.Y.Z

indirizzo di loopback - denota l'interfaccia locale, qualsiasi siano i numeri X.Y.Z; per convenzione si usa 127.0.0.1


multicast all hosts - tutti gli host di questa (sotto)rete


multicast all routers - tutti i router di questa (sotto)rete

Come si vede, due indirizzi sono riservati per ogni sottorete (0 e 1), e come conseguenza non si puo' avere una maschera di sottorete di un solo bit.


Instradamento (Routing)

Il protocollo IP consulta la tabella di routing per determinare l'indirizzo IP del nodo a cui inviare un dato pacchetto.

Le sue regole sono:

se esistono piu' linee con la stessa destinazione finale

se una linea ha il flag fissoviene usata tale linea

altrimenti viene usata la linea con metrica minore

Le linee non usate perche' con metrica maggiore, vengono tolte dalla tabelle di routing dopo un timeout tipico di 5 minuti

se esiste una linea con la destinazione finale, viene usata

se esiste una linea con la destinazione default, viene usata

se non esiste nessuna linea il pacchetto viene semplicemente buttato

Identificata una linea della tabella di routing, IP invia il pacchetto al router indicato come secondo campo di tale linea.

Il fatto che IP possa semplicemente buttare un pacchetto, fa si che la rete TCP/IP venga denominata:

intrinsecamente inaffidabile, ma al miglior sforzo ( unreliable, best effort)

In caso di scartamento di un pacchetto vengono intraprese inoltre da IP azioni correttive:

attivazione del protocollo di controllo ICMP che informa il nodo mittente della perdita del pacchetto

attivazione di un protocollo di ricerca percorso per tentare di ovviare al problema in caso di simili pacchetti futuri

Questo spiega la qualifica 'al miglior sforzo' della rete.

Time to Live


Il pacchetto IP consiste di una testata, con campi di controllo usati dal protocollo IP, ed un corpo di dati. Uno dei campi della testata e' il campo Time To Live (TTL).

Il mittente tipicamente inserisce in questo campo il valore massimo, 255. Ogni router intermedio decrementa di uno il contenuto del campo TTL. Se il nuovo valore e' uguale a zero, il pacchetto viene scartato.

Qesto impedisce che per qualsiasi ragione, si sia creato un loop nello smistamento di rete ed i pacchetti girino in ciclo all'infinito.

MTU e Frammentazione

Tra il nodo sorgente e il nodo destinazione vi sono potenzialmente molte reti intermedie. Ciascuna rete, per sue caratteristiche tecniche, ha una dimensione massima del pacchetto che puo' trasportare. Questa dimensione si chiama Maximum Transfer Unit (MTU).

P. es. la MTU di una rete Ethernet e' di 1500 bytes, di X.25 solo 256 byte.

Se la rete che conduce al router successivo di uno smostamento pacchetto ha MTU inferiore alla lunghezza del pacchetto, allore IP compie la frammentazione del pacchetto, cioe' lo spezza in sottopacchetti ciascuno di dimensioni inferiori a tale MTU.

E' da notare che ogni sottopacchetto o frammento puo' essere a sua volta ulteriormente frammentato nel suo percorso. Ogni pacchetto contiene nella testata i campi:

identificativo di pacchetto

offset del frammento rispetto al pacchetto originario

Spetta allo IP del nodo di destinazione ricomporre il pacchetto originario. In tal caso il campo TTL assume valore di secondi e viene decrementato in ogni frammento di uno ogni secondo da parte dello IP di destinazione. Se anche un solo frammento ha il TTL scaduto prima che arrivino tutti i frammenti, l'intero pacchetto viene scartato.



4.4 IL LIVELLO DI TRASPORTO


Il livello trasporto (livello 4) rappresenta il cuore della gerarchia OSI: la funzione principale svolta è quella di fornire una procedura di trasporto dei dati, dalla stazione sorgente alla destinazione, che sia affidabile ed economica, indipendentemente dalle caratteristiche fisiche e dalla qualità della rete che supporta la trasmissione. E' sostanzialmente la porta d'ingresso verso i livelli superiori che sono più vicini all'utente.


Funzioni




Servizi forniti dal livello


Il lavoro di questo livello è eseguito dagli oggetti hardware e software chiamati complessivamente entità di trasporto che si pongono in collegamento con gli strati di rete e di sessione.


FIGURA 7.1


Tipi di trama:

TSAP(Transport Service Access Unit) indica l'indirizzo dell'entità da chiamare

NSAP(Network Service Access Point) indica l'indirizzo dell'entità chiamante

TPDU(Transport Protocol Data Unit) indica il frame di dati prodotto dal livello di trasporto


I messaggi che si scambiano due utenti, attraverso tutti i livelli del modello della stazione sorgente e attraverso il canale fisico, risalgono sino all'utente destinatario.


A livello quattro esistono due fondamentali tipi di servizi:

orientati alla connessione;

non orientati alla connessione


Il livello di trasporto ha la funzione di collegare la rete reale alle esigenze espresse dagli utenti, gestendo errori, guasti, garantendo la qualità del servizio e fornendo un'interfaccia che consenta l'uso di primitive di diversi tipi di rete in commercio.


La qualità del servizio deve essere garantita dal livello di trasporto se il servizio offerto dal livello di rete non è soddisfacente. La valutazione della qualità è fatta attraverso parametri precisi che vengono indicati dall'utente al momento dell'attivazione della connessione:

verificare l'aderenza dei parametri all'ambiente della rete;

decidere se è in grado di completare le richieste con le sue forze;

attivare la connessione.

Lo scopo principale è quello di fornire un'alta qualità dei servizi.



Le reti vengono classificate in tre categorie evidenziando la loro efficienza


FIGURA 7.2


La classificazione viene fatta considerando il numero di pacchetti persi o distrutti e nella gestione di alcune situazioni di emergenza.

Le funzioni richieste al protocollo di trasporto possono essere più o meno complesse a seconda dell'efficienza dei protocolli di livello rete.

Primitive


4.4.1 GESTIONE DEI COLLEGAMENTI E RECUPERO DEI GUASTI


I problemi più comuni riguardano la gestione dei pacchetti che risultano persi o duplicati: se ad esempio un pacchetto di risposta viene spedito in una rete molto congestionata rischia di vagare nella rete arrivando a destinazione in un tempo non accettabile. Chi attende la risposta può eventualmente decidere di rimandare la stessa trama (temendo che la precedente sia andata persa), nella rete ci potranno quindi essere due risposte, magari diverse, alla stessa trama.


Il livello di trasporto fornisce diversi metodi per evitare questo tipo di problemi:

progettare una sottorete con dei vincoli: questo metodo comprende tutti i mezzi possibili per distruggere i pacchetti che percorrono dei loop;

inserire un contatore di tappe in ogni pacchetto che viene decrementato ogni che il pacchetto transita in un nodo, quando il contatore e' a zero il pacchetto viene eliminato;

inserire in ogni pacchetto l' istante di creazione, se dopo un prefissato intervallo il pacchetto circola ancora, esso viene eliminato.


Tutti e tre I metodi sopra presentati partono dalla comune intenzione di limitare nel tempo l'esistenza dei pacchetti vaganti per la rete.


4.4.3 RECUPERO DEI GUASTI


Un esempio molto comune è la ripartenza di una stazione dopo aver effettuato un reset: in questo caso il livello di trasporto non è più a conoscenza dello altro stato e le diverse stazioni della rete devono mettere a conoscenza le altre di ciò che è stato ricevuto e spedito prima che si verificasse il guasto. La stazione che ha avuto il guasto provvederà a mandare nella rete una trama che informi le altre stazioni sulle sue necessità e che permetta il riavvio della circolazione dei pacchetti.

Le stazioni possono verificare solamente due possibili stati da ristabilire:

hanno una trama in sospeso

non hanno nessuna trama in sospeso

ristabilito lo stato antecedente al guasto la trasmissione potrà ricominciare.



4.4.4 PROTOCOLLI USATI DAL LIVELLO DI TRASPORTO


Più comunemente usati sono I protocolli ISO8073, modellato dalla OSI, e il protocollo TCP, proposto dalla ARPANET.

Hanno entrambi la capacità di fornire dei servizi sia orientati alla connessione sia non orientati alla connessione; un'altra analogia riguarda le tre fasi in cui viene gestita la connessione: attivazione della connessione, trasferimento dei dati, rilascio della connessione.

Una sostanziale differenza sta nella gestione contemporanea dell'accesso di due diversi processi: l'ISO8073 definisce una connessione full-duplex, mentre il TCP definisce un'unica connessione che va condivisa.

Infine, nella sconnessione, il TCP pratica una procedura meno brusca dell'ISO8073 garantendo così una maggior protezione dei dati.

4.4.5 ESEMPI DI PROTOCOLLO DI LIVELLO 4: TCP e UDP

Transmission Control Protocol (TCP)

Il protocollo TCP fornisce un servizio connection oriented alla comunicazione tra due stazioni.

TCP fornisce affidabilita' (reliability) alla comunicazione:

I dati sono suddivisi in porzioni ritenute ideali per il collegamento, chiamate segmenti

Esiste un timer associato alla trismissione. Il ricevente deve inviare una conferma di ricezione entro un tempo limite dall'invio del pacchetto

La conferma della ricezione non e' inviata immediatamente dalla stazione ricevente, ma con un lieve ritardo

Esiste un campo checksum per la testate e i dati TCP. Pacchetti col checksum errato vengono scartati senza messaggi d'errore (il corrispondente andra' in timeout e li ritrasmettera')

I pacchetti ricevuti vengono riassemblati nell'ordine giusto se erano stati frammentati in transito

I paccheeti duplicati vengono scartati

Viene fornito un servizio di controllo di flusso

TCP non interpreta i dati del messaggio che l'applicativo ad alto livello gli fornisce per rasmetterli. Se l'applicativo compie piu' operazioni di scrittura, TCP puo' aggregare le scritture in un unico segmento, senza delimitatori. I dati sono una sequenza byte stream semplice.


La lunghezza della testata TCP e' di 20 byte.


I campi Porto Sorgente e Porto Destinazione identificano gli applicativi intercomunicanti. Questi due campi, uniti ai campi Indirizzo Sorgente ed Indirizzo destinazione, identificano univocamente una connessione.

La combinazione Porto e corrispondente Indirizzo IP sono chiamati un socket, che descrive uno dei due capi di una comunicazione.

Una connessione e' identificata da una coppia di socket.

Il Numero di Sequenza identifica il byte dello stream originario rappresentato dal primo byte del segmento corrente. Il numero di sequenza e' di soli 32 bit, quindi i numeri bassi vengono riutilizzati per streams particolarmente lunghi.

Il Numero di Conferma e' il numero di sequenza che il ricevente si attende di ricevere nel prossimo segmento. TCP e' full-duplex ed il numero di conferma si riferisce all'altra meta' della comunicazione, nell'altro senso.

La Lunghezza e' la lunghezza della testata, comprensiva di opzioni, misurata in parole da 32 bit. La dimensione massima della testata e' di 60 byte, senza opzioni la lunghezza e' di 30 byte.

I Flag sono sei:

URG - Il Puntatore Dati Urgenti e' valido

ACK - Il Numero Conferma e' valido

PSH - Il ricevente deve passare queste informazioni all'applicativo nel piu' breve tempo possibile

RST - Reset di connessione

SYN - Sincronizzare i numeri di sequenza per iniziare una connessione

FIN - Il trasmittente ha finito l'invio dei dati

Il campo Dimensione Finestra esprime la lunghezza della finestra di trasmissione in byte. TCP e' un protocollo a finestra di trasmissione scorrevole senza ritrasmissione selettiva.

Il Checksum e' il campo di controllo consistenza, calcolato col normale algoritmo di IP, e copre l'intero segmento.

Il Puntatore Dati Urgenti e' lo offset da aggiungere al Numero di Sequenza per ottenere il numero di sequenza dell'ultimo byte di dati urgenti. TCP offre la possibilita' di indicare dati di emergenza.

Vi sono varie opzioni ammissibili, di cui la piu' importante e' l'indicazione della dimensione massima di segmento (Maximum Segment Size - MSS). Questa opzione viene normalmente scambiata nel primo segmento di una connessione.

Il campo dati e' opzionale e in alcuni casi non viene usato. In tal caso il segmento TCP serve allo scambio di informazioni di controllo.

Il Flag di Push

Questo flag serve ad indicare l'urgenza dei dati inviati o ricevuti. All'invio, i segmenti con questo flag vengono subito inviati senza attendere il riempirsi del buffer di trasmissione. Alla ricezione vengono subito passati all'applicativo ricevente.

In realta' il flag di Push non e' usato nelle implementazioni moderne come da specifiche e non vi e' una opzione dell'interfaccia API di programmazione per indicare il settaggio del flag. Le versioni Berkeley settano il flag di Push in quasi tutte le operazioni di write, ma lo ignorano in ricezione poiche' normalmente passano subito i dati all'applicativo.

Opzioni TCP

Le uniche opzioni previste nella specifica originale erano No Option, End of Options e Maximum Segment Size. Nuove specifiche TCP hanno definito opzioni aggiuntive.


Ogni opzione inizia con un byte di Tipo. Alcune opzioni sono Seguite da un byte di lunghezza, che specifica la lunghezza dell'intera opzione, e da altri campi.

L'opzione No Option serve come pad per portare il campo opzioni ad un multiplo di 32 bit

Le opzioni sono usate in estensioni sperimentali al protocollo TCP.

Gestione della Connessione

La trasmissione e' iniziata dal lato client. Si tratta di uno handshake a tre vie.

Il client invia un segmento col flag SYN settato, specificando il Numero di Porto destinazione ed un Numero di Sequenza Iniziale (Initial Sequence Number - ISN) casuale

Il lato server risponde con un segmento col flag SYN settato, con il flag ACK settato e contenente lo ISN del client nel campo Numero Sequenza e il valore ISN+1 nel campo Numero Conferma

Il client risponde con un segmento contenente nel campo Numero Conferma lo ISN del server piu' uno

Si dice che il lato che invia il primo segmento SYN compie una active open. L'altro lato compie una passive open.

Il valore di un ISN deve essere diverso per ogni nuova connessione. La specifica indica che lo ISN deve essere considerato un contatore a 32 bit che aumenta di 1 ogni 4 microsecondi, allo scopo di impedire che pacchetti ritardati vengano interpretati cone appartenenti ad una connessione in corso.

In realta' l'implementazione dei nuovi ISN e' diversa da sistema a sistema e qualche volta errata.

La terminazione consiste di due mezze terminazioni (half close). poiche' i dati scorrono lungo la connessione in modo full duplex e indipendentemente. Ogni half close richiede lo scambio di due segmenti.

La stazione che richiede la terminazione invia un segmento con il flag FIN settato; si tratta di una operazione di active close

L'altra stazione risponde con un segmento col campo ACK settato e nel campo Numero di Conferma, il campo Numero di Sequenza della prima stazione piu' uno; si tratta di una operazione di passive close

Teoricamente una stazione che compie una half close puo' sempre continuare a ricevere dati. In realta' nella maggior parte dei casi e' l'applicativo client che decide di chiudere la connessione, dietro istruzioni dell'essere umano, e il server risponde ad una half close con un altra half close, terminando l'intera connessione.

Timeout di Stabilimento Connessione

La stazione che compie' una active open inizializza un contatore di timeout, settato a 6 secondi nelle implementazioni Berkeley. Se non giunge risposta un secondo tentativo ha il timeout a 24 secondi e un terzo timeout e' a 48 secondi. Se la connessione non e' stata stabilita entro 75 secondi, un secondo contatore scatta e termina ogni ulteriore tentativo.

Maximum Segment Size

La dimensione massima del blocco dati trattato e' posta da molte implementazioni a 1024 byte per default. Alcune implementazioni permettono di cambiare questo valore, altre lo permettono ma richiedono un multiplo di 512 byte. Il valore ottimale coincide col valore che renderebbe la lunghezza di trama totale uguale allo MTU.

Il primo segmento inviato contiene l'opzione MSS. La stazione che compie la active open si aspetta di trovare un'opzione MSS nel segmento di risposta. Se il MSS di risposta e' inferiore viene adottato il nuovo valore. Se lo MSS di risposta manca, viene adottato il valore di default 536.

Diagramma di Stato

Lo stato di una connessione si puo' rappresentare da un diagramma a stati finiti, alquanto complesso.


I nomi degli stati sono identici ai valori riportati in output dal comando netstat.

Non tutte le transizioni sono ugualmente probabili o supportate. Il diagramma mostra l'insieme tipico di transizioni per un client e per un server. Per ciascuna transizione vengono dati, se esistono, l'operazione dell'applicativo che l'ha causata, il tipo di segmento ricevuto il tipo di segmento trasmesso.

Lo stato TIME_WAIT permane per un tempo di 2 volte il valore del MSL (maximum segment lifetime), tempo massimo di vita di un segmento. Questo e' allo scopo di attendere che anche l'ultimo segmento rimasto nella rete di una connessione in via di chiusura vada a morire. Valori tipici di MSL sono dai 30 secondi ai 2 minuti (raccomandato: 2 minuti).

Tutti i segmenti della connessione ricevuti durante questo periodo vengono scartati.

Questo stato di TIME_WAIT ha come conseguenza che in caso di chiusura di un server, lo stesso programma server non puo' essere immediatamente lanciato sullo stesso porto fino allo scadere del tempo 2MSL.

Lo stesso e' valido anche per i client, ma questo non e' tipicamente un problema poiche' i client usano porti effimeri.

Su molte versioni Berkeley vi e' un effetto strano e pericoloso: un client che tenta una connessione ad un server che si trova nello stato TIME_WAIT riesce ad ottenerla se il nuovo Numero di Sequenza del client e' superiore all'ultimo numero di sequenza che il server aveva accettato prima della close. Si chiama questo effetto una reincarnazione della vecchia connessione.

Per impedire reincarnazioni involontarie attraverso un reboot di sistema, al protocollo TCP e' proibito iniziare nuove connessioni se non e' trascorso almeno un tempo MSL dal boot.

Anomalie di Connessione

Segmenti di Reset

Quando arriva una richiesta di connessione ma non vi e' alcun processo in ascolto al porto specificato, il protocollo TCP del ricevente invia al richiedente un segmento di Reset. Il caso equivalente con UDP e' invece gestito con l'invio di un messaggio ICMP Port Unreachable.

Aborto di Connessione

La terminazione normale si chiama anche rilascio ordinato (ordered release) della connessione. E' possibile anche un rilascio abortito (aborted release), con l'invio di un Reset anziche' un FIN.

In tal caso:

tutti i dati in trasmissione sono scartati e viene subito inviato un Segmento di Reset

il corrispondente riconosce la situazione di aborto, non genera un Segmento ACK e procede immediatamente allo stato TIME_WAIT

Detezione di Half Open

Una connessione si dice half open se un lato ha chiuso o abortito la connessione ma l'altro lato non ne ha ricevuto notifica. Questo avviene quando un lato ha compiuto uno shutdown improvviso o e' andato in crash.

Senza un keepalive timer possono anche verificarsi molte situazioni di half open, p.es. in presenza di PC che vengono semplicemente spenti.

E' da notare che il tentativo di ripristinare la vecchia connessione non ha mai successo, poiche' il nuovo client rinato non ha conoscenza dei numeri di sequenza ultimi usati nella connessione precedente.

Open Simultanee

Puo' capitare che due corrispondenti inviino contemporaneamente il segmento SYN iniziale di connessione all'altro.

Entrambi i corrispondenti si trovano nello stato SYN_SENT quando ricevono il SYN iniziale: entrambi emettono un segmento SYN ACK e si portano nello stato SYN_RCVD. Alla ricevuta del segmento ACK del corrispondente, entrambi si portano nello stato ESTABLISHED.

Il risultato e' la presenza di una connessione stabilita, non due.

Close Simultanee

Il nodo che ha emesso una FIN e si e' portato nello stato FIN_WAIT_1, si attende un ACK. Se al suo posto riceve un FIN, significa che anche il nodo remoto ha iniziato una active close. Il nodo locale invia un ACK e si porta nello stato CLOSING, e lo stesso fara' il nodo remoto. Alla ricezione di un ACK la connessione e' chiusa.

Gestione del Flusso

Il flusso dati TCP e' di due tipi:

Flusso Interattivo - p.es. telnet, rlogin

Flusso di Massa - p.es. FTP, mail, news

Flusso Interattivo

Ogni pressione di un tasto genera un segmento TCP contenente il valore del tasto come carico utile. Inoltre lo host remoto spesso compie un echo del tasto premuto. Ogni tasto imlica quindi quattro segmenti:

il tasto premuto

lo ACK del tasto premuto

lo echo del tasto

lo ACK dello echo

Normalmente i segmenti 2 e 3 sono combinati.

Inoltre, TCP non invia immediatamente un ACK alla ricezione di un segmento, ma introduce un leggero ritardo (delayed acknoledgement), nella speranza di combinare dei dati al segmento di ACK. Il ritardo tipico e' di 200 msec.

I pacchetti inviati per ciascun carattere sono di 41 bytes ciascuno (20 testata TCP, 20 testata IP e 1 dati). I pacchetti molto piccoli vengono anche detti tynigrams e possono creare congestione di rete.

Algoritmo di Nagle

La soluzione e' data dall'Algoritmo di Nagle, secondo il quale una connessione puo' avere solo un piccolo segmento di cui non e' stato dato ancora lo ACK. Non si possono inviare ulteriori piccoli segmenti finche' non e' stato ricevuto lo ACK del precedente. I dati non inviati vengono raccolti dal TCP in un unico segmento, che viene inviato quando si riceve lo ACK del precedente.

Grazie a questo algoritmo, se sulle reti veloci si ricevono ACK molto frequenti e quindi si inviano segmenti molto piccoli, sulle reti lente si ricevono ACK piu' di rado e quindi si inviano segmenti piu' grossi, contenenti anche molti caratteri per volta. E' da notare che il ritmo di trasferimento delle informazioni e' pressoche' invariato nei due casi. L'unico effetto con alcuni programmi come rlogin, e' uno spiacevole ritardo tra la pressione dei tasti ed il loro echo su video.

In alcuni casi l'algoritmo di Nagle deve essere disabilitato, per esempio con il server del Sistema X Window, quando anche i piccoli movimenti del mouse devono essere inviati come segmenti singoli per fornire un feedback in tempo reale all'utente.

Flusso di Massa

Finestra Scorrevole

TCP usa un protocollo di conferma a finestra scorrevole.


La stazione inviante manda piu' di un segmento consecutivo sulla rete verso il ricevente senza attendersi un ACK ad ogni segmento. Il ricevente manda al trasmittente un ACK dell'ultimo segmento ricevuto senza errori.

In seguito all'ACK il trasmittente invia dal pacchetto successivo a quello di cui ha ricevuto lo ACK, un numero di segmenti uguale al precedente. Il numero dei segmenti e' la dimensione della finestra, la quale e' scorrevole in avanti nella lista dei segmenti da inviare.

Alcuni segmenti possono venire inviati due volte, la ritrasmissione non e' selettiva. Il ricevente semplicemente scarta i pacchetti corretti ricevuti piu' di una volta.

La dimensione della finestra accettata viene determinata dal ricevente tramite il campo Dimensione Finestra della testata TCP.

Per mantenere il flusso il ricevente manda un ACK ogni certo numero di segmenti ricevuti, tipicamente due. Il trasmittente mantiene puntatori ai bordi destro e sinistro della finestra, ovvero dell'ultimo segmento di cui e' stata inviata una ACK e dell'ultimo segmento inviabile nella finestra corrente. Questi puntatori scorrono in avanti al ricevere degli ACK.

Inizio Lento

Secondo questo nuovo algoritmo, TCP determina il ritmo di iniezione pacchetti nella rete dal ritmo di ricezione dei messaggi di ACK.

Oltre alla finestra di trasmissione, determinata dal ricevente, TCP mantiene sul trasmittente una finestra ulteriore concatenata, la finestra di congestione. All'inizio della connessione la finestra di congestione e' inizializzata ad un segmento, ed e' aumentata di uno ad ogni ricezione di un ACK. Vengono inviati tanti segmenti quanto il valore minimo tra la finestra di congestione e la normale finestra scorrevole.

Ad un certo punto la rete si satura ed i segmenti iniziano ad essere persi.


User Datagram Protocol (UDP)

UDP e' un protocollo di trasporto semplice, senza connessione, basato sul trasferimento di datagrammi.

Ogni operazione di output di un processo che usa il trasporto UDP produce esattamente un datagramma UDP, che viene incapsulato in un datagramma IP.


UDP non e' affidabile: invia i datagrammi ma non garantisce che arrivino a destinazione. E' l'applicativo che deve preoccuparsi dell'affidabilita' del servizio.

Testata UDP

La testata UDP e' relativamente semplice.


I campi Porto Sorgente e Porto Destinazione identificano i punti terminali di comunicazione tra i processi comunicanti e la rete. Il campo Lunghezza e' dell'intero datagramma UDP (testata + dati) in byte. Il valore minimo e' 8, ma in realta' questo campo non viene gestito dal protocollo, che sa' che la lunghezza totale e' la lunghezza di un datagramma IP meno i 20 byte della testata IP. Il campo Checksum e' anch'esso opzionale.

Checksum di UDP e TCP

Quando sono calcolati (per TCP e' obbligatorio) i campi Checksum di TCP e UDP vengono formati in un modo speciale, dovuto al fatto che il protocollo IP ha un campo checksum della sola testata IP.

Innanzi tutto la lunghezza del campo dati e' estesa ad un confine di 16 bit usando se necessario un campo finale di Pad posto a zero.

Viene formato uno pseudo-pacchetto composto da:

una pseudo-testata IP contenente solo alcuni campi della testata IP originale

la testata UDP o TCP

i dati UDP o TCP seguiti dal Pad

Il campo Checksum e' calcolato su questo pseudo-pacchetto come complemento a 1 della somma dei complementi a 1 di tutte le parole a 16 nit del pseudo-pacchetto.

Il checksum e' un campo di controllo end-to-end: e' calcolato dal mittente e verificato dal ricevitore del pacchetto. Se il pacchetto UDP e' errato, viene scartato silenziosamente, senza generazione di messaggi d'errore.

L'opzionalita' dei checksum di UDP implica una velocita' maggiore delle operazioni se disabilitata, ma puo' naturalmente fornire sorgenti irrecuperabili d'errori, specie su una rete non Ethernet o quando il datagramma UDP transiti da router.

Frammentazione dei Pacchetti

E'molto facile che i datagrammi UDP siano frammentati in piu' pacchetti. Molti applicativi che usano UDP tendono ad impiegare messaggi molto lunghi (NFS usa buffer di 8 kbyte) per tentare di far entrare molte informazioni in un singolo datagramma.

Teoricamente la massima dimensione di un pacchetto IP e' 65535 byte; con in piu' le testate UDP e IP si arriva ad un massimo teorico di 65507 byte di dati in un datagramma UDP.

Il limite pratico puo' essere inferiore per due motivi:

Non tutte le librerie di interfaccia ai socket permettono datagrammi cosi' grandi: la maggior parte permette 8192 byte o poco piu'

Nell'implementazione dei protocolli TCP/IP nel kernel vi sono spesso limitazioni alla dimensione massima di un pacchetto, volute o per errore

Un effetto perverso si ha quando la rete supporta l'invio di datagrammi grandi ma l'applicativo ricevente ha un buffer di ricezione molto limitato. Molti applicativi che lavorano con UDP in questo caso semplicemente troncano il datagramma in ricezione, scartando i dati in eccesso.

Alcune versioni antiche di Berkley UNIX addirittura non notificano l'applicativo che il datagramma e' stato troncato.

Versioni derivate da UNIX SVR4 non scartano i dati in eccesso ma eseguono piu' letture del datagramma per incamerare tutti i dati in arrivo. A volte l'applicativo non e' conscio di aver eseguito piu' letture.

L'interfaccia TLI (Transport Level Interface) della AT&T non scarta i dati, ma ritorna un flag all'applicativo per indicare la necessita' di ulteriori operazioni di lettura.

Interazione UDP - Altri Protocolli

Naturalmente, dato il volume di dati che UDP puo' generare su rete e la possibilita' elevata di frammentazione, il caso piu' frequente e' la generazione di messaggi ICMP:

Source Quench - per indicare la necessita' di ridurre la velocita' di invio pacchetti Per un periodo di tempo la moda e' stata di deprecare l'uso di messaggi Source Quench ritenuti solo un ulteriore aggravio del carico di rete ed inefficaci nel ridurre le congestioni. La moda attuale e' tornata a favorirli, come metodo di feedback per programmi adattativi; i programmi inoltre tendono ad iniziare lentamente ad inviare i pacchetti, per poi aumentare gradualmente fino al primo Source Quench.

Destination Unreachable - codice indicante frammentazione necessaria ma bit Don't Fragment settato. Molte versioni UNIX, p.es. Solaris, preferiscono negoziare un Path MTU piuttosto che frammentare i pacchetti di continuo. Purtroppo il timeout di rinegoziazione del Path MTU, che dovrebbe essere di 10 minuti secondo le specifiche, e' spesso settato troppo corto, 30 secondi o meno.

Time Exceeded - codice indicante dempo scaduto d urante il riassemblaggio pacchetti. Attenzione che alcune versioni vecchie di Berkeley UNIX non generano mai questo messaggio.

Uno strano effetto di interazione tra UDP ed ARP si verifica quando i datagrammi sono appena superiori in dimensione a 8192 byte e abbisognano di frammentazione. Piu' frammenti sono generati e ciascuno di essi causa l'invio di una richiesta ARP. ARP scarta tutti i frammenti tranne l'ultimo (e' parte delle specifiche), ma genera le richieste troppo velocemente (non e' parte delle specifiche, che dicono di attendere circa un secondo tra due richieste successive alla stessa stazione). Quando un responso ARP arriva, lo ARP della stazione inviante ha gia' scartato tutti i pacchetti, tranne l'ultimo che viene inviato. Lo strato UDP del ricevente non ha la testata UDP in questo pacchetto e, non sapendo a quale porto destinarlo, lo scarta silenziosamente. Dopo un tempo di timeout, l'applicativo inviante ripete la trasmissione, che questa volta passa immediatamente poiche' lo ARP inviante gia' possiede la destinazione nella sua cache.

Attenzione che in questo caso, se il tempo di validita' della cache ARP e' inferiore al tempo di ritrasmissione dell'applicativo inviante, l'effetto malefico viene ripetuto e forse il datagramma non arrivera' mai a destinazione.




Privacy




Articolo informazione


Hits: 2610
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