Cours réseaux IUT 1 Université de Lyon
Plan du cours 8 séances de 2 heures 5 séance de cours 2 séances de TD 2 contrôles continus 1 TP 1 DS (tous les groupes)
Fonctionnement Polycopié Prise de notes aidée Les points qui apparaissent sur votre poly sont marqués par les mêmes puces que sur votre document. Quelques exercices au fur et à mesure
Contenu du cours Premier aperçu sur les réseaux Principes de bases Modèle OSI Paradigme client-serveur Descriptions de quelques services SMTP/POP/NFS/FTP/DNS/LDAP Un protocole de niveau liaison: HDLC
Première introduction aux réseaux
Questions de communications Vous êtes en vacances dans le sud de la France. Vous voulez envoyer une carte postale à votre ami resté à Lyon. Comment faites vous pour que la carte parvienne bien à lui?
Questions de communications Monsieur A parle chinois. Monsieur B parle Français. Monsieur A et Monsieur B veulent discuter entre eux, mais aucun ne parle la langue de l autre. La communication est-elle possible?
Questions de communications Dans une réunion, Monsieur C et Monsieur D sont en désaccord sur un point. Ils veulent tous deux exposer leur point de vue, mais parlent en même temps. Cette façon de faire vous semble-t-elle efficace? Pourquoi?
Questions de communications Vous avez déjà joué au téléphone arabe. Le message reçu par la dernière personne de la chaîne est-il le même que celui passer par la première? Pourquoi?
Questions de communications Une personne parle très vite. Est-il facile de la comprendre?
Applications aux réseaux informatiques Carte postale Langage Tour de parole Déformation des messages Une personne parle très vite
Architecture client-serveur
Requête (demande de services) Généralités Offrir un service Retrait Prêt Placement Le service
Architecture client serveur: généralité Requête Réponse Client Serveur Une machine cliente et une machine serveur La machine cliente demande un/des service(s) au serveur: elle envoie une requête Le serveur renvoi une réponse (le service)
Architecture client serveur: technique Requête A pour le service X Réponse Client Serveur Le serveur est prêt et attend les demandes: le service est rendu par un logiciel en cours d exécution Plusieurs services peuvent être mis en œuvre par un même serveur Les services ont des identifiants différents Un serveur peut traiter plusieurs clients en même temps Un client envoi une requête au serveur: La requête contient l identifiant du service La requête à un format bien précis
Architecture client serveur: technique Requête A pour le service X Réponse Client Serveur Le serveur traite la requête Essaye de la comprendre (format de la requête) Vérifie que le service demandé est disponible Envoi la réponse au client Réponse positive Réponse négative
Questions Donnez quelques services que vous connaissez. Quels sont les identifiants des services? Donnez quelques exemples de normes associées à ces services (celles qui définissent les formats des requêtes et des réponses)?
Le modèle OSI
Ce qu il faut mettre en œuvre pour communiquer (1) Fixer le type de support physique: filaire (cuivre, fibre) sans fil Les fréquences Le mode de transmissions de l information: Bande de base Modulation: laquelle? Adaptation de la modulation?
Ce qu il faut mettre en œuvre pour communiquer (2) Le mode de transmissions de l information: Codage des données Code détecteurs/correcteur d erreurs Le «tour de parole» (règles d accès au medium) Des adresses
Ce qu il faut mettre en œuvre pour communiquer (3) Des mécanismes permettant d adapter le débit au capacité du réseau/récepteur de détection et de reprises sur erreurs d identification des services de format des requêtes
Modularité Un seul protocole, un protocole universel, pour tout faire? Non. Pourquoi?
Plusieurs protocoles Transmission Besoin de supports différents (filaire, sans fil, etc.) Chacun des supports va avoir des besoins protocolaires/algorithmiques différents (fiabilité par exemple). Certains sont point à point, d autre multipoints Réseau/transport Services Besoin de fiabilisation différents suivant les services Les services auront des requêtes de types différents Échanges de fichiers Requêtes simples (DNS, DHCP)
Introduction: le modèle OSI Un modèle théorique : le modèle OSI A quoi ça sert: Nécessité de découper/classifier l ensemble des fonctionnalités nécessaire à la communication entre deux entités. On regroupe ces fonctionnalités au travers de 7 «couches».
Introduction: le modèle OSI (2) Application Présentation Session Transport Réseaux Liaison Physique Couches Couches session, session, présentation présentation et et applications. applications. Elles Elles gèrent gèrent le le service service finale: finale: le le format format des des données, données, la la session session applicative, applicative, les les requêtes/réponses. requêtes/réponses. Couches Couches réseau réseau et et transport: transport: définit définit l ensemble l ensemble des des mécanismes mécanismes permettant permettant ààdeux deux machines machines non non directement directement connecté connectéde de communiquer. communiquer. Gère Gère la la communication communication de de bout bout en en bout. bout. Couches Couches physique physique et et liaison: liaison: définit définit l ensemble l ensemble des des mécanismes mécanismes permettant permettant ààdeux deux machines machines directement directement connecté connectépar par un un même même support support physique physique de de communiquer. communiquer.
Qui fait quoi? Implémentation Modèle Internet Modèle OSI Application (programme-processus) (programme-processus) Application Application Présentation Session Système d exploitation Pilote Pilote Périphérique TCP TCP --UDP UDP IP IP Wi-Fi/Ethernet etc. etc. Transport Réseau Liaison Liaison Physique
Schéma représentatif appliqué au service réseaux Implémentation Application (programme-processus) (programme-processus) http http dns dns ftp ftp smtp smtp p2p p2p Système d exploitation Pilote Pilote Périphérique ZigBee ZigBee TCP TCP UDP UDP RTP RTP IP IP Réseaux local: local: Pilote Pilote Périphérique et et carte carte (Wi-Fi, (Wi-Fi, Ethernet, etc.) etc.) SCTP SCTP
Schéma représentatif appliqué au service réseaux A retenir Un ordinateur ou serveur implémente toutes les couches Physique/liaison: périphériques et pilote TCP/IP: système d exploitation Application: logiciel Application Application http http dns dns ftp ftp smtp smtp p2p p2p Système d exploitation Système d exploitation Pilote Périphérique Pilote Périphérique ZigBee ZigBee TCP TCP UDP UDP RTP RTP IP IP SCTP SCTP Réseaux local: Pilote Périphérique Réseaux et carte local: (Wi-Fi, Pilote Ethernet, Périphérique et etc.) carte (Wi-Fi, Ethernet, etc.)
Les adresses (1) A chaque groupe de niveaux: une adresse Une Une Adresse Adresse MAC/Physique MAC/Physique pour pour identifier identifier le le récepteur/émetteur. récepteur/émetteur. Une Une Adresse Adresse réseau réseau pour pour identifier identifier le le récepteur/émetteur récepteur/émetteur sur sur l ensemble l ensemble du du réseau. réseau.
Les adresses (2) p2p p2p dns dns smtp smtp ftp ftp http http TCP TCP Numéro de port Numéro de port Protocole Protocole IP IP Adresse IP Adresse IP UDP UDP Réseaux local: local: Pilote Pilote Périphérique et et carte carte (Wi-Fi, (Wi-Fi, Ethernet, etc.) etc.) Adresse Adresse MAC MAC
Les adresses: exemple p2p p2p dns dns smtp smtp ftp ftp http http 80 80 TCP TCP UDP UDP 6 (TCP) 6 (TCP) IP IP 129.175.237.11 129.175.237.11 Ethernet 2f:e1:a4:17:89:8b 2f:e1:a4:17:89:8b
Les numéros de ports A retenir: Le numéro de port identifie un service Il permet au SE de savoir à quel application (processus) il doit envoyer les données. Il y a une association unique entre un service et un numéro de port (c est gravé dans le marbre). Port ouvert Pour qu un port soit ouvert, il faut qu une application rendant le service correspondant se soit enregistré auprès du système d exploitation. Port fermé Par défaut un port est fermé. Les requêtes des clients correspondant à ce service sont rejetées par le SE.
Exercice On suppose que deux clients sont connectés à deux serveurs pour deux services réseaux différents. Donnez l ensemble des adresses liées à ces deux communications. On suppose que deux clients sont connectés à un même serveur mais pour deux services réseaux différents. Donnez l ensemble des adresses liées à ces deux communications. On suppose que deux clients sont connectés à un même serveur mais pour le même service réseaux. Donnez l ensemble des adresses liées à ces deux communications.
Exercice Un serveur web gère plusieurs clients en même temps comment fait il pour les distinguer? Un serveur gère plusieurs services, et un même client accède à tous ces services en même temps comment le serveur fait-il pour distinguer les communications des différents services? Un serveur web gère plusieurs connexions avec le même client comment le serveur fait-il pour distinguer les différentes communications avec ce même client?
Les services réseaux
Plan Telnet FTP DNS Permet de se connecter à distance (ouvre une console sur la machine distante) Service de transfert de fichiers Effectue l association/résolution entre un nom de machines et une adresse IP SMTP et POP HTTP Transfert de mail Service de transfert de pages web (au sens large)
Telnet A quoi ça sert Connexion à un poste distant Émulation d un terminal/console En ligne de commandes Une demande d authentification est effectuée Authentification sécurisée et chiffrée Les données sont émises en claire Tend à être remplacé par ssh (service identique mais plus sécurisé).
Telnet Comment ça marche Client/serveur Il faut un client telnet sur le client Un serveur telnet sur le serveur (ex: telnetd sus Linux) Le client se connecte sur le serveur et l émulation est lancé. telnet telnet.univ-lyon1.fr login: user Password:***** telnet> telnet>cp file1.text file2.txt telnet>exit
Telnet Comment ça marche technique Le port utilisé est le port 23 Le mode de présentation s appelle NVT (Network Virtual Terminal) NVT définit Le mode de transmission des caractères et d affichage Des caractères de contrôle pour gérer le terminal (effacer le terminal, etc.)
Telnet Client Telnet > a a a Serveur Telnet A est retransmis par le serveur. Je tape sur a (au clavier): il ne s affiche pas à l écran. Les caractères tapés au clavier Les données tapées au clavier sont transmis au serveur sans être affiché à l écran Le serveur renvoi les données reçues au client (echo du caractère) Le client affiche les données reçues Implémentation du client Renvoi simplement ce qui est tapé au clavier au serveur (sans l afficher) Affiche tout ce qui est reçu du serveur Note: tout est en ASCII (+ quelques caractères spéciaux définit par NVT)
Exemple Voir trace (émission de a, ab puis ls). Option négociée Option supplémentaire négociée entre le client et le serveur WILL ou DO ou DONT DO WILL ou WONT
Questions A quoi peut servir un serveur telnet ou ssh en pratique?
FTP: File Transfer Protocol A quoi cela sert? Récupération ou dépôt de fichiers sur un serveur. Les fichiers sont transparents (aucune interprétation des données par le serveur/client).
FTP: File Transfer Protocol Exemple de clients ftp: Votre navigateur Filezilla En ligne de commande ftp://ftp.ietf.org
FTP Comment ça marche: généralités Des comptes sont enregistrés sur le serveur Compte «anonymous» parfois activé A chaque client est associé un ensemble de répertoire d accès (avec des droits)
FTP Comment ça marche: technique Deux ports Un pour la connexion sur laquelle sera envoyé les commandes : 21 Une pour le téléchargement des fichiers: 20 Une session est ouverte sur le serveur Session: temps durant lequel le client est connecté (sur la connexion de commande). Le serveur stocke des données sur l utilisateur durant cette session
Les commandes ftp (non exhaustif) Commande help ls pwd cd get put quit Description Affiche l'ensemble des commandes supportées par le serveur FTP Permet de lister les fichiers présents dans le répertoire courant. La commande "ls -l" donne des informations supplémentaires sur les fichiers Affiche le nom complet du répertoire courant Cette commande signifie change directory, elle permet de changer le répertoire courant. La commande "cd.." permet d'accéder au répertoire de niveau supérieur Cette commande permet de récupérer un fichier présent sur le serveur Si la commande est suivie d'un nom de fichier, le fichier distant est transféré sur la machine locale dans le répertoire local en cours Si la commande est suivie de deux noms de fichiers, le fichier distant (le premier nom) est transféré sur la machine locale dans le répertoire local en cours, avec le nom de fichier précisé (le deuxième nom) Si jamais le nom de fichier contient des espaces il faut veiller à le saisir entre guillemets Cette commande permet d'envoyer un fichier local sur le serveur Si la commande est suivie d'un nom de fichier, le fichier local est transféré sur le serveur dans le répertoire distant en cours Si la commande est suivie de deux noms de fichiers, le fichier local (le premier nom) est transféré sur le serveur dans le répertoire distant en cours, avec le nom de fichier précisé (le deuxième nom) Si jamais le nom de fichier contient des espaces il faut veiller à le saisir entre guillemet Déconnecte le logiciel client du serveur FTP Source: http://www.commentcamarche.net/contents/outils-reseau/commandes-ftp.php3
DNS Questions: Connaissez vous des noms de PCs? Peut-on échanger des données avec un PC en connaissant uniquement son nom?
Le DNS A quoi cela sert? Correspondance entre un nom de machine et une adresse IP C est l adresse IP qui est utilisée pour joindre une machine et non son nom
Le DNS Les machines ne sont pas nommées n importe comment Association d un parc informatique à un nom de domaine (entreprise, université, etc.) Association administrative (il faut enregistrer son nom de domaine!) Le nom de domaine fait partie de l arbre de nommage: «.» racine.com.org.net.fr google yahoo google orange univ-lyon1 Nom Nom complet complet des des domaines: domaines: google.com. google.com. iut.univ-lyon1.fr. iut.univ-lyon1.fr. sciences.univ-lyon1.fr. sciences.univ-lyon1.fr. sciences iut
Le DNS Un domaine peut contenir un nombre arbitraire de machines Pour Pour le le domaine domaine iut.univ-lyon1.fr: iut.univ-lyon1.fr: machine1.iut.univ-lyon1.fr. machine1.iut.univ-lyon1.fr. machine2.iut.univ-lyon1.fr. machine2.iut.univ-lyon1.fr. www.iut.univ-lyon1.fr. www.iut.univ-lyon1.fr. ftp.iut.univ-lyon1.fr. ftp.iut.univ-lyon1.fr.
Le DNS: le problème Base de données de plusieurs milliards d entrée. Approche centralisée: un seul serveur Mise à jour permanente Problème de sécurité (contrôle d accès) Problème de charge Ingérable Approche décentralisée Chaque domaine gère ses noms de machines Comment fait-on pour obtenir une adresse IP d un autre domaine?
Le DNS: le principe (résolution itérative) Un ou plusieurs serveurs sont responsable d un domaine A chaque nœud de l arbre correspond au moins un serveur Un serveur responsable d un domaine doit: Gérer toutes les machines de son domaine (association nom adresse IP) Connaître l adresse des serveurs responsables des sous domaines (dans l arbre de nommage) Connaître l adresse du serveur root.
DNS Un serveur DNS n est pas forcément responsable d un domaine Peut-être utilisé uniquement pour résoudre les requêtes des clients Un client a forcément un serveur DNS configuré pour résoudre ses requêtes (qui peut être responsable d un domaine ou non) Manuellement Automatiquement
Questions Avec ces hypothèses: Un serveur DNS ne connaît que les adresses de son propre domaine Comment fait il pour trouver les autres adresses?
Exemple DNS responsable de «.» : root server 1 Serveur DNS local 2 3 4 DNS responsable de «.fr» 1. Requête pour www.iut.univ-lyon1.fr 2. Requête pour www.iut.univ-lyon1.fr 3. Réponse avec l @ du DNS «.fr» 4. Requête pour www.iut.univ-lyon1.fr 5. Réponse avec l @ du DNS «univ-lyon1.fr» 6. Requête pour www.iut.univ-lyon1.fr 7. Réponse avec l @ du DNS de «iut.univ-lyon1.fr» 8. Requête pour www.iut.univ-lyon1.fr 9. Réponse avec l adresse de la machine demandé (www.) 10. Réponse avec l adresse de la machine demandée 10 9 8 6 7 5 DNS responsable de «univlyon1.fr» DNS responsable de «iut.univ-lyon1.fr»
Exemple de fichiers de configuration du DNS (bind sous Linux) $TTL 604800 @ IN SOA mondomaine.com. root.mondomaine.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; mondomaine.com. IN NS ns.example.com. machine1.mondomaine.com. IN A 129.12.1.10 Machine2.monDomaine.com. IN A 129.168.17.3 www.mondomaine.com. IN CNAME machine1.mondomaine.com. ftp.mondomaine.com. IN CNAME machine1.mondomaine.com. IN MX 100 smtp.mondomaine.com. Correspondance nom - adresse Alias Adresse spéciale
Exercice Un client effectue une requête à son DNS local pour le nom www.iut.univ-lyon1.fr Quels sont les étapes de la résolution? On suppose maintenant que le DNS garde en cache les résolutions qu il a déjà effectué: Quels sont les étapes de la résolution pour le nom: www.google.com machine1.univ-lyon1.fr Quelles sont les informations minimales que doit conserver un serveur DNS responsable d un domaine?
Le mail 2. Mail (SMTP) Serveur SMTP local 4. Mail (SMTP) Serveur SMTP domaine.fr Serveur SMTP et POP 1. @ smtp.univ-lyon1.fr? Filtre spam antivirus 3. @ MX domaine.fr 5. Mail(POP) Mail pour toto@domaine.fr Serveur DNS local Protocole SMTP Protocole DNS Protocole POP
Détail du dialogue SMTP Serveur SMTP à qui le client à envoyer le mail (smtp.univ-lyon1.fr) 220 domaine.fr ready HELO univ-lyon1.fr 250 domaine.fr MAIL FROM titi@univ-lyon1.fr 250 MAIL FROM OK RCPT TO : toto@domaine.fr 250 RCPT TO OK DATA 354 Start mail ; end with.... 250 Mail accepted QUIT 221 domaine.fr closing Serveur SMTP de domaine.fr (le MX)
Détail du dialogue POP + OK pop serv starting @domaine.fr USER toto + OK password required from toto PASS mot_de_passe_de_toto Serveur SMTP de domaine.fr (le MX) et serveur POP + OK STAT + OK 3 900 DATA... DELE 3 + OK 3 message has been deleted QUIT + OK 3 pop server @domaine.fr signing off
Questions Pourquoi utilise-t-on des protocoles différents pour l émission des mails (SMTP) et la récupération des mails par le client mail (thunderbird/outlook/etc.).
Protocole http: hyper text transfer protocol Protocole normalisé par l IETF RFC 2616 (1999) Version 1.1 Codage ASCII Mode Requête - Réponse
Requête et réponse http Champs obligatoires: Type de requête Host Get / Put / Connect /etc. Nom du serveur web Champs non obligatoires Cookies Date User-agent Champs obligatoires: Type de la réponse 2xx: OK 3xx: redirection 4xx: erreur client 5xx: erreur serveur Champs non obligatoires Logiciel serveur Cachabilité La page web
Une page web GET http1.1 index.html Host: www.domaine.fr http1.1 200 OK Serveur web www.domaine.fr www.domaine.fr www.autre.fr Le navigateur parse (lit) la page web et liste les autres documents à télécharger GET http1.1 photo1.jpg Host: www.domaine.fr http1.1 200 OK
Redirection http Code 300 2 cas de figures: Cette page web a été déplacé Indique un nouvel URL au client Since modified since Permet de vérifier la validité du document stocké en cache
Erreurs http 2 types d erreurs Erreur 400 (erreur du client) Syntaxe de la requête Fichier qui n existe pas Etc. Erreur 500 (erreur du serveur) Problème de droit Problème de module (php, cgi, etc.)
Questions Qu est ce qu une page web statique? Qu est-ce qu une page dynamique? Quels sont les informations dont le serveur web dispose pour créer des pages web différentes pour le même URL? Quel est le code d erreur renvoyé par le serveur web si une image est mal encodée? Pourquoi ne peut-on pas utiliser ftp pour le transfert de page html? Comment fonctionne un webmail?