Sistemi Client/Server by wZ9puf

VIEWS: 74 PAGES: 54

									                                        LE RETI
Introduzione al concetto di rete
II termine rete è nato per indicare in modo generico un collegamento tra due
apparecchiature (sorgente e destinazione) attraverso un mezzo trasmissivo per effettuare una
trasmissione di informazioni.
All'inizio le reti erano costituite essenzialmente da terminali remoti collegati a unità
centrali (mainframe) mediante linee telefoniche o telegrafiche; l'uso di terminali remoti per
l'elaborazione era noto come teleprocessing; la potenza di elaborazione era concentrata in
un punto (architettura centralizzata o master/slave).
La realizzazione di questo tipo di reti era legata a soluzioni proprietarie; una soluzione si
dice proprietaria quando la realizzazione dipende dal costruttore ed è incompatibile con
scelte di costruttori diversi; le specifiche non sono pubbliche.
Attualmente per rete di calcolatori sì intende un insieme di computer indipendenti, cioè che
possono lavorare autonomamente, ma collegati tra loro in modo da potersi scambiare
informazioni (architettura distribuita).
Inoltre si è sentita la necessità di realizzare sistemi aperti che consentano di collegare e
utilizzare prodotti di costruttori diversi; ciò rende necessario lo sviluppo di standard
comuni. Il collegamento di computer in rete offre maggiore affidabilità e minor costo
rispetto all'uso di mainframe e terminali; un fattore importante è la scalabilità, cioè la
possibilità di aumentare le risorse della rete in base alle necessità.
Le reti permettono tra l'altro:
    • di condividere risorse (per esempio i dati in un file o una stampante),
    • di comunicare tra persone lontane (usando posta elettronica, videoconferenze ecc.),
    • di utilizzare servizi di vario tipo come consultazione di informazioni, commercio
      elettronico, applicazioni di tele-medicina e così via; i servizi a cui si può accedere in
      rete vengono detti anche servizi telematici; la telematica è una disciplina che nasce dai
      rapporti tra scienza delle telecomunicazioni e informatica e si occupa dell'elaborazione
      a distanza delle informazioni.
Di solito si usano sistemi di tipo client/server. I server sono computer su cui girano
applicazioni che mettono a disposizione delle risorse o dei servizi. I client chiedono ai
server di accedere a una risorsa o di eseguire un certo lavoro. Il server esegue il lavoro e
restituisce la risposta. In una rete in genere ci sono pochi server, più potenti, condivisi, e
molti client poco potenti e meno costosi. Comunque il ruolo non è così netto; uno stesso
computer può fungere da client o da server in situazioni diverse, o anche da server e da
client contemporaneamente.
Ogni computer della rete può essere usato in modo autonomo e deve avere un proprio
sistema operativo. Per il collegamento in rete deve inoltre utilizzare un opportuno software
di rete.
Attualmente i sistemi operativi sono dotati delle funzioni necessarie per il collegamento in
rete, cioè integrano il software di rete necessario per la comunicazione tra computer.
Un'ulteriore evoluzione delle reti sono i sistemi distribuiti; un sistema distribuito è una rete
che usa un sistema operativo in grado di rendere trasparente all'utente l'esistenza di
molteplici computer autonomi. Con una rete gli utenti devono esplicitamente collegarsi a un
certo computer per usarne i file o richiedere elaborazioni e occuparsi della gestione della
rete; in un sistema distribuito è tutto fatto automaticamente dal sistema operativo: l'utente


                                               1
utilizza il sistema distribuito in modo trasparente, cioè non sa dove si trovi in esecuzione il
programma o dove si trovino i file utilizzati.
Un sistema distribuito può essere dotato di un sistema operativo distribuito; il sistema
operativo in questo caso è un unico programma distribuito, cioè disperso ed eseguito sui
vari computer.

Classificazioni
Le reti si possono classificare secondo la tecnologia di trasmissione e la dimensione.
In base alla tecnologia di trasmissione le reti possono essere di tipo broadcast o di tipo
point to point.
Le reti con tecnologia broadcast hanno unico canale di comunicazione condiviso da tutte le
stazioni; quando una stazione deve comunicare con un'altra invia un messaggio che viene
ricevuto da tutte le altre. Un campo indirizzo all'interno del messaggio indica a chi è diretto.
Ogni stazione controlla il campo indirizzo ed elabora il messaggio solo se è diretto a lei. Le
reti con tecnologia point to point usano collegamenti individuali tra coppie di stazioni; per
andare dal mittente al destinatario il messaggio può dover attraversare più stazioni
intermedie.
Messaggi point to point, broadcast e multicast
Indipendentemente dalla tecnologia di trasmissione l'invio di un messaggio può essere
rivolto:
     • a una stazione ben precisa (point to point),
     • a tutte le stazioni (broadcasting),
     • ad un gruppo di stazioni (multicasting).
Le reti con tecnologia broadcast per la loro natura permettono facilmente il broadcasting.
In base alla dimensione le reti si possono dividere in locali (LAN - Locai Area Network),
metropolitane (MAN - Metropolitan Area Network) e geografiche (WAN - Wide Area
Network). Dimensioni e tecnologia di trasmissione sono in relazione tra loro: in generale
reti piccole usano la tecnologia broadcast e reti geografiche la tecnologia point to point.
Le reti locali sono reti private all'interno di un singolo edificio o edifici vicini, di
dimensione al più di qualche chilometro; non possono attraversare suolo pubblico. Per la
maggior parte usano la tecnologia di trasmissione broadcast, anche se alcune usano
collegamenti point to point. Hanno velocità tra 10 Mbps e 100 Mbps, basso ritardo (decine
di microsecondi) e basso tasso di errore.
Le reti metropolitane possono coprire un gruppo di uffici o una città e possono essere
private o pubbliche.
Le reti geografiche coprono una grande area geografica, una nazione, un continente o
l'intero pianeta. I computer che eseguono programmi per gli utenti (host) sono collegati da
una sottorete di comunicazione costituita da linee di trasmissione ed elementi di
commutazione noti come router. Quando un computer vuole comunicare con un altro
bisogna individuare un percorso per raggiungere il destinatario (routing o instradamento); i
router collegano due o più linee di trasmissione; quando i dati arrivano su una linea di
ingresso il router deve scegliere una linea di uscita per farli proseguire.
Reti locali o metropolitane possono collegarsi a reti più ampie mediante un router.
Il collegamento di due o più reti si chiama internet. La comunicazione tra reti di tipo
diverso è un problema noto come internetworking.
La forma che assume la sottorete di comunicazione tra le varie stazioni viene detta
topologia di rete.

                                               2
Le reti geografiche collegano punti precisi in zone geografiche diverse e non possono quindi
generalmente rispettare una disposizione particolare; la topologia di queste reti viene detta a
maglia.
Nelle reti locali tutte le stazioni sono a breve distanza tra loro e possono quindi essere
collegate in modo opportuno, rispettando una particolare disposizione (per esempio a bus,
stella o anello).
La topologia è importante per aspetti come l'instradamento dei messaggi e la tolleranza ai
guasti, inoltre influenza l'organizzazione logica dei protocolli di livello superiore.

Applicazioni di rete
Gli applicativi di rete sono tutti quei programmi che scambiano informazioni utilizzando la
rete.
Storicamente le reti sono nate per le applicazioni di terminale virtuale (per l'elaborazione
remota), trasferimento file e posta elettronica.
Molto utilizzata è la consultazione di informazioni a distanza, dalla più antica
consultazione di database remoti alla recente ricerca di pagine Web.
Via via si sono resi disponibili molti altri servizi, alcuni di utilizzo molto comune, altri più
sofisticati.
Noto a tutti è il servizio teletext, che in Italia prende il nome di Televideo; usa una rete in
cui le comunicazioni avvengono via onde radio; ci si può collegare semplicemente mediante
il proprio televisore, a cui viene aggiunto un particolare processore; il televisore funziona da
stazione ricevente ed è possibile eseguire delle interrogazioni su informazioni di varia
natura disposte in pagine.
Il servizio di teleconferenza permette di effettuare riunioni a distanza tra persone che
risiedono in luoghi diversi con collegamento audio o anche video (audioconferenza /
videoconferenza).
Il commercio elettronico è un recente servizio che permette di effettuare acquisti a distanza
e di pagare con carta di credito o moneta elettronica (EFTS - Electronic Funds Transfer
System).
I servizi di tele-medicina permettono l'invio di informazioni medico-sanitarie a stazioni di
ricevimento in cui vengono esaminati i dati fornendo in risposta la diagnosi e la terapia;
consentono la trasmissione di cartelle cliniche, radiografie, ecografie e TAC ma anche di
effettuare analisi a distanza.

Software di rete
Le applicazioni sono la parte più nota del software di rete, ma non l'unica necessaria. È
indispensabile un software per la gestione della comunicazione tra le stazioni.
Il software di rete è molto complesso; per dominare la complessità è altamente strutturato,
organizzato come una serie di strati o livelli, ognuno costruito su quello inferiore. Il numero
di livelli, il nome, e le funzioni di ciascun livello possono essere diversi da una rete all'altra.
Lo scopo di ogni livello è di offrire certi servizi al livello superiore nascondendo i dettagli
su come i servizi offerti sono realizzati. Ogni livello può fornire diversi tipi di servizi.
In pratica un servizio è un insieme di operazioni che un livello fornisce al livello superiore.
Il livello superiore può richiedere un'azione usando delle opportune primitive, e il livello
inferiore la esegue. Fra ogni coppia di livelli adiacenti c'è un'interfaccia che definisce quali
servizi e primitive il livello sottostante offre a quello superiore.


                                                3
Il punto di accesso da cui un livello rende disponibili i suoi servizi al livello superiore, cioè
da cui il livello superiore può accedere ai servizi offerti, è detto SAP (Service Access
Point).
Il servizio definisce quali operazioni può eseguire ma non dice nulla su come tali operazioni
vengono implementate.
Un livello di una stazione permette una conversazione con il livello corrispondente di
un'altra stazione (livelli paritetici).
Le regole e le convenzioni usate in queste conversazioni sono chiamate protocolli.
I protocolli descrivono come vengono eseguiti i servizi; definiscono le regole che
governano il formato e il significato dei blocchi di informazioni che vengono scambiati fra i
livelli paritetici.
Quindi si possono modificare i protocolli se non cambiano i servizi disponibili.
Gli elementi che in ogni livello offrono effettivamente i servizi al livello superiore, e
comunicano con il livello corrispondente, sono chiamati entità (può trattarsi di un processo
software o di un dispositivo hardware). Le entità che si trovano in livelli corrispondenti
vengono dette entità paritetiche (o peer entities).
Ogni livello richiede un meccanismo per identificare le entità che rappresentano il mittente e
il destinatario. È quindi necessario un meccanismo di identificazione o indirizzamento ad
ogni livello.
Un insieme di livelli e protocolli è chiamato architettura di rete.
Un'architettura di rete descrive i livelli e i protocolli di ciascun livello, ma non le
implementazioni. Per ciascun livello si può implementare in modi diversi un'entità purché
risponda correttamente al protocollo appropriato, cioè segua le regole di comunicazione
definite dal protocollo. Si possono avere stazioni che usano implementazioni diverse (anche
con interfacce diverse tra i livelli), purché ogni stazione abbia gli stessi livelli e usi
correttamente i protocolli. L'insieme dei protocolli usati da una stazione, relativi ad una
architettura di rete, è chiamata pila di protocolli (o stack di protocolli).
In realtà nessun messaggio viene trasferito direttamente da un livello di una stazione al
livello corrispondente di un'altra stazione. Invece ogni livello passa il messaggio al livello
immediatamente sottostante, fino al livello più basso che gestisce la trasmissione sul mezzo
fisico, attraverso il quale avviene la comunicazione.
Ogni livello aggiunge al messaggio un'intestazione (header) con informazioni di controllo e
a volte un trailer (altre informazioni alla fine del messaggio). Un livello potrebbe dover
frammentare il messaggio in unità più piccole, aggiungendo un'intestazione ad ogni
frammento.
Quando il messaggio arriva alla stazione destinataria il messaggio risale lungo i livelli.
Ogni livello toglie le informazioni che sono state aggiunte dal livello corrispondente, le
utilizza per la propria elaborazione, e passa il resto del messaggio al livello superiore.
Sebbene i dati vengano trasmessi verticalmente, ogni livello è programmato come se la
comunicazione avvenisse in modo orizzontale. Ogni livello esegue alcuni compiti in
trasmissione ed altri, complementari, in ricezione.
Si usa anche la seguente terminologia: il messaggio passato da un livello al sottostante viene
chiamato PDU (Protocol Data Unit); lo stesso messaggio nel livello sottostante viene
chiamato SDU (Service Data Unit). Le informazioni aggiunte alI'SDU come intestazione
vengono chiamate PCI (Protocol Control Information). Il messaggio formato da PCI e SDU
costituisce la PDU da passare al livello successivo.


                                               4
Ogni protocollo descrive il formato della relativa PDU; in questa descrizione spesso il
termine byte viene sostituito dal termine ottetto. Normalmente al posto di PDU si usano i
termini:
    • segmento (nel livello di trasporto),
    • pacchetto (nel livello di rete),
    • frame (nel livello di data link).
Un servizio offerto da un livello a quello superiore può essere:
    • connection oriented o orientato alla connessione, come una telefonata: dopo aver
       stabilito la connessione i dati seguono sempre lo stesso percorso e arrivano in ordine;
    • connectionless o privo di connessione, come una lettera: due lettere che devono
       raggiungere la stessa destinazione possono seguire percorsi diversi e arrivare in modo
       non ordinato; i servizi senza connessione sono chiamati servizi datagram.
Inoltre un servizio può essere:
    • affidabile, se non vengono mai persi dati; è chiamato anche confermato perché
       normalmente si realizza usando messaggi di conferma di avvenuta ricezione;
    • non affidabile (o non confermato), se non è garantita la consegna dei dati.
Si possono quindi avere le combinazioni:
    • servizio orientato alla connessione e affidabile, necessario per esempio per il
       trasferimento di un file: i dati devono arrivare tutti e in ordine; i servizi affidabili
       orientali alla connessione possono essere a sequenze di messaggi, se sono preservati i
       limiti di dimensione dei messaggi, o a successione di byte, se si vede un flusso di byte
       continuo ma i messaggi inviati possono essere più di uno;
    • servizio orientato alla connessione e non affidabile, indicato per la trasmissione di
       voce o filmati in tempo reale; è preferibile un servizio inaffidabile per non subire il
       ritardo della conferma;
    • servizio non connesso non confermato (o datagram service), utilizzabile quando non
       è importante se qualche messaggio si perde;
    • servizio non connesso confermato, in cui dopo l'invio si attende un messaggio di
       conferma della ricezione.
Ogni servizio offerto da un livello rende disponibili alcune operazioni o azioni che possono
essere richieste dal livello superiore mediante opportune primitive; le primitive possono
avere dei parametri per specificare ulteriormente l'operazione.
La suddivisione in livelli permette di creare facilmente applicazioni di rete senza doversi
preoccupare di problemi generali come la ricerca di un percorso verso il destinatario, la
dimensione dei messaggi di informazione, il controllo degli errori, la differenza di velocità
tra il mittente e il destinatario e così via.
Per creare un'applicazione basta utilizzare le primitive messe a disposizione dal livello di
trasporto della pila di protocolli per la gestione della comunicazione.
In questo modo sono i livelli sottostanti, già predisposti, che si occupano di tutte le
problematiche della comunicazione in rete e il programmatore si può concentrare sulle
funzioni che l'applicazione deve effettivamente svolgere.

OSIeTCP/IP
Nello studio delle reti sono di fondamentale importanza:
   • il modello di riferimento OSI, che è solo un modello di riferimento e non
     un'architettura di rete, poiché descrive livelli e servizi ma non i protocolli;


                                              5
   • il modello TCP/IP, una suite di protocolli che è chiamata impropriamente modello,
     mentre invece è effettivamente un'architettura di rete.

II modello OSI
II modello OSI (Open Systems Interconnection Reference Model) è un modello di software
di rete a livelli definito dall'ISO (International Standards Organization) per cercare di
risolvere il problema delle grandi differenze esistenti tra sistemi di elaborazione diversi; il
nome indica infatti che riguarda il collegamento di sistemi aperti alla comunicazione con
altri sistemi. Una rete si dice aperta quando ad essa ci si può collegare da qualsiasi punto
geografico e con qualsiasi sistema tramite un mezzo di comunicazione e opportuni
protocolli.
Il modello OSI definisce sette livelli:
    • livello fisico: si occupa della trasmissione dei bit lungo un mezzo di trasmissione;
    • livello di data link o di linea: deve far apparire ai livelli superiori il mezzo di
      trasmissione come esente da errori di trasmissione;
    • livello di rete: controlla il funzionamento della sottorete di comunicazione (linee e
      router); in particolare si occupa della ricerca di un percorso nella sottorete;
    • livello di trasporto: il suo scopo è fare in modo che i dati inviati dal mittente arrivino
      a destinazione come se attraversassero una linea diretta tra le due stazioni, senza errori
      (in pratica come il livello di data link; la differenza è che il livello di data link si
      occupa del collegamento diretto tra due stazioni, mentre il livello di trasporto si occupa
      della comunicazione tra due stazioni attraverso la sottorete di comunicazione);
    • livello di sessione: dovrebbe aggiungere servizi avanzati al trasporto di dati; in realtà
      questo livello non è molto utile;
    • livello di presentazione: fa riferimento alla sintassi e alla semantica delle
      informazioni trasmesse, diversamente dagli altri livelli che gestiscono solo una
      sequenza di bit;
    • livello di applicazione: contiene molti protocolli che offrono servizi all'utente.

                                Modello OSI          Livello
                                Applicazione            7
                                Presentazione           6
                                  Sessione              5
                                  Trasporto             4
                                     Rete               3
                                  Data link             2
                                    Fisico              1

I primi tre livelli (livelli fisico, di data link e di rete) possono essere considerati come
standard per la comunicazione: si occupano della gestione della sottorete di
comunicazione; dipendono dal gestore della rete di comunicazione e le applicazioni non
possono influire su di essi.
I quattro livelli superiori (livelli di trasporto, sessione, presentazione e applicazione)
riguardano l'elaborazione; permettono di creare applicazioni indipendenti dalla rete di
comunicazione.


                                                6
Nel modello OSI il livello di rete offre servizi orientali alla connessione e servizi privi di
connessione; il livello di trasporto solo servizi orientali alla connessione.
II modello OSI non include la definizione di protocolli specifici ai vari livelli; quindi non è
un'architettura, ma solo un modello di riferimento. Alcuni protocolli sono stati definiti
successivamente, in standard separati.

II TCP/IP
II TCP/IP è un'architettura di rete ideata con l'obiettivo di collegare reti di natura diversa
(internetworking) e di essere molto affidabile anche in caso di guasti a parti della rete; è
nato da una ricerca finanziata dal Dipartimento della Difesa Statunitense che voleva una rete
affidabile, utilizzabile anche in caso di guerre o catastrofi.

                                 OSI                    TCP/IP
                            Applicazione
                            Presentazione            Applicazione
                              Sessione
                              Trasporto                Trasporto
                                 Rete                    Rete
                              Data link
                                Fisico

I livelli fondamentali di questa architettura sono il livello di rete e il livello di trasporto.
II livello di rete (chiamato anche livello internet) offre un servizio privo di connessione e
non affidabile: le informazioni vengono spezzate in pacchetti (pacchetti del protocollo IP, o
Internet Protocol) e ogni pacchetto può raggiungere la destinazione in modo indipendente,
anche in ordine diverso da quello di invio; si tratta di una rete a commutazione di pacchetto.
Il livello di trasporto offre due tipi di servizi: orientato alla connessione (protocollo TCP, o
Transmission Contro! Protocol) e privo di connessione (protocollo UDP, o User Datagram
Protocol). L'applicazione può scegliere quale servizio utilizzare.
Non ci sono i livelli di sessione e presentazione.
Il livello di applicazione contiene tutti i protocolli e i servizi ad alto livello (come HTTP,
SMTP, FTP, DNS ecc.).
Sotto al livello di rete non vengono definiti altri livelli. Viene indicato genericamente un
livello chiamato host-to-network che prevede di utilizzare uno qualsiasi degli standard
disponibili.
Praticamente il TCP/IP può utilizzare qualsiasi protocollo sottostante per trasportare
pacchetti IP lungo il mezzo di trasmissione: si può appoggiare a qualsiasi tecnologia
esistente.

         Applicazione      HTTP, SMTP, POP3, FTP, NNTP, SNMP, DNS, VolP ...

         Trasporto                                 TCP, UDP

         Rete                IP, ARP, RARP, BOOTP, ICMP, IGMP, OSPF, BGP

                                     Vari standard per LAN, MAN e WAN


                                               7
Storia del TCP/IP
Le date fondamentali nella storia del TCP/IP sono:
1957 - Gli Stati Uniti formano la Advanced Research Project Agency (ARRA) nell'ambito
       del Dipartimento della Difesa (DoD Dipartment of Defence) per studiare applicazioni
       di scienza e tecnologia all'uso militare.
1962 - Parte il progetto di realizzare una rete in grado di continuare a funzionare anche in
       caso di attacco nucleare. Il progetto finale consiste in una rete a commutazione di
       pacchetto.
1968 - Nasce la rete ARPAnet con il collegamento dei primi quattro siti (quattro Università
       che usavano tutte sistemi diversi): Università della California a Los Angeles,
       Stanford Research Institute, Università della California a Santa Barbara, Università
       dello Utah. Il collegamento usa linee telefoniche a 50 kbps. Il protocollo utilizzato
       per comunicare tra gli host viene chiamato NCP (Network Contro! Protocol).
1972 - La rete ARPAnet collega 32 nodi (università e strutture governative) usando linee
       telefoniche, reti satellitari e onde radio; Ray Tomlinson crea un programma per la
       posta elettronica usato dai docenti universitari per comunicare con i colleghi.
1973 - Comincia lo sviluppo del TCP/IP.
1982 - Si inizia ad usare il termine Internet come insieme di internet TCP/IP collegate tra
       loro.
1983 - ARPAnet viene divisa separando la parte pubblica (ARPAnet e poi Internet) da
       quella militare (MILnet Military Network). L'Università del Wisconsin introduce il
       DNS per la risoluzione dei nomi.
1989 - Nasce il servizio Web al CERN, il centro Europeo per la ricerca sulla fisica nucleare.

Confronto tra modello OSI e TCP/IP
I modelli OSI e TCP/IP sono i maggiori standard di riferimento nel mondo delle reti.
II TCP/IP è uno standard de facto, cioè è diventato uno standard grazie al suo utilizzo; una
delle prime implementazioni è stata una componente dello Unix di Berkeley, che è stata
velocemente accettata e a cui sono stati apportati miglioramenti producendo sempre una
maggior diffusione.
Il modello OSI è uno standard de jure, cioè uno standard formale, legale, adottato da una
struttura autorizzata alla definizione di standard.
Sia OSI che TCP/IP sono basati sul concetto di una pila di protocolli indipendenti e
sovrapposti; le funzioni dei vari livelli sono abbastanza simili.
La differenza principale consiste nel fatto che il modello OSI è stato definito come modello
di riferimento prima dei protocolli, mentre nel TCP/IP il modello è nato per descrivere
protocolli già esistenti e realmente utilizzati.
Il modello OSI è ottimo come modello, molto adatto per lo studio delle reti, ma non
esistono buone implementazioni.
Il TCP/IP è un'architettura molto utilizzata in pratica ma non è molto adatta come
modello.

Internet
Internet è una rete geografica aperta di estensione mondiale.
Per entrare a.far parte di Internet bisogna sottoscrivere un abbonamento con un provider o
ISP (Internet Service Provider), un fornitore di servizi Internet.


                                             8
Dopo aver stabilito un collegamento al computer del provider si ha accesso all'intera rete
Internet. Il modo più semplice di collegarsi è utilizzare la rete telefonica.
Non c'è bisogno di un computer particolare o di un sistema operativo particolare; la sola
cosa indispensabile è che sul computer sia installato il protocollo TCP/IP (Transmission
Control Protocol/Internet Protocol), il protocollo di comunicazione, o meglio l'insieme di
protocolli, usato da tutti i computer collegati a Internet.
Ogni computer collegato a Internet è identificato da un numero, univoco a livello mondiale,
chiamato indirizzo IP.
L'indirizzo IP comunemente è rappresentato nella notazione decimale puntata cioè da 4
numeri (compresi tra O e 255) separati da punti, per esempio 132.45.37.1. L’indirizzo IP
viene fornito dal provider; può essere un indirizzo statico se il collegamento avviene
utilizzando sempre lo stesso indirizzo o un indirizzo dinamico se ad ogni collegamento
viene fornito un indirizzo diverso.
Per collegarsi ad un altro computer è necessario conoscere il suo indirizzo IP.
Poiché è difficile ricordare gli indirizzi IP viene usato anche un sistema basato su nomi. Si
può pensare che i computer siano divisi in gruppi chiamati domini (la suddivisione non
dipende dalla posizione geografica ma è solo un raggruppamento organizzativo). Ogni
dominio ha un nome e può essere diviso in sottodomini che hanno ciascuno un nome e ogni
computer che deve essere accessibile deve avere un nome.
II nome completo di un computer è costituito dal nome del computer, dal nome del
sottodominio di livello più basso a cui appartiene, dai nomi degli altri sottodomini in ordine
gerarchico, fino al nome del dominio; i nomi sono separati da un punto.
In pratica la prima parte del nome è il nome del server; la parte rimanente è chiamata,
genericamente dominio o in modo più tecnico FQDN (Fully Quaìified Domain Name). I
nomi di dominio di primo livello (TLD - Top Level Domain) possono essere di tipo
organizzativo (per esempio com per un'organizzazione commerciale) o nazionali (due
caratteri che rappresentano una nazione, per esempio it per l'Italia).
In alcuni paesi, per esempio in Gran Bretagna (dominio uk, United Kingdom), i domini di
secondo livello ricalcano la suddivisione americana di tipo organizzativo, anche se con sigle
diverse, per esempio co.uk per aziende commerciali o ac.uk per Università (ac sta per
academic).

   Nomi di dominio TLD (Top Level Domain)
     Di tipo organizzativo
         TLD introdotti dal 1988:
             com organizzazioni commerciali
             edu istituti di insegnamento e università
             org organizzazioni no-profit
             net servizi di rete
             gov enti pubblici
             mil enti pubblici militari
         TLD approvati alla fine del 2000:
             biz siti per il commercio
             name pagine personali
             info siti di informazione
             aero società di trasporto aereo
             coop cooperative
             museum musei
             pro professionisti
                                                  9
        Altri TLD proposti:
            arts entità che svolgono attività artistiche e culturali
            firm entità commerciali
            ree entità che offrono servizi di svago e per il tempo libero
            shop siti di vendita a distanza
            web entità che svolgono attività correlate al WWW
            int istituti internazionali
            nato istituzioni della NATO
     Nazionali
        xx codici nazionali di 2 caratteri: per esempo it per l'Italia, fr per la Francia, uk per la
        Gran Bretagna
        eu per i paesi dell'Europa che hanno adottato l'euro

Nuovi TLD possono essere istituiti solo dall'ICANN (Internet Corporation for Assigned
Name and Numbers), l'ente internazionale che gestisce tutti i regolamenti per i nomi di
dominio.
Anche i nomi di dominio, come gli Indirizzi IP, devono essere univoci e devono essere
registrati; il provider può provvedere alla registrazione di un nome di dominio, o meglio di
un sottodominio (o nome di dominio di secondo livello, o terzo ecc.); i nomi nei domini
TLD sono gestiti dall'InterNIC (Internet Network Information Center, www.internic.net). I
nomi nei domini mil, gov e edu sono riservati agli Stati Uniti.
La registrazione dei nomi di dominio nel dominio it gestita dalla Registration Authority
italiana (www.nic.it), un organismo chiamato NIC per analogia con l'organismo
statunitense. Il NIC in precedenza era noto come NIS (Network Information Seivice),
un’entità che svolgeva il compito di assegnazione dei nomi per conto della rete GARR
(Gruppo Armonizzazione Reti per la Ricerca) che collega le organizzazioni di ricerca
italiane (come il CNR, Consiglio Nazionale delle Ricerche) e i Consorzi universitari (come
il CILEA di Milano e il CINECA di Bologna).
Dopo aver registrato un nome di dominio (l'FQDN), un'organizzazione può suddividerlo
ulteriormente e gestire più server aggiungendo il nome del server all'FQDN
(nomeServer.nomeFQDNdelDominio).
L’uso dei nomi al posto degli indirizzi è permesso da un servizio chiamato DNS (Domain
Name System), che permette di tradurre automaticamente il nome nel corrispondente
indirizzo (e anche viceversa).

Intranet ed extranet
I servizi di Internet possono essere resi disponibili su una rete locale (collegata o meno a
Internet) sui cui computer sia installato il protocollo TCP/IP; una rete di questo tipo prende
il nome di intranet.
Se l'intranet viene messa a disposizione di.utenti che accedano dall’esterno viene chiamata
extranet.
Problematiche relative alla gestione di una intranet, oltre alla configurazione del TCP/IP,
sono la gestione dei server che offrono i servizi normalmente usati su Internet, tra cui
principalmente un server Web, e il collegamento della intranet a Internet e di conseguenza la
protezione dell'accesso alle risorse dall'esterno.




                                                10
                             Introduzione alle reti locali
Una rete locale (LAN) è una rete di computer di dimensione limitata geograficamente e
senza attraversamento di suolo pubblico.
Ci sono vari tipi di reti locali che si distinguono per le loro dimensioni, la loro tecnologia di
trasmissione e la loro topologia.
In generale si può dire che le reti locali usano un mezzo di trasmissione equamente
condiviso da tutte le stazioni (tecnologia broadcast) che permette comunicazioni ad alta
velocità (10-100 Mpbs) e a basso tasso di errore.
Nelle reti locali ogni stazione può prendere l'iniziativa di comunicare; una stazione può non
usare la rete per molto tempo ma quando la usa può richiedere prestazioni altissime (utilizzo
a burst); le stazioni condividono un solo canale ad alta velocità; quando una stazione
trasmette occupa temporaneamente tutta la banda di trasmissione; si devono usare protocolli
di controllo di accesso al mezzo e stabilire indirizzi per individuare mittente e destinatario.
Poiché il tasso di errore è basso i protocolli a livello di data link possono usare servizi non
connessi, più efficienti dei servizi connessi.
Gli elementi fondamentali di una rete locale sono i mezzi di trasmissione e le schede di
rete (NIC - Network Interface Card) con i corrispondenti driver che gestiscono i livelli
fisico e di data link.
Possono inoltre esserci dei ripetitori, cioè dispositivi che amplificano il segnale e lo inviano
nuovamente sul mezzo (agiscono solo al livello fisico del modello OSI).
I protocolli per le reti locali sono spesso chiamati architettura di LAN; sono incorporati
nelle schede di rete e determinano forma, dimensioni e funzionamento della rete.
Naturalmente poi servono i protocolli di comunicazione e le applicazioni per svolgere il
lavoro desiderato; lo scopo principale di una rete locale è la condivisione di risorse e lo
scambio di informazioni.
La scelta di un'architettura di LAN non limita la scelta dei protocolli di livello più alto.

Topologie di rete per le reti locali
Le topologie possono essere viste dal punto di vista fisico o logico; la topologia fisica di
una rete descrive la disposizione geometrica dei suoi componenti, riguarda la forma e la
struttura della LAN; la topologia logica invece descrive quali sono i percorsi seguiti nella
comunicazione tra coppie di stazioni.
Le topologie fisica e logica di una rete locale possono essere diverse. In tal caso si descrive
la topologia fisica e si precisa quale topologia logica viene usata per il funzionamento della
rete (in pratica la rete pur avendo una certa topologia fisica si comporta come se ne avesse
una diversa).
Le topologie principali sono a bus, a stella e ad anello ma ci sono topologie più complesse.
Nella topologia a bus ogni stazione è collegata ad un'unica linea, il bus.
Nella topologia a stella tutti i nodi sono collegati ad un punto comune (hub); è diventata la
topologia fisica dominante, flessibile e poco costosa.
Nella topologia ad anello ogni stazione è collegata con altre due in una disposizione
circolare; per passare dalla stazione che trasmette alla stazione di destinazione, un
messaggio deve attraversare tutte le stazioni intermedie. La topologia ad anello ormai non è
più un anello fisico ma è diventata una topologia a stella con un metodo di accesso circolare
(cioè una topologia fisica a stella e una topologia logica ad anello).



                                               11
                                                                             bus
               Topologia a bus

                                                         hub


              Topologia a stella




             Topologia ad anello




Topologie più complesse si ottengono dalla combinazione di questi tipi principali. Per
esempio si può avere un anello che collega varie reti a stella, stelle gerarchiche (più stelle
possono essere collegate ad uno stesso dispositivo centrale) o anelli gerarchici (più anelli
possono essere collegati ad una dorsale ad anello).

                                                             hub




     Topologia a stella
        gerarchica




Si possono scegliere topologie e tecnologie diverse, più o meno complicate e costose, in
base alle funzioni desiderate; per esempio si può considerare se si devono soltanto collegare
stazioni utente alla rete (connettività fra le stazioni), se si devono collegare dei server che
mettono a disposizione risorse molto usate (connettività di server), se si devono collegare
con una dorsale varie aree della rete (connettività di dorsale) o se si deve collegare la rete


                                              12
locale a una rete geografica (connettività geografica); spesso la connettività geografica è
fornita da un unico collegamento della dorsale a un router.

Standard IEEE 802
Lo standard per le reti locali si chiama IEEE 802 (il numero 802 deriva dal fatto che il
progetto ha avuto inizio nel 1980 quando fu fondato il Locai and Metropolitan Area
Network Standard Committee), È anche uno standard ISO indicato con il nome ISO 8802.
Lo standard 802 descrive il livello fisico e il livello di data link. Il livello fisico descrive i
mezzi di trasmissione usati e la topologia della rete (cablaggio). Il livello di data link è
diviso in due livelli: il MAC (Medium Access Contrai) e l'LLC (Logicai Link Contrai); il
MAC si occupa del metodo di accesso al canale condiviso e ha funzioni di framing e
controllo degli errori, mentre l'LLC si occupa del controllo di flusso. Di solito il livello
MAC è implementato nell'hardware della scheda di rete mentre il livello LLC è realizzato in
software.
Ogni tipo di rete locale è descritta da un proprio strato fisico e da un proprio MAC; l'accesso
ai mezzi di trasmissione, i mezzi di trasmissione e la topologia dipendono fortemente gli uni
dagli altri, comunque il fatto che la descrizione dei mezzi di trasmissione e dei protocolli di
accesso al mezzo sia separata permette di realizzare la stessa LAN (cioè di usare lo stesso
metodo di accesso al mezzo) su cablaggi diversi.
Il livello LLC è comune a tutti i tipi di reti locali e permette l'interoperabilità di reti 802
nonostante differenze di mezzi di trasmissione, di topologie e di metodologie di accesso al
mezzo.
Sia il livello MAC sia il livello LLC utilizzano indirizzi per individuare le entità che stanno
comunicando a quel livello.
L'indirizzo a livello MAC (chiamato proprio indirizzo MAC) individua il computer o
meglio la scheda di rete del computer; serve a individuare le stazioni che vogliono
comunicare nella rete locale.
L'indirizzo a livello LLC invece individua il protocollo di livello di rete usato per la
comunicazione (sulla rete possono essere disponibili diversi protocolli di livello superiore).
Lo standard 802 è suddiviso in parti più specifiche:
     • 802.1 definisce le caratteristiche generali degli standard per le reti locali e
       metropolitane e per l'interoperabilità tra reti diverse;
     • 802.2 definisce il sottolivello LLC del livello di data link, comune a tutte le reti locali e
       metropolitane 802;
dall'802.3 in poi ogni parte definisce un tipo particolare di rete, per esempio:
     • 802.3 reti locali CSMA/CD,
     • 802.5 reti locali Token Ring,
     • 802.6 reti metropolitane (DQDB),
     • 802.11 reti locali Wireless.

Osservazioni sui livello fisico e MAC per gli standard da 802.3 in poi
Livello fisico
II livello fisico definisce il cablaggio cioè i mezzi di trasmissione usati e la topologia della
rete; per ogni tipo di rete possono essere definiti diversi tipi di cablaggio, chiamati MDI
(Medium Dependent Interface).
Per ogni tipo di cablaggio il livello fisico descrive le distanze massime che possono essere
raggiunte per una certa ampiezza di banda per ogni tipo di mezzo (l'ampiezza di banda

                                                13
dipende dalle caratteristiche del mezzo ma anche dalla distanza percorsa, per esempio per i
cavi in rame la larghezza di banda dipende dallo spessore del cavo e dalla distanza
percorsa); definisce inoltre tutti i dettagli relativi alla trasmissione: connettori necessari (e
significato dei pin), interfaccia fisica alla rete (tranceiver) che permette di trasmettere e
ricevere i bit, metodo di codifica del segnale, sincronizzazione, livelli di tensione per la
trasmissione dei segnali elettrici o livelli di lunghezza d'onda per la trasmissione su fibre
ottiche e così via.

Livello MAC
II livello MAC si occupa della suddivisione in frame, del controllo degli errori e dei
metodi di accesso al mezzo.
I servizi offerti dal livello MAC sono esclusivamente non connessi non confermati. Se un
frame non può essere consegnato il livello MAC non se ne preoccupa; se un frame arriva
danneggiato viene semplicemente scartato; saranno i livelli superiori ad accorgersene e a
ripetere la trasmissione.
Gli indirizzi a livello MAC individuano i computer della rete, o meglio identificano la
scheda di rete che permette il collegamento della stazione alla rete.

Schede di rete
Per il collegamento alla rete serve una scheda di rete, specifica per una certa LAN, per ogni
computer; la parte posteriore della scheda presenta una o più interfacce, ognuna per uno
specifico tipo di connettore, progettato per uno specifico mezzo di trasmissione. La scheda
di rete di solito implementa il livello fisico e MAC della rete.
Alla scheda di rete è associato l’indirizzo MAC.
La scheda di rete è chiamata anche NIC (Network Interface Card) o MAU (Medium
Attachment Unit).

Indirizzi MAC
Gli indirizzi MAC identificano a livello hardware le stazioni, o più precisamente le schede
di rete.
L'indirizzo è formato da 6 byte che identificano univocamente la scheda di rete a livello
mondiale: 3 byte per il produttore della scheda e 3 come numero identificativo della scheda.
Gli indirizzi per convenzione vengono rappresentati da 6 numeri esadecimali separati dal
simbolo :
I frame contengono l'indirizzo di destinazione e l'indirizzo del mittente. L'indirizzo di
destinazione può essere anche l'indirizzo di broadcast (indica che il frame è diretto a tutte le
stazioni) o un indirizzo multicasting (indica che il frame è diretto a un particolare gruppo di
stazioni).
L'indirizzo di broadcast è composto da tutti 1 (FF:FF:FF:FF:FF:FF); un frame che ha
come destinazione l'indirizzo di broadcast viene consegnato a tutte le stazioni sulla rete.
Gli indirizzi che fanno riferimento a un gruppo di stazioni (multicasting) sono individuati
da un 1 nel bit meno significativo dell'indirizzo di destinazione (bit 0); tutte le stazioni del
gruppo ricevono il frame.
Gli indirizzi di gruppo servono per esempio per sapere quali stazioni offrono un certo
servizio; una stazione che ha bisogno di un servizio chiede quali stazioni sono in grado di
offrirlo trasmettendo un pacchetto all'indirizzo multicast del servizio; le stazioni che offrono
il servizio rispondono alla richiesta.

                                               14
Gìi indirizzi MAC sono scritti in una ROM della scheda di rete dal costruttore della scheda.
Questi indirizzi possono essere sostituiti via software da indirizzi locali memorizzati in un
buffer. Per distinguere tra indirizzi locali e globali viene usato il bit vicino a quello meno
significativo (bit 1).
I byte dell'indirizzo vengono trasmessi nell'ordine di scrittura, da sinistra verso destra con i
bit all'interno di ogni byte dal meno significativo al più significativo (ordine canonico
definito dalla IEEE perché alcune reti come 802.5 e FDDI utilizzavano per gli indirizzi un
ordine di rappresentazione e trasmissione diverso: i bit che distinguono tra indirizzi
individuali e di gruppo e tra indirizzi globali e locali erano il più significativo e quello
immediatamente vicino ed erano i primi ad essere trasmessi sulla rete).

Standard IEEE 802.3
La prima rete locale è stata la rete Ethernet sviluppata al Palo Alto Reasearch Center della
Xerox; era una rete molto semplice realizzata per condividere file fra le stazioni di lavoro. È
stata poi realizzata una nuova versione chiamata Ethernet II o DIX Ethernet sviluppata da
Xerox, Intel e Digital.
Ethernet era una rete a bus su cavo coassiale, con modalità di trasmissione half duplex,
metodo di accesso CSMA/CD e velocità a 10 Mbps.
Lo standard 802.3 deriva dallo standard Ethernet ed è ancora comunemente chiamato
standard Ethernet.
Lo standard 802.3 descrive un'intera famiglia di sistemi che usano il metodo di accesso
CSMA/CD a una velocità che varia da 10 a 100 Mbps (Fast Ethernet) con diversi tipi di
cablaggi. Esistono anche versioni a 1000 Mbps chiamate Gigabit Ethernet. L'IEEE sta
definendo perfino una versione a 10 Gbps, chiamata 10 GE.

Livello MAC
II metodo di accesso è a contesa ed è chiamato CSMA/CD.
Una stazione che deve trasmettere controlla se il canale è libero prima di iniziare la
trasmissione; se il canale è libero trasmette il frame; dopo aver trasmesso un frame la
stazione invia sul canale gli altri bit (inter frame gap o interpacket gap); durante questo
intervallo le altre stazioni non possono trasmettere.
Se il canale è occupato la stazione entra in una fase nota come back-off e aspetta un tempo
casuale prima di riprovare.
Anche se il canale è libero non è detto che la trasmissione riesca; un'altra stazione può aver
trovato la linea libera e inviato un frame, ma il segnale non è stato individuato perché la
trasmissione non è istantanea; in tal caso si può verificare una collisione, perciò dopo aver
trasmesso un frame la stazione continua ad ascoltare il canale per rilevare eventuali
collisioni (collision detection). La determinazione di una collisione è un processo analogico;
è l'hardware della stazione che ascolta il cavo mentre sta trasmettendo e si accorge di una
collisione se quello che rileva è diverso da ciò che ha spedito; la codifica del segnale deve
permettere la rilevazione delle collisioni.
Quando una stazione si accorge di una collisione invia un segnale sulla linea (jamming) per
segnalare in modo più evidente ad altre stazioni in ascolto che si è verificata una collisione.
Come quando trova il canale occupato, anche in caso di collisione la stazione entra nella
fase di back-off e aspetta un tempo casuale prima di riprovare.



                                              15
L'algoritmo di calcolo del tempo casuale dopo una collisione è noto come algoritmo di
regressione binaria esponenziale o algoritmo di back-off (BEB - Binary Exponential Back-
Off ).
Ricapitolando, i compiti del livello MAC sono:
    • gestire la suddivisione in frame utilizzando la violazione di codifica nel byte di inizio
      frame;
    • calcolare il codice di controllo CRC all'invio e controllare la correttezza in ricezione
      (in caso di errore il frame viene semplicemente scartato);
    • trasmettere e ricevere i frame (generando il preambolo e poi rimuovendolo) e
      assicurare interframe gap dopo ogni frame;
    • rilevare le collisioni attraverso i meccanismi del livello fisico e trasmettere il segnale di
      jam dopo la rilevazione della collisione;
    • calcolare il tempo di attesa con l'algoritmo di back-off quando il canale è occupato.
Le limitazioni imposte sulla lunghezza dei cavi e sul numero dei ripetitori nelle MDI
dipendono dal funzionamento della rete.
Le dimensioni della rete devono essere limitate in modo che il tempo che può intercorrere
da quando la stazione ha trasmesso il primo bit di un frame a quando rileva la collisione sia
inferiore alla lunghezza del frame più corto che è di 512 bit (51,2 microsecondi).
Il numero dei ripetitori che si possono usare invece è limitato dal fatto che i ripetitori
possono ridurre l'inter frame gap tra due frame rendendo i frame indistinguibili. Il ripetitore
usa una parte variabile del preambolo per sincronizzarsi con il trasmettitore e deve poi
rigenerare i bit che ha perso introducendo un ritardo di trasmissione che varia da frame a
frame; se tra due frame consecutivi il primo subisce un ritardo maggiore l'interframe gap si
riduce.

Reti 802.3 a 100 Mbps (Fast Ethernet)
Lo standard 802.3 per reti di banda base a 100 Mbps è noto con il nome di Fast Ethernet.
Servono schede di rete a 100 Mbps; ci sono schede a doppia velocità che possono anche
selezionare automaticamente la velocità di trasmissione.
Usa la fibra ottica ma anche il doppino telefonico RJ45 ma con schemi di trasmissione
diversi.




                                                16
Rete telefonica PSTN
La rete telefonica comunemente usata per le comunicazioni vocali si chiama PSTN (Public
Switchied Telephone Network).
È una rete commutata, cioè si basa sull'idea che per ogni comunicazione si debba stabilire
una connessione tra i due interlocutori e che la conversazione per tutta la sua durata segua
sempre lo stesso percorso e abbia un'ampiezza di banda riservata. È nata per trasportare la
voce ma viene utilizzata anche per la trasmissione dei dati.
La rete telefonica ha una topologia gerarchica; la rete è organizzata (a partire dal livello
inferiore) in settori, distretti, compartimenti.
L'apparecchio telefonico è collegato al più vicino ufficio della società telefonica, questo
collegamento è noto come circuito locale (o locai loop).
Ogni ufficio è collegato con la centrale di settore; ogni centrale di settore con una centrale di
distretto; ogni centrale di distretto con una centrale di compartimento; le centrali di distretto
e di compartimento sono tutte collegate una all'altra.
Si ha quindi una topologia a stella ai livelli inferiori e una topologia a reticolo completo ai
livelli superiori.
Se la chiamata è tra due abbonati dello stesso settore il collegamento viene stabilito
attraverso la centrale di settore, altrimenti deve essere risalita la gerarchia.
I mezzi di trasmissione usati per i collegamenti dipendono dal traffico che devono
supportare; i circuiti locali sono realizzati con doppini, le dorsali che collegano le centrali
ai livelli più alti della gerarchia di solito utilizzano le fibre ottiche.
La trasmissione, che in origine era solo analogica, è oggi per la maggior parte digitale; è
rimasta analogica solo nei circuiti locali. Sulle dorsali viene usata la trasmissione digitale
perché ha molti vantaggi; oltre a permettere di trasportare informazioni di qualsiasi tipo
(voce, dati, immagini ecc.), permette velocità di trasmissione dati molto più alte, è più
economica (basta poter distinguere tra due valori O o 1 ) e permette di rigenerare il segnale
più facilmente, senza perdita di informazione.
Normalmente il circuito locale usa ancora una trasmissione analogica; al termine del
circuito locale avviene la conversione del segnale da analogico a digitale (con la tecnica
PCM, mediante i codec) durante la trasmissione e da digitale ad analogico per la ricezione.
Se si usa la linea per collegare il computer e trasmettere dati, i dati (digitali) devono essere
convertiti in analogico per essere trasmessi sul circuito locale (dal modem), e poi convertiti
di nuovo in digitale per viaggiare sulle dorsali (e viceversa in ricezione).




                                               17
Commutazione
La commutazione è la ricerca di un percorso sulla rete per fare in modo che le
informazioni inviate dal mittente arrivino al destinatario.
La commutazione può essere di circuito o di pacchetto.
Nella commutazione di circuito prima di poter cominciare una comunicazione bisogna
stabilire un percorso fisico tra gli interlocutori attraverso le centrali di commutazione;
possono essere! problemi per stabilire la comunicazione (segnale di occupato) ma, una volta
stabilita, le informazioni viaggiano senza altri problemi, in ordine e seguendo sempre lo
stesso percorso (il percorso però può essere diverso da una chiamata all'altra). Il sistema
telefonico attuale usa la commutazione di circuito.
Nella commutazione di pacchetto il messaggio da trasmettere viene suddiviso in pacchetti;
ogni pacchetto deve contenere l'indirizzo del destinatario e del mittente; la ricerca del
percorso da seguire deve essere fatta per ogni pacchetto; ogni pacchetto può seguire un
percorso diverso dagli altri pacchetti e arrivare in ordine diverso da quello di invio (o anche
non arrivare); a destinazione i pacchetti vengono riordinati e il messaggio ricomposto.
La commutazione di circuito tiene occupata la banda durante tutta la comunicazione (anche
nei tempi morti), mentre la commutazione di pacchetto la usa solo quando serve; per questo
nella commutazione di circuito le tariffe sono basate sulla distanza degli interlocutori e sul
tempo di collegamento e non sul traffico effettivo, mentre nella commutazione di pacchetto
si paga in base al traffico (numero di byte o pacchetti trasportati).
Per stabilire il percorso, la connessione viene stabilita nella centrale di commutazione al
livello più basso possibile, risalendo la gerarchia solo se necessario.
Ogni centrale ha molte linee in entrata e molte in uscita; bisogna stabilire una connessione
tra una delle linee in uscita; a questo provvedono i commutatori.

Introduzione alle reti geografiche
Le reti geografiche (WAN - Wide Area Network) permettono di collegare computer o reti
"posti a distanze qualsiasi.
Poiché computer e reti possono essere dislocati in posizioni qualsiasi, di solito le reti
geografiche non hanno una topologia ben definita: si parla di topologia a maglia; si dice
che,una rete a maglia è a reticolo completo quando esiste un collegamento diretto tra
qualsiasi coppia di stazioni, a reticolo parziale quando alcuni di questi collegamenti non
sono presenti; si possono comunque avere anche reti geografiche con topologie a stella o ad
anello, topologie gerarchiche o combinazioni di topologie.
Per collegare una rete locale a una rete geografica è necessario un router che colleghi la rete
locale alla linea usata per il collegamento a distanza.
Il più semplice tipo di collegamento è quello realizzabile tramite le comuni linee telefoniche
analogiche (PSTN) che però permettono basse velocità di trasmissione dati e hanno elevati
costi di tariffazione (in base ai tempi di utilizzo).
Alternative più valide sono i servizi ISDN e ADSL che usano le stesse linee telefoniche ma
in modo digitale.
Si può usare anche la rete GSM collegando un portatile con un modem speciale ad un
telefono cellulare GSM (la velocità di trasmissione è bassa e le tariffe alte – circa 20 euro al
mese la flat - ma si ha la massima libertà di movimento).

II provider
Per collegarsi a Internet serve un abbonamento a un provider.

                                              18
Molti provider offrono abbonamenti gratuiti; abbonamenti a pagamento offrono di solito
servizi migliori.
Le differenze tra gli abbonamenti possono consistere nel tipo di indirizzo IP ottenibile
(statico o dinamico), nell'ampiezza di banda del collegamento (cioè la velocità di
trasmissione), nel numero di account di posta elettronica disponibili e nello spazio concesso
per memorizzare i messaggi, nello spazio disponibile per pubblicare pagine Web e così via.

La linea telefonica
Per il collegamento si può usare la rete telefonica, con diverse modalità:
     • linea telefonica tradizionale analogica,
     • linea ISDN,
     • collegamento ADSL.
La linea telefonica analogica trasmette i dati allo stesso modo in cui viene trasmessa la
voce: un'onda portante viene modulata, cioè modificata in modo da trasportare valori binari.
Il dispositivo che trasforma i dati dal formato digitale usato all'interno del computer al
formato analogico usato sulla linea e viceversa si chiama modem.
I modem attuali usano lo standard V.92 a 56K; la sigla 56K indica la velocità di
trasmissione in bit per secondo (bps); in realtà i modem a 56 kbps permettono di ricevere a
56 kbps ma di trasmettere solo a 48 kbps.
Per collegarsi a Internet si fa una telefonata che permette di collegarsi al server (il computer)
del provider; attraverso il server del provider si può accedere a qualsiasi computer della rete,
situato in qualsiasi punto del mondo.
Quando si è collegati la linea telefonica è occupata e non si possono fare o ricevere
telefonate; si paga per la durata del collegamento come per una normale telefonata;
conviene quindi scegliere un provider della propria città, o comunque del proprio distretto
telefonico in modo che venga applicata la tariffa di una telefonata urbana.
La linea ISDN è una normale linea telefonica a cui è applicato un dispositivo che permette
di usare due linee digitali a 64 kbps, ciascuna con un proprio numero telefonico; per
collegarsi alla linea serve un modem ISDN. Per il collegamento a Internet si può usare una
sola linea a 64 kbps o entrambe le linee come un'unica linea a 128 kbps (dipende anche dal
collegamento offerto dal provider); per usare la trasmissione a 128 kbps bisogna configurare
un collegamento multiplo. Durante il collegamento si possono fare e ricevere telefonate
(anche nel caso si usino entrambe le linee perché i dispositivi liberano automaticamente una
linea senza interrompere il servizio sull'altra).
Si paga per la durata del collegamento come nel caso della linea analogica ma bisogna
considerare che se si usano tutte due le linee si paga per ogni linea.
Anche il collegamento ADSL usa la normale linea telefonica con un dispositivo (filtro
distributore) e un modem ADSL. La linea viene usata in modo digitale e permette una
velocità di trasmissione molto maggiore, fino a 640 kbps in uscita 2 e 8 Mbps in entrata; per
un utente domestico il collegamento più comune è a 128 kbps in uscita e a 1,2 Mbps in
entrata.
Il collegamento a internet è permanente, cioè non si deve fare una telefonata per collegarsi
al provider, ma si è costantemente collegati; durante il collegamento si possono fare e
ricevere telefonate; per il collegamento a Internet in genere si paga un canone mensile fisso
(ma ci sono anche tariffe a tempo di utilizzo).
Un'altra possibilità di collegamento a Internet è rappresentata dal collegamento satellìtare;
serve una scheda apposita da inserire nel computer e un'antenna parabolica per ricevere i

                                               19
segnali (come per la televisione satellitare); la velocità è buona, però la connessione
permette solo la ricezione; per trasmettere bisogna usare la linea telefonica.
È possibile collegare a Internet un'intera rete locale; si può usare la linea telefonica con una
delle modalità descritte e un router che permette di indirizzare la trasmissione al computer
interessato. I provider che forniscono i servizi agli utenti sono a loro volta collegati a
provider di livello superiore (NSP - Network Service Provider) con collegamenti più veloci,
per esempio con linee dedicate; gli NSP gestiscono le linee che provvedono a trasportare i
dati di tutti gli altri fornitori. Sono NSP in Italia per esempio Interbusiness di Telecom
Italia, InfostradaeAlbacom. Le aziende che richiedono una grande ampiezza di banda per il
collegamento a Internet possono connettersi direttamente a un NSP.
Per i collegamenti internazionali gli NSP in Italia si avvalgono di fornitori stranieri (come
Unisource, Sprint ecc.).

Configurare il computer
Per configurare il computer per il collegamento a Internet oltre a configurare l'hardware
necessario (per esempio il modem) bisogna installare il protocollo TCP/IP.
Nel caso di collegamento mediante linea telefonica analogica o ISDN serve un programma
chiamato dialer (il collegamento è detto dial-up) che attivi il collegamento con il provider
mediante una chiamata telefonica.
Windows fornisce un software dialer (noto come Accesso remoto) che deve essere
configurato inserendo alcune informazioni fornite dal provìder stesso, tra cui il numero
telefonico da usare per il collegamento al computer del provider, il nome utente che è stato
assegnato, l'indirizzo IP se è stato assegnato in modo statico e l'indirizzo IP del server DNS
da utilizzare per la traduzione dei nomi.
Poi per collegarsi al provider e quindi a Internet basta mandare in esecuzione il programma;
in Windows basta utilizzare l'icona della connessione creata. Ad ogni collegamento bisogna
fornire il proprio account e la propria password. Dopo aver stabilito il collegamento si può
usare il programma relativo al servizio desiderato, come il browser o il client di posta
elettronica. Se si avvia il browser o il client di posta prima di aver stabilito il collegamento,
questi programmi possono richiedere se si desidera avviare la connessione.
Al primo collegamento è possibile che non si abbia un account valido; i provider gratuiti di
solito rendono noti account e password da usare per il primo collegamento; in questo modo
si accede a una pagina di registrazione in cui si devono inserire i propri dati per ottenere un
account e una password personale da usare per i collegamenti successivi.

RAS - Remote Access Service
II servizio di Accesso remoto permette di collegarsi a distanza attraverso modem e linea
telefonica (ma anche ISDN o linee T1) a un altro computer (collegamento dial-up);
naturalmente i due computer devono essere collegati a linee telefoniche diverse.
Il computer chiamante fa in modo che il modem si metta in collegamento telefonico con un
computer remoto e quando viene stabilita la connessione si possono scambiare
informazioni.
Dopo aver effettuato il collegamento si può lavorare come se si fosse collegati direttamente
in rete. Se il computer a cui ci si collega fa parte di una rete locale è come se si fosse
collegati all'intera rete locale.
Si possono vedere le cartelle condivise sul computer a cui ci si è collegati e sugli altri
computer della rete. Le proprie risorse però non sono accessibili dagli altri computer.

                                               20
L'uso più frequente del servizio di Accesso remoto è il collegamento a Internet (si usa
Accesso Remoto per collegarsi al computer del provider e avere accesso alla rete Internet).
Si può usare Accesso remoto per collegarsi a un computer qualsiasi se si configura quel
computer per accettare connessioni di Accesso remoto (server di Accesso remoto). Il server
può accettare la connessione di più computer; il server RAS di Windows 2000 Professional
permette una sola connessione, quello di Windows 2000 Server fino a 256 connessioni
contemporanee (naturalmente serve un modem per ogni connessione; esistono schede di I/O
multiporta per aumentare il numero di modem che si possono collegare al sistema).
In genere il servizio RAS usa il protocollo PPP per la connessione e il TCP/IP per la
comunicazione. Gli indirizzi IP possono essere assegnati agli utenti RAS in modo statico, o
in modo dinamico tramite un server DHCR
L'accesso remoto comporta problemi di sicurezza. Bisogna impostare login e password per
il collegamento e controllare il permesso di accesso alle risorse.
Sui computer client la configurazione del servizio è identica alla configurazione per il
collegamento a Internet; basta specificare il numero telefonico del computer che si desidera
chiamare. Quando si accede alla connessione viene richiesto di identificarsi; poi si può
accedere alle risorse del server RAS e dei computer della rete di cui il server RAS fa parte,
tramite Risorse direte.
Alla fine basta chiudere la connessione (clic destro sulla Connessione, scegliendo
Disconnetti). Per semplificare la riconnessione si può creare un collegamento a una cartella
o a un file remoto mentre si è connessi; quando si cerca di accedervi si avvia la connessione.
Il server deve essere opportunamente configurato. Bisogna inoltre condividere le cartelle
desiderate ed impostare le password di accesso e le autorizzazioni.

Trasmissione dati su linea telefonica analogica
La trasmissione all'interno del computer avviene in modo digitale e parallelo
(comunicazione che permette di trasmettere l'intero byte allo stesso tempo). La trasmissione
lungo la linea telefonica è seriale e analogica.
Per usare una linea telefonica analogica per la trasmissione dati bisogna installare un
modem per trasformare il segnale da digitale in analogico e viceversa (il modem deve essere
collegato al computer e alla linea telefonica).
I due computer che comunicano attraverso la linea telefonica devono usare dei protocolli di
comunicazione comuni.
Normalmente il protocollo di livello fisico usato per la comunicazione tra computer e
modem è lo standard RS-232 e il protocollo a livello di data link per la gestione della
connessione sulla linea è PPP.
II computer che avvia la comunicazione usa un programma per le chiamate telefoniche
(come Accesso remoto di Windows) che permette di stabilire la connessione (il programma
invia al modem comandi, chiamati comandi AT, per attivarsi, comporre il numero
telefonico ecc.).
Dopo aver stabilito la connessione si può usare il programma di comunicazione opportuno
in base al tipo di comunicazione desiderato.
II modem può essere un dispositivo interno costituito da una scheda che si inserisce in uno
slot o un dispositivo esterno collegato a una porta seriale o una porta USB.




                                             21
ADSL
ADSL (Asymmetrical Digital Subscriber Line) è una tecnologia che permette di usare la
linea telefonica simultaneamente per voce e dati a velocità superiore delle linee analogiche e
ISDN.
Come indica il nome, la tecnologia è asimmetrica cioè permette una velocità diversa in
trasmissione (upload) e in ricezione (download); la velocità di ricezione è molto maggiore;
questo comportamento è adatto per la navigazione nel Web in cui le richieste dell'utente
sono minime ma la banda richiesta per scaricare pagine multimediali può essere molto alta.
Attualmente è la tecnologia più valida per il collegamento a Internet; il collegamento è
permanente, cioè il computer è collegato a Internet in ogni momento, e
contemporaneamente si possono fare normali comunicazioni telefoniche; la tariffazione in
genere si basa su un canone fisso mensile (oltre ai costi di installazione).
Per il collegamento serve un filtro distribuito da applicare sulle prese telefoniche e un
modem ADSL.
Ci sono alte tecnologie simili, che nell'insieme vengono chiamate xDSL, per esempio
HDSL (High bit-rate Digital Subcriber Line) che è di tipo simmetrico e ha velocità tra 1,544
Mbps e 2,048 Mbps.
I modem ADSL esterni possono avere una connessione USB o una connessione Ethernet (si
collegano alla scheda di rete); ci sono anche apparecchi dotati di funzioni di routing per
condividere l'accesso tra più computer.
II collegamento al provider è di tipo permanente, però il transito dei dati deve essere
abilitato dal processo di autenticazione.




                                             22
                                          TCP/IP
I protocolli a livello di data link SLIP e PPP
I protocolli SLIP e PPP vengono usati nella comunicazione punto a punto tra due router o
più spesso nella connessione tra un utente e un provider.
SLIP (Serial Line Internet Protocol) è un protocollo sviluppato agli inizi degli anni 80 per
consentire ai pacchetti TCP/1 P di essere trasferiti su linee telefoniche. Prende un pacchetto
IP, lo inserisce in un frame e lo invia sulla linea. È un protocollo orientato al byte, semplice
da implementare ma che presenta molte limitazioni: supporta solo il trasferimento di
pacchetti IP (non di altri protocolli dello strato superiore) e bisogna conoscere in anticipo
l'indirizzo IP (non supporta l'assegnazione dinamica degli indirizzi IP); inoltre non fornisce
alcuna gestione degli errori e non supporta l'autenticazione. Non è mai divento uno standard
Internet.
PPP (Point-to-Point Protocol) è lo standard Internet attualmente utilizzato per i
collegamenti punto a punto.
Permette la possibilità di trasportare più tipi di protocolli su un'unica connessione (non solo
pacchetti IP), la negoziazione delle opzioni di connessione, l'assegnazione dinamica degli
indirizzi IP, la gestione degli errori e l'autenticazione.
II campo dati del frame PPP può portare informazioni relative a vari protocolli di livello
superiore.
Insieme al protocollo PPP vengono usati i protocolli LCP e NCP; anche questi protocolli
vengono portati nel campo dati del PPP.
LCP (Link Contro! Protocol) è un protocollo che permette di stabilire il collegamento,
negoziare opzioni per configurare il collegamento e alla fine rilasciarlo.
NCP (Network Contrai Protocol) è un protocollo usato per negoziare opzioni del livello di
rete; viene usato un diverso NCP per ogni protocollo di rete supportato; il nome dell'NCP
relativo al protocollo IP è IPCP (IP Contrai Protocol); IPCP permette di configurare il
protocollo IP assegnando un indirizzo IP dinamico.
Per stabilire una connessione con un provider Internet il computer dell'utente chiama il
router del provider tramite il modem; dopo aver stabilito la connessione fisica il computer
dell'utente manda pacchetti LCP nel campo dati di uno o più frame PPP per negoziare le
opzioni; poi invia pacchetti NCP, sempre nel campo dati di frame PPP, per configurare il
livello di rete; in questo caso di solito per usare TCP/IP e ottenere un indirizzo IP dinamico.
Alla fine viene usato NCP per rilasciare la connessione a livello di rete e liberare l'indirizzo
IP e LCP per rilasciare la connessione a livello di data link, prima di ordinare al modem di
liberare la linea telefonica rilasciando la connessione a livello fisico.
PPP è orientato al byte; di solito si usa un servizio non affidabile; opzionalmente si può
richiedere un servizio affidabile.
Il frame comprende:
     • 1 byte con il flag 01111110;
     • 1 byte con l'indirizzo di destinazione impostato a 11111111 che indica che tutte le
        stazioni devono accettare il frame;
     • 1 byte di controllo impostato a 00000011;
Frame PPP
         Flag   Indirizzo Controllo                                            Flag
                                           Protocollo     Dati      CRC
       01111110 11111111 00000011                                            01111110


                                              23
    • 1 byte (o 2, la dimensione viene negoziata tramite LCP) indica il tipo di protocollo
        che si trova nel campo dati (il protocollo indicato può essere per esempio LCP, NCP,
        IP, IPX ecc.);
    • un campo dati di lunghezza variabile negoziata con LCP; di default la lunghezza è di
        1500 byte;
    • 2 byte (o 4, la dimensione viene negoziata tramite LCP) con una checksum per il
        controllo degli errori. ,
Poiché il campo indirizzo e il campo di controllo sono costanti si può concordare di
ometterli tramite LCP.
Tramite LCP si può negoziare anche un protocollo di autenticazione.
I protocolli ammessi sono PAP (Password Authentication Protocol) o CHAP (Challenge
Handshake Authentication Protocol).
L'autenticazione PAP è una procedura in due passi: il client invia il nome utente e una
password che può essere cifrata; il server confronta la combinazione utente/password con i
dati presenti nel proprio database.
L'autenticazione CHAP è invece in tre passi: il server invia al client una stringa di caratteri
casuali e il nome del server; il client usa il nome del server per cercare una chiave segreta
relativa alla comunicazione con il server, usa la chiave per cifrare la stringa e la manda al
server col nome del client; il server a sua volta cifra la stringa originale con la stessa chiave
e deve ottenere lo stesso risultato.

Protocolli del livello di rete del modello TCP/IP
II livello di rete nel modello TCP/IP viene chiamato anche strato Internet.
Il protocollo più noto del livello di rete è il protocollo IP (Internet Protocol); è un protocollo
instradabile che si occupa dell'indirizzamento, della suddivisione in pacchetti e del
trasferimento a destinazione dei dati che arrivano dal livello di trasporto.
Nel livello di rete ci sono però anche molti altri protocolli: oltre a quelli di routing,
protocolli di controllo come ICMP, IGMP, ARP, RARP e BOOTP.

Indirizzi
Indirizzi IP
Gli indirizzi IP sono numeri che identificano in modo univoco ciascuna stazione sulla rete
(può essere un computer, un router o anche un hub).
Gli indirizzi sono assegnati dal NIC (Network Information Center); l'autorità per
l'assegnazione dei numeri si chiama IANA (Internet Assigned NumberAuthority); in genere
comunque si può ottenere l'indirizzo IP da un provider.
Gli indirizzi sono numeri di 32 bit scritti convenzionalmente nella Rotazione decimale
puntata: quattro numeri decimali, ognuno compreso tra 0 e 255, separati da punti; in pratica
l'indirizzo è suddiviso in quattro gruppi di 8 bit e ogni numero decimale è la
rappresentazione decimale di un gruppo.
Gli indirizzi sono divisi in classi; ci sono cinque classi di indirizzi: A, B, C, D ed E; solo gli
indirizzi delle prime tre classi (A, B e C) possono essere assegnati alle stazioni di una rete, e
sono formati da una parte che identifica la rete e da una parte che identifica la stazione
all'interno della rete; gli indirizzi delle altre classi servono per il multicasting (classe D) e
per usi sperimentali (classe E).



                                               24
Gli indirizzi IP devono essere unici a livello mondiale; però quando si usano indirizzi IP in
una rete locale non collegata a Internet basta che gli indirizzi siano unici all'interno della
rete; reti diverse possono usare gli stessi gruppi di indirizzi.
Se gli indirizzi vengono scelti in modo arbitrario, un successivo collegamento a Internet può
causare dei problemi (per esempio non si possono raggiungere gli indirizzi esterni che
risultano duplicati).
Sono stati riservati tre gruppi di indirizzi che non vengono usati su Internet e che si
possono usare arbitrariamente in una rete locale, senza problemi.
Questi indirizzi possono essere usati anche per le reti collegate a Internet attraverso un
proxy server o un firewall; questi dispositivi nascondono gli indirizzi locali, rendendo
invisibili destinazioni, interne o esterne, con tali indirizzi.

Assegnazione automatica degli indirizzi IP
Ogni stazione della rete deve essere configurata con l'indirizzo IP, la maschera di sottorete,
il gateway di default e così via.
Invece di assegnare staticamente l'indirizzo ad ogni stazione in modo manuale si possono
usare metodi di configurazione automatica.

     DHCP
     DHCP (Dynamic Host Configuration Protocol) è un sistema di tipo client/server per la
     configurazione automatica e dinamica delle stazioni.
     Il server viene configurato con gli intervalli di indirizzi IP (scope) che può assegnare.
     Quando una stazione viene avviata, invia una richiesta al server DHCP per ottenere un
     indirizzo IP. Se il server DHCP non è disponibile la stazione non può collegarsi alla
     rete.
     Quando il server riceve una richiesta da una stazione assegna alla stazione un indirizzo
     IP disponibile da uno degli intervalli definiti e stabilisce per quanto tempo la stazione
     lo può utilizzare. Periodicamente il client contatterà il server per rinnovare
     l'assegnazione (oppure può rilasciare l'indirizzo anche prima dello scadere del tempo).
     Il server DHCP oltre all'indirizzo IP può fornire al client altre informazioni di
     configurazione come la maschera di sottorete, il gateway predefinito o il server DNS.

     APIPA
     Windows 2000 oltre a DHCP offre un servizio di assegnazione dinamica degli indirizzi
     chiamato APIPA (Automatic Private IP Addressing) che configura automaticamente il
     computer con un indirizzo IP privato (in un intervallo riservato da IANA).

     UPnP
     UPnP (Universa! Plug and Play), ideato dall'UPnP Forum, è un'architettura per
     collegare automaticamente stazioni o periferiche (anche mobili) a una rete.
     Permette il collegamento automatico dei dispositivi e l'autoconfigurazione senza
     bisogno di driver; inoltre ogni dispositivo è autonomo; non serve un computer perché
     una periferica possa offrire i propri servizi; per esempio uno scanner potrebbe
     richiedere una stampa direttamente alla stampante.
     Si basa su un modello client/server in cui ci sono dispositivi che offrono servizi e punti
     di controllo che usano i servizi.
     Si basa sul protocollo HTTP e su XML.

                                              25
Quando il dispositivo si accende deve registrarsi: usa uno dei metodi di configurazione
automatica per ottenere un indirizzo IP, poi invia messaggi multicast con la propria identità
e i servizi offerti (tramite un'estensione del protocollo HTTP che usa il metodo NOTIFY);
poi rimane in attesa di richieste dai punti di controllo.
Le richieste vengono fatte mediante i metodi GETe POSTdel protocollo HTTP; il
dispositivo risponde con documenti XML che contengono i dettagli sul dispositivo o il
servizio richiesto o i risultati dell'esecuzione.

Protocollo IP
II protocollo IP è un protocollo instradabile che si occupa di portare a destinazione le
informazioni che arrivano dal livello di trasporto inserendole in pacchetti (o datagram).
È un protocollo non connesso e non affidabile. Ogni pacchetto diretto verso una certa
direzione può seguire un percorso diverso dagli altri, arrivare in ordine diverso da quello di
invio o anche non arrivare affatto. La consegna non è garantita ma il protocollo IP non se ne
preoccupa; l'affidabilità viene garantita dal protocollo TCP a livello di trasporto.
Se il destinatario si trova sullo stesso segmento di rete il pacchetto viene inviato
direttamente (tramite ARP), altrimenti bisogna esaminare la tabella di routing del mittente
per trovare il router a cui inviare il pacchetto; se la rete di destinazione non è presente nella
tabella il pacchetto viene inviato al router predefinito.
Il protocollo IP supporta la frammentazione dei pacchetti; i pacchetti possono attraversare
reti che usano qualsiasi tecnologia e che permettono qualsiasi dimensione massima di fra-
me perché i pacchetti possono essere suddivisi in pezzi più piccoli. Ogni frammento del
pacchetto ha un identificatore del pacchetto a cui appartiene e un numero di sequenza del
frammento; un bit indica se ci sono altri frammenti o se si tratta dell'ultimo del pacchetto; un
bit viene usato per segnalare ai router di non frammentare il pacchetto; se un pacchetto non
si può frammentare ed è troppo grande per attraversare una rete viene scartato.
Il protocollo IP supporta anche il multicasting attraverso l'utilizzo di indirizzi di classe D e
la gestione di stazioni mobili.

ARP
Per essere realmente spedito a una stazione il pacchetto IP deve essere inserito in un frame
del livello di data link ed essere inviato sul mezzo fisico; il frame deve contenere
l’indirizzo fisico della stazione, di solito l'indirizzo MAC.
Per inviare un frame a una stazione bisogna trasformare l’indirizzo IP del destinatario nel
suo indirizzo MAC.
La risoluzione dell'indirizzo IP in un indirizzo MAC viene effettuata tramite il protocollo
ARP (Address Resolution Protocol).
Una stazione che deve spedire un pacchetto ad un'altra stazione sulla stessa rete locale
manda in broadcast sulla rete un pacchetto contenente l'indirizzo IP della stazione
destinataria (ARP non si appoggia sul protocollo IP ma direttamente sulla rete locale); tutte
le stazioni lo ricevono ma solo la stazione che ha quell'indirizzo IP risponde mandando il
proprio indirizzo MAC.
Esistono varie ottimizzazioni per rendere più efficiente ARP.
Il risultato delle richieste ARP (le combinazioni indirizzo IP, indirizzo MAC) viene
memorizzato nella cache ARP in modo da non dover ripetere la richiesta per l'invio di altri
pacchetti. Per evitare che il destinatario debba a sua volta usare il protocollo ARP per
rispondere al mittente, il mittente può includere nel proprio pacchetto ARP il suo indirizzo

                                               26
IP e il suo indirizzo MAC; il destinatario può inserire questi valori nella cache per la
risposta; in realtà non solo il destinatario ma tutte le stazioni possono farlo.
Un'altra ottimizzazione, che permette anche di controllare se esistono più stazioni con lo
stesso indirizzo IP, consiste nell'invio da parte di ogni stazione, all'inizializzazione, di un
pacchetto di ricerca del proprio indirizzo IP, contenente anche indirizzo IP e MAC del
mittente; tutte le stazioni possono registrare i valori nella propria cache e non dovrebbe
esserci risposta; se c'è vuoi dire che un'altra stazione ha lo stesso indirizzo IP.
Per permettere la gestione di cambiamenti della rete (per esempio per modifiche alla con-
figurazione) ogni voce nella cache ARP è configurata con un tempo di vita (TTL - Time To
Live); allo scadere del tempo la voce viene cancellata dalla cache; il contatore del tempo di
vita viene reinizializzato ogni volta che si utilizza la voce della cache. La cache può
contenere un numero massimo di voci; se è piena si elimina la voce più vecchia.
Se la destinazione si trova su una rete remota si deve mandare il pacchetto a un router
(eventualmente a quello predefinito).
Per mandare il pacchetto al router bisogna conoscerne l'indirizzo MAC; il mittente cerca
l'indirizzo MAC del router nella sua cache e se non è presente invia una richiesta ARP sulla
rete.

Protocolli di trasporto del modello TCP/IP
II livello di trasporto del modello TCP/IP offre due protocolli di trasporto: TCP
(Transmission Contrai Protocol) connesso e affidabile e UDP (User Datagram Protocol)
non connesso e non affidabile.
Se l'applicazione usa UDP non può inviare più di 64 KB di informazioni per volta; UDP
aggiunge ai dati un'intestazione.
Se l'applicazione usa TCP il flusso di dati viene spezzato in unità di dimensione massima
64 KB (ma in pratica di solito di 1500 byte); TCP aggiunge a ogni unità un'intestazione.
Ogni segmento del livello di trasporto (sia UDP che TCP) viene passato al livello di rete
che aggiunge l'intestazione IP e usa il protocollo IP per portarlo a destinazione. Poiché IP è
non affidabile i pacchetti potrebbero andare persi; UDP non se ne preoccupa; TCP invece
aspetta la conferma che i pacchetti siano arrivati e in caso contrario ritrasmette le
informazioni e se i pacchetti arrivano disordinatamente li riordina prima di passarli
all'applicazione (garantisce che una sequenza di byte sia consegnata ordinatamente e senza
errori).
La maggior parte delle applicazioni usa TCP come protocollo di trasporto. Le applicazioni
che usano TCP sono di tipo client server.
UDP è usato quando è più importante la velocità della garanzia di consegna (per esempio in
trasmissioni in tempo reale) o in trasmissioni dirette a molte destinazioni, o in trasmissioni
client server che prevedono una richiesta e una risposta.

Porte e socket
L'indirizzo di destinazione o TSAP nel livello di trasporto del TCP/IP è chiamato porta.
La porta di destinazione indica l'applicazione con cui si vuole comunicare sulla stazione di
destinazione; la stazione di destinazione è individuata dall'indirizzo IP. In pratica il punto di
accesso della comunicazione (chiamato socket) è individuato dall'indirizzo IP della stazione
e dal numero di porta dell'applicazione.
Per ottenere un servizio TCP si deve creare una connessione fra un socket del mittente e
uno del ricevente; la connessione è identificata dalla coppia di socket.

                                               27
Le porte sono numeri a 16 bit (valori da O a 65535).
I numeri di porta fino a 1023 sono riservati per servizi standard; sono noti come Well
Known Ports e sono assegnati dalla IANA (Internet Assigned Numbers Authority). Diverse
porte sono disponibili sia per TCP sia per UDP; si cerca di usare sempre lo stesso numero di
porta.
Le applicazioni possono usare liberamente i numeri superiori a 1024.
Se il numero di porta di destinazione non è disponibile, la stazione destinataria usa il
protocollo ICMP per mandare un messaggio per segnalare che la porta è irraggiungibile.

UDP
UDP (User Datagram Protocol) fornisce un metodo per spedire dati senza dover stabilire
una connessione con il destinatario. Consegna le informazioni più velocemente del TCP.
Inoltre permette comunicazioni multicast e broadacast non disponibili con TCP.

TCP
TCP (Transmission Contrai Protocol) è un protocollo che garantisce la consegna delle
informazioni, in modo ordinato.
Per usare TCP bisogna stabilire una connessione tra mittente e destinatario; tutte le
connessioni sono punto a punto e full duplex.
TCP non supporta il multicasting e il broadcasting.
Per la consegna TCP usa il protocollo I Pene è non connesso e non affidabile; quindi
aggiunge i meccanismi per confermare il ricevimento dei dati (ack), per ritrasmettere i
dati perduti o danneggiati (allo scadere di appositi timer), e per riordinare il flusso di dati;
le applicazioni che usano TCP non devono preoccupasi di questi problemi.
TCP riceve un flusso di dati da una applicazione, lo spezza in unità lunghe al più 64 KB
(ma di solito 1.500 byte) e spedisce queste unità come pacchetti IP; la destinazione
conferma i dati ricevuti fino a un certo byte (modalità a flusso di byte) e ricostruisce il
flusso originale di informazioni.
Applicazioni che usano TCP come protocollo di trasporto sono per esempio il servizio Web,
SMTP, FTP e Telnet.

Segmenti TCP
II TCP vede i dati dell'applicazione come un flusso continuo di byte; ogni byte viene
individuato da un numero di sequenza a 32 bit.
L'entità TCP del mittente spezza il flusso di byte in segmenti; ogni segmento contiene il
numero di sequenza del primo byte contenuto nel campo dati. I segmenti TCP non
preservano la suddivisione in messaggi dell'applicazione; un segmento può contenere dati
ottenuti da parecchie operazioni di scrittura, oppure i dati ottenuti da una singola operazione
di scrittura possono essere suddivisi su più segmenti.
La dimensione dei dati che possono essere trasportati in un segmento è al massimo 65.495
byte (il segmento deve essere contenuto in un pacchetto IP, che ha una dimensione massima
di 65.535 byte e una intestazione di almeno 20 byte, e ha a sua volta una intestazione di 20
byte).
In realtà i segmenti in genere sono molto più piccoli; la dimensione dei segmenti è limitata
dall'MTU (Maximum Transmission Unit) delle reti che deve attraversare. L'MTU è la
dimensione massima di trame che una rete supporta (generalmente poche migliaia di byte) e


                                              28
il pacchetto IP che contiene il segmento TCP deve poter essere contenuto nel frame. La
MTU locale può essere richiesta al livello di data link.

                             Header Header        Header
                                                                     Dati
                            del frame IP           TCP


Il segmento TCP deve essere contenuto in un pacchetto IP, che a sua volta deve essere contenuto in un frame.

Al momento di stabilire la connessione, le due entità TCP negoziano la dimensione dei
segmenti; si scambiano la massima dimensione consentita (MSS - Maximum Segment
Size), che di solito è la MTU del livello di data link meno 40 byte per le intestazioni IP e
TCP, e utilizzano il valore più piccolo tra i due.
Se un pacchetto arriva a una rete in cui l'MTU è più piccolo, il router al confine divide il
pacchetto in due o più frammenti che saranno riassemblati a destinazione; ogni nuovo
pacchetto contiene sia l'intestazione IP che l'intestazione TCP (40 byte extra). Se il
pacchetto non può essere frammentato (bit Non frammentare impostato) il router scarta il
pacchetto e manda un messaggio ICMP al mittente segnalando che la destinazione è
irraggiungibile e segnalando la MTU permessa per il tratto successivo. Al ricevimento di
questo messaggio, il TCP regola la dimensione del segmento (la MTU specificata meno 40
byte).
Un segmento è formato da una intestazione di 20 byte (più alcune parti opzionali) e da zero
o più byte di dati (fino a 65.495 byte). I segmenti con O byte di dati sono usati per gli ack e
i messaggi di controllo.

DNS
In una rete che usa il TCP/IP ogni stazione è identificata da un indirizzo IP; al posto degli
indirizzi si possono usare dei nomi; DNS (Domain Name System) è un sistema di
risoluzione dei nomi usato principalmente per associare nomi di host e destinazioni di
posta elettronica a indirizzi IP.
Prima del DNS, per poter usare i nomi al posto degli indirizzi, su ogni stazione doveva
essere presente il file hosts che conteneva la lista dei nomi e i corrispondenti indirizzi IP; i
nomi dovevano essere univoci in tutta la rete e il file hosts doveva elencarli tutti.

Nomi di dominio
II DNS usa un sistema di denominazione con una struttura gerarchica, suddiviso in
domini (la suddivisione non dipende dalla posizione geografica ma è solo un
raggruppamento organizzativo).
I nomi sono composti da due parti, il nome host e il nome di dominio o FQDN (Fully
Qualified Domain Name); in questo modo i nomi delle stazioni possono essere duplicati,
basta che siano univoci all'interno di un dominio.
Lo spazio dei nomi (domain name space o namespace di dominio) è una struttura ad albero
che rappresenta tutti i domini; in cima all'albero si trova il dominio radice rappresentato da
un punto (.).
I domini di massimo livello (TLD - Top Level Domain) sono di tre tipi: domini
organizzativi (rappresentano il tipo di organizzazione), domini geografici (due caratteri che
rappresentano una nazione definiti nella norma ISO 3166) e il dominio inverso (un dominio
speciale chiamato in-addr.arpa che viene usato per la ricerca inversa, cioè per cercare il
nome, noto l'indirizzo IP).
                                                      29
Ogni dominio può contenere host o sottodomini, che a loro volta possono essere suddivisi
in altri sottodomini.
Il nome completo di un dominio si ottiene attraversando l'albero in modo inverso, dalla
foglia alla radice (separando ciascun nome con un punto). I nomi dei domini sono
insensibili alle maiuscole.
I nomi di massimo livello sono gestiti dall'InterNIC (Internet Network Information
Center), che delega l'amministrazione di ogni dominio ad altre autorità; in Italia
l'organizzazione responsabile dei nomi di dominio è il NIC (GARR - Gruppo
Armonizzazione Reti per la Ricerca di Pisa).
Ogni dominio controlla la creazione dei suoi sottodomini e può assegnarne ad altri
l'amministrazione.
I domini vengono creati in base alle necessità dell'organizzazione, non in base alla struttura
fisica delle reti.




                                             30
                                       INTERNET
I servizi disponibili su Internet sono realizzati come applicazioni client/server che usano
protocolli del livello di applicazione per la comunicazione e il protocollo TCP o il
protocollo UDP per il trasporto dei dati.
I protocolli di applicazione più antichi sono Telnet (gestione di un terminale virtuale), FTP
(trasferimento file) e SMTP (posta elettronica); più recentemente si sono diffusi NNTP
(newsgroup) e HTTP (trasferimento di pagine Web).

II servizio Web
II servizio World Wide Web, noto comunemente come WWW o Web, è un insieme di
pagine contenenti informazioni di natura molto varia, sparse nel mondo; le pagine sono
ipertestuali cioè ogni pagina può contenere dei collegamenti ad altre pagine (collegamenti
ipertestuali o link); facendo clic su un collegamento si può passare direttamente a un'altra
pagina; il collegamento può essere costituito da una stringa di testo ma anche da una
immagine o da una parte di un'immagine (un esempio comune sono i collegamenti
disponibili su mappe geografiche: partendo dall'immagine di una cartina geografica viene
reso disponibile un collegamento per ogni zona); un collegamento può fare riferimento non
solo ad un'altra pagina ma anche a una risorsa di tipo diverso come un'immagine, un filmato
o un file di suono. a
Un insieme di pagine Web costituisce un sito Web; le pagine sono rese disponibili per la
consultazione da computer su cui è installato un programma chiamato server Web. Per
consultare le pagine bisogna utilizzare un programma chiamato browser (la parte client del
servizio Web). I browser più noti sono Internet Explorer e Netscape Navigator. Il browser
richiede una pagina al server tramite il protocollo HTTP (Hyper Text Transfer Protocol,
cioè protocollo di trasmissione dell'ipertesto); il server, ancora tramite il protocollo HTTP,
restituisce al browser la pagina richiesta; le pagine sono costituite da testo che contiene dei
codici (tag HTML); il browser interpreta i codici e in base a questi stabilisce come devono
apparire sullo schermo le varie parti della pagina.
Il servizio Web è nato nel 1989 al CERN, il Centro Europeo per la Ricerca sulla fisica
Nucleare; il primo browser con interfaccia grafica (Mosaic) risale al 1993. Nel 1994 venne
costituito il Consorzio World Wide Web, un'organizzazione dedicata allo sviluppo del
Web e alla standardizzazione dei suoi protocolli (wiviv.iv3.org).
Appena avviato, il browser presenta la home page, cioè una pagina configurata come
pagina iniziale.
Poi si può passare ad altre pagine facendo clic sui collegamenti; i collegamenti appaiono
sottolineati e quando vi si posiziona il mouse il puntatore assume la forma di una mano. Si
può passare ad una nuova pagina anche specificandone l'indirizzo.

URL e URN
L'indirizzo di una pagina Web è chiamato URL (Uniform Resource Locator) e ha la forma
protocollo://nomeserver/path.
L'URL permette di definire qual è la pagina, dove si trova e come vi si può accedere ed è
composto da tre parti:
    • il protocollo usato (per esempio http) che definisce come deve essere fatta la richiesta;
    • il nome del server Web, cioè del computer su cui si trova la pagina desiderata;
    • il path della pagina, cioè il percorso completo della cartella e il nome del documento,
      con l'estensione, sul server.
                                              31
Alcune parti possono essere omesse; per esempio se non si indica il protocollo viene usato il
protocollo http per default; se non si indica il path di una pagina viene visualizzata la pagina
di default del server, se il server è stato configurato in questo modo (la pagina di default di
solito si chiama index.html o deafult.htmt).
Lo schema dell'URL è aperto nel senso che si possono specificare protocolli diversi (come
file, ftp, news, mailto, telnef); per esempio si può usare il protocollo file per aprire una
pagina che si trova sul proprio computer (file://drive:/path).
Gli URL identificano una risorsa puntando a uno specifico server; se la risorsa viene sposta-
ta, usando l'URL non si è più in grado di trovare la risorsa; inoltre una copia identica della
risorsa su un altro server ha un URL diverso.
Per risolvere questi problemi è stato proposto un sistema di identificazione delle risorse più
efficiente, chiamato URN (Uniform Resource Name).
Un URN è un identificatore che può essere associato ad ogni risorsa su Internet con le
seguenti caratteristiche:
    • è unico,
    • è indipendente dalla posizione della risorsa,
    • non può essere assegnato a un'altra risorsa anche se la risorsa che identifica non esiste
      più,
    • ciascuna risorsa può essere presente in più copie su server diversi, per facilitare
      l'accesso (a ogni URN possono corrispondere molti URL).
Il processo di determinazione degli URLdall'URN viene detto risoluzione ed è effettuato da
un servizio di risoluzione del nome (name resolution service).
I nomi vengono assegnati da autorità dette naming authority.

Uso del browser
II browser può essere usato per esaminare pagine che si trovano sul proprio computer o che
sono rese disponibili da un server Web.
Il browser permette di accedere alle pagine con vari metodi:
    • il metodo più comune è seguire un collegamento ipertestuale; i collegamenti di solito
      appaiono in colore diverso e sottolineati; se sono immagini hanno un bordo; il
      puntatore quando si trova su un collegamento assume la forma di una mano; la barra di
      stato mostra l'URL a cui punta il collegamento;
    • si può specificare un URL nella barra degli indirizzi e premere Invio (la barra degli
      indirizzi mostra sempre l'indirizzo della pagina Web corrente, in qualsiasi modo ci si
      sia arrivati);
    • si possono usare dei pulsanti (Avantie Indietro) che permettono di rivedere comoda-
      mente le pagine già visitate durante la sessione; può essere disponibile anche un elenco
      delle pagine visitate in passato;
    • si possono creare dei segnalibri (o bookmark) alle pagine preferite, che si visitano più
      spesso, e inserirli in un menu.
Le pagine già visitate sono memorizzate in una cache e quindi è possibile anche
visualizzarle in modalità non in linea.
Le pagine interessanti possono essere stampate o salvate su disco.




                                              32
Motori di ricerca
Se non si conosce l'indirizzo delle pagine relative all'argomento desiderato si può fare una
ricerca usando una Web directory o un motore di ricerca. Per accedere a un servizio di
ricerca basta accedere alla pagina Web corrispondente.
Entrambi i servizi restituiscono una pagina contenente un elenco di collegamenti alle pagine
di interesse; per esaminare una pagina basta seguire il relativo collegamento.
Le Web directory sono indici sistematici cioè liste di risorse organizzate in modo
gerarchico: vi sono argomenti generali suddivisi in sottoargomenti e così via fino ad
armare, all'ultimo passo, ad un elenco di collegamenti a pagine relative a un certo
argomento, con una breve descrizione; la classificazione delle risorse è fatta da persone che
decidono in quale categoria inserire una certa pagina; una pagina può essere inserita anche
in più di una categoria.
I motori di ricerca permettono di indicare in un modulo una o più parole chiave
(eventualmente usando operatori booleani), in combinazione con altri criteri di ricerca (per
esempio cercando le parole chiave solo nei titoli o nei collegamenti ipertestuali,
restringendo la ricerca a pagine create in un certo periodo o che appartengono a un certo sito
ecc.) e di ottenere un elenco di collegamenti a pagine più o meno attinenti.
I motori di ricerca eseguono la ricerca in un database che associa ad ogni parola chiave un
elenco di indirizzi di pagine costruito in modo automatico da programmi (chiamati con
nomi come spider, crawler, worm) che visitano appositamente il Web. Poiché
l'associazione delle pagine alle parole chiave è fatta automaticamente, i motori di ricerca
possono restituire collegamenti a pagine non rilevanti. Per ottenere buoni risultati bisogna
scegliere bene i termini e le caratteristiche della ricerca, anche se i motori di ricerca
lavorano in modo intelligente pesando i risultati per esempio in base al numero di
Decorrenze dei termini o alla presenza dei termini in punti significativi come titoli o link.
I programmi spider usano algoritmi per visitare i nodi di un grafo (il Web è un grafo con
nodi le pagine e archi i collegamenti ipertestuali); la difficoltà è costituita dal fatto che il
grafo cambia continuamente e che è enorme.
In pratica le Web directory si possono paragonare al sommario di un libro, i motori di
ricerca all'indice.
Conviene usare una Web directory per cercare informazioni generali o avere una
panoramica sulle informazioni relative a un certo argomento e un motore di ricerca per
trovare informazioni specifiche.
Web directory e motori di ricerca possono restituire solo i collegamenti a pagine che
conoscono; non esiste un elenco completo di tutte le pagine Web; è possibile quindi che
pagine che sarebbero attinenti non vengano segnalate e che usando strumenti diversi si
ottengano risultati diversi.

II protocollo HTTP
Per consultare una pagina Web il browser stabilisce una connessione TCP con il server; il
server Web per default resta in ascolto sulla porta 80; dopo aver stabilito la connessione il
client invia una richiesta e il server risponde; poi la connessione viene chiusa; se la pagina
contiene immagini, per ogni immagine viene ripetuto il procedimento, aprendo una nuova
connessione.
Il protocollo HTTP (Hyper Text Transfer Protocol) definisce il formato delle richieste del
browser e delle risposte del server, descrivendo in dettaglio le intestazioni e il corpo dei


                                              33
messaggi (simili a RFC 822 MIME); ogni interazione tra client e server consiste in una sola
richiesta e una sola risposta.
Il protocollo HTTP è privo di stati, cioè ad ogni connessione non ricorda cosa è avvenuto
in precedenza; per mantenere informazioni ottenute nelle connessioni precedenti si possono
usare i cookie (stringhe di testo memorizzate nel computer dell'utente).
Le richieste del client chiedono di trasferire un file di risorse (documento di testo,
immagine, file audio o video ecc.) dal computer del server al computer del client.
Il server per ogni richiesta manda un messaggio di risposta, poi chiude la connessione.

WAP
      WAP (Wireless Application Protocol) è un protocollo che permette di accedere a
      pagine Web da telefoni cellulari.
      Il protocollo WAP è trasparente rispetto al protocollo di comunicazione telefonica, si
      può cioè usare con qualsiasi sistema di telefonia cellulare, come GSM o UMTS; la
      differenza è solo nella banda disponibile.
      Le pagine devono essere preparate appositamente usando il linguaggio WML (un
      linguaggio definito tramite XML).

Server Web
Per offrire un servizio Web su Internet o in una intranet si può usare un programma di
gestione server Web.
I principali server sono Apache (gratuito, di pubblico dominio) in ambiente Unix (ma anche
Windows) e Internet Information Server (gratuito) su server Windows.
Dal tipo di server dipendono prestazioni, affidabilità e sicurezza.
Per esempio può variare il numero di browser che possono accedere contemporaneamente al
sito e la velocità di risposta.
La funzione di gestione dei server virtuali permette di gestire più siti Web su un unico
server.
L'amministrazione può avvenire mediante un'interfaccia grafica ma anche tramite
un'interfaccia testuale a linea di comando.
La configurazione di un server Web richiede tra l'altro di indicare in quale directory
memorizzare le pagine Web e che tipo di accesso è possibile usare.
L'accesso alle pagine Web può essere anonimo oppure in base ad autenticazione (in tal
caso l'accesso iniziale del browser provoca l'apparizione di una finestra di dialogo con la
richiesta di account e password).

      IIS - Internet Information Server
      Internet Information Server comprende i server Web, FTP, NNTP e SMTP (ma solo
      per l'invio di posta; non si possono creare caselle di posta per gli utenti).
      Si può installare IIS da Installazione applicazioni, Installazione componenti di
      Windows; basta selezionare IIS e poi i componenti desiderati.
      Si possono configurare e gestire i server da Programmi, Strumenti di
      amministrazione, Gestione servizi Internet. A sinistra, facendo doppio clic sul nome
      del server, si vedono i servizi gestiti; facendo clic destro su un servizio e scegliendo
      Proprietà si può configurare il servizio.
      //Sviene caricato come servizio ed eseguito in background; dopo l'installazione tutti
      i servizi specificati sono attivi e in esecuzione.

                                             34
Configurazione del Server Web IIS
Durante l'installazione del server Web si devono inserire l'indirizzo IP del server, il nome
del computer, l'indirizzo di posta dell'amministratore del server Web e l'indirizzo IP del
server DNS.
Per provare il funzionamento del server basta inserire nella barra indirizzi del browser
l'indirizzo del computer su cui è attivo il server (in una intranet basta http://nomecomputer).
IIS memorizza una home page di default (default.htm) nella cartella \inetpub\wwwroot.
Tutte le pagine Web che devono essere pubblicate vanno inserite nella cartella
\inetpub\wwwroot,       eventualmente        in   sottocartelle.   Alla     richiesta    dell'URL
http:/unadir/unfile.htm viene cercato il file c:\inetpub\wwwroot\unadir\unfile.htm.
Viene creata automaticamente anche una cartella scriptscon le autorizzazioni di Esecuzione
(non di Lettura) per gli script.
Il server Web di IIS permette l'esecuzione di applicazioni ASP.
Si può configurare il server Web da Programmi, Strumenti di amministrazione, Gestione
servizi Internet, facendo clic destro sul server Web e scegliendo Proprietà. La finestra
Proprietà presenta varie schede.
La scheda Sito Web contiene:
    • l'identificazione del server (descrizione, indirizzo IP e porta),
    • la sezione Connessioni che permette di scegliere tra connessioni Illimitate o Limitate a
      (indicando il numero) e di indicare il Timeout, cioè il tempo di inattività dopo cui ci si
      disconnette),
    • la sezione Consenti registrazione attività che attiva la scrittura in file di log per sapere
      chi accede al server (da quali indirizzi IP) e quando; abilitando i registri del server si
      ottengono molte informazioni sulle richieste degli utenti (si vedono le pagine in cui gli
      utenti hanno fatto clic per arrivare al sito, le stringhe di ricerca usate nei motori di
      ricerca, e quale motore hanno usato, le aree visitate ecc.); è quindi possibile analizzare
      le richieste e migliorare il sito di conseguenza.
La scheda Home directory definisce la directory radice del server Web che per default è
c:\inetpub\wwwroot, presenta inoltre quattro caselle di selezione che permettono di abilitare
i tipi di accesso:
    • accesso origine script si può vedere il sorgente degli script (anche quello delle pagine
      ASP),
    • lettura: si possono vedere i file ma non si possono fare modifiche o aggiungere altri
      file,
    • scrittura: si possono aggiungere altri file (cioè effettuare upload) o modificare i file
      (bisogna usare il metodo PUTdì HTTP 1.1),
    • esplorazione directory. se manca il file di default, si ottiene un elenco del contenuto
      della directory.
La scheda Documenti permette di abilitare l'uso di pagine predefinite con la casella di
selezione Abilita documenti predefiniti e di specificare i nomi dei file di default (di solito
default.htm o index.htm ma anche quelli predefiniti di ASP: default.asp e iisstart.asp).
La scheda Errori personalizzati permette di specificare il file html da restituire per ogni
specifico errore http.
La scheda Protezione directory contiene numerose opzioni relative alla protezione:
    • permette di abilitare l'accesso anonimo o un metodo di autenticazione (di base,
      Challenge/ Response e Digest Authentication);

                                               35
    • permette di specificare chi può accedere al server in base agli indirizzi IP; si può
      specificare chi ha l'accesso consentito o chi ha l'accesso negato;
    • permette anche di fare in modo che il server adotti comunicazioni protette fra gli utenti
      e il sito usando SSL, PCI o TSL.
Se è abilitato l'accesso anonimo (consentito per default) si può accedere al server, tramite il
browser, senza specificare nome utente e password. Per l'accesso anonimo viene usato
l'account IUSR_nomecomputer, un account creato automaticamente con diritti minimi
durante l'installazione. Si possono modificare le autorizzazioni di IUSR_ nomecomputer,
come si fa per gli altri account.
Se non è abilitato l'accesso anonimo per accedere al server si deve usare un account utente;
ogni richiesta iniziale da parte di un client provoca l'apparizione di una finestra di dialogo
per l'autenticazione.
Se è abilitato l'accesso anonimo e anche uno dei metodi di autenticazione viene richiesta la
password se si tenta l'accesso a una risorsa su NTFS che non consente l'accesso a
IUSR_nomecomputer.
Il metodo Challenge/Response, noto anche come Integrateti Windows Authentication
(Autenticazione integrata di Windows) o NTLM, può essere usato se il server è in una
intranet; funziona solo in una rete locale Windows e solo con internet Explorer. Utilizza
l'account con cui ci si è autenticati per l'accesso a Windows; se l'utente ha le necessarie
autorizzazioni l'autenticazione è automatica e trasparente per l'utente, altrimenti gli vengono
chiesti nome, password e dominio.

II servizio di posta elettronica
Funzionamento del servizio
II servizio di posta elettronica (o e-mail) permette di inviare messaggi ad altri utenti. Ogni
utente ha una casella di posta (mai! box) in cui vengono memorizzati i messaggi che gli
sono stati inviati; i messaggi vengono letti su esplicita richiesta del destinatario, che quindi
può anche non essere presente all'arrivo del messaggio.
Mittente e destinatario devono avere un account di posta cioè un indirizzo di posta
elettronica (e-mail address), assegnato dal provider, che individua una casella di posta, e
una password; l'indirizzo ha la forma nomeUtente@nomeServerdove nomeServenndica il
computer del provider su cui si trova la casella di posta dell'utente (il simbolo @ viene letto
"et", la pronuncia della parola inglese at, oppure chiocciola). Molti provider offrono account
di posta gratuiti.
Un indirizzo di posta non sempre si riferisce a una persona; un indirizzo può fare
riferimento a un programma (robot o mail server) che risponde automaticamente in base al
contenuto del messaggio.
Per gestire la posta serve un programma apposito; con i sistemi Windows sì ha a disposizio-
ne Outlook Express. Il programma di gestione della posta (client di posta o agente utente)
permette di comporre i messaggi da spedire e di visualizzare e gestire i messaggi in arrivo.
Bisogna configurare il sistema di posta indicando il proprio account (la prima parte
dell'indirizzo) e il nome dei due server di posta usati rispettivamente per spedire e ricevere i
messaggi; per spedire i messaggi viene usato il protocollo SMTP, mentre per la ricezione il
protocollo più comune è POP3.
Il messaggio è costituito da due parti: l'intestazione e il corpo; il corpo è il contenuto vero
e proprio del messaggio; l'intestazione contiene informazioni di controllo come il mittente,
il destinatario e l'oggetto (subject); i programmi di posta possono già impostare alcuni

                                              36
campi e nascondere quelli meno significativi per l'utente (per esempio quando si risponde a
un messaggio il campo oggetto viene impostato automaticamente a Re: oggetto del
messaggio a cui si risponde).
Per inviare un messaggio si deve preparare l'intestazione con l'indirizzo del destinatario o
dei destinatari e l'oggetto del messaggio, e scriverne il testo; questa operazione può essere
fatta off line; per la spedizione vera e propria ci si deve collegare al server SMTP che
provvede a recapitare il messaggio nella casella di posta del destinatario. Il messaggio viene
racchiuso in una busta che contiene le informazioni necessarie per trasportare il messaggio
a destinazione come l'indirizzo del destinatario, la priorità e il livello di sicurezza; dopo che
un messaggio è stato inviato, gli agenti di trasferimento messaggi (programmi sempre attivi
in background) trasferiscono la posta a destinazione attraverso la rete, usando le
informazioni della busta.
Se l'indirizzo del destinatario è errato il messaggio non può essere consegnato; se il server di
destinazione è sconosciuto il messaggio non viene nemmeno accettato dal server; nel caso
sia il nome utente ad essere sconosciuto, il messaggio viene inviato al server di destinazione
e il server restituisce un messaggio di avvertimento.
Per esaminare la posta ricevuta bisogna collegarsi al server POP3 che gestisce la propria
casella di posta e scaricare i messaggi dalla casella; per scaricare i messaggi bisogna fornire
la propria password; una volta scaricati i messaggi si può continuare off line per esaminare i
messaggi e preparare le risposte.
Quando si esaminano i messaggi in arrivo si vede un sommario in cui ogni linea contiene
diversi campi estratti dalla busta o dall'intestazione; l'utente può configurare il sistema per
specificare quali campi visualizzare; poi l'utente può leggere i messaggi, rispondere,
memorizzare o cancellare i messaggi, inoltrarli (cioè inviarli a qualcun altro) e così via.
Quando si scrive un messaggio bisogna ricordarsi che ci sono alcune convenzioni da
seguire; per esempio bisogna scrivere in minuscolo perché scrivere in maiuscolo equivale a
urlare; poi per chiarire il tono di una frase si possono usare dei simboli chiamati emoticons
o smiley (insiemi di caratteri che, se ruotati, assomigliano a una faccina con una particolare
espressione), per esempio :-) indica una frase detta in tono scherzoso e :-( indica che l'autore
è dispiaciuto.
Quando si risponde ad un messaggio è bene inserire all'inizio parte del messaggio a cui si
risponde; le righe citate da un altro messaggio vanno evidenziate (per esempio precedute dal
carattere >).
Di norma i messaggi devono comprendere solo i caratteri del codice ASCII ristretto (i primi
128 caratteri che non comprendono per esempio le lettere accentate).
La posta elettronica può servire anche per scambiarsi file binari come piccoli file eseguibili
o file audio e video (per esempio posta vocale e messaggi video). I file devono essere
allegati al messaggio (file attachment) e vengono codificati automaticamente dai
programmi di posta in modo da usare solo l’ASCII ristretto; in genere la codifica avviene
usando lo standard MIME. Al momento della ricezione il file viene decodificato e può
essere salvato su disco.
I programmi di gestione della posta offrono anche molte funzioni aggiuntive: è possibile
richiedere una conferma del ricevimento del messaggio (ricevuta di ritorno); si possono
impostare filtri o regole per i messaggi in arrivo, che specificano una condizione e una
azione corrispondente; in questo modo è possibile per esempio rispedire temporaneamente
la posta a un indirizzo diverso o inviare una risposta predefinita ad ogni messaggio in
arrivo; si può firmare il messaggio (usando un codice di identificazione personale

                                               37
dell'utente) in modo da autenticare il messaggio; si può crittografare il messaggio in modo
che non possa essere compreso da eventuali intrusi che lo intercettino.
La posta elettronica è un mezzo molto economico di comunicazione; questo può portare ad
un abuso del mezzo; un esempio è lo spamming, l'invio, non richiesto, di messaggi
pubblicitari via posta elettronica; l'indirizzo di un utente, preso per esempio dalla sua pagina
Web o dai mittenti di messaggi a un newsgroup, può essere inserito in elenchi per l'invio di
messaggi pubblicitari; ci può essere addirittura un commercio di questi elenchi; questa
attività in Italia è illegale.

Gestione della posta da una pagina Web
Ormai tutti i provider permettono di gestire la posta da una pagina Web che presenta dei
campi in cui inserire nome utente e password.
Compare una tabella con i campi di intestazione dei messaggi ricevuti; per leggere un
messaggio basta fare clic sulla riga desiderata; ci sono pulsanti per rispondere, inoltrare o
cancellare i messaggi.
Si può anche comporre un nuovo messaggio, allegare file, e inviarlo.
La gestione della posta dalla pagina Web richiede di rimanere collegati a Internet (gestione
della posta on line).
Questo metodo è utile quando si vuole gestire la posta da un computer diverso da quello che
si usa di solito perché non serve configurare il client di posta; inoltre i messaggi rimangono
sul server e quindi è possibile poi rivederli e scaricarli dal proprio computer (comunque
anche i client di posta si possono configurare per lasciare i messaggi sul server); bisogna
però ricordare che lo spazio disponibile nella casella di posta è limitato e quindi bisogna
scaricare o cancellare regolarmente i messaggi.

Mailing list
Le mailing list permettono lo scambio di messaggi all'interno di un gruppo di persone che si
iscrivono a una lista; una lista è un elenco di indirizzi di posta; ogni volta che si manda un
messaggio alla lista il messaggio viene inviato automaticamente a tutti gli iscritti alla lista.
La lista è gestita da un programma chiamato listserver (programmi di questo tipo sono per
esempio Listserv, listproc e majordomo); lista e listserver risiedono su un server di posta. La
mailing lisi dispone di due indirizzi:
    • un indirizzo al quale si inviano i messaggi che si vogliono distribuire agli iscritti;
    • un indirizzo relativo al listserver a cui si inviano i messaggi per iscriversi alla lista o
      cancellare l'iscrizione; questi messaggi in genere devono contenere una frase standard
      come SUBSCRIBE nome lista o UNSUBSCRIBE nomelista; per avere un elenco dei
      comandi di solito basta mandare un messaggio contenente la parola HELP.
Alcune liste sono moderate cioè c'è una persona che esamina i messaggi inviati e decide
quali devono essere distribuiti agli iscritti e quali no.
Inoltre ci sono liste pubbliche, alle quali tutti possono iscriversi e liste riservate, per
esempio per i dipendenti di una azienda.
Per iscriversi a una mailing list bisogna cercare l'indirizzo della mailing list che interessa
e inviare il messaggio di iscrizione; spesso nelle pagine Web sono presenti dei collegamenti
che permettono di effettuare in modo automatico l'iscrizione a una mailing list (per esempio
per ottenere informazioni pubblicitarie, aggiornamenti sui prodotti ecc.).
Di solito quando ci si iscrive a una mailing list si ottiene in risposta un messaggio con la
descrizione del funzionamento della mailing list e con le istruzioni per disdire l'iscrizione.

                                               38
Per alcune liste esiste un gateway con un newsgroup, cioè i messaggi inviati alla lista sono
anche consumabili come articoli del newsgroup corrispondente (e viceversa).

Formato dei messaggi
II formato dei messaggi di posta elettronica è definito nella RFC 822.
L'RFC 822 si riferisce a messaggi di testo che usano solo i caratteri del codice ASCII
ristretto. Il formato del messaggio comprende una busta, alcuni campi di intestazione,
una linea bianca e il corpo del messaggio; usa solo testo ASCII a 7 bit e linee che non
superano i 1000 caratteri.
Per poter inviare messaggi che contengono lettere accentate o per allegare file (immagini,
programmi eseguibili ecc.) bisogna usare un'estensione di RFC 822 chiamata MIME
(Multiporpose Internet Mail Extensions).
In pratica si usa ancora lo standard RFC 822 ma vengono aggiunte nuove intestazioni e
vengono definite delle regole di codifica in modo che tutto sia inviato come codice ASCII;
in questo modo si possono continuare a usare gli stessi programmi e protocolli di posta,
cambiando solo gli agenti utente.

Protocollo SMTP
Per inviare il messaggio si usa il protocollo SMTP (Simple Mail Transfer Protocol) per
comunicare con il server di posta (server SMTP).
Perché i messaggi possano essere trasmessi al server SMTP, il client deve essere in grado di
risolvere il nome del server che compare nell'indirizzo e-mail in un indirizzo IP tramite il
DNS (record MX).
Viene stabilita una connessione TCP con il server destinatario che è in attesa sulla porta 25;
il server copia i messaggi nelle appropriate caselle postali; se non è possibile viene spedita
al mittente una notifica di errore.
SMTP definisce il formato dei messaggi usati per la comunicazione tra client e server
SMTP; i messaggi sono semplice testo ASCII.

Protocolli POP3 e IMAP
Per leggere i messaggi si può usare il protocollo POP3 (Post Office Protocol) per
comunicare con il server di posta POP3.
Viene stabilita una connessione TCP con il server sulla porta 110; i messaggi vengono
copiati dalla casella di posta al computer dell'utente.
Un altro protocollo per la lettura dei messaggi è IMAP (Interactive Mail Access Protocol)
che permette di leggere la posta dal server senza copiarla sul computer dell'utente; in questo
modo si può accedere alla propria posta da computer diversi.

I newsgroup
I newsgroup sono gruppi di discussione pubblici (o conferenze) sugli argomenti più
svariati. Si può pensare a un gruppo come a un insieme di messaggi affissi in una bacheca;
chiunque è interessato può leggere i messaggi e inviare propri messaggi.
I newsgroup sono chiamati anche gruppi Usenet perché all'inizio venivano diffusi su una
rete di sistemi Unix (che non era la stessa rete Internet) chiamata Usenix network (usando
un programma chiamato uucp).
Per leggere i messaggi (articoli) di un gruppo bisogna usare un programma lettore di news
(news reader); Outlook Express funziona anche da news reader.

                                             39
Tramite il lettore di news ci si collega a un news server e si sceglie il gruppo che interessa;
la scelta del gruppo è chiamata iscrizione ma non è costituita da una vera e propria
iscrizione come nel caso delle mailing list; è solo un'indicazione al lettore di news dei
gruppi a cui si è interessati; inoltre i messaggi non vengono inviati agli iscritti ma
rimangono sul server da dove si possono consultare; sul server c'è una sola copia di ogni
articolo indipendentemente dal numero degli iscritti (diversamente dalle mailing list).
II lettore di news deve essere configurato con il nome del server news offerto dal proprio
provider.
I server news non sono tutti uguali tra loro; ognuno può offrire solo una parte dei gruppi,
selezionata dal provider; se si è interessati a un gruppo non disponibile sul proprio server
bisogna chiedere al provider dì renderlo disponibile o cambiare provider.
I server news oltre ai newsgroup ufficiali possono offrire newsgroup locali; i newsgroup
locali possono essere privati, cioè accessibili solo da chi ha un account sul server.
I gruppi sono organizzati in modo gerarchico; sono suddivisi in categorie per argomento
(per esempio il gruppo comp per discussioni relative all'informatica) e per nazione (per
esempio il gruppo it per gruppi italiani); ogni categoria è suddivisa in sottocategorie
ricorsivamente; i nomi sono composti da parti separate da punti secondo la gerarchia (la
categoria principale a sinistra e le sottocategorie procedendo verso destra).
I gruppi possono essere moderati, cioè può esserci una persona che esamina i messaggi in
arrivo al gruppo e decide quali pubblicare e quali no. A volte esistono due versioni diverse
dello stesso gruppo, una moderata e una no.
Per la creazione di nuovi gruppi ci sono delle regole molto rigide. La creazione di nuovi
gruppi è più semplice e meno formale nella gerarchia alt (newsgroup alternativi).

       Categorìe dei newsgroup
       Categorie ufficiali per argomento (Big Eight)
       comp informatica
       news discussioni sulla rete stessa
       sci scienza
       humanities letteratura e studi umanistici
       soc problemi sociali
       ree attività ricreative
       talk dibattiti di vario tipo
       mise tutto ciò che non appartiene a qualche altro gruppo
       Altre gerarchle
       alt gerarchla alternativa
       gerarchle nazionali come: it gruppi italiani fr gruppi francesi uk gruppi inglesi

II lettore di news quando viene avviato esamina l'elenco dei gruppi a cui si è iscritti e
presenta l'intestazione degli articoli disponibili; l'utente può selezionare uno o più articoli
che vengono visualizzati uno alla volta; dopo essere stato letto un articolo può venire
scaricato, salvato o stampato.
Il lettore di news può essere configurato per specificare che gli articoli di un certo
argomento o inviati da una certa persona vengano cancellati senza essere visualizzati (kill
file). Si possono scaricare automaticamente gli articoli di un gruppo in modo da leggerli
offline; il numero di articoli da scaricare può essere configurato, così come la possibilità di
scaricare solo le intestazioni degli articoli o anche il loro contenuto.

                                              40
I lettori di news permettono anche di pubblicare articoli (si dice anche postare articoli); la
pubblicazione di un articolo è come l'invio di un messaggio di posta elettronica; il
messaggio può essere inviato al gruppo (operazione chiamata followup) e allora potrà
essere letto da tutti, oppure può essere inviato direttamente all'autore di un articolo; si può
inviare un articolo anche a più gruppi contemporaneamente (pubblicazione multipla o
crosspost); quando si invia un messaggio a più newsgroup è bene indicare su quale
newsgroup proseguire la conversazione (followup).
Anche i messaggi dei newsgroup possono avere allegati che si possono aprire o salvare su
disco in modo analogo agli allegati dei messaggi di posta. Possono però esistere delle
limitazioni a questa possibilità; per esempio per quanto riguarda la gerarchia it il GCN ha
stabilito che possano essere inviati solo messaggi di testo; i file di altro tipo, o file binari
(come figure, documenti Word, file di suono ecc.) possono essere inviati solo ai gruppi
it.binary. * (negli altri gruppi un robot controlla automaticamente i messaggi e cancella i file
binari).
Quando un utente invia un articolo a un gruppo lo invia al proprio news server; i news
server si scambiano gli articoli tra loro per diffondere gli articoli sulla rete (il protocollo
usato si chiama NNTP); ci vuole un po' di tempo prima che l'articolo possa essere
disponibile a tutti gli iscritti al gruppo. È possibile restringere l'area geografica di
pubblicazione in modo che un articolo non venga propagato inutilmente in aree in cui non è
di interesse. Se il messaggio viene inviato a un gruppo moderato, il messaggio non appare
immediatamente nel gruppo, nemmeno sul server a cui si è collegati: viene inviato al
moderatore e appare nel gruppo solo dopo la sua approvazione.
Gli articoli restano sul server solo per un certo periodo (alcuni giorni) poi vengono
cancellati, quindi gli articoli disponibili sui server news sono solo quelli più recenti.
Gli articoli dei newsgroup di solito contengono emoticons e molte espressioni in gergo
come BTW (by the way, a proposito ) o ROFL (rolling on the floor laughing, da morir dal
ridere) o IMHO (in my humble opinion, a mio modesto parere).
I newsgroup vengono usati spesso per porre una domanda cercando qualcuno che sappia
rispondere; poiché è frequente che la stessa domanda sia posta molte volte da utenti
occasionali diversi, ogni newsgroup contiene un documento chiamato FAQ (Frequently
Asked Question) con le risposte alle domande che fanno i principianti (chiamati in gergo
anche newbie); in genere un articolo contenente le FAQ viene pubblicato periodicamente
nel newsgroup (oppure si possono consultare le FAQ da siti Web o scaricarle via FTP);
prima di partecipare alla discussione in un newsgroup è bene consultare le FAQ del
newsgroup stesso.
Per pubblicare un articolo in modo anonimo si può utilizzare un remailer, un servizio che
accetta messaggi di posta e modifica i campi relativi al mittente (intestazioni From, Sendere
Replay To) in modo che puntino al remailer invece che al mittente. Di solito il remailer
assegna un identificatore a ogni utente e rispedisce all'utente i messaggi a lui destinati,
inviati al remailer.
Per la consultazione delle news si deve usare il news server offerto dal proprio provider; ci
sono però anche dei news server pubblici che possono permettere solo la possibilità di
leggere le news o anche di inviare articoli; ci sono inoltre siti che permettono di consultare i
newsgroup via Web.




                                              41
Il servizio FTP
II protocollo FTP permette di trasferire file tra due computer ove siano stati installati
rispettivamente un server FTP e un client FTP.
Un client FTP può scaricare file dal server (operazione di download) o, se ne ha il
permesso, caricare file sul server (operazione di upload).
Il servizio FTP può essere usato in due modi: FTP anonimo (il metodo più noto e comune)
e FTP con account.
Con l'FTP anonimo l'utente non comunica chi è e può solo scaricare i file che il server FTP
rende disponibili agli utenti anonimi.
Con l'FTP con account l'utente deve disporre di un account sul server; quando si collega al
server deve fornire nome e password e può inviare comandi al server per scaricare file,
inviare file, creare directory o cambiare directory sul server e così via; ciò che può fare
dipende dai diritti e dalle autorizzazioni che gli sono stati accordati; questo metodo viene
usato per esempio per consentire l'accesso completo ad una directory (o più) per la
pubblicazione di pagine Web.
Il trasferimento dei file può avvenire in modalità ascii, la modalità di default usata per i file
di testo (che esegue la conversione tra metodi di codifica diversi usati dalle due stazioni), o
in modalità binaria usata per i file non di testo come file grafici ed eseguibili.
Per accedere a un server FTP e usare il servizio FTP si può usare un programma client FTP
(esistono client FTP con interfaccia a caratteri e con interfaccia grafica) ma più semplice-
mente anche un browser, specificando nell'URL il protocollo ftp.
Si può usare il servizio FTP anche senza rendersene conto; spesso le pagine Web
contengono collegamenti a file che possono essere scaricati, come esempi, plug-in o
applicazioni. Il collegamento in realtà fa riferimento a un file reso disponibile tramite un
server FTP e facendo clic sul collegamento si può salvare il file sul proprio computer.
L'uso più comune del servizio FTP è l'FTP anonimo per scaricare file da server FTP che
mettono a disposizione file; i file che si possono scaricare di solito sono compressi per
ridurre i tempi di scaricamento e sono costituiti da programmi freeware e shareware. Per
garantire un servizio migliore e alleggerire l'accesso ai server FTP si utilizzano tecniche di
mirroring; esistono dei server FTP, chiamati mirror, che duplicano le informazioni presenti
sul server originale.
È quindi conveniente scaricare il file dal server mirror più vicino geograficamente per
ridurre il tempo di scaricamento.
I mirror vengono aggiornati periodicamente; quindi è possibile che non siano in un certo
momento la copia esatta del server originale. Se si cerca un programma o un aggiornamento
molto recente è possibile che non sia disponibile nel server mirror e che lo si debba
scaricare dal server originale.

Il protocollo FTP
II protocollo FTP richiede che l'utente si colleghi con nome e password (eventualmente in
modo anonimo, indicando come nome anonymous) per avere accesso al server; però tutte le
trasmissioni sono in chiaro e quindi nome utente e password possono essere facilmente
intercettati.
Il server FTP usa due porte: la 20 (dati) e la 21 (controllo).
Per la comunicazione tra client e server vengono usate due connessioni TCP: una
connessione di controllo e una connessione di trasferimento dati. Il client stabilisce una
connessione sulla porta 21 che rimane attiva per tutta la sessione FTP e che permette di

                                               42
inviare i comandi al server; per ogni richiesta di trasferimento dati il server apre una
connessione di trasferimento dati sulla porta 20, che chiude quando il trasferimento è
completato (quindi deve essere aperta una nuova porta dati sul client ogni volta che
comincia un nuovo trasferimento dati).
Poiché viene usato TCP come protocollo di trasporto i trasferimenti di file sono affidabili.



                                         Sicurezza
II problema della sicurezza nelle reti riveste una grande importanza, infatti le reti per loro
natura non sono sicure; per esempio basta un analizzatore di rete per intercettare le
informazioni che viaggiano sulla rete.
Un analizzatore di rete è un programma che permette di esaminare il traffico tra due
stazioni qualsiasi della rete.
Il problema della sicurezza comprende diversi aspetti:
      • segretezza,
      • autenticazione,
      • affidabilità dei documenti.
La segretezza è l'aspetto più noto e consiste nel fare in modo che utenti non autorizzati non
possano intercettare informazioni o comunque non possano comprenderle.
L'autenticazione permette di determinare chi è l'interlocutore della comunicazione;
assicura che qualcuno non possa inviare messaggi o eseguire operazioni spacciandosi per
qualcun altro.
L'affidabilità dei documenti permette di determinare in modo certo chi è l'autore di un
documento o messaggio, come se il documento fosse firmato (firma digitale), e di garantire
che il documento non possa essere modificato da qualcun altro.
La segretezza può essere affrontata anche a livello fisico impedendo intercettazioni di dati o
a livello di data link mediante codifiche dei dati trasmessi; gli altri problemi però possono
essere gestiti solo a livello di applicazione.

Segretezza
Per garantire la segretezza delle informazioni anche nel caso vengano intercettate si usano
tecniche di crittografia.
La crittografia permette di trasformare delle informazioni (chiamate testo in chiaro) in una
forma incomprensibile per chi la intercetta (testo cifrato). Gli algoritmi di crittografia sono
chiamati anche cifrari. L'arte di violare i cifrar! viene detta crittoanalisi. Crittografia e
crittoanalisi insieme costituiscono la crittologia.

Crittografia
Gli algoritmi di crittografia cifrano il testo in base a un parametro detto chiave; è la chiave a
garantire la segretezza; gli algoritmi invece non sono segreti (se là chiave viene scoperta è
facile cambiarla, ma non è vero altrettanto per l’algoritmo).
Più la chiave è lunga e più è sicura, infatti diventa più difficile individuarla per tentativi;
provare tutte le possibili combinazioni di caratteri che potrebbero formare la chiave è un
problema esponenziale.
Inizialmente si usavano algoritmi semplici e chiavi lunghe; oggi invece gli algoritmi sono
molto complessi in modo da rendere più difficili l’operazione di decifratura.
                                               43
Per essere efficaci gli algoritmi di crittografia devono essere inviolabili anche nelle
situazioni più favorevoli per il crittoanalista; i casi possibili sono:
      • è disponibile solo testo cifrato ma non testo in chiaro,
      • è disponibile testo cifrato e corrispondente testo in chiaro,
      • è possibile cifrare parti di testo in chiaro di propria scelta.
In realtà esiste un metodo molto semplice per costruire un cifrario non violabile: si
considera il testo in chiaro come una stringa di bit e si fa un or esclusivo bit per bit tra
questa stringa e una stringa di bit casuale scelta come chiave; però è necessaria una chiave
della stessa lunghezza in bit del testo da codificare e non è utilizzabile in pratica.
Gli algoritmi di crittografia si suddividono in due categorie: metodi a chiave segreta e
metodi a chiave pubblica. La differenza consiste nel modo in cui si decodifica il messaggio
cifrato. Nei metodi a chiave segreta l’algoritmo di decodifica usa la stessa chiave usata per
la codifica (che quindi deve essere mantenuta assolutamente segreta; chiunque conosce la
chiave può decifrare il messaggio).
Nei metodi a chiave pubblica la chiave usata per decifrare il messaggio è diversa dalla
chiave di codifica; quindi la chiave di cifratura può essere resa nota senza problemi (il
crittoanalista può cifrare parti di testo in chiaro di propria scelta ma comunque non può
decifrare i messaggi cifrati; il trucco è nel modo in cui viene scelta la coppia di chiavi).

              Formalmente
              Sia M il messaggio, k la chiave, C l'algoritmo di codifica, Me il messaggio
              cifrato e D l'algoritmo di decodifica; Me = Ck(M) indica la codifica del testo in
              chiaro M utilizzando la chiave k.
              Negli algoritmi a chiave segreta:
              il testo cifrato Afe viene decodificato utilizzando la chiave k. M = Dk(Mc) e si
              ha che:
                                               Dk(Ck(M)) = M
              Negli algoritmi a chiave pubblica.
              il testo cifrato Me viene decodificato utilizzando una chiave diversa, sia h:
              M=Dh(Mc) e si ha che:
                                               Dh(Ck(M)) = M

Algoritmi a chiave segreta
Negli algoritmi a chiave segreta la decodifica viene effettuata con la stessa chiave usata per
la codifica. Il problema è scambiare la chiave tra gli interlocutori senza che venga
intercettata.
Metodi a sostituzione e a trasposizione ,
I metodi di crittografia più antichi sono quelli a sostituzione e trasposizione che risultano
piuttosto semplici da decifrare e quindi sono poco sicuri.
I cifrari a sostituzione, come dice il nome, sostituiscono ogni lettera con un'altra (o un
gruppo di lettere con un altro).
Nel metodo noto come cifrario di Cesare, perché attribuito appunto a Giulio Cesare, ogni
lettera viene sostituita con quella che si trova tre posizioni più avanti nell'alfabeto: la A è
sostituita dalla D, la B dalla E e così via.
Una semplice generalizzazione consiste nel sostituire ogni lettera con quella che si trova k
posizioni più avanti; k diventa la chiave del metodo generale. Bastano però 26 tentativi (per
le 26 lettere) per decifrare qualsiasi messaggio.

                                              44
Un miglioramento consiste nel variare la sostituzione per ogni lettera dell'alfabeto
(sostituzione monoalfabetica); la chiave è la stringa di 26 lettere da usare ognuna in
sostituzione di una delle 26 lettere dell'alfabeto. Questo metodo può sembrare sicuro perché
procedendo per tentativi le combinazioni sono 26! cioè più di 1 026 chiavi; però si può
decifrare facilmente un messaggio sfruttando le proprietà statistiche dei linguaggi naturali
(lettere o sequenze di lettere usate più frequentemente ecc.)
I cifrari a trasposizione non modificano le lettere, ma ne modificano soltanto l'ordine
all'interno del messaggio.
Nel cifrario a trasposizione per colonne il testo viene scritto suddividendolo in righe di k
colonne ciascuna e prendendo poi colonna per colonna nell'ordine indicato dalla chiave; la
chiave è una parola di k lettere che non contiene alcuna lettera ripetuta; l'ordine alfabetico
delle lettere indica in che ordine prendere le colonne.
Per decifrarlo si può cercare di determinare la lunghezza della chiave ipotizzando la
presenza di una parola nel messaggio e cercando probabili sequenze di lettere; per essere
sicuri che sia un cifrario a trasposizione basta controllare se la frequenza con cui le lettere
compaiono nel testo è quella normale.
Nei metodi di crittografia moderni vengono ancora usate sostituzioni e trasposizioni ma
combinate in algoritmi complessi.
Uno dei metodi più utilizzati è DES (Data Encryption Standard) sviluppato dall’IBM.
II testo in chiaro viene diviso in blocchi di 64 bit, ognuno dei quali viene cifrato generando
64 bit di testo cifrato.
L'algoritmo usa una chiave di 56 bit ed è molto complesso.
Un altro importante cifrario a blocchi è IDEA (International Data Encryption Algorithm)
che usa una chiave di 128 bit ed è attualmente considerato inviolabile. Come per il DES, il
testo in chiaro viene diviso in blocchi dì 64 bit, che producono ciascuno, dopo una
sequenza di passi, un blocco di 64 bit di testo cifrato.

Algoritmi a chiave pubblica
Negli algoritmi a chiave pubblica (Diffie e Hellman - 1976) le chiavi usate per cifrare e
decifrare il messaggio sono diverse; la chiave di codifica può essere diffusa liberamente
(chiave publica); la segretezza è garantita dalla chiave di decodifica che deve essere nota
solo al destinatario del messaggio (chiave privata). Gli algoritmi di codifica e decodifica
sono pubblici.
In pratica per usare la crittografia a chiave pubblica ogni utente possiede due chiavi, una
pubblica da rendere nota, e una privata usata per decifrare il messaggio. La coppia di chiavi
è calcolata con un opportuno algoritmo e il fondamento della sicurezza è che sia
difficilissimo ricavare la chiave privata dalla chiave pubblica.
Il metodo a chiave pubblica più usato è noto come RSA (dalle iniziali dei suoi inventori
Rivest, Shamir e Adleman - 1978).
Gli algoritmi a chiave pubblica sono molto sicuri ma sono lenti.
Di solito si usa un algoritmo a chiave pubblica per scambiarsi una chiave segreta da
utilizzare durante la sessione (chiave di sessione); poi si usa la chiave di sessione per cifrare
i dati con un algoritmo a chiave segreta come DES. Con questo metodo si ha un ulteriore
vantaggio: la chiave segreta condivisa cambia ad ogni sessione e quindi la sicurezza è
maggiore.



                                               45
Autenticazione
Per garantire che qualcuno non possa eseguire operazioni al posto di qualcun altro (intrusi
attivi) si usano tecniche di autenticazione che permettono di verificare chi è l'interlocutore.
In pratica il problema è il seguente: un utente o processo client A(in letteratura Alice) vuole
stabilire una connessione con un utente o server B (in letterature Bob); un intruso (in
letteratura Trudy) può intercettare, modificare o rispondere ai messaggi per ingannare gli
utenti (o processi) A o B o per bloccarli; alla fine comunque A e B devono essere sicuri di
aver parlato tra di loro senza intrusioni.

Autenticazione basata su chiave segreta condivisa
Se A e B condividono una chiave segreta si può usare un protocollo sfida-risposta
(challenge-response); il server invia un numero casuale al client, il quale lo codifica con la
chiave condivisa e restituisce il risultato:
   • A invia la propria identità a B;
   • B invia ad A la sfida (un numero casuale);
   • A codifica la sfida con la chiave condivisa e la restituisce a B, provando la sua identità
     perché solo lui poteva conoscere la chiave condivisa.
Se entrambi si devono autenticare anche A deve mandare una sfida a B:
   • A manda a sua volta una sfida a B;
   • B codifica questa sfida con un'altra chiave condivisa e la restituisce ad A.

Centro di distribuzione delle chiavi
Per avere una chiave segreta condivisa si può utilizzare un centro di distribuzione delle
chiavi KDC (Key Distribution Center) che si ritiene affidabile. Il KDC viene usato per
autenticare gli utenti e permettere lo scambio di una chiave di sessione.

Kerberos
Un protocollo più sofisticato di autenticazione è il protocollo sfida risposta a più vie, noto
come Kerberos dal nome del cane a tre teste che stava all'ingresso dell'inferno nella
mitologia greca. Kerberos permette agli utenti di autenticarsi a vicenda.
Kerberos per permettere ad A di accedere in modo sicuro a un server B usa tre server:
   • il server B che svolge il lavoro che serve ad A,
   • il server di autenticazione (SA) che verifica A al momento del login,
   • il server di gestione convalide (SGC) che fornisce ad A la convalida da utilizzare per
     provare la propria identità a B.

Autenticazione mediante crittografìa a chiave pubblica
Per l'autenticazione si possono usare i metodi di crittografia a chiave pubblica. Durante
l'autenticazione gli interlocutori si scambiano una chiave di sessione segreta in modo da
poter usare la crittografia a chiave segreta per il resto della conversazione.
Si suppone che A e B conoscano ciascuno la chiave pubblica dell'altro KbPub e KaPub.
    • A manda a B la propria identità e un numero casuale Ra cifrati con la chiave pubblica
      di B;
    • B può decifrare il messaggio con la sua chiave privata e individuare Ra; poi invia ad A
      un messaggio con Ra, un altro numero casuale Rb e una chiave di sessione Ks, cifrato
      con la chiave pubblica di A;
    • A decifra il messaggio con la sua chiave privata e restituisce a B il valore Rb cifrato
      con la chiave di sessione Ks.
                                              46
Se A e B si devono scambiare reciprocamente le chiavi pubbliche un intruso potrebbe
intromettersi nello scambio, scambiando la propria chiave con A e poi con B (attacco
dell'uomo in mezzo o della banda del secchio, perché ricorda i pompieri che si scambiano i
secchi). Per evitare lo scambio iniziale si può usare un server di autenticazione SA su cui
ogni utente e server registra una coppia di chiavi (pubblica e privata).
Il protocollo può essere complicato ulteriormente introducendo un server di convalida SGC.

Affidabilità dei documenti
Per assicurare l'affidabilità dei documenti bisogna fare in modo che:
   • si possa sempre verificare chi è l'autore di un documento e l'autore non possa negarlo;
   • nessuno possa modificare un documento di qualcun altro o creare un documento e
     attribuirglielo.
Questi obiettivi possono essere raggiunti usando la firma digitale.

Firma digitale
La firma digitale si avvale della crittografia a chiave pubblica.
È noto che la decodifica con la chiave privata di un messaggio codificato con la chiave
pubblica riproduce il messaggio originale. Si supponga ora che sia vero anche l'inverso, cioè
che si possa codificare il messaggio con la chiave privata e decodificarlo con la chiave
pubblica. In effetti ciò è vero per il metodo RSA, lo standard usato per le firme digitali
(comunque si potrebbe usare qualsiasi algoritmo a chiave pubblica).
La firma digitale di un documento consiste nel cifrare il documento con la propria chiave
privata; chi lo riceve lo può decifrare con la chiave pubblica.
A può inviare un messaggio firmato a B cifrando il messaggio con la sua chiave privata; B
lo decodifica con la chiave pubblica di A e in questo modo verifica che il messaggio è di A.
B può provare che il messaggio è di A solo finché la chiave privata di A rimane segreta o A
non cambia chiave. Serve un'autorità che registri i cambiamenti di chiave.
Le firme digitali hanno più vantaggi delle normali firme: non si possono falsificare (perché
bisogna conoscere la chiave privata), non si possono disconoscere, chiunque le può verifi-
care (usando la chiave pubblica), impediscono che si possa modificare il messaggio e inoltre
ogni messaggio ha una firma diversa che non si può usare per altri messaggi.
La firma digitale viene utilizzata anche per autenticare il software; gli sviluppatori firmano
il codice usando la loro chiave privata e gli utenti verificano la firma mediante la chiave
pubblica.
La firma digitale autentica il messaggio ma non lo rende segreto. Se A firma un messaggio e
lo manda a B chiunque può leggerlo usando la chiave pubblica di A. Se è necessaria sia
l'autenticazione che la segretezza A deve prima codificare il messaggio con la propria
chiave privata per firmarlo e poi lo deve codificare con la chiave pubblica di B per renderlo
segreto e fare in modo che solo B lo possa comprendere. Quando B riceve il messaggio lo
deve decodificare con la propria chiave privata e poi con la chiave pubblica di A.

Sintesi dei messaggi
Dato che la crittografia a chiave pubblica è lenta, per firmare un messaggio senza doverlo
cifrare completamente si può usare la sintesi del messaggio (message digest).
La sintesi del messaggio consiste in una stringa di bit di lunghezza fissata ricavata dal
messaggio attraverso un procedimento semplice ma non invertibile (cioè è impossibile
ricavare il messaggio originale dalla sintesi); deve inoltre essere impossibile generare un

                                             47
messaggio che abbia una sintesi prefissata; per rispettare questo criterio la stringa di bit deve
essere lunga almeno 128 bit.
Il calcolo della sintesi del messaggio da un testo in chiaro è più veloce della codifica di tutto
il testo.
Per firmare un messaggio il mittente calcola la sintesi del testo in chiaro, poi firma la
sintesi e invia sia il testo in chiaro che la sintesi firmata.
Il destinatario ricalcola la sintesi del messaggio in chiaro e la confronta con la sintesi che ha
ricevuto, decodificata mediante la chiave pubblica del mittente; se le sintesi non coincidono
vuoi dire che il messaggio è stato sostituito.
L'algoritmo di sintesi più usato è MD5 (Rivest 1992).
L'algoritmo produce una stringa di 128 bit a partire da un messaggio di lunghezza
qualsiasi, con un'elaborazione piuttosto complicata in modo che ogni bit in uscita dipenda
da ogni bit in ingresso.
Il messaggio da sintetizzare, visto come una stringa di bit, viene diviso in blocchi di 512
bit; l'ultimo blocco può essere completato con bit aggiuntivi e contiene negli ultimi 64 bit la
lunghezza originale del messaggio.
Viene usato un buffer di 128 bit, inizializzato a un valore prefissato; l'algoritmo mescola
completamente ogni blocco di 512 bit con il buffer di 128 bit, attraverso un procedimento in
4 passi; al termine il buffer contiene la sintesi del messaggio.

Certificati digitali
Per poter essere sicuri della provenienza di un messaggio o di un software bisogna utilizzare
per la verifica proprio la chiave pubblica dell'autore. Un malintenzionato potrebbe
diffondere una chiave pubblica falsa perché gli utenti credano di provenienza fidata i suoi
messaggi o programmi.
Per certificare la propria chiave pubblica si possono usare i certificati digitali.
I certificati digitali sono messaggi emessi da una autorità di certificazione (CA);
contengono informazioni sull'identità di un utente e la sua chiave pubblica e sono firmati
mediante la chiave privata dell'autorità di certificazione.
Anche le autorità di certificazione possono essere a loro volta certificate da autorità di
livello più alto.
Per ottenere che un'autorità di certificazione emetta un certificato a proprio nome un utente
deve fornire dei documenti che provino la propria identità; poi altri utenti possono
richiedere il certificato e così verificare la sua firma.
Per esempio un'azienda di software può richiedere un certificato digitale a un'autorità di
certificazione in modo che gli utenti possano aver fiducia nel software prodotto dall'azienda.
L'azienda firma il software prodotto con la propria firma digitale. L'utente ottiene
dall'autorità di certificazione il certificato digitale dell'azienda; in questo modo è sicuro di
ottenere proprio la chiave pubblica dell'azienda; mediante questa chiave può verificare la
firma digitale dell'azienda e quindi l'autenticità del software.
Un formato diffuso per i certificati digitali è X.509 dell'ISO (è usato per esempio da SSL e
dai file JAR di Java).
I certificati X.509 contengono:
      • la versione di X.509 usata,
      • il nome e la chiave pubblica dell'entità da certificare,
      • un intervallo di date in cui il certificato è valido (i certificati hanno una scadenza),
      • un numero di serie assegnato dall'autorità di certificazione,

                                               48
     • il nome dell'autorità di certificazione,
     • la firma digitale dell'autorità di certificazione.

PGP
PGP (Pretty Good Privacy) è un pacchetto completo per la sicurezza, gratuito (Phil
Zimmermann, 1995); fornisce funzioni di segretezza, autenticazione, firma digitale e
compressione; si basa sugli algoritmi RSA, IDEA e MD5.
Due utenti A e B per scambiarsi messaggi devono avere due chiavi RSA (ma il vero lavoro
di cifratura è fatto da IDEA che è di diversi ordini di grandezza più veloce di RSA).
L'utente A richiama il programma PGP sul suo computer, sintetizza il messaggio M usando
MD5 e cifra la sintesi mediante la sua chiave privata. La sintesi cifrata e il messaggio
originale sono concatenati in un singolo messaggio M1 e compressi mediante il programma
ZIP (Ziv Lempel) producendo M1.Z. A questo punto il PGP chiede ad A di inserire un
ingresso casuale; sia il contenuto sia la velocità di immissione vengono utilizzati per
generare una chiave IDEA a 128 bit KM. KM viene usata per cifrare M1.Z con l'algoritmo
IDEA. Inoltre KM viene cifrata con la chiave pubblica di B. Queste due componenti
vengono concatenate e convertite in base64 (può essere inserito in un corpo RFC 822).
L'utente B inverte la codifica base64 e decifra la chiave IDEA con la sua chiave privata.
Con KM decifra il messaggio e ottiene M1.Z. Lo decomprime e separa il testo in chiaro dalla
sintesi cifrata. Decifra la sintesi usando la chiave pubblica di A e può verificare che la
sintesi sia corretta.

La sicurezza in Internet
Problemi di sicurezza nel collegamento a Internet
Molte applicazioni di rete (come FTP, Telnet e client di posta POP3) trasmettono le
password in chiaro sulla rete rendendo semplici le intercettazioni: basta un analizzatore di
rete per catturare le informazioni; la stessa cosa vale per tutte le informazioni che transitano
sulla rete; una soluzione è l'uso della crittografia.
Un altro tipo di problema è che i protocolli non connessi come IP sono molto vulnerabili; ci
si può appropriare di un indirizzo IP e intercettare i pacchetti che vi sono diretti (un router
può essere ingannato per fargli credere che ci siano due percorsi per una destinazione
mentre in realtà esistono due destinazioni diverse, una vera e una usata dagli intrusi); oppure
viceversa si può far credere di inviare le informazioni da un certo indirizzo IP, diverso dal
proprio (spoofing; questo termine è usato anche nei servizi di posta elettronica per indicare
l'invio di un messaggio a nome di un mittente diverso).
È importante utilizzare misure di sicurezza; si può usare un firewall per controllare i
pacchetti che possono entrare e uscire dalla rete, usare la sicurezza del sistema per
controllare i diritti degli utenti e l'accesso a dischi e file, usare registrazioni degli eventi per
controllare l'accesso al computer, ai file, ai servizi Web e così via.
La cosa migliore è negare automaticamente l'accesso a tutto in tutta la intranet e definire
esplicitamente solo i permessi necessari.

Firewall
Un firewall è un dispositivo collocato tra la rete interna e la rete esterna attraverso cui passa
tutto il traffico in entrata e in uscita; in questo modo si può controllare il traffico e lasciare
passare solo ciò che soddisfa determinati criteri, impostando dei filtri. I firewall possono
essere a filtro di pacchetti o a livello di applicazione. I firewall a filtro di pacchetti

                                                49
analizzano il traffico a livello di trasporto mentre i firewall a livello di applicazione
esaminano le informazioni a livello di applicazione; di solito le funzioni di firewall a filtro
di pacchetti sono realizzate dai router e quelle di firewall a livello di applicazione dai proxy
server.
Per il buon funzionamento del firewall è importante che l'amministratore di sistema
configuri adeguatamente le regole per il filtraggio delle informazioni. Si possono definire
regole sia per il traffico in entrata che in uscita. Ci sono due tipi di strategie: permettere
sempre il traffico a meno che sia esplicitamente vietato o al contrario vietare tutto il traffico
a meno che non sia esplicitamente consentito (migliore). Un buon firewall dispone anche di
funzioni di registrazione degli eventi e di allarme.
Nei firewall a filtro di pacchetti i filtri sono basati su tabelle che elencano le sorgenti e le
destinazioni permesse e quelle vietate; si possono specificare gli indirizzi IP permessi o
negati e la porta (cioè l'applicazione o il protocollo) a cui si riferiscono i permessi; per
esempio si può stabilire quali computer della rete locale possono accedere a Internet oppure
bloccare l'ingresso nella intranet a FTP o Telnet bloccando la porta relativa; molti filtri
bloccano tutto il traffico UDP che potrebbe fare qualsiasi cosa; altre applicazioni a cui viene
vietato l'accesso comunemente sono DNS e Finger che potrebbero rivelare informazioni
sulla rete; il traffico in uscita è più difficile da bloccare perché altri server potrebbero usare
porte diverse da quelle predefinite.
I firewall a livello di applicazione permettono non solo di stabilire se il traffico relativo a
una applicazione può passare o meno ma anche di impostare regole relative ai comandi delle
applicazioni (per esempio ai comandi get o put di FTP).
Quando la rete intranet è collegata a Internet mediante un firewall si possono configurare i
server DNS in modo che solo alcuni siano abilitati ad accedere al di fuori della rete interna
per la risoluzione dei nomi (server forwarder) e gli altri utilizzino il forwarder come
intermediario: un server può passare la richiesta al forwarder che la risolve e restituisce i
risultati al server richiedente, che a sua volta li restituisce al client.

Autenticazione Web
Si possono controllare gli accessi alle pagine Web impostando il server in modo da
richiedere l'autenticazione.
II metodo più semplice di autenticazione Web è l'autenticazione Basic; se il browser
effettua una richiesta anonima il server nega l'autorizzazione e richiede che venga effettuata
l'autenticazione; il browser richiede nome e password all'utente e in ogni richiesta
successiva invia i dati (nome e password) al server in chiaro (soltanto codificati in base64).
È un metodo previsto nelle specifiche del protocollo HTTP e supportato da tutti i browser
ma rende molto facile l'intercettazione di dati.
In ambiente Windows il server IIS rende disponibile un metodo più efficiente,
l'autenticazione Challenge/Response, che però non è supportata da tutti i browser (e non è
prevista nel protocollo HTTP).
Con questo metodo la password non viene mai trasmessa sulla rete; l'utente non deve inviare
la password ma solo dimostrare di conoscerla; il server invia al browser una stringa
(challenge) che deve essere codificata in base alla password dell'utente e restituita; il server
ripete gli stessi calcoli e verifica il risultato.
IIS 5.0 ha introdotto un nuovo metodo chiamato Digest Authentication che come il metodo
Challenge/Response prevede uno scambio di informazioni ma non l'invio della password ed
è stato introdotto nelle specifiche del protocollo HTTP.

                                               50
In ogni caso questi metodi controllano solo chi si connette al server ma poi le informazioni
sono trasmesse in chiaro e un intruso può intercettarle leggendo il contenuto dei segmenti
TCP.

Scambio sicuro di informazioni
Per lo scambio sicuro di informazioni si possono usare protocolli come SSL (Secure
Sockets Layer), PCI (Private Communication Technology) o TLS (Transport Layer
Security). L'obiettivo di questi protocolli è assicurare la privacy (nessuno può intercettare le
comunicazioni), l'autenticazione (si sa chi è connesso) e l'integrità (i dati raggiungono
integri la destinazione).
L'uso di tecniche di questo tipo è necessario per siti che richiedono scambio di informazioni
riservate come numeri di carte di credito.
SSL usa la crittografia a chiave pubblica per lo scambio di una chiave di sessione da
usare per crittografare le informazioni.
Per lo scambio delle chiavi pubbliche utilizza i certificati digitali.
SSL funziona come livello intermedio tra il livello di trasporto e il livello di applicazione e
quindi il processo di codifica e decodifica è trasparente ai protocolli di applicazione, come
HTTP; tutte le trasmissioni tra client e server, comprese richieste e risposte HTTP, vengono
cifrate.
Il tempo di codifica e decodifica influisce notevolmente sulle prestazioni del server. È bene
inserire nelle directory protette solo le pagine che contengono o che riceveranno (per
esempio tramite moduli) informazioni sensibili e mantenere le pagine libere da elementi non
indispensabili (perché tutto quello che è sulla pagina verrà cifrato, comprese le immagini).
L'uso combinato dei protocolli HTTP e SSL viene generalmente indicato come HTTPS.
Si possono riconoscere le pagine che usano SSL perché nell'URL il protocollo è https invece
di http e nella barra di stato appare un indicatore (in Internet Explorer un lucchetto e in
Netscape una chiave).
Si può usare l'autenticazione base insieme a SSL per trasmettere la password in modo
sicuro.
PCT è un protocollo sviluppato da Microsoft che introduce caratteristiche aggiuntive con
più elevata protezione.
TLS è un nuovo protocollo di protezione che integra SSL e PCT in un unico standard.

Accesso a un sito protetto con Internet Explorer
Internet Explorer supporta i protocolli di protezione SSL, PCT e TLS.
I protocolli di protezione permettono agli utenti e ai siti di scambiare certificati per
l'autenticazione dell'identità.
I certificati di protezione sono dichiarazioni di un'autorità che garantisce l'identità di un
sito o di una persona.
Un certificato di sito afferma che il sito è protetto; i siti Web protetti hanno un certificato di
protezione del sito.
Un certificato personale (o ID digitale) garantisce l'identità di una persona (permette di
autenticarsi); permette di verificare l'identità dell'utente (per esempio per acquisti con la
carta di credito).
Quando ci si collega a un server protetto il browser riceve il certificato del sito e la sua
chiave pubblica; la chiave pubblica del sito è usata per scambiare una chiave di sessione, poi
usata per crittografare i messaggi.

                                               51
II tutto avviene automaticamente.
Internet Explorer riconosce e usa automaticamente il protocollo di protezione usato da un
sito protetto, quando ci si collega al sito.
Quando si accede a un sito protetto nella barra di stato appare l'icona di un lucchetto e il
protocollo indicato nell'URL è https.
Per sapere qual è il protocollo usato basta richiamare File, Proprietà e fare clic sul pulsante
Certificati; si apre una finestra in cui si vede tra l'altro il nome dell'autorità che ha rilasciato
il certificato, la data di rilascio e di scadenza del certificato e il protocollo usato.
Quando si passa dalla modalità protetta a quella non protetta appare un messaggio (si può
decidere se far apparire o no il messaggio da Strumenti, Opzioni Internet, scheda Avanzate).

La sicurezza in Windows 2000
Autenticazione mediante Kerberos
Windows 2000 usa un sistema di autenticazione Kerberos, integrato con Active Directory
che contiene le informazioni sugli account utente.
I client possono accedere per l'autenticazione a qualsiasi Controller di dominio. Su ogni
Controller di dominio è in esecuzione un KDC (Key Distribution Center), che memorizza
per ogni utente, dominio o server, una chiave segreta condivisa solo con l'interlocutore;
questa chiave a lungo termine è derivata dalla password di accesso. Per ogni sessione poi
viene usata una chiave di sessione a breve termine.
La convalida per l'autenticazione avviene attraverso Kerberos nel seguente modo:
    • quando si accede al computer bisogna premere Ctrl+Alt+Canc e inserire nome utente,
      password e nome del computer o del dominio;
    • viene inviato un messaggio di testo non cifrato al KDC per richiedere un ticket (TGT -
      Ticket Granting Ticket); il messaggio contiene il nome utente e del server KDC (il
      dominio) e un timestamp (indicazione di data e ora);
    • il KDC invia al client un messaggio cifrato con la chiave che il client condivide con il
      KDC; il messaggio contiene una chiave di sessione con timestamp e un TGT (che è
      basato sulla password dell'utente); il client usa il TGT nelle successive comunicazioni,
      fino alla scadenza (si può impostare la durata massima del TGT);
    • il client invia un messaggio al KDC chiedendo di comunicare con un servizio o server;
      il messaggio contiene il nome del server, un timestamp e il TGT e viene crittografato
      con la chiave di sessione;
    • il KDC produce una chiave di sessione che il client userà per comunicare con il server
      e la invia al client crittografata con la chiave di sessione che condivide con lui; inoltre
      gli invia un ticket da usare con il server, cifrato con la chiave che il KDC condivide
      con il server, contenente la chiave di sessione, il nome del client, l'indirizzo della
      scheda di rete del client e un timestamp;
    • il client invia un messaggio al server, cifrato con la chiave di sessione condivisa con il
      server, che contiene il ticket cifrato ricevuto dal KDC e un timestamp;
    • il server usa la sua password per decifrare il ticket e ottenere la chiave di sessione
      condivisa, che poi usa per decifrare il timestamp e accettare la comunicazione.
Si può ottenere un ticket da un KDC in un dominio e usarlo per richiedere un ticket di
sessione da un KDC di un altro dominio.
Oltre a Kerberos si può usare PKI (a chiave pubblica), basandosi su un'autorità di
certificazione pubblica; in questo caso ogni client usa la sua chiave privata per autenticarsi
con il KDC e ottenere il TGT.

                                                52
Un'estensione di Kerberos consente di usare per l'accesso una smart card con memorizzata
la chiave privata utente.

Certificati
II servizio certificati permette di gestire l'emissione, il rinnovo e le revoche di certificati
digitali, senza dover fare riferimento ad autorità di certificazione esterne; supporta i
certificati X.509, RSA e PKCS.
Quando si installa il servizio si devono definire le informazioni relative all'autorità di
certificazione (nome di dominio, database delle chiavi ecc.) e si possono impostare
gerarchie di autorità di certificazione distribuite.

EFS
Se si usa il file System NTFS, EFS (Encrypting File System) permette di memorizzare su
disco file crittografati.
EFS si basa sulla crittografia a chiave pubblica PKI. Per ogni utente viene generata
automaticamente una coppia di chiavi.
Come algoritmo di crittografia viene usato DESX (Data Encryption Standard espanso), un
algoritmo a chiave segreta.
Ogni file viene crittografato con una chiave segreta unica, usata anche per decifrare il file;
la chiave segreta usata per cifrare il file viene crittografata mediante la chiave pubblica
dell'utente. Quando l'utente accede al file il sistema lo decifra automaticamente usando la
chiave segreta, decifrata mediante la chiave privata dell'utente.
La crittografia è trasparente finché chi accede al file è la stessa persona che l'ha
crittografato; altrimenti, se qualcun altro cerca di accedere al file ottiene il messaggio
Accesso negato.
Per gestire i file crittografati, nel caso l'utente per qualche motivo non possa farlo, viene
designato un agente di recupero, che per default è l'amministratore.
Le chiavi segrete usate per crittografare i file vengono memorizzate anche cifrate mediante
la chiave pubblica dell'agente di recupero (generata automaticamente e salvata nel Registro
di sistema).
L'agente di recupero non compromette la chiave privata dell'utente perché può accedere solo
alla chiave di crittografia segreta del file; può solo ripristinare il file.
La crittografia è supportata a livello di file e di cartelle.
Se si crittografa una cartella tutti i file contenuti e le sottocartelle vengono automaticamente
crittografati (in realtà non vengono crittografate le cartelle ma solo i file all'interno delle
cartelle). Se si sposta un file in una cartella crittografata, il file viene crittografato (ma se si
sposta un file crittografato in una cartella non crittografata il file rimane crittografato).
Non si possono crittografare file compressi: se i file sono compressi vengono decompressi.
Per crittografare un file o una cartella basta fare clic destro sull'oggetto e scegliere
Proprietà, nella scheda Generale fare clic sul pulsante Avanzate e selezionare la casella
Crittografa contenuto per la sicurezza dei dati (per una cartella viene chiesto se applicare
anche alle sottocartelle).
Si possono rendere inaccessibili dei dati in una cartella condivisa crittografandoli. I dati
però sono crittografati solo finché si trovano sul disco e non quando vengono spostati lungo
la rete.



                                                53
IPSec
IPSec è un meccanismo, del tutto trasparente agli utenti, che cifra tutto il traffico che
attraversa la rete.
È un protocollo di sicurezza che opera al di sotto del livello di trasporto ed è ereditato in
modo trasparente da tutte le applicazioni sopra a tale livello.
Usa una combinazione di crittografia a chiave segreta e a chiave pubblica.
Per abilitare IPSec, dalle Proprietà del TCP/IPs\ deve fare clic sul pulsante Avanzate e poi
sulla scheda Opzioni selezionare Protezione IP e fare clic sul pulsante Proprietà; qui si
possono abilitare i criteri di protezione; si può scegliere Server protetto per usare la
protezione per tutto il traffico IP.




                                             54

								
To top