Navigare Internet
TCP/IP
Protocoalele Internet permit comunicarea calculatoarelor localizate in retele diferite. Protocoalele Internet asigura conexiunile logice dintre un calculator si serverul gazda Internet care ofera site-ul Web (sau alte informatii). Protocoalele Internet reprezinta baza tuturor serviciilor Internet. Internet Protocol (IP - Protocol Internet) functioneaza prin transferul (rutarea) pachetelor (sau a unor secvente mici de informatie, denumite si datagrame) dintr-un flux continuu de date prin toate retelele dintre doua calculatoare.
Nota : Termenul Internet Protocol (IP) denumeste protocolul specific care transfera pachete in Internet.
Termenul Protocoale Internet (la plural, deci) se refera la intregul corp de protocoale care utilizeaza serviciile IP si sunt folosite in Internet.
Protocoalele Internet pot fi utilizate pe o retea de sine statatoare, dar vor fi mai putin eficiente decat protocoalele dedicate retelelor unice. Totusi, utilizand suita TCP/IP, se permite utilizarea protocoalelo 919d33j r Internet de nivel inalt (de ex. HTTP) pentru a crea un intranet - o arhitectura de retea privata, bazata pe principiile si programele Internetului global.
Modul de functionare al TCP/IP
Internetul utilizeaza TCP/IP pentru conectarea calculatoarelor. TCP/IP este acronimul pentru Transmission Control Protocol/ Internet Protocol (Protocol de control al transmisiei/ Protocol Internet) si se mai numeste suita de protocoale Internet (Internet Protocol Suite). Caracteristica prin care TCP/IP difera de alte protocoale de retea este faptul ca a fost proiectat pentru conectarea retelelor, nu pentru conectarea calculatoarelor intr-o retea. Modul de proiectare al TCP/IP permite fiecarei retele individuale sa fie gestionata separat, astfel incat organizatii diferite care nu doresc sa isi ofere reciproc acces complet la retele sa poata schimba informatie.
Primele specificatii TCP/IP au circulat ca Requests For Comments (RFC - cereri de comentarii). Proiectantii initiali si Internet Engineering Task Force (grupul de standarde curent cu inscriere libera pentru TCP/IP si Internet) pastreaza traditia producerii de RFC pentru orice noi standarde Internet si revizii ale standardelor vechi. Toate RFC-urile pentru protocoale TCP/IP pot fi transferate din Internet.
Protocoalele Internet din suita TCP/IP sunt aranjate in niveluri. Protocoalele din fiecare nivel sunt utilizate de catre urmatorul nivel. Nivelele sunt :
Aceste nivele nu trebuie confundate cu cele dintr-o stiva OSI (Open System Interconnection). Ele corespund aproape exact cu nivelele OSI, dar similar tuturor protocoalelor reale, exista variatii in implementarea acestora.
Nivelul interfata de retea (nivelul legatura fizica si de date)
Nivelul interfata de retea gestioneaza functiile dependente de elementele hardware si prezinta o interfata standardizata pentru nivelul Internet al TCP/IP. Intr-un calculator pot exista mai multe interfete de retea, fiecare dintre acestea putand transfera traficul de date TCP/IP pe un alt tip de retea fizica.
Exemplu : Poate exista un adaptor Ethernet care conecteaza calculatorul la o retea Ethernet si un adaptor pentru token-ring care conecteaza acelasi calculator la o retea tip token-ring. In plus, poate exista si o conexiune seriala, prin modem, la un furnizor de servicii Internet. Fiecare interfata de retea utilizeaza diferite protocoale fizice si de conexiune de date, dar ele sunt identice pentru nivelul Internet al TCP/IP.
Topologii de retea : stea, inel si bus (magistrala).
Datele pot circula in ambele sensuri.
Comparatie :
Tehnologii de retea
Exista 3 tehnologii des intalnite : Ethernet, ARCNET, si IBM Token Ring. Retelele Ethernet (1973) pot fi configurate in topologie stea sau bus. In general, daca se foloseste ca mediu de transmisie un cablu coaxial, se va configura in topologie bus. Daca se folosesc perechi de fire rasucite, se va configura in stea.
ARCNET (Attached Resource Computer Network, 1968) se poate configura in stea sau bus.
IBM Token Ring este un amestec de topologii stea si inel. Fiecare calculator din retea este legat la un nod central (numit Multi-Station Access Unit - MAU) cu ajutorul a doua cabluri. Calculatorul trimite date catre nod pe una din linii si receptioneaza pe cealalta. O retea token ring formeaza o bucla continua, in forma de stea.
Sub Windows NT, driverul fizic de retea implementeaza nivelul interfata de retea. Daca conexiunea este realizata prin RAS (Remote Access Service - Serviciul de acces la distanta), atunci reteaua extinsa RAS realizeaza conexiunea prin modem la conexiunea de retea TCP/IP, iar functia este efectuata fie de SLIP (Serial Line Internet Protocol - Protocol Internet prin linie seriala), fie de PPP (Point to Point Protocol - Protocol de la punct la punct).
Utilizarea protocoalelo 919d33j r SLIP sau PPP pentru conectare la Internet nu este la fel de buna ca o conectare directa, dar are avantajul unui pret scazut. Pentru crearea unei conexiuni SLIP, o pereche de calculatoare utilizeaza modemuri si linii telefonice pentru a stabili legatura asincrona seriala.
Exemplu : Dorim sa utilizam o conexiune SLIP pentru a conecta sistemul la calculatorul unui ISP (Internet Service Provider). Pentru a utiliza SLIP, trebuie sa avem un software care sa controloeze legatura SLIP intre PC-ul nostru si Internet. Acest program de gestionare este similar unui driver pentru un dispozitiv de retea. Cea mai mare parte a programelor de gestionare a conexiunilor SLIP includ un program de apel, numit dialer (care formeaza numere de telefon memorate, adica stabileste conexiunea punct-la-punct prin intermediul modemului), care se poate utiliza pentru a stabili legatura cu furnizorul de servicii (ISP).
Compacted Serial Line Internet Protocol (CSLIP) - este un SLIP compactat care prezinta avantaje privind latimea de banda, livrand efectiv datele mai rapid decat SLIP. Totusi, SLIP si CSLIP nu sunt standarde Internet si au cateva deficiente majore. De exemplu, SLIP nu furnizeaza detectie sau corectie de erori, nu este capabil sa identifice diverse tipuri de pachete sau sa comprime informatiile din pachete. In general se prefera PPP in loc de SLIP sau CSLIP. PPP rezolva toate deficientele SLIP si reprezinta un standard Internet. PPP ofera suport pentru protocoale multiple pe o singura legatura seriala, controlul erorilor si compactare.
Nivelul Internet
Nivelul Internet deplaseaza informatia de la sursa la destinatie printr-o retea. Calculatoarele sursa si destinatie nu se gasesc in aceeasi retea locala; in realitate, calculatoarele sursa si destinatie pot fi calculatoare de pe continente diferite, iar datele ce se transfera trebuie sa treaca printr-o multime de calculatoare si retele intermediare pentru a ajunge la destinatie.
Protocol Internet (IP) este esenta suitei de protocoale TCP/IP. Acest protocol asigura un serviciu de transfer de date fara directie precizata pentru datele trimise atat in interiorul unei retele cat si intre acestea. Prin urmare, pentru informatia trimisa nu se garanteaza sosirea la destinatie si nici corespondenta dintre ordinea de trimitere si cea de sosire a pachetelor de date.
Internet Control Message Protocol (ICMP - protocol Internet de control al mesajelor) utilizeaza IP pentru controlul fluxului de date prin retele si raportarea erorilor si starilor de blocare din conexiunile intre retele.
Address Resolution Protocol (ARP - Protocol de conversie a adreselor) este utilizat in retelele locale pentru determinarea adresei componentelor hardware fizice ale calculatorului de destinatie in cazul in care calculatorul sursa poseda adresa Internet a calculatorului de destinatie.
Reserve Address Resolution Protocol (RARP - Protocol de conversie inversa a adreselor) este un mecanism prin care un calculator care nu poseda inca o adresa Internet o poate obtine.
Dynamic Host Configuration Protocol (DHCP - Protocol de configurare dinamica a gazdei) este un nou protocol pentru obtinerea unei adrese IP si a altor instructiuni TCP/IP intr-o retea IP. DHCP este mai flexibil decat RARP si automatizeaza multe sarcini care trebuiau realizate manual in cazul RARP.
Nivelul de transport
Nivelul de transport asigura servicii de transfer de date intre doua capete pentru nivelul de aplicatii TCP/IP superior acestuia. TCP/IP ofera doua tipuri de servicii de nivel transport. Serviciul utilizat de catre nivelele superioare depinde de natura comunicatiei de retea necesare serviciilor de nivel superior. Protocoalele de nivel de transport oferite de TCP/IP sunt :
Transmission Control Protocol (TCP - Protocol de control al transmisie) este un protocol de nivel de transport orientat pe conexiune, care asigura sosirea datelor in ordinea corecta. TCP stabileste o conexiune intre emitator si receptor si utilizeaza serviciile IP pentru transmiterea si receptia datelor. TCP reface informatia receptionata dezordonat si va cere ca informatia ce nu a fost receptionata sa fie retransmisa (ex.: telefonul)
User Datagram Protocol (UDP - Protocol de datagrame utilizator) adauga foarte putine la serviciul de transfer IP pe care se bazeaza. Datagramele sunt mici pachete de date de dimensiune fixa transmise printr-o retea. Similar IP, UDP nu garanteaza nici o ordine de sosire a datelor (transmise sub forma de datagrame) si nici faptul ca datele vor ajunge la destinatie. UDP este util in aplicatii atunci cand :
Nivelul aplicatie
Nivelul aplicatie intr-o implementare tipica TCP/IP contine urmatoarele aplicatii de retea:
Protocolul Internet IP
IP transporta date in pachete numite datagrame, care sunt transportate separat. Datagramele pot circula pe rute diferite si pot ajunge in orice secventa sau duplicate. IP nu memoreaza drumul parcurs de ele si nu are nici o facilitate pentru reordonarea datagramelor ajunse. Deoarece este un serviciu neorientat pe conexiune, IP nu creaza circuite virtuale pentru trimitere. Nu exista apel de anuntare a expeditorului de pachetele ajunse.
Un circuit virtual este o conexiune similara unei legaturi dedicate neintrerupte. Ex.: telefon din orasul A in orasul B este un circuit virtual, (doar daca nu exista unul direct) deoarece trece prin numeroase comutatoare din alte orase. Exista doar impresia de fir dedicat (adica circuit direct).
Structura unei datagrame
O datagrama este un pachet de lungime variabila (pana la 65536 octeti) ce consta in : antet si date. Antetul poate avea intre 20 si 60 octeti si contine informatii esentiale despre ruta. In general, sectiunile antetului sunt grupate in sectiuni de 4 octeti. Campurile unei datagrame sunt :
Adresare
In plus fata de adresele fizice (continute de NIC - Network Interface Card) care identifica dispozitivele individuale, Internetul cere o conventie de adresare suplimentara : o adresa care identifica conexiunea gazdei la reteaua sa.
Fiecare adresa Internet consta din patru octeti, definind trei campuri : tipul calsei, identificatorul retelei si al gazdei. Aceste parti au lungimi diferite, depinzand de clasa de adresare.
Clase : Exista cinci clase diferite de adrese - A, B, C, D, E :
Retelele din clasa A pot fi mai numeroase decat retelele claselor B si C. Clasele A si B sunt pline, clasa C mai are locuri disponibile. Clasa D este rezervata pentru adreses multicast. Multicasting permite trimiterea de copii ale datagramei unui grup selectat de gazde in loc de o singura gazda. Este similar cu broadcasting, dar broadcasting inseamna trimiterea unui pachet la toate destinatiile posibile, in timp ce multicasting inseamna transmisia la o submultime selectata.
De obicei, adresele Internet sunt scrise in zecimal, punctul zecimal separand octetii.
Exemplu : 10000000 00001011 00000011 00011111 inseamna in notatie zecimala 128.11.3.31.
Domeniile claselor Internet sunt :
Clasa A : 0.0.0.0 pana la 127.255.255.255
Clasa B : 128.0.0.0 pana la 191.255.255.255
Clasa C : 192.0.0.0 pana la 223.255.255.255
Clasa D : 224.0.0.0 pana la 239.255.255.255
Clasa E : 240.0.0.0 pana la 247.255.255.255
Noduri cu mai mult de o adresa
O adresa Internet defineste conexiunea nodului la reteaua sa. Rezulta ca orice dispozitiv conectat la mai mult de o retea (de ex. orice ruter) trebuie sa aiba mai mult de o adresa Internet. De fapt, un dispozitiv are cate o adresa diferita pentru fiecare retea la care este conectat.
Exemplu : O adresa Internet specifica si reteaua careia apartine gazda
(netid) si gazda efectiva (hostid). Consideram 2 Ethernet-uri si un token ring.
Adresele sunt din clasa B. R inseamna rutere, G inseamna gateway (poarta).
Fiecare are o adresa separata pentru fiecare conexiune cu retelele. O adresa de
retea este netid + 0 (zerouri) la partea de hostid (sunt 3 adrese de retele :
129.8.0.0, 165.3.0.0, 145.42.0.0) :
Alte protocoale din nivelul retea : ARP, RARP, ICMP.
Address Resolution Protocol (ARP) - este folosit pentru asocierea unei asrese IP cu adresa fizica. Pe o retea fizica tipica, cum ar fi LAN (Local Area Network), fiecare dispozitiv conectat este identificat cu o adresa fizica de obicei scrisa in cardul interfetei de retea (NIC) - placa de retea (de ex. Ethernet).
Adresele fizice au jurisdictie locala si pot fi schimbate usor. De exemplu, daca placa de retea pe o masina particulara se strica adresa fizica se schimba. Adresele IP, pe de alta parte, au jurisdictie universala si nu pot fi schimbate. ARP este folosit pentru gasirea (aflarea) adresei fizice a unui nod cand este cunoscuta adresa Internet. (numai in retele locale LAN)
Cand o gazda, sau un ruter, trebuie sa gaseasca adresa fizica a altei gazde in reteaua sa, acesta furnizeaza un pachet intrebare ARP care cuprinde adresa IP si-l trimite la toate calculatoarele din retea (broadcast). Fiecare gazda din retea primeste si proceseaza pachetul ARP, dar numai calculatorul ce are respectiva adresa Internet trimite inapoi adresa sa fizica. Gazda care contine datagrama adauga adresa destinatiei in memoria cache si in antetul datagramei, apoi trimite datagrama pe drumul sau.
Exemplu : Cautam adresa fizica a nodului cu adresa 141.23.56.23. Dupa broadcast si navigare pe reteaua locala, obtinem adresa fizica A46EF45983AB.
Reverse Address Resolution Protocol (RARP) - permite unei gazde sa afle adresa sa Internet cand cunoaste adresa fizica.
Intrebare : De ce avem nevoie de RARP? Stim doar ca adresa Internet este memorata pe hard disk-ul local?!
Raspuns :
1. S-ar putea sa nu avem hard disk!
2. Sau calculatorul este conectat prima data la retea!
3. Sau aducem un calculator nou, dar dorim sa pastram vechea placa de retea!
RARP lucreaza similar cu ARP. Gazda ce doreste obtinerea adresei Internet trimite un pachet interogativ RARP care contine adresa sa fizica catre toate calculatoarele din reteaua sa fizica. Un server al retelei recunoaste pachetul RARP si returneaza adresa Internet a gazdei.
Internet Control Message Protocol (ICMP) este un mecanism folosit de gazde si porti pentru a trimite expeditorului inapoi note asupra eventualelor probleme aparute asupra datagramelor.
IP este in esenta un protocol nesigur si neorientat pe conexiune. Totusi ICMP permite IP sa informeze expeditorul daca o datagrama nu a putut fi trimisa. O datagrama circula din poarta in poarta pana cand gaseste una care o trimite la destinatia ei finala. Daca o poarta nu este capabila sa ruteze sau sa trimita datagrama din cauza unor conditii neobisnuite (legaturi desfacute, dispozitiv inchis) sau din cauza strangularii retelei, ICMP permite sa informeze asta sursei originale. ICMP foloseste test/raspuns cu ecou pentru a testa daca o destinatie se poate gasi sau poate raspunde. Aceasta de asemenea rezolva mesajele de eroare si control, dar singura ei functie este sa raporteze probleme, nu sa corecteze. Responsabilitatea corectarii este lasata expeditorului. O datagrama contine doar adresele expeditorului si destinatarului final, nestiind adresele ruterelor precedente prin care a trecut. Din acest motiv, ICMP poate trimite mesaje numai sursei, nu si unui ruter intermediar.
Nivelul transport
Nivelul transport este reprezentat in TCP/IP de doua protocoale : TCP si UDP. UDP este cel mai simplu; acesta furnizeaza functionalitate de transport nesecventiala cand siguranta si securitatea sunt mai putin importante decat lungimea si viteza. Majoritatea aplicatiilor necesita trimiterea sigura "end-to-end" si de aceea folosesc TCP.
IP trimite o datagrama de la gazda sursa la o gazda destinatie, facand un protocol host-to-host. Sistemele de operare actuale suporta medii multiutilizatori si multiprocese. Un program in executie se numeste proces. O gazda care primeste o datagrama poate executa diferite procese concurente, fiecare fiind o destinatie posibila pentru transmisie. De fapt, cu toate ca vorbim despre gazde care trimit mesaje catre alte gazde dintr-o retea, acesta este un proces sursa care trimite un mesaj catre un proces destinatie.
Protocoalel de transport a suitei TCP/IP definesc o multime de conexiuni conceptuale catre individuale numite porturi de protocol sau simplu porturi. Un port de protocol este un punct de destinatie (de obicei un buffer) pentru memorare de date pentru folosirea de un proces particular. Interfata dintre procese si porturile corespunzatoare acestora este furnizata de sistemul de operare al gazdei.
IP este un protocol gazda catre gazda (host-to-host), insemnand ca acesta poate trimite un pachet de la un dispozitiv fizic catre altul. Protocoalel nivelului de transport TCP/IP sunt protocoale port-catre-port (port-to-port) care lucreaza deasupra protocoalelor IP pentru trimiterea pachetului din portul original catre serviciile IP la inceputul unei transmisii, si de la servicii IP catre portul de destinatie la sfarsit :
Fiecare port este definit ca o adresa intreaga pozitiva transportata in antetul unui pachet din nivelul de transport. O datagrama IP foloseste adresa Internet a gazdei pe 32 biti. Un cadru la nivel transport foloseste adrese de port de procese pe 16 biti, suficient sa permita suportarea de 5536 porturi.
User Datagram Protocol (UDP) este cel mai simplu protocol de transport standard TCP/IP la nivelul IP doar adresele de port, suma de control si lungimea informatiei. Pachetul produs de UP se numeste datagrama utilizator. Campurile ei sunt :
UDP furnizeaza doar functiile de baza necesare pentru trimiterea end-to-end a unei transmisii. Aceasta nu furnizeaza nici o functie de reordonare si nu poate specifica pachetul stricat cand raporteaza o eroare. ICMP poate informa expeditorul ca o datagrama utilizator a fost stricata si stearsa. UDP nu poate specifica care pachet a fost stricat deoarece UDP contine o suma de control; nu contine vreun ID sau numar de secventa pentru un segment de date particular.
Transmission Control Protocol (TCP) furnizeaza servicii la nivel transport, complete pentru aplicatii. TCP este un protocol "port-to-port" de transport "flux"sigur. Aici flux inseamna orientat pe conexiune : o conexiune trebuie sa fie stabilita intre cele doua capete ale transmisiei inainte de a putea transmite date. Prin crearea acestei conexiuni, TCP genereaza un circuit virtual intre expeditor si destinatar care este activ pe durata transmisiei. TCP incepe fiecare transmisie prin alertarea destinatarului ca mai multe datagrame sunt pe drum (conexiune stabilita) si incheie fiecae transmisie cu un terminator de conexiune. In acest mod, destinatarul asteapta intreaga transmisie in loc de un singur pachet.
IP si UDP trateaza datagramele multiple ce apartin unei singure transmisii ca unitati separate, fara legatura intre ele. Sosirea fiecarei datagrame la destinatie este deci un eveniment separat, neasteptat de destinatar. TCP, pe de alta parte, este responsabil de trimiterea sigura a intregului flux de biti continuti in unitatea de date originala generata de aplicatia expeditorului. Siguranta este asigurata prin detectare de erori si retransmiterea cadrelor distruse; toate segmentele trebuie primite si confirmate inainte ca transmisia sa fie considerata completa si circuitul virtual incheiat.
Transmisiunile mai lungi sunt impartite de TCP in unitati de date mai mici si pachetele in cadre numite segmente. Fiecare segment cuprinde un numar de secventa pentru reordonarea dupa primire, impreuna cu un numar ID de confirmare si camp pentru marimea ferestrei ARQ. Segmentele sunt transportate prin legaturile retelei in datagrame IP. La capatul de primire, TCP colecteaza fiecare datagrama care soseste si reordoneaza transmisia bazandu-se pe numerele secventelor.
Segmentul TCP
Scopul serviciilor furnizate de TCP cere ca antetul segmentului sa fie extensiv (considerabil). TCP furnizeaza un domeniu intins de functii de siguranta, dar sacrifica viteza (trebuie stabilite intai conexiunile, asteptarea confirmarii etc.). Din cauza cadrelor mai mici, UDP este mai rapid decat TCP, platind cu pretul lipsei de siguranta. Descrierea campurilor unui segment TCP este :
Nivelul aplicatie
Nivelul aplicatie din TCP/IP este echivalent cu nivelele sesiune, prezentare si aplicatie din modelul O.S.I..
Prezentam conceptul de client/server la acest nivel. Unul din beneficiile retelelor este abilitatea distribuirii responsabilitatilor procesarilor. Cand un program dintr-o locatie listeaza serviciile executiei unui program din alt site, sistemul se numeste client/server. Un program aplicatie, in rolul unui client, face o cerere pentru servicii catre al doilea program aplicatie, in rolul serverului, care furnizeaza serviciile cerute. Toate programele aplicatie din protocolul TCP/IP folosesc paradigme client/server.
Domain Name System (DNS)
DNS identifica fiecare gazda Internet cu un nume unic care-l identifica in mod unic dupa adresa IP. Dat numele de domeniu, unprogram poate obtine adresa IP asociata folosind serviciile unui server intr-o sesiune client/server.
Pentru crearea numelor care sunt unice, descentralizate si usor de schimbat, designerii TCP/IP au ales un sistem ierarhic facut dintr-un numar de etichete separate prin puncte (ex.: chal.atc, fhda.edu). O gazda poate avea orice numar de etichete de identificare care fac numele unic (lungimea etichetei <= 63 caractere).
DNS este implementat folosind un arbore in care fiecare nod reprezinta o eticheta posibila. Cea mai din dreapta eticheta corespunde nivelului din arbore cel mai apropiat de radacina si cea mai din stanga eticheta celui mai indepartat de radacina. Arborele este impartit in trei domenii diferite : generic, tara si invers.
Domeniul generic imparte gazdele inregistrate conform cu comportarea generica. Numele de domenii generice se citesc de la stanga la dreapta incep cu cea mai specifica informatie despre gazda (ex.: numele statiei) si devine din ce in ce mai general pana la natura organizatiei (ex.: .com - comercial). Primul nivel in arorele domeniilor generice contine sapte siruri de 3 caractere etichetate astfel : com (comercial), edu (educatie), gov (guvern), int (international), mil (militar), net (retea), org (organizatie).
Fiecare nume de domeniu corespunde cu o adresa IP particulara. Pentru gasirea adresei, aplicatia de resolutie incepe cautarea cu eticheta primului nivel (organizatie). Daca este gasita o potrivire, un pointer va puncta pe urmatorul nivel si in final pe adresa IP asociata.
Conventia domeniului tarii urmeaza acelasi format ca domeniul generic, dar foloseste o abreviere cu 2 caractere (us pentru S.U.A., ro pentru Romania etc.). Etichetele de pe nivelul doi pot fi organizatii sau un stat national (California din S.U.A. poate avea ca.us).
Exemplu : Adresa anza.cup.ca.us inseamna Colegiul DeAnza din orasul Cupertino, statul California, S.U.A..
Cand avem adresa IP si dorim numele domeniului, trebuie sa folosim functiile domeniului invers al lui DNS.
Pentru folosirea domeniului invers, dam adresa IP serverului. DNS adauga in fata arpa.inaddr. De exemplu, 132.34.45.121 devine arpa.inaddr.132.34.45.121. Sistemul incepe din topul arborelui nivelul 1 - arpa si cauta pana gaseste numarul. Din momentul gasirii numarului, un pointer va indica numele de domeniu asociat.
Telnet (numar de port 23)
Telnet este a doua aplicatie TCP/IP importanta si reprezinta un proces client/server TCP/IP pentru intrarea intr-o masina la distanta.
Intrarea la distanta permite unui utilizator dintr-un site sa aiba acces la un alt site. Telnet protejeaza serverul impotriva accesului "faradelege" cerand utilizatorilor sa indeplineasca identificatorii de login (intrare) si parola.
Pentru folosirea Telnet-ului, un utilizator apeleaza un client Telnet din propriul site si stabileste o conexiune cu un server Telnet din site-ul de la distanta. Telnet "inlocuieste" (simuleaza) tastatura clientului cu cea a site-ului de la distanta ca si cum s-ar tipari acolo (la distanta). Telnet se ocupa si de afisarea iesirii de la site-ul de la distanta pe ecranul utilizatorului.
Terminale virtuale
Telnet furnizeaza translarea serviciilor dintre 2 masini. Clientul Telnet transforma iesirea terminalului actual in cod standard. Informatia in cod standard este trimisa catre serverul Telnet din gazda de la distanta. Serverul Telnet va transforma aceasta informatie in caractere acceptate de gazda de la distanta. In acest proces, gazda de la distanta considera ca un terminal s-a conectat local la ea. Acest terminal se numeste terminal virtual. Conceptul de terminale virtuale rezolva unul din marile impedimente ale conexiunii universale adevarate : acela de conexiune multipla de terminale incompatibile la un singur server la distanta.
Protocoale de transfer de fisiere
Exista 2 programe de aplicatii folosite la transportul fisierelor dintr-un server la un client :
Protocolul de transfer de fisiere trivial (TFTP - nr. de port 69) este cel mai simplu protocol de transfer a 2 fisiere proiectat pentru a nu cere interactiune complexa intre client si server. TFTP permite unui host local sa obtina fisiere de la un host de la distanta, fara sa furnizeze siguranta si securitatea datelor.
TFTP nu necesita siguranta oferita de protocolul orientat pe conexiune cum ar fi TCP si foloseste in schimb UDP. TFTP foloseste totusi anumite conexiuni de baza si trasaturi de detectare de erori pentru a fi sigur ca fisierul cerut a ajuns intr-adevar.
Deoarece TFTP este simplu si mic, aplicatiile specifice pot fi codificate in ROM (Read Only Memory). fiind folositoare host-urilor care nu au spatiu pe disc pentru memorarea unor protocoale de transfer de fisiere elaborate (complexe).
Protocolul de transfer de fisiere (FTP) este un mecanism standard furnizat de TCP/IP pentru copierea unui fisier dintr-un host in altul. Mesajele FTP sunt incapsulate in TCP si au siguranta si securitate. FTP foloseste protocolul Telnet cerand deci identificatori de login si parola inaintea transferului fisierelor.
FTP difera de alte aplicatii client/server deoarece acesta stabileste 2 conexiuni (circuite virtuale) dintre 2 host-uri. O conexiune este folosita pentru transferul datelor si cealalta pentru controlul informatiei.
Conexiunea de control este folosita pentru comenzi, raspunsuri si actualizari. Aceasta foloseste serviciul de tip intarziere minim (TOS) si ramane activ pe toata durata schimbului. In timp ce transferul datelor se face prin conexiunea de date, conexiunea de control se ocupa de anuntarea inceperii transferului de fisiere, preconizarea duratei de x minute, anuntarea ca transferul de date este complet si ca s-au transferat y octeti cu succes.
Accesul la fisiere folosind NFS si RPC
Network File System (NFS) este un protocol de acces a fisierelor. FTP si TFTP transfera toate fisierele de la un server la o gazda client. Un serviciu de acces de fisiere face fisierele sistem de pe o masina la distanta vizibile, gandite ca pe propria masina, dar fara transferul fisierelor. NFS permite editarea unui fisier pe o alta masina exact ca si cum acesta ar fi fost pe masina proprie. NFS permite chiar transferul de fisiere de la server printr-un al treilea host nelegat direct la niciuna din masini.
Remote Procedure Call (RPC). NFS lucreaza prin apelarea serviciilor unui alt protocol numit apel de procedura la distanta (RPC - remote procedure call). RPC transfera un apel de procedura la alta masina. Folosind RPC, apelurile procedurii locale sunt transmise unor apeluri de functii RPC. Clientul NFS formateaza apelul pentru clientul RPC si-l trimite acestuia. Clientul RPC transforma datele intr-un format numit reprezentare de date externa (external data reprezentation - XDR) si furnizeaza interfata cu mecanismele de transport TCP/IP. In hostul de la distanta, serverul RPC primeste apelul, il translateaza din formatul XDR, apoi il trimite serverului NFS. Serverul NFS retransmite apelul, discului de la distanta, care se comporta ca un apel local si deschide fisierul serverului NFS.
Posta electronica: SMTP - simple mail transsfer protocol - numar de port 25. Unul dintre serviciile cele mai familiare ale retelelor este posta electronica. Protocolul TCP/IP care suporta posta electronica din Internet se numeste simple mail transfer protocol (SMTP).
Posta electronica este un sistem de trimitere mesaje sau fisiere catre alti utilizatori de calculatoare bazandu-se pe adrese mailbox (cutii postale) in loc de schimb host-to-host si suporta schimb de posta dintre utilizatori ai aceluiasi (sau diferite) calculator. Spre deosebire de alte aplicatii client/server, e-mail-ul permite utilizatorilor trimiterea de notite pana la fisiere mari fara a ne interesa de disponibilitatea gazdei. Anumite utilizari ale e-mail-ului sunt
E-mail este proiectat ca un sistem postal cu ecou. Adresele sunt folosite pentru identificarea expeditorului si destinatarului. Mesajele care nu pot fi trimise intr-un timp specificat sunt returnate expeditorului. Fiecare utilizator al unei retele are o cutie postala privata. Mail-urile primite sunt memorate in mailbox pana cand destinatarul le sterge sau le salveaza.
Ceea ce face posta electronica diferita de alte servicii de transfer de mesaje prin Internet este mecanismul numit spooling (infasurare), care permite unui utilizator sa trimita mail chiar daca reteaua este momentan deconectata sau masina destinatarului nu este operationala. Cand este trimis un mesaj, o copie a acestuia este plasata intr-o facilitate de memorare numita spool. Un spool este similar unei cozi cu cateva diferente fundamentale. Mesajele dintr-o coada sunt procesate pe baza first-come, first-served (FIFO). Mesajele dintr-un spool sunt procesate pe baza first-come, first-searched. In spool, un mesaj este cautat la fiecare 30 de secunde de un proces client ce ruleaza in background. Clientul din background cauta noi mesaje si mesaje vechi netrimise inca care asteapta sa fie trimise. Daca procesul client nu poate trimite un mesaj, acesta marcheaza mesajul cu timpul de asteptare si il lasa in spool si repeta acest procedeu mai tarziu. Daca toate incercarile de trimitere esueaza, mesajul este marcat "netransmisibil" dupa cateva zile si returnat in cutia postala a expeditorului.Un mesaj este considerat trimis doar daca clientul si serverul "vad" ca mesajul a ajuns la destinatie, si abia apoi il sterg. Pana atunci sunt tinute copii de trimitere atat in spoolul de trimitere, cat si in cutia destinatarului.
Adresele de posta electronica constau in doua parti :
Exemplu : vasilica@companie.org
In site-urile care folosesc protocoale diferite de TCP/IP, acest format poate sa difere.
Exemplu : Exista adrese de forma : xxxx%yyyy@zzzz.
Aliases (porecle)
Este posibil sa forwardam mesaje mai multor destinatari la un moment dat incluzand mai multe adrese. Cu toate acestea, in situatii cand mesaje frecvente sunt trimise unui acelasi grup de oameni, acest proces conduce la pierdre de timp. Mai multe sisteme furnizeaza o solutie numita liste de posta electronicasau grupuri de cutii postale. O facilitate e-mail numita aliases mail permite unui nume (numit alias) sa refere un nume diferit sau chiar la mai multi destinatari.
Exemple : students, profs (de la facultatea noastra)
Un alt avantaj al aliaselor este ca o persoana poate avea mai multe nume de posta. Aliasurile sunt memorate intr-o baza de date accesata de un program de expansiune al aliasurilor. Cand un mesaj este trimis catre spooler, programul de interfata a postei trimite numele destinatarului catre programul de expandare a aliasului, care verifica aliasurile memorate in baza sa de date. Daca este gasita o potrivire, adresa destinatarului este transformata in adresa sa oficiala (sau toate adresele individuale ale unei liste mail) inaintea trimiterii lui. Daca nu este gasita nici o potrivire, inseamna ca nu exista nici un alias sau ca aliasul nu este memorat local si ca va fi gasit de sistemul de la destinatie.
Procesul trimiterii si primirii de e-mail
User Agent (Agentul Utilizator) suporta (primeste) interfata utilizator si furnizeaza o interfata catre interiorul sistemului (user agent=secretara).
MTA (Mail Transfer Agents = agenti de transfer de posta) serveste ca interfata pentru sistemul de posta cu reteaua.
SMTP (Simple Network Management Protocol) defineste specificatiile pentru fiecare din aceste procese folosind TCP/IP.
SNMP (Simple Network Management Protocol) protocolul de conducere a retelei simplu furnizeaza o multime de operatii fundamentale pentru monitorizarea si mentinerea Internetului.
Agenti si baze de informatii de conducere (MIBs-Management Information Bases)
SNMP foloseste conceptul de dispozitive conduse si de conducere. Fiecare host sau ruter poate fi un dispozitiv condus. Anumite hosts sunt manageri (adica conduc). In scopul monitorizarii, fiecare dispozitiv condus contine o combinatie de hardware si software numit agent, care actioneaza ca un contabil pentru gazda si care poate fi accesat de un manager.
In interiorul fiecarui agent exista o baza de informatie de conducere (MIB). MIB este o lista de variabile pe care le suporta protocolul. O variabila este o inregistrare a unui agent (ex.: numarul de octeti care intra sau pleaca dintr-un host peste o perioada de timp data). Managerii pot verifica variabilele pentru a vedea daca numerele sunt bune. Ei pot de asemenea seta valoarea unei variabile pentru schimbarea sau monitorizarea comportarii sale.
Pentru monitorizarea retelei, software-ul de conducere pune agentii sa caute probleme. Cand un agent are probleme, in loc sa astepte testul, acesta trimite un S.O.S.. Daca software-ul de conducere asculta, atunci citeste S.O.S.-ul. Software-urile de conducere inteligente pot rezolva automat problema sau cheama administratorul de sistem.
Securitate si siguranta
SNMP este un protocol simplu cerere/raspuns construit pe UDP. Deci acesta furnizeaza siguranta scazuta si nici o securitate. Deoarece monitorizarea si mentinerea este facuta folosind datagrame simple, nivelul sigurantei disponibil prin UDP este de obicei suficient. Lipsa securitatii, totusi, poate ridica probleme pentru conducerea sistemelor confidentiale. In 1993, a fost propus SNMP versiunea 2. Noul protocol pune la dispozitie securitatea datelor si rectifica alte neajunsuri din SNMP. Este totusi, mai putin de o multime de operatii pe care se pot construi aplicatiile.
Gopher (nr. de port 70) a fost scris la Universitatea Minnesota. Este un program aplicatie dirijat de meniuri care pot naviga pe Internet si gasi un document cerut. Prin selectarea unui articol dintr-un meniu, un utilizator poate obtine informatii. Gopher ascunde complet sistemul de operare si face informatia de pe o multime mare de calculatoare sa apara ca unul singur.
Gopher este un program aplicatie client/server ce foloseste servere multiple. Gopher foloseste conceptul de markere de carte pentru a permite unui utilizator sa inregistreze locatia de informatie pentru folosire ulterioara.
Archie (prescurtarea de la arhiva) este un program aplicatie de cautare automata a tuturor fisierelor cu un nume dat. Archie are o baza de date care asociaza toate numele de fisiere din Internet cu numele hosturilor. Multe hosturi au baze de date Archie (ex.: in S.U.A. exista archie.internic.net care poate fi accesat cu TELNET).
Veronica este de asemenea un program aplicatie de cautare automata de titluri. Acesta foloseste un index pentru computerizarea arhivelor. Veronica foloseste serviciile lui gopher. Acesta cauta meniuri gopher in toata lumea pentru gasirea unui fisier. Putem folosi si expresii conditionale. Ex.: ab "NOT bc" poate gasi toate fisierele al caror titlu contin cuvantul ab, dar nu si cuvantul bc.
Wide Area Information Service (WAIS) este un serviciu de cautare de continut care gaseste numele unui fisier dandu-se informatii despre continut. Este dificil pentru WAIS sa caute continutul tuturor fisierelor din lume. De aceea, baza de date trebuie impartita in surse diferite. Utilizatorul trebuie sa limiteze cautarea la o sursa particulara.
Hypertext Transfer Protocol (HTTP - nr. de port 80) este un program aplicatie de obtinere de fisiere avansat care poate accesa documente cu legaturi si distribuite in World Wide Web. Acesta poate accesa documente text cu legaturi (numite hypertext) sau documente cu legaturi ce contin imagini, grafice, sunete (numite hypermedia). Mesajele din HTTP sunt impartite in doua categorii : cerere si raspuns. Pana acum au fost definite doar 3 pachete de cereri (get, head, port) si un tip de pachet de raspuns.
Comenzile de cereri sunt trimise de la client la server. Comanda de raspuns este trimisa de la server la client. Comanda de cerere get este folosita pentru obtinerea de informatii de la server. Comanda de cerere head este folosita de client pentru a primi doar informatia antet nu si date. Comanda de cerere post este trimisa de client la server pentru transmiterea informatiei la server. Aceasta este folosita de obicei pentru trimiterea de posta, stiri etc..
World Wide Web (WWW)
World Wide Web este detinatorul informatiei din toata lumea legate intre ele.
WWW foloseste conceptul de hipertext. Intr-un mediu hipertext, informatia este memorata intr-o multime de documente. Documentele sunt legate impreuna folosind conceptul de pointeri. Un articol poate fi asociat cu alt document folosind acesti pointeri.
Un hipertext disponibil in Web se numeste pagina (page). Pagina principala a unei organizatii sau individ se numeste homepage.
Informatia despre un subiect specific poate fi nedistribuita sau distribuita. In primul caz, intreaga informatie poate consta din una sau mai multe pagini Web pe acelasi server. In cazul al doilea, informatia este facuta din mai multe pagini distribuite pe diferite servere.
Uniform Resource Locator (URL)
Daca un client doreste sa acceseze o pagina WEB, acesta are nevoie de o adresa. Pentru facilitatea accesului la documentele distribuite in lume, WWW foloseste conceptul de locatori. Locatorul uniform al resurselor (URL) este un standard pentru specificarea unui tip de informatie din Internet. URL defineste trei lucruri : metoda, hostul si calea (ex.: https://www.infoiasi.ro/index.html).
Arhitectura unui browser
Exista multe browsere comerciale care interpreteaza si afiseaza un document Web. Aproape toate folosesc aceeasi arhitectura. Browser-ul este de obicei facut din trei parti : controler, programe client si interpretoare. Controlerul primeste intrarea de la tastatura sau mouse si foloseste programul client pentru accesarea documentului. Dupa ce documentul a fost accesat, controlerul foloseste unul din interpretoare pentru afisarea documentului pe ecran. Programul client poate fi unul din metodele (protocoalele) HTTP, FTP, gopher, TELNET. Interpretorul poate fi HTML, CGI, Java depinzand de tipul documentului.
Documentele din WWW pot fi grupate in 3 categorii dupa tipul cand este determinat continutul documentului : statice, dinamice si active.
Documentele statice sunt documente cu continut fix care sunt create si memorate pe un server. Clientul poate doar sa copie acest document; cu alte cuvinte, continutul fisierului este determinat cand acesta este creat, nu cand este utilizat. Continutul se poate schimba de server, dar nu si de client. Utilizatorul poate folosi un browser pentru afisarea unei copii a documentului pe ecran.
HTML (Hypertext Markup Language) este un limbaj de marcare de scriere a paginilor Web. Se numeste limbaj de marcare deoarece singurul lucru pe care-l face este sa lase browserele sa formateze paginile Web.
Exemplu : Pentru a avea un text (boldface) ingrosat, acesta se delimiteaza cu doi markeri <B> si </B>.
Un limbaj de marcare (ex.: HTML) permite sa inseram instructiuni de formatare direct din fisier. Instructiunile sunt memorate in text. In acest mod, orice browser poate citi instructiunile si formata textul conform cu statia folosita.
Exemplu : De ce nu folosim un text deja formatat (Word de exemplu) ? Deoarece diferite procesoare de texte folosesc tehnici diferite de formatare a textului. Un utilizator creaza text formatat folosind un calculator Machintosh si il memoreaza intr-o pagina Web. Un utilizator care foloseste un computer IBM nu este capabil sa primeasca pagina Web pentru ca cele 2 computere folosesc tehnici diferite de formatare.
Folosind HTML cu doar caractere ASCII pentru text si instructiuni de formatare, fiecare computer va primi intregul document ca un document ASCII. Textul principal reprezinta datele si instructiunile de formatare sunt folosite de browser pentru formatarea datelor.
Documentele dinamice nu exista intr-un format predefinit. In schimb, un document dinamic este creat de serverul Web cand browserul cere un document. Cand ajunge o cerere, serverul Web ruleaza un program aplicatie care creaza documentul dinamic. Serverul returneaza iesirea programului ca raspuns pentru browserul care cere documentul. Deoarece se creaza un document nou pentru fiecare cerere, continutul unui document dinamic poate varia de la o cerere la alta.
Exemplu : Timpul si data curenta sunt tipuri de informatii dinamice. Ele se schimba din timp in timp. Clientul poate cere serverului sa ruleze un program (time, date in UNIX) si acesta sa trimita rezultatul programului clientului.
CGI (Common Gateway Interface) este un standard pentru construirea de documente Web dinamice. Acesta este un model in sensul ca el defineste tipul limbajului folosit in prepararea documentului. Multe din programele CGI au fost create folosind scripturi shell sub UNIX. Browserul din masina clientului nu stie nimic despre executia scriptului. Scriptul este rulat in site-ul server.
Documentele active sunt produse cand sunt apelate. Cu toate acestea, ele sunt produse la site-ul serverului, nu la site-ul clientului. Pentru multe aplicatii, avem nevoie ca programul sa fie rulat la site-ul clientului. Acestea sunt documente active.
Exemplu : Dorim sa rulam un program care creaza grafica animata pe ecran. Programul trebuie sa ruleze pe site-ul clientului unde are loc animatia. In acest caz, programul este creat, compilat si memorat pe site-ul serverului. Cu toate acestea, cand clientul are nevoie, acesta cere o copie. O copie a acestui program, in forma binara, este trimisa clientului. Interpretorul de la site-ul clientului este responsabil pentru executia programului.
Java
Pentru a permite folosirea de programe active, Sun Microsystems a definit o tehnologie si un limbaj numit Java. Java este o combinatie de 3 componente : limbaj de programare, mediu de executie si biblioteca de clase. Limbajul de programare este folosit pentru crearea de programe de la site-ul serverului. Este un limbaj orientat pe obiecte care are multe similaritati cu C++. Componenta mediu de executie este folosita de site-ul clientului pentru a executa programe in forma binara. Biblioteca de clase este o selectie de obiecte predefinite care fac usoara programarea orientata pe obiecte. Java foloseste termenul applet pentru a defini un program document activ. Termenul distinge programele active de cele obisnuite.
|