Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
di Giacomo Marciani
Ingegneria di Internet
Teoria, Formulario e Suggerimenti Pratici
Una
Network
network edge
(1)
processing delay dprocessing : analisi del packet header al ne di determinare il corretto outbound link sul quale redirezionare il packet, ed
esecuzione del parity check sui bits del packet al ne di localizzarvi e correggervi eventuali errori; risulta essere una componente quantitativamente
trascurabile, ma determinante nella massimizzazione del throughut.
destinazione.
alla
risulta
dqueueing =
R
1 La
R
(2)
dove La
R il trac intensity rate, L il numero di bits del packet, a
il quantitativo medio di packets in arrivo nell'unit di tempo, ed R il
throughput del communication link.
Data la nitezza dell'output buer queue, La
R 1 induce il router ad eseguire il packet dropping, ovvero la rimozione di tutti quei packets in arrivo
che comporterebbero un overow, causando cos il packet loss, ovvero la
perdita dei packets trasmessi. Risulta dunque
dqueueing
packetloss
La
R
La
R
(3)
(4)
transmission delay
dtransmission =
L
R
(5)
propagation delay
dpropagation =
D
s
(6)
La
0
R
(7)
A queste componenti va aggiunto l'host delay dhost , ovvero il delay introdotto dall'host, le cui componenti principali sono:
10 la
velocit di propagazione
s un valore tipicamente compreso nell'intervallo
.
dpacketization : assemblaggio dei packets nel formato richiesto dal protocollo utilizzato.
packetization delay
connection orientation
stateness
application
transport
network
link
physical
: scambio di frame.
: scambio di bit.
Gli hosts implementano tutta la protocol stack, mentre i packet switches implementano solo i layers di basso livello.
11 storicamente, la internet protocol stack era strutturata secondo il modello ISO OSI
(International Organization for Standardization Open Systems Interconnection),
il quale prevedeva due layers addizionali tra application layer e transport layer :
presentation: interpretazione dei dati.
session: limitazione, sincroizzazione e recovery dei dati.
Ad oggi compito dell'application developer sviluppare, qualora ritenuti utili, i due layers
ISO OSI aggiuntivi all'interno dell'application layer.
Application Layer
socket
processo di indirizzamento
della rete, un
host13 .
numero di porta
: un server 14 soddisfa le richieste di molteplici clients intermittenti. La comunicazione tra i clients mediata dal server, essi non
stabiliscono mai una comunicazione diretta.
client-server
protocol
di una ap-
transport-layer protocol
utato in termini di
: una applicazione loss-sensitive necessita che vengano garantiti integrit ed ordine della totalit dei
pacchetti trasmessi; una applicazione loss-tolerant pu sostenere un
certo grado di packet-loss.
throughput17 : una applicazione bandwidth-sensitive necessita che
venga garantito un throghput costante; una applicazione bandwidthelastic non necessita di un throughput costante; una applicazione
bandwidth-adaptive adatta dinamicamente la codicazione dell'informazione
in funzione del throughout istantaneo disponibile.
tempo di trasferimento18 : una applicazione time-sensitive necessita che venga garantito un tempo di trasferimento costante; una
applicazione time-elastic si adatta al tempo di trasferimento istantaneo disponibile.
sicurezza
messaggi e azioni
protocollo connectionstatefull, che ore servizi di data transfer reliability, ow control 21 e congestion control 22 . Il servizio di sicurezza23 , pu essere integrato
nell'application-layer dal Secure Socket Layer (SSL), il quale realizza
servizi di encryption, data integrity ed end-to-end authentication.
oriented 20 ,
24 :
Web
request message
request line
header lines
blank line
response message
status line
header lines
version
value
...
entity body
URL
value
version
header eld name
...
header eld name
blank line
status code
value
phrase
value
...
entity body
: richiesta di un oggetto.
post: invio di dati.
27
head: verica della reperibilit di un oggetto, a scopo di debug .
put: inserimento di un oggetto.
delete: rimozione di un oggetto.
get
200 ok
: ogni riga indica una coppia key-value, arricchendo al tipizzazione del messaggio.
header lines
entity body
: in un request message contiene dati inseriti dal client, evidentemente utili a soddisfare la richiesta; in un response message contiene
l'oggetto richiesto.
1. il Web server memorizza un record cookie < x, client host > nel proprio
back-end database;
2. il Web server invia l'opportuno response message con header line Setcookie: x;
3. il Web browser memorizza il le cookie < serverhost, x > nel le system
dell'utente;
4. da questo momento in poi, il Web browser appender l'header line Cookie:
x
Web cache Una Web cache29 una entit di rete che realizza il caching
per un web server. Una Web cache serve le richieste dei clients mantenendo in
un back-end storage le copie degli oggetti recentemente richiesti al Web server.
Ci permette di minimizzare i tempi di risposta delle richieste, i bottlenecks
tra clients e web server nonch il traco su un eventuale access network link
istituzionale. In denitiva il web caching minimizza il traco Web in Internet,
giovando alle performance di tutte le applicazioni Web. Una Web cache pu
dunque agire da server nei confronti di un client, e da client nei confronti di un
Web server.
Una content distribution network (CDN) una rete di web caches
geogracamente distribuite, al ne di localizzare il traco di rete.
Il conditional GET un meccanismo HTTP che permette ad una Web
cache di stabilire se un oggetto richiesto possa essere ritornato al client direttamente dal proprio back-end storage, o debba essere cachato richiedendolo al
Web server. Tale meccanismo realizzato mediante il metodo GET, gli header
line Last-Modied: e If-modied-since: e gli status code 200 e 304.
Se il Web browser invia alla Web cache un request message per un oggetto
non cachato
10
il Web server invia alla Web cache un response message 200 con
l'oggetto richiesto e l'header line Last-Modied:x0 ;
la Web cache inoltra l'oggetto al Web browser che ne aveva fatta
richiesta;
la Web cache cacha l'oggetto con data x0 .
2.2
File transfer
Una applicazione
di file transfer
USER username
PASSWORD password
LIST
RETR filename
STOR filename
11
2.3
1. lo user agent invia la mail al Mail server del mittente mediante il protocollo;
2. il Mail server del mittente inserisce la mail nella propria message queue;
3. il Mail server del mittente preleva il messaggio dalla message queue e lo
invia al Mail server del destinatario stabilendovi una connessione TCP
sulla porta 25.
4. il Mail server del destinatario inserisce il messaggio nella mailbox del destinatario.
5. se non vi sono altri messagi dal inviare, il Mail server del mittente chiude
la connessione TCP.
Mostriamo ora un tipico dialogo SMTP
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
220 d e s t s e r v e r . com
HELO m i t t s e r v e r . com
250 H e l l o m i t t s e r v e r . com , p l e a s e d to meet you
MAIL FROM: <mitt@mittserver . com>
250 mitt@mittserver . com . . . Sender ok
RCPT TO: <d e s t @ d e s t s e r v e r . com
250 d e s t @ d e s t s e r v e r . com . . . R e c i p i e n t ok
DATA
354 Enter mail , end with " . " on a l i n e by i t s e l f
Ciao caro ,
come s t a i ?
.
32 SMTP un push protocol, ovvero un protocollo in base al quale le connessioni TCP sono
iniziate dal host che intende inviare l'informazione. Questo vuol dire che la ricezione delle
email deve avvenire mediante un pull protocol.
33 denito in RFC 5321.
12
38 :
Web-Mail La Web mail un servizio di posta elettronica che utilizza il protocollo HTTP sia per la trasmissione che per la ricezione della posta elettronica.
Lo user agent un Web browser che comunica con il Mail server mediante scambio di messaggi HTTP.
2.4
DNS
1939.
pass password
36 list
retr id_mail
dele id_mail
37 l'aggiornamento secondo le transazioni impartite viene eseguito in corrispondenza della
chiusura della connessione, ovvero con il comando quit.
38 denito in RFC 3501.
39 porta 993 in caso di connessione SSL.
40 denito in RFC 1034 e RFC 1035.
13
host translation
rizzo IP.
host aliasing: risoluzione di un alias nel corrispondente canonical hostname di un Web server.
Mail server aliasing: risoluzione di un alias nel corrispondente canonical hostname del Mail server.
: risoluzione di un canonical hostame nei corrispondenti indirizzi IP dei Web server replicanti.
load distribution
: mappa gli hostname negli indirizzi IP dei corrispondenti TLD DNS servers.
root DNS server
rizzi IP.
record (RR)
una tupla
Type=A
Type=NS
Type=CNAME
14
Header
Question
Answers
Info
id
ags
no. queries
no. aswer RRs
no. authoritative RRs no. additional RRs
query
RRs
authoritative RRs
additional RRs
header
question
answers
infos
42 in una reply ad una query MX, questa sezione contiene un RR con il canonical hostname
del Mail server, ed il suo indirizzo IP.
15
In un attacco DDoS indirizzato ad un host, viene inoltrato a pi authoritative server DNS un grande quantitativo di query DNS aventi come mittente
l'indirizzo IP dell'host da attaccare; in questo modo l'host viene sovraccaricato
di reply DNS no a bloccarsi.
In un attacco MITM vengono intercettate le query DNS e restituite reply
DNS maligne, in modo da redirezionare il traco utente verso siti maligni,
nanche ad infettare le DNS cache.
DDoS bandwidth-oating:
DNS DDos:
Man-In-The-Middle (MITM):
2.5
Applicazioni Peer-to-Peer
F
NF
,
uS dC,min
F
F
NF
,
,
P
uS dC,min uS + N
i=1 ui
(8)
)
(9)
16
17
query.
18
Transport Layer
: il receiver deve dare al sender un feedback sulla comunicazione. Implementato mediante acknoledgement, ovvero il meccanismo per cui il receiver invia al sender un positive acknoledgement
(ACK) che riscontra la corretta ricezione dei packet ricevuti. I duplicate
ACK, ovvero ACK riscontranti un i-esimo packet gi riscontrato, denotano dunque la scorretta o mancata ricezione di un qualunque j > i-esimo
packet. Il meccanismo di acknoledgement pu essere:
receiver feedback
individual acknoledgement
19
: il sender deve sapere quando e come sia necessario ritrasmettere i packet errati o perduti. Implementato mediante
packet retrasmission
acknoledgement retrasmission
stop-and-wait protocol
pipelined protocol:
packet buffering
winsize
(10)
21
: il transport-layer inferisce la congestion osservandone i sintomi, senza alcun supporto da parte del networklayer.
router-assisted
packet
destination port
lenght
checksum
data
source/destination port
tion host.
lenght
checksum
data
: contiene il message.
UDP considera ogni segment come un segment a se stante, senza alcuna visione
d'insieme sul usso dei dati. UDP utilizza il port number per indirizzare il
segment ricevuto alla socket opportuna. In caso di errori nel segment, UDP pu
ignorare il segment o inoltrarlo all'application-layer con un warning.
UDP preferibile per quelle applicazioni fault-tolerant che desiderino
53 denito
in RFC 768.
22
TCP
source/destination port
tion host.
: sequence number del segment, ovvero il suo posizionamento in byte all'interno di uno stream di segment.
sequence number
ACK number
23
header length
URG
ACK
PSH
RST
SYN
FIN
receive window
checksum
options
data
:
:
: utilizzato nel connection setup per inizializzare la connessione.
: contiene il message.
1.
syn
2.
synack
segment
3.
ack synack
synack segment
client fin
fin
segment
2.
client finack
n segment.
24
3.
server fin
fin
segment
4.
server finack
n segment.
Se il client invia un segment destinato ad una porta non accetta dal server, il
server invia un reset segment, ovvero un segment con RST = 1 che induce il
client ad interrompere il processo di negoziazione.
Il TCP sore di due scenari patologici: connection setuo simultanei e connection teardown simultanei.
Il SYN flood attack un attacco DoS che sfrutta la mancante memorizzazione dei syn segment da parte del server durante il 3-way handshake,
per indurlo ad allocare cos tante risorse per connessioni inutili da inciare
l'inizializzazione delle connessioni legittime. L'hacker invia un gran numero di
syn segment senza mai riscontrare i synack segment. I syn cookie57 sono stati
sviluppati proprio per contrastare questo tipo di attacco. I cookie permettono
al server di memorizzare i syn segment. Il server allocan le risorse solo dopo
aver ricevuto il riscontro per un synack per cui esista un syn cookie.
Reliable data transfer Il TCP reliable data transfer prevede
cumulative-acknoledgement time-based (re)trasmission: il receiver attende al pi 500msec prima di riscontrare il segment ricevuto,
cos da poterne eventualmente ricevere altri e sfruttare la cumulazione.
(11)
( = 0, 125)
( = 0, 25)
(12)
(13)
57 deniti
in RFC 4987.
25
fast retrasmit
(14)
: cwnd assume una crescita lineare di 1M SS per ogni duplicate ACK riscontrante il segment che ha indotto la transizione a questo
stato.In caso di ACK, cwnd = sthres ed entra nello stato di congestion
avoidance. In caso di timeout, sthres = cwnd
e cwnd = 1M SS ed entra
2
nello stato di slow start.
fast recovery
26
(15)
(16)
27
Network Layer
Il network layer, presente nella protocol stack di ogni host ed ogni router,
realizza la comunicazione host-to-host, mediante
: trasferimento locale di un datagram da un input link ad un
opportuno output link, all'interno di uno stesso router. Questo servizio
realizzato mediante indicizzazione della forwarding table.
forwarding
routing
: determinazione del route di un datagram all'interno del network, dalla sorgente alla destinazione. Questo servizio realizzato mediante l'utilizzo di un routing protocol.
connection-oriented
connectionless
4.1
Virtual Circuit Networks Una virtual circuit network (VC network) una computer network con network layer connection-oriented.
Un virtual circuit (VC) l'istanza di una network layer connection
all'interno di una VC network. Intutitivamente, un VC dunque l'istanza di
un route in una VC network. Un VC number un numero casuale associato
ad un link appartenente ad un VC. Intuitivamente, un VC number dunque
l'instanza di un passaggio locale di una connessione lungo un link.
Ogni router ha una forwarding table che mappa lo spazio delle istanze di
un passaggio locale in un input link, con l'istanza di un passaggio locale in un
output link. Il matching nella forwarding table avviene secondo l'input link e
l'attuale VC number del datagram. Una generica entry nella forma
input link
input VC number
output link
28
output VC number
Quando un datagram giunge ad un router, quest'ultimo indirizza la forwarding table, sovrascrive l'output VC number sul VC number attualmente
contenuto nell header, e lo indirizza all'output link corrispondente.
Il VC setup il processo di allocamento di un VC, e consiste nell'inserimento
di una entry nella forwarding table di ogni router appartenente al VC. Il VC
teardown il processo di deallocamento di un VC, e consiste nella rimozione
della corrispondente entry dalla forwarding table di ogni router appartenente al
VC.
I routers comunicano tra loro, potendo cos allocare o deallocare il VC, mediante scambio di signaling message, secondo uno specico signaling protocol.
La forwarding table di un router viene modicata ad ogni VC setup e VC
teardown che lo veda coinvolto in un VC.
Datagram Networks Una datagram network una computer network
con network layer connectionless.
Ogni router ha una forwarding table che mappa lo spazio degli indirizzi sugli
output link. Il matching nella forwarding table avviene secondo la longest
prefix matching rule, la quale prevede il matching secondo il presso pi
lungo. Una generica entry nella forma
destination address
output link
Quando un datagram giunge ad un router, quest'ultimo indirizza la forwarding table, e lo indirizza all'output link corrispondente.
La forwarding table di un router viene modicata dal routing algorithm,
ad intervalli di tempo dell'ordine di grandezza dei minuti.
Trattandosi di una tecnologia connectionless, non sussiste alcun processo di
setup o teardown.
4.2
Routers
Un router un device che realizza il forwarding dei ussi di dati da una input
interface ad una output interface, secondo il mapping specicato dalla propria
forwarding table, popolata secondo le speciche della computer network.
E' internamente costituito da
: realizza la physical layer connection e la link layer connection tra il link entrante ed il router mediante data decapsulation, e
buerizza i packets per il lookup ed il forwarding secondo le indicazioni
del routing processor. Ogni input port possiede un input buer con disciplina di gestione drop-tail. Ogni input port possiede una shadow copy 60
della forwarding table, cos da localizzare le decisioni di forwarding ed
eliminare un bottleneck centralizzato nel routing processor.
input ports
29
switching fabric: connette le input ports alle output ports. La switching fabric pu essere implementata secondo le seguenti alternative:
: la forwarding table immagazzinata in memoria secondaria. Pu trasferire un solo packet alla volta, in quanto non
possibile accedere concorrentemente ad uno stesso shared system
bus.
bus switching: il packet viene labellato con l'identicativo della
output port di destinazione, ed inviato in broadcasting a tutte le
output ports mediante uno shared bus, senza la mediazione del routing processor. Solo la output port corrispondente al label accetta
il packet. Pu trasferire un solo packet alla volta, in quanto non
possibile accedere concorrentemente ad uno stesso shared system
bus.
crossbar switching: un crossbar switch una griglia costituita
da 2n bus che interconnette direttamente n input ports ad n output
ports. Ogni bus orizzontale intercetta ogni bus verticale. L'intersezione
(i, j) del bus i con il bus j permette il trasferimento di un packet dalla
input port i alla output port j . Pu dunque trasferire parallelamente
pi packets, ntantoch le output ports sono dierenti
memory switching
data plane.
30
IP
L'internet
protocol (IP)
IP Datagram
Version
Header Length
TOS
Datagram Length
Identier
Flag Fragmentation Oset
TTL
Upper-Layer Protocol
Header Checksum
Source address
Destination address
Options
Data
version number
header length
datagram length
identifier
ment.
flag
fragmentation offset
upper-layer protocol
source/destination ip address
options
data
tinazione.
32
Addressing Una interface il collegamento tra un host/router ed un physical link. Ogni host ha una interface, ed ogni router ha una interface per ogni
link incidente. Ogni interface identicata da un IP address, ovvero una
sequenza numerica di 32-bit in dotted-decimal notation.
Un subnet una collezione di interface adiacenti. Ad ogni subnet viene
assegnato un IP address block, ovvero una porzione di IP address contigui,
individuato da un IP address ed una subnet mask, ovvero il numero di MSBs68
dell'IP address, detti complessivamente network prex, che deniscono lo spazio
di indirizzamento della subnet. La concezione della grandezza di un IP address
block data dalla dimensione della sua subnet mask. Intuitivamente, maggiore
la subnet mask minore lo spazio di indirizzamento della subnet. Ad esempio,
192.168.0.0/24 indica un network prex 192.168.0 e dunque uno spazio di indirizzamento [192.168.0.0, 192.168.0.255]. L'IP address di una interface dunque
determinato dallo spazio di indirizzamento della subnet a cui appartiene.
La classless interdomain routing (CIDR)69 la strategia di assegnamento uciale degli IP address in Internet70 . Il CIDR concepisce la rete come
una collezione di subnet di subnet, e dunque lo spazio di indirizzamento come
una collezione di IP address block. Lo spazio di indirizzamento totale viene
infatti suddiviso in IP address block71 , che a loro volta possono essere suddivisi
in IP address block pi piccoli, e cos via. La address aggregation72 la
abilit di una subnet di utilizzare un singolo network prex73 per noticare il
network core della sua esistenza, indicandogli dunque di indirizzarle il traco
destinato agli host che le appartengono.
DHCP Il dinamic host configuration protocol (DHCP)74 un plugand-play protocol con paradigma client-server che assegna l'IP address ad ogni
host secondo le speciche della subnet di appartenenza, e gli notica informazioni addizionali come la subnet mask, l'IP address del gateway e del DNS
server. Qualora una subnet fosse sprovvista di un DHCP server, essa necessiterebbe di un DHCP relay agent, tipicamente un router, che sappia l'IP address del DHCP server esterno. Il DHCP risulta dunque essere una validissima
68 most signicant bit.
69 denitio in RFC 4632.
70 Il classfull addressing,
33
dis-
cover message.
2.
3.
4.
dhcp request
server un
ferti.
router IP address
LAN side
host IP address
La NAT permette dunque di ovviare alla saturazione degli spazi di indirizzamento: la prolerazione delle soho subnet76 ne ha infatti reso indispensabile
l'implementazione e la diusione.
Il router ottiene il proprio IP address dal DHCP server del proprio ISP, ed
implementa un vero e proprio DHCP server per l'assegnazione degli IP address
ai NATed host, ovvero gli host appartenenti alla NATed subnet.
La comunicazione interna alla NATed subnet avviene normalmente, mediante l'utilizzo dell'IP address block previsto dal router, tipicamente 192.168.0.0/24.
La comunicazione esterna avviene mediante il processo di traduzione basato
sulla NAT translation table. Quando un NATed host intende comunicare con
l'esterno, questo indirizza il proprio traco in uscita al router, il quale inserisce
una entry nella NAT translation table, ed inoltra il traco alla destinazione sostituendo la propria WAN side alla sorgente originaria. Quando un host esterno
intende comunicare con un NATed host, questo indirizza il proprio traco al
75 La NAT viola il paradigma end-to-end, secondo il quale la comunicazione dovrebbe
avvenire direttamente tra host remoti, senza alcuna modicazione degli spazi di indirizzamento da parte dei nodi.
76 ovvero small oce home oce subnet.
34
router, il quale ricava dalla NAT translation table la LAN side corrispondente,
e le inoltra il traco entrante.
La NAT induce dunque al router di interagire con l'esterno come un host,
mascherando cos lo spazio di indirizzamento della NATed subnet con il proprio
IP address.
Il mascheramento dello spazio di indirizzamento della NATed subnet impedisce ai NATed host di agire come server, ovvero impedisce agli host esterni
alla NATed subnet di inizializzare connessioni con i NATed host. La NAT
traversal una tecnica di rete che ovvia a questo impedimento, permettendo
dunque ad un NATed host di agire come server verso l'esterno, e dunque ad
un host esterno alla NATed subnet di stabilirvi una connessione TCP/UDP. La
NAT traversal pu essere realizzata mediante:
ping
traceroute
35
type
code
description
0
3
3
4
8
9
10
11
12
0
1
3
0
0
0
0
0
0
echo reply
destination host unreacheable
destination port unknown
source quench
echo request
router advertisement
router discovery
TTL expired
IP header bad
IPv6 IPv6 stato sviluppato dalla Internet Engineering Task Force a partire
dagli anni '90, con la principale motivazione di ovviare all'esaurimento degli IPv4
address 79 . I cambiamenti pi importanti introdotti da IPv6 sono l'estensione
della capacit di indirizzamento, il ssaggio della dimensione dell header a 40byte ed il ow labeling.
Un IPv6 datagram ha il seguente formato
version
traffic class
payload length
: distingue la natura del traco a cui il datagram appartiene. E' infatti utile distinguere il traco real-time da quello non-realtime. La policy applicata ai vari trac class determinata dal router
administrator.
: dimensione totale in byte del payload del datagram.
hop limit
source/destination address
tinazione.
del datagram: in questo caso il valore del next header indicherebbe la presenza delle options.
36
cryptographic agreement
encryption/decryption
data integrity
origin authentication
4.4
Routing Algorithms
37
izzata.
dynamic routing algorithm: la conoscenza della rete si adatta dinamicamente ai cambiamenti topologici e di costo della rete.
Sebbene negli utlimi 30 anni siano stati proposti molti routing algorithm, alcuni
formulati come SP-path problem o come MF-problem, ad oggi i routing algorithm impiegati in Internet sono due: il link-state algorithm ed il distance-vector
algorithm.
Link State Il link-state algorithm (LS algorithm) un global routing
algorithm in cui la conoscenza della rete viene computata mediante un link
state broadcasting algorithm e la computazione dei route mediante l'algoritmo
di DIjkstra.
Un link-state broadcasting algorithm un algoritmo che perviene
alla conoscenza della rete facendo in modo che ogni nodo invii ad ogni altro
nodo messaggi broadcast contenenti l'identicazione ed il costo di ogni suo link
incidente.
85 anche detto default router.
86 per conoscenza della rete si
38
cio dai nodi vicini delle informazioni, sulle quali esegue poi una computazione locale, e le ridistribuisce agli stessi nodi vicini.
// Inizializzazione
for all nodes y: if y is neighbor of x: Dx(y)=c(x,y) else: Dx(y)=inf
for all y neighbor of x: Dw(y)=?
for all y neighbor of x: send distance-vector Dx=[Dx(y) : y in N] to all
neighbors
// Loop
39
while true:
while (link cost unchanged) or (not receiving updates): wait
for each y in N: Dx(y)=minv(c(x,v)+Dv(y))
if Dx(y) changed for any destination y: send distance-vector Dx=[Dx(y) : y
in N] to all neighbors
Nel DV algorithm, ogni nodo comunica ai soli nodi vicini le informazioni
risultanti da una ricomputazione locale delle informazioni precedentemente ricevute dagli stessi: la conoscenza della rete risulta dunque consistente gi quando
localmente consistente.
Ogni router mantiene una routing table, ovvero una struttura dati che
registra il suo distance-vector, ovvero il vettore dei costi per giungere da
quel router ad un destination router mediante uno dei suoi nodi vicini.
La forwarding table di ogni router u viene congurata secondo le soluzioni
della Bellman-Ford equation applicata alla routing table istantanea
du (y) = min {c(u, v) + dv (y)}
v
v vicino di u
(17)
Autonomous Systems
40
Un getaway router un router di un AS responsabile della sua connessione con l'esterno. Ogni AS deve dunque avere almeno un getaway router. La
hot potato routing una tecnica di routing applicata negli AS, la quale
prevede che ogni router interno ad un AS demandi la propria comunicazione
verso l'esterno al proprio getaway router pi vicino.
Un intra-AS routing protocol un routing protocol che realizza il
routing per i router appartenenti ad uno stesso AS. I router di uno stesso AS
devono eseguire lo stesso intra-AS routing protocol; mentre i router appartenenti
ad AS dierenti possono eseguire intra-AS protocol dierenti.
Un inter-AS routing protocol un routing protocol che realizza il routing per AS interconnessi. Gli AS interconnessi devono eseguire lo stesso inter-AS
routing protocol. Questo protocollo permette dunque ad ogni AS di mappare
la raggiungibilit delle subnet appartenenti ad altri AS, propagare queste informazioni ai propri router e computare la migliore route alla destination subnet;
permette inoltre ad ogni subnet di noticare la propria esistenza agli altri AS.
RIP Il routing information protocol (RIP) un intra-AS routing protocol che utilizza il DV routing protocol con metrica di costo data da hop-count,
ovvero il numero di subnet attraversate da un route88 .
Ogni router mantiene una routing table89 , contenente la forwarding table
ed il distance vector
destination subnet
next-hop router
hop-count
41
della connessione con le aree esterne dello stesso AS. Una ed una sola area deve
essere congurata come backbone area, ovvero un'area contenente gli area
border router di tutte le aree, e dunque responsabile della connessione fra tutte
le aree.
OSPF supporta inoltre l'autenticazione dei router mediante cifratura MD5,
il multicast routing, l'unicast routing nonch la propagazione del traco su pi
route equivalenti.
BGP Il border gate protocol (BGP) un inter-AS routing protocol con
il quale gli AS, univocamente identicati da un autonomous system number
92
(ASN) , si scambiano informazioni incapsulate in un BGP message trasmesso
mediante connessioni TCP semipermanenti sulla porta 179.
Una BGP session la connessione mediante la quale vengono scambiati i
BGP message, ed una connessione TCP semipermanente sulla porta 179. Un
BGP peer un router connesso ad un altro router mediante una tale connessione.
Una external BGP session (eBGP session) una BGP session tra due
BGP peer appartenenti ad AS dierenti. Una internal BGP session (iBGP
session) una BGP session tra due BGP peer appartenenti allo stesso AS.
Un BGP message incapsula un route, ovvero un CIDRized prefix di una
subnet93 con i relativi BGP attribute:
AS-path: contiene gli ASN degli AS attraversati dal BGP message.
4.6
next-hop
42
uncontrolled flooding
43
membership-query
membership-report
leave-group
: inviato da un host al rst-hop router, per noticargli l'appartenenza ad uno specico multicast group.
: facoltativamente inviato da un host al rst-hop router,
per noticargli l'abbandono da uno specico multicast group. Essendo facoltativo, un router pu dedurre l'abbandono di uno dei suoi host connessi
qualora questo non risponda al membership-query.
group-shared tree
source-based tree
44
Link Layer
framing
link access
reliable delivery
error detection/correction
, ovvero
frame
protocol (MAC)
regola
: l'adabilit garantita da tecniche di ack/retrasmission e controllo degli errori locale al link. Questo servizio tipicamente
implementato nel link-layer di computer network con alto tasso di errore100 .
: tecniche di rilevazione e risoluzione
degli errori nei frame, dovuti ad attenuazione di segnale e rumore elettromagnetico.
point-to-point link
broadcast link
ognuno di loro.
45
Multiple Access Protocols Un mutliple access protocol un linklayer protocol che coordina la trasmissione dei frame lungo un broadcast link, in
modo decentralizzato e tale da realizzare una equa suddivisione della badwidth
tra tutti i nodi trasmittenti. Un multiple access protocol viene classicato in
base alla modalit con cui perviene a tali obiettivi:
: ogni nodo pu trasmettere un frame in corrispondenza di un time slot. In caso di collision in uoa stesso time slot,
il nodo ritrasmette il frame perduto in corrispondenza di un time
slot successivo. Si tratta di un protocollo decentralizzato, in quanto
ogni nodo pu accorgersi della collision e decidere arbitrariamente
l'attesa prima della ritrasmissione. L'ecienza di questo protocollo
dunque misurata in funzione del numero di nodi attivi e del numero
di successful slot, ovvero time slot privi di collision, e risulta essere
slotted aloha
N 1
ef f = N p (1 p)
(18)
2(N 1)
ef f = p (1 p)
46
(19)
ef f =
1+5
1
dprop
dtrans
(20)
taking-turn protocol
: un master node appartenente alla subnet assegna i turni di trasmissione secondo turnazione round-robin.
token-passing protocol: i nodi della subnet fanno circolare tra
loro in round-robin un token di assegnazione del turno di trasmissione.
polling protocol
MAC addressing Un MAC address101 una sequenza di 6 byte in dottedhexadecimal notation che identica univocamente e permanentemente un network adapter102 . Lo spazio di indirizzamente dei MAC address gestito dalla
IEEE, la quale assegna ad ogni produttore un MAC address block da 24 bit,
il quale individua un sottospazio di indirizzamento in cui ogni ad ogni network
adapter prodotto viene assegnato un MAC address.
Quando un network adapter vuole inviare un frame, vi inserisce il MAC
address del network adapter di destinazione. Quando un network adapter riceve
un frame, lo accetta solo se il MAC address indicato nel frame uguale al roprio
MAC address. Quando un network adapter vuole inviare in broadcast un frame,
vi inserisce il broadcast MAC address FF:FF:FF:FF:FF.
ARP L'address resolution protocol (ARP) il link-layer protocol103
responsabile della risoluzione degli IP address in MAC address.
101 anche detto LAN address, o physical address.
102 il MAC addressing un at addressing, ovvero
47
Ogni host e router mantiene in memoria una ARP table contenente la mappatura degli IP address in MAC address, con il relativo TTL104 .
Un ARP packet uno packet previsto da ARP per lo scambio delle informazioni necessarie all'inserimento delle mappature nella ARP table. ARP
prevede due soli tipi di ARP packet:
:
Un nodo determina il MAC address di un nodo appartenente alla propria subnet, inviando in broadcast alla propria subnet un ARP query packet indicante
l'IP address desiderato. Il solo nodo con l'IP address specicato risponde alla
richiesta inviando in unicast al mittente un ARP response packet contenente il
proprio MAC address, permettendogli cos di inserire la mappatura nella ARP
table.
Un nodo determina il MAC address di un nodo esterno alla propria subnet,
demandanone la richiesta al proprio getaway router.
Error Detection and Correction Il bit-level detection and correc il servizio che realizza l'individuazione e la correzione degli errori
nei bit dei frame, spesso causati da attenuazione di segnale o rumore elettromegnetico. Questo servizio prevede l'aggiunta dei bit ECD alla stringa dati originale. La forward error correction (FEC) l'abilit del receiver di individuare e correggere gli errori nei frame ricevuti. Le tecniche ECD realizzanti la
FEC aumentano dunque l'ecienza delle trasmissioni, in quanto minimizzano
le ritrasmissioni dei frame.
Generalmente, tecniche ECD sosticate inducono un maggiore overhead nel
processamento dei fram: dunque necessario realizzare implementazioni equilibrate, che tengano cio conto del tradeo tra ecacia ed ecenza. Inoltre,
tecniche ECD implementate nel software devono mantenersi semplici e veloci,
mentre quelli implementati in hardware possono concedersi una maggiore complessit.
tion (ECD)
104 tipicamente
ssato a 20 minuti.
48
checksumming
: ogni stringa binaria viene interpretata come un polinomio a coecienti binari. Il sender ed il receiver
accordano un generator G, ovvero una stringa binaria di r + 1 bit con
msb a 1. Il sender aggiunge in coda alla stringa dati D una stringa R di r
bit tale che la stringa complessiva DR sia divisibile per G. Il receiver deve
dunque vericare la divisibilit per G della stringa ricevuta105 . Questa
tecnica permette dunque l'individuazione di al pi r + 1 bit errati. I
calcoli CRC soo basati sulla aritmetica binaria modulo-2: addizione e sottrazioni sono dunque equivaleti allo XOR, moltiplicazioni e divisioni per
2k equivalgono rispettivamente a left-shift e right-shift di k bit. Il sender
deve dunque determinare un R tale da soddisfare la condizione
r
(21)
Link Layer Switch Uno switch un device full-duplex responsabile del
ltering e forwarding buerizzato del traco dei frame host-router e routerrouter. La protocol stack di uno switch implementa i soli link-layer e physicallayer. Uno switch trasparente agli host e ai router.
Il ltering ed il forwarding dei frame venogno realizzati mediante una switch
table, la quale mappa i MAC address sulle interface dello switch con il corrispondente timestamp, il quale induce la rimozione della entry allo scadere
dell'aging time.
MAC address
switch interface
timestamp
49
D 2r
G
Uno switch un device plug-n-play e self-learning, in quanto il suo inserimento nella computer network non richiede alcuna congurazione da parte del
networ administrator, e la switch table mantenuta automaticamente, dinamicamente ed autonomamente.
Uno switch permette l'interfacciamento di link implementati con tecnologie
dierenti, in quanto isola gli uni dagli altri. Il buering in uno switch permette
di ovviare alla congestione dei link, eliminando cos la possibilit di collision.
Uno switch permette inoltre la raccolta di dati statistici sul funzionamento della
computer network, nonch l'isolamento automatico delle interface difettose.
Una switched local area network (SLAN) una computer network
costituita da una collezione di LAN interconnesse da switch. Lo switch poisoning un attacco alle SLAN che consiste nell'invio di un traco di frame
destinati a MAC address nti tale da saturare la switch table con entry insignificanti, senza lasciare spazio per i MAC address legittimi, ed inducendo dunque
lo switch ad inviare in broadcast tutti i frame ricevuti.
Ethernet Ethernet un link-layer protocol full-duplex, connectionless, CSMA/CD, con tecnica di ECD CRC, MTU a 1500 byte, e privo del servizio di
reliable delivery. Questo protocollo stato realizzato in dierenti implementazioni; a met degli anni '90 stato standardizzato ad Ethernet 100Mbps.
Un ethernet frame ha la seguente forma
preamble
destination MAC
source MAC
Type
Data
CRC
preamble
type
data
CRC
50