Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune. stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme


Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Internet


Index » educatie » » informatica » Internet
Tehnologia Internet - Suport de curs


Tehnologia Internet - Suport de curs




Tehnologia Internet

Suport de curs

A. Elemente hardware de retea

1. Reteaua Ethernet

Ethernet suporta o topologie de tip bus si utilizeaza la nivel fizic protocolul CSMA-CD (Carrier Sense - Multiple Access with Collision Detection). O astfel de arhitectura nu permite buclele si exista un singura cale de transport a pachetului intre doua calculatoare aflate pe aceeasi retea. CSMA-CD poate fi descris printr-o analogie: un dineu foarte select, unde oaspetii (calculatoarele) nu se intrerup unii pe ceilalti, ci asteapta o pauza intre conversatii (nu exista trafic in retea) pentru a lua cuvintul. Daca doi oaspeti iau cuvintul in acelasi moment (coliziune), amindoi se vor opri, vor asculta, astepta putin si unul dintre ei va incepe sa vorbeasca.




Intirzierea dupa detectia coliziunii este generata intr-un fel, aleator, pentru a impiedeca situatiile in care doua calculatoare ce doresc accesul la mediu sa nu ajunga niciodata la o intelegere. Algoritmul pe care se bazeaza generarea acestei intizieri are la baza modificarea unui bit de fiecare data cind se detecteaza o coliziune. Si de aceea, pentru incercarea n cu 0<n<10, intirzierea este 51.2 msec ori un numar aleator generat in intervalul [0, 2n-1]; pentru incercarile de la 11 la 15, intervalul se restringe la [0, 1023]; iar peste 15 incercari, statia va trebui sa renunte. Unitatea de intirziere de 51.2 msec este timpul necesar transmiterii a 512 biti prin mediul fizic.

2. Mediul fizic

Limitarile de distanta in retea se bazeaza pe fereastra de timp precizata in standardul Ethernet si care este timpul necesar unui pachet pentru a parcurge distanta dintre oricare doua sisteme aflate in retea.

In descrieri, vom utiliza urmatoarea terminologie: o sectiune de cablu - o bucata fizica de cablu continuu; un segment de cablu - o bucata logica de cablu, realizata din mai multe sectiuni.

Mediul fzic standard pentru Ethernet este cablul coaxial de jumatate de tol cu impedanta de 50 W (10BASE5), ce utilizeaza conectori de tip N. Acest cablu fiind scump, s-au realizat interfete ce utilizeaza cablu coaxial de un sfert de tol (10BASE2) cu conectori BNC si cablu torsadat 'twisted pair' (10BASET) ce sint mult mai ieftine.Cablul de banda larga (10BROAD36), fibra optica, canalul satelit au propriile specificatii de lungime si maresc lungimea retelei Ethernet. Din toate acestea, doar canalul satelit are viteza limitata la max. 1.5 Mb/sec, toate celelalte functionind la 10 Mb/sec

Cablul 10BASE5

Cablul coaxial gros este realizat din PVC sau Teflon si respecta anunite standarde electrice si de siguranta. Segmentele Ethernet trebuiesc realizate din sectiuni de cablu de lungime standard si care sint 23.4 , 70.2 si 117 metri. Aceste marimi dau valori de transmisie optime dar implica realizarea unui segment de lungime divizibila cu 23.4, ceea ce duce la utilizari ineficiente ale cablului. Cele mai multe cabluri au marcaje la distante de 2.5 metri, pentru a se stii unde vor fi plasati conectorii sau 'transceiver'-ele. Jumatate din lungimea de unda a semnalului este 2.5 metri si de aceea plasarea acestor componente in astfel de locuri este optima.

Cablul 10BASE2

Cablul coaxial subtire are doua dezavantaje: lungimea maxima a retelei se reduce si amplasarea de conectori pe cablu poate duce la intreruperea comunicatiei daca acestia nu sint conectati, asemenea unei ghirlande de beculete folosite la pomul de Craciun; daca un bec se arde, ghirlanda nu mai functioneaza.

Lungimea maxima a unui segment este de 185 de metri. Lungimea minima a unei sectiuni este de 0.5 metri. Numarul maxim de statii ce se pot conecta la un segment este 30.

Cablul 10BASET

Cablul torsadat est foarte ieftin si de aceea a devenit foarte popular in ultimul timp. De asemenea, posibilitatea de a instala o retea folosind cablurile telefonice existente si de a nu mai fi necesara o cablare constituie un avantaj al acestui tip de cablu.

3. Elemente hardware: terminatori, conectori, adaptoare

Patru elemente sint necesare in realizarea unui segment de retea Ethernet: cablul, conectori aflati la capatul sectiunii, adaptori de impedanta pentru a conecta doua sectiuni si terminatori ce se ataseaza la capetele segmentului. In figura de mai jos, doua sectiuni de cablu Ethernet sint conectate folosind un adaptor de tip T, notat cu A. Terminatorii sint notati cu T, conectorii cu C. Fiecare segment trebuie terminat cu un element cu impedanta de 50 W, numit terminator. Terminatorul are rolul de a 'absorbi' semnalele de pe cablu pentru a nu permite reflexiile.

4. Transceiver-e

Un transceiver est un element hardware ce realizeaza atasarea la retea a interfetei Ethernet a unui sistem prin intermediul unui cablu multifilar. Transceiver-ul nu are nevoie de alimentare exterioara, acesta realizindu-se prin cablul multifilar de la interfata Ethernet. Exista trei tipuri de transceiver-e:

intrus - ce necesita taierea cablului de retea si introducerea prin intermediul conectorilor a transceiver-ului in continuitatea segmentului.

vampir - atasarea la cablu se realizeaza prin strapungerea cablului

intern - interfata Ethernet include transceiver-ul si legarea la retea se realizeaza cu conectori T

Pentru tipul intrus, este dificil a se pastra distanta de 2.5 metri si la instalarea unui nou sistem, reteaua trebuie oprita. De asemenea taierea cablului duce la fragmentarea segmentului. Tipul vampir este mai dificil de instalat, datorita sistemului de conexiune mai pretentios, dar eficient atunci cind se doreste reamplasarea sistemeor de calcul pe retea. Tipul intern se intilneste la retele pe cablu coaxial subtire. Numarul maxim de transceiver-e pe un segment este de 100.

B. Conectarea si extinderea retelelor Ethernet

Segmentele Ethernet pot fi conectate logic la diferite nivele ale ierarhiei modelului ISO. La nivelul 1, nivelul fizic, se utilizeaza conectorii si repetoarele ('repeater'); bitii sint transferati folosind doar hard-ul existent. Pe nivelul 2, al legaturii de date, podurile ('bridge') sint utilizate; pachetle sint transferate folosind din nou doar hard-ul existent. Pe nivelul 3, nivelul retea, se utilizeaza 'router'-ele; mesajul este transferat folosind atit hard-ul cit si soft-ul.

1. Repeater-ele

Un repeater est o componenta activa ce este utilizate pentru a conecta mai multe segmente Ethernet. Ea necesita alimentare exterioara. Un repeater retransmite pachetele dar nu le interpreteaza; nu stie cui se adreseaza pachetul si ce protocol utilizeaza. Repeater-ele se amplaseaza intre segmente si realizeaza legatura prin transceiver-e si cabluri multifilare.

Repetoarele locale, ce utilizeaza transceiver-e, leaga segmente de retea de la 10 la 100 de metrii fiecare. Perchile de repetoarele la distanta folosesc fibra optica se pot amplasa la distante de 1000 metrii, lungimea segmentului de fibra optica si sint utilizate in conectarea segmentelor aflate in cladiri diferite.

2. Bridge-uri

Bridge-urile conecteaza retele pe nivelul legaturi de date a modelului ISO. Ele nu reclama o componenta software, dar receptioneaza, regenereaza si retransmit pachetele in mod hard. Multe bridge-uri au un algoritm de invatare propriu, ce isi noteaza adresa sursa de pe un tronson si de pe celalalt si nu transmit pachetul pe celalalt tronson doar daca destinatia se afla pe el. La inceput toate pachetle sint transmise in partea cealalta, dar dupa citeva minute, bridge-ul a memorat locatiile, din punctul sau de vedere, a tuturor sistemelor ce trimit pachete.

Bridge-urile sint independente de protocol. Ele citesc fiecare pachet pentru a determina daca trebuie retransmis. Performanta lor se masoara in timpul de citire si in timpul de retransmisie. Daca sint destul de rapide, bridge-urile sint metode foarte eficiente dar si scumpe, de a conecta doua retele. Se pot amplasa pina la 7 poduri in serie pe o retea.

3. Router-e

Router-ele sint elemente dedicate sau calculatoare ce contin doua sau mai multe interfete Ethernet si lucreaza asemenea unui agent de circulatie intr-o intersectie aglomerata. Ele sint dependente de protocol; un router IP nu poate ruta pachete IPX.

Un calculator este in general folosit pe post de router. Se ataseaza o interfata Ethernet si se seteaza sistemul UNIX astfel incit sa le gestioneze pe amindoua si sa trimita pachetele mai departe. Acest lucru 'fura' din resursele sistemului si daca reteaua este aglomerata, un router dedicat este cea mai buna solutie. Performanta unui router este masurata in pachete pe secunda transmise.

4. Gateway-uri

Gateway-ul este un sistem ce realizeaza conversia de protocol pe linga rutarea pachetelor.Deci un calculator ce foloseste atit Ethernet cit si X.25 si paseaza pachetele intre cele doua tipuri de retele se numeste un gateway. Router-ele sint in general numite gateway-uri, mai ales daca sint calculatoare si nu elemente dedicate. Un alt tip de gateway-uri sint sistemele de mail, ce necesita conversia mesajelor dintr-un format in altul.

C. Introducere in TCP/IP

TCP (Transmission Control Protocol) si IP (Internet Protocol) au fost dezvoltate in cadrul unui proiect de cercetare a Departamentului Apararii Statelor Unite din anii '70, cu scopul de a conecta un numar de retele diferite, concepute de producatori diferiti, intr-o 'retea a retelelor' ce se va numi ulterior INTERNET.

Protocoalele au avut succes de la inceput, deoarece au oferit citeva servicii de baza dorite de toti utilizatorii: transfer de fisiere, posta electronica, conectare de la distanta; la un numar mare de sisteme. Componenta IP asigura transmiterea ('rutarea') informatiei de la nivelul subretelei la nivelul de retea imediat superior, ajungind la relelele locale, la cele regionale si apoi la cea globala Internet.

1. Ce este TCP/IP ?

Pe 'cimpul de lupta' al transmisiei, informatia trimisa prin retea poate suferi daune, de accea TCP/IP a fost conceput robust si cu posibilitatea de a se reface dupa caderea unui nod de retea sau linie telefonica. Aceasta facilitate permite conceptia unor retele extrem de largi, fara a avea un nod de administrare central, iar datorita refacerii automate, probleme de retea pot ramine nediagnosticare si reparate pe o anumita perioada de timp.

TCP/IP este format din urmatoarele nivele:

IP - este reponsabil de transmiterea pachetelor de date de la un nod la altul. IP trimite fiecare pachet pe baza unei adrese destinatie de patru octeti (numarul de IP). Autoritatile Internet atribuie un interval de numere IP diferitelor organizatii. Organizatiile atribuie un grup de numere IP (adrese) departamentelor si asa mai departe, pina la nivel de calculator.

TCP - este responsabil cu verificarea transmiterii corecte a datelor de la client la server. Datele se pot pierde pe relelele intermediare. TCP ofera suport in detectarea erorilor si a pierderilor de date si de a efectua retransmiterea pina cind datele sint receptionate complet si fara erori.

Sockets (socluri) - este numele atribuit unor subprograme ce ofera acces la TCP/IP pe majoritatea sistemelor.

Cele mai importante servicii TCP/IP sint:

transfer de fisiere. File Transfer Protocol -FTP- permite utilizatorului oricarui calculator sa primeasca fisiere de la alt calculator sau sa trimita fisiere pe alt calculator. Utilizatorului i-se cer un nume de cont si o parola pe celalalt calculator. Sint luate in considerare la transferul de fisiere, setul de caractere, conventiile de sfirsit de rind, continutul fisierelor si altele.

conectare la distanta ('remote login'). Network Terminal Protocol -TELNET- permite conectarea utilizatorului la oricare alt calculator aflat in retea. Sesiunea de conectare incepe prin precizarea calculatorului la cere se va face legatura, apoi a numelui de cont si parola pe sistemul de la distanta. In orice moment pin al incheierea conexiunii, tot ceea ce se tasteaza este trimis celuilalt calculator, iar raspunsurile sint afisate pe propriul monitor. Calculatorul de pe care s-a lansat cererea de conectare se afla si el in lantul de comunicare, dar programul telnet il face invizibil.

posta electronica ('e-mail'). Aceasta permite transmiterea de mesaje utilizatorilor aflati la alte calculatoare. Sint utilizate calculatoare ('masini') ce intretin fisierele de mesaje. Sistemul de mesaje ('mail') este un mod simplu de a adauga un mesaj la fisierul de mesaje al altui utilizator. Exista citeva probleme in cazul in care sint utilizate microcalculatoare. Cea mai serioasa este faptul ca un microcalculator nu este potrivit in a primi mesaje,deoarece in momentul in care se trimite un mesaj, cel ce il trimite se asteapta sa poata deschide o conexiune cu microcalculatorul respectiv. Daca el este stins sau executa un alt program, nu poate fi accesat de sistemul de mesaje. Pentru acest motiv, mail-ul este mentinut pe sisteme mari, pe care server-ul de mail functioneaza fara intrerupere. Programele de mail de pe microcalculatoare sint doar o interfata ce permite citirea si trimiterea de mesaje de pe serverele de mail.

Aceste aplicatii traditionale joaca inca un rol important in retelele de tip TCP/IP. Recent, modul in care sint utilizate retelele s-a schimbat. Multe retle cuprind microcalculatoare, minicalculatoare, statii de lucru si mainframe-uri. Acestea au fost configurate spre a realizao anumita operatie. Acesata a dus la modelul de servicii in retea 'client-server'. Un server este un calculator ce ofera un anumit serviciu restului retelei. Clientul este sistemul ce foloseste acel serviciu. In cadrul TCP/IP se regasesc urmatoarele servicii:

network file systems NFS. Aceasta permite sistemelor sa acceseze fisiere aflate pe alte calculatoare intr-un mod mai facil decit cel oferit de FTP. NFS-ul ofera iluzia ca discurile sau alte 'device-uri' aflate pe alte calculatoare ar fi conectate la calculatorul curent. Nu este nevoie de un utilitar special pentru a accesa discurile. Acest lucru permite amplasrea de discuri mari pe doar citeva calculatoare, care sa fie accesate de statii. De asemenea se permite partajarea fisierelor.

remote printing. Pot fi accesate imprimantele aflate pe alte masini, ca si cind ar fi montate local.

remote execution. Se permite cererea ca un anumit program sa fie executat pe o alt calculator. Lucru extrem de util atunci cind se lucreaza pe masini mici si fara putere de calcul. Exista un numar de protocoale de executie la distanta diferite. Unele permit executia unor comenzi, altele apelarea unor rutine aflate le distanta iar altele permit distribuirea 'task-urilor' pe alte masini in functie de incarcarea lor.

name servers. In retelele largi, exista o colectie de nume care trebuie adimistrata. Aceasta cuprinde nume de user-i si parole, nume si adrese de retea pentru calculatoare si conturi. Pentru a pune la zi permenent acesta baza de date, ea este mentinuta pe anumite sisteme si este accesibila tuturor.

network-oriented window systems. Pina recent, programele cu afisare grafica trebuiau executate pe calculatoare ce aveau ecrane grafice conectate direct la sistem. Sistemele de ferestre in retea permit sa utilizeze afisarea grafica a altor calculatoare. Cel mai utilizat sistem de ferestre este X Window.

Lista prezentata mai sus cuprinde doar o parte din serviciile oferite sub TCP/IP. Ea contine majoritatea aplicatiilor de baza. Vor reveni asupra protocoalelor ce au tendinta de a oferi servicii specializate pe anumite facilitati, cum ar fi cele legate de user-ii conectati, numele utilizatorului, etc..

D. Descriere generala a protocoalelor TCP/IP

TCP/IP este constituit dintr-un set de nivele de protocoale. Pentru a intelege acest lucru, sa luam un exemplu. Pentru a trimite un mesaj, in primul rind, exista un protocol pentru mesaje. Acesta defineste un set de comenzi prin care un calculator vorbeste cu altul, cum ar fi: comenzi care specifica cine este destinatarul mesajului, cine a trimis mesajul, si apoi textul mesajului. Deci, acest protocol asigura o cale de comunicare in deplina siguranta intre doua calculatoare. Mail-ul, defineste un set de comenzi si mesaje utilizate in comunicare. El este conceput sa fie folosit in conjunctie cu TCP si IP.

TCP are responsabilitatea de a se asigura ca mesajele si comenzile ajung cu bine la destinatar, urmarind ceea ce se trimite si retransmitind ceea ce nu a ajuns cu bine la destinatar. Daca un mesaj este mai lung decit un pachet de date, TCP il va imparti in mai multe pachete si se va asigura ce ele au ajuns corecte la destinatie. Cum aceste functii sint necesare multor aplicatii, ele au fost mai degraba adunate intr-un singur protocol, decit sa faca parte din toate protocoalele ce utilizeaza acesta cale de comunicare. TCP poate fi vazut ca o colectie de functii pe care celelalte aplicatii le utilizeaza atunci cind au nevoie sa comunice cu alte calculatoare. In mod similar, TCP apeleaza la serviciile IP. Cum toate serviciile TCP sint apelate de aplicatii, exista unele aplicatii ce nu au nevoie de ele. Exista totusi un numar de aplicatii ce au nevoie de un tip de servicii. Acestea au fost grupate in IP, pe care il putem vedea in mod identic cu TCP, ca pe o biblioteca de functii ce sint apelate de anumite aplicatii ce nu utilizeaza TCP.

Aceasta tehnica de asezare a protocoalelor pe 'nivele', se numeste 'layering'. Fiecare program apeleaza serviciile nivelului ce se gaseste dedesuptul lui. Aplicatiile TCP/IP folosesc 4 nivele:

un protocol de aplicatie (cum ar fi mail-ul)

un protocol TCP care ofera servicii aplicatiilor

protocolul IP care ofera serviciile necesare ca pachetele sa ajunga la destinatie

protocoalele necesare mediului fizic de comunicatie, cum ar fi Ethernet-ul

TCP/IP se bazeaza pe modelul de retea ce presupune ca un numar mare de subretele sint interconecate prin 'gateways' (porti in retea). Un utilizator trebuie sa poate sa acceseze calculatoare sau resurse aflate pe oricare din aceste retele. Pachetele vor trece prin zeci de subretele pina a ajunge la destinatie. Rutarea necesara acestui scop trebuie sa fie invizibila utilizatorului. Ceea ca il intereseaza pe utilizator este pentru a accesa un alt sistem este 'adresa internet' a acestuia. Acesata este o adresa de tipul: 193.226.29.128 , de fapt, un numar pe 32 de biti. In mod normal, ea se utilizeaza ca un numar format din 4 cifre zecimale, fiecare reprezentind 8 biti de adresa. Structura adresei ofera informatii despre modul in care se ajunge la sistemul referit de ea. Spre exemplu. 193.226 este adresa retelei Universitatii Politehnice din Bucuresti. Urmatorul octet face referinta la subretelele existente la nivelul Politehnicii. 193.226.29 este retelei Universitatii din Sibiu, care este subretea a PUB-ului. Ultimul octet permite un numar de 254 de sisteme pe fiecare subretea (254 pentru ca 0 si 255 nu sint numere valide). 193.226.29.128 si 193.226.29.110 sint adrese de calculatoare din reteaua Universitatii din Sibiu.





TCP/IP este construit pe ideea unei tehnologii 'connectionless' (fara conexiune directa). Informatia este transferata ca o secventa de 'datagrame'. Datagrama este o colectie de date ce este trimisa ca un singur mesaj, individual in retea. Sa presupunem ca dorim sa transferam un fisier de 18000 de octeti. Cele mai multe retele nu accepta o datagrama de 18000 de octeti, de aceea, va trebui sa rupem mesajul in 30 de bucati a 600 de octeti. Fiecare datagrama va fi trimisa la celalalt capat al comunicatiei, unde vor fi reasamnblate pentru a forma fisierul de 18000 octeti. In timpul in care datagramele sint trimise, reteaua nu stie ca exista o legatura intre toate aceste date. Este posibil ca datagrama 26 sa ajunga inaintea lui 25. Exista de asemenea posibilitatea ca in retea sa para erori si anumite datagrame sa nu ajunga la destinatie. In acest caz, ele vor trebui sa fie retrimise. Termenii de datagrama si pachet pot fi in anumite cazuri interschimbati. Totusi, exista o diferenta intre cei doi. Datagrama este o unitate de date cu care lucreaza protocoalele. Pachetul este unitate de date fizica ce apare pe sirma retelei la transmisie. In multe cazuri un pachet contine o datagrama, dar exista si exceptii. Tehnic, datagrama este termenul ce trebuie folosit in cadrul lui TCP/IP.

E. Nivelul TCP

TCP ('Transmission Control Protocol') este responsabil cu taierea mesajelor in daragrame, reasamblarea lor la celalalt capat, retransmiterea a tot ceea ce s-a pierdut si repunerea in ordine a datelor primite. IP 'Internet Protocol' est responsabil cu rutarea datagramelor. Se poate crede ca TCP are sarcina cea mai grea, dar nu este asa. Pentru ca datele trimise de pe un calculator aflat pe o subretea a Universitatii din Sibiu sa ajunga in Statele Unite, ele trebuie sa treaca prin citeva subretele Ethernet, gateway-uri, linia telefonica la 9600 bps, canalul satelit la 64kbps, etc Urmarirea acestor trasee si rezolvarea incompatibilitatilor de mediu sint problemem cu care se confrunta IP-ul. Interfata dintre TCp si IP este simpla: TCP inainteaza o datagrama cu destinatia indicata lui IP. Ip nu stie ca acesta are sa nu legatura cu o alta care va urma.

Modul in care datele sint prelucrate de TCP este urmatorul:

Sa incepe cu in sir de date, spre exemplu un fisier ce urmeaza a fi trimis pe alt calculator.

TCP taie acest sir in bucati ce pot fi trimise. El stie care este marimea unei datagrame.

TCP ataseaza un antet ('header') in capul fiecarei datagrame. Acesta contine 20 de octeti, din care cei mai importanti sint portul sursa si destinatie si numarul de secventa.

Numerele de port sint utilizate pentru a putea urmari comunicatiile care au loc simultan. Sa presupunem ca 3 persoane transfera fisiere de pe calulatorul pe care lucrati. TCP va aloca sper exemplu numerele de port 1100, 1101 si 1102 acestor transferuri. Cind se trimite o datagrama, acestea devin numarul de port a sursei cit timp sursa este acest calulator. La fel, TCP-ul de la celalalt capat va asigna o adresa de port procesului de transfer. Fiecare datagrama are un numar de secventa utilizat de celalalt capat pentru a se asigura ca primeste datagrama in ordinea corespunzatoare si ca ele nu lipsesc. TCP nu numeroteaza datagramele ci octetii. Deci daca sint 500 de octeti in fiecare datagrama, atunci ele vor fi numerotate 0, 500, 1000, 1500, In final, el va calcula suma de control ('cheksum') pe care o va atasa antetului. La celalalt capat, suma va fi recalculata pentru a evita erorile. Datagrama va arata in felul urmator:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Sequence Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Acknowledgment Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Data | |U|A|P|R|S|F| |

| Offset| Reserved |R|C|S|S|Y|I| Window |

| | |G|K|H|T|N|N| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Checksum | Urgent Pointer |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| your data next 500 octets |

Daca notam antetul cu T, atunci fisierul transmis va arata astfel:

T T T T T

Cimpul 'acknowledgement' este folosit in a 'asigura' corspondentul de buna receptie a datelor. Spre exemplu, daca se primeste un numar de 1500 de la celalalt capat, se considera ca acesta a primit corect primii 1500 de octeti.

F. Nivelul IP

TCP trimite datagramele lui IP si de asemenea ii trimite adresa internet a calculatorului de la celalalt capat. Acestea sint toate datele de care are nevoie IP si nu este interesat de continutul datagramei sau de antetul TCP. Treaba lui este de gasi o ruta pentru datagrama si a o trimite. Pentru ca elementele de retea care vor primi si retrimite datagrama sa o poate face corespunzator, va adauga propriul antet. Acesta va contine adresa internet sursa si destinatie, numarul protocolului si suma de control. NUmarul protocolului spune IP-ului de la celalalt capat sa trimita datagrama TCP-ului. Se poate ca alte protocoale se nu utilizeze TCP-ul la celalalt capat si deci trebuie indicat cui sa ii fie adresata datagrama.

Suma de control permite IP-ului sa verifice daca antetul nu a fost distrus pe parcursul transmisiei si deci mesajul nu a ajuns la o destinatie gresita. TCP si IP folosesc sume de control diferite pentru a se asigura ca nu apar erori. Antetul adaugat de IP va avea urmatoarea forma:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Version| IHL |Type of Service| Total Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification |Flags| Fragment Offset |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time to Live | Protocol | Header Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Source Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Destination Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| TCP header, then your data |

Daca reprezentam antetul cu I, atunci fisierul trimis va avea urmatoarea forma:

IT IT IT IT

'Flag'-urile si 'Fragment offset' sint utilizate pentru a urmari bucatile in care a fost taiata o datagrama, lucru care se poate intimpla atunci cind retelele au marimi diferite ale datagramelor. Cimpul 'Time to live' est decrementat de fiecare data cind datagrama trece prntr-un sistem si este utilizat pentru a evita buclele ce pot sa apara in transmisia mesajului. Daca timpul ajunge la zero, daragrama este stearsa.

G. Soclurile

Pina acum am descris modul in care un sir de date este impartit in datagrame, trimis de la un calculator al altul si apoi refacut. Totusi mai este nevoie de cava care sa permita deschiderea unei legaturi, logarea, specificarea fisierului ce va fi trimis. Acest lucru este realizat de protocolul de aplicatie. Acesta se afla pe nivel superior lui TCP/IP.

Sa presupunem ca dorim trimiterea unui fisier la un sistem a carui adresa internet este 193.226.30.101. Pentru a incepe, ne trebuie ceva mai mult decit adresa internet si anume conexiunea la un server FTP. In general, programele sistemelor in retea sint specializate anumitor scopuri; unele pentru transfer de fisiere, altele pentru terminale la distanta, altele pentru mesaje. Cind ne conectam la 193.226.30.101 trebuie sa specificam faptul ca dorim sa accesam serverul FTP. Acest lucru se realizeaza prin socluri. Deci lansarea programului ftp va deschide o conexiune cu un numar (vezi TCP) aleator, sper exemplu 1234, precizind portul 21 de la celalalt capat. Acesta este portul serverului FTP. Exista totuis doua tipuri de programe utilizate: programul ftp de calculatorul tau, ce va accepta comenzi si le va trimite la celalalt capat. Programul va dialoga cu serverul FTP de pe celalalt sistem. Acesta accepta comenzi de la statiile conectate din retea. Nu este necesar ca programul ftp sa foloseasca un soclu cunoscut pentru el, pentru ca nimeni nu va incerca sa il apeleze. Pentru server insa, lucrurile sa schimba. Trebuie sa exista un soclu dedicat si binecunoscut de toti ceilalti.

O conexiune este deci descrisa de 4 numere: adresa internet la fiecare capat si numarul portului TCP la fiecare capat. In acest fel, nu exista doua conexiuni identice. Daca doi utilizatori ai aceleasi calculator sint conectati la acelasi server FTP, vor fi diferentiati de numarul portului, ca in exemplul de mai jos:

Internet addresses TCP ports

connection 1 193.226.29.128, 128.6.4.7 1234, 21

connection 2 193.226.29.128, 128.6.4.7 1235, 21

H. Nivelul Ethernet

In zilele noastre, cele mai multe retele au la baza modelul Ethernet. Dupa ce am vazut la laboratoarele precedente cum datagrama ce urma a fi trimisa, primea un antet TCP si apoi unul IP, ea fiind inminata nivelului inferior al stivei de protocoale, vom vedea acum, modul in care Ethernet isi compune propriul antet.

Cei ce au proiectat Ethernet-ul au dorit sa nu existe doua calculatoare care sa aiba acceasi adresa Ethernet. Mai mult, ei au degrevat utilizatorul de sarcina atribuirii de adrese. De aceea, fiecare interfata Ethernet are inscrisa propria adresa din fabricatie. Pentru a fi siguri ca nu vor exista doua adrese identice, proiectantii au alocat 48 de biti spatiului de adrese. Cei ce produc placi Ethernet, trebuie sa se inregistreze la o autoritate centrala, pentru a fi siguri ca adresele ce le atribuie nu se suprapun cu cele ale altui producator.

Ethernet este un 'mediu de comunicare'. Daca un pachet este trimis pe linia de comunicatie, fiecare calculator ce se afla legat la ea, poate receptiona acel pachet. De aceea, trebuie sa fim siguri ca el este receptionat de cine trebuie. Aici este implicat antetul Ethernet. Fiecare pachet are un antet de 14 octeti care include adresa sursa si destinatie si un cod. Se presupune ca un calculator nu va acorda atentie decit pachetelor ce ii sint adresate, dar se poate trisa si de aceea, comunicatiile Ethernet nu sint considerate foarte sigure. Nu exista legatura intre adresa Ethernet si cea Internet. Fiecare calculator trebuie va avea o tabela in care sint care sint trecute corespondentele dintre cele doua adrese. Cimpul de cod din antet serveste exitentei mai multor protocoale pe aceeasi retea. Se pot utiliza TCP/IP, DECnet, IPX, etc. in acelasi timp, fiecare completind corespunzator codul din ante. De asemenea, exista si o suma de control, calculata pe intregul pachet. Ea este adaugata la sfirsitul pachetului. Forma pachetului Ethernet este urmatoarea:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Ethernet destination address (first 32 bits) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Ethernet dest (last 16 bits) |Ethernet source (first 16 bits)|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Ethernet source address (last 32 bits) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Type code |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| IP header, then TCP header, then your data |

| |

| |

| end of your data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Ethernet Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Daca reluam sirul parcurs de datagrama prin nivelele TCP si IP, fisierul din exemplul considerat anterior va avea forma:

EITC EITC EITC

unde E este antetul Ethernet si C suma de control Ethernet.

Atunci cind pachetele ajung la celalalt capat, antelele sint inlaturate. Interfata Ethernet se va uita apoi la codul pachetului. Daca acest cod este data de IP, driver-ul Ethernet va 'pasa' datagrama nivelului IP. IP va inlatura antetul si va inspecta cimpul protocol. Daca acesta este TCP, va trimite la nivelul superior TCP, datagrama. TCP se va uita la numarul de secventa inscris in antet si va incerca pe baza acestuia si a celorlalte fragmente primite, sa refaca fisierul original. Aici se incheie drumul parcurs de la sursa la destinatie, de datele ce se vehiculeaza in fiecare secunda pe cablurile retelelor.

I. Sistemul de domenii

Asa cum am vazut mai devreme, programe de retea utilizeaza o adresa Internet de 32 de biti pentru trimiterea unei datagrame. Totusi, utilizatorii prefera utilizarea numelor in locul numerelor. De aceea, exista o baza de date ce permite programelor cautarea unui nume si inlocuirea lui cu un numar. Atunci cind Internet-ul era mai putin extins, acest lucru era rezolvat usor. Fiecare sistem avea o lista a tuturor sistemelor ce cuprindea atit numele cit si adresa numerica. Exista acum prea multe calculatoare, pentru ca aceasta tehnica sa fie utila. Aceste fisiere au fost inlocuite cu servere de nume ('name server') ce permit urmarirea numelor de host si adreselor Internet. Si totusi, in zilele noastre, exista un numar atit de mare de sisteme incit este imposibil de a anunta o autoritate centrala de fiecare data cind este instalat sau mutat un calculator. De aceea, autoritatea a fost delegata la nivelul institutiilor. Serverul de nume formeaza o structura arborescenta asemanatoare cu cea a structurii institutiilor. Numele vor urmari aceeasi directie. Spre exemplu sa luam numele BORAX.LCS.MIT.EDU, al unui calculator al Laboratorului pentru Stiinta Calculatoarelor (LCS) de la MIT. Pentru a afla adresa Internet vor trebui consultate 4 server-e diferite. Pentru inceput, se acceseaza un server central pentru a afla unde se gaseste serverul EDU, ce urmareste adresele institutiilor educationale din U.S.A.. Se vor primi mai multe adrese ale server-elor EDU, deoarece nu este practic sa existe unul singur. Apoi va fi chestionat EDU despre adresa server-ului MIT. Din nou vor fi primite mai multe adrese si nume de server-e MIT. Se intreba server-ul MIT despre existenta lui LCS si in final, LCS va oferi adresa lui BORAX. Fiecare din aceste nivele este referit ca un 'domeniu' ('domain')., astfel ca BORAX.LCS.MIT.EDU este un 'nume domeniu' ('domain name') cum sint numele de pe cel mai inalt nivel al domeniului, cum ar fi LCS.MIT.EDU, MIT.EDU si EDU.

Din fericire, nu va trebui sa urmarim aceasta cale de fiecare data. In primul rind, server-ul central este de obicei server-ul de nume de pe nivelul cel mai inalt al domeniului, cum ar fi EDU. De aceea, o simpla chestionare al lui EDU va avea drept raspuns adresa lui MIT. In al doilea rind, programele retin raspunsurile primite anterior si spre exemplu, daca am aflat oadata unde BORAX.LCS.MIT.EDU se gaseste, programul isi va aminti la o utilizare ulterioara. Fiecare astfel de informatie are un timp de viata de obicei citeva zile, dupa care sirul de cautari va trebui reluat.

Serverul de nume este un program specializat ce urmareste si deserveste domeniul din care face parte. O posibilitate 'statica' de regasire a numelor este tabela ce se constituie la nivelul fiecarui calculator. Solutia este utilizate la sistemele de dimensiuni mici, unde modificarile sint cunoscute si nu survin des.Tabela de 'host'-uri ce se regaseste la nivelul sistemului are urmatorul format:

193.226.29.128 univ.sibiu.ro univ

193.226.29.110 zeus.sibiu.ro zeus

193.226.30.101 jupiter.sibiu.ro jupiter

Pe fiecare linie apare o adresa IP, numele complet al sistemului si eventual 'nickname'-ul (porecla) sau numele prescurtat.

J. Rutarea si adresarea

Multe din deciziile de stabilire a conexiunilor intre retele se bazeaza pe conceptul de rutare ('routing') si de aceea vom explicita acest concept. Acest concept se leaga si de elemente arhitecturale cum ar fi portile ('gateways') si podurile ('bridges') pe care le vom discuta la un alt laborator. In genaral, datagramele IP trec prin multe subretele pina vor ajunge la destinatie. Un exemplu tipic de traseu ar fi urmatorul:

reteaua 1 reteaua2 reteaua3

128.6.4 128.6.21 128.121

============================== ==================== =================

| | | | | | |

---------- ---------- ------------- ------------ ------------

128.6.4.2 128.6.4.3 128.6.4.1 128.6.21.1 128.121.50.2

128.6.21.2 128.121.50.1

calculator A calculator B gateway R gateway S calculator C

In aceasta figura se regasesc trei retele, doua gateway-uri si trei calculatoare. Retelele pot fi de orice tip, Ethernet, Token Ring, etc.. Calculatorul A poate trimite datagrame calculatorului B folosind reteaua 1. El nu poate in schimb sa dialogheze direct cu calculatorul C. Exista mai multe cai de a conecta retelele si una dintre acestea foloseste gateway-uri. In acest caz, datagramele dintre A si C trebuie sa treaca prin poarta R, reteaua 2 si poarta S. Fiecare calculator ce foloseste TCP/IP are nevoie de informatii si algoritmi care ii permit sa decida daca o datagrama trebuie trimisa printr-o poarta si care sa fie aceea.

Rutarea este apropiata in conceptie de alegerea adreselor. Adresa fiecarui calculator incepe cu numarul ce indentifica reteaua la care este atasat. Spre exemplu, 128.6.4.2 si 128.6.4.3 se gasesc pe reteaua 128.6.4. Se poate observa ca, gateway-urile, a caror functie este de a conecta doua subretele, au cite o adresa pe fiecare subretea. Poarta R conecteaza retelele 128.6.4 si 128.6.21. Adresa pe prima retea este 128.6.4.1 si pe a doua este 128.6.21.2.




Din cauza asociatiei dintre adrese si retele, deciziile de rutare se bazeaza strict pe adresa de retea a destinatiei. Iata cum ar trebuie sa fie prezentate informatiile de rutare pentru calculatorul A:

network gateway metric

128.6.4 none 0

128.6.21 128.6.4.1 1

128.121 128.6.4.1 2

DIn acest tabel, calculatorul A poate spune ca datagramele pentru calculatoarele din reteaua 128.6.4 pot fi trimise direct si ca datagramele pentru retelele 128.6.21 si 128.121 trebuie trimise gateway-ului R. Metrica ('metric') este utilizata de algoritmii de rutare pentru a-si da seama cit de departe este destinatia. In acest caz, ea va indica prin cite gateway-uri va trece datagrama (referita si ca 'hop').

Gateway-ul este un calculator conectat la doua retele si care face trecerea datagramelor intre ele. In multe cazuri se utilizeaza echipamente specializate ce lucreaza ca gateway-uri si sint mult mai eficiente. Solutia clasica utilizeaza calculatoare ce au mai multe interfete de retea si a caror programe sint pregatite sa trimita datagramele spre destinatie. Fiecare interfata de pe acel calculator va avea atribuita o adresa Internet.

K. Clase de adrese

In momentul in care se aplica oficial pentru obtinerea unei adrese de retea, va trebui specificata tipul de clasa ce se doreste. Acesta poate fi A, B sau C, in functie de spatiul de adrese alocat. Adresele din clasa A au spatiul de 1 octet, cele de clasa B au 2 octeti iar cele de clasa C, 3 octeti. Exista un compromis: exista mai multe adrese de clasa C decit de clasa A, dar clasa C nu permite atitea sisteme cite permite A. Idea a fost ca vor fi un numar mare de retele mici, mai putine retele mijlocii si putine retele mari.

clasa domneniul primului octet retea restul adrese posibile

A 1-126 p q.r.s 167777214

B 128-191 p.q r.s 65534

C 192-223 p.q.r s 254

Spre exemplu, reteaua 10 de clasa A, are adrese intre 10.0.0.1 si 10.255.255.254, deci 254^3 sau aproximativ 16 milioane de adrese posibile. Reteaua 193.226.29, de clasa C, poate avea host-uri cu adrese intre 193.226.29.1 si 193.226.29.254, deci 254 de posibilitati.

L. Cum sint rutate datagramele

Asa cum am vazut, fiecare calculator are o tabele de rutare, ce cuprinde lista portilor si a interfetei de utilizat pentru fiecare destinatie posibila. Un exemplu simplu a fost prezentat cu acesta ocazie, totusi vom reveni cu mai multe detalii. Pe cele mai multe sisteme, tabele va arata ca in figura de mai jos. Ea se obtine lansind comnada Unix netstat -r .

Destination Gateway Flags Interface

128.6.5.3 128.6.7.1 UHGD il0

128.6.5.21 128.6.7.1 UGHD il0

128.6.4 128.6.4.61 U pe0

128.6.6 128.6.7.26 U il0

127.0.0.1 127.0.01 UH lo0

default 128.6.4.27 UG pe0

UHUH

Tabela consta dintr-un set de intrari ce descriu retelele. Pentru toate acestea, primele trei coloane descriu unde vor fi trimise datagramele destinate acelor retele. Daca flagul G este prezent in a treia coloana, datagramele trebuiesc trimise printr-un gateway. A doua coloana descrie adresa gateway-ului la care trebuie trimise. Daca flagul G nu este prezent, calculatorul in cauza este conectat direct la acea retea, deci datagramele trebuiesc trimise folosind interfata descisa pe coloana a patra. Flagul U prezent pe coloana a treia indica faptul ca acea ruta este 'up', adica functioneaza.

Primele doua linii din exemplu indica rute de host, indicind faptul ca datagrame pentru un anumit host trebuiesc trimise printr-un anumit gateway. Flagul H indica o ruta de host, iar flagul D semnifica faptul ca ruta a fost creata dinamic.

In general, se specifica rute pentru intreaga subretea, asa cum este exemplul de pe linia trei. Intrarea de pe linia cinci din tabela de rute este un 'loopback' si este utilizata in testarea TCP/IP-ului sau a interfetei. In sfirsit, ultima intrare ofera o sansa datagramelor ce nu putut utiliza nici o informatie din tabela de a ajunge la destinatie, folosind ruta implicita.

M. Internet si World Wide Web

1. Ce este WWW ?

Acesta este un sistem de distribuire a informatiei hypermediale prin intermediul Internet-ului. Conceptul de WWW cuprinde: informatia hypertextuala si hypermediala, calculatoare ce contin acesata informatie si cele utilizate pentru a accesa aceasta informatie, reteaua care leaga calculatoarele, programele si protocoalele utilizate pentru acest tip de comunicatie.

2. Scurt istoric

Proiectul WWW a inceput in 1989 la CERN ('Centre Europeen de Recherche Nucleaire') de la Geneva, Elvetia. WWW a inceput sa fie utilizat efectiv in 1991. La inceput, era doar un sistem de a comunica intre cercetatorii in fizica nucleara. Acest sistem, bazat pe modelul client-server, utilizeaza un protocol de comunicatii special, numit HTTP (HyperText Transfer Protocol) si a aparut inaintea protocolului 'gopher'. Dar cum a fost conceput si utilizat in medii informatice putin raspindite('NeXTStep), nu a ajuns sa fie cunoscut.

In anul 1993, cercetatori lucrind pentru NCSA ('National Center for Supercomputing Applications') din Statele Unite, a inceput sa scrie aplicatii HTTP pentru medii informatice mai populare. Spre sfirsitul lui 1993, aplicatiile cele mai utilizate si in zilele noastre au aparut si WEB-ul a inceput sa cistige teren.

3. Comunicatia prin WWW

Partile componente ale unei comunicatii hypermedia sint:

reteaua

calculatorul server (ce contine informatia) si calculatorul client

un program server (instalat evident, pe server) si un program client ('browser') instalat pe client, amindoua putind opera pe medii informatice diferite

http, protocolul de comunicatie hypertextuala, ce permite legatura intre calculatoare

Etapele unei tranzactii sint:

1. utilizatorul isi formuleaza cererea programului client ('browser')

2. acesta traduce cererea in http

3. se conecteaza la server si ii trimite cererea

4. programul server analizeaza cererea si pregateste raspunsul

5. programul server trimite raspunsul la client

6. clientul traduce raspunsul intr-un limbaj ce poate fi inteles de utilizator si il afiseaza

Interfetele utilizator a programelor client sint independente de server-e, ceea ce inseamna ca un document ce se gaseste pe server poat fi prezentat diferit de catre clienti, in functie de interfete.

4. Adresarea URL

URL ('Uniform Resource Locator') este o metoda de a descrie adresa unei resurse pe Internet, fie ea adresa unui server FTP, o adresa electronica, un server HTTP sau altele. Cel mai del, URL est utilizat pentru a face referinta la pagini WWW si anume, atunci cind adresa incepe cu 'htp:'. Fisierele ce pot fi obtinute prin protocolul FTP si Gopher au referinte URL. Chiar si sesiunile Telnet la calculatoare de pe Internet sau adrese de e-mail contin URL-uri. Formatul general este sub forma unei adrese complete si ofera toate informatiile pentru ca datele sa poata ajunge la destinatie:

<tip>://[<adresa_server>][:<port_de_acces>]/[<cale><nume__fisier>]

Deoarece URL poate face referire la un numar mare de resurse, exista un specificator de tip. Acesta poate fi 'http', 'ftp', 'gopher' sau 'news' si indica aplicatiei ce fel de resurse se doresc si ce mecanism sa foloseasca pentru a le accesa. Spre exemplu, adresa,

http://www.netspace.org/users/dwb/url-guide.html

specifica faptul ca acest URL se adreseaza lui HyperText Transfer Protocol, adresa Interner a sistemului este 'www.netspace.org', iar calea pina la fisierul dorit este 'users/dwb/url-guide.html'.

Exemple:

gopher://gopher.umontreal.ca

file://wuarchive.wustl.edu/mirrors

http://info.cern.ch:80/default.html

telnet://dra.com

news:alt.hypertext

Partea ce urmeaza dupa ':' este intrepretata in functie de metoda de acces (tipul resursei). '//' semnifica conexiunea la un server. '@' este precedat de un nume de login ce se utilizeaza la o conexiune telnet. Exista mai multe conventii in ceea ce priveste descierea adreselor de acces la resurse.

5. Limbajul HTML

HTML ('HyperText Markup Language') este un limbaj de definire a documentelor confom normei SGML ('Standard Generalized Markup Language'). Un document hypertextual definit cu HTML este un document ASCII ce contine printre altele, informatia si 'balizele' - etichete ce marcheza textul. Marcajul este de tip logic si nu stilistic. HTML nu est un limbaj de formatare. El nu descrie modul in care textul apare pe ecran.

Informatia continuta intre etichete este destinata programelor client si server. Atunci cind parcurgem un document hypertextual si cind activam un 'pointer', programul citeste etichetele ('link',legaturile) care acompaniaza acest pointer si care contin o ancora (o trimiterea la o parte a documentului), un URL sau o ancora si un URL (in cazul in care pointerul face o trimitere la un document aflat pe alt server). Aceste etichete marcheaza entitatea asa cum o fac parantezele '' in C sau 'begin end' in Pascal.

Un document HTML (sau o pagina WEB) este constituit dintr-un antet si din corpul paginii. Antetul contine in mod normal titlul paginii. Corpul va ingloba restul informatiilor. O pagina WEB are urmatoarea structura:

<HTML>

<HEAD>

<TITLE>

Titlul paginii

</TITLE>

</HEAD>

<BODY>

Continutul paginii

</BODY>

</HTML>

Se pot utiliza atit litere mari cit si litere mici in descrierea etichetelor. Spatiile si TAB-urile nu sint luate in considerare. In cadrul corpului se pot insera antete, paragrafe, liste, text preformatat, imagini sunete si animatii. Toate aceste se specifica prin etichete. Aceste etichete nu realizeaza formatarea.

<Hi> </Hi> - identifica antetele sau capitolele ('heading') iar i poate lua valori de la 1 la 6, cu valoarea 1 pentru cel mai mare si ingrosat scris.

<P> .. </P> - marcheaza paragrafele.

<UL> </UL> - specifica o lista neordonata. In cadrul listei <LI> marcheaza inceputul fiecarui element al listei si nu exista marcaj de sfirsit </LI>. Listele neordonate se afiseaza cu asterisc-uri sau buline.

<OL> </OL> - identifica o lista ordonata. In cadrul listei <LI> marcheaza inceputul fiecarui element al listei si nu exista marcaj de sfirsit </LI>. Listele neordonate se afiseaza cu numere in ordine crescatoare.

<ADDRESS> </ADDRESS> - specifica semnatura paginii. Aceasta contine nume si adrese si este inclusa la sfirsitul paginii.

<HR> - adauga o linie orizontala cu rol de separator in textul paginii.

<BR> - 'break', rupe o linie de text.

Textul poate fi afisat folosind urmatoarele stiluri:

<B> </B> - bold

<I> </I> - italic

<TT> </TT> - typewriter

Caracterele speciale trebuiesc utilizate cu grija, deoarece pot fi interpretate drept comenzi HTML.Spre exemplu, dace se doreste afisarea sirului de caractele '<B>' acesta va fi interpretat drept o eticheta de bold, iar rezultatul nu va fi cel dorit. HTML propune un mod de afisare a caracterelor speciale, folosind codul '& id ;' .

Exemple:

&lt; semnul <

&gt; semnul >

&quot semnul '

&eacute e cu accent ascutit ''

Un avantaj al sistemelor interactive de tip WEB o constituie posibilitatea de a utiliza referinte si a ealiza legaturi extrem de usor. Un element de legatura are forma:

<A HREF='referinta'>text</A>

unde referinta - este adresa unui element WWW si text - este textul ce apare pe ecranul clientului. Tetul este subliniat sau marcat intr-un anumit mod pentru a indica o legatura. Cind acesta este selectat, cu mouse-ul sau tastatura, 'browser'-ul va incarca ceea ce a fost indicat prin referinta.

Daca o pagina contine o linie de forma:

Am luat ideea de la <A HREF= 'http://web.washington.edu/~fox'>Fox Riley</A>

aceasta va aparea pe ecran sub forma 'Am luat ideea de la Fox Riley'. Atunci cind utilizatorul selecteaza cu mouse-ul numele Fox Riley, se va incarca pagina Web de la adresa indicata. In cazul in care fisierul ce se doreste incarca se afla pe acelasi sistem, nu mai trebuie specificata intrega adresa, ci numai calea si numele fisierului. Spre exemplu, pentru a incarca lista.html se va specifica href=lista.html sau href=../lista.html .

Pentru a afisa imagini in paginile Web, acestea trebuiesc mai intii convertite in formatele ce pot fi afisate de majoritatea browser-elor. Formatul GIF este cel mai utilizat. Se va indica folosind etichete, numele si calea pina la fisierul imagine ce va fi afisat <IMG SRC='cale/nume_fisier'>. Pentru fisiere ce se gasesc pe sistemul de unde s-a incarcat pagina, se va folosi, spre exemplu SRC='../vedere.gif', iar daca imaginea se gaseste la o alta adresa, se va specifica URL-ul:

SRC='http://nume_host/nume_user/vedere.gif'.

Imaginile pot apare oriunde pe ecran, chiar intr-o porpozitie si pot contine o referinta, ca in exemplul de mai jos:



<P>

Fotografia facuta in vacanta

<A HREF='vacanta.html'> <IMG SRC='vedere.gif' ALIGN=BOTTOM>

</A> la Paltinis.

<P>

Imaginea va aprea in linie cu textul si va fi o referinta ce poate fi selectata. Paramentrul ALIGN poate lua valorile TOP, BOTTOM sau MIDDLE. Se vor folosi imagini de mici dimensiuni.

Pentru a afisa imagine de marimea unei pagini, a viziona animatii video sau a asculta sunete, HREF trebuie sa pointeze catre fisierul potrivit. Extensiile pot fi de tipul: .gif,.jpg pentru imagini, .mpeg, .mov pentru video si .wav pentru sunete.

Acestea ar fi citeva din comenzile limbajului HTML si ele pot constitui punctul de plecare pentru realizarea propriei pagini WEB.

N. World Wide Web

De mult timp se cocheta cu idea crearii unei baze de date universale, adica o baza de date ce sa contina informatii din cit mai multe domenii si care sa poata fi accesata de un numar mare de persoane. Pina cu putin timp in urma acest ideal se mentinea in domeniul viselor. Odata cu aparitia a ceea ce numim astazi World Wide Web un astfel de vis a devenit realitate.

Vom incerca sa clarificam o serie de notiuni care sint absolut necesare pentru proiectarea unui navigator sau, dupa cum ne-am obisnuit, client de Web. De-acum este un lucru inteles de toata lumea faptul ca WWW defineste localizarile si metodele de acces pentru orice tip de fisier care poate fi gasit pe Internet.

1. Consideratii generale

Ca orice aplicatie care ruleaza pe Internet, operatiile Web depind de un protocol. In acest caz ne vom referi la protocolul numit HyperText Transfer Protocol sau prescurtat HTTP. La fel ca protocoalele FTP, POP sau SMTP, HTTP defineste un set de comenzi si foloseste siruri ASCII pentru limbajul sau de comanda. O tranzactie HTTP este mult mai simpla decit o tranzactie FTP discuta ta in episoadele anterioare. De fapt o astfel de tranzactie cuprinde patru parti: o conexiune, o cerere, un raspuns si inchiderea canalului de comunicatie. In general, un program client HTTP stabileste o conexiune TCP la portul 80 al sistemului aflat la distanta. In continuare clientul HTTP trimite o cerere catre serverul HTTP. Dupa ce serverul trimite un raspuns la cererea clientului are loc suspendarea conexiunii - suspendare initiata de ser ver sau de client. Fiecare tranzactie HTTP urmeaza acelasi prototip.

Din punctul nostru de vedere, ca programatori, programul client HTTP va folosi bine cunoscuta procedura pentru stabilirea unei conexiuni TCP: crearea unui soclu, rezolutia adresei IP, completarea adresei soclului si in fine conectarea la portul 80 al serverului. In cele mai multe cazuri un client HTTP va cere serverului sa transmita un fisier HTML sau un fisier binar - imagine, video, audio. In mod corespunzator, raspunsul serverului va consta intr-un transfer de octeti la portul local. HTTP nu necesita nici o operatie speciala pentru inchiderea canalului de transmisie.

Legatura dintre client si server se realizeaza de obicei prin intermediul unei singure conexiuni. De foarte multe ori insa, este posibil sa existe mai multi intermediari. Noi vom discuta aici de doi astfel de intermediari: proxy si gate way.

Un proxy este un intermediar mai sofisticat: el primeste cererile din partea clientului, rescrie o parte a mesajului sau chiar intreg mesajul dupa care va transmite m esajul modificat catre serverul adresat initial. Practic un proxy se substituie clientului initial. Raspunsul serverului va sosi tot la proxy care dupa o rescriere a mesajului il va trimite catre client. Dinspre server nu se mai 'vede' cine este adevaratu l client: toti clientii care trec prin proxy sint 'ascunsi', serverul primind cereri doar de la proxy. Acest proxy poate face intr-un singur loc o serie de verificari care ar fi greu de implem entat pe mai multe masini.

Un gateway este similar unui proxy cu diferenta ca gateway-ul reprezinta un grup de servere. Este un fel de receptor, un fel de antecamera pusa in fata unui grup de servere. Serverele 'ascunse dupa gateway' nu se vad in restul lumii. Ele sint toate reprezentate de gateway. Cererile sosite la gateway sint dirijate catre serverele care sint in masura sa sati sfaca cererea. De regula are loc si o conversie de protocol: din http inspre protocolul pe care il cunoaste sau il foloseste un anumit server. In acest fel serverele reprezentate printr-un gateway nu mai trebuie sa 'cunoasca' http.

2. Cererile clientului

Principalul motiv pentru existenta Web-ului consta in oferirea unui acces liber la marea masa de fisiere din Internet pentru utilizatori. Dupa cum am discutat, dupa stabilirea conexiunii, clientul HTTP trimite o cerere serverului. Aceasta cerere specifica un nume de fisier, o locatie Internet (adresa unui sistem) si o metoda (in mod tipic un protocol ca HTTP sau FTP) pentru a receptiona respectivul fisier. Combinatia tuturor acestor elemente formeaza ceva numit identificator universal de resurse sau prescurtat URI - universal resource identifier.

Pentru a aduce un fisier de pe Internet, un client Web trebuie sa stie unde se gaseste fisierul si cum sa discute cu sistemul pe care se gaseste acest fisier. Pentru a aduce un fisier navigatoarele Web utilizeaza pe linga protocolul HTTP si alte protocoale: FTP, GOPHER, ARCHIE, VERONICA si WAIS. URI defineste informatiile de care are nevoie un navigator pentru a folosi oricare dintre protocoale pentru aducerea fisierului. Cu alte cuvinte URI reprezinta un nume generic pentru orice obiect de pe Internet.

Un concept aflat intr-o strinsa legatura cu URI este URL sau Uniform Resource Locator. Pe scurt, un URL reprezinta un URI care cuprinde si informatia privind adresa sistemului pe care se

gaseste resursa. Cu alte cuvinte putem spune ca U RL reprezinta un tip special de adresa pe retea. Pe linga faptul ca un URL identifica un anumit obiect pe un anumit sistem, el mai defineste o metoda de acces la obiectul respectiv. RFC-ul 173 8 (care reprezinta o descriere pe larg a conceptului de URL) se refera la aceste metode de acces folosind termenul de schema. In ziua de

astazi, din motive practice, putem identifica aceste metode de acces ca protocoale.

Sintaxa unui URL este foarte simpla, ea cuprinzind doua parti:

<schema>:<partea-specifica-schemei>

In prima parte a expresiei se cere specificata numele metodei (mai clar spus a protocolului) prin care se va accesa obiectul. Cea de-a doua parte a expresiei contine informatiile specifice unei metode de acces. Mai clar spus, cea de -a doua parte a expresiei contine numele si localizarea obiectului precum si o serie de parametri necesari metodei respective de acces. Dupa cum putem realiza, este clar ca pentru fiecare protocol partea specifica difera. Ca urmare a faptului ca scopul nostru este sa ne familiarizam cu protocolul HTTP atentia noastra se va focaliza spre sintaxa URL specifica metodei de acces HTTP.

Deci, adresarea unei resurse folosind metoda de acces HTTP se face prin constructii de forma:

http://adresa_host_in_retea[:port]/cale/subcale1//subcalen/nume_document

Acum sa analizam partile acestei constructii.

         'http:' specifica tipul protocolului; el trebuie precizat dat fiind faptul ca http nu este singurul protocol prin care poate fi accesata o anumita resursa Internet.

         'adresa_host_in_retea' (de exemplu www.sibiu.ro) identifica un server sau un gateway din retea, folosind adresarea uzuala de tip DNS (Domain Name Service) din Internet:

         numehost.subdomeniu1.subdomeniu2 subdomeniun.domeniu_de_baza. Cu alte cuvinte www.sibiu.ro s-ar citi 'serverul www din subdomeniul sibiu din domeniul de baza ro'.

         ':port' poate lipsi, ceea ce inseamna ca se presupune implicit ca se face referire la portul standard, 80. Prin faptul ca exista si aceasta optiune inseamna ca putem specifica si alt port decit portul standard (de exemplu 8080).

         'cale/subcale1//subcalen/nume_document' se refera chiar la calea absoluta pina la documentul nume_document de pe serverul respectiv. Totusi, resursa referita nu este intotdeauna un document. Ea poate fi doar un fractiune din document ul respectiv, caz in care se face referire la fragmentul respectiv:

cale1/subcale1//subcalen/nume_document #capitolul2aliniatul3

Sau, mai general, resursa referita poate fi chiar un program caruia trebuie sa i se paseze citiva parametri si o anumita cerere:

cale1/subcale1//subcalen/nume_program;param1;param2;;paramn?cerere

Cum vom citi de exemplu urmatoare referinta?

http://guaraldi.cs.colostate.edu:2000/cgi_bin/savy-frontend?KW=cuvint_cheie

&clasic=on&t1=x&Boolean=AND&Hits=10&Mode=MakePlan&df=normal&AutoStep=on.

'http://guaraldi.cs.colostate.edu:2000' ne spune ca se va face o conexiune via http cu serverul guaraldi.cs.colostate.edu, utilizind portul 2000 al acestuia. Pe acest server se va adresa progra mul savy-frontend din directorul cgi-bin/, caruia nu i se paseaza alti parametri decit cei inclusi in felul in care a fost formulata cererea:

KW=cuvint_cheie&clasic=on&t1=x&Boolean=AND&Hits=10&Mode=MakePlan&df=normal&AutoStep=on.

Specificare unei resurse nu trebuie sa fie totdeauna absoluta, ca in exemplul analizat putin mai sus: daca ne-am plasat deja intr-un subdirector oarecare al unui server, se pot folosi adrese relative care omit calea pina la acel director:

subcale1/subcale2//subcalen/nume_resursa

sau chiar pur si simplu

nume_resursa

daca resursa se afla in acelasi director.

3. Metodele HTTP

Dupa cum am spus, emiterea cererilor de catre client reprezinta cea de-a doua faza a unei tranzactii HTTP. Cererile clientului se pot incadra intr-una din urmatoarele categorii: cereri simple, cereri complete. HTTP se refera la comenzile sale prin termenul de metode.

Singura metoda sau comanda utilizata intr-o cerere simpla este GET. Aceasta metoda era singura disponibila in prima versiune a protocolului, HTTP/0.9. Metodele prevazute de versiunea 1.1 sint

urmatoarele: OPTIONS, HEAD, POST, PUT, PATCH , COPY, MOVE, DELETE, LINK, UNLINK, TRACE, WRAPPED.

In cazul unei cereri complete, dupa specificare metodei ca atare se specifica URI si versiunea protocolului HTTP. O cerere completa mai poate cuprinde si antete de cimp care, mai clar spus, reprezinta parametrii comenzilor. Definite in cadrul protocolului pentru fiecare metoda, antetele de cimp pot avea valori care la rindul lor sint definite (dar nu limitate, extensiile fiind in princi piu totdeauna posibile).

OPTIONS semnifica o cerere relativa la informatiile ce definesc optiunile de comunicare disponibile pe conexiunea catre URI-ul specificat in cerere. Metoda permite determinarea optiunilor si / sau posibilitatilor unui server fara a determina vreo actiune.

Dupa cum spuneam mai inainte, unei metode i se pot transmite parametri. O cerere de tipul

OPTIONS www.sibiu.ro HTTP1/1 CRLF

Accept: audio/*; q=0.2,

audio/basic CRLF

reprezinta o cerere de definire a optiunilor catre serverul www.sibiu.ro, in care clientul solicitant spune ca prefera audio/basic, dar accepta orice tip pentru date audio daca acea calitat e a reprezentarii nu scade sub 20%. O cerere de genul

OPTIONS www.agora.ro HTTP1/1 CRLF

Accept: text/plain; q=0.5,

text/html,

text/x-dvi; q=0.8; mxb=100000,

text/x-c CRLF

specifica preferintele referitoare la modul de reprezentare al textului. x-c sau html daca sint disponibile; daca nu, x-dvi, dar numai daca textul nu depaseste 100000 de octeti sau plain altfel. Se poate remarca rolul diferit al celor doua separatoare care apar in textul metodei: ';' si ','. Virgula separa grupurile de optiuni. Punct si virgula separa optiuni care se pot interschimba.

GET este metoda care 'aduce' ceva de la resursa; mai concret, daca resursa este un proces care produce date (o interogare de pilda) raspunsul la metoda GET va fi o en titate care sa cuprinda acele date. Din punct de vedere al protocolului http discutia este simpla: o intrebare are un raspuns. Nu se pot pune mai multe intrebari pentru a obtine un singur rasp uns, nu se pot formula mai multe raspunsuri la o intrebare.

Exista totusi doua posibilitati prin care se poate ajunge la micsorarea volumului de date care circula pe retea in urma elaborarii unui raspuns. Mai clar spus este vorba despre o conditionare de genul 'daca s-a schimbat ceva' si respectiv despre posibilitatea de a prelua numai o parte din raspuns. O cerere de genul:

GET www.agora.ro/?o_cerere_oarecare HTTP/1.1

If-Modified-Since: Sat, 1 Apr 1996 20:00:00 GMT

va aduce ceea ce s-a cerut numai daca s-a modificat ceva dupa data si ora specificate in parametri metodei.

HEAD este o metoda similara cu GET, folosita in principiu pentru testarea validitatii, testarea accesibilitatii unei resurse sau pentru a afla daca s-a schimbat ceva. Sintaxa este similara metodei GET dar spre deosebire de aceasta datele produse de resursa nu sint transmise ci sint transmise doar caracteristicile datelor si un cod de eroare. Cu alte cuvinte, metoda HEAD este o intrebare de genul 'Daca ti-as cere sa executi cererea mea, ce mi-ai raspunde?'.

POST este metode prin care se cere, resursei specificate in cerere, sa isi subordoneze datele entitatii care insoteste cererea. Cu POST se poate adauga un fisier intr -un anumit director specificat in cerere, se poate adauga un mesaj unui grup de stiri specificat in cerere, se pot adauga noi informatii intr-o baza de date existenta etc.

PUT este o metoda care cere serverului ceva mai mult decit POST: sa stocheze entitatea cuprinsa in cerere cu numele specificat in URI. Daca resursa specificata exista deja, entitatea noua trebuie privita ca o versiune modificata care ar trebui sa o inlocuiasca pe cea existenta. Serverul va accepta sau nu aceasta cerere in functie de drepturile pe care i le -a acordat clientului si va raspunde cererii cu informatii corespunzatoare.

Pentru a evita situatiile care conduc in mod nejustificat la incarcarea traficului pe retea (transmiterea unui fisier text de 10 MB) exista posibilitatea executiei comenzii PUT (lucru valabil si in cazul comenzii POST) in doua etape. In tr-o prima etapa clientul transmite numai parametrii metodei fara sa trimita datele efective. In cea de-a doua etapa, in caz ca serverul accepta, se transmit datele. Dupa transmiterea parametr ilor, in prima etapa, timp de 5 secunde se asteapta raspunsul serverului. Daca serverul trimite un raspuns atunci dupa analizarea acestuia se ia decizia corespunzatoare. Daca serverul nu trimite nici un raspuns se considera implicit ca accepta datele.

PATCH este o metoda similara lui PUT dar nu contine toate datele care sa defineasca resursa ci numai diferentele fata de versiunea existenta pe server. Si bineinteles cu toate informatii le necesare pentru ca serverul sa poata construi o versiune la zi a resursei.

COPY, MOVE si DELETE sint metode prin care se cere ca resursa specificata in URI-ul din cerere sa fie copiata in locatiile specificate ca parametri pentru metoda, mutata acolo sau respectiv doar stearsa.

LINK si UNLINK sint metode prin care resursa specificata in cerere este legata/dezlegata de alte resurse, stabilind una sau mai multe relatii cu acestea din urm a, specificate ca parametri pentru metoda. Ar putea fi de exemplu un index pentru o baza de date, un cuprins pentru un set de documente, etc.

TRACE este o metoda care ii permite clientului sa vada cum ajung cererile sale la server, pentru a verifica/diagnostica conexiunea, pentru a se verifica pe sine sau pentru a determina fe lul in care eventualele proxy-uri de pe parcurs au modificat cererea initiala. Serverul, in raspuns la aceasta cerere, va trimite in ecou cererile care ii vin de la client, fara sa le mai trateze ca cereri 'reale'.

WRAPPED este o metoda care 'contrazice' principiul protocolului, de a trimite totdeauna o singura cerere si a astepta un singur raspuns. Via WRAPPED, mai multe cereri , care in mod obisnuit ar fi succesive, sint 'impachetate' intr-una singura. Iar o alta aplicare a metodei tinteste masuri de securizare - o cerere poate fi cifrata si transmisa prin metoda WR APPED, ceea ce va determina serverul sa actioneze in doi pasi: intii sa descifreze cererea reala, iar apoi sa ii dea curs acesteia.

4. Concluzii

Documentele HTML contin mult mai multe informatii decit cele care pot fi interpretate de un program client Web. Operatiile de conexiune pe retea care presupun utilizarea URI, URL si HTTP sint relativ simple. Mai clar spus, operatiile Web sint chiar mai simple decit operatiile FTP. Pentru a realiza o operatie Web programul nostru nu trebuie sa se preocupe decit de organizarea unei conexiuni TCP. Mai mult decit atit, programul trebuie sa mentina conexiunea doar atit timp cit dureaza transferul unui fisier. Ca rezultat, scrierea unui program client Web care sa permita transferul documentelor este un lucru simplu .

Din contra, crearea unui navigator care sa interpreteze corect informatiile si care sa afiseze continutul unui document HTML este un proces dificil. Adica, cea mai multa munca in proiectare unui navigator nu sta in proiectarea partii de comunicatie pe retea ci in interpretarea documentelor HTML.







Politica de confidentialitate


Copyright © 2019 - Toate drepturile rezervate

Internet


Access
Adobe photoshop
Autocad
Baze de date
C
Calculatoare
Corel draw
Excel
Foxpro
Html
Internet
Java
Linux
Mathcad
Matlab
Outlook
Pascal
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word