Réseaux INET - 2 INSA - 12.02.2009 1 Modèle de référence TCP/IP (INET) OSI INET Couche application Couche présentation Couche session absentes application telnet, http, ftp, dns, smtp, Couche transport transport TCP, UDP Couche réseau Internet IP Liaison des données Couche physique hôte au réseau 2 1
DNS Domain Name System système de noms de domaine Met en correspondance une adresse IP avec un nom www.insa-lyon.fr 134.214.76.63 Garanti l'unicité des noms sur le réseau Internet Espace de noms hiérarchique RFC 1034, 1035 3 Histoire Au début (1984) : un seul fichier Stanford Research Institute's Network Information Center (SRI-NIC) hosts.txt Nouveau nom -> ajouté dans le fichier Les administrateurs système mettent à jour le DNS (duplication du fichier central - ftp) Plus d ordinateurs connectés à l Internet -> difficultés Solution : base de données repartie 4 2
Organisation hiérarchique générique géographique racine, sans nom mil com edu org jp fr us cnn insa-lyon wanadoo <= 63 caractères if.insa-lyon.fr. <= 255 caractères if ge 5 Organisation hiérarchique - 2 Domaines génériques : com : commercial edu : éducation gov : gouvernement américain int : certains organisations internationales mil : forces armées américaines net : fournisseurs d accès org : organisations sans but lucratif Domaines géographiques : Conformément à la norme ISO 3166 (www.iso.org) Exemples : fr : France, dz : Algérie, bb : Barbados 6 3
Organisation hiérarchique - exemples www.cnn.com www.bbc.co.uk www.france2.fr www.mit.edu www.insa-lyon.fr www.asterix.tm.fr 7 Administration de noms Administration de noms : zones Zone : administrée par au moins deux serveurs primaire, secondaire (copie du primaire) mil com edu org jp fr us cnn insa-lyon univ-lyon1 if ge 134.214.104.10 134.214.100.6 8 4
Enregistrements dans un serveur DNS - Fichier base de données Paramètres de la zone (source primaire d informations, ) insa-lyon.fr 86400 IN SOA dns-server.insa-lyon.fr() 86400 = la durée de vie Adresse IP d un hôte if2233 86400 IN A 134.214.104.225 localhost 86400 IN A 127.0.0.1 Alias FTP CNAME FileServer1 Relais de messagerie best.insa-lyon.fr 86400 IN MX mail.best33.tm.fr Serveur pour le domaine insa-lyon.fr. 86400 IN NS dns.insa-lyon.fr 9 Exemple insa-lyon.fr. IN SOA dns-server1 () dns-server1 86400 IN A 134.214.100.11 dns-server2 86400 IN A 134.214.100.12 localhost 86400 IN A 127.0.0.1 web1 86400 IN CNAME atlas.insa-lyon.fr web2 86400 IN CNAME zeus.insa-lyon.fr web3 86400 IN CNAME hades.insa-lyon.fr insa-lyon.fr 86400 IN MX zeus.insa-lyon.fr atlas 86400 IN A 134.214.100.123 zeus 86400 IN A 134.214.100.124 hades 86400 IN A 134.214.100.125 insa-lyon.fr. 86400 IN NS zeus.insa-lyon.fr insa-lyon.fr. 86400 IN NS atlas.insa-lyon.fr 10 5
Initialisation d un serveur DNS Duplication des informations concernant les serveurs DNS racine ftp://rs.internic.net/domain/named.cache A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; formerly NS1.ISI.EDU. 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; formerly C.PSI.NET. 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; formerly TERP.UMD.EDU. 3600000 NS D.ROOT-SERVERS.NET. 11 Exemple (récursif) atlas.insa-lyon.fr www.google.com? 64.233.161.99 64.233.161.99 DNS insa-lyon.fr 134.214.104.10 www.google.com? A.ROOT-SERVERS.NET 198.41.0.4 64.233.161.99 www.google.com? DNS google.com. 12 6
Exemple (itératif) atlas.insa-lyon.fr www.google.com? 120.120.12.13 A.ROOT-SERVERS.NET 198.41.0.4 com Nameserver 120.120.12.13 google.com Nameserver 64.233.161.2 13 Utilisation réelle du DNS APP OS Client mail Navigateur Web DNS Resolver Cache Cache 14 7
Protocole DNS Utilise TCP et UDP TCP : pour dupliquer une base de données UDP : pour les requêtes DNS Si requête supérieure à 512 octets -> TCP Primitives C gethostbyname retrouve l IP gethostbyaddr retrouve le nom Sécurité? DNSSEC 15 Performance d un serveur DNS Pour une bonne performance : % occupation processeur < 80% espace disponible > 1MB % accès disque < 67% % utilisation réseau < 40% 16 8
Serveurs des noms - configuration Windows : Linux : /etc/resolv.conf 17 Utilitaire nslookup Interrogation de serveurs des noms. C:\>nslookup Serveur par défaut : ifhpserv.insa-lyon.fr Address: 134.214.104.10 > www.google.com Nom : www.google.akadns.net Adresses: 66.102.9.99, 66.102.9.104 Aliases: www.google.com > 134.214.104.12 Nom : ifpythie.insa-lyon.fr Adresse: 134.214.104.12 > 18 9
DHCP Dynamic Host Configuration Protocol Mécanisme permettant l allocation dynamique des adresses IP RFC 2132, 1541 IP? 19 Modèle de fonctionnement DHCPDISCOVER (UDP, broadcast) DHCPOFFER: IP (UDP, broadcast) DHCPREQUEST: IP (UDP, broadcast) DHCPACK: IP (UDP, broadcast) 20 10
Messages DHCP DHCPDISCOVER : localiser les serveurs DHCP disponibles DHCPOFFER : réponse du serveur à un paquet DHCPDISCOVER, contenant les premiers paramètres DHCPREQUEST : requête diverse du client pour, par exemple, prolonger son bail DHCPACK : réponse du serveur qui contient des paramètres et l'adresse IP du client DHCPNAK : réponse du serveur pour signaler au client que son bail est échu ou si le client annonce une mauvaise configuration réseau DHCPDECLINE : le client annonce au serveur que l'adresse est déjà utilisée DHCPRELEASE : le client libère son adresse IP DHCPINFORM : le client demande des paramètres locaux 21 FTP File Transfer Protocol Permet le transfert de fichiers d'une machine (serveur) vers une autre (client). Utilité : stockage de fichiers Utilisation directement par l utilisateur par d autres applications serveur ftp 22 11
Commandes get, mget put, mput lcd, cd bin, ascii quit, bye ls help 23 Modèle de fonctionnement Utilisateur interface Connexion de contrôle : toutes les commandes et les codes de retour (texte ASCII) Commandes client Commandes serveur Système de fichiers Transfert données Transfert données Système de fichiers Connexion de données : toutes les données (contenu de fichiers) 24 12
Modèle de fonctionnement commandes de contrôle Client codes de retour Serveur Commandes de contrôle Access : USER, PASS, CWD, QUIT Transfert : PORT, PASSV, MODE Service : STOR, RETR, LIST Chaque transfert : nouvelle connexion TCP 25 Exemple d utilisation Interface utilisateur ftp >open servername client ACK, SYN SYN serveur ACK ACK 26 13
Exemple d utilisation Interface utilisateur ftp >open servername Bienvenue sur le serveur FTP >user jc1234 client ACK serveur ACK 27 Exemple d utilisation Interface utilisateur ftp >open servername Bienvenue sur le serveur FTP >user jc1234 Password: adsre24 Login successful. > client ACK ACK serveur 28 14
Exemple d utilisation Le client 82.122.178.21 écoute sur le port 19*256+137 = 5001 Interface utilisateur ftp >open servername Bienvenue sur le serveur FTP >user jc1234 Password: adsre24 Login successful. >ls client ACK ACK serveur ACK 29 Exemple d utilisation Interface utilisateur >ls client SYN ACK, SYN ACK serveur ACK ACK ACK 30 15
Exemple d utilisation Interface utilisateur >bye client serveur ACK FIN ACK ACK ACK ; FIN 31 Compléments Navigateur Web : ftp://user:password@ftpserver/url-path Description détaillée : RFC 959 http://www.faqs.org/rfcs/rfc959.html 32 16
TELNET TELNET = protocole réseau telnet = logiciel qui utilise le protocole TELNET TELNET permet de connecter un client (système composé d'un affichage et d'un clavier) à un serveur (interpréteur de commandes) Caractères ASCII + caractères de contrôle TCP Client (interface pour commandes) Serveur (interpréteur de commandes) 33 TELNET Port 23 Données et contrôle sur la même connexion TCP Network Virtual Terminal (NVT) Représentation virtuelle d un terminal générique (clavier standard, taille d écran standard, etc.) Négociation des options entre le client et le serveur (jeu des caractères, mode ligne ou caractère, etc.) 34 17
Commandes TELNET Le caractère avec le code 255 signale une commande (IAC, Interpret As Command) Commandes : 247 (EL, Erase Line) 246 (EC, Erase Character) 243 (IP, Interrupt Process) 35 Exemple Z:\users>telnet if-4433.insa-lyon.fr Login: SP1321 Password: ******** *=============================================================== Bienvenue à Microsoft Telnet Server. *=============================================================== C:\>netstat Connexions actives Proto Adresse locale Adresse distante Etat TCP if-4433:telnet localhost:4342 TIME_WAIT TCP if-4433:telnet localhost:4352 ESTABLISHED TCP if-4433:4352 localhost:telnet ESTABLISHED TCP if-4433:4143 servif-baie.insa-lyon.fr:microsoft-ds ESTABLISH ED TCP if-4433:4145 cs27.msg.dcn.yahoo.com:5050 ESTABLISHED TCP if-4433:4146 baym-cs17.msgr.hotmail.com:1863 ESTABLISHED TCP if-4433:4170 servif-impr.insa-lyon.fr:netbios -ssn ESTABLISHE D TCP if-4433:4306 csiges9.insa-lyon.fr:993 ESTABLISHED C:\>exit Perte de la connexion à l'hôte. Z:\users> 36 18
Aspects concernant l utilisation du protocole TELNET Beaucoup des serveurs TCP ne parlent pas TELNET telnet peut être utilisé, mais pas de commandes de contrôle Exemple : telnet www.wanadoo.fr 80 Informations envoyées en clair Nom d utilisateur + mot de passe 37 SSH Secure Shell Alternative à TELNET Protocole permettant une communication sécurisée entre le client et le serveur - les données sont cryptées Port 22 38 19
HTTP HyperText Transfer Protocol Le protocole de communication standard pour le Web Deux versions utilisées : http 1.0 http 1.1 Références : HTTP 1.0 : http://www.faqs.org/rfcs/rfc1945.html HTTP 1.1 : http://www.faqs.org/rfcs/rfc2616.html 39 Modèle de fonctionnement Client HTTP (Navigateur Web) requête Serveur HTTP (serveur Web) réponse Transport (d habitude TCP) HTTP 1.0 : une requête/réponse par connexion HTTP 1.1 : plusieurs 40 20
Requête HTTP format général Ligne de requête Champs d en-tête (plusieurs lignes) Texte ASCII Lignes séparées avec : "\r\n" Ligne blanche (CRLF, "\r\n") Corps de la requête Peut être vide 41 La ligne de requête Méthode URI protocole CRLF Protocole : HTTP/1.0 HTTP/1.1 Méthode : GET : Requête de la ressource HEAD : Requête de l'en-tête de la ressource POST : Envoi de données à un programme PUT : Envoi de données à l'url spécifié DELETE : Suppression de la ressource 42 21
URI Uniform Ressource Identifier RFC 2396 : http://www.faqs.org/rfcs/rfc2386.html URI absolu : protocol://hostname[:port]/path Exemple : http://www.reuters.com/index.htm http://www.google.com:8080/api/test.htm URI relatif : /path Exemple : /cours/index.html 43 Requête HTTP champs d en-tête Accept : type de contenu accepté par le navigateur Content-Length : Taille en octets du corps de la requête User-Agent : Des informations sur le client : le nom et la version du navigateur, le système d'exploitation 44 22
Requête HTTP - exemple GET /index.htm HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/xshockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Accept-Language: fr Accept-Encoding: gzip User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322;.NET CLR 1.0.3705) Host: www.reuters.com Connection: Keep-Alive 45 Réponse HTTP Ligne d état En-tête (plusieurs lignes) Texte ASCII Lignes séparées avec : "\r\n" Ligne blanche (CRLF, "\r\n") Contenu Peut être vide 46 23
La ligne d état HTTP-version Status-Code Message HTTP-version : HTTP/1.0 HTTP/1.1 Status-Code : 3 chiffres Message : texte ASCII Exemple : HTTP/1.0 200 OK HTTP/1.0 500 Internal Server Error 47 Réponse HTTP - exemple HTTP/1.1 200 OK Server: Netscape-Enterprise/4.1 Date: Mon, 15 Nov 2004 10:42:39 GMT Content-type: text/html Content-Length: 1234 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <link rel="stylesheet" href="reuters.css" TYPE="text/css"> <link rel="stylesheet" href="reuterstables.css" TYPE="text/css"> <SCRIPT LANGUAGE="JavaScript" SRC="/utilities.js"></script> 48 24
Modèle de communication HTTP 1.0 Chaque site Web : plusieurs fichiers -> Problème de performance Pour chaque requête : -Réaliser une connexion TCP -Envoyer la requête -Recevoir la réponse -Libérer la connexion HTTP 1.1 Réaliser une connexion TCP Pour chaque requête : Performances HTTP1.1 vs HTTP1.0 -Envoyer la requête -Recevoir la réponse HTTP1.1 >> HTTP1.0 Libérer la connexion 49 Serveur HTTP Proxy Fonctionnalités : Cache : garde en mémoire les pages les plus souvent visitées Filtrage, suivi de connexions Client HTTP Serveur proxy HTTP Serveur HTTP 50 25
Serveurs Web - statistiques Source : www.netcraft.com 51 Serveurs Web - statistiques Source : www.netcraft.com 52 26
Serveurs Web - discussion Performance IP TCP HTTP Sécurité Protocole HTTPS Déni de service (DoS) 53 HTTP Tunneling Restrictions dans les réseaux actuels Firewall, NAT, Utilisation du HTTP comme support pour d autres protocoles («interdites») 54 27
REST (Representational state transfer) Architecture à la base du Web URI : l adresse de la ressource HTTP : les opérations nécessaires (GET, PUT, POST, DELETE) Chaque opération est autosuffisante pas d état Utilisation de standards hypermédia (HTML, XML, YAML) 55 RPC / REST getuser() adduser() removeuser() updateuser() listusers() http://example.com/users/ http://example.com/users/{user} http://example.com/finduserform finduser() 56 28
«Killer apps» / HTTP / REST 57 SMTP Simple Mail Transfer Protocol Protocole permettant le transfert du courrier électronique Agent utilisateur (UA) : permet à l utilisateur de lire et d écrire des messages. Outlook, Eudora, Netscape Agent de transfert (MTA) : réalise le transfert d un message entre la source et la destination. Port 25 (SMTPS = port 465) 58 29
SMTP Commands HELO MAIL RCPT DATA QUIT 220 carex.univ-lyon2.fr ESMTP Postfix HELO test.univ-lyon2.fr 250 carex.univ-lyon2.fr MAIL From: test@test.fr 250 Ok RCPT To: vscuturi@eric.univ-lyon2.fr 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> Message. 250 Ok: queued as 3E1B523CCAD QUIT 221 Bye 59 SMTP principe de fonctionnement Utilisateur Utilisateur UA MTA SMTP MTA SMTP MTA UA Adresse : username@domainname Agent utilisateur (UA) : permet à l utilisateur de lire et d écrire des messages. Agent de transfert de message (MTA) : stockage de messages émission de messages 60 30
SMTP principe de fonctionnement Utilisateur À: xyz@if.insa-lyon.fr msg MX if.insa-lyon.fr? DNS Utilisateur UA MTA MX = mail.insa-lyon.fr MTA UA msg msg SMTP msg SMTP MTA mail.insa-lyon.fr SMTP msg MTA mail.if.insa-lyon.fr 61 Exemple Received: from mail.insa-lyon.fr ([unix socket]) by csiges9.insa-lyon.fr (Cyrus v2.1.16); Mon, 22 Nov 2004 19:08:45 +0100 Received: from backup5srv1.tech.aau.edu.et (unknown [213.55.95.10]) by csiges9.insa-lyon.fr (Postfix) with ESMTP id 1AA344FB21; Mon, 22 Nov 2004 19:07:54 +0100 (CET) Received: from Room233 (unknown [10.4.13.17]) by backup5srv1.tech.aau.edu.et (Postfix) with SMTP id 2B42A38251; Mon, 22 Nov 2004 14:57:37-0300 (GMT) From: "Dawit Bekele" <dawit@math.aau.edu.et> To: "Vasile-Marian SCUTURICI" <Marian.Scuturici@insa-lyon.fr> Subject: Advising Addis Ababa University student Date: Mon, 22 Nov 2004 21:02:27 +0300 mail.insa-lyon.fr room233.tech.aau.edu.et backup5srv1.tech.aau.edu.et 62 31
SMTP en-tête d un message En-tête To: Marian.Scuturici@insa-lyon.fr Cc: Jean-Marc.Pierson@insa-lyon.fr Bcc: Lionel.Brunie@insa-lyon.fr From: a@aaa.com Reply-to: b@aaa.com User-Agent: Mozilla/5.0 Return-Path: Date: Subject: 63 SMTP contenu d un message Problèmes : Texte avec accents (fr) Alphabets autres que latins (ru, gr) Texte sans alphabet (cn, jp) Messages sans texte (vidéo, image) MIME : Multipurpose Internet Mail Extensions 64 32
MIME extensions d en-tête MIME-Version: 1.0 Content-Description: Content-Id: Content-Transfer-Encoding: ASCII base64 Content-Type: type/sous-type video/mpeg image/jpeg text/richtext multipart/mixed 65 From: Jerry Peek <jpeek@jpeek.com> To: mh-users@ics.uci.edu Subject: New edition of "MH & xmh" covers MIME and mh-e MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa0" Content-ID: <1283.780402430.1@ora.com> ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <1283.780402430.2@ora.com> We've just released the new third edition of "MH & xmh: Email for Users & Programmers." Changes include: - MIME (Multimedia) mail - The popular mh-e GNU Emacs front-end to MH...omitted... 66 33
------- =_aaaaaaaaaa0 Content-Type: application/postscript Content-ID: <1283.780402430.4@ora.com> Content-Transfer-Encoding: quoted-printable %!PS-Adobe-3.0 %%Creator: groff version 1.09...omitted... %%Trailer end %%EOF ------- =_aaaaaaaaaa0-- 67 Accès nomade Utilisateur Utilisateur UA UA MTA SMTP MTA SMTP MTA Serveur POP POP Post Office Protocol Recevoir les messages de la part d un MTU Vérifier l arrivée des nouveaux messages IMAP Internet Message Transfer Protocol POP + Transfert d en-tête Gestion avancée des messages Boite à lettre Serveur mail 68 34