Architetture di rete

Modello TCP/IP

 

1. Cenni Storici

La telematica, ovvero la comunicazione di dati per via elettronica è diventata oggi una parte fondamentale dell' informatica.

Fondamentale per la telematica è il concetto di internetworking , ovvero la possibilità di collegare tra loro reti diverse dal punto di vista dell'hardware utilizzato e dei sistemi operativi.

A metà degli anni '70 l'agenzia americana ARPA (Advanced Research Projects Agency) cominciò a lavorare ad un progetto di internetworking, specificando l'attuale architettura di protocolli, denominata TCP/IP, intorno al 1978/79.

La nascita di Internet vera e propria si ha però solo nel 1980, quando ARPA comincia a convertire tutte le macchine collegate alla sua rete di ricerca al nuovo protocollo TCP/IP.

L'adozione della tecnologia Internet viene completata nel 1983, quando il Dipartimento della Difesa Americano ordina che tutte le macchine collegate a reti geografiche utilizzino il TCP/IP.

Nello steso tempo la rete viene suddivisa in due pezzi, quello di ricerca - denominato ARPANET, e quello più propriamente militare, denominato MILNET.

Per incoraggiarne l'utilizzo da parte delle Università ARPA mise a disposizione l'implementazione del TCP/IP a basso costo. Come?

La maggior parte dei dipartimenti di informatica delle Università all'epoca utilizzavano il BSD Unix di Berkeley. ARPA finanziò allora la società BBN perchè implementasse TCP/IP sotto Unix, e l'Università di Berkeley perchè integrasse questa implementazione nella distribuzione BSD. In questo modo raggiunse il 90% dei dipartimenti di informatica delle Università.

L'implementazione TCP/IP di Berkeley divenne popolare anche perchè integrò nella rete una serie di applicazioni tipiche di Unix (ad esempio rcp) e fornì una nuova astrazione - quella di socket - per permettere alle applicazioni l'accesso alle funzionalità di comunicazione fornite dai protocolli di rete

Il successo del TCP/IP e dell' Internet nella ricerca Universitaria informatica portò altri gruppi alla decisione di adottarlo. Nel 1986 la National Science Foundation NFS finanziò un nuovo grosso backbone Internet, denominato NFSNET, che connetteva non più solo dipartimenti di informatica, ma tutti i principali centri di ricerca americani.

A partire dalla fine degli anni '80 Internet cominciò a diffondersi anche nelle Università e centri di ricerca in Europa e nelle grosse aziende americane.

All'inizio degli anni '90 anche le piccole e medie imprese americane prima e del mondo poi cominciarono a collegarsi ad Internet.

Oggi la tecnologia TCP/IP viene adottata anche all'interno di reti private aziendali, senza che queste si connettano poi all'Internet globale. (Intranet).

La storia dei protocolli TCP/IP è il successo di una tecnologia pubblica, le cui specifiche sono state pubblicate in modo da poter essere implementate da chiunque, contro protocolli di comunicazione proprietari, quali DECNET, SNA, IPX, etc.

 

2. Layers di protocolli

I protocolli di rete sono normalmente sviluppati e organizzati su più livelli. Ciascun livello è responsabile di un aspetto della comunicazione

TCP/IP è una suite di protocolli diversi organizzati su quattro layers (OSI ne prevede 7)

 

Applications

     Telnet, FTP, e-mail, etc.

Transport

     TCP, UDP

Network

     IP, ICMP, IGMP

Link

     Device drivers e schede di interfaccia

         

Link Layer E' implementato nelle schede di interfaccia dei vari metodi di comunicazione e nei device drivers dei sistemi operativi. Il protocollo Internet non interviene a questo livello

Network Layer (Internet Layer) Si occupa di far viaggiare i pacchetti di dati attraverso la rete.

Transport Layer Si occupa di stabilire un flusso di informazioni tra due host sulla rete

Application Layer Si occupa di trasportare le informazioni specifiche a ciascuna applicazione.

I primi due sono protocolli hop-by-hop, cioé si occupano di trasferire pacchetti da un nodo all' altro della rete

Il transport e l' application layer sono invece protocolli end-to-end , cioé si preoccupano di trasferire informazioni tra il mittente e il destinatario.

In Unix l' application layer è un processo utente, mentre i layers del TCP/IP fanno parte del kernel

 

3. Internetworking e routers

La distinzione tra il network layer e il transport layer è fondamentale per il concetto di Internetworking, ovvero per costruire una rete di reti.

Un router è un computer che connette tra loro due o più reti con protocolli fisici diversi (link layers). Un router è quindi dotato di interfaccie verso reti fisiche diverse

bullet

Ethernet e ISDN

bullet

Ethernet e rete telefonica standard

bullet

Ethernet e rete CDN (circuito dedicato numerico)

bullet

Ethernet e rete locale FDDI (Fiber Distributed Data Interface)

Storicamente i router venivano chiamati gateway . Oggi il termine gateway si usa per il livello applicativo.

Un router può essere una macchina dedicata (esempio router CISCO), oppure può fare da router un host su Internet (es. PC con connessione LAN Ethernet e connessione PPP alla rete telefonica o all' ISDN).

Ciò che rende Internet flessibile è proprio questa capacità di nascondere ai protocolli di livello superiore (transport e application) i dettagli del livello fisico di interconnessione tra reti diverse.

 

4. Indirizzi Internet

Ogni interfaccia di rete su Internet ha un indirizzo unico, chiamato indirizzo IP o indirizzo Internet.

Un router, che per sua definizione ha più interfacce di rete ha generalmente più indirizzi IP.

Gli attuali indirizzi IP (IPv4) sono composti da 32 bit ovvero 4 bytes. Comunemente un indirizzo IP si rappresenta con 4 numeri interi separati da un punto. Ciascun intero rappresenta uno dei 4 bytes.

Ad esempio: 194.20.20.15 rappresenta l' indirizzo IP 11000010.00010100.00010100.00001111. Qual'è il massimo che possiamo trovare in ciascun componente della quadrupletta?

Tradizionalmente gli indirizzi IP erano divisi in 4 classi

bullet

Indirizzi di classe A. Il byte più significativo comincia con 0 Vanno da 0.0.0.0 a 127.255.255.255. Il primo byte è interpretato come indirizzo della rete. I restanti tre come indirizzi di host.

bullet

Indirizzi di classe B. Il byte più significativo comincia con 10. Quindi vanno da 128.0.0.0 a 191.255.255.255. Il primo e il secondo byte sono interpretati come indirizzi della rete. I restanti due come indirizzi di host.

bullet

Indirizzi di classe C. Il byte più significativo comincia con 110. Quindi vanno da 192.0.0.0 a 223.255.255.255. I primi tre bytes sono interpretati come indirizzi della rete. L' ultimo come indirizzo di host.

bullet

Indirizzi di classe D. Il byte più significativo comincia con 1110. In questo caso i restanti 28 bits vengono interpretati come l' indirizzo di un gruppo di host in multicasting.

Con la crescita di Internet, a causa della scarsità dello spazio di indirizzi rimasto, si è deciso che la vecchia suddivisone causava un assurdo spreco di risorse. Oggi si parla quindi di indirizzi IP ClassLess.

La demarcazione tra indirizzo della rete e indirizzo dell'host viene indicata con una maschera di sottorete (subnet mask) di 32 bit. I bit della maschera settati a 1 indicano la parte rete dell'indirizzo, quelli settati a zero la parte host.

Il tipo di rete viene indicato con il numero di bit che identificano la rete. Più è alto questo numero, più la rete è piccola.

Ad esempio, la vecchia denominazione - rete di classe C - oggi si chiama /24 ed ha maschera di sottorete 255.255.255.0. Una rete di 128 host, invece è uno /25 e ha maschera di sottorete 255.255.255.128. E una di 64 hosts?

Poichè devono essere unici, gli indirizzi IP vengono assegnati da apposite autorità di rete. Negli USA è' l'InterNic. In Europa il RIPE in Asia l' APnic. Ogni autorità può poi delegare in parte l'assegnazione a delle Registration Authorities locali.

Poichè gli indirizzi IP non sono particolarmente mnemonici, su Internet si usa un database distribuito chiamato DNS per mappare gli indirizzi IP nel nome dell' host corrispondente. Tali nomi su Internet sono organizzati secondo delle gerarchie (domini)

 

5. I nomi a dominio

Poichè gli indirizzi IP non sono particolarmente mnemonici, su Internet si usa un database distribuito chiamato DNS (domain name service) per mappare gli indirizzi IP nel nome dell'host corrispondente. I nomi sono organizzati secondo delle gerarchie (domini), simili a quelle del file system di Unix.

I domini di primo livello (TLD) possono essere di tipo generico (com edu gov int mil net org) oppure di tipo nazionale (ae fr it us zw). C'è poi il dominio arpa che serve come dominio radice per la risoluzione inversa da indirizzi IP a nomi di host.

Un dominio di primo livello ha sotto di sè dei domini di secondo livello, i quali possono avere a loro volta dei sottodomini, oppure direttamente degli host, in base alle regole date da ogni singola organizzazione che gestiste il dominio di livello superiore.

Qualche esempio di nomi a dominio

maggiore.dsnet.it
pendragon.cs.purdue.edu
papageno.cs.unibo.it
atbd.microsoft.com
robin.internic.net
aos.arl.army.mil
ns.nasa.gov
15.32.0.195.in-addr.arpa

La radice dell' albero dei domini è un nodo particolare che non ha etichetta. Ciascun nome può avere al massimo 63 caratteri. Le etichette dei vari livelli nel nome a domini sono separate da punti (dot). Le lettere minuscole o maiuscole in un nome a domini non vengono distinte.

La gestione dei nomi a domini è totalmente decentrata (distribuita) Nessuna singola entità ha la responsabilità di tutte le etichette di una gerarchia di domini.

Un sotto-albero dell'albero dei domini che viene gestito separatamente, si chiama zone . Una caso tipico di zone è quella di un dominio di secondo livello (es: dsnet.it)

Molti domini di secondo livello dividono la loro zona in sotto-zone più piccole. L'autorità di gestione di una singola zona viene delegata ad una persona che ha la responsabilità di fornire almeno due name server per quella zona.

Il responsabile di una zona fornisce il name server primario per quella zona e uno o più name server secondari. Il primario carica tutte le informazioni sul dominio dai file locali, mentre il secondario carica le informazioni prendendole dal server primario, con una operazione di zone transfer.

Reti IP e nomi a domini sono assolutamente indipendenti: su una stessa rete possono convivere nomi a domini diversi e uno stesso dominio può avere host con indirizzi IP appartenenti a reti completamente diverse

 

6. Funzionamento della Suite di Protocolli

Dall' application layer, fino al link layer, ciascun protocollo aggiunge informazioni al pacchetto di dati che riceve. Questo meccanismo si chiama encapsulation .

La suite TCP/IP comprende i protocolli TCP e UDP al transport layer e IP, ICMP e IGMP al network layer. UDP è un TCP semplifcato, utilizzato per la trasmissione di pacchetti molto piccoli di dati. ICMP è un protocollo utilizzato per lo scambio di messaggi di controllo relativi al network layer, IGMP è utilizzato nel multicasting.

L'application layer (es. http) invia un pacchetto dati con tutte le informazioni relative all'http al transport layer TCP (o UDP).

Il TCP circonda i dati da inviare via rete con tutte le informazioni necessarie al protocollo TCP, creando un pacchetto dati TCP (TCP segment). Poi a sua volta lo invia al network layer.

L'UDP manda invece al network layer un UDP datagram.

A sua volta il protocollo IP, ricevuto un TCP segment o un UDP datagram lo circonda con le informazioni necessarie al protocollo IP, crea un IP datagram e lo manda al link layer.

Ciascun protocollo memorizza all' interno della sua parte di informazioni, un identificativo del protocollo che ha mandato il pacchetto.

Il protocollo IP memorizza in 8 bit il tipo di protocollo per distinguere tra TCP, UDP, ICMP IGMP.

I protocolli TCP e e UDP memorizzano in 16 bit, chiamati port number l' identificativo del software applicativo che gli ha mandato il pacchetto e in altri 16 bit l'identificativo dell'applicazione destinataria.

L' ethernet header ha anch'essa un campo di 16 bit per identificare il protocollo del network layer che ha inviato il pacchetto di dati.

All'arrivo, viene effettuata una procedura inversa all'encapsulation, chiamata demultiplexing.

 

7. Porte e Socket

I protocolli dell'application layer sono identificati tramite dei numeri di porta di 16 bit ciascuno.

I server applicativi (ad esempio il server Web) devono essere univocamente conosciuti da tutti i client sulla rete. Hanno quindi dei numeri di porta riservati. Ad esempio il server http ha numero di porta 80.

I client invece utilizzano dei numeri di porta temporanei, che vengono di volta in volta comunicati al server con cui si sono messi in comunicazione

L'interfacciamento dell'application layer con il transport layer (TCP) in Unix avviene attraverso una application programming interface basata sul concetto di socket. Ogni socket è univocamente identificata da un indirizzo IP e un numero diporta

 

Ritorna alla Home