IP (Internet Protocol)

IP est un protocole de communication qui définit la manière dont les paquets de données sont envoyés et reçus sur des réseaux informatiques. IP fait partie de la suite de protocoles Internet, qui est la base d’Internet.

Caractéristiques principales d’IP :

  1. Adressage : Chaque dispositif sur un réseau IP a une adresse unique (adresse IP). Cette adresse est utilisée pour acheminer les paquets de données vers leur destination correcte.
  2. Sans connexion : IP est un protocole sans connexion, ce qui signifie qu’il n’établit pas de connexion avant d’envoyer des paquets. Il envoie simplement les paquets sans garantir leur livraison.
  3. Sans état : IP ne garde pas trace des paquets qu’il a envoyés ou reçus.
  4. Fragmentation et défragmentation : Les paquets IP peuvent être fragmentés en plusieurs petits paquets si le réseau intermédiaire ne peut pas gérer la taille initiale. Ces fragments sont ensuite réassemblés à la destination.
  5. Version : Il y a deux versions d’IP largement utilisées – IPv4 et IPv6. IPv6 a été introduit en raison de l’épuisement des adresses IPv4.

TCP (Transmission Control Protocol)

TCP est un protocole de transport qui fonctionne au-dessus d’IP dans la suite de protocoles Internet. Il est conçu pour fournir une communication fiable dans des réseaux potentiellement non fiables.

Caractéristiques principales de TCP :

  1. Orienté connexion : Avant de transmettre des données, TCP établit une connexion entre l’expéditeur et le destinataire à l’aide d’un processus appelé « handshake » en trois étapes.
  2. Transmission fiable : TCP garantit que les données envoyées par l’expéditeur parviendront au destinataire. Il le fait en accusant réception des paquets reçus et en renvoyant les paquets qui n’ont pas été accusés réception.
  3. Contrôle de flux : TCP utilise des mécanismes de fenêtrage pour s’assurer qu’un expéditeur n’inonde pas un destinataire avec plus de données qu’il ne peut en gérer.
  4. Contrôle de la congestion : TCP ajuste le débit de données en fonction des conditions du réseau pour éviter d’encombrer le réseau.
  5. Séquençage : Les paquets TCP sont numérotés afin qu’ils puissent être réassemblés dans le bon ordre à la destination.

Relation entre IP et TCP

TCP et IP travaillent ensemble pour garantir une communication fiable sur des réseaux non fiables. IP se charge de l’acheminement des paquets entre l’expéditeur et le destinataire, tandis que TCP se charge de s’assurer que ces paquets arrivent de manière fiable et dans le bon ordre.

Quand on parle de la suite de protocoles Internet, on utilise souvent le terme « TCP/IP » pour désigner cette combinaison d’IP pour le routage et de TCP pour la fiabilité.

En résumé, alors qu’IP se concentre sur la livraison des paquets sans garantir leur ordre ou leur intégrité, TCP ajoute une couche de fiabilité en garantissant que les données arrivent intactes, dans le bon ordre, et en établissant une connexion avant la transmission.

Que contient un datagramme IP ?

Un paquet IP, souvent appelé datagramme IP, est composé d’un en-tête (header) et d’une charge utile (payload). Décortiquons l’en-tête d’un paquet IPv4, qui est la version la plus couramment utilisée de l’Internet Protocol :

Source de l’image : wikipedia

En-tête IP (IPv4) :

  1. Version (4 bits) : Indique la version de l’IP. Pour IPv4, cette valeur est « 4 ».
  2. IHL (Internet Header Length) (4 bits) : Indique la longueur de l’en-tête en mots de 32 bits. La longueur minimale est de 5 (ce qui signifie une longueur d’en-tête de 20 octets), car un en-tête sans options est de 20 octets.
  3. Type de service (8 bits, désormais appelé DSCP et ECN) : Spécifie la qualité de service demandée. Les 6 premiers bits sont pour le « Differentiated Services Code Point » (DSCP) et les 2 derniers bits sont pour le « Explicit Congestion Notification » (ECN).
  4. Longueur totale (16 bits) : Spécifie la longueur totale du datagramme IP, y compris l’en-tête et les données, en octets.
  5. Identifiant (16 bits) : Utilisé pour différencier les fragments d’un même paquet original.
  6. Drapeaux (3 bits) :
    • Bit de réservation (généralement mis à 0).
    • Bit « Don’t Fragment » (DF).
    • Bit « More Fragments » (MF).
  7. Position de fragment (13 bits) : Indique où ce fragment se situe par rapport à l’ensemble du datagramme original.
  8. Durée de vie (Time to Live, TTL) (8 bits) : Limite le nombre de routeurs (hops) que le datagramme peut traverser avant d’être supprimé. Diminué de 1 à chaque saut.
  9. Protocole (8 bits) : Indique le protocole de la charge utile (par exemple, 6 pour TCP, 17 pour UDP).
  10. Somme de contrôle d’en-tête (16 bits) : Utilisée pour vérifier l’intégrité de l’en-tête.
  11. Adresse IP source (32 bits) : Adresse IP de l’expéditeur du datagramme.
  12. Adresse IP de destination (32 bits) : Adresse IP du destinataire du datagramme.
  13. Options (variable, mais généralement omises) : Peut être utilisé pour diverses fonctionnalités, bien que rarement utilisé dans la pratique moderne.

Charge utile :

La charge utile d’un paquet IP contient les données réelles à transmettre, qui peuvent être un segment TCP, un datagramme UDP, ou d’autres données provenant de protocoles de niveau supérieur. La structure de cette charge utile dépend du protocole spécifié dans le champ « Protocole » de l’en-tête IP.

Notez que ce qui précède est spécifique à IPv4. IPv6, la version plus récente du protocole IP, a un format d’en-tête différent, bien que certaines des idées de base soient similaires.