Documente Academic
Documente Profesional
Documente Cultură
Circuit de date
Legătură de date
1
1.2 COOPERAREA ŞI SCHIMBUL DE DATE ÎNTRE CALCULATOARE
Prin cooperarea între procese de aplicaţie care rulează în două sau mai multe
calculatoare sunt oferite diferite servicii utilizatorilor. Astfel se poate realiza transferul
unui fişier de la un calculator la altul, se poate accesa de la distanţă o bază de date, se pot
transmite mesaje, se pot utiliza resursele hardware şi software ale unui supercalculator, se
poate partaja utilizarea unor periferice costisitoare, etc.
Schema simplificată a comunicaţiei între două sisteme de calcul este prezentată în
figura 1.2. Două procese de aplicaţii, ce se desfăşoară în două calculatoare, cooperează şi
comunică între ele prin intermediul subsistemelor de comunicaţii, având componente
hardware şi software, instalate în aceste calculatoare. La rândul lor, subsistemele de
comunicaţii comunică între ele prin intermediul unei reţele de comunicaţii de date.
Calculator A Calculator B
Comunicaţie
PA PA
utilizator - utilizator
Comunicaţie calculator-reţea
Reţea pentru comunicaţii de date
PA - Proces de aplicaţie
2
necesar, prin urmare, să se realizeze o funcţie de control al erorii pentru a detecta şi a
corecta erorile apărute. O altă funcţie, de control al fluxului, este utilizată pentru a regla
ritmul în care sunt transferate datele. Dacă între cele două calculatoare comunicaţia
urmează a se stabili prin intermediul unei reţele de date va fi necesară o funcţie de rutare
pentru a alege o rută prin care să se transfere datele.
În unele aplicaţii calculatoarele care sunt în comunicaţie pot fi de tipuri diferite, cu
reprezentări diferite pentru caractere şi valori numerice. Va fi nevoie în aceste cazuri de o
funcţie care să asigure că datele transferate sunt interpretate în acelaşi fel în fiecare
calculator. De asemenea, calculatoarele pot utiliza sisteme de operare diferite, ceea ce
înseamnă că interfeţele între programele de aplicaţie (de utilizator) şi serviciile de
comunicaţie calculator-calculator vor fi diferite. Este evident că şi astfel de aspecte
trebuie avute în vedere pentru realizarea comunicaţiiloe între calculatoare.
PA PA PA PA
Subsistem de Subsistem de
Subsistem Subsistem comunicaţii comunicaţii
de de
Modem PST Modem
a) b)
3
LAN 2
P
LAN 1
P Artera principală P
(backbone)
P - Pod
LAN 3
c)
Dacă într-o aplicaţie sunt implicate mai multe calculatoare se va utiliza o reţea
care să permită tuturor calculatoarelor să comunice unul cu altul. Dacă aceste
calculatoare sunt distribuite într-o zonă relativ restrânsă, într-o clădire sau în mai multe
clădiri apropiate, se poate instala o reţea proprie (Fig. 1.3, c) - LAN (Local Area
Network). Reţelele locale situate la distanţe mari una de alta pot fi interconectate folosind
canale de comunicaţii oferite de reţeaua de telecomunicaţii publică, rezultând o reţea ce
acoperă o arie mare (WAN – Wide Area Network). O astfel de soluţie este recomandabilă
în cazurile în care traficul între reţelele interconectate este mare.
Reţelele de date s-au dezvoltat ca urmare a aplicaţiilor economice scrise pentru
microcomputer. La acea vreme microcomputerele nu erau conectate, aşa că nu exista o
cale eficientă pentru împărtăşirea datelor peste o mulţime de microcomputere.
Împărtăşirea datelor cu ajutorul floppy diskurilor era o manieră ineficientă, mai ales în
mediul economic. Fiecare dintre cei care modificau un fişier trebuia să îl distribuie
tuturor celorlalţi. Dacă două persoane modificau acelaşi fişier, una dintre variante se
pierdea. Mediul economic necesita o soluţie care să îndeplinească trei deziderate:
- Să împiedice duplicarea resurselor,
- Să comunice efficient,
- Să pună în funcţiune şi să administreze o reţea.
La începutul anilor 80 s-au dezvoltat reţele de calculatoare, dar într-un mod
dezorganizat, fiecare companie realizând propria reţea. Fiecare companie de hard sau soft
realiza propriile produse, după propriile standarde. Aceste standarde individuale se
dezvoltau ca urmare a competiţiei între companii. Ca o consecinţă, multe dintre
specificaţii nu erau compatibile unele cu altele. A devenit dificil ca reţelele diferite să
comunice între ele. Prima soluţie a fost crearea unor standarde pentru reţele locale.
Deoarece aceste standarde permiteau un ghid deschis de urmat în crearea de produse hard
şi soft, echipamentele diferitelor companii au început să devină compatibile. S-a ajuns
astfel la o stabilitate în implementarea LAN-urilor.
4
Într-un sistem LAN, fiecare departament este un fel de insulă electronică. Întrucât
utilizarea computerelor a cunoscut o creştere importantă, a devenit evident că LAN-urile
nu erau suficiente. A devenit necesar ca informaţia să se deplaseze eficient şi rapid nu
numai în interiorul companiei, ci şi între companii. Soluţia a constituit-o crearea de reţele
metropolitane (metropolitan-area networks (MANs)) şi de reţele întinse wide-area
networks (WANs).
O prezentare a tipurilor de reţele şi a dimensiunilor lor este prezentată în figura 1.4
5
-1996 peste 10.000.000 utilizatori Internet
-2001 peste 110.000.000 utilizatori Internet
-De atunci are loc o creștere exponențială – numărul utilizatorilor se dublează la
fiecare 6 luni
6
- Repetorul: dispozitiv utilizat pentru regenerarea semnalului. Repetoarele
regenerează semnale analogice sau digitale distorsionate datorită atenuării mediului de
transmisiune. Repetorul nu poate face o rutare inteligentă.
- Hub-urile concentreză conexiunile. Ele grupează hosturile și permit rețelei să le
vadă ca pe un singur dispozitiv. Acțiunea se realizează în mod pasiv, fără nici un efect în
transmisia datelor. Există și hub-uri active, care, pe lângă concentrarea conexiunilor
realizează și regenerarea semnalului.
- Bridge-urile fac conversii ale formatelor de date, realizând și management de bază
al transmisiei datelor. Așa cum le spune și numele, acestea realizează conectarea între
LAN-uri. Bridge-urile realizează o v erificare a datelor transmise, pentru a vedea dacă
permit trecerea dintr-un LAN în altul. Ca urmare, părțile rețelei devin mai eficiente.
- Switch-urile aduc un plus de inteligență în managementul transferului datelor. Ele
nu numai că determină dacă datele rămân sau nu într-un LAN, dar ele pot transfera datele
numai pe conexiunea dorită. Altă diferență față de bridge este aceea că switch-ul nu poate
face conversie de format.
- Ruterele au toate capabilitățile enumerate până acum. Pot regenera semnale,
concentra conexiuni multiple, realiza conversia formatelor datelor, manageria transferul
de date. Ele se pot conecta și la WAN-uri, permițând legături între LAN-uri aflate la
distanțe geografice mari. Nici un alt dispozitiv nu poate furniza acest tip de conexiune.
Pe de altă parte, pentru aplicaţiile în care sunt implicate calculatoare aflate la
distanţe mari unele de altele se pot utiliza reţelele publice de date, elaborate special
pentru a transmite date. Pentru astfel de reţele sunt standardizate interfeţele utilizator-
reţea (figura 1.6).
interfață utilizator-rețea
PSDN
SC – subsistem de comunicaţie
7
1.4 MODELUL DE REFERINŢĂ AL INTERCONECTĂRII SISTEMELOR
DESCHISE (OSI-RM)
8
Serviciul N
N+1 Protocol N N+1
N N
N−1 N−1
Serviciul (N−1)
Mediul de transmisiune
Suport fizic
Sisteme intermediare
Sisteme de extremitate
Fig. 1.8 Modelul de referinţă OSI
9
Primele trei niveluri de jos sunt dependente de reţea şi protocoalele corespunzătoare
acestor nivele operează între sisteme adiacente. Este posibil ca între sistemele de
extremitate, cele în care rulează programele de aplicaţie a căror cooperare este asigurată
prin subsistemele de comunicaţie interconectate, să existe sisteme intermediare care
acţionează ca relee pentru datele transmise, dirijând datele de la un sistem la altul.
Nivelul cel mai înalt care poate participa la relizarea acestei funcţii de releu este nivelul 3
(reţea).
În determinarea celor şapte niveluri ale modelului de referinţă s-au avut în vedere mai
multe principii, ca de exemplu:
- să se creeze o frontieră (între două nivele) acolo unde descrierea serviciilor poate fi
concisă şi numărul interacţiunilor la traversarea acestei frontiere este minim;
- să se creeze nivele separate pentru funcţiuni care diferă prin prelucrarea efectuată sau
prin tehnologia utilizată;
- să se regrupeze funcţiuni similare în acelaşi nivel;
- să se creeze un nivel acolo unde este nevoie să se distingă o modalitate de
administrare a datelor (morfologică, sintactică, semantică);
- să fie posibilă efectuarea de modificări ale funcţiilor sau protocoalelor fără a afecta
alte nivele;
- pentru fiecare nivel să se creeze frontiere numai cu nivelele imediat inferior şi
superior.
Totodată s-a ţinut seama şi de următoarele considerente:
a) Este esenţial ca arhitectura să permită utilizarea unei varietăţi realiste de medii fizice
de interconexiune, asociate cu diferite proceduri de control. De aceea s-a ales nivelul fizic
ca nivelul cel mai de jos al arhitecturii.
b) Unele suporturi fizice de comunicaţii (spre exemplu liniile telefonice) necesită
folosirea de tehnici particulare pentru a transmite datele între sisteme, deoarece prezintă
un procent de erori mare, inacceptabil pentru majoritatea aplicaţiilor. Aceste tehnici
particulare sunt utilizate în procedurile de control al legăturii de date, care au fost deja
studiate şi normalizate. Trebuie, de asemenea, să se ţină seama că noile suporturi fizice
de comunicaţii, cum ar fi fibrele optice, vor necesita alte proceduri pentru controlul
legăturii. Aceste considerente au condus la identificarea unui nivel legătură de date,
deasupra nivelului fizic al arhitecturii.
c) Nivelul legătură de date asigură o conexiune numai între noduri adiacente ale reţelei;
pentru a stabili o conexiune cap-la-cap între terminale este nevoie de nivelul reţea care să
grupeze protocoalele de rutare. Nivelul reţea furnizează astfel o conexiune între entităţi
de transport, incluzând cazurile când intervin şi noduri intermediare.
d) Controlul trasportului datelor de la un sistem de extremitate, sursă, la un sistem de
extremitate, destinaţie, control care nu se face în nodurile intermediare, este ultima
funcţiune care trebuie realizată pentru a furniza integral serviciul transport. Nivelul cel
mai de sus al părţii care asigură serviciul de transport al arhitecturii este deci nivelul
transport, situat deasupra nivelului reţea. Acest nivel transport eliberează entităţile
nivelelor superioare de orice problemă privind transportul datelor între ele.
e) Deşi nivelul transport poate furniza o conexiune cap-la-cap fără erori (virtual),
asigurând retransmiterea informaţiei eronate sau pierdute, informaţia poate fi pierdută în
terminale datorită suprasaturării memoriilor. Mai mult, unele aplicaţii pot necesita ca
fluxul de informaţie între terminale să fie unidirecţional, bidirecţional alternant sau
10
bidirecţional simultan. Nivelul sesiune va furniza această funcţionalitate prin utilizarea
punctelor de sincronizare şi a jetoanelor. Punctele de sincronizare sunt înserate în fluxul
informaţiei la cererea entităţilor de aplicaţie şi, dacă este necesar, fluxul informaţiei poate
fi reluat de la un punct de sincronizare anterior.
f) Funcţiunile privind reprezentarea şi manipularea datelor structurate pentru scopul
programelor de aplicaţie au fost incluse în nivelul prezentare, aflat deasupra nivelului
sesiune.
g) Nivelul aplicaţie, cel mai de sus al arhitecturii, constituind unul din aspectele
proceselor de aplicaţie, conţine protocoalele care le servesc pentru a comunica.
Având în vedere cele de mai sus, funcţiunile celor şapte niveluri ale modelului de
referinţă OSI pot fi prezentate după cum urmează.
Nivelul cel mai de sus, aplicaţie (7), conţine entităţile de aplicaţie prin a căror
cooperare se asigură proceselor de aplicaţie mijloacele pentru accesul la mediul OSI.
Fiecare proces de aplicaţie este reprezentat pentru perechea sa printr-o entitate de
aplicaţie. Nivelurile inferioare furnizează serviciile prin intermediul cărora cooperează
entităţile de aplicaţie. Schimburile de informaţie între procesele de aplicaţie se realizeză
prin intermediul entităţilor de aplicaţie, al protocoalelor de aplicaţie şi al serviciilor
nivelului imediat inferior. Procesele de aplicaţie pot comunica după ce, în prealabil, prin
intermediul serviciilor oferite de nivelele inferioare, s-a stabilit o asociere (conexiune)
între entităţile de aplicaţie corespunzătoare.
Nivelul prezentare (6) se ocupă de reprezentarea informaţiei transferate între entităţile
de aplicaţie. Reprezentarea datelor poate diferi de la un calculator la altul. Numerele, spre
exemplu, sunt reprezentate prin cuvinte de 16 biţi sau 32 biţi, în complement de 1 sau de
2. Calculatoarele IBM folosesc codul EBCDIC pentru reprezentarea caracterelor, în timp
ce, practic, toate celelalte calculatoare folosesc codul ISO-7 (ASCII). Nivelele 1-5 au
sarcina de a oferi o transmisiune fiabilă a octeţilor, dar un acelaşi octet are semnificaţii
diferite de la un calculator la altul. Nivelul prezentare asigură o reprezentare comună a
datelor transferate între entităţile de aplicaţie. Acestea pot folosi orice sintaxă în
reprezentarea datelor, iar nivelul prezentare asigură transformarea dintre aceste sintaxe şi
sintaxa comună de transfer.
Prin urmare, există trei versiuni sintactice ale datelor: sintaxa utilizată de entitatea de
aplicaţie transmiţătoare, sintaxa utilizată de entitatea de aplicaţie receptoare şi sintaxa
utilizată între entităţile de prezentare (sintaxa de transfer). Nivelul prezentare posedă
funcţiunile necesare pentru a realiza transformarea între sintaxa de transfer şi sintaxa
utilizată de entitatea de aplicaţie.
Nu există o sintaxă de transfer unică, predeterminată. Sintaxa de transfer ce va fi
utilizată într-o conexiune prezentare este negociată între entităţile de prezentare
corespondente.
O altă funcţie a nivelului prezentare este legată de securitatea datelor. În unele
aplicaţii, datele transmise de o entitate aplicaţie sunt mai întâi criptate (cifrate), utilizând
o cheie şi sunt decriptate de entitatea prezentare corespondentă.
Nivelul sesiune (5) asigură mijloacele necesare pentru organizarea şi sincronizarea
dialogului dintre entităţile de prezentare cooperante, precum şi pentru administrarea
schimburilor de date dintre ele. Pentru a permite transferul datelor între entităţile de
prezentare se stabileşte o conexiune sesiune la cererea uneia dintre aceste entităţi. Nivelul
sesiune defineşte trei tipuri de dialoguri: bidirecţional simultan, bidirecţional alternant şi
11
unidirecţional. Serviciile nivelului sesiune includ stabilirea unor puncte de sincronizare în
cadrul dialogului, permiţând întreruperea unui dialog şi reluarea lui de la un punct de
sincronizare.
Procesul de aplicaţie (utilizator)
12
Calitatea serviciului conexiunii transport este negociată între entităţile de sesiune şi
serviciul transport. În momentul stabilirii unei conexiuni transport se poate selecta, dintr-
un ansamblu definit de clase de serviciu disponibile, clasa serviciului de transport ce
urmează a fi furnizat.
Conexiunea tipică de transport constă într-o legătură punct la punct, asigurând la
destinaţie mesajele în ordinea în care au fost emise. Alte tipuri de servicii posibile permit
transportul de mesaje izolate, fără a garanta ordinea lor la recepţie şi difuzarea mesajelor
către mai mulţi destinatari. Tot la nivelul transport se poate asigura un control al erorii
cap la cap.
Nivelul reţea (3) furnizează, pe de o parte, mijloacele pentru a stabili, a menţine şi a
elibera conexiunile reţea între sisteme deschise conţinând entităţi de aplicaţie ce trebuie
să comunice, precum şi, pe de altă parte, mijloacele funcţionale şi procedurale pentru
schimbul unităţilor de date ale serviciului reţea, pe conexiuni reţea, între entităţi de
transport. Nivelul reţea asigură entităţilor de transport independenţa faţă de problemele de
rutare şi de releu legate de stabilirea şi funcţionarea oricărei conexiuni de reţea, inclusiv
în cazul în care sunt utilizate în tandem mai multe subreţele. El conţine funcţiunile
necesare pentru a masca, pentru nivelul tansport, diferenţele dintre caracteristicile
diferitelor tehnologii de transmisiune şi de subreţele, asigurând un serviciu de reţea
coerent. Entităţile de transport se identifică prin adresele de reţea care, în fapt, identifică
în mod unic fiecare sistem de extremitate (reprezentate prin entităţi de transport).
Nivelul legătură de date (2) furnizează mijloacele funcţionale şi procedurile necesare
pentru stabilirea, menţinerea şi eliberarea conexiunilor legătură de date între entităţi de
reţea, precum şi pentru transferul unităţilor de date ale serviciului legătură de date. O
conexiune legătură de date este realizată cu ajutorul uneia sau al mai multor conexiuni
fizice. Sarcina principală a nivelului legătură de date este de a prelua un mijloc de
transmisiune “brut” (cel fizic) şi a-l transforma într-o cale de comunicaţie ce pare, pentru
nivelul reţea, scutită de erori. El realizează această funcţiune prin formatarea datelor de
transmis în cadre (de câteva sute de octeţi), transmiterea cadrelor în succesiune şi
administrarea cadrelor de confirmare transmise de receptor. Dacă un cadru este perturbat
în transmisiunea sa el trebuie retransmis.
Transmisiunile repetate ale aceluiaşi cadru pot provoca duplicate (spre exemplu, dacă
nu este recepţionat un cadru de confirmare). Problemele privind cadrele eronate, pierdute
sau duplicate sunt rezolvate de nivelul legătură de date. Mecanismul prin care se rezolvă
aceste probleme este asfel conceput încât, simultan, cu ajutorul lui, se face şi un control al
fluxului pentru a evita saturarea unui receptor lent de către un emiţător mai rapid.
Nivelul fizic (1) furnizează mijloacele mecanice, electrice, funcţionale şi procedurale
necesare activării, menţinerii şi dezactivării conexiunilor fizice destinate transmiterii
biţilor între entităţi ale legăturii de date. O conexiune fizică poate implica mai multe
sisteme deschise intermediare, fiecare constituind un releu pentru transmiterea biţilor în
cadrul nivelului fizic. Nivelul fizic trebuie astfel conceput încât biţii transmişi de la un
capăt al conexiunii fizice să fie recunoscuţi ca atare la celălalt capăt. La acest nivel se pun
deci probleme de genul următor: cum se reprezintă biţii, durata fiecărui bit, posibilitatea
de a transmite în cele două sensuri simultan, iniţializarea conexiunii şi eliberarea ei când
cele două părţi au terminat, tipul conectorilor utilizaţi, suportul fizic utilizat etc.
13
Calea de comunicaţie în mediul fizic pentru OSI, între două entităţi fizice, împreună
cu facilităţile necesare în nivelul fizic pentru transmiterea biţilor pe această cale, se
numeşte circuit de date .
7 Aplicaţie
Aplicaţie Servicii şi protocoale de
6 Prezentare aplicaţii
5 Sesiune
4 Transport Transport TCP UDP
3 Reţea Internet IP ICMP ARP RARP Pr.rut.
2 Legătură de date Interfaţă reţea Driver reţea
Placa interfaţă reţea (NIC)
1 Fizic Hardware
14
Nivelul interfaţă reţea acceptă mesajele de la nivelul internet şi le pregăteşte pentru
transmiterea pe un anumit tip de legătură de date (reţea fizică). Pe de altă parte nivelul
interfaţă reţea analizează fiecare cadru recepţionat de placa NIC şi determină, după biţii
de control ai cadrului, care este protocolul de nivel internet căruia trebuie să i se transmită
datele din cadrul recepţionat.
Nivelul internet realizează funcţiunile de rutare şi de releu pentru transmiterea
pachetelor de la sistemul sursă la sistemul destinaţie. La acest nivel se utilizează mai
multe protocoale, dintre care se remarcă potocolul Internet (Internet Protocol - IP) care
asigură un serviciu de transmitere a datelor fără conexiune. IP asigură transmiterea de
blocuri de date între calculatoare identificate prin adresa de lungime fixă.
Protocolul ICMP (Internet Control Message Protocol) este protocolul pentru
transferul mesajelor de control într-o rețea. Acesta foloseşte serviciile IP (mesajul ICMP
ocupă câmpul de date al IP) asigurând un mecanism prin care ruterele şi sistemele din
reţea comunică informaţii privind situaţiile de funcţionare anormală. Asigură un număr
de funcții de diagnosticare și poate transmite pachete de anunțare a diferitelor evenimente
cum ar fi modificarea rutării în rețea, echilibrarea vitezei de transmisie între două hosturi
de capacități diferite, etc.
Protocolul ARP (Address Resolution Protocol) este folosit doar pentru rețele Ethernet
şi permite unui sistem să determine adresa fizică (MAC) a unui alt sistem din aceeaşi
reţea fizică cunoscând adresa IP (de nivel reţea) a acestuia.
Protocolul RARP (Reverse Address Resolution Protocol) permite unui sistem să-şi
obţină, atunci când n-o cunoaşte, adresa IP proprie.
Nivelul transport asigură comunicaţia între programele de aplicaţie. O astfel de
comunicaţie este numită adesea comunicaţie cap - la - cap. Nivelul transport poate regla
fluxul datelor, poate asigura livrarea datelor fără erori şi în secvenţă. La nivelul transport
fluxul datelor ce trebuie transmise se împarte în pachete şi fiecare pachet este trecut,
împreună cu adresa de destinaţie, către nivelul internet pentru transmisiune. Când mai
multe programe de aplicaţie beneficiază, în acelaşi sistem, de serviciile reţelei, nivelul
transport trebuie să accepte datele de la acestea şi să le treacă spre nivelul inferior,
adăugând fiecărui mesaj informaţia necesară pentru identificarea programelor de
aplicaţie.
Sunt folosite două protocoale de transport: UDP (User Datagram Protocol) şi TCP
(Transmission Control Protocol). Protocolul UDP asigură un serviciu fără conexiune
folosind IP pentru transportul mesajelor. Acest protocol, mai simplu decât TCP, nu
garantează livrarea mesajului la recepţie fără erori, fără pierderi, fără duplicate, în ordinea
în care au fost emise. Programele de aplicaţie care utilizează UDP ar trebui să-şi asume
responsabilitatea deplină pentru soluţionarea acestor aspecte ale transmisiunii.
Protocolul TCP asigură un serviciu cu conexiune, asigurind un transfer fiabil, fără
erori, in secventa si cu eliminarea pachetelor duplicate.
La elaborarea unui program de aplicaţie se alege protocolul de transport în funcţie de
necesităţile impuse de aplicaţie.
Nivelul aplicaţie asigură utilizatorilor reţelei, prin intermediul programelor de
aplicaţie, o gamă largă de servicii. Dintre acestea cele mai frecvent folosite sunt SMTP
(Simple Mail Transfer Protocol), FTP (File Transfer Protocol), Telnet Remote Login,
SNMP (Simple Network Management Protocol), DNS (Domain Name System - sistemul
15
numelor pentru domenii), PING (Packet InterNet Groper), HTTP (HyperText Transfer
Protocol).
Protocolul SMTP este folosit pentru transferul mesajelor de poştă electronică. Este
folosit pentru a trimite, recepționa și ruta mesajele (scrisorile) în cadrul rețelelor oricât de
mari, ajungând să fie protocolul (de facto) pentru e-mail-ul din Internet.
Protocolul FTP permite utilizatorilor transferul de fişiere, în ambele sensuri, între un
sistem local şi unul distant. Fişierele pot conţine fie texte (caractere ASCII sau EBCDIC),
fie date pur binare.
Protocolul Telnet permite unui utilizator să se identifice într-un sistem distant prin
intermediul sistemului local. Acest protocol stabileşte o relaţie client - server între
sistemul local (client) şi aplicaţia Telnet distantă (server), permiţând deci funcţionarea
unui sistem local în regim de terminal virtual conectat la un sistem distant.
Protocolul SSH (Secure SHell) ofera servicii similare cu Telnet, și servicii în plus.
Chiar dacă în esență el este o "dezvoltare" a altui protocol (RSH - Remote Shell), practic
însă este folosit mai ales ca înlocuitor al lui Telnet pentru că oferă o autentificare mult
îmbunătățită și, în plus, criptarea datelor.
Protocolul SNMP este folosit pentru administrarea de la distanţă a echipamentelor de
interconectare a reţelelor.
Protocolul DNS asigură serviciul director care menţine corespondenţa şi face
translatarea între numele date de utilizatori sistemelor lor conectate la reţea şi adresele de
reţea (IP) ale acestora.
Protocolul SNMP asigură un serviciu care permite realizarea unor funcţiuni de
administrare a reţelei.
Protocolul HTTP asigură un serviciu de transfer al informaţiei în reţeaua globală
(WWW – World Wide Web) reprezentată într-un limbaj specific, HTML (HyperText
Markup Language). Aplicaţia deservită de acest protocol este de tip client – server, iar
paginile serverelor de Web sunt identificate după o schemă specială de adresare numită
URL (Uniform Resource Locator).
Protocolul PING asigură serviciul care poate fi utilzat pentru a testa conectivitatea
între două sisteme.
16
• Reţele de mare suprafaţă (WAN-Wide Area Network).
Într-o comparaţie superficială, LAN-urile sunt mai performante decât WAN-urile în
ceea ce priveşte viteza de transfer a datelor, securitatea transferului şi robusteţea
comunicaţiei.
Progresele contemporane înregistrate în domeniul tehnologiei reţelelor de calculatoare
pe cele două componente-hardware şi software complică procesul de evaluare şi
diferenţiere între reţelele LAN şi WAN. Cablurile de fibră optică au permis tehnologiilor
LAN să conecteze echipamente aflate la zeci de kilometri depărtare (distanţe specifice
WAN-urilor) în timp ce s-a mărit considerabil viteza şi siguranţa în comunicaţie pentru
reţelele WAN.
17
- Să furnizeze servicii e-mail, www, transfer de fișiere, e-comerț.
Tehnologii utilizate de către WAN:
Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL), Frame
Relay.
18
SAN oferă:
- Performanță - permite accesul curent la matricele de discuri sau benzi
pentru două sau mai multe servere la viteze înalte, oferind sistemului o performanță
ridicată,
- Disponibilitate – SAN sunt construite cu toleranță la dezastre, deoarece
datele pot fi dublate utilizând SAN până la distanțe de 10 km.
- Scalabilitate – Ca și LAN sau WAN, utilizează o varietate de tehnologii.
Acestea permit o relocare a datelor backup , operații, migrare de fișiere și replici de date
între sisteme.
VPN este un serviciu care oferă securitate, conectivitate privată peste o infrastructură
publică. Menține aceeași politică de securitate și management ca și o rețea privată. VPN
sunt cele mai eficiente (din punct de vedere al costurilor) metode de stabilire a unor
legături punct-la-punct între utilizatori distanți și o rețea de întreprindere.
Există trei tipuri de VPN:
1. VPN de acces. Permit accesul distant unui lucrător mobil sau a unei rețele
de domiciliu de mică dimensiune la sediul central al unei rețele. VPN de acces utilizează
tehnologii analogice, telefonice, ISDN, DSL, mobile IP pentru a asigura o conexiune
sigură între utilizatori mobili, telecommuteri și sucursale.
2. VPN Intranet. Leagă oficii regionale și distante la sediul central al unei
rețele interne peste o infrastructură publică utilizând conexiuni dedicate. Intranet diferă
de extranet prin aceea că permite accesul numai angajaților întreprinderii.
19
3. VPN Extranet. Oferă o legătură la sediul central al rețelei, peste o
infrastructură publică, partenerilor întreprinderii urilizând conexiuni dedicate. Spre
deosebire de Intranet, oferă acces utilizatorilor din afara întreprinderii.
T T T
T T T T
20
1.7.2 Topologia inel (Ring)
Într-o configuraţie de tip inel toate sistemele sunt legate succesiv între ele, două câte
două, ultimul sistem fiind conectat la primul sistem (figura 1.14).
Fiecare sistem recepţionează semnalul transmis pe buclă şi-l retransmite mai departe,
copiind mesajul dacă îi este destinat. Mesajul emis de un sistem (sursă) va fi retras din
buclă de către acelaşi sistem atunci când îi va reveni după parcurgerea buclei. Staţia care
transmite următoarea este cea care deţine permisul de a transmite, numit jeton (token). O
astfel de reţea este cea denumită Inel cu jeton (Token – ring).
Pentru ca defectarea unui sistem să nu provoace întreruperea buclei, fiecare sistem este
prevăzut cu un mecanism pasiv de şuntare.
Mecanism
de şuntare
21
Fig. 1.15 Topologie dublu inel cu varianta de reconfigurare în inel unidirecţional.
22
Comparativ cu tehnologia magistralǎ, o reţea stea necesitǎ în general mai mult cablu;
o defecţiune undeva în cablu sau echipament, scoate din funcţiune un singur calculator,
dar reţeaua localǎ rǎmâne operaţionalǎ; dacǎ hub-ul se defecteazǎ, întreaga reţea devine
ne-operaţionalǎ.
Reţelele 10BASE-T Ethernet, Fast Ehernet şi Gigabit Ehernet implementează o
topologie stea, în care accesul în reţea şi comunicaţia dintre staţii sunt controlate de un
echipament central.
Hub
Servere
Hub
Hub
Staţii de lucru
23
1.7.6 Reţele cu interconectare totală (de tip plasă - mesh)
Topologia mesh (plasă) implementeazǎ conceptul de rute, încât mesajele trimise într-o
reţea mesh pot urma oricare din mai multe cǎi posibile care leagǎ sursa de destinaţie. Cel
mai bun exemplu de reţea mesh este Internetul, care utilizează tehnici de rutare complexe
dar de acest tip (mesh). Se prezintă în figura 1.18 un asemenea tip de reţea.
Avantaje:
- număr mare de joncţiuni:
- rute de rezervă multiple.
Dezavantaje: cost ridicat.
24
CAP 2. NIVELUL REŢEA
În cadrul acestui capitol se trec în revistă cele mai importante protocoale asociate nivelului
reţea din stiva de protocoale TCP/IP. Protocoalele analizate sunt următoarele:
¾ Protocolul Internet – IP (Internet Protocol),
¾ Protocoale de rutare – RIP (Routing Information Protocol), IGRP (Inter-
Gateway Routing Protocol),
¾ Protocolul de rezoluţie a adreselor – ARP (Address Resolution Protocol),
¾ Protocolul de configurare dinamică a hosturilor – DHCP (Dynamic Host
Configuration Protocol),
¾ Protocolul de mesaje de control pentru Internet – ICMP (Internet Control
Message Protocol).
Aceste protocoale care operează la nivelul reţea (cunoscut de asemenea sub numele de nivel
internet) oferă servicii protocoalelor de nivel transport, implementând funcţii, cum ar fi:
¾ Rutarea şi livrarea pachetelor (datagrame) în cadrul reţelelor de
comunicaţii care formează Internetul,
¾ Adresarea datagramelor,
¾ Configurarea dinamică a adreselor,
¾ Stabilirea corespondenţei dintre adresele de nivel reţea şi adresele de
nivel interfaţă reţea (corespunzător nivelului legătură de date).
2.1.1 Pachetul IP
Formatul pachetelor IP este prezentat în figura 2.1.
fragmentele deja transmise, din cadrul pachetului curent. Dacă fragmentul în cauză este
primul sau singurul, acest câmp ia valoarea 0.
Prin cei trei biţi din câmpul "Fanioane" (Flags) se poate semnala interdicţia de
fragmentare a pachetului (când sursa impune această restricţie) şi dacă, în cazul unui
fragment, este sau nu ultimul din pachet. Acest câmp conţine 3 biţi – fanioane de control,
prezentaţi în figura 2.2.
- Câmpul datelor - Are o lungime variabilă, dar un număr întreg de octeţi. Limitele pentru
dimensiunea unui pachet, inclusiv antetul, sunt 576 octeţi minimum şi 65.535 octeţi
maximum.
În funcţie de domeniul în care se află primul octet (p), mai exact primii 4 biţi, există mai
multe clase de adrese, notate A, B, C, D, etc. Aceşti biţi specifică delimitarea câmpurilor
identificatorilor de reţea şi de sistem (host). Identificatorul de reţea specifică reţeaua din care
face parte sistemul (sursă sau destinaţie), iar identificatorul de sistem specifică un sistem
particular din această reţea. Clasele se diferenţiază prin dimensiunea părţilor din adresă care
specifică reţeaua şi hostul şi sunt prezentate în tabelul 2.1.
Clasa Primul Tip adresă Reţea Host Nr. max. Masca implicită
octet (primii de hosturi
biţi)
A 1 – 126 0 p q.r.s 16777214 255.0.0.0
B 128 – 191 10 p.q r.s 65534 255.255.0.0
C 192 – 223 110 p.q.r s 254 255.255.255.0
D 224 – 239 1110 p.q.r.s – – –
E 240 – 247 11110 p.q.r.s – – –
La adresele de clasa A primul octet specifică reţeaua, şi restul de trei octeţi specifică
sistemul. De aici rezultă că pot exista doar 126 de reţele (nu se utilizează reţelele cu primul
octet 0 şi 127) cu adresa de clasa A, iar aceste reţele pot avea fiecare 224 – 2= 16.777.214
sisteme (24 de biţi pentru identificatorul de sistem). Numărul total de sisteme din toate
reţelele de clasă A este de peste 2 miliarde. Deci, adresele de clasa A nu se aloca decât pentru
retele foarte mari.
Adresele din clasa B au primii doi biţi 10 şi dintre ceilalţi, 14 biţi sunt ai identificatorului
de reţea, iar 16 biţi ai identificatorului de sistem. În concluzie, pot exista până la 214 (16.384)
reţele, fiecare cu până la 216 – 2 (65.534) sisteme, cu un total de peste 1 miliard de adrese.
Adresele din clasa C au primii trei biţi 110 şi dintre ceilalţi, 21 biţi sunt ai identificatorului
de reţea, iar 8 biţi ai identificatorului de sistem. În concluzie, pot exista până la 221
(2.097.152) reţele, fiecare cu până la 28 – 2 = 254 sisteme, cu un total de peste jumătate de
miliard de adrese.
Adresele din clasa D au primii patru biţi 1110 şi sunt utilizate pentru difuzarea mesajelor
de la un sistem către un grup de sisteme din reţeaua globală (numai către sisteme care
Arhitectura Reţelelor şi Internet 5
utilizează aceeaşi adresă de clasă D). Din acest motiv, adresele din clasa D se mai numesc şi
adrese de grup (multicast) şi sunt folosite de unele protocoale de rutare şi de firmă pentru
comunicarea dintre echipamente ale aceluiaşi producător (vezi ruterele şi switch-urile
CISCO).
Adresele de clasă E sunt rezervate pentru viitoare modificări sau pentru scopuri
experimentale.
O adresă de clasă A este potrivită pentru reţele cu un număr extrem de mare de sisteme, iar
la polul opus adresele de clasă C sunt indicate pentru reţele cu număr mic de sisteme. Prin
urmare, reţelele de dimensiuni medii (cele cu mai mult de 254 de sisteme sau cele pentru care
se aşteaptă să depăşească 254 de staţii) trebuie să se utilizeze adrese de clasă B.
Fig. 2.4 Examplu de utilizare a măştii şi de obţinere a adresei de difuzare pentru o reţea de
clasă B.
Deoarece o subreţea se obţine prin împrumutarea unui număr de biţi din câmpul
identificatorului de sistem, atunci preţul plătit pentru crearea subreţelei este reducerea
identificatorului de sistem (deci şi a numărului maxim de sisteme din fiecare subreţea). Spre
exemplu, dacă se împrumută a biţi pentru subreţele atunci numărul de subreţele create este de
2a – 2 (se scad cele două: adresa reţelei şi masca), iar numărul de sisteme din fiecare subreţea
este de 2Id. sistem – a – 2. Masca subreţelei şi adresele de difuzare în subreţele au acelaşi rol ca şi
în cazul reţelelor clasificate.
Arhitectura Reţelelor şi Internet 7
Exemplul 2.2. Divizarea în subreţele a unei reţele de clasă B. Se consideră reţeaua de clasă
B, 141.85.0.0 care are masca de reţea implicită 255.255.0.0. Operaţia de divizare a reţelei în
subreţele, prin împrumutarea a 4 biţi din câmpul de identificare a sistemului este ilustrată în
figura 2.6.
În concluzie, prin divizarea de mai sus s-au obţinut 24 – 2 = 14 subreţele, fiecare având un
număr maxim de 212 – 2 = 4094 sisteme. Dacă se consideră o subreţea cu un efectiv de numai
4 sisteme se vor pierde 4090 de adrese IP.
reţelei în 6 subreţele de 8190 staţii fiecare. Cea de a şasea subreţea poate fi divizată mai
departe în două subreţele cu 4094 staţii fiecare prin utilizarea măştii 255.255.240.0 (sau
‘/19’). Astfel, rezultă cinci subreţele cu 8190 staţii fiecare şi două subreţele cu 4094 staţii
fiecare. Această soluţie satisface cerinţele impuse şi elimină posibilitatea existenţei unui
număr mare de adrese irosite. Subreţelele rezultate în urma acestei divizări sunt prezentate în
figure 2.7.
Fig. 2.7 Exemplu de divizare a unei reţele de clasă B în subreţele de dimensiuni variabile.
Datorită faptului că ruterele din Internet nu vor cunoaşte cum să ruteze pachetele IP înapoi
la o adresă IP privată, este inutilă transmiterea pachetelor IP, cu câmpul de adresă sursă
specificând o adresă privată, printr-un ruter în Internet. Aşa cum este ilustrat în figura 2.8,
NAT de bază schimbă în mod dinamic adresa IP dintr-un pachet care iese din reţeaua internă
cu o adresă globală alocată oficial. Pentru pachetele care se propagă pe sensul de intrare în
reţeaua internă NAT de bază translatează adresa alocată oficial într-o adresă internă.
Din punctul de vedere al celor două sisteme care schimbă pachete IP între ele, unul aflat în
reţeaua internă şi celălalt aflat în reţeaua externă, NAT este transparent.
adresă IP internă. Dacă există o astfel de asociere, atunci NAT translatează adresa IP şi
redirectează pachetul IP în reţeaua internă către serverul de poştă electronică.
NAPT poate asocia mai multe adrese private unei singure adrese globale. Astfel, se
realizează o legătură între adresa privată cu portul privat şi adresa externă şi portul extern,
asociate.
NAPT permite mai multor noduri dintr-o reţea locală să acceseze simultan reţele externe
folosind o singură adresă IP asociată ruterului acestora.
tabela de rutare. Soluţia la această problemă este rutarea între domenii fără clase de adrese
CIDR (Classless Inter-Domain Routing).
CIDR nu efectuează rutarea după clasa din care face parte reţeaua (de aceea se numeşte
fără clase). Această metodă se bazează numai pe biţii cei mai semnificativi ai adresei de reţea,
care constituie prefixul IP.
Fiecare locaţie din tabela de rutare CIDR conţine o adresă de 32 de biţi şi o mască de reţea
de 32 de biţi, care împreună permit identificarea lungimii şi a valorii prefixului IP. Această
locaţie este reprezentată ca o structură <adresă_IP mască_reţea>. Spre exemplu, pentru a
adresa un grup de 8 adrese de clasă C cu o singură locaţie în tabela de rutare este suficientă
următoarea reprezentare: <192.32.136.0 255.255.248.0>. Această informaţie face referire la
domeniul de reţele de clasă C, în ordine, de la 192.32.136.0 până la 192.32.143.0, care este
văzut ca o singură reţea. Acest exemplu este ilustrat în figura 2.10.
Această metodă de combinare a mai multor reţele într-o singură structură de rutare poartă
numele de super-divizare în subreţele (supernetting). Rutarea CIDR se efectuează pe baza
unor măşti de reţea care sunt mai scurte decât măştile de reţea obişnuite pentru o adresă IP.
Această metodă este total opusă divizării în subreţele.
Pachetele care poartă mesaje ICMP sunt rutate la fel ca şi cele care transportă datele
utilizatorului doar că, dacă apar erori în transmiterea acestor pachete ele nu generează alte
mesaje ICMP. Există mai multe tipuri de mesaje ICMP, fiecare având formatul său propriu.
Câmpul de date din pachetul IP care conţine un mesaj ICMP este ilustrat în figura 2.12.
Indiferent însă de tipul mesajului fiecare format începe cu aceleaşi trei câmpuri în antet:
- Tipul mesajului – Acest câmp poate lua una dintre următoarele valori (8 biţi), în
funcţie de tipul mesajului:
o 0 - Răspuns ecou (Echo reply),
o 3 - Destinaţie inaccesibilă (Destination unreachable),
o 4 - Oprirea sursei (Source quench),
o 5 - Redirectare,
o 8 - Cerere ecou,
o 9 - Anunţarea unui ruter,
o 10 - Solicitarea unui ruter,
o 11 - Depăşire timp,
o 12 - Problemă legată de un parametru,
o 13 - Cerere etichetă de timp,
o 14 - Răspuns etichetă de timp,
o 17 - Cerere mască de adrese,
o 18 - Răspuns mască de adrese,
o 30 - Descoperire rută (Traceroute),
o 37 - Cerere nume domeniu,
o 38 - Răspuns nume domeniu.
14 2. Nivelul Reţea
- Cod - Conţine codul erorii pentru datagrama raportată de acest mesaj ICMP.
Interpretarea acestui câmp depinde de tipul mesajului. Acest câmp este format din 8
biţi şi furnizează informaţii suplimentare despre tipul mesajului.
- Suma de verificare - Conţine suma de verificare (16 biţi), folosind acelaşi algoritm ca
şi IP dar verificând numai mesajul ICMP, începând cu câmpul dedicat tipului
mesajului. Dacă valoarea sumei nu coincide cu valoarea calculată la recepţie pe baza
conţinutului recepţionat, atunci datagrama este eliminată.
temporizatorului TTL pentru actualizare cu valoarea din anunţ. Atunci când primeşte un anunţ
nou de la ruterul implicit, sistemul actualizează valoarea TTL cu cea din noul anunţ. De
asemenea, acest mecanism permite ruterilor să se declare indisponibili. Aceştia trimit anunţuri
cu o valoare zero pentru TTL.
Un alt mesaj ICMP este cel de Expirare timp. Dacă acest mesaj este recepţionat de la un
ruter intermediar înseamnă că valoarea din câmpul TTL a unui pachet IP a ajuns la zero. Dacă
mesajul este recepţionat de la un sistem de destinaţie înseamnă că timpul TTL dintr-un
fragment IP a expirat în timpul reasamblării, datorită întârzierii unui fragment.
Mesajul Problemă cu parametrii indică producerea unei erori în timpul prelucrării
parametrilor din antetul IP. Acest mesaj conţine un pointer care indică octetul din pachetul IP
original unde s-a produs problema.
Mesajele Cerere etichetă de timp şi Răspuns etichetă de timp sunt utilizate pentru depanare
şi măsurare a performanţelor. Acestea nu sunt utilizate pentru sincronizarea de ceas.
Transmiţătorul iniţializeză identificatorul şi numărul de secvenţă (care se utilizează în cazul în
care sunt transmite mai multe etichete de timp), stabileşte eticheta iniţială de timp şi transmite
pachetul către destinaţie. Staţie destinaţie actualizează etichetele de timp asociate recepţiei şi
transmisiei, modifică tipul etichetei de timp din cerere în răspuns şi o returnează staţiei sursă.
Pachetul conţine două etichete de timp dacă există o diferenţă semnificativă de timp între
timpul de recepţie şi timpul de emisie. În practică, cele mai multe implementări efectuează
ambele operaţii (recepţia şi răspunsul) într-un singur pas. În acest caz ambele etichete de timp
sunt setate cu aceeaşi valoare.
Mesajele Cerere de mască de adrese şi Răspuns cu mască de adrese. Cererea de mască de
adrese este utilizată de către un sistem pentru a determina masca subreţelei folosită în cadrul
unei reţele asociate. Cele mai multe sisteme sunt configurate cu masca (sau măştile) de
subreţea asociată. Totuşi, unele sisteme, cum ar fi staţiile de lucru fără disc, trebuie să obţină
această informaţie de la server. Un sistem foloseşte protocolul RARP (Reverse Address
Resolution Protocol) pentru a obţine adresa sa IP. Pentru a obţine masca de subreţea, sistemul
transmite prin difuzare cererea de mască de adresă. Oricare sistem din reţea care a fost
configurat să răspundă la cererile de mască a adreselor va completa în cerere masca de
subreţea, va converti pachetul într-un răspuns cu masca de adrese şi îl va returna staţiei
solicitante.
Mai există şi alte mesaje ICMP pentru semnalizarea unor situaţii de congestie (atunci când
un ruter este prea încărcat pentru a prelucra un nou pachet, care din acest motiv va fi pierdut),
semnalizarea unei rutări ciclice (o rută infinită, propagare în buclă), etc.
adresele Ethernet pe 48 de biţi. O soluţie mai generală poate fi aceea ca fiecare sistem să menţină
o tabelă de perechi de adrese, care să mapeze adresele IP pe cele fizice. Această tabelă poate fi
menţinută de un administrator de sistem şi trimisă fiecărui sistem din reţea sau poate fi o tabelă
dinamică instalată pe fiecare sistem care să fie actualizată din reţea.
Toate aceste probleme se pot rezolva cu ajutorul protocolului ARP (Address Resoludon Pro-
tocol). Scopul acestui protocol este acela de a permite fiecărui sistem din reţea să-şi constru-
iască o tabelă de mapări între adresele de IP şi cele fizice. Acest set de mapări este cunoscut
sub numele de ARP cache sau tabelă ARP.
ARP are avantajul că multe tehologii de nivel legăturii de date, cum sunt Ethernet sau FDDI,
suportă difuzarea pentru transmiterea datelor. Dacă un sistem doreşte să transmită o datagramă IP
către un alt sistem aflat în aceeaşi reţea, acesta va verifica în primul rând tabela ARP. Dacă nu
este găsită maparea dorită, sistemul va trebui să invoce protocolul ARP prin reţea şi va face acest
lucru prin transmiterea unei cereri ARP prin reţea. Această cerere conţine adresa IP dorită. Fiecare
sistem recepţionează această cerere şi verifică dacă se potriveşte cu propria adresă IP. Dacă se
potriveşte, sistemul implicat va trimite un mesaj de răspuns care conţine adresa de nivel legătură
de date. Sursa cererii va adăuga şi această informaţie în propria tabelă ARP. Mesajul de cerere
mai include şi adresa de nivel legătură de date şi cea IP ale sursei cererii. Astfel, atunci când
un sistem trimite un astfel de mesaj de difuzare, fiecare sistem din reţea îl poate adăuga în
propria tabelă ARP. Totuşi, nu fiecare sistem realizează acest lucru. Dacă sistemul are deja
adresa în tabela ARP, acesta va reactualiza această informaţie, adică va reseta contorul aferent
ei. Sistemul care este destinaţia mesajului, va adăuga această informaţie în propria tabelă dacă nu
o are deja. Motivul acestui lucru este faptul că există o şansă foarte mare ca sistemul sursă să
înceapă să transmită mesaje de nivel aplicaţie la care vor trebui trimise pachete de răspuns. Dacă un
sistem nu este destinatar şi nici nu are această informaţie în propria tabelă, el nu trebuie neapărat
să o introducă în tabelă. Motivul îl reprezintă faptul că există posibilitatea ca acest sistem să nu
fie niciodată destinatar. Figura 2.13 prezintă formatul pachetului ARP utilizat pentru maparea
adreselor IP-către-Ethernet. De fapt, ARP poate fi utilizat pentru multe tipuri de mapări - diferenţa
majoră fiind numai în dimensiunea adresei. Pe lângă adresele IP şi cele de nivel legătură de
date ale sursei şi destinaţiei, pachetul mai conţine:
• un câmp HardwareType, care specifică tipul reţelei fizice (exemplu, Etliernet);
• un câmp ProtocolType, care specifică protocolul de nivel superior;
• două câmpuri HLEN şi PLEN, care specifică lungimea adresei de nivel legătură de date
şi respectiv, pe cea a protocolului de nivel superior;
• un câmp Operation, care specifică dacă acest pachet este de tip cerere sau răspuns;
• adresele hardware şi de protocol pentru sursă şi destinaţie.
Pentru exemplificare vom presupune ca tehnologia de nivel legătură de date utilzată este
Ethernet. Suportul fizic Ethernet poate să distingă numai formatul propriilor adrese MAC de
48 biţi. Astfel, sistemul sursă trebuie să cunoască adresa de destinaţie MAC dacă doreşte ca
pachetul care urmeazş să să ajungă cu succes la desţinatie. O solutie de a găsi adresa de
destinaţie MAC este aceea de a folosi protocolul rezolutiei adresei ARP. Ideea de baza este
ilustrată în figura 2.14:
Adresa IP proprie – Fixat de server dacă câmpul de adresă IP client are valoarea 0.0.0.0.
Adresa IP server – Fixat de server.
Adresa IP ruter – Aceasta este adrea unui agent de redirectare BOOTP, care nu este un
ruter IP obişnuit şi va fi utilizată de către client.
Adresa fizică client – Fixat de către client şi utilizat de server pentru a identifica clientul
înregistrat care a demarat iniţializarea.
Numele server-ului – Numele opţional al serverului, care se termină cu X'00'.
Numele fişierului de iniţializare – Clientul fie lasă acest câmp cu valoarea nulă, fie
specifică un anumit nume, astfel încât să indice tipul de iniţializare care trebuie demarată.
Serverul va returna numele fişierului de iniţializare, care este cel potrivit pentru cererea
clientului.
Identificatorul producătorului – câmp opţional. Aceste opţiuni pot fi furnizate clientului
la momentul iniţializării împreună cu adresa sa IP. Spre exemplu, clientul poate recepţiona în
plus, adresa unui ruter implicit, adresa serverului de nume de domeniu şi masca subreţelei.
După ce clientul BOOTP a procesat răspunsul, acesta poate demara transferul fişierului de
iniţializare şi să execute procesele de iniţializare. În cazul unui sistem fără disc, întregul
proces de iniţializare va înlocui, în mod normal, stiva minimală de protocoale IP încărcată din
ROM cu o stivă IP normală transferată ca o parte a fişierului de iniţializare şi care conţine
configuraţia corectă a clientului.
Your IP address Setată de server dacă a recepționat un câmp client IP address ca 0.0.0.0.
Server IP address Setată de către server.
Router IP address Aceasta este adresa unui agent BOOTP, nu a unui ruter obișnuit. Este
setată de un agent transmițător.
Client hardware address Setată de client. DHCP definește un identificator opțional
pentru client, utilizat pentru identificarea clientului. Dacă această opțiune nu este utilizată,
clientul va fi identificat după adresa MAC.
Server host name Opțional, un nume de host pentru server, terminat în X’00’
Boot file name Clientul fie lasă acest câmp necompletat, fie specifică un nume generic,
indicând tipul fișierului boot care să fie utilizat. Într-o cerere DHCPDISCOVER, este setat în
zero. Serverul returnează numele complet pentru o cale de directoare în cererea
DHCPOFFER. Valoarea este terminată în X’00’.
Options Primii patru octeți conțin 99.130.83.99. Cei rămași indică parametrii doriți.
1
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
dinainte şi introdusă la iniţializarea reţelei în fiecare nod, sub forma unor tabele de
rutare. Această procedură poartă numele de rutare fixă sau statică.
Spre deosebire de algoritmii de rutare fixă, cei adaptivi îşi modifică deciziile de
rutare pentru a se pune în acord cu schimbările de trafic sau de topologie care au loc pe
parcurs. Există trei familii de algoritmi adaptivi care diferă prin maniera în care sunt
utilizate datele. Există algoritmi globali care utilizează date culese din întreaga reţea
pentru a lua cele mai bune decizii. Aceştia sunt algoritmii centralizaţi. Mai există
algoritmii locali care se execută separat în fiecare nod al reţelei şi nu utilizează decât
informaţiile care sunt disponibile la nivelul nodului (spre exemplu lungimea firelor de
aşteptare). Aceştia sunt numiţi algoritmi izolaţi sau locali. A treia clasă de algoritmi
adaptivi utilizează un amestec între informaţii locale şi cele globale. Dacă un algoritm
adaptiv se adaptează bine la trafic, atunci el este mai bun decât un algoritm care nu ţine
seama de ceea ce se întâmplă în reţea.
Funcţionarea unei reţele de comunicaţii este dependentă de asigurarea unui
algoritm de dirijare adecvat. Într-o reţea cu comutare de circuite, algoritmul
funcţionează în timpul stabilirii circuitului atunci când se selectează o rută. Într-o reţea
cu comutare de pachete algoritmul poate fie să determine ruta în mod individual pentru
fiecare pachet, fie să stabilească o rută care va fi urmată de către o secvenţă de pachete.
Dificultatea dirijării în orice reţea este dată de topologia reţelei.
Pentru reţele foarte simple, dirijarea nu constituie o problemă. Astfel, pentru o
reţea în stea cu linii duplex, fiecare nod din reţea care acceptă şi livrează trafic
utilizatorilor este conectat la un singur nod, nodul central. Prin nodul central trebuie să
treacă tot traficul. Nodul central posedă informaţiile care definesc topologia reţelei.
Fiecare nod destinatar este conectat la nodul central printr-o linie distinctă, iar tabela de
dirijare a nodului central indică pentru fiecare destinaţie linia de ieşire corespunzătoare.
Rezultă un algoritm de dirijare dintre cele mai simple.
1 4
C
2 3
2
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
algoritm foarte simplu în care nu este nevoie nici măcar de o tabelă de dirijare, lucru
care constituie o caracteristică esenţială a acestui tip de reţea. Se poate pune însă o
problemă: în majoritatea cazurilor ruta pe o direcţie este mult mai scurtă decât în
cealaltă direcţie. În acest caz se poate prevedea o tabelă de dirijare în fiecare nod care să
indice calea cea mai scurtă către fiecare destinaţie. O altă soluţie ar fi aceea ca fiecare
nod să calculeze, pe baza sistemului de numerotare a nodurilor, care este calea cea mai
scurtă şi să ia o decizie de direcţie.
1
2 5
3 4
11 12 13
21 22 23
31 32 33
Figura 3.3: Reţea sub formă de matrice rectangulară regulată
3
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
singur drum de la un nod sursă la un nod destinaţie. La acest tip de reţea informaţiile de
dirijare pot fi conţinute în adresă. Nu mai sunt necesare tabele de dirijare în noduri, ci
numai o indicaţie privind modul în care se va parcurge arborele: în sus sau în jos.
11 12
Un ultim tip de reţea care utilizează algoritmi de dirijare simpli este reţeaua
conectată total. În acest caz fiecare nod are o linie directă cu toate celelalte noduri şi
deţine o tabelă de dirijare în care se defineşte linia unică de utilizat pentru a ajunge la
destinaţie.
1 4
2 3
4
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
aleatoare (o singură copie a unui pachet este transmisă de un nod pe o linie aleasă la
întâmplare).
În reţelele moderne cu comutaţie de pachete sunt mult mai folosite tehnici de
dirijare care asigură o înaintare sistematică a fiecărui pachet de la sursă la destinaţie.
Acest lucru se realizează printr-un proces de dirijare care în fiecare nod caută să
selecteze pentru fiecare pachet linia de ieşire cea mai adecvată pe care să transmită
pachetul. Adresa conţinută în antetul pachetului trebuie să conţină adresa destinatară,
sau adresele destinatarilor în cazul destinaţiilor multiple. Folosind adresa destinatarului
extrasă din antet, procesul de dirijare caută într-o tabelă de dirijare informaţiile necesare
pentru a determina linia de ieşire optimă după un anumit criteriu. Criteriul de alegere a
liniei de ieşire poate fi simplu, alegând calea de lungime minimă, sau poate fi complicat
prin încercarea de a lua în consideraţie măsuri locale şi/sau globale ale încărcării
componentelor reţelei (ale nodurilor şi ale liniilor).
Nodul trebuie să fie capabil să recunoască destinaţia fiecărui pachet şi să
folosească această destinaţie pentru accesul în tabela de dirijare care va indica linia
unică din nod pe care trebuie transmis fiecare pachet. Dificultatea constă în calcularea
tabelelor de dirijare pentru fiecare nod din reţea. Calculul cel mai simplu este pentru
cazul în care se doresc tabele care să furnizeze calea cea mai scurtă între fiecare sursă şi
destinaţie. Urmând această cale, se defineşte un arbore pentru fiecare nod destinaţie din
reţea, cu vârful în acel nod. Arborele astfel format va defini un set de căi, una de la
fiecare nod sursă din reţea către nodul destinaţie.
Fie reţeaua din figura 3.6 reprezentând o reţea distribuită parţial conectată.
Arborele care defineşte setul format din cele mai scurte căi pentru un nod destinatar
notat D este prezentat în figura 3.7. Calea cea mai scurtă de la un nod la o destinaţie are
caracter markovian. Aceasta înseamnă că istoria circulaţiei pachetului (nodul de
5
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
origine, noduri vizitate, linii traversate) nu influenţează desemnarea căii celei mai
scurte între două noduri particulare. Dacă matricea de încărcare cu trafic, reprezentând
fluxurile între fiecare pereche sursă - destinaţie, este cunoscută şi nu variază în timp,
atunci tabelele de dirijare fixă pe calea cea mai scurtă pot fi modificate pentru a utiliza
surplusul de capacitate din anumite părţi ale reţelei (tabelele de dirijare pe calea cea mai
scurtă pot duce la concentraţii nedorite de trafic, lucru care poate fi înlăturat prin
modificarea tabelelor). În figura 3.7 s-a presupus că traficul de la toate nodurile la nodul
D este acelaşi. Se observă că prin dirijarea pe calea cea mai scurtă se încarcă foarte
mult nodul A şi linia dintre nodurile A şi D.
A D
Prin modificarea ilustrată în figura 3.8 situaţia este îmbunătăţită, deşi în mod
evident alte elemente ale reţelei vor suporta o încărcare mai mare.
A D
O variantă care încearcă să distribuie traficul cât mai uniform în reţea este aceea
a luării deciziei de dirijare spre o destinaţie în funcţie de sursa de la care vine pachetul,
prevăzând o intrare separată în tabelul de dirijare în care este precizată sursa. Această
6
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
variantă poate fi văzută în figura 3.9 în care se observă cum fluxul de date este despicat
pe mai multe căi în funcţie de sursa pachetelor individuale.
7
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
ataşa fiecărui pachet un contor de linii traversate, urmând ca pachetele al căror contor
de linii traversate depăşeşte un număr prestabilit să fie eliminate. Prevederea unui
număr maxim pentru contorul de linii traversate este un mod eficient de a evita căile
infinite care pot apare atunci când nu se poate ajunge la destinaţie din diferite motive
(unul ar fi cazul în care reţeaua este divizată în două părţi deconectate din cauza
defectării unui număr de linii).
Această metodă are dezavantajul că nu este garantată livrarea pachetului la
destinaţie.
Avantajul metodei îl constituie simplitatea şi completa independenţă de
topologia reţelei.
8
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
indicativ mai mic decât k au fost recepţionate. Pachetele copii sunt detectate
comparându-le identitatea cu conţinutul contorului sau cu lista corespunzătoare.
Varianta 3 (inundare selectivă): nodul de tranzit multiplică pachetele doar în direcţia
aproximativ bună (utilă doar în cazul reţelelor cu structura regulată).
Meritul acestui tip de rutare este că cel puţin o copie a pachetului va ajunge la
destinaţie pe calea cea mai scurtă şi prin urmare în timpul cel mai scurt.
Apare însă o încărcare considerabilă a reţelei: un număr mare de pachete
duplicate şi de tranzacţii de anulare a unor pachete; nodurile destinatare trebuie să
verifice sosirea pachetelor duplicate şi să le distrugă.
Spre deosebire de rutarea aleatoare, rutarea prin inundare garantează livrarea
fiecărui pachet cu condiţia să se poată ajunge la destinaţie.
Este cea mai simplă şi cea mai evidentă metodă de dirijare. Sunt folosite tabele
de dirijare în fiecare nod al reţelei. În forma lor cea mai simplă, tabelele de dirijare fixă
specifică o anumită linie din fiecare nod pentru a fi folosită în drumul către fiecare
destinaţie. Se observă că nu există nici un mecanism de alegere implicat în luarea
deciziilor de dirijare.
Tabelele de dirijare specifică în acest caz cele mai scurte căi pentru fiecare
pereche sursă - destinaţie. Criteriul după care se alege calea cea mai scurtă poate lua în
considerare mai multe caracteristici ale reţelei, fie ţinând seama de topologia ei, fie de
comportarea în timp a traficului. Se poate alege astfel calea cea mai scurtă din punct de
vedere al distanţei geografice, al numărului de salturi necesar pentru a atinge o anumită
destinaţie, capacitatea de transport a liniilor, traficul mediu pe linii, lungimea cozilor de
aşteptare, întârzierea medie.
Pentru o reţea slab încărcată acest mod de rutare realizează performanţe
satisfăcătoare, cu timpi de tranzit minimi. În cazul în care traficul creşte, performanţele
scad rapid. Aceasta se datorează faptului că setul de tabele de dirijare pe calea cea mai
scurtă nu distribuie în mod necesar traficul în mod egal în toată reţeaua, rezultând unele
linii supraîncărcate în timp ce altele sunt libere. Dacă traficul nu suportă schimbări
majore, atunci este posibil să se calculeze tabele de dirijare care să echilibreze reţeaua.
Un fapt care ar duce la imposibilitatea utilizării acestei metode de rutare este
căderea unei linii de legătură între două noduri. Există şi în acest caz mai multe variante
de înlăturare a acestui neajuns.
9
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
O modalitate ar fi aceea de a memora în fiecare nod un set complet de tabele de
dirijare de substituţie, un tabel pentru fiecare cădere posibilă din reţea. Dacă este posibil
se pot face tabele care să ţină seama de mai multe căderi din reţea. În momentul în care
se întrerupe o linie, nodurile de la capetele liniei defecte transmit pachete de control la
toate nodurile din reţea, înştiinţându-le despre identitatea liniei întrerupte. În urma
recepţionării pachetelor de control, nodurile îşi vor actualiza tabelele de dirijare în mod
corespunzător. Pentru a realiza un transfer rapid de informaţii, aceste pachete de control
au prioritate ridicată faţă de celelalte categorii de trafic.
O altă variantă este aceea în care un centru de control al reţelei primeşte
rapoartele de la noduri, descoperă întreruperea unor linii şi emite comenzi către noduri
să-şi modifice tabelele de dirijare pentru a ţine seama de aceste întreruperi. Când s-a
reparat o componentă a reţelei, centrul de control va emite comenzi pentru restaurarea
rutelor utilizate anterior.
În cazul în care între două noduri există mai multe căi de valori aproximativ
egale, traficul între aceste două noduri poate fi partajat pe aceste rute .
Rutarea multicale este posibilă atât pentru reţelele utilizând datagrame cât şi
pentru cele de tip circuit virtual. În cazul datagramelor când un pachet soseşte pentru a
fi retransmis, se va face a alegere între diferitele căi posibile pentru acel pachet, alegere
independentă de alegerile anterioare pentru pachetele având aceeaşi destinaţie. În cazul
circuitelor virtuale, dacă un circuit este în curs de stabilire, se va alege o rută, urmând
ca pachetele având aceeaşi destinaţie să urmeze toate această rută. Circuitele virtuale
diferite vor fi dirijate independent unul de celălalt.
Fiecare nod ţine la zi un tabel cu toate destinaţiile posibil de atins. Pentru
fiecare destinaţie sunt înscrise diferite linii de ieşire, în ordine descrescătoare (de la cel
mai favorabil traseu până la cel mai puţin favorabil). Înainte de a expedia un pachet,
nodul generează un număr aleator şi alege cu ajutorul lui între diferitele posibilităţi,
utilizând ponderile asociate fiecărei variante de ieşire ca fiind probabilităţi. Tabelele
sunt create manual de către administratorul reţelei, sunt încărcate în fiecare nod înainte
de pornirea reţelei şi apoi nu mai sunt modificate.
În cadrul fiecărei interfeţe există un tabel cu diferitele linii posibile de ieşire
pentru fiecare destinaţie în parte. Identităţile ieşirilor sunt scrise în ordinea crescătoare a
valorilor asociate traseelor corespunzătoare. Alături de ele se scriu ponderile relative.
Exemplu: Fie patru ieşiri având ponderile p1, p2, p3 şi p4, cu p1 + p2 + p3 + p4 = 1.
Se generează un număr aleator în intervalul (0,1) şi se alege ieşirea având ponderea cea
mai apropiată de numărul generat.
10
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Rutarea multicale prezintă ca avantaje:
• creşterea fiabilităţii reţelei (în caz de defectare a unui link, el poate fi "ocolit" pe
una din rutele echivalente),
• alegerea în funcţie de debitul informaţiei a unei rutări optime ca viteză de
transmisie.
Ca exemplu, fie reţeaua din figura 3.10, discuţia făcându-se pentru nodul J.
nodul E nodul H
nodul F nodul G
11
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
inferior lui 0,63 atunci este aleasă linia A. Dacă numărul este cuprins între 0,63 şi 0,83,
atunci este utilizată linia I; altfel, se va alege linia H.
Acest mod de dirijare a apărut în momentul în care s-a realizat cât de mari sunt
avantajele pe care le aduce un sistem capabil să se adapteze rapid la condiţiile curente,
permiţând utilizarea unor rute multiple, luând în considerare întreruperile şi restabilirile
liniilor şi nodurilor reţelei, acceptând cu uşurinţă adăugarea de noi noduri sau
înlăturarea celor existente.
Apare din acest punct de vedere foarte tentantă ideea disponibilităţii instantanee
a informaţiilor de dirijare în toată reţeaua. De la această idee s-a plecat atunci când a
fost simulată o tehnică de dirijare numită:
Tehnica magică ( observator ideal)
În această tehnică fiecare nod din reţea care ia o decizie de rutare are o privire
instantanee completă asupra restului reţelei. Algoritmul de rutare, cunoscând lungimea
firelor de aşteptare în toate celelalte noduri şi numărul de pachete în tranzit pe fiecare
linie, calculează optimul pentru următoarea linie pe care să transmită pachetul pentru a
ajunge la destinaţie cu timp minim de întârziere. Rezultatul neaşteptat al
experimentului de simulare a arătat că timpii medii de întârziere obţinuţi nu erau
semnificativ mai mici decât cei observaţi în cazul folosirii în aceeaşi reţea a unei tehnici
de dirijare fixă indicând calea cea mai scurtă pentru tot traficul. S-a ajuns la concluzia
că deşi dirijarea magică s-a făcut pe baza celor mai bune informaţii disponibile,
variaţiile de trafic au făcut ca rutele, care erau optime în momentul luării deciziei, să
devină suboptime înainte ca pachetele în cauză să ajungă la destinaţie. Este posibil ca în
această metodă mai multe noduri să observe o secţiune de reţea slab încărcată şi toate să
încerce să transmită trafic în această secţiune, rezultând congestionarea zonei.
Tehnicile de dirijare adaptivă trebuie să utilizeze cât mai mult din informaţiile
pe care le obţin fie pe plan local, fie ca urmare a unor mesaje care circulă prin reţea.
Dacă nodurile sunt capabile să creeze ele însele informaţii de rutare pe care apoi le
utilizează împreună cu nodurile vecine, atunci se poate vorbi de o rutare adaptivă
distribuită. Mai există o formă de rutare, cunoscută ca fiind rutarea centralizată, în care
nodurile transmit rapoarte de stare la un centru de dirijare care, la rândul său, emite
instrucţiuni de dirijare către nodurile din reţea.
Apar câteva probleme specifice rutării adaptive.
Una ţine de secvenţialitatea pachetelor. Dacă livrarea pachetelor în secvenţa în
care au intrat în reţea este importantă pentru utilizatori, atunci o rutare fixă îmbinată cu
12
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
un control de flux pot garanta faptul că pachetele nu se vor depăşi unele pe altele şi se
va face livrarea în ordinea dorită. Dacă, în schimb, metoda de rutare conţine şi elemente
de adaptare la condiţiile mereu în schimbare în care funcţionează reţeaua, atunci
pachetele între aceeaşi pereche sursă - destinaţie pot urma rute diferite şi pot avea
nevoie de timpi diferiţi pentru a ajunge la nodul destinatar. Rezultatul este acela că nu
mai este garantată livrarea în ordinea în care au fost acceptate de la sursă. În unele
cazuri, ordinea de livrare a pachetelor de către reţea nu este vitală, reordonarea
făcându-se pe calculatorul gazdă. Protocoalele pentru reţelele datagram nu cer o
succesiune absolută a pachetelor livrate, dirijarea adaptivă putând fi folosită cu avantaje
depline. În schimb, protocoalele de circuit virtual cer în primul rând o secvenţă corectă
a pachetelor, în acest caz dirijarea adaptivă fiind mai puţin interesantă (excepţie o
constituie cazul în care pachetele sunt reordonate de nodul destinatar înainte de livrare).
Se poate totuşi utiliza o metodă de dirijare adaptivă şi în cazul circuitelor
virtuale, în momentul stabilirii rutei, când s-a cerut realizarea unei conexiuni. Se poate
încerca optimizarea traficului prin alegerea celei mai bune rute pentru fiecare apel.
O altă variantă este aceea în care reţeaua asigură o interfaţă de circuit virtual
numai la nivelul nodurilor sursă şi destinaţie, reţeaua în sine funcţionând pe principiul
datagram.
Algoritmii de dirijare adaptivă pot fi complicaţi, astfel încât tipuri diferite de
pachete să folosească tipuri diferite de rute. În cazul unei reţele hibride, în care există
mijloace de transmisie atât terestre cât şi prin sateliţi, canalele prin sateliţi oferă bandă
largă, dar cu timpi de propagare ridicaţi, iar canalele terestre oferă bandă îngustă, dar
timpi de propagare scăzuţi. Primul tip de canale este ideal pentru transfer de fişiere
mari, al doilea pentru fişiere de dimensiuni scăzute şi pentru un mod de lucru interactiv
care necesită un timp de răspuns rapid.
Este cea mai simplă dintre metodele de dirijare adaptive, deciziile de dirijare
luându-se numai pe baza informaţiilor disponibile la nivel local în fiecare nod.
În cazul acestui tip de algoritmi, deciziile se iau de către fiecare nod în parte pe
baza informaţiilor culese local. Nu există un arbitru care să supravegheze activitatea
nodurilor pentru a asigura luarea unor decizii de rutare optime pentru întreaga reţea.
Datorită acestui fapt, e posibil ca deciziile nodurilor să ducă la situaţii în care varianta
care este aleasă ca cea mai bună pentru un nod să fie dezavantajoasă pentru un altul.
Varianta cea mai simplă de rutare locală este situaţia în care fiecare nod ia deciziile
referitoare la tabele sale de rutare numai pe baza datelor proprii, fără să cunoască ceva
13
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
despre situaţia restului reţelei. Acest gen de algoritmi se numesc "algoritmi de rutare
adaptivă locală". Exemple de astfel de algoritmi sunt cei care urmează.
Este o tehnică care iniţial ignoră topologia reţelei, obţinând cunoştinţe despre
aceasta pe parcurs, prin prelucrarea pachetelor succesive. Pentru aceasta, pachetele
trebuie să transporte, pe lângă adresa de destinaţie şi adresa sursei de unde vin şi un
contor de linii traversate. Într-o primă fază dirijarea se face aleatoriu, dar nodurile sunt
programate să ţină seama de contorul de linii traversate şi de adresa sursă a fiecărui
pachet prelucrat. Un pachet cu un contor de linii traversate egal cu unu vine în mod
evident de la un nod vecin conectat direct. În acest fel se identifică imediat nodurile
vecine şi liniile prin care sunt conectate, ceea ce reprezintă primele intrări într-o tabelă
de dirijare rudimentară. Un pachet cu un contor de linii traversate egal cu doi a venit de
la o sursă aflată la o depărtare de două linii intermediare, măsurată pe linia pe care a
sosit. Procesul continuă cu compararea contorului de linii traversate, pentru o anumită
adresă sursă, cu cel mai mic contor înregistrat deja; dacă cel nou este mai mic, atunci
este substituit în locul celui vechi şi linia corespunzătoare este marcată ca fiind linia de
pe cea mai scurtă cale cunoscută către un anumit nod din reţea.
Astfel, dacă un nod primeşte pe linia k un pachet provenind de la H, pachet
având contorul de salturi cu valoarea q, înseamnă că nodul H se află la cel mult q salturi
pe linia k. Dacă ruta anterioară optimă până la nodul H avea mai mult de q salturi,
tabele de rutare se modifică astfel încât toate pachetele cu destinaţia H vor fi rutate pe
linia k. După un anumit timp, toate nodurile reuşesc să descopere rutele optime către
celelalte noduri ale reţelei. Apar probleme dacă se defectează un nod sau o linie.
Deoarece nu sunt luate în calcul, la modificările tabelelor de rutare, decât variantele
cele mai bune, nu se poate sesiza o astfel de defecţiune (dacă am presupune că un
pachet a ajuns pe o rută ocolitoare, evitând nodul defect, el va conţine un contor de
linii traversate mai mare decât optimul înscris în tabela de rutare). Pentru aceasta,
periodic, toate nodurile trebuie să reînceapă activitatea de căutare a rutelor optime ca la
iniţializarea reţelei. În timpul acestor căutări, rutarea este suboptimală. Dacă perioada
este prea mare, reţeaua nu se poate adapta rapid modificărilor apărute. Dacă reluările
sunt prea dese, timpul de convergenţă al algoritmului riscă să nu mai fie atins, rutarea
fiind continuu suboptimală.
14
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
3.3.1.2. Tehnica "cartofului fierbinte"
Atunci când un pachet intră în nod, algoritmul asigură scoaterea pachetului cât
mai repede spre ieşire. Nodul consideră liniile sale de ieşire în ordinea descrescătoare a
disponibilităţii de a se ajunge la fiecare destinaţie din reţea. Pentru a se asigura acest
deziderat, se utilizează învăţarea din observare anterioară, care asigură tabelele de
dirijare pentru această metodă. Aceste tabele conţin liniile de ieşire din nod, ordonate,
pentru fiecare destinaţie.
Există câteva variante de realizare a acestei metode.
O primă variantă presupune ca procesul de expediere din nod să transmită un
pachet pe linia liberă pentru transmitere, în momentul luării deciziei de dirijare, cu cel
mai mare grad de disponibilitate. Dacă nu este liberă nici o linie corespunzătoare,
atunci pachetul trebuie să aştepte şi va părăsi nodul pe prima dintre aceste linii care va
deveni liberă.
O a doua variantă a cartofului fierbinte presupune că se acceptă fire scurte de
aşteptare pentru fiecare linie de ieşire, stabilind o limită a numărului de pachete care pot
fi în aşteptare pentru fiecare linie de ieşire. În acest caz procesul de dirijare va selecta
firul de aşteptare cu cel mai mare grad de disponibilitate care are spaţiu disponibil.
Mai există şi o variantă care nu ţine seama de preferinţa unei linii spre o
anumită destinaţie şi care trimite pachetul pe prima linie liberă găsită. Această din urmă
variantă este însă cea mai dezavantajoasă, ea neducând la o înaintare sistematică a
pachetelor.
De altfel toate metodele pot conduce la situaţii în care se aleg linii
necorespunzătoare pentru trafic, cu rute lungi şi întortocheate şi asta numai din cauză că
ruta cea mai bună poate fi momentan ocupată în întregime în momentul luării deciziei.
Graba foarte mare a procesului de dirijare după metoda cartofului fierbinte este o
caracteristică negativă a acestei metode.
Metoda cartofului fierbinte poate fi privită însă şi dintr-un punct de vedere care
să scoată în evidenţă un avantaj care poate fi luat în calcul când se face aprecierea
eficienţei: poate face faţă cu succes unei supraîncărcări de trafic în reţea prin plasarea
unui pachet sosit în oricare fir de aşteptare, oricât de necorespunzătoare ar fi ruta aleasă.
O încărcare excesivă duce însă la blocarea reţelei.
Au rezultat două îmbunătăţiri ale metodei :
a). Pentru a evita acceptarea unui număr excesiv de pachete şi deci
congestionarea reţelei, folosirea cartofului fierbinte se face împreună cu un control
simplu al fluxului care presupune refuzul de a accepta noi pachete de la utilizatorii
sursă dacă lungimea unui fir de aşteptare (oricare) din nod a atins o anumită valoare.
15
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Când lungimea firului de aşteptare scade sub aceasta valoare, se reia acceptarea
traficului de la utilizatori.
b). Se interzice dirijarea după metoda cartofului fierbinte a pachetelor care au
ajuns în penultimul nod al drumului lor către destinaţie. Traficul ajuns în penultimul
nod nu trebuie dirijat decât pe linia către nodul destinatar. Dacă ultima linie este
congestionată, traficul este pus în aşteptare până când aceasta devine disponibilă.
16
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
şi care va fi desemnată ca rută secundară de tip B. Dacă nu există nici o rută secundară
de tip B, atunci nu se va desemna nici o rută secundară. Ponderile numerice sunt alocate
fiecărui tip de rută, 3 pentru rutele primare, 2 pentru rutele secundare de tip A şi 1
pentru rutele secundare de tip B. Făcând un calcul simplu de acest fel se observă o
distribuire a traficului ca în figura 3.11.
60%
A B
40%
Ruta primara
ponderea 3
17
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
pentru cele două rute este 3+2, respectiv 1+4, adică 5:5. Datorită acestui rezultat avem
o probabilitate egală de utilizare a fiecărei rute.
Luând în discuţie varianta în care numărul de locuri libere este 4 şi respectiv 1,
atunci raportul de probabilităţi este 3+4 la 1+1, adică 7 la 2 rezultând o preferinţă către
ruta primară.
Dacă unul din şirurile de aşteptare este plin, atunci pachetul este pus în celălalt
şir, indiferent de numărul de locuri libere. Dacă ambele şiruri de aşteptare sunt pline,
atunci pachetul este neglijat şi va fi recepţionat mai târziu prin retransmitere de la nodul
precedent.
Este cea mai populară tehnică implementată până acum în reţelele existente.
Scopul algoritmului este de a găsi căi cu cel mai mic timp de întârziere. Pentru aceasta,
fiecare nod menţine un tabel cu rutele optime pentru fiecare destinaţie, indicând pentru
fiecare destinaţie cea mai bună estimare curentă a timpului necesar pentru transport. În
momentul punerii în funcţiune a reţelei, timpii sunt estimaţi având la bază topologia
reţelei. Odată cu livrarea traficului, estimarea timpilor are la bază măsurători efectuate
asupra timpului real de tranzit în reţea.
18
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
lungimii şirului de aşteptare pentru linia de ieşire din acel nod şi a timpilor de întârziere
recepţionaţi de la nodurile vecine.
Figura 3.13 ilustrează recepţia tabelelor cu timpii minimi de întârziere la un nod
şi recalcularea timpilor de întârziere locali şi a tabelelor de dirijare. Figura, pentru
simplificare, nu prezintă decât o zonă din reţea care se presupune că mai cuprinde şi
alte noduri.
Schimbul reciproc de tabele cu timpi de întârziere între nodurile vecine necesită
un volum considerabil de trafic de pachete de control, rezultând o încărcare substanţială
a reţelei. S-a constatat că pentru o actualizare la 2/3 secunde traficul de pachete de
control reprezintă aproximativ 50% din trafic. Examinând conţinutul pachetelor se
constată că foarte des tabela de timpi de întârziere conţine aceleaşi informaţii ca şi
tabela precedentă. De aceea, o modalitate mai economică o constituie schimbul
neperiodic de informaţii. Tabelele de timp se transmit numai de către nodurile care au
detectat o schimbare semnificativă fie în intensitatea traficului, fie în funcţionarea
componentelor.
19
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
producă schimbări în timpul minim de întârziere calculat anterior şi deci să nu fie
necesară transmiterea noilor tabele cu timpii de întârziere.
În cazul actualizării sincrone, viteza de adaptare la evenimente îndepărtate este
mică. Informaţiile de dirijare circulă de-a lungul unui lanţ de noduri, rezultând timpi de
propagare mari în cazul unei reţele întinse. Înştiinţarea despre defectarea unei
componente a reţelei în scopul redirijării traficului soseşte cu întârziere. În acest
interval traficul continuă să circule pe rutele existente ducând la congestionarea rutelor
din apropierea defectului. Acesta ar fi un argument în plus pentru actualizarea
asincronă.
Controlul dirijării prin transmiterea tabelelor cu timpi minimi de întârziere între
noduri are capacitatea de a se adapta rapid la reducerea timpilor de întârziere şi lent la
creşterea acestora. Cu alte cuvinte, se adaptează rapid la veştile bune şi lent la veştile
rele. Această proprietate a algoritmului este ilustrată în exemplul următor (figura 3.14).
Fie un lanţ de patru noduri. Se presupune că timpul necesar pentru transferul
unui pachet de la un nod la următorul nod este egal cu o unitate de timp. Astfel,
transferul de la nodul 4 la nodul 1 durează trei unităţi de timp. Timpul este introdus în
tabela cu timpi minimi de întârziere pentru fiecare nod în parte. Setul complet al
tabelelor pentru cele patru noduri este prezentat în figură.
1 2 3 4
Nodul Cel mai mic timp de Nodul Cel mai mic timp de
Întârziere către nodul 1 Întârziere către nodul 1
2 1 (direct) 2 3 (via nodul 3)
3 2 ( via nodul 2) 3 4 ( via nodul 4 )
4 3 ( via nodul 3 ) 4 3 ( via nodul 3 )
20
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
timpul său minim către nodul 1 este de 2 unităţi. Aceasta are loc deoarece nodul 3 nu a
luat încă cunoştinţă de informaţiile date de nodul 2 şi nu a făcut modificările necesare.
Rezultatul acestei transmisii este unul care generează pentru un timp haos. Nodul 2
calculează că ruta cu timp minim de întârziere către nodul 1 este cea care trece prin
nodul 3, durând numai 3 unităţi de timp pentru tranzit. Nodul 3, primind timpul de
întârziere de 5 unităţi până la nodul 1 şi numai 3 unităţi către nodul 1 prin nodul 4,
calculează că ruta cu cel mai mic timp de întârziere către nodul 1 trece prin nodul 4,
durând numai 4 unităţi de timp. În acest fel traficul este direcţionat greşit prin nodurile
3 şi 4 şi, eventual, trebuie să se întoarcă înapoi pe lanţ, dacă nu cumva lanţul face parte
dintr-o reţea mai mare şi atunci traficul pentru nodul 1 poate ajunge la destinaţie
urmând o rută foarte ocolitoare.
Pentru a se elimina această situaţie neplăcută se aplică o tehnică numită de
încetinire, în care un nod, care a detectat o creştere a timpului de întârziere pe ruta care
anterior era ruta cu timp de întârziere minim către o destinaţie, continuă să folosească
calea existentă un interval de timp până când vecinii au fost informaţi despre această
creştere şi au avut posibilitatea să-şi recalculeze tabelele cu timpii de întârziere. Efectul
acestei modificări este distribuirea deciziei de dirijare între un grup de noduri vecine.
Se evită astfel dirijarea greşită prin acceptarea ca nodurile în cauză să se adapteze în
mod colectiv înainte ca înştiinţarea despre creşterea timpului de întârziere să afecteze
dirijarea.
Această metodă de rutare nu duce la ceea ce s-ar aştepta de la o dirijare
adaptivă, şi anume distribuirea traficului care circulă între perechi anumite sursă -
destinaţie pe mai multe rute. Între momentele de actualizare a tabelelor cu timpi de
întârziere rutarea este fixă. În momentul actualizării ruta se poate schimba, fluxul de
date este deviat, dar nu are loc o folosire simultană a mai multor rute pentru un flux
anumit de date.
21
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
3.3.2.3. Metoda excesului de capacitate
Nodul vecin
Nod destinaţie 1 2 3 Nod destinaţie Nodul vecin
1 [1] 4 -1 1 1
2 3 [2] -1 2 2
3 -1 5 [2] 3 5
4 -- -- -- 4 --
5 -1 -1 [1] 5 5
6 -1 -1 [3] 6 5
S-a notat cu -1 faptul că nodul vecin este în amonte pe arborele colector. Tabela
de rutare se completează alegând (exceptând valorile negative) ieşirea de cost minim
(încadrată în paranteze drepte). În situaţia întreruperii unei linii de legătură, nodurile
implicate modifică coloana respectivă (de exemplu, completând cu valoarea -2) şi se
trece la reactualizarea tabelelor de rutare. În cazul în care în tabela de costuri se obţin
linii care conţin doar valori negative, nodul respectiv dialoghează cu vecinii săi din
amonte pentru a determina noii arbori colectori ai reţelei. Ca exemplu, fie reţeaua din
22
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
figura 3.15, pentru care sunt prezentaţi mai apoi arborii colectori corespunzători
fiecărui nod. Pentru fiecare arbore nodurile rădăcină sunt haşurate.
3
2 3 2 3
2 5 2
5
1 2 1 6 1 6
1
1 1 2 2
4 5 1 1
4 5
Reteaua initiala Pasul 1
3
2 3 3
2 2 3
1 2 6 1 6
1
1 2 2
4 5 1 1
4 5
Pasul 2 Pasul 3
2 3 2 3
1 2 1 6 1 6
1
1 1 2 2
4 5 1 1
4 5
Pasul 4 Pasul 5
2 3
1 2 1 6
1 1 2
4 5
Pasul 6
Figura 3.15: Reţea şi arborii colectori corespunzând fiecărui nod
23
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Până la întreruperea legăturii 4-5, nodurile din amonte faţă de nodul 4 aveau tabelele:
NOD 1 Nodul vecin NOD 2 Nodul vecin
Nod destinaţie 2 4 Nod destinaţie 1 4 3
1 -- -- 1 [2] 3 6
2 [2] 3 2 -- -- --
3 5 [3] 3 5 4 [3]
4 4 1 4 3 [2] 5
5 5 [2] 5 4 [3] 4
6 7 [6] 6 6 [5] 6
După primirea pachetului de control ce corespunde tăierii legăturii 4 - 5 şi
efectuarea modificărilor aferente, situaţia se prezintă astfel:
NOD 1 (3,5,6) Nodul vecin NOD 2 (5,6...) Nodul vecin
Nod destinaţie 2 4 Nod destinaţie 1 4 3
1 -- -- 1 [2] 3 6
2 [2] 3 2 -- -- --
3 [5] -1 3 5 4 [3]
4 [4] -1 4 3 [2] 4
5 [5] -1 5 [4] -1 4
6 [7] -1 6 [6] -1 [6]
24
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
25
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Pentru o reţea mare, trimiterea datelor către nodul central şi distribuţia tabelelor
de rutare pentru nodurile subordonate poate dura mult timp, astfel încât noile rute
calculate drept optime nu mai corespund situaţiei din reţea. Apare o întârziere între
transmiterea iniţială a fiecărui raport şi recepţia sa de către centrul de control. Pentru
nodurile îndepărtate această întârziere poate fi semnificativă. În celălalt sens, după ce
centrul a efectuat calculele de dirijare, care ele însele pot dura un interval de timp,
timpul necesar pentru recepţionarea de către toate nodurile a tabelelor de dirijare
revizuite poate fi în egală măsură la fel de semnificativ. În acest fel centrul lucrează cu
informaţii parţial învechite şi distribuie către noduri tabele de dirijare care vor fi şi mai
învechite în momentul recepţiei. Într-o reţea în care traficul prezintă schimbări rapide
este greu ca un astfel de algoritm să funcţioneze eficient. Se poate spune că aceşti
algoritmi sunt potriviţi pentru reţele cu topologie stabilă şi trafic relativ constant. Rolul
major al acestor algoritmi este acela de a adapta îndrumarea traficului la modificările
topologice ale reţelei.
În concluzie, se poate spune că algoritmii adaptivi globali au avantaje precum:
• deciziile luate tind către ideal;
• eliberează interfeţele de calculele suplimentare.
Au însă şi numeroase dezavantaje:
• vulnerabilitatea reţelei datorită defectării Unităţii Centrale (UC) a Centrului de
Control al Rutării (RCC) sau întreruperii legăturilor RCC cu reţeaua. Soluţia
acestei probleme este duplicarea UC, existând însă şi în acest caz dezavantaje
(costul reţelei creşte, apare necesitatea existenţei unui arbitru care să arbitreze
posibilele conflicte între cele două UC);
• informaţia referitoare la rutare se poate propaga cu întârzieri mari până la
nodurile cele mai îndepărtate din reţea, astfel încât nodurile îşi schimbă tabelele
de rutare la momente diferite de timp. Se poate ajunge astfel la situaţii de
inconsistenţă a reţelei, pachetele fiind întârziate exagerat, printre ele fiind şi
pachetele de rutare. Rezultă un fenomen de cerc vicios.
26
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
3.3.4.1. Algoritmul de rutare "delta"
A 2 B
27
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Rutele alternative specificate sunt via nodul 1 şi nodul 3. Dacă diferenţa între
timpii prin nodurile 1 şi 3 este mai mare decât valoarea "delta", specificată în mod
individual pentru această decizie de dirijare de către controlorul central, atunci traficul
de la A la B este transmis pe ruta cea mai rapidă. Dacă diferenţa este mai mică decât
"delta", atunci traficul este distribuit pe cele două rute.
Unele simulări în care s-au comparat performanţele dirijării delta cu alte metode
de dirijare implicând tehnici de dirijare distribuite şi centralizate, au arătat că algoritmul
delta are cel mai mare succes în ceea ce priveşte utilizarea maximă a capacităţii reţelei
şi cei mai mici timpi de întârziere.
Un alt avantaj al acestei metode este acela că dacă se defectează sau rămâne
izolat controlorul central nodurile pot, cel puţin pentru un interval de timp, să-şi
continue funcţionarea pe baza tabelelor existente, controlând dirijarea pachetelor
individuale. În acest caz nodurile se comportă ca şi cum s-ar folosi dirijarea adaptivă
izolată. Reluarea controlului de către nodul central poate avea loc foarte simplu în
momentul restabilirii comunicaţiilor.
O altă tehnică hibridă este aceea în care există un sistem ierarhic de dirijare şi
control al fluxului. În acest sistem reţeaua este divizată în noduri strâns legate. Fiecărei
zone i se alocă un controlor local al dirijării, care recepţionează rapoartele de stare de la
nodurile sale locale. Fiecare controlor calculează rutele în propria sa zonă şi schimbă
informaţii de dirijare cu ceilalţi controlori folosind pachete de control de prioritate
mare. Această tehnică are scopul de a reduce întârzierea de timp între generarea
rapoartelor de stare şi recepţia instrucţiunilor de dirijare, prin existenţa controlorilor
locali. Privirea generală asupra reţelei se obţine prin mai mulţi controlori care comunică
între ei.
28
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
29
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
a pachetelor mari care sunt nevoite să ocolească unele reţele în timp ce pachetele mici
vor fi libere să le utilizeze şi pe acestea.
30
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
destinatie linie numar destinatie numar
1B 2A 2B de salturi linie de salturi
1C 2D 2C 1A - - 1A - -
1A
1B 1B 1 1B 1B 1
1C 1C 1 1C 1C 1
5C
5B 5D 2A 1B 2 2 1B 2
2B 1B 3 3 1C 2
3A 5A 5E 2C 1B 3 4 1C 3
3B
4A 2D 1B 4 5 1C 4
3A 1C 3
3B 1C 2 Tabela in cazul
4B 4C 5 dirijarii ierarhice
4A 1C 3
pentru nodul 1A
4B 1C 4
4C 1C 4
5A 1C 4
5B 1C 5
5C 1B
5 5
5D 1C 6
5E 1C 5
Tabela comleta
pentru nodul 1A
Figura 3.18: Rutare ierarhică
31
Rutarea în reţelele cu comutare de pachete
__________________________________________________________________________
__
Zona locala
Zona locala
Cele cinci regiuni locale au fost conectate în inel prin linii de conexiuni în inel.
Cele cinci supernoduri au fost conectate prin linii de bandă largă. Metoda de dirijare
urmărea ca traficul între regiunile neadiacente să treacă întotdeauna prin nivelul
superior. Traficul în interiorul unei regiuni nu circulă prin nivelul superior. Traficul
între regiuni locale alăturate se desfăşoară în două variante: fie este transportat de
nivelul superior, fie sunt folosite liniile dintre regiuni. În realizarea metodei s-a avut
drept model telefonia cu comutaţie de circuite. Rutele de pe nivel inferior au fost
desemnate ca rute primare între nodurile din jurul graniţei dintre regiuni. Rutele
secundare au fost desemnate cele prin nivelul superior. Un nod care găsea o rută
primară ocupată transmitea un pachet către cel mai apropiat nod de pe nivelul superior,
în majoritatea cazurilor trecând prin cel puţin un nod inferior. Pentru a se asigura că
pachetul a fost direcţionat spre nodul de nivel superior şi nu a fost deviat spre interior
de către un nod intermediar, s-a luat măsura ca nodul care decidea utilizarea nivelului
superior să marcheze corespunzător pachetul. Nodurile intermediare observau marcajul
de rută de nivel superior şi transmiteau pachetul în consecinţă. Performanţele reţelei
lucrând cu o astfel de metodă s-au dovedit inferioare celor în care s-a folosit o metodă
de dirijare mai simplă.
32
CAPITOLUL 6
MOBILITATE IP
1
Figura 6.1
Ambele opţiuni par viabile la o primă vedere şi dacă s-ar încerca soluţiile pentru un număr redus
de dispozitive, ar putea funcţiona. Din păcate ambele sunt ineficiente, chiar nepractice şi nici scalabile,
ceea ce înseamnă că, în cazul în care milioane de dispozitive ar încerca aceste soluţii am avea:
- Schimbând adresa IP de fiecare dată când un dispozitiv se deplasează, avem un consum de timp
şi în mod normal este necesară o intervenţie manuală. În plus, întreaga stivă TCP/IP trebuie repornită,
întrerupând orice legătură existentă.
2
- Dacă modificăm adresa IP a dispozitivului, cum vom comunica schimbarea adresei altor
dispozitive din Internet? Aceste dispozitive nu vor avea decât adresa de domiciliu a nodului mobil, ceea
ce înseamnă că nu vor fi capabile să-l localizeze chiar dacă îi dăm o altă adresă marcând noua locaţie.
- Rutarea bazată pe întreaga adresă a gazdei implică faptul că întregul Internet va fi inundat cu
informaţii de rutare pentru fiecare dispozitiv mobil. Luând în considerare efortul imens depus pentru
dezoltarea tehnologiilor de adresare (clase de adrese) având ca scop reducerea dimensiunilor tabelelor de
rutare, este evident că nimeni nu va dori o astfel de evoluţie.
Soluţia acestor dificultăţi este definirea unui nou protocol special pentru a suporta dispozitive
mobile, care să se adauge Protocolului Internet original. Acest protocol, numit IP Mobility Support for
IPv4, a fost definit iniţial în RFC 2002, dezvoltat în RFC 3220 şi acum este descries în RFC 3344.
Numele formal aşa cum este dat în titlul documentului fiind prea lung, tehnologia este numită uzual
Mobile IP atât în document, cât şi de către “reţelişti”.
Pentru a-i asigura succesul, proiectanţii Mobile IP au trebuit să vină în întâmpinarea mai multor
obiective. Protocolul rezultat a avut următoarele atribute şi facilităţi cheie:
Mobile IP completează aceste obiective prin implementarea unui sistem de transmitere pentru
dispozitivele mobile. Când un dispozitiv mobil se găseşte în reţeaua de domiciliu (“home”) va funcţiona
normal. Când se va deplasa într-o reţea diferită, datagramele vor fi trimise din reţeaua sa de domiciliu
către noua locaţie. Aceasta permite dispozitivelor normale şi ruterelor care nu cunosc Mobile IP să
continue să opereze ca şi când dispozitivul mobil nu s-a deplasat. Sunt necesare servicii suport speciale
3
pentru a implementa Mobile IP, pentru a permite activităţi cum ar fi posibilitatea ca dispozitivul mobil
să îşi determine poziţia, să poată spune reţelei de domiciliu unde să îi transmit mesajele, şi altele.
Mobile IP are limitări certe într-un mediu wireless. A fost proiectat pentru a manevra mobilitatea
dispozitivelor, dar numai o mobilitate relativ rară, din cauza volumului de operaţii implicate pentru
fiecare schimbare. Această încărcare nu reprezintă mare lucru dacă computerul se mută la o săptămână,
sau o dată pe zi, sau o dată pe oră. Mobile IP a fost proiectat sub ipoteza că punctul de ataşare la reţea nu
se modifică mai mult de o dată pe secundă.
De asemenea, Mobile IP a fost prevăzut să fie utilizat cu dispozitive care menţin o configuraţie IP
statică. Întrucât este necesar ca dispozitivele să-şi cunoască întotdeanuna identitatea propriei reţele şi
adresa IP, este mult mai dificil de utilizat cu un dispozitiv care obţine o adresă IP dinamic, utilizând un
protocol ca DHCP.
Dynamic Host Configuration Protocol (DHCP) este un protocol pentru configurarea gazdelor,
utilizat curent în reţelele TCP/IP moderne. DHCP constă în două component majore: un mechanism de
alocare a adresei şi un protocol care permite clienţilor să ceară şi serverelor să furnizeze informaţii de
configurare.
4
Apar şi câteva dezavantaje. Oficiul de domiciliu va solicita o plată pentru serviciul oferit. Este
necesar şi un aranjament special în oraşul în care te deplasezi. De fiecare dată când te deplasezi trebuie
să iei legătura cu oficiul de domiciliu. Şi poate cel mai important fapt, fiecare mesaj este transmis de
două ori, o dată către adresa de domiciliu şi a doua oară către adresa în care te-ai deplasat.
Mobile IP lucrează similar cu serviciul poştal. Consultantul în discuţie este un dispozitiv mobil
care se deplasează dintr-o reţea în alta. Fiecare reţea poate fi considerată ca fiind un alt oraş, iar inter-
reţeaua de rutere poate fi privită ca sistemul poştal. Ruterul care conectează o reţea la Internet este un fel
de oficiu poştal pentru acea reţea, din perspective IP.
Nodul mobil este rezident în mod normal în reţeaua de domiciliu (home network), care este cea
indicată de identificatorul de reţea (network ID) din adresa IP. Dispozitivele din inter-reţea dirijează
întotdeauna conform adresei IP, astfel că datagramele ajung întotdeauna la un ruter al domiciliului
dispozitivului. Când dispozitivul se deplasează într-o altă reţea, ruterul de domiciliu (home router)
interceptează aceste datagrame şi le transmite pe adresa curentă a dispozitivului. Poate să le trimită
direct către dispozitiv folosind eventual o adresă temporară, sau poate să trimita unui ruter ataşat reţelei
în care se află dispozitivul în vederea unei distribuiri finale.
Modul cum operează Mobile IP poate fi ilustrat de figura 6.2. Diagrama din figura 6.2 este
similară celei din figura 6.1, dar are implemetat Mobile IP. Ruterul de domiciliu al nodului mobil are rol
de agent de domiciliu (home agent), iar ruterul din Tokyo are rol de agent extern (foreign agent).
Mobilul are asociată temporar o adesă “care-of” care va fi utilizată cât timp se află la Tokyo. În pasul
#1, clientul distant transmite o datagramă către dispozitivul mobil utilizând adresa sa de domiciliu, ca şi
5
înainte. Aceasta ajunge, ca de obicei, la Londra. În pasul #2, agentul de domiciliu încapsulează
datagrama în una nouă şi o transmite dispozitivului mobil la Tokyo.
După cum s-a observant, Mobile IP a avut nevoie de ajutorul a două rutere. De fapt, există trei
jucători principali care implementează protocolul :
- Nodul mobil (Mobile Node): Este dispozitivul mobil, cel care se deplasează prin inter-reţea.
- Agentul de domiciliu (Home Agent): Acesta este un ruter din reţeaua de domiciliu (home
network) care este responsabil de interceptarea datagramelor destinate nodului mobil şi transmiterea lor
către acesta când se deplasează. De asemenea implementează alte funcţii support necesare funcţionării
protocolului.
- Agentul extern (Foreign Agent): Este un ruter din reţeaua în care a ajuns dispozitivul mobil. El
funcţionază ca o altă casă pentru nodul mobil. În funcţie de modul de operare, el poate recepţiona
datagramele transmise de către agentul de domiciliu şi le poate transmite către nodul mobil. De
asemenea va distribui informaţii de mobilitate pentru a face operaţional Mobile IP. Este posibil ca în
unele implementări ale Mobile IP agentul extern să nu fie necesar, dar uzual este considerat parte
integrantă a protocolului.
Terminologie
Anunţ din partea agentului (Agent Advertisement): este un mesaj trensmis de către ruter pentru a-
şi anunţa prezenţa.
Autentificare (Authentication): process de verificare (utilizând tehnici de criptare) a identităţii
sursei mesajului.
Adresa care-of: punctul terminal al tunelului care ajunge la nodul mobil. Protocolul utilizează
două tipuri de astfel de adrese:
- adresă care-of a agentului extern ("foreign agent care-of address"): adresa agentului extern la
care nodul mobil este înregistrat
- "co-located care-of address": o adresă locală obţinută extern cu care este asociat nodul mobil.
Nodul corespondent (Correspondent Node): perechea cu care nodul mobil corespondează. Nodul
corespondent poate fi mobil sau staţionar.
Reţeaua străină (Foreign Network): orice altă reţea diferită de reţeaua de domiciliu a nodului
mobil.
Adresa de domiciliu (Home Address): o adresă IP asociată dispozitivului pe o perioadă lungă de
timp. Ea rămâne neschimbată cât timp nodul este conectat la Internet.
Reţeaua de domiciliu (Home Network): O reţea, posibil virtuală, care se găseşte înscrisă în adresa
de domiciliu a nodului mobil. Mecanismele de rutare IP standard vor livra datagramele destinate adresei
de domiciliu a nodului mobil reţelei de domiciliu a nodului mobil.
Legătură (Link): o facilitate, un mediu prin care nodurile pot comunica. O legătură se găseşte sub
nivelul reţea.
Adresă la nivel legătură de date (Link-Layer Address): adresa utilizată pentru a identifica punctul
final al unei comunicaţii peste o legătură fizică. Tipic, o astfel de adresă este adresa MAC (Media
Access Control)
Agent de mobilitate (Mobility Agent): atât un agent de domiciliu, cât şi un agent extern.
6
Conexiunea mobilităţii (Mobility Binding): asocierea dintre o adresă de domiciliu şi o adresă care-
of realizată pe o anumită perioadă de timp.
Asociere mobilă securizată (Mobility Security Association): o colecţie de contexte de securitate
între o pereche de noduri care se aplică protocolului Mobile IP de schimb de mesaje. Fiecare context
indică un anumit mod şi algoritm de autentificare, o secretizare (cheie publică, cheie privată) şi un stil de
protecţie a răspunsului.
Nod (Node): o gazdă sau un ruter.
Tunel (Tunnel): o cale urmată de datagrame încapsulate. O datagramă încapsulată este transmisă
spre un agent cunoscut capabil să decapsuleze, care decapsulează datagramele şi le livrează corect
destinaţiei finale.
Reţea vizitată (Visited Network): altă reţea decât reţeaua de domiciliu, la care nodul mobil este
conectat curent.
Lista vizitatorilor (Visitor List): o listă a nodurilor mobile care vizitează un agent extern.
Presupunem că dispozitivul mobil s-a deplasat într-o reţea străină. La prima pornire şi conectare la
reţea, nu se poate conecta. Nu ştie că se găseşte într-o altă reţea. Va trebui să găsească un agent extern în
acea reţea. Va trebui să ştie ce adresă poate utiliza în acea reţea. Va trebui să comunice cu agentul de
domiciliu să îl anunţe în ce reţea se găseşte pentru ca acesta să îi poată redirecţiona mesajele.
Pentru toate acestea, Mobile IP utilizează un set de funcţii. Pentru a vedea cum acţionează aceste
funcţii, vom evidenţia câţiva paşi din operarea generală a Mobile IP.
1. Agenţii de mobilitate (externi sau de domiciliu) anunţă prezenţa lor printr-un mesaj “Agent
Advertisement”. Un nod mobil poate. Opţional, solicita un mesaj de anunţ al agentului de la oricare
dintre agenţii de mobilitate ataşaţi reţelei în care se află prin transmiterea unui mesaj de solicitare
“Agent Solicitation”.
2. Nodul mobil primeşte anunţul agentului şi pe baza lui determină dacă se găseşte în reţeaua de
domiciliu sau în reţea străină.
3. Dacă nodul mobil decide că se găseşte în reţeaua de domiciliu, va opera fără servicii de
mobilitate. Dacă s-a reîntors în reţeaua de domiciliu în care este înregistrat ca fiind într-o reţea străină,
nodul mobil se va dezînregistra la agentul de domiciliu printr-un schimb de mesaje “Registration
Request” şi “Registration Reply”.
4. Când un nod mobil detectează că s-a mutat într-o reţea străină, va obţine de la agentul extern o
adresă care-of. Această adresă poate fi determinată din anunţurile agentului extern (adresa care-of a
agentului extern), sau printr-un mecanism extern ca DHCP, caz în care obţine o adresă colocated care-
of.
5. După obţinerea adresei care-of, nodul mobil se va înregistra la agentul de domiciliu cu această
nouă adresă printr-un schimb de mesaje “Registration Request” şi “Registration Reply”.
6. Datagramele trimise către adresa de domiciliu a nodului mobil vor fi interceptate de către
agentul de domiciliu, tunelate de către acesta către adresa care-of a nodului mobil, recepţionate în
punctul terminus al tunelului (care este fie agentul extern, fie nodul mobil însuşi) şi în final livrate
nodului mobil.
7. În sensul invers, datagramele transmise de către nodul mobil sunt în general livrate utilizând
mecanismele de rutare IP standard, nefiind necesar să treacă pe la agentul de domiciliu.
7
6.3. Adresarea Mobile IP
FigurA 6.3: Operarea Mobile IP cu o adresă Foreign Agent “Care-Of”
8
Diagrama este similară cu Figura 6.2, exceptând faptul că faptul că, în loc de o adresa co-located,
aici se utilizează o adresă foreign agent care-of. Aceasta înseamnă că adresa care-of actuală este cea a
agentului extern. Pasul #1 este acelaşi ca şi în cazul figurii 6.2, dar în pasul #2 agentul de domiciliu nu
va mai trimite direct nodului mobil, ci agentului extern. În pasul #3 agentul extern va desface pachetul
primit de la agentul de domiciliu şi va livra datagrama originală nodului mobil. Tipic, această acţiune se
realizează la nivel doi.
Adresa foreign agent care-of este considerată ca fiind tipul utilizat în Mobile IP classic, în care
există atât agent de domiciliu, cât şi agent extern. Cu toate că pare mai puţin eficient decât co-located
care-of, oferă totuşi câteva avantaje imortante. Unul este acela că o adresă foreign agent care-of poate fi
utilizată de către mai multe noduri mobile care se află în vizită în acea reţea. Datagramele tuturor
nodurilor mobile vor fi transmise agentului extern care va asigura livrarea individuală către fiecare nod.
Întrucât nodurile mobile utilizează aceeaşi adresă, nu vor fi necesare adrese suplimentare, nu se va
depune un efort suplimentar pentru fiecare nod mobil.
Adresa co-located care-of are avantajul că traficul va fi dirijat direct de la agentul de domiciliu
către nodul mobil. În acest tip de aranjament este posibil ca un nod mobil să se deplaseze într-o reţea în
care agentul extern să lipsească. Acest fapt implică implementarea tuturor funcţiilor de comunicare
realizate în mod normal de către agentul extern la nivelul agentului de domiciliu.
În cazul adresei co-located se mai pune problema obţinerii adresei temporare. În majoritatea
reţelelor străine este posibilă obţinerea automată a unei adrese IP utilizând un protocol ca DHCP, dar,
dacă nu, trebuie totuşi asociată o adresă temporară. Oricum, o parte din spaţiul limitat de adrese IP al
reţelei vizitate trebuie rezervat pentru noduri mobile, fiecare dintre acestea utilizând o astfel de adresă pe
intervalul cât sunt prezente în reţea.
Adresa foreign agent care-of este preferată datorită naturii sale mult mai automate, datorită
prezenţei unui agent extern în reţea. Considerând că toate datagramele vor fi dirijate către un singur ruter
în reţeaua vizitată, se salvează o mulţime de adrese IP. Adresele co-located vor fi utilizate atunci când
nu există agent extern, sau, chiar în prezenţa agentului extern, când conexiunea se realizează pe termen
lung.
9
- Comunicarea agent-nod (Agent/Node Communication): primul pas îl constituie stabilirea
contactului cu un agent al reţelei la care este conectat nodul mobil. Sunt transmise mesaje din partea
agentului către nod conţinând informaţii importante despre agent; este posibil să existe şi un mesaj de la
nod către agent, mesaj prin care nodul solicită informaţii.
- Orientarea (Orientation): Nodul utilizează procesul de descoperire a agentului pentru a
determina unde se găseşte. El va determina dacă se găseşte în propria reţea sau într-o reţea străină prin
identificarea agentului care îi transmite mesaje.
- Asocierea cu o adresă care-of (Care-Of Address Assignment): Această metodă îi spune nodului
ce adresă care-of poate utiliza, în cazul în care este utilizată adresarea “foreign agent care-of”.
Agenţii IP mobili sunt rutere cărora li s-au adăugat programe suplimentare pentru a fi capabili să
asigure funcţii de Mobile IP. În principiu, comunicaţia dintre nodul mobil şi agentul din reţeaua la care
este conectat este similară cu cea dintre un dispozitiv din reţea şi ruterul său local, excepţie fiind
informaţia suplimentară necesar a fi transmisă în situaţia în care ruterul are rol de agent.
Internet Control Message Protocol (protocol prin care dispozitivele pot fi anunţate dacă a apărut
o disfuncţionalitate în reţea sau prin care dispozitivele testează posibilitatea de a atinge o anumită
destinaţie).
Preocuparea în ceea ce priveşte schimbul de mesaje între un ruter şi un nod există sub forma
mesajelor ICMP care sunt utilizate în procesul de descoperire a ruterelor. În acest scop sunt folosite
două mesaje: Router Advertisement prin care ruterele anunţă nodurilor existenţa lor şi capabilităţile lor
şi Router Solicitation prin care un nod cere unui ruter să-i transmită capabilităţile sale.
Plecând de la similaritatea acestui proces cu cel de descoperire a agentului, s-a decis o modificare
a procesului existent în locul creerii unui nou proces. Mesajele utilizate în procesul de descoperire a
agentului vor fi:
o Agent Advertisement: Mesaj transmis regulat de către un ruter care funcţionează ca agent
Mobile IP. El constă dintr-un mesaj obişnuit Router Advertisement care are una sau mai multe extensii
pentru a conţine informaţii Mobile IP specifice pentru nodurile mobile.
o Agent Solicitation: Acest mesaj poate fi transmis de către un dispozitiv IP mobil pentru a solicita
unui agent transmiterea unui mesaj Agent Advertisement.
Agenţii sunt configuraţi astfel încât să transmită mesajele Agent Advertisement cu o rată
rezonabilă pentru a asigura un contact rapid fără o încărcare excesivă a lărgimii de bandă. Ei trebuie să
răspundă imediat oricărui mesaj Agent Solicitation recepţionat cu un mesaj Agent Advertisement. Este
posibil ca unii agenţi să fie configuraţi astfel încât să transmită mesajul Agent Advertisement numai în
urma recepţionării unei solicitări.
Nodurile mobile trebuie să fie capabile să recepţioneze şi să prelucreze mesajele Agent
Advertisement. Ele vor face diferenţa dintre un astfel de mesaj şi un mesaj Router Advertisement prin
evaluarea lungimii mesajului. Ele vor analiza apoi extensia mesajului pentru a lua la cunoştinţă
capabilităţile agentului local. Ele determină astfel dacă se află în propria reţea sau într-o reţea străină, iar
în cazul unui agent străin, cum poate fi folosit acesta. De asemenea, nodurile mobile trebuie să fie
10
capabile să determine, pe baza mesajului Agent Advertisement dacă s-au deplasat din reţeaua anterioară
şi, de asemenea, când s-au reîntors în propria reţea. Nodurile mobile trebuie să fie capabile să transmită
un mesaj de solicitare dacă nu au primit nici un anunţ într-un interval de timp prestabilit.
Vom începe cu acest format întrucât mesajul Agent Solicitation este mult mai simplu. De fapt, nu
este definit nici un format nou pentru acest mesaj! El este identic cu formatul mesajului Router
Solicitation. Motivul pentru care nu este necesar un tip nou de mesaj este acela că este necesar un mesaj
extrem de simplu: “Hei, dacă este vreun ruter pe aici, te rog spune-mi cine eşti şi de ce eşti capabil!” Nu
este necesară nici o informaţie suplimentară Mobile IP. Atunci când un ruter obişnuit recepţionează un
mesaj Router Solicitation el va transmite un Router Advertisement; în cazul unui ruter Mobile IP va
transmite automat un mesaj mai lung, de tip Agent Advertisement fără o solicitare suplimentară, chiar
dacă solicitarea vine de la un nod Mobile IP sau de la un dispozitiv obişnuit.
Agent Advertisement începe cu câmpurile normale ale unui mesaj ICMP Router Advertisement.
Destinaţia mesajului este fie o adresă multicast “toate dispozitivele” (224.0.0.1) dacă este furnizat
serviciul multicast, fie o adresă broadcast (255.255.255.255). Câmpurile de adresă ale ruterului vor fi
completate cu adresele agentului.
Este principala extensie utilizată pentru a transmite capabilităţile Mobile IP ale agentului către
nodurile mobile din reţeaua locală.
Structura Mobility Agent Advertisement Extension este descrisă în tabelul 6.1 şi ilustrată grafic în
figura 6.4.
11
Lifetime agentul este dispus să primească cereri de înregistrare. O valoare 65,535 (toţi
biţii 1) reprezintă “infinit”. Acest câmp are semnificaţie numai pentru
înregistrare şi nu are nicio legătură cu câmpul Lifetime obişnuit al unui mesaj
Router Advertisement obişnuit.
Flags 1
12
Figura 6.4: Mobile IP Mobility Agent Advertisement Extension Format
Această extensie este poziţionată după câmpurile normale ale unui mesaj Router Advertisement
13
Address Entry Size: Numărul de cuvinte de 32 de biţi care revin pentru
Addr Entry fiecare adresă. Deoarece pentru acest format de mesaj fiecare adresă de
1
Size ruter are o adresă de 32 de biţi şi un nivel de preferinţă de 32 de biţi,
această valoare este fixată la 2.
Timp de viaţă: Numărul de secunde cât un host va considera acest nesaj
Lifetime 2
valid.
Router 8*Valoarea
Address câmpului
Entries Num Addrs
14
6.4.1.4. Extensia Prefix-Lengths
Este o extensie opţională care spune nodului mobil care este lungimea prefixului adresei ruterului
conţinută în câmpul Router Address al mesajului Agent Advertisement. Lungimea prefixului este un alt
termen prin care se specifică numărul de biţi din adresa IP care reprezintă identitatea reţelei. Astfel se
specifică identitatea reţelei pentru fiecare dintre adresele ruterului.
Această extensie este poziţionată după câmpurile normale ale unui mesaj Router Advertisement
din Figura 6.5.
15
6.5. Procesul de înregistrare
Odată ce un nod mobil a încheiat procesul de descoperire a agentului, el ştie dacă se află în reţeaua
de domiciliu sau într-o reţea străină. Dacă se găseşte în propria reţea, va comunica ca orice dispozitiv IP
obişnuit. Dacă se află într-o reţea străină, va trebui să adopte un comportament Mobile IP. Acesta
presupune comunicaţia cu agentul de domiciliu astfel încât să poată fi schimbate între ei informaţii şi
instrucţiuni. Acest proces este numit înregistrarea la agentul de domiciliu “home agent registration” sau,
mai simplu, înregistrare. Scopul principal al înregistrării îl constituie lansarea activităţii Mobile IP.
Nodul mobil trebuie să contacteze agentul de domiciliu, să îl anunţe că se găseşte într-o reţea străină şi
să solicite pornirea procedurii de expediere a datagramelor. Pentru aceasta va lăsa agentului de domiciliu
adresa sa care-of, astfel încât agentul de domiciliu să ştie unde trebuie să transmită datagramele. Agentul
de domiciliu trebuie, la rândul său, să comunice nodului mobil o serie de informaţii atunci când se
realizează înregistrarea. În tot acest proces, agentul extern nu este implicat, cel mult având rolul de a
retransmite mesajele.
Înregistrarea cu succes stabileşte ceea ce se numeşte legătura mobilă “mobility binding” între
agentul de domiciliu şi nodul mobil. Pentru toată durata înregistrării adresa IP de domiciliu a nodului
mobil este asociată cu adresa curentă care-of şi agentul de domiciliu va încapsula şi va expedia
datagramele adresate adresei de domiciliu către adresa care-of. Se presupune că nodul mobil îşi
administrează înregistrarea şi manevrează diferitele evenimente utilizând câteva acţiuni:
- Înregistrarea (Registration): Nodul mobil iniţiază o înregistrare atunci când detectează pentru
prima oară că a fost deplasat din reţeaua de domiciliu într-o reţea străină.
- Dezînregistrarea (Deregistration): Atunci când nodul mobil se întoarce în reţeaua de domiciliu,
el trebuie să anunţe agentul de domiciliu să înceteze expedierea datagramelor către adresa care-of.
- Reînregistrarea (Reregistration): Dacă un nod mobil se mută dintr-o reţea străină într-o altă
reţea străină, sau dacă adresa sa care-of se modifică, el trebuie să-şi actualizeze înregistrarea la agentul
de domiciliu. Trebuie să execute această acţiune şi în situaţia în care îi expiră înregistrarea, chiar dacă
rămâne staţionar în aceeaşi reţea străină.
Fiecare înregistrare este stabilită pentru un interval de timp bine stabilit, de aceea este necesară
reînregistrarea chiar dacă dispozitivul se deplasează sau nu. Înregistrările au o durată limitată pentru a se
evita expirarea lor. De exemplu, dacă un nod uită să se dezînregistreze atunci când se întoarce acasă,
expedierea datagramelor către adresa care-of va înceta la expirarea înregistrării.
Pentru a realiza înregistrarea au fost definite două mesaje noi în Mobile IP: Cerere a Înregistrării
(Registration Request) şi Răspuns la Înregistrare (Registration Reply). Acestea nu sunt mesaje ICMP ca
16
alte mesaje folosite în procesul de descoperire a agentului; ele sunt mesaje UDP (User Datagram
Protocol). De aceea, tehnic vorbind, înregistrarea este realizată la un nivel mai înalt decât restul
comunicațiilor Mobile IP. Agenții primesc Cererea de Înregistrare (Registration Requests) pe portul
UDP #434, şi răspund nodurilor mobile utilizând unul din porturile de transmitere de mesaje.
Există două proceduri diferite pentru înregistrare, funcție de tipul adreselor care-of utilizate de
către nodul mobil şi alte specificații pe care le vom trata pe scurt. Prima metodă este înregistrarea
directă, care presupune numai doi paşi:
În unele cazuri este cerut un proces puțin mai complex, în care agentul extern este implicat în
schimbul de mesaje dintre agentul de domiciliu şi nodul mobil. În această situație sunt necesari patru
paşi:
Prima metodă, mai simplă, este utilizată atunci când nodul mobil utilizează o adresă co-located
care-of. În această situație poate comunica uşor cu agentul de domiciliu şi este capabil să recepționeze
direct datagramele de la agentul de domiciliu. Acolo unde nu este prezent un agent extern, este evident
că aceasta este metoda care trebuie utilizată. Tot această metodă este utilizată şi în situația
dezînregistrării la agentul de domiciliu în urma revenirii în rețeaua de domiciliu.
A doua metodă este utilizată atunci când nodul mobil utilizează o adresa care-of. Reamintim că
aceasta este situația în care nodul mobil nu are propria adresă IP; el utilizează o adresă comună cu cea a
agentului extern, ceea ce împiedică comunicarea directă între nodul mobil şi agentul său de domiciliu.
De asemenea, atunci când nodul mobil recepționează un mesaj Agent Advertisement cu flag-ul “R” flag
setat,el trebuie să ia legătura cu agentul extern chiar dacă deține o adresă co-located care-of. Ca o
observație, agentul străin nu este altceva decât un mijlocitor, schimbul de mesaje având loc între agentul
de domiciliu şi nodul mobil. Totuşi, agentul extern poate invalida înregistrarea dacă cererea violează
regulule stabilite în rețeaua străină. Acesta este motivul pentru care unii agenți externi cer să fie
implicați în înregistrare chiar dacă nodul mobil deține o adresă co-located care-of. Se înțelege că în
situația în care agentul extern nu poate contacta agentul de domiciliu înregistrarea nu poate fi realizată.
17
6.5.2.2. Formatul mesajului Registration Request
Acest mesaj este transportat în zona payload a mesajului UDP,contribuția acestuia nefiind
ilustrată.
18
Tabel 6.4: Formatul mesajului Mobile IP Registration Request
Mărime
Nume câmp Descriere
(bytes)
Tip: Identifică tipul mesajului de înregistrare. Pentru o cerere, acest câmp
Type 1
este 1.
Flags 1
19
Care-Of
4 Adresa Care-Of: Adresa IP utilizată de nodul mobil ca adresă care-of.
Address
Identificator: Un număr format din 64 de biți care identifică în mod unic
Cererea de Înregistrare(Registration Request) şi care este utilizat pentru a
Identification 8
marca cererile în vederea răspunsurilor. Are şi rol de protecție împotriva
atacurilor.
Extensii: Câmpurile extensie sunt incluse în această zona pentru a autentifica
Extensions Variabil
cererea.
Formatul mesajului Registration Reply este cel din Tabelul 6.5 şi Figura 6.8
20
Extensii: Câmpurile extensie sunt incluse cu scopul autentificării
Extensions Variabil
răspunsului. Pot fi incluse şi alte eztensii.
21
domiciliu şi le expediază acestuia. Acest lucru se realizează prin încapsularea datelor şi transmiterea lor
către nodul mobil pe adresa care-of.
Procesul de încapsulare creează o construcție logică numită tunel între dispozitivul care
încapsulează şi un altul care decapsulează. Tunelul reprezintă o conductă prin care datagramele sunt
expediate peste o rețea arbitrară, cu detaliile datagramei încapsulate temporar ascunse.
În Mobile IP punctual de pornire al tunelului este agentul de domiciliu, care încapsulează
datagramele. Sfârşitul tunelului depinde de tipul de adresă care-of utilizată:
o Adresă Foreign Agent Care-Of: În acest caz finalul tunelului este agentul extern. El
recepționează mesajele încapsulate de către agentul de domiciliu, elimină antetele suplimentare şi
livrează datagrama nodului mobil. Această acțiune are loc de obicei la nivel doi, deoarece nodul mobil
şi agentul extern sunt poziționați în aceeaşi rețea locală şi, de asemenea, nodul mobil nu dispune de
propria adresă IP în acea rețea (el o utilizează pe cea a agentului extern).
o Adresă Co-Located Care-Of: În această situație nodul mobil este capătul tunelului şi elimină
antetele suplimentare.
În mod normal, tunelul descris anterior este utilizat numai pentru datagramele transmise către
nodul mobil şi capturate de către agentul de domiciliu. Atunci când un nod mobil doreşte să transmită o
datagramă nu există un tunel invers către agentul de domiciliu, acesta nefiind efficient. Datagrama va fi
transmisă direct utilizând orice ruter găsit în rețeaua curentă, care poate fi sau nu un agent extern. Când
face acest lucru, el utilizează propria adresă IP (de domiciliu) ca adresă sursă pentru orice cerere
22
lansează. Ca urmare, orice răspuns la aceste cereri va fi transmis către rețeaua de domiciliu. Se creează
astfel un triunghi de astfel de tranzacții:
1. Nodul mobil transmite o cerere din rețeaua străină către o a treia parte (dispozitiv) aflată
undeva în Internet.
2. Acest dispozitiv răspunde nodului mobil. Întrucât a primit ca adresă sursă a cererii adresa
de domiciliu a nodului mobil, răspunsul la cerere va fi transmis pe această adresă în rețeaua de domiciliu
a nodului mobil.
3. Agentul de domiciliu interceptează răspunsul în rețeaua de domiciliu şi îl transmite prin
tunel către nodul mobil.
Acest process este ilustrat în Figura 6.9. Acelaşi triunghi se formează şi în cazul în care partea a
treia (situată undeva în Internet) lansează o cerere către nodul mobil. Cererea va fi recepționată şi apoi
expediată de către agentul de domiciliu. Dacă nodul mobil doreşte să răspundă, va trimite acest răspuns
direct dispozitivului din Internet.
Acest exemplu ilustrează cum un schimb tipic de mesaje cerere/răspuns în Mobile IP creează un
23
triunghi de comunicație. În pasul #1 nodul mobil transmite o cerere către un server distant aflat undeva
în Internet. Nodul mobil utilizează adresa de domiciliu ca sursă a acestei cereri, astfel că, în pasul #2
răspunsul ajunge la agentul de domiciliu. În pasul #3 agentul de domiciliu transmite prin tunelare
răspunsul nodului mobil.
Pot exista situații în care nu este nici fezabil, nici de dorit ca nodul mobil să transmită direct
datagramele prin intermediul unui ruter găsit în rețeaua străină. În acest caz poate fi dezvoltată o
facilitate opțională numită tunelare inversă (reverse tunneling). Este posibil de realizat numai dacă este
suportată atât de către nodul mobil, agentul de domiciliu cât şi de agentul extern dacă acesta este
implicat.
Când facilitatea este utilizată, se crează un tunel invers, complementar celui normal, între nodul
mobil şi agentul de domiciliu, sau între agentul extern şi agentul de domiciliu, funcție de tipul adresei
care-of. Toate transmisiile provenite de la nodul mobil sunt tunelate către rețeaua de domiciliu unde
agentul de domiciliu le transmite peste Internet rezultând o operație mai simetrică decât în cazul
triunghiului. Este mai puțin eficientă deoarece fiecare comunicație necesită patru paşi. De aceea, această
metodă este utilizată numai dacă este necesar.
O situație în care ar fi necesar un tunel invers este aceea în care rețeaua străină în care se află
nodul mobil are implementate măsuri de securitate care împiedică nodul să transmită datagrame
utilizând adresa sa de domiciliu. În particular, rețeaua poate fi setată să nu permită ieşirea datagramelor
care în adresa sursă nu au prefixul adresei rețelei respective. Acțiunea are ca scop prevenirea “glumelor”
(adrese IP nepersonalizate).
Mobile IP este un protocol care permite implementarea unei funcții foarte dificile şi anume
permite în mod transparent deplasarea unui dispozitiv într-o rețea străină. Din păcate, de câte ori un
protocol încearcă să modifice modul de funcționare al IP avem ceea ce se numeşte “un caz special”.
Fiind vorba despre un agent de domiciliu care interceptează datagrame şi le expediază apoi prin tunel
către nodul mobil, acesta lucrează în general fără problem, dar există situații în care sunt necesare
acțiuni suplimentare. Una dintre acestea este utilizarea ARP, care, fără câteva precauții nu va funcționa
corect.
Pentru a înțelege problema care apare în utilizarea ARP, considerăm un nod mobil care se află
într-o rețea străină şi care s-a înregistrat cu succes la agentul de domicilui. Agentul de domiciliu va
intercepta datagramele sosite în rețeaua de domiciliu destinate nodului mobil, le va încapsula şi expedia.
Pentru a realiza aceasta, agentul de domiciliu trebuie să analizeze datagrama, acțiune care are loc în mod
normal numai pentru datagramele care sosesc din exteriorul rețelei şi care sunt procesate la nivelul
ruterului.
24
Ce se întâmplă în situația în care datagrama este transmisă de un nod din rețeaua de domiciliu şi
este destinată nodului mobil aflat într-o altă rețea? Trebuie avut în vedere că acrst nod nu este necesar un
nod mobil şi este posibil să nu dețină capabilităşi Mobile IP. El va urma procedura standard: compară
identitatea rețelei nodului mobil cu identitatea propriei rețele, constată că este vorba despre aceeaşi
rețea, deci poate face expedierea direct, nefiind necesară o rutare. Pentru aceasta va utiliza ARP în
vederea identificării adresei MAC a nodului mobil pentru a-i trimite datagrama. Va începe prin a se uita
în propriul cache ARP şi dacă găseşte aici adresa de nivel doi o va utiliza pentru expedierea pe nivel doi.
Nodul mobil nu se află în rețeaua de domiciliu, în consecință nu va recepționa acest mesaj. Dacă nodul
mobil nu se află în tabelul ARP propriu nodului inițiator de mesaj, acesta va transmite în rețeaua de
domiciliu o cerere ARP Request către nodul mobil pentru a-i determina adresa de nivel doi. Din nou,
nodul mobil fiind plecat din rețea, cererea va rămâne fără răspuns.
o ARP Proxying (ARP Delegat): Agentul de domiciliu trebuie să asculte orice ARP Request
transmis de nodurile din aceeaşi rețea cu orice nod mobil care este înregistrat la el. Atunci când aude
una, va răspunde în locul nodului mobil specificând propria adresă MAC ca fiind asociată adresei IP a
nodului mobil. Ca urmare, toate hosturile din rețeaua de domiciliu vor transmite datagramele destinate
nodului mobil către agentul de domiciliu care le va expedia. Procesul este ilustrat în Figura 6.10.
25
Figura 6.10: Agent de domiciliu cu rol de ARP Proxying
26
urile, asociind din nou adresa IP a nodului mobil cu adresa sa MAC şi nu cu cea a agentului de
domiciliu.
o Dispozitivul emițător se află rețeaua străină: Cea mai mare ineficiență se întâlneşte în această
situație, în care dispozitivul emițător se găseşte în aceeaşi rețea (străină) cu nodul mobil. Dispozitivul A
localizat în Tokyo trebuie să transmită datagrama la Londra de unde este expediată înapoi la Tokyo.
Fără Mobile IP, utilizarea ARP ar permite livrarea imediată, fără nici o rutare. Acest ultim scenariu, cel
mai defavorabil, este ilustrat in Figura 6.11.
27
Figura 6.11: Ineficiența Mobile IP În situația cea mai defavorabilă
Diagrama ilustrează cel mai prost caz posibil de ineficiență a Mobile IP: situația în care un
dispozitiv din rețeaua străină în care este localizat nodul mobil doreşte să îi transmită o
datagramă. Sursa, în cazul de față 210.4.79.11, utilizează adresa de domiciliu a nodului mobil,
astfel transmisia fiind dirijată înapoi spre Londra şi apoi returnată în Tokyo, chiar dacă cele două
dispozitive se găsesc pe acelaşi birou.
Din păcate acest ultim scenariu apare destul de des. Sunt frecvente situațiile în care dispozitivul
mobil conectat la o rețea străină comunică în special cu hosturi din acea rețea.
Pentru a vedea că se poate şi mai rău, putem considera cazul utilizării tunelării inverse. În această
situație avem un tunel nu numai pentru datagramele transmise către nodul mobil, ci şi de la acesta. În
cazul cel mai defavorabil o pereche de mesaje cerere/răspuns transmisă între un nod mobil şi un alt
dispozitiv aflate ambele în rețeaua străină, necesită două drumuri complete Londra – Tokyo, dus-întors.
Ineficiența este parte inerentă a Mobile IP. Nu există nicio soluție în interiorul Mobile IP, fiind o
consecință a modului de operare a protocolului. Singura modalitate de a îmbunătăți lucrurile este aceea
de a încropi o soluție care în ultimă instanță se reduce la una din cele două opțiuni pe care le avem
28
atunci când nu se utilizează suportul mobilității: fie decidem să acordăm dispozitivului mobil aflat într-o
rețea străină o adresă IP temporară în acea rețea, fie utilizăm o rutare specifică pentru acest dispozitiv
cât timp se află în rețeaua străină. Aici intrăm într-o buclă: am văzut că şi aceste soluții ridică probleme,
acesta fiind motivul principal pentru care a fost creat Mobile IP. Pot exista însă situații în care eficiența
este mult mai importantă decât portabilitatea transparentă oferită de Mobile IP. Pentru o staționare
îndelungată într-o rețea străină depărtată de rețeaua de domiciliu, sau pentru aplicațiile în care eficiența
este esențială, poate avea sens angajarea uneia din aceste tehnici. De exemplu, o corporație care are un
număr mic de oficii în diferite oraşe, conectate prin intermediul Internetului, poate seta o rutare specială
care să permită unui dispozitiv mobil aflat în vizită la un oficiu din alt oraş decât cel de domiciliu să
comunice direct cu nodurile locale ale rețelei străine fără să mai fie rutat prin Internet.
Securitatea este o preocupare continuă în orice mediu de rețea, fiind esențial în Mobile IP. Există
un număr de motive pentru a justifica această afirmație şi le vom prezenta împreună cu modul în care
este utilizat protocolul şi mecanismele specifice prin care este implementată securitatea.
Securitatea a fost avută în vedere în permanență în timpul dezvoltării Mobile IP ținând seama de
faptul că cel mai adesea dispozitivele mobile utilizează o tehnologie de rețea fără fir (wireless).
Comunicațiile wireless sunt inerent mai puțin sigure decât comunicațiile prin fir , deoarece transmisiile
de realizează într-un mediu deschis putând fi interceptate. Este de asemenea mult mai uşor pentru
utilizatorii răutăcioşi să perturbeze funcționarea dispozitivelor wireless decât în situația în care
conexiunea s-ar face prin fir.
Din punct de vedere al operării, Mobile IP prezintă un număr de riscuri datorate utilizării unui
sistem de înregistrare şi transmiterii datagramelor peste o rețea nesecurizată. Un dispozitiv malițios
poate interveni în procesul de înregistrare provocând deturnarea datagramelor destinate dispozitivului
mobil. Un intrus poate interveni şi în procesul de expediere a datelor prin încapsularea unei datagrame
false pentru a înşela dispozitivul mobil făcându-l să creadă că a fost transmisă o datagramă care nu va fi
transmisă.
29
Protecția împotriva atacurilor de tip Replay
În acest tip de atac, o a treia parte interceptează o datagramă, o reține o anumită perioadă şi apoi o
retransmite. Ar părea destul de inofensiv dacă nu este important factorul timp. Putem considera situația
în care un nod mobil se înregistrează la agentul de domiciliu, mai târziu se reîntoarce acasă şi se
dezînregistrează. Dacă un dispozitiv malițios capturează o copie a unei cereri de înregistrare
(Registration Request) şi o retransmite, agentul de domiciliu va decide că nodul mobil s-a deplasat din
nou şi va intercepta datagramele destinate nodului mobil.
Pentru a preveni un astfel de atac, în mesajele Registration Request şi Registration Reply este
utilizat câmpul Identificare (Identification). Fiecare cerere are un număr diferit de identificare, astfel
încât nodurile şi agenții pot deosebi mesajele originale de copii şi pot elimina orice datagramă
recepționată care repetă un număr de identificare deja întâlnit.
30
Capitolul 6
Protocolul Internet versiunea 6 – IPv6
Creşterea explozivă a Internetului a făcut ca IETF (Internet Engineering Task
Force) să ia în vedere, înca din anii ’90 o nouă versiune a Protocolului Internet care
să permită un număr ”nelimitat” de adrese chiar dacă s-ar face o alocare ineficientă
a spaţiului de adrese, să să micşoreze sau cel puţin să limiteze dimensiunea
tablelelor de rutare, să simplifice protocolul pentru a permite o procesare mai
rapidă a datagramelor, să acorde o importanţă mărită tipului serviciului, să permită
o mobilitate a hosturilor fără a impune o schimbare a adresei IP şi, nu în ultimul
rând să permită o coexistenţă cu vechiul protocol IPv4.
Pornind de la aceste obiective, IPv6 oferă următoarele facilităţi semnificative:
- un spaţiu de adrese imens, care se prevede a fi suficient, în condiţiile
existente de dezvoltare a Internetului, pentru cel puţin 30 de ani;
- adresare ierarhică şi unicitate globală a adresei bazată pe prefix şi nu pe
clase de adrese;
- un mecanism de autoconfigurare a interfeţelor de reţea;
- posibilitatea încapsulării proprii, precum şi a altor protocoale;
- clase de servicii care să facă distincţie între tipuri de date;
- dezvoltarea suportului de rutare multicast (preferat broadcastului);
- prezenţa unui mecanism de criptare şi autentificare;
- metode de tranziţie care să permită migrarea de la IPv4 la IPv6;
- metode de compatibilizare care să permită coexistenţa şi comunicarea cu
IPv4.
În IPv6, formal, sunt preferaţi termenii pachet în detrimentul datagramă şi
nod care semnifică orice sistem care rulează IPv6, fie că este host sau ruter.
Pentru îndeplinirea acestor deziderate, IETF a propus o serie de tehnici de
tranziţie până la implementarea noului protocol, a cărui adoptare s-a lovit, încă de
la început de inerţia şi împotrivirea proprietarilor de reţele care investiseră deja în
echipamente IPv4 şi nu au dorit o nouă investiţie masivă în noi echipamente.
Ca elemente de tranziţie, cele mai importante sunt stiva duală şi tunelarea.
Tunelarea “Tunneling”
Tunelarea este procedeul prin care, în momentul în care un pachet IPv6
ajunge, pe calea spre destinaţie, la o reţea care nu poate utiliza acest protocol, este
încapsulat într-un pachet IPv4, tranzitează reţeaua IPv4, iar la ieşirea din aceasta
este decapsulat şi îşi urmează drumul în forma originară. Dacă în urma încapsulării
se depăşeşte dimensiunea maximă acceptată de reţeaua accesată, nodul care ia
decizia încapsulării va trebui să realizeze şi fragmentarea noii datagrame.
Adresa sursă
Adresa destinaţie
32 biţi
superior. Mai este utilizat şi pentru a indica prezenţa unor extensii de antet
care ajută la furnizarea de informaţii suplimentare. Câteva valori posibile
şi semnificaţiile lor:
o 0 Antet cu opţiuni salt-cu-salt *
o 41 Antet
o 43 Antet de rutare IPv6 *
o 44 Antet de fragment IPv6 *
o 45 Protocol de Rutare Interdomenii
o 46 Protocol de Rezervare a Resurselor
o 50 Antet Încapsulare de securitate a încărcăturii utile *
o 51 Antet de autentificare IPv6 *
o 58 Pachet ICMPv6
o 59 Nu există antet următor *
o 60 Antet cu opţiuni destinaţie *
Valorile notate cu * corespund unor extensii de antete.
- Limită de salturi: este similar timpului de viaţă (TTL) al IPv4, dar acum se
măsoară în salturi, nu în secunde.
- Adresa sursă: un câmp de 128 biţi specificând adresa IPv6 a sursei.
- Adresa destinaţie: un câmp de 128 biţi specificând adresa IPv6 a
destinatiei.
Extensia antetelor
Orice pachet IPv6 porneşte cu antetul de bază care, de cele mai multe ori, este
singurul necesar pentru a face o livrare corectă a pachetului la destinaţie. Dacă sunt
necesare şi opţiuni suplimentare, se vor utiliza extensii de antete. Fiecare dintre
aceste extensii va avea primul octet ca identificator al tipului următorului antet.
Există anumite reguli după care se ataşează extensiile de antete:
- Lungimea unui antet variază, funcţie de tipul său, dar întotdeauna va fi
multiplu de 8 octeţi.
- Un tip de antet va fi prezent o singură dată în structura unui pachet.
- Extensiile se plasează într-o ordine specificată, fapt important pentru o
procesare eficientă. Ordinea în care apar este următoarea: IPv6 header,
Hop-by-Hop Options, Routing, Fragment, Authentication, Encapsulating
Security Payload, Destination Options, Upper layer. Nodurile
intermediare sunt interesate numai de informaţiile prezente în opţiunile
salt-cu-salt şi antetul de rutare. Odată obţinute aceste informaţii, nodurile
expediază mai departe pachetele. Pentru o prelucrare facilă, aceste extensii
urmează antetului de bază.
- Atunci când câmpul antet următor conţine o valoare care nu corespunde
unei extensii de antet se consideră terminate antetele IPv6 şi urmează
datele protocolului de nivel superior.
Există următoarele tipuri de extensii de antete:
Protocolul Internet versiunea 6 – IPv6 5
Adresarea IPv6
IPv6 utilizează adrese cu lungimea de 128 biţi, ceea ce duce la un număr
imens de adrese disponibile (o valoare al cărei sens poate fi înţeles este 50.000 de
adrese pe metrul pătrat din suprafaţa Pământului).
Sintaxa adresei IPv6 consideră cei 128 biţi (16 octeţi) ca fiind 8 numere
întregi fără semn, fiecare număr fiind scris cu 4 cifre hexazecimale; fiecare dintre
numere este separat de celelalte prin utilizarea a două puncte (:).
O adresă IPv6 poate fi:
FDE2:23ED:100E:11AC:1274:1A00:BC01:1234
FEC0:0000:0000:0000:0011:0000:0C12:3456
FFC0:0:0:0:11:0:C12:3456
FFC0::11:0:C12:3456
Parte din
Prefix Adresa de Lungimea
Alocare spaţiul de
(în binar) început măştii (biţi)
adrese
Rezervat 0000 0000 0::/8 8 1/256
Rezervat NSAP 0000 001 200::/7 7 1/128
Rezervat IPX 0000 010 400::/7 7 1/128
Adrese unicast globale 001 2000::/3 3 1/8
Adrese unicast link-local 1111 1110 10 FE80::/10 10 1/1024
Adrese unicast site-local 1111 1110 11 FEC0::/10 10 1/1024
Multicast 1111 1111 FF00::/8 8 1/256
Alocare totală 15%
Adrese unicast
48 16 64
Prefix pentru rutare globală Reţea ID Identificator interfaţă
3 13 32 16 64
001 TLA ID NLA ID SLS ID Identificator Interfaţă
Acest tip de adrese, având prefixul 1111 1110 10, sunt destinate utilizării
pe o legătură pentru funcţii de autoconfigurare a adresei şi descoperirea vecinilor.
Presupunând că este cazul unei reţele de mici dimensiuni, realizată din câteva
sisteme şi fără niciun ruter, pentru o bună funcţionare sunt suficiente adrese de tip
link local. Formatul unei astfel de adrese este prezentat în Figura 6.7.
În figura 6.7 s-au pus în evidenţă prefixul acestui tip de date şi faptul că toţi
ceilalţi biţi până la identificatorul de interfaţă sunt poziţionaţi în zero.
Ca exemplu, un sistem care are o interfaţă cu adresa MAC
00:FC:02:CD:12:34,
va avea ca identificator de interfaţă
00FC:02FF:FECD:1234
rezultând adresa link local
FE80:0000:0000:0000: 00FC:02FF:FECD:1234
care scrisă sub formă condensată ia forma:
FE80:: FC:2FF:FECD:1234
Acest tip de adrese sunt menite să înlocuiască adresele private din IPv4
utilizate în reţele interne. Acestea pot fi deci utilizate în reţele care nu sunt
conectate la Internet, nefiind necesară înregistrarea lor la niciun for, având un
format care oferă o modalitate facilă de substituire a lor cu adrese unicast globale
în situaţia în care se doreşte conectarea la Internet.
Formatul acestui tip de adrese este prezentat în Figura 6.8.
După cum se observă, dimensiunea câmpului de subreţea este de 16 biţi, ceea
ce face ca numărul posibil de subreţele care pot fi create de către o organizaţie
neconectată la Internet în cadrul reţelei proprii este de peste 64.000.
Ca şi în situaţia adreselor private din IPv4, un ruter al reţelei interne conectat
la Internet nu va permite ieşirea de pachete având ca adresă sursă o adresă de tip
site local. Va fi permisă numai retransmiterea pachetelor între subreţele ale reţelei
interne.
10 ARHITECTURI DE REŢELE ŞI INTERNET
Adresa nespecificată
Adrese multicast
8 4 4 112
Prefix Flaguri Scop Identificator Grup
Adresa anycast
trimis la cea mai apropiată interfaţă (distanţa fiind interpretată de către protocolul
de rutare funcţie de metrica utilizată).
O adresă anycast se găseşte în acelaşi spaţiu de adrese cu al adreselor unicast.
Cele două tipuri de adrese nu pot fi deosebite, având acelaşi format. De aceea,
trebuie avute în vedere câteva restricţii atunci când facem o configurare anycast:
- când se atribuie o adresă anycast unei interfeţe, adresa trebuie configurată
explicit ca o adresă anycast;
- o adresă anycast nu poate fi atribuită unui host, ci numai unui ruter.
- o adresă anycast nu poate fi adresa sursa într-un pachet.
Scopul adresei de tip anycast este de a asigura flexibilitate acolo unde e
necesar un anume serviciu ce poate fi asigurat de mai multe servere, fără a avea
importanţă care din ele va răspunde cererii.
3.1.1 Porturi
Fiecare proces care necesită comunicarea cu un alt proces se identifică în cadrul unei
stive TCP/IP printr-un port sau mai multe. Un ID port este un număr reprezentat pe 16 biţi
utilizat de către un protocol capăt la capăt pentru a identifica cărui protocol de nivel superior
sau program (proces) de aplicaţie trebuie să-i livreze mesajele recepţionate. Există două tipuri
de porturi:
- Porturi consacrate: aceste porturi aparţin unor servere standard, cum ar fi serverul
Telnet care foloseşte portul 23. Numerele asociate porturilor consacrate aparţin
intervalului de la 1 la 1023. De obicei, numerele porturilor consacrate sunt impare,
deoarece în sistemele iniţiale, când s-au introdus aceste porturi, se impunea utilizarea
unei perechi număr impar-număr par pentru porturile implicate în transferuri
bidirecţionale. Cele mai multe servere necesită numai un singur port. Excepţie fac
serverul BOOTP, care foloseşte două porturi (67 şi 68) şi serverul FTP, care foloseşte
două porturi (20 şi 21). Porturile consacrate sunt controlate şi alocate de către
Autoritatea de Asociere a Numerelor în Internet, IANA (Internet Assigned Number
Authority) şi în cele mai multe sisteme nu pot fi alocate decât proceselor sistem sau
programelor executate de utilizatorii cu drepturi speciale. Porturile consacrate permit
clienţilor să găsească serverele fără a necesita informaţii de configurare suplimentare.
dintre clienţi este conţinut în mesajul UDP/TCP transmis către server. Fiecărui proces
client i se asociază un număr de port, de către sistemul pe care acesta rulează, pentru
un interval de timp nedefinit, cât necesită procesul client să transfere datele. Numerele
porturilor temporare au valori mai mari decât 1023, uzual fiind în intervalul de la 1024
la 65535. Porturile temporare nu sunt controlate de IANA şi pot fi utilizate în oricare
sistem, de către orice program dezvoltat de către utilizator. Confuziile posibile care
pot apare atunci când două aplicaţii diferite încearcă să utilizeze aceleaşi numere de
porturi, într-un acelaşi sistem, se pot evita prin configurarea acelor aplicaţii să solicite
un port disponibil în stiva locală TCP/IP. Deoarece numărul de port este alocat
dinamic, acesta poate fi diferit de la o cerere la alta a aplicaţiei. Protocoalele de nivel
transport UDP, TCP şi ISO TP-4 utilizează acelaşi principiu de identificare a
porturilor. Aproximativ aceleaşi numere de porturi sunt utilizate pentru identificarea
aplicaţiilor care oferă aceleaşi servicii în stivele cu UDP, TCP şi ISO TP-4.
Observaţie: În mod uzual, un server foloseşte fie TCP, fie UDP, dar există şi excepţii. Spre
exemplu, aplicaţia sistem de nume pentru domenii, DNS (Domain Name System) utilizează
atât portul 53 al UDP, cât şi portul 53 al TCP.
3.1.2 Socket-uri
Interfaţa de tip socket reprezintă una dintre interfeţele de programare a aplicaţiei, API
(Application Programming Interfaces) cu protocoalele de comunicaţie. Destinate pentru a
reprezenta interfeţele de programare pentru comunicaţii, socketurile API au fost introduse
pentru prima data în versiunea Unix BSD 4.2 (Berkeley Software Distribution). Deşi nu sunt
standardizate socketurile API BSD au devenit un standard implicit pentru implementarea
socketurilor reţelelor TCP/IP.
Se definesc următorii termeni:
- Un socket reprezintă un tip special de identificator de fişier, care este utilizat de un
proces pentru a solicita serviciile de reţea de la un sistem de operare;
- Adresa unui socket este reprezentată de tripletul: <protocol, adresă locală, port local>.
Spre exemplu, în versiunea 4 a stivei TCP/IP se utilizează următoarea adresă a
socketului: <tcp, 192.168.14.234, 8080>;
- O conversaţie reprezintă o legătură de comunicaţie dintre două procese;
- O asociere reprezintă cvintetul care specifică complet cele două procese ce realizează
o conexiune: <protocol, adresă locală, port local, adresă distantă, port distant>. Spre
exemplu, în versiunea 4 a stivei TCP/IP se utilizează următoarea asociere: <tcp,
192.168.14.234, 1500, 192.168.44, 22>;
- O semiasociere reprezintă una dintre următoarele două triplete, care specifică numai
jumătate de conexiune: <protocol, adresă locală, port local> sau <protocol, adresă
distantă, port distant>. Semiasocierea este deasemenea numită socket sau adresă de
transport. Prin urmare un socket este un capăt al conexiunii de comunicaţie, care poate
fi denumit sau adresat într-o reţea.
Două procese comunică prin socketuri TCP. Modelul de socket oferă unui proces o
conexiune duplex-simultan sub formă de flux de octeţi, cu un alt proces. Aplicaţia nu trebuie
să se ocupe cu administrarea acestui flux de octeţi, deoarece aceste facilităţi sunt furnizate de
TCP.
TCP utilizează acelaşi principiu de administrare a porturilor ca şi UDP pentru a realiza
multiplexarea de fluxuri. Ca şi UDP, TCP utilizează porturile consacrate şi temporare. Fiecare
capăt al unei conexiuni TCP are un socket care poate fi identificat prin tripletul <TCP, adresă
IP, număr port>. Dacă două procese comunică peste TCP, atunci acestea au la dispoziţie o
Arhitecturi de Reţea şi Internet 3
conexiune logică care este identificată unic de către cele două socketuri implicate, mai exact
de combinaţia <TCP, adresă IP locală, port local, adresă IP distantă, port distant>. Procesele
de tip server pot controla mai multe conexiuni simultane prin intermediul aceluiaşi port.
Specificarea portului sursă este opţională. Acest port va fi utilizat ca port destinaţie
pentru datagramele de răspuns. Dacă nu se specifică acest port câmpul respectiv din antet se
completează cu biţi 0. Este opţională, de asemenea, şi utilizarea secvenţei de verificare care,
în caz că se foloseşte, ia în considerare nu numai antetul (ca la IP) ci şi câmpul de date.
Lungimea mesajului UDP este calculată în număr de octeţi şi include antetul.
Secvenţa de verificare se calculează pe un câmp mai mare decât cel ce corespunde
mesajului UDP. Pentru a crea posibilitatea de a verifica la recepţie că mesajul UDP a ajuns la
destinaţia corectă, secvenţa de verificare se calculează pentru un ansamblu format din mesajul
UDP şi antetul său precedate de un pseudoantet care conţine adresele de reţea ale sursei şi
destinaţiei, protocolul şi lungimea mesajului UDP. Acest pseudoantet nu se transmite dar la
recepţie protocolul UDP calculează secvenţa de verificare pe baza mesajului UDP recepţionat
şi a adreselor sursă şi destinaţie, disponibile în antetul pachetului IP care a transportat mesajul
respectiv. Dacă secvenţa asfel calculată coincide cu cea din mesajul UDP rezultă că mesajul a
ajuns la destinaţia (sistem şi port) desemnată de sursă. Formatul pseudoantetului IP este
ilustrat în figura 3.3.
Există mai multe tipuri de segmente, funcţie de scopul în care sunt folosite: transfer
date, stabilire conexiune, eliberare conexiune, numai pentru confirmări (fără transfer date),
transfer date în regim de urgenţă etc. Specificarea tipului de segment se face prin biţii notaţi
U, A, P, R, S şi F. Aceşti biţi au următoarele semnificaţii:
- U (URG) – specifică semnificaţia importantă a câmpului de pointer urgent în cadrul
acestui segment;
- A (ACK) – specifică semnificaţia importantă a câmpului de confirmare în cadrul
acestui segment;
- P (PSH) – Funcţia de forţare (push) a segmentelor. În unele situaţii, o aplicaţie trebuie
să fie informată că toate datele transferate la nivelul TCP au fost transmise către
destinaţie. Din acest motiv s-a introdus funcţia de forţare a transmisiei segmentelor
TCP rămase încă în unităţile de memorie, către sistemul destinaţie. Închiderea normală
a conexiunii va determina deasemenea forţarea datelor către destinaţie;
- R (RST) – Resetarea conexiunii;
- S (SYN) – Sincronizează numerele de secvenţă;
- F (FIN) – Oprirea transferului de date de la emiţător.
Câmpul “pointer urgent” indică poziţia datelor care se transmit în regim de urgenţă în
fluxul general al datelor.
În câmpul “fereastră” se specifică numărul de octeţi, începând cu cel menţionat în
câmpul de confirmare, pe care transmiţătorul îi poate accepta (pe sensul invers de
transmisiune).
Secvenţa de verificare este folosită pentru a verifica integritatea întregului segment
(antet şi date) dar, ca şi în cazul protocolului UDP, pentru a da posibilitatea receptorului să
verifice că segmentul a ajuns la adresa de destinaţie corectă, se utilizează şi un pseudoantet
având formatul din figura 3.7. Pseudoantetul nu se transmite, nu face deci parte din segment,
dar se ataşează segmentului numai pentru calculul secvenţei de verificare. El conţine adresele
de reţea (IP) ale sursei şi destinaţiei, identificatorul protocolului şi lungimea totală a
segmentului TCP, inclusiv antetul TCP. Identificatorul protocolului este reprezentat de
valoarea trecută în câmpul rezervat tipului de protocol din formatul utilizat de nivelul imediat
inferior. Pentru pachetele IP care transportă segmente TCP această valoare este 6.
Protocolul TCP foloseşte câmpul “opţiuni” pentru negocieri între cele două capete ale
conexiunii. Printre altele, prin aceste negocieri i se permite receptorului să specifice
dimensiunea maximă a segmentelor pe care el o poate suporta, aspect foarte important, spre
exemplu, atunci când un mic calculator personal, cu o capacitate a memoriei tampon de
câteva sute de octeţi, este conectat la un supercalculator.
Ca şi în cazul opţiunilor datagramelor IP, opţiunile pentru segmentul TCP pot fi
specificate prin una din metodele:
- un singur octet care conţine numărul opţiunii;
8 3. Nivelul Transport
Există şapte opţiuni posibile pentru segmentele TCP, care sunt prezentate în tabelul 3.1:
Opţiunea de ajustare a ferestrei. Ambele capete ale conexiunii trebuie să transmită opţiunea
de scalare a ferestrei în cadrul segmentelor SYN pentru a permite ajustarea dimensiunii
ferestrei în sensul de transmisie. Transmiterea acestei opţiuni extinde dimensiunea ferestrei
TCP la o reprezentare pe 32 de biţi. Dimensiunea ferestrei reprezentată pe 32 de biţi este
definită prin intermediul unui factor de scalare (transmis în segmentul SYN) faţă de fereastra
standard reprezentată pe 16 biţi. Receptorul acestui mesaj modifică dimensiunea ferestrei de
la valoarea standard pe 16 biţi prin adăugarea factorului de scalare. Această opţiune poate fi
utilizată numai în faza de iniţializare a conexiunii. Astfel, dimensiunea ferestrei nu se mai
poate schimba pe toată durata menţinerii conexiunii.
Arhitecturi de Reţea şi Internet 9
Opţiunea de permitere a SACK. Această opţiune este introdusă numai atunci când pe
conexiunea TCP respectivă se utilizează confirmări selective (SACK – Selective
ACKnowledgement). Pentru această opţiune câmpul de date opţiune nu este utilizat (se
transmit numai tipul opţiunii şi lungimea)
transferul este autorizat (acceptat) şi dacă ambele părţi sunt gata pentru acest transfer.
Conexiunea fiind stabilită, cele două programe de aplicaţie sunt informate că transferul
datelor poate să înceapă. Programul de aplicaţie transmiţător transferă datele spre nivelul
transport sub forma unui flux de biţi, împărţit în octeţi. Acelaşi flux, în aceeaşi ordine a
octeţilor, este primit de programul de aplicaţie în sistemul de destinaţie.
La nivelul transport fluxul octeţilor primiţi de la programe de aplicaţie este împărţit în
segmente, care sunt apoi transmise în reţea spre destinaţie. Fiecare segment, format dintr-un
număr oarecare de octeţi, este transportat în reţea de un pachet IP. Conexiunile asigurate de
TCP/IP la acest nivel sunt conexiuni duplex, ceea ce înseamnă că cele două procese îşi pot
transmite date simultan unul către celălalt. Un avantaj al acestei conexiuni duplex constă în
faptul că se poate transmite informaţia de control (al erorii, al fluxului) înapoi către sursă în
pachete ce transferă datele în sens opus, reducându-se astfel traficul în reţea (metoda piggy-
back). Pentru controlul fluxului şi al erorii se utilizează temporizatoare la emisie şi confirmări
pozitive la recepţie, ACK (Positive acknowledgement). Atunci când se transmite un segment
cu un anumit număr de secvenţă se porneşte la emisie un temporizator. Dacă până expiră
temporizatorul nu soseşte o confirmare ACK, atunci segmentul este retransmis automat.
Deoarece protocolul TCP oferă un serviciu cu conexiune, conexiunea ce se stabileşte
pentru transferul datelor este identificată printr-o pereche de puncte de capăt (porturi de
protocol). În felul acesta, acelaşi port de protocol poate fi simultan capăt al mai multor
conexiuni. Spre exemplu, un sistem poate permite accesul concurenţial la serviciul său de
poştă electronică, acceptând pe un acelaşi port de protocol mesajele transmise simultan de la
mai multe calculatoare, cu fiecare dintre acestea având stabilită o altă conexiune, identificată
distinct de celelalte. Protocolul TCP realizează multiplexarea conexiunilor pe baza numerelor
porturilor, aşa cum se realizează şi la UDP.
Pentru stabilirea conexiunii, un proces (serverul, de obicei) transmite o cerere de
deschidere pasivă a conexiunii (passive OPEN), iar celălalt proces transmite o cerere activă
(active OPEN). Cererea pasivă nu este luată în considerare până când celălalt proces nu
încearcă să se conecteze la primul printr-o cerere activă. În figura 3.11 este ilustrat faptul că
pentru stabilirea conexiunii este necesar să se facă un schimb de trei segmente TCP între cele
două procese.
rândul său cu un segment TCP care are bitul FIN setat cu 1. O conexiune se consideră a fi
închisă numai atunci se încheie transmisiunea în ambele sensuri.
Diferitele stări ale unei conexiuni TCP sunt enumerate în continuare:
- LISTEN: Aşteptarea unei cereri de conexiune de la un alt nivel TCP;
- SYN-SENT: S-a transmis un segment de sincronizare SYN, iar TCP aşteaptă un
segment SYN de răspuns;
- SYN-RECEIVED: S-a recepţionat un segment SYN, s-a transmis un segment SYN,
iar TCP aşteaptă un segment de confirmare ACK;
- ESTABLISHED: Schimbul celor trei mesaje de stabilire a conexiunii s-a încheiat;
- FIN-WAIT-1: Aplicaţia locală a emis o cerere de închidere CLOSE. TCP a transmis
FIN şi aşteaptă un ACK sau un FIN;
- FIN-WAIT-2: S-a transmis un FIN şi s-a recepţionat un ACK. TCP aşteaptă un FIN de
la nivelul TCP corespondent;
- CLOSE-WAIT: TCP a recepţionat un FIN şi a transmis un ACK. Nivelul TCP
aşteaptă o cerere ce închidere de la aplicaţia locală înainte de a transmite FIN;
- CLOSING: S-a transmis un FIN, s-a recepţionat un FIN şi s-a transmis un ACK. TCP
aşteaptă un ACK pentru segmentul FIN pe care l-a transmis;
- LAST-ACK: S-a recepţionat un FIN şi un ACK, iar un segment FIN a fost transmis.
TCP aşteaptă un ACK;
- TIME-WAIT: FIN a fost recepţionat şi confirmat cu ACK, iar TCP aşteaptă două
MSL pentru a şterge conexiunea din tabelă;
- CLOSED: Indică faptul că o conexiune a fost eliminată din tabela de conexiuni.
Pentru o conexiune transmiţătorul alocă trei numărătoare (N1, N2, N3) care vor preciza
în orice moment poziţia ferestrei glisante. Numărătorul N1 marchează începutul ferestrei
glisante (limita inferioară), separând octeţii emişi şi pentru care s-au primit confirmările de
12 3. Nivelul Transport
recepţie de cei pentru care nu s-au primit confirmări. Numărătorul N3 indică sfârşitul ferestrei
(limita superioară), adică numărul de ordine al ultimului octet ce poate fi inclus într-un
segment ce urmează a fi transmis fără să mai vină vreo confirmare de recepţie. Numărătorul
N2 marchează în interiorul ferestrei limita ce separă octeţii deja transmişi de cei încă
netransmişi.
Deasemenea, receptorul va folosi o fereastră asemănătoare pentru a reconstitui fluxul
octeţilor emişi. În acelaşi timp, având în vedere că protocolul TCP stabileşte conexiuni duplex
şi că pe fiecare sens de transmisiune se utilizează câte o fereastră de emisie şi una de recepţie,
rezultă că în fiecare capăt al conexiunii vor exista două ferestre, una glisând pe fluxul datelor
ce se emit iar cealaltă pe fluxul datelor ce se recepţionează.
Protocolul TCP permite modificarea dimensiunii ferestrei glisante pentru a reliza un
control al fluxului. Fiecare confirmare, pe lângă specificarea numărului de octeţi recepţionaţi
(în ordine), conţine şi o indicaţie privind numărul de octeţi pe care receptorul îi poate accepta,
dependent de mărimea spaţiului liber din memoria tampon a acestuia. Transmiţătorul îşi va
modifica dimensiunea ferestrei de emisie corespunzător acestei indicaţii a receptorului, ceea
ce va conduce şi la creşterea eficienţei transmisiei prin reducerea simţitoare a numărului
pachetelor pierdute, rejectate de receptor şi, în consecinţă, reducerea şi a numărului
retransmiterilor.
În figura 3.13 se ilustrează un exemplu de transmisie TCP unde dimensiunea ferestrei
este de 1500 octeţi şi se utilizează segmente de 500 de octeţi. În acest exemplu, apare o
problemă deoarece transmiţătorul a aflat că segmentul 2 s-a pierdut sau s-a recepţionat cu
erori, dar nu ştie nimic despre segmentele 3 şi 4. Transmiţătorul ar trebui să retransmită
segmentele 3 şi 4, deoarece acestea se află încă în fereastra curentă. Referitor la această
situaţie, există două scenarii posibile:
- segmentul 3 a fost recepţionat corect şi din acest moment nu se cunoaşte starea
recepţiei segmentului 4. Este posibil ca şi acesta să fi fost recepţionat corect, dar
confirmarea ACK nu a ajuns încă sau ACK s-a pierdut;
- segmentul 3 s-a pierdut şi se transmiţătorul primeşte confirmarea ACK 1500 după
transmiterea segmentului 4.
care este utilizată pentru valoarea temporizatorului atunci când se transmite următorul
segment.
- iniţializare lentă;
- evitarea congestiei;
- retransmisie rapidă;
- recuperare rapidă.
În continuare se descriu pe scurt aceşti patru algoritmi.
Iniţializarea lentă (Slow start). Implementările TCP mai vechi deschide o conexiune prin
introducerea de la transmiţător a mai multor segmente în reţea, până când se atinge
dimensiunea ferestrei anunţate de receptor. Deşi totul este în regulă atunci când sistemele se
află în acelaşi LAN, atunci când există ruteri între cele două sisteme şi se utilizează legături
lente atunci pot apărea probleme. Unii ruteri intermediari nu pot face faţă situaţiei şi atunci
14 3. Nivelul Transport
Evitarea congestiei. Presupunerea care se face în cazul acestui algoritm este că pierderea
pachetelor cauzată de reţea este foarte mică (mult mai mică de 1%). Astfel, pierderea unui
pachet va determina semnalizarea congestiei undeva în reţea, între sursă şi destinaţie. Există
două indicatoare ale pierderii unui pachet:
- expirarea unui temporizator;
- recepţionarea unor confirmări ACK duplicat.
Evitarea congestiei şi deschiderea lentă sunt algortimi independenţi, care au obiective diferite.
Totuşi, atunci când se produce o congestie, TCP va trebui să scadă rata de transmisiune în
reţea a segmentelor şi să utilizeze iniţializarea lentă pentru a reporni transmisiunea. În practică
aceşti doi algoritmi sunt implementaţi împreună.
Evitarea congestiei şi iniţializarea lentă necesită menţinerea a două variabile pentru fiecare
conexiune:
- o fereastră de congestie, notată cu cwnd;
- un prag de iniţializare lentă, notat cu ssthresh.
Algoritmul rezultat prin combinarea celor doi algoritmi de mai sus funcţionează astfel:
1. Iniţializarea unei anumite conexiuni presupune setarea cwnd cu valoarea de un
segment şi ssthresh cu valoarea 65535 octeţi;
2. Rutina TCP de ieşire nu transmite niciodată mai mult decât valoarea cea mai mică
dintre cwnd şi fereastra anunţată de receptor;
3. Atunci când se produce o congestie (expirare timp sau ACK duplicat), jumătate din
dimensiunea ferestrei curente este salvată în ssthresh. În plus, dacă aceeaşi congestie e
indicată de expirarea timpului, cwnd este setat la un segment;
4. Atunci când datele noi sunt confirmate de către celălalt capăt se creşte cwnd, dar
valoarea cu care creşte aceasta depinde dacă TCP realizează o iniţializare lentă sau
evitarea congestiei. Dacă cwnd este mai mic sau egal cu ssthresh, atunci TCP lucrează
cu iniţializarea lentă; în caz contrar, TCP rulează cu evitarea congestiei.
Se utilizează iniţializarea lentă până când se ajunge la jumătate din valoarea la care
ajunsese când s-a produs congestia (deoarece a memorat jumătate din dimensiunea
ferestrei care a cauzat problema, în pasul 3), iar apoi se comută pe modul de evitare a
congestiei. Iniţializarea lentă începe cu cwnd având valoarea de un segment, iar apoi se
incrementează cu un segment la recepţionarea fiecărei ACK. Aşa cum s-a menţionat
anterior, fereastra creşte exponenţial: se trimite un segment, apoi două, apoi patru, etc.
Evitarea congestiei stabileşte ca cwnd să fie incrementată cu dim_segm* dim_segm /cwnd
de fiecare dată când se recepţionează o ACK, unde dim_segm reprezintă dimensiunea
segmentului, iar cwnd se măsoară în octeţi. Aceasta este o creştere liniară a cwnd, prin
comparaţie cu creşterea exponenţială în cazul iniţializării lente. Creşterea cwnd ar trebui
să fie cel mult cu un segment pentru fiecare interval de propagare dus-întors (indiferent
câte ACK sunt recepţionate în acest interval), în timp ce iniţializarea lentă incrementează
cwnd cu numărul de ACK recepţionare în acest interval de propagare dus-întors.
În figura 3.15 se ilustrează cum lucrează împreună algoritmul de iniţializare lentă şi cel de
evitare a congestiei.
16 3. Nivelul Transport
Deoarece TCP nu poate identifica dacă o ACK duplicat este cauzată de pierderea unui
segment sau doar de o reordonare a segmentelor, acesta se va aştepta să recepţioneze un
număr redus de confirmări ACK duplicate. Se presupune că dacă este doar cazul unei
Arhitecturi de Reţea şi Internet 17
reordonări a segmentelor, atunci se vor produce una sau două ACK duplicate până când va fi
procesat segmentul reordonat, care va genera şi el o nouă ACK. Dacă se recepţionează trei sau
mai multe ACK duplicate în ordine, aceasta înseamnă că un segent a fost pierdut. Atunci,
TCP va retransmite segmentele ce par să lipsească, fără a mai aştepta expirarea
temporizatorului de retransmisie. În figura 3.16 se ilustrează algoritmul de retransmisie
rapidă.
Page 1 of 29
Să analizăm un exemplu care să ilustraze importanta sistemului de nume pentru utilizatorul
uman. Dacă presupunem că a apărut o disfunctionalitate în sistemul de nume ( nu
functionează o parte din Domain Name System (DNS)) care furnizează serviciul de nume în
Internet. Tehnic, DNS nu este necesar pentru Internet, deoarece toate comunicatiile utilizează
adresarea IP. Aceasta înseamnă că, desi ti se pare normal să accesezi site-ul CNN ca un site
web www.cnn.com, poti utiliza si adresa IP 64.236.16.20 dacă DNS nu functionează.
Problema care apare este aceea că probabil nu stii care este adresa IP a site-ului web CNN,
asa cum nu o stiu majoritatea celor care accesează site-ul. Este posibil să doresti informatii nu
numai de pe site-ul CNN, dar si de pe alte site-uri. Apare dificultatea retinerii adreselor
numerice chiar si pentru un număr mic din imensul număr de site-uri din Internet. De fiecare
dată când vei dori să accesezi o resursă va trebui să cauti personal (manual) adresa sa, asa
cum se vede în Figura 9.1.
Când nu există nici un sistem de nume, utilizatorul trebuie să cunoască adresa oricărui
dispozitiv pe care doreste să îl acceseze în inter-retea. Deoarece majoritatea dintre utilizatori
au o memorie a numerelor limitată, va trebui, de fiecare dată să apeleze la o căutare manulă,
ineficientă, de adresă
Page 2 of 29
Este mult mai usor de reamintit numele unei resurse; dacă există un sistem de nume
functional, va trebui ca utilizatorul să introducă numele dispozitivului si sistemul de nume va
converti numele într-o adresă , ca în Figura 9.2.
Când o inter-retea este dotată cu un sistem de nume, utilizatorul nu mai trebuie să cunoască
adresa IP a dispozitivului pentru a îl accesa. Trebuie introduc numai nemele, acesta este
convertit automat de către sistemul de nume în adresă.Sistemul va oferi adresa software-ului
client care o va folosi pentru a accesa resursa cerută ca si când utilizatorul ar fi introdus-o
direct
Page 3 of 29
domiciliu cu două-trei computere nu are nevoie de un sistem de nume. Acesta devine esential
pentru mii de dispozitive.
- Complexitatea si mărimea adresei. Cu cât este mai complexă schema de adresare, sau cu cât
sunt mai extinse numerele utilizat, cu atât devin numerele mai greu de retinut.
- Priceperea utilizatorului. La începuturile retelisticii era un număr mic de ingineri bine
pregătiti si acestia pur si simplu memorau numerele masinilor cu care lucrau zilnic. În zilele
noastre cu milioane de utilizatori profani, nu este rezonabil să presupui că acestia vor retine
adrese de dispozitive.
Privind aceste trei motive se poate observa că tendinta în retele este de a creste
importanta sistemelor de nume. Retelele, fie că sunt private sau publice, devin tot mai întinse,
apar tot mai multi utilizatori, inclusiv persoane fără o pregătire tehnică. De asemenea, există
tendinta de a trece de la adrese mici la altele mai mare. Cel mai bun exemplu îl constituie
tendinta de evolutie a Protocolului Internet. Cât de important este DNS pentru adresele de 32
de biti din Ipv4, cu atât mai mult va fi important atunci când vor fi utilizate adresele de 128 de
biti din Ipv6.
Page 4 of 29
9.1.3. Relatiile dintre functiile sistemului de nume
Spatiul numelor este mai mult decât o functie descriptivă; este o definire a modului în
care lucrează numele în sistem. Inregistrarea numelui si rezolutia sunt functii mai active,
fiecare sistem de nume incluzând una sau mai multe proceduri specifice pentru a le realiza.
Înregistrarea si rezolutia numelui sunt oarecum complementare, tehnicile de înregistrare fiind
asociate cu metode particulare de rezolutie. Ambele metode depind de spatiul numelor si în
particular de arhitectura sa. Aceste relatii sunt ilustrate simplificat în Figura 9.3.
Procesele de înregistrare si rezolutie pot fi mai simple sau mai complicate, functie de
sistemul de nume utilizat. Sisteme de nume simple sunt operate în general manual, sunt usor
de utilizat si de înteles si cel mai bine utilizate în retelele mici. Retelele mari, mai complexe,
inter-retelele cer un sistem de nume mai sofisticat, care să lucreze mai putin cu interventia
administratorului si să fie scalabil (expandabil) pe masură ce sunt introduse masini noi în
retea.
Spatiul numelor defineste structura sistemului si regulile de creare a acestora. Spatiul numelor
este utilizat ca bază pentru înregistrarea numelui care defineste modul de mapare (cartare)
dintre nume si adrese. Atunci când un utilizator accesează un dispozitiv prin nume, metoda
rezolutia numelui va fi utilizată pentru a consulta spatiul numelor, a determina adresa asociată
cu numele si apoi pentru a converi numele în adresă.
Page 5 of 29
9.1.4. Spatiul numelor arhitectura numelor
Page 6 of 29
Figure 9.4: Flat Name Architecture (Flat Name Space)
Nu există nici o structură care să organizeze numele sau care să dicteze cum să fie construite.
Din punct de vedere logic, fiecare dispozitiv este egalul oricărui altuia.
Page 8 of 29
dispune cum vor fi înregistrate numele în diferite părti ale ierarhiei, si cum va fi
delegată autoritatea.
Page 9 of 29
ierarhiei, atunci va fi utilizată pentru înregistrare o baza de date distribuită, fiecare autoritate
delegată având sub administrare propria bază de date care descrie sectiunea sa din ierarhie.
Aceasta este cea mai sofisticată tehnică, si este normal asociată cu sisteme de nume ierarhice,
ca DSN. Printre avantajele ei pot fi enumerate flexibilitatea, fiabilitatea si distribuirea
efortului de administrare a bazelor de date. Principalul punct negativ îl reprezintă
complexitatea.
9.1.6. Tehnici de rezolutie a numelui si elemente functionale ale unui sistem de rezolutie
a numelor.
Utilizarea unui sistem de nume crează două sisteme de identificare paralele pentru
computere: numerele utilizate de masini si numele utilizate de oameni. Sarcina unui sistem de
nume este de a integra cele două scheme. Întegistrarea numelui permite oamenilor să specifice
ce masină utilizează un anumit nume. Acesta este numai jumătate din procesul care are loc;
avem nevoie de o cale prin care masinile să utilizeze numele dat de om si să îl translateze într-
o adresă reală care poate fi utilizată în comunicatii. Această a doua parte este numită rezolutia
numelui.
Rezolutia numelui, numită uneori si translatarea numelui, mapare, legare, este cel mai
cunoscut aspect al sistemelor de nume. Spatiul numelui este în general setat o singură dată, iar
înregistrarea numelui apare rar, numai atunci când trebuie create sau schimbate nume. În
opozitie, fiecare utilizator al unui sistem de nume impune masinii pe care lucrează să realizeze
rezolutia numelui poate de sute sau mii de ori pe zi.
Page 10 of 29
Această tehnică este utilizată în general în conjunctie cu înregistrarea în baza de date.
Este cea mai complexă metodă de rezolutie, dar este si cea mai eficientă si singura care poate
functiona corespunzător într-un sistem de nume larg, distribuit, ierarhizat.
Cele trei funcţii de bază ale sistemului de nume, implementate de DNS sunt:
Page 11 of 29
Figura 9.6: Funcţiile DNS
Înregistrarea numelui
Înregistrarea numelui este utilizată pentru a introduce nume individuale într-o bază de
date DNS distribuită. DNS utilizează un aranjament ierarhizat al autorităţii, complementar
spaţiului ierarhizat al numelor. O autoritate centrală determină întreaga structură a spaţiului
numelor şi administrează înregistrarea numelor la nivel înalt. Autoritatea este apoi delegată la
diferite organizaţii pentru a administra diferite părţi ale spaţiului numelor. Procesul de
înregistrare, problemele şi conflictele sunt controlate de către un set universal de politici.
Rezoluţia numelui
DNS utilizează un mecanism de rezoluţie a numelui puternic, distribuit, de tip client-
server. Procesul de rezoluţie este implementat utilizând două elemente software de bază, care
joacă rolul de serever şi client, numite servere şi name resolvers.
Name servers
DNS name servers sunt programe speciale care rulează pe servere hardware care sunt
esenţa DNS. Serverele sunt menţinute de organizaţii care au un control administrativ asupra
unor părţi din spaţiul numelor şi conţin înregistrări de resurse (resource records) care descriu
nume, adrese şi alte caracteristici ale acelor porţiuni ale spaţiului numelor. Ca urmare,
serverele sunt organizate într-o ierarhie analoagă celei a spaţiului numelor. Principala sarcină
Page 12 of 29
a serverelor de nume este de a recepţiona cereri pentru rezoliţia numelor şi de a răspunde cu
datele cerute unei baye de date, sau cu numele unui alt server de nume care va conduce către
informaţia cerută. Serverele de nume sunt responsabile şi de datele din cache sau alte sarcini
administrative care asigură o operare eficientă a sistemului.
Name resolvers
Name resolvers sunt în mod uzual clienţi în procesul de rezoluţie a numelui. Când un
utilizator face referinţă la un nume într-o aplicaţie de reţea, numele este pasat resolverului
care va înainta o cerere către server. Funcţie de configurare, pot fi necesare mai multe cereri şi
vor fi combinate mai multe procese de rezoluţie diferite pentru a găsi informaţia dorită.
Page 13 of 29
Figura 9.7: Arborele spatiului numelor DNS si terminologia folosită
Vîrful spaţiului numelor DNS este rădăcina şi nu are un nume. Zona colorată reprezintă o
ramură. Ramura conţine mai multe subramuri. Nodurile verzi reprezintă noduri frunză.
Page 14 of 29
Figura 9.8: DNS Name Space “Family Tree”
Diagrama este similară celei din Figura 9.7, dar nodurile sunt reprezentate prin terminologia
orientată pe familie.
Fiecare nod are o etichetă în spaţiul numelor DNS (cu excepţia rădăcinii, care are eticheta
null). Domeniul numelui pentru un nod se construieşte prin simpla punere în ordine a
etichetelor de la vârful arborelui în jos înspre domeniul individual, mergând de la dreapta la
stânga, separând fiecare etichetă prin punct.
Page 16 of 29
9.2.1.5. Fully qualified domain names (FQDNs)
Considerăm o structură internă tipică a unei organizatii mari. Deoarece seful executiv nu
poate face singur totul, organizatia este partitionată în divizii, fiecare dintre acestea având
autonomie în anumite limite. eful diviziei este împuternicit cu autoritatea de a lua direct
decizii fără a cere permisiunea sefului executiv. Numele domeniului este format într-un mod
similar si reflectă delegarea ierarhică a autoritătii în repartizarea lor. De exemplu, considerăm
numele myHost.myDept.myDiv.myCorp.com.
Atunci când lucrăm cu un sistem de nume, în mod obisnuit utilizăm numai o parte din
ierarhia de domenii, de exemplu myDivision.myCorp.com. DNS oferă o metodă simplă de a
minimiza introducerea de date necesare în acest caz. Dacă numele domeniului se termină în
punct, de exemplu myDept.myDiv.myCorp.com., se presupune că este complet. Acesta se
numeste fully qualified domain name (FQDN) sau absolute domain name. Dacă nu se termină
cu un punct, de exemplu myDept.myDiv, numele este incomplet, iar resolverul DNS va trebui
Page 17 of 29
să îl completeze prin alipirea unui sufix .myCorp.com la numele domeniului. Regulile după
care se face acest lucru sunt functie de implementare si de configurarea locală.
Page 18 of 29
domeniile nivelului de vârf generic. De exemplu, în Marea Britanie domeniile echivalente
domeniilor generice .com si .edu sunt .co.uk si .ac.uk, ac fiind o abreviere de la academic.
Rezolutia numelui este un proces client/server. Functia client (numită resolver sau name
resolver) este transparentă pentru utilizator si este apelată printr-o aplicatie pentru a translata
nume simbolice de nivel înalt în adrese IP si invers. Name server (numit si domain name
server) este o aplicatie server care furnizează translatarea dintre numele de nivel înalt si
adrese IP. Mesajele cerere/răspuns pot fi transportate fie de UDP, fie de TCP.
Page 19 of 29
9.2.2.2. Domain name stub resolver
Este o rutină care este conectată la programul utilizatorului, care transmite cererile
către serverul de nume pentru a fi procesată. Răspunsurile sunt memorate de către server în
csche, dar nu si de resolver. În majoritatea platformelor, stub resolver-ul este implementat de
două functii: gethostbyname() si gethostbyaddr(). Acestea sunt utilizate pentru a converti
numele în adrese IP si invers. Stub resolvers sunt mult mai obisnuiti decât full resolvers.
Page 20 of 29
memorată în cache este mentinută un interval de timp specificat în răspuns printr-un
câmp de 32 de biti, numit timp de viată (time-to-live-TTL); Tipic acest câmp este setat
la valoarea 86.400 secunde (o zi).
- Dacă nu se cere recursivitate sau dacă serverul nu este capabil să servească cereri
recursive, el va returna informatia disponibilă în cache, precum si o listă cu servere
care pot da informatii autorizate.
Page 21 of 29
Figura 9.13: Formatul unui înregistrări de resurse
Unde:
Nume: numele domeniului care trebuie definit.
Tipul: tipul resursei din această înregistrare. Sunt numeroase valori posibile (nume de host,
nume de server autorizat, membru al unui grup de mail, resursă ISDN, resursă X.25, cheie de
codare, etc).
Page 22 of 29
Clasa: Identifică familia de protocoale. În mod normal valoarea utilizată este IN (sistem
Internet).
TTL: Timpul de viată în secunde cât înregistrarea este validă în memoria cache. Este o
valoare de 32 de biti fără semn, tipic setată la 86.400, adică o zi.
RDlength: un întreg de 16 biti fără semn care specifică lungimea în octeti a câmpului Rdata.
RData: Un sir de octeti de lungime variabilă care descrie resursa.
Page 23 of 29
Figura 9.14: Formatul mesajelor protocolului DNS
Formatul antetului
Antetul este sectiunea întotdeauna prezentă si are o lungime fixă de 12 octeti. Alte sectiuni
sunt de lungime variabilă.
ID: un identificator de 16 biti atribuit de program. Acest identificator este copiat în răspunsul
corespunzător dat de serverul de nume si poate fi utilizat pentru a face diferenta dintre
răspunsurile la mai multe cereri aflate în rezolvare.
Parametrii: o valoare de 16 biti având următorul format:
Unde:
QR: Flag identificator pentru cerere (0) sau răspuns (1).
Op code: câmp de 4 biti care specifică tipul cererii:
0 cerere standard(QUERY)
1 cerere inversă (IQUERY)
2 interogare a stării serverului (STATUS)
AA: Indicator de răspuns autorizat. Dacă este 1 atunci semnifică faptul că serverul care a
transmis răspunsul este autorizat pentru domeniul din cerere.
TC: indicator de trunchiere. 1 dacă mesajul este mai lung decât permite canalul fizic.
RD: Indicator de recursivitate. Acest bit semnalează serverului că se cere o rezolutie
recursivă. Acest bit se va copia în răspuns.
RA: Indicator de disponibilitate a recursivitătii. Indică dacă serverul suportă sau nu
recursivitatea.
Page 24 of 29
Zero: 3 biti rezervati pentru utilizări ulterioare. Sunt pozitionati în 0.
Rcode: cod de răspuns de 4 biti. Valori posibile:
0 fără erori
1 eroare de format; serverul nu a fost capabil să interpreteze mesajul.
2 Defectiune de server. Mesajul nu a fost procesat din cauza unei probleme de
server.
3 Eroare de nume. Numele domeniului din cerere nu există. Este valid numai
dacă bitul AA este setat în răspuns.
4 Nu este implementat. Tipul cerut în cerere nu este implementat în serverul de
nume.
5 Refuz. Serverul refuză să răspundă dun motive de politică. Alte valori sunt
rezervate pentru folosintă ulterioară.
QDcount: un întreg fără semn de 16 biti specificând numărul intrării din sectiunea întrebare.
ANcount: un întreg fără semn de 16 biti specificând numărul RR în sectiunea răspuns.
NScount: un întreg fără semn de 16 biti specificând numărul serverului RR în sectiunea
autoritate.
ARcount: un întreg fără semn de 16 biti specificând numărul RR în câmpul înregistrări
aditionale.
Sectiunea întrebare
Următoarea sectiune contine cererile către serverul de nume. Ea contine QDcount
(uzual 1) intrări, fiecare în formatul arătat în Figura 9.15
Unde:
Lungime Un octet care specifică lungimea etichetei următoare.
Eticheta Un element din caracterele numelui domeniului (de exemplu ibm din
ral.ibm.com). Numele domeniului referit în cerere este memorat ca o serie de astfel de
etichete de lungimi variabile, fiecare precedat de un octet lungime.
00 X’00’ indică sfârsitul numelui de domeniu si reprezintă eticheta null a domeniului
rădăcină.
Page 25 of 29
Tip 2 octeti specificând tipul cererii. Poate avea orice valoare din câmpul Type al unei
înregistrări de resursă.
Clasa 2 octeti specificând clasa cererii. Pentru cerere Internet, va fi IN.
Unde câmpurile din fata câmpului TTL au aceeasi semnificatie ca si pentru o interogare, iar:
TTL O valoare de 32 de biti reprezentând durata de viată a înregistrării. Definiste durata cât
această înregistrare poate fi privită ca validă.
RDlength Lungime pe 16 biti a câmpului Rdata.
Rdata Un sir de lungime variabilă a cărui interpretare depinde de câmpul Type.
9.2.3. Transportul
Mesajele DNS sunt transmise fie ca datagrame (UDP), fie ca stream-uri (TCP):
- UDP: utilizează server port 53. Mesajele transportate prin UDP sunt limitate la 521
octeti. Mesajele mai lungi sunt trunchiate, iar bitul de trunchiere TC din antet se
setează. Deoarece cadrele UDP pot fi pierdute, este necesară o strategie de
retransmisie.
Page 26 of 29
- TCP: utilizează server port 53. În acest caz mesajul este precedat de un câmp de 2
octeti indicând lungimea totală a mesajului.
DNS este o implementare statică, fără nici o preocupare privind securitatea. Pentru a
implementa DNS dinamic, luând avantajele DHCP si mentinând posibilitatea de localizare a
oricărui host cu ajutorul unei etichete, sunt necesare următoarele extensii ale DNS:
- O metodă prin care un nume de host să impună ca o intrare a unui client (reprezentând
o mapare nume-adresă) din serverul de nume de domenii să fie actualizată după ce
clientul obtine o adresă de la un server DHCP.
- O metodă prin care se face o mapare adresă-nume host după ce un client a obtinut
adresa.
- Actualizările DNS să fie imediate, fără a fi necesară interventia unui administrator.
- Actualizările DNS să fie autentificate, pentru a împiedica hosturi neautorizate să
acceseze reteaua si pentru a împiedica impostorii să utilizeze nume de hosturi
existente pentru a le mapa la propria adresă
- O metodă prin care serverele primare si secundare să transmită si să receptioneze rapid
intrările modificate ca urmare a actualizării dinamice de către clienti.
Implementarea DDNS poate introduce probleme în cazul în care mediul nu este sigur. O
metodă de securitate utilizată de DDNS este utilizarea Secret Key Transaction Authentication
(TSIG). Aceasta poate fi utilizată pentru a autentifica actualizările dinamice de la clienti, sau
pentru a autentifica răspunsurile recursive provenite de la server. În plus, mesajele pot fi
protejate pentru integritate si confidentialitate utilizând TSIG peste Generic Security service
(GSS-TSIG).
Page 27 of 29
Figura 9.17: Formatul mesajului DDNS UPDATE
Sectiunea antet este întotdeauna prezentă si are o lungime fixă de 12 octeti. Celelalte
sectiuni au lungime variabilă. Ele sunt:
Identificare Identificator de 16 biti atribuit de către program. Este copiat în
răspunsul corespunzător al serverului de nume si poate fi utilizat pentru a distinge între
mai multe răspunsuri care sunt asteptate la un moment dat.
Q Indicator de cerere de actualizare (0) sau răspuns (1)
Op Opcode. Valoarea 5 indică un mesaj update.
z Câmp de 7 biti setat în 0 si rezervat pentru utilizări ulterioare.
R Codul răspunsului (nedefinit în cererile de actualizare). Posibile valori:
0 nu sunt erori
1 Eroare de format. Serverul nu a fost capabil să interpreteze mesajul.
2 Defectiune la nivelul serverului. Mesajul nu a fost procesat din cauza
unei probleme la nivelul serverului.
3 Eroare de nume. Numele specificat nu există.
4 Nu este implementat. Tipul mesajului specificat în Opcode nu este
suportat de acest server.
5 Refuz. Serverul refuză să facă actualizarea din motive de politică de
securitate.
6 Eroare de nume. Numele există si nu ar trebui să existe.
7 Eroare RRset. Setarea unei inregistrări de resursă (resource record set)
specificate care există si nu ar trebui.
8 Eroare RRset. Setarea unei inregistrări de resursă (resource record set)
specificate care nu există.
9 Eroare de zonă de autoritate. Serverul nu este autorizat pentru o anumită
zonă.
10 Eroare de zonă. Numele specificat în cererea de actualizare nu face
parte din acea zonă.
ZO count Numărul RRs (înregistrărilor de resurse) în sectiunea Zone.
PR count Numărul RRs (înregistrărilor de resurse) în sectiunea Prerequisite.
UP count Numărul RRs (înregistrărilor de resurse) în sectiuneaUpdate.
AD count Numărul RRs (înregistrărilor de resurse) în sectiunea informatii
suplimentare (Additional information).
Zone Această sectiune este utilizată pentru a indica zona înregistrărilor care
trebuie actualizate. Cum toate înregistrările care trebuie actualizate trebuie să apartină
aceleeasi zone, sectiunea zonă are o singură intrare specificând numele zonei, tipul zonei
si clasa zonei.
Prerequisite Această sectiune contine RRs sau RRsets care fie trebuie, fie nu trebuie
să existe, functie de tipul actualizării.
Update Sectiunea contine RRs, RRsets, sau ambele, care trebuie fie adăugate,
fie eliminate din zonă.
Additional information Sectiunea poate fi utilizată pentru a introduce RRs suplimentare
într-un proces de actualizare aflat în desfăsurare.
A fost introdus un tip de mesaj IXFR DNS care permite transferuri incrementale ale
datelor de zonă DNS între servere primare si secundare.Cu alte cuvinte, când are loc o
Page 28 of 29
actualizare în datele unei zone, numai acele modificări vor fi copiate în alte servere DNS
care mentin o copie a datelor zonei, nu se va copia întreaga bază de date (asa cum se
întâmpla în cazul unui mesaj de tip AXFR DNS.
Formatul unei cereri IXFR este exact acelasi cu cel al unei cereri DNS obisnuite, dar cu
tipul cererii setat IXFR. Sectiunea answer a răspunsului va fi compusă din secvente
diferentă (difference sequences).
Fiecare listă de secvente diferentă este precedată de versiunea curentă a SOA a serverului
si reprezintă o actualizare a zonei. Similar, fiecare secventă diferentă este precedată de o
versiune SOA (indicând în ce versiune se face actualizarea), secventele diferentă fiind
ordonate de la cea mai veche la cea mai nouă. După receptionarea mesajului, serverul
poate face actualizarea urmărind istoria versiunii listată în sectiunea answer a IFXR.
De exemplu, presupunem că un server are următoarea zonă:
Dacă serverul primeste o cerere IXFR, va trimite ca răspuns următoarea sectiune answer:
Page 29 of 29
CURS 11
Protocoale referitoare la fişiere
Suita de protocoale TCP/IP oferă un număr de protocoale pentru manipularea fişierelor. În
general sunt două mecanisme diferite pentru accesarea la distanţp a fişierelor. Cel mai simplu
mecanism este transferarea unui fişier pe o maşină locală. În acest caz vor exista mai multe
copii ale aceluiaşi fişier. Pentru distribuirea fişierelor se vor folosi mecanismele File Transfer
Protocol (FTP), Trivial File Transfer Protocol (TFTP), Secure Copy Protocol (SCP).
Alternativa acestor metode este utilizarea unui sistem de fişiere. În acest caz, maşina locală
oferă toate funcţiile necesare accesării fişierului pe maşina distantă. Userul şi aplicaţia de pe
maşina locală nu simt că fişierul este rezident pe o maşină distantă; ei citesc şi scriu fişierul ca
şi când acesta ar fi local. În acest caz există o singură copie a fişierului, iar sistemul de fişiere
este responsabul de coordonarea actualizării lui. Acest tip de funcţionalitate este furnizat de
Network File System (NFS), Andrew File System (AFS) şi Common Internet File System
(CIFS).
FTP utilizează protocolul de transport TCP pentru a furniza conexiuni cap-la-cap de încredere
şi implementează două tipuri de conexiuni în administrarea transferului de date. Clientul FTP
iniţiază prima conexiune, referită drept conexiune de control, către portul 21. Acesta este
portul pe care serverele FTP aşteaptă şi acceptă conexiuni noi. Conexiunea de control este
utilizată pentru toate comenzile pe care le lansează clientul cu scopul de a se conecta la server,
de a manipula fişiere şi de a încheia sesiunea. Tot pe această conexiune serverul va transmite
mesaje de răspuns pentru comenzile de control.
A doua conexiune utilizată de FTP se referă la conexiunea de date. Tipic, conexiunea de date
se stabileşte pe portul 20, dar, funcţie de cum se stabileşte conexiunea, atât clientul, cât şi
serverul, pot folosi alte porturi. FTP deschide conexiunea se date numai în cazul în care
clientul doreşte să descarce un fişier sau doreşte o listă a fişierelor disponibile. Este totuşi
posibil ca o sesiune FTP să înceapă şi să se încheie fără a deschide vreodată o conexiune de
date. Spre deosebire de conexiunea de control, în care comenzile şi răspunsurile merg de la
client la server şi invers, conexiunea de date este unidirecţională. FTP poate transfera date
numai de la client la server, sau numai de la server la client. Conexiunea de date, spre
deosebire de conexiunea de control, poate fi iniţiată fie de client, fie de server. Dacă este
iniţiată de client este pasivă, iar dacă este iniţiată de server este activă.
Page 1 of 12
Aplicaţia client FTP este construită cu un interpretor de protocol (protocol interpreter-PI), un
proces de transfer de date (data transfer process-DTP) şi o interfaţă utilizator. Aplicaţia server
FTP constă în mod tipic numai din PI şi DTP Figura 11.1).
Important: Pe fiecare conexiune de date nu se poate face decât un singur transfer de date.
Pentru transferuri multiple de date, cerute într-o singură sesiune FTP, se va deschide câte o
conexiune de control distinctă pentru fiecare transfer.
Când foloseşte FTP, utilizatorul realizează unele sau toate dintre următoarele operaţii:
Page 2 of 12
Pentru a executa un transfer de fişier, utilizatorul începe prin a accesa un host distant.
Aceasta este o metodă primară prin care este implementată securitatea în modelul FTP. Pasul
de autentificare poate fi evitat utilizând anonymous FTP.
Site Transmite informaţii către hostul extern, necesare pentru a furniza serviciile
specifice hostului respectiv.
După ce utilizatorul a fost autentificat şi s-a conectat la server, el poate naviga prin structura
de directoare a hostului distant în scopul localizării fişierului dorit, sau pentru a localiza
directorul în care va fi transferat un fişier local. Utilizatorul poate naviga şi în structura de
directoare a clientului. După ce au fost accesate directoarele locale şi distante, utilizatorul
poate vizualiza conţinutul directoarelor. Subcomenzile care realizează aceste funcţii sunt:
Lcd Schimbă directorul pe hostul local. Similar cu cd, poate fi specificată o cale
care trebuie însă să fie conformă cu structura de directoare a hostului local.
Dir Listează conţinutul directorului distant. Ca şi pentru comanda ls, lista generată
de această comandă este tratată ca “date”, de aceea cere utilizarea unei conexiuni de date.
Această comandă are intenţia de a crea un rezultat “citibil” de programe.
Transferul datelor între sisteme necesită uneori transformări ale datelor ca parte a procesului
de transfer. Utilizatorul poate decide în trei aspecte în ceea ce priveşte manevrarea datelor:
mode Specifică dacă fişierul este tratat ca având o structură într-un flux de octeţi:
Page 3 of 12
B Specifică faptul că va fi utilizat un bloc. Indică faptul că frontierele logice
ale înregistrării fişierului sunt păstrate.
S Specifică faptul că este utilizat modul flux (stream), adică fişierul este tratat
ca un flux de octeţi. Acest mod este implicit şi oferă cel mai eficient
transfer, dar poate să nu producă rezultatele dorite când se lucrează cu un
sistem de fişiere structurat (record-based).
file Indică faptul că fişierul nu are o structură internă şi este considerat ca fiind o
secvenţă continuă de octeţi.
Transferul fişierelor
Pentru a copia fişiere între clienţi şi servere FTP, se utilizează următoarele comenzi:
get Copiază un fişier de pe un host distant pe unul local. PI translatează comanda get
în comanda RETR.
Mget Copiază mai multe fişiere de pe un host distant pe cel local. PI translatează
comanda mget în mai multe comenzi RETR.
Put Copiază un fişier de pe hostul local pe hostul distant. PI translatează put în
comanda STOR.
Mput Copiază mai multe fişiere de pe hostul local pe hostul distant. PI translatează
mput într-o serie de comenzi STOR.
Page 4 of 12
quit Se deconectează de la hostul distant şi termină FTP. Unele implementări
utilizează subcomanda BYE.
CloseDeconectează de la hostul distant, dar lasă clientul FTP pornit. O comandă open
va stabili o nouă conexiune de control.
Un utilizator LAN are de transferat date de pe o staţie workstation pe un host distant remote
host. Datele sunt binare şi există într-un fişier numit mydata din directorul de pe workstation
/localfolder. Utilizatorul doreşte să transfere datele utilizând modul stream (flux) în directorul
de pe hostul distant numit /tmp, dorind ca noul fişier să se numească yourdata. Procesul care
are loc pentru a realiza aceste obiective este ilustrat în Figura 11.2.
Când se utilizează comenzile get, put, mget, mput, ls sau dir, FTP deschide o conexiune de
date prin care vor fi transferate datele. Majoritatea implementărilor folosesc transferul activ ca
variantă implicită în cazul în care nu este specificat că se doreşte un transfer pasiv. În
transferul activ clientul transmite serverului o comandă PORT, indicând adresa IP şi numărul
portului pe care clientul va aştepta conexiunea. După acceptarea comenzii PORT, serverul
FTP iniţiază o conexiune inversă către client folosind adresa IP şi portul indicate. După ce s-a
stabilit conexiunea, datele o vor parcurge, fie de la client spre server (pentru comenzile put
Page 5 of 12
sau mput), fie de la server la client (pentru comenzile get, mget, ls şi dir). Un exemplu de
astfel de secvenţă este prezentat în Figura 11.3.
Spre deosebire de conexiunea activă de date, transferul pasiv de date inversează direcţia de
stabilire a conexiunii de date. Clientul va trimite, în loc de comanda PORT, comanda PASV
care nu are parametri. La primirea acestei comenzi, serverul FTP răspunde transmiţând o
adresă IP şi un număr de port. Clientul iniţiază conexiunea către server spre adresa IP şi portul
indicate. Un exemplu de secvenţă este ilustrat în Figura 11.4.
Unul dintre motivele pentru care se utilizează transferul pasiv de date este trecerea peste
configuraţia firewall-ului care blochează conexiunile active de date. Din acest motiv
transferul pasiv mai este numit şi “firewall friendly mode”. În cazul în care clientul are activat
un firewall configurat să blocheze orice încercare de deschidere din exterior a unei conexiuni,
un server FTP care răspunde unei comenzi PORT va primi un mesaj de eroare când va încerca
să stabilească o conexiune către adresa IP şi portul indicate. În modul pasiv, deoarece clientul
iniţiază conexiunea din interiorul sistemului protejat, firewall-ul va permite stabilirea legăturii
şi transferul de date va putea fi realizat.
Page 6 of 12
Figura 11.4 Conexiune pasivă de date
FTP oferă posibilitatea unui client de a transfera date de pe un server FTP pe un alt server
FTP. Câteva dintre justificările unui astfel de transfer sunt:
- Transferul datelor de pe un host pe un alt host când nu este posibil accesul direct la
cele două hosturi.
- Trecerea peste o conexiune client lentă.
- Trecerea peste restricţii firewall.
- Reducerea traficului în interiorul reţelei clientului.
Procesul de setare a unui transfer proxi începe cu utilizarea comenzii proxy open. Poate fi
transmisă către serverul proxy orice comandă FTP, precedată de prefixul proxy. De exemplu,
execuţia comenzii dir va lista fişierele de pe serverul FTP primar. Executând comanda proxy
dir, se vor lista fişierele de pe serverul proxy. Pentru a realiza transferul între cele două
servere se pot utiliza comenzile proxy get şi proxy put. Procesul este ilustrat în Figura 11.5.
Page 7 of 12
Figura 11.5: Transfer proxy FTP printr-un firewall
În Figura 11.5:
Page 8 of 12
comandă a clientului, dar sunt necesare informaţii suplimentare din
partea clientului pentru a completa comanda.
4yz Răspuns de completare negativ temporar. Indică faptul că a eşuat
prelucrarea comenzii, dar o retransmitere a acesteia s-ar putea încheia cu
succes.
5yz Răspuns de completare negativ permanent. Comanda a eşuat, iar o
retransmitere a ei nu va avea succes.
6yz Răspuns protejat. Replica conţine informaţii referitoare la securitate.
Pentru fiecare comandă a clientului, figurată cu scriere bold, serverul FTP răspunde cu un cod
de trei cifre şi un mesaj, ilustrat cu scriere italică:
Multe site-uri TCP/IP au implementat ceea ce se numeşte anonymous FTP, ceea ce înseamnă
că site-ul permite accesul public la anumite directoare. Utilizatorul distant va fi nevoit să
utilizeze numele de logare anonymous şi parola guest sau o alta specificată de sistem în
momentul în care se iniţiază conectarea. Deoarece metoda de conectare este disponibilă
tuturor celor care sunt conectaţi la Internet, hosturile restricţionează fişierele accesibile
utilizatorilor anonimi.
Utilizarea în creştere a Ipv6 în reţele a avut un efect minor asupra implementărilor FTP,
deoarece adresarea Ipv6 este administrată de nivelul IP. Totuşi, apare o problemă cu
arhitectura comenzii PORT. Pentru a o înţelege, va trebui discutată în detaliu comanda PORT.
Page 9 of 12
Aşa cum s-a arătat în secţiunea 11.1.3. (transferul activ de date), clientul FTP utilizează
comanda PORT pentru a informa serverul pe ce port şi la ce adresă IP aşteaptă (clientul) să fie
deschisă o conexiune de date. Sintaxa acestei comenzi este:
În această sintaxă, h1 până la h4 reprezintă cei patru octeţi ai adresei IPv4, p1 reprezintă un
număr care va fi înmulţit cu 256 şi apoi adunat cu p2 pentru a obţine numărul portului. De
exemplu, să presupunem că un client FTP transmite următoarea comandă către serverul FTP:
PORT 10,1,200,201,9,8
Această comandă spune serverului FTP să deschidă o conexiune către adresa IP 10.1.200.201,
pe portul (9 11 256) + 8 = 2312.
Prin această definire a comenzii PORT este clar că aceasta a fost destinată utilizării adreselor
Ipv4, deoarece pentru adrese IPv6 sunt mult nmai multe câmpuri de precizat. Aceeaşi
problemă apare şi la utilizarea comenzii PASV, care , chiar dacă este lansată fără parametri,
va primi un răspuns din partea serverului FTP de forma:
în care semnificaţia h1-h4, p1, p2 este aceeaşi cu cea de mai sus. Rezultă astfel că şi la PASV
apar aceleaşi restricţii ca şi la PORT.
Pentru a acoperi aceste limite au fost create alte două comenzi care înlocuiesc comenzile
PORT şi PASV: EPRT, respectiv EPSV.
Comanda EPRT este procesată similar ccomenzii PORT, dar formatul ei este:
EPRT <d>protocol<d>address<d>port<d>
<d> reprezintă un delimitator ales din plaja 33-126 a caracterelor ASCII. Se recomandă
folosirea caracterului ASCII 124 ” | ”.
protocol Familia de adrese în care clientul cere conexiunea. Dacă valoarea este 1, atunci
se cere pe o adresă IPv4, iar o valoare 2 indică o adresă IPv6.
address Este adresa corespunzătoare (IPv4 sau IPv6) la care se va deschide conexiunea.
Urmează două exemple de utilizare a comenzii EPRT, în care adresa IPv4 10.1.200.201 a fost
convertită în notaţie IPv6:
Similar comenzii PASV, comanda EPSV poate fi lansată fără parametri. Răspunsul serverului
la comanda EPSV este:
Page 10 of 12
229 <text> (<d><d><d>port<d>)
Textul este opţional şi indică utilizatorului că este conctat în modul pasiv. Câmpul dintre
delimitatori trebuie să fie gol deoarece comanda EPSV presupune că iniţierea conexiunii de
date de către client se va face la aceeaşi adresă Ip ca şi conexiunea de control stabilită. Un
exemplu de răspuns al serverului la o comandă EPSV este:
După recepţionarea acestui răspuns, clientul va deschide o conexiune de date la portul 2312
pe aceeaşi adresă IP pe care este activă conexiunea de control. Comanda EPSV este utilă când
se stabileşte o conexiune FTP securizată peste un firewall care implementează NAT (Network
Address Translation). NAT cere translatarea adresei IP specificate în comanda client PORT
sau în răspunsul PASV al serverului. Translatarea va permmite rutarea mesajelor în afara
subreţelei clientului sau serverului. Dacă conexiunea de control a fost criptată, NAT nu are
acces la aceste adrese şi, ca urmare, aplicaţiile FTP nu vor putea stabili conexiunea de date.
Folisind comanda EPSV, serverul FTP cunoaşte deja adresa IP utilizată şi procedura de
stabilire a conexiunii de date poate demara fără intervenţia NAT.
Deşi FTP oferă securitate, cerând utilizatorilor să se conecteze utilizând un nume de utilizator
şi o parolă, această acţiune nu face altceva decât evită accesul neautorizat la sistem. Când se
transferă date de la un host la altul, datele din pachete (atât din conexiunea de control, cât şi
din cvea de date) sunt transmise în clar. De aceea, dispozitive din reţea pot captura aceste
pachete şi obţine acces la datele transferate. Mai mult, pot fi capturate chiar şi identificatorul
şi parola utilizatorului dând posibilitatea unui acces fraudulos la reţea.
Pentru a evita această problemă, FTP apelează la Transport Layer Security (TLS). TLS
reprezintă un standard de criptare a datelor între două hosturi. Aşa cum spune şi numele, el
este implementat la nivelul transport şi de aceea modul în care acţionează este transparent
pentru aplicaţiile care îl utilizează. Acestea nu trebuie să ştie decât cum să îl invoce.
ADAT Trece datele codate (Base64) utilizate în negocierea securităţii între client şi
server, specific mecanismului menţionat în comanda AUTH.
PBSZ Specifică dimensiunea maximă a buffer-ului prin care datele criptate vor fi
trecute de la client la server.
PROT Specifică nivelul de protecţie a canalului. Argumentul trebuie să fie unul din
următorii:
Page 11 of 12
S Safe: se realizează autentificarea, dar nu este implementată criptarea.
CCC Anunţă serverul FTP că nu mai sunt cerute comenzi protejate pentru sesiunea
FTP.
Page 12 of 12