RESEAUX. Communications dans les systèmes Centralisés vs Répartis. Le modèle OSI : 7 couches Open System Interconnexion. Plan.



Documents pareils
Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Le modèle client-serveur

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

Introduction aux Technologies de l Internet

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

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

2. DIFFÉRENTS TYPES DE RÉSEAUX

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

Programmation client-serveur sockets - RPC

Introduction. Adresses

Programmation Internet en Java

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

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

M1 MIAGE - Réseau TP1

DIFF AVANCÉE. Samy.

Cisco Certified Network Associate

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

Cours 6 : Programmation répartie

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Rappels réseaux TCP/IP

18 TCP Les protocoles de domaines d applications

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

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

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Devoir Surveillé de Sécurité des Réseaux

Réseaux et protocoles Damien Nouvel

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Chapitre 11 : Le Multicast sur IP

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

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Algorithmique des Systèmes Répartis Protocoles de Communications

Les Réseaux Informatiques

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Chapitre : Les Protocoles

Flux de données Lecture/Ecriture Fichiers

Le protocole TCP. Services de TCP

Couche Transport TCP et UDP

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

PowerShield 3 fournit toutes les informations nécessaires pour un diagnostic de premier niveau.

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

Les Réseaux Les transferts de données

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Principes des Architectures Middleware version 2.0

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

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

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

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

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

Remote Method Invocation (RMI)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Administration UNIX. Le réseau

Plan. Programmation Internet Cours 3. Organismes de standardisation

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

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

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

Algorithmique et langages du Web

Internet Protocol. «La couche IP du réseau Internet»

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

LES RESEAUX INFORMATIQUES

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Groupe Eyrolles, 2000, 2004, ISBN :

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Catalogue & Programme des formations 2015

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Développement Web. Les protocoles

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

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

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Plan de cours. Fabien Soucy Bureau C3513

Gestion distribuée (par sockets) de banque en Java

Outils de l Internet

Logiciels et accessoires

Tout sur les Réseaux et Internet

Programmation Réseau SSH et TLS (aka SSL)

Figure 1a. Réseau intranet avec pare feu et NAT.

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Administration des ressources informatiques

Ethernet Industriel Réseaux Ethway Coupleur Ethernet sur Automates Programmables. Plan. Contexte

Informatique Générale Les réseaux

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

N o t i o n s d e b a s e s u r l e s r é s e a u x C h a p i t r e 2

Cours CCNA 1. Exercices

Cours des réseaux Informatiques ( )

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Spécialiste Systèmes et Réseaux

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

Groupe Eyrolles, 2006, ISBN : X

Dis papa, c est quoi un bus logiciel réparti?

Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

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

Présentation et portée du cours : CCNA Exploration v4.0

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Présentation et portée du cours : CCNA Exploration v4.0

Dynamic Host Configuration Protocol

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Architecture TCP/IP. Protocole d application. client x. serveur y. Protocole TCP TCP. TCP routeur. Protocole IP IP. Protocole IP IP.

GENERALITES. COURS TCP/IP Niveau 1

Transcription:

RESEAUX Communications dans les systèmes Centralisés vs Répartis Espace utilisateur P1 P2 P1 P2 Programmation par sockets Espace noyau Systèmes centralisés Systèmes répartis Nécessité d avoir une mémoire partagée ex : pipe sous Unix Communications par envoie de messages USTL / IUT A - Réseaux - 2003/2004 Jean Carle 2 Plan Modèles sous-jacents OSI, TCP-UDP/IP Sockets Connexion TCP Connexion UDP Port de connexion API Socket Java Le modèle OSI : 7 couches Open System Interconnexion 7 Application - Ensemble de services standard : terminal virtuel, transfert de fichiers, 6 Présentation - Codage de l information formatage, compression, cryptage 5 Session -Gestion complète d une session de communications entre 2 utilisateurs. 4 Transport - Transport de l information entre deux processus : découpage en paquet, multiplexage 3 Réseau - Transport de l information entre deux points du réseau (Routage) 2 Liaison de données - Transport de l information entre deux points des blocs de données (trames) 1 Physique - Transport de l information comme une suite de bits USTL / IUT A - Réseaux - 2003/2004 Jean Carle 3 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 4 Modèle TCP/IP TCP/IP : Passerelle 5 Application 4 Transport telnet, ftp, smtp pop, http, nntp, TCP tftp, snmp, rip, rpc, dhcp, UDP Application Transport Messages Identiques Paquets Identiques Application Transport 3 2 Accès Réseau 1 Physique ARP RARP ATM Ethernet IP Fibre Optique ICMP IGMP Physique 1 Datagrammes Trames Passerelle Datagrammes Trames Physique 2 LAN 1 LAN 2 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 5 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 6 1

TCP Transmission Control Protocol Transmission avec connexion (type téléphone) Création d un circuit virtuel entre source et destination Mode point à point Gestion séquence Ordonnancement des paquets Gestion des flux afin d éviter l envoie de paquets irrecevable par le destinataire (ex : manque de place). Liaison full-duplex (virtuellement) Orienté flux de données Connexion fiable de bout en bout mais lente (complexe) USTL / IUT A - Réseaux - 2003/2004 Jean Carle 7 UDP 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 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 8 Ce ne sont pas des ports physiques comme les ports séries ou parallèles, ce sont des ports logiques. Un port de connexion est un nombre sur 16 bits 65536 possibilités Ports réservés en standard : de 0 à 1023 http://www.iana.org/assignments/port-numbers, RFC 1700 Permet d avoir sur une même machine, plusieurs services accessibles simultanément (web, email, ftp, ) Identification locale d un service : S1 : @IP1:x S2 : pas d accès réseaux S3 : @IP1:y S1 S2 S3 @IP1 x y z t P1 P3 @IP2 Une liaison entre deux machines est identifiée par la connaissance de deux couples (@machine / port cnx) : Identification de l application cliente et de l application serveur. P2 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 9 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 10 0 Exemples Plage de port 1024 49151 65536 Ports réservés Ports déclarés mais utilisables Ports libres Zone utilisateurs Remarque : Le port 0 est spécial Certaines applications réservent des ports en zone utilisateurs ex : X11 se réserve le port 6000 http ftp telnet smtp https Appli. dédiée dns chargen 80 20/21 23 25 443 3435 53 19 Machine A 1345 Machine B Machine C Liste des ports réservés : RFC 1700 http://www.iana.org/assignments/port-numbers USTL / IUT A - Réseaux - 2003/2004 Jean Carle 11 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 12 2

Les Sockets Le modèle Les sockets = interface (point de communication) = API (Application Program Interface) Interface entre les programmes d applications et les couches réseaux Le terme Socket (embout) désigne aussi un canal de communication par lequel un processus peut envoyer ou recevoir des données L API Socket est proche de l API Fichier d Unix Primitives de d ouverture/fermeture, lecture/écriture, de contrôle Histoire 1982 : BSD implémente une interface Socket Winsock de Trumpet pour windows API Réseau de Java java.net et javax.net Niveau application (couches OSI 5,6,7) URL, URLConnection, HttpURLConnection, JarURLConnection, URLDecoder, URLEncoder, Adresse IP InetAddress Sockets TCP Socket, ServerSocket Sockets UDP DatagramSocket, DatagramPacket Multicast MulticastSocket USTL / IUT A - Réseaux - 2003/2004 Jean Carle 13 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 15 Classe java.net.inetaddress Représente une adresse IP Utilisé par les classes Socket et DatagramSocket public static InetAddress getbyname(string host), public static InetAddress [ ] getallbyname(string host), public static InetAddress getlocalhost(), Exception : UnknownHostException, IOException Sous classe : Inet4Address, Inet6Address. Classe java.net.inetaddress Exemple : InetAddress adresse; if (args.length > 0) adresse=inetaddress.getbyname(args[0]); else adresse=inetaddress.getlocalhost(); System.out.println(adresse.toString()); catch (UnknownHostException e) { System.out.println("Adresse inconnue"); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 16 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 17 Sockets TCP Mode connecté La connexion est asymétrique Une machine est client : classe java.net.socket Demandeur d un service Demande l établissement d une connexion avec le serveur Une machine est serveur : classe java.net.serversocket Prestataire d un service Attend les demandes de connexion et les accepte 2 flots de données établis entre les 2 machines Circuit virtuel Sockets TCP - Connexion Connexion client (active) client = new Socket("adresseServeur", portservice); Derrière : Demande de connexion au serveur ; Création de deux canaux de communications. Connexion serveur (passive) serveur = new ServerSocket(portService); socketclient = serveur.accept(); // attente d une demande de connexion // l appel est bloquant USTL / IUT A - Réseaux - 2003/2004 Jean Carle 18 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 19 3

Sockets TCP - Dialogue Récupération des canaux d entrée et de sortie InputStream is = client.getinputstream(); OutputStream os = client.getoutputstream(); Possibilité d utiliser un reader bufferisé et un writer in = new BufferedReader(new InputStreamReader(is)); out = new PrintWriter(os, true); Réception/Envoie de données String ligne = in.readline(); out.println("j écris dans le tuyau"); D autres méthodes existent pour utiliser différents types de flots de données, RTFM 1 Sockets TCP Création Socket et demande de connexion Ouverture client OK Client 1 Serveur 1 Création ServeurSocket liaison à un port TCP 2 Attente d une demande de connexion Ouverture serveur OK 1 Relis Ton Formidable Manuel : classe java.io.* USTL / IUT A - Réseaux - 2003/2004 Jean Carle 20 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 21 Socket TCP Exemple code client import java.net.*; import java.io.*; public class ClientEcho { public static void main(string[] args) { String ligne, adrserv = args[0]; int portserv = Integer.parseInt(args[1]); BufferedReader in, userinput; PrintWriter out; Socket masocket; // connexion avec le clavier userin = new BufferedReader ( new InputStreamReader( System.in ) ); // Ouverture socket, demande de connexion masocket = new Socket (adrserv, portserv); // connexion au canal de réception in=new BufferedReader ( new InputStreamReader ( masocket.getinputstream() ) ); // connexion au canal d écriture out = new PrintWriter ( masocket.getoutputstreaml() ); Socket TCP Exemple code client // saisie clavier ligne = userinput.readline(); // bloquant // Finie? Oui, alors sortie if (ligne.equals(".")) break; // Non => envoie (écriture) des données au serveur (out) out.println(ligne); // Lecture canal réception (in) et affichage à l écran System.out.println(in.readLine()); // bloquant si canal vide catch (UnknownHostException e) {System.err.println(e); catch(ioexception e) {System.err.println(e); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 22 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 23 Socket TCP Exemple code serveur import java.net.*; import java.io.*; public class ServeurEcho { public static void main(string[] args) { int portmonservice = Integer.parseInt(args[0]); ServerSocket socketecoute; // Creation connexion passive socketecoute = new ServerSocket ( portmonservice ); // Attendre et réalisez le service pour chaque connexion // accès séquentiel (un client servit à la fois) while ( true ) doservice( socketecoute.accept() ); // bloquant catch(ioexception e) {system.err.println(e); Socket TCP Exemple code serveur static void doservice (Socket clientsocket) throws IOException { BufferedReader in; PrintWriter out; // Connexion au flux en lecture in =new BufferedReader(new InputStreamReader( socketclient.getinputstream()) ); // Connexion au flux en écriture out = new PrintWriter( socketclient.getoutputstreaml() ); // Ici, on renvoie ce que l on reçoit // ATTENTION : readline est bloquant while (true) out.println(in.readline()); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 24 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 25 4

Socket UDP Mode non connecté Non fiable, et réception non ordonnée Principe Pas de circuit virtuel définit à l avance L envoyeur envoie un datagramme (paquet de données) sur un socket que le receveur écoute. java.net.datagramsocket Représente le socket local ou distant en mode non connecté java.net.datagrampaquet Représente le paquet à envoyer ou reçu (tableau d octets) Socket UDP Émetteur Création d un socket DatagramSocket dgsocket = new DatagramSocket(); Préparation des données byte[] data = new byte[15];// à remplir!! data = {'H','e','l','l','o','\r','\n'; DatagramPacket outdata = new DatagramPacket(data, data.length, IP_destination, port); Envoie du paquet dgsocket.send(outdata); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 26 USTL / IUT A - Réseaux - 2003/2004 Jean Carle 27 Socket UDP Récepteur Création d un socket lié au port d écoute DatagramSocket dgsocket =new DatagramSocket(port); Préparation du paquet de réception byte[] data = new byte[max];// vide DatagramPacket indata = new DatagramPacket(data, data.length); Réception du paquet dgsocket.receive(indata); // bloquant RAPPEL : l ordre de réception des paquet peut être différent de celui d émission USTL / IUT A - Réseaux - 2003/2004 Jean Carle 28 Socket UDP Exemple code émetteur import java.io.*; import java.net.*; public class ClientUDP { public static void main (String [] args) { InetAddress adrserv = InetAddress.getByName(args[0]); int portserv = Integer.parseInt(args[1]); DataInputStream user = new DataInputStream(System.in); // clavier DatagramSocket dgsocket = new DatagramSocket();//Socket UDP client String ligne = user.readline(); // Lecture clavier if (line.equals(".")) break; // Fin? Oui, alors sortie // Non, alors préparer et envoyer un paquet int ldata = ligne.length(); byte [] data = ligne.getbytes(); DatagramPacket dg=new DatagramPacket(data, ldata, adrserv, portserv); dgsocket.send(dg); // Paquet envoyé catch (IOException e) {System.err.println(e); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 29 Socket UDP Exemple code récepteur import java.io.*; import java.net.*; class ServeurUDP { final static int port = 5555, lgmax=1024; final static byte buffer[] = new byte[lgmax]; public static void main(string argv[]) { // Socket UDP serveur : port d écoute en paramètre DatagramSocket dgsocket = new DatagramSocket(port); // préparation paquet de réception DatagramPacket datareceived=new DatagramPacket(buffer, buffer.length); dgsocket.receive(datareceived); //attente réception : appel bloquant // Affichage de la provenance et du contenu du datagramme System.out.println("Paquet reçu : "+new String(dataReceived.getData())); System.out.println("Emetteur : " + datareceived.getaddress().gethostname() + ":" + datareceived.getport()); catch (IOException e) {System.err.println(e); USTL / IUT A - Réseaux - 2003/2004 Jean Carle 30 5