Secondo Articolo
TCP/IP, protocolli ed altri misteri
Parte 2
IP : Internetwork Protocol
Nella prima parte abbiamo visto cosa sono le reti e come
funzionano dentro, quali sono i vantaggi e gli svantaggi dei
vari tipi di instradamento, ed abbiamo concluso constatando
l'inadeguatezza delle varie politiche di routing alla
costruzione di reti di grandi dimensioni.
In questa puntata perleremo di come sia possibile costruire reti
gerarchiche con i mezzi che gi abbiamo a disposizione e quali
problemi e caratteristiche possiamo aspettarci.
Ma perch al mondo ci sono cos tanti tipi di reti ? Perch non
ci si mette d'accordo su una struttura unica in modo che tutti
possano collegarsi con tutti ?
Una rete unica non ha senso perche le esigenze degli utenti sono
molto diverse fra di loro: ci sono reti distribuite su grandi
territori e reti che si estendono ad un solo edificio: ci sono
reti che una volta installate non cambiano pi ed altre in cui
avvengono continui cambiamenti giornalieri: ci sono reti i cui
utenti sono fissi ed altre in cui gli utenti sono mezzi
mobili...e cos via. Senza parlare poi dei tipi di dati e della
quantit che le varie reti devono scambiare.
Tutto questo spiega perch il mondo della trasmissione dati sia,
per forza di cose, formato da reti decisamente eterogenee.
Rimane comunque sentita da tutti l'esigenza di poter scambiare
dati con tutti gli altri. Proprio per dare una risposta a
questa esigenga stringente, abbandonato ogni velleitarismo di
unificazione, all'inizio degli anni 80 nata una tecnica per
collegare fra di loro le varie reti che si erano formate in
precedenza. Tale tecnica si chiama INTERNETWORKING. Dagli
studi su questa tecnica nato l'insieme di protocolli che vanno
sotto il nome di TCP/IP.
Abbiamo gi pi volte accennato all'IP, che uno dei tanti
protocolli che compongono il TCP/IP, come se si trattasse di uno
dei tanti tipi di rete esistente.
In realt l'IP non una rete !
Ŀ
L' IP una RETE di RETI
L'idea che l'IP realizza molto semplice:
Visto che non si riesce ad uniformare le varie reti cerchiamo di
usare ognuna per quello che , un mezzo per trasferire dati da
un punto ad un altro ed affiadiamo a macchine specializzate ( i
gateway) l'incarico di armonizzare le particolarit di una rete
con quelle di un'altra. (fig. 1.2)
La rete IP una rete "LOGICA", tutta fatta in software, che si
appoggia alle varie reti fisiche per l'effettivo trasporto dei
dati.
In una tale ottica ogni rete vista come un canale
trasmissivo... un pezzo di filo... che collega due gateway fra
di loro.
(Fig 2.2)
Poi, all'interno di ogni gateway ci saranno degli appositi
programmi che decidono come instradare i messaggi da un gateway
all'altro. I gateway sono i nodi di questa macrorete.
Vediamo ora che tipo di rete viene fuori dall'unione di tante
reti diverse per principi di funzionamento, velocit e modi di
indirizzamento
Il servizio Internet consiste in una rete a commutazione di
pacchetto inaffidabile e senza connessione.
Detto cos suona un p male, ma, a ben guardare, non poi cosi
brutto.
La rete INAFFIDABILE perch la consegna dei pacchetti al
destinatario non garantita. La rete non realizza
"connessioni" in quanto non esistono Virtual Channels. Quindi
siamo in presenza di una rete DATAGRAM. Ecco qualcosa che ci
gi familiare !
Ricordate che nella prima parte avevamo visto che per le reti
Datagram i pacchetti possono essere persi o duplicati o,
addirittura, arrivare al destinatario fuori ordine. Ogni
pacchetto viaggia da solo attraverso la rete e non ha alcuna
relazione coi pacchetti che lo hanno preceduto. La rete non
conserva memoria dei pacchetti passati, n si accorge di
eventuali pacchetti persi o duplicati. Tale rete si limita a
fare il "miglior sforzo possibile" per consegnare i dati al
destinatario, ma se qualcosa va storto...bh...non sono affari
suoi,...lei il massimo lo ha fatto.
E' ovvio che ci sar un'altra entit a livello superiore che si
dovr accorgere dei datagram persi o fuori sequenza, e questa
entit di trasporto end-to-end il TCP, ma di questo parleremo
nelle prossime puntate.
I pacchetti per la rete IP si chiamano "Datagram" quindi d'ora
in poi diremo che la rete IP trasporta i datagram dal mittente
al destinatario instradando ogni datagram da un gateway
all'altro.
Le regole che descrivono il funzionamento dell'IP, cio il
protocollo, specificano con precisione il formato dei datagram,
come questi debbano essere trattati da ogni gateway e come
debbano essere gestiti eventuali errori.
Dicevamo che il programma che in ogni gateway realizza le
funzioni IP dovr, di volta in volta, adattarsi alle reti a cui
connesso. Uno degli aspetti che saltano immediatamente
all'attenzione che reti diverse trasportano pacchetti di
lunghezza e formato anche molto diversi fra loro. Per esempio
una rete NETROM trasporta al massimo pacchetti da 256 caratteri
mentre una rete LAN (loacal area network su cavo coassiale )
puo' trasmettere pacchetti da 1526 caratteri al massimo. Ecco
che il concetto di "Datagram" si separa da quello di
"Pacchetto".
Per l'IP il "Datagram" la sua unit minima di messaggio. Per
poter spingere un datagram su reti che accettano messaggi pi
corti occorre spezzare il singolo datagram in segmenti pi
piccoli ed ognuno di questi verr trasportato dai pacchetti
della rete che abbiamo sotto mano. All'arrivo al gateway
successivo i vari pacchetti dovranno essere raccolti per
ricostruire il datagram originale.
Un altro problema che l'IP deve risolvere quello
dell'indirizzamento. Di indirizzamento non ne abbiamo ancora
parlato, ma come la rete telefonica usa i numeri che si trovano
sull'elenco telefonico come indirizzi di rete immediato che
ogni rete abbia la sua tecnica di "numerazione" per individuare
in modo univoco ugni utente.
Le varie reti esistenti usano tecniche molto diverse di
numerazione, per esempio la rete ETHERNET, che una LAN su cavo
coassiale, utilizza indirizzi composti da 48 bit, mentre la rete
NETROM utlizza i nominativi dei nodi pi i nominativi degli OM
come indirizzi di rete. Ogni rete ha sviluppato dei modi di
individuare gli utenti che possono essere numeri di vario
formato o nomi simbolici.
Capite che razza di problema sia mappare gli indirizzi da una
rete ad un'altra !
Ogni utente della rete IP ha un suo indirizzo "logico" di rete
che in questo caso un numero formato da 4 byte ed avr anche
un indirizzo "fisico" della rete a cui effettivamente
attaccato. Sar compito appunto del protocollo mappare i due
tipi di indirizzo tramite opportune tabelle.
L'indirizzo di rete IP lo si rappresenta con 4 numeri decimali:
44.134.1.2 l'indirizzo di IK1CHE
...un indirizzo molto noto ai cultori del TCP/IP.
E qu emerge uno dei pi gravi errori fatti dai progettisti
dell'IP ! con 4 byte non si possono poi fare tanti indirizzi !
ma a quei tempi (una quindicina di anni fa) nessuno sospettava
che le reti avrebbero avuto una cos grande diffusione. La cosa
si aggrava dal fatto che il numero IP, non solo identifica
l'utente, ma anche la rete a cui fisicamente connesso. Per
capire questo occorre esaminare la struttura degli indirizzi IP.
I numeri IP individuano tre classi di reti:
Classe A Reti giganti
Classe B Reti medie
Classe C Reti piccole
Le reti di classe A hanno il primo bit del primo byte a 0. I 7
bit successivi individuano la rete ed i restanti 24 l'utente.
(nella letteratura l'utente viene chiamato Host, ma un
retaggio del passato )
Per le reti di classe B i primi 2 bit sono 1 0 ; i 14 bit
successivi individuano la rete ed i 16 restanti individuano
l'Host.
Per le reti di classe C i primi 2 bit sono 1 1 ; 22 bit sono
riservati alla rete e 8 per identificare l'host.
(fig. 3.2)
Alla rete dei radioamatori stato assegnato l'indirizzo 44,
quindi, oh gaudio!, la nostra una rete di classe A !
Abbiamo quindi 24 bit per individuare i vari utenti e 2^24 = 16
milioni di utenti, ... dovrebbero bastare per un p !
I NUMERATORI
Il numeratore una persona o ente incaricato di assegnare
ufficialmente gli indirizzi IP, perch bisogna garantire che
tali indirizzi siano unici. L'autorit mondiale per la
numerazione della rete Internet il Network Information Center
(NIC) i quale assegna a delle autorit locali la numerazione
delle singole reti.
Il numeratore ufficiale della rete 44 WB6CYT . La nostra
rete, come altre, ha anche un nome: si chiama AMPRNET che deriva
da Amatour packet radio net. WB6CYT, lo "zar dei numeri", ha
suddiviso la rete in una serie di reti nazionali che si
distinguono dal secondo byte. All'Italia toccato il numero
134, per cui tutte le stazioni italiane hanno l'indirizzo IP che
comincia con:
44.134.x.y
Il numeratore ufficiale per l'Italia I2KFX che numera
direttamente la Lombardia e si appoggia a dei numeratori
regionali per le altre zone. Nel riquadro potete trovare il
numeratore per la vostra zona. Il compito dei numeratori
consiste nell'assegnare dei numeri unici a chi ne fa richiesta
secondo le regole di numerazione in vigore e poi, periodicamente
riportare tali numeri al numeratore nazionale che provvede a
notificarli al numeratore mondiale. Le politiche di numerazione
sono responsabilt dei numeratori nazionali.
La politica attualmente in vigore per l'Italia consiste nel dare
al terzo byte lo stesso numero della regione: 2 per la
Lombardia, 4 per l'Emilia ecc. Il quarto byte un progressivo,
escluso lo zero e 255. Una volta raggiunto il 254 il terzo byte
aumenta di 10 per cui la Lombardia, per esempio diventer
44.134.12.y, e cos via.
Questo modo di numerare comodo soprattutto per i numeratori,
ma non detto che sia il massimo per facilitare i possibili
futuri gateway ad instradare i datagram, soprattutto se la rete
italiana si svilupper verso un'unione di sottoreti connesse da
gateway. A questo proposito IW5CJB e IK5FTK hanno proposto un
modo alternativo di utilizzare il terzo byte utilizzando i primi
4 bit per individuare 16 "zone" (potrebbero essere pressapoco le
regioni) e gli altri 4 bit per suddividere ulteriormente le zone
in "aree". Va qu sottolineato che la rete IP una rete
logica, non una rete fisica. Le strutture fisiche sono le reti
NETROM od altro che sono in corso di formazione. Quando queste
reti saranno ben individuate sar opportuno modificare gli
indirizzi gi assegnati, (solo il terzo byte) per rispecchiare
la struttura fisica delle reti. Non sembra possibile, infatti,
data la conformazione orografica dell'Italia, far coincidere le
reti con le provincie o le regioni, se non in modo approssimato.
Avranno invece pi senso ripartizioni basate su bacini di
"propagazione" dipendenti dalle pozizioni dei nodi.
Dopo tutte queste argomentazioni dovrebbe venire in mente una
domanda: ma allora gli indirizzi IP individuano il punto in cui
l'utente attaccato, la sua posizione geografica, non lui
stesso ?!
Si ! proprio cos !... e questo un punto molto debole
della numerazione IP. Se un utente si muove da una rete ad
un'altra, o semplicemente da una zona ad un'altra il suo
indirizzo di rete deve cambiare. Queto fatto pone dei problemi
pratici molto grossi e dipende strettamente dal fatto che una
parte dell'indirizzo dell'utente individua la rete a cui
l'utente connesso. Pensate ad un OM solito viaggiare per
lavoro col suo computerino LapTop che ha nel suo QTH abituale
l'indirizzo 44.134.1.12 ; tale OM una sera si trova a Firenze e
vorrebbe collegarsi alla rete nazionale per scambiare qualche
mesaggio con gli amici. Tale OM sarebbe impossibilitato ad
usare la rete IP perch dovrebbe avere un indirizzo per ogni
localit in cui si sposta e tali indirizzi dovrebbero anche
essere noti ai suoi corrispondenti (cosa pi difficile). La
cosa diventerebbe altrettanto difficile per una eventuale rete
CER di soccorso.
ͻ
I2KFX [44.134.2.2] Numeratore Italiano TCP/IP
Numeratori regionali
I0VUQ Alessandro Surian Via San Paolo Apostolo,65
00040 S.Maria delle Mole (Roma) tel. 06-9351825
I1EXH Danilo Benedetto Strada del Salino,51 10133
Torino tel. 011-6967755
I2KFX Pino Zollo Via Negrelli,21 20052 Monza tel.
039-833431 BBS @ik2anp-8
IV3PFF Furio Merco Via Meutana,47 33100 Udine tel.
0432-35544
IW4ANU Giorgio Tovoli Via Andrea Costa,129 40134
Bologna tel. 051-424477
I5SGG Marco Paesani P.zza G.DaMilano,14 50126 Firenze
Tel. 055-689959
I6LMQ Lello Mastropietro Via Monfalcone,7 66023
Francavilla al Mare tel. 085-810498 BBS @i6lmq-8
IW7BBB Mariano Caputo Via Gianicolo 10/6 70053 Canosa
di Puglia tel.0883-612279
I8EJC Cesare Cordopatri Via Anile 15 88026 Pizzo
Calabro (CZ) tel. 0963-531591 BBS @i7psk-8
IT9EYQ Cosimo Flaccomio Via G.Garibaldi,508 98050
Barcellona tel. 090-9743149
ͼ
HOSTS e GATEWAY
Abbiamo visto che la rete IP formata da tante reti separate
interconnesse attraverso i GATEWAY. Gli utenti finali della
rete IP sono gli HOST. Gli Host possono collegarsi sia ad altri
host sulla stessa rete sia ad host di altre reti.
(Fig. 4.2)
In figura potete vedere due reti (A e B) interconnesse tramite
il Gateway G.
I gateway hanno la particolarit di affacciarsi su due o pi
reti, quindi hanno due o pi indirizzi IP. Gli host, al
contrario hanno un solo indirizzo IP.
Ovviamente il software dei gateway diverso da quello degli
host, in quanto diverse sono le funzioni che ognuno deve
compiere. Se l'host H1 vuole collegarsi all'host H3 (entrambi
sulla stessa rete A) l'IP di H1 dovr individuare l'indirizzo
fisico di H3 ( ricordate che la rete B ha un suo particolare
modo di costruire gli indirizzi ). Supponiamo che l'IP di H1
abbia una tabella nella quale gli indirizzi IP corrispondono
agli indirizzi fisici della rete B. Dopo aver letto in questa
tabella l'IP di H1 chiede al modulo software che effettivamente
interfaccia la rete di connettersi col suo corrispondente
sull'host H3.
(Fig. 5.2)
In figura l'indirizzo fisico di H1 8427 e quello di H3 9015.
Quindi, H1 (IP= 128.3.2.18), per collegarsi ad H3 (IP=
128.3.2.27), costretto a far si che avvenga una connessione
fisica sulla rete B fra gli indirizzi 8427 e 9015.
La cosa pi complicata se H1 vuole connettersi con H5 che
sulla rete A. H1 non sa niente della rete A: conosce solo
l'indirizzo logico IP di H5. Poich H5 su un'altra rete l'IP
di H1 legger nelle sue tabelle che tutti gli host alieni sono
raggiungibli tramite il gateway G che ha indirizzo IP 128.3.2.5.
Come nel primo esempio H3 cercher prima nelle proprie tabelle
l'indirizzo fisico di G e poi chieder al proprio software di
rete di collegarsi all'indirizzo 7245 trovato in precedenza.
Il gateway G verr cos a sapere che i datagram che arrivano da
H3 devono essere instradati ad H5, quindi, poiche H5 sulla
rete A occorrer prima individuare qual' l'indirizzo fisico di
H5 (7F4a) e poi passare la richiesta al software di rete, lato
A, di effettuare la connesione fisica con H5....e cos via.
Le tabelle di H3 quindi hanno tre colonne:
Ind. IP Ind. fisico Gateway
128.3.2.18 8427 no
166.12.3.2 7245 128.3.2.5
... ... ...
Nell'implementazione attuale NET.EXE per PC queste tabelle
vengono introdotte a mano con i comandi : ARP e ROUTES.
NET.EXE un software da Host, non pu fare da Gateway nel senso
discusso in precedenza perch puo' avere un solo indirizzo IP.
Per rendere le cose ancora pi complicate NET.EXE pu vedere
la rete radio fisica sottostante in tre modi diversi, o meglio
un host IP pu connettersi via radio ad un altro host (della
stessa rete) in tre modi diversi:
- Tramite pacchetti AX.25 di tipo UI
- Tramite una completa connessione AX.25
- Tramite i nodi NETROM
I primi due modi sono possibili se i due host sono in portata
radio e si distinguono a seconda del comando "mode" dato:
Se 144 il nome dell'interfaccia a cui connesso il TNC
allora:
mode 144 datagram
per l'uso di frame UI, e
mode 144 vc
per l'utilizzo dell'AX.25 completo.
La scelta dei nomi genera molta confusione perch qu "datagram"
e "vc" (virtual channel) si riferiscono solo a connessioni
dirette punto-punto e non al modo di funzionamento di una rete
multinodale, n al modo di funzionamento dell'IP che comunque
una rete Datagram.
Ma allora quale dei due usare ? dipende... se due stazioni
sono vicine ed i segnali sono forti, quindi non ci sono quasi
mai pacchetti corrotti allora l'uso dei frame UI pi
efficiente, al contrario se il canale radio scarso allora
l'AX.25 pi efficiente. Spero che ragionando su quello che
gi sapete di packet radio possiate capire questa affermazione.
La cosa sar comunque pi chiara, spero, alla fine di questa
serie di articoli.
Il terzo modo di usare la rete fisica si utilizza, ovviamente,
quando i due host non sono in vista radio e quindi devono
appoggiarsi ai nodi NETROM. In seguito torneremo anche su
questo argomento.
POLITICHE di INSTRADAMENTO
Abbiamo visto che la rete "logica" IP una rete DATAGRAM, ma
non abbiamo ancora esaminato come i gateway (nodi) decidono la
strada da far fare ai datagram.
Ogni gateway ha delle sue tabelle di instradamento e queste
tabelle possono essere sia impostate a mano dal gestore umano
della rete (Sysop) in una politica isolata, sia aggiornate in
modo dinamico qualora i gateway siano capaci di parlarsi fra di
loro ed implementare una politica distribuita.
Va evidenziato che i gateway analizzano solo i bit
dell'indirizzo IP che specificano la rete, quindi diremo che i
gateway implementano una commutazione inter-rete. Ovviamente
nessuno impedisce di suddividere una rete in sottoreti, cosicch
la rete 44.x.y.z difatto suddivisa nelle varie reti nazionali
44.134.x.y , 44.129.x.y , 44.131.x.y ecc. quindi un eventuale
gateway fra nazioni dovrebbe essere instruito ad usare il
secondo byte come discriminatore, mentre un ipotetico gateway
fra regioni italiane contigue dovrebbe usare il terzo byte.
Una volta che il datagram ha raggiunto il gateway connesso
fisicamente alla rete dell'host destinatario allora si che il
gateway guarda anche i restanti bit dell'indirizzo, ma solo allo
scopo di ottenere l'indirizzo fisico a cui recapitare il
datagram stesso.
Anche gli host hanno le loro tabelle di instradamento, ed anche
qu lo scopo determinare se un dato destinatario
raggiungibile direttamente tramite la rete fisica o si debba
ricorrere ai servigi di un gateway, e, se si, quale.
Gli utenti del TCP/IP sono gi abituati a dare a NET.EXE i
giusti comandi per la costruzione delle tabelle di
instradamento, non sempre, per, chiaro il significato di tali
comandi e su cosa influiscono.
Sono due le informazioni che ogni host (o gateway) deve sapere
per prendere le sue decisioni.
La prima informazione riguarda la "strada" (col comando ROUTES
ADD ) per raggiungere il destinatario, in termini di connessione
diretta oppure verso un certo gateway.
La seconda informazione l'indirizzo della rete fisica (col
comando ARP ADD) verso cui inviare il datagram.
Entrambe sono necessarie. Se un host non in grado di
calcolare l'indirizzo fisico di un destinatario (appartenente
alla stessa rete) tramite le proprie tabelle ha un modo per
procurarselo chiedendolo al destinatario stesso. La cosa sembra
strana, ma un apposito protocollo di nome ARP (Address
Resolution Protocol) permette di realizzare tale funzione. (Che
confusione di nomi !) . Non esamineremo qu come questo
protocollo funziona, ma va evidenziato che la sigla "ARP" ce la
ritroviamo in contesti diversi ma simili.
Per esempio:
route add [44.134.1.1]/24 144 ir1svt
dice all'host di ruotare tutte le connessioni verso host i cui
primi 24 bit sono 44.134.1 sul gateway ir1svt.
arp add ir1svt ax25 ir1svt-2
dice all'host che se vuole raggiungere ir1svt lo pu fare con
una connessione AX.25 con la stazione con indirizzo ir1svt-2.
Si noti che attualmente ir1svt non un vero gateway, ma solo un
"IP router" e come tale solo capace di reinstradare i datagram
sulla stessa rete ma su connessioni di rete fisica diverse.
L'IP-router fa pi o meno quello che fa una NETROM con i suoi
pacchetti instradandoli da una connessione AX.25 ad un'altra.
Come l'IP effettivamente realizzato e come sono fatti i
datagram sar l'argomento della prossima puntata, insieme ai
concetti che ci permetteranno di comprendere il TCP ed il suo
posizionamento nel modello di riferimento OSI.