REFERAT INFORMATICA: MODELUL CLIENT-SERVER

Incarcat la data: 25 Mai 2009

Autor: maria cantemir

Pret: 50 credite

Generalitati Modelul standard pentru aplicatii in retea este client-server. Serverul este un proces asteptand sa fie conectat de un proces client pentru a oferi diverse servicii (acces la resurse). Resursele pot fi fisiere, structuri de date, informatii diverse sau resurse fizice ca imprimante, fax-uri, scannere, etc. Serverii si clientii sunt procese care se pot executa oriunde in retea. O secventa tipica poate fi urmatoarea: g7z19zt - se starteaza procesul fie la pornirea sistemului, fie dintr-un fisier script. Se face initializarea, dupa care serverul trece in starea de asleep, asteptand o cerere de serviciu de la un client. - se starteaza un proces client, cel mai adesea prin introducerea unei comenzi interactive de catre un user. Iata cateva tipuri de servicii pe care le poate asigura un server: - aflarea zilei - printarea unui fisier - scrierea/citirea unui fisier de pe sistemul serverului - logarea la sistem a unui user - executarea unei comenzi pe sistemul serverului - la terminarea serviciului de catre procesul server, acesta trece din nou in starea asleep Putem divide procesele server in: - serveri iterativi, daca cererea facuta de client poate fi rezolvata de server intr- un interval dat de timp (relativ scurt). Cererea este rezolvata chiar de serverul insusi. Un exemplu tipic este aflarea zilei, orei. - serveri concurenti, daca cererea facuta de client nu poate fi rezolvata de server intr-un timp dat (nu poate sti cat va dura). In acest caz, serverul invoca alt proces pentru rezolvarea cererii, dupa care trece in asleep. Un exemplu este o cerere de transfer de fisier Se observa ca un server petrece cel mai mult timp in starea asleep, asteptand cereri de la clienti. Rolurile serverilor si clientilor este asimetric, cu toate ca pana acum am considerat procesele ce comunicau, de pe nivelele sesiune sau transport ca fiind simetrice. Serverul este startat primul, dupa care se deschide un canal de comunicatie pe sistemul pe care se afla si se informeaza hostul local ca se pot primi cereri de la clienti la o adresa data. Serverul va astepta cererile la adresa respectiva. Un server iterativ proceseaza cererea si trimite raspunsul. Serverii iterativi sunt in mod normal folositi daca cererea unui client poate fi rezolvata toata. Serverii concurenti vor lansa (fork+exec) un nou proces pentru rezolvarea cererii clientului. Noul proces se va ocupa numai de cererea pentru un anumit client, desfasurata pe un canal ce va fi inchis la terminare. Din cele prezentate, reiese ca un server va introduce intr-o coada cererile de la clienti, in timp ce el rezolva o parte din ele. De asemenea, un proces server va fi activ atat timp cat functioneaza calculatorul host. Un client este un proces care doreste utilizarea unei resurse, avand si el o secventa de actiuni de desfasurat. Astfel, el va deschide un canal de comunicatie si se va conecta la un anumit host, la o adresa data (a serverului). Apoi, va trimite mesajul-cerere catre server si va astepta primirea raspunsului. La terminarea actiunii, clientul va inchide canalul de comunicatie. Deschiderea unui canal de comunicatie de catre server este cotata ca o actiune pasiva, in timp ce un client deschide un canal in mod activ. Termenii de server si client pot fi si o masina (statiile fara disc din retea, clientii, acceseaza serverul, un file-server). Un computer la care este legata o imprimanta se considera a fi un server de imprimanta. Uneori, serverii se mai numesc si daemoni, adica serveri incarcati la startarea sistemului. Daemonii sunt folositi pentru furnizarea de servicii sistem (timp, useri la un moment dat). IPX/SPX IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange) sunt protocoalele native ale lui Novell. Ele sunt adaptari ale arhitecturii XNS (Xerox Network Systems), de la sfarsitul anilor 1970. IPX corespunde IDP (Internetwork Datagram Protocol) iar SPX cu SPP (Sequenced Packet Protocol) al lui Xerox. Fiecare protocol suporta transmisia prin pachete. IPX opereaza la nivel retea, asigurand o legatura fara conexiune ( nesigura, deoarece transmisiile nu sunt cu raspuns), fig1. SAP: Service Advertising Protocol ODI: Open Data-Link Interface NCP: Netware Core Protocol RIP: Routing Information Protocol IPX ofera capabilitati de adresare si rutare serverilor NetWare si interfetelor client. SPX opereaza la nivel transport si asigura un serviciu de transfer pachete prin legaturi orientate pe conexiune (sigura, deoarece primeste raspuns de transmisie si mentine integritatea pe toata perioada transferului).Se gestioneaza fluxul de date si precedenta pachetelor. IPX/SPX nu sunt singurele protocoale suportate de sistemul de operare de retea NetWare, fig 2, dar ele sunt native pentru sistem. Unitatea de transmisie este pachetul, ce contine un header si un mesaj, fig 3. Headerul contine informatiile necesare pentru a transfera pachetul de la sursa la destinatie. Mesajul este corpul util al pachetului. IPX defineste formatul de baza pentru header. SPX adauga informatiile necesare pentru mentinerea conexiunii. Adresa sursa si destinatie ocupa cel mai mult din headerul IPX. O adresa de retea contine: - 4 octeti, adresa de retea - 6 octeti, adresa numarului - 2 octeti, adresa socketului Rutarea in retea se bazeaza pe adresa de retea pentru transmiterea unui pachet cand adresa destinatie este diferita de a retelei din care vine pachetul. In reteaua destinatie, MAC-ul interfetei recunoaste adresa din pachet egala cu a nodului. Din adresa de socket, IPX preda pachetul procesului respectiv, deci este posibila existenta mai multor procese. Marimea maxima a unui pachet IPX este de 576 de octeti. Headerul IPX este de 30 octeti iar a lui SPX este de 42 de octeti. Headerul contine urmatoarele campuri: - suma de control - lungimea pachetului - control transport - tip pachet - adresa destinatie - adresa sursa Deoarece headerul SPX este de 42 octeti, partea utila scade la 534 octeti. Headerul SPX contine campurile din IPX, dar in plus mai are: - control conexiune - tip data stream - ID conexiune sursa - ID conexiune destinatie - numar secventa - numar raspuns - numar alocare Campurile suplimentare asigura unui pachet SPX secventierea si garantarea livrarii. Legatura intre aplicatie si IPX se face prin ECB-uri (Event Control Block). Informatiile din ECB sunt necesare IPX-ului pentru a transmite/receptiona un pachet conform cu cerintele aplicatiei. Setarea campurilor din ECB este obstacolul major in programarea cu IPX/SPX. ECB-urile pot fi pe baza de soclu sau nu. ECB-urile cu soclu gestioneaza evenimente IPX/SPX, in timp ce ECB-urile fara soclu planifica evenimente fara a referi transmisia pachetelor IPX/SPX. Un ECB cu soclu include: - adresa de legatura - adresa ESR - flag in-use - cod de terminare - numar socket - spatiu IPX - spatiu driver - adresa imediata - contor fragmene - lista descriptorilor de fragment ECB - date ECB-urile fara soclu sunt luate in evidenta de AES (Asynchronous Event Scheduler) si de aceea nu necesita un canal anume. Campurile din ECB-urile fara soclu sunt un subset al celor din ECB cu soclu: - adresa de legatura - adresa ESR - flag in-use - spatiu AES Programarea cu IPX/SPX include initializarea, deschiderea/inchiderea soclurilor, planificarea evenimentelor asincrone, servicii de eveniment si gestiunea fragmentelor ECB. IPX/SPX este nucleul de comunicatie in mai multe produse livrate de firma Novell. Protocolul suporta interactiuni statii/server, fig 4. fig 4 - arhitectura NetWare NetWare Lite 1.x pentru DOS si Windows este un sistem de operare de retea peer-to-peer pentru 2-25 useri. Configuratia medie este de 10 useri. Este perfect compatibil cu Windows 3.x. Este proiectat pentru transferuri si poate fi instalat in cateva minute. NetWare 2.2 este destinat bazelor de date de marime medie sau grupurilor de lucru din compartimentele unei companii. Poaqte functiona cu server dedicat sau nededicat. Ofera performanta, interoperabilitate si siguranta. NetWare 3.11 este destinat unor companii cu sute de useri pentru un singur server. Suporta o varietate de statii client ce executa DOS, Windows, OS/2, Unix, MacIntosh. NetWrae 4.x este ultima generatie de sisteme Novell. S-au adaugat la 3.11 noi servicii de directoare, securitate sporita, elemente mai complexe de management si optiuni de WAN. Cu NetWare 4.x se poate integra un server intr-un mediu de comunicatie. NetWare 3.x si 4.x sunt sisteme pe 32 biti ce implementeaza mecanisme de multithreading, un model de memorie flexibil, securitate centralizata si controale de integritate. Aplicatiile de pe server, numite NLM-uri sunt linkeditate in NetWare. Se permite adaugarea de noi facilitati de catre user. NetBIOS In 1984 IBM a introdus primul sau standard de retea. Viteza de lucru era de 2 Mbps (fata de 10 Mbps la Ethernet) si se chema IBM PC Network, in rest fiind similar cu Ethernet. NetBIOS, dezvoltat prin preluare de la o firma, a devenit standadul IBM pentru retea. La fel cum BIOS-ul asigura interfata intre programe si hardware-ul unui PC, NetBIOS asigura interfata intre programe si retea. NetBIOS a devenit un standard pentru LAN-uri de marime mijlocie. Exista implementari ce folosesc de asemenea TCP sau UDP ca suport de protocol de transport. Problema in acest caz este ca numele din NetBIOS nu corespund la adresele din TCP/IP, ceea ce inseamna un efort suplimentar in programare. Standardele RFC 1001 si 1002 descriu utilizarea NetBIOS cu TCP/IP (orice statie adresabila TCP/IP este adresabila si NetBIOS). De fapt, NetBIOS este o interfata software si nu un protocol (totusi ofera servicii similare unui protocol). NetBIOS ofera atat servicii fara conexiune (datagrame) cat si orientate conexiune (circuite virtuale, emuland aspecte din TCP/IP). Serviciile oferite sunt prezentate in fig 5. fig 5 - NetBIOS In unele medii exista o interfata deasupra lui NetBIOS care se numeste SMB (protocolul Server Message Block situat in nivelele superioare OSI). Interfata SMB, dezvoltata de Microsoft serveste la partajarea fisierelor. Serviciul de sesiune NetBIOS asigura o legatura orientata conexiune, o facilitate de transfer a mesajelor full duplex. Lungimea mesajelor este variabila, dar nu poate depasi 131000 bytes. Serviciul de nume este folosit pentru a eticheta resursele sistem. De exemplu, in mecanismul client-server, atat clientul cat si serverul vor avea un nume. Numele au de la 1 la 16 caractere si sunt de doua tipuri: unice, pentru toata reteaua si nume de grupuri. Numele de grupuri nu trebuie sa fie unice si toate procesele ce adopta un nume de grup fac parte din acel grup. Exista patru comenzi in cadrul serviciului de nume: - ADD NAME - adauga un nume unic - ADD GROUP NAME - adauga un nume de grup - DELETE NAME - sterge un nume - FIND NAME - determina daca un n ume este inregistrat NetBIOS suporta datagramele, la fel ca IP in retele TCP/IP. Ele au o lungime maxima de 512 bytes. Datagramele pot fi transmise intregii retele sau unui nume specific. Exista patru comenzi in serviciul de datagrame: - SEND DATAGRAM - trimite o datagrama unui nume - SEND BROADCAST DATAGRAM - trimite o datagrama intregii retele - RECEIVE DATAGRAM - receptioneaza o datagrama de la un nume - RECEIVE BROADCAST DATAGRAM - orice nod o receptioneaza Serviciul de comenzi generale asigura diverse functii: - RESET - reseteaza tabele si sesiuni NetBIOS - CANCEL - anuleaza comenzi asincrone - ADAPTER STATUS - preia starea interfetei de retea - UNLINK - dezlegare de serverul de bootstrap Dupa cum am mentionat, NetBIOS este o specificare ce descrie interfatarea la o retea. Se descriu in amanunt cum trebuie setati diversi registri procesor pentru a efectua o functie de retea. Functia in sine este tratata de nivelul retea, iar la terminarea ei acelasi nivel returneaza starea lui NetBIOS. NetBIOS nu presupune existenta unui anume nivel retea, dar necesita anumite servicii de la acesta. De exemplu, nivelul retea trebuie sa asigure legaturi atat orientate conexiune cat si fara. Mai mult, sesiunile corespund cu streamurile TCP cu deosebirea ca indicatorii de format sunt inclusi in timp ce streamurile TCP sunt neformatate. Cu toate ca NetBIOS si TCP par a avea destule analogii, conventia de nume este diferita. Numele NetBIOS sunt formati din 16 octeti si apeleaza procese si nu computere. Semantica lor ingreuneaza utilizarea intr-un mediu multiretea. TCP, pe de alta parte este mult mai adaptabil acestor medii. Cea mai obisnuita implementare a lui NetBIOS este peste TCP/IP. Atunci, trebuie rezolvata diferenta intre numele NetBIOS si adrese TCP/IP. Standardele RFC 1001 si 1002 descriu tocmai implemetarea NetBIOS peste conexiuni TCP/IP. Natura client-server este pusa in evidenta de serviciul sesiune, care cuprinde urmatoarele comenzi: - CALL - open activ - LISTEN - open pasiv - SEND - transmite date - SEND NO ACK - transmite date fara achitare - RECEIVE - receptioneaza date - HANG UP - terminare sesiune - SESSION STATUS - acces la stare sesiune In NetBIOS, un proces trebuie sa fie client si altul server. Serverul initiaza o comanda LISTEN, care va deschide serverul in modul pasiv. Un client se va putea conecta la un server cu CALL, care va trece serverul in modul activ. Atat LISTEN cat si CAL intorc un numar de sesiune proceselor care le-au initiat. Numarul va fi folosit apoi de SEND, RECEIVE si HANG UP pentru identificarea sesiunii. Orice proces poate avea mai multe sesiuni active la un moment dat. Dupa o comanda SEND, NetBIOS asteapta o achitare (ACK) de transmisie reusita pentru a ceda controlul din nou programului. Achitarea este trimisa de RECEIVE. Actiunile descrise asigura o legatura orientata conexiune, sigura, similara ca in TCP. Comanda SEND NO ACK nu asteapta o achitare, fiind folosita in special in retele Token-Ring, unde achitarea mesajelor trimise face parte din nivelul date. NetBIOS ofera si legaturi fara conexiune, cu posibilitatea de a pierde precedenta, fara control de flux si alte aspecte legate de servicii orientate conexiune. TCP/IP Daca la OSI s-a dezvoltat mai intai modelul arhitectural si apoi protocolul, datorita exploziei Internetului, in cazul TCP/IP mai intai s-au creat protocoalele iar modelul arhitectural s-a stabilizat ulterior. Internetul de azi consta din mii de retele locale, regionale sau pe arii mai extinse. In general TCP/IP se spune ca este o stiva de protocoale, ai carei membri sunt: - TCP (Transmission Control Protocol) este protocolul de baza la nivelul transport ce asigura servicii orientate conexiune. El se foloseste de IP din nivelul retea, fig 6 - IP (Internet Protocol) asigura serviciul de transmisie a pachetelor pentru TCP, ICMP si UDP. Opereaza la nivel retea din modelul OSI - ICMP (Internet Control Message Protocol) este folosit pentru erori si controlul informatiei generate de software-ul TCP/IP. Datele ICMP sunt transmise in datagramele IP - UDP (User Datagram Protocol) se executa la nivel transport. Spre deosebire de TCP, este un protocol fara conexiune care nu presupune achitarea transmisiei datagramei - ARP (Address Resolution Protocol) mapeaza adresele de Internet in adrese fizice, de exemplu in adrese de Ethernet. Opereaza la nivel retea - RARP (Reverse ARP) este complementar lui ARP si mapeaza adresele fizice, de exemplu cele de Ethernet, in adrese de Internet. De asemenea se executa la nivel retea Mai exista si alti membri ai stivei de protocoale TCP/IP, mai putin folositi, ca de exemplu GGP (Gateway-to-Gateway Protocol) si VMTP (Versatile Message Transaction Protocol). Toate aceste protocoale sunt definite in asa numitele RFC (Request for Comments), de domeniul public. La nivelul aplicatie sunt cateva servicii care sunt uzuale instalarii TCP/IP, cu toate ca nu fac parte din acesta: FTP (File Transfer Protocol), TELNET si SMTP (Simple Mail Transfer Protocol). FTP este folosit la transferul fisierelor de la un sistem la altul, atat binare cat si ASCII. Exista varianta mai simpla TFTP. TELNET este o facilitate de remote login prin care userul se poate conecta la un sistem, presupunand indeplinite anumite conditii de acces. SMTP suporta transfer de E-mail intre doua sisteme. Gestiunea locala a postei este o sarcina a fiecarui sistem, SMTP rezolvand doar transferul intre sisteme. Procesele user transmit si receptioneaza date prin protocoalele TCP si UDP din nivelul transport TCP asigura o legatura orientata pe conexiune, sigura prin faptul ca necesita achitare la transmisii de mesaje. Pe de alta parte, UDP, tot la nivelul transport, asigura o legatura fara conexiune si anume serviciu datagrama. Transmisia nu mai este sigura deoarece nu se cere achitare. TCP/IP poate opera in diverse configuratii de LAN-uri Ethernet. Aplicatiile pot folosi atat servicii TCP cat si UDP sau ambele simultan. Din cauza utilizarii multiple, aplicatiile trebuie sa poata fi identificate precis. Acest lucru se rezolva prin porturi de 16 biti din TCP sau UDP pentru fiecare proces user. Un camp de 8 biti din headerul IP-ului determina daca datele sunt destinate TCP-ului sau UDP-ului. Tot un camp de 16 biti din headerul Ethernet identifica tipul de frame, adica daca datele sunt destinate unui alt modul IP sau altui protocol ce poate fi operational in retea. Diverse protocoale pot fi servisate concurent cu TCP/IP prin utilizarea campurilor de control amintite. In contextul aplicatiilor client-server, prin TCP/IP un user se poate atasa la un sistem Unix pentru workstation, server, mainframe, etc. Serviciile disponibile includ TELNET, FTP, posta electronica, NFS (Network File System, aducerea unui fisier remote in domeniul local al unui sistem fara a fi transferat fizic, spre deosebire de FTP). SMTP permite transmisia/receptia de mesage pentru Internet si sisteme Unix, fara traversare de gateway-uri. Cele mai multe din aplicatiile bazate pe TCP/IP Unix sunt construite cu socluri Unix. Varianta de socluri oferita de Microsoft, Sun Microsystems este bazata pe Windows sockets, care acopera cam 70% din piata aplicatiilor client-server pentru PC-uri. Singurele probleme ce pot apare in LAN-uri Ethernet relativ la protocoalele TCP/IP sunt legate de introducerea tehnologiilor de mare viteza: ATM (Asynchronous Transfer Mode), FDDI (Fiber Distributed Data Interface) si SMDS (Switched Multi-megabit Data Service). O solutie de marire a vitezei trecerii mesajelor prin aceste protocoale este implementarea lor in cipuri de siliciu, fata de executia lor in memorie. Totusi schimbarea permanenta a specificatiilor TCP si cipurile CPU de viteza din ce in ce mai mare, nu au dus la extinderea acestei solutii.

Textul de mai sus reprezinta un extras din "REFERAT INFORMATICA: MODELUL CLIENT-SERVER". Pentru versiunea completa a documentului apasa butonul Download si descarca fisierul pe calculatorul tau. Prin descarcarea prezentei lucrari stiintifice, orice utilizator al site-ului www.studentie.ro declara si garanteaza ca este de acord cu utilizarile permise ale acesteia, in conformitate cu prevederile legale ablicabile in domeniul proprietatii intelectuale si in domeniul educatiei din legislatia in vigoare.

In cazul in care intampini probleme la descarcarea fisierului sau documentul nu este nici pe departe ceea ce se doreste a fi te rugam sa ne anunti. Raporteaza o eroare

Important!

Referatele si lucrarile oferite de Studentie.ro au scop educativ si orientativ pentru cercetare academica.

Iti recomandam ca referatele pe care le downloadezi de pe site sa le utilizezi doar ca sursa de inspiratie sau ca resurse educationale pentru conceperea unui referat nou, propriu si original.