Servizi Applicativi Unix

Transcript

Servizi Applicativi Unix
Università degli Studi di Bologna
Facoltà di Ingegneria
Corso di
Reti di Calcolatori L-A
Servizi Applicativi UNIX
Luca Foschini
Anno accademico 2009/2010
Servizi 1
Servizi di UNIX (livello applicazione)
Servizi di tre tipi fondamentali
TERMINALE REMOTO: accesso a nodi remoti
FILE TRANSFER: possibilità di trasferire file tra nodi diversi
COMANDI REMOTI (applicazioni): esecuzione di comandi
remoti, anche specializzati, e riferimenti a servizi remoti
• NEWS, MAIL, gopher, WWW con trasparenza allocazione
Alcuni sono solo per sistemi UNIX: rlogin, rwho, rsh, rup, ...
Altri più generali ftp, telnet, mail, ...
Proprietà fondamentali di implementazione
– Trasparenza allocazione (o meno)
– Modelli Cliente/Servitore (con stato o meno)
– Standardizzazione
Servizi 2
Servizi APPLICATIVI di un SO
Si definiscono protocolli per la realizzazione di applicazione
per sistemi Internet (uso del livello trasporto)
Applicazioni 'indipendenti' dal sistema operativo
Virtual Terminal Procotol: telnet
File Transfer Procotol: ftp
Trivial File Transfer Procotol: tftp
Simple Mail Transfer Procotol: smtp
Network News System Transfer Protocol: nntp
Line Printer Daemon Procotol: lpd
Domain Name System: dns
Diffusione conoscenza (più o meno con trasparenza): nntp, gopher, http, ...
Applicazioni possibili nel solo sistema operativo UNIX
Servizi remoti (UNIX BSD): rsh, rwho, rlogin, ...
Servizi 3
telnet / rlogin (Virtual Terminal)
Per gestire l'eterogeneità di sistemi operativi ed
hardware:
Il terminale locale diventa un terminale sul e del sistema
remoto
– telnet standard per sistemi con TCP/IP
– rlogin per i sistemi UNIX BSD (remote login)
Protocollo telnet eterogeneo
– telnet costruito su TCP/IP
– connessione TCP con server per accesso remoto
– possibilità di aggancio a server qualunque
Caratteristiche
– gestione eterogeneità tramite interfaccia di terminale virtuale
– Client e Server negoziano le opzioni del collegamento (es., ASCII a
7 bit o a 8 bit)
– comunicazione simmetrica con funzioni distinte, complementari
Servizi
e differenziate
4
telnet: Modello C/S
Client Æ processo con due attività principali:
1. Stabilisce una connessione TCP con Server, accetta i
caratteri dall'utente e li manda al Server
2. Accetta i caratteri del server e li visualizza sul terminale
d'utente
Server processo che deve sia accettare la
richiesta di connessione del Client e inoltrare i
dati dalla connessione TCP al sistema locale sia
continuare a ricevere richieste
1. Creazione demone sul server per la gestione del servizio
2. Generazione figlio (da parte del demone) per la gestione
delle singole sessioni
Servizi 5
Esempio di connessione telnet
sistema Client
Telnet in due parti: cliente
e servitore ( e demone)
sistema Server
CLIENT
porta 23
telnet con nome logico host
o indirizzo fisico IP anche il
numero di porta
telnet [ host [ port ] ]
SERVER
TELNET
Terminale
Utente
Esempio:
telnet 137.204.57.33
(telnet deis33.deis.unibo.it)
username:antonio
password:*******
sistema
operativo
sistema
operativo
connessione
TCP/IP
Il controllo del flusso viene fatto dal servitore (a default)
Servizi 6
TERMINALE VIRTUALE
Esigenza sentita in
generale nelle reti e in
particolare nel
internetworking
cliente
servitore centralizzato
RETE
utente
Problema: eterogeneità dei terminali
I terminali possono differire gli uni dagli altri per:
–
–
–
–
il set di caratteri
diversa codifica dei caratteri
la lunghezza della linea e della pagina
i tasti funzione individuati da diverse sequenza di caratteri (escape sequence)
Soluzione: definizione di un terminale virtuale
Sulla rete si considera un unico terminale standard e in corrispondenza
di ogni stazione di lavoro, si effettuano la conversione da terminale
locale a terminale virtuale e viceversa.
telnet, ftp sono basati su questo modello detto standard NVT (ossia
Network Virtual Terminal)
Servizi 7
Implementazione
Uso di formato NVT (Network Virtual Terminal)
All'inizio NVT prevede uso di caratteri con rappresentazione
7 bit USASCII (caratteri normali 1 byte con bit alto a 0, 8o bit reset)
Client trasla caratteri
utente nel formato
NVT prima di inviarli
al server
Server trasforma dal
formato NVT al
formato locale
(e viceversa al ritorno)
formato dati NVT
Terminale
Utente
CLIENT
formato dati del sistema Client
TCP/IP
SERVER
SISTEMA
SERVER
formato dati del sistema Server
NEGOZIAZIONE del TERMINALE (cfr. ASN.1?)
Possibilità di negoziare la connessione, sia alla inizializzazione sia successivamente per
selezionare le opzioni del telnet
(comunicazione half- full- duplex, determinare il tipo di terminale, codifica 7-8 bit)
Protocollo per negoziare le opzioni simmetrico, con messaggi:
will/won’t X
do/don’t X
will you agree to let me use option X? / I won’t start using option X
I do/don’t agree to let you use option X
NVT definisce un tasto di interruzione concettuale per richiedere la terminazione
della applicazione
Servizi 8
Caratteri di controllo NVT, USASCII
UNICA
CONNESSIONE
(CONTROLLO IN
BANDA)
Invio di caratteri di
controllo e funzioni
di controllo
insieme con i dati
normali
CODICE DI
CONTROLLO VALORE
ASCII
NUL
BEL
BS
HT
LF
VT
FF
CR
altri codici
0
7
8
9
10
11
12
13
SIGNIFICATO ASSEGNATO
DA NTV
NESSUNA OPERAZIONE
SUONO UDIBILE/SEGNALE VISIBILE
SPOSTAMENTO A SINISTRA DI UNA POSIZIONE
SPOSTAMENTO A DESTRA DI UNA TABULAZIONE
SPOSTAMENTO IN BASSO ALLA LINEA SUCCESSIVA
SPOSTAMENTO IN BASSO DI UNA TABULAZIONE
SPOSTAMENTO ALL'INIZIO DELLA PROSSIMA PAGINA
SPOSTAMENTO SUL MARGINE SINISTRO DELLA RIGA
NESSUNA OPERAZIONE
Funzioni di controllo NVT
SEGNALE
Codificati con bit
più significativo a 1
IP
AO
AYT
EC
EL
SYNC
BRK
WILL
WONT
DO
DONT
SIGNIFICATO
INTERRUZIONE DEL PROCESSO
ABORT IN USCITA (SCARTA I CONTENUTI DEI BUFFER)
CI SEI? (TEST DELLA PRESENZA DEL SERVER)
CANCELLA IL PRECEDENTE CARATTERE
CANCELLA LA CORRENTE LINEA
SINCRONIZZAZIONE
SOSPENSIONE TEMPORANEA (ATTESA DI UN SEGNALE)
SI PROPONE AL PARI DI ATTUARE UNA AZIONE
SI PROPONE AL PARI DI NON ATTUARE UNA AZIONE
SI ACCETTA DI ATTUARE UNA AZIONE
NON SI ACCETTA DI ATTUARE UNA AZIONE
Servizi 9
NEGOZIAZIONE
Chi ha la iniziativa determina l'accordo necessario a lavorare sulla connessione
stabilita
WILL ECHO
DO "terminal type" XYZ
DO ECHO
WILL "terminal type" XYZ
e si va avanti... in modo sorgente
Le richieste negative DONT e WONT sono sempre accettate
MODI di LAVORO
half-duplex
one char at a time (echo fatto sempre dal server) Æ problemi di overhead
one line at a time Æ problemi di ritardo nei dati
linemode
Uso di dati urgenti
Lo stream impiega i dati urgenti sulla connessione stessa per ovviare al caso di stream di
dati pieno
Riconosciuto
flush Æ scarta tutto
no client flow control Æ il cliente non fa più controllo di flusso
client flow control
sliding window Æ cambiamento della dimensione e controllo del cliente
Servizi 10
Implementazione
sistema Server
sistema Client
Telnet
client
Pseudo-terminal
come funzione
del sistema
operativo
applicazione
demone
telnet
Telnet server
Terminale
Utente
login
sistema
operativo
sistema
operativo
terminal
driver
pseudo
terminal
connessione
TCP/IP
Questa soluzione implementativa permette di avere a livello di applicazione un
dispositivo (finto ossia pseudo) che si comporta come un dispositivo reale del
sistema operativo ma che facilita di molto l’I/O da rete e la interazione locale
Se il sistema operativo ha l’astrazione di pseudoterminale
telnet ⇒ programma applicativo
Vantaggio ⇒ modifiche e controllo facili
Svantaggio ⇒ inefficienza
Servizi 11
RLOGIN
Servizio di login remoto: login su un'altra macchina UNIX
rlogin lia02.deis.unibo.it
username:antonio
password:*******
Se l'utente ha una home directory in remoto accede a quel direttorio
Altrimenti, l'utente entra nella radice della macchina remota
Il servizio di rlogin UNIX supporta il concetto di trusted hosts
Utilizzando i file
.rhosts, /etc/hosts.equiv
per garantire corrispondenze tra utenti (uso senza password)
L'utente riconosciuto passa da una macchina ad un'altra senza qualificarsi
e fornire password
In genere, il superutente non può passare da una macchina ad un'altra
Problemi di sicurezza rlogin:
– nell'uso di .rhosts ed hosts.equiv
– password in chiaro
Servizi 12
Caratteristiche RLOGIN
Conosce l'ambiente di partenza e quello di arrivo, ha nozione di
stdin, stdout e stderr (collegati al client mediante TCP)
- Esporta l'ambiente del client (es. il tipo di terminale) verso il
server
- Utilizzo di una connessione TCP/IP e più processi (due per
parte)
- Si lavora solo un carattere alla volta (Nagle on)
- Flow control: il client rlogin tratta localmente i caratteri di
controllo del terminale (<Ctrl><S> e <Ctrl><Q> fermano e fanno
ripartire l'output del terminale, e in modo simile il <Ctrl><C>)
- Alla fine, uso di due connessioni e 4 processi
rlogin molto più snello di telnet ma con prestazioni limitate e non
ottimizzate
migliaia di linee vs. decine di migliaia (di telnet)
Servizi 13
Implementazione
Client rlogin e Server remoto (server rlogind)
Il client crea una connessione TCP al server rlogind
Il client rlogin spezza le funzioni di ingresso/uscita
• il genitore gestisce i caratteri che vanno allo shell remoto
• il figlio gestisce i caratteri in arrivo dallo shell remoto
Il server si collega ad uno shell remoto con coppia master-slave di uno
pseudoterminale (dopo avere lasciato libero il demone)
connessione TCP/IP
TERMINALE
CLIENT
SERVER
porta 513
UTENTE
CLIENT
sistema
operativo
sistema Client
SERVER
shell remoto
sistema operativo
Invocazione remota
Anche rsh:
• invoca l'interprete (shell)
remoto UNIX
• con gli argomenti della
linea di comando:
rsh
nodo_remoto comando
sistema Server
Servizi 14
ACCESSO E TRASFERIMENTO FILE
Uso di TCP (affidabile ed orientato alla connessione)
ftp
(file transfer protocol)
tftp
(trivial file transfer protocol) basato su UDP
Permettono la
copia di file
nei due versi
FILE TRANSFER PROTOCOL
– Controllo Identità (login e password)
– Eseguito dai programmi applicativi o con accesso interattivo (si può richiedere
la lista dei file di un direttorio remoto, o creare un direttorio remoto, etc.)
– Specifica il formato dei dati (rappresentazione): file di tipo testo o binario
Comandi di trasferimento file:
1. put local-file [remote-file]
Æ memorizza un file locale sulla macchina remota
2. get remote-file [local-file]
Æ trasferisce un file remoto sul disco locale
3. mget e mput utilizzano metacaratteri nei nomi dei file
4. altri comandi: help, dir, ls, cd, lcd, ...
tfpt più semplice e con meno possibilità
(uso di UDP)
Esistono nodi server di ftp che sono contenitori di informazioni a cui si può
accedere "liberamente" Æ uso di ftp anonymous verso i server
Servizi 15
Esempio di ftp anonymous
antonio deis33 ~ 7 >
ftp didahp1.deis.unibo.it
Connected to didahp1.
220 didahp1 FTP server (Version 1.7.109.2 Tue Jul 28 23:32:34 GMT 1992) ready.
Name (didahp1.deis.unibo.it:antonio):
anonymous
331 Guest login ok, send ident as password.
Password:XXXXXXXXXX
230 Guest login ok, access restrictions apply.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
bin
etc
pub
RFC
incoming
prova.txt
226 Transfer complete.
37 bytes received in 0.0035 seconds (10 Kbytes/s)
ftp> ascii
200 Type set to A.
ftp> get prova.txt
200 PORT command successful.
150 Opening ASCII mode data connection for prova.txt (8718 bytes).
226 Transfer complete.
local: prova.txt remote: prova.txt
8719 bytes received in 0.025 seconds
(3.3e+02 Kbytes/s)
ftp> get pippo.txt // si mostra il contenuto direttamente a console
ftp> get pippo.txt "| more"
// si passa il contenuto a more
Servizi 16
CODIFICA ed OTTIMIZZAZIONI
Tutte le informazioni viaggiano in chiaro, codifica numerica
La prima cifra codifica le interazioni
1xx Risposta positiva preliminare
2xx Risposta positiva completa
3xx Risposta positiva intermedia
4xx Risposta negativa transitoria, il comando può essere ripetuto
5xx Risposta negativa permanente
La seconda cifra codifica le risposte
x0x Errore di Sintassi
x1x Informazione
x2x Connessione
x3x e x4x
Codici non specificati
x5x Filesystem status
La terza cifra specifica più precisamente
150 Risposta preparatoria per filelist
200 OK
226 Trasferimento completo
331 Username OK, serve la password
Per il formato delle
informazioni di
controllo?
⇒ uso di NVT
Servizi 17
Implementazione FTP
Vari tipi di file riconosciuti
filetype
format
structure
TX mode
ASCII,
Nonprint,
stream,
stream,
EBCDID,
telnet fmt,
record,
block,
binary,
local
Fortran fmt
page
compressed
Accesso concorrente da parte di più client ad un unico
server e uso di TCP per le connessioni al server
Almeno due collegamenti per ogni client e per ogni server:
– una connessione di controllo (sempre viva) e
– una (o più) di dati (ciascuna attiva solo per ogni
trasferimento di file
Impiegando più processi (due per nodo) a parte il demone
Servizi 18
Implementazione FTP: dettagli implementativi
porta 21
Processo
Controllo
connessione
TCP/IP
Proc.
dati
Proc.
dati
sistema
operativo
sistema Client
Processo
Controllo
porta 20
sistema
operativo
sistema Server
Dettagli implementazione server:
Un processo master del server attende connessioni (processo ftpd,
demone di ftp) e crea uno slave per ciascuna richiesta
Lo slave è composto da:
– un processo per il collegamento di controllo con il client
(persiste per tutta la durata del collegamento)
– un processo per il trasferimento dati (creato al bisogno)
(possono essere molti nello stesso collegamento)
Anche il client usa processi separati per la parte di controllo e di
trasferimento dati
Servizi 19
Uso di numeri di porta TCP
TCP: gli endpoint individuano una connessione ed è
sufficiente un endpoint diverso per avere una connessione
diversa (almeno un elemento della quadrupla, o porta o
nodo)
FTP prevede almeno due connessioni:
– una di controllo persistente per tutta la sessione
– una dati per ogni trasferimento file
Collegamento controllo
– la porta di trasferimento lato server è fissa (21)
– specifica della porta da parte del cliente (xxx)
Collegamento dati
– la porta di trasferimento lato server è fissa (20)
– porta da parte del cliente (xxx/yyy)
Servizi 20
Impegno di risorse e qualità
Client collegamento con server su porta (xxx)
Servizio sequenziale, la stessa porta xxx del cliente può
essere usata per connessione dati Æ Il valore di porta passato
al server rappresenta una forma di coordinamento senza cui
il servizio non può funzionare
Servizi paralleli per lo stesso cliente o porte multiple (yyy)
Il cliente può indicare una porta addizionale (yyy),
normalmente porte successive (per connessioni diverse)
Possibilità di stato della connessione: in caso di
trasferimento di grandi moli di dati, se ci si blocca, non si deve
ripartire dall'inizio, ma dall'ultima posizione trasferita
Per quanto tempo si tiene lo stato? E dove lo si mantiene?
Servizi 21
FTP: connessione di controllo
porta 21
Processo
Controllo
connessione
TCP/IP
Proc.
dati
Proc.
dati
sistema
operativo
sistema Client
Processo
Controllo
porta 20
sistema
operativo
sistema Server
Connessione controllo
– la porta di trasferimento lato server è fissa (21)
– il cliente specifica una porta (xxx) per la connessione e il server ha
fatto una listen ed è in attesa di richieste…
– il client esegue la connect, conoscendo la porta del server con la sua
porta xxx
iniziativa del cliente o cliente attivo
Servizi 22
FTP: connessione dati
Connessione dati
– la porta di trasferimento lato server è fissa (20)
– la porta del cliente (xxx/yyy)
in questa connessione, creata su comando get o put del client, chi
esegue la connect?
Iniziativa del cliente o cliente attivo
il client esegue la connect, il server deve avere già fatto la listen, ed
essersi messo in attesa di richieste del cliente
Iniziativa del server (server attivo) o cliente passivo
il client esegue la listen e fa una accept sulla sua porta (xxx/yyy), (poi
comanda la get/put)
il server deve solo fare una connect sulla porta del cliente
Servizi 23
Confronto telnet/ftp
Servizio
FILE TRANSFER
ftp tftp
VIRTUAL TERMINAL
telnet rlogin
Oggetto
file
caratteri
Distribuzione
Informazioni
punto a punto
punto a punto
Protocollo
NVT
NVT
Cosa giustifica la scelta
di ognuno dei due protocolli?
del
livello
di
trasporto
ftp e telnet ...
SERVIZI SINCRONI
vs.
SERVIZI ASINCRONI
mail, news ...
Servizi 24
La posta elettronica
La posta elettronica (e-mail) permette scambio di messaggi tra
utenti, come nel servizio postale
Caratteristica fondamentale: servizio asincrono: il mittente non
aspetta il destinatario (vs. telnet ed ftp) Æ spooling
I messaggi possono essere dei semplici testi oppure degli interi
file (uso alternativo ad ftp)
Mail – Esempio di uso
antonio deis33 ~ 12 >
Mail [email protected]
Subject: Prova di mail
Testo del mail
ctrl-D
beppe ingbo ~ 10 > Mail
Mail version SMI 4.1-OWV3 Mon Sep 23 07:17:24 PDT
1991 Type ? for help.
"/usr/spool/mail/beppe": 1 message 1 unread
>U
1 antonio
Fri May 22 16:48
14/296
Prova di mail
& return
Message 1:
From antonio Fri, 22 May 16:48:38 1999
Received: by ing.unibo.it (4.1/4.7); Fri, 22 May
99 16:48:37 +0200
From: antonio (Antonio Corradi)
Subject: Prova di mail
To: Beppe
Date: Fri, 22 May 99 16:48:39 MET DST
X-Mailer: ELM [version 2.3 PL11]
Status: RO
Servizi 25
Testo della mail
Formato dei messaggi
Header
From:
To:
Date:
Subject:
opzionali
Cc:
Bcc:
Replay-To:
Message-Id:
Corpo:
Æ
Æ
Æ
Æ
indirizzo del mittente
mailbox cui il messaggio va recapitato, anche più indirizzi
la data di spedizione
il soggetto del messaggio
Æ
Æ
Æ
Æ
copia ai destinatari
copia nascosta ai destinatari
indirizzo per la risposta
identificatore unico del messaggio
il testo dei messaggi è in formato ASCII
Per estendere il formato del corpo due vie:
– prevedere la codifica ASCII dei binari
– estensione ex novo (con introduzione di nuovi tipi riconosciuti associati ad una
parte del messaggio)
MIME (Multipurpose Interchange Mail Extension): possibilità di
inserimento di messaggi con formati diversi in un unico corpo di un
messaggio che il protocollo riconosce automaticamente
Servizi 26
MIME
(Multipurpose Interchange Mail Extension)
Content-type
text
Messaggi con formati diversi nel
corpo ASCII text
multipart
Mime-Version:
Content-Type:
Content-Transfer-Encoding:
message
Content-ID:
Content-Description:
plain
richtext
enriched
mixed
parallel
digest
alternative
rfc822
partial
external-body
application octet-stream
Content-Transfer-Encoding:
postscript
image
jpeg
7bit (NVT ASCII), 8-bit,
gif
binary-encoding, ...
video
mpeg
audio
basic
Subtype
testo non formattato
testo con semplice
formattazione (bold, ecc)
raffinamento del richtext
parti da processare seq.
parti su cui lav. in parallelo
message digest
molte copie con la stessa
semantica (in alternativa)
un altro messaggio di mail
frammento di un messaggio
puntatore al messaggio
dati arbitrari
file postscript
file ISO 10981 immagine
Graphic Interchange Format
file ISO 11172 stream
formato audio 8-bit
Servizi 27
Indirizzi di mail
Destinatario come
identificatore IP nodo di destinazione
mailbox sul nodo (nome login)
Indirizzi di posta elettronica
varie possibili forme, con alcune convenzioni
From:[email protected] (Antonio Corradi)
postmaster
mailbox del postmaster in ogni dominio
MAILER-DAEMON
segnalazioni di problemi
Altri indirizzi
mappaggio identificatori distinti in nomi di sistema
anche pseudonimi (aliases) e mail forwarding
un utente può avere più identificatori di mail
e anche unico identificatore per un gruppo di destinatari
NOMI MULTIPLI
più sottodomini e nomi multipli
[email protected]
[email protected]
[email protected]
electronic mailing list anche con destinatari non locali
Possibili problemi di indirizzamento nelle mailing list
nella mailing list di A, x mappato in y di B
nella mailing list di B, y mappato in x di A
Problema: ciclo senza fine
Servizi 28
Architettura del servizio di mail
Uso di comunicazioni punto a punto attraverso una rete di User Agent
(UA) e Mail Transfer Agent (MTA)
Mail Transport Agent (MTA) trasferisce mail dallo user agent (UA) sorgente
a quello di destinazione
Diversi metodi di collegamento possibili
UA
MTA
UA
Uso di mailbox come area
associata e riservata ad un
solo utente
Non si assume la
conoscenza completa dei
MTA tra loro
UA
MTA
MTA
sistema A
UA
sistema B
sistema B
MTA
UA
MTA
MTA
sistema A
Il protocollo regola i modi
di comunicazione e non
la politica di conoscenza
delle entità
Servizi 29
UA
sistema C
Componenti del servizio di mail
Il processo in background
UA diventa il cliente di
MTA che
– mappa il nome della
destinazione in indirizzo
IP o di intermediario
– tenta la connessione
TCP con il mail server
successivo o di
destinazione
– se OK, copia un
messaggio al
successivo passo
Trattamento dei nomi
multipli di utente e liste
spool area
client
connessione
TCP
posta in uscita
Interfaccia
utente
utente
spool area
server
connessione
TCP
posta in arrivo
UA
MTA
database
alias
espansione
alias
e
forwarding
utente
spool area
posta in uscita
client
connessione TCP
Interfaccia
utente
spool area
posta in arrivo
server
connessione TCP
Servizi 30
NOMI di mail e Domain Name System (DNS)
ROUTING tra MTA: il sistema di nomi della posta elettronica può
– basarsi sui nomi di DNS
– basarsi su altri cammini e percorsi
I diversi MTA possono organizzarsi anche in modo del tutto indipendente dalle
normali forme di routing di IP Æ diverso dal sistema di corrispondenze di IP
Il sistema di nomi standard DNS può definire percorsi dedicati di mail distinti e
trattati a parte: vedi record DNS tipo MX
Connessione di tipo end-to-end diretto (TCP)
Uso di mail gateway (macchine intermedie)
UA
UA
POP
MQ
MQ
MTA
MTA
MTA
livello
di
presentazione
Il protocollo SMTP usa la porta TCP per gli
scambi tra MTA (e tra UA e MTA): porta 25
Accesso finale ai singoli messaggi da parte
dell'utente UA sono invece regolati da diversi
strumenti e protocolli:
– POP Post Office Protocol
– IMAP Internet Mail Access Protocol
– anche sicuri, ecc.,
Molti lettori diversi di posta elettronica:
Servizi 31
Mail, mail, elm, eudora, outlook, Web based
protocollo SMTP
Simple Mail Transfer Protocol RFC 821
È il protocollo standard per il trasferimento della mail tra mailer (MTA) che si
connettono e scambiano messaggi di posta in chiaro
Scambi di messaggi codificati tra un client ed un server
PROTOCOLLO SMTP
Comandi cliente e risposte
server, esempio:
sender 'MAIL FROM:‘ nome mitt.
receiver 'OK'
sender 'RCPT TO:' nome dest.
receiver 'OK‘ abilitato
sender 'DATA‘ corpo messaggio
sender '< cr-lf> < cr-lf> ‘ (fine msg.)
receiver 'OK'
mittente
file system
Client
SMTP
comandi
e messaggi
protocollo
SMTP
destinatario
Server
SMTP
file system
I ruoli tra sender e receiver (o client e server)
possono essere invertiti per trasmettere la
posta diretta nel verso opposto.
COMANDI: parole composte di caratteri ASCII:
RISPOSTE: composte di codice numerico di 3
cifre e testo
Servizi 32
Codifica
La prima cifra codifica le interazioni
1xx
2xx
3xx
4xx
5xx
Comando accettato
Risposta positiva completa
Risposta positiva intermedia
Risposta negativa transitoria, il comando può essere ripetuto
Risposta negativa permanente
La seconda cifra codifica le risposte
x0x
x1x
x2x
x3x e x4x
x5x
Sintassi
Informazione
Connessione
Codici non specificati
Mail system (stato del receiver)
La terza cifra specifica più precisamente
Procedure di SMTP
Procedura di invio come MAIL TRANSACTION
Æ fatta in modo da completare la trasmissione
Se tutto va bene OK
Se problemi Æ messaggi disordinati e ripetuti
(azioni di posta idempotenti ?)
Servizi 33
Codifica (ancora…)
S: MAIL FROM:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 550 No such user here
S: RCPT TO:<[email protected]>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: <CRLF>.<CRLF>
R: 250 OK
Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]>
Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST
Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST
Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST
Date: 27 Oct 81 15:01:01 PST
From: [email protected]
Subject: Improved Mailing System Installed
To: [email protected]
This is to inform you that ...
MAIL FORWARDING Æ forward-path non corretto
251 User not local; will forward to forward-path
551 User not local; please try forward-path
Servizi 34
VERIFYING AND EXPANDING
Verificare lo user name (VRFY)
Espansione di mailing list (EXPN)
VRFY user-name
i)
ii)
iii)
iv)
v)
250 'username completo' <indirizzo>
251 User not local; will forward to <indirizzo>
551 User not local; please try <indirizzo>
550 That is a mailing list, not a user
550 String does not match anything
553 User ambiguous.
OPENING E CLOSING
HELO <domain> <CR-LF>
QUIT <CR-LF>
RESET (RSET)
abort della transazione corrente;
receiver deve inviare OK
TURN (TURN)
intenzione di scambio dei ruoli
EXPN <mailing-list>
S:
R:
R:
R:
R:
R:
R:
EXPN Example-People
250-Jon Postel <[email protected]>
250-Fred Fone <[email protected]>
250-Sam Q. Smith <[email protected]>
250-Quincy Smith
<@USC-ISIF.ARPA:[email protected]>
250-<[email protected]>
250 <[email protected]>
Servizi 35
USENET News
Un insieme di gruppi di discussione
Ogni gruppo riguarda un particolare argomento e permette di partecipare
a una discussione su tale argomento, scambiando informazioni e facendo
domande, ricevendo risposte, …
Insiemi aperti di interessi pubblici
GERARCHIE PRINCIPALI DI NEWS
comp
misc
news
rec
soc
sci
talk
alt
bit
biz
(COMPUTER)
(MISCELLANEOUS)
(NEWS)
(RECREATIVE)
(SOCIETY)
(SCIENCE)
(TALK)
(ALTERNATIVE)
(BITNET)
(BUSINESS)
SOTTOGERARCHIE DI 'comp.unix‘: admin, aix, amiga, aux, internals, large, misc,
programmer, question, etc ...
STORIA:1979 Æ 3 macchine uucp, 1980 Æ anews con due soli gruppi,
1982 Æ bnews
Servizi 36
Architettura del servizio di NEWS
Nodo client:
– un client di news mantiene le news
– presenza di lettori di news
Il client si coordina con il/i server per ottenere le news
I client sono strumenti per l'accesso applicativo alle
news e consentono anche di inviare news ai gruppi
di interesse.
Uso di agenti con TCP/IP di connessione
News: uso di database coordinati per le informazioni
ma non consistenti
Server
LAN
Client
Client . . . . . Client
users
Protocollo news:
Il protocollo è NNTP (USENET)
Comandi cliente -------- Risposte server
COMANDI: parole composte di caratteri ASCII:
RISPOSTE: composte di codice numerico di 3
cifre e testo
In genere gli agenti si coordinano usando la
porta 119
A
Servizi 37
Protocollo NNTP
Protocolli a negoziazione
(connessione con well known port 119)
Come smtp, così nntp (USENET): comandi e risposte, e il server restituisce una
risposta al comando del client con il risultato dell'azione chiesta
comandi sono una parola di comando (ASCII)
più parametri separati e fine con carattere <CR> <LF>
risposte di testo e di stato
le risposte di testo: linee successive con un <CR> <LF>
le risposte di stato: stato dal server per l'ultimo comando
codice numerico di tre cifre
prima cifra successo o meno
1xx - messaggio informativo
2xx - comando ok
3xx - comando non ancora ok, richiesta del resto
4xx - comando corretto ma non eseguito
5xx - comando non implementato, o scorretto, o errore
seconda cifra categoria della risposta
x0x - messaggi di connessione, setup, e vari
x1x - selezione newsgroup
x2x - selezione articoli
x3x - funzioni di distribuzione
x4x - posting
x8x - estensioni non standard
x9x - debugging output
Servizi 38
Codifica
Codice numerico di tre cifre
La prima cifra codifica successo o meno
1xx - messaggio informativo
2xx - comando ok
3xx - comando non ancora ok, richiesta del resto
4xx - comando corretto ma non eseguito
5xx - comando non implementato, o scorretto, o errore
La seconda cifra codifica la categoria della risposta
x0x - messaggi di connessione, setup, e vari
x1x - selezione newsgroup
x2x - selezione articoli
x3x - funzioni di distribuzione
x4x - posting
x8x - estensioni non standard
x9x - debugging output
Ad esempio
100 help text
190 through
199 debug output
200 server ready - posting allowed
201 server ready - posting not allowed
400 service discontinued
500 command not recognized
501 command sintax error
502 access restriction or permission denied
503 program fault - command not performed
Servizi 39
NNTP esempio
PROTOCOLLO NNTP
Comandi cliente ------------------ Risposte server
COMANDI: parole composte di caratteri ASCII:
RISPOSTE: composte di codice numerico di 3 cifre e testo
In genere gli agenti si coordinano usando la port 119
CODICI NUMERICI DI RISPOSTA utilizzati per la gestione automatica
delle risposte:
C:
S:
C:
S:
C:
S:
S:
S:
GROUP msgs
211 103 402 504 msgs Your new group is msgs
ARTICLE 401
423 No such article in this newsgroup
ARTICLE 402
220 402 [email protected] Article retrieved, text follows
(invio del testo da parte del server)
205 XYZ-VAX news server closing connection. Goodbye
Servizi 40
SERVIZI SINCRONI e ASINCRONI
FILE TRANSFER
ftp tftp
file
VIRTUAL TERMINAL
telnet rlogin
caratteri
Servizio
Distribuzione
Informazioni
punto a punto
punto a punto
Protocollo
NVT
NVT
Servizio
Oggetto
NEWS
Oggetto
POSTA
ELETTRONICA
messaggi
Distribuzione
mailbox
database
centralizzati che sono
distribuiti
Protocollo
SMTP
NNTP
messaggi
Per USENET
• la dimensione globale anche delle informazioni
• la distribuzione anche a flooding e a gruppi
• MA nessuna sicurezza
I SERVIZI COMINCIANO A DELINEARE LA IDEA DI UNA
INFRASTRUTTURA DI SUPPORTO
ANCHE PIÙ DI UNA INFRASTRUTTURA
Servizi 41