Architecture Client/Serveur. andreu@lirmm.fr 1



Documents pareils
Présentation du modèle OSI(Open Systems Interconnection)

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Le service FTP. M.BOUABID, Page 1 sur 5

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Introduction. Adresses

Le modèle client-serveur

Couche application. La couche application est la plus élevée du modèle de référence.

Applications client/serveur TCP/IP - Sockets Rappels. C.Crochepeyre Applications CS 1

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Cours CCNA 1. Exercices

Les messages d erreur d'applidis Client

18 TCP Les protocoles de domaines d applications

Introduction à la Programmation Parallèle: MPI

Manuel d'installation

NOTIONS DE RESEAUX INFORMATIQUES

GENERALITES. COURS TCP/IP Niveau 1

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Présentation du déploiement des serveurs

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

VLAN Virtual LAN. Introduction. II) Le VLAN. 2.1) Les VLAN de niveau 1 (Port-based VLAN)

UDP/TCP - Protocoles transport

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Cisco Certified Network Associate

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

Présentation Internet

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

Communication par sockets

Réseaux et protocoles Damien Nouvel

Domain Name Service (DNS)

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

La Solution Crypto et les accès distants

Installation d un serveur DHCP sous Gnu/Linux

Infrastructure RDS 2012

L annuaire et le Service DNS

SYSTÈME DE GESTION DE FICHIERS

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Domain Name System. F. Nolot

Chapitre 6 -TP : Support Réseau des Accès Utilisateurs

Chapitre : Les Protocoles

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Microsoft Dynamics AX. Solutions flexibles avec la technologie Microsoft Dynamics AX Application Object Server

Services Réseaux - Couche Application. TODARO Cédric

Programmation Internet Cours 4

L3 informatique Réseaux : Configuration d une interface réseau

Configuration de SQL server 2005 pour la réplication

Serveurs de noms Protocoles HTTP et FTP

Le travail collaboratif et l'intelligence collective

Fax Server. Blue Line IP ISDN ISDN PRI

Service de noms des domaines (Domain Name System) Cours administration des services réseaux M.BOUABID,

1.Introduction - Modèle en couches - OSI TCP/IP

6605 MFP 3615 MFP. Sommaire : Paramètres généraux. Réglages de l Horloge et des Bacs. Paramètre Copie (par défaut) Paramètres Réseaux (IP)

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

ETI/Domo. Français. ETI-Domo Config FR

Partie 1 : Architecture et communications Client/Serveur

Travaux Pratiques Introduction aux réseaux IP

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

Manuel d'installation de Joomla 1.7

Dynamic Host Configuration Protocol

TAGREROUT Seyf Allah TMRIM

20/09/11. Réseaux et Protocoles. L3 Informatique UdS. L3 Réseaux et Protocoles. Objectifs du cours. Bibliographie

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

contact@nqicorp.com - Web :

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Rappels réseaux TCP/IP

Cisco Certified Network Associate

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

Principe de la messagerie électronique

Plan Général Prévisionnel (1/2) Internet et Outils L1/IO François Armand. Plan Général Prévisionnel (2/2) Unix, Réseau: Plan

NOTE D'APPLICATION CONCERNANT LA MISE EN SERVICE DE MATERIELS SUR RESEAU IP

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

SECURITE DES DONNEES 1/1. Copyright Nokia Corporation All rights reserved. Ver. 1.0

Module 8. Protection des postes de travail Windows 7

Enregistreur Energie Electrique et Tele Surveillance GTB8 sur RESEAUX IP ETHERNET

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

LES ACCES ODBC AVEC LE SYSTEME SAS

Outils de l Internet

Plan. Programmation Internet Cours 3. Organismes de standardisation

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

I-Fax (fax par Internet)

Administration des ressources informatiques

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

Serveur FTP. 20 décembre. Windows Server 2008R2

Transcription:

Architecture Client/Serveur andreu@lirmm.fr 1

Qu'est-ce qu'un serveur? un «logiciel serveur» offre un service sur le réseau, le «serveur» est la machine sur laquelle s'exécute le logiciel serveur, le serveur doit être sur un site avec accès permanent et s'exécuter en permanence. Un site peut offrir plusieurs services. Le serveur accepte des requêtes, les traite et envoie le résultat au demandeur. Un service est fourni sur un Port de communication identifié par un numéro. Certains numéros de Port (internationalement définis) identifient le service quelque soit le site ex : - le service FTP est offert sur les ports numéros 21 (contrôle) et 20 (données), - le service TELNET (émulation terminal) sur le port 23, - le service SMTP (mail) sur le port 25, -etc. Pour accéder à un service, il faut l'adresse du site et le numéro du port. Qu'est-ce qu'un client? andreu@lirmm.fr 2

Qu'est-ce qu'un client? un «logiciel client» utilise le service offert par un serveur, le «client» est la machine sur laquelle s exécute le logiciel client, Le client est raccordé par une liaison temporaire. Le client envoie des requêtes et reçoit des réponses. Quelle architecture client/serveur? client serveur andreu@lirmm.fr 3

Architecture client/serveur? description du fonctionnement coopératif entre le serveur et le client. Un serveur peut être utilisé par plusieurs clients, ceux-ci pouvant être développés sur différents systèmes : Unix, Mac ou PC par ex. Mais obligation de respecter le protocole entre les deux processus communicants. Pile de protocoles TCP/IP très souvent utilisée (Internet par ex.) L Application Program Interface (API) utilisée est l'api s. (dans notre cas) API = un ensemble de primitives pour l'accès à la pile de protocoles TCP/IP. Notion de s (et principales primitives) andreu@lirmm.fr 4

Notion de s (prises de raccordement) Transfert des données Ce n est ni une norme de communication ni une couche de protocole C est une interface entre le programme d'application et les protocoles de communication mécanisme de communication bidirectionnel interprocessus (dans un environnement distribué) API (ensemble de primitives de programmation) et Extrémités de la communication {Add IP, numéro Port} andreu@lirmm.fr Cf. modèle TCP/IP 5

Principe de programmation Transfert des données Un socket s'utilise comme un fichier : 1. Création/Définition/Ouverture 2. Communication 3. Fermeture/Libération. Création/Définition/Ouverture - réservation des ressources pour l interface de communication - création d un descripteur du socket (similaire descripteur de fichier) seulement une extrémité de connexion Communication - utilisation des primitives read (réception), write (émission) (idem fichier) - plusieurs variantes de primitive d émission et de réception Fermeture/Libération - utilisation de la primitive close (fermeture de la communication) andreu@lirmm.fr 6

SERVEUR 193.49.108.49 21 Architecture Client/Serveur Primitives de programmation (API) Berkeley s (UNIX) - socket() - crée le socket (extrémité de connexion) en définissant : - domaine (ex: Internet)... AF_INET (adressage IP) - type (service utilisé) SOCK_STREAM (mode connecté) - protocole... IPPROTO_TCP (TCP/IP) pas nécessaire - bind() - associe le descripteur crée par socket() à l'adresse et au port du serveur Rem : c est un socket découte, i.e. non associé précisément CLIENT 193.49.108.87 21 193.49.108.49 - listen() - spécifie le nombre de demandes de connexions max acceptées (mises en attente si le serveur est occupé) Rem: pour pouvoir traiter plusieurs connexions (n>1), un processus fils doit être créé après chaque accept() permettant de traiter cette communication, tandis que le processus père traite les demandes de connexion (listen()). /... andreu@lirmm.fr 7

SERVEUR Architecture Client/Serveur Primitives de programmation (API) CLIENT 21 193.49.108.49 - accept() - traite une demande de connexion dans la file des demandes, si aucune demande de connexion alors blocage (i.e. inactivité) - connect() - émet une demande de connexion au serveur et attend une réponse de connexion avant de continuer Précisions sur les paramètres de connect(): - indiquer l adresse IP et le Port du serveur, i.e. l extrémité de connexion souhaitée {193.49.108.49, 21} - automatique pour l extrémité locale (i.e. client) le système attribue un numéro de port (pas encore utilisé) et récupère l adresse IP de la machine {193.49.108.87,2065} accept() débloqué et création d un nouveau socket associé à cette communication 2065 193.49.108.87 {193.49.108.49, 21} {193.49.108.87, 2065} /... andreu@lirmm.fr 8

SERVEUR Architecture Client/Serveur Primitives de programmation (API) CLIENT Communication établie (deux extrémités de connexion couplées) échanges de données possibles. Transfert des données write() ou send(). read() ou recv() read() ou recv() write() ou send(). Transfert des données {193.49.108.49, 21} {193.49.108.87, 2065} Rupture de la communication (connexions relatives aux sockets sont fermées) - Close() - La fermeture d'un socket n'implique pas la perte des données restant à acheminer. Le système tient compte des différents processus utilisant le socket et le transport des données en attente est assuré avant la fermeture réelle. La terminaison d un processus (normalement ou non) ferme d autorité les sockets. andreu@lirmm.fr 9

Architecture Client/Serveur Primitives de programmation (API) Primitives d échanges de données Transfert des données write() ou send(). read() ou recv() Transfert des données int read(int sockd, char *ptampon, int lgtampon); int recv(int sockd, char *ptampon, int lgtampon, int drapeaux); descripteur du socket pointeur vers le buffer d'émission (ou de réception) Retour : int nombre d'octets transmis (ou reçus) en cas de succès, ou -1 en cas d'échec, ou 0 si application distante arrêtée (réception seulement) int write (int sockd, char *ptampon, int lgtampon); int send (int sockd, char *ptampon, int lgtampon, int drapeaux); nombre d'octets à émettre (ou à recevoir) indicateur pour le contrôle de l'échange : 0 dans les cas courants, MSG_OOB pour message express, MSG_DONTROUTE pour inhiber le routage, MSG_PEEK pour consulter les données reçues sans les prélever. andreu@lirmm.fr 10

Algorithmes Programme serveur pour un seul client (illustré pour FTP) Initialisation du serveur Attente connexion Non Fin échec Demande le droit d'utiliser l'identificateur de port réservé 21 Oui Autorisé Attente CLIENT sur le port 21 Service rendu au client Arrivée CLIENT sur le port 21 Fin connexion (pour ce client) Servir CLIENT andreu@lirmm.fr 11

Algorithmes Demande le droit d'utiliser l'identificateur de port réservé 21 Concept de serveur multi-clients (programmation concurrente) (illustré pour FTP) Connexion d un client Ci, le serveur génère un processus fils (duplication du prog. serveur) pour répondre à la demande du client Ci. Ainsi, le programme serveur peut-il attendre un autre client. connexion refusée pour cause de saturation du serveur (nombre max de clients atteint ) Non Fin échec Oui refus connexion Autorisé Attente CLIENT sur le port 21 Arrivée CLIENT sur le port 21 Nbre client > N création d'un Non processus serveur fils p Nbre client++ andreu@lirmm.fr 12

Concept de serveur multi-clients (programmation concurrente) Architecture Client/Serveur Prog. serveur dupliqué (fork()) à chaque connexion d un client Ci. serveur fils p Algorithmes serveur fils k servir client k serveur fils j servir client j Arrêt connexion serveur fils i servir client i Arrêt connexion servir client p indication au processus père Arrêt connexion de la fin de la connexion indication au processus père Arrêt connexion de la fin de la connexion indication au processus père destruction du processus de la fin de la connexion serveur fils i destruction du processus indication au processus père serveur fils j de la fin de la connexion destruction du processus serveur fils k destruction du processus serveur fils p andreu@lirmm.fr 13

Primitives de programmation (API) pour WINDOWS Les Windows s = API WinSock, appelée aussi WSA (Windows s API) interface de programmation s pour l'environnement Microsoft Windows primitives Berkeley s (quelques différences avec API Windows) et un ensemble de routines spécifiques Windows (gestion des messages sous Windows) API WinSock winsock.h (fichier entête contenant toutes les structures, définitions, prototypes...). wsock32.dll contenant toutes les fonctions nécessaires dans une librairie dynamique; wsock32.lib contenant les points d'entrée des fonctions sockets dans les dll respectives. Deux primitives particulières : - WSAStartup() - WSACleanup() Inévitable appel à WSAStartup() au début, pour vérifier si l'api Winsock utilisée est bien supportée par la winsock.dll implantée sur le système Appel à WSACleanup() à la fin, pour libérer les ressources. andreu@lirmm.fr 14