Sunteți pe pagina 1din 5

7.

Utilizarea protocoalelor Internet prin aplicatii


Scopul lucrrii este familiarizarea cu protocoalele de nivel aplicaie din stiva TCP/IP, precum si utilizarea ctorva programe client pentru acestea din domeniul aplicaiilor Unix. 7.1 Introducere Toata lumea a auzit de Internet, destui au si navigat prin noianul de informaie pe care l ofer, dar nu multa lume intelege Internetul, ce face si cum face. Pentru aceasta este eseniala cunoaterea protocoalelor sale de baza: stiva TCP/IP si a modului in care acestea interactioneaza. Vom prezenta in continuare cteva protocoale de nivel aplicaie, prezentarea celor de nivel jos (IP - nivel reea si TCP sau UDP - nivel conexiune). O noiune foarte importanta care trebuie lmurita este conceptul client/server care sta la baza ntregii arhitecturi Internet. Orice conexiune de transfer de orice fel de informaie are evident doua capete: unul care initiaza transferul si unul care este apelat. Aceste doua capete le vom numi client si respectiv server. Clientul are rolul activ de a identifica serverul si a trimite cererea conform specificaiilor. Serverul are un rol pasiv, el asteapta doar sa fie conectat si sa-si pun la dispoziia clientului informaiile cerute. Deci, serverul este doar un program care ruleaz pe un calculator oarecare, astfel nct un calculator poate fi server pentru mai multe servicii, si poate fi in acelai timp client. In contextul in care vom folosi acum noiunea de client, el reprezint un program rulat de ctre utilizator pentru a accesa resursele oferite prin intermediul diferitelor protocoale din familia TCP/IP (vezi RFC 1123). 7.2 Telnet Cel mai simplu exemplu de transfer de date este protocolul telnet, care permite clientului sa ruleze programe pe calculatorul pe care ruleaz serverul. Exista si alte variante de protocoale care ndeplinesc aceasta funciune (rlogin de ex.) dar nu ne ocupam acum de ele. Ca la orice conexiune TCP/IP, pentru a realiza transferul de date avem nevoie de adresa destinaie si portul de conectare. Ce nseamn port? Presupunem ca avem un calculator legat intr-o reea si dorim sa-i trimitem ceva informaie. Evident, trebuie sa-l identificam cumva pentru a asigura ajungerea informaiei unde trebuie. Aceasta identificare se face cu ajutorul adresei IP. Dar apare o problema aici, problema care pe o maina DOS nu este att de evidenta. Pe o staie Unix sau Windows pot rula mai multe aplicaii in acelai timp. Ba mai mult pot rula mai multe aplicaii care transfera informaii prin reea in acelai timp. Cum vom asigura ca fiecare pachet de date vine si pleac de la aplicaia care are nevoie de el? Simplu: prin acest port de protocol, de fapt un identificator sub care se nregistreaz o aplicaie in momentul in care dorete sa deschid o conexiune de reea. O aplicaie poate sa se nregistreze pentru fiecare conexiune de care are nevoie, astfel asigurndu-se ca diferite fluxuri de date nu se

56

vor amesteca. Astfel pentru a uura munca clienilor, multe servere de servicii binecunoscute folosesc porturi cu adrese fixe, ca de exemplu: Protocol: echo echo ftp-data ftp telnet smtp timed timed http nntp login Port: 7 7 20 21 23 25 37 37 80 119 513 Bazat pe: tcp udp tcp tcp tcp tcp tcp udp tcp tcp tcp Obs

transfer fiiere conectare transfer posta ora exacta www news rlogin conectare

Revenind la protocolul telnet, trebuie sa subliniem faptul ca el ruleaz programele apelate chiar pe calculatorul pe care mm-am conectat. El trimite caracterele preluate de la tastatura si ntoarce rezultatele rulrii programului respectiv. Astfel putem conecta calculatoare slabe la super-servere si rula pe ele programe complexe, fara a mai fi nevoie de staii puternice la fiecare post de lucru. Calculatorul client devine astfel o simpla tastatura care trimite comenzi si un ecran care afiseaza rezultate. Server telnet exista doar pentru maini Unix, deci programele si comenzile pe care le putei rula sunt Unix: ls, mc, pine, ping ftp, lynx, etc. protocolul telnet lucreaz doar in mod text, deci interfaa grafica X Windows nu va fi accesibila Evident pentru a avea dreptul sa rulez programe pe un calculator trebuie sa am dreptul de a-l utiliza. Aceasta se rezolva in lumea Unix prin definirea unui set de utilizatori, care sunt apoi identificai prin parole. De aceea si in cazul conectrii prin telnet trebuie sa fiu utilizator pentru sistemul respectiv, altfel nu sunt lsat sa m conectez.

7.3 SMTP O utilizare foarte rspndita a Internetului este transmisia potei electronice. Acest mecanism functioneaza foarte asemntor cu trimiterea potei obinuite: - presupune mpachetarea mesajului intr-un cadru continand adresele expeditorului si destinatarului: formatul acestei adrese este numeContUtilizator@adresa.server numele utilizatorului nu este neaprat cel al contului deschis pe server, existnd si posibilitatea schimbrii lui (aliasing). De fapt informaia purtata de mesaj este mai complexa, in mesaj pstrndu-se adresele de tranzit, ora plecrii si sosirii mesajului, mai multe adrese de destinaie, o eventuala adresa de rspuns diferita de cea de expediere etc.
57

- trimiterea potei intre diferite oficii de tranzit se face de obicei prin protocolul numit SMTP (Simple Mail Transfer Protocol, vezi RFC 821), astfel permitandu-se stocarea mesajelor pe parcurs, alegerea cailor optime, protecia la cderea reelei. - ridicarea potei de ctre utilizator se face fie local, pe maina destinaie fie de la distanta, folosind protocolul POP3 (vezi RFC 1725) -sau ceva mai noul IMAP- cu ajutorul unui client de eMail, mesajele ramanand de asemenea pstrate. Pentru utilizarea acestui serviciu exista destul de multe programe client, de exemplu mail, pine, elm. Acestea sunt doar cteva programe rulnd sub linux in mod text, dar prin acest mecanism al potei electronice putem trimite de asemenea documente formatate, imagini, secvene audio sau mesaje fax, putem accesa si aduce documente si aplicaii de pe servere de ftp sau WWW. Aceste fiiere evident nu vor mai fi fiiere text. Mesajele email sunt mesaje text codate pe 7 bii, folosind diferite seturi de caractere (de aici si unele probleme de compatibilitate ce apar la afiarea mesajelor). Aplicaiile folosesc octeii ntregi, deci au trebuit implementate mecanisme de codare a coninutului pe 8 bii si transmiterea lui ca o succesiune de caractere pe 7 bii. Exista programe care fac aceasta (uuencode/uudecode sub Unix) sau s-au implementat chiar extensii ale clienilor de email care sa se ocupe automat de acest aspect (mesajele cu extensii MIME). 7.4 FTP Sa ncepem acum prezentarea protocolului FTP. Acesta a fost practic raiunea pentru care a fost creat Internetul: transferul de informaii sub forma de fiiere intre diferite centre de cercetare din SUA. Aceste conectri s-au inmultit din ce in ce, si alte instituii si apoi persoane s-au conectat la aceasta reea care ulterior a primit numele de Internet. Un program FTP va utiliza 2 porturi pentru doua conexiuni diferite: portul 20 pentru conexiunea de date si portul 21 pentru conexiunea de comenzi. Conexiunea de comenzi este foarte asemntoare cu conexiunea tip telnet, ea permitand rularea unui set redus de comenzi pe calculatorul server. Aceste comenzi sunt: cd, ls (comenzi tipice Unix), dir (introdusa pentru asemnarea cu comanda MSDOS) si comenzi tipice ftp: get, put, tick, binary etc. Asemnarea cu protocolul telnet se poate testa, oblignd clientul de telnet sa se conecteze pe portul 21. Conexiunea de date se deschide doar in momentul in care este ceva de transmis si se nchide imediat dup aceea, pentru a nu tine ocupate resurse in mod inutil. Singurul neajuns al acestui stil de conectare este ca pentru a m conecta pe un calculator si a rula comenzi pe el, trebuie sa am dreptul de a o face, altfel spus sa exist ca utilizator definit pe acel calculator. Ar fi fost imposibil sa se defineasc utilizatori pentru fiecare care ar fi vrut sa citeasc informaie de pe un server; de aceea s-a introdus noiunea de utilizator anonymous, care poate intra pe un server FTP cu parola adresa sa de email (deoarece aceasta adresa este inuta doar pentru evidenta interna, poate fi introdus orice semnnd ca format cu formatul adresei de email: cineva@undeva.ro). Directorul de intrare si singurul pe care are acces utilizatorul anonymous este cel de FTP. Informaia utila de obicei se gaseste in subdirectorul /pub

58

7.5 HTTP Daca FTP a lansat Internetul, cu sigurana ca protocolul HTTP si principala sa aplicaie, WWW (WorldWide Web) au generat succesul pe care l are acum. Acest protocol permite transferul de informaie att text cat si grafica, organizata intr-o maniera uor accesibila bazata pe documentul hipertext. Hipertextul nseamn un text cu legaturi. Un cuvnt sau o zona de text pot fi definite ca si legaturi, selectarea lor ducnd la prezentarea unei alte pagini de text (hipertext) etc. intr-o structura arborescenta. La fel s-a definit si noiunea de hiperimagine, in care legaturile sunt poriuni dintr-o imagine. Prezentarea documentelor se poate face att in mod text imaginile fiind srite, cat si in mod grafic, punndu-se astfel in valoare capabilitatile protocolului HTTP. Funcionarea HTTP este deosebit de simpla. Serverul de HTTP asteapta de obicei pe portul 80 cereri de la clieni, care sunt numii de obicei navigatoare (browser). Navigatorul trimite deci pe portul 80 cererea continand adresa documentului dorit. El primete un document in mod text (astfel asigurndu-se si compatibilitatea cu navigatoarele mai vechi) si daca gaseste in el legaturi ctre imagini, le cere si pe acestea (daca vrea evident). Astfel transferul unei pagini hipertext consta de fapt in una sau mai multe sesiuni de transfer informaie de la si ctre serverul HTTP. Mai departe este problema navigatorului cum afiseaza informaia primita: fiierele cu extensiile html sau htm ca fiind hipertext, txt format text, jpg, gif imagini, vrml realitate virtuala 3D Acest protocol folosete adrese complete URL (Universal Resource Locator) care se formeaz astfel:
protocol://adresa.server.domeniu:port/director/fisier.extensie

Totui o parte din cmpurile prezentate aici pot fi omise, si anume: protocol: navigatoare mai noi (Netscape 3+, Internet Explorer 3+) presupun in mod implicit ca e vorba de HTTP port: am prezentat deja portul implicit 80 pentru transfer HTTP director: se ia fiierul din rdcina ierarhiei de documente hipertext de pe serverul respectiv fisier.extensie: serverul trimite fiierul index.html sau ce alt fiier implicit a fost serverul configurat sa trimit Un navigator tie in principiu sa se descurce si cu altfel de protocoale dect HTTP, trimitand cererea ctre un server de ftp, ca de exemplu ftp://ftp.utcluj.ro, ar trebui sa se descurce sa trimit anonymous si o parola la portul 21 de la adresa respectiva. Protocolul HTTP a primit in ultima vreme o serie de imbunatatiri, printre care posibilitatea rulrii unor programe pe server (prin mecanismele numite CGI sau ASP), pe calculatorul pe care ruleaz clientul (Java sau ActiveX) sau programe interpretate si rulate chiar de ctre navigator (JavaScript, VBScript). La acest capitol trebuie menionate mecanismele de cutare a informaiei pe Internet: cautatoarele. Anumite firme nu s-au mulumit sa-si prezinte propriile pagini pe

59

Internet. Ele au elaborat programe specializate (poreclite roboti) care caut in mod automat adresa cu adresa (sau sunt chemate de doritori) si citesc toate documentele de pe un anumit server. Apoi informaia este analizata si indexata intr-o baza de date aflata pe serverul de origine al robotului. Pagina de intrare pe acest server permite rularea unui program pe server (un CGI) care va cuta prin aceasta baza de date cuvintele pe care le-a primit ca si parametri si va returna o lista (o pagina hipertext generata pe loc) continand adresele paginilor in care pot fi gasiti termenii respectivi. (http://www.infoseek.com, http://www.altavista.com, http://www.yahoo.com)Practic aceasta e singura noastr ansa sa mai gsim ceva util in Internet, adresele fiind att de multe Evident fiind vorba de o cutare automata rezultatele nu vor fi exact cum ne-am atepta. De aceea exista si locaii unde exista colecii de astfel de adrese, grupate pe subiecte de interes. (http://www.yahoo.com, http://www.webopaedia.com, http://www.infoseek.com) Si nu in ultimul rnd, s-au implementat si posibilitati de cutare a arhivelor FTP (inca foarte rspndite) prin acelai mod grafic (http://ftpsearch.ntnu.no)

60