Comment tester une connexion de port TCP/IP ?

Comment tester une connexion de port TCP/IP ?

Grâce au modèle TCP/IP, nous pouvons envoyer des messages à nos proches et communiquer avec des personnes sur internet. Les données que nous envoyons sur internet doivent être exactes et parvenir à la personne visée à temps et intactes. Cela est possible grâce au modèle TCP/IP, dans lequel les données sont d'abord décomposées en paquets et envoyées sur internet. Une fois qu'elles ont atteint leur cible, elles sont réassemblées et envoyées au client. Dans cet article, je vais expliquer comment construire une connexion TCP/IP simple. Ensuite, nous la testerons en utilisant le module de test intégré de Python, unit test, et le framework de test Python appelé pytest.

Qu'est-ce qu'une connexion TCP/IP ?

Le protocole de contrôle de transmission/protocole Internet est connu sous l'acronyme TCP/IP. Il s'agit d'un ensemble de directives et de procédures utilisées pour connecter des périphériques réseau sur Internet. Il s'agit d'un protocole de communication de données qui permet aux ordinateurs et aux périphériques d'envoyer et de recevoir des données.

Un client ou une machine (le client) reçoit une prestation (telle que l'envoi d'une page web) d'un autre ordinateur (un serveur) sur le réseau lorsqu'il utilise le modèle de communication TCP/client-serveur IP.

La suite de normes TCP/IP est classée comme étant sans état dans son ensemble, ce qui implique que chaque demande du client est considérée comme unique car elle n'a aucune incidence sur les demandes précédentes. Le fait d'être sans état libère les chemins du réseau, ce qui permet une utilisation continue.

Comment fonctionne une connexion TCP/IP ?

Nous allons commencer par parler de la manière d'envoyer un paquet sur un port TCP/IP.

1. La première étape consiste à établir une relation/connexion

Lorsque deux ordinateurs veulent envoyer des données par TCP, ils doivent d'abord établir une connexion avec une poignée de main à trois voies.

Aucun texte alternatif pour cette image

Le bit SYN est réglé sur (SYN = "synchroniser ?") lorsque le premier ordinateur transmet un paquet. Le deuxième ordinateur répond en envoyant un message avec le bit ACK réglé sur (ACK = "acknowledge !"). Le premier ordinateur répond par un ACK.

En fait, les trois paquets qui constituent la poignée de main à trois voies ne contiennent souvent aucune donnée. Les ordinateurs sont prêts à recevoir des paquets contenant des données réelles une fois la poignée de main terminée.

2. Dans l'étape suivante, nous envoyons des paquets de données

Le destinataire doit toujours accuser réception d'un paquet de données envoyé par TCP. Le premier ordinateur délivre un paquet contenant des données et un numéro de séquence. Afin d'en accuser réception, le second ordinateur active le bit ACK et augmente le numéro d'accusé de réception de la taille des données qu'il a reçues.

Les numéros de séquence et d'accusé de réception sont contenus dans l'en-tête TCP, comme indiqué ci-dessous :

Aucun texte alternatif pour cette image
Composants de l'en-tête TCP

Lorsque le bit ACK est à 1, il indique que le numéro d'accusé de réception contenu dans l'en-tête TCP est valide.

Grâce à ces deux numéros (le numéro de séquence et le numéro d'accusé de réception), les ordinateurs peuvent savoir quelles données ont été reçues avec succès, quelles données ont été supprimées et quelles données ont été envoyées deux fois par inadvertance.

3. Nous déconnectons ensuite la connexion

Pour cesser d'envoyer ou de recevoir des données, chaque ordinateur peut interrompre la connexion.

En transmettant un paquet avec le bit FIN à 1 (FIN = fin), un ordinateur peut commencer le processus de coupure de la connexion. La réponse de l'autre ordinateur est un ACK et un autre FIN. Après un autre ACK de l'ordinateur initiateur, la connexion est fermée.

Comment construire le côté serveur ?

Lisez l'article en intégralité sur le blog d'Agilitest. Un article par Sarima C.

Identifiez-vous pour afficher ou ajouter un commentaire

Plus d’articles de Christophe Cressend

  • Un guide complet pour tester les jeux mobiles

    Un guide complet pour tester les jeux mobiles

    Le marché des jeux mobiles a connu une forte croissance au cours des dix dernières années en raison de la demande…

  • L'actu Test #10

    L'actu Test #10

    💭 Note aux lecteurs En ce début de mois de juillet, je vous présente la 10ème et dernière newsletter de la saison. Un…

  • Découvrir la puissance des tests API : Un guide complet

    Découvrir la puissance des tests API : Un guide complet

    Qu'est-ce qu'un test API ? API est l'abréviation de "Application Programming Interface" (interface de programmation…

  • L’actu Test #9

    L’actu Test #9

    Au sommaire de ce numéro ↩ 🌐 Automatisation des tests dans la méthode Agile, par All4Test 📰 Le rôle des tests…

  • L’actu Test #8

    L’actu Test #8

    Au sommaire de ce numéro ↩ 🌐 Automatisation des tests dans la méthode Agile, par All4Test 📰 Découvrir la puissance…

  • Qu'est-ce que le stress testing ? Un guide complet

    Qu'est-ce que le stress testing ? Un guide complet

    Les tests de résistance, aussi appelés stress #testing, sont un processus essentiel pour évaluer la stabilité et les…

  • L’actu Test #7

    L’actu Test #7

    Le cloud boycotté par de nombreuses entreprises, un guide complet pour mieux comprendre les tests d’application web, le…

  • Le guide complet des tests d'applications Web

    Le guide complet des tests d'applications Web

    À l'aube de l'année 2023, la demande de services basés sur le web ne cesse de croître. Selon un rapport de Statista, il…

  • Passer d'une formation non technique aux tests logiciels

    Passer d'une formation non technique aux tests logiciels

    Si vous aimez la résolution de problèmes, la gestion des risques et l'amélioration de la qualité des produits, une…

    1 commentaire
  • Impact de la méthodologie Agile sur le développement de logiciels

    Impact de la méthodologie Agile sur le développement de logiciels

    Qu'est-ce que le développement de logiciels ? Selon IBM (International Business Machines Corporation), le développement…

Autres pages consultées

Explorer les sujets