Indirizzo IP

Document Sample
Indirizzo IP Powered By Docstoc
					          prof. S. Masetta                  Programma di Sistemi
                                                Classi quinte
          Agg. 13/01/2010                               Sistemi
      www.sezioneb.com



                                              SOMMARIO

1     Indirizzo IP ________________________________________________________________________ 3

    1.1       Concetti generali _______________________________________________________________ 3

    1.2       Visualizzare gli indirizzi IP ________________________________________________________ 3

2     Domain Name System _______________________________________________________________ 4

    2.1       Indirizzamento IP statico e dinamico _______________________________________________ 4

    2.2       Indirizzi dinamici _______________________________________________________________ 4

    2.3       Indirizzi ______________________________________________________________________ 4

    Versioni ____________________________________________________________________________ 4

      IPv4 ______________________________________________________________________________ 5

      IPv6 ______________________________________________________________________________ 5

3     Classi di indirizzi IP __________________________________________________________________ 6

    3.1       Host _________________________________________________________________________ 9

    3.2       Subnet mask __________________________________________________________________ 9

    3.3       Precisazioni __________________________________________________________________ 12

    3.4       Un esempio pratico ____________________________________________________________ 12

    3.5       Subnet mask _________________________________________________________________ 13

4     Network address translation _________________________________________________________ 14

    4.1       Tipi di NAT ___________________________________________________________________ 14

5     PILA ISO OSI ______________________________________________________________________ 15
    5.1       Livello Fisico _________________________________________________________________ 16

      5.1.1     Mezzi trasmissivi ____________________________________________________________ 17

      5.1.2     Caratteristiche dei mezzi trasmissivi ____________________________________________ 17

    5.2       Livello datalink _______________________________________________________________ 18

      5.2.1     Framing ___________________________________________________________________ 18

      5.2.2     Controllo degli Errori ________________________________________________________ 18

      5.2.3     Controllo di Flusso __________________________________________________________ 19

      5.2.4     Sottolivello MAC [modifica] ___________________________________________________ 20

    5.3       Livello di rete _________________________________________________________________ 20

      5.3.1     Funzioni del livello di rete _____________________________________________________ 20

      5.3.2     Livello rete in IP ____________________________________________________________ 21

      5.3.3     Instradamento _____________________________________________________________ 21

          5.3.3.1   Commutazione di Pacchetto ______________________________________________ 22

          5.3.3.2   switching _____________________________________________________________ 22

          5.3.3.3   routing _______________________________________________________________ 22

    5.4       Livello Trasporto ______________________________________________________________ 23

    5.5       Livello Sessione _______________________________________________________________ 24

    5.6       Livello Presentazione __________________________________________________________ 25

    5.7       LivelloApplicazione ____________________________________________________________ 25

6     Comandi _________________________________________________________________________ 27

    6.1       ipconfig _____________________________________________________________________ 27

    6.2       ping ________________________________________________________________________ 27

    6.3       tracert ______________________________________________________________________ 27
1     Indirizzo IP



Un Indirizzo IP è un numero che identifica univocamente un dispositivo collegato a una rete
informatica che comunica utlizzando lo standard IP (Internet Protocol).



1.1    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.2    Visualizzare gli indirizzi IP

Per conoscere il proprio indirizzo IP, subnet mask e gateway nei sistemi basati su Linux
(Ubuntu,Debian,Fedora etc) è sufficiente aprire una shell e digitare il comando ifconfig.

Nei sistemi operativi Microsoft Windows, il comando ipconfig non è sempre installato. Per
installarlo si deve eseguire un doppio click sul file suptools.msi nella cartella \Support\Tools nel CD
di installazione.
Poi da Prompt dei comandi si può avere le informazioni desiderate col comando ipconfig.

Chi naviga utilizzando un router, usando tale comando visualizzerà le informazioni relative alla
propria rete privata. Le infomazioni riguardo all'IP pubblico assegnato al router sono disponibili
nella configurazione dello stesso oppure è possibile visualizzarlo tramite un sito apposito.



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

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.

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

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

2.3    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
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.
3    Classi di indirizzi IP

Definizione

Le classi di indirizzi IP sono un modo per caratterizzare lo spazio di indirizzamento IPv4.

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.

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

Class D (multicast) 1110              224.0.0.0             239.255.255.255

Class E                               240.0.0.0             255.255.255.255


Alcuni indirizzi sono riservati per usi speciali (RFC 3330).


                                                                                           Totale        #
Indirizzi                     CIDR             Funzione                   RFC     Classe
                                                                                           indirizzi

                                                                          RFC
0.0.0.0 - 0.255.255.255       0.0.0.0/8        Indirizzi zero                     A        16.777.216
                                                                          1700

10.0.0.0                  -                                               RFC
                              10.0.0.0/8       IP privati                         A        16.777.216
10.255.255.255                                                            1918

127.0.0.0                 -                    Localhost        Loopback RFC
                              127.0.0.0/8                                         A        16.777.216
127.255.255.255                                Address                   1700

169.254.0.0               -                                               RFC
                              169.254.0.0/16 Zeroconf                             B        65.536
169.254.255.255                                                           3330

172.16.0.0                -                                               RFC
                              172.16.0.0/12 IP privati                            B        1.048.576
172.31.255.255                                                            1918

                                               Documentation          and RFC
192.0.2.0 - 192.0.2.255       192.0.2.0/24                                        C        256
                                               Examples                   3330

192.88.99.0               -                    IPv6 to       IPv4    relay RFC
                              192.88.99.0/24                                      C        256
192.88.99.255                                  Anycast                     3068

192.168.0.0               -                                               RFC
                              192.168.0.0/16 IP privati                           C        65.536
192.168.255.255                                                           1918

198.18.0.0                -                    Network              Device RFC
                              198.18.0.0/15                                       C        131.072
198.19.255.255                                 Benchmark                   2544

224.0.0.0                 -                                               RFC
                              224.0.0.0/4      Multicast                          D        268.435.456
239.255.255.255                                                           3171

240.0.0.0                 -                                               RFC
                              240.0.0.0/4      Riservato                          E        268.435.456
255.255.255.255                                                           1700
3.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.

3.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
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.
                                                                                           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 :

 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



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

3.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:

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)



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

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.

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

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

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

5   PILA ISO OSI

Il modello ISO/OSI è costituito da una pila di protocolli attraverso i quali viene ridotta la
complessità implementativa di un sistema di comunicazione per il networking. In particolare
ISO/OSI è costituito da strati (o livelli), i cosiddetti layer, che racchiudono uno o più aspetti fra loro
correlati della comunicazione fra due nodi di una rete. I layers sono in totale 7 e vanno dal livello
fisico (quello del mezzo fisico, ossia del cavo o delle onde radio) fino al livello delle applicazioni,
attraverso cui si realizza la comunicazione di alto livello. Ogni layer individua un protocollo di
comunicazione del livello medesimo. ISO/OSI realizza una comunicazione per livelli, ovvero, dati
due nodi A e B, il livello n del nodo A può scambiare informazioni col livello n del nodo B ma non
con gli altri.

Livello 1 (fisico): si occupa di controllare la rete, gli hardware che la compongono e i dispositivi
che permettono la connessione;

Livello 2 (datalink): si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i
dati in un pacchetto provvisto di header (intestazione) e tail (coda), usati anche per sequenze di
controllo;

Livello 3 (rete): si occupa di stabilire, mantenere e terminare una connessione, garantendo il
corretto e ottimale funzionamento della sottorete di comunicazione. È responsabile di:

       routing: scelta ottimale del percorso da utilizzare per garantire la consegna delle
        informazioni
       gestione della congestione: evitare che troppi pacchetti arrivino allo stesso router
        contemporaneamente
       indirizzamento

Livello 4 (trasporto): A differenza dei livelli precedenti, che si occupano di connessioni tra nodi
contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello di
arrivo. Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in
pacchetti, detti “segmenti” e trasmetterli in modo efficiente ed affidabile usando il livello rete ed
isolando da questo i livelli superiori;

Livello 5 (sessione): consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più
avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione del token (per effettuare
mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di
dati da ritrasmettere in caso di gravi malfunzionamenti). Si occupa anche di inserire dei punti di
controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende
dall'ultimo punto di controllo andato a buon fine;

Livello 6 (presentazione): Esso consente di gestire la sintassi dell'informazione da trasferire. E sono
previste tre diverse 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).

Livello 7 (applicazione): Fornisce un insieme di protocolli che operano a stretto contatto con le
applicazioni. È errato identificare un'applicazione utente come parte del livello applicazione. I
protocolli delle applicazioni tipiche di questo livello realizzano operazioni come:

          Trasferimento di file
          Terminale virtuale
          Posta elettronica

5.1       Livello Fisico

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.




5.1.1   Mezzi trasmissivi

I mezzi trasmissivi utilizzati per la realizzazione di un canale in una rete vengono solitamente
suddivisi in tre categorie, a seconda del fenomeno fisico utilizzato per trasmettere i bit:

       mezzi elettrici: per la trasmissione utilizzano la proprietà dei metalli di condurre l'energia
        elettrica (come doppini telefonici, cavi coassiali);
       mezzi ottici: per la trasmissione utilizzano la luce (come le fibre ottiche multimodale o
        monomodale o la trasmissione in aria via laser);
       mezzi wireless ("senza filo"): per la trasmissione utilizzano le onde elettromagnetiche (come
        le trasmissioni radio a microonde e le trasmissioni radio via satellite). In questo caso il
        mezzo trasmissivo può essere considerato lo spazio "vuoto" tra mittente e destinatario.

5.1.2   Caratteristiche dei mezzi trasmissivi

Caratteristiche basilari di un mezzo trasmissivo sono:

       la riduzione della potenza del segnale al crescere della distanza percorsa (o attenuazione);
       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.

Voci correlate

       Doppino
       Fibra ottica
       Cavo coassiale
       Codifica Manchester
       Codifica 4B/5B
       Cavi elettrici
       WiFi
5.2       Livello datalink

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:

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



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

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

5.2.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 data-
link del sistema ricevente. Se il risultato è diverso da quello contenuto nel pacchetto, il livello data-
link 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).

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

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

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

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




5.3       Livello di 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.

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

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

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

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

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.

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



5.4       Livello 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
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.

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.




5.5       Livello 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.



5.6       Livello 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)



5.7       LivelloApplicazione



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

          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
6 Comandi
6.1 ipconfig

Il comando ipconfig permette di conoscere il proprio indirizzo IP, quello del SUBNET MASK e del
GATEWAY.

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



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

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:27
posted:7/31/2011
language:Italian
pages:27