Maison >développement back-end >Tutoriel Python >Concepts Python avancés - Mise en réseau avec Python

Concepts Python avancés - Mise en réseau avec Python

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 15:28:11879parcourir

Vous êtes-vous déjà demandé comment votre appareil est connecté à Internet ? Ou comment l'entreprise parvient-elle à partager des informations entre les régions de manière transparente ? Tout cela est réalisé en utilisant les réseaux informatiques dans le cadre de la stratégie commerciale. Il nous permet d'établir une communication, de collaborer et de partager des ressources entre différentes applications et appareils du réseau sur Internet. Désormais, vous pouvez contacter ou partager des éléments avec vos amis ou n'importe qui en un seul clic, grâce à l'intégration de la mise en réseau avec des applications logicielles et diverses autres technologies. En Python, la mise en réseau est un concept fondamental qui permet l'interaction entre les appareils et les ressources externes. Python comprend de nombreux modules intégrés qui prennent en charge les fonctionnalités réseau, telles que « socket » pour la mise en réseau générale et « requêtes » pour la communication HTTP.
Par conséquent, dans cet article, nous discuterons de la mise en réseau depuis ses concepts de base jusqu'aux concepts avancés en Python à l'aide d'exemples pratiques.

Introduction aux concepts de réseautage

1. La mise en réseau et son importance dans les systèmes distribués

La mise en réseau consiste à connecter plusieurs ordinateurs et appareils via des câbles filaires ou des réseaux sans fil pour échanger des données et partager des ressources sur Internet. Il permet la communication entre plusieurs appareils. Comme nous le savons, les systèmes distribués sont ceux dans lesquels un grand nombre de clients, de périphériques matériels et de processus sont connectés pour partager des ressources et communiquer. Par conséquent, les réseaux et les systèmes distribués sont considérablement interconnectés. Ils fournissent l'infrastructure qui facilite le stockage, le partage des ressources et la communication électronique pour améliorer l'efficacité et la productivité du système.

2. Concepts clés du réseautage

Certains concepts clés de réseautage que nous utilisons dans notre vie quotidienne sont les suivants :

2.1. Adresse IP

Une adresse IP identifie de manière unique votre appareil sur un réseau. Si vous disposez d'un appareil qui se connecte à Internet, il doit avoir une adresse IP. IP signifie Protocole Internet. Il s'agit d'un numéro unique ou d'un identifiant pour l'ordinateur ou l'appareil au sein du réseau. Chaque appareil aurait un numéro unique qui le différencierait des autres appareils du réseau. Par exemple :

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Remarque :

Une adresse IP est une chaîne unique de chiffres séparés par des points qui identifie chaque ordinateur qui utilise le protocole Internet pour communiquer sur un réseau.

2.2. Port

Un port est un identifiant numérique utilisé dans les réseaux pour spécifier un service ou un processus particulier sur un appareil. Contrairement à une adresse IP, qui identifie l'emplacement d'un appareil sur un réseau, les ports permettent à plusieurs services de fonctionner simultanément sur le même appareil. Il garantit que les données sont dirigées vers la bonne application ou le bon processus. Ces ports vont de 0 à 65535, ayant une certaine échelle réservée à des protocoles spécifiques. Par exemple :

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

2.3. Protocole

Un protocole réseau est un ensemble de procédures et de pratiques de communication entre les appareils réseau. Il définit la manière dont les données sont formatées, transmises et reçues. Les exemples incluent HTTP, FTP, SMTP et DNS. Les protocoles peuvent fonctionner à différentes couches du modèle OSI, telles que la couche application (HTTP), la couche transport (TCP) et la couche réseau (IP).

2.4. Prises

Un socket est un point de terminaison du réseau permettant d'envoyer ou de recevoir des données sur plusieurs appareils. Il s'agit d'un appariement d'une adresse IP et d'un numéro de port. Les sockets peuvent être de deux types principaux : SOCK_STREAM pour les connexions TCP, qui sont orientées connexion, et SOCK_DGRAM pour les connexions UDP, qui sont sans connexion. Les sockets permettent la mise en œuvre de divers services réseau, tels que des serveurs Web et de messagerie.

3. Modèle OSI et pile TCP/IP

Certains modèles sont définis qui nous indiquent comment connecter nos appareils ou ordinateurs via Internet afin qu'ils puissent interagir et communiquer entre eux. Il existe deux modèles principaux pour définir le réseau. Modèle OSI ou pile TCP/IP. Voyons brièvement un aperçu de chacun d'eux :

Advanced Python Concepts - Networking with Python

3.1. Pile TCP/IP

La pile TCP/IP est une suite de protocoles de communication utilisés pour interconnecter les périphériques réseau sur Internet, garantissant une transmission de données et une communication fiables. Il s'agit d'un ensemble de procédures sur la façon dont les ordinateurs peuvent interagir et comment concevoir ces systèmes. Pour comprendre les fonctions, il est divisé en cinq couches. Chaque couche a son travail, à savoir les couches Application, Transport, Accès réseau, Liaison de données et Physique. La pile TCP/IP fournit une implémentation pratique de la mise en réseau dans le monde réel, contrairement au modèle OSI, qui fournit une compréhension théorique de la communication réseau. De plus, la couche Transport permet une transmission de données fiable, et l'accès au réseau garantit l'adresse IP et le routage corrects des paquets de données, etc.

3.2. Modèle OSI

Semblable à TCP/IP, le modèle OSI est également utilisé pour concevoir le réseau sur plusieurs appareils. Il s'agit d'un cadre conceptuel composé d'un ensemble de procédures permettant de comprendre et de mettre en œuvre des protocoles réseau dans sept couches différentes. Il partage la même couche que TCP/IP, avec une couche supplémentaire. Ceux-ci incluent : l’application, la présentation, la session, le transport, l’accès au réseau, la liaison de données et la couche physique. Plus précisément, la principale différence entre OSI et TCP/IP réside dans les deux couches supplémentaires intégrées à la couche d'application de TCP/IP.

Bases de la programmation des sockets

1. La programmation socket comme fondement de la mise en réseau en Python

La mise en réseau implique la connexion de deux appareils ou plus de telle sorte que la communication soit possible en leur sein. En Python, la programmation des sockets est un mécanisme fondamental de création de réseau. Pour la programmation socket, nous devons importer le module socket. À l'aide du module socket, un développeur peut générer, configurer et gérer des sockets pour la communication TCP et UDP. Ce module dispose de nombreuses méthodes intégrées nécessaires pour créer des sockets et les aider à s'associer les unes aux autres. Quelques méthodes importantes utilisées sont socket.socket, qui est utilisé pour créer un socket. Ce socket est utilisé à la fois côté client et côté serveur. De plus, pour accepter la communication, nous utilisons la méthode socket.accept.

Remarque

TCP signifie Transmission Control Protocol, qui est un protocole orienté connexion qui garantit un transfert de données fiable. UDP est un protocole de datagramme utilisateur, un protocole sans connexion qui donne la priorité à la vitesse plutôt qu'à la fiabilité.

2. Sockets comme points de terminaison pour la communication entre les machines

Les sockets sont les points de terminaison du réseau utilisés pour envoyer et recevoir des données. Par défaut, un seul réseau dispose de deux prises, une pour chaque appareil de communication. Ces sockets combinent des adresses IP et des numéros de port. De plus, un seul appareil peut avoir N sockets en fonction du numéro de port utilisé. Différents ports sont disponibles pour différents types de protocoles ; par exemple, HTTP utilise le port 80. Grâce à ce mécanisme de point de terminaison, les développeurs peuvent garantir un échange de données précis et fiable dans divers scénarios de mise en réseau.

3. Exemple : création et utilisation de sockets pour la communication réseau de base

Maintenant que nous avons compris ce qu'est la programmation socket car c'est le fondement de la programmation Python, passons à l'éditeur de code et voyons comment nous pouvons le créer. Nous devons créer deux fichiers différents côté client et côté serveur pour établir la connexion.

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Advanced Python Concepts - Networking with Python

client.py

HTTP uses port 80  
HTTPS uses port 443

Advanced Python Concepts - Networking with Python

Travailler avec TCP/IP

1. Protocole de contrôle de transmission (TCP) et son rôle dans la communication

TCP, également connu sous le nom de protocole de contrôle de transmission, est un protocole de couche transport au sein du modèle TCP/IP. Il s'agit d'un ensemble de protocoles et de procédures qui déterminent comment envoyer des données sur Internet. Habituellement, lorsque les données sont envoyées sous forme de fichiers, elles sont décomposées en paquets individuels. Lorsque les paquets arrivent à destination avec un numéro unique pour chaque paquet. Nous pouvons les assembler avec. De plus, si certains paquets sont manquants, TCP veille à ce qu'ils soient renvoyés. C'est pourquoi nous appelons TCP un protocole de communication fiable, car il établit la communication via le processus de prise de contact, reconnaît les données reçues et retransmet les paquets perdus en maintenant l'ordre correct des paquets et en garantissant l'intégrité et la livraison des données.

2. Exemple : création d'applications client et serveur TCP en Python

Le serveur est le logiciel qui attend la demande du client, et le client demande les ressources au serveur. La programmation socket est principalement implémentée pour l’architecture client-serveur. Ici, nous discutons de l'exemple de création d'un client et d'un serveur où le client envoie un message, et le serveur répond à ce message et donne la réponse appropriée à cette demande en utilisant le module socket avec TCP. Laissez-nous concevoir à la fois le modèle client et le modèle serveur.

Advanced Python Concepts - Networking with Python

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Advanced Python Concepts - Networking with Python
client.py

HTTP uses port 80  
HTTPS uses port 443

Advanced Python Concepts - Networking with Python

3. Création d'une application de discussion simple à l'aide de sockets TCP

Créons une application de chat simple en Python utilisant des sockets TCP, où le serveur écoute les commandes entrantes et le client se connecte à ce serveur pour envoyer et recevoir des messages. Nous allons créer la salle de discussion en utilisant le module intégré Python, c'est-à-dire le socket. Nous devons donc écrire du code pour chaque côté comme le client et le serveur, séparément :

server.py

import socket #Import library

#Create a socket object and then define two arguments first one specifies the IP address
#and second indicate the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Prepare to receive connections by binding it to the IP address and port
soc.bind((socket.gethostname(), 1042))
#Listen to the connection
soc.listen(5)

while True:
     #Set client socket and address and make a connection
     clt, addr = soc.accept() 
     print(f"Connection Established to address {addr}")
     msg = "Message Received and the message is ->"
     clt.send(bytes(msg + "Socket Programming in Python", "utf-8"))

Advanced Python Concepts - Networking with Python

client.py

import socket #Importing the module

#Create a socket object and then define two arguments first one specifies the IP address
#and second for indicating the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Set the connection with the port number and hostname
soc.connect((socket.gethostname(), 1042))
#Set the bytes of the message how much you want to receive
msg = soc.recv(100)
print(msg.decode("utf-8"))

Advanced Python Concepts - Networking with Python

Conclusion

Le

Le réseautage est un concept crucial en informatique et programmation. Il résout la plupart des problèmes humains, que vous travailliez dans votre bureau ou que vous partagiez des fichiers avec votre équipe. Vous pouvez également contacter un parent d’un autre pays. En résumé, nous nous sommes concentrés sur l’introduction solide des fondations de mise en réseau utilisant Python. Nous avons appris les sujets essentiels des contrôles et modèles de réseau, de l'architecture client et serveur et des exemples pratiques utilisant la bibliothèque de sockets. Cette bibliothèque assure la mise en place d'un réseau sécurisé et fiable pour les systèmes distribués. Continuez à expérimenter et à développer ces compétences pour améliorer davantage vos compétences en programmation réseau. J'espère que ce guide sera utile. Merci d'avoir lu. Bon codage !

Référence

Mise en réseau en Python

Bibliothèque de sockets

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn