prof. S. Masetta
Programma di Sistemi
Classi quinte
Agg. 21/09/2013
Sistemi
www.sezioneb.com
SOMMARIO
1
Pila ISO OSI ________________________________________________________________________ 4
1.1
Introduzione ___________________________________________________________________ 4
1.2
Livello 1: fisico (Physical Layer)_____________________________________________________ 4
1.2.1
Mezzi trasmissivi ____________________________________________________________ 5
1.2.2
Tipologie di mezzi trasmissivi __________________________________________________ 5
1.2.3
Caratteristiche dei mezzi trasmissivi ____________________________________________ 6
1.2.4
Classificazione delle reti ______________________________________________________ 7
1.2.5
LAN ______________________________________________________________________ 7
1.2.6
MAN _____________________________________________________________________ 7
Sono reti ad estensione metropolitana ovvero per collegare fisicamente i nodi di una città ________ 7
1.2.7
WAN _____________________________________________________________________ 7
1.2.8
Topologie di rete____________________________________________________________ 8
1.3
Livello 2: Data Link ______________________________________________________________ 8
1.3.1
Framing ___________________________________________________________________ 8
1.3.2
Controllo degli Errori ________________________________________________________ 9
1.3.3
Controllo di Flusso _________________________________________________________ 10
1.3.4
Sottolivello MAC [modifica] __________________________________________________ 10
1.4
Livello 3: Rete _________________________________________________________________ 11
1
1.4.1
Funzioni del livello di rete____________________________________________________ 11
1.4.2
Livello rete in IP ___________________________________________________________ 12
1.4.3
Instradamento ____________________________________________________________ 12
1.4.3.1
Commutazione di Pacchetto________________________________________________ 12
1.4.3.2
switching _______________________________________________________________ 12
1.4.3.3
routing ________________________________________________________________ 13
1.4.4
Indirizzo IP _______________________________________________________________ 13
1.4.5
Classi di indirizzi IP _________________________________________________________ 14
1.4.5.1
Host___________________________________________________________________ 18
1.4.5.2
Subnet mask ____________________________________________________________ 18
1.4.5.3
Precisazioni _____________________________________________________________ 21
1.4.5.4
Un esempio pratico ______________________________________________________ 21
1.4.5.5
Subnet mask ____________________________________________________________ 22
1.4.6
1.4.6.1
Network address translation _________________________________________________ 23
Tipi di NAT______________________________________________________________ 24
1.5
Livello 4: Trasporto _____________________________________________________________ 24
1.6
Livello 5: Sessione ______________________________________________________________ 26
1.7
Livello 6: Presentazione _________________________________________________________ 26
1.8
Livello 7: Applicazione __________________________________________________________ 27
1.8.1
Domain Name System ______________________________________________________ 27
1.8.2
Indirizzamento IP statico e dinamico ___________________________________________ 28
1.8.3
Indirizzi dinamici ___________________________________________________________ 28
1.8.4
Indirizzi __________________________________________________________________ 28
Versioni _________________________________________________________________________ 28
IPv4 ___________________________________________________________________________ 28
IPv6 ___________________________________________________________________________ 28
2
Comandi _________________________________________________________________________ 30
2
2.1
ipconfig ______________________________________________________________________ 30
2.2
ping _________________________________________________________________________ 30
2.3
tracert _______________________________________________________________________ 30
3
1 Pila ISO OSI
1.1 Introduzione
In telecomunicazioni e informatica l'Open Systems Interconnection (meglio conosciuto come modello
ISO/OSI) è uno standard de iure per reti di calcolatori stabilito nel 1978 dall'International Organization for
Standardization (ISO), il principale ente di standardizzazione internazionale, che stabilisce per l'architettura
logica di rete una struttura a strati composta da una pila di protocolli di comunicazione suddivisa in 7 livelli,
i quali insieme espletano in maniera logico-gerarchica tutte le funzionalità della rete.
1.2 Livello 1: fisico (Physical Layer)
Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico,
occupandosi della forma e della tensione (voltaggio, anche se quest'ultimo termine, applicando la
lingua italiana all'elettrotecnica, è errato) del segnale. Ha a che fare con le procedure meccaniche e
elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.[4]
4
Semplicemente: si occupa di controllare la rete, gli hardware che la compongono e i dispositivi che
permettono la connessione.
1.2.1
Mezzi trasmissivi
In telecomunicazioni con il termine mezzo trasmissivo si indica il canale a livello fisico entro il
quale viaggiano i segnali rappresentativi dell'informazione; ne consegue quindi anche la sostanziale
equivalenza tra i termini "mezzo trasmissivo" e "canale trasmissivo".
Caratteristiche
Affinché l'informazione viaggi a distanza, cioè da e verso entità dislocate in luoghi diversi,
necessita di una elaborazione che la trasformi in segnali elettrici e/o elettromagnetici i quali, a loro
volta, devono essere adattati ai canali utilizzati per il trasporto.
Un canale di trasmissione ideale dovrebbe possedere una banda sufficientemente larga ed uniforme
per contenere lo spettro del segnale di informazione senza distorcerlo e dovrebbe poterlo trasferire a
qualsivoglia distanza senza introdurre degradamenti nella qualità elettrica di origine; la realtà risulta
diversa in quanto sono presenti fattori di degradazione tipici quali:

Attenuazione;

Rumore di natura elettrica oppure segnali spuri cioè interferenza;
Voci correlate:








Distorsione.
Doppino
Fibra ottica
Cavo coassiale
Codifica Manchester
Codifica 4B/5B
Cavi elettrici
WiFi
1.2.2 Tipologie di mezzi trasmissivi
I mezzi trasmissivi possono classificarsi secondo il seguente schema:

Mezzi trasmissivi ad onde guidate
o Linee metalliche
 Linee in cavo
 Doppino
5



Cavo coassiale
Coppie simmetriche
 Guida d'onda
o Linee non metalliche
 Fibra ottica
Mezzi trasmissivi ad onde irradiate
o Ponte radio terrestre
o Ponte radio satellitare
Il livello fisico è il livello 1 del modello ISO/OSI.
In trasmissione questo livello riceve dal livello datalink i frame da trasmettere, li converte in una
sequenza di bit e li trasmette sul canale o mezzo fisico in maniera sequenziale. In ricezione il
flusso di informazione (sequenza di pacchetti) procede dal livello fisico verso l'alto passando al
livello superiore di datalink.
Il livello 1 si preoccupa della gestione del mezzo trasmissivo (ad esempio, cavo coassiale
(connettore BNC), cavi STP o UTP, fibre ottiche) su cui avviene lo scambio di informazioni,
occupandosi della trasmissione di singoli bit su un mezzo trasmissivo. Esso definisce per questo le
modalità di connessione tra il cavo e la scheda di rete e di conseguenza le caratteristiche cui i mezzi
di collegamento fisico devono sottostare, quali:

caratteristiche fisiche, come forma, dimensioni, numero di piedini di un connettore,
specifiche meccaniche

caratteristiche funzionali, come il significato dei pin di un componente.

caratteristiche elettriche, come i valori di tensione per i livelli logici, e di conseguenza la
codifica, la sincronizzazione e la durata di ogni bit;

codifica del segnale digitale su un mezzo trasmissivo che è inerentemente analogico
(modulazione)
Esistono diversi standard relativi alla gestione del mezzo trasmissivo, sia esso analogico o digitale.
1.2.3
Caratteristiche dei mezzi trasmissivi
Caratteristiche basilari di un mezzo trasmissivo sono:

la riduzione della potenza del segnale al crescere della distanza percorsa (o attenuazione);
6





la suscettibilità alla degradazione del segnale a causa di elementi esterni (o rumore o
interferenza);
i fenomeni di distorsione che avvengono al segnale trasmesso;
la capacità (o banda passante);
i costi;
i suoi requisiti in maneggevolezza, aggiornabilità e gestione.
Uno stesso mezzo trasmissivo può essere utilizzato su diverse bande trasmissive. In tal caso le
caratteristiche di attenuazione, rumore, distorsione possono essere diversi per ciascuna banda.
Questo accade ad esempio per le fibre ottiche, che hanno tre diverse finestre trasmissive.
1.2.4 Classificazione delle reti
1.2.5 LAN
Si intendono reti a livello di stanza, piano o edificio.
1.2.6 MAN
Sono reti ad estensione metropolitana ovvero per collegare fisicamente i nodi di una città
1.2.7 WAN
Sono reti a ricoprimento geografico, ovvero più città, nazioni o continenti
7
1.2.8 Topologie di rete
In telecomunicazioni una topologia di rete è la rappresentazione della struttura geometrica di una
rete di telecomunicazioni che fa parte della più generale architettura di rete.
Una topologia di rete rappresenta un modello geometrico (grafo) di una rete di telecomunicazioni i
cui elementi costitutivi sono i nodi e i rami. Un nodo individua un elemento della rete connotato da
specifiche funzionalità e un ramo costituisce un elemento di connessione fisica fra due nodi. Il
significato di queste entità geometriche è diverso a seconda del tipo di operatività che si considera.
1.3
Livello 2: Data Link
Il livello datalink è il secondo livello dei protocolli del modello ISO/OSI per l'interconnessione di
sistemi aperti. Questo livello riceve pacchetti dal livello di rete e forma i frame che vengono passati
al successivo livello fisico.
Il Livello di Datalink deve svolgere diverse funzioni specifiche:



1.3.1
Raggruppare i bit del livello fisico in pacchetti chiamati frame (framing);
Controllare e gestire gli errori di trasmissione;
Regolare il flusso della trasmissione fra sorgente e destinatario (controllo di flusso).
Framing
Al fine di fornire servizi al livello di rete, il livello data link deve usufruire dei servizi fornitigli dal
livello fisico. L'approccio consueto del livello data link è quello di dividere il flusso dei bit in
pacchetti (adattatti appunto ad una trasmissione su una rete a pacchetto), e calcolarne la Checksum.
Vari metodi vengono utilizzati per la suddivisione dei bit in pacchetti o frame:
8



Conteggio dei caratteri.
Caratteri di inizio e fine.
Indicatori (flag) di inizio e fine.
Il metodo del conteggio di caratteri (ottenuto specificando nel campo d’intestazione del pacchetto il
numero di caratteri del frame) è raramente utilizzabile poiché, se il campo che contiene il numero di
caratteri si rovina (altera) durante la trasmissione, non si può più individuare dove comincia il frame
successivo; vengono quindi utilizzate le altre tecniche.
Nella trasmissione orientata al byte (il frame mantiene la suddivisione in byte) il frame viene
preceduto dalla sequenza di caratteri ASCII DLE STX (Data Link Escape Start of TeXt) e finisce
con la sequenza DLE ETX (Data Link Escape End of TeXt). Se un frame si rovina e la destinazione
perde la sincronizzazione basta trovare il successivo DLE STX o DLE ETX. Il carattere DLE però
può comparire casualmente dentro al frame quando vengono trasmessi dati binari come programmi
oggetto o numeri in virgola mobile; perché questi caratteri non interferiscano viene aggiunto un
ulteriore DLE (che viene rimosso a destinazione prima di passare al frame al livello di rete) in modo
che solo i DLE singoli vengano interpretati come delimitatori; questa tecnica si chiama character
stuffing. Nella trasmissione orientata al bit (il frame può contenere un numero qualsiasi di byte)
ogni frame inizia e finisce con la sequenza 01111110 chiamata flag: questa sequenza può comparire
casualmente nei dati, perciò in trasmissione dopo cinque 1 consecutivi viene sempre inserito uno 0
nel flusso di bit, indipendentemente dal fatto che il bit successivo sia 1 o 0, mentre in ricezione
bisogna provvedere ad eliminare i bit inseriti, rimuovendo sempre uno 0 dopo cinque 1; questa
tecnica è chiamata bit stuffing.
1.3.2
Controllo degli Errori
Come detto, la stazione mittente del livello data-link riceve i dati dal livello superiore e li suddivide
in frame prima di affidarli al livello fisico per la trasmissione su canale, aggiungendo ad esso un
codice per il controllo degli errori (Integrità dati) di trasmissione in ricezione (Checksum).
Quando un pacchetto arriva a destinazione la Checksum viene ricalcolata dallo stesso livello datalink del sistema ricevente. Se il risultato è diverso da quello contenuto nel pacchetto, il livello datalink riconosce che è stato commesso un errore e prende adeguati provvedimenti (come ad esempio
scartare il pacchetto e spedire un messaggio di errore in risposta al mittente).
In generale si hanno due tipi di codici di controllo, i codici rilevatori che permettono soltanto di
capire che il frame non è corretto ed i codici correttori che permettono non solo di capire se si è
verificato un errore, ma anche di individuare la posizione dell’errore e di conseguenza correggerlo.
Questi ultimi codici richiedono molti più bit dei codici rilevatori e quindi sprecano ampiezza di
banda; di solito perciò vengono usati i codici rilevatori.
In caso di errore, se il servizio è inaffidabile il frame può essere semplicemente scartato; se la linea
deve essere affidabile bisogna che tutti i frame arrivino correttamente; se si usa un codice rilevatore
il ricevente deve richiedere la ritrasmissione dei frame errati.
La scelta tra codici rilevatori e correttori può dipendere anche dalla velocità delle linee (per linee a
bassa velocità aspettare la ritrasmissione potrebbe richiedere troppo tempo) o affidabilità (se il tasso
di errore sulla linea è molto basso non vale la pena sprecare molta per un codice correttore) o dal
tipo di servizio richiesto (real-time o meno).
9
Il modo consueto per assicurare una consegna affidabile è quello di fornire al mittente un riscontro
di quello che sta accadendo all'altro capo della linea. Tipicamente il protocollo richiede che il
ricevente rispedisca alcuni speciali pacchetti di controllo con valore positivo o negativo a seconda
dei pacchetti ricevuti. Se il mittente riceve un riscontro positivo su di un pacchetto spedito, sa che
esso è arrivato correttamente. Se invece ottiene un riscontro negativo significa che qualcosa è
andata male e che occorre ritrasmettere il pacchetto. Una complicazione aggiuntiva potrebbe
derivare dalla possibilità che i problemi hardware causino la sparizione totale del pacchetto. Se un
pacchetto, non arriva a destinazione, il mittente non aspetterà all'infinito, infatti viene utilizzato un
timer, che viene avviato quando i dati vengono trasmessi, se il timer supera la soglia
limite(programmata) senza ricevere l'ack (Acknowledgment o conferma), rimanderà di nuovo i
pacchetti. Tuttavia, se il pacchetto o il messaggio di riscontro vengono persi, il timer scade, e la
stazione mittente, non ricevendo conferma, è costretta a reinviare i dati, ma a questo punto il
mittente potrebbe riceverebbe due o più volte lo stesso pacchetto. Per risolvere questo problema, i
pacchetti inviati vengono numerati, così il sistema ricevente, nel caso in cui riceva un numero di
pacchetto uguale al precedente, dunque una copia del pacchetto, lo scarta. Questa tecnica è nota
come Stop and wait; le altre tecniche maggiormente utilizzate per il controllo degli errori sono il
Codice di Hamming e il CRC (Codice di Ridondanza Ciclica).
1.3.3
Controllo di Flusso
Un altro importante problema di progettazione che si ritrova nel livello di data link è quello gestire
una linea condivisa quando più nodi vogliono inviare messaggi nello stesso tempo e inoltre deve
decidere cosa fare di un mittente che sistematicamente tende a trasmettere pacchetti più
velocemente di quanto il ricevente li accetti. Questa situazione può facilmente essere riscontrata
quando il mittente è dislocato su una macchina veloce e il ricevente su una macchina lenta. Il
mittente continua a spedire pacchetti ad alta velocità, fino a quando il ricevente non è
completamente sopraffatto. Anche se la trasmissione è esente da errori, a un certo punto il ricevente
non sarà in grado di gestire i pacchetti in arrivo e inizierà a perderli. La tipica soluzione è quella di
introdurre un controllo di flusso per obbligare il mittente a rispettare la velocità del ricevente nello
spedire i pacchetti. Questa imposizione solitamente richiede un certo tipo di meccanismo di
riscontro in modo che il mittente possa essere avvisato se il ricevente è in grado di ricevere o meno.
Nel caso in cui invece più nodi vogliono inviare contemporaneamente dei messaggi, si tende ad
introdurre un controllo centralizzato, creando un singolo nodo di controllo, responsabile di
determinare chi ottiene la priorità all'interno della rete; il nodo successivo quindi, controllerà
quando la rete non sarà più occupata, così da poter inviare il messaggio appena questa diventerà
libera. Può accadere però, che più nodi monitorizzano la rete e che appena questa sia libera, inviano
immediatamente i messaggi, in questo caso si avranno dei problemi di collisione; per ovviare a
questo problema, i nodi che monitorizzano la rete attenderanno un tempo casuale prima di inviare i
messaggi, poiché è improbabile che i nodi scelgano lo stesso istante per inviare i dati.
1.3.4
Sottolivello MAC [modifica]
Il sottolivello inferiore è Media Access Control. A volte questo si riferisce al sottolivello che
stabilisce chi può utilizzare il mezzo trasmissivo in un certo momento (di solito CSMA/CD). Altre
volte si riferisce in una struttura a frame che contiene indirizzi MAC. Ci sono essenzialmente due
tipi: distribuito e centralizzato. Entrambi possono essere paragonati al dialogo di due persone, ad
esempio, in una rete fatta di persone che parlano, come una conversazione, cerchiamo di capire da
chi è intorno a noi se stanno per iniziare a parlare. Se due persone iniziano a parlare insieme,
smetteranno subito e inizieranno un lungo scambio di "No, parla prima tu".
10
Il sottolivello MAC stabilisce dove iniziano i frame di dati e dove finiscono. In una rete di posta
ordinaria, ogni lettera è un frame di dati, e ognuno capisce dove iniziano e finiscono perché sono
all'interno di una busta. Si può anche specificare che una lettera inizierà con un'espressione come
"Caro Tizio" e finirà con un'espressione come "Distinti saluti".
1.4
Livello 3: Rete
Il livello rete (Network layer) è il livello 3 della pila ISO/OSI. Questo livello riceve datagrammi dal
livello di trasporto e forma pacchetti che vengono passati al Livello datalink.
Il compito del livello di rete è la trasmissione di pacchetti tra due host arbitrari, che in generale non
sono direttamente connessi (ovvero non hanno un collegamento diretto tra di loro). Nel modello
ISO/OSI, il livello di rete è presente in tutti i commutatori della rete ovvero i nodi, mentre i livelli
superiori sono presenti solo nei nodi terminali.
1.4.1





Funzioni del livello di rete
inoltro, ovvero ricevere un pacchetto su una porta, immagazzinarlo e ritrasmetterlo su
un'altra. Questa funzione è presente in tutti i nodi della rete, e può comportare l'utilizzo di
protocolli di livello collegamento differenti
o frammentazione e riassemblaggio: se un pacchetto ricevuto ha una dimensione
eccessiva per la rete su cui deve essere trasmesso, il livello di rete lo divide in
frammenti e, in maniera complementare, si occupa di riassemblare i frammenti
ricevuti al momento della consegna.
instradamento (routing), ovvero determinare il percorso per la trasmissione dei dati
attraverso la rete a partire dall'indirizzo IP del destinatario. Nella maggior parte dei casi,
questa funzione viene svolta dinamicamente tramite appositi algoritmi, che analizzano le
condizioni della rete, le tabelle di instradamento, la priorità del servizio e altri elementi
secondari.
alcuni protocolli di rete forniscono un servizio di gestione delle connessioni (x.25, frame
relay, Asynchronous Transfer Mode), ovvero richiedono che venga stabilito un canale di
comunicazione prima che due host possano scambiarsi dati; altri trasportano semplicemente
i datagrammi a destinazione (IP, IPX). I protocolli orientati alla connessione possono offrire
garanzie di consegna in ordine dei pacchetti, mentre questo non avviene normalmente nei
protocolli non orientati alla connessione
funzioni talvolta presenti nel livello di rete sono il controllo della congestione, o garanzie di
qualità di servizio, tipicamente basate sulla prenotazione delle risorse su tutti i nodi della
rete.
nelle reti geografiche (WAN o MAN) può venire gestita la tariffazione, calcolata sulla base
dei tempi di connessione e/o di altri parametri.
11
1.4.2
Livello rete in IP
Nel modello TCP/IP, il livello 3 viene detto livello internet oppure livello di internetworking, in
quanto interconnette reti eterogenee, che possono essere basate su protocolli di livello collegamento
(ad esempio ethernet, PPP) o su protocolli di rete (ad esempio frame relay, Asynchronous Transfer
Mode), per realizzare un'unica rete in modo trasparente agli utilizzatori. La forza di IP sta proprio in
questo agnosticismo rispetto al livello di rete, che permette di usare o riusare tecnologie già
disponibili, e di adattarsi con naturalezza a nuove tecnologie.
Osservando una rete IP costruita con tecnologie eterogenee, si può notare che alcuni nodi della rete
eseguono IP (e sono detti router); altri nodi instradano pacchetti IP usando altre tecnologie di rete
(che stanno sotto IP nello stack dei protocolli). Questi nodi sono normalmente detti switch o
commutatori, anche se il termine per antonomasia indica specificamente lo switch ethernet.
IP determina il miglior cammino (detto routing o instradamento) per l’inoltro dei pacchetti,
attraverso la consultazione delle tabelle di routing. Tali tabelle possono essere di tipo statico
(realizzate manualmente dai gestori della rete) o dinamico (composte con l'utilizzo di protocolli di
routing tipo l'OSPF, il RIP o il BGP che servono a popolare tali tabelle scambiando tra i vari
apparati le rotte conosciute).
1.4.3
Instradamento
Nelle reti telecomunicazioni, sia a commutazione di circuito che a commutazione di pacchetto,
l'instradamento è la funzione di un commutatore (centrale telefonica, router, switch) che decide
dove inviare un elemento di comunicazione ricevuto (conversazione telefonica, pacchetto, cella,
flusso di dati). Il termine è una metafora che si riferisce all'atto di instradare (dirigere, indirizzare).
Ciascun elemento di comunicazione viene inoltrato dalla sorgente ad un commutatore, e da questo
al successivo, fino a raggiungere la destinazione desiderata.
Il commutatore spesso usa una tabella di indirizzamento per decidere dove inviare ciascun
elemento. Il formato di questa tabella ed il modo in cui viene popolata e possibilmente modificata
sono specifici delle diverse tecnologie utilizzate e delle scelte progettuali adottate.
1.4.3.1 Commutazione di Pacchetto
L'oggetto dell'instradamento è il pacchetto, ovvero la decisione di instradamento viene presa
separatamente per ciascun pacchetto. Anche per questa ragione, diversi pacchetti tra la stessa coppia
di nodi possono seguire strade diverse, arrivare a destinazione in un ordine diverso da quello con
cui sono stati inviati, e alcuni possono andare persi. Nelle reti IP, la risoluzione di questi problemi è
tipicamente demandata a TCP, un protocollo di livello di trasporto, oppure alle applicazioni.
1.4.3.2 switching
Si intende con switching o "commutazione" l'instradamento effettuato a livello di collegamento, ad
esempio nelle reti ethernet. Gli switch contengono tabelle di inoltro i cui elementi sono gli indirizzi
mac dei singoli calcolatori presenti sulla rete. Questa tecnica ha pertanto dei considerevoli limiti di
scalabilità, in quanto è necessario un elemento in queste tabelle per ciascun host presente sulla rete.
12
Le tabelle di inoltro degli switch vengono normalmente popolate in modo opportunistico man mano
che i singoli nodi vengono collegati alla rete, osservando il traffico in transito. Quando lo switch
riceve un frame destinato a un mac address che non conosce, lo invia in broadcast su tutte le porte, e
questo spreco di risorse è un altro limite alla scalabilità dello switch.
1.4.3.3 routing
Il routing è l'instradamento effettuato a livello di rete. Nel caso tipico di IP, i router usano tabelle di
instradamento i cui elementi sono blocchi di indirizzi IP contigui, che sono detti route o rotte.
Questo metodo è pertanto più scalabile, in quanto un singolo elemento della tabella di
instradamento può gestire un numero anche molto alto di host. Per quanto riguarda l'indirizzamento
IP il numero di hosts (singoli indirizzi) contenuto in una route o rotta è determinato dalla
subnetmask (maschera di sottorete).
Le tabelle di instradamento possono essere popolate con una combinazione di diversi metodi:



routing per reti direttamente connesse: quando una interfaccia di rete di un host IP viene
configurata con un indirizzo IP ed una maschera di sottorete, l'host conosce
automaticamente la rotta per raggiungere tutti gli host di quella sottorete.
o Nel caso molto semplice di una rete costituita da diverse sottoreti connesse ad un
solo router, questo automatismo è sufficiente a popolare la tabella di routing di quel
singolo router con tutti gli elementi necessari.
routing statico: le rotte possono essere configurate manualmente sui vari router. Questo
metodo è poco scalabile, difficile da gestire per reti più che banali, e non consente alla rete
di utilizzare percorsi multipli quando questi sono disponibili per raggiungere una
determinata destinazione.
routing dinamico: le tabelle di instradamento vengono popolate da appositi protocolli di
routing, eseguiti sui router, che permettono ai router di scambiarsi informazioni circa la
topologia attuale della rete, e quindi di costruire automaticamente le tabelle di
instradamento. Questi protocolli permettono alla rete di adattarsi automaticamente ad
eventuali modifiche (aggiunta o caduta di nodi e di collegamenti), ed in particolare di
reinstradare il traffico in caso di caduta di un collegamento su percorsi alternativi che
permettono di raggiungere la destinazione finale (IP destination).
Una volta popolata la propria tabella di routing, l'instradamento di ogni pacchetto IP pervenuto al
router avviene applicando la regola del Longest prefix match. C'è infatti la possibilità che un router
abbia nella propria tabella di instradamento delle destinazioni appartenenti a una o più rotte
instradate verso percorsi diversi, in questo caso prevale la rotta più specifica, cioè quella con la
subnetmask più lunga.
1.4.4
Indirizzo IP
13
Un Indirizzo IP è un numero che identifica univocamente un dispositivo collegato a una rete
informatica che comunica utilizzando lo standard IP (Internet Protocol).
Concetti generali
Un indirizzo IP può essere visto come l'equivalente di un indirizzo stradale o un numero telefonico
riferito a dispositivi collegati ad una qualsiasi rete telematica. Infatti, così come un indirizzo
stradale o un numero telefonico identificano rispettivamente un edificio o un telefono, un indirizzo
IP identifica univocamente uno specifico computer o dispositivo di rete. Gli indirizzi IP possono
essere assegnati localmente per realizzare una LAN (Local Area Network), come succede con la
numerazione degli interni di un edificio. Ma, al contrario degli indirizzi stradali, gli indirizzi IP
possono mutare il loro valore a seconda di molti fattori (diversa LAN, indirizzamento dinamico) o a
seconda della volontà dell'utente.
Più esattamente l'indirizzo IP viene assegnato a una interfaccia (ad esempio una scheda di rete) che
identifica l'host di rete, che può essere un personal computer, un palmare, un router,
elettrodomestici in generale, ecc. Va considerato, infatti, che un host può contenere più di una
interfaccia: ad esempio, un router ha diverse interfacce (minimo due) e per ognuna occorre un
indirizzo IP.
Gli indirizzi IP pubblici e i range di indirizzi sono rilasciati e regolamentati dall'ICANN tramite una
serie di organizzazioni delegate. Tuttavia è da tener presente che a livello mondiale e nazionale i
primi provider di connessione Internet si sono accaparrati un numero non controllato di indirizzi
IP. Ciò ha portato a prevedere la terminazione degli indirizzi entro pochi anni dall'uscita del
protocollo e, per ovviare a tale disagio, si è proceduto alla ridefinizione della versione 6 del
protocollo IP (attualmente la versione largamente in uso è la 4). Tale versione è basata su indirizzi
a 128 bit anziché a 32 e ciò permetterà l'assegnazione di un numero decisamente maggiore di
indirizzi; si suol dire, a tal proposito, che nel mondo esisteranno più indirizzi IPv6 (IP versione 6)
che molecole nell'universo.[senza fonte] Ma la difficile implementazione a livello globale dell'IPv6 ha
portato all'introduzione di nuovi concetti che hanno rivoluzionato la teoria delle reti. Vanno citati
l'abbandono del concetto di classi di indirizzi IP e l'utilizzo sempre maggiore di indirizzi classless
(privi del concetto di classe), il subnet mask, la riorganizzazione gerarchica degli indirizzi mediante
utilizzo massivo di NAT.
1.4.5
Classi di indirizzi IP
Definizione
Le classi di indirizzi IP sono un modo per caratterizzare lo spazio di indirizzamento IPv4.
14
Il Classful addressing (indirizzamento basato sulla classe) prevedeva che dai primi bit di un
indirizzo si potesse determinare la maschera di rete. Questa scelta, con il crescere dell'utenza di
internet, si è rivelata troppo rigida, ed è stata abbandonata a favore dell'indirizzamento senza classe
(CIDR).
Gli indirizzi IP all'origine erano stati suddivisi in classi
8
16
24
32
--------------------------------------------------------------CLASSE A |0|Ident. rete |
Identificatore di host
---------------------------------------------------------------
|
--------------------------------------------------------------CLASSE B |1|0| Identificatore di rete | Identificatore di host
---------------------------------------------------------------
|
--------------------------------------------------------------CLASSE C |1|1|0|
Identificatore di rete
| Ident. di host |
----------------------------------------------------------------------------------------------------------------------------CLASSE D |1|1|1|0|
Indirizzo multicast
|
----------------------------------------------------------------------------------------------------------------------------CLASSE E |1|1|1|1|
*Usi futuri*
|
---------------------------------------------------------------In questo modo il tipo di classe si può
determinare sulla base dei bit più significativi.
Vediamo come:





classe A: il primo byte rappresenta la rete, gli altri l'host; [0-126].x.x.x. La maschera di rete
è 255.0.0.0, o /8. Questi indirizzi iniziano tutti con un bit a 0.
classe B: i primi due byte rappresentano la rete, gli altri l'host; [128-191].y.x.x (gli y sono
parte dell'indirizzo di rete, gli x dell'indirizzo di host). La maschera di rete è 255.255.0.0, o
/16. Questi indirizzi iniziano con la sequenza 10
classe C: i primi 3 byte rappresentano la rete, gli altri l'host; [192-223].y.y.x. La maschera di
rete è 255.255.255.0, o /24. Questi indirizzi iniziano con la sequenza 110
classe D: riservata agli indirizzi multicast: [224-239].x.x.x. Questi indirizzi cominciano con
la sequenza 1110. Non hanno maschera di rete, essendo tutti e 32 i bit dell'indirizzo utilizzati
per indicare un gruppo, non un singolo host.
classe E: riservata per usi futuri: [240-255].x.x.x. Questi indirizzi cominciano con la
sequenza 11110 e non è definita una maschera di rete.
Esempio: nella classe B gli indirizzi vanno da 10000000 a 10111111 che in decimale corrispondono
da 128 a 191.
15
Secondo le classi è possibile gestire un numero limitato di reti e un numero limitato di host in base
al seguente schema:
Classe
Leading bits Totale Numero di Reti Numero Max di Indirizzi Host
Classe A 0
128
16.777.214
Classe B 10
16.384
65.534
Classe C 110
2.097.152
254
Es. numero reti e host in classe B:
reti: 214 = 16.384
hosts: 216 = 65.536 - (rete, broadcast) = 65.534
Per il calcolo della rete si eleva a 14 in quanto in classe b abbiamo i primi due ottetti che si
riferiscono alla rete, quindi 16 bit, ma considerando che i primi 2 bit sono fissi diventa 14.
La crescita di Internet ha reso questo sistema ridottissimo rispetto alle esigenze per cui si è
introdotto la tecnica del mascheramento.
Sostituzione delle classi
A lungo andare le classi di tipo C si sono rivelate ridotte per le esigenze aziendali e si è dovuto fare
ricorso alla classe B (con 214 indirizzi, quindi quasi 16.000) che venne a sua volta esaurita. Si fece
quindi ricorso a tecniche diverse a partire dal 1993, ad esempio (CIDR).
Altre tabelle
l'intervallo di indirizzi utilizzati da ogni classe sono indicati nello schema successivo mediante
notazione decimale puntata.
Classe
Leading bits Inizio intervallo Fine intervallo
Class A
0
0.0.0.0
127.255.255.255
Class B
10
128.0.0.0
191.255.255.255
Class C
110
192.0.0.0
223.255.255.255
224.0.0.0
239.255.255.255
Class D (multicast) 1110
16
Class E
240.0.0.0
255.255.255.255
Alcuni indirizzi sono riservati per usi speciali (RFC 3330).
Indirizzi
CIDR
Funzione
RFC
Classe
Totale
indirizzi
0.0.0.0 - 0.255.255.255
0.0.0.0/8
Indirizzi zero
RFC
1700
A
16.777.216
10.0.0.0/8
IP privati
RFC
1918
A
16.777.216
127.0.0.0/8
Localhost
Address
Loopback RFC
1700
A
16.777.216
169.254.0.0/16 Zeroconf
RFC
3330
B
65.536
172.16.0.0/12 IP privati
RFC
1918
B
1.048.576
and RFC
3330
C
256
relay RFC
3068
C
256
RFC
1918
C
65.536
Device RFC
2544
C
131.072
10.0.0.0
10.255.255.255
-
127.0.0.0
127.255.255.255
-
169.254.0.0
169.254.255.255
-
172.16.0.0
172.31.255.255
-
192.0.2.0 - 192.0.2.255
192.88.99.0
192.88.99.255
-
192.168.0.0
192.168.255.255
-
198.18.0.0
198.19.255.255
-
224.0.0.0
239.255.255.255
-
240.0.0.0
255.255.255.255
-
192.0.2.0/24
Documentation
Examples
192.88.99.0/24
IPv6 to
Anycast
192.168.0.0/16 IP privati
IPv4
198.18.0.0/15
Network
Benchmark
224.0.0.0/4
Multicast
RFC
3171
D
268.435.456
240.0.0.0/4
Riservato
RFC
1700
E
268.435.456
#
17
1.4.5.1 Host
Si definisce host o end system (terminali) ogni terminale collegato ad Internet. Gli host possono
essere di diverso tipo, ad esempio computer, palmari, dispositivi mobili e così via, fino a includere
web TV, dispositivi domestici e thin client.
L'host è definito in questo modo perché ospita programmi di livello applicativo che sono sia client
(ad esempio browser web, reader di posta elettronica), sia server (ad esempio, web server).
Uno stesso host può agire contemporaneamente da client e da server, in particolare con le
applicazioni peer to peer (esempio Napster, Kazaa, eMule,Direct Connect etc.).
I terminali sono collegati attraverso link di comunicazione.
1.4.5.2 Subnet mask
Nell'architettura delle reti di elaboratori TCP/IP, una subnet mask o maschera di sottorete, è un
numero che distingue quale porzione di un indirizzo ip identifica la (sotto)rete e quale l'host. È
necessaria ad un dispositivo sorgente che vuole comunicare con un secondo dispositivo destinatario
per decidere se spedire direttamente all'indirizzo IP del destinatario o se spedire i pacchetti tramite il
router della propria rete locale.
Viene espressa in due modi: in notazione decimale classless, dove l'indirizzo ip di una (sotto)rete è
seguito da una barra e un numero (/24 rappresenta la subnet mask, 192.168.0.0/24 la subnet)

192.168.0.0/24
in notazione decimale puntata, cioè con un indirizzo di 32 bit scritto sotto forma di 4 numeri
decimali (8 bit ciascuno) separati da un punto, come se fosse un indirizzo ip

255.255.255.0
Dalla prima notazione si deduce subito quanti bit di un indirizzo IP identificano la (sotto)rete, 24, e
quanti l'host, 8. Più precisamente, si assume che i primi 24 bit sono uguali per tutti gli IP dei
dispositivi logicamente presenti nella stessa rete, mentre gli ultimi 8 bit variano, identificando in
maniera univoca ciascun dispositivo.
La seconda notazione è invece quella generalmente usata per configurare l'indirizzo ip di un
computer.
Da notare che entrambe le notazioni sono corrispondenti, e rappresentano la stessa subnet mask: 24
equivale al numero di bit 1 consecutivi presenti nella maschera, dopodiché i rimanenti sono tutti 0;
255.255.255.0 rappresenta un valore binario formato esattamente da ventiquattro bit 1 seguiti da
otto bit 0.
24
-> 11111111.11111111.11111111.00000000
255.255.255.0 -> 11111111.11111111.11111111.00000000
18
Dalla subnet mask si deduce facilmente anche il numero massimo di host presenti nella subnet
considerata: se abbiamo n bit per gli host (8 nel nostro caso), vuol dire che abbiamo circa 2n
possibili valori (256 nel nostro caso)
Più precisamente:
Per determinare il numero massimo di indirizzi utili in una subnet basta contare il numero n di bit 0
a destra della subnet mask, porre n come esponente di 2, e sottrarre a ciò i due indirizzi riservati
(uno indica la sottorete stessa, l'altro è usato per fare broadcast). La formula è dunque: 2n - 2
Usando la notazione decimale classless (es: w.x.y.z/m), è altresì possibile calcolare il numero
massimo di indirizzi utili con la seguente formula: 2(32-m) - 2, del tutto equivalente a quella
precedente. Infatti m indica il numero di bit 1 presenti nella subnet mask, quindi m+n=32
Quando il sistema operativo (più precisamente: il livello IP dello stack TCP/IP) riceve da un
programma la richiesta di inviare un pacchetto IP ad un certo indirizzo IP destinatario, per prima
cosa calcola l'AND logico fra la subnet mask e il proprio indirizzo IP, e lo confronta con l'AND
logico tra la subnet mask e l'indirizzo IP di destinazione. Se il risultato delle operazioni è identico
(cioè i bit che identificano l'id di rete, o net ID, sono identici, mentre variano solo i bit dell'id di
host) allora invierà il pacchetto nella rete locale indirizzandolo con l'indirizzo di rete locale del PC
destinatario (se non conosce tale indirizzo userà il protocollo ARP per trovarlo); se invece il
risultato delle operazioni è differente significa che il computer destinatario non appartiene alla rete
locale, e il pacchetto verrà trasmesso al gateway della rete locale affinché lo instradi verso la rete
remota che contiene il computer destinatario.
?Fra i sistemisti è diventata pratica comune usare le subnet mask per identificare e dimensionare le
reti IP, sezionandole in sottoreti per poterle meglio gestire ed amministrare.?
Una volta determinato quanti bits dedicheremo alla subnet ID e quanti alla host ID, possiamo
designare quale sarà la nostra subnet mask. Iniziamo specificando la default subnet mask in binario
per ogni classe di rete. A partire dallo zero più a sinistra nella maschera possiamo cambiare tutti
quei bits fino al primo 1 che incontriamo a partire da sinistra così come abbiamo deciso di dedicare
alla subnet ID. Possiamo adesso esprimere la subnet mask in base decimale. Nella figura sottostante
mostra come le subnet mask personalizzate possono essere determinate per ognuna delle opzioni di
subnet per una rete di classe C, sia in binario che in decimale.
19
questa figura
è chiaramente sbagliata...
Fino a che ci sono 8 bits per definire l'host ID in una rete di classe C, ci sono sei modi differenti in
cui una rete può essere mascherata. Ognuno corrisponde ad una diferente subnet personalizzata,
quando viene creata cambiando i bits allocati per la subnet ID da 0 a 1
Così come nell'esempio in figura , considerando una rete in classe C ( ex 192.168.45.0 ) Ci sono 8
bits nella host ID di default, che permettono di avere sei differenti opzioni di mascheratura ( non è
possibile utilizzare i bit 7 e 8 per definire la subnet ID ). Supponiamo di utilizzare 3 bits per definire
la subnet ID e lasciare gli altri 5 per l' host ID.
Per determinare la subnet mask , partiamo dalla subnet di default per una rete in classe C :
20
11111111 11111111 11111111 00000000
Cambiamo adesso i primi tre 0 che troviamo a partire da destra in 1 , per ottenre la subnet mask
personalizzata:
11111111 11111111 11111111 11100000
in formato decimale viene tradotta così 255.255.255.224
1.4.5.3 Precisazioni
L'indirizzo di subnet è l'indirizzo di una intera subnet (192.168.0.0/16)
La subnet è una collezione di indirizzi ip (192.168.0.1, 192.168.0.2, ...) rappresentata da un
indirizzo di subnet
La subnet mask è un numero, che denota quale parte di un indirizzo ip identifica la (sotto)rete e
quale l'host
Considerato che stiamo parlando del livello ip, è più appropriato usare il termine router piuttosto
che gateway
1.4.5.4 Un esempio pratico
Supponiamo che il protocollo IP del nostro computer sia configurato come segue:


indirizzo IP: 192.168.32.97
subnet mask: 255.255.255.224
e che richiediamo di connetterci all'indirizzo IP 192.168.32.130
prima di tutto trasformiamo in notazione binaria gli indirizzi IP e la subnet mask:
192.168.032.097 = 11000000.10101000.00100000.01100001
192.168.032.130 = 11000000.10101000.00100000.10000010
255.255.255.224 = 11111111.11111111.11111111.11100000
allora il livello IP calcolerà:
11000000.10101000.00100000.01100001 AND
(192.168.032.097)
11111111.11111111.11111111.11100000 =
(255.255.255.224)
------------------------------------11000000.10101000.00100000.01100000
(192.168.032.096)
Ora ripetiamo l'operazione con l'IP di destinazione:
21
11000000.10101000.00100000.10000010 AND
(192.168.032.130)
11111111.11111111.11111111.11100000 =
(255.255.255.224)
------------------------------------11000000.10101000.00100000.10000000
(192.168.032.128)
I risultati 192.168.32.96 e 192.168.32.128 indicano due sottoreti differenti, e quindi le macchine
appartengono a sottoreti differenti.
Notiamo che con una subnet mask 255.255.255.224 è possibile avere un range di 30 indirizzi utili
per subnet, in quanto 2(32-27) - 2 = 25 - 2 = 30.
L'indirizzo 192.168.32.97 appartiene al range tra 192.168.32.96 e 192.168.32.127
L'indirizzo 192.168.32.130 appartiene al range tra 192.168.32.128 e 192.168.32.159
Se l'IP destinazione fosse stato 192.168.32.100, i due indirizzi avrebbero indicato macchine
appartenenti alla medesima sottorete:
11000000.10101000.00100000.01100100 AND
(192.168.032.100)
11111111.11111111.11111111.11100000 =
(255.255.255.224)
------------------------------------11000000.10101000.00100000.01100000
(192.168.032.096)
ESEMPIO: come trovare la subnet mask della subnet 61.161.16.224/27
27 rappresenta il numero di bit 1 più significativi della subnet mask
32-27 = 5 rappresenta il numero di bit 0 meno significativi della subnet mask
quindi:
11111111.11111111.11111111.11100000 = 255.255.255.224
Si noti che la subnet mask è un numero, mentre la subnet rappresenta un insieme di indirizzi IP. È
quindi possibile, e del tutto normale, che subnet differenti (es 192.168.0.0/16, 132.144.0.0/16)
abbiano la stessa subnet mask (in questo caso: 255.255.0.0)
1.4.5.5 Subnet mask
Gli ID di rete e gli ID host all'interno di un indirizzo IP vengono differenziati utilizzando una subnet
mask. Ogni subnet mask è un numero a 32 bit che utilizza gruppi consecutivi di bit con valore 1 per
identificare le porzioni dell'ID di rete e con valore 0 per identificare le porzioni dell'ID host di un
indirizzo IP.
22
Ad esempio, la subnet mask normalmente utilizzata con l'indirizzo IP 131.107.16.200 è il seguente
numero binario a 32 bit:
11111111 11111111 00000000 00000000
Il numero di questa subnet mask è costituito da sedici bit 1 seguiti da sedici bit 0, ad indicare che le
sezioni dell'ID di rete e dell'ID host di questo indirizzo IP hanno entrambe una lunghezza di 16 bit.
In genere questa subnet mask viene visualizzata in formato decimale separato da punti, ovvero
255.255.0.0.
La tabella che segue mostra le subnet mask per le varie classi di indirizzi Internet.
Classe di indirizzo
Bit per subnet mask
Subnet mask
Classe A
11111111 00000000 00000000 00000000
255.0.0.0
Classe B
11111111 11111111 00000000 00000000
255.255.0.0
Classe C
11111111 11111111 11111111 00000000
255.255.255.0
In genere i valori predefiniti per la subnet mask (come mostrato nella tabella precedente) sono
validi per la maggior parte delle reti che non presentano requisiti speciali e in cui ogni segmento di
rete IP corrisponde a una singola rete fisica.
In alcuni casi è possibile utilizzare subnet mask personalizzate per implementare il subnetting IP. Il
subnetting IP consente di suddividere la porzione dell'ID host predefinito di un indirizzo IP per
specificare le subnet, che costituiscono suddivisioni dell'ID di rete originale basato sulla classe.
Con la personalizzazione della lunghezza della subnet mask è possibile ridurre il numero di bit
utilizzati per l'ID host effettivo. Per ulteriori informazioni sull'utilizzo di una subnet mask
personalizzata per la creazione di subnet nella rete, vedere Resource Kit.
1.4.6
Network address translation
Nel campo delle reti telematiche, il network address translation o NAT, ovvero traduzione degli
indirizzi di rete, conosciuto anche come network masquerading, native address translation, è
una tecnica che consiste nel modificare gli indirizzi IP dei pacchetti in transito su un sistema che
agisce da router.
Sono molto note anche alcune tipologie specifiche di NAT, come l'IP masquerading e il port
forwarding.
23
1.4.6.1 Tipi di NAT
Il NAT è spesso implementato dai router e dai firewall.
Si può distinguere tra source NAT (SNAT) e destination NAT (DNAT), a seconda che venga
modificato l'indirizzo sorgente o l'indirizzo destinazione del pacchetto che inizia una nuova
connessione.
I pacchetti che viaggiano in senso opposto verranno modificati in modo corrispondente, in modo da
dare ad almeno uno dei due computer che stanno comunicando l'illusione di parlare con un indirizzo
IP diverso da quello effettivamente utilizzato dalla controparte.
Per implementare il NAT, un router ha quindi bisogno di effettuare il tracciamento delle
connessioni, ovvero di tenere traccia di tutte le connessioni che lo attraversano. Per "connessione"
in questo contesto si intende un flusso bidirezionale di pacchetti tra due host, identificati da
particolari caratteristiche a livelli superiori a quello di rete (IP):



1.5
nel caso di TCP è una connessione TCP in senso proprio, caratterizzata da una coppia di
porte
nel caso di UDP, per quanto UDP sia un protocollo di trasporto senza connessione, viene
considerata connessione uno scambio di pacchetti UDP tra due host che usi la stessa coppia
di numeri di porta.
altri protocolli vengono gestiti in modo analogo, usando caratteristiche del pacchetto a livelli
superiori ad IP per identificare i pacchetti che appartengono ad una stessa connessione.
Livello 4: Trasporto
Questo livello, come ogni altro livello, comunica con l'entità di pari livello (peer). In questo layer si
studiano fondamentalmente due protocolli, il TCP (connection-oriented, end to end) e UDP
(connectionless). Provvede all'affidabilità, al trasporto effettivo dei dati da una macchina sorgente a
quella di destinazione. I livelli sottostanti sono completamente trasparenti. È compito del Livello di
rete nascondere al Livello Transport la quantità delle reti attraversate, le diversità delle reti
(Ethernet, Token Ring, ecc.) e la topologia. Poiché l'utente non ha controllo sul subnet (router e
linee di comunicazione), con questo livello si migliora la qualità del servizio.
• Entità trasporto: hardware o software che permette al Transport Layer di operare. Come software,
può situarsi nel kernel, in un processo utente separato, in una libreria di applicazioni di rete. Se una
24
connessione è stata terminata inaspettatamente durante una trasmissione dati, l'entità trasporto può
ristabilire una nuova connessione di rete con quella remota, richiedendo quali dati sono arrivati e
quali no. Le primitive del Livello Trasporto sono indipendenti da quelle del Livello di rete. Se
questi due layer avessero le stesse primitive e le reti fossero prive di errore, il Livello Trasporto
potrebbe anche non esserci; tale livello ha la funzione di isolare i livelli più alti (definiti come
transport service user) dalle imperfezioni di sottorete (livelli più bassi - transport service provider).
Questo livello si colloca in una posizione chiave perché forma lo strato di confine tra il fornitore e
l'utente. A livello TCP per individuare eventuali errori nei segmenti ricevuti è sufficiente controllare
nell'header del TCP il campo checksum. L'algoritmi di checksum consiste nel sommare tutti i dati in
half word (16 bit) e quindi calcolare il complemento a 1 della somma. Se il risultato è diverso dal
checksum riportato dal TCP il pacchetto verrà scartato.
Parametri per la qualità di servizio nel Transport Layer :


connection estabilishment delay – tempo trascorso tra la richiesta e la conferma della
connessione per l'utente del servizio di trasporto.
connection estabilishment failure probability – indica la possibilità di non connessione con
il massimo ritardo del tempo di connessione (dovuto p.e. alla congestione di rete).
Di seguito vengono riportati i servizi che vengono, in genere, offerti dal livello di trasporto; è bene
ricordare che nessuno di tali servizi è obbligatorio. Di conseguenza, per ciascuna applicazione è
possibile scegliere il protocollo più adatto allo scopo.







Servizio orientato alla connessione. In genere il livello rete non stabilisce una connessione
persistente verso l'host di destinazione. Il livello di trasporto si incarica, quindi, di realizzare una
connessione persistente che viene poi chiusa quando non è più necessaria.
Corretto ordine di consegna. Poiché i pacchetti possono seguire percorsi diversi all'interno della
rete, non c'è alcuna garanzia che i dati vengano recapitati nello stesso ordine in cui sono stati
inviati. Il livello di trasporto verifica che i pacchetti vengano riordinati nella giusta sequenza in
ricezione prima di passarli al livello superiore.
Trasferimento affidabile. Il protocollo si occupa di garantire che tutti i dati inviati vengano ricevuti;
nel caso il servizio di rete utilizzato perda pacchetti, il protocollo di trasporto si occupa di
ritrasmetterli.
Controllo di flusso. Se gli host coinvolti nella comunicazione hanno prestazioni molto differenti può
capitare che un pc più veloce "inondi" di dati uno più lento. Mediante il controllo di flusso, un host
in "difficoltà" può chiedere di abbassare il tasso di trasmissione in modo da poter gestire le
informazioni in ingresso.
Controllo di Congestione: il protocollo riconosce uno stato di congestione della rete, e adatta di
conseguenza la velocità di trasmissione.
Orientamento al Byte. Invece che gestire i dati in base ai pacchetti, viene fornita la possibilità di
vedere la comunicazione come uno stream di byte, in modo da semplificarne l'utilizzo.
Multiplazione. Il protocollo permette di stabilire diverse connessioni contemporanee tra gli stessi
due host, tipicamente utilizzando l'astrazione delle porte. Nell'uso comune, diversi servizi utilizzano
porte diverse.
25
Nello stack protocollare Internet, i protocolli di trasporto più utilizzati sono TCP e UDP. TCP è il
più complicato fra i due e fornisce un servizio end-to-end orientato alla connessione e al byte, con
verifica del corretto ordine di consegna, controllo di errore e di flusso. Il nome è un acronimo per
Transmission Control Protocol. UDP, invece, è un protocollo più snello e fornisce un servizio a
datagrammi, senza connessione, con un meccanismo di riduzione degli errori e con porte multiple.
Il nome è un acronimo per User Datagram Protocol.
1.6
Livello 5: Sessione
Il livello di sessione offre i servizi che consentono ad utenti operanti su macchine differenti di
colloquiare tra loro attraverso la rete di comunicazione. Si trova al quinto livello della scala
gerarchica del Modello ISO/OSI. In particolare, in questo livello vengono definite le regole per
aprire e chiudere una connessione logica (Protocolli di connessione) e quelli necessari per il
trasferimento dei dati (Protocolli di comunicazione).
In pratica, quando lo strato superiore richiede l'apertura di un collegamento con un destinatario
remoto, lo strato di sessione aprirà una connessione logica tra il nodo e la rete, utilizzando il
corrispondente protocollo per definire la tipologia del collegamento (half o full-duplex).
In seguito, durante la fase di colloquio, sarà ancora lo strato di sessione che, in base al protocollo di
comunicazione, gestirà il controllo del dialogo in modo che la trasmissione sia cadenzata da punti di
sincronizzazione intermedi, da ciascun dei quali sia possibile far nuovamente partire la fase di
trasferimento dei dati, in caso di errore.
1.7
Livello 6: Presentazione
Il Livello di presentazione è il sesto livello del modello ISO/OSI. Ha come obiettivo quello di
trasformare i dati forniti dal Livello applicazioni in un formato standard e offrire servizi di
comunicazione comuni, quali la crittografia, la compressione del testo e la riformattazione. Il livello
di presentazione consente la gestione della sintassi e della semantica delle informazioni trasmesse,
diversamente dagli altri livelli che gestiscono una sequenza di bit. Sono previste tre diverse
tipologie di sintassi:

astratta (definizione formale dei dati che gli applicativi si scambiano)

concreta locale (come i dati sono rappresentati localmente)

di trasferimento (come i dati sono codificati durante il trasferimento)
26
1.8
Livello 7: Applicazione
Il livello applicazioni è il settimo ed ultimo livello del modello OSI. La sua funzione è quella di
interfacciare e fornire servizi per i processi delle applicazioni; inoltra anche le richieste al livello di
presentazione. Un programma applicativo interagisce con uno dei protocolli di livello trasporto per
ricevere dati o inviarli passandoli nella forma richiesta.
Tra i servizi più comuni offerti dal livello applicazioni ci sono le conversioni semantiche tra
processi applicativi associati. Nota: esempi di servizi usuali sono i file virtuali ed il virtual terminal.
Esempi



















1.8.1
DNS
HTTP
SMTP
SNMP
FTP
Network Time Protocol (NTP)
Telnet
Secure shell (SSH)
IRC
Lightweight Directory Access Protocol (LDAP)
XMPP
FTAM
Advanced Program to Program Communications (APPC)
X.400
X.500
AFP
SIP
ITMS
AIM
Domain Name System
Il DNS è un servizio di directory utilizzato per la risoluzione dei nomi dei server da indirizzi logici
e testuali (URL) in indirizzi IP. Questa funzione è essenziale per l'usabilità di Internet, visto che gli
esseri umani hanno più facilità a ricordare nomi testuali, mentre i dispositivi di instradamento
(interfacce di rete e router di livello 2 e superiore) lavorano su indirizzi binari. Permette inoltre ad
una qualsiasi entità di cambiare o riassegnare il proprio indirizzo IP, senza dover notificare tale
cambiamento a nessuno, tranne che al proprio server DNS di riferimento.
27
Un'altra delle peculiarità del DNS è quella di consentire, ad esempio ad un sito web, di essere
ospitato su più server (ognuno con il proprio indirizzo IP), con una conseguente divisione del carico
di lavoro.
1.8.2
Indirizzamento IP statico e dinamico
Gli indirizzi IP possono essere assegnati in maniera permanente (per esempio un server che si trova
sempre allo stesso indirizzo) oppure in maniera temporanea, da un intervallo di indirizzi disponibili.
1.8.3
Indirizzi dinamici
Gli indirizzi dinamici vengono utilizzati per identificare dispositivi non permanenti in una LAN. Un
server DHCP presente nella LAN assegna dinamicamente e automaticamente l'indirizzo
scegliendolo casualmente da un range preimpostato. Si può scegliere l'intervallo di indirizzi a
seconda del numero delle utenze della rete impostando la netmask, ossia dicendo al server DHCP
quanti bit dell'indirizzo sono assegnabili dinamicamente a ogni singolo client che fa accesso. Per
esempio, se la netmask ha valore 255.255.255.0 (dove ogni blocco separato da puntini denota un
gruppo di 8 bit) solo gli ultimi 8 bit sono assegnabili agli host. Gli Internet Service Provider (ISP),
per esempio, utilizzano un numero di indirizzi assegnabili ristretto per una vasta clientela facendo
leva sul concetto che non tutti i client saranno connessi nello stesso momento. Questo sistema viene
utilizzato soprattutto per gli accessi dial-up, Wi-fi o in qualsiasi altro accesso temporaneo
permettendo, per esempio a un portatile, di connettersi a un'ampia varietà di servizi senza la
necessità di dover conoscere i dettagli di indirizzamento di ogni rete.
1.8.4
Indirizzi
Gli indirizzi statici vengono utilizzati per identificare dispositivi semi-permanenti con indirizzo IP
permanente. I Server utilizzano tipicamente questo metodo di indirizzamento. L'indirizzo statico
può essere configurato direttamente sul dispositivo, oppure come parte di una configurazione
DHCP che associa all'Indirizzo MAC il corrispondente indirizzo IP statico.
Versioni
Oggigiorno sono presenti due tipi di indirizzo IP che si basano dai protocolli IPv4 e IPv6. La
versione attualmente in uso è la v4 poiché la v6 presenta non indifferenti problemi di attuazione
IPv4
L'indirizzo IPv4 è costituito da 32 bit (4 byte). Viene scritto con 4 numeri decimali che
rappresentano 1 byte ciascuno (quindi ogni numero varia tra 0 e 255) separati dal simbolo "punto".
Un esempio di indirizzo IPv4 è 195.24.65.215.
IPv6
L'indirizzo IPv6 è costituito da 128 bit (16 byte), viene descritto da 8 gruppi di 4 numeri
esadecimali che rappresentano 2 byte ciascuno (quindi ogni numero varia tra 0 e 65535) separati dal
simbolo "due punti". Un esempio di indirizzo IPv6 è 2001:0DB8:0000:0000:0000:0000:0000:0001,
che può essere abbreviato in 2001:DB8::1 (i due punti doppi stanno a sostituire la parte
28
dell'indirizzo che è composta di soli zeri consecutivi. Si può usare una sola volta, per cui se un
indirizzo ha due parti composte di zeri la più breve andrà scritta per esteso).
I dispositivi connessi ad una rete IPv6 ottengono un indirizzi di tipo unicast globale vale a dire che i
primi 48 bit del suo indirizzo sono assegnati alla rete a cui esso si connette, i successivi 16 bit
identificano le varie sottoreti a cui l'host è connesso. Gli ultimi 64 bit sono ottenuti dall'indirizzo
MAC dell'interfaccia fisica. Per una descrizione più dettagliata consultare IPv6
Formato dell'indirizzo IPv6
La raccolta dei dati
Attraverso gli indirizzi IP è possibile arrivare alle generalità degli utenti, sia pure con le incertezze
date dai limiti di una non completa corrispondenza biunivoca. Un soggetto che riteneva violato il
proprio diritto d'autore aveva inviato diffide ai titolari degli IP. Il tribunale di Roma ha ritenuto che
tale prassi violava la tutela della privacy che è norma di rango superiore.
29
2 Comandi
2.1 ipconfig
Il comando ipconfig permette di conoscere il proprio indirizzo IP, quello del SUBNET MASK e del
GATEWAY.
2.2
ping
Il Ping è un programma disponibile sui principali sistemi operativi che misura il tempo, espresso in
millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un altro computer o server in
rete (sia essa Internet o LAN) ed a ritornare indietro all'origine. È prettamente utilizzato per
verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le
latenze di trasmissione di rete.
2.3
tracert
Si definisce tracert un'applicazione, scritta in qualunque linguaggio, che si occupa di ricavare il
percorso seguito dai pacchetti sulle reti informatiche, ovvero l'indirizzo IP di ogni router
attraversato per raggiungere il destinatario.
30