Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Beni Mellal
Ecole National des Sciences
Appliquées - Khouribga
Mise en œuvre
Bas niveau : utilisation directe du transport : sockets (construit sur TCP ou UDP)
Exemple : utilisation des sockets en Python, Java …………
Haut niveau : intégration dans un langage de programmation : RPC (construit sur sockets )
Exemple : RPC (Remote Procedure Call: Un modèle très répondu de communication entre des
processus d’un système distribué)
Protocoles de transmissions de données entre les clients et les serveurs
- Fiable
- Orienté connexion (ça veut dire il permet de créer un canal orienté vers la destination avant l’envoi des données)
- Lent
Protocole de Datagramme Utilisateur (UDP): User Datagram Protocol
- Non fiable
- Non orienté connexion (c’est-à-dire il ne permet pas de créer un canal précis vers la destination avant l’envoi des
données)
- Rapide
Numéros de port
• Un numéro de port sert à identifier l'application (un processus) en cou
rs de
communication par l'intermédiaire de son protocole de couche applic
ation (associé au service utilisé, exemple : 80 pour HTTP).
• Pour chaque port, un numéro lui est attribué (codé sur 16 bits), ce qui
implique
qu'il existe un maximum de 65 536 ports (2^16) par ordinateur (et par
protocoles TCP et UDP).
• Lorsqu'un processus client veut dialoguer avec un processus serveur, il
a besoin
de connaître le port écouté par ce dernier. Les ports utilisés par les ser
vices devant être connus par les clients, les principaux types de servic
Solutions
Sockets
* Socket désigne un canal de communication ou une interface logicielle avec le système d’exploitation, par
laquelle un processus peut envoyer ou recevoir des données, elle constitue un point d'entrée depuis lequel un
processus peut émettre et recevoir des messages à la destination ou en provenance d'autres processus. Les
sockets permettent la réception et l'émission des messages sur le réseau.
* Les sockets constituent une API (Application Programming Interface) permettant aux applications d'accéder
au réseau pour communiquer.
* Les sockets se situent juste au-dessus de la couche transport du modèle OSI (protocoles UDP ou TCP), elle-
même utilisant les services de la couche réseau
Types de socket
1 *** Stream sockets : Communication connectée : Protocole TCP
• Une socket stream permet une communication bidirectionnelle, sûre, séquencée et un flux de données sans duplication pouvant entraîner
une fragmentation des paquets transmis. Dans le domaine Internet, il s'agit du protocole TCP. dénommé SOCK_STREAM
*** SOCK_RAW (qui permet un accès direct aux protocoles de la couche Réseau comme IP, ICMP, ...).
Principe de fonctionnement de Programmation réseau en TCP
Coté serveur TCP
import socket # importer le module socket
• Threads utilisateurs
• Les threads utilisateurs sont des threads qui ne sont pas liés au
système d'exploitation. Ceux-ci sont gérés à l'intérieur d'un processus,
par une bibliothèque logicielle. Celle-ci s'occupe de la création et la
suppression des threads, ainsi que de leur ordonnancement. Le
système d'exploitation ne peut pas les ordonnancer et n'a donc pas
besoin de mémoriser les informations des threads. Par contre,
chaque thread doit se partager le temps alloué au processus lors de
l'ordonnancement : c'est dans un quantum de temps que
ces threads peuvent s'exécuter.
Threads utilisateurs
Type des Threads
• Threads noyaux
• Les threads noyaux sont gérés par le système d'exploitation, qui peut
les créer, les détruire ou les ordonnancer. L'ordonnancement est donc
plus efficace, vu que chaque thread est ordonnancé tel quel. Il est donc
nécessaire de disposer d'une table des threads pour mémoriser les
contextes d'exécution et les informations de chaque thread.
Threads noyaux
• Un processus dispose d un ensemble de zone mémoire (soit organisé
sous forme de page ou de segments ) pour la pile , le code et les
données . Si un processus donne naissance a un autre processus les 2
processus vive et meurt sans conséquence sur l autre.
• Un thread partage sa mémoire avec d autres thread on parle de
mémoire partagée. Si le processus qui a crée les threads est tué alors
tous ses threads le seront aussi avec lui.
• De nombreux systèmes d’exploitation offrent la possibilité d’associer
à un même processus plusieurs chemin d’exécution (Multithreading)
Exemple de Threading avec Python
import threading
import time
def run(self):
for i in range(0, self.jusqua):
print("thread ", i)
time.sleep(0.08) # attend 100 millisecondes sans rien faire
# facilite la lecture de l'affichage