Title: Nessun titolo diapositiva
1Architettura 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
2Il 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 lordine darrivo
3Obiettivi del protocollo IP
- incorpora i datagram (encapsulation datagram)
- frammenta i datagram (fragmentation datagram)
- gestisce la vita in rete dei datagram
- instrada i datagram
4Gestione 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
NIC 2
5Funzioni svolte dal livello IP
- genera e controlla lintestazione (header
validation) - calcola o verifica il checksum
- determina linstradamento (next hop)
- gestisce la redirezione
- aggiunge i dati del mittente nei datagram
prodotti localmente(ICI) - frammenta e ricostruire i datagram
- gestisce le comunicazioni broadcast
6Caratteristiche 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
7intestazione del pacchetto IP
version
IHL
tipo di servizio
lunghezza totale
identificatore segmento
D F
M F
offset del frammento
time to live
protocollo
checksum dellheader
indirizzo del mittente
indirizzo del destinatario
campo opzioni
32 bit
8campi dellintestazione IP
9Instradamento IP
- il livello Host-To-Network effettua
linstradamento 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
10Instradamento diretto/indiretto
Host 1 Net 1
Host 2 Net 1
Host 3 Net 1
rete fisica n1
Host 1
Host 2
Host 3
Host 9 Net 1
router
Host 9 Net 2
rete fisica
instradamento diretto
Host 1 Net 2
Host 2 Net 2
Host 3 Net 2
instradamento indiretto
rete fisica n2
11Indirizzi 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 allinterno di una rete) - gli indirizzi IP sono suddivisi in classi, in
base alle dimensioni dei due campi
12Classi 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
network
host
0
Rete di classe C 2.097.150 reti con 254 host
1
network
host
0
1
1
multicast address
0
1
1
1
usi futuri
0
1
1
1
8 bit
8 bit
8 bit
8 bit
13Subnetting mask
Indirizzo di Classe C
1
network
host
0
1
maschera di sottorete (subnet mask)
tutti 0
tutti 1
1
network
host
0
1
subnet
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)
14Indirizzi IP particolari
- 0.0.0.0 indirizzo dellhost ospite
- 0.x.x.x lhost x.x.x della rete ospite
- 255.255.255.255 broadcast sulla rete ospite
- x.255.255.255 broadcast alla rete x
- 127.x.x.x loopback
15Routing IP (1)
salto locale
salto remoto
verso le altre reti
router 1
link 3
192.168.17.2
link 1
192.168.17.1
192.168.11.1
192.168.11.3
00-80-2A-33-48-32
link 2
192.168.11.254
00-80-2A-33-4B-A2
00-80-2A-33-45-21
00-80-2A-33-45-22
192.168.7.2
00-80-2A-33-4B-A0
00-80-2A-33-4B-A1
router 2
link 1
192.168.6.12
192.168.6.13
link 2
192.168.6.254
00-80-2A-66-01-03
00-80-2A-66-01-02
192.168.7.1
00-80-2A-6A-02-B0
00-80-2A-6A-02-B1
16Routing IP (2)
- unentità di livello 4 (TCP o UDP) della stazione
192.168.11.1 vuole inviare un pacchetto
allanaloga entità della stazione 192.168.6.12
per far questo passa al livello 3 (IP) il
pacchetto e specifica tra laltro lindirizzo IP
del mittente e quello del destinatario
17Routing IP (3)
- lentità 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 lindirizzo di livello 2
a cui far pervenire il pacchetto, e lo passa al
livello sottostante
18Routing IP (4)
- nellesempio il salto è remoto, per cui
lindirizzo di livello 2 da inserire nel
pacchetto è quello di default delluscita dalla
rete fisica (00-80-2A-33-4B-A0) - il pacchetto arriva al livello 3 del router 1
attraverso il suo link1
19Routing 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 lindirizzo di
livello 2 di quel link (00-80-2A-6A-02-B1)
20Routing 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
21indirizzi fisici ed indirizzi IP
indirizzo TSAP di livello 4 del
destinatario porta 1080
livello 4
transceiver
TCP
UDP
segmento
indirizzo IP di livello 3 del destinatario 192.168
.11.37
IP
livello 3
datagram
driver della scheda di rete
pacchetto
livelli 1 e 2
indirizzo MAC di livello 2 del prossimo
nodo 00-40-8A-91-B2-84
scheda di rete
trama
transceiver
segnali elettrici
mezzo fisico
22altri protocolli di rete ICMP
- Internet Control Message Protocol
- protocollo utilizzato dai router per scam-biarsi
informazioni sullo stato della rete
23altri protocolli di rete ARP
- Address Resolution Protocol
- restituisce lindirizzo di livello 2 di una
stazione individuata dal suo indirizzo IP - viene inviata una richiesta broadcast del tipo
chi ha questo indirizzo IP ? - solo lhost con quellIP risponde, passandogli il
suo indirizzo di livello 2 - se lhost è in unaltra rete, i router intermedi
dovranno fungere da tramite nel protocollo
24altri protocolli di rete RARP
- Reverse Address Resolution Protocol
- svolge il compito inverso dato un indirizzo di
livello 2 restituisce il relativo indirizzo IP
25il protocollo TCP
- Transmission Control Protocol
- fornisce un trasferimento full-duplex affida-bile
orientato alla connessione tra mittente e
destinatario, basandosi su una rete non
affidabile - mette in comunicazione diretta i due
interlo-cutori finali, e quindi non è presente
nei router
26il 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
27il 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) 25SMTP, 110 POP3, 80HTTP,
28il 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
sliding-windows di tipo go-back-N e time-out per
ogni emissione
29intestazione TCP (1)
source port
destination port
sequence number
acknowledgement number
A C K
U R G
P S H
F I N
R S T
S Y N
TCP header length
window size
checksum
urgent pointer
options (0 - N32bit)
data (opzionale)
32 bit
30intestazione TCP (2)
31attivazione della connessione
- il server lancia una listen() per porsi in
ricezione e poi esegue una accept() in attesa di
una richiesta di con-nessione 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
allapplicazione rela-tiva, e se accettata,
conferma al richiedente la connessione - in caso negativo, la connesione viene rifiutata
32attivazione della connessione
client
server
listen()
accept()
chiedo una con- nessione, il mio primo byte
avrà numero (x)
SYN1, ACK0, SEQx
accetto la connessione mi aspetto di ricevere
il byte numero (x1) ed il mio primo byte
avrà numero (y)
ti invio i miei dati a partire dal byte (x1), e
mi aspetto di ricevere il byte numero (y1)
SYN1, ACKy1, SEQx1
33trasferimento dati
- sliding windows di tipo go-back-N, dove le
dimensioni delle finestre vengono comuni-cate
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
34trasferimento 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 corretta- mente i byte 0-2047, aspetto i
byte a partire dal 2048, e posso rice- vere
ancora 2048 byte
invio altri 2K, a partire dal byte numero
2048, faccio partire il timer
2 K
2 K
SEQ2048, dati(2K)
35trasferimento dati (2)
mittente
destinatario
2 K
2 K
SEQ2048, dati(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
non posso trasmettere altri byte perché il
buffer in ricezione è pieno, e quindi aspetto
4 KB
buffer pieno
il destinatario legge i primi 2K dal buffer e
li passa allapplicazione
ACK4096, WIN2048
2 K
2 K
36trasferimento dati (3)
mittente
destinatario
ACK4096, WIN2048
2 K
2 K
invio lultimo 1K, a partire dal byte numero
4096, e faccio partire il timer
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
ACK5020, WIN1024
1K
2 K
1K
37trasferimento dati (4)
- viene gestita anche una congestion windows per
ridurre la possibilità di congestione, e in
trasmissio-ne 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
38trasferimento 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
39rilascio 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
full-duplex 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 lintera connessione viene chiusa
40rilascio 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
FIN
ora rilascio la connessione ...
e ti avviso che mi sono sconnesso
ora mi sconnetto anchio
41altri 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
42formato pacchetto UDP
source port
destination port
total length
checksum
dati
32 bit
43il sistema DNS
- luso diretto degli indirizzi IP (versione
numerica) è scomo-do 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
indiriz-zi 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 linterrogazione e
laggiornamento dello schema
44DNS funzionamento
- per passare da indirizzo logico a indirizzo
numerico unapplicazione invia una richiesta al
DNS server locale - se il DNS server locale ha nella sua tabella
interna quellindirizzo, lo restituisce subito - altrimenti inoltra la richiesta ad un DNS server
remoto di livello gerarchico superiore, ne
aspetta la risposta e poi la passa
allapplicazione richiedente
45DNS organizzazione dei domini
USA
il resto del mondo
mil
org
ch
jp
top level domain
com
gov
fr
uk
edu
it
subdomain 1
ucis
mit
yale
unive
unipd
unimi
subdomain 2
cs
eng
phil
ling
math
ing
host.subdomainN.___.subdomain2.subdomain1.toplevel
domain
46DNS implementazione
- ogni dominio ha il compito di fornire e mantenere
aggiornato il proprio DNS server (o più duno,
gerarchicamente organizzati) - per ogni host, il DNS ha il seguente record
47posta 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 linsieme dei messaggi ricevuti
48posta elettronica il messaggio
- generalmente il messaggio è composto dalle
seguenti informazioni (obbligatorie)
49posta elettronica MUA
- in Internet lo scambio di posta elettronica
utilizza due funzioni distinte MUA ed MTA - MUA (Mail User Agent) è linterfaccia verso
lutente ed ha principalmente il compito di - comporre il messaggio da spedire assemblando i
vari campi - trasferire il messaggio da spedire allMTA (del
mittente) per la sua trasmissione - ricevere dallMTA locale (che ora funge da
destinatario) e passare allutente i messaggi
pervenuti - gestire la memorizzazione dei messaggi trasferiti
50posta elettronica MTA
- MTA (Mail Transport Agent) è il vero artefice del
trasferimento dei messaggi ed ha principalmente
il compito di - trasferire il messaggio pervenuto fino allMTA di
destinazione, che svolge funzioni di cassetta
postale - fornire allMUA di destinazione, su sua esplicita
richiesta, i messaggi ad esso indirizzati,
verificandone il diritto di prelievo
51posta elettronica architettura
MTA
MTA
MUA
MTA
MTA
mittente
MUA
destinatario
52protocollo 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 lindirizzo
logico del mittente in indirizzo fisico,
coincidente con lMTA del mittente - il MUA stabilisce una connessione TCP con il suo
MTA e tramite protocollo SMTP trasferisce il
messaggio dal client SMTP dellhost del mittente
al server SMTP dellMTA del mittente, e poi
rilascia la connessione
53protocollo SMTP (2)
- il server SMTP dellMTA del mittente, tramite DNS
specifico, traduce lindirizzo logico del
destinatario in indirizzo fisico, coincidente con
lMTA del destinatario - il server SMTP dellMTA del mittente, ora
operante in modalità client, stabilisce una
connessione TCP con il server SMTP dellMTA del
destinatario (anche attraversando più server
SMTP) e trasferisce il messaggio al server SMTP
dellMTA del destinatario, che lo trascrive nella
relativa cassetta postale del destinatario, e poi
rilascia la connessione
54protocollo SMTP esempio
yyy.it client SMTP
server SMTP xxx.it
il client instaura una connessione affidabile con
il server
il server si rende dispo- nibile a ricevere posta
220 (xxx.it READY FOR MAIL)
il client è pronto a tras- mettere un messaggio
HELO (yyy.it)
il server si identifica
250 (xxx.it SAYS HELLO to yyy.it)
il client specifica il mittente
MAIL FROM (pippo_at_yyy.it)
il server conferma il mittente
250 (SENDER OK)
il client specifica il destinatario
RCPT TO (pluto_at_xxx.it)
il server conferma il destinatario
250 (RECIPIENT OK)
il client avvisa che è pronto ad inviare i dati
DATA
il server conferma che è pronto a ricevere i dati
354 (SEND MAIL)
segue
55protocollo SMTP esempio
yyy.it client SMTP
server SMTP xxx.it
segue
il client trasmette il messaggio
From pippo_at_yyy.it
il server riceve il messaggio una riga alla
volta, fino allulrima riga contenente solo un
.
To pluto_at_xxx.it
MIME-Version 1.0
Message-Id lt1234.AA78_at_yyy.itgt
Content-Typemultipart ...
Subject prova
Content-Type text/richtext
Ciao, è una prova.
il server ha ricevuto tutto il messaggio, e ne
da riscontro positivo
.
il client non ha altri messaggi e
vuole rilasciare la connessione
250 (MESSAGE ACCEPTED)
QUIT
il server accetta il rilascio della connessione
221 (xxx.it CLOSING CONNECTION)
56protocollo POP3
- Post Office Protocol versione 3 è il protocollo
che implementa le funzionalità di ricezione
dellMTA - 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 lindirizzo
logico del destinatario in indirizzo fisico,
coincidente con lMTA del destinatario - il MUA stabilisce una connessione TCP con il suo
MTA e tramite protocollo POP3 trasferisce i
messaggi pervenuti, dal server POP3 dellMTA del
destinatario al client POP3 dellMUA del
destinatario, e poi rilascia la connessione
57standard 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 lopportunità di attachment