Documente Academic
Documente Profesional
Documente Cultură
175
Multe aplicaii care utilizeaz servicii pe reea asteapt ca data s fie transmis si primit
corect dea lungul conexiunilor reea. Corect, n acest context nseamn c articolele de dat ar
trebui remise fr erori si n secven aplicaiei receptoare.
Asa cum am vzut n seciunea anterioar, remiterea corect nu este asigurat de ctre
UDP si articolele de dat pot s soseasc la aplicaia destinaie ntr-o ordine diferit dect cea n
care au fost trimise. TCP este un nivel de protocol alternativ constnd n vrful nivelului Ip care
ofer remiterea corect a articolelor de dat. Pentru a asigura remiterea corect, TCP utilizeaz o
schem cu confirmri a pachetelor TCP corect primite si retransmisia altora care nu au ajuns
Pentru a furniza o remitere secvenial a pachetelor (articolelor de dat), nivelul TCP are de
asemenea o capacitate de stocare.
Pe lng asigurarea unei remiteri corecte, nivelul TCP conine mecanisme pentru evitarea
congestionrii reelei si a utilizrii optime a capacitii de reea disponibil.
Conexiuni TCP
Nivelul TCP este o alternativ la nivelul UDP, utiliznd conceptul de conexiune pentru a
lega transmitori si receptori ai serviciilor TCP. Cnd crem o conexiune ntre doi utilizatori,
nivelul TCP asigur un port TCP ambelor capete, fiecare identificate printr-un numr de port.
Combinaia 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. Nivelul TCP nu structureaz articolele de dat trimise de ctre utilizatorii de
servicii. Un utilizator de servicii trimite articole de dat de-a lungul conexiunii care sunt vzute
de ctre nivelul TCP ca un sir de octei.
Prin stocare si fragmentare, nivelul TCP formateaz articolele de dat n pachete TCP si le remit
nivelului TCP receptor. Acolo, data este receptat ca un sir de octei. Conexiunea TCP lucreaz
ca o conexiune full-duplex astfel nct ambele capete ale conexiunii TCP pot trimite si primi date
n mod concurent.
Este de responsabilitatea utilizatorilor serviciilor TCP s recunoasc formatul articolelor
de dat trimise de-a lungul unei conexiuni TCP.
Este un protocol fiabil de comunicare ntre procese aflate ntre calculatoare interconectate,
folosind comutarea de pachete. Este orientat pe conexiuni si se situeaz la nivelul transport din
ierarhia OSI.
TCP presupune c la nivelul imediat inferior (reea) exist o modalitate, chiar neglijabil,
de transmitere a pachetelor n reea. El a fost gndit ca avnd la nivelul reea un modul Internet
(IP) dar poate funciona si cu alte protocoale. Interfaa dintre modulul TCP si modulele de nivel
superior se face prin apeluri similare celor pe care un sistem de operare le ofer pentru
manipularea fisierelor.
Funciile protocolului TCP
Protocolul TCP trebuie s asigure urmtoarele:
a)transfer de date;
n mod continuu, n ambele direcii, ntre dou procese.
b)fiabilitate;
Modulul TCP trebuie s refac datele din pachetele eronate, s in cont de pachetele pierdute, de
cele duplicate sau transmise n alt ordine de sistemul de comunicaii de la nivelul reea. Pentru
aceasta fiecare pachet primeste un numr de secven si necesit confirmare de primire. Dac nu
e primit confirmarea ntr-un interval maxim de timp, datele neconfirmate sunt retransmise.
Numerele de secven servesc att la refacerea fluxului de date ct si la eliminarea pachetelor
duplicate. Deci att timp ct modulele TCP funcioneaz corect si sistemul de reele nu devine
complet partiionat, erorile mediului fizic de propagare a datelor nu vor influena corectitudinea
fluxului de date.
c)controlul fluxului de date;
Modulul TCP asigur o modalitate prin care receptorul poate controla cantitatea de date furnizat
de transmitor. Acest lucru se realizeaz nsoind fiecare confirmare de o fereastr de
permisiune care indic domeniul de numere de secvene n care transmitorul poate furniza date
fr a primi o nou confirmare.
d)servicii orientate pe conexiune;
Serviciile de fiabilitate si control al fluxului de date impun unui modul TCP s menin pentru
fiecare flux de date anumite structuri de control (soclu, numere de secven, dimensiunea
ferestrei de comunicaie).
O conexiune este definit de structurile de control din cele dou procese ce comunic prin fluxuri
de date. Deci pentru a stabili o conexiune ntre dou procese ce doresc s comunice, modulele
TCP proprii trebuie mai nti s stabileasc o conexiune (canal de comunicaie), ceea ce
nseamn iniializarea celor dou structuri de control cu valori corelate. In acest scop are loc un
dialog prealabil ntre cele dou module TCP, pentru iniializarea structurilor de control.
Un modul TCP pune la dispoziie dou funcii de deschidere de conexiuni, una activ, de iniiere
a conexiunii, alta pasiv, de rspuns la orice cerere de stabilire de conexiune.
e)prioritate si securitate.
Utilizatorii modulelor TCP pot indica nivelele de prioritate si de securitate pentru transferul de
date. Pentru transmiterea datelor modulele TCP folosesc pachete IP.
Fiecare pachet va conine dup antetul IP, un antet TCP cu informaii specifice acestui protocol.
Autentificatorul
EAPOL
802.3 sau altele
Portul de
acces la retea
Mesaje EAP
incapsulate, tipic
RADIUS
Server AAA
(Orice server
EAP)
Serverul de autentificare
4. 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
Fiecrui nod de reea, ntr-o reea IP, i se asigneaz o adres IP unic. Cnd un nod IP este
conectat la mai mult de o reea fizic, nodul are o adres IP, pentru fiecare conexiune la o alt
reea fizic. O adres IP const dintr-un numr pe 32 de bii. Acest numr este divizat logic n
trei cmpuri:
class_id
net_id
host_id
Biii din primul cmp indic dac adresa face parte din clasele (fig.5.2.) A, B, C sau dac este o
adres multicast. O clas A de reele poate conine pn la 224 gazde, o clas de reele B pn
la 216 gazde si o clas de reele C pn la 28 gazde. Sunt posibile 228 adrese multicast.
Valori posibile :
Reea de clas A
biii 16-31 :host_id
bit 0 :0b(binar)
Reea de clas C
biii 1-7 :net_id
biii 0-2 :110b
biii 8-31 :host_id
biii 3-23 :net_id
Reea de clas B
biii 24-31 :host_id
biii 0-1 :10b
Adres de clas D
biii 2-15 :net_id
biii 0-3 :1110b
47
biii 4-31 :adres multicast
versiunea 4 IPv4
Versiunea curent este 4(IPv4). S-a propus pentru Internet un protocol mbuntit cruia i s-a
dat numele de IPv6(IP versiunea 5 era deja utilizat pentru un protocol pentru fluxuri n timp
real). Adresele surs si destinaie la acest nou protocol au lungimi de 16 octei, deci un spaiu de
adrese practic nelimitat. Pentru scrierea adreselor pe 16 octei se folosesc grupuri de cte patru
cifre hexazecimale cu semnul : ntre grupuri.
IHL: cmp de 4 bii care d lungimea antetului din cuvintele de 32 de bii. Acest cmp este cerut
din cauza lungimii variabile a cmpului opiune. Dac nu este prezent nici un cmp opiune,
valoarea minim a cmpului va fi 5.
TOS: Tipul serviciului, cmp de 1 octet, specificnd tipul de serviciu cerut de acest cadru. Biii
0-2 specific precedena cadrului care e de la 0 (normal) - 7 (control reea).
Bit 3 - indic cerere pentru ntrziere mic (D-delay)
ip versiunea 6 cu desen
Odata cu cresterea numarului de utilizatori, precum si cu aparitia noilor aplicatii multimedia
forma curenta a protocolului IPv4 nu mai poate satisface noile cerinte. De asemenea odata cu
cresterea numarului de echipamente portabile, e necesar sa poata comunica fara restrictii,
indifferent de aplicatii.
Obiectivele majore ale noii versiuni au fost:
-sa suporte mai multe gazde
-sa reduca dimensiunea tabelelor de dirijare
-sa simplifice protocolul
-sa asigure o securitate mai buna
-sa acorde o mai mare atentie pt datele aplicatiilor in timp real
-sa ajute trimiterea multipla prin permiterea specificarii de domenii
-sa permita migrarea unei gazed fara schimbarea adresei sale
-sa permita coexistent cu vechea variant si evolutia in viitor.
IPv6 indeplineste in general aceste obiectice, fiind totodata compatibil cu principalele protocoale
din stiva de protocoale TCP/IP.Caracteristica de baza consta in faptul ca foloseste pentru
adresare 16 octeti, furnizand adrese pentru dezvoltarile internetului. O alta imbunatatire este
6. DNS
DNS=Domain name service
Se indica adresa unui site si se va returna adresa IP-pt a putea fi folosita cu bind(), connect(),
sendto (). In acet fel, cand cineva introduce:
$telnet econ@ubbcluj.ro
telnet poate sa descoperea ceea ce are nevoie pentru a ne conecta la 193.226.40.114
Vom folosi functia gethostbyname():
#include<netdb.h>
Struct hostnet *gethostbyname(const char *name);
-va returna un pointer la o structura hostent:
Struct hostent{
Char *h_name;
Char **h_aliases;
Int h_addrtype;
Int h_lenght;
Char **h_addr_list;
};
#define h_addr h_addr_list[0];
Gethostbyname() returneaza un pointer la o structura hostent completata sau NULL la eroare.
WIKI:
Un sistem de nume de domeniu (abreviat DNS, n englez Domain Name System) este un sistem
distribuit de pstrare i interogare a unor date arbitrare ntr-o structur ierarhic. Cea mai cunoscut
aplicaie a DNS este gestionarea domeniilor n Internet.
Caracteristicile sistemului de nume (DNS) sunt:
Fiecare implementare TCP/IP conine o rutin software (name resolver) specializat n interogarea
serverului de nume (DNS) n vederea obinerii translatrii nume/adres IP sau invers.
Exist 2 tipuri de rezoluie de nume:
rezoluie iterativ (name resolverul cere serverului de nume s i furnizeze adresa IP a unui server
care poate face translatarea).
2. Serverul de nume (DNS) determin daca este mandatat (autorizat) pentru domeniul respectiv
(dac exist configurat o zon DNS care conine numele respectiv);
3. Dac este autorizat, transmite rspunsul clientului;
4. Dac nu, transmite o interogare altui server de nume pentru un rspuns autorizat; obine
rspunsul autorizat i transmite clientului un rspuns neautorizat; totodat stocheaz rspunsul
local pentru a rspunde la alte cereri pentru acelai nume.
5. Resolverul de nume transmite rspunsul aplicaiei utilizator i l pstreaz ntr-un cache pentru o
anumit perioad;
6. Dac name resolverul nu primete un rspuns ntr-un anumit timp, transmite cererea urmtorului
server de nume din list. Cnd lista este epuizat, va genera o eroare.
7. RPC
RPC=remote procedure call
WIKI:
n informatic , un apel de procedur la distan ( RPC ) este o comunicare inter-proces , care
permite unui program de calculator pentru a provoca o subrutin sau o procedur de a executa
ntr-un alt spaiu de adrese (de obicei pe un alt calculator la o reea partajat), fr programator de
codificare n mod explicit Detalii pentru aceast interaciune la distan. Aceasta este, n esen,
programator scrie acelai cod, dac este subrutina local pentru programul de executare, sau de la
distan. Atunci cnd software-ul n cauz folosete obiect-orientate principii, RPC se
numete invocarea de la distan sau de metoda de invocare de la distan .
Un RPC este iniiat de ctre client , care trimite un mesaj de solicitare la o distan cunoscut ca
remote server pentru a executa o procedur specificat cu parametrii furnizate. Serverul de la
distan trimite un rspuns la client, i de punere n aplicare continu procesul su. Exist mai
multe variante i subtiliti n implementri diferite, rezultnd ntr-o varietate de diferite
(incompatibile) RPC protocoale. n timp ce serverul este procesarea apelului, clientul este blocat
(se ateapt pn cnd serverul a terminat de procesare, nainte de reluarea executie), cu excepia
cazului n care clientul trimite o cerere asincron la server, cum ar fi un apel XHTTP.
Silabus:
RPC permite unui client sa execute procedure pe alte calculatoare din retea. RPC face modelul
client/server mai puternic si constituie un instrument de progeramare mai simplu decat interfata
socket.
O aplicaie RPC simpl const dintr-un client si server, serverul fiind pe calculatorul care
execut procedura. Aplicaia client comunic cu procedura de pe calculatorul la distan
transmind argumentele si recepionnd rezultatele. Clientul si serverul se execut ca dou
procese separate care pot fi pe calculatoare diferite din reea. Biblioteca RPC realizeaz
comunicarea dintre aceste dou procese. Procesele client si server comunic cu ajutorul a dou
interfee numite stub ("ciot"); vom avea deci un stub pentru client si altul (care uneori se
numeste skeleton ) pentru server.
Clientul si serverul trebuie s comunice utiliznd o reprezentare a datelor independent de tipul
calculatorului si de sistemul de operare. RPC utilizeaz un format propriu pentru reprezentarea
datelor cunoscut sub numele de XDR (External Data Representation). Componenta XDR de
reprezentare a datelor este descris n RFC 1014.
Modul de lucru al RPC
In cadrul sistemului RPC, adresele clientului, serverului, numele serviciilor sunt pstrate la
nivel simbolic. Un serviciu este identificat prin portul la care este oferit si unde exist un
daemon care asteapt cererile de conectare. Un port reprezint un canal logic de comunicare.
Portmapper-ul este un serviciu de reea care este responsabil cu asocierea de servicii la diferite
porturi; acest serviciu de asociere a porturilor este oferit la portul 111. Utiliznd portmapper-ul,
numerele de port pentru un anumit serviciu nu mai sunt fixe. Figura 7.5. descrie cei trei pasi
necesari pentru ca un client s poat apela un server.
-deficitul latimii de banda face ca pt retelele radio divizarea latimii de banda sa fie esentiala de
vreme ce spectrul radio nu numai ca este destul de scump dar este totodata si limitat
-pentru a face o transmisie reusita trebuie evitata interferenta sau cel putin tinuta sub control.
Tipuri de retele fara fir:
Clasificarea reelelor fr fir dup aria acoperit
Dup aria acoperit, de la mic la mare:
Face parte din categoria PKC-criptare cu cheie publica si este numit dupa cei trei matematicieni
de la MIT care au dezvoltat-o.
-folosit in sute de produse software si poate fi folosit pentru schimbul de chei, semnaturi digitale
sau criptarea unor blocuri mici de date
-siguranta foarte ridicata datorita faptului ca cheia publica contine numarul n si un derivate al
unuia dintre factorii folositi pt determinarea lui n
-utilizatorii pot creste marimea cheii
-CEA MAI SIGURA METODA DE CIFRARE SI AUTENTIFICARE DISPONIBILA
COMERCIAL.
Sistemul RSA este de tip exponenial. n criptosistemul RSA cu cheie publica, un participant
creeaz cheia sa publica si secreta prin urmtoarea procedur:
1. Se selecteaz aleator dou numere prime mari, p si q. Acestea ar putea avea, de exemplu 100
cifre zecimale.
2. Se calculeaz n prin relaia n=pq.
3. Se alege un numr d relativ prim cu (n) (unde (n) este indicatorul lui Euler, iar n cazul de
fa va fi egal cu (n)=(p-1)*(q-1) si d n intervalul [max(p,q)+1, n-1].
4. Se calculeaz e ca fiind inversul lui d modulo (n) ( pentru calculul lui e se poate utiliza o
versiune extins a algoritmului lui Euclid).
5. Se declar perechea P=(e,n) drept cheie RSA public.
6. Se menine secret perechea S=(d,n), care este cheie RSA secret.
Schema poate fi folosit cu succes ntr-un criptosistem cu chei publice astfel: se vor face
publice e si n, iar d va fi inut secret. n consecin, cheia public este format din perechea
(e,n) iar cheia privat din perechea (d,n).
13. .Desenati si descrieti modul de lucru client server cand se folosesc socluri fara
conexiune /datagrame
De ce nu sunt sigure? Dac trimitem o datagram, s-ar putea s ajung. dezordonat. Dac
ajunge, datele din pachet vor fi fr erori.
Soclurile de datagrame folosesc de asemenea IP-ul pentru rutare, dar nu folosesc TCP-ul; ele
folosesc protocolul UDP. De ce sunt fr conexiune? Deoarece nu trebuie s menii o
conexiune deschis ca si n cazul soclurilor de flux. Se realizeaz un pachet, cruia i se
ataseaz un antet IP cu informaii despre destinaie si apoi se trimite. Nu este nevoie de o
conexiune. In general sunt folosite pentru transfer de informaii pachet cu pachet. Exemple de
aplicaii: tftp, bootp, etc.
Cum funcioneaz aceste programe dac datagramele pot s se piard? Fiecare are propriul
protocol deasupra UDP. De exemplu, protocolul tftp spune c pentru fiecare pachet care este
trimis, primitorul trebuie s trimit napoi un pachet care s spun, "L-am primit!" (un pachet
"ACK"). Dac cel ce a trimis pachetul original nu a primit nici un rspuns n, s zicem, cinci
secunde, va retransmite pachetul pn va primi un pachet ACK. Aceast procedur de
recunostere este foarte important n implementarea aplicaiilor SOCK_DGRAM.
Atunci cnd 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 decriptnd prima parte a mesajului primit de la S). In final B
decripteaz partea din mesajul primit de la A, criptat iniial de ctre S si astfel recupereaz T, K
si A. Se foloseste K pentru a decripta jumtate de mesaj criptat de ctre A si dup ce se constat
c A si T se regsesc( sunt consistente) n cele dou jumti 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
cellalt folosind cheia secret de sesiune K, pentru a asigura securitatea comunicrii. Serverul se
mai numeste si KDC-Key Distribution Center-centru de distribuie a cheilor care dup cum s-a
vzut acioneaz ca un intermediar ntre entiti.