Qu'est ce qu'un port logiciel ?

La compréhension des "portes d'entrées" applicatives à travers l'explication du modèle TCP/IP.

18 juin 2011

On entend souvent parler des fameux ports logiciels qui nous sont demandés de temps à autres dans certaines applications (80 dans votre navigateur web, 21 dans FileZilla, 25 et 110 dans Outlook ...). Le seul soucis avec la notion de ports c'est que, bien qu'omniprésente, seulement une infime partie du "grand public" connait réellement sa signification.

Je vais dans ce tutoriel essayer d'expliquer ce que sont les ports logiciels d'une manière abordable pour le commun des mortels. Pardonnez moi Ô grands érudits mais je crains que vous n'appreniez guère de choses ici.

Couramment je lis sur les forums, lorsque quelqu'un se pose la question de savoir ce qu'est un port, que c'est une sorte de porte d'entrée dans un ordinateur. Ce n'est pas totalement faux mais plus précisément c'est une porte d'entrée dans une application (ou en tout cas un protocol applicatif).

Afin d'expliquer cette dernière phrase, il vous faut tout d'abord assimiler la notion de modèle en couche des protocoles. Les 2 modèles les plus connus sont le modèle OSI et le modèle TCP/IP. Pour des soucis de compréhension on étudiera l'exemple du modèle TCP/IP qui est en pleine expansion avec la mode du "tout IP".

Le modèle TCP/IP



Quelques définitions succintes :
  • Protocole : Spécification de plusieurs règles pour un type de communication particulier.
  • Couche : Les protocoles ont été divisés en couche selon leur fonction. Les couches forment une hiérarchie qui va de l'application (HTTP, FTP etc...) jusqu'au support physique (cable coaxial, ondes etc...).
  • Routage de proche en proche : On ne connait pas la destination, mais on connait quelqu'un, qui connait quelqu'un, qui connait quelqu'un.... qui la connait et donc on lui transmet le paquet, il s'occupera lui même de la retransmettre à sa connaissance.


Le modèle TCP/IP est un modèle fondé sur 4 couches :
  • 4 - Application : C'est la face cachée de votre logiciel. Les protocoles de cette couche sont les plus connus : HTTP, FTP, SMTP, POP3, VoIP...
  • 3 - Transport : Gère la communication entre les processus et les erreurs qu'il peut y avoir pendant le trajet. Protocoles : TCP et UDP principalement.
  • 2- Réseau : C'est là qu'est créé le chemin permettant l'acheminement des données vers la destination. Notez que le chemin n'est pas calculé directement à partir de votre ordinateur, les paquets sont transmis de proche en proche. Protocoles : IPv4, IPv6, ARP....
  • 1 - Physique : Prépare l'envoie (la réception) des trames, puis écrit (écoute) le support physique. Protocoles : Ethernet sur du cable, Wi-FI par les ondes...


Notez que d'après la norme, les couches vont de la plus haute (vers l'utilisateur) à la plus basse (vers le support physique).

L'encapsulation



Lors de l'émission d'une requête par une application, celle-ci doit traverser toutes les couches de la 4 vers la 1; durant le trajet les données subiront des modifications et chaque couche rajoutera ce qu'elle voudra (généralement des en-têtes) pour mieux exercer sa fonction, ce principe s'appelle l'encapsulation. Lors de la réception c'est exactement l'inverse qui se produit.

Et donc un port c'est...



Prenons un exemple simple, vous demandez à votre navigateur de charger votre site préféré www.informatix.fr. Vous êtes reliés à un modem par un câble à paires torsadées.

  • 1 - Le navigateur demande au système d'envoyer une requête HTTP (couche 4).
    Sortie : [requête HTTP]
  • 2 - La requête arrive dans TCP qui ajoute son en-tête.
    Sortie : [en-tête TCP][requête HTTP]
  • 3 - Le segment TCP arrive dans IP qui ajoute aussi son en-tête (qui contient entre autres votre adresse IP et celle du serveur de Informatix).
    Sortie : [en-tête IP][en tête TCP][requête HTTP].
  • 4 - Le paquet IP arrive dans Ethernet qui ajoute un en-tête (qui contient entre autres votre adresse MAC et celle du modem) et un checksum (vérification d'erreurs).
    Sortie : [en-tête Ethernet][en-tête IP][en tête TCP][requête HTTP][checksum Ethernet].


Dans ce sens pas de problème.

Maintenant le serveur envoie une réponse HTTP contenant la page demandée :
  • 1 - L'en-tête Ethernet contient un champs "type de protocole" pour savoir qu'il doit envoyer les données à IP.
  • 2 - L'en-tête IP contient un champs "protocole" pour savoir qu'il doit envoyer les données à TCP.
  • 3 - L'en-tête TCP contient un champs "port de destination" pour savoir qu'il doit envoyer les données à HTTP.


Un port n'est rien de plus que l'identifiant d'une application qui permet à TCP ou UDP de savoir à qui envoyer les données.

Les ports les plus connus sont :
  • 20 et 21 : FTP
  • 22: SSH
  • 23 : Telnet
  • 25 : SMTP
  • 53 : DNS
  • 80 : HTTP
  • 8080 : HTTP alternatif
  • 110 : POP3
  • 115 : SFTP
  • 443 : HTTPS
  • 546 : DHCP
  • 3306 : MySQL


Les ports en dessous de 1024 sont réservés et appelés "well known ports" (ports bien connus), les autres sont libres d'utilisation même si certains sont, par habitude, utilisés pour des applications connues comme MySQL.

Maintenant vous savez ce qu'est un port ! J'attends le retour des non initiés dans les commentaires pour savoir si j'ai été suffisamment clair.

Par
Créateur et administrateur.

Dans la même catégorie

Nmap : Comment scanner les ports ouverts d'une machine ?

Commentaire(s)