top

Rutarea în Internet

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului WwW.Hack-Library.MyForuM.Ro -> Noobs
Autor Mesaj
Invo4u
Administrator
Administrator
Invo4u

Data inscrierii: 28/Dec/2006
Mesaje: 784
Localitate: P`Luna

MesajTrimis: 29/12/2006 19:06    Titlul subiectului: Rutarea în Internet Raspunde cu citat (quote)

Internet-ul: scurt istoric
La mijlocul anilor '60 compartimentul de cercetare al Departamentului Apãrãrii al Statelor Unite (DARPA: Defense Advanced Research Projects Agency), un organism beneficiind de un buget strivitor, a pornit un proiect de cercetare pentru construirea unei reþele strategice pentru transmisiunea datelor între calculatoarele Pentagonului. Reþeaua trebuia sã satisfacã douã cerinþe:


Sã lege între ele scumpele calculatoare ale agenþiei ºi eventual ale altor centre de cercetãri;
Sã reziste cu succes în faþa unui atac nuclear.
Reþeaua sponsorizatã de DARPA a fost numitã ARPAnet (network, net = reþea). Proiectul iniþial a fost fãcut în 1966 iar în 1969 primul prototip care lega 4 calculatoare, amplasate la mai multe universitãþi ºi laboratoare de cercetare, era operaþional.

În acelaºi timp universitatea Stanford construia un alt prototip de reþea, sponsorizat tot de DARPA, care folosea undele radio pentru transmisiunea datelor (ARPAnet transmitea datele prin linii telefonice închiriate). Cercetãtorii de la Stanford ar fi dorit sã interopereze cu cealaltã reþea. Din cauza asta proiectanþii au adoptat o serie de reguli asemãnãtoare pentru transmisiunea datelor în cele două reþele, dar au construit ansamblul în aºa fel încît cele douã reþele componente sã poatã fi administrate ºi dezvoltate independent, fãrã intervenþii speciale ale unei autoritãþi centrale. De asemenea, un factor crucial în design a fost decizia ca reþeaua sã poatã opera în acelaºi fel indiferent de natura mediului de transmisie folosit.

La ARPAnet se puteau conecta universitãþile ºi centrele de cercetare care primeau bani de la DARPA. Numeroase alte universitãþi ar fi dorit însã sã participe la conexiune. Fiecare dintre ele a dezvoltat propria ei reþea peste care a suprapus tehnologiile din ARPAnet. Astfel, mai multe reþele variate au adoptat standardele propuse în ARPAnet pentru comunicaþie ºi au putut interopera. La începutul anilor '80 aceastã federaþie de reþele, din care ARPAnet era doar o pãrticicã, s-a numit ``Internet''. Numele înseamnã ``inter = între'', ``net = reþele'', indicînd faptul cã protocoalele îngăduie comunicarea între mai multe reþele diferite structural.

Internet a crescut cu o vitezã uluitoare, legînd din ce în ce mai multe universitãþi, centre de cercetare ºi alte instituþii de acelaºi gen. Pentru cã banii pentru funcþionarea sa veneau de la guvern (iniþial de la armatã, apoi, de la mijlocul anilor '80 de la National Science Foundation, NSF -- o agenþie guvernamentalã care sponsorizeazã cercetarea ºtiinþificã de la budget), activitãþile comerciale erau strict interzise.

Internet-ul s-a expandat în afara Statelor Unite, cuprinzînd instituþii de pe toate continentele. Dupã cãderea cortinei de fier el a devenit accesibil ºi în fostele þãri comuniste (fiecare participant acoperea costurile unei anumite pãrþi din Internet, mod de finanþare care este valid ºi astãzi).

În 1992 a fost ridicatã restricþia privind activitãþile comerciale pe Internet, ceea ce a adus gradual în scenã o cantitate enormã de participanþi. În 1993 ARPAnet a fost complet desfiinþatã. Suportul federal pentru reþea a fost încetat perfect pe 1 mai 1995; NSF continuã sã sponsorizeze accesul unor universitãþi. La ora actualã comerþul pe Internet ºi tehnologiile Internet reprezintă una dintre cele mai prospere activitãþi din Statele Unite, ºi, pe o scarã ceva mai micã, din restul lumii. Companii ca Netscape, care s-a ridicat de la absolut nimic, în 1994, la o valoare la bursã de peste 1 miliard (sic!) de dolari, în 1995, semnificã importanþa economicã crescîndã a reþelei.

O adevãratã industrie de Internet Service Providers (ISP): firme care oferã servicii de conexiune la Internet au apãrut în toatã lumea. La ora actualã în Internet se estimeazã ca sunt conectate peste 30 de milioane de calculatoare de pe tot globul, ºi cã peste 100 de milioane de oameni beneficiazã de serviciile lui în mod regulat. Rata de creºtere continuã sã fie exponenþialã. Se estimeazã cã 30% din popula'tia SUA folose'ste Internet-ul; acesta a realizat un dispozitiv de uz casnic (aproape) la fel de obiºnuit ca maºina de spãlat sau televizorul.

România este legatã la Internet cel puþin din 1992. La ora actualã nodul cu cea mai mare importanþã este aflat la Politehnica din Bucureºti; în jur de 80% din traficul din Romania trece prin acest punct, pentru cã aici se aflã un nod care oferã legãturã marilor centre universitare din þarã (informaþiile la zi pot fi obþinute de la (http://www.roedu.net)1). În multe oraºe din þarã au apãrut furnizori de servicii Internet.

Iatã cum deciziile iniþiale de descentralizare ºi inter-operare au permis o dezvoltare uluitoare care întrece imaginaþia celor mai vizionari dintre arhitecþii Internet-ului.

Internet-ul are propriul lui corp de standardizare, numit IETF ``Internet Engineering Task Force'', care este format din experþi din universitãþi, centre de cercetare ºi mari firme de calculatoare ºi telecomunicaþii. Ritmul de lucru la IETF este trepidant (comparat cu alte corpuri de standardizare), ºi este în mare mãsurã responsabil pentru evoluþia tehnologicã colosalã a Internet-ului. (Trebuie spus cã deºi anumite decizii au rãmas neschimbate de la început, o mulþime de reguli din funcþionarea Internet-ului au fost introduse pe parcurs. Acesta este un fapt remarcabil: e ca ºi cum ai altera bujiile la maºinã în timp ce merge!) IETF îºi publicã deciziile în niºte documente numite ``Request For Comments (RFC)'' (Cerere de comentarii), ºi care sunt adoptate prin consensul celor implicaþi în funcþionarea Internet-ului. RFC-urile specificã totalitatea regulilor pe care trebuie sã le respecte calculatoarele care comunicã în Internet (reguli care se numesc protocoale). Lista completã a RFC-urilor se poate obþine...de pe Internet (http://rs.internic.net). Dacã vreþi sã ºtiþi cum funcþioneazã Internet-ul este suficient sã citiþi aceste documente. Dar nu e o treaba prea simplã...(sunt cîteva sute!).


Acest articol
Despre reþele ºi Internet s-a scris enorm. O carte absolut excelentã a lui Andrew S. Tanenbaum (ºi foarte fierbinte) a publicat în traducere editura Agora (la un preþ ridicol: ediþia americanã costã 80 de dolari).

Acest articol va trata deci nespus de sumar o singurã problemã legatã de funcþionarea Internet-ului: ``rutarea'' (alegerea unei rute între douã calculatoare). Despre rutare numai au fost scrise mai multe cãrþi; referinþa cea mai bunã este Radia Perlman ``Interconnections'', Addison-Wesley, 1992. Subiectul este cumplit de generos, ºi deloc simplu; tratamentul pe care îl vom da aici este desigur doar orientativ.

În funcþionarea unei reþele existã douã aspecte oarecum complementare: algoritmii ºi protocoalele care fac acea reþea sã funcþioneze, ºi aparatele, sîrmele ºi comenzile administratorilor care opereazã aparatele ``reale''. Voi încerca în acest articol sã le ating pe amîndouã.

Voi folosi adesea analogii cu o altã reþea realã care prezintã oarecare similitudini cu Internet-ul: poºta. La nivelul la care discutãm în acest articol Internet-ul are o singurã misiune: îi dai niºte date (grupate într-un pachet) ºi îi spui unde vrei sã ajungã, ºi Internet-ul face tot ce poate sã ducã datele acolo. La fel ca ºi poºta: pui la poºtã un pacheþel (sau un plic), scrii pe el adresa de destinaþie, ºi apoi speri ca sistemul sã-ºi facã datoria. Nici poºta ºi nici Internet-ul nu garanteazã cã ce le-ai dat o sã ajungã în partea cealaltã. Dacã vrei sã fii sigur trebuie sã-þi iei mãsuri suplimentare de precauþie2.


Protocoale
Un protocol este un set de reguli pe care toatã lumea trebuie sã le respecte. Cînd întîlneºti un știut îi întinzi mîna dreaptã, ºi el þi-o întinde pe a lui; asta e o regulã dintr-un protocol. Protocoalele fac sã ne înþelegem unii cu alþii.

Pentru ca douã calculatoare sã poatã comunica unul cu celãlalt amîndouã trebuie sã respecte aceleaºi reguli. Ingineria programãrii ne învaþã cã pentru a construi sisteme complexe trebuie sã le spargem în piese mai simple, pe care apoi le putem construi independent. Din cauza asta, o reþea de calculatoare specificã mai multe protocoale independente pe care calculatoarele trebuie sã le respecte. Pentru fiecare sub-problemã pe care vrem s-o rezolvãm avem un ``mic'' protocol.

De pildã avem un protocol prin care asociem unei anumite diferenþe de potenþial de pe sîrmã valoarea 0 ºi alteia 1; protocolul acesta probabil specificã care sîrmã ce valoare carã, cît timp trebuie sã dureze un semnal pentru ``1'', care este limita între 0 ºi 1, etc.

Din cauza interferenþelor electrice semnalele propagate printr-o sîrmã pot fi stricate. Un alt protocol specificã cum anume codificãm un mesaj în aºa fel încît atunci cînd o eroare se strecoarã în el avem ºanse s-o detectãm.

ªi tot aºa, pentru fiecare problemã avem un alt protocol. Protocoalele astea se folosesc împreunã; de exemplu cele douã de mai sus se vor folosi la ambele capete ale unei transmisiuni. Protocolul de detecþie a erorilor va funcþiona ``deasupra'' celuilalt, pentru cã dupã ce transmitem datele le verificãm corectitudinea. Protocolul pentru erori manipuleazã rezultatele oferite de protocolul pentru transmisiune.

De aceea în reþele avem de-a face cu o ``stivã'' de protocoale. De fapt Internet-ul foloseºte mai mult de o duzinã de protocoale în mod curent, care fiecare rezolvã o altã problemã.

Protocoalele bine proiectate pot fi vãzute ca niºte piese de Lego, care se îmbinã unele cu altele. Adesea putem avea mai multe protocoale care rezolvã aceeaºi problemã, ºi putem alege pe oricare dintre ele. Un protocol bine proiectat nu trebuie sã depindã de celelalte împreunã cu care funcþioneazã.

Iatã un exemplu din sistemul poºtal: dacã vrei sã-i scrii unui amic compui o scrisoare ºi o pui la poºtã. Avem (cel puþin) douã protocoale aici: conversaþia dintre prieteni, ºi sistemul poºtal care miºcã scrisorile. Dacã te grãbeºti trimiþi scrisoarea cu altã companie, de pildã DHL. Ai schimbat protocolul prin care informaþia se plimbã, dar conversaþia cu amicul este aceeaºi: conþinutul scrisorii nu s-a schimbat deloc.

Internetul este caracterizat de utilizarea anumitor protocoale. Cele mai importante protocoale utilizate de calculatoarele din Internet se numesc IP (Internet Protocol) ºi TCP (Transport Control Protocol). TCP a fost proiectat cândva de a exista foarte multã experienþã despre reþele, aºa cã violeazã regula expusã anterior: TCP funcþioneazã numai cu IP.

Protocolul IP este cel care mutã pachetele dintr-un loc într-altul, posibil peste multe conexiuni, iar TCP asigurã fiabilitatea comunicaþiei.

Iatã schema plasamentului unor protocoale esenþiale din Internet:


+-----+
| NFS |
+-----+
|
+----+ +-----+ +------+ +-----+ +-----+
|SMTP| | BGP | |Telnet| | FTP | | RPC |
+----+ +-----+ +------+ +-----+ +-----+
\ \_________ | | |
\_______________ \ | | |
\+-----+ +-----+ +-----+
| TCP | | UDP | .. | RIP |
+-----+ +-----+ +-----+
| | |
+------------------------+------+
| IP | ICMP |
+------------------------+------+
censored
| |
+-----+ +------+
| ARP | | RARP |
+-----+ +------+
\_______ _________/
|
+---------------------------+
| Protocolul retelei locale |
+---------------------------+


Alte reþele
Nu trebuie sã rãmînem cu impresia cã Internet-ul este singura reþea pentru transmisiunea de date din lume. Poate nici mãcar cea mai mare! O reþea enormã dedicatã transmisiunii de date este reþeaua telefonicã, care existã de mai bine de 100 de ani, care foloseºte propriile protocoale.

Pînã în anii '90 nu era deloc clar cã suita de protocoale folosite în Internet (TCP/IP) va domina lumea. Marile firme de calculatoare dezvoltaserã protocoalele proprii, care nu erau publice (structura lor era secret comercial, deci nu puteau fi implementate de oricine; de fapt asta a ºi dus la pieirea lor). Cele mai faimoase suite de protocoale aparþineau firmei Digital (protocoalele DECnet) ºi IBM (SNA: System Network Architecture). ªi la ora actualã reþelele automatelor bancare din întreaga lume folosesc în mod preponderent SNA. Multe din protocoalele din Internet se inspirã viguros din astfel protocoale de firmã.

Pe de altã parte mai exista o suitã de protocoale (numite OSI: Open System Interconnection) standardizate de organizaþia mondialã a standardelor; suita de protocoale X: X25, X400, etc. Multe reþele europene folosesc în continuare aceste protocoale, mai ales reþelele bancare.

O altã suitã de protocoale a fost dezvoltatã de marile companii de telecomunicaþii, dar nu a fost încã implementatã pe scarã largã: protocoalele numite generic ATM: Asynchronous Transfer Mode. ATM promitea anumite calitãþi care structural scapã Internet-ului, dar nu este prea clar dacã va avea sau nu succes. Anumite segmente de Internet folosesc protocolul ATM pentru nivelele ``joase''.

Deºi Internet-ul are o mulþime de hibe, este extraordinar de bine testat: funcþioneazã încontinuu de aproape 30 de ani. Mulțimea a învãþat o grãmadã de lecþii despre proiectarea reþelelor cu Internet-ul, care au fost înglobate în structura lui. Nimeni nu poate de fapt înþelege funcþionarea unui sistem atît de complex, cu atît mai puþin prezice. Chiar dacã alte protocoale sunt proiectate, nu este deloc limpede cã vor funcþiona la fel de bine în practicã. De altfel la începutul anilor '90 se preconiza ca Internet-ul sã fie desfiinþat ºi înlocuit cu o reþea care foloseºte protocoale standardizate internaþional. Acest lucru nu s-a întîmplat, ºi a devenit clar cã nu se va mai întîmpla niciodatã.


Internet-ul: o reþea de reþele
Observaþia cheie pe care trebuie sã o facem ca sã înþelegem cum lucreazã Internet-ul este urmãtoarea: Internet-ul nu leagã calculatoare, ci reþele. Distincþia este crucialã, dupã cum vom vedea.

O reþea este un numãr de calculatoare care pot comunica între ele, fiecare cu fiecare, într-un oarecare mod. Cel mai rãspîndit fel de reþea este Ethernet, care leagã mai multe calculatoare între ele întrebuințând un cablu coaxial. Mai avem calculatoarele care vorbesc unele cu altele prin modemuri, utilizând felurite protocoale din familia V (de exemplu modemurile de 33,6 kilobiþi pe secundã folosesc V.34bis). ªi aºa mai departe.

Ceea ce face Internet-ul este sã ia o colecþie de astfel de reþele, poate teribil de diferite arhitectural, ºi sã punã peste mediile de comunicare ale acestor reþele o serie de reguli uniforme. Astfel toate calculatoarele din Internet vor avea nume de acelaºi fel ºi vor vorbi acelaºi set de protocoale.

În analogia noastrã cu sistemul poºtal lucrurile ar sta cam aºa: sã ne imaginãm cã fiecare þarã din lume are alte reguli ºi metode pentru a trimite obiecte între locuitori; în unele locuri obiectele se transportã cu camioane, în alte locuri cu avioane (de exemplu în Hawaii, probabil). Fiecare þarã are propria ei reþea de distribuþie. Dacã toate þãrile din lume vor sã schimbe între ele scrisori (ceea ce se ºi întîmplã, atunci ele cad de acord asupra unui standard comun, independent de modul în care-ºi transportã obiectele. De pildã faptul cã se folosesc timbre, ºi asupra modului în care se scrie o adresã pe plic. Dacã toatã societatea face aceste lucruri la fel, atunci reþelele poºtale pot fi fãcute sã interopereze.


IP
Cel mai important protocol din Internet este protocolul numit IP: Internet Protocol. Scopul de frunte acestui protocol este sã împingã pachetele de la un calculator sursã la o destinaþie din aproape în aproape, folosind legãturile existente între vecini. Dacã problema asta vi se pare simplã atunci încercaþi sã o rezolvaþi dumneavoastrã: eu vã dau un colet ºi numele unui amic de-al meu; dumneavoastrã aveþi misiunea sã faceþi acest pachet sã-i parvinã, fãrã a avea cea mai micã idee unde stã amicul meu sau cum se ajunge la el. (IP are ºi un scop secundar, acela de a sparge pachetele în bucãþele atunci cînd trebuie sã traverseze o reþea ale cãrei caracteristici nu permit tranzitul pachetelor mari. Dar asta e mai puþin interesant.) IP este descris în detaliu în standardul RFC 791.

[IP este un protocol care mutã pachetele care i se dau ``din afarã''. În ``interior'' Internet-ul foloseºte împreunã cu IP un protocol special pentru control, care genereazã propriile pachete. Acest protocol se numeºte ICMP: Internet Control Message Protocol. Un exemplu ne va ajuta sã ne facem o idee despre ICMP: dacã un calculator primeºte un pachet care se plimbã de mult prea multã vreme în reþea3 atunci calculatorul distruge pachetul ºi simultan trimite spre sursã un mesaj ICMP care anunþã sursa despre pierderea informaþiei. Sursa va necesită sã ia acþiuni corective.]

Sã vedem ce se dã ºi ce se cere lui IP.


Problema rutãrii
Fiecare calculator aparþine unei reþele, cu ale cãrei ingrediente poate comunica oricînd direct, fãrã alte intervenþii. Vom vedea repede cum aflã un calculator care sunt vecinii lui imediaþi; aceasta este o problemã de configurare care cade în sarcina administratorului de sistem.

Pe de altã parte anumite calculatoare au conexiuni la mai multe reþele simultan; acestea se mai numesc ``gateways'': ``porþi'' între reþele. Un pachet care este primit de un astfel de calculator pe interfaþa dinspre o reþea poate fi transmis pe cealaltã reþea. Acest proces se numeºte ``forwarding'' (``înaintare''). Drumul ales de un pachet de la sursã la destinaþie poartã denumirea de ``rutã'' (route). Operaþia de alegerea a unei cãrãri pentru un pachet se numeºte ``rutare'' (routing); britanicii ar pronunþa asta circa ``ruting'', pe cînd americanii ar zice ``rauting''. Iatã un desen care explicã fenomenul:


Calculatorul sursa Ruter intermediar Calculator dest.
+-------------------+ +---------------------+ +---------------+
| Program sursa | | | | Program dest|
| \ | | | | / |
| Protocol IP | | Protocol IP | | Protocol IP |
| \ | | / \ | | / |
| Interf R1| |Interf R1 Interf R2| |Interf R2 |
+--------------\----+ +--/-------------\----+ +-/-------------+
Retea Locala 1 Retea Locala 2

Existã mai multe feluri de ``gateways'', dar noi în acest articol o sã ne preocupãm cu preponderenþã de cele care se numesc ``rutere'' (``router'' în englezã. Un ruter este deci în general un calculator conectat simultan la mai multe reþele.

Pentru cã avem peste 30 de milioane de calculatoare, este clar cã nu se poate introduce manual informaþia despre unde se aflã fiecare din ele în toþi membrii reþelei (de altfel aceastã informaþie este foarte volatilã: în fiecare secundã probabil mii de calculatoare se conecteazã ºi se deconecteazã. ªtim cã calculatoarele sunt destul de bune la prelucrat date, aºa cã sarcina calculãrii rutelor le care lor în cîrcã.

Iniþial fiecare calculator are oarecare cunoºtinþe despre vecinãtatea lui mai mult sau mai puþin imediatã; aceste cunoºtinþe sunt introduse de administratorul de sistem.

Problema rutãrii se enunþã astfel:


Atunci cînd primeºti (tu, un ruter) un pachet pentru o anumitã destinaþie trebuie sã decizi pe care dintre interfeþele tale sã-l trimiþi.
Una dintre interfeþe trebuie sã fie întotdeauna mai aproape de destinaþie; dacã fiecare ruter care primeºte un pachet îl trimite apoi pe o interfaþã mai apropiatã de destinaþia finalã, eventual pachetul va ajunge la destinaþie. Simplu, nu?

Problema rutãrii este (aproape) banalã pentru calculatoarele care au o singurã interfaþã. Este clar cã oricare ar fi destinaþia, dacã ea nu este chiar calculatorul local4, atunci existã o singurã interfaþã pe care pachetele pot fi scoase.

Problema rutãrii este mai complicatã pentru calculatoarele care au de-a face douã sau mai multe alegeri. Dar înainte de a vedea cum este ea rezolvatã, sã vedem concret cum se specificã o adresã ºi o destinaþie.


Adrese
Protocoalele din Internet au fost proiectate cu o grijã deosebitã pentru administrare descentralizatã. Astfel proiectanþii au construit supape de siguranþã pentru evoluþia protocoalelor. Dacã protocolul evolueazã este imposibil sã se facã simultan în întreaga lume ``upgrade''. Atunci reþeaua trebuie sã poatã funcþiona cu pãrþi din ea rulînd protocoale mai avansate (care, desigur, trebuie sã rãmînã compatibile (backwards compatible) cu versiunile anterioare).

Versiunea curentã a protocolului IP este 4. Practic toate calculatoarele din Internet ruleazã versiunea 4, numitã ºi IPv4. Cîteva calculatoare ruleazã versiunea experimentalã urmãtoare, încã nestandardizatã, numitã 6 (nimeni nu ºtie unde a dispãrut versiunea 5). Articolul de faþã discutã numai IPv4.

Ca sã poþi sã indici pe cineva anume trebuie sã ai un nume pentru el. Pentru un calculator, mai pregnant decît pentru un om, un obiect care nu are un nume nu existã! Numele calculatoarelor din Internet sunt întregi pe 32 de biþi (4 octeþi), numite adrese IP. De fapt trebuie sã fim preciºi: fiecare interfaþã (la o reþea) a unui calculator are o altã adresã; un calculator cu 10 interfeþe (un ruter) va avea simultan 10 adrese IP. Adresele IP se scriu convenþional indicînd în baza 10 valorile celor 4 octeþi separate de semnul (.) punct. Iatã o adresã IP: ``1.2.3.4''. Tern, nu? (Un sistem sofisticat existã care permite calculatoarelor sã aibã nume mai ``umane'', cum ar fi ``apolo.cs.pub.ro'', dar asta este cu totul altã poveste, ºi este treaba unor protocoale aflate mult deasupra IP.)

Fiecare adresã IP trebuie sã aparã o singurã datã în Internet. Pentru a asigura acest lucru adresele IP sunt alocate de o autoritate centralã în grupe unor sub-autoritãþi. Fiecare sub-autoritate apoi alocã adresele la rîndul ei. De exemplu Politehnica din Bucureºti a primit 65536 de adrese, care toate încep cu octeþii 141.85 (deci adresele între 141.85.0.0 ºi 141.85.255.255). Politehnica apoi a împãrþit adresele fiecãrui departament sau laborator, etc. În felul acesta responsabilitatea poate fi relativ clar trasatã.

Dacã un calculator într-o anumitã parte a Internet-ului îºi alocã o adresã care nu i se cuvine în cel mai bun caz nu va funcþiona, iar în cel mai rãu caz va deranja funcþionarea altor calculatoare; cel mai probabil este cã administratorii reþelei la care este conectat calculatorul vor trebui sã ia mãsuri pentru a-l deconecta.

Existã un program numit whois (``cine e'') care interogheazã anumite baze de date care conþin informaþii despre administraþia Internet-ului. Din pãcate existã mai multe astfel de baze de date, acoperind pãrþi diverse ale reþelei. În principiu puteþi afla informaþii despre un anumit calculator, sau administrator, sau altceva tastînd whois informatie-de-aflat.

Existã deci teoretic 232 adrese IP diferite, ceea ce înseamnã peste 4 miliarde. Aparent adresele ar trebui sã ajungã, însã în zilele iniþiale ale Internet-ului s-a cam fãcut risipã; de pildã Politehnica din Bucureºti nu a întrebuințat toate cele 65 de mii de adrese, aºa cã multe sunt acum inutile, pentru cã nu pot fi luate înapoi.


[Nu absolut orice fel de reþea necesitã o administrare atît de grijulie a adreselor; existã standarde de reþele în care adresele au o astfel de structurã încît intervenþia administratorului este inutilã; astfel de reþele se numesc ``plug-and-play'', pentru motive evidente. Ethernet este o astfel de reþea: oricînd iei douã calculatoare care vorbesc Ethernet ºi le pui laolaltã ºi se vor înþelege fãrã Niciun fel de configurare! Reþelele din IPv4 necesitã administrare pentru cã sunt prea puþine.]


Atunci cînd un calculator vrea sã trimitã date spre un altul va pune datele într-un pachet (sau mai multe), ºi la începutului fiecãrui pachet va pune un antet (header) care conþine printre altele adresa IP a sursei ºi a destinaþiei. Cea din urmã este folositã de rutere pentru a înainta pachetul.


Reþele ºi noduri
Pentru a simplifica problema rutãrii, adresele în Internet nu sunt ``plate'', ci ierarhice. Asta înseamnã cã o adresã dã ºi o oarecare indicaþie despre traseul care trebuie urmat pînã la acea adresã.

Ca sã înþelegem mai bine diferenþã, numele unui individ este dintr-un spaþiu de nume plat: nu-þi spune absolut nimic despre locul în care este acel individ (trebuie sã foloseºti ceva gen o carte de telefon).

Pe de altã parte o adresã ca cea pusã pe o scrisoare este ierarhicã, pentru cã îþi indicã cu o precizie din ce în ce mai mare (dacã citeºti de jos în sus) unde este destinaþia. O adresã de genul:


4108 Wean Hall
Carnegie Mellon University
4000 Forbes Avenue
Pittsburgh, PA 15217
USA

îþi spune cã locul este în USA, din USA apoi trebuie sã alegi statul Pennsylvania (PA), oraºul Pittsburgh, ºi aºa mai departe. Aproape sigur mai existã undeva o stradã numitã ``Forbes'', dar în oraºul Pittsburgh existã una singurã (asta este treaba primãriei: sã asigure aceastã lipsã de ambiguitate). Astfel adresa este foarte precisã.

Adresele din Internet sunt tot ierarhice, avînd însã numai douã componente. Prima componentã este numãrul reþelei, iar a doua componentã este numãrul calculatorului din reþea. Reamintiþi-vã cã Internet-ul este o colecþie de reþele. Toate calculatoarele care fac parte din aceeaºi reþea vor avea deci aceeaºi valoare pentru numãrul reþelei.

O adresã Internet trebuie deci sã fie însoþitã de o mascã, al cãrei folos este sã ne indice care din cei 32 de biþi indicã reþeaua ºi care calculatorul din reþea. (Un calculator într-o reþea se numeºte pe englezã ºi ``gazdã'' -- host.) Masca este întotdeauna un ºir de biþi ``1'' consecutivi plecînd de la cel mai important.

Iatã un exemplu de o adresã însoþitã de o mascã, de data asta scrisã ºi în baza 2 pentru a evidenþia biþii 1:


55 . 92 . 227 . 20 --- adresa
00101101.01011011.11100011.00010110 --- adresa (baza 2)
11111111.11111111.11100000.00000000 --- masca
\___________________/\____________/
numarul retelei nr. host-ului

00101101.01011011.11100000.00000000 --- adresa retelei = adresa & masca
00000000.00000000.00000011.00010110 --- host = adresa & ~masca

În baza 10 adresa de mai sus ar avea valoarea: 55.91.227.20. Adresa reþelei este 55.91.224.0, iar adresa calculatorului din cadrul reþelei este 0.0.3.20.

Dacã numerotarea asta vi se pare confuzã, nu sunteþi singurii.

Informaþia purtatã de o adresã ºi o mascã este foarte importantã: un calculator ºtie cã dacã ajunge la un calculator dintr-o reþea (oricare), atunci ajunge la orice alt calculator din acea reþea. Cu alte cuvinte, toate calculatoarele care încep cu acelaºi numãr de reþea (în exemplul de mai sus cu biþii 55.91.224.0) sunt direct conectate unul la altul.

De asemenea, acest lucru simplificã enorm tabelele de rutare ale ruterelor: un ruter nu trebuie sã ºtie drumul de parcurs pentru fiecare calculator care inițiază cu 55.91.224.0: ajungã sã ºtie unul singur, pentru cã aceste calculatoare sunt toate la un loc.


[În trecut adresele din Internet aveau masca implicitã (se deducea din adresã ºi se împãrþeau în 3 clase mari, numite A, B ºi C. Aceastã organizare este acum depãºitã, aºa cã nu o menþionãm decît în trecere, pentru a nu spori confuzia. Alte douã clase de adrese speciale, D ºi E, existã în continuare. Adresele de clasã D sunt folosite în Mbone, menþionat mai jos. Cele de clasã E sunt nefolosite.]



Interfaþa cu sub-reþeaua: ARP, ifconfig
Administratorul de sistem configureazã un calculator ca la pornire sã-ºi iniþializeze adresele (ºi mãºtile) pe toate interfeþele. Adresa se poate iniþializa ºi inspecta pe o staþie Unix cu comanda ifconfig (InterFace CONFIGuration). Iatã un exemplu de informaþie pentru o interfaþã aºa cum este el tipãrit de ifconfig:


# ifconfig le0
le0: flags=63<UP,BROADCAST,NOTRAILERS,RUNNING>
inet 132.236.102.10 netmask ffff0000 broadcast 132.236.0.0

Numele interfeþei este le0, care vine de la Local Ethernet 0 (nu existã o regulã pentru cum aratã un nume de interfaþã; depinde de tipul sistemului de operare; pe anumite sisteme Unix puteþi afla toate interfeþele cu comanda ifconfig -a). Mai aflãm cã adresa IP este 132.236.102.10, ºi cã masca (tipãritã în baza 16) este 255.255.0.0. Cu alte cuvinte, adresa reþelei este formatã din primii doi octeþi (132.236.0.0), iar adresa calculatorului din aceastã reþea este 0.0.102.10.

[Prin convenþie, într-o reþea nu poate exista Niciun calculator cu o adresa numai din cifre 0 sau numai din cifre 1. Aceste adrese sunt rezervate pentru alte scopuri, pe care le vom ignora aici.]

Calculatorul de mai sus, chiar dacã ºtie numai acest lucru ºtie un lucru foarte important: cã toate celelalte calculatoare care au adresele de forma 132.236.xxx.xxx sunt accesibile direct prin interfaþa le0. Cu alte cuvinte, dacã dau ca destinaþie un astfel de calculator, nu este nevoie de Niciun fel de ``forwarding'': pachetul poate fi pus direct pe interfaþa le0 ºi el va ajunge la destinaþie imediat!

Cum se poate aºa ceva? O mare parte din reþelele locale au o proprietate foarte interesantã: comunicaþia în ele se face prin ``difuzare'': cînd cineva pune un pachet în reþea absolut toatã lumea din reþea vede acel pachet. De altfel este uºor de înþeles: Ethernet-ul seamãnã tehnologic cu televiziunea prin cablu, în care un transmiþãtor pune un semnal pe o sîrmã ºi toþi îl aud. Toþi se uitã la pachet, dar numai cel cãruia îi este adresat îl copiazã în memoria proprie. (Destinatarul se auto-identificã comparînd adresa destinaþiei din antetul pachetului cu propria lui destinaþie.)

[Era prea frumos ca sã fie adevãrat: lucrurile sunt în realitate ceva mai complicate (deºi conceptual asta e ideea). Întotdeauna reþeaua localã are la rîndul ei propriile mecanisme de identificare ºi numire a calculatoarelor. Deºi este adevãrat cã fiecare calculator de pe un cablu Ethernet5 le poate auzi pe toate, comunicaþia se face de obicei tot între perechi de calculatoare astfel: fiecare calculator are o adresã Ethernet, care este unicã pe glob, pentru cã fiecare fabricant de plãci Ethernet a promis asta unei autoritãþi centrale. Cînd un calculator pune un pachet pe un cablu, indicã ºi adresa Ethernet a destinaþiei.

O interfaþã plasatã pe o reþea Ethernet are deci (pe lîngã adresa IP) ºi o adresã Ethernet. Cînd calculatorul vrea sã comunice cu altul din acelaºi Ethernet, trebuie sã indice de fapt adresa Ethernet a destinaþiei, pentru cã reþeaua Ethernet habar-n-are de adrese IP. Pentru asta fiecare calculator menþine o tabelã de corespondenþe: pentru fiecare adresã IP din reþeaua localã ºtie ce adresã Ethernet corespunde. Tabela asta se construieºte cu susținerea unui alt protocol, numit ARP (Address Resolution Protocol).


Pentru cazul unor reþele ca Ethernet-ul se foloseºte proprietatea de ``broadcast'' a reþelei: cînd vrei sã-i trimiþi ceva lui 1.2.3.4 ``strigi'' pe Ethernet cu ajutorul unui pachet special: ``Bãi, care ai adresa IP 1.2.3.4?''. Cel în seamã vede pachetul tãu Ethernet, care conþine adresa ta Ethernet, aºa cã poate sã-þi rãspundã cu un alt pachet, din care afli corespondenþa între adresele sale IP ºi Ethernet.
Pentru reþele în care nu se poate face broadcast administratorii configureazã un server excepțional care ºtie toate traducerile;
În Unix puteþi inspecta tabela ARP cu comanda arp].


Tabelele de rutare
Ce ne facem însã atunci cînd vrem sã comunicãm cu un calculator care nu este conectat în aceeaºi reþea localã cu noi? Pachetul nostru va trebui sã treacã prin mai multe gateway-uri pînã la destinaþie. Problema care se pune pentru calculatorul meu este: ``care este inițialul gateway''?

Informaþia de acest gen este menþinutã de nivelul IP într-o tabelã de rutare. Aceastã tabelã descrie pentru fiecare grup de adrese interfaþa care trebuie folositã pentru a ajunge la ele ºi întâiul calculator cãruia datele trebuie sã-i fie trimise.

Cum aratã tabela de rutare ºi de unde vin informaþiile din ea?

Rãspunsul la aceastã întrebare se poate obþine în trei feluri diferite, depinzînd de importanþa calculatorului care pune întrebarea. Putem distinge trei feluri de calculatoare conectate în Internet, dupã cum ilustreazã figura 1.



Figure 1: Fragment din Internet



Frunze:
orice calculator care are o singurã interfaþã este o ``frunzã'' (termen împrumutat din teoria grafurilor) (le-am notat cu A în figurã;
Rutere ``mici'':
un astfel de calculator separã o reþea relativ micã de restul Internet-ului; toate pachetele care trec dintr-o parte într-alta trebuie sã treacã prin el (B în figurã.
Rutere din backbone:
``miezul'' Internet-ului aratã ca o mare pînzã de pãianjen; aceasta este ``coloana vertebralã'' a Internet-ului, formatã din trunchiuri de mare vitezã care se încruciºeazã în rutere. Despre un astfel de ruter nu se poate spune cã ``taie'' Internet-ul în douã pãrþi (C în figurã.
Modul în care funcþioneazã cele trei moduri de calculatoare din punct de vedere al rutãrii este complet diferit.


Rutele implicite (default)
Frunzele trebuie sã ºtie care este ruter-ul ``mic'' care leagã propria lor reþea de Internet. În figura anterioarã, calculatorul A1 trebuie sã ºtie cã reþeaua sa localã are ca legãturã pe B1. Acest lucru este de obicei configurat de administratorul reþelei.

Atunci cînd A are de trimis un pacheþel la o adresã, algoritmul lui va fi urmãtorul:


Dacã pachetul este pentru reþeaua localã, atunci pachetul este transmis pe interfaþã proprie indicînd destinaþia doritã;
Altfel pachetul este înaintat calculatorului B1.
De ce? Pentru cã nu existã alt drum spre omenirea dinafarã decît prin B1. B1 este ceea ce se numeºte ``ruter implicit'' (default router) pentru A1; majoritatea pachetelor se vor duce prin el.


route ºi netstat
Dacã frunza ruleazã sistemul de operare Unix, atunci comanda cu care se adaugã ºi ºterg rute în tabela de rutare se numeºte route. De obicei calculatorul executã un script de iniþializare la boot-are prin care instaleazã ruterul implicit. Puteþi vedea toate rutele instalate ale unui calculator cu comanda netstat -r, de la NETwork STATistics, Routes. Ca în desenul nostru, uneori frunzele pot accesa simultan mai multe porþi diferite spre Internet; de obicei una dintre ele este declaratã iniþial poartã implicitã.

Iatã de exemplu rezultatul acestei comenzi pe un calculator frunzã:


# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
128.2.0.0 * 255.255.0.0 U 1500 0 0 eth0
127.0.0.0 * 255.0.0.0 U 3584 0 0 lo
default 128.2.254.36 0.0.0.0 UG 1500 0 0 eth0

De aici aflu cã:


Interfaþa eth0 este conectatã direct (adicã nu prin intermediul unui gateway) reþeaua cu numãrul 128.2.0.0 (masca 255.255.0.0). U înseamnã ``up'', adicã ``funcþioneazã'';
Interfaþa lo este conectatã direct la reþeaua 127.0.0.0 (aceasta este o interfaþã fictivã prezentã în toate calculatoarele; adresele care încep cu 127 sunt rezervate pentru utilizãri speciale. De exemplu adresa 127.0.0.1 reprezintã întotdeauna calculatorul local -- este echivalentul pronumelui ``eu'');
În fine, interfaþa eth0 ne leagã la o reþea pe care se aflã ruterul implicit, care este 128.2.254.36. Masca 0.0.0.0 ne aratã cã acesta este un ruter implicit, deci orice pachet pentru o adresã care nu se potriveºte cu celelalte trebuie trimisã lui.

Ruterele ºi coloana vertebralã (backbone)
Pentru celelalte tipuri de calculatoare situaþia este diferitã. Un ruter ca B poate fi încã configurat manual: el trebuie sã ºtie care sunt toate frunzele pentru care el este ``responsabil''. Un astfel de calculator va schimba permanent informaþii despre topologia reþelei cu vecinii sãi. Protocolul prin care ruterele schimba informaþii se numeºte protocol de rutare. La ora actualã sunt standardizate aproape o duzinã de astfel de protocoale pentru Internet. În figura noastrã B-urile vor transforma informaþii: fiecare îi va spune celuilalt cu ce calculatoare ``frunzã'' este direct conectat, iar ambele îi vor raporta lui C2 acest lucru.

Caracteristica centralã a unui astfel de ruter (B) este cã trebuie sã memoreze relativ puþine informaþii în tabela de rutare (zeci sau sute de înregistrãri), putîndu-se baza în continuare pe rute implicite, care trec prin cel mai apropiat ruter de tip C.

Astfel de rutere pot fi tot staþii de lucru sau calculatoare personale rulînd Unix, sau calculatoare specializate (cum vom vedea mai jos cã sunt folosite întotdeauna pentru ruterele de tip C). Foarte adesea astfel de rutere ruleazã ceea ce se numesc ``ziduri de foc'' (firewalls). Acestea sunt programe speciale care inspecteazã fiecare pachet care trece prin ruter ºi interzic transferul unor pachete suspicioase. Acest lucru se face pentru a preveni atacuri informatice prin reþea ºi a restrînge ºi controla debitul de informaþii din/spre reþeaua localã.


Protocoale de rutare
Ruterele de tip C nu pot fi configurate manual; cel mai important rațiune este cã o reþea mai mare suferã în mod frecvent schimbãri, care sunt greu de centralizat ºi administrat. Din cauza asta astfel de rutere calculeazã singure topologia reþelei.

Ruterele de tip C sunt întotdeauna calculatoare special construite pentru acest scop; au sisteme de operare speciale, nu au discuri (folosesc memorii nevolatile flash pentru a þine sistemul de operare), pot suporta foarte multe plãci de reþea (zeci simultan) ºi nu fac tot timpul altceva decît sã permitã administrarea reþelei ºi calculul de tabele de rutare. Cam 80% din ruterele din Internet sunt confecționate de firma Cisco Systems (http://www.cisco.com) din Statele Unite. Un ruter de mare performanþã poate transfera date de ordinul a 10Gbps (giga biþi pe secundã!

Sarcina unui ruter de tip C este de cu totul altã naturã decît cea a ruterelor de tip A sau B. Spre deosebire de acelea, un ruter de tip C trebuie sã ºtie întreaga topologie a Internet-ului, ºi nu numai reþelele care se învecineazã direct cu el.

Ca sã înþelegem de ce se întîmplã acest lucru sã considerãm ruterele C2 ºi C3 din figura de mai sus. Ce se întîmplã dacã C2 primeºte un pachet pentru un calculator din reþeaua conectatã la C3? Dacã fiecare C ºi-ar cunoaºte numai vecinii imediaþi, atunci C2 n-ar avea de unde sã ºtie cã vecinul sãu, C1 este la rîndul lui vecinul lui C3. Din cauza asta fiecare ruter de tip C va spune tuturor vecinilor sãi toate informaþiile pe care le are.

Iniþial, la boot-are, un ruter C va ºti numai vecinii sãi (introduºi tot de administrator). Dupã prima rundã de comunicaþii va afla însã ºi vecinii vecinilor sãi, dupã care vecinii vecinilor vecinilor sãi, ºi aºa mai departe. Cum Internet-ul la ora actualã are un diametru în jur de 30 (adicã distanþa dintre oricare douã calculatoare trece prin mai puþin de 30 de rutere), dupã 30 de runde de comunicaþie între vecini orice ruter cunoaºte întreaga topologie a reþelei! Asta înseamnã zeci de megaocteþi de informaþie. Dar fãrã aceastã informaþie calculatoare îndepãrtate n-ar avea nicio idee cum sã ajungã unul la altul.

[În realitate tabelele de rutare ar fi foarte mari, aºa încît pentru întregul Internet se foloseºte în mod normal o adresare ierarhicã pe 3 nivele. Nivelul cel mai de jos este calculatorul, apoi reþeaua (pe astea deja le-am vãzut), iar deasupra vine sistemul autonom (Autonomous System, AS). În general un sistem autonom este o unitate administrativã. De exemplu întreaga reþea educaþionalã a României este un sistem autonom. Informaþia este apoi compactatã astfel în ruterele de tip C:


Un ruter cunoaºte topologia completã a întregului sistem autonom din care face parte;
Pentru celelalte sisteme autonome un ruter ºtie numai douã feluri de informaþii:
Ce reþele sunt în fiecare;
Ce ºir de sisteme autonome trebuie traversat pentru a ajunge la un sistem autonom anume.
Ca sã înþelegem de ce asta comprimã foarte tare informaþia, sã ne gîndim din nou la sistemul poºtal, în care o þarã ar fi un sistem autonom ºi un oraº ar fi o reþea. Sã presupunem cã toate scrisorile circulã terestru. Atunci informaþia completã de rutare între Bucureºti ºi Londra ar trebui sã fie lista tuturor oraºelor care trebuie traversate pe drum. Pe de altã parte lista sistemelor autonome ar fi numai lista þãrilor care trebuie traversate. Ideea este cã, dacã destinaþia este înafara propriului sistem autonom, dai pachetul primei þãri pe drum (îl duci în capitalã = ruter de margine al sistemului autonom), care se descurcã.

Ruterele vorbesc în Internet douã feluri distincte de protocoale de rutare, schimbînd feluri diferite de informaþie. Anumite protocoale sunt vorbite între ruterele din acelaºi sistem autonom, ºi astfel de protocoale se numesc protocoale interne. Cele mai folosite sunt RIP (Routing Internet Protocol) ºi OSPF (Open Shortest Path First).

Ruterele vorbesc cu vecinii lor din alte sisteme autonome protocoale externe. Cele mai faimoase sunt EGP (External Gateway Protocol), care este acum treptat înlocuit cu BGP (Border Gateway Protocol).]


Administrarea reþelei
Administrarea ºi configurarea unei reþele de calculatoare este o slujbã foarte interesantã, mai ales a unei reþele de mare întindere. Problema este cã adesea operatorul se aflã la foarte mare distanþã de echipamentele supravegheate, aºa cã administraþia reþelei se face... folosind reþeaua. Administratorul are conturi pe ruterele din domeniile administrate ºi le configureazã de la distanþã (presupunînd cã funcþioneazã...).

Existã un protocol particular numit SNMP (Simple Network Management Protocol, dar care nu este deloc simplu), prin care ruterele comunicã evenimente deosebite ºi prin care administratorul de reþea configureazã parametrii de funcþionare ai ruterelor.

Dar cele mai folositoare scule ale administratorului sunt douã mici programe: ping ºi traceroute.


ping
ping vine de la Packet INternet Gropper (``pachet care bîjbîie prin Internet''). Programul ping trimite la o destinaþie un pachet ICMP cu rugãmintea destinaþiei de a întoarce pachetul de îndatã ce-l primeºte. Este metoda cea mai bunã de a verifica dacã rutele între sursã ºi destinaþie sunt bine configurate (în ambele sensuri!), ºi de a mãsura încãrcarea reþelei (obþinutã din momentul de întîrziere între transmisie ºi recepþie). Iatã un exemplu de folosire a lui ping:


# ping pub.pub.ro
PING pub.pub.ro (141.85.128.1): 56 data bytes
64 bytes from 141.85.128.1: icmp_seq=0 ttl=238 time=722.7 ms
64 bytes from 141.85.128.1: icmp_seq=1 ttl=238 time=730.6 ms
64 bytes from 141.85.128.1: icmp_seq=2 ttl=238 time=825.5 ms
^C

Asta aratã cum fiecare pachet se întoarce de la adresa 141.85.128.1 dupã un timp cuprins între 722 ºi 825 milisecunde.


traceroute
traceroute afiºeazã întregul traseu al unui set de pachete spre o anumitã destinaþie (fiecare pas fãcut). Iatã un exemplu:


# traceroute pub.pub.ro
traceroute to pub.pub.ro (141.85.128.1), 30 hops max, 40 byte packets
1 GW.CS.CMU.EDU (128.2.254.36) 0.757 ms 0.738 ms 1.029 ms
2 RTRBONE.NET.CMU.EDU (128.2.1.2) 1.378 ms 1.271 ms 1.292 ms
3 nss5.psc.net (192.88.114.254) 3.46 ms 4.278 ms 3.543 ms
4 atm0-0-3.pit-bb1.cerf.net (134.24.137.21) 3.513 ms * 37.252 ms
5 atm8-0.bos-bb1.cerf.net (134.24.46.93) 15.473 ms 16.077 ms 15.966 ms
6 atm10-0.nyc-bb2.cerf.net (134.24.46.5) 20.593 ms 20.937 ms 20.022 ms
7 atm0-0-0.sr1.nyc1.alter.net (134.24.32.50) 21.252 ms 23.044 ms 21.642 ms
8 105.ATM2-0-0.XR2.NYC1.ALTER.NET (146.188.177.158) 21.338 ms 20.904 ms 20.39 ms
9 194.ATM9-0-0.GW1.NYC5.ALTER.NET (146.188.177.229) 120.15 ms 23.331 ms 22.024 ms
10 421.ATM9-0-0.BR1.NYC5.Alter.Net (137.39.30.118) 21.395 ms 22.958 ms 20.692 ms
11 225.ATM1-0-0.CR1.AMS2.Alter.Net (146.188.5.10) 104.605 ms 108.978 ms 105.051 ms
12 213.Hssi1-0.CR1.STK2.Alter.Net (146.188.2.194) 127.12 ms 128.184 ms 128.107 ms
13 Fddi0-0.GW1.STK2.Alter.Net (146.188.31.99) 143.882 ms 141.473 ms 139.756 ms
14 Taide-gw.customer.ALTER.NET (146.188.48.10) 150.409 ms 144.739 ms 142.156 ms
15 SE-STO-MFS-0.taide.net (193.219.194.145) 145.877 ms 164.948 ms 144.165 ms
16 NO-NIT-TN-0.taide.net (193.219.193.93) 164.505 ms 162.902 ms 159.266 ms
17 RO-BUC-PUB-1.taide.net (193.219.193.170) 746.259 ms 720.339 ms 791.329 ms
18 waiting.pub.ro (141.85.130.16) 706.019 ms 696.28 ms 753.865 ms
19 pub.pub.ro (141.85.128.1) 730.402 ms 718.742 ms 725.471 ms

Se vãd cei 19 paºi pe care trebuie sã-i facã un pachet plecînd de la calculatorul de pe biroul meu pînã la un calculator (pub.pub.ro) din Politehnica din Bucureºti. Numele calculatoarelor sunt afiºate atît în formã textualã cît ºi în formã IP. Pentru fiecare destinaþie sunt trimise 3 pachete, ºi timpii de propagare dus-întors sunt afiºaþi.

Putem afla multe informaþii interesante din acest tabel. Cea mai mare diferenþã de timp este între paºii 16 ºi 17: pînã la 16 pot ajunge în 150ms, dar pînã la 17 în 750ms. Asta pentru cã legãtura între 16 ºi 17 se face printr-un satelit geosincron, care zboarã la o altitudine de cam 36,000km. Semnalului electromagnetic îi trebuie cam jumãtate de secundã pentru a traversa distanþa asta în sus ºi în jos.

Ce e amuzant este cã ambele capete ale legãturii prin satelit se aflã în Europa. Prefixul ``NO'' din nume mã îndeamnã sã ghicesc cã legãtura este între Norvegia ºi România. Zic ``amuzant'' pentru cã a doua diferenþã ca mãrime este între 10 ºi 11. Legãtura 10-11 este transcontinentalã, între New York ºi Amsterdam, dar întîrzierea de propagare este de numai 80ms! Asta pentru cã foloseºte un cablu submarin, probabil de fibrã opticã.

Putem afla ºi care sunt companiile ale cãror reþele sunt tranzitate. În ordine pachetul trece prin:


NET.CMU.EDU: reþeaua universitãþii mele, Carnegie Mellon;
psc.net: Pittsburgh Supercomputing Center;
cerf.net;
ALTER.NET: o reþea a firmei UUNET Technologies;
taide.net: o reþea a þãrilor baltice;
pub.ro: reþeaua Politehnicii din Bucureºti.
Am aflat informaþii despre aceste reþele folosind whois, descrisã mai sus, interogînd baza de date de la internic.net


# whois -h rs.internic.net taide.net
Upnet Baltic Taide Network AB (TAIDE-DOM)
Radiskis Farm
Vidiskiai, 4126
LT

Domain Name: TAIDE.NET

Administrative Contact:
Bjerkeland, Vidar (VB50) E-mail
+47 9002 74 66 (FAX) +47 9027 74 66
Technical Contact, Zone Contact:
Vosylius, Saulius (SV104) E-mail
+370-2-223541
Billing Contact:
Bjerkeland, Vidar (VB50) E-mail
+47 9002 74 66 (FAX) +47 9027 74 66

Record last updated on 04-Mar-98.
Record created on 24-Aug-95.
Database last updated on 12-Apr-98 03:37:05 EDT.

Domain servers in listed order:

PARABOL.TAIDE.NET 193.219.197.130
MIDUS.TAIDE.NET 193.219.195.130


The InterNIC Registration Services Host contains ONLY non-military Domains and
POC's. Other associated whois servers:
American Registry for Internet Numbers whois server - whois.arin.net
European IP Address Allocations whois server - whois.ripe.net
Asia Pacific IP Address Allocations whois server - whois.apnic.net
US Military whois server - whois.nic.mil

Putem afla ºi alte lucruri interesante din numele ruterelor tranzitate, cum ar fi tipul reþelei locale: unde apare ``ATM'' este vorba de o reþea cu protocoale ATM, unde apare ``Hssi'' e o reþea de tip ``High Speed Serial Interface'', unde apare ``Fddi'' e o reþea de tip ``Fiber Distributed Data Interface'', o reþea cu fibra opticã. ª.a.m.d.


Alte probleme
Voi încheia aici aceastã discuþie despre Internet ºi protocoalele de rutare. În clipa asta am o listã mai mare de lucruri pe care aº fi dorit sã le spun decît de lucruri pe care am reuºit sã le povestesc.

O sã menþionez în treacãt cîteva dificultăți fascinante ale rutãrii, care influenþeazã enorm arhitectura ºi protocoalele reþelei, dar despre care va trebui poate sã revin altãdatã.


Stabilitate
Discuþiile de mai sus presupun adesea cã reþeaua funcþioneazã impecabil. Ce ne facem cînd avem de-a face cu rutere defecte, sau mai rãu, cu atacuri informatice?

De exemplu, în primele zile ale ARPAnet-ului, un ruter a avut o cãdere de memorie, care a ºters parþial tabelele de rutare, dar nu l-a scos complet din funcþiune. Ruterul a ajuns la concluzia cã se aflã la distanþã 0 de oricare alt ruter din Internet. Cînd a schimbat informaþii cu vecinii sãi, aceºti s-au bucurat cã au gãsit o rutã mai rapidã pentru pachetele lor ºi au început sã-i dea toate pachetele acestui ruter. Apoi vestea cea bunã s-a dus mai departe. În cîteva ore toate pachetele din Internet veneau direct la ruterul defect. Asta a produs o congestie enormã, care a oprit literalmente reþeaua.

Lecþia este: nu poþi construi un sistem cu 30 de milioane de bucãþi dacã nici una trebuie sã nu se strice. De atunci protocoalele de rutare au devenit din ce în ce mai robuste, fiind capabile sã tolereze malfuncþii ºi configurãri greºite în pãrþi ale reþelei. În plus ruterele sunt configurate sã se autentifice reciproc (folosind parole) ºi sã nu primeascã informaþii de rutare decît de la calculatoare de încredere. ``Încredere'' înseamnã practic sub administraþia unei organizaþii care poate fi trasã la rãspundere pentru erori, ºi eventual pedepsitã cu deconectarea totalã.

Un al doilea tip de stabilitate este urmãtorul: dacã un ruter reboot-eazã sau o nouã legãturã este introdusã sau scoasã din reþea, dupã un timp finit ajung toate ruterele de acord asupra topologiei? Deºi poate pãrea evident cã rãspunsul este ``da'', lucrurile nu stau chiar aºa; multe protocoale din Internet de fapt au mari complicații sã incorporeze astfel de tranziþii.

Un al treilea tip de problemã este cauzat de faptul cã informaþiile despre modificãri se propagã în timp, aºa cã anumite pãrþi ale reþelei funcþioneazã cu idei despre o topologie care nu mai existã! Se pot astfel dezvolta bucle de rutare, în care un pachet se plimbã în cerc între douã (sau mai multe rutere), pentru cã fiecare din ele crede cã celãlalt este mai aproape de destinaþie. Astfel de pachete sunt distruse într-o ``gaurã neagrã'' dupã ce le expirã timpul de viaþã. Inutil de spus cã astfel de nereguli sunt adevãrate coºmare pentru administratorii de reþea (care le pot crea atunci cînd introduc rute greºite), ºi sunt grozav de greu de depistat ºi depanat. (Sã observãm cã nu existã nicio garanþie cã douã pachete ale aceleiaºi transmisiuni vor merge pe acelaºi drum!)

În general, reþeaua poate dezvolta tot felul de anomalii, ca în cazul în care protocoale de rutare au ales o rutã prin Japonia între douã oraºe americane aflate la 100km unul de altul, pentru cã un segment de reþea pe acolo era mai ``ieftin''.

La ora actualã o mare parte din cercetarea Internet-ului este de naturã empiricã: dai drumul la niºte pachete ºi dupã aia te miri ce se întîmplã cu ele ºi încerci sã explici.


Multicast
O problemã absolut fascinantã care a fost rezolvatã cu succes este transmisiunea spre multiple destinaþii simultan. Anumite rutere, care vorbesc un protocol special, sunt grupate într-o ``reþea virtualã'' numitã MBONE (Multicast Bone), pe care ceea ce un calculator trimite primesc toate cele interesate. Am vãzut astfel în direct pe monitorul meu aterizarea navetei spaþiale, transmisã de la NASA. Un fel de televiziune prin cablu, dacã vreþi, dar cu potenþiali milioane de receptori oriunde în lume ºi a cãrei topologie se schimbã permanent.


Rutare mobilã
O altã problemã colosalã a fost rezolvatã: cum poþi comunica cu un calculator care umblã tot timpul? Presupunerile noastre despre faptul cã toate calculatoarele cu adrese în aceeaºi reþea sunt la un loc nu mai sunt valabile. Scheme deosebit de ingenioase permit acum unui individ sã cãlãtoreascã oriunde în lume ºi sã foloseascã permanent Internet-ul. Schema este analoagã telefoniei celulare: calculatorul mobil îºi schimbã tot timpul ruterul implicit, dar detaliile sunt mult mai complicate.

Pe mãsurã ce ºtii mai multe despre Internet te minunezi mai tare!





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

Footnotes
...http://www.roedu.net)1
Cele mai multe cunoºtinþe despre Internet le-am cãpãtat lucrînd ca administrator la acest nod în 1995; în continuare administraþia nodului este fãcutã în mare parte de studenþi ai Politehnicii.
... tie2
De fapt unul dintre protocoalele din Internet, TCP, se ocupã chiar de asta: retransmite copii ale pachetelor care par sã se fi pierdut. În articolul de fatã însã nu vom ajunge ``pînã'' la TCP.
... tea3
Fiecare pachet are un contor care scade spre zero la fiecare pas fãcut.
... local4
Se întîmplã ca programe de pe acelaºi calculator sã comunice între ele folosind protocoalele de reþea; în acest caz sursa ºi destinaþia pachetelor vor fi identice.
... Ethernet5
Puteþi substitui în loc de Ethernet orice alt tip de reþea localã; lucrurile vor sta la fel.

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




nu shtiu daca sta cineva sa citeasca tot (nik yo nu am citit dar cat am citit era intereseant )
_________________
Rutarea în Internet Rutarea în Internet
Sa Hackeresti e un vis dar sa fi hackerit e cosmar
wWw.Invo4u.Lx.Ro
Sus
Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
Afiseaza mesajele pentru a le previzualiza:    Subiectul anterior : Subiectul urmator  
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului WwW.Hack-Library.MyForuM.Ro -> Noobs Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum

Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro