PR-Examen

65
1. Apariţia şi importanţa rețelelor de calculatoare. Avantajele utilizării lor (strategice, tactice). O retea de calculatoare reprezinta un ansamblu de calculatoare interconectate prin intermediul unor medii de comunicatie, asigurindu-se in acest fel utilizarea in comun de catre un numar mare de utilizatori a tuturor resurselor fizice(hardware), logice(software si aplicatii de baza) si informatice(baze de date) de care dispune ansamblul de calculatoare conectate. Anii 60 și se numea ARPANET. Avantaje strategice de utilizare: Facilitarea comunicatiilor in cadrul unei corporatii: acces la informatie la distanta, schimb de informatii; Imbunatatirea dinamicii grupului de lucru: groupware; Reducerea bugetelor de prelucrare a datelor Imbunatatirea competitivitatii; Avantaje tactice de utilizare: 1

description

univer

Transcript of PR-Examen

Page 1: PR-Examen

1. Apariţia şi importanţa rețelelor de calculatoare. Avantajele utilizării lor (strategice, tactice).

O retea de calculatoare reprezinta un ansamblu de calculatoare interconectate prin intermediul unor medii de comunicatie, asigurindu-se in acest fel utilizarea in comun de catre un numar mare de utilizatori a tuturor resurselor fizice(hardware), logice(software si aplicatii de baza) si informatice(baze de date) de care dispune ansamblul de calculatoare conectate.

Anii 60 și se numea ARPANET.

Avantaje strategice de utilizare:

Facilitarea comunicatiilor in cadrul unei corporatii: acces la informatie la distanta, schimb de informatii;

Imbunatatirea dinamicii grupului de lucru: groupware; Reducerea bugetelor de prelucrare a datelor Imbunatatirea competitivitatii;

Avantaje tactice de utilizare:

Reducerea costurilor per utilizator: partajare resurse, îmbunătățirea timpului de răspuns;

Îmbunătățirea redundanței de calcul; Îmbunătățirea administrării software-ului; Îmbunătățirea integrității datelor.

2. Cerinţe principiale faţă de reţelele de calculatoare şi problemele legate de proiectarea lor.

1

Page 2: PR-Examen

Unele probleme legate de proiectarea RC sunt:

Se adaugă cheltuieli la procurarea echipamentelor, produselor program de rețea, instruire personal etc.

Este necesar un specialist în administrarea rețelei (control, securitate, modernizare etc.)

Limitează mobilitatea calculatorului la punctul de conexiuni la rețea

Rețeaua este un mediu efectiv de propagare a virușilor, astfel este necesară o atenție deosebită mijloacelor de securitate;

Sunt necesare mecanisme și procedee informaționale și tehnice cu scopul prevenirii furtului și distrugerii informației;

Cerințele principale față de rețelele de calculatoare sunt:

Funcționalitatea Eficiență(timp de răspuns, viteza de transmisie, capacitate de

trecere, latența) Fiabilitate și siguranță(intensitatea refuzului de funcționare, grad

de pregătire, probabilitatea livrării, toleranța la erori, integritate și coerență)

Extensibilitate și scalabilitate Transparență Adaptabilitate și compatibilitate Posibilități de management(monitorizare, control al traficului)

3. Standardizarea reţelelor. Noţiunea de sisteme deschise. Organizaţii de standardizare. Standarde Internet.

2

Page 3: PR-Examen

Sistem deschis- orice sistem construit conform unor specificații deschise.

Specificații deschise- specificație publicată și liberă accesibilă,unanim aplicată fiind rezultatul unui consens.

Cunoaștem următoarele organizații de standardizare:

ISO- International Standards OrganizationITU- International Telecommunication UnionIEEE- Institute of Electrical and Electronics EngineersEIA- Electronic Industries AssociationECMA- European Computer Manufacturers AssociationStandarde Internet:

ISOC(Internet Society)-soluționarea problemelor legate de evoluția și dezvoltarea rețelei Internet.IAB(Internet Arhitecture Board)- organizație responsabilă de controlul ethnic.IETF(Internet Engineering Task Force)- Soluționarea problemelor tehnice actualeIRTF(Internet Research Task Force)- coordonează proiecte de cercetare de lungă durată.Ciclul de viață al unui standard:

Standard de firmă Standard special ale unor comitete și uniuni Standard naționale și internaționale

4. Dezvoltarea distribuită a aplicațiilor utilizînd sistemul de versionare Git;

3

Page 4: PR-Examen

a. Sisteme de versionare: locale, centralizate, distribuite

b. Principii generale de versionare distribuită Gitc. Comenzile utilitarului Git referitoare la:

i. Creare/instanțiere repozitoriu local;ii. Actualizarea repozitoriului local;iii. Repozitorii distante;iv. Ramificari

4.a Sisteme de versionare locale- metoda mai multor persoane de control al versiunii este de a copia fisierele in alt directoriu. Aceasta este foarte obisnuit , deoarece este usor de usor de folosit, dar in acelas timp provoaca foarte multe erori. Este foarte usor de uitat directoriul si sa copii in altul. Pentru a face fata acestei probleme, programatorii au dezvoltat SCV locale, care au avut o baza de date simpla care pastreaza modificarile tuturor fisierelor. Un astfel de instrument foarte popular este numit RCS. RCS functioneaza prin mentinerea seturilor de patch-uri (adica diferentele dintre imagini) intr-un format special de pe disc; se poate apoi recrea orice fișier în orice moment prin însumarea tuturor patch-urilor.

Sisteme de versionare centralizate – o alta problema a SCV este aceea că dezvoltatorii trebuie să colaboreze între ei. Sistemele CVS, Subversion și Perforce, au un singur server ce conține toate fișierele versionate, și un număr de clienți care verifică fișiere din acel loc central. Timp de mulți ani , aceasta a fost standard pentru controlul versiunilor. Aceasta oferă multe avantaje, de exemplu, toată lumea știe într-o anumită măsură acea informație la care are acces. Acest tip de sistem este mai ușor de administrat decît cele cu baze de date locale pentru fiecare client. Cu toate acestea, această configurare are, de

4

Page 5: PR-Examen

asemenea, unele dezavantaje serioase. Cele mai evidente este punctul unic de eșec care este reprezentat de serverul centralizat. Dacă serverul cade timp de o oră, atunci în acea oră nimeni nu poate colabora sau salva modificări la tot ceea ce a lucrat. În cazul în care hard disk-ul în baza de date centrală devine corupt și nu au fost făcute backup-uri, se pierde absolut totul, întreaga istorie a proiectului. Cu aceeași problemă se confruntă și sisteme de versionare locale.

Sistemele de versionare distribuite- ex. Git, Mercurial, Bazaar, Darcs. Clienții nu doar verifică ultimele snapshot-uri, dar au depozitul complet. Astfel, dacă orice server cade, iar aceste sisteme colaborează prin acestea, oricare dintre depozitele clineților pot fi copiate înapoi pe server pentru a fi restabilite. Fiecare clonă este de fapt o copie de siguranță completă a tuturor datelor. În plus, aceste sisteme se descurcă destul de bine cu repositoriile de la distanță, astfel se permite comunicarea cu diferite persoane în cadrul proiectului.

4.b Git – reprezinta un sistem de gestionare a versiunii. Acesta ne permite sa pastram fiecare versiune a proiectului ca imagini. Acesta ne permite sa revenim la o versiune a proiectului la care noi dorim, putem compara modificarile, putem vedea cine ultimul a modificat ceva in proiect care ar fi putut fi cauza oarecarei probleme. Utilizind sistemul de gestionare a versiunii , in caz de pierdere a informatiilor, usor le putem recupera. Diferența dintre Git și alte SVC este acela că cele mai multe din sisteme păstrează informațiile ca o listă a schimbărilor bazate pe fișiere, pe cînd Git le păstrează ca un set de fișiere și modificările aduse de fiecare fișier în timp. Cele mai multe operații în Git au nevoie doar de fișierele locale și resursele pentru a opera, în general nu este nevoie de nici o altă informație de pe un alt calculator din rețea.

5

Page 6: PR-Examen

În general Git lucrează în felul următor: Tu modifici fișierele în directoriul tău de lucru Tu organizezi fișierele, adăugînd snapshot-uri pentru zona de

așteptare Faci commit, aici se i-a dosarele care se află în zona de transfer

4.c Git init – inițializare

Git add – crearea librăriilor proprii

Git commit – anunță modificare

Git status - verifică statut

Git branch – crearea unei noi ramuri

5. Aplicaţii şi servicii Interneta. Spațiul WWW:

i. Metodele protocolului HTTP, ii. Formatul mesajelor HTTP,iii. Antetele mesajelor,iv. Clase și componente destinate interacțiunii prin

HTTP (.Net)/(Java);b. Poştă electronică,

i. Protocolul SMTPii. Protocolul POP3iii. Clase și componente destinate

transmisiunilor(SMTP .Net sau Java)/citirii (POP3 java) mesajelor electronice;

5.a WWW (protocolul HTTP)

Hypertext Transfer Protocol (HTTP) este metoda cea mai des utilizată pentru accesarea informațiilor în Internet care sunt

6

Page 7: PR-Examen

păstrate pe servere World Wide Web (WWW). Protocolul HTTP este un protocol de tip text, fiind protocolul "implicit" al WWW. 

Metodele:

Get, Post, Put, Delete, Head, Trace

Get – implică extragerea oricărei informații.

HEAD – este identică cu Get, doar că serverul nu trebuie să trimită corpul mesajului. Informația transmisă la această metodă, trebuie să fie identică cu răspunsul obținut de la o cerere Get. Această metodă poate fi utilizată pentru a obține informații despre meta-obiect specificat în cerere, fără transferul corpului obiectului. Această metodă este des utilizată pentru link-uri de testare a hipertextului de valabilitate, accesibilitate și relevanță.

POST – este utilizată atunci cînd serverul de aplicații acceptă obiectul inclus în cerere ca noua resursă secundară identificate de Cerere-URI în cererea LINE. POST este conceput pentru a oferi un sistem uniform cu următoarele funcții:

6. Abstractizarea resurselor existente7. Postarea de mesaje pe un avizier, newsgroup, lista de discutii, sau

un alt grup de articole;8. Eliberarea unei unități de date cum ar fi un proces de transmitere

a formelor sale de prelucrare;9. Extinderea bazei de date cu ajutorul operației add (adăugare).

PUT – prevede că obiectul încorporat a fost stocat folosind Cerere-URI. Dacă Request-URI se referă la o resursă deja existentă, entitatea trebuie considerată ca o versiune modificată a unui obiect pe serverul

7

Page 8: PR-Examen

sursă. Dacă cererea-URI nu indică o resursă existentă, utilizatorul care solicită poate determina acest URI ca o nouă resursă, serverul sursă poate crea resursa cu acest URI.

DELETE – impune ca serverul sursă să distrugă resursa identificată prin cerere-URI.

TRACE – permite clientului să vadă ce este primit la celălalt capăt al lanțului de interogare și să folosească aceste date pentru testare sau diagnosticare.

Mesajele HTTP includ cerintele clientului către server și serverul răspunsurile la client. Mesajele de solicitare și răspuns folosesc un format de mesaj comun RFC 822. Ambele tipuri de mesaje constau dintr-o linie de start, unul sau mai multe cîmpuri antet, o linie goală, sfîrșitul cîmpurilor antet și un corp al mesajului, care este opțional.

generic-message = start-line*message-headerCRLF[ message-body ]start-line = Request-Line | Status-Line

Antetul include domeniul comun antet, antetul cerere, antetul răspuns precum și entitatea antetului. Fiecare cîmp de antet constă dintr-un nume, urmat de (:) și un cămp cu valoare.

Message-header

= field-name ":" [ field-value ] CRLF

field-name

= token

field-value

= *( field-content | LWS )

8

Page 9: PR-Examen

5.b Poştă electronică (protocoalele SMTP și POP3)

Simple Mail Transfer Protocol (prescurtat, SMTP; în traducere aproximativă Protocolul simplu de transfer al corespondenței) este un protocol simplu, folosit pentru transmiterea mesajelor în format electronic pe Internet. SMTP folosește portul de aplicație 25 TCP și determină adresa unui server SMTP pe baza înregistrării MX (Mail eXchange, „schimb de corespodență”) din configurația serverului DNS.

POP3 sau Protocolul Post Office – Versiunea 3 este, alături de IMAP, unul din protocoalele utilizate de un calculator gazdă pentru recepționarea poștei electronice (e-mail).

Inițial, serverul pornește serviciul POP3 ascultând TCP portul 110. Când clientul dorește să utilizeze serviciul, este stabilită o conexiune TCP cu serverul. Când conexiunea s-a realizat, serverul POP3 trimite un salut. Clientul și serverul POP3 schimbă comenzi și răspunsuri până când conexiunea este închisă sau abandonată. Comenzile în POP3 sunt formate din caractere (modul insenzitiv), posibil să fie urmate de unul sau mai multe argumente. Toate comenzile sunt termintate prin perechea CRLF (\r\n).

6. Eficientizarea procesării în rețea: concurența9

Page 10: PR-Examen

a. Implementarea și planificarea firelor de execuțieb. Modele pentru multithreadingc. Efecte laterale negative ale utilizării concurenței:

deadlock, race condition, starvation, etc

6.a Implementarea firelor de execuție diferă de la un sistem de operare la altul, dar în majoritatea cazurilor firul este inclus în proces. În sistemele cu un singur procesor multithreading-ul este atins prin tehnici de multiplexare în timpa procesorului, time-slicing-ul în acest caz efectuându-se suficient de rapid pentru a crea impresia execuției simultane. Un alt caz se prezintă în sistemele multiprocesor, în care execuția simultană are loc efectiv. Majoritatea sistemelor de operare moderne suportă ambele posibilități, dar la care se poate adăuga și tehnicile bazate pe operații asincrone de intrare/ieșire.

Planificarea (schedule – eng.) firelor de execuție în sistemele de operare poate avea loc în special în două modalități: cooperativ și preemtiv. Planificarea cooperativă presupune că firele de execuție să renunțe la control odată ce acestea sunt la un anumit punct de oprire. Planificarea preemtivă este definită de o altă strategie, în care sistemul de operare utilizează anumite criterii pentru a decide cum să aloce timpul sarcinilor.6.b Unitatea „grea” de planificare la nivelul nucleului sistemului de operare este procesul, căruia se alocă resursele. Anume în cadrul proceselor se manifestă firele de execuție, care își partajează resursele disponibile. În cazul când firele de execuție sunt gestionate de sistemul de operare, acestea sunt considerate ca fire de execuție ale nivelului nucleu . Prioritățile acestor fire de execuție se transpun de la prioritățile proceselor din cadrul sistemului. Relația dintre firele de nivelul nucleului și spațiului utilizatorului este determinată de următoarele modele:

1:1 (kernel-level threading – eng.), în care firele create de utilizator corespund firelor planificate de nucleu (implementat în Windows API, Native POSIX Thread Library, etc.);

10

Page 11: PR-Examen

N:1 (user-level threading – eng.), în care firele create de aplicații se „execută” planificat în spațiul utilizatorului pe un singur fir de nivelul nucleului (implementat în GNU Portable Threads);N:M (hybrid threading – eng.), un compromis dintre precedentele două modele în care librăriile sunt responsabile pentru planificarea „execuției” multiplelor fire de nivel utilizator pe firele disponibile de nivel nucleu (implementat în Windows 7, Tera/Cray MTA, etc.);

7. Programare multi-threading utilizînd .Net / Javaa. Stările unui fir de execuţie. Lansarea, suspendarea

şi oprirea unui fir de execuţie. b. Primitive şi tehnici de programare multi-threading

utilizând .Net Framework/Javai. Clase pentru realizarea cooperării

a. Starile unui fir de executie:Principalele stări ale unui fir de execuie sunt: Activ, Pregătit și Blocat. Comparativ cu acestea, procesele au și starea specifică Repaus (Sleep). Daca un proces este eliminat din memoria RAM, toate firele de execuție ale acestuia vor fi oprite, deoarece se aflau în acelși spațiu de memorie ca și procesul respectiv.

Crearea: Atunci când un proces este pornit, se creează un thread pentru acel proces. Apoi, acel thread poate crea și gestiona mai multe threaduri, fiecare având pointeri către instrucțiunile specifice lui.

Blocarea: Atunci când un thread trebuie să aștepte altul, acesta este blocat - fiind salvat în stivă pointerul la acesta. Funcția de blocare se poate apela atât din interiorul cât și din exteriorul threadului.

Deblocarea: Un thread blocat poate fi deblocat în urma unei comenzi externe.b. Thread- clasa care permite crearea firelor de executie

ThreadPool

11

Page 12: PR-Examen

AutoResetEvent- permite thread-ului sa se deblocheze o data cind acesta primeste signal de la altul.

ManualResetEvent- permite thread-ului sa se deblocheze pe termen nelimitat cind acesta primeste un signal de la altul.

ManualResetEventSlim-

CountDownEvent- permite thread-ului sa se deblocheze cind acesta primeste un numar predefinit de semnale.

Barrier- implemeneaza thread-ului sa execute in forma bariera.Semaphore lock - monitor

8. Interacțiunea proceselor concurente: Excluderea reciprocăEnunţul problemei excluderii reciproce.Încercările Dijkstra pentru soluţionarea problemei de excludere reciprocă.

8.a Formularea problemei:

In zona critica se poat afla in acelaș moment de timp un singur fir de execuție.Pentru rezolvarea problemei trebuie îndeplinite următoarele condiții:

- Thread-urile nu trebuie să se blocheze unul pe altul- Procesele nu se invită la infinit(nu sunt prea altruiste)- Dacă un proces intirzie în secțiunea sa critică acestea nu trebuie

să împiedice alt process să între în secțiunea sa critic dacă dorelte acest lucru.

8.c Încercările lui DIjkstra- 1- nu se îndeplinește ultima condiție.

12

Page 13: PR-Examen

- 2- Nu se asigură ecluderea mutual- 3- nu se asigură prima condiție. Sunt egoiste- 4- sunt prea altruiste

Soluția lui Dijkstra a fost introducerea noțiunii de semafor.

9. Interacțiunea proceselor concurente: Semafoarelea. Tehnici esenţiale de sincronizare utilizând

semafoarele: Signaling, Rendez-vous, Mutex, Multiplex, Barrier.

b. Modele de procesare cereri în rețea: problemele clasice de concurență:

i. Jocul viețiiii. Filosofii chineziiii. Producător-consumătoriv. Cititori-scriitori

9.a Semafor: numar natural asupra caruia pot fi efectuate 2 operatii: p si v.

Signaling- este procesul utilizat în cazul cînd dorim ca un fir de execuție să aștepte semnal de la altul.

Rendez-vous- este procedeul utilizat în cazul cînd dorim să ne asigurăm că la un moment dat de execuție un fir să aștepte alt fir, și viceversa.

CountdownEvent a = new CountdownEvent(1);CountdownEvent b = new CountdownEvent(1);Thread A:statement a1;b.signal();a.wait();statement a2;

Thread B:statement b1;

13

Page 14: PR-Examen

a.signal();b.wait();statement b2;Mutex- este procedeul utilizat în cazul cînd dorim să asigurăm excluderea reciprocă. În zona critic se poate afla un singur thread.

Semaphore s = new Semaphore(1,1);Thread p1(){s.wait()cs1s.signal()}

Thread p2(){s.wait()cs2

s.signal()}

Thread p3(){s.wait()cs2s.signal()}

Multiplex- este procedeul utilizat în cazul cînd avem m fire de execuție și dorim să permitem accesul în secțiuni critice la un număr mai mic sau egal de n fire, și n<m.

Semaphore s = new Semaphore(2,2);Bariera- caz general al Rendez-vous. Atunci cind avem n thread-uri, care vor aștepta ca toate să fie într-un moment de execuție.

Barrier bar = new Barrier(4);Main(){New Thread(Lounch).Start(1);New Thread(Lounch).Start(2);New Thread(Lounch).Start(3);New Thread(Lounch).Start(4);Void Lounch(object i){Statement 1;Bar.SignalAndWait();

14

Page 15: PR-Examen

Statement 2;} }7.b Jocul vieții:

Un tabel dreptunghiular a cu m linii și n coloane conține celule care pot fi vii sau moarte. Fiind dată o configurație a tabelului, se cere să se calculeze configurația “generației” următoare, știind că celulele moarte îșă păstrează starea, iar o celulă vie moare dacă și numai dacă numărul celulelor vecine vii este mai mic decît 2 sau mai mare decît 4. O celulă are cel mult 8 vecini: pe orizontală, pe verticală și pe diagonală.

Producător-consumator

Producătorul produce articole care sunt așezate pe o bandă. Consumatorul ia de pe bandă articole și le consumă.

- Producătorul poate produce un articol la orice moment de timp- Consumatorul poate prelua un articol doar dacă banda este validă

15

Page 16: PR-Examen

- Ordinea în care produsele sunt preluate de pe bandă de către consumator coincide cu ordinea în care sunt așezate pe bandă de către producător.

Filosofii chinezi

La o masă rotundă stau 5 filosofi chinezi. Principala lor activitate este cea de a gîndi, dar evident din cînd în cînd trebuie să mănînce, folosind pentru aceasta cîte două bețișoare. știind că între oricare 2 filosofi se află cîte un bețisor și că un filosof poate mînca doar dacă a ridicat de pe masă atît bețișorul din stînga sa, cît și bețișorul din dreapta sa, se cere să se stimuleze activitățile filosofilor așezați la masă.

- Doar un filosof poate lua bețișorul într-un moment de timp- Nici un filosof nu trebuie să flămînzească așteptînd bețișoarele- Să fie posibil ca numărul filosofilor ce mănîncă la un moment de

timp să fie mai mare decît 1.

16

Page 17: PR-Examen

Se consideră o carte la care au acces mai mulți cititori și mai mulți scriitori. Este permis ca mai mulți cititori să aibă acces simultan la conținutul cărții, dar dacă un scriitor operează asupra cărții(completează, șterge, modifică) atunci nici un alt scriitor și nici un alt cititor nu au acces la carte.

- Un cititor poate începe operația de citire dacă și numai dacă nici un scriitor nu este în curs de a scrie în carte

- Un scriitor poate începe operația de scriere dacă si numai dacă nici un cititor și nici un alt scriitor nu au acces la carte.

17

Page 18: PR-Examen

10. Noţiunea de protocol. Caracteristicile protocoalelor.Protocol- set de reguli și formate ce guvernează schimbul de date între 2 entități. Elementele cehie ale specificarii:

- Serviciul- Ipoteze despre mediul de executie- Vocabularul mesajelor- Formatul mesajelor- Reguri procedurale de interschimb mesajeCaracteristici:

- Direct sau indirect- Monolitic sau structurat- Simetric sau asimetric- Standard sau nestandard

11. Ierarhii de protocoale. Noţiunea de arhitectură de reţea. Interfeţe şi servicii.

SAP - Service Acces PointIDU - Interface Data Unit (SDU + ICI)SDU - Service Data Unit (transmitere verticala)PDU - Protocol Data Unit (transmitere orizontala)ICI - Interface Control Information

12. Modele de servicii: servicii orientate pe conexiune şi fără conexiune.

Servicii orientate pe conexiuni(garanteaza ordinea transferului de mesaje)

Flux de mesaje sigurFlux de octeți sigurConexiune nesigură

Serviciii fara conexiuni(nu garanteaza ordinea)Datagramă nesigurăDatagramă confirmată

18

Page 19: PR-Examen

Cerere-răspuns

13. Funcţiile protocoalelora. de segmentare, de reasamblare,b. de încapsulare,c. de control conexiune, de control flux;d. de tratare erori,

i. Detecția erorilor - calculul polinomialii. Corecția erorilor - metoda Hamming

e. de sincronizare (ordonare livrare)f. de adresare, de multiplexare.

13.a Segmentare și reasamblare. Sunt funcțiile de transport al protocoalelor. Motivele tipice pentru segmentare:

rețeaua poate accepta blocuri de date de o anumită dimensiunetratarea erorilor poate fi mai eficientăacces mai echitabil la mediul de transmisieunități de transmisie de dimensiuni mici, buffer-e mici la receptori

Functia de tratare a erorilor presupune fie detectarea erorilor cu un CRC sau fie corectia lor folosind un algorimt spre exemplu Hamming.

13.b Functia de incapsulare presupune adaugarea unei informatii(antet) la unitatea de date ca la acelasi nivel al stivei tcp/ip de la receptor protocolul sa inteleaga ce trebuie sa faca cu datele.

Functia de sincronizare presupune ca fiecarui pdu i se adauga o informatie privind numarul sau de ordine atunci cind se cere ca datele sa fie livrate intro ordine anumita.

13.b Controlul fluxului funcția de gestiune. Evitarea inundării a entității receptoare cu pachete

19

Page 20: PR-Examen

se limitează volumulse minimizează viteza

Functia de adresare presupune identificarea destinatarului prin specificarea unui cimp in PDU, iar functia de multiplexare permite utilizarea aceleasi conexiuni pentru mai multe servicii concomitent, prin specificarea nume port sau nume conexiune.

14. Modele arhitecturale de referință:a. Modelul de referinţă ISO/OSI b. Modelul de referinţă TCP/IP;

14.a Modelul Open Systems Interconnection (OSI):FizicLegatura de dateReteaTransportSesiunePrezentareAplicatie

Echipament de rutare:FizicLegatura de dateRetea

Nivelul fizicNivelul fizic defineste modul de transmitere a bitilor printr-un

canal de comnucatie.Acest nivel determina:

reprezentarea unitatilor si zreourilor logice tipul transmisiei - bidirectionala sau unidirectionala

20

Page 21: PR-Examen

modalitatea de stabilire a conexiunii initiale modalitatea de intrerupere a conexiunii citi pini are conectorul de retea si la ce foloseste fiecare pin, etc

Nivelul legatura de date- descompunerea datelor de intrare in cadre de date- marcarea si recunoasterea delimitatorilor intre cadre- transmiterea secvetiala a cadrelor- rezolvarea problemelor detoarate cadrelor deteriorare, pierdute

sau dublicateo prelucrarea cadrelor de confirmare trimise inapoi de

receptoro evitarea inundarii unui receptor lent cu date provenite de la

un emitator rapido rezolvarea problemelor de concurenta dintre cadre in cazul

transmisiei bidirectionale

HDLC - High levele data lin channel- PPP(TCP/IP) - point to point protocol- LAPB(X.25) - link acces procedure balanced- LAPD(ISDN) - link acces procedure d-channle (ISDN - integrate

service digital network)- LLC(LAN) - logical link control,- LAPM Relay - link access procedure for Modems (V.42),- SDLC - Synchronous data link control (SNA - Systems Network

Architecture)LLC -logical link controlMAC - medium access control

Nivelul reteaPrintre problemele esentiale ce sunt solutionate la aces nivel se pot mentiona:

- modul de dirijare a pachetelor de la sursa la destinatie- controlul congestiei- diferenta dintre mecanismele de adresare ale diferitor retele

21

Page 22: PR-Examen

Nivel transport- defineste caracteristicile transportului intre noduri - tipuri de

servicii- stabileste, mentine si termina circuitele virtuale - mecanisme de

multiplexare- detecteaza si remediaza erorile care au aparut in procesul de

transportControleaza fluxul de date

- gazde lente-rapide:sliding window

Nivelul sesiune- Nivelul de sesiune permite utilizatorilor de pe masini diferite sa

stabileasca intre ei sesiuni- Furnizeaza servicii imbunatatite de transport

o controlul dialoguluio sincronizarea

Nivel de prezentareNivelul prezentare are ca scop traducerea informațiilor în formate pe care mașinile care comunică le pot înțelege.Poate fi asociat principal cu sintagma: formatul informației.

Nivel aplicațieProtocoale prin intermediul cărora utilizatorul accesează serviciile de rețea.

14.b Modelul de referinţă TCP/IP.

Modelul TCP/IPCel mai utilizat model de referinta, creat in baza unei tehnologii existente – ARPANET (DoD)Stiva de protocoale al acestui model poate fi utilizat, atît pentru interconectarea rețelelor eterogene(INTERNET), cît și pentru construirea rețelelor locale

22

Page 23: PR-Examen

Aplicație AplicațiePrezentareSesiuneTransport TransportRețea InternetLegături de date Gazdă la rețeaFizicOSI TCP/IP

Protocoale importante din TCP/IPAplicație Aplicație (FTP, HTTP, POP3m

SMTP, TFTP)

LDAP(Lightweight DIrectory Acces Protocol), DNS

PrezentareSesiune

Transport Transport TCP(transmision control) UDP(User datagram)

Rețea Internet ICMP(Internet Control Message Protocolo)IP(Internet protocol)

Legături de date Gazdă la rețea(ARP Addres Resolution Protcolo), RARP (Reverse ARP)

Fizic

OSI TCP/IP

Adresarea IPAdresare MAC

Greu de localizat hostul dintr-o altă rețea;Adresarea IP

Permite de găsit destinația prin metode eficiente;

23

Page 24: PR-Examen

Permite de realizat ușor segmentarea, necesară în cazul creșterii rețelei;

Corespunde schemei de 32 biți (în cazul IPv4): Adesa de rețea

Adresa hostuluiEnterProposedDraft stdStandard

15. Stiva de protocoale TCP/IP:o Protocolul rezoluţiei de adrese ARP,o Protocolul de mesaj control Internet ICMP; Structura

pachetului ICMP;o Protocolul IP. Structura pachetului IP. o Adresare IP. Identificatori de reţea şi noduri. Clase de

adrese IP;

Stiva de protocoale TCP/IP este una din cele mai populare și avansate stive de protocol de comunicație. Stiva a fost dezvoltată pentru a lega rețeaua experimentală ARPnet cu alte rețele ca un set de protocoale comune pentru mediile de calcul eterogene. Stiva de protocoale TCP/IP este împărțită în 4 nivele:

24

Page 25: PR-Examen

Nivelul cel mai de jos este IV(gateway-uri de nivel) – este valabil pentru modelul de nivel fizic și legătură de date OSI. Acest nivel în protocoalele TCP/IP nu este reglementată, dar suportă toate standardele de nivel fizic și legătura de date: pentru canalele locale este Ethernet, Token Ring, FDDI, pentru canalele globale – SLIP/PPP și ISDN seria WAN.

Nivelul III (nivel de interconectare) – se ocupă cu transmiterea de datagrame prin utilizarea diferitor rețele LAN X.25 , linii de comunicații. În calitate de protocol de rețea de bază, stiva de protocoale TCP/IP utilizează protocolul IP, care a fost inițial conceput ca un pachet de protocoale pentru schimbul pachetelor în rețea compozit, constînd dintr-un număr mare de rețele locale, combinate ca locale cît și globale. Din această cauză protocolul IP funcționează bine ăn rețelele cu topologie complexă.

Nivelul II(numit primar) – la acest nivel funcționează protocolul TCP și UDP. TCP oferă o conexiune stabilă între procese la distanță. Protocolul UDP oferă o metodă de transfer pachet datagramă de aplicare, adică fără a stabili o conexiune virtuală, de aceea necesită mai puține resurse decît TCP.

25

Page 26: PR-Examen

Nivelul I (cererea) – include astfel de protocoale larg utilizate ca protocololul pentru a copia fișiere FTP, terminalul telnet protocol de emulare, SMTP protocolul poșt ă, RELCOM, servicii de acces la informații de la distanță, cum ar fi WWW și multe altele.

15.a Pentru ca doua dispozitive de retea sa poata comunica este necesara cunoasterea atat a adresei MAC, cat si a celei logice. In cazul in care numai una dintre adrese este disponibila se apeleaza la un protocol dedicat care pe baza acesteia va determina cealalta adresa.

Stiva de protocoale TCP/IP conti doua protocoale de nivel retea pentru a servi acest scop: ARP (Address Resolution Protocol) si RARP (Reverse Address Resolution Protocol). ARP este protocolul ce va oferii adresa MAC a unui dispozitiv de retea, data fiind adresa sa IP.

ARP se bazeaza pe construirea si mentinerea unei tabele ARP. O tabela ARP are rolul de a oferii o corespondenta intre adresele IP si cele MAC. Acestea sunt construite dinamic si sunt stocate in memoria RAM. Desi exista mecanisme pentru adaugarea sau eliminarea unei intrari intr-o tabela ARP acestea sunt rareori folosite.

Fiecare computer sau dispozitiv de retea isi pastreaza propria sa tabela ARP.

26

Page 27: PR-Examen

15.b Protocolul de mesaj control Internet ICMP; Structura pachetului ICMP;Internet Control Message Protocol (abreviat ICMP) este un protocol din suita TCP/IP care folosește la semnalizarea și diagnosticarea problemelor din rețea. Protocolul este definit in RFC792. Mesajele ICMP sunt încapsulate în interiorul pachetelor IP. Versiunea ICMP ptr IPv4 este adesea cunoscuta ca ICMPv4; in schimb IPv6 dispune de un protocol similar cunoscut sub abrevierea ICMPv6.

Probabil cele mai utilizate programe care se bazează pe ICMP sunt ping și traceroute.Ping trimite mesaje ICMP de tip echo request ("cerere de ecou") către calculatorul țintă și așteaptă de la acesta mesaje ICMP de tip echo reply ("răspuns de tip ecou"). Dacă acestea nu sunt primite, se poate presupune că ceva este în neregulă cu conexiunea dintre cele două calculatoare.Antetul[modificare | modificare sursă]Antetul (header) ICMP începe imediat după antetul IPv4. Toate pachetele ICMP dispun de un antet de 8 octeți și de o secțiune de date de lungime variabila. Structura antetului ICMP este redata în figura de mai jos:

Biti 0-7 8-15 16-23 24-31

0 Tip Cod Suma de control

32 Restul antetului

Tip - tipul pachetului ICMP Cod - subtipul pachetului ICMP în funcție cu tipul selectat

anterior

27

Page 28: PR-Examen

Suma de control - Suma de control calculata în funcție de câmpurile antet ICMP + sir de date și este descrisa în RFC 1071.

Restul antetului - câmp de 4 octeți ce variază ca și conținut pe baza tipului/codului antetului ICMP.

In continuare este redata lista mesajelor de control (incompleta):

Tip Cod Descriere

0 - Echo Reply 0 Răspuns de tip ecou (utilizat pentru ping)

1 si 2 Rezervat

3 - Destinație de neatins (Destination Unreachable)

0 Retea destinație indisponibila

1 Gazda-destinație indisponibila

2 Protocol destinație indisponibil

3 Port destinație indisponibil

4 Solicitare fragmentare

5 Sursa de rutare eșuata

6 Retea destinație necunoscuta

7 Gazda destinație necunoscuta

8 Gazda sursa izolata

9 Acces rețea interzis

10 Acces gazda interzis

11 Retea inadmisibila pentru TOS

12 Gazda inadmisibila pentru TOS

28

Page 29: PR-Examen

13 Acces comunicație interzisa

14 Prioritate gazda încălcata

15 Prioritate interzisa

4 - Sursa ICMP "potolita" 0

Mesaj ICMP transmis inițiatorului, solicitând scăderea ratei de mesaje ICMP către un anumit ruter/gazda (datorita problemelor de congestie).

5 - Redirectare mesaje ICMP 0 Redirectare datagrama pentru rețea

6 Adresa gazda alternativa

7 Rezervat

8 - Echo Request 0 Cerere de ecou (echo request) utilizata în ping

... ... ...

11 - Expirare timer (time exceeded)

0 TTL expirat în timpul tranzitului

1 Timpul de reasamblare a fragmentelor expirat

... ... ...

30 - Traceroute Solicitare informații

... ... ...

29

Page 30: PR-Examen

o 15.c Protocolul IP. Structura pachetului IP.

Protocolul Internet[1] (sau IP din engl. Internet Protocol) este un protocol prin care datele sunt trimise de la un calculator la altul prin intermediu Internetului. Fiecare calculator (cunoscut sub denumirea de „gazdă”), are pe Internet cel puțin o adresă IP unică, care îl identifică între toate computerele din rețea. Când cineva trimite sau primește informații (de ex.: poștă electronică, pagini web) mesajul este împărțit în blocuri de mici dimensiuni denumite pachete. Fiecare pachet cuprinde adresa expeditorului și pe cea a destinatarului. Fiecare pachet este trimis, prima dată la un calculator-pasarelă, care înțelege o mică parte din internet.Calculatorul pasarelă citește destinația pachetelor și trimite pachetele către o altă pasarelă, și așa mai departe, până ce pachetul ajunge la pasarela vecină cu computerul destinatar.Adresa IP este utilizată la nivelul programelor de prelucrare în rețea. În schimb, la nivelul utilizatorilor cu acces la Internet, identificarea calculatoarelor se face printr-un nume de gazdă gestionat de sistemul DNS.O datagramă IP (un pachet) constă dintr-o parte de antet și o parte de text. Antetul are o parte fixă de 20 octeți și o parte opțională de lungime variabilă.Fiecare gazdă și ruter din internet are o adresă IP, care codifică adresa sa de rețea și de gazdă. Combinația este unică: în principiu nu există două mașini cu aceeași adresă IP. Toate adresele IP sunt de 32 biți și sunt folosite în câmpurile „Adresă sursă” și „Adresă destinație” a pachetelor IP. Este important de observat că o adresă IP nu se referă la o gazdă. Se referă, de fapt, la o interfață de rețea. Cu alte cuvinte, dacă o gazdă este în două rețele, trebuie să folosească două adrese IP .

30

Page 31: PR-Examen

Rețelele sunt dinamice și este posibil ca 2 pachete IP de la aceeași sursă să plece pe căi diferite (BGP – protocolul porților de graniță) și să ajungă la aceeași destinație. Pachetele IP (dupa cum s-a mai spus) nu au garanția că vor ajunge la destinație, acest lucru fiind lăsat în seama protocoalelor adiacente (TCP UDP etc).

Antetul IP

Versiune IHL Tip serviciu Lungime totală

Identificator Delimitatori Decalaj de fragmentare

Durata de viață Protocol Suma de control a antetului

Adresa expeditorului

Adresa destinatarului

Opțiuni Spațiere

Antentul IP:

Versiune – versiunea pachetului IP (curentă este 4) IHL – lungimea antetului IP de ieșire Tip serviciu – permite gazdei să comunice ce tip de serviciu

dorește Lungimea totală – lungimea pachetului Identificator – identificarea pachetului Delimitatori – conține 1 bit nefolosit 1 bit DF (fără fragmentare)

și unul MF (non-fragment) Decalaj fragmentare – indică unde este locul fragmentului în

datagramă Durata de viață – timpul de viața al pachetului (secunde), care

se decrementeaza la fiecare HOP (trecere dintr-un router în altul)

31

Page 32: PR-Examen

Protocol – indică cărui proces de transport să-l predea (TCP, UDP, etc.)

Suma de control a antetului Adresa de expediție Adresa de destinație Opțiuni – opțiuni ale pachetului (securitate, dirijare strictă pe

baza sursei, dirijare aproximativă pe baza sursei, înregistrare cale, amprenta de timp)

Niciunul din câmpurile IP nu sunt criptate și niciunul nu necesită autentificare.

Adresare IP. Identificatori de reţea şi noduri. Clase de adrese IP;

IP (Internet Protocol) este un protocol care asigură un serviciu de transmitere a datelor, fără conexiune permanentă. Acesta identifică fiecare interfață logică a echipamentelor conectate printr-un număr numit „adresă IP". Versiunea de standard folosită în majoritatea cazurilor este IPv4. În IPv4, standardul curent pentru comunicarea în Internet, adresa IP este reprezentată pe 32 de biți (de ex. 192.168.0.1).

Adresele IPv4 au o lungime de 32 de biți (4 octeți). Fiecare adresă identifică o rețea (network) și o stație de lucru (work station) din cadrul rețelei. Notația obișnuită este obținută prin scrierea fiecărui octet în formă zecimală, separați între ei prin puncte. De exemplu, 192.168.0.1(10) este notația folosită pentru adresa 11000000.10101000.00000000.00000001(2).Clase de adrese

32

Page 33: PR-Examen

La începuturile Internetului, adresele IPv4 se împărțeau în 5 clase de adrese, notate de la A la E. Împărțirea se făcea în funcție de configurația binară a primului octet al adresei, astfel:

Clasa

Primul octet în

binarPrima adresă Ultima adresă Observații

A 0xxxxxxx 0.0.0.1 127.255.255.255

folosește 8 biți pentru rețea și 24 pentru stația de lucru

B 10xxxxxx 128.0.0.0 191.255.255.255

folosește 16 biți pentru rețea și 16 pentru stație

C 110xxxxx 192.0.0.0 223.255.255.255

folosește 24 biți pentru rețea și 8 pentru stație

D 1110xxxx 224.0.0.0 239.255.255.255

folosită pentru adresarea de tip multicast

E 11110xxx 240.0.0.0 255.255.255.255

utilizată în scopuri experimentale

33

Page 34: PR-Examen

Adresele rețelelor au toți biții de stație 0 și nu pot fi folosite pentru o stație. În plus, mai există și adrese de difuzare, care au toți biții de stație 1.Pentru identificarea stațiilor se folosesc numai adresele de clasă A până la C. În plus, există două intervale de adrese de clasă A nefolosite în Internet:

Intervalul 0.0.0.0 - 0.255.255.255 nu se folosește, pentru a nu fi confundat cu ruta implicită;

Intervalul 127.0.0.0 - 127.255.255.255 este folosit numai pentru diagnosticarea nodului local (întotdeauna acesta va fi cel care va răspunde la apelul unei adrese din aceasta clasă).

16. Protocoale de transport. Sockets APIProtocolul orientat pe conexiuni TCP;

Antetul segmentului TCP, Mecanismul de control al fluxului - sliding

window; Stabilirea/ruperea conexiunii - handshake-

ul de protocol;Protocolul de transport datagrame UDP;Modelul de programare în rețea: Sockets API

Sockets pentru stabilirea de conexiuni TCP; Transmisiuni multicast/broadcast utilizînd

UDP;

16.1 Protocolul orientat pe conexiuni TCPTCP este un protocol orientat pe conexiune (connection-

oriented). Aceasta înseamnă că nu poate comunica sau transporta date până când nu stabile te o conexiune cu punctul de destina ie.ș ț Spre deosebire de TCP, UDP face parte din categoria protocoalelor care nu necesită stabilirea unei conexiuni cu destinatarul înainte de

34

Page 35: PR-Examen

a începe transmisia datelor (connectionless). În consecin ă, fiecareț mesaj care utilizează protocolul UDP trebuie să con ină toateț informa iile necesare ajungerii la destina ie. Un astfel de protocolț ț pasează mesajul următorului strat din stiva de protocoale si se bazează pe re ea pentru ca datele să ajungă la destina ie.ț ț

Antetul segmentului TCP

Câmpurile antetului:

Port sursă (16 biţi) identifică procesul utilizator al sursei;

20–FTP date implicite, 21–FTP control, 25-SMTP, 69 TFTP, 23–TELNET, 53–DNS, 80–HTTP, 161-agent SNMP, 179-BGP

* Port destinaţie (16 biţi).

Cele 2 câmpuri, portul sursă şi portul destinaţie, identifică punctele finale ale conexiunii.

* Număr de secvenţă (32 biţi)

Numărul de secvenţă este al primului octet din segment.

Dacă SYN e prezent, atunci acesta este numărul de secvenţă iniţial ISN (Initial Sequence Number) şi primul octete de date este ISN +1.

35

Page 36: PR-Examen

* Lungimea antetului (4 biţi) (data offset): numărul de cuvinte de 32 biţi ale antetului TCP. Este necesară deoarece câmpul ”opţiuni” are lungime variabilă.

* 6 biţi neutilizaţi, prevăzuţi pentru corecţia eventualelor erori ale protocolului iniţial.

* 6 biţi de control

URG = 1, dacă indicatorul ”urgent” e valid. Acest indicator arată care este deplasamentul (în octeţi) al informaţiei urgente relativ la numărul de secvenţă. Facilitatea suplineşte mesajele de întrerupere.

ACK=1, arată că numărul de confirmare e valid. Dacă ACK=0, segmentul TCP nu conţine o confirmare şi numărul de confirmare e ignorat.

PSH=1, forţarea expedierii, prin care TCP este solicitat să nu memoreze informaţia, în aşteptarea încărcării complete a bufferului.

RST (reset)=1, desfiinţează o conexiune când ea a devenit inutilizabilă, prin defectarea maşinii sau alte cauze. E folosit şi pentru a refuza un segment invalid sau a refuza deschiderea unei conexiuni (sensul depinde de context).

SYN=1, stabilirea unei conexiuni, împreună cu ACK=0 şi răspunsul SYN = 1, ACK=1 conexiune acceptată. Sincronizează numerele de secvenţă.

FIN = 1, nu mai sunt date, încheie o conexiune din partea emiţătorului. Deoarece segmentele SYN şi FIN conţin numere de secvenţă, vor fi procesate în ordine corectă.

* Fereasta (16 biţi): vor fi acceptaţi octeţii de la [ACK] la [ACK]+[fereastra]. La TCP controlul se face prin ferestre glisante. Dacă

36

Page 37: PR-Examen

fereastra este 0, înseamnă că au fost recepţionaţi corect toţi octeţii până la şi inclusiv ”Număr de confirmare-1”, dar receptorul nu mai doreşte continuarea transferului. Reluarea lucrului se face cu un segment cu acelaşi număr de confirmare şi fereastră nenulă.

* Suma de control (16 biţi), prevăzută pentru o fiabilitate maximă. Se calculează pentru următoarele câmpuri din antet: adresa sursă, adresa destinată, biţii de protocol (6), lungime segment (antet+date). Se pot detecta pachetele preluate eronat. Suma recepţionată se compară cu cea recalculată la recepţie şi dacă nu coincid a apărut o eroare.

* Indicatorul URGENT arată deplasamentul, în octeţi, al informaţiei urgente relativ la numărul de secvenţă. De fapt indică următorul octet de după informaţia urgentă. Astfel receptorul află câtă informaţie urgentă trebuie livrată imediat aplicaţiei destinate.

* Opţiuni (variabil), permite declararea lungimii maxime a segmentului (536 octeţi implicit), scalarea ferestrei, confirmări selective ACK, (retransmitere selectivă SR în loc de GBN, go-back-N), eticheta de timp (time–stamp), no-operation, sfârşitul opţiunilor

Mecanismul de control al fluxului - sliding window

Tehnica ferestrei glisante este o forma mult mai complexa a confirmării pozitive si a retransmisiei fata de metoda simpla. Protocoalele cu fereastra glisanta folosesc mai bine largimea de banda deoarece ele permit utilizatorilor sa transmita multiple pachete inaintea primirii unei confirmari. Cea mai simpla cale de a observa operatia de alunecare a ferestrei este sa ne imaginam o secventa de pachete ce vor fi transmise. Protocolul produce o mica

37

Page 38: PR-Examen

fereastra de dimensiune fixa si transmite toate pachetele care se afla in interiorul ei.

Emitentul grupeaza pachetele sale si utlilizeaza urmatoarele reguli:

Emitentul poate transmite pachetele din fereastra fara sa receptioneze o confirmare (ACK), dar porneste cate un cronometru (care va semnaliza depasirea unui interval de tmp prestabilit) pentru fiecare dintre pachete.

Receptorul trebuie sa confirme fiecare pachet primit, indicand numarul de secventa al ultimului pachet receptionat corect.

Emitentul deplaseaza fereastra (o gliseaza) la fiecare mesaj de confirmare.

Figura (a): Un protocol cu fereastra glisanta avand 8 pachete in fereastra.

Figura (b): Fereastra gliseaza astfel incat pachetul 9 poate fi trimis doar cand a fost receptionata confirmarea pentru pachetul 1. Doar pachetele neconfirmate sunt retransmise.

38

Page 39: PR-Examen

O data ce emitatorul a primit o confirmare pentru primul pachet (figura b) fereastra poate aluneca si el trimite urmatorul pachet. Fereastra continua sa alunece atat timp cat confirmarile sunt receptionate.

Stabilirea/ruperea conexiunii - handshake-ul de protocol

Stabilirea conexiunii în elegerea în 3 pa i (hand-shake) sau comunicarea cuț ș

confirmare SYN = 1 arată o cerere de conectare

Transferul datelor Terminarea conexiunii fluxul: fiecare octet e numerotat modulo 232 antetul con ine numărul de secven ă al primului octet ț ț controlul fluxului: prin credite (număr de octeţi) datele sunt transmise când vrea entitatea TCP:

a) PUSH- transmite acum b) urgent: transmite această dată din fluxul normal care

are indicatorul urgent dacă se recep ionează un TPDU (ț Transport Protocol Data

Unit) nepotrivit acestei conexiuni, se pune reset =1 în segmentul care pleacă

Terminarea conexiunii deconectarea normală cu FIN = 1 deconectarea bruscă (abort) cu pierdere de date

39

Page 40: PR-Examen

16.2 Protocolul de transport datagrame UDP

Protocolul UDP (User Datagram Protocol) expediază datele sub forma unor datagrame, care se transmit neprelucrate încapsulate fără a se stabili vreo conexiune. El este în esen ă IP extins cu unț scurt antet.

Aplica iile sunt de tip client-server, interogare–răspuns.ț Antetul UDP are 8B i împreună cu datele formează segmentul UDP.ș

16.3 Modelul de programare în re ea: Sockets APIțServiciul TCP este asigurat prin crearea de către emi ător i ț șreceptor a unor puncte finale numite socluri sau socket-uri. Fiecare soclu are un număr de soclu i adresă.ș

Apelurile serverului

Pentru implementarea unui server orientat pe conexiune sunt necesare, în ordine, următoarele apeluri de func ii API.ț

Formatul func iei ț socket:

SOCKET sockfd = socket(int address_family, int type, int protocol)

address_family – familia de adrese. Ex. AF_UNIX pt. Unix, AF_INET pt. Internet.

Type – tipul interfe ei socket care se va folosi. Ex. SOCK_STREAM,ț SOCK_DGRAM

Protocol – este specificat tipul protocolului ce se va utiliza (UDP, TCP, IP, ICMP)

40

Page 41: PR-Examen

Sockfd reprezintă un număr întreg fără semn returnat de către apelul func iei ț socket. În caz de eroare valoarea întoarsă este -1 (SOCKET_ERROR)

Primitive de baza:• socket() – creaza un nou punct terminal al conexiunii• bind() ataseaza o adresa locala la un socket• listen() permite unui socket sa accepte conexiuni• accept() blochează apelantul pina la sosirea unei cereri deconectare(utilizata de serverul TCP)• connect() tentativa (activa) de stabilire a conexiunii (folosita declientul TCP)• send() trimitere de date via socket• recv() receptarea de date via socket• close() elibereaza conexiunea (inchide un socket)• shutdown() inchide directional un socket

Sockets pentru stabilirea de conexiuni TCP

Transport Control Protocol Flux sigur de date Conexiune permanentă pe parcursul comunica ieiț

41

Page 42: PR-Examen

Transmisiuni multicast/broadcast utilizând UDP

Func ia ț recvform nu a teaptă realizarea unei conexiuni. În șschimb răspunde oricăror solicitări care sosesc la portul la care s-a înregistrat cu func ia ț bind.

User Datagram Protocol Pachete independente de date (datagrame) Nu stabile te o conexiune permanentă șOrdinea sau chiar ajungerea pachetelor la destina ie nu suntț

garantate

Un grup de clien i abona i pentru opera ia de ț ț ț multicast este specificat printr-o adresă IP din intervalul: 224.0.0.1- 239.255.255.255

17. Inginerie inversă în rețea:Analiza traficului de rețea utilizînd Wireshark;

Limbajul expresiilor de filtrare cadre a instrumentului Wireshark;

17.a Analiza traficului de re ea utilizând Wiresharkț

42

Page 43: PR-Examen

Printre func ionalită ile analizoarelor de reţea, putem men iona:ț ț ț• Analiza problemelor de reţea• Detectarea încercărilor de intruziune• Monitorizarea utilizării reţelei• Colectarea şi raportarea unor statistici de reţea• Filtrarea pachetelor suspecte din traficul de re eaț• Spionarea altor utilizatori de reţea şi capturarea parolelor

acestora• Depanarea problemelor protocoalelor de re eaț

Wireshark este un pachet software gratuit care poate fi utilizat în mod interactiv pentru capturarea şi analiza traficului de re ea.ț Acest instrument software beneficiază de o interfaţă grafică utilizator, care îl face simplu de utilizat. La fel ca i alte analizoare deș pachete, fereastra principală din Wireshark prezintă trei imagini graduale asupra unui pachet. În primul rând, o descriere sumară a pachetului, în care se dau informa ii de bază despre pachetulț respectiv. Aceasta este completată de o fereastră de detaliu în care se dau detalii asupra protocoalelor care compun pachetul (tipul protocolului, dimensiunea headerului etc). În cele din urmă, avem imaginea exactă a irului de octe i (coda i în hexazecimal) careș ț ț compun pachetul. În figura 1 se poate vedea o imagine a interfe eiț grafice utilizator a programului Wireshark.

17.b Limbajul expresiilor de filtrare cadre a instrumentului Wireshark

Filtre de captura

43

Page 44: PR-Examen

Sintaxa filtrelor de captura este asemanatoare cu cea a folosita de de libraria Lipcap(Linux) sau Winpcap(Windows) la fel ca cea a faimosului TCPdump. Filtrul de captura trebuie setat inainte de a porni captura, in cazul filtrelor de afisare nu este nevoie acestea putand fi setate si in timpul capturii. tcp dst port 3128

Afi ează pachetele cu destina ia TCP portul 3128.ș ț

ip src host 10.1.1.1

Afiseaza pachetele cu IP-ul sursei egal cu 10.1.1.1.

host 10.1.2.3

Afiseaza pachetele cu IP-ul sursei sau destinatiei egal cu 10.1.2.3.

src portrange 2000-2500

Afiseaza pachetele cu sursa UDP sau TCP si cu portul din rangul 2000-2500.

not imcp

Afiseaza orice in afara de pachetele icmp. (icmp este de obicei folosit de unealta ping)

Filtrele DE AFISARE:

Filtrele de afișare sunt folosite pentru căutarea in datele capturate cu un filtru de captura. Capabilitățile lui de căutare si mai extinse nu fac necesara restartarea capturii când dorești sa schimbi filtrul.

Exemple:

44

Page 45: PR-Examen

18. Construirea unei aplica ii simple client-server,țClase i componente de re ea (.Net/Java);ș ț

Analiza protocolului de elaborat: expresii regulateÎn informatică, o expresie regulată, denumită pe

scurt regex sau regexp (din engleză de la regular expression), reprezintă un ablon care descrie unș  limbaj regulat, adică o mul imeț de iruri de caractere generată de oș  gramatică regulată. Majoritatea limbajelor de programare oferă interfe eț  API pentru tratarea limbajelor regulate, care sunt folosite la validarea formatului unor

iruri de caractere sau la găsirea în por iuni mai mari de text a unorș ț iruri de caractere care respectă forma unui limbaj regulat. Deș

asemenea, numeroase aplica ii care implică într-un fel sau altulț procesarea de text au motoare de expresii regulate ce permit căutări

i validări după expresii regulate.ș

Comenzi regex

45

Page 46: PR-Examen

46