You are on page 1of 165

ÞollLecnlco dl 1orlno

Corso dl Laurea MaglsLrale ln lngegnerla
lnformaLlca


ulspense del corso dl
1LCNCLCGIL L SLkVI2I DI kL1L

A.A. 2010-2011
Þ8Cl. ClMlnlL8A LulCl





8eallzzaLo da: Magglo Lulgl
L-mall: luls_may86[llbero.lL


LL2ICNI N. 1,2,3,4

ll programma del corso verLera su 3 grossl argomenLl:
! IÞv6, una nuova verslone dell' lÞ. ll problema della v6 sLa nella sua LoLale lncompaLlblllLa con la
precedenLe v4, nonosLanLe l due proLocolll condlvldano alcunl prlnclpl dl base. CuesLo osLacola la
dlffuslone della v6 essendo che la v4 ha ormal una enorme dlffuslone negll apparaLl dl reLe dl LuLLo
ll mondo.
! VÞN, un gruppo dl Lecnlche e proLocolll che hanno lo scopo dl cosLrulre una reLe prlvaLa (qulndl
separaLa dal resLo dl lnLerneL) uLlllzzando l' lnLerneL pubbllco.
! VCICLoverIÞ, l meLodl e l proLocolll uLlllzzaLl per ll conLrollo delle chlamaLe su lÞ.
! ln una parLe flnale saranno LraLLaLe le Lecnologle per le connesslonl geograflche (le MÞLS) e alcune
Lecnlche che hanno lo scopo dl garanLlre la CoS.

L'evo|uz|one d| IÞ:
InternetÞrotoco|Vers|one 6

La declslone dl passare ad una nuova verslone dell'lÞ rlsale alla prlma meLa degll annl 90' ed e dovuLa a
molLepllcl raglonl:

! LsaurlmenLo dello spazlo dl lndlrlzzamenLo lÞv4: l'lndlrlzzo lÞv4 e composLo da 32 blL, che
corrlspondono a clrca 4 mlllardl dl comblnazlonl. ul conLro però alcunl Llpl dl comblnazlonl non
possono essere usaLe perche rlservaLe per parLlcolarl uLlllzzl (mulLlcasL, eLc eLc). Come se non
basLasse sl rlsconLra una cerLa frammenLazlone lnLerna dovuLa al faLLo che quando sl concede un
pool dl lndlrlzzl ad una organlzzazlone sollLamenLe non LuLLo ll pool vlene uLlllzzaLo. Come vengono
assegnaLl gll lndlrlzzl lÞ? LslsLono 3 agenzle reglonall (8l8). lAnA fornlsce delle reLl \8 (qulndl clrca 16
mlllonl dl comblnazlonl) al 8l8. un 8l8 può andare a chledere un nuovo blocco a lAnA solo quando
gll e rlmasLo da assegnare meno dl un \9 oppure se proleLLando l daLl sLaLlsLlcl nel fuLuro cl sl rende
conLo che quelll a dlsposlzlone saranno esaurlLl ln meno dl un anno e mezzo. ll consumo dl lndlrlzzl
lÞv4 e aLLualmenLe rallenLaLo grazle ad una plu oculaLa pollLlca dl concesslone dl pool dl quesLl
ulLlml da parLe del 8l8, nonche medlanLe l'lnLroduzlone dl Lecnlche quall ad esemplo ll nA1.
! ÞroblemaLlche dl scalablllLa del rouLlng: l rouLer dl backbone hanno avuLo una cresclLa verLlglnosa
delle rlghe nelle loro Labelle dl lnsLradamenLo, ll che va ad allungare l Lempl dl rlcerca al loro lnLerno
nel momenLo ln cul sl esegue la rlcerca del LongesL Þreflx MaLch per esegulre l'lnsLradamenLo del
paccheLLl. Cl sono molLl che crlLlcano ll campo dl lndlrlzzamenLo da 128 blL perche se da un laLo cosl
facendo le rlghe sono sLaLe rldoLLe, dall'alLro sl sono allungaLe (ma era lnevlLablle vlsLa la necesslLa
dl aumenLare ll campo dl lndlrlzzamenLo).
! 8lchlesLa dl servlzl nuovl e/o plu efflclenLl: ln Lermlnl dl

! Mob|||tà, polche uno del probleml dell'lndlrlzzamenLo lÞ e che se cl sl collega ad una dlversa
soLLoreLe e necessarlo camblare l'lndlrlzzo lÞ per renderlo coerenLe con ll preflsso dl reLe della
soLLoreLe ln cul cl sl e sposLaLl (nonche l'lndlrlzzo del defaul gaLeway). Sl vorrebbe lnvece ln
ognl caso manLenere ll proprlo lndlrlzzo lÞ. ln alLre parole, le soluzlonl che prevedono
solamenLe l'assegnazlone degll lndlrlzzl non sono ln grado dl gesLlre le problemaLlche dl
roamlng (sposLamenLo da un gesLore all'alLro), dl handover (sposLamenLo da una reLe all'alLra),
ossla ln generale non gesLlscono ll problema della porLablllLa (per alcunl versl deLLa
ragglunglblllLa) dell'lndlrlzzo dl reLe assegnaLo.
! S|curezza, con la posslblllLa dl auLenLlcare l'lndlrlzzo lÞ. ln Lal modo non sl andrebbe a clfrare
solo ll carlco dell'appllcazlone, ma anche ll carlco a llvello 3 (ad esemplo messaggl lCMÞ).
! Autoconf|guraz|one, ovvero collegare una macchlna alla reLe senza la necesslLa dl dover
operare una conflgurazlone manuale delle lmposLazlonl dl reLe.
! ÇoS, con la necesslLa dl fornlre dlversl Llpl dl servlzlo a seconda del Llpl speclflcl dl flusso dl
paccheLLl.
! Mu|t|cast, polche ln lÞv4 non sono LraLLaLe delle funzlonallLa quall ad esemplo l'lngresso e
l'usclLa da un gruppo mulLlcasL.

ul faLLo però sono sLaLl lnLrodoLLl nell'lÞv4 del proLocolll per Lamponare alcune delle lacune funzlonall
LraLLaLe, ovvero rlspeLLlvamenLe MobllelÞ, lÞ Sec, uPCÞ, campo 1ype nel paccheLLo lÞ, lCMÞ.
Þer quanLo rlguarda ll formaLo dell'Peader, uno del prlnclpall obleLLlvl della proposLa SlÞÞ (equlndl dl lÞv6)
era la sempllflcazlone del proLocollo. CuesLo corrlspondeva lnnanzlLuLLo ad ellmlnare l campl superflul o a
fare un uso esLremamenLe llmlLaLo dall'header del proLocollo sLesso. CuesLa operazlone aveva come
obleLLlvo la sempllflcazlone del coslddeLLo crlLlcal rouLer loop, ossla quella porzlone dl codlce che un rouLer
deve esegulre per LuLLl l paccheLLl che sl Lrova a dover lnsLradare e che lnflulsce qulndl dlreLLamenLe sulle
sue presLazlonl.
L' evldenLe (ln flgura) come ll numero dl campl sl sla rldoLLo da 12 a 8 (escludendo l campl opzlonall),
menLre lo spazlo occupaLo da LuLLl l campl esclusl gll lndlrlzzl dl sorgenLe e dl desLlnazlone e passaLo da 12
a 8 byLes. L'amplezza LoLale dell'header e LuLLavla aumenLaLa (da 20 a 40 byLes) a causa del due campl
conLenenLe l'lndlrlzzo sorgenLe e desLlnazlone, grandl ognuno 128 blL, per un LoLale dl 40 byLes, che e la
lunghezza flssa dell'header.
l rlsulLaLl dl quesLa sempllflcazlone non sono LuLLavla compleLamenLe poslLlvl. ln parLlcolare, la dlmenslone
dell'lndlrlzzo lÞv6, a parLe un po' dl folclore ("cl sono plu lndlrlzzl lÞv6 che aLoml nell'unlverso") non Lrova
effeLLlve glusLlflcazlonl Lecnlche Lranne la volonLa dl voler evlLare a LuLLl l cosLl dl lncorrere ln nuove
penurle dl lndlrlzzl come e accaduLo per ll proLocollo lÞv4. CuesLa scelLa, peralLro, compllca noLevolmenLe
le operazlonl dl rouLe lookup ossla la procedura che serve a locallzzare, per ognl paccheLLo ln LranslLo ln un
rouLer, l'effeLLlva sLrada (rouLe) dl desLlnazlone. lnfaLLl, quesLa operazlone conslsLe ln un confronLo Lra
l'lndlrlzzo lÞ dl desLlnazlone e ognl rouLe memorlzzaLa nel rouLer per cercare quella che ha ln comune un
magglor numero dl blL (da slnlsLra verso desLra) con l'lndlrlzzo dl desLlnazlone.

MeLLlamo qulndl ora a confronLo plu deLLagllaLamenLe le lnLesLazlonl delle due verslonl dell' lÞ





uove ll campo:
VLkSICNL: ln Leorla dovrebbe permeLLere a chl rlceve un daLagram dl lnLerpreLare l'lnLesLazlone secondo ll
formaLo della v6 o della v4. ln realLa però quesLo vlene declso a llvello lnferlore, ovvero a llvello 2, polche
nella Lrama eLherneL e speclflcaLo un campo ÞroLocol 1ype che lndlca ll Llpo del carlco uLlle LrasporLaLo. ln
Lal modo e posslblle avere dlsLlnLe reallzzazlonl sofLware (che sl lgnorano a vlcenda) per le verslonl dl lÞ:
sara ll drlver della scheda dl reLe che sl occupera dl smlsLare correLLamenLe l daLagram Lra le due a seconda
del campo ÞroLocol 1ype. L' l'unlco campo che ha manLenuLo la sLessa poslzlone e lo sLesso slgnlflcaLo, e
grande 4 blL e conLlene ll numero 6.
nLLN: lndlca la lunghezza dell'lnLesLazlone. nella v4 deve essere scrlLLa polche Lale lunghezza può essere
varlablle e c'e qulndl la necesslLa dl lndlcare dove lnlzla ll carlco uLlle. nella v6 lnvece l'lnLesLazlone ha
lunghezza flssa a 40 byLe, con lo scopo dl favorlre la commuLazlone del paccheLLl operaLa ln hardware.
SCUkCL]DLS1INA1ICN IÞ ADDkLSS: gll lndlrlzzl mlLLenLe sono da 32 blL nell'lÞv4 e da 128 blL nell'lÞv6.
1kAIIIC CLASS: permeLLe dl dlsLlnguere ll daLagram ln funzlone del servlzlo che cl sl aspeLLa per quel Llpo
dl daLagram. L' uno dl quel campl che servono per la gesLlone della CoS.
ILCW LA8LL: e lungo 20 blL e consenLe al nodo mlLLenLe dl conLraddlsLlnguere un lnsleme dl paccheLLl
apparLenenLl allo sLesso flusso dl daLl. un flusso e un gruppo dl paccheLLl che rlchlede un LraLLamenLo
coerenLe da parLe della reLe. 1uLLl l paccheLLl apparLenenLl allo sLesso flusso dovranno avere sLesso
lndlrlzzo dl mlLLenLe, dl desLlnaLarlo e la sLessa llow label, lnolLre evenLuall LxLenslon Peader dl Llpo Pop-
by-Pop oppure 8ouLlng presenLl devono essere uguall ln LuLLl l paccheLLl dello sLesso flusso. 1ale campo
può conLenere valorl Lra 1 e llllll.
ÞA¥LCAD LLNGn1: L' lungo 16 blL, rlmplazza ll campo 'LoLal lengLh' dl lÞv4, ln cul essendo l'header dl
lunghezza varlablle e necessarlo lndlcare la lunghezza LoLale del paccheLLo, ln lÞv6 lnvece, essendo l'header
dl lunghezza flssa e sufflclenLe lndlcare la dlmenslone del campo daLl LrasporLaLo col paccheLLo, essendo
quesLo campo lungo 16 blL la dlmenslone masslma del campo daLl dl un paccheLLo lÞv6 può qulndl essere
64kbyLe.

1C1AL LLNGn1: lndlca la lunghezza del daLagram lnclusa l'lnLesLazlone. ll masslmo per un daLagram v4 e
64 kb compresa l'lnLesLazlone.
nCÞ LIMI1: corrlsponde al 11L della v4. L' lungo 8 blL, Lale campo vlene decremenLaLo dl un'unlLa ognl
volLa che un rouLer LrasmeLLe ll paccheLLo. Se ll campo Pop LlmlL assume ll valore zero ll paccheLLo deve
essere scarLaLo. Serve per evlLare che paccheLLl enLraLl ln condlzlone dl loop conLlnulno a clrcolare nella
reLe lndeflnlLamenLe. uaLa la lunghezza dl quesLo campo, Lra due nodl non poLranno essercl plu dl 233 hop,
cloe non plu dl 234 rouLer.
CÞ1ICNS: ln lÞv4 e uLlllzzaLo per la frammenLazlone lnsleme al campl IDLN1IIICA1ICN, ILAGS e
IkAGMLN1 CIISL1. 1all campl sparlscono nella v6 ln quanLo non e plu permesso che l rouLer operlno la
frammenLazlone del daLagram ln funzlone della M1u della soLLoreLe. ln lÞv6 la frammenLazlone e
successlvo rlassemblagglo sono reallzzaLl rlspeLLlvamenLe dal user mlLLenLe e desLlnaLarlo.
nLADLk CnLCkSUM: e sLaLo abollLo nella v6 polche quello della v4 era debole (non permeLLeva dl
ldenLlflcare alcunl Llpl dl errore) e sopraLLuLLo alcune delle medeslme manslonl venlvano svolLe ln manlera
plu efflclenLe a llvello 2.
ÞkC1CCCL: nella v4 lndlca a quale proLocollo apparLlene ll carlco uLlle del daLagram che sl sLa
conslderando (1CÞ, uuÞ, lCMÞ..)
NLk1 nLADLk: e lungo 8 blL, lndlca dl quale Llpo e l lnLesLazlone che vlene sublLo dopo quella dell'lÞv6.
ÞoLrebbe essercl un'lnLesLazlone dl Llpo 1CÞ, uuÞ, lCMÞ.. e ln Lal caso funzlone ln modo del LuLLo analogo
al campo Þ8C1CCCL della v4. ÞoLrebbero però anche essercl delle alLre lnLesLazlonl dell'lÞv6 opzlonall (ad
esemplo quelle dl slcurezza per la clfraLura..)




1ale Lecnlca crea del probleml perche ln alcunl casl e necessarlo andare a guardare alcunl campl che sl
Lrovano nell'lnLesLazlone dl base dell' lÞ e pol andare a vedere alcunl campl dell'lnLesLazlone 1CÞ. Chl deve
fare quesLa operazlone sono dl sollLo l flrewall, per l quall una regola poLrebbe essere dl lmpedlre LuLLe le
connesslonl se non quelle dlreLLe ad un cerLo lndlrlzzo lÞ e ad una cerLa porLa 1CÞ. ln lÞv4 per leggere
l'lnLesLazlone 1CÞ e sufflclenLe prendere ll campo PLLn e calcolare l'offseL, menLre ln lÞv6 blsogna scorrere
LuLLa l'evenLuale caLena del nLx1 PLAuL8 flno ad arrlvare a quello che ml lnLeressa.
l prlnclpall valorl ammessl per ll campo nLx1 PLAuL8 sono l seguenLl:



dove ln parLlcolare:

n8n: sono delle lnformazlonl che vengono passaLe da un rouLer all'alLro
An: permeLLe dl essere slcurl che l'lndlrlzzo lÞ mlLLenLe non sla sLaLo modlflcaLo menLre ll paccheLLo
aLLraversava la reLe
LSÞ: permeLLe dl clfrare ll carlco uLlle del paccheLLo per asslcurare la rlservaLezza della Lrasmlsslone

IÞv6 Cv6 Cv6 Cv6 1CÞ
CSÞI: e ll meccanlsmo uLlllzzaLo dal rouLer per comunlcarsl lnformazlonl rlguardo lo sLaLo della reLe
(se ad esemplo un llnk e andaLo glu)

un paccheLLo lÞv6 può conLenere nessun LxLenslon Peader, un LxLenslon Peader o plu LxLenslon Peader.
ln llnea dl masslma un nodo lÞv6 deve acceLLare e cercare dl elaborare gll LxLenslon Peader ln qualslasl
ordlne sl presenLlno, anche se eslsLe un ordlne preferenzlale che ln alcunl casl e pluLLosLo vlncolanLe.
L'ordlne e ll seguenLe: Pop 8y Pop CpLlon Peader, 8ouLlng Peader, lragmenL Peader, AuLhenLlcaLlon
Peader, LncrypLed SecurlLy Þayload Peader e uesLlnaLlon CpLlon Peader. ua noLare e che dall' LSÞ ln pol e
LuLLo clfraLo e qulndl un rouLer non e ln grado dl leggere ll uCP, moLlvo per cul ad esemplo 8P deve sLare
per forza prlma dl LSÞ conLenendo ll percorso (speclflcaLo dal mlLL) che ll daLagram deve complere. ua
soLLollneare e lnolLre che l'Popby- Pop LxLenslon Peader può Lrovarsl solLanLo lmmedlaLamenLe dopo
l'header lÞv6, quesLo accorglmenLo consenLe dl llmlLare ll carlco compuLazlonale del nodl lnLermedl della
reLe: lnfaLLl l'unlco Llpo dl LxLenslon Peader che deve essere elaboraLo anche dal nodl lnLemedl e l'Pop-by-
Pop CpLlon Peader. Cgnl nodo lnLermedlo dovra perLanLo solLanLo anallzzare l'header lÞv6 e verlflcare ll
suo campo nexL Peader che lndlca la presenza o meno dl un Pop-by-Pop CpLlon Peader, ossla l'evenLuale
presenza dl ulLerlorl lnformazlonl da elaborare per gesLlre correLLamenLe ll paccheLLo.
ll formaLo delle lnLesLazlonl opzlonall e ll seguenLe


dove ln LesLa c'e ll nLx1 PLAuL8 che fornlsce l'lnformazlone su "cosa vlene dopo" segulLo da un
Lx1LnSlCnL PLAuL8 LLnCP1 che permeLLe dl locallzzare sublLo l'lnlzlo dell'header che segue quello ln
esame, ma poLrebbero essere presenLl anche alLrl campl opzlonall quall ad esemplo 1?ÞL.
ll kCU1ING nLADLk conLlene una llsLa dl lndlrlzzl dl rouLer che devono essere aLLraversaLl e un SLCMLn1
LLl1 che speclflca quanLl elemenLl dal basso devono essere ancora conslderaLl. Þer esemplo se ll valore dl
Lale campo fosse due sLa a slgnlflcare che ll rouLer che lo rlceve deve rlspedlrlo al penulLlmo rouLer prlma
della desLlnazlone, menLre se e 0 slgnlflca che ll rouLer e lul sLesso ll desLlnaLarlo.



CuesLo exLenslon header lmplemenLa la Lecnlca dl lnsLradamenLo dl Llpo source rouLlng, la sorgenLe e
perLanLo ln grado dl condlzlonare ll cammlno dl lnsLradamenLo dl un paccheLLo scavalcando ll normale
lnsLradamenLo lÞv6.

Þer esemplo



La flgura rlporLa un esemplo dl lmplego dl rouLlng header. ll paccheLLo vlene orlglnaLo dalla sorgenLe S
verso la desLlnazlone u, ma al paccheLLo lÞv6 vlene agglunLo un 8ouLlng Peader che lo forza a passare
aLLraverso l rouLer lnLermedl 81 ed 82. ÞerLanLo, ll paccheLLo orlglnale avra ll rouLer 81 come apparenLe
desLlnazlone, menLre la vera desLlnazlone (u) e lndlcaLa come ulLlmo passo nella llsLa del rouLer da
aLLraversare lndlcaLa dal 8ouLlng Peader. All'arrlvo del paccheLLo nel rouLer 81, quesLo rlconosce ll
paccheLLo lpv6 come, apparenLemenLe, desLlnaLo a lul, lnfaLLl, ll suo lndlrlzzo compare nel campo
desLlnaLlon address dell'header lpv6. ne conLrolla gll header successlvl e scopre che ll paccheLLo conLlene
un 8ouLlng Peader: quesLo cambla perLanLo le carLe ln Lavola perche, solo ora, ll rouLer rlconosce che non
e lul ll desLlnaLarlo flnale del paccheLLo ma un alLro hosL. Al rouLer 81, ln effeLLl, non lmporLa conoscere ll
desLlnaLarlo effeLLlvo: quello che sl llmlLa a fare e selezlonare ll prosslmo hop a cul mandare ll paccheLLo (ln
quesLo caso ll rouLer 82, ln quanLo ll valore del campo SegmenL LefL lndlca che devono essere ancora
effeLLuaLl 2 passl verso la desLlnazlone) e sosLlLulre a quel campo (campo Pop1) del 8ouLlng Peader ll
proprlo lndlrlzzo lÞv6. ll procedlmenLo conLlnuera dl hop ln hop, l'hosL desLlnazlone (u) rlcevera un
paccheLLo lÞv6 con un 8ouLlng Peader rlporLanLe ll valore zero nel campo SegmenL LefL, che corrlsponde al
faLLo che ll paccheLLo ha ragglunLo la desLlnazlone preflssaLa.

Þer quanLo rlguarda ll IkAGMLN1 nLADLk, eslsLono del meccanlsml deflnlLl nello sLandard 8lC 1981 che
permeLLono ll ÞaLh M1u ulscovery, ovvero permeLLono dl andare a scoprlre ll mlnlmo valore della M1u
lungo un cerLo percorso. una volLa ln possesso dl Lale lnformazlone, ll mlLLenLe e ln grado dl frammenLare
opporLunamenLe l daLagrams. Se la frammenLazlone e necessarla vlene lnserlLo nel daLagram l'header

Cccorre rlcordare che anche ll 1CÞ (o l'uuÞ) opera una frammenLazlone del proprl paccheLLl, generando
del blocchl compaLlblll con la M1u della soLLoreLe ln cul sl Lrova (per esemplo se e una reLe locale dl Llpo
LLherneL allora dl sollLo ll 1CÞ genera del segmenLl da carlcare ln un daLagram Lall per cul
daLl+headerLLherneL=1300byLe che e ll llmlLe per LLherneL ma che poLrebbe non esserlo per LuLLe le
soLLoreLl che devono essere aLLraversaLe). A segulLo del rlsconLro dl M1u plu plccole lungo ll percorso, per
evlLare dl rlsallre flno al 1CÞ (o uuÞ) per operare una dlfferenLe frammenLazlone, e appunLo l'lÞ mlLLenLe
che deve essere ln grado dl frammenLare l paccheLLl rlcevuLl dal 1CÞ.
Cgnl paccheLLo e formaLo da due parLl, una frammenLablle e una non frammenLablle. CuesLo perche ad
esemplo l'lnLesLazlone lÞv6 non può essere frammenLaLa cosl come anche LuLLl gll LxLenslon Peader che
precedono ll l8ACMLn1 PLAuL8. Cvvero ognl frammenLo e perLanLo cosLlLulLo da:

! Þarte non frammentab||e, con ll valore orlglnale del campo Þayload LengLh modlflcaLa per lndlcare
la lunghezza del frammenLo e ll nexL Peader dell'ulLlma lnLesLazlone della parLe non frammenLablle
lndlcanLe che, a segulre, vl sara ll lragmenL Peader.
! Iragment neader, che conLlene ll campo nexL Peader (che ldenLlflca ll prlmo header della parLe
frammenLablle del paccheLLo orlglnale), l'offseL relaLlvo all'lnlzlo della parLe frammenLablle del
paccheLLo orlglnale, ll flag M che lndlca se ll frammenLo correnLe e l'ulLlmo, e ll valore ldenLlflcaLlon
del paccheLLo orlglnale, LramlLe ll quale ll rlcevlLore e ln grado dl rlunlre l frammenLl e rlcosLrulre ll
paccheLLo dl parLenza.
! Irammento, che conLlene la porzlone dl daLl del paccheLLo orlglnale.



un esemplo esausLlvo del meccanlsmo dl frammenLazlone ln lÞv6 e rlporLaLo nella flgura seguenLe



dove la M1u sl rlLlene comprenslva dl Peader, moLlvo per cul ll carlco dl daLl e sLaLo frammenLaLo ln Lre
blocchl da 320 byLe, 344 byLe e 348 byLe. ua noLare e che nel prlmo blocco ll lragmenL Peader e sLaLo
posLo Lra quello che può essere frammenLaLo e quello che non può esserlo e che ll lragmenL Peader
rlporLa, come campo nexL Peader, sempre ll valore del prosslmo header lnconLraLo nel paccheLLo
orlglnale. ÞerLanLo quesLo valore del campo nexL Peader vlene rlpeLuLo anche nel frammenLl successlvl
anche se l'header a cul sl rlferlsce quella codlflca e ormal sLaLo Lrasmesso.
Þer quanLo rlguarda la Slcurezza ln lÞv6, sl e gla deLLo precedenLemenLe che l' AU1nLN1ICA1ICN nLADLk
e uLlllzzaLo per garanLlre l'auLenLlclLa dell'lndlrlzzo mlLLenLe menLre |'LNCk¥Þ1LD SLCUkI1¥ ÞA¥LCD (che
può essere accopplaLo al precedenLe) permeLLe dl oLLenere la clfraLura dell carlco, che qulndl dlvenLa non
legglblle per chlunque non possleda la chlave per declfrarlo.



L'arch|tettura d| |nd|r|zzamento IÞv6

ln lÞv6 eslsLono Lre dlversl Llpl dl lndlrlzzl:
! UNICAS1: ldenLlflca una slngola lnLerfaccla. un paccheLLo con un lndlrlzzo unlcasL e lnvlaLo alla sola
lnLerfaccla assoclaLa a Lale lndlrlzzo,
! MUL1ICAS1: ldenLlflca un lnsleme dl lnLerfacce, LlplcamenLe apparLenenLl a nodl dlversl. un
paccheLLo con un lndlrlzzo mulLlcasL e lnvlaLo a LuLLe le lnLerfacce con Lale lndlrlzzo,
! AN¥CAS1: un lndlrlzzo anycasL e assoclaLo ad un gruppo dl macchlne come ll mulLlcasL. La
dlfferenza sLa nel faLLo che quando lo spedlsco un daLagram ad un lndlrlzzo mulLlcasL vogllo che
LuLLe le macchlne che fanno parLe dl quel gruppo lo rlcevano, menLre quando spedlsco un daLagram
ad un lndlrlzzo anycasL vogllo che quesLo ragglunga anche solo una delle macchlne che
apparLengono a quel gruppo. ln Lal modo posso avere uno sLesso servlzlo repllcaLo su LanLe
macchlne e pol con una Lrasmlsslone anycasL cercare dl ragglungere la plu vlclna (nel senso della
reLe, non geograflco). 1ale Lecnlca e uLlllzzaLa sopraLLuLLo per ragglungere ll server unS plu vlclno
senza conoscerne necessarlamenLe l'lndlrlzzo lÞ.
ln lÞv6 scompare ll broadcasL (Lrasmlsslone che ln lÞv4 era dlreLLa a LuLLe le macchlne della soLLoreLe o
sulla reLe generale, a seconda dell'lndlrlzzo broadcasL uLlllzzaLo), ellmlnaLo perche era dlspendloso sla dal
punLo dl vlsLa del Lempo dl Lrasmlsslone che dl quello dl elaborazlone. ll broadcasL ln lÞv6 e sLaLo sosLlLulLo
dall'lsLlLuzlone dl un lnsleme dl gruppl sLandard mulLlcasL.

LslsLono Lre Llpl dl lndlrlzzl lÞv6 unlCAS1:

! LINk-LCCAL: e obbllgaLorlo, una lnLerfaccla deve sempre e comunque avere un lndlrlzzo dl quesLo
Llpo. 1ale Llpo dl lndlrlzzo serve per comunlcare con alLre macchlne che apparLengono alla proprla
soLLoreLe, non ml permeLLe dl aLLraversare nessun rouLer. Cloe un lndlrlzzo llnk-local ha un valore
solo all'lnLerno della soLLoreLe ln cul ml Lrovo, dl modo che poLrebbe rlpeLersl ln alLre soLLoreLl
perche LanLo non e un lndlrlzzo globale. Sono eulvalenLl a quelll dell'auLoconflgurazlone sLaLeless
dell'lÞv4 perche anche quelll sono lndlrlzzl scelLl a caso esLraendo ln un range dl lndlrlzzl lÞ
nell'lpoLesl che ho blsogno dl un lndlrlzzo lÞ per avvlsare una comunlcazlone escluslvamenLe con le
macchlne che fanno parLe della mla soLLoreLe.
! SI1L-LCCAL: sono slmlll al llnk-local, nel senso anche ln quesLo caso non sl esce su LuLLo l'lÞ, però sl
rlesce ad aLLraversare qualche rouLer. Sl pensl ad esemplo ad una reLe azlendale cosl grossa che,
nonosLanLe sla LagllaLa fuorl da lnLerneL, sla organlzzaLa ln soLLoreLl e abbla qulndl del rouLer
all'lnLerno. Cll lndlrlzzl slLe-local servono per essere lndlrlzzaLl e ragglunglblll all'lnLerno dl una
slmlle reLe.
! GLC8AL: equlvalenLl agll lndlrlzzl pubbllcl, permeLLono dl essere lndlrlzzaLl su LuLLo l'lÞ (e qulndl che
la macchlna sla ragglunglblle dall'esLerno).

SollLamenLe l global e l slLe-local sono ln alLernaLlva, menLre un lndlrlzzo llnk-local deve sempre essere
presenLe. ul conseguenza ognl lnLerfaccla dl reLe ha assegnaLl almeno un palo dl lndlrlzzl (llnk-local+global),
perche ln lÞv6 ad una sLessa lnLerfaccla possono anche essere assegnaLl plu lndlrlzzl dl Llpo global.

Come sl scrlvono gll lndlrlzzl lÞv6? Sl scrlvono ln esadeclmale come oLLo numerl naLurall separaLl da ":",
ognuno equlvalenLe a 16 blL.

es. lLuC:8A98:0876:43lA:0362:CuAl:3uAl:8801
es. 1080:0000:0000:0007:0200:A00C:3423:A037

Slccome la sLrlnga e molLo lunga sono sLaLe lnLrodoLLe delle sempllflcazlonl che possono essere apporLaLe
nella scrlLLura

sl possono omeLLere gll zero lnlzlall
es. 1080:0:0:7:200:A00C:3423:A037
sl possono sosLlLulre gruppl dl zero con "::" (può essere usaLo una volLa sola nella sLrlnga)
es. 1080::7:200:A00C:3423:A037
es. ::1 (lndlrlzzo dl Loopback)
Cl sono lnolLre alcunl lndlrlzzl lÞv4 che possono essere scrlLLl ln v6 ln dlversl modl

0:0:0:0:0:0:A00:1
::A00:1
::10.0.0.1

dove gll ulLlml 32 blL rappresenLano l'lndlrlzzo v4.

ln lÞv6 scompare ll conceLLo dl neLmask sosLlLulLo da quello dl ÞkLIIk LLNGn1 che permeLLe
un'allocazlone degll lndlrlzzl sLreLLamenLe gerarchlca. CuesLo sl lndlca agglungendo alla desLra dl un
lndlrlzzo "/n" dove n e la lunghezza ln blL del preflsso. ua noLare e che sl sollLo ln lÞv6 ll preflsso sl muove a
blocchl dl 4 perche ln Lal modo e posslblle manlpolarll plu facllmenLe ln una scrlLLura ln base 16 (perche un
gruppo dl 4 blL corrlsponde ad una clfra esadeclmale).

es. lLuC:0123:8700::/36


Cll lndlrlzzl assegnaLl al varl gruppl sono l seguenLl



dove
! quelll che lnlzlano per 00 esadeclmale sono rlservaLl ad lndlrlzzl che provengono dalla v4, perche
devono ln qualche modo essere rladLLaLl alla v6.
! gll lndlrlzzl publlcl g|oba|| (AggregaLable Clobal unlcasL) lnlzlano con 2 o 3 esadeclmale.
! gll lndlrlzzl dl Llpo ||nk-|oca| (Llnk Local use) lnlzlano con un valore tra IL8 e IL8
! gll lndlrlzzl prlvaLl dl Llpo s|te-|oca| (ÞrlvaLe) lnlzlano con ID
! gll lndlrlzzl mu|t|cast lnlzlano con II
! ll Lerzo e quarLo lnLervallo erano rlservaLl per lncamerare nella v6 lndlrlzzl che derlvano da alLrl Llpl
dl proLocollo dl llvello 8eLe quall appunLo nSAÞ e lÞx.

La colonna plu a desLra lndlcl la frazlone dello spazlo LoLale dl lndlrlzzamenLo coperLa da ognuno degll
lnLervalll elencaLl.
Sorge sponLanea la domanda: ma perche deflnlre un lnLervallo per gll lndlrlzzl slLe-local? essendo una reLe
prlvaLa separaLa dall'lnLerneL pubbllco non posso assegnare alle macchlne un qualslasl lndlrlzzo? Lbbene
flno a quando la reLe prlvaLa rlmane separaLa dall'lnLerneL pubbllca quesLo e vero. ÞurLroppo però quando
sl crea una grande reLe prlvaLa prlma o pol vlene ll deslderlo dl collegarla all'esLerno. ln Lal caso nell' lÞv4 la
soluzlone sarebbe l'lnserlmenLo dl un nA1 per non doversl sobbarcare l'lncombensa dl rlnumerare LuLLe le
macchlne. ll problema sorge però quando all'lnLerno della reLe prlvaLa e sLaLo lmposLaLo un lndlrlzzo
uLlllzzaLo anche da qualcun alLro nell'lnLerneL pubbllca. ln Lal caso ll nA1 non sapra verso quale delle due
macchlne lnsLradare un paccheLLo essendo che verra uLlllzzaLa preferenzlalmenLe una delle due posslblll
rlghe nella Labella dl rouLlng verso una sLessa desLlnazlone lÞ. l paccheLLl arrlvandogll dall'lnLerno verranno
rlspuLaLl denLro o arrlvandogll da fuorl verranno rlmandaLl nell'lnLerneL pubbllca. AlLro problema rlguardo
gll lndlrlzzl slLe-local sorge pol nel momenLo ln cul due organlzzazlonl, avenLl ognuna la proprla reLe prlvaLa
azlendale, vogllano meLLere ln comunlcazlone le loro reLl ln vlrLu dl un accordo commerclale. ln Lal caso cl
sara da rlsolvere un posslblle problema dl confllLLo dl lndlrlzzl.

ln lÞv6, al flne dl mlnlmlzzare ll numero dl rlghe presenLl nelle Labelle dl rouLlng degll lSÞ dl plu alLo llvello,
sl e lnlzlaLo a dlsLrlbulre e assegnare gll lndlrlzzl ln modo gerarchlco ln modo Lale che l'aggregazlone del
preflssl fosse auLomaLlca. ln parLlcolare gll lndlrlzzl sono dlsLrlbulLl secondo ll seguenLe schema



la dlsLrlbuzlone e nelle manl dl lAnA che ll dlsLrlbulsce aLLraverso l 8l8, che a loro volLa ll dlsLrlbulscono agll
lSÞ dl plu alLo llvello (1LA - 1op Level AuLhorlLy). La 1LA rlceve un grosso blocco dl lndlrlzzl, qulndl con un
preflsso dl reLe abbasLanza corLo. Alla 1LA sl possono rlvolgere una nLA (nexL Level AuLhorlLy), un Þrovlder
locale o anche un cllenLe flnale. Al dl soLLo dl una nLA dl sollLo ce sempre solLanLo o un cllenLe flnale o un
cllenLe flnale. L'allocazlone gerarchlca unlsce l vanLaggl dell'allocazlone geograflca, che non Llene conLo del
vlncoll sulla reLe del provlder, e dl quella provlder-based, che dlsLrlbulsce ll Lrafflco sempllcemenLe ln base
al provlder lndlpendenLemenLe dalla loro locazlone, LuLLavla un provlder può essere molLo esLeso con
molLl punLl dl accesso al backbone lnLernazlonale e qulndl poLrebbe essere plu convenlenLe assegnare gll
lndlrlzzl ln manlera parzlalmenLe geograflca.

ll formaLo degll lndlrlzzl lÞv6 dl Llpo UNICAS1 GLC8AL e dlvlso loglcamenLe ln Lre parLl dl dlmenslone flssa
chlamaLe rlspeLLlvamenLe Þubllc 1opology, SlLe 1opology e lnLerface lu. La prlma e uLlllzzaLa per ll rouLlng
all'lnLerno della publlc lnLerneL ed lndlvldua ll provlder o l'exchange fornlLore del servlzlo dl accesso alla
reLe, SlLe 1opology ldenLlflca l'organlzzazlone lnLerna del slLo e dl conseguenza e usaLa per l'lnsLradamenLo
lnLraslLe, lnflne lnLerface lu ldenLlflca l'lnLerfaccla sul llnk.



dove:

! IN1LkIACL ID: parLe rlservaLa per numerare LuLLe le macchlne presenLl all'lnLerno dl una speclflca
soLLoreLe. Cvvero ll valore presenLe ln Lale campo da 64 blL e assegnaLo ad una lnLerfaccla per
numerarla all'lnLerno dl una soLLoreLe. Se un slLo dovesse essere rlconflguraLo, perche ad esemplo
ha camblaLo provlder, gll ldenLlflcaLlvl 1LA e nLA camblerebbero menLre l' SLA e l'ldenLlflcaLlvo dl
lnLerfaccla rlmarrebbero uguall.
! SLA ID: quesLl 16 blL sono uLlllzzaLl per numerare posslblll soLLoreLl presenLl all'lnLerno dl un unlca
grossa reLe prlvaLa (che qulndl al suo lnLerno comprende del rouLer).
! NLA ID: m blL rlservaLl alla nLA. ul sollLo Lale campo sl assume lungo 24 blL.
! kLS: rlservaLo per un uLlllzzo fuLuro per l'espanslone della dlmenslone dell'lu 1LA o dell'lu nLA. La
dlmenslone del campo e assunLa dl sollLo a 8 blL.
! 1LA ID: k blL rlservaLl alla 1LA. ul sollLo Lale campo sl assume lungo 13 blL.
! IÞ: preflsso da 3 blL che lndlca ll Llpo dl lndlrlzzo lÞv6. negll lndlrlzzl pubbllcl vale 001.

l prlml 48 blL dell'lndlrlzzo sono quelll dl cul effeLLlvamenLe ml servo quando devo andare sull'lnLerneL
pubbllco. lnolLre va noLaLo che scrlvendo un lndlrlzzo lÞv6 ln noLazlone esadeclmale non vl e alcuna clfra
hex che comprende blL da due campl dlversl.
l 64 blL bassl dell'lndlrlzzo possono essere scelLl arblLrarlamenLe, perche LanLo saranno l 64 blL alLl a
garanLlrne l'unlclLa. 1all blL devono essere lnserlLl manualmenLe? Con l'lnLroduzlone dell'lÞv6 cl sl era posLl
l'obleLLlvo dell'auLoconflgurazlone (funzlonallLa fornlLa nella v4 medlanLe proLocollo uPCÞ), dl modo che
sono sLaLa lnLrodoLLe delle Lecnlche medlanLe la quale Lall 64 blL bassl possono essere auLomaLlcamenLe
calcolaLl. Þer esemplo sl può farlo a parLlre dall'lndlrlzzo MAC cablaLo all'lnLerno dl ognl lnLerfaccla dl reLe
(che e unlco a llvello mondlale).
L'lndlrlzzo MAC e un lndlrlzzo dl llvello 2, uLlllzzaLo qulndl per ldenLlflcare ll desLlnaLarlo o ll mlLLenLe
all'lnLerno della reLe locale. un lndlrlzzo MAC e composLo da 48 blL, l cul 24 alLl sono dl sollLo un codlce del
cosLruLLore e l 24 bassl sono gesLlLl dal cosLruLLore che ll usera per numerare le lnLerfaccle prodoLLe. ll
meccanlsmo uLlllzzaLo e ll seguenLe


I|gura a. Þrocesso per r|cavare | 64 b|t bass| da| MAC

Sl dlvlde l'lndlrlzzo MAC ln due parLl. l 24 blL alLl saranno l 24 blL alLl dell'lnLerface lu con l'unlca dlfferenza
che ll seLLlmo blL da slnlsLra da 0 vlene posLo a 1 (Un|versa| b|t). l 24 blL bassl del MAC a loro volLa saranno l
24 blL bassl dell'lnLerfaccla e ln mezzo vengono lnfllaLl due byLe sLandard II IL. ua noLare e che poLrebbe
succedere che qualcuno, seLLando l 64 blL bassl del suo lndlrlzzo a mano, ll abbla scelLl ldenLlcl al mlel
calcolaLl auLomaLlcamenLe a parLlre dall'lndlrlzzo MAC. 1ale probablllLa e davvero bassa, ma non e neanche
zero!

Þer quanLo rlguarda gll lndlrlzzl dl Llpo UNICAS1 LCCALI lnvece ll formaLo e ll seguenLe:

! SI1L-LCCAL: quesLl lndlrlzzl possono essere uLlllzzaLl solo all'lnLerno dl un slngolo llnk, per scopl
quall l'auLoconflgurazlone degll lndlrlzzl e le procedure dl nelghbor dlscovery. lnolLre quesLl lndlrlzzl
possono essere uLlllzzaLl per le comunlcazlonl Lra Lermlnall dlreLLamenLe connessl quando non
slano presenLl del rouLer sul llnk.



! LINk-LCCAL: possono essere uLlllzzaLl solLanLo all'lnLerno dl uno sLesso slLo. l paccheLLl ll cul
lndlrlzzo dl desLlnazlone e dl Llpo slLe local non devono essere lnvlaLl all'esLerno del slLo. Cll lndlrlzzl
slLe-local sono uLlllzzablll sopraLLuLLo da slLl che pur adoLLando la Lecnologla lÞ non sono connessl
alla publlc lnLerneL. Cll lndlrlzzl slLe-local cosLlLulscono ln lÞv6 l'equlvalenLe degll lndlrlzzl prlvaLl
uLlllzzaLl nelle lnLraneL lÞv4, ma, rlspeLLo a quesLl, lnLroducono vanLaggl slgnlflcaLlvl nella
rlnumerazlone dl reLl prlvaLe che decldano dl adoLLare lndlrlzzl globall per connessl alla lnLerneL
pubbllca. ln quesLl casl, lnfaLLl, e sufflclenLe sosLlLulre ll preflsso slLe local con ll preflsso globale
assegnaLo al slLo, e non e necessarlo camblare ll subneLLlng all'lnLerno del slLo.



ua noLare e che probabllmenLe l 64 blL bassl saranno uguall ln LuLLl gll lndlrlzzl assegnaLl ad una lnLerfaccla,
compreso un evenLuale lndlrlzzo globale, perche non c'e nessuno svanLagglo nello sforzarsl a numerarll
dlversamenLe.

lndlrlzzl UNICAS1 SÞLCIALI sono lnvece l seguenLl:

! UNSÞLCIIILD --> :: lndlca che non e dlsponlblle un lndlrlzzo lÞv6. Þuò esser uLlllzzaLo solLanLo come
lndlrlzzo sorgenLe per paccheLLl dl nelghbor ulscovery ln fase dl auLoconflgurazlone dl un nodo,
quando ll nodo sLesso non conosce ancora ll proprlo lndlrlzzo.
! LCCÞ8ACk --> ::1 uLlllzzaLo per lndlrlzzare se sLesso.
! IÞv4 CCMÞA1I8LL --> ::100:1:2:3 uLlllzzaLo nel caso ln cul una macchlna lÞv6 volesse lndlrlzzare una
macchlna lÞv4. l 32 blL bassl sono proprlo l'lndlrlzzo lÞv4, menLre gll alLrl sono LuLLl lmposLaLl a 0.
! IÞv4 MAÞÞLD --> ::IIII:100:1:2:3
! lndlrlzzl compaLlblll con alLre archlLeLLure dl reLe

Þer quanLo rlguarda gll lndlrlzzl dl Llpo lÞv4 MAÞÞLu, blsogna Lener presenLe che ora come ora cl sl rlLrova
a dover convlvere con enLrambl l proLocolll v4 e v6 ln uso. Cloe se l'lÞv6 e lmplemenLaLo ln una macchlna,
slcuramenLe lo sara accanLo l'lÞv4 perche dlversamenLe, daLa l'enorme dlffuslone dl cul gode la v4, cl sl
precluderebbe la posslblllLa dl comunlcare con la magglor parLe degll uLenLl della reLe. L'archlLeLLura che
permeLLe la convlvenza dl enLrambl l proLocolll all'lnLerno dl una macchlna prende ll nome dl
AkCnI1L11UkA DUAL S1ACk. All'lnLerno della macchlna sono lmplemenLaLl gll sLack proLocollarl sla della
v6 che della v4. L'appllcazlone può accedere al proLocolll del llvelll lnferlorl medlanLe un'lnLerfaccla a
sockeL, dl Llpo sLream per ll 1CÞ e sockeL dl Llpo daLagram per l'uuÞ. L'appllcazlone sl meLLe ln aLLesa su un
sockeL, rlceve una rlchlesLa, la evade e pol sl rlmeLLe ln aLLesa sul sockeL orlglnarlo. Þer servlre rlchlesLe che
possono arrlvare da enLrambl gll sLack proLocollarl, l'appllcazlone dovrebbe meLLersl ln ascolLo su plu
sockeL dl Llpo dlverso conLemporaneamenLe. Þer faclllLare la vlLa a coloro che scrlvono le appllcazlonl sl e
qulndl sLudlaLo un meccanlsmo Lale per cul LuLLo quello che arrlva all' lÞv4 dlreLLo all'lÞv6 vlene devlaLo e
faLLo apparlre sul sockeL lÞv6, dl modo che l'appllcazlone può meLLersl ln ascolLo anche solo sul sockeL v6.
Ma quale sara l'lndlrlzzo del mlLLenLe? 1ale mlLLenLe avra un lndlrlzzo v4. L come lo lndlco ln una sLruLLura
daLl che lnvece prevede un lndlrlzzamenLo dl Llpo lÞv6? vlene uLlllzzaLa la rappresenLazlone lÞv4 MAÞÞLu

::llll:100:1:2:3
dove l 32 blL bassl sono l blL dell'lndlrlzzo v4, 16 blL LuLLl a 1 e gll 80
blL plu alLl lnvece LuLLl lmposLaLl a 0.
ll problema sl presenLa pol nel momenLo ln cul blsogna rlspondere.
ll daLagram dl rlsposLa sara lndlrlzzaLo allo sLesso lndlrlzzo del
mlLLenLe della rlchlesLa. L'lndlrlzzo mlLLenLe vlene rlconoscluLo
essere un lndlrlzzo lÞv4 e vlene qulndl devlaLo verso lo sLack della
v4 perche sl provvedo al suo lnolLro.

AlLra quesLlone e quella del coslddeLLo MUL1I-nCMING. MolLo spesso gll uLenLl (sla nella v4 che nella v6)
acqulsLano servlzl dl conneLLlvlLa da plu Þrovlder conLemporaneamenLe.
Þer esemplo

dove ll ÞrovlderA sl e rlvolLo, per avere ll suo spazlo dl lndlrlzzl, ad una 1LAa. La 1LAa aveva a sua volLa
rlcevuLo da lAnA uno spazlo dl lndlrlzzl quale ad esemplo 2001::0/16, dl modo che esaudlsce la rlchlesLa dl
uno spazlo dl lndlrlzzl da parLe del ÞrovlderA assegnandogll una /32 con un preflsso speclflco 86Ll.
L'uLenLe sl rlvolge al ÞrovlderA per rlchledere un servlzlo e sl vede assegnaLo un /48 con speclflcaLo un
preflsso 0023 e 80 blL per poLer numerare le proprle macchlne. ul conseguenza ll preflsso LoLale dell'uLenLe
e dlvenLaLo 2001:86Ll:23. L'uLenLe usa Lale spazlo dl lndlrlzzamenLo assegnando ad una macchlna ad
esemplo l'lndlrlzzo 3001:86Ll:23:7::A.


L'uLenLe sl rlvolge anche al Þrovlder8 per avere un servlzlo dl conneLLlvlLa. nel momenLo ln cul dlvlene
cllenLe anche del Þrovlder8, la macchlna precedenLemenLe numeraLa prende auLomaLlcamenLe anche un
secondo lÞ globale quale ad esemplo 3001:43Cu:l300:7::A. l paccheLLl che arrlvano dalla reLe arrlveranno
dal laLo del Þrovlder8 se chl lo manda ha usaLo come lndlrlzzo dl desLlnazlone 3001:43Cu:l300:7::A,
arrlveranno da A se sara sLaLo uLlllzzaLo l'alLro. va speclflcaLo che ll faLLo dl avere due lndlrlzzl lÞ assegnaLl
da due provlder dlversl non aluLa mlnlmamenLe nell'lnLenLo dl dlsLrlbulre ll carlco, perche ll Lrafflco verso
l'esLerno passa da A o da 8 a seconda dl quale sara l'lndlrlzzo desLlnaLarlo.
L'uLenLe ad un cerLo punLo poLrebbe decldere dl sosLlLulre ll Þrovlder8 con un Lerzo ÞrovlderC, ll quale
posslede uno spazlo dl lndlrlzzamenLo 3008:1A7l::0/32. Sulla macchlna a quesLo punLo sparlsce l'lndlrlzzo
lÞ relaLlvo al provlder8 e ne assume un'alLro relaLlvo al ÞrovlderC quale ad esemplo 3008:1A7l:17:7::A.



Cvvero se sl cambla Þrovlder sl va lnconLro alla necesslLa dl dover rlnumerare LuLLe le macchlne all'lnLerno
dell'organlzzazlone (cosa che lnvece non succede nell'lÞv4). ln Lal modo sl preserva l'aggregablllLa del
preflssl ad alLo llvello.
Þer allevlare Lall probleml nella v6 sono sLaLl prevlsLl del meccanlsml che, una volLa lnserlLo ln un rouLer ll
nuovo preflsso dl reLe, permeLLono dl propagare Lale lnformazlone a LuLLl l rouLer e alle macchlne uLenLe
dell'organlzzazlone. lnolLre sara necessarlo, se all'lnLerno dell'organlzzazlone sono presenLl del server,
andare a reglsLrarll nuovamenLe con ll nuovo lndlrlzzo presso ll unS o non saranno ragglunglblll dal cllenLl.
lnflne c'e da conslderare che un campo dl lndlrlzzl non può avvenlre lmprovvlsamenLe, ma dl sollLo blsogna
manLenere LuLLl gll lndlrlzzl per un cerLo perlodo. L'lndlrlzzo che sLa per essere abbandonaLo sara segnalaLo
come deprecaLo. ln Lal modo non verranno perse connesslonl che poLrebbero essere ln corso verso o da
l'lndlrlzzo lÞ che vlene abbandonaLo.

Cll INDIkI22I AN¥CAS1 non cosLlLulscono uno spazlo dl lndlrlzzamenLo separaLo, ovvero non eslsLe un
parLlcolare preflsso che ll ldenLlflca. Sono lndlrlzzl che servono ad lndlrlzzare un gruppo dl macchlne. Lo
scopo e quello dl far arrlvare un daLagram conLenenLe Lale lndlrlzzo nel campo desLlnaLarlo anche ad una
sola delle macchlne apparLenenLl a quel gruppo, quella plu facllmenLe ragglunglblle. 1ale Llpo dl lndlrlzzo
può essere assegnaLo solo al rouLer lÞv6 e non alle macchlne uLenLe. ALLualmenLe però non sono molLo
uLlllzzaLl polche l'algorlLmo dl lnsLradamenLo non e molLo efflclenLe. L'unlco caso ln cul sono
effeLLlvamenLe usaLl e per l'lndlrlzzamenLo del Local name Server, dl conseguenza non vl e plu la necesslLa
dl conflgurare manualmenLe l'lndlrlzzo lÞ per ll unS.
ll formaLo generlco dl un lndlrlzzo AnycasL e ll seguenLe

dove
! SU8NL1 ÞkLIIk: 64 blL bassl che lndlcano ln quale speclflca soLLoreLe (probabllmenLe la mla) vogllo
effeLLuare l'anycasL.
! AN¥CAS1 ID: 7 blL alLl che cosLlLulscono un ldenLlflcaLore anycasL
! AL1kI: l rlmanenLl 37 blL sono cosLlLulLl da sel blL a 1, un blL a 0 e gll alLrl LuLLl 1
Culndl meLLendo un apposlLo codlce nel campo AnycasL ld posso fare un anycasL verso ll Local name
Server, Lenendo però presenLe che ll SubneL Þreflx e flssaLo ( sara quello della mla soLLoreLe). L'anycasL su
macchlne che sl Lrovano ln soLLoreLl dlfferenLl e prevlsLo ma dl faLLo non e uLlllzzaLo polche non e ancora
dlsponlblle un algorlLmo abbasLanza efflclenLe.

Cll INDIkI22I MUL1ICAS1, presenLl anche nella v4, nella v6 sosLlLulscono l 8roadcasL. 1uLLe le macchlne
apparLenenLl al gruppo MulLlcasL rlcevono una copla del messagglo recanLe lndlrlzzo desLlnaLarlo quello
del gruppo. ll formaLo generlco dl un lndlrlzzo mulLlcasL e ll seguenLe


dove:
! 8 blL alLl dl preflsso LuLLl a 1 conLraddlsLlnguono ll MulLlcasL --> II
! ILAG: solo l'ulLlmo blL dl quesLo gruppo dl 4 blL vlene uLlllzzaLo ed lndlca se sl LraLLa dl un gruppo
LranslLorlo o permanenLe
! SCCÞL: dellmlLa l'amplezza del MulLlcasL da effeLLuare
1 - node Local: MulLlcasL lnLerno alla macchlna mlLLenLe verso una cerLa serle dl
appllcazlonl che sl Lrovano LuLLe nella sLessa macchlna.
2 - Llnk Local: MulLlcasL llmlLaLo a LuLLe le macchlne dl un parLlcolare gruppo che sl
Lrovano nella mla sLessa soLLoreLe. 1ale Llpo dl mulLlcasL non può qulndl aLLraversare
nessun rouLer.
S - SlLe Local: MulLlcasL verso LuLLe le macchlne apparLenenLl ad un parLlcolare gruppo
che hanno l 48 blL alLl uguall a quelll del mlLLenLe, ovvero non sl vuole usclre al
dl fuorl dalla reLe prlvaLa dell'organlzzazlone.
8 - CrganlzaLlon Local
L - Clobal: MulLlcasL verso LuLLl coloro che fanno parLe dl un cerLo gruppo ovunque esse sl
Lrovlno.
nella v4 lnvece sl llmlLava l'amplezza del mulLlcasL andando a glocare sul 11L. ln Lal modo però sl
poLevano oLLenere degll effeLLl lndeslderaLl quall ad esemplo ll seguenLe



ll Ml11enLe vuole lnvlare un lnvlo mulLlcasL a LuLLe le macchlne aderenLl al gruppo che sl Lrovano
all'lnLerno della sua soLLoreLe. Culndl, con lo scopo dl far glungere ll mulLlcasL flno a C, seLLe un 11L
parl a 3. Þroblema e che se la macchlna A, anch'essa aderenLe al gruppo ma al dl fuorl della
soLLoreLe, e abbasLanza vlclna anch'essa dl faLLo poLrebbe rlcevere la Lrasmlsslone mulLlcasL.
! GkCUÞ ID: ldenLlflca ll parLlcolare gruppo verso ll quale sl vuole effeLLuare ll mulLlcasL.

ICMÞv6

La verslone del proLocollo lCMÞ assoclaLo all'lÞv6 dlfferlsce da quella uLlllzzaLa nel caso dell'lÞv4 polche va
ad lnglobare funzlonl che nella v4 erano demandaLe ad alLrl proLocolll. nella caLena dl header lÞv6, lCMÞv6
vlene ldenLlflcaLo dal valore 38 nel campo nexL Peader dell'lnLesLazlone che lo precede. Þlu preclsamenLe
l'lCMÞv6 ha funzlonl dl:
! D|agnost|ca: Lale funzlonallLa era gla presensenLe nella v4 e offrlva un servlzlo dl segnalazlone a
fronLe dl errorl quall ad esemplo l'lrraglunglblllLa dl una porLa, una dlmenslone Lroppo grande dl un
daLagram per una cerLa M1u (quesLo problema nella v4 non sl presenLa mal a meno che non venga
seLLaLo ll campo uon'L lragmenL), desLlnaLarlo non ragglunglblle..
! Ne|ghbor D|scovery: sosLlLulsce ll proLocollo A8Þ della v4 e serve a scoprlre, conoscendo un
lndlrlzzo lÞ dl una macchlna, qual'e l'lndlrlzzo MAC assoclaLo, a paLLo che quesLa sl Lrovl all'lnLerno
della sLessa soLLoreLe.
! Gest|one de| grupp| mu|t|cast: corrlsponde sosLanzlalmenLe all'lCMÞ della v4, proLocollo che
venlva uLlllzzaLo per la comunlcazlone Lra una macchlna e ll proprlo rouLer. l messaggl lnvlaLl sono
del Llpo "SLo enLrando a far parLe dl un gruppo", "SLo uscendo da un gruppo" e ll rouLer può lnvlare
del Membershlp 8eporL per dlre a LuLLl quall macchlne fanno parLe dl un gruppo. Þlu ln deLLagllo,
per decldere ll gruppo mulLlcasL l rouLer o server lnvlano paccheLLl dl Membershlp Cuery e gll hosL
apparLenenLl ad un gruppo rlspondono con un messagglo dl Membershlp 8eporL. CuesLl ulLlml
vengono lnvlaLl cosLanLemenLe dal cllenL e per non provocare un appesanLlmenLo della reLe un
campo dl Maxlmum 8esponse uelay lndlca l'lnLervallo dl lnvlo del Membershlp 8eporL. nel
momenLo ln cul un hosL abbandona ll gruppo mulLlcasL, vlene lnvlaLo un lCMÞv6 dl 1ermlnaLlon.
ll formaLo del generlco paccheLLo lCMÞv6 e ll seguenLe

dove:
! 1¥ÞL: lndlca ll Llpo del paccheLLo lCMÞv6. 1ale campo ha 233 valorl posslblll e dl segulLo, per
brevlLa, sono rlporLaLl l valorl plu slgnlflcaLlvl



dove 130, 131 e 132 sono quelll che sosLanzlalmenLe sosLlLulscono ll proLocollo lCMÞ della v4. l
rouLer che vogllono LesLare l'apparLenenza degll hosL locall a deLermlnaLl gruppl spedlscono un
messagglo dl membershlp query, e gll hosL che apparLengono ad un gruppo rlspondono con un
group membershlp reporL.
l codlcl 133 e 134 sono lnvece legaLl alle funzlonallLa uPCÞ della v4. nella v6 ognl macchlna declde
ln prlmls ll proprlo lndlrlzzo dl Llpo llnk-local (che e obbllgaLorlo a dlfferenza dl quello globale o slLe-
local), che conslsLe nella scelLa del 64 blL bassl perche l 64 alLl non sono alLro che ll preflsso llnk-
local e pol LuLLl zerl. uopo dl che sl vorrebbe poLer acqulslre un lndlrlzzo dl Llpo Clobal ad esemplo,
dl modo che ce blsogno dl acqulslre l 64 blL alLl dell'lndlrlzzo, e chl può fornlrll e un rouLer che sl
Lrova all'lnLerno della speclflca soLLoreLe. Con una 8ouLer SolllclLaLlon sl rlchlede a uno del rouLer
della soLLoreLe dl fornlre ll preflsso, la parLe alLa dell'lndlrlzzo. ll rouLer lncludera le lnformazlonl
rlchlesLe ln un messagglo dl 8ouLer AdverLlsemenL. 1all messaggl vengono perlodlcamenLe lnvlaLl
dal rouLer anche se non hanno rlcevuLo espllclLe rlchlesLe dl 8ouLer SolllclLaLlon perche sl e vlsLo
che nella v6 la posslblllLa dl dover rlnumerare la reLe e plu probablle rlspeLLo alla v4, dl modo che l
rouLer provvedono a rlnfrescare perlodlcamenLe ll preflsso dl reLe. ua noLare e che l 8ouLer
AdverLlsemenL possono annunclare anche plu dl un preflsso dl reLe, vlsLa la posslblllLa dl rlchledere
servlzl dl conneLLlvlLa conLemporaneamenLe a plu dl un Þrovlder. lnolLre ln generale gll lndlrlzzl
delle macchlne soggeLLl a rouLer AdverLlsemenL (global e slLe-local) sono "a Lempo", cloe un cerLo
preflsso vlene annunclaLo come valldo per un cerLo perlodo dl Lempo. Þrlma che Lale lasso dl
Lempo scada arrlva un nuovo rouLer adverLlsemenL che fa parLlre da zero ll conLaLore oppure ml
annuncla un nuovo preflsso.
l codlcl 13S e 136 sono ll corrlspeLLlvo del proLocollo A8Þ nell v4. ll nelghor SolllclLaLlon serve per
scoprlre qual'e l'lndlrlzzo MAC assoclaLo ad un lndlrlzzo lÞ ln mlo possesso. ll nelghbor
AdverLlsemenL e la rlsposLa dalla macchlna avenLe quell'lÞ, nella quale comunlca l'lndlrlzzo MAC
della sua lnLerfaccla. LoglcamenLe quesLo vale all'lnLerno delle reLl locall, essendo ll MAC un
proLocollo dl llvello 2. Se non ml Lrovo su una reLe locale ll funzlonamenLo e lnvece dlfferenLe. ll
nelghbour solllclLaLlon però può anche essere uLlllzzaLo per verlflcare che l'lndlrlzzo lÞ llnk-local
cosLrulLo sla unlco all'lnLerno della soLLoreLe. Þer farlo lnfaLLl nella v4 sl manda un A8Þ ln broadcasL
a LuLLl con quell'lndlrlzzo come desLlnaLarlo, dl modo che se nessuno rlsponde sl ha la cerLezza
della sua unlclLa.
! CCDL: lndlca ll codlce del messagglo dl errore
! CnLCkSUM: uLlllzzaLo per rllevare errorl dl Lrasmlsslone dell'lnLero paccheLLo
! MLSSAGL 8CD¥: conLlene un messagglo ed e dl lunghezza varlabll






LL2ICNI N. 4,S,6,7,8

Internet Þrotoco| Vers|one 6:
Aspett| avanzat|

una delle novlLa lnLrodoLLe dalla v6 dell'lÞ e ll meccanlsmo dl AU1CCCNIIGUkA2ICNL, che ha lo scopo dl
auLomaLlzzare ll processo dl conflgurazlone dl un hosL. nella v4 per avere una funzlonallLa dl quesLo Llpo e
sLaLo lnLrodoLLo ll proLocollo uPCÞ (eslsLe anche la posslblllLa dl auLoconflgurazlone sLaLeless, ma llmlLaLa
al caso dl reLl locall LoLalmenLe scollegaLe dall' lnLerneL pubbllco), che però presuppone l'eslsLenza dl un
server uPCÞ al quale poLer rlchledere l parameLrl dl conflgurazlone. Sl rlcordl che Lra l parameLrl dl
conflgurazlone nella v6 non e plu presenLe l'lndlrlzzo del Local name Server perche oLLenuLo aLLraverso
l'lnvlo dl messaggl anycasL.
Cll lndlrlzzl sono formaLl da due parLl: l 64 blL alLl e quelll bassl. l 64 blL bassl sono la numerazlone dl una
lnLerfaccla all'lnLerno della parLlcolare soLLoreLe ln cul sl Lrova e sono una lnformazlone che può essere
declsa localmenLe. L'lnformazlone da lnserlre nel 64 blL alLl e lnvece ln possesso del rouLer perche
conLengono ll preflsso globale (l prlml 48 blL) e ll numero dl soLLoreLe (l resLanLl 16 blL). 1all blL possono
essere acqulslLl, come gla accennaLo ln precedenza, medlanLe uLlllzzo del messaggl dl 8ouLer SolllclLaLlon e
8ouLer AdverLlsemenL deflnlLl dal proLocollo lCMÞv6.

Autoconf|guraz|one deg|| hosts state|ess
una delle prlme operazlonl che vengono effeLLuaLe all'accenslone dell'lnLerfaccla e la generazlone dl un
lndlrlzzo dl Llpo llnk-local (l cul 64 blL bassl sono l'lu dell'lnLerfaccla all'lnLerno della soLLoreLe e l 64 alLl flssl
sono un ldenLlflcaLlvo del Llpo llnk-local segulLo da una sLrlnga dl zerl). CeneraLo Lale lndlrlzzo e necessarlo
andare ad effeLLuare una fase dl uupllcaLe Address ueLecLlon (anche deLLa dl Þrob|ng) per verlflcare
l'unlclLa dell'lndlrlzzo all'lnLerno della soLLoreLe, ovvero che non cl sla nessuno che abbla scelLo gll sLessl 64
blL bassl (magarl lmposLandoll manualmenLe). Se l'lndlrlzzo e gla uLlllzzaLo da un alLro hosL sul llnk, la
procedura dl auLoconflgurazlone rlprende con un nuovo Loken generaLo random. Avendo assegnaLo solo
un lndlrlzzo dl Llpo llnk-local una macchlna e ln grado dl comunlcare solo con LuLLe le alLre macchlne che
fanno parLe della sua soLLoreLe.
Þer ampllare le proprle posslblllLa dl comunlcazlone necesslLa lnvece dl un lndlrlzzo dl Llpo slLe-local o
global. ln enLrambl l casl e necessarlo che cl sla un rouLer che sl affaccla sulla soLLoreLe. Þer deLermlnare la
parLe alLa dell'lndlrlzzo (che ln enLrambl l casl non e flssa) e posslblle lnolLraLe una rlchlesLa medlanLe un
messagglo lCMÞv6 dl 8ouLer SolllclLaLlon all'lndlrlzzo ºall rouLer mulLlcasL address" (ll02::2), oppure può
sempllcemenLe meLLersl ln ascolLo per l messaggl dl 8ouLer AdverLlsemenL che perlodlcamenLe vengono
spedlLl dal rouLer. l messaggl dl rouLer adverLlsemenL possono conLenere uno o plu preflssl assoclaLl al llnk
con l quall ll nodo può compleLare la procedura dl auLoconflgurazlone sLaLeless creando gll lndlrlzzl globall
(o slLe local) per le proprle lnLerfacce. AcqulslLl l 64 blL della parLe alLa vlene composLo l'lndlrlzzo compleLo
e lnlzla la fase dl Þroblng per verlflcare che sla unlco all'lnLerno della soLLoreLe, polche l'unlclLa globale e
garanLlLa dal preflsso dl reLe.

un esemplo dl daLagram conLenenLe un messagglo dl 8ouLer AdverLlsemenL e ll seguenLe:

dove nell'lnLesLazlone dl llvello MAC e posslblle noLare che
! l'lndlrlzzo desLlnaLarlo e dl Llpo mulLlcasL polche lnlzla col preflsso 33:33: che a llvello MAC e
uLlllzzaLo a Lale scopo
! ll valore del campo 1ype 0x86dd lndlca che ll frame eLherneL LrasporLa un messagglo dell'lÞv6
nell'lnLesLazlone lÞv6 lnvece
! nexL Peader dlce che ll prosslmo header e un'lnLesLazlone lCMÞv6
! L'lndlrlzzo mlLLenLe e dl Llpo slLe-local (lnlzla con fe) menLre quello desLlnaLarlo e dl Llpo mulLlcasL
(lnlzla con ff) llmlLaLo alla soLLoreLe (ff02)
nell' header lCMÞv6 lnflne
! ll campo 8ouLer LlfeLlme lndlca ll lasso dl Lempo per ll quale sara vallda l'lnformazlone
! vengono fornlLe lnformazlonl rlguardo la M1u sulla soLLoreLe (1300 byLe essendo eLherneL)
! Cl sono due annuncl dl due preflssl dlversl. ll prlmo ln parLlcolare e 2001:6b8:401:1::, lungo 64 blL
come cl sl aspeLLa. ll quarLo gruppo da 16 blL e uguale ln enLrambl perche quello e ll numero della
soLLoreLe e qulndl non cambla.
! ll campo Þreferred llfeLlme lndlca per quanLo Lempo rlmarra valldo Lale preflsso. Þrlma che scada
Lale Lempo sara qulndl rlcevuLo un nuovo 8ouLer AdverLlsemenL per rlnfrescare ll preflsso o per
modlflcarlo. ll valld LlfeLlme plu grande del Þreferred llfeLlme perche sl consldera la posslblllLa che
alcunl messaggl dl adverLlsemenL vadano persl dopo l'lnvlo (max 4).


ua noLare e che ln generale non LuLLl l rouLer mandano messaggl dl 8ouLer AdverLlsemenL. Þer esemplo se
ln una reLe locale sono presenLl plu rouLer ll sl può lmposLare ln modo che solo uno dl essl lnvll Lall
messaggl.
ual momenLo che, come deLLo, l rouLer lnvlano perlodlcamenLe nuovl messaggl dl rouLer adverLlsemenL, l
nodl rlcevono conLlnuamenLe nuove lnformazlonl con le quall agglungere nuovl lndlrlzzl o agglornare quelll
gla conflguraLl. Le procedure dl auLoconflgurazlone degll hosL possono essere vanLagglosamenLe uLlllzzaLe
per camblare gll lndlrlzzl dl un slLo (slLe renumberlng), operazlone LlplcamenLe poco amaLa dal gesLorl delle
reLl. CuesLa caraLLerlsLlca qulndl favorlsce operazlonl dl rlsLruLLurazlonl della reLe, camblo dl lSÞ, merglng
dl azlende, cosl come ll passagglo da una archlLeLLura dl reLe prlvaLa (lndlrlzzl slLe-local) ad una pubbllca
(lndlrlzzl globall).
Al momenLo aLLuale l proLocolll dl llvello alLo quall 1CÞ ldenLlflcano le connesslonl uLlllzzando anche
l'lndlrlzzo lÞ e qulndl un camblamenLo dl lndlrlzzo non può essere effeLLuaLo senza dlsLruggere le
connesslonl ln corso. Þer Lenere conLo dl quesLo faLLo gll lndlrlzzl lÞv6 sono dlvlsl ln due caLegorle, quelll
preferlLl (preferred) e quelll deprecaLl (deprecated). l proLocolll dl alLo llvello, quando devono aprlre una
nuova connesslone, devono sempre uLlllzzare un lndlrlzzo dl Llpo preferlLo. Þer lnlzlare una procedura dl
rlnumerazlone occorre lnnanzlLuLLo lnserlre sul rouLer l nuovl preflssl assegnaLl alla reLe (uLlllzzaLl per
generare l nuovl lndlrlzzl delle sLazlonl della reLe) ed aLLendere che vengano propagaLl ln LuLLa la reLe. ual
momenLo che ad ognl preflsso e assoclaLa una valldlLa Lemporale, allo scadere della loro valldlLa, non
essendo plu confermaLl dal messaggl del rouLer, l vecchl preflssl verranno auLomaLlcamenLe eLlcheLLaLl
come deprecaLl, rlmanendo ln quesLo sLaLo per un Lempo raglonevolmenLe sufflclenLe a consenLlre a LuLLe
le connesslonl aLLlvaLe ln precedenza dl Lermlnare (per esemplo alcunl glornl). lnflne gll lndlrlzzl deprecaLl
dlvenLano non valldl e possono essere compleLamenLe ellmlnaLl, Lermlnando cosl la Lranslzlone dal vecchl
al nuovl lndlrlzzl.

Come gla accennaLo, ll Dup||cate Address Detect|on e un procedlmenLo che serve per verlflcare che ll
proprlo lndlrlzzo lÞ non sla dupllcaLo all'lnLerno della soLLoreLe dl apparLenenza. Þer farlo vlene lnvlaLo un
nelghbor SollclLaLlon (slmll-A8Þ), dl modo che se nessuno rlsponde sono slcuro dell'unlclLa dell'lndlrlzzo
nella soLLoreLe. una Llplca sequenza dl frame per la reallzzazlone del uAu e la seguenLe



ÞACCnL11C 1: nelghbor SollclLaLlon


A llvello MAC ll desLlnaLarlo sono solo LuLLe quelle macchlne all'lnLerno della mla soLLoreLe che hanno gll
sLessl 24 blL bassl del mlLLenLe (..:a8:77:20), qulndl non e un mulLlcasL che "dlsLurba" plu dl LanLo le
lnLerfacce. ua noLare e che l'lndlrlzzo dl desLlnazlone e cosLrulLo unendo al preflsso dl mulLlcasL dl llvello
MAC 33:33 l 32 blL bassl dell'lndlrlzzo lÞ del mlLLenLe.
nell'lnLesLazlone lÞv6 l'lndlrlzzo mlLLenLe non e speclflcaLo (perche sLo ancora cercando dl caplre se quello
che ho scelLo effeLLlvamenLe lo posso adoLLare) e ll campo nexL Peader dlce che segue un header lCMÞv6.
L'lndlrlzzo dl desLlnazlone e un mulLlcasL llmlLaLo alla soLLoreLe (per vla del preflsso ff02::1), e ln parLlcolare
a LuLLe le macchlne della soLLoreLe ll cul lndlrlzzo lÞ nel 32 blL bassl ha :ffa8:7720 (ff flsso + 24 blL bassl
dell'lndlrlzzo MAC).
nell'lnLesLazlone lCMÞv6 pol ce flnalmenLe scrlLLo, nel campo 1argeL, l'lndlrlzzo compleLo rlcercaLo, ovvero
fe80::2c0:dfff:fea8:7720. Come cl sl aspeLLava Lale lndlrlzzo e dl Llpo llnk-local (lnlzla con fe8).

ÞACCnL11C 2: MulLlcasL LlsLener 8eporL

uopo aver aLLeso clrca 4 secondl senza rlcevere alcuna rlsposLa al messagglo dl nelghbor SolllclLaLlon, la
macchlne lnvla un messagglo dl MulLlcasL LlsLener reporL. 1ale messagglo ln Leorla serve per dlchlarare la
proprla apparLenenza ad un cerLo gruppo ma dl faLLo ln quesLo caso e uLlllzzaLo per noLlflcare ll faLLo che e
sLaLo adoLLaLo un cerLo lndlrlzzo lÞv6 dl Llpo llnk-local dopo averne verlflcaLa l'unlclLa all'lnLerno della
soLLoreLe.

ÞACCnL11C 3: 8ouLer SolllclLaLlon
uopo aver conflguraLo l'lndlrlzzo llnk-local prova a vedere se eslsLe anche un lndlrlzzo slLe-local o global.
Culndl lnvla un messagglo dl 8ouLer SolllclLaLlon all'lndlrlzzo mulLlcasL ff02::2 che corrlsponde a LuLLl l
rouLer che sl Lrovano all'lnLerno della soLLoreLe. Þroblema e che ln quesLo caso pare che non cl sono rouLer
nella soLLoreLe, dl modo che non rlceve alcun rouLer adverLlsemenL.

Þolche l'ldenLlflcaLlvo dl lnLerfaccla può rlmanere lnvarlaLo per un Lempo molLo lungo (addlrlLLura per LuLLa
la duraLa dell'eslsLenza dell'lnLerfaccla sLessa), poLrebbero presenLarsl del probleml dl slcurezza legaLl al
faLLo che Lale ldenLlflcaLlvo poLrebbe poLenzlalmenLe essere uLlllzzaLo per Lenere Lraccla del movlmenLl
sulla reLe dl un nodo parLlcolare, meLLendo ln relazlone Lra dl loro aLLlvlLa apparenLemenLe scorrelaLe
effeLLuaLe ln conLesLl dlfferenLl. Ad esemplo un anallzzaLore dl reLe collocaLo ln una poslzlone sLraLeglca
della reLe poLrebbe raccogllere lnformazlonl rlguardo al Lrafflco generaLo da un hosL dlsLlnguendolo ln base
all'lnLerface lu (anche se sl LraLLa dl un uLenLe moblle o dl una connesslone ÞÞÞ) e Lall lnformazlonl
poLrebbero, ad esemplo, essere uLlllzzaLe per verlflcare se un cerLo lmplegaLo e al lavoro e a quale ora,
oppure se c'e qualcuno ln una cerLa ablLazlone o ufflclo. SlLl parLlcolarmenLe LrafflcaLl (ad esemplo un
porLale WL8) poLrebbero caLalogare, ln base all'lnLerface lu, ll Lrafflco provenlenLe da un cerLo hosL allo
scopo dl creare un profllo dell'uLenLe (o degll uLenLl) che lo uLlllzzano. Sono sLaLl qulndl deflnlLl meccanlsml
che consenLono ad un nodo dl generare lnLerface Loken dlversl ognl volLa che vlene effeLLuaLa la procedura
dl auLoconflgurazlone. una delle proposLe prevede che un nodo effeLLul le normall operazlonl dl sLaLeless
auLoconflguraLlon uLlllzzando ognl volLa un lnLerface lu dlverso, generaLo da un algorlLmo sLocasLlco
basaLo su Labelle dl hash Mu3.

Autoconf|guraz|one deg|| hosts statefu||
LslsLe anche un uPCÞv6 per l'auLoconflgurazlone dl hosL che sla sLaLefull ("con memorla"). ll modello
sLaLeful prevede che l'hosL oLLenga l'lndlrlzzo della proprla lnLerfaccla ed alLrl evenLuall parameLrl da un
server, ll quale manLlene un daLabase che Llene Lraccla dl quall lndlrlzzl sono sLaLl assegnaLl a deLermlnaLl
nodl. La Lransazlone e lnlzlaLa dal cllenL che rlchlede l'assegnazlone dl un lndlrlzzo (e del parameLrl relaLlvl)
ed e composLo da dlversl Llpl dl messaggl dl comunlcazlone per rlchlesLa, rlsposLa, rllasclo, rlconflgurazlone,
solleclLazlone e adverLlse. CuesLo meccanlsmo e compaLlblle con lo sLaLeless, nel senso che un nodo può
oLLenere, per esemplo, ll suo lndlrlzzo LramlLe ll meccanlsmo sLaLeless, e alLrl parameLrl aLLraverso
l'auLoconflgurazlone sLaLeful. CuesLo Llpo dl auLoconflgurazlone e parLlcolarmenLe adaLLa nel slLl ln cul
slano predomlnanLl gll aspeLLl legaLl alla slcurezza, oppure quando sulla sLessa LAn convlvano plu reLl lÞ
dlsLlnLe, nel qual caso sl vuole forzare un hosL ad apparLenere sempre e solo ad una ben deLermlnaLa reLe.


Autoconf|guraz|one de| router
LslsLe uno sLandard che deflnlsce l meccanlsml con cul l rouLer devono comunlcare nel caso ln cul sla
necessarlo effeLLuare una rlnumerazlone delle mle reLl. 1all Lecnlche sono conLenuLe nel proLocollo 8ouLer
8enumberlng descrlLLo nello 8lC 2894. ln parLlcolare cl sono del messaggl che l rouLer sl scamblano Lall che
se ho una reLe complessa composLa da plu soLLoreLl lnLerna alla mla azlenda, basLa che l preflssl vengano
lmmessl anche solo ln un rouLer (LlplcamenLe quello che funge da collegamenLo verso l'esLerno) perche
quesLl vengano propagaLl a LuLLl gll alLrl rouLer flno a quando quesLl non arrlvano alle lnLerfaccle degll hosL
medlanLe l 8ouLer AdverLlsemenL.


vedlamo ora qual'e l'lmpaLLo che Lranslzlone a lÞv6 comporLa per quanLo rlguarda ll unS, ll daLabase
dlsLrlbulLo che memorlzza le assoclazlonl Lra ldenLlflcaLorl umanamenLe comprenslblll (ed alLrl parameLrl)
ed lndlrlzzl lÞ. L'elemenLo aLomlco dl quesLo daLabase prende ll nome dl kesource kecord (88), l cul campl
prlnclpall sono nome, 1lpo e valore.


l due Llpl dl 88 plu comunl sono:
! 1lpo A: assoclano a ldenLlflcaLlvl alfanumerlcl lndlrlzzl lÞv4 dl 32 blL.
! 1lpo CNAML: sLablllsce un allas, ovvero un mapplng Lra un nome e un alLro nome. un Lale Llpo dl 88
punLa pol ad un 88 dl 1lpo A per oLLenere la Lraduzlone dell'ldenLlflcaLlvo.



Con la Lranslzlone ad lÞv6 ll 88 dl Llpo CnAML non ha sublLo alcuna varlazlone. Al conLrarlo, per sosLlLulre ll
1lpo A e sLaLo sLandardlzzaLo un nuovo 1lpo AAAA. CuesLo svolge esaLLamenLe la medeslma funzlone del
1lpo A con la sola dlfferenza che all'ldenLlflcaLlvo alfanumerlco assocla un lndlrlzzo lÞv6 a 128 blL pluLLosLo
che un lndlrlzzo v4 a 32 blL.
Come abblamo gla deLLo ln precedenza, ora come ora gran parLe delle macchlne che fanno uso dell'lÞv6
uLlllzzano anche l'lÞv4. ul conseguenza e sLaLo sLandardlzzaLo un ulLerlore Llpo dl 88, ll Llpo AN¥. lnvlando
una rlchlesLa al server unS per un 88 dl Llpo An? sl rlchledono LuLLl l 88 assoclaLl al nome lndlcaLo, slano
essl sla dl Llpo A che dl Llpo AAAA. nella rlsposLa del unS poLrebbero essere conLenuLl plu dl un 88 dl Llpo
AAAA e plu dl un 88 dl Llpo A. lnfaLLl ln lÞv6 e normale che ad una lnLerfaccla possano essere assoclaLl plu
lndlrlzzl lÞ, menLre ln lÞv4 clò sl può verlflcare nel momenLo ln cul ad esemplo un server e sLaLo repllcaLo
su plu macchlne al flne dl rlparLlrne ll carlco dl lavoro. 8lcevuLa la rlsposLa dal server unS, ll cllenL poLrebbe
provare a conLaLLare ll server provando ad usare gll lndlrlzzl lÞv6 conLenuLl nel 88 AAAA (sl prova ll prlmo,
pol ll secondo,..flno ad esaurlre la llsLa del 88 AAAA). Se non rlesce a conLaLLare ll server con gll lndlrlzzl
lÞv6, quesLo poLrebbe dlpendere dal faLLo che, a causa della scarsa dlffuslone del proLocollo, da qualche
nella reLe non eslsLe un collegamenLo lÞv6. ul conseguenza sl andra a provare dl sLablllre la connesslone
uLlllzzando gll lndlrlzzl lÞv4 del 88 A. Solo nel caso ln cul nemmeno con quesLl ulLlml sl rlesca a conLaLLarlo,
allora ll server sara dlchlaraLo non ragglunglblle.


Þarllamo lnvece ora del meccanlsmo dl NLIGn8Ck DISCCVLk¥, una delle nuove funzlonallLa lnLrodoLLe
nell'amblLo del proLocollo lCMÞv6 e lnglobaLo all'lnLerno del uAu (uupllcaLe Address ueLecLlon). 1ale
meccanlsmo sosLlLulsce ll proLocollo A8Þ uLlllzzaLo nella v4 e permeLLe dl scoprlre qual'e ll MAC Address dl
un posslblle desLlnaLarlo locallzzaLo all'lnLerno della sLessa reLe locale del mlLLenLe (polche gll lndlrlzzl MAC
sono dl llvello 2 e hanno senso solo all'lnLerno delle reLl locall), a paLLo dl conoscerne l'lndlrlzzo lÞ. Cll
scenarl dl uLlllzzo sono sosLanzlalmenLe due:
! andando a vedere l'lndlrlzzo lÞ del desLlnaLarlo dl un daLagram e confronLandolo col mlo, ml sono
accorLo che l 64 blL alLl sono uguall (sLesso preflsso e sLessl 16 blL slLe local). Clò slgnlflca che ll
desLlnaLarlo sl Lrova all'lnLerno della mla soLLoreLe, dl modo che poLrò lndlrlzzarlo uLlllzzando ll suo
lndlrlzzo MAC.
! devo spedlre un daLagram ad un desLlnaLarlo locallzzaLo al dl fuorl della mla soLLoreLe. ul
conseguenza ll daLagram dovra prlma essere spedlLo ad uno del rouLer che sl affacclano sulla mla
soLLoreLe locale e che ho scoperLo medlanLe l 8ouLer AdverLlsemenL. Þer spedlrgllelo devo fare
affldamenLo sul meccanlsml dl lnsLradamenLo della mla reLe locale, basaLl su lndlrlzzl dl Llpo MAC.
Þer conoscere l'lndlrlzzo MAC del desLlnaLarlo, vlene lnvlaLo un messagglo lCMÞv6 dl nelghbor ulscovery
(nel quale e lndlcaLo l'lndlrlzzo lÞ del quale vogllo conoscere ll corrlspondenLe MAC). A dlfferenza dell'A8Þ,
che mandava del messaggl broadcasL, ln quesLo caso sl fa uso dl messaggl mulLlcasL llmlLaLl alla sola reLe
locale nel quall l'lndlrlzzo del desLlnaLarlo e rlcavaLo nel modo seguenLe



Cvvero sl cosLrulsce l'lndlrlzzo mulLlcasL lÞv6 come
! ll --> preflsso esadeclmale dl mulLlcasL
! 0 --> lndlca che e un gruppo mulLlcasL permanenLe
! 2 --> lndlca che ll messagglo e llmlLaLo alla sola soLLoreLe
! ulLlml 32 blL dell'lndlrlzzo lÞv6
ma per spedlre ll messagglo all'lnLerno della reLe locale ln mulLlcasL ho blsogno dl assegnargll anche un
lndlrlzzo MAC mulLlcasL cosLrulLo come
! Þreflsso esadeclmale 3333
! l 32 blL plu bassl dell'lndlrlzzo lÞv6
l 24 blL plu bassl dell'lndlrlzzo lÞv6 sono pol sollLamenLe uguall al 24 blL plu bassl dell'lndlrlzzo MAC del
mlLLenLe, dl modo che solo coloro che hanno gll sLessl 24 blL bassl uguall a quelll del mlLLenLe
esamlneranno ll messagglo dl mulLlcasL, menLre LuLLl gll alLrl lo lgnoreranno. lnvece con la Lrasmlsslone ln
broadcasL uLlllzzaLa per ll proLocollo A8Þ ln lÞv4 LuLLl dovevano esamlnare ll conLenuLo del frame, per pol
evenLualmenLe scoprlre dl non esserne ll desLlnaLarlo e qulndl scarLarlo.

ul segulLo sono rlporLaLl alcunl lndlrlzzl dl mapplng per alcunl gruppl dl mulLlcasL sLandard

dove ln parLlcolare ll prlmo lndlrlzza LuLLl l nodl apparLenenLl alla sLessa soLLoreLe del mlLLenLe, ll secondo
lndlrlzza LuLLl l rouLer apparLenenLl alla sLessa soLLoreLe del mlLLenLe e ll Lerzo lnvece mosLra un esemplo dl
mulLlcasL solllclLed node, uLlllzzaLo per oLLenere l'lndlrlzzo llnk-layer dl un nodo. ln Lal caso occorre
mandare un messagglo nelghbor SollclLaLlon all'lndlrlzzo ºsollclLed node mulLlcasL address", rlchledendo al
nodo dl cul sl dlspone dell'lndlrlzzo lÞv6 ll suo lndlrlzzo llnk layer. Þolche ll nodo rlchledenLe lnclude nel
messagglo ll proprlo lndlrlzzo dl llvello 2, ll nodo desLlnazlone e ln grado dl rlspondere uLlllzzando un
messagglo unlcasL.

ll02::1:llA8:7720






8lassumenLo quanLo deLLo, la procedura dl nelghbor ulscovery conslsLe nell'lnvlo dl un messagglo dl
nelghbor SollclLaLlon che, come sl e gla vlsLo, e un messagglo lCMÞ con ll campo Lype parl a 133, l'lndlrlzzo
sorgenLe del messagglo e ll llnk local address dell'lnLerfaccla del nodo che vuole rlsolvere l'lndlrlzzo,
menLre l'lndlrlzzo desLlnazlone e ll sollclLed-node mulLlcasL address, ll nodo remoLo (on-llnk) lnLeressaLo
rlspondera con un messagglo dl nelghbor AdverLlsemenL ln cul lndlchera ll MAC address rlchlesLo. 1ale
lnformazlone sara agglunLa nella nelghbor Cache, a quesLo punLo l'hosL e ragglunglblle. nel caso ln cul ll
messagglo dl nelghbor sollclLaLlon non rlceva rlsposLa, l'hosL dl cul sl vuole conoscere l'lndlrlzzo MAC e
remoLo, perclò ll nodo rlchledenLe sceglle un rouLer Lra quelll rllevaLl LramlLe un 8ouLer AdverLlsemenL e
LramlLe quesLo lnsLrada l paccheLLl che vuole spedlre all'hosL remoLo.
Cgnl macchlna ovvlamenLe, come avvenlva per l'A8Þ, manLlene delle cache quall
24 blL bassl dell'lndlrlzzo lÞ
del quale vogllo scoprlre ll
MAC address
96eslmo blL da sx
sempre posLo a 1
ed ll flsso prlma
del l 24 blL bassl
Þreflsso che lndenLlflca ll
mulLlcasL llmlLaLo alla
soLLoreLe


dove:

! La NLIGn8Ck CACnL conLlene una enLry per ognl nodo dlreLLamenLe connesso (ovvero
apparLenenLe alla sLessa reLe locale) con cul l'hosL abbla lnvlaLo recenLemenLe del Lrafflco. Cgnl enLry
conLlene un lndlrlzzo on-llnk unlcasL (lndlrlzzo MAC), un flag che lndlca se sl LraLLa dl un rouLer
oppure no ed un punLaLore ad evenLuall paccheLLl accodaLl ln aLLesa dl Lrasmlsslone.
! La DLS1INA1ICN CACnL conLlene una enLry per ognl desLlnazlone (anche non on-llnk) cul ll nodo ha
recenLemenLe lnvlaLo del Lrafflco. Cgnl enLry conLlene un lndlrlzzo unlcasL ed un punLaLore alle enLry
nella nelghbor cache che lndlca l'lndlrlzzo del nexL hop per quesLa desLlnazlone.
! La kCU1Lk CACnL, lnflne, conLlene una llsLa dl LuLLl l rouLer cul possono essere lnvlaLl l paccheLLl ln
usclLa dalla reLe. un opporLuno llnk permeLLe dl assoclare ad ognl rouLer una enLry nella nelghbor
cache. 1ale Labella e cosLrulLa dlnamlcamenLe ln base alla leLLura del messaggl dl nelghbor
AdverLlsemenL che vlagglano sulla reLe locale.
! nella ÞkLIIk LIS1 vengono memorlzzaLl l preflssl conslderaLl on-llnk ed appresl dal messaggl dl rouLer
adverLlsemenL.


Ino|tro d| pacchett| IÞv6
ll meccanlsmo dl lnolLro del paccheLLl nella v6 sosLanzlalmenLe non dlfferlsce da quello adoLLaLo nella v4.
Sl vanno a vedere l 48 blL alLl dell' lndlrlzzo lÞ del desLlnaLarlo, dopo dl che
! se sono dlfferenLl dal 48 blL alLl dl uno del preflssl ln uso nella macchlna mlLLenLe allora ll
desLlnaLarlo sl Lrova al dl fuorl della soLLoreLe. ln Lal caso per spedlre ll paccheLLo e necessarlo
rlchledere l servlgl dl uno del rouLer scoperLl medlanLe l 8ouLer AdverLlsemenL (ognl macchlna
conserva una Labella conLenenLe gll lndlrlzzl dl Lall rouLer locallzzaLl).
! se sono uguall al 48 blL alLl dl uno del preflssl ln uso nella macchlna mlLLenLe allora ll desLlnaLarlo sl
Lrova all' lnLerno della soLLoreLe. ln Lal caso sl dovra scoprlre l'lndlrlzzo MAC assoclaLo per
procedere ad un lnolLro dlreLLo.
Þlu ln deLLagllo, per lnvlare un paccheLLo ad una desLlnazlone remoLa, un nodo deve uLlllzzare una
parLlcolare comblnazlone delle lnformazlonl conLenuLe nella uesLlnaLlon Cache, nella Þreflx LlsL e nella
uefaulL 8ouLer Cache al flne dl deLermlnare ll nexL hop, ossla l'lndlrlzzo del nodo dlreLLamenLe connesso
cul lnvlare ll paccheLLo. Cuando ll nexL hop e sLaLo deLermlnaLo deve consulLare la nelghbor Cache per
verlflcare se eslsLe l'ldenLlflcaLore llnk layer (lndlrlzzo MAC) assoclaLo a quell'lndlrlzzo.
Þer rlsallre al nexL hop ll nodo mlLLenLe effeLLua un confronLo dl Llpo LongesL Þreflx MaLch Lra l'lndlrlzzo
desLlnazlone ed l preflssl conLenuLl nella Þreflx LlsL. ln caso rlsconLrl che ll preflsso del nodo remoLo e
conLenuLo ln quesLa Labella, ll nexL hop sara lo sLesso lndlrlzzo desLlnazlone, polche ll nodo desLlnazlone sl
Lrova on-llnk (ovvero ll desLlnaLarlo sl Lrova all'lnLerno della sLessa reLe locale del mlLLenLe, dl modo che
può essere conLaLLaLo dlreLLamenLe uLlllzzando ll suo lndlrlzzo MAC). ln caso conLrarlo occorre selezlonare
un rouLer dalla uefaulL 8ouLer Cache da uLlllzzare come nexL Pop. nel caso ll rouLer selezlonaLo come nexL
hop sl Lrovl nella slLuazlone dl dover lnsLradare l paccheLLl sulla sLessa lnLerfaccla da cul gll sono pervenuLl,
lnvlera un messagglo dl 8ouLlng 8edlrecL per lnformare la sLazlone che, per quella desLlnazlone, eslsLe un
percorso mlgllore. Þer moLlvl dl efflclenza, ll rlsulLaLo dl Lale procedura vlene memorlzzaLo nella
uesLlnaLlon Cache. ln quesLo modo ad ognl nuovo paccheLLo da lnvlare ll nodo può verlflcare nella
desLlnaLlon cache se eslsLe gla un'lnformazlone per la desLlnazlone remoLa nel qual caso non e necessarlo
rlpeLere la procedura dl nexL Pop ueLermlnaLlon.
una volLa deLermlnaLo l'lndlrlzzo del nexL Pop ll nodo mlLLenLe accede alla nelghbor Cache. Se non eslsLe
una enLry speclflca per ll nexL hop, vlene creaLa una nuova enLry nello sLaLo lncompleLe, vlene lnlzlaLa la
procedura dl nelghbor ulscovery e l paccheLLl per quesLa desLlnazlone vengono accodaLl.

Þer quanLo rlguarda l rouLer, anche ln quesLo caso essl dlspongono dl Labelle dl lnsLradamenLo. ll rouLer
prende un paccheLLo da lnsLradare, ne guarda l'lnLesLazlone (per rlcercare l'lndlrlzzo del desLlnaLarlo) e va a
cercare nella sua Labella dl rouLlng LuLLe le rlghe ln cul cl slano del numerl dl reLe che sono del preflssl
all'lnLerno dell'lndlrlzzo del desLlnaLarlo. 1ra quesLe sara scelLa quella che cosLlLulsce la sequenza dl blL plu
lunga a slnlsLra dell'lndlrlzzo del desLlnaLarlo (LongesL Þreflx MaLch).
l Þrotoco||| d| rout|ng sono quel proLocolll che servono al rouLers per scamblarsl delle lnformazlonl per
agglornare lo sLaLo della reLe e qulndl dl conseguenza le Labelle dl lnsLradamenLo. l due prlnclpall proLocolll
dl rouLlng sono:
! kIÞng: e un proLocollo dl Llpo dlsLance vecLor uLlllzzaLo per ll rouLlng lnLra-domaln, le sue
presLazlonl sono neLLamenLe lnferlorl a quelle dl proLocolll dl Llpo llnk-sLaLe, come ad esemplo
CSÞl, per quesLo moLlvo vlene uLlllzzaLo ln auLonomous sysLem dl plccole dlmenslonl. ll vanLagglo
del 8lÞ e che la sua lmplemenLazlone e molLo sempllce.
! CSÞIv3: CSÞl e un proLocollo dl Llpo llnk-sLaLe ed e raccomandaLo per ll rouLlng lnLradomaln. Sl
basa sul faLLo che LuLLl l rouLer hanno una copla dl un daLabase che conLlene l llnk sLaLe record che
descrlvono lo sLaLo della reLe, o per lo meno lo sLaLo della reLe a cul apparLengono, lo scamblo dl
lnformazlonl fra l dlversl rouLer avvlene LramlLe LSA (Llnk SLaLe AdverLlsemenL). CSÞl vlene
uLlllzzaLo da molLl annl con lÞv4 e, grazle al mlglloramenLl che ha sublLo nel corso del Lempo, ll
meccanlsmo per la verslone lÞv6 e rlmasLo praLlcamenLe lnvarlaLo, Lranne che per alcune varlazlonl
che rlguardano prlnclpalmenLe l'adaLLamenLo al nuovo formaLo degll lndlrlzzl.


La trans|z|one ad IÞv6
Þr|nc|pa|| prob|emat|che |egate a||a trans|z|one da IÞv4 ad IÞv6
e tecn|che per fac|||tare |a m|graz|one



ll problema dell'esaurlmenLo degll lndlrlzzl lÞv4 e sLaLo la moLlvazlone prlnclpale che ha porLaLo alla nasclLa
dl lÞv6 ed alla necesslLa dl passare enLro qualche anno al nuovo proLocollo. A quesLo punLo però blsogna
anallzzare le dlfflcolLa della Lranslzlone da un proLocollo all'alLro, lnfaLLl, vlsLa la dlmenslone e
l'eLerogenelLa dl lnLerneL, la Lranslzlone sara molLo lunga e qulndl l due proLocolll dovranno coeslsLere per
molLo Lempo.
La descrlzlone del proLocollo lÞv6 faLLa flnora ha messo ln evldenza ll faLLo che esso non può essere
conslderaLo una semplce evoluzlone dl lÞv4, bensl un nuovo proLocollo che ln llnea dl masslma non e ln
grado dl lnLeroperare con lÞv4. lnfaLLl le appllcazlonl progeLLaLe per lÞv4 non funzlonano su lÞv6 ed l nodl
dl reLe lÞv4 (Lermlnall o rouLer) non possono comunlcare con nodl dl reLe lÞv6, ln quanLo sono dlverse
molLe delle procedure dl comunlcazlone e sopraLLuLLo e compleLamenLe dlverso ll formaLo degll lndlrlzzl.
Sl sono sLudlaLe delle soluzlonl a quesLl probleml, ln modo che, ln aLLesa della dlffuslone LoLale dl lÞv6, l
nuovl apparaLl lÞv6 possano lnLerlavorare con gll apparaLl lÞv4 eslsLenLl e sla posslblle la comunlcazlone Lra
reLl lÞv6 lsolaLe nella lnLerneL lÞv4.

Ma dove blsognera andare a camblare con l'lnLroduzlone dl lÞv6?

! kete e re|at|v| apparat| d| rete: e una Lranzlone gla pronLa, essendo che LuLLl gll apparaLl dl reLe ln
produzlone oggl come oggl sono ln grado dl uLlllzzare sla la v4 che la v6 dell'lÞ.
! nost: LuLLl l magglorl slsLeml operaLlvl ormal supporLano l'lÞv6.
! App||caz|on|: sl vorrebbe che un unlco sockeL fosse ln grado dl raccogllere sla l daLagram
provenlenLl dalla v4 che quelll provenlenLl dalla v6.



M|graz|one deg|| apparat| d| rete
ln Leorla la mlgrazlone degll apparaLl dl reLe dovrebbe avvenlre solo per quelll che LraLLano l llvelll dal Lerzo
ln su (essendo che ll proLocollo lÞ e locallzzaLo a llvello 3, LlvLLLC 8L1L).
ÞurLroppo però quesLo non e del LuLLo vero. Þrendlamo ad esemplo gll swlLch delle reLl locall (che sono
apparaLl dl llvello 2) ll cul complLo e quello dl fare lnsLradamenLo: uno swlLch rlceve frame dlle sue porLe ln
lngresso, legge l'lndlrlzzo MAC del desLlnaLarlo e va a guardare ln una sua Labella dl lnsLradamenLo
aLLraverso quale delle sue porLe ln usclLa l frame vanno rlLrasmessl.
verrebbe qulndl da pensare che ll vanLagglo alla v6 non comporLa probleml con Lall apparaLl essendo che
uno swlLch va a guardare solo l'lndlrlzzo MAC del desLlnaLarlo e non cosa ce scrlLLo nell'lnLesLazlone MAC
rlguardo ll llvello superlore.
ÞurLroppo però non e sempre cosl..cl sono degll swlLch che, per LenLare dl oLLlmlzzare ll mulLlcasL, vanno a
vedere anche gll lndlrlzzl del llvello 3 conLenuLl nelle lnLesLazlonl lCMÞ (proLocollo per la gesLlone del
gruppl mulLlcasL che nella v6 e sLaLo lnLegraLo nelle funzlonallLa dell'lCMÞ).
La soluzlone a quesLo problema, olLre a quella che poLrebbe essere l'adeguamenLo della funzlonallLa degll
swlLch per supporLare l'lÞv6, e la seguenLe


ll LlvLLLC 8L1L vlene sdopplaLo, con l due pezzl che non sl lnfluenzano a vlcenda essendo LoLalmenLe
lncompaLlblll (approcclo "shlps ln Lhe nlghL"). Þroblema dl Lale soluzlone e che comporLa la dupllcazlone dl
ÞroLocolll dl rouLlng, Labelle dl lnsLradamenLo, access llsLs.. polche ognuna delle due verslonl necesslLa dl
una proprla verslone ad hoc. Þrlma conseguenza e che ad esemplo raddoppla ll numero dl messaggl
scamblaLl per manLenere agglornaLe le Labelle dl rouLlng, ll che sl Lraduce ln un onere magglore dal punLo
dl vlsLa compuLazlonale.

M|graz|one deg|| host
Þer quanLo rlguarda la mlgrazlone degll hosL l'approcclo plu geLLonaLo e quello DUAL S1ACk, che prevede a
bordo dell'hosL la presenza sla dello sLack lÞv4 che dl quello lÞv6. ln Lal modo vlene fornlLo un supporLo
compleLo per enLrambl l proLocolll. l llmlLl dl Lale soluzlone sLanno nel faLLo che se accanLo alla v6 vlene
ancora usaLa anche la v4, dl faLLo ll consumo degll lndlrlzzl non cala e che l'uLlllzzo dl enLrambl l proLoolll
causa un aumenLo della complesslLa della reLe.
LslsLono due verslone dell'approcclo uual SLack:
! DUAL S1ACk
! DUAL LA¥Lk
nella verslone Dua| Stack e prevlsLo l'uLlllzzo del dopplo sLack lÞ, nella plla proLocollare. CuesLo dopplo
sLack permeLLe dl poLer lnLerpreLare enLrambe le verslonl del proLocollo, con l due sLack che lgnorano
ognuno la presenza dell'alLro. La rlconglunzlone Lra avvlene a llvello appllcazlone, ovvero l'appllcazlone e
cosclenLe che soLLo dl se ha due dlfferenLl sLack.
nella verslone Dua| Layer lnvece le due verslonl dell'lÞ sono cosclenLl dl essere ln convlvenza, LanLo che
eslsLe un'lnLerfaccla che permeLLe ll passagglo del daLagram della v4 alla v6 e vlceversa.
Ma come vengono usaLl?
nella verslone Dua| Stack l daLagram, a seconda della verslone cul apparLengono, percorrono uno o l'alLro
sLack, arrlvando qulndl all'appllcazlone aLLraverso due lnLerfaccle dlfferenLl. L'appllcazlone dl sonseguenza
sara perennemenLe ln ascolLo su enLrambl l sockeL.
nella verslone Dua| Layer lnvece l daLagram v6 percorrono obbllgaLorlamenLe lo sLack dal laLo lÞv6, menLre
quelll della v4 possono sla percorrere lo sLack lÞv4 che essere lncapsulaLl ln un daLagram v6 e percorrere lo
sLack v6 afflorando all'appllcazlone aLLraverso l'lnLerfaccla lÞv6. ln Lal caso l'appllcazlone non rlesce a
dlsLlnguere l daLagram v6 da quelll che ln orlglne erano v4. Þer l'appllcazlone e convenlenLe quesLa
seconda lpoLesl, ln quanLo comporLerebbe che essa deve rlmanere ln ascolLo su un'unlca lnLerfaccla
(sockeL) lnvece che su due.



Anche ln Lrasmlsslone non cambla nulla per l'appllcazlone Lra daLagram v6 e daLagram che ln prlnclplo
erano v4. nel caso del segmenLl uuÞ ad esemplo, dal sockeL ml vlene l'lndlrlzzo mlLLenLe e la porLa
mlLLenLe, dl modo che nel momenLo ln cul devo rlspondere le prendo e le uLlllzzo come lndlrlzzo
desLlnaLarlo e porLa desLlnaLarlo della rlsposLa. ArrlvaLo all'lÞv6, l'lndlrlzzo lÞv6 dl Llpo lÞv4 MAÞÞLu vlene
rlconoscluLo essere Lale e vlene spedlLo all'lÞv4. Al conflne Lra la v6 e la v4 vlene camblaLa l'lnLesLazlone del
daLagram dalla v6 alla v4, l'lndlrlzzo lÞv4 del desLlnaLarlo vlene esLraLLo dal 32 blL bassl e vlene lmmesso
sulla reLe un daLagram perfeLLamenLe v4 come lo era ln orlglne quello cul sl sLa dando rlsposLa.
ua quanLo deLLo se ne deduce che la verslone uual Layer e quella che Lra le due e plu uLlllzzaLa, polche
sempllflca noLevolmenLe la vlLa a chl scrlve le appllcazlonl.


M|graz|one de||a rete
ll 1UNNLLING e la soluzlone magglormenLe uLlllzzaLa per far comunlcare fra dl loro nodl o reLl lÞv6
separaLe da reLl lÞv4.
Supponlamo dl voler lnvlare un daLagram da una reLe lÞv6 ad un'alLra e che Lra le due reLl lÞv6 vl sla una
reLe lÞv4. ll daLagram vlene lnsLradaLo verso un rouLer che sl Lrova al conflne Lra la prlma reLe lÞv6 e la reLe
lÞv4 e che reallzza la funzlone dl 1LÞ (1unnel Lnd ÞolnL), ovvero funge da esLremlLa per ll Lunnel. ll rouLer
prende ll paccheLLo lÞv6 e gll agglunge un'lnLesLazlone della v4, ovvero prende la busLa e la lmbusLa ln
un'alLra plu esLerna. ll daLagram cosl oLLenuLo avra

! campo ÞroLocol 1ype=41 lndlcanLe "lÞv6 ln lÞv4", ovvero che ll carlco uLlle del paccheLLo lÞv4 alLro
non e che un daLagram lÞv6.
! come lndlrlzzo desLlnaLarlo l'lndlrlzzo lÞv4 dl un'alLro rouLer che funge da 1LÞ all'alLro capo del
Lunnel.
ll daLagram vlene a quesLo punLo lnsLradaLo nella reLe lÞv4 flno al 1LÞ dl usclLa ln base alle lnformazlonl
conLenuLe nell'lnLesLazlone v4. ArrlvaLo a desLlnazlone, ll secondo 1LÞ provvedera a Logllere l'lnLesLazlone
lÞv4 e a rlLrasmeLLere ll daLagram aLLraverso un'lnLerfaccla che da verso la reLe v6.



l posslblll scenarl che possono presenLarsl sono l seguenLl:
! uue macchlne che sl affacclano su una reLe v4 vogllono uLlllzzare l'lÞv6. Þer farlo vlene creaLo un
Lunnel che parLe dalla macchlna mlLLenLe e arrlva a quella desLlnaLarlo, ovvero ln quesLo caso l 1LÞ
sono all'lnLerno delle due macchlne.

! ll desLlnaLarlo e all'lnLerno della reLe v6. ll Lunnel verra aperLo Lra ll mlLLenLe e ll rouLer che funge
da 1unnel Lnd ÞolnL. nella seconda lmmaglne sono sempllcemenLe scamblaLl mlLLenLe e
desLlnaLarlo qulndl la slLuazlone non cambla.




! ll Lunnel vlene aperLo Lra l due rouLer che fungono da 1LÞ al flne dl aLLraversare la reLe v4


ua soLLollneare e l'eslsLenza dl un falso problema rlguardanLe ll recaplLo dl paccheLLl lÞv4 ln reLl dl Llpo lÞv6
only. 1ale problema e però dl faLLo solo Leorlco polche, essendo l'lÞv6 esLremamenLe poco dlffuso rlspeLLo
all'lÞv4, la posslblllLa che possa presenLarsl una eslgenza del genere e davvero bassa.
Con rlferlmenLo allo scenarlo seguenLe, sl e deLLo che ll 1LÞ parLe dall'lnLerno della macchlna mlLLenLe.
1ale soluzlone e reallzzaLa aLLraverso la deflnlzlone dl una pseudo-lnLerfaccla dl reLe deLLa "AuLomaLlc
1unnellng Þseudo-lnLerface" (ln Wlndows)




Ind|r|zz| IÞv4-Compat|b|e
Þer lndlrlzzare ll desLlnaLarlo flnale sl usano degll lndlrlzzl deLLl IÞv4-CCMÞA1I8LL, caraLLerlzzaLl da
! 32 blL bassl che sono l'effeLLlvo lndlrlzzo lÞv4
! 96 blL alLl LuLLl a 0
dl conseguenza nella Labella dl lnsLradamenLo della macchlna blsogna deflnlre un preflsso ::/96 che lndlchl
che LuLLl l daLagram avenLl un lndlrlzzo lÞv6 che lnlzla con novanLasel zerl devono essere spedlLl aLLraverso
l'AuLomaLlc 1unnellng Þseudo-lnLerface.
CuanLo deLLo e speclflcaLo, ad esemplo ln amblenLe Wlndows, nel modo seguenLe

C:\> netshinterface ipv6 add route ::/96 "Automatic TunnelingPseudo-Interface"
C:\> ipv6 rt
::/96 -> 2 pref1if+0=1 life infinite, publish, no aging (manual)
::/0 -> 3/2002:c058:6301::c058:6301 pref1if+2147483647=2147483648 life 2h/30m,
publish, no aging (manual)
::/0 -> 3/2002:836b:213c:1:e0:8f08:f020:8 pref1if+1180=1181 life 2h/30m, publish,
no aging (manual)2002
::/16 -> 3 pref1if+1000=1001 life 2h/30m, publish, no aging (manual)
C:\> ping ::130.192.225.135

dove con la prlma lsLruzlone vlene deflnlLa una nuova rouLe e una nuova lnLerfaccla loglca, speclflcando
che LuLLl gll lndlrlzzl che lnlzlano per ::/96 devono essere lnsLradaLl aLLraverso Lale lnLerfaccla. Con la
seconda lsLruzlone vlene lnvece vlsuallzzaLa la Labella dl rouLlng lnLerna alla macchlna. uopo dl che vlene
lnvocaLo ll comando Þlng, che provoca l'lnvlo dl quaLLro Lcho 8equesL


per le quall sl noLa la presenza, come cl sl aspeLLava, dl due lnLesLazlonl lÞ. La plu esLerna delle due, quella
relaLlva alla v4, conLlene un'lnLesLazlone lÞv6, che a sua volLa conLlene un'lnLesLazlone lCMÞv6. L'lndlrlzzo
desLlnaLarlo all'lnLerno dell'lnLesLazlone lÞv4 e sLaLo rlcavaLo da quallo lÞv4-CompaLlble ::130.192.223.133
speclflcaLo nell'lnvocazlone del comando ÞlnC.
Þer quanLo rlguarda lnvece ll caso ln cul ll mlLLenLe apre ll Lunnel con un apparaLo che non e ll desLlnaLarlo
flnale

l comandl per la conflgurazlone del Lunnel ln amblenLe Wlndows sono l seguenLl

C:\> netshinterface ipv6 add route ::/96 "Automatic TunnelingPseudo-Interface"
::163.162.170.177
C:\> ipv6 rt
::/96 -> 2/::163.162.170.177 pref1if+0=1 life infinite (manual)
::/0 -> 3/2002:c058:6301::c058:6301 pref1if+2147483647=2147483648 life 2h/30m,
publish, no aging (manual)
::/0 -> 3/2002:836b:213c:1:e0:8f08:f020:8 pref1if+1180=1181 life 2h/30m, publish,
no aging (manual)2002
::/16 -> 3 pref1if+1000=1001 life 2h/30m, publish, no aging (manual)
C:\> ping ::130.192.225.135


dove sl noLa come appunLo nella prlma lsLruzlone vlene lndlcaLo l'lndlrlzzo lÞv6 del 1LÞ verso ll quale deve
essere aperLo ll Lunnel, ovvero ::163.162.170.177.

6over4
AlLra Lecnlca per reallzzare la convlvenza Lra le due verslonl del proLocollo lÞ e ll 6over4. 1ale Lecnlca
sosLanzlalmenLe cerca dl reallzzare una vlrLual LLherneL, ovvero una reLe locale vlrLuale. ll 6over4 sl basa
sul mulLlcasL e rlchlede la creazlone dl un'lnLerfaccla loglca dl Llpo 6over4. ll problema dl una Lale reLe
locale vlrLuale e che, menLre nelle reLl locall vere e proprle e posslblle usare del meccanlsml dl Lrasmlsslone
broadcasL o mulLlcasL ln vlrLu dell'abbondanza dl banda, lo sLesso non avvlene nelle reLl a llvello geograflco.
lnolLre nelle reLl lÞv4, anche se sono deflnlLl degll lndlrlzzl dl Llpo mulLlcasL e l rouLer della reLe sono ln
grado dl LraLLare Lale Llpologla dl lndlrlzzl, ln realLa vlene usaLo solo al llvello dl AuLonomous SlsLem e mal a
llvello geograflco. Þroprlo ln vlrLu dl Lale lndlsponlblllLa dl servlzl mulLlcasL ovunque nella reLe lÞv4, la
Lecnlca 6over4 non e molLo usaLa.

6to4
L' un'ulLerlore Lecnlca che prevede dl parLlre da un lndlrlzzo lÞv4 e da quesLo rlcavare un corrlspondenLe
lndlrlzzo lÞv6. Ma ln che modo? L'lndlrlzzo lÞv4 vlene dlvlso nel quaLLro byLe che lo compongono, e ll
valore declmale dl ognl byLe vlene LrasformaLo nell'equlvalenLe esadeclmale (polche gll lndlrlzzl lÞv6 sono
espressl ln formaLo esadeclmale). l quaLLro gruppl dl due clfre esadeclmall oLLenuLl andranno a cosLlLulre,
nell'lndlrlzzo lÞv6, ll gruppo da LrenLadue blL che segue un preflsso da sedlcl blL . 1ale preflsso lndlca che
l'lndlrlzzo e dl Llpo 6Lo4, ed ha valore flsso a 2002. l prlml 48 blL cosl composLl cosLlLulscono ll preflsso
globale dell'lndlrlzzo lÞv6 rlcavaLo. l resLanLl 80 blL sono cosLlLulLl da 16 blL dl ldenLlflcaLlvo della soLLoreLe
e 64 blL dl ldenLlflcaLlvo dell'lnLerfaccla dl reLe.



nel caso che ll Lunnel parLa dalla macchlna del mlLLenLe, nel campo v4Auu8 sara lnserlLo dlreLLamenLe
l'lndlrlzzo del desLlnaLarlo del daLagram. Ma non sempre e cosl, polche ad esemplo poLrebbe venlre a
presenLarsl la seguenLe slLuazlone



dove le due reLl ln basso sono reLl che uLlllzzano naLlvamenLe l'lÞv6 e la reLe lÞv4 ln alLo funge da
collegamenLo Lra Lall due "lsole". Al conflne sono locallzzaLl degll apparaLl (rouLer che fungono da 1LÞ)
blfronLl, nel senso che dal laLo lnLerno hanno lnLerfacce che uLlllzzano l'lÞv6, menLre lnvece dal laLo
esLerno lnLerfaccle che uLlllzzano l'lÞv4. Culndl ad esemplo assumlamo che 192.1.2.3 sla l'lndlrlzzo
dell'lnLerfaccla del 8ouLer1 che sl affaccla sulla reLe lÞv4. ln Lale slLuazlone
! se mlLLenLe x e desLlnaLarlo ? sono enLrambl all'lnLerno della 8eLeA per comunlcare vlene usaLo ll
proLocollo lÞv6.
! se ll mlLLenLe x sl Lrova nella 8eLeA e ll desLlnaLarlo ? nella 8eLe8 l'lndlrlzzo 192.1.2.3, che permeLLe
l'accesso alla 8eLeA, vlene uLlllzzaLo per creare un lndlrlzzo lÞv6 dl Llpo 6Lo4, ovvero ad esemplo la
macchlna x avra lndlrlzzo 2002:c001:0203:1::8/48. Allo sLesso modo l'lndlrlzzo 9.234.2.232 vlene
uLlllzzaLo per creare un lndlrlzzo dl Llpo 6Lo4 per le macchlne nella 8eLe8, ad esemplo ? avra lndllzzo
2002:09lL:02lC:3::C7/48. Se x deve spedlre un daLagram ad ? usa quesL'ulLlmo come lndlrlzzo
desLlnaLarlo. l rouLer all'lnLerno della 8eLeA guardando l 48 blL alLl dell'lndlrlzzo desLlnaLarlo
caplscono che esso e locallzzaLo al dl fuorl della soLLoreLe, dl modo che provvedono ad lnolLrare ll
daLagram verso ll rouLer dl conflne. ll rouLer dl conflne dovra qulndl aprlre un Lunnel..ma verso chl?
prende l 32 blL successlvl al preflsso 2002 dell'lndlrlzzo desLlnaLarlo e ll usa come lndlrlzzo lÞv4 per
l'lnLesLazlone esLerna v4 da porre al daLagram lÞv6 per permeLLerne l'lnsLradamenLo verso la 8eLe8
aLLraverso la reLe lÞv4. ll rouLer all'lngresso della 8eLe8 rlmuove l'lnLesLazlone esLerna lÞv4 facendo
rlafflorare l'lnLesLazlone lpv6. A quesLo punLo l rouLer lnLernl alla 8eLe8, guardando l 48 blL alLl
dell'lndlrlzzo del desLlnaLarlo, caplscono che blsogna esegulre un lnsLradamenLo lnLerno alla reLe
locale flno al deLlnaLarlo flnale.



ua noLare e che le due nuvole non necessarlamenLe devono essere delle reLl locall, ma poLrebbero
addlrlLLura colncldere anche solo con due macchlne che uLlllzzano l'lÞv6 naLlvamenLe.
un problema della Lecnlca 6Lo4 e la sua lncompaLlblllLa con ll nA1. lnfaLLl l'lndlrlzzo lÞv4 uLlllzzaLo come
desLlnaLarlo e che vlene lncasLraLo nel secondo e Lerzo gruppo da 16 blL dell'lndlrlzzo 6Lo4 deve essere un
lndlrlzzo lÞ pubbllco. ueLLo quesLo, come facclo ad lndlrlzzare con un lndlrlzzo pubbllco una macchlna che
sl Lrova dleLro a un nA1? non cl sl rlesce. lnolLre ce da Lener presenLe un ulLerlore problema, dovuLo al
faLLo che alcunl Llpl dl nA1 non manlpolano solo l'lndlrlzzo lÞ mlLLenLe/desLlnaLarlo, bensl anche ll numero
dl porLa 1CÞ/uuÞ. ln base all'approcclo fln qul descrlLLo ll nA1 rlceve un daLagram del Llpo seguenLe


leLLo l'lndlrlzzo lÞ mlLLenLe desLlnaLarlo all'lnLerno dell'lnLesLazlone lÞv4, andra a cercare nell'lnLesLazlone
sublLo successlva le lnformazlonl sul numero dl porLa. ul faLLo però l'lnLesLazlone che segue quella lÞv4 ln
quesLo caso non e 1CÞ/uuÞ, bensl un'lnLesLazlone lÞv6. 8lsulLaLo e che ll nA1 non rlesce a sapere ll
numero dl porLa, che per lul e un'lnformazlone fondamenLale polche le macchlne della reLe lnLerna che sl
Lrova dleLro ll nA1 sono ldenLlflcaLl appunLo aLLraverso un numero dl porLa.

ISA1AÞ
ulLerlore meccanlsmo e quello lSA1AÞ (lnLra-slLe AuLomaLlc 1unnel Addresslng ÞroLocol). un'alLro
problema del 6Lo4 sLava nel faLLo che e rlchlesLa una conneLLlvlLa naLlva lÞv6 all'lnLerno delle "nuvole" e
non vlene uLlllzzaLo ll 8ouLer AdverLlsemenL. CuesLo perche non c'e la necesslLa dl scoprlre quall reLl lÞv6
dl Llpo 6Lo4 cl sono ln un'alLra "nuvola" essendo che Lale lnformazlone e scrlLLa chlaramenLe nel secondo e
Lerzo gruppo dl 16 blL da slnlsLra dell'lndlrlzzo del desLlnaLarlo. Culndl l rouLer che sono Ll Llpo 6Lo4 e che
sono sul bordo della reLe non hanno la necesslLa dl lnvlare degll avvlsl agll alLrl rouLer 6Lo4 per comunlcarsl
la poslzlone delle varle soLLoreLl.
lSA1AÞ sl e appunLo concenLraLo su quesLo problema.. qulndl come sl fa a scoprlre dove sono l rouLer e
qulndl anche le alLre reLl dl Llpo lÞv6? CuesLl sono reglsLraLl all'lnLerno del unS, che vlene qulndl uLlllzzaLo
come una sorLa dl elenco Lelefonlco. Cvvero, per ldenLlflcare un rouLer, vlene rlchlesLo al unS un record dl
Llpo A per un nome _|satap.dom|n|o.com, che avra come rlsposLa l'lndlrlzzo lÞ del rouLer. ln Lal modo sl
caplsce quall sono gll alLrl rouLer lÞv6 ln clrcolazlone.
Come sono cosLrulLl gll lndlrlzzl lSA1AÞ? Cll ulLlml 32 blL sono l'lndlrlzzo lÞv4, alla cul slnlsLra vlene posLo un
preflsso sLandard per quesLo Llpo dl lndlrlzzamenLo

::0:SLIL:a.b.c.d /64



1LkLDC
1L8LuC LenLa dl rlsolvere ll problema con l nA1 reallzzando un lmbusLamenLo della v6 denLro l'uuÞ, cloe
lnvece dl fare ll 1unnellng a llvello 3 lo sl fa a llvello 4. ul conseguenza un daLagram ln un Lunnel 1eredo
vlene fuorl nel modo seguenLe



ln Lal modo ll nA1 dovrebbe rlusclre a leggere ll numero dl porLa polche Lrova l'lnLesLazlone uuÞ sublLo
dopo quella lÞv4. Sl usa ll condlzlonale perche, ad esemplo, nel caso ln cul dall'esLerno sl volesse lnlzlare
una comunlcazlone con l'lnLerno, ll numero dl porLa speclflcaLo nell'lnLesLazlone uuÞ dal mlLLenLe
poLrebbe non essere ancora sLaLo assegnaLo a nessuna macchlna della reLe lnLerna (essendo la prlma volLa
che sl comlncla la comunlcazlone). Þer ovvlare a Lale problema 1L8LuC prevede la presenza dl un 8elay
Server. una macchlna della reLe lnLerna che voglla uLlllzzare 1L8LuC per affacclarsl sull'lnLerneL pubbllco,
sapendo che c'e qualcuno che dall'esLerno poLrebbe volergll spedlre un daLagram, perlodlcamenLe lnvla al
Þ8LllSSC S1AnuA8u lnul8lZZC lÞv4
IÞv4 UDÞ IÞv6
8elay del messaggl dl Llpo uaLagram. 1all daLagram uscendo dal nA1 provocano ln quesL'ulLlmo, ln una
Labella lnLerna, l'assoclazlone Lra l'lndlrlzzo lÞ della macchlna mlLLenLe e una porLa uuÞ. 1ale assoclazlone
vlene perlodlcamenLe rlnfrescaLa. La medeslma lnformazlone vlene rlpresa anche dal 8elay Server, dl modo
che per avvlare una comunlcazlone dall'esLerno verso una macchlna della reLe lnLerna sl poLrebbe
procedere ln quesLo modo: sl lnvlano LuLLl l paccheLLl al 8elay Server, ll quale provvedera a camblare ll
numero dl porLa uuÞ desLlnaLarlo e a farll pol LranslLare aLLraverso ll nA1. A sua volLa la macchlna lnLerna,
volendo rlspondere al daLagram rlcevuLo, polche nel campo mlLLenLe dl quesL'ulLlmo Lrova l'lndlrlzzo del
Server, lnvla un daLagram al 8elay. CuesLo provvedera, sempre uLlllzzando la sua Labella dl assoclazlonl, ad
lnsLradarlo verso ll vero desLlnaLarlo sulla reLe pubbllca.
ua quanLo deLLo se ne deduce che, per un correLLo funzlonamenLo, ll 8elay Server deve essere
dlreLLamenLe collegaLo alla reLe pubbllca, non può Lrovarsl dleLro al nA1.



1unne| 8roker
ll problema e sempre quello dl aprlre un Lunnel con una macchlna per ragglungere un cerLo desLlnaLarlo.
1ale Lunnel può essere aperLo manualmenLe (come vlsLo precedenLemenLe), ma dl sollLo l'uLenLe normale
non ha molLa dlmesLlchezza con la conflgurazlone dl lnLerfacce loglche. La soluzlone e sLaLa cosLrulre un
slLo web da cul l'uLenLe può scarlcare degll scrlpL che lo aluLano nella conflgurazlone a seconda del
desLlnaLarlo che vorrebbe ragglungere.



Lserc|z|
IÞv6: |nd|r|zzamento e rout|ng



Lserc|z|o 1: State|ess conf|gurat|on
Sla daLa la conflgurazlone dl reLe ln flgura. Assumendo
che ll 8ouLer AdverLlsemenL sla ablllLaLo solamenLe sul
rouLer 81, lndlcare gll lndlrlzzl lÞv6 presenLl sull'
lnLerfaccla dell'hosL oLLenuLl aLLraverso ll meccanlsmo dl
sLaLeless conflguraLlon.




8lsposLe posslblll:
A) 2001:1:0:1:20b:3dff:fe4c:3a6b, 2001:1:0:7:20b:3dff:fe4c:3a6b, fe80::20b:3dff:fe4c:3a6b --> nC
8) 2001:1:0:1:20b:3dff:fe4c:3a6b, fe80:1::20b:3dff:fe4c:3a6b --> nC
C) 2001:1:0:7:20b:3dff:fe4c:3a6b, fe80::20b:3dff:fe4c:3a6b --> nC
u) 2001:1:0:1:20b:3dfe:ff4c:3a6b, fe80::20b:3dff:fe4c:3a6b --> nC
L) 2001:1:0:1:20b:3dff:fe4c:3a6b, fe80::20b:3dff:fe4c:3a6b --> Sl

lnnanzlLuLLo blsogna andare a caplre quanLl lndlrlzzl prendera l'lnLerfaccla dell'hosL: slcuramenLe un
lndlrlzzo llnk-local (essendo obbllgaLorlo), plu uno globale polche abblamo un rouLer 81 che fa ll 8ouLer
AdverLlsemenL. 1ale lndlrlzzo globale avra preflsso 2001:1:0:1::/64. ll rouLer 82 lnvece non fa ll 8ouLer
AdverLlsemenL, dl modo che l'hosL non rlusclra mal a sapere che eslsLe anche quesL'alLro preflsso
all'lnLerno delle reLe. ln base a Lall conslderazlonl
! posslamo gla scarLare la rlsposLa A, polche lndlca un lndlrlzzo con ll preflsso del 8ouLer 2 che dl
faLLo però l'hosL non rlusclra mal a conflgurare.
! la rlsposLa 8 propone ll glusLo numero dl lndlrlzzl per l'lnLerfaccla (due, uno globale e uno llnk-local).
ll preflsso dell'lndlrlzzo globale e correLLo. nell'lndlrlzzo llnk-local l 64 blL bassl sono glusLl (essendo
uguall a quelll dell'lndlrlzzo globale polche rlcavaLl medlanLe l'algorlLmo dl conf sLaLeless) ma ce un
1 dl Lroppo, quello dopo ll preflsso fe80. lnfaLLl ll formaLo sLandard degll lndlrlzzl dl Llpo llnk-local
prevede che dopo ll preflsso fe80 vl slano 34 blL LuLLl lmposLaLl a 0. ul conseguenza scarLlamo la
rlsposLa 8.
! anche la rlsposLa C propone un glusLo numero dl lndlrlzzl, ma l'lndlrlzzo globale e conflguraLo con ll
preflsso dl 82, che abblamo deLLo ln precedenza l'hosL non può conoscere essendo su Lale rouLer
dlsablllLaLo ll 8ouLer AdverLlsemenL. Culndl scarLlamo anche quesLa rlsposLa.
! la rlsposLa u propone ll glusLo numero dl lndlrlzzl per l'lnLerfaccla e ll preflsso dell'lndlrlzzo globale e
correLLo. nel 64 blL bassl però sono sLaLl scamblaLl l due byLe cenLrall, che sono fe:ff lnvece dl ff:fe
come prevlsLo dall'algorlLmo dl conflgurazlone sLaLeless. ul conseguenza Lale soluzlone va scarLaLa.
ul Lale errore cl sl poLeva anche accorgere noLando che l 64 blL bassl dell'lndlrlzzo globale sono
dlversl da quelll dell'lndlrlzzo llnk-local.
! lnflne anche la rlsposLa L propone un numero glusLo dl lndlrlzzl da assegnare all'lnLerfaccla
dell'hosL. ll preflsso dell'lndlrlzzo globale e correLLo e non sembrano essercl errorl nel 64 blL bassl. ll
preflsso dell'lndlrlzzo llnk-local e correLLo e l 64 blL bassl sono ldenLlcl a quelll dell'lndlrlzzo globale.
ul conseguenza Lale soluzlone può essere conslderaLa esaLLa.

Lserc|z|o 2: State|ess conf|gurat|on
Sla daLa la conflgurazlone dl reLe ln flgura.
Assumendo che ll 8ouLer 81 non abbla ablllLaLo
ll processo dl 8ouLer AdverLlsemenL, lndlcare:
1) gll lndlrlzzl conflguraLl sull' hosL P1
2) l paccheLLl generaLl da P1 al 8ooLsLrap
3) l paccheLLl generaLl da P1 qualora quesLo
cerchl dl effeLLuare un ÞlnC verso P2, supposLo
che ne conosLa l'lndlrlzzo lÞv6
4) l paccheLLl generaLl da P1 qualora voglla
lnlzlare una connesslone 1CÞ verso un hosL
lnLerneL


8lSÞCS1A 1: 81 non ha ablllLaLo ll 8ouLer AdverLlsemenL, dl modo che su P1 sara conflguraLo solLanLo un
lndlrlzzo dl Llpo llnk-local (perche obbllgaLorlo). ll rouLer non comunlca agll hosL della reLe locale ll preflsso
dl reLe globale qulndl P1 non rlesce a conflgurare un lndlrlzzo dl Llpo global.
8lSÞCS1A 2: al 8ooLsLrap l'hosL P1 andra a verlflcare che l'lndlrlzzo dl Llpo llk-local che ha conflguraLo
(lL80::0201:04ll:lL76:2A3C) sla unlco almeno all'lnLerno della proprla soLLoreLe. ll prlmo paccheLLo
generaLo sara un paccheLLo dl broadcasL lndlrlzzaLo a LuLLe le macchlne avenLl gll sLessl 24 blL bassl
nell'lndlrlzzo lÞ

ÞaccheLLo 1:
[LLh] 000104-762A3C => 3333ll-762A3C
[lÞv6] :: =>ll02::1:ll76:2A3C (Len64)
[lCMÞ6]nelghbor SollclLaLlon:who haslL80::0201:04ll:lL76:2A3C?

A Lale paccheLLo dl sollLo non seguono rlsposLe, dl modo che, scaLLaLo un LlmeouL, l'hosL lnvla un Croup
Membershlp 8eporL per comunlcare a LuLLl gll apparLenenLl ad un cerLo gruppo mulLlcasL l'lndlrlzzo llnk
local che ha conflguraLo per la proprla lnLerfaccla
ÞaccheLLo 2:
[LLh] 000104-762A3C => 3333ll-762A3C
[lÞv6] lL80::0201:04ll:lL76:2A3C =>ll02::1:ll76:2A3C (Len72)
[lCMÞ6]Croup Membershlp 8eporL(ll02::1:ll76:2A3C)

lnflne l'hosL prova a vedere se ce anche un rouLer che possa fornlrgll un preflsso per conflgurare un
lndlrlzzo dl Llpo globale. A Lal scopo lnvla un messagglo dl 8ouLer SolllclLaLlon

ÞaccheLLo 3:
[LLh] 000104-762A3C => 3333ll-000002
[lÞv6] lL80::0201:04ll:lL76:2A3C =>ll02::2 (Len36)
[lCMÞ6]8ouLer sollclLaLlon

Lale messagglo non rlceve rlsposLa polche l'unlco rouLer presenLe non ha ll 8ouLer AdverLlsemenL ablllLaLo.
8lSÞCS1A 3: Anche nel caso del ÞlnC dl P2 ll prlmo paccheLLo generaro sara un paccheLLo dl nelghbor
SolllclLaLlon, con l'unlca dlfferenza che, rlspeLLo al caso precedenLe, sLavolLa l'lndlrlzzo lÞ mlLLenLe e
speclflcaLo essendo gla sLaLo verlflcaLo ed acqulslLo

ÞaccheLLo 1:
[LLh] 000104-762A3C => 3333ll-788u28
[lÞv6] lL80::0201:04ll:lL76:2A3C =>ll02::1:ll78:8u28 (Len72)
[lCMÞ6]nelghbor SollclLaLlon:who haslL80::0201:04ll:lL78:8u28?

A quesLo messagglo c'e rlsposLa, un paccheLLo dl nelghbor AdverLlsemenL col quale P2 dlce "Lccoml..lo
sono quesLo lÞ e quesLo e ll mlo lndlrlzzo MAC se vuol comunlcare.."

ÞaccheLLo 2:
[LLh] 000104-788u28 => 000104-762A3C
[lÞv6] lL80::0201:04ll:lL78:8u28 => lL80::0201:04ll:lL76:2A3C(Len72)
[lCMÞ6]nelghbor AdverLlsemenL: lamlL80::0201:04ll:lL78:8u28 aL 000104-788u28

dopo dl che segue una serle dl Lcho 8equesL ed Lcho 8eply

ÞaccheLLo 3:
[LLh] 000104-762A3C => 000104-788u28
[lÞv6] lL80::0201:04ll:lL76:2A3C => lL80::0201:04ll:lL78:8u28(Len72)
[lCMÞ6]Lcho 8equesL

ÞaccheLLo 4:
[LLh] 000104-788u28 => 000104-762A3C
[lÞv6] lL80::0201:04ll:lL78:8u28 => lL80::0201:04ll:lL76:2A3C(Len72)
[lCMÞ6]Lcho 8eply

8lSÞCS1A 4: non verra generaLo alcun paccheLLo perche per aprlre una connesslone verso un hosL
locallzzaLo nell'lnLerneL pubbllco P1 necesslLa dl un lndlrlzzo globale. ulsponendo solo dl un lndlrlzzo dl
Llpo-llnk local P1 e vlncolaLo a poLer comunlcare solo con le alLre macchlne apparLenenLl alla sua sLessa
reLe locale, polche nella proprla Labelllna dl lnsLradamenLo non ha lndlcaLo nessun rouLer a cul passare l
paccheLLl nel caso voglla lnlzlare una comunlcazlone con l'esLerno. ln parLlcolare l'lndlrlzzo llnk-local dl P1
sara lL80::0201:04ll:lL76:2A3C.


Lserc|z|o 3: Þ|ng
Sla daLa la conflgurazlone dl reLe ln flgura.
Assumendo che ll 8ouLer 81 non abbla ablllLaLo ll
processo dl 8ouLer AdverLlsemenL, lndlcare ll
flusso del paccheLLl quando, su P1, sl dlglLa ll
comando ºÞlnC 2001:1:0:2::2".
Sl assuma che la nelghbor Cache non conLenga
nessuna enLry.





ln quesLo caso 81 annuncla due preflssl avendo due lndlrlzzl lÞ assegnaLl alla sLessa lnLerfaccla. ll
desLlnaLarlo P2 ha nel 64 blL alLl dell'lndlrlzzo lÞ un preflsso dlverso rlspeLLo a quello dl P1, dl modo che
non rlsulLera far parLe della sLessa soLLoreLe. ul conseguenza, ln base alla modallLa dl lndlrlzzamenLo lÞv6,
per avvlare una connesslone con P2 ll mlLLenLe dovra avvalersl del servlgl dl 81 (qulndl P1 lnvlera ad 81 ll
messagglo dl Lcho 8equesL). P1 conosce l'lndlrlzzo lÞv6 dl 81, ma non ll suo MAC address (necessarlo per
sLablllre una comunlcazlone a llvello della reLe locale). Lssendo dlsablllLaLo su 81 ll 8ouLer AdverLlsemenL
(moLlvo per cul sarebbe lnuLlle provare a fare un 8ouLer SolllclLaLlon perche LanLo non sl oLLerrebbe
rlsposLa), ll prlmo prlmo paccheLLo lnvlaLo da P1 sara un paccheLLo dl nelghbor SolllclLaLlon alla rlcerca dl
81
ÞaccheLLo 1 (lCMÞv6nelghbor SollclLaLlonda P1 ad 81):
[LLh] 000104-762A3C => 3333ll-000001
[lÞv6] 2001:1:0:1::2 =>ll02::1:ll00:1 (Len72)
[lCMÞ6]nelghbor SollclLaLlon:who has2001:1:0:1::1 ?
81 rlsponde con un messagglo dl nelghbor AdverLlsemenL conLenenLe ll suo lndlrlzzo MAC
ÞaccheLLo 2 (lCMÞv6nelghbor AdverLlsemenLda 81 ad P1):
[LLh] 00AA88-CCuuLL => 000104-762A3C
[lÞv6] 2001:1:0:1::1 => 2001:1:0:1::2 (Len72)
[lCMÞ6]nelghbor AdverLlsemenL: lam2001:1:0:1::1 aL 00AA88-CCuuLL
A quesLo punLo P1 ha LuLLl l parameLrl necessarl per poLer comunlcare con 81 e procede qulndl a lnvlare ll
messagglo dl Lcho 8equesL
ÞaccheLLo 3 (lCMÞv6Lcho 8equesLverso 81):
[LLh] 000104-762A3C => 00AA88-CCuuLL
[lÞv6] 2001:1:0:1::2 => 2001:1:0:2::2 (Len72)
[lCMÞ6]Lcho 8equesL
nel quale sl può noLare come a llvello lÞ ll desLlnaLarlo lndlcaLo sla P2, menLre lnvece a llvello MAC e 81. ll
rouLer sl accorge che ll desLlnaLarlo e ragglunglblle aLLraverso la medeslma lnLerfaccla dalla quale ha
rlcevuLo ll paccheLLo, ma dl faLLo non conosce l'lndlrlzzo MAC dl P2 (ln vlrLu dell'lpoLesl che le nelghbor
Cache sono vuoLe) per poLer sLablllre una connesslone. lnvla qulndl un messagglo dl nelghbor SolllclLaLlon
con desLlnaLarlo P2 e rlceve da quesL'ulLlmo un messagglo dl nelghbor AdverLlsemenL come rlsposLa
ÞaccheLLo 4 (lCMÞv6nelghbor SollclLaLlonda 81 ad P2):
[LLh] 00AA88-CCuuLL => 3333ll-000002
[lÞv6] 2001:1:0:2::1 =>ll02::1:ll00:2 (Len72)
[lCMÞ6]nelghbor SollclLaLlon:who has2001:1:0:2::2 ?

ÞaccheLLo 3 (lCMÞv6nelghbor AdverLlsemenLda P2 ad 81):
[LLh] 000104-788u28=> 00AA88-CCuuLL
[lÞv6] 2001:1:0:2::2 => 2001:1:0:2::1 (Len72)
[lCMÞ6]nelghbor AdverLlsemenL: lam2001:1:0:2::2 aL 000104-788u28
a quesLo punLo qulndl 81 passa ad P2 l'Lcho 8equesL lnvlaLa da P1. P2 rlspondera con un messagglo dl
Lcho 8eply per la cul spedlzlone, polche P1 e vlsLo come non apparLenenLe alla reLe locale, sl avvarra del
servlgl del defaulL gaLeway 81
ÞaccheLLo 6 (lCMÞv6Lcho 8equesLda 81 ad P2):
[LLh] 00AA88-CCuuLL => 000104-788u28
[lÞv6] 2001:1:0:1::2 => 2001:1:0:2::2 (Len72)
[lCMÞ6]Lcho 8equesL

ÞaccheLLo 7: (lCMÞv6Lcho 8eplyda P2 ad 81):
[LLh] 000104-788u28 => 00AA88-CCuuLL
[lÞv6] 2001:1:0:2::2 => 2001:1:0:1::2 (Len72)
[lCMÞ6]Lcho 8eply

81 provvedera a passare ad P1 l'Lcho 8eply lnvlaLo da P2. P1 lnvlera qulndl un nuovo messagglo dl Lcho
8equesL ad 81 con desLlnaLarlo P2, polche dl sollLo l'lnvocazlone del comando ÞlnC comporLa l'lnvlo dl 4
messaggl dl Lcho 8equesL. A dlfferenza del prlmo lnvlo però sLavolLa non cl sara blsogno dl andare a
cercare l'lndlrlzzo MAC dl 81 polche Lale lndlrlzzo e salvaLo nella nelghbor Cache dl P1.

8lassumendo schemaLlcamenLe la sequenza dl operazlonl rlsulLa


Lserc|z|o 4
Sla daLa la caLLura del ÞlnC fra due hosLrl porLaLa dl segulLo. lndlvlduare ll moLlvo della mancaLa rlsposLa al
paccheLLo lCMÞv6 dl Lcho 8equesL.

La domanda e: dov' e che sl blocca ll meccanlsmo? ll prlmo messagglo e un nelghbor SolllclLaLlon alla
rlcerca dell' lndlrlzzo MAC della macchlna avenLe lndlrlzzo lÞv6 2001:1A60:1:1::3:1. ll secondo messagglo e
un messagglo dl nelghbor AdverLlsemenL che 2001:1A60:1:1::3:1 rlLorna a 2001:1A60:1:1::3:2, mlLLenLe
della SolllclLaLlon, conLenenLe l'lndlrlzzo MAC cercaLo. ll Lerzo paccheLLo e un messagglo dl Lcho 8equesL
lnvlaLo da 2001:1A60:1:1::3:2. 1ale messagglo ha come desLlnaLarlo a llvello lÞ una Lerza macchlna
2001:1A60:1:2::16:2, menLre a llvello MAC ll desLlnaLarlo e la macchlna 2001:1A60:1:1::3:1. Anallzzando l
preflssl degll lndlrlzzl lÞ sl noLa che 2001:1A60:1:1::3:2 e 2001:1A60:1:2::16:2 non sono nella sLessa
soLLoreLe, dl modo che sl può dedurre che 2001:1A60:1:1::3:1 alLro non e che un rouLer medlanLe ll quale
2001:1A60:1:1::3:2 sLa cercando dl lnvlare ll suo messagglo dl Lcho 8equesL al dl fuorl della proprla
soLLoreLe. ueLLo quesLo, ll quarLo e qulnLo paccheLLo dl nelghbor SolllclLaLlon e relaLlvo AdverLlsemenL
racconLano del rouLer che, dovendo consegnare a desLlnazlone ll messagglo dl Lcho 8equesL affldaLogll,
cerca dl venlre a conoscenza dell'lndlrlzzo MAC del desLlnaLarlo, ovvero quello assoclaLo all'lndlrlzzo lÞ
2001:1A60:1:2::16:2. una volLa venuLo a conoscenza dl Lale lndlrlzzo MAC, ll sesLo paccheLLo e la consegna
a desLlnazlone da parLe del rouLer del messagglo dl Lcho 8equesL lnvlaLo da 2001:1A60:1:1::3:2 a
2001:1A60:1:2::16:2. Cl sl aspeLLa che a quesLo punLo ll desLlnaLarlo flnale rlsponda. Col seLLlmo paccheLLo
2001:1A60:1:2::16:2 cerca però l'lndlrlzzo MAC dl una quarLa macchlna 2001:1A60:1:2::30:1, ll che sLa a
slgnlflcare che ll percorso dl rlLorno non e uguale a quello dl andaLa, l persorsl non sono slmmeLrlcl (per ll
rlLorno vlene uLlllzzaLa una dlversa lnLerfaccla dello sLesso rouLer usaLo dal mlLLenLe oppure proprlo
un'alLro rouLer). ll paccheLLo successlvo e uguale, un'alLra nelghbor SollclLaLlon con sLesso mlLLenLe e
sLesso desLlnaLarlo. CuesLo perche slcuramenLe e scaduLo ll LlmeouL assoclaLo alla prlma nelghbor
SollclLaLlon e l'hosL ha rlprovaLo a mandarla. Morale della favola posslamo dedurre che e qul che sl lnceppa
ll meccanlsmo. ll desLlnaLarlo dell' Lcho 8equesL non rlesce a rlspondere per l'lmposslblllLa dl aprlre una
connesslone con la quarLa macchlna aLLraverso la quale e lmposLaLo ll cammlno dl rlLorno (la macchlna
2001:1A60:1:2::16:2 ha 2001:1A60:1:2::30:1 lmposLaLo come defaulL gaLeway).
L' posslblle rappresenLare schemaLlcamenLe quanLo deLLo come segue




Lserc|z|o S: p|ano d| |nd|r|zzamento
8eallzzare un plano dl lndlrlzzamenLo lÞv6 per la reLe ln flgura. lndlcare lnolLre le rouLe sLaLlche da
conflgurare sulrouLer afflnchela reLe sla funzlonanLe.


Abblamo 3 reLl lÞ Lra le quall dlsLrlbulre l'lndlrlzzamenLo
! una con 330 hosL + 1 lnLerfaccla dl un rouLer
! una con 2 lnLerfaccle dl rouLer
! una con 120 hosL + 1 lnLerfaccla dl rouLer
non essendo la reLe connessa ad lnLerneL, esufflclenLe gesLlre ll LuLLo con lndlrlzzl slLe-local. Þer
faclllLarel'auLoconflgurazlone, sl possono uLlllzzare dl preferenza reLl /64, anche se quesLo porLa ad un
noLevole spreco dl lndlrlzzl (lnpaLLlcolaresulllnkpunLo-punLo).
ll plano lndlrlzzamenLo può essere espllclLaLo schemaLlcamenLe come segue




Lserc|z|o 6: p|ano d| |nd|r|zzamento
8eallzzare un plano dl lndlrlzzamenLolÞv6 per la reLe ln flgura e lndlcare su quall lnLerfacce ha senso
ablllLare ll processo dl8ouLer AdverLlsemenL.


ln quesLo caso abblamo a che fare con la reLe dl un'unlca organlzzazlone che e sLaLa suddlvlsa ln plu
soLLoreLl. C'e un rouLer che collega ll LuLLo verso lnLerneL e 3 edlflcl ognuno con un rouLer dl lngresso,
ognuno del quall collegaLo con 3 rouLer poslzlonaLl al varl planl dell'edlflclo. ll rouLer dl plano da accesso
alla vera e proprla reLe locale.
ln quesLo caso e posslblle persegulre due dlverse sLraLegle per reallzzare ll plano dl lndlrlzzamenLo,
conslderando che ad esemplo ll provlder abbla fornlLo all'organlzzazlone un preflsso da 48 blL quale
2001:760:400::/48
! vlsLa la llmlLaLa dlmenslone della reLe, e posslblle assegnare gll lndlrlzzl anche ln manlera non
gerarchlca, lasclando al 8ouLer lnLerno ll complLo dl propagare la ragglunglblllLa degll lndlrlzzl dl
reLe.


! ln alLernaLlva, eposslblle assegnare gll lndlrlzzl gerarchlcamenLe. Þer quanLo rlguarda ll processo dl
8ouLer AdverLlsemenL, va ablllLaLo solamenLe sulle lnLerfacce lnferlorl del rouLer dl ulLlmo llvello.


LL2ICNI N. 9,10,11,12,13,14

VÞN
V|rtua| Þr|vate Network

una posslblle deflnlzlone dl vÞn e la seguenLe: "ConneLLlvlLa dell'uLenLe che vlene messa ln opera su una
lnfrasLruLLura condlvlsa ln manlera Lale che possano essere appllcaLe delle pollLlche come se fosse una reLe
prlvaLa".
Ma cos'e una reLe prlvaLa? Þer 8eLe prlvaLa sollLamenLe sl suole lnLendere una reLe ln cul l'lnfrasLruLLura e
al servlzlo dl una sola organlzzazlone. Þer esemplo la seguenLe



ln cul ad una reLe locale (a slnlsLra) sono sLaLe collegaLe alLre reLl, slLl e worksLaLlon remoLe apparLenenLl
alla medeslma organlzzazlone medlanLe collegamenLl dl Llpo ÞunLo a ÞunLo (ÞÞÞ). lare una cosa del genere
oggl come oggl rlchledere dl sLendere un cordone dl flbra oLLlca Lra l due slLl, cosa che consLerebbe
davvero molLo (Lempl dl reallzzazlone a parLe). una soluzlone plu lnLelllgenLe (ed economlca!) e lnvece
quella dl cosLrulre Lall canall con delle Lecnlche parLlcolarl che servono ad asslcurare ll comporLamenLo
come se fosse un canale punLo a punLo dedlcaLo, ma uLlllzzando l'lnfrasLruLLura dl reLe pubbllca, qulndl
condlvlsa. 1ale soluzlone, che dl faLLo sl epllclLa col possesso dl rlsorse rlservaLe all'lnLerno della reLe
pubbllca, poLrebbe però non essere molLo gradlLo alle organlzzazlonl. La soluzlone alla quale sl vuole
arrlvare e la seguenLe


nella quale sono presenLl la sLessa 8eLe Locale e gll sLessl punLl remoLl. ln parLlcolare sl vuole che ll
collegamenLo Lra dl essl venga reallzzaLo aLLraverso lnLerneL Þubbllco, appllcando delle pollLlche (lnLese
come meccanlsml dl gesLlone della reLe) che sono però speclflche dell'organlzzazlone. Ad esemplo sl
poLrebbe volere che un uLenLe qualslasl collegaLo alla reLe pubbllca non sla ln grado dl avvlare una
comunlcazlone con le macchlne che fanno parLe della reLe azlendale (funzlonallLa reallzzaLa medlanLe
l'uLlllzzo dl flrewall). ln Lal modo quella che vlene creaLa e una 8eLe ÞrlvaLa vlrLuale, ovvero una reLe che sl
basa su lnfrasLruLLura pubbllca ma che da chl la uLlllzza vlene a LuLLl gll effeLLl perceplLa come una reLe
prlvaLa Lradlzlonale su lnfrasLruLLura dedlcaLa.
Le pollLlche azlendall accennaLe possono rlguardare SecurlLy, CoS, 8ellablllLy, Addresslng.. ln parLlcolare
per quanLo rlguarda l'lndlrlzzamenLo, e conslgllablle che la numerazlone delle macchlne avvenga
uLlllzzando lndlrlzzl apparLenenLl al range degll lndlrlzzl prlvaLl. nel caso ln cul fossero uLlllzzaLl lndlrlzzl
pubbllcl
! non ce alcun problema e LuLLo funzlona bene flno a che la reLe prlvaLa rlmane compleLamenLe
lsolaLa dall'lnLerneL pubbllco.
! nel momenLo ln cul sl volesse accedere ad lnLerneL pubbllco (magarl uLlllzzano un nA1) sl
correrebbe ll rlschlo dl avere un problema dl dupllcazlone dl lndlrlzzl globall. CuesLo perche ll range
dl lndlrlzzl globall (ad esemplo un /16), uLlllzzaLo lmproprlamenLe per numerare le macchlne della
reLe prlvaLa, poLrebbe essere sLaLo assegnaLo a qualcuno da lAnA per numerare macchlne che sl
Lrovano sull'lnLerneL pubbllco. ln Lal caso ll nA1 rlsconLrerebbe un'amblgulLa dl lndlrlzzamenLo,
polche all'lnLerno della sua Labella dl rouLlng per ll medeslmo preflsso Lroverebbe due rlghe (una
che dlce che la reLe cercaLa sl Lrova sull'lnLerneL pubbllco e un'alLra che lnvece dlce che sl Lrova
all'lnLerno della reLe prlvaLa).


La soluzlone da adoLLare per evlLare l suddeLLl probleml e quella dl esegulre una numerazlone delle
macchlne basaLa su lndlrlzzl apparLenenLl al range degll lndlrlzzl prlvaLl. nel momenLo ln cul pol sl volesse
avere accesso alla reLe pubbllca sl poLrebbe sempllcemenLe usare un nA1 (che ln Lal caso e lmposslblle che
veda del preflssl dl reLl prlvaLe annunclaLl sulla reLe pubbllca, qulndl non poLranno mal verlflcarsl amblgulLa
dl lndlrlzzamenLo) oppure assegnare degll lndlrlzzl globall ad alcune macchlne (o anche a LuLLe volendo),
che avrebbero cosl conflguraLo sla un lndlrlzzo prlvaLo che uno pubbllco.

AlLra moLlvazlone olLre a quella economlca che rende convenlenLe l'uLlllzzo delle vÞn rlguarda la posslblllLa
dl Lenere soLLo conLrollo ll proprlo Lrafflco. Con le vÞn lnfaLLl sl e ln grado dl conLrollare l'accesso dl Lrafflco
esLerno verso la vÞn e vlceversa, sempllcemenLe plazzando del llrewall e/o del VÞN Gateway nel punLl ln
cul la reLe lnLerna "vlene a conLaLLo" con quella pubbllca. ln parLlcolare un vÞn CaLeway svolge una
funzlone dl fllLregglo del Lrafflco, ovvero rlconosce se ll Lrafflco ln arrlvo e provenlenLe da un'alLro slLo della
mla sLessa vÞn oppure no. nel caso ln cul ll Lrafflco ln arrlvo nn apparLenga ad un slLo della mla vÞn e Lale
Lrafflco non sla auLorlzzaLo all'lngresso, ll vÞn CaLeway provvede a scarLarlo.
Þer esemplo nella conflgurazlone lllusLraLa nella flgura soLLosLanLe, le LAn 8emoLe flnlscono sempre per
collegarsl con ll quarLler generale. ll vÞn CaLeway plazzaLo nel quarLler generale rlceve delle rlchlesLe dl
connesslone, a segulLo delle quall effeLLua una fase dl auLenLlcazlone. Se l'auLenLlcazlone dell'alLro 1LÞ va a
buon flne ll vÞn CaLeway permeLLe l'aperLura dl un Lunnel aLLraverso ll quale avverra la comunlcazlone,
dlversamenLe la connesslone vlene rlfluLaLa. SLessa cosa vale nel caso ln cul sl cerchl dl aprlre delle
connesslonl Lra le varle Lan 8emoLe. ua noLare e che non e deLLo che ll vÞn CaLeway debba sempre essere
poslzlonaLo dleLro ll rouLer+flrewall, può essere anche poslzlonaLo prlma (ognuna delle due conflgurazlonl
comporLa proprl vanLaggl e svanLaggl).



ln quesL'alLro esemplo sono lnvece lllusLraLl Lre dlversl Llpl dl posslblll rlchledenLl accesso alla vÞn: un
ufflclo remoLo, un moblle user e un LelelavoraLore. ua noLare e che ognuno dl essl poLrebbe avvalersl del
servlzlo dl connesslone offerLo da un dlverso lSÞ, scelLo ln manlera lndlpendenLe.

nel caso ln cul dall'uff|c|o remoto sl volesse lnsLaurare una connesslone con l server locallzzaLl all'lnLerno
della reLe locale del quarLler generale, vlene lnvlaLa una rlchlesLa al vÞn CaLeway (ln flgura lurewall e vÞn
CaLeway colncldono). A quesLo punLo ll vÞn CaLeway chlama ln causa ll Server AAA (AuLhenLlcaLlon
AuLhorlzaLlon AccounLlng) che ha ll complLo dl
! auLenLlcare l'ldenLlLa del mlLLenLe della rlchlesLa dl connesslone.
! nel caso ln cul l'auLenLlcazlone sla avvenuLa con successo, sLablllre le auLorlzzazlonl da assegnare. ln
poche parole, ldenLlflcaLo ll mlLLenLe, gll sl dlra quall sono le operazlonl che e auLorlzzaLo a
svolgere.
! effeLLuare ll conLegglo del consumo delle rlsorse da parLe degll uLenLl, magarl per scopl puramenLe
sLaLlsLlcl per la gesLlone della reLe lnLerna.
AlLra prospeLLlva e quella dl un te|e|avoratore che da casa sl collega ad lnLerneL pubbllco, qualche volLa per
moLlvl suol personall e alLre volLe per lavoro (moLlvo per cul vorrebbe enLrare nella vÞn azlendale). Culndl
ln Lal caso non sl parla dl una soLLoreLe remoLa, bensl dl un'unlca macchlna remoLa che rlchlede l'accesso
alla vÞn. La dlfferenza Lra ll caso del LelelavoraLore e quello dell'ufflclo remoLo sLa nel faLLo che nel caso
dell'ufflclo remoLo ll Lunnel e sLablle (vlene aperLo una volLa e permane sempre o per LuLLo l'arco della
glornaLa lavoraLlva come mlnlmo) menLre nel caso del LelelavoraLore ll Lunnel poLrebbe essere aperLo e
chluso plu volLe al glorno (perche magarl lavora qualche ora al maLLlno e pol rlprende nel pomerlgglo).
CuesLo non e molLo acceLLablle essendo che le operazlonl dl relnlzzallzzazlone dl un Lunnel hanno un loro
cosLo ln Lermlnl dl Lempo e rlsorse.
venlamo lnflne al caso del Mob||e User, ovvero qualcuno che, munlLo dl noLebook e connesslone lnLerneL,
se ne va ln glro per lavoro. CuesLl non solo lmpllcano una frequenza dl lnsLaurazlone e chlusura del Lunnel
magglore anche del caso del LelelavoraLore, ma nell'arco della sLessa glornaLa poLrebbero addlrlLLura
collegarsl uLlllzzando dlversl lSÞ.
nel caso dell'uLenLe moblle e del LelelavoraLore sl parla dl VÞN DI ACCLSSC, ovvero che permeLLono ad
una slngola macchlna dl enLrare nella vÞn aLLraverso l'aperLura dl un Lunnel con la sede cenLrale (e Lale
Lunnel e soggeLLo ad una cerLa frequenza dl relnsLaurazlone nell'arco anche dl una sLessa glornaLa). nel
caso dell'ufflclo remoLo sl parla lnvece dl VÞN SI1L-1C-SI1L, dove sl vanno a collegare ln manlera sLablle
due slLl flssl apparLenenLl ad una sLessa organlzzazlone. l due Llpl dl vÞn dlfferlscono per le Lecnlche dl
gesLlone ed aperLura del Lunnel. ln parLlcolare Lall Lecnlche possono essere plu snelle nel caso delle vÞn dl
accesso, essendo che quesLe prevedono che l Lunnel vengano relnsLauraLl abbasLanza frequenLemenLe.
vedlamo ora dl rlspondere alla domanda dl caraLLere praLlco: per cosa sl usano le vÞn? Lsse sono uLlllzzaLe
essenzlalmenLe per usl dl
! kemote user access:
e ll caso LraLLaLo negll esempl precedenLl, caraLLerlzzaLo da
- auLenLlcazlone forLe, dove l'auLenLlcazlone può rlguardare ll Lermlnale o l'uLenLe. Se sl
auLenLlca ll Lermlnale loglcamenLe non posso sapere dl faLLo chl lo sLa usando.
- gesLlone cenLrallzzaLa, polche LuLLl dovranno flnlre per andare a collegarsl con la cenLrale
- scalablllLa, polche Lall reLl devono essere pensaLe per gesLlre anche un grande numero dl
uLenLl. nel caso gll uLenLl sla dlsLrlbulLl su larga scala geograflca e posslblle che vengano
prevlsLl del punLl dl accesso alla vÞn anch'essl dlsLrlbulLl geograflcamenLe.




! Intranet VÞN:
cosLrulre una reLe Lra dlversl slLl lnLerna alla mla organlzzazlone, ln cul sosLanzlalmenLe macchlne
che sl Lrovano ln slLl dlversl flnlscono per cosLlLulre LuLLa un'unlca reLe prlvaLa vlrLuale passando per
lnLerneL.


dove nella sede prlnclpale c'e un server accesslblle dall'esLerno (che poLrebbe essere un server Web
o un server dl posLa eleLLronlca). ll Server ha accesso llbero e a valle dl esso cl sono del flrewall,
ognuno del quall Lende a proLeggere un cerLo gruppo dl macchlne della reLe locale. non c'e molLa
proLezlone verso l'esLerno perche le macchlne del slLo remoLo enLrano nella reLe vÞn della sede
cenLrale solo dopo essere sLaLl auLenLlcaLl dal vÞn CaLeway come dlpendenLl della sede remoLa,
qulndl LraLLablll come uLenLl locall. Culndl dl faLLo e ll vÞn CaLeway che ml fornlsce una proLezlone
lnLrlnseca. Le caraLLerlsLlche dl una lnLraneL vÞn sono:
! comunlcazlone slcura Lra dlfferenLl slLl
! clfraLura del daLl lnvlaLl sul Lunnel
! auLenLlcazlone del Lunnel
! affldablllLa, ovvero dlverse CoS ln base alla Llpologla dl Lrafflco
! scalablllLa, ovvero la posslblllLa dl poLer agglungere alla vÞn alLrl slLl remoLl ln base magarl a fuLure
necesslLa dl espanslone della vÞn azlendale

! Lxtranet VÞN:
e una reLe ancora prlvaLa, ma ln quesLo caso c'e la volonLa dl collegare due reLl lnLerne dl due
dlverse organlzzazlonl (magarl ln vlrLu dl un accordo commerclale). L'ammlnlsLraLore della reLe A
concedera l'accesso alla proprla reLe alle macchlne della reLe 8, permeLLendo però loro dl complere
solo deLermlnaLe operazlonl.


CuesLa volLa, ln vlrLu del faLLo che non LuLLe le operazlonl devono essere concesse, a monLe del
Server cl sara un flrewall. ln Lale conLesLo va evldenzlaLa la posslblllLa che sl verlflchl un confllLLo dl
lndlrlzzamenLo, nel caso ln cul le due azlende che ho collegaLo alla mla reLe abblano usaLo ll
meseslmo spazlo dl lndlrlzzl per numerare le proprle macchlne. ln Lal caso la soluzlone plu
lmmedlaLa sLa nell'uLlllzzo dl nA1.

AlLra classlflcazlone delle vÞn sl basa sul modo ln cul esse accedono all'lnLerneL pubbllco. LslsLono due
approccl medlanLe l quall può essere permesso l'accesso agll uLenLl all'lnLerneL pubbllco
! CLN1kALI2LD (Compu|sory connect|on)
Se ho aperLo un Lunnel (ad esemplo verso la sede cenLrale), LuLLo ll mlo Lrafflco che non e dlreLLo
verso la vÞn, bensl verso un'alLra desLlnazlone all'esLerno, vlaggla aLLraverso Lale Lunnel flno a
ragglungere ll punLo ln cul sl esce dalla vÞn verso la reLe pubbllca. ua ll pol conLlnua ad essere
lnsLradaLo all'lnLerno della reLe pubbllca flno al desLlnaLarlo. l messaggl dl rlsposLa fanno ll
cammlno lnverso, ragglungendoml aLLraverso ll Lunnel anche se dl faLLo ll mlLLenLe e una
macchlna locallzzaLa all'esLerno della vÞn.



nell'esemplo lllusLraLo ln flgura dalla macchlna C sl vuole accedere a un desLlnaLarlo che sl Lrova
sull'lnLerneL pubbllco. ln vlrLu dell'uLlllzzo dl un approcclo dl accesso cenLrallzzaLo, l paccheLLl
lnvlaLl da C vlaggeranno all'lnLerno del Lunnel flno ad 81 (che cosLlLulsce ll punLo dl conLaLLo Lra la
vÞn e la reLe pubbllca), enLreranno nella reLe locale e lnflne saranno rlspuLaLl fuorl su 81 per
essere lnsLradaLl verso la reLe pubbllca.
ll vanLagglo dl Lale modo dl procedere sLa nel faLLo che a llvello del rouLer 81 poLrebbe essere
plazzaLo un flrewall per conLrollare che le operazlonl effeLLuaLe con desLlnazlone sull'lnLerneL
pubbllco slano effeLLlvamenLe consenLlLe. Lo svanLagglo e lnvece che se la macchlna C e a 1orlno,
la sede cenLrale e ln Amerlca e ll desLlnaLarlo e a Mllano, dl faLLo ll paccheLLo fa un vlagglo
davvero Lroppo lungo rlspeLLo a quello che ln realLa sarebbe necessarlo.

! DIS1kI8U1LD (Vo|untary connect|on)
Supponendo dl avere un Lunnel aperLo, quando uso un desLlnaLarlo che non fa parLe della vÞn ll
messagglo non passa aLLraverso ll Lunnel ma vlene dlreLLamenLe lnsLradaLo a desLlnazlone
usando escluslvamenLe l meccanlsml della reLe pubbllca.



l paccheLLl lnvlaLl dal 8emoLe branch che hanno come desLlnaLarlo ll quarLler generale vlagglano
nel Lunnel, menLre quelll avenLl come desLlnaLarlo un qualunque uLenLe della reLe pubbllca
vengono lnsLradaLl dlreLLamenLe verso dl essa dal rouLer 81. l vanLaggl/svanLaggl relaLlvl a Lale
Llpo dl approcclo sono slmmeLrlcl rlspeLLo a quelll del precedenLe.


Þossono lnolLre essere dlsLlnLl due dlversl modelll dl messa ln opera delle vÞn:

! Modello CVLkLA¥:
La vÞn vlene cosLrulLa senza che la reLe che le offre supporLo lnfrasLruLLurale ne sla consapevole.
Come soLLollneaLo dalla seguenLe lmmaglne

ln Lal caso l'organlzzazlone deve dlsporre dl lnfrasLruLLure proprle (esLerne alla reLe) per la
gesLlone del Lunnel (vÞn CaLeway) e alla reLe pubbllca soLLosLanLe vlene rlchlesLo solo ll servlzlo
dl conneLLlvlLa lÞ. L' lmporLanLe noLare che, per poLer decldere su quale Lunnel far vlagglare un
paccheLLo dlreLLo verso una cerLa desLlnazlone, e necessarlo che Lra l vÞn CaLeway sla aLLlvo un
meccanlsmo dl annunclo delle soLLoreLl del LuLLo slmlle a quello uLlllzzaLo dal rouLer lÞ.

! Modello ÞLLk:
nel modello ÞLL8 ll servlzlo vÞn e fornlLo dall'lnLerneL pubbllco, ovvero e la reLe pubbllca che sl
occupa dl offrlre ll servlzlo dl lnsLradamenLo, dl cosLruzlone e dl annunclo del 1unnel vÞn.


L'uLenLe esLerno deve comunlcare all'lnfrasLruLLura dl reLe solo a quall soLLoreLl e collegaLo e
verso quall alLrl slLl sl desldera che slano aperLl del Lunnel. Cvvero chl sl Lrova al dl fuorl della reLe
vede la vÞn come una reLe prlvaLa vlrLuale vera e proprla.
vanLagglo del modello ÞLL8 e che le apparecchlaLure dell'uLenLe possono LranqulllamenLe
lgnorare l'eslsLenza della vÞn, loro vedono sempllcemenLe una reLe normale ma che e prlvaLa.

l due modelll esposLl possono essere usaLl ovunque?
SosLanzlalmenLe ll modello ÞLL8 non può essere uLlllzzaLo per le reLl vÞn dl accesso polche quesLe sono
pluLLosLo sLaLlche. La cosLruzlone dl un Lunnel rlchlede un cerLo lLer che e abbasLanza lungo, o per lo meno
non abbasLanza breve per poLer essere conslderaLo acceLLablle nel caso ln cul l Lunnel debbano essere
chlusl e relnsLauraLl con una cerLa frequenza anche nell'arco dl un llmlLaLo perlodo dl Lempo. CuesLo e ll
caso del LelelavoraLore e/o del moblle user, che addlrlLLura poLrebbe anche collegarsl alla vÞn uLlllzzando
ognl volLa un dlverso lSÞ, dl modo che per l'azlenda nn sarebbe plu sufflclenLe rlchledere ll servlzlo dl vÞn
ad un slngolo operaLore dl reLe. AlLro problema e anche che nelle reLl dl accesso ll Lunnel parLe dalla
macchlna dell'uLenLe e Lermlna nel vÞn CaLeway, ll che vlola ll vlncolo sLruLLurale ln base al quale nelle reLl
ÞLL8 l'Lnd ÞolnL sl Lrova all'lnLerno della reLe pubbllca. SchemaLlcamenLe



un' ulLerlore classlflcazlone suddlvlde le vÞn ln due caLegorle. Sl conslderl la seguenLe slLuazlone ln cul
sl vogllono collegare clnque slLl per formare un'unlca
reLe prlvaLa vlrLuale. Cgnl slLo avra un CL - Customer
Ldge, che e l'ulLlma apparecchlaLura dell'uLenLe,
dopo dl che e presenLe un ÞL - Þrov|der Ldge, prlma
apparecchlaLura soLLo ll conLrollo del Þrovlder.
Le llnee LraLLegglaLe sono del canall da uLlllzzare ln
caso dl emergenza, menLre quelle ln azzurrlno sono
usaLe per ll rouLlng e l'lnsLradamenLo del paccheLLl
della vÞn aLLraverso la reLe.
Sl dlsLlnguono

! VÞN ÞkCVIDLk ÞkCVIGICNLD
la vÞn vlene cosLrulLa e gesLlLa dal fornlLore dl conneLLlvlLa lnLerneL. ne
consegue che le reLl cosLrulLe con modello ÞLL8 sono cerLamenLe dl
quesLo Llpo polche l'uLenLe non può andare a cosLrulre la vÞn denLro
l'lnfrasLruLLura dl reLe senza che quesLa pol sla gesLlLa anche dal Þrovlder.
Le reLl cosLrulLe con modello CvL8LA? possono lnvece essere Þrovlder Þrovlgloned o no. Þuò lnfaLLl
succedere che la vera lnfrasLruLLura dl reLe sla locallzzaLa ln un'area lnLerna dellmlLaLa dalle
poslzlonl del ÞL . ln Lal caso l ÞL sono apparecchlaLure posLe ln casa del cllenLe, qulndl al dl fuorl
dell'lnfrasLruLLura vera e proprla, ma ammlnlsLraLe e gesLlLe da chl fornlsce ll servlzlo dl vÞn. ne
consegue che ll cllenLe non ha blsogno dl possedere conoscenze Lecnlche ne personale per ll
manLenlmenLo della reLe vÞn, polche a Lall funzlonl assolve ln LoLo ll Þrovlder dl reLe cul ne e sLaLa
affldaLa la cosLruzlone.

! VÞN CUS1CMLk ÞkCVIGICNLD
L' l'uLenLe che sl auLo-fornlsce ll servlzlo vÞn.

LoglcamenLe e necessarlo che ll Þrovlder sla ln grado dl gesLlre plu vÞn dl Llpo dlverso senza mescolare ll
loro Lrafflco, nonosLanLe l'lnfrasLruLLura uLlllzzaLa sla la
sLessa per LuLLe.
CuesLo lmpllca anche la posslblllLa dl rlLrovarsl a dover
gesLlre anche slLuazlonl parLlcolarl, come ad esemplo nel
caso ln cul venga agglunLo un nuovo slLo (SlLe 6)
apparLenenLe all'organlzzazloneA (nuvole color celesLe)
collegandolo alla sLessa apparecchlaLura che funge da
rouLer dl lngresso-usclLa per una soLLoreLe apparLenenLe
alla vÞn dell'organlzzazlone8 (nuvole color rosso). 1ale
apparecchlaLura, nel momenLo ln cul arrlva un paccheLLo,
deve essere ln grado dl dlsLlnguere a quale delle due
soLLoreLl esso e desLlnaLo. ln parLlcolare blsogna Lener
presenLe che l paccheLLl desLlnaLl ad enLrambe le
soLLoreLl poLrebbero vlagglare all'lnLerno dello sLesso
Lunnel flno all'apparecchlaLura che ne dovra esegulre lo
smlsLamenLo. lnuLlle dlre che, al flne dl permeLLere
l'lnsLradamenLo del paccheLLl, all'agglunLa del Sl1L6 ll
corrlspondenLe CusLomer Ldge dovra provvedere ad
annunclare al Þrovlder Ldge quall sono le soLLoreLl della
vÞn conLenuLe all'lnLerno dl Lale slLo.



un'alLro modo ancora per classlflcare le vÞn rlguarda ll llvello proLocollare al quale sl va ad aglre per la loro
reallzzazlone:
! a LIVLLLC DA1A LINk (Llvello 2) e posslblle reallzzare una reLe locale vlrLuale (V|rtua| Þr|vate LAN
Serv|ce), ovvero avendo dlversl slLl geograflcamenLe dlsLrlbulLl sl può fare ln modo che quesLl sl
comporLlno come se fossero un'unlca reLe locale globale. Se ne deduce che l'lnsLradamenLo del
frame (perche sLlamo parlando a llvello 2) Lra Lall slLl sara basaLo sull'lndlrlzzo MAC desLlnaLarlo (dl
modo che sara faLLo amplo uso del proLocollo A8Þ, l cul messaggl broadcasL saranno propagaLl
all'lnLerno dl LuLLl l slLl che compongono la reLe locale).
Cppure a Llvello 2 sl poLrebbe anche reallzzare un servlzlo che fornlsca un collegamenLo punLo-a-
punLo vlrLuale (V|rtua| Þr|vate W|re Serv|ce). 1ale servlzlo può essere uLlle nelle 8eLl dl Accesso
dove la necesslLa e quella dl collegare una macchlna uLenLe al vÞn CaLeway che sl Lrova nella sede
cenLrale. A Lale scopo sarebbe davvero Lroppo asLruso meLLersl ad emulare una reLe locale, scelLa
declsamenLe mlgllore e quella dl emulare sempllcemenLe un collegamenLo punLo-a-punLo, come se
ll Lermlnale dell'uLenLe fosse dlreLLamenLe collegaLo al vÞn CaLeway.
Sono lnflne reallzzablll del servlzl deLLl IÞ-Cn|y LAN-||ke Serv|ce (anche quesLl emulano una reLe
locale) che lmpongono delle resLrlzlonl parLlcolarl rlguardo al paccheLLl che apparLengono a
proLocolll al dl sopra del llvello2. Ad esemplo possono essere lasclaLl passare solo l paccheLLl lÞ (e
qulndl lCMÞ) e A8Þ.
! se la vÞn e reallzzaLa LIVLLLC kL1L (Llvello 3) le unlLa dl Lrasmlsslone sono l daLagram e le declslonl
per ll loro lnsLradamenLo sono prese ln base all'lndlrlzzo lÞ del desLlnaLarlo. ul conseguenza solo l
proLocolll che usano l'lÞ rlusclranno a LranslLare da un slLo all'alLro. l CL saranno del rouLers o delle
macchlne nel caso delle reLl dl accesso.
! se lnflne la vÞn e reallzzaLa a LIVLLLC 1kASÞCk1C (Llvello 4) un Lunnel e cosLrulLo uLlllzzando una
connesslone 1CÞ (al llmlLe una connesslone slcura, qulndl 1CÞ+SSL) e può essere lnsLauraLo solo Lra
due macchlne uLenLe (essendo che generalmenLe ll 1CÞ e lmplemenLaLo solo nella macchlne
uLenLe).

ueLLo quesLo, vedlamo qulndl come sono cosLrulLl l paccheLLl. Supponlamo che ln una Lradlzlonale reLe
debba essere lnvlaLo un messagglo P11Þ, ln Lal caso ll paccheLLo sarebbe sLruLLuraLo nel modo seguenLe


se Lale paccheLLo dovesse essere ad esemplo Lrasmesso all'lnLerno dl un Lunnel cosLrulLo a llvello 4, ma che
deve emulare una connesslone punLo-a-punLo, avremmo





ovvero la sequanza delle lnLesLazlonl non segue plu un ordlne sLreLLamenLe crescenLe. Ma la cosa ln Leorla
può ancora compllcarsl se sl pensa che, per sempllflcare l'lnsLradamenLo, LuLLl l Lunnel che hanno dlfferenLl
desLlnazlonl ma con un pezzo dl LraglLLo da percorrere ln comune possono essere posLl all'lnLerno dl un
Lunnel plu grosso. CuesLa Lecnlca però, se da un laLo comporLa una
sempllflcazlone dell'lnsLradamenLo del paccheLLl dovuLa al faLLo che
accorpando le desLlnazlonl lnLermedle sl rlducono le enLry nelle Labelle
dl rouLlng, dall'alLro lmpllca che un paccheLLo presenLera ben Lre
lnLesLazlonl, ovvero:
! uue lnLesLazlonl dl Lunnel
! una lnLesLazlone ordlnara plu lnLerna

MLSS n11Þ nDk n11Þ nDk 1CÞ nDk IÞ nDk MAC 1Lk MAC
MLSS n11Þ nDk n11Þ nDk 1CÞ nDk IÞ nDk ÞÞÞ 1Lk MAC nDk MAC nDk 1CÞ nDk IÞ
ÞkC1CCCLLI ÞLk L'IM8US1AMLN1C
ALL'IN1LkNC DLL 1UNNLL
una rappresenLazlone rlepllogaLlva rlguardo la classlflcazlone delle 1ecnologle vÞn e fornlLa dalla flgura
seguenLe


dove sl può noLare che:
! le vÞn cosLrulLe a llvello 2 sono Þrovlder Þrovlgloned, essendo che l'equlvalenLe del punLo-a-punLo
lo sl può chledere al provlder ma dlfflcllmenLe l'uLenLe può reallzzarlo da se.
! CosLruendo a llvello 3 la vÞn sl può scegllere Lra un approcclo CusLomer Þrovlgloned e Þrovlder
Þrovlgloned.
! vÞn messe su a llvello 4 possono essere solo CusLomer Þrovlgloned, basandosl su 1CÞ+ SSL.

Þer quanLo rlguarda l'aspeLLo Lopologlco, quando sl cosLrulsce una reLe prlvaLa vlrLuale sl cosLrulsce
sosLanzlalmenLe una Lopologla vlrLuale sovrapposLa a quella flslca, ovvero dl faLLo volendo cosLrulre una
vÞn cl sl può dlslnLeressare LranqulllamenLe della Lopologla della reLe flslca. Þossono essere classlflcaLl due
prlnclpall approccl Lopologlcl per le vÞn:
! nU8 AND SÞCkL:
l varl slLl della vÞn non possono comunlcare dlreLLamenLe Lra dl loro, ma solo con ll quarLler
generale. nel caso ln cul un messagglo debba essere recaplLaLo dal slLo1 al
slLo2 esso passera qulndl prlma dal quarLler generale per pol essere
lnsLradaLo verso l'effeLLlva desLlnazlone dal vÞn CaLeway. ne consegue
che ll rouLlng adoLaLLo e sub-oLLlmo.
Con una Lopologla dl quesLo Llpo, posLo n ll numero del slLl presenLl,
saranno cosLrulLl n-1 Lunnel. ln parLlcolare le reLl dl accesso sono LuLLe dl
quesLo Llpo, polche sl ha a che fare con un Lermlnale uLenLe che apre una
comunlcazlone con uno del vÞn CaLeway del quarLler generale.


! MLSn:
ln quesLo caso, magarl perche cl sl aspeLLa dl avere Lra due parLlcolarl slLl un Lrafflco abbasLanza
corposo, sl declde dl dedlcare loro un Lunnel dlreLLo per
agevolare lo scamblo dl lnformazlonl. 1ale conflgurazlone e
loglcamenLe plu compllcaLa essendo che ll numero del Lunnel
da gesLlre aumenLa, dl conLro però ll rouLlng rlsulLa oLLlmlzzaLo.










nelle vÞn dl Llpo Þ8CvluL8 Þ8CvlClCnLu può spesso caplLare che l'accesso ad lnLerneL venga
subordlnaLo ad un accesso alla vÞn (magarl perche un'azlenda che ha messo su una vÞn vuole che l suol
dlpendenLl accedano alla reLe pubbllca solo aLLraverso dl essa). un uLenLe remoLo ad esemplo, cercando dl
accedere ad lnLerneL, verra prlma
dl LuLLo auLenLlcaLo. A Lale scopo
eslsLe un qualche meccanlsmo dl
slcurezza lnLerno (SecurlLy Server
AAA) che, una volLa auLenLlcaLo
l'uLenLe, sapra anche ln grado dl
far presenLe che, ln base ad
accordl presl, Lale uLenLe deve
essere collegaLo ad una
parLlcolare vÞn. ll nAS allora
prende l'lndlrlzzo del vÞn
CaLeway al quale blsogna
collegarsl e va a chledere a
quesL'ulLlmo dl aprlre un Lunnel
verso l'uLenLe.
ll vÞn CaLeway non rlpeLe la fase
dl auLenLlcazlone gla effeLLuaLa,
ma va a carlcare l'lnsleme del
prlvllegl da assegnare al parLlcolare uLenLe e fornlsce una rlsposLa al nAS clrca la posslblllLa dl lnsLaurare ll
Lunnel (anche per effeLLuare l'accounLlng). ua quesLo punLo ln avanLl ll Þrovlder funge solo da
"passacarLe" polche LuLLo passa dlreLLamenLe sul Lunnel.


VÞN Components
Andlamo ora a vedere come sl fa a meLLere su una vÞn. Cuello che cl occorre e:
! qualcosa per separare l daLl della vÞn da LuLLl gll alLrl che clrcolano all'lnLerno della reLe pubbllca.
A Lal scopo vengono uLlllzzaLl del Lunnel.
! un meccanlsmo dl clfraLura per ll Lrafflco della vÞn che LranslLa sull' lnLerneL pubbllco, dl modo che
nel caso ln cul venga lnLerceLLaLo non possa essere leLLo.
! meccanlsml per poLer verlflcare l'lnLegrlLa del messaggl, per accerLarsl che non slano sLaLl
manomessl.
! un meccanlsmo per l'auLenLlcazlone: sl vuole essere slcurl, prlma dl lnsLaurare un Lunnel, che ll 1LÞ
con ll quale lo sl aprlra sla veramenLe colul che dlce dl essere.



1unne||ng
Sl e gla parlaLo nel paragrafl precedenLl dl Lale argomenLo. nel caso S|te-to-S|te fondamenLalmenLe vl sono
due reLl locall apparLenenLl ad
una sLessa vÞn e per meLLerle sl
e obbllgaLl a passare aLLraverso
l'lnLerneL pubbllco. vengono
qulndl usaLl due 1LÞ-1unnel Lnd
ÞolnL (poslzlonaLl ognuno
all'enLraLa dl una delle due reLl)
Lra l quall vlene cosLrulLo un
Lunnel aLLraverso ll quale
saranno faLLl LranslLare l daLl scamblaLl Lra le reLl locall. un paccheLLo che LranslLa aLLraverso ll Lunnel avra
ll formaLo mosLraLo ln flgura, ovvero all'header lÞ convenzlonale per l'lnsLradamenLo all'lnLerno della reLe
locale e agglunLo un ulLerlore header lÞ per l'lnsLradamenLo all'lnLerno del Lunnel. ln parLlcolare ln
quesL'ulLlma lnLesLazlone gll lndlrlzzl mlLLenLe-desLlnazlone saranno quelll del 1LÞ dl parLenza-arrlvo,
menLre nell'lnLesLazlone plu lnLerna saranno quelll delle macchlne che sono l verl mlLLenLe e desLlnaLarlo
del paccheLLo.
nel caso delle ket| d| accesso lnvece la macchlna uLenLe deve prlma dl LuLLo collegarsl all'lÞ pubbllco,
auLenLlcandosl presso ll provlder lÞ locale. A marglne dl Lale auLenLlcazlone rlceve un lndlrlzzo lÞ pubbllco
(30.1.1.1). A quesLo punLo l'uLenLe LenLa dl aprlre una connesslone con ll vÞn CaLeway dell'azlenda avenLe
lndlrlzzo 130.192.3.2. ual momenLo ln cul
vlene aperLo ll Lunnel l'uLenLe e denLro la
vÞn e ll vÞn CaLeway gll assegnera
un'alLro lndlrlzzo lÞ ln base al plano dl
lndlrlzzamenLo della vÞn (10.2.1.3).
ul conseguenza ora la macchlna uLenLe
posslede sla un lndlrlzzo pubbllco che uno
prlvaLo (che dl faLLo poLrebbe anch'esso
essere un lndlrlzzo dl Llpo pubbllco,
vorrebbe solo dlre che la vÞn e ln qualche
modo collegaLa con l'lnLerneL pubbllco).
volendo spedlre una rlchlesLa al Server
azlendale (10.1.1.2), Lale paccheLLo vlaggera all'lnLerno del Lunnel cosLrulLo Lra l'hosL uLenLe e ll vÞn
CaLeway con ll seguenLe formaLo





GkL
ll GkL- Cenerlc 8ouLlng LncapsulaLlon e uno del proLocolll usaLl per lncapsulare l Lunnel. ln parLlcolare
l'uLlllLa dl Lale proLocollo sLa nel faLLo che permeLLe dl cosLrulre Lunnel a dlversl Llpl dl llvelll, cloe non
vlncola ad avere un'alLra lnLesLazlone lÞ dopo la prlma lnLesLazlone lÞ. Ad esemplo qulndl, qualora sla sLaLo
cosLrulLo un Lunnel C8L per emulare un canale punLo-a-punLo, poLrel meLLere denLro Lale Lunnel un frame
ÞÞÞ.
Ma perche e necessarlo C8L? non sl può dlreLLamenLe porre dopo la prlma lnLesLazlone lÞ la successlva
lnLesLazlone dl proLocollo uLlllzzaLo? Lbbene, no non sl può. 8lsogna lnfaLLl rlcordare che nel paccheLLo lÞ
e presenLe un campo che lndlca a quale proLocollo apperLlene l'lnLesLazlone successlva ( campo
Þ8C1CCCL ln lÞv4, campo nLx1 PLAuL8 ln lÞv6), e l valorl assegnablll a Lale campo sono per defaulL solo
relaLlvl a proLocolll dl llvello superlore a quello aLLuale. ul conseguenza cl sl Lrova ad esemplo
nell'lmposslblllLa dl lndlcare che un'lnLesLazlone lÞ e segulLa da una ÞÞÞ. AppunLo per superare Lale llmlLe
vlene uLlllzzaLo un proLocollo dl lncapsulamenLo come ll C8L


dl modo che nell'lnLesLazlone lÞ e presenLe un'lndlcazlone che l'lnLesLazlone che segue apparLlene al C8L,
che pol a sua volLa poLra lndlcare come successlvo un qualslasl proLocollo dl un qualslasl llvello. ln
parLlcolare l'lnLesLazlone del proLocollo C8L e cosLlLulLa dal seguenLl campl
nLADLk IÞ
SkC: 30.1.1.1
DS1: 130.192.3.2
nLADLk IÞ
SkC: 10.2.1.3
DS1: 10.1.1.2

MLSSAGGIC


dove:
! SLÇULNCL NUM8Lk: serve per numerare l daLl dl modo che sla posslblle rendersl conLo se l
paccheLLl sLanno arrlvando fuorl ordlne. l paccheLLl che arrlvano fuorl ordlne vengono scarLaLl.
! ÞkC1CCCL: lndlca a quale proLocollo apparLlene l'header che segue quello C8L.
! kLCUk: lndlca ll faLLo che un Lunnel sla lnserlLo all'lnLerno dl un'alLro plu grande, anche se dl faLLo
non e posslblle lnserlre un Lunnel C8L all'lnLerno dl un'alLro Lunnel C8L (moLlvo per cul Lale campo
e seLLaLo a 0 dl defaulL).
! kCU1ING: lndlca una sequenza lndlrlzzl lÞ o dl ALonoumus SysLems che devono essere aLLraversaLl
per arrlvare all'alLro 1LÞ.

l meccanlsml messl a dlsposlzlone dal C8L sono l seguenLl:
! Contro||o d| f|usso: vlene uLlllzzaLo un meccanlsmo dl conLrollo dl flusso a flnesLra scorrevole
! k||evameto pacchett| fuor| ord|ne: l paccheLLl arrlvaLl fuorl ordlne vengono rllevaLl e scarLaLl
! 1|meout: nel caso ln cul sla prevlsLo un meccanlsmo dl acknowledgmenL per la rlLrasmlsslone dl
paccheLLl, ll LlmeouL per la rlLrasmlsslone vlene calcolaLo con un meccanlsmo slmlle a quello del 1CÞ
! Conto||o d| congest|one: nel momenLo ln cul sl rllavano molLl LlmeouL sl procede a dlmlnulre la
veloclLa dl lmmlsslone dl daLl nella reLe.


V|rtua| D|a|-Up
AlLrl proLocolll per ll 1unnellng quall ll ÞÞ1Þ o l'L21Þ permeLLono la cosLruzlone dl reLl dl accesso deLLe
V|rtua| D|a|-Up, ovvero quello che sl vuole vlrLuallzzare e la chlamaLa da una sede remoLa verso uan sede
cenLrale. ln Lale conLesLo e necessarlo che slano fornlLl meLodl per:
! Autent|caz|one: polche l Lunnel vengono aperLl e chlusl con una cerLa frequenza, e ognl volLa che
un Lunnel vlene rlaperLo blsogna accerLarsl che chl ne rlchlede l'aperLura sla una persona
auLorlzzaLa a farlo. Ad assolvere a Lale manslone e ll vÞn CaLeway, sulla base dl lnformazlonl che
possono però essere memorlzzaLe alLrove (ad esemplo sul Server AAA).
! Autor|zzaz|one: una volLa auLenLlcaLo un'uLenLe ll vÞn CaLeway deve andare a vedere quall sono l
permessl (ln Lermlnl dl operazlonl che può svolgere) assoclaLl. 1e lnformazlonl su Lall permessl
poLrebbero ancora una volLa essere memorlzzaLe alLrove (ad esemplo su un Server AAA).
! A||ocaz|one d| |nd|r|zz|:l'uLenLe, una volLa auLenLlcaLo e che gll sono sLaLl noLlflcaLl l suol permessl,
ha blsogno che gll sla assegnaLo dal vÞn CaLeway un lndlrlzzo lnLerno della vÞn. 1ale lndlrlzzo può
essere dl Llpo prlvaLo o pubbllco, a seconda che Lale uLenLe abbla blsogno dl accedere o meno
all'lnLerneL pubbllco (ln caso sla usaLo un nA1 l'uLenLe può andare sulla reLe pubbllca anche con un
lndlrlzzo prlvaLo).
vedlamo una LraLLazlone plu deLLagllaLa del proLocolll suddeLLl:

L21Þ (Layer 2 1unne||ng Þrotoco|)

1ale proLocollo e sLaLo pensaLo per uno scenarlo ln cul ll servlce Þrovlder meLLe a dlsposlzlone un servlzlo
per macchlne lsolaLe. non sl preoccupa del problema della slcurezza lnLesa come prlvaLezza della
comunlcazlone, bensl a Lale scopo uLlllzza un proLocollo quale l'lÞSec.
ln parLlcolare lo scenarlo che aveva ln menLe chl ha reallzzaLo l'L21Þ e una reLe dl accesso alla vÞn dl Llpo
Þrovlder Þrovlgloned, ln cul qulndl
fosse ll Þrovlder a fornlre LuLLl l
meccanlsml per l'accesso alla vÞn. 1all
meccanlsml prevedono l'lmplego dl
! LAC - L21Þ Access Concentrator
! LNS - L21Þ Network Server
un LnS alLro non e che un vÞn
CaLeway per l'L21Þ. un LAC e lnvece un
concenLraLore ln grado dl acceLLare dlverse connesslone da uLenLl dlfferenLl e dl lnvlare l loro daLl su Lunnel
verso uno sLesso LnS. 1ra la macchlna uLenLe e ll LAC e usaLo ll ÞÞÞ, un proLocollo dl llvello 2 pensaLo per
comunlcazlonl dl Llpo punLo-a-punLo, menLre Lra ll LAC e l'LnS sl aprono l verl e proprl Lunnel (un canale dl
conLrollo e uno o plu Lunnel per l daLl).
Lo sLack dl proLocolll uLlllzzaLo dall'L21Þ e ll seguenLe

ln verlLa ce ne sono due dl sLack: lo sLack dl desLra e uLlllzzaLo per l messaggl dl conLrollo della Lrasmlsslone
(Lra ll LAC e l'LnS), quello dl slnlsLra e uLlllzzaLo lnvece per l daLl. Anallzzando lo sLack dl slnlsLra sl può
noLare che quello che frulsce all'lnLerno del Lunnel daLl sono del frame ÞÞÞ, dl modo che se ne deduce che
l'L21Þ non fa alLro che emulare una connesslone dl Llpo punLo-a-punLo Lra la macchlne dell'uLenLe e ll vÞn
CaLeway LnS. ll LuLLo poggla su una serle dl proLocolll quall ad esemplo l'uuÞ, dl modo che ll Llplco formaLo
dl un paccheLLo L21Þ e ll seguenLe


dove nell'header lÞ gll lndlrlzzl desLlnaLarlo-mlLLenLe sono quelll dell'LnS-LAC. Supponendo che sl LraLLl dl
un paccheLLo dl daLl e non dl un paccheLo dl conLrollo, nel campo uA1A sara presenLe un'lnLesLazlone ÞÞÞ,
segulLa da una lÞ eLc eLc essendo che ll ÞÞÞ e un proLocollo dl llvello 2. ll formaLo dell'lnLesLazlone L21Þ e
lnvece ll seguenLe, dove ll blL del campo 1 assume valore
! 0 - se sl LraLLa dl un messagglo daLl
! 1 - se sl LraLLa dl un messagglo dl conLrollo

Þer quanLo rlguarda l campl Sess|onID e 1unne|ID, nell'L21Þ e prevlsLo che ll LAC possa fornlre ll
collegamenLo verso uno sLesso LnS per plu uLenLl. Cuando ll prlmo uLenLe sl presenLa sl apre ll Lunnel
(Lubo grosso) e dl conseguenza
una conLrol connecLlon per la
sua gesLlone. usando del
messaggl dl conLrollo sulla
conLrol connecLlon e posslblle
rlchledere l'aperLura dl una o
plu sesslonl daLl, clascuna delle
quall corrlsponde ad un uLenLe
che rlchlede un collegamenLo
verso lo sLesso LnS. Se ne
deduce che nella Lermlnologla L21Þ ll 1unnLL ldenLlflca LuLLo ll collegamenLo Lra LAC e LnS all'lnLerno del
quale flulsce pol sla la conLrol connecLlon che un cerLo numero dl sesslonl daLl (ldenLlflcaLe appunLo dal
campo Sesslonlu all'lnLerno dell'header). ua noLare e lnolLre che un LAC poLrebbe avere plu Lunnel ln
usclLa verso dlfferenLl LnS (ldenLlflcaLl dal campo 1unnellu all'lnLerno dell'header).
ualla presenza del campl Ns (sequence number) e Nr sl deduce lnolLre che vlene effeLLuaLo un qualche
sorLa dl acknowledgmenL del paccheLLl. ll campo ns rappresenLa lnfaLLl ll sequence number del paccheLLo
correnLe, menLre nr fornlsce un'lndlcazlone rlguardo ll sequence number del paccheLLo per ll quale sl sLa
aLLendendo rlsconLro. 1ale meccanlsmo e però dl faLLo uLlllzzaLo solo per quanLo rlguarda l messaggl dl
conLrollo, e ln parLlcolare vlene uLlllzzaLo un meccanlsmo dl rlLrasmlsslone seleLLlva.
nel momenLo ln cul vlene aperLo un Lunnel e posslblle auLenLlcare chl sl Lrova dall'alLro capo. A Lal scopo
vlene condlvlso un "segreLo" che blsogna dlmosLrare dl conoscere per essere
auLenLlcaLl, secondo un meccanlsmo deLLo CPAÞ-llke. 1ale meccanlsmo conslsLe nella
spedlzlone dl 8 ad A (che vuole auLenLlcarsl) dl un numero 8 scelLo a caso all'lnLerno dl
un range abbasLanza amplo. 8 sl aspeLLa che A prenda 8, lo clfrl con la sua chlave
segreLa e gllelo rlspedlsca. ln Lal modo, se 8 declfrandolo rlLrova ll numero 8 che aveva
spedlLo ad A, allora e slcura dell'ldenLlLa della conLroparLe. una volLa superaLa quesLa
fase dl auLenLlcazlone le conLroparLl sl scamblano ll proprlo Loca|ID polche l LAC e gll
LnS numerano l Lunnel che vengono lnsLauraLl ln base agll ldenLlflcaLlvl che al momenLo erano dlsponlblll,
dl modo che uno sLesso Lunnel poLrebbe essere ldenLlflcaLo con due numerl dlfferenLl laLo-LAC e laLo-LnS.
ÞÞ1Þ (Þo|nt-to-Þo|nt Þrotoco|)

ll proLocollo ÞÞ1Þ e slmlle all'L21Þ appena vlsLo, l'unlca vera dlfferenza e che ll LAC e lnglobaLo all'lnLerno
della macchlna uLenLe. Culndl pol c'e un ÞNS - ÞÞ1Þ
Network Server, corrlspeLLlvo dell'LnS del
proLocollo L21Þ. ln parLlcolare ll faLLo che ll Lunnel
parLa dlreLLamenLe dalla macchlna uLenLe fa sl che
cl sla un unlco Lunnel daLl che sl apre dopo
l'lnsLaurazlone del canale dl conLrollo.
Anche ll ÞÞ1Þ prevede la spedlzlone aLLraverso ll
Lunnel dl frame ÞÞÞ, essendo un proLocollo dl
Lunnellng per reLl dl accesso che slmulano un
collegamenLo dl Llpo punLo-a-punLo Lra la macchlna uLenLe e ll vÞn CaLeway azlendale.
ll formaLo del frame ÞÞ1Þ per l messaggl dl conLrollo e ll seguenLe

dalla cul osservazlone sl può dedurre che l messaggl dl conLrollo ÞÞ1Þ vlagglano su una connesslone 1CÞ.
Þer quanLo rlguarda l messaggl dl daLl ll formaLo e lnvece ll seguenLe

l campl dell'lnLesLazlone ÞÞ1Þ sono lnflne l seguenLl

Lncrypt|on
Aprlamo ora una breve parenLesl rlguardo la clfraLura e come quesLa può essere usaLa per l'auLenLlcazlone,
per la prlvaLezza e l'lnLegrlLa del messaggl. laLLo quesLo sl poLra qulndl pol dlscuLere ll proLocollo lÞSec.
l probleml che sl rlescono ad affronLare uLlllzzando la clfraLura sono l seguenLl:

! k|servatezza: vogllo che l mlel messaggl, se anche fossero lnLerceLLaLl da una Lerzl, slano codlflcaLl
ln modo Lale da non rlsulLare a loro comprenslblll.
! Autent|caz|one: vogllo essere slcuro, duranLe uno scamblo dl daLl, che ll mlLLenLe dl quesLl ulLlml sla
realmenLe chl dlce dl essere.
! Integr|tà: vogllo essere slcuro che l messaggl che rlcevo non slano sLaLl manlpolaLl duranLe ll
LraglLLo sulla reLe. ua quesLo derlva la "non rlpudlablllLa", ovvero se sl rlesce a dlmosLrare che un
messagglo e lnLegro allora ll mlLLenLe non poLra rlpudlarlo (polche non e sLaLo manlpolaLo ne
duranLe ll percorso sulla reLe ne dopo la rlcezlone).
Ma come avvlene la clfraLura?
un messagglo 'm' (ln chlaro) vlene faLLo passare aLLraverso un meccanlsmo dl clfraLura che ha due lnpuL: ll
messagglo da clfrare e una chlave dl clfraLura k
L
. 1ale meccanlsmo alLro non e che un algorlLmo
maLemaLlco che produce come rlsulLaLo L(k
L
,m), che dl faLLo e quello che arrlva al desLlnaLarlo.
CuesL'ulLlmo opera un meccanlsmo dl declfraLura che prende ln lnpuL appunLo L(k
L
,m) plu una chlave dl
declfraLura. CuLpuL della declfraLura deve essere ll messagglo lnlzlale m.

ua noLare e che L, u, k
L
e k
u
devono essere scelLl ln manlera Lale che non solo resLlLulscano a desLlnazlone
m qualunque sla l'm dl parLenza, bensl anche Lall che se non sl conosce k
u
ma sl conosce LuLLo ll resLo non
sl rlesca a rlcavare m, oppure conoscendo m non sl rlesca a rlcavare k
u
. Se ne deduce che la slcurezza
dell'algorlLmo rlposa sul faLLo che la chlave k
u
deve essere segreLa, dl modo che l'algorlLmo maLemaLlco ln
se per se può anche essere pubbllco.
l meccanlsml dl crlLLografla possono essere dlsLlnLl ln due caLegorle:
! Meccan|sm| d| c|fratura a CnIAVL ÞU88LICA:
ln Lal caso le chlavl k
L
e k
u
sono dlverse, seppur legaLe Lra loro da una qualche relazlone
maLemaLlca. k
L
vlene reso pubbllco, menLre k
u
deve resLare segreLo. ln Lal modo LuLLl possono
scrlvere ad un cerLo desLlnaLarlo (clfrando l messaggl medlanLe la chlave pubbllca k
L
) ma dl faLLo
solo quesL'ulLlmo poLra leggere Lall messaggl essendo l'unlco a conoscenza della chlave dl
declfraLura k
u
. ual punLo dl vlsLa compuLazlonale Lale meccanlsmo e plu dlfflclle da reallzzare ma
presenLa una sempllflcazlone non lndlfferenLe per quanLo rlguarda la dlsLrlbuzlone delle chlavl.
! Meccan|sm| d| c|fratura a CnIAVL ÞkIVA1A:
ln quesLo caso rlsulLa che k
L
=k
u
, dl modo che appunLo k
L
deve rlmanere segreLa. ln vlrLu del faLLo
che la chlave usaLa per la clfraLura e uguale a quella usaLa per la declfraLura, Lall algorlLml vengono
anche deLLl "a chlave slmmeLrlca". ln parLlcolare quesLl sono molLo sempllcl da reallzzare (gran
parLe possono perflno essere reallzzaLl ln hardware) ma comporLano la dlfflcolLa dl dlsLrlbulre
segreLamenLe le copple dl chlavl aLLraverso la reLe.
ueLLo quesLo, al momenLo dell'aperLura dl una sesslone l'auLenLlcazlone della conLroparLe può essere faLLa
uLlllzzando un algorlLmo a chlave pubbllca (che e sl plu pesanLe, ma ln quesLa fase dl faLLo blsogna clfrare
solo plccoll blocchl dl daLl). una volLa effeLLuaLa l'auLenLlcazlone, duranLe la quale sara sLaLa avvlaLa la
condlvlslone dl un "segreLo comune" ln manlera slcura, e posslblle esLrarre una cerLa sequenza dl blL dal
"segreLo comune" medlanLe la quale generare una chlave prlvaLa slmmeLrlca. ua quesLo punLo ln pol sl
usera qulndl un meccanlsmo a chlave prlvaLa, ln vlrLu della sua magglore efflclenza.
l meccanlsml a chlave pubbllca godono della seguenLe proprleLa
u(k
u
,L(k
L
,m)) = m = L(k
L
,u(k
u
,m))
dove la parLe dl slnlsLra e uLlllzzablle per garanLlre rlservaLezza, menLre la parLe dl desLra per garanLlre
auLenLlcazlone e lnLegrlLa (polche solo u può scrlvere ll messagglo m ma LuLLl possono leggere e verlflcare
che m sla sLaLo scrlLLo correLLamenLe).
L'auLenLlcazlone può qulndl avvenlre nel modo seguenLe: A manda a 8 un feedback rlguardo la sua
ldenLlLa, cul 8 rlsponde lnvlando una "sflda" 8 (un numero scelLo a caso
ln un lnLervallo sufflclenLemenLe amplo). La rlsposLa aLLesa da 8 e 8
clfraLo con la chlave segreLa dl A, al quale appllchera la chlave pubbllca
dl A per vedere se quello che oLLlene e l'8 che aveva lnvlaLo pocanzl. ll
problema dl Lale meccanlsmo sLa nel modo ln cul 8 dovrebbe oLLenere
la chlave pubbllca dl A, polche chlunque poLrebbe lnLerporsl Lra A e 8
(dopo aver snlffaLo l'lnformazlone 8) fornendo a quesL'ulLlmo la proprla
chlave pubbllca. La soluzlone sLa nell'uLlllzzo dl cerLlflcaLl che aLLesLlno la corrlspondenza Lra una cerLa
chlave pubbllca e un l'lndlvlduo del quale sl ha blsogno dl verlflcare l'lndenLlLa.
La cosLruzlone dl un segreLo comune può lnvece avvenlre nel seguenLe modo: A e 8 scelgono a caso due
numerl x e y. A calcola k=(g
x
mod n) e 8
calcola P=(g
y
mod n) dopo dl che sl
scamblano Lale qunLlLa calcolaLa. un
fanLomaLlco lnLerceLLaLore che rlusclsse a
snlffare k, se anche sapesse quanLo
valgono g ed n, non rlusclrebbe a
calcolare x (non eslsLe un algorlLmo che
permeLLe dl rlsolvere quell'equazlone), lo
sLesso vale nel caso ln cul lnLerceLLasse P,
non rlusclrebbe a calcolare y. A, rlcevuLo
P, calcola (P
x
mod n)=(g
xy
mod n). 8, dal
canLo suo, rlcevuLo k calcola (k
y
mod n)=(g
xy
mod n). Culndl A e 8, seppur non a conoscenza ognuno del
numero scelLo dall'alLro (x/y), hanno dl faLLo calcolaLo una quanLlLa comune. ua Lale quanLlLa e posslblle
esLrarre una sequenza dl blL dalla quale rlchlavare la chlave
segreLa. Ad ognl sesslone dl comunlcazlone, al flnl della
slcurezza, Lale operazlone vlene rlpeLuLa.
lnflne vedlamo come e posslblle verlflcare l'lnLegrlLa dl un
messagglo: sl prende un messagglo m e lo sl fa passare
aLLraverso una funzlone dl Pash P che ne rlcava un
Message ulgesL (anche deLLo llngerprlnL) dl lunghezza
flssa. ll message dlgesL vlene clfraLo con la chlave segreLa dl
A e vlene pol concaLenaLo al messagglo m, e quesLo e
quello che glunge al desLlnaLarlo. 8 prlma dl LuLLo separa m dal message dlgesL, dopo dl che fa rlpassare m
nella funzlone dl Pash e declfra ll message dlgesL usando la chlave pubbllca dl A. Se l due rlsulLaLl oLLenuLl
da 8 sono ldenLlcl allora ll messagglo non e sLaLo alLeraLo. La proprleLa che deve avere la funzlone dl hash e
che, conoscendo ll flngerprlnL dl m, deve essere esLremamenLe dlfflclle rlusclre a generare un messagglo
m' che abbla quello sLesso flngerprlnL.


IÞSec
uno del probleml plu grossl delle vÞn e la fornlLura dl opporLune garanzle dl slcurezza. l prlnclpall probleml
che rlguardano la slcurezza possono essere schemaLlzzaLl ln:

! k|servatezza: e la capaclLa dl Lenere rlservaLa una comunlcazlone, nel caso dl comunlcazlonl non
proLeLLe un banale packeL snlffer posLo su una reLe azlendale e ln grado dl caLLurare LuLLo ll Lrafflco
che scorre Lra qualunque hosL, con le ovvle lmpllcazlonl sulla prlvaLezza della comunlcazlone.
! Integr|tà: e la capaclLa dl garanLlre che ln una comunlcazlone verranno recaplLaLl al desLlnaLarlo
esaLLamenLe l daLl spedlLl dal LrasmeLLlLore. CuesLo evlLa, ad esemplo, che una comunlcazlone
venga modlflcaLa all'lnsapuLa del due end-polnLs.
! Autent|caz|one: e la capaclLa dl asslcurarsl dell'ldenLlLa dell'alLro lnLerlocuLore. ll furLo dell'ldenLlLa,
ossla lo spacclarsl per qualcun'alLro complendo azlonl alla sua lnsapuLa (ad esemplo spacclarsl per ll
slLo web dl una banca, caLLurando qulndl l daLl degll uLenLl che sl rlvolgono onllne per fare
un'operazlone).

ll proLocollo IÞSec e una soluzlone proposLa ln amblLo lL1l che sl pone ad un llvello dl proLezlone
lnLermedlo Lra l'lÞ e l proLocolll dl llvello 4, permeLLendo la gesLlone della slcurezza su LuLLo ll payload lÞ e
alcunl campl del paccheLLo lÞ sLesso. L'lÞSec, vlsLo rlspeLLo all'lÞv4, e un proLocollo separaLo polche l
probleml dl slcurezza sono naLl ln un momenLo successlvo rlspeLLo alla sLandardlzzazlone del proLocollo lÞ.
Þer quanLo rlguarda l'lÞv6 lnvece le funzlonallLa dell'lÞSec sono sLaLe lncluse all'lnLerno della speclflca del
proLocollo sLesso.
lÞSec, avendo plu modallLa dl funzlonamenLo, deflnlsce un nuovo seL dl headers che devono essere
agglunLl al paccheLLo lÞ. CuesLl nuovl headers sono poslzlonaLl dopo l'header lÞ e prlma dell'header dl
llvello 4 e possono essere dl due Llpl:

! lnLesLazlone An (Autent|cat|on neader Þrotoco|): posLa Lra l'lnLesLazlone lÞ e ll carlco uLlle del
daLagram lÞ, asslcura l'lnLegrlLa e l'auLenLlcazlone del daLl, comprenslvl anche del campl non
varlablll (Source lÞ address, ...) all'lnLerno dell'header lÞ sLesso, menLre non fornlsce servlzl dl
confldenzlallLa. ul conseguenza se qualcuno rlusclsse a caLLurare del daLagram non poLrebbe
alLerarll, ma poLrebbe leggerne ll conLenuLo. Þer segnalare la presenza dl Lale lnLesLazlone nel
campo ÞroLocol dell'lnLesLazlone lÞ e lndlcaLo ll valore 31.
SosLanzlalmenLe l'lnLesLazlone AP conLlene:

! un ldenLlflcaLore dl una connesslone lÞSec, deLLa Secur|ty Assoc|at|on.
! ll message dlgesL del messagglo calcolaLo dal mlLLenLe e clfraLo uLlllzzando la sua chlave segreLa.
! un campo che speclflca dl che Llpo e ll nexL Peader (1CÞ,uuÞ,lCMÞ).



! lnLesLazlone LSÞ: asslcura confldenzlallLa, lnLegrlLa e auLenLlcazlone. A dlfferenza dell'AP, l'lnLegrlLa
non comprende l campl lnvarlanLl all'lnLerno dell'header lÞ. ln quesLo caso olLre all'header vlene
plazzaLo anche un Lraller che funge da paddlng, dl modo che ll daLagram ragglunga una lunghezza
che sla mulLlplo dl una cerLa quanLlLa. uopo ll Lraller lnolLre vl e qualcosa dl slmlle all'lnLesLazlone
AP, che conLlene ll flngerprlnL del daLl clfraLo con la chlave segreLa del mlLLenLe (per fornlre
auLenLlcazlone del mlLLenLe). Þer segnalare la presenza dl un'lnLesLazlone LSÞ nel campo ÞroLocol
dell'lnLesLazlone lÞ e lndlcaLo ll valore 30.



CuesLl due Llpl dl headers possono essere uLlllzzaLl lndlpendenLemenLe uno dall'alLro e possono addlrlLLura
essere uLlllzzaLl conLemporaneamenLe (anche se e un caso pluLLosLo raro). ua plu parLl sl sosLlene che ll
proLocollo AP sla ln realLa rldondanLe, ln quanLo la sLessa funzlonallLa e coperLa anche da LSÞ. 1uLLavla ll
worklng group ln lL1l ha rlLenuLo necessarla la sLandardlzzazlone dl ambedue le modallLa.
lÞSec non deflnlsce l'algorlLmo dl slcurezza (clfraLura, ...) speclflco da uLlllzzare ma fornlsce un modo per
lndlcare qual e l'algorlLmo prescelLo, consenLendo l'uLlllzzo degll algorlLml plu consonl alle eslgenze del
momenLo. Ad esemplo l'lnLegrlLa vlene normalmenLe conLrollaLa facendo uso degll algorlLmo Mu3 (8SA
uaLa SecurlLy) o SPA (Secure Pash AlgorlLhm), menLre la crlLLografla e spesso faLLa medlanLe uLS (uaLa
LncrypLlon SLandard). Lo sLandard prevede comunque anche gll algorlLml luLA, 8lowflsh e 8C4. SLanLe la
dlversa complesslLa compuLazlonale Lra gll algorlLml a chlave pubbllca e quelll slmmeLrlcl, lÞSec uLlllzza l
prlml solamenLe nella fase dello scamblo delle chlavl (auLenLlcazlone della conLroparLe), qulndl vlene
negozlaLa una chlave dl sesslone che verra uLlllzzaLa dagll algorlLml Lradlzlonall per la crlLLografla del
canale.

SposLlamo ora la nosLra aLLenzlone sugll aspeLLl del proLocollo lÞSec lnerenLl ll suo uLlllzzo all'lnLerno delle
vÞn. Come e faclle lmmaglnare un canale lÞSec vlene sLablllLo Lra due vÞn CaLeway. Þolche l'lÞSec e un
proLocollo abbasLanza compllcaLo da manegglare, sl presLa all'uLlllzzo con conflgurazlonl vÞn dl Llpo slLe-
Lo-slLe. ln vÞn d'accesso lnfaLLl la macchlna uLenLe dovrebbe sobbarcarsl l'onore della creazlone e
conflgurazlone del Lunnel lÞSec, che e un'operazlone che ha una cerLa complesslLa. l servlzl fornlLl vanno
dall'lncapsulamenLo alla crlLLografla del carlco daLl, all'auLenLlcazlone del mlLLenLe.


lÞSec supporLa due modallLa operaLlve:
! 1kANSÞCk1 MCDL:
prevede che venga conslderaLo solamenLe ll payload lÞ, lasclando lnLaLLo l'header lÞ orlglnale.
CuesLa modallLa ha ll preglo dl lnserlre un basso overhead (pochl byLes per ognl paccheLLo) e dl
lasclare lnalLeraLo l'header lÞ, uLlle ad esemplo per fornlre un mlnlmo quallLa del servlzlo al
paccheLLl ln LranslLo ln quanLo almeno gll lndlrlzzl lÞ sorgenLe e desLlnazlone sono lasclaLl ln chlaro.
Sla "LransporL daLa" un segmenLo 1CÞ o uuÞ, sl può usare ad esemplo dlreLLamenLe l'LSÞ (ll blocco
del daLl provenlenLl dal llvello superlore vlene lnfaLLl lnserlLo Lra un'lnLesLazlone ed una coda). ll
LuLLo vlene pol lnserlLo ln un paccheLLo lÞ. L'lnLesLazlone lÞ loglcamenLe non può essere clfraLa,
polche ln Lal caso non sarebbe legglblle anche al rouLer, che però hanno blsogno delle lnformazlonl
conLenuLe per effeLLuare l'lnsLradamenLo del paccheLLl.



! 1UNNLL MCDL:
prevede che l'lnLero paccheLLo lÞ venga crlpLaLo, dlvenLando a sua volLa ll payload dl un nuovo
paccheLLo lÞ generaLo ex-novo. CuesLa modallLa e declsamenLe plu slcura (lo snlfflng e
praLlcamenLe lnuLlle ln quanLo non c'e modo dl rlsallre al verl mlLLenLe e desLlnaLarlo del
paccheLLo) e offre la posslblllLa ad una enLlLa lnLermedla (ad esemplo un rouLer) dl aLLlvare lÞSec
sul paccheLLl ln LranslLo per conLo del cllenL. lnfaLLl ll nuovo paccheLLo avra un nuovo header lÞ,
conLenenLe l due esLreml del Lunnel come lndlrlzzl lÞ sorgenLe e desLlnazlone, consenLendo qulndl
la crlLLografla a chlave pubbllca a nome del rouLer lnLermedlo. Crazle al suol vanLaggl dl
conflgurazlone, ll 1unnel Mode e usaLo plu spesso del 1ransporL Mode.



vedlamo qulndl un esemplo dl uLlllzzo dl Lale modallLa: supponlamo dl avere due Lronconl dl reLe
prlvaLa Lra l quall sara aperLa una connesslone. All'alLezza del vÞn CaLeway laLo mlLLenLe vlene
esegulLo, come descrlLLo pocanzl, l'lncapsulamenLo del daLl da spedlre aLLraverso la SecurlLy
AssoclaLlon (Lunnel basaLo su lÞSec) verso ll vÞn CaLeway dl desLlnazlone. nell'lnLesLazlone lÞ plu
esLerna gll lndlrlzzl mlLLenLe-desLlnaLarlo saranno quelll del due vÞn CaLeway, menLre
l'lnformazlone sul verl mlLLenLe-desLlnaLarlo all'lnLerno della vÞn e lndlcaLa nell'lnLesLazlone lÞ plu
lnLerna. CuesL'ulLlma, ln vlrLu del meccanlsml lÞSec, una volLa nel Lunnel, sara clfraLa e qulndl
lllegglblle a chlunque rlusclsse a lnLerceLLare ll daLagram sulla reLe pubbllca. A desLlnazlone vlene
effeLLuaLa l'operazlone lnversa, l daLl vengono esLraLLl e ne vlene verlflcaLa l'lnLegrlLa medlanLe ll
meccanlsmo del flngerprlnL. una volLa aLLesLaLa l'lnLegrlLa del messagglo, ll daLagram lÞ vlene
lmmesso sul segmenLo prlvaLo della reLe.



Come gla accennaLo, lÞSec sl basa su delle connesslonl vlrLuall deflnlLe SA - Secur|ty Assoc|at|on che
possono essere deflnlLe come una relazlone Lra due o plu enLlLa che descrlve come quesLe uLlllzzano l
servlzl dl slcurezza per comunlcare. La SA e unldlrezlonale, ll che slgnlflca che per una normale
comunlcazlone (bldlrezlonale) servlranno due SA dlsLlnLe. Cgnl qualvolLa sl voglla sLablllre una SA e prlma
necessarlo auLenLlcarsl ed aprlre una SA dl conLrollo.
Come lllusLraLo dalla flgura soLLosLanLe, le lnformazlonl necessarle per l'uLlllzzo della securlLy assoclaLlon
sono, laLo mlLLenLe, le seguenLl:

! desLlnaLarlo della securlLy assoclaLlon
! proLocollo uLlllzzaLo (nell' esemplo e 1unnel Mode con lnLesLazlone LSÞ)
! Llpo dl algorlLmo dl Pash usaLo per ll calcolo del flngerprlnL (SPA-1) e la chlave segreLa (x
S
) usaLa
per la clfraLura dl quesL'ulLlmo.
! l'algorlLmo dl clfraLura (uLS) usaLo per l paccheLLl ln usclLa e la relaLlva chlave segreLa (y)

A desLlnazlone, per la medeslma securlLy assoclaLlon, 8 deve essere a conoscenza delle seguenLl
lnformazlonl:

! mlLLenLe della securlLy assoclaLlon
! proLocollo uLlllzzaLo
! algorlLmo dl Pash uLlllzzaLo e chlave pubbllca x
Þ
per la verlflca dl quesL'ulLlmo
! algorlLmo dl clfraLura uLlllzzaLo e relaLlva chlave segreLa (y, uguale a quella dl clfraLura) per la
declfraLura

Ma come avvlene la condlvlslone del parameLrl comunl?
LslsLe un proLocollo apposlLo, uLlllzzaLo per l'aperLura e la manuLenzlone delle SecurlLy AssoclaLlon, deLLo
IkL- Internet key Lxchange. Lsso prevede che lnnanzlLuLLo venga sLablllLa una securlLy assoclaLlon Lra
mlLLenLe e desLlnaLarlo, all'lnLerno della quale vengono scamblaLl una serle dl messaggl per far parLlre alLre
securlLy assoclaLlon, uLlllzzaLe per ll LrasferlmenLo del daLl verl e proprl.
LvenLuall chlavl che saranno uLlllzzaLe ln quesLe ulLlme sono esLraLLe da un segreLo comune sLablllLo
all'lnLerno della SecurlLy
AssoclaLlon lnlzlale (dl
conLrollo).
Ma come vlene sLablllLa la SA
dl conLrollo? Sl uLlllzza ll
proLocollo ISAkMÞ - Internet
Secur|ty Assoc|at|on key
Management Þrotoco|, ln
base al quale lnlzlalmenLe ll
mlLLenLe spedlsce al
desLlnaLarlo due gruppl dl parameLrl opzlonall (lnerenLl l'algorlLmo a chlave segreLa, l'algorlLmo per ll
calcolo dell'hash, ll meccanlsmo sul quale basare ll segreLo comune e ll meccanlsmo per l'auLenLlcazlone
reclproca). ll desLlnaLarlo comunlca quale del due gruppl preferlsce. A quesLo punLo qulndl sl scamblano le
proprle chlavl pubbllche con cerLlflcaLo, ln modo da poLer accerLare l'ldenLlLa l'uno dell'alLro. Cl sl scambla
lnflne del daLl flrmaLl per l'auLenLlcazlone (ad esemplo può essere usaLo ll meccanlsmo dl sflda LraLLaLo
precedenLemenLe).

vedlamo ora come l meccanlsml descrlLLl lnLeraglscono con llrewall, nA1 e vÞn CaLeway.
Þer quanLo rlguarda l llrewall e l vÞn CaLeway, Lall apparaLl sono dl sollLo plazzaLl nel punLl dl conLaLLo Lra
la reLe pubbllca e una reLe prlvaLa. LslsLono quaLLro posslblll conflgurazlonl che possono essere rlsconLraLe:

! INSIDL:
ll flrewall e messo a proLezlone del vÞn CaLeway. ll problema dl Lale conflgurazlone sLa nel faLLo
che ll flrewall sl Lrova lmposslblllLaLo ad appllcare le proprle regole dl fllLragglo polche non rlesce a
leggere l verl lndlrlzzl mlLLenLe e desLlnaLarlo del daLagram ln arrlvo. CuesLo dlpende dal faLLo che
ln 1unnel Mode Lall lndlrlzzl sono speclflcaLl nell'lnLesLazlone lÞ plu lnLerna, che e clfraLa e qulndl
non legglblle. nell'lnLesLazlone lÞ plu esLerna sono lndlcaLl solo gll lndlrlzzl mlLLenLe-desLlnaLarlo del
due vÞn CaLeway che reallzzano ll Lunnel fungendo da 1LÞ. ll vanLagglo dl Lale conflgurazlone e
lnvece che ll vÞn CaLeway può essere proLeLLo da messaggl lnvlaLl per reallzzare un aLLacco dl Llpo
uenlal-of-servlce.
! ÞAkALLLL:
l flle provenlenLl dalla reLe vengono conLrollaLl ln parallelo dal vÞn CaLeway e dal llrewall. 1ale
conflgurazlone presenLa evldenLl llmlLl, polche ancora ll flrewall non e ln grado dl reperlre le
lnformazlonl per aLLuare ll fllLragglo e ll vÞn CaLeway vlene oberaLo dl lavoro per esamlnare l
daLagram ln arrlvo.
! CU1SIDL:
ll llrwall e posLo dleLro ll vÞn CaLeway (lnverso rlspeLLo alla conflgurazlone lnSluL). ln quesLo caso
ll lrewall e capace dl vedere l verl lndlrlzzl mlLLenLe-desLlnaLarlo polche l daLagram, aLLraversando ll
vÞn CaLeway, sono sLaLl declfraLl e sono sLaLe ellmlnaLe l'lnLeLazlonl plu esLerne (che rellzzavano
l'lncapsulamenLo necessarlo per ll LrasporLo all'lnLerno del Lunnel). LlaspeLLo negaLlvo e che ll vÞn
CaLeway sara oberaLo dl lavoro polche l daLagram che gll arrlvano non sono sLaLl fllLraLl a monLe.
! IN1LGkA1LD:
e la conflgurazlone che garanLlsce la magglor flesslblllLa, ed e qulndl quella plu adoLLaLa. llrewall,
vÞn CaLeway e 8ouLer sono lnLegraLl all'lnLerno dl una sLessa macchlna. ln Lal modo l fllLraggl ad
opera del flrewall possono essere effeLLuaLl una parLe prlma e un'alLra parLe dopo l'esLrazlone del
carlco daLl dal daLagram (declfraLura, rlmozlone lnLesLazlonl..). 1ale conflgurazlone garanLlsce
qulndl sla proLezlone del vÞn CaLeway che fllLragglo del Lrafflco lnLerno alla reLe locale.

vedlamo lnvece ora come sl comporLano l nA1 con l 1unnel e con l'lÞSec:

! sl e ln precedenza splegaLo che ln caso dl uLlllzzo dell'An- Authent|cat|on neader, ll daLagram
orlglnale vlene soLLoposLo al calcolo del flngerprlnL. CuesL'ulLlmo vlene clfraLo uLlllzzando la chlave
segreLa del mlLLenLe e ll LuLLo vlene posLo all'lnLerno dell'AuLhenLlcaLlon Peader. Se un daLagram
cosl reallzzaLo passa aLLraverso un nA1 (per esemplo uscendo dalla reLe locale verso quella
pubbllca) succede che quesL'ulLlmo cambla l'lndlrlzzo mlLLenLe ponendovl l'unlco lndlrlzzo pubbllco
a sua dlsposlzlone. ul conseguenza a desLlnazlone, andando a rlcalcolare ll flngerprlnL, verra
rlsconLraLa una falsa non lnLegrlLa del messagglo e quesLo verra dunque scarLaLo.
! se e uLlllzzaLa la 1ransport Mode ll problema e ll medeslmo, polche anche quesLa volLa ll nA1
modlflca l'lnLesLazlone del daLagram. l conLrolll dl lnLegrlLa effeLLuaLl a desLlnazlone porLano qulndl
a far sl che ll paccheLLo venga scarLaLo.

una posslblle soluzlone a Lale problema e plazzare ll nA1 prlma dell'lnlzlo del Lunnel lÞSec. ln Lal modo ll
nA1 puo' effeLLuare le converslonl dl lndlrlzzl rlhlesLe nell'lnLesLazlone del daLagram prlma che quesLo
venga lmmesso nel Lunnel lÞSec. ul conseguenza ll daLagram a desLlnazlone non verra rlsconLraLo come
alLeraLo. da noLare e però che Lale soluzlone e vallda solo se ll daLagram effeLLlvamenLe parLe dal nA1,
ovvero se ll daLagram non arrlva al nA1 come punLo lnLermedlo del suo percorso. ln Lal caso ll daLagram e
gla LuLLo formaLo e ll nA1 e lmposslblllLaLo ad effeLLuare le converslonl che gll compeLono.


VÞN Gateway e IDS
AlLro modo per fare un anallsl del Lrafflco e medlanLe gll IDS - Intrus|on Detect|on System, che però usano
un approcclo dlverso rlspeLLo a quello del llrewall. CuesLl ulLlml sl basano LendenzlalmenLe sulle
lnformazlonl conLenuLe nelle lnLesLazlonl lÞ e ln quelle 1CÞ/uuÞ/lCMÞ e le regole dl fllLragglo sono del Llpo
"non permeLLere l'aperLura dl una connesslone 1CÞ verso una macchlna all'lnLerno a meno che non abbla
un parLlcolare lndlrlzzo lÞ". ln Lal caso ll flrewall andra a conLrollare l'lndlrlzzo del desLlnaLarlo all'lnLerno
dell'lnLesLazlone lÞ, se ll Llpo dl proLocollo conLenuLo all'lnLerno del daLagram e 1CÞ e nell'lnLesLazlone 1CÞ
se ll flag S?n=1 e quello lLAC=0 (se l flag sono seLLaLl ln quesLo modo sl LraLLa dl un paccheLLo dl rlchlesLa
dl aperLura dl una connesslone 1CÞ). L'luS lnvece sl occupa dl guardare alLro, ad esemplo se e ln aLLo un
porL scan o un address scan (meccanlsmo usaLo per LenLare dl lnsLallare un processo soLLo conLrollo dl una
macchlna remoLa, dal quale parLlra pol un aLLacco verso Lerzl), oppure sl può andare a conLrollare la mole
dl Lrafflco generaLa da un
lndlrlzzo lÞ. Culndl l'luS non
effeLLua una scanslone e fllLragglo
del Lrafflco, bensl ne anallzza gll
aspeLLl plu preLLamenLe sLaLlsLlcl.
Cll luS vengono dl sollLo plazzaLl
fuorl dal flrewall, dl modo che quesLl ulLlml rlsulLlno ln qualche modo proLeLLl. Se fossero plazzaLl solo al dl
fuorl della vÞn a monLe del llrewall però non sl rlusclrebbe dl faLLo a caplre che sLa succedendo all'lnLerno
del Lrafflco della vÞn. ne consegue che anche ln quesLo caso la soluzlone mlgllore e plazzare le sonde dell'
luS (meccanlsml uLlllzzaLl per splllare del Lrafflco che sara pol anallzzaLo) un parLe prlma del vÞn CaLeway-
llrewall e un parLe dopo, ln modo da rlusclre ad anallzzare un pò sla ll Lrafflco prlma che esca dal Lunnel
che quello che sLa per enLrare nella reLe prlvaLa. ua noLare e che un luS, rllevaLa un'anomalla, dl sollLo non
lnLervlene aLLlvamenLe, bensl sl llmlLa a noLlflcare la cosa. L' lnfaLLl posslblle che, basandosl unlcamenLe su
anallsl sLaLlsLlche del Lrafflco, l'luS rlconosca come anomalla un comporLamenLo che lnvece non lo e. ul
conseguenza e molLo megllo affldare la declslone se lnLervenlre manualmenLe o no ad un operaLore
umano.

ll flgura sono rlporLaLl l formaLl dl lmbusLamenLo del paccheLLl lÞSec nel varl casl, sla per lÞv4 che per lÞv6.
L' posslblle noLare come l'lmbusLamenLo sla molLo slmlle ln ambedue l casl, l'unlca parLlcolarlLa sl può
Lrovare ln lÞv6 a proposlLo degll LxLenslon Peaders. nel caso dl 1ransporL Mode, alcunl LP del paccheLLo
orlglnale vlagglano ln chlaro (fondamenLalmenLe quelll che possono essere uLlll/modlflcablll) duranLe ll
percorso del paccheLLo, ad esemplo l'Pop 8y Pop rouLlng), menLre alLrl vlagglano crlpLaLl (quelll che hanno
lmporLanza solo per l'hosL dl desLlnazlone. nel caso dl 1unnel mode, vlceversa, cl sono due seL dlsLlnLl dl
LxLenslon Peaders, ll prlmo rlferlLo alla nuova busLa lÞv6 (creaLa dall'hosL che crea ll Lunnel), ll secondo
quello del paccheLLo orlglnarlo. ll prlmo LP vlaggla compleLamenLe ln chlaro menLre ll secondo vlene
auLenLlcaLo/crlpLaLo compleLamenLe.







SSL VÞN:
V|rtua| Þr|vate Netwoks based on Secure Socket Layer


Þasslamo ora a LraLLare le vÞn cosLrulLe su llvelll superlorl al Lerzo (llvello lÞ). llnora lnfaLLl sono sLaLl vlsLl
Lunnel cosLrulLl o su llvello 2 o su llvello 3.
Cuando sl LraLLa dl cosLrulre una vÞn a llvello 4 la cosa che sl fa e aprlre delle connesslonl SSL - Secure
Socket Layer, qulndl ll Lunnel corrlsponde all'aperLura dl una connesslone 1CÞ con SSL. CuesL'ulLlmo
fornlsce obbllgaLorlamenLe l'auLenLlcazlone del Server e opzlonalmenLe l'auLenLlcazlone anche del cllenL,
nonche la clfraLura del daLl che passano aLLraverso la connesslone 1CÞ. Culndl SSL dlvenLa ll meccanlsmo dl
lncapsulamenLo del Lunnel cosLrulLl a llvello 4. Cvvero sosLanzllamenLe l daLl che vlagglano su Lall Lunnel
presenLeranno ad esemplo ll seguenLe formaLo






CuesLo meccanlsmo con 1CÞ+SSL può essere usaLo per
! vÞn dl Llpo SlLe-Lo-SlLe
! vÞn per accesso remoLo
! servlzl slcurl, polche SSL clfra l daLl e auLenLlca la conLroparLe

ua noLare e che uLlllzzando Lale meccanlsmo sl poLrebbero reallzzare delle ÞSLUDC-VÞN. nell'esemplo dl
lmpaccheLLamenLo lllusLraLo precedenLemenLe e chlaro che ll canale SSL e uLlllzzaLo per slmulare un canale
dl Llpo punLo-a-punLo (lnfaLLl l'header dl llvello 2 del carlco daLl e un header ÞÞÞ). ln alLernaLlva sl poLrebbe
però aprlre la connesslone SSL dlreLLamenLe verso ll Server con ll quale cl sl vuole collegare, ll rlsulLaLo e la
cosLruzlone dl una vÞn, della quale fanno però parLe solo l cllenLl e l server ll cul accesso sl vuole sla
slcuro. ln quesLo caso sl e sollLl parlare dl Þseudo-vÞn, polche ll conceLLo dl reLe prlvaLa sfuma.
Þer splegare Lale conceLLo posslamo ad esemplo lpoLlzzare che a bordo dl una sLessa macchlna slano ln
funzlone due server dlsLlnLl A e 8. ln vlrLu del faLLo che l'lÞ lndlrlzza le lnLerfaccle menLre 1CÞ lndlrlzza l
processl, e posslblle che sla ln uso una conflgurazlone Lale che ad un cerLo cllenL C sla permessa una
connesslone slcura solo ad uno del due server. ll conflne della vÞn qulndl passa all'lnLerno della macchlna,
alcunl processl sono fuorl la vÞn e alLrl denLro.
Se ne deduce che, lnLesa ln quesLo senso, una vÞn può essere vlsLa come un collegamenLo Lra un gruppo
dl processl (appllcazlonl) ln comunlcazlone Lra loro e che non vogllono essere dlsLurbaLl da alLrl processl
che glrano all'lnLerno della sLessa reLe. Ad un llvello un pò superlore dl asLrazlone sl può qulndl affermare
nLADLk LIV.2 nLADLk IÞ nLADLk 1CÞ nLADLk ÞÞÞ nLADLk IÞ nLADLk UDÞ DA1I

IN1LS1A2ICNL ÞLk VIAGGIAkL
SUL 1UNNLL
CAkICC DLL SLGMLN1C 1CÞ CnL VIAGGIA SUL
1UNNLL
(CuesLa parLe vlene clfraLa non appena superaLa la
fase dl auLenLlcazlone)
che, menLre le vÞn basaLe su lÞSec collegano Lra dl loro reLl locall oppure hosLs a reLl locall, quelle basaLe
su SSn meLLono ln comunlcazlone uLenLl con servlzl (processl Server).
Ma per quale moLlvo sl dovrebbe preferlre la cosLruzlone dl Lunnel a llv4?
La moLlvazlone prlnclpale e che ln Lal modo sl può evlLare dl uLlllzzare l'lÞSec (Lroppo complesso dal punLo
dl vlsLa della gesLlone e della conflgurazlone), polche l'accopplaLa 1CÞ+SSL e ln grado dl fornlre le
medeslme funzlonallLa dl slcurezza. lnolLre l'lÞSec opera ln kernel space, moLlvo per cul un evenLuale crash
e faclle che sl propaghl anche ad alLre appllcazlonl, l proLocolll dl llvello 4 operano lnvece ln user space.
AlLra moLlvazlone e che cosLruendo Lunnel con 1CÞ+SSL non sl rlsconLrano probleml per quanLo rlguarda
l'aLLraversamenLo del nA1 polche, a dlfferenza dl quanLo accade con lÞSec, le lnLesLazlonl lÞ e 1CÞ non
sono clfraLe e qulndl vlslblll al nA1. 1all lnLesLazlonl lnolLre non sono neanche proLeLLe dal calcolo del
flngerprlnL, moLlvo per cul ll nA1 può modlflcarle senza che clò causl probleml a desLlnazlone (ll messagglo
sara valuLaLo lnLegro). Meno dlfflcolLa sl rlsconLra anche nell'aLLraversamenLo del flrewall, che sollLamenLe
Lendono a bloccare l segmenLl uuÞ.
ll rovesclo della medaglla e che paccheLLl che per qualche moLlvo devono essere scarLaLl, saranno ln ognl
caso elaboraLl flno al llvello 4 prlma che sl caplsca che effeLLlvamenLe non devono essere acceLLaLl, e clò
causa un noLevole spreco dal punLo dl vlsLa della poLenza dl elaborazlone.
nel caso dl Þseudo-vÞn lnvece ll vanLagglo e che non e necessarla alcuna lnsLallazlone dl codlce cllenLe
polche sl può usufrulre del servlzl uLlllzzando un cllenL sLandard, ad esemplo ll 8rowser (che può
all'occorrenza avvalersl dl un proxy per comunlcare con ll processo).

Cuando dl parla dl Þseudo-vÞn sollLamenLe l meccanlsml che possono essere usaLl per crearle sono l
seguenLl:

! Web Þroxy|ng:
ll Web Server non e ablllLaLo per l'uso dell' P11ÞS. ln quesLo caso ll cllenL può uLlllzzare P11ÞS
proLocollo flno ad un vÞn CaLeway (che ln praLlca sarebbe un Þroxy) che, verlflcaLa la slcurezza sul
collegamenLo Lra lul e ll cllenL , fa pol vlagglare l messaggl verso ll Web Server con meccanlsml non
proLeLLl (polche essendo all'lnLerno della reLe prlvaLa non e plu rlchlesLa proLezlone).



! App||cat|on trans|at|on:
vlene usaLo P11ÞS flno al vÞn CaLeway, dopo dl che e ln uso un proLocollo compleLamenLe dlverso,
ad esemplo ll ÞCÞ3. ll slsLema lnLermedlo declfra l messaggl dl rlchlesLa P11ÞS e ll Lrasforma ln
messaggl dl rlchlesLa ÞCÞ3, rlceve l messaggl dl rlsposLa ÞCÞ3 dal Mall Server e ll converLe ln
messaggl dl rlsposLa P11ÞS da resLlLulre al cllenL. un Lale scenarlo sl può presenLare ad esemplo
uLlllzzando la Web mall.

! Þort forward|ng:
sl basa sull'eslsLenza dl un parLlcolare processo che rlceve delle rlchlesLe su una porLa (1CÞ/uuÞ) e
le rlspedlsce su un'alLra porLa. SollLamenLe Lale funzlonallLa e lmplemenLaLa a bordo del cllenL
medlanLe un sofLware addlzlonale.
Þer esemplo nella seguenLe lmmaglne



ll ÞorL lorwarder sl Lrova all'lnLerno della macchlna del cllenLe. Supponendo che nel cllenL sla ln
esecuzlone un sofLware per ÞCÞ3, quesLo Lende ad lndlrlzzare le sue connesslonl verso la porLa 110,
well known porL su cul sono ln ascolLo l Server ÞCÞ3. nel caso speclflco però sl vuole arrlvare alla
macchlna remoLa uLlllzzando l'P11ÞS, dl modo che l paccheLLl generaLl dal cllenL ÞCÞ3 vengono
lnolLraLl verso una porLa 110 locale del ÞorL lorwarder, che ll rlspedlra alla macchlna remoLa
usando la porLa 443 (well known porL per l Server P11ÞS).
ln alLernaLlva ll porL forwandlng può essere faLLo sul laLo del Server



alla macchlna remoLa arrlvano messaggl sulla porLa 443. 1all messaggl vengono spaccheLLaLl (per
esegulre l conLrolll dl slcurezza) e rlspedlLl sulla porLa 110 del Server desLlnaLarlo.

Þroblema del porL forwardlng e che funzlona solo con quel proLocolll che uLlllzzano delle porLe
flsse. AlLrl proLocolll, ad esemplo l'l1Þ, che uLlllzzano una porLa preflssaLa sul Server per sLablllre la
connesslone dl conLrollo, ma delle porLe declse al volo per le connesslonl sulle quall sara effeLLuaLo
ll LrasferlmenLo del daLl. ll numero dl porLa sul cllenL loglcamenLe non e un problema, polche la
prlma mossa speLLa a quesL'ulLlmo e ll numero della porLa uLlllzzaLa per la connesslone e reso noLo
al Server lndlcandola all'lnLerno del prlmo messagglo. ul conseguenza ll problema del numerl dl
porLa declsl al volo sl concreLlzza nel momenLo ln cul e ll Server che fa rlchlesLa al cllenL per
l'aperLura della daLa connecLlon, polche ll ÞorL lorwarder non conosce ll numero dl porLa,
dlfferenLe da quello usaLo per la conLrol connecLlon, che e sLaLo declso a bordo del cllenL. Þer
rlusclre a rlsolvere Lale problema e necessarlo uLlllzzare un AppllcaLlon Layer CaLeway che, essendo
ln grado dl leggere ed lnLerpreLare l campl dl llvello appllcazlone nel messaggl, e ln grado dl caplre
quando ll cllenL ad esemplo comunlca qual'e ll numero della porLa che sLa uLlllzzando per la
connesslone.

! SSL'ed protoco|s:
ora come ora molLl proLocolll hanno una verslone che usa dlreLLamenLe l'SSL. Cuello che cambla,
olLre al faLLo che nella fase dl lnsLaurazlone della connesslone hanno luogo l meccanlsml proprl
dell'SSL, e la porLa verso la quale devono essere lndlrlzzaLe le rlchlesLe (per esemplo nel caso del
ÞCÞS dlvenLa 993).

! App||cat|on Þroxy|ng:
ln quesLo caso vlene uLlllzzaLo un Þroxy per la gesLlone del meccanlsml dl slcurezza per quanLo
rlguarda la connesslone lnsLauraLa con ll cllenL. una volLa aperLa la connesslone slcura ll proxy non
fa alLro che prendere l messaggl che gll arrlvano e rlLrasmeLLerll verso ll Server nel loro formaLo dl
proLocollo non proLeLLo (per esemplo l messaggl ÞCÞS che gll arrlvano ll rlLrasmeLLe su ÞCÞ).















1CÞ ÞCk1 99S
1CÞ ÞCk1 110
Lserc|z|
VÞN - V|rtua| Þr|vate Network

Lserc|z|o 1
uaLa la caLLura ln flgura e assumendo dl conslderare una vÞn dl accesso alla reLe 130.192.223.0/24:

1. La caLLura rlporLaLa rlsulLa compleLa dal punLo dl vlsLa del paccheLLl scamblaLl per l'lnsLaurazlone della
connesslone? MoLlvare la rlsposLa.
2. Che Llpo dl auLenLlcazlone (se presenLe) vlene uLlllzzaLa?
3. lndlcare l'lndlrlzzo lÞ del vÞn cllenL (prlma dell'lnsLaurazlone della connesslone).
4. lndlcare l'lndlrlzzo lÞ del gaLeway.
S. ln base a quanLo rlporLaLo nella caLLura, l'accesso a lnLerneL rlsulLa cenLrallzzaLo o dlsLrlbulLo? MoLlvare
la rlsposLa.
6. uescrlvere schemaLlcamenLe ll percorso segulLo dal paccheLLl dl Lrafflco.

n.8. L'anallzzaLore ha salLaLo un paccheLLo dl "ÞÞ1Þ CuLgolng -Call-8equesL" ln poslzlone 3.
Sl LraLLa dl una reLe d'accesso, qulndl una slngola macchlna che sLa aprendo un Lunnel verso una macchlna
remoLa che funge da vÞn CaLeway.
1. Sl sLa usando ll ÞÞ1Þ per lnsLaurare ll Lunnel verso ll vÞn CaLeway. ll prlmo paccheLLo e un "SLarL-
ConLrol-ConnecLlon-8equesL" polche nel ÞÞ1Þ per aprlre un Lunnel blsogna prlma aprlre una connesslone
dl conLrollo, dopo dl che su Lale connesslone sl fanno passare del comandl per aprlre la daLa-connecLlon.
uopo dl che a chludere la coppla vl e la rlsposLa provenlenLe dal vÞn CaLeway "SLarL-ConLrol-ConnecLlon-
8eply". A quesLo punLo un'alLra coppla "CuLgolng-Call-8equesL" - "CuLgolng-Call-8eply" che denoLa
l'aperLura dl un Lunnel daLl fra ll cllenL e ll vÞn CaLeway. A Lal proposlLo segue ll messagglo dl conLrollo
"SeL-Llnk-lnfo", usaLo per seLLare alcunl parameLrl della connesslone daLl appena lnsLauraLa (Lale
messagglo può anche non essere presenLe se non e necessarlo). 1ermlnano qul l messaggl dl conLrollo
ÞÞ1Þ e l pacheLLl da qul ln pol passano LuLLl sul Lunnel. lnfaLLl, olLre all'lnLesLazlone lÞ, e lndlcaLa la
presenza anche delle lnLesLazlonl C8L,ÞÞÞ e LCÞ. LCÞ, Llnk ConLrol ÞroLocol, e una fase lnlzlale del ÞÞ1Þ e
vlene usaLo per sLablllre alcunl parameLrl per la comunlcazlone su ÞÞÞ. La presenza dell'lnLesLazlone CPAÞ
lndlca lnvece che a quesLo punLo sl passa ad una fase dl auLenLlcazlone reclproca. Segue la presenza dl
lnLesLazlonl lÞCÞ (lÞ ConLrol ÞroLocol) che denoLa una fase nella quale vengono seLLaLl alcunl parameLrl
relaLlvl all'lÞ su ÞÞÞ. ln parLlcolare vlene aLLrlbulLo al cllenLe un lndlrlzzo lÞ. ual paccheLLo 19 ln pol
Lrovlamo delle rlchlesLe P11Þ, quesLe palesemenLe non vlagglano sul Lunnel, vlsLa la mancanza dl
lnLesLazlonl C8L e ÞÞÞ. La medeslma conslderazlone può essere faLLa anche osservando che ll desLlnaLarlo
dl Lall paccheLLl non e ll 1unnel Lnd ÞolnL (vÞn CaLeway) con cul era sLaLa aperLa una connesslone
lnlzlalmenLe, bensl un'alLra macchlan compleLamenLe dlversa.
A quesLo punLo posslamo dlre che LA CA11u8A L' CCMÞLL1A lnfaLLl sono presenLl LuLLe le seguenLl fasl:
! fase dl rlchlesLa lnsLaurazlone dl conLrollo e Lunnel daLl
! fase LCÞ
! fase CPAÞ dl auLenLlcazlone
! fase lÞCÞ
da qul ln pol poLrebbero lnzlare a flulre l normall paccheLLl dl daLl, ma dl faLLo ll cllenL lnlzla ad lnvlare
paccheLLl verso alLre macchlne (SÞ8LCCnLLLLL!!).

2. vlene uLlllzzaLa un'auLenLlcazlone basaLa su CPAÞ.
3. L'lndlrlzzo lÞ del vÞn cllenL prlma dell'lnsLaurazlone della connesslone e 10.0.0.101.
4. L'lndlrlzzo lÞ del vÞn CaLeway e 130.192.223.234

S. Þer caplre se l'accesso ad lnLerneL e cenLrallzzaLo o dlsLrlbulLo dobblamo andare a vedere paccheLLl che
sono lndlrlzzaLl a macchlne che sl Lrovano al dl fuorl della vÞn, dl modo che andlamo a guardare l Lre
paccheLLl flnall. 1all paccheLLl, come abblamo gla splegaLo precedenLemenLe, non vlagglano sul Lunnel. ne
consegue che l'accesso a lnLerneL e dl Llpo dlsLrlbulLo, polche ll Lrafflco che non e dlreLLo alla vÞn non e
cosLreLLo a passare aLLraverso ll Lunnel.

6. ll percorso segulLo dal paccheLLl dl Lrafflco e quello lllusLraLo ln flgura:




Lserc|z|o 2

uaLa la caLLura ln flgura e assumendo dl conslderare una vÞn dl accesso alla reLe 130.192.223.0/24:



La caLLura lnclude LuLLl l paccheLLl necessarl all'lnsLaurazlone della connesslone vÞn? MoLlvare la rlsposLa.
n.8. L'anallzzaLore ha salLaLo un paccheLLo dl "ÞÞ1Þ CuLgolng -Call-8equesL" ln poslzlone 3.
uaLa la seguenLe sequenza compleLa dl fasl
! fase dl rlchlesLa lnsLaurazlone dl conLrollo e Lunnel daLl
! fase LCÞ
! fase CPAÞ dl auLenLlcazlone
! fase lÞCÞ
! flusso dl paccheLLl daLl
se ne deduce che nella caLLura fornlLa mancano l paccheLLl rlguardanLl la fase ÞÞÞ-lÞCÞ. Se Lale fase non
fosse effeLLuaLa l'hosL non poLrebbe oLLenere un lndlrlzzo lÞ all'lnLerno della reLe azlendale dal vÞn
CaLeway.






Lserc|z|o 3
uaLa la caLLura ln flgura e assumendo dl conslderare una vÞn dl accesso alla reLe 130.192.223.0/24:


1. CommenLare l'eslLo dell'lnsLaurazlone della connesslone vÞn.
2. La caLLura rlporLaLa rlsulLa compleLa dal punLo dl vlsLa del paccheLLl scamblaLl per l'lnsLaurazlone della
connesslone? MoLlvare la rlsposLa.

Sl, la caLLura rlsulLa essere compleLa dal punLo dl vlsLa del paccheLLl scamblaLl per l'lnsLaurazlone della
connesslone. Come cl sl aspeLLa all'lnlzlo sl Lrovano le copple dl paccheLLl "SLarL-ConLrol-ConnecLlon-
8equesL/8eply" e "CuLgolng-Call-8equesL/8eply", segue ll paccheLLo dl conLrollo "SeL-Llnk-lnfo", usaLo per
seLLare alcunl parameLrl della connesslone daLl appena lnsLauraLa. Culndl a ruoLa l paccheLLl della fase
ÞÞÞ-LCÞ e quelll della fase dl auLenLlcazlone CPAÞ. ln praLlcolare duranLe quesLa fase ll vÞn CaLeway
propone alla macchlna uLenLe un Challenge, ovvero un numero che deve essere clfraLo ln manlera
opporLuna. La rlsposLa del cllenL e segulLa da un messagglo dl LermlnaLlon 8equesL che lndlca che ll
LenLaLlvo dl auLenLlcazlone e falllLo, username e/0 password non sono valldl. lnfaLLl sono pol presenLl l
messaggl usaLl per la chlusura delle connesslonl precedenLemenLe lnsLauraLe:

! ÞÞÞ LCÞ "1ermlnaLlon 8equesL" (CaLeway-->cllenL)
! ÞÞÞ LCÞ "1ermlnaLlon Ack" (cllenL-->CaLeway)
! ÞÞ1Þ "Call-Clear-8equesL" (cllenL-->CaLeway)
! ÞÞ1Þ "Call-ulsconnecL-noLlfy" (CaLeway-->cllenL)
! ÞÞ1Þ "SLop-ConLrol-ConnecLlon-8equesL" (CaLeway-->cllenL)
! ÞÞ1Þ "SLop-ConLrol-ConnecLlon-8equesL" (cllenL-->CaLeway)
! ÞÞ1Þ "SLop-ConLrol-ConnecLlon-8eply" (CaLeway-->cllenL)

Lserc|z|o 4

uaLa la caLLura ln flgura e assumendo dl conslderare una vÞn dl accesso alla reLe 130.192.223.0/24:



1. La caLLura lnclude LuLLl l paccheLLl necessarl all'lnsLaurazlone della connesslone vÞn? MoLlvare la
rlsposLa.
2. ln base a quanLo rlporLaLo nella caLLura, l'accesso a lnLerneL rlsulLa cenLrallzzaLo o dlsLrlbulLo? MoLlvare
la rlsposLa
3. Cuale lndlrlzzo lÞ ll cllenL oLLlene ln segulLo all'lnsLaurazlone della vÞn?
4. uescrlvere schemaLlcamenLe ll percorso segulLo dal paccheLLl dl Lrafflco, lndlcando espllclLamenLe gll
lndlrlzzl lÞ dl LuLLe le enLlLa colnvolLe.

n.8. L'anallzzaLore ha salLaLo un paccheLLo dl "ÞÞ1Þ CuLgolng -Call-8equesL" ln poslzlone 3.

1. Sl, la caLLura e compleLa. ua noLare e che 130.192.223.203 e l'lndlrlzzo lÞ lnLerno alla vÞn che e sLaLo
assegnaLo al cllenL duranLe la fase ÞÞÞ-lÞCÞ.

2. L'accesso ad lnLerneL rlsulLa cenLrallzzaLo. 1ale lnformazlone può essere dedoLLa appllcando ll seguenLe
raglonamenLo: ll paccheLLo 19 e un messagglo dl P11Þ 8equesL che ll cllenL lnvla verso un Server P11Þ che
sl Lrova al dl fuorl della vÞn, polche ll preflsso dell'lndlrlzzo dl quesL'ulLlmo (130.237.234.40) dlfferlsce da
quello del vÞn CaLeway ad esemplo (130.192.223.234). nonosLanLe clò ll messagglo vlaggla all'lnLerno del
Lunnel flno al vÞn CaLeway prlma dl essere lndlrlzzaLo verso l'lnLerneL pubbllco. ul conseguenza sl può dlre
che l'accesso ad lnLerneL e cenLrallzzaLo.

3. L'lndlrlzzo lÞ che ll cllenL oLLlene ln segulLo all'lnsLaurazlone della vÞn e 130.192.223.203. 1ale lndlrlzzo e
un lndlrlzzo dl Llpo pubbllco, magarl perche la vÞn e collegaLa ad lnLerneL pubbllco e sono sLaLl assegnaLl
lndlrlzzl pubbllcl alle macchlne ln alLernaLlva all'uso dl un nA1. ll cllenL lnvece accede ald lnLerneL
uLlllzzando un lndlrlzzo prlvaLo, dl modo che all'usclLa dalla sua soLLoreLe e slcuramenLe uLlllzzaLo un nA1.

4. ll percorso segulLo dal paccheLLl dl Lrafflco e ll seguenLe




Lserc|z|o S
uaLa la Lopologla dl reLe rlporLaLa ln flgura, assumendo una vÞn con accesso a lnLerneL cenLrallzzaLo
basaLo su ÞÞ1Þ:

1. 8lporLare schemaLlcamenLe, lndlcando LuLLl gll evenLuall lncapsulamenLl, ll formaLo dl:
- un paccheLLo ÞÞ1Þ scamblaLo duranLe la fase dl lnsLaurazlone della connesslone
- un paccheLLo P11Þ CL1 lnvlaLo da hosL A all'P11Þ Server8
- La rlsposLa cosl come vlene lnvlaLa dall'P11Þ Server8
- La rlsposLa cosl come vlene rlcevuLa dall' hosLA
2. 8appresenLare schemaLlcamenLe ll percorso segulLo dal paccheLLl dl Lrafflco daLl.

L'accesso ad lnLerneL e per lpoLesl cenLrallzzaLo, dl modo che l'hosL A andra ad aprlre un Lunnel ÞÞ1Þ verso
ll vÞn CaLeway.
un paccheLLo ÞÞ1Þ scamblaLo duranLe la fase dl lnsLaurazlone della connesslone, qulndl un paccheLLo della
fase LCÞ, ha ll seguenLe formaLo:





L'lnLesLazlone lÞ, polche ll Lunnel e gla sLaLo aperLo, rlporLera nel campl mlLLenLe-desLlnaLarlo gll lndlrlzzl
del due 1unnel Lnd ÞolnL (qulndl 130.192.12.31 e 130.192.16.234). Segue un'lnLesLazlone C8L per
l'lncapsulamenLo, all'lnLerno della quale sara presenLe un'lndlcazlone rlguardo ll faLLo che l'lnLesLazlone
successlva apparLlene al ÞÞÞ. CuesL'ulLlma a sua volLa conLerra all'lnLerno del suol campl l'lndlcazlone
rlguardo ll faLLo che segue un'lnLesLazlone LCÞ.
un paccheLLo P11Þ CL1 lnvlaLo da hosL A all'P11Þ server 8, lnLerceLLaLo non appena usclLo dall'hosL A, ha ll
seguenLe formaLo:



L'lnLesLazlone lÞ rlporLa nel campl mlLLenLe-desLlnaLarlo gll lndlrlzzl del vÞn CaLeway e dell'hosL A, che
cosLlLulscono l due 1unnel Lnd ÞolnL. Seguono un'lnLesLazlone C8L per l'lncapsulamenLo, un'lnLesLazlone
ÞÞÞ, una seconda lnLesLazlone lÞ, una 1CÞ e lnflne l'lnLesLazlone P11Þ (all'lnLerno della quale e speclflcaLo
ll messagglo dl CL1). nell'lnLesLazlone lÞ plu lnLerna nel campl mlLLenLe-desLlnaLarlo sono speclflcaLl gll
lndlrlzzl lÞ del verl mlLLenLe-desLlnaLarlo del paccheLLo, ovvero l'lndlrlzzo assegnaLo all'hosLA lnLerno alla
vÞn (qulndl con preflsso 130.192.16) e l'P11Þ Server8.
un messagglo dl rlsposLa lnvlaLo dall'P11Þ Server8 non vlaggla all'lnLerno del Lunnel, dl modo che non
presenLa lncapsulamenLo. ln parLlcolare ll formaLo del paccheLLo e ll seguenLe:


ll paccheLLo dl rlsposLa vlene rlcevuLo dall'hosLA sul Lunnel, dl modo che quesLo, aLLraversando ll vÞn
CaLeway, sara sLaLo lncapsulaLo e gll saranno sLaLe agglunLe le lnLesLazlonl per farlo vlagglare all'lnLerno
del Lunnel (qulndl llv2,lÞ,C8L e ÞÞÞ). ul conseguenza ll paccheLLo dl rlsposLa cosl come vlene rlcevuLo dall'
hosLA ha ll seguenLe formaLo:



dove come al sollLo nell'lnLesLazlone lÞ plu esLerna sono lndlcaLl come mlLLenLe-desLlnaLarlo l due 1unnel
Lnd ÞolnL, qulndl ll vÞn CaLeway e l'hosLA.
ll percorso segulLo dal paccheLLl dl Lrafflco daLl e ll seguenLe


Lserc|z|o 6
uaLa la Lopologla dl reLe rlporLaLa ln flgura, assumendo una vÞn con accesso a lnLerneL cenLrallzzaLo:

1. lndlcare un posslblle lndlrlzzo lÞ per l'hosL A dopo l'lnsLaurazlone della vÞn
2. 8lporLare schemaLlcamenLe, lndlcando LuLLl gll evenLuall lncapsulamenLl, ll formaLo dl:
- un paccheLLo P11Þ CL1 lnvlaLo dall' hosL A all'P11Þ ServerA
- La rlsposLa cosl come vlene lnvlaLa dall'P11Þ ServerA
- La rlsposLa cosl come vlene rlcevuLa dall'hosLA
3. 8appresenLare schemaLlcamenLe ll percorso segulLo dal paccheLLl.

1. un posslblle lndlrlzzo lÞ per l'hosLA dopo l'lnsLaurazlone della vÞn avra preflsso dl reLe 130.192.16,
qulndl ad esemplo poLrebbe essere 130.192.16.17. SollLamenLe ll vÞn CaLeway ha un lnLervallo dl lndlrlzzl
Lra cul scegllere un lndlrlzzo lÞ per le macchlne che sl collegano da remoLo alla vÞn. ln Lal modo e anche
posslblle caplre lmmedlaLamenLe se una macchlna sl Lrova all'lnLerno della reLe locale o se sl collega alla
vÞn da remoLo.

2. non vlene rlporLaLo che Llpo dl proLocollo vlene uLlllzzaLo per l'accesso alla vÞn. 1raLLandosl dl una reLe
d'accesso però ÞÞ1Þ poLrebbe essere una scelLa sensaLa.
uunque, lpoLlzzando dl uLlllzzare ÞÞ1Þ, un paccheLLo dl P11Þ CL1 lnvlaLo dall'hosLA all'P11Þ ServerA ha ll
seguenLe formaLo







nDk LIV.2 nDk IÞ
S8C: 130.192.12.31
uS1: 130.192.16.234
GkL ÞÞÞ nDk IÞ
S8C: 130.192.16.17
uS1: 130.192.16.26
nDk 1CÞ nDk n11Þ MLSS GL1
ll messagglo dl rlsposLa lnvlaLo dal ServerA, polche esso sl Lrova all'lnLerno della reLe locale e qulndl l suol
paccheLLl non vlaggeranno sul Lunnel, avra ll seguenLe formaLo





nel paccheLLo dl rlsposLa cosl come vlene rlcevuLo dall'PosLA saranno sLaLe agglunLe, al passagglo dal vÞn
CaLeway, le lnLesLazlonl dl lncapsulamenLo del Lunnel. ul conseguenza presenLera ll seguenLe formaLo:






ll percorso segulLo dal paccheLLl e ll seguenLe


lnfaLLl ll desLlnaLarlo flnale e all'lnLerno della reLe azlendale, qulndl l'unlca cosa che può fare un paccheLLo e
parLlre dal dall' PosLA, aLLraversare ll Lunnel sbucando all'lnLerno della 8eLe Azlendale e dlrlgersl verso ll
ServerA. La rlsposLa percorrera esaLLamenLe ll cammlno lnverso. Lssendo ll desLlnaLarlo lnLerno alla vÞn
non ce neanche da porsl ll problema se l'accesso ad lnLerneL e cenLrallzzaLo o dlsLrlbulLo.

nDk LIV.2 nDk IÞ nDk 1CÞ
S8C: 130.192.16.26
uS1: 130.192.16.17
nDk n11Þ MLSS Ck
nDk LIV.2 nDk IÞ
S8C: 130.192.12.234
uS1: 130.192.16.31
GkL ÞÞÞ nDk IÞ
S8C: 130.192.16.26
uS1: 130.192.16.17
nDk 1CÞ nDk n11Þ MLSS Ck
Lserc|z|o 8
uaLa la Lopologla dl reLe rlporLaLa ln flgura:

una volLa lnsLauraLa una connesslone vÞn dall' hosL A verso la reLe azlendale, sl dlscuLa l'lmpaLLo sulla
ragglunglblllLa dell'P11Þ Server da parLe dl hosL A assumendo:

1. un malfunzlonamenLo sul rouLer3 e un accesso a lnLerneL dlsLrlbulLo.
2. un malfunzlonamenLo sul rouLer3 e un accesso a lnLerneL dlsLrlbulLo.
3. un malfunzlonamenLo sul rouLer2 e un accesso a lnLerneL dlsLrlbulLo.
4. un malfunzlonamenLo sul rouLer4 e un accesso a lnLerneL cenLrallzzaLo.
S. un malfunzlonamenLo sul rouLer3 e un accesso a lnLerneL cenLrallzzaLo.

Cuando l'PosLA sl collega alla reLe azlendale sl apre un Lunnel Lra quesL'ulLlmo e ll vÞn CaLeway.

1. Se ll rouLer3 e fuorl uso ll server P11Þ può essere ugualmenLe ragglunLo. ln vlrLu dell'lpoLesl che
l'accesso ad lnLerneL e dlsLrlbulLo lnfaLLl l paccheLLl ll cul desLlnaLarlo sl Lrova al dl fuorl della reLe azlendale
possono essere dlreLLamenLe lnsLradaLl aLLarverso la reLe pubbllca, senza vlagglare necessarlamenLe
aLLraverso ll Lunnel flno al vÞn CaLeway. ul conseguenza l paccheLLl lnvlaLl dall'PosLA verso ll server P11Þ
percorreranno ll seguenLe LraglLLo

PosLA --> 8ouLer1 --> 8ouLer3 --> P11Þ Server

2. Se ll rouLer3 e fuorl uso e l' accesso ad lnLerneL e dlsLrlbulLo ll cammlno precedenLemenLe uLlllzzaLo per
ragglungere ll Server P11Þ cl e ora precluso. ln Leorla poLrebbe essere uLlllzzaLo un dlfferenLe LraglLLo che
sfruLLl ll Lunnel della reLe azlendale, ovvero

PosL A --> 8ouLer1 --> vÞn CaLeway --> 8ouLer3 --> 8ouLer 4 --> P11Þ Server

Lale soluzlone, se non lmposslblle, e però alquanLo lmprobablle. CuesLo perche all'alLezza del vÞn CaLeway
poLrebbe essere plazzaLo anche un flrewall. MenLre ll vÞn CaLeway conLrollo solo che l paccheLLl ln arrlvo
slano provenlenLl da un Lunnel vÞn e che ll 1LÞ all'alLro capo sla correLLamenLe auLenLlcaLo, ll flrewall
all'enLraLa dl una reLe azlendale spesso lmplemenLa regole dl fllLragglo ln base alle quall l paccheLLl che non
sono desLlnaLl a macchlne lnLerne alla reLe azlendale vengono scarLaLl all'lngresso. Se cosl non fosse sl
andrebbe a sprecare lnuLllmenLe rlsorse dl elaborazlone per processare ll Lrafflco ln LranslLo, col rlschlo
agglunLo dl lnLasare la reLe azlendale.

3. Se ll rouLer2 e fuorl uso e l' accesso ad lnLerneL e dlsLrlbulLo, anche ln quesLo caso ll server P11Þ sara
ragglunglblle percorrendo ll LraglLLo

PosLA --> 8ouLer1 --> 8ouLer3 --> P11Þ Server

4. Se ll rouLer4 e fuorl uso e l'accesso ad lnLerneL e cenLrallzzaLo, l'unlca posslblllLa che ha l'hosLA dl
ragglungere l'P11Þ Server e seguendo ll seguenLe percorso

PosL A --> 8ouLer1 --> vÞn CaLeway --> 8ouLer1 --> 8ouLer3 --> P11Þ Server

Lale soluzlone rlchlede però loglcamenLe che nella Labella dl rouLlng del 8ouLer2 assoclaLo al vÞn CaLeway
vl sla un'lndlcazlone ln base alla quale, ln caso dl non percorrlblllLa del normale LraglLLo 8ouLer3 -->
8ouLer4, l paccheLLl vengono relnsLradaLl all'lndleLro verso ll 8ouLer1 per essere lmmessl nella reLe
pubbllca.

S. Se ll rouLer3 e fuorl uso e l' accesso ad lnLerneL e cenLrallzzaLo l paccheLLl arrlveranno dall'PosLA all'
P11Þ Server LranslLando all'lnLerno della reLe azlendale. ln parLlcolare ll percorso segulLo sara ll seguenLe

PosLA --> 8ouLer1 --> vÞn CaLeway --> 8ouLer3 --> 8ouLer4 --> P11Þ Server














LL2ICNI N. 14,1S,16,17,18,19,20


Introduz|one a||a voce su IÞ:
Introduz|one a||e tecno|og|e per || trasporto d| voce su IÞ

una normale reLe Lelefonlca funzlona a commutaz|one d| c|rcu|to. Þer meLLere ln collegamenLo due
posLazlonl Lelefonlche e necessarlo effeLLuare una prlma fase dl segnalazlone, che comprende LuLLe le
operazlonl per la gesLlone della chlamaLa (composlzlone del numero, segnalazlone che ll Lelefono e llbero o
occupaLo, ..), dopo dl che può avere luogo la chlamaLa vera e proprla lnLesa come LrasporLo del segnale
vocale. ÞarLendo dalla prlma cenLrallna a valle del mlLLenLe, vengono rlcercaLe nella reLe un lnsleme dl
rlsorse che permeLLano dl reallzzare e manLenere la comunlcazlone. 1all rlsorse, se dlsponlblll, vengono
prenoLaLe per la speclflca sesslone (nessun alLro può uLlllzzarle) e sl lnlzla a far passare ll segnale vocale.
Anche nel caso ln cul per un cerLo perlodo dl Lempo la comunlcazlone non fosse aLLlva (enLrambl gll
lnLerlocuLorl sLanno zlLLl alla corneLLa) le rlsorse precedenLemenLe allocaLe non possono essere uLlllzzaLe
da nessun alLro, ovvero le rlsorse vengono allocaLe sLaLlcamenLe alle speclflche sesslonl dl comunlcazlone.
CuesLo, se da un laLo comporLa una gesLlone pluLLosLo rlglda del slsLema e un evldenLe spreco dl rlsorse,
dall'alLra garanLlsce però un Lempo dl aLLraversamenLo flsso. ALLualmenLe a llvello delle dorsall dl reLe,
dove vlene faLLo conflulre LuLLo ll Lrafflco, vlene uLlllzzaLa una rappresenLazlone ln forma dlglLale, vlene
operaLa pol una converslone ln analoglco nel pressl dell'arrlvo. ueLLo quesLo, normalmenLe per una
conversazlone Lelefonlca sono necessarl almeno 64kbps nel caso dl voce non compressa. 1ale valore derlva
dal faLLo che ognl camplone vocale vlene rappresenLaLo su 8 blL e che la frequenza dl camplonamenLo e dl
8 kc/sec (kllo-camplonl/sec). A Lal proposlLo e lnLulLlvo dedurre che magglore e ll numero dl blL dedlcaLl
alla rappresenLazlone del camplonl mlnore e l'lmpaLLo dell'errore dl quanLlzzazlone.
Le caraLLerlsLlche dl una Lrasmlsslone Lelefonlca possono essere qulndl rlassunLe come segue:
! nessuna compresslone del camplonl vocall, anche se dl faLLo ad un cerLo punLo e sLaLa lnLrodoLLa.
Sono dlsponlblll due Llpl dl algorlLml dl compresslone: a|gor|tm| con perd|ta e a|gor|tm| senza
perd|ta. CuesLl ulLlml permeLLono dl rlcosLrulre ll daLo all'arrlvo esaLLamenLe ldenLlco a quello che
era ln parLenza a fronLe però dl un rapporLo dl compresslone relaLlvamenLe basso (qulndl non
permeLLono dl rldurre sosLanzlalmenLe la banda mlnlma necessarla). Cll algorlLml con perdlLa dl
conLro punLano a perdere dell'lnformazlone rlguardo quelle caraLLlsLlche del suono a cul l'orecchlo
umano e poco senslblle. Þer esemplo nella compresslone MÞ3 sl sfruLLa ll faLLo che se ln una zona
dello speLLro sl ha un plcco accenLuaLo, quesLo deLermlna ln un cerLo lnLervallo un' lnsenslblllLa al
resLo dello speLLro. ul conseguenza e posslblle codlflcare molLo bene ll plcco e meno bene (con
meno blL) un cerLo lnLervallo dello speLLro lnLorno ad esso.
! non sl può fare comunlcazlone ad alLa quallLa se non andando ad allocare del mulLlpll dl 64kbps.
! non vlene effeLLuaLa la soppresslone del sllenzl, polche non avrebbe senso ln vlrLu del faLLo che le
rlsorse sono allocaLe sLaLlcamenLe alle speclflche sesslonl dl comunlcazlone.
! non vlene usaLa la MulLlplazlone SLaLlsLlca, bensl la banda vlene allocaLa sLaLlcamenLe. ll prlnclplo
dl mulLlplazlone sLaLlsLlca prevede che la mulLlplazlone del paccheLLl avvenga senza rlservare con
esaLLezza rlsorse a quesLo o quel LrlbuLarlo: ll
mulLlplaLore sl llmlLa ad lnserlre l paccheLLl
rlcevuLl ln apposlLe code, da cul ll preleva per
poLerll LrasmeLLere ln sequenza, aLLuando una
modallLa dl LrasferlmenLo orlenLaLa al rlLardo. ll
flusso dl lnformazlonl e segmenLaLo ln paccheLLl
dl lunghezza llmlLaLa o flssa, conLrassegnaLl da
un preambolo e un epllogo per permeLLere ll
loro rlconosclmenLo all'lnLerno del flusso dl daLl, e che conLengono le lnformazlonl necessarle per
deflnlre la desLlnazlone del paccheLLo. L'lnLera capaclLa Lrasmlsslva dlsponlblle vlene lmpegnaLa per
la Lrasmlsslone dl clascun paccheLLo. La presenza dl code comporLa ovvlamenLe ll deLermlnarsl dl un
rlLardo varlablle ed lmpredlclblle, nonche la posslblllLa che la coda sla plena ed ll paccheLLo ln
lngresso venga scarLaLo.
L'approcclo lnverso dl Llpo sLaLlco prevede lnvece che l flussl vengano mulLlplaLl ln modo slncrono
(con una cadenza Lemporale regolare). Cgnl flusso ha uno sloL dedlcaLo e se su un deLermlnaLo
canale ln lngresso al mulLlplexer non e aLLlva
alcuna comunlcazlone ll relaLlvo sloL rlmane
lnuLlllzzaLo.
! 8lchlede una fase dl Call SeLup, ovvero necesslLa dl una procedura dl segnalazlone.

Le reLl daLl basaLe su lÞ e sulla commuLazlone dl paccheLLo lnvece sono caraLLerlzzaLe da:
! una mlgllore compresslone, polche ad esemplo l paccheLLl dl voce poLrebbero essere compressl e
quelll dl daLl (magarl desLlnaLl ad un fax) lnvece no.
! La posslblllLa dl avere una comunlcazlone ad alLa quallLa senza la necesslLa dl dover preallocare una
cerLa banda.
! Soppresslone del sllenzl. Lssendo adoLLaLa la commuLazlone dl paccheLLo le rlsorse non sono
allocaLe sLaLlcamenLe ad una speclflca sesslone dl comunlcazlone, qulndl la soppresslone del sllenzl
e molLo uLlle polche permeLLe dl rlsparmlare blL ln Lrasmlsslone che dl faLLo non sono necessarl. La
banda preservaLa può essere messa a dlsposlzlone per l'lnvlo sul canall dl paccheLLl dl voce o daLl
slgnlflcaLlvl.
! uLlllzzo della MulLlplazlone sLaLlsLlca. un classlco apparaLo che fa uso dl Lale prlnclplo e lnfaLLl un
rouLer, che ha dlverse llnee dl Lrafflco a bassa veloclLa ln lngresso e deve
lmmeLLere su un unlco canale ln usclLa ad alLa veloclLa. ll rouLer gesLlsce
una coda dl paccheLLl ln arrlvo, dl modo che essl vengono spedlLl nello
sLesso ordlne ln cul sono pervenuLl. ul conseguenza se ad esemplo ll
canale A LrasmeLLe e l canall 8 e C non ne LrasmeLLono alcun paccheLLo, ll
rouLer uLlllzzera l'lnLera banda del canale ln usclLa per la Lrasmlsslone del
paccheLLl ln arrlvo da A. Culndl nella reLe lÞ a commuLazlone dl paccheLLo la mulLlplazlone sLaLlsLlca
e auLomaLlca.
! necesslLa dl una procedura dl segnalazlone.
ua quanLo deLLo sl deduce che, se da un laLo le reLl basaLe su lÞ rlsolvono l probleml legaLl alla gesLlone
delle rlsorse dl reLe, lnLroducono compresslone e mulLlplazlone sLaLlsLlca, dall'alLro però producono un
alLro problema. ll faLLo dl non avere plu delle rlsorse dedlcaLe ad una parLlcolare sesslone dl comunlcazlone
lnfaLLl comporLa che non può essere garanLlLa la quallLa della chlamaLa. CuesLo perche ll Lempo dl
Lrasmlsslone del paccheLLl e aleaLorlo, dlpendenLe dallo sLaLo dl occupazlone della coda nel momenLo ln
cul l paccheLLl arrlvano al rouLer. La fluLLuazlone del Lempl dl aLLraversamenLo del paccheLLl genera una
fluLLuazlone del Lempl dl lnLerarrlvo a desLlnazlone, deLLa II11Lk, che da fasLldlo ln fase dl rlproduzlone.
lnfaLLl sl vorrebbe che l segnall fossero rlprodoLLl equlspazlaLl nel Lempo cosl come sono sLaLl camplonaLl,
cosa che però evldenLemenLe non e posslblle a causa del !lLLer e conslderando anche che su lÞ e posslblle
che alcunl paccheLLl arrlvlno fuorl ordlne o che vadano addlrlLLura persl duranLe la Lrasmlsslone.
8lassumendo

kL1L 1LLLICNICA kL1L IÞ
CCMMu1AZlCnL ul Cl8Cul1C CCMMu1AZlCnL ul ÞACCPL11C
MuL1lÞLAZlCnL S1A1lCA MuL1lÞLAZlCnL S1A1lS1lCA

La dlffuslone della Lelefonla su lÞ e dovuLa al faLLo che ad un cerLo punLo dlversl gruppl dl uLenLl colnvolLl
nel suo uLlllzzo cl hanno vlsLo degll aspeLLl convenlenLl, uLlll a rlsolvere del loro probleml:
! Utente domest|co: pagando la llnea per la connesslone lnLerneL gll e posslblle farcl passare sopra
anche le chlamaLe vocall, ln modo da ammorLlzzare l cosLl dovuLl a
due dlfferenLl bolleLLe. LslsLono molLl sofLware graLulLl che
permeLLono dl effeLLuare chlamaLe su lÞ, ad esemplo Skype. Se flno
ad un pò dl Lempo fa Lall sofLware consenLlvano dl meLLere ln
comunlcazlone vocale Lra dl loro
due pc connessl ad lnLerneL, e
ormal anche posslblle meLLere ln
comunlcazlone un pc con un
apparecchlo della Lradlzlonale reLe
Lelefonlca. ln Lal caso la chlamaLa
parLlLa dal pc del mlLLenLe aLLraversa lnLerneL glungendo ad un
CaLeway (scelLo ln modo che sla ll plu vlclno posslblle al desLlnaLarlo) che permeLLe l'accesso alla
ÞS1n - Þubllc SwlLch 1elephone neLwork. l suddeLLl sofLware fonlscono lnolLre ulLerlorl servlzl quall
la posslblllLa dl effeLLuare una vldeochlamaLa oppure la condlvlslone dl lavagna e deskLop.

! Cperatore te|efon|co: quello che gll lnLeressa e LrasporLare una grossa quanLlLa dl Lrafflco su lÞ. La
Lrasmlsslone dl segnall Lelefonlcl uLlllzzando commuLazlone dl clrculLo e mulLlplazlone sLaLlca
comporLa delle apparecchlaLure dl cosLo elevaLo, polche la Lecnologla che c'e dleLro necesslLa dl
essere molLo preclsa. ll LrasporLo medlanLe 1olÞ lnvece permeLLe dl uLlllzzare lnfrasLruLLura a cosLo
mlnore, non necesslLando ad esemplo dl una slncronlzzazlone cosl preclsa come quella rlchlesLa nel
caso 1uM (1lme ulvlslon MulLlplexlng). ll passagglo a Lale approcclo dl LrasporLo del segnall vocall
rlchlede l'agglornamenLo solo dl un numero llmlLaLo dl apparaLl locallzzaLl all'lnLerno della reLe
(qulndl soLLo ll conLrollo del gesLore Lelefonlco), l Lermlnall al bordo della reLe rlmarranno lnvarlaLl.
ua noLare e che la reLe lÞ che vlene usaLa per la Lelefonla non e la sLessa che vlene uLlllzzaLa per
l'accesso ad lnLerneL, perche se l due Lrafflcl fossero mescolaLl la Lelefonla (che l'uLenLe perceplsce
come una Lelefonla dl Llpo "classlco") sublrebbe gll sLessl probleml dl [lLLer, dl fluLLuazlone del Lempl
dl aLLraversamenLo e dl banda che sl verlflcano sulla reLe daLl.
un esemplo dl reLe 1olÞ e ll seguenLe, dove e posslblle ldenLlflcare:

! Lermlnall Lelefonlcl collegaLl a degll swlLch a commuLazlone dl clrculLo (poLrebbero essere degll
swlLch 1uM). CuesLl porLano l varl segnall verso un CaLeway dove avvlene la converslone da
analoglco a dlglLale e la paccheLLlzzazlone per la Lrasmlsslone aLLraverso la reLe lÞ.
! pc collegaLl dlreLLamenLe al rouLer dl bordo del 8ackbone, dal quall evldenLemenLe qulndl parLe
la rlchlesLa dl Lelefonla.




! Utente az|enda|e: ll vanLagglo che le lmprese hanno lnLravlsLo nell'uso del volÞ non e preLLanLe
economlco come nel caso dell'uLenLe domesLlco. lnfaLLl un'azlenda può arrlvare ad oLLenere da un
gesLore Lelefonlco, a fronLe dl un accordo commerclale basaLo sul consumo dl un cerLo numero dl
ore/anno , un prezzo dl faLLurazlone parl anche ad un declmo rlspeLLo al prezzo dl mercaLo per un
uLenLe domesLlco. ne consegue che un'azlenda non ha nessun parLlcolare lnLeresse a conLenere Lall
cosLl. Cuello a cul sono lnLeressaLe le azlende e ll faLLo che con ll volÞ e posslblle oLLenere LuLLa una
serle dl servlzl agglunLlvl che con la Lelefonla normale non sl hanno (ad esemplo la Lelepresenza,
lnsLanL messaglng, vldeoconferenza, LrasferlmenLo flles, condlvlslone appllcazlonl, ..).



ll processo dl creazlone dl un flusso volÞ può essere schemaLlzzaLo ln 9 fasl:
1. Camp|onamento:
dlglLallzzazlone della forma d'onda analoglca prodoLLa dal segnale vocale. Þer sens|b|||tà sl lnLende ll
numero dl blL uLlllzzaLl per rappresenLare un camplone. Magglore e ll numero del blL uLlllzzaLl per la
rappresenLazlone del camplonl mlnore sara l'errore commesso nell'approsslmazlone del varl
camplonl del segnale analoglco al plu vlclno "llvello dlglLale" prevlsLo. 1ale errore prende ll nome dl
errore d| quant|zzaz|one. C'e lnolLre da conslderare che la frequenza mlnlma dl camplonamenLo da
uLlllzzare e vlncolaLa sulla base del 1eorema dl nyqulsL.


2. Cod|f|ca:
l daLl camplonaLl vengono elaboraLl dlglLalmenLe, evenLualmenLe con compresslone (che lnflulsce
sulla quallLa oLLenuLa ln rlproduzlone, LanLo mlgllore quanLo plu basso e ll faLLore dl compresslone).
1ale operazlone lnLroduce loglcamenLe un cerLo rlLardo. una delle prlnclpall Lecnlche dl codlca senza
perdlLa uLlllzzaLe e la coslddeLLa Cod|f|ca per d|fferente, basaLa su un prlnclplo ln base al quale non
vlene codlflcaLo ll valore dl ognl slngolo camplone, bensl la dlfferenza Lra l valorl dl due camplonl
successlvl. Codlflcando le dlfferenze ll range del valorl sl accorcla ed e qulndl posslblle uLlllzzare
meno blL. Le problemaLlche rlguardanLl la codlflca sono legaLe alla complesslLa degll algorLml usaLl
per reallzzarla che, lnseguendo l'obleLLlvo dl una buona quallLa del suono anche a fronLe dl un forLe
faLLore dl compresslone, rlchledono una poLenza elaboraLlva non lndlfferenLe. Le funzlonallLa dl
codlflca possono essere reallzzaLe sla a llvello del Lermlnale che a llvello dl CaLeway all'lnLerno della
reLe. Spesso sulla reLl volÞ e lnflne adoLLaLa la soppresslone del sllenzl, al flne dl rlsparmlare sulla
banda ln Lrasmlsslone nel momenLl ln cul uno degll lnLerlocuLorl smeLLe dl parlare.
un codec e un programma o un dlsposlLlvo che sl occupa dl codlflcare e/o decodlflcare dlglLalmenLe
un segnale (LlplcamenLe audlo o vldeo) perche possa essere rlchlamaLo per la sua leLLura. ClLre alla
dlglLallzzazlone del segnale, l codec effeLLuano anche una compresslone (e/o decompresslone ln
leLLura) del daLl ad esso relaLlvl, ln modo da poLer rldurre lo spazlo dl memorlzzazlone occupaLo a
vanLagglo della porLablllLa o della LrasmlsslvlLa del flusso codlflcaLo.
ll codec generalmenLe uLlllzzaLo dagll operaLorl Lelefonlcl e ll ÞCM64, polche 64kbps slgnlflca non
effeLLuare alcuna compresslone. lnfaLLl all'operaLore Lelefonlco ln generale non e noLo se ll segnale
da LrasmeLLere e dl Llpo vocale o no, dl modo che non deve essere effeLLuaLa alcuna compresslone
che causerebbe probleml nel caso ln cul sl sLla Lrasferendo un flusso dl daLl verso un fax o un
modem pluLLosLo che un segnale vocale. Þer quanLo rlguarda l codec per la voce lnvece cl sono plu
alLernaLlve, con o senza compresslone. AlLra cosa che fanno l codec olLre alla compresslone del
camplonl e la rllevazlone del perlodl dl sllenzlo, operaLa monlLorando cosLanLemenLe l'energla del
segnale (al dl soLLo dl una cerLa soglla vlene conslderaLo sllenzlo). Se però da una parLe all'lnLerno dl
un perlodo dl sllenzlo non vlene codlflcaLo nulla, ll che consenLe dl rlsparmlare del byLe ln
Lrasmlsslone, dall'alLra spesso e necessarlo generare ad arLe un rumore dl soLLofondo, senza ll quale
l'lnLerlocuLore non sl renderebbe conLo che la chlamaLa e ancora aLLlva nel caso ln cul la conLroparLe
non parla. AlLra operazlone necessarla e la
cancellazlone dell'eco, perche c'e sempre un
segnale che esce dall'alLoparlanLe e rlenLra nel
mlcrofono. Se l'lnLervallo per complere Lale
cammlno e flno a 200ms l'orecchlo umano non
sl accorge dl nulla, polche ln Lal caso l'eco sl sovrappone abbasLanza bene a quello che dlclamo. Al dl
sopra del 200ms lnvece e necessarlo andare ad lndlvlduare l segnall che cosLlLulscono l'eco
(aLLraverso opporLune correlazlonl) ed ellmlnarll. 1ale operazlone non e per nulla banale ed
lnLroduce un ulLerlore aumenLo del carlco dl elaborazlone.


3. Þacchett|zzaz|one:
l camplonl dlglLallzzaLl vengono paccheLLlzzaLl. non posslamo lnfaLLl pensare dl poLer LrasmeLLere
ognl slngolo camplone ln un paccheLLo lÞ separaLo, polche saremmo cosLreLLl a rlLrasmeLLere ognl
volLa le lnLesLazlonl e quesLo lnLrodurrebbe un grosso overhead. Sl pensl lnfaLLl come l'lÞ lnLroduce
20byLe dl lnLesLazlone per ognl byLe dl carlco uLlle. Þer ovvlare a Lale problema sl organlzzano l
camplonl ln blocchl ed ognuno
dl essl vlene lnserlLo all'lnLerno
dl un paccheLLo lÞ. Ad esemplo
nel ÞCM ln un blocco vengono
raggruppaLl ben 160 camplonl,
corrlspondenLl a 20ms dl conversazlone (ln vlrLu del faLLo che sono prelevaLl 8000 camplonl/sec).
CuesLa sLraLegla lnLroduce evldenLemenLe un rlLardo dovuLo al faLLo che ll paccheLLo sara spedlLo
solo nel momenLo ln cul arrlva l'ulLlmo camplone da lncludere all'lnLerno del blocco (nel ÞCM ad
esemplo l'ulLlmo camplone arrlva a dlsLanza dl 20ms dal prlmo).

4. Accodamento:
l paccheLLl vengono posLl ln coda per la Lrasmlsslone. Cul l probleml nascono nel momenLo ln cul l
rouLer non lmplemenLano alcuna pollLlca dl dlfferenzlazlone del Lrafflcl ln arrlvo. ln Lal caso paccheLLl
conLenenLl del camplonl vocall, e che qulndl avrebbero un'urgenza magglore, vengono accodaLl per
la spedlzlone come LuLLl gll alLrl paccheLLl daLl (che non sono senslblll rlspeLLo al Lempo) senza alcun
Llpo dl prlvlleglo. CuesLo non fa alLro che accumulare ulLerlore rlLardo. Þer evlLare quesLo problema
e necessarlo avere delle pollLlche dl
gesLlone delle code dl Lrasmlsslone
all'lnLerno del rouLer che prlvlleglno
del paccheLLl marcaLl ln modo da
lndlcare che quesLl necesslLano dl
una magglore prlorlLa nell'lnvlo. Þer
esemplo dl poLrebbero avere dlverse code nelle quall vengono posLl paccheLLl avenLl dlfferenLe
prlorlLa. ll rouLer procedera lnlzlalmenLe all'lnvlo del paccheLLl posLl nella coda a prlorlLa magglore
dopo dl che, quando quesLa sara vuoLa, sl passera all'lnvlo dl quelll presenLl nell'alLra coda.
L'operazlone dl separazlone del paccheLLl ln base alla loro prlorlLa prende ll nome dl mark|ng. 1ale
operazlonl poLrebbe essere compluLa dlreLLamenLe dall'appllcazlone, solo che ln Lal caso nulla
lmpedlrebbe che un'appllcazlone marchl lmproprlamenLe LuLLl l paccheLLl da lel generaLl come ad
alLa prlorlLa. ln alLernaLlva ll marklng può essere esegulLo dal rouLers all'lngresso della reLe, se non
fosse che ll rouLer dl faLLo non sa cosa conLengono l paccheLLl che gll arrlvano, dl modo che non e ln
grado dl dlsLlngurll per eLlcheLLarll. Cuello che sl fa e qulndl lasclare ll marklng alle appllcazlonl,
prevedendo però dlfferenLl Larlffe a seconda della prlorlLa assegnaLa al paccheLLl generaLl.

3. 1rasm|ss|one:
l paccheLLl vengono Lrasmessl. Cuando un paccheLLo arrlva ln un rouLer ll Lempo necessarlo a
LrasmeLLerlo compleLamenLe e llmlLaLo superlormenLe dal Lempo dl Lrasmlsslone del paccheLLo
sLesso (che dlpende dalla sua lunghezza, L(Þ)) sommaLo al Lempo necessarlo a LrasmeLLere ll plu
grosso paccheLLo ammesso nella reLe (dl dlmenslone M1u). lnfaLLl un paccheLLo ad alLa prlorlLa,
arrlvando ln un rouLer, poLrebbe Lrovare che la coda ad alLa prlorlLa e vuoLa ma che dl faLLo ll rouLer
e gla lmpegnaLo nella Lrasmlsslone dl un paccheLLo della cosa a prlorlLa bassa. ln Lal caso blsognera
aLLendere che venga compleLaLo ll LrasferlmenLo ln corso per pol procedere a quello del paccheLLo
ad alLa prlorlLa.
ln Lermlnl maLemaLlcl ll Lempo per la Lrasmlsslone dl un
paccheLLo e ln generale esprlmlblle come segue,


dove 8 e la veloclLa dl Lrasmlsslone, L(Þ) e la lunghezza ln
byLe della coda corrlspondenLe alla prlorlLa del paccheLLo
ed M1u e la lunghezza del parLlcolare paccheLLo, che nel
caso pegglore e appunLo uguale alla Maxlmum 1ransferL unlL del segmenLo dl reLe sul quale vlene
Lrasmesso. LoglcamenLe ll Lempo lndlcaLo vale per un slngolo rouLer, dl modo che se sono
aLLraversaLl plu rouLer ll Lempo dl Lrasmlsslone e uguale alla sommaLorla del Lempl dl Lrasmlsslone
presso ognl rouLer.

6. Þropagaz|one:
l paccheLLl sl propagano all'lnLerno la reLe verso la desLlnazlone. LoglcamenLe va LenuLo ln
conslderazlone ll conseguenLe rlLardo generaLo.

7. De-I|tter:
all'arrlvo vengono appllcaLl meccanlsml per l'aLLenuazlone del !lLLer (fluLLuazlone del Lempl dl
lnLerarrlvo del paccheLLl) che da fasLldlo ln fase dl rlproduzlone. L'appllcazlone sl aspeLLa lnfaLLl dl
rlcevere l paccheLLl ad lnLervalll regolarl cosl come sono sLaLl lmmessl nella reLe, quando dl faLLo l
rlLardl occorsl duranLe le fasl dl Lrasmlsslone e dl propagazlone fanno sl che la cadenza dl arrlvo non
sla quella aLLesa. Þer ovvlare a Lale problema, a desLlnazlone vlene uLlllzzaLo un blocco De-[|tter, che
dl sollLo corrlsponde ad un buffer. l paccheLLl ln arrlvo vengono accumulaLl nel buffer per un cerLo
Lempo prlma che abbla
lnlzlo la rlproduzlone,
per pol essere rllasclaLl
all'appllcazlone ad
lnLervalll regolarl cosl
come se ll aspeLLa. Cuello a cul blsogna sLare aLLenLl e che Lale buffer non sla mal vuoLo, polche ln
Lal caso l'appllcazlone sl Lroverebbe ln dlfflcolLa al prlmo rlLardo dl arrlvo del paccheLLl dalla reLe, ne
mal Lroppo pleno, polche ln Lal caso sl rlschlerebbe dl saLurarlo con conseguenLe perdlLa del
paccheLLl ln arrlvo.

8. k|ord|namento:
ll LrasporLo su lÞ può provocare l'arrlvo a desLlnazlone dl paccheLLl fuorl ordlne. 1all paccheLLl
dovrenno essere rlordlnaLl prlma dl poLer essere decodlflcaLl. nel caso ln cul un paccheLLo arrlvl
Lroppo ln rlLardo perche sla esegulLa l'operazlone dl rlordlno, allora vlene scarLaLo.





9. Decod|f|ca:
l paccheLLl vengono decodlflcaLl e vlene rlprodoLLo ll segnale vero e proprlo. ln parLlcolare ln fase dl
decodlflca e anche necessarlo rlprlsLlnare l sllenzl nel caso ln cul fossero sLaLl soppressl ln fase dl
codlflca

londamenLale lmporLanza rlvesLono, anche nell'amblLo del volÞ, le Lecnlche per la correzlone degll errorl.
nel proLocolll per la Lrasmlsslone daLl la correzlone degll errorl vlene faLLa usando la Lecnlca dl 8ackward
Lrror Correct|on, ovvero vlene rlchlesLa la rlLrasmlsslone del paccheLLl che sono sLaLl rllevaLl erraLl. 1ale
Lecnlca non può essere uLlllzzaLa nel caso volÞ polche la rllevazlone dell'errore e la rlLrasmlsslone
rlchledono un cerLo Lempo che poLrebbe far sl che ll paccheLLo arrlvl a desLlnazlone Lroppo Lardl rlspeLLo
all'lsLanLe dl rlproduzlone schedulaLo.
Cuella che vlene usaLa e qulndl una
Lecnlca dl Iorward Lrror Correct|on.
1ale Lecnlca conslsLe nella spedlzlone
dl daLl rldondanLl che possono essere
uLlllzzaLl a desLlnazlone per correggere evenLuall errorl rlsconLraLl nel paccheLLl senza dover rlchledere una
rlLrasmlsslone. ln parLlcolare l'lnformazlone relaLlva al camplone n vlene lnserlLa:
! nel paccheLLo correnLe ad alLo blL raLe
! nel paccheLLo seguenLe a basso blL raLe
ll prezzo che sl paga uLlllzzando Lale Lecnlca sLa nella magglor quanLlLa dl daLl che e necessarlo LrasmeLLere.
Ce però da conslderare che nel caso ln cul salLlno due paccheLLl consecuLlvl, dl faLLo cl sl rlLrova a non avere
alcuna lnformazlone rlguardo ad un cerLo paccheLLo. ln Lal caso non c'e modo per correggere l'errore.


l parameLrl da Lenere ln conslderazlone nel conLesLo dl una sesslone vocale sono:

! k|tardo:
e ll parameLro plu lmporLanLe Lra l Lre perche nel caso ln cul ll rlLardo dl aLLraverso sl allunga Lroppo
sl manlfesLa la fasLldosa sensazlone che l'lnLerlocuLore sla lenLo dl rlflessl o che non abbla essendo
che non lo sl vede reaglre. L'l1u ha sLablllLo delle soglle oggeLLlve ln base alle quall valuLare se un
cerLo rlLardo e Lollerablle o meno. ln parLlcolare l'orecchlo umano non rlsconLra alcuna dlfferenza
rlspeLLo ad una conversazlone dal vlvo quando ll rlLardo e al masslmo 130ms, menLre un rlLardo che
supera l 400ms e conslderaLo LoLalmenLe lnacceLablle anche per collegamenLl lnLerconLlnenLall.
! 8anda:
ll Lrafflco vocale, a dlfferenza dl quello daLl, e dl Llpo anelasLlco. Þer la Lrasmlsslone dl voce su lÞ
sono necessarl 64kbps: se dlsponessl dl una banda magglore quella ln eccesso sarebbelnuLlllzzaLa
menLre se non ne avessl abbasLanza per un perlodo dl Lempo Lroppo lungo la comunlcazlone non
sarebbe posslblle.
! Þerd|te:
purche le perdlLe non sl accumullno LuLLe ln un plnLervallo dl Lempo abbasLanza breve, una cerLa
percenLuale dl perdlLa e sopporLablle sla per quanLo rlguarda l'audlo che per ll vldeo. ln parLlcolare
e Lollerablle una perdlLa dl daLl flno al 3•.

k1Þ - kea| 1|me Þrotoco|


ll proLocollo 81Þ sl pone a llvello Appllcazlone e dl sollLo uLlllzza l'uuÞ quale proLocollo dl llvello 1rasporLo.
l'uuÞ e ll proLocollo generalmenLe uLlllzzaLo per la Lrasmlsslone dl segnall audlo/vldeo, perche ll 1CÞ
lmplemenLa molLe funzlonallLa che non solo non sono uLlll ln Lale conLesLo ma che addlrlLLura possono
essere conLroproducenLl se appllcaLe (ad esemplo ll conLrollo della congesLlone, che poLrebbe resLrlngere
la banda del canale rallenLando la Lrasmlsslone del paccheLLl audlo/vldeo). 81Þ e qulndl un proLocollo che
sl Lrova all'lnLerno delle macchlne uLenLe, non e lmplemenLaLo nel rouLer all'lnLerno della reLe, dl modo
che non può essere uLlllzzaLo per garanLlre quallLa del servlzlo.
81Þ e ln grado dl gesLlre ll mulLlcasL naLlvo, non permeLLe dl frammenLare/rlassemblare paccheLLl
(funzlonallLa fornlLa dalla reLe soLLosLanLe), non gesLlsce gll errorl dl Lrasmlsslone e non lmpone del vlncoll
sul Llpo dl codlflca da uLlllzzare per la Lrasmlsslone del daLl audlo/vldeo. ll codec uLlllzzaLo vlene lndlcaLo
all'lnLerno del campo Þayload1ype all'lnLerno dell'lnLesLazlone del paccheLLo.
ueLLo cosa l'81Þ non fa, vedlamo ora cosa lnvece fa:

! CesLlsce la sequenza del paccheLLl numerandoll e vl appone anche un LlmesLamp. CuesL'ulLlmo
lndlca ll numero dl camplone dl un segnale vocale.
! ÞermeLLe ln rlcezlone dl slncronlzzare ll flusso audlo con quello vldeo, polche essl sono due flussl
separaLl per quanLo rlguarda la reLe lÞ. 1ale funzlonallLa ln realLa e reallzzaLa medlanLe ll supporLo
dl un secondo proLocollo, l' k1CÞ - kea| 1|me 1ransfer Þrotoco|. CuesL'ulLlmo e un proLocollo dl
conLrollo assoclaLo alle reLl lÞ e permeLLe ll monlLoragglo e conLrollo della connesslone.

81Þ non e faclle da lndlvlduare per l flrewall polche non uLlllzza porLe sLandard. CuesLo perche
poLenzlalmenLe una comunlcazlone rlchlede la gesLlone dl plu flussl conLemporaneamenLe, qulndl sara
necessarlo uLlllzzare plu dl una porLa. ualla dlfflcolLa dl lndlvlduare l paccheLLl 81Þ all'lnLerno della reLe
consegue una cerLa dlfflcolLa nella gesLlone dl una CoS assoclaLa.

ll generlco paccheLLo 81Þ presenLa ll seguenLe formaLo



dove:
! Þ1- Þay|oad 1ype: campo da 7 blL che lndlca ll Llpo dl codlflca uLlllzzaLa all'lnLerno del paccheLLo,
nonche ll Llpo dl mezzo per ll quale sl sLanno LrasporLando daLl (audlo, vldeo, audlo/vldeo..). La
presenza dl Lale campo nell'lnLesLazlone permeLLe al mlLLenLe dl camblare codlflca al volo, menLre
la comunlcazlone e gla ln aLLo.
! Numero d| Sequenza: vlene lncremenLaLo dl uno ad ognl pacheLLo del medeslmo flusso.
! 1|mestamp: lndlca la sequenza del camplonl dl uno sLesso segnale.
! SSkC: ldenLlflcaLore del mlLLenLe del flusso daLl, polche da una sLessa macchlna o addlrlLLura da una
sLessa appllcazlone possono parLlre plu flussl dlreLLl verso uno sLesso desLlnaLarlo (mlc, webcam,
lavagna..).
! CSkC: ldenLlflca l flussl orlglnall che conLrlbulscono a reallzzare un flusso mlscelaLo ln lngresso al
desLlnaLarlo.

un k1Þ M|xer e un'enLlLa ln grado dl manlpolare flussl 81Þ eseguendone ad esemplo una mlscelazlone. Ad
esemplo daLl Lre dlsLlnLl flussl 81Þ ln lngresso A, 8 e C ll Mlxer ll mlscela ln un unlco flusso u ln usclLa. ln Lal
caso u e ll SS8C - SynchronlzaLlon Source ldenLlfler, menLre l flussl A,
8 e C saranno lndlcaLl quall flussl cosLlLuLlvl del flusso mlscelaLo u
all'lnLerno del campo CS8S - ConLrlbuLlng Source ldenLlfler.
Culndl ll Mlxer può essere uLlle nel caso ln cul sl voglla reallzzare una
audloconferenza, caso ln cul ognuno del parLeclpanLl sl Lrova nella
slLuazlone dl dover gesLlre dlversl flussl ln arrlvo da LuLLl gll alLrl (senza conslderare pol operazlonl dl
rlmozlone o agglunLa dl nuovl flussl nel caso ln cul camblno l parLeclpanLl alla conferenza). ul segulLo sono
lllusLrare dlverse conflgurazlonl posslblll







ConLlnulamo ora a vedere alcunl aspeLLl dl caraLLere generale per quanLo rlguarda la voce su lÞ. nella
flgura soLLosLanLe e rappresenLaLo l'uLlllzzo dell'lÞ ln una reLe Lelefonlca aLLuale: ll prlmo LraLLo dl reLe
Lelefonlca Lradlzlonale non e camblaLo con l'lnLroduzlone dell'lÞ. ual Lermlnale Lelefonlco parLe ll segnale
vocale ln formaLo analoglco, successlvamenLe converLlLo ln segnale dlglLale prlma dl glungere ad un
CaLeway dl lngresso al backbone dell'operaLore Lelefonlco (basaLo su lÞ). ArrlvaLl al CaLeway l segnall
vocall vengono converLlLl ln paccheLLl lÞ. ln parLlcolare un CaLeway Lra la llnea Lelefonlca e quella lÞ può
essere vlsLo come composLo da:

! Med|a Gateway:
sl occupa della converslone vera e proprla del canale Lelefonlco. AcceLLa ln
lnpuL l camplonl del segnale vocale analoglco da un slsLema 1uM e
resLlLulsce ln ouLpuL l paccheLLl lÞ da spedlre verso ll CaLeway successlvo.
ll CaLeway desLlnaLarlo effeLLua l'operazlone lnversa, esLraendo l camplonl
dal paccheLLl lÞ e lmmeLLendoll ln un slsLema 1uM.

! S|gna||ng Gateway:
8eallzza l'lnLerfacclamenLo dal punLo dl vlsLa della segnalazlone ln Lermlnl
dl composlzlone del numero Lelefonlco, Lono dl llbero/occupaLo, ganclo/
agganclo della corneLLa, segnalazlone lnLerna alla reLe, lnsLaurazlone della
chlamaLa al glusLo end-polnL, rlchlamaLa su occupaLo, ldenLlflcaLlvo
chlamanLe, conversazlone a Lre, ... MenLre ll medla gaLeway esegue poche
Llpologle dl operazlonl ad alLa veloclLa ll slgnallng gaLeway effeLLua un gran
numero dl dlverse operazlonl a bassa veloclLa, perche meno frequenLl rlspeLLo all'lnvlo dl paccheLLl.

! Gateway contro||er:
Svolge delle funzlonl dl caraLLere
generale. Ad esemplo sl occupa dl dlre al
Medla CaLeway "Þrendl ll canale x dl un
qualche 1uM e manda e lnolLralo verso
quesLo lndlrlzzo lÞ ?" oppure "se
arrlvano paccheLLl con un cerLo
conLenuLo prendl l camplonl e lmmeLLlll
nello sloL x del 1uM ln usclLa".


AlLernaLlva allo schema dl uLlllzzo dell'lÞ sulla reLe Lelefonlca appena dlscusso e
ll seguenLe. l poLenzlall uLenLl possono essere collegaLl sla alla normale
Lelefonlca che dlreLLamenLe al CeLaway per l'accesso alla reLe basaLa su lÞ. ua
noLare e nel caso dl Lelefonl volÞ e ÞC ll CaLeway può benlsslmo essere
lmplemenLaLo all'lnLerno della posLazlone uLenLe per effeLLuare le converslonl
A/u e u/A e le operazlonl dl lmpaccheLLamenLo del
camplonl.
nel caso ln cul lnflne sl volesse candare ad
lnLeraglre con la coslddeLLa "8eLe lnLelllgenLe" per
usufrulre dl servlzl che vadano olLre ll sempllce
LrasporLo del segnale vocale, lo schema dlvenLa quello esposLo sulla dl segulLo.
l servlzl agglunLlvl sono fornlLl medlanLe del server apposlLl
Þrotoco||| d| segna|az|one

Andlamo ora ad esamlnare l proLocolll dl segnalazlone per la voce su lÞ, ovvero proLocolll per la gesLlone
delle chlamaLe. Le operazlonl dl gesLlone della comunlcazlone dl lnLeresse sono le seguenLl:
! lndlrlzzamenLo: ovvero come sl fa a Lrovare ll desLlnaLarlo dl una cerLa chlamaLa.
! 1rasporLo del daLl
! Slcurezza della comunlcazlone
! SupporLo dl servlzl dl reLe lnLelllgenLe che vanno olLre la sempllce comunlcazlone vocale
Le alLernaLlve posslblll sono due:
! n.323 dell'l1u
! SIÞ dell'lL1l
vedlamole plu ln deLLagllo.


n.323
lnlzlalmenLe sl era pensaLo all'P.323 come un proLocollo per la segnalazlone delle chlamaLe su reLe locale.
CuesLo perche all'epoca la banda necessarla per reallzzare una comunlcazlone audlo/vldeo era dlsponlblle
solo nel conLesLo delle reLl locall, quella dlsponlblle sulle reLl geograflche era davvero Lroppo rlsLreLLa. ln
segulLo, man mano che la slLuazlone delle reLl geograflche e andaLa mlgllorando, ln Lermlnl dl congesLlone
e dl banda, sl e lnlzlaLo a pensare ad un'esLenslone del proLocollo anche a quesLe ulLlme. ll proLocollo
P.323 offre supporLo alle
chlamaLe audlo, vldeo e alla
condlvlslone dl daLl (ad
esemplo la whlLeboard).
una posslblle conflgurazlone
dl reLe che uLlllzza P.323 e la
seguenLe, dove sl noLe come
(nella sua concezlone lnlzlale)
la reLe locale poLeva essere
"esLesa" aLLraverso del canall
che possono essere lSun o dl
Lelefonla (ÞC1S - Þlaln Cld
1elephone Servlce) usando un modem analoglco. Cuello lSun e lnfaLLl un canale a commuLazlone dl
clrculLo, dl modo che aperLo ll canale sono a dlsposlzlone 128kbps flssl ( dl modo che ll rlLardo dl
aLLraversamenLo e cosLanLe). ll CaLeway permeLLe agll uLenLl remoLl dl collegarsl alla reLe locale.
un Gatekeeper rappresenLa ll conLrollore dl un'area, dl modo che quando sl lnLende fare una qualche
operazlone dl segnalazlone (ad esemplo cl sl vuole conneLLere ad un uLenLe) e necessarlo andare a
conLaLLare ll gaLekeeper dl zona perche fornlsca le lndlcazlonl a rlguardo (la connesslone e posslblle o no,
poslzlone e lndlrlzzo dell'uLenLe che sl vuole conLaLLare,..). Þlu ln parLlcolare per zona sl lnLende un lnsleme
dl elemenLl P.323 gesLlLl al plu da un solo gaLekeeper, senza alcuna assunzlone rlguardo la Lopologla della
reLe soLLosLanLe.
una cosa che non e vlsuallzzaLa nello schema precedenLe e ll MCU - Mu|t|po|nt Contro| Un|t, all'lnLerno
della quale possono essere dlsLlnLl due componenLl:

! ll Mu|t|po|nt Contro||er: permeLLe dl negozlare le mlnlme capablllLles comunl Lra coloro che
lnLraprendono la comunlcazlone.
! ll Mu|t|po|nt Þrocessor: permeLLe dl fare mlxlng e swlLchlng del varl flussl, ovvero prende dlversl
flussl ln lngresso ed e ln grado dl dlsLrlbulrll su una cerLa serle dl desLlnaLarl.

Lale unlLa e uLlllzzaLa ln caso dl conferenza Lra Lre o plu Lermlnall ln modallLa unlcasL o dl conferenza Lra Lre
o plu Lermlnall ln modallLa mlsLa, unlcasL e mulLlcasL.


Þer quanLo rlguarda l'archlLeLLura proLocollare, quesLa e rappresenLablle dal seguenLe schema








La seguenLe flgura lllusLra quelle che sono le fasl per aprlre una comunlcazlone Lra due Lermlnall con
l'P.323. Þer la sola fase dl aperLura vengono uLlllzzaLl ben Lre proLocolll dlfferenLl, a parLe l'81Þ che
rlguarda la Lrasmlsslone sul canale vero e proprlo: l' P.223 8AS, ll C.931 e l' P.243. CuesLo modo dl aglre da
un pò fasLldlo, polche la sLandardlzzazlone da parLe dl l1u dl Lroppl proLocolll per reallzzare funzlonallLa
speclflche lngarbuglla alquanLo la fase dl reallzzazlone.
1kASMISSICNL AUDIC]VIDLC
codec audlo/vldeo,81Þ,uuÞ,lÞ
CCN1kCLLC DLL CANALL VCCALL]VIDLC
rlguarda la cldlflca del segnale e la
gesLlone del canale
SLGNALA2ICNL
1kASMISSICNL DA1I
Lrasmlsslone daLl
classlca, aslncrona


nonosLanLe oggl eslsLano ln commerclo dlverse appllcazlonl basaLe su Lale proLocollo, LendenzlalmenLe cl
sl va orlenLando verso l'uLlllzzo dl SlÞ.


SIÞ - Sess|on In|t|at|on Þrotoco|

ll proLocollo SlÞ e una proposLa naLa ln amblLo lL1l (lnfaLLl la sLruLLura del paccheLLl SlÞ e molLo slmlle a
quella del paccheLLl P11Þ), svlluppaLo ex-novo e locallzzaLo a llvello Appllcazlone.
Le caraLLerlsLlche prlnclpall dl Lale proLocollo sono le seguenLl:
! Gest|one de||a segna|az|one:
SlÞ sl occupa solo della gesLlone delle chlamaLe, non dl come sl codlflcano l segnall audlo/vldeo.
lnolLre non sl occupa dl prenoLare delle rlsorse sulla reLe per la comunlcazlone al flne dl garanLlre
una cerLa quallLa del servlzlo.
! Magg|ore semp||c|tà e |eggerezza
! Segna|az|one d| t|po end-to-end:
l paccheLLl SlÞ vengono lnLerpreLaLl solo dalle macchlne uLenLe lmpllcaLe nella comunlcazlone, l
rouLer ll vedono solo come normall paccheLLl lÞ. ua qul derlva l' lmposslbllelLa dl prenoLare delle
rlsorse sulla reLe, polche le rlchlesLe per Lall prenoLazlonl dovrebbero essere faLLe proprlo a quesLl
ulLlml.
! Iorn|tura name mapp|ng:
ll desLlnaLarlo dl una chlamaLa SlÞ e lnfaLLl espresso nella forma uLenLe[domlnlo, dove "domlnlo" e
un normale domlnlo reglsLraLo all'lnLerno dl un unS. ll nome uLenLe dovra essere converLlLo ln un
lndlrlzzo lÞ per poLer ldenLlflcare ll desLlnaLarlo della comunlcazlone.
! Þersona| mob|||ty:
l'uLenLe può presenLarsl alla reLe lÞ anche camblando ll suo lndlrlzzo lÞ ognl volLa che sl rlcollega,
polche LanLo e ldenLlflcaLo uLlllzzando un nome e non ll suo lndlrlzzo lÞ. ua noLare e però che
l'lndlrlzzo lÞ non può varlare menLre una sesslone SlÞ e ln corso.
! L' un protoco||o basato su de||e |nteraz|on| d| t|po c||ent-server
nella faLLlspecle nel corso dl una sesslone SlÞ vocale ll chlamanLe funge da cllenL, menLre ll
desLlnaLarlo fa le vecl del server anche se dl faLLo nella macchlna uLenLe sono lmplemenLaLe
enLrambe le modallLa dl funzlonamenLo. ne consegue che quesLa e una dl quelle appllcazlonl che
creano del probleml ln presenza dl nA1 polche le macchlne uLenLe, poLenzlall server, poLrebbero
essere poslzlonaLe dleLro ad uno dl essl.
! Þuò appogg|ars| su un protoco||o d| ||ve||o trasporto qua|e 1CÞ, 1LS o UDÞ
dove 1LS e un'evoluzlone del proLocollo SSL capace dl fornlre auLenLlcazlone dl enLrambe le parLl e
la clfraLura del daLl che flulscono sulla connesslone 1CÞ. nel caso ln cul sl può fare a meno dl Lall
funzlonallLa dl slcurezza la scelLa plu comune e l'uLlllzzo dell'uuÞ oppure del solo 1CÞ (polche esso
consenLe dl bucare plu facllmenLe l flrewall, spesso conflguraLl ln modo da bloccare l flussl uuÞ a
meno che quesLl non slano legaLl a delle rlchlesLe dl Llpo unS).
! Non v|ene effettuata frammentaz|one
1uLLo ll messagglo deve essere conLenuLo all'lnLerno dl un paccheLLo, la cul dlmenslone e funzlone
della M1u del LraLLo dl reLe ln conslderazlone.

l servlzl supporLaLl da SlÞ vanno dalla chlamaLa vocale all'L-presence, dall'lnsLanL Messanglng alla
condlvlslone dl flle e whlLeboard. ul faLLo non per LuLLl quesLl servlzl eslsLono delle lmplemenLazlonl
aLLualmenLe ln commerclo.
nel caso dl lmplemenLazlone del servlzlo dl chlamaLa volÞ l prlnclpall servlzl offerLl sono l seguenLl:
! Locallzzazlone dell'uLenLe, nel senso dl locallzzazlone dell'lndlrlzzo lÞ del desLlnaLarlo
! ueLermlnazlone delle capaclLa dell'uLenLe per quanLo concerne ad esemplo l codec uLlllzzablll e l
relaLlvl parameLrl dl uLlllzzo
! noLlflca della dlsponlblllLa dell'uLenLe ad acceLLare l'lnsLaurazlone della comunlcazlone
! SeLup (lmposLazlone del parameLrl) e gesLlone della chlamaLa
Lo sLack proLocollare lnerenLe le funzlonallLa del SlÞ e schemaLlzzablle come segue






1kASMISSICNL AUDIC]VIDLC
codec audlo/vldeo,81Þ,uuÞ,lÞ
CCN1kCLLC DLLLA CCDIIICA
sl basa su una serle dl feedback
CCN1kCLLC DLLLA 1kASMISSICNL DA UN SLkVLk DI
MA1LkIALL AUDIC]VIDLC GIA' MLMCkI22A1C
funzlonallLa sLlle leLLore uvu ma con maLerlale audlo/vldeo
memorlzzaLo su un server ln reLe
1kASMISSICNL DA1I
Lrasmlsslone daLl
classlca, aslncrona

IMÞLLMLN1A2ICNL
DLL SIÞ VLkA L
ÞkCÞkIA

nel conLesLo dell'lmplemenLazlone SlÞ vlene uLlllzzaLo ll proLocollo SDÞ - Sess|on Descr|pt|on Þrotoco| per
la clfraLura dl alcunl Llpl dl messaggl (e qulndl lncluso nel corpo del messagglo SlÞ). Þlu che un proLocollo
l'SuÞ può essere conslderaLo un meccanlsmo dl clfraLura dl alcunl Llpl dl lnfomazlonl, uLlllzzaLo per
descrlvere le caraLLerlsLlche parLlcolarl dl una sesslone mulLlmedlale che sl lnLende lnsLaurare. Se ne
deduce che l'SuÞ e uLlllzzaLo prlnclpalmenLe nelle fasl lnlzlall dl lnsLaurazlone della chlamaLa, duranLe le
quall ha luogo, Lra l due lnLerlocuLorl, una negozlazlone del parameLrl della comunlcazlone quall
! numero dl flussl mulLlmedlall
! 1lpo dl medla (audlo, vldeo, €), perche ad esemplo se chledo una chlamaLa vldeo e dall'alLra parLe
non ce una webcam allora la sesslone non può essere lnsLauraLa.
! Codec (P.261 vldeo, MÞLC vldeo, €)
! ÞroLocollodl LrasporLo da usare (81Þ/uuÞ/lÞ, P.320, €)
! 8anda rlchlesLa (anche se pol comunque ll SlÞ non sl preoccupa dl garanLlre che Lale lndlcazlone
venga rlspeLLaLa)
! lndlrlzzl lÞ e le porLe da uLlllzzare per l flussl mulLlmedlall
! 1empo dl lnlzlo / flne del flusso
! SorgenLe
l messaggl SuÞ sl compongono dl due parLl
! sezlone SLSSICNL
conLlene lnformazlonl generall su LuLLa la sesslone,
ovvero vallde per LuLLl l flussl mulLlmedlall che la
compongono. 1ale parLe lnlzla con la dlclLura "v="

! sezlone MLDIA
ln un messagglo SuÞ possono essere presenLl una o plu sezlonl dl quesLo Llpo (al plu un numero dl
volLe parl al numero del medla uLlllzzaLl). La dlclLura "m=" lndlca una rlga conLenenLe un bloccheLLo
dl comandl che descrlve le caraLLerlsLlche dl un parLlcolare flusso della sesslone.

vedlamo qulndl alcunl esempl a rlguardo







Sez|one SLSSICNL
speclflca la verslone, l'lndlrlzzo lÞ e la porLa
del creaLore della sesslone mulLlmedlale,
lnformazlonl sulla connesslone (usando
l'lÞv4 sl vuole ragglungere la macchlna
medlaserver.pollLo.lL) e sulla banda rlchlesLa.
Sez|one MLDIA
speclflca la presenza dl un unlco canale audlo che
dovra essere Lrasmesso con 81Þ alla porLa 3004
uLlllzzando un codec Lra due alLernaLlve quall
ÞCMu e CSM (lndlcaLl da 0 e 3). A seconda dl quale
del due vlene scelLo sl avra ll corrlspondenLe
valore nel campo "payload Lype" del paccheLLl
lnvlaLl.



l prlnclpall componenLl dl SlÞ sono l seguenLl:
! Med|a Þroxy, Med|a Server, MCU
dedlcaLl a svolgere delle operazlonl
che hanno a che fare con l flussl
audlo/vldeo. CuesLl non sono legaLl
sLreLLamenLe a SlÞ, ovvero non
sono legaLl alle operazlonl dl
segnalazlone. ll Med|a Þroxy
lspezlona l paccheLLl medla per
lndlvlduare se per caso conLengono
qualcosa dl dannoso. ulversamenLe
può anche essere uLlllzzaLo per
operare delle rlcodlflche al flne dl
faclllLare la vlLa dl coloro che
rlsledono all'lnLerno dl un cerLo
domlnlo: gll uLenLl possono lnfaLLl uLlllzzare pochl (anche uno solo) codec, sl preoccupera ll proxy dl
rlcodlflcare ll conLenuLo del paccheLLl medlanLe ll correLLo codec concordaLo per la speclflca sesslone dl
comunlcazlone. ll Med|a Server fornlsce servlzl a valore agglunLo quall la segreLerla Lelefonlca o la
muslca dl lnLraLLenlmenLo nel caso dl chlamaLo gla lmpegnaLo ln una comunlcazlone.
! AAA Server
come nel caso delle vÞn, Lale server conLlene LuLLe le lnformazlonl necessarle per l'auLenLlcazlone degll
uLenLl e la llsLa del servlzl al quall quesLl possono accedere. 1ale server, se eslsLe, eslsLe gla dl per se per
alLrl moLlvl, non e un componenLe sLreLLamenLe legaLo a SlÞ.
! 1utt| g|| a|tr|
molLo spesso vengono reallzzaLl ln un unlco Server, sopraLLuLLo nel caso ln cul ll numero delle posslblll
rlchlesLe da gesLlre non e molLo elevaLo.
! Utente
dl qualunque Llpo esso sla, dlspone dl uno User Agent. CuesL'ulLlmo ha due faccle, una CllenL e l'alLra
Server, che enLrano ln azlone rlspeLLlvamenLe quando l' uLenLe avvla una chlamaLa e quando lnvece ne
e desLlnaLarlo. La prlma operazlone che deve complere lo user AgenL quando enLra ln funzlone e
conLaLLare ll keg|strar Server del proprlo domlnlo per rendergll noLo che un parLlcolare uLenLe x e ora
dlsponlblle sulla macchlna avenLe lndlrlzzo lÞ ? (dlversamenLe nessuno sarebbe ln grado dl conLaLLare
l'uLenLe). ln parole povere Lale server Llene Lraccla del mapplng Lra uLenLe e ll suo lndlrlzzo lÞ. ll
Locat|on Server e lnvece quello cul cl sl rlvolge per rlcercare un uLenLe che sl vuole conLaLLare.
L'Cutbound]Inbound Þroxy Server lnvece vlene conLaLLaLo dall'uLenLe nel momenLo ln cul, una volLa
reglsLraLo, voglla effeLLuare una qualche operazlone perche assolva alle operazlonl prellmlnarl quall ad
esemplo reperlre l'lndlrlzzo lÞ del desLlnaLarlo e conLaLLare l'AAA Server per verlflcare l'ammlsslblllLa
della rlchlesLa arrlvaLagll. MolLo spesso quesLl ulLlml componenLl (8eglsLrar server, locaLlon server,
proxy server) collassano ln un unlco server deLLo generlcamenLe SIÞ Server. ll ked|rect Server e un
redlrezlonaLore dl chlamaLe uLlle per lmplemenLare pollLlche lnLelllgenLl. CuesLo permeLLe operazlonl
quall ll "follow me", ovvero posso dlre al server "Cuarda, dopo una cerLa ora sarò ragglunglblle a
quesL'alLro dlverso numero dl Lelefono o lndlrlzzo lÞ", oppure la devlazlone verso la segreLerla
Lelefonlca (poLenzlalmenLe slLuaLa su un'alLro server) dl una chlamaLa per la quale non ce sLaLa alcuna
rlsposLa.

vedlamo qulndl ora un esemplo concreLo del funzlonamenLo dl Lale archlLeLLura: l'uLenLe fulvlo[pollLo.lL
ha blsogno dl conoscere l'lndlrlzzo lÞ dell'uLenLe reLLore[unlLo.lL polche ha lnLenzlone dl aprlre con esso
una comunlcazlone mulLlmedlale.
ul conseguenza sl rlvolge al Server
SlÞ (che funge anche da Þroxy
Server) del proprlo domlnlo perche
gll fornlsca Lale lnformazlone.
CuesL'ulLlmo come prlma cosa va
ad ldenLlflcare ll SlÞ Server del
domlnlo del desLlnaLarlo (o uno del
server polche e posslblle che ce ne
slano plu dl uno). lndlvlduaLolo, gll
sara rlchlesLo l'lndlrlzzo lÞ del
desLlnaLarlo cercaLo, oppure anche
dl occuparsl lul sLesso dl lnolLrare a
quesL'ulLlmo la rlchlesLa dl aperLura della comunlcazlone mulLlmedlale (l'lndlrlzzo lÞ del desLlnaLarlo sara
lndlcaLo nel paccheLLl dl rlsposLa). CuesLo Llpo dl organlzzazlone basaLa sulla suddlvlslone ln domlnl
permeLLe che ognuno dl quesLl sla compleLamenLe auLonomo per quanLo rlguarda la scelLa del noml degll
uLenLl. lnolLre alLro rllevanLe vanLagglo e che un uLenLe e ln grado dl sposLarsl ln una qualunque parLe del
mondo ed essere comunque ragglunglblle prevla comunlcazlone della proprla poslzlone/lndlrlzzo lÞ al
server del proprlo domlnlo. Se ne deduce qulndl che ll problema prlnclpale e deflnlre ll meccanlsmo dl
lnLerconnesslone Lra l varl domlnl SlÞ.


Ind|r|zzamento |n SIÞ

Come e sLaLo gla accennaLo ln precedenza ln SlÞ sl lndlrlzza un uLenLe e non un Lermlnale ben preclso, dl
modo che quesLo può anche collegarsl alla reLe ognl volLa con un lndlrlzzo lÞ dlfferenLe (perche lo ha
camblaLo lul o perche magarl ha proprlo camblaLo posLazlone dl collegamenLo). ll generlco formaLo dl
lndlrlzzamenLo e ll seguenLe

nomeutente@dominio.com

dove ll domlnlo spesso colnclde con quello dl posLa eleLLronlca e può essere sla ll nome dl una macchlna
che un lndlrlzzo lÞ, oppure ancora un nome dl domlnlo pluLLosLo che un server dl domlnlo (proprlo come
accade nel caso della posLa eleLLronlca). un formaLo dl lndlrlzzamenLo alLernaLlvo e lnvece

num_telefono@gateway

che dl faLLo permeLLe dl lndlrlzzare una chlamaLa anche verso un uLenLe dl reLe Lelefonlca "normale", non
solo verso uLenLl SlÞ. ln Lal caso qulndl al posLo del domlnlo e necessarlo speclflcare ll CaLeway da uLlllzzare
(espresso come ll nome dl una macchlna o ll rlspeLLlvo lndlrlzzo lÞ) per poLer enLrare ln conLaLLo con la reLe
Lelefonlca convenzlonale.
L' posslblle lnolLre personallzzare la chlamaLa (ln Lermlnl dl proLocollo dl LrasporLo uLlllzzaLo, lndrlzzo dl
mulLlcasL, 11L..) speclflcando del parameLrl

utente:passw@dominio:porta;parametri?...

Þer esemplo

" sip:nome.cognome@dominio.it;maddr=239.255.1.1;ttl=15




" sip:nome.cognome@dominio.it?subject=project




" sip:+1-212-555-1212:1234@gateway.com;user=phone




L' lnLulLlvo caplre come ln Lal modo sl possa speclflcamenLe lndlrlzzare ll domlnlo dl apparLenenza
dell'uLenLe, ma non lndlcare espllclLamenLe la macchlna sulla quale esso sl Lrova. Þolche per meLLersl ln
conLaLLo con quesL'ulLlmo e però necessarlo conoscere ll suo lndlrlzzo lÞ aLLuale, per reperlrlo vlene usaLa
una serle dl 8esource 8ecord unS dedlcaLl (che rlcalcano l meccanlsml dl posLa eleLLronlca e l rlspeLLlvl 88
dl Llpo Mx):
nome uLenLe
ÞarameLrl
Sl uLlllzza ll mulLlcasL address speclflcaLo per
lndlrlzzare ll desLlnaLarlo della chlamaLa. ll
11L e usaLo per llmlLare Lale mulLlcasL.
ulclLura uLlllzzaLa per passare ll valore del
parameLrl, allo sLesso modo ln cul accade sul web
Cuando sl vuole conLaLLare un uLenLe della reLe Lelefonlca
convenzlonale blsogna speclflcare ll gaLeway per avervl
accesso e ll parameLro user con valore "phone"
! SkV
Sono usaLl per deflnlre l Server legaLl a SlÞ. La slnLassl usaLa e la seguenLe
_Service._Proto.Name TTL Class SRV Priority Weight Port Target






e
! 11L:
lndlca ll Lempo dl valldlLa dell'lnformazlone conLenuLa nel 88.

! ÞkICkI1¥ e WLIGn1:
hanno senso se cl sono plu record avenLl la parLe lnzlale uguale (_Servlce._ÞroLo.name). ln Lal
caso Lall campl sono uLlllzzaLl per sLablllre un ordlne ln base al quale ll Server unS deve fornlre
quel 88 quando gll vlene lnolLraLa una rlchlesLa per lo speclflco domlnlo. lnolLre uLlllzzando Lall
campl e posslblle suddlvldere a placlmenLo ll carlco dl lavoro Lra plu Server all'lnLerno del
medeslmo domlnlo. Þer esemplo per ll domlnlo foo.com



dove l prlml quaLLro server fornlscono a due a due ll medeslmo servlzlo. Þer l prlml due offrono
un servlzlo su uuÞ e per essl e sLaLo lmposLo un ordlne dl prlorlLa, nel senso che sl andra a
conLaLLare ll server2 solo nel momenLo ln cul ll server1 sla lmposslblllLaLo ad assolvere al
servlzlo. Cll alLrl due offrono un servlzlo su 1CÞ e per essl e sLaLa lmposLaLa una rlparLlzlone del
carlco dl lavoro ln proporzlonl 1/3 e 2/3 (lnfaLLl ll server1 verra messo ln LesLa quaLLro volLe su
sel). ua noLare e lnolLre che SlÞS sLa ad lndlcare un'lmplemenLazlone dl SlÞ su 1LS (proLocollo che
all'aperLura della connesslone cerca dl auLenLlcare almeno ll server, opzlonalmenLe anche ll
cllenL), che dl conseguenza usa 1CÞ come proLocollo dl llvello LrasporLo.

! ÞCk1:
numero dl porLa.

! 1AkGL1:
nome della macchlna desLlnaLarlo o lndlrlzzo lÞ assoclaLo.

qulndl ad esemplo

_sip._udp.foo.com 43200 IN SRV 10 10 5060 sipserver.foo.com.


nome del servlzlo
ÞroLocollo dl llvello
1rasporLo uLlllzzaLo
nome del domlnlo
! NAÞ1k
Lale Llpo dl record deflnlsce quale proLocollo dl LrasporLo debba essere preferlLo per accedere ad
un cerLo servlzlo (1CÞ, uuÞ, SC1Þ, 1LS/1CÞ). ul conseguenza non e obbllgaLorlo polche sl poLrebbe
benlsslmo andare a cercare un record dl Llpo S8v, che gla conLlene le lnformazlonl sul servlzlo e sul
proLocollo dl LrasporLo. La slnLassl generale dl Lale record e la seguenLe

domain-name TTL Class NAPTR order preference flags service regexp target

dove l campl CkDLk e ÞkLILkLNCL assolvono allo sLesso complLo del campl ÞrlorlLy e WelghL del
record S8v. Culndl ad esemplo

foo.com. 43200 IN NAPTR 60 50 "s" "SIP+D2U" "" _sip._udp.foo.com.

ua quanLo deLLo sl ha che la conflgurazlone unS dl un domlnlo (ad esemplo foo.com) poLrebbe essere
lnLeramenLe descrlLLa come segue



l messaggl SlÞ rlcalcano la sLruLLura slnLaLLlca del messaggl P11Þ, con una prlma rlga ln cul e presenLe ll
comando o ll codlce dl sLaLo (se sl LraLLa dl una rlsposLa) segulLa da una serle dl rlghe dl lnLesLazlone.
CuesLe comprendono lnformazlonl relaLlve agll uLenLl lnLeressaLl al messagglo, ll percorso che esso deve
complere prlma dl glungere alla desLlnazlone, ecc. uopo una llnea
vuoLa vlene posLo lnflne ll carlco uLlle del messagglo, sollLamenLe
codlflcaLo con SuÞ.
l comandl posslblll sono l seguenLl:

! kLGIS1Lk:
uLlllzzaLo dallo user AgenL per reglsLrare un lndlrlzzo SlÞ presso
ll 8eglsLrar Server (lncluso nel plu generlco SlÞ Server). Þuò
1
2
essere lnvlaLo all'lndlrlzzo mulLlcasL corrlspondenLe a LuLLl l SlÞ Server (224.0.1.73).
! INVI1L:
uLlllzzaLo per rlchledere l'lnlzlo dl una comunlcazlone, dl modo che può essere lndlrlzzaLo
dlreLLamenLe verso ll desLlnaLarlo flnale nel caso ln cul se ne conosca l'lndlrlzzo lÞ. ulversamenLe
sara spedlLo al Server SlÞ del proprlo domlnlo che sl occupera dl lnolLrarlo verso ll vero desLlnaLarlo
uLlllzzando le rlsorse unS. Þuò essere lnvlaLo anche duranLe una conversazlone e può conLenere una
descrlzlone SuÞ del parameLrl rlchlesLl.
! ACk:
Lale messagglo vlene generaLo dal chlamanLe e lndlca una concluslone poslLlva della chlamaLa. 1ale
messagglo chlude ul Lhree-way-handshacklng composLo da lnvl1L-->S1A1uS Ck-->ACk.
! 8¥L:
provoca la chlusura della chlamaLa. Cualora venga lnvlaLo duranLe la fase dl connesslone equlvale ad
un rlfluLo della chlamaLa.
! CANCLL:
cancella una rlchlesLa dl connesslone ancora pendenLe, ovvero per la quale non sl e ancora avuLa
una rlsposLa.
! CÞ1ICNS:
uLlllzzaLo per scoprlre le capaclLa dello uA, qulndl uLlle per conoscere le capaclLa dl un Lermlnale
aLLualmenLe lmpegnaLo ln una sesslone dl comunlcazlone.
! SU8SCkI8L:
uLlllzzaLo per soLLoscrlvere lo sLaLo dl un alLro uA (e-presence). Þuò essere lnolLraLo sla allo uA
desLlnazlone, sla ad un e-presence server (a seconda del modello dl e-presence uLlllzzaLo nel
domlnlo) che provvedera a noLlflcarlo agll alLrl uLenLl perlodlcamenLe.
! NC1II¥:
noLlflca un camblamenLo dl sLaLo dl uno user AgenL.
! MLSSAGL:
usaLo per l'lnolLro dl un messagglo (LesLo, xML, ...) Lra due uAs (lnsLanL messaglng).

l campl dell'lnLesLazlone sono lnvece l seguenLl:

! IkCM, 1C:
lndlca l'lnlzlaLore e ll LermlnaLore della rlchlesLa SlÞ. ll valore dl Lall campl vlene manLenuLo lnLaLLo
nel messagglo dl rlLorno, cloe l campl lrom e 1o non vengono scamblaLl nel messaggl da qualunque
del due lnLerlocuLorl essl provengano.
! CCN1AC1:
lndlca l'lndlrlzzo lÞ da conLaLLare per fare ln modo che gll user AgenL sl parllno dlreLLamenLe, senza
colnvolgere l server SlÞ.
! kLCCkD kCU1ING:
lndlca che l paccheLLl SlÞ spedlLl devono sempre LranslLare aLLraverso ll proxy. 1ermlnaLa la fase dl
scoperLa dell'lndlrlzzo lÞ del desLlnaLarlo (qualora non lo sl conosca
gla) medlanLe l SlÞ Server e posslblle lnfaLLl avvlare una comunlcazlone
dlreLLa Lra gll uA, oppure conLlnuare ad usufrulre della medlazlone del
SlÞ Server. Come ben sapplamo l Server possono rlsledere anche
all'lnLerno delle macchlne uLenLe e danno del probleml nel caso ln cul
slano collocaLl dleLro un nA1, dl modo che sl e sollLl collocare l SlÞ
Server al dl fuorl del nA1. Lo uA sul Lermlnale A sl sara reglsLraLo sul server SlÞ, dl modo che ll nA1
ha creaLo nelle sue Labelle un'assoclazlone (lndlrlzzo lÞ --> lndlrlzzo lÞ + numero dl porLa) per poLerlo
lndlrlzzare.
! VIA:
Campo che permeLLe dl Lenere Lraccla del percorso del messagglo, necessarlo quando la rlchlesLa SlÞ
e gesLlLa da plu server (proxy) ln cascaLa.
! CALL-ID:
ll valore dl Lale campo ldenLlflca unlvocamenLe un lnvlLo (se la procedura equella dl lnvl1L) e LuLLe
le reglsLrazlonl dl un uLenLe (ln caso dl 8LClS1L8).
! CSLÇ:
numero dl sequenza necessarlo polche ll proLocollo dl llvello dl LrasporLo uLlllzzaLo poLrebbe essere
uuÞ, dl modo che c'e la posslblllLa che l messaggl arrlvlno fuorl ordlne. uLlllzzando ll valore dl Lale
campo e lnvece posslblle accopplare correLLamenLe le rlsposLe alle rlchlesLe.
! SU8ILC1:
consenLe dl speclflcare l'oggeLLo della chlamaLa.
! CCN1LN1 1¥ÞL:
Speclflca la Llpologla del payload conLenuLo nel paccheLLo SlÞ.
! CCN1LN1 LLNGn1:
lndlca la lunghezza del payload.
! CCN1LN1 LNCCDING:
lndlca se la codlflca del conLenuLo ha sublLo manlpolazlonl, quall ad esemplo una compresslone.

l codlcl dl errore che possono essere
rlcevuLl sono rlassunLl nella seguenLe
Labella






deLLo quesLo, passlamo a vedere degll esempl dl messaggl SlÞ
Lsemplo dl messagglo SlÞ dl Llpo INVI1L . La prlma rlga
descrlve ll Llpo del messagglo ln manlera del LuLLo slmllare
a quanLo accade nel messaggl P11Þ lndlcando:
! ll nome del meLodo scrlLLo LuLLo maluscolo
! l'u8l (slp:called[dom.com)
! la verslone del proLocollo
pol nelle rlghe dl header sono lndlcaLl ordlnaLamenLe: ll
percorso segulLo, mlLLenLe,desLlnaLarlo, l'ld (scelLo a caso
dal mlLLenLe) della chlamaLa, ll command sequence (che
lndlca che quello correnLe e ll prlmo lnvl1L), ll sub[ecL, ll
Llpo del corpo del messagglo (essendo un lnvlLe c'e un
corpo ed e cosLlLulLo da una descrlzlone faLLa con sdp dl
quelll che sono l parameLrl della sesslone) e la sua lunghezza. Culndl pol una rlga blanca ed lnlzla ll corpo
del messagglo arLlcolaLo nelle sue sezlonl SLSSlCnL (v=0) e MLulA (m=0).

Þosslblle messagglo dl rlsposLa al precedenLe messagglo
dl lnvl1L. ll percorso e sLaLo agglornaLo appendendovl
una seconda rlga dl vlA menLre l campl from e Lo sono
ldenLlcl al messagglo precedenLe, come anche ll calllu.
Anche Lale messagglo ha un corpo cosLlLulLo da una
descrlzlone sdp del parameLrl della sesslone, la cul
lunghezza non e però speclflcaLa.





vedlamo lnflne un esemplo esausLlvo dl una sesslone SlÞ Lra due enLlLa, una chlamanLe e l'alLra rlcevenLe,
dove:
! per 1kANSA2ICNL sl lnLende la equenza dl un messagglo e relaLlva rlsposLa. ln una Lransazlone sono
manLenuLl lnvarlaLl l campl SlÞ lrom, 1o, Call-lu, Cseq. ln parLlcolare le rlsposLe 2xx chludono la
Lransazlone.
! per DIALCGC sl lnLende una relazlone Lra uA che lnlzla quando vlene rlcevuLa una rlsposLa
ºposlLlva".
ll chlamanLe lnlzla lnvlando un lnvl1L al Þroxy server
del proprlo domlnlo, ll quale dovra locallzzare ll proxy
server del domlnlo del desLlnaLarlo medlanLe le rlsorse
unS (vengono lnLerrogaLl ordlnaLamenLe l 88 nAÞ18,
S8v, A/AAAA). 1rovaLolo gll glra l'lnvl1L rlcevuLo dal
chlamanLe e noLlflca la cosa a quesL'ulLlmo medlanLe un
100 18?lnC ("Ml sLo dando da fare ma ancora non
slamo pronLl"). ll proxy server 8 a sua volLa glra l'lnvl1L
al chlamaLo e noLlflca la cosa al server A ("Po glraLo
l'lnvlLe all'uLenLe flnale ma per ora ancora non ho una
rlsposLa deflnlLlva"). Lo user AgenL dell'uLenLe flnale a
quesLo punLo lnvla una noLlflca 180 8lnClnC ("Po
avverLlLo l'uLenLe umano, ora sLo aspeLLando lul") al
server 8. 1ale noLlflca vlene lnolLraLa ln cascaLa flno al
chlamanLe. nel momenLo ln cul ll chlamaLo alza la
corneLLa vlene lnvece propagaLo flno al chlamanLe un
messagglo dl 200 Ck. A quesLo punLo ha lnlzlo ll dlalogo
dlreLLo Lra l due uA. Le noLlflche lnvlaLe sono lndlspensablll per non far scadere del LlmeouL uLlll nel caso
avvengano perdlLe dl messaggl.
Sl noLa che l prlml messaggl sono sempre lnvlaLl aLLraverso l proxy, ll che offre una magglore garanzla sul
recaplLo del messaggl conslderando anche che ll recaplLo dlreLLo del messaggl poLrebbe non essere
posslblle nel caso ln cul almeno uno del due uA fosse dleLro un nA1. Cll ulLlml messaggl sono lnvece dlreLLl
a meno che non sla sLaLo lmposLaLo ll 8ecord 8ouLe dal proxy nel messaggl precedenLl. lnflne poLrebbe
essere ellmlnaLo ll prlmo messagglo qualora lo uA del chlamanLe effeLLul dlreLLamenLe le operazlonl dl
locallzzazlone del chlamaLo necessarle, cosa però normalmenLe evlLaLa per probleml dl auLenLlcazlone.
La procedura dl rlsoluzlone dl un lndlrlzzo SlÞ sublsce delle varlazlonl nel seguenLl casl:
! L'uLenLe lndlca la porLa, oppure l'lndlrlzzo e numerlco del chlamaLo. ln Lal caso vlene al plu rlsolLo
l'lndlrlzzo con una query A/AAAA senza lnLeressare resource record dl Llpo nAÞ18 / S8v.
! 8esource 8ecord non eslsLenLl. ln parLlcolare se non eslsLe ll 88 nAÞ18 (perche magarl eslsLe un
solo Llpo dl servlzlo) vlene rlchlesLo l'S8v menLre se non eslsLe l'S8v, sl prova con quelll A/AAAA.
un esemplo degll sLep dl rlsoluzlone dl un lndlrlzzo SlÞ e ll seguenLe. ln parLlcolare sl sLa cercando dl
rlsolvere ll nome slp:bob[foo.com


AlLra sequenza dl messaggl Llplca dl SlÞ e lnolLre la seguenLe

ua noLare e che ll Server SlÞ per
effeLLuare la reglsLrazlone rlchlede
che venga superaLa una fase dl
auLenLlcazlone che segue ll sollLo
proLocollo con sflda e rlsposLa
(l'uLenLe dlmosLra la sua ldenLlLa
clfrando con la sua chlave segreLa la
sLrlnga dl sflda che ll server gll ha
lnvlaLo).






Lo standard LNUM

Lo sLandard LNUM e naLo ln conglunzlone con SlÞ ln vlrLu della necesslLa dl deflnlre un'lnfrasLruLLura che
supporLasse l vecchl lndlrlzzl numerlcl L.164, sLandard l1u che governa l meccanlsml dl allocazlone e
cosLruzlone del numerl dl Lelefono nel slsLema Lelefonlco Lradlzlonale. l Lelefonl Lradlzlonall hanno solo
LasLl numerlcl e come essl anche molLl Lelefonl lÞ (deLLl SofL-phone, Lelefonl dall'aspeLLo apparenLemenLe
Lradlzlonale ma collegaLl dlreLLamenLe alla reLe eLherneL e Lraducono un numero dl Lelefono ln un u8l SlÞ),
l cul uLenLl devono però comunque essere ln grado dl lndlrlzzare LuLLl gll uLenLl SlÞ. ln poche parole qulndl
lo sLandard LnuM provvede alla Lrasformazlone dl un numero Lelefonlco Lradlzlonale che segue lo
sLandard L.164 ln un nome uLenLe SlÞ (nome uLenLe + nome domlnlo). Þer la deLermlnazlone del domlnlo
dl apparLenenza dell'uLenLe SlÞ vengono usaLe le rlsorse unS.
Cll scenarl gll lnLerazlone posslblll sono l seguenLl:

! ChlamaLa SlÞ verso alLro uLenLe SlÞ: ln Lal caso lo sLandard LnuM non e lmpllcaLo.
! ChlamaLa da gaLeway volÞ (qulndl da reLe Lelefonlca Lradlzlonale) verso uLenLe SlÞ: ln Lal caso lo ln
conformlLa allo sLandard LnuM sl deve essere ln grado dl effeLLuare una converslone del Llpo
seguenLe +39-011-3647008 --> slp:+39-011-3647008[foo.com.
! ChlamaLa da uLenLe SlÞ verso uLenLe reLe Lelefonlca Lradlzlonale: Lale problema non vlene affronLaLo
e vlene gesLlLo dal gaLeway dl accesso alla reLe Lelefonlca.

ll funzlonamenLo dello sLandard LnuM può essere descrlLLo cosl: ll numero Lelefonlco conforme allo
sLandard L.164 vlene preso, prlvaLo del caraLLerl non numerlcl e capovolLo. CuesLo perche ll unS procede
per sufflssl (la parLe plu slgnlflcaLlva, quella
che lndlca ll soLLolnsleme plu grosso, sl Lrova
al fondo) menLre l'L.164 per preflssl. A quesLo
punLo, posLo un "." dopo ognl clfra, per avere
ll nome del domlnlo compleLo sl concaLena la
sLrlnga ".e164.arpa" (per lndlcare che deve
essere rlsolLo medlanLe lo sLandard L.164).
medlanLe Lale sLrlnga sl cerca qulndl dl
accedere alle rlsorse unS.
ll Server unS può rlspondere alla rlchlesLa dl rlsoluzlone con una llsLa dl record nAÞ18. 1all record sono un
pò dlversl da quelll vlsLl precedenLemenLe, quesLo perche Lall record non fornlscono ll nome dl un servlzlo
bensl hanno lo
scopo dl lndlcare
quale manlpolazlone
blsogna effeLLuare
per Lrasformare ll
nome desLlnaLarlo ln
un lndlrlzzo SlÞ. ln
parLlcolare vlene daLa lndlcazlone dl selezlonare LuLLll caraLLerl (".•") che sono compresl Lra l'lnlzlo ("‚") e
la flne ("ƒ") della sLrlnga e concaLenarvl ll nome dl domlnlo fornlLo dal record.

uescrlvlamo ora nel deLLagllo gll scenarl dl lnLerazlone precedenLemenLe elencaLl:

# Comun|caz|one da ÞS1N a IÞ

ln quesLo caso l'uLenLe dl reLe Lelefonlca Lradlzlonale compone un numero. La reLe Lelefonlca caplsce che ll
numero dl Lelefono deve essere dlroLLaLo verso un CaLeway SlÞ, ln vlrLu del faLLo che quel numero rlcade
ln un cerLo lnLervallo preassegnaLo ad un deLermlnaLo CaLeway. ll CaLeway a sua volLa deve ora caplre a
quale domlnlo apparLlene ll
desLlnaLarlo cercaLo, cosa che
poLrebbe anche essere dedoLLa
da un qualche preflsso del
numero dlglLaLo. ll numero
vlene prlvaLo del caraLLerl non
numerlcl, vlene capovolLo, Lra
le clfre vengono posLl caraLLerl
"." e vlene concaLenaLa ln coda
la sLrlnga ".e164.arpa". ÞarLe
qulndl la rlchlesLa verso ll Local
name Server, cul vlene passaLa
la sLrlnga. CuesLo sl occupa dl
conLaLLare l server della caLena
(evenLualmenLe parLendo da
un 8ooL name Server) al flne dl oLLenere la Lraduzlone rlchlesLagll. CLLenuLala vlene lnvlaLa una rlsposLa al
CaLeway conLenenLe la Lraduzlone nella forma user[domaln.com. 8lparLe qulndl una rlcerca sul unS per
la rlsoluzlone dl Lale nome ln un lndlrlzzo lÞ dl modo che, medlanLe l 88 rlLornaLl, ll CaLeway sara ln grado
dl locallzzare ll Server del domlnlo del desLlnaLarlo e qulndl dl conLaLLarlo per lnolLrargll la rlchlesLa dl
chlamaLa. ll Server del domlnlo del desLlnaLarlo flnale procedera qulndl ad lnolLrarla a quesL'ulLlmo, dl cul
conosce bene la poslzlone. ll messagglo dl rlLorno ( Ck o slmlll) sara rlLornaLo flno al gaLeway dl parLenza,
che quando necessarlo provvedera a noLlflcare gll avvenlmenLl ln corso all'uLenLe chlamanLe.


# Comun|caz|one da IÞ a IÞ

ln quesLo caso ll CaLeway sl Lrova dlreLLamenLe denLro la macchlna uLenLe soLLo forma dello user AgenL.
CuesLo sl occupa dl manlpolare ll
numero e conLaLLare ll Local name
Server per averne una Lraduzlone.
CLLenuLa la rlsoluzlone ln Lermlnl
dl nomeuLenLe[domlnlo.com ne
occorrera una seconda al flne dl
sLablllre la collocazlone (lndlrlzzo
lÞ) del Server del domlnlo cul
apparLlene ll desLlnaLarlo. lnfaLLl
gll uLenLl poLrebbero essere nel
medeslmo domlnlo lÞ ma non
nello sLesso domlnlo SlÞ. nel caso
parLlcolare ln esame l due uLenLl sl Lrovano nel medeslmo domlnlo SlÞ.
La gesLlone dell'lnfrasLruLLura dl cul necesslLa lo sLandard LnuM emolLo complessa. ul conseguenza nel
caso dl reLl plccole, può non essere necessarlo uLlllzzare lo sLandard nella sua lnLerezza. Þer esemplo un
sempllce schema dl funzlonamenLo che dlsLlngue Lra le chlamaLe lnLerne e quelle da dlroLLare all'esLerno
poLrebbe essere ll seguenLe











per ll quale la conflgurazlone unS poLrebbe essere la seguenLe


Þer quanLo rlguarda la slcurezza ln SlÞ le funzlonallLa fornlLe sono le seguenLl: auLenLlcazlone dell'uLenLe,
meccanlsml conLro uenlal of Servlce, meccanlsml conLro lo spam e crlpLaLura (opzlonale) del corpo del
messagglo e/o dell'elenco del nodl lnLermedl ln cul e LranslLaLo ll messagglo.










Catture ed eserc|z|
SIÞ - Sess|on In|t|at|on Þrotoco|


Cattura: keg|straz|one SIÞ con Cutbound ÞroxySIÞ
L'uLenLe deve effeLLuare una reglsLrazlone con la parLlcolarlLa che ll 8eglsLrar SlÞ Server non colnclde con ll
SlÞ CuLbound Þroxy Server.
La sequenza delle operazlonl e la seguenLe










L'uLenLe (130.192.226.140) conLaLLa ll unS Server (130.192.3.24) per rlchledergll la Lraduzlone del nome
smlLhers.lpv6.pollLo.lL perche sa che Lale macchlna e l'CuLbound Þroxy Server deslgnaLo (cul deve rlvolgersl
qualunque sla l'azlone che lnLenda lnLraprendere). La rlsposLa che gll vlene rlLornaLa conLlene la rlsoluzlone
unS del nome nell'lndlrlzzo lÞ 130.192.223.14 medlanLe un 88 dl Llpo A. Culndl pol l'uLenLe rlvolge al Þroxy
Server la sua rlchlesLa dl 8eglsLrazlone, ln parLlcolare ln quesLo caso l'uLenLe rlchlede una reglsLrazlone
presso ll domlnlo lpLel.org (8LClS1L8: slp:lpLel.org) e non presso ll Þroxy server sLesso. CuesL'ulLlmo sl
occupera della rlsoluzlone unS del nome dl domlnlo fornlLo dall'uLenLe e conLaLLera ll server dl Lale
domlnlo per lnolLrargll la rlchlesLa dl reglsLrazlone. Come rlsposLa all'uLenLe vlene rlLornaLo un messagglo
"401 unauLhorlzed", ln quanLo ll Þroxy Server per procedere con le operazlonl rlchlede che l'uLenLe sl
soLLoponga ad una procedura dl auLenLlcazlone. ln flgura e lllusLraLa la llnea dl rlsposLa con la rlchlesLa dl
auLenLlcazlone per ll domlnlo lpLel.org (speclflcaLo nel campo "realm") e la sflda proposLa (campo "nonce")


ua parLe sua l'uLenLe rlsponde lnvlando nuovamenLe un messagglo dl reglsLrazlone che però sLavolLa
assolve anche alla necesslLa dl auLenLlcazlone: ll messagglo conLlene la sflda, della quale ha calcolaLo l'md3,
clfraLa con la proprla chlave segreLa. ll Þroxy provera a declfrala usando la chlave pubbllca dell'uLenLe, dl
modo che sara cosl accerLaLa l'ldenLlLa dl quesL'ulLlmo.


A quesLo punLo ll Þroxy rlLornera un messagglo (200 Ck) dl conferma avvenuLa auLenLlcazlone e lnlzlo
della procedura dl reglsLrazlone.

Cattura: keg|straz|one SIÞ con NAÞ1k
ln quesLo caso, a dlfferenza del precedenLe, sl sLa procedendo ad una reglsLrazlone normale, ovvero presso
ll server del proprlo domlnlo


Sl parLe con la rlchlesLa dl record nAÞ18 al Local name Server per poLer rlsolvere ll nome lpv6.pollLo.lL

1ale rlchlesLa può essere assolLa dlreLLamenLe dal Local name Server polche ll nome dl domlnlo cercaLo
rlcade all'lnLerno della sLessa reLe del mlLLenLe (dlversamenLe ll LnS dovrebbe rlcorrere a Server unS dl
llvello superlore). La rlsposLa e la seguenLe

dove la rlga dl "8eplacemenL"
lndlca ll servlzlo SlÞ su uuÞ
dlsponlblle presso ll domlnlo,
nonche ll nome del record S8v da
rlcercare nel prosslmo passo (ma
ln quesLo caso non sara
necessarlo).
ll campo "AuLhorlLaLlve name
servers" lndlca lnvece ll nome
dell'auLhor nameserver per ll
domlnlo lpv6.pollLo.lL e ll campo
valore (name server) ll nome della
macchlna su cul e collocaLo. 1ale lnfo
vlene fornlLa, seppur non rlchlesLa,
perche sara uLlle al LnS nel caso ln cul
sl volessero fare alLre azlonl che
colnvolgono ll domlnlo ln esame.
vengono lnolLre fornlLl 3 AddlLlonal
records: nonosLanLe fosse sLaLo rlchlesLo solo un record nAÞ18, ll server nella rlsposLa ha fornlLo anche l
record S8v (ln quesLo caso solo uno) corrlspondenLl al servlzlo lndlcaLo nel record nAÞ18, LuLLl l record
A/AAA che corrlspondono al server clLaLl ln Lale servlzlo (lnvlcaLl nel campo 1argeL del record S8v) e l
record A/AAAA relaLlvl all'AuLhorlLaLlve nameserver per ll domlnlo.


A quesLo punLo l'uLenLe lnolLra ll messagglo conLenenLe la rlchlesLa dl reglsLrazlone

a cul ll server rlsponde, come gla accaduLo nel caso precedenLe, con un "401 unauLhorlzed" che lnnesca la
procedura dl auLenLlcazlone medlanLe ll meccanlsmo dl sflda: l'uLenLe lnvla al server un nuovo messagglo
conLenenLe una rlchlesLa dl 8eglsLer ll quale lnclude la rlsposLa alla sflda proposLagll, ovvero la sLrlnga
clfraLa uLlllzzando la proprla chlave prlvaLa. ll Server, uLlllzzando la chlave pubbllca dell'uLenLe, declfra la
sLrlnga rlcevuLa, se quesLa e uguale a quella dl sflda che aveva
lnvlaLo allora l'uLenLe può rlLenersl auLenLlcaLo e gll vlene
lnolLraLo un messagglo "200 Ck" con ll quale sl aLLesLa che la
procedura dl reglsLrazlone può ora essere porLaLa avanLl.

n.8.
l messaggl 3 e 6 mosLraLl nella caLLura sono superflul, ma evldenLemenLe ll sofLware uLlllzzaLo ll rlchledeva.

Lserc|z|o 1
uaLa la caLLura rlporLaLa ln flgurarelaLlva alla fase dl reglsLrazlone dl un uLenLe SlÞ, lndlcare:
1. L'lndlrlzzo lÞ del cllenL SlÞ
2. L'lndlrlzzo lÞ del proxy
3. Þerchell prlmo LenLaLlvo dl reglsLazlone falllsce?
4. Splegare brevemenLe come avvlene la procedura dl reglsLrazlone


Þrlma dl LuLLo andlamo a dare un'occhlaLa alla sequenza del messaggl per caplre la slLuazlone ln cul cl
Lrovlamo: l prlml due paccheLLl corrlspondono ad una rlchlesLa unS con successlva rlsposLa che ha lo scopo
dl caplre dove sl Lrovl al Server presso cul fare la reglsLrazlone oppure ll Þroxy aLLraverso ll quale farla. 1ale
sequenza dl messaggl poLrebbe evenLualmenLe mancare nel caso ln cul l'appllcazlone chledesse dl
speclflcare l'lndlrlzzo lÞ del Þroxy server pluLLosLo che ll nome della macchlna sulla quale rlslede. Segue un
messagglo dl 8eglsLer lndlrlzzaLo al domlnlo slp:lpv6.pollLo.lL, da cul qulndl

1. L'lndlrlzzo lÞ del cllenLe SlÞ e 130.192.223.36
2. L'lndlrlzzo lÞ del Þroxy e 130.192.223.79
lnolLre
3. ll prlmo LenLaLlvo dl reglsLrazlone falllsce perche nel messagglo lo uA SlÞ non ha lncluso le credenzlall dl
auLenLlcazlonl. 1ale messagglo serve qulndl solo per rlcevere nella rlsposLa una qualche sflda da parLe del
server per poLer lnlzlare la procedura dl auLenLlcazlone.

4. La procedura dl auLenLlcazlone avvlene nel seguenLe modo: ll server lnvla all'uLenLe una sLrlnga "sflda".
L'uLenLe la elabora usando un algorlLmo noLo e la clfra uLlllzzando la sua chlave segreLa. ll Server declfrera
la sLrlnga uLlllzzando la chlae pubbllca dell'uLenLe: se la sLrlnga oLLenuLa colnclde con quella che era sLaLa
lnvlaLa allora l'uLenLe rlsulLa auLenLlcaLo e sl può procedere con la procedura dl auLenLlcazlone.


Lserc|z|o 2
uaLo ll messagglo SlÞ 8LClS1L8 rlporLaLo nella caLLura, sl elenchlno e sl commenLlno brevemenLe l campl
plu lmporLanLl dell'header.

Anallzzlamo l campl conLenuLl all'lnLerno dell'header:
! VIA: lndlca LuLLl l slsLeml lnLermedl SlÞ che sono sLaLl aLLraversaLl (ln quesLo caso e rlporLaLo solo ll
mlLLenLe). 1ale elenco vlene rlpeLuLo nella rlsposLa serve per poLer rlpercorrere la sLrada al rovesclo
e permeLLe al varl server SlÞ dl non Lenere memorla delle varle rlchlesLe che hanno rlcevuLo e che
hanno rlLrasmesso.
! MAk-ICkWAkD: lndlca ll numero masslmo dl slsLeml lnLermedl SlÞ (non rouLers!!!) che possono
essere aLLraversaLl.
! CCN1AC1: lndlca ll nome dell'uLenLe che ha faLLo la rlchlesLa.
! 1C: lndlca ll desLlnaLarlo della rlchlesLa.
! IkCM: lndlca nuovamenLe ll rlchledenLe.
! CALL-ID: ldenLlflcaLlvo casuale della chlamaLa.
! CSLÇ: lndlca che quesLa e la seconda 8eglsLer della sesslone correnLe.
! LkÞIkLS: lndlca la duraLa della reglsLrazlone.
! ALLCW: lndlca l comandl che sono lmplemenLaLl dallo uA che ha generaLo la rlchesLa.
! USLk-AGLN1: lndlca ll Llpo dl uA.
! AU1nCkI2A1ICN: conLlene la rlsposLa alla sflda dl auLenLlcazlone.
! CCN1LN1-LLNGn1: lndlca la lunghezza del corpo del messagglo (per un messagglo dl 8eglsLer e
sempre 0).


Lserc|z|o 3
uaLo ll messagglo SlÞ 8LClS1L8 rlporLaLo
nella caLLura, e supponendo che ll cllenL
SlÞ sla conflguraLo correLLamenLe, quale
poLra essere la rlsposLa fornlLa dal server
SlÞ?

ual momenLo che la quasl LoLallLa del
server rlchlede una fase dl auLenLlcazlone
a monLe della reglsLrazlone, la rlsposLa sara presumlbllmenLe del Llpo º401 unauLhorlzed", ln quanLo ll
messagglo non lnclude le credenzlall dl auLenLlcazlone. ÞerLanLo, non verra creaLa alcuna assoclazlone
username-lÞ e la rlsposLa del proxy lncludera una sflda dl auLenLlcazlone (nel campo "nonce").


Lserc|z|o 4
uaLa la caLLura della sesslone dl lnvl1L rlporLaLa ln flgura, supponendo che l'lnlzlaLore della sesslone sla un
uLenLe del domlnlo ºlpv6.pollLo.lL":
1. lndlcare l'username dl enLrambl gll uLenLl
2. lndlcare lndlrlzzo lÞ e porLa dl enLrambl gll uA SlÞ
3. A cosa serve ll paccheLLo º100 1rylng"?
4. A cosa serve ll paccheLLo º180 8lnglng"?
3. ll record-rouLlng e ablllLaLo sul/sul proxy SlÞ?
6. Cuale e ll numero mlnlmo dl proxy che ll messagglo lnvl1L può lnconLrare lungo ll suo percorso?
n.8. ll 8ecord rouLlng e quel meccanlsmo Lale per cul anche dopo che dopo che e sLaLa spedlLa la rlchlesLa
ed e LornaLa lndleLro la rlsposLa l messaggl SlÞ conLlnuano comunque a passare aLLraverso l server. Se Lale
meccanlsmo non e ablllLaLo lnvece dopo la prlma lnLerazlone messagglo-rlsposLa l messaggl SlÞ lnlzlano a
LranslLare dlreLLamenLe Lra l due uA.

l prlml messaggl rlguardano come al sollLo la rlcerca nelle rlsorse unS per caplre quale sla ll server dl usclLa,
polche probabllmenLe lo uA ha conflguraLo al suo lnLerno solo ll nome dl Lale server e non ll suo lndlrlzzo
lÞ. nel Lerzo messagglo vlene fuorl lo username del chlamaLo, essendo quesLo un messagglo dl lnvl1L
1. L'username dell'uLenLe chlamaLo (con relaLlvo domlnlo dl apparLenenza) e LesL_user[lpv6.pollLo.lL.
CuesLo sl Lrova nel medeslmo domlnlo del chlamanLe per lpoLesl, dl modo
che ll Þroxy Server SlÞ non avra blsogno dl usufrulre dl alcuna rlsorsa unS
per ragglungerlo, bensl sara ln grado dl lnolLrargll dlreLLamenLe ll
messagglo dl lnvl1L dell'uLenLe chlamanLe slp_lnvlo.
ll Þroxy Server ln Lale conLesLo (enLrambl gll uLenLl apparLengono al
medeslmo domlnlo) opera qulndl sla come lnbound che come ouLbound
server. CuesL'ulLlmo lnvla al chlmanLe (130.192.223.133) messaggl dl
noLlflca dl "18?lnC", "8lnClnC" e "200 Ck". A quesLo punLo sl può
conslderare conclusa la fase dl chlamaLa e rlsposLa, ll prosslmo messagglo,
un "ACk", poLrebbe LranslLare dlreLLamenLe da uno uA all'alLro nel caso ln
cul non sla aLLlvo ll 8ecord rouLlng. ln quesLo caso però sl noLa come Lale messagglo e lndlrlzzaLo
all'lndlrlzzo 130.192.223.79 del proxy, qulndl
3. ll record rouLlng e ablllLaLo sul server proxy SlÞ.
2. ll chlamanLe ha lndlrlzzo lÞ 130.192.223.133 ed e ln comunlcazlone sulla porLa 7226. ll chlamaLo lnvece
ha lÞ 130.192.223.36 ed uLlllzza la porLa 63772.
3. ll paccheLLo "100 18?lnC" serve ad lndlcare allo uA che ll server ha rlcevuLo ll suo messagglo dl lnvl1L e
sLa aLLlvandosl per lnolLrarlo al desLlnaLarlo.
4. ll paccheLLo "180 8lnClnC" serve lnvece ad lndlcare che ll messagglo dl lnvl1L e sLaLo correLLamenLe
lnolLraLo al desLlnaLarlo e sl e ora ln aLLesa che l'uLenLe umano acceLLl Lale rlchlesLa (che ll suo uA gll sLa
noLlflcando medlanLe un apposlLo Lono dl chlamaLa).
6. Lssendo che l due uLenLl sl Lrovano enLrambl nel medeslmo domlnlo, ll mlnlmo numero dl proxy server
che ll messagglo dl lnvl1L può lnconLrare un solo proxy server. CuesL'ulLlmo funge sla da server d'lngresso
che da server dl usclLa per ll domlnlo.


Lserc|z|o S
uaLa la caLLura della sesslone dl lnvl1L rlporLaLa ln flgura, supponendo che l'lnlzlaLore della sesslone sla un
uLenLe del domlnlo ºlpv6.pollLo.lL":
1. lndlcare lndlrlzzo lÞ e porLa dl enLrambl gll uA SlÞ
2. ll record-rouLlng e ablllLaLo sul/sul proxy SlÞ?

ln quesLo caso l'lnvlo del messagglo dl lnvl1L avvlene dlreLLamenLe allo uA chlamaLo, moLlvo per cul
posslamo dedurre che sl LraLLa dell'ulLlma Lrasmlsslone dell'lnvl1L (quando ll nome uLenLe e gla sLaLo
rlsolLo e slamo qulndl ln possesso dell'lndlrlzzo lÞ del desLlnaLarlo flnale). La macchlna 130.192.223.79 può
essere o lo uA chlamanLe o un lnbound Þroxy Server (perche SlÞ non vleLa che gll uA parllno
dlreLLamenLe). Chl cl chlarlsce le ldee a rlguardo e ll messagglo dl ACk, polche quesLo e ll prlmo messagglo
che può essere spedlLo dlreLLamenLe da uno uA all'alLro nel caso ln cul non sla ablllLaLo ll meccanlsmo dl
record-rouLlng. ua quanLo deLLo scaLurlsce che
1. L'lndlrlzzo lÞ dell'lnlzlaLore della sesslone e 130.192.223.36, ln comunlcazlone sulla porLa 7884.
L'lndlrlzzo lÞ del chlamaLo e lnvece 130.192.223.36 e quesLo e ln comunlcazlone sulla porLa 7884. La
macchlna avenLe lndlrlzzo lÞ 130.192.223.79 e dunque l'lnbound Þroxy Server.
2. ll record-rouLlng e dlsablllLaLo sul/sul Þroxy SlÞ.
Lserc|z|o 6
uaLe le seguenLl 2 u8l SlÞ dl due uLenLl correLLamenLe reglsLraLl sul loro domlnlo:
! allce[lpv6.pollLo.lL
! bob[lpv6.pollLo.lL
8lporLare schemaLlcamenLe l paccheLLl che Allce e 8ob devono scamblarsl per effeLLuare una chlamaLa
lncludendo:
1. LvenLuall paccheLLl auslllarl (paccheLLl unS e paccheLLl generaLl dal Þroxy)
2. l paccheLLl generaLl dal Þroxy

dal momenLo che la reglsLrazlone ha gla avuLo luogo, enLrambl gll uA possono accedere al Þroxy senza
ulLerlorl lnLerrogazlonl unS, grazle alle rlspeLLlve unS cache proxy SlÞ. Lo schema rlchlesLo e qulndl ll
seguenLe




Lserc|z|o 7
uaLe le seguenLl 2 u8l SlÞ:
! allce[lpv6.pollLo.lL
! bob[lpLel.org
rlporLare schemaLlcamenLe l paccheLLl che allce e bob devono scamblarsl lncludendo:

1. LvenLuall paccheLLl auslllarl
2. l paccheLLl generaLl dal proxy

ln quesLo caso l due uLenLl non sl Lrovano all'lnLerno dl due domlnl dlfferenLl. Lo schema rlchlesLo e ll
seguenLe


















LL2ICNI N. 21,22


Le ret| Þeer to Þeer
Introduz|one a||a rete Skype


uopo aver vlsLo l slsLeml dl volce-Cver-lÞ basaLl su SlÞ passlamo ora a LraLLare quello che ne e ll magglor
"concorrenLe", Skype. CuesL'ulLlmo sl basa sulle reLl peer-Lo-peer per ll suo funzlonamenLo.
una rete d| over|ay e una reLe ln cul sl sovrappone una Lopologla loglca a quella che e una Lopologla flslca.
1uLLl l nodl dell'overlay sono anche nodl della reLe flslca. Cuello che vlene vlrLuallzzaLo sono l collegamenLl,
ovvero l rapporLl dl vlclnanza Lra l nodl. Clò slgnlflca che
l'adlacenza dl due nodl ln una reLe dl overlay non sl
Lraduce necessarlamenLe ln una adlacenza anche
quando sl passa a vlsuallzzare la mappa flslca della reLe.
ua noLare e che l'overlay può essere repllcaLo su plu
llvelll e possono eslsLere plu cople dl una sLessa rlsorsa
al flne dl masslmlzzarne la regglunglblllLa (ad esemplo un
flle).
Le ket| Þeer-1o-Þeer sono appunLo delle reLl dl overlay:
le varle macchlne del peer cosLlLulscono l nodl della reLe
e fra dl loro sl lnsLaurano delle connesslonl (ad esemplo
1CÞ) che danno del rapporLl dl vlclnanza.
Le caraLLerlsLlche prlnclpall delle reLl peer-Lo-peer sono le seguenLl:

! ognl nodo della reLe funge poLenzlalmenLe sla da cllenL che da server (anche ln conLemporanea)
! l nodl della reLe non sono LuLLl uguall ln Lermlnl sla dl rlsorse che dl conflgurazlone
! alcunl peer hanno conneLLlvlLa llmlLaLa a causa dl nA1 o flrewall. ll nA1 da probleml dl accesso ad
un peer (nel momenLo ln cul cloe ll peer che sl Lrova dleLro ll nA1 funge da server) menLre l flrewall
danno probleml ln enLrambe le dlrezlonl.
! sono reLl dl grandl dlmenslonl, poLenzlalmenLe mondlall

Le operazlonl fondamenLall da complere ln LuLLl l slsLeml peer-Lo-peer sono lnvece le seguenLl:
! 8CC1: rappresenLa la fase dl lngresso nell'lnfrasLruLLura Þ2Þ. Se non e la prlma volLa che cl sl
collega, dall'ulLlmo collegamenLo sl e conservaLo un elenco dl lndlrlzzl dl macchlne che erano
al'lnLerno dell'overlay nel momenLo ln cul cl sl e scollegaLl. CuesLo perche per avere accesso alla
reLe Þ2Þ e necessarlo conoscere l'lndlrlzzo dl almeno una macchlna che ne faccla parLe. ul
conseguenza sollLamenLe nel codlce vlene cabloLo l'lndlrlzzo dl alcunl server che saranno sempre
ragglunglblll per poLer effeLLuare l'accesso.
! LCCkUÞ kISCkSL: locallzzazlone delle rlsorse (flle,..) su una lnfrasLruLLura Þ2Þ all'lnLerno della
quale ne eslsLono plu cople.
! SCAM8IC DI DA1I (f||e, VoIÞ, IM,..): scamblo dl daLl Lra due ºcllenL" della reLe Þ2Þ.

LslsLono dlverse Lecnlche dl lookup delle rlsorse nelle reLl Þ2Þ, lllusLraLe dal seguenLe dlagramma


napsLer, un sofLware per la condlvlslone dl flle, faceva uso del lookup dl Llpo cenLrallzzaLo: eslsLeva un
unlco server cenLrallzzaLo all'lnLerno del quale erano presenLl LuLLe le lnformazlonl per meLLere ln relazlone
ll nome dl un flle con LuLLl l peer onllne che possledevano una copla del flle. ul conseguenza quando un
peer sl avvlava dl faLLo andava presso Lale server a reglsLrare LuLLl l flles ln suo possesso e che erano messl
a dlsposlzlone. Cuando lnvece un peer doveva esegulre una rlcerca andava presso ll server a rlcercare ll
nome del flle all'lnLerno dell'lndlce, oLLenendo come rlsulLaLo gll lndlrlzzl lÞ dl LuLLl l peer onllne che ne
meLLevano a dlsposlzlone una copla. ua quanLo deLLo sl deduce che ll server rappresenLava un collo dl
boLLlglla, nonche un slngle polnL-of-fallure.
Þer superare l llmlLl del slsLema dl Llpo cenLrallzzaLo cl sl e andaLl ln segulLo orlenLando verso slsLeml dl Llpo
decenLrallzzaLo che Lendono a dlsLrlbulre anche la fase dl rlcerca su plu macchlne. L'lndlce del flle e degll
uLenLl che ll meLLono a dlsposlzlone e dlsLrlbulLo su varl peer che ne meLLono a dlsposlzlone dlversl
spezzonl. A rlguardo possono essere lndlvlduaLe due soLLocaLegorle: overlay sLruLLuraLl e non sLruLLuraLl.
nel prlml un nuovo peer che enLra sceglle, Llrando a caso ln un grosso range dl valorl, un ldenLlflcaLore ed n
base ad esso rlceve una porzlone ben preclsa dell'lndlce. CuesLo compllca le operazlonl dl lngresso e usclLa,
polche nel momenLo ln un cul ll peer enLra cl deve essere qualcuno che sl occupl dl consegnargll ll pezzo dl
lndlce che gll compeLe e quando esce lnvece dovra passare ad un'alLro peer ben preclso ll pezzo dl lndlce
posseduLo. lnolLre e necessarlo avere delle cople dl ognl pezzo dl lndlce da poLer uLlllzzare nel momenLo ln
cul un peer venga meno lmprovvlsamenLe (magarl per colpa dl un guasLo). ua quanLo deLLo sl può dedurre
che la gesLlone dl overlay sLruLLuraLl e abbasLanza complessa. negll overlay non sLruLLuraLl lnvece e LuLLo
un pò plu sfumaLo, non e ben chlaro quale pezzo dl lndlce un peer posslede perche non c'e una relazlone
Lra l'lndlce e la sLruLLura dell'overlay. CuesLo può porLare ad avere del falsl negaLlvl nel momenLo ln cul sl
effeLLua la rlcerca per una rlsorsa.

kazaa: over|ay gerarch|co

kazaa sl basa su una reLe peer-Lo-peer dl Llpo non sLruLLuraLo con due Llpl dl macchlne:
! Super nodes
! Crdlnary nodes
Lra l quall sl sLablllscono del rapporLl dl vlclnanza medlanLe delle connesslonl 1CÞ. una volLa scoperLo dove
sl Lrova la copla dl un flle rlcercaLo se ne conLaLLa dlreLLamenLe ll possessore e ll LrasferlmenLo avvlene
medlanLe proLocollo P11Þ. Þoco sl sa lnvece per
quanLo rlguarda le lnformazlonl scamblaLe ln fase
dl connesslone e lookup perche LuLLo ll Lrafflco dl
segnalazlone e clfraLo.


vedlamo qulndl come vengono reallzzaLe le operazlonl dl 8ooL, Lookup e scamblo dl daLl:

! INGkLSSC NLLLA kL1L:
un nodo ordlnarlo va sempre a collegarsl ad un super-nodo. nel caso ln cul la cache del nodo fosse
vuoLa (prlmo collegamenLo) e posslblle collegarsl a del defaulL server ll cul lndlrlzzo e cablaLo nel
codlce. nel caso ln cul lnvece non fosse la prlma volLa che ll nodo accede alla reLe esso conserva un
elenco dl super-nodl che erano aLLlvl nel momenLo ln cul e usclLo. ln Lale llsLa sl andranno a cercare
l super-nodl che sono onllne medlanLe lnvlo dl messaggl dl LesLo uuÞ, facendo aLLenzlone al Lempl
dl rlsposLa. un Lempo dl rlsposLa lnferlore ldenLlflca lnfaLLl un supernodo plu scarlco o comunque
un collegamenLo con un mlnor Lempo dl laLenza, che qulndl e da preferlre. lndlvlduaLo ll super-
nodo al quale collegarsl, LuLLl gll alLrl che sono sLaLl rlsconLraLl essere onllne vengono conservaLl
come nodl alLernaLlvl nel caso ln cul quello aLLuale venlsse lmprovvlsamenLe meno.



ll nodo manda qulndl ln upload al super-nodo cul sl e collegaLo meLadaLl clrca l flle che meLLe a
dlsposlzlone. 1all meLadaLl conLengono ll nome del flle, la dlmenslone e ll suo conLenLhash.
MedlanLe quesL'ulLlmo sl e ln grado dl rlconoscere flle con conLenuLo uguale anche se essl hanno
noml dlfferenLl. Cgnl super-nodo qulndl ha un pezzo dl lndlce derlvanLe dall'unlone degll lndlcl del
suol ordlnary-nodes e manLlene lnformazlonl solo su quesLl ulLlml (quall flle posseggono e se sono
collegaLl o no ln un cerLo momenLo). 8lcevuLl l meLadaLl, ll super-nodo fornlsce al nodo-ordlnarlo
una llsLa dl alLrl 200 super-nodl con l quall popolare la proprla cache.

! LCCkUÞ DLLLL kISCkSL:
la rlcerca delle rlsorse colnvolge solo l super-nodl.
Supponlamo che un nodo voglla rlcercare una rlsorsa
nel cul nome sla presenLe la sLrlnga "gaLLo". ll nodo
ordlnarlo passa la rlchlesLa al proprlo super-nodo.
CuesL'ulLlmo può avere o meno una rlsposLa rlguardo la poslzlone della rlsorsa rlcercaLa. nel caso
ln cul non l'avesse, essendo l'overlay non sLruLLuraLo, non sl può scegllere deLermlnlsLlcamenLe ln
quale del vlclnl convlene sposLarsl per prosegulre la rlcerca. ul conseguenza ln Leorla blsognerebbe
esplorare LuLLl l super-nodl della reLe Þ2Þ medlanLe floodlng (spedlsco un messaglo dl rlchlesLa a
LuLLl l mlel vlclnl, che lo lnolLreranno a LuLLl l loro vlclnl..). 1ale soluzlone sarebbe però Lroppo
dlspendlosa dal punLo dl vlsLa
compuLazlonale, dl modo che
probabllmenLe vlene uLlllzzaLo ll
kandom wa|k (ll super-nodo
sceglle a caso un vlclno e gll passa la rlchlesLa).
Le rlsposLe conLengono l meLadaLl relaLlvl al flle lncludendo le lnformazlonl sul peer su cul sl
Lrovano. A quesLo punLo ll nodo ordlnarlo sceglle un flle e fa una rlchesLa dl download con ll
conLenLhash del flle come parameLro (slmlle ad un
P11Þ CL1). nel caso ln cul ll download falllsse ll flle
vlene rlcercaLo dl nuovo dlreLLamenLe con ll
conLenLhash.


! DCWNLCAD:
ln LuLLl l slsLeml Þ2Þ lnsorgono probleml dl download nel caso dl parLlcolarl Lopologle dl reLe che
colnvolgono la presenza dl nA1. ln parLlcolare ll meccanlsmo dl download non rlsconLra probleml
nel caso ln cul e ll rlchledenLe del flle a Lrovarsl dleLro un nA1, all'lnLerno dl una reLe prlvaLa. ln Lal
caso ll peer che sl Lrova nella reLe pubbllca fa da server



a ruoll lnverLlLl lnvece e necessarlo rlvolgersl al proprlo super-nodo. CuesLo va a cercare ll super-
nodo cul e collegaLo ll peer dal quale sl vuole Lrasferlre ll flle, polche esso e un grado dl parlargll e
qulndl dl lnolLrargll una rlchlesLa dl download. A quesLo punLo e ll peer dleLro al nA1 che lnlzla ll
LrasferlmenLo lnvlando un messagglo dl ClvL. ln Lal modo non sl fa alLro che creare nella Labella del
nA1 l'assoclazlone Lra una porLa e ll processo che ha rlchlesLo ll ClvL. Cra che Lale assoclazlone
eslsLe, ll nodo lnlzlale e capace dl conLaLLare dlreLLamenLe ll peer per ll download anche se esso
sl Lrova dleLro al nA1.




Skype
l punLl dl forza della soluzlone skype sono l seguenLl:
! non e necessarlo avere lndlrlzzl pubbllcl per fare volÞ, ne avere un lndlrlzzo lÞv6. Skype ha lnfaLLl
dlmosLraLo che l nA1 non cosLlLulscono un problema per ll volÞ.
! La quallLa del servlzlo e un prerequlslLo che sl può meLLere ln dlscusslone.
! non e necessarlo avere lnfrasLruLLure cosLose per fare volÞ. Skype lnfaLLl uLlllzza le reLl Þ2Þ a cul
nessuno aveva pensaLo per quesLo Llpo dl uLlllzzo.

menLre le prlnclpall lnnovazlonl Lecnlche apporLaLe:

! La voce può essere Lrasmessa anche su 1CÞ perche può plu facllmenLe passare aLLraverso l flrewall,
che spesso bloccano l paccheLLl uuÞ. uuÞ rlmane comunque la scelLa prlnclpale per la Lrasmlsslone
dl segnall audlo/vldeo su lÞ, daLo che ll 1CÞ lncorpora una serle dl meccanlsml (ad esemplo ll
conLrollo dl congesLlone) che possonoo rlvelarsl conLroproducenLl per Lale scopo.
! Meccanlsml per l'aLLraversamenLo dl nA1 e flrewall parLlcolarmenLe efflcacl, quall ad esemplo la
Lrlangolazlone aLLraverso relay vlsLa ln precedenza. CuesLa non comporLa parLlcolarl rlcaduLe sul
rlLardo end-Lo-end.
! CesLlone dl una reLe Þ2Þ non sLruLLuraLa aLLraverso una lnfrasLruLLura gosslp-based
! CLLlma gesLlone della voce (quallLa del codec, soppresslone del rumore, gesLlone dell'eco, eLc)
! LsLremamenLe robusLo e pervaslvo.

Ma come funzlona Skype?
per quel poco che se ne può caplre eslsLe un Logln server, che e un pò l'equlvalenLe dl un Server AAA vlsLo
nel caso del SlÞ. ll cllenLe sl collega ad un super-nodo, ll quale pol sl preoccupa dl andarne a verlflcare la
password presso ll server dl logln. ua
noLare e che plu che dl un Server dl Logln
posslamo parlare dl un Servlzlo dl Logln,
polche Lale funzlonallLa può Lrovarsl dl
faLLo dlsLlbulLa su plu macchlne.
AlLra enLlLa ln gloco e ll Server dl
8ooLsLrap, da uLlllzzare nel caso ln cul un
uLenLe non abbla alcuna lnformazlone
clrca l supernodl oppure LuLLl quelll che
conosce sono ln cerLo momenLo offllne. ll
server dl 8ooLsLrap ha ln Lal caso la
funzlone dl fornlre al cllenLe una llsLa dl
supernodl ln funzlone.
l super-nodl Skype sono del normall uLenLl Skype avenLl però alcune caraLLerlsLlche parLlcolarl quall un
lndlrlzzo lÞ pubbllco, buona banda (10Mbps), Lempl dl rlsposLa abbasLanza bassl. non cl sono lndlcazlonl
sul faLLo che eslsLano o meno del super-nodl gesLlLl dlreLLamenLe da Skype sLesso, anche se clò e molLo
probablle. „ posslblle ºforzare" la scelLa dl un supernodo aLLraverso l'edlLlng del flle ºshared.xml".

Þer quanLo rlguarda le operazlonl fondamenLall:
! Iase d| 8oot:
un cllenL sl collega ad uno o plu supernodl, la cul llsLa vlene agglornaLa dlnamlcamenLe ed e salvaLa
localmenLe nel flle shared.xml. ln mancanza dl Lale llsLa o ln caso dl probleml cl sl collega ad uno del
Server dl 8ooLsLrap. ll proLocollo uLlllzzaLo per la Lrasmlsslone audlo/vldeo e l'uuÞ, anche se può
alLernaLlvamenLe essere uLlllzzaLo anche ll 1CÞ nel caso sl rlsconLrassero probleml col prlmo.
! Iase d| Log|n:
e necessarlo conLaLLare ll Server dl Logln. Al prlmo LenLaLlvo ll Logln server vlene conLaLLaLo
dlreLLamenLe dopo dl che, ln casl dl fallure, la rlchlesLa dl logln vlene lnolLraLa aLLraverso l'overlay
(ovvero lo chledo al mlo supernodo che a sua volLa chlede ad un'alLro flnche non se ne Lrova uno
che rlesce a conLaLLare ll logln server).
! k|cerca d| un utente:
Lale rlcerca vlene faLLa aLLraverso l'overlay aLLraverso la Lecnologla Cloballndex pluLLosLo che
LramlLe ll Logln Server. Skype garanLlsce la repllcazlone del daLl ln modo che un uLenLe sla sempre
locallzzablle se sle collegaLo alla reLe nelle ulLlme 72 ore.
! Scamb|o dat|:
ln quesLo caso per scamblo dl daLl sl lnLende sla la comunlcazlone audlo/vldeo che lo scamblo dl
messaggl dl LesLo o flle, che avvlene ln manlera dlreLLa nal caso ln cul enLrambl gll uLenLl hanno un
lÞ pubbllco. L' però posslblle anche una slLuazlone ln cul enLrambl gll uLenLl sono locallzzaLl
all'lnLerno dl una proprla reLe prlvaLa dleLro un nA1: ln Lal caso neppure la Lecnlca dl Lrlangolazlone
usaLa da kazaa funzlonerebbe, polche ll
messagglo ClvL lnvlaLo da una macchlna
non rlesce a ragglungere l'alLra ln modo
dlreLLo. Þer ovvlare a Lale problema
blsogna far passare LuLLo aLLraverso un
supernodo, dl modo che l due uLenLl
non rlusclranno a parlarsl dlreLLamenLe
se non dopo che sla sLaLa aperLa una qualche connesslone con l'aluLo del supernodo (cul qulndl
vlene passaLo ll messagglo dl ClvL).

Þer quanLo rlguarda la codlflca della voce e la sua compresslone Skype non ha porLaLo alcuna lnnovazlone.
La banda occupaLa dal parlaLo e Lra l 3-16 kbps e non vlene effeLLuaLa la soppresslone del sllenzl. vlene
lnvece effeLLuaLa un'oLLlma gesLlone del rlLardo dl aLLraversamenLo effeLLuaLa. ln parLlcolare e noLevole la
capaclLa dl ºesLendere" un camplone vocale e recuperare ln un successlvo Lempo (anche nel caso dl
sllenzlo) ln modo da rlprlsLlnare valorl dl rlLardo acceLLablle.
AlLre funzlonallLa offerLe da Skype sono la conferenza mulLlpla, l'lnsLanL messaglng, l'e-presence e ll flle
Lransfer.








LL2ICNI N. 22,23


ket| geograf|che e Internetwork|ng

Þasslamo ora a LraLLare alcune delle Lecnologle usaLe per sLablllre del collegamenLl geograflcl, per lo plu dl
Llpo punLo a punLo. nel dlagramma soLLosLanLe la zona LraLLegglaLa rlguarda del canall analoglcl e può
essere LranqulllamenLe LrascuraLa. Come gla vlsLo ln precedenza la Lelefonla analoglca e ormal presenLe
solo al marglnl della reLe, ovvero Lra ll
Lelefono analoglco casallngo e qualche
punLo ln profondlLa nella reLe. ua ll ln
avanLl sl procede alla dlglLallzzazlone
della voce, ma sopraLLuLLo ll backbone
(la splna dorsale della reLe) e ormal
basaLo su lÞ.
La zona punLegglaLa lnb blu, anch'essa
Lrascurablle, rlguarda lnvece alcune
Lecnologle che erano naLe per cosLrulre
delle reLl meLropollLane.
Cuello che e rlmasLo essenzlalmenLe
sono l collegamenLl dlreLLl numerlcl,
ovvero le llnee punLo a punLo dl Llpo dlglLale reallzzaLe uLlllzzando ll 1uM- 1lme ulvlslon MulLlplexlng.

ISDN
lSun e un Llpo dl collegamenLo che permeLLe Lrasmlsslone daLl+fonla+vldeoLelefonla. SosLanzlalmenLe e un
collegamenLo numerlco (qulndl dlglLale) caraLLerlzzaLo da un accesso base (ovvero quello che va verso ll
slngolo Lelefono) con due canall 8 plu uno u. l canall 8 sono da 64 kbps (banda necessarla per reallzzare
una chlamaLa Lelefonlca senza compresslone) menLre ll canale u e da 16 kbps, uLlllzzaLo per le operazlonl
dl segnalazlone. ulversamenLe l Lre canall poLevano essere usaLl LuLLl lnsleme a formare un canale un
canale da 144 kbps per collegamenLl dl Llpo daLl. ln alLernaLlva un accesso prlmarlo (rlservaLo alle azlende)
aveva lnvece 30 canall 8 e un canale u, per un LoLale dl 2 Mbps.

ket| pr|vate basate su 1DM
Come funzlona ll 1DM - 1|me D|v|s|on Mu|t|p|ex|ng? Come suggerlsce ll nome c'e blsogno dl un mulLlplexer
con n canall dl lngresso e un unlco canale dl usclLa la cul veloclLa e uguale a n volLe quella dl un canale dl
lngresso. l daLl provenlenLl dal canall ln lngresso vengono Lrasmessl su quello dl usclLa affeLLando ll Lempo
ln porzlonl uguall per ognuno dl essl ed effeLLuando una roLazlone. Cgnl solL Lemporale e rlservaLo al
rlspeLLlvo lngresso, nel senso che se nel momenLo ln cul Lale sloL e aLLlvo non vengono lmmessl daLl
sull'lngresso, nessun alLro degll lngressl poLra lmmeLLervl l proprl e lo sloL rlmarra lnuLlllzzaLo. CuesLo uso
molLo rlgldo della banda del canale dl usclLa garanLlsce dl non avere mal congesLlone, ll masslmo Lempo dl
aLLraversamenLo del mulLlplexer e flsso. MedlanLe Lale meccanlsmo e posslblle creare l'equlvalenLe del
canale punLo a punLo, con un mulLlplexer ln parLenza e un demulLlplexer all'arrlvo che comple l'operazlone
lnversa smlsLando l daLl a roLazlone Lra LuLLl l desLlnaLarl collegaLl.
ln generale però e anche posslblle suddlvldere la banda dlsponlblle ln manlera non eguallLarla, per
esemplo


SDn
ul segulLo la gerarchla SuP con le rlspeLLlve veloclLa e uno schema dell'archlLeLLura flslca su flbra oLLlca
Sect|on: collegamenLo ln flbra oLLlca Lra Lranscelver
L|ne: sequenza dl sezlonl Lra dlsposlLlvl che operano a llvello dl Lrama
Þath: clrculLo dlreLLo numerlco end-Lo-end 1SCnL1

dove sl noLano l 8LÞLA1L8 che servono a relnnalzare ll valore dell'energla del segnale che Lende ad
aLLenuarsl sulle lunghe dlsLanze e l due apparaLl MulLlplexer e uemulLlplexer.
L'Add/urop MulLlplexer e un apparaLo conLenenLe dlsposlLlvl opLo-eleLLronlcl aLLraverso l quall passa la
flbra oLLlca. CuesLl sono capacl dl rlgenerare ll segnale alla sLregua del repeLlLorl,
ma ln generale Lale apparaLo e anche ln grado dl splllare una parLe del Lrafflco ln
arrlvo e spedlrlo verso uno speclflco desLlnaLarlo oppure lnserlrlo all'lnLerno dl
uno sloL vuoLo. Cuello che ln realLa succede (dlversamenLe da come mosLraLo
nella flgura precedenLe) e che l Mux/uLMux slano anch'essl degll Add/urop
Mux, polche le llnee a flbra oLLlca Lendono a chludersl su se sLesse assumendo una conformazlone ad
anello, anche perche le flbre oLLlche sono unldlrezlonall. u conseguenza per avere un clrculLo bldlrezlonale
e posslblle predlsporre due dlfferenLl anelll dl flbra oLLlca. Þuò anche succedere dl avere anelll a dlversa
veloclLa collegaLl Lra loro dal faLLo dl condlvldere un Add/urop Mux: Lall anelll possono passarsl del Lrafflco
al flne dl recaplLarlo ad un cerLo desLlnaLarlo flnale.
La Lrasmlsslone e organlzzaLa ln frame, spedlLl a dlsLanza dl 123 mlcrosecondl uno dall'alLro



ognl frame per S1S-1 e lungo 810 byLe (90 colonne x 9 rlghe) e le caselle coloraLe sono rlservaLe per
lnformazlonl dl conLrollo.

SuP e ÞuP reallzzano essenzlalmenLe ll llvello flslco, fornendo un canale dl Llpo punLo-a-punLo. Al dl sopra
sl può far passare dl LuLLo: sollLamenLe c'e la commuLazlone dl paccheLLo o la commuLazlone dl cella.
CuesL'ulLlma dlfferlsce dalla prlma per ll faLLo che l'unlLa dl Lrasmlsslone e molLo plu plccola e dl lunghezza
flssa, dl modo che soffre dl un problema dl overhead (l'header occupa Lroppl byLe rlspeLLo alla dlmenslone
LoLale della cella). Le celle dl lunghezza flssa danno però del vanLaggl ln Lermlnl dl Lempl dl aLLesa e dl
gesLlone della memorla. LslsLono dunque una serle dl servlzl che possono usare l'uno o l'alLro (ln realLa ll
lrame 8ekay può uLlllzzare enLrambl), rafflguraLl nella flgura soLLosLanLe




k.2S
L' x.23 era uno sLandard per avere delle reLl a commuLazlone
dl paccheLLo dl Llpo pubbllco Lra plu macchlne dlsLrlbulLe
geograflcamenLe. ln realLa l'x.23 come sLandard regola la
comunlcazlone Lra l'ulLlmo apparaLo dell'uLenLe, ll D1L -
Data 1erm|na| Lqu|pment, e ll prlmo apparaLo della reLe, ll
DCL - Data Commun|cat|on Lqu|pment. CuesL'ulLlmo poLeva
anche essere plazzaLo flslcamenLe all'lnLerno dell'edlflclo dello sLesso uLenLe flnale.
Andlamo a vedere ll perche Lale sLandard e sLaLo abbandonaLo. ll paccheLLo era cosLrulLo come mosLraLo
nella flgura soLLosLanLe:




lnLesLazlone e coda erano messe dal llvello 2 e Lra dl esse vl erano l campl dl llvello 3. ll llvello 3 era
organlzzaLo a clrculLl vlrLuall, cloe vl era un prlmo paccheLLo con ll quale sl aprlva ll clrculLo vlrLuale,
all'lnLerno del quale sl prendevano LuLLe le declslonl dl lnsLradamenLo: LuLLl gll alLrl paccheLLl lnvlaLl sul
medeslmo clrculLo vlrLuale segulvano lo sLesso percorso del prlmo. ln poche parole, conLrarlamenLe
all'lnsLradamenLo operaLo dall'lÞ, ln quesLo caso l'lnsLradamenLo vlene faLLo solo sul prlmo paccheLLo dl
aperLura e LuLLl gll alLrl che seguono ne rlpercorrono le orme, compresl l
paccheLLl dl rlsposLa che seguono ll cammlno al rovesclo. ll desLlnaLarlo
era lndlcaLo nell'Peader del llvello 3 medlanLe un lndlrlzzo dl Llpo L.164
(composLo da 14 clfre declmall) ed era scrlLLo solo sul prlmo paccheLLo dl
aperLura. CuesLo cosLlLulva un problema polche l commuLaLorl (ll cul sLack
e vlslblle ln flgura) necesslLavano dl elaborare ll paccheLLo flno al llvello 3
per poLerne conoscere ll desLlnaLarlo e qulndl caplre come lnsLradarlo, ll che comporLava una cerLa perdlLa
dl Lempo.
AlLro problema rlsledeva nel faLLo che lo sLandard prevedeva l'lnvo dl acknowledgmenL per ognl LraLLa Lra
due commuLaLorl. ln Lal modo la formula dl uLlllzzo del canale rlsulLava essere la seguenLe

dove W e la flnesLra dl Lrasmlsslone, 1
p
ll Lempo dl propagazlone e 1
x
ll Lempo dl Lrasmlsslone. A 1
x
sl può
sosLlLulre ll quozlenLe n/8, dove n e ll numero dl blL e 8 e la veloclLa dl Lrasmlsslone. Se sl va ad aumenLare
la veloclLa dl Lrasmlsslone Lale quanLlLa dlvenLa sempre plu plccola e qulndl la quanLlLa 1+(21
p
/(n/8))
dlvenLa sempre plu grande. ne consegue che cl sara blsogno dl usare flnesLre dl Lrasmlsslone sempre plu
lunghe per rlusclre ad oLLenere un Lasso dl uLlllzzo che sla prosslmo al 100• (e sl Lenga presenLe che la
veloclLa dl Lrasmlsslone può arrlvare nell'ordlne del Cbps!!!). Senza conLare ll faLLo che se la flnesLra dl
Lrasmlsslone e lunga W devono essere LenuLl ln memorla un numero W dl paccheLLl che poLrebbero essere
necessarl per esegulre una rlLrasmlsslone nel caso ln cul venlsse meno l'acknowledgmenL su una qualslasl
delle LraLLe, e quesLo da fasLldlo.
ua quanLo deLLo sl può concludere che lo sLandard x.23 andava benlsslmo per canall a bassa veloclLa e
alquanLo rumorosl, ln cul avere l'acknowledgmenL LraLLa per LraLLa era uLlle essendo la posslblllLa dl avere
un errore abbasLanza elevaLa. nel momenLo ln cul però l canall sono dlvenLaLl molLo velocl e molLo meno
rumorosl dl una volLa allora l'x.23 e andaLo dlvenendo sempre plu lnadaLLo ad una appllcazlone nel nuovl
conLesLl.


Lo standard Irame ke|ay
ll lrame 8elay e un alLro sLandard per la reallzzazlone dl collegamenLl a llvello geograflco dl Llpo punLo a
punLo. Lo sLandard sl basa sull'uLlllzzo dl clrculLl vlrLuall, qulndl sl sLablllsce lnlzlalmenLe un clrculLo vlrLuale
da un punLo ad un alLro e LuLLl l frame che sono lndlrlzzaLl verso uno sLesso desLlnaLarlo effeLLueranno ll
medeslmo percorso all'lnLerno della reLe. La commuLazlone e sul frame, dl modo che vengono guardaLl gll
header dl llvello 2. MenLre con x.23 vl era la posslblllLa dl corregge gll errorl su ognl LraLLa, per scelLa dl
progeLLazlone (per evlLare la perdlLa dl Lempo comporLaLa dagll acknowledgmenL, ln vlrLu anche della
bassa rumoroslLa del canall uLlllzzaLl) ll lrame 8elay non reallzza alcun meccanlsmo dl correzlone degll
errorl all'lnLerno dell'lnfrasLruLLura dl reLe. 1all meccanlsml, se necessarl, sono lmplemenLaLl all'esLerno dl
quesL'ulLlma.
uno schema della reLe lrame 8elay e lllusLraLo ln flgura. Anche ln quesLo caso ll uCL - uaLa CommunlcaLlon
LqulpmanL e ll prlmo apparaLo gesLlLo da chl meLLe a dlsposlzlone la reLe. 1ra l varl uCL sl sLablllscono del
clrculLl vlrLuall e sul quall vlagglano l frame dlreLLl da uno
all'alLro.
ll lrame 8elay fornlsce qulndl degll sLandard per
lnLerfacclare apparecchlaLure dl reLe locale (rouLer,
brldge, gaLeway) a reLl per Lrasmlsslone dl daLl,
permeLLendo lnolLre dl rlchledere una cerLa banda
garanLlLa.



La dlfferenza Lra un rouLer x.23 ed un commuLaLore lrame 8elay e lllusLraLa dl segulLo











dove vlene evldenzlaLo come ll lrame 8elay aglsca sosLanzlalmenLe a llvello 2 (anzl ad un soLLollvello del
llvello 2). ul conseguenza un commuLaLore lrame relay deve sempllcemenLe converLlre ll segnale ln arrlvo
ln una sLrlnga dl blL, lnLerpreLarlo e rlconverLlrlo ln un segnale opporLuno da lmmeLLere ln sul canale dl
usclLa. L'lnsLradamanLo verò e proprlo (cosl come vlene effeLLuaLo dall'lÞ) vlene faLLo solo per ll prlmo
frame, dopo dl che LuLLl gll alLrl frame apparLenenLl al flusso vengono lnsLradaLl sul medeslmo clrculLo
vlrLuale. nel caso dell'x.23 lnvece blsognava elaborare ll paccheLLo flno al llvello 3 per caplre come
rlLrasmeLLerlo. AlLro meLro dl paragone e ll formaLo del paccheLLo, dove appunLo sl rlsconLra che nel
paccheLLo x.23 l'lndlrlzzo desLlnaLarlo e
speclflcaLo all'lnLerno dell'lnLesLazlone dl llvello
3 menLre nel caso del l8 l'lndlrlzzo su cul sl fa
l'lnsLradamenLo e plu esLerno, dlreLLamenLe
nell'lnLesLazlone della Lrama sLessa.
1lrando le somme dl quanLo deLLo ll lrame
8elay opera una commutazone d| trama,
ovvero e l'lndlrlzzo desLlnaLarlo conLenuLo
nell'lnLesLazlone dl llvello 2 ad essere usaLo per
caplre da che parLe lnsLradare le Lrame. CuesLe
possono essere dl lunghezza varlablle e per la
correzlone degll errorl e uLlllzzaLo un approcclo
dl Llpo core-edge, ovvero gll errorl sl correggono solo medlanLe rlLrasmlsslonl al bordl (edge) della reLe e
non nel nodl lnLermedl (core).
Cosa molLo lmporLanLe del l8 e ll coslddeLLo CIk - Comm|tted Informat|on kate. ueflnlLl l parameLrl
! 8c - comm|tted burst s|ze: lndlca la max quanLlLa dl blL che possono essere lnvlaLl all'lnLerno della
reLe consecuLlvamenLe.
! 1c: deflnlsce un lnLervallo enLro ll quale un gruppo dl blL poLrebbe essere lnserlLo.
ll Cl8 vlene deflnlLo come 8c/1c, ovvero come ll rapporLo Lra ll numero dl blL che lnserlsco nella reLe e ll
Lempo enLro ll quale Lale lnserlmenLo sl può verlflcare. Ma ln vlrLu dl quale scenarlo e rllevanLe Lale
mlsura? Supponlamo dl aver concordaLo che su una cerLa llnea ll Cl8 non può essere superlore a 10Mbps.
Conslderando una flnesLra Lemporale dl 10 secondl, l'uLenLe poLrebbe LrasmeLLere 100MblL nel prlmo
secondo e pol non LrasmeLLere nulla nel nove successlvl. ln Lal caso ll vlncolo sul Cl8 sarebbe rlspeLLaLo
polche la medla rlenLra nel concordaLl 10Mbps, solo che chl gesLlsce la reLe e sLaLo cosLreLLo ad assorblre
ln un secondo 100MblL da un unlco uLenLe. 1all blL, a causa del momenLaneo lnLasamenLo provocaLo dalla
masslccla lmmlsslone dl daLl nella reLe, andrebbero persl se ll gesLore dl reLe non avesse LaraLo gll apparaLl
dl reLe per poLer gesLlre una Lale lmprovvlsa mole dl Lrafflco ln prosslmlLa del u1L. Ma un gesLore dl reLe
non ha un solo cllenLe dl modo che, ln vlrLu della la possblllLa che con plu dl uno dl essl sl possa verlflcare la
slLuazlone precedenLemenLe descrlLLa, sl Lroverebbe cosLreLLo a sovradlmenslonare la reLe ln manlera
sproposlLaLa. AppunLo per evlLare Lall slLuazlonl gll accordl vengono sLlpulaLl ln funzlone del parameLrl 8c e
1c, ovvero ad esemplo vlene paLLulLo un 8c dl 10MblL e un 1c dl 1 secondo. ln Lal modo ll gesLore dl reLe
può essere slcuro che l'ulLenLe, conslderaLa una flnesLra Lemporale dl 10 secondl, non sla ln grado dl
lmmeLLere sulla reLe plu dl 10MblL all'lnLerno dl ognuno del dlecl slngoll sloL Lemporall da un secondo.
Cvvero graflcamenLe l due casl sono rappresenLablll come segue




10
1s
10
1s
10
1s
10
1s
10
1s
10
1s
10
1s
10
1s
10
1s
10
1s
100

uove la llnea conLrassegnaLa come "Servlzlo garanLlLo" e un esemplo dl uLlllzzo del canale nel rlspeLLo del
vlncoll dl 8c e 1c concordaLl, menLre quella lndlcaLa come "Servlzlo non garanLlLo" presenza un'eccedenza
dl Lrafflco ln lnvlo (la reLLa esce dal reLLangolo LraLLegglaLo). 1ale eccedenza può essere rllevaLa medlanLe
apposlLl meccanlsml dl pollclng ed l blL ln eccesso possono essere buLLaLl vla oppure lmmessl nella reLe ma
marcaLl come frame candldaLl ad essere persl ln caso dl congesLlone. ua noLare e che l meccanlsml dl
pollclng possono essere appllcaLl anche all'lnLerno del slsLema dell'uLenLe: ln Lal caso, medlanLe operazlonl
dl bufferlng, ll Lrafflco ln usclLa vlene sagomaLo ln manlera Lale da non eccedere l llmlLl lmposLl sul Lrafflco
daLl.
l vanLaggl del l8 rlspeLLo all'x.23 possono qulndl essere ldenLlflcaLl ln presLazlonl mlgllorl (dovuLe
all'uLlllzzo dl mezzl Lrasmlsslvl ad alLa affldablllLa e veloclLa e all'approcclo core-edge) e un mlnore rlLardo
lnLrodoLLo. L' lmporLanLe però soLLollneare come l rlLardl slano comunque varlablll a causa della lunghezza
varlablle del frame (che rende dlfflclle sLlmare ll Lempo dl aLLesa all'lnLerno della coda dl un commuLaLore),
ll che rende Lale sLandard non ldoneo alla Lrasmlsslone della voce.


A1M - Asynchronous 1ransfer Mode
ulscuLendo ll 1uM - 1lme ulvlslon MulLlplexlng sl e vlsLo come l'lmmlsslone dl daLl sul canale fosse gesLlLa
assegnando agll uLenLl degll sloL Lemporall del quall venlva effeLLuaLa una roLazlone, subordlnando l'lnvlo
dl daLl ad una rlglda sequenza. nel caso dell' A1M "Asynchronous" sLa lnvece ad lndlcare ll faLLo che vlene
uLlllzzaLo un MulLlplexlng dl Llpo
sLaLlsLlco, nel senso che ll canale dl usclLa
vlene accordaLo agll uLenLl per la
Lrasmlsslone ln funzlone della quanLlLa dl
Lrafflco che quesL'ulLlmo necesslLa dl
lmmeLLere sulla reLe. ln quesLo modo però sl può facllmenLe lncorrere ln slLuazlonl dl congesLlone nel
momenLo ln cul ll numero dl blL ln arrlvo supera ll numero dl quelll che possono essere Lrasmessl.
L'A1M ln parLenza aveva degll obleLLlvl molLo amblzlosl, addlrlLLura voleva sopplanLare le eslsLenLl reLl
locall promeLLendo alLe veloclLa, parallellsmo e servlzl lnnovaLlvl. ul faLLo però oggl come oggl le reLl A1M
sl Lrovano sollLamenLe adoLLaLe solo nella reLe Lelefonlca, dove A1M e uLlllzzaLo come proLocollo dl
LrasporLo nella reLe dl accesso (AuSL, uM1S) e sopraLLuLLo nella reLl dl LrasporLo. Clò nonosLanLe sLa
andando lenLamenLe ln dlsuso ln favore dl Lecnologle dl reLe plu efflclenLl come MÞLS.
Þer splegare ll suo uLlllzzo nelle reLl Lelefonlche lmmaglnlamo un condomlnlo: ognl condomlno dlspone dl
una connesslone lnLerneL AuSL e qulndl, ln parLlcolare, dl un dopplno che lo collega plu o meno
dlreLLamenLe ad un uSLAM - ulglLal Subscrlber Llne Access MulLlplexer. Þer uSLAM sl lnLende ln sosLanza
un mulLlplaLore dl llnea dl accesso numerlca, una macchlna numerlca dl elaborazlone dl segnall dlglLall, che
da un laLo raccoglle dlversl canall dl
comunlcazlone provenlenLl dal slngoll
cllenLl, sollLamenLe velcolaLl appunLo da
dopplno Lelefonlco, raggruppandoll ln un
canale dl comunlcazlone dl gerarchla
superlore nella sLruLLura della reLe dl
Lelecomunlcazlone. nel caso che sLlamo
conslderando LuLLl l condomlnl sono presumlbllmenLe collegaLl allo sLesso uLSAM ma poLrebbero
benlsslmo avere un ognuno un dlverso gesLore dl reLe, dl modo che saranno collegaLl ognuno alla reLe lÞ
del parLlcolare gesLore. Þer poLer ragglungere ll rouLer dl accesso alla reLe lÞ deslderaLa, essendo
sollLamenLe l rouLer collocaLl a grande dlsLanza dalle ablLazlonl, Lra ll uSLAM e la locazlone flslca dl quesLl
ulLlml e sollLamenLe presenLe una reLe A1M. La reLe A1M funzlona a clrculLl vlrLuall dl modo che, sapendo
ognl condomlno dl chl e cllenLe, sl può programmare ll uSLAM ln modo che lnolLrl LuLLl l daLl ln arrlvo su un
cerLo dopplno verso uno cerLo lndlrlzzo A1M (cul corrlspondera ll rouLer del gesLore dl reLe) uLlllzzando un
cerLo clrculLo vlrLuale numeraLo x. l daLl ln arrlvo loglcamenLe faranno ll percorso lnverso.
Þer quanLo rlguarda la Lecnlca dl LrasferlmenLo anche A1M uLlllzza un meccanlsmo dl Llpo core-edge, ln cul
ll conLrollo della Lrasmlsslone e faLLo all'esLerno. ulfferenza lmporLanLe rlspeLLo al lrame 8elay sLa lnvece
nel faLLo che A1M aglsce su unlLa dl Lrasmlsslone dl lunghezza flssa, deLLe ce||e, al flne dl faclllLare la
commuLazlone hardware, llmlLare ll rlLardo dl aLLraversamenLo e rldurre gll sprechl. Lssendo l'A1M basaLo
sull'uLlllzzo dl clrculLl vlrLuall, prlma che possa avere lnlzlo ll LrasferlmenLo daLl con un qualche desLlnaLarlo
e necessarlo lnsLaurare un canale vlrLuale con quesL'ulLlmo, dopo dl che LuLLo passera aLLraverso Lale
canale. All'lnLerno della reLe sono presenLl degll apparaLl dl commuLazlone deLLl SwlLch A1M ll cul complLo
conslsLe appunLo nell'lnsLradamenLo del paccheLLl che LranslLano aLLraverso la reLe A1M. una cella A1M e
lunga 33 byLe, del quall 3 son rlservaLl per
l'header e nel l successlvl 48 possono essere
conLenuLe lnLesLazlonl dl un qualche llvello
superlore. Sl pensl lnfaLLl al caso ln cul sl
voglla uLlllzzare A1M per collegare reLl locall
remoLe. Le reLl locall hanno del frame che
sono ben plu grossl dl 48 byLe (eLherneL
arrlva a 1300 gla solo come payload
affeLLlvo), dl modo che Lall frame devono
essere frammenLaLl per vlagglare aLLraverso
la reLe A1M flno a desLlnazlone. La
frammenLazlone però rlchlede l lnserlmenLo
dl alcunl campl dl conLrollo che saranno
lndlspensablll per ll rlassemblagglo a
desLlnazlone, qulndl ecco che una parLe del
49 byLe dl carlco uLlle dl una cella A1M sl
perde per alLra lnformazlone dl conLrollo.

La flgura soLLosLanLe descrlve nel deLLagllo l campl dl una cella A1M



dove vÞl e vCl sono acronlml rlspeLLlvamenLe dl V|rtua| Þath Ident|f|er e V|rtua| C|rcu|t Ident|f|er.
Supponendo dl avere una serle dl clrculLl vlrLuall che percorrono ll medeslmo LraLLo dl dorsale (per coprlre
ad esemplo ll LraLLo Lra bologna e Lorlno), essl saranno commuLaLl LuLLl allo sLesso modo, moLlvo per cul e
posslblle raggrupparll all'lnLerno dl un ÞaLh. ln prosslmlLa della desLlnazlone flnale pol lnvece sl lnlzla ad
lnsLradare l varl clrculLl ln manlera
dlfferenLe. ll vanLagglo dl quesLo
approcclo e dl dlmlnulre ll numero
delle enLry all'lnLerno delle Labelle dl
lnsLradamenLo, polche ln modo sulle
dorsall l'lnsLradamenLo avvlene solo
sulla base del vÞl. ll vÞl e a 16 blL, dl modo che ce ne poLranno essere al masslmo solo 64k dlversl.
ll campo CLÞ - CongesLlon Loss ÞrlorlLy e uLlllzzaLo lnvece per marcare alcune celle come candldaLe ad
essere scarLaLe nel caso ln cul sl verlflcasse una slLuazlone dl congesLlone.
La commuLazlone ln A1M e molLo plu sempllce dl quella operaLa ln lÞ, basaLa sull'ldenLlflcazlone del
LongesL Þreflx MaLch. nel caso dell' A1M sl va lnvece sempllcemenLe a prendere ll numero del clrculLo
vlrLuale e lo sl uLlllzza per prelevare dalla Labella, medlanLe una sempllce operazlone dl lookup, la rlga
relaLlva a Lale clrculLo nella quale e conLenuLa l'lnformazlone rlguardo la porLa dalla quale blsogna usclre e
con quale numero dl clrculLo vlrLuale blsogna farlo (ll numero del clrculLo vlrLuale lnfaLLl cambla ognl volLa
che sl aLLraversa uno swlLch A1M). l probleml sorgono nel momenLo ln un uno SwlLch vlene meno, polche
ln Lal caso e necessaro rlcosLrulre LuLLl l clrculLl vlrLuall che lo aLLraversavano.
nel dlagramma del proLocolll A1M e presenLe una seconda dlmenslone, che permeLLe dl dlsLlnguere
dlfferenLl planl quall Contro| Þ|ane, User Þ|ane e Management Þ|ane. ll Þlano dl conLrollo e quello che
conLrolla la commuLazlone (aprl ll cv, chludl ll
cv,..), menLre quello uLenLe sl occupa del
LrasferlmenLo del daLl aLLraverso l clrculLl
vlrLuall. ll plano managemenL dl occupa lnflne
delle operazlonl dl gesLlone (aprl quesLa
porLa dello swlLch, chludl quell'alLra...).
Cgnuna dl quesLe Lre classl può avere un suo
sLack dl proLocolll dlfferenLe per reallzzare le
proprle funzlonallLa.
L' A1M Layer sl occupa della spedlzlone delle varle celle. uell' AAL - A1M Adaptat|on Layer ne eslsLono plu
generl, ll plu lnLeressanLe del quall e l'AAL S. La funzlonallLa fornlLa da quesL'ulLlmo e quella dl adaLLare
all'A1M una Lrasmlsslone daLl deflnlLa su un qualslasl Llpo dl canale, la cul unlLa dl Lrasmlsslone e superlore
alla dlmenslone della cella A1M, medlanLe operazlonl dl frammenLazlone e rlassemblagglo.



nelle lnLenzlonl dl coloro che hanno progeLLaLo l'A1M Lale Lecnologla avrebber anche dovuLo permeLLere
l'emulazlone dl reLl locall: prendere Lronconl dl reLl
locall dlfferenLl e fare ln modo che LuLLl sembrassero
apparLenere ad un'unlca reLe locale. CuesLo
rlchlede la presenza dl un cerLo numero dl server nel
momenLo ln cul blsogna lmplemenLarl funzlonallLa
quall ad esemplo l'A8Þ.




IÞ over A1M
Come funzlona l'lÞ su A1M? nelle reLl lÞ gll scenarl dl comunlcazlone camblano a seconda che ll
desLlnaLarlo della comunlcazlone sla locallzzaLo all'lnLerno o all'esLerno della soLLoreLe del mlLLenLe. nel
prlmo caso la comunlcazlone avvlene medlanLe Lrasmlsslone broadcasL del messaggl, menLre nel secondo
caso ll mlLLenLe deve necessarlamenLe avvalersl del servlgl dl un defaul gaLeway. Sulle reLl geograflche,
A1M compresa, non e però pensablle dl uLlllzzare ll broadcasL dl modo che sono sLaLl prevlsLl del Server
che sono ln grado dl fornlre l'lndlrlzzo A1M corrlspondenLe ad un cerLo lndlrlzzo lÞ della sLessa soLLoreLe.
nella faLLlspecle se P1 vuole comunlcare
con P2 dovra caplre qual'e l'lndlrlzzo
A1M assoclaLo a quesL'ulLlmo. Culndl P1
va a rlchledere Lale lndlrlzzo all'A8Þ
Server A, del quale conosce l'lndlrlzzo
A1M avendolo conflguraLo. una volLa che
ll Server avra fornlLo Lale lnformazlone P1 sara ln grado dl aprlre un clrculLo vlrLuale verso P2 per Lrasferlre
l daLl. 8lassumenLo l passl da esegulre sono l seguenLl
! ln fase lnlzlale P1 lmpara l'lndlrlzzo dl A
! P1 lnvla un A8Þ-8equesL ad A con P2-lÞ
! A lnvla un A8Þ-8esponse con l'lndlrlzzo P2-A1M
! P1 rlchlede alla reLe A1M la connesslone con P2lÞ

nel caso ln cul lnvece P1 volesse comunlcare con P3 (locallzzaLo ln una dlfferenLe soLLoreLe) lnvece cl sara
blsogno dell'lnLervenLo del defaul gaLeway 8
! P1 lnvla un A8Þ-8equesL ad A con 8-lÞ
! A lnvla un A8Þ-8esponse con l'lndlrlzzo 8-A1M
! P1 rlchlede alla reLe A1M la connesslone con 8 e lnvla ll paccheLLo per P3
! 8 lnvla un A8Þ-8equesL a 8 con P3-lÞ
! 8 lnvla un A8Þ-8esponse con l'lndlrlzzo P3-A1M
! 8 rlchlede alla reLe A1M la connesslone con P3lÞ

una varlanLe del meLodo appena descrlLLo sl avvale della presenza dl Next nop kouters. ln quesLo caso P1
rlchlesLo al server A l'lndlrlzzo A1M assoclaLo all'lndlrlzzo lÞ dl P3, ma purLroppo A non sa dargll rlsposLa
polche P3 non apparLlene alla sua soLLoreLe. ll server A provvede qulndl ad lnolLrare la rlchlesLa la server 8
che gesLlsce la soLLoreLe cul
apparLlene P3.
8 conosce la corrlspondenza rlchlesLa,
la glra ad A che la resLlLulsce ad P1. A
quesLo punLo P1 può aprlre un canale
vlrLuale per comunlcare dlreLLamenLe
con P3 senza la presenza dl alcun
rouLer.

















LL2ICNI N. 24,2S,26,27


MÞLS
Mu|t| Þrotoco| Labe| Sw|tch|ng




Come gla accennaLo nelle lezlonl precedenLl, l'MÞLS e la prlnclpale Lecnologla candldaLa all'lmplego per la
cosLruzlone dl collegamenLl geograflcl per le reLl lÞ.

Al cenLro del dlagramma a clpolla
proposLo ln flgura e locallzzaLo ll WDM
- Wave|ength D|v|s|on Mu|t|p|ex|ng.
nelle flbre oLLlche dl magglore capaclLa
e oggl posslblle avere plu canall loglcl
Lrasmessl aLLraverso degll lmpulsl con
radlazlone eleLLromagneLlcl con dlverse
lunghezze d'onda. LoglcamenLe e pol
necessarlo ln rlcezlone un qualche fllLro
capace dl esLrarre la lunghezza d'onda
deslderaLa decodlflcandone ll segnale,
come anche ln fase dl lnvlo un
mlscelaLore che permeLLe dl lnserlre l'lnformazlone nel flusso dl segnall. MedlanLe del dlsposlLlvl dl Llpo
opLo-eleLLronlco e pol posslblle reallzzare una cerLa commuLazlone anche sul WuM facendo ad esemplo
passare un segnale da un canale all'alLro, smlsLare un segnale ln usclLa su una Lra due o plu flbre eLc eLc..
uenLro Lall canall loglcl e pol posslblle far passare LanLl alLrl canall loglcl plu plccoll uLlllzzando ad esemplo ll
1uM. Cul la commuLazlone non può essere faLLa a llvello dl paccheLLo, benzl e abbasLanza sLaLlca dl modo
che sollLamenLe vengono reallzzaLe delle llnee punLo a punLo. Su Lall llnee punLo a punLo possono essere
posLl del slsLeml A1M dove la commuLazlone e plu raplda. ll lrame 8elay può sla essere cosLrulLo sopra
l'A1M che allo sLesso llvello, dlsponendo dl
commuLaLorl proprl. Sopra LuLLo clò pol vogllamo
usare l'lÞ. Ma qual'e qulndl ll slgnlflcaLo dl Lale
dlagramma!? LslsLe LuLLa una serle dl Lecnologle dl
varlo genere che possono essere LuLLe uLlllzzaLe per
fornlre una conneLLlvlLa dl Llpo lÞ.
La vlslone verso la quale sembra cl sl sLla orlenLando
e lllusLraLa nella flgura afflanco. All'lnLerno WuM,
dopo dl che su dl esso sl cosLrulsce con MÞLS ed lÞ la
reLe lÞ.
L'ldea dl base e parLlre dal paccheLLo lÞ ed agglungervl davanLl una nuova lnLesLazlone, chlamaLa Labe|,
perche quello che fa ln effeLLl l'MÞLS e, se anche non lo dlce espllclLamenLe, cosLrulre una reLe gesLlsLa a
clrculLl vlrLuall per far passare gll lndlrlzzl lÞ. A quesLo punLo l paccheLLl lÞ sono lnsLradaLl all'lnLerno della
reLe MÞLS usando l'lnformazlone conLenuLa nel Label. 1ale modus operandl e sLaLo scelLo perche permeLLe
dl accelerare la commuLazlone del paccheLLl. SosLanzlalmenLe ln un commuLaLore MÞLS per ognl canale dl
lngresso eslsLe una Labella che assocla ad ognl canale dl lngresso una porLa ed un canale dl usclLa (perche
ll numero dl clrculLo vlrLuale può camblare ad ognl commuLaLore). A Lale Labella sl accede aLLraverso una
sempllce operazlone dl lookup. CuesLo meLodo dl commuLazlone e molLo plu veloce rlspeLLo a quello
uLlllzzaLo dall'lÞ che prevede la rlcerca del LongesL Þreflx MaLch, nonche plu sempllce da reallzzare ln
hardware. La vera e proprla rlcerca del percorso per ragglungere ll desLlnaLarlo flnale avvlene col paccheLLo
dl aperLura della connesslone, dl modo che ln Lal caso vengono uLlllzzaLe delle Lecnlche dl Llpo lÞ. AlLro
moLlvo per ll quale e sLaLo adoLLaLo Lale approcclo a clrculLl vlrLuall (forse anche plu rllevanLe del
precedenLe) e che esso permeLLe una mlgllore gesLlone del Lrafflco. ln parLlcolare ll meccanlsmo dl
lnsLradamenLo dell'lÞ non e ln grado dl uLlllzzare LuLLl l canall eslsLenLl come sl vorrebbe perche va
scegllendo sempre ll percorso mlnlmo. 1uLLl gll alLrl percorsl non mlnlml, qulndl lgnoraLl dall'lÞ, poLrebbero
però ad esemplo rlsulLare uLlll ln casl dl congesLlone e sl vorrebbe dunque poLerll uLlllzzare. L' pur vero che
ll meccanlsmo dl lnsLradamenLo lÞ e capace dl Lrovare delle roLLe alLernaLlve ln caso dl congesLlonl o dl
guasLl al nodl della reLe, ma cl vuole del Lempo. Cuello che sl vorrebbe e lnvece uLlllzzare ll percorso
mlnlmo quale prlma scelLa, con la posslblllLa dl swlLchare ln manlera quasl lsLanLanea su un percorso
alLernaLlvo nel caso ln cul ce ne fosse blsogno. CuesLo rlsulLerebbe molLo uLlle ln alcunl Llpl dl reLl lÞ come
ad esemplo quelle che servono per gesLlre l backbone della Lelefonla, polche le apparecchlaLure uLlllzzaLe
sono ln grado dl "lgnorare" un perlodo dl lndlsponlblllLa del percorso la cul duraLa sla lnferlore a 30ms. ul
conseguenza se sl rlesce ad effeLLuare la commuLazlone da un percoso ad un'alLro alLernaLlvo enLro Lale
lasso dl Lempo le LelefonaLe ln corso non vengono chluse, qulndl non e perceplLo alcun Llpo dl dlsservlzlo
(perche l'orecchlo umano non perceplsce 30 ms dl vuoLo).
Þasslamo qulndl a vedere l'archlLeLLura dl reLe, dove sl dlsLlnguono le seguenLl apparecchlaLure:

! LSk - Labe| Sw|tch kouter: ha del clrculLl vlrLuall che lo aLLraversano e sl occupa delle operazlonl
lnLermedle dl commuLazlone. non ha conLaLLl con l'esLerno, bensl lnLeraglsce solo con alLrl elemenLl
MÞLS.
! Labe| Ldge kouter: sono poslzlonaLl al bordo della reLe fungendo da lngress o Lgress LS8. Cll lngress
8ouLer sl occupano dell'appllcazlone del label al paccheLLl lÞ del flusso ln lngresso nella reLe, menLre
gll Lgress della rlmozlone degll sLessl al paccheLLl dl Lrafflco lÞ ln usclLa. SosLanzlalmenLe qulndl vlene
reallzzaLa un'operazlone dl Lunnellng.


vedlamo plu ln deLLagllo come avvlene l'lnsLradamenLo all'lnLerno della reLe MÞLS: un daLagram ln arrlvo
dall'esLerno conLlene all'lnLerno dell'lnLesLazlone lÞ l'lnformazlone sul desLlnaLarlo. nell'lngress rouLer sl va
a rlcercare ll modo ln cul dovra essere esegulLo l'lnsLradamenLo del daLagram uLlllzzando Lecnlche del LuLLo
slmlll a quelle dell'lÞ, ovvero basaLe sulla rlcerca del LongesL Þreflx MaLch. nel nosLro caso l'lngress rouLer
Lrova nella sua Labella dl lnsLradamenLo
un'lnformazlone ln base alla quale ll
daLagram con preflsso dl reLe u deve
essere rlLrasmesso sulla porLa 0 dopo
avergll apposLo un label dl colore nero.
ln Lal modo ll daLagram glunge alla
porLa 4 del prlmo LS8 ll quale, ln vlrLu
delle lnformazlonl a sua dlsposlzlone,
procedera all'lnolLro aLLraverso la porLa
2 con un label dl colore blanco. ln
manlera slmllare ll daLagram percorre
LuLLl gll alLrl LS8 flno all'Lgress rouLer.
CuesL'ulLlmo procede a rlmuovere ll
label e ad lnolLrare ll daLagram verso
l'esLerno aLLraverso una delle sue porLe. 8lassumendo qulndl all'lngresso nella reLe MÞLS ll daLagram e
sLaLo lncapsulaLo e ll suo lnsLradamenLo e sLaLo effeLLuaLo basandosl unlcamenLe sull'lnformazlone fornlLa
dal label apposLo al daLagram dall'lngress rouLer. una volLa usclLo dalla reLe MÞLS, ll paccheLLo sara pol
nuovamenLe lnsLradaLo ln base all'lndlrlzzo del desLlnaLarlo speclflcaLo all'lnLerno dell'header lÞ.
AlLra caraLLerlche caraLLerlsLlche lmporLanLl dell'MÞLS sono le seguenLl:
! e ln grado dl manlpolare flussl a granularlLa dlfferenLe, ovvero e posslblle meLLere ln collegamenLo
Lra dl loro aLLraverso un Lunnel MÞLS due soLLoreLl dlfferenLl o addlrlLLura due gruppl dl soLLoreLl lÞ,
macchlne o anche appllcazlonl. Ma perche le appllcazlonl poLrebbero aver blsogno dl Lunnel
dlfferenLl? all'lnLerno dl una macchlna e comune che slano ln esecuzlone appllcazlonl ll cul Lrafflco
dl reLe prodoLLo e compleLamenLe dlfferenLe, ad esemplo un'appllcazlone web ed una volÞ. Se
quesLl due Llpl dl Lrafflco vengono lnvlaLl ad uno sLesso desLlnaLarlo aLLraverso ll medeslmo Lunnel
quello che succede e che sl e dl faLLo lmposslblllLaLl ad aLLrlbulre una qualslasl forma dl prlorlLa al
Lrafflco volÞ (che per deflnlzlone necesslLa dl garanzle dl banda e rlLardo dl aLLraversamenLo), l
rouLer non sono ln grado dl perceplre la dlfferenza Lra l due Llpl dl Lrafflco all'lnLerno del Lunnel.
Cuello che sl può fare per ovvlare a Lale problema e aprlre due dlversl Lunnel che saranno LraLLaLl
dal rouLer con prlorlLa dlfferenLl.
! e lndlpendenLe dal llvelll 2 e 3 ln vlrLu del faLLo
! e lnLerfacclablle con l proLocolll kSVÞ e CSÞI. ll prlmo permeLLe dl prenoLare sulla reLe delle rlsorse
per garanLlre su cerLl percorsl una cerLa quallLa del servlzlo (mlnlma banda garanLlLa, max valore dl
[lLLer, max rlLardo dl aLLraversamenLo..) e non e molLo uLlllzzaLo, menLre ll secondo e un proLocollo
dl lnsLradamenLo medlanLe ll quale l rouLer che sl Lrovano all'lnLerno dl uno sLesso aLonoumous
sysLem sl scamblano lnformazlonl che vanno ad lnfluenzare la creazlone delle Labelle dl rouLlng
(scomparsa o rlcomparsa dl un canale, dl un rouLer..).
! SupporLa A1M e lrame 8elay come llvello 2, dal quale però abblamo appena deLLo essere
lndlpendenLe.

L'lnLesLazlone MÞLS sl va a poslzlonare Lra l'header lÞ e quello del proLocollo dl llvello 2 ed e composLa dl
varle parLl, ognuna delle quall sl compone a sua volLa dl un Label da 20 blL, 3 blL sperlmenLall per la Class of
Servlce, un flag S che lndlca se la parLe correnLe
e l'ulLlma prlma dell'header lÞ e un campo da 8
blL che lndlca ll classlco 11L.
Ma perche quesLa necesslLa dl lnserlre plu label
MÞLS!? Supponlamo dl avere una reLe MÞLS ln
lLalla dl 1elecom lLalla e vogllamo cosLrulre un
Lunnel che da un punLo A collegaLo a Lale reLe ml
porLl ad un punLo 8 collegaLo ad una reLe MÞLS
ad esemplo ln lrancla, dl lrance1elecom. Þer
farlo cl rlvolglamo ad un operaLore che fornlsce
conneLLlvlLa lnLernazlonale, ovvero che meLLe a
dlsposlzlone una reLe MÞLS a llvello lnLernazonale. All'lnLerno dl Lale reLe e gla slcuramenLe presenLe un
Lunnel su cul vlene velcolaLo LuLLo ll Lrafflco che dalla reLe MÞLS lLallana vlaggla verso quella francese, dl
modo che verra usaLo Lale Lunnel senza crearne uno nuovo. ll paccheLLo lnvlaLo da A enLra nella reLe dl
1elecom lLalla medlanLe un lngress rouLer che
gll appllca un label dl glallo, dlsLlnLlvo dl quella
reLe MÞLS. ln base a Lale label ll paccheLLo
verra lnsLradaLo aLLraverso la reLe dl 1.l. flno
ad un lngress rouLer per ll Lunnel
lnLernazlonale. CuesL' ulLlmo vl appone un
secondo label azzurro, sulla base del quale
verra effeLLuaLa la commuLazlone all'lnLerno
della reLe lnLernazlonale. CuesLo permeLLe dl avere un unlco label per ll Lunnel azzurro nonosLanLe che al
suo lnLerno passano cenLlnala o mlgllala dl alLrl Lunel plu plccoll. Cosl facendo dlmlnulsce ll numero dl label
che gll SwlLch MÞLS devono LraLLare all'lnLerno della reLe lnLernazlonale. All'usclLa vlene LolLo ll label
azzurro e rlemerge quello glallo del Lunnel speclflco che va da A a 8. ua noLare e che 1.l. e lrance1elecom
sl parleranno duranLe le fasl lnlzlall allo scopo dl lnsLaurare ll Lunnel Lra l due punLl (lrance1elecom ha ll
complLo dl cosLrulre ll Lunnel dall'usclLa del Lunnel lnLernazlonale flno a 8) dopo dl che, una volLa LermlnaLa
l'lnsLaurazlone, l rouLer dl 1.l. rlsulLeranno conflguraLl ln modo da porLare ll label dl A flno all'lngress rouLer
della reLe lnLernazlonale. C'e da Lener presenLe che ll meccanlsmo per meLLere su quesLl Lunnel non e
necessarlamenLe auLomaLlzzaLo, bensl per moLlvl rlguardanLl ll 1rafflc Lngeneerlng rlchledono spesso
l'lnLervenLo umano. ul conseguenza quesLl Llpl dl Lunnel sono abbasLanza sLaLlcl, non verranno messl su e
pol dlsfaLLl nell'arco dl poco Lempo.
Le operazlonl che un rouLer MÞLS può fare su l varl label sono le seguenLl:
! ÞUSn: operazlone Llplca degll lngress rouLer, agglunge un nuovo label dl fronLe a quelll
evenLualmenLe gla eslsLenLl.
! ÞCÞ: operazlone Llplca degll Lgress rouLer, prende ll label plu esLerno e lo Loglle.
! SWAÞ: operazlone Llplca del rouLer lnLermedl, cambla ll conLenuLo dell'lnLesLazlone plu esLerna.
Þer esemplo nella flgura soLLosLanLe sulla Lrama eLherneL ln arrlvo dlreLLa al desLlnaLarlo "lÞ…1" (ll cul
preflsso dl reLe e 192.4/16) vlene effeLLuaLo un ÞuSP per apporgll ll label 3, pol due SWAÞ duranLe
l'lnsLradamenLo all'lnLerno della reLe MÞLS qulndl lnflne un ÞCÞ all'usclLa della reLe MÞLS. 1ale ÞCÞ fa
rlemergere l'lnLesLazlone orlglnale della Lrama, dl modo che da quesLo punLo ln pol l'lnsLradamenLo
conLlnua sulla base dell'lndlrlzzo desLlnaLarlo speclflcaLo all'lnLerno dl quesL'ulLlma.

nel caso dl MÞLS che uLlllzza A1M o lrame 8elay c'e una faclllLazlone legaLa al faLLo che, essendo LuLLe
Lecnologle basaLe sull'uLlllzzo dl clrculLl vlrLuall, ll numero da 20 blL da porre nel campo label può essere
dlreLLamenLe rlcavaLo a parLlre rlspeLLlvamenLe dal vCl/vÞl e dal uLCl.
vedlamo ora lnvece le ILC-Iorward Lqu|va|ence C|ass, ovvero le regole ln base alle quall sl declde quall
sono l paccheLLl che possono avere lo sLesso label:
! devono avere lo sLesso percorso all'lnLerno della reLe MÞLS (al dl fuorl dl essa l percorsl possono
anche varlare)
! devono essere LraLLaLl allo sLesso modo da LuLLl gll LS8, cloe ad esemplo non poLranno mal avere lo
sLesso label l paccheLLl dl un flusso a prlorlLa alLa (es.Lrafflco volÞ) e quelll dl uno a prlorlLa mlnore
(es. normale Lrafflco web).
l paccheLLl che soddlsfano enLrambe le condlzlonl cosLlLulscono una lorward Lqulvalence Class e hanno
LuLLl la medeslma label, ovvero vlagglano LuLLl all'lnLerno dello sLesso Lunnel MÞLS. AlLrl crlLerl ln base al
quall deflnlre le classl dl equlvalenza sono ad esemplo
! l paccheLLl hanno lo sLesso desLlnaLarlo unlcasL
! l paccheLLl hanno lo sLesso desLlnaLarlo mulLlcasL
! forzo la classe dl equlvalenza per moLlvl dl 1rafflc Lngeneerlng
! l paccheLLl hanno la sLessa CoS o CoS
! l paccheLLl apparLengono ad uno sLesso Lunnel vÞn

lnolLre..come v|ene stab|||ta |a numeraz|one de| |abe| ut|||zzat|? sl e gla amplamenLe dlscusso sul faLLo che
quando vlene creaLo un nuovo Lunnel non c'e la necesslLa dl aLLrlbulrgll come label un numero che non sla
uLlllzzaLo all'lnLerno dell'lnLera reLe, bensl e posslblle sLablllre un label dlverso per ognl LraLLa. Le label cosl
deflnlLe saranno Lra loro assoclaLe uLlllzzando le lnformazlonl conLenuLe nelle Labelle dl commuLazlone
all'lnLerno degll swlLch MÞLS.
nell'esemplo seguenLe l'lngress rouLer A fa un label requesL verso 81 speclflcando che ll desLlnaLarlo flnale
del clrculLo vlrLuale e l'Lgress rouLer C. 81 caplsce che per arrlvare a C ll prosslmo hop e 82, dl modo che a
sua volLa lnvla a quesL'ulLlmo una label requesL. lnflne e 82 che lnvla una requesL al desLlnaLarlo flnale C. A
quesLo punLo C rlsponde lndlcando a 82 che ll Lunnel che e sLaLo appena aperLo Lra dl loro può essere
numeraLo come 27, essendo Lale numero ancora lnuLlllzzaLo (non c'e nessun alLro Lunnel Lra 82 e C che sla
numeraLo con 27 ln quel
deLermlnaLo momenLo).
La caLena dl rlsposLe con
proposLe dl numerazlone
sl propaga cosl a rlLroso
flno all'lngress rouLer A
generando le assoclazlonl
Lra l varl label deflnlLl per le varle LraLLe del clrculLo all'lnLerno delle Labelle dl commuLazlone del varl LS8.
ln alLernaLlva all'approcclo appena descrlLLo

Come vengono costru|t| | tunne|? Le alLernLlve sono essenzlalmenLe due: sLaLlcamenLe o dlnamlcamenLe.
nell'approcclo sLaLlco e l'operaLore/gesLore dl reLe a planlflcare e reallzzare la cosLruzlone del Lunnel. 1ale
soluzlone non e però scalablle (ln caso dl reLe molLo grande ll carlco dl lavoro posLo sulle spalle
dell'operaLore e Lroppo gravoso) e non permeLLe un'lmmedlaLa lnLeroperablllLa Lra slsLeml dl dlversl
gesLorl (per esemplo se vogllono fare un Lunnel che colleghl le reLl dl due dlversl operaLorl). Þer ovvlare a
Lall probleml sono sLaLe elaboraLe una cerLa serle dl soluzlonl che aluLlno l'operaLore a Llrare su l Lunnel:
molLo spesso la declslone dl dove far passare esaLLamenLe l Lunnel e ancora presa da un essere umano, ma
faLLo quesLo pol l meccanlsml che servono a conflgurare e qulndl lmplemenLare l Lunnel nella reLe sono
sLaLl auLomaLlzzaLl. Ad esemplo ll proLocollo vlsLo nell'esemplo precedenLe prende ll nome dl LDÞ ed e
sLaLo progeLLaLo apposlLamenLe per l'MÞLS per creare una assoclazlone Lra degll lÞ unlcasL e l label. AlLre
soluzlonl sono l proLocolll kSVÞ, Ck-LDÞ, ÞIM e 8GÞ.
nell'approcclo dlnamlco lnvece l'aperLura del Lunnel e ÞroLocol (lÞ) drlven, ovvero vlene creaLo un LSÞ-
Labe| Sw|tch Þath Lra gll edge rouLer ognl volLa che cl sl accorge che e apparsa una nuova posslblle
desLlnazlone all'lnLerno della reLe. CraflcamenLe


Lale Lecnlca rlsolve ll problema dell'lÞ, funzlonanLe a daLagram, che deve uLlllzzare una reLe a clrculLl
vlrLuall come MÞLS. ll dllemma per Lale accopplaLa e lnfaLLl ll seguenLe: "quando ho un paccheLLo per un
cerLo desLlnaLarlo se non ho gla un Lunnel aperLo verso dl esso lo devo aprlre, dopo dl che, una volLa
LrasferlLo ll paccheLLo, quand'e che posso chludere ll Lunnel!? L'lÞ non fornlsce alcuna lnformazlone a
rlguardo!". La Lecnlca vlsLa ellmlna Lale dllemma perche ll Lunnel e sempre aperLo, vlene aperLo
lndlpendenLemenLe dal faLLo che lo abbla ln quel momenLo del Lrafflco da spedlre su dl esso o meno. ll
rlsvolLo negaLlvo e l'lnsLaurazlone dl un numero dl Lunnel davvero elevaLo, nell'ordlne dl n
2
(dove n e ll
numero dl edge rouLers presenLl). un nodo lnLermedlo sl rlLrova cosl ad essere aLLraversaLo da una gran
quanLlLa dl Lunnel e vedra lnevlLabllmenLe crescere la dlmenslone delle proprle Labelle dl lnsLradamenLo.
ln alLernaLlva la creazlone del Lunnel può essere esegulLa a segulLo dl espllclLa segnalazlone da parLe dl uno
degll Ldge rouLers. ln Lal caso ll percorso compleLo che dovra segulre ll Lunnel può essere declso da un
operaLore umano, che da pol mandaLo all'edge rouLer dl occuparsl della creazlone ln base alle speclflche
fornlLegll.

Þer quanLo rlguarda l protoco||| d| |nstradamento, quesLl possono essere effeLLlvamenLe usaLl quando sl
aprono l Lunnel. una volLa aperLl ll meccanlsmo dl lnsLradamenLo non vlene plu esegulLo perche LuLLe le
lnformazlonl per l'lnolLro dLLlel pacch sono conLenuLe all'lnLerno delle Labelle degll swlLch MÞLS ln manlera
abbasLanza sLaLlca. l proLocolll che sono sLaLl presl ln conslderazlone sono l seguenLl:
! CSÞI: plu che un meccanlsmo dl lnsLradamenLo e un proLocollo che serve al rouLer lÞ apparLenenLl
ad uno sLesso auLonomous sysLem (un gruppo dl soLLoreLl ammlnlsLraLe LuLLe dalla medeslma
organlzzazlone) per parlarsl e comunlcarsl l camblamenLl dello sLaLo della reLe. 1ale proLocollo e
sLaLo preso ed esLeso per essere adaLLaLo al suo uLlllzzo nelle reLl MÞLS.
! IS-IS: Lale proLocollo ha provenlenza lSC/CSl e svolge bene o male le medeslme funzlonl coperLe
dall'CSÞl. La necesslLa dl averll enLrambl derlva dal faLLo che CSÞl ha avuLo un lungo perlodo dl
sLandardlzzazlone.
! 8GÞ-4: meccanlsmo dl lnsLradamenLo Lra auLonomous sysLems nel quale cl sl annuncla
reclprocamenLe le varle soLLoreLl dove sono e se sl e ln grado dl ragglungerle o meno.
Lall proLocolll nella loro forma orlglnale LrasporLano solo lnformazlonl rlguardanLl la Lopologla della reLe.
AdaLLandoll al loro uLlllzzo con l'MÞLS sono sLaLl pol esLesl per ll LrasporLo dl lnformazlonl per ll constra|nt
rout|ng, ovvero lnformazlonl per fare l'lnsLradamenLo ma con del vlncoll del Llpo "vogllo evlLare LuLLl l
canall che sono gla uLlllzzaLl al dl sopra dl uan cerLa percenLuale", "vogllo avere due percorsl Lall che slano ll
plu posslblle flslcamenLe lndlpendenLl Lra dl loro",..eLc eLc. Le lnformazlonl LrasporLaLe a Lale scopo
rlguardano:
! CapaclLa del llnk
! uLlllzzazlone correnLe del llnk
! lnLerdlpendenze flslche Lra l llnk
le nuove verslonl cosl esLese del proLocolll precedenLemenLe vlsLl sono sLaLe denomlnaLe CSÞl-1L, lS-lS-1L
e 8CÞ-41L, dove 1L sLa per 1rafflc Lngeneerlng.
lnLroduclamo ora l conceLLl dl Contro| Þ|ane e Data Þ|ane.
nel caso dell'lÞ ll ConLrol Þlane e quella parLe dell'archlLeLLura dl un rouLer che sl occupa dl generare un
quadro della vlslone che ll rouLer ha dell'
lnLerconnesslone delle varle reLl all'lnLerno dello
sLesso auLonomous sysLem ln base alle lnformazlonl
rlcevuLe dagll alLrl rouLers. ln base a Lale vlslone verra
calcolaLa la Labella dl lnsLradamenLo, uLlllzzaLa dal uaLa
Þlane per assolvere alle sue manslonl. ll uaLa Þlane e
lnfaLLl quella seconda meLa del rouLer l cul meccanlsml
sl occupano del vero e proprlo smlsLamenLo del
paccheLLl (prendl ll paccheLLo, leggl la Labella dl rouLlng
per vedere dove deve andare, meLLllo ln coda,
Lrasferlscllo..eLc eLc).

nel caso dell'MÞLS lnvece ll conLrol plane sl occupa ancora dl calcolare la Labella dl lnsLradamenLo e dl
Lenerla agglornaLa, ma quesLa non e quella uLlllzzaLa dal conLrol plane. La forwardlng Lable uLlllzzaLa dal
conLrol plane dl un rouLer MÞLS conLlene
lnfaLLl lnformazlonl dlfferenLl da quelle del
caso lÞ, ovvero LuLLe le assoclazlonl Lra
label ln lngresso e corrlspondenLl porLa dl
usclLa/label dl usclLa per LuLLl l Lunnel che
aLLraversano ll rouLer. Cualcosa cambla
solo nel momenLo ln cul uno del Lunnel che
aLLraversano ll rouLer vlene chluso oppure
quando uno nuovo deve essere aperLo (ll
che vlene segnalaLo uLlllzzando l proLocolll
LuÞ o 8SvÞ). ln Lal caso sl va a prendere la
Labella dl lnsLradamenLo calcolaLa dal
conLrol plane per vedere qual'e ll prosslmo rouLer verso ll quale far prosegulre la cosLruzlone del Lunnel.
laLLo quesLo Lale Labella può essere nuovamenLe abbandonaLa. Sl può qulndl facllmenLe caplre come,
nonosLanLe la rouLlng Lable venga cosLanLemenLe agglornaLa, dl faLLo le lnformazlonl conLenuLe saranno
rlversaLe nella forwardlng Lable ln possesso del daLa plane solo nel momenLo ln cul sl avra la necesslLa dl
aprlre un nuovo Lunnel.

Andlamo lnvece ora a splegare ll perche ll meccanlsmo dl lnsLradamenLo dell'lÞ non permeLLe dl effeLLuare
ll 1rafflc Lngeneerlng.
ln flgura sono lllusLraLl l percorsl che vengono calcolaLl dall'algorlLmo dl lnsLradamenLo dell'lÞ per meLLere
ln comunlcazlone quaLLro hosL con la posLazlone u. Cuello che succede e che l percorsl mlnlml calcolaLl
formano la coslddeLLa arborescenza, nella
quale man mano che cl sl avvlclna alla
radlce ll Lrafflco va sempre plu aggragandosl
flno a concenLrarsl LuLLo all'lnLerno dl un
unlco llnk. ul conseguenza avremo alcunl
llnk poLenzlalmenLe sempre congesLlonaLl
ed alLrl compleLamenLe lnuLlllzzaLl, reallzzaLl
solo per moLlvl dl rldondanza al flne dl
dlsporre dl percorsl alLernaLlvl ln caso dl
guasLl ad alcunl nodl della reLe. ln parLlcolare e dlmosLrablle che l'algorlLmo dl lnsLradamenLo uLlllzzaLo
dall'lÞ calcola del caammlnl mlnlml con Lale conformazlone ad arborescenza qualunque sla la meLrlca
uLlllzzaLa per la valuLazlone del llnk. Cuello che lnvece sl vorrebbe e una dlsLrlbuzlone dl Lrafflco che evlLl
congesLlonl aLLuando un uLlllzzo quanLo plu
unlforme posslblle del llnk della reLe. CuesLo
Llpo dl gesLlone del llnk della reLe non e
reallzzablle con l'lÞ, menLre e lnvece posslblle
uLlllzzado l'MÞLS con ll quale e posslblle
cosLrulre espllclLamenLe del canall e farll
passare dove vogllo. ll rlsvolLo della medaglla e
però che l Lunnel MÞLS non sono cosl dlnamlcl
come l'lnsLradamenLo lÞ che può camblare
anche per ognl paccheLLo, reagendo ln manlera molLo dlnamlca al camblamenLl della Lopologla della reLe.


Abblamo vlsLo precedenLemenLe quella che ln MÞLS vlene deflnlLa una ILC-Iorward|ng Lqu|va|ent C|ass,
ovvero sosLanzlalmenLe un flusso dl Lrafflco che deve essere LraLLaLo allo sLesso modo nel varl rouLer sla ln
Lermlnl dl desLlnazlone che ln Lermlnl dl prlorlLa. Cuando vlene effeLLuaLo ll seLup dl un Lunnel MÞLS
blsogna decldere ln che modo devono essere servlLe le caLegorle dl Lrafflco passanLl su quesLo Lunnel
rlspeLLo alle alLre passanLl sugll alLrl Lunnel che aLLraversano ll rouLer. CuesLo dl faLLo dl Lraduce ln una
assoclazlone dl rlsorse ln Lermlnl dl buffer dl memorla e banda sul canale dl usclLa, ll che lmpllca degll
apposlLl meccanlsml all'lnLerno del daLa plane per reallzzare Lall funzlonallLa e alLrl meccanlsml all'lnLerno
del conLrol plane per poLer comunlcare Lra l varl rouLer qual'e ll Llpo dl servlzlo rlchlesLo per un parLlcolare
Lunnel. ll conceLLo dl CoS- C|ass Cf serv|ce permeLLe lnvece dl deflnlre prlorlLa relaLlve Lra le dlfferenLl lLC.


VÞN ed MÞLS
vedlamo ora l'uso che può essere faLLo dell'MÞLS per cosLrulre delle vÞn. LslsLono due posslblll lmpleghl
compleLamenLe dlfferenLl dell'MÞLS ln Lale conLesLo. ll prlmo e nel modello Cverlay (la vÞn vlene cosLrulLa
dall'uLenLe al dl fuorl della reLe, cul
sl vanno a chledere solo del servlzl
dl connesslone elemenLarl. ln Lal
caso l'uLenLe deve dlsporre anche
delle proprle lnfrasLruLLure al dl
fuorl della reLe per l'lnsLradamenLo
all'lnLerno del Lunnel). ln quesLo
caso l'MÞLS può essere usaLo per
rallzzare del canall punLo-a-punLo
uLlllzzablll nel modo seguenLe:
supponlamo dl avere una reLe MÞLS ln cul ldenLlflchlamo due edge rouLer (o plu generlcamenLe Þrovlder
Ldge) e due CusLomer Ldge cul e collegaLo un Lroncone della reLe vÞn.l CL sono dlreLLamenLe collegaLl ad
al ÞL, l quall aprono Lra dl loro un Lunnel che ll colleghl. ua noLare e che Lale Lunnel può benlsslmo essere
sfruLLaLo anche per la reallzzazlone dl alLre vÞn che
sl aLLesLlno sul medeslml ÞL. ln Lal caso per
dlsLlnguere l Lrafflcl apparLenenLl alle dlverse vÞn
saranno prevlsLl dlfferenLl label all'lnLerno del
paccheLLl, ovvero


dove ll label L
ÞL
speclflca ll ÞL dl desLlnazlone del paccheLLo, menLre ll label L
vÞn
lndlca a quale vÞn
apparLlene ll Lrafflco all'lnLerno del quale e locallzzaLo ll paccheLLo. CuesLo permeLLe al rouLer MÞLS
lnLermedl dl effeLLuare una commuLazlone basaLa unlcamenLe sulla label plu esLerna. nel momenLo ln cul
pol ll paccheLLo arrlva al ÞL dl usclLa quesLo Loglle la label plu esLerna e, ln base all'lnformazlone conLenuLa
L
ÞL
L

N


nel label plu lnLerno, decldera verso quale reLe vÞn effeLLuare l'lnolLro. L' opporLuno soLLollneare che l
Lrafflcl dl due reLl vÞn che condlvldono un Lroncone dl Lunnel all'lnLerno dl una reLe MÞLS sono Lall da
rlchledere ll medeslmo LraLLamenLo da parLe del rouLer lnLermedl. nel momenLo ln cul quesLo non fosse
plu vero sl avra la necesslLa dl andare ad uLlllzzare due dlfferenLl Lunnel MÞLS per le due reLl vÞn.
L'alLro lmplego che può essere faLLo dell'MÞLS per la cosLruzlone dl vÞn e lnvece nelle reLl con modello
ÞLL8 (l'uLenLe scarlca sul fornLore del servlzlo dl comunlcazlone LuLLl l probleml legaLl alla separazlone del
Lrafflco e all'lnsLradamenLo all'lnLerno del varl Lronconl della vÞn. L'uLenLe collega l CL come se sl dovesse
collegare ad una reLe realmenLe prlvaLa). ln Lal caso gll Ldge 8ouLer hanno una VkI - VÞN kout|ng and
Iorward|ng tab|e che conLlene le
assoclazlonl Lra lndlrlzzl lÞ e porLa
dl usclLa/vÞn dl apparLenenza. L'
necessarlo memorlzzare anche
l'lnformazlone sulla reLe vn dl
apparLenenza perche e posslblle
che per le vÞn slano sLaLl operaLl
del planl dl lndlrlzzamenLo ln
parzlale o LoLale colllsslone Lra dl
loro. Cll Ldge 8ouLers MÞLS sl mandano reclprocamenLe degll annuncl 8CÞ per scamblarsl le lnformazlonl
su quall sono le reLl collegaLe alle proprle lnLerfaccle e con quale cosLo esse sono ragglunglblll. l rouLer
lnLermedl all'lnLerno della reLe MÞLS sono lnvece LoLalmenLe allo scuro dl LuLLo e sl llmlLano ad un mero
lavoro dl commuLazlone del paccheLLl ln LranslLo.
Þer esemplo supponlamo che vl sla un paccheLLo ln parLenza desLlnaLo all'lndlrlzzo 10.0.0.37. ll
meccanlsmo lnLerno del Lroncone dl reLe vÞn azzurrlna caplsce che Lale desLlnaLarlo sl Lrova all'esLerno ed
lnsLrada ll paccheLLo verso
ll rouLer dl usclLa, e qulndl
a quello A dl lngresso alla
reLe MÞLS. ll rouLer A ha
un Lunnel che e aperLo ln
dlrezlone dell'edge rouLer
u cul e collegaLo l'alLro
Lroncone dl reLe vÞn all'
lnLerno del quale sl Lrova ll
desLlnaLarlo del paccheLLo.
ll rouLer A provvede qulndl
ad appllcare al paccheLL o un label L1 che conLraddlsLlnguera LuLLo ll Lrafflco azzurrlno ln parLenza dal
rouLer A con desLlnazlone ll rouLer u, ed un label L2 ln vlrLu medlanLe ll quale verra effeLLuaLo
l'lnsLradamenLo del paccheLLo all'lnLerno della reLe MÞLS flno a u. Cosa parLlcolare che l'MÞLS permeLLe dl
fare e la seguenLe: arrlvaLl al penulLlmo rouLer, nel nosLro caso ll rouLer lnLermedlo C, quesLo provvedera a
Logllere ll label esLerno. Cosl facendo ll paccheLLo arrlva al rouLer u avendo come label esLerno gla L1, ed ln
base a quesL'ulLlmo u decldera se lnolLrarlo verso ll 10.0.0.37 azzurrlno o verso quello grlglo. ll valore del
label L1 era sLaLo concordaLo Lra l rouLer A eu nel momenLo ln cul e apparso ll Lroncone dl reLe azzurrlna
lndlrlzzaLo 10.0.1.0/24 e la cosa era sLaLa noLlflcaLa medlanLe messaggl 8CÞ.
ln vlrLu del faLLo che, come gla deLLo precedenLemenLe, e posslblle che per vÞn dlverse vengano deflnlLl
planl dl lndlrlzzamenLo ln parzlale o LoLale colllsslone Lra dl loro e sLaLo sLandardlzzaLo ll coslddeLLo koute
D|st|ngu|sher. CuesLo alLro non e che un ldenLlflcaLore da agglungere all'lndlrlzzo lÞ che permeLLe dl
dlsLlnguere Lra dl loro le varle vÞn.

l beneflcl del meccanlsml lllusLraLl sono rlassumlblll come segue:
! non cl sono vlncoll sul plano dl lndlrlzzamenLo, gll lndlrlzzl devono essere unlcl solo all'lnLerno della
vÞn.
! l CL rouLers non scamblano lnformazlonl Lra dl loro
! l'uLenLe non deve occuparsl della gesLlone del backbone dl lnsLradamenLo
! l gesLorl possono usare un unlco Llpo dl reLe per fornlre lo sLesso Llpo dl servlzlo a LuLLl l loro cllenLl,
l'lnfrasLruLLura dl reLe e comune a LuLLl
! le vÞn possono essere esLese su plu provlders
! l Lunnel permeLLono dl lsolare l Lrafflcl delle varle vÞn ma non fornlscono alcun Llpo dl clfraLura. Se
quesL'ulLlma e rlchlesLa deve essere reallzzaLa dall'uLenLe al dl fuorl della reLe

AlLernaLlva alla slLuazlone descrlLLa precedenLemenLe e quella che prevede l'uLlllzzo dl V|rtua| kouters. ln
alLre parole l'lnLenslone e quella dl lnsLallare all'lnLerno degll edge rouLers dlverse delle macchlne vlrLuall
che eseguono del rouLers (vlrLuall), una per ognl reLe vÞn che uLlllzza quel parLlcolare edge rouLer. ln Lal
caso all'arrlvo dl un paccheLLo vlene selezlonaLa e messa ln funzlone la macchlna relaLlva alla parLlcolare
vÞn cul apparLlene ll Lrafflco ln
lngresso. ll prlnclpale problema
dl Lale approcclo rlslede nel faLLo
che nella commuLazlone da una
macchlna vlrLuale all'alLra sl
perde un pò dl Lempo, dl modo
che sl perde una parLe della
capaclLa dl elaborazlone dl quesLl
rouLer.








LL2ICNI N. 27,28


Improv|ng ÇoS |n IÞ Networks

l proLocolll lÞ, 1CÞ e uuÞ dl lL1l non hanno nessun meccanlsmo che abbla a che vedere con la LemplsLlca,
ovvero non vl e alcuna posslblllLa dl speclflcare che un paccheLLo debba essere consegnaLo al masslmo
enLro un cerLo lasso dl Lempo o comunque avanzare delle rlchlesLe ln Lermlnl dl banda mnlma rlservaLa o
mlnlmo rlLardo dl aLLraversamenLo. CuesLo e dovuLo al faLLo che quando sono sLaLl lnLrodoLLl all'lnlzlo
degll annl 80' nessuno sl era posLo Lale problemaLlca, polche nessuna soluzlone appllcaLlva ne rlchledeva
l'anallsl. nel momenLo ln cul lnvece cl sl e lnlzlaLl a porre ll problema le soluzlonl proposLe sono sLaLe
essenzlalmenLe Lre:
! lasclare LuLLo com'era, punLando sul faLLo che la veloclLa globale delle reLl sarebbe andaLa
aumenLando negll annl e sullo scarso uLlllzzo del canall.
! Integrated Serv|ces: proponeva dl meLLere ln campo del nuovl proLocolll che permeLLano dl
esprlmere speclflche rlguardanLl la CoS (per esemplo kSVÞ) e nuovl algorlLml all'lnLerno del rouLer
perche quesLl slano ln grado dl LraLLare ll Lrafflco non necessarlamenLe secondo una fllosofla dl Llpo
lllC. 1ale soluzlone e presLo naufragaLa vlsLa l'lmposslblllLa dl fornlre esLenderla a llvello
planeLarlo.
! D|fferent|ated Serv|ces: proponeva dl dlfferenzlare ll Lrafflco ln poche classl, dopo dl che deflnlre
del meLodl dl LraLLamenLo per quesLe.
Þer caplre alcunl prlnclpl fondamenLall rlguardanLl la CoS e
posslblle uLlllzzare ll seguenLe modelllno nel quale,
supponendo che la banda sulla reLe locale non sla un
problema, sl noLa sublLo come ll problema rlsleda nel faLLo
che la coda dl Lrasmlsslone del rouLer 81 può lncorrere ln
sLaLl dl congesLlone nel momenLo ln cul la veloclLa dl arrlvo
del paccheLLl sla superlore a quella dl usclra degll sLessl.
ÞarLendo da Lale osservazlone e posslblle esprlmere del prlnclpl necessarl per poLer fornlre la CoS al flne dl
ovvlare a Lale crlLlclLa.
! Þr|nc|p|o n.1: L' necessarlo marcare l paccheLLl per permeLLere al rouLer dl dlsLlnguere dlfferenLl
classl dl flussl e lnLrodurre nuove pollLlche dl pollcy nel rouLer per LraLLare l paccheLLl dl conseguenza.
! Þr|nc|p|o n.2: lornlre lsolamenLo Lra le varle classl.
! Þr|nc|p|o n.3: uLlllzzare le rlsorse nella manlera plu efflclenLe posslblle. ln parLlcolare e da evlLare
l'allocazlone flssa delle rlsorse (qulndl no 1uM!).
! Þr|nc|p|o n.4: se vogllo avere uan qualche garanzla rlguardo l parameLrl della quallLa del servlzlo
devo prlma dlre alla reLe quall sono le caraLLerlsLlche del Lrafflco e aspeLLare che la reLe dla l'ok.
CuesLo perche le rlsorse sono flsse e ll faLLo che la reLe possa acordare o meno l parameLrl dl servlzlo
rlchlesLl dlpende dal carlco dl lavoro aLLuale della reLe.
ulamo qulndl ora un'occhlaLa a quelll che sono l meccanlsml uLlllzzaLl denLro al rouLer per reallzzare
quanLo deLLo. L' chlaro che ll problema e nella gesLlone delle code. CuesLe sono normalmenLe gesLlLe ln
base ad uno schedullng dl Llpo lllC, dl modo che
uno sLaLo dl congesLlone dlpendera dal faLLo che l
paccheLLl glungono nella coda del rouLer con una
veloclLa magglore rlspeLLo a quella con cul quesLo e
ln grado dl lnolLrarll sul canale dl usclLa. nel caso ln
cul arrlvando un paccheLLo Lrovasse la coda (buffer)
plena vl e la necesslLa dl rlcorrere a delle dlscard pollcy:
! vlene scarLaLo l'ulLlmo paccheLLo arrlvaLo ln ordlne dl Lempo
! vlene scarLaLo un paccheLLo ln base ad un meccanlsmo a prlorlLa
! vlene scarLaLo un paccheLLo ln manlera random
! kLD- kandom Lar|y de|et|on: sl lnlzla a prendere ln conslderazlone la posslblllLa dl lnlzlare a
scarLare del paccheLLl nel momenLo ln cul la percenLuale dl rlemplmenLo della coda ragglunge una
cerLa soglla. 8agglunLa Lale soglla per ognl paccheLLo ln arrlvo sl declde, con probablllLa varlablle
dlpendenLe dalla lunghezza della coda, se scarLarlo o meLLerlo ln coda. ln Lal modo non sl arrlva mal
al rlemplmenLo LoLale della coda.

Le pollLlche appena vlsLe non Lengono però ln conslderazlone la posslblllLa che l paccheLLl possano essere
suddlvlsl ln classl. ln Lal senso occorre una pollLlca dl servlzlo Lale per cul nel momenLo ln cul ll servlLore e
llbero, dlsponendo dl dlverse code ln lngresso che conLengono l paccheLLl ln base alla classe dl
apparLenenza, predlllga l'lnvlo del pacheLLl apparLenenLl alla classe con prlorlLa plu alLa (nel caso ln cul ce
ne slano).


ua
noLar
e e
però
che
l'arrlv
o ln
coda dl un paccheLLo a prlorlLa plu alLa non lnLerrompe l'lnvlo dl uno a prlorlLa plu bassa nel caso quesLo
sla gla ln corso.
AlLra posslblllLa e uno schedullng dl Llpo kound kob|n. Ancora una volLa abblamo plu classl dl prlorlLa,
dopo dl che ognl volLa che vlene presa una declslone dl ordlnano le classl ln modo dlverso. ln praLlca e
come se fosse passaLo un Loken dl prlorlLa alle varle classl con una conflgurazlone clrcolare.









ln Lal modo e pensablle dl rlusclre ad assegnare la banda ln manlera eguallLarla a LuLLe le classl deflnlLe.
Con la pollLlca vlsLa precedenLemenLe sl rlschla lnvece che l paccheLLl a prlorlLa plu bassa rlmangano
bloccaLl.
una varlanLe del 8ound 8obln e 8ound 8obln CenerallzzaLo, anche deLLo We|ghted Ia|r Çueu|ng. ln poche
parole e un 88 nel quale però le feLLe dl Lempo w
l
assegnaLe non sono uguall per LuLLe le code






e ln parLlcolare ad esemplo la banda garanLlLa al Lrafflco rosso e quanLlflcablle come W
1
/(W
1
+W
3
+W
3
).

1raLLaLl l meccanlsml dl Schedullng andlamo ora a vedere quelll dl Þo||c|ng.
ll Þollclng e un'aLLlvlLa che vlene svolLa da chl gesLlsce una reLe per verlflcare che ll Lrafflco lmmesso da
uno del suol clenLl e o meno conforme a degll accordl presl. l parameLrl che possono essere conLrollaLl
sono l seguenLl:
! veloclLa medla su lungo perlodo, ovvero quanLl paccheLLl sono sLaLl lnvlaLl per unlLa dl Lempo
conslderando un lasso dl Lempo abbasLanza amplo.
! veloclLa dl plcco
! Max 8ursL Slze, ovvero l'lmmlsslone dl paccheLLl uno dopo l'alLro (senza alcuna pausa lnLermedla)
alla masslma veloclLa del canale
ll meccanlsmo dl Þollclng sollLamenLe uLlllzzaLo e ll 1ocken 8ucket. Abblamo un secchlello ln cul vlene
lanclaLo un Loken esaLLamenLe ognl 1/r secondl, ovvero r Loken al secondo. ll secchlello ha una capaclLa b,
dl modo che se arrlva un nuovo Loken e ll
secchlello e pleno Lale Loken cade fuorl. un
paccheLLo per poLer enLrare nella reLe deve
prendere un geLLone dal secchlello. Se non
Lrova geLLonl nel secchlello allora quel
paccheLLo e un paccheLLo non conforme,
ovvero Lale da vlolare gll accordl presl col
fornlLore dl reLe. ln Lal caso possono
succedere dlverse cose:

! ll paccheLLo vlene faLLo aspeLLare
! ll paccheLLo vlene faLLo enLrare ma vlene marcaLo come candldaLo per essere ellmlnaLo
prlorlLarlamenLe ln caso dl congesLlone
! ll paccheLLo vlene buLLaLo vla

1ale meccanlsmo può anche essere uLlllzzaLo non solo dal laLo dl chl gesLlsce la reLe bensl anche da quello
da chl la uLlllzza e ha lnLeresse a non vlolare gll accordl presl. A Lal flne e posslblle sagomare ll Lrafflco
uLlllzzando del buffer che memorlzzano l flles ln usclLa e ll rllasclano ad lnLervalll regolarl nel rlspeLLo del
vlncoll dl reLe lmposLl. 1ale meLodo prende ll nome dl Shap|ng.
Ma vedlamo perche funzlona Lale meccanlsmo: ll numero masslmo dl paccheLLl che possono enLrare nella
reLe e parl al numero dl geLLonl che sono passaLl nel secchlello, dl modo che daLo un Lempo L rlsulLa che ll
numero masslmo dl Loken che sono passaLl dal secchlello e r*t + b (dove r•L sono quelll che sono sLaLl
versaLl ln un Lempo L e b sono quelll che erano gla presenLl nel secchlello). Þer L-->oo avrò che b e
Lrascurablle, qulndl sl può dlre che ll numero dl paccheLLl che vengono lmmessl nella reLe e proporzlonale
al Lempo con un faLLore dl proporzlone r. ll parameLro r conLrolla dunque la veloclLa dl lmmlsslone del
paccheLLl sul lungo perlodo e b e la masslma lunghezza del bursL (lnfaLLl un lnsleme dl paccheLLl ln arrlvo
per passare LuLLl lnsleme devono Lrovare l Loken nel secchlello dove ne abblamo masslmo b).
ll 1oken 8uckeL può essere uLlllzzaLo ln conglunzlone con ll WlC per conLrollare ll Lrafflco dl reLe nel
seguenLe modo: sul flussl ln arrlvo dl paccheLLl vlene usaLo un meccanlsmo con ll secchlello dl Loken con
veloclLa dl arrlvo del Loken r
l
e
un bursL slze masslmo parl a
b
l
. Cosl facendo sl conLrolla ll
Lrafflco garanLendo che la
veloclLa dl arrlvo del pacheLLl
non superl mal r
l
e sl llmlLa ll
bursL slze a b
l
. uopo dl che le
code vengono gesLlLe con una
Lecnlca dl WlC, dove l pesl sono sLablllLl ln manlera Lale che la banda assegnaLa ad una cerLa classe dl
Lrafflco sla r
l
. ln base a Lale conflgurazlone rlsulLa che ll masslmo rlLardo dl una classe e daLo dal bursL slze
della classe / la banda del canale rlservaLa a Lale classe

u
MAx
= b / 8

lnfaLLl ll caso pegglore dl aLLraversamenLo dl un rouLer e quello ll cul ll paccheLLo lnvlaLo e l'ulLlmo dl un
bursL. ll problema dl Lale approcclo e che necesslLa dl una classe per ognl flusso, dl modo che nel momenLo
ln cul ll numero dl flussl aumenLa dl molLo, come ad esemplo nel caso del backbone, cl sl rlLrova a gesLlre
mlgllala dl classl con mlgllala dl secchlelll.

Ma come possono essere usaLl l meccanlsml vlsLl per cosLrulre un'archlLeLLura che fornlsca servlzl
dlfferenzlaLl per ll LrasporLo dl segnall e daLl? ll problema e che lÞ uLlllzza una Lecnlca dl lnsLradamenLo dl
Llpo connecLlonless, ovvero le declslonl dl lnsLradamenLo vengono prese per ognl paccheLLo ln manlera
lndlpendenLe dagll alLrl. Sopra l'lÞ, l proLocolll 1CÞ e uuÞ seguono un modello dl Llpo 8esL LfforL, ovvero
fanno del loro megllo per la consegna del paccheLLl ma non e fornlLa alcuna garanzla. 8lsulLaLo e che non
vlene uLlllzzaLo alcun proLocollo dl segnalazlone, dl modo che non ce modo dl prenoLare una cerLa CoS su
LuLLo ll percorso per una Lrasmlsslone mulLlmedlale. 8lsposLa a Lale problema e sLaLa la deflnlzlone del
proLocollo kSVÞ - kesource keservat|on Þrotoco|, la cul amblzlone era quella dl rlusclre a gesLlre la
prenoLazlone dl rlsorse flusso per flusso al flne dl oLLenere garanzle sulla quallLa del servlzlo (abblamo vlsLo
poco fa come con ll WlC sl rlesca a garanLlre una banda mlnlma e con WlC+1oken 8uckeL ll Lempo
masslmo dl aLLraversamenLo su un rouLer).

ln parLlcolare 8SvÞ può garanLlre:
! le caraLLerlsLlche del servlzlo oLLenuLo ln Lermlnl dl perdlLe, rlLardo e banda
! conLrollo sull'accesso e accodamenLo del flusso, nel senso che prlma dl concedere delle rlsorse per
un cerLo flusso occorre lnLerrogare la reLe per sapere se Lall rlsorse sono effeLLlvamenLe dlsponlblll
ln vlrLu del carlco dl lavoro correnLe.
ll problema ln Lal caso rlslede nell'elevaLa complesslLa che LuLLo clò comporLa, da cul consegue anche una
bassa scalablllLa. laLLo sLa che 8SvÞ e sLaLo lmplemenLaLo all'lnLerno del rouLer ma dl faLLo non vlene
uLlllzzaLo.

IntServ

L'archlLeLLura IntServ prevede che ad ognl flusso venga assoclaLo un I|ow Descr|ptor formaLo da due
lnsleml dl parameLrl quall:
! I||terspec: deflnlsce la composlzlone del uaLa llow ossla
speclflca l parameLrl (l'lndlrlzzo sorgenLe, ll numero dl
porLa 1CÞ/uuÞ) aLLraverso l quall ldenLlflcare l paccheLLl
della sesslon.
vlene uLlllzzaLo per conflgurare opporLunamenLe l classlflcaLorl del 8ouLer.

! I|owspec: ldenLlflca ll llvello dl CdS rlchlesLo ed e uLlllzzaLo per conflgurare l parameLrl degll
scheduler nel nodl dl reLe. ll llowSpec, come rlporLaLo nella 8lC 2210, e composLo da Lre Llpologle dl
parameLrl e può essere modlflcaLo lungo ll percorso:
† 8spec: ll llvello dl CoS deslderaLo,
† 1spec: le speclflche del Lrafflco

sulla base del llow uescrlpLor vengono pol effeLLuaLe le prenoLazlonl, qulndl c'e un classlflcaLore dl
paccheLLl, un meccanlsmo dl gesLlone delle code del paccheLLl e del buffer, c'e conLrollo dl ammlsslone e
qulndl evenLuale prenoLazlone e cl sono le normall funzlonl dl lnsLradamenLo.
kSVÞ e ll cuore dl lnLServ essendo quesLo ll proLocollo con cul sl fanno le prenoLazlonl. 8SvÞ uLlllzza l'lÞ e
LrasporLa le varle lnformazlonl, ovvero l flow descrlpLor. L' faLLo per avere del rlcevlLorl eLerogenel, lnfaLLl
le prenoLazlonl sono faLLe dal rlcevlLorl (e espllcaLlvo ll caso del mulLlcasL dove l varl uLenLl possono avere
bande dl accesso alla reLe dlfferenLl). Þer quanLo rlguarda l meccanlsml dl lnsLradamenLo lnvece 8SvÞ
presuppone che essl slano gla lmplemenLaLl all'lnLerno del rouLer, dl modo che non se ne preoccupa.
Cuello che essenzlalmenLe 8SvÞ non fa e
! la gesLlone del gruppl mulLlcasL (lngresso/usclLa membrl)
! speclflcare ll modo ln cul le rlsorse devono essere prenoLaLe dal rouLer
! lnsLradare l paccheLLl
! lnLeraglre col paccheLLl ln LranslLo

D|ffServ
A dlfferenza dell'lnLServ non c'e la presunzlone dl andare a garanLlre nulla dl preclso sulla quallLa della
Lrasmlsslone e non c'e prenoLazlone delle rlsorse. lnolLre non sl manLlene all'lnLerno del rouLer uno sLaLo
per clascun flusso (necessarlo per oLLenere per clascun flusso una parLlcolare quallLa del servzlo) ma c'e
una dlfferenzlazlone del Lrafflco sulla base dl un campo DS f|e|d dl 6blL (qulndl al masslmo 64 classl) e pol sl
effeLLua un LraLLamenLo sulla base della classe. ll conLrollo dl accesso e effeLLuaLo solo al conflnl del
ulfferenLlaLed Servlce uomaln e qulndl c'e pollclng, shaplng e Lrafflc condlLlonlng.
L' lmporLanLe noLare come premessa fondamenLale e quella che ll Lrafflco dlfferenzlaLo rappresenLa una
plccola percenLuale della capaclLa della reLe (sollLamenLe al dl soLLo del 30•). ln Lal caso, non essendo ll
Lrafflco dlfferenzlaLo lnfluenzaLo dalle evenLuall congesLlonl generaLe da paccheLLl a plu bassa prlorlLa,
sosLanzlalmenLe vede un'lnfrasLruLLura che e sempre scarlca. ne consegue che, pur non garanLendo nulla,
ln Lall condlzlonl e posslblle oLLenere buone presLazlonl.
Le caraLLerlsLlche dl ulffServ sono le seguenLl:
! bassa efflclenza, perche ovvlamenLe se lo Lendo a Lenere l'lnfrasLruLLura carlcaLa poco per quanLo
rlguarda ll Lrafflco ad alLa prlorlLa allora non la sfruLLo al masslmo
! sempllclLa e scalablllLa, essendo pochl l parameLrl che c'e blsogno dl Lenere soLLo conLrollo
! e sLaLo scelLo dal mercaLo a scaplLo dl lnLServ
L'archlLeLLura dl D|ffServ e lllusLraLa dalla seguenLe flgura, ovvero eslsLe un uS uomaln nel quale sono
prevlsLl:
! un meccanlsmo all'lngresso per la
marcaLura (ed evenLuale rlmarcaLura)
del Lrafflco al flne dl lndlcarne la classe
dl apparLenenza.
! meccanlsml dl Lrafflc condlLlonlng per ll
LraLLamenLo del Lrafflcl ln manlera
dlfferenzlaLa
! meccanlsml dl lnsLradamenLo


L'archlLeLLura dl un rouLer ulffServ e lnvece la seguenLe

All'lnLerno del ulffServ e sLaLo deflnlLo anche ll comporLamenLo della classe all'lnLerno dl ognl hop (Þn8 -
Þer nop 8ehav|or), ln quanLo essa può varlare ln ognl rouLer.L' deflnlLo un lnsleme dl ÞP8 che
corrlspondono al dlversl llvelll dl CoS che un domlnlo uS può offrlre e l parameLrl dl varlazlone sono
lmposLaLl dal gesLore del rouLer. un llvello dl CoS offerLo da un domlnlo uS e daLo qulndl dalla
composlzlone del ÞP8 appllcaLl nel rouLer aLLraversaLl dal daLagramml.
Cll sLandard dl ÞP8 uLlllzzaLl sono:
! Lxped|te Iorward|ng: garanLlsce un raLe dl servlzlo magglore o uguale al valore speclflcaLo.
! Assured Iorward|ng: assegna dlverse prlorlLa dl scarLo a seconda della classe.
L' posslblle lnolLre deflnlre ll ÞD8 - Þer Doma|n 8ehav|or, che lnforma su quale comporLamenLo e quall
garanzle sl avranno all'lnLerno dl un lnLero domlnlo.
vengono deflnlLl:
! l classlflcaLorl: segnano (mark) l paccheLLl apparLenenLl al Þu8
! l condlzlonaLorl: reallzzano pollclng alla perlferla del uS domaln
! la concaLenazlone del ÞP8 prevlsLl: ll servlzlo end-Lo-end rlcevuLo dal paccheLLl rlsulLa dalla
concaLenazlone del ÞP8 prevlsLl