Objectifs de certification

CCNA 200-301

  • 1.5 Comparer TCP à UDP


Modèles TCP/IP et OSI

Le chapitre “Protocoles et modèles de communication” expose les principes généraux des protocoles et modèles de communication. On trouvera ici une explication d’un second niveau sur les mécanismes de communication TCP/IP en regard du modèle OSI.

1. Modèle TCP/IP

1.1. L’Internet

L’Internet peut encore représenter pour certains d’entre nous un nouveau paradigme : toute une série d’actes physiques courants est désormais accomplie à distance, manuellement ou automatiquement, par des humains avec des humains, mais aussi avec des machines et des machines entre elles. Recevoir ou envoyer du courrier, consulter des dossiers, établir des appels téléphoniques ou vidéos, aller en bibliothèque, regarder un film ou encore effectuer des transactions bancaires sont des oeuvres facilitées par les technologies de l’Internet.

Entonnoir TCP/IP

Mais de notre point de vue, l’Internet est l’interconnexion de réseaux à l’échelle du globe. En technologie IPv4, l’Internet a techniquement atteint sa taille limite de croissance !

Visualisation des multiples chemins à travers une portion d'Internet.[opte-project] Par The Opte Project (https://commons.wikimedia.org/w/index.php?curid=1538544). Carte partielle d'Internet, basée sur les données du 15 juin 2005 situées à opte.org. Chaque ligne lie 2 noeuds, représentant 2 Adresses IP. La longueur de chaque ligne indique le délai entre ses 2 noeuds.

Source de l’image

Qu’est-ce que l’Internet ?

Est-ce celui d’IPv4 ou d’IPv6 ? Est-ce la neutralité du réseau ? Qu’en est-il des répartiteurs de charge et des technologies en nuage (technologies cloud) ? Pour Leslie Daigle de l’ISOC (Internet Society), aucune de ces descriptions n’est très utile puisqu’elles sont toutes transitoires. Selon elle, une façon plus utile de penser l’Internet est de le caractériser par des propriétés immuables, c’est-à-dire qui ont résisté à l’épreuve du temps. Ces “invariants” comme les appelle l’Internet Society comprennent :

  • sa portée mondiale,
  • son objectif général,
  • son accessibilité,
  • son interopérabilité
  • et sa technologie de blocs de construction réutilisables.
  • Plus important encore, Internet est marqué par la collaboration.

Source : Propos de Leslie Daigle de l’ISOC (Internet Society) recueillis par Marcia Savage, The Internet’s Lessons in Resiliency, 16/05/2018.

1.2. Objectifs de TCP/IP

Quels sont les objectifs de TCP/IP ?

  • Communiquer
    • à l’échelle du globe
    • de manière libérale (ouverte)
  • quel que soit
    • le contenu
    • le support
    • les hôtes
  • de manière robuste
Communications TCP/IP

1.3. Modèle TCP/IP

Le modèle TCP/IP est fondé sur quatre couches qui enveloppent les messages originaux avant qu’ils soient placés sur le support physique sous forme d’ondes représentant les données de la communication.

Chaque couche assure une fonction de maintenance et de service de la communication. TCP/IP ne se préoccupe pas du contenu (les propos tenus par les utilisateurs dans les messages); il se contente d’assurer des fonctions qui facilitent les communications, le partage et la diffusion des informations.

Sablier TCP/IP

2. Modèle TCP/IP à quatre couches

2.1. Couche Application

  • Elle est la couche de communication qui s’interface avec les utilisateurs.
  • Exemples de protocoles applicatifs : HTTP, DNS, DHCP, FTP, …
  • Elle s’exécute sur les machines hôtes.

2.2. Couche Transport : TCP

  • Elle est responsable du dialogue entre les hôtes terminaux d’une communication.
  • Les applications utiliseront TCP pour un transport fiable et UDP sans ce service.
  • Les routeurs NAT et les pare-feux opèrent un filtrage au niveau de la couche transport.

2.2. Couche Internet : IP

  • Elle permet de déterminer les meilleurs chemins à travers les réseaux en fonction des adresses IPv4 ou IPv6 à portée globale.
  • Les routeurs transfèrent le trafic IP qui ne leur est pas destiné.

2.3. Couche Accès au réseau : LAN/WAN

  • TCP/IP ne s’occupe pas de la couche Accès Réseau
  • Elle organise le flux binaire et identifie physiquement les hôtes
  • Elle place le flux binaire sur les supports physiques
  • Les commutateurs, cartes réseau, connecteurs, câbles, etc. font partie de cette couche

Au sens du modèle TCP/IP la couche Accès Réseau est vide, car la pile des protocoles Internet (TCP/IP) est censée “inter-opérer” avec les différentes technologies qui offrent un accès au réseau.

Plus on monte dans les couches, plus on quitte les aspects matériels, plus on se rapproche de problématiques logicielles.

2.4. Encapsulation

Pour transmettre du contenu d’un ordinateur à un autre, l’utilisateur va utiliser un programme qui construit un message enveloppé par un en-tête applicatif, HTTP par exemple. Le message subit une première encapsulation.

Le logiciel va utiliser un protocole de couche transport correspondant pour établir la communication avec l’hôte distant en ajoutant un en-tête TCP ou UDP.

Ensuite, l’ordinateur va ajouter un en-tête de couche Internet, IPv4 ou IPv6 qui servira à la livraison des informations auprès de l’hôte destinataire. L’en-tête contient les adresses d’origine et de destination des hôtes.

Enfin, ces informations seront encapsulées au niveau de la couche Accès qui s’occupera de livrer physiquement le message.

Processus d'encapsulation des données

À la réception, l’hôte récepteur réalise l’opération inverse en vérifiant les en-têtes de chaque protocole correspondant à une des couches décrites. Ce processus s’appelle la désencapsulation.

Processus de désencapsulation des données

Processus de communication

Chaque couche ajoute une information fonctionnelle au message original. À la réception, l’hôte examine chaque couche et prend une décision quant à ce trafic.

3. Illustration par un exemple

Rappelons le scénario de départ. Un utilisateur ouvre une page Web dans son navigateur et accède à sa page web favorite : http://www.test.tf. Sur le plan technique, une interface connectée au réseau émet un message original vers une destination distante (elle n’est manifestement pas locale) : il s’agit d’une requête HTTP qui demande à ouvrir une page Web (soit un fichier codé en HTML). En l’absence d’une page indiquée, c’est index.html qui sera servi.

Processus d'encapsulation des données
Requête HTTP GET sur un site Web

Moyennant une capture du trafic qui passe par l’interface, on peut observer les phénomènes qui seront expliqués plus bas.

3.1. Couche Application

Dans notre exemple, notre utilisateur ouvre sa page Web favorite et elle s’affiche immédiatement. Mais en réalité, avant d’obtenir ce résultat, il demande à lire une ressource (un fichier) située ailleurs, quelque part dans le réseau, sur www.test.tf. Dans le meilleur des cas, la plupart du temps, une page lui sera envoyée en retour et s’affichera dans son navigateur.

Il s’agit ici du premier message utile envoyé par l’utilisateur. Pour ce type d’usage ou d’application, il existe un protocole de couche application qui est largement disponible, à savoir par exemple HTTP1. On pourrait résumer ce premier message par : “Serveur HTTP www.test.tf, donne-moi ta page /index.html”.

On trouvera un grand nombre de protocoles de couche application, chacun offrant un type de service avec des caractéristiques propres. Ils sont développés dans le but d’offrir un service de communication qui soit au plus proche des utilisateurs (logiciels). Quelques exemples de commandes de couche application :

  • Commandes HTTP : “donne-moi une page Web”, “Voici la page”, “donne-moi l’image”, “Voici l’image”.
  • Commande SIP : “Tente d’établir une communication vocale ou vidéo à destination de tel numéro de téléphone, de tel courriel”, “J’émets une sonnerie”, “j’ouvre la ligne”
  • Commande SMTP : “livre ce message à user@test.tf
  • Commande RTP : “transmets telle capsule vidéo ou audio”
  • Commandes DNS : “quelles sont les adresses IP de www.test.tf”, “voici l’adresse IPv4 de www.test.tf”
  • Commandes DHCP : “Donne-moi une adresse IP”, “Voici des paramètres optionnels”

3.2. Couche Transport

Cette commande de couche application est alors enveloppée, “encapsulée” dit-on dans le jargon, par un protocole de couche Transport comme TCP. TCP apporte un service fiable pour que les utilisateurs puissent utiliser cette application Web. C’est justement TCP qui crée l’intuition d’une connexion directe entre les deux ordinateurs connectés, entre l’utilisateur et le serveur Web qui rend les pages à l’autre bout du monde.

Un canal de communication entre un “port” d’origine et un “port” de destination est établi entre les deux machines interlocutrices au préalable de l’envoi de la commande HTTP.

Si TCP fournit le canal de transmission entre les deux ordinateurs, il offre aussi une maintenance “connectée” de la communication. Il l’initie, la maintient avec des fonctionnalités telles que le contrôle de flux et la reprise sur erreur, et enfin il termine cette communication. On parle alors de protocole “orienté connexion”.

Processus d'encapsulation des données

3.3. Couche Internet

Pour que ces deux ordinateurs se reconnaissent de manière certaine, ils ont besoin d’autres identifiants que le seul nom de la destination ou les ports utilisés à l’origine et à la destination. À cet effet, une nouvelle encapsulation ajoute des informations de couche Internet, comme l’adresse IP d’origine (source) et l’adresse IP de destination. Elles identifient les hôtes de la communication d’un point de vue logique et global. C’est grâce à ces adresses que les données peuvent parvenir jusqu’au serveur de pages Web www.test.tf et que le trafic de retour est possible.

Des périphériques spécifiques qui interconnectent les lignes physiques se chargent de transmettre ces paquets d’informations jusqu’à la destination. Entre les deux ordinateurs, les paquets peuvent traverser plusieurs d’entre eux. Des routeurs relaient les paquets d’un point d’origine à un point d’extrémité de l’interréseau en fonction de l’adresse IP de destination.

3.4. Socket TCP/IP

À partir d’un couple de type adresse_IP:port_TCP de la source et de la destination, soit des sockets dans le jargon, littéralement des “prises”, on crée une sorte de tunnel sur ces connexions; on parlera alors de “session” TCP. TCP offre un mode connecté qui initie un dialogue, le maintient et puis le ferme entre les deux ordinateurs. Le canal logique qui permet d’acheminer les messages utiles (couche application) est ainsi créé. Donc en réalité, une connexion TCP aura été établie avant l’envoi de la requête HTTP.

Le serveur Web www.test.tf est un ordinateur dans le réseau dont le logiciel de service Web (Apache2 en l’occurrence) a mis le port TCP 80 de l’une de ses interfaces à l’écoute. Le port 80 est le port par défaut pour offrir un service Web en HTTP (TCP80). L’ordinateur qui émet la requête soit le client utilise un port aléatoire dans des valeurs élevées. Chaque protocole de couche application dispose d’un port par défaut (qu’il est utile de connaître), il est toujours possible de mettre à l’écoute un service sur un port non conventionnel.

Flux HTTP TCP

Si on est attentif à la capture, on constate que du trafic DNS (Application) supporté par UDP (couche transport) a demandé la résolution du nom en IPv4 (A Record) et en IPv6 (AAAA Record). UDP (User Datagram Protocol) est utilisé pour une communication de type “Raw”, à livraison brute, au contraire du service offert par TCP.

Echange DNS en UDP

3.5. Couche Accès Réseau

Faut-il encore que ces données puissent être physiquement transmises. Une nouvelle capsule place des informations de couche Accès Réseau. Par exemple, dans notre cas, des informations propres à la technologie Wi-Fi ou à la technologie Ethernet encapsulent le paquet IPv4. Ces dernières, indépendantes des protocoles TCP/IP permettent aux utilisateurs de placer physiquement toutes ces données sur un réseau local. Le réseau local prendra en charge le transfert de ces informations jusqu’à la bonne destination.

On peut trouver dans cette couche de nombreuses fonctions qui assurent le transport physique : identification, livraison, contrôle du support, aspects physiques, connecteurs, entre beaucoup d’autres. En cela, cette couche se distingue des fonctions logiques et globales de TCP/IP. On retiendra aussi le rôle important que jouent les commutateurs Ethernet, “switches” dans le jargon, qui prennent leurs décisions de transfert sur base des adresses MAC codées dans cette couche.

Cette couche “basse” est aussi désignée comme étant le rassemblement de la couche Liaison de données (L2) et de la couche physique (L1) en référence au modèle OSI. On y place donc des protocoles autres que ceux de la pile TCP/IP : des protocoles IEEE 802 ou des normes ratifiées par l’ANSI, l’EIA/TIA ou encore l’ITU qui en fait disposent de leur propre modélisation jusqu’à la mise en ondes sur un support physique.

3.6. Résumé des opérations

On peut résumer cet exemple de transmission par le tableau suivant :

CoucheProtocoleRôle de la coucheMatériel
ApplicationHTTPOffre un service de communication utile : échanger des pages Web.Ordinateurs
TransportTCPOffre un service fiable à HTTP, un port d’entrée/sortie et une session en mode connecté.Ordinateurs
InternetIPIdentifie les hôtes de manière unique et permet l’acheminement des paquets entre deux hôtes d’extrémité.Ordinateurs, Routeurs
Accès RéseauWi-FiS’occupe de la livraison locale.Ordinateurs, Commutateur, Point d’Accès, câblage cuivre/FO, paires torsadées, paire téléphonique, coaxial ondes EMI, RF, lumineuses

3.7. Désencapsulation du trafic à la réception

Du point de vue du serveur Web, soit à la réception du message, on imaginera que ce dernier examinera les informations de chaque couche, de la plus basse à la plus élevée. Il procédera à ce qu’on appelle une désencapsulation.

Processus de désencapsulation des données

La machine de destination examine d’abord les informations de couche Accès Réseau et principalement l’adresse MAC de destination. S’il y trouve la sienne, il élimine les informations de cette couche et examine celle de la couche Internet et Transport. S’il y trouve son adresse IP et le port TCP en destination, il confie le message HTTP original à la couche Application qui est traité par un service système qui répond au protocole (Apache2 par exemple, /usr/sbin/httpd). Ce dernier peut à son tour offrir une réponse (une page Web) sur l’adresse et le port qui se trouve dans le message de la demande. Cette réponse est elle-même encapsulée par le serveur et désencapsulée à l’arrivée chez le client.

3.8. Communication d’égal à égal

D’un point de vue holistique, c’est comme si les deux ordinateurs parlaient d’égal à égal, chaque couche assurant des fonctions spécifiques :

  • Application : Message utile des utilisateurs
  • Transport : Transport fiable ou non
  • Internet : Identification et livraison globale
  • Accès Réseau : Identification et livraison locale
TCP/IP, communication d'égal à égal

4. Modèles et protocoles en détail

On sera attentif aux numéros de ports TCP et UDP associés aux protocoles de couche Application.

Modèle TCP/IP et protocoles en détail

4.1. Modèle OSI et comparaison au modèle TCP/IP

  • La modélisation OSI propose un enveloppement en 7 couches
  • Modèle théorique, académique
  • Les couches sont aussi désignées par leur numéro
  • On associera à chaque couche des rôles, des protocoles et du matériel.
  • PDU : nom donné à l’encapsulation correspondante à une couche.
Modèle OSI et modèle TCP/IP comparés

4.2. Adressage, identifiants et matériel

Les machines et leurs interfaces disposent d’identifiants au niveau de chaque couche.

CoucheIdentifiantExemple
Couche ApplicationUn protocole et un nom de domaine http:// suivi de www.cisco.com
Couche TransportPort TCP ou UDP TCP80 comme port par défaut pour HTTP
Couche InternetAdresse IPv4 et/ou IPv6 192.168.150.252/24 ou 2001:db8::1/64
Couche Accèsadresse physique (MAC 802)70:56:81:bf:7c:37

4.3. Tableau de synthèse

TCP/IPOSIRôlesPDUProtocolesMatériel
Application7 ApplicationServices au plus proche des utilisateursDonnéesHTTP, DNS, DHCPOrdinateurs
Application6 Présentationencode, chiffre, compresse les données utilesidemidemidem
Application5 Sessionétablit des sessions entre des applicationsidemidemidem
Transport4 Transportétablit, maintient, termine des sessions entre des hôtes d’extrémité.SegmentTCP ou UDPOrdinateurs, routeurs NAT, pare-feux
Internet3 RéseauIdentifie les hôtes et assure leur connectivitéDatagramme ou paquetIPv4 ou IPv6Routeurs
Accès Réseau2 Liaison de DonnéesDétermine la méthode d’accès au support, organise les bits de donnéesTrameEthernet IEEE 802.3, Wi-Fi IEEE 802.11, pontage 802.1Commutateurs, cartes d’interface réseau
Accès Réseau1 Physiques’occupe du placement physique du signalbitsNormes physiques : xDSL (WAN), 1000-BASE-TXCâblage (UTP CAT 6) et connecteurs (RJ-45), bande fréquences (2.4 GHz, 5 GHz)

5. Éléments clés à retenir

Les éléments clés à retenir sur le modèle TCP/IP sont les suivants :

  • le principe et la portée du modèle TCP/IP
  • le numéro de chaque couche (OSI), et ses protocoles, procédures, principes, matériels et PDU associés
  • les principes d’adressage, identifiants et matériel au niveau des couches d’Accès Réseau, Internet et Transport
  • être capable d’interpréter sommairement un capture de trafic sur base des quatre couche du modèle TCP/IP
  1. Aujourd’hui, on aura toujours une préférence pour les sessions sécurisées et vérifiées HTTPS supportées par SSL/TLS.