Progettare e Programmare Vol 3 - Capitolo 3 - PDF
Document Details
Uploaded by SustainableHurdyGurdy509
2019
Tibone
Tags
Summary
This chapter from the textbook 'Progettare e Programmare Vol 3' provides a detailed overview of the origins of the internet, examining the ARPANET, protocols like TCP/IP, addressing schemes, and remote access to the internet. The text focuses on the foundational aspects of networking concepts.
Full Transcript
capitolo 3 – Le origini di Internet 1. Le origini di Internet I 2. La suite di protocolli TCP/IP...
capitolo 3 – Le origini di Internet 1. Le origini di Internet I 2. La suite di protocolli TCP/IP LL 3. Lo stato Internet del TCP/IP E CH 4. Gli indirizzi IP 5. L'accesso remoto a Internet NI ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 1 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice Alla rete delle reti (Internet) si è arrivati per gradi, nell’arco di decenni, con l'apporto di numerosi ricercatori, scienziati e ingegneri. Esiste però un luogo di nascita I di Internet. LL Dall’Università della California di E Los Angeles alle 22:30 del 29 CH ottobre 1969 venne inviato allo Stanford Research Institute, lontano 500 km, il primo messaggio della rete ARPANET basata sulla commutazione di NI ZA pacchetti e sull’allocazione dinamica delle risorse. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 2 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice In pieno clima di «Guerra fredda» nasce la rete ARPANET. Nel 1969, in piena «Guerra fredda» tra gli Stati Uniti e l’Unione Sovietica, I l’agenzia DARPA (Defense Advanced Research Projects Agency) del LL Dipartimento della difesa USA commissionò un programma di ricerca con l’obiettivo di collegare i computer e le reti sparse all’epoca per la nazione. E CH Questa super-rete chiamata ARPANET (Advanced Research Projects Agency NETwork) avrebbe dovuto, tra l’altro, garantire il funzionamento delle comunicazioni anche nel caso in cui un attacco nucleare disabilitasse molti nodi della rete. NI ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 3 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice Le comunicazioni della rete ARPANET si basano sulla commutazione di pacchetto (packet switching). Con la commutazione di pacchetto i dati viaggiano suddivisi in pacchetti di bit I e ogni pacchetto può seguire un percorso diverso per arrivare a destinazione. E LL Così, anche se un nodo CH della rete viene messo fuori uso, la rete può riconfigurarsi e deviare i pacchetti istradandoli su percorsi alternativi. NI ZA Nel 1983 ARPANET copriva buona parte del territorio USA. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 4 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice Vinton Cerf e Robert Kahn sono gli ideatori del protocollo TCP/IP, adottato da ARPANET nel 1982. ARPANET doveva essere indipendente dalle reti fisiche dei computer collegati. I LL A questo scopo occorreva sviluppare un protocollo che si occupasse dell’instradamento dei pacchetti di dati, con interfacce capaci di far comunicare E questo nuovo protocollo con i protocolli delle reti fisiche esistenti. CH Vinton Cerf e Robert Khan svilupparono un nuovo protocollo, il NI ZA TCP/IP, che fu adottato da ARPANET nel 1982 e in seguito sarebbe diventato lo standard di Internet. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 5 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice Nel 1990 ARPANET viene abbandonata e si sviluppa Internet. I LL Nel 1983 ARPANET è scorporata dalla rete militare e negli anni seguenti continua a collegare università e centri di ricerca. E CH Nel 1990 poi ARPANET viene abbandonata e lascia il campo a Internet, che negli anni Ottanta aveva già iniziato a espandersi anche nel resto del mondo, e in seguito si sviluppa rapidamente nella rete globale che conosciamo oggi. NI ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 6 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La tecnica della commutazione di pacchetto per la trasmissione dei dati nelle telecomunicazioni fu ideata nel 1965. Un host, che può essere un computer di qualsiasi tipo, per comunicare con altri I host suddivide i dati in pacchetti e li invia indipendentemente gli uni dagli altri. E LL CH NI ZA I pacchetti viaggiano verso l’indirizzo di destinazione attraversando collegamenti tra i nodi chiamati router, che hanno il compito di instradare i pacchetti usando tabelle continuamente aggiornate in base alle condizioni della rete. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 7 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La commutazione di pacchetto usa i collegamenti in maniera efficiente. Ogni collegamento è impegnato soltanto durante il transito di un I pacchetto, poi è liberato e reso disponibile per altri pacchetti, che possono LL provenire dallo stesso host o da altri. E In questo modo i collegamenti sono usati in maniera efficiente, perché non CH restano impegnati nel caso ci sia un periodo di «silenzio» da parte dei due host. NI La rete a commutazione di pacchetto è un servizio di tipo connectionless: non stabilisce una connessione fisica prestabilita tra mittente e destinatario, ma ZA neppure una connessione logica che definisca a priori il percorso dei pacchetti. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 8 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La commutazione di pacchetto è una tecnica non affidabile. Per capire come funziona la commutazione di pacchetto, immaginiamo di dover inviare una spedizione di merce a un destinatario. Procederemo così: I LL 1. suddividiamo la spedizione in tanti pacchetti e affidiamo ogni pacchetto a un diverso corriere; E 2. ogni corriere prende in consegna un pacchetto e controlla l’indirizzo di CH destinazione; se sa come arrivarci consegna il pacchetto, altrimenti lo trasporta fino a un altro corriere, che conosce meglio la zona dove abita il destinatario; 3. l’altro corriere riceve il pacchetto: se sa come arrivare all’indirizzo finale NI effettua la consegna, altrimenti trasporta il pacchetto fino a un terzo corriere che dovrebbe saperne di più; ZA 4. il terzo corriere fa lo stesso, e così via, sperando che alla fine il pacchetto arrivi a un corriere che sa come arrivare a casa del destinatario e glielo consegni; 5. se poi invece il pacchetto, dopo essere stato affidato a un certo numero di corrieri, non è ancora stato consegnato, verrà buttato via. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 9 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La commutazione di pacchetto è una tecnica non affidabile. Con il packet switching tutto questo I succede a ciascuno dei pacchetti di dati. LL Dunque una rete a commutazione di pacchetto è un servizio non affidabile: E CH tutti i pacchetti sono indipendenti tra loro e seguono percorsi diversi; arrivano a destinazione in sequenza diversa da quella con cui li si è inviati; NI ZA inoltre uno o più pacchetti possono andare perduti durante la trasmissione. La trasmissione è però resa affidabile dal livello di trasporto, che interviene riordinando i pacchetti nella giusta sequenza, correggendo gli errori e chiedendo la ritrasmissione dei pacchetti perduti. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 10 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice Per varie ragioni ARPANET preferì la commutazione di pacchetto alla commutazione di circuito usata dalla rete telefonica. I E LL CH La rete telefonica usa la tecnica della commutazione di circuito: quando NI due utenti comunicano tramite il telefono fisso tradizionale sono connessi mediante un circuito fisico dedicato, cioè una serie di collegamenti stabiliti ZA nel momento in cui si digita il numero da chiamare. Questa tecnica offre vantaggi: una volta stabilito il circuito, i dati vengono trasferiti senza interruzioni e per intero; inoltre i ritardi di trasmissione nei vari nodi sono ridotti al minimo. Però… Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 11 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La commutazione di circuito non è adatta alle comunicazioni tra computer. La commutazione di circuito non risponde alle esigenze di una comunicazione I tra computer, né alle finalità di difesa militare che caratterizzavano ARPANET. LL Infatti la caduta di un qualsiasi collegamento, per esempio a causa di un guasto E o di un attacco bellico, provoca la caduta dell’intera comunicazione. CH NI Inoltre la commutazione di circuito è utile per le telefonate, dove i due interlocutori parlano con continuità, ma è inefficiente per le comunicazioni ZA tra computer. Nelle trasmissioni dati infatti possono esserci lunghi intervalli di tempo in cui vengono trasferiti pochi bit; il circuito perciò resta impegnato inutilmente. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 12 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La suite di protocolli TCP/IP è stata sviluppata per connettere tra loro dispositivi collegati a LAN sviluppate con tecnologie differenti. Negli stessi anni in cui veniva creata la rete ARPANET a commutazione di I LL pacchetto, arrivavano sul mercato LAN prodotte da costruttori diversi, con diverse topologie e ognuna con i propri protocolli di comunicazione. E CH Si poneva perciò il problema di far comunicare host appartenenti a una certa LAN con host remoti che non soltanto erano collegati a LAN sviluppate con NI altre tecnologie, ma potevano anche avere sistemi operativi diversi tra loro. ZA Per rispondere a questa sfida, Vinton Cerf e Robert Khan svilupparono la suite di protocolli TCP/IP. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 13 Copia riservata all'insegnante Michele Salvemini - 2262599 3.1 Le origini di Internet Indice La suite di protocolli TCP/IP è stata sviluppata tenendo conto di precise scelte progettuali strategiche. I una LAN doveva potersi connettere con qualsiasi altra, attraverso un LL dispositivo chiamato router, senza che fosse necessario modificare la rete; la rete doveva avere un funzionamento autonomo, senza bisogno di E sottoporla al controllo di un’amministrazione centrale; CH la rete avrebbe fornito soltanto le funzioni di instradamento efficiente del traffico tra i nodi; ogni altra funzione sarebbe stata localizzata nei soli nodi finali; NI i pacchetti perduti durante la trasmissione avrebbero dovuto essere ritrasmessi. ZA I nodi sono i router, che si collegano tra loro sfruttando i protocolli degli strati 1 e 2 del modello OSI, diversi a seconda della rete fisica di volta in volta disponibile. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 14 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Anche la suite TCP/IP, come il modello OSI, è strutturata in livelli o strati; diversamente dal modello OSI, però, il TCP/IP definisce soltanto tre strati. livello applicazione: raggruppa le funzioni che I nel modello OSI sono distribuite tra i livelli 5 LL (sessione), 6 (presentazione) e 7 (applicazione); livello trasporto: riproduce, con poche differenze, E le funzioni del livello 4 OSI (trasporto); CH livello Internet: raggruppa le funzioni già previste dal livello 3 OSI (rete). La suite TCP/IP non definisce i livelli inferiori: NI ZA è stata sviluppata proprio per rendere le comunicazioni indipendenti dalla realizzazione fisica della rete a cui è collegato l’host. Dal punto di vista della suite TCP/IP, i primi due livelli OSI sono un’unica entità, con cui lo strato Internet scambia messaggi detti primitive. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 15 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato Internet affida il proprio PDU allo strato 2 della rete fisica, perché lo inserisca nel frame da trasmettere sul mezzo trasmissivo. I PDU che ogni strato affida al I livello inferiore sono chiamati LL datagram. E Nel livello Internet i datagram si chiamano pacchetti, nel livello CH di trasporto segmenti. Attraverso le porte le applicazioni del livello di trasporto identificano NI ZA quelle del livello superiore. Ogni porta è un numero inserito in un campo del segmento del livello di trasporto. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 16 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato applicazione è quello più vicino all’utente, al quale fornisce un’interfaccia per interagire con Internet. Nella suite TCP/IP lo strato applicazione raggruppa una serie di protocolli usati I per fornire servizi agli utenti della Rete: LL il servizio World Wide Web, cioè la navigazione tra i siti web, usa il protocollo E HTTP (HyperText Transfer Protocol); CH il servizio di posta elettronica, o e-mail, usa il protocollo SMTP (Simple Mail Transfer Protocol) per l’invio dei messaggi e il POP3 (Post Office Protocol) o più recente IMAP (Internet Message Access Protocol) per la ricezione; NI il servizio di trasferimento di file tra un client e un server usa il protocollo FTP (File Transfer Protocol); ZA il servizio di accesso a una macchina remota, per operare su di essa come se fosse disponibile in locale, usa il protocollo Telnet. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 17 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato applicazione è quello più vicino all’utente, a cui fornisce un’interfaccia per interagire con Internet. Inoltre il livello applicazione comprende protocolli che servono come supporto I per altri protocolli dello stesso livello: LL il protocollo DNS (Domain Name System) permette la comunicazione del E sistema operativo di un host con una rete di server che traducono un URL (Uniform Resource Locator) nel corrispondente indirizzo IP; CH l’utente infatti indica le risorse della Rete con un nome facile da memorizzare, come l’URL www.zanichelli.it; NI la Rete invece indirizza la stessa risorsa con un indirizzo IP che è una sequenza di 32 bit, in questo caso 54.171.50.195; ZA il protocollo DHCP (Dynamic Host Configuration Protocol) permette di assegnare dinamicamente un indirizzo IP a un host che si collega in rete; l’indirizzo è assegnato provvisoriamente e ha una durata limitata. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 18 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato di trasporto è quello che ha il compito di garantire l’efficienza del trasferimento dei dati durante le comunicazioni in Rete. Lo strato di trasporto prevede due protocolli tra loro alternativi, il TCP I (Transmission Control Protocol) e l’UDP (User Datagram Protocol). LL Il protocollo TCP garantisce una comunicazione affidabile, fornendo un E servizio connection-oriented, cioè orientato alla connessione: CH prima di cominciare a trasferire i dati, stabilisce una connessione logica con l’entità TCP di destinazione; NI una volta spediti i segmenti, attende una conferma di avvenuta ricezione e ritrasmette eventuali segmenti perduti; ZA regola il flusso dei dati in base alle capacità di ricezione del sistema di destinazione e dello stato di congestione della rete; corregge eventuali errori di trasmissione. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 19 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato di trasporto è quello che ha il compito di garantire l’efficienza del trasferimento dei dati durante le comunicazioni in Rete. L’UDP garantisce comunicazioni più veloci ma meno affidabili, fornendo I un servizio di tipo connectionless: LL non attende conferma di ricezione dei segmenti inviati; E non controlla il flusso dei dati; CH non effettua la correzione degli errori di trasmissione. NI L’UDP è usato da quei servizi del livello applicazione che privilegiano la velocità di trasmissione, come le videochiamate VoIP (Voice over Internet Protocol). ZA Per il buon funzionamento di una videochiamata, infatti, la perdita di qualche dato è tollerabile, ma è essenziale garantire il sincronismo della comunicazione. Anche il protocollo DNS utilizza UDP, perché è importante che la risoluzione degli indirizzi avvenga molto velocemente. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 20 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Lo strato Internet deve garantire che i pacchetti di dati arrivino correttamente a destinazione. I protocolli principali dello strato Internet sono: I LL IP (Internet Protocol): prepara i pacchetti, inserendo nel campo data i segmenti ricevuti dallo strato TCP; fornisce un servizio connectionless e non affidabile: i E pacchetti sono inviati senza prima stabilire una connessione logica con il destinatario; la Rete li instrada sulla base dell’indirizzo IP di destinazione. CH Il protocollo IP non controlla il flusso e non effettua la correzione degli errori. NI ARP (Address Resolution Protocol): per recapitare un frame a un host connesso a una LAN Ethernet occorre conoscere l’indirizzo MAC della sua scheda di rete, ma i router instradano i frame sulla base dell’indirizzo IP; il ZA protocollo ARP permette di tradurre l’indirizzo logico IP in indirizzo fisico MAC. ICMP (Internet Control Message Protocol): consente l’invio di messaggi di diagnostica per verificare la capacità di comunicazione di un host a livello IP. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 21 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Il protocollo IP, per trasmettere un pacchetto, lo affida a un protocollo dello strato 2 OSI, che dipende dalla rete fisica disponibile nel collegamento. I LL Gli strati 1 e 2 OSI sono implementati dalle schede di rete degli host e dai router, cioè dai nodi della rete IP, che realizzano così le interfacce tra lo strato E Internet e la rete fisica disponibile per il collegamento. CH Lo strato 2 inserisce il pacchetto da trasmettere nel campo info del frame. NI Per ogni tipo di rete o collegamento fisico, perciò, va usato un router apposito. Se un router fa da interfaccia tra reti fisiche di tipo diverso, dovrà implementare gli strati 1 e 2 di ognuna di esse. ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 22 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice Il livello 2 OSI prevede un protocollo diverso per ciascun tipo di rete fisica. Alcuni esempi di protocolli del livello 2 OSI: I LL Ethernet per inviare i pacchetti IP su una LAN di tipo Ethernet; HDLC (High-Level Data Link Control) per collegare due host con una linea E dedicata; CH Frame Relay per connettere diverse LAN in una WAN senza affittare linee dedicate; NI LTE (Long-Term Evolution) per le comunicazioni su rete mobile 4G; ZA Wi-Fi per la connessione di reti wireless; PPP (Point-to-Point Protocol) per il collegamento diretto tra due nodi. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 23 Copia riservata all'insegnante Michele Salvemini - 2262599 3.2 La suite di protocolli TCP/IP Indice I numeri di porta servono al livello di trasporto per identificare il protocollo dello stato superiore con cui vuole comunicare. Lo strato applicazione, come ogni altro strato, contiene più protocolli. I LL Perciò il livello di trasporto deve specificare se il datagram che intende passare al livello applicazione sia destinato al protocollo HTTP, SMTP oppure FTP. E CH Per fornire questa informazione lo strato di trasporto usa i numeri di porta, che qui sono l’equivalente TCP/IP dei SAP (Service Access Point) del modello OSI. Nei server web i numeri di porta sono fissati a priori: NI per esempio il numero 80 per l’HTTP, 21 per l’FTP e 53 per il DNS. ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 24 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Lo strato Internet comprende due protocolli per il routing dei pacchetti di dati: l’IP (Internet Protocol) e ARP (Address Resolution Protocol). Il protocollo IP si interfaccia con i livelli 1 e 2 OSI delle reti fisiche, I definendo una rete logica che permette a qualsiasi dispositivo, LL qualunque sia la rete fisica a cui appartiene, di connettersi alla Rete. E Proprio le funzioni di instradamento dell’IP hanno reso possibile CH l’interconnessione di reti anche molto diverse tra loro, e quindi la realizzazione di una rete di reti quale è Internet. NI Lo strato Internet prevede anche il protocollo di test e diagnostica ICMP (Internet Control Message Protocol), che gestisce informazioni su eventuali ZA malfunzionamenti del protocollo IP. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 25 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Il router è un dispositivo che opera da interfaccia tra la rete locale e il mondo esterno, per instradare i frame da una rete all’altra. Il protocollo IP è I incorporato nei moduli LL software del sistema operativo degli host e E dei router. CH Il protocollo IP instrada i pacchetti generati dall’host sorgente per farli arrivare all’host di NI ZA destinazione. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 26 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice I router sono i nodi che collegano reti diverse e sono collegati tra loro in una rete a maglia. I LL In una rete di questo tipo ogni pacchetto di dati può seguire un percorso diverso. E CH NI Perché un pacchetto possa essere instradato verso la sua destinazione, occorre che a ogni host collegato alla Rete – interfacce dei router comprese – ZA sia assegnato un indirizzo univoco: questo indirizzo IP individua sia la rete a cui l’host appartiene, sia l’host stesso all’interno di quella rete. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 27 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice L’indirizzo IP è di tipo logico e può essere assegnato a host diversi in tempi diversi, mentre gli indirizzi fisici MAC delle schede di rete sono fissi. Un amministratore di rete può assegnare un indirizzo IP a un notebook ma poi, I quando il notebook si sconnette, può riassegnare lo stesso indirizzo IP a un tablet. LL Si può pensare all’indirizzo fisico come al codice fiscale di una persona, E mentre l’indirizzo IP è il suo indirizzo di residenza anagrafica: una persona CH mantiene per tutta la vita lo stesso codice fiscale, ma può cambiare indirizzo stradale molte volte; nel corso del tempo, inoltre, a uno stesso indirizzo stradale possono andare ad abitare persone diverse. NI Allo stesso modo, si può assegnare uno stesso indirizzo IP a macchine ZA diverse in tempi diversi, e a una stessa macchina possono essere assegnati indirizzi IP diversi a seconda della rete a cui si collega. Dal punto di vista della Rete, i pacchetti vengono indirizzati verso un indirizzo IP univoco a livello mondiale, indipendentemente da quale sia il dispositivo abbinato all’indirizzo in quel momento. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 28 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Un protocollo del livello di trasporto, per esempio il TCP, affida il proprio segmento al protocollo IP perché questo lo recapiti all’host di destinazione. Il protocollo IP allora assembla il I proprio pacchetto aggiungendo al LL segmento un’intestazione: E CH NI ZA L’intestazione del pacchetto IP è formata da numerosi campi. Tra questi ci sono gli indirizzi IP sorgente e di destinazione. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 29 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Il pacchetto IP viene poi passato al protocollo di livello 2, che lo inserisce nel campo info del frame. I LL I protocolli di livello 2 però sono diversi a seconda del mezzo trasmissivo utilizzato, e può accadere che il campo info abbia una lunghezza massima E (MTU, MaximumTransmission Unit) troppo piccola per ospitare il pacchetto CH In tal caso il protocollo IP deve frammentare il pacchetto, cioè suddividerlo in NI una serie di frammenti di dimensioni non maggiori della MTU. ZA Il protocollo IP dell’host di destinazione dovrà poi ricomporre il pacchetto prima di passarlo al livello superiore. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 30 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Il protocollo ICMP (Internet Control Message Protocol) permette di effettuare test di funzionamento delle comunicazioni a livello IP sugli host collegati. Appartiene a questo protocollo, per esempio, l’esecuzione del comando ping I (packet Internet groper) che i sistemi operativi dei pc mettono a disposizione LL per verificare la visibilità di un qualsiasi host collegato in rete. E CH il comando si invia dal Terminale (Prompt dei comandi in NI ZA Windows) Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 31 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Il protocollo ARP (Address Resolution Protocol) serve a tradurre gli indirizzi IP in indirizzi MAC. I LL Se le comunicazioni tra host restano all’interno di una rete locale, non è coinvolto il router ma soltanto lo switch. E CH In tal caso il protocollo IP del sistema operativo, quando trasmette un pacchetto IP, deve passare al livello 2 della propria scheda di rete anche l’indirizzo MAC della scheda di rete di destinazione. NI Se non lo conosce a priori, farà uso del protocollo ARP (Address Resolution ZA Protocol), che traduce gli indirizzi IP in indirizzi MAC. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 32 Copia riservata all'insegnante Michele Salvemini - 2262599 3.3 Lo strato Internet del TCP/IP Indice Il protocollo ARP (Address Resolution Protocol) serve a tradurre gli indirizzi IP in indirizzi MAC. I 1. L'host mittente invia in rete in broadcast un messaggio ARP request insieme LL con l’indirizzo IP di destinazione; E 2. l'host destinatario riconosce il proprio indirizzo IP e inserisce il proprio indirizzo CH MAC in un messaggio ARP reply; 3. mittente e destinatario aggiornano le proprie cache ARP con le corrispondenze NI tra indirizzi IP e indirizzi MAC, da usare nelle comunicazioni successive. ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 33 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Il protocollo IP è stato definito in diverse versioni: la versione 4, IPv4, viene oggi gradualmente sostituita dalla nuova versione IPv6. IPv4, oggi la versione più usata, prevede l’assegnazione di un indirizzo IP I composto da 32 bit. LL Il numero di indirizzi possibili è quindi pari a 232, cioè 4 294 967 296. E Il numero di dispositivi indirizzabili con IPv6, che prevede indirizzi da 128 bit, è CH enormemente più grande di quello possibile con IPv4. 655 570 793 348 866 943 898 599 indirizzi IPv6 unici: NI Per ogni metro quadrato di superficie terrestre sono disponibili ben anche con l’avvento dell’Internet delle cose, quando ogni oggetto potrà ZA collegarsi alla Rete, non ci saranno problemi di esaurimento degli indirizzi. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 34 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Gli indirizzi IPv6 di 128 bit si esprimono in notazione esadecimale. Ogni indirizzo IPv6 si suddivide in 8 campi da 16 bit, in questo modo; I si suddivide l’indirizzo in 8 campi da 16 bit; LL ogni campo è espresso in notazione esadecimale; i campi sono separati dal segno : (due punti); E CH si omettono gli 0 iniziali dei campi; tre campi contigui con tutti 0 sono indicati da :: (una coppia di due punti). Ecco un esempio di indirizzo IPv6 : NI ZA fe80::a45c:44b6:6e1:16f6 La coppia di due punti :: indica che il secondo, terzo e quarto campo dell’indirizzo sono tutti formati da quattro 0 ciascuno. Inoltre il penultimo campo di questo indirizzo ha 3 sole cifre esadecimali: è segno che inizia con uno 0. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 35 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice La prevista sostituzione di IPv4 con IPv6 sta avvenendo per gradi, tanto che oggi la maggior parte del traffico di Internet è ancora gestita con IPv4. I 32 bit dell’indirizzo IPv4 per comodità vengono solitamente espressi in I LL notazione decimale, applicando il seguente algoritmo: 1. si suddividono i 32 bit in 4 byte; E 2. si ricava la cifra decimale corrispondente a ognuno di essi; CH 3. si scrivono le quattro cifre decimali così ottenute, separandole con punti. Esempio: NI 11000000101010000000000000000001 ZA scomponiamo l’indirizzo in 4 byte: 11000000 10100000 00000000 00000001 sostituendo ogni byte con il corrispondente numero decimale, si trova 192.168.0.1. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 36 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice L’indirizzo IP è formato da due parti: il prefisso di rete della quale fa parte l’host e la parte host, cioè l’indirizzo dell’host appartenente alla rete. Una rete è l’insieme degli host che hanno indirizzi IP con lo stesso prefisso di I rete. Per esempio, se il prefisso di rete è formato dai primi 24 bit, i due host con LL gli indirizzi seguenti fanno parte della stessa rete: 11000000101010000000000000000001 = 192.168.0.1 E 11000000101010000000000000000011 = 192.168.0.3 CH Invece i due indirizzi seguenti appartengono a due reti diverse: 11000000101010000000000000000011 = 192.168.0.3 NI 11000000101010000000000100000011 = 192.168.1.3 ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 37 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Per analizzare un indirizzo IP occorre un criterio che permetta di distinguere il prefisso di rete dall’indirizzo dell’host. Nei primi anni di diffusione di IPv4 si era adottata la metodologia classful, che I consiste nella suddivisione degli indirizzi in classi, assegnando a ogni classe un LL numero fisso di byte dedicati all’indirizzo di host. E CH NI ZA Per distinguere le classi si usano i bit più significativi, cioè quelli più a sinistra nell’indirizzo IP. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 38 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Per analizzare un indirizzo IP occorre avere un criterio che permetta di distinguere il prefisso di rete dall’indirizzo dell’host. Gli indirizzi in classe A prevedono 1 byte per il prefisso di rete, ma il primo bit è I usato per identificare la classe, quindi i bit utili del prefisso di rete sono 7. LL Il numero massimo di reti appartenenti alla classe A sarebbe quindi 27= 128. E Le reti possibili in realtà sono soltanto 126, perché 2 prefissi di rete sono riservati: CH l’indirizzo 0.0.0.0 (tutti i 32 bit posti a 0) è usato come indirizzo sorgente di un host che non ha ancora un indirizzo IP assegnato e lo sta chiedendo a un NI server DHCP, che ha il compito di assegnare indirizzi IP dinamicamente alle macchine che si collegano alla rete; ZA gli indirizzi 127.x.x.x (con il primo byte 01111111, gli altri non importa) sono usati durante i controlli diagnostici con il protocollo ICMP. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 39 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Per capire a quale classe appartenga un indirizzo IP occorre convertire il suo indirizzo in notazione binaria e osservare i bit più significativi. Supponiamo per esempio di voler individuare la classe di appartenenza I dell’indirizzo 192.168.1.4 per ricavare l’indirizzo di rete e l’indirizzo dell’host. LL In notazione binaria l’indirizzo diventa: E 11000000 10101000 00000001 00000100 CH per cui i bit più significativi 110 indicano la classe C. In questa classe l’indirizzo di rete occupa i primi 3 byte e l’host occupa soltanto l’ultimo byte. Perciò gli indirizzi cercati saranno: NI ZA indirizzo di rete: 11000000 10101000 00000001 00000000 = 192.168.1.0 indirizzo host: 00000100 = 4 Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 40 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Il sistema classful appena descritto comportava un grande spreco di indirizzi, a causa della sua poca flessibilità. Esempio: in una rete locale a cui è assegnato un indirizzo di rete in classe C, I il numero possibile di host collegabili alla rete è 254. E LL Se i dispositivi effettivamente collegati sono di meno, per esempio 50, gli indirizzi non utilizzati (254 – 50 = 204) saranno sprecati, perché gli indirizzi IP devono CH essere univoci e non può esserci un’altra rete con lo stesso prefisso di rete. NI Per rimediare a questo difetto della suddivisione in classi, già nel 1985 si è introdotto il subnetting, cioè la possibilità di suddividere le reti di qualsiasi ZA classe in sottoreti. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 41 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Con il subnetting i primi bit della parte host dell’indirizzo IP codificano una sottorete. Se n bit della parte host dell’indirizzo sono dedicati a codificare le sottoreti, la I rete può avere 2n sottoreti. LL Consideriamo per esempio l’indirizzo 172.16.65.1, che in notazione binaria è: E 10101100 00010000 01000001 00000001 CH I bit più significativi sono 10, quindi si tratta di un indirizzo di classe B, che NI prevede 2 byte per l’indirizzo host. L’indirizzo di rete è: 10101100 00010000 00000000 00000000 = 172.16.0.0 ZA Se non fossero previste sottoreti, l’indirizzo di host sarebbe: 01000001 00000001 = 214 + 28 + 20 = 16 641 Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 42 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Con il subnetting i primi bit della parte host dell’indirizzo IP codificano una sottorete. Consideriamo ancora l’indirizzo 172.16.65.1: I LL 10101100 00010000 01000001 00000001 Se l’amministratore di rete vuole dotarsi di 4 sottoreti, i primi 2 bit dell’indirizzo E host saranno dedicati alla codifica delle sottoreti. CH In tal caso i primi bit 01 indicano una delle quattro sottoreti e l’indirizzo host è composto soltanto da 16 – 2 = 14 bit: NI 000001 00000001 = 28 + 20= 257 ZA L’insieme del prefisso di rete e del codice di sottorete è detto prefisso di rete esteso, che in questo esempio è 10101100 00010000 01, composto da 18 bit. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 43 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Per sapere quanti bit sono dedicati alla sottorete e decodificare l’indirizzo IP, si usa una maschera di sottorete (subnet mask). La maschera indica con il valore 1 i bit appartenenti all’indirizzo di rete esteso I LL e con il valore 0 tutti i bit seguenti dell’indirizzo IP. Nell’esempio appena visto, con un prefisso di rete esteso di 18 bit, la maschera E di sottorete è la seguente: CH 11111111 11111111 11000000 00000000 che in notazione decimale diventa: 255.255.192.0 NI Un altro tipo di notazione per indicare la maschera di sottorete è la CIDR ZA (Classless Inter- Domain Routing), che prevede l’apposizione di uno slash / finale, seguito dal numero dei bit 1 presenti nella maschera. Esempio: 10.4.2.1/16 indica che la maschera di sottorete è composta da 16 bit 1. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 44 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice I router individuano l’indirizzo della sottorete con una operazione di AND logico tra l’indirizzo IP e la maschera stessa. Esempio: un router deve individuare l’indirizzo della sottorete a partire I dall’indirizzo IP 192.168.100.1/20. LL In notazione binaria l’indirizzo è: E 11000000 10101000 01100100 00000001 CH La maschera di sottorete è costituita da 20 bit 1: 11111111 11111111 11110000 00000000 NI Applicando l’operatore logico AND a ogni coppia di bit corrispondenti, si ottiene: ZA 11000000 10101000 01100100 00000001 (indirizzo IP: 192.168.100.1) AND 11111111 11111111 11110000 00000000 (maschera: 255.255.240.0) = 11000000 10101000 01100000 00000000 (ind. sottorete: 192.168.96.0) Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 45 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Nel 1993 è stato introdotto il metodo classless, che abolisce la suddivisione in classi. Il prefisso di rete non è più vincolato a lunghezze di 8, 16 o 24 bit: può essere I LL costituito da un numero qualsiasi di bit, indicato dalla maschera di sottorete. Per il resto, il metodo funziona come nel caso del subnetting e si dice che E ogni prefisso di rete individua un dominio di indirizzamento. CH Dalla maschera di sottorete i router ricavano l’indirizzo della rete e possono indirizzare i pacchetti. NI Un dato host di destinazione può essere raggiunto seguendo percorsi diversi. ZA Ogni percorso ha una diversa lunghezza della subnet mask e il router dà la priorità al percorso con la maschera più lunga, che indica una rete con un minor numero di host collegati. Gli altri percorsi vengono scelti soltanto nel caso che quello prioritario cessi di essere operativo per una qualsiasi ragione. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 46 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Un esempio di subnetting con il metodo classless, prefisso di rete a 26 bit. Prefisso di rete: 01111000 001000000 00000000 00 Per fare 4 sottoreti si usano anche 2 bit I della parte host dell'indirizzo, perciò le LL sottoreti avranno 28 bit di prefisso di rete. E CH NI ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 47 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Un esempio di subnetting con il metodo classless, prefisso di rete a 26 bit. Ipotesi: un host di una rete esterna invia un pacchetto destinato all’host di indirizzo 120.32.0.40 della sottorete 2, che in notazione binaria è I 01111000 001000000 00000000 00101000. E LL CH Il router A ha NI Il router B ha ZA tabella di routing tabella di con maschera di instradamento 26 bit. Instrada il con maschera pacchetto verso la di 28 bit. rete 120.32.0.0 Instrada verso (router B). la sottorete 120.32.0.32. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 48 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Una rete privata al suo interno può utilizzare indirizzi IP privati, univoci all’interno della rete ma non a livello mondiale. Gli stessi indirizzi possono essere usati anche da altre reti private, evitando I LL così il rischio di una scarsità globale di indirizzi IP. Allo scopo sono stati definiti alcuni blocchi di indirizzi IP da usare privatamente: E CH NI ZA Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 49 Copia riservata all'insegnante Michele Salvemini - 2262599 3.4 Gli indirizzi IP Indice Le reti private, per esempio quelle di casa, si collegano a Internet tramite un router cui è assegnato un indirizzo IP pubblico. Occorre rendere pubblico e univoco l’indirizzo IP privato di un host nel I momento in cui si collega alla Rete. LL Viceversa, quando è in arrivo un pacchetto destinato a un host con indirizzo privato, il router deve indirizzarlo correttamente all’interno della rete. E La traduzione di un indirizzo IP privato in indirizzo pubblico e viceversa è CH effettuata dalla funzione NAT (Network Address Translation) del router. Esempio: 2 host si collegano a un server richiedendo il servizio HTTP, che nel server ha numero di porta 80. NI Se l'indirizzo pubblico del router è 212.32.134.23, la tabella NAT riporterà per ZA ogni host le seguenti coppie «indirizzo IP:numero di porta» locali e remote: Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 50 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice Ogni host collegato a una rete che usa il protocollo TCP/IP deve essere associato a un indirizzo IP, che può essere statico o dinamico. Se l'associazione di un indirizzo IP è permanente, l'indirizzo si dice statico, I altrimenti di dice dinamico e va rinnovato a intervalli di tempo prestabiliti, LL oppure ogni volta che l'host accede alla rete. E Se la rete ha pochi host, l’amministratore di rete può assegnare manualmente CH gli indirizzi IP statici, quando configura i parametri di rete dei computer e dei router della rete. NI Per reti di grandi dimensioni l’assegnazione dinamica è conveniente, anche perché permette di risparmiare indirizzi IP: quando un dispositivo cede il suo, ZA infatti, esso diventa disponibile per altri host. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 51 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice L’assegnazione dinamica degli indirizzi IP è operata da un server apposito, secondo il protocollo DHCP (Dynamic Host Configuration Protocol). I Quando un host viene acceso e intende connettersi alla rete, ma non ha un LL indirizzo IP, si attiva una procedura per la sua assegnazione in affitto, o lease: 1. l'host (client) invia il messaggio DHCPDISCOVER, per cercare un server E DHCP disponibile; CH 2. tutti i server disponibili rispondono inviando il messaggio DHCPOFFER, con cui ognuno propone un indirizzo IP e i relativi parametri di configurazione; NI 3. il client seleziona una tra le offerte e invia un messaggio DHCPREQUEST con l’indirizzo IP del server selezionato; il messaggio è inviato in broadcast, così ZA che gli altri server possano liberare l’indirizzo IP che avevano proposto; 4. il server selezionato conferma l’indirizzo inviato in precedenza con il messaggio di ricevuta (acknowledgment) DHCPACK, Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 52 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice L’amministratore decide la durata del lease in base alle esigenze della rete. Quando è trascorso un tempo pari a metà del periodo di validità, il client I chiede al server il rinnovo dell’affitto dell’indirizzo IP. LL Se il server risponde positivamente, il timer viene azzerato e il periodo di E validità torna a essere quello previsto inizialmente. CH Se invece per qualsiasi ragione il server non risponde alla richiesta, il client continua a chiedere per un certo numero di volte il rinnovo. NI Se poi il server continua a non rispondere, il lease scade e l’indirizzo IP non ZA sarà più utilizzabile per quel client, che dovrà riattivare la procedura iniziale per farsene assegnare un altro. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 53 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice Il router, dotato di protocollo IP, instrada verso un host di destinazione i pacchetti IP immessi nella rete da un host sorgente. Quando un router riceve un pacchetto da una rete IP a uno dei suoi ingressi, I consulta una tabella di routing per determinare a quale rete IP di uscita inoltrarlo. LL Il routing può essere statico (tabella compilata manualmente E dall’amministratore di rete), o dinamico (tabella aggiornata automaticamente). CH I router si scambiano messaggi per mezzo di un protocollo di routing. Nelle reti con molti router collegati tra loro, il routing dinamico consente di aggiornare NI le varie tabelle tenendo conto dei cambiamenti di topologia delle reti interconnesse e di eventuali problemi di traffico nei collegamenti. ZA I router periferici, come quelli installati nelle reti domestiche, nella tabella di routing statica prevedono una default route; i pacchetti sono indirizzati verso un router di livello gerarchico maggiore, chiamato gateway predefinito. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 54 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice Quando la nostra rete domestica si connette a Internet, il router comunica con un ISP (Internet Service Provider), tipicamente un operatore telefonico. Il collegamento tra il nostro router e l’ISP è un accesso remoto a Internet I e può avvenire in diversi modi: LL xDSL (Digital Subscriber Line), famiglia di tecnologie per la trasmissione dati E sulla linea telefonica; comprende ADSL (velocità fino a 20 Mbps in download e CH 1 Mbps in upload), HDSL, SDSL e VDSL; LTE tramite router con scheda SIM 4G, che usa la rete cellulare; NI fibra ottica fino a casa FTTH (Fiber-To-The-Home), velocità fino a 300 Mbps; ZA WiMAX (Worldwide Interoperability for Microwave Access), via onde radio, velocità fino a 30Mbps in download; satellitare, utile ad esempio in alta montagna, in mare aperto o in aereo: velocità fino a 22 Mbps in download e 6 Mbps in upload. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 55 Copia riservata all'insegnante Michele Salvemini - 2262599 3.5 L'accesso remoto a Internet Indice Il collegamento ADSL richiede un modem (modulatore-demodulatore), la fibra ottica invece usa l'ONT (Optical Network Terminal). I LL Con il collegamento ADSL (Asymmetric Digital Subscriber E Line) il modem riceve il segnale digitale proveniente dal router e CH lo trasmette modulando una portante a frequenze che non interferiscono con il segnale analogico delle telefonate. NI ZA La fibra ottica garantisce una larghezza di banda molto maggiore Invece del modem si usa l’apparecchio rispetto all’ADSL (possibile la chiamato ONT, che converte i segnali trasmissione di video ad alta luminosi provenienti dalla fibra ottica in definizione in streaming). segnali elettrici gestibili dal router. Tibone, Progettare e programmare Vol 3 © Zanichelli editore 2019 56 Copia riservata all'insegnante Michele Salvemini - 2262599