Dupa cum cu siguranta v-ati dat seama, subiectul major al acestei rubrici este Internetul iar ideea centrala este ca acesta ne va modela viitorul. Nimic nu va mai fi ca inainte. Deja am ajuns in faza in care aproape orice subiect se discuta, Reteaua ajunge sa fie invocata intr-un fel sau altul. Daca am vorbit despre babilonia din lumea informatica, am ajuns, inevitabil, la concluzia ca Internetul a inceput sa o potenteze, sa o puna in valoare, sa o transforme dintr-o pacoste intr-o celebrare a diversitatii. Daca vom vorbi despre politica, vom ajunge probabil la concluzii asemanatoare – de pilda, este de neocolit analogia dintre globalizare si Internet. Nu-mi trece prin cap nici o tema in care, astazi, Reteaua sa nu aiba vreo implicare.
Cu toate acestea, nu prea stim ce este si cum este, de fapt, Internetul. De vina sunt, pe de-o parte, nenumaratele mituri care-l invaluie, iar pe de alta, faptul ca refuza sa se plieze unui model cunoscut. Definitia sa ne scapa mereu, pentru simplul motiv ca evolutia sa pare sa fie o continua redefinire. Iar daca nu putem sa-l definim, singura sansa care ne ramane este sa-l explicam folosind argumente istorice, analogii si comparatii. Adica sa-l povestim.
Un prim fapt bizar este ca preistoria Internetului incepe de la Sputnik, primul satelit artificial al Pamantului, care a fost lansat de Uniunea Sovietica la 4 octombrie 1957. Aceasta isprava a sovieticilor a nascut in Statele Unite teama ca progresul tehnologic al Uniunii Sovietice a fost subestimat si, de fapt, Razboiul Rece este in mare masura o intrecere pe taramul tehnologiilor. Spre deosebire de sovietici, care mobilizau munca de cercetare preponderent pe taram militar, americanii mizau in principal pe capacitatile inovative ale lumii civile. Opinia lor – corecta, dupa cum s-a dovedit – era ca ierarhiile militare nu reprezinta cadrul potrivit pentru cercetare, asa ca preferau sa finanteze proiecte din industrie si din invatamant, ceea ce reprezenta si un impuls serios dat economiei. In acest spirit, Departamentul Apararii (DoD) a creat o agentie specializata pe cercetari avansate, numita cand ARPA, cand DARPA. Aceasta variatie a titulaturii prin aparitia si disparitia literei “D” (de la Defense) este emblematica pentru impletirea caracterului civil cu cel militar.
Legenda spune ca unul dintre proiectele ARPA viza realizarea unei retele de calculatoare care sa fie indestructibila in cazul unui atac nuclear. Desi falsa, aceasta afirmatie este extrem de importanta pentru ca pune in evidenta una dintre caracteristicile fundamentale ale viitorului Internet: descentralizarea. Adevarul este ca ARPA avea nevoie de o tehnologie prin care sa conecteze computerele pe care tot ea le furniza diferitelor echipe civile (in special din universitati) care dezvoltau proiecte finantate, desigur, tot de ARPA. Iar pentru ca echipamentele epocii erau sensibile si nesigure, era nevoie de o solutie care sa asigure functionarea retelei in conditiile in care oricare parte a retelei nu functiona. Adica sa evite existenta unui asa-numit “single point of failure”.
Tehnic, problema era urmatoarea: la vremea aceea, singura metoda de interconectare a retelelor era cea inspirata de reteaua telefonica: comutarea de circuite. Adica inchiderea printr-un releu a unui circuit care sa lege, la cerere, doua computere. Dar aceasta operatie se face de o “centrala”, adica o instalatie complexa care-si impune propriile interfete, care incorporeaza o “inteligenta” proprie si care reprezinta, de fapt, tocmai acel punct nevralgic care trebuia evitat.
Din fericire, la inceputul anilor 60 a fost imaginata o tehnologie de interconectare bazata pe comutare de pachete (packet switching). Ideea este cat se poate de simpla. Datele care trebuie trimise unui computer din retea sunt fragmentate si “impachetate” in structuri numite datagrame, fiecare dintre acestea purtand in antet o informatii despre expeditor si destinatar – ca in cazul scrisorilor. Aceasta a fost gaselnita care le-a permis celor de la ARPA sa conecteze computerele de la UCLA (University of California, Los Angeles), SRI (Stanford Research Institute), UCSB (University of California, Santa Barbara) si University of Utah, formand reteaua ARPANET, stramosul Internetului.
Ideea ca Internetul este complicat este un mit. Esenta sa tehnologica este ilustrata de modul cum a functionat de la bun inceput ARPANET. Cele patru noduri (de fapt retele locale) erau interconectate prin linii telefonice (inchiriate, dar puteau fi la fel de bine comutate). Fiecare dintre ele dispunea de un mic computer (numit router) care era raspunzator de conectarea la ARPANET, dispunand de programe care asigurau dirijarea pachetelor intre computerele pe care le deserveau si celelalte routere. Programele de dirijare implementau un protocol (numit NCP – Network Control Protocol) care descria structura datagramelor, caile de acces spre diverse destinatii din ARPANET si alte caracteristici tehnice, precum si un protocol propriu, specific retelei locale.
Aceste protocoale reprezinta inima Internetului. NSP s-a dovedit prea limitat si a fost inlocuit de TCP/IP, care este de fapt o stiva de protocoale, in care fiecare nivel ofera servicii nivelului superior. In felul acesta se abstractizeaza detaliile schimbului de date. De pilda, o aplicatie nu trebuie sa se ingrijeasca de modul cum ajung datele la o aplicatie ruland pe un alt computer, ci doar sa furnizeze nivelului inferior adresa acestuia si datele ce trebuie trimise. Programele ce implementeaza nivelul inferior se ocupa de impachetarea si expedierea lor spre destinatie prin intermediul altor computere conectate, din aproape in aproape. Se poate intampla ca unele pachete sa urmeze o anumita ruta, in timp ce altele sa urmeze o alta ruta (in functie de disponibilitatea “gazdelor” de pe traseu). De asemenea, se poate intampla ca datagramele sa nu ajunga in ordinea corecta sau sa sufere erori pe parcurs. Nu e nici o problema cata vreme protocolul este implementat la ambele capete. Receptorul va restabili ordinea si va cere emitatorului retransmiterea pachetelor detectate (prin mecanismele de control, stabilite de protocol) ca fiind eronate. In mod similar se abstractizeaza suportul fizic care asigura transmisia datelor. Pentru programele care asigura transportul pachetelor sau dirijarea acestora este indiferent daca bitii vor circula prin cablu, fibra optica, unde radio sau cu basculanta de CD-uri. Nivelul inferior se ocupa cu asta.
Analogia pe care o face Andrew Tanenbaum cu conversatia a doi filozofi care nu cunosc nici o limba comuna este extrem de sugestiva. Translatorii, care cunosc o limba comuna, reprezinta nivelul inferior intr-o stiva de protocoale. In plus, protocoalele pot fi inlocuite sau pot fi schimbate dinamic, in functie de nevoile aplicatiilor. Pentru transmisii de imagine sau voce, de exemplu, se adopta de regula un protocol de transport mai relaxat din punctul de vedere a corectitudinii datelor transmise.
Caracterul public al protocoalelor este o alta caracteristica definitorie a Internetului. Pe baza protocoalelor de baza TCP/IP se pot construi oricate altele, care sa raspunda unor nevoi specifice de comunicare ale diverselor aplicatii. Cum protocolul stabileste regulile comunicarii, este clar ca trebuie sa fie cunoscut de toate partile. Sugestiv este si faptul ca standardele Internetului (protocoale, formate etc.) se cheama Request For Comments (RFC), adica o solicitare de comentarii din partea publicului.
Odata ce un standard este stabilit, oricine poate dezvolta programe care sa-l implementeze si sa dezvolte aplicatii. De pilda, HTTP este protocolul care stabileste regulile de comunicare intre serverele Web si browsere. Insa protocolul stabileste doar regulile comunicarii nu si la ce anume se poate folosi. Nimic nu ma impiedica sa folosesc protocolul pentru a dezvolta altfel de aplicatii sau de a dezvolta alte protocoale care se bazeaza pe acesta. SHTTP (Secure http) este un exemplu.
Poate e timpul sa incercam cateva concluzii. Prima dintre ele este ca Internetul nu este un lucru, ci o intelegere. Ceea ce defineste internetul nu sunt computerele, ruterele, firele sau undele hertiene, ci ansamblul de protocoale care fac posibila comunicarea.
Fiind o simpla intelegere, Reteaua nu apartine nimanui. Sau, mai corect, apartine tuturor celor care convin sa o respecte. Oricine o poate folosi si, mai mult, fiecare o poate imbunatati, fiecare ii poate adauga valoare, pentru ca intreaga valoare a Retelei sta in “capetele” ei.
Pe la mijlocul anilor 90, echipa tehnica True Voice de la AT&T a fost insarcinata sa gaseasca o metoda de a imbunatati calitatea vocii transmisa prin sistemul telefonic. Unul dintre membrii echipei, David Isenberg, a remarcat ca variantele cele mai simple (cresterea frecventei de esantionare sau schimbarea algoritmului de codare) nu puteau fi aplicate deoarece ar fi implicat schimbarea intregii retele telefonice, cu exceptia sarmelor. Reteaua telefonica este exemplul tipic de retea centralizata, in care “inteligenta” este inglobata in retea iar capetele retelei, utilizatorii, dispun de terminale cu functionalitate extrem de limitata.
Isenberg a fost printre primii care a remarcat ca inteligenta inglobata intr-o retea o face inflexibila. Cu cat reteaua este mai lipsita de elemente inteligente, cu atat este mai flexibila, mai deschisa inovatiei si expansiunii. Iar Internetul este prototipul retelei “proaste”, lipsita de inteligenta, chiar opusa inteligentei. Intreaga ei valoare este la capete, acolo unde terminale inteligente (computere, dar nu numai…) implementeaza o intelegere. Reteaua in sine nu stie sa raspunde decat unei comenzi extrem de simple: Misca bitii, proasto!
Sau, mai degraba: misca bitii, Proasto! Pentru ca prostia ei este puterea ei.