Documente Academic
Documente Profesional
Documente Cultură
Protocolul IP
Protocolul IP face parte din suita de protocoale TCP/IP si a fost proiectat sa lucreze la nivel retea.El foloseste
adrese logice pentru a identifica in mod unic fiecare nod din retea indiferent de adresa lor MAC.
Versiune: Acest camp contine numarul de versiune.In cazul nostrum este versiunea 4 care este cea mai folosita.
Cea mai recenta versiune este versiunea 6 care este introdusa foarte incet.
Lungime antet: Lungimea antetului unei diagrame poate varia.Trebuie sa identificam locul in carese termina
antetul si incep datele ,adica trebuie sa facem distinctie intre antet si date.O modalitate este de a furniza lungimea
antetului.In general lungimea este 5,care este si lungimea minima a antentului(fara campuri optionale).
Type of service: Acest camp ne permite sa-I indicam unui router cum ar trebui sa fie tratata diagrama intermeni
de viteza si fiabilitate.De exemplu daca avem de trimis date ce reprezinta vocea sau imaginile,este de preferat ca
aceste date sa fie transmise intr-un timp scurt cu viteza mare.In cazul in care avem de trimis date cum ar fi
soldurile bancare este de preferat sa sacrificam putin din viteza pentru o fiabilitate imbunatatita. Campul TOS are
4 octeti:
Daca primul bit este 1,indica faptul ca pentru acest pachet se doreste minimizarea intarzierii,adica e
necesar ca acestui pachet sa i se acorde prioritate in raport cu celelalte
Al doilea bit reprezinta cerinta de maximizare a debitului,adica ar fi bine ca toate datele sa fie adunate si
ele sa fie trimise dintr-o data
Al treilea bit reprezinta cerinta de maximizarea fiabilitatii,adica sa nu se renunte niciodata la pachet,sa se
renunte intai la alte pachete
Al patrulea bit semnifica minimizarea costurilor adica este mai important costul decat intarzierea,acest
pachet poate fi amanat in raport cu celelalte.
Indentificare: Este un numar intreg,unic pentru fiecare diagrama.Este folosit pentru a reasambla o
datagrama in cazul in care aceasta a fost fragmentata.Atunci cand o daaagrama este fragmentata ,ea este
impartita in mai multe diagrame mai mici,fiecare cu copii ale antetului Ip original.
Ind(F): Indicator rezervat(RF-reserved flag)
Indicatorul “a nu se fragmenta”-pentru a informa routerele sa nu fragmenteze datagrama.
MF-More Fragments
Fragments OFFset: In timp ce o datagrama calatoreste prin routere pana la destinatia sa,s-ar putea ca
asteasta sa intalneasca un router care are o dimensiuna maxima de pachete mai mica decat acea
datagrama.In acest caz se impune fragmentarea datagramei deoarece ea nu poate fi gestionata de acel
router.
Time to Live(TTL): Acest camp este un contor folosit pentru a limita durata de viata a unei
datagrame.Daca routerele sunt confuze in dirijarea pachetelor sau sunt prost configurate,o datagrama
poate circula inainte si inapoi pe un termen nelimitat. In cele din urma,reteaua va fi umpluta cu datagrame
pierdute si cele reale nu vor putea ajunge niciodata la destinatie din cauza aglomerarii retelei.Acest contor
este setat la o anumita valoare,de exemplu 64 sau 32.De fiecare data cand o datagrama trece printr-un
router,TTL-ul sau este decrementat.
Atunci cand TTL-ul sal ajunge la 0,routerul trebuie sa elimine/stearga acea datagrama sis a trimita un
mesaj de eroare la sursa.
O retea nu se poate proiecta pana nu se trece de etapa de analiza.(indentificarea aplicatiilor care ruleaza in
retea,protocoalele care ruleaza in retea,documentarea retelei,identificarea constrangerilor
proiectului,caracteristicile actuale ale proiectului(securitate,administrare,traffic si performante)
3.Protocolul DHCP
Dupa cum stim,setarea corecta a adreselor fiecarei statii este foarte importanta.Aces lucru se poate realiza
manual mai ales pentru retele mici.In cazul retelelor mari se foloseste adresarea dinamica care se
realizeaza folosind protocolul DHCP(Dynamic Host Configuration Protocol).Pentru ca acest protocol sa
functioneze este necesar ca el sa fie instalat pe un echipament care permite acest lucru si devine server de
DHCP.
Protocolul DHCP:
-permite definirea unor bazine de adrese care apoi sunt allocate calculatoarelor de catre serverul DHCP.
-el realizeaza alocarea dup ace primeste cereri din retea.Un client se poate muta de pe o subretea pe alta
fara sa fie necesara o alta configurare.
-poate realoca adresele care nu sunt folosite o perioada indelungata de timp(perioada este numita
lease).Adresele nefolosite se intorc in bazin ,de unde vor fi realocate.
In prima faza un client trimite o cerere catre serverul DHCP.Acesta va aloca o adresa IP din “bazin”.
Adresele alocate nu sunt permanente.Esle sunt alocate in baza unei inchirieri,adica sunt disponibile
clientului doar pentru o perioada de timp.Dupa expirarea inchirierii adresele se intorc inapoi in
“bazin”.Perioada implicita a unei inchirieri este de 3 zile,dar acest lucru se seteaza si este controlat de
catre administratorul de retea.
Portul sursa si portul destinatie: sunt 2 numere pe 16 biti unul pentru sursa si altul pentru destinatie.
Lungime pachet UDP: acest camp contine lungimea pachetului UDP inclusive antetul.Nu este
necesar,intrucat el poate fi calculate din campul lungimea pachetului IP – lungimea antetului IP.
Suma de control: acest camp este optional ,dar recomandat in IPV4.
In cazul acestui protocol nu se face nici un fel de asigurare privint pachetele duplicat sau pierdute.Daca o
aplicatie foloseste UDP aceasta trebuie a se descurce singura cu astfel de problem,daca este necesar
5.Protocolul la nivel transport:TCP
Spre deosebire de protocolul UDP ,protocolul TCP utilizeaza o legatura orientate conexiune,la
nivel transport.
TCP este un nivel de protocol alternativ constând în vârful nivelului Ip care oferă remiterea corectă a
articolelor de dată. Pentru a asigura remiterea corectă, TCP utilizează o schemă cu confirmări a
pachetelor TCP corect primite si retransmisia altora care nu au ajuns Pentru a furniza o remitere
secvenţială a pachetelor (articolelor de dată), nivelul TCP are de asemenea o capacitate de stocare.
Pe lângă asigurarea unei remiteri corecte, nivelul TCP conţine mecanisme pentru evitarea
congestionării reţelei si a utilizării optime a capacităţii de reţea disponibilă.
Când creăm o conexiune între doi utilizatori, nivelul TCP asigură un port TCP ambelor capete,
fiecare identificate printr-un număr de port. Combinaţia de adrese IP si de porturi TCP identifică din
nou conexiunea TCP în mod unic. Utilizatorii de servicii la ambele capete de conexiuni primesc si
trimit articole de dată prin porturile TCP.
Functiile protocolului TCP:
-transfer de date
-fiabilitate
-controlul fluxului de date(poate controla cantitatea de date furnizata de transmitator)
-servicii orientate pe conexiune
-prioritate si securitate
Port sursa: campuri pe 16 biti care sunt numere de port pentru sursa si destinatie.
Numar secventa: numarul primului octet de date din cadrul segmentului de date curent.
Numărul de confirmare (32 biţi) -conţine valoarea următorului număr de secvenţă pe care trebuie
să-l primească.
Lungime antet date (offset date) (4 biti) conţine lungimea antetului TCP în cuvinte de 32 biţi
indicând de unde încep datele.
Rezervat :(6 biţi) -iniţializaţi cu 0.
Biţii de control
URG- se ia în considerare câmpul indicator urgent;
ACK- validează număr confirmare;
PSH- cere anunţarea imediată a utilizatorului destinaţie de primirea mesajului;
RST- resetare conexiune;
SYN- cere sincronizarea numerelor de secvenţă;
FIN- anunţă terminarea fluxului de date de la transmiţător.
Fereastra ( 16 biţi)- reprezintă numărul de octeţi, începând cu cel imediat din numărul de
confirmare pe care cel ce trimite mesajul îl poate recepţiona.
Suma de control (16 biţi)- este calculată pentru toate cuvintele din antet si din blocul de date. Dacă
numărul de octeţi de date este impar se completează cu octet nul.
Indiacator urgent (Pointer urgent )(16 biţi) reprezintă offset-ul faţă de numărul de secvenţă al
datelor ce trebuie transmise urgent.
Opţiuni - au lungimi diferite, apar sau nu în antet.
8.Algoritmul RSA
Este numit dupa cei trei matematicieni de la MIT .Sistemul RSA este de tip exponential in care cheile
de criptare si decriptare sunt diferite,iar cheia de decriptare nu poate fi dedusa din cheia de
criptare.Un participant creeaza cheia sa publica si secreta prin urmatoarea procedura:
1.Se selecteaza aleator 2 numere prime p si q.
2.Se calculeaza n prn relatia n=p*q si z=(p-1)*(q-1),produsul acesta se mai noteaza cu phi.
3.Se allege un numar e relativ prim cu z,adica c.m.m.d.c intre e si z sa fie 1
4.Se calculeaza d ca fiind inversul lui e modulo z ,astfel incat (e*d) mod z=1
5.Se declara cheia publice P(e,n);
6.Cheia privata S(d,n).
Un utilizator isi va genera cheia sa publica,si cheia secreta o va tine pentru el.Cei 2 utilizatori pot
face schimb de chei publice,intre ei.In acest caz,utiliatorul B va putea cripta un mesaj utilizand cheia
publica a lui A.
9.Semnaturi digitale
Semnatura digitala este cea mai importanta utilizare a sistemului RSA.
Este un cod special necesar pentru pastrarea integritatii mesajului,codul putand fi generat de un
participant unic.O astfel de semnatura trebuie sa aiba urmatoarele proprieteti:
- Sa nu poata sa fie falsificata
- Nu trebuie sa fie reutilizabila;adica sa nu poata fi transfertala la un alt document.
Acest algoritm ce creeaza semnatura RSA,functioneaza in mod evident deoarece participantul este
unica persoana care isi cunoaste cheia privata si foloseste aceasta cheie pentru a produce acea
semnatura.Orice alt participant poate verifica acea semnatura folosind cheia publica
corespunzatoare.Cu alte cuvinte,pentru a semna un mesaj el se cripteaza folosind cheia privata,iar
pentru a verifica semnatura se decripteaza folosind cheia publica a expeditorului.Observam ca
folosirea cheilor este inversa;expeditorul cripteaza cu cheia sa private in loul cheii publice a
destinatarului,iar destinatarul decripteaza folosind cheia publica a expeditorului in locul cheii sale
private.
Daca un utilizator A doreste sa trimita mesaju M autentificat unui utilizator B,atunci A pastreaza
cheia privata si trimite cheia publica si mesajul autentificat c,unde:
C=rest([m^d/n])
Pentru a valida semnatura,utilizatorul B verifica daca:
M=rest([c^e/n])
In continuare mesajul originar poate fi preluat doar daca expeditorul detine cheia privata.In
consecinta ,semnatura este autentica.
11.Functia SOCKET()
Int socket_descriptor socket (int family, int type, int protocol);
Functia socket permite utilizarea mai multor familii de adrese.O astfel de familie este struct.
Ea este folosita pentru functii precum :bind(),connect() si sendto() ce primesc de la appellant,ca
parametru o adresa din retea,precum si pentru cele ce returneaza apelantului adrese de retea
precum :accept(),recvfrom(),getsocketname() si getpeername();
12.Functia BIND()
Int bind (int sockfd,struct sockaddr *my_addr, int addrlen);
Functia bind() atribuie o adresa specificata de my_addr soclului indentificat de indentificatprul
sockfd care este descriptorul de soclu returnat de functia socket().De fapt,my_addr este un pointer
spre struct sockaddr care contine informatii despre adresa,nume sip rot.Addrlen este lungimea
structurii.
13.Functiile send() si recv()
Aceste doua functii sunt folosite pentru a comunica prin socluri de flux ,sau socluri de datagrame
conectate.Daca dorim sa folosim soclurile de datagrame obisnuite,vom folosi sendto() si
recvfrom().
-send()-returneaza numarul de octeti trimisi
-recv()- returneaza numarul de octeti cititi in buffer sau -1 la eroare.
CLIENTUL AUTENTIFICATORUL
EAPOL 802.3
sau altele
Interfata Port de acces
Host-ului la retea
Mesaje EAP
incapsulate, tipic
RADIUS
Server
AAA(orice
SERVER DE AUTENTIFICARE
server EAP)
15. Protocolul ip
A fost gandit de la bun inceput pentru a fi utilizat in sisteme interconectate de retele de calculatoare
care folosesc comutarea de pachete.
-asigura transmiterea de pachete de la sursa la destinatie, sursa si destinatia fiind calculatoare gazda
indentificate prin adrese de lungime fixa.
-asigura fragmentarea pachetelor mai lungi decat dimensiunea maxima a unui cadru ce poate fi
transmis intrun anumit tip de retea.
-nu garanteaza ajungerea la destinatie a pachetelor si nu asigura secventierea blocurilor de date.
-specificarea protocolului IP inseamna definirea interfetei cu nivelul imediat superior nivelului
transport si cu cel aflat sub el.
Adresarea IP
Fiecărui nod de reţea, într-o reţea IP, i se asignează o adresă IP unică. Când un nod IP este conectat la
mai mult de o reţea fizică, nodul are o adresă IP, pentru fiecare conexiune la o altă reţea fizică. O
adresă IP constă dintr-un număr pe 32 de biţi. Acest număr este divizat logic în trei câmpuri:
class_id
net_id
host_id
Biţii din primul câmp indică dacă adresa face parte din clasele (fig.5.2.) A, B, C sau dacă este o
adresă multicast. O clasă A de reţele poate conţine până la 224 gazde, o clasă de reţele B pînă la 216
gazde si o clasă de reţele C pînă la 28 gazde. Sunt posibile 228 adrese multicast.
16. IP versiunea 6
Odata cu cresterea numarului de utilizatori,precum si aparitia unor noi aplicatii multimedia forma
curenta a protocolului IP nu mai poate satisfice noile cerinte.De asemenea odata cu cresterea
numarului de echipamente portabile(laptopuri si telefoane mobile) este necesar ca acestea sa poata
comunica fara restrictii.Obiectivele versiunii IPV6 au fost:
-sa suporte mai multe gazed
- sa simplifice protocolul,pentru a putea permite rutarea mai rapida a pachetelor
-sa asigure o securitate mai buna
-sa acorde o mai mare atentie pentru datele aplicatiilor in timp real
-sa permita migrarea unei gazed fara schimbarea adresei sale
IPV6 indeplineste in generala aceste obiective,fiind compatibila cu principalele protocoale din stiva de
protocoale TCP/IP.
Protocolul IPV6 defineste 3 tipuri de adrese:
-adrese de trimitere unica(unicast) se specifica adresa unei singure interfete
-adrese de trimitere catre oricine(anycast)-se refera la un grup de adrese,adica pachetele pot fi livrate la
oricare dintre aceste adrese
-adrese de trimitere multipla(multicast)-catre toate interfetele din grup
Versiune Prioritate(4 biti) Eticheta flux(24 biti)
Lungime date (16 biti) Antet urmator(8 biti) Numar salturi(8 biti)
Anteturi de Extensie
DATE
Antetul pachetelor IPV6 este alcatuit dintr-un antet principal si mai multe anteturi optionale.
Antetul urmator-indica tipul antetului ce urmeaza dupa antetul principal
Lungime date-Lungimea campului Date in octeti
Numar salturi-inlocuitorul campului TTL din antetul IPV4.
-notificarea timpului depăsit, adică, atunci când un nod IP primeste un cadru IP care se plimbă
prin reţea de prea mult timp (TTL=0), poate descărca acest pachet si trimite un mesaj ICMP gazdei
origine.
- notificarea parametri ilegali, atunci când un nod IP detectează un pachet IP ilegal, poate trimite
un mesaj ICMP gazdei IP origine.
- notificarea stergerii sursei, dacă traficul IP într-un nod IP devine prea încărcat, nodul IP poate
trimite un cadru "stingere sursă" altor noduri IP pentru a micsora încărcarea. Aceste mesaje sunt
utilizate pentru a implementa o schemă de control a disputelor.
- notificarea cerere - ecou si răspuns. Pentru a fi capabil să verificăm dacă o rută în cadrul reţelei IP
este disponibilă, este adesea folositor să fim capabili să trimitem un cadru IP unui nod IP arbitrar si
să primim un răspuns. ICMP furnizează un mecanism simplu de ecou întrebare/răspuns.
- notificarea cerere/răspuns marcă de timp. Pentru a determina întârzierea pe o cale din reţeaua IP,
ICPM susţine cererea unei mărci de timp pentru un nod IP. Această marcă de timp poate fi utilizată
pentru determinarea timpului necesar unui cadru IP de-a lungul unei căi reţea.
Desi ICMP utilizează serviciile nivelului IP pentru a trimite mesaje ICMP, este adesea văzut ca
parte a nivelelor IP. Serviciile ICMP-ului sunt utilizate de către nivelul IP pentru a menţine operarea
corectă a reţelei IP.
Dacă DNS-ul nu ar funcționa corect, ar trebui să folosești direct adresele IP pentru a te conecta la
diverse domenii, iar asta este imposibil. Practic, nu ai putea să mai accesezi siturile preferate.
Ar trebui să avem si un DNS “de rezervă”, care să fie o copie fidelă a celui principal. În cazul în care
unul din DNS-uri nu funcționează, celălalt va răspunde.
19.Problema nodului ascuns
In aceasta figura ,statiile A si C il pot vedea pe B,dar A nu poate vedea pe C si invers.Cele doua statii
A si C nu se aud,dar fiecare aude punctual de acces B.
Cand o statie doreste sa transmita un pachet,ea trimite un pachet de control denumit RTS(Request to
Send) care include sursa,destinatia si durata urmatoarei tranzactii.
Daca mediul este liber statia receptoare raspunde cu un pachet de control denumit CTS(Clear To
Send) care include aceeasi durata a informatiei.
Toate statiile care receptioneaza fie CTS sau RTS isi seteaza indicatorul lor virtual denumit
NAv(Network Allocation Vector-vector de alocare al retelei) pentru o perioada data si folosesc
aceasta informative impreuna cu Physical Carrier Sense pentru a determina daca mediul este liber.
Aceasta metoda reduce probabilitatea unei coliziuni in aria statiei receptoare,care este de fapt ascunsa
fata de transmitator la o perioada scurta de transmitere a RTS-ului,deoarece statia asculta CTS-ul si
rezerva mediul ca si ocupat pana la sfarsitul tranzactiei.
20.Autentificarea de tip "increderea in a 3-a persoana"
Un scenariu mai plauzibil este ca cei doi participanti nu stiu nimic unul despre celalalt,dar amandoi
au incredere intr-o terta persoana.Aceasta terta persoana este cateodata numita server de autentificare
si foloseste un protocol pentru a ajuta cei doi participant sa se autentifice unul pe celalalt. Sunt mai
multe variatiuni ale acestui protocol.Cel descries mai jos este numit Kerberos si este un system bazat
pe TCP/IP dezvoltat la MIT.
In continuare,numim cei doi participant pe care dorim sa-I autentificam ca fiind A si B si numim
serverul de autentificare S.
A si B partajeaza o cheie secreta cu S iar cele doua kei sunt notate cu Ka, Kb, E(m,k) semnifică
mesajul m criptat cu cheia k.
Prima parte criptează cele trei valori T, L si K, împreună cu identificatorul pentru participantul B,
folosind cheia pe care serverul o partajează cu A.
Cea de-a doua parte criptează cele trei valori T, L si K împreună cu identificatorul participantului A,
dar de data aceasta folosind cheia pe care serverul o partajează cu B.
Atunci când A primeste mesajul va fi capabil să decripteze prima parte dar nu si pe a doua. A trimite
a doua parte lui B, împreună cu criptarea lui A si T folosind noua cheie de sesiune K( A a fost capabil
să refacă T si K decriptând prima parte a mesajului primit de la S). In final B decriptează partea din
mesajul primit de la A, criptat iniţial de către S si astfel recuperează T, K si A. Se foloseste K pentru
a decripta jumătate de mesaj criptat de către A si după ce se constată că A si T se regăsesc( sunt
consistente) în cele două jumătăţi ale mesajului, se replică cu un mesaj care criptează T+1 folosind
noua cheie de sesiune K. A si B pot acum comunica unul cu celălalt folosind cheia secretă de sesiune
K, pentru a asigura securitatea comunicării. Serverul se mai numeste si KDC-Key Distribution
Center-centru de distribuţie a cheilor care după cum s-a văzut acţionează ca un intermediar între
entităţi.
21.Protocolul autentificarii “IN trei FAZE “
Un astfel de protocol este posibil cand cei doi participant doresc sa se autentifice unul pe celalalt-
clientul si serverul-partajeaza o cheie secreta.Aceasta situatie este analogical cazului in care
utilizatorul(clientul) are un cont pe sistem (server) si atat clientul cat si serverul stiu parola pentru
acel cont.
Clientul si Serverul se autentifica unul pe celalalt folosind un protocol simplu “In trei faze”.
Vom folosi E(m,k) pentru a numi criptarea mesajului m cu cheia k iar D(m,k) pentru a numi
decriptarea mesajului m cu cheia k.
Pentru inceput,clientul selecteaza un numar aleator x si il cripteaza folosind cheia secreta, pe care o
notam cu CHK(client handshake key).Clientul trimite apoi E(x,CHK) impreuna cu un auto-
identificator(Client Id ) catre Server.
Serverul foloseste cheia care crede ca ii corespunde clientului ClientId pe care o numim SHK, pentru
a decripta numarul aleator.Serverul adauga 1 la numarul aleator pe care il decripteaza si trimite
rezultatul inapoi la client.El trmite de asemenea inapoi un numar aleator y care a fost criptat
folosind SHK.
In continuare ,clientul decripteaza prima jumatate a mesajului si daca rezultatul este cu 1 mai mare
decat numarul aleator c care este trimis serverului atunci stie ca serverul poseda cheia secreta.In
acest moment clientul a autentificat serverul.Clientul decripteaza fde asemenea numarul aleator
trimis de catre server(care ar trebui sa returneze y)cripteaza acest numar +1 si trimite rezultatul
serverului.Daca serverul este capabil sa reface y+1, atunci stie ca clientul este cine pretinde ca este.
Dupa al treilea mesaj ,fiecare a fost autentificat fata de celalalt.
22. RPC
Cel mai utilizat protocol de comunicare intre client si server este remote procedure call.
RPC permite unui client sa execute proceduri pe alte calculatoare din retea.RPC face modelul
client/server mai puternic si este un instrument de programare mai simplu decat interfata socket.
O aplicatie RPC simpla consta dintr-un client si server,serverul fiind pe calculatorul care executa
procedura.Aplicatia client comunica cu procedura de pe calculatorul la distanta transmitand
argumente si receptionand rezultate.Clientul si serverul se executa ca 2 procese separate care pot
fi pe calculatoare diferite din retea.Procesele client /server comunica cu ajutorul a doua interfete
numite STUB (“ciot”).vom avea deci,un stub pentru client si un stub pentru server.
Stub-urile se genereaza de obicei cu ajutorul comenzii rpgen dupa care se leaga de programele
client si server.Stu-urile contin functii care translateaza apelurile locale,clientul apeleaza aceste
procedure din stub-ul sau pentru a gasi procesul la distanta si pentru a-i transmite apoi cereri.