ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è...

216
ISTITUTO TECNICO INDUSTRIALE STATALE “GIACOMO FAUSER” VIA RICCI, 14 28100 NOVARA Tel. +39-321482411 Fax +39-321482444 MASSIMO UBERTINI

Transcript of ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è...

Page 1: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

ISTITUTO TECNICO INDUSTRIALE STATALE “GIACOMO FAUSER”

VIA RICCI, 14 28100 NOVARA Tel. +39-321482411 Fax +39-321482444

MASSIMO UBERTINI

Page 2: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 2

introduzione Introduzione alle reti Locali e geografiche Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali (Local Area Network o LAN), delle reti geografiche (Wide Area Network o WAN) e delle modalità della loro interazione. La LAN si è sviluppata partendo dalla necessità di un numero ristretto di utenti di PC di usufruire di servizi comuni in modo efficiente ed è per questo associata con i gruppi di lavoro e i dipartimenti estesi su un’area geografica limitata. Il termine nodo indica qualsiasi periferica direttamente collegata alla rete.

Da un punto di vista dell’estensione geografica, le reti sono distinte in: 1. reti per la connessione di moduli all’interno di uno stesso sistema: bus, crossbar

switch, canali, cluster. 2. LAN sviluppate su aree limitate senza attraversamento di suolo pubblico; esse non

sono compatibili con gli standard di telecomunicazioni pubbliche perché progettate per essere veloci con distanze minori di un Km.

3. MAN (Metropolitan Area Network) sviluppate su aree anche pubbliche ma limitate in estensione, supportate quindi da infrastrutture pubbliche che garantiscono in ogni modo alte velocità.

4. RAN (Region Area Network). 5. WAN reti geografiche che si basano su sistemi di telecomunicazioni usati per la

telefonia convenzionale e quindi poco veloci. 6. GAN (Global Area Network). Le WAN riguardano maggiormente le comunicazioni internazionali e le diverse sedi su cui si può articolare l’organizzazione di un’azienda e sono nate prima che il PC fosse inventato. Le reti geografiche si sono sviluppate dalla necessità di condividere all’interno di un’azienda dati per la pianificazione, il controllo e il reporting finanziario. Ciò ha significato collegare insieme mainframe e mini computer su basi nazionali e su scala mondiale. Oggi, nella maggior parte delle aziende, l’estensione dei servizi LAN utilizzando reti geografiche e la gestione della rete aziendale che ciò comporta, sono diventati elementi strategici centrali. Dato che LAN e WAN hanno caratteristiche molto diverse, collegarle non è semplice, anche se il loro collegamento produce sensibili vantaggi in fatto di produttività ed efficienza a tutti i livelli dell’organizzazione dell’azienda. Le LAN sono locali: i PC sono collegati con cavi che appartengono all’organizzazione e sono di solito sotto il suo controllo. Questi collegamenti relativamente brevi consentono trasmissioni dati a velocità molto elevate. Le WAN sono distribuite sul territorio. Per collegare i PC in una WAN é necessario pagare per l’utilizzo di cavi che appartengono a qualcun altro, generalmente ad una società di telecomunicazioni pubblica o privata e che quindi non sono sotto il diretto controllo di chi possiede le WAN. I collegamenti WAN

Page 3: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 3

sono realizzati per mezzo di commutazione su lunghe distanze ed hanno quindi velocità di trasmissione inferiori a quelle possibili localmente. Le differenze di velocità possono causare dei colli di bottiglia se due LAN che si trovano distanti cercano di comunicare nell’ambito di una WAN. La necessità di portare la velocità delle WAN vicino a quelle delle LAN è oggi una priorità dell’industria, stimolata dalla necessità di un’integrazione efficace. Storicamente il collegamento di due computer per mezzo di cavi locali o di un sistema telefonico è sempre stato un semplice problema di trasmissione dati: come fare andare i dati da uno all’altro in una forma che potesse essere compresa da ciascun computer. In ogni caso, se il collegamento tra numerosi computer è assicurato dallo stesso cavo, si presenta un problema nuovo: chi sta parlando a chi? Ciascun produttore di computer ha cercato di risolvere il problema delle reti per i propri clienti. Ma con i vari produttori impegnati a creare la propria soluzione per i collegamenti in rete, gli utenti si sono trovati di fronte a reti incompatibili. I clienti erano costretti a continuare a comprare da un unico fornitore dato che i computer di marche diverse non riuscivano a comunicare tra loro in modo efficiente. Ciò causava frustrazioni dato che gli utenti non potevano scegliere le migliori soluzioni per rispondere ai bisogni della loro organizzazione o scambiare i dati facilmente con altre organizzazioni. L’unica soluzione stava nell’unire utenti, produttori di computer, enti governativi e organizzazioni di standard e concordare standard di reti comuni. Mettersi d’accordo sugli standard è una cosa, implementarli un’altra. Allora, come si può fare per mantenere il meglio di ciò che é stato progettato e, nello stesso tempo, creare uno standard che tutti possano utilizzare? La risposta è la stessa che ha qualunque lavoro complesso: occorre guardare alla vastità dell’intero problema e poi suddividerlo in pezzi gestibili. Ciascun pezzo significa uno specifico lavoro da compiere il cui risultato è poi passato al pezzo successivo. Tutti questi pezzi o “task”, possono essere definiti con precisione in modo che ciascun possa sapere che cosa riceverà, cosa dovrà fare e che cosa dovrà passare al “task” successivo. Nel linguaggio delle reti, le diverse funzioni sono chiamate livelli. Il modo più diffuso di guardare alle reti è quello fornito dal modello di riferimento Open System Interconnection dell’International Standard Organization, chiamato anche modello ISO OSI. Spesso, gli standard ISO incorporano standard creati da altre organizzazioni che comprendono: CCITT, IEEE e ANSI. Quando ISO pubblica uno standard con OSI nel titolo, significa che lo standard intende rendere i sistemi che lo supportano “aperti” agli scambi d’informazione con altri sistemi. Il modello di riferimento OSI é stato creato per due scopi: 1. per aiutare il coordinamento dello sviluppo di nuovi standard di comunicazione,

dividendoli per funzione in sette sottogruppi o livelli: 2. è stato progettato per aiutare a mettere gli standard di comunicazione esistenti in

prospettiva, definendo il loro posto in un sistema di comunicazione completo. È importante capire il concetto di ciascuno di questi livelli. Ciascun livello utilizza servizi forniti dal livello inferiore e fornisce servizi al livello superiore. Ciascun livello comunica con lo stesso livello all’altro capo della “conversazione”. Il modello OSI Livello 7: Applicazione Lo strato dell’applicazione consente ai programmi di accedere ai servizi di rete. Per usare lo strato dell’applicazione, un programma deve avere una componente della comunicazione che richieda risorse di rete. Di seguito sono riportati alcuni esempi di programmi che coinvolgono lo strato dell’applicazione. Posta Elettronica. Lo strato dell’applicazione consente ai programmi di accedere ai servizi di comunicazione di rete. Esempi di prodotti di questo tipo sono Lotus Notes e MS Exchange Server. Applicazioni per teleconferenze. Lo strato dell’applicazione consente agli utenti di

Page 4: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 4

utilizzare applicazioni per riunirsi, come per esempio video, dati vocali, etc. Un programma di questo tipo è MS Net Meeting. World Wide Web. Attraverso i browser gli utenti possono accedere ad informazioni provenienti da località remote in varietà di formati diversi (testo, immagini, video, suoni). Applicazioni di questo genere sono i tradizionali Web server. Applicazione VT (Virtual Terminal). Livello 6: Presentazione Lo strato di presentazione determina il modo in cui i dati sono formattati nello scambio tra due computer in rete. I dati ricevuti dallo strato dell’applicazione sono tradotti in un formato intermedio comunemente riconosciuto. Lo strato di presentazione è responsabile anche di per le traduzioni e le codifiche dei dati e conversioni dei set di caratteri e dei protocolli. Alcuni formati di presentazione gestiti dallo strato di presentazione sono: ASCII. L’American Standard Code for Information Interchange è un set di caratteri codificati ad 8 bit, usato per definire tutti i caratteri alfanumerici. EBCDIC. L’Extended Binary Coded Decimal Interchange Code è il metodo di rappresentazione dei testi usato abitualmente sui MainFrame e sui Mini dall’IBM. XDR. L’eXtended Data Representation viene usata da applicazioni come NFS e NIS per fornire un formato universale per la trasmissione di testi tra due computer che si servono di due rappresentazioni diverse (per es. ASCII ed EBCDIC). 7 Applicazione 6 Presentazione Servizi di rete Software 5 Sessione 4 Trasporto Comunicazioni 3 Rete Firmware & Hardware

2 Collegamento dati Collegamenti fisici

1 Fisico Media Livello 5: Sessione Lo strato della sessione consente a due applicazioni su host eventualmente separati di stabilire una connessione per la comunicazione, chiamata sessione. La sessione assicura che i messaggi inviati dall’uno all’altro siano ricevuti con un alto grado di attendibilità. La sessione svolge funzioni di sicurezza, per assicurare che i due host siano autorizzati a comunicare attraverso la rete. Alcuni esempi di di protocolli ed interfacce che operano a livello di sessione sono: 1. Winsock. È una interfaccia di programmazione che stabilisce le porte i protocolli e gli

indirizzi di due host che si apprestano a comunicare su rete. 2. Remote Procedure Call (RPC). È un meccanismo che consente ad un host client di

costruire una richiesta che verrà poi eseguita su un host server al livello di sicurezza del client.

3. X-Window. Permette a terminali intelligenti di comunicare con computer UNIX come se fossero direttamente attaccati.

Page 5: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 5

Livello 4: Trasporto Il software di trasporto assegna le risorse di rete appropriate per rispondere alla richiesta di trasmissione dati del livello sessione: gestisce trasferimenti end-to-end, cioè indipendenti dalla rete fisica sottostante. Esso determina il percorso che i dati dovranno seguire da un punto della rete all’altro calcolando la velocità e i costi dei collegamenti disponibili. Per esempio: il computer sceglie il percorso di rete più appropriato per gli Stati Uniti e si assicura che il messaggio arrivi tutto intero nell’ordine corretto. Segmenta e riassembla i dati in un flusso di dati. I dati da trasferire sono spezzettati in segmenti e spediti al destinatario numerandoli sequenzialmente. Il destinatario, alla ricezione dei segmenti, invia un segnale di avvenuta trasmissione. Nel caso di avvenuta ricezione di un segmento, il destinatario può richiederne la ritrasmissione. In questo modo sussiste il controllo degli errori nel trasporto dei dati. Livello 3: Rete Il livello rete tiene traccia dei possibili collegamenti che una rete può effettuare e passa quest'informazione al livello trasporto. Esso è responsabile per l’instradamento e la ripetizione dei dati attraverso i sistemi intermedi e/o sotto reti. Inoltre, esso informa il livello trasporto della qualità del servizio (velocità ed affidabilità) di collegamenti di rete possibili o esistenti. Per esempio: questa è la rete di altri computer attraverso i quali passa il messaggio. È possibile rendere disponibili altri percorsi in casi di “ingorghi del traffico” o interruzioni di linea. I protocolli di rete sono implementati all’interno dei livelli tre, quattro e cinque. È il livello più complesso. Gestisce l’indirizzamento dei messaggi e la traduzione degli indirizzi logici (es. gli indirizzi IP) in indirizzi fisici (gli indirizzi MAC). Livello 2: Collegamento dati Questo strato si occupa dell’invio dei frame dei dati dallo strato della rete a quello fisico. Quando riceve i bit dallo strato fisico, li traduce in frame di dati. Un frame comprende in genere le seguenti componenti: 1. ID del destinatario. Questo ID è in genere l’indirizzo MAC (Media Access Control)

dell’host di destinazione o del gateway predefinito. 2. ID del mittente. In genere è il MAC del mittente. 3. Informazioni di controllo. Includono informazioni quali l’effettivo tipo di frame e notizie

riguardo l’instradamento e la segmentazione. 4. CRC (Cyclic Redundancy Check). Effettua la correzione degli errori e verifica che il

frame di dati sia arrivato intatto all’host destinatario. Su una rete Ethernet deve gestire la rilevazione delle collisioni e in una rete Token Ring anche del passaggio del token. Livello 1: Fisico Lo strato fisico definisce le correnti elettriche, gli impulsi fisici o gli impulsi ottici che sono coinvolti nel trasporto dei dati dalla NIC (Network Interface Card) di un host al sistema di comunicazione. I requisiti e le caratteristiche necessarie per la trasmissione sono documentate in genere in standard tipo V.35 o RS-232. In pratica lo strato fisico è il responsabile dei bit da un computer all’altro. Media (plurale di medium, in pratica mezzo) Il livello fisico OSI non include le caratteristiche del cavo di rame o in fibra ottica dato che esse sono specificate in altri standard. Per esempio: i segnali sono trasmessi lungo un cavo di rame che porta al server. OSI in pratica Quando si paragona il modello di riferimento OSI ai sistemi esistenti, si scopre spesso che le funzioni effettive non corrispondono esattamente a ciascuna definizione di livello OSI. In effetti, troviamo spesso che parecchie funzioni di livello sono svolte dagli stessi

Page 6: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 6

prodotti di rete, ad esempio: 1. X.25 è un protocollo per reti geografiche con funzioni di livello sia collegamento dati

sia di rete. 2. Lo standard Ethernet comprende livello fisico e collegamento dati. 3. Il package per posta elettronica X.400 funziona al livello applicazione, ma svolge

anche alcune funzioni del livello presentazione. Questo genere di sovrapposizione non riduce il valore del modello come quadro di riferimento nella discussione di servizi e standard di rete. Potete utilizzare il modello di riferimento OSI per identificare sia i livelli di cui si occupa lo standard, sia le funzioni che lo standard svolge a ciascun livello. A questo punto potete collocare lo standard in prospettiva nell’ambito del mondo delle reti. L’industria si sta muovendo verso OSI più adagio di quanto ci si aspettava negli anni ottanta, principalmente a causa degli “standard de facto” che gli utenti o i fornitori sono riluttanti ad abbandonare. Uno degli utenti di rete più grandi del mondo, il governo Americano, ha scelto quella che ritiene essere la parte più vitale per il modello di riferimento OSI per una specifica chiamata GOSIP (Governement OSI Profile). Dall’agosto 1990, salvo che non si abbia una speciale autorizzazione, gli enti governativi non possono acquistare nuovi prodotti informatici se non sono conformi alle specifiche GOSIP. Decisioni simili stanno per essere prese anche in Europa. Terminologia OSI I Sistemi (Elaboratori, terminali), i Mezzi Fisici (elementi di connettività), le Applicazioni e le Connessioni. I Sistemi comunicano tra di loro attraverso i mezzi fisici i quali sono i modi attraverso i quali i sistemi comunicano. I sistemi sono i luoghi che ospitano le applicazioni; alcune applicazioni possono prevedere connessioni per comunicare con altre applicazioni. Le connessioni sono realizzate tramite i Mezzi Fisici. L’insieme di regole, convenzioni e formati che gestisce lo scambio di informazione tra livelli identici su sistemi diversi è detto Protocollo. Ogni livello possiede un protocollo. Livelli uguali comunicano tramite il protocollo di quel livello. I dati manipolabili dai protocolli sono detti in generale pacchetti e assumono il nome di nPDU (Protocol Data Unit; n è il livello del Protocollo). Un nPDU consiste di un nSDU (Service Data Unit, i dati veri e propri) e di un nPCI (Protocol Control Information, dati di servizio per il protocollo). Ogni livello deve poi interagire con il livello immediatamente superiore o immediatamente inferiore per consentire uno scambio di Servizi tra i livelli e consentire che ogni livello possa applicare le proprie funzioni e veicolare i pacchetti all’interno della pila. L’insieme delle procedure, routine, processi che implementano i servizi di livello n sono dette Entità di livello n. I dati manipolabili dalle entità di un livello sono detti nIDU (Interface Data Unit di livello n). Un nIDU consiste di una nPDU e di un nICI (Interface Control Information, informazioni di servizio che consentono alle entità del livello n di eseguire i servizi richiesti). Ogni livello possiede quindi protocolli e servizi peculiari. I servizi sono svolti in verticale, i protocolli comunicano in orizzontale. Un’entità presente a livelli paritari è detta Peer Entities. I Servizi sono raggruppabili in Primitive di Servizio; tra due livelli adiacenti essi sono svolti da un’Interfaccia di livello e tramite SAP (Service Access Point o punti di accesso). Il collegamento tra il livello n-1 e il livello n è detto Interfaccia di livello n-1 o interfaccia n-1/n; sull’Interfaccia n-1/n transitano i dati n-1IDU. Le primitive di servizio su questa interfaccia sono primitive di servizio a livello n-1. Un livello superiore n chiede servizi al livello inferiore n-1 (e un livello inferiore n-1 fornisce servizi al livello superiore n) tramite SAP che sono detti in questo caso n-1SAP e possono essere diversi per ogni Interfaccia. Ogni SAP è caratterizzato da un identificativo che spesso è detto Indirizzo di SAP. Per ipotesi si consideri una peer entities di livello 3 (L3). Il Sistema A comunica dal suo

Page 7: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 7

L3 tramite il protocollo di L3 con il livello L3 del sistema B; il sistema A ha primitive di servizio per cui L4 usa L3 (il L4 è un service user di L3 e L3 è service provider di L4). Il sistema B ha primitive di servizio per cui L4 riceve servizi da L3 (L3 è service provider per L4 che è un service user di L3). Tutto ciò riguarda tutti i livelli tranne L1.

Livelli e Protocolli OSI

Livelli e Imbustamento OSI

Le fasi dell’attività di un livello n che acquisisce informazione da livello n-1 e deve passare informazione al livello n-2 possono essere descritte: 1. Il livello Ln riceve una n+1IDU dal livello Ln+1 attraverso l’interfaccia di livello n (o

n/n+1) e attraverso un nSAP. 2. Una nEntità estrae l’n+1ICI dall’n+1IDU, esegue il servizio necessario contenuto

nell’n+1ICI, elimina l’n+1ICI oramai inutile, decide che per proseguire il cammino serve una certa nICI necessaria al livello n-1 per eseguire un determinato servizio.

3. Inoltre decide di creare un nPCI per il protocollo di livello n, attività svolta da un’altra nEntità; questo nPCI giustapposto al precedente n+1PDU genera il nuovo nPDU.

4. Quindi nICI e nPDU sono giustapposti per il nuovo nIDU da passare a livello n-1, attraverso un’interfaccia di livello n-1 e relativo n-1SAP

Si può sintetizzare questa dinamica di trasferimento pacchetti notando che: 1. le PDU (PCI+SDU) rappresentano i pacchetti per i protocolli di livello paritario. 2. le IDU (ICI+PDU) rappresentano i pacchetti per i livelli adiacenti; 3. le PDU si accumulano di intestazioni (PCI) nel trasferimento verticale dall’alto verso il

basso e si alleggeriscono nel trasferimento verticale dal basso verso l’alto; 4. le IDU sono arricchite di intestazioni (ICI) e spogliate delle stesse ad ogni passaggio

Ln+1 Ln+1 Ln <- Protocollo Ln -> Ln

Interfaccia Ln-1

Interfaccia Ln-1

Ln-1 <- Protocollo Ln-1 ->-> Ln-1

Ln-2 Ln-2

Ln+1 n+1 IDU

n SAP Ln

< n+1 ICI n+1 PDU

| n+1 PCI n+1SDU Estratto, valutato, eseguito da nEntità | Creazione | nuovo nPCI | | n+1PCI n+1SDU Creazione n PCI | | nuovo nICI | | n ICI | | n ICI n PCI n+1PCI n+1SDU n+1 PDU n PCI n SDU n ICI n PDU n IDU

Page 8: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 8

di livello verticale, per scomparire definitivamente a livello L1. Imbustamento Multiplo Un concetto fondamentale per OSI, ma anche per tutte le altre architetture di rete, prende il nome di Imbustamento Multiplo. Ogni livello, in spedizione, genera informazione, aggiunge dati caratteristici del livello (busta) e lo spedisce al livello sottostante. In ricezione acquisisce una busta contenente dati, e, tramite la busta riesce a trattare i dati contenuti. I sette livelli OSI generano pertanto pacchetti di Protocollo (PDU) caratteristici per ogni livello. Ogni nPCI e nPDU assume quindi un nome caratteristico che spesso è rappresentato come in figura. Ogni livello, applicando il proprio protocollo, agisce dall’alto verso il basso (in trasmissione), inserendo la propria intestazione alla busta, intestazione che contiene le indicazioni operative per il livello paritario; dal basso verso l’alto (in ricezione), agisce estraendo l’intestazione e decodificandola.

Header nello Stack OSI

In questo caso AH significa Application Header e rappresenta la 7-PCI; analogamente per PH, SH, TH, NH, DH; DT significa Data Link Trailer. Un altro concetto fondamentale, non solo per OSI, riguarda la Frammentazione dei pacchetti. Se una nPDU diviene troppo grande rispetto ad una trasmissione senza errori per quel livello, lo stesso livello frammenterà la nPDU in tanti pacchetti di minori dimensioni per consentire una trasmissione più efficace. Ogni pacchettino conterrà naturalmente le informazioni necessarie per ricomporre il pacchetto originale. La frammentazione avviene soprattutto a livello 4 di Trasporto. Livello fisico Le competenze tipiche del livello riguardano le caratteristiche meccaniche (formati dei connettori, dimensioni e forma dei piedini, tecnologia del cavo), le caratteristiche elettriche (livelli logici e tensione, impedenze), funzionali (significati dei piedini, funzioni correlate). Protocolli di Clock & Data Encoding Utilizzati nelle LAN e, a volte, nelle MAN. Anche se i diversi elementi di una connessione potrebbero possedere elementi elettronici dotati di clock nominalmente identici tra trasmettitore e ricevitore, in realtà i due quarzi potrebbero generare rispettivamente due segnali sfasati. Allora, siccome sui tratti di LAN il mezzo prevede quasi sempre un solo filo e la comunicazione è paragonabile ad una seriale sincrona estremamente veloce, i segnali di sincronizzazione sono costretti all’interno dei pacchetti di dati. Esistono due tecniche: 1. Clock miscelato con i dati in Tx ed estratto in Rx; modalità Bipolar Encoding e Phase

Encoding. 2. Garanzia di transizioni, il PLL controlla e aggancia i fronti del clock del Tx al clock

dell’Rx. Per effettuare ciò è necessario avere delle transizioni sulla linea dati (varianti

STACK SISTEMA A (TX)

STACK SISTEMA B (RX)

dati L7: Applicazione AH-dati L7: Applicazione L6: Presentazione PH-APDU L6: Presentazione

L5: Sessione SH-PPDU L5: Sessione L4: Trasporto TH-SPDU L4: Trasporto L3: Network NH-TPDU L3: Network L2: Data Link DH-NPDU-

DT L2: Data Link

L1: Mezzo Fisico bits L1: Mezzo Fisico

Page 9: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 9

di zeri e uni). Tramite la modalità Bipolar Encoding ciò si ottiene (RZ) il BE genera un impulso ad ogni bit e ritorna sempre a neutro (RZ=Return Zero). Il ricevitore analizza il clock estratto e in prossimità del fronte di salita vedere se il segnale ricevuto è a 1 o a 0, decodificare l’informazione. Il BE gestisce tre livelli elettrici: 0, - e + Tramite la modalità Phase Encoding ciò si ottiene (NRZ) utilizza solo due livelli elettrici, usati sulle LAN e esempi tipici di PE sono le codifiche di Manchester (CM). Si prende il bit e lo si divide sempre con una transizione. Implica l’aumento (x2) della banda trasmissiva (BT, capacità di trasmettere più informazioni) dato che per ogni singolo bit la frequenza del clock generatore deve essere doppia. Ultimamente anche su LAN veloci diventa problematico aumentare la BT. Codifica di Manchester Semplice: si immette una transizione su ogni bit, che sia 0 o 1. Differenziale: rispetto al fronte del bit precedente si immette una transizione se devo trasmettere 0, non si immette transizione se devo trasmettere 1. Inoltre, in ogni caso, si possono commettere violazioni della CM per marcare l’inizio e la fine dei pacchetti. La CM semplice è usata in Ethernet; la CM Differenziale è utilizzata in Token Ring.

Le tecniche PE (CM) costano in termini di LB. Infatti, per una codifica normale, la rappresentazione di un bit si ottiene con metà di una onda quadra della durata di un periodo, cioè due bit si rappresentano con una onda quadra da un periodo. Allora per una trasmissione a 10 Mbps sarebbe sufficiente un generatore di clock con una fondamentale di 5 MHz (se, per ipotesi, su ogni onda quadra generata dal quarzo fosse garantita una transizione, o 01 o 10, data la natura dell’onda quadra). Con codifica di Manchester invece, dove i singoli bit si creano con due transizioni, per ottenere la stessa velocità trasmissiva di 10 Mbps è necessario un clock con fondamentale a 10 MHz. Codici con Transizione Garantite Codifica C4/5 Consentono di aumentare la velocità di trasmissione in Mbps senza aumentare in modo 2x la LB fondamentale. Garantiscono la presenza di un numero di transizioni sufficienti per mantenere il sincronismo. Evitano lunghe sequenze neutre (di uni o zeri). Usano un Codificatore 4/5 bit (reti FDDI) che in input prende 4 bit e genera in out 5 bit con il criterio di aumentare le transizioni sui 5 bit. In genere in Tx sono analizzati i bit a gruppi di quattro, ed a essi si sostituisce una codifica tabellata di 5 bit. In questo modo sono

Page 10: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 10

garantite transizioni tali da ottenere sempre sequenze con coppie di bit mai costanti (per come è costruita la tabella) per sfruttare appieno l’onda quadra del clock; quando il ricevitore analizza i gruppi da 5 bit, tramite la stessa tabella letta in senso inverso ricostruisce i quattro bit originali. In questo caso quindi la sincronizzazione si ottiene con un generatore di clock non doppio rispetto alla frequenza originale, ma aumentato solo del 25% (su 5 bit, uno è di overhead). Anche in questo caso la delimitazione dei pacchetti è ottenuta con violazioni di codifica. La codifica 4/5 è utilizzata dalle reti in fibra ottica. Codifica C6 In questo caso si parla di protocolli sincroni in cui il clock è trasmesso su linee dedicate e quindi permane solo il problema della delimitazione dei pacchetti. Tale protocollo, detto C6, è usato da protocolli superiori di derivazione HDLC. Questi protocolli evitano il generarsi di sequenze di 6 o più uni consecutivi. In effetti, in questo caso i protocolli HDLC (e derivati) utilizzano un delimitatore di trama (sia all’inizio che alla fine) uguale a 01111110 (7Eh), che è e deve essere l’unica configurazione di bit con 6 uni consecutivi (deve essere distinguibile senza ambiguità); quando nei dati da trasmettere dovessero essere presenti 5 uni, l’hardware aggiunge automaticamente uno zero; in ricezione, l’hw, ritrovandosi 5 uni consecutivi analizza il bit seguente e, se 0, lo scarta ed interpreta l’attuale sequenza come Dato, se 1 invece interpreta la sequenza come Delimitatore. Ciò garantisce allo stesso tempo la funzionalità di delimitazione di pacchetto alla codifica C6. È utile ricordare come Rs232, X.2, X.21 e C6 siano protocolli L1 dedicati a topologie logiche di connessione punto-punto, ove la presenza del clock è garantita da segnali dedicati, mentre le codifiche di Manchester e la C4/5 sono dedicate a topologie logiche di connessione multipunto (o broadcast), in cui la sincronizzazione deve essere garantita dai dati stessi.

Page 11: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 11

TOPOLOGIA E MEZZI DI TRASMISSIONE Introduzione La scelta del cablaggio è una decisione aziendale strategica. L'installazione dei cavi può costare quanto l'hardware dei computer e dovrà rispondere alle esigenze dell'azienda il più a lungo possibile. La posa del cavo avrà importanti conseguenze per l'installazione degli utenti e nella scelta e nella manutenzione della rete. Mezzi di trasmissione Si dividono in: 1 solidi

1.1 cavo in rame 1.1.1 coassiale 1.1.2 doppino telefonico

1.2 fibra ottica 2 hertziani

2.1 ponte radio 2.2 radiomobile 2.3 satellite geostazionario (36000 Km di altezza, rivoluzione un giorno)

Ecco alcune delle principali differenze tra le varie soluzioni e i criteri decisionali per valutarne l'adozione. Cavo in rame I dati e gli archivi di dati che passano da un computer all'altro sono trasmessi ed interpretati come serie di bit. Tipicamente, le LAN trasmettono parecchi mega bit al secondo a distanze che arrivano fino a duecento metri. Nel cavo di rame, i bit dati sono rappresentati da serie d'impulsi elettrici. Le rapide variazioni di tensione associate con milioni d'impulsi al secondo presentano parecchi fattori che devono essere considerati di volta in volta. 1. Il cavo agisce da antenna emettendo radiazioni che possono disturbare altre

apparecchiature. La radiazione può inoltre essere rilevata intenzionalmente ed interpretata, il che può presentare un rischio per la sicurezza.

2. Dato che un'antenna funziona in modo bidirezionale, può inoltre raccogliere interferenze che possono corrompere i dati presenti sul cavo.

3. La lunghezza del cavo è limitata: la resistenza elettrica del conduttore in rame riduce la chiarezza dei segnali man mano che essi viaggiano.

4. Il cavo in rame tra edifici deve essere isolato oppure gli edifici devono condividere una terra comune; in caso contrario, possono presentarsi pericolosi livelli di differenza di potenziale.

Coassiale Scoperto nel 1966 per migliorare i circuiti Single-Ended, garantisce una distribuzione uniforme dell’impedenza lungo tutta la sua lunghezza, con minori perdite e maggiori immunità ai disturbi elettromagnetici, velocità un mega bit al secondo. Questo è stato ottenuto circondando il conduttore di rame centrale con: 1. una calza metallica, come schermatura contro i campi elettromagnetici; 2. un rivestimento plastico, come isolante. Un conduttore di rame centrale di diametro più ampio riduce i problemi di resistenza elettrica; questo è il cosiddetto cavo ThickLAN in grado di trasportare un segnale fino a cinquecento metri. Poiché il rame è costoso, per le distanze inferiori a duecento metri è

Page 12: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 12

utilizzato un cavo con conduttore centrale più sottile chiamato cavo ThinLAN. Cavo coassiale sottile già dotato di connettoreBNC.

Doppino telefonico Visto che l'installazione di qualunque cavo è costosa perché non evitarla? In molti edifici esiste già il cavo telefonico costituito da due cavetti isolati e attorcigliati uno intorno all'altro (uno ha la funzione di trasporto del segnale, l’altro rappresenta il riferimento di terra del segnale stesso), chiamato "doppino". Il doppino telefonico è quindi interessante dal punto di vista dei costi, ma può presentare due problemi, uno politico e uno tecnico. 1. Il problema politico sta nel fatto che, anche se il cavo telefonico può trovarsi

fisicamente nella proprietà del cliente, è la TELECOM ad avere il controllo su ciò che ad esso è collegato. Questo limite ha lo scopo di evitare il collegamento di prodotti inadeguati che possono inviare segnali lungo la linea e quindi disturbare il segnale telefonico. Questa situazione si sta allentando in Europa man mano che i diversi paesi "rilassano" le restrizioni nel campo delle telecomunicazioni.

2. Il problema tecnico è invece legato alle radiazioni e alle interferenze che possono indebolire il segnale; fino a poco tempo fa, questi problemi limitavano l'impiego del doppino alle distanze di collegamento brevi e alle basse velocità di trasmissione. Oggi in ogni modo le prestazioni sono state migliorate per mezzo di una combinazione di tecniche sofisticate di trattamento del segnale.

Le frequenze di trasmissione sono comprese fra trecento e tremila quattrocento Hz (quelle più rappresentative della voce umana: banda fonica), la velocità massima è di trentamila bit al secondo. Sullo stesso canale viaggiano due informazioni distinte, ma contemporanee: 1. i dati; 2. le informazioni di controllo. Il doppino schermato STP (Shielded Twisted Pair) è stato creato per ridurre la radiazione laddove l'interferenza o la sicurezza sono un problema. Il cavo STP sembra un normale doppino con una schermatura intorno simile quella del cavo coassiale. Spesso, i fornitori di soluzioni STP sostengono che i loro cavi offrono velocità di trasmissione dati superiori a quelle raggiunte da quelle del doppino non schermato UTP (Unshield Twisted Pair). Ciò può essere talvolta vero, ma gli stessi miglioramenti tecnologici che hanno portato il cavo UTP da un mega bit al secondo a dieci mega al secondo continuano a migliorare le sue prestazioni. Ecco l'aspetto di un tratto di doppino ritorto non schermato (UTP) a quattro coppie (8 fili).

Un particolare dello spinotto in plastica (RJ45) usato come connettore in tutte le reti che

Page 13: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 13

funzionano su doppino. Assomiglia allo spinotto usato nei telefoni, ma è più grande perché deve contenere otto fili. Qui lo vediamo inserito su un doppino ritorto non schermato. Banda Larga I sistemi di cavo in precedenza esaminati sono noti come sistemi "baseband". Essi ammettono sul cavo solo la presenza di un pezzo di dati alla volta. Il sistema di segnalazione a banda larga suddivide la frequenze disponibili sul cavo in canali separati, consentendo numerose comunicazioni simultanee. Il cavo di solito associato alla banda larga è spesso rigido, e circondato da uno schermo metallico solido ricoperto da un materiale isolante termoresistente. È molto costoso da installare e spesso è interrato o annegato nel cemento. Il cavo a banda larga è utilizzato dalle emittenti TV via cavo per trasportare fino a cento canali e anche in ambienti produttivi (ad esempio acciaierie o impianti chimici) nei quali dispositivi multipli devono essere controllati in tempo reale. La capacità di dati del cavo a banda larga è sicuramente interessante per gli utilizzatori di reti di computer, ma tali reti possono risultare difficili da far funzionare dato che richiedono un "timing" molto preciso e il rigoroso rispetto di regole quando si tratta di aggiungere nuove stazioni di lavoro alla rete. A meno di pianificare l'installazione di una rete molto vasta costituita da migliaia di stazioni, con personale di supporto addestrato per tenerla in funzione, una rete banda larga probabilmente non ha senso. Fibra ottica Il cavo a fibra ottica si sta diffondendo ovunque è necessario coprire lunghe distanze, avere maggiori velocità o è richiesta totale assenza di problemi legati alle radiazioni. I dati sono trasmessi da diodi emettitori di luce infrarossa all'interno di micro cavi sintetici o in vetro, all’altra estremità un dispositivo fotosensibile trasforma gli impulsi luminosi in impulsi elettrici. Non sono emesse radiazioni né le radiazioni esterne possono corrompere i dati. I cavi in fibra sintetica (in plastica trasparente) possono essere utilizzati per l'intera LAN o solo per quella parte che è sensibile alla radiazione (ad esempio dove il cavo va all'esterno per congiungere due edifici). Con il cavo a fibra ottica è inoltre molto difficile il collegamento non autorizzato, un'altra caratteristica che si aggiunge alle altre già interessanti caratteristiche in fatto di sicurezza. La fibra in vetro ha una trasmissione ottica migliore degli altri materiali sintetici. Essa mantiene una chiarezza di segnale eccezionale e offre fattori di velocità e distanza di gran lunga superiori a quelli delle fibre sintetiche o del cavo in rame: cento mega bit al secondo su distanze di duecento Km sono valori tipici. Nelle reti in fibra a banda stretta la luce è trasmessa in un'unica direzione e sono quindi necessari per ogni collegamento due cavi o un cavo con due diversi conduttori luminosi al suo interno. Hertziani Le informazioni sono trasformate in micro onde. Tale sistema permette di realizzare collegamenti “a vista” (in pratica, in linea retta), la curvatura della terra impone l’installazione di ripetitori solitamente posti ad una distanza di quaranta Km l’uno dall’altro. Infine, l’introduzione di satelliti per telecomunicazioni permette al processo comunicativo di coprire distanze enormi. Installazione Tutti i sistemi di cablaggio hanno delle limitazioni in fatto di velocità e distanza. Nella realtà, una rete sarà costituita da un mix di cavi. Il cavo principale che porta i dati all'interno di un'azienda, o di un edificio è chiamato backbone (dorsale). Questo può essere un cavo in fibra ottica o ThickLAN laddove i fattori di velocità e/o distanza sono importanti. Dipartimenti e gruppi di lavoro possono essere cablati con doppino telefonico o cavo coassiale ThinLAN. Per il calcolo dei costi è necessario includere l'installazione fisica oltre al prezzo materiale del cavo. 1. Cavo in fibra ottica e ThickLAN non possono essere piegati in angoli acuti e quindi il

percorso che deve seguire all'interno di un edificio ha delle restrizioni che possono

Page 14: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 14

aumentare il costo. 2. Il costo del personale necessario per eseguire l'installazione varia con il tipo di cavo. Il

doppino telefonico è facile da collegare e non richiede addestramento particolare. L'installazione del cavo a fibra ottica, richiede personale altamente specializzato dotato di apparecchiature costose.

3. Un cavo coassiale ThinLAN utilizza connettori a baionetta che sono difficili da attaccare ai cavi. È in ogni modo possibile acquistare i cavi della lunghezza desiderata già dotati di connettore.

4. Il cavo coassiale ha caratteristiche elettriche speciali e richiede il collegamento di terminatori a ciascun'estremità per pervenire echi sulla linea.

5. Aggiungere una stazione di lavoro su un cavo coassiale ThinLAN non è conveniente perché è necessario interrompere il cavo per installare un connettore a T. In altre parole significa che la LAN non è disponibile durante l'operazione.

6. I terminali del cavo ThickLAN hanno connettori a vite BNC utilizzati come giunzione. Per evitare di tagliare il cavo nel caso di aggiunta di una stazione di lavoro esiste una speciale pinza "vampiro". Essa è dotata di connettori acuminati che forano l'isolamento del cavo ed entrano in contatto con lo schermo e il cavo di rame centrale. Questa pinza è poi installata in una speciale scatola chiamata MAU (Media Attachment Unit) con un cavo che va al computer. È un sistema comodo ma ingombrante e costoso.

7. Le caratteristiche del cavo in fibra ottica di vetro richiedono, il lavoro di specialisti per realizzare le connessioni in modo da mantenere le prestazioni.

Speciali attrezzature sono necessarie per tagliare il cavo ad esattamente 90°, lucidare le estremità delle fibre e poi saldarle insieme. Un’apparecchiatura speciale analizza poi il passaggio degli impulsi luminosi per assicurarsi che il collegamento è buono; in caso contrario, occorre rifare il lavoro. La fibra in vetro è fragile e non può essere piegata per essere sistemata nei normali condotti del cavo in rame. La fibra ottica sintetica è più maneggevole e si presenta in cavi più flessibili di quelli in fibra di vetro e ha connettori più facili da installare. Sommario dei costi Il costo esatto dei differenti sistemi disponibili per il cablaggio di una rete varia da fornitore a fornitore, ma come regola possiamo riferirci alle seguenti considerazioni che possono aiutare la comparazione tra cablaggio in fibra, in cavo schermato e in doppino telefonico. Tipicamente i costi includono, il tempo necessario per fare un collegamento, il costo del cavo, il costo del connettore a parete. Il costo complessivo dell'installazione di una stazione comprende, tra gli altri, questi fattori. Il doppino telefonico non schermato UTP è quello che si collega più rapidamente, il meno costoso in fatto di costo del cavo e dei connettori a parete e offre il costo d’installazione complessivo più basso. Rispetto al doppino telefonico UTP, la realizzazione di un cablaggio in fibre ottiche richiede tipicamente un tempo cinque volte più alto per l'esecuzione di un collegamento, un costo del cavo quattro volte maggiore, costi del connettore a parete venti volte superiori e il doppio costo complessivo per stazione. Il cablaggio in doppino telefonico schermato STP si trova a circa metà strada tra queste due soluzioni, sia in termini di tempo, sia di costo. Un altro elemento importante nella progettazione, nel costo e nell'implementazione del cablaggio è la scelta della topologia, in altre parole del layout logico e fisico della rete. Topologia Ci sono molti modi di posare un cavo. La scelta dipende da alcuni dei fattori precedentemente spiegati e anche dal modo in cui i computer immetteranno i dati su cavo. Un analizzatore di rete, detto sniffer, è uno strumento diagnostico utilizzato per catturare e interpretare i dati grezzi inviati sulla rete e per risolvere eventuali problemi.

Page 15: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 15

Quattro sono le topologie principali: bus, stellare, bus stellare e anello. Topologia bus È uno degli schemi di cablaggio più semplici: affidabilità elevata, espandibilità e flessibilità. I computer si collegano alla rete in topologia bus semplicemente collegandosi al cavo della rete che va da un'estremità all'altra della rete stessa.

Gli svantaggi si trovano in alcune regole elettriche che devono essere rispettate. Ad esempio, c'è un limite alla distanza di collegamento (o drop) tra il cavo del bus e ciascun computer. Inoltre, il cavo del bus principale deve rimanere intatto: se è interrotto per raggiungere un cavo drop o per stendere la lunghezza del cavo si mette temporaneamente fuori uso l'intera rete. Coax Ethernet è un esempio molto noto di standard di rete basato su topologia bus. Protocolli: CSMA, CSMA/CD. Topologia a stella

In una topologia stellare, ciascun computer è collegato via cavo (arm) ad una scatola centrale chiamata "hub" attraverso la quale passano i dati. L'hub all'interno di una rete

Page 16: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 16

stellare può avere livelli diversi d’intelligenza. Un hub intelligente può commutare i dati direttamente alla workstation alla quale è indirizzato, nello stesso modo in cui un centralinista può collegare una chiamata direttamente alla persona cui è destinata, inoltre la gestione è centralizzata ed è uno strumento diagnostico. Esistono anche hub passivi nei quali non avviene nessun tipo di commutazione: un segnale proveniente da un braccio è trasmesso a tutti gli altri bracci della stella. È come un interfono: il computer che riceve deve filtrare il proprio messaggio dai dati che tutti i computer ricevono. Da un punto di vista elettrico, ciò dipende dalla topologia bus anche se il cablaggio è in forma stellare. A volte è per questo chiamato anche bus stellare. Il vantaggio strategico di una topologia stellare è che la maggior parte del servizio di rete, della ricerca guasti e dei cambiamenti di cablaggio hanno luogo nell'hub: sistema di controllo centralizzato. In un ufficio in cui ogni area di lavoro dispone di un cavo di collegamento ad un punto centrale (ad esempio un quadro di collegamento) è facile riconfigurare la rete e la sconnessione semplicemente spostando i cavi intorno all'hub centrale.

Molte imprese stanno oggi utilizzando il cablaggio telefonico per le reti perché gli edifici nei quali si trovano sono già cablati per il servizio telefonico interno e hanno cavi extra che vanno dai quadri di cablaggio alle varie scrivanie. Gli svantaggi della topologia stellare stanno nel fatto che è necessario installare un cavo separato per collegare ciascuna macchina alla rete: eventuali ampliamenti incrementano il numero di linee e possono portare alla saturazione dell’intero sistema. Se succede qualcosa all'hub, ciò ha effetto su ogni stazione collegata all'hub stesso. Protocolli: sincrono (BSC) e asincrono. Topologia ad anello La terza topologia principale è l'anello. In essa, ciascun computer è collegato sia ad una macchina che lo precede (upstream), sia ad una che lo segue (downstream), in un anello chiuso: controllo distribuito. In una rete ad anello i dati girano monodirezionalmente nell'anello, attraverso ciascun computer, fino a che non raggiungono la loro destinazione dove il computer li intercetta o tornano al computer che li ha inviati e si fermano. Un esempio di questa topologia ad anello è il Token Ring IBM. Anche se elettricamente è un vero e proprio anello, dal punto di vista fisico si presenta normalmente cablato come una stella. Ciò significa che l'anello torna ad un punto centrale tra ciascuna workstation. Ciascun computer ha un cavo che corre fino al punto centrale, in un box che IBM chiame unità MAU (Multi-station Access Unit) invece di hub. Questo genere di configurazione è spesso chiamato anello stellare.

Page 17: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 17

Gli svantaggi si trovano nell’ampliamento della configurazione, nell’interruzione di una linea di collegamento e nel malfunzionamento di un nodo. Protocolli: TOKEN PASSING, HDLC. Topologia a doppio anello Le reti a doppio anello sono simili a quelle ad anello, avendo la sostanziale differenza di utilizzare due anelli anziché uno: 1. un anello primario e 2. un anello secondario Una uleriore differenza è l’utilizzo di fibre ottiche (FDDI, Fiber Distributed Data Interface). Nelle normali condizioni i dati fluiscono solo sull’anello primario, utilizzando il secondario solo in caso di guasto del primario. Ogni computer deve ovviamente essere connesso ad entrambi gli anelli, per poter commutare dal primario al secondario in caso di guasto. Generalmete in questo tipo di rete non tutti i computer sono collegati ad entrambi gli anelli. Topologia ad albero Il controllo è di tipo distribuito perché i nodi non sono coinvolti nella trasmissione, quindi necessità di ripetitori. Il sistema è flessibile ed espandibile. Problemi: gli ampliamenti comportano l'utilizzo di ripetitori; il malfunzionamento dei ripetitori può impedire il funzionamento della rete. Protocolli: TOKEN PASSING.

Layout del cavo La figura mostra gli esempi di differenze di cablaggio che esistono tra un sistema bus coassiale e un sistema cablato centralmente come un hub stellare o un anello.

Page 18: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 18

Una rete molto vasta può presentare una combinazione di questi modelli. Possono esserci parecchi hub stellari per ciascun dipartimento o gruppo di lavoro, ciascuno a sua volta collegato ad un cavo coassiale ThickLAN che va da un'estremità all'altra della rete. Abbiamo già detto che questo cavo è spesso chiamato backbone (dorsale) della rete, una buon'analogia con i collegamenti centrali dello scheletro o il percorso del sistema nervoso centrale. TOPOLOGIA BUS STELLA RING ALBERO COMPLESSITÀ medio

bassa bassa bassa medio bassa

FLESSIBILITÀ alta bassa media alta ESPANSIBILITÀ alta bassa media alta SICUREZZA i dati passano

da ogni nodo

Solo dall’hub

in ogni nodo fra rx e tx

in ogni nodo fra rx e tx

AFFIDABILITÀ dipende dal bus dall’hub da tutta la rete da tutta la rete COSTO basso alto medio medio alto

MEZZO TRASMISSIVO DOPPINO COAX

BASE BAND

COAX BROAD BAND

FIBRA OTTICA

LARGHEZZA DI BANDA

bassa medio bassa

alta molto alta

NUMERO NODI basso medio medio basso IMMUNITÀ AL RUMORE

medio basso

medio alto alta molto alta

VERSATILITÀ alta alta alta medio bassa DISTANZA bassa:

100m media alta molto alta:

10Km COSTO basso medio medio alto molto alto

Sommario Il cavo coassiale era lo standard per tutte le reti di computer, ma sta per essere sostituito dal doppino telefonico negli ambienti dell'ufficio perché in questo modo si riescono ad ottenere prestazioni adeguate per le reti di PC a costo più basso. Il cavo in fibra ottica è utilizzato laddove sono necessarie maggiore capacità di dati, distanze più elevate e maggiore sicurezza. Esso è installato per rispondere ad esigenze attuali o come parte dei piani per il futuro. Le principali topologie di collegamento in rete di PC sono oggi l'anello e il bus. In entrambi i casi, l'implementazione di queste topologie con doppino telefonico implica un layout di tipo stellare in aggiunta alla topologia, anello di bus, di base. Ciò consente di estendere più facilmente la LAN e il servizio. Le singole LAN sono poi collegate insieme e con altri computer dell'azienda per mezzo di un cavo centrale in rame o in fibra ottica chiamato backbone.

Page 19: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 19

INTERFACCE DI RETE Introduzione Finora abbiamo parlato di cavi e layout. Ora, è arrivato il momento di esaminare come essi si collegano al computer. Le soluzioni disponibili sono numerose e tengono conto dei diversi tipi di cavo, della topologia prescelta e delle prestazioni richieste dagli utenti. Gli elementi principali di collegamento di un computer ad un cavo sono tre, come illustrato nella figura che mostra il collegamento di un computer ad un cavo ThickLAN: il transceiver, la scheda d’interfaccia di rete ed il collegamento tra questi due.

TRANSCEIVER I transceiver, o ricetrasmettitori, trasmettono e ricevono dati al/dal cavo della rete. Essi sono anche noti come unità di accessi al mezzo MAU, ma dato che IBM ha dato al termine MAU, come abbiamo visto prima, un significato diverso, useremo il termine transceiver per evitare confusione. Transceiver differenti sono necessari per ciascun tipo di cavo (doppino, coassiale e fibra ottica). Ciò è dovuto al fatto che il segnale elettrico che essi ricevono o generano non è lo stesso per il cavo coassiale o per il doppino. Anche i connettori sono differenti. Cavo AUI Il cavo che collega il transceiver alla scheda d’interfaccia di rete che si trova nel computer è anche noto come cavo AUI (Access Unit Interface). Esso dispone di un connettore elettrico standard che permette il collegamento di una varietà di schede d’interfaccia ad una varietà di transceiver. Quello di cui si occupano transceiver e AUI è la trasmissione e ricezione del segnale sul cavo. Essi possono essere paragonati al livello fisico uno del modello OSI come indicato nella figura precedente. SCHEDE D’INTERFACCIA DI RETE Le schede d’interfaccia di rete NIC (Network Interface Card), s’inseriscono nel PC come qualunque altra scheda accessoria e diventano il collegamento fisico e logico del computer alla LAN, esattamente come un'altra scheda può diventare il collegamento del

Page 20: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 20

PC con una stampante o un video. Il loro compito principale è di prendere i dati dal software che gira sul PC e trasformarli in pacchetti logici che possono essere trasmessi sul particolare tipo di rete che è utilizzata. Naturalmente, anche la procedura opposta fa parte del loro compito. Essi devono vedere se i dati che si trovano sulla LAN sono indirizzati a loro e, in questo caso, li devono passare al software del PC in una forma che possa essere letta. Queste funzioni possono essere paragonate al livello collegamento dati due nel modello OSI. Protocollo di trasmissione Un dispositivo NIC è progettato per funzionare con un solo tipo di protocollo di trasmissione. Di conseguenza, la scelta del tipo di dispositivo NIC da acquistare è implicita nella scelta del tipo di rete, ad esempio Token Ring o Ethernet. Connettori esterni La maggior parte dei dispositivi NIC hanno più di un connettore esterno. Uno è di solito il connettore universale AUI che consente i collegamenti con un'ampia gamma d’installazioni e tipologie di cavo. Oggi la maggior parte dei produttori di dispositivi NIC incorpora un transceiver nella scheda stessa in modo da permettere al cavo LAN di collegarsi direttamente nel PC. Ciò significa risparmi per il cliente, in transceiver esterni e cavi AUI. I connettori generalmente impiegati sono i connettori a T coassiali in LAN, i jack per doppino simili a quegli utilizzati nei telefoni e gli zoccoli speciali utilizzati per le fibre ottiche sintetiche. I transceiver non sono disponibili per ThickLAN o fibre ottiche in vetro a causa delle difficoltà di portare il cavo al computer. Se questi cavi, da un lato, assicurano elevate prestazioni, dall'altro non sono molto flessibili e sono di solito riservati al backbone della LAN. Quale NIC comprare? I NIC hanno parecchie caratteristiche principali che è necessario valutare: topologia di rete e protocollo di trasmissione, connettori esterni, connettori interni e funzionalità. Dei primi due ci siamo già occupati e per valutare il terzo ed il quarto abbiamo bisogno di rispondere alle seguenti domande. 1. La scheda è in grado di gestire il flusso di dati con la LAN ad una velocità sufficiente? 2. Il bus dati interno del PC è in grado di gestire quel flusso di dati? 3. Il resto del computer è in grado di cooperare con quel flusso di dati? CONNETTORE DEL BUS La terza scelta dipende dal connettore di bus della scheda d'interfaccia, quello che in altre parole s'inserisce nel bus del PC. I PC in architettura ISA permettono di scegliere due strutture del bus interno, ad otto e a sedici bit. Nei PC in architettura EISA o MCA, è disponibile un bus a trentadue bit. Dal punto di vista dell'utente è importante rilevare che più grande è il bus, più veloce è il trasferimento dati. La scelta influenzerà la portata del flusso di dati tra PC e LAN. Anche se in questo periodo la maggior parte degli utenti non ha bisogno di alte prestazioni oltre a quelle fornite dalle schede ad otto bit, le schede a sedici bit possono essere la scelta migliore alla luce degli sviluppi futuri. Normalmente, una scheda a trentadue bit ha senso solo laddove c'è un'enorme quantità di traffico di dati. Questa situazione si può verificare su un sistema che offre servizi a tutti gli altri utenti di una rete. Un esempio potrebbe essere quello di un file server nel quale i dati d’input ed output includono tutto il traffico di dati sulla rete. POTENZA DEL NIC Il quarto criterio di scelta è legato alla potenza ed alla funzionalità della scheda stessa,

Page 21: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 21

solitamente collegata alla potenza del PC. La potenza della scheda NIC può essere aumentata con l'aggiunta di un processore dedicato alla scheda per l'assemblaggio ed il disassemblaggio dei pacchetti di dati inviati/ricevuti da/alla rete. Ciò può aumentare la disponibilità del PC per il normale lavoro, ma se il processore sulla scheda NIC è più lento di quello del PC, la scheda NIC può funzionare in pratica ad una velocità inferiore a quella di una scheda non intelligente. Un'altra opzione è quella di aggiungere memoria alla scheda in modo che possa servire come buffer tra il cavo LAN ed il PC. Questa cache memory da sedici o sessantaquattro Kbyte può aiutare ad assorbire il traffico sulla LAN nell'attesa che il PC processi i dati. Entrambe le architetture EISA e MCA consentono l'impiego d'interfacce bus-master. Un bus-master è un'entità (microprocessore o periferica) che controlla dove e come le informazioni sono trasferite sul bus di un computer. Quest'approccio potrebbe essere utilizzato per impostare priorità su un server; ad esempio, la gestione dei dati di rete potrebbe essere più importante dell'attività del proprio disco. SOMMARIO Le aziende hanno bisogno di prendere decisioni strategiche sulla base delle esigenze della propria specifica attività e dell'information technology adottato. Ciò comprende la scelta di topologia bus o stellare del tipo di cavo. La topologia delle schede d’interfaccia e dei connettori è una conseguenza. Una volta scelta la topologia, la scelta delle schede NIC deve conciliare le esigenze prestazionali del computer, della LAN e delle applicazioni. Non ha senso mettere una scheda molto potente in un PC lento e viceversa. Ecco alcune combinazioni NIC/PC: 1. scheda ad otto bit su un PC 286 o su un PC 386 entry level; 2. scheda a sedici bit su un PC 386/486 utilizzato come server di rete; 3. scheda a trentadue bit su un PC 486 impiegato come server “heavy duty”.

Page 22: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 22

LIVELLO COLLEGAMENTO DATI Introduzione In questo capitolo parleremo delle differenze tra protocolli Token Passing e Multiple Access, i cui esempi applicativi più conosciuti sono Token Ring di IBM ed Ethernet, e quello che si basa sulla ricerca sviluppata in Xerox. In questo capitolo ci occuperemo anche dell'interfaccia FDDI (Fibre Distributed Data Interfaces). I termini di cui vi stiamo parlando sono utilizzati per indicare i metodi di accesso ai mezzi e sono definiti nel livello due del modello OSI: quello di collegamento dati. Essi descrivono in che modo i dati sono “impacchettati” prima di essere immessi nella LAN. PILE DI PROTOCOLLI PER LAN E LORO RELAZIONI CON IL MODELLO OSI

Novell NetWare Internet IBM Trasporto SPX TCP NetBEUI Rete IPX IP Collegamento dati

LLL MAC

LLC MAC

DLC MAC

LLL MAC

Fisico Hardware di rete IPX/SPX (Internetwork Packet eXchange/Sequenced Packed eXchange). TCP/IP (Transmission Control Protocol/Internet Protocol). NetBEUI (NetBios Extended User Interface). LLC (Logical Link Control): comune a tutti i metodi di accesso al mezzo, gestisce il flusso di comunicazioni da nodo a nodo, genera le risposte e si occupa della gestione e del recupero degli errori. MAC (Media Access Control) gestisce il metodo di accesso, è specifico della topologia e del mezzo fisico; ciò è dovuto al fatto che le modalità di definizione dei pacchetti sono diverse per i tipi di protocollo. L'indirizzo MAC è un numero esclusivo memorizzato in ciascun'interfaccia di rete; esso consente le comunicazioni organizzate all'interno di una LAN ed è anche utilizzato come parte dello schema d’indirizzamento di una rete aziendale globale. DLC (Data Link Control) è un LLC più potente, per esempio recupera gli errori. I sotto livelli LLC (DLC) e MAC formano l’interfaccia NDIS (Network Driver Interface Specification), è uno standard di basso livello del driver della scheda di rete. FRAME E PACCHETTI Una volta definito il cablaggio della rete, i transceiver creano e leggono gli impulsi elettrici (od ottici) che in esso viaggiano. Questo livello fisico non è interessato dalla natura dei dati stessi. Dato che le reti hanno utenti e dispositivi multipli, i dati che circolano su una qualsiasi rete, ma anche su una qualsiasi comunicazione digitale, possiedono un formato generale ormai universalmente condiviso che consiste di tre parti fondamentali: 1. una Intestazione (Header o Preamble) 2. un gruppo di Dati (Data) 3. una Coda (Tail)

Pacchetto generico

Preambolo Start Indirizzo Mittente

Indirizzo Destinatario

DATI FCS

Header Informazioni Tail

Page 23: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 23

Non sempre queste componenti sono presenti nel formato e a volte ne sono presenti altre. In ogni caso un formato d’informazioni di questo tipo è detto Pacchetto. Il termine alternativo frame o trama a volte è sinonimo, ma più spesso è riferito ad un particolare pacchetto, oggetto di una particolare classe di protocolli, quelli di livello 2 (Collegamento). L’intestazione contiene in genere informazioni di sincronizzazione per il ricevente, informazioni per l’instradamento del pacchetto, informazioni per la decodifica della parte successiva (Dati). I Dati rappresentano l’oggetto della comunicazione e sono le informazioni propriamente dette. La Coda invece contiene quasi sempre informazioni per poter valutare l’integrità e la validità dell’intero Pacchetto. Un pacchetto frame è l'unità di misura fondamentale dei dati che sono trasmessi in una rete. I pacchetti sono di solito creati dalla scheda d'interfaccia di rete, che spiega perché un dispositivo NIC è acquistato, come Token Ring o Ethernet. È la scheda d'interfaccia di rete a suddividere i dati in pacchetti per la trasmissione e ad estrarre i dati dei pacchetti ricevuti prima d’inviarli ad un software di livello superiore per la fase successiva di trattamento. Il pacchetto include un codice di controllo di errore per permettere alla stazione precedente di verificare che i dati non si sono corrotti durante la trasmissione. Se i dati sono stati in qualche modo corrotti, è richiesta una ritrasmissione. La IEEE (delegata da ISO) studia le problematiche delle LAN/MAN tramite il documento 802. La Struttura fondamentale del documento IEEE802 è riportata in figura.

La raccomandazione IEEE802 si occupa dei due livelli OSI 1 e 2; il livello 1 è trattato dai documenti 802.3-.6 e FDDI, che si estendono per metà nell’L2 (MAC); la rimanente metà di L2 è trattata da 802.2 (LLC). Ogni standard 802.3-.6 quindi possiederà un livello fisico L1 e un MAC proprio. Ogni MAC rappresenta una diversa tecnologia trasmissiva. Lo strato LLC serve per unificare le tecnologie trasmissive differenziali dei MAC sottostanti e presentarsi a L3 (Network) tutte unificate, cosicché un qualsiasi livello 3 può richiedere servizi ad una qualsiasi LAN sfruttando le primitive dell’LLC. IEEE802.3 (CSMA/CD, Carrier Sense Multiple Access whit Collision Detecting) Topologia bus. Cablaggio a stella o bus. Arbitraggio tramite contesa (collisioni). Tipologia protocollo non deterministico ma statistico. Velocità Trasmissiva: 10 Mbps. Throughput max: 4 Mbps. Basso costo, prestazioni alte con carico basso e basse a carico alto. IEEE802.4 (Token Bus) Topologia bus. Cablaggio bus. Arbitraggio a token. Deterministico. 10 Mbps.

Page 24: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 24

Throughput max: 8 Mbps. Utilizzata in ambienti industriali. IEEE802.5 (Token Ring) Topologia anello Cablaggio stella o doppio anello. Arbitraggio: token. Deterministico. Velocità 4-16 Mbps. Throughput max 2-8 Mbps. Evoluzione di TR di IBM, prestazioni buone su carico alto e medie su carico basso. IEEE802.6 (DQDB, Distribuited Queue Dual Bus) Topologia: doppio bus. Cablaggio: doppio bus (non fault tolerance) o doppio anello (fault tolerance) su fibra ottica. Arbitraggio: prenotazione. Protocollo: deterministico. Velocità: fino a 155 Mbps. Throughput: 2-30 Mbps. Standard per MAN approvato anche da CCITT. ISO 9314 (FDDI, Fiber Distribuited Data Interface) Topologia: anello. Cablaggio: doppio anello o stella. Arbitraggio: token. Protocollo: deterministico. Velocità: 100 Mbps. Throughput: 80 Mbps. Su fibra ottica. CSMA/CD (802.3) Il metodo di accesso (insieme di regole utilizzate per arbitrare l’utilizzo del cavo di rete) ai mezzi associato con Ethernet è conosciuto come CSMA/CD: 1. Carrier Sense (CS), dispositivo che ascolta per “scoprire” se c'è del traffico dati su una

LAN prima di inviare i dati; se la LAN è libera, allora i dati sono immessi sul cavo. 2. Multiple Access (MA) significa che qualunque stazione può inviare dati quando non ci

sono altri dati sul cavo, senza bisogno di aspettare “il proprio turno”. In ogni caso, se due stazioni hanno dei dati pronti per essere inviati contemporaneamente ed entrambe smettono insieme, il risultato è una “collisione” ed un segnale incomprensibile.

3. Collision Detection (CD) che significa il rilevamento di una collisione da entrambe le stazioni; ciascuna stazione cessa immediatamente d’inviare ed inizializza un contatore; dopo un periodo di tempo casuale, la stazione prova di nuovo; il contatore che ha terminato per primo invia i dati; quando l’altro contatore ha finito sentirà i dati sulla linea come in CS ed aspetta che l’altro abbia finito di trasmettere prima di provare di nuovo.

Il metodo CSMA/CD è utilizzato sia dalle reti Ethernet, sia da quelle costruite in base allo standard 802.3. Lo standard Ethernet è leggermente diverso dallo standard 802.3 che comprende alcune informazioni d’indirizzamento addizionali. In ogni caso, 802.3 ed Ethernet possono coesistere sullo stesso mezzo e la maggior parte delle persone parla di Ethernet anche quando intende 802.3. Progettato al PARC (Palo Alto Research Center nel 1973) dalla Xerox. Fast Ethernet 100Mbps. Formato del frame: Source Address: primo byte primo bit : 0 indirizzo individuale; 1 indirizzo di gruppo; FF indirizzo broadcast (a tutti).

Page 25: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 25

Un nodo Ethernet ha un indirizzo unico al mondo, per esempio: Olivetti primo byte 02; secondo byte 3C; terzo byte AA; quarto byte N. progetto; quinto e sesto progressivo di produzione.

7 PREAMBOLO SINCRONIZZAZIONE 1 SFD START FRAME DELIMITER termina con 11 6 DA 2^47 INDIRIZZI 6 SA SOURCE ADDRESS 2 LENGTH L LLC DATA MIN=64 (L=3, X=35); MAX=1518 (L=1492, X=0) x PAD 4 CRC

CSMA A e B controllano se il canale è libero allo stesso istante, quindi trasmettono e provocano una collisione.

CSMA/CD non persistente A e B controllano se il canale è libero allo stesso istante, quindi trasmettono e provocano una collisione; A e B rilevano la collisione e sospendono la trasmissione, la riprendono dopo un multiplo del tempo base generato in modo random.

CSMA/CD 1 persistente A controlla se il canale è libero e quindi trasmette; B controlla il canale, è occupato allora ascolta il canale fino a quando lo sente libero. Il non persistente sfrutta di meno le potenzialità del canale, in quanto esiste un tempo indeterminato nel quale non trasmette.

Page 26: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 26

CSMA/CA (Collision Avoidance) A, B e C devono trasmettere, è assegnato il turno ad A, ma non deve trasmettere niente; B e C si contendono il canale, C trasmette.

Le più diffuse realizzazioni fisiche di 802.3 possono riassumersi nelle seguenti tipologie. 10base5, cavo coassiale, 500 m (topologia bus) Cavo giallo, thick, grosso, transceiver a Vampiro, cavo transceiver (Drop o AUI), 50 Ohm, terminatori con resistenza da 50 Ohm. Distanza minima transceiver: 2.5 m. N. max transceiver (stazioni): 100. Lunghezza max cavo transceiver: 50 m. Costo cavo < 10000 /m. Costo transceiver < 500.000. Costo transceiver cable < 20.00 /m. Minima velocità di propagazione: 77% velocità luce. 10base2, cavo coassiale, 185 m (topologia bus) Cavo RG58, thin, transceiver incorporato alla scheda o esterno, può mancare il transceiver cable, 50 Ohm, terminatori con resistenza da 50 Ohm. Connettori BNC (baionetta) ottenute con crimpatura; forme a T (T-connector). Distanza minima transceiver: 0.5 m. N. max stazioni: 30. Lunghezza max cavo transceiver (se presente): 50 m. Costo cavo < 1000 /m. Minima velocità di propagazione: 65% velocità luce. 10baseT (Twisted pair, doppino ritorto), cavo doppino 4 con coppie di doppini, 100 m (punto-punto) Standard 802.3 su UTP (Unshielded Twisted Pair). Connessioni semplici RJ45 tipo Jack a 8 contatti tipo telefonico (usati solo 4): 1TxD+; 2TxD-; 3RxD+; 4-; 5-; 6RxD-; 7-; 8- Le altre due coppie sono utilizzabili per altri scopi. Serve un CrossOver (collegare 1e2 su 3e2) sul concentratore (centrostella). Il 10baseT richiede connessioni a stella perché realizza connessioni punto-punto; le collisioni non avvengono più sui cavi ma sui centrostella. Servono due doppini per centrostella e stazione e due doppini per stazione e centrostella.

Page 27: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 27

È stato concepito per adattare 802.3 a cablaggi strutturati standard EIA/TIA 568 (Standard cablaggio edifici). Lunghezza massima consigliata EIA/TIA 100 m. Cavo UTP (UnTwisted Pair) 100 ohm +/-15 da 1 a 16 MHz. Doppini 24 AWG. Minima velocità di propagazione: 60% velocità luce. Costo: < 500 lire/m. Classe cavo di tipo 3 (ampiamente rispettato dai cavi convenzionali). Comunicazioni MAU-Centrostella (DTE-cavo-MAU-doppino TP-Centrostella) Dato che le collisioni non nascono sul cavo ma sul centrostella, vediamo che segnali sono gestiti. Trasmissione: il MAU trasferisce il segnale dal DTE al TP (doppino) verso il centrostella. Se non vi è nulla allora manda il segnale di TP_IDLE (serve per mantenere il silenzio segnalato (IDLE) sulla connessione, quindi o c’è un pacchetto in transito o c’è un TP_IDLE). Ricezione: il MAU trasferisce i dati dal TP al DTE. Loopback: il MAU rinvia al DTE una copia dei dati trasmessi quando sta trasmettendo ma non sta ricevendo (non ci sono collisioni). Serve per verificare il tratto DTE-MAU. SQE Test (HeartBeat): implementato secondo standard 802.3. Rilevazioni collisioni: il MAU se ne accorge quando riceve contemporaneamente dati dalla coppia Rx del doppino e dal DTE, è una rilevazione logica e non elettrica. Jabber: il MAU interrompe le trasmissioni quando eccedono la lunghezza massima consentita (>1518 byte del pacchetto). LIT (Link Integrity Test): se il MAU non riceve dal doppino TP né dati né TP_IDLE, entra in uno stato di Link Test Fail. In questo caso può verificare solo la connessione TP di ricezione. FOIRL (Fiber Optic Inter Repeater Link), fibra ottica multimodale, 1000 m, (punto punto) È una versione del 10base5 su base ottica e nasce come puro ripetitore di segnale (in genere tra due stazioni di due reti Ethernet 10base5) ed è implementato con un trasduttore elettrico-ottico da un capo ed ottico-elettrico dall’altro. Realizza connessioni punto-punto e quindi può essere usato al posto del 10baseT. Alta banda passante, bassa attenuazione e bassa sensibilità ai disturbi. 10baseFB, fibra ottica, 2000 m Compatibile con il FOIRL e aggiunge la funzione di Jabber oltre che a una ancora più bassa attenuazione (2 Km). Più sofisticata e mantiene una sincronizzazione permanente tra trasmettitore e ricevitore. Introduce il RFL (Remote Low Light) e il RF (Remote Fault) che aggiungono proprietà di Fault Tolerance alla rete (ogni MAU riconosce lo stato di errore su entrambe le linee Tx e Rx). A e B. Se guasto per ricezione di A, A se ne accorge (non riceve più e va in Link Test Fail) ma B non se ne accorge. Con 10baseFB invece A trasmette un ulteriore segnale di Remote Fault a B il quale può commutare la comunicazione su un’altro canale (se ce l’ha). Se il segnale in ricezione è troppo basso, analogamente il segnale di controllo sarà un Remote Low Light e B come prima può commutare la linea. La sincronizzazione permanente tra Rx e Tx serve inoltre per organizzare meglio i ripetitori. TOKEN PASSING RING (802.5) In un sistema Token Passing, la stazione di lavoro che intende inviare dati deve aspettare fino a quando non si verifica la condizione che l'autorizza a farla (token o “gettone”). Ciò significa che in un dato momento solo una stazione può inviare dati e con la conseguenza che un'altra stazione di lavoro deve aspettare il proprio turno per inviare i dati. Il Token è un tipo speciale di pacchetto dati che può essere originato soltanto da una stazione di lavoro nell'anello e che è pertanto designata con il termine di monitor attivo. Qualunque stazione collegata nella rete può essere il monitor attivo, ma può esserci un

Page 28: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 28

unico monitor attivo alla volta, mentre tutte le altre assumono, il ruolo di monitor standby. Se un monitor attivo ha qualche problema, dopo una breve attesa, interviene un monitor standby. La stazione di lavoro che funge da monitor attivo inizializza l'anello inviando un Token libero alla prossima stazione dell'anello; a sua volta, a meno che non abbia dati da trasmettere, questa stazione passa il Token alla stazione di lavoro successiva. Se la stazione di lavoro che possiede il Token libero intende inviare dati, essa cambia il Token libero in un frame che è poi trasmesso, completo di dati e d’indirizzo. Il frame viaggia lungo l'anello passando da una stazione all'altra. La stazione ricevente legge i dati ed imposta un bit nel frame per indicare la ricezione. Il frame continua poi il suo giro nell'anello fino a che non ritorna all'originatore che controlla il corretto ricevimento comparando i dati con quelli che ha inviato e prendendo nota del bit di “ricevimento”. Il frame è quindi rimosso dall'anello. Se non ci sono altri dati da inviare, la stazione invia un Token libero che può essere utilizzato da un’altra stazione. In un Token Ring, ogni stazione di lavoro può monopolizzare la rete ottenendo il Token libero e cambiandolo in un frame. In ogni caso, una stazione di lavoro nell'attesa di un Token libero può aggiungere ad un frame di passaggio l'informazione che dice che ha bisogno del Token libero. Progettato da IBM nel 1984: distanza tra due stazioni: 300 m, 260 numero massimo. Formato del frame:

1 SD START DELIMITER: FRAME/TOKEN 1 AC ACCESS CONTROL 1 ED ENDING DELIMITER: FRAME/TOKEN

AC= pppTMrrr dove p (priorità del token), T=1 (token) T=0 (frame), M (monitor=server), r (riservati)

1 SD 1 AC 1 FC FRAME CONTROL 6 DA 6 SA L LLC DATA 4096 BYTE 4 CRC 1 ED 1 FS FRAME STATUS

FC= ffzzzzzzz dove ff=00 (MAC) ff=01 (LLC), zzzzzz (bit di controllo) DA/SA= primo bit: =0 indirizzo unico, =1 indirizzo di gruppo, tutti bit a 1 indirizzo broadcast. TOKEN PASSING BUS (802.4) La differenza tecnica principale tra Token Ring e Token Bus è che in uno schema Token Bus ciascun dispositivo può rivolgersi direttamente agli altri. I dispositivi non devono funzionare come ripetitori dei messaggi destinati ad altri dispositivi. Il protocollo MAP (Manifacturing Access Protocol) è un'implementazione di questo standard utilizzata nell'industria per il controllo di macchine utensili. ARCNET, sviluppata da Standard Microsystems, è una soluzione economica molto diffusa che utilizza il metodo Token Bus anche se non è conforme allo standard Token Bus IEEE 802.4. ARCNET utilizza il cablaggio ThinLAN anziché il costoso doppino schermato richiesto dall'implementazione Token Ring IBM. ARCNET, che ha avuto

Page 29: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 29

successo negli ambienti dell'ufficio di piccole dimensioni, funziona ad una velocità più bassa (2.5 Mbps) rispetto a quella di Token Ring o CSMA/CD. QUALE SCEGLIERE? In questo periodo la maggior parte delle installazioni LAN negli uffici sono Ethernet 802.3 o IBM Token Ring. Le differenze tra Token Ring e Ethernet sono fondamentali. 1. Ethernet si basa sulla casualità e raggiunge buone prestazioni grazie al principio che

il cavo LAN trasmette ad una velocità tale che una congestione si verifica raramente. Si tratta di un sistema con un overhead relativamente basso, e può essere implementato con facilità ed in modo economico.

2. Il sistema Token Ring è progettato in modo da evitare completamente le collisioni di dati, ma per tenere in movimento il token sono necessari funzioni che richiedono l'implementazione di qualche tipo d’intelligenza (hardware o software). Sulle reti più grandi, i progettisti possono in ogni modo predire le prestazioni del Token Ring più facilmente di quelle di Ethernet. Token Ring è in ogni modo più complesso da implementare di Ethernet ed è quindi uno schema hardware di rete più costoso. IBM ha fissato diverse specifiche Token Ring, comprese velocità di quattro o sedici Mbps.

Il protocollo CSMA/CD è criticato dai sostenitori di Token Ring che indicano nelle collisioni una debolezza di CSMA/CD capace di portare all'inefficienza di una rete con traffico intenso quando le collisioni dei messaggi sono molte e si può verificare un ingorgo di traffico. In ogni caso, in pratica, CSMA/CD funziona in modo piuttosto efficiente; se una rete CSMA/CD è saturata dal traffico, può essere suddivisa in sottoreti più piccole per mezzo di bridge. CSMA/CD è il metro di accesso ai media più frequentemente implementato ed è utilizzato in oltre il 50% di tutte le LAN; inoltre, rispetto agli altri metodi di accesso, è supportato dal più alto numero di fornitori. I prodotti basati sul protocollo 802.3 utilizzano tutti e tre i tipi di cavi in rame. Per descrivere le reti CSMA/CD sono stati sviluppati standard addizionali che comprendono: 1. Coassiale 10BASE5, descrive il cavo ThickLAN utilizzato dalla tecnica CSMA/CD; il

numero “10” si riferisce alla velocità di rete supportata, in questo caso 10 Mbps; “BASE” sta per rete baseband; il “5” è un'approssimazione della lunghezza massima di cavo supportata dal metodo CSMA/CD, espressa in centinaia di metri (in questo caso, 500 metri).

2. Coassiale 10BASE2, descrive il cavo ThinLAN utilizzato dal metodo CSMA/CD; ThinLAN supporta CSMA/CD a 10 Mbps con una lunghezza massima del segmento di cavo coassiale di circa 200 metri.

3. Doppino telefonico 10BASET, descrive il doppino telefonico e CSMA/CD; lo standard 10BASET, adottato da IEEE nel 1990, supporta 10 Mbps utilizzando cablaggio in doppino telefonico non schermato; la distanza di un dispositivo dall'hub può arrivare a 100 metri.

4. Fibra ottica 10BASEF Le specifiche di cavo Token Ring sono chiamate tipo uno e tipo tre da IBM. Tipo uno è un doppino schermato (STP) che ammette una distanza di 390 metri tra nodi per velocità di quattro Mbyte e di 175 metri per velocità di sedici Mbyte. Sull'anello è ammesso un totale di 256 nodi. Il tipo tre è un doppino telefonico non schermato (UTP) che ammette distanze di 120 metri tra i nodi alla velocità più bassa e di 80 metri a quella più alta. Sull'anello è ammesso un totale di 72 nodi. Perché Ethernet non è idonea al traffico multimediale Il sistema CSMA/CD tende a garantire a ciascuna stazione la facoltà di trasmettere, evitando in una certa misura le collisioni accidentali, ma d'altro canto non garantisce che ciascuna macchina abbia effettivamente l'opportunità di farsi sentire. Una volta che si è preso il controllo della rete lo si può conservare anche per un periodo relativamente lungo, senza dare agli altri la possibilità di fruirne. Al contempo nessuno ci garantisce di

Page 30: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 30

poter continuare a trasmettere indisturbati senza che qualcuno cerchi d'intrufolarsi, interrompendoci. Il tutto è lasciato al caso e per questo motivo si dice che Ethernet usa un sistema di accesso di tipo probabilistico. Esiste una certa probabilità che ciascuna macchina riesca a trasmettere, ma questa probabilità è inversamente proporzionale all'affollamento della rete e al suo volume di traffico. Inoltre, trattandosi di una probabilità, la si può quantificare, ma non vi si può fare affidamento. Le reti Token Ring, invece, impiegano un sistema deterministico grazie al quale stabiliscono il periodo massimo per il quale ciascuna stazione può tenere la linea e definiscono anche con quale ritardo potrà riprenderla dopo averla ceduta. Consentono anche di regolare in una certa misura le priorità del traffico consentendo la prosecuzione di quelle trasmissioni che non possono essere interrotte, come l'invio della voce e delle immagini video in movimento. Ne risulta chiaramente che Token Ring è a tutti gli effetti una rete multimediale, mentre Ethernet non lo potrà mai essere, qualunque siano le operazioni di "lifting" che i vari fornitori propongono. L'unica soluzione possibile per aumentare le probabilità che il traffico multimediale fluisca correttamente su una rete Ethernet consiste nel tenere la rete libera il più possibile, conferendo a ciascuna stazione di lavoro il massimo della velocità trasmissiva. Anche in questo scenario, tuttavia, stiamo ancora parlando di probabilità visto che nessuno garantisce che il flusso multimediale non si blocchi in qualche punto del percorso e che non debba essere momentaneamente interrotto. Ethernet è perfettamente idonea per recapitare qualsiasi genere d'informazione in formato digitale, ma non sempre lo fa nei tempi che a noi sono necessari. Facciamo un esempio chiarificatore: una stazione deve trasmettere un file di grandi dimensioni a un server. La trasmissione incomincia e una parte del file riesce a passare prima che si verifichi una collisione oppure prima che la stazione mittente faccia una breve pausa, magari per prelevare le informazioni dal proprio disco rigido. In quel momento un'altra workstation s'intrufola e prende temporaneamente controllo della rete. Passano alcune frazioni di secondo e la rete torna nuovamente libera, perciò la nostra stazione riprende a trasmettere e spedisce un altro pezzetto di file ma è nuovamente interrotta. Dopo un'altra breve pausa, riprende e continua in questo modo fino a completare l'invio. Il server, durante tutto questo tempo, rimane in attesa dei dati e mantiene traccia dei vari pezzi che arrivano. Il risultato finale è che il file ci mette un po' più tempo per essere trasferito, ma arriva correttamente a destinazione e tutto va bene. Se invece sulla rete sta viaggiando una conversazione telefonica, la nostra stazione spedisce una parte di frase, ma s'interrompe a metà perché si verifica una collisione e deve attendere che la linea ritorni libera. Dopo un breve intervallo riprende e completa l'invio di un altro spezzone di frase e via di questo passo. Immaginate l'impressione che ne riceve l'ascoltatore all'altro estremo: l'informazione che arriva, pur essendo ancora fedele nei contenuti, non è più fedele nella forma e perciò risulta alterata e scarsamente comprensibile. L'effetto diventa ancora più marcato quando si trasmettono le immagini di un filmato, visto che la mole d'informazioni in transito è molto maggiore e le possibilità di collisione e d'interruzione aumentano proporzionalmente. Alcuni fornitori hanno realizzato speciali sistemi per assegnare maggiore priorità al traffico multimediale rispetto al traffico dati. Nel gergo informatico si chiamano "implementazioni proprietarie", in pratica sono tecnologie che hanno un solo padrone e perciò esulano dallo standard concordato. Chi acquista questo genere di apparecchiature si vincola ad un solo fornitore, sottostando al prezzo stabilito da quest'ultimo (visto che c'è concorrenza), e si affida alla costanza di quest'ultimo nel fornire tali prodotti anche in futuro. Si tratta in sostanza di soluzioni sgradite ai gestori di rete che non vogliono legarsi vita natural durante a una particolare marca e che sono disposti ad adottarle come soluzioni tattiche per risolvere le esigenze immediate di piccoli gruppi di lavoro solo a condizione che l'investimento sia modesto. Esiste una proposta di standard comune per realizzare una versione di Ethernet che sia anche in grado di trasferire traffico multimediale. Prende il nome di Ethernet Isocrona (IsoENET o IsoEthernet), dove isocrono significa "che avviene nello stesso tempo" e si riferisce al

Page 31: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 31

fatto che il traffico multimediale è ricevuto nello stesso momento in cui è trasmesso, in pratica senza ritardi. Ciò è possibile aggiungendo al canale da 10 Mbps standard un secondo canale da 6 Mbps dedicato a questo genere di traffico, pur continuando ad usare il doppino come sistema di trasmissione. IsoENET è anche una tecnologia approvata dall'IEEE con lo standard 802.9a, ma non è mai davvero decollata proprio in virtù dell'estrema ritrosia a cambiare che caratterizza gli utenti di Ethernet e che ha favorito il grande successo di Fast Ethernet. Inoltre esistono sistemi più economici per garantire un adeguato traffico multimediale, ad esempio: Token Ring se il traffico è d'intensità modesta, FDDI (Fiber Distributed Data Interface) se il collo di bottiglia è sulla dorsale, ATM (Asynchronous Transfer Mode) se il traffico è intenso oppure se l'impianto è nuovo, 100VG-AnyLAN se il traffico è intenso e non si vuole entrare nella complessità del mondo ATM. Ethernet rimane, perciò, un'ottima LAN per il traffico dati e può anche trasportare traffico multimediale in determinate condizioni, ma non meravigliatevi se i risultati non sono sempre soddisfacenti. INTERFACCIA FDDI (FIBRE DISTRIBUTED DATA INTERFACE) La capacità di cavo in fibra ottica di trasferire dati a grandi velocità su lunghe distanze ha evidentemente dei vantaggi nelle grandi installazioni o nelle città. Lo standard proposto per la gestione dell'accesso alle fibre ottiche è chiamato FDDI. Esso specifica una velocità di 100 Mbps in un doppio loop con una circonferenza di 100 Km, e 500 stazioni. Sono possibili i collegamenti separati da una distanza massima di 2 Km. FDDI utilizza una tecnica simile al Token Ring temporizzato (Timed Token Ring). Ciò permette al Token di portare messaggi da più di una stazione alla volta, un particolare che aumenta l'efficienza del sistema. INSTALLAZIONE DELL'HARDWARE DI RETE Secondo il tipo di scheda di rete di cui si dispone, è possibile configurarla prima o dopo averla installata sul computer. Configurazione prima dell'installazione Per alcune schede è necessario spostare i ponticelli o impostare i microinterruttori della scheda manualmente prima di inserire la scheda nel computer. Per modificare l'impostazione di un ponticello, rimuovere il rivestimento di plastica che ricopre i pin del blocco dei ponticelli, quindi porlo sui pin appropriati. Per reimpostare i microinterruttori sulla scheda spostarli su una delle due possibili posizioni: on/off. Ciascun tipo di scheda di rete richiede impostazioni particolari: 1. Livello d'interrupt (IRQ): IRQ5, IRQ10, IRQ11, IRQ15. 2. Porta di I/O di base: 380..38FH. 3. Indirizzo di memoria di base: specifica l'indirizzo nella RAM che la scheda di rete

utilizzerà per scambiare informazioni, ed è uguale a D000H; alcune schede richiedono invece la quantità di RAM che è pari a 16KB o 32KB.

Installazione della scheda di rete Spegnere il computer; prima di toccare la scheda scaricare l'elettricità statica dalle mani toccando una superficie metallica dotata di messa a terra; individuare uno slot di espansione del bus inutilizzato ed accertarsi che esso sia del tipo appropriato per la scheda. Occorre eseguire un programma di configurazione. Connessione dei cavi Una volta installata e configurata la scheda di rete, sarà possibile connettere i cavi necessari per il collegamento agli altri computer della rete. Sono disponibili quattro tipi di configurazione cavo/computer.

Page 32: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 32

THIN ETHERNET (THINNET, versione 10BASE2) Presenta i vantaggi di utilizzare un cavo meno costoso di quello Thick Ethernet e un h/w più semplice da installare. COMPONENTE DESCRIZIONE Scheda di rete con spina del connettore La spina del connettore BNC è utilizzata per

collegare la scheda al connettore a T Connettore a T tipo BNC Il connettore a T si connette alla spina del

connettore della scheda. I cavi Thin sono connessi alle spine su entrambe le estremità della T. Sui PC all'estremità del gruppo un terminatore da 50 ohm sostituisce una delle connessioni.

Cavo Thin con spine per connettore BNC (CAVO NERO)

Cavo coassiale sottile (RG-58) per reti che utilizzano lo standard 10Base2 802.3; si usa in segmenti lunghi da 0.5 m a 185 m e si possono collegare fino a 30 PCr

THICK ETHERNET (THICKNET, versione 10BASE5) Usa il cavo standard o spesso, è possibile connettere più PC in rete e ad una distanza maggiore; il cavo è tuttavia più costoso e più difficile da installare rispetto a quello sottile. COMPONENTE DESCRIZIONE Scheda con spina del connettore DIX La spina del connettore connette la scheda al

cavo del ricetrasmettitore Cavo del ricetrasmettitore con spina del connettore DIX e presa

Il cavo del ricetrasmettitore connette il PC a una rete Thick; la spina del connettore si trova ad una estremità del cavo del ricetrasmettitore, all'altra estremità si trova la presa del connettore che connette il cavo a un ricetrasmettitore; la lunghezza massima del cavo è 50 m.

Ricetrasmettitore (transceiver) Connette il PC a una rete Thick Cavo Thick (CAVO GIALLO) Cavo standard o spesso, è un cavo

coassiale, la sua lunghezza massima è di 500 m e può collegare fino a 100 ricetrasmettitori, standard 10Base5 802.3

Terminatore da 50 ohm Di serie N deve essere connesso al cavo Thick alle due estremità della rete

ETHERNET A COPPIE RITORTE (versione 10BASET) IL cavo è meno costoso che nei sistemi Thick ed è inoltre più semplice da installare. COMPONENETE DESCRIZIONE Scheda con presa per connettore RJ-45 Connette la scheda al cavo di rete Connettore RJ-45 È posto alle due estremità del cavo a coppie

ritorte, è simile alla presa che collega il cavo di un telefono a una presa a muro, standard 10BaseT 802.3

Cavo a coppie ritorte Può essere non schermato o schermato, la lunghezza massima è di 100 m.

Concentratore (HUB) Ogni 4, 8, 12, 16 o più PC devono essere interconnessi tramite un concentratore, i cavi dei vari PC sono inseriti in una presa che risiede nell'hub.

Page 33: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 33

Struttura di una rete Ethernet. La topologia a bus è rispettata fedelmente nelle versioni 10base5 e 10base2. La versione 10baseT ha, invece, un’implementazione fisica a stella con al centro un hub. Le reti Ethernet devono sempre essere dotate di terminatori ad entrambi gli estremi del bus.

TOKEN-RING Il vantaggio è la ridondanza, se una parte del sistema si blocca o in caso di interruzione del cavo sarà inviato il segnale di interruzione, ma il sistema continuerà a funzionare. Gli svantaggi stanno nel fatto che il cablaggio è più costoso e più complesso rispetto agli altri sistemi: richiede infatti quattro cavi.

Struttura di una rete Token-ring. La topologia è ad anello mentre l’implementazione fisica è a stella con al centro un hub.

Page 34: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 34

COMPONENTE DESCRIZIONE Scheda di rete Compatibile Token-Ring, standard 802.5 con

connettore DB-9 o a standard RJ-45, secondo che si tratti di cablaggio basato su doppino schermato o non schermato

Cavo Di solito cavi non schermati. MAU (Multistation Acces Unit) Una periferica che rappresenta il punto

d'incontro dei cavi del sistema, i cavi escono dalla MAU ogni 4, 8, 16 o più PC e connettono i PC della rete.

Configurazione dei driver per le schede di rete Una volta installata una scheda di rete è necessario installare e configurare anche i driver corrispondenti: 1. NDIS (Network Device Interface Specification): permette al DOS di comunicare con

Ethernet; 2. BASIC Redirector: interpreta le istruzioni del computer e le invia sulla rete; 3. Software di rete: DECnet, LAT, APPLETALK, NetBEUI, TCP/IP. Famiglie di Reti È necessario poter catalogare le varie reti in base ai protocolli per mettere in evidenza gli standard e le correlazioni esistenti tra reti apparentemente differenti.

Ethernet Token Ring FDDI SMDS ISDN SNA X.25 Frame Relay

ATM

LIVELLI LAN LAN LAN,MAN MAN WAN WAN WAN LAN,WAN L1 Manchester Manchester

Differenziale C4/5 Propriet

ario (Celle)

NRZI NRZI X.2, NRZI

NRZI B-ISDN nuova concezione

L1 V.27 X.21, X.21bis

L2 MAC 802.3 802.5 ISO9314 HDLC LAPD SDLC LAPB LAPF L2 LLC 802.2 802.2 802.2 HDLC LAPD SDLC LAPB LAPF SOMMARIO Se ci si lascia coinvolgere dalla discussione sulle prestazioni Ethernet e Token Ring, si corre il rischio di sprecare del tempo. Le prestazioni della rete dipendono da così tanti fattori che poco importa la velocità del sistema prescelto. La scelta del sistema dipende facilmente da ciò che è già installato (un grosso utente IBM probabilmente utilizza già Token Ring e lo cambierà soltanto per ragioni di costi o di compatibilità con altre reti). Gli utenti nuovi o gli utenti non IBM sceglieranno probabilmente Ethernet grazie al costo inferiore, alla semplicità d'installazione e alla più ampia disponibilità di prodotti. La scelta di utilizzare cavo ThickLAN o in fibra ottica per backbone dipenderà dalle dimensioni dell'area e da altre problematiche, quali restrizioni sulle radiazioni e l'installazione. Il cavo in fibra ottica con interfaccia FDDI è sicuramente interessante per le aree vaste con elevate velocità di dati e dovrebbe essere preso seriamente in considerazione per i nuovi edifici. La tabella riassume i media e le tecnologie LAN più diffusi.

Page 35: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 35

Opzioni Ethernet Token Ring ARCNET FDDI Topologia STAR

BUS RING

BUS STAR

RING BUS RING

Media Twisted Pair Coax Fibre Wireless

Twisted Pair Coax

Twisted Pair Coax

Fibre

Trasmissione BaseBand BroadBand

BaseBand o BroadBand

BaseBand

BaseBand

BaseBand

Protocollo di accesso

CSMA/CD Token Pass

CSMA/CD Token Pass Token Pass Token Pass

Page 36: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 36

LIVELLI di TRASPORTO E RETE INTRODUZIONE I primi due livelli del modello OSI (fisico e collegamento dati) si occupano dei segnali fisici, delle topologie e dei metodi di accesso. Il livello tre, il livello rete, è responsabile della gestione dei collegamenti tra qualunque coppia di stazione in rete (ciò è molto semplice in una piccola LAN e, in effetti, è principalmente gestito dal livello due). Il livello quattro, il livello trasporto, assicura che i dati attraversino, la rete lungo il passaggio reso disponibile dal livello tre. Un messaggio può essere costituito da pacchetti differenti che prendono strade differenti. Il livello trasporto verifica che i pacchetti arrivino a destinazione nel giusto ordine senza errori. I livelli rete e trasporto sono di solito strettamente collegati. Questo capitolo spiegherà alcune delle principali caratteristiche di questi tre livelli e aiuterà quindi a chiarire le differenze in prestazioni tra alcuni protocolli di “coppia” ben conosciuti quali TCP/IP e IPX/SPX di Novell. La parola rete può significare una collezione di sottoreti o LAN in luoghi differenti collegati in rete da una WAN. Il livello tre deve conoscere tutti gli indirizzi della rete e i possibili collegamenti. Il suo compito è quello di trovare un percorso disponibile da un computer all'altro. Ciò può essere molto complesso e può coinvolgere numerosi computer nel processo. Spesso, esiste più di una rotta che i dati possono seguire per andare da un posto all'altro. NetBEUI (NetBios Extended User Interface) NBF (NetBEUI Frame) è il nome del driver che implementa il protocollo di trasporto. Vantaggi: semplice da installare, overhead molto basso, capacità di rilevazione degli errori, veloce. Svantaggi: il numero totale di sessioni di comunicazione è 254, non consente il routing, efficiente per piccole LAN. IPX/SPX (Internetwork Packet eXchange/Sequenced Packed eXchange) Vantaggi: molto veloce. Svantaggi: difficile da configurare, consente il routing solo con alcuni apparati. TCP/IP (Transmission Control Protocol/Internet Protocol) I protocolli TCP/IP hanno visto la luce negli anni settanta. A questo set di protocolli si sono conformati i computer che comunicavano tra le università ed i laboratori governativi associati con l'agenzia DARPA (Defence Advanced Research Projects Agency). Anche se era iniziato come standard non commerciale per reti geografiche, il protocollo TCP/IP fu presto adottato da altre organizzazioni. Molto popolare come protocollo WAN, ha raggiunto una buona diffusione anche nell'ambito delle LAN. I livelli dello standard di rete TCP/IP possono essere in qualche modo collocati all'interno del modello OSI. Dato che TCP/IP non specifica protocolli particolari per i livelli fisico e di collegamento dati del modello OSI, funziona con standard LAN e WAN differenti. Più comunemente, in ogni modo, è utilizzato con gli standard del livello fisico e di collegamento dati definiti da IEEE 802 (Token Ring e Ethernet) e X.25 (commutazione di pacchetto). 1. IP o protocollo Internet corrispondente al livello tre del modello OSI ed è quindi

Page 37: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 37

responsabile dell'instradamento dei dati attraverso la rete e tra le reti; IP è responsabile solo dell'instradamento dei dati (l'origine, la destinazione ed il percorso che i dati seguono per andare dall'una all'altra); IP va bene per le reti geografiche dato che è stato progettato per gestire messaggi e trasmetterli tra parecchi computer secondo diverse rotte possibili.

2. TCP o protocollo di controllo trasmissione si occupa delle funzioni di trasporto del livello quattro; una volta che IP ha stabilito un collegamento tra due dispositivi, TCP si occupa della comunicazione, preoccupandosi di far arrivare i dati nel giusto ordine ed alla giusta velocità; TCP è stato sviluppato per l'utilizzo in WAN che coprono migliaia di chilometri e l'affidabilità fa parte dei suoi parametri progettuali fondamentali. Tale affidabilità è ottenuta per mezzo di un'attività di controllo e correzione degli errori più intensa che quella svolta da protocolli di trasporto quali XNS di Xerox o IPX/SPX di Novell, che sono stati progettati in funzione della velocità su un cablaggio locale affidabile.

L'intrinseca capacità di TCP/IP d’instradare qualunque collegamento (è universale) su percorsi multipli richiede un certo overhead, il che fa di TCP/IP una buona soluzione per certe applicazioni ma non una soluzione particolarmente veloce. Ci sono centinaia d’implementazioni di TCP/IP, per sistemi che vanno dai super computer Cray agli Amiga di Commodore e la maggior parte dei produttori supporta TCP/IP. CONFUSIONE D'INDIRIZZAMENTO IN RETE Ciascun computer collegato in rete ha un indirizzo distintivo simile ad un numero di telefono. Sfortunatamente, man mano che le soluzioni di rete si sviluppavano, sono stati creati differenti sistemi d’indirizzamento. Anche se TCP/IP è diventato uno “standard de facto” per quel che riguarda l'interoperabilità, il mondo informatico si sta spostando verso i più moderni protocolli OSI. Una delle ragioni principali di questa transizione è l'unico indirizzo IP a trentadue bit assegnato a ciascun dispositivo dell'universo TCP/IP. I progettisti che hanno sviluppato l'architettura TCP/IP non potevano sapere che ci sarebbero stati milioni d’indirizzi TCP/IP in uso e la loro scelta di un indirizzo limitato a trentadue bit ha finito con l'esaurire le possibilità d’indirizzi TCP/IP. Gli indirizzi sono gestiti da un'organizzazione centrale mondiale che li assegna dietro richiesta, ma oramai ne sono rimasti pochi, anche perché grossi blocchi d’indirizzo non sono disponibili in quanto sono stati riservati da aziende. Nel caso di Ethernet, invece, è stata prevista fin dall'inizio un'ampia diffusione e ciascun NIC ha il proprio indirizzo MAC a 48 bit, un soluzione che, rispetto all'indirizzo a trentadue bit di TCP/IP, offre la disponibilità di parecchi milioni d'indirizzi in più. Per risolvere i conflitti d’indirizzamento esistono software speciali che, quando una LAN riceve un pacchetto con l'indirizzo IP provvedono a convertirlo nell'indirizzo MAC del PC appropriato; un esempio di questi software è l'ARP (Address Resolution Protocol). PRESTAZIONI DEL PROTOCOLLO DI TRASPORTO Quando le stazioni in rete inviano messaggi tra loro, devono poter generare anche un qualche tipo di conferma circa il fatto che le informazioni sono state trasmesse correttamente. A ciò provvede un set software chiamato la “catasta di trasporto”, responsabile dell’invio dei dati e degli indirizzi di rete dal sistema operativo di rete al software ed all’hardware che immettono l’informazione sul cavo. Per la stazione ricevente, il modo più semplice di gestire questa conferma consiste di inviare un OK al mittente per ciascun pacchetto dati inviato. Il mittente attende quindi questo pacchetto di conferma prima di trasmettere il pacchetto dati successivo. Se la conferma non torna dopo un certo periodo di tempo, o se il messaggio ritornato indica un errore di trasmissione, allora la stazione mittente trasmette di nuovo il pacchetto. Questo stile di protocollo è noto con svariati nomi, compresi conferma positiva con ritrasmissione, protocollo non windowed, protocollo ping-pong. In una rete che ha tempi di trasmissione

Page 38: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 38

tra il punto A e il punto B molto veloci, come nel caso di una LAN, questo tipo di protocollo garantisce di solito trasmissioni dati veloci ed affidabili. Inoltre, è relativamente semplice da programmare ed è quindi eseguito rapidamente dal computer sul quale il protocollo risiede e non assorbe molte risorse del computer stesso. I protocolli ping-pong sono molto adatti alle tipologie di LAN veloci, come Ethernet e Token Ring nelle quali l'attesa fra trasmissione e conferma è breve. Cosa succede quando il flusso di dati passa attraverso numerosi computer e dispositivi di commutazione, come succede in una WAN? In una situazione come questa, occorre del tempo prima che il mittente riceva la conferma della ricezione di ciascun pacchetto e questo può veramente rallentare la quantità di dati trasmessi. Una soluzione a questo problema è quello di inviare più pacchetti uno dopo l'altro senza attendere conferma del ricevimento di ciascuno di essi. In questo caso si parla di protocollo sliding window. La stazione emittente trasmette un certo numero di pacchetti, chiamato window size. Se tale numero è otto, il mittente non può inviare il nono pacchetto di dati fino a quando non ha ricevuto conferma del ricevimento del primo gruppo. Prima di inviare il decimo, deve ricevere conferma del ricevimento del secondo e così di seguito. Se il mittente non riceve conferma del ricevimento di uno dei pacchetti che ha inviato, può inviare di nuovo il pacchetto. Tutti i pacchetti contenuti nella finestra sono trattenuti nella memoria del mittente fino a che il loro ricevimento non è stato confermato, proprio per evitare qualunque perdita di dati. I protocolli windowed ammettono window size variabili; in altre parole il numero di pacchetti che in un dato momento può essere immesso nella rete può variare. La dimensione della finestra può essere regolata continuamente dai computer in modo da fornire la velocità ottimale senza sovraccaricare il cavo della rete o i buffer di dati sulle stazioni di lavoro. Se una catasta di trasporto di questo genere è utilizzata su una rete molto veloce, la dimensione di una finestra può ridursi ad un solo pacchetto. E in tal caso il protocollo sliding window si comporta apparentemente come un protocollo ping-pong. Rispetto ai protocolli non windowed richiedono una maggior quantità di memoria del computer dato che è più alto il numero di pacchetti che devono essere tenuti in memoria. Il codice per un protocollo windowed è inoltre più complesso e quindi è eseguito più lentamente. NetWare di Novell utilizza protocolli ping-pong. La sua catasta di trasporto ping-pong, IPX, è molto veloce su una LAN ma, rispetto ad un protocollo windowed, diventa molto più lenta se deve operare su una rete che presenta anche pochi modem, bridge o instradatori sul percorso dati. Microsoft LAN Manager può utilizzare un protocollo windowed che è efficace in un ambiente LAN TCP/IP. Se utile, LAN Manager può in teoria ridurre la dimensione della finestra ad uno, come nel caso del protocollo ping-pong. È inoltre possibile sviluppare una catasta di trasporto windowed in grado di funzionare con NetWare (ad esempio, un modulo TCP/IP è disponibile per NetWare). Tra gli altri protocolli molto noti ci sono XNS di Xerox, un altro esempio di protocollo ping-pong tipo LAN, ed il protocollo windowed X.25 per reti geografiche. SOMMARIO I professionisti dell'information technology si preoccupano della prestazione globale della loro rete e del servizio offerto agli utenti. Gli schemi d’indirizzamento sono le basi di qualunque rete. I limiti come quelli posti dalla struttura, TCP/IP devono essere valutati molto attentamente sulle grandi reti per assicurare che, in futuro, gli utenti possano essere aggiunti secondo necessità. La scelta dei protocolli di trasporto risulta a volte essere la causa della scarsa prestazione di una rete. Tipicamente, un protocollo windowed come TCP/IP funziona meglio su una WAN, mentre un protocollo non windowed come IPX/SPX è più veloce su una LAN.

Page 39: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 39

ESTENSIONE DELLE LAN Introduzione Prima o poi ogni rete può avere bisogno di crescere e ciò può accadere in molte maniere. Può essere estesa collegando più PC o unendola alla rete di un altro ufficio. Oppure la rete può essere collegata ad una rete posta in un altro luogo, per entrare a far parte di un'inter-rete o di una WAN (Wide Area Network). Per ottenere questi risultati possono essere utilizzati diversi tipi di apparecchi, ognuno con una propria gamma specializzata di comandi e con un proprio nome che lo contraddistingue: per incrementare la complessità del modello OSI si può scegliere tra ripetitori (repeater), ponti (bridge), instradatori (router) e porte (gateway), come rappresentato nella figura seguente.

REpeATER opera a livello fisico 1 Il segnale digitale inviato in rete perde intensità con l'aumento della lunghezza del collegamento. Il ripetitore è un apparecchio che amplifica il segnale presente sul collegamento di rete, risincronizzandolo (rifacendo la codifica di Manchester) e rigenerando i preamboli, per consentirgli di arrivare più lontano. I ripetitori più semplici non svolgono alcuna funzione software, ma consentono semplicemente di prolungare il cavo Ethernet, mandando il segnale più lontano di quanto normalmente riuscirebbe a fare. Il ripetitore interviene nel primo livello del modello OSI. Esso può essere utilizzato anche per convertire il segnale da un tipo di canale ad un altro, da un doppino ad un cavo coassiale, per esempio. In una topologia stellare il cuore della stella può fungere da ripetitore tra i bracci. In una data sezione di rete, può essere utilizzato un numero limitato di ripetitori, dato che il loro intervento provoca l'aumento del ritardo di transito. Lo standard di rete impone un limite massimo ai tempi di trasmissione, in modo da poter sicuramente individuare eventuali collisioni. I ripetitori non permettono il cambio del metodo di accesso al canale di rete, da Ethernet a Token Ring, per esempio. Il ripetitore aumenta la distanza di trasmissione della rete, non aumenta la quantità di dati che possono essere trasmessi. Hub (Concentratori) I concentratori invece si comportano normalmente come ripetitori anche se è possibile inserirvi delle schede Bridge (sono dispositivi modulari). Normalmente quindi sono ripetitori multiporta.

Page 40: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 40

Bridge opera a livello di collegamento dati 2 Un ponte consente la connessione di due reti locali aventi metodi di accesso al canale e/o tipologie uguali o diverse, ma che supportino identiche attività oltre il secondo livello di collegamento. Si può, per esempio, utilizzare un ponte quasi come fosse un ripetitore per collegare una rete locale Ethernet su doppino (una 10baseT) ad un sistema Ethernet coassiale (10base2). Il ponte però può avere anche diversi livelli d'intelligenza. Un ponte permette la connessione di due reti locali fisicamente vicine con il semplice collegamento di un’estremità di ciascuna delle due reti allo stesso apparecchio.

Un mezzo ponte o un ponte remoto è utilizzato per collegare insieme due reti poste a gran distanza. In questo caso si dovrebbe utilizzare un mezzo ponte per ogni rete, con un collegamento telefonico a fare da tramite per chiudere il circuito. Questo tipo di connessione, basato su mezzi ponti, richiede, per i collegamenti telefonici, l'uso di modem ad alta velocità per evitare possibili rallentamenti dei dati in transito. Ponti intelligenti Una delle maggiori limitazioni derivanti dall'uso di semplici ponti è che questi trasmettono qualsiasi pacchetto di dati da una rete all'altra senza verificare se ciò sia necessario o meno. Anche se la rete trasmittente e quella ricevente si trovano sullo stesso sotto segmento, il ponte trasmetterà in ogni modo i dati. Un ponte che trasmette tutto causerà un eccesso

Page 41: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 41

di traffico inutile sull'intera rete, anche su reti collegate con costose linee di comunicazione, ed i ritardi derivanti dal sovraccarico potrebbero condurre ad un evidente calo di prestazioni. Fortunatamente sono disponibili ponti con caratteristiche d'intelligenza supplementari. Essi sono in grado di filtrare il traffico presente sulla rete in modo che i pacchetti di dati destinati ai nodi locali non siano inutilmente trasferiti alla rete remota (figura a pagina seguente). Un ponte intelligente è molto utile anche per espandere una rete locale. Tutti le reti basate su cavi condivisi (a bus o ad anello) arrivano, ad un certo punto, al massimo delle loro capacità di trasmissione, fino a che un altro aumento potenziale di traffico può essere ottenuto solo progettando l'impianto. Se i messaggi sono trasmessi a tutte le stazioni ogni, workstation incide negativamente sulla capacità complessiva della rete. L'inserimento di un ponte nel mezzo di una rete esistente consente un funzionamento simile a quello dell'esempio precedente. Il ponte divide la rete in due segmenti, riducendo il flusso di dati su ognuno di essi ed eliminando i messaggi non necessari all'altro segmento. Ciò comporta un immediato miglioramento delle prestazioni, permettendo l'aggiunta di ulteriori PC o l'aumento della quantità complessiva del traffico di dati.

Ponti autoapprendenti Come fa un ponte a conoscere gli indirizzi dei PC ad esso collegati? Deve avere le informazioni che gli consentano di passare o meno i pacchetti di dati. Ci sono due tecniche per ottenere questo scopo. 1. La prima tecnica richiede che il gestore della rete inserisca nel ponte una tabella degli

indirizzi, per consentirgli di conoscere la posizione di ogni indirizzo. Questo tipo di ponte è chiamato ponte statico.

2. La seconda è la tecnica di auto apprendimento. È molto efficiente e tuttavia molto semplice. Il ponte verifica l'indirizzo della sorgente di ogni messaggio in arrivo. Quindi ricorda a che cosa corrisponde quell'indirizzo per il momento in cui gli servirà, quando riceverà un messaggio con quella destinazione. Questo significa che il filtro non funzionerà per i primi pochi messaggi, fino a quando il ponte non avrà imparato la posizione di ogni singolo indirizzo. Il vantaggio di questa soluzione è che il ponte sopporta cambiamenti e aggiunte della rete senza dover essere riprogrammato ogni volta dal gestore della rete.

Page 42: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 42

Ponti trasparenti e Spanning tree Cosa succede quando due reti sono collegate con due ponti? Ogni ponte riceverà un pacchetto di dati destinati all'altra parte e lo trasmetterà. I due pacchetti appariranno quindi contemporaneamente sull'altra rete locale causando errori e confusione. È difficile che questa situazione avvenga tra reti vicine, ma può verificarsi quando molte reti locali lontane sono collegate tra loro tramite ponti remoti. La figura, mostra il caso di tre reti locali interconnesse. In questo caso la rete A può inviare dati alla rete B attraverso il ponte B1 ma anche i ponti B2 e B3 passeranno gli stessi dati attraverso i propri filtri. Tutto ciò si tradurrà in una sovrapposizione di dati sulla rete B con conseguente blocco della rete. Nell'uso dei ponti attivi bisogna sempre cercare di evitare questo tipo di anello chiuso. D'altra parte sarebbe molto utile poter avere una simile configurazione in caso di guasto ad un ponte o ad un segmento di rete. A questo scopo, però, è possibile collegare fisicamente un ponte in più (B3) che, al momento della prima configurazione è escluso, evitando i problemi creati dagli anelli chiusi. Si riattiverà poi, automaticamente, in caso di guasto al ponte B1 o B2, assicurando così la continuità funzionale di tutta l'interconnessione di rete. Tutto questo è fisicamente realizzabile in un palazzo per uffici, mediante un cavo supplementare di scorta, installato in un condotto separato da quello degli altri collegamenti, che lo porta al cavo di rete principale posto nella parte opposta del palazzo.

ROUTER opera a livello di rete 3 Interconnette LAN su base geografica. Essi devono conoscere i protocolli a livello 3 e in generale non possono permettersi di implementarli tutti. Un primo limite naturale per un Router è quindi il numero di protocolli in grado di gestire. Quando un Router gestisce più di un protocollo di rete è detto Router Multiprotocol.

Page 43: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 43

Gli instradatori diventano necessari quando bisogna collegare insieme diverse reti con un solo apparecchio. C'è una certa confusione riguardo all'uso di ponti e instradatori, quindi daremo un'occhiata agli instradatori in termini di loro differenze rispetto ai ponti. Gli instradatori riconoscono quello che succede in reti del terzo livello OSI, e hanno una tabella indirizzi dell'intera struttura di rete. L'informazione del livello di reti che può essere interpretata da un deviatore, è quella relativa al codice di destinazione, che dice dove ci si aspetta sia inviato il pacchetto di dati. Un deviatore può interpretare questa destinazione indirizzando il pacchetto di dati sulla base della tabella indirizzi che ha in memoria.

Un ponte sa solo da che parte si trova un indirizzo, non dove si trova esattamente nella rete. La tabella indirizzi degli instradatori può essere modificata manualmente ogni volta che cambia configurazione della rete, ma molti instradatori sono in grado di costruire dinamicamente la propria tabella d’indirizzamento. Una rete dotata d’instradatori utilizza programmi di spanning tree in grado di gestire percorsi di scorta (ridondanti) tra qualsiasi due punti dati senza bisogno di ponti trasparenti. Quando le reti interconnesse contengono molti nodi, ad esempio superiori al

Page 44: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 44

migliaio, sono in grado di gestire un routing gerarchico in modo che molti sistemi intermedi non debbano conoscere obbligatoriamente tutta la topologia della rete, ma solo i settori di loro competenza detti domini. In questo caso si fa forte il parallelismo con il modello telefonico. Gli instradatori sono progettati per gestire anelli chiusi e reti Ethernet multiple e sono anche in grado di trattare pacchetti di dati che non sono corretti. Il deviatore lavora con il protocollo di rete, che gli dice dove inviare i pacchetti di dati e in che ordine. Gli instradatori sono più complessi da installare rispetto ai ponti, dato che il relativo programma di gestione deve essere confezionato per una specifica rete. Però il deviatore è in grado di comprendere la struttura della rete. Di conseguenza gli instradatori possono essere configurati per scegliere il più veloce, il meno costoso o il più sicuro percorso per inviare messaggi. Gli instradatori possono anche utilizzare percorsi alternativi e scegliere rapidamente percorsi diversi quando individuano una congestione nel traffico di rete. Gli instradatori possono essere utilizzati anche per passare in modo trasparente da un metodo di accesso ad un altro. Il protocollo di quarto livello del modello OSI permette il riassemblaggio dei pacchetti da parte del nodo di destinazione. I ponti funzionano secondo un assunto: se in dubbio invia lo stesso messaggio. Gli instradatori utilizzano il protocollo della rete, non l'indirizzo fisico, per prendere decisioni sulla ritrasmissione di messaggi ad una sotto-rete. Questo consente una migliore protezione nei confronti del traffico non necessario rispetto all'esempio di filtratura dei ponti, o in ogni caso un migliore isolamento. Le possibilità di configurazione degli instradatori sono definite con maggiore precisione di quelle dei ponti. Ciò consente agli instradatori di costruire un tipo di traffico di rete basato su una gerarchia naturale, il che significa che possono essere gestiti più facilmente dei ponti del sistema di gestione rete. Brouter Alcuni prodotti combinano in una stessa unità le funzioni degli instradatori e dei ponti. Questi apparecchi forniscono la massima flessibilità per reti multi-protocollo, comportandosi da semplice ponte in presenza di pacchetti di dati contenenti un protocollo di terzo livello non supportato. Questo tipo di soluzione non può fornire le stesse prestazioni degli instradatori dedicati, ma mette a disposizione le capacità d’indirizzamento degli instradatori al livello minimo ad un costo inferiore. Alcuni produttori di sistemi operativi di rete mettono a disposizione funzioni d'indirizzamento all'interno del server. In questo caso lo stesso server è collegato a due o più reti e controlla il movimento dei pacchetti dei dati dall'una all'altra rete. A differenza dei ponti più semplici, un brouter può gestire una rete basata sullo stesso sistema multiplo di percorsi che può gestire un deviatore. A differenza di molti instradatori però, i brouter sono indipendenti dai protocolli. Sono in grado di gestire traffico che un normale deviatore ignorerebbe. Si può programmare un brouter per funzionare come un ponte con un protocollo e come un deviatore con un altro. Non esiste un’esatta definizione di cosa è un brouter, o di cosa non è, tanto è vero che esistono sul mercato molti prodotti che offrono diverse combinazioni di funzioni. Gateway opera a livellio applicazione 7 Servono per far si che un applicativo di una architettura di rete possa comunicare con un applicativo analogo di una diversa architettura. In genere esistono gateway per le principali architetture di rete riguardanti i servizi principali quali E-Mail, File Transfer, Terminale Virtuale. Più che considerarlo a livello L7 è più opportuno porlo a livello applicazione dato che non tutte le architetture di rete possiedono 7 livelli. Le porte sono utilizzate per scambiare informazioni tra reti di tipo diverso. Una porta deve essere in grado di codificare e decodificare l'intero protocollo di entrambe le reti. Le porte ricevono transazioni livello per livello in un protocollo (per esempio System Network

Page 45: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 45

Architecture di IBM) le trasformano nelle corrispettive funzioni in un altro protocollo (per esempio OSI). Le porte, a differenza dei ponti, non richiedono alla rete un preciso schema d'indirizzamento e formati chiusi di pacchetti di dati. Molte porte proprietarie (le porte IBM SNA, ad esempio) mettono a disposizione funzioni di conversione di protocollo fino al sesto livello del modello OSI, mentre le porte OSI sono in grado di eseguire traduzioni fino al settimo livello del modello OSI. Diversi PBX offrono porte di accesso alle reti pubbliche di dati. Queste porte sono normalmente fornite di un'interfaccia X.25. Molti pensano ai collegamenti tra reti di computer e mainframe come porte da mainframe. Ma mentre le porte di questo tipo spesso realizzano traduzioni di dati, funzioni di ponti, e instradamento per passare informazioni dallo schermo di una postazione PC ad un mainframe, questo tipo di porta non è lo stesso di una porta OSI. Questo perché i computer sulla rete di PC non hanno un accesso trasparente ai file sul mainframe (e viceversa). Quando si parla di porta da mainframe, spesso s'intende un server per comunicazione. Le porte possono gestire tutti i livelli del modello OSI fino al settimo livello di presentazione. Le porte decifrano e capiscono tutti i livelli contenuti in un dato pacchetto di rete. Possono, per esempio, essere programmate per tradurre un pacchetto SNA di IBM Token Ring di una rete su doppino in un pacchetto per rete TCP/IP su fibra ottica. Molte porte possono fornire insieme servizi di collegamento dati, come funzioni di ponte e instradamento su livello di rete. La maggior parte dei produttori di reti o supportano differenti porte per i propri protocolli di rete oppure producono le proprie. La figura mostra un esempio di come potrebbe apparire una porta TCP/IP OSI.

Conclusioni Se si dispone di una LAN si può estenderne la lunghezza aggiungendo un ripetitore. Si può anche, aggiungere più nodi, controllando che le prestazioni complessive non calino dopo ogni importante aggiunta o dopo l'inserimento di una nuova applicazione software. I ripetitori sono semplici amplificatori di segnale e sono generalmente economici e semplici da installare. I ponti sono in genere abbastanza semplici da poter essere installati dallo stesso esperto gestore di rete. Dovrebbero essere fondamentalmente utilizzati per collegare tra loro due o più reti

Page 46: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 46

utilizzanti stesso protocollo e tipo di collegamento. Si dovrebbe usare un ponte per collegare tra loro due reti Token Ring o due reti Ethernet. I ponti sono collegamenti per dati di secondo livello e, di solito, sono più costosi dei ripetitori. Gli instradatori richiedono, una conoscenza molto approfondita delle specifiche della rete e una precisa e dettagliata comprensione del particolare sistema (come gli indirizzi di rete siano specificati e assegnati, per esempio), collegano tra loro due o più reti aventi lo stesso protocollo su collegamenti di tipo diverso e svolgono, di solito, anche funzione di ponte e sono più costosi di ripetitori e ponti. Cominciano ad essere disponibili instradatori a protocolli multipli. Se si avesse bisogno dell'intelligenza d'indirizzamento di un deviatore insieme alle funzioni filtro di un ponte, allora la soluzione potrebbe essere un brouter, o ponte intelligente. I brouters sono complessi da installare almeno quanto gli instradatori e, di solito, più costosi. Le porte fanno tutto quanto. Possono far comunicare reti con protocolli e tipi di collegamento diversi, e possono instradare pacchetti di dati da un sistema al giusto nodo di un altro. Possono tradurre protocolli dai quattro livelli superiori OSI così che reti diverse che funzionano con software diverso su differenti tipi di collegamento possono condividere dati, applicazioni e posta elettronica. Dato che le porte possono essere programmate per trattare e tradurre tutti i livelli di riferimento del modello OSI e quindi connettere qualsiasi tipo di LAN, il loro costo è superiore a quello di qualsiasi altra unità di collegamento per reti. I professionisti delle reti utilizzano le porte per connettere tra loro le reti locali più disparate, come una rete TCP/IP-Ethernet ad una Novell NetWare funzionante con ARCnet. Tutti questi elementi di collegamento per rete possono, in teoria, essere utilizzati in sistemi geograficamente dispersi (WAN). Linee ad alta velocità, collegamenti satellitari, microonde, fibre ottiche per grandi distanze, possono tutti essere utilizzati come sezioni di questi sistemi, uniti tra loro dai vari dispositivi d'interconnessione presentati.

Page 47: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 47

Network Operating System (NOS) Introduzione Un NOS controlla le funzioni di rete, gestisce la condivisione delle risorse e fornisce gli strumenti per la sicurezza e l’amministrazione. Un client è un nodo sulla rete che permette l’accesso alle risorse (file, printer, CD-ROM) offerte da un altro nodo sulla rete. Un server è un nodo sulla rete che fornisce risorse condivise ai client. Il software fondamentale è il driver server, che rilancia le richieste ricevute dalla rete e consente l’accesso alle risorse richieste. Un server può essere. 1. Dedicato: ad un compito specifico. 2. Non dedicato: consente l’esecuzione di applicazioni locali o agisce come client di rete

mentre le funzioni server sono eseguite in background. Il termine client/server è utilizzato per definire la relazione di condivisione che si realizza fra le applicazioni client e server all’interno della rete. Le applicazioni vanno oltre la semplice condivisione delle risorse : i client (front end) chiedono al server (back end) di svolgere i servizi al loro posto e in genere di rinviare ai client i risultati ottenuti. Server-Based e Peer-to-Peer Il modello OSI è progettato in modo da consentire a tutti i computer di condividere le informazioni tra loro utilizzando regole comuni. Questo scambio tra uguali è definito in lingua inglese come comunicazione peer--to-peer, in altre parole comunicazione da uguale ad uguale. Quando in una rete un PC è server allora la struttura della rete è chiamata server-based network con condivisione di risorse (resource sharing). In una PC LAN peer-to-peer, ogni nodo può essere un client o un server e può condividere le sue risorse (informazioni, cartelle, unità a disco e stampanti) con altri nodi. Le informazioni sulla sicurezza e sugli account utente sono distribuite a ogni nodo che agisce come server (per ottenere l’accesso ad una risorsa offerta dal server, si deve avere un account utente su quel server ed una password). Per queste informazioni non c’è amministrazione centralizzata, limite che può diventare vero problema se la rete s’ingrandisce, ideale per al massimo sedici PC. Tra i NOS più diffusi ci sono LANtastic, OS/2 Warp Connect, NetWare Lite, Windows 9.x e Windows NT Workstation. In una PC LAN server-based la rete è progettata intorno a uno o più server che agiscono come server per i client della rete. Le informazioni sulla sicurezza e sugli account utente sono centralizzate, per questa ragione sono utilizzate in grandi aziende. Tra i NOS più diffusi ci sono Windows NT Server, OS/2 Warp Server, Vines (Banyan), LANtastic Dedicated Server e NetWare. In una PC LAN clustering (distributed computing) si legano logicamente in un cluster server multipli collegati in rete, in modo che agiscano come un unico grande server. Il lavoro è distribuito sui vari nodi che formano il cluster e altri server entrano in azione se uno dei server fallisce. componenti di un nos Immaginiamo di collegare in rete per la prima volta alcuni utenti di PC già esistenti. L'hardware di rete è installato e pronto per funzionare. Cavi e hub sono collegati insieme con una scheda di rete di ciascun PC. Non ci saranno comunicazioni senza uno speciale software attivo su PC e server che dica loro come “parlare l'uno all'altro”. Questo software è quello che è chiamato sistema

Page 48: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 48

operativo di rete o NOS ed è costituito da diversi elementi. Il termine sistema operativo (OS) si riferisce al software che gestisce le attività del computer: MS-DOS, Windows, OS/2 e UNIX sono esempi di sistemi operativi per PC. Un sistema operativo di rete è un software che va ad aggiungersi al sistema operativo del computer. Di solito, il NOS è caricato sul server dopo che il suo sistema operativo è attivato. Altri PC della LAN avranno un piccolo programma residente in memoria coesistente con MS-DOS. L'esistenza di OS per computer standard permette ai programmatori di scrivere applicazioni standard che possono essere utilizzate da tutti i computer che funzionano con quel sistema operativo. Questa è la ragione che sta dietro il successo dei PC, in quanto ciascun pacchetto software scritto per DOS o Windows su un PC ha davanti a sé un enorme mercato potenziale. Lo stesso desiderio di standardizzazione si applica ad un NOS. I programmi che scambiano file tra computer dovrebbero essere scritti specificatamente per ciascuna LAN se non ci fosse un sistema operativo di rete standard al quale i programmatori possono conformarsi. Il sistema operativo MS-DOS per PC è un sistema operativo utente singolo, single-tasking progettato per un semplice personal computer. Il progetto originale non prevedeva capacità di collegamento in rete. Gli UNIX, Windows e OS/2 sono sistemi operativi general purpose con capacità multi-tasking. Essi sono molto più potenti e versatili di MS-DOS ed hanno capacità di lavoro in rete ben sviluppate. In una rete server-based, il server eseguirà un sistema operativo multi-tasking come OS/2, Windows, UNIX o NetWare, in quanto la gestione di una rete richiede la gestione di molte interruzioni per inviare o ricevere dati contemporaneamente. Un sistema operativo single-tasking sarebbe troppo lento. NetWare di Novell è un caso speciale. Molti lo considerano un pezzo di software applicativo dato che era stato progettato fin dall'inizio per gestire una rete. In effetti, è diviso in due parti: una è un vero e proprio sistema operativo multi-tasking; l'altra il NOS. Il sistema operativo proprietario NetWare assume completamente il controllo del file server. Ciò era voluto fin dall'inizio dato che al momento della sua introduzione non esistevano adeguati sistemi operativi multi-tasking adatti ai PC. Questa concezione ha dato a NetWare vantaggi competitivi in fatto di prestazioni e sicurezza rispetto ai primi NOS e ne ha determinato la diffusione. L'espressione Portable NetWare si riferisce ad una parte di NetWare confezionata in modo tale da poter essere eseguita in aggiunta ad altri sistemi operativi (prevalentemente UNIX). Questa combinazione non produce le prestazioni di Native NetWare che è una combinazione del NOS NetWare e del sistema operativo NetWare. Questo gira su una piattaforma Intel e comincia ad essere disponibile anche su altre macchine quali computer RISC. Dall'introduzione del personal computer, sono molte le funzioni software che sono state sviluppate per aiutare i PC a lavorare in una rete. Ecco alcuni termini comunemente utilizzati insieme a molti sistemi operativi di rete. Re-director Implementa la parte client per l’accesso ai file ed alle stampanti su un server fornendo al client i mezzi per accedere alle risorse di un altro PC. Il re-director è il software fondamentale di un client, che esamina ciascuna richiesta che un’applicazione fa al software di sistema del PC, come la richiesta di aprire un file. Esso decide se la richiesta è destinata all'hardware della macchina stessa o ad un dispositivo di rete. Se la richiesta dell’applicazione riguarda l'hardware del computer, il re-director si mette da parte e passa la richiesta al DOS o al BIOS del PC perché sia processata come al solito. Per esempio possiamo citare i comandi inviati allo schermo, o ad una stampante o un'unità a disco che non sono condivise con la rete. Se invece la richiesta riguarda un dispositivo di rete, il re-director se ne occupa direttamente e ne organizza la trasmissione attraverso la rete fino al server che la dovrà

Page 49: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 49

gestire. Un re-director di solito lavora al livello 5 (sessione) del modello OSI e non ha bisogno di sapere che cosa succede ai livelli inferiori.

NetBIOS Il NetBIOS (Network Basic Input/Output System) è stato introdotto e pubblicato da IBM nel 1984 ed è oggi ampiamente diffuso, il NetBIOS è una semplice interfaccia software che il sistema operativo del computer può utilizzare per comunicare con una LAN, indipendentemente dall'hardware o dal software della LAN stessa. I comandi del NetBIOS dicono al software della rete di eseguire operazioni ai livelli sessione e collegamento dati del modello di riferimento OSI. I comandi standard NetBIOS non prevedono l'accesso di rete ad alti livelli. Un’applicazione può stabilire una sessione con un'altra applicazione o può inviare come datagrammi, messaggi “one-time”. NetBIOS può essere solo utilizzato per file service come read, write e print. Le sessioni possono essere paragonate a chiamate telefoniche. Un’applicazione che vuole stabilire un collegamento invia un comando CALL, mentre la destinazione avrà ricevuto un comando LISTEN. I comandi SEND and RECEIVE sono seguiti da un comando HANGUP per chiudere la chiamata. Il ricevimento del messaggio è confermato al mittente. I datagrammi sono messaggi che sono semplicemente immessi nella LAN attraverso il livello collegamento dati e che non sono confermati. Queste due forme di comunicazione sono adatte alla maggior parte delle applicazioni LAN dato che sono pochi i programmi a richiedere l'accesso diretto ad altri livelli del modello OSI. NetBIOS non è un protocollo di rete e le sue funzioni sono quasi tutte completamente indipendenti dal protocollo. I comandi NetBIOS possono essere utilizzati per trasmettere e ricevere informazioni su reti che utilizzano vari protocolli, compresi TCP/IP, OSI, IPX/SPX di Novell e Vines. In pratica, ogni fornitore di reti PC LAN fornisce un’interfaccia NetBIOS al suo software. Interfacce API (Application Program Interface) I programmi ad alto livello come word processor, tabelle elettroniche e database comunicano con i programmi di basso livello che gestiscono cose come il traffico dati delle reti per mezzo di protocolli chiamati interfacce API. Le interfacce API provvedono a tradurre le chiamate dei programmi ad alto livello nelle istruzioni a basso livello del computer che fanno funzionare la rete. Un'API è una chiamata da un’applicazione ad un sistema operativo. Se si cambia l'hardware, può

Page 50: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 50

essere necessario alterare i funzionamenti delle interfacce API o caricare una nuova interfaccia API nel computer al posto di quella vecchia, ma le applicazioni che usano le interfacce API non dovrebbero richiedere modifiche. Un esempio di un ambiente operativo con molti API è MS-DOS nel quale esse sono chiamate DOS o BIOS. Queste interfacce API in DOS permettono ai programmatori di fare tutto, da scrivere su disco ad aggiornare lo schermo o stampare l'output. Un altro ambiente che utilizza interfacce API è Windows. La ben documentata natura di questo sistema è la ragione in base alla quale i programmi scritti per Windows si presentano nello stesso modo e funzionano in modo simile e possono scambiare i dati. I vantaggi dell'impiego delle interfacce Api sono molti. La programmazione si svolge in modo più veloce perché non è necessario “reinventare la ruota” per le operazioni semplici quali scrittura sullo schermo o trasferimenti di dati di rete. Un'API impedisce inoltre ai programmi applicativi di accedere direttamente all'hardware che provvede all'elaborazione, un aspetto importante per i computer multi-tasking. Un programma che ha accesso diretto all'hardware, può non solo “impiantarsi” ma può paralizzare anche il resto del computer. La maggior parte dei programmi che utilizzano LAN accedono alle proprie risorse attraverso interfacce API. Ad esempio, Microsoft LAN Manager ha speciali API che gestiscono la sicurezza di rete, la condivisione di file nella rete e le statistiche sull'utilizzo del computer. RPC (Remote Procedure Call) Consente ad un processo client di eseguire una chiamata di funzione e di ottenere l’esecuzione in un processo server separato. OLE (Object Linking and Embedding) di rete Si chiama DCOM (Distributed Component Object Model) e consente a tutte le comunicazioni OLE di svolgersi sulla rete. Accesso remoto Windows NT utilizza la funzione RAS, può gestire fino a 256 connessioni in entrata simultanee. Il RAS è in pratica un router multi protocollo nel quale il server RAS è dedicato alla gestione delle comunicazioni fra nodi remoti multipli e la rete locale. Il RAS supporta il PPP (Point to Point protocol). Named Pipe Sono chiamate che consentono ad applicazioni diverse di comunicare tra loro, anche quando si trovano su computer diversi. Le interfacce API dedicate a questo processo interno di comunicazione sulla rete sono chiamate named pipe in pratica condotti denominati, ma la comunicazione è uno a uno. Il processo client contatta il server aprendo il name pipe esattamente nello stesso modo in cui aprirebbe un file e poi scrivendo dei caratteri nel pipe nello stesso modo in cui li scriverebbe ad un file. Il processo client poi recupera la risposta dei server utilizzando le funzioni di chiamata dei file standard per leggere il pipe. Un volta aperto il pipe, ciascuno dei due processi può inviare dati all'altro come flusso di caratteri individuali come se stesse scrivendo un file dall'inizio alla fine. Oppure possono inviare lotti distinti di caratteri chiamati messaggi. Un esempio d'interprocesso di comunicazione potrebbe essere un’applicazione applicativo su un client che utilizza un database server. Named pipe non fanno parte del DOS ma ci sono diversi modi per aggiungere la funzionalità named pipe ai programmi DOS. Le versioni di LAN Manager per DOS fanno si che named pipe si presentino al programma DOS come se fossero file DOS. Mailslot Simile a Named pipe, ma fornisce comunicazioni uno a molti e molti a uno. Named pipe e NetBIOS a confronto A volte, i named pipes (che sono uno standard OSI accettato) e i NetBIOS (che non lo sono) sono messi a confronto. I named pipes sono uno strumento complicato che consente di programmare con semplicità numerose funzioni complesse. I NetBIOS

Page 51: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 51

possono fornire un miglior controllo del livello inferiore delle comunicazioni in determinate situazioni ma richiedono da parte dei programmatori un maggior sforzo in fatto di codifica. I NetBIOS sono stati utilizzati per lungo tempo come standard de facto. OS/2, che comprende named pipes ed altri strumenti di rete complicati, supporta NetBIOS. L'utilizzo di named pipes, d'interfacce API o simili prodotti da altri fornitori, è diventato sempre più importante man mano che i programmatori scrivono software fatto per girare su PC e server di rete o su una combinazione di entrambi. Diffusi sistemi operativi, come LAN Manager e NetWare, sono in costante evoluzione. I programmatori che scrivono software per API di rete non si devono in ogni modo preoccupare di questo dato che i cambiamenti apportati al funzionamento interno delle interfacce API non dovrebbe cambiare il modo in cui i programmatori utilizzano le API stesse. I programmi scritti per le prime versioni di NetWare, ad esempio, rimangono compatibili anche con le versioni successive. dominio La gestione della sicurezza è basata su account (username e password), in pratica accesso tramite logon. Questo contesto di sicurezza può essere gestito a livello server oppure centralizzato (dominio). All’interno di un dominio i server condividono un database account utente centralizzato. Si creano così account utente per accedere al dominio anziché ai server individuali. Questo metodo permette di richiedere l’accesso alla rete con un unico account utente e con una sola password. Una volta dentro il dominio si può accedere a qualsiasi risorsa all’interno del dominio indipendentemente dal server in cui ci si trova. In un dominio si deve stabilire che un server NT è il PDC (Primary Domain Controller) ed ha il compito di gestire il database account utenti (anche un migliaio) e convalidare le richieste di logon. Un secondo server NT deve essere il BDC (Backup Domain Controller). È possibile creare anche domini multipli, ma in questo caso non si può beneficiare dell’amministrazione centralizzata. scelta di un nos Le reti server-based sono molto capaci: offrono eccellenti prestazioni in fatto di sicurezza e gestione dei dati, possono supportare centinaia di utenti locali e s'integrano facilmente in una vasta gamma di reti geografiche aziendali. In ogni caso, hanno anche loro alcuni inconvenienti. Prima di tutto è necessario predisporre un file server, un lavoro complesso che richiede tempo anche da parte di specialisti. Se il server si guasta, l'intera rete rimane disabilitata: ciascun PC continua a funzionare ma qualunque attività incentrata sulla rete, ad esempio le operazioni di stampa in rete, la condivisione di archivio o la posta elettronica, s'interrompe. Le reti di PC peer-to-peer sono invece molto diverse. Tipicamente, sono più lente e hanno un numero minore di caratteristiche, ma sono meno costose e più facili da predisporre. La maggior parte delle reti di PC peer-to-peer sono progettate per piccoli gruppi di lavoro composti da meno di sedici utenti. Ciascun utente nella LAN può predisporre il suo PC in modo che altri possano accedere al suo hard disk o alle sue periferiche. Gli utenti possono proteggere il loro sistema per mezzo di password richieste a chi dall'esterno accede ai loro dischi o stampanti. Se anche una qualunque stazione di lavoro si guasta, il resto della rete continua a funzionare. Le reti peer-to-peer sono anche vendute in modo diverso dai sistemi server based. Con una rete server based è acquistato il sistema operativo del server che include di solito anche il software della stazione di lavoro. Questo software è costoso in quanto include un numero limitato di licenze, ad esempio 5, 25 o 100. In ogni caso, una volta acquistato, è possibile collegare al server quanti PC si vogliono, fino a raggiungere il numero di licenze contrattuale. Poi è necessario acquistare le schede d'interfaccia di rete assicurandosi che il software di rete lavorerà con l'hardware. Di solito, le reti peer-to-peer sono acquistate una stazione di lavoro alla volta. La scatola contiene tutto ciò che occorre per una stazione di lavoro: hardware, driver software, documentazione e persino una certa

Page 52: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 52

lunghezza del cavo. Le reti peer-to-peer vanno bene per i piccoli gruppi che non gradiscono l'imposizione di una struttura troppo pesante su di loro, esse non sono una buona scelta per tutte le applicazioni. Una vasta rete peer-to-peer può essere molto difficile da gestire in quanto la stessa concezione progettuale della rete quasi incoraggia un flusso costante di cambiamenti in “chi ha accesso a cosa”, una specie di processo di costante riconfigurazione di cui è difficile tenere traccia se la LAN non è gestita da un amministratore. Le server based tendono ad impiegare molto tempo a partire, a causa della loro complessità e del loro costo. Le reti peer-to-peer tendono invece a crescere in piccole organizzazioni o nell'ambito di gruppi di lavoro in grandi aziende, man mano che gli utilizzatori di PC MS-DOS single tasking sentono, il bisogno di condividere i dati in modo più efficiente. La tabella illustra alcuni NOS molto diffusi e indica quale tipo di sistema operativo e di computer è associato a ciascun NOS.

NOVELL NOVELL MICROSOFT BANYAN NOS NetWare Lite NetWare 386 Lan Manager Banyan Vines OS MS-DOS NetWare 386 OS Windows NT Unix H/W any PC 386 PC 386 PC 386 PC

Sommario Il sistema operativo di rete è il cervello della rete. Esso ha compiti complessi da eseguire mentre provvede al controllo di molte attività simultanee. Questa ragione fa si che un sistema operativo di rete con 20 o più PC richiede un sistema operativo multi-tasking come UNIX o Windows NT e, nel caso di NetWare, OS e NOS combinati. Meno di 10 PC collegati possono funzionare con un NOS semplificato che ha meno caratteristiche, ma è anche meno costoso e più facile da impostare e far funzionare. Questo è di solito un NOS peer-to-peer, può fare da server o client ad uno qualunque degli altri PC collegati nella rete. Infine, i server di LAN server based possono essere collegati insieme tra loro come una rete peer-to-peer. Named Pipes e NetBios sono modalità standard di comunicare dati da un PC all'altro in una rete in modi più o meno complicati. Per API s'intendono strumenti software che aiutano a rendere coerente il lavoro di programmazione. Per le funzioni di rete a livello di un gruppo di lavoro, quali stampa e condivisione di archivi, una rete peer-to-peer è un'alternativa ragionevole ai più complessi sistemi server based. In ogni caso, se è necessario collegare la LAN del gruppo di lavoro in una rete geografica aziendale, è probabilmente meglio investire in una rete server based.

Proposta di lavoro N° 1 Progettare un file server “per poveri”. LAN.C /* Il server controlla sequenzialmente lo stato di ogni porta del sistema. Un client richiede di ricevere un file inviando una "r" , oppure richiede di spedire un file inviando una "s". Quando è inoltrata una richiesta, il server asserve la richiesta, poi ritorna a controllare lo stato delle porte in attesa di un'altra richiesta. Per usare la LAN si deve eseguire LAN.EXE sul server, poi si dovranno copiare PUT.EXE e GET.EXE in ogni client. Per prendere un file dal server si dovrà usare GET, mentre per memorizzare un proprio file sul server (così da renderlo disponibile agli altri PC in rete) si dovrà usare PUT. */ #include <dos.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <ctype.h> #define PORT 0

Page 53: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 53

void send_file(int port),rec_file(int port); void get_file_name(char *f, int port); void wait(int port), sport(int port, char c); void port_init(int port, unsigned char code); int rport(int port), check_stat(int port); long filesize(FILE *fp); int main(void) { clrscr(); printf("\n\n File server in funzione !!!!\n"); printf("Per smettere, premere un tasto.\n\n"); port_init(PORT, 231); do { /* Attende fino a che non riceve una richiesta. */ if(check_stat(PORT)&256) { switch(rport(PORT)) { case 's': send_file(PORT); printf("\nFatto. File server in attesa...\n\n"); break; case 'r': rec_file(PORT); printf("\nFatto. File server in attesa...\n\n"); break; } } / In questo caso il server opera con un solo client, ma è possibile aggiunge ulteriori stazioni di lavoro mediante il controllo di più porte, nel modo qui riportato. if(check_stat(PORT1)&256) { switch(rport(PORT1)) { case 's': send_file(PORT1); printf("\nFatto. File server in attesa...\n\n");break; case 'r': rec_file(PORT1); printf("\nFatto. File server in attesa...\n\n");break; } } ……………………… if(check_stat(PORTn)&256) { switch(rport(PORTn)) { case 's': send_file(PORTn); printf("\nFatto. File server in attesa...\n\n");break; case 'r': rec_file(PORTn); printf("\nFatto. File server in attesa...\n\n");break; } } ********************************/ } while(!kbhit());return (0); } /* send_file () e rec_file () hanno come argomento il numero di porta con la quale devono comunicare: è necessario in quanto il server dev'essere in grado di lavorare con differenti porte. Inoltre le routine devono inviare il messaggio di dato ricevuto per segnalare di aver ricevuto il codice di richiesta. */ void send_file(int port) { FILE *fp;char ch,fname[128];int i; union { char c[sizeof(long)]; long count; } cnt; sport(port, '.');get_file_name(fname, port); if(!(fp=fopen(fname, "rb"))) { printf("Non posso caricare il file specificato.\n");exit(1);} cnt.count = filesize(fp);printf("Trasmissione di %s\n", fname); printf("Dimensione del file: %ld\n", cnt.count); for(i=0; i<sizeof(long); i++) {sport(port, cnt.c[i]);wait(port);} i = 0;do { ch = getc(fp); if(ferror(fp)) { printf("Si e' verificato un errore di lettura del file.");break;} if(!feof(fp)) { sport(port, ch);wait(port);} i++; if(i==1024) { printf(".");i = 0;} } while(!feof(fp));fclose(fp); } void rec_file(int port)

Page 54: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 54

{ FILE *fp;char ch;char fname[14];unsigned i; union { char c[sizeof(long)]; long count; } cnt; sport(port, '.');get_file_name(fname, port); printf("Ricezione del file %s\n", fname); if(!(fp=fopen(fname, "wb"))) { printf("Non posso salvare il file.\n");exit(1);} for(i=0; i<sizeof(long); i++) { cnt.c[i] = rport(port);sport(port, '.');} printf("Dimensione del file: %ld\n", cnt.count); for(i=0; cnt.count; cnt.count--) { ch = rport(port);putc(ch, fp); if(ferror(fp)) { printf("Si e' verificato un errore di scrittura del file.");exit(1);} sport(port, '.');i++; if(i==1024) {printf(".");i = 0;} } fclose(fp); } long filesize(FILE *fp) { unsigned i;fseek(fp, 0, SEEK_END);i = ftell(fp);rewind(fp);return i;} void get_file_name(char *f, int port) { while(rport(port) != '?') ;sport(port, '.'); while((*f=rport(port))) { if(*f != '?') {f++;sport(port, '.');} } sport(port, '.'); } void wait(int port) { if(rport(port) != '.') { printf("Si e' verificato un errore di comunicazione.\n");exit(1);} } void sport(int port,char c) { union REGS r;r.x.dx = port;r.h.al = c;r.h.ah = 1;int86(0x14, &r, &r); if(r.h.ah & 128) { printf("Si e' verificato un errore di trasmissione sulla seriale."); exit(1);} } rport(int port) { union REGS r; while(!(check_stat(port)&256)) if(kbhit()) {getch();exit(1);} r.x.dx = port;r.h.ah = 2;int86(0x14, &r, &r); if(r.h.ah & 128) printf("Si e' verificato un errore di lettura sulla porta seriale."); return r.h.al; } check_stat(int port) {union REGS r;r.x.dx = port;r.h.ah = 3;int86(0x14, &r, &r);return r.x.ax;} void port_init(int port, unsigned char code) {union REGS r;r.x.dx = port;r.h.ah = 0;r.h.al = code;int86(0x14, &r, &r);} / MIGLIORAMENTI: Permettere la richiesta della lista dei file disponibili sul server. A questo scopo può essere aggiunto il comando "d" (directory) al loop principale che dovrà effettuare l'invio dell'elenco creato con DIR proprio come se si trattasse di un file. Permettere la gestione della posta elettronica. */ GET.C #include <dos.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <ctype.h> #define PORT 0 void rec_file(char *fname); void send_file_name(char *f), get_file_name(char *f); void wait(int port), sport(int port, char c); void port_init(int port, unsigned char code); int rport(int port), check_stat(int port); long filesize(FILE *fp); int main(int argc, char *argv[]) { clrscr(); if(argc!=2) {

Page 55: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 55

printf(" \n\n\nDigitare: get <nomefile>\n" "dove nomefile indica il file che dev'essere scaricato dal server"); exit(1); } port_init(PORT, 231); rec_file(argv[1]);return(0); } /* rec_file () invia il nome del file al server, le porte sono codificate nelle routine e non passate come argomento come nel server */ void rec_file(char *fname) { FILE *fp;char ch;int i; union { char c[sizeof(long)]; long count; } cnt; printf("Ricezione del file %s\n", fname); if(!(fp=fopen(fname, "wb"))) { printf("Non posso salvare il file.\n");exit(1);} sport(PORT, 's');wait(PORT);send_file_name(fname); for(i=0; i<sizeof(long); i++) {cnt.c[i] = rport(PORT);sport(PORT, '.');} printf("Dimensione del file: %ld\n", cnt.count); for(i=0; cnt.count; cnt.count--) { ch = rport(PORT);putc(ch, fp); if(ferror(fp)) { printf("Si e' verificato un errore di scrittura del file.");exit(1);} sport(PORT, '.');i++;if(i==1024) { printf(".");i = 0;} } fclose(fp); } void send_file_name(char *f) { do {sport(PORT, '?');} while(!kbhit() && !(check_stat(PORT)&256)); if(kbhit()) {getch();exit(1);} wait(PORT); while(*f) {sport(PORT, *f++);wait(PORT);} sport(PORT, '\0');wait(PORT); } void wait(int port) { if(rport(port) != '.') { printf("Si e' verificato un errore di comunicazione.\n");exit(1);} } void sport(int port,char c) { union REGS r;r.x.dx = port;r.h.al = c;r.h.ah = 1;int86(0x14, &r, &r); if(r.h.ah & 128) { printf("Si e' verificato un errore di trasmissione sulla seriale."); exit(1); } } rport(int port) { union REGS r;while(!(check_stat(port)&256)) if(kbhit()) {getch();exit(1);} r.x.dx = port;r.h.ah = 2;int86(0x14, &r, &r); if(r.h.ah & 128) printf("Si e' verificato un errore di lettura sulla porta seriale."); return r.h.al; } check_stat(int port) {union REGS r;r.x.dx = port;r.h.ah = 3;int86(0x14, &r, &r);return r.x.ax;} void port_init(int port, unsigned char code) {union REGS r;r.x.dx = port;r.h.ah = 0;r.h.al = code;int86(0x14, &r, &r);} PUT.C #include <dos.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <ctype.h> #define PORT 0 void send_file(char *fname),send_file_name(char *f); void wait(int port), sport(int port, char c);

Page 56: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 56

void port_init(int port, unsigned char code); int rport(int port), check_stat(int port); long filesize(FILE *fp); main(int argc, char *argv[]) { clrscr(); if(argc!=2) { printf("\n\n\nDigitare: put <nomefile> \n" "dove nomefile indica il file che dev'essere caricato sul server."); exit(1);} port_init(PORT, 231);send_file(argv[1]);return 0; } void send_file(char *fname) { FILE *fp;char ch;int i; union { char c[sizeof(long)]; long count; } cnt; if(!(fp=fopen(fname,"rb"))) { printf("Non posso caricare il file specificato.\n");exit(1);} printf("Trasmissione di %s.\n", fname); sport(PORT, 'r');wait(PORT);send_file_name(fname); cnt.count = filesize(fp);printf("Dimensione del file: %ld\n", cnt.count); for(i=0; i<sizeof(long); i++) { sport(PORT, cnt.c[i]);wait(PORT);} i = 0;do { ch = getc(fp); if(ferror(fp)) { printf("Si e' verificato un errore di lettura del file.");break;} if(!feof(fp)) {sport(PORT, ch);wait(PORT);} i++; if(i==1024) {printf(".");i = 0;} } while(!feof(fp));fclose(fp); } void send_file_name(char *f) { do {sport(PORT, '?');} while(!kbhit() && !(check_stat(PORT)&256)); if(kbhit()) {getch();exit(1);} wait(PORT);while(*f) {sport(PORT, *f++);wait(PORT);} sport(PORT, '\0');wait(PORT); } long filesize(FILE *fp) { unsigned i;fseek(fp, 0, SEEK_END);i = ftell(fp);rewind(fp);return i;} void wait(int port) { if(rport(port) != '.') { printf("Si e' verificato un errore di comunicazione.\n");exit(1);} } void sport(int port,char c) { union REGS r;r.x.dx = port;r.h.al = c;r.h.ah = 1;int86(0x14, &r, &r); if(r.h.ah & 128) { printf("Si e' verificato un errore di trasmissione sulla seriale."); exit(1);} } rport(int port) { union REGS r;while(!(check_stat(port)&256)) if(kbhit()) {getch();exit(1);} r.x.dx = port;r.h.ah = 2;int86(0x14, &r, &r); if(r.h.ah & 128) printf("Si e' verificato un errore di lettura sulla porta seriale."); return r.h.al; } check_stat(int port) {union REGS r;r.x.dx = port;r.h.ah = 3;int86(0x14, &r, &r);return r.x.ax;} void port_init(int port, unsigned char code) {union REGS r;r.x.dx = port;r.h.ah = 0;r.h.al = code;int86(0x14, &r, &r);}

Page 57: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 57

Proposta di lavoro N° 2 NETBIOS.H typedef unsigned char byte; typedef unsigned int word; typedef struct { byte NCB_COMMAND; /* command */ byte NCB_RETCODE; /* function return code */ byte NCB_LSN; /* local session number */ byte NCB_NUM; /* number of network name */ word NCB_BUFFER_OFFSET; /* offset of message buffer */ word NCB_BUFFER_SEGMENT; /* segment of message buffer */ word NCB_LENGTH; /* length of message buffer */ byte NCB_CALLNAME[16]; /* name of session user is talking to */ byte NCB_NAME[16]; /* user's network name */ byte NCB_RTO; /* receive time-out in 500 ms. incrs. */ byte NCB_STO; /* send time-out - 500 ms. increments */ word NCB_POST_OFFSET; /* offset of "no-wait" interrupt call */ word NCB_POST_SEGMENT; /* segment of "no-wait" interrupt */ byte NCB_LANA_NUM; /* adapter number (must be 0 or 1) */ byte NCB_CMD_CPLT; /* command completion status */ byte NCB_RESERVE[14]; /* Reserved area for Token-Ring */ } NCB; /* NetBIOS error return codes - returned in NCB_RETCODE */ #define ERR_success 0 /* NetBIOS command completed normally */ #define ERR_bad_buffer_length 1 /* Bad send or status buffer size */ #define ERR_invalid 3 /* invalid NetBIOS command */ #define ERR_timeout 5 /* Command time-out has expired */ #define ERR_buffer_too_small 6 /* Receive buffer not big enough */ #define ERR_bad_session_num 8 /* Bad value in NCB_LSN */ #define ERR_no_RAM 9 /* LAN card doesn't have enough memory*/ #define ERR_session_closed 0xa /* This session is closed */ #define ERR_cancel 0xb /* Command has been closed */ #define ERR_dup_local_name 0xd /* Name already exists for this PC */ #define ERR_name_table_full 0xe /* Local name table is full */ #define ERR_active_session 0xf /* Can't delete name - used in session*/ #define ERR_sess_table_full 0x11 /* Local session table is full */ #define ERR_no_listen 0x12 /* Remote PC not listening for call */ #define ERR_bad_name_num 0x13 /* Bad value in NCB_NUM field */ #define ERR_no_answer 0x14 /* No answer to CALL or no such remote*/ #define ERR_no_local_name 0x15 /* No such name in local name table */ #define ERR_duplicate_name 0x16 /* Name is in use elsewhere on net */ #define ERR_bad_delete 0x17 /* Name incorrectly deleted */ #define ERR_abnormal_end 0x18 /* Session aborted abnormally */ #define ERR_name_error 0x19 /* 2 or more identical names in use! */ #define ERR_bad_packet 0x1a /* Bad NetBIOS packet on network */ #define ERR_card_busy 0x21 /* network card is busy */ #define ERR_too_many_cmds 0x22 /* Too many NetBIOS commands queued */ #define ERR_bad_card_num 0x23 /* bad NCB_LANA_NUM - must be 0 or 1 */ #define ERR_cancel_done 0x24 /* command finished while cancelling */ #define ERR_no_cancel 0x26 /* Command can't be cancelled */ #define ERR_busy 0xff /* Still processing command */ /* NetBIOS functions list - "WAIT" calls wait until command completes */ /* while the others jump to the routine in NCB_POST when the NetBIOS */ /* command completes and does an interrupt. */ #define RESET 0x32 /* Reset adapter card and tables */ #define CANCEL 0x35 /* Cancel command. NCB_BUFFER = cmd. */ #define STATUS 0xb3 /* status information for adapter */ #define STATUS_WAIT 0x33

Page 58: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 58

#define TRACE 0xf9 /* Token-Ring protocol trace */ #define TRACE_WAIT 0x79 #define UNLINK 0x70 /* unlink from IBM Remote Program */ #define ADD_NAME 0xb0 /* Add name to name table */ #define ADD_NAME_WAIT 0x30 #define ADD_GROUP_NAME 0xb6 /* Add group name to name table */ #define ADD_GROUP_NAME_WAIT 0x36 #define DELETE_NAME 0xb1 /* Delete name from name table */ #define DELETE_NAME_WAIT 0x31 #define CALL 0x90 /* Start session with NCB_NAME name */ #define CALL_WAIT 0x10 #define LISTEN 0x91 /* Listen for call */ #define LISTEN_WAIT 0x11 #define HANG_UP 0x92 /* End session with NCB_NAME name */ #define HANG_UP_WAIT 0x12 #define SEND 0x94 /* Send data via NCB_LSN */ #define SEND_WAIT 0x14 #define SEND_NO_ACK 0xf1 /* Send data without waiting for ACK */ #define SEND_NO_ACK_WAIT 0x71 #define CHAIN_SEND 0x97 /* Send multiple data buffers */ #define CHAIN_SEND_WAIT 0x17 #define CHAIN_SEND_NO_ACK 0xf2 /* Send multiple buffers without ACK */ #define CHAIN_SEND_NO_ACK_WAIT 0x72 #define RECEIVE 0x95 /* Receive data from a session */ #define RECEIVE_WAIT 0x15 #define RECEIVE_ANY 0x96 /* Receive data from any session */ #define RECEIVE_ANY_WAIT 0x16 #define SESSION_STATUS 0xb4 /* status of all sessions for name */ #define SESSION_STATUS_WAIT 0x34 #define SEND_DATAGRAM 0xa0 /* send un-ACKed message */ #define SEND_DATAGRAM_WAIT 0x20 #define SEND_BCST_DATAGRAM 0xa2 /* send broadcast message */ #define SEND_BCST_DATAGRAM_WAIT 0x22 #define RECEIVE_DATAGRAM 0xa1 /* receive un-ACKed message */ #define RECEIVE_DATAGRAM_WAIT 0x21 #define RECEIVE_BCST_DATAGRAM 0xa3 /* receive broadcast message */ #define RECEIVE_BCST_DATAGRAM_WAIT 0x23� /* NBRCV.C - sample program - receives NetBIOS broadcast. - */ /* General calling sequence for NetBIOS calls: */ /* 1. Set up NCB (Network Control Block) */ /* 2. Make ES:BX point to NCB structure */ /* 3. Load AX with 100h */ /* 4. Generate an INT 5Ch */ # include <dos.h> # include <stdio.h> # include "netbios.h" # include <stdlib.h> # include <string.h> main() { NCB far *rcv_block; char far * rcv_message; char far * session_name; unsigned char ret_code, net_num, iflag; rcv_block = (NCB far *) malloc(sizeof(NCB)); rcv_message = (char far *) malloc(80); session_name = (char far *) malloc(16); _AH = 0; geninterrupt(0x2a); /* Check to see if NetBIOS is loaded */ iflag = _AH; if (!iflag) {

Page 59: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 59

puts(" *** ERROR - NetBIOS not installed. ***"); return; } printf("Enter session name: "); gets(session_name); puts("generating network name..."); rcv_block -> NCB_COMMAND = ADD_NAME_WAIT; /* Use default time-out values */ rcv_block -> NCB_LANA_NUM = 0; rcv_block -> NCB_STO = 0; rcv_block -> NCB_RTO = 0; strncpy(rcv_block -> NCB_NAME, session_name, 16); /* Copy name to NCB */ strncpy(rcv_block -> NCB_CALLNAME, "*", 16); /* Check all names on net */ _ES = FP_SEG(rcv_block); _BX = FP_OFF(rcv_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; net_num = rcv_block -> NCB_NUM; if (ret_code) { printf("Bad return code = %02Xh\n", ret_code); return; } printf("Session established. Name number = %02Xh\n", net_num); puts("Waiting for broadcast message..."); rcv_block -> NCB_RTO = 0; rcv_block -> NCB_BUFFER_OFFSET = FP_OFF(rcv_message); rcv_block -> NCB_BUFFER_SEGMENT = FP_SEG(rcv_message); rcv_block -> NCB_LENGTH = 80; rcv_block -> NCB_COMMAND = RECEIVE_BCST_DATAGRAM_WAIT; /* Wait until rcvd. */ _ES = FP_SEG(rcv_block); _BX = FP_OFF(rcv_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; pokeb(FP_SEG(rcv_message), FP_OFF(rcv_message) + rcv_block -> NCB_LENGTH, 0); if (ret_code) printf("Error number = %02Xh\n", ret_code); else { printf("%c*** %Fs\n", 7, rcv_message); printf("From: %Fs\n", rcv_block -> NCB_CALLNAME); } printf("Releasing session >>>%Fs<<<, number %02Xh\n", rcv_block -> NCB_NAME, net_num); rcv_block -> NCB_NUM = net_num; rcv_block -> NCB_COMMAND = DELETE_NAME_WAIT; /* Schedule name for removal */ _ES = FP_SEG(rcv_block); _BX = FP_OFF(rcv_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh.\n", ret_code); else puts("Completed normally."); } /* NBSEND.C - test of NetBIOS- broadcasts a message */ /* General calling sequence for NetBIOS calls: */ /* 1. Set up NCB (Network Control Block) */ /* 2. Make ES:BX point to NCB structure */

Page 60: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 60

/* 3. Load AX with 100h */ /* 4. Generate an INT 5Ch */ # include <dos.h> # include <stdio.h> # include "netbios.h" # include <stdlib.h> # include <string.h> main() { NCB far * send_block; char far * send_message; char far * session_name; unsigned char ret_code, net_num, iflag; send_block = (NCB far *) malloc(sizeof(NCB)); send_message = (char far *) malloc(80); session_name = (char far *) malloc(16); _AH = 0; geninterrupt(0x2a); /* Check to see if NetBIOS is loaded */ iflag = _AH; if (!iflag) { puts(" *** ERROR - NetBIOS not installed. ***"); return; } printf("Enter session name: "); gets(session_name); printf("Enter message: "); gets(send_message); puts("generating network name..."); send_block -> NCB_COMMAND = ADD_NAME_WAIT; /* Use default time-out values */ send_block -> NCB_LANA_NUM = 0; send_block -> NCB_STO = 0; send_block -> NCB_RTO = 0; strncpy(send_block -> NCB_NAME, session_name, 16); /* Copy name to NCB */ strncpy(send_block -> NCB_CALLNAME, "*", 16); /* Check all names on net */ _ES = FP_SEG(send_block); _BX = FP_OFF(send_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; net_num = send_block -> NCB_NUM; if (ret_code) { printf("Bad return code = %02Xh\n", ret_code); return; } printf("Session established. Name number = %02Xh\n", net_num); puts("Broadcasting message..."); send_block -> NCB_STO = 0; send_block -> NCB_BUFFER_OFFSET = FP_OFF(send_message); send_block -> NCB_BUFFER_SEGMENT = FP_SEG(send_message); send_block -> NCB_LENGTH = strlen(send_message); send_block -> NCB_COMMAND = SEND_BCST_DATAGRAM_WAIT; /* Wait for completion */ _ES = FP_SEG(send_block); _BX = FP_OFF(send_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh.\n", ret_code); else puts("Message broadcast successfully"); printf("Releasing session >>>%Fs<<<, number %02Xh\n",

Page 61: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 61

send_block -> NCB_NAME, net_num); send_block -> NCB_NUM = net_num; send_block -> NCB_COMMAND = DELETE_NAME_WAIT; /* Schedule name for removal */ _ES = FP_SEG(send_block); _BX = FP_OFF(send_block); _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh.\n", ret_code); else puts("Completed normally."); } /* NBRCV2.C - sample program - receives NetBIOS datagram. - */ /* General calling sequence for NetBIOS calls: */ /* 1. Set up NCB (Network Control Block) */ /* 2. Make ES:BX point to NCB structure */ /* 3. Load AX with 100h */ /* 4. Generate an INT 5Ch */ # include <dos.h> # include <stdio.h> # include "netbios.h" # include <stdlib.h> # include <string.h> main() { NCB * rcv_block; char * rcv_message; char * session; char * sender; unsigned char ret_code, net_num, iflag; rcv_block = (NCB *) malloc(sizeof(NCB)); rcv_message = (char *) malloc(80); session = (char *) malloc(16); sender = (char *) malloc(16); _AH = 0; geninterrupt(0x2a); /* Check to see if NetBIOS is loaded */ iflag = _AH; if (!iflag) { puts(" *** ERROR - NetBIOS not installed. ***"); return; } printf("Enter network name: "); gets(session); printf("Enter sender's name: "); gets(sender); puts("Generating network name..."); rcv_block -> NCB_COMMAND = ADD_NAME_WAIT; rcv_block -> NCB_LANA_NUM = 0; rcv_block -> NCB_STO = 0; rcv_block -> NCB_RTO = 0; strncpy(rcv_block -> NCB_NAME, session, 16); strncpy(rcv_block -> NCB_CALLNAME, "*", 16); _ES = _DS; _BX = rcv_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; net_num = rcv_block -> NCB_NUM; if (ret_code) {

Page 62: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 62

printf("Bad return code = %02Xh\n", ret_code); return; } printf("Session established. Name number = %02Xh\n", net_num); puts("Waiting for datagram..."); rcv_block -> NCB_RTO = 0; strncpy(rcv_block -> NCB_CALLNAME, sender, 16); rcv_block -> NCB_BUFFER_OFFSET = rcv_message; rcv_block -> NCB_BUFFER_SEGMENT = _DS; rcv_block -> NCB_LENGTH = 80; rcv_block -> NCB_COMMAND = RECEIVE_DATAGRAM_WAIT; _ES = _DS; _BX = rcv_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; pokeb(_DS, rcv_message + rcv_block -> NCB_LENGTH, 0); /* end buffer with 0 */ if (ret_code) printf("Error number = %02Xh\n", ret_code); else { printf("%c*** %s\n", 7, rcv_message); printf("From: %s\n", rcv_block -> NCB_CALLNAME); } printf("Releasing session >>>%s<<<, number %02Xh\n", rcv_block -> NCB_NAME, net_num); rcv_block -> NCB_NUM = net_num; rcv_block -> NCB_COMMAND = DELETE_NAME_WAIT; _ES = _DS; _BX = rcv_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh.\n", ret_code); else puts("Completed normally."); } /* NBSEND2.C - test of NetBIOS- sends a datagram */ /* General calling sequence for NetBIOS calls: */ /* 1. Set up NCB (Network Control Block) */ /* 2. Make ES:BX point to NCB structure */ /* 3. Load AX with 100h */ /* 4. Generate an INT 5Ch */ # include <dos.h> # include <stdio.h> # include "b:\netbios\netbios.h" # include <stdlib.h> # include <string.h> main() { NCB * send_block; char * send_message; char * session; char * rcvr; unsigned char ret_code, net_num, iflag; send_block = (NCB *) malloc(sizeof(NCB)); send_message = (char *) malloc(80); session = (char *) malloc(16); rcvr = (char *) malloc(16); _AH = 0; geninterrupt(0x2a); /* Check to see if NetBIOS is loaded */ iflag = _AH; if (!iflag)

Page 63: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 63

{ puts(" *** ERROR - NetBIOS not installed. ***"); return; } printf("Enter session name: "); gets(session); printf("Enter receiver's name: "); gets(rcvr); printf("Enter message: "); gets(send_message); puts("generating network name..."); send_block -> NCB_COMMAND = ADD_NAME_WAIT; send_block -> NCB_LANA_NUM = 0; send_block -> NCB_STO = 0; send_block -> NCB_RTO = 0; strncpy(send_block -> NCB_NAME, session, 16); strncpy(send_block -> NCB_CALLNAME, "*", 16); _ES = _DS; _BX = send_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; net_num = send_block -> NCB_NUM; if (ret_code) { printf("Bad return code = %02Xh\n", ret_code); return; } printf("Session established. Name number = %02Xh\n", net_num); puts("Sending datagram..."); send_block -> NCB_STO = 0; send_block -> NCB_BUFFER_OFFSET = send_message; send_block -> NCB_BUFFER_SEGMENT = _DS; send_block -> NCB_LENGTH = strlen(send_message); strncpy(send_block -> NCB_CALLNAME, rcvr, 16); send_block -> NCB_COMMAND = SEND_DATAGRAM_WAIT; _ES = _DS; _BX = send_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh\n", ret_code); else puts("Datagram sent successfully."); printf("Releasing session >>>%s<<<, name number %02Xh\n", send_block -> NCB_NAME, net_num); send_block -> NCB_NUM = net_num; send_block -> NCB_COMMAND = DELETE_NAME_WAIT; _ES = _DS; _BX = send_block; _AX = 0x100; geninterrupt(0x5c); ret_code = _AL; if (ret_code) printf("Error number = %02Xh.\n", ret_code); else puts("Completed normally."); }

Page 64: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 64

Proposta di lavoro N° 3 Progettare una chatline. #include <bios.h> #include <dos.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define PORT 1 #define ALT 0x08 void chatline(void); void trasmissione(int porta, char car); int ricezione(int porta); int check_stat(int porta); void visualizza_t(int car); void visualizza_r(int car); union REGS reg; int main (void) { int c, car; int esci = 0, key = 0; reg.h.ah = 0; reg.h.al = 0xE7; reg.x.dx = PORT; int86 (0x14, &reg, &reg); clrscr (); chatline (); do{ if (kbhit ()) { c = bioskey (0); key = bioskey (2); if (key) { if ((c & 255) != 27) { if ((c & 255) >= 32 || (c & 255) == 13 || (c & 255) == 8) { c = c & 255; visualizza_t (c); if ((check_stat(PORT) & 256) == 256) { car = ricezione (PORT); if (car != 0) visualizza_r (car); } else trasmissione (PORT, c); } else { if (key & ALT) { if (c == 5888) printf (""); else

Page 65: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 65

{ if (c == 8448) printf (""); } } } } else esci = 1; } } if ((check_stat(PORT)&256) == 256) { car = ricezione (PORT); if (car != 0x00) visualizza_r (car); } } while (esci != 1); return(0); } void trasmissione (int porta, char car) { reg.h.ah = 0x01; reg.h.al = car; reg.x.dx = porta; int86 (0x14, &reg, &reg); while ((check_stat(porta)&16384)!=16384); } ricezione (int porta) { reg.x.dx = porta; reg.h.ah = 2; int86 (0x14, &reg, &reg); if (reg.h.ah & 128) return 0; else return reg.h.al; } check_stat (int porta) { reg.x.dx = porta; reg.h.ah = 3; int86 (0x14, &reg, &reg); return reg.x.ax; } void chatline () { int i; gotoxy (1,1); printf ("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ TRASMISSIONE ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"); for (i = 0; i < 10; i++) { gotoxy (1,2+i); printf ("º º"); } gotoxy (1,12); printf ("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ RICEZIONE ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"); for (i = 0; i < 10; i++) { gotoxy (1,13+i);

Page 66: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 66

printf ("º º"); } gotoxy (1,23); printf ("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"); } void visualizza_t (int car) { static int xt = 1, yt = 1; window (2,2,79,11); if (xt == 78) { switch (car) { case 13 : xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; case 8 : xt--; gotoxy (xt,yt); printf (" "); break; default : gotoxy (xt,yt); printf ("%c",car); xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; } } else { switch (car) { case 13 : xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; case 8 : if (xt != 0) { xt--; gotoxy (xt,yt); printf (" "); } else if (yt != 1) { yt--; xt = 78;

Page 67: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 67

gotoxy (xt,yt); printf (" "); } break; default : gotoxy (xt,yt); printf ("%c",car); xt++; break; } } } void visualizza_r (int car) { static int xt = 1, yt = 1; window (2,13,79,22); if (xt == 78) { switch (car) { case 13 : xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; case 8 : xt--; gotoxy (xt,yt); printf (" "); break; default : gotoxy (xt,yt); printf ("%c",car); xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; } } else { switch (car) { case 13 : xt = 1; if (yt == 10) { clrscr (); yt = 1; } else yt++; break; case 8 : if (xt != 1) { xt--; gotoxy (xt,yt); printf (" ");

Page 68: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 68

} else if (yt != 0) { yt--; xt = 78; gotoxy (xt,yt); printf (" "); } break; default : gotoxy (xt,yt); printf ("%c",car); xt++; break; } } }

Page 69: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 69

SERVIZI DI RETE INTRODUZIONE Ci sono due modi di guardare al funzionamento delle LAN: dal punto di vista dell'utente o da quello dell'amministrazione della rete. In questo capitolo, prenderemo in esame alcuni dei tipici servizi necessari all'utente, ad esempio condivisione, memorizzazione e reperimento dati, software e comunicazioni. STAMPA IN RETE Anche se la maggior parte degli utenti desidera una piccola stampante personale per produrre copie di lavoro, una stampante di rete con prestazioni più levate può essere necessaria in una delle seguenti prestazioni. 1. Velocità: i documenti molto lunghi o le copie multiple possono rivelarsi un fastidio per

il client PC dato che gli utenti possono non essere in grado di utilizzare il computer mentre sta stampando; se è necessario avere in fretta un rapporto di 100 pagine, una stampante locale da 2 pagine al minuto ci metterà 50 minuti, mentre una stampante di rete ad otto pagine al minuto ne impiegherà soltanto 12.

2. Gestione della carta: tenere un grosso quantitativo di carta presso ciascun PC e le continue operazioni di caricamento sulla stampante sono inconvenienti che, possono essere eliminati con l'impiego di un’unica stampante ad alte prestazioni; le stampanti di rete sono disponibili anche con cassetti di alimentazione della carta multipli, il che permette di avere contemporaneamente tipi di carta diversi (ad esempio comune, intestata o moduli particolari) per soddisfare le diverse esigenze di output.

3. Style: un'ampia gamma di stili e corpi di caratteri non è detto che sia disponibile sulla stampante locale dell'utente PC; la stampante di rete, invece, può essere in grado di gestire anche tutte le esigenze di output specifiche delle applicazioni DTP (Desk Top Publishing).

4. Colore: l'output a colori di qualità elevata per rapporti o trasparenze per lavagne luminose è disponibile ma è anche costoso: una postazione centrale consente di ottimizzare questo costo e assicurare anche un utilizzo efficiente del materiale di consumo, inchiostri, trasparenze e altri accessori speciali.

Ci sono tre modi principali di condividere una stampante ad alte prestazioni in una rete. 1. Direttamente al file server: è questo un modo che consente l'utilizzo efficiente della

stampante dato che il server può gestire tutte le richieste di stampa provenienti dai vari utenti della LAN; ciascun documento che deve essere stampato è accettato immediatamente dal server e messo in memoria in modo da liberare il PC client ed evitare che l'utente debba attendere il termine della stampa per riprendere il suo lavoro; il server è in grado di memorizzare tutte le richieste di stampa ad una velocità molto superiore a quella che la stampante può evaderle; il server invia poi i documenti alla stampante uno per volta, alla velocità di stampa dalla stampante stessa; questo processo è chiamato print spooling.

2. A PC client: questa soluzione mette la stampante più vicina al gruppo di utenti che la condividono ma richiede l'installazione di spooling software sul PC client; questo PC è chiamato server di stampa non dedicato dato che l'utente può continuare ad utilizzare il computer per scopi diversi dalla stampa. In ogni caso, il software necessario allo spooling può degradare le prestazioni del PC client.

3. Direttamente al cavo LAN: ciò è fatto utilizzando un'interfaccia della stampante simile alla scheda NIC di un PC; le stampanti progettate come stampanti di rete offrono una scelta di collegamenti media ma un costo addizionale. Questa soluzione è di solito scelta quando si vuole collocare la stampante condivisa vicino agli utenti senza

Page 70: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 70

rallentare le prestazioni dei loro PC. Il collegamento diretto ad un file server può avere alcune limitazioni, in particolare se è tenuto chiuso, anche ciò può avvenire intenzionalmente come vedremo più avanti nel capitolo dedicato alla sicurezza. Il mercato delle stampanti condivise si sta muovendo nella direzione dei server di stampa, in altre parole di stampanti con incorporato il server. Tali stampanti sono in grado di gestire i compiti prima descritti e di dare un feedback di stato per la gestione delle risorse. MEMORIZZAZIONE E RECUPERO DEI DATI IN RETE Ci sono quattro categorie principali che descrivono come un utente può interagire con un server dati sulla rete; in ordine di potenziale crescente, esse sono il file server, il database condiviso, il database client/server e l’application server. 1. File server: questo è probabilmente il tipo di server più famigliare agli utenti di reti di

PC e, dal punto di vista delle stazioni di lavoro collegate in rete, si comporta come un hard disk remoto; la sua velocità è molto importante, dato che deve rispondere alle richieste di memorizzazione di dati, programmi e applicazioni provenienti da utenti multipli situati a lavorare con gli hard disk dei loro PC e quindi non disposti ad accettare rallentamenti delle prestazioni. I file server hanno tracciati di sicurezza per evitare che i dati non vadano alla postazione sbagliata e per evitare che due postazioni non violino le regole di accesso ai file accedendo ad un archivio al quale può accedere soltanto un utilizzatore alla volta. I server ad alte prestazioni sono basati su sistemi operativi multitasking piuttosto che sul sistema operativo MS-DOS per utenti singoli; le tre applicazioni file server su PC più diffuse (NetWare di Novell, Windows NT di Microsoft e Vine di Banyan) girano su piattaforme non DOS. I file server possono essere implementati su una rete peer-to-peer, ma la sicurezza e le prestazioni offerte da un PC condiviso sono limitate.

2. Database condiviso: è un mezzo per mettere le informazioni dell'azienda su un LAN server e consentirne la condivisione tra tutti coloro che ne hanno bisogno; gli utilizzatori possono consultare simultaneamente i dati in un file e possono essere in grado di aggiornarli; ciò non è vero con word processing o altri file che consentono l'accesso per scrittura ad un solo utente per volta, mentre gli altri utenti possono accedere soltanto in modalità di sola lettura. Dbase IV e RBase sono esempi di database condivisi; spesso sono chiamati database file server per evitare confusione con l'ultima categoria di cui ci occupiamo.

3. Database client/server: esso è relativamente nuovo per le PC LAN ed è molto più specializzato dei file server; i database server forniscono servizi di calcolo e data retrival per i PC e provvedono ad inviare i risultati delle elaborazioni. L'utilizzo di un database server per l'accesso dati su LAN è molto più efficiente dell'uso di un software standard sia per utente singolo, sia per utenti multipli; quando qualcuno interroga la banca dati su file server, l'intero file deve essere inoltrato attraverso la rete sino al client il quale provvede ad individuare ed estrarre l'informazione necessaria; in una rete client/server, il database server interpreta la richiesta del cliente, esamina i dati sul proprio disco ed invia soltanto le informazioni necessarie. Nel caso di applicazioni ad alto contenuto di elaborazione dati, l'investimento in un database server ad alte prestazioni e l'utilizzo di PC meno potenti come client può far risparmiare una fetta importante della spesa per l'hardware; in questo modo, inoltre, si evita di generare traffico di rete non necessario. Alcuni esempi di client/server database comprendono i prodotti SQL (Structured Query Language) di Oracle, SQL Server, Gupta che offrono potenza crescente in base a questo nuovo modello di elaborazione per gli utenti delle reti di PC.

4. Application server: è in grado di eseguire delle vere e proprie applicazioni, per questo richiede notevoli risorse di calcolo.

Page 71: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 71

Software LAN Non tutti i software funzionano in rete. I programmi scritti per hardware specifici (ad esempio una particolare unità disco) non è detto riescano ad accedere anche ai dispositivi in rete. Per fortuna, sempre di più le applicazioni sono scritte per funzionare in rete e si dividono in tre categorie: 1. Programmi network tolerant: sono quelli in grado di funzionare su una rete ma non di

sfruttarne i vantaggi; essi sono il livello più basso di applicazioni utilizzabili in rete; la maggior parte del software prodotto oggi è network tolerant e comprende applicazioni molto diffuse come spreadsheet e word processor.

2. Applicazioni network aware: sono in grado di riconoscere quando stanno funzionando in rete ed hanno codici speciali sia per sfruttare i vantaggi delle risorse della rete o per assicurarsi che l'esecuzione dell’applicazione in una LAN non causi problemi; ad esempio, un database network aware si assicura che due utenti non cerchino di modificare lo stesso record di dati contemporaneamente, consentendo però allo stesso tempo ad utenti differenti di cambiare contemporaneamente record differenti nello stesso file; un database network tolerant, invece, consente l'accesso per scrittura ad un solo utente alla volta.

3. Programmi network intrinsic: sono progettati fin dall'inizio per lavorare in rete; le applicazioni network intrinsic hanno senso solo quando sono collegate in rete e di solito non funzionano per niente senza una LAN; qui di seguito presentiamo alcuni esempi di programmi che ricadono in questa categoria e che sono progettati per aiutare i gruppi di lavoro a funzionare meglio come team e che sono quindi spesso chiamati come groupware.

Groupware Document revision tracking: quando un documento è inviato a diversi utenti per la revisione, alla fine può essere difficile sapere chi ha fatto quel commento; quest'applicazione è stata progettata per coordinare gli aggiornamenti multipli provenienti da persone diverse che lavorano su un archivio di testo; esso tiene traccia delle aggiunte e delle cancellature del testo e permette agli utenti di inserire commenti nel testo perché siano letti dagli altri. Conversation Management: un programma che permette di inviare ordinari messaggi chiamati note, ma che permette anche di definire il tipo di messaggio; questa tipologia può comprendere informazione, domanda, offerta, richiesta, promessa e ipotesi; le risposte ai messaggi sono in forma libera ma il coordinatore provvede a categorizzarle in base a messaggio precedente. Group scheduler: di solito comprendono un calendario condiviso che consente di vedere in modo flessibile la pianificazione giornaliera, settimanale e mensile; ci saranno schedulatori di riunioni e di risorse e possono anche comprendere una lista di cose da fare condivisa o un task manager; sono particolarmente utili per valutare il tempo e gli sforzi necessari a ciascun individuo per tenere le schedule di gruppo aggiornate. Project Manager: si tratta di network scheduler comprensivi di procedure di management e tecniche di gestione e di progetto per facilitare la pianificazione basata sui diversi compiti; tipicamente, si hanno a disposizione progetti, compiti e risorse ed è possibile guardare a ciascun livello di dettaglio individualmente o ad esempio dal punto di vista delle risorse assegnate ad un particolare compito; in modo simile allo scheduler, questi programmi dipendono dal fatto che gli utenti tengano o no aggiornata la loro condizione in modo che gli altri possono pianificare i cambiamenti di tempo o risorse se e quando necessari. Electronic Mail: questo è il groupware più diffuso ma la sua utilità ha grossi limiti se è rispetto al gruppo di lavoro o al dipartimento di una società; per grandi aziende ha più senso avere una soluzione WAN in quest'area.

Page 72: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 72

Communication Server I Communication Server permettono ai client su una LAN di condividere con altri sistemi i dispositivi di telecomunicazione. Modem, gateway e fax indirizzati ad altri sistemi possono essere molto complessi da impostare e da far funzionare; il vantaggio dell'approccio che chiamiamo communication server è quello che il problema richiede di essere risolto una sola volta per tutti gli utenti della LAN. Modem Server: concettualmente, un modem server è come un print server; gli utilizzatori condividono, il modem grazie ad un computer in rete che gestisce tutte le richieste di comunicazione delle postazioni; è necessario utilizzare un package di comunicazione progettato per lavorare in rete; tipicamente ciò richiede una speciale scheda d'interfaccia nel server chiamata server SCS (Synchronous Communication Server). Fax Gateway: è un computer con una scheda fax al quale gli utenti in rete accedono per inviare e ricevere messaggi fax; in teoria, un fax gateway è molto simile ad un modem gateway o ad un dispositivo di telecomunicazione; in ogni caso, schede fax e fax software devono essere progettati tenendo presente l'utilizzo in rete, in pratica come print server. Molti fax gateway funzionano come estensioni del software di posta elettronica: si batte un messaggio e si specifica una macchina fax come ricevitore; di solito, è necessario un software di rete speciale per utilizzare una scheda fax in questo modo e può anche essere necessario un computer separato per gestire la scheda fax per la rete. Mainframe gateway: l'utilizzo di LAN con mainframe gateway è un'applicazione molto diffusa; i mainframe gateway possono essere PC completi di hardware che li collega sia alla LAN, sia al computer mainframe; il gateway PC è l'unico nella LAN ad avere bisogno di dialogare con i protocolli del mainframe e ad essere connesso con il sistema più grande; esso provvede il servizio di traduzione dei protocolli LAN in protocolli mainframe e di collegamento della LAN al mainframe. Sommario Per far funzionare le applicazioni in un ambiente di rete è necessario considerare aree diverse di conflitto potenziale, quali la scelta e l'installazione di programmi per utenti multipli, e occorre accertarsi che gli archivi di dati non siano corrotti dalle operazioni in rete. La generazione corrente di applicazioni di rete si è chiaramente evoluta dalle applicazioni stand alone che hanno creato il mercato PC; man mano che il software si evolve per sfruttare meglio i vantaggi delle possibilità di collegamento in rete, vedremo sempre più spesso applicazioni in grado di attingere meglio alle risorse di un ambiente condiviso. Un esempio di questo fenomeno l'abbiamo visto nei server utilizzati nelle reti con tipologia client/server database, che dividono le operazioni tra un programma back-end che gira su un server e un programma front-end sulle stazioni di lavoro. Il software di solito è indietro di qualche anno rispetto all'hardware. Man mano che il software di rete recupera le capacità dell'hardware utilizzato nelle reti, possiamo aspettarci di vedere più applicazioni che si liberano dai vincoli dei modelli di calcolo tradizionali; ciò porterà ad un'ancor maggiore produttività nella rete a livello d'impresa e sarà necessario collocare la potenza di calcolo solo dove è necessaria.

Page 73: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 73

AMMINISTRAZIONE Di rete INTRODUZIONE Coloro che sono coinvolti nell'amministrazione e nella gestione, di una LAN hanno priorità e responsabilità diverse da quelle degli utenti. L'amministratore ha la responsabilità di tenere in funzione la LAN e di assicurare agli utenti la disponibilità del servizio a loro necessario. Per questo, i server, i client e le periferiche installate seguiranno le raccomandazioni degli amministratori. Il lavoro quotidiano dell'amministratore, in ogni caso, è la cosa più importante. Gli amministratori devono provvedere al backup dei dati, a mantenere il software ed a controllare la sicurezza complessiva dei dati. Backup dei dati i dati importanti devono disporre di un backup, in altre parole di una riserva. È più efficiente eseguire i backup dei dati centralmente anziché individualmente da ciascun utente. Anche se dischi rigidi e dischi ottici sono disponibili, il mezzo di backup più diffuso è rappresentato dai nastri magnetici. Il suo impiego è stato sperimentato per decenni su minicomputer e mainframe e adesso si è esteso alle LAN. Si tratta di un mezzo economico, facile da gestire, con una tecnologia semplice da capire. Occorre in ogni modo tenere presente che il nastro magnetico può perdere i dati nel tempo o incidentalmente (a causa di fenomeni fisici o magnetici). La maggior parte dei produttori certifica i propri nastri per almeno un anno di durata dei dati memorizzati ma, in ogni caso, alla fine dell'anno, l'azienda utilizzatrice deve preoccuparsi del backup dei backup. I dispositivi a nastro sono disponibili in una vasta gamma di tipologie adatte agli ambienti LAN. I vari formati dei nastri magnetici comprendono: cartucce, cassette, DAT (Digital Audio Tape) otto millimetri, cassette digitali in video e bobine a nove tracce. Software di backup Il software dei sistemi di backup è importante. Un altro fattore importante è la flessibilità di rispondere alle diverse necessità dell'amministrazione. Può essere importante eseguire il backup automaticamente in un dato momento del giorno. Possono essere necessari speciali metodi di selezione per specificare i set di dati sui quali eseguire il backup. Alcuni sistemi provvedono solo al backup di ciò che è stato cambiato durante il giorno, mentre altri eseguono il backup di tutto, archivio per archivio. Un backup è chiamato “image backup” quando è effettuata una copia completa di un disco rigido bit per bit, sia su nastro, sia su un altro disco. Cartucce a nastro Paragonato alla maggior parte degli hard disk, un nastro magnetico è più lento. Ciò significa che il backup di grandi LAN server può richiedere parecchie ore. Alcune cartucce hanno la capacità di soli 50 MByte di dati, rendendo necessario l'impiego di numerosi nastri per il backup del server. Inoltre, è necessario che qualcuno inserisca i nastri uno per volta, aggiungendo che il potenziale per errori umani ai costi in termini di manodopera e di materiali. I formati di riferimento comprendono, i nastri DC 1000 che hanno una capacità tipica di 50 MByte, i nastri DC 2000 con una capacità fino a 120 MByte e i nastri DC 6000 con capacità fino a 300 MByte. DAT Dal momento che le unità DAT memorizzano le informazioni come flusso digitale di bit, vanno bene per memorizzare musica quanto i dati di un server. I nastri DAT sono stati

Page 74: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 74

introdotti con una capacità di oltre 1 GigaByte e cominciano ad essere disponibili con capacità anche superiori. Due sono i formati correnti dei nastri DAT. Il primo, chiamato Data/DAT, è conosciuto per la sua capacità di lettura e scrittura random. il secondo, chiamato DDS (Digital Data Storage) permette invece letture random ma non scritture. La tecnologia DDS è la più matura ed è supportata da Sony, che insieme con Hewlett-Packard ha cosviluppato la tecnologia DAT in formato DDS. Cartucce di nastro da otto mm I nastri da otto mm sono utilizzati dai camcorder Sony dedicati al mercato dei consumatori. Il DAT, il nastro ad otto mm è in grado di memorizzare grandi quantità di dati. La maggior parte dei formati ad otto mm è in grado di memorizzare due GigaByte di dati su un singolo nastro da due ore (grande circa quanto un nastro DC 2000). I nastri da otto mm possono sostituire i nastri a nove tracce di mini e mainframe dato che i primi risultati del loro impiego per l'archiviazione indicano che le loro caratteristiche sono molto buone (l'informazione magnetica si degrada nel tempo molto lentamente). Nastro a nove tracce Il nastro a nove tracce da un pollice e mezzo è standard per svariati generi di computer. Nastri utilizzati su un grosso mainframe IBM o su un mini DEC VAX possono essere letti da unità collegate ad un PC grazie alla standardizzazione del formato di memorizzazione. Ciò può rappresentare la soluzione quando in un ambiente informatico è necessaria la trasportabilità tra piattaforme diverse. I nastri a nove tracce offrono inoltre prestazioni superiori nell'archiviazione, in quanto la densità dei dati è notevolmente inferiore di quella delle cartucce e delle cassette. D'altro canto, il loro caricamento richiede molta attenzione ed è facile danneggiarli. Jukeboxes Un modo di risolvere il problema della capacità limitata dei formati dei nastri di backup è quello di utilizzare più nastri. Un “tape jukeboxe” è formato da un'unica unità a nastro cartuccia con un caricatore della capacità di dieci cartucce DC 2000. Il caricatore automatico inserisce ciascuna cartuccia per il backup e a rimuoverla quando è completa sostituendola con un'altra. Il vantaggio del jukeboxe è che l'elevata capacità di memorizzazione è ottenuta utilizzando un certo numero di nastri piuttosto che un unico nastro ad alta densità. Ciò lo rende adatto alle applicazioni di archiviazione dato che i segnali meno densi possono essere letti in modo più affidabile. Dischi magnetici Esistono software fault-tolerant in grado di copiare, su basi continue, tutti i file della LAN su un file di backup, rendendo molto semplice l'operazione di backup. Il fatto che però i dischi magnetici on-line utilizzati per il backup si trovino fisicamente nello stesso posto in cui si trova il server crea problemi di sicurezza ed affidabilità. Cosa succede se avviene una perdita di dati a causa di un avvenimento fisico esterno, ad esempio un incendio o un allagamento? In questo caso, i dischi di backup sarebbero distrutti insieme con gli altri a meno che siano stati rimossi fisicamente. Per questo, per l'archiviazione a lungo termine, è meglio uno degli altri metodi. Dischi ottici La tecnologia della memorizzazione ottica promette capacità di memoria dell'ordine di GigaByte e in pratica nessuna degradazione dei dati nel tempo. Essa offre inoltre accesso random, software facile da utilizzare, procedure d'installazione semplici e affidabilità senza rivali dato che i dischi ottici non sono interessati dai campi magnetici vaganti. Per il backup di LAN sono disponibili due tipi di dischi ottici: WORM (Write Once, Read Many) e riscrivibili (senza limite al numero di volte in cui possono essere scritti e letti). I dischi WORM hanno una capacità di 600 MByte o superiore, mentre i dischi riscrivibili hanno una capacità che va da 256 MByte ad oltre un GigaByte. In entrambi i casi, si tratta di dischi ottici rimovibili, di diversi formati e costruzione, che rappresentano l'evoluzione dei CD ROM. Per la scrittura dei dati, le unità WORM utilizzano un raggio laser che altera in modo permanente la superficie del disco. Una volta che il dato è stato

Page 75: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 75

scritto, non può più essere cancellato, una caratteristica che rende la tecnologia WORM ideale per le applicazioni di archivio. Le unità a dischi ottici riscrivibili sono eccellenti dispositivi di backup dato che possono essere facilmente incorporate nei server di LAN ed offrono oggi tempi di accesso paragonabili a quelli dei dischi rigidi magnetici. SERVIZIO AFFIDABILE L'espressione fault-tolerance significa sostanzialmente che il sistema è in grado di accettare determinati malfunzionamenti senza danneggiare per questo i dati o le operazioni, una qualità importante in un file server. Il primo tipo di protezione è quella che riguarda i malfunzionamenti dell'alimentazione elettrica. Gruppi di continuità (UPS) Si tratta di dispositivi installati tra il file server e l'alimentazione di rete che, insieme con un software speciale residente sul server controllano costantemente l'alimentazione elettrica e segnalano al sistema il profilarsi di un problema; il sistema può quindi interrompere le operazioni in modo preordinato, evitando perdite di dati. Per consentire questo tipo di operazione, un gruppo di continuità ha una batteria di backup che può essere di varia capacità secondo l'autonomia che si vuole dare al sistema in caso d'interruzione della regolare alimentazione di rete. Un successivo livello di fault-tolerance può essere ottenuto in un server per mezzo della ridondanza dei dati memorizzati. RAID (Redundant Array of Inexpensive Disks) Il concetto di base è di distribuire o duplicare i dati su più unità a disco. La tecnologia RAID può essere implementata su hardware con un controller specializzato e su software, è suddivisa in sei livelli numerati da zero a cinque. 1. Livello zero: striping senza parità; è una tecnica di distribuzione dei file sviluppata

per migliorare le prestazioni e che distribuisce le informazioni dei file in modo selettivo su dischi multipli; è un miglioramento delle prestazioni del sistema, ma senza nessuna informazione ridondante.

2. Livello uno: Il mirroring utilizza due unità disco per fornire copie duplicate di tutti i dati presenti sul disco. Tutto ciò che è scritto su un'unità è riscritto sull'altra unità. Se una lettura fallisce a causa di un settore danneggiato su una qualunque delle due unità, i dati sono immediatamente letti dall'altra unità. Se una delle unità fallisce del tutto, l'altra unità prende il suo posto. Durante le operazioni di mirroring, il 50% dello spazio disponibile su disco è utilizzato per i dati ridondanti. Il duplexing corrisponde al mirroring per quanto attiene al sistema operativo, e fornisce ulteriore ridondanza hardware disponendo le due unità disco su controller del disco separati. Quindi la ridondanza è spostata sul controller. Se uno dei controller del disco fallisce, l'altro prende subito il suo posto. A seconda dell'hardware utilizzato, il duplexing può fornire prestazioni migliori del mirroring perché i dati ridondanti non sono più incanalati in un unico controller del disco. Questa duplicazione può essere estesa fino a includere alimentazione, ventole di raffreddamento e cablaggio; nel caso estremo, naturalmente, è possibile avere due server completi che fanno uno il backup dell'altro.

3. Livello cinque: striping con parità; un numero di dischi che può variare da due a trentadue sono combinati in un unico disco virtuale detto: stripe set. I dati sono scritti in stripe di uguali dimensioni in tutti i dischi dello stripe set, non risiedono su nessun disco in particolare, ma sono distribuiti su tutti i dischi utilizzati. In questa versione ci sono almeno tre dischi: dati, mirroring e informazioni di parità in grado di rigenerare i dati originari.

MANUTENZIONE SOFTWARE L'amministratore è la persona alla quale gli utenti si rivolgono se hanno problemi o domande. In entrambi i casi, si tratta di tematiche legate in buona parte al software.

Page 76: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 76

Alcuni aspetti comprendono l'installazione, l'addestramento, le licenze e i virus. Politica d’installazione del software Nelle LAN, gli utenti possono trattare gli hard disk in rete come se fossero le loro unità a disco locali; su queste unità possono installare ed eseguire i loro software applicativi in pratica senza doversi preoccupare dei loro effetti sulla rete. Sono poche le applicazioni che, se i parametri di sicurezza della rete sono correttamente impostati, possono provocare danni ai file di rete; tuttavia, ci sono applicazioni più vecchie che, lavorando su reti più vecchie, possono produrre una combinazione volatile. In particolare, alcune applicazioni progettate per scrivere direttamente sui dischi rigidi, possono danneggiare i file in alcune reti. Una politica che previene il verificarsi di molti problemi, è quella di non permettere l'installazione di un software sul server senza che prima sia collaudato dall'amministratore. Addestramento Perché gli utenti possano sfruttare tutti i vantaggi dei sistemi ai quali hanno accesso, devono averne un sufficiente grado di conoscenza. Il modo migliore per evitare che gli utenti commettano errori costosi è quello di fornire a loro la conoscenza di ciò che funziona e di ciò che non funziona. Con il tempo, un numero crescente di utenti finisce con l'imparare molto sul funzionamento della rete, ed è in grado di affrontare i problemi più comuni e rispondere alle domande che altri membri dei gruppi di lavoro. Ciò lascia a disposizione dell'amministratore del sistema una maggior quantità di tempo per occuparsi dei compiti più avanzati, quali l'upgrade dei sistemi e le operazioni di streamlining. Un utente “network aware” può inoltre agire da backup quando l'amministratore non è disponibile. Licenze L'utilizzo di ciascuna copia di software deve essere autorizzato da una licenza del produttore. I pacchetti acquistati per singoli utenti di PC sono i più diffusi ma sappiamo che è illegale copiarli e che ciascun utente nell'azienda deve avere la propria copia master per provare il regolare acquisto ed evitare problemi legali. Alcune aziende produttrici di software offrono licenze multiple che prevedono l'autorizzazione all'impiego di un certo numero di copie ad un costo inferiore a quello della licenza delle copie singole. È possibile acquistare una versione network del software che comprende un certo numero di licenze. Il software è duplicato e “scaricato” dal server al PC su richiesta, fino al numero massimo di licenze previste. Quando l'utente ha terminato la sessione e chiude il software, esso si rende disponibile per un altro utente. La bellezza di questo sistema si apprezza quando si tratta di aggiornare il software. Tutto il software è costantemente revisionato ed aggiornato dai produttori, un fenomeno che, se da un lato rende disponibili prestazioni sempre migliori, dall'altro costituisce un vero e proprio mal di testa per chi deve tenere aggiornati gli utenti PC di un dipartimento. Con i software server-based, tutti gli utenti possono essere aggiornati istantaneamente e, contemporaneamente, i processi d'installazione e acquisto risultano molto semplificati. Virus Un virus è un pezzo di codice che si annida in un programma esistente, ad esempio un'applicazione. Esso è attivato quando il programma è eseguito ma può essere programmato per non far niente fino a quando non accade un determinato evento, ad esempio arriva una certa data. Gli amministratori di rete dovrebbero fare girare regolarmente un software anti-virus in grado di identificare questo tipo di problemi e intraprendere azioni correttive. SICUREZZA DATI I dati possono andare persi per molte ragioni, comprese trascuratezza, sabotaggio e procedure inadeguate. Utenti innocenti ma non adeguatamente addestrati possono senza volere danneggiare i dati aziendali, ad esempio, alterando o cancellando dati molto importanti contenuti nel database aziendale cui in ogni modo hanno pieno accesso. È

Page 77: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 77

chiaro inoltre che individui malintenzionati, sia all'interno sia all'esterno dell'azienda, rappresentano una minaccia costante in particolare quando si tratta dei sistemi informativi ai quali spesso è possibile accedere in modo remoto via modem. Prodotti inaffidabili, supporti di memoria e procedure di backup sono altre possibili sorgenti di problemi. Ecco alcuni modi di ridurre il rischio di perdite di dati. Controllo degli accessi Il computer crime non è di solito sentito come un vero e proprio crimine, ad esempio il furto. Persone che non si sognerebbero mai di rubare qualcosa da un negozio, possono non avere remore nel manipolare a proprio vantaggio i dati di un computer. Questa non è una cosa facile da prevenire ma è possibile intraprendere azioni che riducono al minimo la minaccia. La cosa più importante è sapere chi ha accesso al sistema. Sicurezza utenti Le parole d'ordine (password) necessarie per l'attivazione dei sistemi e l'accesso agli stessi sono il fondamentale mezzo di sicurezza oggi disponibile. Purtroppo, molti amministratori non gestiscono le password in modo efficace né spiegano agli utenti che cosa sia che cosa non sia una parola d'ordine appropriata. La scelta delle parole d'ordine ed il loro uso può rappresentare l'anello più debole del sistema di sicurezza di una LAN. I system administrator possono migliorare la sicurezza fornita dalle password per mezzo del sistema operativo. Dato che è più facile indovinare parole d'ordine brevi, è possibile stabilire che la lunghezza minima sia sei o sette caratteri. Alcuni sistemi, poi, permettono di impostare una data di scadenza che costringe a cambiare periodicamente la password. Banyan Vines impedisce addirittura il riutilizzo delle dieci password utilizzate in precedenza. Un errore comune tra gli utenti MS-DOS è quello di mettere la sequenza di log-on (attivazione) completa di password in un archivio batch automatico. Ciò è vero specialmente per gli utenti di reti condivise peer-to-peer dato che chiunque accende il PC è in grado di accedere ai servizi di rete. Un altro modo di aumentare la sicurezza della rete è quella di accertarsi che gli utenti si scolleghino correttamente (log-off) quando si allontanano dal loro computer. Sicurezza modem Molte reti locali offrono servizi via collegamenti remoti ad un server specializzato, ad un'altra LAN, o ad utenti LAN regolari che sono in viaggio e chiamano via modem. Se da un lato offre i servizi richiesti, questo tipo di collegamento ha lo svantaggio di aprire un'altra porta dalla quale possono entrare eventuali “pirati”. Uno dei modi di proteggere l'accesso al sistema è quello di specificare chi può accedere, quando e da dove. Altri schemi di sicurezza di rete proteggono questo punto debole utilizzando modem e software che prendono la chiamata ma richiamano la postazione remota prima di stabilire il collegamento LAN. Furto di dati Se nel sistema esistono informazioni di valore è necessario evitare che malintenzionati le leggano o copino. Il file server deve essere conservato in un luogo chiuso e protetto così da impedire a qualsiasi estraneo di potervi accedere facilmente ed impossessarsi di una parte importante del patrimonio aziendale. Le stampanti centralizzate possono costituire un altro punto debole dal punto di vista della sicurezza. Se una stampante di rete è lontana da chi la sta utilizzando, qualcun altro può esaminare l'output o rubarlo. Inoltre, nella maggior parte delle reti server-based sono creati archivi temporanei chiamati print queue nei quali il sistema memorizza copie dei printout nell'attesa che si liberi una stampante, Se questi file provvisori non dispongono di sicurezza, in pratica chiunque in grado di accedere alla rete può esaminare dei rapporti prima ancora che sono stampati. Il PC collegato in LAN può utilizzare lo spazio su disco del server per memorizzare dati e applicazioni. Alla rete è quindi possibile collegare PC privi di disco, in particolare nei punti ad alto rischio, rendendo impossibile copiare a livello locale i dati del server in un floppy disk.

Page 78: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 78

Analizzatori di protocollo Gli analizzatori di protocollo e LAN sono strumenti per la diagnostica di rete e possono essere collegati alla LAN per analizzare ogni singolo dato che attraversa la rete, decodificarlo e presentarlo in forma comprensibile agli essere umani. I LAN analyser sono stati sviluppati per aiutare tecnici e progettisti ad analizzare il traffico di dati durante l'installazione o quando insorge un problema. Possono però anche essere utilizzati facilmente per raccogliere dati importanti o isolare password direttamente dal cavo di rete. In Ethernet, qualunque nodo può ascoltare ciò che è trasmesso da qualunque altro nodo (consentendo in questo modo ad un programma di analisi software di attingere informazioni preziose). ARCnet si comporta in modo simile e Token Ring ritrasmette ogni frame ad ogni stazione collegata nell'anello locale. È possibile aumentare la sicurezza utilizzando bridge intelligenti per suddividere ciascuna LAN in sottoreti. In tal caso, i dati trasferiti tra un nodo e l'altro in ciascuna sottorete non potrebbero essere letti da un analizzatore posto in un altro segmento della rete. Visti in modo corretto, gli analizzatori di protocollo possono essere utilizzati per migliorare la sicurezza. È, infatti, relativamente semplice impostare dei filtri per rilevare pacchetti di dati provenienti da una postazione non autorizzata che è stata collegata abusivamente alla rete ed è quindi possibile controllare le attività di eventuali pirati senza che essi possano rilevare la presenza dell'analizzatore che li sta controllando. Crittografia I dati vitali possono essere codificati in modo che se anche qualcuno s'impossessa dei file che li contengono non possano essere letti. Esistono svariati programmi per codificare qualunque tipo di file. In ogni caso, occorre accertarsi che tutti gli archivi con i dati originali siano cancellati dal sistema. Esistono numerosi programmi che provvedono a creare automaticamente file di backup contenenti tutte le informazioni dei file originali. Un sistema per eludere persino un analizzatore di protocollo consiste proprio nel far codificare i dati o le parole d'ordine prima che essi siano immessi nel cavo LAN. Alcuni dei sistemi operativi correnti dispongono di possibilità “crittografica” per la codifica delle parole d'ordine prima che esse siano inviate da una stazione all'altra. L'effettiva parola d'ordine non è mai trasmessa sul cavo.

Proposta di lavoro N° 1 Progettare un programma in grado di crittografare una frase. #include <stdio.h> #include <conio.h> #define CODMIN -25 #define CODMAX 25 int main(void) { int cod = 0; /*codice, con default per input non valido <2>*/ int c; /*carattere corrente*/ int finito; /*flag di fine lavoro <3>*/ clrscr();printf("\n Crittografia/decrittografia:\n"); do { do { printf("\nCodice (da %d a %d, negativo decrittografa, 0 esce): ", CODMIN,CODMAX);scanf("%d",&cod); /*input codice*/ } while (cod < CODMIN || cod > CODMAX); /*lo controlla <4>*/ while (getchar() != '\n'); /*ripulisce <5>*/ finito = (cod == 0); /*esce con zero <6>*/ if (! finito) { /*se ok, lavora <7>*/ printf( (cod>0)?"\nFrase da crittografare: " : "\nFrase da decrittografare: "); /*<8>*/ while ( (c = getchar()) != '\n') { /*scandisce frase <9>*/ if (c >= 'A' && c <= 'Z') { /*va in minuscolo <10>*/

Page 79: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 79

c += ('a'-'A');} if (c >= 'a' && c <= 'z') { /*cambia lettere*/ c += cod; /*con codice*/ if (c < 'a') c += 26; /*<11>*/ if (c > 'z') c -= 26;} putchar(c); } /*stampa carattere*/ putchar('\n'); } /*a capo*/ } while (! finito);return (0); /*esce con codice 0*/ } /* Note: <1> La crittografia è di tipo molto semplice: ogni lettera è spostata avanti o indietro del numero di posti indicato dal codice. I simboli e le lettere non ASCII restano inalterati. <2> Lo 0 di default rimane se la scanf non trova un numero valido alla prima esecuzione del programma (in eventuali esecuzioni successive rimene l'ultimo numero valido introdotto). <3> Un flag è una variabile logica, che può essere solamente vera o falsa. In C si usa un int, con la convenzione che zero significa falso ed ogni altro valore significa vero. <4> Come sempre, è bene non accettare un input non valido. <5> Senza questa pulizia dei caratteri residui, le successive getchar leggerebbero i caratteri avanzati dalla scanf, come minimo un \n. <6> Assegna alla variabile finito il risultato del confronto. Notare che = significa assegnazione, mentre == significa confronto. <7> Letteralmente: if not finito (se non ha finito). <8> L'operatore ternario si può usare anche con le stringhe della printf. <9> Se il carattere letto con la getchar, ed assegnato a c, è diverso da newline... (il carattere rimane in c). <10> Notare l'uso dei caratteri tra apici, invece dei rispettivi codici numerici ASCII, per evidenziare quello che si sta facendo. 'a' segue 'A' nel codice ASCII: aggiungendo la differenza tra i due codici si converte una lettera da maiuscola a minuscola. <11> Quando l'istruzione da eseguire condizionalmente con la if è molto breve, si usa anche scriverla di seguito sulla stessa linea anzich‚ andare a capo ed indentare. In questo caso è bene mettere almeno due spazi per evidenziarla. */ #include <iostream.h> #include <conio.h> void encode(char *chaine),decode(char *chaine); int main(void) { char CHAINE[21];clrscr(); cout<<"\n\nParola di [ 20 char max ]: "; cin>>CHAINE; encode(CHAINE); cout<<"\nEcco la parola codificata: "<<CHAINE; decode(CHAINE); cout<<"\n\n..e decodificata: "<<CHAINE; getch();return (0); } void encode(char *chaine) { while (*chaine != '\0') { ++(*chaine); ++chaine; } } void decode(char *chaine) { while (*chaine != '\0') { --(*chaine); ++chaine; } } /* crypt: a file encryption utility */ #include <iostream.h> #include <stdio.h> #include <process.h> #include <string.h> #include <conio.h> extern _iomode=0x8000; int main(int argc,char *argv[]) { char rotor[128],rotsiz,rotptr,filout;int byte;FILE *input,*output;clrscr(); if (argc == 2 && argv[1][0] == '-') { cout<<"\n\nCripto_2 is a program designed to provide\n"; cout<<"the user with a means to protect his data\n";

Page 80: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 80

cout<<"from the perusal of others, even if they\n"; cout<<"can get their hands on his file\n";exit(1);} if (argc > 5 || argc < 2) { cout<<"\n\nC> cripto_2 <i file [<o file>] \n" " \nmore information: C> cripto_2 -";exit(1);} if (argv[1][0] == '-' && argv[1][1] == 'K') { strcpy(rotor,argv[2]);argc-=3;argv+=3;} else { cout<<" key ? : ";cin>>rotor;argc--;argv++;} if ((input = fopen(argv[0], "r")) == NULL) { cout<<"can't open "<<argv[0]<<" for input ";exit(1);} if(argc == 2) { filout=1; if ((output = fopen(argv[1], "w")) == NULL) { cout<<"can't open "<<argv[1]<<" for output ";exit(1);} } else filout=0;rotsiz=strlen(rotor); if (!rotsiz) { cout<<"funny guy...the key must be at least 1 character"; exit(1); } rotptr=1;cout<<"Working..."; while ((byte=getc(input)) != EOF) { byte ^= rotor[rotptr++];rotptr %= rotsiz; if(filout) putc(byte, output);else putchar(byte);} if(filout) {fclose(output);} return (0); } #include <dir.h> #include <conio.h> #include <stdio.h> #include <iostream.h> #include <process.h> int main(void) { FILE *fs,*fd; char sorg[13],dest[13],c,passwd[20];int i,l;clrscr(); cout<<"\n\nPathname del file sorgente --> ";cin>>sorg; if (searchpath(sorg)==NULL) { cout<<"\nIl file non esiste !!!"; exit(0);} cout<<"\n\nPathname del file destinazione --> ";cin>>dest; l=0;cout<<"\nPassword: "; do { passwd[l]=getch(); if (passwd[l]!='\r') l++;} while (passwd[l]!='\r'); /* crypt&decrypt */ fs=fopen(sorg,"r+b");fd=fopen(dest,"wb");i=0;c=fgetc(fs); while (!feof(fs)){ c=c^passwd[i%l]; fputc(c,fd); c=fgetc(fs);i++;} fclose(fd);fclose(fs); return (0); }

Page 81: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 81

MODEM (MODULATORE/DEMODULATORE) introduzione Il modo più diffuso per collegare reti distanti tra loro è per mezzo di linee telefoniche. Esse sono state originalmente progettate per trasmettere la voce umana, che è di tipo analogico ed è generata a bassa velocità, circa quaranta parole al minuto. I computer hanno invece bisogno di trasmettere segnali digitali alla velocità di parecchi milioni di bit al secondo. Era necessario un dispositivo per convertire i segnali digitali prodotti dal computer in segnali analogici per le linee telefoniche. Questo processo è chiamato modulazione. Il procedimento contrario era necessario all'altro capo della linea ed è chiamato demodulazione. I due termini combinanti (modulazione, demodulazione) formano la parola modem. Come in tutti i sistemi, l'anello più debole determina la prestazione complessiva. La linea telefonica è l'anello debole della velocità di trasmissione dati tra computer. Tipicamente un modem trasmette con velocità comprese tra i 1200 e i 36600 bps, in altre parole ad una velocità 500 volte inferiore ai 10 Mbps delle reti Ethernet. È facile capire come un modem possa agire da principale collo di bottiglia in una rete geografica interattiva o full-service. Inoltre, il problema di eseguire un collegamento da modem a modem su una normale linea telefonica richiede che una macchina chiami l'altra. Questa procedura (dial-up) introduce dei ritardi nell'esecuzione del collegamento e impone limiti di frequenza a causa delle apparecchiature di commutazione telefonica che entrano in gioco. Un collegamento dial-up può essere accettabile per gli scambi di posta elettronica non interattivi e per altri tipi di file ma è troppo lento per una WAN full service. Il segnale seriale in input su una linea telefonica è digitale (onda quadra) caratterizzato da uno spettro di frequenze esteso (da 0 ad oltre 3400 Hz), ma la trasmissione sulla linea avviene per frequenze, con spettro compreso nei valori della banda fonica, quindi se si vuole utilizzare il canale telefonico come mezzo trasmissivo per i dati digitali, bisogna trasformare tale segnale in analogico con valori di frequenze compresi nella banda fonica, in altre parole scomporlo in un’onda sinusoidale fondamentale ed in un certo numero di armoniche. Il modem ha due compiti: 1. codifica e modula; 2. controlla: velocità, autodiagnosi. Se il mezzo trasmissivo è rappresentato dal canale telefonico, per la trasformazione del segnale si utilizzano modem fonici. Se invece il mezzo trasmissivo non ha limitazioni di banda, si utilizzano modem banda base. Questo dispositivo appartiene alla famiglia dei DCE.

modem banda base (numerici) Si utilizzano su linee dedicate senza limitazioni di banda per collegamenti point-to-point o multipoint a due (half-duplex) o quattro fili (full-duplex). Sono usati generalmente per collegamenti in ambito locale, urbano o reti CDN; il loro impiego è vantaggioso dal punto di vista economico essendo meno costosi dei modem fonici.

Page 82: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 82

modem fonici Si utilizzano per trasmettere dati sulla rete telefonica o su qualsiasi circuito telefonico la cui banda passante è compresa tra 300 e 3400 Hz (banda fonica), hanno precise caratteristiche definite dal CCITT mediante Raccomandazioni della Serie V e sono usati per collegamenti remoti. Le caratteristiche relative ai modem sono: tipo di modulazione: di frequenza FSK (Frequency Shift Keying), di fase PSK (Phase SK) o DPSK (Differential PSK) di ampiezza ASK (Amplitude SK) di fase e di ampiezza QAM (Quadrature A Modulation); tipo di linea (commutata o dedicata); velocità di trasmissione dei dati; frequenza delle portanti e livello dei segnali; tipo di esercizio (half-duplex o full-duplex); modalità di trasmissione (asincrona o sincrona). Le principali case costruttrici sono: HST, US Robotics, Hayes, Uniautomation, Zyxzel. La corretta unità di misura con cui esprimere la velocità di collegamento è il numero di bit che sono trasferiti in un secondo: bit per secondo o bps. Spesso si sente parlare di baud invece che di bps, come se le due locuzioni fossero intercambiabili: “Questo modem è un V.22 bis e va a 2400 baud”. Questo uso è però scorretto. Il termine baud, infatti, a rigore non indica il numero di bit per secondo bensì il numero di simboli per secondo. La modulazione associa ad ognuno dei simboli binari 0 e 1 un diverso stato della portante, in questo caso si ha una corrispondenza tra la velocità dei dati che arrivano all’ingresso del modulatore (bps) e la rapidità di modulazione (baud). Questa tecnica di modulazione, però, non consente il raggiungimento di velocità elevate in considerazione della banda a disposizione, l’aumento si ottiene suddividendo in coppie di bit (dibit) il segnale trasmesso ed assegnando le quattro combinazioni possibili (00, 01, 10, 11) ad uno dei quattro livelli disponibili (modulazione multi-livello). Il segnale così ottenuto è inviato al modulatore e misurato in baud, in generale i livelli ammessi sono 2n, dove n è il numero di bit codificati nell’istante di modulazione. Ad esempio un modem in standard V.22 bis (2400 bps) modula secondo la tecnica QAM e trasmette 600 simboli al secondo (600 baud, dunque, a rigore di termini). La rapidità di modulazione, espressa in baud, è uguale a 1/n della velocità in bps. BPS BIT CODIFICATI NUMERO DI LIVELLI 2n BAUD 1200 1 2 1200 1200 2 4 600 2400 2 4 1200 4800 3 8 1600 9600 4 16 2400 36600 Le caratteristiche, riportate in tabella, che identificano univocamente un modem sono la velocità di trasmissione dei dati in rapporto al tipo di esercizio e al tipo di linea. CCITT BPS LINEA FILI ESERCIZIO V.21 300 commutata

dedicata 2 2

full-duplex full-duplex

V.22 1200/600 commutata dedicata

2 2

full-duplex full-duplex

V.23 1200/600 commutata dedicata

2 2/4

half-duplex full-duplex

V.22 bis 2400 commutata dedicata

2 2

full-duplex full-duplex

V.26 2400 dedicata 4 full-duplex

Page 83: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 83

V.26 bis 2400 commutata 2 half-duplex V.27 4800 dedicata 4 full-duplex V.27 bis 4800 dedicata 2/4 half/full-duplex V.27 ter 4800 commutata 2 half-duplex V.29 9600 commutata

dedicata 2 2/4

half-duplex half/full-duplex

V.32 9600 commutata 2 full-duplex V.32 bis 14400 commutata 2 full-duplex V.33 14400 dedicata 4 full-duplex v.34 28800 V.42 MNP4 correzione d’errore V.42 bis MNP5 compressione dati Per aumentare la velocità bisogna evitare la conversione almeno in un senso, facendo in modo che il flusso rimanga digitale. Da client a server: il segnale è analogico e deve essere convertito dalla centrale, il vincolo massimo è 36.6 Kbps. Da sever a client la velocità è 56.6 Kbps. Modem V.23 con canale supervisore Il canale supervisore, chiamato anche canale secondario di controllo (sono trasmessi i caratteri di controllo a conferma di una corretta o errata ricezione dei dati sul canale principale), è un canale a bassa velocità (75 bps) che è affiancato al canale principale nella parte inferiore della banda fonica. L’utilizzo di questo canale con linee a due fili permette la realizzazione di un esercizio full-duplex asimmetrico. Un’altra applicazione che utilizza il V.23 con canale, supervisore è il servizio Videotel: durante il collegamento, l'utente trasmette le proprie richieste sul canale supervisore a 75 bps e riceve le informazioni dal servizio sul canale principale a 1200 bps. Le principali caratteristiche che contraddistinguono un modem sono le seguenti: - chiamata e risposta automatica; - memorizzazione di numeri telefonici; - programmazione software del modem con stringhe di comando; - memorizzazione di configurazioni diverse; - procedura di diagnostica con auto-test; - procedura per il controllo degli errori; - procedura per la compressione dei dati; - adattamento automatico ai parametri dell’interfaccia DTE; - adattamento automatico allo standard del modem remoto; - procedura di auto-logon associabile ad un numero telefonico; - procedura di call-back per le richiamate di sicurezza; - password di protezione per la modifica dei principali parametri; - modifica on-line della configurazione del modem remoto; - invio di messaggi di risposta al DTE. Come ci si può aspettare, inoltre, un modem capace di alte velocità può collegarsi anche ad un modem più lento, adottando la massima velocità compatibile con entrambi. Per di più anche fra due modem già collegati ad una data velocità è possibile passare ad una velocità inferiore, in caso di linea rumorosa, per tentare di ottenere una trasmissione più affidabile. Questo procedimento avviene automaticamente e si chiama fallback: i modem “ricadono” su una velocità più lenta sperando che questo permetta di avere meno errori di trasmissione. I modem più furbi, se opportunamente configurati, sono anche in grado di eseguire il fall-forward, ossia di risalire a velocità maggiori se, nel corso della comunicazione, essi rilevano un miglioramento della qualità della linea. Gli standard CCITT introducono delle velocità di fallback che possono essere anche intermedie

Page 84: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 84

rispetto alle velocità massime elencate sopra. Ad esempio con il V.32 si può scendere da 9600 a 4800 prima di arrivare a 2400. Parlando di scegliere il proprio modem bisogna anche decidere se preferire per un modello interno (su scheda) o uno esterno oppure AMR (Audio Modem Riser) dove la scheda audio e modem sono integrate sulla mother board. A parità di tutto il resto, il modello su scheda è leggermente più economico in quanto non richiede un alimentatore separato né un contenitore. Inoltre esso può essere più pratico se si ha una scrivania affollata sulla quale non si riuscirebbe facilmente a trovare posto per un modem esterno. Nonostante tutto mi sento di sconsigliare vivamente l'acquisto di un modello interno a fronte dei vantaggi del modello esterno: anzitutto la visibilità di numerosi indicatori di stato (sotto forma di una schiera di led e/o di un pannellino alfanumerico), utilissimi per diagnosticare malfunzionamenti; poi per la possibilità di collegare velocemente il modem ad un altro PC; inoltre per la possibilità di essere usato con computer di tipi diversi (uno stesso modem esterno può funzionare sia con un Mac sia con un Amiga, cosa ovviamente impossibile per un modello su scheda) che fra l'altro significa anche un maggior mercato in caso di rivendita. I modem esterni a loro volta si suddividono in: modem, modem/fax, modem/fax/voice, e pocket modem. Le reti telefoniche in tutto il mondo sono concepite per la trasmissione della voce umana, ossia un suono contenuto entro una gamma di frequenze ben distinte e, benché gli apparati delle centrali telefoniche siano ormai tutti digitali, questa dipendenza dal suono analogico si fa ancora sentire nella tratta che collega l'utente alla centrale più vicina. Quando si parla nel telefono o si trasmette via modem, il segnale analogico è ricevuto dalla centrale, campionato 8.000 volte al secondo, trasformato in valori digitali a 8 e infine trasmesso su un canale digitale da 64 Kbps. All'altro estremo, nella centrale cui è connesso il nostro interlocutore, avviene la procedura inversa, in pratica dalla codifica digitale si recupera il segnale analogico e si trasmette sulla tratta finale di doppino. Alla fine di questo percorso, la riproduzione è sempre imperfetta poiché già nella prima codifica, quella da analogico a digitale, è necessario eseguire alcune approssimazioni. Il segnale analogico può assumere una gamma in pratica infinita di valori mentre il segnale digitale che vi corrisponde deve essere ridotto, in questo caso, a 256 valori discreti e separati da salti non variabili (quantici) che possono solo approssimare il valore di partenza. Tale differenza, poco avvertibile per l'orecchio umano ma assai critica per un modem è chiamata rumore di quantizzazione e la sua presenza impedisce, ogni volta che si esegue un passaggio da digitale ad analogico, di raggiungere la velocità di trasmissione superiore ai 35 Kbps. è proprio questo il tetto che si sfiora con gli attuali modem V.34+ a 33.600 bps. L'unica possibile scappatoia consiste nell'evitare la trasformazione da analogico a digitale in almeno uno dei sensi di percorrenza facendo il modo che il flusso rimanga digitale per buona parte del percorso. Il modem che si trova presso la sede del provider colloquia su una linea telefonica digitale usando i 256 codici PCM (Pulse Code Modulation) riconosciuti dalla rete telefonica, di conseguenza deve trattarsi di un modem integrato in un'apparecchiatura che abbia un'uscita ISDN o digitale di altro tipo, quindi non deve trattarsi di un modem a sé stante. Questi impulsi viaggiano fino alla centrale finale dove sono convertiti da digitale ad analogico e trasmessi all'utente. Non è in realtà possibile usare tutti e 256 i valori previsti dalla codifica PCM perché nella ritrasformazione in analogico si avrebbero valori troppo piccoli per essere discriminati dal modem che li riceve. Si fissa pertanto un limite pratico a 128 valori che ci danno 56.000 bps oppure 92 per trasmettere a 52.000 bps e via di questo passo. Nel senso inverso, il segnale dell'utente deve essere necessariamente convertito in digitale presso la centrale prima d'inoltrarlo e perciò si è vincolati alla velocità massima di 33.600 bps. Se in un punto qualsiasi di questo percorso s'introduce una tratta analogica, sia per difetto del provider, sia per difetto della rete telefonica medesima, la trasmissione torna a 33.600 bps in entrambi i sensi. Una cosa importante da ricordare: non è possibile

Page 85: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 85

trasmettere o ricevere a 56.000 se ci si collega in modo diretto con un altro utente anch'esso dotato di modem a 56.000, questo per il semplice motivo che c'è di mezzo una conversione analogico-digitale. Si tratta perciò di un "giocattolo" la cui fruibilità è molto circoscritta e dipendente da vincoli esterni Protocolli di trasmissione file Un file da spedire è suddiviso in tanti piccoli blocchi (ad esempio di 1 Kbyte l'uno); la spedizione di ogni blocco è accompagnata dalla spedizione di alcuni dati di controllo (tipicamente dei CRC a 32 bit) in base ai quali il destinatario può verificare, con altissima affidabilità, se i dati ricevuti siano stati o no danneggiati durante il tragitto; se sì, il destinatario rispedisce al mittente una richiesta di ritrasmissione di quel blocco finché non lo ha ricevuto senza errori. Di seguito, un'incompleta panoramica dei più diffusi protocolli di trasmissione. ETX/ACK Ad intervalli regolari chi trasmette invia ETX = 03H e chi riceve risponde con ACK = 06H. XON/XOFF (Start/Stop) Usato per la trasmissione di caratteri ASCII, la ricezione ferma la trasmissione con XOFF=13H e la riavvia con XON = 11H. Xmodem Progettato nel 1970 da Ward Christensen sul CP/M con il nome di MODEM7. Presente ormai solo per compatibilità all'indietro, si tratta di un protocollo obsoleto e, paragonato agli altri, lento (pacchetti corti, da 128 byte, e dunque grande spreco di banda passante per informazioni di controllo piuttosto che dati). La sua affidabilità dipende dalla versione in uso, le più vecchie adottano un banale checksum (somma modulo 256 dei byte di dati) mentre le più nuove un CRC. Esiste anche nella varietà Xmodem-1K che, per l'appunto, assembla pacchetti da 1K e nella varietà Xmodem-1K-G che raggiunge una maggiore efficienza, ma richiede l'uso di un canale privo di errori. Ymodem-G: fra i protocolli più veloci, richiede un canale privo di errori e lo sfrutta spedendo i dati alla massima velocità senza aspettare le conferme. Può spedire diversi file alla volta.

SOH NUM1 NUM2 DATA CHECKSUM NUM1 = numero del blocco. NUM2 = numero del blocco in complemento a 1. Varianti conosciute sono XMODEM-1K con blocchi da 1024 byte e XMODEM-CRC con controllo CRC a 16 bit; i principali difetti sono: il nome e gli attributi del file non sono trasmessi, la lunghezza è sempre un multiplo di 128, i timeout sono troppo stretti per trasferimenti veloci. Procedura del tipo STOP and WAIT: 1. avviato XMODEM, il tx attende che il rx gli mandi NACK, il rx è sempre nell'attesa ed

invia NACK ogni 10sec; 2. il tx spedisce il messaggio suddiviso in blocchi; 3. il rx ricevuto il blocco controlla: SOH, se NUM1 è maggiore di 1 del blocco ricevuto

prima, ricalcola il checksum e lo confronta con quello ricevuto: se è uguale invia al tx ACK permettendogli di inviare il blocco successivo, se no invia NACK ed il tx ritrasmette il blocco arrivato con errori.

Ymodem Progettato nel 1980 a Portland (Oregon) da Chuck Forsberg, trasferisce blocchi da 1024 byte (l'esatto numero senza considerare i multipli) con controllo CRC a 16 bit, possibilità di inviare il nome del file e gli attributi. Kermit Progettato nel 1980 alla Columbia University (New York) da Frank da Cruz, prende il

Page 86: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 86

nome dal pupazzo del "Muppett Show", public domain software, emulazione terminale e trasferimento file tra sistemi eterogenei (Unix-PC), i blocchi possono variare da 10 a 96 byte, il trasferimento è a 7 bit (se MSB = 1 è traslato in 2 byte: perdita di velocità), gli ACK per maggiore affidabilità sono numerosi: minor velocità, l'efficienza è la più bassa in assoluto.

SOH LEN NUM TYPE DATA CRC EOL LEN = lunghezza in byte. NUM = numero di sequenze . TYPE = S: inizio, F: filename, D: dati, Z: EOF, B: ETX, Y: ricezione, N: NACK, E: errore, T: time-out. Zmodem Progettato nel 1986 da Chuck Forsberg. Forse il più efficiente dei protocolli ma, al minimo errore, interrompe il trasferimento, da molti è considerato il miglior protocollo; ad ottime prestazioni, alta affidabilità con il CRC a 32 bit, buon'efficienza di trasferimento, i blocchi possono variare da 64 a 1024 byte in funzione degli errori sulla linea (la probabilità che un blocco contenga errori aumenta con la dimensione, un blocco corto però è inefficiente, soluzione: blocchi di lunghezza variabile) adattamento della lunghezza dei pacchetti alla qualità della linea, aggiunge numerose caratteristiche pratiche che ne rendono vantaggioso l'utilizzo. Consente di spedire più file in un solo invio ("protocollo batch"); consente di riprendere una trasmissione interrotta dal punto in cui si era arrivati, senza ripartire dall'inizio ("crash recovery"); consente infine l'attivazione automatica del download sul sistema destinatario ("autodownload") non appena il mittente inizia la trasmissione. Se si vogliono evitare problemi di protocollo, basta usare sempre lo Zmodem. BImodem, HS-Link Questi protocolli adottano una geniale idea che permette di eseguire simultaneamente il trasferimento dati nei due versi, sfruttando al meglio la capacità di trasmissione dei modem full-duplex, per contro è di notevole complessità l'installazione. L'efficienza, già quasi raddoppiata da questo fondamentale trucco, è ulteriormente aumentata dal fatto che la selezione dei file da spedire e ricevere può essere fatta offline tramite dei programmi ausiliari. A fronte di tutto ciò, l'unico svantaggio è una notevole complessità nell'installazione. Attenzione poi al fatto che i modem HST non sono realmente full duplex alle velocità più alte: solo in una delle due direzioni si ottiene il canale a 14400, nell'altra la capacità è ridotta. Per un reale trasferimento a 14400 nei due versi bisogna far uso di modem in standard V.32bis. PROTOCOLLI DI CORREZIONE D'ERRORE E COMPRESSIONE DATI Garantiscono una trasmissione pulitissima in ogni circostanza, le spurie sulla linea non faranno altro che innescare una ritrasmissione automatica dei dati corrotti e dunque l'unica differenza avvertibile da parte dell'utente sarà eventualmente un piccolo rallentamento, una trasmissione un po' a scatti; mai più, in ogni modo, caratteri sporcati da rumore. Oltre alla correzione sono stati implementati anche degli algoritmi di compressione, anch'essi integrati nei circuiti del modem e funzionanti in maniera invisibile per l'utente. I modem a compressione, dunque, simulano un collegamento a maggior velocità; difatti, se l'algoritmo comprime una sequenza di bit in un'altra sequenza lunga solo la metà, allora trasferendo quest'ultima ad una data velocità reale (poniamo 2400 bps) l'effetto esterno sarà di aver trasferito la sequenza originaria ad una velocità esattamente doppia. Come appena detto, però, l'aumento di velocità ottenibile in questo modo è strettamente dipendente dai dati che si trasferiscono e in ogni caso nullo con file già compressi. Bisogna anche affermare che, ovunque possibile, è preferibile comprimere i file in anticipo piuttosto che confidare sulla compressione in linea.

Page 87: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 87

Anche qui esistono degli standard “de facto” e degli standard “de jure”. Lo standard “de facto” si chiama MNP (Microcom Networking Protocol), che si suddivide in 10 classi d'implementazione, dalla meno alla più efficiente. Classe 1: è una procedura di trasmissione asincrona, half-duplex, orientata al byte. Classe 2: è una procedura di trasmissione asincrona, full-duplex, orientata al byte. Classe 3: è una procedura di trasmissione sincrona, full-duplex, orientata al bit. Classe 4: aggiunge due tecniche: 1. APA (Adaptive Packet Assembly) aumenta la lunghezza del pacchetto quando la linea

non è disturbata; 2. DPO (Data Phase Optimization) elimina alcune informazioni amministrative nei

pacchetti di dati per ridurre il sovraccarico del protocollo. Classe 5: aggiunge l’algoritmo per la compressione dei dati che utilizza due tecniche: 1. codifica run length che riduce la sequenza di dati ripetuti; 2. codifica adattativa di Huffman che assegna un token ad ogni pattern di 8 bit e regola

in modo continuo una tabella di frequenza, ai pattern che ricorrono più frequentemente sono assegnati token più brevi.

Classe 6: utilizza le tecniche: 1. ULN (Universal Link Negotiation) permette il collegamento tra modem di standard

diversi (V.29 e V.32); 2. SD (Statistical Duplexing) esegue una modulazione half-duplex in modo dinamico

spostando i canali di trasmissione all’interno della banda fonica, permette la realizzazione di un esercizio full-duplex asimmetrico.

Classe 7: è in grado di segnalare la probabilità di ripetizione dei caratteri. Classe 8: utilizza una procedura di equalizzazione con modulazione V.29 fast train. Il vero standard “de facto” è l'MNP classe 5: in sostanza tutti i modem capaci di MNP, di qualunque marca essi siano, coprono le classi fino alla 5; quasi nessun modem, viceversa, implementa le classi superiori. La classe 10, a titolo di curiosità, è dedicata alle comunicazioni su linee cellulari e si specializza nella correzione di errori su linee particolarmente disturbate. Inutile affermare che, come per i protocolli di collegamento, non serve a niente avere un modem efficientissimo se non si è in due a supportare lo stesso standard. Lo standard “de jure” emanato dal CCITT nel 1987 che, in materia di correzione degli errori, è definito dalla Raccomandazione V.42, prevede la rilevazione degli errori mediante il CRC e la correzione mediante ritrasmissione automatica dei dati. Il protocollo utilizzato è il LAP (Link Access Protocol-modem), simile al protocollo previsto per il livello 2 dell’X.25 (HDLC). La Raccomandazione V.42 bis, emanata dal CCITT nel 1990, descrive la tecnica di compressione dei dati. La cosa interessante è che esse sono compatibili verso il basso con l'MNP classe 5; in altre parole, un modem V.42 bis colloquia al meglio con un altro V.42 bis ma non disdegna di fare ugualmente compressione e correzione se si trova davanti un più umile MNP5. Il massimo rapporto di compressione ottenibile con l'MNP5 è di circa 2:1 mentre quello del V.42 bis è di circa 4:1. Bisogna però aggiungere che la compressione da parte del modem è, oltre che inutile, addirittura dannosa se si tratta di trasferire file già compressi: difatti i tentativi di compressione da parte del modem si traducono in una perdita di tempo che abbassa il throughput. Per collegamenti orientati principalmente allo scambio di file compressi (e generalmente, sulle BBS, tutti i file disponibili sono compressi) è opportuno disabilitare la compressione per raggiungere il massimo throughput. Questa raccomandazione è utile particolarmente per i collegamenti MNP: conviene utilizzare il livello 4 invece del livello 5, inserendo il corretto comando (%C0 sul modem) nella stringa di inizializzazione; con i collegamenti V.42 bis l'accorgimento non è necessario poiché è lo stesso V.42 bis, più furbo dell'MNP5, a disabilitare al volo la compressione se si accorge che essa non ha effetto. La presenza della correzione d'errore consente in ogni modo di guadagnare qualcosa (fino ad un 25% teorico) rispetto

Page 88: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 88

alla trasmissione pura e semplice, perché sulla linea “corretta” si possono spedire i byte di dati eliminando i bit di start e stop, risparmiando dunque due bit ogni dieci. Una trasmissione a 2400 bps con correzione d'errore, su linea pulita, tende dunque asintoticamente ai 300 cps, invece che ai 240 cui tenderebbe senza correzione; parimenti una trasmissione a 14400 bps tende a 1800 cps invece che a 1440. Stati OPERATIVI

Modo comandi Il modem ha la possibilità di trattare i dati che riceve dal PC (DTE), come potenziali comandi. In questo caso il modem controlla i caratteri provenienti dall’interfaccia alla ricerca di una sequenza di byte che introduce il comando. Lo stato comandi si ha: - all’accensione; - dopo la selezione di un numero se la chiamata non va a buon fine; - se cade la portante durante un collegamento; - se è immesso il parametro <;> dopo il comando di selezione; - dopo un reset; - se si digita il codice di escape quando il modem è allo stato on line; - in seguito all’abbattimento del collegamento. Modo dati (online Mode) Il modem entra in questo stato quando, dopo un comando di chiamata o di risposta, riconosce una portante valida in linea proveniente dal modem remoto; in questo stato non riconosce più nessun comando tranne il codice di escape. Modo escape (+++) Permette di portare il modem dallo stato on line allo stato comandi senza abbattere il collegamento, esso è costituito da un carattere digitato tre volte ad intervalli definiti. Il carattere utilizzato è contenuto nel registro S2 e per default è il segno <+> (43 ASCII) e il tempo di guardia che controlla il suo invio è contenuto nel registro S12. La procedura per l’invio del codice di escape è la seguente: 1. prima di digitare il codice di escape, non trasmettere alcun dato per il tempo definito

in S12, per default questo tempo è di un secondo; 2. digitare tre volte il codice di escape con un intervallo che non superi il tempo definito

in S12; 3. dopo aver digitato il codice di escape, non trasmettere alcun dato per il tempo definito

in S12. Se la procedura è stata eseguita correttamente, il modem risponde con il messaggio OK e si pone nell'attesa di comandi con il comando ATH0, per tornare allo stato on line digitare il comando ATO. Modo test Il modem entra in questo stato all'esecuzione di un comando di test, questo può avvenire dal modo comandi o dal modo escape, al termine del test il modem ritorna nel modo precedente.

Page 89: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 89

Programmazione: lo standard hayes Si è passati da una programmazione hardware mediante dip-switch o ponticelli ad innesto ad una programmazione software che consiste nell’inviare al modem una serie di comandi in caratteri ASCII. Il nome di questo standard deriva da una società (l'Hayes Microcomputer Products, Inc.) che negli USA produce la famiglia degli Smartmodem Hayes. I comandi Hayes si sono affermati come standard “de facto” e ora la quasi totalità dei modem costruiti è compatibile, in parte o in tutto, con gli Smartmodem Hayes. I comandi sono inviati al modem nel formato asincrono, preceduti dalla sequenza d'introduzione dei comandi AT (Attention). I comandi e il prefisso possono essere digitati indifferentemente in maiuscolo o minuscolo, ad esempio D (Dial) per chiamare e Z per resettare il modem, e inviati direttamente da tastiera o mediante software di comunicazione. In quest’ultimo caso l’utente avrà cura di definirli nei campi opportuni delle finestre di setup. In fase di programmazione del modem, sulla stessa riga comandi, si possono inserire fino ad un massimo di quaranta caratteri oltre ai caratteri AT. Tale, infatti, è la capacità del buffer del modem. Ogni comando è rappresentato da uno o due caratteri dell’alfabeto e da un parametro numerico; se quest’ultimo è omesso, per default è assunto il valore zero, ad esempio H (H0 riaggancia) e H1 (acquisisci la linea). Attenzione: qui per default s'intende ciò che il modem aggiunge se uno dà il comando senza parametri, e non ciò che è impostato automaticamente quando il modem è acceso, ad esempio il comando V significa V0 (disabilita i codici verbali), ma in fabbrica il modem è generalmente predisposto su V1 ossia con i codici verbali abilitati. I comandi possono essere inviati al modem singolarmente o combinati sulla stessa riga comando (preceduti in questo caso da un solo prefisso AT). Man mano che i singoli caratteri di ogni comando sono digitati si ha la loro collocazione nel buffer, per essere analizzati e interpretati all’arrivo del <CR> che chiude la riga comando. Eventuali spazi inseriti tra un comando e l’altro, il prefisso AT e il <CR>, non occupano spazio nel buffer, ad esempio si può scrivere <AT E0 V1 Q0> che, sebbene in ogni caso criptico, è certamente più facile da interpretare che non <ATE0V1Q0>. Il buffer dei comandi è svuotato quando: - s'invia un nuovo comando; - si spegne il modem; - si fa il reset con il comando opportuno (Z o &F). È buona norma inviare al modem la sequenza di attention tutte le volte che si collega ad un PC, prima di avviare le operazioni di programmazione o di realizzazione del collegamento. Quest'operazione, oltre a permettere al modem di determinare automaticamente la velocità e il valore dei parametri di linea utilizzati dal PC, serve a verificare che il collegamento DTE-DCE sia stato compiuto correttamente, in tal caso il modem restituirà il messaggio OK. Tale messaggio è inviato al DTE anche dopo qualsiasi comando di programmazione, a condizione che non sia stato inviato un comando non riconoscibile, un parametro numerico errato o una stringa di comandi composta da un numero di caratteri maggiore di quaranta. Al verificarsi di una di queste condizioni, il modem invia il messaggio ERROR. Gli altri messaggi che il modem invia di frequente, sono quelli relativi alla procedura di chiamata automatica. In questa fase, quando la chiamata va a buon fine, il modem avvisa il DTE con il messaggio CONNECT accompagnato dall’indicazione relativa alla velocità alla quale il collegamento è stato realizzato, nel caso di modem a correzione e compressione in hardware questo messaggio può essere seguito da altre indicazioni quali ad esempio REL (reliable, in pratica affidabile, detto di un collegamento con correzione errori abilitata) o COMPRESSED. È importante sapere che, secondo la configurazione (comando W), nel messaggio di CONNECT il modem può riportare sia la velocità effettiva del collegamento con il modem remoto (ad esempio 9600 bps), sia invece la velocità di collegamento con il computer (ad esempio 38400 bps).

Page 90: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 90

In caso contrario potrà essere visualizzato uno dei seguenti messaggi: - BUSY in caso di linea occupata; - NO ANSWER in caso di mancata risposta del chiamato; - NO DIAL TONE in assenza del tono di centrale. A collegamento in atto, la caduta della portante del modem remoto, provocherà l’invio al DTE del messaggio NO CARRIER. Se al modem arriva una chiamata dalla linea telefonica, prima di rispondere invierà al DTE il messaggio RING, tante volte quanti sono gli squilli rilevati. Il numero di squilli da rilevare dipende dal valore del registro S0; se questo registro vale zero, la risposta automatica è disabilitata. Una cosa che probabilmente dovrete modificare è la selezione fra toni e impulsi nel comando per comporre il numero (dial). Il comando di dial è D, nel caso che s'intenda far comporre il numero al modem, bisogna far seguire alla D una T (toni, selezione in multifrequenza, centrali digitali) o una P (impulsi, selezione decadica, centrali elettromeccaniche) secondo il metodo che la vostra centrale SIP adotta, dopodiché il numero telefonico da chiamare. Il “dialing prefix” da anteporre al numero inserito in rubrica sarà dunque ATDT o ATDP. La maggior parte dei programmi prevede ATDT come default e voi dovrete modificare quest'impostazione in ATDP se nella vostra zona non è ancora attiva la selezione a toni. Il “dialing suffix”, ossia ciò che va spedito al modem dopo il “prefix” e dopo il numero del chiamato, è, per tutti i modem compatibili Hayes, semplicemente un <CR> (spesso indicato come <CTRL + M> o come sbarretta verticale <|>). Per verificare su che tipo di centrale siete collegati componete il numero 1717 che corrisponde al servizio di telelettura del contascatti telefonico di centrale (costo due scatti, servizio offerto solo dalle centrali digitali). Se trovate occupato siete ancora su una centrale elettromeccanica e non vi resta che aspettare. Ma se invece vi risponde una voce sintetica che vi dà la lettura del vostro contatore, siete sicuramente collegati con una centrale digitale. Di seguito sono descritti i comandi utilizzati, generalmente, sulla maggior parte dei modem: è, però, opportuno fare sempre riferimento al manuale del proprio modem. 1. Comandi operativi del modem AT (Attention Code) Il modem dovrebbe ritornare OK, altrimenti non risponde ai

comandi. ATDn (Dial Number) Chiama un numero telefonico, può contenere cifre da 0 a 9, più

virgole per la pausa (2 sec), es. ATD,74,47,4 ATDTn (Tone) Chiama un numero telefonico con il sistema a toni. ATDPn (Pulse) Chiama un numero telefonico con il sistema ad impulsi. ATA (Auto Answer) Risponde alle chiamate. +++ (Escape Code) ATHn (Hang Up) Di solito è usato per far cadere la linea, terminando

drasticamente il collegamento, 0 = Hang Up (sconnette), 1=Hook Off (in pratica solleva la cornetta del telefono). Il comando ATH0 è usato anche nel caso in cui il modem è sconnesso ma pensa di essere lo stesso online.

ATO (Wait Carrier) Forza il modem ad aspettare il segnale di carrier. A/ (Repeat Command) Ripete l'ultimo comando inserito. 2. Comandi di configurazione del modem ATBn (Protocol) Scelta dello standard 0 = CCITT (Usato in Italia), 1 = Bell. ATEn (Echo) Setta l'echo on/off, normalmente è off quando ci si collega in

full-duplex, ma, nel caso di collegamenti half-duplex, deve essere posto ad on.

ATLn (Volume) Setta il volume dello speaker del modem: 0 o 1 Volume Basso, 2 Medio, 3 Alto.

ATMn (Monitor) Controllo del monitor: 0 = sempre spento, 2 = sempre attivo.

Page 91: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 91

ATQn (Result Code) Abilita o disabilita i codici di ritorno del modem: 0 = abilitato. ATV0 ATV1 0 OK 1 CONNECT 2 RING 3 NO CARRIER 4 ERROR 5 CONNECT 1200 6 NO DIAL TONE 7 BUSY 8 NO ANSWER

Seleziona il formato dei messaggi: codici numeri o stringhe comando eseguito senza errori; connessione; indica che il telefono sta suonando; linea caduta o non presente; comando illegale; connessione a 1200 bps; la linea non dà il segnale di libero; linea occupata; nessuno ha risposto entro il tempo di timeout.

ATXn (Ext. Results) Abilita la selezione dei codici risultato da inviare al DTE e la rilevazione dei toni di linea. 0: connect nn (vel. di tx) NO NO 1: connect nn (vel. di tx) NO NO 2: connect nn (vel. di tx) NO DIAL TONE NO 3: connect nn (vel. di tx) NO BUSY 4: connect nn (vel. di tx) NO DIAL TONE BUSY

ATYn (L.S. Disconnect) Disconnessione dopo un segnale di break, 0 = disabilitato. ATZn (Software Reset) Inizializza il modem ai valori di default. 3. Comandi di configurazione della porta seriale 4. Comandi di configurazione del funzionamento sincrono 5. Comandi dei protocolli di correzione errore e compressione AT\Nn (Select) Controlla il tipo di connessione: 2 = MNP, 4 = V.42, 6 = MNP e V.42. AT%Cn (Set Data) Controlla la compressione dati: 1 = MNP5 e V.42 bis. 6. Comandi di configurazione della funzione fax AT+FCLASS = n Stabilisce la classe di funzionamento: 1 = modo fax. 7. Comandi di test AT&Tn Sono possibili diversi tipi di test in funzione del tipo di modem. 8. Comandi di configurazione della funzione voice AT+FCLASS = 8

Proposta di lavoro N° 1 Inizializzare il modem Hayes Smart. /* This is to serve as an example of how to initialize a Hayes Smart modem. It initialize the baud rate divisors at baud, sets the parametes at 8 data bits, no parity, and 1 stop bit. You can replace the pointer mdmstg to the command values that you want to set the Hayes to. */ int main(void) { unsigned byte=0x00; char *mdmstg = "ATE0X1V1Q0M0ST=45S2=255S0=1\r"; outp(0x3fb,0x80); /* to access baud rate divisors */ outp(0x3f8,0x60); /* set baud rate divisor lsb for 1200 bd */ outp(0x3f9,0x00); /* set baud rate divisor msb for 1200 bd */ outp(0x3fb,0x23); /* set line control reg for 8 bits, !parity, and 1 stop bit */ outp(0x3fc,0x03); /* force dtr and cs signals on */ outp(0x3f9,0x00); /* disable interrupts */ while(*mdmstg != '\0'){ byte = inp(0x3fd); /* input line status register byte */ byte &= 0x20; /* look at transmit hold status bit*/ if(byte == 0x20){ outp(0x3f8,*mdmstg); /* if transmit hold reg empty then */ *mdmstg++; /* output a byte and bump pointer to string */ } } }

Page 92: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 92

Registri del modem I registri del modem consentono di configurare i parametri operativi, essi contengono counter, timer e caratteri di controllo. Il loro numero e, in alcuni casi anche la loro funzione, varia in base al modello e alla casa costruttrice; alcuni sono utilizzati per conservare lo stato del modem (status register) e non possono essere modificati direttamente dall’utente.

REGISTRO FUNZIONE S0 Quando S0 = 0 la risposta automatica è disabilitata. S1 Contatore di squilli di chiamata. S2 Carattere per il codice di escape. S3 S4 S5 S6 Tempo di attesa prima della selezione. S7 Tempo di attesa della portante S8 Tempo di pausa per ogni virgola inserita nel comando di

selezione S9 Tempo di guardia per il riconoscimento della portante. S10 Tempo di disconnessione per assenza di portante. S12 Tempo di guardia per l’invio del codice di escape. S18 Tempo di durata dei test. S36 Numero di tentativi per la richiamata.

CONFIGURAZIONE MODEM Numero di telefono: la virgola inserisce una pausa di circa 2 secondi. Velocità di trasmissione: 2400, 4800, 9600, ... Bit di dati: 7, 8. Bit di stop: 1, 2. Parità: nessuna, pari, dispari. Controllo di flusso: XON/XOFF. Emulazione terminale: DEC VT100 (ANSI), TTY. Connettore: COM1, COM2. Tipo di protocollo: ZMODEM. Programmi di comunicazione Permettono: la connessione alla rete, il collegamento all'host, la posta elettronica, l'emulazione terminale, hanno un linguaggio di comando. L'operazione di trasferire i files da un PC ad un altro richiede che siano in esecuzione simultaneamente due programmi, uno sul PC che legge da hard disk ed invia i dati sulla linea ed un altro che legge dalla linea e li scrive su hard disk. I due programmi devono essere in grado di sincronizzare le loro azioni al fine di non perdere i dati a causa di disturbi sulla linea. Il programma che è eseguito sul calcolatore centrale, è chiamato SERVER, in quanto fornisce un servizio al PC collegato. Il server è in grado di rispondere alle richieste che sono fatte preparandosi ad inviare ed a ricevere il files secondo un protocollo stabilito il cui compito è: lo scambio dei file, la sincronizzazione per la trasmissione e la ricezione, il controllo per gli errori, è importante verificare se i files sono di tipo testo (files ASCII) o programmi (file binari). Sul mercato sono disponibili: DIALOGLINK (Dialog Information Services Inc.) MITE FRAMEWORK (Borland) CONNECT (Learned Information) TELMERGE WORDSTAR (Micropro)

Page 93: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 93

MIKROTEL (ESA) TERMINALE WINDOWS (Microsoft) CROSSTALK (Computerland) PROCOMM PLUS TELIX (EXIS Inc.) LAPLINK (Traveling software) Le poche cose da imparare subito sul proprio programma di comunicazione sono: come si attiva lo Zmodem; come si fanno upload e download (tasti PgUp e PgDn); come si richiama un numero dall'elenco; e infine come si attiva il "capture". Il capture è una funzione che registra su un file di testo tutto ciò che compare sullo schermo del programma di comunicazione. Utilissimo per rivedere con calma, una volta offline, ciò che abbiamo fatto nella precedente sessione di collegamento. Serve fra l'altro a conservare le lettere ricevute ed i chat, che rimangono memorizzati nel file di capture a mano a mano che scorrono sul video. Alcuni tengono il capture attivo durante tutti i loro collegamenti e poi archiviano periodicamente su dischetto i file risultanti, suddividendoli per BBS. Chi si trovasse ad usare il programma Telix (MS-DOS) si scontrerebbe ben presto contro il fatto che, su Telix, l'attivazione del capture è necessariamente manuale: in altre parole succede che uno si colleghi e si accorga solo dopo dieci minuti di non aver ancora attivato il capture.

Proposta di lavoro N° 2 Progettare un programma in SALT (linguaggio di Telix) che, inserito come linked script a ciascuna delle voci della dialing directory, attiva automaticamente il capture ad ogni collegamento riuscito. Il file di capture è chiamato aammgg.BBS dove “aammgg” è la data corrente in formato ISO (serve per riordinare i file per data facendo un semplice sort alfabetico) e “BBS” sono le prime tre lettere del nome della BBS. Più chiamate nello stesso giorno alla stessa BBS finiscono nello stesso file. Per utilizzare il programma compilarlo con il compilatore SALT fornito insieme con Telix e poi inserire il programma oggetto CAPTURE.SLC in ognuna delle voci della dialing directory, nel campo “linked script”. main() { str // CD's: today[8], // data attuale (aa/mm/gg) yy[2], // anno mm[2], // mese dd[2], // giorno filename[10], // aammgg.ext, nome del file di capture extension[3], // primi 3 caratteri del nome della BBS t[10]; // stringa contenente l'orario // CM: prepara tutti i pezzi. _date_format = 2; // CM: aa/mm/gg date (curtime(), today); // CM: metti la data in today subchrs (today, 0, 2, yy); // CM: metti l'anno in yy subchrs (today, 3, 2, mm); // CM: metti il mese in mm subchrs (today, 6, 2, dd); // CM: metti il giorno in dd subchrs (_entry_name, 0, 3, extension); // CM: metti i primi tre caratteri del nome della BBS nell'estensione, assembla i pezzi in un nome di file strcat (filename, yy); strcat (filename, mm); strcat (filename, dd); strcat (filename, "."); strcat (filename, extension); // CM: chiudi il capture file attuale se aperto

Page 94: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 94

if (capture_stat() == 2) { // CA: aperto e "pausa" capture ("*UNPAUSE*"); capture ("*CLOSE*"); } if (capture_stat() == 1) { // CA: aperto capture ("*CLOSE*"); } // CM: apri il file di capture if (capture(filename)==-1) { printsc ("^M^JErrore nell'aprire ^""); printsc (filename);prints ("^"."); } else { time (curtime(), t); printsc ("^MFile di capture ^""); printsc (filename); printsc ("^" aperto alle ore "); printsc (t); prints (".");} } Collegamento diretto fra due utenti Sebbene l'uso più comune di un modem preveda il collegamento di un individuo con una BBS (o di due BBS fra di loro nel caso dei trasferimenti automatici di posta in una rete), è anche possibile ed a volte utile realizzare un collegamento diretto fra due individui senza il tramite di una BBS, come ad esempio quando serve spedire privatamente un file a qualcuno. È anche possibile commutare più volte la trasmissione fra voce e dati nel corso della stessa chiamata. Come si è detto in precedenza, essendo il collegamento di tipo full-duplex bisogna che i due modem trasmettano su canali diversi e per fare questo bisogna introdurre un’asimmetria nella struttura logica del collegamento che permetta di differenziare i due modem. Nella fattispecie s'identifica uno dei due modem come il chiamante (ATB0) ed uno come il chiamato (ATS0). Questa designazione non influisce minimamente sul resto del collegamento se non per il fatto che permette di assegnare a ciascuno dei due modem uno dei due canali senza collisioni. Nel caso della chiamata a BBS è implicito che l'utente è il chiamante e la BBS è il chiamato. Nel caso di collegamento fra due utenti, invece, bisogna stabilirlo a priori e dare il corrispondente comando quando si passa la comunicazione ai modem. Un semplice ed inequivocabile criterio consiste nell'attribuire il ruolo di chiamante a colui che ha effettivamente eseguito la chiamata con il telefono. Per evitare problemi può convenire, anche se non è strettamente necessario, utilizzare per la chiamata a voce un telefono inserito nell'apposita presa sul retro del modem piuttosto che il normale telefono di casa con un'eventuale prolunga. Stabilita la connessione vocale si passa al collegamento dati dando l'opportuno comando al modem: entrambi gli utenti, dunque, prima di procedere ulteriormente, devono avere il modem acceso e collegato ed il programma di comunicazione già attivo. Il chiamante deve dare il comando Hayes D (Dial), lo stesso che serve per comporre il numero (però ovviamente senza numero visto che si è già in collegamento): egli digiterà dunque ATD <CR> e riaggancerà la cornetta, avendo così passato la comunicazione al modem. Dall'altra parte il chiamato, quando sente che il chiamante ha riagganciato la cornetta, dovrà dare il comando A, (Answer), quello che genera il noto fischio, digitando dunque ATA <CR>. Inutile affermare che entrambi i programmi dovranno essere regolati sugli stessi parametri (8N1, ad esempio) e sulla stessa velocità, anche se in genere quasi tutti i modem eseguono l'adattamento di velocità dal lato del chiamato. Se tutto va bene comparirà la scritta CONNECT ad indicare l'aggancio della portante. A quel punto si può digitare qualche carattere di prova (il classico “ciao, mi leggi?”) ricordando però che, a meno di attivare la modalità chat o in ogni caso l'eco locale, lo scrivente non vedrà ciò che scrive ma solo ciò che l'altro gli risponde. Una volta stabilito che il collegamento funziona si può passare al trasferimento di file secondo il protocollo preventivamente concordato, il quale auspicabilmente per voi sarà Zmodem anche in virtù della possibilità di crash recovery. Quando si desidera tornare alla comunicazione in voce, il chiamante deve alzare la cornetta (dalla quale uscirà una

Page 95: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 95

stridentissima pernacchia) ed obbligare il proprio modem a riagganciare. I più tecnici ricorreranno al codice di escape seguito dal comando ATH, coloro che possiedono un modem con l'apposito tastino sul frontale agiranno su quello, gli altri potranno dare hangup con il programma di comunicazione; tutti i metodi sono buoni, al limite anche spegnere il modem. Tuttavia continuerà la pernacchia del modem remoto, per cui dovrete urlare “Pronto! Pronto!” nella cornetta finché non avrete convinto il chiamato (che se vi sente è solo come flebile voce oltretombale dall'altoparlantino del modem, normalmente disattivato) a passare anch'egli la comunicazione al telefono, cosa che in ogni caso egli farà spontaneamente non appena si renderà conto che il suo modem ha perso la portante. Bisogna prestare attenzione al fatto che la procedura è asimmetrica e non può essere il chiamato a sollevare la cornetta per primo: se ciò avviene, infatti, il modem del chiamante perde la portante e riaggancia, facendo cadere la comunicazione. Se viceversa, come consigliato, è il chiamante a sollevare la cornetta, il modem del chiamato a sua volta perde la portante e riaggancia, ma la linea non cade perché il chiamante la tiene impegnata con il fatto che ha la cornetta sollevata. Il chiamato dunque, leggendo <NO CARRIER> sul proprio monitor, può alzare la cornetta ed entrare in contatto vocale con il chiamante. Tutto ciò ovviamente tenendo presente che nulla vieta di ripetere la procedura ATD/ATA anche nell'ambito della stessa chiamata qualora fosse necessario un nuovo trasferimento dati. VERIFICA COLLEGAMENTO MODEM-PC Hardware Il tester d'interfaccia è uno degli strumenti di misura più semplici utilizzato nel campo della trasmissione dati, spesso è indicato anche con i termini di analizzatore o visualizzatore d'interfaccia. L’uso di questo strumento ha come scopo principale quello di analizzare il corretto funzionamento dei circuiti presenti nell’interfaccia RS232 e di intervenire per creare, artificiosamente, situazioni non previste dai collegamenti standard. Il tester è caratterizzato dalla presenza di due connettori standard DB25 di tipo maschio e femmina che offrono la possibilità di collegare lo strumento tra il DTE e il DCE. La visualizzazione dello stato di ognuno dei circuiti dell’interfaccia avviene mediante LED il cui numero varia in base al modello e alla casa costruttrice; lo strumento è provvisto anche di tanti micro-interruttori quanto sono i circuiti in grado di controllare, quando sono in posizione ON i segnali che i due apparati si scambiano non sono influenzati dallo strumento che in questo caso esegue un semplice monitoraggio dei segnali stessi. Software OPEN "com2:2400,n,8,1" FOR RANDOM AS #1 PRINT #1, "at" PRINT INPUT$(8, 1) ;al run compare AT e poi OK

Proposta di lavoro N° 3 Progettare il protocollo Xmodem. #include <stdlib.h> #include <process.h> #include <stdio.h> #include <bios.h> #include <conio.h> #include <string.h> #include <graphics.h> #define COM1 0 #define DATA_READY 0x100

Page 96: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 96

#define TX 1 #define RX 2 #define STATE 3 #define LOW 0x7F #define CAR 0xFF #define TRUE 1 #define FALSE 0 /* 1200 baud dati a 7 bit nessuna parit…1 bit di stop */ #define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00) void maschera(int *scelta); unsigned rx_car(void),rx_blocco(void); int rx_controllo(void),rx_num(void);void rx_file(void); unsigned tx_car(char abyte),tx_blocco(void); void tx_checksum(unsigned checksum),tx_num(unsigned numero),tx_file(void); char file_fonte[20], file_dep[20]; FILE *fonte, *f_dep; int main(void) { int scelta;bioscom( STATE, SETTINGS, COM1); maschera(&scelta); if(scelta==1) { settextstyle(TRIPLEX_FONT, HORIZ_DIR,2); outtextxy(10,360,"Inserisci il nome del file fonte da trasmettere: "); gotoxy( 63,24);gets(file_fonte);closegraph();tx_file(); } if(scelta==2) { unsigned somma_car;settextstyle(TRIPLEX_FONT, HORIZ_DIR,2); outtextxy(10,360,"Inserisci il nome del file deposito di ricezione: "); gotoxy( 63,24);gets(file_dep);closegraph();rx_file();} if (scelta==3) exit(0); } void maschera(int *scelta) { char buff[20]; int gdriver = DETECT, gmode, errorcode; initgraph(&gdriver, &gmode, "c:\\borlandc\\bgi");errorcode=graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n",grapherrormsg(errorcode)); printf("Press any key to halt:");getch();} settextstyle( SANS_SERIF_FONT, HORIZ_DIR,4); outtextxy( 10, 20, "TRASMISSIONE COL PROTOCOLLO XMODEM"); settextstyle( SMALL_FONT, HORIZ_DIR, 8); outtextxy( 10, 100, "1_ TRASMISSIONE"); outtextxy( 10, 140, "2_ RICEZIONE"); outtextxy( 10, 180, "3_ FINE"); settextstyle( TRIPLEX_FONT, HORIZ_DIR,3); outtextxy(10, 240, "Inserisci la tua scelta: "); gotoxy( 35, 17); *scelta=atoi(gets(buff)); } /* ------------------------------ RICEZIONE ------------------------------ */ unsigned rx_car(void) /* ricezione di un carattere */ { int num, word_out;char car[2]; if ((word_out = bioscom( RX, 0, COM1) & LOW) != 0) { num = (word_out & CAR); /* isolamento della parte bassa di word_out in num */ itoa( num, car, 2); /* converte da binario a carattere il contenuto di num */ fputs( car, f_dep); /* mette il carattere ricevuto in f_dep */ return((unsigned)num);} } unsigned rx_blocco(void) /* ricezione blocco */ { int i;unsigned val_car=0, somma_car=0; for(i=0;i<128;i++) { while( (bioscom( STATE, 0, COM1) & DATA_READY) == 0 ); val_car=rx_car();somma_car=somma_car+val_car;} return(somma_car); } int rx_controllo(void)

Page 97: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 97

{ int control, word_out; if ((word_out = bioscom( RX, 0, COM1) & LOW) != 0) { control = (word_out & CAR); /* isolamento della parte bassa di word_out in control */ if(control==1) return(1); if(control==3) return(3);else return(0);} } int rx_num(void) { int num, word_out; while( (bioscom( STATE, 0, COM1) & DATA_READY) == 0 ); if ((word_out = bioscom( RX, 0, COM1) & LOW) != 0) { num = (word_out & CAR); /* isolamento della parte bassa di word_out in num */ return(num);} } void rx_file(void) { int status, word_out, control=0;int n_blocco, compl;fopen( file_dep, "w"); do { while( (status = bioscom( STATE, 0, COM1)) == 0 ); /* controlla lo stato attuale della porta */ if ((status & DATA_READY)==0){ /* se il bit Data ready Š a valore 1 */ control=rx_controllo(); if(control==1) { /* se carattere di controllo uguale a SOH */ n_blocco=rx_num(); printf("\nNumero blocco in ricezione: %d",n_blocco); compl=rx_num();rx_blocco();} if(control==3) printf("\nTutto il file Š stato ricevuto"); } } while(control==1); } /* ---------------------------- TRASMISSIONE ----------------------------- */ unsigned tx_car(char abyte) /* trasmette un carattere */ { unsigned val_car=0;bioscom( TX, abyte, COM1); val_car=atoi((char *)abyte);return(val_car); } void tx_num(unsigned numero) /* trasmette il numero */ { char string[2], abyte;itoa( numero, string, 10); abyte=(char)string;bioscom( TX, abyte, COM1); } unsigned tx_blocco(void) /* trasmette un blocco */ { int i=0;char abyte;unsigned val_car=0, somma_car=0; while( (!feof(fonte)) && (i<128) ) { abyte=fgetc(fonte);val_car=tx_car(abyte); somma_car=somma_car+val_car;i++;} abyte=' '; while(i<128) { val_car=tx_car(abyte); i++; } return(somma_car); } void tx_checksum(unsigned checksum) /* trasmette il checksum del blocco */ { char string[2], abyte;itoa( checksum, string, 10); abyte=(char)string;bioscom( TX, abyte, COM1); } void tx_file(void) /* trasmette il file fonte */ { unsigned etx=3;unsigned somma_car=0,checksum=0;unsigned n_blocco=1, compl; fonte=fopen( file_fonte, "r"); printf("\nNumero blocco in trasmissione: %d",n_blocco); while(!feof(fonte)) { tx_num(n_blocco);compl=~n_blocco;tx_num(compl); somma_car=tx_blocco(); checksum=somma_car/128; tx_checksum(checksum);n_blocco++;} tx_num(etx);printf("\nTutto il file Š stato trasmesso");fclose(fonte); }

Page 98: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 98

Proposta di lavoro N° 4 Progettare il protocollo di Christensen. /* Trasmissione di file attraverso un protocollo sincrono BCP */ #include <bios.h> #include <stdio.h> #include <conio.h> #include <dos.h> #include <process.h> #include <string.h> #include <ctype.h> #include <errno.h> #define BOOL char #define UINT unsigned int #define BYTE char #define WORD unsigned int #define FOUT "pippo.out" #define FINP "pippo.inp" enum parita {Even,None,Odd}; #define NUMDATI 128 /* Numero di byte di dati */ #define NUMBLK NUMDATI+4 /* Numero di byte del blocco */ #define SOH 01 /* Start Of Header */ #define EOT 04 /* End Of Trasmission */ #define ACK 06 /* Acknoledge */ #define NACK 021 /* Not Acknoledge */ struct Packet { /* Pacchetto da spedire */ BYTE cmd, /* Contiene SOH */ NBlk, /* Numero blocco (max 256) */ CKSUMnBlk, /* Checksum del numero blocco (255-N. blocco) */ data[NUMDATI], /* Byte di dati */ CKSUMBlk; /* Checksum sui dati */ }; void InsNomi(char **inpf, char **outf),SetBit(WORD res),SettaDati(void); void SettaVelox(void),SettaStop(void),SettaParita(void),SettaPorta(void); BOOL SettaSer(void); void Transmit(char *file, short dest); BOOL errore(WORD); FILE *ApriFile(char *NomeFile, char *modo); char PremiTasto(char *stringa); BOOL BlkACK(void); void Send(struct Packet *blk, short Pta),Receive(char *nome, short mit); void Impacchetta(struct Packet *blocco, FILE *fh, BYTE NumBlk, BOOL Last); BOOL RecImp(char carat, struct Packet *blk, int num); BOOL Timeout,ShiftEmpty,HoldingEmpty,Break,FramingErr,ParityErr; BOOL OverrunErr,NotDataReady; BYTE ResHigh,ResLow; /* variabili flag contenenti i bit di status della seriale */ short BitDati=8,Porta=0,BitStop=2,Velox=4800; BYTE SetRS=(0x03 | 0x04 | 0x18 | 0xC0); enum parita Parity=Even; char *NomeFile,*NomeFileOut; /* 8 bit dati | 2 bit stop | parit… pari | 4800 baud */ /* Variabili contenenti i parametri della seriale */ int main(int argc, char *argv[]) { int scelta; if (argc==2 && argv[1][0]=='?' || argc>3) { printf("%s <file input> <file output>",argv[0]);exit(5);} if (argc==3) { NomeFile=argv[1]; NomeFileOut=argv[2];} else { NomeFile=FINP;NomeFileOut=FOUT;}

Page 99: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 99

do { clrscr(); printf("TRASMISSIONE E RICEZIONE DI UN FILE CON PROTOCOLLO CHRISTENSEN\n\n"); printf("1) Settaggio seriale\n");printf("2) Trasmissione file\n"); printf("3) Ricezione file\n");printf("4) Cambio nome file\n"); printf("0) Quit\n\n");printf("Scelta: ");scelta=getche(); printf("\n"); switch (scelta) { case '0': clrscr();printf("\nArrivederci!\n\n");exit(0); case '1': SettaSer();break; case '2': clrscr();printf("TRASMISSIONE DEL FILE: %s\n\n",NomeFile); Transmit(NomeFile,Porta);break; case '3': clrscr();printf("RICEZIONE DEL FILE: %s\n\n",NomeFileOut); Receive(NomeFileOut,Porta);break; case '4': clrscr();printf("INSERIMENTO NOMI DEI FILE\n\n"); printf("Input : %s\n",NomeFile); printf("Output: %s\n\n",NomeFileOut); InsNomi(&NomeFile,&NomeFileOut);break; default: printf("\n\nScelta errata.");delay(500);} } while (scelta<0 || scelta>3);return(0); } void InsNomi(char **inpf, char **outf) { char inp[12],out[12]; printf("Nome file di input :");gets(inp); printf("Nome file di output:");gets(out); strcpy(*inpf,inp); strcpy(*outf,out); } void SetBit(WORD res) { Timeout=(res & 0x8000) >> 15; /* 1000 0000 0000 0000 */ ShiftEmpty=(res & 0x4000) >> 14; /* 0100 0000 0000 0000 */ HoldingEmpty=(res & 0x2000) >> 13; /* 0010 0000 0000 0000 */ Break=(res & 0x1000) >> 12; /* 0001 0000 0000 0000 */ FramingErr=(res & 0x800) >> 11; /* 0000 1000 0000 0000 */ ParityErr=(res & 0x400) >> 10; /* 0000 0100 0000 0000 */ OverrunErr=(res & 0x200) >> 9; /* 0000 0010 0000 0000 */ NotDataReady=(res & 0x100) >> 8; /* 0000 0001 0000 0000 */ ResHigh=res & (0xFF << 8); /* 0xFF= 1111 1111 */ ResLow=res & 0xFF; } void SettaDati(void) { do { clrscr();printf("Quanti bit di dati (7/8): ");scanf("%d",&BitDati); } while (BitDati!=7 && BitDati!=8); if (BitDati==7) SetRS=(SetRS | 0x02) & 0x7FFE; /* l'and azzera il bit 0 */ else SetRS=SetRS | 0x03; } void SettaStop(void) { do { clrscr();printf("Quanti bit di stop (1/2): ");scanf("%d",&BitStop); } while (BitStop!=1 && BitStop!=2); if (BitStop==1) SetRS=(SetRS | 0x00) & 0x7FFB; /* l'and azzera il bit 2 */ else SetRS=SetRS | 0x04; } void SettaPorta(void) { do { clrscr();printf("Quale porta (1=COM1, 2=COM2): ");scanf("%d",&Porta); } while (Porta!=1 && Porta!=2); Porta=Porta-1; } void SettaParita(void) { int p; do {

Page 100: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 100

clrscr();printf("1) Even\n");printf("2) Odd\n");printf("3) None\n"); printf("0) Ritorna\n\n");printf("Quale parit… (0..3): ");p=getche(); switch (p) { case '0': break; case '1': Parity=Even;break; case '2': Parity=Odd;break; case '3': Parity=None;break; default: printf("\nOpzione errata!");delay(500);} } while (p<'0' || p>'3'); if (Parity==Even) SetRS=SetRS | 0x18; else if (Parity==Odd) SetRS=(SetRS|0x08)&0x7FEF; /*l'and azzera il bit 4*/ else SetRS=(SetRS | 0x00) & 0x7FE7; /* l'and azzera i bit 3-4 */ } void SettaVelox(void) { int v; do { clrscr();printf("1) 600 baud\n");printf("2) 1200 baud\n"); printf("3) 2400 baud\n");printf("4) 4800 baud\n"); printf("5) 9600 baud\n");printf("0) Ritorna\n\n"); printf("Quale velocit… (0..5): ");v=getche(); switch (v) { case '0': break; case '1': Velox=600;break; case '2': Velox=1200;break; case '3': Velox=2400;break; case '4': Velox=4800;break; case '5': Velox=9600;break; default: printf("\nOpzione errata!");delay(500);} } while (v<'0' || v>'5'); } BOOL SettaSer(void) { int scel; do { clrscr();printf("\n SETTAGGIO RS-232\n\n"); printf("1) N. bit dati (%d) \n",BitDati); printf("2) N. bit stop (%d)\n",BitStop); printf("3) N. porta (COM%d)\n",Porta+1); printf("4) Parit… "); if (Parity==Even) printf("(Even)\n"); else if (Parity==Odd) printf("(Odd)\n"); else printf("(None)\n"); printf("5) Velocit… (%d)\n",Velox);printf("0) Configura\n\n"); printf("Scelta (0..5): ");scel=getche(); switch (scel) { case '0': break; case '1': SettaDati();break; case '2': SettaStop();break; case '3': SettaPorta();break; case '4': SettaParita();break; case '5': SettaVelox();break; default:printf("\n\nScelta errata!\n");delay(500);} } while (scel!='0'); bioscom(0,SetRS,Porta); /* settaggio RS-232 */ } FILE *ApriFile(char *NomeFile, char *modo) { FILE *fh; fh=fopen(NomeFile,modo); if (!fh) { printf("Errore nell'aprire il file: %s\n",NomeFile); printf("Codice: %s",strerror(errno)); exit(5); } return(fh); } char PremiTasto(char *stringa)

Page 101: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 101

{ char tasto;printf("%s.\n",stringa);tasto=getch(); if (!tasto) { printf("\nFATAL ERROR. Abort.\n");exit(5);} return(tasto); } /* Trasmette un file */ void Transmit(char *file, short dest) { struct Packet blocco; BYTE x=0; FILE *fh; BOOL Last=0; fh=ApriFile(file,"r"); do { if (feof(fh)) Last=1;printf("Spedisco blocco n: %d\n",x+1); Impacchetta(&blocco,fh,x,Last);Send(&blocco,dest);x++; } while (!feof(fh)); fclose(fh); } BOOL BlkACK(void) { WORD result; int Tout=0; do { result=bioscom(2,SetRS,Porta); /* Legge il carattere di ACK o NACK */ SetBit(result); /* fino a Timeout */ if (Timeout) Tout++; } while (ResLow==0); printf("Timeout: %d Controllo : %d\n",Tout,ResLow); if (ResLow==ACK) return(1); else return(0); } /* Spedisce un blocco */ void Send(struct Packet *blk, short Pta) { BYTE *dat; UINT x; do { dat = (BYTE *) blk; for (x=0; x<NUMBLK; x++) { printf(" Spedisco il %3dø carattere.\n",x+1); bioscom(1,dat[0],Pta);dat++; } } while (!BlkACK());/* Se non arriva l'accettazione rispedisco */ } /* il blocco. Sar… il ricevente a cavarsela. */ /* Prepara il blocco da trasmettere con la send */ void Impacchetta(struct Packet *blocco, FILE *fh, BYTE NumBlk, BOOL Last) { int x,CarLetti; WORD somma=0; if (Last) blocco->cmd=EOT; else blocco->cmd=SOH; blocco->NBlk=NumBlk;blocco->CKSUMnBlk = 255-NumBlk; CarLetti=fread((BYTE *)blocco->data,sizeof(BYTE),NUMDATI,fh); for (x=CarLetti; x<NUMDATI; x++) blocco->data[x]=-1; x=0; do { somma += blocco->data[x];x++; } while (x<NUMDATI); blocco->CKSUMBlk = somma / 255; /* Modulo 2^8 */ } void Receive(char *nome, short mit) { WORD result;int x;BYTE RecBlk=0;BOOL error;struct Packet blocco;FILE *fh; fh=ApriFile(nome,"w"); do { do { do { /* Aspetto l'SOH o l'EOT */ result=bioscom(2,SetRS,mit); /* Legge il carattere */ SetBit(result); } while (ResLow!=SOH && ResLow!=EOT); blocco.cmd=ResLow;x=1; error=1; do { result=bioscom(2,SetRS,mit); /* Legge carattere */ SetBit(result);error=RecImp(ResLow,&blocco,x); x++; } while(x<NUMBLK); if (error) bioscom(1,NACK,mit); else {if (blocco.NBlk==RecBlk) {

Page 102: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 102

fwrite(blocco.data,sizeof(BYTE),NUMDATI,fh);RecBlk++;} bioscom(1,ACK,mit);} } while (error && blocco.NBlk!=RecBlk); } while (blocco.cmd!=EOT); fclose(fh); } BOOL RecImp(char carat, struct Packet *blk, int num) { static WORD somma=0; BYTE *dat,CkSum; dat=(BYTE *)blk; dat[num]=carat; if (num==3) if (blk->NBlk!=carat+255) return(1); else {puts("Nø di blocco SBAGLIATO!!!");return(0); } else if (num>3 && num<NUMBLK-1) somma += (WORD)carat; else if (num==NUMBLK-1) { printf("%c",carat);CkSum=somma/255;somma=0;blk->data[128]='\0'; if (CkSum==carat) { puts("Controllo CHECKSUM 0: ok"); printf("%s",blk->data);return(0); } else {puts("Controllo CHECKSUM 1: errore"); return(1);} } return(1); }

Page 103: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 103

WAN Introduzione I collegamenti geografici si possono effettuare interconnettendo i mezzi trasmissivi pubblici in Italia forniti da Telecom con Router, Bridge Remoti, Brouter. Tale interconnessione si può effettuare tramite due filosofie principali: 1. Reti a commutazione di circuito come Canali Diretti Numerici (CDN) o non diretti, ma

digitalizzati come ISDN (Integrated Services Digital Network) o nella peggiore delle ipotesi, reti RTC (Rete Telefonica Commutata) telefonia standard e PSTN (Public Switched Telephone Network).

2. Reti a commutazione di pacchetto come ITAPAC (protocolli X.25), CLAN (protocolli Frame Relay o SMDS), MAN (protocollo SMDS), ATM (Asynchronous Transfer Mode).

Naturalmente tutti questi canali necessitano di DCE (Modem), magari di tipologie differenti se il collegamento è CDN piuttosto che telefono, piuttosto che ITAPAC. RETI a COMMUTAzione di circuito Canali commutati (a ricerca casuale e con un solo interlocutore alla volta) e diretti (collegano immutabilmente, direttamente e permanentemente due punti). Canali Commutati telefonici: progettati per informazioni foniche e quindi limitati. Servono dispositivi che adattano il segnale digitale in segnali analogici e viceversa (Modem). CDA (Canali Diretti Analogici) e CDN (Canali Diretti Numerici, digitali). Commutazione di circuito (concepita per la telefonia) si creano circuiti fisici punto-punto (tramite relè o gruppi di relè) e sono di uso esclusivo di chi se ne appropria per primo. Si paga a tempo e non in base allo scambio di quantità di informazione. Bassa utilizzazione canale (occupato anche se non si comunica niente). Canale di trasmissione dati molto tollerante (non richiede specifiche). Qualità che peggiora all’aumentare della distanza. Tariffazione a tempo.

Rete RTC L’architettura di base è piramidale: ogni settore telefonico, che comprende una o più reti urbane, è collegato al proprio distretto; ogni distretto è collegato al proprio compartimento, il quale a sua volta è interconnesso con gli altri compartimenti. Il territorio nazionale è suddiviso in 21 compartimenti, 231 distretti e 1400 settori telefonici. Questo sistema consente ad un utente di collegarsi con qualunque altro interlocutore, nazionale o estero, per trasmettere ogni tipo di segnale (vocali, dati, facsimile, allarme, comando) purché compatibile con le caratteristiche trasmissive del sistema telefonico (segnali compresi tra le frequenze di 300 e 3400 Hz). Un dispositivo elettronico, grazie ad un certo numero di linee interne di servizio (Cross Bar) ed un sistema d’interruttori comandati dal numero telefonico composto dal chiamante, crea un percorso fisico permanente, per tutta la durata della comunicazione, tra la linea entrante proveniente dalla sorgente e la linea uscente verso il destinatario. Si paga in funzione della distanza e del tempo di utilizzo:

Page 104: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 104

questa soluzione è accettabile solo nel caso in cui gli host sono in ambito urbano; velocità massima 28800 bps. Rete CDN collegamento fisso e diretto fra un utente ed un host; consente alta velocità di trasmissione, è conveniente solo per lunghi e frequenti collegamenti con trasmissione di grandi quantità di dati, costo elevato in quanto il canone del noleggio della linea è in funzione della distanza e non della frequenza di utilizzo. CDN Nativo (senza rete pubblica): velocità da 2400 bps fino a 2Mbps. CDN InternetWork: da 9600 a 2 Mbps, più comune 64 kbps. Rete ISDN Rete numerica integrata nei servizi, è uno standard internazionale definito dal CCITT; è la naturale evoluzione tecnologica della rete telefonica (è una rete commutata che utilizza il normale doppino telefonico, la banda va dai 7 KHz a 15 KHz), ma è più veloce e più affidabile; i servizi di fonia e trasmissione dati sono integrati in un'unica rete; è possibile comunicare con tutte le reti telefoniche e telematiche, esempio ITAPAC. È affidabile: tutte le informazioni, voce compresa, sono trasmesse in formato digitale; permette una vasta gamma di applicazioni: trasmissione di testi, fotografie, grafici, documenti; accesso a banche dati ed archivi multimediali; teleconferenza audiovisiva; connessione tra reti locali. Lo scopo di ISDN è quello di portare un collegamento digitale a tutte le scrivanie e a tutte le case, fornendo comunicazioni digitali end-to-end con qualunque altro dispositivo ISDN collegato in rete, senza bisogno di modem. L'obiettivo è quello di consentire a qualunque dispositivo di comunicazione (telefono, fax, computer o televisore) di collegarsi attraverso una rete ISDN agli altri dispositivi di comunicazione. Poiché la rete si basa sulla tecnologia informatica, i limiti fisici del sistema telefonico corrente saranno abbattuti. Ad esempio, tutti potranno avere il proprio numero telefonico ISDN che si sposterà con loro non importa dove nel mondo. Per inviare dati utilizzando un collegamento ISDN, un computer compone il numero del computer di destinazione e, quando il collegamento è realizzato, trasmette i dati digitali direttamente all'altro dispositivo, senza che sia necessario avere un dispositivo intermediario per la conversione digitale-analogica o modem. La rete ISDN dovrebbe essere in grado di funzionare sugli stessi cavi digitali del sistema telefonico corrente, coesistendo con l'attuale sistema analogico fino a quando non l'avrà sostituito completamente. Sul PC è necessario installare una scheda aggiuntiva che permette il collegamento, l’emissione del dial-tone, la composizione del numero e la trasmissione. Esistono due pacchetti ISDN, chiamati l'interfaccia BRI (Basic Rate Interface) e l’interfaccia PRI (Primary Rate Interface). Il collegamento BRI ha due canali digitali B (Bearer) da 64 Kbps e di un canale D (Data) di controllo da 16 Kbps. I canali B sono utilizzati per la trasmissione di dati digitali comprese voci digitalizzate immagini trasmesse via fax. L'interfaccia BRI è anche nota come servizio 2B+D. L'interfaccia PRI si basa invece sulla velocità di trasmissione delle linee T1 o E1 con il potenziale di multiplexing già visto in precedenza. Quest'interfaccia PRI è anche nota come 23B+D. L'interfaccia PRI, a 23 canali o ad altissima velocità, è stata progettata per le applicazioni commerciali; l'interfaccia BRI, con i suoi due canali dati, è concepita come servizio residenziale. Ad esempio, una linea potrebbe essere impiegata per voce digitale mentre l'altra potrebbe collegare un computer ad un altro servizio. Il cuore della tecnologia ISDN è l'hardware utilizzato dalle aziende telefoniche per instradare dati ISDN, reti dati a pacchetto con protocollo X.25 e nuove tecniche ad alta velocità come frame relay. Gli utenti finali saranno in grado di collegarsi alla rete per mezzo di un terminale ISDN, definito come TE1 (Terminal Equipment, type 1). Il dispositivo TE1 si collegherà alla rete ISDN per mezzo di un collegamento digitale a quattro fili in doppino telefonico che trasmetterà e riceverà dati alla velocità di 192 Kbps. Gli utenti saranno in grado di connettere apparecchiature “vecchio stile” come PC o terminali attraverso adattatori chiamati TA (Terminal Adapter). I dispositivi TA disporranno

Page 105: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 105

di prese per i collegamenti ISDN a quattro fili e avranno, dall'altro, prese per il collegamento con il computer. Con la maggior parte delle LAN che comunicano a velocità comprese tra i 4 e i 16 Mbps, le classiche reti ISDN possono trasformarsi in un collo di bottiglia. Inoltre, i pianificatori ISDN sperano di collocare un video digitalizzato sui cavi ISDN, ma il sistema corrente non ha l'ampiezza di banda (capacità dati) di supportarlo. In questo periodo, un'estensione di ISDN si trova allo stadio di pianificazione. I piani per reti ISDN a larga banda (B-ISDN) definiscono in questo periodo velocità di trasmissione dati più elevate dai 32 ai 132 Mbps. La tecnologia per supportare B-ISDN non sarà probabilmente disponibile fino a circa il 1998, e lo standard stesso non è ancora definito. In ogni caso, si spera che B-ISDN sarà in grado di tenere il passo con il crescente bisogno di hardware e software più nuovi e moderni che consentano un “mondo cablato nel futuro”. Linee dirette Una linea affittata o privata è un collegamento telefonico permanente tra due punti. Non è necessario comporre un numero per i collegamenti tra i due dispositivi che si trovano all'estremità della linea privata dato che essi sono collegati in modo permanente. Anche la qualità del segnale è di solito più alta di quella di una normale linea telefonica, un fatto che consente velocità di trasmissioni più elevate: tipicamente 64 Kbps. Uno degli svantaggi delle linee private è il costo; la società deve pagare per il collegamento anche quando esso è inattivo e quindi la spesa deve essere giustificata dal traffico di dati. ADSL (Asymetric Digital Subscriber Line) Questa tecnologia fornisce al subscriber un collegamento Internet ad alta velocità sullo stesso doppino usato per la linea telefonica. L’asymetric della sigla sta ad indicare che le velocità disponibili con tale collegamento sono diverse per il downstream e l’upstream, con valori tipici di 640 kbps dal provider al PC (downstream) e di 128 kbps dal PC al provider (upstream). Questa limitazione dovrebbe garantire collegamenti sicuri da e verso tutte le centrali che supportano Adsl, indipendentemente dalla qualità della linea. Il collegamento è permanente, 24 ore al giorno, indipendentemente dalla linea telefonica e a costo fisso. Per dotarsi di un collegamento ADSL si deve prima di tutto verificare se si è in una zona geografica coperta dal servizio da parte di qualche provider. L’ADSL necessita di linee telefoniche di buona qualità e di modifiche alle centrali telefoniche da parte di Telecom. Il secondo passo è quello di contattare il provider di proprio gradimento e sottoscrivere un contratto per l’accesso ADSL. Il fornitore dà mandato ad un tecnico di una delle società convenzionate di verificare a domicilio l’affidabilità della linea telefonica esistente e d’installare un dispositivo d'interfaccia (network terminator) connesso alla linea telefonica. A questo punto è necessario installare un modem ADSL, collegato al PC via Ethernet o USB. Per l’installazione e l’attivazione si deve pagare una cifra una tantum ed un canone mensile: dalla firma del contratto in poi, la linea resta sempre aperta senza incidere di una lira sul tradizionale traffico telefonico e, salvo casi particolari, non è prevista alcuna limitazione sul traffico dati. Ovviamente la linea telefonica continua a funzionare indipendentemente dal collegamento ADSL e sono quindi possibili telefonate e sessioni di navigazione contemporaneamente.

Page 106: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 106

L’ADSL rende possibile la trasmissione dati ad alta velocità tra l’utente e la centrale telefonica, a costi contenuti. Per capire come funziona si devono prima di tutto comprendere il funzionamento e i limiti nella trasmissione dati su di una comune linea telefonica. Alcuni dei dispositivi che fisicamente stabiliscono una connessione con il numero telefonico chiamato sono posti in centrale telefonica. Ogni centrale copre le richieste di una zona geografica delimitata. Ogni utenza è connessa alla centrale telefonica da un doppino di rame (local loop): i doppini non si dispongono a raggiera della centrale telefonica verso le singole destinazioni (abitazioni, uffici), ma si espandono lungo direttrici principali costituite da fasci di cavi (binder group). Quando s'installa una linea telefonica in un appartamento, un tecnico collega con un cavo le prese telefoniche binder group più vicino alla casa, connettendo in questo modo la presa del telefono alla centrale. telefonica.

Il segnale che si crea parlando al telefono ha una banda di circa 10 KHz. Numerosi esperimenti hanno portato a valutare che la banda più importante per l’intelligibilità del segnale vocale sia in realtà quella a basse frequenza, compresa tra i 100 e i 5000 Hz. Sulla linea telefonica, dalla cornetta alla centrale, il segnale vocale incontra numerosi filtri che ne limitano la banda a un valore che ne garantisca la comprensione da parte del destinatario della chiamata. Uno dei vantaggi collaterali di questa limitazione consiste nel fatto che l’operatore telefonico può instradare un gran numero di segnali vocali su un unico conduttore, grazie a un processo detto multiplazione: di frequenza nel caso di trasmissioni analogiche, di tempo per quelle digitali. Più è stretta la banda del segnale da trasmettere, più canali vocali possono essere trasmessi su un unico mezzo (e meno il segnale risulta intelligibile). In Italia, questa situazione un po’ conflittuale ha portato all’adozione di una banda telefonica che va da qualche decina di Hz a circa 3500 Hz. La rete telefonica è quindi nata e si è sviluppata esclusivamente per la trasmissione di segnali vocali. Tutto ciò impone l’utilizzo di modem analogici per trasmettere dati sulla linea telefonica. La trasmissione dei dati su linea telefonica ha però lo spiacevole inconveniente di poter sfruttare unicamente una banda attorno ai 3200 Hz, che ogni utente ha a disposizione nonostante la banda del doppino telefonico installato nelle nostre case sia notevolmente maggiore e ampiamente inutilizzata. Un secondo problema per quanto riguarda la trasmissione di dati su linea telefonica è legato all’enorme differenza nella durata media tra una telefonata vocale (mediamente qualche minuto) e una verso un provider Internet. Le chiamate a Internet, più lunghe, rischiano di intasare e paralizzare i dispositivi preposti al loro smistamento. Per evitare il segnale di occupato, le compagnie telefoniche devono quindi acquistare nuovi dispositivi per ampliare la capacità delle linee: non è difficile immaginare quanto questo incida sui costi di una compagnia telefonica, soprattutto in quei Paesi dove è maggiore la diffusione di Internet. Nella centrale telefonica tecnologicamente in grado di offrire collegamenti ADSL, le apparecchiature possono discriminare tra comunicazioni Internet/ADSL e traffico vocale. Anche se viaggiano sullo stesso doppino telefonico, le informazioni digitali sono

Page 107: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 107

riconosciute e discriminate perché occupano una banda superiore rispetto a quella del segnale vocale. Per contro, i dati da Internet verso il PC non viaggiano sulle linee dedicate al traffico vocale, ma, tipicamente, sul collegamento ATM che il provider ha in gestione dall’operatore telefonico e che collega la centrale al provider. In particolare, nella centrale telefonica, le comunicazioni ADSL sono gestite da un DSLAM (DSL Access Multiplexer), che ha il compito d'instradare il traffico dei clienti sulla connessione del provider e spedire i dati all’utente cui sono destinati. Il dialogo tra questo dispositivo e le destinazioni finali avviene attraverso i numerosi ATUC (ADSL Transmission Unit Central Office) che il DSLAM stesso incorpora. A destinazione è installato il dispositivo corrispondente, un ATUR (Adsl Transmission Unit Remote). L’ATUC e l’ATUR, uno nella centrale e l’altro in casa, sono i componenti che fisicamente scambiano i dati e garantiscono il collegamento tra le periferiche dell’utente e il DSLAM. Per consentire la convivenza di ADSL e voce occorre installare, in casa, dei filtri (splitter) lungo la linea, su ogni presa telefonica, oppure un dispositivo a monte dell’impianto.

ATUR e l’ATUC comunicano lungo un cavo dove è già potenzialmente presente una comunicazione vocale a bassa frequenza. Per questo motivo le informazioni digitali non possono semplicemente essere indirizzate sul doppino, ma devono subire un processo di modulazione che permetta di allocare il segnale dati e quello vocale in due bande differenti, senza possibilità d'interferenza. Nel caso dell’ADSL, i due tipi di modulazione più diffusi sono Cap e Dmt. Il primo è un tipo di modulazione di tipo QAM (Quadrature Amplitude Modulation) con una portante per il traffico verso Internet e una per il traffico verso il cliente. Il segnale ottenuto dalla modulazione Cap occupa l’intera banda del doppino. Con la modulazione Dmt, invece, la banda ADSL allocata sul doppino è suddivisa in un numero massimo di 288 sottobande di 4 KHz ciascuna, di cui 256 verso Internet e 32 verso l’utente. Ogni banda è sede di un segnale modulato Qam-64. I gruppi di sottobande sono allocati sul doppino in questo modo: da 25 a 200 KHz per l’upstream e da 250 KHz a 1 MHz per il downstream. È anche possibile fare in modo che le bande si sovrappongano parzialmente, ma ciò richiede l’uso di dispositivi in grado di gestire l’echo cancellation. Le due tecnologie offrono prestazioni paragonabili e problemi di progetto diversi. Potenzialmente, Dmt offre 6,1 bps in downstream e 1,5 Mbps in upload, ma dispositivi funzionanti con modulazione Cap, anche se leggermente più lenti, dissipano meno energia e costano meno. In realtà gli standard si stanno comunque spostando sulla modulazione Dmt, prevista peraltro immediatamente dai documenti di standardizzazione di ADSL. L’utilizzo della modulazione Cap deriva da una presenza precedente alla disponibilità di ADSL. RETI a COMMUTAzione di pacchetto Per la maggior parte delle applicazioni di reti geografiche, un collegamento dati a tempo pieno tra i diversi luoghi è sicuramente inefficiente. Il traffico di rete tende ad essere costituito da picchi di attività e da lunghi periodi di traffico ridotto quasi a zero. Ha per

Page 108: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 108

questo più senso mettere in comune le risorse di trasmissione dati e farle utilizzare dal sistema informatico solo quando è necessario. Questi fattori contribuiscono allo sviluppo di ciò che è chiamato rete a commutazione di pacchetti. Rendendosi conto che la distruzione di un computer principale o commutatore o di qualunque collegamento fisico tra due dispositivi poteva disabilitare le comunicazioni, è stata proposta una rete più flessibile di commutatori di dati o computer interconnessi, ciascuno collegato a molti altri. Il suo modello è costituito da un insieme di DTE (Router) che tramite i DCE (Modem) hanno accesso ad una topologia di rete WAN piuttosto generica e di cui non è necessario specificare le caratteristiche dato che i pacchetti possono essere inviati da un DTE ad un altro DTE (tramite almeno due DCE) specificando come al solito l’indirizzo del destinatario direttamente nel pacchetto. X.25 è uno standard CCITT. In Italia la principale rete conforme a X.25 è Itapac. Esistono anche reti private conformi a X.25. Spesso, una rete a pacchetto è rappresentata come una nuvola nei diagrammi di rete in quanto il percorso che un qualunque pezzo di dati può imboccare dal mittente al ricevitore non è predefinito. Perciò, se un disastro interrompe parte della rete, i dati possono continuare a muoversi da un'estremità all'altra. La specifica CCITT X.25 è un set standard che si applica a questo tipo di rete dati. X.25 è diverso da un collegamento modem diretto tra due dispositivi. Non è possibile inviare dei dati attraverso una rete X.25 direttamente e aspettare che raggiungano la loro destinazione. Tutti i dati immessi in una rete X.25 devono prima essere convertiti in pacchetti.

ITAPAC è una rete pubblica a commutazione di pacchetto che si estende su tutto il territorio nazionale e che consente applicazioni di trasmissione dati di vario tipo: accesso a banche dati, trasferimento di file, interconnessione di Centri di Elaborazione Dati, messaggistica ed automazione d'ufficio, nuovi servizi di telematica. Grazie all'impiego d'interfacce e procedure standardizzate in ambito internazionale (X25, X28, X29) ITAPAC assicura la connessione tra tutti gli utenti dotati di elaboratori e terminali conformi a tali standard, offrendo un'alta qualità del collegamento. L'utente può accedere alla rete da tutti i punti del territorio per scambiare dati non solo all'interno della propria struttura aziendale, ma anche con altre reti a pacchetto estere (TRANSPAC Francia, DATAPAC Canada) e private (SPRINT). Per soddisfare le esigenze dei propri utenti ITAPAC mette a disposizione una serie di servizi e di prestazioni opzionali che permettono anche di ottimizzare le risorse delle apparecchiature terminali collegate alla rete. Descrizione della rete Il concetto fondamentale su cui si basa tale tecnica è che un DTE (terminale o elaboratore) collegato alla rete stabilisce con il proprio corrispondente comunicazioni logiche sulle quali scambiano sequenze di dati, trasmesse sotto forma di pacchetti.

Page 109: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 109

I pacchetti creati dal DTE sono formati da un campo “dati” e da informazioni di servizio (indirizzo del destinatario, numero di sequenza) necessarie per il corretto instradamento all'interno della rete e per la consegna al destinatario.

1. flusso dati generato da utente; 2. segmentazione dati utente; 3. formazione del pacchetto; 4. pacchetto da inviare su rete ITAPAC. All'interno della rete vi sono dei “nodi di commutazione” costituiti da elaboratori specializzati, che hanno il compito di esaminare l'intestazione di ciascun pacchetto e d’instradarlo verso il destinatario. Ogni DTE deve essere collegato alla rete tramite un circuito di accesso; su tale circuito fisico fra DTE e rete possono viaggiare contemporaneamente pacchetti relativi a comunicazioni con corrispondenti diversi, con conseguente ottimizzazione nell'uso del collegamento stesso. Poiché l'impegno delle risorse di rete è funzione del traffico svolto dall'utente, la tariffazione è correlata al volume d’informazioni trasmesse; è però indipendente dalla distanza tra i punti in cui chiamante e chiamato accedono alla rete.

Utenti Ad ITAPAC possono essere collegati sia DTE a pacchetto (elaboratori, terminali video intelligenti, PC, convertitori di protocollo) conformi alla Raccomandazione X25 del CCITT, sia DTE asincroni a carattere (tipo TTY, terminali video asincroni, PC con interfaccia asincrona). Poiché i DTE di quest'ultimo tipo trasmettono i dati sotto forma di singoli caratteri, è prevista, all'interno della rete, una funzione di conversione che assembla i

Page 110: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 110

caratteri in pacchetti ed esegue anche l'operazione inversa; tale funzione è denominata PAD (Packet Assembling Disassembling). Ciascun pacchetto contiene una busta elettronica con il nome del mittente e del destinatario oltre ad una piccola quantità di dati, tipicamente meno di un Kbyte. All'estremità ricevente i dati provenienti da una rete X.25 sono costituiti da una serie di pacchetti e il PAD posto a tal estremità provvede a riassemblarli in flusso di dati coerente con cui il computer può lavorare. I pacchetti in una rete X.25 vanno da una macchina all'altra fino a quando non raggiungono la loro destinazione. Due pacchetti che fanno entrambi parte della stessa comunicazione tra due computer, possono prendere strade diverse per raggiungere la stessa destinazione. Inoltre, l'ordine in cui i pacchetti arrivano a destinazione non è detto sia lo stesso in cui sono stati trasmessi; per questo, ciascun pacchetto X.25 ha un numero sequenziale che consente al PAD di rimetterli insieme nel giusto ordine. X.25 è un esempio di protocollo di trasporto windowed. Reti X.25 separate possono essere collegate insieme utilizzando un altro standard chiamato X.75. I DTE a carattere devono colloquiare con la funzione PAD secondo precise regole, stabilite nella raccomandazione X28 del CCITT, e devono poter generare e ricevere (almeno nella fase di selezione) caratteri secondo l'Alfabeto Internazionale N° 5 del CCITT (IA 5) con uno o due bit di stop. Nel seguito sarà utilizzato il termine “DTE X28” con riferimento ai DTE asincroni a carattere, mentre per quelli a pacchetto si userà il termine “DTE X25”. I DTE X25 accedono ai Nodi di ITAPAC tramite collegamenti diretti; i DTE X28 accedono alla funzione PAD o tramite collegamenti diretti o tramite la rete telefonica. Nel seguito questi due tipi di accesso saranno rispettivamente chiamati “X28D” ed “X28C”.

Per quanto riguarda l'accesso, DTE X28C sono possibili due modalità. 1. Accesso Identificato In questo caso l'utente è tenuto a sottoscrivere l'abbonamento alla rete ITAPAC; al fine di consentirgli l'accesso alla rete, gli è fornito un “codice d'identificazione” NUI (Network User Identification), composto da sei caratteri alfanumerici, che devono essere inseriti in ogni richiesta di chiamata. Tale codice deve essere noto solo all'utente, al quale sono addebitate tutte le chiamate originate attraverso tale codice. Per collegarsi l'utente deve dapprima selezionare il numero telefonico delle porte di ITAPAC e in seguito, una volta collegato con la rete, deve prima digitare il proprio NUI e quindi selezionare l'indirizzo del DTE chiamato. 2. Accesso Easy Way (1421) In questo caso l'utente non sottoscrive l'abbonamento ad ITAPAC, e pertanto non gli è fornito il NUI; le modalità di collegamento sono analoghe al caso precedente, con l'eccezione che non deve essere indicato il NUI. Il traffico sarà addebitato automaticamente al DTE chiamato, purché tale DTE accetti la tassazione a proprio carico, altrimenti la chiamata sarà abbattuta dalla rete con CLR RNA. Tale tipo di accesso è particolarmente conveniente per i Fornitori di servizi a valore aggiunto (banche dati, messaggistica), poiché, di fatto, incoraggia l'utilizzo del servizio stesso, e naturalmente anche per i fruitori che possono collegarsi con il Fornitore di servizi senza

Page 111: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 111

doversi preventivamente abbonare ad ITAPAC. Struttura della rete Gli elementi che costituiscono la rete ITAPAC sono: 1. Nodi a Commutazione di Pacchetto (NCP), con sole funzioni di transito, 64Kbit/sec. 2. Commutatori Locali di Pacchetto (CLP), con funzioni di acceso per i DTE X25 e di

commutazione del traffico, 64Kbit/sec. 3. Adattatori Concentratori di Pacchetto (ACP), con funzioni di PAD e di accesso per i

DTE X28, 9.6Kbit/sec. 4. Centri di Gestione e Manutenzione (CGM), con funzioni di supervisione generale della

rete e controllo dei singoli componenti. Ogni NCP è collegato a tutti gli altri tramite linee di giunzione ad alta velocità, e raccoglie un certo numero di CLP a lui collegati: ogni CLP, a sua volta, raccoglie un certo numero di ACP. Il servizio è disponibile su tutto il territorio nazionale.

Servizi e prestazioni I servizi base forniti da ITAPAC sono: SVC (Chiamata Virtuale) Permette la connessione logica fra due DTE qualsiasi mediante le seguenti fasi: 1. formazione del collegamento, pacchetto CAR con l'indirizzo del DTE chiamato; 2. scambio dati; 3. abbattimento del collegamento, pacchetto CLR. PVC (Circuito Virtuale Permanente) Nei quali tra i dispositivi collegati in rete è stabilito un collegamento bidirezionale permanente; l'utilizzo di un collegamento PVC è simile a quello di un cablaggio diretto tra due dispositivi; all'interno della rete X.25, in ogni caso, i dati che vanno da un punto all'altro possono essere reinstradati, frazionati e multiplexati prima di arrivare a destinazione; i collegamenti PVC sono più efficienti dal punto di vista della velocità in quanto non sono appesantiti dall'overhead tipico dei collegamenti SVC, ma il loro utilizzo è più costoso (dato che è necessario pagare per il collegamento anche quando non è utilizzato). Per le applicazioni che prevedono il trasferimento di file a basse prestazioni come E-mail, entrambi i tipi di collegamenti commutati a pacchetti sono economici e adatti al compito; per le applicazioni che richiedono invece una maggior velocità di risposta, come nel caso di esecuzione di file remoti, la tecnologia X.25 non è la più adatta al compito. Fast select Nei quali è consentito ad un sistema di inviare un singolo pacchetto con l'informazione sulla destinazione ed una piccola quantità d'informazioni; tale soluzione può essere adottata in certe applicazioni di rete nelle quali solo occasionalmente sono inviate piccole quantità di dati che creano dei picchi sporadici; gli esempi comprendono, i trasferimenti elettronici di fondi ed il controllo della spesa effettuata su carte di credito; in questi casi, il sistema ricevente può rispondere al pacchetto e quindi lasciare libero il collegamento. Fast select con immediate clear è una modalità di trasmissione burst monodirezionale:

Page 112: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 112

un pacchetto è inviato dal mittente al destinatario e se la trasmissione va in porto, il collegamento è immediatamente interrotto. Prestazioni opzionali Le prestazioni opzionali fornite all'utente dalla rete possono essere classificate nei seguenti gruppi. Prestazioni opzionali assegnate su base contrattuale: chiamate entranti sbarrate in modo tale da poter stabilire solo chiamate uscenti; chiamate uscenti sbarrate in modo tale da poter stabilire solo chiamate entranti; CUG (Gruppo Chiuso d'Utente) per costituire delle sottoreti private; accettazione della tassazione al chiamato; documentazione degli addebiti. Prestazioni opzionali richieste su base chiamata. Prestazioni opzionali applicabili ai DTE X28 che utilizzano la funzione PAD. Servizi ausiliari per consentire all'utente di verificare il corretto funzionamento del DTE: servizio di ECO invia al DTE che lo chiama pacchetti dati uguali a quei ricevuti dal DTE stesso, 21110999; servizio di DROP assorbe i pacchetti dati ricevuti dal DTE chiamante e si limita a riscontrarli a livello di protocollo, 21110997; servizio di GENERAZIONE DI TRAFFICO genera traffico verso l'utente chiamante inviandogli in maniera continua una stringa di dati predefinita “THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG”, 21110998; servizio INFO-ITAPAC contiene informazioni sulle caratteristiche principali della rete, si accede selezionando il NUA 26100298 (codice: id itapac e password: itapac); la consultazione è gratuita, è addebitato solo il traffico svolto. Piano di numerazione Ogni utente di ITAPAC è identificato da un numero NUA (Network User Address) di sette od otto cifre. La prima cifra è sempre pari a due (identificazione della rete a commutazione di pacchetto) mentre le altre sei (o sette) sono costituite dall'indicativo del distretto sede dell'impianto di rete cui l'utente è collegato, seguito da cifre che identificano l'utente. L'indicativo distrettuale di cui sopra e quello utilizzato nel piano di numerazione della rete telefonica generale. Si possono avere quindi le seguenti possibilità: 1. 2YXXXXX(X) per gli utenti il cui indicativo distrettuale è una cifra (ad esempio un

utente collegato ad un impianto di Roma sarà identificato dal numero 26XXXXX(X)). 2. 2YYXXXX(X) per gli utenti il cui indicativo distrettuale è a due cifre. 3. 2YYYXXX(X) per gli utenti il cui indicativo distrettuale è a tre cifre, esempio 23210000. Sottoindirizzamento Per chiamate dirette ad un terminale X25 gli utenti (X25 e X28) possono far seguire all'indirizzo di rete (NUA) un sottoindirizzo di lunghezza variabile fino ad un massimo di quattro cifre. Il sottoindirizzamento consente, ad esempio, d’identificare e raggiungere periferiche collegate localmente a un DTEX25. Non è ammessa una chiamata con sottoindirizzamento verso un terminale X28. Chiamate internazionali Per chiamare gli utenti collegati a reti estere a commutazione di pacchetto bisogna far precedere l'indirizzo dell'utente dal prefisso “0” e dal “Codice di rete” DNIC (Data Network Identification Code) della rete chiamata, l'Italia 222. L'indirizzo completo diventerà perciò 0 + DNIC + numero nazionale dell'utente dove: 1. il DNIC si compone di due parti, il DCC (Data Country Code) o “codice di paese”, di tre

cifre, ed una quarta cifra NC (Network Code) che indica la particolare rete chiamata all'interno di quel paese, ITAPAC 2;

2. il “numero nazionale” dell'utente è formato da un massimo di dieci cifre; la lunghezza

Page 113: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 113

effettiva può variare da paese a paese. Esempio, dall'estero per chiamare INFO-ITAPAC: 022226100298. Quasi tutti i paesi europei possono essere chiamati. Sono collegati ad ITAPAC anche i paesi extraeuropei raggiungibili tramite le centrali di commutazione dell’ITALCABLE. Come descritto in precedenza ITAPAC offre la prestazione di “identificazione del chiamante”. È opportuno notare che, per le chiamate provenienti da reti estere, ITAPAC si limita ad anteporre al numero dell'utente chiamante la cifra “0” per indicare che la chiamata proviene dall'estero. Tuttavia nessun controllo di validità è effettuato sul numero. Se la chiamata proveniente dalla rete estera non contiene il numero del chiamante, ITAPAC identifica l'utente chiamante con la sola cifra “0.0”. Tariffazione ITAPAC Il costo è in funzione della durata della comunicazione e del volume di traffico, ma è indipendente dalla distanza (la dipendenza vale solo per la parte relativa tra la sede dell'utente ed il punto di accesso ad ITAPAC); affidabilità e qualità di trasmissione elevata; da un punto di vista costo/prestazioni è il sistema più conveniente. I costi sono suddivisi in: 1. canone fisso di abbonamento: in funzione della classe di velocità (1200 bps per

DTEX28; 2400, 4800, 9600 bps per DTEX25) e del tipo di accesso (rete telefonica commutata o circuito diretto);

2. canone per codice identificativo: NUI solo nel caso di accesso commutato; 3. tassazione a volume: in funzione del numero di pacchetti dati e della loro lunghezza;

l'unità di misura è il segmento (64 byte), un pacchetto ha lunghezza massima pari a 128 byte ed è tariffato come un segmento se contiene un numero di byte inferiore o uguale a 64, come due segmenti se contiene un numero di byte superiore;

4. tassazione a tempo per collegamenti di tipo VC in funzione del tempo di attivazione del collegamento su ITAPAC o canone fisso per collegamenti di tipo PVC;

5. canoni per eventuali prestazioni opzionali: es. richiesta di tassazione al chiamato, documentazione degli addebiti.

Protocollo X25 Livello Pacchetto Definisce le procedure per la formazione dei circuiti virtuali e per il corretto trasferimento dei dati d'utente. Livello Trama Definisce le regole necessarie ad assicurare sia la sincronizzazione della trasmissione sia la rilevazione, ed il conseguente recupero, di eventuali errori presenti sui dati trasmessi in linea. La procedura utilizzata è il LAPB basata sulla procedura HDLC dell'ISO, la trasmissione dei dati avviene in trame contraddistinte ciascuna da una sequenza di bit di apertura e di chiusura (FLAG) e da un campo controllo (FCS) che permette di rilevare eventuali errori di trasmissione. Livello Fisico Definisce i criteri di controllo da parte del DTE del funzionamento del DCE (modem e linea fisica di collegamento ad ITAPAC). Standard trasmissivo: 7E1. Segnali della rete La rete può trasmettere un certo numero di segnali: in risposta ad un comando; di sua iniziativa; in seguito ad un'azione del terminale remoto. SEGNALI DI ERRORE: ERR CNA il comando è corretto, ma non è ammesso in questo stato.

Page 114: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 114

ERR ILL il comando non è sintatticamente corretto oppure non è riconosciuto. ERR EXP la temporizzazione è scaduta e il comando non è stato completato. SEGNALI DI DISCONNESSIONE: CLR OCC il numero chiamato è occupato. CLR NC non sono possibili nuove chiamate virtuali. CLR INV prestazione richiesta non valida. CLR NA il DTE chiamante non può ottenere la connessione con il DTE chiamato. CLR ERR la chiamata è abbattuta a causa di un errore di procedura locale. CLR RPE la chiamata è abbattuta a causa di un errore di procedura remota. CLR NP il numero chiamato non è assegnato. CLR DER il numero chiamato è fuori servizio. CLR PAD il PAD ha abbattuto la chiamata. CLR DTE il DTE remoto ha abbattuto la chiamata. CLR RNA il DTE remoto non accetta tassazioni al chiamato. CTRL+P abbatto il collegamento, ma resto su ITAPAC. SERVIZI DIGITALI AD ALTA VELOCITà Esiste un servizio ad alta velocità chiamato T1 negli Stati Uniti ed E1 in Europa. Queste linee possono trasmettere, rispettivamente, dati alla velocità di 1.5 Mb e 2Mb al secondo. La capacità di una linea T1 e di solito suddivisa in 24 canali che trasmettono sia voce, sia dati. Ciò può rappresentare un vero risparmio per l'azienda in quanto è possibile estendere le reti dati e telefoniche interne sullo stesso cavo (la suddivisione di un collegamento ad alta capacità tra più sistemi per trasportare contemporaneamente diverse velocità di rete più basse è una tecnica diffusa nota come multiplexing). T1 è diffuso negli Stati Uniti dove sono installate migliaia di linee di questo tipo (molte meno in Europa). Dopo T1 (E1) esistono standard addizionali che forniscono capacità di dati multipli crescenti di quella di T1, fino a 45 Mbps. In ogni caso, quando sono raggiunti questi livelli del servizio, un'azienda spende in comunicazioni somme così grandi da poter prendere in considerazione di “saltare” completamente l'azienda telefonica: i contratti per un collegamento diretto via satellite in fibra ottica possono essere più convenienti. TECNICHE FRAME E CELLE RELAY È una rete con topologia simile a X.25 ed è detta rete a ‘nuvoletta’, in altre parole una rete cui tramite un DTE e un DCE ci si connette per comunicare con altre coppie DCE-DTE tramite ancora Canali Virtuali (CV); si tratta quindi ancora di uno standard d’interfaccia DCE-DTE. La differenza fondamentale con X.25 consiste nella natura dei CV che in questo caso sono di tipo permanente, preallocati dal gestore della rete e quindi non è possibile crearne altri su richiesta diretta dell’utente come avveniva in X.25. Vanno quindi richiesti al gestore (Telecom in Italia) della rete FR (CLAN in Italia) i quali li concede univocamente all’utente. Inoltre esistono altre peculiarità. 1. Permette di far convivere più CV su una stessa linea trasmissiva (come X.25). 2. È uno standard connesso (come X.25). 3. È uno standard totalmente a livello 2 OSI. Fornisce quindi supporto multiprotocollo

nativo (come le LAN). 4. Non corregge gli errori su ogni tratto della linea potendo contare su canali veloci e più

affidabili. La latenza di un pacchetto è abbassata. Non sta a controllare se il frame di dati arriva a destinazione né si preoccupa di ritrasmetterlo. L'idea è che siano le applicazioni nei computer alle estremità del collegamento a controllare se i dati arrivano correttamente e ad inviare un frame speciale solo nel caso sia necessaria la ritrasmissione. Il sistema FR si concentra sull'invio di frame di dati alla velocità più alta possibile e non si preoccupa se essi siano persi, si corrompono o non sono in

Page 115: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 115

ordine. 5. Velocità tra 64 kbps e 2 Mbps. 6. La rete FR pubblica è CLAN; come per X.25 è possibile costruire reti FR private. Protocollo LAPF FR Utilizza il protocollo di 2 LAPF (di origine HDLC) il quale è diviso in due parti: 1. DL-Core, a basso livello, presente su tutti i nodi della rete, quindi sia sulle stazioni che

sugli switch attraversati. 2. DL-Control, ad alto livello, usato solo dal mittente e dal destinatario e non dagli switch

attraversati (si dice anche controllo end-to-end o Edge-to-Edge).

Quindi sia il campo Control e il campo Information non sono analizzati dai nodi (switch) intermedi, a differenza da X.25. Si può notare anche che l’informazione d’instradamento (campo Address) è stata totalmente premessa al campo Control. In X.25 invece avevamo uno Header d’instradamento all’interno del campo Info: era il pacchetto di rete che impropriamente era imbustato all’interno del campo Info. Ora nel campo Information di FR è possibile immettere il pacchetto di livello rete dell’architettura di rete proprietaria (TCP/IP, DecNet) senza altri elementi aggiuntivi. Il campo Address può essere formato da 2,3 o 4 ottetti (byte).

EA (Extended Address): a 0 nei byte non finali del campo address; a 1 nel byte finale (serve per conoscere la dimensione dell’indirizzo). C/R (Command/Response): Riservato per usi futuri. FECN (Forward Explicit Congestion Identification): a 1 indica congestione lungo il percorso della trama. BECN (Backward Explicit Congestion Notification): a 1 indica congestione lungo il percorso inverso della trama. I nodi tipo Edge analizzando questi due bit, possono regolare la quantità di informazione immessa sulla rete adattandola ai carichi. DLCI (Data Link Connection Identifier): è l’identificativo del circuito logico (o CV); è l’indirizzo del destinatario. DE (Discard Eligibility Indicator): a 1 indica che la trama può essere scartata in presenza di forte congestione sulla rete. D/C (DLCI oppure DL-Core Control Indicator): indica se i rimanenti 6 bit dell’ottetto devono essere interpretati come DLCI o come DL-Core Control) I nodi FR di switch (commutatori FR) sono anche detti nodi Core, mentre i nodi ai bordi della nuvoletta (DTE-DCE) sono detti nodi Edge. La sezione di livello L2 DL-Core contiene la delimitazione delle trame, verifica correttezza trame (FCS), e l’instradamento. La sezione di livello L2 DL-Control contiene invece le problematiche di controllo e recupero errore (tipica del campo Control di HDLC).

ADDRESS CONTROL DATI FCS

DL-CORE

FLAG FLAG

DL-CONTROL DL-CORE

7 6 5 4 3 2 1 0 bit Upper DLCI C/R EA0 1 ottetto

DLCI FECN BECN D/E EA0 2 ottetto Lower DLCI / DL-CORE Forward D/C EA1 3 ottetto

Page 116: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 116

Cell relay, nota come Asynchronous Transfer Mode, è un'altra tecnica a pacchetto che mantiene una lunghezza fissa dei pacchetti di dati. Ciò consente di regolare finemente le prestazioni, con velocità che possono arrivare a milioni di pacchetti al secondo. Queste velocità consentiranno il trasferimento d'informazioni miste, voce, dati, grafiche e video. ATM Tecnologia unificante che tra qualche anno dovrà comprendere anche altre tipologie di rete anche non geografiche, quindi una tecnologia di rete unica su base geografica e locale. Inoltre essa razionalizza la trasmissione di qualsiasi tipo di informazione: dati, dati fonici, dati video (teleconferenze, fax, telefonate standard, FTP, terminali virtuali, E-Mail. Con ATM s’intende la porzione tecnologica su cui si costruirà in seguito il software di molti livelli LN superiori opportuno. Questo insieme di software per la gestione di ATM è detto B-ISDN (Broadband ISDN). Il B-ISDN userà come primi due livelli la tecnologia offerta da ATM, la quale è già disponibile. Ciò che ancora deve essere costruito opportunamente è appunto il software B-ISDN per realizzare i numerosi servizi offerti da ATM. Pur essendo pensata per telecomunicazioni su scala geografica, le prime reti ATM sono tuttora esistenti in ambito locale (LAN ATM). Unisce i vantaggi della commutazione di pacchetto e della commutazione di circuito: massima flessibilità (CP) e minimi ritardi (CC). I ritardi non sono sensibili ai dati numerici e quindi possono essere tollerati; si tratta dei ritardi di dati fonici (una telefonata). Quindi è implementata una nuova tipologia di commutazione: Commutazione di Cella. L’informazione è sempre in formato numerico ma di tipo Continuo (cioè con banda allocata permanentemente come per le telefonate o i segnali video) o A burst (con banda allocata impulsivamente come sulle LAN e per trasmissione di dati tradizionali). L’elemento di trasporto è ancora la Cella. Le Celle sono trasportate su Connessioni Virtuali (CV) Cella ATM Si tratta di pacchetti brevi di 53 ottetti, indispensabili per una bassa latenza (infatti non basta aumentare la velocità trasmissiva). Sono suddivisi in: 1. una parte iniziale di 5 ottetti detta HEADER (overhead d’instradamento, cioè id. di CV

e quindi indirettamente l’indirizzo del destinatario, oltre ad alcuni bit di controllo del congestionamento come in FR);

2. una seconda parte di 48 ottetti detta PAYLOAD (carico utile di rete, cioè Info o Dati). Per ATM è indispensabile possedere canali trasmissivi estremamente veloci. In ambito pubblico il CCITT utilizzerà mezzi con velocità a 155 Mbps, 620 Mbps e 2,4 Gbps. In ambito locale i costruttori di LAN propongono velocità inferiori: 25 Mbps, 50 Mbps, 100 Mbps, 155 Mbps. La topologia classica di ATM risponde ancora alla rete a ‘nuvoletta’ in cui i DTE si affacciano alla rete tramite elementi detti UNI (User Network Interface), mentre i commutatori (Switch o nodo ATM) all’interno di ATM sono connessi tramite NNI (Network

Nodo CORE Nodo

EDGE Nodo

EDGE

L7 Applicativo Applicativo L6 Architettura Architettura

L5 di Rete di Rete

L4 (Tcp/Ip, DecNet, ...) (Tcp/Ip, DecNet, ...)

L3 L2 DL-

Control DL-

Control DL-Core DL-Core DL-

Core DL-Core

L1 Fisico Fisico Fisico Fisico

Funzionalità Edge-to-

Page 117: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 117

to Network Interface). Il nodo ATM commuta un elevato numero di celle in modalità multiplex e tramite commutazione di etichetta (label swapping).

Protocollo hdlc (High level Data Link Control) Su una WAN il CDN realizza il livello fisico assieme all’interfaccia RS232 e V.35 della pila OSI, mentre il protocollo di collegamento dati più utilizzato è l’HDLC, adottato dall’OSI come standard. Allora tra LAN e WAN possiamo dedurre che i protocolli di rete si appoggiano rispettivamente su 802.2 e HDLC. Ma allora l’interfaccia a L3 di 802.2 e HDLC è molto simile. L’HDLC si differenzia invece verso il livello uno dove gestisce direttamente il mezzo fisico mentre 802.2 demanda tale interfaccia al sottostrato MAC. L’HDLC quindi lavora anche come MAC, in pratica deve gestire direttamente la problematica del framing, cioè la delimitazione dell’inizio e la fine della trama. L’HDLC deriva dall’SDLC (Sinchronous Data Link Control) IBM primi anni ‘70 usato per SNA. Altri protocolli della stessa famiglia sono: LAPB (Link Access Procedure Balanced, per accedere alle reti X.25), LAPD (Link Access Procedure D-channel, per ISDN), LAPF (Link Access Procedure to Frame mode Bearer Service per Frame Relay) e anche il noto LLC 802.2. Pacchetto HDLC.

I campi Flag iniziale e finale gestiscono il framing (marcatura di inizio, detta anche preambolo, e fine trama/pacchetto); può considerarsi anche come carattere separatore tra due pacchetti contigui. Vale 8 bit =7Eh (01111110b). Una tecnica detta di bit-stuffing impedisce che il carattere flag compaia erroneamente nel campo dati. Infatti si inserisce in fase di trasmissione un bit a zero dopo eventuali 5 uni consecutivi, indipendentemente dal valore del bit successivo. In fase di ricezione se si dovessero ricevere 5 bit a uno consecutivi il valore del bit successivo mi informerà se si tratta di un valore dato o del Flag (se zero e lo rimuovo o uno rispettivamente). Ciò risulta anche molto utile per codificatori NRZ/NRZI (generano una transizione dell’uscita se in ingresso c’è uno zero mentre non generano la transizione nel caso opposto) i quali in questo caso generano in uscita un codice a transizioni garantite. Il campo Address non contiene come per l’LLC l’indicazione del protocollo utilizzato a livello rete ma altre informazioni per gestione di comunicazioni punto-punto; è usato solo in realtà nel DHLC quando le connessioni erano di tipo un master e tanti slave e quindi era necessario una comunicazione punto-punto. Il campo Control gestisce la modalità operativa del protocollo, se connesso o non connesso; identifica ancora i tre tipi di pacchetti LLC: Information, Supervisor e Unnumbered in modo da operare come protocollo connesso e non connesso. Ricordiamo che su rete geografica si usa la modalità connessa (gestisce e recupera a livello 2 gli errori) la quale tratta tutti i tre tipi di pacchetti. Un byte. Formati:

1 C2 K

i D. .m G

. .

Look Up

#1

#2

#n

#1

#2

#3

#i

#m

AB

C

D

Port #2 (IN)

Otto bit

ADDRESS CONTROL DATI FCS

HEADER

FLAG FLAG

TRAILER

Page 118: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 118

Se Information: 0SSSPRRR trasportano dati utente o dati acknowledgement di supporto al protocollo connesso (in direzione opposta) se c’è traffico. Se Supervisor: 10TTPRRR dati acknowledgement come prima se non c’è traffico Se Unnumbered: 11TTPMMM dati per modalità non connessa o informazioni per iniziare e terminare la connessione del protocollo connesso (fasi che si svolgono con un protocollo NON connesso). (P=Poll/Final, T=Type, M=Modifier, S=N(S), R=N(R)). N(S) e N(R) servono per la gestione della sincronizzazione dei pacchetti e porsi riferire ad un pacchetto piuttosto che ad un altro, ad esempio per indicare che un pacchetto è stato ricevuto correttamente (ACK) o meno (NACK). Bisogna quindi numerarli. N(S) è il numero del pacchetto progressivo, mentre N(R) è il numero di pacchetto confermato con ACK nella direzione opposta. In effetti i tre bit possono numerare modulo 8 cioè solo 8 pacchetti numerabili distintamente. Ciò è comunque sufficiente per canali CDN. HDLC prevede anche numerazioni estese su 7 bit. Information di lunghezza variabile FCS come al solito. HDLC può collegare idoneamente con CDN due bridge remoti o due router mono protocollo ma non fornisce un supporto multiprotocollo nativo e quindi non può collegare Brouter o Router multiprotocollo di due costruttori diversi. La variante di HDLC per la gestione nativa di multiprotocollo è il PPP (Point to Point Protocol) che possiede un formato di trama identico a HDLC ma contiene un campo da un byte detto Protocol tra il campo Control e il campo Information.

Page 119: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 119

Servizi di rete WAN INTRODUZIONE Ci siamo occupati dei modi in cui i computer remoti e LAN possono dialogare. Ora riassumiamo i servizi generali di rete che gli utenti tipicamente usano. Posta elettronica, directory e servizi dati saranno discussi più attentamente, dal momento che stanno standardizzandosi sempre più velocemente. SERVIZI GENERALI WAN Virtual Terminal Permette ad un utente di usare il computer locale per accedere ad un computer remoto ed iniziare una sessione come se i due computer fossero collegati direttamente. C:\> Sistema operativo proprio C:\>telnet galileo.polito.it Avvio telnet con nome remoto galileo.polito.it - Ultrix 4.3 politecnico di Torino Risposta del terminale remoto Username: paolo Richiesta di identificativo utente Password ****** Richiesta di password utente Welcome to Galileo Autenticazione utente galileo> Login di sistema remoto galileo> ls /etc/tmp/* Comandi su sistema remoto galileo> logout Scollegamento (Logout) C:\> Ritorno a SO proprio File Transfer Permette di trasferire in modo affidabile grandi quantità di dati da una postazione all'altra. C:\>ftp Avvio applicativo di rete MAIL open [nomeIMPRemoto] apri sessione Username: paolo Richiesta di identificativo utente Password: **** Richiesta di password utente user paolo logged in Autenticazione utente get [nomefile] Prendi . Messaggi vari o altre sessioni quit Uscita dall’applicativo C:\> Ritorno a SO proprio Program-to-Program Queste comunicazioni permettono alle applicazioni di condividere i dati o i processi di cui hanno bisogno, senza interventi da parte di esseri umani. Questo servizio può essere comparato a Named Pipe su una LAN. Remote File Access Permette di leggere dati da un computer remoto, ad esempio per usare un servizio d'informazioni. Questa procedura è normalmente meno restrittiva sia rispetto ad accessi tramite terminali virtuali o database, dal momento che i dati sono semplicemente letti e non alterati. Remote Database Access Permette all'utente di accedere ad un database remoto e anche di cambiarne i dati. Questa prestazione può essere usata come un'applicazione di client/server. Directory Services Sono essenziali se si voglia conoscere quali persone, apparecchiature e servizi sono disponibili, dove si trovino e qual è il modo per accedervi. La tabella a pagina seguente mostra in sintesi alcuni servizi offerti da alcune implementazioni di reti locali o geografiche. Differenti produttori e organizzatori usano termini o sigle differenti per descrivere le proprie versioni dei servizi. Questa tabella dei termini gergali è inclusa semplicemente

Page 120: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 120

per aiutare il lettore ad identificare quali servizi sono associati a quali fornitori. Quello che segue è l'elenco dei nomi delle soluzioni di rete multi vendor di ARPA, Berkely e OSI. ARPA (Advanced Research Project Agency, del dipartimento della difesa americano): sta ad indicare i servizi definiti insieme ai protocolli internet TCP/IP. FTP (File Transfer Protocol, protocollo di trasferimento dati) che opera tra macchine ARPA compatibili. TELNET: consente servizi interattivi di terminale virtuale da un PC o un terminale. SMTP (Simple Mail Transfer Protocol) è un protocollo meno complesso dell'X.400; Berkeley Sockets è stato aggiunto dal team che lavora alla Berkeley University per migliorare l'interfaccia utente e le comunicazioni da programma a programma. OSI (Open System Interconnect): è un termine che comprende: 1. FTAM (File Transfer, Access and Management): opera tra i computer compatibili OSI. 2. X.400: è una specifica per la messaggistica multivendor e X.100, un servizio di

directory. 3. MMS: è la specifica di messaggistica di produzione.

Servizi di rete generici

ISO OSI

ARPA BSD NFS (Sun)

LAN Manag. NetWare DECnet

Terminali virtuali

VTP Telnet rlogin CTERM

Trasferimento di file

FTAM FTP RCP

Comunicazione da programma a programma

XTI MMS

Sockets XTI MMS

Named Pipes Mailslot NetBIOS

NetBIOS IPX/SPX Named Pipes

Task to task

Accesso a file remoti

FTAM SMB

Accesso a database remoti

RDA 3rd Party RDB

Messaggistica X.400 SMPT send mail

Vaxmail Mailbus

Gestione di processi remoti

MMS REMSH MMS Return SPX Task to task

Servizi di directory

X.500 BIND X.500 DINS

POSTA ELETTRONICA (E-MAIL) La posta elettronica in reti geografiche è più importante della posta elettronica in un piccolo gruppo di lavoro, ma è ovviamente più complessa. Un sistema di posta elettronica mondiale non può memorizzare tutti i messaggi in una postazione centrale e deve inviare i file alle postazioni appropriate. Una rete con parecchi server può utilizzare software e hardware omogenei oppure le sue apparecchiature ed il suo software possono provenire da una varietà di sorgenti; in quest'ultimo caso parliamo di rete multivendor. In una rete omogenea, un pacchetto di posta elettronica globale deve soltanto aggiungere un metodo per spostare gli archivi da server a server quando è riconosciuta una destinazione non locale. In caso contrario, utilizza le capacità di base della LAN. Ma cosa succede se un gruppo di lavoro utilizza una rete locale Novell e un altro utilizza un sistema DECnet? Dato che la posta elettronica viaggia da un tipo di sistema all'altro, i due sistemi devono avere in comune una qualche forma di comunicazione. Esattamente come succede ai dati che viaggiano in una rete locale e che siano inclusi in pacchetti con le informazioni che dicono all'hardware ed al software di rete dove dirigerli, i messaggi di posta

Page 121: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 121

elettronica che devono viaggiare da un sistema all'altro sono collocati in buste elettroniche. Se due sistemi completamente differenti creano e leggono lo stesso tipo di buste, allora i sistemi dovrebbero poter condividere la posta elettronica. I package di posta elettronica più vecchi hanno protocolli proprietari che assicurano la consegna del messaggio nell'ambito dell'azienda fintanto che tutte le apparecchiature collegate utilizzano lo stesso package. Nel campo dei microcomputer, ci sono due standard emergenti, le raccomandazioni E-Mail CCITT X.400 e i servizi MHS (Message Handling Service di Action Technology) che si stanno diffondendo tra i produttori di posta elettronica per PC. C:\>mail Avvio applicativo di rete MAIL send Send (spedisci) to: [email protected] destinatario Subj: novità Oggetto della comunicazione Caro Pier Luca, ti ricordo di quella novità ... Corpo della comunicazione <Invio> Termine comunicazione L’utente remoto riceve un messaggio

d’interruzione 1 new message Messaggio d’interruzione C:\>mail Avvio applicativo di rete MAIL read leggi From: [email protected] automaticamente il mittente... Subj: novità ... l’oggetto ... Caro Pier Luca, ti ricordo di quella novità ... ... e il corpo del messaggio X.400 E-MAIL STANDARD X.400 è un set di raccomandazioni standard per posta elettronica che copre non solo il formato dei messaggi ma specifica anche come sistemi differenti comunicano tra loro. La forza degli standard è triplice. Prima di tutto, X.400 tiene conto di differenti tipi di comunicazione ed è in grado di gestire dai semplici messaggi testuali ai file binari e video. In secondo luogo, X.400 è stato progettato in funzione della comunicazione globale e specifica come dovrebbero comunicare tra di loro sistemi separati. Infine, X.400 ha forza ed è stato adottato ufficialmente da buona parte delle prime cento società americane della classifica di Fortune e dai governi di svariate nazioni. TERMINOLOGIA X.400 La parte del sistema di posta elettronica con la quale gli utenti lavorano direttamente è chiamato agente dell'utente (UA). Quando è introdotto un messaggio, l'agente utente lo passa all'agente MTA (Message Transfer Agent) che ha la responsabilità di inoltrarlo in un ambiente LAN, gli agenti utenti inviano i loro messaggi al MTA residente su un computer che fa da gateway X.400. Gli agenti MTA parlano agli agenti UA ed ad altri MTA. Se volete inviare un messaggio ad una postazione distante che non è direttamente collegata alla vostra unità può essere trasferita attraverso una catena di MTA fino a quando non raggiunge la sua destinazione finale. Questa rete di MTA è chiamata sistema di trasferimento dei messaggi MTS (Message Transfer System). Le reti X.400 non richiedono particolari protocolli di comunicazioni o cablaggi, anche se di solito X.400 è implementata attraverso reti di comunicazione a commutazione di pacchetto, comunemente basate sullo standard X.25. Uno dei punti di forza di X.400 è che la ricezione di un messaggio da un sistema X.400 costituisce una conferma valida sul piano legale della consegna di un documento elettronico, esattamente come avviene per i telex. Ciò non è vero per altri sistemi di posta elettronica o di trasmissioni fax. Il corpo del directory può includere testo, immagini fax, messaggi voce codificati, videotex ed altri formati specializzati, il che consente a X.400 di trasformare dati in un formato non

Page 122: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 122

definito nelle specifiche, come file grafici da PC o dati da tabelle elettroniche. X.400, in teoria, non pone limiti alle dimensioni o alla quantità di allegati contenuti in un messaggio. La cosa che manca nella specifica X.400 è uno user directory completo. Se volete inviare un messaggio X.400, dovete conoscere l'indirizzo di posta elettronica del destinatario. Il directory standard X.500 risolverà questo problema. In confronto a protocolli di posta elettronica più vecchi quali il protocollo SMTP che fa parte di Arpa Services e il diffuso MHS X.400 occupa molto spazio di memoria. Un'applicazione gateway X.400 per PC LAN può utilizzare circa 600 K di memoria, molto più di quanto utilizzi la maggior parte dei sistemi di posta elettronica per LAN. Per le PC-LAN, MHS di Action Technologies è in questo periodo più diffuso di X.400 e, se da un lato non supporta molte delle caratteristiche di messaggistica di X.400 (ad esempio la voce), dall'altro offre un'applicazione gateway in modo che gli utenti X.400 e MHS possono scambiarsi la posta elettronica. SCAMBIO DATI ELETTRONICO Dopo che un'informazione è passata da un computer all'altro, attraverso la posta elettronica, rimane da chiedersi come processarla. Ad esempio, se un venditore trasmette per posta elettronica un ordine alla sede, il software che gestisce le spedizioni e la contabilità sarà in grado di leggerlo se si tratta di un normale archivio di word processor? Probabilmente no. La facilità d’interscambio dati tra programmi può ridurre la necessità di ribattere testi, un'operazione che causa errori di spedizione, errori nei resoconti bancari ed altri inconvenienti. Lo scambio dati elettronico avrà un grande impatto laddove i processi interni di due società separate hanno bisogno di condividere le informazioni. Il trattamento contabile di fatture, ordini e il trasferimento elettronico di fondi sono due esempi. Uno standard per questo genere di trasferimento dati è rappresentato dallo standard EDIS (Electronic Data Interchange Standard) ANSIX.12, progettato per consentire il trasferimento di transazioni commerciali da un computer all'altro in modo automatico. Lo standard è basato su una serie di codici per ciascuna voce di un modulo. Ciò comprende nome e indirizzo del fornitore, nome e indirizzo del destinatario, voci ordinate, informazioni sui prezzi e quantità. Lo standard EDIX.12 non specifica come i dati vanno da un posto all'altro. Per queste funzioni, potete utilizzare il protocollo di trasferimento dati o di posta elettronica che volete: X.400, MHS o altro. X.12 specifica come i dati stessi potrebbero essere formattati perché altri sistemi siano in grado di leggerli. Ciò consente a molte organizzazioni di continuare ad utilizzare le proprie forme proprietarie di scambio di dati elettronici, garantendo contemporaneamente che un sistema sarà in grado di leggere e di usare i dati che un altro sistema ha formattato secondo la specifica. NETWORK DIRECTORIES E NAMING SERVICES Uno dei principali problemi di gestione di una gran rete geografica è tenere traccia di cosa è dove e di chi è su quale sistema. Le persone si spostano all'interno delle aziende e da un lavoro all'altro e nuove apparecchiature sono aggiunte e riconfigurate continuamente. Un altro problema consiste nell'inviare i dati ad un'apparecchiatura particolare. Ciascun componente hardware in rete ha un indirizzo, un codice digitale che lo distingue da tutte le altre apparecchiature nel sistema. Se uno vuole stampare qualcosa su una stampante particolare, ad esempio, il software deve conoscere l'indirizzo di quella stampante o del server cui quella stampante è collegata. Se non conosce l'indirizzo, ha bisogno di un modo per scoprirlo. Su una LAN di piccole dimensioni, un amministratore può tenere file di sistema che contengono informazioni aggiornate sui server e qualunque sistema di posta elettronica può rintracciare tutti gli utenti che sono direttamente collegati. Se però la rete cresce, diventa più difficile tenere traccia di tutti i cambiamenti che avvengono nel sistema. È

Page 123: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 123

necessario una directory (un indice) degli utenti e delle risorse: gli utilizzatori devono essere in grado di dire ad un programma di posta elettronica di inviare un messaggio ad uno qualunque degli altri utilizzatori e le applicazioni devono avere un modo per sapere che tipo di macchine è a loro disposizione. I servizi di directory e naming (i termini sono utilizzabili in modo intercambiabile) si basano sul principio che è più facile indirizzare un dato elettronico ad un nome piuttosto che ad un complesso indirizzo di rete. Ci sono due grossi vantaggi nell'utilizzo di nomi per identificare persone e hardware: prima di tutto, i nomi sono più facili da scrivere e ricordare, in secondo luogo, i nomi non cambiano spesso quanto gli indirizzi. I servizi di directory, sistemi che quando è inserito un nome forniscono, l'indirizzo di rete, sono da tempo disponibili. Sfortunatamente, il directory di un'azienda non comunica necessariamente con il directory di un'altra, ovviamente un grosso problema quando si cominciano a collegare insieme sistemi di rete diversi. Lo standard emergente che potrebbe risolvere questo problema è il directory service standard OSI, definito da un comitato misto ISO/CCITT; questo standard è chiamato da ISO IS9594, ma è più noto come X.500, il numero di riferimento CCITT. X.500 Secondo lo standard X.500, gli utenti, l'hardware, l’entità applicative quali programma e data file possono essere messi in un indice informatico. Questo directory data base può essere condiviso tra sistemi distinti ed è quindi noto come distributed directory, un sistema che esclude la presenza di un indirizzo uguale per due entità diverse. X.500 ha un'interfaccia umana, paragonabile alle pagine gialle di una guida telefonica, che può essere interrogata per informazioni. X.500 è più di uno standard per gestire un database di risorse e di utenti in rete: è uno standard per collegare directory X.500 separate. In teoria, chiunque può trovare l'informazione circa l'indirizzo di qualunque cosa o persona che è presente in un directory X.500. X.500, uno standard OSI è progettato per funzionare in reti che utilizzano protocolli OSI. Governi e grandi aziende stanno in questo periodo passando ad OSI. Rimane da vedere se i fornitori di LAN adotteranno lo standard X.500 e daranno agli utenti l'accesso al directory potenzialmente globale. SOMMARIO I computer richiedono, un sistema d'indirizzi e di nomi mondiale per scambiare in modo efficiente informazioni e servizi. Se i sogni della posta elettronica X.400 diventeranno realtà ed i directory X.500 verranno adottati, gli utenti di tutto il mondo potranno comunicare fra loro.

Page 124: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 124

LE BASI DI DATI IN LINEA LA RISORSA "INFORMAZIONE" L'informazione rappresenta oggi una risorsa economica primaria, la sua disponibilità è fonte di sviluppo, competitività e produttività in tutti i settori. Gli scambi internazionali d'informazioni vanno assumendo sul piano economico, politico e dei problemi sociali un'importanza pari a quella degli scambi internazionali di beni, di risorse naturali e di capitali. DEFINIZIONE, TIPOLOGIA, FUNZIONI Si differenziano oltre che per gli argomenti che trattano, anche per le finalità che intendono raggiungere e per la copertura geografica e temporale. L'European Association of Information and Documentation Services (EUSIDIC) ha tracciato una tipologia basata: - sul tipo delle informazioni in esse contenute; - sulla funzione da esse svolta. Le basi di dati possono essere classificate in due principali categorie: basi di dati d'informazione secondaria: REFERENCE DATABASES consentono di avere accesso ad informazioni di riferimento quali: articoli, rapporti, atti di congressi, tesi, progetti di ricerca. Appartengono a questa classe: - basi di dati bibliografiche; - basi di dati di riferimento; basi di dati d'informazione primaria o fattuali: SOURCE DATABASES forniscono direttamente l'informazione stessa, quell'elaborabile per produrre nuova conoscenza: per esempio testi completi di documenti, formule chimiche, dati fisici, energetici, termodinamici, informazioni economiche, statistiche, caratteristiche di prodotti. Appartengono a questa classe: - basi di dati di testi completi: full text database; - basi di dati numeriche: numeric database; - basi di dati numerico-testuali: textual-numeric database; - basi di dati di proprietà: properties database. Una seconda classificazione può essere fatta in funzione dei flussi informativi: - unidirezionali: per la consultazione; - bidirezionali: le BBS (Bulletin Board System); - transazionali: per le teleprenotazioni; - multifunzionali: videotel, minitel. I PRODUTTORI (<<FI: FORNITORI DI INFORMAZIONI>>) Propongono servizi ad un'utenza: <<conosciuta>> sistemi informativi aziendali; <<predeterminata>> associazioni; <<sconosciuta>> audience. Creano le basi di dati e svolgono le seguenti funzioni: - determinano il settore da coprire sia da un punto di vista tematico che geografico; - sono responsabili del contenuto intellettuale e della qualità della base di dati; - scelgono le fonti d'informazione ed il modo di analizzarle; - determinano il grado di esaustività del fondo; - sono responsabili della validazione dei dati e del tipo di analisi dell'informazione; - provvedono a trasferire le informazioni e i dati raccolti su supporti magnetici; sono responsabili della "filosofia" della base di dati.

Page 125: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 125

I DISTRIBUTORI (<<HOST COMPUTER>>) Acquisiscono l'informazione su supporto magnetico dai produttori e si fanno carico dell'hardware e del software necessari alla costituzione di sistemi per la gestione ed il reperimento in linea dell'informazione. Sono anche denominati <<host computer>>, identificandoli con l'elaboratore di cui sono dotati, <<ospite>> delle basi di dati. Hanno due ruoli: - tecnico: software di gestione dei collegamenti (reti e terminali); software di gestione delle basi di dati; software d'interrogazione delle basi di dati; software specifici di servizio: contabilità, stampe, statistico-matematici; - commerciale: assicurano la promozione delle basi di dati. Tipologia: host computer <<supermercati>> dell'informazione in linea acquisiscono un gran numero di archivi su un'ampia varietà di argomenti, puntano tutto sulla sinergia: DIALOG (USA) distribuisce oltre 250 basi di dati; ESA (EUROPEAN SPACE AGENGY Frascati) distribuisce oltre 100 basi di dati; host computer specializzati assicurano la copertura in profondità solo in un determinato settore; gateway sono intermediari a pagamento tra utente e basi di dati distribuite da più host: mette a disposizione dell'utente un'interfaccia che lo aiuta a selezionare e usare le basi di dati: EASYNET (USA) intermediario per 15 host; MAGIC ON LINE (ITALCABLE) intermediario per 1200 basi di dati; TELEO (gruppo IRI-STET). GLI UTENTI Tipologia: 1. utenti finali: utilizzano le informazioni estratte dalle basi di dati; 2. utenti intermediari: utilizzano le informazioni per conto dell'organismo cui

appartengono; 3. information brokers: svolgono su commissione ricerche per utenti finali. STRUMENTI HARDWARE Personal computer: compatibili, Macintosh, Atari, Amiga; permette il downloading in altre parole di immagazzinare su hard disk i risultati di una ricerca, esegue l'uploading che consiste nell'elaborazione locale di una strategia di ricerca, prendendo tutto il tempo che occorre e, una volta messa a punto, nel suo invio all'host: questa funzione comporta, rispetto ad una ricerca interattiva, una riduzione dei tempi di connessione fino al 75%; Modem; Cavo RS-232: per collegare il PC al modem. STRUTTURA ED ANALISI DEI COSTI Bisogna distinguere le seguenti voci: 1. apparecchiature: PC, modem, stampanti; 2. telecomunicazione: tariffazione linea; 3. contratti di utilizzo per gli host computer: per ottenere l'accesso occorre stipulare

un contratto con l'host, il quale assegna all'utente un codice ed una password. Tipologia: 1. contratti gratuiti e illimitati nel tempo (<<pay-as-you-go>>): prevedono solo il

Page 126: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 126

pagamento dell'effettivo utilizzo vale a dire il tempo di connessione, l'utente è fatturato mensilmente dall'host, è adottato dalla maggior parte degli host disponibili;

2. contratti che prevedono abbonamenti annuali; 3. contratti che prevedono il pagamento anticipato per una quota minima di

collegamento all'host: l'utente ha un determinato numero di ore di connessione, esaurite le quali entrano in funzione tariffe varie;

costi di accesso alle singole basi di dati variano da base di dati a base di dati in media si aggirano intorno alle 80.000 lire l'ora, in genere la natura del contenuto determina la diversità di tariffazione; costi per l'ottenimento dell'output i risultati possono essere ottenuti dall'utente tramite visualizzazione o stampa online: il costo non è addebitato perché rientra nei costi di connessione; la stampa offline per grandi volumi di dati è addebita intorno alle 300 lire per pagina, il dowload è il più caro in quanto l'utente ha a disposizione una porzione dell'hard disk dell'host. CRITERI PER LA SCELTA DI BASI DI DATI Sono i seguenti: 1. l'individuazione e la definizione dell'argomento su cui si desiderano le informazioni; 2. la natura dell'informazione: carattere bibliografico, dati numerici, ... 3. la copertura temporale: il periodo di tempo a partire dal quale l'informazione fa

riferimento; 4. la frequenza dell'aggiornamento; 5. il contenuto, l'ottica con cui è stata realizzata, le fonti analizzate, il tipo d'informazioni

in output; 6. le notizie disponibili sul produttore per conoscere meglio il prodotto. CRITERI PER LA SCELTA DI HOST COMPUTER Sono i seguenti: 1. la semplicità dei contratti; 2. i costi e le modalità di tariffazione; 3. la disponibilità di gateway verso altri host; 4. l'offerta di servizi aggiunti quali formazione, tempi di attesa per le stampe, posta

elettronica, dowload, ... 5. la semplicità dei linguaggi e la qualità dell'assistenza tecnica; 6. la possibilità di manipolare gli elementi del sistema; 7. la documentazione e la qualità fornita sia in linea sia su supporto cartaceo; 8. la rapidità nel rendere disponibile, gli aggiornamenti; 9. l'orario di accesso. SERVIZI TELEMATICI Videolento Consente la trasmissione di immagini TV con una cadenza dell'ordine di pochi secondi, le immagini sono riprese da normali telecamere e riprodotte, a qualunque distanza, su monitor televisivi; è la soluzione ottimale per applicazioni riguardanti: - controllo del traffico nei centri urbani, in aree portuali, aeroportuali, ... - telesorveglianza e controllo degli accessi in aree riservate o da proteggere - telesorveglianza di aree critiche per fenomeni naturali o dolosi (argini, frane, incendi, ...) - protezione aree riservate (parchi nazionali, riserve, aree agricole, ...) - telecontrollo processi industriali che comportano rischi per il personale. Audioconferenza Consente di compiere riunioni a distanza tra due o più sale lontane, gruppi di persone, nelle rispettive sedi, sono in grado di comunicare sia a voce, sia mediante la

Page 127: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 127

trasmissione di immagini TV statiche, grafici, disegni e documenti. Videoconferenza Consente di compiere riunioni a distanza tra due o più sale lontane opportunamente predisposte per la trasmissione di immagini, voci, documenti; insomma tutto quanto occorre per analizzare problemi, scambiare informazioni, prendere decisioni, operando nelle stesse condizioni di una riunione tra partecipanti seduti allo stesso tavolo. Nasce come servizio tra sale pubbliche, ma gli sviluppi futuri sono legati alla sala privata: disponibilità di reti numeriche ISDN. Una sala di videoconferenza è corredata di telecamere, monitor, microfoni ed altoparlanti per consentire ai partecipanti che si trovano in sale lontane di sentirsi "tutti attorno allo stesso tavolo". Le soluzioni visive possono essere diverse: da quella <<a divisione di schermo>> che offre una panoramica di tutti i partecipanti, a quella <<a commutazione di voce>> che inquadra la persona che parla, con tutta una gamma di soluzioni intermedie da progettare in base alle esigenze dell'utilizzatore. Le funzioni di regia non richiedono l'intervento di tecnici esterni garantendo la massima riservatezza. Altre telecamere consentono di inquadrare disegni, documenti. La trasmissione di tutte queste informazioni in contemporanea è possibile grazie al CODEC, che accetta segnali video, audio, ed altri ausiliari e li traduce in un flusso numerico a 2 Mbps. Videotel (Minitel in Francia) Servizio telematico pubblico (quindicimila utenti) che permette di eseguire una vasta gamma di operazioni che vanno dalla richiesta d'informazioni (accesso a basi di dati) alla più spinta interattività (dialoghi in diretta tra utenti: messaggeria). Al servizio si accede da un apposito terminale attraverso la rete telefonica commutata: 1. 1651 con password, codice di quattordici caratteri; 2. 1652 chiosco telematico. Videotel è a disposizione per tutti gli abbonati al telefono sull'intero territorio nazionale 24 ore su 24 rendendo disponibili informazioni in molteplici aree d'interesse: da quelle economico-finanziarie al tempo libero, dalle notizie di pubblica utilità a quelle dell'ultimo minuto. STRUTTURA DEL DATA-BASE VIDEOTEL Gerarchica e ad albero, per cui impone un rapporto di discendenza tra le pagine del tipo: padre-figlio. Ogni pagina può avere al massimo dieci figli che a loro volta possono essere papà. Ad ogni FI è assegnato uno specifico numero di tre cifre (nodo) sul MASTER DATA-BASE TELECOM di sotto al quale può sviluppare le frame, ognuna di loro avrà le prime tre cifre del numero che le identifica coincidenti con quelle del nodo assegnato. Pagina: è identificata da un numero massimo di nove cifre ed è costituita da almeno una frame fino al massimo di ventisei. Frame: è identificata dal numero della pagina cui appartiene più una lettera minuscola dell'alfabeto inglese, l'ordine delle frame è alfabetico la prima è sempre la lettera 'a'. La frame è organizzata in due parti: 1. display: 960 unità di visualizzazione disposte su 24 righe per 40 colonne, il FI ha a

disposizione 22 righe essendo la prima e l'ultima riservata al sistema. Ognuna delle unità display è suddivisa in 6 celle: questa è la grafica mosaico con 64 combinazioni possibili per le composizioni grafiche.

2. pagina ombra: gestione parametri, che sono il numero e il tipo di pagina, l'identificativo, la gestione dei rimandi, la modalità di editing, il prezzo.

Caratteristiche tecniche: 1200 bps da videotel all'utente 75 bps da utente a videotel, trasmissione asincrona, 7 bit+1 di parità, V23bis, standard: PRESTEL (Inghilterra) e TELETEL (Francia, sette milioni di utenti). L’indirizzo relativo al singolo servizio è rappresentato con *nnn#, per esempio l’elenco abbonati risponde al *12#.

Page 128: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 128

Gestione di rete lan/wan INTRODUZIONE Gestione d rete è un termine ambiguo. Alcuni pensano a questa impressione nei termini di amministrazione di LAN esaminati in precedenza, mentre i professionisti delle reti parlano di gestione di rete in termini di misura, controllo e manutenzione di tutti i dispositivi e delle linee di comunicazione di una rete geografica. CHE COS’è IL NETWORK MANAGEMENT? La gestione di rete comprende la misura, il controllo, la manutenzione e la pianificazione dei componenti di LAN (come server, PC, hub, bridge) e di elementi WAN come instradatori, modem, server di comunicazione, minicomputer e mainframe. Le principali aree d'interesse di coloro che hanno la responsabilità del network management, includono risorse, guasti, prestazioni, sicurezza e contabilità. Il Resource management o gestione delle risorse è la funzione dedicata alla raccolta dei dati necessari per scoprire che cosa è collegato alla rete; ciò include non solo l’hardware ma i componenti software, quali il tipo di sistema operativo e di NOS, nonché i programmi di comunicazione e i gateway; la gestione delle risorse provvede inoltre a tracciare una mappa di come questi componenti sono collegati, sia logicamente, sia fisicamente; tutte queste informazioni sono tipicamente rese disponibili su schermo nella workstation del network management. Il Fault management o gestione dei malfunzionamenti indica le operazioni di rilevamento e correzione dei malfunzionamenti che accadono sulla rete; in caso di guasto di un dispositivo, un dispositivo vicino che non è più in grado di comunicare, invierà un segnale di allarme al network management; il guasto può essere quindi isolato creando un altro percorso dati, ad esempio creando un bridge trasparente o attivando un’altra linea di comunicazione, nello stesso tempo, può essere inviato un tecnico per risolvere il problema. Il Performance management o gestione delle prestazioni tiene costantemente sotto controllo l’efficienza della rete per massimizzare il throughput al minimo costo; un componente può essere sovraccarico, il che causa un collo di bottiglia e rallenta tutta la rete; una determinata attività può presentare un ciclo mensile con un picco, in occasione del quale può essere necessario avere linee di comunicazione addizionali. Il Security management o gestione della sicurezza è un’estensione delle misure di sicurezza che abbiamo esaminato a livello LAN e application; esse proteggono dagli accessi non autorizzati alle risorse della rete e possono segnalare al network manager i tentativi ripetuti di accesso con parole d’ordine non valide, compiute da persone non autorizzate o da pirati. L’Accounting management o gestione contabile consente la misura e il controllo dell’utilizzo dei vari servizi di rete; a ciascun utente o entità possono poi essere addebitati dei costi ripartiti secondo il livello di utilizzo della rete. GESTIONE DELLA RETE AZIENDALE I fornitori quali Microsoft, Novell e Banyan, forniscono anche i package di amministrazione di LAN che, se sono adeguati per gestire i server, attivare gli utenti e garantire diritti di accesso alla LAN, non hanno tutte le funzionalità necessarie per rispondere alle esigenze generate dalle cinque aree in precedenza descritte. L’organizzazione di un sistema di gestione di rete è di solito gerarchica. Ciascun gruppo di PC o elementi di una LAN è amministrato localmente da vari NOS o element manager che interagiscono con network manager comune o manager di manager che ha la

Page 129: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 129

visione completa della rete. Il manager di manager può inviare richieste d'informazioni sullo stato e gli elementi manager possono segnalare problemi per mezzo di allarmi. PROTOCOLLI DI NETWORK MANAGEMENT Immaginiamo che ciascun dispositivo che si trova collegato in rete abbia bisogno di essere in grado di rispondere ad una richiesta sulla sua prestazione o ad un comando che chiede di cambiare una determinata impostazione. Ad esempio, il manager può avere bisogno di conoscere la velocità del filtraggio di un bridge o di far passare la velocità di funzionamento di un modem da 9.600 a 19.200 bps. Tutti questi dispositivi provengono da centinaia di fornitori. Alcuni di loro hanno inventato il proprio sistema e quindi presentano un problema di standard simile a quello dei protocolli di comunicazione. ISO sta lavorando al problema definendo i servizi (Common Management Information Services o CMIS) e il protocollo (Common Management Information Protocol o CMIP) per lo scambio d'informazioni. La maggior parte dei produttori di rete li ha inclusi nella propria strategia, ma non esiste ancora un accordo sulla loro implementazione. Man mano che TCP/IP è diventato un protocollo standard de facto, adottato da molte installazioni nell'attesa di un’implementazione OSI più ampia, il protocollo di netware management associato a TCP/IP è stato adottato come soluzione pragmatica in grado di funzionare nel presente. Esso si chiama protocollo SNMP (Simple Network Management Protocol) dove l’aggettivo “semplice” significa funzionalità molto limitata, con impiego di soli cinque comandi per inviare e ricevere messaggi. Anche se SNMP è limitato, funziona ed è disponibile da molto tempo, un fatto che spiega perché quasi ogni dispositivo di rete disponibile sul mercato lo supporta. CMIP è sicuramente più sofisticato e funzionale di SNMP e risponde meglio alle esigenze del network management. Ad esempio, un dispositivo con protocollo CMIP è in grado di gestire instradamenti complessi in modo automatico. In ogni modo, CMIP richiede l’impiego di protocolli OSI, in questo periodo meno diffusi di TCP/IP. Un compromesso che si sta diffondendo prevede l’impiego dei potenti protocolli CMIP sotto TCP/IP; questa soluzione è chiamata CMOT e può svolgere la funzione di fase di transizione verso ISO e CMIP. Non tutti i dispositivi di una rete possono essere gestiti. Nel mondo dell’information technology, incorporare intelligenza in un dispositivo rappresenta un costo che non è sempre giustificato. Per questa ragione, alcuni prodotti come gli hub possono essere acquistati sia con, sia senza, network management. Se sono gestibili essi hanno agenti SNMP in grado di rispondere alle richieste provenienti da qualunque stazione di gestione SNMP. SOLUZIONI PER LA GESTIONE DELLA RETE AZIENDALE La maggior parte dei principali produttori di computer offre package di network management per consentire il monitoraggio e il controllo centralizzati di LAN e WAN. Tipicamente, questi package consentono il controllo e lo scambio d'informazioni legate a topologia, geografia, traffico, tempi di risposta, configurazione dei dispositivi e utilizzazione dei server. Devono essere inoltre in grado di richiamare l’attenzione su situazioni critiche e problemi per mezzo di messaggi testuali lampeggianti o mutamenti di colori sullo schermo di un monitor, essi includono i collegamenti logici tra ciascun luogo, una mappa geografica con l’attività di linea e un dettaglio della configurazione di un dispositivo particolare che ha attirato l’attenzione dell’operatore e mostra lo stato funzionale dei suoi componenti. Tra i prodotti per gestione di rete aziendali più diffusi sono compresi: NetView di IBM, Enterprise Management Architecture (EMA) di DEC e OpenView di HP.

Page 130: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 130

SOMMARIO Gli specialisti di network management si considerano un mondo separato da quello dei professionisti MIS (Management Information Systems) in quanto essi si occupano di data communication piuttosto che di data processing. Ciò significa che i network manager si preoccupano principalmente della pianificazione e del funzionamento efficiente del servizio di rete piuttosto che dei contenuti dei dati. Ciò ha causato conflitti e confusioni in molte grandi organizzazioni nelle quali due gruppi si sono evoluti separatamente. In seguito alla pressione del management aziendale e all’espansione delle aree d'interesse comune, questi due rami del mondo informatico stanno oggi lavorando insieme più strettamente e in alcuni casi addirittura fondendo attività. L’implementazione efficiente del network management è la chiave del successo della rete aziendale. Solo allora, i servizi di rete possono essere controllati per vedere se stanno effettivamente fornendo ciò che serve agli utenti al costo più basso. La standardizzazione migliorerà ulteriormente l’efficienza riducendo i costi dei componenti e semplificando l’implementazione e la crescita della rete. Per il momento, il protocollo di gestione di rete più diffuso è SNMP ed esiste una forte competizione tra i principali fornitori di sistemi per offrire il miglior package per la gestione complessiva della rete.

Page 131: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 131

Elementi di progetto per una rete di calcolatori

Introduzione Prima di tutto è utile schematizzare il progetto in tre fasi distinte, il che significa individuare chiaramente i Dati di Progetto, in genere forniti dal committente della rete o deducibili da dati forniti del committente; definire chiaramente gli Obiettivi del Progetto, spesso richiesti dal committente ed infine organizzare il Progetto stesso. Dati di progetto 1. Localizzazione delle stazioni utente, cioè elencazione completa delle stazioni

coinvolte nel progetto e loro posizione in termini di distanze relative e reciproche. 2. Determinazione delle esigenze di traffico di ogni stazione, cercando di stabilire che

flussi quantitativi (in termini di n. di bytes), qualitativi (direzioni dei flussi verso o da altre stazioni) e temporali (se continuativi nel tempo, se ‘burst’, se costanti ma poco intensi, se costanti ed intensi,) ogni stazione dovrà sopportare.

3. Valutazione qualità richiesta del servizio, cioè tipo di prestazioni, livelli di sicurezza, gradi di Fault Tolerance (insensibilità ai guasti), ed altri ancora.

4. Costi complessivi che il progetto non dovrà superare. Obiettivi di progetto In genere ci si orienta su due strade complementari e opposte: 1. Massimizzazione delle prestazioni se si avevano fissato a priori i costi. 2. Minimizzazione dei costi se si avevano fissate le prestazioni a priori. Progetto Le fasi di progettazione dovrebbero seguire i seguenti passi: 1. Planning degli utenti, cioè riportare su carta la localizzazione delle stazioni indicando

per ogni tratta la distanza, i mezzi fisici eventualmente già presenti ed eventualmente i cablaggi.

2. Determinazione della matrice del traffico, cioè individuare per ogni stazione del passo precedente, magari su una tabella, le caratteristiche del traffico entrante ed uscente (mittenti, destinatari, quantità di traffico).

3. Scelta della topologia, del/dei mezzi, delle tecnologie di cablaggio e di instradamento. In genere si procede per tentativi facendo ipotesi tratte dai punti precedenti.

4. Ottimizzazione delle prestazioni, da apportare operando modifiche alle scelte decise al punto precedente in base agli Obiettivi noti.

Soluzioni basabili su LAN Per quanto riguarda le reti che possono configurarsi in un contesto Locale (LAN) la progettazione è spesso obbligata, tranne che in qualche caso specifico. In generale la soluzione migliore deve considerare i seguenti aspetti. 1. Basso costo cavo e hardware di rete; software di connessione assolutamente

standardizzato. 2. Estrema facilità di posatura negli edifici, anche in locali differenti. 3. Estrema facilità di manutenzione (aggiunta ed eliminazione stazioni dai concentratori

trasparente). Naturalmente se in un progetto di LAN qualche tratta fosse superiore alla distanza massima consentita, si dovrebbe far ricorso a ripetitori di segnale (repeater). Se la richiesta della LAN dovesse riguardare relativamente poche stazioni (<10), una connessione tra stazioni in locali contigui e comunicanti, sicuramente la scelta migliore è la 10Base2, per questioni di estrema facilità di cablatura e di prezzo. Se la richiesta della

Page 132: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 132

LAN dovesse riguardare qualche decina di stazioni, magari poste su diversi piani di un edificio, la scelta migliore è sicuramente l’uso di Concentratori, per questioni di posa in opera e manutenibilità. Se le richieste di connettività dovessero comprendere stazioni sparse sul territorio ma confinate in ambito urbano e ad alta larghezza di banda e velocità, la scelta della rete ricadrebbe su una MAN magari basata su FDDI. Soluzioni su Rete Pubblica (WAN) Le possibili connessioni di calcolatori possibili su Rete Pubblica (WAN) possono elencarsi nelle seguenti. Modem su linea commutata Si tratta del metodo più semplice ma anche di quello che offre prestazioni più limitate. Consiste nel dotare una stazione, tipicamente un PC, di Modem tradizionale che possa quindi convertire segnali digitali di una macchina in segnali analogici (e viceversa) veicolabili su linea telefonica standard. Le tariffe in questo caso è solo legata al consumo temporale della linea e non in base alla quantità di dati scambiati (linea commutata costantemente) con procedimenti analoghi ai normali consumi telefonici (canone bimestrale fisso più consumo degli scatti). Il sistema è adottabile quando non vi siano esplicite richieste di velocità elevate ed in generale è vantaggioso per distanze molto grandi (spesso è l’unica modalità di connessione) o per soluzioni da allestire velocemente e a bassissimo costo. Linea dedicata CDA Per linea dedicata s’intende quel collegamento fornito ad una coppia di utenti costituito da una connessione virtualmente diretta e di proprietà. Una CDA quindi è sempre fruibile tramite un modem standard ed è caratterizzata dalla totale disponibilità del mezzo e quindi da una migliore affidabilità. Le prestazioni rimangono quelle descritte per una linea commutata mentre il canone fisso è decisamente maggiore. Linea dedicata CDN In questo caso la connessione è qualcosa di sostanzialmente diverso ed offre la possibilità di accedere direttamente alla centrale numerica telefonica con un flusso di dati la cui capacità normale è di 64 Kbps, direttamente in modalità digitale. L’Azienda Telefonica Nazionale è in grado di realizzare collegamenti punto-punto o anche multi-punto in half e full duplex a 4 fili di tipo sincrono ad una velocità tipica di 64 Kbps, ma ottenibile fino a 2048 Mbps in multipli da 64K (evidentemente a costi maggiori). I costi dipendono dalla lunghezza della tratta, dalla capacità nominale, dalla modalità Half o Full duplex richieste. Un accesso CDN deve essere previsto quando la rete che lo utilizza deve operare continuamente nelle 24 ore dato che il costo globale dell’accesso è costituito da un canone annuo fisso a prescindere dal traffico. Naturalmente ogni stazione connessa in CDN deve dotarsi di un modem (DCE) numerico speciale (particolarmente costoso). Rete ISDN Attualmente i costi di una connessione o ‘borchia’ ISDN è tale da essere spesso evitata a favore di collegamenti CDN, anche se risulta essere particolarmente consigliabile nei casi in cui le connessioni non siano operanti su 24 ore; infatti, a differenza del CDN, la tariffazione ISDN, a parte un canone annuo relativamente basso, si basa sul tempo di collegamento come la normale linea telefonica pubblica. Una applicazione tipica di ISDN, soprattutto per le aziende, è il collegamento veloce con Internet e la possibilità di utilizzare ancora sugli stessi canali fisici i telefoni, i fax, o personalizzare altri servizi magari privati tipo videocitofoni, sistemi di allarme, trasmissioni video. Nell’ambito di reti di calcolatori trova attualmente la sua applicazione tipica come rete di backup per CDN o X.25 con accesso CDN, proprio per il tipo di tariffazione applicata. Come per CDN necessita di un particolare DCE ISDN. Quando si volesse utilizzare una rete WAN già presente e funzionante, in Italia le

Page 133: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 133

soluzioni sono riducibili a ITAPAC e C LAN (che tra l’altro è una rete assimilabile ad una MAN e presente solo per alcune province italiane: Torino, Pisa, Napoli, Trieste, Firenze e Roma). Queste soluzioni sono consigliate, a causa degli alti costi d’esercizio, solo quando l’utilizzazione dei collegamenti non è continuativo (ITAPAC) o quando le prestazioni devono essere per forza molto elevate (C LAN). Rete ITAPAC a commutazione di pacchetto Anche in questo caso l’utente può effettuare una connessione su linea commutata tramite Modem tradizionale (anche se la velocità massima rimane inferiore ai 2400 Bit/sec) oppure optare per un accesso diretto su CDN ad un massimo, in questo caso, di 64Kbps. Lo standard di rete ITAPAC è l’X.25 e per l’accesso diretto è necessario un modem X.25 (più propriamente ‘modem X.21’) e un servizio PAD alla più vicina centrale di commutazione. In questo caso il modem X.25 non è particolarmente costoso se confrontato ad un DCE numerico per CDN. La tariffa consta di un canone bimestrale fisso più un costo aggiuntivo in funzione al n. di pacchetti processati e alla loro lunghezza. Rete MAN C Lan In questo caso si tratta di una rete Metropolitana implementata in Fibra Ottica FDDI con velocità massima di 100 Mbps e utilizzata con vari protocolli di rete (spesso SMDS o Frame Relay). Progetto di rete con attraversamento di suolo pubblico Sono a disposizione 4 stazioni A,B,C e D di cui: 1. la stazione A svolge funzione di file server e mette a disposizione degli utenti file

immagine di dimensione massima 200Kbyte. 2. La stazione B deve poter avere accesso (r/w) ai file immagine depositati su A. 3. La stazione C, come la stazione B, deve poter avere accesso (r/w) ai file immagine

depositati su A. 4. La stazione D invece è quella deputata alla creazione dei suddetti files che dovrà

mantenere archiviati la stazione A. Le stazioni sono disposte sul territorio alle seguenti distanze: A-B 25 Km A-D 31 Km B-D 2 Km B-C 1 Km D-C 1 Km Naturalmente le stazioni devono essere collegate in rete e la qualità del servizio richiesta prevede: utilizzazione continuativa sulle 24 ore. Trasferimento da stazione a stazione in meno di 30 secondi. Nessuna particolare esigenza di protezione o di Tolleranza ai guasti. Connessione più orientata sui costi che sulle prestazioni. Fase 0. Obiettivi e scelte progettuali Malgrado sia richiesta una certa economicità per il progetto, tale da poter ipotizzare una rete di stazioni connesse su normale linea Commutata (Modem e presa telefonica), le contemporanee richieste di prestazioni ci obbligano a scartare tale ipotesi, non prima di averla comunque presa in considerazione. Calcoliamo quindi il tempo di trasferimento di una immagine di 200 Kbyte alla velocità massima consentita attualmente su linea commutata (28800 solo in teoria!), e trascurando l’overhead di comunicazione: Tempo di trasferimento=(n Bit totali)/velocità(bps)=[(200*1024*8)/(28800)] sec. = 56.4 sec. Naturalmente tutto ciò in condizioni ideali; solo introducendo il reale overhead dovuto ai bit di start, stop e parità, il valore precedente vale già circa 80 sec.

Page 134: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 134

Per questo motivo, e cioè distanza dalle prestazioni richieste di un fattore 2, la soluzione economica può essere scartata. Dovrà essere presa in considerazione quindi la Rete Pubblica solo tramite l’utilizzo di una linea dedicata, neppure CDA, ma CDN o un accesso a Rete Pubblica a commutazione di pacchetto. Le prestazioni richieste e l’obiettivo economico espresso non consentono di prendere in considerazione una rete in fibra ottica di tipo MAN. D’altra parte, non essendo stata specificata la località reale dell’installazione, si scarta anche l’utilizzazione di una MAN eventualmente già presente. Fase 1. Planning Utenti Il planning degli utenti è già descritto nel testo del problema; per esemplificare si riporta un grafico.

Fase 2. Determinazione del traffico Non essendo specificato il traffico medio per unità di tempo, ma solo una indicazione sulla quantità singola di trasferimento, la matrice del traffico può essere così costruita:

da | a (- )

A B C D

A - 200 Kb 200 Kb 200 Kb B - - - - C - - - - D 200 Kb - - -

Naturalmente i dati in tabella non significano, ad esempio che “il traffico da D ad A è di 200 Kbyte” perché non si sa quante richieste di trasferimento possono avvenire nell’unità di tempo. Si danno a questi valori un significato generico di numero puro, effettivamente proporzionale al traffico medio lungo le tratte. Fase 3. Scelta della topologia Optiamo quindi per una comunicazione su linea dedicata (CDN), dato che la posa in opera di una linea privata tra A e B o C sicuramente farebbe lievitare notevolmente i costi (sicuramente più del noleggio della linea dedicata). La topologia scelta per servire le esigenze di connessione potrebbe essere:

Infatti la tratta A-B deve poter sopportare al massimo un trasferimento da A verso B, da A verso D, da A verso C contemporaneamente (200 Kbyte*3) ed inoltre un trasferimento ancora simultaneo da D verso A (altri 200 Kbyte). Totale: 800 Kbyte. Nella tratta D-B il traffico massimo è naturalmente di 400 Kbyte. Nella tratta B-C il traffico massimo si riduce ai soli 200 Kbyte. Siccome l’esigenza temporale vale 30 sec. per un trasferimento, agendo sul carico massimo per tratta ipotizzato, si ottengono i seguenti valori di banda per le tre connessioni (al netto di overhead): A-B Banda=(800*1024*8/30)bps = 218453 bps= 213 Kbps

Page 135: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 135

D-B Banda=(400*1024*8/30)bps = 109226 bps= 107 Kbps D-B Banda=(200*1024*8/30)bps = 54613 bps = 53 Kbps Le capacità nominali delle tre tratte quindi, in termini di larghezza di banda, saranno: A-B = 256 Kbps Bidirezionale B-D = 128 Kbps Bidirezionale B-C = 64 Kbps Unidirezionale Naturalmente si sono usati multipli di 64 Kb così come previsto dalla tecnologia CDN offerta dall’Azienda Pubblica. Fase 4. Ottimizzazione Naturalmente il sistema è ottimizzabile considerando le seguenti tratte e topologia: A-D 31 Km, carico di nuovo a 800Kbyte, e quindi banda nominale di 256 Kbps Bidirezionale D-B 2 Km, carico di 200 Kbps, banda nominale di 64 Kbps Unidirezionale D-C 1 Km, carico di 200 Kbps, banda nominale di 64 Kbps Unidirezionale Sei Km di differenza lungo la tratta maggiore comunque comportano un costo minore per la prima ipotesi, ma l’abbassamento di banda richiesta per un tratto e la unidirezionalità ottenute favoriscono questa seconda ipotesi. In ogni caso le stazioni dovranno dotarsi di DCE numerico a 256 Kbps Full duplex (stazione A), di DCE numerici di banda richiesta Half duplex le altre stazioni. Una seconda ottimizzazione potrebbe essere quella che non prevede CDN per le tratte meno trafficate ed unidirezionali, ma collegamenti ad ITAPAC, sempre su linea dedicata. In questo caso le stazioni dovrebbero essere configurate: A: DCE numerico 256 Kbps Full duplex. B: modem X.25 a 64 Kbps Half Duplex e collegamento ad Itapac. C: modem X.25 a 64 Kbps Half Duplex e collegamento ad Itapac. D: DCE numerico a 256 Kbps Full duplex. modem X.25 a 64 Kbps Half Duplex e collegamento ad Itapac. modem X.25 a 64 Kbps Half Duplex e collegamento ad Itapac. Infine per la tratta A-D deve essere noleggiata una linea dedicata CDN di 31 Km con banda di 256 Kbps Full. Si noti che la stazione D deve possedere due modem X.25 per poter soddisfare le eventuali richieste simultanee provenienti dalle stazioni B e C. Organizzazione attività Provider di Internet I costi per un fornitore di servizio Internet (Provider) sono da individuarsi nei seguenti componenti: stazione Server, Router, Modem su linee commutate, Sistema operativo che offra servizi di Routing e principali servizi di Rete, noleggio di almeno un canale dedicato numerico (CDN) con relativo DCE, attivazione delle singole linee telefoniche per gli utenti. Naturalmente le entrate deriveranno dai canoni di abbonamento ceduti agli utenti. Vediamo nel dettaglio le caratteristiche e l’ammontare dei costi. Server Pentium, 128 Mbyte RAM, 12Gbyte HD. Router Cisco dotato n porte seriali. 8 Modem V34 economici ma veloci. Sistema operativo Windows NT. Noleggio presso Telecom di Canale dedicato CDN e DCE a 64 Kbps Full duplex. Attivazione presso Telecom di otto linee telefoniche. Ora il Provider per sostenere i costi deve vendere N abbonamenti ad X lire. Considerando che attualmente un abbonamento medio vale 200.000 mila lire annue, in un anno gli abbonamenti dovrebbero essere: N. abbonamenti = xx/200.000 = yy. Ora però dobbiamo considerare che oltre ai costi citati il Provider possa “portare a casa” qualcosa, quindi portiamo il numero minimo di abbonamenti a xx+zz. Il rapporto utenti/linee telefoniche normalmente non deve mai scendere sotto 10 (cioè nel nostro caso gli utenti simultanei collegati saranno teoricamente almeno 20, magari non per tutta la giornata, anche se nelle ore di ‘punta’ forse possono essere mediamente

Page 136: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 136

anche di più). Ma allora affinché gli utenti non si inferociscano al momento della chiamata, trovando spesso occupato con un rapporto reale utenti/linee di xx+zz/8=25>>10, bisogna subito portare le linee telefoniche attivate da 8 a 20. Il costo per altre 12 attivazioni sarà più Modem V.34. Si tenga presente inoltre che una CDN da 64 Kbit/sec nelle ore di punta non concede realmente più di 16Kbps di banda. In effetti, volendo approfondire un pochino il ragionamento, 64Kbps in realtà sono 8 Kbyteps ovvero 8192 byteps. Un Modem tranquillo, ad esempio a 14400 bps possiede un Tranfer Rate nominale di 1.4 Kbyteps. Ciò significa che una linea CDN a 64Kbps è completamente occupata da 8/1.4=5.7 utenti simultanei che scaricano magari dei files in FTP! (tutti i conti effettuati sono nominali, tranne il valore 10 utilizzato per il calcolo del TR dei modem, che tiene conto dei bit di overhead). Attualmente i Provider convogliano gli utenti su CDN superaffollati e che fungono da reali colli di bottiglia, non potendo sostenere gli elevatissimi costi di un upgrade di banda per le linee dedicate. In questo modo l’utente si lamenta della lentezza delle sessioni concesse dalla Rete, ma non individua naturalmente la causa reale di tutto ciò; magari quindi cambia il Modem, che in base a queste considerazioni è l’elemento più incolpevole, poi magari compra un po' di RAM ed infine maledice la Rete.

Page 137: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 137

clustering Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico. Un client interagisce con un cluster come se questo fosse un unico server. Le configurazioni cluster sono utilizzate per ragioni di disponibilità, gestibilità e scalabilità. Disponibilità: quando un sistema o un’applicazione del cluster sono interrotti, il software del cluster reagirà riavviando l’applicazione o suddividendo le operazioni del sistema interrotto ai restanti sistemi del cluster. Gestibilità: gli amministratori utilizzano una console grafica per spostare le applicazioni e i dati all’interno del cluster su server diversi. Queste operazioni sono eseguite per bilanciare manualmente i carichi di lavoro e per liberare i server per operazioni di manutenzione senza per operazioni di manutenzione senza che sia necessario interrompere il sistema. Scalabilità: quando il carico totale va oltre le capacità dei sistemi del cluster, è possibile aggiungere ulteriori sistemi a quel determinato cluster. Esempio di clustering I punti di vendita sono il punto focale del settore commerciale. Per mantenere aggiornate le registrazioni delle vendite è necessario che ogni cassa abbia accesso continuo al database dei prodotti del negozio, ai codici, ai nomi e ai prezzi. In caso di errore del sistema del punto di vendita, le vendite non potranno essere registrate con conseguente perdita di denaro, clienti e della qualità del servizio. In questo caso, la tecnologia di clustering può essere utilizzata per garantire la disponibilità del sistema. La soluzione clustering potrebbe essere costituita da due server con accesso a dispositivi di memorizzazione multi-port (Disk Array) sui quali si trova il database. Nel caso dell’arresto del Server uno, il sistema di backup (Server due) è automaticamente messo in funzione e gli utenti finali sono commutati sul secondo server, senza alcun intervento tecnico. Il downtime è in questo modo ridotto al minimo. La tecnologia dei dischi con tolleranza agli errori incorporata nei NOS protegge il disk array, ma l’utilizzo congiunto della tecnologia di clustering consente al sistema di restare in funzione.

Il clustering può agevolare i professionisti informatici nella progettazione di sistemi che sono in grado di crescere parallelamente alle esigenze di un’organizzazione, consente inoltre una maggiore flessibilità. Con il clustering è possibile collegare più server in un

Page 138: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 138

unico sistema, e in seguito integrarne altri per rispondere a esigenze in crescita. Il clustering concede agli architetti dei sistemi una possibilità che non è mai stata disponibile in precedenza, disponibilità e scalabilità su piattaforme comuni e convenienti. Architetture tradizionali Oggi sono utilizzate numerose architetture per garantire la disponibilità dei sistemi di computer. Una struttura hardware tradizionale per ottenere un’alta disponibilità è quella di duplicare i sistemi con componenti completamente replicati. Il modello software tradizionale per l’utilizzo di questo hardware prevede che uno dei sistemi esegua l’applicazione mentre l’altro resta inattivo, pronto a sostituire il sistema primario in caso di arresto. I difetti di questo approccio comprendono l’aumento dei costi dell’hardware, che non corrispondono a un miglioramento della capacità di elaborazione del sistema, e la mancanza di protezione nel caso di errori intermittenti delle applicazioni. Per aumentare la scalabilità sono state utilizzate numerose architetture diverse. Una struttura hardware per ottenere la scalabilità andando oltre un solo processore è il sistema di symmetric multiprocessing (SMP). Un sistema SMP è composto da più processori che condividono una memoria e un sottosistema I/O globali. Il modello software SMP tradizionale, denominato “modello a memoria condivisa”, esegue una sola copia del sistema operativo con i processi delle applicazioni eseguiti come se si trovassero su un sistema con un solo processore. Se su un sistema SMP sono eseguite delle applicazioni che non condividono dati, il sistema consente un elevato grado di scalabilità. A livello dell’hardware, il principale problema dei sistemi SMP sono le limitazioni fisiche della velocità di memoria e di bus. Superare queste limitazioni implica investimenti costosi, infatti con l’aumento della velocità dei microprocessori, i multiprocessori con memoria condivisa hanno costi sempre più elevati. Al momento passare da un solo processore a 2-4 processori è un’operazione costosa, e ancora più costosi sono i sistemi che vanno oltre gli 8 processori. Infine occorre sottolineare che né la struttura hardware dei sistemi SMP né il corrispondente modello software tradizionale fornisce vantaggi intrinseci di disponibilità rispetto ai sistemi a processore unico. Esiste però un’architettura che si è dimostrata ottimale per ottenere disponibilità e scalabilità nelle applicazioni per l’elaborazione business critical: il cluster. Architettura in cluster Un cluster è un insieme di sistemi di computer accoppiati liberamente e indipendenti che agiscono come un sistema unico. I client vedono un cluster come se fosse un unico server ad elevate prestazioni e altamente affidabile. Anche i gestori dei sistemi vedono un cluster praticamente allo stesso modo in cui vedono un server unico. La tecnologia di clustering è facilmente adattabile alla tecnologia standard dei computer, a basso costo e con possibilità di interconnessione. Il clustering può essere implementato in molti modi diversi. Un cluster può essere semplicemente costituito da un insieme di PC desktop standard interconnessi con Ethernet. All’estremo opposto, la struttura hardware potrebbe essere composta da sistemi SMP ad elevate prestazioni interconnessi da bus I/O per le comunicazioni ad elevate prestazioni. In entrambi i casi, l’aggiunta di capacità elaborative è effettuata in piccole fasi successive, aggiungendo altri sistemi. Il client considera il cluster come un server unico, o una immagine di sistema unico, anche se questo può essere composto da molti sistemi. È possibile aggiungere al cluster ulteriori sistemi per elaborare richieste più complesse o più frequenti da parte dei client. Se uno dei sistemi di un cluster si arresta, il carico di lavoro di quel sistema può essere automaticamente suddiviso tra i restanti sistemi. Quest’operazione in genere non è rilevata dal client. Modello a disco condiviso Nel clustering di oggi sono utilizzati due principali modelli software: il modello a disco condiviso e il modello senza condivisione. Nel modello a disco condiviso, il software in esecuzione su qualsiasi sistema del cluster può accedere a qualunque risorsa, quale ad

Page 139: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 139

esempio un disco, connessa a qualsiasi sistema del cluster. Se gli stessi dati devono essere a disposizione di due sistemi, i dati dovranno o essere letti due volta dal disco oppure copiati da un sistema all’altro. Analogamente a quanto accade in un sistema SMP, l’applicazione deve sincronizzare e serializzare l’accesso ai dati condivisi. Per la sincronizzazione si utilizza in genere un Distributed Lock Manager (DLM). Un DLM è un servizio fornito alle applicazioni per mantenere traccia dei riferimenti alle risorse in tutto il cluster. Nel caso in cui più di un sistema cerchi di fare riferimento alla stessa risorsa, il DLM riconosce il potenziale conflitto e lo risolve. Le attività del DLM possono tuttavia causare un aumento del traffico dei messaggi e ridurre le prestazioni a causa dell’accesso serializzato associato ai sistemi aggiuntivi. Un modo per risolvere questi problemi è il modello software senza condivisione. Modello senza condivisione Nel modello software senza condivisione, ogni sistema del cluster possiede un sottoinsieme delle risorse del cluster. Una determinata risorsa può essere di proprietà di un solo sistema alla volta, il quale è anche l’unico a disporre dell’accesso a quella risorsa particolare, benché in caso di arresto di quel sistema un altro sistema determinato in modo dinamico potrà prendere possesso della risorsa. Le richieste dei client sono indirizzate automaticamente al sistema che possiede la risorsa. Se ad esempio un client richiede l’accesso a risorse di proprietà di più sistemi, per soddisfare la richiesta verrà scelto uno dei sistemi. Il sistema host analizza la richiesta del client e invia sottorichieste ai sistemi appropriati. Ciascun sistema esegue la sottorichiesta che gli compete e restituisce al sistema host solo la risposta richiesta. Il sistema host unisce quindi le varie risposte nella risposta finale completa e la invia al client. La richiesta di un unico sistema sul sistema host descrive una funzione di alto livello (ad esempio, il recupero di un record con dati multipli) che genera una notevole quantità di attività di sistema (ad esempio, più letture su disco) e il traffico associato a tale attività non compare sull’interconnessione del cluster fino al momento in cui sono trovati i dati desiderati. Utilizzando un’applicazione distribuita su più sistemi in cluster, quale un database, le prestazioni globali del sistema non subiscono limitazioni dipendenti dalle limitazioni hardware di un solo computer. È possibile supportare i modelli a disco condiviso e senza condivisione all’interno dello stesso cluster. Esistono tipi di software che riescono a sfruttare con facilità le capacità del cluster tramite il modello a disco condiviso. Questo tipo di software comprende applicazioni e servizi che richiedono un modesto accesso condiviso (a lettura intensiva) ai dati, insieme ad applicazioni o carichi di lavoro che sono molto difficili da suddividere. Le applicazioni che richiedono il massimo della scalabilità dovrebbero utilizzare il supporto senza condivisione del cluster. Applicazioni server in cluster I cluster consentono un elevato livello di disponibilità e di gestibilità a tutto il software basato su server, ma le applicazioni “cluster-aware” sono in grado di sfruttare appieno i vantaggi di scalabilità di un ambiente in cluster. Il software server relativo al database deve essere ottimizzato per coordinare l’accesso ai dati condivisi in un cluster a disco condiviso, oppure per suddividere una richiesta SQL in un insieme di sottorichieste in un cluster senza condivisione. In un cluster senza condivisione, il server del database potrebbe sfruttare ulteriormente i dati suddivisi effettuando query intelligenti parallele che vengano eseguite in tutto il cluster. Potrebbe inoltre essere ottimizzato il software server relativo alle applicazioni al fine di rilevare gli errori dei componenti e dare avvio a un ripristino rapido mediante le Api del clustering.

Page 140: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 140

SISTEMI DISTRIBUITI

Rete di calcolatori: sistema interconnesso di elaboratori (H/W e S/W) anche disomogenei, senza condivisione di memoria (ambiente locale). Sistema distribuito: sistema logicamente integrato da un sistema operativo globale che fornisce alle applicazioni la visione di un unico sistema, indipendentemente dalla distribuzione fisica delle risorse. Parole chiave: sistema, processo, nodo, risorsa comune non condivisibile. RETE

NOS: Network Operating System, sistema operativo di rete. LOS: Local Operating System, sistema operativo locale. Ogni nodo ha un proprio LOS, sul quale è innestato un NOS, che permette l'interazione tra nodi, in modo indipendente dai vari LOS, in pratica il NOS è un filtro per i richiami di tipo remoto al sistema operativo e permette la comunicazione. SISTEMI DISTRIBUITI Distrib. OS: sistema operativo di tipo distribuito. Le risorse sono coordinate da un sistema operativo globale, non esiste un OS locale, i processi usano le risorse attraverso il distrib. OS e non ha importanza dove le risorse siano effettivamente. Nei sistemi completamente distribuiti non esistono rapporti

Page 141: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 141

gerarchici (master-slave) tra le entità attive del sistema (nodi, processi). Il tipo di OS differenzia le reti dai sistemi distribuiti.

RETI E SISTEMI DISTRIBUITI (pro e contro) I sistemi distribuiti sono più robusti (fault tolerance) e flessibili delle reti, beneficiano dei vantaggi derivanti da una concezione globale del sistema, sono espandibili, ma le reti di calcolatori hanno avuto un maggior successo commerciale perché: permettono la conservazione degli investimenti precedenti sia ambito tecnico (H/W e S/W) che umano.

Page 142: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 142

internet IntRODUZIONE Se vogliamo comunicare con un nostro amico attraverso il telefono, dobbiamo eseguire una serie di operazioni che ci permettono di stabilire il collegamento. Si tratta di operazioni abbastanza semplici, come alzare la cornetta, attendere il segnale di linea, digitare il numero, verificare che il telefono remoto sia libero e attendere che qualcuno dall’altra parte alzi la cornetta. Possiamo definire nel loro insieme queste operazioni una ‘procedura di collegamento’. Anche per usare Internet è necessario effettuare una procedura di collegamento, che tuttavia varia al variare di alcune condizioni. Sappiamo che Internet è una rete di PC. È attraverso i PC che noi esseri umani possiamo comunicare con altri esseri umani e consultare le informazioni presenti sulla rete (in pratica su tutti gli altri PC ad essa connessi). Dunque la procedura di connessione ad Internet consisterà nel collegamento del nostro PC alla rete. Dal punto di vista tecnico questo collegamento può avvenire in molti modi e in base a diversi apparati hardware; ma tutti questi modi rientrano in due grandi categorie: collegamenti permanenti mediante linee dedicate e collegamenti temporanei mediante linea commutata. Nel primo caso il nostro PC è connesso direttamente ad Internet mediante una linea dedicata unicamente e costantemente a questa funzione. Tutti i PC che costituiscono propriamente Internet sono connessi tra loro in questo modo. Alcuni sono potenti superPC, posseduti dai centri di calcolo di grandi università, centri di ricerca e aziende; altri sono normali PC. Nella quasi totalità dei casi il collegamento avviene mediante l’interconnessione di reti locali o dipartimentali. Si usa definire host o nodo un PC collegato permanentemente alla rete. Se disponete di un PC dotato di collegamento permanente, l’accesso ad Internet non presenta molti problemi: è sufficiente accendere il PC, avviare i programmi per l’uso della rete, e la cosa è fatta. Infatti, il collegamento è stato fatto una volta per tutte nel momento in cui si è configurato il PC.

La maggior parte degli utenti si collega ad Internet in modo temporaneo, utilizzando una normale linea telefonica analogica e un modem o una linea telefonica digitale ISDN. In questo caso, per stabilire il collegamento alla rete il nostro PC ‘telefona’, mediante il modem, ad un particolare nodo della rete, abilitato a fornire accessi esterni. Il proprietario di un nodo in grado di fornire accesso ad utenti esterni è denominato access provider.

Page 143: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 143

Di norma i provider richiedono il pagamento di una somma di denaro, non elevata, per usufruire dei loro servizi.

La procedura di collegamento è eseguita da un apposito programma di accesso, che utilizza uno speciale protocollo denominato Point to Point Protocol (PPP). Ogni qual volta desideriamo usare Internet, dunque, dovremo avviare questo programma, che si occuperà di effettuare la telefonata al provider, inviare i nostri dati di riconoscimento, e gestire il traffico di dati da e verso la rete. Tutti i moderni sistemi operativi hanno tali programmi nella loro dotazione standard. Naturalmente essi differiscono secondo il tipo di sistema operativo.

La storia di Internet Internet oggi collega tra di loro decine di milioni di computer e circa 200 milioni di utenti. E si prevede che nel volgere di pochi anni la maggior parte della popolazione terrestre avrà la possibilità di accedere ed utilizzare Internet. Ma questa colossale rete di comunicazione, nonostante il suo enorme sviluppo, in realtà si può considerare ancora nella sua fase infantile. La nascita di Internet infatti risale ai primi anni ottanta mentre la sua applicazione più popolare - il World Wide Web - vede la luce soltanto agli inizi degli anni novanta. Come nel caso della conquista della luna anche la nascita di Internet trova il terreno adatto in cui svilupparsi nella sfida tecnologico-militare tra sovietici e americani che risale agli anni della guerra fredda, un periodo di tensione internazionale che nasce alla fine della seconda guerra mondiale - con la spartizione del mondo in due blocchi contrapposti - e termina soltanto nel 1989 con la caduta del muro di Berlino.

Durante il 1957 i sovietici mettono in orbita il primo satellite artificiale della storia, lo Sputnik. Questo evento, al di là della sua enorme importanza tecnica, genera una sorta di choc tecnologico nel mondo occidentale che fino allora aveva basato le sue certezze sulla supremazia tecnologico militare americana. Infatti un’ovvia ricaduta bellica di questo lancio era rappresentata dal fatto che un’atomica sovietica poteva disporre un vettore in grado di farle raggiungere facilmente un obiettivo posto in qualsiasi parte del mondo. L’agenzia ARPA Le risposte dell’amministrazione USA al lancio dello Sputnik da parte dei sovietici non si

Page 144: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 144

fanno attendere, e quella che riguarda più da vicino la nostra storia arriva l’anno successivo. Nel 1958 infatti il Congresso, con lo scopo di coordinare i finanziamenti per la ricerca tecnologica con ricadute belliche, approva la costituzione dell’ARPA - Advanced Research Projects Agency – con sede a Washington, nell’edificio del Pentagono. Gli interessi dell’agenzia ARPA ben presto si rivolgono alla telematica, mentre alla neonata NASA, come ben sappiamo, è affidata la guida della ricerca aerospaziale. Lo scopo dell’ARPA, e di conseguenza anche delle principali industrie legate alla difesa, si concentra su una delle questioni principali che preoccupano in quegli anni gli Stati Uniti: come impedire che un possibile attacco atomico interrompa del tutto le comunicazioni nel paese gettando l’America nell’anarchia. Semplificando, possiamo vedere il problema in questi termini: se una grossa centrale telefonica è distrutta tutte le comunicazioni via telefono che la attraversano sono interrotte. Di conseguenza è sufficiente interrompere i nodi principali di una rete telefonica per isolare l’intera rete e impedire lo scambio di informazioni nel paese. La trasmissione dei dati a pacchetti Già all’inizio degli anni sessanta, un ingegnere di nome Paul Baran, dipendente di un’industria bellica - la Rand Corporation - trova un’interessante soluzione teorica al problema di come creare una rete di comunicazioni che non fosse così fragile. L’idea è di costruire molti collegamenti alternativi tra due qualsiasi punti in comunicazione. In questo modo, anche se molti di questi collegamenti dovessero mancare, è sempre possibile trovare una via di comunicazione percorribile.

Oltre all'idea di una rete decentrata e ridondante, Baran ha un'altra intuizione geniale: piuttosto che inviare tutto il messaggio su un unico percorso, perché non dividere questo messaggio in tante piccole parti e fare seguire ad ognuna di queste la sua strada verso la destinazione? In questo modo, se un percorso s’interrompe mentre trasmettiamo un messaggio, solo un pezzetto – o un pacchetto come si direbbe oggi - andrà perso, mentre le altre parti del messaggio sceglieranno strade alternative per giungere a destinazione e potranno quindi essere recuperate e ricomposte. Considerate che l’idea di dividere un messaggio in tanti pacchetti di dati indipendenti, chiamata attualmente packet switching, è tuttora alla base dei protocolli per l’invio di messaggi in rete. Purtroppo per Baran però l’industria non ritiene sia ancora il momento adatto per realizzare queste idee rivoluzionarie e quindi i suoi studi sono per il momento messi in un cassetto. Il progetto Arpanet La prima realizzazione pratica di un sistema di comunicazione tra computer basato sulla trasmissione di pacchetti di dati prenderà corpo solo nel 1966, quando un ingegnere dell’agenzia ARPA, Bob Taylor, propone al suo direttore un progetto che riguarda la costruzione di una rete di comunicazione tra i computer. Ovviamente su questo progetto si riversano molte delle idee originariamente concepite da Paul Baran. La differenza è che ora i tempi sono maturi e infatti, senza neppure una richiesta formale e in meno di un ora, l’idea è approvata e finanziata. Le specifiche tecniche del progetto sono affidate ad un brillante informatico di nome Larry Roberts che guiderà per primo la realizzazione del progetto chiamato Arpanet. Un

Page 145: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 145

progetto che, nel volgere di pochi anni, porterà alla nascita di Internet. Bob Taylor e Larry Roberts

Il 1969 è spesso ricordato come l’anno dello sbarco sulla luna. Ma nello stesso anno accade un altro avvenimento molto importante per Internet: nel 1969 infatti vede la luce il primo nucleo di Arpanet che collega tra loro quattro università americane. Negli anni successivi questo embrione si espande fino a collegare una quarantina di nodi. Ma l'applicazione che forse ha la maggiore influenza nell'evoluzione successiva della rete nasce per caso, nel marzo del 1972. Un ingegnere chiamato Ray Tomlinson, per scambiare opinioni con i suoi colleghi delle altre università installa su Arpanet un semplice sistema di messaggistica su computer. E’ appena nata la posta elettronica e per la prima volta compare il famoso simbolo a chiocciola, divenuto in seguito sinonimo di Internet. La nuova applicazione riscuote un enorme successo tra i ricercatori e l’attuale direttore scientifico del progetto ARPA, Bob Kahn, spinto da questo entusiasmo, organizza nello stesso 1972 la prima dimostrazione pubblica di Arpanet alla International Conference on Computer Communications. È un successo oltre ogni aspettativa. Da Arpanet a Internet La dimostrazione pubblica del 1972 sulle potenzialità della connessione in rete di quattro computer rappresenta l’inizio della formidabile euforia che travolge le università e i centri di ricerca americani. Negli anni successivi infatti questo primo embrione di Arpanet si espande sempre di più sul territorio americano e contemporaneamente iniziano a svilupparsi numerose altre reti di computer indipendenti e più economiche che collegano tra loro università e centri amministrativi. La nuova idea che nasce verso la metà degli anni settanta quindi è quella di creare un sorta di super rete che colleghi tra loro tutte le reti di computer esistenti, in poche parole Internet. Ma per ottenere questo risultato non basta connettere fisicamente queste reti di computer tra loro, occorre innanzitutto definire un linguaggio comune che consenta a tutti i computer di capirsi. Ed è con questo obiettivo che Cherf e Kahn elaborano le specifiche di un nuovo protocollo per comunicare su Internet, e lo battezzano Transmission Control Protocol o TCP. Vint Cherf

I risultati di questo lavoro sono pubblicati nel 1974 e l’anno successivo il nuovo protocollo è diviso in due parti: il TCP, che gestisce i pacchetti di dati, e l’IP, che ne regola la trasmissione. E in questa forma questo protocollo sopravvive ancora oggi e rappresenta il linguaggio universale su cui poggia il funzionamento di Internet. Solo nel 1982 però l’uso di questo fondamentale protocollo, il TCP/IP, è imposto a tutti i nodi di Arpanet, ma la sua diffusione nel mondo si espande a macchia d’olio. In gran parte dei paesi occidentali, infatti, la possibilità di connettere reti locali di computer in un'unica Internet mondiale stimola la nascita di molte nuove reti locali di computer che, grazie al TCP/IP, sono in grado di comunicare con tutte le altre reti di computer già esistenti e connesse ad Internet. A questo punto le nuove reti di comunicazione hanno ormai soppiantato la

Page 146: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 146

vecchia Arpanet che ha esaurito la sua funzione propulsiva. Nel 1990 infatti, a venti anni dalla sua nascita, Arpanet muore ufficialmente e inizia ad essere smantellata. il protocollo TCP/IP Internet è una sorta di meta-rete costituita da molte reti telematiche connesse tra loro. Non ha importanza quale sia la tecnologia che le unisce: cavi, fibre ottiche, ponti radio, satelliti, o altro. Non è neanche rilevante di che tipo siano i computer connessi: dal piccolo personal computer al grosso elaboratore, o mainframe. Punto di forza di Internet, e motivo del suo velocissimo espandersi, è la sua capacità di 'parlare' un linguaggio universale, adatto alla quasi totalità degli elaboratori esistenti. Per definire questo linguaggio bisogna considerare che i computer, come noto, pur usando tutti lo stesso alfabeto - il codice binario - 'parlano' spesso linguaggi differenti e incompatibili. Fuori di metafora, computer diversi usano sistemi operativi, codici di caratteri, strutture di dati spesso incompatibili tra loro. Per permettere la comunicazione tra l'uno e l'altro è necessario quindi definire un insieme di regole condivise da tutti i computer. Questa funzione, nell'ambito della telematica, è svolta dai protocolli. Nel mondo diplomatico per 'protocollo' si intende una serie di regole di comportamento e di etichetta rigidamente codificate, che permettono a persone provenienti da diversi universi culturali di interagire senza creare pericolose incomprensioni. Protocolli sono detti anche gli accordi o i trattati internazionali. Queste accezioni del termine possono essere accolte per metafora anche nell'ambito della telematica: un protocollo di comunicazione definisce le regole comuni che un computer deve conoscere per elaborare e inviare i bit attraverso un determinato mezzo di trasmissione fisica verso un altro computer. Un protocollo dunque deve specificare in che modo va codificato il segnale, in che modo far viaggiare i dati da un nodo all'altro, in che modo assicurarsi che la trasmissione sia andata a buon fine, e così via. Nel caso di Internet, l'insieme di protocolli che permettono il funzionamento di questo complesso sistema di comunicazione telematico, è comunemente indicato con la sigla TCP/IP, che è un acronimo per Transmission Control Protocol/Internet Protocol. Modello a strati TCP/IP TELNET FTP SMTP X-WIN DNS SNMP NFS Livello 7 ISO/OSI TCP UDP Livello 4 ISO/OSI IP Livello 3 ISO/OSI Il modello a strati TCP/IP si basa su una rete a quattro strati: 1. Applicazione 2. Trasporto 3. Internet 4. Rete Lo strato di rete immette sulla rete i frame in partenza e raccoglie quelli in arrivo. Prima di immettere sulla rete i frame, aggiunge ad essi una testata ed un controllo ciclico di ridondanza (CRC) per assicurare che i dati non siano corrotti durante il trasferimento.

Page 147: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 147

Lo strato Internet svolge tre funzioni principali: 1. l’indirizzamento 2. la suddivisione in pacchetti 3. l’instradamento In questo strato risiede l’IP che offre la consegna di informazioni senza connessione e non garantita. Lo strato del trasporto fornisce una comunicazione tra host utilizzando le cosiddette porte. In questo strato si trovano i due protocolli TCP (Transmission Control Protocol) e UPD (User Datagram Protocol) Il cui compito è proprio quello di trasportare dati. Nello strato delle applicazioni si trovano infine le applicazioni che si basano sulla rete. Applicazioni di questo tipo sono Winsock dell’ambiente Windows quali FTP e Telnet. Internet Il protocollo IP non svolge alcun tipo di controllo per assicurarsi del buon esito dei trasferimento dei dati. Di conseguenza i pacchetti possono andare perduti o non arrivare in sequenza. Il ruolo svolto da IP è di aggiungere a ciascun pacchetto un’intestazione contenente una serie di informazioni per effettuare il corretto instradamento dei dati. L’intestazione contiene: - l’indirizzo IP dell’origine: è l’indirizzo IP assegnato al mittente - l’indirizzo IP del destinatario: è l’indirizzo IP assegnato al destinatario - il protocollo di trasporto (TCP o UDP): serve ad indicare all’host destinatario il tipo di trasporto e di conseguenza il modo in cui manipolare i dati ricevuti - checksum: è il CRC calcolato sui dati trasferiti/da trasferire che permette di verificare l’integrità dei dati - TTL (Time-To-Live): il tempo di durata in vita di un datagram; alla partenza è assegnato un valore predefinito che diminuisce ad ogni attraversamento di un router; quando il TTL raggiunge il valore zero viene il datagram è tolto dalla rete. Trasporto Nello strato del trasporto si trovano i due protocolli TCP e UDP che hanno il compito di trasportare i dati da un host all’altro. Il TCP si occupa delle comunicazioni orientate alla connessione. Questo significa che quando due host comunicano utilizzando come trasporto il TCP, è necessario che tra essi si instauri una sessione. Nel corso di trasmissioni di questo tipo ci si serve di numeri sequenziali e di conferme per assicurare il trasferimento con successo dei dati. In pratica ciascun frammento di dati è numerato e spedito al destinatario. Il destinatario una volta ricevuti i frammenti provvede ad inviare al mittente un messaggio di avvenuta ricezione dei frammenti. A questo punto il mittente provvede ad inviare i frammenti successivi. In caso di mancata conferma dell’avvenuta ricezione da parte del destinatario il mittente provvede a spedire di nuovo i frammenti. Questo meccanismo ovviamente appesantisce la trasmissione, ma assicura un elevato grado di affidabilità. Utilizzando invece il protocollo UDP non vi è certezza dell’avvenuta ricezione da parte del destinatario dei dati spediti, ma in compenso la trasmissione risulta più semplice e veloce. Quest’ultimo protocollo è utilizzato nei casi in cui la velocità di trasmissione sia più importante della sicurezza della trasmissione (per es. in applicazioni real-time). Confronto TCP/IP — modello OSI Riportando in tabella i modelli a strati TCP/IP ed OSI si possono fare una serie di confronti. 1. Nel modello TCP/IP gli strati fisico e collegamento dati sono fusi nello strato della

rete. In pratica non è fatta alcuna distinzione tra la scheda di rete ed i loro driver, e questo consente di implementare il TCP/IP in qualsiasi topologia di rete.

2. Lo strato Internet del TCP/IP, in cui è implementato il protocollo IP, corrisponde allo

Page 148: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 148

strato di rete del modello OSI: entrambi si occupano dell’instradamento dei dati. 3. Lo strato di trasporto nei due modelli è analogo, ed entrambi permettono che tra i due

host si stabilisca una sessione. 4. Lo strato dell’applicazione TCP/IP, infine è il merge degli strati di applicazione,

presentazione e sessione del modello OSI.

Modello OSI Modello TCP/IP Applicazione Presentazione Sessione

Applicazione

Trasporto Trasporto Rete Internet Collegamento dati Fisico

Rete

Protocolli nello strato Internet Lo strato Internet comprende il protocollo IP, ma quest’ultimo non è l’unico protocollo implementato in questo strato. Altri protocolli situati nello strato Internet sono: ARP (Address Resolution Protocol) ICMP (Internet Control Message Protocol) IGMP (Internet Group Management Protocol) ARP Il protocollo ARP si occupa di mettere in relazione gli indirizzi IP con gli indirizzi MAC. Allorquando è richiesta la spedizione di dati ad una macchina con un dato indirizzo IP, ARP immette una richiesta sulla rete mediante la quale chiede all’host con quell’indirizzo di rispondergli notificandogli il proprio indirizzo MAC. Ricevuta la risposta la corrispondenza IP - MAC è mantenuta in una cache al fine di evitare di ripetere l’operazione nel caso fosse richiesta una spedizione allo stesso indirizzo. La cache ha ovviamente una dimensione predefinita. Nel caso in cui la cache fosse piena, l’aggiunta di una nuova voce porta all’eliminazione della voce più vecchia presente. Con il comando arp è possibile visualizzare il contenuto della cache. Net to Media Table Device IP Address Mask Flags Phys Addr hme0 sv_nt_00 255.255.255.255 00:60:08:71:de:49 hme0 www.biagio.com 255.255.255.255 00:60:08:73:2f:cf hme0 192.9.200.30 255.255.255.255 00:60:08:54:c5:ed hme0 192.9.200.42 255.255.255.255 00:50:ba:05:fe:dd hme0 192.9.200.98 255.255.255.255 00:10:4b:af:96:75 hme0 venus 255.255.255.255 SP 08:00:20:9a:02:64 hme0 jupiter 255.255.255.255 08:00:20:9a:08:21 hme0 224.0.0.0 240.0.0.0 SM 01:00:5e:00:00:00 Esempi su ICMP e ping – TTL ICMP fornisce un meccanismo di monitoraggio sugli errori e messaggi di controllo per l’insieme dei protocolli TCP/IP. Il protocollo ICMP può svolgere le seguenti funzioni: 1. fornire messaggi di echo e di risposta per verificare l’attendibilità di una connessione

tra due host 2. reindirizzare il traffico per fornire un instradamento più efficiente nel caso di

intasamento di un router 3. emettere un messaggio di time-out quando il TTL di un datagram è superato 4. fornire un messaggio di inibizione dell’origine per dire ad un host di rallentare le

proprie comunicazioni per non intasare un router

Page 149: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 149

Uno dei programmi più comunemente usati che fanno uso di questo protocollo è il PING (Packet INternet Groper) di cui riportiamo un esempio di esecuzione: Esecuzione di Ping venus.sysdata.it [192.9.200.199] con 32 byte di dati: Risposta da 192.9.200.199: byte=32 durata<10ms TTL=255 Risposta da 192.9.200.199: byte=32 durata<10ms TTL=255 Risposta da 192.9.200.199: byte=32 durata<10ms TTL=255 Risposta da 192.9.200.199: byte=32 durata<10ms TTL=255 Statistiche Ping per 192.9.200.199: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 0ms, Medio = 0ms Esecuzione di Ping sv_nt_00 [192.9.200.201] con 32 byte di dati: Risposta da 192.9.200.201: byte=32 durata=1ms TTL=128 Risposta da 192.9.200.201: byte=32 durata<10ms TTL=128 Risposta da 192.9.200.201: byte=32 durata<10ms TTL=128 Risposta da 192.9.200.201: byte=32 durata<10ms TTL=128 Statistiche Ping per 192.9.200.201: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 1ms, Medio = 0ms Computer client e computer SERVER

L’organizzazione di Internet può essere paragonata a quella di un servizio postale che si occupa di trasmettere e ricevere corrispondenza. E il comportamento di un computer che offre un servizio sulla rete è molto simile a quello di un negozio che vende per posta. Nel caso del negozio c’è catalogo che rappresenta l’interfaccia verso il cliente ed è inviato a moltissime persone. Per acquistare qualcosa useremo l’apposito modulo per le ordinazioni che si trova nel catalogo e lo inviamo per posta alla libreria. La libreria, ricevuto l’ordine, spedisce il libro richiesto all’indirizzo indicato sul modulo, e in questo modo, dopo qualche giorno, il libro che avevamo scelto sarà sulla nostra scrivania. Anche nel caso di Internet, le cose funzionano in modo simile: c’è un computer cliente - il client – che chiede delle informazioni e un computer fornitore – il server – che gliele procura. È proprio su questo principio, chiamato architettura client-server, che si basano tutte le applicazioni usate su Internet. Indirizzi IP L’indirizzo IP identifica univocamente un host su un’Inter-Net TCP/IP. Con il termine host s’intende genericamente un computer, un terminale, un router, un hub. Gli indirizzi IP su Internet sono assegnati da un comitato il cui compito è proprio quello di gestire tali indirizzi. In genere però non ci si rivolge a tale ente (IANA, Internet Assigned Number Authority) ma al proprio provider (ISP, Internet Service Provider) che ha

Page 150: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 150

precedentemente provveduto a richiedere un insieme di indirizzi. Di conseguenza l’assegnazione di un indirizzo IP non è un processo arbitrario, ma dev’essere autorizzato dallo IANA (direttamente o indirettamente). Questo non è strettamente valido nel caso delle cosiddette Intranet aziendali, che non hanno accesso diretto alla rete Internet mondiale. In questo caso si può utilizzare teoricamente qualsiasi indirizzo, anche se nella pratica anche per le Intranet esistono delle raccomandazioni. Rappresentazione dot notation L’indirizzo IP è rappresentato nella forma:

x.y.z.w dove x, y, z e w sono dei numeri compresi tra 0 e 255. In pratica un indirizzo IP è composto dalla sequenza di 32 bit (quindi un long integer) anche se esso è sempre rappresentato nella cosiddetta dot notation. In teoria, essendo l’indirizzo IP codificato su 32 bit, è possibile avere fino a 232 – 1 possibili indirizzi (4.294.967.295). In pratica non è così, perché esistono degli indirizzi riservati. Classi di indirizzi IP Gli indirizzi IP si suddividono in cinque classi di appartenenza, identificate con le lettere da A ad E. Classe A Un indirizzo di classe A riserva il primo byte all’indirizzamento della rete, e gli

altri tre byte all’indirizzamento degli host. Il primo bit del byte che individua la rete è imposto essere 0, di conseguenza è possibile indirizzare teoricamente solo 127 reti, ciascuna con un massimo teorico di 16.777.216 host. In pratica le reti sono 126 perché la rete 127 è riservata per gli indirizzi di loopback, e gli host sono 16.777.214, perché gli indirizzi x.0.0.0 e x.255.255.255 non sono ammessi.

Classe B Gli indirizzi di classe B riservano 16 bit alla rete e 16 agli host. Dei 16 bit riservati alla rete, i primi due sono obbligatoriamente 1 e 0, e questo di conseguenza implica che il primo byte possa avere valore tra 128 e 191. Il numero di reti ammesso in questa classe è quindi 16.384, e gli host 65.534 (non essendo ammessi anche in questo caso gli host x.y.0.0 e x.y.255.255.

Classe C La classe C riserva i primi tre byte alla rete ed il quarto agli host. Poiché i primi tre bit del primo byte sono fissati a 110, il numero di reti univoche in questa classe e superiore a 2 milioni. Il primo byte può assumere valore tra 192 e 223. Il numero di host per ciascuna rete è di 254.

Classe D Sono riservati ai gruppi multicast e non possono essere utilizzati per singoli host. I primi quattro bit sono obbligatoriamente 1110.

Classe E Riservato per usi futuri. I primi cinque bit sono obbligatoriamente 11110. Maschere di sottorete Le maschere di sottorete servono ad individuare quali byte dell’indirizzo IP indirizzano la rete e quali gli host. Le maschere di sottorete utilizzate dalle varie classi sono: Classe A 255.0.0.0 Classe B 255.255.0.0 Classe C 255.255.255.0 Indirizzi di rete locale La RFC 1918 ha riservato una serie di indirizzi IP come dedicati all’uso su reti locali, all’interno di firewall e server proxy. Questi indirizzi sono:

Da A 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168. 255.255

Page 151: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 151

Questa raccomandazione intende fornire alle reti non collegate ad Internet un set di indirizzi che non siano in conflitto con quelli utilizzati su Internet. Quest'identificazione avviene tramite il numero IP, formato da quattro numeri interi; per evidenti ragioni di facilità di accesso, sono stati attribuiti alle macchine ed ai server anche dei nomi, il domain name: per collegarsi ad un computer non si deve dunque digitare il suo numero IP, ma semplicemente il suo nome. Il domain è il nome del computer destinazione, composto da più nomi separati da '.'

site.network.country Il DNS (Porta 53) è un sistema distribuito ed online per amministrare i nomi (associazione indirizzo IP-nome e viceversa) delegando a differenti gruppi la responsabilità per un sottoinsieme di nomi (dominio). Un nome deve essere decodificato da destra a sinistra, la parte più a destra del nome è definita country (tipo del sito), per esempio: .com: organizzazioni commerciali; .gov: organizzazioni governative non militari USA; .mil: organizzazioni militari USA; .org: altre organizzazioni senza scopo di lucro; .net: fornitore di accesso alla rete; .it: Italia, fr: Francia. La parte successiva è il nome della società, la parte a sinistra del nome della società è la particolare macchina all’interno della società. Per esempio: ux.cso.uiuc.edu edu: è l’insieme delle associazioni di tipo educativo, università e scuole; uiuc: è l’associazione dei gruppi; cso: è il gruppo che si preoccupa di mantenere l’host; ux: è il nome dell’host; Per esempio: Labinf 158.102.127.100 ns.fauser.itis.novara.it 0 1 7 8 31 0 NETID HOSTID CLASSE A 2^7 RETE, 2^24 HOST 0 1 2 15 16 31 1 0 NETID HOSTID CLASSE B 2^14 RETE, 2^16

HOST 0 1 2 3 23 24 31 1 1 0 NETID HOSTID CLASSE C 2^21 RETE, 2^8 HOST n1.n2.n3.n4 CLASSE A da 1.0.0.0 a 127.0.0.0 00000001..01111111 (1 - 127) CLASSE B da 128.1.0.0 a 191.255.0.0 1000000000000001..1011111111111111 (128.1 191.255) CLASSE C da 192.1.0.0 a 223.255.0.0 RETE di classe B 132.50.x.x il gestore stabilisce le due x in questo modo DIPARTIMENTO A 132.50.14.X DIPARTIMENTO B 132.50.16.X HOST 132.50.14.7 RETE di classe C 192.63.14.x il gestore stabilisce la x (non ha sottoreti) in questo modo DIPARTIMENTO 192.63.14.7 Indirizzi speciali: 1.0.0.0 HOSTID = 0 è una rete 192.9.5.255 HOSTID = 1 indirizzo broadcast (a tutti) 130.0.0.1 LOCALHOST se stessi, es. labinf 10.0.0.1 255.0.0.0 NETID = 1 sottorete (di classe A), risparmio indirizzi

Page 152: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 152

I file: /etc/hosts /etc/inetd.confI servizi TCP/IP sono realizzati da inetd (internet daemon) /etc/protocols /etc/services Configurazione rete: I file elencati sono standard NON MODIFICARLI # hostname nome interfaccia di rete, per esempio # ifconfig lan0 128.1.1.1 netmask 255.255.255.0 Un nodo Internet ha normalmente associato un solo indirizzo numerico (130.192.68.9) ed uno o più nomi logici (cspnsv.csp.it, services.csp.it, www.csp.it), la funzione NSLOOKUP permette di conoscere fornendo il nome logico l’associato indirizzo o viceversa. Il comando PING controlla se una macchina remota in quel momento è attiva o meno. Il comando TRACEROUTE mostra il percorso che i pacchetti compiono per raggiungere un host remoto. struttura gerarchica dell’internet Internet, per orientare l’espansione e poter meglio controllare il traffico, ha un modello gerarchico. DORSALE RETI REGIONALI RETI LOCALI La navigazione nel Ciberspazio Termine coniato nel 1984 dallo scrittore di fantascienza William Gibson. Internet non è un servizio, ma soltanto una rete, un sistema di “tubi” destinati a trasportare informazioni da un punto ad un altro. Per fare qualcosa è necessario utilizzare una delle applicazioni disponibili sulla rete: Telnet, FTP, SMTP; e browser. Alcune applicazioni funzionano in tempo reale: è possibile dialogare con un computer remoto; altre funzionano in batch, è l’host server che si assume il compito di ricevere ed inviare i dati relativi ad un utente. Collegamento 1. Aprire Trumpet Winsock e selezionare File/Setup/Network Configuration. 2. IP address: digitare il numero IP del PC (0.0.0.0); Name server: digitare l’indirizzo

del name server dell’host server (194.20.141.1); Domain Suffix: digitare il domain name dell’host server (ItalNet.it); selezionare la casella Internal SLIP o PPP; SLIP port: digitare il numero della porta seriale sulla quale è collegato il modem (2); Baud rate: digitare la massima velocità del modem (57600).

3. Selezionare il file Dialler/Edit script/login.cmd ed inserire il numero telefonico del server e quattro ,,,, per impedire che il modem tenti di collegarsi troppo presto (string output atdt14422096,,,,\13); modificare le righe seguenti sostituendo alle parole tra virgolette <> il login e la password:

i. input 30 name: ii. output <vostro nome login>\13 iii. input 30 password iv. output <vostra password>\13 v. input 30 randa> vi. output ppp default\13

4. Selezionare Dialler/Login, Winsock stabilisce il collegamento ed è visualizzato connect.

Page 153: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 153

5. Una volta stabilito il collegamento, non accade nulla. Si è semplicemente entrati in Internet. A questo punto è possibile lanciare una qualsiasi applicazione e se la si abbandona il modem non riattacca.

6. Per interrompere il collegamento con la rete scegliere Dialler/Bye. Telnet Applicazione Internet per il login remoto, ci si può collegare al computer nella stessa stanza o nell’altra parte del mondo (emulazione terminale), è come se la propria tastiera fosse collegata direttamente al computer remoto per lanciare comandi o accedere a librerie e database. Quando si utilizza questo comando Unix è instaurata una connessione con il demone TELNET dell’host specificato, che è normalmente in ascolto sulla porta ventitré. È possibile quindi creare applicazioni che utilizzano una filosofia client/server, dove il server è rappresentato da un processo in ascolto su una determinata porta. Quando è ricevuta una connessione il processo, si risveglia ed esegue l’attività per la quale è stato predisposto. Alcune volte può capitare che il sistema risponda unknow host ciò purtroppo sta a significare che probabilmente in quel momento il name-server che possiede le tabelle di associazione tra indirizzo mnemonico ed indirizzo numerico non è attivo per cui il sistema non riesce ad instradare la connessione. È buona norma conoscere sempre l’indirizzo numerico associato agli host ai quali ci si collega più frequentemente. Ogni tentativo d'intrusione su una macchina sulla quale non si è stati espressamente invitati è considerato reato. Per usare Telnet, sul nostro computer deve essere installato un programma per l'emulazione terminale, chiamato client Telnet. FTP (File Transfer Protocol, fptd Porta 21) Alcuni host sono adibiti al contenimento d’informazioni disponibili gratuitamente: si va da immagini di tipo GIF, TIF, JPEG, a programmi sorgenti ed eseguibili (compilatori, convertitori, tools, giochi, demo). Una volta individuato il server FTP al quale si desidera connettersi e nota la directory dove prelevare i file d’interesse, ASCII (file di solo testo) e Binary (tutti gli altri tipi), informazioni ottenute ad esempio usando ARCHIE, si effettua l'operazione chiamata download, in altre parole scaricamento sul client FTP. FTP permette il trasferimento dal computer remoto ad uno locale, non importa dove i due computer sono allocati o come sono connessi. Per accedere al server sono necessari un nome utente (username) ed una parola d'ordine (password) abilitati. I server "aperti al pubblico" consentono connessioni anonime, in pratica da parte di un qualsiasi utente non abilitato. In questi casi s'inserisce la parola <<anonymous>> come nome utente ed una stringa qualunque come password, è buona norma digitare il proprio indirizzo di e-mail. QUESTO TIPO DI ACCESSO È UN PRIVILEGIO NON UN DIRITTO! Il protocollo FTP consente anche l'upload, in pratica la copia dal client al server e tutte le altre operazioni possibili sui file, rinominare, cancellare. Per velocizzare il trasferimento, spesso i file scaricati sono compressi. Differenze tra TELNET e FTP Quando è aperta una sessione di login su un host tramite il protocollo TELNET, è instaurato un rapporto con il demone dell’host al quale ci si è collegati. L’utente si trova fisicamente residente sull’host e può disporre di tutti i comandi che il sistema operativo mette a disposizione editing, compilazione, debugging, esecuzione di programmi. Utilizzando invece un accesso FTP si ha a disposizione solamente un set limitato di comandi che permettono il trasferimento di file e operazioni sulle directory (pwd, ls, cd, get, put). Posta elettronica (Electronic Mail) Telefono: 40 anni per i primi 10 milioni di utenti. PC: 5 anni per i primi 10 milioni di utenti.

Page 154: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 154

E-mail: 1 anno per i primi 10 milioni di utenti. È lo scambio di corrispondenza in formato digitale fra utenti di computer connessi ad Internet. Vantaggi: 1. è più efficiente e più semplice della posta cartacea, permette la lettura, la scrittura, la

stampa, la cancellazione, la memorizzazione su disco. 2. diminuiscono i costi e i tempi di consegna. Leggere abusivamente la posta elettronica altrui è considerato contro la legge civile, in quanto violazione della proprietà. Come è d’uso nell’utilizzo del servizio postale specificare i dati necessari per individuare il domicilio della persona con cui s’intende comunicare, in modo analogo utilizzando la e-mail occorre fornire le stesse indicazioni, il mittente (From:) ed il destinatario (To:). Gli indirizzi sono suddivisi in due parti separate dal simbolo @ (at), scelto nel 1972 da Ray Tomlinson perché non è presente in nessun nome.

[email protected] La prima parte di @ è la casella postale, che è il nome dell’utente, mentre la parte dopo è il domain, in genere il nome del computer utilizzato. [email protected]. Quando si vuole inviare un mail ad un’organizzazione di cui si conosce il dominio ma di cui non è noto uno user, è buona norma inviare il messaggio a postmaster@dominio chiedendo d’inoltrare il proprio mail al personale del dipartimento in questione. Digitare un indirizzo è un’operazione lunga e noiosa , è possibile attribuire ad ogni indirizzo o ad un gruppo d’indirizzi (separati da virgola) un soprannome chiamato Nickname; in seguito, sarà sufficiente digitare soltanto il nickname in To: e non tutto l’indirizzo. A. Cc: Carbon copy, si invia lo stesso messaggio ad una lista di utenti. B. Bcc: Bind Courtesy Copy, copia per conoscenza, invio di una copia del messaggio ad

un terzo, il destinatario non ne è al corrente. C. Header: testata che appare in alto su ogni messaggio ricevuto, è necessaria alla rete

per consegnare il messaggio. D. Signature: breve testo che è automaticamente incollato al termine di ogni messaggio

(indirizzo, numero telefono, fax), è possibile personalizzare questo spazio con disegni. E. Allegati: si invia un file memorizzato sul proprio computer. F. Ricevuta di ritorno: avviso al mittente della consegna. G. Postmaster: amministratore del server e-mail di un domain. H. POP: Post Office Protocol (popper, Porta 110) è un server di posta elettronica sempre

attivo che conserva l’e-mail destinata ad un utente nell’attesa che questi si colleghi, funge da ufficio postale dove ogni utente possiede la propria casella di posta. Riceve la posta in partenza; è utilizzato da un POS (Post Office Server) affinché non resti in linea per tutto il giorno: per questo motivo esiste una password.

I. SMTP: Simple Mail Transfer Protocolo (sendmail, Porta 25). Ricordarsi di scrivere messaggi corti (60 righe sono già molte) e mirati; se si affrontano argomenti diversi, scrivere più messaggi; indicare con precisione l’oggetto del messaggio; non scrivere in maiuscolo (significa urlare); non utilizzare caratteri accentati o speciali; non inviare messaggi pubblicitari. Il nuovo standard di posta, chiamato MIME (Multipurpose Internet Mail Extensions), permette la spedizione di documenti contenenti suoni, video ed altri formati non testuali; tuttavia se il destinatario non dispone di un client MIME, il messaggio risulterà illeggibile. Un breve elenco dei principali sistemi di posta collegati ad Internet: America Online, AT&T Mail, BITNET, BIX, CompuServe, Delphi, Easylink, Fidonet, Genie, MCI Mail, Prodigy, Sprintmail, Telemail. Il viaggio di un e-mail Una volta uscito dal computer di casa il messaggio è arrivato, utilizzando la linea telefonica, al server di posta elettronica (libero.it). A questo punto entra in gioco il router, che decide come procedere per l'invio (tutta la rete è gestita dai router). Se l'indirizzo è lo stesso (libero.it), utenti abbonati allo stesso provider, l'e-mail rimane sul server di posta elettronica. Invece, se l'indirizzo non è lo stesso (tiscali.it, aol.com), il

Page 155: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 155

messaggio è spedito ad un altro router a Milano. Questo router si chiama MIX (Milan Internet eXchange), tutti i provider italiani hanno un computer al MIX. Il router del MIX legge l'indirizzo. Se l'indirizzo è di un provider italiano (tiscali.it) lo smista ad uno dei computer vicini che a loro volta provvederanno ad inviarlo al loro server di posta elettronica. Invece, se l'indirizzo non è di un provider italiano (aol.com), il messaggio è spedito ad un altro router di Milano. Questo router si chiama GIX (Global Internet eXchange), ed è gestito da Unisource (provider mondiale), che si occupa di dare l'accesso internazionale al traffico italiano. SMTP L’SMTP (Simple Mail Transfer Protocol, RFC 821) è il protocollo utilizzato per trasmettere messaggi di posta elettronica, utilizzando il protocollo TCP per il trasporto. Un server SMTP è un programma sempre attivo (su Unix non è sempre vero nel caso si utilizzi inetd) in ascolto sulla porta 25. Esempio di sessione: biagio@venus> telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 venus. Sendmail SMI-8.6/SMI-SVR4 ready at Mon, 21 Aug 2000 11:00:59 +0200 HELO 250 venus. Hello localhost [127.0.0.1], pleased to meet you mail from: [email protected] 250 [email protected]... Sender ok rcpt to: davide 250 davide... Recipient ok data 354 Enter mail, end with "." on a line by itself Subject: In Microsoft we trust Why don’t you? 250 LAA00879 Message accepted for delivery quit 221 venus. closing connection Connection closed by foreign host. La mail ricevuta è la seguente: biagio@venus> Mail mailx version 5.0 Tue Jul 15 21:29:48 PDT 1997 Type ? for help. "/var/mail/biagio": 2 messages 2 new N 1 bill.gates@microso Mon Aug 21 11:09 15/403 In Microsoft we trust ? 1 Message 1: From [email protected] Mon Aug 21 11:09:35 2000 Date: Mon, 21 Aug 2000 11:08:50 +0200 From: [email protected] Subject: In Microsoft we trust Why don't you? ? POP3 Il POP3 (Post Office Protocol version 3, RFC 1939) è il protocollo più comunemente usato per prelevare i messaggi di posta elettronica. In una sessione POP3 si seguono i seguenti passi: Il client si connette alla porta 110 del server. Il server invia un messaggio di saluto. Si inizia la sessione vera che consiste di una fase di AUTHORIZATION e di una successiva di TRANSACTION. Allo stato di TRANSACTION si passa solo dopo aver superato con successo lo stato di AUTHORIZATION, fornendo la propria identificazione.

Page 156: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 156

Usenet News, Forums/Conference, Newsgroups NNTP (Network News Transfer Protocol, Porta 119), indirizzo del server di news. SNTP (Simple Network Transfer Protocol, Porta 37). Un newsgroup è una discussione su un tema particolare a cui tutti noi possiamo partecipare liberamente. Possiamo leggere gli interventi degli altri utenti, questi sono organizzati in ordine cronologico, in modo da poter ricostruire il flusso della discussione. Quindi possiamo intervenire, inviando dei messaggi, chiamati news, in altre parole notizie, articoli. Per evitare messaggi non inerenti all'argomento in discussione oppure contenenti offese o termini volgari, in genere esiste un moderatore di gruppo. Un intervento appare come un e-mail. Si partecipa alla discussione leggendo e rispondendo ai messaggi. Si può rispondere in vari modi: A. solo all'autore del messaggio; B. al gruppo, ma non all'autore del messaggio; C. sia all'autore sia agli altri componenti del gruppo. La partecipazione ad un newsgroup necessita di alcune regole comportamento, che sono: 1. leggere tutti i messaggi già esistenti prima d'inviare i propri; 2. scrivere messaggi brevi e attinenti al tema in discussione; 3. nel chiedere una risposta, fornire l'indirizzo cui inviarla; 4. non inviare messaggi pubblicitari o commerciali; 5. leggere le FAQ (Frequently Asked Questions), in altre parole le domande già poste; 6. usare toni non aggressivi e offensivi. Ci sono circa 20 mila newsgroups mondiali per dibattiti e conferenze, si riceve solo quello che si vuole ricevere. Il gruppo di lavoro è creato su un server, i messaggi rimangono depositati per alcuni giorni (dipende dal server administrator). Il nome di questi gruppi è di solito un insieme di parole che ne caratterizza il soggetto, per esempio it.tv.temporeale. I principali tipi di soggetto sono: alt. Alternative, argomenti meno convenzionali; bionet. Biologia; sci. Scienze. biz. Biznet attività commerciali, è accettata la pubblicità, comp. Computer. misc. Miscellaneous, tutto ciò che non rientra in nessun altra categoria. rec. Recreational, svago e tempo libero. soc. Cultura e società; talk. Dibattiti su temi politici e religiosi. Ogni categoria contiene a sua volta dei settori più specifici, secondo una struttura ramificata.Non abbonarsi a troppi newsgroup contemporaneamente (sei al massimo). Per entrare in un gruppo di discussione è necessario un programma newsreader. ListServ (List Server, Mailing List) Alcuni utenti, dotati di una propria casella di posta elettronica, possono avere un interesse in comune (software, politica, economia, cinema). Per scambiarsi idee a riguardo, possono formare una mailing list. In pratica, si tratta di spedire un messaggio ad un unico indirizzo, da cui è inoltrato a tutti i membri del gruppo in modo automatico. Per iscriversi bisogna aggiungere il proprio indirizzo di e-mail alla lista (SUBSCRIBE Ciclismo [email protected]). È importante specificare l'argomento, perché il list server può gestire più di un gruppo di posta. Esistono mailing list pubbliche o private, in questo caso l'ammissione è subordinata a determinati requisiti. Il gruppo di posta è amministrato da un moderatore che di solito è la persona che ha creato il gruppo, che accetta o no le iscrizioni (sono chiuse quando si supera un certo numero di utenti) e, se necessario, fa sì che gli argomenti trattati siano pertinenti. L’elenco di tutte le ListServ e delle istruzioni per abbonarsi è accessibile a: http://www.clark.net/pub/listserv/listserv.html. Uuencode Uuencode è uno dei metodi usati per convertire dati binari in testo per spedire documenti

Page 157: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 157

come allegati al messaggio di posta elettronica. Come dice il nome stesso (Unix to Unix ENCODE) il metodo è stato sviluppato originariamente su macchine Unix per trasferire dati in maniera sicura da una macchina all’altra. La macchina che riceve i dati deve ovviamente avere una programma analogo (Uudecode) per decodificare i dati. Come è facilmente intuibile con questo metodo la mode di dati da trasferire aumenta, ma aumenta di pari passo la sicurezza che i dati siano trasferiti senza perdita di informazione. Altri metodi alternativi per il trasferimento di allegati sono il BinHex (sviluppato dalla Apple per i sistemi Macintosh) ed il metodo MIME (Multipurpose Internet Mail Extensions, RFC 2045) sviluppato appositamente per permettere la formattazione di messaggi non ASCII su Internet. Quest’ultimo è utilizzato anche per il trasferimento di file attraverso il protocollo HTTP. FINGER È possibile interrogare l’indirizzo di un utente (<nomeutente>@<nomemacchina>, oppure <loginutente>@<nomemacchina>) per sapere quando si è collegato l’ultima volta, oppure una macchina della rete (@<nomemacchina>) per sapere quali sono gli utenti collegati in quel momento. Indirizzi dei server informativi finger: [email protected] football americano; [email protected] informazioni sui terremoti; [email protected] anniversari del giorno. IRC (Internet Relay Chat) Permette a diverse persone di trovarsi in un “salotto virtuale” per dialogare sui più disparati argomenti, le discussioni più popolari sono quelle tecniche e politiche. I server IRC in Europa sono: cismhp.univ-lyon1.fr irc.obspm.fr irc.funet.fi disuns2.epfl.ch irc.nada.kth.se http://wwwnada.kth.se http://wwwnada.kth.se Talk o Iphone Attraverso la rete, un utente può contattarne un altro, che sia collegato in quello stesso momento; non s'inviano messaggi, ma tutto ciò che un utente scrive sulla propria tastiera è immediatamente visualizzato sullo schermo del proprio interlocutore. Talk non è implementato su tutte le macchine; inoltre, alcune versioni non sono compatibili tra loro. Collegarsi alla rete, lanciare Finger per controllare che la persona sia collegata, lanciare Talk. Evitare di parlare con persone che non si conoscono, valutare sempre con attenzione il disturbo che si potrebbe causare. MUD (Multi User Dungeon) È un gioco di avventura, basta scegliere il personaggio che si desidera interpretare ed entrare nello spazio virtuale del gioco. Spostarsi da un universo all’altro, da un posto all’altro, dialogare con altri personaggi interpretati da altri giocatori. Fare combattimenti, affrontare mostri, navigare tra labirinti e trappole. I server MUD sono accessibili tramite TELNET, ma bisogna specificare, oltre all’indirizzo, un numero di porta, che corrisponde al gioco: telnet ipo.dsi.unimi.it 444.

Page 158: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 158

nir (network Information retrieval) Data la mole d’informazioni disponibile in rete, in questi ultimi anni si è avuto un enorme sviluppo di applicazioni che fossero in grado di eseguire sia una ricerca sia un aggiornamento delle informazioni rese disponibili. Le reti mondiali sono enciclopedie, nessuno si metterebbe a leggere un’enciclopedia dalla prima pagina, occorrono strumenti che facciano da indice. Sistemi informativi concentrati

Archie Progettato da Peter Deutsch, Alan Emtage e Bill Heelan è un indice degli anonymous FTP e referenzia 1200 server e due milioni di file, quando è richiesta un’operazione di ricerca, il client Archie richiede una connessione con un Archie server, in pratica permette di ricercare il file contenete una determinata stringa e risponde comunicando il nome del file ed il nome del server su cui è installato. Sarà possibile a questo punto accedere al file tramite FTP. Il sito di riferimento per tutti gli FTP italiani è: archie.unipi.it. Se il file cercato si trova in vari posti, il che accade spesso, scegliere: la versione più recente ed il server più “serio” che si trova nel sito più vicino, per l’Italia .uk o .ch; assolutamente da evitare i server .jp.

WAIS (Wide Area Information Servers) Usando VERONICA o Gopher si è in grado di fare ricerche di file, ma nulla è detto sul loro contenuto, invece WAIS, sistema distribuito per la ricerca ed il reperimento di documenti progettato da Brewster Kahle alla Thinking Machines, permette di compiere la ricerca di tutti i file contenenti determinate stringhe purché siano creati secondo lo standard Z39.50/ISO SR, regole che un computer deve utilizzare quando passa una query ad un altro computer. In seguito ad una richiesta da parte di un client, WAIS mette in contatto il server che gestisce la libreria richiesta (source). Un source è un server nel quale sono elencati documenti disponibili sulla rete relativi ad un determinato argomento. Per interrogare un source, è necessario avere sul computer il file d’interrogazione *.SRC, per esempio supreme.court.src, sf-reviews.src, midi.src. Due tra i più forniti server disponibili sono: wais garr.it ux4sns.sns.it. Sistemi informativi distribuiti

Gopher È stato sviluppato per permettere ad un utente l’accesso alle risorse Internet in modo semplice e veloce, è un servizio di consultazione di documenti distribuito. Permette di esplorare, ricercare e prelevare informazioni, che risiedono in locazioni diverse, in modo trasparente; Gopher sa quale applicazione usare (Telnet, FTP, Archie, WAIS) per recuperare un determinato documento. Le informazioni sono presentate agli utenti con una serie di menu gerarchici che ordinano i documenti nello spazio virtuale Gopherspace. Le informazioni disponibili sono di vario tipo: immagini, suoni, testi. Ciascuna voce del menù di Gopher è accompagnata da un simbolo che permette di distinguere il tipo di risorsa da cui proviene l’informazione. Il modo in cui questi menù sono visualizzati dipende dal client Gopher che si sta utilizzando. Il software di Gopher è stato sviluppato da Paul Lindner e Mark P. McCahill del dipartimento “Computer and Information Services” dell’Università del Minnesota nel 1991 ed è distribuito gratuitamente per scopi non commerciali. L’informazione di base da cui parte Gopher è la directory, è una lista di documenti registrati in un file ASCII. Esistono speciali directory chiamate link, trasparenti all’utente, che permettono di riferirsi a documenti contenuti su altre macchine. Alcuni server presentano dei link a Gopher detti tematici, questi sono organizzati in modo tale da contenere informazioni e documenti su un unico argomento. Si possono trovare server Gopher riguardanti l’agricoltura, la medicina, la biologia, le tecnologie. Il tool di

Page 159: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 159

ricerca è rappresentato da VERONICA, inserendo delle parole chiave, è possibile individuare un insieme di documenti che le contengono nei loro titoli. I metodi possono essere i seguenti: 1. browsing, si utilizza se si vuole seguire i path in Gopher inoltrandosi da livello a

livello sulle ramificazioni dell’argomento d’interesse, può alcune volte impiegare un tempo relativamente lungo;

2. searching, permette di digitare una o più parole chiave per cercarle in un nodo data base.

Esistono però due differenze sostanziali tra Gopher e web. Innanzi tutto il Gopher è monomediale, perché basato solo su testi, mentre il web è multimediale. Inoltre i collegamenti web sono all'interno dei documenti, mentre i collegamenti Gopher sono nei menu e puntano a documenti.

VERONICA (Very Easy Rodent Oriented Net-wide Index of Computerized Archives) Progettato all'Università del Nevada, è un tool in grado di trovare informazioni dai Gopher server, compie la sua ricerca in vasti database dove si trovano i titoli dei documenti contenuti nei diversi Gopher. Permette quindi di trovare le risorse, i cui titoli contengono la stringa ricercata, il titolo della risorsa è quello che compare nei menù di ciascun Gopher. È possibile selezionare VERONICA da un menù di un Gopher server ed introdurre in una dialog box la o le parole da ricercare, quando la ricerca è terminata compare un menù dove si possono selezionare le risposte ottenute. Molto spesso è possibile scegliere tra una lista di VERONICA siti su diversi server, in teoria tutti dovrebbero fornire la stessa risposta, in pratica ciò non accade. Alcuni, infatti, non sono aggiornati con la stessa frequenza di altri e le risposte giungono con velocità differenti in funzione del traffico sulla rete.

WWW (World Wide Web) Il WWW, la più nota applicazione usata su Internet, nasce al CERN, il più grande centro di ricerca europeo sulla fisica delle particelle elementari, dove lavorano fisici di tutto il modo che usano quotidianamente la Rete per tenersi in contatto e scambiarsi opinioni. E proprio per migliorare questo tipo di comunicazioni un ricercatore di nome Berners-Lee, nel 1990,

propone ai suoi superiori un nuovo modo di utilizzare Internet che chiama World Wide Web. Al di là del del nome, la cosa più interessante che si può notare nel progetto di Barners-Lee è che in questa proposta sono già presenti tutte le idee guida che ancora oggi caratterizzano il Web. La prima regola del Web è che i suoi documenti devono essere scritti in un particolare formato chiamato ipertesto. In parole povere questo significa che tra le parole del testo potranno essere inseriti dei riferimenti – link in inglese – ad altri documenti presenti nel Web. E come vedete anche da questa pagina, oggi questi link sono evidenziati in colore. Quando l’utente seleziona uno di questi riferimenti, il documento corrispondente è richiesto sul Web e visualizzato sul computer dell’utente. Questa proprietà delle pagine ipertestuali, pur essendo concettualmente semplice, ha comportato una vera e propria rivoluzione nel modo di intendere una rete di calcolatori. Prima dell’ipertesto, infatti, tutto quello che poteva fare l’utilizzatore di Internet era ricevere

Page 160: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 160

o inviare un documento su un altro computer collegato in rete. Dopo l’ipertesto, tutti i documenti presenti nel Web sono legati tra di loro da un immensa ragnatela di collegamenti - gli ormai famosi link – e l’utente è in grado, seguendo questi link, di spostarsi istantaneamente da un documento all’altro attraverso Internet.

Ricapitolando, quando si fa un click su una di queste parole chiave il browser automaticamente preleva dal Web la pagina indicata dal riferimento e ce la mostra, e come avete visto curiosando nel Web, usando la multimedialità, una pagina può contenere non solo testo scritto ma anche immagini, suoni, filmati e animazioni. La seconda idea che sorregge il Web è di definire un apposito programma – il browser - che consenta di visualizzare gli ipertesti contenuti nel World Wide Web. Questo programma rappresenta qualcosa di completamente nuovo rispetto a tutto quello che fino ad allora si era visto su un computer. Il browser infatti rappresenta una sorta di finestra aperta sul mondo del Web e quindi deve essere in grado di visualizzare non solo testi scritti ma anche immagini, filmati e perfino suoni. Deve essere un programma multimediale nel senso più ampio del termine e inoltre deve poter funzionare su qualsiasi tipo di calcolatore utilizzabile in Internet. Purtroppo i primi esempi di browser che sono rilasciati gratuitamente dal CERN nei primi anni novanta non assomigliano affatto al progetto che aveva in mente Barners-Lee. Sono degli austeri programmi che mostrano all’utente solo righe di testo e che possono andar bene per dei ricercatori alla caccia di articoli scientifici ma ancora non attraggono il grande pubblico. La grande svolta avviene nel 1993, quando Marc Andressen e Eric Brina all’NCSA (National Center for Supercomputing Applications) presso l'università dell'Illinois sviluppano e distribuiscono gratuitamente Mosaic, il primo browser con un interfaccia grafica, che consente di visualizzare il contenuto di una pagina Web in modo molto simile a quello attuale. Questo programma semplice e intuitivo avvicina finalmente alla rete molti nuovi utenti incuriositi dalle possibilità aperte dal ciberspazio. Da quel momento inizia l’esplosione del World Wide Web così come lo conosciamo oggi. Formati dei file sul Web I formati dei file accessibili sul Web possono essere i più svariati, i principali sono: 1. pagine HTML, scritte utilizzando il linguaggio HTML (dette anche pagine Web) 2. immagini (generalmente GIF o JPEG, ma anche icone, bitmap etc) 3. file testo (i file .txt su Windows) In aggiunta a questi esistono i cosiddetti file multimediali, ovvero file contenenti filmati e suoni. Per accedere ad una pagina Web è necessario che essa sia pubblicata sul Web ovvero che essa sia data ad un server HTTP che ne gestisca l’accesso. La pagina Web può essere resa accessibile anche mediante altro protocollo (per es. FTP), ma in questo caso si perde il significato intrinseco di pagina Web. In genere i collegamenti di tipo FTP sono utilizzati per mettere a disposizione file che devono essere trasferiti sulla macchina dell’utente Web per poter poi essere utilizzati (per es. archivi compressi da applicazioni tipo Winzip o Gzip, documenti da leggere utilizzando appositi Word Processor quali

Page 161: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 161

MsWord o Frame Maker, etc). Pagina Web La pagina Web è generalmente una pagina HTML contenente immagini e link ad altre pagine Web. Ogni pagina Web è identificata da un URL (Uniform Resource Locator) che non è altro che l’indirizzo univoco che identifica quella sull’intero Web. Gli Indirizzi Internet URL (Uniform Resource Locator) Il formato di una URL è:

scheme://host.domain[:port]/path/filename dove scheme è uno dei seguenti tipi di server: http (Hyper Text Transfer Protocol) ftp file gopher telnet news mailto il protocollo è separato dall’indirizzo dal carattere due punti (:); nel caso dei primi quattro il carattere due punti è seguito da due caratteri slash (//). Alla fine dell’indirizzo, un ulteriore carattere slash indica l’inizio del file Web che si richiede al server HTTP. http://www.fauser.edu URL con nomi di account Una URL del tipo: http://www.fauser.edu /~max/ è un riferimento che permette di accedere alla home page dell’utente max. Questo permette a ciascun utente autorizzato di avere una propria home page, e quindi un proprio sito personale, all’interno del sito ufficiale. URL con numeri di porta Il protocollo HTTP, cui la stragrande maggioranza delle pagine Web fa riferimento, utilizza come porta di default per le comunicazioni, la porta numero 80. È possibile però impostare in server HTTP in modo da renderlo su una porta diversa da quella di default. In tal caso il client (il browser utilizzato per la navigazione) deve essere informato del fatto, per evitare che spedisca le proprie richieste alla porta 80, porta su cui potrebbe non rispondere nessuno. Per far ciò, l’URL deve essere scritta come segue: http://www.fauser.edu:8080/ In pratica, alla fine dell’indirizzo e prima dello slash finale, va aggiunto il carattere due punti seguito dal numero della porta su cui il server è in attesa per soddisfare le richieste. Le pagine web possono contenere anche aree direttamente editabili dall’utente (form), che servono ad inviare dati dal browser al server, includono la crittografia a chiave pubblica per la sicurezza delle informazioni. L’utente deve ricercare i documenti d’interesse seguendo i vari link. Esistono pagine web in cui sono presentati elenchi tematici, come succede nel mondo Gopher; ma questa presenza non è sufficiente, si rende quindi necessaria l’introduzione di un tool di ricerca mirata, che sia il corrispettivo di Archie e VERONICA. Adesso bisogna fare i conti con il VRML (Virtual Reality Modelling Language), progettato da Mark Pesce assieme a un gruppo di ricercatori americani per costruire in Rete spazi tridimensionali. Potrebbe essere l'inizio per un ufficio virtuale dove, in ambiente immersivo persone collegate da posti diversi e lontanissimi potranno ritrovarsi e lavorare insieme per altre cose anche più piacevoli. Sostanzialmente, la novità è che VRML aggiunge la terza dimensione all'HTML, mantiene la caratteristica di essere indipendente dalla piattaforma sulla quale si trova, ed è un linguaggio di descrizione più che di programmazione, rivolto agli oggetti e largamente espandibile.

LYNX È un completo WWW client cursor oriented utilizzabile da terminali o emulatori VT100 su

Page 162: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 162

PC e Macintosh, è in grado di visualizzare ipertesti scritti in formato HTML e di eseguire link a Gopher, FTP, WAIS server. Quando Lynx mostra un file HTML i link ad altri file, sono riportati in grassetto, mentre il link selezionato è illuminato. Per lanciare l’help è sufficiente digitare “?” oppure “H” automaticamente sarà attivato un link dove sono contenute tutte le informazioni relative a Linx. Per aprire una URL bisogna digitare “g” e sarà aperto un campo di richiesta in cui andrà inserito l’indirizzo della URL desiderata. Per salvare un file su disco occorre posizionarsi sul link relativo al documento che si vuole salvare e digitare “d”. Per memorizzare un indirizzo HTTP per poi richiamarlo in seguito, basta digitare “a” quando si è sul documento d’interesse memorizzandolo nel “BooKmark file”. La prima volta è necessario creare il Bookmark file selezionando Option Linx Menu ed alla voce bookmark digitare un nome di file. Digitando “/” è inoltre possibile vedere il file sorgente dell’HTML. I MOTORI DI RICERCA Su Internet vi sono due categorie di contenitori d'informazioni: 1. gli archivi dei dati, che contengono informazioni relative ad un certo argomento; 2. gli archivi dei riferimenti, che sono pagine che contengono solo liste di

collegamenti ad altre pagine. I motori di ricerca permettono di orientarsi tra grandi archivi di dati sparsi su tutti i server di tutto il mondo, esistono tre tipi: 1. le directory, sono delle liste di collegamenti a siti contenenti informazioni, catalogati

per argomento; possono riguardare tutti gli argomenti oppure essere specializzate per settore; esiste poi una persona che gestisce la directory, il più famoso è Yahoo (1983 USA).

2. Gli indici, sono creati da computer che leggono periodicamente tutte le pagine web. Quindi, in modo automatico, ogni parola letta è posta in un enorme indice e, per ognuna, tutte le pagine che la riportano; il più famoso è Altavista. Sono completi, ma non sempre efficienti.

3. Google utilizza speciali algoritmi matematici per interpretare la richiesta. 4. Metamotori, sono servizi che utilizzano più motori contemporaneamente. Il motore di ricerca (search engine) è uno strumento “che cerca per noi”. Di rimando, l’engine ci risponderà presentandoci (ovvero ci visualizzerà) tutto ciò ha trovato; al termine di una ricerca svolta in base alla parola chiave da noi suggerita. Programmi che sono chiamati robot informatici percorrono i siti Internet e accumulano masse fondamentali d'informazioni in banche di dati interrogabili dai motori di ricerca. La loro funzione è proprio quella di costituire l'antidoto più efficace contro il sovraccarico da disponibilità di informazioni. Insetti e rettili di tutti i tipi popolano allegramente il Web: sono Worms (vermi come il WWW Worms o W4), Spiders (ragni), Wanderers, Crawlers, e Snakes (serpenti). Tutti sistemi che passano in rassegna senza sosta il Web per indicizzare e razionalizzare le informazioni e le risorse che vi si possono trovare. A. WWWW (WWW Worm) questa applicazione indaga tra le risorse del mondo web

tramite un data base formato da 300.000 oggetti multimediali, perché WWWW riconosca un documento o una pagina è necessario che questa contenga un URL, per esempio se si è interessati a tutte le immagini in movimento si dovrà digitare la stringa “mpg”, http://www.w3.org/hypertext/DataSources/bySubject/Overview.html.

B. LYCOS compie la ricerca della stringa nel suo data base e dà come risposta un numero d’indirizzi di server web, è di più semplice consultazione ma presenta alcuni limiti, come l’impossibilità di una ricerca multipla (AND), http://lycos.cs.cmu.edu;

C. INFOSEEK http://www.infoseek.com è a pagamento dopo cento richieste; D. THE WEBCRAWLER lavora partendo da un insieme di documenti noti, identificando

nuove pagine da esplorare, tramite i link presenti su tali documenti e vistando i suddetti link. L’utilità di quest'applicativo sta nel fatto che la ricerca è compiuta sul

Page 163: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 163

contenuto dei documenti e non sulla loro URL o titolo, http://webcrawler.com a cura di America Online.

E. W3 Search Engines http://cuiwww.unige.ch/w3catalog a cura dell’Università di Ginevra.

F. Italian General Subject Tree http://www.mi.cnr.it/igst.html a cura del CNR. Questi potenti strumenti ricercano dunque (secondo i criteri impostatati), la presenza dell’informazione nell’insieme di documenti immagazzinati o transitati su Internet che essi accumulano nella loro memoria. Implicitamente o esplicitamente, le parole richieste saranno combinate con operatori logici: si cercherà, ad esempio, il concetto A e il concetto B (l’intersezione di entrambi i concetti, and), oppure si domanderà il concetto A o il concetto B (l'unione di entrambi i concetti, or). Attualmente si contano più di una ventina di strumenti di ricerca generale su Internet (motori di ricerca o assimilati). La stessa ricerca lanciata su engines diversi difficilmente darà gli stessi risultati. Da un giorno all’altro inoltre i risultati potranno essere diversi. La maggior parte delle volte si otterrà comunque un risultato. Di solito, dopo una cernita, è possibile individuare più elementi davvero pertinenti e da qui quello precisamente cercato. Ma non si ha un controllo sulla strategia di ricerca. Qui non è in causa la potenza informatica di questi strumenti, bensì la loro potenza dal punto di vista documentaristico. I motori selezionano su banche di dati immense costituite automaticamente dai robot informatici che visitano regolarmente i siti web. Questi siti web possono inserire dei filtri che non accettano i robot nei loro documenti. Inoltre non si sa fino a quale livello di profondità nella gerarchia dei documenti riescano a penetrare. Per esempio quei siti che offrono basi di dati specialistiche, il robot prenderà solo la pagina iniziale o l’indirizzo URL, ma non il contenuto della banca. Ciò che è indicizzato da uno strumento varia e questo non è sempre precisato. Non si sa se i robot percorrono i siti di tutte le nazioni e di tutte le lingue. Dunque la maggior difficoltà per il nostro motore di ricerca, ciò che “ostacola” l’individuazione (o la precisa individuazione), dell’elemento cercato, in definitiva, sembra essere proprio “la mole” d'informazione presente in rete. Un caso tipico è quello in cui la ricerca riguarda una persona. Scegliamo come esempio una ricerca d'informazioni su Federico Fellini, e vediamo come condurla utilizzando quelli che sono al momento forse i due principali motori di ricerca per termini disponibili su Internet: Altavista e Lycos. Altavista è il risultato di un progetto di ricerca iniziato nell’estate del 1995 nei laboratori di Palo Alto della Digital. Offre la possibilità di ricercare in due banche dati distinte: nel web (per le pagine dei siti web) e in Usenet per i forum di discussione. Le ricerche attraverso Altavista sono possibili in due distinte modalità: 1. come Simple query 2. come Advanced query Simple query La videata che ci appare non appena approdati in Altavista, propone tre finestrelle. Consideriamo la prima finestrella a tendina in alto a sinistra. L’opzione standard è “Search the Web”. Lasciando immutata questo tipo di opzione ordiniamo al motore di ricercare la parola-chiave all’interno e limitatamente allo spazio costituito dalle pagine dei siti web. Mentre attivando l’apposita tendina è possibile selezionare l’opzione “Search Usenet”. Così facendo chiediamo all’engine di effettuare la sua ricerca tra le informazioni disponibili all’interno dei forum di discussione (Newsgroup). La seconda finestrella in alto a destra (for documents in... ) permette di effettuare una ricerca in una lingua specifica: selezionando ad esempio l'opzione German (leggendo la prima riga per esteso si avrà Search the Web for documents in German) saranno elencati solo i documenti in tedesco (qualsiasi documento redatto in lingua diversa dal tedesco non comparirà nella lista). Lasciando la funzione preimpostata (any language) si ordinerà al motore di ricercare documenti in qualsiasi lingua. Nella casella principale andranno inseriti il termine o i termini cercati. Inserendo più termini tra virgolette si indica al motore di considerarli come

Page 164: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 164

un termine unico. Esempio: "Federico Fellini".

Con questa impostazione Altavista ci rimanderà tutti i documenti trovati in cui compare l’espressione “Federico Fellini” e non quelle in cui compare solo il termine Federico, o solo il termine Fellini, o quelle in cui i due termini compaiono lontani. Se non avessimo usato le virgolette, avremmo incluso nella ricerca anche questi casi. Il tasto Search visualizzato sullo schermo serve ad eseguire la ricerca impostata. Pur restando all’interno della Ricerca Semplice è possibile raffinare ulteriormente la propria richiesta “combinando” le parole chiave con i cosiddetti Operatori. Questi “affineranno”, “specificheranno” la ricerca che il motore andrà ad eseguire, “limitandola” ad alcuni ambiti ben precisi, oppure considerando la parola chiave come “imprecisa”, a cui “rispondere” in maniera “più elastica”. Operatori ammessi nella Simple query: + va premesso ai termini che vogliamo necessariamente presenti nella pagina; Esempio: Fellini + Mastroianni Con questa impostazione desideriamo che Altavista ci rimandi tutti i documenti in cui i termini Fellini e Mastroianni compaiono necessariamente assieme nel testo. Se un documento “parlerà” solo di Fellini o solo di Mastroianni non sarà incluso nell’elenco. - va premesso ai termini la cui occorrenza vogliamo escludere; Esempio: Fellini - Mastroianni Desideriamo che il motore ci elenchi tutti i documenti trovati che “parlano” di Fellini con esclusione di quelli che parlano anche di Mastroianni. Title: limita la ricerca ad una specifica aree del documento: quella della titolazione; Esempio: title: “Federico Fellini” Altavista ci rimanderà solo le pagine il cui titolo contiene l’espressione Federico Fellini. * che funziona come wild card, ovvero come carattere Jolly (*, ?); Esempio: Fellin* Il termine digitato corrisponde a Fellini, Felliniano, Felliniana ma anche a Fellinis, Felling, Fellingham. Per avere una descrizione dettagliata della sintassi ammissibile in una Simple query basterà fare clic sull’icona Help presente in apertura della pagina. Advanced query La Richiesta Avanzata propone una finestra più complessa. Le finestre Cerca nel Web/Usnet e quella attigua Documenti in tutte le lingue rimangono immutate. La novità consiste nella possibilità di usare, all'interno della finestra principale, dei criteri di selezione adoperando gli operatori logici. Gli operatori ‘-’ e ‘+’ non funzionano più. AND (&) Esempio: Fellini AND Sordi Si otterranno tutti i documenti che contengono Fellini e Sordi (insieme). OR (?) Esempio: Mastroianni OR Masina Saranno restituiti i documenti che contengono il termine Mastroianni o in alternativa il termine Masina. NOT (!) Esempio: Fellini AND NOT “La dolce vita” L’operatore NOT è usato per escludere parole o frasi da un’impostazione di ricerca. In questo caso va usato assieme all’operatore AND. Vogliamo che Altavista ci restituisca tutti i documenti che “parlano” di Fellini ma non quelli che “parlano” del suo film La dolce vita. Dunque con questo operatore “eliminiamo” tutte le pagine che trattano di questo lungometraggio, introducendo fin dall’impostazione una selezione o “cernita” del materiale cercato. NEAR (~) Esempio: Fellini NEAR psicanalisi L’operatore NEAR assicura che i termini da lui connessi si troveranno entrambi entro dieci parole nei documenti presentati. Per consentire la costruzione di espressioni di ricerca complesse, è possibile anche utilizzare parentesi. Ecco alcuni esempi:

Hitchcock or Argento and suspense

Page 165: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 165

Hitchcock or (Argento and suspense) (Hitchcock or Argento) and suspense

Le prime due impostazioni sono equivalenti. Il motore restituirà tutti i documenti che contengono il termine Hitchcock e inoltre quelli che contengono entrambi i termini Argento e suspense. Nel qualcaso si voglia ottenere i documenti contenenti il termine suspense e, nello stesso documento, in alternativa, il termine Hitchcock oppure Argento, si dovrà usare la terza forma.

not Hitchcock and suspense (not Hitchcock) and suspense

not (Hitchcock and suspense) Le prime due impostazioni sono equivalenti. Restituiscono tutti i documenti contenenti il termine suspense ma non Hitchcock. Volendo eliminare dalla ricerca le pagine che contengono sia il termine Hitchcock che il termine suspense, si userà il terzo tipo di impostazione. Hitchcock near suspense and thriller (Hitchcock near suspense) and thriller (Hitchcock near suspense) and (Hitchcock near thriller) Le prime due forme sono equivalenti. Restituiscono tutti i documenti contenenti il termine Hitchcock situato vicino al termine suspense e, sempre nello stesso documento, al termine thiller. Con la terza impostazione una pagina per essere visualizzata dovrà contenere i termini Hitchcock e suspense “vicini” e, sempre nello stesso documento, i termini Hitchcock e thiller anch’essi situati in “stretta vicinanza”.

Hitchcock near suspense or thiller (Hitchcock near suspense) or thiller

Le due forme sono equivalenti. Troveranno tutti i documenti contenenti il termine Hitchcock vicino a suspense, visualizzando inoltre tutti i documenti contenenti il termine thiller. Hitchcock near (suspense or thiller) (Hitchcock near suspense) or (Hitchcock near thiller) Le due impostazioni sono equivalenti. Saranno restituiti tutti i documenti contenenti il termine Hitchcock vicino a suspense, assieme ai documenti contenenti il termine Hitchcock situato in stretta vicinanza al termine thriller. Attualmente, Altavista ha messo a disposizione dei propri utenti anche la funzione Refine. Si tratta, sostanzialmente, di uno strumento utile a perfezionare e raffinare la propria richiesta rendendola ancora più analitica. L'opzione può essere attivata soltanto "a posteriori", ovvero dopo aver ottenuto i risultati di una ricerca: il motore ordina i documenti trovati in "sottoinsiemi" raggruppandoli in base a certi parametri logici. Se, ad esempio, s'imposta la query "Federico Fellini" Altavista prende tutti i documenti che contengono questo termine e li fa confluire in un "calderone" unico. Con Refine si ha la possibilità di "organizzare" il "caos" dei risultati in "sottogruppi" omogenei e più specifici. Questo perché il motore, in qualche modo, riesce ad individuare le parole più rilevanti all'interno di tutti i documenti e a separarle in "famiglie" i cui componenti "condividono" un certo numero termini in comune in grado di "caratterizzare" e di "differenziare" il loro "sottoinsieme" all'interno del "calderone" principale. Con Refine è data all’utente la possibilità di restringere il numero delle "risposte" alla sua query "tenendo" o "buttando" interi gruppi di termini correlati (Cluster). Egli infatti, può indicare quali gruppi di termini desidera siano necessariamente presenti nei documenti ricercati (selezionando Require), quali vuole escludere (selezionando Exclude), e quali verso la cui presenza è "indifferente" (non importa se compaiono o no). La funzione Refine è molto utile quando, in risposta alla query, il motore rimanda un numero enorme di documenti trovati. Mediante una specificazione dell’argomento d’interesse, essa permette di “scremare via”, in modo pratico e veloce, tutto ciò che non ci interessa, e di ridurre l’elenco delle voci trovate ad un numero umanamente consultabile. Attraverso la casella "Ranking ” possiamo influenzare l’ordine in cui

Page 166: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 166

visualizzare le pagine trovare (se scriviamo qui “Otto e mezzo”, le pagine che trattano di questo argomento saranno visualizzate per prime). Possiamo anche eliminare le pagine “poco aggiornate” utilizzando le caselle nelle quali impostare la data iniziale ("From") e la data finale ("To") di creazione per le pagine cercate. L'opzione Give me only a precise count of matches è utile a chi desidera unicamente sapere, velocemente, il numero di documenti che compongono la risposta ad una determinata query. Il nome prescelto, Lycos, proviene da Lycosidae, una famiglia di ragni di terra che danno la caccia alle proprie prede inseguendole, invece di utilizzare una tela. Sono noti per la loro velocità, e sono particolarmente attivi durante la notte. Nato come progetto sperimentale presso la Carnegie Mellon University sotto la direzione di Michael Maudin, nel giugno 1995 Lycos si è trasformato in una vera e propria impresa (Lycos Inc.). Aprendo il menu a tendina possiamo impostare, in alternativa a “I want to search” The Web, anche Sound, Pictures oppure Sites by subject, a seconda della natura del soggetto di ricerca. Al di sotto della mascherina per la ricerca compaiono dodici pulsanti che portano ad altrettante pagine di interesse generale, tra cui spiccano People Find per la ricerca dell’indirizzo e-mail di un abbonato, e la rubrica Top News. Lycos offre due schermate alternative per la ricerca semplificata e la ricerca avanzata, tuttavia queste due schermate non corrispondono a due linguaggi d'interrogazione differenti: la ricerca avanzata costituisce piuttosto una specificazione della ricerca base attraverso alcune opzioni aggiuntive. Lycos non offre dei veri operatori booleani, anche se è possibile premettere l’operatore “-“ ad un termine per ridurne il peso statistico. Se s'introducono più termini la ricerca avviene in “or”, anche se le pagine nelle quali compaiono tutti e due i termini avranno un peso statistico maggiore, e figureranno dunque per prime nell’elenco. Una ricerca in “and“ è possibile attraverso la pagina di ricerca avanzata (la si raggiunge seguendo il link Custom Search). Customize Your Search Attraverso il menu a tendina delle “Search Options” potremo impostare la ricerca match any term (OR), match all term (AND), oppure match 2 (o 3, 4, 5 fino a 6) terms. Le finestrelle sottostanti permettono di scegliere quanti dei termini elencati vogliamo siano presenti, il livello minimo di rilevanza considerato accettabile (con loose match otterremo un elenco più numeroso di pagine che con strong match, ma l’elenco conterrà probabilmente un numero maggiore di pagine irrilevanti), il numero di risultati per pagina da visualizzare (10, 20, 30 o 40), e la forma di visualizzazione (standard results, summary results, detailed results). The Web | for: Search: Search : match any term (OR) | Options loose match | Display 10 results per page | Options: standard results | Go Get It

Page 167: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 167

Le considerevoli dimensioni del database utilizzato fanno di Lycos uno dei più prestigiosi motori di ricerca attualmente esistenti. Unici difetti: l’uso degli operatori logici è decisamente limitato, e Usenet non è nemmeno presa in considerazione. Motori di ricerca a indice La ricerca avviene indicando una parola-chiave (o una combinazione di parole) che consideriamo ragionevolmente associata al tipo di informazione che stiamo cercando. http://www.altavista.it Altavista http://www.hotbot.com HotBot http://www.lycos.it Lycos http://www.excite.it Excite http://guide.infoseek.com Infoseek http://www.opentext.com:8080 Open Text http://www.dejanews.com Deja News http://www.arianna.iol.it Arianna Metaricerca sequenziale La “metaricerca sequenziale” consiste nell’inviare in maniera sequenziale a più motori di ricerca il termine o i termini che c'interessano. L’invio sequenziale è analogo alla consultazione successiva di più motori. http://www.theriver.com/TheRiver/Explore/ezfind.html EZ-Find http://www.cam.org/∼psarena/find-it.html Find-It http://www.intbc.com/sleuth The Internet Sleuth http://www.stpt.com Starting Point http://www.refdesk.com/search.html Virtual Reference Desk Metaricerca contemporanea con lista unica Consiste nella possibilità di consultare contemporaneamente più motori di ricerca, in modo da ottenere un’unica lista di risposte. Naturalmente, metaricerche di questo tipo impediscono di utilizzare fino in fondo i linguaggi propri dei diversi engines, e si tratta di un limite spesso non indifferente. http://www.cs.colostate.edu/∼dreiling/smartform.html Savvy Search http://metacrawler.cs.washington.edu Meta Crawler http://www.albany.net/allinone All-in-one (indice dei motori di) http://www.iaf.net Internet Address Finder (IAF) Motori di ricerca a directory Il modello adottato è quello dell’arbor scientiae di derivazione medievale e rinascimentale, anche se naturalmente in questo caso fra i “rami” principali dell’albero compaiono discipline come l’informatica e la telematica. http://www.yahoo.com Yahoo! http://www.mckinley.com Magellan http://www.queen.shiny.it/iwp/indexit.htm IWP (Italian Web Pages) http://www.virgilio.it Virgilio Motori di ricerca particolari http://www.google.com Google Chi paga i motori di ricerca Ottengono i propri profitti principalmente attraverso le “inserzioni pubblicitarie” visualizzate automaticamente (con un meccanismo di rotazione) ogni volta che si accede al servizio. Portale I portali (jumpy.it, inwind.it, kataweb.it, tin.it, ciaoweb.it, libero.it, punto.it, spray.it, supereva.it, iol.it, infinito.it, virgilio.it) sono siti grandi e costosi, per l'azienda che li realizza, il cui scopo è offrire il maggior numero d'informazioni e servizi dedicati ai navigatori della rete. Le caratteristiche irrinunciabili di un portale di alto livello sono: 1. le news (Ansa, Rai, Mediaset);

Page 168: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 168

2. un motore di ricerca integrato; 3. e-mail, SMS (Short Message Service) e spazio web gratuiti; 4. l'accesso ad Internet gratis, 5. i canali, introdotti nel 1996 da Video On Line, sono delle aree tematiche, all'interno del

portale, nelle quali sono contenute i servizi, le informazioni e le risorse che riguardano argomenti particolari: economia, investimenti, sport, viaggi.

In futuro si svilupperanno portali non orizzontali (più informazioni), ma portali verticali Vortal con una sola informazione. network providers Per entrare su Internet, bisogna passare da una porta. La “porta” è un computer collegato in modo permanente alla rete Internet. Questo computer è definito host server è gestirà il conto dell’utente. Non è dunque possibile accedere ad Internet senza aprire un conto presso un server. I providers forniscono accessi ad Internet secondo tre linee di utenza: 1. enti senza fini di lucro (no-profit): università, centri di ricerca, scuole; 2. aziende; 3. domestica. I servizi sono di due tipi: 1. line-oriented: terminale TTY/VT100 con accesso ad una macchina Unix; 2. full-Internet: SLIP/PPP. I network providers italiani sono molti, per esempio alcuni sono: GARR, IUnet, NetTuno, Unisource, AlpNet del CSP (Centro Supercalcolo Piemonte), Dslogic, Intesa, Inrete, Inet, Italia Online, Itnet, Telnet. La qualità del POP (Point Of Presence) è importante per la velocità del collegamento. I fattori che influiscono sulla velocità sono la larghezza di banda di cui il POP dispone, in altre parole la capacità di trasporto dei dati del fornitore con il suo diretto fornitore di accesso ad Internet. Per esempio, Novara offre l’accesso con una linea CDN a 64 Kbps con il suo fornitore AlpNet di Torino. AlpNet a sua volta si collega con il suo fornitore di accesso ad Internet, per esempio con una linea CDN a 128 Kbps, ma ha più clienti collegati in Piemonte. Quindi solo due clienti si possono collegare con una velocità di 64 Kbps; se i clienti dovessero aumentare a quattro, la velocità si abbassa a 32 Kbps: questo è il collo di bottiglia! GARR (Gruppo Armonizzazione Reti della Ricerca) La rete GARR nasce, quale strumento per le attività di ricerca della comunità scientifica nazionale, negli anni ‘80 come altre reti in Europa: BITnet (Because It's Time network) USA nata nel 1981; EARN (European Academic Research Network) Europa; RNI (Reseau National D'interconnexion) Francia. REDIRIS Spagna; JANET (Joint Academic NETwork) in Gran Bretagna; collega più di 1700 host con più di venti sistemi operativi diversi in oltre 150 località, sono collegate tutte le Università e i Politecnici inglesi, tutti i Centri dei Research Council e alcune Scuole Superiori, è una rete a commutazione di pacchetto “aperta” sia perché collegata alle principali reti internazionali accademiche e pubbliche, sia perché accessibile secondo i più importanti standard di telecomunicazione esistenti. L'utilizzo della rete è gratuito per l'utenza accademica. Oltre alla consultazione OPAC (Online Public Access Catalogue) delle biblioteche, JANET offre un servizio d'informazione della rete stessa: NEWS, un servizio di informazione per i Bibliotecari: BUBL, un bollettino per gli umanisti: HUMBULL; WiN (WissenschaftsNetzes) in Germania; SURFnet (Samenwerkende Universtaire Reken Faciliteiten) in Olanda; NORDUnet in Scandinavia. sulla base di un progetto di cooperazione tra istituzioni scientifiche. Nel marzo 1988 è costituita la Commissione Ministeriale GARR i cui compiti a livello nazionale sono:

Page 169: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 169

1. armonizzare le politiche di sviluppo; 2. ampliare ed integrare i servizi di rete; 3. razionalizzare i costi; 4. confluire su una sola infrastruttura le reti: CNR, CILEA, ENEA, CSATA, CINECA; 5. costituire un punto di riferimento di competenze e capacità realizzative e nazionali. La dorsale è costituita da linee CDN a 2 Mbps! GARR-NOC (Network Operation Center) centro operativo di controllo della rete situato a Bologna (CINECA) e gestito in collaborazione con TELECOM per: il controllo e la gestione dell’infrastruttura fisica; la gestione degli apparati di comunicazione; il controllo del flusso del traffico. GARR-NIS (Network Information Service) servizio informativo di rete situato a Pisa (CNR) informazioni per utenti di rete; gestione dei domini di posta elettronica; gestione del DNS nameserver d'Internet per il dominio “it”; Il GARR non ritiene di dover intervenire nel settore della sicurezza, infatti, non è responsabilità della rete proteggere le singole stazioni di lavoro, ma è responsabilità e dovere della singola stazione di lavoro autoproteggersi. I COSTI DI INTERNET Il “costo di Internet”, in senso lato, è la somma di tutte le spese che un utente deve sostenere per essere in grado di navigare in rete. Tale importo, naturalmente variabile in ragione di una molteplicità di scelte a disposizione dell’aspirante cibernauta, è dato essenzialmente da due tipi di costi: 1. i costi fissi sono dati dalla somma del costo del computer, del modem e

dell’abbonamento annuale al provider (fornitore d’accesso). 2. i costi variabili. sono costituiti dal costo della telefonata da casa al fornitore

d’accesso. Rappresentano l’incidenza della navigazione sulla bolletta del telefono. La connessione a Internet (in sostanza: casa dell’utente - provider) deve avere il costo di una telefonata urbana (area locale). Il costo per minuto di conversazione e fasce orarie dipende dal gestore telefonico.

Page 170: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 170

FIDONET I CONCETTI FONDAMENTALI La struttura generale si articola in diversi livelli, corrispondenti a suddivisioni geografiche: a livello più alto vi è la “zona” (zone), che corrisponde all'incirca al continente. L'America è la zona uno, l'Europa la zona due. Nell'ambito di ogni zona vi sono diverse “regioni” (region), corrispondenti alle nazioni: l'Italia è la trentatré. Ogni nazione è a sua volta suddivisa in diverse “reti” (net), che per l'Italia sono cinque. Ogni rete è costituita da una moltitudine di “nodi” (node), che sono poi le BBS vere e proprie; opzionalmente si può avere un livello intermedio fra la rete ed i nodi, fatto di “concentratori” (hub), per cui un net può essere suddiviso in più hub, ciascuno dei quali conglobante diverse BBS. Infine l'ultimo livello di questa gerarchia, anch'esso opzionale, è quello del point: un utente “privilegiato” di BBS, che ha a casa propria una specie di BBS in miniatura nella quale può leggere e scrivere messaggi a suo piacimento anche senza essere collegato telefonicamente con la BBS di appartenenza, proprio come se fosse egli stesso il sysop di una BBS privata. Ogni sistema appartenente alla rete è identificato con un indirizzo “a quattro dimensioni”, costituito in pratica da quattro numeri come nell'esempio seguente: 2:335/317.10. I numeri indicano, nell'ordine, zone:net/node.point. La regione è inclusa nel numero del net e l'eventuale hub è incluso nel numero del nodo. Nell'indirizzo sopra indicato, infatti, i numeri hanno il seguente significato: il due è la zona (Europa); il trecentotrentacinque è il net, che è il quinto net centro-sud (quattro Piemonte, Liguria e Valle d’Aosta) dell'Italia (regione trentatré); i cinque net italiani iniziano tutti per trentatré; il numero trecentodiciassette indica la BBS, Mirage, che fa parte dell'hub trecento del net trecentotrentacinque; tutte le BBS dell'hub trecento (zona di Roma) hanno un numero di nodo che inizia con tre; infine il dieci è il numero del point. Per indicare la BBS in sé si utilizza zero come numero di point, come in 2:335/317.0. MATRIX Con il nome di matrix o netmail s'indica la posta privata nell'ambito della rete. Per inviare o ricevere matrix bisogna essere abilitati esplicitamente da parte del sysop della BBS di appartenenza. Possono avere accesso alla matrix sia point che utenti, i primi hanno come indirizzo quello del loro point; i secondi invece hanno l'indirizzo della BBS (quindi con lo zero finale) e sono fra loro distinti in base al nome e cognome. Come già detto in precedenza, la struttura della rete è tale che l'utente spedisce la propria posta solo alla BBS di appartenenza (indicata come boss) anche nel caso di messaggi diretti verso un nodo molto lontano. Quotidianamente un programma sulla BBS del boss scandisce i messaggi inseriti dai propri utenti e li esporta, secondo gli indirizzi, verso la BBS gerarchicamente superiore, prelevando nello stesso tempo da questa i messaggi diretti verso i propri utenti e provenienti dal resto della rete. Nel giro di qualche giorno il messaggio arriva sul sistema del destinatario. La tecnologia di Fidonet, è abbastanza fault-tolerant e quindi è relativamente raro che si perdano dei messaggi, anche in caso di crash di alcuni sistemi lungo il percorso: in genere ciò che può succedere è un rallentamento della consegna, ma la vera e propria perdita di un messaggio è fortunatamente un evento abbastanza eccezionale, almeno rispetto alla quantità di messaggi che quotidianamente raggiungono la loro corretta destinazione.

Page 171: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 171

ECHOMAIL Ogni nodo “si aggancia” ad una serie di aree echo (generalmente alcune decine) nelle quali ogni messaggio immesso presso un qualunque nodo è diffuso e reso leggibile in breve tempo presso tutti gli altri nodi collegati. A differenza della matrix, dunque, in cui un messaggio genera una catena lineare di chiamate (in genere una mezza dozzina al massimo), in un'area echo ogni singolo messaggio genera una stella esponenziale di chiamate che, se l'area è a diffusione nazionale, possono raggiungere un costo complessivo certamente significativo. Inoltre l'allargamento di una stessa area tematica ad un gran numero di nodi comporta necessariamente un alto numero di partecipanti e quindi un gran traffico giornaliero. Per le più frequentate aree a diffusione nazionale è facile superare i cinquanta nuovi messaggi al giorno; non parliamo poi delle aree internazionali. Naturalmente, non potendo disporre sulla BBS di una memoria di massa infinita, le aree echo sono gestite come dei buffer FIFO contenenti solo gli ultimi xxx messaggi. Ogni nuovo arrivo, dunque, cancella i messaggi più vecchi. Questo però non riguarda i point giacché i messaggi a loro destinati sono copiati, appena arrivano, nei rispettivi pacchetti di posta in attesa, dove rimangono fino al prelevamento da parte dei point e indipendentemente dalla cancellazione dei messaggi sulla BBS. È introdotta quindi la figura del moderatore, un utente privilegiato al quale si riconosce l'autorità di disciplinare l'attività dell'area in questione. Fra i compiti vi è quello di pubblicare regolarmente (in genere una volta al mese) un documento ufficiale dell'area, detto “policy di area”, nel quale sono illustrate le tematiche che l'area si propone di trattare e le norme di buon comportamento che gli utenti sono invitati a seguire. POINT Un point è un qualcosa a metà strada fra un utente ed una BBS; è un nodo privato, non chiamabile da utenti esterni, ma che fa a pieno titolo parte della rete, come testimonia che a lui è attribuito un indirizzo. Da un punto di vista pratico, essere point è il miglior modo possibile per gestire regolarmente ed efficientemente ampi volumi di messaggistica. Con il point tutte, le operazioni di chiamata al boss e smistamento dei messaggi spediti e ricevuti sono automatizzate, senza bisogno di alcun intervento umano. Il point chiamerà il vostro boss, ritentando il numero fino a trovarlo libero, dopodiché si farà identificare ed avvierà da solo una sessione protetta da password (in modo che nessun altro possa chiamare spacciandosi per voi); spedirà tutta la posta, privata e pubblica, da voi scritta dopo l'ultima chiamata e preleverà tutti i nuovi messaggi comparsi nelle aree da voi scelte, fatto questo chiuderà il collegamento. A questo punto avverrà la fase di spacchettamento (infatti, anche qui i messaggi sono compressi prima della spedizione) ed il lancio dell'editor con cui potrete leggere la posta ricevuta ed inserire le vostre risposte o i vostri nuovi messaggi. Il generico point è costituito dai seguenti moduli, alcuni dei quali possono a volte essere riuniti in uno stesso programma. 1. Un FOSSIL (Fido Opus Seadog Standard Interface Layer), che è un'estensione del

BIOS per fornire servizi più completi riguardo alla gestione della porta seriale. Esempi della categoria in MS-DOS sono X00, BNU e l'italiano DrComm.

2. Un mailer, detto anche front-end processor, che sarebbe quel programma che, in base agl’indirizzi di rete e consultando la lista dei nodi Fido, manda fisicamente i comandi al modem, compone il numero del boss ed esegue i trasferimenti sotto protocollo. Esempi tipici, sempre nel mondo MS-DOS sono BinkleyTerm e FrontDoor.

3. Un packer, anche chiamato mail processor, che è il programma che raccoglie i messaggi scritti in pacchetti, corredandoli delle opportune operazioni di controllo e comprimendoli con il programma appropriato, e che nell'altro verso apre i pacchetti provenienti dal boss e n'estrae i messaggi importandoli nella base messaggi del

Page 172: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 172

point. Esempi di packer sono Qmail, Wmail, Imail, TosScan. 4. Un editor di messaggi, che è l'elemento software del point di fronte al quale l'utente

passa, la maggior parte del tempo, il quale consente di leggere i messaggi e di inserirne di nuovi. Fondamentalmente è un editor di testi, con in più alcune funzionalità specifiche quali il supporto del quoting o delle copie multiple. Esempi d'editor sono MsgEd, Mercurio, GoldEd, MsgMaster, MirEdit, ME2.

A tutto questo va aggiunta una dose di utility ausiliarie che per lo più permettono di eseguire manutenzioni varie della base messaggi: cancellazione di gruppi di messaggi, rinumerazione per mantenere una numerazione progressiva anche dopo la cancellazione, funzioni di ricerca. In questa categoria si trovano programmi quali QBBED, AWF-Renum, MB-Util, IMThings (incluso con il citato Imail); programmi per la manutenzione della nodelist, la quale è un enorme file (circa un mega di testo) contenente nome, numero telefonico, indirizzo di rete, ubicazione geografica, nome del sysop, velocità massima di tutte le migliaia di BBS Fido presenti nel mondo. Questo file, fondamentale per indirizzare correttamente la posta della rete, è aggiornato automaticamente ogni settimana a cura dei nodi di coordinamento ed i point hanno anch'essi facoltà di richiederlo ed abbonarsi agli aggiornamenti, è possibile limitarsi alla nodelist della propria regione, oppure alla nodelist italiana. Essere point permette anche un'ulteriore comodità: la possibilità di eseguire upload e download “non presidiati” così come avviene per la posta, con in più il vantaggio che questo sistema funziona anche con BBS Fido diverse dal proprio boss e persino con BBS sulle quali non si è iscritti. Questa possibilità è di fondamentale importanza per prelevare un file da una BBS lontana in quanto riduce al minimo assoluto i tempi di connessione. Con la modalità interattiva bisognerebbe chiamare una prima volta, dare interattivamente tutti i propri dati, aspettare un paio di giorni per l'abilitazione, richiamare e infine prelevare il file di proprio interesse; in questo scenario molti scatti sono impiegati in attività inessenziali al trasferimento di file. Con un file request, invece (questo il nome tecnico, abbreviato in F'req), la sessione è spartana e velocissima: il point chiama il sistema destinazione, s’identifica con il proprio indirizzo di rete, invia un breve file testo contenente il nome del file richiesto ed immediatamente la BBS remota avvia la trasmissione sotto protocollo, chiudendo il collegamento non appena il file richiesto è stato trasferito. L'eliminazione di tutte le fasi di digitazione online consente dunque di limitare il tempo di trasferimento allo stretto necessario per la spedizione del file. È ormai chiaro che il point consente di seguire un intenso traffico di messaggi con spese telefoniche ridotte al minimo indispensabile. Il fatto però che sia tecnicamente ed economicamente possibile agganciare cinquanta aree al proprio point non, significa automaticamente che questa soluzione sia anche la più saggia e ragionevole. Bisogna, infatti, far entrare nell'equazione anche la propria disponibilità di tempo. Attivare un point significa assumersi un impegno - e non sto parlando in questo momento dei doveri del point nei confronti della rete, ma dell'impegno che uno richiede a se stesso quando decide di dedicare un certo numero di ore a settimana alla gestione della messaggistica di rete. LE RETI DI DISTRIBUZIONE DI FILE Appoggiate a Fido sono poi sorte anche altre reti, finalizzate alla distribuzione echo di file anziché di messaggi ognuna dedicata ad una particolare “nicchia”. SDS (Software Distribution System), è stata la prima di queste reti e distribuisce essenzialmente programmi per la gestione di nodi Fido. ISN (Italian Shareware Network), diffonde i migliori programmi shareware e PD di fabbricazione italiana. Win*Net è dedicata, com'è facile intuire, al software per Windows. Il vantaggio di queste reti è ovviamente il fatto che non si deve più andare a caccia delle

Page 173: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 173

nuove uscite in interurbana: quando in un'area messaggi si legge che il tale programma è stato inserito in ISN, è sufficiente recarsi presso la più vicina BBS ISN per scaricarlo, senza doversi recare sulla (probabilmente distante) BBS dell'autore del programma. L'unica pecca di questo sistema è che, al momento attuale, i nodi di queste reti sono abbastanza rari. La loro densità geografica è di uno o due ordini di grandezza inferiore rispetto alla densità dei nodi Fidonet e questo può causare dei problemi di reperibilità. INTERNET-FIDONET Per SPEDIRE un messaggio da Fidonet ad Internet: supponiamo che l'indirizzo internet del destinatario sia [email protected]. Bisogna spedire un matrix ad un gateway l'indirizzo del quale vi sarà fornito dal vostro sysop. In questo periodo il gateway italiano è il 2:33/800. Il destinatario del matrix NON deve essere [email protected] bensì l'utente fittizio "uucp". L'indirizzo del vero destinatario del vostro messaggio va invece inserito nella prima linea del testo del matrix, preceduto da "To: " come nel seguente esempio: To: [email protected] Bisogna poi lasciare totalmente vuota la riga successiva; non lasciate nemmeno uno spazio, andate subito a capo. Dopodiché scrivete normalmente il messaggio a partire dalla terza riga del matrix. Per RICEVERE un messaggio da Internet su un point Fidonet: supponiamo che il vostro identificativo sia Mario Rossi sul point 2:335/123.4; il vostro corrispondente sfrutterà un gateway, ma non avrà bisogno di conoscerne l'indirizzo Fidonet né di pasticciare con l'intestazione del messaggio. Gli sarà invece sufficiente spedire il messaggio all'utente [email protected]. È molto importante notare l'inversione dell'indirizzo (la parte meno significativa è messa per prima) e le sigle prefisse da aggiungere. Le sigle sono facili da ricordare se si nota che esse indicano, nell'ordine, point, (fido)node, net e zone.

Page 174: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 174

script Introduzione Molti provider Internet e servizi in linea richiedono l'immissione manuale delle informazioni necessarie per stabilire una connessione, quali il nome utente e la password. Con il supporto per le procedure di connessione di Accesso remoto, è possibile scrivere una procedura per automatizzare il processo di connessione. Una procedura è un file di testo contenente una serie di comandi, parametri ed espressioni richiesti dal provider Internet o dal servizio in linea per stabilire la connessione e utilizzare il servizio. Per creare un file di procedura, è possibile utilizzare un qualsiasi editor di testo, quale il Blocco note. Una volta creato il file, sarà possibile assegnarlo ad una connessione di Accesso remoto specifica, utilizzando Procedura di connessione di Accesso remoto. Struttura di base di una procedura I comandi costituiscono le istruzioni di base contenute in un file di procedura. Per meglio definire la funzione di alcuni comandi, è necessaria l'indicazione dei parametri. Un'espressione è una combinazione di operatori e argomenti che producono un risultato. Le espressioni, che è possibile utilizzare come valori in qualsiasi comando, possono essere ad esempio di tipo aritmetico, di confronto e di concatenazione di stringhe. Di seguito è indicato il formato di base di una procedura di Accesso remoto:

;Un commento inizia con un punto e virgola e si estende fino alla fine della riga. proc main

;Una procedura può contenere un numero illimitato di variabili e comandi dichiarazioni delle variabili blocco di comandi endproc

Le variabili devono essere dichiarate prima dei comandi. I comandi sono eseguiti nell'ordine indicato nella procedura e l'esecuzione termina quando tutti i comandi inclusi nella procedura principale sono stati eseguiti. Variabili Nelle procedure è possibile includere delle variabili. I nomi delle variabili devono iniziare con una lettera o un carattere di sottolineatura ("_") e possono contenere una sequenza di lettere maiuscole o minuscole, cifre e caratteri di sottolineatura. Non è possibile utilizzare una parola riservata come nome di variabile. Prima di utilizzare le variabili, è necessario dichiararle e specificarne il tipo. Una variabile di un dato tipo potrà infatti contenere solo valori dello stesso tipo. Di seguito sono indicati i tre tipi di variabile supportati: Tipo Descrizione

intero Numero negativo o positivo, ad esempio 7, -12 o 5698. stringa Serie di caratteri racchiusi tra virgolette. booleano Valore logico, TRUE o FALSE.

I valori sono assegnati alle variabili utilizzando la seguente istruzione: variabile = espressione

Alla variabile è assegnato il valore dell'espressione. Esempi: integer count = 5;integer timeout = (4 * 3);integer i

boolean bDone = FALSE;string szIP = (getip 2);set ipaddr szIP Variabili di sistema Le variabili di sistema sono impostate dai comandi inclusi nella procedura oppure sono determinate dalle informazioni immesse quando si imposta una connessione di Accesso

Page 175: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 175

remoto. Essendo di sola lettura, le variabili di sistema non possono essere modificate all'interno delle procedure. Di seguito è fornito un elenco delle variabili di sistema. Nome Tipo Descrizione $USERID Stringa L'identificativo dell'utente per la connessione corrente. La variabile corrisponde al nome dell'utente specificato nella finestra di dialogo Connessione a di Accesso Remoto. $PASSWORD Stringa Password per la connessione corrente. La variabile corrisponde alla password dell'utente specificata nella finestra di dialogo Connessione a di Accesso Remoto. $SUCCESS Booleano Variabile impostata da alcuni comandi per indicare se sono stati eseguiti correttamente. L'esecuzione della procedura potrà dipendere dal valore di questa variabile. $FAILURE Booleano Variabile impostata da alcuni comandi per indicare se sono stati eseguiti correttamente. L'esecuzione della procedura potrà dipendere dal valore di questa variabile. Queste variabili potranno essere utilizzate quando è richiesta un'espressione dello stesso tipo. Ad esempio transmit $USERID è un comando valido, in quanto $USERID è una variabile di tipo stringa. Stringhe di caratteri Le procedure di connessione di Accesso remoto supportano sequenze escape e conversioni dell'accento circonflesso, come descritto di seguito. Stringa di caratteri Descrizione

^carattere Conversione dell'accento circonflesso Se carattere corrisponde ad un valore tra "@" e "_", la sequenza sarà convertita in un valore di un byte tra 0 e 31. Ad esempio, ^M sarà convertito in un ritorno a capo. Se carattere corrisponde ad un valore tra "a" e "z", la sequenza sarà convertita in un valore di un byte tra 1 e 26. Se carattere corrisponde ad un qualsiasi altro valore, la sequenza non verrà considerata in modo particolare.

<cr> Ritorno a capo <lf> Avanzamento riga \" Virgolette doppie \^ Accento circonflesso singolo \< Segno < singolo \\ Barra rovesciata

Esempi: transmit "^M" transmit "Elio^M" transmit "<cr><lf>" waitfor "<cr><lf>" Espressioni Un'espressione è una combinazione di operatori e argomenti che producono un risultato. Le espressioni possono essere utilizzate come valori in qualsiasi comando. Un'espressione può combinare qualsiasi variabile o intero, stringa o valore booleano con uno qualsiasi degli operatori unari o binari inclusi nella seguente tabella. Gli operatori unari hanno la precedenza sugli altri operatori, mentre la precedenza degli operatori binari è indicata dalla loro posizione nella tabella. Di seguito sono elencati gli operatori monadici: Operatore Tipo di operazione - Meno unario ! Complemento a uno Nella seguente tabella sono elencati gli operatori binari nell'ordine di precedenza: Operatori Operazione Restrizioni * / Moltiplicazione Interi + - Addizione Interi Stringhe (solo +)

Page 176: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 176

< > <= >= Relazione Interi == != Uguaglianza Interi, stringhe, variabili booleane and AND logico Variabili booleane or OR logico Variabili booleane Esempi: count = 3 + 5 * 40 transmit "Ecco" + " qui" delay 24 / (7 - 1) Parole chiave Le parole chiave specificano la struttura della procedura ma, a differenza dei comandi, non eseguono delle operazioni. Di seguito sono elencate le parole chiave disponibili. proc nome

Indica l'inizio della procedura. È necessario che tutte le procedure contengano una procedura principale (proc main). L'esecuzione di una procedura inizia dalla procedura principale e termina alla fine della stessa.

endproc Indica la fine della procedura. Al termine dell'esecuzione dell'istruzione endproc relativa alla procedura principale verrà avviato il protocollo PPP o SLIP.

integer nome [ = valore ] Dichiara una variabile di tipo intero. Per inizializzare la variabile, è possibile utilizzare qualsiasi espressione o variabile numerica.

string nome [ = valore ] Dichiara una variabile di tipo stringa. Per inizializzare la variabile, è possibile utilizzare qualsiasi stringa di caratteri o variabile stringa.

boolean nome [ = valore ] Dichiara una variabile di tipo booleano. Per inizializzare la variabile, è possibile utilizzare qualsiasi espressione o variabile booleana.

Comandi Tutti i comandi sono parole riservate, quindi non è possibile dichiarare variabili con lo stesso nome dei comandi. Di seguito sono elencati i comandi disponibili. delay nSecondi

Imposta una pausa del numero di secondi specificati in nSecondi prima di eseguire il comando successivo della procedura. Esempi: delay 2 ; imposta una pausa di due secondi

getip valore Attende l'invio di un indirizzo IP da parte del computer remoto. Se il provider Internet restituisce diversi indirizzi IP in una stringa, utilizzare il parametro valore per specificare quale indirizzo IP dovrà essere utilizzato. Esempi: ;utilizza il secondo indirizzo IP

set ipaddr getip 2 ; assegna il primo indirizzo IP ricevuto ad una variabile szAddress = getip

goto etichetta Passa alla posizione nella procedura indicata da etichetta e continua da quel punto l'esecuzione dei comandi. Esempio:

waitfor "Prompt>" until 10 if !$SUCCESS then goto BailOut ; passa a BailOut ed esegue i comandi da ; quel punto in avanti endif transmit "bbs^M" goto End BailOut: transmit "^M"

Page 177: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 177

halt Interrompe la procedura, ma non chiude la finestra di dialogo del terminale. Per stabilire la connessione occorre tuttavia fare clic su Continua, poiché la procedura non potrà essere riavviata.

if condizione then comandi endif

Esegue la serie di comandi se la condizione è TRUE. Esempio:

if $USERID == "Giovanni" then transmit "Giovanni^M" endif

etichetta: Specifica la posizione a cui passare nella procedura. Il nome indicato nell'etichetta dovrà essere univoco e seguire le convenzioni di denominazione delle variabili.

set port databits 5 | 6 | 7 | 8 Cambia il numero di bit trasmessi e ricevuti durante la sessione per ogni byte. È possibile impostare un numero di bit da 5 a 8. Se non si include questo comando, verranno utilizzate le impostazioni delle proprietà relative alla connessione di Accesso Remoto. Esempio: set port databits 7

set port parity none | odd | even | mark | space Modifica le impostazioni di parità della porta durante la sessione. Se non si include questo comando, verranno utilizzate le impostazioni delle proprietà relative alla connessione di Accesso Remoto. Esempio: set port parity even

set port stopbits 1 | 2 Modifica il numero dei bit di stop della porta durante la sessione. È possibile impostare il numero 1 o 2. Se non si include questo comando, verranno utilizzate le impostazioni delle proprietà relative alla connessione di Accesso Remoto. Esempio: set port stopbits 2

set screen keyboard on | off Attiva o disattiva l'input della tastiera nella finestra del terminale della procedura. Esempio: set screen keyboard on

set ipaddr stringa Specifica l'indirizzo IP della workstation per la sessione. Il formato della stringa dovrà essere quello di un indirizzo IP. Esempi:

szIPAddress = "11.543.23.13" set ipaddr szIPAddress set ipaddr "11.543.23.13" set ipaddr getip

transmit stringa [ , raw ] Invia al computer remoto i caratteri indicati in stringa. Se non si include il parametro raw nel comando, il computer remoto riconoscerà le sequenze escape e le conversioni dell'accento circonflesso. L'inclusione di questo parametro risulta utile quando si trasmettono le variabili di sistema $USERID e $PASSWORD e il nome utente o la password contiene sequenze di caratteri che verrebbero altrimenti interpretate come accenti circonflessi o sequenze escape. Esempi: transmit "slip" + "^M"

waitfor stringa [ , matchcase ] [ then etichetta { , stringa [ , matchcase ] then etichetta } ]

Page 178: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 178

[ until intervallo ] Attende l'invio dal computer remoto di una o più stringhe specificate. Il parametro stringa non tiene conto delle maiuscole/minuscole, a meno che non si includa il parametro matchcase. Se si riceve una stringa corrispondente ed è utilizzato il parametro then etichetta, si passerà alla posizione indicata dall'etichetta nel file di procedura. Il parametro opzionale until intervallo definisce il numero massimo di secondi di attesa per il ricevimento della stringa, prima di passare all'esecuzione del comando successivo. Se non si imposta questo parametro, il computer rimarrà in attesa per un periodo indeterminato. Se si riceve una delle stringhe specificate, la variabile di sistema $SUCCESS verrà impostata a TRUE. Se tuttavia la stringa non è ricevuta entro il numero di secondi specificato dal parametro intervallo, la variabile di sistema sarà impostata a FALSE. Esempi:

waitfor "Login:" waitfor "Password?", matchcase waitfor "prompt>" until 10 waitfor "Login:" then DoLogin, "Password:" then DoPassword, "BBS:" then DoBBS, "Other:" then DoOther until 10

while condizione do comandi

endwhile Esegue la serie di comandi fino a quando la condizione sarà FALSE. Esempio:

integer count = 0 while count < 4 do transmit "^M" waitfor "Login:" until 10 if $SUCCESS then goto DoLogin endif count = count + 1 endwhile

Parole riservate Di seguito sono elencate le parole riservate che non potranno essere utilizzate come nomi di variabile. and boolean databits delay do endif endproc endwhile even FALSE getip goto halt if integer ipaddr keyboard mark matchcase none odd off on or parity port proc raw screen set space stopbits string then transmit TRUE until waitfor while

Page 179: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 179

La sicurezza al livello di Network I problemi della suite TCP/IP Rendere sicura la propria rete è importante almeno quanto configurare al meglio i propri server. La suite di protocolli TCP/IP ha delle debolezze nel disegno che possono essere sfruttate per forare molte protezioni di tipo "naif". Un esempio classico sono i Berkeley tools (rlogin, rsh) che basano la maggior parte dell'autenticazione sull'indirizzo di provenienza del pacchetto IP. Se a queste debolezze, si aggiunge che anche chi scrive i sistemi operativi sembra credere nella "perfezione" del mondo esterno, c'è da stare veramente poco tranquilli. L'insieme di tecniche che possono essere usate da un hacker per penetrare o bloccare un sistema sfruttano un misto di debolezze del TCP/IP, debolezze dei sistemi operativi più o meno correnti, configurazioni non sicure di essi. La rete stessa non è affidabile, qualunque campo dell'IP e del TCP può essere manipolato ad arte per ingannarvi. Il TCP/IP

È un insieme di protocolli che si occupano del trasporto dei datagrammi in modalità connessa affidabile reliable (TCP) e non connessa non affidabile (UDP). L'IP fa da protocollo di trasporto per questi due protocolli superiori. Un pacchetto IP può essere lungo fino a 65535 byte. Se il mezzo ha un'unità trasmissiva massima (MTU) più corta del pacchetto IP, questo sarà frammentato e ricomposto alla destinazione. Per esempio 1500 è la dimensione massima di un pacchetto Ethernet (802.3).

Page 180: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 180

Le linee seriali hanno anche MTU più brevi. A sua volta il TCP (che dal punto di vista utente è un flusso ininterrotto di byte) deve essere "pacchettizzato". Il canale TCP viaggia spezzettato in pacchetti IP e riassemblato alla destinazione. Un pezzetto di sequenza TCP che viaggia in un IP è detta segmento. Lo sforzo del protocollo sta nel controllare che i pacchetti siano stati ricevuti, perché in caso contrario dovranno essere ritrasmessi. Vediamo come inizia una sessione TCP. Inizialmente è aperto un canale connesso reliable tra due estremi detti socket. Un socket è una coppia formata da indirizzo IP e porta. La sessione è stabilita quando il mittente manda un messaggio di richiesta di connessione. Questi messaggi di apertura di connessione sono chiamati pacchetti SYN (Synchronize sequence number). Un pacchetto SYN contiene sempre un numero, il cosiddetto ISN (Initial Sequence Number). Questo numero è quello da cui il cliente inizia a contare i propri frammenti TCP. Una domanda è ovvia a questo punto: perché non porre questo numero sempre a zero, e quindi incrementarlo? La spiegazione è semplice: dato che tra macchine molto trafficate possono avvenire connessioni molto frequenti sulle stesse porte, è probabile che ad intervalli diversi si ripetano le stesse connessioni che sono create e distrutte dopo periodi molto brevi. È quindi necessario distinguere tra differenti "incarnazioni" della stessa connessione. Per questa ragione il numero da cui s'iniziano a numerare i byte della connessione TCP deve essere unico, e magari casuale. In questa maniera è altamente improbabile che pacchetti "zombie" di qualche vecchia connessione in giro per la rete s'infilino indisturbati in qualche coda aperta. Una volta ricevuto un pacchetto SYN il server deve rispondere (mandando un ACK) e, quindi, mandare il proprio ISN tramite un pacchetto SYN. Il client deve infine notificare la ricezione dell'ISN del server. A questo punto la connessione è stabilita, e possono finalmente cominciare a transitare i dati veri e propri. Uno schema della sessione è il seguente.

La comunicazione va avanti tra pacchetti di dati e risposte di ricevuta ricezione (ACK),

Page 181: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 181

fino alla chiusura della connessione (FIN). Il Ping Assassino I ping con certi parametri da macchine Win9.X e NT potevano bloccare totalmente router o server. Come poteva un semplice ping (che è un messaggio echo ICMP) mettere in crisi le risorse di rete cruciali? Si scoprì che l'errore era stato commesso dai programmatori che avevano male interpretato le specifiche di implementazione dell'IP. Secondo questi il campo dati di un IP poteva essere lungo fino a 65535 byte. Questo non è vero, in quanto è la lunghezza totale del pacchetto che non deve superare tale numero. Windows riesce a generare quindi pacchetti IP fuori standard lunghi ben oltre i 65535 byte. Aggiungendo 60 byte di header (lunghezza massima dell'header) a 65535 (lunghezza dei dati) si ottengono pacchetti di 65595 byte, al di fuori appunto del valore indicato nelle specifiche.

A questo bug di Windows si aggiungeva la "buona fede" degli sviluppatori di sistemi operativi che non controllavano la dimensione del pacchetto ottenuto durante il riassemblaggio nei buffer di sistema. In poche parole il codice del kernel che gestiva l'IP andava a scrivere fuori dal proprio buffer di una sessantina di byte. Se sembrano pochi, bisogna sapere che questo bloccava tutte le macchine che non facevano un controllo esplicito della lunghezza. Da una macchina Windows si può dare il comando ping -l 65510 nomehost per provare se vi sono macchine attaccabili. Per una catalogazione sommaria, un attacco con questo tipo di ping si può assimilare ad un attacco di tipo buffer overrun. Il risultato è una "denial of service", in altre parole alcuni dei servizi (o tutti) della macchina sono bloccati, ma non avviene una reale intrusione. Difendersi da quest'attacco è molto difficile. Alcuni system manager hanno schermato l'accesso ad i pacchetti ICMP provenienti dall'esterno. Questa misura è purtroppo perfettamente inutile. Il problema non è, infatti, solamente sui pacchetti ICMP, ma su tutti i pacchetti IP. Qualunque connessione anche TCP (telnet, http) può essere composta da pacchetti IP irregolari sovradimensionati, e crashare quindi il sistema server. Lo Spoofing In generale qualunque pacchetto IP può facilmente essere modificato alla sorgente stessa, alterando alcuni dei suoi campi. La modifica più frequente è quella dell'indirizzo di provenienza del pacchetto. Questo è camuffato in modo tale che il datagramma sembri provenire da un'altra rete, o magari dalla rete stessa che è attaccata. Un pacchetto così modificato si dice spoofed e questa tecnica è denominata address spoofing. In generale un qualunque attacco IP (come l'overrun) si accompagna con l'uso dell'address spoofing da parte dell'attaccante, cosicché diventi più difficile capire la sua locazione. Anche dallo spoofing non è facile difendersi. Questo perché il problema è globale e interessa tutta l'Internet. La soluzione migliore sta

Page 182: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 182

nell'impostare delle liste di accesso (access list) sui router del sistema. Le liste di accesso in generale permettono di controllare il traffico in ingresso e in uscita dalle interfacce di un router. Basandosi su alcune variabili quali il tipo di protocollo e indirizzo di destinazione o di provenienza, si specifica quali pacchetti debbano essere fermati e quali altri possono passare indisturbati. Attivare delle access list di protezione ha il duplice scopo di: difendere il proprio sistema; evitare che il proprio sistema diventi un punto di partenza per un attacco verso altri. Le policy da attivare sono molto semplici. Sui router di frontiera è necessario negare qualunque traffico in ingresso con IP delle nostre reti. Questo blocca attacchi nei quali un aggressore esterno fa generare alla sua macchina pacchetti che hanno l'indirizzo di provenienza delle nostre stesse reti. Sempre sui router di frontiera si nega il traffico in uscita da reti IP che non siano nostre. Con questo s'impedisce che da noi partano attacchi verso nodi altrui. Certo rimangono alcune possibilità che qualcuno ci attacchi dall'interno del nostro sistema; che qualcuno ci attacchi da sistemi che non hanno access list attive. Dal primo ci si difende impostando liste d'accesso anche sui router interni. Dal secondo si può dare qualcosa solo con l'adesione globale ad una policy di gestione. Purtroppo impostare delle liste d'accesso è sempre un'operazione complessa e soggetta ad errori. Affogare nel TCP Una tecnica di attacco che è in genere accompagnata dallo spoofing IP è quella detta del TCP SYN Flooding. L'effetto di un attacco SYN Flood va dal blocco delle funzionalità di alcuni servizi al blocco completo dell'host attaccato. Come abbiamo detto sopra, l'apertura di una connessione TCP avviene in tre fasi: il client manda il messaggio di SYN; il server accetta la connessione e manda il suo SYN; il client invia l'ACK. Cosa succederebbe se i messaggi il messaggio di ACK dal cliente non arrivasse? La connessione rimarrebbe aperta per metà fino alla chiusura per time out. Il tempo di time out per il fallimento di una sessione TCP è circa di quindici minuti. Il SYN flood funziona esattamente così: l'attaccante genera una gran quantità di messaggi TCP SYN e l'host attaccato esaurisce rapidamente lo spazio nelle tab di gestione del TCP, in quanto ogni pacchetto genera una entry che rimane semi aperta per circa un quarto d'ora. Con il comando netstat è possibile controllare lo stato dei socket e accorgersi se sta avvenendo qualcosa di strano. Difendersi è realmente difficile e non è possibile distinguere i messaggi SYN fasulli da quelli reali. L'unica possibilità è configurare le solite access list sui router d'ingresso in maniera tale che risulti più difficile per l'attaccante nascondere la propria provenienza. Sia il SYN flood sia il ping killer sono attacchi di tipo denial of service: chi riesce nell'attacco, al più riesce a mettervi fuori combattimento uno o più servizi. L'uomo nel mezzo (man in the middle) Più insidiosi perché difficilmente rintracciabili, sono i tentativi di da parte di malintenzionati di spacciarsi per qualcun altro per penetrare il sistema. In particolare le Berkeley r-utilities (rlogin, rsh), che basano la maggior parte dell'autenticazione sull'indirizzo della sorgente (presunta) del traffico, sono molto vulnerabili ad attacchi di questo tipo. Con quello che sappiamo è infatti facile immaginarsi un primo scenario in cui si riesce ad aggirare le restrizioni spacciandosi per un altro host. Supponiamo di avere tre macchine.

Page 183: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 183

1. La prima è l'host (H) su cui l'intrusore vuole per esempio lanciare alcuni comandi con

l'rsh. 2. La seconda è la macchina usata dall'intruso per l'attacco (F). 3. La terza è la macchina per cui si spaccia di essere (V). Una condizione necessaria è che il routing dalla macchina H alla V passi per la rete dove è presente la F. L'attacco avviene così. F apre la sessione TCP generando pacchetti IP con l'indirizzo sorgente di V. Questi arrivano a H che risponde rinviando indietro il numero della sequenza TCP verso V. F, che ascolta sulla rete locale, può intercettare questi pacchetti; conoscendo il numero iniziale di sequenza TCP, riesce quindi a rispondere. Contemporaneamente deve "affogare" V, per evitare che questo risponda ai messaggi generati da H e resetti la connessione. Come fa? Fa un bel TCP SYN flooding. In questo modo V con le code piene è impossibilitato a rispondere e non può disturbare la trasmissione pirata. A questo punto è possibile inviare qualunque comando a H spacciandosi per un utente di V. In generale, quindi, è buona norma disabilitate i .rhost e tutti i comandi che utilizzino l'indirizzo di sorgente del traffico come sistema di autenticazione, almeno sulle macchine critiche. Le predizioni del TCP (TCP SYN prediction) Addirittura in certi casi non è neanche necessario che la macchina da cui avviene l'attacco si trovi (dal punto di vista del routing) tra le reti dell'host aggredito e quello ingannato. Infatti una debolezza di molti sistemi operativi sta nel fatto che il numero di sequenza iniziale di una sessione TCP non è così casuale come dovrebbe essere. Per questa ragione, in certe condizioni è possibile "indovinare" quale sarà il numero iniziale utilizzato dal server in risposta ad una richiesta di aprire una connessione. Da questo un hacker può simulare un'intera sequenza TCP vedendone solo la sua parte generata. Praticamente indovinando il SYN number risposto dal server, e conoscendo le tempistiche della rete, si può: inviare il primo SYN per aprire la connessione; fare a meno del SYN del server; inviare l'ACK per chiudere la fase di establish; inviare i datagrammi contando dal SYN number indovinato. Tutto questo mostra anche il fatto che il traffico che giunge alla macchina può contenere qualunque cosa, e che quindi in generale non deve mai essere "trusted". Per questa ragione disabilitate sempre gli r-tools per utenti critici (root in particolare) e non affidatevi mai solamente ad i TCP wrapper come sistemi di sicurezza. La Gioia del routing Fino ad ora abbiamo sempre dato per scontata l'immutabilità del routing. Il nostro

Page 184: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 184

aggressore aveva necessità di lavorare contro il routing, indovinando i numeri di sequenza TCP o facendo flooding verso l'host da zittire. Il problema è che anche il routing può essere ingannato e piegato ai voleri di malintenzionati. Chi riesce a modificare le tab di routing non ha bisogno di camuffarsi: riesce a diventare effettivamente quello che vuole. ICMP Redirect Tra i compiti dell'ICMP vi è quello di permettere ad un router di suggerire ad un host come raggiungere in maniera migliore una certa destinazione. In particolare con un ICMP redirect è possibile segnalare qual è il gateway migliore sulla nostra rete locale per raggiungere la destinazione interessata. Lanciare un attacco ICMP non è semplice. Questo perché gli host hanno regole abbastanza restrittive per accettare il messaggi ICMP inviatogli dai gateway. In particolare i messaggi ICMP funzionano solo per una connessione già aperta e funzionante. Oltre a questo, solo il gateway utilizzato dall'host può inviare messaggi di Redirect. Anche con queste limitazioni l'intruso può avere la possibilità di compiere lo "spoof perfetto". Un esempio: una rete locale con più uscite verso l'Internet. L'hacker ha il controllo di un router o di un host che può fare routing. Con un messaggio ICMP redirect fasullo "devia" il traffico facendolo passare per la propria macchina prima di immetterlo sulla rete globale. L’esempio è riportato in figura.

Oltre a tecniche raffinate, di fioretto, come quella vista sopra ascoltando il traffico in uscita da un host è possibile compiere un attacco denial of service semplicemente inviandogli un messaggio ICMP del tipo "destination unreachable" o "TTL exceed" per tagliargli qualunque connessione cerchi di aprire. In questo sfortunato caso con il netstat è sempre possibile accorgersi che sta succedendo qualche cosa di strano. Come abbiamo visto con l'ICMP si possono causare gravi disservizi su una rete locale. Modificando le tab locali di un host l'effetto è quello di scollegarlo dalla rete causando un denial of service. In particolare alcune implementazioni del TCP hanno un ICMP un po' troppo liberale sul

Page 185: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 185

tipo di messaggi accettati. Questo può facilitare la strada ad un attaccante. RIP Injection Attaccando il protocollo di routing interno si possono alterare le tab dei gateway gettando una o più reti nel panico. Un protocollo a rischio è il RIP, infatti non offre nessun meccanismo per permettere ai router RIP di una zona di riconoscersi l'un l'altro. Per questa un intruso può inserirsi e iniziando a "parlare RIP" ingannando gli ascoltatori. L'esempio più banale é quello di un dial in terminal server con il routing dinamico erroneamente rimasto attivato sulle porte dei modem. In questa situazione chiunque chiami dall'esterno su una di quelle porte con una macchina capace di generare messaggi RIP (un Linux o anche un NT) ha la libertà assoluta di iniettare route fasulle sulla rete locale. A quel punto il suo attacco si può configurare in due maniere. Nella prima l'attaccante cerca di causare un denial of service. Inietta route reali come se fossero raggiungibili attraverso la sua macchina, in modo che il traffico verso di queste sia "inghiottito" dal suo sistema. L'effetto complessivo è quello di rendere queste reti non più raggiungibili. Il danno è però minimo in quanto l'aggressore è costretto a rimanere connesso al terminal server. Se infatti si scollegasse il RIP stesso sarebbe in grado di ritrovare la strada giusta in pochi minuti. Il secondo scenario è invece più difficile da tracciare.

Con la possibilità d'inserire route a piacimento possiamo trasformare il nostro sistema in qualunque altro sistema dell'Internet che non risieda sulla rete locale attaccata. Facile capire quanto sia pericolosa una cosa simile. L'impiego più semplice è il furto di password. L'aggressore si collega al terminal server. Immette le informazioni dove indica la sua rete locale come il cammino più breve per arrivare ad una rete che contiene un server di cui si vogliono ottenere le password.

Page 186: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 186

La macchina dell'hacker può contenere un getty o qualche altro programma user front end modificato. A quel punto attende che arrivino delle connessioni "interessanti". Appena qualche malcapitato si connette al sistema registra username e password, manda un messaggio del tipo login incorrect e resetta la connessione. Inoltre avvelena la route RIP appena annunciata per ripristinare il più velocemente possibile la vecchia rotta e si sgancia dal terminal server. Difficilmente qualcuno si è accorto dell'accaduto. Alla sorgente del Routing (Source Routing) Esiste una modalità d'instradamento dei pacchetti IP detta hop by hop. Quella, per intendersi, decisa localmente dai router non è l'unica possibile. Esiste la possibilità che la sorgente stessa del datagramma specifichi nell'header IP il cammino che il pacchetto dovrà seguire. In particolare una connessione TCP originata da pacchetti source routed scorrerà in entrambi i sensi con la route decisa dalla sorgente. Nei pacchetti source route l'indirizzo di provenienza dal datagramma è quello dell'ultimo gateway attraversato. L'uso del source routing oltre ad essere uno strumento per debug della rete diventa anche un arma in mano ad un aggressore se le configurazioni preparate per restringere gli accessi non sono sufficientemente "pensate". Nella figura è riportato un esempio tipico di questa situazione.

Una società, la WEB Publishing S.r.l. per esempio, è connessa ad Internet. Possiede una rete pubblica A dove risiedono i WEB server e una rete privata B che contiene le macchine utilizzate dai dipendenti. La protezione è ottenuta per mezzo di un router configurato per fare da filtro con delle access list, queste permettono che passi il traffico dall'Internet alla rete A e dalla rete B verso la A, ma bloccano tutto il traffico dalla rete A verso l'Internet e viceversa. Se per un errore non è stato disabilitato l'inoltro di datagrammi source routed un hacker può riuscire ad attraversare il firewall come in figura. Il fatto che l'indirizzo sorgente di un

Page 187: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 187

pacchetto source routed sia quello dell'ultimo gateway attraversato permette ad un hacker aprire sessioni TCP che attraversano agilmente TCP wrapper e router con liste di accesso basate sull'indirizzo sorgente. Se configurate delle liste d'accesso su un router controllate sempre che il source routing sia disabilitato. Idem per i TCP Wrapper che sono ottimi strumenti per rafforzare la sicurezza, ma prima di installarli assicurarsi che il controllo di accesso non sia effettuato solo sul campo di destinazione ma su tutto il data route dell'IP. sommario Non bisogna fidarsi della rete. In particolare non si devono effettuare autenticazioni a livello di network utilizzando l'indirizzo source IP: come abbiamo visto non è difficile falsificarlo. Se si ha necessità di autenticare utenti, è bene utilizzare un sistema di cifratura con scambio di password. Inoltre, bisogna disabilitare il source routing, e rafforzare le configurazioni dei server con le access list.

Page 188: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 188

firewall Introduzione Il termine firewall deriva dal gergo automobilistico e navale ed indica una protezione nei confronti del fuoco. Per analogia nel networking indica un oggetto, di solito una macchina dedicata allo scopo, che separa la parte privata di una rete da quella pubblica, al fine di garantirne la sicurezza nei confronti d'intrusioni provenienti dall'esterno o da persone non autorizzate.

Il firewall stesso potrebbe in ogni modo essere vulnerabile, sia perché mal configurato, sia perché nel software che lo gestisce qualche difetto può sempre sussistere. Tipi di firewall Un firewall è dotato di due interfacce di rete, una verso la rete privata da proteggere, l'altra verso quella pubblica. I casi più frequenti sono ethernet-ethernet e PPP-ethernet, nel caso il firewall gestisca anche la connessione verso il provider Internet. I tipi di protezione più diffusi sono il filtraggio di pacchetti IP, l'utilizzo di proxy e la tecnica dell'IP masquerading. Filtraggio e logging di pacchetti IP Permette, mediante filtraggio dei pacchetti TCP/IP, di effettuare il routing e il forwarding degli stessi in base a condizioni (rules) prescelte dall'utente, generalmente basate sull'host e sulla porta sorgente o destinazione della connessione, sul tipo della stessa (UDP, TCP, ICMP) e sulla porta attraverso cui sono arrivati. In questo modo è possibile, ad esempio, accettare le connessioni verso la porta TCP/23 (corrispondente al telnet) di alcune macchine della nostra rete solamente da host autorizzati. Le scelte possibili sono quelle di accettare il pacchetto (accept), di bloccarlo (deny) oppure di bloccarlo spedendo indietro una segnalazione di porta non raggiungibile (reject). Fra le funzionalità di

Page 189: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 189

filtraggio è importante ricordare quella di logging dei pacchetti transitati, ovvero la possibilità di ottenere, per ogni pacchetto trattato, una registrazione indicante come è stato trattato il pacchetto. IP masquerading Consiste nella possibilità di mascherare gli indirizzi TCP/IP di una rete privata in modo da nasconderla verso l'esterno. Sarà sufficiente configurare le macchine della rete nascosta affinché utilizzino come default un router e, in modo completamente trasparente, tutte le connessioni effettuate da esse appariranno come generate da una porta del router. Il sistema provvederà a rimettere a posto i pacchetti di ritorno e a spedirli alla porta corretta della macchina nascosta. L’IP masquerading rimappa la porta sorgente dei pacchetti in una porta del router.

Proxy S'intende una macchina o un software che ha lo scopo di consentire ai PC della rete privata, esplicitamente abilitati in un file di configurazione, l'accesso a parti della rete altrimenti non raggiungibili, accettando le connessioni dei client (ad esempio richieste di pagine WWW), ed inoltrandole per loro conto all'host remoto. In tutta l'operazione non interviene, se non nella comunicazione proxy-client, l'IP address del client, che così rimane nascosto dall'esterno. Ciò è effettivamente un limite anche per l'accessibilità delle macchine all'interno della rete, perciò è bene porre le macchine pubbliche, ad esempio il server WWW, all'esterno della parte protetta. In alternativa è possibile utilizzare il proxy anche al contrario, ovvero per permettere l'accesso alle macchine locali dall'esterno. La cosa tuttavia non risulta molto comoda, in quanto è spesso necessario configurare i programmi client in modo da utilizzare il proxy per l'accesso. Una soluzione più semplice, ma che deve essere attuata con una certa attenzione, consiste nell'utilizzare un programma che consenta di ridirezionare una porta TCP o UDP del firewall in un'altra macchina (per esempio: redir). Sono ovviamente possibili soluzioni miste, come l'installazione contemporanea del proxy e del filtro di pacchetti, ma entrambe le soluzioni insieme introducono complicazioni nella configurazione del sistema, aumentando quindi

Page 190: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 190

il rischio di errori. È sempre bene, infatti, mantenere il firewall il più possibile semplice, in modo da evitare errori di configurazione che introducano problemi di sicurezza non banali e di cui è molto difficile accorgersi. La configurazione di un firewall è comunque sempre un compromesso fra le possibilità di comunicazione offerte alla rete e la sua sicurezza. La famiglia dei proxy si divide in due ulteriori categorie: 1. application level proxy gateway 2. circuit-level relay. Il primo consiste in uno o più programmi specializzati per ogni servizio che si vuole rendere disponibile. Essi sono in grado di ricavare informazioni dal traffico che devono controllare in quanto, lavorando a livello di programma utente, conoscono i protocolli con cui hanno a che fare. In questo modo un proxy specializzato nel protocollo HTTP è in grado di decidere, in base alle informazioni contenute nell'header della richiesta, se effettuare o no il caching del documento in questione. È inoltre possibile sfruttare le caratteristiche di protezione incluse nel protocollo trattato, ad esempio la validazione degli utenti FTP o la protezione dei documenti WWW mediante password. È inoltre possibile utilizzare regole per permettere o inibire certe operazioni, come il GET o PUT di documenti HTTP a determinate macchine, oltre a permettere un logging dettagliato del traffico. L'utilizzo di proxy di questo tipo è molto diffuso presso gli Internet Provider, che ne sfruttano le possibilità di caching dei documenti. Avendo a disposizione uno di questi proxy (che supponiamo mappato alla porta 8080 della macchina proxy.mydomain.it) possiamo analizzarne il funzionamento simulando una connessione mediante telnet e richiedendo una pagina WWW (si noti che nel caso di accesso diretto al server WWW, la richiesta è semplicemente GET /nir.html HTTP/1.0). Se il proxy è dotato di cache e la pagina non era già stata memorizzata si può notare come le ripetizioni dell'operazione successive alla prima siano effettuate molto più velocemente, in quanto col server WWW remoto è verificata solamente la data di aggiornamento del documento, operazione consistente nello scambio via Internet di un header formato da pochi byte. Il documento vero e proprio è invece trasferito direttamente dalla memoria del proxy, con cui generalmente abbiamo una connessione abbastanza veloce. Esempi notevoli di proxy funzionanti a livello di applicazione sono il proxy del CERN e Harvest, che consistono in un unico programma in grado di gestire i protocolli HTTP, FTP, GOPHER e WAIS, ed il Firewall Toolkit (FWTK) della TIS, in cui ogni protocollo ha un proprio programma di proxy. Un proxy di tipo circuit-level relay ha un funzionamento analogo, con la differenza che non conosce assolutamente nulla dei protocolli utente e si limita a fare da gateway per le connessioni verso macchine altrimenti inaccessibili, che devono essere configurate in modo da provvedere autonomamente alla propria sicurezza (ad esempio è possibile configurare il WWW server in modo che richieda una password per lasciar accedere a determinate pagine). Un esempio notevole di questo tipo di proxy è rappresentato dal programma socks. Nel caso di utilizzo di un proxy è necessario ricordarsi di ricompilare il kernel disabilitando il forwarding automatico dei pacchetti IP, in quanto tale operazione sarà compiuta, in modo sicuro, mediante il proxy stesso. Attenzione alla sicurezza del firewall Alcuni programmi non rientrano direttamente nella categoria dei firewall, ma sono molto utili per la gestione della sicurezza di un singolo sistema, primo fra tutti il firewall/proxy stesso, che dovrebbe essere configurato in modo da "fare solamente quel lavoro", togliendo dalla macchina tutti i programmi e i servizi non strettamente necessari (ftp, tftp, httpd, telnetd, rlogind, sendmail). Il motivo che giustifica la disabilitazione del telnetd è quello di permettere l'accesso alla macchina solamente dalla console di sistema. Una soluzione meno drastica potrebbe consistere nel limitare l'accesso mediante il TCP wrapper.

Page 191: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 191

Secure SHell (SSH) Permette di accedere alla macchina in maniera sicura mediante programmi analoghi a rlogin, rsh, rcp. Nessuna password è spedita in chiaro ed il traffico può venire a sua volta crittografato. TCP Wrapper (tcpd) Permette il filtraggio delle connessioni TCP, UDP e ICMP in modo analogo a quanto avviene in un firewall, ma solamente per la macchina in cui è installato. È inoltre possibile tenere un log dettagliato dei tentativi di connessione o eseguire dei comandi di shell (in questo caso il log sulla console di sistema) nel caso di tentativi d'accesso illegali. È possibile far sì che tutti i tentativi di accesso al servizio TFTP, notoriamente pericoloso per la sicurezza, siano tracciati mediante un finger, il cui risultato è spedito per posta a root e alla macchina sorgente della connessione, nella speranza di riuscire a scoprire la persona colpevole del tentativo di intrusione. L'autenticazione operata dal wrapper comprende la possibilità di verificare l'identità dell'utente, cosa non possibile ad esempio mediante un WWW server. Affinché ciò avvenga nella macchina remota deve essere installato e funzionante un demone compatibile col protocollo RFC 931. Scelta degli indirizzi per la rete privata Data la scarsità di indirizzi IP, non sempre abbiamo a disposizione un numero sufficiente di indirizzi IP "ufficiali" appartenenti allo spazio di indirizzamento TCP/IP, ovvero assegnati univocamente a noi e per i quali esista il routing da tutte le altre macchine di Internet. In questo caso si può ricorrere all'utilizzo di indirizzi appartenenti ad un sottoinsieme dello spazio di indirizzamento di TCP/IP riservato all'utilizzo per reti private, ovvero non connesse direttamente ad Internet. Per questi indirizzi non è previsto il routing diretto e di ciò si dovrebbe tenere conto, ad esempio configurando i router in modo che dalla nostra rete non possano uscire pacchetti con questi numeri, analogamente per quanto avviene con gli indirizzi 127.x.y.z utilizzati per il loopback. Gli indirizzi scelti per essere utilizzati a questo scopo sono specificati nell'RCF 1597 e sono: 1. 10.0.0.0 10.255.255.255 per classe A 2. 172.16.0.0 172.31.255.255 per classe B 3. 192.168.0.0 192.168.255.255 per classe C Il blocchi d'indirizzi, prendono anche i nomi, rispettivamente di "24-bit block", "20-bit block" e "16-bit block" e sono utilizzati per implementare una rete privata di classe A, 16 reti contigue di classe B e 255 reti di classe C. Se ad esempio volessimo creare una rete privata di classe C, potremmo utilizzare gli indirizzi da 192.168.1.1 a 192.168.1.254 (gli indirizzi 0 e 255 sono utilizzati, al solito, per l'indirizzamento dell'intera rete e per il broadcast). Alle volte, quando si decide di fare uso di un firewall, può essere utile scegliere comunque, pur disponendo di indirizzi ufficiali, di mappare le proprie macchine su una rete privata, appunto per sfruttare la mancanza di routing a proprio favore come arma di protezione. È ovvio che ciò porterà dei problemi nel caso di macchine che debbano essere accessibili o fornire servizi all'esterno. In tal caso, secondo la sicurezza necessaria, si può scegliere se porre la macchina all'esterno del router, proteggendola mediante le opzioni di security previste dal sistema operativo, ad esempio un TCP wrapper, oppure se inserirla comunque all'interno del firewall, utilizzando un indirizzo ufficiale ed un filtro di pacchetti, un indirizzo privato ed un proxy oppure la redirezione di una porta del firewall. Utilizzo dell'IP Masquerading L'IP Masquerading è la funzione di firewall più semplice da installare ed è quella che offre il maggior grado di sicurezza per l'utente alle prime armi, in quanto risulta più difficile l'accesso verso le macchine della rete interna, al contrario di quanto accade per un proxy

Page 192: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 192

mal configurato. Oltre al fatto di funzionare solamente con pacchetti di tipo TCP o UDP, nell'utilizzo dell'IP masquerading possono insorgere diversi problemi: per primo la frammentazione di un singolo pacchetto IP in più pacchetti, che avviene quando si tenta di fare il forward di pacchetti troppo grandi fra interfacce con MTU/MRU (massima dimensione dei pacchetti trasmissibili/ricevibili) diverse, ad esempio fra un'interfaccia ethernet con MTU=1500 ad un'interfaccia PPP con MTU=296. I problemi avvengono in quanto il protocollo TCP/IP è costruito in modo da inserire, in caso di frammentazione, l'indirizzo delle porte sorgente e destinazione, su cui si basa il funzionamento del masquerading, solamente nel primo pacchetto della serie. Si può fare in modo che il kernel tenti sempre di deframmentare i pacchetti ricevuti, ovvero di riunirli in un singolo pacchetto prima di farne il forward. Installando un firewall con filtraggio dei pacchetti è utile comunque ricompilare il kernel con l'opzione di deframmentazione, in quanto altrimenti alcuni hacker potrebbero essere in grado di sfruttare questa caratteristica di TCP/IP per imbrogliare le regole di filtraggio, riuscendo a far passare i pacchetti frammentati. La deframmentazione nel kernel non riesce tuttavia a risolvere tutti i problemi ed è perciò necessario porre molta attenzione a settare correttamente i valori di MTU e MRU nel nostro router che, nel caso di connessioni dial-up, devono corrispondere con quelle del PPP/SLIP del nostro provider. Nel caso di connessioni PPP i valori di MTU e MRU di solito sono negoziati automaticamente all'inizio della connessione. Nel caso di utilizzo del programma diald per la connessione automatica via modem è necessario fare in modo che MTU/MRU dell'interfaccia SLIP virtuale che è creata corrispondano esattamente con i valori della connessione PPP col provider. Oltre al problema della frammentazione, ve ne è uno assai più importante, che consiste nel fatto che alcune applicazioni, ad esempio ftp, inseriscono nei pacchetti di risposta l'indirizzo della nostra macchina o tentano di spedire direttamente ad essa i pacchetti di risposta. Nel caso del masquerading la connessione fallisce, in quanto gli indirizzi sono rimappati in indirizzi del router e comunque fittizi e privi di routing. La soluzione, parziale, al problema consiste nel caricare in memoria alcuni moduli del kernel che, intercettando i pacchetti in arrivo e modificandoli opportunamente, consentono l'utilizzo di alcune applicazioni particolari, come FTP, IRC o real audio. Essendo un caso particolare di filtraggio di pacchetti, il masquerading è attivato col medesimo comando ipfwadm. Spesso la funzione di IP masquerading è utilizzata assieme al programma diald, che gestisce automaticamente la connessione PPP, per costruire dei router in grado di connettere un'intera rete privata ad Internet in modo trasparente mediante un singolo modem o connessione ISDN. Ovviamente, non essendo possibile indirizzare direttamente una porta di una macchina della rete nascosta, non sarà possibile, a meno di ricorrere ad una delle soluzioni a cui abbiamo già accennato, installare in essa dei servizi rivolti ad Internet. Il tutto comunque a vantaggio della sicurezza del sistema. L’effetto della frammentazione sul campo TCP dei pacchetti TCP/IP

Page 193: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 193

La sicurezza al livello di server Le porte aperte Un server è una macchina connessa alla rete, capace di fornire dei "servizi". Questi possono essere i più disparati: POP3 (per la posta elettronica), Web, FTP. Ognuno di questi servizi rappresenta una "porta aperta" verso l'esterno: quando uno di essi è richiamato, un programma è lanciato sul server per soddisfare determinate richieste. Ogni porta è contraddistinta da un numero: per il Web, ad esempio, esso è 80 mentre per il POP3 è 110. Per provare il funzionamento di un servizio, è sufficiente connettersi in telnet specificando il numero di porta alla quale si richiede la connessione. In teoria, quindi, dovrebbe esserci un programma attivo "in attesa" per ogni porta aperta, ma non è esattamente così. Esiste, infatti, un programma chiamato inetd con il compito di "monitorizzare" determinate porte (tra esse, la 110). Quando un client si connette, l'inetd, che resta sempre in ascolto, se ne "accorge" e "passa il testimone" ad un programma chiamato solitamente in.pop3d. Da quel momento, e solo da quel momento, sarà proprio in.pop3d a gestire la comunicazione con il client che ha stabilito la connessione, mentre inetd continuerà a fare il proprio lavoro (ovvero attenderà le connessioni). Il programma inetd è settato grazie al file di configurazione /etc/inetd.conf. Bisogna assolutamente conoscere l'esistenza e l'uso di questi file, perché sono molto spesso utilizzati per installare delle backdoor: Potrebbe essere ad esempio definito un servizio "fittizio" (magari con un nome realistico, tipo "news-gw") che dia l'accesso root a chiunque esegua il telnet su quella porta. Non tutti i programmi sono però lanciati tramite l'inetd. Per ragioni di performance, ad esempio, il server Web rimane in ascolto sulla porta 80 gestendo autonomamente le proprie connessioni. Lo stesso vale per il sendmail, che resta in ascolto sulla porta 25. Inoltre, esistono due porte particolari, la 23 (il telnet) e la 513 (rlogin) che servono ad accedere alla shell di sistema: in pratica, un utente può operare come se fosse seduto fisicamente davanti al PC. È comodo per il system administrator in una rete molto ampia, in quanto permette di operare su tutti i PC usando una sola postazione fisica. Come si attacca un server? Per attaccare un server esistono diverse tecniche e modalità. Ci si può basare sul fatto ad esempio che ogni programma ha un bug, una debolezza, che provoca dei malfunzionamenti. I programmi in ascolto su tali porte non fanno ovviamente eccezione. L'hacker altro non vuole che sfruttare il malfunzionamento di uno dei programmi in ascolto per cercare di carpire informazioni dal PC stesso o dalla rete. Ipotizzando invece che i programmi in questione siano perfetti, senza alcuna possibilità di errore, è possibile utilizzare le caratteristiche di un servizio per cercare di trovare il nome di qualche account e, perché no, una password. Usando, inoltre, i normali strumenti messi a disposizione dal TCP/IP, come il traceroute e l'nslookup, è possibile avere notizie sulla topologia della rete da attaccare, avendo così la possibilità di cercarne i punti deboli. I bug dei servizi Esistono determinati servizi che si sono dimostrati particolarmente deboli da molti punti di vista. Il primo servizio incriminato, è stato il sendmail: è il programma che autonomamente (senza l'uso dell'inetd) ascolta le connessioni alla porta 25, per permettere lo scambio di posta elettronica. Alcune versioni erano (e probabilmente sono) "deboli". È possibile mandare particolari tipi di e-mail in modo da eseguire dei comandi sul server che riceve il messaggio. Per fare un esempio, alcuni di questi bug hanno le

Page 194: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 194

fondamenta sul fatto che il sendmail, per ragioni di elasticità, permette di forwardare una mail ad un programma (che avrà poi il compito di comunicarla al suo standard input).Un altro bug noto agli hacker è quello del wu-ftp. Questo demone si occupa appunto delle connessioni Ftp, e funziona tramite inetd.Il punto è che tali comandi devono trovarsi necessariamente nella directory bin dell'albero di directory appartenente al demone Ftp. Il bug del wu-ftp consisteva nell'accettare qualsiasi comando sul disco rigido: gli effetti potevano essere veramente distruttivi, anche se le possibilità erano veramente molto limitate. I problemi più gravi si hanno solitamente con i server Web, soprattutto nell'uso di programmi CGI (e add-in in genere). Attacchi di forza bruta Una seconda "filosofia" di attacco è quella di usare appunto le caratteristiche di un server per cercare di "carpire" il maggior numero d'informazioni. Un esempio veramente calzante è presto fatto: sendmail e POP3 sono i potenziali fornitori d'informazioni. Per quanto riguarda sendmail, la debolezza è nel fatto di non accettare un'e-mail per un utente che non esiste. Immaginiamo ad esempio un'azienda che ha un server Internet, e che lo usi per permettere ai propri dipendenti lo scambio della posta elettronica. Un hacker che volesse tentare di conoscere i nomi degli account su quel PC, potrebbe facilmente connettersi al sendmail tentando una serie di nomi presenti in un apposito "dizionario": Se il sendmail risponde "Recipient not valid", l'account non esiste. Ovviamente il dizionario dovrà essere deciso a dovere: per ogni nome di persona, dovranno essere provate diverse varianti. Inoltre, non sempre si è così fortunati da riuscire ad avere molti account "in shell", con possibilità di connettersi in telnet su quel server. A questo punto, sarà possibile fare ancora qualcos'altro: tentare di indovinare le password di quegli utenti. In che modo? Si sfrutta una caratteristica del POP3, quella che permette di proteggere una casella di posta con una password. Se la password inserita è errata, la risposta è semplicemente "password incorrect", ma la connessione non termina. Si può obiettare che è possibile effettuare la stessa cosa facendo telnet alla porta 23. L'obiezione è annullata, però, dal fatto che moltissimi server POP3 non interrompono la connessione neanche dopo dieci, cento o mille connessioni fallite. In una notte, grazie ad un semplice programmino, è possibile controllare molte password. È possibile effettuare attacchi di questo tipo in pratica con qualunque server che accetti connessione con login e password, e che non sconnetta in caso di troppi tentativi errati. Inoltre, solitamente tali attacchi cominciano venerdì sera e terminano lunedì mattina (momenti durante i quali i server non hanno "sentinelle"). L'unica protezione davvero efficace in questi casi è nell'uso di password rigorosamente complesse, che contengano almeno un punto d'interpunzione ed un numero. In questo modo, il server sarà certamente più protetto. Per quanto riguarda la riservatezza delle informazioni riguardanti la propria rete, la cosa migliore è di usare un firewall, e di nascondere completamente ogni dato sulla propria rete dall'esterno. Una volta dentro Il fatto che un utente diverso da root sia del tutto innocuo non è assolutamente vero. Il punto è che tutti gli utenti hanno la facoltà di leggere molti file di configurazione fondamentali per la rete. Immaginiamo che l'amministratore, ad esempio, lasciasse una "porta di servizio" (diciamo la numero 20136) alla quale sia possibile accedere via telnet. Ebbene, avendo gli utenti accesso (in lettura) ai file inetd.conf e services, è chiaro che un hacker avrebbe libero accesso a tali informazioni. Dopo essere entrato, in ogni modo, lo scopo principale sarà diventare root. Le ragioni sono facilmente intuibili: si avrà così il pieno potere sul server. Essendo root è possibile fare qualsiasi cosa: formattarlo, accedere a dati riservati, installare diverse backdoor. Non tutti sanno che un server "bucato" è una enorme debolezza anche per l'intera rete: root ha la facoltà di mandare la

Page 195: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 195

scheda di rete in "promiscuous mode", e, quindi, d'installare sniffer per setacciare (e leggere) ogni singolo dato che transiti all'interno della propria rete locale. Esistono sniffer fatti apposta per loggare i primi 30 byte di ogni connessione: in questo modo, è possibile sapere le password di chiunque effettui un qualunque tipo di connessione all'interno della propria rete. Si diventa root in pratica esclusivamente grazie ai bug del sistema operativo del server. Le precauzioni A questo punto, si è al corrente del fatto che i servizi sono insicuri per principio. Questo però significa che sia possibile rendere il proprio server almeno abbastanza sicuro da attacchi esterni. Nel caso di Unix, con semplici accorgimenti è possibile raggiungere un buon grado di sicurezza senza troppi problemi. Commentare inetd.conf inetd.conf contiene l'elenco delle porte "aperte". Spesso in questo file sono disponibili dopo l'installazione moltissimi servizi del tutto inutili e, anzi, pericolosi. Primo fra tutti il finger, che permette di conoscere i nomi degli account degli amministratori. Anche l'rlogin è un servizio potenzialmente molto pericoloso. Il punto è: quali sono i servizi che si vogliono effettivamente tenere attivi? L'ideale è commentare tutto (inserendo il classico carattere "#" all'inizio della riga), e di lasciare attive soltanto le porte strettamente indispensabili. Usare il tcp wrapper per gli accessi Usare il tcp wrapper per gli accessi, che permette di controllare e limitare l'accesso a determinati servizi. Il "trucco" è presto detto: nell'inetd.conf invece di essere richiamato il servizio direttamente, è lanciato il tcpd. A tale programma, il nome del demone da lanciare è passato quindi come parametro. Per tutti gli host che non fossero in hosts.allow, sono in vigore le regole dell'hosts.deny che nega l'accesso in telnet ad ogni altro host. In questo modo, è possibile "aprire le porte" soltanto a determinati host. È ovviamente possibile l'uso delle wildcard, ed è possibile specificare un indirizzo con una maschera. Usare le shadow password Il file più ambito quando si deve penetrare un server è il /etc/passwd. Sotto Unix tale file è leggibile da tutti, anche se scrivibile solo da root. Le password sono, infatti, criptate secondo un algoritmo detto "one way": in pratica da una password è possibile arrivare univocamente alla sequenza di caratteri crittati, ma è impossibile fare il contrario. L'unico modo per carpire delle password da questo file è quindi tramite dei programmi che, partendo da un vocabolario, provino ripetutamente un gran numero di password. Un system administrator dovrebbe possedere un cracker di password localmente sul disco, e provare settimanalmente ad auto scoprire alcune password sul proprio sistema. Inoltre, è bene utilizzare un comando passwd che imponga l'uso di una password quantomeno difficile da indovinare. Ma questo può non bastare. Per questo motivo, è stato studiato un sistema per fare in modo che nel file /etc/passwd ci siano soltanto i nomi degli account (ed altre informazioni di sistema), mentre le password criptate siano memorizzate altrove (di solito, /etc/shadow).È una soluzione, questa, altamente consigliata soprattutto sugli host con diversi account in shell. C'è però anche il rovescio della medaglia: utilizzando le shadow password, tutti i programmi che richiedono l'autenticazione dell'utente (in.pop3d, xdm, Ftp) devono essere ricompilati. Questo rappresenta uno svantaggio che si ripercuote sulla difficoltà di amministrazione del server stesso. Il server web come nobody Far girare il server Web come nobody non è solo un "accorgimento": deve essere una regola, da seguire in ogni modo sia in ogni caso. Un Web Server che gira come root è una bomba atomica nel proprio sistema, per giunta pronta a scoppiare in ogni momento. Infatti, la possibilità che un programma CGI abbia da qualche parte una debolezza sono

Page 196: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 196

veramente alte. Visto che i programmi lanciati sotto Unix ereditano i diritti del processo padre, accadrebbe che gli stessi script CGI avrebbero i permessi di root (ereditando cioè quelli del server http). Il server Web rappresenta uno dei più grossi punti deboli, per un provider. Anche facendolo girare come nobody, bisogna avere la massima cura degli script che possono essere lanciati tramite un normale browser. Togliere il sistema di sviluppo Spesso i sistemi operativi installano molto software che non sarà in pratica mai utilizzato. È il caso del sistema di sviluppo: a parte la "corposità" in termini di spazio su disco, spesso la sua utilità all'interno di un server "pubblico" è veramente minima. Immaginiamo lo scenario di un hacker che sia riuscito ad ottenere una shell sul sistema tramite il Web Server (magari sfruttando una debolezza di un determinato script Cgi). Tale hacker avrà i diritti di nobody con gruppo nobody: in sostanza, non potrà fare quasi nulla. Avrà, però, pieno uso della macchina e sarà libero di utilizzare uno qualsiasi dei buchi che ogni sistema operativo ha. L'avere il sistema di sviluppo su quella macchina locale è per lui di fondamentale importanza: il 90% dei bug può essere "usato" soltanto compilando dei particolari programmi, da eseguire poi sul server stesso. La mancanza di sistema di sviluppo, quindi, "taglia le gambe" (almeno parzialmente) a chiunque sia entrato e tenti di ottenere i permessi di root. Questo non vieta in ogni modo all'hacker di compilarsi i propri programmi-exploit in locale per poi portarli in qualche modo su quel PC. Ovviamente, in una rete è bene che ci sia almeno una macchina, possibilmente veloce, con il sistema di sviluppo installato. Se nella vostra rete c'è un solo PC che fa da server, è preferibile installare il sistema di sviluppo, togliendo però i permessi di esecuzione a chiunque diverso da root. Controllare periodicamente la grandezza delle directory È possibile che un hacker entri nella macchina senza fare alcun danno: semplicemente, scaricherà sul vostro server una quantità industriale di software commerciale, dando i permessi di lettura di tali file a tutti. Su alcuni tipi di Unix è possibile fare questo pur non avendo una propria home directory, in quanto /var/spool/mail ha i permessi di scrittura per tutti. In sostanza, anche l'utente nobody può operare in tal senso. A questo punto, trovando un account Ftp valido sarà possibile diffondere in rete l'indirizzo del server, un login ed un account valido e la directory nella quale è memorizzato il tutto: sarà così creato un sito pirata. Controllare la grandezza delle directory del disco è quindi fondamentale per accorgersi di eventuali "file di troppo" presenti sul disco rigido del server. Settare le access list dei router, usare un firewall Le Access List prevengono una serie di problemi, e, soprattutto, permettono di contribuire alla sicurezza totale della Rete. Il Firewall da parte sua fa in modo di aumentare l'anonimato della propria rete e di proteggere le proprie risorse nel modo più sicuro. Ripristinare i comandi critici periodicamente Dopo essere entrato, l'hacker normalmente fa in modo di poter tornare sul server a proprio piacimento senza troppe peripezie. Per questo, la via più semplice è di installare un login falso, contenente una backdoor che gli garantisca l'accesso. Non solo: l'hacker potrebbe installare anche una serie di programmi che gli permetterebbero di essere loggato senza mai essere presente sul sistema. Per esempio ps, who, ifconfig, finger, login, potrebbero essere tutti modificati per fare in modo che nessuno si accorga della sua presenza. Per questo, è bene tenersi su dischetto una copia di tutti i programmi che potrebbero "nascondere" la presenza di un utente, e controllare periodicamente l'integrità di quelli in uso sul proprio sistema. Evitare quando possibile NFS È il sistema standard di Unix per condividere file attraverso il TCP/IP. Tramite un semplice file di configurazione è possibile quindi "esportare" una directory ad un determinato host. Il punto è che tali meccanismi sono in alcuni casi raggirabili, soprattutto a causa dei grossi problemi sicurezza di molte implementazioni di NFS.

Page 197: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 197

ALGORITMI COMPATTATORI ( HUFFMAN ED LZW ) Introduzione A prima vista, il concetto di compressione di dati potrebbe sembrare troppo bello per essere vero. L'idea di restringere le informazioni senza perdere nulla sembra essere un'affermazione che va contro una delle leggi minori di Newton: la legge di conservazione dei dati. A dispetto dell'aura mistica che ne fa da contorno, la compressione delle informazioni è basata su una semplice idea: la mappazione della rappresentazione dei dati da un gruppo di simboli ad un altro più conciso. I programmi di compattazione e l'hardware dedicato, usano metodi differenti per raggiungere questo fine. Due schemi di compressione, la codifica di Huffman e la codifica LZW (Lempel and Ziv, i due creatori, e Welch, che fece sostanziali modifiche), sono la base per molti compattatori che usiamo oggigiorno. Queste tecniche rappresentano anche due diverse scuole di algoritmi di compressione. Una comprensione di come ciascun algoritmo lavora fornisce una eccellente conoscenza sulla compattazione in generale. Sia Huffman che l'LZW sono tecniche di compressione 'lossless'. Sono appropriati per essere usati con un qualsiasi tipo di dato perché il risultato della espansione è identico all'input originale. Joint Photographics Experts Group (JPEG), Motion Picture Experts Group (MPEG), e altri algoritmi cuttingedge e image compression ottengono fantastiche compattazioni alle spese di una esatta riproduzione dei dati. Queste tecniche lavorano bene con immagini e suoni, ma non sono appropriate per dati generali. La codifica di Huffman, originariamente proposta nei primi anni '50, riduce il numero di bit usati per rappresentare caratteri frequenti ed aumenta quello dei caratteri non frequenti. La tecnica LZW, invece, usa i dati immessi per costruire un alfabeto espanso, basato sulle stringhe incontrate. Questi due differenti approcci lavorano entrambi riducendo le informazioni ridondanti nell'immissione delle informazioni. Codifica di Huffman La codifica di Huffman è probabilmente il metodo più conosciuto per la compressione dei dati. La semplicità e l'eleganza di questa tecnica lo hanno reso duraturo, accademico e favorito. Ma la codifica di Huffman ha anche applicazioni pratiche; per esempio, la codifica statica di Huffman è usata nell'ultima fase della compressione JPEG. La compattazione NMP-5 per modem usa la compressione dinamica di Huffman in una parte del proprio processo. Infine, la codifica Shannon-Fano, una parente stretta della codifica di Huffman, è usata in una fase dell'algoritmo di implosione del PKZIP. La codifica di Huffman lavora, come premesso, sui simboli usati più frequentemente di altri nella rappresentazione dei dati. La rappresentazione più comune, l'alfabeto ASCII, usa 8 bit per ogni carattere. In inglese la lettera E è usata più spesso della lettera Q, però noi usiamo lo stesso numero di bit per rappresentarle. Se noi usiamo solo 4 bit per la lettera E e 12 per la lettera Q, noi risparmieremo alcuni bit scorrendo un testo inglese. La codifica di Huffman formalizza questa idea di relazione tra la lunghezza e la frequenza di un simbolo. La codifica statica richiede una tabella delle probabilità prima d'iniziare a comprimere i dati. Questa tabella può essere compilata tramite un'osservazione statistica, oppure è lo stesso compattatore che visita l'input dei dati per trovare la periodicità dei simboli prima d'iniziare la compressione dei dati. Il compattatore e il decompattatore possono costruire un albero di codifica con queste informazioni. L'albero di codifica è un albero binario con una foglia per ogni simbolo. Per costruire l'albero, il compattatore parte con i due simboli con la minor frequenza. Quindi li combina con due foglie sotto un nodo; a questo nodo, a sua volta, è assegnata la somma delle due probabilità. Il compattatore considera quindi questi nodi insieme con il resto dei simboli

Page 198: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 198

nella lista delle probabilità, e seleziona di nuovo i due con frequenza minore. Continua a costruire e a combinare fino a che non ottiene un singolo albero con la probabilità alla radice uguale a uno. L'albero risultante ha foglie con distanza variabile dalla radice. Le foglie che rappresentano i simboli con la più alta frequenza sono i più vicini alla radice, mentre quelli con una bassa frequenza sono più lontani. Per codificare un simbolo, il compattatore percorre i sentieri dalla radice dell'albero sino alla foglia corrispondente. Supponiamo che il compattatore voglia codificare la lettera S. Partirà dalla foglia corrispondente alla lettera S e salterà al nodo di origine, rilevando quale ramo (0 o 1) è accessibile. Continuerà poi a saltare fino a trovare la radice. La lista dei rami, rovesciata, descriverà il cammino dalla radice fino ad S: questa è la codi-fica di un simbolo di Huffman. I caratteri con la più alta frequenza avranno così un codice più corto, mentre gli altri avranno via via un codice più lungo. Per decodificare, il decompattatore fa il procedimento inverso. Parte dalla radice dell'albero. Se il primo bit è uno, allora salta al ramo uno dalla radice. Continua leggendo bit e saltando fino a trovare la foglia che decodifica il carattere. Più di una proprietà della codifica di Huffman merita di essere discussa. Poiché i simboli sono sempre foglie, i simboli dei nodi non avranno mai figli. Quando il decompattatore arriva ad un nodo di una foglia, deve fermarsi dal leggere dati immediatamente perché sa di aver trovato la foglia. In altre parole, un codice di Huffman non è mai prefisso di un'altro. Questo significa che nonostante la lunghezza dei codici sia variabile, il compressore saprà sempre quando un codice finisce ed un altro inizia, e non ci sarà bisogno di esplicare lo spazio delimitato tra i codici. Codifica dinamica di Huffman La più grande difficoltà con la codifica di Huffman, come è facile notare dalla discussione precedente, è che questa richiede una tabella delle proba-bilità per ogni tipo di dato da comprimere. Questo non è un problema se sai di dover comprimere sempre ad esempio testi in inglese; bisogna solamente fornire al compattatore e al decompattatore un albero adatto ai testi inglese. Il protocollo JPEG definisce un albero standard per la compressione tipo JPEG. In un caso generale, quando non si conosce la frequenza dei simboli per l'input dei dati, la codifica statica di Huffman non può essere usata effettivamente. Fortunatamente, una versione dinamica della compressione di Huffman può costruire l'albero al volo durante la lettura e l'attivazione della compressione. L'albero è costantemente aggiornato per riportare i cambiamenti delle frequenze dei dati. Per inizializzare l'albero basta introdurre una foglia vuota. Una foglia vuota è semplicemente un nodo senza simbolo; questa foglia ha frequenza zero. L'albero iniziale, che è valido sia per il compattatore sia per il decompattatore, ha soltanto la radice e una sola foglia vuota. Il compattatore inizia a leggere un carattere. Attacca quindi questo carattere al ramo uno della radice, lasciando la foglia vuota nel ramo zero. Il carattere è spedito al decompattatore come carattere ASCII, e questi pensa ad adattare il suo albero. Per ogni carattere letto susseguentemente, il compressore effettua i seguenti passi. Vede se il codice è nell'albero di codifica. Se c'è, il compattatore lo invia nella stessa maniera del caso di codifica statica. Se non lo trova allora lo invia verso una foglia vuota. Quindi spedisce il nuovo carattere come codice ASCII. Infine, il compattatore aggiunge due codici, uno per una nuova foglia vuota sul ramo zero e un altro per un nuovo codice sul ramo uno. Quando l'albero è pieno (ad esempio quando tutti i caratteri sono stati visitati) il compattatore cambia solamente l'ultima foglia vuota nell'ultimo carattere. Il programma di decompattamento può fare modifiche al suo albero perché ha esattamente lo stesso del compattatore. Quando riceve un codice di una foglia vuota, legge il successivo codice dai dati compressi come un carattere ASCII. Quindi impiega la stessa routine del compattatore per aggiornare l'albero. Tuttavia la foglia vuota e l'albero non inizializzato non risolve i problemi di tenuta di traccia e cambio di frequenze. Per fare ciò, bisogna introdurre la dimensione di ogni nodo dell'albero e aggiornare questa grandezza durante l'elaborazione dei dati. Bisogna anche mantenere una lista di designazione (e di

Page 199: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 199

grandezza) dei nodi ordinata per dimensione. Ogni carattere parte da dimensione uno (le foglie vuote da zero). Ogni volta che il compattatore trasmette un carattere che è nella tabella, è incrementata la dimensione del carattere del nodo. Se questo cambiamento fa diventare un nodo più grande dei nodi che sono ritenuti più grandi nella lista delle dimensioni, il compattatore scambia il carattere del nodo con il nodo più grande che è diventato più piccolo. Il termine swapping, sta a significare il commercio di nodi origine e i rami solo designati; i figli dei nodi scambiati non sono colpiti, così non c'è pericolo che un nodo vuoto diventi interno, o che un nodo interno diventi una foglia. Il compattatore allora salta in cima all'albero dei caratteri originari, che devono essere cambiati dopo l'ultimo scambio. Continua quindi il processo via via sempre più in alto fino ad arrivare sino alla radice dell'albero.

Proposta di lavoro N° 1 Implementazione dell'algoritmo di Huffman Come al solito, ci sono degli ostacoli quando si vuole implementare l'algoritmo dinamico, legati alla sua eleganza. Il primo problema è che non si può effettuare lo scambio dei nodi mentre si trasmette un codice, siccome si richiede di partire da un nodo e di produrre l'albero dei generatori dai generatori. Non si possono effettuare queste due operazioni allo stesso tempo, poiché lo scambio dei nodi causa lo scambio dei generatori, che a sua volta causa il cambiamento della trasmissione del codice. Potrebbe essere spedito un codice al decompattatore prima di sapere cosa fare con esso. Un modo per risolvere questo problema è quello di fare due passate nella compressione, una per trasmettere e una per aggiornare. Il decompattatore fa anche lui due passate, una per ricevere (andando verso il basso) e una per aggiornare (tornando verso l'alto). Il secondo problema è dato dalle foglie vuote. Siccome le foglie vuote hanno dimensione zero, è possibile che qualche foglia diventi di dimensione maggiore rispetto a quella dei propri generatori alla partenza del processo di aggiornamento. Quindi lo scambio tra genitori e figli scalerà l'albero, lasciando i genitori come propri figli. Fortunatamente, semplicemente interrompendo qualsiasi scambio tra genitori e figli si potrà evitare il problema. Quindi, non c'è alcun modo per il decompattatore di rilevare la fine della trasmissione se il compattatore deve emettere byte interi (come nel programma di compressione dei file). Supponiamo per esempio una trasmissione lunga 81 bit. Quando il decompattatore legge il primo bit dell'undicesimo byte, non ha modo di sapere che i rimanenti sette sono spazzatura. Dunque la codifica per la compressione dei file deve conoscere la lunghezza del file per la compressione dei dati, facendola un po' di byte più lunga. #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef unsigned int BYTECOUNTER; /* ---- Huffman tree structure ---- */ struct htree { unsigned char ch; /* character value */ BYTECOUNTER cnt; /* character frequency */ int parent; /* offset to parent node */ int right; /* offset to right child node */ int left; /* offset to left child node */ }; struct htree *ht; void buildtree(void); FILE *OpenHelpFile(void); static void compress(FILE *, int, int); static void outbit(FILE *fo, int bit); int main(int argc, char *argv[])

Page 200: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 200

{ FILE *fi, *fo;int c; BYTECOUNTER bytectr = 0;int freqctr = 0;clrscr(); if (argc < 3) { printf("\nusa: huffc infile outfile");exit(1); } if ((fi = fopen(argv[1], "rb")) == NULL) { printf("\nCannot open %s", argv[1]);exit(1); } if ((fo = fopen(argv[2], "wb")) == NULL) { printf("\nCannot open %s", argv[2]);fclose(fi);exit(1); } ht = calloc(256, sizeof(struct htree)); /* - read the input file and count character frequency - */ while ((c = fgetc(fi)) != EOF) { c &= 255;if (ht[c].cnt == 0) { freqctr++; ht[c].ch = c;} ht[c].cnt++;bytectr++; } /* --- write the byte count to the output file --- */ fwrite(&bytectr, sizeof bytectr, 1, fo); /* --- write the frequency count to the output file --- */ fwrite(&freqctr, sizeof freqctr, 1, fo); /* -- write the frequency array to the output file -- */ for (c = 0; c < 256; c++) { if (ht[c].cnt > 0) { fwrite(&ht[c].ch, sizeof(char), 1, fo); fwrite(&ht[c].cnt, sizeof(BYTECOUNTER), 1, fo);} } /* ---- build the huffman tree ---- */ buildtree(); /* ------ compress the file ------ */ fseek(fi, 0L, 0); while ((c = fgetc(fi)) != EOF) compress(fo, (c & 255), 0); outbit(fo, -1); fclose(fi); fclose(fo);return(0); } /* ---- compress a character value into a bit stream ---- */ static void compress(FILE *fo, int h, int child) { if (ht[h].parent != -1) compress(fo, ht[h].parent, h); if (child) { if (child == ht[h].right) outbit(fo, 0); else if (child == ht[h].left) outbit(fo, 1); } } static char out8; static int ct8; /* -- collect and write bits to the compressed output file -- */ static void outbit(FILE *fo, int bit) { if (ct8 == 8 || bit == -1) { while (ct8 < 8) { out8 <<= 1;ct8++;} fputc(out8, fo);ct8 = 0; } out8 = (out8 << 1) | bit; ct8++; } void buildtree(void) { int treect = 256; int i,root; for (i = 0; i < treect; i++) { ht[i].parent = -1;ht[i].right = -1;ht[i].left = -1;} /* ---- build the huffman tree ----- */ while (1) { int h1 = -1, h2 = -1; /* ---- find the two smallest frequencies ---- */ for (i = 0; i < treect; i++) { if (i != h1) { struct htree *htt = ht+i; if (htt->cnt > 0 && htt->parent == -1) { if (h1 == -1 || htt->cnt < ht[h1].cnt) { if (h2 == -1 || ht[h1].cnt < ht[h2].cnt) h2 = h1; h1 = i; } else if (h2 == -1 || htt->cnt < ht[h2].cnt) h2 = i;} } } if (h2 == -1) { root = h1; break; } /* --- combine two nodes and add one --- */ ht[h1].parent = treect;ht[h2].parent = treect; ht = realloc(ht, (treect+1) * sizeof(struct htree));

Page 201: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 201

ht[treect].cnt = ht[h1].cnt + ht[h2].cnt; ht[treect].right = h1;ht[treect].left = h2; ht[treect].parent = -1; treect++; } } #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <conio.h> #define EXIT_OK 0 #define EXIT_FAILED -1 FILE *infile, *outfile; unsigned long int textsize = 0, codesize = 0, printcount = 0; void Error(char *message); #define N 4096 /* Size of string buffer */ #define F 60 /* Size of look-ahead buffer */ #define THRESHOLD 2 #define NIL N /* End of tree's node */ unsigned char text_buf[N + F - 1]; int match_position, match_length,lson[N + 1], rson[N + 257], dad[N + 1]; void InitTree(void),InsertNode(int r),DeleteNode(int p); #define N_CHAR (256 - THRESHOLD + F) /* character code (= 0..N_CHAR-1) */ #define T (N_CHAR * 2 - 1) /* Size of table */ #define R (T - 1) /* root position */ #define MAX_FREQ 0x8000 /* update when cumulative frequency */ /* reaches to this value */ typedef unsigned char uchar; uchar p_len[64] = { 0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; uchar p_code[64] = { 0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78, 0x80, 0x88, 0x90, 0x94, 0x98, 0x9C, 0xA0, 0xA4, 0xA8, 0xAC, 0xB0, 0xB4, 0xB8, 0xBC, 0xC0, 0xC2, 0xC4, 0xC6, 0xC8, 0xCA, 0xCC, 0xCE, 0xD0, 0xD2, 0xD4, 0xD6, 0xD8, 0xDA, 0xDC, 0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8, 0xEA, 0xEC, 0xEE, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF}; uchar d_code[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,

Page 202: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 202

0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15, 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27, 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,}; uchar d_len[256] = { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,}; unsigned freq[T + 1]; /* cumulative freq table */ int prnt[T + N_CHAR],son[T];unsigned getbuf = 0;uchar getlen = 0; int GetBit(void),GetByte(void); unsigned putbuf = 0;uchar putlen = 0; void Putcode(int l, unsigned c),StartHuff(void),reconst(void),update(int c); unsigned code, len; void EncodeChar(unsigned c); void EncodePosition(unsigned c),EncodeEnd(void); int DecodeChar(void),DecodePosition(void); void Encode(void),Decode(void);

Page 203: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 203

int main(int argc, char *argv[]) { char *s;clrscr(); if (argc != 4) { printf("Usage:lzhuf e(compression)|d(uncompression)" " infile outfile\n");return EXIT_FAILED;} if ((s = argv[1], s[1] || strpbrk(s, "DEde") == NULL) || (s = argv[2], (infile = fopen(s, "rb")) == NULL) || (s = argv[3], (outfile = fopen(s, "wb")) == NULL)) { printf("�$@�H�H�H�(J %s \n", s); return EXIT_FAILED;} if (toupper(*argv[1]) == 'E') Encode(); else Decode(); fclose(infile); fclose(outfile); return EXIT_OK; } void Error(char *message) { printf("\n%s\n", message);exit(EXIT_FAILED);} void InitTree(void) /* Initializing tree */ { int i; for (i = N + 1; i <= N + 256; i++) rson[i] = NIL; /* root */ for (i = 0; i < N; i++) dad[i] = NIL; /* node */ } void InsertNode(int r) /* Inserting node to the tree */ { int i, p, cmp; unsigned char *key; unsigned c; cmp = 1;key = &text_buf[r]; p = N + 1 + key[0]; rson[r] = lson[r] = NIL;match_length = 0; for ( ; ; ) { if (cmp >= 0) { if (rson[p] != NIL) p = rson[p]; else { rson[p] = r; dad[r] = p; return; } } else { if (lson[p] != NIL) p = lson[p]; else { lson[p] = r; dad[r] = p; return; } } for (i = 1; i < F; i++) if ((cmp = key[i] - text_buf[p + i]) != 0) break; if (i > THRESHOLD) { if (i > match_length) { match_position = ((r - p) & (N - 1)) - 1; if ((match_length = i) >= F) break; } if (i == match_length) { if ((c = ((r - p) & (N - 1)) - 1) < match_position) { match_position = c; } } } } dad[r] = dad[p]; lson[r] = lson[p]; rson[r] = rson[p]; dad[lson[p]] = r;

Page 204: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 204

dad[rson[p]] = r; if (rson[dad[p]] == p) rson[dad[p]] = r; else lson[dad[p]] = r; dad[p] = NIL; /* remove p */ } void DeleteNode(int p) /* Deleting node from the tree */ { int q; if (dad[p] == NIL) return; /* unregistered */ if (rson[p] == NIL) q = lson[p]; else if (lson[p] == NIL) q = rson[p]; else { q = lson[p]; if (rson[q] != NIL) { do {q = rson[q]; } while (rson[q] != NIL); rson[dad[q]] = lson[q]; dad[lson[q]] = dad[q]; lson[q] = lson[p]; dad[lson[p]] = q; } rson[q] = rson[p]; dad[rson[p]] = q; } dad[q] = dad[p]; if (rson[dad[p]] == p) rson[dad[p]] = q; else lson[dad[p]] = q; dad[p] = NIL; } int GetBit(void) /* get one bit */ { int i; while (getlen <= 8) { if ((i = getc(infile)) < 0) i = 0; getbuf |= i << (8 - getlen); getlen += 8; } i = getbuf; getbuf <<= 1; getlen--; return (i < 0); } int GetByte(void) /* get a byte */ { unsigned i;while (getlen <= 8) { if ((i = getc(infile)) < 0) i = 0; getbuf |= i << (8 - getlen); getlen += 8; } i = getbuf; getbuf <<= 8; getlen -= 8; return i >> 8; } void Putcode(int l, unsigned c) /* output c bits */ { putbuf |= c >> putlen; if ((putlen += l) >= 8) { putc(putbuf >> 8, outfile); if ((putlen -= 8) >= 8) { putc(putbuf, outfile); codesize += 2; putlen -= 8;

Page 205: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 205

putbuf = c << (l - putlen); } else { putbuf <<= 8; codesize++; } } } void StartHuff(void) {int i, j; for (i = 0; i < N_CHAR; i++) { freq[i] = 1; son[i] = i + T; prnt[i + T] = i; } i = 0; j = N_CHAR; while (j <= R) { freq[j] = freq[i] + freq[i + 1]; son[j] = i; prnt[i] = prnt[i + 1] = j; i += 2; j++; } freq[T] = 0xffff; prnt[R] = 0; } void reconst(void) { int i, j, k; unsigned f, l; /* halven cumulative freq for leaf nodes */ j = 0; for (i = 0; i < T; i++) { if (son[i] >= T) { freq[j] = (freq[i] + 1) / 2; son[j] = son[i]; j++; } } /* make a tree : first, connect children nodes */ for (i = 0, j = N_CHAR; j < T; i += 2, j++) { k = i + 1; f = freq[j] = freq[i] + freq[k]; for (k = j - 1; f < freq[k]; k--); k++; l = (j - k) * 2; /* movmem() is Turbo-C dependent rewritten to memmove() by Kenji */ /* movmem(&freq[k], &freq[k + 1], l); */ (void)memmove(&freq[k + 1], &freq[k], l); freq[k] = f; /* movmem(&son[k], &son[k + 1], l); */ (void)memmove(&son[k + 1], &son[k], l); son[k] = i; } /* connect parent nodes */ for (i = 0; i < T; i++) { if ((k = son[i]) >= T) { prnt[k] = i; } else { prnt[k] = prnt[k + 1] = i; } } } void update(int c) { int i, j, k, l; if (freq[R] == MAX_FREQ) {

Page 206: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 206

reconst(); } c = prnt[c + T]; do { k = ++freq[c]; /* swap nodes to keep the tree freq-ordered */ if (k > freq[l = c + 1]) { while (k > freq[++l]); l--; freq[c] = freq[l]; freq[l] = k; i = son[c]; prnt[i] = l; if (i < T) prnt[i + 1] = l; j = son[l]; son[l] = i; prnt[j] = c; if (j < T) prnt[j + 1] = c; son[c] = j; c = l; } } while ((c = prnt[c]) != 0); /* do it until reaching the root */ } void EncodeChar(unsigned c) { unsigned i; int j, k; i = 0; j = 0; k = prnt[c + T]; /* search connections from leaf node to the root */ do { i >>= 1; /* if node's address is odd, output 1 else output 0 */ if (k & 1) i += 0x8000; j++; } while ((k = prnt[k]) != R); Putcode(j, i); code = i; len = j; update(c); } void EncodePosition(unsigned c) { unsigned i; /* output upper 6 bits with encoding */ i = c >> 6; Putcode(p_len[i], (unsigned)p_code[i] << 8); /* output lower 6 bits directly */ Putcode(6, (c & 0x3f) << 10); } void EncodeEnd(void) { if (putlen) { putc(putbuf >> 8, outfile); codesize++; } } int DecodeChar(void) { unsigned c;

Page 207: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 207

c = son[R]; /* start searching tree from the root to leaves.

* choose node #(son[]) if input bit == 0 * else choose #(son[]+1) (input bit == 1) */ while (c < T) { c += GetBit(); c = son[c]; } c -= T; update(c); return c; } int DecodePosition(void) { unsigned i, j, c; /* decode upper 6 bits from given table */ i = GetByte(); c = (unsigned)d_code[i] << 6; j = d_len[i]; /* input lower 6 bits directly */ j -= 2; while (j--) { i = (i << 1) + GetBit(); } return c | i & 0x3f; } void Encode(void) { int i, c, len, r, s, last_match_length; fseek(infile, 0L, 2); textsize = ftell(infile); if (fwrite(&textsize, sizeof textsize, 1, outfile) < 1) Error("Unable to write"); /* write size of original text */ if (textsize == 0) return; rewind(infile); textsize = 0; /* rewind and rescan */ StartHuff(); InitTree(); s = 0; r = N - F; for (i = s; i < r; i++) text_buf[i] = ' '; for (len = 0; len < F && (c = getc(infile)) != EOF; len++) text_buf[r + len] = c; textsize = len; for (i = 1; i <= F; i++) InsertNode(r - i); InsertNode(r); do { if (match_length > len) match_length = len; if (match_length <= THRESHOLD) { match_length = 1; EncodeChar(text_buf[r]); } else { EncodeChar(255 - THRESHOLD + match_length); EncodePosition(match_position); } last_match_length = match_length; for (i = 0; i < last_match_length && (c = getc(infile)) != EOF; i++) { DeleteNode(s);

Page 208: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 208

text_buf[s] = c; if (s < F - 1) text_buf[s + N] = c; s = (s + 1) & (N - 1); r = (r + 1) & (N - 1); InsertNode(r); } if ((textsize += i) > printcount) { printf("%12ld\r", textsize); printcount += 1024; } while (i++ < last_match_length) { DeleteNode(s); s = (s + 1) & (N - 1); r = (r + 1) & (N - 1); if (--len) InsertNode(r); } } while (len > 0); EncodeEnd(); printf("input: %ld bytes\n", textsize); printf("output: %ld bytes\n", codesize); printf("output/input: %.3f\n", (double)codesize / textsize); } void Decode(void) { int i, j, k, r, c; unsigned long int count; if (fread(&textsize, sizeof textsize, 1, infile) < 1) Error("Unable to read"); /* read size of original text */ if (textsize == 0) return; StartHuff(); for (i = 0; i < N - F; i++) text_buf[i] = ' '; r = N - F; for (count = 0; count < textsize; ) { c = DecodeChar(); if (c < 256) { putc(c, outfile); text_buf[r++] = c; r &= (N - 1); count++; } else { i = (r - DecodePosition() - 1) & (N - 1); j = c - 255 + THRESHOLD; for (k = 0; k < j; k++) { c = text_buf[(i + k) & (N - 1)]; putc(c, outfile); text_buf[r++] = c; r &= (N - 1); count++; } } if (count > printcount) { printf("%12ld\r", count); printcount += 1024; } } printf("%12ld\n", count); }

Page 209: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 209

Tecniche per la correzione degli errori Introduzione La conseguenza dei disturbi è la variazione del contenuto informativo del messaggio: in altre parole, il ricevitore riceverà un messaggio diverso da quello inviatogli dal trasmettitore. Ci si pone allora il problema di trovare il modo di rilevare eventuali errori e quindi correggerli. I metodi utilizzati per questo scopo si basano tutti sul concetto di ridondanza, si prevede cioè di corredare il messaggio che si vuole trasmettere di informazioni supplementari, i bit di controllo. Prima di introdurre le tecniche per la correzione degli errori occorre comprendere che cosa si intende per distanza di Hamming, date due stringhe w1 e w2 di simboli dello stesso livello, la distanza d (w1, w2) è il numero di posizioni in cui le stringhe differiscono, è non negativa e simmetrica.

d (w1, w2) = d (w2, w1) se d (w1, w2) = 0 allora w1 = w2 Per esempio: se w1 = 0011 e w2 = 1000 allora d (w1, w2) = 3 Condizione necessaria e sufficiente perché un codice sia in grado di rilevare tutti i casi di K o minore di K errori è che la distanza di Hamming tra tutte le coppie di parole del codice sia almeno K + 1. Codici con distanza 1: gli errori singoli non sono rilevati. Codici con distanza 2: gli errori singoli sono rilevati, quelli doppi invece no. Condizione necessaria e sufficiente perché un codice sia in grado di correggere tutti i casi di K o minore di K errori è che la distanza di Hamming tra tutte le coppie di parole del codice sia almeno 2 * k + 1. Codici con distanza 3: gli errori singoli sono rilevati e corretti perché la parola si trova ad un bit di distanza da quella esatta e a due bit da tutte le altre. La correzione è ottenuta a spese della rilevazione: non si possono rilevare errori doppi perché saranno a distanza due dalla combinazione esatta, ma a distanza uno da tutte le altre e quindi erroneamente corretta. Se da una parte il ricorso a un maggior numero di caratteri costituisce un rimedio al possibile verificarsi di errori, dall’altra è altrettanto vero che la loro trasmissione influisce negativamente sulla velocità e sui costi del processo. Si cerca allora di limitare l’uso dei bit di controllo allo stretto necessario.

Codice di Hamming È ricavabile dal codice BCD, la sua caratteristica è quella di essere un codice non solo di rilevazione, ma anche a correzione di errore poiché è in grado di individuare la posizione dei bit in cui c’è stato errore di trasmissione. La regola sviluppata da Hamming è quella di trasformare un codice di (n) bit, che abbia distanza uno, in un codice di (n + c) bit, dove i (c) bit aggiunti, formano un numero binario il cui equivalente decimale indica la posizione del bit errato, detti bit di controllo, devono soddisfare alla condizione:

2c >= n + c + 1 affinché possa essere individuata la posizione in cui si è verificato l’errore. Nel caso del codice BCD, i bit sono quattro (n = 4), il numero di bit di controllo dovranno essere minimo tre per soddisfare la disuguaglianza (c = 3). Il codice completo è quindi formato da sette bit. La realizzazione del codice di Hamming completo è effettuata numerando le posizioni a partire dal bit meno significativo:

b7 ... b4 b3 b2 b1 I bit di controllo c1 , c2 , c3, ..., cn sono inseriti nelle posizioni di peso 1, 2, 4, 8, ..., 2n. Inoltre: - c1 si sceglie in modo che vi sia un numero pari di uno nelle posizioni 1, 3, 5, 7, ... - c2 si sceglie in modo che vi sia un numero pari di uno nelle posizioni 2, 3, 6, 7, 10, 11, ... - c3 si sceglie in modo che vi sia un numero pari di uno nelle posizioni 4, 5, 6, 7, 12, 13, ...

Page 210: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 210

Il codice che è così creato ha la proprietà di rilevare l’errore individuandone la posizione in cui si è verificato. Il bit errato può quindi essere corretto per semplice inversione. Nel codice di Hamming ricavato dal BCD, si è detto che il numero dei bit per completare il codice è sette (n = 4, c = 3, n + c = 7). La posizione dell’errore sarà quindi individuata al massimo dai tre bit p1, p2, p3, come si può notare dalla tabella:

POSIZIONE p1 p2 p3 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1

dove: 1. p1 = bit meno significativo che verifica la correttezza delle posizioni 1, 3, 5, 7 ovvero

controlla l’esattezza dei bit b1 b3 b5 b7; 2. p2 = bit intermedio che controlla l’esattezza dei bit b2, b3, b6, b7; 3. p3 = bit più significativo che controlla l’esattezza dei bit b4, b5, b6, b7; I bit p1, p2, p3 sono posizionati all’interno della parola al bit 1, 2, 5, la tabella seguente mostra il codice di Hamming completo a sette bit.

DECIMALE b7 b6 b5 b4 b3 b2 b1 c3 c2 c1

0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 2 0 0 0 0 1 1 1 3 1 1 0 0 1 1 0 4 0 1 1 0 0 1 1 5 1 1 1 1 0 0 0 6 0 0 1 1 0 0 1 7 1 0 0 1 1 0 0 8 0 0 1 1 1 1 0 9 1 1 1 1 1 1 1

Vediamo con un esempio come si applica il codice di Hamming a sette bit in una trasmissione errata di un dato. Si voglia trasmettere la cifra zero, la codifica esatta è: 0000000; si supponga ora che la cifra trasmessa sia errata per cause che non si vuole analizzare, il computer, per esempio, riceverà la seguente sequenza di bit: 0010000 ossia con errore nel bit b5 (uno anziché zero). I controlli di parità danno: posizione 1, 3, 5, 7 b1 = 0, b3 = 0, b5 = 1, b7 = 0 il controllo di parità sugli uno non è soddisfatto quindi, il bit meno significativo della tabella delle posizioni errate p1 = 1; posizione 2, 3, 6, 7 b2 = 0, b3 = 0, b6 = 0, b7 = 0 il controllo di parità è soddisfatto, perciò il bit p2 = 0; posizione 4, 5, 6, 7 b4 = 0, b5 = 1, b6 = 0, b7 = 0 il controllo di parità non è soddisfatto, il bit più significativo p3 = 1. Si ottiene quindi: p1 = 1; p2 = 0; p3 = 1 che corrisponde proprio alla posizione cinque dove si è verificato l’errore. Il computer correggerà automaticamente il bit b5 considerandone l’inverso.

Page 211: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 211

Tecniche per la rilevazione degli errori Controlli a livello carattere Ripetizione sistematica: si invia due volte il carattere da trasmettere, il ricevente confronta le due versioni. Echo check: il carattere ricevuto è memorizzato e ritrasmesso alla stazione trasmittente, dove è confrontato con l’originale. In entrambi casi la velocità di trasmissione si riduce della metà. Peso costante: rilevazione ottenuta controllando la costanza del peso, per esempio il codice 2 su 5 prevede due soli bit a uno in tutte le combinazioni. Bit di parità: VRC (Vertical Redundancy Check), parità verticale si aggiunge un bit al carattere trasmesso in modo da rendere sempre pari il numero di bit a uno (parità pari, parity even), oppure sempre dispari (parità dispari, parity odd). È in grado di rilevare errori di molteplicità dispari. Time-out Controlla la trasmissione per un dato intervallo di tempo in modo da assicurare che certe funzioni siano effettuate secondo una determinata temporizzazione. Quando questo timing scade si attivano determinate operazioni. 1. Turn around time-out: attivato alla fine di una trasmissione (ricezione) di un

messaggio in attesa di una risposta. 2. Inter character time-out: attivato tra due caratteri consecutivi in fase di

trasmissione (ricezione) affinché il messaggio non venga interrotto. 3. Time-out da keyboard: attivato con un tasto, il computer risponde con busy se

interrogato in questo tempo. Controlli a livello messaggio È chiamato BCC (Block Check Character) LRC (Longitudinal Redundancy Check): parità longitudinale, i dati sono organizzati in gruppi in modo tale da formare una vera e propria matrice nella quale ogni riga rappresenta un carattere, mentre il numero delle colonne è uguale al numero di bit utilizzati per la codifica dei caratteri stessi. Si procede quindi sia al controllo della parità su ogni riga (cioè su ogni carattere), sia al controllo della parità su ogni colonna. Le configurazioni così ottenute sono trasmesse unitamente al blocco, in altre parole per ogni messaggio si aggiunge un byte di parità. Per esempio: A 1000001 0 VRC L 1001100 1 B 1000010 0 E 1000101 1 R 1010010 1 O 1001111 1 LRC 0010111 0 VRC e LRC sono generati automaticamente dai circuiti di controllo del computer e non possono essere controllati quindi da software. CHEKSUM: i byte da trasmettere sono impacchettati (cioè suddivisi in gruppi) e per ogni pacchetto si procede a una somma modulo 256 (escludendo il carry sulla colonna dei bit più significativi), oppure a operare un EX-OR sui byte che ne fanno parte. Il risultato di questa somma è un byte che è anch’esso trasmesso. Il ricevitore si preoccuperà di

Page 212: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 212

ripetere l’operazione sul pacchetto ricevuto, confrontando il risultato con quello inviatogli dal trasmettitore. Per esempio: 1 0110001 2 0110010 M 1001101 A 1000001 R 1010010 Z 1011010 O 1001111 1 0110001 9 0110001 7 0110111 8 0111000 1001111 CRC (Cyclic Redundancy Check): il messaggio è interpretato come un unico numero binario, il principio è quello di dividere questo numero, che d’ora in avanti chiameremo P (x), per un polinomio G (x):

P (x) : G (x) = Q (x) + R (x) dove G (x) è detto polinomio generatore fissato da convenzioni internazionali, per esempio i polinomi generatori maggiormente diffusi sono: x8 + 1 = 100000001

x16 + x15 + x7 + 1 = 11000000010000001 x16 + x12 + x5 + 1 = 10001000000100001 x12 + x11 + x3 + x + 1 = 1100000001011

Il messaggio da trasmettere sarà ora costituito dal messaggio di partenza, cui è accodato il solo resto della divisione, in altre parole P (x) e R (x). Il ricevitore potrà verificare l’assenza di errori nel messaggio destinatogli, in questo modo: [P (x) - R (x)] : G (x) = Q (x) È possibile trattare una configurazione binaria come se fosse un polinomio in x semplicemente sostituendo agli uno la potenza di x corrispondente al peso del bit considerato e omettendo le potenze di x in corrispondenza dei bit a zero. Per esempio: P (x) = x10 + x5 = 10000100000 G (x) = x4 + 1 = 10001 trasmissione 10000100000 : 10001 = 1111010 + 110 ricezione 10000100000 - 110 = 100000011010 100000011010 : 10001 = 1111010 Nelle LAN il CRC è lungo quattro byte: x31

Proposta di lavoro N° 1 /* crc-16 is based on the polynomial x^16+x^15+x^2+1 crc-ccitt is based on the polynomial x^16+x^12+x^5+1 The prescription for determining the mask to use for a given polynomial is as follows: 1. Represent the polynomial by a 17-bit number 2. Assume that the most and least significant bits are 1 3. Place the right 16 bits into an integer 4. Bit reverse if serial LSB's are sent first Usage : crc2 [filename] */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define M16 0xA001 /* crc-16 mask */ #define MTT 0x1021 /* crc-ccitt mask */

Page 213: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 213

unsigned int updcrc(unsigned int crc,unsigned int mask,int c); unsigned int updcrcr(unsigned int crc,unsigned int mask, int c); void perr(char *s); char filename[100]; unsigned int crc16,crctt;int ch;unsigned long num;FILE *fp; int main(int argc,char **argv) { clrscr(); if(argc>2) perr("Usage: crc2 [filename]"); if(argc==2) strcpy(filename,argv[1]); else { printf("\nEnter filename: "); gets(filename);} if((fp=fopen(filename,"rb"))==NULL) perr("Can't open file"); num=0L; crc16=crctt=0; while ((ch=fgetc(fp))!=EOF) { num++;crc16=updcrcr(crc16,ch,M16);crctt=updcrc(crctt,ch,MTT);} fclose(fp);printf("\nNumber of bytes = %lu\nCRC16 = %04X\nCRCTT = %04X", num,crc16,crctt);getch(); return (0); } unsigned int updcrc(unsigned int crc,unsigned int mask,int c) { int i; c<<=8; for(i=0;i<8;i++) { if((crc ^ c) & 0x8000) crc=(crc<<1)^mask;else crc<<=1;c<<=1;} return crc; } unsigned int updcrcr(unsigned int crc,unsigned int mask, int c) { int i; for(i=0;i<8;i++) { if((crc ^ c) & 1) crc=(crc>>1)^mask;else crc>>=1;c>>=1;} return crc; } void perr(char *s) { printf("\n%s",s); exit(1);} /* Usage : crcfast [filename] */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define M16 0xA001 #define MTT 0x1021 unsigned int updcrc(unsigned int crc,int c); unsigned int updcrcr(unsigned int crc,int c); void perr(char *s); char filename[100]; unsigned int crc16,crctt;int ch;unsigned long num;FILE *fp; unsigned int crc16tab[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,

Page 214: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 214

0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 }; unsigned int crctttab[256] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 }; int main(int argc,char **argv) { clrscr(); if(argc>2) perr("Usage: crcfast [filename]"); if(argc==2) strcpy(filename,argv[1]); else { printf("\nEnter filename: "); gets(filename);} if((fp=fopen(filename,"rb"))==NULL) perr("Can't open file"); num=0L; crc16=crctt=0; while((ch=fgetc(fp))!=EOF) { num++;crc16=updcrcr(crc16,ch);crctt=updcrc(crctt,ch);} fclose(fp);printf("\nNumber of bytes = %lu\nCRC16 = %04X\nCRCTT = %04X", num,crc16,crctt);getch(); return (0); } unsigned int updcrc(unsigned int crc,int c) { int tmp; tmp=(crc>>8)^c;crc=(crc<<8)^crctttab[tmp]; return crc; } unsigned int updcrcr(unsigned int crc, int c) { int tmp; tmp=crc^c;crc=(crc>>8)^crc16tab[tmp & 0xff]; return crc; } void perr(char *s) { printf("\n%s",s); exit(1);} #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #define M16 0xA001

Page 215: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

SISTEMI um 215

#define MTT 0x1021 unsigned int updcrcr(unsigned int crc,unsigned int mask, int c); unsigned int updcrc(unsigned int crc,unsigned int mask, int c); void perr(char *s); int main(void) { int i,j; clrscr();printf("\n\t"); for(i=0;i<32;i++) { for(j=0;j<8;j++) printf("0x%04X, ",updcrcr(0,8*i+j,M16));printf("\n\t");} printf("\n\t"); for(i=0;i<32;i++) { for(j=0;j<8;j++) printf("0x%04X, ",updcrc(0,8*i+j,MTT));printf("\n\t");} getch(); return (0); } unsigned int updcrc(unsigned int crc,unsigned int mask, int c) { int i; c<<=8; for(i=0;i<8;i++) { if((crc ^ c) & 0x8000) crc=(crc<<1)^mask;else crc<<=1; c<<=1;} return crc; } unsigned int updcrcr(unsigned int crc,unsigned int mask, int c) { int i; for(i=0;i<8;i++) { if((crc ^ c) & 1) crc=(crc>>1)^mask;else crc>>=1;c>>=1;} return crc; } void perr(char *s) { printf("\n%s",s); exit(1);}

Page 216: ISTITUTO TECNICO INDUSTRIALE STATALE … di Sistemi 5R.pdf · Per parlare di reti di PC è necessario avere presente l’essenza delle reti locali ... Permette a terminali intelligenti

UBERTINI MASSIMO http://www.ubertini.it [email protected] Dip. Informatica Industriale I.T.I.S. "Giacomo Fauser" Via Ricci, 14 28100 Novara Italy tel. +39 0321482411 fax +39 0321482444 http://www.fauser.edu http://www.fauser.edu/fau/sistem.htm [email protected]