ALTE DOCUMENTE
|
|||||
Generalitati despre retele
Internet-ul este o retea de retele, cu zeci sau sute de milioane de calculatoare, dispuse pe intregul glob, stationare sau mobile, retea ce detine cantitati uriase de informatii, din care foarte multe pot fi consultate fara restrictii, iar unele contra cost sau numai cu diferite parole de acces. Fiecare individ care poseda un calculator cu modem cu viteza de transmitere de cel putin 14,4 kbps (kilobiti pe secunda, viteza indicata fiind cea minima pentru Internet, se recomanda chiar o viteza mai mare), o linie telefonica fixa sau mobila, se poate conecta la aceasta mare retea prin intermediul unei firme furnizoare de servicii Internet. In cadrul retelei Internet poate fi folosita posta electronica sau pot fi consultate site-uri ale retelei WWW.
Reteaua World Wide Web, denumita Web sau WWW, este partea cea mai dezvoltata din internet. A fost creata in 1984, la centrul european de cercetari nucleare. reteaua este bazata pe grafica, fiind folosit un limbaj special, HTML (Hypertext Markup Language - limbaj de marcare pentru hipertext). Cu un click pe textul sau imaginea grafica cu o anumita codificare se ajunge la alte documente denumite pagini Web (Web pages), 737b17h unde se pot vedea imagini, text, videoclipuri, se pot asculta mesaje vocale. Pe ecranul propriului calculator pot fi aduse imagini din toata lumea sau informatii referitoare la orice domeniu de activitate. Totul este sa salvati pe hard-diskul calculatorului propriu. O alta modalitate de utilizare a internetului o reprezinta dialogul efectiv realizat cu ajutorul chat-ului.
Accesul la o pagina Web, a unui site Internet (site-urile fiind
constituite din pagini Web) se poate face printr-un program browser, ca de
exemplu Netscape Comunicator sau Microsoft Internet Explorer. Fiecare site are
o adresa formata din grupuri de litere, ca de exemplu
https://www.microsoft.com, pentru compania Microsoft. Folosind orice program
care ofera posibilitatea de a naviga pe Internet, putem accesa orice
adresa de site cunoscandu-i numele prin introducerea acestuia pe bara de
adresa. Ultimele doua litere pot reprezenta tara (ro pentru
Romania, de pentru Germania,
Programarea in retea implica trimiterea de mesaje si date intre aplicatii ce ruleaza pe calculatoare aflate intr-o retea locala sau conectate la Internet. Pachetul care ofera suport pentru scrierea aplicatiilor de retea este java.net. Clasele din acest pachet ofera o modalitate facila de programare in retea, fara a fi nevoie de cunostiinte prealabile referitoare la comunicarea efectiva intre calculatoare. Cu toate acestea sunt necesare cateva notiuni fundamentale referitoare la retele, cum ar fi protocol, adresa IP, port, socket.
. Structura Hardware
1.1.1 Elementele unei retele
Elementele unei retele sunt :
- server (file server);
- statiile de lucru (workstations);
- placi interfete de retea (NIC = Network Interface Card);
- cabluri.
Serverul este un calculator folosit la gestiunea fisierelor din retea, imprimare si controlul comunicatiilor cu alte entitati din LAN. Un server poate fi dedicat sau nededicat. Un server dedicat realizeaza numai facilitatea de server, manipuland cererile de la statiile de lucru si gestionand sistemul de fisiere. El pune la dispozitie toate resursele sale pentru utilizatorii retelei, asigurand cei mai buni timpi de raspuns, securitate si gestiune. Serverul nededicat poate fi folosit si ca statie de lucru.
Eficienta retelei scade. Cu cat reteaua este mai mare, cu atat necesitatea unui server mai performant este mai mare. De asemenea, este nevoie de cat mai multa memorie RAM, pentru a sustine cache-urile si cozile de imprimare. Statiile de lucru (WS), sunt conectate la retea prin placi de interfata la retea si cabluri.
Statiile de lucru sunt in marea lor majoritate sisteme inteligente, avand memorie RAM proprie. Statiile de lucru conectate in retea executa propriile lor prelucrari, dupa incarcarea programelor si datelor de pe server. Astfel, se elibereaza serverul, facandu-l disponibil pentru sarcinile de retea. Dupa prelucrare, fisierele sunt depuse inapoi pe server, de unde pot fi utilizate de alte statii. Nu mai este necesar ca statiile sa fie dotate cu hard discuri, deoarece se foloseste posibilitatea de stocare a fisierelor pe server.
Placile de interfata cu reteaua sunt numeroase, suportand diverse tipuri de cabluri si topologii de retele. O placa de interfata cu reteaua asigura in primul rand conectorul de cuplare la cablul retelei. Interfata asigura protocoalele si comenzile necesare pentru sustinerea tipului de retea pentru care a fost proiectat. Multe placi au memorie suplimentara pentru buffer-area pachetelor de date transmise sau receptionate. In cazul statiilor fara hard disc, aceste placi trebuie prevazute cu un EPROM pentru conectarea la distanta si incarcarea sistemului de operare DOS de pe server.
Fiecare placa are o adresa proprie Ethernet, stabilita de furnizor. Intreruperea pe care se lucreaza cu placa, precum si adresa I/O de baza pot fi configurate:
hard - prin jumper-ii de pe placa;
soft - printr-un program special, de pe discheta ce insoteste placa de retea.
Cabluri. In alegerea cablurilor trebuie sa tinem seama de caracteristici ca :
- cele de mediu fizic : coaxial, fire torsadate, fibre optice;
- caracteristici fizice proprii standardelor locale;
- caracteristici electrice si optice.
1.1.2 Reteaua Ethernet
Este o LAN cu multi-acces, de tipul cu comutatie de pachete, ce foloseste o transmisie de tip difuzare (broadcasting) printr-un mediu de transmisie pasiv, fara control centralizat. Ea furnizeaza un serviciu de tip datagrama, cu detectarea erorilor (dar fara corectarea lor, ci doar cu cerere de retransmisie).
Are structura de BUS (magistrala); exista doua categorii : Ethernet cu cablu subtire; Ethernet cu cablu gros. Limitarile retelei Ethernet cu cablu subtire : numarul maxim de segmente = 5 (T numarul maxim de repetoare = 4); lungimea maxima a unui segment = 185 m; lungimea maxima a retelei = 925 m; numarul maxim de statii conectate la un segment = 30 (repetoarele se numara ca o statie pe fiecare segment); distanta minima intre conectorii BNC = 0.5 m. Limitarile retelei Ethernet cu cablu gros : numarul maxim de segmente = 5 (T numarul maxim de repetoare = 4); lungimea maxima a unui segment = 500 m; lungimea maxima a retelei = 2500 m; numarul maxim de statii conectate la un segment = 100 (repetoarele se numara ca o statie pe fiecare segment); distanta minima intre transceivere = 2.5 m. [M. Ceparu - Retele si inter-retele de calculatoare vol. 3]
Echipamente pentru amplificarea semnalului
Repetoarele sunt echipamente ce amplifica semnalele pentru a marii distanta fizica pe care actioneaza un LAN. Deci, ele doar copiaza bitii intre doua segmente de cablu.
Puntile (bridges) conecteaza doua sau mai multe LAN-uri de acelasi tip ( cu aceleasi metode de adresare). Un bridge ce primeste pachete de date (cadre) va “pasa” pachetele de date LAN-urilor interconectate, bazandu-se pe un algoritm de expediere (forwarding) selectat de producator. LAN-urile ce receptioneaza trebuie sa utilizeze la nivelul legaturii de date acelasi protocol ca si LAN-ul transmitator pentru a citi pachetul de date. Router-e sunt echipamente de dirijare (routing) a traficului de date, realizand conexiuni la un nivel arhitectural superior fata de bridge-uri (nivelul retea). Ele asigura controlul fluxului pentru pachetele de date receptionate din LAN, prin aceasta crescand siguranta conexiunii. Diferite pachete trimise de aceeasi statie sursa catre aceeasi statie destinatie pot, in principiu, sa fie dirijate prin retele diferite, din motive de securitate sau cost. Gateways (porti) sunt utilizate pentru interconectarea LAN-urilor ce utilizeaza protocoale complet diferite la toate nivelele de comunicatie. Translatia completa a unitatilor de date receptionate, dintr-un protocol in altul complet diferit, afecteaza viteza de transmisie.
Modelul TCP
In acest model se stabileste o conexiune TCP (Transport Control Protocol) intre un program client si un server care furnizeaza un anumit serviciu.
while (true) catch (IOException e) finally catch (IOException e)
}
}
public SimpleServer() throws IOException finally
}
public static void main(String[] args) throws IOException
1.2. Structura Software
1.2.1 Protocolul
Un protocol reprezinta o conventie de reprezentare a datelor folosita in comunicarea intre doua calculatoare. Avand in vedere faptul ca orice informatie care trebuie trimisa prin retea trebuie serializata astfel incat sa poata fi transmisa secvential, octet cu octet, catre destinatie, era nevoie de stabilirea unor conventii (protocoale) care sa fie folosite atat de calculatorul care trimite datele cat si de cel care le primeste.
Cele mai utilizate protocoale sunt TCP si UDP.
Definitii
TCP (Transport Control Protocol) este un protocol ce furnizeaza un flux sigur de date intre doua calculatoare. Acest protocol asigura stabilirea unei conexiuni permanente intre cele doua calculatoare pe parcursul comunicatiei.
UDP (User Datagram Protocol) este un protocol ce trimite pachete independente de date, numite datagrame, de la un calculator catre altul fara a garanta in vreun fel ajungerea acestora la destinatie. Acest protocol nu stabileste o conexiune permanta intre cele doua calculatoare.
Orice calculator gazda conectat la Internet este
identificat in mod unic de adresa sa IP (IP este acronimul de la Internet
Protocol). Aceasta reprezinta un numar reprezentat pe 32 de biti,
uzual sub forma a 4 octeti, cum ar fi de exemplu: 193.226.26.231 si
este numit adresa IP numerica. Corespunzatoare unei adrese numerice
exista si o adresa IP simbolica, cum ar fi fenrir.infoiasi.ro.
De asemenea fiecare calculator aflat intr-o retea locala are un nume
unic ce poate fi folosit la identificarea locala a acestuia.
Clasa Java care reprezinta notiunea de adresa IP este InetAddress.
Localizator uniform de resurse
URL este acronimul pentru Uniform Resource Locator si reprezinta o referinta (adresa) la o resursa aflata pe Internet. Aceasta este in general un fisier reprezentand o pagina Web sau o imagine, insa un URL poate referi si interogari la baze de date, rezultate ale unor comenzi (programe), etc
Exemple de URL-uri sunt:
https://java.sun.com
https://students.infoiasi.ro/index.html
https://www.infoiasi.ro/~acf/imgs/taz.gif
https://www.infoiasi.ro/~acf/java/curs/9/prog_retea.html#url
Dupa cum se observa din exemplele de mai sus, un URL are doua componente principale:
a. Identificatorul protocolului folosit (http, ftp, etc)
b . Numele resursei referite. Acesta are urmatoarele componente:
numele calculatorului gazda (www.infoiasi.ro)
calea completa spre
resursa referita (~acf/java/curs/9/prog_retea.html)
Notatia ~user semnifica
uzual subdirectorul html al directorului rezervat pe server utilizatorului. in cazul in care este
specificat doar un director, fisierul ce reprezinta resursa va fi
considerat implicit index.html.
optional, o referinta de tip anchor in cadrul fisierului referit (#url)
optional, portul la care sa se realizeze conexiunea .
Clasa care permite lucrul cu URL-uri este java.net.URL. Aceasta are mai multi constructori pentru creearea de obiecte ce reprezinta referinte catre resurse aflate in retea, cel mai uzual fiind cel care primeste ca parametru un sir de caractere. in cazul in care sirul nu reprezinta un URL valid va fi aruncata o exceptie de tipul MalformedURLException.
try catch (MalformedURLException e)
Odata creat, un obiect de tip URL poate fi folosit pentru :
aflarea informatiilor despre resursa referita (numele calculatorului gazda, numele fisierului, protocolul folosit. etc),
citirea printr-un flux a continutului fisierului respectiv
conectarea la acel URL pentru citirea si scrierea de informatii
Orice obiect de tip URL poate returna un flux de intrare de tip InputStream pentru citirea continutului sau. Secventa clasica pentru aceasta operatiune este:
//Afisarea paginii index.html de la adresa www.infoiasi.ro
public class CitireURL
} catch(MalformedURLException e)
finally
}
Conectarea la un url se realizeaza prin metoda openConnection ce realizeaza stabilirea unei conexiuni bidirectionale cu resursa specificata. Aceasta conexiune este reprezentata de un obiect de tip URLConeection ce permite crearea atat a unui flux de intrare pentru citirea informatiilor de la URL-ul specificat cat si a unui flux de iesire pentru scrierea de date catre acel URL. Operatiunea de trimitere de date dintr-un program catre un URL este similara cu trimiterea de date dintr-un FORM aflat intr-o pagina HTML. Metoda folosita pentru trimitere este POST. in cazul trimiterii de date, obiectul URL este de fapt un program (comanda) ce ruleaza pe serverul Web referit prin URL-ul respectiv (servlet, cgi-bin, php, etc).
1.2.3 Socket (Soclu)
Un socket (soclu) este o abstractiune software folosita pentru a reprezenta fiecare din cele doua 'capete' ale unei conexiuni intre doua procese ce ruleaza intr-o retea. Fiecare socket este atasat unui port astfel incat sa poata identifica unic programul caruia ii sunt destinate datele.
Socket-urile sunt de doua tipuri:
TCP, implementate de clasele Socket si ServerSocket
UDP, implementate de clasa DatagramSocket
O aplicatie de retea ce foloseste socket-uri se incadreaza in modelul client/server de concepere a unei aplicatii. in acest model aplicatia este formata din doua categorii distincte de programe numite servere, respectiv clienti. Programele de tip server sunt cele care ofera diverse servicii eventualilor clienti, fiind in stare de asteptare atata vreme cat nici un client nu le solicita serviciile Programele de tip client sunt cele care initiaza conversatia cu un server, solicitand un anumit serviciu. Uzual, un server trebuie sa fie capabil sa trateze mai multi clienti simultan si, din acest motiv, fiecare cerere adresata serverului va fi tratata intr-un fir de executie separat.
[ https://thor.info.uaic.ro/~acf/java/curs/8/prog_retea.html]
|