Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Corso Di Sistemista Di Rete
Corso Di Sistemista Di Rete
TIPOLOGIE DI COMPUTER
1. Desktop
I computer desktop sono i classici personal, che trovano posto sopra una
scrivania e che sono utilizzati nell’ordinario lavoro.Essi sono composti da
un'unità centrale, generalmente a forma di parallelepipedo, che contiene al suo
interno i dispositivi necessari al funzionamento del computer stesso.Ad essa
vengono collegate tutte le periferiche di sistema, fra cui monitor, tastiera,
mouse…Il desktop è il computer ideale per il quotidiano lavoro d’ufficio a
motivo delle dimensioni notevoli del monitor, la possibilità di utilizzare grandi
quantità di memoria e, grazie a numerosi connettori, risulta agevole collegarvi
numerose periferiche.
2. Notebook
Come dice il nome, questi computer hanno la stessa grandezza di un blocco
note: 21 centimetri per 30. Ma non la stessa funzione, infatti sono computer
personal a tutti gli effetti e sono in grado di eseguire tutti i programmi dei
computer desktop o portatili. Alcuni modelli sono privi del disk drive per
dischetti, e lo scambio di dati con un altro computer può essere effettuato
esclusivamente tramite cavo. Lo schermo è identico a quello dei portatili, ma
tutto il resto è di dimensioni ancora più ridotte. La tastiera è priva del
tastierino numerico: questo può essere attivato all’interno della stessa tastiera
tramite uno speciale tasto.
3. Workstation
Le workstation sono computer di uso individuale, dalle dimensioni e
dell’aspetto di un desktop o poco più grandi. Sono dotati di processori più
evoluti, di maggiore capacità di memoria e di archiviazione . Le workstation
sono adatte a svolgere compiti specializzati, spesso nel campo della grafica,
della progettazione, del disegno tecnico, dell’ingegneria. Si tratta di
applicazioni complesse, che richiedono una potenza ed una velocità che
sarebbero sproporzionate per il normale lavoro d’ufficio. Il costo di tali
macchine è naturalmente maggiore di quello dei Personal Computer.
4. Server
Questi computer, sono elaboratori molto potenti. Essi sono posti al centro di una rete di
computer, o messi insieme per condividere risorse e creare un cluster.
Possono svolgere compiti molto diversi a secondo dell’utilizzo per cui sono stati assegnati (web
server, printer server, controller di dominio).
Il loro hardware è fatto in modo che non debbano mai interrompere i loro servizi, i dischi sono
quasi sempre SCSI e in RAID, la memoria RAM può essere sostituita mentre la macchina è in
produzione.
Mail Server
Caratteristiche di un Mail Server
Funzione:
server specializzato per la gestione della posta elettronica. Può sfruttare vari protocolli fra cui
X-400,SMTP,POP3 etc. Contiene le mailbox degli utenti, le eventuali liste di distribuzione e
"newsgroup" dell'azienda o di utenti Internet. Attualmente la maggior parte dei server di posta
elettronica si basa su uno schema client-server in maniera che il carico di lavoro sia distribuito.
Caratteristiche:
Sono richieste alte prestazioni perchè la gestione della mail è in genere onerosa (possono
essere presenti collegamenti con Internet).
File Server
File server : la cassaforte delle informazioni
Funzione:
Un file server ha il compito di immagazzinare e gestire i dati della L.A.N. Su di esso viene
implementata una politica di accessi tale che sia garantita la riservatezza e la suddivisione
delle risorse in maniera logica (per gruppi di lavoro,livelli di responsabilità degli utenti etc.)
Una strategia di backup è indispensabile per mantenere la disponibilità dei dati in ogni
condizione.
Caratteristiche:
Di primaria importanza sono la velocità dei dischi, della scheda di rete e del processore.Anche
la quantità di memoria RAM deve essere adeguata.Ciascuno di questi elementi può essere il
"collo di bottiglia" che riduce le prestazioni del server. E' sconsigliato l'uso del "mirroring" per i
dischi che peggiora le prestazioni in scrittura.Non ha controindicazioni il "Disk Duplexing"
che,anzi,migliora le prestazioni in fase di lettura.
Print Server
Il metodo più veloce per accentrare la gestione delle stampanti.
Funzione:
un server che si occupa di gestire le stampanti collegate alla rete di computers. Può gestire le
code di stampa e gli accessi degli utenti alle stampanti così da centralizzare la gestione delle
periferiche di stampa. Con funzioni avanzate è possibile dare priorità più alta alle stampe di
alcuni utenti rispetto ad altri e velocizzare al massimo l'installazione e disinstallazione delle
stampanti. La gestione e l'utilizzo delle stampanti vengono sempre più spesso facilitati dall'uso
di interfacce html/java.
Caratteristiche:
Un print server non richiede hardware particolari.Può essere gestito anche su macchine
"datate".Unica attenzione richiesta è la disponibilità di spazio e memoria che deve essere
proporzionata alle code di lavori richiesti.
Web Server
Il necessario ad offrire contenuti su Internet.
WEB SERVER:
E' una macchina specializzata nel fornire contenuti agli utenti della rete Internet o della nostra
rete privata che cercano dati tramite un programma di "navigazione" (browswer). Importante
è la capacità dei software più recenti di fornire supporto A.S.P. (active server pages) così da
rendere le pagine "interattive". E' possibile anche a questo livello implementare dei criteri di
sicurezza per controllare gli accessi ai contenuti.
Caratteristiche:
La macchina deve fornire alte prestazioni e deve essere altamente afidabile.Nei casi in cui i
contenuti devono essere disponibili senza interruzioni è possibile pensare a soluzioni di
"clustering".
DHCP Server
Ovvero come assegnare indirizzi IP e impostazioni di rete in maniera dinamica.
Funzione:
il protocollo TCP/IP prevede la possibilità di fornire ai client di una rete un indirizzo IP in
maniera dinamica. Il server DHCP viene contattato dalle macchine dove l'assegnazione
dinamica di un indirizzo IP è prevista e fornisce, oltre a detto indirizzo, anche parametri quali
default Gateway,server DNS e altro. Un server DHCP dispone di uno "scope" di indirizzi (cioè di
una lista di indirizzi di una certa sottorete ritenuti "liberi") che può gestire in base a vari
parametri in maniera da ottenere il miglio risultato senza dover aumentare il numero di
sottoreti.
Caratteristiche:
Il server DHCP deve avere soprattutto una scheda di rete ad alte prestazione e cablaggio
adeguato a smaltire le richieste. E' importante anche la memoria mentre sono di minore
interesse la memoria e la velocità dei dischi.
DNS Server
Il server che vi permette di trovare i domini (e di farvi trovare)
Funzione:
Il server DNS è necessario per gestire il collegamento tra il nome della macchina (hostname)
ed il suo indirizzo IP. In genere viene configurato manualmente ma in Windows 2000
l'integrazione con le Active Directory permette di gestire dinamicamente le nuove macchine. Il
DNS funziona sul principio delle "zone" (divisioni logiche dei nomi degli host in gruppi). Per
risolvere nomi di domini e macchine che non abbiamo sul nostro server DNS si utilizzano le
"query" verso server esterni. Di conseguenza anche il nostro server DNS deve poter
comunicare alcuni dati con l'esterno.
Caratteristiche:
Nulla in paticolare da segnalare come requisiti.Se utilizate Windows 2000 ricordate le richieste
hardware di base del S.O.
Gateway Server
Il traduttore "universale" per le reti
Funzione:
E' una macchina impiegata nel tradurre i protocolli di comunicazione e permettere lo scambio
di dati fra sistemi diversi.La diversità può verificarsi a diversi livelli ma deve essere sempre
negli ultimi tre strati dello stack di protocolli O.S.I. Se la trasmissione dati avviene a livello
dell'hardware bisogna usare macchine come routers e bridges.
Caratteristiche:
Nulla da segnalare a livello di hardware.Spesso il servizio di gateway è un "pacchetto"
aggiuntivo al S.O. di base che viene acquistato separatamente
Proxy Server
In tanti su Internet senza rischi Internet
Abbiamo parlato in altre occasioni degli indirizzi IP su Internet. Vale la pena soffermarsi,
ora,sulla "navigazione".
Il mio indirizzo potrebbe essere non solo un punto di riferimento per gli altri ma anche un
punto di partenza per i miei utenti(come un indirizzo in una strada, che è un punto di partenza
oltre che di arrivo). L'alternativa all'uso dei miei indirizzi è pagare un "provider" che mi
permetterà di usare alcuni suoi indirizzi per andare "in navigazione". Sappiamo che,per
risparmiare,è interessante usare un numero limitato di indirizzi.E se volessi far navigare in
Rete duecento utenti senza utilizzare duecento indirizzi?
Ai problemi elencati (organizzare un punto di partenza "in proprio" e sfruttare al meglio i miei
indirizzi esistenti) risponde un software definito Proxy che,fra le sue funzioni,prevede la
possibilità di far navigare un elevato numero di computers nascosti sotto un limitato numero di
indirizzi. Insieme a questa funzione di base abbiamo altre possibilità: impostare dei filtri
(basati sull'indirizzo IP, sul protocollo richiesto o sulle autorizzazioni dell'utente), creare un
cache in cui conservare i dati relativi agli ultimi siti visitati così da accellerare la
navigazione,impostare dei percorsi preferenziali o bloccare l'accesso ad alcuni siti.
Benchè il ruolo di filtro sia in genere riservata ai Firewall si può scegliere (per ragioni
economiche o gestionali) di sfruttare le funzioni appena elencate per accentrare più lavori su
un singolo server. Per concludere una breve lista di software Proxy:
Microsoft Proxy Server 2.0
Allegro Surf
SOCKServ
VSOCKS Light
Wingate 3.0
Squid
A seconda del prevalere di una funzione sono state definite alcune tipologie RAID , numerate
da 0 a 5 . Attenzione che la numerazione serve per definire con numeri crescenti livelli
superiori di prestazione e/o sicurezza .
RAID 0
ha come finalità principale il miglioramento delle prestazioni , senza particolare riguardo alla
componente della sicurezza .
Dando una occhiata alla struttura interna di un disco , si puó avere una idea piú chiara di cosa
si intende ottenere con l'operazione detta striping (traducibile come "divisione a strisce") .
Se al sistema é collegato un solo disco , le testine che scorrono sui dischi possono essere
anche piú di una , ma sono mosse da un solo azionamento ; se devo recuperare il contenuto di
diverse tracce , poste su diversi piatti , posso accedere alle informazioni su una traccia solo
successivamente a quelle su una traccia diversa , in quanto le testine si muovono tutte
assieme .
Se , con qualche artificio , potessi far muovere le testine separatamente , potrei portare una
testina su una traccia e le altre su altre tracce diverse , contemporaneamente , prelevando cosí
piú dati "in parallelo" .
La cosa , non possibile su un solo drive , lo diventa se viene implementato il RAID con la
modalità striping .
Poiché ogni applicazione ha le sue necessitá , diverse per quanto riguarda le dimensioni dei
files , il blocco minimo andrà dimensionato in modo adeguato ; indicativamente delle
dimensioni della piú piccola richiesta del software .
RAID 0 non é definito nelle specifiche iniziali della Berkeley University, ma é diventato di uso
comune per le sue qualitá.
RAID 0 é ideale per quelle applicazioni che richiedono un intenso flusso di dati , ad esempio
video , grafica in movimento , TV e audio digitale , basate principalmente su files sequenziali di
grandi dimensioni che devono essere trasferiti in tempi massimi definiti .
Anche applicazioni che richiedono un accesso intensivo ad un gran numero di dati in sequenze
casuali , come data base o nel caso di file server e web server , ricava benefici anche
consistenti dalla struttura RAID 0 .Con una opportuna pianificazione , si puó portare il sistema
a movimentare file delle dimensioni di un blocco ; cosí , ad esempio , la richiesta di due file da
32K (grandi , quindi , un blocco) sará processata in modo virtualmente contemporaneo .
Ovvio che , disponendo di piú dischi , piú richieste di blocchi potranno essere avanzate nello
stesso momento , con evidenti vantaggi .
Se si puó ascrivere un limite a RAID 0 , é quello di implementare sistemi per aumentare l'
affidabilità dell' array di dischi ; questa viene lasciata , e non é superiore , alla qualitá dei
componenti installati . Il crash di uno dei dischi del sistema porta alla perdita di tutti i dati del
sistema .
Caratteristica Drive
evel Descrizione Uso
Prestazione Sicurezza Min. Max.
Aumento prestazioni ,
rispetto al singolo disco ,
con il metodo di striping .
AID La prestazione é massima Sistemi non critici che richiedon
si no 2 8/16
con files di garndi alte prestazioni
dimensioni .
Non c' é aumento della
sicurezza .
RAID1
Mentre RAID 0 ha come finalità principale il miglioramento delle prestazioni , RAID 1 ha come
finalità quella della sicurezza dei dati .
Il mirroring dei dischi, possibile anche via software (RAID software) aumenta grandemente la
sicurezza del sistema : i dati sono recuperabili senza problema se una delle unitá si guasta,
anche se si tratta di quella di boot. Anche le prestazioni, rispetto al singolo disco, sono
incrementate, sopratutto durante i cicli di lettura, dove viene sfruttata la capacitá del
protocollo SCSI di gestire catene di comandi; inoltre, se il controller é dotato di cache, questa
contribuisce al miglioramento delle prestazioni.
RAID 1 , per la sua struttura , richiede due dischi di cui sostanzialmente uno solo é quello
disponibile ; non é necessario che i due dischi dell'array siano identici , ma occorre ovviamente
che il mirror abbia uguale o maggiore capacita del primario; é possibile usare dischi differenti,
basta che abbiano capacitá analoghe.
Ovviamente la protezione é intesa a fronte del guasto di una unitá , o di uno dei controller ,
ma non protegge dalla perdita di dati per errori dell' operatore (che li ha cancellati) o da
aggressioni da virus o danni complessivi al sistema . RAID 1 si "limita" a mantenere una copia
a specchio del disco primario , indipendentemente da quello che esso contiene .
Quindi , una completa politica di sicurezza non puó prescindere dalla presenza di un sistema di
backup e dal suo uso costante , soprattutto se i dati hanno una grande importanza .
Per Drive
Level Descrizione Impiego
Prestazione Sicurezza Min. Max.
Aumento della
sicurezza con il sistema
Quando la sicurezza é
RAID del mirroring . I dati
no si il fattore piú 2 2
1 sono duplicati
importante .
intrgralmente
(ridondanza completa)
RAID5
RAID 5 combina la prestazione dei blocchi interlacciati con striping, tipica del RAID 0 con il
sistema di ricostruzione a partire da un dato di paritá tipico di RAID 3, senza richiedere il disco
dedicato a questo.
Il "consumo"di spazio sui dischi per la paritá é minimo e non influisce in modo considerevole
sulla capacitá dell'insieme , anche se bisogna tenerne conto nel dimensionamento dell'array .
Questa tecnica consente accessi multipli concorrenti sia in scrittura che in lettura, consentendo
prestazioni elevate.
RAID 5 lavora in modo ottimale anche nella situazione in cui i dati sono costituiti da una
grande quantitá di piccoli blocchi e si presta bene per sistemi operativi multitask e multiuser .
Come RAID 4 , RAID 5 é adatto per sistemi di media o grande capacitá , dove sono richieste
prestazioni e sicurezza elevate; per contro, RAID 5 elimina il collo di bottiglia della gestione di
paritá di RAID 4 ed é per questo universalmente preferito.
La cache generalmente presente sul controller consente di neutralizzare la necessaria perdita
di tempo per la scrittura dei dati di controllo, cosicché le prestazioni di RAID 5 sono tra le piú
elevate.
Anche questo array consente la rimozione di unitá a sistema acceso (hot swap). Inoltre,
attraverso le funzioni estese dei controller, é possibile installare unitá di riserva (spare) che
entreranno in servizio automaticamente in caso di guasto ad uno degli altri dischi.
Si ricorda che , comunque , una completa politica di sicurezza non puó prescindere dalla
presenza di un sistema di backup e dal suo uso costante , soprattutto se i dati hanno una
grande importanza .
Per Drive
Level Descrizione Impiego
Prestazione Sicurezza Min. Max.
I dati in striping e la
paritá sono suddivisi Sistemi multi user e
su diversi dischi per multi tasking in cui
RAID 7/
si si avere prestazioni sicurezza e prestazioni 3
5 15
anche nel caso di sono ugualmente
sistemi multitask e importanti .
multiuser
5. Mainframe
I mainframe sono su un gradino ancora superiore. Questi elaboratori possono
essere utilizzati da moltissimi terminali, anche a distanza tramite collegamenti
telematici. Possono conservare numerosi archivi di dati e mandare in
esecuzione molti programmi contemporaneamente. Sono utilizzati nell’ambito
di grosse aziende per la gestione industriale vera e propria od in organismi
statali per l’elaborazione di grossi archivi di dati sempre in evoluzione.
Costituiscono il nucleo centrale dei servizi informativi delle banche, degli istituti
finanziari e delle borse. Sono anche impiegati dai servizi telematici pubblici e
privati perché permettono il collegamento contemporaneo di molti terminali o
computer e l’esecuzione veloce delle rispettive transazioni.
IL SISTEMA BINARIO
IL MICROPROCESSORE
La CPU e il Microprocessore
La CPU (Central Processing Unit) è senza dubbio il componente più importante
e caratterizzante di un computer: è il vero e proprio cervello del computer ed
esegue milioni di operazioni per secondo. Il suo compito è quello di occuparsi
di tutte le operazioni richieste dalle applicazioni e dal sistema operativo.
Spesso i termini CPU e microprocessore sono utilizzati come sinonimi: più
precisamente però chiameremo microprocessore (o
semplicemente processore) il circuito integrato
(chip), realizzato in silicio, che svolge le operazioni di
elaborazione dei dati, mentre con CPU indicheremo
l'insieme di microprocessore e memoria centrale (o
d'uso).
Il microprocessore è un circuito integrato installato su un minuscolo pezzo di
silicio. Contiene milioni di transistor, che sono collegati tra loro mediante tracce
estremamente fini di alluminio. I transistor consentono di memorizzare e
manipolare i dati in modo che il microprocessore possa eseguire una grande
varietà di funzioni utili. La storia del processore risale al 1971, anno in cui una
piccola e sconosciuta società mise assieme dei transistor per formare un'unità
di elaborazione centrale che sarebbe stata battezzata Intel 4004. Da allora
Intel ha continuato a siglare i propri processori con i numeri, fino a quello che
avrebbe dovuto chiamarsi 80586, ma che invece, per ragioni commerciali (è un
marchio registrato), fu denominato Pentium. Successivamente sono nati il
Pentium II e l'attuale Pentium III. Per quanto riguarda le estensioni MMX (Multi
Media Extensions) basti ricordare che identificano processori potenziati con un
set di istruzioni aggiuntive che li rendono particolarmente adatti ad eseguire
applicazioni multimediali. Per quanto riguarda il suffisso Pro, esso si fa
riferimento ai processori con la cache di secondo livello integrata e non sulla
scheda madre come era stato fatto fino ad allora. Negli ultimi anni hanno fatto
la loro comparsa altre società le quali offrono processori altrettanto validi con
rapporti qualità-prezzo particolarmente vantaggiosi (AMD, Cyrix…)
Il microprocessore risulta composto da
un'unità di controllo (CU= Control Unit) e da
un'unità aritmetico-logica (ALU= Arithmetic
Logical Unit). L'unità di controllo sovrintende
al funzionamento della CPU stessa e
gestisce una a una, in un corretto ordine, le
istruzioni che essa deve svolgere. Essa
serve da coordinamento e controllo
sull'esecuzione dei programmi e sulle
periferiche, impartendo i comandi che
servono ad ottenere ciò che viene richiesto
tramite il software. L'ALU invece esegue le
operazioni logiche ed aritmetiche contenute
nelle istruzioni che compongono i
programmi ottenendo il risultato che viene
poi memorizzato in una determinata cella di
memoria.
I dati vengono trasferiti da e verso il
processore mediante appositi "canali", detti
BUS. Naturalmente quanto maggiore è la velocità di trasferimento dei dati
attraverso tali canali, tanto migliori saranno le prestazioni generali del
computer. I computer più recenti utilizzano una velocità di BUS pari a 266 Mhz.
LA MEMORIA RAM
La RAM
La memoria RAM (Random Access Memory = memoria ad accesso casuale) è
quella componente del PC dove vengono temporaneamente memorizzati i dati
che devono essere utilizzati dalle applicazioni in uso, in modo che essi siano
immediatamente disponibili nel momento in cui venissero richiesti. Il
processore infatti legge i dati memorizzati sull'hard disk e li carica
temporaneamente nella memoria RAM, la quale è molto più veloce del disco
fisso. Pertanto maggiore le prestazioni generali del computer dipendono dalla
sua quantità: infatti maggiore è la memoria RAM disponibile, minore sarà il
numero delle volte che il processore dovrà leggere i dati dall'hard disk,
operazione che rallenta l'elaborazione in quanto i tempi di accesso alla RAM
sono in nanosecondi, quelli del disco fisso in millisecondi! La quantità di RAM
attualmente necessaria per un buon funzionamento di un computer è di circa
64/128 Mb. Essa è detta "ad accesso casuale" in quanto il processore è in
grado di leggere il contenuto della memoria in modo diretto,
indipendentemente dal fatto che esso sia collocato all'inizio o alla fine della
stessa. Tale memoria è detta anche volatile in quanto allo spegnimento del
computer i dati in essa contenuti vengono cancellati, al contrario di quanto
invece accade con le memorie di massa. La RAM è costituita da piccoli chip
installati su moduli chiamati Simm (Single In-line Memory Module) o sui Dimm
(Dual In-line Memory Module).
GUIDA ALL’HARDWARE Pag. 14 di 30
Questi moduli sono a loro volta inseriti nella scheda madre. I tempi di accesso
pe rquesto tipo di memoria sono di 60-70 nanosecondi per i moduli Simm e di
10-12 nanosecondi per quelli Dimm. Per quanto riguarda invece la memoria
con controllo di parità (o di tipo parity), si fa riferimento a quel particolare tipo
di memoria che controlla che i dati vengano o meno corrotti durante la loro
elaborazione e, se questo accade, a differenza della memoria non parity
segnala l'errore. Il controllo sui dati viene effettuato utilizzando un bit di
controllo, detto parity bit, ed è a motivo della sua presenza che ogni byte che
proviene dalla memoria di tipo parity ha 9 bit e non 8, in quanto il bit
aggiuntivo è quello di controllo dell'integrità dei dati. La memoria parity
segnala la presenza di un errore ma non fa nulla per correggerlo; per questo
motivo è stata introdotta la memoria ECC (Error Correcting Code) che
salvaguardia l'integrità dei dati e corregge eventuali errori: per tale
caratteristica la memoria ECC viene utilizzata per quelle applicazioni dove la
salvaguardia dei dati è di essenziale importanza, quali ad esempio i server.
FUNZIONMENTO DELLA MEMORIA RAM
ROM e CACHE
La ROM
La Cache
A partire dal 386 ci si accorse che le prestazioni della CPU erano rallentate dai
lunghi tempi di accesso alla memoria RAM. Per ovviare a questo problema si
introdusse una memoria, detta cache, in posizione intermedia fra la CPU e la
stessa RAM, avente lo scopo di contenere i dati utilizzati più spesso, in modo
da velocizzare le operazioni di calcolo. Tale memoria è generalmente molto
veloce e la si trova in quantità ridotte a causa dell'elevato costo. I computer
più recenti presentano due tipi cache: quella di primo livello (L1, fino a 64 Kb)
integrata processore stesso e quella di secondo livello, posta sulla scheda
madre (L2, in genere 256-1024 Kb). La cache L1 essendo integrata nel
microprocessore è accessibile in modo quasi istantaneo e risulta quindi la più
veloce. La cache L2 (anch'essa piuttosto costosa) risulta 4 o 5 volte più lenta
della cache L1 mentre la RAM lo è addirittura 20 o 30 volte.
IL DISCO FISSO
Detto anche disco rigido o hard disk (HD), è il dispositivo di memoria di massa
in cui vengono registrate in modo duraturo e non volatile i dati in attesa di
elaborazione, le istruzioni necessarie nonché tutte le informazioni elaborate dal
processore. Il primo disco fisso lo troviamo nel 1957 in una
macchina della IBM chiamata RAMAC, che per l'epoca
rappresentava il massimo della tecnologia. Era composto da
50 piatti da 60 cm l'uno e riusciva a registrare un totale di
5.000.000 di caratteri. Il costo era di $ 35.000 di allora. Nel
1979, Seagate, attualmente una delle più grandi produttrici
di dischi fissi, introduce il primo disco fisso per
microcomputer: aveva una capacità di 5 Mb, dieci volte maggiore di quella del
RAMAC, ma con dimensioni decisamente ridotte. I primi modelli di personal
computer generalmente non erano dotati di disco fisso, bensì di lettori floppy,
più pratici ma soprattutto più convenienti. Solo intorno al 1983-84 il disco fisso
divenne l'unità di memoria di massa preferita. Nonostante ciò, un corso di
informatica datato 1989, così recitava: "Attualmente in commercio esistono
dischi rigidi da 40 milioni di byte. Certamente l'uso di
un hard disk non è limitato ad un uso hobbystico, ma
piuttosto ad un uso professionale" (PCFacile, Gruppo
Editoriale Jackson, Milano, 1989, pag. 85).
Attualmente lo standard è rappresentato da dischi
fissi con una capacità di circa 30 Gb, anche se non
mancano dischi fissi di dimensioni decisamente
maggiori. Per comprendere la quantità di dati che un
tale supporto è in grado di contenere, basti pensare
che in 6,2 Gb di spazio sono memorizzabili quasi 2.000.000 di pagine
dattiloscritte.
Inoltre essi possono essere del tipo rimovibile, cioè possono essere estratti e
sostituiti (spesso usati nelle Aziende per spostare grandi quantità di dati). In
commercio esistono due tipi di dischi fissi: gli hard disk EIDE (Enhanced
Integrated Drive Electronics) e quelli SCSI (Small Computer Systems
Interface). Fino a qualche tempo fa i dischi fissi del secondo tipo erano i
preferiti per applicazioni di uso professionale (ad esempio server di rete) grazie
alla maggiore affidabilità e velocità di accesso ai dati. Attualmente però i dischi
fissi del tipo EIDE hanno raggiunto prestazioni almeno pari a quelle degli SCSI,
pur avendo costi decisamente minori.
Fisicamente essi sono delle scatolette, chiuse ermeticamente, che contengono
al loro interno dei dischi di alluminio, detti "piatti," fatti ruotare da un motore
(hanno generalmente una velocità di rotazione di 4.500-7.200 o più giri per
minuto) e sormontati da testine sorrette da particolari braccetti che ne
permettono lo spostamento sul disco.
GUIDA ALL’HARDWARE Pag. 18 di 30
Sulla sommità delle testine sono montati dei magneti che leggono i dati
memorizzati sui dischi, proprio come se fosse la testina di un giradischi (anche
se qui non vi è nessun contatto fisico fra le parti).
I dati vengono organizzati fisicamente sulla superficie di ogni disco in porzioni
chiamati cilindri. A loro volta ogni cilindro viene suddiviso in tracce contenenti
un ulteriore sottolivello organizzativo chiamato settore. Per diminuire i tempi di
accesso (transfer rate) ai dati conservati nell'hard disk, è stato introdotto il
buffer, una piccola memoria interna all'hard disk che memorizza alcuni dati
letti dalla testina ma non ancora inviati alla CPU per essere elaborati.
Prima di poter essere usato un disco fisso deve essere formattato, cioè
preparato per accogliere i dati da memorizzare, mediante apposite operazioni
gestite dal sistema operativo. Ogni sistema operativo si caratterizza per un
particolare file system, cioè l'insieme di norme che regolano il funzionamento
dei nomi dei file, la loro memorizzazione, il loro recupero, i criteri utilizzati per
gestire lo spazio su disco… Il file system è diverso in base al tipo di sistema
operativo che viene utilizzato: FAT 16bit per il Dos fino alla versione 7.0 e per
Windows 95 (prime versioni); FAT 32 per Windows 95 (OSR2); NTFS per
Windows NT; HPFS per OS/2.
Per memorizzare un file su disco, il sistema operativo utilizza un gruppo di
settori chiamati cluster. Ogni singolo cluster utilizzato può essere collocato in
una parte qualsiasi del disco e i segmenti sequenziali di un file non vengono
memorizzati necessariamente in cluster fisicamente adiacenti. Per questo
motivo è bene effettuare spesso una deframmentazione del disco. Se un disco
è frammentato, la testina di lettura e scrittura del disco dovrà effettuare diversi
spostamenti per leggere i diversi segmenti di file e questo comporterà un
rallentamento del PC. Inoltre la dimensione dei cluster è fondamentale per una
buona gestione dello spazio su disco: infatti ogni file occupa almeno un cluster,
anche se le sue dimensioni sono minori. Inoltre un cluster può memorizzare
solo un file (altrimenti due o più file si troverebbero ad occupare la stessa
porzione di memoria).
Da questo si può capire che quanto è più grande la dimensione dei cluster,
tanto maggiore sarà lo spazio sprecato sul disco. Infatti se noi lavoriamo con
cluster da 32 Kb l'uno (FAT16), salvando un file da 5 Kb, sprechiamo ben 27
Kb di spazio: infatti il nostro file occupa 32 Kb (l'intero cluster) anche se in
realtà le sue dimensioni sono di gran lunga minori. Per ovviare a tale problema
è stata introdotta a partire da Windows 95 B (OSR2) la FAT32, così chiamato
perché, nella tabella di allocazione dei file (File Allocation Table), richiede 4
byte per ogni file, quindi 32 bit. La FAT16 invece richiedeva solo due byte per
file (quindi 16 bit). Con tale file system la dimensione dei singoli cluster è stata
ridotta a 4 Kb (anziché i precedenti 32). In tal modo il nostro file da 5 Kb
occuperebbe due cluster da 4 Kb l'uno, sprecando però solo 3 Kb (anziché 27).
Inoltre con la FAT32 è possibile gestire dischi fissi grandi fino a 2.047 Gb (con
la FAT16 si arrivava al massimo a 2 Gb).
FLOPPY DISK
Come è già stato accennato, i primi personal computer non erano dotati di
hard disk, bensì di lettori floppy, cioè dispositivi di memorizzazione dei dati
aventi una limitata capacità.
Fino a qualche anno fa essi erano ancora i supporti più usati per la
distribuzione di applicazioni e per il trasferimento dei dati: per un programma
spesso bastava un semplice floppy, magari da 720 Kb.
Col passare del tempo e con l'aumentare delle dimensioni dei programmi (è
sempre più frequente trovare applicazioni di decine di Mb) essi hanno perso di
importanza, anche se rimangono gli strumenti più usati per l'archiviazione e il
trasferimento di file di limitate dimensioni.
L'unità di misura dei dischetti è il pollice, espressa mediante le virgolette ( " ).
I primi floppy disk misuravano 5,25" e avevano una capacità di 360/720 Kb,
mentre i dischetti che usiamo ancora oggi misurano 3,5" e hanno una capacità
pari a 1,44 Mb.
Nella parte inferiore dei dischetti è possibile osservare due fori: quello
richiudibile da una finestrella scorrevole, presente in tutti i tipi di disco, ha una
funzione di protezione del contenuto del floppy disk: quando la finestrella è
aperta, la protezione è attivata e sul disco non vi si può scrivere, ma soltanto
leggere i dati; se il foro è chiuso possiamo sia leggere i dati che modificarli,
inserire nuovi dati, ecc. In generale si consiglia di attivare la protezione per
quei dischi che contengono informazioni importanti che non si può rischiare di
perdere accidentalmente, come per esempio le copie di sicurezza di file che si
desidera conservare. L'altro foro, presente solo dei floppy HD e ED, ha la
funzione di permettere all'elaboratore di distinguere i floppy disk da 720K da
quelli di 1,44MB di 2,88MB attraverso un sensore ottico.
E' curioso notare che, nonostante i floppy da 3,5" siano diffusi da almeno dieci
anni, la loro evoluzione sembra essersi arrestata: mentre tutte le altre
componenti del PC hanno subito modifiche e migliorie radicali, questi dischetti
sono rimasti praticamente invariati, anche se sono stati sperimentati, ma con
scarso successo (dovuto anche all'elevato costo), floppy drive con capacità
superiori ai 250 Mb, come per esempio i dischi Zip della Iomega.
CD ROM
Al contrario del disco fisso, del floppy e del nastro, che sono magnetici, il CD
(Compact Disk) è un supporto ottico: i vantaggi sono una maggior resistenza
nel tempo e la capacità di immagazzinare grandi quantità di dati.
I dati sono memorizzati sul CD in un'unica spirale (come nei vecchi dischi in
vinile) partendo dal centro e spostandosi verso l'esterno.
Ma che cosa succede quando il nostro CD entra nel lettore?
Detto in estrema sintesi, una "testina" (detta piu' tecnicamente pickup)
contenente il laser viene spostata, per mezzo di un motorino, dall'interno
all'esterno della superficie del disco, accedendo alle diverse parti del supporto
durante la rotazione.
Una serie di specchi e di lenti accumula e mette a fuoco la luce riflessa dalla
superficie del disco e la invia verso un fotorilevatore. Il fotorilevatore trasforma
l'energia della luce in energia elettrica.
La potenza del segnale dipende direttamente dalla quantità di luce riflessa dal
disco.
Si possono avere tre tipi di CD:
- CD-ROM: dischi di cui è possibile solo la lettura dei dati archiviati ma non la
loro modifica
- CD-R: dischi su cui è possibile memorizzare, una sola volta, fino a 730-800
Mb di dati.
- CD-RW: dischi riscrivibili fino a 1000 volte
Naturalmente per utilizzare i CD-R e i CD-RW è necessario disporre di un
masterizzatore, cioè un'unità in grado di memorizzare i dati su tali supporti.
La caratteristica di un lettore CD è la velocità con la quale riesce a leggere e
trasmettere i dati (Transfer Rate). Dalla velocità singola, detta 1X e pari a circa
150 Kb al secondo, usata oggi solo nella lettura di CD Audio, si è giunti
all'attuale velocità di 50X: i dati possono essere letti e trasferiti, almeno
teoricamente, ad una velocità 50 volte superiore a quella del primo lettore CD.
Le tecnologie utilizzate dai lettori di CD sono due: CAV (Costant Angular
Velocity) e CLV (Costant Linear Velocity). Col termine CAV si indica che la
lettura dei dati viene effettuata ad una velocità costante, sia che il laser si trovi
nella traccia più interna del CD, sia che si trovi in quella più esterna. Ciò
comporta quindi che, se i dati si trovano disposti nelle tracce più interne, essi
verranno letti più lentamente rispetto ai dati collocati in quelle più esterne
(questo perché nella parte esterna del CD il laser riesce a leggere una quantità
maggiore di dati considerando un identico intervallo di tempo). Un lettore che
adotta la CLV invece adegua la velocità del motore, rallentandolo o
accelerandolo, a seconda della posizione del laser (all'interno o all'esterno del
CD).
Dovendo prendere in considerazione l'acquisto di un lettore CD, sarebbe meglio
prendere in considerazione fattori come il tempo di accesso (espresso in
millisecondi, ms), che misura il tempo necessario affinché il lettore possa
GUIDA ALL’HARDWARE Pag. 21 di 30
accedere ad un'informazione (deve essere il più basso possibile), e la velocità
di trasferimento dei dati, espressa in Mb per secondo (che dev'essere la più
alta possibile).
Se la tendenza attuale verrà confermata, entro poco tempo i comuni CD
verranno sostituiti dai nuovi DVD (Digital Versatil Disk) in grado di
memorizzare dati fino a 9 gigabyte (contro i 650-800 Mb dei normali CD)
garantendo una piena compatibilità in lettura con i maggiori dispositivi di
archiviazione ottica.
I Modem
Il modem (abbreviazione di modulatore/demodulatore) è una periferica sia di
Input sia di Output. Esso è infatti quel dispositivo utilizzato per trasmettere
ricevere informazioni (digitali) tramite una linea telefonica (analogica): il
modem ha il compito di convertire l'informazione analogica in digitale e
viceversa.
Per fare ciò utilizza una linea telefonica nello stesso modo in cui una persona fa
una normale chiamata: alza il telefono, quindi compone il numero e trasmette
l'informazione. Essendo la comunicazione del tutto simile ad una chiamata
telefonica, ne ha anche lo stesso costo.
Ne esistono due versioni: interno ed esterno. Il vantaggio di averlo esterno è
che non si occupa uno slot di espansione (cosa non indifferente se sono
numerose le periferiche collegate al computer)
e che è possibile monitorare lo stato della
connessione mediante i led luminosi presenti
sul fronte del modem stesso. Il modem interno,
d'altra parte, offre il vantaggio di non
ingombrare ulteriormente la scrivania e di
essere leggermente più conveniente.
Questo prezioso elemento che consente i collegamenti a Internet, servizi
online, banche dati e BBS, ha subito negli ultimi anni straordinari incrementi di
prestazioni tanto da arrivare a velocità di 640 Kbps (640.000 bit per secondo,
con l'ADSL) mentre nel 1995 si viaggiava ancora ad una velocità di 14.400
GUIDA ALL’HARDWARE Pag. 30 di 30
Kbps. Vale la pena precisare, comunque, che tale velocità è raggiungibile solo
nella ricezione dei dati mentre per quanto riguarda l'invio, che viene utilizzato
dall'utente per impartire comandi e richieste alla rete, garantisce un'ampiezza
di banda fino a 64 Kbps. Pertanto saremo in grado di riceve dati a 640 Kbps
ma li invieremo solo a 128 Kbps. Lo standard ritenuto per il momento ufficiale
è il V90, che garantisce la piena compatibilità con i precedenti K56flex e X2.
Inoltre la maggior parte dei modem attualmente disponibili è del tipo
modem/fax, con funzioni cioè di ricezione/invio fax e di segreteria telefonica.
Sistema Operativo
risorse software::
Associando a questi elementi minimali altri dispositivi HW e Sw, i clienti della rete possono
condividere archivi, unità periferiche e altri molteplici servizi.
Le reti possono avere dimensioni differenti ed è possibile ospitarle in sedi singole, in edifici
attigui fra loro (campus) oppure dislocarle in ambito globale (dal singolo quartiere a tutto il
pianeta).
Fra le diverse tecnologie di rete le più diffuse, attualmente, sono Ethernet e Fast Ethernet. Le
tecnologie Ethernet e Fast Ethernet sono abbastanza simili e la differenza maggiore è
rappresentata dalla velocità con cui trasferiscono le informazioni. Ethernet funziona a 10
Megabit per secondo (Mbps) e Fast Ethernet a 100 Megabit per secondo.
RETI E DIMENSIONI
Il cavo doppino telefonico è un tipo di supporto utilizzato in molte topologie di rete. Il doppino
telefonico fu sviluppato in origine ad uso delle linee telefoniche, classificato come CAT 1 UTP
(unshielded twisted pair). Questo tipo di cavo consiste di in due coppie isolate di fili di rame,
ritorte l’una sull’altra. La torsione dei fili garantisce un grado di protezione dalla diafonia
(crosstalk).
Il cavo STP condivide molti vantaggi e svantaggi dell'Utp. STP offre una grande protezione da
tutti i tipi di interferenze esterne, ma è più caro e difficile da installare rispetto ad UTP.
Principali caratteristiche
Lunghezza massima del cavo senza ripetitore - 100 metri (feet 382)
Cavo STP
Un nuovo incrocio di UTP con il tradizionale STP è conosciuto come ScTP conosciuto anche
come FTP. Sctp è essenzialmente un UTP avvolto in una lamina metallica schermata o
"screen". Di solito è un cavo da 100 o 120 Ohm. I materiali metallici schermati in STP e ScTP
hanno bisogno di essere messi a terra entrambi. Se impropriamente collegati a massa, essi
diventano suscettibili ai principali problemi di rumore.
UTP (Unshielded twisted-pair cable)
UTP (doppino telefonico non schermato) consiste in due coppie isolate di fili di rame ritorte
l’una sull’altra e avvolti in una guaina di plastica.
I doppini telefonici non schermati presentano numerevoli vantaggi. Sono facili da installare e
costano poco rispetto a tutti gli altri “media”. Lo svantaggio è che i doppini sono sensibili al
rumore elettrico e alle interferenze.
Cavo UTP
Principali Caratteristiche
Lunghezza massima del cavo senza ripetitore - 100 metri (feet 382)
Cavo Coassiale
Il cavo coassiale consiste in un filo centrale conduttore di rame, che è più grosso dei fili del
doppino telefonico consentendo velocità di trasmissione dati maggiore su distanze più lunghe.
Il conduttore centrale è ricoperto da uno strato di materiale plastico isolante sotto forma di
schiuma che a sua volta è circondato da un foglio di alluminio. Il conduttore non serve a
trasferire dati ma fornisce una messa a terra elettrica isolando il conduttore centrale dalle
interferenze. Il cavo coassiale può trasmettere dati a 10 Mbps, per distanze massime che
vanno da 185 a 500 metri. I due principali tipi di cavi coassiali utilizzati nelle reti locali sono il
Thin Ethernet e il Thick Ethernet.
E’ il supporto coassiale più utilizzato nelle reti di computer per connettere ciascun Pc
direttamente agli altri sulla Lan, per mezzo di connettori BNC (British Naval Connectors) e
terminatori da 50 ohm. Il connettore BNC a T viene applicato alla scheda di rete per
permettere l’ interfacciamento con il cavo coassiale.
Connettore BNC
Principali caratteristiche
Velocità - 10 Mbps
Vantaggi - economico
Più spesso e costoso rispetto al Thinnet. Si serve di transceiver esterni AUI connessi a ciascuna
NIC per mezzo di un “vampire tap” che fora la guaina del cavo per accedere al filo.
Principali caratteristiche
Velocità - 10 Mbps
Oltre alla dimensione e alla lunghezza supportata esiste un’ altra differenza sostanziale tra il
cavo Thin ed il cavo Thick. Il cavo Thicknet infatti utilizza dei transceiver ( a tutti gli effetti l’
elemento che effettua la trasmissione e la ricezione dei dati ) esterni AUI connessi alla rete
attraverso un vampire tap (rubinetto) che fora la guaina del cavo per accedere al filo di rame.
Lo stesso transceiver è poi connesso con un cavo DB-15 ( 15 pin ) alla scheda di rete. Essendo
il più costoso dei due ed avendo maggiore supporto in lunghezza, il cavo thicknet è spesso
utilizzato in dorsali di collegamento di reti thinnet. Una dorsale è un collegamento ad alta
velocità che ha il compito di interconnettere più reti tra loro.
“Transceiver per cavo ThickNet con Vampire Tap collegato al conduttore interno”
Tabella Riassuntiva
Il cavo in fibre ottiche garantisce velocità di trasmissione dati superiori sulle lunghe distanze.
La garanzia di questo supporto è dato anche dal fatto che è immune alle interferenze ed alle
intercettazioni (EMI o RFI). La struttura di un cavo in fibra ottica è costituita da un conduttore
centrale in vetro sottilissimo e purissimo con una guaina protettiva esterna. I dati vengono
inviati nel cavo attraverso un trasmettitore laser o LED che manda gli impulsi luminosi. Dall’
altra parte c’è un corrispondente fotodiodo ricevitore che ha il compito di ricevere gli impulsi
luminosi e convertirli in segnali elettrici.
Fibra Ottica
Principali caratteristiche
Tipi di rete
Alcune reti sono connesse direttamente. Tutti gli host condividono il livello 1.
• Ambiente di “media” condiviso: avviene quando più host hanno accesso allo stesso
mezzo di comunicazione.
• Ambiente di “media” condiviso esteso: i dispositivi possono estendere l’ambiente
realizzando accesso multiplo a più utenti.
• Ambiente di rete punto a punto: modello ampiamente utilizzato in connessioni di rete
dial-up. E’ un ambiente di rete condiviso in cui un unico dispositivo è connesso ad un
altro mediante collegamento, come l’ISP e la sua linea telefonica.
I dispositivi di rete al più alto livello e/o alcune distanze geografiche comunicano attraverso
due host. Esistono due tipi:
• circuit-switched: rete connessa indirettamente nel quale gli attuali circuiti elettrici
vengono mantenuti per tutta la durata della comunicazione. L’attuale sistema telefonico
è ancora in parte circuit-switched sebbene in molti paesi ci si stia concentrando in
maniera minore all’utilizzo delle tecnologie circuit-switched.
• packet-switched: l’origine trasmette i messaggi in pacchetti. Ogni pacchetto contiene
abbastanza informazioni per essere instradato alla propria destinazione. Il vantaggio è
che molti host possono condividere lo stesso collegamento; lo svantaggio è che può
avvenire un conflitto.
Collisioni e domini di collisioni
La collisione è una condizione che si verifica sulle reti Ethernet quando due nodi tentano di
trasmettere allo stesso momento.
Ethernet permette solamente ad un pacchetto dati di accedere al cavo uno alla volta. Se più di
un nodo tenta di trasmettere allo stesso momento avviene una collisione e i dati di ogni
dispositivo ne risentono.
Quando avviene una collisione i pacchetti spediti vengono distrutti bit dopo bit !!!!!
Hub e Ripetitore
Gli Hub, e i repeater, sono fondamentalmente la stessa cosa. Entrambi sono apparati che
lavorano a livello 1 del modello OSI. Diversamente dagli switch e dai router, gli hub non
leggono la trama (frame) ma si assicurano che essa venga inoltrata sulle porte collegate. Va
ricordato che i repeater hanno una porta di entrata e una di uscita mentre gli hub sono
multiporta.
I segnali man mano che procedono lungo il cavo degradano e risultano distorti a causa di un
processo definito “attenuazione”. L’installazione di un ripetitore consente la trasmissione dei
segnali su distanze maggiori.
Ripetitore
Tutti gli elaboratori (nodi) che condividono una rete Ethernet usano il metodo di accesso
CSMA/CD. Si dice, infatti, che stanno tutti sullo stesso dominio di collisione. Detto questo
possiamo affermare che tutti i nodi connessi ad un hub sono parte dello stesso dominio di
collisione. In un dominio di collisione, infatti, quando avviene una collisione, tutti i nodi
nell'area del dominio (domain/area) avvertiranno la collisione e, quindi, reagiranno di
conseguenzza.
Per connettersi ad un hub, i nodi di una rete usano il cavo UTP (Unshielded Twisted Pair). Ad
ogni porta dell'hub può corrispondere un solo nodo. Quando gli hub non erano cosi diffusi, e
costavano molto più di adesso, le reti lan di tipo SOHO (small office home office) utilizzavano il
più economico cavo coassiale.
La modalità di lavoro degli hub è molto semplice e trasparente. Quando un nodo connesso ad
una delle sue porte trasmette dei dati, questi vengono replicati e spediti su tutte le altre porte.
Solo il destinatario dei dati "processerà" la trama ethernet mentre tutti gli altri nodi
rifiuteranno la trama e non la inoltreranno sul proprio elaboratore. L'operazione di rifiuto e di
accettazione della trama viene portata a termine dalla scheda di rete (NIC) che, leggendo il
MAC address di destinazione contenuto nell'header della trama ethernet stessa, verrà portato a
confrontato con il proprio MAC address. Solo in caso di uguale MAC address la trama verrà
processata.
Hub
Gli hub più recenti hanno una porta speciale che funziona come "uplink" port. La porta uplink
permette di connettere l'hub ad altri hub, aumentando le porte disponibili sulla LAN. Questo
soluzione, a basso costo, permette di estendere le reti di pochi computers e, da un certo punto
di vista funziona abbastanza bene.
Purtroppo, non appena la rete si appesantiisce con nuovi nodi, anche il traffico inutile (tutte le
trame non processate) diventa un problema e impatta in modo negativo sulle performance
della stessa.
Switch
Questi apparati stanno rapidamente sostituendo i comuni hub nelle reti aziendali.
Diversamente degli hub (apparati di Livello 1) che hanno il solo compito di rigenerare il segnale
sulle porte a disposizione, gli switch (apparati di livello 2) si occupano di gestire la banda
prendendo delle decisioni basate sul MAC.
In pratica, uno switch (detto anche multi-port bridge) crea dei percorsi commutati collegando
fisicamente un interfaccia ad un altra rendendo così disponibile tutta la larghezza di banda.
Diversamente dall'hub, lo switch instrada i dati sull'interfaccia (porta dello switch) alla quale è
connesso l'host. In pratica lo switch separa/isola i segmenti della rete, stabilendo una
connessione temporanea tra la sorgente e il punto di destinazione, chiudendola al termine del
collegamento.
Switch
Lo switch è un tipico apparato di Livello 2 (Data Link) anche se l'ovoluzione degli stessi (con
capacità di instradamento anche a livello IP) lo sta portando verso gestioni di instradamento e
load balancing.
La denominazione layer 2 o layer 3, deriva direttamente dalla struttura Iso/Osi. Il livello
(layer) 2 è caratteristico degli switch più tradizionali, i quali si basano sul MAC address. Con
questa tecnologia le comunicazioni sono di tipo 1 a 1, tutte le altre porte dello switch non sono
interessate. Gli switch di livello 3 operano sul protocollo e sono, quindi, in grado di determinare
i percorsi di instradamento utilizzando le informazioni fornite dai protocolli ( es. IPX, IP,
AppleTalk).
La scelta della tecnologia switch è fondamentale per tutte le applicazioni che creano molto
traffico e per tutte le reti con un alto numero di utenti. Nell'ottica di rete sul modello Intranet,
con ampio utilizzo di contenuti multimediali, non si può più prescindere da una soluzione
switched. L’hub è, oramai, un apparato che non soddisfa più le continue esigenze di alte
performance e può trovare applicazione solo in piccoli uffici dove pochi client condividono un
server per le stampe e/o semplici applicazioni transazionali.
Gli switch oggi apportano un aiuto decisivo, superando i limiti della trasmissione "anarchica" di
Ethernet e la rigidità del Token Ring. Oltre alla segmentazione fisica del traffico, gli switch
consentono il tracciamento di reti virtuali per facilitare lo scorrimento del flusso dei dati. Gli
switch di Livello 2, dimensionati per gestire un numero ristretto di reti virtuali, con un numero
modesto di stazioni di lavoro, si rivelano non adatti alle topologie multiprotocollo distribuite su
più piani e che generano un forte traffico tra gruppi di lavoro. I costruttori hanno permesso
allora ai propri switch di gestire le reti virtuali al Livello 3 del modello Osi. Questo
posizionamento consente a questi ultimi di assimilare un gruppo di lavoro virtuale a una
sottorete Ip, Ipx o AppleTalk e di organizzare la comunicazione tra queste entità protocollari.
Tuttavia, la semplice funzione di trasmissione dei pacchetti offerta da questi primi switch di
Livello 3 non dispensa dalla mediazione di un router. L'ultima generazione di switch offre un
palliativo a tale carenza, attivando una funzione di routing integrale, ovvero la trasmissione dei
pacchetti e la definizione dei percorsi. E, bene o male, i router tradizionali iniziano a
posizionarsi esternamente alla dorsale, per lasciare agli switch-router il compito di gestire i
pacchetti e di organizzare le comunicazioni all'interno della rete locale
Bridge
Il bridge, come dice il nome, è un ponte tra due reti. Il suo lavoro consiste nel fare in modo
che i dati generati da una rete rimangano separati dall'altra, salvo quando il destinatario non
appartenga proprio all'altra rete. Il bridge lavora al livello 2 del modello ISO/OSI, cioè a livello
data link. Questo comporta che l'indirizzo in base al quale si decide se inoltrare o meno un
messaggio, è un indirizzo di scheda di rete Ethernet, a 48 bit.
- collegare supporti fisici eterogenei, ad esempio cavi Ethernet coassiali e cavi a doppini
intrecciati
Router
Router
Il suo compito è quello di suddividere la rete in più reti e gestire l’ instradamento dei dati
attraverso l’ indirizzamento IP (o di altri protocolli routabili come l'IPX). La gestione è fatta
attraverso una tabella di routing che riporta tutti gli indirizzi IP della rete e il percorso che un
pacchetto deve fare per raggiungere una data destinazione. Tale tabella puo’ autoaggiornarsi,
oppure è necessario che l’ amministratore di rete aggiorni quotidianamente le varie entry nella
tabella. Si parla in questo caso di router statico o dinamico. Un router è, nella maggior parte
dei casi, un apparato hardware a se stante, ma un router potrebbe anche essere un PC dotato
di due o più schede di rete, atte a collegare insieme più sottoreti. Si parla in questo caso di un
PC multihomed (con più schede di rete) .
TIPOLOGIE DI RETE
Il termine topologia di rete si riferisce alla disposizione fisica dei computer, dei cavi e di altri
componenti della rete. Tutti i progetti di rete derivano da quattro topologie di base
bus,stella,anello,maglie).
La topologia fisica di una rete è rappresentata dal cavo stesso, mentre la topologia logica è
rappresentata dalla modalità di trasmissione dei segnali attraverso il cavo.
Per implementare correttamente una topologia di rete, è necessario partire da una corretta
pianificazione.
Tipologie Fisiche:
Bus
Una rete a bus connette tutti i nodi sullo stesso canale trasmissivo, per cui i dati trasmessi da
un nodo sono intercettabili da tutti gli altri. In questo modo la trasmissione simultanea da
parte di più nodi può generare una collisione.
Stella
Una rete a stella connette tutti i nodi periferici a un nodo principale (centro stella). Ogni nodo
periferico è connesso in modo indipendente e non interferisce con gli altri. In questo modo
tutte le comunicazioni passano per il nodo centrale che si occupa di gestirle.
Anello
Una rete ad anello connette tutti i nodi in sequenza fra di loro in modo da formare un anello. In
questo modo la comunicazione avviene in un unico senso e ogni nodo ritrasmette al nodo
successivo i dati che non sono destinati a se stesso.
Completa (Maglia)
Una rete con topologia a maglie offre ottime prestazioni a livello di ridondanza e affidabilità. In
una topologia a maglie ogni computer è collegato agli altri tramite un cavo separato.
Svantaggi
L’installazione risulta costosa a causa della quantità elevata dei cavi necessari.
Stella Estesa
In una topologia a stella estesa ogni nodo collegato con il nodo centrale è anche il centro di
un’altra stella. Il vantaggio di utilizzare questa topologia è che si limitano il numero di
dispositivi collegati al nodo centrale. Il nostro sistema telefonico è strutturato con questo tipo
di topologia.
Anello doppio
Una topologia ad anello doppio consiste di due anelli concentrici che connettono gli stessi
dispositivi. Il secondo anello fornisce affidabilità e ridondanza nel caso il primo anello si guasti.
La fibra ottica si basa su questa topologia di rete.
Cellulare
La topologia “Cellulare” consiste di aree circolari o esagonali ognuna delle quali ha un proprio
nodo centrale. La sua area geografica è divisa in regioni (celle) per sfruttare al meglio la
tecnologia Wireless. Non esistono collegamenti fisici in questo tipo di topologia ma solo onde
elettromagnetiche.
Tipologie Logiche:
Broadcast
Nelle reti broadcast i vari elaboratori comunicano tra di loro attraverso la trasmissione di
piccoli impulsi elettrici che utilizzano un unico "canale" di comunicazione condiviso da tutti.
Si dice che il canale trasmissivo (media) è condiviso da tutti, e non c'è nessun ordine nella
priorità di trasmissione. Questo è, in parole povere, il modo in cui Ethernet lavora.
Token-Passing
Nelle reti token-passing viene distribuito sul canale trasmissivo un "gettone" che può essere
catturato per trasmettere dati. Se un host non ha nessun dato da trasmettere passa il gettone
(token) all'host successivo. In questo modo si determina una sequenza. Le reti FDDI ed
ArcNet sono due tipologie di rete che utilizzano il metodo del token passing. Mentre ArcNet è in
via di estinsione data la sua complessità e la sua bassa velocità ( 2.5 mbps ), la FDDI ( Fiber
Distributed Data Interface) è particolarmente diffusa. La sua peculiarità è quella di utilizzare un
doppio anello che fornisce ridondanza nella trasmissione. Infatti alla rottura di un anello i dati
vengono trasferiti sul secondo. La larghezza di banda supportata tocca i 100 mbps per circa
100 km di distanza.
L’ EVOLUZIONE
Inizialmente i primi computer, apparati elettromeccanici nati negli anni 40, non realizzavano
alcuno tipo di comunicazione tra loro, anche perchè erano pochi e giganteschi. Negli anni 70 e
80 il dipartimento della difesa americano cominciò a sviluppare le prime reti locali e poi le
prime reti geografiche. Nacquero così i primi ripetitori e i primi concentratori, alla base delle
prime reti. Durante la metà degli anni 80 furono sviluppati i primi calcolatori adibiti a far
comunicare tra loro le reti locali. Furono chiamati gateway e in seguito router. La sfida del
nuovo millennio è la convergenza dati, video e voce, ovvero il far comunicare tutti i dati su di
un unico mezzo fisico.
Per realizzare il flusso dei dati, i dati stessi devono essere divisi e inseriti in opportuni
contenitori in grado di trasportarli. Questo procedimento si chiama encapsulazione. Quando un
dato parte da un calcolatore viene diviso in segmenti dal livello del trasporto. Il livello di rete
inserisce il segmento in un pacchetto e assegna gli indirizzi logici di sorgente e destinazione. Il
livello di data link si occupa di encapsulare ancora il pacchetto in opportune trame
aggiungendo gli indirizzi di livello 2 (MAC). La trama viene poi trasmessa sotto forma di bit sul
mezzo fisico, arriva al calcolatore destinatario che effettua la procedura inversa, ovvero
deencapsula i dati ricostruendoli e passandoli al livello applicativo.
Il transito dei dati attraverso gli apparati di livello 1 (repeaters, hub) avviene semplicemente
sotto forma di bits, bit per bit, e il segnale viene rigenerato.
Il transito dei dati attraverso gli apparati di livello 2 (switch e bridge) avviene sotto forma di
trame. Gli apparati si occupano di ricostruire ogni trama prima di emetterla sulle porte di
destinazione (anche se in realtà esistono alcuni metodi per abbreviare il tempo di
commutazione). Lo switch esamina in ogni trama l’indirizzo di destinazione (indirizzo di livello
2) e in base ad esso emette la trama solo sulla porta dove si trova l’indirizzo MAC destinatario
della trama.
Il flusso dei dati attraverso gli apparati di livello 3 (router) avviene invece sotto forma di
pacchetti. Il router ricostruisce i pacchetti di livello 3 in base all’indirizzo logico di destinazione
del pacchetto (ad esempio indirizzo IP) emette il pacchetto su una delle sue interfacce.
Ovviamente per farlo deve encapsulare nuovamente al livello 2 il pacchetto in una trama (che
varia a seconda della tecnologia dell’interfaccia) ed emettere poi la trama bit per bit sul mezzo
fisico.
Negli host, infine, i dati percorrono tutti e sette i livelli della pila OSI per arrivare al livello
applicativo.
I dati viaggiano nella rete sotto forma di pacchetti (data packet). Il termine pacchetto
rappresenta una specie di confezionamento (o meglio di "imbustamento") delle informazioni
attraverso cui si definisce il mittente, il destinatario, i dati trasmessi e tutta una serie di
informazioni di controllo.
Più precisamente un pacchetto è composto da una serie di bit che formano un blocco di dati.
Questo blocco di datti è diviso in diversi sotto blocchi che rappresentano un'intestazione,
informazioni di controllo, mittente, destinatario, dati di controllo degli errori nonché il
messaggio stesso (la parte relativa alle informazioni vere e proprie). Poiché sono unità di dati
di rete simili tra loro, i termini pacchetto e frame sono di fatto sinonimi.
Il confezionamento, il tipo e la dimensione dei pacchetti dipendono dal tipo di rete utilizzata e
dai protocolli che regolano la trasmissione.
I dati (gruppi di bit che compongono il pacchetto) sono un materiale duttile che può essere
suddiviso e aggregato in vari modi. Ciò significa che, durante il loro tragitto, i dati possono
essere scomposti e ricomposti più volte e in modi differenti. Per esempio, per attraversare un
particolare segmento di rete, potrebbe essere necessario suddividere dei pacchetti troppo
grandi in pacchetti più piccoli, oppure potrebbe essere utile il contrario.
PROTOCOLLI
I pacchetti vengono trasmessi e ricevuti in base a delle regole. Possiamo ben dire che un
"protocollo di comunicazione" è un insieme di regole definite e accettate da tutti ("set of rules")
Le regole si applicano già, nella vita normale, a tutti i livelli di comunicazione. Basti pensare ad
una semplice telefonata fra due interlocutori:
In base alle regole di comunicazione telefonica ogni telefonata inizia con un segnale di
attenzione/disponibilità come "pronto" o "hello" (in un altra lingua) e finisce con un altro
saluto. Durante la comunicazione telefonica, inoltre, mentre un interlocutore parla l'altro
rimane in ascolto.
Un altro esempio può essere rappresentato dalle modalità e dalle regole di guida degli
autoveicoli. Anche in questo caso il tutto avviene per mezzo di "regole" riconosciute da tutti.
Se gli automobilisti non le rispettassero (non usando le freccie, inserendosi contromano nei
sensi unici, passando col rosso ecc) sarebbe il caos.
Tornando all'analogia con la vita quotidiana, si potrebbero paragonare alle regole che
stabiliscono la comunicazione in un assemblea, in un dibattito politico o in una classe
scolastica.
Principali protocolli:
NetBEUI - Protocollo Microsoft disegnato per piccole LAN; non è instradabile. Not è
compatibile con le reti UNIX.
IPX/SPX - Protocollo per reti Novell: è instradabile. In NT è conosciuto anche come NWLink.
TCP/IP - Il protocollo di Internet ; è routabile. Usato nelle reti UNIXs.
DECnet - Definisce le comuncazioni sulle MAN FDDI; è instradabile.
Appletalk - Protocollo disegnato per le piccole reti Apple; è instradabile.
DLC - Usato per il collegamento a Mainframe IBM e stampanti di rete HP. Non è instradabile.
I LIVELLI
Nel progettare una rete è necessario seguire lo schema per livelli. Ogni livello è costruito sopra
il precedente e comunica solamente con il livello corrispondente (Layer n on one computer
communicates with Layer n on another computer).
Essendoci diversi tipi di rete ci sono anche molto differenze nei livelli che le costituiscono. Essi
possono differire, in reti diverse, sia per numero, ma soprattutto per definizione o contenuto.
Anche le funzioni che i livelli esplicano sono spesso molto differenti, per cui bisogna stare
molto attenti nel fare riferimenti numerici in reti di tipo diverso.
Il principio fondamentale (che vale per tutti i tipi di rete) è che ogni livello può offrire i servizi
solo ai livelli più alti, ignorando i dettagli sul come tali servizi siano implementati. Per esempio,
il livello 5 di un elaboratore conversa con il livello 5 di un altro elaboratore. Le regole e le
convenzioni che governano questa conversazione sono generalmente indicate col termine di
"protocollo di livello 5". E così per tutti gli altri livelli.
I processi che effettuano tale conversazione si definiscono "peer entitiy" ovvero "entità di pari
livello". Il dialogo fra due entità di pari livello (es. livello 4) si realizza attraverso i servizi offerti
dal livello 3 ovvero (4-1).
Uno dei vantaggi palesi della divisione in livelli è quello di scomporre il problema della
trasmissione fra computers in problemi più piccoli e più facilmente gestibili.
ELABORATORE A ELABORATORE B
MEZZO FISICO
IL MODELLO OSI
Il modello di riferimento OSI (Open System Interconnection), diventato parte degli standard
ISO (International Organization for Standardization) nel 1984, divide la gestione della rete in
livelli (layers). Questo modello non definisce uno standard tecnologico ma, un modello di
riferimento comune per le tecnologie e i servizi che gestiscono le reti. Esso assicura
compatibilità e interoperabilità anche fra diversi tipi di tecnologie.
Lo studio dell'Iso prese in esame gli aspetti comuni fra le varie tecnologie (SNA, DECNET,
TCP/IP ecc) e cercò di addivenire ad una serie di regole, basate su livelli, che aiutassero i
costruttori ad implementare protocolli aperti.
Per capire il concetto di strutturazione per livelli è necessario comprendere come il flusso dei
dati viene gestito e regolato fra gli stessi. Un buon esempio potrebbe essere quello relativo al
sistema postale. Ogni passaggio di consegna di una lettera avviene per livello di competenza e
per regole di smistamento. La lettera viene imbucata in una cassetta postale e poi prelevata e
portata al centro di smistamento. Nel centro di smistamento viene interpretato l'indirizzo e la
lettera viene veicolata verso un altro centro vicino alla destinazione finale dove seguirà il
percorso analogo (ma a ritroso) fino ad arrivare nelle mani del postino per essere recapitata.
I livelli del modello OSI/ISO sono sette. La storia racconta che la scelta di 7 livelli è dovuta ad
una aderenza sostanziale e a una compatibilità inevitabile con il modello di comunicazione più
in voga nel 1984. IBM ovviamente.
Se consideriamo i livelli nel modo indicato dalla tabella seguente, il primo livello è quello più
basso ed è a contatto con il mezzo fisico (media), mentre l'ultimo è quello più alto ed è
direttamente a contatto con le applicazioni:
L’INCAPSULAMENTO
LIVELLO
Dati
7
LIVELLO 6 Dati
LIVELLO 5 Dati
LIVELLO 1 100100101011010
2) Incapsulamento: (livello 4)
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 fallimento della ricezione di un segmento, il destinatario può
richiederne la ritrasmissione. In questo modo sussiste il controllo degli errori nel trasporto dei
dati.
L'operazione di incapsulamento può essere paragonata a quella che avviene nelle comuni
operazioni che accompagnano le funzioni proprie dei sistemi postali convenzionali.
In questi sistemi vengono essaminate, a vari livelli, le informazioni relative agli indirizzi
presenti nelle buste e nei pacchi.
Ad esempio l'ufficio postale esaminerà solo il CAP, mentre il postino analizzerà la Via e il
portiere del condominio il nome del condomino.
I livelli, infatti, si astraggono dalle altre informazioni e prendono in esame solo le informazioni
offerte dai pari entità. PDU del pari livello.
1. Riduce la complessità
2. Standardizza le interfaccie
4. Assicura l'interoperabilità
5. Accellera l'evoluzione
Permette l'implementazione dei singoli livelli indipendentemente dagli altri. Ciò facilita sviluppo
ed evoluzione.
Divide la complessitò delle comunicazioni in rete in tante piccole parti. Ognuna delle quali è
facile da apprendere e da insegnare.
TCP/IP
Ancora prima della attuale Internet, fu il progetto di ricerca Arpanet (finanziato dal Department
of Defense americano) che si preoccupò di costruire una rete estremamente affidabile, anche
in caso di eventi catastrofi. come cataclismi o guerre planetarie che potevano influire sulla
eliminazione, o isolamento, di molti nodi di rete.
Arpanet, da prototipo, si sviluppò fino a diventare la Internet come ora la conosciamo. Nel
corso del suo sviluppo Internet riuscì ad integrare i diversi sistemi di rete esistenti attraverso
un architettura ideata, fin dall'inizio, per consentire l'interconnessione di reti fra loro
profondamente diverse (internetwork).
Ed è proprio il concetto di Internetworking che sta alla base del successo di Internet e che ne
ha determinato l'assunzione a STANDARD.
Nel corso del tempo questo tipo di architettura (nota anche con il nome di Internet Protocol
Suite, architettura TCP/IP e TCP/IP reference model) è cresciuta attraverso un costante lavoro
di implementazione e affinamento. Questo lavoro di implementazione, affinamento e
standardizzazione trova testimonianza permanente nelle RFC (Request For Comments).
Relazione fra i livelli OSI e quelli TCP/IP:
OSI TCP/IP
APPLICATION
PRESENTATION <-
APPLICATION
SESSION
DATA LINK
<- NETWORK INTERFACE
PHYSICAL
I principali requisiti che il progetto stabilì, fin dall'inizio, si possono riassumere in:
questi requisiti portarono alla definizione di una architettura di rete basata su:
• packet-switched;
• livello connectionless di internetwork.
Livello Application
Nella suite TCP/IP non sono previsti i livelli session e presentation (non furono ritenuti
necessari; l'esperienza col modello OSI ha mostrato che questa visione è condivisibile).
Sopra il livello transport c'è direttamente il livello application, che contiene tutti i protocolli di
alto livello che vengono usati dalle applicazioni reali. I progettisti hanno creato un livello che
soddisfa le problematiche di presentazione, codifica e controllo della comunicazione.
I protocolli introdotti per primi (ed attualmente fortemente in uso) sono:
* Telnet: terminale virtuale;
* FTP (File Transfer Protocol): trasferimento di archivi;
* SMTP (Simple Mail Transfer Protocol) e POP (Post Office Protocol): posta elettronica.
Successivamente se ne aggiunsero altri, fra cui:
DNS (Domain Name Service): mappatura fra nomi di host e indirizzi IP numerici;
NNTP (Network News Transfer Protocol): trasferimento di articoli per i newsgroup;
HTTP (HyperText Transfer Protocol): alla base del Word Wide Web.
Livello Transport
E' stato progettato per consentire la conversazione delle peer entity sugli host sorgente e
destinazione (end-to-end). E' il livello che si occupa della qualità del servizio, dell'affidabilità,
del controllo di flusso e della correzione degli errori.
Sono definiti due protocolli in questo livello:
• TCP (Transmission Control Protocol): è un protocollo orientato alla connessione e molto
affidabile (tutti i pacchetti arrivano a destinazione e, nell'ordine giusto). Frammenta il
flusso di dati in arrivo dal livello superiore in messaggi separati (segmenti) che vengono
passati al livello Internet. In fase di arrivo a destinazione, i pacchetti vengono
riassemblati in un flusso di output per il livello superiore. Connection-oriented non
significa l'esistenza di un circuito reale fra i due host (circuit switching). Significa ,
invece, che i segmenti del livello 4 viaggiano avanti e indietro fra i due host per
assicurarsi che la connessione sia stabile durante un deterrminato periodo. Questo
processo è conosciuto come "packet switching".
• UDP (User Datagram Protocol): è un protocollo non orientato alla connessione e,
quindi, non affidabile. I pacchetti possono arrivare in ordine diverso o, addirittura, non
arrivare affatto.
Livello Internet
E' il livello che tiene insieme l'intera architettura. Il suo ruolo è consentire ad un elaboratore
(host) di iniettare pacchetti in una qualsiasi rete e fare il possibile per farli viaggiare,
indipendentemente gli uni dagli altri e magari per strade diverse, fino alla destinazione, che
può essere situata anche in un'altra rete. Dunque è connection less. E' un servizio best-effort
datagram. Il protocollo che si occupa di questa incombenza è l' IP (Internet Protocol). Le
funzioni principali sono l'instradamento (routing) e il controllo della congestione.
Network Interface
Nelle specifiche del modello TCP/IP non esiste una considerazione del livello fisico in quanto lo
stesso si appoggia direttamente a quello dei dispositivi disponibili per le varie piattaforme HW
e, comunque, conformi agli standard IEEE 802. Tutto ciò che si assume è la capacità dell'host
di inviare pacchetti IP sulla rete, difatti questo livello viene anche denominato "host-to-network
layer".
APPLICATION -> TELNET, FTP, SMTP, HTTP, NNTP, RLOGIN, DNS, TFTP
Con il concetto di rete geografica si entra nel mondo dell'internetworking. WAN, acronimo di Wide Area
Network, sta ad indicare una tipologia di rete operante ai livello fisico e data-link nata per la connessione
fra di loro di diverse Lan e lo scambio di pacchetti attraverso bridge e e router.
Le principali carateristiche di una Wan si possono riassumere nei fattori principali che la distinguono da
un Lan:
Utilizzo dei servizi di trasporto su vaste aree geografiche delegati a provider telefonici;
Utilizzo di connessioni seriali, full o part time;
Utilizzo di apparati specifici per le aree geografiche come: router, switch, modem, communication
servers.
Per quanto riguarda le specifiche, le raccomandazioni e gli standard che, sia a livello fisico che a livello
data-link, intervengono nel dettare regole e armonizzare lo scambio di dati fra le varie tecnologie
adottate, vanno citati:
Esistono diversi standard WAN, ognuno con proprie caratteristiche tecniche e particolare diffusione nel
mercato IT. Abbiamo in precedenza detto che le WAN operano su due differenti livelli: fisico e data-link.
Quello che è importante sapere, prima di affrontare le varie tecnologie, è che mentre al livello fisico si
stabiliscono i parametri elettronici e meccanici per lo scambio dati, al livello data-link si stabiliscono le
modalità di trasmissione dei frame attraverso il singolo canale comunicativo.
Piu' in particolare:
A livello fisico vengono prese in esame le intefacce DTE (data terminal equipment) e DCE (data circuit-
terminating equipment) dove il DCE è il servizio offerto del provider (tipicamente la terminazione del Wan
provider Telecom/wind/Infostrada ecc.) e il DTE l'interfaccia locale del router aziendale.
Il DCE è, molto spesso, un modem o una CSU/DSU (interfaccia digitale che connette l'apparato aziendale
al "local digital telephone loop" (circuito dati del provider) è usato nei circuiti digitali (tipicamente le CDN)
come le T1 o E1.
Channel service unit/Data service unit. E' usato per collegarsi a una linea T1 o ad una linea dedicata,
come il T1
frazionato. La funzione primaria di CSU/DSU è convertire il segnale in formato che il resto della rete può
capire. È simile alla
funzione di un modem. CSU/DSU funziona allo strato fisico del modello OSI. Una considerazione
importante riguarda la funzionalità di timing che è demandata al DSU.
A livello fisico gli standard di riferimento sono:
EIA/TIA-232
EIA/TIA-449
V.24
V.35
X.21
G.703
EIA-530
• High-Level Data Link Control (HDLC) standard dello IEEE. Non è compatibile con tutti gli apparati
di rete. Molti produttori implementano versioni proprietarie di questo protocollo. HDLC supporta la
configurazione point-to-point e quella multipoint.
• Frame Relay. Questo protocollo utilizza i vantaggi dell'alta qualità digitale. Utilizza una trama
(frame) semplificata senza meccanismo di correzione. Questa caratteristica permette di inviare
informazioni di Livello 2 in modo più veloce di tutti gli altri protocolli.
• Point-to-Point Protocol (PPP). Viene descritto dalla RFC 1661 e contiene due standard sviluppati
dall' IETF. Il PPP, nella sua struttura, contiene un campo utilizzato per identificare il protocollo di
Livello 3.
• Simple Data Link Control Protocol (SDLC) è stato ingenerizzato da IBM per supportare le Wan di
tipo SNA (System Network Architecture). Attualmente è rimpiazzato dal più versatile HDLC .
• Serial Line Interface Protocol (SLIP) uno dei protocolli più usati per trasportare IP nelle reti WAN
è stato, quasi completamente, rimpiazzato dal più versatile PPP.
• Link Access Procedure Balanced (LAPB) è usato su reti X.25 e dispone d un ottima capicità di
controllo degli errori.
• Link Access Procedure D-channel (LAPD) è il protocollo WAN usato per il canale di servizio "D"
nelle reti ISDN (i dati veri e propri transitano nei canali B).
• Link Access Procedure Frame (LAPF) è un protocollo molto simile all' LAPD e viene usato in
abbinata alle tecnologie frame relay.
TIPOLOGIE WAN
Tabella comparativa
Le tecnologie WAN sopraelencate godono di una ulteriore suddivisione in base al modo in cui avviene la
trasmissione dei dati sul media di collegamento. Esaminiamo le categorie.
• POTS (Plain Old Telephone Service). Questa tecnologia comunemente usata per la trasmissione
della voce, non riguarda i computer ma le sue caratteristiche sono rilevanti per lo sviluppo delle
infrastrutture di rete. Essendo un modello estremamente affidabile e facile da usare nelle reti
Wan è utile studiarlo e conoscerlo. Il media fisico utilizzato da questa tecnologia è di tipo twisted-
pair.
• ISDN (Integrated Services Digital Network). E' una delle tecnologie più diffuse ed è stata la
prima a consentire un servizio di accesso dial-up completamente digitale. Non è molto costosa e
ha una larghezza di banda massima di 128 Kbps per l'accesso base "BRI" (Basic Rate Interface) e
di 3 Mbps per l'accesso primario "PRI" (Primary Rate Interface). Anche la tecnologia ISDN utilizza
come media fisico il cavo in rame di tipo twisted-pair.
Packet-Switched Services - Servizi a commutazione di pacchetto
• X.25 è una vecchia tecnologia ancora molto usata che permette un controllo di errore molto
raffinato. Nata per far fronte agli errori trasmissivi che colpivano le reti WAN al principio.
Purtroppo la larghezza di banda è limitata, fino a 2 Mbps . Anche la tecnologia X.25 utiliizza come
media fisico il cavo in rame di tipo twisted-pair.
• Frame Relay è la versione packet-switched di ISDN ed è diventata una delle tecnologie più
diffuse. E' più efficente di X.25 e, pur erogando gli stessi servizi, può usufruire di una larghezza di
banda massima di 44.736 Mbps. Utilizza il media di rame twisted pair e la fibra ottica.
• ATM (Asynchronous Transfer Mode) sta diventando una tecnologia usatissima sia in ambito Wan
che Lan. Ha il pregio di usare delle piccole trame a grandezza fissa (53 byte) ma il suo costo è
ancora molto sostenuto. La massima larghezza di banda si attesta a 622 Mbps anche se si stanno
implementando velocità più interessanti. Utilizza il media di rame a due fili intrecciati e la fibra
ottica.
• SMDS (Switched Multimegabit Data Service) abbastanza simile a ATM viene usata negli ambienti
metropolitani (MAN). La velocità di trasmissione è di circa 44 Mbps. Dato il costo relativamente
alto non è molto diffusa. Utilizza il media di rame a due fili intrecciati e la fibra ottica.
• T1, T3, E1, E3. Le tecnologie della serie T vengono usate negli Stati Uniti, mentre le tecnologie
della serie E sono riferite all'Europa. Sono le tecnologie che usano il "time division multiplexing"
un meccanismo di suddivisione del tempo per l'assegnazione della banda. La tabella della
larghezza di banda è la seguente:
• T1 -- 1.544 Mbps
• T3 -- 44.736 Mbps
• E1 -- 2.048 Mbps
• E3 -- 34.368 Mbps
• xDSL (Digital Subscriber Line) è una nuova tecnologia WAN sviluppata per uso casalingo e per
piccoli uffici. La caratteristica principale sta nella disponibilità di larghezza di banda che
diminuisce con la crescita della distanza dal punto di attacco del provider. La velocità maggiore
(51,84 Mbps) è virtualmente possibile a ridosso del sito tecnico del provider. Questa tecnologia
sta rapidamente prendendo piede e i prezzi di erogazione si stanno abassando notevolmente. Le
varianti di questa tecnologia sono:
• SONET (Synchronous Optical Network) -- E' una tecnologia ad alta velocità che utilizza,
principalmente, la fibra ottica ma può adattarsi anche al rame. Le velocità raggiungibili sono
diverse a seconda dell'uso a cui questa tecnologia viene destinata. Viene implementata a diversi
livelli raggiungendo velocità che variano dai 51,84 Mbps fino a 9.952 Mbps (OC-192); Può
raggiungere queste straordinarie velocità grazie all'uso del WDM (wavelength division
multiplexing) dove i fasci laser vengono sintonizzati su diversi colori (wavelengths) per poter
inoltrare enormi quantità di dati. Questa tecnologia è molto usata nei backbone di Internet ed il
suo costo è molto elevato.
Altri servizi WAN
• I Modem analogici possono essere usati sulle linee telefoniche convenzionali anche se le
velocità sono molto contenute. La velocità massima si attesta sui 56 kbps. Hanno il vantaggio di
costare molto poco e la loro destinazione è quella domestica.
• I Cable modem sono molto usati nei paesi dove la TV via cavo è molto sviluppata (90% delle
case americane). La velocità massima arriva a 10 Mbps ma decrementa quando molti utenti
condividono il media. Il loro costo non è alto e usano il cavo coassiale televisivo.
• Wireless - Non richiede nessun cavo poichè utilizza onde elettromagnetiche. Fra i vari tipi di
tecnologie wireless per Wan vanno citate:
TCP
Vediamo questa struttura al lavoro facendo un semplice esempio, immaginate di voler inviare un
messaggio su una rete TCP/IP (Internet è una di queste). Ciò che il protocollo di posta SMTP produce,
viene passato in basso al TCP.
Innanzi tutto diciamo che TCP fornisce un servizio byte-stream. Questo termine indica che i dati da e per
i livelli superiori vengono presentati e ricevuti come un unico flusso di byte, e non come pacchetti. Questo
significa che è TCP, e non i protocolli superiori (e quindi le applicazioni), a doversi preoccupare di
preparare i pacchetti, con l'evidente vantaggio di avere chiara la distinzione dei ruoli: SMTP (o qualsiasi
altra applicazione di alto livello) pensa a preparare il messaggio di posta, TCP pensa a come deve
inviarlo.
|0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3|
|0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|..........Source Port..........|.......Destination Port........|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|........................Sequence Number........................|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|.....................Acknowledgment Number.....................|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Data...|...........|U|A|P|R|S|F|...............................|
|Offset.|.Reserved..|R|C|S|S|Y|I|............Window.............|
|.......|...........|G|K|H|T|N|N|...............................|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|............Checksum...........|.........Urgent Pointer........|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|....................Options....................|....Padding....|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|.............................data..............................|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Nell'header sono contenuti i seguenti campi.
• Source port/Destination port; (16 bit + 16 bit) quando iniziate ad inviare o a ricevere dati, qui
vengono memorizzati due numeri di porta, uno al quale inviare i dati, uno sul quale i dati
verranno spediti da parte dell'altro computer. Sull'altra macchina, i numeri di porta sono uguali
ma scambiati. Per ogni comunicazione full-duplex, sul vostro computer (e su quello a cui vi siete
connessi) vengono aperte due connessioni, una in trasmissione e una in ricezione, ognuna con il
suo numero di porta. Fate attenzione a non confondere le porte con gli indirizzi IP.
Qui apro una piccola ma importante parentesi per far capire quanto sia utile il concetto di porta nelle
comunicazioni TCP. Normalmente, quando stabilite una comunicazione generica, TCP genera un numero
di porta casuale. Se però volete iniziare una connessione con un protocollo di alto livello (cioè il 99% dei
casi), come per esempio il protocollo SMTP, perchè volete mandare un messaggio di posta all'altro
computer, dovete prima di tutto specificare che volete una connessione attraverso la porta n.25 (o lo farà
per voi il vostro lettore di posta). Solo dietro a questo numero di porta troverete SMTP in ascolto. Ci sono
diversi "numeri magici" standard (detti "well known services", servizi ben noti), ad esempio 21 per FTP,
23 per Telnet, 53 per il servizio DNS, 80 per il Web Server. Potete trovare una lista dei principali servizi
noti in C:\Windows\Services, o in /etc/services in Linux.
• Sequence number; (32 bit) contiene il numero necessario per sapere quale sia l'ordine dei
segmenti e per sapere se qualcuno è andato perduto. Diversamente da come si potrebbe
pensare, non viene usato il numero di segmento, ma il numero del primo byte di quel segmento.
Quindi se ogni segmento contiene 1500 byte, il sequence number sarà 0...1500...3000... , e non
0...1...2... .
• Acknowledgment number; (32 bit) viene usato per segnalare che avete ricevuto tutti i dati fino al
numero di byte specificato meno uno, e dovrebbe essere uguale al valore del prossimo Sequence
number che sarà ricevuto.
• Window; (16 bit) nei segmenti con il flag ACK, indica in byte l'ampiezza della finestra che il
computer è in grado di ricevere. Per il funzionamento vedi il paragrafo Il meccanismo delle
finestre scorrevoli.
• Data offset; (4 bit) è il numero di parole a 32-bit dell' header TCP. Indica dove iniziano i dati.
• Reserved; (6 bit) riservato ad usi futuri.
• Flags; (1 bit per ogni flag) è composto dai seguenti campi:
o Flag URG; (urgent) se attivo indica che il campo Urgent Pointer è valido e deve essere
letto.
o Flag ACK; (acknowledgement) se attivo indica che il campo Acknowledgement number è
valido e deve essere letto.
o Flag PSH; (push) usato per indicare che il segmento deve essere inviato
immediatamente. Utile nei programmi interattivi come Telnet, dove vogliamo che i
comandi digitati con la tastiera siano inoltrati quanto prima. Senza il Flag PSH, per motivi
di efficienza il TCP accumula tutti i dati in un buffer interno, la cui spedizione viene
ritardata fino a che non si sia completamente riempito.
o Flag RST; (reset) usato per reinizializzare completamente la connessione TCP corrente.
o Flag SYN; (synchronize) usato quando viene stabilita una sessione, indica che il ricevente
dovrà leggere il campo Sequence number e sincronizzare il proprio con esso.
o Flag FIN; (finish) indica che non ci sono altri dati da trasmettere. La connessione rimane
comunque aperta in ricezione.
• Checksum; (16 bit) un numero che serve per sapere se il datagramma corrente contiene errori
nel campo dati.
• Urgent pointer; (16 bit) indica che il ricevente deve iniziare a leggere il campo dati a partire dal
numero di byte specificato. Viene usato se si inviano comandi che danno inizio ad eventi asincroni
"urgenti". Ad esempio il comando Control-C in una sessione Telnet.
• Options; (lunghezza variabile) contiene varie opzioni di TCP (Maximum Segment Size, Window
Scale, Sack Permitted, Sack, Time Stamp).
• Padding; (lunghezza variabile) una serie di 0 inserita perchè la lunghezza dell'header TCP sia un
multiplo di 32 bit.
E finalmente
Quando due computer utilizzano TCP devono innanzitutto creare una sessione. La procedura attraverso la
quale la sessione viene stabilita si chiama "three way handshaking", o handshaking a tre vie.
Se il computer client PC1 vuole connettersi al computer server PC2, succede questo:
Al primo passo, PC1 attiva nel primo segmento il flag SYN per indicare a PC2 che il campo Sequence
number è valido e che quindi deve essere letto. Il valore settato da PC1 in quel campo è detto Sequence
number iniziale, o ISN (Initial Sequence Number). PC2 risponde attivando il flag SYN ed indicando un
proprio ISN, inoltre attiva l'ACK indicando l'ISN+1 di PC1. Infine PC1 attiva l'ACK indicando l'ISN+1 di
PC2. A questo punto la comunicazione è stabilita e PC1 può iniziare ad inviare gli altri segmenti.
Ad esempio:
1____PC1____PC2_____Si_________No____________2481573249_____1875913495
2____PC2____PC1_____Si_________Si____________408548955______2481573250
3____PC1____PC2_____No_________Si____________2481573250_____408548956
Un problema di questa tecnica è la vulnerabilità ad un famoso tipo di DoS (Denial of Service): il SYN-
Flooding. In sostanza il client (PC1) richiede decine e decine di connessioni al server vittima (PC2)
inondandolo di pacchetti SYN (inondare = to flood). PC2 risponde con tanti SYN-ACK, a cui però PC1
volutamente non risponde (in teoria dovrebbe completare gli handshake con un ACK per ogni
connessione). PC2 dopo un pò smette di aspettare, ma quando i SYN ricevuti sono troppi, rimane
pressochè paralizzato: dato che esiste un limite massimo al numero di connessioni che si possono
stabilire su PC2, un eventuale utente PC3 che si collega a PC2 non verrebbe accettato perchè tutti i canali
disponibili sono impegnati (ad aspettare ACK che non arrivano).
Una sessione TCP può essere in diversi stati. Potete visualizzare lo stato di tutte le connessioni in corso
sul vostro computer con il comando:
netstat -na
Elementi di base IP
Per prima cosa, esaminiamo alcuni elementi di base dei numeri binari.
Un byte è un gruppo di 8 bit binari. Dal momento che un bit binario è costituito da uno 0 o da un 1, un
byte consiste in otto 0 e/o 1. Come si fa a convertire questi valori in numeri decimali? Il bit più a destra
ha un peso di 1 (20). Il bit successivo alla sua sinistra ha invece un peso di 2 (21), quello successivo ha
un peso di 4 (22), in altre parole due elevato alla seconda potenza, e così via:
27 26 25 24 23 22 21 20
Se si assegnano degli 1 contigui a partire da destra, il diagramma di cui sopra si può usare come una
sorta di calcolatore. Supponiamo di avere dei bit binari 00001111; per ottenere l'equivalente decimale si
possono compiere i calcoli nel modo difficile, in altre parole:
0 0 0 0 1 1 1 1 : numero binario
Se a partire dal lato destro si hanno tutti 1, si può semplicemente prendere il peso del primo bit 0 (16 in
questo caso), sottrarre 1 e ottenere 15 - l'equivalente decimale - senza dover usare un calcolatore. Di
conseguenza, se tutti i bit sulla destra sono degli 1, si può calcolare il valore decimale usando il
diagramma di cui sopra come una sorta di calcolatore.
Si noti che, dal momento che i bit crescono in potenze di 2, il nono bit ha un peso decimale di 256. Di
conseguenza, se si ha un byte con tutti 1 (per esempio 11111111), esso ha un valore decimale di 255
(256-1). Il numero 255 compare molte volte nell'indirizzamento IP.
A questo punto bisogna costruire un altro calcolatore come utile referenza (vedere la tabella 1). Esiste un
elemento chiamato netmasking, che sarà esaminato più avanti. La procedura standard dice di iniziare la
mascheratura da sinistra e di lavorare verso il basso. Di conseguenza, se si pone a 1 l'ottavo bit (o bit di
ordine più elevato) e il resto uguale a 0, l'equivalente decimale è 128. Se si pongono a 1 i primi tre bit e
il resto a 0, l'equivalente decimale è 224, ecc.
INDIRIZZI IP (IPv4)
L'indirizzo IP identifica, in modo univoco, un elaboratore (host) nella rete (net). Esso è rappresentato da
una stringa composta da 32 bit (es. 00001010.00000001.00000000.11110000) divisi in 4 otteti (gruppi
di 8 bit).
Sommando i bit uno e zero di ogni otteto, si ottiene la notazione numerica/decimale che, in questo
esempio, corrisponde a: 10.1.0.240.
In pratica un indirizzo di rete si può rappresentare in forma binaria (bit) o decimale puntata.
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
Ogni indirizzo IP è costituito di due parti: un identificativo di rete (net ID) e un identificativo dell'host
(host ID). Per host si intende qualsiasi elaboratore che necessita di un indirizzo come p.c., workstations,
apparati di rete, stampanti, servers, ecc.
L'indirizzo 151.109.2.24 rappresenta la rete 151.109 e l'host 2.24. La suddivisione dei numeri fra net ID
e host ID, avviene attraverso la suddivisione in classi.
In pratica i bit del primo otteto distinguono le 5 tipologie standard di rete, identificate da una lettera dell'
alfabeto:
Il numero di rete è assegnato da un ente centrale, l'InterNIC, il numero di host è invece deciso dal
possessore di quel numero di rete. Quando il numero di host è fatto solo da '0', l'indirizzo esprime
l'indirizzo di rete. Quando è fatto di soli '1', indica un broadcast a tutti i nodi della rete.
N.B. : quando assegnate gli indirizzi IP alle vostre macchine, è buona norma non assegnare mai valori
già usati in Internet, per questo sono stati definiti indirizzi "sicuri": 10.0.0.0 (numero di rete=primi 8 bit),
172.16.0.0 (numero di rete=primi 20 bit), 192.168.0.0 (numero di rete=primi 16 bit), se non avete
particolari esigenze io vi consiglio quest'ultimo. Evitate come al solito i valori 0 e 255. Un'altra classe di
indirizzi riservata è 127.0.0.0 (numero di rete=primi 8 bit), che identifica il localhost, ossia il proprio
computer. In generale il mio consiglio è di assegnare alle macchine della vostra LAN gli indirizzi
192.168.x.y dove x rappresenta il numero di sottorete, e y il numero per il nodo, e come subnet
255.255.255.0. Tra parentesi, una macchina può essere collegata a più di una rete, avrà quindi due o più
indirizzi IP, uno per ogni rete. Tale macchina viene detta multi-homed e può svolgere le funzione di un
router (un altro nome usato è gateway, tuttavia questa parola ha anche altre definizioni e può generare
confusione).
Un indirizzo Ethernet, 48 bit, viene invece indicato con una notazione differente: 6 numeri esadecimali,
ma ognuno di essi continua ad esprime ancora 8 bit(8bit x 6n=48bit), es. 20-53-52-b8-1f-00. I valori
vanno da 00 a ff (che per l'appunto sono poi equivalenti in decimale a 0 e 255, cambia solo il modo di
scriverli). Anche qui i numeri 0 e ff non vanno usati, ma di questo non vi dovete preoccupare. Infatti gli
indirizzi Ethernet sono già scritti nelle schede di rete quando vengono fabbricate. Essi devono seguire le
disposizioni della IEEE in materia, secondo le quali non devono esistere due schede di rete con lo stesso
indirizzo.
cosa unisce l'indirizzo IP di una macchina con l'indirizzo fisico della scheda di rete di quella macchina?
Nulla! E' per questo che hanno inventato un altro protocollo molto importante: ARP, Address Resolution
Protocol.
IL SUBNETTING
Come abbiamo visto nelle sezioni dedicate all'IP, questo numero è specificato da 32 bit (4 Byte) es:
192.168.150.2:
Network Host
N.H.H.H
0 78 31
0 Network Host
N.N.H.H
0 1 15 16 31
1 0 Network Host
N.N.N.H
0 1 2 23 24 31
1 1 0 Network Host
Nel caso di maschere di sottorete non convenzionali, il campo Host viene ulteriormente suddiviso in due
parti. Subnet e host.
Questo caso si verifica quando è necessario dividere la rete in due segmenti separati, in modo che gli
host appartengano a due reti diverse, separate da un router.
La divisione in sottoreti
La segmentazione di una rete IP in più sottoreti, può rendersi necessaria per una varietà di motivi,
compreso l' organizzazione, l' uso di diversi accessi ai media fisici ( Ethernet, il FDDI, WAN, ecc.) e,
sopprattutto, per la razionalizzazione dell'indirizzamento IP. Non ultimo motivo, la sicurezza.
Il motivo più comune è quello di gestione del traffico della rete. In una rete di tipo Ethernet, tutti gli host
del segmento fisico vedono, e analizzano, tutti i pacchetti trasmessi da tutti gli altri host di quel
segmento. Le prestazioni della rete possono subire pesanti carichi e, quindi, rallentamenti e
collassamenti, dovuti alle collisioni e alle ritrasmissioni. L'uso dei router è indicato per segmentare le reti
(e segmentare, quindi, i domini di broadcast) per consentire un miglior rendimento generale. Le reti IP
segmentate minimizzano la quantità di traffico che ogni segmento deve gestire.
0 1
0 0 0
1 0 1
Lo stack TCP/IP di un host esegue, durante l'inizializzazione, un processo di AND fra il numero di IP e la
sua maschera di sottorete. Quando un pacchetto viene inviato in rete, il suo destinatario IP viene
sottoposto, anch'esso, ad un AND logico con la subnetmask. Se le risultanti dei due processi sono uguali
significva che il destinatario appartiene alla rete locale. Diversamente verrà inviato ad un router che
provvederà a smistarlo in una rete remota.
La mascheratura di sottorete è un indirizzo di 32 bit (simile al numero IP) che consente di "dividere" la
parte host da quella di rete. Questa maschera è fondamentale perchè grazie ad essa si riesce a
determinare se un IP fa parte della rete locale o va ricercato in una rete remota.
Come si vede dalla tabella, la risultante dell'AND LOGICO ci restituirà l'indirizzo di rete.
Possiamo dire che in una maschera di sottorete convenzionale tutti i bit dell' Net ID saranno settati a 1 e
tutti i bit dell'host ID saranno settati a 0.
Laddove intendiamo segmentare una rete locale in più sottoreti, abbiamo la necessità di utilizzare
maschere personalizzate dette "non convenzionali". Per fare questo utilizziamo una modalità diversa che
consiste nel'appropriarsi di bit dell' host ID (prendere in prestito dei bit dall'host) per definire la
mascheratura "non convenzionale".
Dobbiamo, quindi, prendere in prestito dei bit dalla porzione host e trasferirli in una porzione internedia
del numero IP per determinare una mascheratura non convenzionale:
In questo caso avremo tre campi distinti: Net ID, SubnetMask ID e Host ID.
Attenzione:
Il numero minimo di bit che dobbiamo rubare dalla porzione host è 2.
Il numero massimo di bit che possiamo rubare dalla porzione host è 6.
196.120.30.18 11000100.01111000.00011110.00010010
255.255.255.240 11111111.11111111.11111111.11110000
107.85.20.2 00000010
255.255.255.240 11111111.11111111.11111111.11110000
172.16.14.228 00001110.11100100
255.255.248.0 11111111.11111111.11111000.00000000
Esempio:
PROTOCOLLO ARP
Quando due computer su una stessa rete Ethernet vogliono comunicare, essi devono prima conoscere
l'indirizzo fisico. Ogni volta che usiamo TCP/IP su Ethernet e vogliamo comunicare con un sistema di cui
conosciamo solo l'indirizzo IP, viene spedita una richiesta ARP di tipo broadcast sulla rete. In essa si
chiede ai computer in ascolto quale sia l'indirizzo fisico corrispondente al quell'indirizzo IP. Il computer
interessato fornisce la risposta, noi la riceviamo, la mettiamo nella nostra ARP-Table, dopo di che
possiamo parlare con quel computer in modo diretto. Se in seguito abbiamo nuovamente bisogno di
parlargli, guardando nella ARP-Table, ci accorgeremo che conosciamo già l'indirizzo fisico, così non
dovremo neppure inviare una richiesta ARP.
Già che siamo in argomento, volevo farvi notare una curiosità che forse non tutti conoscono (ed al tempo
stesso vedrete ARP al lavoro sul vostro Pc). Quando siete in Internet, cioè adesso, lanciate da una
finestra Dos il comando "arp -a"; questo comando serve per vedere la ARP-Table. Scoprirete una cosa
strana: tutti gli indirizzi IP dei siti che avete visitato di recente, hanno l'indirizzo fisico uguale! Perchè?
Perchè in realtà quell'indirizzo fisico corrisponde al router del vostro provider. Questo perchè quando
cercate di accedere ad un sito dovete lasciare tutto in mano al router, il quale fare tutto il lavoro per voi,
come se fosse un maggiordomo virtuale.
Ora che abbiamo tutto pronto, e che conosciamo grazie ad ARP l'indirizzo fisico del destinatario, non resta
che spedire il tutto!
Nel sistema ricevente, tutti gli header saranno analizzati ed utilizzati opportunamente e via via rimossi.
PROTOCOLLO RARP
Rarp sta per Reverse Address Resolution Protocol, cioè Arp inverso. Infatti la sua intestazione è identica a
quella di Arp (tranne che per i numeri di identificativi utilizzati) ma il suo scopo è esattamente l'opposto:
scoprire l'indirizzo Ip (logico) corrispondente a un dato indirizzo Mac (fisico).
Ci si potrebbe chiedere che utilità abbia una cosa simile. Il fatto è che le workstation prive di disco non
hanno alcun modo per imprimere dati persistenti, se non su altre macchine. In altre parole, quando un
computer privo di disco viene spento, tutti i dati che aveva in memoria vanno persi. Quando poi viene
riacceso, si dovrà riconnettere alla rete; solo che non ricorderà il suo Ip! Mentre invece non può
"dimenticare" il suo indirizzo Mac, perchè è impresso nella memoria Rom (non volatile) della sua scheda
di rete.
Queste macchine, qualche anno fa, inviavano automaticamente una richiesta Rarp a un server Rarp,
specificando il proprio indirizzo fisico. Il server Rarp riceveva la richiesta, controllava la sua cache e, se
necessario, la sua tabella, poi rispondeva all'host privo di disco con una risposta Rarp contenente il suo
indirizzo Ip, che poi veniva conservato nella memoria Ram finchè il computer non veniva spento o
resettato.
Dico qualche anno fa perchè ormai il protocollo Rarp è in disuso: è stato sostituito da Dhcp, un protocollo
più efficiente e con più funzionalità che consente a un server di amministrare la configurazione Tcp/Ip dei
client.
Ogni Host può essere identificato con un nome. Infatti, se per un programma è necessario conoscere
l'indirizzo Ip di una certa macchina e forse anche il suo indirizzo fisico per poterle inviare qualsiasi cosa,
per un essere umano sarebbe impossibile ricordarsi a memoria questi indirizzi. Allora sono nati i nomi;
ogni computer e ogni dominio possiede un nome, che l'utente finale può inserire per indicare a quale
macchina vuole connettersi. Questo nome viene poi risolto in un indirizzo Ip tramite il Domain Name
System.
Nomi di host
Ogni singolo host ha un nome, che viene deciso dall'amministratore di rete. Questo nome può essere
scelto, ad esempio, in base alla funzione che svolge o in base alla persona che lo utilizza: www,
marketing, paola. Se qualcuno utilizza un host appartenente allo stesso dominio del computer Paola, gli
basterà scrivere paola per indicare ai vari programmi da quale computer vuole ottenere informazioni.
Nomi di dominio
Un dominio è un raggruppamento di nomi di host. Questi possono essere annidati l'uno dentro l'altro. Per
esempio un dominio può chiamarsi disney e contenere due sottodominii che si chiamano rispettivamente
pippo e topolino. Il sottodominio topolino (che si dice "dominio di secondo livello" in questo caso) può
contenere il dominio di terzo livello denominato pluto. Non c'è un limite alla quantità livelli di dominio.
disney
pippo.disney
topolino.disney
pluto.topolino.disney
Ovviamente questo era un esempio non particolarmente intelligente, si consiglia di scegliere nomi di
dominio più sensati, come ad esempio "servizio_clienti.marketing.nomeazienda".
Fqdn
Fqdn sta per Fully Qualified Domain Name, ossia nome di dominio completamente specificato. Esso
comprende il nome dell'host che si vuole raggiungere, seguito dal nome di dominio del quale fa parte. È
essenziale specificarlo se vogliamo connetterci a un host che non appartiene al nostro stesso dominio,
anche perchè un'infinità di host possono avere lo stesso nome ma essere situati in dominii differenti.
Nomi NetBios
NetBios è una Api (interfaccia di programmazione) che si trova agli strati Applicazione, Presentazione e
Sessione del modello Osi (e negli strati corrispondenti di altre implementazioni di Tcp/Ip).
Non ci dilunghiamo su di essa perchè non è questo il luogo, ma spieghiamo la forma e il significato di un
nome NetBios. Esso identifica un servizio di rete e l'host che lo esegue. Per poter utilizzare tale servizio,
tuttavia, occorre che esso venga risolto in un indirizzo Ip e un numero di porta (l'Ip identifica la
macchina, la porta precisa il servizio).
Tali nomi sono composti da 15 caratteri, mai uno di meno: se si inserisce un nome di 7 lettere, ad
esempio, il programma lo completerà automaticamente aggiungendo otto spazi. Vi è poi un sedicesimo
carattere "invisibile", che generalmente non viene mostrato: se è visualizzato appare come un numero
esadecimale a due cifre, che identifica il tipo di servizio associato a quel nome NetBios. Un nome NetBios
può essere composto da tutte le lettere dell'alfabeto minuscole o maiuscole, tutti i numeri, il carattere _
ed il carattere $. Altri caratteri sono ufficialmente consentiti, ma possono causare dei problemi e quindi
bisogna evitarli. Anche gli spazi andrebbero evitati, a parte quelli alla fine che servono ad allungare il
nome fino a 15 caratteri. Infine il simbolo $ va inserito alla fine se vogliamo che la risorsa identificata con
tale nome venga nascosta a tutti gli utenti della rete (tranne quelli che ne conoscono il nome).
Di solito il nome NetBios di tutti i servizi che vengono eseguiti da un server sono uguali al suo nome di
host. Sono distinguibili ugualmente grazie a quel sedicesimo carattere invisibile, che indica a quale porta
ci si sta rivolgendo.
Quando un dominio è collegato a Internet, deve essere inglobato in un dominio più grande, detto Top.
Per esempio, ftp.microsoft.com indica il nome host ftp, contenuto nel dominio "radice" chiamato
microsoft, che appartiene a sua volta al dominio Top chiamato com. Anche in questo caso, però non vi è
alcun limite al numero di livelli di sottodominii possibili.
Segue una tabella dei dominii top e il tipo di siti che sono destinati a contenere:
COM Siti commerciali
TV Mass media
COOP Cooperative
MUSEUM * Musei
Oltre a questi, che sono gestiti da InterNic, esistono dominii top formati da due lettere, che indicano
l'appartenenza a un determinato stato (es. IT=Italia, FR=Francia, CH=Svizzera, ecc) e sono gestiti da
autorità locali. Esiste anche un dominio top chiamato EU, che sta per Europe.
I dominii seguiti da un asterisco sono riservati, cioè vengono rifiutati a siti che non corrispondono ai
requisiti segnati a fianco. Gli altri vengono concessi a chiunque, ma può essere nell'interesse dei siti non
avere un estensione .ORG se svolgono attività commerciali, per esempio.
Url
L'url è l'indirizzo Internet che indica a quale risorsa si vuole accedere, su quale computer si trova, a quale
dominio appartiene, quale protocollo si intende utilizzare e a quale porta si deve inviare la richiesta.
Eccone la sintassi:
PROTOCOLLO://FQDN/PERCORSO/FILE:PORTA
Di tutti i servizi Internet, il Domain Name System (DNS) è uno tra i meno compresi ma allo stesso tempo
uno tra i più importanti. Definito negli RFC 1034 e 1035, il DNS ha l'importante compito di convertire i
nomi delle macchine collegate in rete in indirizzi IP e viceversa.
Ogni computer di Internet possiede un indirizzo numerico chiamato indirizzo IP, che identifica in modo
unico solo quella macchina. I computer hanno bisogno di questi indirizzi per poter comunicare.
Quando digitiamo nel browser l'URL http://www.networkingitalia.it, il DNS dell'Internet Provider, o del
server tramite cui accediamo ad Internet, traduce il nome mnemonico del sito nell'indirizzo IP
151.1.16.34.
Quando Internet muoveva ancora i primi passi, il collegamento tra due macchine veniva effettuato
solamente mediante gli indirizzi IP. Dato che gli indirizzi non sono certo facili da ricordare, si è deciso
molto presto di adottare l'uso di nomi simbolici al posto di indirizzi numerici. Questo nuovo modo di
identificare le macchine necessitava tuttavia di un qualche sistema in grado di tradurre gli indirizzi in
nomi e viceversa. Inizialmente la gestione delle corrispondenze tra indirizzi IP e nomi mnemonici di tutte
le macchine collegate, era affidata allo Stanford Research Institute Network Information Center (SRI-NIC)
che si preoccupava di mantenere tutte le corrispondenze in un singolo file, chiamato HOSTS.TXT. Tutte le
macchine periodicamente accedevano a questo file per ottenere una copia aggiornata.
Con la crescita esponenziale del numero di macchine collegate ad Internet, questo semplice sistema di
traduzione è stato presto abbandonato in favore di un sistema più flessibile, il Domain Name System, o
più semplicemente DNS, di cui ci occuperemo nel resto di questo articolo.
E' importante notare che l'uso del file HOSTS non è scomparso del tutto. Trova ancora applicazione
all'interno di reti di piccole dimensioni, dove l'uso un singolo file per mantenere le corrispondenze risulta
spesso molto più pratico che installare un server DNS interno. Nelle comunicazioni tra rete locale e rete
Internet rimane comunque indispensabile affidarsi ad un DNS.
Il sistema DNS è stato concepito nel 1982 quando nessuno si sarebbe aspettato uno sviluppo di Internet
pari a quello degli ultimi anni. Nonostante la sua età, ha dimostrato di essere un sistema in grado di
scalare molto bene all'aumentare delle macchine collegate.
Il DNS è un grande database distribuito. Questo significa che non esiste un unico computer che conosce
l'indirizzo IP di tutte le macchine collegata in Internet (come avveniva usando il file HOSTS). Le
informazioni sono invece distribuite su migliaia di macchine, i server DNS. Ognuno di questi server è
responsabile di una certa porzione del nome, detta dominio. I server sono organizzati secondo una
struttura gerarchica ad albero che presenta forti somiglianze con la struttura del file system UNIX. Il suo
nome è albero dei domini.
Si tratta di un albero inverso al cui capo troviamo il dominio radice (di solito denotato con un punto '.') e
dove ogni nodo dell'albero corrisponde ad un dominio, o equivalentemente, al server DNS che lo gestisce.
Le foglie dell'albero sono i nomi delle macchine.
Per fare un esempio prendiamo il sito www.networkingitalia.it. Il nome www.networkingitalia.it è il
dominio di livello più basso, al di sopra di esso troviamo networkingitalia.it. Questo a sua volta è un
sottodominio di .it. "www" è per convenzione il nome della macchina che risponde alle richieste di pagine
html.
Come è noto, quando un utente digita un nome di dominio, i nomi dei singoli nodi vengono separati dal
punto '.'. Questi nomi vanno dal più specifico (più lontano dalla radice) verso il meno specifico (più vicino
alla radice). Dato che un nome di dominio completo finisce con l'etichetta radice, e che questa è sempre
rappresentata da una stringa nulla, un nome completo finisce sempre con un punto. Se non viene
specificato il punto, quello che abbiamo è un nome incompleto. Di solito i nomi incompleti vengono
completati automaticamente dal software, provando con il dominio locale e con alcuni domini predefiniti,
tra cui il '.' della radice. Quindi se viene omesso il punto finale quando si digita un nome di dominio,
questo viene facilmente riconosciuto come un nome da risolvere rispetto al dominio radice. Allo stesso
modo la macchina host1.networking.net.wind.it. può comunicare con la macchina
host2.networking.net.wind.it. usando solo la stringa 'host2'.
Il dominio radice, o dominio di root, che troviamo a capo dell'albero contiene un elenco di tutti i server
DNS dei domini di primo livello. Sparsi per Internet esistono una decina di DNS radice, ma sono usati solo
per creare ridondanza e contengono tutti le stesse informazioni.
Al di sotto dei domini di alcuni paesi esiste una gerarchia che rispecchia quella dei domini di primo livello.
Ad esempio i nomi delle organizzazioni commerciali di Regno Unito (.UK) e Giappone (.jp) finiscono
rispettivamente in .co.uk e .co.jp, mentre l'equivalente dei .edu sono .ac.uk e .ac.jp (dove ac è
l'abbreviazione di academic).
Un DNS che copre un dominio di primo livello conosce gli indirizzi di tutti i DNS di secondo livello
sottostanti ad esso. Quindi un DNS .it conosce tutti i domini del tipo qualche-cosa.it
Un DNS di secondo livello di una certa organizzazione conosce a sua volta tutte le macchine il cui nome
Internet finisca con nome-organizzazione.it. Tra queste, come già accennato, molto spesso troviamo la
macchina speciale "www", che identifica il server Web della società. Il suo compito consiste nel
rispondere alle richieste di pagine Html. Ogni dominio viene amministrato da un'organizzazione. Ad
esempio il dominio .it è amministrato dalla Registration Authority Italiana. Molto spesso queste
organizzazioni delegano l'amministrazione dei loro sottodomini a terzi. Quindi ad esempio il dominio
wind.it viene gestito da Wind per delega dalla Registration Authority, il dominio net.wind.it è gestito da
Net per delega da Wind.
Tutte le informazioni relative alla zona coperta da un server DNS vengono memorizzate in un file sotto
forma di Resource Record (RR).
Associato ad un nome di dominio possiamo trovare più RR, ciascuno contenente informazioni di vario
tipo, ma relative sempre allo stesso nome. L'ordine in cui vengono memorizzati non è importante.
Vediamo ora il meccanismo DNS al lavoro.
Quando un utente desidera collegarsi con il sito www.networkingitalia.it vengono eseguiti i seguenti
passi.
1. Sul computer dell'utente viene consultato il file HOSTS alla ricerca del server WWW di
Networkingitalia.
2. Non trovandolo, viene effettuata una richiesta al proprio server DNS. Questo può essere il DNS
del provider Internet, oppure, se il computer è installato in una rete collegata direttamente ad
Internet, è probabile che il server DNS sia interno.
3. Dato che il server contattato si limita a coprire solo la sua zona (nel caso del DNS del provider si
tratterà della zona al di sotto di nomeprovider.it, nel caso di un DNS interno la zona coperta sarà
del tipo nome-organizzazione.it) la richiesta viene inoltrata ad un DNS radice.
4. Il DNS radice non conosce l'IP per www.networkingitalia.it ma conosce i Resource Record di tipo
NS dei server DNS .it e li restituirà al primo DNS.
5. A questo punto il nostro DNS inoltra la stessa richiesta verso l'indirizzo di un DNS .it
6. Il DNS .it non conosce l'IP per www.networkingitalia.it ma conosce i RR NS relativi ai DNS che
gestiscono il dominio networkingitalia.it e li restituirà al primo DNS.
7. Il nostro DNS ora contatta uno di questi DNS, il quale finalmente conosce l'IP per
www.networkingitalia.it e lo restituisce sotto forma di RR di tipo A.
8. Il DNS restituisce al computer dell'utente l'indirizzo IP per www.networkingitalia.it.
Come si vede, la ricerca di un indirizzo IP molto spesso non è un operazione diretta. Questo perchè come
già detto, il database DNS non è localizzato in una sola macchina.
Questa procedura è detta risoluzione del nome. Si tratta di una procedura client server. Il client (detto
anche resolver) è in esecuzione sulle macchine collegate in rete e si occupa di effettuare al DNS le
richieste di traduzione da indirizzi in nomi e viceversa. Il server è il server DNS e si occupa di rispondere
alle richieste del resolver seguendo i passi appena visti. Data la brevità e la semplicità delle richieste e
delle relative risposte, il protocollo usato è per lo più l'UDP, che ricordo, fornisce una comunicazione
meno affidabile ma più veloce. Più raramente si usa il TCP. La porta usata dal servizio DNS è la numero
53.
Il modo di procedere nella risoluzione del nome è detto ricorsivo se viene chiesto al DNS di fare tutto il
lavoro ed alla fine di restituire la risposta. E' non ricorsivo se invece della risposta può venire restituito un
riferimento ad un altro DNS.
Un server DNS è in grado di gestire i riferimenti, quindi può usare entrambi i metodi per risolvere la
richiesta. Il resolver usa invece il metodo ricorsivo perchè non è in grado di seguire i riferimenti, quindi
lascia tutto nelle mani del suo DNS. I server radice sono non ricorsivi: se non hanno la risposta,
forniscono gli indirizzi di chi la possiede. I server DNS dei provider sono ricorsivi nei confronti dei
computer dei propri utenti perchè cercano la risposta e quando la trovano la restituiscono al client.
Così come per i DNS radice per ogni zona ci possono essere diversi DNS. Il numero massimo si aggira
intorno ai 10-12 DNS. Questo numero è limitato da quanti DNS è possibile elencare in un pacchetto UDP
di risposta e varia a seconda di quanto bene si riesce a comprimere l'elenco nel messaggio.
I server DNS sono in grado di effettuare caching, cioè possono ricordare le interrogazioni effettuate più di
recente e le relative risposte. In questo modo la risoluzione di un nome molto richiesto può essere
soddisfatta immediatamente, senza dover inoltrare la query ad un DNS radice. Nel nostro esempio il DNS
dell'utente ha interpellato il DNS radice per conoscere uno dei DNS .it
In realtà è molto probabile che questa informazione si trovi già nella cache del server DNS.
Come abbiamo visto ogni RR contiene un campo TTL (Time To Live) che indica in secondi quanto a lungo i
server DNS terranno l'RR in cache. Di solito il valore è di 86400 secondi (24 ore).
• Header: Indica se il messaggio è una richiesta o una risposta, contiene alcuni flag, i codici di
errore ed altre informazioni relative al pacchetto.
• Question: contiene la domanda per il DNS.
• Answer: contiene un elenco di RR che rispondono alla domanda.
• Authority: contiene un elenco di RR NS di server DNS che portano più vicino alla risposta.
• Additional: contiene un elenco di RR con informazioni utili per rispondere alla domanda, anche se
non si tratta della risposta.
Nell'header troviamo tra le altre cose il flag AA (Authoritative Answer). Quando è attivo, nei messaggi di
risposta, indica che il DNS che ha generato la risposta (direttamente o indirettamente) è il server
autoritativo per quella zona. Se la risposta viene memorizzata nella cache del nostro DNS, effettuando la
stessa richiesta, otterremo la stessa risposta ma con il flag AA non attivo, ad indicare che la risposta non
è autoritativa.
Una particolarità dei messaggi di risposta è che il campo Authority, contenente i RR che portano verso i
server autoritativi, viene riempito anche se il messaggio è la risposta. Se chiediamo un record A
contenuto nella cache, la risposta come è stato detto è non autoritativa. Tuttavia il campo Authority
contiene ancora gli indirizzi autoritativi, cioè permette di sapere quali sono i server DNS a cui rivolgersi
per avere la risposta autoritativa.
Per il corretto funzionamento di tutto questo meccanismo ogni server DNS deve avere due tipi di
informazione. Il primo tipo riguarda i domini direttamente coperti dal DNS. Il secondo tipo è l'indirizzo del
DNS radice a cui rivolgersi nel caso una richiesta non possa essere risolta internamente. Si può trovare la
lista ufficiale dei DNS radice al seguente indirizzo:
ftp://ftp.rs.internic.net/domain/named.root
Inoltre ogni macchina in rete deve essere configurata in modo da conoscere l'indirizzo IP del DNS che
dovrà usare (a meno che questa informazione non venga fornita automaticamente).
Un'altra peculiarità del DNS è la capacità di fornire servizi di load balancing e fault tolerance. Per far
questo vengono associati gli indirizzi IP di diverse macchine ad un solo nome. Il computer dell'utente
sceglierà a caso uno di questi indirizzi. Server DNS più sofisticati sono in grado di restituire un solo
indirizzo IP basandosi sul carico delle macchine e sulla loro disponibilità.
Per ottenere il nome di una macchina sapendo l'indirizzo IP le cose diventano più complesse. Sapere i
nomi a partire da indirizzi IP torna utile per varie ragioni. Ad esempio, per produrre un output leggibile
nei file di log, altre volte viene usato per controlli di autenticazione.
Per ricavare un indirizzo IP dato il nome, si può seguire la struttura gerarchica dell'albero dei domini nel
modo visto in precedenza. Per effettuare l'operazione inversa non è più possibile seguire questa
gerarchia. Per rendere possibile questo servizio è stato riservato il dominio speciale "in-addr.arpa",
chiamato anche dominio inverso. Termina in "arpa" perchè Internet era originariamente denominata
ARPAnet. Dato che i nomi dei domini sono organizzati in modo tale da avere la parte più significativa a
destra, mentre gli indirizzi IP, nel formato decimale, hanno i byte più significativi a sinistra, è necessario
creare il nome di dominio inverso mettendo i numeri dell'indirizzo IP in ordine inverso e aggiungendo in-
addr.arpa alla fine. In questo modo viene rispettata la natura gerarchica del DNS. Un esempio di dominio
in-addr.arpa può essere 34.16.1.151.in-addr.arpa Quando viene effettuata una richiesta di traduzione da
IP a nome, viene effettuata una normale ricerca del nome di dominio. Ad esempio se in Unix si digita il
comando "nslookup 151.1.16.34" viene eseguita una ricerca per il nome di dominio "34.16.1.151.in-
addr.arpa". Per poter funzionare sono presenti nei DNS i RR di tipo PTR il cui funzionamento ricalca a
grandi linee quello dei record A.
Il server DNS ha un'altra importante funzione oltre a quelle viste finora. Gioca infatti un ruolo molto
importante nella gestione della posta elettronica. Normalmente quando si pensa alla posta elettronica si
pensa che il mail server del computer mittente debba solo conoscere il mail server del dominio del
destinatario per arrivare a destinazione. Se questo fosse vero il mail server del mittente si limiterebbe ad
interrogare il proprio DNS per scoprire l'indirizzo IP del mail server del destinatario. In realtà il DNS non
si limita a fornire un servizio di traduzione da indirizzi IP a nomi e viceversa. E' infatti in grado di fornire
alcune utili informazioni di routing per la posta al mail server mittente.
Per ogni dominio che è in grado di ricevere posta, il DNS è in grado di fornire una lista di computer a cui
si può inviare il messaggio. In questo modo, se il mail server principale del destinatario non è operativo,
è possibile inviare il messaggio verso un computer di backup in grado di gestire la posta altrettanto bene.
Queste informazioni sono contenute nei record MX (Mail eXchanger). Il mail server deve sempre chiedere
al proprio DNS quali host possono gestire la posta per un certo dominio. Inserendo informazioni
appropriate nei record MX di un DNS si può informare il mail server associato a quel DNS che, per un
certo dominio, esistono varie macchine che possono ricevere la posta. Ogni record MX restituito al mail
server contiene tra le altre cose un valore di preferenza. Il valore di preferenza indica al mail server un
ordine di scelta tra gli host MX a cui è possibile consegnare il messaggio per il dominio specificato.
Quando si allaccia il proprio computer o la propria rete ad Internet è essenziale disporre di un servizio
DNS in modo da trovare e farsi trovare sulla rete. Per far questo ci sono sostanzialmente due strade. La
prima è di affidarsi ai server DNS di un provider Internet. La seconda è di installare un server DNS
all'interno della propria rete.
Nel primo caso bisogna contattare un Internet Service Provider informandolo riguardo i record che si
vogliono inserire per permettere l'accesso dall'esterno. L'Isp informerà la Registration Authority del fatto
che esso fornisce servizi DNS per il o i computer che si vogliono allacciare ad Internet. Fatto questo si
procede con il configurare le proprie macchine in modo che usino i DNS dell'Isp.
Se invece si vuole dotare la propria rete di un server DNS interno bisogna prima di tutto dotarsi di due
server DNS, uno primario ed uno secondario, altrimenti l'InterNIC o la RA Italiana non acconsentiranno
all'inserimento del nome di dominio nel database dei propri DNS. Fatto questo si procede alla
registrazione di un dominio presso la Registration Authority. A questo punto si possono configurare i
propri DNS per strutturare al meglio la propria rete.
Un secondo server DNS è sempre richiesto per ragioni di fault tolerance. Le informazioni contenute nel
DNS secondario sono una copia del primario. Periodicamente (di solito ogni 6 ore, ma è possibile
specificare qualsiasi intervallo) il DNS secondario interroga il primario per controllare se la tabella dei
domini indirizzati è cambiata. In caso affermativo questa viene copiata nel secondario.
La Registration Authority varia a seconda del dominio di primo livello sotto cui si vuole inserire la propria
organizzazione. Come abbiamo detto, per il dominio .it esiste la Registration Authority Italiana
(http://www.nic.it/RA). Nel caso si usi uno dei domini generici .com, .edu, .gov, .org, .net bisogna
rivolgersi all'InterNIC (http://www.internic.net). L'autorità centrale al di sopra di queste organizzazioni e
responsabile del coordinamento e della gestione del sistema DNS è l'Internet Assigned Numbers Authority
(IANA).
Si può trovare una lista dei domini di primo livello e delle relative organizzazioni che li gestiscono al sito
http://www.norid.no/domreg.html
Avere il proprio server DNS comporta diversi vantaggi, tra cui una più veloce risoluzione dei nomi dato
che il server DNS dell'Isp è di solito piuttosto caricato di traffico. Inoltre, nel caso ci siano frequenti
cambiamenti nei nomi delle macchine della propria rete, si può effettuare l'aggiornamento dei propri DNS
in modo diretto, mentre con un Isp bisogna aspettare un certo intervallo di tempo, di solito stabilito
dall'Isp stesso.
Se ciò che vogliamo è solo risolvere i nomi più velocemente senza registrare alcun dominio e senza
rivolgersi all'Isp o all'Authority, è sufficiente impostare un server DNS con semplici funzioni di caching.
Questo sistema velocizza le richieste di risoluzione, specialmente se il DNS del proprio Isp è
sovraccaricato. Inoltre questo sistema funziona senza problemi anche con gli indirizzi IP dinamici. Un DNS
caching è un server non autoritativo. Ottiene tutte le sue informazioni dai server DNS primario e
secondario, non ha autorità su nessuna zona e richiede almeno un RR NS da cui poter ricavare
inizialmente informazioni.
A questo punto è opportuno fare una precisazione. Ciò di cui abbiamo parlato è la registrazione di un
nome di dominio. Non stiamo parlando dell'attribuzione di indirizzi IP per le proprie macchine. Per fare
questo ci sono altre organizzazioni, come la RIPE per Europa, Medio Oriente e parte dell'Africa, l'ARIN per
Nord e Sud America, Caraibi e Africa Sub-Sahariana, e l'APNIC per l'Asia del Pacifico. Diversamente dal
caso dei nomi, per avere un indirizzo IP fisso rivolgersi al proprio Isp è spesso l'unica strada dato che gli
indirizzi non vengono rilasciati direttamente agli utenti finali ma solo agli Isp e ad altre organizzazioni che
fanno uso di un grande numero di indirizzi.
E' bene notare che i server DNS non producono nessun tipo di broadcast per rendersi visibili nella rete. E'
necessario effettuare la registrazione presso l'autorità sotto la quale vogliamo comparire. Se si installasse
un server DNS senza registrare il dominio che si intende coprire, questo non avrebbe effetto sulla rete
perchè il server DNS di livello superiore non lo indirizza (o ne indirizza un altro se il dominio è già stato
registrato da un'altra organizzazione).
Per ottenere informazioni su un dominio e sul suo gestore esiste un sistema, il WHOIS (definito nell'RFC
954), che permette di collegarsi ed effettuare richieste ad un server NIC.
Esistono diversi database Whois in Internet. Whois fornisce solo le informazioni registrate presso quel
server NIC. in particolare citiamo whois.internic.net e whois.nic.it, entrambi accessibili sulla porta 43.
Per accedervi è sufficiente lanciare il comando:
telnet whois.nic.it 43
IL PROTOCOLLO TELNET
Telnet, descritto nell'RFC 854, è un noto programma che permette di effettuare il login da remoto.
Effettuare un login remoto significa sostanzialmente collegarsi ad un computer ed avere la possibilità di
digitare tasti sulla propria tastiera come se questa fosse direttamente collegata a quel computer. E' anche
possibile lanciare da remoto comandi e programmi. Oltre a questo, Telnet si occupa di rimandare indietro
fino allo schermo dell'utente, l'output della macchina remota.
Il client Telnet è disponibile nella maggior parte delle implementazioni del TCP/IP, inclusi Windows e Unix.
La macchina a cui ci si collega deve essere predisposta per accettare connessioni Telnet. Di solito le
macchine Unix permettono il login remoto, mentre i sistemi Windows non lo consentono.
Per lanciare Telnet da Windows è sufficiente selezionare Esegui dal menu Start e scrivere il comando
telnet <nome dell'host>
oppure
telnet <indirizzo IP dell'host>
Telnet usa un modello client-server. Questo significa che c'è una macchina, il server, che rimane in attesa
delle connessioni, ed un'altra macchina, il client, che effettua la connessione al servizio Telnet offerto dal
server. Quando si lancia Telnet sul proprio computer, si sta lanciando il client di Telnet. Solitamente la
porta usata dal server per ricevere connessioni è la numero 23. Dato che il processo server in ascolto su
questa porta deve poter gestire più connessioni contemporaneamente, esso crea per ogni richiesta di
comunicazione Telnet, un nuovo processo figlio, identico al padre, a cui affidare la gestione della
connessione.
A questo punto ogni nuovo processo collega il flusso di dati generato sulla porta 23 dal client con uno
pseudoterminale del sistema. Il termine pseudoterminale si usa per indicare il punto di ingresso (entry-
point) nel sistema operativo attraverso il quale i programmi di login remoto (come Telnet, RLogin o SSH)
possono immettere caratteri, come se essi provenissero direttamente da un terminale reale, come la
tastiera del computer. Lo pseudoterminale quindi possiede, oltre alle caratteristiche di un vero terminale,
la possibilità di fornire l'accesso al sistema anche da una locazione remota.
Il server Telnet è un programma che opera a livello applicativo. Questo comporta sia vantaggi che
svantaggi. Il vantaggio più ovvio è che risulta più semplice la modifica ed il controllo del server rispetto al
caso in cui il codice sia contenuto nel sistema operativo. Lo svantaggio è chiaramente l'inefficienza,
poichè ciascun carattere deve viaggiare dalla tastiera dell'utente, attraverso il sistema operativo, fino al
client Telnet, dal programma client deve tornare al sistema operativo e poi, attraversando la connessione
TCP/IP, arrivare alla macchina remota. Qui, i dati devono arrivare, passando per il sistema operativo, fino
al programma Telnet server, e da quest'ultimo di nuovo al sistema operativo in uno dei suoi dispositivi di
pseudoterminale. Alla fine, il carattere arriva al programma applicativo che l'utente stava facendo
correre. L'output (compresi i caratteri di echo, se tale opzione è stata selezionata) viaggia a ritroso dal
server al client lungo lo stesso percorso.
IL PROTOCOLLO FTP
Il protocollo FTP è utilizzato per la gestione di files su un server, è un protocollo di alto livello infatti si
trova nello strato "application" della scala TCP-IP ed è un protocollo di tipo client-server.
L'rfc (il "documento ufficiale") che espone lo standard FTP è la numero 959, naturalmente in lingua
inglese con 30 pagine tecniche che spiegano per filo e per segno tutte le potenzialità di questo protocollo,
per quanto riguarda questo documento rappresenta una sintesi, riferita in particolare ai comandi utilizzati
e ai messaggi di errore, con qualche facile esempio da implementare immediatamente.
Innazitutto bisogna conoscere il dominio di un server-FTP, la porta a cui dobbiamo connetterci è la 21,
come espresso dalla rfc numero 1060: "ftp 21/tcp"; per la connessione usate un client telnet, su windows
andate su avvio\esegui...\ftp; su Linux, beh, avete la vostra shell, digitate ftp e connettetevi;
Una volta stabilità la connessione compare il seguente banner di benvenuto "220 FTPDaemon- Server",
con la versione e il nome del server daemon che gira su quel dominio, il numero 220 sta ad indicare che il
server è pronto per un nuovo utente (in calce all'articolo trovare le spiegazioni dei numeri)
<utente>user tuousername
<server>331 Password required for tuousername.
<utente>pass tuapassword
<server>230 User username logged in.
<utente>HELP
<server>214-The following commands are recognized (* =>'s unimplemented).
<server>USER PASS ACCT* CWD XCWD CDUP XCUP SMNT*
<utente>quit
<server>221 service closed
I Comandi FTP:
COMANDI FTP
USER PASS ACCT CWD CDUP SMNT REIN
QUIT PORT PASV TYPE STRU MODE TURN
RETR STOR STOU APPE ALLO REST RNTO
ABOR DELE RMD MKD PWD LIST SITE
SYST STAT HELP NOOP
TIPO_DI_TRANSAZIONE(COMANDO):
Come ho già accennato la procedura di identificazione può avvenire con un normale telnet client,
l'argomento del comando user deve identificare l'utente, in questa maniera si otterrà l'accesso ad una
porzione del server , alcuni server richiedono anche la password o un sistema di accounting. E' possibile
una modifica dei parametri user-id e password.
PASSWORD (PASS)
Anche in questo caso la shell ci permette di inviare la stringa con la password relativa ad un dato utente.
Questo comando è sempre preceduto dal comando di identificazione dell'username, e per alcuni siti
completa l'identificazione. Inoltre la password è un dato molto importante, che non può essere ne
mascherata ne si può evitare di digitarla (in realtà si può : ), quindi la responsabilità è attribuita
all'utente-FTP per fare in modo di nascondere la password.
Torna su
ACCOUNT (ACCT)
L'argomento di questo comando identifica l'account dell'utente. In questo caso il server può richiedere un
account per accessi specifici, ad esempio per conservare files etc.
Ci sono due diverse repliche nell'inserimento della PASSword da cui possiamo capire se è necessario
inserire l'account, la prima quando il server non necessita dell'account allora il numero che replicherà
sarà 230, l'altra replica un 332 che significa un'azione necessaria per completare il login oppure
direttamente la 332 in caso di azione su files.
Questo comando permette all'utente di lavorare su una directory differente, basta inserire il comando e
come argomento il nome della directory.
Questo comando permette all'utente di montare un differente file system in una differente struttura dati
senza bisogno di cambiare le informazioni relative all'accesso. L'argomento è un percorso specifico.
REINITIALIZE (REIN)
Il comando termina un utente, l'account information e l'I/O riferito ai files eccetto quelli in corso.
Torna su
LOGOUT (QUIT)
Questo comando server per chiudere la connessione con il server, il server dovrà attendere che siano
finite tutte le operazioni sui files.
L'argomento è una specificazione di HOST-PORTA per la porta da utilizzare nella connessione ai dati. Sia il
server che l'utente hanno delle porte di default da utilizzare, e di solito questo comando non viene
utIlizzato, Se questo comando dovesse essere utilizzato allora deve essere scritto nel seguente modo:
PORT h1,h2,h3,h4,p1,p2
PASSIVE (PASV)
Questo comando richiede il server-DTP in ascolto su una data porta, attendendo una connessione, il
comando restituirà l'host e la porta alla quale connettersi.
\/
A - ASCII | | N - Non-print
|-><-| T - Telnet format effectors
E - EBCDIC| | C - Carriage Control (ASA)
/\
I - Image
Torna su
Di default si utilizza F.
Si può scegliere:
S - Stream
B - Block
C - Compressed
Torna su
Questo tipo di comandi definiscono il trasferimento dei files o la gestione degli stessi:
RETRIEVE (RETR)
Questo comando permette la ricezione di un file che verrà creato sul server.
Torna su
Questo comando è simile al STOR, ad eccezione che il file viene creato nella directory corrente sotto il
nome unico della directory.
Questo comando permette la creazione di un file se il file esiste già allora i dati verranno aggiunti in calce
al file già esistente.
ALLOCATE (ALLO)
Questo comando serve per garantire sufficiente spazio ad un file che deve essere creato, in maniera che
non vi siano problemi di storage successivi.
Torna su
RESTART (REST)
Questo comando dice al server che il file trasferito deve essere reinizializzato.
Questo comando specifica il vecchio percorso di un file che deve essere rinominato. In seguito si dovrà
lanciare il comando di rinominazione.
Torna su
RENAME TO (RNTO)
ABORT (ABOR)
Questo è un comando molto potente, che permette l'aborto delle azioni in corso.
Torna su
DELETE (DELE)
Torna su
LIST (LIST)
Torna su
Questo comando specifica particolari attività del server, per maggiori informazioni digitare HELP SITE.
SYSTEM (SYST)
Questo comando è utilizzato per scoprire il tipo di sistema che opera sul server.
STATUS (STAT)
HELP (HELP)
Questo comando lista un HELP per l'utenza, si può specificare come argomento un comando.
NOOP (NOOP)
Questo comando specifica il no operation, una volta che avviene la replica del server non si potranno
effettuare operazioni.
Torna su
Questa è la sintassi:
Quando nel testo compariranno dei simboli come <CRLF> e <SP>, rispettivamente significano INVIO e
SPAZIO (user <SP> <username> <CRLF>), mentre le "<>" es. <usernmame>, possono essere
ommesse.
USER <SP> <username> <CRLF>
CDUP <CRLF>
QUIT <CRLF>
REIN <CRLF>
PASV <CRLF>
STOU <CRLF>
ABOR <CRLF>
PWD <CRLF>
SYST <CRLF>
Fine del protocollo FTP, alcune parti sono state tagliate perché o troppo specifiche o troppo complesse,
per chi volesse approfondire il protocollo FTP in Inglese è sufficiente leggere la rfc 959.
IL PROTOCOLLO SMTP
Il protocollo SMTP (Simple Mail Transfer Protocol) è quel servizio che si occupa di smistare la posta sulle
reti TCP/IP. Una conoscenza di base permette, anche all'utente meno esperto, di spedire una Email
utilizzando un semplicissimo client di Telnet. Questo protocollo ci permette, inoltre, di comprendere a
fondo come lavora il nostro mailer.
La RFC (il "documento ufficiale") che espone lo standard SMTP è la numero 821. Essendo al stessa molto
tecnica, ci limiteremo a sintetizzare in questo documento le sezioni relative ai comandi utilizzati e ai
messaggi di errore, con qualche facile esempio da implementare immediatamente.
Assumendo la conoscenza del nome di dominio di un server-SMTP (o del suo IP number), la porta a cui si
richiede la connessione è, quasi sicuramente la n. 25, come espresso dalla rfc numero 1060: "smtp
25/tcp mail";
helo dominio
250 mail.dominio.it
mail from:<amico@ciao.it>
250 MAIL FROM:<amico@ciao.it> OK
rcpt to:<destin@tario.it>
250 RCPT TO:<destin@tario.it> OK
data
354 Start mail input; end with <CRLF>.<CRLF>
ciao, questa è una prova...
.
250 <3AB8900000490F69> Mail accepted
Una specificazione è d'obbligo: il protocollo SMTP non è case-sensitive, cioè i comandi scritti in minuscolo
o in MAIUSCOLO avranno lo stesso effetto, perciò si può scrivere ad es:
COMANDI SMTP
HELO MAIL RCPT DATA SEND SOML SAML
RSET VRFY EXPN HELP NOOP QUIT TURN
I comandi e la sintassi:
TIPO_DI_TRANSAZIONE(COMANDO):
HELLO (HELO)
Questo comando serve per identificare il client (sender-SMTP), l'argomento contiene l'host name dello
stesso client. Il server si identifica nella fase di connessione (con l'apposito banner di saluto, un biglietto
da visita); il server risponderà con un messaggio di OK, in questo caso i buffers e le tabelle sono tutti
puliti.
Torna su
MAIL (MAIL)
Questo comando è utilizzato per inizializzare la vera e propria transazione. In questo caso si deve indicare
il mittente (reverse-path), a cui è riferita la creazione della e-mail; ci possono essere più host mittente a
cui è riferita la e-mail, che in caso di mancata consegna, riceveranno l'annotazione.
Questo comando pulisce i buffer, e inserisce nello stesso buffer dedicato al mittente, l'e-mail del client.
RECIPIENT (RCPT)
Per chi non ha dimestichezza con l'Inglese, recipient significa ricevente; questo comando è usato per
identificare il destinatario della Email. Si possono creare più destinatari con l' uso multiplo di questo
comando.
La forward-path consiste in una lista opzionale di hosts destinatari, ma almeno una mail-box obbligatorio.
Può anche capitare che il dominio della Email non venga riconosciuto, in questo caso si verificherà un
errore (550 mail box unaviable).
DATA (DATA)
Una volta digitato questo comando il server capirà che i successivi dati fanno parte del body della e-mail;
questo comando, inoltre, prepara l'apposito buffer al ricevimento; c'è da ricordare che il campo in cui vi
sono i dati può essere composto solo dei 128 caratteri ASCII, in pratica tutti i caratteri di una tastiera.
I dati della Email terminano quando vi è una linea con solo un punto, quindi bisogna seguire questa
sequenza"<CRLF>.<CRLF>", questo rappresenta la fine del body. La fine della Email data indica al server
di poter processare immediatamente i dati nei buffers raccolti durante la transazione. Al termine di
questa operazione i buffers verranno puliti. Se il processo è andato a buon fine il server risponderà con
un OK, se invece fallisce si spedirà un'e-mail di reply.
data<CRFL>
Mail Accepted
Ogni volta che la mail deve passare per un server-SMTP, quest'ultimo lascerà negli header della stessa un
così detto "Time Stamp", con varie informazioni sull'host, etc., Una volta arrivati all'ultimo server,
quest'ultimo scriverà all'inzio la c.d. return path, con la mail-box del mittente.
Torna su
SEND (SEND)
Questo comando serve per spedire una Email ad uno o più terminali. Questo comando di seguito
necessita la Email del mittente. Questo comando pulisce i buffers, e inserisci le informazioni nel buffer
dedicato alla Email del mittente
Questo comando serve per spedire un messaggio ad un terminale, oppure alla sua mail-box. Se il
terminale è attivo allora riceverà il messaggio, se no verra inviato nella sua mail-box.
Questo messaggio, invece, spedisce ad ambedue, sia al terminale che alla sua mailbox, ricordiamo che
alla fine di questo comando c'è sempre la pulizia dei buffers e il loro riempimento.
RESET (RSET)
Questa procedura indica la volontà di voler abbortire la transazione Email, ogni buffer verrà
immediatamente ripulito e si ricomincerà da capo, il server dovrà spedire un OK di conferma.
Torna su
VERIFY (VRFY)
Questo comando vuole avere la verifica della e-mail di un utente; non si portano modifiche ai buffers.
EXPAND (EXPN)
Questo comando vuole ricevere conferma che il suo argomento (quello che si inserisce dopo il comando),
faccia parte di una mailing list, se è così si restituirà gli appartenenti alla mailing list; si restituirà il nome
dell'utente e della sua mailbox, come il comando VERIFY non si apportano modifiche ai buffer.
HELP (HELP)
Questo comando restituisce la lista degli aiuti forniti dal server; di solito se si vogliono sapere
informazioni su un particolare comando, quest'ultimo diventa l'argomento dell'HELP, questo comando non
causa effetti ai buffers.
NOOP (NOOP)
Questo comando specifica di non poter fare nessuna operazione, il server spedirà un OK di conferma; non
si apportano modifiche ai buffers.
Torna su
QUIT (QUIT)
Questo comando è la fine della transazione, il server risponderà con un messaggio di conferma e
chiuderà la transazione stessa.
TURN (TURN)
Questo comando è molto particolare, perché serve per invertire i ruoli tra il server ed il client. Se il client
spedisce questo comando il server lo può rifiutare, oppure può rispondere con un messaggio di conferma
e diventare lui un client-SMTP.
Sintassi:
Premessa: quando nel testo compariranno dei simboli come <CRLF> e <SP>, significano rispetivamente
INVIO e SPAZIO (MAIL <SP> <ciao@prova.it> <CRLF>); inoltre bisogna comprendere che quando si
inviano dati al server, questo li registra su degli appositi buffer.
C'è quindi un buffer per il reverse-path, per il forward-path, per la data, etc.
Il buffer è un area di memorizzazione temporanea che serve per il transito di dati tra due sistemi
eterogenei.
DATA <CRLF>
RSET <CRLF>
NOOP <CRLF>
QUIT <CRLF>
TURN <CRLF>
Errori di sintassi:
Cisco è il leader mondiale del Mercato Router, esso costruisce molte tiopoligie di router
differenti per Hardware, numero di porte di accesso e tipologie di rete
Storia di Internet
Nasce con il nome di Arpanet L'ARPA (Advanced Research Projects Agency), nei tardi Anni Sessanta,
voluta dal Dipartimento della Difesa statunitense, L'ARPA (Advanced Research Projects Agency). Iniziò
collegando quattro computers, tre in California ed uno in Utah, usando il Network Control Protocol (NCP).
Tra la fine degli anni sessanta e gli inizi degli anni '70, altri centri di elaborazione iniziarono ad usare
l'innovativa tecnologia di packet switching di ARPAnet per collegare i propri sistemi.
Nel 1971 c'erano 23 hosts nel network; entro il 1980 erano già diventati più di 200 con i primi
collegamenti internazionali.
Nella metà degli anni '80 venne scelto TCP/IP come protocollo preferenziale e ARPAnet fu divisa in
ARPAnet e MILnet. Entro la fine del 1986, vi erano già più di 5000 hosts.
INTERNET iniziò a ricevere attenzione dai mass-media nei tardi anni '80, specialmente quando il mitico
verme "worm" di Robert J. Morris disattivò alcune migliaia di computers presenti nel network.
Nel 1989, il backbone NSFnet fu potenziato con una linea T1 (1544 Kbps). A quel punto vi erano più di
100000 hosts in INTERNET. Nei primi anni '90, ARPAnet venne eliminato e fu creato il Commercial
Internet Exchange (CIX) per dare modo agli utenti commerciali per evitare NSFnet e la sua Acceptable
Use Policy (AUP) che proibisce ogni tipo di traffico commerciale su NSFnet.
In questo periodo, inoltre, Mitch Kapor fondò la Electronic Frontier Foundation (EFF); Thinking Machines
Corp. sviluppoò il WAIS Database system; e l'University of Minnesota introdusse Gopher.
INTERNET a questo punto aveva più di 700000 hosts.
Internet non è posseduta, né gestita da una singola autorità. Per mantenere uno standard dei protocolli
usati e per connettere organizzazioni al network, fu istituita L'Internet Society nel 1992 con presidente
Vinton Cerf.
Inoltre, nello stesso anno, il CERN di Ginevra, Svizzera, introdusse quello che è diventato uno dei
programmi più usati su INTERNET: un sistema multimediale ad ipertesto con tecnologia client/server
chiamato World-Wide-Web.
Ancora nel 1992, NFS istituì l'InterNIC per offrire vari servizi informativi riguardo ad INTERNET ed il
National Center for Supercomputing Application (NCSA) presso la University of Illinois a Urbana-
Champaign rilasciò l'interfaccia utente Mosaic per utilizzare World-Wide Web.
Attualmente NSF sta lentamente cedendo il controllo del backbone di Internet ad Internet Providers
commerciali e abolirà le restrizioni imposte dall'AUP.
Oggi la comunità INTERNET sta letteralmente esplodendo grazie all'attenzione dei mass-media e della
nascita di numerose strutture commerciali.
A metà 1994 c'erano più di 2,2 milioni di hosts registrati e circa 25 milioni di utenti.
Caratteristiche
• Dati di qualsiasi tipo consultabili 24 ore al giorno anche attraverso una potente interfaccia grafica
(Browser).
• Miniere di files e programmi di pubblico dominio prelevabili in qualsiasi momento ( ftp).
• E-mail: permette di mandare e ricevere messaggi privati (testo, immagini, suoni) praticamente
in tempo reale.
• News: Sono messaggi pubblici che tutti gli utenti della rete possono leggere.
• Possibilità di teleconferenze: chiacchiere e discorsi più impegnati con migliaia di utenti ( IRC ),
o con un singolo (talk)