Internet Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichette: Modifica da mobile Modifica da web per mobile
rb rimozione contenuti
Riga 1:
'''Internet Protocol''' ('''IP'''), in [[telecomunicazioni]] e [[informatica]], è un [[protocollo di rete]], che si occupa di indirizzamento/[[instradamento]], appartenente alla [[suite di protocolli Internet|suite di protocolli Internet TCP/IP]] su cui è basato il funzionamento della rete [[Internet]].
 
== Descrizione ==
È un protocollo di ''interconnessione di reti'' (''Inter''-''Net''working ''Protocol''), classificato al [[livello di rete]] (3) del [[modello ISO/OSI]], nato per interconnettere reti eterogenee per tecnologia, prestazioni, gestione, pertanto implementato sopra altri protocolli di [[livello di collegamento|livello collegamento]], come [[Ethernet]] o [[Asynchronous Transfer Mode|ATM]].
Line 18 ⟶ 20:
Anche se l'indirizzamento indiretto altro non è che una successione di instradamenti diretti tramite i protocolli locali di trasporto di livello 2, in generale operare un indirizzamento di livello 3 tramite i soli indirizzi MAC, pur essendo questi univoci per ciascun terminale host, non sarebbe stato possibile perché essi non danno vita ad un piano di indirizzamento gerarchico cioè gli indirizzi MAC, il cui assegnamento è pseudo-casuale, non sono raggruppabili in sottoreti con lo stesso prefisso identificativo come invece lo sono gli indirizzi Host_IP.
In altri termini esisterebbero notevoli problemi di [[scalabilità]] nell'implementare tabelle di instradamento indicizzate non per identificativi di sottoreti (Net_ID), ma per ciascun indirizzo MAC esistente.
 
== Indirizzo IP ==
{{vedi anche|Indirizzo IP}}
All'interno di una [[reti di calcolatori|rete]] IP, ad ogni ''[[interfaccia (informatica)|interfaccia]]'' connessa alla rete fisica viene assegnato un [[indirizzo IP|indirizzo]] univoco.
 
L'indirizzo IP è assegnato propriamente all'interfaccia (ad esempio una [[scheda di rete]]) e non all'[[host]], perché è questa ad essere connessa alla rete. Un [[router]], ad esempio, ha diverse interfacce e per ognuna occorre un indirizzo IP.
 
=== Indirizzi IP e nomi DNS ===
Gli indirizzi IP sono numeri, e come tali non sono facili da ricordare per la maggior parte degli esseri umani. Il problema diventa ancora più serio con IPv6 che ha una stringa di indirizzamento di 128 bit anziché i consueti 32 di IPv4. Per questa ragione, spesso ad un indirizzo IP viene associato un nome simbolico [[DNS]].
 
=== Indirizzi IP ed indirizzi MAC ===
I protocolli di collegamento, al livello 2 del modello [[ISO]]/[[Modello OSI|OSI]], indirizzano i calcolatori utilizzando il [[indirizzo MAC|MAC address]].
 
Quando su una rete locale si utilizza IP, ad ogni calcolatore deve essere assegnato anche un indirizzo IP, per permettergli di comunicare con i calcolatori al di fuori della sua rete locale.
 
La corrispondenza tra indirizzo IP e MAC address è gestita tramite il protocollo [[Address Resolution Protocol|ARP]], che permette di conoscere il MAC address di un computer dato il suo indirizzo IP tramite un'interrogazione distribuita.
 
L'assegnazione di un indirizzo IP ad un calcolatore può essere manuale, o automatizzata da protocolli come [[DHCP]] o gli obsoleti [[BOOTP]] e [[RARP]].
 
== Pacchetto IP ==
{{vedi anche|IPv4|IPv6}}
Nel pacchetto IP, cioè la sua [[Protocol Data Unit|PDU]] detta anche ''datagramma'', i campi più importanti sono:
* ''Header Length'': lunghezza dell'header;
* ''Total Length'': Lunghezza totale del pacchetto IP;
* ''TOS'': gestione priorità e QoS;
* ''Protocol number'': Questo campo indica quale protocollo di alto livello è stato usato per creare le informazioni immagazzinate nella porzione di dati del pacchetto;
* ''Time-to-live'': Tempo di vita del pacchetto. Il TTL è un numero che viene decrementato ogni volta che il pacchetto IP percorre un [[nodo (informatica)|nodo di rete]] fino ad arrivare a zero. Se il TTL arriva a zero vuol dire che il pacchetto non è riuscito ad arrivare a destinazione ed è stato scartato per evitare di appesantire il traffico inutilmente; si utilizza per evitare possibili cicli infiniti di instradamento.
* ''Identification'': identifica in modo univoco tutti i frammenti di un pacchetto;
* ''Fragment Offset'': indica il numero di byte di dati presenti nel pacchetto ad esso precedente. Se il frammento è il primo o univoco è uguale a 0;
* ''Header Checksum'': checksum in complemento a 1;
* ''Source IP address'': Indirizzo IP del mittente;
* ''Destination IP address'': Indirizzo IP del destinatario;
* ''Padding'': bit riempitivi (0) per riallinearsi su multipli di 32 bit;
* ''Data'': dati da inviare ([[Carico utile (informatica)|carico utile]]).
 
== Funzionamento ==
=== Host ===
Un host è un calcolatore che utilizza una rete IP. Un host ha normalmente una interfaccia attiva, configurata con un '''indirizzo IP''' (configurato manualmente oppure ricevuto tramite protocolli automatici come [[DHCP]] o [[Point-to-Point Protocol|PPP]]). Questo indirizzo è caratterizzato da una '''[[maschera di sottorete]]''', che permette di calcolare se un altro indirizzo IP appartiene alla stessa [[sottorete]] oppure no. Inoltre lo strato IP è configurato con l'indirizzo IP del '''[[gateway (informatica)|gateway]]'''.
 
=== Instradamento ===
Estratto l'indirizzo IP dal pacchetto (datagramma IP), mettendo in AND l'indirizzo IP e la subnet-mask si ottiene l'indirizzo di Net_Id che individua la sottorete di destinazione: se tale indirizzo coincide con quello dell'interfaccia del router si ha ''[[instradamento]] diretto'' all'interno della stessa sottorete dopo risoluzione IP/MAC tramite [[Address Resolution Protocol|protocollo ARP]], se invece la Net_ID calcolata non corrisponde a nessuna interfaccia del router verso le rispettive sottoreti interconnesse, dopo l'indirizzamento ottenuto tramite consultazione della [[routing table|tabella di routing]], si ha ''instradamento indiretto'' ovvero il router utilizza l'''instradamento diretto'' (locale) di livello 2 tramite protocollo ARP per inviare il pacchetto verso il [[gateway (informatica)|gateway]] o il successivo [[router]] (''next hop'') il quale procederà per successivi salti di instradamento fino alla sottorete di destinazione sempre seguendo le informazioni di instradamento contenute nelle tabelle di routing dei rispettivi router, a loro volta create e aggiornate dinamicamente dai [[protocolli di routing]].
 
Suddividere l'instradamento in due parti distinte, instradamento per sottorete (Net_Id) e instradamento finale per host (Host_Id), fa parte dunque del piano gerarchico di instradamento secondo IP e ha fondamentalmente ragioni pratico-implementative oltre che di efficienza: non sarebbe infatti possibile instradare pacchetti unicamente secondo l'intero indirizzo IP (o anche l'indirizzo MAC) dell'host in quanto le tabelle di routing avrebbero dimensioni ingestibili da parte dei processi di elaborazione sui router. A tale problema si aggiunge inoltre il fatto che gli indirizzi IP Host_Id sono molto spesso assegnati in maniera dinamica.
 
=== [[Gateway (informatica)|Gateway]] o [[Router]] ===
Questi dispositivi possiedono più interfacce e collegano tra loro sottoreti diverse, inoltrando pacchetti IP da una all'altra. Per decidere su quale interfaccia inviare un pacchetto ricevuto, cercano l'indirizzo destinazione del pacchetto in una tabella di routing, che nei casi non banali viene gestita dinamicamente tramite uno o più [[Protocolli di routing]].
 
== Visualizzare la configurazione IP ==