IPv4
Il s'agit de la version 4 du protocole IP lequel utilise un format de 4 chiffres située dans l'intervalle de 0 à 255. Il est combiné avec un masque réseau de 4 chiffres avec également un intervalle de 0 à 255, permettant de définir la portée de l'adresse IP. L'adresse local par défaut est «127.0.0.1». De plus, les adresses commençant par «192.168.» sont considéré comme des adresses internes et ne peuvent être utiliser pour l'Internet grand publique.
Voici les caractéristiques clefs de l'IPv4 :
- Structure d'adresse
- Longueur de l'adresse : Une adresse IPv4 est une adresse de 32 bits, généralement représentée en notation décimale à points. Elle est divisée en quatre octets (8 bits chacun), par exemple 192.168.1.1.
- Nombre d'Adresses : Avec 32 bits, IPv4 peut théoriquement adresser environ 4,3 milliards d'adresses uniques (2^32). Cependant, en raison de l'attribution et de l'organisation des adresses en sous-réseaux, le nombre d'adresses utilisables est inférieur.
- Notion de Sous-réseau
- Masque de Sous-réseau (Subnet Mask) : IPv4 utilise des masques de sous-réseau pour diviser les adresses IP en réseaux plus petits ou sous-réseaux. Le masque de sous-réseau détermine quelles parties de l'adresse IP désignent le réseau et quelles parties désignent l'hôte.
- CIDR (Classless Inter-Domain Routing) : Introduit pour remplacer les classes d'adresse, CIDR permet une allocation plus flexible des adresses IP. Par exemple, 192.168.1.0/24 indique un réseau avec 256 adresses possibles.
- Broadcast et Multicast
- Broadcast : IPv4 supporte les adresses de broadcast, envoyant un message à tous les hôtes sur un réseau spécifié. Par exemple, 192.168.1.255 envoie un message à tous les hôtes du réseau 192.168.1.0/24.
- Multicast : Permet l'envoi d'un paquet à un groupe spécifique de hôtes en utilisant une adresse multicast (classe D).
- Protocole de Transmission
- Non Fiable : IPv4 est un protocole non fiable, ce qui signifie qu'il ne garantit pas la livraison des paquets, l'ordre de livraison, ou la protection contre la duplication des paquets. Les protocoles de niveau supérieur, comme TCP, gèrent ces aspects.
- Fragmentation et réassemblage : Si un paquet IP est trop grand pour être transmis sur un réseau, il peut être fragmenté. Les fragments sont ensuite réassemblés par l'hôte de destination.
- Format du Paquet IPv4
- Entête (Header) : L'entête IPv4 typique est de 20 octets (160 bits) et contient des informations cruciales comme l'adresse source, l'adresse destination, la version du protocole, la longueur, le champ de fragmentation, le TTL (Time to Live), et le protocole de niveau supérieur (TCP, UDP,...).
- Options : IPv4 permet d'ajouter des options dans l'entête, bien que cela soit peu utilisé en raison de l'impact sur les performances.
- TTL (Time to Live)
- Limite de Sauts (Hop Limit) : Le TTL est un champ dans l'entête IPv4 limitant le nombre de sauts qu'un paquet peut effectuer avant d'être détruit. Cela empêche les paquets de circuler indéfiniment en cas de boucles de routage.
- Adresse Privée et Publique
- Adresses Privées : Certaines plages d'adresses IPv4 sont réservées pour les réseaux privés et ne sont pas routées sur l'Internet public. Exemples : 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12.
- Adresses publiques : Toutes les autres adresses IPv4 peuvent être routées sur Internet. Elles doivent être uniques sur l'ensemble du réseau mondial.
- NAT (Network Address Translation)
- Traduction d'adresses : NAT est couramment utilisé pour permettre à plusieurs appareils sur un réseau local utilisant des adresses privées d'accéder à Internet en utilisant une seule adresse IP publique.
- Problèmes d'épuisement d'adresses
- Épuisement des adresses : En raison de la croissance rapide d'Internet, les adresses IPv4 sont devenues de plus en plus rares, menant à l'épuisement des adresses IPv4 disponibles, ce qui a encouragé la transition vers IPv6.
- Compatibilité et Support
- Ubiquité : IPv4 est le protocole IP le plus largement déployé et supporté sur presque tous les dispositifs connectés à Internet.
- Compatibilité avec IPv6 : Des mécanismes comme le dual-stack, le tunneling, et la traduction d'adresse sont utilisés pour assurer l'interopérabilité entre IPv4 et IPv6.
- Sécurité
- IPsec (Internet Protocol Security)&nbps;: Bien que conçu à l'origine pour IPv6, IPsec peut également être utilisé avec IPv4 pour assurer la sécurité des transmissions, incluant l'authentification, la confidentialité et l'intégrité des données.
Structure de données
Adresse IPv4
Une adresse IPv4 est une adresse 32 bits étant unique pour la connexion d'un périphérique à Internet. L'espace adresse (un espace adresse représente le nombre total d'adresses utilisées par le protocole) de IPv4 est égal à 232 ou 4 294 967 296. Il y a 2 notations pour montrer une adresse IPv4 : la notation binaire et la notation décimale. En notation binaire, l'adresse IPv4 est affichée sous forme de 32 bits ou simplement une adresse de 4 octets. En générale, les adresses IP sont écrites sous forme décimale avec un point décimal séparant les octets.
Classes de IPv4
Dans l'adressage des IP par classe, l'espace d'adressage est divisé en 5 classes : A, B, C, D et E. Nous pouvons trouver la classe d'une adresse lorsque l'adresse est donnée en notation binaire ou en notation décimale à points. Si vous avez une notation décimale par points, la première partie de l'adresse est utilisée pour déterminer la classe. Si vous avez l'adresse sous forme binaire, les premiers bits peuvent être utilisés pour déterminer la classe de l'adresse. L'image suivante permet d'indiquer les différentes classe d'adresse IP :
Voici les détails des différentes classes :
Classe | Adresse de début | Adresse de fin | CIDR | Description |
---|---|---|---|---|
Classe A | 0.0.0.0 | 127.255.255.255 | /8 | Cette classe permet d'indiquer une adresse IP utilisant un seul octet pour définir le réseau et 3 octets pour indiquer les cartes réseaux des périphériques ou ordinateur. |
Classe B | 128.0.0.0 | 191.255.255.255 | /16 | Cette classe permet d'indiquer une adresse IP utilisant 2 octets pour définir le réseau et 2 octets pour indiquer les cartes réseaux des périphériques ou ordinateur. |
Classe C | 192.0.0.0 | 223.255.255.255 | /24 | Cette classe permet d'indiquer une adresse IP utilisant 3 octets pour définir le réseau et 1 octet pour indiquer les cartes réseaux des périphériques ou ordinateur. |
Classe D | 224.0.0.0 | 239.255.255.255 | Cette classe permet d'indiquer une adresse IP pour la communication multicast. | |
Classe E | 240.0.0.0 | 255.255.255.255 | Cette classe permet d'indiquer une adresse IP réservé par l'IANA ou un usage future. |
Programmation
Voici les différentes bibliothèques disponibles en fonction des langages de programmation :
Langage | Bibliothèque |
---|---|
C | arpa/inet.h (UNIX) |
C# (C Sharp) | System.Net (espace de nom standard), IPNetwork |
Delphi | Indy (Internet Direct), Jedi (la composante TJclIpAddress) |
Free Pascal | Indy (Internet Direct), lNet |
Go | net (paquet standard) |
Java | java.net, Apache Commons Net |
Perl | Net::IP |
Python | ipaddress (module Standard), netaddr, ipcalc |
PHP | PHPIPAM, Net_IPv4 |
Ruby | ipaddr (bibliothèque standard) |
Rust | ipnetwork |
Turbo Pascal | IPLIB-TP |