IDREZO

Technologies informatiques

Leçon 2 : TCP / IP

TCP/IP est devenu le protocole standard en matière d'interopérabilité entre ordinateurs hétérogènes. Cette interopérabilité constitue l'un des atouts majeurs de TCP/IP. Presque tous les réseaux sont compatibles avec TCP/IP. Il permet de faire du routage et sert souvent de protocole pour la communication inter réseau.

Entre autres protocoles développés spécialement pour la suite TCP/IP, on trouve :

  • SMTP - Simple Mail Transfer Protocol -
  • FTP - File Transfert Protocol -
  • SNMP - Simple Network Management Protocol -

TCP/IP fut inventé par le ministère américain de la défense qui voulait un protocole routable, robuste et fonctionnellement performant, qui puisse servir à créer des réseaux étendus capables de fonctionner même en cas de guerre nucléaire.

C'est maintenant la communauté INTERNET qui gère l'évolution de TCP/IP : c'est une norme industrielle ouverte, elle n'appartient à aucune entreprise en particulier. Il apporte un ensemble d'utilitaire permettant de connecter des systèmes d'exploitation hétérogènes. Il utilise une architecture client - serveur évolutive et indépendante de la plate - forme ce qui fait qu'une application tournant sur un serveur UNIX peut être attaqué par un client Windows 9x via les sockets - identifie un service sur un certain noud d'un réseau. Un socket se compose d'une adresse de noud et d'un numéro de port associé au service.

TCP/IP ne présente pas que des avantages : c'est un protocole très volumineux et finalement pas aussi rapide que cela, en comparaison à IPX et Netbeui.

Les normes concernant TCP/IP sont définies dans ce que l'on appelle les RFC.

Les protocoles TCP/IP ne correspondent pas exactement au modèle OSI. Il y'a 4 couches, au lieu de sept. Connue sous le nom des protocoles INTERNET, la pile TCP/IP se compose des couches suivantes :

  • Couche Application
  • Couche Transport
  • Couche Internet
  • Couche Interface réseaux

La couche interface réseau correspond aux couches physiques et liaison du modèle OSI. Elle communique directement avec le réseau. Elle assure l'interface entre l'architecture du réseau - ETHERNET, TOKEN RING - et la couche Internet.

La couche Internet correspond à la couche réseau du modèle OSI. Elle utilise plusieurs protocoles pour le routage et la livraison de paquets. Les routeurs sont dépendants des protocoles. Ils fonctionnent au niveau de cette couche et servent à acheminer les paquets entre les réseaux. Voici les protocoles de cette couche :

IP - Internet Protocol - C'est un protocole à commutation de paquets qui gère l'adressage et se charge de sélectionner les routes. Lors de la transmission d'un paquet, ce protocole ajoute au paquet un en - tête qui facile le routage du paquet sur le réseau. IP est un protocole sans connexion : il émet des paquets sans demander au récepteur de faire des accusés de réception. IP, se charge, en outre, de l'assemblage et du désassemblage des paquets tels que l'imposent les couches physiques et liaison du modèle OSI. Chaque paquet se compose d'une adresse source, d'une adresse de destination, d'un identificateur de protocole, d'une somme de contrôle ( valeur calculée ) et d'un TTL ( Time To Live ). Le TTL indique à chaque routeur situé entre la source et la cible le temps que le paquet peut rester sur le réseau. Le TTL fonctionne comme un compte à rebours. Chaque fois que le paquet passe par un routeur, celui - ci décrémente le compteur d'une seconde ou d'un saut ( hop ).

Par exemple : un paquet ayant un TTL de 128 peut rester sur le réseau pendant 128 secondes ou le temps de faire 128 sauts ( chaque passage de routeur comptant pour un saut ). Toutes les combinaisons de durée et de sauts sont permises. Le TTL sert à empêcher les paquets perdus ou altérés de circuler indéfiniment sur le réseau. Quand le compteur TTL arrive à 0, le paquet est détruit.

ARP - Adress Resolution Protocol - Le protocole détermine l'adresse physique du destinataire, c'est à dire l'adresse MAC de la carte réseau. Si ARP ne contient pas l'adresse dans son cache, il diffuse une requête " broadcast " pour la demander. Tous les hôtes du réseau reçoivent cette requête ; celui dont l'adresse physique correspond à la demande envoie cette adresse au demandeur. Le paquet est ensuite expédié là ou il faut, et l'adresse physique nouvellement obtenue est placée dans le cache du routeur.

RARP - Reverse Adress Resolution Protocol - Un serveur RARP gère une base de données d'adresse physique, qui a la forme d'une table ARP. Alors que ARP donne des adresses physiques à partir d'adresse IP, RARP fait le contraire : il fournit une adresse logique ( adresse IP ) à partir d'une adresse physique. Quand le serveur RARP reçoit d'un noud du réseau une demande concernant une adresse IP, il consulte sa table de routage et envoie au demandeur l'adresse IP associée à l'adresse physique qui lui a été fournie.

ICMP - Internet Control Message Protocol - ICMP envoie et reçoit des informations d'état concernant les transmissions en cours. Les routeurs utilise fréquemment ICMP pour contrôler le flux, ou la vitesse des données qui leur arrivent ou qu'ils envoient. Si le flux de données se révèle trop rapide pour un routeur, il demande aux autres de ralentir.

La couche transport correspond à la couche transport du modèle OSI. Elle est chargée de créer et de gérer des communications bout à bout ( end to end ) entre deux hôtes. Elle fournit les accusés de réception, fait du contrôle de flux et ordonnance les paquets. Elle gère également les retransmissions de paquets. La couche transport peut employer soit le protocole TCP soit UDP, selon les contraintes de la transmission.

TCP - Transmission Control Protocol - TCP assure des transmissions fiables entre les nouds. C'est un protocole orienté connexion entre deux machines avent l'envoi de données. Pour établir une connexion fiable, TCP recourt à un mécanisme, connu sous le nom de " three way handshake " qui détermine le numéro de port et les numéros d'ordre initiaux.

Le Handshake se fait en trois temps :

  • -1- Le demandeur envoie un paquet spécifiant le numéro de port qu'il compte employer, ainsi que son numéro d'ordre initial.
  • -2- Le serveur accuse réception en envoyant son numéro d'ordre initial, qui est égal à celui du demandeur augmenté de 1.
  • -3- Le demandeur accuse réception de l'accusé de réception, en renvoyant le numéro d'ordre du serveur augmenté de 1.

Pour garantir la fiabilité de la connexion, chaque paquet doit contenir :

  • Les numéros de port TCP de la source et de la destination.
  • Un numéro d'ordre, si le message est découpé en paquets plus petits.
  • Une somme de contrôle qui garantit la non - altération des données.
  • Un numéro d'accusé indiquant à l'émetteur quelles sont les parties du message qui ont été reçues.
  • Des fenêtres coulissantes TCP.

Ports, sockets et fenêtre coulissante

Les numéros de ports de protocole indiquent l'emplacement d'une application ( processus ) sur chaque machine ( dans la couche application). De même qu'une adresse IP identifie l'adresse d'un hôte sur le réseau, l'adresse des ports identifie l'application pour la couche transport ; cela permet de créer une connexion complète entre une application tournant sur un hôte et une application exécutée sur un autre hôte. Les applications et les services peuvent utiliser jusqu'à 65 536 ports. Les applications et services TCP/IP utilisent en principe les 1 023 premiers ports. Les applications clientes affectent dynamiquement les numéros de ports, en fonction des besoins. La combinaison d'un port et d'une adresse de noud constitue un socket.

Les services et les applications utilisent des sockets pour créer des connexions entre les hôtes. Si l'application doit garantir la bonne livraison des données, le socket choisit le service orienté connexion ( TCP ). Dans le cas contraire, le socket choisit le service sans connexion ( UDP ).

TCP emploie une fenêtre coulissante pour transférer des données entre les hôtes. La fenêtre définit le volume de données susceptibles d'être passée via une connexion TCP, avant que le récepteur n'envoie un accusé de réception. Chaque ordinateur comporte une fenêtre d'émission et une fenêtre de réception qu'il utilise pour buffériser les données en continu, sans devoir attendre un accusé de réception pour chaque paquet. Cela permet au récepteur de recevoir les paquets dans le désordre et de profiter des délais d'attente pour réorganiser les paquets. La fenêtre émettrice contrôle les données émises ; si elle ne reçoit pas d'accusé de réception au bout d'un certain temps, elle retransmet le paquet.

UDP - User Datagram Protocol - protocole sans connexion, UDP est chargé de la transmission bout à bout des données. Contrairement à TCP, UDP ne crée pas de connexion. Il essaie d'envoyer les données et de vérifier qu'elles sont parvenues à destination. UDP s'utilise surtout pour envoyer de petits volumes de données, qui n'exigent pas de livraison garantie. UDP fait appel à des ports, mais qui ne sont pas les mêmes que TCP ; les deux protocoles peuvent donc employer les mêmes numéros de ports sans qu'il y'ait interférences.

La couche application correspond aux couches session, présentation et application du modèle OSI et relie les applications au réseau. Deux API permettent d'accéder aux protocoles de transports TCP/IP : les sockets Windows et Netbios.

Les sockets Windows Winsock sont des API réseau qui facilitent les communications entre les applications TCP/IP et les piles de protocoles. Elle a été crée pour que les applications utilisant TCP/IP puissent écrire dans un modèle standard. Winsock dérive de l'API socket originel, inventée pour UNIX BSD. Winsock fournit une interface de programmation commune aux applications situés vers le sommet du modèle TCP/IP. Tout programme écrit avec Winsock peut communiquer avec n'importe quel protocole TCP/IP et vice versa.

Modèle OSI
Modèle TCP/IP
Application
Application
Présentation
Session
Transport
Transport
Réseau
Internet
Liaison
Interface réseau
Physique