La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La couche Application. La couche application Plan Le modèle client-serveur – – HTTP – Résolution de noms – DHCP – Les applications P2P.

Présentations similaires


Présentation au sujet: "La couche Application. La couche application Plan Le modèle client-serveur – – HTTP – Résolution de noms – DHCP – Les applications P2P."— Transcription de la présentation:

1 La couche Application

2 La couche application Plan Le modèle client-serveur – Email – HTTP – Résolution de noms – DHCP – Les applications P2P

3 Le modèle client-serveur Client Server Réseau requêtes Réponses Client : processus demandant l’exécution d’une opération à un autre processus par envoi de message contenant le descriptif de l’opération à exécuter et attendant la réponse de cette opération par un message en retour. Serveur : processus accomplissant une opération sur demande d’un client, et lui transmettant le résultat. Requête : message transmis par un client à un serveur décrivant l’opération à exécuter pour le compte du client. Réponse : message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat de l’opération.

4 Les services transport  Les applications peuvent utiliser 2 types de service transport:  User Datagram Protocol (UDP)  Transmission Control Protocol (TCP)

5 Le service UDP UDP service Applic. 2 Applic. 1 Identification IP address : 101:86:05:68 Protocol : UDP Port : 53 Identification: IP address : 20.22.30.80 Protocol : UDP Port : 1234

6 TCP service Applic. 2 Applic. 1 Identification IP address: 139.165.16.12 Protocol : TCP Port : 80 Identification: IP address : 138.48.32.107 Protocol : TCP Port : 9876

7 Plan – Le modèle client-serveur – email – Résolution de noms – world wide web

8 Email Un modèle simplifié – Alice envoie un email à Bob Bob@b.net Alice@a.net Alice’s email server b.net ‘s email server Envoyer l’email au serveur Envoyer l’email à b.net MX Bob récupère le message

9 Format d’un message email From: president@abc.bepresident@abc.be To: ceo@def.com Subject: Helloect: Hello Date : 27 Sept. 1999 0901 Salut, Text... Header Message body

10 Format d’un message email(2) format de l’entête – Contient seulement US-ASCII (7bits) caractères – Fin de ligne marquée From: sender@domainsender@domain To:recipient@domainrecipient@domain Date: – Ex:: 26 Aug 199 1445 EDT – Champs optionnels Subject: subject of message cc: copy@domaincopy@domain Message-ID: number@domain Received: Info sur le chemin In-Reply-To:

11 Contenu des messages A l'origine – courrier électronique développé par des anglophones – message composé de lignes ASCII 7 bits chaque ligne est terminée par – pas de limite a priori sur la taille des lignes ou des messages, mais de nombreux serveurs en imposent Comment dans un email transmettre ? – des caractères accentués – autre chose que du texte ASCII audio video programmes...

12 MIME Limitations – Seulement des caractères ASCII 7 bits – Pas de messages dans des alphabets non latins, pas des accents, pas des messages dans une langues sans alphabet (chinois, japonais) – Que du texte: Pas d’image, pas de audio, pas de vidéos Évolution MIME (Multipurpose Internet Mail Extentions) – Objectifs: Redéfinir le format des messages Rester Compatible avec RFC 822 Supporter des textes dans des langues autres que l’anglais (français, chinois, etc.) Transférer autres choses que du texte (image, audio, vidéo, etc.) Créer des messages composés de plusieurs parties (fichiers attachés, etc.) – Solution Ajouter des nouveaux champs optionnels dans l’en-tête Ajouter des nouveaux éléments, si nécessaire, dans le corps du message 12

13 Champs d’entête liés au transfert de message En-têteSignification MIME-VersionIdentification de la version de mime Content-DescriptionListe du contenu Content-IdIdentificateur unique Content-Transfert-EncodingFaçon dont le corps est emballé pour la transmission => codage base 64 (blindage ASCII), Quoted printable ou codage maison Content-TypeNature du message => Text (Plain, Richtext), Image, Audio, Vidéo, Application, message, Multipart 13

14 Codage base64 Problème à résoudre – Plusieurs serveurs ne sont capables de reconnaître que des caractères ASCII 7 bits – Comment transmettre à travers ces serveurs d’autres types de caractères (Unicode, ISO8859-1), de fichier binaire, etc. Solution – Utiliser l’encodage Base64 – Utiliser les caractères ASCII (A,B,..,Z,a,b,…z,…,+,/) pour définir les éléments de la Base64 A=0, B=1,…,+=62,/=63 – Un caractère ASCII est utilisé pour encoder 6 bits du message initial Idée faire tenir des octets (8 bits) dans 7 bits. – Prendre les octets 3 par 3 (24 bits) – Découper les 24 bits en paquets de 6 bits (4 paquets) – Convertir ces 6 bits en 7 bits. 14

15 Conclusion MIME MIME permet donc : – Des messages composés de plusieurs objets – Plusieurs alphabets – Des messages illimités – Des fichiers binaires ou spécifiques à une application – Des messages multimédia (audio, vidéo, image) – Du texte enrichi (plusieurs polices de caractères, couleur...) – Des liens 15

16 SMTP 16

17 SMTP: Simple Mail Transfert Protocol Rapide Historique : – 1971 : FTP utilisé en temps que support d’échange de mail. – 1982 : Première documentation officielle du protocole SMTP : RFC 821 & RFC 822. – 1986 : Normalisation MOTIS/ISO SMTP: – Protocole d’échange de messages électroniques indépendant du protocole de transport sou jacent. – Pour les réseaux IP, SMTP est implanté au dessus de TCP, port 25. – Un serveur SMTP est une machine « cible » qui se présente comme un « bureau de poste » vis à vis de clients SMTP. 17

18 SMTP : introduction 18 Echange de messages asynchrones à travers l’Internet – trois éléments de base : UA (User Agent) serveurs de mail ou MTA (Mail Transfer Agent) un protocole : SMTP

19 Le système global de messagerie MTA SMTP UA 19

20 Agent (utilisateur – transfert) Un agent utilisateur correspond a l’exécution d’un programme local sur le système d’un utilisateur. Via une variété de commandes propres, son rôle est de permettre la composition, l’envoi et la réception des messages. Un agent de transfert de message est un démon présent sur les serveurs de messageries électroniques. Sa tache est de transférer les messages vers d’autres agents.

21 Transfert de message But faire passer le message d’un émetteur à un destinataire. Du point de vue utilisateur le transfert de message est asymétrique : la réception et l’émission ne reposent pas sur le même protocole. Un protocole pour envoyer le courrier au serveur et pour échanger les courrier entre les serveurs (SMTP) Un protocole pour récupérer les courriers (POP) A B Serveur du courrier électronique de A Serveur du courrier électronique de B Envoie au serveur local Envoie au serveur distant Récupération du message SMTP POP 21

22 Transfert de messages : Protocole SMTP

23 1.Dans un premier temps, une connexion TCP est établie à la demande du serveur de messagerie de l’ULB via le port 25. 2.Il y a échange d’informations de présentation, comme le nom des serveurs. Les adresses destinataire et expéditrice sont également spécifiées. 3.Le client envoie le message à proprement parler. 4.Le client demande la fermeture de la connexion.

24 SMTP: Fonctionnement Étapes: trois phases – Établissement d’une association SMTP Ouverture d’une connexion SMTP Le serveur envoie le message de bienvenue Le client envoie la commande HELLO – Transfert des messages: pour chaque message, on exécute les commandes MAIL FROM: expéditeur@domaine_expéditeur RCPT TO: receveur@domaine_receveurreceveur@domaine_receveur DATA: – Transfert du message au complet (y compris l’en-tête) – Le caractère «.» sur une ligne vide pour indiquer la fin du message – Fermeture de l’association Le client exécute la commande QUIT Le serveur envoie un message de fin Fermeture de la connexion 24

25 SMTP : principes fondateurs 25

26 SMTP : les commandes de base HELO : Initialisation de la session SMTP MAIL FROM: : déclaration de l’émetteur du mail RCPT TO: : déclaration du destinataire du mail DATA : initialisation de la séquence de saisie des données RSET : initialisation de la séquence de saisie des données SEND FROM: : message direct plutôt que postage. VRFY : vérification de l’existence d’un destinataire HELP [ ] : demande d’aide (éventuellement sur une commande) NOOP : aucune opération QUIT : clôture de la session SMTP TURN : demande d’inversion des rôles d’émetteur et de récepteur Les réponses respectent un format comparable à celui de FTP. 26

27 SMTP Error msg 27 500 Syntax error, command unrecognized 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 220 Service ready 221 Service closing transmission channel 421 Service not available, closing transmission channel 250 Requested mail action okay, completed 450 Requested mail action not taken: mailbox unavailable 452 Requested action not taken: insufficient system storage 550 Requested action not taken: mailbox unavailable 354 Start mail input; end with.

28 SMTP : exemple 28  S: 220 smtp.example.com ESMTP MTA information  C: HELO mta.example.org  S: 250 Hello mta.example.org, glad to meet you  C: MAIL FROM:  S: 250 Ok  C: RCPT TO:  S: 250 Ok  C: DATA  S: 354 End data with.  C: Subject: Hello  C:  C: Hello Bob  C: This is a small message containing 4 lines of text.  C: Best regards,  C: Alice  C:.  S: 250 Ok: queued as 12345  C: QUIT  S: 221 Bye : Mon, 9 Mar 2010 18:22:32 +0100

29 Email protocols IMAP signifie Internet Message Access Protocol. IMAP part du principe que les messages restent sur le serveur de courrier IMAP est un protocole plus complexe, possédant plus de fonctionnalités que POP3. Le serveur IMAP écoute sur le port TCP 143. IMAP permet, sur le serveur de messagerie, de disposer d’un gestionnaire de dossiers,…

30 POP 30 L’agent utilisateur établit une connexion TCP via le port 110 avec le serveur de messagerie POP3. Une fois établie, on distingue trois étapes: 1. Autorisation : authentification de l’utilisateur 2.Transaction : l’agent utilisateur charge les messages sur son poste local. Deux configurations possibles: – Télécharger et supprimer – Télécharger et conserver Mise a jour : commande ≪ quit ≫ de l’agent utilisateur

31 POP (Post Office Protocol) But: – Permet d’authentifier les utilisateurs pour récupérer les email. Opération – POP utilise le service TCP. – L’@ POP server Host address + TCP + port number : 110 – Client send commands command : une ligne ASCII line + USER, PASS, STAT, RETR, DELE, QUIT – Serveur répond avec +OK if command was successful -ERR in case of errors

32 POP (2) Trois phases dans ce protocole: 1. Authorisation : checking the user credentials USER PASS 2. Transaction retrieval & removal STAT – RETR – Retrieval (le message #n) DELE 3. Update

33 POP (3) S: +OK POP3 server ready C: USER alice S: +OK C PASS 12345pass S: +OK alice’s maildrop has 2 messages (620 octets) C: STAT S: +OK 2 620 C: LIST S: +OK 2 messages (620 octets) S: 1 120 S: 2 500 S:. C: RETR 1 S: +OK 120 octets S: S:. C: DELE 1 S: +OK message 1 deleted C: QUIT S: +OK POP3 server signing off (1 message left)

34 HTTP 34

35 35 HTTP HTTP: hypertext transfer protocol Un protocole couche application client/server model – client: Navigateur qui demande, reçoit, “affiche” les objets Web – server: Serveur web envoie les objets demandés PC running Explorer Server running Apache Web server Mac running Navigator HTTP request HTTP response

36 36 HTTP Utilise le protocole TCP: client initie la connexion TCP (crée socket) vers le serveur, le port 80 serveur accepte les connexions TCP du client Les messages HTTP (messages de protocole de couche application) échangés entre le navigateur (client HTTP) et le serveur Web (serveur HTTP) Connexion TCP fermés HTTP : “stateless” Le serveur ne conserve pas information sur les demandes des clients passées

37 37 les type de connections Nonpersistent HTTP Au plus un objet est envoyé via une connexion TCP. Persistent HTTP Plusieurs objets peuvent être envoyés via seule connexion une TCP entre le client et le serveur.

38 38 Nonpersistent HTTP Supposons que l'utilisateur demande l'URL www.someSchool.edu/someDepartment/home.index 1a. Client HTTP initie la connexion TCP au serveur HTTP (processus) à www.someSchool.edu sur le port 2. HTTP client envoie un message requête HTTP (contenant l'URL) et indique que le client veut someDepartment objet / home.index 1b. Serveur HTTP de www.someSchool.edu qui attend une connexion TCP sur le port 80. «Accepte» la connexion, et informe le client 3. Le serveur HTTP reçoit le message de demande, constitue un message de réponse contenant l'objet demandé, et envoie le message Temps (contient des references text vers 10 images jpeg)

39 39 Nonpersistent HTTP (2) 5. HTTP client reçoit un message de réponse contenant le fichier html, html affiche. L'analyse du fichier html, trouve les 10 objets référencés jpeg 6. étapes 1-5 répetées pour chaque objet 4. Serveur HTTP ferme la connexion TCP. Temps

40 40 Non-Persistent HTTP: Response time Temps de transmission Établir connexion TCP RTT Demander le fichier RTT Fichier reçu Temps

41 41 Persistent HTTP Nonpersistent HTTP : nécessite 2 RTT pour 1 objet Un overhead pour chaque connexion TCP Les navigateurs ouvrent souvent des connexions TCP parallèles connexions pour récupérer les objets référencés Persistent HTTP Le serveur laisse la connexion ouverte après l'envoi de la réponse Les messages ultérieures HTTP entre le même client / serveur Le client envoie des demandes dès qu'il rencontre un objet référencé. Un nombre réduit de RTT pour tous les objets référencés

42 42 HTTP request message Deux types de messages HTTP: request, response HTTP request message: – ASCII (human-readable format) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) request line (GET, POST, HEAD commands) header lines Carriage return, line feed indicates end of message

43 43 HTTP request message: format général

44 44 HTTP response message HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data... status line (protocol status code status phrase) header lines data, e.g., requested HTML file

45 45 HTTP response status codes 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version Not Supported

46 46 Tester HTTP (coté client) telnet univ.nchaib.edu 80 GET /~univ/ HTTP/1.1 Host: cis.poly.edu

47 47 Web caches But: Satisfaire les requetes clients sans utiliser le serveur client Proxy server client HTTP request HTTP response HTTP request origin server origin server HTTP response

48 48 Caching example Serveur public Internet 10 Mbps LAN 1.5 Mbps Lien Cache local

49 49 Conditional GET cache serveur HTTP request msg If-modified-since: HTTP response HTTP/1.0 304 Not Modified object non modifié HTTP request msg If-modified-since: HTTP response HTTP/1.0 200 OK objet Modifié

50 Système LAMP

51 système LAMP : linux apache, Mysql, PHP En ligne de commande : sudo apt-get install apache2 php5 mysql-server libapache2-mod- php5 php5-mysql Description des paquets : Le paquet apache2 installe le serveur Apache 2. Le paquet php5 installe le langage PHP 5 Le paquet libapache2-mod-php5 (module d'intégration dans Apache) est installé automatiquement. Le paquet mysql-server installe le serveur MySQL. Le paquet php5-mysql installe le module d'interface avec PHP.

52 Système LAMP Une fois les paquets installés, ouvrez un des liens suivants dans votre navigateur : http://127.0.0.1/ http://localhost Si le message « It works! » s'affiche, votre serveur Lamp est correctement installé.

53 Système LAMP Deuxième approche: sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL vous est demandé: Entrez-en un. sudo /etc/init.d/apache2 restart Pour verifier les liste des processus: pstree -p ouvrez http://localhost dans votre navigateurhttp://localhost

54 Système LAMP Si vous verrez dans le navigateur le message Not Found The requested URL / was not found on this server. vous n’avez pas encore défini de page d’accueil par défaut (index.html) dans /var/www.

55 Système LAMP Simple page HTML ( par exmple index.html): Mon serveur Apache fonctionne Exemple d’un page html.

56 Système LAMP La racine de votre site web est située dans /var/www Tester php Créez le fichier /var/www/test.php contenant: et ouvrez http://localhost/test.php dans votre navigateur.

57 Système DNS

58 Noms et adresses Il est difficile aux êtres humains de mémoriser les @IP L’idée – Remplacer les @IP-> Hostnames – Facile aux êtres humains de mémoriser les hostnames

59 Noms et adresses(2) # # Internet host table # 127.0.0.1 localhost 138.48.32.99 babbage 138.48.32.100 leibniz 138.48.32.1 routeur 138.48.32.92 corneille 138.48.32.107 backus 138.48.20.152 arzach 138.48.32.137 almin01 138.48.32.170 duke hosts.txt file

60 Hosts.txt est inadapté à grande échelle Fichier volumineux Nécessite d'être copié fréquemment sur tous les hôtes Uniformité toujours dépassé Unicité de nom Un seul point d’administration 60

61 Le Domain Name System Le DNS est une base de données distribuée qui fait correspondre le nom à une adresse IP ( et à d’autres informations) – Distribuée: Partage l’administration Partage la charge – robustesse et performance à travers : La réplication Le système cache – Une pièce critique de l’infrastructure Internet 61

62 Objectif Le but de la résolution des noms sur un réseau est d’assurer la conversion entre les noms d’hôtes et les adresses ip. Mais aussi, il faut un service associant un serveur de messagerie au nom d’un utilisateur. – pers@mail.lagh-univ.dz Il faut qu’il soit stable, fiable et performant. 62 machine.domaine.dz 192.127.10.2 résolution inverse

63 Le principe du DNS www. math-info.lagh-univ.dz identifie la machine www sur le réseau math-info.lagh- univ.dz www.lagh-univ.dz Le système est mis en œuvre par une base de données distribuée au niveau mondial basé sur le modèle client / serveur le logiciel client interroge un serveur de noms 63

64 L’espace Nom de domaine Chaque unité de donnée dans la base DNS est indexée par un nom Les noms constituent un chemin dans un arbre appelé l’espace Nom de domaine Chaque nœud est identifié par un nom La racine (root) est identifiée par «.» Il y a 127 niveaux au maximum 64 127 niveaux Au max

65 Le domaine Un domaine est un sous-arbre 65 Domaine complet Domaine dz dz Lagh-univ. ens Domaine math-info math-info Domaine Lagh-univ

66 Domaines racine Le système DNS impose peu de règles de nommage : – noms < 63 caractères – majuscules et minuscules non significatives – pas de signification imposée pour les noms Le premier niveau de l’espace DNS fait exception – 7 domaines racines prédéfinis : com : organisations commerciales ; ibm.com edu : organisations concernant l’éducation ; mit.edu gov : organisations gouvernementales ; nsf.gov mil : organisations militaires ; army.mil net : organisations réseau Internet ; worldnet.net org : organisations non commerciales ; eff.org int : organisations internationales ; nato.int – arpa : domaine réservé à la résolution de nom inversée – organisations nationales : dz. fr, uk, de, it, us, au, ca, se... 66

67 Lecture des noms de domaine A l’inverse de l’adressage IP la partie la plus significative se situe à gauche de la syntaxe : 67 vers le plus significatif diamant.ens.math-info.lagh-univ.dz domaine français (. d z) domaine de l’organisation lagh-univ sous-domaine math-info machine diamant du domaine ens.math- lagh-univ.dz sous-domaine ens 192.93.28.7 vers le plus significatif

68 Délégation Le système DNS est entièrement distribué au niveau planétaire Le mécanisme sous-jacent est la délégation de domaine : à tout domaine est associé une responsabilité administrative Une organisation responsable d’un domaine peut – découper le domaine en sous-domaines – déléguer les sous-domaines à d’autres organisations : qui deviennent à leur tour responsables du (des) sous- domaine(s) qui leurs sont délégué(s) peuvent, à leur tour, déléguer des sous-domaines des sous- domaines qu’elles gèrent 68

69 Délégation Le domaine parent contient alors seulement un pointeur vers le sous-domaine délégué – lagh-univ.dz (en théorie) pourrait être géré par l’organisation responsable du domaine.dz qui gèrerait alors les données de lagh-univ.dz – lagh-univ.dz est délégué à l’organisation Université de Laghouat qui gère donc les données propres à son domaine – math-info. lagh-univ.dz est délégué à l’organisation Département de Mathématiques et Informatique qui gère donc les données propres à son domaine 69

70 DNS –Architecture Distribuée Le DNS est une application Client/Serveur Naturellement - il fonctionne à travers un Réseau Les requêtes et les réponses sont normalement envoyées dans des paquets UDP, port 53 De temps en temps utilise le TCP, port 53 70

71 Les serveurs de noms Les logiciels qui gèrent les données de l’espace nom de domaine sont appelés des serveurs de noms (name servers) Les serveurs de noms enregistrent les données propres à une partie de l’espace nom de domaine dans une zone. Le serveur de noms a une « autorité administrative » sur cette zone. Un serveur de noms peut avoir autorité sur plusieurs zones. Une zone contient les informations d’un domaine sauf celles qui sont déléguées. 71

72 Résolution de noms Les «resolvers» sont les processus clients qui contactent les serveurs de noms ils contactent un serveur (dont l’(les) adresse(s) est (sont) configurée(s) sur sa machine), interprète les réponses, retourne l’information au logiciel appelant et gère un cache (selon la mise en œuvre) Le serveur de noms interroge également d’autres serveurs de noms, lorsqu’il n’a pas autorité sur la zone requise (fonctionnement itératif ou récursif) récursif : la résolution se propage entièrement de serveur en serveur itératif : un serveur renvoie l'adresse du prochain serveur à contacter Si le serveur de noms est en dehors du domaine requis, il peut être amené à contacter un serveur racine 72

73 Serveurs racine Les serveurs racine connaissent les serveurs de nom ayant autorité sur tous les domaines racine Les serveurs racine connaissent au moins les serveurs de noms pouvant résoudre le premier niveau (.com,.edu,.fr,...) il est indispensable que les serveurs racine soient opérationnels sinon plus de communication sur l’Internet – multiplicité des serveurs racines – actuellement jusqu’à 13 machines éparpillées sur la planète – chaque serveur racine reçoit environ 100000 requêtes/heure 73

74 Serveurs racine 74

75 Types d’enregistrements 75 TypeSignificationContenu AAdresse de machineAdresse IP CNAMENom canoniqueAlias pour un nom d’hôte MINFOInformation boîte à lettreInformation relatives aux boîtes aux lettres MXServeur de messagerieNom DNS du serveur et n° de préférence NSNom du serveur de nomsNom DNS du serveur de nom responsable du domaine PTRPointeur sur un nom DNSAdresse IP et nom DNS correspondant SOAStart of Authority: indique que le serveur est la meilleure source de noms Nom DNS du serveur

76 DNS : Format de message IdentificationFlags 32 bits Number of additional Number of authority Number of answers 12 bytes Questions (variable number of resource records) Number of questions Answers (variable number of resource records) Authority (variable number of resource records) Additional information (variable number of resource records)

77 DHCP: Dynamic Host Configuration Protocol 77

78 Introduction L’initialisation d’une station est une phase importante et complexe : – les stations sans disque, les stations mobiles, la gestion d’un grand parc de stations, la disponibilité réduite de l’espace d’adressage nécessite un processus automatique de configuration. Propositions : – BOOTP (“Bootstrap protocol”) : rfc 951, 1084, 1123, 1542. – DHCP (“Dynamic Host Configuration protocol”) : rfc 1541, 1533 améliore et remplace BOOTP 78

79 Introduction DHCP “Dynamic Host Configuration protocol” règle les problèmes de configuration non résolus par RARP ou BOOTP : – RARP : protocole de bas niveau : le portage d’un serveur RARP est spécifique au système et au LAN manque de souplesse : l’identification de la station se fait uniquement à l’aide de l’adresse physique incomplet : il faut d’autres échanges pour configurer complètement une station – BOOTP : statique : affectation permanente d’une adresse à une station, la réaffectation d’adresses inutilisées est impossible jeu limité de paramètres de configuration 79

80 Présentation Dynamic Host Configuration Protocol RFC 1531, 2132, … Objectifs – Evolution du protocole RARP – Informations plus complètes – Non limité aux réseaux locaux – Configuration complète de la machine – Totalement automatique 80

81 Principe du DHCP Utilise UDP – Passe les routeurs – Ports 67 et 68 (Les requêtes sont transmises du client au port 67 du serveur. Les réponses sont transmises du serveur au port 68 du client). Plusieurs serveurs – Redondance – Chaque serveur « offre » une configuration – Le client choisit celle qui lui convient 81

82 Les services DHCP DHCP comporte deux éléments: 1.Un mécanisme d’allocation pour les adresses IP et autres paramètres TCP/IP Manuelle: L’administrateur réseau attribue lui-même une adresse IP pour le client DHCP en fonction de son adresse MAC. Automatique: L’adresse IP du client lui sera attribuée lorsqu’il contactera pour la première fois le serveur DHCP. Les adresses attribuées avec cette méthode sont définitives et ne pourront pas être utilisées par un autre client DHCP. Dynamique: permet d’attribuer une adresse temporaire au client DHCP. Cette méthode est utile lorsque le nombre d’adresses disponibles n’est pas suffisant. 2.Le protocole de négociation et de transmission entre le client et le serveur DHCP 82

83 Les messages DHCP Le protocole DHCP utilise 7 types de messages. Le type du message DHCP est codé dans le champ valeur de l’option “DHCP option” (code 53). nom de type du message valeurutilisation DHCPdiscover1diffusé par le client vers les serveurs locaux disponibles DHCPoffer2réponse du serveur au client DHCPrequest3diffusé par client, sélectionnant le serveur et refusant les autres DHCPdecline4refus du serveur DHCPack5accord du serveur DHCPnack6le client considère que les infos sont invalides DHCPrelease7le client relâche la location 83

84 Le client connaisse son adresse IP 84

85 Le client ne connaisse pas son adresse IP. 85

86 Fonctionnement Client : Etape 1 : DHCP Discover – détection en diffusion d’un serveur DHCP – Via service UDP, port 67 Etape 2 : DHCP Offer – message de proposition DHCP – Via service UDP Etape 3 : DHCP Request – choix du client et envoi requête DHCP en écho Etape 4 : DHCP ACK – acquittement DHCP 86

87 Fonctionnement Initialement, le client : – Pas d’@ IP – Pas de serveur connu – Possède une @ MAC  Broadcast obligatoire – Broadcast Ethernet ( FF-FF-FF-FF-FF-FF ) – Broadcast IP ( 255.255.255.255 ) 87

88 Découverte du serveur: DHCPDISCOVER Broadcast datagramme UDP – Port 68  Port 67 – Message: « DHCPDISCOVER » Routeurs spéciaux – DHCP/BOOTP relay – Ne transfère que les messages DHCP Chaque serveur reçoit la requête Chaque serveur peut faire une offre 88

89 Réponse du serveur: DHCPOFFER Le client est-il autorisé ? – @ MAC connue ? – Politique gérée par l’administrateur Choix d’une @ IP Validation de l’ @ – Ping (ICMP echo) – Pas de réponse  OK Envoi de l’offre : « DHCPOFFER » 89

90 Choix d’une adresse IP 1.Le client a t’il déjà une IP ?  Réattribution de la même 2.Le client a t’il déjà eu une IP ? Encore disponible ?  Réattribution de la même 3.Le client demande t’il une IP particulière ? @ disponible ?  Attribution de l’@ demandée 4.Prendre une @ IP libre quelconque  Stock d’ @ utilisables 90

91 Réception des offres: DHCPREQUEST Le client reçoit plusieurs offres Choix d’une offre selon options Envoi d’un message « DHCPREQUEST » – Broadcast avec ID du serveur choisi – Tous les serveurs reçoivent choix Non – choisi  Annule offre Choisi  Valide offre 91

92 Validation offre L’IP a t’elle été attribuée entre temps ? – Oui  envoi message « DHCKNACK » – Non  envoi message « DHCPACK » Envoi par broadcast IP – Le client reçoit l’offre finale – Les serveurs retirent l’@ de leurs stocks Le client teste l’@ allouée Si erreur – envoi message « DHCPDECLINE » – Attend 10 secondes – Recommence  découverte des serveurs 92

93 Notion de bail Une adresse obtenue par DHCP est valide – Eternellement – Pour une période donnée (bail, lease) Durée pendant laquelle l’IP ne sera pas offerte En général, 48H Peut être prolongé Une adresse peut être rendue – Message « DHCPRELEASE » – Unicast au serveur bailleur 93

94 Le format général des messages DHCP Une partie fixe et une partie variable contenant les options, – taille minimale du message : 576 octets. – note : tous les champs sont de longueur fixe sauf le dernier ! – Pour les 3 avant-derniers champs une partie utile peut être distinguée. Format de message compatible avec BOOTP, sauf pour le dernier champ. 94

95 0168 31 24 OPHTYPEHLENHOPS TRANSACTION ID SECONDSFLAGS CLIENT IP ADDRESS YOUR IP ADDRESS SERVER IP ADDRESS ROUTER IP ADDRESS CLIENT HARDWARE ADDRESS ( 16 OCTETS )...... SERVER HOST NAME ( 64 OCTETS )...... BOOT FILE NAME ( 128 OCTETS )...... OPTIONS ( VARIABLE )...... 95

96 Les champs obligatoires : le champ “Operation” (1 octet) : le type du message – 1 = demande – 2 = réponse le champ “Hardware_type” (1 octet) : type du support employé – code utilisé par d’autres protocoles d’Internet (cf RFC 1700) – exemple : Ethernet = 1 le champ “Hardware address length” (1 octet) : longueur de l’adresse “physique” en octets – par exemple : Ethernet = 6 le champ “Hop count” (1 octet) : nombre d’agents DHCP (intermédiaires) ayant relayés le message entre le client et le serveur – initialement à 0 et incrémenté par chaque relais le champ “Identification” (4 octets) : associe la demande et sa(es) réponse(s) – permet de distinguer deux transactions différentes issues de la même machine puisque les mêmes numéros de port sont toujours utilisés le champ “Timestamp” (2 octets) : indique l’heure à laquelle le client à commencé à vouloir se configurer 96

97 Les champs obligatoires : le champ “Flags” (2 octets) : – le bit de poids fort “Broadcast response” : la réponse est diffusée (l’adresse du client n’est pas utilisée ou connue) le champ “Client_IP_address” (4 octets) : – l’adresse du client si le client la connaît le champs “Your_IP_address” (4 octets) : – l’adresse du client, si le serveur la connaît et si le champ client_IP_address était à zéro le champ “Gateway IP address” (4 octets) : – l’adresse de l’agent intermédiaire à utiliser lors de la configuration le champ “Hardware address” (6 octets) : – la longueur utile de ce champ est déterminée par le champ “Hardware address length”. le champ “IP_address server” (4 octets) et le champ “Name server” (64 octets) : – permettent au client de sélectionner un serveur parmi plusieurs 97

98 Les champs obligatoires : le champ “Bootstrap file name” (128 octets) – on distingue 2 phases lors de la configuration : échange des informations échange du fichier de démarrage (amorce), cette échange peut faire appel à un protocole de transfert de fichiers (par ex. TFTP). généralement ce fichier d’amorçage contient le code exécutable du noyau. lorsque ce champ est nul, le fichier à charger est déterminé localement. Note : Les clients utilisent les champs pour indiquer toutes les informations dont ils disposent déjà ou lorsqu’ils veulent utiliser un serveur particulier. Si les champs sont non renseignés (nuls) les serveurs qui reçoivent une telle demande peuvent y répondre. 98

99 Les options La longueur minimale du champ “Options” est de 312 octets. – une autre longueur peut être négociée (option de code 57). – on peut négocier la ré-utilisation de l’emplacement des 2 avant- derniers champs pour mémoriser les options (option de code 52). Le champ “Options” est formée d’une liste d’options, sauf le premier mot. Le premier mot doit contenir la valeur 99.130.83.99. – par compatibilité avec BOOTP – il servait de “magic cookie” : “facilite” le décodage Chaque option : type de l’option sur 1 octet longueur du champ valeur de l’option sur 1 octet la valeur de l’option 99

100 Les options Les options servent à : – la configuration initiale de la station, – la configuration des protocoles (de haut et bas niveaux) : IP, ARP, Ethernet, TCP, NIS, NTP, NetBios, X window system, et ceux spécifiques à chaque constructeur, plus d’une soixantaine d’options ! 100

101 Quelques exemples d’options de DHCP type de l’optioncode de l’option longueur du champ valeur sémantique de l’option bourrage0sanspour l’alignement des options en frontière de mot masque14le “subnet mask” du client (obligatoire) heure de décalage24le décalage de l’horloge du client par rapport à l’heure universelle (UTC) routeurs34.nn adresses IP des routeurs [* : dans l’ordre de préférence] serveurs de noms64.nn adresses IP des serveurs de domaine de noms (DNS) [*] serveurs de traces74.nn adresses IP des serveurs de traces (logs) [*] serveurs d’imprimante94.nn adresses IP des serveurs d’imprimante (lpr) [*] serveurs de ressources114.nn adresses IP des serveurs de localisation des ressources (RLP)[*] 101

102 Quelques exemples d’options de DHCP type de l’option nom de la station12nle nom de la station longueur du fichier d’amorçage132en blocs de 512 octets extension du chemin18nle nom du fichier d’amorçage adresse demandée504adresse IP demandée par le client (DHCP discover message) duré de location514en s., durée demandée ou proposée (DHCP discover, request, offer) overload option521utilisation des 2 avant-derniers champs pour les options DHCP option531code le type du message DHCP (obligatoire) longueur maximum des messages572longueur maximum des messages DHCP (>576) fin de liste d’options255sansfin de la liste d’options (obligatoire) 102

103 Les applications P2P

104 Le P2P est un modèle de réseau informatique proche du modèle client- serveur mais où chaque client est aussi un serveur.

105 Les applications P2P Le p2P non seulement pour le partage de fichiers. Autres exemple d’applications: Adobe Systems intègre maintenant le P2P pour échanger le flux vidéo. Le service de stockage dans le nuage Amazon S3 Le calcule distribué (BOINC) Apt-P2P Réseaux sociaux décentralisés (Movim, Disapora) Moteurs de recherche décentralisés (seeks, yacy) Multiplayer games Ad hoc networks

106 Les réseaux P2P Réseau BitTorrent(BitTorrent, Vuze,Ktorrent) Réseau eDonkey2000 (A/Emule, mldonkey) Réseau Gnutella(Limewire,Gtk-Gnutella).

107 Architecture générale de P2P

108 Les caractéristiques des P2P Les clients sont des serveurs et routeurs Contribution: contenu, mémoire, traitement. Les nœuds sont autonomes Les réseau est dynamique Collaboration directe des nœuds Des capacités de ressources dynamique de chaque nœud.

109 Distribution de fichiers usus uNuN dNdN server Réseau fichier, taille F u s : server upload capacity u i : peer i upload capacity d i : peer i download capacity u2u2 d2d2 u1u1 d1d1 didi uiui

110 Distribution de fichiers client/Serveur usus Réseau didi uiui F Le temps de distribution de fichiers D c-s > max{NF/u s,,F/d min } Augmentation linaire

111 Distribution de fichiers P2P usus Réseau didi uiui F Le temps de distribution de fichiers ? D P2P > max{F/u s,,F/d min,,NF/( u s +  u i )}

112 Distribution de fichiers P2P client upload rate = u, F/u = 1 heur, u s = 10u, d min ≥ u s Application Layer

113 Distributed hash tables (DHT) k6,v6 k1,v1 k5,v5 k2,v2 k4,v4 k3,v3 containers Operations: insert(k,v) lookup(k,v) Table of containers

114 Naming/identification Espace de nommage clé noeuds Un noeud est responsable des clés proches (identificateurs) Les fonctions Hachage pour attribuer les IDs

115 DHT circulaire Chaque nœud connait son successeur et prédécesseur 1 3 4 5 8 10 12 15

116 DHT circulaire 0001 0011 0100 0101 1000 1010 1100 1111 Who’s responsible for key 1110 ? C’est moi 1110

117 DHT circulaire avec raccourcis 1 3 4 5 8 10 12 15 Qui est le responsable sur la clé 1110?

118 Maintenance de la topologie 1 3 4 5 8 10 12 15 Solution?

119 Applications et couches de chiffrement Nous avions précédemment évoqué les applications suivantes correspondant à différentes couches réseau: Couche (2)Chiffrement PPP, WEP Couche (3)IPSEC Couche (4)TLS (SSL) Couche applicationSSH, PGP/GPG

120 SSH Des clients SSH et SCP pour Windows Authentification du serveur auprès du client (clés hôte / host keys) Implication du changement de la clé de l'hôte Authentification du client auprès du serveur par mot de passe Authentification du client auprès du serveurs par chiffrement à clé publique (RSA/DSA)

121 Préoccupations principales SSH vise directement les trois aspects de la sécurité: Confidentialité Authentification Authorisation

122 Des clients SSH pour windows Il y a plusieurs clients SSH, libres et Opensource, pour Windows: Voir http://www.openssh.org/windows.html pour une liste. Quelques uns qui implémentent SSH version: Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/ OpenSSH pour Windows (via Cygwin): http://www.cygwin.com/ http://sshwindows.sourceforge.net/ Commerciaux: Client SSH de ssh.com (utilisation personnelle): http://www.ssh.com/products/ssh/download.cfm SecureCRT: http://www.vandyke.com/products/securecrt/http://www.vandyke.com/products/securecrt/ WRQ sur http://www.wrq.com/products/reflection/ssh/

123 Des clients SSH pour windows (suite) Voir aussi Filezilla pour le transfert SCP Un très bon livre à consulter:

124 Connexion SSH Un certain nombre de choses se passent quand vous utilisez SSH pour vous connecter depuis votre machine (client) vers une autre machine (serveur): La clé publique du serveur est renvoyée au client, et si elle ne s'y trouve pas déjà, ajoutée à.ssh/known_hosts. Sinon, elle y est consultée et vérifiée. Une fois le serveur vérifié, soit: Le mot de passe de l'utilisateur est demandé Si votre clé publique se trouve sur le serveur dans.ssh/authorized_keys, un échange de clé RSA/DSA prend place et vous devez taper votre phrase de code pour déchiffrer votre clé privée

125 Fichiers SSH Vous avez un choix pour les types de clé d'authentification – RSA ou DSA Les fichiers importants: /etc/ssh/ssh_config /etc/ssh/sshd_config ~/.ssh/id_dsa et id_dsa.pub ~/.ssh/known_hosts ~/.ssh/authorized_keys Et remarquer les clés de serveur /etc/ssh_host_* Lisez en entier les pages de manuel de ssh et sshd: man ssh, man sshd

126 Configuration SSH La clé privée peut-être protégée par une phrase code: Soit il faut la taper à chaque connexion Ou on peut utiliser “ssh-agent” qui garde une copie de la clé en mémoire pour éviter de devoir la taper Désactivez complètement les mots de passe: /etc/ssh/ssh_config # PasswordAuthentication yes PasswordAuthentication no

127 Attaque Man in the middle La première fois que vous vous connectez à une machine, sa clé est stockée dans ~/.ssh/known_hosts La prochaine fois que vous vous connectez, si la clé à changé, c'est peut-être que quelqu'un est en train d'intercepter la connexion! Ou peut-être que quelqu'un a réinstallé/mis à jour le serveur, et remplacé là clé. A vous de trouver la cause... Vous serez averti si la clé change.

128 Enregistrement des hosts connexion avec SSH: ssh etudiant@lagh-univ.dz The authenticity of host 'etudiant@lagh-univ.dz (197.1.2.1)' can't be established. DSA key fingerprint is 90:be:bf:e4:3a:ce:e3:9a:8f:d2:26:a4:5c:c4:eb:4a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ' etudiant@lagh-univ.dz, 197.1.2.1 ' (DSA) to the list of known hosts. etudiant@lagh-univ.dz's password: A ce moment, le client ajoute dans ~/.ssh/known_hosts la clé publique de pc1.cctld.sn (qui se trouve dans /etc/ssh/ssh_host_dsa_key.pub sur le serveur) Connexion suivante: [root@mamachine]$ ssh etudiant@lagh-univ.dz etudiant@lagh-univ.dz's password: La machine est mantenant “connue”.

129 Etablissement de connexion SSH Concept de base pour comprendre comment une connexion SSH est faite en utilisant une clé RSA/DSA Client X contacte le serveur Y sur le port 22. Y génère un nombre aléatoire et le chiffre en utilisant la clé publique de X. La clé publique de X déjà se trouver sur Y. Le nombre chiffré est renvoyé à X. X déchiffre le nombre aléatoire en utilisant sa clé privée et le renvoie à Y. Si le nombre déchiffré correspond au nombre chiffré d'origine, alors une connexion chiffrée est établie. Le nombre chiffré envoyé de Y to X est la “phrase magique” (“Magic Phrase”) Nous essayerons d'illustrer ceci...

130 Crypto quantique pour la sécurité des réseaux La sécurité est garantie non par des théorèmes mathématiques et les algorithmes, mais avec les règles fondamentales de la physique comme le principe d'incertitude d'Heisenberg qui affirme que certaines quantités ne peuvent pas être mesurées simultanément.

131 L’application de la mécanique quantique va permettre de résoudre ce problème transport de clé "quantique", l'information est transportée par les photons

132 BUT La difficulté essentielle à résoudre, pour utiliser concrètement ce moyen de cryptage But: réalisé un cryptage parfaitement sur transport des clés, qui doivent être aussi longues que le message qu'on envoie

133 Les photo composants élémentaires de la lumière Chaque photon peut être polarisé, c'est-à-dire que l'on impose une direction à son champ électrique

134 Principe Dans le transport de clé "quantique", l'information est transportée par les photons, ces composants élémentaires de la lumière. Chaque photon peut être polarisé, c'est-à- dire que l'on impose une direction à l’aide d’un champ électrique

135 4 valeurs : 0°, 45°, 90°, 135°

136 les photons polarisés de 0° à 90°, on parle de polarisation rectiligne Les photon polarisés de 45° à 135°, de polarisation diagonale :

137 Afin de pouvoir détecter la polarisation des photos. Pour cela, on utilise un filtre polarisant suivi d'un détecteur de photons 137

138 138

139 Alice envoie à Bob une clé secrète constituée de 0 et de 1; ils disposent de 2 canaux d'échange : un canal quantique, où ils peuvent s'échanger des photons polarisés, et un canal radio; non protégé, où ils peuvent discuter 139

140 140

141 Le cas d’une intrusion 141

142 Détection de l'espion et preuves de sécurité L'une des propriétés fondamentales de la cryptographie quantique est la capacité des deux interlocuteurs à détecter la présence de l'espion, mais aussi à évaluer précisément la quantité d'information que celui-ci a interceptée.quantité d'information Ceci résulte de deux aspects fondamentaux de la mécanique quantique : d'après le théorème de non-clonage:théorème de non-clonage il est impossible de dupliquer un objet quantique inconnu, La réduction du paquet d'onde entraîne que réaliser une mesure sur un objet quantique perturbe généralement l'objet en question.réduction du paquet d'onde 142

143 Si une troisième personne cherche à obtenir de l'information sur l'état de l'objet qui transite par le canal quantique, elle introduit des anomalies (bruit ou erreurs), qui peuvent être détectées par Alice et Bob. 143

144 144

145 END


Télécharger ppt "La couche Application. La couche application Plan Le modèle client-serveur – – HTTP – Résolution de noms – DHCP – Les applications P2P."

Présentations similaires


Annonces Google