Architettura TCP/IP
indice
•
•
•
•
•
•
protocollo IP
altri protocolli di rete: ICMP, ARP e RARP
protocollo TCP
altri protocolli di trasporto: UDP
il sistema Domain Name Server
i protocolli di posta elettronica
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
1
Il protocollo IP
• IP è un protocollo datagram (non connesso
e non affidabile) che ha il compito di:
– ricevere il datagram o il segmento di dati dal
livello superiore e incapsularlo in pacchetti IP
– instradare i pacchetti attraverso le varie sottoreti
– in ricezione riassemblare i vari pacchetti e
passare al livello superiore il datagram o il
segmento dati, secondo l’ordine d’arrivo
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
2
Obiettivi del protocollo IP
•
•
•
•
incorpora i datagram (encapsulation datagram)
frammenta i datagram (fragmentation datagram)
gestisce la vita in rete dei datagram
instrada i datagram
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
3
Gestione dei datagram
livello superiore
accetta in ingresso i
datagram provenienti
dalla rete o generati dal
livello superiore, e li
instrada verso la NIC o
verso il livello superiore
processo IP
NIC 1
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
NIC 2
4
Funzioni svolte dal livello IP
•
•
•
•
•
genera e controlla l’intestazione (header validation)
calcola o verifica il checksum
determina l’instradamento (next hop)
gestisce la redirezione
aggiunge i dati del mittente nei datagram
prodotti localmente(ICI)
• frammenta e ricostruire i datagram
• gestisce le comunicazioni broadcast
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
5
Caratteristiche del livello IP
unreliable: servizi non garantiti o inaffidabili,
i pacchetti possono essere persi, duplicati
o consegnati fuori ordine
connectionless: servizi non orientati alla
connessione, i pacchetti sono tra loro
indipendenti
best-effort: servizi del tipo trasmetti e spera
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
6
intestazione del pacchetto IP
version
IHL
tipo di servizio
DM
FF
identificatore segmento
time to live
lunghezza totale
protocollo
offset del frammento
checksum dell’header
indirizzo del mittente
indirizzo del destinatario
campo opzioni
32 bit
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
7
campi dell’intestazione IP
versione
IHL
type of service
total length
identification
DF
MF
fragmnent offset
time to live
protocol
header check
indirizzi
options
Architettura TCP/IP
numero versione del protocollo (4)
lunghezza header in multipli di 32 bit (4)
affidabilità dei servizi richiesti (8)
lunghezza totale del pacchetto (16)
etichetta di tutti i frammenti di un dato pacchetto (16)
Don't fragment (se a 1)(1)
More fragments (se a 1) (1)
offset (in byte) del frammento nel pacchetto (13)
valore decrementato ad ogni salto o ad ogni secondo (8)
cod. del protocollo di trasporto a cui dare il pacchetto (8)
ricalcolato ad ogni salto o ogni secondo (16)
(32+32)
in base al protocollo (N32)
Architettura degli elaboratori Modulo B- A.Memo
8
Instradamento IP
• il livello Host-To-Network effettua
l’instradamento fisico (switching), mentre
IP quello logico (routing)
• il routing può essere diretto (se mittente e
destinatario appartengono alla stessa rete
fisica) o indiretto (su reti fisiche distinte)
• si decide in base agli indirizzi di mittente e
destinatario
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
9
Instradamento diretto/indiretto
Host 1
Net 1
Host 1
Host 2
Host 3
instradamento
diretto
router
rete fisica
Host 9
Net 1
Host 9
Net 2
Host 1
Net 2
instradamento
indiretto
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
Host 2
Net 1
Host 3
Net 1
rete fisica n°1
Host 2
Net 2
Host 3
Net 2
rete fisica n°2
10
Indirizzi IP
• un indirizzo IP è costituito da 2 campi, per
un totale di 32 bit:
– network number (numero di una rete, una LAN
o una connessione punto-punto tra due router)
– host number (numero caratteristico di ogni
stazione o scheda NIC all’interno di una rete)
• gli indirizzi IP sono suddivisi in classi, in
base alle dimensioni dei due campi
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
11
Classi di indirizzi IP
Rete di classe A : 126 reti con 16.777.214 host
0
network
host
Rete di classe B : 16.382 reti con 65.534 host
1 0
network
host
Rete di classe C : 2.097.150 reti con 254 host
1 1 0
network
1 1 1 0
1 1 1 1 0
8 bit
Architettura TCP/IP
host
multicast address
usi futuri
8 bit
8 bit
Architettura degli elaboratori Modulo B- A.Memo
8 bit
12
Subnetting mask
Indirizzo di Classe C
1 1 0
network
host
maschera di sottorete (subnet mask)
tutti 1
1 1 0
network
tutti 0
subnet
host
Esempio: IP address = 193.207.121.240 subnet mask = 255.255.255.224
network = 193.207.121. subnet = 7 (o 224) host = 16 (o 240)
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
13
Indirizzi IP particolari
0.0.0.0
0.x.x.x
255.255.255.255
x.255.255.255
127.x.x.x
indirizzo dell’host ospite
l’host x.x.x della rete ospite
broadcast sulla rete ospite
broadcast alla rete x
loopback
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
14
Routing IP (1)
salto locale
salto remoto
192.168.11.
192.168.11.
192.168.6.
default
1
3
0
0
link
link
link
link
1,
1,
2,
3,
00-80-2A-33-45-21
00-80-2A-33-45-22
00-80-2A-6A-02-B1
00-80-2A-33-4B-32
00-80-2A-33-45-21
192.168.11.3
00-80-2A-33-45-22
link 1
192.168.17.1
192.168.11.254
00-80-2A-33-4B-A0
link 2
00-80-2A-33-4B-A2
192.168.7.2
00-80-2A-33-4B-A1
router 2
192.168.6.12
00-80-2A-66-01-02
192.168.6.13
00-80-2A-66-01-03
link 1
192.168.6.254
00-80-2A-6A-02-B0
Architettura TCP/IP
link 2
192.168.7.1
Architettura degli elaboratori Modulo B- A.Memo
00-80-2A-6A-02-B1
15
192.168.17.2
192.168.11.1
link 3
00-80-2A-33-48-32
router 1
verso le
altre reti
Routing IP (2)
• un’entità di livello 4 (TCP o UDP) della
stazione 192.168.11.1 vuole inviare un
pacchetto all’analoga entità della stazione
192.168.6.12: per far questo passa al livello
3 (IP) il pacchetto e specifica tra l’altro
l’indirizzo IP del mittente e quello del
destinatario
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
16
Routing IP (3)
• l’entità di livello 3 del mittente confronta i
campi network dei due indirizzi, e decide se
– mittente e destinatario appartengono alla stessa
rete (salto locale);
– appartengono a reti distinte (salto remoto)
• in base a ciò determina l’indirizzo di livello
2 a cui far pervenire il pacchetto, e lo passa
al livello sottostante
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
17
Routing IP (4)
• nell’esempio il salto è remoto, per cui
l’indirizzo di livello 2 da inserire nel
pacchetto è quello di default dell’uscita
dalla rete fisica (00-80-2A-33-4B-A0)
• il pacchetto arriva al livello 3 del router 1
attraverso il suo link1
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
18
Routing IP (5)
• il livello 3 del router controlla la sua tabella
di instradamento, riconosce il destinatario
come un salto remoto verso il link 2, e
quindi rispedisce (relay) il pacchetto con lo
stesso indirizzo IP di mittente, ma con
l’indirizzo di livello 2 di quel link (00-802A-6A-02-B1)
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
19
Routing IP (6)
• il livello 3 del router 2 riceve il pacchetto,
riconosce il destinatario come un salto
locale verso il proprio link 1, e rispedisce il
pacchetto passandolo al livello 2 di quella
interfaccia di rete con indirizzo di livello 2
di destinazione 00-80-2A-66-01-02
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
20
datagram
pacchetto
trama
indirizzo TSAP di livello 4
del destinatario
porta 1080
UDP
livello 3
segmento
transceiver
TCP
IP
livelli 1 e 2
livello 4
indirizzi fisici ed indirizzi IP
driver della
scheda di rete
scheda di rete
transceiver
indirizzo IP di livello 3
del destinatario
192.168.11.37
indirizzo MAC di livello 2
del prossimo nodo
00-40-8A-91-B2-84
segnali elettrici
mezzo fisico
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
21
altri protocolli di rete: ICMP
• Internet Control Message Protocol
• protocollo utilizzato dai router per scambiarsi informazioni sullo stato della rete
destination unreachable
time exceeded
echo request
Architettura TCP/IP
si risponde al mittente che il
destinatario non è raggiungibile
si risponde al mittente che il
pacchetto ha esaurito il tempo a
disposizione
chiede ad una stazione se è viva
Architettura degli elaboratori Modulo B- A.Memo
22
altri protocolli di rete: ARP
• Address Resolution Protocol
• restituisce l’indirizzo di livello 2 di una stazione
individuata dal suo indirizzo IP
– viene inviata una richiesta broadcast del tipo “chi ha
questo indirizzo IP ?”
– solo l’host con quell’IP risponde, passandogli il suo
indirizzo di livello 2
– se l’host è in un’altra rete, i router intermedi dovranno
fungere da tramite nel protocollo
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
23
altri protocolli di rete: RARP
• Reverse Address Resolution Protocol
• svolge il compito inverso: dato un indirizzo
di livello 2 restituisce il relativo indirizzo IP
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
24
il protocollo TCP
• Transmission Control Protocol
• fornisce un trasferimento full-duplex affidabile orientato alla connessione tra mittente e
destinatario, basandosi su una rete non
affidabile
• mette in comunicazione diretta i due interlocutori finali, e quindi non è presente nei
router
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
25
il protocollo TCP: generalità
• riceve il messaggio dal livello applicazione
• lo suddivide in segmenti (TPDU) che passa al
livello rete
• ne controlla il regolare trasferimento mediante
tecniche analoghe a sliding-windows
• riceve dal livello rete i segmenti in arrivo
• ricompone il messaggio originale e lo passa alla
opportuna applicazione di livello superiore
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
26
il protocollo TCP: il socket
• i servizi TCP stabiliscono una connessione
tra due punti di accesso detti socket
• un socket è caratterizzato dalla coppia
IP_address : port_number
• vi sono 216 possibili port number: i primi
256 sono pre-assegnati a servizi standard
(well-known port) [25=SMTP, 110 =POP3,
80=HTTP,…]
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
27
il protocollo TCP: il flusso dati
• una connessione TCP trasferisce un flusso
di byte
• ogni byte del flusso è caratterizzato da un
numero sequenziale a 32 bit
• il numero sequenziale di ogni byte viene
utilizzato in una tecnica di controllo slidingwindows di tipo go-back-N e time-out per
ogni emissione
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
28
intestazione TCP (1)
source port
destination port
sequence number
acknowledgement number
U A P R S F
R C S S Y I
G K H T N N
TCP
header
length
checksum
window size
urgent pointer
options (0 - N•32bit)
data (opzionale)
32 bit
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
29
intestazione TCP (2)
source/dest. port
sequence numb.
ack. number
TCP header leng.
URG
ACK
PSH
RST
SYN
FIN
window size
checksum
urgent pointer
options
Architettura TCP/IP
numero della porta di accesso all'applicazione (216)
numero sequenziale del primo byte del campo dati (32)
numero sequenziale del prossimo byte aspettato (32)
lunghezza totale dell'header in gruppi da 32 bit (4)
sviluppi futuri (6)
Urgent pointer attivato (se a 1)(1)
ACK attivato, è anche un riscontro (se a 1) (1)
Pushed data, dati da far analizzare subito (se a 1) (1)
richiesta di Reset della connessione (se a 1) (1)
SYN=1 ACK=0 richiesta di connessione (1)
SYN=1 ACK=1 connessione accettata
il mittente non ha più dati da trasmettere(se a 1) (1)
numero byte che possono essere ancora spediti (16)
somma di controllo di validità dei dati trasmessi (16)
puntatore ai dati urgenti del campo dati (16)
in base al protocollo (N32)
Architettura degli elaboratori Modulo B- A.Memo
30
attivazione della connessione
• il server lancia una listen() per porsi in ricezione e poi
esegue una accept() in attesa di una richiesta di connessione in un dato port
• il client lancia una connect(host,port,...)
• il server, quando riceve la richiesta, controlla se la
porta richiesta è attiva:
– in caso affermativo, passa la richiesta all’applicazione relativa, e se accettata, conferma al richiedente la connessione
– in caso negativo, la connesione viene rifiutata
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
31
attivazione della connessione
client
server
listen()
accept()
chiedo una connessione, il mio
primo byte avrà
numero (x)
accetto la connessione
mi aspetto di ricevere il
byte numero (x+1) ed il
mio primo byte avrà
numero (y)
ti invio i miei dati
a partire dal byte
(x+1), e mi aspetto
di ricevere il byte
numero (y+1)
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
32
trasferimento dati
• sliding windows di tipo go-back-N, dove le
dimensioni delle finestre vengono comunicate esplicitamente: oltre al riscontro
positivo viene passato il numero di byte
ancora ricevibili
• ad ogni trasmissione si fa partire un timer
per la ritrasmissione
• in caso di errore si riparte dal byte errato
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
33
trasferimento dati (1)
mittente
destinatario
devo trasmettere 5KByte
4 KB
buffer vuoto
invio i primi 2K, a partire
da 0, faccio partire il timer
immagazzino 2K nel
buffer, comunico che
ho ricevuto correttamente i byte 0-2047,
aspetto i byte a partire
dal 2048, e posso ricevere ancora 2048 byte
invio altri 2K, a partire
dal byte numero 2048,
faccio partire il timer
Architettura TCP/IP
2K
Architettura degli elaboratori Modulo B- A.Memo
2K
34
trasferimento dati (2)
mittente
destinatario
2K 2K
immagazzino altri 2K nel
buffer, comunico che ho
ricevuto correttamente i
byte 2048-4095, aspetto
i byte a partire dal 4096,
e posso ricevere ancora
0 byte
4 KB
buffer pieno
non posso trasmettere
altri byte perché il buffer
in ricezione è pieno, e
quindi aspetto
il destinatario legge i
primi 2K dal buffer e li
passa all’applicazione
2K 2K
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
35
trasferimento dati (3)
mittente
destinatario
2K
invio l’ultimo 1K, a
partire dal byte
numero 4096, e
faccio partire il timer
2K
immagazzino 1K nel
buffer, comunico che ho
ricevuto correttamente i
byte 4096-5019, aspetto
i byte a partire dal 5020,
e posso ricevere ancora
1024 byte
1K 1K 2 K
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
36
trasferimento dati (4)
• viene gestita anche una congestion windows per
ridurre la possibilità di congestione, e in trasmissione si sceglie il più piccolo tra il suo valore e quello
del buffer del ricevitore
• la dimensione iniziale della congestion window è
pari alla dimensione massima del segmento
• il valore di threshold viene fissato inizialmente pari
alla dimensione massima del segmento
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
37
trasferimento dati (5)
• ad ogni ack ricevuto la congestion window
– raddoppia se il suo valore è inferiore al threshold
– si allarga di 1 segmento se è superiore
• ad ogni time-out
– threshold = ½ congestion window
– congestion window = max segmento
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
38
rilascio della connessione
• per evitare la perdita di dati determinata da una scon-nessione
libera da parte di una stazione (rilascio asimmetrico) si
adotta il rilascio simmetrico, dove ogni connessione full
duplex è vista come una coppia di connessioni simplex
• A e B sono due stazioni che sanno comunicando in fullduplex: quando A ha finito invia un FIN a B, il quale accetta il
rilascio e la connessione da A a B termina, mentre da B ad A
possono ancora essere scambiati dati
• quando anche B termina, si avvia lo stesso procedi-mento e
l’intera connessione viene chiusa
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
39
rilascio della connessione
utente A
utente B
non ho altri dati da
trasmettere, per me
la connessione si
può rilasciare
ora anche io non ho
altri dati da trasmettere
e possiamo rilasciare
la connessione
ora rilascio la
connessione ...
… e ti avviso che mi
sono sconnesso
ora mi sconnetto anch’io
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
40
altri protocolli di trasporto: UDP
• User Data Protocol
• offre un servizio di trasporto non connesso e
non affidabile
• utilizzato per trasferire un basso numero di
informazioni, tipo segnali di controllo di
pochi byte nei collegamenti client/server
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
41
formato pacchetto UDP
source port
destination port
total length
checksum
dati
32 bit
source/dest. port
total length
checksum
Architettura TCP/IP
numero della porta di accesso all'applicazione (216)
lunghezza del pacchetto, header + dati (16)
somma di controllo di validità dei dati trasmessi (=0 non usato) (16)
Architettura degli elaboratori Modulo B- A.Memo
42
il sistema DNS
• l’uso diretto degli indirizzi IP (versione numerica) è scomodo e poco mnemonico [193.207.118.131]
• ad ogni sistema può essere associato un indirizzo simbolico
(versione logica) [www.rai.it]
• il sistema Domain Name System mette in relazione indirizzi numerici con indirizzi logici
• il DNS consiste di
– uno schema gerarchico di attribuzione dei nomi basato sui domini
– un database distribuito che implementa questo schema
– un protocollo per l’interrogazione e l’aggiornamento dello schema
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
43
DNS: funzionamento
• per passare da indirizzo logico a indirizzo
numerico un’applicazione invia una richiesta al
DNS server locale
• se il DNS server locale ha nella sua tabella interna
quell’indirizzo, lo restituisce subito
• altrimenti inoltra la richiesta ad un DNS server
remoto di livello gerarchico superiore, ne aspetta
la risposta e poi la passa all’applicazione
richiedente
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
44
DNS: organizzazione dei domini
subdomain subdomain
2
1
top level
domain
USA
com
mil
il resto del mondo
org
edu
gov
ucis
yale
mit
phil
eng
cs
fr
ch
jp
uk
it
unimi
unipd
unive
ing
math
ling
host.subdomainN.___.subdomain2.subdomain1.topleveldomain
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
45
DNS: implementazione
• ogni dominio ha il compito di fornire e
mantenere aggiornato il proprio DNS server
(o più d’uno, gerarchicamente organizzati)
• per ogni host, il DNS ha il seguente record:
domain name
time to live
class
type
value
Architettura TCP/IP
www.unipd.it
50000
IN
A
193.200.3.1
nome logico dell'host
secondi per cui questi dati possono rimanere in cache
classe del record (internet)
tipo di record (address)
indirizzo IP dell'host
Architettura degli elaboratori Modulo B- A.Memo
46
posta elettronica: generalità
• un servizio di posta elettronica permette di
–
–
–
–
–
–
–
comporre un messaggio
spedire un messaggio ad un destinatario
spedire un messaggio (circolare) a più destinatari
ricevere un messaggio
leggere i messaggi ricevuti
gestire un elenco di indirizzi di posta elettronica
gestire l’insieme dei messaggi ricevuti
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
47
posta elettronica: il messaggio
• generalmente il messaggio è composto dalle
seguenti informazioni (*=obbligatorie):
To
From
Cc
Bcc
Attach
Subject
Body
Architettura TCP/IP
* indirizzo del destinatario (o lista di destinatari)
* indirizzo del mittente
indirizzo del destinatario della possibile copia palese per
conoscenza (o lista dei destinatari)
indirizzo del destinatario della possibile copia nascosta per
conoscenza (o lista dei destinatari)
nome degli eventuali file incorporati nel messaggio
oggetto del messaggio
testo del messaggio in codice ASCII (a 7 bit)
Architettura degli elaboratori Modulo B- A.Memo
48
posta elettronica: MUA
• in Internet lo scambio di posta elettronica utilizza due
funzioni distinte: MUA ed MTA
• MUA (Mail User Agent) è l’interfaccia verso l’utente
ed ha principalmente il compito di:
– comporre il messaggio da spedire assemblando i vari campi
– trasferire il messaggio da spedire all’MTA (del mittente) per
la sua trasmissione
– ricevere dall’MTA locale (che ora funge da destinatario) e
passare all’utente i messaggi pervenuti
– gestire la memorizzazione dei messaggi trasferiti
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
49
posta elettronica: MTA
• MTA (Mail Transport Agent) è il vero artefice del
trasferimento dei messaggi ed ha principalmente il
compito di:
– trasferire il messaggio pervenuto fino all’MTA di
destinazione, che svolge funzioni di cassetta postale
– fornire all’MUA di destinazione, su sua esplicita
richiesta, i messaggi ad esso indirizzati, verificandone il
diritto di prelievo
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
50
posta elettronica: architettura
MTA
MTA
MUA
MTA
MTA
mittente
MUA
destinatario
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
51
protocollo SMTP (1)
• Simple Mail Transfer Protocol è il protocollo che
implementa le funzionalità di trasferimento del MUA:
– il mittente predispone, con la versione locale del MUA, il
messaggio da inviare, e lo spedisce (SEND)
– il MUA, tramite DNS operante su spazi di nomi distinti
dagli altri servizi, traduce l’indirizzo logico del mittente in
indirizzo fisico, coincidente con l’MTA del mittente
– il MUA stabilisce una connessione TCP con il suo MTA e
tramite protocollo SMTP trasferisce il messaggio dal client
SMTP dell’host del mittente al server SMTP dell’MTA del
mittente, e poi rilascia la connessione
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
52
protocollo SMTP (2)
– il server SMTP dell’MTA del mittente, tramite DNS
specifico, traduce l’indirizzo logico del destinatario in
indirizzo fisico, coincidente con l’MTA del destinatario
– il server SMTP dell’MTA del mittente, ora operante in
modalità client, stabilisce una connessione TCP con il
server SMTP dell’MTA del destinatario (anche
attraversando più server SMTP) e trasferisce il messaggio
al server SMTP dell’MTA del destinatario, che lo trascrive
nella relativa cassetta postale del destinatario, e poi rilascia
la connessione
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
53
protocollo SMTP: esempio
yyy.it client SMTP
il client instaura una connessione
affidabile con il server
il client è pronto a trasmettere un messaggio
server SMTP xxx.it
il server si rende disponibile a ricevere posta
il server si identifica
il client specifica
il mittente
il server conferma il
mittente
il client specifica
il destinatario
il server conferma il
destinatario
il client avvisa che è
pronto ad inviare i dati
il server conferma che
è pronto a ricevere i dati
segue
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
54
protocollo SMTP: esempio
yyy.it client SMTP
il client trasmette
il messaggio
il client non ha altri
messaggi e vuole
rilasciare la connessione
Architettura TCP/IP
segue
From: [email protected]
To: [email protected]
MIME-Version: 1.0
Message-Id: <[email protected]>
Content-Type:multipart ...
Subject: prova
Content-Type: text/richtext
Ciao, è una prova.
.
server SMTP xxx.it
il server riceve il messaggio
una riga alla volta, fino
all’ulrima riga contenente
solo un “.”
il server ha ricevuto tutto
il messaggio, e ne da
riscontro positivo
il server accetta il rilascio
della connessione
Architettura degli elaboratori Modulo B- A.Memo
55
protocollo POP3
• Post Office Protocol versione 3 è il protocollo che
implementa le funzionalità di ricezione dell’MTA:
– il destinatario manda in esecuzione la versione locale del
MUA, e richiede se gli è arrivata posta
– il MUA, tramite DNS operante su spazi di nomi distinti
dagli altri servizi, traduce l’indirizzo logico del destinatario
in indirizzo fisico, coincidente con l’MTA del destinatario
– il MUA stabilisce una connessione TCP con il suo MTA e
tramite protocollo POP3 trasferisce i messaggi pervenuti,
dal server POP3 dell’MTA del destinatario al client POP3
dell’MUA del destinatario, e poi rilascia la connessione
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
56
standard MIME
• Multipurpose Internet Mail Extension,
estende le possibilità del formato dei
messaggi, offre codici per le lettere
accentate, permette di separare nel body
parte codificate in ASCII a 7 bit da altre
codificate ad 8 bit (file generici, audio,
video, grafica, …) con lo standard BASE64,
fornisce l’opportunità di attachment
Architettura TCP/IP
Architettura degli elaboratori Modulo B- A.Memo
57
Scarica

arc_tcp