Privacy Policy Cookie Policy Terms and Conditions IPv4 - Wikipedia

IPv4

Da Wikipedia, l'enciclopedia libera.

Suite di protocolli Internet   Modifica
Livello applicazioni HTTP, HTTPS , SMTP, POP3, IMAP, FTP, DNS
SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet,
HSRP, BitTorrent, RTP,...
Livello di trasporto TCP, UDP, SCTP, DCCP ...
Livello di internetworking IPv4, IPv6, DHCP, ICMP, BGP, OSPF,
RIP, IGRP, IGMP, IPsec...
Livello di collegamento Ethernet, WiFi, PPP, Token ring,
ARP, ATM, FDDI, LLC, SLIP ...
Livello fisico Doppino, Fibra ottica, Cavo coassiale,
Codifica Manchester, Codifica 4B/5B, WiFi ...

Indice

[modifica] Definizione

IPv4 è la versione di rappresentazione di indirizzi IP attualmente in uso dell'Internet Protocol. Esso è descritto nell'IETF RFC 791 pubblicato per la prima volta nel settembre 1981.

[modifica] IP Header

Il diagramma seguente mostra come è fatto l'header del protocollo IPv4:

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
Versione IHL Servizio Lunghezza totale
Identificazione Flags Offset frammentazione
TTL Protocollo Checksum
Indirizzo mittente
Indirizzo destinatario
Opzioni Padding

Notare che la larghezza della cella è proporzionale alla lunghezza del campo. In testa alla tabella sono numerati i bit. Di seguito riporto il sorgente contenuto nella libreria ip.h di Linux.

 struct iphdr {
  #if defined(__LITTLE_ENDIAN)
      uint8_t   ihl:4, version:4;
  #elif defined (__BIG_ENDIAN)     
      uint8_t   version:4, ihl:4;
  #endif
   uint8_t      tos;
   uint16_t     tot_len;
   uint16_t     id;
   uint16_t     frag_off;
   uint8_t      ttl;
   uint8_t      protocol;
   uint16_t     check;
   uint32_t     saddr;
   uint32_t     daddr;
 /*The options start here. */
 };

[modifica] Indirizzi

L'indirizzo IPv4 è formato da 32 bit, esso è univoco sulla rete di cui fa parte. Tale indirizzo, inoltre, non va assegnato all'host, ma alle connessioni fisiche alla rete che l'host possiede (nel cast di host multicollegati o di dispositivi di rete). Si è però verificato che i primi paesi in cui si è diffuso Internet e all'interno di essi i primi provider, si sono "accapparrati" un numero di Ip proporzionalmente sbilanciato. Gli ultimi provider hanno pertanto dovuto ricorrere ad un sistema per ovviare alla scarsità degli IP a loro attribuiti. Hanno pertanto considerato gli utenti a loro connessi di una intera città come un'unica LAN e pertanto tutti dotati dello stesso IP.

Concettualmente l'indirizzo IP si compone di due parti:

  1. identificatore di rete e precisamente della sottorete
  2. identificatore di host

[modifica] Notazione decimale puntata

Per semplificarne la lettura, ogni indirizzo IP viene descritto con 4 numeri in base decimale, in modo che ognuno rappresenti un byte (il valore di un byte varia da 0 a 255 quando lo consideriamo in base dieci), separati dal simbolo "punto"; un esempio di indirizzo IPv4 è 192.0.34.166.

[modifica] Indirizzi particolari

Ogni indirizzo in cui l'identificativo host presenta tutti 0 ci si riferisce alla rete, mentre se tutti i bit di questo identificativo sono a 1 ci si riferisce ad una trasmissione broadcast diretta.

In pratica quando ad un router arriva un pacchetto con un indirizzo host con tutti bit a 1, questo esegue un broadcast a tutti gli host della sottorete.

[modifica] Indirizzamento a classi

Se un host deve comunicare con un altro host della stessa sottorete, userà il protocollo di livello 2 della rete a cui è collegato, altrimenti dovrà inviare i pacchetti ad un gateway o router, che sarà connesso ad altre reti e si occuperà di inoltrare i pacchetti ricevuti.

La comunicazione tra i router avviene mediante indirizzi IP utilizzando delle tecniche particolari di indirizzamento per individuare la sottorete e l'host.

Originariamente lo schema delle suddivisione delle due componenti era a classi per cui un indirizzo IP aveva una delle seguenti forme:

                         8              16             24               31
           ---------------------------------------------------------------
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                     |
           ---------------------------------------------------------------

Con questi schemi l'indirizzo è ad autoidentificazione perché il confine tra le due componenti si può determinare con i bit più significativi.

Vediamo come:

  • classe A: il primo byte rappresenta la rete, gli altri l'host; [0-127].x.x.x. La maschera di sottorete è 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 sottorete è 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 sottorete è 255.255.255.0, o /24. Questi indirizzi iniziano con la sequenza 110
  • classe D: riservata agli indirizzi multicast: [224-255].x.x.x

Per approfondimento vedere classi di indirizzi IP.

[modifica] Limiti

Il numero di indirizzi univoci disponibili in IPv4 è 2^{32} = 256^4 = 4.294.967.296 \cong 4,3 \cdot 10^9, ma bisogna tener presente che non vengono usati tutti, perché alcuni sono riservati a un particolare utilizzo (ad esempio gli indirizzi 0.0.0.0, 255.255.255.255, 192.0.34.166 e la classe 192.168.0.1/16) e perché certe classi non vengono sfruttate interamente per via della suddivisione interna in classi più piccole.

L'indirizzamento a classi, proprio per questo, presenta diversi limiti dovuti soprattutto al numero di host gestibili dalle diverse classi.

In pratica se si esauriscono gli indirizzi univoci resi disponibili da una classe, ad esempio la C connettendo più di 255 host, occorre fare ricorso ad un indirizzo di classe superiore.

Il cambiamento di indirizzo non è indolore con questa tecnica perché il software di rete va aggiornato con i nuovi indirizzi e non consente una transizione graduale.

In pratica l'indicatore di rete univoco non poteva adempiere alle esigenze della crescita che negli anni '80 ebbero le reti LAN. Quindi per risparmiare i prefissi di rete si dovettero escogitare altre tecniche come quella del mascheramento per continuare a fare in modo che IPv4 potesse adempiere al suo ruolo prima dell'entrata di IPv6.

[modifica] Indirizzamento senza classi

L'indirizzamento in classi è considerato obsoleto, e per permettere un migliore sfruttamento degli indirizzi IP disponibili, è stato introdotto l'indirizzamento senza classi, o CIDR.

La modifica introdotta dal CIDR consiste essenzialmente nell'utilizzare maschere di sottorete (subnet mask) di lunghezza arbitraria, mentre l'indirizzamento con classi ammetteva solo tre lunghezze della maschera di sottorete: /8, /16 e /24. La maschera della vecchia classe C (/24) è ancora popolare, ma si usano anche maschere più corte per reti grandi (/23 o /22) o più lunghe per reti piccole (/25, /26, fino a /30 per reti punto-punto).

I bit che nella maschera di sottorete sono a 1 fanno parte dell'indirizzo della sottorete, gli altri sono l'indirizzo dell'host. Normalmente, la maschera di sottorete è costituita da N bit a 1 seguiti da (32-N) bit a 0, e può essere abbreviata nella forma /N.

In questo modo non si è vincolati a un numero fisso di bit per determinare l'indirizzo di rete, ma i bit utili a rappresentare la rete, piuttosto che l'host, sono fissati liberamente.

Vedi anche Saturazione di IPv4.

[modifica] Enti

Gli indirizzi IP sono univoci a livello mondiale, e vengono assegnati in modo centralizzato da una gerarchia di enti appositi. Sono considerati una risorsa preziosa da gestire con cura. Per rafforzare questo concetto, si parla di "indirizzi IP pubblici".

Inizialmente l'autorità preposta era la IANA (Internet Assigned Number Authority), dopo il 1998 venne creato l'ICANN (Internet corporation for Assigned Names and Numbers) che opera tuttora. Essa è responsabile della gestione degli indirizzi IP in base alle direttive dell'RFC 2050.


[modifica] Voci correlate

[modifica] Collegamenti esterni

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu