Sunteți pe pagina 1din 16

1. Desenati si descrieti protocolul TCP pag.

175

Multe aplicaţii care utilizează servicii pe reţea asteaptă ca data să fie transmisă si primită
corect dea lungul conexiunilor reţea. Corect, în acest context înseamnă că articolele de dată ar
trebui remise fără erori si în secvenţă aplicaţiei receptoare.
Asa cum am văzut în secţiunea anterioară, remiterea corectă nu este asigurată de către
UDP si articolele de dată pot să sosească la aplicaţia destinaţie într-o ordine diferită decât cea în
care au fost trimise. 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ă.
Conexiuni TCP
Nivelul TCP este o alternativă la nivelul UDP, utilizând conceptul de conexiune pentru a
lega transmiţători si receptori ai serviciilor TCP. 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. Nivelul TCP nu structurează articolele de dată trimise de către utilizatorii de
servicii. Un utilizator de servicii trimite articole de dată de-a lungul conexiunii care sunt văzute
de către nivelul TCP ca un sir de octeţi.
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 octeţi. Conexiunea TCP lucrează
ca o conexiune full-duplex astfel încât 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 (reţea) există o modalitate, chiar neglijabilă,
de transmitere a pachetelor în reţea. El a fost gândit ca având la nivelul reţea un modul Internet
(IP) dar poate funcţiona si cu alte protocoale. Interfaţa 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.
Funcţiile protocolului TCP
Protocolul TCP trebuie să asigure următoarele:
a)transfer de date;
în mod continuu, în ambele direcţii, î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 comunicaţii de la nivelul reţea. Pentru
aceasta fiecare pachet primeste un număr 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 atât la refacerea fluxului de date cât si la eliminarea pachetelor
duplicate. Deci atât timp cît modulele TCP funcţionează corect si sistemul de reţele nu devine
complet partiţionat, erorile mediului fizic de propagare a datelor nu vor influenţa corectitudinea
fluxului de date.
c)controlul fluxului de date;
Modulul TCP asigură o modalitate prin care receptorul poate controla cantitatea de date furnizată
de transmiţător. Acest lucru se realizează însoţind fiecare confirmare de o fereastră de
permisiune care indică domeniul de numere de secvenţe în care transmiţătorul poate furniza date
fără a primi o nouă confirmare.
d)servicii orientate pe conexiune;
Serviciile de fiabilitate si control al fluxului de date impun unui modul TCP să menţină pentru
fiecare flux de date anumite structuri de control (soclu, numere de secvenţă, dimensiunea
ferestrei de comunicaţie).
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 întâi să stabilească o conexiune (canal de comunicaţie), ceea ce
înseamnă iniţializarea celor două structuri de control cu valori corelate. In acest scop are loc un
dialog prealabil între cele două module TCP, pentru iniţializarea structurilor de control.
Un modul TCP pune la dispoziţie două funcţii de deschidere de conexiuni, una activă, de iniţiere
a conexiunii, alta pasivă, de răspuns 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 conţine după antetul IP, un antet TCP cu informaţii specifice acestui protocol.

Fig.6.1. Formatul mesajelor TCP


Semnificaţia câmpurilor
Portul sursă (16 biţi) -împreună cu adresa sursei formează soclul sursei.
Portul destinaţie (16 biti) -numărul portului destinaţie selectează procesul din calculatorul
destinaţie cu care s-a stabilit o conexiune.
Numărul de secvenţă (32 biţi) - reprezintă numărul primului octet de date din cadrul segmentului
de date curent. Dacă bitul de control SYN este setat, numărul de secvenţă este adus la valoarea sa
iniţială.
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.
Un număr mare de calculatoare din reţeaua ARPA Internet lucrează sub UNIX, de aceea UNIX-
ul Berkekey suportă TCP/IP care este accesat printr-un set de primitive specifice, care permit
utilizatorilor să acceseze serviciul transport.
Aplicaţii si caracteristici TCP
Multe aplicaţii care acţionează ca utilizatorii de servicii ai stivei TCP/IP utilizează serviciile
nivelului TCP ca si un punct de intrare în stiva TCP/IP. Serviciile oferite de către nivelul TCP
ascund majoritatea detaliilor de reţea serviciului utilizator si oferă servicii de transport, orientate
pe flux, corecte.
Aplicaţiile pot stabili o conexiune "egal la egal" de-a lungul reţelei IP. Datorită caracteristicilor
de control al fluxului de niveluri TCP, folosirea serviciilor TCP duce la o utilizare eficientă a
lărgimii de bandă a reţelei disponibile. Numai aplicaţiile care utilizează serviciile protocolului
UDP sunt capabile să opereze folosind servicii de comenzi fără conexiune.
In documentul original al DOD/DCA care defineste stiva TCP/IP, au fost descrise un număr de
aplicaţii care folosesc acest protocol. Aceste aplicaţii includ FTP, SMTP, TELNET. Aceste
aplicaţii ar trebui să fie prezente în orice implementare completă a stivei TCP/IP.
FTP este folosită pentru a schimba fisiere între noduri reţea. FTP constă dintr-o aplicaţie client
pe nodul reţelei care cere si o aplicaţie server pe modul de reţea îndepărtat.
Utilizatorul, cu ajutorul terminalului poate transfera în mod interactiv fisiere spre si de la nodul
de reţea îndepărtat si nodul de reţea local.
SMTP este un serviciu TCP utilizat pentru a interschimba mesaje între nodurile de reţea folosind
pachete IP. Un pachet de control constă dintr-un antet cu informaţia despre partea trensmiţătoare
si receptoare, ca si partea de mesaj care conţine mesajul postal curent. SMTP oferă facilităţile de
transfer mail. Pentru a construi o facilitate mail completă, aplicaţia utilizator-agent trebuie să fie
prezentă în toate nodurile de reţea relevante. Un agent-utilizator trebuie să fie capabil să creeze,
citească si să mânuiescă mesaje e-mail.
TELNET este folosită pentru a conecta un nod de reţea ca terminal la un alt nod de reţea.
Utilizatorul poate folosi terminalul conectat la nodul de reţea local pentru a se "log-a" la un alt
nod de reţea îndepărtat.
2. Desenati si descrieti relatia server/client bazata pe functia bind()/socket()

Modelul client-server
Majoritatea programatorilor de reţea folosesc modelul client-server pentru a crea programe
pentru nivelul aplicaţie în reţea. Comunicaţiile în reţea necesită o conexiune între două
calculatoare sau programe care 'discută' unul cu celălalt. O conexiune în reţea constă în
stabilirea unei legături între ambele terminale
Modelul de programare client/server împarte o aplicaţie de reţea în două părţi:partea de client si
partea de server. Prin definiţie, partea de client a unei conexiuni în reţea necesită informaţii sau
servicii de la partea de server a conexiunii. Partea de server a unei conexiuni în reţea răspunde
cererilor clientului.
Cu alte cuvinte, în modelul de programare client/server, o aplicaţie de reţea realizează două
funcţii separate si bine definite:cererea de informaţii si răspunsul la cererile de informaţii.
Programul care cere informaţii funcţionează ca program client, iar programul care răspunde la
astfel de cereri funcţionează ca program server.
In majoritatea cazurilor, o aplicaţie de reţea constă din două programe separate:un program
client si un program server, iar uneori se poate crea un program care să realizeze ambele funcţii.
3. Desenati si descrieti protocolul 802.1x,EAP) pag.269
Serverul de autentificare 802.1x este relative simplu si initial nu a fost destinat
comunicatiilor fara fir. Are rol de a implementa controlul accesului si pentru aceasta imparte
reteaua in 3 entitati: clientul sau solicitantul-care vrea sa se conecteze la retea; autentificatorul
-care controleaza accesul; si serverul de autentificare-care ia deciziile de autentificare.
802.1x a fost propus si apoi imbunatatit de catre comitetul IEEE WLAN ca o modalitate
de intarire a autentificarii utilizatorilor intr-un mediu fara fir.

-rezolva cele mai cunoscute problem ale primelor implementari 802.11b.


-este un standard deschis, extensibil, cu protocoale si nu impune o anumita metoda de
autentificare ceea ce il face expandabil si scalabil pe masura ce sunt dezvoltate noi tehnologii de
autentificare.
-autentificarea clientilor se face printrun server de autentificare extern(RADIUS), este bazata pe
utilizator
-serverul RADIUS centralizeaza toate conturile si politicile utilizator, pentru simplificarea
managementului si coordonarii informatiilor despre conturi, eliminand necesitatea ca fiecare AP
sa detina o copie a vbazei de date de autentificare.
Autentificarea 802.1x
Autentificarea 802.1x este un dialog intre un system ce doreste sa se conecteze la serviciile
retelei si retea.Acest dialog foloseste protocolul extensibil de autentificare EAP. 802.1x consta
dintrun PAE in toate statiile(STA) si punctele de acces (AP), incapsularea EAP a retelei
(EAPOL) si un server de autentificare RADIUS (AS).

Clientul Autentificatorul
EAPOL
802.3 sau altele
Interfata Portul de
hostului 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
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.
Valori posibile :
Reţea de clasă A biţii 16-31 :host_id
bit 0 :0b(binar) Reţea de clasă C
biţii 1-7 :net_id biţii 0-2 :110b
biţii 8-31 :host_id biţii 3-23 :net_id
Reţea de clasă B biţii 24-31 :host_id
biţii 0-1 :10b Adresă de clasă D
biţii 2-15 :net_id biţii 0-3 :1110b
47 biţii 4-31 :adresă multicast

versiunea 4 IPv4
Versiunea curentă este 4(IPv4). S-a propus pentru Internet un protocol îmbunătăţit căruia i s-a
dat numele de IPv6(IP versiunea 5 era deja utilizat pentru un protocol pentru fluxuri în timp
real). Adresele sursă si destinaţie la acest nou protocol au lungimi de 16 octeţi, deci un spaţiu de
adrese practic nelimitat. Pentru scrierea adreselor pe 16 octeţi se folosesc grupuri de câte patru
cifre hexazecimale cu semnul : între grupuri.
IHL: câmp de 4 biţi care dă lungimea antetului din cuvintele de 32 de biţi. Acest câmp este cerut
din cauza lungimii variabile a câmpului opţiune. Dacă nu este prezent nici un câmp opţiune,
valoarea minimă a câmpului va fi 5.
TOS: Tipul serviciului, câmp de 1 octet, specificând tipul de serviciu cerut de acest cadru. Biţii
0-2 specifică precedenţa cadrului care e de la 0 (normal) - 7 (control reţea).
Bit 3 - indică cerere pentru întârziere mică (D-delay)
Bit 4 - indică cerere pentru debit mare (T-traffic)
Bit 5 - indică cerere pentru siguranţă mare (R-reliability)
Biţii D, T, R pot fi utilizaţi de către o poartă IP pentru a selecta o cale spre nodul destinaţie care
satisface serviciul cerut. Trebuie notat că în implementările curente câmpul T, S, O este ignorat
de către porţile IP si nodurile reţele.
Lenght: conţine lungimea totală a cadrului Ethernet, incluzând haderul si data.
Ident: câmpul ident împreună cu câmpurile adresa sursă si destinaţie, identifică în mod unic
datagrama în timpul existenţei pachetului IP.
Flags: câmpul flags conţine câmpurile More si Fragment. Acesti biţi indică dacă un mesaj este
transmis într-un singur pachet IP sau este fragmentat în mai multe pachete.
Foff: câmpul fragment offset poziţionează octeţii din cadrul IP în articolul de date original.
TTL: timpul de trăit dă timpul maxim de existenţă al cadrului IP. Acest câmp este utilizat
pentru evitarea buclelor infinite pentru pachetele IP. Fiecare ruter IP care gestionează un cadru
descreste adresarea cu 1 si trimite cadrul când valoarea este 0.
Prot: câmpul protocol identifică protocolul datei conţinute în cadrul IP. Normal, acesta va fi
TCP sau UDP.
Chek: suma de control a antetului IP (excluzând câmpul de date).
Source: adresa IP a nodului de reţea IP transmiţător.
Destination: adresa IP a nodului de reţea IP destinaţie.
Options: câmpul acesta de lungime variabilă poate conţine opţiuni IP.
Data: câmpul data nu este o parte din antetul IP si conţine articole de date de transmis. Datorită
limitei impare a câmpului Lenght, întregul cadru IP are o lungime maximă de 216. Aceasta
limitează de asemenea si lungimea câmpului de date.

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
simplificarea antetului, care contine numai 7 campuri->imbunatatirea timpului de procesare a
pachetelor in nodurile retelei.
-un support mai bun pentru optiuni, unele camp[uri obligatorii ale IPv4 au devenit optionale
-permite o securitate sporita
-autentificarea si confidentialitatea sunt trasaturi importante ale noului IP
-acorda atentie mai mare tipului de serviciu
-suporta trimiterea catre oricine
5. Protocolul control al mesajelor ICMP
Pe lângă pachetele IP care conţin articole de date ce sunt schimbate de nodurile IP, este nevoie
să se schimbe pachete IP conţinând date de control. Aceste date sunt folosite pentru a asigura
funcţionarea corectă a reţelei IP ca un întreg si pentru a raporta orice erori. In stiva de
protocoale IP, este inclus un protocol specializat în vârful stivei pentru a sprijini schimbul acestui
tip de informaţie între nodurile IP.
ICMP se cere a fi suportat de fiecare nod IP din reţea si include următoarele servicii:
- notificarea destinaţiei care nu poate fi atinsă, adică, atunci când un nod IP primeste un pachet
IP care nu poate fi trimis deoarece lipseste informaţia de rutare sau datorită lipsei unor
conexiuni reţea, nodul poate trimite un pachet ICMP nodului IP transmiţător informându-l despre
imposibilitatea trimiterii pachetului pe care l-a primit.
- 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 redirectării, dacă un mod IP detectează că trebuie să dirijeze un cadru IP către
nodul cu acelasi "net-id" ca si nodul Ip anterior din rută, informează nodul precedent că există
o rută utilizând un mesaj ICMP.
- 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.
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 păstrare și interogare a unor date arbitrare într-o structură ierarhică. Cea mai cunoscută
aplicație a DNS este gestionarea domeniilor în Internet.
Caracteristicile sistemului de nume (DNS) sunt:

 folosește o structură ierarhizată;


 deleagă autoritatea pentru nume;
 baza de date cu numele și adresele IP este distribuită.
Fiecare implementare TCP/IP conține o rutină software (name resolver) specializată în interogarea
serverului de nume (DNS) în vederea obținerii translatării nume/adresă IP sau invers.
Există 2 tipuri de rezoluție de nume:

 rezoluție recursivă (name resolverul cere serverului de nume să facă translatarea);


 rezoluție iterativă (name resolverul cere serverului de nume să îi furnizeze adresa IP a unui server
care poate face translatarea).
Tipic, procesul de rezoluție a numelor se desfășoară astfel:

1. Name resolverul primește de la o aplicație client TCP/IP un nume; acesta formulează o


interogare primului server de nume din lista serverelor;
2. Serverul de nume (DNS) determină daca este mandatat (autorizat) pentru domeniul respectiv
(dacă există configurată o zonă DNS care conține numele respectiv);
3. Dacă este autorizat, transmite răspunsul clientului;
4. Dacă nu, transmite o interogare altui server de nume pentru un răspuns autorizat; obține
răspunsul autorizat și transmite clientului un răspuns neautorizat; totodată stochează răspunsul
local pentru a răspunde la alte cereri pentru același nume.
5. Resolverul de nume transmite răspunsul aplicației utilizator și îl păstrează într-un cache pentru o
anumită perioadă;
6. Dacă name resolverul nu primește un răspuns într-un anumit timp, transmite cererea următorului
server de nume din listă. Când 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 spaţiu de adrese (de obicei pe un alt calculator la o reţea partajat), fără programator de
codificare în mod explicit Detalii pentru această interacţiune la distanţă. Aceasta este, în esenţă,
programator scrie acelaşi cod, dacă este subrutina local pentru programul de executare, sau de la
distanţă. Atunci când software-ul în cauză foloseşte obiect-orientate principii, RPC se
numeşte invocarea de la distanţă sau de metoda de invocare de la distanţă .
Un RPC este iniţiată de către 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 răspuns la client, şi de punere în aplicare continuă procesul său. Există mai
multe variante şi subtilităţi în implementări diferite, rezultând într-o varietate de diferite
(incompatibile) RPC protocoale. În timp ce serverul este procesarea apelului, clientul este blocat
(se aşteaptă până când serverul a terminat de procesare, înainte de reluarea executie), cu excepţia
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 aplicaţie RPC simplă constă dintr-un client si server, serverul fiind pe calculatorul care
execută procedura. Aplicaţia client comunică cu procedura de pe calculatorul la distanţă
transmiţând argumentele si recepţionând rezultatele. Clientul si serverul se execută ca două
procese separate care pot fi pe calculatoare diferite din reţea. Biblioteca RPC realizează
comunicarea dintre aceste două procese. Procesele client si server comunică cu ajutorul a două
interfeţe 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 utilizând 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 păstrate 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 reţea care este responsabil cu asocierea de servicii la diferite
porturi; acest serviciu de asociere a porturilor este oferit la portul 111. Utilizând 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.

8. Retele fara fir p223


-telefonia celulara, transmiterea de date in retele mobile si serviciile multimedia->dezvoltare
-se ref la intersectia a doua elemente- calculatoarele di noduri si mai ales pe cele portabile
- comunicatiile cu sau fara cablu
-fol pt a interconecta calculatoarele personale si serverele din firme, universitati, orase, posta
electronic, navigare internet.
-rol-realizeaza o legatura intre utilizatori si sursele de informative
-ofera beneficial mobilitatii utilizatorilor si o desfasurare flexibila a unei retele intro anumita arie
Provocari ale retelelor fara fir:
-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 rețelelor fără fir după aria acoperită

După aria acoperită, de la mic la mare:

 Wireless Personal Area Network (WPAN) - v. Rețea personală 1-10m


 Wireless Local Area Network (WLAN) - v. Rețea locală -500m
 Wireless Metropolitan Area Network (WMAN) - v. Rețea metropolitană cf. Standardul
802.16 sau WiMAX 20-50 km
 Wireless Wide Area Network (WWAN) - v. Rețea de arie largă>10

9. Algoritmul RSA

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 exponenţial. În criptosistemul RSA cu cheie publica, un participant
creează cheia sa publica si secreta prin următoarea 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 relaţia n=pq.
3. Se alege un număr 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 menţine 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).
10. Semnatura digitala

O semnătură digitală este un cod special, necesar pentru păstrarea integrităţii mesajului, codul
putând fi generat de către un participant unic. Algoritmul cel mai usor de înţeles este cel ce
creează o semnătură RSA, care funcţionează în mod evident- deoarece participantul este unica
persoană care îsi cunoaste cheia privată, el/ea foloseste acea cheie pentru a produce acea
semnătură. Oricare alt participant poate verifica acea semnătură folosind cheia publică
corespunzătoare. Cu alte cuvinte, pentru a semna un mesaj el se criptează folosind cheia privată,
iar pentru a verifica semnătura se decriptează, folosind cheia publică a presupusului expeditor.
In mod evident aceasta înseamnă că producerea unei semnături RSA este la fel de înceată ca si
RSA care este, după cum am văzut mai înainte, de două până la trei ordine de mărime mai
încet decât DES. Observăm că folosirea cheilor este exact inversă relativ la folosirea lor pentru
asigurarea secretului; expeditorul criptează cu cheia sa privată în locul cheii publice a
destinatarului, iar destinatarul decriptează folosind cheia publică a expeditorului în locul cheii
sale private.
Să notăm că s-a mai propus o semnătură digitală cunoscută ca DSS care este similară
abordării descrise, exceptând faptul că foloseste un algoritm alternativ, numit ElGamal, în loc
de RSA.

11. Noduri invizibile

12. desenati si descrieti pachetele protocolului IP si sa descrieti fiecare camp

Principalul serviciu oferit de către nivelul IP este serviciul de transport al unui articol de dată de
la un nod IP sursă la unul destinaţie. Pentru aceasta, articolul de dată este încapsulat într-un
pachet IP. Un astfel de pachet poate fi definit ca o secvenţă de octeţi divizată în câmpuri. Unul
dintre câmpuri conţine octeţii care formează articolul de date. Celelalte câmpuri sunt folosite de
către nivelele IP uzitate pentru a transmite cadrul la destinaţia IP corectă si pentru reconstruirea
articolului de date. De asemenea, uneori e necesară fragmentarea unui pachet când acesta
provine dintr-o reţea cu o dimensiune mare a cadrului de date. Un pachet poate fi marcat " a nu
se fragmenta" si el va fi îndrumat pe o cale ce evită fragmentarea, iar dacă nu se poate, va fi
ignorat.
Fragmentarea trebuie să poată fi făcută într-un număr arbitrar de pachete si trebuie prevăzută
posibilitatea de reasamblare corectă,în secvenţă, la destinaţie. Acest lucru se obţine prin
interpretarea câmpurilor de flag-uri si offset din cadrul antetelor Internet ale fragmentelor.
Un pachet IP are structura indicata:
Câmpurile din cadrul IP au următoarea semnificaţie:
Ver: Versiunea, identificator de 4 biţi, conţinând versiunea protocolului IP al acestui cadru.
IHL: câmp de 4 biţi care dă lungimea antetului din cuvintele de 32 de biţi.
TOS: Tipul serviciului, câmp de 1 octet, specificând tipul de serviciu cerut de acest cadru.
Lenght: conţine lungimea totală a cadrului Ethernet, incluzând haderul si data.
Ident: câmpul ident împreună cu câmpurile adresa sursă si destinaţie, identifică în mod unic
datagrama în timpul existenţei pachetului IP.
Flags: indică dacă un mesaj este transmis într-un singur pachet IP sau este fragmentat în mai
multe pachete.
Foff: câmpul fragment offset poziţionează octeţii din cadrul IP în articolul de date original.
TTL: timpul de trăit dă timpul maxim de existenţă al cadrului IP. Acest câmp este utilizat
pentru evitarea buclelor infinite pentru pachetele IP.
Prot: câmpul protocol identifică protocolul datei conţinute în cadrul IP( TCP sau UDP)
Chek: suma de control a antetului IP (excluzând câmpul de date).
Source: adresa IP a nodului de reţea IP transmiţător.
Destination: adresa IP a nodului de reţea IP destinaţie.
Options: câmpul acesta de lungime variabilă poate conţine opţiuni IP.
Data: câmpul data nu este o parte din antetul IP si conţine articole de date de transmis. Datorită
limitei impare a câmpului Lenght, întregul cadru IP are o lungime maximă de 216. Aceasta
limitează de asemenea si lungimea câmpului de date.

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 fără erori.
Soclurile de datagrame folosesc de asemenea IP-ul pentru rutare, dar nu folosesc TCP-ul; ele
folosesc protocolul UDP. De ce sunt fără conexiune? Deoarece nu trebuie să menţii o
conexiune deschisă ca si în cazul soclurilor de flux. Se realizează un pachet, căruia i se
atasează un antet IP cu informaţii despre destinaţie si apoi se trimite. Nu este nevoie de o
conexiune. In general sunt folosite pentru transfer de informaţii pachet cu pachet. Exemple de
aplicaţii: tftp, bootp, etc.
Cum funcţionează 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 răspuns în, să zicem, cinci
secunde, va retransmite pachetul până va primi un pachet ACK. Această procedură de
recunostere este foarte importantă în implementarea aplicaţiilor SOCK_DGRAM.
14. Desenati si descrieti autentificarea de tip "increderea in a 3-a persoana"

Un scenariu mai plauzibil este că cei doi participanţi nu stiu nimic unul despre celălalt, dar
amândoi au încredere într-o terţă persoană. Această terţă persoană este câteodată numită
server de autentificare si foloseste un protocol pentru a ajuta cei doi participanţi să se autentifice
unul pe celălalt.
Sunt de altfel mai multe variaţiuni ale acestui protocol. Cel descris aici este numit Kerberos si
este un sistem bazat pe TCP/IP dezvoltat la MIT.
Fie A si B cei doi participanti si S serverul de autentificare. 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.
Participantul A trimite un mesaj serverului S care îl identifică pe el si pe B. Serverul generează
o cuantă de timp T, un timp de viaţă L si o nouă cheie de sesiune K. Cuanta de timp T va fi
folosită similar numărului aleator din metoda anterioară si este de asemenea folosită împreună
cu L pentru a limita timpul pentru care sesiunea K este validă.
Participanţii A si B vor trebui să se întoarcă la serverul S pentru a primi o nouă cheie de sesiune
când expiră acest timp. Ideea aici este de a limita vulnerabilitatea oricărei chei de sesiune.
Serverul S răspunde lui A cu un mesaj din două părţi.
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.

15. Problema nodului ascuns in cazul retelelor locale fara fir

S-ar putea să vă placă și