CATEGORII DOCUMENTE |
In retelele mari, cum este cea a Universitatii
Groucho Marx, de obicei nu se folosesc numai echipamente Ethernet. La
Pentru legaturile la distante foarte mari,
echipamentele folosite cel mai frecvent se bazeaza pe standardul X.25. Multe retele publice numite Public Data Networks ofera acest
serviciu, cum sunt Tymnet in SUA, sau Datex-P in
De obicei radio amatorii isi folosesc echipamentele si la legarea in retea a calculatoarelor; echipamantele se numesc packet radio sau ham radio. Protocolul folosit este AX.25, si are la origine X.25.
O alta modalitate este folosirea liniilor seriale pentru dial-up, linii care, desi lente, sunt ieftine. Pentru transmiterea pachetelor se folosesc protocoalele SLIP sau PPP, care vor fi descrise putin mai incolo.
Bine-nteles, nu este de dorit ca o retea sa fie limitata la o singura retea Ethernet. Ideal ar fi ca o retea sa functioneze la fel indiferent de hardware, si de asemenea sa nu conteze din cite subunitati este constituita. De exemplu, in retelele mari cum este cea de la Groucho Marx University, exista de obicei mai multe retele Ethernet separate care trebuie conectate. La GMU, departamentul de matematica foloseste doua retele Ethernet separate: o retea de calculatoare rapide pentru profesori si absolventi, si o retea de calculatoare lente pentru studenti. Ambele sunt legate la magistrala FDDI a campusului.
Aceasta legatura este controlata de un host special destinat, asa-numitul gateway, care gestioneaza traficul pachetelor intre cele doua retele Ethernet si magistrala. De exemplu, daca sunteti la departamentul de matematica si vreti sa accesati hostul quark din reteaua departamentului de fizica, software-ul de retea nu poate trimite pachetele direct catre quark deoarece este intr-o alta retea. De aceea, gateway-ul trebuie sa indeplineasca functia de forwarding (trimiterea mai departe a pachetelor destinate altei retele). Gateway-ul (numit sophus) trimite pachetele catre gateway-ul pereche niels prin intermediul magistralei, iar niels le depune la destinatie. Fluxul datelor intre erdos si quark este ilustrat in figura Fig. 1-1
Fig. 1-1. Cei trei pasi ai trimiterii unei datagrame de la erdos la quark.
Aceasta schema de redirectare a datelor catre remote host se numeste routing, iar pachetele sunt numite in acest context datagrame. Pentru simplificare, traficul de datagrame este guvernat de un singur singur protocol, independent de hardware-ul folosit: IP, sau Internet Protocol. In capitolul Cap. 2, vom aborda mai in detaliu protocolul IP si routarea.
Principalul avantaj al IP-ului este ca transforma retele diferite din punct de vedere al hardware-ului intr-o retea aparent omogena, de tip internet. Trebuie observata diferenta subtila dintre o retea internet and Internet. 'Internet' este numele oficial al unei anumite retele globale de tip internet.
Bine-nteles, IP necesita o schema de adresare independenta de hardware. Aceasta se realizeaza prin alocarea unui numar de 32 de biti fiecarui host, numar numit adresa IP. Adresele IP se scriu de obicei ca un set de patru numere de cite 8 biti, separate prin puncte. De examplu, quark ar putea avea adresa IP 0x954C0C04, care se poate scrie 149.76.12.4. Acest format este numit 'dotted quad notation'.
Veti observa ca acum avem trei tipuri diferite de adrese: hostname-urile ( cum e quark ), apoi adresele IP, si in final adresele hardware (cum sunt adresele Ethernet de 6 bytes). Toate trebuie sa se potriveasca, astfel incit daca introduceti rlogin quark, software-ul de retea sa poata obtine adresa IP a lui quark; iar cind datele ajung in reteaua departamentului de fizica, trebuie cumva determinata adresa Ethernet care corespunde adresei IP. Aceasta poate produce o oarecare confuzie.
Nu vom intra in detalii chiar acum, ci un pic mai incolo, in capitolul Cap. 2. Deocamdata este suficient sa retineti ca exista doi pasi ai regasirii adreselor : hostname resolution (determinarea adresei IP corespunzatoare unui hostname) si address resolution (gasirea adresei hardware care corespunde adresei IP).
In cazul liniilor seriale cel mai adesea se foloseste standardul SLIP (Serial Line IP). O varianta a SLIP-ului este CSLIP (compressed SLIP) care realizeaza o compresie a headerelor IP pentru a folosi cit mai eficient liniile seriale cu o latime de banda relativ mica. Un alt protocol serial este PPP, sau Point-to-Point Protocol. PPP are multe optiuni in plus fata de SLIP, legatura incluzind si o faza de negociere. Principalul avantaj fata de SLIP este acela ca nu este limitat la transportul datagramelor IP, ci a fost proiectat sa permita transmiterea si a altor tipuri de datagrame.
Trimiterea datagramelor de la un host la altul nu este singura problema. Daca va logati la quark, doriti bine-nteles ca legatura sa fie sigura intre procesul rlogin de pe erdos si shell-ul de pe quark. Informatiile transferate trebuie sa fie impartite in pachete de catre expeditor si reasamblate la loc la destinatie. De-ti pare banal, aceasta presupune o serie de operatii stufoase.
Este important de stiut ca IP nu este, prin conceptie, un protocol sigur. Sa zicem ca zece useri de pe reteaua locala incep sa-si copieze de pe serevrul FTP de la GMU ultima versiune de XFree86. Traficul astfel generat s-ar putea sa fie prea mare pentru gateway, deoarece acesta poate sa fie prea lent sau sa nu aiba memorie suficienta. Daca in aceste conditii trimiteti un pachet catre quark, sophus poate sa nu aiba in acel moment spatiu in buffer si sa nu poata retransmite pachetul. IP rezolva acesta problema simplu: leapada pachetul, care este iremediabil pierdut. Responsabilitatea de a verifica integritatea datelor si de a le retransmite in caz de eroare cade tot in sarcina software-ului de retea.
Acesta functie este indeplinita de un alt protocol : TCP, sau Transmission Control Protocol, care realizeaza un serviciu sigur pe baza lui IP. Caracteristica esentiala a TCP este aceea ca foloseste IP pentru a crea iluzia unei conexiuni simple intre procesul local si cel de pe remote host, astfel ca nu mai trebuie sa va intrebati cum si pe unde trec datele. O conexiune TCP este in esenta ca o conducta (pipe) bidirectionala la care procesele scriu si de la care citesc. Se aseamana cu o convorbire telefonica.
Protocolul TCP identifica cele doua capete ale conexiunii cu ajutorul adreselor IP ale celor doua host-uri si al asa-numitelor port-uri folosite pe fiecare host. Orice conexiune de retea se leaga la un host prin intermediul unui port. Daca vom continua analogia cu convorbirea telefonica, putem compara adresele IP cu prefixele telefonice si porturile cu numerele de telefon.
In exemplul cu rlogin, aplicatia client (rlogin) deschide un port la erdos si se conecteaza la quark folosind portul 513 pe care 'asculta' serverul rlogind. Astfel se realizeaza o conexiune TCP. Pe baza acestei conexiuni rlogind verifica mai intii numele si parola, iar apoi lanseaza in executie shell-ul. Intrarea si iesirea standard a shell-ului sunt redirectate prin conexiunea TCP, astfel ca orice se introduce de la hostul local se transmite prin conexiune si ajunge ca intrare standard pentru shell.
TCP nu este singurul protocol folosit in retelele TCP/IP Desi este potrivit pentru aplicatii ca rlogin, pentru altele ( de exemplu NFS) se dovedeste a fi ineficient. In aceste cazuri este folosit un protocol pereche al TCP-ului, numit UDP, (de la User Datagram Protocol). La fel ca TCP, UDP permite unei aplicatii sa contacteze un serviciu de pe un anumit port al remote hostului, insa nu creaza o legatura permanenta, ci permite trimiterea unui singur pachet catre serviciul destinatie -- de unde si numele sau.
Sa zicem ca ati montat ierarhia de directoare ale
lui
Porturile pot fi vizualizate ca puncte de atasare ale conexiunilor de retea. Daca o aplicatie ofera un anumit serviciu, se ataseaza la un port si asteapta clienti (asta se numeste 'ascultarea' portului - listening). Un client care vrea sa folosesca serviciul aloca un port de pe local host si se conecteaza la portul serverului de pe remote host.
O proprietate importanta a porturilor este ca odata ce s-a facut conexiunea dintre client si server, o alta copie a serverului se poate atasa la port si poate primi noi clienti. Aceasta permite de pilda mai multe rlogin-uri la acelasi host, toate folosind portul 513. TCP poate distinge aceste conexiuni dupa host-ul de la care provin. De exemplu, daca se fac doua conectari la quark de la erdos, primul client rlogin foloseste, sa zicem, portul local 1023 iar al doilea portul 1022. Ambele se vor conecta insa la acelasi port 513 de pe quark.
Acest exemplu arata folosirea porturilor ca puncte de intilnire unde clientul contacteaza un anumit port pentru a obtine un anumit serviciu. Pentru ca un client sa stie portul corect, este nevoie de o intelegere intre administratorii ambelor sisteme. Pentru serviciile folosite pe scara larga, ca rlogin, numerele porturilor trebuie administrate central. Acest lucru il face IETF (Internet Engineering Task Force), care lanseaza periodic un RFC intitulat Assigned Numbers in care sunt descrise, printre altele, porturile alocate serviciilor folosite frecvent. Linux foloseste un fisier de mapare a serviciilor cu numerele porturilor : /etc/services. Acest fisier este descris in sectiunea
Desi atit conexiunile TCP cit si cele UDP de bazeaza pe aceleasi porturi, nu se creaza nici un conflict intre ele. Astfel, de exemplu portul TCP 513 este diferit de portul UDP 513 si corespund unor servicii diferite : rlogin (513/TCP) si rwho (513/UDP).
La cele mai multe sisteme de operare, software-ul care realizeaza toate functiile legate de retea este inclus in kernel, si la fel se intimpla si in cazul Linux-ului. Interfata de programare cel mai des intilnita pe plan mondial este Berkeley Socket Library. Numele provine din analogia porturilor cu niste mufe (socket=mufa,fasung,racord) la care se racordeaza conexiunile de retea. Biblioteca Socket pune la dispozitie call-ul bind(2) pentru a specifica remote host-ul, protocolul de transport si un serviciu la care se poate conecta un program sau pe care poate 'asculta' (folosind connect(2), listen(2), si accept(2)). Biblioteca socket are un caracter mai general, deoarece nu contine doar clasa de baza pentru TCP/IP-based sockets (socket-urile AF_INET ), ci si o clasa pentru conexiunile cu local host-ul (clasa AF_UNIX). Unele implementari mai includ si alte clase, protocolul XNS (Xerox Networking System), sau X.25.
In cazul de fata, biblioteca socket face parte din biblioteca standard libc. Acum suporta numai socket-urile AF_INET si AF_UNIX, dar se fac eforturi in directia suportarii protocoalelor Novell, asa ca in final vor mai fi adaugate citeva clase.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1208
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved