INF4032 Réseaux Informatiques 2024-2025 Cours ESIEA

Summary

Ce document est un ensemble de diapositives portant sur les réseaux informatiques, plus précisément la couche application, le protocole HTTP et les protocoles connexes comme le DNS (Domain Name System) et le FTP (File Transfer Protocol). Basé sur les diapositives de Jim Kurose et Keith Ross (Pearson, 2020) et des notes de l'ESIEA.

Full Transcript

INF4032 Réseaux Informatiques Bassem Haidar 2024- 2025 Couche Application Chapter 02 Références Les diapositives sont basées sur les : – Jim Kurose, Keith Ross Slides for the Computer Networking: A Top-Down Approach, 8th edition...

INF4032 Réseaux Informatiques Bassem Haidar 2024- 2025 Couche Application Chapter 02 Références Les diapositives sont basées sur les : – Jim Kurose, Keith Ross Slides for the Computer Networking: A Top-Down Approach, 8th edition, Pearson, 2020 – Cisco Networking Academy Program, Routing and Switching Essentials v6.0 3 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 4 Introduction Couche application - permet à l'utilisateur de s'interfacer avec le réseau ! 5 Modèle OSI et modèle TCP/IP Couche application - Fournit l'interface entre les applications à chaque extrémité du réseau. 6 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 7 Web et HTTP la page Web se compose d'objets l'objet peut être un fichier HTML, une image JPEG, une applet Java, un fichier audio,… la page Web se compose d'un fichier HTML de base qui comprend plusieurs objets référencés chaque objet est adressable par une URL, par exemple, www.someschool.edu/someDept/pic.gif host name path name Présentation HTTP HTTP : protocole de transfert hypertexte Protocole de couche application PC running du Web Firefox browser modèle client/serveur – client : navigateur qui demande, reçoit, (en utilisant le protocole server HTTP) et « affiche » des objets running Web Apache Web – serveur : le serveur Web envoie server (en utilisant le protocole HTTP) des objets en réponse aux iPhone running requêtes Safari browser HTTP overview (continued) utilise TCP : HTTP est « sans état » le client initie la connexion TCP le serveur ne conserve aucune (crée un socket) au serveur, port 80 information sur les demandes le serveur accepte la connexion passées des clients TCP du client aside les protocoles qui maintiennent Messages HTTP (messages de « l'état » sont complexes ! protocole de couche application) l'histoire passée (état) doit être échangés entre le navigateur maintenue (client HTTP) et le serveur Web si le serveur/client tombe en panne, leurs points de vue sur (serveur HTTP) « l'état » peuvent être Connexion TCP fermée incohérents. Connexions HTTP HTTP non persistant HTTP persistant au plus un objet envoyé via plusieurs objets peuvent être une connexion TCP envoyés via une seule – connexion puis fermée connexion TCP entre le client, le téléchargement de plusieurs le serveur objets nécessite plusieurs connexions HTTP non persistant supposons que l'utilisateur entre l'URL : (contient du texte, www.someSchool.edu/someDepartment/home.index références à 10 images jpeg) 1a. Le client HTTP initie la connexion TCP au serveur 1b. Serveur HTTP sur l'hôte HTTP (processus) sur www.someSchool.edu en www.someSchool.edu sur le attente d'une connexion TCP port 80a au port 80. « accepte » la 2. Le client HTTP envoie un connexion, notifiant le client message de requête HTTP (contenant l'URL) dans le 3. Le serveur HTTP reçoit un socket de connexion TCP. Le message de demande, forme message indique que le client un message de réponse veut l'objet contenant l'objet demandé et someDepartment/home.index envoie un message dans son temps socket HTTP non persistant (suite) 4. Le serveur HTTP ferme la connexion TCP. 5. Le client HTTP reçoit un message de réponse contenant un fichier html, affiche html. Analyse du fichier html, trouve 10 objets jpeg référencés temps 6. Étapes 1 à 5 répétées pour chacun des 10 objets jpeg HTTP non persistant : temps de réponse RTT (définition) : temps nécessaire à un petit paquet pour voyager du client au serveur et vice-versa initiate TCP Temps de réponse HTTP : connection RTT – un RTT pour initier la connexion TCP request file – un RTT pour la requête HTTP et time to RTT les premiers octets de la réponse transmit HTTP à renvoyer file file – temps de transmission du fichier received temps de réponse HTTP non persistant = Temps de time time transmission du fichier 2RTT+ 2- Persistent HTTP problèmes HTTP non HTTP persistant : persistants : le serveur laisse la connexion nécessite 2 RTT par objet ouverte après l'envoi de la réponse Surcharge du système messages HTTP suivants entre le d'exploitation pour chaque même client/serveur envoyés via connexion TCP une connexion ouverte les navigateurs ouvrent le client envoie des requêtes dès souvent des connexions TCP qu'il rencontre un objet référencé parallèles pour récupérer les aussi peu qu'un RTT pour tous les objets référencés objets référencés Message de requête HTTP deux types de messages HTTP : requête, réponse Message de requête HTTP : – ASCII (human-readable format) carriage return character line-feed character request line (GET, POST, GET /index.html HTTP/1.1\r\n HEAD commands) Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n header Accept-Language: en-us,en;q=0.5\r\n lines Accept-Encoding: gzip,deflate\r\n carriage return, Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n line feed at start Keep-Alive: 115\r\n Connection: keep-alive\r\n of line indicates \r\n end of header lines * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Message de requête HTTP : format général method sp URL sp version cr lf request line header field name value cr lf header ~ ~ ~ ~ lines header field name value cr lf cr lf ~ ~ entity body ~ ~ body Uploading form input POST method: URL method: la page Web comprend utilise la méthode GET souvent une entrée de l'entrée est téléchargée dans formulaire le champ URL de la ligne de l'entrée est téléchargée sur le demande : serveur dans le corps de l'entité www.somesite.com/animalsearch?monkeys&banana Application Layer 2-18 Types de méthode HTTP/1.0: HTTP/1.1: GET GET, POST, HEAD POST PUT HEAD – uploads file in entity – asks server to leave body to path specified requested object out in URL field of response DELETE – deletes file specified in the URL field 2-19 Message de réponse HTTP status line (protocol status code HTTP/1.1 200 OK\r\n status phrase) Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n header ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n lines Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO-8859- 1\r\n data, e.g., \r\n requested data data data data data... HTML file * Check out the online interactive exercises for more Application Layer examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ 2-20 Codes d'état de réponse HTTP le code d'état apparaît sur la 1ère ligne dans le message de réponse serveur-client. quelques exemples de codes : 200 OK – request succeeded, requested object later in this msg 301 Moved Permanently – requested object moved, new location specified later in this msg (Location:) 400 Bad Request – request msg not understood by server 404 Not Found – requested document not found on this server 505 HTTP Version Not Supported Application Layer 2-21 Essayer HTTP (côté client) par vous-même 1. Telnet à votre serveur Web préféré : telnet gaia.cs.umass.edu 80 ouvre la connexion TCP au port 80 (port du serveur HTTP par défaut) sur gaia.cs.umass. édu. tout ce qui est tapé sera envoyé vers le port 80 sur gaia.cs.umass.edu 2. saisissez une requête HTTP GET : GET /kurose_ross/interactive/index.php HTTP/1.1 Host: gaia.cs.umass.edu en tapant ceci (appuyez sur carriage retourner deux fois), vous envoyez ce minime (mais complet) GET requête au serveur HTTP 3. regardez le message de réponse envoyé par le serveur HTTP ! (ou utilisez Wireshark pour regarder la requête/réponse HTTP capturée) 2-22 Etat utilisateur-serveur : cookies Exemple: de nombreux sites Web utilisent des cookies Susan accède toujours à quatre composants : Internet depuis un PC 1) ligne d'en-tête de cookie visite un site de commerce du message de réponse électronique spécifique HTTP pour la première fois 2) ligne d'en-tête de cookie dans le prochain lorsque les requêtes HTTP message de requête initiales arrivent sur le site, HTTP le site crée : 3) fichier cookie conservé sur l'hôte de l'utilisateur, – identifiant unique géré par le navigateur de – entrée dans la base de l'utilisateur données principale pour 4) base de données l'ID principale sur le site Web 2-23 Cookies : conserver « état » (suite) client server ebay 8734 usual http request msg Amazon server cookie file creates ID usual http response 1678 for user create backend ebay 8734 set-cookie: 1678 entry database amazon 1678 usual http request msg cookie: 1678 cookie- access specific usual http response msg action one week later: access ebay 8734 usual http request msg amazon 1678 cookie: 1678 cookie- specific usual http response msg action Cookies (continued) aside à quelles fins les cookies peuvent-ils être utilisés : cookies et confidentialité : autorisation les cookies permettent aux sites paniers d'en apprendre beaucoup sur recommandations vous état de session utilisateur (courriel Web) comment garder « état » : points de terminaison de protocole : maintien de l'état au niveau de l'expéditeur/du destinataire sur plusieurs transactions cookies : les messages http portent l'état 2-25 Caches Web (serveur proxy) objectif : satisfaire la demande du client sans impliquer le serveur d'origine navigateur définit l'utilisateur : accès Web via le cache proxy le navigateur envoie toutes server les requêtes HTTP au cache client origin – objet dans le cache : le server cache renvoie l'objet – sinon le cache demande l'objet du serveur d'origine, puis renvoie l'objet au client client origin server Application Layer 2-26 En savoir plus sur la mise en cache Web le cache agit à la fois comme pourquoi la mise en cache Web ? client et serveur réduire le temps de réponse à – serveur pour le client la demande du client demandeur d'origine réduire le trafic sur le lien – client vers serveur d'origine d'accès d'un établissement généralement le cache est installé par le FAI (université, entreprise, FAI résidentiel) GET conditionnel client server Objectif : ne pas envoyer d'objet si le cache a une version mise en HTTP request msg cache à jour If-modified-since: object – pas de délai de transmission not d'objet modified HTTP response – utilisation de la liaison inférieure before HTTP/1.0 cache : spécifiez la date de la 304 Not Modified copie en cache dans la requête HTTP – If-modified-since: serveur : la réponse ne contient HTTP request msg aucun objet si la copie en cache If-modified-since: object est à jour : modified after – HTTP/1.0 304 Not Modified HTTP response HTTP/1.0 200 OK HTTP/2 Objectif principal : réduire les délais dans les requêtes HTTP portant sur plusieurs objets HTTP1.1 : introduction de plusieurs GET en pipeline sur une seule connexion TCP – Le serveur répond dans l'ordre (FCFS : premier arrivé, premier servi) aux requêtes GET. – avec FCFS, un petit objet peut devoir attendre la transmission (blocage en tête de ligne (HOL)) derrière un ou plusieurs gros objets. – La récupération des pertes (retransmission des segments TCP perdus) bloque la transmission des objets. 29 HTTP/2 Objectif principal : réduire les délais dans les requêtes HTTP portant sur plusieurs objets HTTP/2 : [RFC 7540, 2015] flexibilité accrue du serveur dans l'envoi d'objets au client : – Méthodes, codes d'état, la plupart des champs d'en-tête inchangés par rapport à HTTP 1.1 – Ordre de transmission des objets demandés en fonction de la priorité des objets spécifiée par le client (pas nécessairement FCFS) – Envoi d'objets non demandés au client – Diviser les objets en trames, programmer les trames pour limiter les blocages HOL 30 HTTP/2 : atténuer le blocage HOL HTTP 1.1 : le client demande un objet volumineux (par exemple, un fichier vidéo) et trois objets plus petits. server GET O4 GET O3 GET O2 GET O1 object data requested client O1 O2 O O3 1 O 2 O O4 3 O 4 objects delivered in order requested: O2, O3, O4 wait behind O1 31 HTTP/2 : atténuer le blocage HOL HTTP/2 : objets divisés en trames, transmission des trames entrelacées server GET O4 GET O3 GET O2 GET O1 object data requested client O 2 O 4 O O1 3 O2 O3 O4 O 1 O2, O3, O4 delivered quickly, O1 slightly delayed 32 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 33 DNS: domain name system personnes : de nombreux Système de noms de domaines: identifiants : base de données distribuée – SSN, nom, passeport # implémentée dans la Hôtes Internet, routeurs : hiérarchie de nombreux – Adresse IP (32 bits) - utilisée pour serveurs de noms l'adressage des datagrammes – "nom", par exemple, protocole de la couche www.yahoo.com - utilisé par les application : les hôtes, les humains serveurs de noms Q : comment mapper entre communiquent pour résoudre l'adresse IP et le nom, et vice les noms (traduction versa ? d'adresse/de nom) DNS: services, structure DNS services pourquoi ne pas centraliser le DNS traduction du nom d'hôte en ? adresse IP point de défaillance unique alias d'hôte le volume de circulation – canonique, noms d'alias base de données centralisée alias de serveur de messagerie distante Répartition de la charge maintenance – serveurs Web répliqués : plusieurs adresses IP correspondent à un nom DNS : une base de données distribuée et hiérarchique Root DNS Servers … … com DNS servers org DNS servers edu DNS servers pbs.org poly.edu umass.edu yahoo.com amazon.com DNS servers DNS serversDNS servers DNS servers DNS servers le client veut une IP pour www.amazon.com ; 1ère approximation : le client interroge le serveur racine pour trouver le serveur DNS com le client interroge le serveur DNS.com pour obtenir le serveur DNS amazon.com le client interroge le serveur DNS amazon.com pour obtenir l'adresse IP de www.amazon.com DNS : serveurs de noms racine contacté par le serveur de noms local qui ne peut pas résoudre le nom serveur de noms racine : – contacte le serveur de noms faisant autorité si le mappage de noms n'est pas connu – obtient la cartographie – renvoie le mappage vers le serveur de noms local c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD k. RIPE London (17 other sites) h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA m. WIDE Tokyo f. Internet Software C. (5 other sites) Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA 13 logical root name (5 other sites) b. USC-ISI Marina del Rey, CA “servers” worldwide l. ICANN Los Angeles, CA each “server” replicated (41 other sites) g. US DoD Columbus, many times OH (5 other sites) TLD, authoritative servers top-level domain (TLD) servers: – responsable de com, org, net, edu, aero, jobs, musées et de tous les domaines nationaux de premier niveau, par exemple : uk, fr, ca, jp – Network Solutions maintient des serveurs pour le TLD.com – Educause pour le TLD.edu authoritative DNS servers: – le(s) propre(s) serveur(s) DNS de l'organisation, fournissant un nom d'hôte faisant autorité aux mappages IP pour les hôtes nommés de l'organisation – peut être maintenu par l'organisation ou le fournisseur de services 2-38 Serveur de noms DNS local n'appartient pas strictement à la hiérarchie chaque fournisseur d'accès Internet (FAI résidentiel, entreprise, université) a un – également appelé « serveur de noms par défaut » lorsque l'hôte fait une requête DNS, la requête est envoyée à son serveur DNS local – a un cache local de paires de traductions nom-à-adresse récentes (mais peut être obsolète !) – agit en tant que proxy, transmet la requête dans la hiérarchie Application Layer 2-39 DNS name root DNS server resolution example 2 3 l'hôte de cis.poly.edu TLD DNS server veut une adresse IP pour 4 gaia.cs.umass.edu 5 requête itérative : local DNS server ▪ le serveur contacté 7 6 répond avec le nom 1 8 du serveur à contacter ▪ "Je ne connais pas ce authoritative DNS server nom, mais demandez à requesting host dns.esiea.fr ce serveur" Learning.esiea.fr Application Layer 2-40 DNS : mise en cache, mise à jour des enregistrements une fois que (n'importe quel) serveur de noms apprend le mappage, il met en cache le mappage – délai d'expiration des entrées de cache (disparition) après un certain temps (TTL) – Serveurs TLD généralement mis en cache dans des serveurs de noms locaux donc les serveurs de noms racine ne sont pas souvent visités les entrées mises en cache peuvent être obsolètes (traduction nom-adresse au mieux !) – si le nom de l'hôte change d'adresse IP, peut ne pas être connu sur Internet jusqu'à ce que tous les TTL expirent mécanismes de mise à jour/notification proposés norme IETF – RFC 2136 Application Layer 2-41 DNS records DNS: distributed database storing resource records (RR) RR format: (name, value, type, ttl) type=A type=CNAME ▪ name is hostname ▪ name is alias name for some ▪ value is IP address “canonical” (the real) name ▪ www.ibm.com is really type=NS – name is domain (e.g., servereast.backup2.ibm.c foo.com) om – value is hostname of ▪ value is canonical name authoritative name type=MX server for this domain ▪ value is name of mailserver associated with name Application Layer 2-42 DNS protocol, messages query and reply messages, both with same message format 2 bytes 2 bytes message header identification flags ▪ identification: 16 bit # for query, reply to query uses same # # questions # answer RRs ▪ flags: ▪ query or reply # authority RRs # additional RRs ▪ recursion desired ▪ recursion available questions (variable # of questions) ▪ reply is authoritative answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Application Layer 2-43 DNS protocol, messages 2 bytes 2 bytes identification flags # questions # answer RRs # authority RRs # additional RRs name, type fields questions (variable # of questions) for a query RRs in response answers (variable # of RRs) to query records for authority (variable # of RRs) authoritative servers additional “helpful” additional info (variable # of RRs) info that may be used Application Layer 2-44 Introduire vos informations dans le DNS exemple : nouvelle startup "Network Utopia" enregistrer le nom networkuptopia.com à DNS registrar (e.g., Network Solutions) –fournir les noms, les adresses IP du serveur de noms faisant autorité (primaire et secondaire) –le bureau d'enregistrement insère des RR NS et A dans le serveur du TLD.com : (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) créer localement un serveur faisant autorité avec des adresses IP 212.212.212.1 – enregistrement de type A pour www.networkuptopia.com – type d'enregistrement MX pour networkutopia.com 45 Attacking DNS DDoS attacks redirect attacks bombard root servers ▪ man-in-middle with traffic Intercept queries – not successful to date ▪ DNS poisoning – traffic filtering ▪ Send bogus relies to – local DNS servers cache IPs DNS server, which of TLD servers, allowing caches root server bypass exploit DNS for DDoS bombard TLD servers ▪ send queries with – potentially more spoofed source dangerous address: target IP ▪ requires amplification Application Layer 2-46 DNS To find out your DNS Server IP address, use the following: Kali Linux: – $ grep "nameserver“ /etc/resolv.conf Windows: – C:\WINDOWS\system32> ipconfig /all DNS : nslookup nslookup is a network administration command-line tool for querying the Domain Name System to obtain the mapping between domain name and IP address Kali Linux: – $ nslookup esiea.fr Windows: – C:\WINDOWS\system32>nslookup esiea.fr – non-authoritative answer" : tell you that the results was provided by a server that is not the authoritative (primary) source. Ex. a server of your Internet service provider held a cached copy of the DNS record Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 49 FTP: File Transfer Protocol Commonly used application layer protocol Allows for the transfer of files between clients/servers. Requires 2 connections to the server – Commands/Control – uses TCP port 21 – TCP control Actual data – uses TCP port 20 connection port 21 TCP data connection FTP port 20 FTP client server 50 FTP: file transfer protocol Transfer file to/from remote host Client/server model – Client: side that initiates transfer (either to/from remote) – Server: remote host FTP: RFC 959 FTP server: port 21 (control) FTP file transfer FTP FTP user client server interface user at host local file remote file system system 51 FTP: two connections, control & data FTP client contacts FTP server at port 21, specifying TCP as transport protocol Client obtains authorization over control connection Client browses remote directory by sending commands over control connection. When server receives file transfer command, server opens 2nd TCP connection (for file) to client After transferring one file, server closes data connection. Server opens another TCP data connection to transfer another file. Control connection: “out of band” FTP server maintains “state”: current directory, earlier authentication TCP control connection port 21 TCP data connection FTP port 20 FTP client server 52 FTP: commands - responses Sample commands: Sample return codes sent as ASCII text over control channel status code and phrase (as in HTTP) USER username 331 Username OK, PASS password password required LIST return list of file in 125 data connection already open; transfer current directory starting RETR filename retrieves 425 Can’t open data connection (gets) file 452 Error writing file STOR filename stores (puts) file onto remote host 53 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 54 TELNET vs. telnet TELNET is a protocol that provides “a general, bi- directional, eight-bit byte oriented communications facility”. telnet is a program that supports the TELNET protocol over TCP. Many application protocols are built upon the TELNET protocol. 55 The TELNET Protocol [RFC 854] TCP connection Data and control over the same connection. Network Virtual Terminal (NVT) – Intermediate representation of a generic terminal. – Provides a standard language for communication of terminal control functions. Server Process NVT NVT TCP TCP 56 Playing with TELNET You can use the telnet program to play with the TELNET protocol. telnet is a generic TCP client. – Sends whatever you type to the TCP socket. – Prints whatever comes back through the TCP socket – Useful for testing TCP servers (ASCII-based protocols). 57 TELNET Developed in the early 1970’s – among the oldest of the application layer protocols and services in the TCP/IP protocol suite. Allows users to emulate text-based terminal devices over the network using software. A connection is known as a ‘virtual terminal (vty)’ session. Can be run from the command prompt on a PC. You can use the device as if you were sitting there with all the rights and priorities that you username will offer you. 58 TELNET Disadvantages: Doesn’t support encryption like SSH. – All data is transferred as plain text. – It can be easily intercepted and understood. If security is a concern, you should use Secure Shell (SSH) protocol. – Provides for remote logins with stronger authentication than telnet. – Network Professionals should always use SSH whenever possible. 59 Introduction Web and HTTP Domain Name System (DNS) File Transfer Protocol (FTP) Telnet Mail protocols 60 E-mail user Three major components: agent User Agents (UA) mail user Mail Servers server agent Simple Mail Transfer Protocol: SMTP mail server user agent SMTP SMTP user SMTP User Agent mail agent a.k.a. “mail reader” server user Composing, editing, reading mail agent user messages agent outgoing e.g., Outlook, iPhone mail client message queue Outgoing, Incoming messages user mailbox stored on server 61 E-mail: mail servers user mail servers: agent mailbox contains incoming mail server user agent messages for user SMTP mail user server agent message queue of outgoing SMTP (to be sent) mail messages mail SMTP user agent SMTP protocol between mail server user agent servers to send email messages user client: sending mail server agent outgoing message queue “server”: receiving mail user mailbox server 62 SMTP [RFC 5321] “client” “server” Uses TCP to reliably transfer email SMTP server SMTP server message from client (mail server initiate TCP initiating connection) to server, port connection 25 RTT ▪ Direct transfer: sending server (acting like client) to TCP connection initiated receiving server Three phases of transfer 220 –SMTP handshaking (greeting) SMTP HELO –SMTP transfer of messages handshaking –SMTP closure 250 Hello Command/Response interaction SMTP (like HTTP) transfers –Commands: ASCII text –Response: status code and phrase time 63 Scenario: Alice sends e-mail to Bob 1. Alice uses UA to compose e- 4. SMTP client sends Alice’s mail message “to” message over the TCP [email protected] connection 2. Alice’s UA sends message to her 5. Bob’s mail server places the mail server using SMTP; message in Bob’s mailbox message placed in message queue 6. Bob invokes his user agent to read message 3. client side of SMTP at mail server opens TCP connection with Bob’s mail server 1 user mail user mail agent agent server server 2 3 6 4 5 Alice’s mail server Bob’s mail server 64 SMTP vs. HTTP: Observations HTTP SMTP client pull client push ASCII command/response ASCII command/response interaction, status codes interaction, status codes each object encapsulated in its multiple objects sent in own response message multipart message uses persistent connections requires message (header & body) to be in 7-bit ASCII SMTP server uses CRLF.CRLF to determine end of message 65 Mail message format SMTP: protocol for exchanging e-mail messages, defined in RFC 5321 (like RFC 7231 defines HTTP) RFC 2822 defines syntax for e-mail message itself (like HTML defines▪ header syntax To: lines, e.g., for web documents) header blank line From: Subject: these lines, within the body of the email body message area different from SMTP MAIL FROM:, RCPT TO: commands! ▪ Body: the “message” , ASCII characters only 66 Retrieving email: mail access protocols e-mail access user SMTP user SMTP protocol agent agent (e.g., IMAP, HTTP) sender’s e-mail receiver’s e-mail server server ▪ SMTP: delivery/storage of e-mail messages to receiver’s server ▪ Mail access protocol: retrieval from server IMAP: Internet Mail Access Protocol [RFC 3501]: messages stored on server, IMAP provides retrieval, deletion, folders of stored messages on server ▪ HTTP: Gmail, Hotmail, etc. provides web-based interface on top of STMP (to send), IMAP (or POP) to retrieve e-mail messages 67 Mail Access Protocol: Post Office Protocol Used to retrieve email messages from a remote mail server and store them on a local computer for offline reading. There are two main versions of the protocol: POP2 and POP3. POP provides a simple way for users to retrieve their email messages from a mail server and store them on their local computer. – The messages can then be read and managed even when the user is offline. 68 Mail Access Protocol: Post Office Protocol Mail retrieval – When a user connects to a mail server using POP, the messages are transferred from the server to the user's computer. – The messages are then stored locally and can be read even when the user is offline. Message deletion – When a user retrieves messages using POP, the messages are typically marked for deletion on the server. – Once the user disconnects from the server, the marked messages are permanently deleted. Security – POP does not have built-in security features – Typically used with a secure connection (such as SSL or TLS) to protect the privacy of the email messages being retrieved. 69 Mail Access Protocol: Internet Message Access Protocol A widely-used Internet standard protocol for managing email messages on a remote mail server. Allow users to access their email messages on a mail server without having to download them to their local computer. Provides a way for users to manage them in a variety of ways. – This includes reading, moving, copying, and deleting messages, as well as creating and managing email folders. Mail synchronization – IMAP allows users to access their email messages from multiple devices and keep them in sync. – When a user accesses their email messages on one device, any changes they make (such as reading or deleting messages) will be reflected on all other devices that use the same IMAP account. 70 Mail Access Protocol: Internet Message Access Protocol Mail retention – IMAP allows users to keep their email messages on the server, which can be useful for backup and synchronization purposes. Advanced features – IMAP provides advanced features such as server-side searching and message threading, which make it easier for users to manage their email messages and find what they're looking for. Security – IMAP does not have built-in security features – Typically used with a secure connection (such as SSL or TLS) to protect the privacy of the email messages being accessed. 71 E-mail services and SMTP/POP protocols 72

Use Quizgecko on...
Browser
Browser