Anteprima
Vedrai una selezione di 17 pagine su 76
Programmazione di reti - riassunto Pag. 1 Programmazione di reti - riassunto Pag. 2
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 6
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 11
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 16
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 21
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 26
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 31
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 36
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 41
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 46
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 51
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 56
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 61
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 66
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 71
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Programmazione di reti - riassunto Pag. 76
1 su 76
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

SMTP

Questo protocollo, definito nell' RFC 5321, costituisce il cuore della posta elettronica su Internet. Come detto precedentemente, SMTP trasferisce i messaggi dal mail server del mittente a quello del destinatario. SMTP è assai più vecchio di HTTP. Tratta il corpo di tutti i messaggi di posta come semplice ASCII a 7 bit. Questa restrizione è piuttosto penalizzante, in quanto richiede che i dati multimediali binari vengano codificati in ASCII prima di essere inviati e che il messaggio venga nuovamente codificato in binario dopo il trasporto.

Le operazioni di base di SMTP sono:

  1. Alice invoca il proprio user agent per la posta elettronica, fornisce l'indirizzo di posta di Bob, compone il messaggio e dà istruzione allo user agent di inviarlo.
  2. Lo user agent di Alice invia il messaggio al suo mail server, dove è collocato in una coda di messaggi.
  3. Il lato client di SMTP, eseguito sul server di Alice, vede il messaggio nella coda dei messaggi e apre...
SMTP(S): C: 220 mail.example.com ESMTP Postfix S: 220 mail.example.com ESMTP Postfix C: EHLO example.com S: 250-mail.example.com S: 250-PIPELINING S: 250-SIZE 10240000 S: 250-ETRN S: 250-STARTTLS S: 250-ENHANCEDSTATUSCODES S: 250-8BITMIME S: 250 DSN C: MAIL FROM: S: 250 2.1.0 Ok C: RCPT TO: S: 250 2.1.5 Ok C: DATA S: 354 End data with . C: Subject: Hello Bob C: From: Alice C: To: Bob C: C: Hi Bob, C: C: How are you? C: C: Regards, C: Alice C: . S: 250 2.0.0 Ok: queued as 12345 C: QUIT S: 221 2.0.0 Bye Nel codice HTML:
<code>
<C> C: 220 mail.example.com ESMTP Postfix
<S> S: 220 mail.example.com ESMTP Postfix
<C> C: EHLO example.com
<S> S: 250-mail.example.com
<S> S: 250-PIPELINING
<S> S: 250-SIZE 10240000
<S> S: 250-ETRN
<S> S: 250-STARTTLS
<S> S: 250-ENHANCEDSTATUSCODES
<S> S: 250-8BITMIME
<S> S: 250 DSN
<C> C: MAIL FROM:<alice@example.com>
<S> S: 250 2.1.0 Ok
<C> C: RCPT TO:<bob@example.com>
<S> S: 250 2.1.5 Ok
<C> C: DATA
<S> S: 354 End data with <CR><LF>.<CR><LF>
<C> C: Subject: Hello Bob
<C> C: From: Alice <alice@example.com>
<C> C: To: Bob <bob@example.com>
<C> C:
<C> C: Hi Bob,
<C> C:
<C> C: How are you?
<C> C:
<C> C: Regards,
<C> C: Alice
<C> C: .
<S> S: 250 2.0.0 Ok: queued as 12345
<C> C: QUIT
<S> S: 221 2.0.0 Bye
</code>

SMTP (S). Il nome dell'host del client è crepes.fr mentre il nome dell'host del server è hamburger.edu. Le righe di testo ASCII precedute da C : sono quelle che il client invia nella propria socket TCP, mentre le righe precedute da S : sono quelle che il server invia nella propria socket TCP. La seguente transazione inizia appena si stabilisce la connessione TCP:

Nell'esempio, il client invia un messaggio ("Ti piace il ketchup? Che cosa ne pensi dei cetrioli?") dal server di posta crepes.fr al server di posta hamburger.edu. Come parte del dialogo, il client ha inviato cinque comandi: HELO (abbreviazione di HELLO), MAIL FROM, RCPT TO, DATA e QUIT. Questi comandi sono abbastanza auto-esplicativi. Il client invia anche una riga che consiste unicamente di un punto, che indica al server la fine del messaggio.

Come per HTTP e FTP, anche SMTP termina ogni riga con i caratteri di ritorno a capo e nuova linea. Il server invia risposte a ogni comando, e ciascuna

SMTP uses persistent connections: if the sending mail server has multiple messages to send to the same receiving mail server, it can send them all on the same TCP connection. For each message, the client starts the process with a new MAIL FROM: and ends the message with a single dot. The QUIT command is only sent after all messages have been sent.

To have a direct dialogue with an SMTP server, you can use Telnet. To do this, use the command telnet serverName 25, where serverName is the name of a local mail server. This establishes a TCP connection to your local host and the mail server.

Comparison with HTTP

Two protocols are used to transfer files from one host to another.

HTTP transfers files (often called objects) from a web server to a web client (usually a browser).

SMTP transfers messages (i.e., email) from a mail server to another mail server.

elettronica) da un mail server a un altro.Durante il trasferimento sia HTTP persistente sia SMTP utilizzano connessioni persistenti e quindi presentano caratteristichecomuni.Esistono però sostanziali di differenze. Innanzitutto HTTP è principalmente un protocollo pull: qualcuno carica informazioni su unweb server e gli utenti usano HTTP per attirarle a se (pull) dal server. In particolare, la connessione TCP viene iniziata dalla macchinache vuole ricevere il file. Al contrario, SMTP è sostanzialmente un protocollo push: il mail server di invio spinge (push) i file al mailserver in ricezione. In particolare, la connessione TCP viene iniziata dall'host che vuole spedire il file.Una seconda differenza è che SMTP deve comporre l’intero messaggio (compreso il corpo) in ASCII a 7 bit. Anche se il messaggiocontiene caratteri che non appartengono ad ASCII a 7 bit (per esempio, caratteri con accenti o dati binari come un'immagine), ilmessaggio deve

essere comunque codificato in ASCII a 7 bit. HTTP non impone tale vincolo. Un'altra importante differenza riguarda la gestione di un documento che contiene testo e immagini (insieme ad altri possibilità di media). HTTP incapsula ogni oggetto nel proprio messaggio di risposta HTTP. La posta elettronica colloca tutti gli oggetti in un unico messaggio. Formati dei messaggi di posta Il corpo dei messaggi di posta elettronica è preceduto da un'intestazione contenente informazioni di servizio. Tale informazione periferica è contenuta in una serie di righe di intestazione, definite nell'RFC 5322. Queste righe sono separate dal corpo del messaggio mediante una riga senza contenuto. L'RFC 5322 specifica il formato esatto per le righe di intestazione della posta e la loro interpretazione. Come avviene per HTTP, queste righe contengono testo leggibile, costituito da una parola chiave seguita da due punti a loro volta seguiti da un valore. Alcune parole chiave sono obbligatorie.

mentre altre sono opzionali. Tali righe sono parte del messaggio stesso. Ogni intestazione deve avere una riga From e una riga To, e può contenere una riga Subject e altre opzionali.

Dopo l'intestazione, segue una riga vuota; quindi vi è il corpo del messaggio (in ASCII).

Protocolli di accesso alla posta

Quando SMTP consegna il messaggio di Alice al mail server destinatario, questo lo colloca nella casella di posta di Bob.

Nell'ipotesi che Bob (il destinatario) esegua il proprio user agent sul suo PC locale, verrebbe naturale pensare alla collocazione di un mail server anch'esso sul PC locale. Con questo approccio, il mail server di Alice dialogherebbe direttamente con il PC di Bob. Il problema è che un server di posta gestisce caselle ed esegue il lato client e server di SMTP: se il server di posta di Bob dovesse risiedere sul suo PC locale, allora il PC di Bob dovrebbe rimanere sempre acceso e connesso a Internet al fine di ricevere nuova posta che

può giungere in qualsiasi istante. Piuttosto, un tipico utente manda in esecuzione uno user agent sul PC locale, ma accede alla propria casella memorizzata su un mail server condiviso con utenti e sempre attivo. Questo server è generalmente gestito dall'ISP dell'utente (per esempio, un'università o un'azienda). In qualche punto del percorso, il messaggio deve essere depositato nel mail server di Bob. Questo si potrebbe fare semplicemente forzando lo user agent di Alice a spedire messaggi direttamente al mail server di Bob e tutto questo potrebbe essere conseguito da SMTP. Tuttavia, di solito lo user agent del mittente non dialoga in modo diretto con il server del destinatario. Piuttosto lo user agent di Alice utilizza SMTP per spingere i messaggi di posta elettronica nel suo mail server, che adotta SMTP (come client SMTP) per comunicare il messaggio al mail server di Bob. Qual è il motivo di questa procedura in due fasi? Principalmente perché,se non utilizzasse il suo mail server come punto intermedio, lo user agent di Alice non saprebbe come gestire un mail server di destinazione non raggiungibile. Alice deve dapprima depositare la e-mail nel proprio mail server, che può ripetutamente tentare l'invio del messaggio al mail server di Bob, per esempio ogni trenta minuti, finché questo non diventa operativo. L'RFC relativo a SMTP definisce i comandi SMTP per consegnare un messaggio attraverso più server SMTP. Come fa un destinatario (quale Bob), che esegue uno user agent sul proprio PC locale, a ottenere i messaggi che si trovano nel mail server del suo provider? Lo user agent di Bob non può usare SMTP per ottenere tali messaggi dato che si tratta di un'operazione di pull, mentre SMTP è un protocollo push. Esistono per questo speciali protocolli di accesso alla posta, che trasferiscono i messaggi dal mail server di Bob al suo PC locale (POP3, IMAP, HTTP). Ricapitolando, SMTP èusato per trasferire posta dal server del mittente a quello del destinatario ed è anche utilizzato per trasferire la posta dallo user agent al mail server del mittente. Per trasferire messaggi dal mail server allo user agent del destinatario viene impiegato protocollo di accesso alla posta, quale POP3.

POP3 è un protocollo di accesso alla posta estremamente semplice, definito in RFC 1939. Dato che il protocollo è tanto semplice, le sue funzionalità sono piuttosto limitate. POP3 entra in azione quando lo user agent (il client) apre una connessione TCP verso il mail server (il server) sulla porta 110. Quando la connessione TCP è stabilita, POP3 procede in tre fasi: autorizzazione, transazione e aggiornamento. Durante la prima fase (autorizzazione) lo user agent invia nome utente e password (in chiaro) per autenticare l'utente. Durante la seconda fase (transazione) lo user agent recupera i messaggi; inoltre, durante questa fase, può marcare

imessaggi per la cancellazione, rimuovere i marcatori di cancellazione e ottenere statistiche sulla posta. La fase di aggiornamento ha luogo dopo che il client ha inviato il comando quit, che conclude la sessione POP3; in questo istante, il server di posta rimuove i messaggi che sono stati marcati per la cancellazione.

In una transazione POP3 lo user agent invia comandi e il server reagisce a ogni comando con una tra due possibili risposte: +OK (talvolta seguito da dati dal server al client), usato dal server per indicare che il precedente comando andava bene; e -ERR, utilizzato dal server per indicare che qualcosa non ha funzionato nel precedente comando.

La fase di autorizzazione ha due principali comandi: user <username> e pass <password>.

Nella fase di transazione, uno user agent che usa POP3 può spesso essere configurato (dall'utente) per "scaricare e cancellare" o per "scaricare e mantenere". La sequenza di comandi inviati da uno user agent POP3

dipende dal modo operativo scelto. Nella modalità "scarica e cancella" lo user agent manderà i comandi list, retr, dele. Per esempio, l'utente ha due messaggi nella propria
Dettagli
A.A. 2017-2018
76 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Nobody_scuola_1990 di informazioni apprese con la frequenza delle lezioni di Programmazione di reti e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Pau Giovanni.