 |
|
|
| Autor |
Mesaj |
florin21 Admin Forum

Data inscrierii: 20/Apr/2007 Mesaje: 173
|
Trimis: 13/05/2007 17:46 Titlul subiectului: Rutarea in Internet |
|
|
Internet-ul: concis 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 intre calculatoarele Pentagonului. Reþeaua trebuia sã satisfacã douã cerinþe:
Sã lege intre ele scumpele calculatoare ale agenþiei ºi eventual ale altor centre de cercetãri;
Sã reziste cu succes in 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 in 1966 iar in 1969 primul prototip care lega 4 calculatoare, amplasate la mai numeroase 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 inchiriate). 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 in ambele reþele, dar au construit ansamblul in aºa fel incit cele douã reþele ingrediente sã poatã fi administrate ºi dezvoltate independent, fãrã intervenþii speciale ale unei autoritãþi centrale. De asemenea, un factor crucial in stil a fost decizia ca reþeaua sã poatã opera in 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. Multe alte universitãþi ar fi dorit insã 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 diferite au adoptat standardele propuse in ARPAnet pentru comunicaþie ºi au putut interopera. La inceputul anilor '80 aceastã federaþie de reþele, din care ARPAnet era doar o pãrticicã, s-a numit ``Internet''. Numele inseamnã ``inter = intre'', ``net = reþele'', indicind faptul cã protocoalele îngăduie comunicarea intre mai multe reþele diverse structural.
Internet a crescut cu o vitezã uluitoare, legind din ce in 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 in afara Statelor Unite, cuprinzind instituþii de pe toate continentele. Dupã cãderea cortinei de fier el a devenit accesibil ºi in 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 in scenã o cantitate enormã de participanþi. în 1993 ARPAnet a fost complet desfiinþatã. Suportul federal pentru reþea a fost incetat perfect pe 1 mai 1995; NSF continuã sã sponsorizeze accesul unor universitãþi. La ora actualã comerþul pe Internet ºi tehnologiile Internet constituie 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, in 1994, la o valoare la bursã de peste 1 miliard (sic!) de dolari, in 1995, semnificã importanþa economicã crescindã a reþelei.
O adevãratã industrie de Internet Service Providers (ISP): firme care oferã servicii de conexiune la Internet au apãrut in toatã lumea. La ora actualã in 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 in 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 devenit 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; in 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 creștere uluitoare care intrece 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 compus 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 in 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 inceput, 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 transforma bujiile la maºinã in timp ce merge!) IETF iºi publicã deciziile in niºte documente numite ``Request For Comments (RFC)'' (Cerere de comentarii), ºi care sunt adoptate prin consensul celor implicaþi in funcþionarea Internet-ului. RFC-urile specificã totalitatea regulilor pe care trebuie sã le respecte calculatoarele care comunicã in 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 citeva 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 in 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 intre 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 foarte generos, ºi deloc simplu; tratamentul pe care il 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, sirmele ºi comenzile administratorilor care opereazã aparatele ``reale''. Voi incerca in acest articol sã le ating pe amindouã.
Voi utiliza adesea analogii cu o altã reþea realã care prezintã oarecare similitudini cu Internet-ul: poºta. La nivelul la care discutãm in acest articol Internet-ul are o singurã misiune: ii dai niºte date (grupate intr-un pachet) ºi ii 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ã in 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. Cind intilneºti un recunoscut ii intinzi mina dreaptã, ºi el þi-o intinde pe a lui; asta e o regulã dintr-un protocol. Protocoalele fac sã ne inþelegem unii cu alþii.
Pentru ca douã calculatoare sã poatã comunica unul cu celãlalt amindouã trebuie sã respecte aceleaºi reguli. Ingineria programãrii ne invaþã cã pentru a construi sisteme complexe trebuie sã le spargem in 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 sirmã valoarea 0 ºi alteia 1; protocolul acesta probabil specificã care sirmã ce valoare carã, cit timp trebuie sã dureze un semnal pentru ``1'', care este limita intre 0 ºi 1, etc.
Din cauza interferenþelor electrice semnalele propagate printr-o sirmã pot fi stricate. Un alt protocol specificã cum anume codificãm un mesaj in aºa fel incit atunci cind o eroare se strecoarã in el avem ºanse s-o detectãm.
ªi tot aºa, pentru fiecare problemã avem un alt protocol. Protocoalele astea se folosesc impreunã; de exemplu cele douã de mai sus se vor folosi la cele două 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 in reþele avem de-a face cu o ``stivã'' de protocoale. De fapt Internet-ul foloseºte mai mult de o duzinã de protocoale in mod curent, care fiecare rezolvã o altã problemã.
Protocoalele bine proiectate pot fi vãzute ca niºte piese de Lego, care se imbinã 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 impreunã 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 folosite de calculatoarele din Internet se numesc IP (Internet Protocol) ºi TCP (Transport Control Protocol). TCP a fost proiectat inainte de a exista teribil de 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 intr-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 |
+------------------------+------+
______|___________
| |
+-----+ +------+
| ARP | | RARP |
+-----+ +------+
\_______ _________/
|
+---------------------------+
| Protocolul retelei locale |
+---------------------------+
Alte reþele
Nu trebuie sã rãminem 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.
Pinã in anii '90 nu era deloc clar cã suita de protocoale folosite in 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 intreaga lume folosesc in 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 in 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 incã 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 excepțional de bine testat: funcþioneazã incontinuu de aproape 30 de ani. Lumea a invãþat o grãmadã de lecþii despre proiectarea reþelelor cu Internet-ul, care au fost inglobate in structura lui. Nimeni nu poate de fapt inþelege funcþionarea unui sistem atit de complex, cu atit mai puþin prezice. Chiar dacã alte protocoale sunt proiectate, nu este deloc limpede cã vor funcþiona la fel de bine in practicã. De altfel la inceputul anilor '90 se preconiza ca Internet-ul sã fie desfiinþat ºi inlocuit cu o reþea care foloseºte protocoale standardizate internaþional. Acest lucru nu s-a intimplat, ºi a devenit clar cã nu se va mai intimpla niciodatã.
Internet-ul: o reþea de reþele
Observaþia cheie pe care trebuie sã o facem ca sã inþ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 intre ele, fiecare cu fiecare, intr-un oarecare mod. Cel mai rãspindit fel de reþea este Ethernet, care leagã mai multe calculatoare intre ele folosind un cablu coaxial. Mai avem calculatoarele care vorbesc unele cu altele prin modemuri, folosind 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 cumplit de variate 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 intre locuitori; in unele locuri obiectele se transportã cu camioane, in alte locuri cu avioane (de exemplu in Hawaii, probabil). Fiecare þarã are propria ei reþea de distribuþie. Dacã toate þãrile din lume vor sã schimbe intre ele scrisori (ceea ce se ºi intimplã), atunci ele cad de acord asupra unui standard comun, independent de modul in care-ºi transportã obiectele. De pildã faptul cã se folosesc timbre, ºi asupra modului in 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 principal acestui protocol este sã impingã pachetele de la un calculator sursã la o destinaþie din aproape in aproape, utilizând legãturile existente intre vecini. Dacã problema asta vi se pare simplã atunci incercaþ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 in bucãþele atunci cind trebuie sã traverseze o reþea ale cãrei caracteristici nu încuviințează tranzitul pachetelor mari. Dar asta e mai puþin interesant.) IP este descris in detaliu in standardul RFC 791.
[IP este un protocol care mutã pachetele care i se dau ``din afarã''. în ``interior'' Internet-ul foloseºte impreunã cu IP un protocol singular 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 in 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 componente poate comunica oricind direct, fãrã alte intervenþii. Vom vedea iute cum aflã un calculator care sunt vecinii lui imediaþi; aceasta este o problemã de configurare care cade in 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'' intre 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'' (``inaintare''). 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 aproximativ ``ruting'', pe cind 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 moduri de ``gateways'', dar noi in acest articol o sã ne preocupãm cu preponderenþã de cele care se numesc ``rutere'' (``router'' in englezã). Un ruter este deci in 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 in toþi membrii reþelei (de altfel aceastã informaþie este extraordinar de volatilã: in 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 in circã.
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 cind 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 intotdeauna mai aproape de destinaþie; dacã fiecare ruter care primeºte un pachet il 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 inainte 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 in intreaga lume ``upgrade''. Atunci reþeaua trebuie sã poatã funcþiona cu pãrþi din ea rulind protocoale mai avansate (care, desigur, trebuie sã rãminã compatibile (backwards compatible) cu versiunile anterioare).
Versiunea curentã a protocolului IP este 4. Practic toate calculatoarele din Internet ruleazã versiunea 4, numitã ºi IPv4. Citeva calculatoare ruleazã versiunea experimentalã urmãtoare, incã 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 decit pentru un om, un obiect care nu are un nume nu existã! Numele calculatoarelor din Internet sunt intregi 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 indicind in 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ã in Internet. Pentru a asigura acest lucru adresele IP sunt alocate de o autoritate centralã in grupe unor sub-autoritãþi. Fiecare sub-autoritate apoi alocã adresele la rindul ei. De exemplu Politehnica din Bucureºti a primit 65536 de adrese, care toate incep cu octeþii 141.85 (deci adresele intre 141.85.0.0 ºi 141.85.255.255). Politehnica apoi a impãrþit adresele fiecãrui departament sau laborator, etc. în felul acesta responsabilitatea poate fi relativ clar trasatã.
Dacã un calculator intr-o anumitã parte a Internet-ului iºi alocã o adresã care nu i se cuvine in cel mai bun caz nu va funcþiona, iar in 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 diferite ale reþelei. în principiu puteþi afla informaþii despre un anumit calculator, sau administrator, sau altceva tastind whois informatie-de-aflat.
Existã deci teoretic 232 adrese IP diferite, ceea ce inseamnã peste 4 miliarde. Aparent adresele ar trebui sã ajungã, insã in 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 inapoi.
[Nu indiferent ce fel de reþea necesitã o administrare atit de grijulie a adreselor; existã standarde de reþele in care adresele au o astfel de structurã incit intervenþia administratorului este inutilã; astfel de reþele se numesc ``plug-and-play'', pentru motive evidente. Ethernet este o astfel de reþea: oricind iei douã calculatoare care vorbesc Ethernet ºi le pui laolaltã ºi se vor inþelege fãrã nici un fel de configurare! Reþelele din IPv4 necesitã administrare pentru cã sunt prea puþine.]
Atunci cind un calculator vrea sã trimitã date spre un altul va pune datele intr-un pachet (sau mai multe), ºi la inceputului 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 inainta pachetul.
Reþele ºi noduri
Pentru a simplifica problema rutãrii, adresele in Internet nu sunt ``plate'', ci ierarhice. Asta inseamnã cã o adresã dã ºi o oarecare indicaþie despre traseul care trebuie urmat pinã la acea adresã.
Ca sã inþelegem mai bine diferenþã, numele unui individ este dintr-un spaþiu de nume plat: nu-þi spune absolut nimic despre locul in 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þi indicã cu o precizie din ce in ce mai mare (dacã citeºti de jos in sus) unde este destinaþia. O adresã de genul:
4108 Wean Hall
Carnegie Mellon University
4000 Forbes Avenue
Pittsburgh, PA 15217
USA
iþi spune cã locul este in 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 in 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, avind insã 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 insoþ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 intr-o reþea se numeºte pe englezã ºi ``gazdã'' -- host.) Masca este intotdeauna un ºir de biþi ``1'' consecutivi plecind de la cel mai important.
Iatã un exemplu de o adresã insoþitã de o mascã, de data asta scrisã ºi in 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 absolut orice alt calculator din acea reþea. Cu alte cuvinte, toate calculatoarele care incep cu acelaºi numãr de reþea (in 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 incepe 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 impãrþeau in 3 clase mari, numite A, B ºi C. Aceastã organizare este acum depãºitã, aºa cã nu o menþionãm decit in trecere, pentru a nu mări confuzia. Alte douã clase de adrese speciale, D ºi E, existã in continuare. Adresele de clasã D sunt utilizate in 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ã in 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, intr-o reþea nu poate exista nici un 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 nici un 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 in ele se face prin ``difuzare'': cind cineva pune un pachet in reþea absolut toatã mulțimea din reþea vede acel pachet. De altfel este uºor de inþeles: Ethernet-ul seamãnã tehnologic cu televiziunea prin cablu, in care un transmiþãtor pune un semnal pe o sirmã ºi toþi il aud. Toþi se uitã la pachet, dar numai cel cãruia ii este adresat il copiazã in memoria proprie. (Destinatarul se auto-identificã comparind adresa destinaþiei din antetul pachetului cu propria lui destinaþie.)
[Era prea elegant ca sã fie adevãrat: lucrurile sunt in realitate ceva mai complicate (deºi conceptual asta e ideea). întotdeauna reþeaua localã are la rindul 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 intre 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. Cind 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 lingã adresa IP) ºi o adresã Ethernet. Cind 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: cind 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 in 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 intre adresele sale IP ºi Ethernet.
Pentru reþele in care nu se poate face broadcast administratorii configureazã un server special care ºtie toate traducerile;
în Unix puteþi inspecta tabela ARP cu comanda arp].
Tabelele de rutare
Ce ne facem insã atunci cind vrem sã comunicãm cu un calculator care nu este conectat in aceeaºi reþea localã cu noi? Pachetul nostru va trebui sã treacã prin mai multe gateway-uri pinã la destinaþie. Problema care se pune pentru calculatorul meu este: ``care este debutantul gateway''?
Informaþia de acest gen este menþinutã de nivelul IP intr-o tabelã de rutare. Aceastã tabelã descrie pentru fiecare grup de adrese interfaþa care trebuie folositã pentru a ajunge la ele ºi inițialul 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ã intrebare se poate obþine in trei feluri diferite, depinzind de importanþa calculatorului care pune intrebarea. Putem distinge trei feluri de calculatoare conectate in Internet, dupã cum ilustreazã figura 1.
Figure 1: Fragment din Internet
Frunze:
orice calculator care are o singurã interfaþã este o ``frunzã'' (termen imprumutat din teoria grafurilor) (le-am notat cu A in figurã);
Rutere ``mici'':
un astfel de calculator separã o reþea relativ micã de restul Internet-ului; toate pachetele care trec dintr-o parte intr-alta trebuie sã treacã prin el (B in figurã).
Rutere din backbone:
``miezul'' Internet-ului aratã ca o mare pinzã de pãianjen; aceasta este ``coloana vertebralã'' a Internet-ului, formatã din trunchiuri de mare vitezã care se incruciºeazã in rutere. Despre un astfel de ruter nu se poate spune cã ``taie'' Internet-ul in douã pãrþi (C in figurã).
Modul in care funcþioneazã cele trei feluri 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 cind 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 indicind destinaþia doritã;
Altfel pachetul este inaintat calculatorului B1.
De ce? Pentru cã nu existã alt drum spre lumea dinafarã decit 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 in 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 in 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 inseamnã ``up'', adicã ``funcþioneazã'';
Interfaþa lo este conectatã direct la reþeaua 127.0.0.0 (aceasta este o interfaþã fictivã prezentã in toate calculatoarele; adresele care incep cu 127 sunt rezervate pentru utilizãri speciale. De exemplu adresa 127.0.0.1 reprezintã intotdeauna 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 incã 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 schimba informaþii: fiecare ii va spune celuilalt cu ce calculatoare ``frunzã'' este direct conectat, iar ambele ii vor raporta lui C2 acest lucru.
Caracteristica centralã a unui astfel de ruter (B) este cã trebuie sã memoreze relativ puþine informaþii in tabela de rutare (zeci sau sute de inregistrãri), putindu-se baza in 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 rulind Unix, sau calculatoare specializate (cum vom vedea mai jos cã sunt folosite intotdeauna 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 restringe º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 pretext este cã o reþea mai mare suferã in 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 intotdeauna 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 decit sã permitã administrarea reþelei ºi calculul de tabele de rutare. Cam 80% din ruterele din Internet sunt fabricate 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ã decit cea a ruterelor de tip A sau B. Spre deosebire de acelea, un ruter de tip C trebuie sã ºtie intreaga topologie a Internet-ului, ºi nu numai reþelele care se invecineazã direct cu el.
Ca sã inþelegem de ce se intimplã acest lucru sã considerãm ruterele C2 ºi C3 din figura de mai sus. Ce se intimplã 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 rindul 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ã întâia rundã de comunicaþii va afla insã º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 calibru in 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 intre vecini orice ruter cunoaºte intreaga topologie a reþelei! Asta inseamnã zeci de megaocteþi de informaþie. Dar fãrã aceastã informaþie calculatoare indepãrtate n-ar avea nici o idee cum sã ajungã unul la altul.
[în realitate tabelele de rutare ar fi foarte mari, aºa incit pentru intregul Internet se foloseºte in 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 intreaga reþea educaþionalã a României este un sistem autonom. Informaþia este apoi compactatã astfel in ruterele de tip C:
Un ruter cunoaºte topologia completã a intregului sistem autonom din care face parte;
Pentru celelalte sisteme autonome un ruter ºtie numai douã feluri de informaþii:
Ce reþele sunt in fiecare;
Ce ºir de sisteme autonome trebuie traversat pentru a ajunge la un sistem autonom anume.
Ca sã inþelegem de ce asta comprimã foarte tare informaþia, sã ne gindim din nou la sistemul poºtal, in 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 intre 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 inafara propriului sistem autonom, dai pachetul primei þãri pe drum (il duci in capitalã = ruter de margine al sistemului autonom), care se descurcã.
Ruterele vorbesc in Internet douã feluri diferite de protocoale de rutare, schimbind feluri diferite de informaþie. Anumite protocoale sunt vorbite intre 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 inlocuit 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 intindere. Problema este cã adesea operatorul se aflã la foarte mare distanþã de echipamentele supravegheate, aºa cã administraþia reþelei se face... întrebuințând reþeaua. Administratorul are conturi pe ruterele din domeniile administrate ºi le configureazã de la distanþã (presupunind cã funcþioneazã...).
Existã un protocol special 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 bijbiie prin Internet''). Programul ping trimite la o destinaþie un pachet ICMP cu rugãmintea destinaþiei de a intoarce pachetul de indatã ce-l primeºte. Este metoda cea mai bunã de a verifica dacã rutele intre sursã ºi destinaþie sunt bine configurate (in ambele sensuri!), ºi de a mãsura incãrcarea reþelei (obþinutã din momentul de intirziere intre 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 intoarce de la adresa 141.85.128.1 dupã un timp cuprins intre 722 ºi 825 milisecunde.
traceroute
traceroute afiºeazã intregul 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 plecind de la calculatorul de pe biroul meu pinã la un calculator (pub.pub.ro) din Politehnica din Bucureºti. Numele calculatoarelor sunt afiºate atit in formã textualã cit ºi in formã IP. Pentru fiecare destinaþie sunt trimise 3 pachete, ºi timpii de propagare dus-intors sunt afiºaþi.
Putem afla multe informaþii interesante din acest tabel. Cea mai mare diferenþã de timp este intre paºii 16 ºi 17: pinã la 16 pot ajunge in 150ms, dar pinã la 17 in 750ms. Asta pentru cã legãtura intre 16 ºi 17 se face printr-un satelit geosincron, care zboarã la o altitudine de cam 36,000km. Semnalului electromagnetic ii trebuie cam jumãtate de secundã pentru a traversa distanþa asta in sus ºi in jos.
Ce e amuzant este cã ambele capete ale legãturii prin satelit se aflã in Europa. Prefixul ``NO'' din nume mã indeamnã sã ghicesc cã legãtura este intre Norvegia ºi România. Zic ``amuzant'' pentru cã a doua diferenþã ca mãrime este intre 10 ºi 11. Legãtura 10-11 este transcontinentalã, intre New York ºi Amsterdam, dar intirzierea 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, interogind 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 incheia 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 decit de lucruri pe care am reuºit sã le povestesc.
O sã menþionez in treacãt citeva probleme 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 cind avem de-a face cu rutere defecte, sau mai rãu, cu atacuri informatice?
De exemplu, in 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. Cind 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 inceput sã-i dea toate pachetele acestui ruter. Apoi vestea cea bunã s-a dus mai departe. în citeva 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 in ce mai robuste, fiind capabile sã tolereze malfuncþii ºi configurãri greºite in 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 decit de la calculatoare de incredere. ``încredere'' inseamnã 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 probleme sã incorporeze astfel de tranziþii.
Un al treilea tip de problemã este cauzat de faptul cã informaþiile despre modificãri se propagã in 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, in care un pachet se plimbã in cerc intre 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 intr-o ``gaurã neagrã'' dupã ce le expirã timpul de viaþã. Inutil de spus cã astfel de probleme sunt adevãrate coºmare pentru administratorii de reþea (care le pot crea atunci cind introduc rute greºite), ºi sunt extrem de greu de depistat ºi depanat. (Sã observãm cã nu existã nici o 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 in cazul in care protocoale de rutare au ales o rutã prin Japonia intre 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 intimplã cu ele ºi incerci 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 intr-o ``reþea virtualã'' numitã MBONE (Multicast Bone), pe care ceea ce un calculator trimite primesc toate cele interesate. Am vãzut astfel in 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 in 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 in aceeaºi reþea sunt la un loc nu mai sunt valabile. Scheme aparte de ingenioase consimt acum unui individ sã cãlãtoreascã peste tot in lume ºi sã foloseascã permanent Internet-ul. Schema este analoagã telefoniei celulare: calculatorul mobil iº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 lucrind ca administrator la acest nod in 1995; in continuare administraþia nodului este fãcutã in 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ã insã nu vom ajunge ``pinã'' la TCP.
... tea3
Fiecare pachet are un contor care scade spre zero la fiecare pas fãcut.
... local4
Se intimplã ca programe de pe acelaºi calculator sã comunice intre ele folosind protocoalele de reþea; in acest caz sursa ºi destinaþia pachetelor vor fi identice.
... Ethernet5
Puteþi substitui in loc de Ethernet orice alt tip de reþea localã; lucrurile vor sta la fel. |
|
| Sus |
|
 |
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|
|