Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parDiane Brunet Modifié depuis plus de 9 années
1
Réseaux informatiques Les couches hautes du modèle OSI Internet
Cours IUP2 SY Novembre & décembre 2001
2
Plan du cours Introduction Modèle OSI Généralités Couche transport
Couches session, présentation et application Internet Architecture IP ARP Protocoles de transport UDP,TCP
3
Plan du cours (2) Services d’annuaire machines (DNS)
utilisateurs (NIS) Services de communication (SMTP) news (NNTP)
4
Plan du cours (3) Web Historique
Langage de description des documents sur le Web : HTML URL HTTP Navigateur Serveur Web Traitements des données par le serveur : les programmes CGI Par le navigateur : les applets Java Proxy, cache Moteur de recherche
5
Plan du cours (4) Services de gestion de fichiers
FTP rcp NFS Services d’exécution à distance TELNET rlogin, rsh Sécurité dans les réseaux cryptographie, authentification Administration de réseau (SNMP) Services d’affichage à distance serveur X Services d’impression
6
Quelques ouvrages de référence
Réseaux; architectures, protocoles, applications. Andrew Tanenbaum. InterEditions. ISBN Computer Networks, third edition. Andrew Tanenbaum. Prentice-Hall International Editions. ISBN Internetworking with TCP/IP, volume 1; principles, protocols and architecture, second edition. Douglas E. Comer. Prentice-Hall International Editions.ISBN TCP/IP illustré, les protocoles, volume 1. W. Richard Stevens, traduit par E. Tyberghien. Vuibert, ISBN
7
Réseau de l’IFSIC Station de travail Python E003c01 (Solaris) (news)
Thot (Homedir) PC I214m01 (Linux) Hera (exécution) Réseau d’interconnexion Oracle (BD) Lwe001 (imprimante) Sybille (DNS,NIS) Apollon (Web) Themis (impression) Helios (mail)
8
Réseau de l’IFSIC
9
1 - Introduction Modèle OSI (Open Systems Interconnection) Généralités
Modèle OSI développé par l’ISO (International Standards Organization) qui est un organisme de normalisation Couche transport Couches session, présentation et application
10
Système d’exploitation Exemple : HTTP sur TCP/IP sur Ethernet
Exemple basique Navigateur Serveur Web Applications HTTP Applications Protocoles TCP/IP Protocoles Système d’exploitation Pilote Ethernet Pilote Interface réseau Ethernet Interface réseau Matériel Médium physique Machine A Machine B Exemple : HTTP sur TCP/IP sur Ethernet
11
Le modèle OSI Site A Site B Protocole d’application 7 Application
APDU Protocole de présentation 6 Présentation Présentation PPDU Protocole de session 5 Session Session SPDU Protocole de transport 4 Transport Transport TPDU 3 Réseau Réseau Réseau Réseau Paquet 2 Liaison Liaison Liaison Liaison Trame 1 Physique Physique Physique Physique Bit Sous-réseau Médium physique
12
Transmission des données dans le modèle OSI
Processus émetteur Processus récepteur Donnée Application Présentation Session Transport Réseau Liaison Physique Donnée AH Application Présentation Session Transport Réseau Liaison Physique PH Donnée SH Donnée TH Donnée NH Donnée DH DT Donnée Bits Canal de transmission de données
13
Les couches basses OSI La couche physique
Transmission de bits de manière brute sur un médium de communication Assure que si le site d’émission envoie un bit à 1 (0), le site de réception reçoit un bit à 1 (0) Interface mécanique et électrique La couche liaison de données Transmission d’une suite de bits (trame) sans erreur du site d’émission au site de réception Fabrication des trames, gestion d’acquittements, contrôle de flux, transmission full-duplex
14
Les couches basses OSI (2)
La couche réseau Transmission de paquets entre un site d’émission et un site de réception Routage, contrôle de congestion, interconnexion de réseaux hétérogènes, facturation Etude des couches basses dans le cours réseau en IUP3
15
La couche transport OSI
Accepte des données de la couche session, les découpe en plus petites unités et assure que les unités sont transmises au site de destination de façon efficace Rend la couche session indépendante des changement de technologie du matériel Multiplexage des connexions transport sur une connexion réseau ou utilisation de plusieurs connexions réseaux pour une connexion transport de façon transparente à la couche session
16
La couche transport OSI (2)
Différents services à fournir à la couche session c anal point à point sans erreur délivrant les messages dans l’ordre d ’émission datagramme sans garantie sur l’ordre de délivrance diffusion de messages Protocole de bout en bout entre site source et site de destination Gestion de connexions multiples dans chaque site Etablissement et relâchement des connexions réseaux Contrôle de flux
17
Exemple Site C Site A Site B
Plusieurs connexions transport simultanées entre différents processus sur divers sites.
18
Les couches hautes OSI : session
Permet à des utilisateurs sur différentes machines d’établir des sessions entre eux Session : transport de données + services avancés synchronisation Exemples de services de niveau session dialogue entre utilisateurs jeton transfert de fichiers entre deux machines Transfert d’un très gros fichier plus long que l’intervalle moyen entre deux défaillances Gestion du transfert d’un fichier de manière à éviter la reprise du transfert depuis le début en cas de défaillance
19
Les couches hautes OSI : présentation
S’intéresse à la syntaxe et à la sémantique de l’information transmise Exemples encodage de données dans une norme agréée les machines utilisent différents codes (ASCII, EBCDIC) pour représenter les chaînes de caractères définition de formats abstraits pour permettre à des machines hétérogènes de communiquer couche de présentation effectue les conversions entre les formats abstraits et les codes des machines compression de données chiffrement
20
Les couches hautes OSI : application
Nombreux protocoles d’usage courant Terminal de réseau virtuel exemple éditeur de texte conçu pour un terminal virtuel car doit être capable de fonctionner sur des terminaux réels aux caractéristiques différentes logiciel de traduction entre terminal virtuel et terminal réel Transfert de fichiers convention de désignation, représentation des données diffèrent selon les systèmes de fichiers gestion de l’hétérogénéité Services de courrier électronique, web, consultation d’annuaires ...
21
2 - Internet Internet Architecture IP ARP
22
Internet Interconnexion de réseaux (Internetworking)
Donner aux utilisateurs l’illusion d’un seul réseau et d’un service de communication universel Site Internet E A D B C
23
Architecture de l ’Internet
Site B C Passerelle (routeur) Réseau physique
24
Interconnexion de réseaux
G1 Réseau 1 Réseau 2 Passerelle (gateway) Interconnexion de réseaux physiques Réseau 1 Réseau 2 Réseau 3 G1 G2 Passerelle route les paquets en fonction du réseau de destination Transit des paquets du réseau 1 vers le réseau 3 à travers le réseau 2
25
Caractéristiques de l’Internet
Applications indépendantes des technologies de communication sous-jacentes et de la topologie des réseaux Logiciel d’accès à Internet sur chaque site, seul ce logiciel doit être changé pour prendre en compte les nouvelles technologies Changement de topologie ou de technologie de communication transparent aux applications Pas de réseau central Architecture complètement distribuée tous les réseaux physiques sont traités de manière identique quelque soit leur taille Identificateurs universels (nom ou adresse) pour les sites de l’Internet
26
Internet dans le modèle OSI
Physique Liaison Réseau Transport Session Présentation Application 1 2 3 4 5 6 7 FTP NFS TELNET DNS HTML NTP SMTP HTTP SNMP XDR RPC UDP TCP IP ARP
27
Exemple : FTP entre des sites sur un LAN
Client FTP Serveur FTP TCP IP Pilote Ethernet Liaison (2) Réseau (3) Transport (4) Application (7) Protocole FTP Protocole TCP Protocole IP Protocole Ethernet
28
Exemple : FTP entre des sites sur des réseaux distincts
Protocole FTP Client FTP Serveur FTP Réseau (3) Transport (4) Application (7) Liaison (2) Protocole TCP TCP TCP IP IP IP IP IP Pilote Ethernet Pilote Ethernet Pilote Token Ring Pilote Token Ring Ethernet Token Ring Routeur Protocole Ethernet Protocole Token Ring
29
Adresse IP Une adresse IP identifie une connexion à un réseau
Une passerelle possède une adresse IP par réseau auquel elle est connectée Un site peut être connecté sur plusieurs réseaux et possède une adresse IP par réseau Une adresse IP est un entier de 32 bits. Ethernet 100 Gigabit Ethernet Paraski22 Adresse IP 1 Adresse IP 2
30
Notation décimale pointée
Mémorisation d’une adresse IP sous forme de 4 entiers séparés par un point. Chaque entier correspond à l’un des octets de l’adresse IP. Exemple correspond à Transmission d’adresses IP sous forme binaire Big endian (octet le plus significatif en premier)
31
Format des adresses IP Adresse IP = (idRéseau, idSite)
Il y a cinq classes d’adresses IP : 3 classes primaires (A, B, C), classe D (multicast), classe E (réservée à un usage futur). 8 16 24 31 idRéseau (7) idSite (24) Classe A 1 idRéseau (14) idSite (16) Classe B idRéseau (21) idSite (8) Classe C
32
Considérations de taille
Classe A Une centaine de réseaux avec un très grand nombre de sites (plus du million) Adresses de à Classe B Quelques milliers de réseaux avec un nombre moyen de sites (quelques milliers) Adresses de à Le réseau de l’IFSIC est un réseau de classe B (148.60) Classe C Plus d’un million de réseaux avec un petit nombre de sites (254 maximum) Adresses de à
33
Allocation des adresses aux interfaces Internet
Assurer l’unicité de l’adresse IP d’une interface Autorité centrale pour attribuer les adresses IP aux réseaux de l’Internet Centre d’Information du Réseau Internet (Internet Network Information Center ou InterNIC) InterNIC n’attribue que des adresses de réseaux (champ idRéseau). L’attribution des adresses IP (champ idSite) aux interfaces réseaux dans les machines est du ressort de l’administrateur système.
34
Adresses spécifiques idRéseau
Diffusion à toutes les machines d’un réseau idRéseau adresse de destination uniquement Tous les bits à 1 idRéseau
35
Adresses spécifiques Diffusion limitée au réseau physique local
Utile dans la phase de démarrage d’un site avant que le site n’ait connaissance de son adresse IP Adresse de destination uniquement Une fois qu’un site connaît son adresse IP, il ne doit plus utiliser ce type d ’adresse. Tous les bits à 1
36
Interprétation des 0 dans les adresses IP
idRéseau = 0 désigne le réseau courant idSite = 0 désigne la machine courante De telles adresses ne sont pas des adresses de destination valides. Elles peuvent être utilisées par un site avant qu’il connaisse son adresse IP. Tous les bits à 0 Tous les bits à 0 idSite
37
Adresses spécifiques Adresse de boucle fermée (loopback)
adresse de classe A utilisée à des fins de test pour la communication inter-processus sur un site Cette adresse ne circule jamais sur le réseau 127 Bits quelconques
38
Réseau de l’IFSIC 148.60.4.122 Station de travail E003c02 (Solaris)
Thot (Homedir) Python (news) PC I214m11 (Linux) Hera (exécution) Réseau d’interconnexion Oracle (BD) Lwe000 (imprimante) Sybille (DNS,NIS) Apollon (Web) Themis (impression) Helios (mail)
39
Traduction d’une adresse IP en adresse physique
Deux approches : résolution directe ou dynamique Résolution directe adresse physique = f (adresse IP) exemple : réseau Token Ring adresse physique : entier compris entre 0 et 255 configuré par l’installateur si l’adresse IP est choisie telle que son dernier octet = adresse physique f = extraction du dernier octet de l’adresse IP Table de correspondance entre adresses IP et adresses physiques exemple : X25
40
ARP Résolution dynamique exemple: Ethernet
chaque carte d’interface Ethernet possède une adresse physique (entier de 48 bits) fixée une fois pour toute lors de sa fabrication de la carte. changement de la carte Ethernet d’une machine => changement d ’adresse physique Protocole ARP (Address Resolution Protocol) permet à un site de trouver l’adresse physique d’un autre site sur le même réseau physique à partir de son adresse IP
41
ARP (requête ARP, adresse IP (B)) X A B Y
(réponse ARP, (adresse IP (B), adresse physique (B)) X A B Y
42
ARP - optimisations Protocole ARP (Address Resolution Protocol)
diffusion cache des dernières traductions consulté avant de diffuser une requête ARP optimisations site émetteur inclut ses 2 adresses (adresse IP et adresse physique) dans sa requête pour permettre aux autres sites de mettre à jour leur cache un site met à jour son cache avant de traiter la requête ARP un site qui démarre diffuse ses deux adresses pour éviter que les autres sites émettent une requête ARP
43
3 - Protocoles de transport
Généralités Un protocole sans connexion : UDP Un protocole avec connexion : TCP
44
Services fournis à la couche session
Transport fiable, efficace et économique de données en s’appuyant sur les services de la couche réseau Deux types de service avec ou sans connexion Service avec connexion connexion, transfert, déconnexion adressage et contrôle de flux similaire à la couche réseau Service sans connexion similaire à celui de la couche réseau datagramme
45
Services fournis à la couche session
Que fait la couche transport par rapport à la couche réseau ? Augmentation de la qualité de service pour l ’utilisateur en supervisant la couche réseau gère les interruptions de connexion réseau elle est avertie de l’interruption de la connexion elle établit une nouvelle connexion elle détermine quelles sont les données arrivées elle reprend la transmission là où elle a été interrompue Les paquets perdus, les données altérées peuvent être détectés et corrigés par la couche de transport
46
Services fournis à la couche session
Primitives de la couche transport sont indépendantes des primitives du service réseau et peuvent varier d’un réseau à l’autre service d’un réseau local en mode non connecté différent d’un service en mode connecté sur un réseau à longue distance Permet l’utilisation de primitives standard dans les programmes portabilité sur un grand nombre de réseaux de communication Isole les couches supérieures des imperfections et des variations de technologie des niveaux inférieurs
47
Qualité de service Temps d’établissement de la connexion
Probabilité d’échec d’établissement Débit de la liaison Taux d’erreur résiduel Temps de déconnexion …
48
Protocoles de transport d’Internet
UDP User Datagram Protocol Protocole sans connexion TCP Transmission Control Protocol Protocole orienté connexion UDP et TCP s ’appuient sur le protocole réseau IP Historique : ARPANET
49
IP Service non fiable de datagrammes
perte, duplication, remise dans le désordre, délai de remise variable protocole sans connexion les paquets d’une séquence émise par un site peuvent emprunter des chemins différents pour parvenir à leur destination « best effort » non fiabilité seulement en cas de manque de ressources ou de défaillance dans le réseau taille maximale d’un datagramme 216 octets
50
UDP IP acheminement de datagrammes entre des machines sur Internet
pas de distinction entre les applications qui s’exécutent sur une même machine Besoins plusieurs processus, tâches, programmes, applications s’exécutent sur un système d ’exploitation supportant la multiprogrammation message destiné à un processus plutôt qu’à un site gestion dynamique des processus
51
UDP Besoin d’identifier les services rendus par les processus plutôt que les processus eux-même Un processus peut mettre en œuvre plusieurs services Notion de destination logique : port identificateur unique sur un site file de messages Envoi d’un message à un processus distant adresse IP de la machine de destination numéro d’un port du processus destinataire adresse IP de la machine source numéro de port du processus source
52
UDP Transmission non fiable de datagrammes
fondé sur IP pour la transmission des messages pas d’acquittement pas de contrôle de flux perte, duplication de messages pas de garantie sur l’ordre de remise des messages
53
Format des messages UDP
16 31 Port source Port destination Données Taille du message Code de contrôle d ’erreur Entête : 4 champs de 16 bits Champ port source : optionnel Taille = taille totale en octets y compris entête (8 au minimum) Code de contrôle d’erreur optionnel (IP ne contrôle pas l’intégrité des données de l’utilisateur donc usage conseillé)
54
UDP dans la hiérarchie de protocoles Internet
Application UDP IP (Internet) Interface réseau Donnée UDP Donnée IP Donnée UDP : différentiation de sources et destinations multiples sur un site IP : transfert de données entre deux sites Internet
55
Ports UDP réservés Ports identifiés par des nombres entiers
Un certain nombre de ports sont réservés pour des services standard 11 USERS (utilisateurs actifs) 13 DAYTIME 37 TIME 42 NAMESERVER 53 DOMAIN (domain name server DNS) Les autres ports sont disponibles pour une allocation dynamique aux applications
56
TCP TCP a pour but de fournir un transfert fiable de bout en bout de flux de données en utilisant un réseau de communication non fiable L ’entité de transport TCP accepte des messages de longueur variable, les fragmente en unités ne dépassant pas 64Ko et envoie chaque unité comme un datagramme isolé. Le réseau peut perdre des unités et les délivrer dans le désordre TCP gère la perte des unités et la remise en ordre des unités TCP est un protocole plusieurs implémentations différentes
57
Caractéristiques Orientation flux de données non structuré
transfert de gros volumes de données sous forme d’une suite d’octets entre un site source et un site de destination Connexion de type circuit virtuel connexion établie entre le site source et le site destinataire avant l’échange de données Transfert tamponné le site source produit les données à son rythme. Les données sont mises dans des tampons. Le protocole attend qu’il y ait suffisamment de données produites avant de les transférer sur le réseau à des fins d’efficacité. Connexion full-duplex transferts concurrents dans les deux sens entre deux sites
58
Fiabilité Comment assurer l’absence de perte et duplication et la remise dans l’ordre ? Système à acquittement positif et retransmission Le site destinataire envoie un acquittement au site source à la réception Le site source conserve de l’information pour chaque paquet émis et attend un acquittement avant d’envoyer le paquet suivant Retransmission d’un paquet émis par le site source à l’expiration d’un délai s’il n’a pas reçu d’acquittement Détection des copies multiples d’un paquet grâce à la gestion de numéros de séquence
59
Exemple Site émetteur Site destinataire Émission Paquet 1 paquet 1
Réception paquet 1 Envoi acquittement Réception acquittement ACK 1 Emission paquet 2 Paquet 2 Réception paquet 2 ACK 2 Envoi acquittement Réception acquittement
60
Exemple avec perte d’un paquet
Site émetteur Site destinataire Émission Déclencher délai Paquet 1 Perte du paquet 1 ACK aurait dû arriver Expiration délai Retransmission paquet 1 Déclencher délai Paquet 1 ACK 1 Réception paquet 1 Réception acquittement Arrêt du délai Envoi acquittement
61
Fenêtre à anticipation
Inconvénient du système à acquittement positif simple un seul message en transit entre deux sites même si le réseau permet des communications simultanées dans les eux directions réseau inutilisé pendant que les sites préparent les messages à transmettre faible de débit de communication Système à acquittement positif à fenêtre à anticipation permet une meilleure utilisation de la bande passante du réseau que le système simple transmission de plusieurs paquets avant d’attendre un acquittement
62
Fenêtre à anticipation
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 Fenêtre d’anticipation de 8 paquets Les paquets 1 à 8 sont émis sans attendre d ’acquittement Quand le paquet 1 est acquitté, déplacement de la fenêtre pour permettre l ’émission du paquet 9
63
Exemple Emetteur Destinataire Paquet 1 Paquet 2 ACK 1 Paquet 3 ACK 2
Seuls les paquets non acquittés sont retransmis. Possible de saturer le réseau si le système de fenêtre est bien configuré
64
Gestion d’une fenêtre à anticipation
Emetteur un délai par message non acquitté 3 catégories de messages messages émis et acquittés (à gauche de la fenêtre) messages en cours d’émission (fenêtre) messages non encore transmis (à droite de la fenêtre) Le premier paquet de la fenêtre est le premier paquet de la séquence qui n’a pas encore été acquitté Récepteur gestion analogue accepte et acquitte les messages au fur et à mesure de leur arrivée
65
TCP Unité de transfert = segment message de contrôle données
TCP gère perte, duplication et remise dans l’ordre des segments chaque octet porte un numéro de séquence (32 bits). l’entête comporte deux champs de 32 bits pour le numéro de séquence de l’octet et le numéro de l’octet acquitté. PiggyBacking : l’entête d’un segment de données dans une direction contient l’acquittement concernant le transfert de données dans l’autre direction Fenêtre à anticipation de taille ajustable pour le contrôle de flux (champ de 16 bits pour indiquer le nombre d’octets pouvant être envoyés après l’octet acquitté)
66
Options (>= 0 mots de 32 bits)
Entête d ’un TPDU de TCP 31 Port source Port destination Numéro de séquence Acquittement Longueur entête A C K U R G E O M R S T S Y N F I N Fenêtre Contrôle d ’erreur Pointeur Options (>= 0 mots de 32 bits) Données
67
Description de l’entête TCP
Longueur = longueur de l’entête dont la taille est variable à cause du champ option (taille minimale de l ’entête = 20 octets) Six indicateurs URG : pointeur de priorité s’il est activé le champ pointeur donne le déplacement pour aller de la référence actuelle à la donnée à traiter en priorité (évite d’utiliser une routine d’interruption) SYN : établissement d’une connexion SYN = 1 et ACK =0 : demande connexion SYN=1 et ACK =1 : accusé de réception FIN : libération d ’une connexion RST : réinitialisation d’une connexion à la suite de problèmes EOM : fin d’un message
68
Protocole d’établissement d’une connexion
Site 1 Site 2 Envoi SYN x SYN x Réception SYN Envoi SYN y, ACK x+1 SYN y, ACK x+1 Réception SYN ACK y+1 Envoi ACK y+1 Réception ACK
69
Fermeture d’une connexion
Site 1 Site 2 Envoi FIN FIN Réception FIN Envoi ACK (informe l’application) ACK FIN, ACK Envoi FIN, ACK Réception ACK ACK Réception ACK
70
(2 fois la durée de vie d’un segment)
begin CLOSED Client serveur Passive open close Active open/SYN SYN/SYN + ACK LISTEN Send/SYN reset Close/timeout/reset SYN SENT SYN RECVD SYN/SYN + ACK ACK SYN+ACK/ACK Close/FIN CLOSE WAIT ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK Fermeture active FIN WAIT-1 CLOSING ACK LAST ACK FIN-ACK/ACK ACK ACK Fermeture passive TIME WAIT FIN WAIT-2 Timeout (2 fois la durée de vie d’un segment) FIN/ACK
71
Ouverture et terminaison normale d’une connexion
Client LISTEN SYN j Serveur SYN_SENT SYN_RCVD SYN k, ACK j+1 ESTALISHED ACK k+1 ESTABLISHED FIN_WAIT1 FIN m ACK m+1 CLOSE_WAIT FIN_WAIT2 LAST_ACK FIN n TIME_WAIT ACK n+1 CLOSED
72
Ouverture simultanée Site 1 Site 2 SYN y SYN_SENT SYN x SYN_SENT
SYN_RCVD SYN_RCVD SYN x, ACK j+1 ESTABLISHED SYN y, ACK x+1 ESTABLISHED
73
Fermeture simultanée Site 1 Site 2 FIN k FIN_WAIT1 FIN_WAIT1 FIN j
CLOSING CLOSING ACK k+1 ACK j+1 TIME_WAIT TIME_WAIT
74
Gestion de connexions Comme UDP, TCP utilise la notion de port pour identifier le destinataire des données Ports TCP plus complexes que ports UDP TCP gère des connexions Une connexion est identifiée par une paire d’extrémités extrémité = (site, port) site = adresse IP, port = port TCP
75
Exemple connexion A entre les sites (18.26.0.36) et (128.10.2.3)
identifiée par la paire (( ,1069), ( ,25)) connexion B entre les sites ( ) et ( ) identifiée par la paire (( ,1184), ( ,53)) connexion C entre les sites ( ) et ( ) identifiée par la paire (( ,1184), ( ,53)) Les connexions B et C partagent la même extrémité mais sont distinctes car l’identificateur d’une connexion est une paire d’extrémités. Intérêt : gestion de plusieurs connexions simultanées avec un seul port
76
Ports TCP réservés 13 DAYTIME date
20 FTP-DATA file transfer protocol (données) 21 FTP file transfer protocol 23 TELNET connexion de terminaux 25 SMTP simple mail transport protocol 37 TIME heure 53 DOMAIN serveur DNS 79 FINGER finger 111 SUNRPC appel de procédure à distance SUN 119 NNTP News Transfer Protocol réservés ...
77
Sockets (Berkeley) Unix
SOCKET : création d’une extrémité BIND : liaison d’une adresse locale à la socket LISTEN : annonce intention d’accepter des connexions (indique la taille de la file) ACCEPT : bloque l’appelant jusqu’à ce qu’une demande de connexion arrive CONNECT : tentative d’établissement d’une connexion SEND : envoi de données sur une connexion établie RECEIVE : réception de données sur une connexion établie CLOSE : fermeture de la connexion
78
Communication client /serveur
SOCKET SOCKET BIND LISTEN CONNECT ACCEPT Boucle de traitement des requêtes des clients SEND RECEIVE Échange de données RECEIVE SEND CLOSE CLOSE
79
4 - Les services d’annuaire
Annuaire des machines DNS (Domain Name System) Annuaire des utilisateurs NIS
80
DNS Espace de désignation symbolique à grande échelle
nom symbolique plus facile à mémoriser qu’une adresse Internet des millions de sites sur Internet espace de noms hiérarchique unicité d’un nom symbolique Traduction des noms symboliques en adresse IP service DNS efficace et à haute disponibilité DNS mis en œuvre par un ensemble de serveurs de noms répartis géographiquement qui coopèrent pour la traduction des noms service distribué à grande échelle pas de serveur central prise en compte des évolutions rapides (nouveaux domaines, nouveaux sites, …)
81
Syntaxe des noms symboliques
Nom de domaine exemple ifsic.univ-rennes1.fr domaine : fr (France (géré par le NIC)) sous domaine : univ-rennes1.fr (sous domaine géré par l ’université de Rennes 1) sous sous domaine : ifsic (sous domaine géré par les administrateurs de l ’IFSIC) Domaines Internet 7 domaines génériques (étiquette à 3 car.) com : entreprises edu : institutions éducatives gov : institutions gouvernementales US int : organisations internationales mil : organisations militaires US org : autres organismes net : réseau Domaines géographiques (étiquette à 2 car.) code pays (ISO 3166) : zone géographiques
82
Exemple racine gov edu fr com Top niveau Second niveau purdue stanford
irisa nsf univ-rennes1 alinka ibm cs ee ifsic parapente hera poseidon
83
Traduction d’un nom symbolique en une adresse IP
Modèle client/serveur le logiciel de traduction des noms s’exécutant sur une machine cliente s ’adresse à un serveur de noms pour obtenir l’adresse IP correspondant à un nom symbolique le serveur de noms contacté peut faire appel à d’autres serveurs de noms pour effectuer la traduction demandée Organisation logique un serveur de noms racine et un serveur de noms par domaine et sous-domaine chaque serveur de nom gère une base de données de traductions (nom symbolique, adresse IP) pour son domaine en réalité, un serveur de noms peut gérer plusieurs sous domaines qui peuvent être de niveaux différents
84
Traduction d’un nom Le client adresse une requête à un serveur de nom
nom symbolique type d ’objet cherché (DNS ne gère pas que des noms de machines) type de résolution A la réception de la requête, le serveur vérifie si le nom appartient au domaine qu’il gère si oui, consulte sa base de donnée et envoie la réponse au client si non, 2 cas résolution récursive transmet la requête à un serveur de nom capable d’effectuer la traduction retourne la réponse au client résolution itérative envoie au client une réponse indiquant au client le serveur de noms à contacter pour réaliser la traduction
85
Identification du serveur de noms à contacter
A quel serveur de noms un client doit il s’adresser ? Le client connaît au moins l’adresse du serveur de noms de l’environnement local (fixé statiquement à la configuration) Comment un serveur de noms sait il quel autre serveur de noms contacter quand il ne peut pas traduire un nom ? Un serveur de nom connaît toujours l’adresse des serveurs de noms racine Un serveur de nom connaît toujours l’adresse du serveur de nom du domaine immédiatement supérieur dans la hiérarchie des domaines (serveur parent) Les serveurs de noms communiquent par l’intermédiaire d’un port bien connu. Il leur suffit de connaître l’adresse IP de la machine supportant l’exécution d’un serveur de nom.
86
Haute disponibilité et efficacité de DNS
plusieurs serveurs de noms pour un même domaine serveur de secours (serveur secondaire) contacté en cas de défaillance du serveur primaire plusieurs serveurs racine Efficacité traduction bottom/up en deux étapes serveur local contacté en premier (la plupart des traductions concernent des noms locaux) utilisation de caches sur les sites clients et sur les serveurs de noms cache d’un serveur de noms contient les traductions récentes date de validité pour chaque entrée du cache le client est prévenu quand le cache a été utilisé pour la traduction un serveur de noms traite plusieurs requêtes en parallèle
87
NIS/pages jaunes Gestion des utilisateurs en réseau
Rappel sur la gestion des utilisateurs d’une machine /etc/passwd contient la description de tous les usagers connus dans le système nom de l’usager pour le système mot de passe crypté numéro d’usager (UID) numéro de groupe (GID) commentaire nom absolu du répertoire personnel le nom du fichier exécutable du programme à lancer lors des connexions (/bin/tcsh) /etc/group nom, numéro et liste des utilisateurs pour chaque groupe
88
Gestion des utilisateurs en réseau
Les utilisateurs sont enregistrés par le serveur NIS qui gère un fichier (yellow pages) des utilisateurs les fichiers /etc/passwd et /etc/group sont caducs le serveur NIS diffuse périodiquement des copies de son fichier pour ne pas ralentir les connexions Sur chaque station de travail du réseau, un fichier (/etc/nsswitch.conf) indique où la commande login doit chercher les informations concernant l’usager exemple (IFSIC) passwd: files nis recherche d’abord dans les fichiers locaux (/etc/passwd et /etc/group) puis sur les fichiers NIS
89
Gestion des utilisateurs en réseau
Visualisation du fichier NIS ypcat Mise à jour du fichier NIS modification du mot de passe yppasswd Informations sur un utilisateur finger [option] (souvent désactivé comme à l’IFSIC à cause de pb de sécurité) exploitation des fichiers .plan (coordonnées) et .project (activités) (droit r pour tous) dans le répertoire personnel (droit x pour tous)
90
5 - Services de communication
Messagerie électronique News Web (chapitre 6)
91
Messagerie électronique
Service très répandu transfert de messages de taille et contenu variable Système de messagerie électronique traitement des défaillances de la machine distante traitement des défaillances des connexions réseaux utilisateur ne veut pas attendre que la machine distante soit disponible quand il envoie un message électronique utilisateur ne veut pas que son message électronique ne soit pas transmis à cause d’une indisponibilité temporaire du réseau
92
Messagerie électronique - spooling
Un message sortant est placé dans le spool émetteur destinataire machine de destination date et heure du dépôt Transmission des messages en arrière plan obtention de l’adresse IP de la machine de destination établissement d’une connexion TCP transmission du message retransmission périodique si échec de la transmission après quelques jours, envoi d’un message d’erreur à l’émetteur si la transmission n’a pas pu avoir lieu Un message est conservé par la machine émettrice jusqu’à ce qu’il soit copié avec succès sur la machine destinataire
93
Messagerie électronique - spooling
Transfert des messages en arrière plan Spool des messages sortants Client Utilisateur envoie des mails Agent utilisateur Utilisateur lit ses mails Spool des messages entrants Serveur Acceptation des messages
94
Format des messages Deux parties : Enveloppe
Adresse électronique de l’expéditeur et du destinataire Contenu Deux parties séparées par une ligne blanche entête (format standard) To: destination From: émetteur Reply-to: (optionnel, adresse à utiliser pour la réponse) … corps (format libre)
95
Transfert des messages
Protocole SMTP (Simple Mail Transfer Protocol) connexion au port TCP 25 de la machine de destination processus serveur de mail à l’écoute du port TCP 25 réception des messages qui sont déposés dans la boîte aux lettres du destinataire envoi d’un message d’erreur contenant la première partie du message à l’émetteur en cas d ’erreur protocole ASCII NVT
96
Exemple HELO ifsic.univ-rennes1.fr
Établissement d’une connexion 220 cs.rice.edu SMTP service ready HELO ifsic.univ-rennes1.fr 250 cs.rice.edu says hello to ifsic.univ-rennes1.fr MAIL From: 250 sender ok RCPT To: 250 recipient ok DATA 354 Send mail ; end with « . » on a line by itself From: To: MIME-VERSION: 1.0 Message-Id: Subject: Coucou Coucou, comment cela va ? Bye. . 250 mail accepted QUIT 221 cs.rice.edu delivering mail
97
Remise des messages En général, tous les postes de travail ne sont pas directement reliés à Internet et ne peuvent pas directement transmettre et recevoir du courrier électronique un ou plusieurs serveurs de mail Station de travail 1 Station de travail 2 Station de travail 3 Serveur de mail Helios à l’IFSIC Vers Internet
98
Enregistrements MX de DNS pour le courrier électronique
Courrier électronique pour des machines non connectées à Internet Gestion des défaillances de la machine serveur de mail
99
Protocole POP3 Post Office Protocol (RFC 1225)
récupération du courrier électronique dans une boîte aux lettres distante pour le mettre dans une boîte aux lettres située sur la machine locale de l’utilisateur qui pourra le consulter ultérieurement permet à un utilisateur de se connecter, d’obtenir ses messages, d’effacer des messages et de se déconnecter protocole ASCII
100
Protocole IMAP Interactive Mail Access Protocol (RFC 1064)
conçu pour les utilisateurs ayant plusieurs boîtes aux lettres électroniques (une au bureau sur une station de travail, une sur un PC à la maison etc) Principe le serveur de mail conserve tous les messages qui peuvent être accédés depuis n’importe quelle machine IMAP ne recopie pas le courrier électronique sur la machine locale de l’utilisateur
101
Adresse de boîte aux lettres électronique
Destinataire spécifié par un couple (nom de la machine de destination, adresse de la boîte aux lettres sur cette machine) Le nom de la machine de destination est indépendant des autres noms attribués à cette machine. Entrées dans la base de données DNS pour les noms du système de messagerie électronique Souvent mais ce n’est pas obligatoire : adresse de la boîte aux lettres = nom de login de l’utilisateur nom de la machine = nom domaine de la machine de destination Autres exemples
102
Gestion des alias Une adresse peut correspondre à plusieurs destinataires paris = liste des membres du projet paris de l’IRISA (mailing-list, liste de diffusion) Un utilisateur peut avoir plusieurs adresses électroniques
103
Extension du système de messagerie pour la gestion des alias
Transfert des messages en arrière plan Utilisateur envoie des mails Spool des messages sortants Client Agent utilisateur Expansion des alias Utilisateur lit ses mails Base des alias Spool des messages entrants Serveur Acceptation des messages
104
Les forums électroniques (news)
Un newsgroup est un forum électronique de discussion sur un sujet donné à l’échelle mondiale. Plusieurs centaines de sujets Trafic de plusieurs Moctets par jour Les abonnés à un groupe peuvent lire toutes les contributions envoyées à ce groupe et soumettre leurs propres informations. Chaque message envoyé à un groupe est remis à tous les abonnés, rapidement.
105
Catégories principales
Comp: ordinateurs et logiciels Misc : divers sujets News : le système de news et son fonctionnement Rec : Activités de jeux et de loisirs Soc : questions sociales et sociologiques Sci : physique, chimie, biologie et autres sciences Talk : sujets débats Alt : autre arborescence Exemples comp.edu comp.sources.unix news.groups
106
Interface du service de news
Lecture des articles des forums Envoi d’articles dans des forums Identification des groupes auxquels l’utilisateur est abonné Recherche dans la base des messages des articles non lus dans les groupes considérés Différentes commandes affichage des sujets seuls marquage des articles lus sauvegarde dans un fichier ou impression d’un article soumission d’un article étendue géographique de la diffusion
107
Format d’un message Newsgroups:liste des groupes auxquels le message est transmis Suject: sujet du message From: auteur Date: date d’expédition Path: chemin suivi par le message (complété au fur et à mesure de la propagation du message) Message-ID: identification du message Champs optionnels Followup-To: groupes dans lesquels les réponses doivent être envoyées Keywords: mots-clés Expires: date de péremption du message Description complète : RFC 1036
108
Mise en œuvre des forums électroniques
Sur chaque site (entreprise, campus, fournisseur d’accès Internet) un répertoire global de news sous répertoires pour les différents groupes les articles reçus sont sauvegardés dans le répertoire correspondant à leur groupe utilisateurs lisent les messages à partir de ce répertoire une seule copie des messages d’un groupe quelque soit le nombre d’abonnés sur un site les messages sont éliminés au bout d’un certain nombre de jours
109
NNTP Network News Transfer Protocol (RFC 977)
Protocole ASCII similaire à SMTP propagation des articles d’une machine à l’autre sur une connexion fiable (exemple : TCP) permet aux utilisateurs de lire les news à distance Deux approches pour la propagation des articles sur le réseau à l’initiative du client (pull) client demande à son serveur de news s’il y a de nouveaux articles à l’initiative du serveur (push) serveur informe les clients des nouveaux articles
110
NNTP Pour obtenir de nouveaux articles, le client établit une connexion TCP avec une machine fournisseur de news dont il dépend sur le port 119 Une fois la connexion établie, échange de commandes et réponses client obtient les articles dont il a besoin en simple exemplaire
111
Commandes NNTP LIST NEWSGROUPS date heure GROUP grp
demande la liste de tous les newsgroups et articles NEWSGROUPS date heure demande la liste des newsgroups créés après la date/heure GROUP grp demande la liste de tous les articles du groupe grp NEWNEWS grp date heure demande la liste des nouveaux articles dans les groupes spécifiés ARTICLE id demande d’envoi de l’article spécifié POST envoi d’un article posté localement IHAVE id j’ai l’article id. Le voulez vous ? QUIT fin de la session
112
Exemple S: 200 feeder.com NNTP server at your service
C: NEWNEWS soc.couples S: 230 List of 2 articles follows S: S: S: . (end of list) C:ARTICLE S: 220 follows S: contenu de l’article S:. C: ARTICLE S: 220 follows C: NEWGROUPS S: new groups follow S: rec.pets S: misc.kids
113
Exemple (suite) C:POST S: 340
C: article envoyé par le client au serveur S:240 C:IHAVE S:435 C:QUIT S:205
114
6- Le World Wide Web (WWW)
Architecture client/serveur permettant d’accéder à des documents liés dispersés sur des milliers de machines sur l’Internet Historique Le client Le serveur HTML JAVA Recherche d’information sur le Web
115
Historique Mars 1989, Tim Bernes-Lee, CERN
permettre à des chercheurs en physique travaillant en équipe et dispersés dans plusieurs pays d ’Europe d ’accéder à une grande quantité de documents de différents types en évolution continuelle première démonstration en décembre 1991 à Hypertext ’91 (mode texte) première interface graphique Mosaic, en février 1993 (Marc Andreessen) fondation de Netscape Communications Corp. en 1994 par Marc Andreessen (clients, serveurs, logiciels pour le Web)
116
Historique (2) 1994 : Consortium W3C, accord entre MIT et CERN pour le développement du Web, la standardisation et la promotion de l ’interopérabilité directeur : Tim Berners -Lee depuis lors, des centaines d ’universités et d ’entreprise ont rejoint le W3C coordination par le MIT pour l ’Amérique coordination par l ’INRIA pour l ’Europe
117
Le client
118
Le client
119
Le client Vision des utilisateurs
collection de documents, appelés pages une page peut contenir des liens hypertextes vers d’autres pages localisées dans le monde entier possibilité de suivre un lien en cliquant dessus Visualisation des pages à l’aide d’un navigateur (browser) exemple : netscape, mosaic, … Rôle du navigateur aller chercher une copie de la page interprétation du texte et des commandes de formatage contenues dans la page affichage de la page
120
Caractéristiques des navigateurs
Mise en évidence des liens qui ont déjà été suivis Plusieurs boutons pour faciliter la navigation retour à la page précédente retour à la page suivante (dans l’historique de la navigation) chargement de la home page de l’utilisateur Autres services gestion d’un annuaire de pages sauvegarde de pages sur disques impression de pages gestion des préférence de l’utilisateur en matière de contrôle d ’écran
121
Contenu des pages Web Texte Liens hypertextes Icônes Lignes Images
plans dessins photographies Chaque objet est potentiellement un lien sur une autre page plusieurs zones actives sur les images
122
Page hypermédia Contient des éléments tels que bande son film video
Certains navigateurs ne permettent pas d’afficher tous les types de pages consultation d’un fichier de configuration qui indique pour chaque type d ’élément hypermedia le nom d ’un programme (visualiseur externe, application d’aide) capable de le traiter si aucun visualiseur externe ne correspond à un élément hypermedia, le navigateur interroge l’utilisateur qui peut aussi demander la sauvegarde de la page sur disque d’ignorer la page
123
Exemple d’applications d’aide
Production de sons pour permettre l’accès au Web aux aveugles Interpréteurs de langages du Web extension des capacités du Web téléchargement et exécution de programmes
124
Chargement des images De nombreuses pages Web contiennent de grandes images qui demandent un temps de chargement très long exemple chargement d ’une image non compressée 640x480 (VGA) avec 24 bits par pixel (922Koctets) demande environ 4 minutes via un modem à 28,8 Kilobits par seconde Deux approches chargement du texte d’abord puis des images possibilité pour l’utilisateur d’interrompre le chargement des images chargement des pages sans charger les images qu’elles contiennent
125
Formulaires Certaines pages demandent aux utilisateurs d’entrer des données exemple d’utilisation des formulaires recherche d’un enregistrement spécifié par l’utilisateur dans une base de données commande d’un produit participation à une enquête d’opinion
126
HTML Les pages Web sont écrites dans le langage HTML (HyperText Markup Language) conforme à la norme SGML des langages de description de documents formatage des documents Construction de pages incluant du texte des éléments graphiques des liens vers d’autres pages Web
127
Le langage HTML Syntaxe d ’une commande
<COM> … </COM> (2 balises pour le parenthésage) exemples <HTML> début de page <BODY> début du corps de la page Commandes sans balise de fin <BR> saut de ligne <TR> début de ligne dans un tableau Commandes avec des paramètres dans la balise de début PARAM=valeur exemple <HR WIDTH=100%> trait horizontal sur 100% de la page
128
Exemple
129
Code source HTML <HTML> <BODY>
<H1> Relation : FILM </H1> <HR WIDTH=100% > <BR><BR><BR> <TABLE BORDER=1 WIDTH=100%> <TR> <TH ALIGN=center> Titre </TH> <TH ALIGN=center> Réalisateur </TH> <TH ALIGN=center> Année </TH> </TR> <TD WIDTH=50% ALIGN=left> LANCELOT </TD> <TD> ZUCKER </TD> <TD> 1995 </TD></TR> <TD WIDTH=50% ALIGN=left> LES COMPERES</TD> <TD> VEBER </TD> <TD> 1983 </TD></TR> [...] </TABLE> <BR> </BODY> </HTML>
130
Désignation des pages : URL
URL = Uniform Resource Locator Trois questions fondamentales pour pouvoir afficher une page Quelle page est demandée ? Où se trouve cette page ? Comment accéder à cette page ? Une URL permet de répondre à ces trois questions identifie une page de manière unique dans le monde 3 parties dans une URL protocole le nom DNS de la machine sur laquelle se trouve la page un nom local qui identifie la page de manière unique (nom de fichier)
131
Exemple d ’URL URL de la page d’accueil du site Web de l’IRISA
http : protocole : nom DNS de la machine qui héberge le site Web de l ’IRISA welcome.html : nom du fichier qui contient la page d’accueil Ponctuation :// entre le protocole et le nom de la machine / entre le nom de la machine et le nom du fichier
132
HTTP HTTP = HyperText Transfer Protocol
Protocole utilisé pour les communications entre un navigateur (client) et un serveur Web Deux types de messages requêtes du navigateur vers le serveur (ASCII) réponse du serveur vers le navigateur (MIME) HTTP s’appuie généralement sur TCP pour le transport des messages Une connexion TCP par page transférée dans les versions les plus anciennes de HTTP
133
Le navigateur Contraintes de connectivité
Le client doit pouvoir établir des connexions TCP vers les machines de l’Internet pour charger les pages la machine client doit être sur l’Internet ou posséder au moins une connexion SLIP ou PPP vers un routeur ou une machine de l’Internet Cache de pages Certains navigateurs utilisent le disque local pour cacher des pages Chargement d’une page vérification de la présence de la page dans le cache chargement de la page si page absente du cache et mise en cache si la page est dans le cache, vérification pour savoir si la copie en cache est à jour
134
Le serveur Chaque site serveur Web possède un processus serveur à l’écoute du port TCP 80 en attente de connexions de clients (navigateurs) Une fois la connexion avec un client établie envoi d’une requête par le client envoi de la réponse par le serveur fermeture de la connexion protocole HTTP
135
Description des méthodes
GET demande au serveur d’envoyer une page encodée selon le format MIME si entête If-modified-Since date, le serveur envoie les données que si elles ont été modifiées depuis la date indiquée sert au navigateur pour interroger le serveur au sujet d’une page présente en cache. Le serveur envoie une ligne d’état si la page est toujours valide dans le cache permet d’éviter un transfert de page
136
Description des méthodes
HEAD demande au serveur de l ’entête d’une page (sans le contenu de la page) peut être utilisée pour connaître la date de dernière modification d ’une page pour collecter de l ’information à des fins d ’indexation pour tester la validité d ’une URL pas de conditions
137
Description des méthodes
PUT inverse de la méthode GET permet de mettre à jour un serveur Web distant le corps de la requête contient la page la page peut être encodée au format MIME les lignes qui suivent la ligne PUT peuvent inclure des entêtes de type Content-Type ou d’authentification permettant de s’assurer que l’utilisateur a bien le droit d’effectuer l’opération demandée
138
Description des méthodes
POST similaire à la méthode PUT permet d’ajouter des données à des données existantes au lieu de les remplacer exemple ajout d ’une news DELETE supprime la page comme pour PUT, authentification de l’utilisateur si les droits associés au fichier contenant la page à supprimer ne permettent pas la suppression ou modification, l’opération n’a pas lieu même si elle est autorisée
139
Réponse Une réponse est envoyée pour chaque requête sous forme d’une ligne d ’état et éventuellement des informations additionnelles code 200 (OK) code d ’erreur exemples 304 : non modifié 400 : mauvaise requête 403 : interdit
140
Déroulement du chargement d ’une page
L’utilisateur clique sur un lien hypertexte qui pointe sur la page de nom Le navigateur détermine l’URL de la page à charger (d ’après la zone sélectionnée) interrogation du service DNS pour obtenir l ’adresse IP de la machine DNS envoie la réponse Le navigateur initialise une connexion au port 80 de la machine Le navigateur envoie la requête GET /hypertext/WWW/TheProject.html Le serveur envoie le fichier TheProject.html La connexion TCP est fermée Le navigateur affiche le texte contenu dans le fichier TheProject.html Le navigateur charge et affiche toutes les images référencées dans TheProject.html
141
Pages dynamiques Traitement des données Par le serveur Par le client
142
Formulaires/CGI HTML 2.0 (formulaires)
Un formulaire permet à l’utilisateur d’envoyer des informations au propriétaire de la page dans laquelle il est inclus Les programmes CGI côté serveur assurent le traitement des données transmises CGI (Common Gateway Interface) = interface entre un serveur Web et des applications Intérêt des programmes CGI traitement des données d’un formulaire interface avec des bases de données existantes affichage dynamique
143
Formulaire <FORM ACTION=``URL`` METHOD=…> … </FORM>
URL = serveur qui va traiter la requête Attribut METHOD méthode de transmission de l’information par défaut : GET POST contenu envoyé séparément et reçu sur l’entrée standard du programme CGI Contenu d’un formulaire champ de saisie listes à choix zones de texte
144
Champs de saisie <INPUT …. > Attributs TYPE : forme du champ
text par défaut autres valeurs : password, checkbox,radio,submit,reset submit : bouton pour envoyer le formulaire NAME : obligatoire sauf pour submit et reset nom symbolique du champ pour le programme CGI de traitement VALUE : étiquette affichée sur les boutons submit et reset
145
Listes à choix <SELECT … > …. </SELECT>
chaque option est précédée de <OPTION> attribut NAME obligatoire
146
Zones de texte <TEXTAREA NAME= … ROWS=x COLS=y> </TEXTAREA> affiche une zone de texte vide avec ascenseurs peut être pré-remplie
147
Envoi d’un formulaire Par un clic sur le bouton submit
Concaténation de tous les champs de saisie en une seule chaîne nom1=valeur1&nom2=valeur2&… nom = attributs NAME valeur = texte saisi par le client (peut être vide) Serveur GET extraction de la chaîne qui suit le ? dans l’url qui est mise dans la variable d’environnement QUERY_STRING POST le programme CGI lit la chaîne sur son entrée standard la variable d’environnement CONTENT_LENGTH contient le nombre d’octets à lire
148
Récupération des données
En shell : ProcCGIInput.sh sous programme de la bibliothèque des programmes shell pour récupérer et décoder les données d ’un programme CGI produit autant de variables locales que de champs de saisie avec comme nom la valeur de l’attribut NAME En PERL : module CGI classe CGI opérateur param (‘ nom_var ’) rend la valeur du champ de nom nom_var dans le programme CGI use CGI création d’un objet de type CGI $o = new CGI
149
Programmes CGI Scripts Shell, perl, TCL Autres langages C++
150
CGI Serveur Application Navigateur Appel du programme CGI Exécution
Requête HTTP (GET) Réponse HTTP (page contenant le formulaire) Appel du programme CGI Requête HTTP (POST) (URL du programme CGI+ chaîne de requête) Exécution du programme CGI Retour (page HTML) Réponse HTTP (page HTML) Réseau
151
Documents HTML actifs : Applets
Programme Java qui peut être référencé depuis un document HTML Destinée à être téléchargée et exécutée par le navigateur Web Problèmes de sécurité (restrictions sur ce que peut faire une applet) Insertion d’une applet dans un document HTML <APPLET CODE=xxx.class WIDTH=250 HEIGHT=150></APPLET> xxx.class : nom du fichier contenant l’applet WIDTH et HEIGHT : hauteur et largeur en pixels de la zone graphique au sein du document
152
Programmation d’une applet
Définir une classe qui hérite de la classe Applet définie en standard en Java class Applet extends Panel { // méthodes à définir void init () ; void start () ; void paint (Graphic g); void stop (); ... // méthodes outils à utiliser URL getCodeBase (); URL getDocumentBase(); void repaint(); AudioClip getaudioClip (URL urlAudioClip) ; Image getImage(URL repertoire, String nom); ... }
153
Fonctions graphiques Class Graphics {
void drawLine (int x1, int y1, int x2, int y2) void drawRect(int x, int y, int w, int h) void drawOval(int x, int y, int w, int h) void drawString(String s, int x, int y) void setColor(Color c) Color getColor() void setFont (Font f) Font getFont () boolean drawImage (…)
154
Proxy Logiciel intermédiaire
Exécution sur la machine du navigateur ou sur une machine distincte Utilisation Accès à des serveurs non HTTP Cache de pages Filtre de sécurité
155
Accès à des serveurs non HTTP
Certains navigateurs peuvent utiliser d’autres protocoles en plus d’HTTP exemple : FTP permet d’exploiter des anciens serveurs FTP D’autres navigateurs ne peuvent utiliser que HTTP accès aux serveurs FTP via un proxy qui traduit les requêtes HTTP en des requêtes FTP proxy peut s’exécuter sur la même machine que le navigateur ou sur une autre machine
156
Exemple Requête FTP navigateur HTTP Serveur FTP Réponse FTP
Requête HTTP navigateur HTTP Proxy FTP Serveur FTP Réponse HTTP
157
Autres utilisations des proxys
Cache de pages limitation du nombre de transferts d’information sur le réseau Filtre de sécurité firewall limiter les accès à l’Internet les navigateurs communiquent avec le proxy le serveur proxy charge les pages pour le compte des clients (depuis les sites autorisés)
158
Moteur de recherche Recherche d ’une information sur le Web n’est pas toujours aisée très grande quantité d’information Moteur de recherche (search engine) indexation du Web Problématique Web = très gros graphe nœuds = pages arcs = hyperliens Algorithmes de parcours de graphe connus mais taille du graphe Web très importante changement continuel du graphe Web
159
Structures de données Conservées en mémoire virtuelle Table des URLs
immense table avec une entrée par page (pointeur sur l’URL, pointeur sur le titre) une page doit y être introduite une fois et une seule Tas stockage des urls et titres Table de hachage permet de savoir rapidement si une URL a déjà été rencontrée n entrées contenant une liste chaînée d’URls
160
Deux phases Recherche procédure récursive de traitement d’une URL
recherche de l’URL dans la table de hachage si absente, chargement de la page et création d ’une entrée dans la table des URLs extraction des hyperliens et appel de la procédure récursive sur ces hyperliens choix d’un ensemble d ’URLs de départ
161
Deux phases Indexation parcours de la table des URLs linéairement
pour chaque entrée, sélection des mots clés dans le titre (qui n’appartienne pas à la liste des mots non significatifs) insertion de couples (mot, numéro de l’entrée dans la table des URLs) dans un fichier d’index tri du fichier d’index par mot stockage de l’index sur disque
162
Utilisation de l’index
Utilisateur remplit un formulaire indique un ou plusieurs mots-clés clique sur le bouton submit envoi d’une requête HTTP POST au serveur Exécution d ’un programme CGI sur la machine sur laquelle l’index est stocké consultation de l’index qui rend des indices dans la table de URLs recherche des URL et titres des pages dans la table des URLs composition d’une page Web de résultat envoyée à l’utilisateur en réponse à la requête POST
163
Difficultés URL obsolètes machines non disponibles temporairement
choix des URLs de départ pour atteindre le plus grand nombre de pages possible documents qui ne peuvent pas être indexés (documents sonores) beaucoup de documents n’ont pas de titre (significatif) problème d ’espace mémoire et disque pour le moteur de recherche temps d ’exécution des phases de recherche et indexation
164
Services d’exécution à distance
TELNET terminal distant rlogin, rsh Unix
165
TELNET Permet une utilisation interactive d’une machine distante
Exemple Serveur d’édition à distance Client envoie les caractères au serveur Affichage des caractères sur l’écran du client Etablissement d’une session de login à distance exécution de commandes (accès à toutes les commandes disponibles sur le système distant) problème interprétation de certains caractères par les systèmes exemple : CTRL C pour interrompre le processus qui exécute la commande en cours
166
TELNET Protocole de terminal distant simple
établissement d’une connexion TCP avec un serveur de login distant envoi des caractères à la machine distante la sortie des commandes exécutées sur la machine distante est envoyée au terminal de l’utilisateur Spécification de la machine distante nom domaine (nom symbolique) adresse IP
167
TELNET SERVEUR CLIENT TELNET TELNET Serveur envoie au pseudo
Système d ’exploitation SERVEUR TELNET Serveur envoie au pseudo terminal Client lit depuis le terminal Client envoie au serveur Serveur reçoit du client Système d ’exploitation Terminal utilisateur TCP/IP Internet
168
Services de base Terminal réseau virtuel interface standard
les programmes clients n’ont pas à connaître tous les types de systèmes distants, ils utilisent l’interface standard Mécanisme de négociation des options les deux extrémités peuvent négocier des options Traitement de plusieurs connexions TELNET en parallèle processus maître en attente de demande de connexion création d ’un processus esclave pour chaque connexion Pseudo-terminal point d’entrée du système d’exploitation qui permet d’émuler un terminal (les caractères transmis par le serveur TELNET sont traités comme s’ils venaient d’un terminal)
169
Traitement de l’hétérogénité
TELNET doit fonctionner sur des machines et systèmes hétérogènes illustration de l’hétérogénéité caractère de fin de ligne CR, LF, CR-LF NVT (Network Virtual Terminal) définit comment les caractères doivent être transmis sur Internet client traduit les caractères du clavier et les séquences de commandes au format NVT avant de les envoyer au serveur serveur traduit les commandes NVT dans le format utilisé par le système distant symétriquement dans l’autre sens
170
Traitement de l’hétérogénéité
connexionTCP Système de la machine serveur Terminal utilisateur Client Serveur Format du système de la machine cliente format NVT Format du système de la machine serveur
171
TELNET - NVT Transmission d’octets de 8 bits
NVT utilise le standard USASCII 7 bits pour les données 95 caractères imprimables plus des codes de contrôle (8 utilisés par TELNET) NUL 0 sans effet sur la sortie BEL 7 signal audible BS 8 déplacement à gauche d’un caractère HT 9 déplacement vers la droite jusqu’au prochain TAB LF 10 déplacement vers le bas d’une ligne VT 11 déplacement vers le bas jusqu’au prochain TAB FF 12 déplacement vers le haut de la page suivante CR 13 déplacement jusqu’à la marge gauche de la ligne courante
172
Transmission de commandes à distance
Les octets avec le bit de poids fort représentent des séquences de commandes signaux de contrôle (touches virtuelles) IP interruption du processus en cours (244) EC effacement du caractère précédent (247) EL effacement de la totalité de la ligne courante (248) DMARK synchronisation (242) codés par deux octets IAC + touche virtuelle IAC IP = utilisation du mode urgent de TCP pour interrompre un programme qui ne se comporte pas bien
173
Options TELNET Options négociables qui permettent au client et au serveur de reconfigurer leur connexion exemples utiliser un code sur 8 bits au lieu de 7 mode half ou full duplex … Symétrie entre client et serveur pour la négociation requête : WILL X réponse : DO X ou DON’T X requête : DO X réponse : WILL X ou WON’T X
174
Rlogin Login à distance entre deux systèmes Unix rlogin exesol1
mot de passe demandé par défaut Variante rsh invoque un interpréteur de commande sur une machine Unix distante et passe les arguments de la ligne de commande à l’interpréteur de commande rsh machine command rsh exesol1 ps notion d’entrée et sortie standard a un sens pour rsh rsh exsol1 ps > resul
175
Services de gestion de fichiers
Transfert de fichiers FTP (protocole standard) TFTP (protocole FTP simplifié) rcp (Unix) Accès à distance NFS
176
FTP Mis en œuvre au dessus de TCP/IP
Permet de transférer des fichiers entre deux systèmes hétérogènes Accès interactif possible de demander la liste des fichiers dans un répertoire distant Spécification du format client peut indiquer le type des données stockées (ASCII, binaire, …) Contrôle d’authentification login + mot de passe
177
FTP Fonctionnement plusieurs accès concurrents de différents clients
clients utilisent TCP pour se connecter au serveur processus esclaves pour gérer chaque client côté serveur 2 types de connexion une connexion de contrôle par session quels fichiers doivent être transférés une connexion de données par fichier transféré Quand la connexion de contrôle disparaît, la session est terminée et tous les processus de transfert de données sont terminés.
178
FTP Transfert de données Processus de contrôle Processus de contrôle
Connexion de données Connexion de contrôle Connexion de données Système d ’exploitation Système d ’exploitation Internet
179
Gestion des ports TCP Côté serveur port 21
le processus maître attend une connexion depuis un client quelconque port 20 un processus esclave attend une connexion d’un client particulier (celui pour lequel il a été créé en vue du transfert d’un fichier) Côté client utilisation d’un port libre quelconque x pour demander la connexion avec le serveur utilisation d’un autre port libre quelconque y pour la connexion avec le processus esclave, ce port est communiqué au processus esclave sur la connexion de contrôle par TELNET
180
Gestion des ports TCP Client Serveur Machine A Machine B Processus
de contrôle Processus de contrôle Connexion de contrôle (A, port X) (B, port 21) (Port Y) (Port Y) Processus de données Processus de données Connexion de données (A, port Y) (B, port 20)
181
Exemple de session %ftp arthur.cs.purdue.edu
Connected to arthur.cs.purdue.edu 220 arthur.cs.purdue.edu FTP server (DYNIX V3.0.12) ready Name (arthur:usera): anonymous 331 Guest login ok, send idenbt as password. Password: guest 230 Guest login ok, access restrictions apply. Ftp> get pub/comer/tcpbook.tar bookfile 200 PORT command okay. 150 Opening data connection for /bin/ls ( ,2363) ( bytes). 226 Transfer complete. bytes received in seconds (82 Kbytes/s) ftp> close 221 Goodbye. Ftp> quit %
182
TFTP FTP TFTP protocole général mais complexe
certaines applications n’ont pas besoin de toutes les fonctionnalités de FTP gestion de connexions TCP concurrentes TFTP trivial FTP service limité, peu coûteux pas d’authentification logiciel de petite taille exemple d’utilisation station de travail sans disque TFTP en ROM et utilisé pour obtenir l’image initiale du système au démarrage permet de booter depuis un serveur situé sur un réseau physique différent
183
TFTP Mis en œuvre au dessus de UDP
Transmission des fichiers en bloc de 512 octets Gestion de retransmissions chaque bloc est acquitté 5 types de messages requête de lecture (fichier) requête d’écriture (fichier) transfert d’un bloc de données (numéro, données) message d’acquittement (numéro) message erreur (code d erreur, message d’erreur)
184
NFS : accès aux fichiers distants
Permettre aux utilisateurs d’avoir une visibilité potentielle sur tous les fichiers du système réparti et de travailler sur tout fichier local ou distant Spécification de NFS distingue deux services service de montage permet de rendre visible les arborescences locales sur n’importe quelle machine distante Protocole de montage service d ’accès à distance accès aux fichiers à distance Protocole NFS Mise en œuvre modèle client/serveur Application Client Protocole Serveur SGF centralisé RPC
185
Protocole de montage Etablissement d’une connexion logique initiale entre un client et un serveur rend accessible un répertoire d’un serveur de façon transparente à une machine cliente serveur de montage conserve une liste d’exportation qui indique les répertoires locaux exportés et les machines autorisées à les monter requête de montage envoyée au serveur de montage situé sur la machine serveur concernée le serveur de montage renvoie au client un descripteur du répertoire monté (identificateur du SGF et du fichier dans ce SGF) les utilisateurs de la machine cliente peuvent accéder les fichiers du répertoire de façon transparente
186
Protocole NFS Recherche d’un fichier dans un répertoire
Lecture d’un ensemble d’entrées de répertoire Manipulation des liens, des répertoires et des fichiers Accès aux attributs des fichiers Lecture, écriture des fichiers
187
Protocole NFS Protocole sans état
transmission de toutes les informations nécessaires à l’opération effectuée dans la requête augmentation de la taille des requêtes et de leur temps de traitement les opérations susceptibles de générer un état (ouverture, fermeture) sont gérées par le client défaillance d’une machine client n’a aucune répercussion sur le service la défaillance du serveur entraîne l’indisponibilité des fichiers locaux restauration de la cohérence du disque à la reprise mais pas de synchronisation avec les clients
188
Mise en œuvre de NFS Appels système Interface VFS/Vnode SGF local
Client NFS RPC/XDR Serveur NFS Client Serveur
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.