Sei sulla pagina 1di 81

Corso di Sistemista di Rete

TIPOLOGIE DI COMPUTER

Esistono tipi diversi di personal computer, ed ognuno risponde ad una diversa


esigenza di lavoro.

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

Le diverse tipologie RAID

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 .

Supponiamo di aver collegato non un solo


disco , ma piú dischi . Ogni disco avrà le
proprie testine e la posizione delle testine
sui piatti di una unitá sará indipendente
da quella delle altre unitá , che hanno
motori di posizionamento diversi .
I dati vengono suddivisi in blocchi ed ogni blocco viene
scritto su un diverso disco . La dimensione del blocco
viene definita durante la configurazione del sistema . La
richiesta di un dato piú piccolo del blocco definito sará
gestita da un solo disco ; se il dato é di dimensioni
maggiori del blocco , esso sará distribuito su piú unitá ,
con evidente vantaggio .
Supponiamo di aver stabilito la dimensione del blocco a
32K . Un dato grande 28K sará scritto e letto da un solo
disco ; non ci saranno particolari incrementi di prestazione
, a meno dell performances date dal controller , di solito
dotato di processore autonomo , cache , ecc.

Se il dato é maggiore del blocco , ad


esempio 125K , sará scritto su due dischi
: il primo conterrà due blocchi da 32k ed
il secondo un blocco da 32K ed uno con i
rimanenti 29K . Il vantaggio é evidente :
sia la lettura che la scrittura coinvolgono
contemporaneamente due unitá separate
; quindi i posizionamenti delle testine , le
operazioni di lettura e scrittura , ecc. sono
suddivise su drive che lavorano
autonomamente . Ne risulta un notevole
miglioramento del transfer rate .
Le richieste di acceso ai dati sono
organizzate dal controller e distribuite alle
unitá che ,all' atto pratico , lavorano in
parallelo , riducendo drasticamente i
tempi morti . Cosí , anche drive di non
eccelsa qualitá possono fornire prestazioni
adatte agli impieghi piú gravosi (da qui l'
inexpensive contenuto nell' acronimo
RAID) .
Se la catena comprende piú di due unitá ,
i dati sono suddivisi fra le varie unitá con
lo stesso principio .

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 .

RAID 0 non é particolarmente costoso , né di difficile implementazione : quasi tutti i sistemi


con un minimo di prestazione sono dotati di almeno due dischi (il quantitativo minimo per l'
array) ; basterá aggiungere l'opportuno controller RAID .

La tabella riassume le caratteristiche essenziali :

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 .

La struttura richiede 2 dischi , un primario ed


un mirror (specchio) , che , come dice il nome
, contiene una coppia speculare del disco
primario.
Il controller provvede alla gestione del flusso
dei dati. La rottura di una delle due unitá non
pregiudica il funzionamento del sistema, che
mantiene l'accesso ai dati sull'altra unitá
dell'array.
L'impiego di un solo controller richiede che i
dati siano scritti prima su una poi sull'altra
unitá, con una leggera riduzione delle
prestazioni.
La modalità duplex su due canali od anche con
due controller diversi (o due canali dello stesso
controller), per incrementare ulteriormente sia
la sicurezza che la velocitá.
Nel caso di guasto ad un driver , le richieste di
accesso sono re direzionate ed inviate all' altra
unitá ; cosí pure , nel sistema duplex a due
controller o con controller a doppia porta , il
guasto su un canale non blocca il
funzionamento del sistema . Il duplex é , quindi
, un ulteriore grado di sicurezza .
RAID 1 é una delle modalità piú comuni per
ottenere una elevata affidabilitá nei PC con
unitá a disco rigido , in quanto la sicurezza del
sistema prescinde dall' affidabilità dei singoli
componenti .

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 .

La tabella riporta le caratteristiche essenziali :

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.

Come in RAID 4 viene generata una paritá


ridondante , ma essa non é depositata in un
solo disco dedicato , ma dstribuita sui vari
dischi dell'array . I dati sono frazionati su piú
hard disk (con modalitá striping) per ottenere
alte prestazioni . Se uno dei dischi si guasta ,
i dati sono comunque completamente
accessibili : i dati mancanti sono ricalcolati
sfruttando le informazioni della paritá .
Non sussiste piú il problema della possibilitá
di guasto al disco dedicato alla paritá .

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 .

La tabella riassume le caratteristiche principali :

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 computer basa il proprio funzionamento su un sistema di numerazione binario,


basato cioè su due soli numeri: l'uno e lo zero.
Ciò per un motivo fondamentale: gli elaboratori sono costituiti
fondamentalmente da un insieme di circuiti elettronici che conoscono solo due
possibili stati: accesi (c'è corrente) o spenti (non c'è corrente), proprio come le
comuni lampadine. Sono quindi accettabili solo due valori, convenzionalmente
fissati in 0 e 1, detti generalmente bit: il passaggio di corrente è
contraddistinto dal numero uno, mentre l'assenza di corrente è rappresentata
con lo zero.
Mediante combinazioni di vari bit è possibile rappresentare, in una maniera
comprensibile anche per il computer, l'insieme di lettere, numeri e simboli
normalmente utilizzati: per soddisfare tutte le esigenze di rappresentazione si
è scelto di utilizzare 8 bit per l'identificazione di un carattere in modo da
disporre di 2^8 = 256 configurazioni.
Per esempio la lettera A può essere rappresentata come 00000001; la lettera B
come 00000010; la lettera C come 00000100 e così via, fino a codificare tutti i
possibili caratteri.
Un gruppo di 8 bit, cioè la rappresentazione binaria di un carattere, prende il
nome di byte.
Per fare in modo che computer diversi tra loro attribuiscano ad ogni
combinazione lo stesso significato, è stato generalmente adottato il codice
ASCII (American Standard Information Interchange).
Nella pagina seguente viene riportata la tabella ASCI ''ristretta'', versione in cui
vengono usati solo 7 degli 8 bit disponibili.
Per tale motivo sono esclusi alcuni caratteri come per esempio le vocali
accentate (i codici da 0 a 30 sono generalmente utilizzati come codici di
controllo e non sono quindi di uso comune).

Ogni carattere occupa uno spazio di memoria pari ad un byte


(cioè 8 bit).
L'unità di misura è quindi il byte, mentre i suoi multipli sono
il Kilobyte (Kb = 1024 byte)
il Megabyte (Mb = 1024 Kilobyte)
il Gigabyte (Gb = 1024 Megabyte)
il Terabyte (Tb = 1024 Gigabyte)
La memoria RAM in genere è espressa in Megabyte, mentre i dischi fissi
misurano alcuni Gigabyte.
Vengono spesso citati, nell’informatica, i numeri esadecimali. In realtà i
computer lavorano esclusivamente in numeri binari. Per comodità i
programmatori usano rappresentare sia i numeri decimali (con 10 cifre) che i
numeri binari (con due cifre) con numeri esadecimali.
Questi hanno sedici cifre: le dieci cifre da 0 a 9 e quindi le sei lettere da A a F.
Lo 0 esadecimale equivale al valore decimale 1 mentre la F esadecimale
equivale al valore decimale 16.
L’avere inventato una rappresentazione dei numeri usando 16 cifre, rende i
numeri più compatti. Già il numero decimale 100, rappresentato dal binario
0010110, in esadecimale è 64.
Dal punto di vista dell’utente, ciò non ha alcuna rilevanza.

IL MICROPROCESSORE

Il computer è lo strumento mediante cui vengono raccolti i dati e, dopo


l'elaborazione e l'archiviazione, vengono prodotte le informazioni significative
per l'utente. Per far questo esso necessita di dispositivi che da una parte
consentano all'utente di introdurre i dati da elaborare e dall'altra gli
permettano di visualizzare e archiviare i risultati ottenuti e le informazioni
cercate. Questi dispositivi sono detti rispettivamente di Input (entrata) e di
Output (uscita). I dispositivi di Input più comuni sono la tastiera, il mouse, lo
scanner, il microfono… mentre per quanto riguarda i dispositivi di Output essi
sono il monitor, gli altoparlanti, la stampante… Queste componenti, destinate
alla raccolta e all'emissione dei dati, sono generalmente dette "unità
periferiche", in contrapposizione all'unità centrale (CPU), cioè l'insieme dei
componenti incaricati di svolgere l'elaborazione (microprocessore e memoria).

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.

MHZ, MIPS e FLOPS


Generalmente per indicare la velocità di elaborazione di un processore viene
utilizzata la frequenza di clock: il clock può essere visto come un precisissimo
orologio interno in grado di dividere il tempo di ciascuna elaborazione in
intervalli regolari.. Quanto maggiore è la frequenza con cui questi segnali
vengono generati, tanto maggiore è la velocità di elaborazione del processore.
In ogni ciclo, un impulso di dati transita fra i contatti esterni del
microprocessore e l'architettura al suo interno. Uno dei primi processori
realizzati da Intel, l'8086, lavorava ad una frequenza di clock pari a 4,77 Mhz
(cioè 4,77 milioni di cicli per secondo), mentre i computer più recenti
raggiungono frequenze pari a 1000 Mhz. Tuttavia la potenza di un processore
non dipende esclusivamente dalla velocità del clock: ben più importante è
invece l'architettura interna (come per esempio il numero di transistor integrati
all'interno del chip stesso). Infatti le CPU hanno strutture differenti che
comportano, come è evidente, prestazioni non confrontabili. Pertanto un
processore della classe Pentium non può essere confrontato con un 486, anche
se entrambi hanno uguale frequenza di clock.

Anno CPU Frequenza (Mhz) n° transistor


1978-81 Prima generazione 8086-8088 fino 12 29.000
1984 Seconda generazione 80286 fino a 20 1350.000
1986 Terza generazione 80386 fino a 40 275.000
1990 Quarta generazione 80486 fino a 66 1.200.000
1993 Quinta generazione Pentium fino a 200 3.100.000
1995 Sesta generazione Pentium II AMD K6-2 fino a 450 7.500.000 9.300.000

Un altro parametro utile al fine di valutare la potenza di un processore è la


velocità di esecuzione delle istruzioni, espressa in MIPS (Milioni di istruzioni per
secondo) o in FLOPS (Floating Point Operation per Second), mentre con "ciclo
macchina" si intende il tempo minimo necessario per eseguire un'istruzione
(anche se però alcune istruzioni richiedono più cicli macchina).
CPU MIPS
8086-8088 0,33-0,75
80286 1,2-2,7
80386 5-11,4
80486 20-54
Pentium 112
Pentium II 969

LA MEMORIA RAM

Le memorie di un computer sono quei dispositivi elettronici e meccanici che


permettono la memorizzazione temporanea o definitiva delle informazioni e dei
risultati delle elaborazioni.
Esistono numerosi tipi di memorie con differenti caratteristiche. Sicuramente la
più importante è la cosiddetta Memoria Centrale (primary storage = memoria
principale), composta dalla memoria RAM e ROM (oltre alla cache), collegata
direttamente alla CPU. Alla memoria Centrale si contrappone la cosiddetta
Memoria di massa (o memoria secondaria), costituita dai dispositivi necessari
per l'archiviazione dei dati: essa si compone di dischi magnetici (Hard Disk,
floppy…) o ottici (CD-Rom)

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

La memoria RAM è formata da migliaia di piccole celle di memoria, ciascuna


con capacità di un byte, ossia, come si è detto, una sequenza di 8 bit che,
opportunamente combinati tra loro, possono rappresentare uno qualsiasi dei
256 caratteri ASCII. Ogni cella di memoria si identifica tramite un indirizzo, allo
stesso modo in cui ogni casa in cui abitiamo è identificata in maniera univoca
da un indirizzo e da un numero. Per definire gli indirizzi delle celle il computer
utilizza il bus di indirizzi: questo è costituito da un certo numero di linee di 1
bit ognuna, attraverso le quali viaggiano in parallelo gli indirizzi di memoria.
Per specificare un indirizzo di memoria si invia 1 bit alla volta per tutte le linee
e il numero che ne risulta è l'indirizzo di memoria.
Per esempio, immaginiamo che un
computer invii in un certo momento il
bus di indirizzi di 8 bit che si vede nella
figura qui a fianco (cioè di 8 linee di 1
bit ognuna): ogni linea invia 1 bit (uno
0 o un 1) e l'indirizzo che ne risulta è
10000011, che corrisponde al valore
decimale 67. In altre parole, 10000011
è l'indirizzo della cella di memoria 67, la quale immagazzinerà un dato valore:
è importante notare la differenza tra l'indirizzo di una cella di memoria (che
identifica la posizione della cella nel complesso delle celle di memoria) ed il
contenuto della cella (ossia uno dei 256 byte). Immaginiamo adesso che un
computer disponga di un bus di indirizzi di 2 linee: con sole 2 linee di 1 bit, il
computer può fare riferimento solo a 4 indirizzi di celle per volta: 00, 01, 10 e
11. E se ci sono solo 4 indirizzi, si può accedere solamente a 4 celle di
memoria di 1 byte; cioè si può accedere a 4 byte, malgrado la presenza di una
memoria RAM, per dire, di 8 Mb. È chiaro che non esistono computer con un
GUIDA ALL’HARDWARE Pag. 15 di 30
bus di indirizzi di 2 linee, ma l'esempio appena mostrato ci dice una cosa molto
importante: una memoria capace non è sufficiente, in quanto, affinché questa
possa essere interamente utilizzata dal computer, occorre anche un adeguato
bus di indirizzi. Dal momento che per ogni linea del bus possono passare solo
due valori (0 e 1), il numero massimo di indirizzi di n linee corrisponde al
numero di combinazioni di 2 elementi presi a n a n, cioè 2 elevato a n (2n): se
il bus di indirizzi ha 2 bit, il numero massimo di indirizzi è pari a 4 (22); se ha
3 bit, il numero massimo di indirizzi è 8 (23), ecc. Una delle principali
differenze tra i microprocessori riguarda proprio il numero di linee del bus di
indirizzi, e l'evoluzione dei microprocessori ha riguardato in primo luogo il bus
di indirizzi. Il microprocessore 8086 (ed anche l'8088) aveva un bus di indirizzi
di 20 bit (20 linee di 1 bit), sicché il numero massimo di indirizzi che si
potevano identificare era 1.048.576 (220), vale a dire 1024Kb (1Mb, se si
preferisce). Si può dire, grosso modo, che i 1024Kb si dividono in due blocchi: i
primi 640Kb - da 0 a 640Kb - si chiamano memoria convenzionale e i
rimanenti 384Kb - da 640Kb a 1024Kb - si chiamano memoria superiore
(vedremo più avanti il significato di questi diversi tipi di memoria). La seconda
generazione di microprocessori, i 286, hanno un bus di indirizzi di 24 bit, il che
permette di gestire 16Mb di memoria (224 = 16.777.216): i primi 1024Kb si
suddividono come sopra; la memoria tra 1024Kb e i 16Mb viene denominata
memoria estesa (vedi lo schema alla pagina seguente). Il microprocessore
386DX ha un bus di indirizzi di 32 bit, con il quale si possono indirizzare fino a
4096MB di memoria. Anche in questo caso la memoria che eccede i 1024Kb è
detta memoria estesa. Il 386SX è pensato come soluzione intermedia tra il 286
e il 386DX: dal punto di vista delle applicazioni eseguibili è del tutto uguale al
386DX, solo ha una velocità inferiore ed una memoria massima indirizzabile di
16MB: da quest'ultimo punto di vista è assimilabile al 286. Il 486, presentato
nel 1991, è anch'esso un microprocessore a 32 bit, ma ha una velocità e una
potenza notevolmente maggiori rispetto al 386 in quanto incorpora un
coprocessore matematico, cioè uno speciale chip che si occupa di svolgere ad
alta velocità le operazioni matematiche, alleggerendo il lavoro del
microprocessore centrale. Anche il Pentium, la quinta generazione dei
microprocessori, è a 32 bit; anch'esso incorpora un coprocessore matematico,
ma integra più di 3 milioni di transistor, contro il milione e mezzo circa del 486
e i 28.000 dell'8086 (il Pentium II ne contiene addirittura 7,5 milioni).

ROM e CACHE

La ROM

La memoria ROM (Read Only Memory) è un insieme di circuiti integrati nei


quali sono permanentemente memorizzate le informazioni di base del
computer, cioè tutto ciò che serve alla macchina per il corretto avvio e per il
riconoscimento di tutte le periferiche ad essa collegate, come, per esempio, il
BIOS. A differenza della memoria RAM essa rimane intatta, anche in assenza di
corrente. In genere il contenuto di tale memoria è detto ''firmware'' (FIRM =
stabile, immobile WARE = componente). Tale tipo di memoria non è
direttamente modificabile dall'utente, se non mediante procedure e strumenti
particolari.

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.

FUNZIONAMENTO delle MEMORIE

Come si è visto esistono diversi tipi di memorie con compiti ed impieghi


differenti. Per comprenderne il funzionamento e l'utilizzo può essere utile fare
un esempio.
La memoria ROM può essere paragonata ad un libro: i dati in essa contenuti
possono essere letti e copiati ma non modificati.
La memoria cache è invece paragonabile ad un piccolo foglietto di carta su cui
vengono eseguite semplici operazioni o segnate veloci annotazioni (per
esempio un numero di telefono).
La memoria RAM è invece un foglio di dimensioni maggiori su cui eseguire
numerose operazioni (si pensi ai fogli di "brutta" usati per i compiti di
matematica).
Infine la memoria di massa (disco fisso) è paragonabile al quaderno di
appunti, dove vengono annotate, con ordine e precisione, le informazioni che
devono essere conservate.
I fogli di "brutta" (RAM) e i vari foglietti (Cache) vengono eliminati al termine
di un pomeriggio di studio ("memoria volatile"), mentre il quaderno di appunti
è conservato con cura e mantiene i dati in esso contenuti anche dopo il termine
della sessione di lavoro.

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

Il S.O. è un gestore di risorse:

Esso gestisce due tipi di risorse:

risorse software::

• Archiviazione dati e programmi


database,
librerie
• Esecuzione di programmi
ambiente di programmazione,
esecutori: compilatori, debugger)
• Ingresso e uscita (I/O)
dispositivi di visualizzazione e stampa,
• Comunicazione
posta elettronica,
remote login,
remote file transfer,

e risorse fisiche (processore, memoria, dispositivi), effettuandone l'allocazione agli utenti,


ottimizzandone la gestione tramite opportune politiche e risolvendo i conflitti di accesso tramite
sincronizzazione e mutua esclusione.
LE RETI

Il termine rete è soggetto a molte definizioni, spesso anche contrastanti.


Di fatto siamo abituati ad intendere una rete come sistema di collegamento tra due o più
computers.
Partendo da questo semplice concetto dobbiamo subito chiarire lo scopo di una rete che,
sostanzialmente, è quello di permettere la condivisione di risorse e la cooperazione fra diverse
entità, attraverso i servizi offerti dalla rete stessa.

Elementi essenziali, e minimali, di una rete sono:

• almeno due calcolatori


• un interfaccia di rete per ogni calcolatore (NIC)
• un media di collegamento (mezzo di collegamento)
• il software operativo di rete

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

Distanza Ambito Tipo di rete

10 m. Ufficio Rete locale (LAN)


100 m. Edificio Rete locale (LAN)
1 km. Campus Rete locale (LAN)
10 km. Città Rete metropolitana (MAN)
100 km. Regione Rete geografica (WAN)
1000 km. Nazione Rete geografica (WAN)
10.000 km. Pianeta Internet
CAVI (MEDIA)

Cavo Doppino Telefonico

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 doppino telefonico esiste in due varianti: schermato e non schermato.

STP (Shielded twisted-pair cable)

STP (doppino ritorto schermato) combina le tecniche di schermatura (shielding),


cancellazione, e avvolgimento (twisting). Ogni coppia di fili elettrici è avvolta in una lamina
metallica. Le 4 coppie di cavi sono avvolte in un intrecciato o lamina metallica. Normalmente è
un cavo da 150 Ohm. Come specifica per l'uso in installazioni di reti Ethernet, STP riduce
"rumori elettrici", entrambi dentro il cavo (accoppiamento coppia a coppia, o diafonia) e al di
fuori del cavo (interferenza elettromagnetica - EMI - e interferenza radio frequenza RFI)

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

Cavo da 150 Ohm

Velocità - 16 Mbps / 155 Mbps

Lunghezza massima del cavo senza ripetitore - 100 metri (feet 382)

Vantaggi – abbastanza resistente alle interferenze

Svantaggi – più costoso e difficile da installare rispetto ad UTP

Cavo STP

ScTP (Screened Twisted-Pair cable) o FTP (Foil Twisted-Pair)

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.

Il cavo UTP viene classificato in cinque categorie.

CAT 1 supporta solamente le comunicazioni vocali (cavo telefonico tradizionale)

CAT 2 supporta velocità di trasferimento fino a 4 Mbps

CAT 3 supporta velocità di trasferimento fino a 10 Mbps

CAT 4 supporta velocità di trasferimento fino a 16 Mbps

CAT 5 supporta velocità di trasferimento fino a 100 Mbps

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

Velocità – 10/100 Mbps

Lunghezza massima del cavo senza ripetitore - 100 metri (feet 382)

Vantaggi – installazione facile, costo ridotto

Svantaggi – poco resistente alle interferenze

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.

Struttura di un cavo coassiale

Cavo Thinnet o RG-58 (10Base2)

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

Il terminatore, o tappo, è un connettore che va inserito rispettivamente ai due lati estremi


della rete. Questo infatti ha il compito di assorbire un segnale sul cavo in modo da non creare
collisioni e quindi errori nella trasmissione.

Principali caratteristiche

Velocità - 10 Mbps

Lunghezza massima del cavo tra i ripetitori - 185 metri

Vantaggi - economico

Svantaggi - difficoltà nelle operazioni di messa a terra del cavo


Cavo Thicknet (10Base5)

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

Distanza per segmento di cavo - 500m

Vantaggi - trasmissione su distanze maggiori, resistenza alle interferenze

Svantaggi - rigido quindi difficile da installare, costoso

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

Lunghezza N° max. di Tipo di


Velocità Lunghezza N° max. di N° max. di
Versione max. di un nodi su un cavo
max. totale ripetitori segmenti
segmento segmento utilizzato
5, di cui 2
Coassiale
10Base-5 10Mbps 500m. 100 2500m. 4 non
grosso
popolati
5, di cui 2
Coassiale
10Base-2 10Mbps 200m. 30 1000m. 4 non
sottile
popolati
5, di cui 2
100m.UTP Doppino
10Base-T 10Mbps 2 500m. 4 non
500m.STP UTP/STP
popolati
3, di cui 1 Doppino
100Base-T 100Mbps 100m. 2 205 2
per l'uplink UTP (cat.5)

Fibra Ottica (FDDI – Fiber Distributed Data Interface)

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

Velocità - 100 Mbps / 2 Gbps

Distanza supportata per invio dati affidabili – 2 Km senza ripetitore

Vantaggi - trasmissione su distanze maggiori, immune alle interferenze e intercettazioni

Svantaggi – rigido quindi difficile da installare, il tipo di supporto più costoso


Comunicazione Wireless

Wireless si riferisce a una tipologia di comunicazione, ad un monitoraggio e a un insieme di


sistemi di controllo in cui i segnali viaggiano nello spazio e non su fili o cavi di trasmissione. In
un sistema wireless la trasmissione avviene principalmente via radiofrequenza (RF) o via
infrarosso (IR).La Tecnologia Wireless consente in un ufficio, in una casa di far dialogare tra
loro tutti i dispositivi elettronici presenti. Lo scambio di informazione fra gli strumenti avviene
attraverso onde radio, eliminando qualsiasi tipo di connessione fisica tra dispositivi. Per fare ciò
ciascun dispositivo deve possedere all'interno un chip, integrato, in grado di trasmettere e
ricevere informazioni nell'etere.

Gli standard per le tecnologie Wireless più utilizzati sono :

DECT (Digital Enhanced Cordless Telecommunications).standard digitale criptato per telefonini


cordless con possibilità di 120 canali su 12 frequenze, evoluzione del cordless analogico,
implementa l'interfaccia Gap (Generic Access Profile) ed utilizza la modulazione GMSK, bit rate
max 348 Kbps.

IrDA (Infrared Device Application) tecnologia di interconnessione dati tramite infrarossi


bidirezionale point-to-point tra dispositivi posizionati in visibilità reciproca LoS, line of sight,
con range ridotto a 1 - 2 metri e bit rate di 4 Mbps.

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.

Altre reti sono connesse indirettamente.

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 !!!!!

Apparati che estendono il dominio di collisione

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.

I ripetitori rappresentano il modo meno costoso di estendere una rete. Lo svantaggio di


utilizzare i ripetitori è che non possono filtrare il traffico di rete.

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.

Apparati che limitano i domini di collisione:

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.

Lo switch rappresenta quindi lo strumento principale per l'implementazione e la ottimizzazione


di un qualsiasi ambiente di rete locale. Laddove esiste un numero di nodi molto elevato lo
switch assolve pienamente al suo compito principale che è quello di distribuire "banda" in
modo dedicato. Il proliferare degli accessi Internet, per esempio, spinge all’utilizzo di soluzioni
switching in grado di ottimizzare la disponibilità di banda passante sul lato geografico evitando,
per quanto possibile, l’interferenza con applicazioni, servizi e periferiche locali. D’altra parte,
l’aumento dei server all’interno di una qualsiasi organizzazione rende l’utilizzo degli switch
l’unico strumento veramente valido per garantire prestazioni e affidabilità. In quest’ottica, la
disponibilità di funzionalità specifiche di CoS/QoS offre la possibilità di costruire una gerarchia
di servizi che abilita la convergenza di applicazioni diverse su un’unica infrastruttura.

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.

I bridge possono essere utilizzati per:

- estendere la lunghezza di un segmento

- servire un maggior numero di computer nella rete

- ridurre i colli di bottiglia del traffico


- suddividere una rete sovraccarica in due reti distinte

- collegare supporti fisici eterogenei, ad esempio cavi Ethernet coassiali e cavi a doppini
intrecciati

Router

Un router è un apparecchio molto complesso. Ha in sé tutte le caratteristiche degli apparecchi


visti fino ad ora, aggiungendone altre di maggior complessità. Lo scopo di questo corso è
quello di illustrare le caratteristiche di base di un router, lasciando maggiori dettagli a corsi
successivi. La parola "router" significa instradatore. E’ un apparecchio di interconnessione fra
reti diverse e lavora al livello "network" del modello OSI.

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).

Differenza topologia fisica e logica

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.

Ogni nodo è connesso direttamente all’altro.


Vantaggi

Connessione ridondante, molti percorsi per il transito di informazioni

Svantaggi

L’installazione risulta costosa a causa della quantità elevata dei cavi necessari.

Varianti delle Topologie Standard

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.

Le reti Ethernet e Fast Ethernet impiegano un protocollo chiamato CSMA/CD (Carrier-sense


Multiple Access with Collision Detection). Questo protocollo ha la caratteristica implicita di
permettere ad un solo dispositivo di comunicare in un dato momento. Quando due dispositivi
cercano di comunicare simultaneamente, tra i pacchetti trasmessi si verifica una collisione che
viene rilevata dai dispositivi trasmettenti. I dispositivi cessano quindi di trasmettere e si
mettono in attesa prima di inviare nuovamente i loro pacchetti. Tutto ciò fa parte del normale
funzionamento per le reti Ethernet e Fast Ethernet ed è paragonabile ad una conversazione tra
un gruppo di persone; se due persone parlano contemporaneamente, si fermano entrambe e
una di esse inizia a parlare nuovamente.

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.

IL FLUSSO DEI DATI

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.

In particolare, si parla di incapsulamento quando i pacchetti vengono inseriti all'interno di altri


pacchetti.

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.

I protocolli di comunicazione riferiti ai dati usano le stesse regole:


Si annunciano, mentre un elaboratore trasmette gli altri restano in attesa e a fine trasmissione
mandano dei segnali per avvertire che il contatto è terminato.
Trattandosi di protocolli di comunicazione che devono soddisfare molte reti e molti elaboratori,
necessitano di regole complesse ma efficenti.

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:

INSTRADABILI (ROUTABLE) - TCP/IP, IPX/SPX, OSI, AppleTalk, DECnet, XNS.


NON INSTRADABILI (NON-ROUTABLE) - NetBEUI, DLC, LAT.

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

LIVELLO 5 <- PROTOCOLLO DI LIVELLO 5 -> LIVELLO 5

LIVELLO 4 <- PROTOCOLLO DI LIVELLO 4 -> LIVELLO 4

LIVELLO 3 <- PROTOCOLLO DI LIVELLO 3 -> LIVELLO 3

LIVELLO 2 <- PROTOCOLLO DI LIVELLO 2 -> LIVELLO 2

LIVELLO 1 <- PROTOCOLLO DI LIVELLO 1 -> LIVELLO 1

MEZZO FISICO

IL MODELLO OSI

Gestire le comunicazioni in rete è un problema complesso. Le differenze di hardware e


software hanno creato, in passato, incompatibilità fra i sistemi e quindi difficoltà di interazione
fra i servizi.
Nei primi anni '80 la rapida evoluzione delle reti cominciò a creare grossi problemi alla
interconnessione fra le stesse tanto da costringere le grandi multinazionali dell'IT ad
abbandonare i sistemi proprietari e muovere verso un sistema di integrazione basato su uno
standard.

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:

Livello 7 Applicazione (Network Processes to Application)


Il livello 7 è quello che si interfaccia direttamente con i programmi applicativi (Application
Program Interface). I campi applicativi più conosciuti sono, per esempio, la posta elettronica
(software per la gestione della Email), il trasferimento dei flussi (software per ftp o http), le
connessioni remote (software di accesso remoto) , emulazioni di terminali ecc.
E' il livello più a contatto con l'utente e non serve nessun livello superiore.

Livello 6 Presentazione (Data Representation)


Il livello 6 serve per la trasformazione/conversione del formato dei dati (ad es. cifratura e
decifratura). Molto spesso i sistemi che si interfacciano alla rete adottano codifiche diverse (es.
ASCII o EBCDIC). In pratica il livello 6 assicura la "leggibilità e l'interpretazione" del dato da
parte del sistema ricevente.

Livello 5 Sessione (Interhost Communication)


Si preoccupa di controllare il dialogo (sincronizzazione/mantenimento della comunicazione) fra
due programmi applicativi. Questo livello si occupa quindi della qualità della cosidetta
"conversazione".

Livello 4 Trasporto (End-to-end connections)


E' il livello a cui è delegata la funzione di invio e ricezione dei dati. Si occupa di fornire un
trasferimento dati affidabile correggendo gli errori. Divide i messaggi i in pacchetti, ne
controlla e preserva l'ordine con cui devono essere spediti, controlla la presenza di errori. E' il
primo layer che lavora indipendentemente dalla topologia della rete in cui si trova, per questo
viene chiamato end-to-end.
Questo livello non si occupa quindi della qualità del servizio e della sua affidabilità. In
particolari servizi di comunicazione è questo il livello che stabilisce, mantiene e poi chiude i
cosideti "circuiti virtuali".
Livello 3 Network (Address and best path)
Questo livello si occupa della gestione relativa all'instradamento dei pacchetti, controlla
l'indirizzo di provenienza e di destinazione e gestisce le tabelle di instradamento (come le
tabelle di routing) necessarie per far giungere a destinazione i pacchetti. E' questo il livello che
sceglie gli instradamenti alternativi, sia in caso di guasti o di mutate condizioni di traffico, che
in base alla scelta del minor costo. Si può affermare che lavora in modo astratto rispetto al tipo
fisico di comunicazione.

Livello 2 Data Link (Access to media)


Gestisce i pacchetti (frame), spezzoni di messaggio di lunghezza fissa. Si occupa di tutti i
meccanismi di individuazione e correzione degli errori avvenuti nel livello 1. A questo livello
avviene l'indirizzamento fisico basato sull'indirizzo fisico degli host (MAC).

Livello 1 Fisico (Bnariy transmission)


Si occupa della trasmissione dei dati sul mezzo fisico (media). Qui viene, di fatto, specificata la
rappresentazione elettrica degli 0 ed 1 binari in modo tale che il sistema ricevente possa
leggere correttamente il flusso di bit in arrivo. Tutti gli standard di voltaggio, distanze
massime, connettori fisici ecc. sono qui attribuiti.

TABELLA ESEMPLIFICATIVA PER ALCUNI PROTOCOLLI INTERESSATI:

1 Application SMB, NCP e FTP


NCP, Compressione
2 Presentation
Dati
3 Session Nessuno
TCP, SPX, NWLink,
4 Transport
NetBEUI
IP, IPX, NetBEUI,
5 Network
DLC, DecNET
Solo lo standard
6 Data Link
IEEE 802
Solo lo standard
7 Physical
IEEE 802

Principi seguiti durante lo sviluppo del modello OSI:

• ogni livello deve avere un diverso livello di astrazione;


• ogni livello deve avere una funzione ben definita;
• la scelta dei livelli deve:

o minimizzare il passaggio delle informazioni fra livelli;


o evitare:
ƒ troppe funzioni in un livello;
ƒ troppi livelli

L’INCAPSULAMENTO

Per trasferire delle informazioni attraverso un canale comunicativo è necessario procedere al


cosiddetto incapsulamento dei dati (encapsulation).

L'incapsulamento è quell'operazione che arricchisce i dati di ulteriori informazioni (ad esempio


quelle relative al al protocollo) ogni volta che scendono di livello verso il media fisico. In
pratica, nel loro cammino verso il basso (dal livello 7 fino al livello 1) i dati vengono "rivestiti"
di ulteriori informazioni come ad esempio i vari header (intestazioni) ogni volta che
attraversano i livelli 4, 3 e 2 della pila OSI.

L'incapsulamento passo dopo passo:

LIVELLO
Dati
7

LIVELLO 6 Dati

LIVELLO 5 Dati

LIVELLO 4 Segmenti (DATA-DATA-DATA)

LIVELLO 3 Pacchetti (intestazione logica + Data)

Frame (intestazione + indirizzo destinazione + Data


LIVELLO 2
+ indirizzo locale)

LIVELLO 1 100100101011010

1) Generazione del dato: (livelli 7, 6 e 5)


Una qualsiasi generazione di informazioni (ed esempio un utente che genera una Email in
formato alfanumerico).

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.

3) Aggiunta dell'intestazione - "header": (livello3)


Il dato viene inserito in un pacchetto (o datagramma) munito di intestazione che contiene gli
indirizzi logici ( a seconda del protocollo di comunicazione scelto) del mittente e del
destinatario.
E' questa l'operazione che permette agli apparati di rete di smistare i pacchetti e scegliere i
percorsi.

4) Aggiunta dell'indirizzo locale di rete nel frame-header: (livello2)


Ogni apparato di rete inserisce i pacchetti in una frame. La frame viene spedita alle device
connesse direttamente sulla stessa rete che ne aggiungono il proprio indirizzo di rete fisico. In
questo caso le informazioni ulteriori riguardano la tecnologia trasmissiva scelta (es. Ethernet o
Tokeng Ring).

5) Conversione binaria: (livello 1)


La frame viene convertita in una struttura a bit "0/1" per permetterne la trasmissione sul
media (tipicamente un cavo).

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.

I VANTAGGI DEL MODELLO OSI

1. Riduce la complessità

Scompone le complesse problematiche del networking in parti più piccole (livelli)

2. Standardizza le interfaccie

Standardizzando i componenti, permette a tutti i vendor di partecipare al mercato

3. Facilita l' ingenerizzazione dei componenti

Permette ai costruttori di hw e di sw di creare prodotti "compatibili".

4. Assicura l'interoperabilità

Permette la gestione di servizi indipendentemente dal tipo di piattaforma hw e sw

5. Accellera l'evoluzione

Permette l'implementazione dei singoli livelli indipendentemente dagli altri. Ciò facilita sviluppo
ed evoluzione.

6. Semplifica l'apprendimento e l'insegnamento

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

TRANSPORT <- TRANSPORT

NETWORK <- INTERNET

DATA LINK
<- NETWORK INTERFACE
PHYSICAL

I principali requisiti che il progetto stabilì, fin dall'inizio, si possono riassumere in:

• ricerca di una affidabilità estrema


• ottima tolleranza ai guasti
• possibilità di interconnessione di più reti fra loro diverse

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".

Collocazione dei principali protocolli sui livelli della suite TCP/IP:

APPLICATION -> TELNET, FTP, SMTP, HTTP, NNTP, RLOGIN, DNS, TFTP

TRANSPORT -> TCP, UDP

INTERNET -> IP, ICMP, ARP, RARP

NETWORK INTERFACE -> LAN, MAN, WAN


RETI GEOGRAFICHE - WAN

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:

ƒ International Telecommunication Union-Telecommunication Standardization Sector (ITU-T),


formerly the Consultative Committee for International Telegraph and Telephone (CCITT)
ƒ International Organization for Standardization (ISO)
ƒ Internet Engineering Task Force (IETF)
ƒ Electronic Industries Association (EIA)

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

A livello Data-Link i protocolli più usati sono:

• 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

TECNOLOGIA Massima larghezza di banda Caratteristiche


POTS Sistema telefonico odierno. Lo
Plain Old Telephone Service 4 Khz Analogico standard per l'affidabilità
ISDN
Integrated Services Digital Dati e voce sulla stessa
Network 128 Kbps tecnologia
Vecchia tecnologia ma molto
X.25
affidabile
A commutazione di pacchetto.
Frame Relay fino a 44,736 Mbps
L'evoluzione di ISDN
ATM
Asynchronous Transfer Mode 622 Mbps Performance ad alto costo
SMDS
Switched Multimegabit Data
Service da 1,54 a 44,736 Mbps Variante metropolitana di ATM
T1, T3 da 1,54 a 44,736 Mbps Tecnologia fra le più in uso
xDSL Nuova tecnologia su linee
Digital Subscriber Line 384 Kbps telefoniche
Tecnologia ormai affermata su
Dial-up Modem
56 kbps linea telefonica
Il backbone di Internet. Su fibra
SONET
9.992 Mbps ottica
Bassa velocità su linee
MODEM
56 Kbps telefoniche
WIRELESS DI TERRA 11 Mbps Microonde a terra
WIRELESS SATELLITARE 2 Mbps Il wireless per utenti mobili

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.

Circuit-switched Services - Servizi a commutazione di circuito

• 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.

Cell-Switched Services - Servizi a commutazione di cella

• 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.

Dedicated Digital Services - Servizi digitali dedicati

• 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

Vengono utilizzati media di rame a due fili intrecciati e fibre ottiche.

• 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:

• HDSL -- high-bit-rate DSL


• SDSL -- single-line DSL
• ADSL -- asymmetric DSL
• VDSL -- very-high-bit-rate DSL
• RADSL -- rate adaptive DSL

• 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:

• Terrestri - Con le microonde raggiungono 11 Mbps ad un costo non molto alto.


Abbisognano del campo visivo diretto fra i due estremi, senza interruzioni intermedie
• Satellitari - Utilizzate per utenti mobili (PDA e cellulari) ad un costo ancora troppo alto
per raggiungere grandi platee di utilizzatori.

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.

Un pacchetto TCP è detto segmento.

Essenzialmente i compiti di TCP sono:

• suddividere i dati da spedire in tanti segmenti indipendenti e numerati.


• riassemblare i dati arrivati all'altro capo, presentandoli nuovamente come un flusso di byte.
• rispedire i datagrammi non arrivati o arrivati corrotti.
• rimetterli nel giusto ordine se alcuni di essi non hanno "rispettato il turno".
• controllare il flusso attraverso il meccanismo delle finestre e dell'acknowledgement che descrivo
tra poco.
• multiplexing attraverso l'uso delle porte. Ne parlo nell'header TCP.

Ad ogni segmento, TCP aggiunge il suo header.

|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

• Data; il nostro campo dati.


HANDSHAKE

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:

1 - PC1 manda a PC2 un segmento TCP attivando il flag SYN.

2 - PC2 risponde a PC1 con i flag SYN e ACK attivi.

3 - PC1 risponde a sua volta con il flag ACK.

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:

n.__mitt.__dest.__SYN Flag__ACK Flag___________Seq. n.________Ack. n.

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).

STATI DI UNA CONNESSIONE

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

Gli stati possibili sono i seguenti

• LISTEN: in attesa che qualcuno richieda una connessione


• SYN-SENT: durante la creazione di una connessione, indica che è stato inviato un segmento con
flag SYN attivo e si sta aspettando il segmento di risposta (quello con i flag SYN/ACK).
• SYN-RECEIVED: durante la creazione di una connessione, indica che è stato ricevuto un
segmento SYN, è stato inviato in risposta il SYN/ACK e che ora si sta attendendo l'ACK che
completa l'handshake.
• ESTABLISHED: stato raggiunto dopo che l'handshake è stato completato con successo. La
connessione è ora aperta e si possono trasferire dati.
• FIN-WAIT1: in attesa di una richiesta di terminazione della sessione da parte del computer
remoto o di un acknowledgement della richiesta di terminazione della connessione
precedentemente stabilita.
• FIN-WAIT2: in attesa di una richiesta di terminazione della sessione da parte del computer
remoto.
• CLOSE-WAIT: in attesa di una richiesta di terminazione della sessione da parte del computer
locale.
• CLOSING: in attesa dell'acknowledgement alla richiesta di terminazione da parte del computer
remoto.
• LAST-ACK: in attesa dell'acknowledgement della richiesta di terminazione della connessione che è
stata precedentemente inviata al computer remoto, include un acknowledgement della sua
richiesta di terminazione della connessione
• TIME-WAIT: in attesa che passi abbastanza tempo in modo da essere sicuri che il computer
remoto abbia ricevuto l'acknowledgement della sua richiesta di terminazione della connessione.
• CLOSED: quando la connessione è del tutto terminata.

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

oppure, in modo equivalente:

128 64 32 16 8 4 2 1: pesi decimali

Di conseguenza, il numero binario 10101001 è caratterizzato da un equivalente decimale di:

1x1 + 1x8 + 1x32 + 1x128 = 169

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:

1x1 + 1x2 + 1x4 + 1x8 = 15

Oppure si può prendere nota di quanto segue (prendendo il nostro numero):

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.

Tabella comparativa di base:

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:

• Classe A = da 1.0.0.0 a 126.255.255.255 -


inizia con un bit a 0 (primo ottetto da 1 a 126 in decimale), 7 bit per la rete , 24 per l'host.
Permette di avere 126 reti con 16.777.213 host ciascuno.
• Classe B = da 128.0.0.0 a 191.255.255.255
inizia con due bit a 10 (primo ottetto da 128 a 191 in decimale), 14 bit per la rete , 16 per l'host.
16.382 reti, di 65.534 host ciascuno.
• Classe C = da 192.0.0.0 a 223.255.255.255
inizia con tre bit a 110 (primo ottetto da 192 a 223 in decimale), 21 bit per la rete , 8 per l'host.
2.097.150 reti, di 254 host ciascuno.
• Classe D = da 224.0.0.0 a 239.255.255.255 - riservata per il multicasting
inizia con quattro bit a 1110 (primo ottetto da 224 a 239 in decimale)
• Classe E = da 240.0.0.0 a 254.255.255.255 - riservata per usi futuri
inizia con quattro bit a 1111 (primo ottetto da 240 a 254 in decimale

Tabella di conversione decimale / binario

Dec Bin Dec Bin Dec Bin Dec Bin

0 00000000 64 01000000 128 10000000 192 11000000


1 00000001 65 01000001 129 10000001 193 11000001
2 00000010 66 01000010 130 10000010 194 11000010
3 00000011 67 01000011 131 10000011 195 11000011
4 00000100 68 01000100 132 10000100 196 11000100
5 00000101 69 01000101 133 10000101 197 11000101
6 00000110 70 01000110 134 10000110 198 11000110
7 00000111 71 01000111 135 10000111 199 11000111
8 00001000 72 01001000 136 10001000 200 11001000
9 00001001 73 01001001 137 10001001 201 11001001
10 00001010 74 01001010 138 10001010 202 11001010
11 00001011 75 01001011 139 10001011 203 11001011
12 00001100 76 01001100 140 10001100 204 11001100
13 00001101 77 01001101 141 10001101 205 11001101
14 00001110 78 01001110 142 10001110 206 11001110
15 00001111 79 01001111 143 10001111 207 11001111
16 00010000 80 01010000 144 10010000 208 11010000
17 00010001 81 01010001 145 10010001 209 11010001
18 00010010 82 01010010 146 10010010 210 11010010
19 00010011 83 01010011 147 10010011 211 11010011
20 00010100 84 01010100 148 10010100 212 11010100
21 00010101 85 01010101 149 10010101 213 11010101
22 00010110 86 01010110 150 10010110 214 11010110
23 00010111 87 01010111 151 10010111 215 11010111
24 00011000 88 01011000 152 10011000 216 11011000
25 00011001 89 01011001 153 10011001 217 11011001
26 00011010 90 01011010 154 10011010 218 11011010
27 00011011 91 01011011 155 10011011 219 11011011
28 00011100 92 01011100 156 10011100 220 11011100
29 00011101 93 01011101 157 10011101 221 11011101
30 00011110 94 01011110 158 10011110 222 11011110
31 00011111 95 01011111 159 10011111 223 11011111
32 00100000 96 01100000 160 10100000 224 11100000
33 00100001 97 01100001 161 10100001 225 11100001
34 00100010 98 01100010 162 10100010 226 11100010
35 00100011 99 01100011 163 10100011 227 11100011
36 00100100 100 01100100 164 10100100 228 11100100
37 00100101 101 01100101 165 10100101 229 11100101
38 00100110 102 01100110 166 10100110 230 11100110
39 00100111 103 01100111 167 10100111 231 11100111
40 00101000 104 01101000 168 10101000 232 11101000
41 00101001 105 01101001 169 10101001 233 11101001
42 00101010 106 01101010 170 10101010 234 11101010
43 00101011 107 01101011 171 10101011 235 11101011
44 00101100 108 01101100 172 10101100 236 11101100
45 00101101 109 01101101 173 10101101 237 11101101
46 00101110 110 01101110 174 10101110 238 11101110
47 00101111 111 01101111 175 10101111 239 11101111
48 00110000 112 01110000 176 10110000 240 11110000
49 00110001 113 01110001 177 10110001 241 11110001
50 00110010 114 01110010 178 10110010 242 11110010
51 00110011 115 01110011 179 10110011 243 11110011
52 00110100 116 01110100 180 10110100 244 11110100
53 00110101 117 01110101 181 10110101 245 11110101
54 00110110 118 01110110 182 10110110 246 11110110
55 00110111 119 01110111 183 10110111 247 11110111
56 00111000 120 01111000 184 10111000 248 11111000
57 00111001 121 01111001 185 10111001 249 11111001
58 00111010 122 01111010 186 10111010 250 11111010
59 00111011 123 01111011 187 10111011 251 11111011
60 00111100 124 01111100 188 10111100 252 11111100
61 00111101 125 01111101 189 10111101 253 11111101
62 00111110 126 01111110 190 10111110 254 11111110
63 00111111 127 01111111 191 10111111 255 11111111

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:

192 (8 bit) 168 (8 bit) 150 (8 bit) 2 (8 bit)


Network Host

Ogni indirizzo IP si suddivide in due o tre parti:

a) Divisione degli IP con mashere di sottorete convenzionali:

Network Host

• Classe A = da 1.0.0.0 a 126.255.255.255 -


inizia con un bit a 0 (primo ottetto da 1 a 126 in decimale), 7 bit per la rete , 24 per l'host.
Permette di avere 126 reti con 16.777.213 host ciascuno.

N.H.H.H
0 78 31
0 Network Host

• Classe B = da 128.0.0.0 a 191.255.255.255


inizia con due bit a 10 (primo ottetto da 128 a 191 in decimale), 14 bit per la rete , 16 per l'host.
16.382 reti, di 65.534 host ciascuno.

N.N.H.H

0 1 15 16 31
1 0 Network Host

• Classe C = da 192.0.0.0 a 223.255.255.255


inizia con tre bit a 110 (primo ottetto da 192 a 223 in decimale), 21 bit per la rete , 8 per l'host.
2.097.150 reti, di 254 host ciascuno.

N.N.N.H

0 1 2 23 24 31
1 1 0 Network Host

b) Divisione degli Ip con maschere di sottorete non convenzionali:

Nel caso di maschere di sottorete non convenzionali, il campo Host viene ulteriormente suddiviso in due
parti. Subnet e host.

Network Subnet 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.

Applicando una maschera di sottorete (subnetmask) ad un indirizzo IP si permette l'identificazione della


sottorete di appartenenza con la semplice comparazione dell' indirizzo e della maschera. L' operazione si
dice di "AND LOGICO" fra il numero IP e la sua maschera. Risultato di questa operazione è
l'individuazione della rete di appartenenza.
L'operazione di AND LOGICO compara 2 bit: se sono entrambi di valore "1", il risultato sarà "1",
altrimenti sarà "0" (lettura incrociata della tabella seguente):

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.

Subnet mask di default (maschere di sottorete convenzionali)

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.

In presenza di reti locali non segmentate si userà la maschera di default.


Vediamone un esempio:
Dichiariamo l'indirizzo IP 150.129.220.200 con maschera di sottorete 255.255.000.000 ed effettuiamo
l'AND LOGICO:

10010110.10000001.11011100.11001000 150.129.220.200 Indirizzo classe B


11111111.11111111.00000000.00000000 255.255.000.000 Subnet Mask classe B
-----------------------------------------------------------------------
10010110.10000001.00000000.00000000 150.129.000.000 Indirizzo di rete

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.

TABELLA DELLE NETMASK DI DEFAULT


Significato dell'indirizzo
Classe NetMask di default Esempi di indirizzi host Rete di appartenenza
IP

A 255.0.0.0 N.H.H.H 10.0.1.23 10.0.0.0


B 255.255.0.0 N.N.H.H 146.87.12.250 146.87.0.0
C 255.255.255.0 N.N.N.H 200.150.189.31 200.150.189.0

Mascherature non convenzionali

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:

Network Subnet Host

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.

Calcolo del numero degli HOST

196.120.30.18 11000100.01111000.00011110.00010010
255.255.255.240 11111111.11111111.11111111.11110000

(identificativo di sottorete) AND logico


196.120.30.16 11000100.01111000.00011110.00010000

(broadcast) si mettono tutti uno nel campo host del broadcast)


196.120.30.31 11000100.01111000.00011110.00011111

Numero di host disponibile: da 196.120.30.17 a 196.120.30.30

107.85.20.2 00000010
255.255.255.240 11111111.11111111.11111111.11110000

107.85.20.0 00000000 Identificativo di sottorete


107.85.20.15 00001111 Broadcast

172.16.14.228 00001110.11100100
255.255.248.0 11111111.11111111.11111000.00000000

172.16.8.0 00001000.00000000 Identificativo di sottorete


172.16.15.255 00001111.11111111 Broadcast

Esempio:

11001000.10110011.11011100.11001000 200.179.220.200 IP Address


11111111.11111111.11111111.11100000 255.255.255.224 Subnet Mask
----------------------------------------------------------------------
11001000.10110011.11011100.11000000 200.179.220.192 Subnet Address
10001100.10110011.11011111.11111111 200.179.220.223 Broadcast Address

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.

NOMI DI HOST E DI DOMINIO

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.

Vediamo come si indicano i dominii fin qui elencati:

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.

La sintassi è semplice: paola.servizio_clienti.marketing.nomeazienda ad esempio indica l'host paola nel


dominio di terzo livello servizio_clienti, che si trova nel dominio marketing, che si trova nel dominio
nomeazienda.

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.

Nomi di dominio su Internet

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

EDU * Siti educativi (scuole, università...)

ORG Organizzazioni non-profit

NET Relativi a Internet

GOV * Governativi americani

MIL * Militari americani

INFO Informazioni di pubblica utilità

TV Mass media

BIZ Siti commerciali

COOP Cooperative

PRO Dominii profeffionali

AERO * Trasporti aerei

MUSEUM * Musei

NAME Dominii personali

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

Ecco un esempio: http://www.disney.com/personaggi/topi/minnie.html indica che si vuole raggiungere il


file /personaggi/topi/minnie.html che si trova su www.disney.com e si utilizza il protocollo Http. Ad ogni
protocollo è associato un numero di porta prefissato, se così non fosse la comunicazione di rete sarebbe
molto ardua. Ma se si sa che per accedere a un certo servizio su un certo sito bisogna usare una porta
diversa da quella prefissata (cosa peraltro rara), occorre specificarne il numero in questo modo:
http://www.disney.com/personaggi/topi/minnie.html:127
DNS

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).

Anche per gli Stati Uniti è stato previsto il codice .us


Viene usato in combinazione del codice di ogni stato (ad esempio .ny.us indica lo stato di New York).

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).

Il formato generico di un RR dispone dei seguenti campi:

• Nome: Il nome di dominio a cui questo RR si riferisce.


• TTL: Time-To-Live, indica in secondi quanto a lungo questo RR rimarrà nella cache dei server
DNS prima di essere scartato. Un'intero a 32 bit unsigned.
• Classe: Identifica la famiglia di protocollo. Il valore usato è sempre IN che indica il sistema
Internet. In realtà esistono altri due valori: HS per i server Hesiod e CH per i Chaosnet ma non
hanno a che fare con le reti TCP/IP di Internet.
• Tipo: Il tipo di RR. I tipi principali sono:
o A: E' il tipo più usato. Indica che il RR contiene l'indirizzo IP per il dominio specificato.
Usato nella normale risoluzione del nome.
o CNAME: Record Canonical Name, usato per indicare un nome di alias per il dominio.
o MX: Mail eXchanger, indica un host che gestisce la posta per il dominio. Lo descriveremo
meglio dopo.
o NS: Un server DNS per il dominio specificato.
o PTR: Usato per associare un indirizzo IP al nome del dominio specificato. Usato nella
risoluzione inversa.
o SOA: Start of Authority, un RR che indica il server DNS dove risiedono i dati autoritativi
per questo dominio ed alcuni dati amministrativi.
• Rdata: Contiene le informazioni per il tipo specificato. A seconda del tipo abbiamo i seguenti casi.
o A: Un indirizzo IP a 32 bit
o CNAME: Un nome di dominio
o MX: Un valore di preferenza a 16 bit seguito da un nome di dominio.
o NS: Il nome di un host
o PTR: Un nome di dominio
o SOA: Comprende diversi campi

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).

I pacchetti di richiesta e di risposta del DNS contengono i seguenti campi:

• 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.

La procedura per loggarsi al server:

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):

I seguenti comandi specificano l'identificazione per l'accesso:

USER NAME (USER)

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.

CHANGE WORKING DIRECTORY (CWD)

Questo comando permette all'utente di lavorare su una directory differente, basta inserire il comando e
come argomento il nome della directory.

CHANGE TO PARENT DIRECTORY (CDUP)

Questo comando invece permette di tornare immediatamente alla directory principale.

STRUCTURE MOUNT (SMNT)

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.

Eventuali errori autorizzeranno il server a comandare l'aborto del processeo e il logout

PARTICOLARI PARAMETRI E I RELATIVI COMANDI::

DATA PORT (PORT)

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

praticamente h1,h2 sono le parti di ip dell'host e p1 e p2 le porte.


Torna su

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.

REPRESENTATION TYPE (TYPE)

Comando per il cambio di formato.

\/
A - ASCII | | N - Non-print
|-><-| T - Telnet format effectors
E - EBCDIC| | C - Carriage Control (ASA)
/\
I - Image

L <byte size> - Local byte Byte size

Torna su

FILE STRUCTURE (STRU)

L'argomento specifica la struttura di invio dei dati "file".

L'invio può avvenire:

F - File (no record structure)


R - Record structure
P - Page structure

Di default si utilizza F.

TRANSFER MODE (MODE)

Questo comando specifica il modo per spedire i dati.

Si può scegliere:

S - Stream
B - Block
C - Compressed

Di default si utilizza Stream.

Torna su

FTP SERVICE COMMANDS

Questo tipo di comandi definiscono il trasferimento dei files o la gestione degli stessi:

RETRIEVE (RETR)

Questo comando permette di trasferire una copia del file specificato.


STORE (STOR)

Questo comando permette la ricezione di un file che verrà creato sul server.

Torna su

STORE UNIQUE (STOU)

Questo comando è simile al STOR, ad eccezione che il file viene creato nella directory corrente sotto il
nome unico della directory.

APPEND (with create) (APPE)

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.

RENAME FROM (RNFR)

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)

Questo comando è successivo al RNFR e causa l'effettiva rinomina del file.

ABORT (ABOR)

Questo è un comando molto potente, che permette l'aborto delle azioni in corso.

Torna su

DELETE (DELE)

Questo comando permette la cancellazione di un file specificato nell'argomento.

REMOVE DIRECTORY (RMD)


Questo comando permette di rimuovere una directory specificata.

MAKE DIRECTORY (MKD)

Questo comando permette la creazione di una directory.

Torna su

PRINT WORKING DIRECTORY (PWD)

Questo comando ci visualizza la directory su cui stiamo lavorando.

LIST (LIST)

Questo comando lista i files e le directory presenti.

NAME LIST (NLST)

Questo comando specifica i file in una directory presente nell'argomento.

Torna su

SITE PARAMETERS (SITE)

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)

Questo comando causa lo stato del trasferimento del file in esecuzione.

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>

PASS <SP> <password> <CRLF>

ACCT <SP> <account-information> <CRLF>

CWD <SP> <pathname> <CRLF>

CDUP <CRLF>

SMNT <SP> <pathname> <CRLF>

QUIT <CRLF>

REIN <CRLF>

PORT <SP> <host-port> <CRLF>

PASV <CRLF>

TYPE <SP> <type-code> <CRLF>

STRU <SP> <structure-code> <CRLF>

MODE <SP> <mode-code> <CRLF>

RETR <SP> <pathname> <CRLF>

STOR <SP> <pathname> <CRLF>

STOU <CRLF>

APPE <SP> <pathname> <CRLF>

ALLO <SP> <decimal-integer>

[<SP> R <SP> <decimal-integer>] <CRLF>

REST <SP> <marker> <CRLF>

RNFR <SP> <pathname> <CRLF>

RNTO <SP> <pathname> <CRLF>

ABOR <CRLF>

DELE <SP> <pathname> <CRLF>

RMD <SP> <pathname> <CRLF>

MKD <SP> <pathname> <CRLF>

PWD <CRLF>

LIST [<SP> <pathname>] <CRLF>

NLST [<SP> <pathname>] <CRLF>

SITE <SP> <string> <CRLF>

SYST <CRLF>

STAT [<SP> <pathname>] <CRLF>

HELP [<SP> <string>] <CRLF>


NOOP <CRLF>

Errori di sintassi e repliche del server:

200 Commando di okay.


202 Commando non implementato, superfluo in questa zona.
211 Stato di sistema, o sistema in replica di un help.
212 Stato della directory.
213 Stato del file.
214 Messaggio di help. In replica a richiesta di help o per conoscere particolari comandi implementati.
215 NAME system type.
220 Servizio pronto per un nuovo utente.
221 Servizio di controllo di chiusura della connessione.
225 Connessioni Dati aperta; nessuna trasmissione in progressione.
226 Chiusa connessione dati.
227 Entra nella modalità passiva (h1,h2,h3,h4,p1,p2).
230 Utente loggato, procedere.
250 Richiesta azione file okay, completa.
257 "PATHNAME" creata.

331 Nome utente okay, necessaria password.


332 Necessaria azione per il login.
350 Richiesta azione su file, attendere altre informazioni.

421 Service non avviabile, chiusura della connessione.


425 Non poter aprire una connessione dati.
426 Connessione chiusa; trasferimento abortito.
450 Richiesta azione su file non presa.
451 Richiesta azione abbortita: errore locale in processione.
452 Richiesta di azione non presa.
Spazio disponibile insufficiente.

500 Errore di sintassi, comando non individuato.


501 Errore di sintassi nei parametri o nell'argomento.
502 Comando non implementato.
503 Cattiva sequenza dei comandi.
504 Comando non implementato per questi parametri.
530 Non loggato.
532 Bisogno di un account per copiare i files.
550 Richiesta di azione non presa. (file non trovato)
551 Richiesta di azione abbortita: tipo pagina sconosciuto.
552 Richiesta azione su file abbortita.
553 Richiesta di azione non presa.

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";

La procedura per spedire un'e-mail prevede delle fasi standard:


Contrattazione: il server saluta con un tipico banner:"220 dominio SMTP Service ready";
Dialogo ( botta-risposta tra il client ed il server)
Chiusura

Esempio di una "conversazione" SMTP:

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:

Mail MAIL mail mAIL

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>

Start mail input; end with <CRLF>.<CRLF>

ciao come va....

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

SEND OR MAIL (SOML)

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.

SEND AND MAIL (SAML)

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.

HELO <SP> <domain> <CRLF>

MAIL <SP> FROM:<reverse-path> <CRLF>

RCPT <SP> TO:<forward-path> <CRLF>

DATA <CRLF>

RSET <CRLF>

SEND <SP> FROM:<reverse-path> <CRLF>

SOML <SP> FROM:<reverse-path> <CRLF>

SAML <SP> FROM:<reverse-path> <CRLF>

VRFY <SP> <string> <CRLF>

EXPN <SP> <string> <CRLF>


HELP [<SP> <string>] <CRLF>

NOOP <CRLF>

QUIT <CRLF>

TURN <CRLF>

Errori di sintassi:

211 System status, or system help reply


214 messaggio di Help
220 <domain> Servizio pronto
221 <domain> Servizio ha chiuso il canale
250 Richieste di azione completata, OK.
251 Utente non locale; si spedirà a <forward-path>

354 Inizia l'input dei dati; finisce con <CRLF>.<CRLF>

421 Servizio non avviabile


450 Richiesta di azione non avviabile [E.g., mailbox piena]
451 Richiesta di azione abbortita: errore locale durante il processo
452 Richiesta di azione abbortita: spazio di sistema insufficiente

500 Errore di sintassi, comando non riconosciuto


501 Errore di sintassy nei parametri o negli argomenti
502 Comando non implementato
503 Cattiva sequenza del comando
504 Parametri del comando non implementati
550 Richiesta di azione non presa: mailbox inavvibile
551 Utente non locale; perfavore prova <forward-path>
552 Richiesta di azione abbortia: si eccede l'allocazione di spazio
553 Richiesta di azione non presa: nome della mailbox non permesso
554 Transazione fallita

Configurazione Router CISCO

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

Comandi di Base per la configurazione di un Router CISCO

enable : entra in super-user mode

show running-config: visualizza la configurazione corrente

configure terminal : entra in modalità di configurazione generale

host xxx : setta il nome host del router

interface sx/ex : entra in modalità di configurazione per l’interfaccia da configurare


ip address ip subnet : setta l’ip address per l’intefaccia

no shutdown : rende attiva l’interfaccia

router rip : abilita il protocollo rip verso network diversi

network xxx : specifica il network dove abilitare il rip

copy running-configuration startup-configuration : copia la configurazione corrente nella


NVRAM

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.

Appena l'internetworking (proprio da interconnettere e quindi INTERNET) divenne più popolare, si


formarono tre maggiori networks (durante gli anni '80): BITNET (Because It's Time Network), CSNET
(Computer Science Network) e NSFnet (National Science Foundation Network).
NSFnet divenne la principale rete portante di INTERNET (definita "backbone" o spina dorsale) grazie
ad una linea a 56Kbps.

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)

Potrebbero piacerti anche