# Internet Protocol

IP
Internet Protocol (protocole internet, abrégé en IP) est une famille de protocoles de communication de réseaux informatiques conçus pour être utilisés sur Internet. Les protocoles IP sont au niveau 3 dans le modèle OSI. Les protocoles IP s'intègrent dans la suite des protocoles Internet et permettent un service d'adressage unique pour l'ensemble des terminaux connectés.

## Fonctionnement

Lors d'une communication entre deux postes, le flux de données provenant de la couche transport (niveau 4 du modèle OSI comme les segments TCP) est encapsulé dans des paquets par le protocole IP lors de leur passage au niveau de la couche réseau. Ces paquets sont ensuite transmis à la couche liaison de données (niveau 2 du modèle OSI) afin d'y être encapsulés dans des trames (par exemple Ethernet).
Lorsque deux terminaux communiquent entre eux via ce protocole, aucun chemin pour le transfert des données n'est établi à l'avance : il est dit que le protocole est « non orienté connexion ». Par opposition, pour un système comme le réseau téléphonique commuté, le chemin par lequel va passer la voix (ou les données) est établi au démarrage de la connexion : le protocole est « orienté connexion ».

## Services fournis

Les protocoles IP assurent l'acheminement au mieux (best-effort delivery) des paquets. Ils ne se préoccupent pas du contenu des paquets, mais fournissent une méthode pour les mener à destination.

## Fiabilité

Les protocoles IP sont considérés comme « non fiables ». Cela ne signifie pas qu'ils n'envoient pas correctement les données sur le réseau, mais qu'ils n'offrent aucune garantie pour les paquets envoyés concernant les points suivants :
* corruption de données.
* ordre d'arrivée des paquets (un paquet A peut être envoyé avant un paquet B, mais le paquet B peut arriver avant le paquet A)
* perte ou destruction de paquets
* duplication des paquets
En matière de fiabilité, le seul service offert par un protocole IP est de s'assurer que les en-têtes de paquets transmis ne comportent pas d'erreurs grâce à l'utilisation de somme de contrôle (checksum). Si l'en-tête d'un paquet comprend une erreur, sa somme de contrôle ne sera pas valide et le paquet sera détruit sans être transmis. En cas de destruction d'un paquet, aucune notification n'est envoyée à l'expéditeur (encore qu'un paquet ICMP puisse être envoyé).
Les garanties non offertes par un protocole IP sont déléguées aux protocoles de niveau supérieur. La raison principale de cette absence de gestion de la fiabilité est la volonté de réduire le niveau de complexité des routeurs et ainsi de leur permettre de disposer d'une plus grande rapidité. L'intelligence est alors déportée vers les points d'extrémité du réseau.

## Historique des versions

IPv4 est le protocole le plus couramment utilisé en 2012, sur Internet tout comme sur les réseaux privés. IPv6 est son successeur.
IPv4 utilise des adresses codées sur 32 bits (soit en théorie 4 294 967 296 adresses possibles) tandis qu'IPv6 les code sur 128 bits (soit en théorie 3,4 × 10$^{38}$ adresses possibles).
Le premier champ d'un paquet d'un protocole IP est composé de 4 bits qui indiquent la version du protocole utilisé. La valeur 0100 (4 en binaire) est utilisée pour IPv4, 0110 (6 en binaire) pour IPv6. La valeur 0101 (5 en binaire) est utilisée pour le protocole Internet Stream Protocol, la valeur 0111 (7 en binaire) pour TP/IX (RFC 1475), 1000 (8 en binaire) pour PIP (RFC 1621) et 1001 (9 en binaire) pour TUBA (« TCP and UDP with Bigger Addresses », RFC 1347).

### Épuisement des adresses IPv4

Distribution de l'espace d'adressage IPv4. Le 3 février 2011, il ne reste plus aucun bloc d'adresses libre au niveau de l'IANA.
* Réservé (13,7 %)
* Historique (35,9 %)
* RIPE NCC (13,7 %)
* AfriNIC (1,6 %)
* ARIN (14,1 %)
* APNIC (17,6 %)
* LACNIC (3,5 %)
La transition vers le protocole IPv6 permet de contourner une pénurie d'adresses publiques, ce qui aurait pu freiner la croissance du nombre de terminaux reliés à Internet. En attendant, les opérateurs envisagent le recours à des traducteurs d'adresses réseaux à grande échelle pour prolonger le fonctionnement d'IPv4.

### Historique complet

En mai 1974, l'Institut des ingénieurs électriciens et électroniciens (IEEE) publie un document intitulé « A Protocol for Packet Network Intercommunication ». Les auteurs de ce document, Vint Cerf et Bob Kahn, y décrivent un protocole qui permet d'interconnecter des réseaux de différents types pour construire un réseau global de très grande taille. Ce protocole doit permettre de partager des ressources en utilisant la commutation de paquets à travers des nœuds réseau.
Un composant central de ce nouveau modèle est un programme monolithique (Transmission Control Program) dont les deux fonctions principales seront scindées plus tard et donneront naissance aux spécifications des protocoles TCP et UDP.
Avec son adoption par le département de la défense des États-Unis (Department of Defense Four Layers Internet Model ou Suite des protocoles Internet, il se fait plus largement connaître sous l'acronyme TCP/IP.

#### Versions du protocole

En anglais, Internet Protocol Version ou IPv.

##### Versions 1 à 3

Les versions 1 à 3 (IPv1, IPv2 et IPv3) du protocole sont restées expérimentales. Elles ont été utilisées entre 1977 et 1979. Des notes IEN (Internet Experiment Note) décrivent ces versions du protocole antérieures à la version moderne IPv4.
* IEN 2 (Comments on Internet Protocol and TCP), datée d'août 1977, elle décrit le besoin de séparer les fonctionnalités des protocoles IP et TCP (qui étaient ensemble auparavant). Elle propose la première version d'un entête IP, et utilise la valeur 0 pour le champ correspondant à la version.
* IEN 26 (A Proposed New Internet Header Format), datée de février 1978, elle décrit une nouvelle version de l'entête IP qui utilise 1 bit pour le champ correspondant à la version.
* IEN 28 (Draft Internetwork Protocol Description Version 2), datée de février 1978, elle décrit les caractéristiques d'IPv2.
* IEN 41 (Internetwork Protocol Specification Version 4), datée de juin 1978, elle décrit la première mouture du protocole qui sera connu comme IPv4. L'entête IP n'est pas encore finalisé, il va subir encore des changements.
* IEN 44 (Latest Header Formats), datée de juin 1978 comme la précédente, elle décrit une autre version d'IPv4, avec une autre version de l'entête IPv4.
* IEN 54 (Internetwork Protocol Specification Version 4), en date de septembre 1978, il s'agit de la première description connue du protocole IPv4 dont la forme de l'entête a finalement été retenue et standardisée dans la RFC RFC 760

##### Version 4

La version 4 (IPv4) du protocole est une version qui a été très largement utilisée. Le nombre 4 est le numéro de version du protocole porté par les datagrammes IP qui l'utilisent. IPv4 est défini dans la RFC RFC 791 de 1981.

##### Version 5

La version 5 (IPv5) du protocole est une version expérimentale utilisée dans le cadre de l'étude du Internet Stream Protocol, protocole lui-même expérimental.

##### Version 6

Le successeur officiel du protocole IPv4 est IPv6. Ce protocole est le résultat de plusieurs années d'expérimentation et d'échanges au cours desquels plusieurs protocoles ont été proposés comme TP/IX (RFC 1475), PIP (RFC 1621) et TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Mais ce sont les spécifications du protocole actuel qui ont été retenues.

##### Version 7

Des études sont en cours afin d'apporter des améliorations notamment en apportant des fonctionnalités X25 pour les migrations N2/N3.
Travaux en cours chez OLABS (T.Rosselet/N.Dublinec).

##### Version 8-9 ?

D'autres propositions de protocoles nommées IPv8 et IPv9 peuvent être rarement rencontrées, mais AUCUNE affiliation n'est possible actuellement avec les standards internationaux.
Toutefois, le 1er avril 1994, l'IETF publiait un poisson d'avril relatif à IPv9.