Explications sur TCP-IP

Comprendre le protocole TCP-IP

TCP/IP (Transmission Control Protocol/Internet Protocol) est l’un des protocoles contenu dans un ensemble appelé pile dont le rôle est de prendre en charge les communications réseau faites avec le protocole TCP qui est aujourd’hui devenu un standard normalisé par l’IETF (Internet Enginer Task Force) mais qui a été intégré déjà bien avant par Microsoft dans différentes versions de Windows, notamment pour concurrencer le rival de l’époque : Novell et son protocole IPX/SPX, tandis qu’IBM utilisait lui aussi son protocole maison : SNA.

Dans la pile TCP, on trouve les protocoles suivants : HTTP, FTP, ARP, ICMP, IP, TCP, UDP, SMT, NNTP et Telnet.

TCP/IP est le protocole réseau général utilisé sur internet. Il s’appuie sur le repérage de chaque ordinateur au travers d’un numéro unique appelé adresse IP constituée de 4 groupes de 3 chiffres. Par exemple 193.110.020.001.

Ces numéros ont été classés par famille, dénommées classes.

Etant donné qu’il est plus facile pour un utilisateur de se souvenir d’un nom plutôt que d’une adresse IP, surtout s’il y a beaucoup d’ordinateurs sur un réseau, on a mis en place la technique du DNS (Domain Name Service) : on fait correspondre à chaque adresse IP un nom. L’ordinateur ayant l’adresse IP 010.000.000.010 a pour nom « Pipouille ». Avec ce principe, taper l’adresse IP 010.000.000.010 ou le nom « Pipouille » revient au même.

Sur internet, un serveur sur lequel se trouve des pages web ou des fichiers à télécharger est donc identifié par son adresse IP qui lui est propre et unique et dont la translation entre son nom de domaine (www.monserver.fr) et son adresse IP est réaliser par le DNS.

Les ports TCP-IP

La consultation des pages web faites au travers d’un navigateur ou le téléchargement d’un fichier, avec un programme dénommé « client FTP« , est normalisé dans le protocole TCP. Ainsi, l’affichage d’une page web utilise le port 80.

Le port permet d’identifier l’action qui est faite par l’utilisateur sur le serveur. 80 est donc la consultation d’une page web et 21 le numéro de port utilisé par un client FTP pour télécharger un fichier.

Les communications entre 2 machines sur un réseau sont toujours classées dans l’un des 2 ensembles suivants :

  1. Protocole orienté connexion
  2. Protocole non orienté connexion

Dans le 1er cas, un contrôle du bon acheminement des informations entre les 2 machines est effectué. Les informations étant découpées en paquets, cela permet de réexpédier l’un d’eux s’il arrivait en mauvais état sur l’ordinateur destinataire. TCP/IP fait parti de cette famille.

Dans le 2e cas, il n’y a pas de contrôle sur l’acheminement des informations : elles transitent sur le réseau pour arriver sur l’ordinateur destinataire, qu’elles aient été endommagées en cours de route ou non. Le protocole UDP de la pile TCP fait parti de cet ensemble.

Il existe une multitude de numéros de port. Certains sont normalisés, comme le 80 et le 21, ou encore le 6667 qui sert aux dialogues en direct dits tchats.

Ces adresses normalisées sont dites statiques. Les autres, fort nombreuses, sont laissées au libre arbitre des éditeurs de logiciels : les numéros de port ainsi attribués sont dits dynamiques.

De plus, le responsable informatique d’une entreprise peut décider d’attribuer des valeurs particulières à des ports spécifiques afin d’améliorer la sécurité.

Le protocole OSI et TCP-IP

Pour s’affranchir des différences entre les systèmes d’exploitation et permettre d’utiliser TCP/IP avec un maximum d’entre eux, les protocoles de la pile TCP ont été découpés en couches, à l’image du modèle OSI qui comporte 7 couches :

  1. La couche physique convertie les données en signaux numériques
  2. La couche liaison données qui fait l’interface avec la carte réseau
  3. La couche réseau qui s’occupe de l’adressage et du routage des informations
  4. La couche transport prend en charge le transfert des données sur le réseau et les erreurs éventuelles
  5. La couche session s’occupe des ouvertures de session des ordinateurs désireux de se connecter au réseau
  6. La couche présentation régit le format des informations transmises, telles que la compression et le cryptage
  7. La couche application fait interface avec les logiciels assurant toute opération liée au réseau

La pile TCP-IP

La pile TCP, quant à elle, n’a que 4 couches :

  1. La couche application
  2. La couche transport
  3. La couche internet
  4. La couche d’accès réseau

Le nombre restreint des couches de la pile TCP rend leurs fonctions multiples par rapport au modèle OSI :

  • La couche application s’occupe de tout logiciel qui a besoin du réseau : Telnet, SMTP, FTP, HTTP… Elle recouvre les différentes actions des couches Application, Présentation et Session du modèle OSI.

Les logiciels qui utilisent la couche Application dialoguent avec la couche Transport via le protocole TCP ou UDP.

  • La couche transport a la même rôle que dans le modèle OSI. Elle prend notamment en charge les protocoles TCP (protocole orienté connexion) ou UDP (protocole non orienté connexion).
  • La couche internet est la plus importante puisqu’elle prend en charge le découpage, l’acheminement et le réassemblage des données sur l’ordinateur destinataire. Elle prend en charge l’adressage IP et contient les protocoles IP, ARP, ICMP, RARP et IGMP.
  • La couche d’accès réseau regroupe les rôles des couches Liaison données et Physique du modèle OSI. Elle prend en charge l’acheminement des données, leur synchronisation, leur formatage, leur conversion analogique/numérique et le contrôle des erreurs. Elle travaille avec les protocoles de transmission FTS, FDDI, PPP et Ethernet

Structure d’un paquet TCP-IP

Les informations transmises d’un ordinateur à un autre au travers d’une liaison réseau, sont découpées en paquets de 32 bits dénommés datagrammes. Au début de chacun de ces paquets sont ajoutées différentes informations :

  • La version du protocole IP utilisée (IPv4 ou IPv6)
  • La longueur de l’en-tête
  • Le type de service
  • La longueur totale du paquet
  • Les indicateurs de début et de fin du paquet
  • Le nombre maximal de routeurs que peut traverser le paquet (dit « durée de vie »)
  • Le protocole utilisé (ICMP, IGMP, TCP ou UDP)
  • La somme de contrôle qui permet de savoir si le paquet a été correctement acheminé (checksum)
  • L’adresse IP de l’ordinateur émetteur
  • L’adresse IP de l’ordinateur destinataire

La plus grande taille que puisse avoir un paquet est 65 Ko (65 535 octets). Malheureusement, les réseaux ne peuvent pas supporter des paquets d’aussi grande taille. Aussi faut il les découper en paquets de taille inférieure, définie en fonction du type de réseau à traverser : Ethernet ou FDDI par exemple. Cette unité de découpage est dite MTU : Maximum Transfer Unit. Pour l’Ethernet, elle est de 1500 octets et pour le FDDI de 4470 octets.

Ce sont les routeurs qui vont se charger de découper les paquets en fonction de la valeur de MTU. Le découpage obtenu sera toujours d’une taille multiple de 8 octets. Le routeur expédie ensuite de manière indépendante chacun des paquets, d’où la nécessite d’y ajouter pour chacun des informations en en-tête. C’est à l’aide de ces informations qu’à l’autre bout les paquets pourront être réassemblés dans le bon ordre.

Comment analyser une trame TCP-IP

Une trame TCP se décompose, dans l’ordre suivant, de plusieurs champs :

  1. Socket relatif au logiciel utilisé sur l’ordinateur de départ
  2. Socket relatif au logiciel utilisé sur l’ordinateur d’arrivée
  3. Numéro d’ordre pour la synchronisation des numéros de séquence
  4. Numéro d’accusé de réception du dernier segment reçu par l’ordinateur d’arrivée
  5. Décalage des données qui précise le début effectif des données dans le paquet
    6 bits réservés à un usage ultérieur, sans signification pour l’instant
  6. Indicateurs précisant si le paquet est urgent, s’il est un accusé de réception, s’il agit conformément à la méthode push, si la connexion est réinitialisée, etc.
  7. 16 bits indiquant le nombre d’octets que reçoit l’ordinateur d’arrivée sans nécessité de recevoir un accusé de réception
  8. Checksum calculé sur la somme des champs de données de l’en-tête
  9. Numéro d’ordre
  10. Options diverses
  11. L’espace éventuellement restant est rempli de zéros pour atteindre les 32 bits que doit former la trame TCP

C’est quoi l’adresse IP d’un ordinateur

Une adresse IP est traditionnellement codée sur 32 bits, via 4 groupes de numéros allant de 0 à 255.

Une adresse IP identifiant un ordinateur spécifique, il ne doit pas y avoir de doublon. Pour que les serveurs qui sont sur le réseau internet ne puissent pas utiliser une adresse IP déjà prise, il a été décidé que leur adressage IP serait régit par un organisme officiel : l’IANA (Internet Assigned Numbers Agency).

Il existe 3 principales classes d’adresse IP pour les réseaux :

  1. La classe A va de 000.000.000.000 à 127.000.000.000 en théorie car en pratique le réseau de base (dit netID) 000.000.000.000 n’existe pas et 127.000.000.000 est réservé.
    Cette classe autorise un maximum de 16.777.214 éléments adressables (ordinateurs, imprimantes, routeurs…) sur un réseau et un maximum de 126 réseaux différents.
  2. La classe B va de 128.000.000.000 à 191.255.000.000.
    Cette classe autorise un maximum de 65.534 éléments adressables (ordinateurs, imprimantes, routeurs…) sur un réseau et un maximum de 16.384 réseaux différents.
  3. La classe C va de 192.000.000.000 à 255.255.255.000.
    Cette classe autorise un maximum de 254 éléments adressables (ordinateurs, imprimantes, routeurs…) sur un réseau et un maximum de 209.753 réseaux différents.

Les groupes de chiffres qui constituent une adresse IP sont séparés par un point.

Les 3 premiers groupes, en partant de la gauche, forment l’adresse IP du réseau de base (netID) où a été placé l’ordinateur.

Par exemple, si un ordinateur a pour adresse IP complète 010.000.001.003, l’adresse IP de son réseau de base est 10.0.1 (netID).

Le 4e et dernier groupe (ici 003), est le numéro IP de l’ordinateur sur son réseau de base (host ID) : ici 3.

Plus la partie constituant l’adresse IP d’un réseau de base est faible, plus ce réseau pourra contenir un nombre important d’ordinateurs.

En effet, imaginons un réseau de base (dit netID) noté 102.0. Il pourra contenir les plages d’adresses IP 102.0.0.1 à 102.255.255.255, soient 16.581.374 adresses IP possibles (255 x 255 x 255 – 1) tandis qu’un netID noté 192.20 ne pourra avoir que 65.024 adresses possibles (255 x 255 – 1).

L’adresse d’un netID se termine toujours par 000, adresse qu’un ordinateur ne pourra donc pas avoir.

Exemple : l’adresse IP du réseau de base 192.168.0 est 192.168.0.0, adresse inaltérable et inaffectable à quoique ce soit d’autre qui doit être sur ce réseau : ordinateur, imprimante, routeur ou autre…

L’adresse hostID identifie un ordinateur précis sur le réseau de base. Par exemple, l’ordinateur 231 sur le réseau de base 192.168.0 à pour adresse IP complète 192.168.0.231.

Une adresse spéciale et réservée est celle dite de diffusion ou broadcast. A l’aide de cette adresse, on envoie à tout ce qui est sur le réseau, la même information. Cette adresse se termine toujours par 255. Ainsi, toujours sur notre réseau de base 192.168.0, l’adresse de broadcast est 192.168.0.255. C’est encore une adresse inaltérable et incessible à tout autre élément du réseau : ordinateur, imprimante, etc.

Il existe une adresse spécifique, quelle que soit la classe d’adresse IP du netID. Cette adresse est 127.0.0.0, dite localhost.

C’est quoi un masque de sous-réseau

Par convention :

Pour un adressage IP de classe A, on a un masque de sous-réseau d’une valeur de 255.0.0.0 (soit en binaire 11111111.00000000.00000000.00000000 puisqu’on ne se base que sur le 1er octet).

Pour un adressage IP de classe B, on a un masque de sous-réseau d’une valeur de 255.255.0.0 (soit en binaire 11111111.11111111.00000000.00000000 puisqu’on ne s’intéresse qu’aux 2 premiers octets).

Pour un adressage IP de classe C, on a un masque de sous-réseau d’une valeur de 255.255.255.0 (soit en binaire 11111111.11111111.11111111.00000000 puisqu’ici on ne se base que sur les 3 premiers octets).

Par exemple, imaginons qu’on désire que les deux premiers bits du deuxième octet permettent de définir le réseau de l’adresse 34.0.0.0. Le masque sera alors d’une valeur binaire de 11111111.11000000.00000000.00000000 c’est à dire 255.192.0.0 en décimal. Si on applique ce masque à l’adresse IP 34.208.123.12 on obtient 34.192.0.0.

En fait il existe 4 possibilités pour ce masque de sous-réseau :

  1. Les 2 premiers bits du 2ème octet sont 00 et le résultat du masquage est 34.0.0.0
  2. Les 2 premiers bits du 2ème octet sont 01 et le résultat du masquage est 34.64.0.0
  3. Les 2 premiers bits du 2ème octet sont 10 et le résultat du masquage est 34.128.0.0
  4. Les 2 premiers bits du 2ème octet sont 11 et le résultat du masquage est 34.192.0.0

En conclusion, il est possible de diviser ce réseau de classe A (16.777.214 éléments adressables au maximum) en 4 sous-réseaux de 4194304 éléments adressables chacun.

On remarquera que 4 (nombre de sous-réseaux) multiplié par 4.194.304 (nombre d’éléments adressables au maximum sur chaque sous-réseau) donne comme résultat 16.777.214 (nombre maximum d’éléments adressables dans une classe A).

On constate donc que le nombre de sous-réseaux possibles est fonction du nombre de bits attribués en surplus au réseau :

  • avec 1 bit on obtient 2 sous-réseaux,
  • avec 2 bits, 4 sous-réseaux,
  • avec 3 bits, 8 sous-réseaux,
  • avec 4 bits, 16 sous-réseaux,
  • avec 5 bits, 32 sous-réseaux,
  • avec 6 bits, 64 sous-réseaux,
  • avec 7 bits, 128 sous-réseaux
  • et enfin avec 8 bits (impossible en classe C), on obtient 256 sous-réseaux.

TCP comprend d’autres protocoles moins connus que IP, mais tout aussi utiles :

C’est quoi l’ARP

C’est grâce à lui qu’on peut déterminer l’adresse MAC d’une machine via son adresse IP. L’adresse MAC est un numéro sur 48 bits inscrit dans la carte réseau à sa fabrication. Ce numéro est unique et inaltérable.

C’est quoi le protocole RARP

C’est le protocole ARP inversé, sous la forme d’un annuaire qui fait correspondre les adresses logiques avec leur équivalence en adresse physique.

C’est quoi le protocole ICMP

Le protocole Internet Control Message Protocol est celui qui permet à un routeur de dialoguer avec un ordinateur notamment pour lui signaler des erreurs de transmission de paquets. En revanche, les dialogues de routeur à routeur, dénommés messages ICMP, utilisent le protocole GGP pour l’échange d’informations de contrôle et de gestion du réseau.

Infogérance informatique sur Paris, Hauts de Seine, Essonne et Yvelines

Olivier Informaticien propose des prestations d’infogérance informatique aux entreprises implantées sur Paris, dans les Hauts de Seine, l’Essonne et les Yvelines :

mais aussi

Document créé le 01/02/2019 et mis à jour le 15/04/2020 à 15:34