890 likes | 1.11k Views
La couche Applicatiopn. Applications sur Internet. 10. SERVICES DE TÉLÉMATIQUE. Il existe plusieurs applications et leurs protocoles sur Internet: Transfert de fichiers: FTP Connexions à distance: TELNET Courrier électronique: SMTP. Serveurs d’informations: HTTP,…
E N D
Applications sur Internet 10. SERVICES DE TÉLÉMATIQUE • Il existe plusieurs applications et leurs protocoles sur Internet: • Transfert de fichiers: FTP • Connexions à distance: TELNET • Courrier électronique: SMTP. • Serveurs d’informations: HTTP,… • Annuaires électroniques: DNS, • Service de sessions multimédia: SIP • Toutes ces applications sont basées sur le modèle Client/Serveur
Les numéros de port • Les numéros de port sont sur 16 bits • Intervalles de valeurs: • 0 – 65535 • 0 - 1023 : numéros standard (well-known): • 20 FTP (Données) • 21 FTP (Contrôle) • 22 SSH • 23 Telnet • 25 Simple Mail Transfer Protocol • 1024 - 49151 : enregistrés pour des services spécifiques (IANA) ou par des programmeurs. • 49152–65535 : ports dynamiques pour allocation temporaire par le système d’exploitation.
FTP • File Transfer Protocole est un protocole de transfert de fichiers. • Nécessite une procédure d'authentification sauf si un compte Anonymous a été créé. • On peut seulement échanger des fichiers et non modifier leurs attributs.
Connexions FTP • Deux connexions sont ouvertes en parallèle: • Contrôle (ou commandes) et Données. • Fonctions de contrôle: • Des requêtes et réponses de contrôle sont échangées sur la connexion de contrôle (Port 21) • Fonctions de transfert de données • Échangées sur la connexion de données (Port 20) • La connexion de contrôle reste ouverte pendant les opérations de transfert des données.
Quelques commandes de contrôle • Contrôle d'accès: • USER spécifie l'user • PASS spécifie le mot de passe • CWD change de répertoire • QUIT déconnexion • Paramètres de transfert: • PORT spécifie le port local pour les données • TYPE spécifie la représentation des données • MODE spécifie le mode de transfert (binary, ascii) • Commandes de service: • RETR télécharge un fichier • STOR envoie de fichier • PWD imprime le répertoire courant • LIST transfère la liste de fichiers
Gestion des numéros de port • Le serveur gère les numéros de port du client à travers la connexion de contrôle: • Deux numéros sont fournis : n et p. • Le numéro de port du client est : nx256 + p. • Ex: 4x256+150= 1174
Procédure de connexion • Le client envoie une commande qui ouvre une connexion de données (ex. get, put , ls,…) • Le client choisit un numéro de port éphémère et fait une demande d’ouverture de connexion sur ce port. Il envoie ce numéro de port sur la connexion de contrôle • Le serveur fait une demande de connexion sur ce numéro de port auprès du client. Le serveur utilise le port 20 pour son côté de cette connexion.
Session FTP - Exemple #ftp rascal.ics.utexas.edu Connected to rascal.ics.utexas.edu. 220 rascal FTP server (SunOS 4.1) ready. Name (rascal.ics.utexas.edu:obaid): anonymous 331 Guest login ok, send ident as password. Password: 230 Guest login ok, access restrictions apply. ftp> cd /misc/av 250 CWD command successful. ftp> dir 200 PORT command successful. 150 ASCII data connection for /bin/ls (132.213.1.13,1645) (0 bytes). total 26 -rw-rw-r-- 1 67 100 233 Apr 19 14:09 README.121292 -rw-rw-r-- 1 67 100 2035 Apr 19 14:11 README.FTP .......... drwxrwxr-x 2 67 100 512 Mar 24 1993 humor-folder ..... drwxrwxr-x 9 67 120 512 Aug 21 1993 simulator-folder drwxrwxr-x 2 19 120 512 Jun 4 17:57 texas-flyers drwxrwxr-x 2 67 120 512 Oct 12 19:90 weather-services folder 226 ASCII Transfer complete. 1832 bytes received in 2.7 seconds (0.65 Kbytes/s) ....
Session FTP - Exemple #ftp> open saturne.info.uqam.ca Connected to saturne.info.uqam.ca. 220 saturne FTP server (OSF/1 Version 5.60) ready. Name (saturne.info.uqam.ca:p32224): obaid 331 Password required for obaid. Password: xxxxxxxx 230 User obaid logged in. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (132.208.26.13, 3369). total 1855 -rwxr-xr-x 1 obaid prof 1499 Oct 3 2007 .cshrc -rwxr-xr-x 1 obaid prof 1669 Oct 3 2007 .login ... drwxr-xr-x 2 obaid prof 512 Mar 10 17:37 PS drwxr-xr-x 2 obaid prof 512 Mar 9 10:50 Papiers ... 226 Transfer complete.
Session FTP - Exemple #ftp -d saturne.info.uqam.ca Connected to saturne.info.uqam.ca. 220 saturne FTP server (OSF/1 Version 5.60) ready. Name (saturne.info.uqam.ca:p32224): obaid ---> USER obaid 331 Password required for obaid. Password: xxxxxxx ---> PASS ??????? 230 User obaid logged in. ftp> dir ---> PORT 132,208,26,13,14,201 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for /bin/ls (132.208.26.13,3785). total 1855 -rwxr-xr-x 1 obaid prof 1499 Oct 3 2007 .cshrc -rwxr-xr-x 1 obaid prof 1669 Oct 3 2007 .login … 226 Transfer complete.
Session FTP - Exemple ftp> ls ---> PORT 132,208,26,13,14,204 200 PORT command successful. ---> NLST 150 Opening ASCII mode data connection for file list (132.208.26.13,3788). .login SNMP ... 226 Transfer complete. ftp> binary ---> TYPE I 200 Type set to I.
Protocoles de transfert de courriel • SMTP : Simple Mail Transfer Protocol • Protocole d'échange de messages électroniques • POP : Post Office Protocol • Protocole de téléchargement des messages électroniques • IMAP: Internet Message Access Protocol • Protocole d'accès aux messages • Garde les message sur le serveur de courriel
Architecture SMTP • SMTP est utilisé pour échanger des messages entre serveurs de courriel. • Éléments : • User agent (UA): logiciel de courriel • Mail Transfer Agent (MTA): serveur de courriel • Mail exchanger (MX): machine qui se charge du courriel pour un domaine donné.
Protocole SMTP • Basé du le modèle Client/serveur: • Client: émetteur SMTP • Serveur: récepteur SMTP • Dialogue alternant (dans un ordre précis): • Le client émet des commandes et le serveur répond avec un message d'état. • Les messages sont en ASCII • On doit convertir les données binaires en ASCII en utilisant un codage tel que Unicode, Base64,…
Commandes SMTP • HELO : • identifie (domaine de) l'émetteur • MAIL FROM: • débute une transaction et identifie l'expéditeur • RCPT TO: • identifie le récepteur. Il peut y avoir plusieurs RCPT TO:. • DATA: • pour envoyer une série de lignes (chacune se terminant par \r\n). • Une ligne contenant seulement un point (".") termine le message. • Autres …
Session SMTP - Exemple # telnet zeta.labunix.uqam.ca 25 Trying 132.208.132.48... Connected to zeta.labunix.uqam.ca. Escape character is '^]'. 220 zeta.labunix.uqam.ca ESMTP Sendmail 8.13.8+Sun/8.13.8; Fri, 7 Dec 2012 15:25:43 -0500 (EST) HELO zeta.labunix.uqam.ca 250 zeta.labunix.uqam.ca Hello zeta.labunix.uqam.ca [132.208.132.48], pleased to meet you MAIL FROM: obaid@zeta.labunix.uqam.ca 250 2.1.0 obaid@zeta.labunix.uqam.ca... Sender ok RCPT TO: obaid.abdel@gmail.com^ 250 2.1.5 obaid.abdel@gmail.com... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Bonjour Abdel Comment ca va ? . quit DATA
En-têtes courriel • Les messages contiennent plusieurs en-têtes. Certains sont créés par l'UA et d'autres sont ajoutés par le MTA • Chaque MTA ajoute au moins un en-tête Received:. Quelques-uns de ces en-têtes sont lus par les MTA's intermédiaires, mais les contenus des messages sont relayés sans changement.
Exemple de message Microsoft Mail Internet Headers Version 2.0 Received: from anis.telecom.uqam.ca ([132.208.250.6]) by brooks.dinfo.uqam.ca .. Fri, 27 Jun 2008 05:06:50 -0400 Received: from anis.telecom.uqam.ca (anis.telecom.uqam.ca [132.208.250.6]) by sortant.uqam.ca (8.13.8/8.12.1) with SMTP id m5R95qVf004596; Fri, 27 Jun 2008 05:05:52 -0400 (EDT) Received: from antivirus.uqam.ca ([127.0.0.1]) by anis.telecom.uqam.ca (SAVSMTP 3.1.1.32) with SMTP id M2008062705055118403 ; Fri, 27 Jun 2008 05:05:51 -0400 Received: from brooks.dinfo.uqam.ca ([132.208.137.97]) by intrant.uqam.ca (8.13.8/8.12.2/uqam-filtres) .. Fri, 27 Jun 2008 05:05:44 -0400 (EDT) … MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Fri, 27 Jun 2008 05:04:18 -0400 Message-ID: <E8E7C81FED65ED4092D11F71BC761B889BE678@brooks.dinfo.uqam.ca> From: "Abdellatif Obaid" <obaid.abdellatif@uqam.ca> To: "Teodor Stefan Onea" <onea.teodor_stefan@courrier.uqam.ca>, <obaid.abdel@uqam.ca> Cc: <082-INF3270-010@uqam.ca> Return-Path: obaid.abdellatif@uqam.ca Bonjour Je donne une extension d'une semaine pour la remise du TP 2 ….
POP • Pour le transfert de courriel vers un client (authentifié) • Le serveur POP est un service sur le port 110. • Les commandes et les réponses sont en lignes ASCII.
Commandes POP • USER : spécifie un usager. • PASS : spécifie un mot de passe. • STAT : retourne le nombre de messages dans la boite. • LIST: retourne la liste des messages et leurs tailles. • RETR : récupère un message. • DELE : marque les messages à détruire. • RSET: efface les marques. • TOP : récupère les en-têtes des messages, • QUIT : détruit les message marqués et ferme la connexion. • …
Session POP - Exemple telnet arabica.info.uqam.ca 110 Trying 132.208.132.189... Connected to arabica.info.uqam.ca. Escape character is '^]'. +OK POP3 arabica.info.uqam.ca v7.59 server ready user obaid +OK User name accepted, password please pass ********** +OK Mailbox open, 453 messages stat +OK 453 3732870 list +OK Mailbox scan listing follows 1 494 … retr 1 +OK 494 octets Received: by saturne.info.uqam.ca; id AA07595; Fri, 7 Mar 1997 05:07:16 -0500 … .
Telnet • Application de connexion à distance basée sur un terminal de fonctionnalité minimale : NVT (Network Virtual Terminal). • Utilise les services de TCP/IP. • Permet à un usager de communiquer de façon interactive avec une application à partir d'un terminal • Les caractères entrés sont envoyés au serveur et les données reçues sont affichées sur l'écran du client. Le caractère de fin de ligne est \r\n.
Terminal virtuel • Développé afin de résoudre le problème d'inter-fonctionnement entre les terminaux et les ordinateurs dans un environnement hétérogène.
Fonctionnement de NVT • NVT est un ensemble de: • Commandes et de réponses en ASCII. • Options (de dialogues et de comportements des terminaux) qui peuvent être négociées et redéfinies à tout moment. • Commandes/réponses: • Un caractère (parmi 128) en code ASCII • Le caractère IAC (255) définit une commande
Commandes et réponses • Fonctions de contrôle : • Erase line (EL): Effacement de ligne. • Erase character (EC): le dernier caractère transmis doit être effacé. • Are you There (AYT): Envoyé au serveur pour savoir s’il est toujours actif • … • Entrée/affichage des données
Commandes Telnet Abréviation Description Code IAC Début d'une commande 255 WILL/WONT/DO/DONT Option de négociation 251/../254 EC (Erase Caracter) Efface un caractère 247 EL (Erase line) Efface une ligne 248 BRK (break) Arrêt 243 IP (Interupt process) Interruption de processus 244 AO (Abord output) Arrête l'output 245 AYT (are you there) Êtes-vous là 246 GA (Go ahead) Allez y 249 DM (Data Mark) Signal de synchro 242 NOP (No Opération) Pas d'opération 241 SB/SE Débuter/arrêter sous options 250/240
Les options Telnet • Les options de base: • binary, echo, supress go ahead, status, timing mark • Autres options peuvent être négociées • Le format de négociation • IAC <Action> <Numéro de l’option> • L'action peut être: • WILL : l’émetteur veut activer l’option lui-même • WONT: l’émetteur veut désactiver l’option lui-même • DO: l’émetteur veut que le récepteur active l’option • DONT: l’émetteur veut que le récepteur désactive l’option
Négociation des options (2) WILL Émetteur veut activer une option DO Récepteur dit OK WILL Émetteur veut activer une option DONT Récepteur dit NON DO Émetteur veut que le récepteur active une option WILL Récepteur dit OK DO Émetteur veut que le récepteur active une option WONT Récepteur dit NON WONT Émetteur veut désactiver une option DONT Récepteur dit OK DONT Émetteur veut que le récepteur désactive une option WONT Récepteur dit NON
Négociation - Exemples • Exemple 1: • Le client demande au serveur de ne plus envoyer d’échos. Le serveur répond qu’il élimine l’écho. Maintenant le client pourrait faire son écho localement • Exemple 2: • Le client demande la négociation du terminal. Le serveur accepte et demande au client de soumettre son type de terminal. Le client envoie son type de terminal
Session Telnet - Exemple % telnet telnet> toggle options Will show option processing. telnet> open saturne.info.uqam.ca Trying... Connected to arabica.info.uqam.ca. Escape character is '^]'. SEND do ECHO SEND do SUPPRESS GO AHEAD Négociation du mode caractère SEND will TERMINAL TYPE Envoi du type de terminal SEND will NEGOTIATE WINDOW SIZE Négociation de la taille de la fenêtre RCVD do TERMINAL TYPE Envoi du type de terminal RCVD do 32 Négociation de vitesse SEND wont 32 Refus de la négociation de vitesse RCVD do 36 Négociation de variables d’env. SEND wont 36 Refus de négociation ... RCVD will ECHO Le serveur fera l'écho RCVD will SUPPRESS GO AHEAD Le serveur accepte le mode RCVD do NEGOTIATE WINDOW SIZE Négocier la taille de la fenêtre SEND suboption TELOPT_NAWS Width 0, Height 0 Donner les sous options RCVD suboption TELOPT_TTYPE SEND Demande au client son terminal SEND suboption TELOPT_TTYPE vt100 Envoi du type de terminal RCVD will STATUS SEND dont STATUS OSF/1 (saturne) (ttyp1) login: obaid password: *******
Le DNS • Les DNS (Domain Name System) est un système de répertoire sur Internet • Il permet de traduire des Noms de domaine en adresses IP et inversement • C'est un système réparti
Systèmes de répertoire • A chaque système, on associe un nom de domaine (ex. arabica.info.uqam.ca) • La correspondance se fait dans un répertoire appelé Base de données du DNS. • Deux types de répertoires: • Fichier local (ex. /etc/hosts) • Un système de répertoires répartis servi par des serveurs de noms (ex. named)
Architecture du DNS Secondaires Client Serveur DNS Serveur DNS Resolver Secondaire Primaire Serveur DNS Serveur DNS Serveur DNS Primaire Secondaire BD du DNS Serveur DNS Zone Zone Zone
Espace des noms • Un nom de domaine est constitué d'une suite d'étiquettes séparées par des points. • Exemples: • arabica.info.uqam.ca • www.google.com • Chaque étiquette correspond à un domaine dans une hiérarchie de noms.
Hiérarchie de noms . net … edu com ca uk ... uqam udem mcgill Nom de domaine: arabica.info.uqam.ca info arabica
Domaines de haut niveau • Appelés Top-level domain names • Les noms tels que: .edu, .gov, .com, .net, .org, .mil • Chaque pays a un nom de domaine (formé de 2 lettres): .ca, .fr, .br, .ch, … • De nouveaux domaines ont été introduits: .aero, .biz .coop, .info, .name, .pro, … • Descendent directement du domaine de nom racine "." (root): • Ce domaine possède plusieurs serveurs !
Les serveurs racine • Il existe plusieurs serveurs du domaine root: l.root-servers.net 198.32.64.12 m.root-servers.net 202.12.27.33 a.root-servers.net 198.41.0.4 b.root-servers.net 128.9.0.107 c.root-servers.net 192.33.4.12 d.root-servers.net 128.8.10.90 e.root-servers.net 192.203.230.10 f.root-servers.net 192.5.5.241 g.root-servers.net 192.112.36.4 h.root-servers.net 128.63.2.53 i.root-servers.net 192.36.148.17 j.root-servers.net 192.58.128.30 k.root-servers.net 193.0.14.129
Administration d'une zone • Une zone est un regroupement de systèmes administrés séparément. • Une zone peut être subdivisée en sous-zones. • La responsabilité d'une zone est déléguée à une autorité chargée de la gérer en : • Donnant l'adresse IP du serveur de cette zone • Maintenant la base de données de la zone
Les zones et leurs serveurs Serveur . . (racine) edu com net ca Serveur ca Zone ca Sous-zone uqam uqam udem Serveur uqam.ca Sous-zone info iro info Serveur info.uqam.ca
Composantes du DNS • Le serveur qui répond aux requêtes de traduction (Résolution) • Une base de données répartie contentant les noms et les adresses IP correspondantes. • Le Resolver qui est un module du client qui émet des requêtes de résolution et reçoit des réponses.
Modèle du DNS Cache Ajout Recherche BD Serveur distant Requête Réponse Requête BD Requête Serveur de noms Resolver Usager Réponse Réponse Recherche Ajout Ajout Recherche Cache Cache
Les clients DNS • Un client DNS est appelé Resolver. • La fonction gethostbyname()fait appel auresolver • Dans Unix, le fichier /etc/resolv.conf contient le nom du domaine local est les adresses des serveurs à utiliser pour ce domaine
Le serveur DNS • Géré par un processus démon appelé named (ou bind) • Se charge de répondre aux requêtes de son domaine • Achemine des requêtes à d'autres domaines en contactant des serveurs distants • Stocke en mémoire cache les traductions externes effectuées. Il peut les utiliser plus tard.
Base de données du DNS • Contient plusieurs types de ressources : • Enregistrements d'association nom-adresse IP (A) • Adresses de serveurs (NS) • Alias de noms de machines (CNAME) • Relais de messagerie électronique (MX) • Informations sur les machines (HINFO) • Ces données sont stockées sous forme d'enregistrements de ressources (Ressource Records ou RR)
Exemple de BD de zone @ N SOA terre.univers.ca. abdel.terre.univers.ca. ( 16 ; numero de serie 86400 ; rafraichissement 3600 ; tentatives : 360000 ; expiration 604800 ; minimum ) IN NS terre.univers.c IN NS ailleurs.univers.c IN MX 10 terre.univers.c IN MX 20 lune.univers.c localhost IN A 172.0.0.1 terre IN A 128.66.12.1 jupiter IN A 128.66.12.4 jup IN CNAME jupiter www IN CNAME saturne news IN CNAME jupiter
Fonctionnement du serveur • Si un serveur ne peut pas effectuer la résolution lui-même, il demande à un serveur racine. • Le serveur racine lui fournit l'adresse d'un serveur à contacter pour un domaine donné • Un requête peut donc passer par plusieurs étapes (sous-requêtes) de deux manières: • itérative: le serveur d'origine fait le suivi • récursive: un autre serveur fait le suivi