You are on page 1of 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 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.
- 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
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
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)

You might also like