Vous êtes sur la page 1sur 23

Applications Réparties

Programmation Sockets-RPC

Atef Ben Ismail

INSAT 2009-2010
Architecture Réseau en couches

 La couche i fourni des services à la couche i+1 en s’appuyant sur le services de


la couche i-1

 Deux couches de même niveau (sur deux entités) utilisent un ensemble de


règles pour communiquer appelé protocole

2 Application Réparties INSAT 2010


Architecture des réseaux : Définitions

 Service: Ensemble des fonctions offertes par une ressource


• Exemple: Couche personne au guichet: Envoi d’un télégramme
• Une couche i utilise les services de la couche i-1 afin de réaliser les services pour la
couche i+1
 Interface: Ensemble des règles et des moyens physiques nécessaires pour
accéder à un service.
• Exemple: interface utilisateur/personne au guichet: guichet, papier portant le texte
écrit du télégramme, le nom et l’adresse du destinataire
• Interface entre deux couches sur une même entité pour accéder à un service
 Protocole: Ensemble de conventions réglant les échanges entre des entités qui
coopèrent pour rendre un service.
• Exemple: le morse pour la couche Morse. Dire au téléphone "allo", attendre un "allo"
puis parler est un protocole souvent utilisé
• Protocole entre deux couches de même niveau sur des entités distinctes

3 Application Réparties INSAT 2010


Le modèle OSI (Open System Interconnection):
l'architecture en couches

4 Application Réparties INSAT 2010


Les couches du modèle OSI 1/3

 Application
• C'est le programme qui gère l'application proprement dite
• Ex: ftp : prendre le fichier sur le disque local et le passer au "réseau"...
 Présentation
• Mise en forme et représentation des informations
• Ex: Cryptage, représentation des entiers ...
 Session
• Gestion du dialogue
• Ex: synchronisation d'un dialogue (à qui est ce le tour de parler?)

5 Application Réparties INSAT 2010


Les couches du modèle OSI 2/3

 Transport
• Etablissement et rupture des connexions mulitples.
• Dialogue de bout en bout (on ne s’occupe pas des noeuds intermédiaires)
• Découpage des trames : segmentation/réassemblage
• Contrôle de flux
• Contrôle de congestion
• Réseau
• Routage des paquets à travers le réseau
• Segmentation/réassemblage
• Contrôle de congestion
• Garantie de qualité de service: débit, taux d’erreur, temps de transport...

6 Application Réparties INSAT 2010


Les couches du modèle OSI 3/3

 Liaison de données
• La mise en paquet de l’information
• La détection et la reprise des erreurs
• Le contrôle de flux visant à asservir la vitesse de l'émetteur à celle du récepteur.
 physique
• Principales caractéristiques des voies physiques
• Passage de l’information binaire aux ondes électriques, ondes lumineuses, ondes
radio...
• Traitement du signal

7 Application Réparties INSAT 2010


Principe de l’encapsulation

 Indépendance des couches: on doit par exemple pouvoir changer la couche


transport sans modifier les couches inférieures

 Une couche i ne s’intéresse pas au contenu des données, elle doit n’utiliser
que les informations de son entête pour fournir son service

8 Application Réparties INSAT 2010


Les protocoles de l’Internet

• TCP : Transmission Control Protocol


• UDP : User DataGram Protocol
• IP : Internet Protocol
• PPP : Point to Point Protocol
• FDDI: Fiber Distributed Data Interface

9 Application Réparties INSAT 2010


Architecture TCP/IP

10 Application Réparties INSAT 2010


UDP: User Datagram Protocol

 Niveau 4 (couche Transport)

 User Datagram Protocol


• Transmission sans connexion (modèle Postal)
• Pas de contrôle de séquencement
– L’ordre d’arrivée des messages peut être différent de l’ordre d’envoie
• Pas de garantie d’arrivée
– Mais les données reçues sont garanties non corrompues
 Non fiable mais rapide
• Applications audio/vidéo
• Petits flux de données

11 Application Réparties INSAT 2010


Les services du protocole UDP

 Mode sans connexion (Datagram)

 Multiplexage applications -> transport

 Numéro de port sur 1 octets

 Longueur en nombre d’octets

 Détection d’erreur optionnelle (par “checksum”)

 Aucun contrôle de flux et récupération d’erreur

 Entête UDP:

Port source Port destination


Longueur Détection d'erreur
Données

http://fr.wikipedia.org/wiki/User_datagram_protocol

12 Application Réparties INSAT 2010


Services du protocole TCP

 Segmentation re-assemblage des messages


• Concaténation des paquets : flux d’octets
 Rétablir l’ordre des paquets
• Numérotation des octets de données
 Multiplexage vers plusieurs applications (numéro de port)

 Service orienté connexion


• Ouverture et libération de la connexion
 Transfert de données exprès

 Contrôle de flux

 Détection des paquets erronés et perdus

 Récupération des erreurs par réémission

 Détection d’inactivité

13 Application Réparties INSAT 2010


Paquet TCP

http://fr.wikipedia.org/wiki/Transmission_Control_Protocol#Structure_d.27un_segment_TCP

14 Application Réparties INSAT 2010


Schéma client-serveur
 Rappel du schéma client-serveu (Qppel Synchrone)

 Mise en oeuvre
Bas niveau : utilisation directe du transport : sockets (construit sur TCP ou UDP)
– Exemple : utilisation des sockets en Java
Haut niveau : intégration dans un langage de programmation : RPC (construit sur
sockets)
– Exemple : RPC en C

15 Application Réparties INSAT 2010


Sockets: Définition

1. Un modèle permettant la communication inter processus afin de permettre à


divers processus de communiquer aussi bien sur une même machine qu'à
travers un réseau TCP/IP.

2. Mécanisme de communication permettant d’utiliser l’interface de transport


(TCP-UDP).

16 Application Réparties INSAT 2010


Sockets: Principe de fonctionnement

 3 phases:

1. le serveur crée une "socket serveur" (associée à un port) et se met en attente

2. le client se connecte à la socket serveur ; deux sockets sont alors crées : une
"socket client ", côté client, et une "socket service client" côté serveur. Ces
sockets sont connectées entre elles

3. Le client et le serveur communiquent par les sockets. L’interface est celle


des fichiers (read, write). La socket serveur peut accepter de nouvelles
connexions

17 Application Réparties INSAT 2010


Deux réalisations possibles du client-serveur avec sockets
 Mode connecté (protocole TCP)
• Ouverture d’une liaison, suite d’échanges, fermeture de la liaison
• Le serveur préserve son état entre deux requêtes
• Garanties de TCP : ordre, contrôle de flux, fiabilité
• Adapté aux échanges ayant une certaine durée (plusieurs messages)
 Mode non connecté (protocole UDP)
• Les requêtes successives sont indépendantes
• Pas de préservation de l’état entre les requêtes
• Le client doit indiquer son adresse à chaque requête (pas de liaison permanente)
• Pas de garanties particulières (UDP)
• Adapté aux échanges brefs (réponse en 1 message)
 Points communs
Le client a l’initiative de la communication ; le serveur doit être à l’écoute
Le client doit connaître la référence du serveur [adresse IP, n° de port] (il peut la
trouver dans un annuaire si le serveur l’y a enregistrée au préalable, ou la connaître
par convention : n°s de port préafféctés)
Le serveur peut servir plusieurs clients (1 thread unique ou 1 thread par client)
18 Application Réparties INSAT 2010
Utilisation du mode connecté
 Caractéristiques
• établissement préalable d’une connexion (circuit virtuel) : le client demande au
serveur s’il accepte la connexion
• fiabilité assurée par le protocole (TCP)
• mode d’échange par flot d’octets : le récepteur n’a pas connaissance du découpage
des données effectué par l’émetteur
• possibilité d’émettre et de recevoir des caractères urgents (OOB : Out OF Band)
• après initialisation, le serveur est “passif” : il est activé lors de l’arrivée d’une
demande de connexion du client
• un serveur peut répondre aux demandes de service de plusieurs clients : les requêtes
arrivées et non traitées sont stockées dans une file d’attente
 Contraintes
• le client doit avoir accès à l’adresse du serveur (adresse IP, n° de port)
 Modes de gestion des requêtes
• itératif : le processus traite les requêtes les unes après les autres
• concurrent : par création de processus fils pour les échanges de chaque requête
(ouverture de connexion)
19 Application Réparties INSAT 2010
Programmation avec sockets

 Principes
• Les différentes opérations de gestion de sockets (socket, bind, etc.) sont fournies
comme primitives (appel systèmes) dans Unix (et d’autres systèmes d’exploitation)
• On peut utiliser directement ces opérations, mais les langages usuels fournissent des
outils facilitant leur usage et couvrant les cas courants, côté client et côté serveur
– bibliothèques spécialisées en C
– classes en Java

20 Application Réparties INSAT 2010


Socket en Java; Mode Connecté

 Deux classes de base


java.net. ServerSocket : socket côté serveur (attend connexions et crée socket
service client)
java.net.Socket : sockets ordinaires, pour les échanges. Fournissent des classes
InputStream et OutputStream (flots d’octets) pour échanger de l’information.
Exemple :
Utilisables ainsi :
String s1, s2;
mySocket = new Socket(“10.0.0.154“, 7654); out.println(s1);
s2 = in.readLine();

PrintWriter out = new PrintWriter(mySocket.getOutputStream(),true);


BufferedReader in = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));

Analogie avec fichiers (les sockets s’utilisent comme des fichiers) :


BufferedReader in = new BufferedReader(new FileReader("myFile"));
PrintWriter out = new PrintWriter(new FileWriter("myFile"), true);

21 Application Réparties INSAT 2010


Socket en Java; Mode non Connecté

 La classe java.net.DatagramSocket permet d'envoyer et de recevoir des


paquets (datagrammes UDP)

 On peut connecté un socket datagramme à un destinataire


• public void connect(InetAddress address, int port)
• public void disconnect()
 La classe java.net.InetAddress

http://java.sun.com/docs/books/tutorial/networking/sockets/

22 Application Réparties INSAT 2010


www.alcatel-lucent.com
INSAT 2009-2010

23 | A look Forward | January 2010

Vous aimerez peut-être aussi