Tuneluri (tunneling)

Mihai Budiu -- mihaib+@cs.cmu.edu
http://www.cs.cmu.edu/~mihaib

11 martie 1999

Subiect:
conceptul de tunel și aplicațiile lui
Cunoștințe necesare:
cunoștințe elementare despre funcționarea rețelelor de calculatoare
Cuvinte cheie:
protocol, ruter, tunel, TCP/IP, firewall, rețea privată virtuală, mbone, difuzare, mobile-IP


Contents

Internetul: o rețea paradoxală

În urmă cu cîteva luni am avut privilegiul de a asista la o prelegere deosebit de interesantă despre evoluția Internetului. Vorbitorul era un ``guru'', unul dintre cei care au contribuit în mod esențial la crearea și dezvoltarea acestei ultime revoluții tehnologice: David Clark, cercetător la Massachussets Institute of Technology, cea mai prestigioasă universitate tehnică din Statele Unite, și probabil și din lume.

David Clark a primit doctoratul tot la MIT in 1973. După primirea doctoratului a lucrat în dezvoltarea rețelei militare ARPANET, care va deveni mai tîrziu Internetul. Dl. Clark a fost unul dintre proiectanții rețelelor token-ring, despre care am vorbit pe scurt într-un articol anterior. De la mijlocul anilor 1970 Dl. Clark a lucrat la dezvoltarea Internetului. Intre 1981 și 1989 a fost arhitectul șet al dezvoltării de protocoale pentru Internet. Dl. Clark a fost și unul dintre proiectanții sistemului de operare Multics, după care s-au inspirat cei care au creat sistemul de operare Unix. Cercetarea sa curentă este în domeniul protocoalelor și arhitecturilor pentru rețele de date de foarte mare viteză; în speță extinderea Internetului pentru a suporta trafic de timp real, alocarea de resurse și tarifare.

Expunerea domnului Clark despre Internet a fost extrem de concentrată; așa cum numai un individ cu o experiență uriașă acumulată poate să o facă, Clark a deslușit trăsăturile esențiale ale rețelei, reușind să facă, așa cum a spus chiar dumnealui, o ``introducere în Internet în 15 minute'' (restul expunerii a fost consacrat discuțiilor despre evoluția ulterioară a rețelei). Voi încerca să prezint în introducerea acestui text unele dintre ideile domnului Clark. Voi reproduce din memorie spusele dînsului; sper să nu fiu o sursă prea mare de distorsiuni. Despre Internet și istoricul său am mai scris și cu alte prilejuri în PC Report, iar copiile articolelor cu pricina sunt disponibile din pagina mea de web; nu o să mă repet aici.

Pe la începutul anilor '70, în timp ce lucram la construirea Internetului -- spunea David Clark -- am discutat cu un inginer de la AT&T1. Insul mi-a împărtășit la un pahar impresia lui despre strădania noastră: ``eu cred că sunteți țicniți; o rețea de felul ăsta nu poate să funcționeze.''

Din punctul de vedere al unei companii de telefoane, într-adevăr, Internetul este o rețea complet paradoxală; totul este cu susul în jos, cu totul altfel decît în rețeaua de telefonie.

De exemplu, în rețeaua telefonică toată ``inteligența'' se află în interiorul rețelei: centralele telefonice, releele, centralele interurbane, sunt mecanisme extraordinar de complicate, care controlează fiecare detaliu al funcționării rețelei: gestiunea apelurilor, formarea circuitelor între sursă și destinație, rezervarea de resurse (circuite) în toate centralele, semnalizarea, multiplexarea convorbirilor pe trunchiurile dintre centrale, controlul accesului la rețea (semnalizat prin tonul de ocupat), tarifarea, etc., sunt toate făcute în interiorul rețelei. Prin comparație, telefoanele, de la capătul sîrmei, sunt niște dispozitive complet inepte, incapabile de altceva decît de a codifica și decodifica vocea, și de o semnalizare primitivă (ex. sonerie, ton de ocupat, etc.).

Dimpotrivă, în Internet miezul rețelei este practic tembel, și oferă un serviciu aproape inexistent nodurilor externe; prin contrast toată inteligența se află în entitățile de la extremități (calculatoarele), care comunică între ele. Internetul nu interzice nimănui accesul, nu rezervă nici un fel de resurse pentru nimeni, nu tarifează nimic, și în general, nu oferă nici un fel de garanții.

Serviciul oferit de Internet

Dacă studiem cu atenție unicul serviciu oferit de Internet o să observăm că el sună cam așa: ``utilizatorul dă niște date rețelei, cu indicația de a le trimite undeva. Rețeaua ar putea să transporte unele dintre date, la un moment dat, pînă la capătul celălalt.''

Dacă vi se pare o exagerare, studiați din nou specificațiile protocolului numit IP, (Internet Protocol), care este executat de toate calculatoarele din interiorul rețelei (numite rutere), și o să observați că nu puteți descrie deloc mai precis funcționalitatea acestuia.

Acesta este paradoxul Internetului: o construcție atît de fenomenală (cum poate mărturisi oricine a folosit serviciile sale, de e-mail, ftp, web, telnet, telefonie, jocuri, și atîtea altele) este înălțată pe un eșafodaj atît de ``șubred'' ca IP.

Cînd inginerul de la AT&T l-a întrebat pe David Clark: ``noi am proiectat rețeaua de telefoane pentru convorbiri telefonice, și am optimizat-o la maximum pentru asta; Internetul vostru pentru ce e bun?'', David Clark i-a răspuns: ``nu am nici cea mai mică idee la ce e bun Internetul; noi am optimizat Internetul pentru... schimbare. Internetul trebuie să acomodeze orice fel de aplicație ne-ar trece prin minte, și ca atare trebuie să fie extrem de flexibil''.

În retrospectivă putem spune că proiectarea Internetului a fost un succes ingineresc fenomenal; majoritatea aplicațiilor care se folosesc de Internet astăzi nici nu puteau fi imaginate în urmă cu douăzeci de ani, și suntem abia la început, credeți-mă.

Protocolul de transport

Una dintre cheile funcționării unui sistem atît de ``fragil'' este protocolul TCP, Transport Control Protocol. Dacă două calculatoare conversează între ele prin Internet, numai ele două folosesc TCP, și nu și toate nodurile aflate pe traseul dintre ele. TCP repară toate slăbiciunile protocolului IP, transformînd Internetul într-un mediu predictibil și fiabil. Dacă rețeaua dintre calculatoare funcționează cîtuși de puțin, în sensul că livrează ceva din datele care i se dau, TCP își face treaba:

Mă voi opri aici din rememorarea conferinței domnului Clark, pentru a ataca subiectul de fond al acestui articol. Și anume voi ilustra cum pe baza protocolului IP au fost construite alte servicii sofisticate, care dau rețelei înfățișări foarte diferite.

Conceptul de tunel

Conceptul central al acestui articol este tunelul. Este un concept deosebit de simplu, dar cu aplicații uluitoare. Voi ilustra noțiunea printr-o analogie.

Într-un articol anterior, despre rutarea din Internet, comparam transmisiunea datelor prin Internet cu funcționarea sistemului poștal; analogia este destul de precisă, și o voi refolosi și aici.

Calculatoarele care comunică sunt doi cetățeni, iar Internetul este sistemul poștal. Unitatea de transmisiune este scrisoarea (pachetul de date). Un ins pune scrisoarea la poșta, iar apoi o armată de poștași, șoferi, aviatori, hamali, etc. mută scrisoarea la destinatar. Scrisorile se pierd uneori, iar poșta nu garantează că ele vor ajunge la destinație; la fel se petrec lucrurile și în Internet.

Să ne imaginăm acum că avem de a face cu o țară care nu vrea să adere la convențiile poștale internaționale, care nu recunoaște timbrele, care trimite scrisorile în pungi în loc de plicuri și la care plata se face direct funcționarilor. Să ne mai imaginăm că, din anumite motive, scrisorile noastre trebuie să traverseze această țară bizară (și nu avem un avion la dispoziție). Ce ne facem?

Sistemul poștal internațional ar putea crea în acest scop o organizație specială, cu filiale la două granițe ale acestei țări. Atunci cînd un plic trebuie să traverseze această țară, acesta este livrat la graniță, este băgat într-o pungă și plata este făcută unui funcționar, cu rugămintea de a trimite punga la cealaltă graniță. Cînd punga ajunge dincolo, cealaltă filială extrage din pungă plicul, după care îl re-inserează în circuitul poștal normal. Traseul poștal între cele două filiale se numește în terminologia Internetului ``un tunel''. Numele este destul de natural, pentru că obiectul de transportat (plicul) intră într-o zonă întunecoasă (punga) și iese abia la capătul celălalt la lumină, netulburat.

În general, avem de a face cu un tunel cînd datele (plicurile) trimise cu un anumit protocol sunt ``împachetate'' folosind un alt protocol de transmisiune (pungile), și sunt despachetate apoi la celălalt capăt. Împachetarea pachetelor se mai numește încapsulare.

Aplicații

Subrețele speciale

Pentru o vreme în arena rețelelor de comunicații s-a dus o luptă acerbă între protocoalele folosite în Internet, bazate pe IP și TCP, și o serie de protocoale standardizate de organizația mondială a telecomunicațiilor. Lupta a fost incertă pînă în urmă cu doi-trei ani; pentru o vreme balanța a înclinat în sprijinul rețelelor de tip OSI (Open System Interconnection: denumirea standardelor organizației sus-menționate); de curînd a devenit însă evident că Internetul este, cel puțin pentru următorii ani, tehnologia învingătoare.

În afară de TCP/IP și rețelele de tip OSI, există o sumedenie de alte feluri de rețele de calculatoare, în general dezvoltate de marile companii de calculatoare, toate incompatibile între ele. De pildă IBM are propriul model, numit SNA, Digital (acum Compaq) are DecNet, Apple are Appletalk, etc. Din cauza asta, la ora actuală în lume există o bază mare instalată de rețele care funcționează cu protocoale diferite.

Dar aceste rețele nu sunt sortite să rămînă izolate; ele pot fi folosite ca punți de legătură în Internet folosind conceptul de tunel. Figura 1 ilustrează acest fenomen cu un caz real.

Figure 1: Un tunel X25 între rețeaua universității Politehnica din București și rețeaua Universității din București. Pachetele IP de la Poli sunt ``împachetate'' de către un ruter multiprotocol (care știe atît IP cît și X25) ca date în pachetele X25, și sunt despachetate de ruterul de la Universitate și transmise apoi în rețeaua locală.
\begin{figure}\centerline{\epsfxsize=12cm\epsffile{x25.eps}}\end{figure}

Din motive tehnice, la începutul formării rețelei universitare române, acum numită RoEduNet, cîteva rețele erau conectate între ele folosind un protocol de comunicații numit X25, care este un protocol OSI. Legătura la Internetul mondial era oferită de Politehnica din București (PUB: ``Politehnica'' University of Bucharest, pub.ro; între Pub și alte cîteva universități era însă instalată o rețea X25; la Pub se afla un switch X25 (un switch este un ruter, în terminologia X25), la care se cuplau mai multe linii telefonice închiriate, care veneau de la alte universități. Și la ora actuală, Universitatea din București (unibuc.ro) este cuplată în acest fel. Legătura între rețeaua IP (Internet) și cea X25 este făcută cu două cutii care sunt numite rutere multiprotocol. Aceste cutii știu să converseze protocoale diferite pe interfețe diferite; ruterul de la poli vorbea IP cu lumea exterioară și X25 cu switch-ul. Cele două rutere de la extremitățile rețelei X25 deschideau între ele un circuit X25, prin care apoi transmiteau de la unul la altul pachetele IP; acestea deveneau date ordinare pentru protocolul X25. Acesta nu este altceva decît un tunel, care transportă IP prin X25.

Din punct de vedere al restului lumii, rețeaua X25 nici nu există; toate celelalte calculatoare au impresia că ruterul de la Pub este cuplat direct printr-o sîrmă cu ruterul de la UniBuc; toată rețeaua X25 este complet transparentă (invizibilă).

Acest fenomen se întîlnește foarte des; de exemplu în Statele Unite compania de telecomunicații Sprint, care posedă o mare parte din coloana vertebrală a Internetului, folosește pentru asta rețeaua proprie care rulează protocolul ATM; la capetele rețelei ATM se află rutere multiprotocol IP/ATM, care formează tunele prin rețeaua ATM pentru a transporta traficul Internet.

Rețele private virtuale

O altă aplicație interesantă a tunelelor este folosită de corporațiile multi-naționale. O firmă ca IBM are rețele pe tot cuprinsul globului, așa că nu poate folosi o singură sub-rețea pentru a-și lega toate departamentele. IBM însă poate crea ceea ce se numește o rețea privată virtuală (Virtual Private Network, VPN), cum ilustrăm în figura 2.

Figure 2: O rețea privată virtuală. Cele două sedii ale unei companii, pe două continente diferite, sunt fiecare separate de Internet cu cîte un firewall. Cele două rețele sunt legate între ele printr-un tunel care trece tot prin Internet, ceea ce permite calculatoarelor din aceste două rețele să comunice între ele nestingherite.
\begin{figure}\centerline{\epsfxsize=12cm\epsffile{privata.eps}}\end{figure}

IBM asignează adrese2 și construiește toate rețelele ca și cum ar fi legate direct între ele. Să presupunem că toate rețelele de la IBM folosesc IP. Apoi, pentru fiecare rețea, ruterele de la margine construiesc tunele. Ruterul din New-York deschide o legătură la ruterul din Delhi, formînd un tunel. De aici înainte toate pachetele trimise de la New-York la Delhi sunt împachetate în pachete IP și trimise prin tunel în Delhi. Ruterul din Delhi le despachetează, după care le pune în rețeaua locală, ca și cum le-ar fi primit de la vecinul imediat.

Acesta este un fenomen foarte interesant, în care date ale unui protocol sunt împachetate în pachete ale aceluiași protocol! În analogia noastră anterioară, e ca și cum am de trimis cinci vederi din America în România, dar pentru a nu plăti cinci timbre, le pun într-un plic pe toate, le trimit cu poșta unui amic din România, pe care îl rog să le pună la Poșta Română, cu timbre mai ieftine. Protocolul folosit în ambele cazuri e același, al sistemului poștal, dar cîteodată transport scrisori în scrisori!

Un motiv pentru care corporațiile folosesc această metodă, în loc de a lega direct cele două rețele prin Internet, este securitatea. Adesea companiile restrîng dramatic accesul la informațiile din interior, mai ales pentru a preveni pirateria informatică. Accesul din exterior în rețeaua IBM se poate face numai prin niște puncte înguste (ca punctul de vamă de la frontieră), numite ``pereți de foc'' (firewall). Un administrator permite un acces extrem de limitat printr-un firewall, de pildă doar poștă electronică, dar nu și web sau ftp. Cu toate că accesul din exterior (sau chiar din interior spre înafară) este strict limitat, datorită rețelei private virtuale, calculatoarele din centrele IBM de pe cele două continente pot comunica între ele nestingherite, fără nici un fel de limitări cauzate de firewalls.

MBONE: rețeaua de difuzare

O altă aplicație extrem de interesantă a conceptului de tunel a fost construită prin teza de doctorat a lui Steve Deering, la Universitatea Stanford. Este vorba de difuzare.

Rețeaua de televiziune funcționează prin difuzare (broadcast): un post emite și toată lumea receptează. În cazul calculatoarelor comunicația este punct-la-punct: unul vorbește și unul singur ascultă. Dar există aplicații ale calculatoarelor care ar beneficia de difuzare; de exemplu teleconferințele între mai mulți participanți. În engleză se face distincție între difuzarea pe care o primește toată lumea (broadcast) și difuzarea pe care o primește doar o submulțime dintre posibilii ascultători, de pildă doar cei interesați. Ultima se numește multicast.

Implementarea difuzării în sine nu este o treabă deosebit de grea (vom vedea mai jos cum este ea realizată); problema cea mai complicată este cum poate fi implementată difuzarea în Internet, care este deja construit și nu a fost conceput pentru a suporta așa ceva. Asta este o adevărată problemă inginerească, pe care Deering a rezolvat-o cu mult succes.

Soluția lui Deering cere cooperarea unora din ruterele din Internet, pentru a fi eficace. Pentru că nimeni nu poate schimba toate ruterele dintr-o rețea cu 100 de milioane de calculatoare, care se întinde pe tot globul, soluția trebuie să funcționeze chiar dacă numai cîteva rutere sunt de acord să colaboreze, iar toate celelalte nu știu nimic despre difuzare. Vom numi ruterele care participă la mbone rutere multicast. Aceste rutere sunt relativ puține, răspîndite în toată lumea; sunt niște dispozitive experimentale. Totalitatea ruterelor multicast se numește ``coloana vertebrală de difuzare'', sau Multicast backBONE, Mbone. Mbone este operațională din 1988 (http://www.mbone.com). Harta curentă a rețelei este disponibilă la http://www.cs.berkeley.edu/~elan/mbone.html.

Ați ghicit care este tehnologia folosită? Cum se numește acest articol? Figura 3 ilustrează modul în care funcționează MBone.

Figure 3: Rețeaua virtuală de difuzare Multicast BackBone. Ruterele care înțeleg protocolul de rutare special folosit în Mbone crează între ele tunele prin care-și trimit pachetele de difuzare. Un ruter din rețeaua de difuzare multiplică un pachet destinat mai multor calculatoare pentru fiecare vecin. Tunelurile (ilustrate cu linii groase) formează o rețea virtuală, numită Mbone.
\begin{figure}\centerline{\epsfxsize=12cm\epsffile{mbone.eps}}\end{figure}

Ruterele multicast sunt configurate de administratori să știe despre alte rutere multicast. Fiecare ruter multicast este configurat să comunice cu un anumit set de alte rutere multicast, ``vecinii'' săi (de care se poate afla la distanță foarte mare, de altfel). Un ruter multicast construiește cîte o legătură virtuală cu fiecare vecin, un tunel folosind protocolul IP. De aici înainte ruterele multicast transmit pachetele de difuzare numai prin aceste tunele. Ele au impresia că sunt direct conectate unul cu altul, ca și cum restul Internetului nu ar mai exista!

Din cauza aceasta rețeaua MBone este o rețea virtuală. Ca și rețelele private virtuale, în MBone doi vecini aparenți pot fi de fapt la distanțe foarte mari, dar sunt legați de un tunel care le dă iluzia de vecinătate fizică.

Deși este extrem de interesant, nu voi mai intra în amănunte prea multe despre funcționarea Mbone; voi ilustra doar principiile generate, printr-un exemplu:

  1. Un anumit set de adrese din Internet, numite ``adrese de clasă D'' sunt rezervate pentru difuzare. Fiecare adresă de difuzare reprezintă un grup de ascultători ai unei singure transmisiuni.

  2. Dacă un calculator vrea să asculte o anumită emisiune, tot ce are de făcut este să-și atribuie o astfel de adresă și să anunțe ruterul cel mai apropiat din Mbone.

  3. Ruterele din Mbone își transmit unul altuia informații despre unde se află calculatoare cu fiecare adresă. În figura 3, toate ruterele vor afla despre cele trei calculatoare cu adresa Y.

  4. Să presupunem că calculatorul A vrea să trimită o conferință video pentru adresa Y. Atunci el trimite ruterului cel mai apropiat (R1) din Mbone pachetele de transmis, folosind un tunel.

  5. Acest ruter știe care din vecinii lui au ascultători interesați de emisiune. În figura noastră aceștia vor fi R2 și R3. R1 ca atare face două copii ale pachetului inițial, și trimite cîte una fiecăruia dintre vecini, prin tunelul stabilit.

  6. Fiecare ruter procedează mai departe, transmițînd atîtea copii cîte tuneluri are, spre rutere interesate de pachet. Dacă unul din vecinii unui ruter nu deservește nici un calculator cu adresa Y (ca R4 din figură), atunci acel ruter nici nu primește o copie.

  7. Procesul se repetă pînă pachetele ajung la toate destinațiile.

Metoda aceasta este deosebit de elegantă, pentru că rezolvă problema scalabilității. Observați că efortul fiecărui participant pentru transmisiune este relativ mic pentru fiecare pachet; în nici un caz nu depinde de numărul de recipienți (ci doar de numărul de vecini).

Prin contrast, să ne imaginăm cum am fi rezolvat această problemă dacă nu aveam deloc rutere multicast la dispoziție. Ei bine, atunci sursa trebuia să știe care sunt toți receptorii, și să deschidă cîte o legătură pentru fiecare. Apoi sursa trebuia să transmită fiecare pachet de atîtea ori cîți receptori avea. Asta este clar o risipă, pentru că cele mai multe pachete (identice) vor traversa aceleași legături în mod inutil. Dacă sunt 10 000 de consumatori, aceasta ar depăși capacitățile atît ale sursei, cît și probabil ale legăturii sursei la rețea.

Mobile-IP: calculatoare mobile

În fine, vom ilustra o ultimă tehnologie spectaculoasă al tunelelor, cu o altă aplicație care funcționează în Internet și este în curs de aprobare de către corpul de standardizare al Internetului, IETF (Internet Engineering Task Force).

Problema are de-a face cu calculatoarele care ``se plimbă'', care nu au o poziție fixă. De pildă, dacă zburăm cu avionul cu un laptop, acest calculator ar putea fi într-o zi în Europa, iar în alta în Japonia. Cum poate comunica acest calculator în Internet ca și cum ar fi tot timpul legat la aceeași rețea?

Problema provine din modul în care adresele sunt atribuite și rutarea pachetelor este făcută în Internet; am consacrat un întreg articol în trecut acestui subiect, așa încît nu o să mă repet aici.

Ideea este că adresa unui calculator indică aproximativ și locul geografic în care acesta se află; astfel, dacă un calculator își schimbă poziția, pachetele care-i sunt destinate nu îl mai pot găsi. (Un calculator nu-și poate schimba adresa, pentru că asta este identitatea lui, după care ceilalți îl recunosc.) Soluția există, este implementată, funcționează, și este ilustrată în figura 4.

Figure 4: Funcționarea protocolului IP mobil: un calculator migrator primește de la rețeaua în care a poposit o adresă nouă; ruterul de la rețeaua lui de baștină și de la rețeaua gazdă crează un tunel prin care îi trimit pachetele care i se cuveneau.
\begin{figure}\centerline{\epsfxsize=12cm\epsffile{mobile.eps}}\end{figure}

Pentru a realiza comunicarea în mod transparent cu un calculator mobil, ne trebuie colaborarea a două rutere: unul în rețeaua unde calculatorul se află de obicei (rețeaua-casă) și unul în rețeaua unde calculatorul se plimbă (rețeaua-gazdă). Iată cum funcționează protocolul, în linii mari:

  1. Calculatorul coboară din avion în Japonia. El emite un pachet radio, zicînd ``cucu, am venit în vizită din Europa; e cineva acasă?'';

  2. Un ruter gazdă aude acest pachet. Prin anumite metode criptografice, acest ruter se convinge că, într-adevăr, acest calculator nu este un impostor, ci chiar calculatorul european în vizită;

  3. Ruterul-gazdă ia legătura cu ruterul-casă: ``hai salut; un laptop de-al tău e pe la mine prin zonă; mă ocup eu de el''; prin anumite metode criptografice ruterul casă se convinge într-adevăr că nu vorbește nici el cu un impostor;

  4. Ruterul gazdă îi răspunde calculatorului mobil: ``s-a aranjat: de acum înainte poți folosi adresa asta din Japonia, ca să primești corespondența'';

  5. Ruterul-gazdă și ruterul-casă construiesc un tunel între ele;

  6. De fiecare dată cînd ruterul-casă vede un pachet pentru laptop-ul plecat, în loc să-l trimită în rețeaua locală, unde laptop-ul se afla inițial, îl bagă în tunel, pentru ruterul Japonez;

  7. Ruterul japonez extrage din tunel pachetele pentru vizitator și i le înmînează la noua adresă.

Din nou, analogia cu sistemul poștal este perfectă; este ca și cum vecinul de bloc are cheia dvs. de la cutia poștală, ia toate scrisorile pe care le primiți, le bagă într-un plic cu timbru de Japonia și le pune din nou la poștă.

Foarte elegant, nu?

Concluzii

Am văzut în acest text cum un mecanism extrem de simplu IP, care transferă în mod ne-fiabil date între două calculatoare, poate fi extins în felurite moduri, pentru a construi mecanisme din ce în ce mai sofisticate. Am văzut cum TCP oferă fiabilitate, tunelele oferă legături virtuale între calculatoare distante, Mbone oferă difuzare cu cost redus, iar protocolul Mobile-IP oferă independență de poziție.

Sper ca de acum înainte să nu mai treceți printr-un tunel fără o umbră de admirație.



Footnotes

... AT&T1
AT&T a fost timp de 60 de ani cea mai mare companie de telecomunicații din lume, avînd, pînă în 1984, un monopol practic complet asupra telefoniei în Statele Unite; în 1984 AT&T a fost sfărîmată de guvernul american în mai multe companii care se concurează una pe alta. AT&T derivă direct din compania fondată de Alexander Graham Bell, inventatorul telefonului.
... adrese2
Acest exemplu este pedagogic (dar plauzibil); nu știu dacă într-adevăr IBM folosește această schemă la nivelul întregii corporații.